![随机存取存储器中的存储位置有哪些?](https://linux22.com/image/1582234/%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8%E4%B8%AD%E7%9A%84%E5%AD%98%E5%82%A8%E4%BD%8D%E7%BD%AE%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F.png)
Ram 中的内存位置是什么意思。我真的不明白 RAM 中的内存位置一词的定义。告诉我你用谷歌中的哪本英语词典来查找随机存取存储器中的内存位置一词的含义?
答案1
记忆位置 - 俗称地址- 是一个复杂的话题,仅靠字典或百科全书的定义不足以表达它们的确切性质。我将尝试介绍物理内存地址 - 如今,由于计算机的内存管理单元。
从根本上讲,计算机利用了布尔逻辑门的巧妙排列(物理上表示为纳米级晶体管) 来存储少量信息。基本逻辑门,如 AND、OR、NOR 等,被组合在一起,形成所谓的闩锁,之所以这样称呼,是因为它“锁定”给定的数据。这可以被认为是最低级别的安排,只能记住 1 或 0,真或假。这些是微小的电路,其中“记住” 1 或 0 表示电路中是否存在电流。电路的设计方式是,它能够可靠地保存系统中的电流,或者不保存。这种安排还需要其他组件,值得注意的是,同一电路的输入是“可写”的。
因此,现在我们可以存储 1 位内存 - 1 或 0,真或假 - 这没什么用。从这个角度来看,要将数字“5”存储在内存中,至少需要三个这样的组件一起工作才能存储 101。参见此二进制转十进制表。一组一起操作以存储单个数字的锁存器称为登记,寄存器中的位数(锁存器)称为其宽度如果我们将 8 个锁存器组合在一起,我们可以使用新制作的 8 位寄存器来记住最大 11111111 或 255 的数字。
由于需要越来越多的电路来访问给定寄存器中的所有锁存器,因此采用了另一种巧妙的安排来减少单个电路的数量。这种新安排的形式是矩阵。
计算的存在归功于相对较新的微观和纳米级制造技术的结合,以及巧妙的电路排列,从而允许在越来越小的组件上表示更多的数据。
现在我们到了内存地址- 或者物理地址就我们的目的而言 - 只是一种在矩阵中定位给定锁存器的方法。矩阵可以被认为是一系列行和列,就像 Excel 电子表格一样。虽然这是一个浅显的类比,但我们仍然用四位二进制数来表示行和列,在我们的简单示例中加起来就是一个 8 位地址。
其他资源:
答案2
[其中一些内容已简化,以提供高层视图]
CPU 具有加载和店铺从地址读取和写入数据的指令。您运行的任何使用 RAM 的程序都将使用这些指令。
这些地址从 0 开始,您可以指定的最高地址取决于 CPU 的类型和“位数”。
在 64 位 CPU 上,最高地址是 2 64减 1,即 18446744073709551615。
在 32 位 CPU 上,最高地址是 2 32减 1,即 4294967295。
(有趣的是:在旧的 8 位 CPU 上,例如旧 NES 中的 6502 兼容 CPU(通常具有 16 条地址线),最高地址是 2 16减 1,即 65535。)
当您使用加载和存储指令时,您所做的典型的“传统”事情是从 RAM 或 ROM 读取和写入。
当然,您安装的 RAM 会出现在其中一些地址。在现代 64 位 CPU 上,并非所有地址都是 RAM,因为您目前无法在系统中安装 17179869184 GB 的 RAM(但 32 位系统早已达到最大容量)。
UEFI 或 BIOS ROM 将出现在其中一些,以便 CPU 在开机时可以做一些事情。
一些地址与硬件设备相连——通过读取和写入某些地址,可以设置、修改硬件设备的行为,或从硬件设备发送/获取数据。
预计一些地址将保存对 CPU 本身很重要的信息,例如异常/中断向量和与 MMU/分页、VM 控制和英特尔“SGX”功能的“enclave”控制相关的各种数据结构。
有些地址不会受到任何东西的“支持”,访问时可能会导致系统锁定,或返回随机数据。
说到 MMU,它可以改变 CPU 对 RAM 的看法——通过一种称为“分页”的机制,使物理上位于给定地址的内容出现在其他地方。CPU 中的内核模式可以更改此映射,未在内核模式下运行的进程必须使用内核设置的任何分页。因此,未在内核模式下运行的进程将看到内核设置的地址空间的“虚拟”视图,从而隔离并保护它免于覆盖其他程序,并允许多个进程在单个 CPU 上运行。