根据Wikipedia的说法,N64只有4 MB的RDRAM(膨胀包8 MB),而其他数量类似小(4 kb左右的L1 CACHE)。但是,我在Google上发现的技术文档认为其内存地址从$ 0000:0000到$ FFFF:FFFF:这是4 GB!由于现有的N64模拟器(例如Project64)不使用4 GB的RAM,因此模拟内存图如何工作?我尝试查看各种文档等,所有这些文档似乎至少有些不同。有人在这个问题上有一些建议吗?

具体来说,这是我发现的内存图:

0x0000 0000 to 0x03EF FFFF RDRAM Memory
0x03F0 0000 to 0x03FF FFFF RDRAM Registers
0x0400 0000 to 0x040F FFFF SP Registers
0x0410 0000 to 0x041F FFFF DP Command Registers
0x0420 0000 to 0x042F FFFF DP Span Registers
0x0430 0000 to 0x043F FFFF MIPS Interface (MI) Registers
0x0440 0000 to 0x044F FFFF Video Interface (VI) Registers
0x0450 0000 to 0x045F FFFF Audio Interface (AI) Registers
0x0460 0000 to 0x046F FFFF Peripheral Interface (PI) Registers
0x0470 0000 to 0x047F FFFF RDRAM Interface (RI) Registers
0x0480 0000 to 0x048F FFFF Serial Interface (SI) Registers
0x0490 0000 to 0x04FF FFFF Unused
0x0500 0000 to 0x05FF FFFF Cartridge Domain 2 Address 1
0x0600 0000 to 0x07FF FFFF Cartridge Domain 1 Address 1
0x0800 0000 to 0x0FFF FFFF Cartridge Domain 2 Address 2
0x1000 0000 to 0x1FBF FFFF Cartridge Domain 1 Address 2
0x1FC0 0000 to 0x1FC0 07BF PIF Boot ROM
0x1FC0 07C0 to 0x1FC0 07FF PIF RAM
0x1FC0 0800 to 0x1FCF FFFF Reserved
0x1FD0 0000 to 0x7FFF FFFF Cartridge Domain 1 Address 3
0x8000 0000 to 0xFFFF FFFF External SysAD Device
有帮助吗?

解决方案

不管您有多少记忆,您都不会 需要 主机机器上可用的可用内存(您不需要4 GB,甚至不需要4 MB)。而是使用数据结构,您可以通过地址值访问模拟内存。仅当您需要将某些内容存储在模拟内存中时,只有在真实内存中分配空间。

但是,实际分配上述内部内存的数量可能是微不足道的。

像西蒙一样,我也首先假设该细分市场:偏移理论,但是地址 范围 您上面列出的似乎完全与该理论相矛盾。另外,整个“ 64” - 位于空间。

请注意,大多数地址空间分配给外部接口(墨盒等),而不是内部硬件资源。

其他提示

您拥有的地图是抽象的,如果您查看 更详细的内存图, ,您会注意到未绘制的内存差距很大。不包括映射的外部墨盒ROM(etc),而是添加可用内存的每个部分。您最终将仅分配超过4MB,包括RDRAM。另请注意,超过0x80000000的地址实际上是较低地址的镜子,有些区别是直接映射(物理内存),有些是TLB映射的(虚拟内存)。

0x00000000 - 0x7fffffff  KUSEG  TLB mapping
0x80000000 - 0x9fffffff  KSEG0  Direct map, cache
0xa0000000 - 0xbfffffff  KSEG1  Direct map, non-cache
0xc0000000 - 0xdfffffff  KSSEG  TLB mapping
0xe0000000 - 0xffffffff  KSEG3  TLB mapping

另外,请注意,墨盒存储器的映射为0xB0000000。这未明确显示在内存图中。

Afaik系统的处理器最多可以没有4 GB,而没有任何问题,但是N64本身并未使用此feauture。因此,我认为如果处理器请求该区域的数据,则只会返回00。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top