当前位置: 首页 > news >正文

计算机组成原理(12) 第二章 - 主存储器的基本组成

1. 存储器芯片的基本原理

存储器芯片是计算机及各类电子设备中实现数据存储的核心硬件,其基本原理围绕 “如何稳定存储二进制信息(0 和 1)、如何精准定位存储单元、如何实现数据的读写操作” 三大核心问题展开。

一、核心目标:存储二进制信息

计算机中所有数据(文本、图像、指令等)均以二进制形式(0 和 1)存在,存储器芯片的核心功能是通过物理手段 “记录” 这些二进制状态,并在需要时 “读取” 或 “修改” 状态。
二进制状态的物理载体是存储单元—— 存储器芯片中最基本的构成单位,每个存储单元对应 1 位二进制信息(0 或 1)。

二、关键组成部分

一个存储器芯片通常由以下四个核心部分构成:

  1. 存储单元阵列

    • 这是芯片的核心区域,是一个由组成的巨大网格(像一个巨大的棋盘或Excel表格)。

    • 每一个交叉点就是一个存储单元,它是最小的存储单位,用于保存一位(bit)数据,即 0 或 1。

    • 整个阵列的规模决定了芯片的容量(例如,4Gb 芯片就有约 40 亿个存储单元)。

  2. 地址译码器

    • 功能:“寻址”。CPU 或内存控制器要访问数据时,会发送一个地址信号。

    • 地址译码器就像是一个“地图导航”,它根据这个地址,计算出具体要访问的是哪一行(Row)和哪一列(Column),并激活对应的线路。

  3. 读写控制电路

    • 功能:“读数据”和“写数据”

    • 写操作:根据要写入的数据是 0 还是 1,通过位线向被选中的存储单元施加特定的电压或电流,改变其物理状态。

    • 读操作:检测被选中的存储单元的物理状态(如通过测量电流、电压或电容),判断其代表的是 0 还是 1,并将这个微弱的信号放大,通过数据线输出。

  4. 控制逻辑

    • 功能:“指挥协调”。它接收外部的控制信号(如片选、读使能、写使能),并协调地址译码器、读写电路等部件按顺序正确工作。

下图展示了这些核心部件是如何协同工作的:

2. 寻址

在计算机系统中,寻址(Addressing)是指通过特定规则或方式确定存储器中数据或指令存储位置的过程。它是 CPU 与存储器之间通信的核心机制,直接影响计算机的运行效率和灵活性。

一、寻址的基本概念

  • 地址(Address):存储器中每个存储单元的唯一标识,类似 “门牌号”,通常用二进制数表示。例如,32 位系统中地址范围为0x000000000xFFFFFFFF,对应 2³² 个存储单元。
  • 寻址空间:CPU 可访问的最大存储器范围,由地址总线宽度决定。公式为:
    寻址空间大小 = 2^ 地址总线位数
    例如,64 位地址总线支持的寻址空间为 2⁶⁰字节(约 18EB)。
  • 核心目标:通过地址快速定位数据,实现 CPU 对存储器的读 / 写操作。

二、寻址方式的分类

根据地址生成方式的不同,寻址可分为物理寻址逻辑寻址两大类,二者在计算机系统中分工协作。

1. 物理寻址(Physical Addressing)

直接访问存储器物理位置的寻址方式,对应硬件层面的实际存储单元。

  • 特点:地址由硬件直接解析,与物理存储器一 一对应,无转换过程。
  • 应用场景
    • 嵌入式系统、单片机等简单计算机系统;
    • 操作系统内核对物理内存的管理(如内存分配、映射)。

2. 逻辑寻址(Logical Addressing)

程序中使用的虚拟地址,需通过地址转换机制映射到物理地址。

  • 核心作用
    • 隔离不同程序的内存空间,提高安全性;
    • 实现内存虚拟化(如虚拟内存),突破物理内存限制。
  • 地址转换机制
    • 分段(Segmentation):按程序逻辑划分内存段(如代码段、数据段),通过段表将逻辑地址转换为物理地址。
    • 分页(Paging):将内存划分为固定大小的页(如 4KB),通过页表完成逻辑地址到物理地址的映射,是现代操作系统的主流方式。
    • 段页式:结合分段和分页的优势,先分段再分页,兼顾逻辑隔离和内存利用率。

