NES 系统架构

Posted 1bite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NES 系统架构相关的知识,希望对你有一定的参考价值。

本文以图文相结合的方式介绍了 NES(FC、红白机、小霸王)的系统架构,可以让读者对 NES 的工作原理有高层次的认知,如果想要开发 NES 模拟器,这也是很好的入门资料。

主机

NES(FC、红白机、小霸王)的系统架构可用下图表示:

系统中最核心的组件是 CPU,其它组件都可以算作 CPU 的外设。CPU 的外设包括:PPU(图像处理器)、APU(音频处理器)、WRAM(内存)、IO 设备(手柄、键盘等)、CART(卡带)。这些外设分别占据 CPU 地址空间中的一部分,CPU 通过设置 CPU 地址总线选中相应的外设,然后通过 CPU 数据总线与外设交换数据。CPU 与外设的这种通信方式也叫“内存映射 IO”,外设占用的地址空间可以到 nesdev 上查阅。

系统中第二核心的组件是 PPU。PPU 也有外设,它的外设包括:VRAM(视频内存)和卡带。PPU 和它的外设之间也采用“内存映射 IO”方式通信,PPU 的地址空间分配可以查阅 nesdev

真实的 NES 上是看不到 APU 的,因为 APU 与 PPU 封装到了一起。在开发模拟器时,把它们当作独立的组件是没有关系的

卡带

上图中,卡带只是使用一个方框简单概括,实际上卡带也是一个复杂的设备。卡带即是 CPU 的外设,也是 PPU 的外设。它可以存储程序代码供 CPU 读取执行,可以存储图像资源供 PPU 使用,也可以为 CPU 提供额外的内存,甚至还可以提供额外的音频芯片、PPU。

根据卡带的电路板复杂性,可以粗略地把卡带分为简单卡带和复杂卡带。

简单卡带

简单卡带的内部结构如下图。

图中 PA 表示 PPU 地址线,PD 表示 PPU 数据总线,A 表示 CPU 地址线,D 表示 CPU 数据总线。可以看到简单卡带基本上直接从存储芯片中读写数据,其中存储芯片可以根据需求配置为不同大小。由于地址空间的限制,简单卡带上并不能存储太多内容。

复杂卡带

上图演示了一种复杂卡带的架构,可以看到最大的区别是多了一个叫 MMC 的组件。MMC 意为“内存管理芯片”,是一种可编程芯片,负责将 CPU、PPU 的地址映射到它管理的存储器中的某个区间。有了 MMC,CPU、PPU可以寻址更大的地址空间,卡带也可以存储更多内容。

参考资料

  1. nesdev
  2. NES 名词解释
  3. NES 架构介绍[Youtube], NES 架构介绍[B 站]
  4. NES 架构

1.NES简介

NES(Nintendo Entertainment System)简介 


 NES是北美地区对任天堂发行的第三代家用游戏机的简称。

1.CPU

NES使用一颗理光【1】制造的8位2A03 NMOS处理器(基于6502中央处理器【2】,但是缺乏BCD模式),PAL【3】制式机型运行频率为1.773447MHZ,NTSC【3】制式机型运行频率为1.7897725MHZ,主内存和显示内存为2KB。

2.PPU

NES使用理光开发的图像控制器(Picture Processing Unit,简称PPU),有2KB的视频内存,调色盘可显示48色及5个灰阶。一个画面可显示64个角色(sprites,又称为精灵),角色格式为8X8或8X16个像素,一条扫描线最多显示8个角色,超过这个限制会造成角色闪烁(例如格斗游戏就会出现这种闪烁)。背景仅能显示一个卷轴,画面分辨率为256X240,但因为NTSC系统的限制,不能显示底部以及顶部的8条扫描线,所以分辨率剩下256X224。

3.pAPU

NES使用一个伪声音处理器(pseudo-Audiom Processing Unit,简称pAPU),在实际应用中这个处理器是集成在2A03 NMOS处理器中的,pAPU内置了2个几乎一样的矩形波通道、1个三角波通道、1个噪声通道和1个音频采样回放通道(DCM,增量调制方式)。其中3个模拟声道(2个矩形波通道和1个三角波通道)用于演奏乐音,1个杂音通道(噪声通道)表现特殊声效(爆炸声、枪炮声等),音频采样回放通道可以用来表现连续的背景音。

4.游戏卡带

NES使用的游戏卡带为只读内存形式,容量有LA系列24K、LB系列40K,LC系列48K,LD系列64K,LE系列80K、LF系列128K、LG系列160K、LH系列256K、特卡系列(高于256K)。


【1】:理光(Ricoh),是日本著名的办公设备及光学机器制造商

【2】:6502是著名的8位CPU,是美国MOS Technology公司推出的一种8位的CPU。Chuck Peddle是其主要的设计师。曾用于Apple I、Apple II、NES等系统,在文曲星等电子产品中也被广泛使用。

【3】:电视广播制式


参考来源:https://zh.wikipedia.org/wiki/%E7%BA%A2%E7%99%BD%E6%9C%BA

 

以上是关于NES 系统架构的主要内容,如果未能解决你的问题,请参考以下文章

原创NES第三波_如何做一张NES贺卡

LVGL+NES|基于lvgl实现nes模拟器(lv_100ask_nes)

LVGL+NES|基于lvgl实现nes模拟器(lv_100ask_nes)

LVGL+NES|基于lvgl实现nes模拟器(lv_100ask_nes)

NES 编程 - 名称表?

1.NES简介