计算机组成原理——第三章(1)
存储系统
存储系统基本概念
分类
存储器的功能:存放二进制信息
作用层次:
1.高速缓冲存储器(cache):使用SRAM
2.主存储器(主存、内存):使用DRAM和ROM)
3.辅助存储器(辅存、外存)
存储介质:
1.磁表面存储器:
2.磁芯存储器
3.半导体存储器
4.光存储器
存取方式:
1.随机存取
RAM(DRAM、SRAM)
ROM
2.串行访问
顺序存取:磁带
直接存取:磁盘
信息可保存性:
1.断电后存储信息是否消失
易失性:RAM
非易失性
2.读出时是否破坏信息
破坏性读出:DRAM
非破坏性读出
存储器的性能指标
1.存储容量:存储字数x字长(如1Mx8位)
2.单位成本:每位价格=总成本/总容量。
3.存储速度:数据传输率=数据的宽度/存储周期。
一个存储周期包括:启动存取+存取完+下次存取
主存带宽:主存带宽又称数据传输率。表示每秒从主存进出信息的最大数量。单位为字/秒、字节/秒(B/s)或位/秒(b/s)
- note:
存取时间:存取时间是指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
存取周期:存取周期又称为读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立的访问存储器操作(读或写操作)之间所需的全部时间间隔。
存储器的层次化结构
cache-主存:解决速度匹配需求(硬件自动完成)
主存-辐存:解决容量匹配需求(硬件+操作系统)
半导体存储器
十位地址线,4位数据线则表示一共有210 x4位芯片容量,即1kx4.
CS表示芯片选择的缩写,低电平有效。
CE芯片使能的缩写,低电平有效
当读写控制线有一根时,用WE表示
有两根时,用OE,和WE*表示。
重点掌握
1.存储矩阵:由大量相同的位存储单元阵列构成。
2.译码驱动:将来自地址总线的地址信息翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读写操作。
3.读写电路:包括读出放大器和写入电路,用来完成读/写操作。
4.读/写控制线:决定芯片进行读/写操作。
5.片选线:确定哪个存储芯片被选中,可用于容量扩充。
6.地址线:是单向输入的,其位数与存储字的个数有关。
7.数据线:是双向的,其位数与读出或写入的数据位数有关。
8.数据线数和地址线数共同反映存储芯片容量的大小。
SRAM DRAM 半导体随机存取存储器
一定掌握
SRAM | DRAM | |
---|---|---|
存储信息 0、1 | 触发器 (双稳态 | 电容 (冲放电 |
破坏性读出 | 非 | 是 |
需要刷新 | 不要 | 需要 |
运送列地址 | 同时送 | 分两次送 |
运行速度 | 快 | 慢 |
集成度 | 低 | 高 |
发热量 | 大 | 小 |
存储成本 | 高 | 低 |
两者都以电信号的形式存储0/1,断电就丢失信息:易失性存储器。
SRAM:读的时候查看触发器状态,写的时候改变触发器状态。
DRAM:读的时候连接电容,检测电流变化,写的时候给电容充/放电。
SRAM:能保持两种稳定的状态
DRAM:电容上的电荷只能维持2ms
SRAM:行地址列地址同时送
DRAM:地址线复用,线数减少一般
SRAM:6个逻辑元件构成,集成度低
DRAM:1个或三个逻辑元件构成
DRAM的刷新
1.刷新周期?
刷新周期:一般为2ns
2.每次刷新多少存储单元?
以行为单位,每次刷新一行存储单元
3.为什么要用行列地址?
拆分为行列地址(DRAM行、列地址等长)
例如:地址:0000 0000 ,共八位
不拆分时需要28=256根选通线,拆分后只需要24+24=32根选通线,存储单元排列成16 x 16的矩阵。
4.如何刷新?
有硬件支持,读出一行的信息后重新写入,占用一个读/写周期。
5.在什么时刻刷新?
例如:假设DRAM内部结构排列成128x128的形式,读/写(存取)周期0.5us.
2ms刷新一次,2ms/0.5us=4000周期。
重点掌握
思路一(分散刷新):每次读完都刷新一行——>系统的存取周期变为1us.
前0.5us时间用于正常读写,后0.5us用于刷新某行。
思路二(集中刷新):2ms内集中安排时间全部刷新——>系统的存取时间还是0.5us。
有一段时间专门用于刷新,无法访问存储器,称为访存“死区”
前3872个周期(1936us)内存取,后128个周期(64us)刷新(访存死区)。
思路三(异步刷新):2ms内每行刷新一次即可——>2ms内需要产生128次刷新请求。
每隔2ms/128=15.6us一次。
每15.6us内有0.5us的“死时间”
RAM的读写周期(稍作了解)
SRAM的读周期
地址信号:多个二进制位
CS*:一个二进制位
Dout:多个二进制位
先给出地址信号,等完全稳定后给出片选信号0,再等一段时间进行数据的读操作。当数据完全读出来后片选信号才会完全失效,再等一段时间地址信号才撤回。
如果只有一根WE*线,则全程
SRAM的写周期:
ROM只读存储器
CPU的任务:到内存中取指令;按指令的指示进行下一步工作。
RAM信息容易丢失。但是一开始制造的ROM只能读不能写,现在ROM能够读写,但是速度比不上RAM,所以现在一般还是把信息存到RAM里,进行读写操作。
ROM具有非易失性,可靠性较高。
ROM类型
掩膜式只读存储器(MROM) | 存储内容由半导体之操场按用户提出的要求在芯片的生产过程中直接写入,无法修改 |
---|---|
一次可编程只读存储器(PROM) | 存储内容由用户用专门的设备(编程器)一次性写入,之后无法修改 |
可擦除可编程只读存储器(EPROM) | 紫外线擦除/电擦除(修改次数有限,写入时间很长) |
闪速存储器 | 如U盘,写入速度将快 |
固态硬盘 | 控制单元+FLASH芯片(保留闪存的特点,但价格较高 |
主存简单模型及连接原理
主存储器
第一章是简化结构
连接原理(大致了解)
数据总线:完成CPU和主存的信息的传输,直接连接到数据寄存器上,既可以读出也可以写入
地址总线:由CPU送到主存的,单向的
例如:要从存储器中读出一个信息字,CPU把字的地址送到MAR,再经过地址总线送到主存,然后通过控制总线发出读命令,主存接到读命令后,主存就会把地址单元的内容读出,就完成了读操作。读完之后读到数据总线上,最终CPU决定送到哪里。
如果要往主存里存入信息字的时候,首先CPU要把信息字所在的贮存单元的地址,经过MAR,送到地址总线,然后再把信息字送到MDR,然后向主存发出写命令,主存收到写命令后又把数据总线上的信息写到相应的地址线指出的主存单元当中。
主存的地址单元分配(比较重要)
存储矩阵:由大量相同的位存储单元阵列构成。
例如:
一个存储矩阵是4x8个方格,一个方格可以放八位。
一行是4B,即字长为4B,32位。
假设总容量是1KB
按字节寻址:1K个单元(地址线:10根,一共10个二进制位,即0~210-1),每个单元1B,则:
1 | 2 | 3 | 4 |
---|---|---|---|
5 | 6 | 7 | 8 |
8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 |
按字寻址:256个单元(地址线:7根,一共,每个单元4B,信息的存放不变,但是每四个字节一组
其中每一行的高位看作组好,即高位按字寻址,例如
第一行 | 字地址:0 |
---|---|
第二行 | 字地址: 4 |
第三行 | 字地址:8 |
第四行 | 字地址:12 |
第五行 | 字地址: 16 |
第六行 | 字地址: 20 |
第七行 | 字地址: 24 |
如何存放一个字?如:12345678H
由于一行是四个字节,每个小方格可以放两个这样的16进制数(16进制数是四位二进制数转换的)
大端方式:
12 | 13 | 14 | 15 |
---|
小端方式:
78 | 56 | 34 | 12 |
---|
按半字寻址:512个单元,每个单元2B
按双字寻址:128个单元,每个单元8B
主存容量的扩展
由于单个芯片的容量有限,所以在字数或者字长方面与实际的存储器是有差距的,因此使用字扩展、位扩展或者字位同时扩充的方法进行扩充,才能满足实际存储器的要求。
位扩展:
例如:
芯片有13根地址线,一根数据线,CS此时高电平有效。扩充时,地址线之间相连,数据线依次连接CPU。
位扩展:用多个存储器件对字长进行扩充,增加存储字长例如:芯片数据位数和CPU数据线数应该相等,如果CPU数据线有八位,芯片数据线只有一位时,就需要8片芯片对位数进行拓展。将8片芯片地址线并联到一起,片选线并联到一起,读写控制端也并联到一起;但是每一根数据总线连接到每一个芯片上面。
8片8k x 1位的存储芯片——>(相当于)1个8k x 8位的存储器,容量8kB
字拓展:
为了明确数据是哪块芯片上的,CS片选线不能同时为1,防止造成干扰。正确做法是:将CS片选线分别连接到地址线上,选中哪块芯片就将哪块芯片的地址线置1,这样就互不干扰啦。
线选法:两根线只能有两个片选信号,即01,10,其他的信号不起作用。例如:
译码片选法:n条线相当于2n个选片信号。例如:用非门将2条片选信号线并联,此时一条线就相当于2个片选信号。
译码器线选法的应用:例如1号芯片就需要A15=0,A13=1.如下图:
译码器:
如果想要选中Y5,地址就应该是101。
芯片分为低电平有效或者高电平有效。
译码器一般还会有个使能端EN,当使能端为1,译码器才会工作。
或者有多个使能端…
线选法和译码片选法的对比
线选法 | 译码片选法 |
---|---|
n条线—>n个选片信号 | n条线—>2n个选片信号 |
电路简单 | 电路复杂 |
地址空间不连续 | 地址空间可连续,可以增加逻辑设计 |
字位同时拓展:
以上两种结合
设CPU有16根地址线,8根数据线,并用MREQ作为访存控制信号(低电平有效),用WR作为读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片: 1K X 4位RAM, 4K X 8位RAM, 8K X 8位RAM, 2K X 8位ROM, 4K X 8位ROM, 8K X 8位ROM及74LS138译码器和各种门电路。画
出CPU与存储器的连接图,要求:
1)主存地址空间分配: 6000H—67FFH为系统程序区; 6800H~6BFFH为用户程序区。
2)合理选用上述存储芯片,说明各选几片?
3)详细画出存储芯片的片选逻辑图。
答:
系统程序区用ROM,用户程序区用RAM
1.确定地址线、数据线、选择存储芯片
数据线:CPU数据线8根—>存储器位数应扩展位8位
地址分配:
系统程序区:67FFH-6000H+1=800H,8 x 162=211=2k—>用1片2K x 8位ROM
(ROM地址线11根)
用户程序区:6BFFH-6800H+1=400H,4 x 162=1k—>用两片1k x 4位RAM,位扩展
(RAM地址线10根)
地址线:
6000H—67FFH—>
0110 0000 0000 0000—0110 0111 1111 1111(低11位连接地址线,地址线前3位连接连接译码器上的前三位,即100)
6BFFH-6800H—>
0110 1000 00000000—0110 1011 1111 1111(低10位连接,11位地址线前3位连接连接译码器上的前三位,即101)
ABC=100就是ROM,对应Y4
ABC=101就是RAM,对应Y5,当A10=0&&Y5*=0时,是RAM.
由于RAM和ROM最高位都是01,A15和A14分别是0和1可以作为使能信号
或者