三、存储器芯片中的寻址原理

在存储器芯片(如 RAM、ROM)内部,寻址通过行地址列地址的组合实现,具体流程如下:

  1. 地址线传输:CPU 通过地址总线将地址信号发送到存储器芯片。
  2. 地址译码
    • 行地址译码器:将高位地址转换为行选通信号,选中对应存储行;
    • 列地址译码器:将低位地址转换为列选通信号,选中对应存储列。
  3. 数据访问:行、列交叉定位的存储单元被选中,通过数据线完成数据的读 / 写。

示例:对于 1024×8 位的 RAM(1KB 容量),需 10 根地址线(2¹⁰=1024),其中 5 根用于行地址,5 根用于列地址,共同定位 1 个字节的存储单元。

四、常见的指令寻址方式(针对 CPU 指令)

在汇编语言和机器指令中,指令的操作数寻址方式决定了如何获取操作数的地址,常见类型包括:

寻址方式原理示例(x86 汇编)
立即寻址操作数直接包含在指令中,无需访问存储器。MOV AX, 0x1234(将 0x1234 存入 AX)
直接寻址指令中直接给出操作数的逻辑地址。MOV AX, [0x2000](访问地址 0x2000 的数据)
间接寻址操作数地址存放在寄存器或存储器中,需先读取地址再访问数据。MOV AX, [BX](通过 BX 寄存器中的地址访问数据)
寄存器寻址操作数存放在 CPU 寄存器中,速度最快。MOV AX, BX(将 BX 的值存入 AX)
相对寻址以指令当前地址为基准,通过偏移量计算目标地址(常用于跳转指令)。JMP +0x05(跳转到当前地址 + 5 的位置)
变址寻址基地址 + 偏移量的组合(如基址寄存器 + 变址寄存器),适合数组访问。MOV AX, [BX+SI](BX 为基址,SI 为偏移)

寻址是计算机系统中连接 CPU 与存储器的桥梁,其设计需在速度、灵活性和安全性之间找到平衡,是计算机体系结构的核心技术之一。

http://www.dtcms.com/a/347843.html

相关文章:

  • 遥感机器学习入门实战教程|Sklearn案例⑨:数据预处理(Processing)
  • 基于STM32的智能温室控制系统设计
  • 【yocto】Yocto Project 配置层(.conf)文件语法详解
  • Service详解
  • 鸿蒙异步处理从入门到实战:Promise、async/await、并发池、超时重试全套攻略
  • 【C++】全局变量/静态变量的初始化时机
  • 基于电力电子变压器的高压脉冲电源方案复现
  • 最小覆盖子串+滑动窗口
  • 【JVM内存结构系列】二、线程私有区域详解:程序计数器、虚拟机栈、本地方法栈——搞懂栈溢出与线程隔离
  • mysql为什么使用b+树不使用红黑树
  • tcpdump命令打印抓包信息
  • 用vscode使用git工具
  • 深度优先搜索(DFS)和广度优先搜索(BFS)
  • 【内网渗透】Relay2LDAP之NTLMKerberos两种利用
  • windows中bat脚本的一些操作(三)
  • 如和在不同目录之间引用模块-python
  • 微调系列:LoRA原理
  • MVC模式在个人博客系统中的应用
  • 【通俗易懂】TypeScript 增加了 JavaScript 的可选链 (?.) 和空值合并运算符 (??)理解
  • 【集合和映射】USACO Bronze 2019 December - 我在哪Where Am I?
  • 机器学习案例——预测矿物类型(模型训练)
  • DS18B20温度传感器详解
  • 电阻的功率
  • 多光谱相机检测石油石化行业的跑冒滴漏的可行性分析
  • 电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析
  • 决策树基础学习教育第二课:量化最优分裂——信息熵与基尼系数
  • 01_Python的in运算符判断列表等是否包含特定元素
  • [Vid-LLM] 创建和训练Vid-LLMs的各种方法体系
  • crypto.randomUUID is not a function
  • 一个备份、去除、新增k8s的node标签脚本