32位处理器可以使用多个块或寄存器加载64位存储器地址吗?

时间:2015-11-28 05:15:18

标签: 32-bit memory-address cpu-registers microprocessors

我在32位微处理器上做了一点,我已经了解到:

1)32位微处理器只能寻址2 ^ 32位的存储器,这意味着存储器指针的大小不应超过32位,即指针大小应等于或小于32位。

2)我也知道CPU分配多个内存块用于存储数字和文本,这取决于程序并且与每个地址的大小无关(来源:here)。
那么CPU是否可以使用多个块(寄存器)来存储大小超过32位的指针?

2 个答案:

答案 0 :(得分:2)

处理器可以通过使用称为库切换的技术的变体来访问基本上无限量的内存。在简单的存储体切换方案中,连接到地址空间的一部分的存储器芯片将具有由处理器馈送的一些地址输入和来自外部锁存设备的一些地址输入。从历史上看,IBM PC具有1MB的地址空间,但是扩展的存储器板IIRC将允许该空间的两个16KB区域映射到其上包含的数十个或数百个16KB的存储器块中的任何一个。如今处理器通常内置一个内存管理单元,可将4KB或64KB内存块映射到更大空间内的任何地址,而且在OS支持下,可以进一步扩展内容。

银行转换的最大困难在于,任何给定的地址都可能识别存储器中的许多不同位置,具体取决于存储区交换硬件的配置方式,因此从存储区域中的存储器访问数据通常比访问数据更复杂。直接可访问的内存,只能通过知道银行交换硬件如何工作的代码实现。如今,简单地使用可以访问所需内存的处理器更为常见,但历史上银行转换通常是超越处理器限制的有用技术。

答案 1 :(得分:1)

您可以在记忆中使用2个不同的位置存储64位指针。但它可能没用,因为你的处理器只能使用32位指针。