计算机组成原理学习笔记————存储器(一) 存储器分类

存储器

存储器是计算机系统中的记忆设备,用来存放程序和数据。随着技术的发展,CPU的速度变化迅速,但存储器的速度增加得较慢。这使得计算机的速度在很大程度上受限于存储器速度。为了解决这个问题,设计了各种各样的存储器结构。

存储器分类

按存储器介质分类

在这里插入图片描述

按存储方式分类

在这里插入图片描述

按在计算机中的作用分类

在这里插入图片描述

存储器的层次结构

在这里插入图片描述
如图,存储系统层次结构主要体现在缓存-主存和主存-辅存这两个存储层次上。
CPU和缓存、主存都能直接交换信息;缓存能直接和CPU、主存交换信息;主存可以和CPU、缓存、辅存交换信息。

缓存-主存层次

缓存-主存层次主要解决CPU和主存速度不匹配的问题。**由于缓存的速度比主存的速度高,只要将CPU近期用的信息调入缓存,CPU便可以直接从缓存中获取信息,从而提高访存速度。**但由于缓存的容量小,因此需不断地将主存的内容调人缓存,使缓存中原来的信息被替换掉。主存和缓存之问的数据调动是由硬件自动完成的,对程序员是透明的。

主存-辅存层次

主存-辅存层次主要解决存储系统的容量问题。**辅存的速度比主存的速度低,而且不能和CPU直接交换信息,但它的容量比主存大得多,可以存放大量暂时未用到的信息。**当CPU需要用到这些信息时,再将辅存的内容调人主存,供CPU直接访问。主存利辅存之间的数据调动是由硬件和操作系统共同完成的。

主存储器

概述

主存储器的结构如图:
在这里插入图片描述
MAR与地址总线相连,保存了我们要访问的存储单元的地址。必须经过译码器译码后才能访问到相应的存储单元。 MDR保存了我们要读出或写入的数据。读写操作通过控制电路进行控制,进行写入操作时就把MDR中的数据读出存入到MAR中指定的存储单元,读出操作就将指定存储单元中的数据存入到MDR中。
驱动器、译码器和读写电路均制作在存储芯片中,MAR和MDR制作在CPU芯片内。

主存和CPU的关系如图:
在这里插入图片描述
当要从存储器读出某一信息字时,首先由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令。主存接到读命令后,得知需将该地址单元的内容读出,便完成读操作,将该单元的内容读至数据总线上,至于该信息由MDR送至什么地方,这已不是主存的任务,而是由CPU决定的。
若要向主存存入一个信息字时,首先CPU将该字所在主存单元的地址经MAR送到地址总线,并将信息字送入MDR,然后向主存发出写命令,主存接到写命令后,便将数据线上的信息写人到对应地址线指出的主存单元巾。

主存中存储单元地址的分配
主存各存储单元的控件位置是由单元地址号来表示的,而地址总线是用来指出存储单元地地址号的,根据该地址可读出或写入一个存储字。
主存的技术指标:

  1. 存储容量
  2. 存储速度
  3. 存储器带宽 单位时间内存储器存取的信息量。

半导体存储芯片简介

在这里插入图片描述
译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作。读/写电路包括读出放大器和写人电跻,用来完成读/写操作。有储芯片通过地址总线、数据总线和控制总线与外部连接。
地址线是单向输人的,其位数与芯片容量有关。数据线是双向的(有的芯片可用成对出现的数据线分别作为输入或输出,其位数与芯片可读出或写人的数据位数有关。数据线的位数与芯片容量有关。

### 计算机组成原理期末复习资料 #### 、CPU 数据存储方式 在计算机组成原理中,理解 CPU 的数据存储机制至关重要。不同的指令系统体系结构决定了处理器如何处理和管理数据。主要的数据存储方式包括: - **堆栈体系结构**:这种架构使用堆栈作为临时数据存储的主要手段,在函数调用和返回操作中有广泛应用[^1]。 - **累加器体系结构**:在这种设计下,大多数运算都涉及到个特定的寄存器——累加器,它用于保存中间计算结果和其他重要信息。 - **通用寄存器体系结构**:此类型的体系允许任何寄存器参与各种操作而不局限于某个固定用途,提供了更高的灵活性和效率。 ```python # Python伪代码展示三种体系结构下的简单加法操作差异 def stack_architecture(a, b): push(b) # 将b压入堆栈 push(a) # 将a压入堆栈 add() # 执行加法并弹出结果 def accumulator_architecture(a, b): load_a_to_accumulator(a) # 加载a到累加器 add_b_to_accumulator(b) # 累加器加上b def general_register_architecture(registers, a, b): registers['R0'] = a # 使用任意可用寄存器存储a registers['R1'] = b # 同样地为b分配另个寄存器 result = registers['R0'] + registers['R1'] ``` #### 二、单译码方式 RAM 特征分析 对于内存部分的学习,了解不同类型随机访问存储器 (RAM) 的工作原理同样不可忽视。特别是关于单译码方式的特点如下所示: - 存储矩阵由 W 行 × B 列构成,其中 W 是行数而 B 是列宽; - 这种配置虽然简化了硬件设计且提高了读写速度,但对于较大规模的应用来说并不经济有效,因为所需的外部控制线路较多,增加了整体成本[^2]。 #### 三、中断系统的运作流程 掌握中断的概念及其工作机制有助于深入理解操作系统层面的知识点。具体而言: - 中断请求触发器(INTR),用来标记是否有来自外部设备或其他源发出的中断信号;旦检测到此类事件,则会启动相应的处理过程[^3]。 - 对于多个可能同时发生的中断情况,存在两种常见的优先级判断方案: - *硬件排队*:通过专门硬件组件自动决定哪个中断应该被最先响应; - *软件查询*: 编程人员可以定义套规则来手动检查各个潜在中断源的状态,并据此作出决策。 - 寻找中断服务程序入口地址的方法有两种主流形式: - *硬件向量法*:基于预先设定好的映射表快速定位目标子例程的位置; - *软件查询法*:逐个测试所有可能性直到找到匹配项为止。 #### 四、数值表示与转换 最后,在讨论数字编码方面,补码和移码是非常重要的概念之。它们主要用于解决带符号整数的表现问题以及浮点数规格化等问题上。例如: - 正数情况下 `[X]` 的原码(`[X]_原始`) 和补码 (`[X]_补充`) 形式相同; - 而当 `X<0` 时,其补码可以通过对原码除最高位之外的部分取反后再加1得到;反之亦然[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值