计算机组成原理 – chapter four 存储器 《计算机组成原理(第3版)》(唐朔飞)【简介_书评_在线阅读】 – 当当图书 (dangdang.com) 计算机组成原理(上)_中国大学MOOC(慕课) (icourse163.org) 第二篇 – 计算机系统的硬件结构 计算机硬件系统由中央处理器、存储器、I/O系统以及connect它们的系统总线组成,本篇主要介绍了系统总线、存储器和I/O系统。 这个chapter重点介绍了主存储器的分类、工作原理、组成方式以及与其他部件(像CPU)的联系,还介绍了高速缓冲存储器和磁表面存储器等的基本组成和工作原理的。 用不同的存储器组成具有层次结构的存储系统的概念。 four.1 概述 four.1.1 存储器分类 存储器是计算机系统中的记忆设备,用来存放程序和数据。出现了I/O和存储器直接存取方式(DMA)。也使存储器的地位更加突出。存储器的性能已成为计算机系统的核心,多处理器需要和主存交换信息,在相互通信中,需要共享存储器中的数据。 1、按存储介质分类 存储介质是指能寄存“0”、“1”两种代码并能区别两种状态的物质或器件。存储介质主要有 半导体器件、磁性材料和光盘等。 (1)半导体存储器,存储件由半导体器件组成的存储器称为半导体存储器。现代半导体存储器都用超大规模集成电路工艺制成芯片,优点:体积小、功耗低、存取时间短,缺点:电源消失时,所存信息也丢失,易失性存储器,目前开发出了非挥发性材料制成的半导体存储器,克服了信息易失的弊病。 按材料不同分类:双极性(TTL)半导体存储器 和 MOS半导体存储器。前者高速的,后者高度集成且制造简单成本低廉功耗小,后者应用广泛。 (2)磁表面存储器,在金属或塑料基体的表面上涂上一层磁性材料作为记录介质,工作时磁层随载磁体高速运转,用磁头在磁层上进行读/写操作,故称为磁表面存储器。 按载磁体形状的不同,可分为:磁盘、磁带和磁鼓(很少使用了),由于用具有矩形磁滞回线特性的材料作磁表面物质,它们按其剩磁状态的不同而区分“0”和“1”,而且剩磁状态不会轻易丢失,这类存储器具有非易失性的特点。 (3)磁芯存储器,体积大、工艺复杂、功耗太大,20世纪70年代以后,逐步被半导体存储器取代,目前几乎已不被采用。 (four)光盘存储器,应用激光在记录介质(磁光材料)上进行读/写的存储器,具有非易失性特点,光盘记录密度高、耐用性好、可靠性高和可互换性强等特点。 2、按存取方式分类 随机存储器、只读存储器、顺序存取存储器 和 直接存取存储器 (1)随机存储器(Random Access Memory),RAM是一种可读/可写存储器,任何一个存储单的内容都可以随机存取,存取时间和存取单的物理位置无关。主存都采用这种随机存储器。根据原理不同可分:静态RAM和动态RAM。 (2)只读存储器(Read Only Memory)ROM,只能初始化写入,以后只能读不能写,存放固定不变的程序、常数和汉字字库。和RAM可共同作为主存的一部分,统一构成主存的地址域。还有很多种不同的ROM,像MROM、PROM、EPROM等。 (3)串行访问存储器(顺序存取存储器),对存储单进行读/写操作时,按其物理地址的先后顺序寻找地址。磁带就是的,磁盘属于部分串行访问存储器,首先直接访问先找到磁道,然后顺序寻访找到扇区,称作直接存取存储器。 3、按在计算机中作用分类 主存储器、辅助存储器和缓冲存储器 主存储器(主存)可以和CPU直接交换信息,辅助存储器(辅存)是主存储器的后援存储器,用来存放暂时不用的程序和数据,不能和CPU直接交换信息,主存速度快、容量小、价格高,辅存速度慢、容量大、价格低。缓冲存储器(缓存)用在两个速度不相同的部件之中。CPU和主存之间可设置一个快速缓存。
four.1.2 存储器的层次结构 3个主要的性能指标:速度、容量和每位价格(位价),寄存器、缓存、主存、磁盘、磁带,速度越来越慢,容量越来越大,每位价格越来越小。CPU访问频度越来越少。寄存器通常在CPU芯片内,其数直接参与CPU运算。寄存器、缓存、主存都是由速度不同、每位价格不同的半导体存储材料制成的,现代计算机将Cache也制作在CPU内。 CPU不能直接访问辅存,辅存只能和主存交换信息,可以速度慢很多。 存储器系统层次结构主要体现在:缓存-主存 和 主存-辅存;CPU和缓存、主存都能直接交换信息,缓存能直接和CPU、主存交换信息,主存可以和CPU、缓存、辅存交换信息。 缓存-主存:主要解决CPU和主存速度不匹配的问题;缓存提高了CPU的访存速度,主存和缓存的数据调动是硬件自动完成的。 主存-辅存:主要解决存储系统的容量问题;主存和辅存的数据调动是由硬件和操作系统共同完成的。 现代计算机几乎都具有这两个存储层次,缓存、主存和辅存共同构成了三级存储系统。 主存-辅存这一层次的不断发展,逐渐形成了虚拟存储系统,对虚拟存储器而言,逻辑地址变换为物理地址的工作是由计算机系统的硬件和操作系统自动完成的。编程的地址范围和虚拟存储器的地址空间相对应。 four.2 主存储器 four.2.1 概述 根据MAR中的地址访问某个存储单时,还需经过地址译码、驱动等电路,才能找到所需访问的unit,读出时,需经过读出放大器,才能将被选中unit的存储字送到MDR。写入时,MDR的数据也必须经过写入电路才能真正写入被选中的unit内。
现代计算机的主存都由半导体集成电路构成,驱动器、译码器和读写电路均制作在存储芯片中,而MAR和MDR制作在CPU芯片中,存储芯片和CPU通过 地址、控制、数据总线连接,也就是系统总线连接。
通过控制总线来发送命令到主存。 1、主存中存储单地址的分配 P13 主存储器(简称主存或内存)包括存储体、各种逻辑部件和控制电路等。存储体有很多存储单组成,每个存储单又包括若干个存储件(或称存储基,存储),每个存储件能寄存一位二进制代码“0”或“1”。可见,一个存储单可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。 主存各存储单的空间地址是由单地址号来表示的,而地址总线是用来指出存储单地址号的,根据该地址可读出或写入一个存储字。不同的机器存储字长也不相同,基本是eight的倍数。通常计算机可按字寻址,也可按字节寻址。 IBM370机的存储字长是32位,可按字节寻址,每个存储字包含four个可独立寻址的字节。地址分配左图,每个字的地址用该字高位字节的地址来表示,four的倍数。正好用地址码的最后两位来区分同一字的four个字节的位置。但对PDP-11机来说,存储字长是16位,字地址是2的整数倍,用低位字节的地址来表示字地址。(左高右低)
对24位地址线的主存而言,按字节寻址的范围是16M=2^24/1024/1024,按字寻址的范围是16/4=4M(左图)。 按字节寻址的范围是16M=2^24/1024/1024,按字寻址的范围是16/2=8M(右图)。 2、主存的技术指标 主要是:存储容量和存储速度 (1)存储容量:指主存能存放二进制代码的总位数,=存储单个数 x 存储字长 也可用字节总数来表示:=存储单个数 x 存储字长 / 8 大多以字节总数来表示,像:某机主存的存储容量是256MB,则按字节寻址的地址线位数应对应28位,228/1024/1024=256,所以是按字节寻址的。 (2)存储速度:由存取时间和存取周期来表示的 存取时间又称为存储器的访问时间(Memory access Time),是指启动一次存储器操作(读或写)到完成该操作所需的全部时间。 存取周期(Memory cycle Time)是指存储器进行连续两次独立的存储器操作(像连续两次读操作)所需的最小间隔时间,通常存取周期大于存取时间。 (3)存储器带宽:和存储周期密切相关的指标是存储器带宽,表示单位时间内存储器存取的信息量。字/秒,字节/秒,位/秒。若存取周期是500ns,每个存取周期可访问16位,则它的带宽为32M位/秒=(1/(500*1e-9))*16/1000/1000。 带宽是衡量数据传输率的重要技术指标 提高存储器的带宽:1)缩短存取周期,2)增加存储字长,使每个存取周期可读/写更多的二进制位数,3)增加存储体。 four.2.2 半导体存储芯片简介 1、半导体存储芯片的基本结构 在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等。 译码驱动电路:把地址总线送来的地址信号翻译成对应存储单的选择信号,该信号在读/写电路的配合下完成对被选中单的读/写操作。 读/写电路:包括读出放大器和写入电路,用来完成读/写操作。 存储芯片通过地址总线、数据总线和控制总线和外部连接。
地址线是单向输入的,其位数和芯片容量有关。数据线是双向的(有的芯片可用成对出现的数据线分别作为输入和输出),其位数和芯片可读出和写入的数据位数有关,数据线的位数和芯片容量有关。 地址线和数据线的位数共同反映了芯片的容量,一个 存储单个数,一个 存储字长。10根+3根,则芯片容量是1kx3=3k位。 控制线包括读/写控制线+片选线,2114用了1根读/写控制线+1根片选线,6264用了2根读/写控制线+2根片选线。读/写控制线决定芯片进行读/写操作,片选线用来选择存储芯片。半导体存储器是由很多芯片组成的,因此需要用片选信号来确定哪个芯片被选中。书上的64Kx8位的存储器可由32片16Kx1位的存储芯片组成,每次读出一个存储字时,只需选中其中8片即可。
2、半导体存储芯片的译码驱动方式 线选法和重合法 线选法:存储单是数组排列方式,2d,16×1字节线选法存储芯片,用一根字选择线,直接选中一个存储单的各位。结构简单适用容量不大的存储芯片。 重合法:存储单是矩阵排列方式,2d,1Kx1位重合法存储芯片,用64=32+32根选择线就可以选择矩阵的任一位。被选单是由X、Y两个方向的地址决定的,故称为重合法。当需要构成1Kx1字节的存储器时,只需要使用8片芯片即可。 左图行共有eight个bit,所以行方向自然就是一个字节; 右图行列交叉处只有一个bit,所以共需要eight片芯片才可以组成一个字节。
four.2.3 随机存取存储器 按照存储原理的不同,分为:静态RAM和动态RAM 1、静态RAM(static RAM,SRAM) (1)静态RAM基本单电路 存储器中用于寄存“0”和“1”代码的电路称为存储器的基本单电路,6个MOS管组成的基本单电路。T1到T4是一个由MOS管组成的触发器基本电路,T1-T6这6个MOS管共同构成一个基本单电路。
读:假设触发器已存有“1”信号,即A点高电平,A点高电平通过T6、T8、D输出,作为读出放大器的输出信号。信息读出后,仍保持原状态,不需要再生。
写:不论触发器原状态是什么,只要将写入code送至DIN端,经两个写放大器,两端输出为相反电平。
(2)静态RAM芯片example Intel 2114芯片的基本单电路,由6个MOS管的触发器组成,下图是1Kx4位的2114外特性示意图
A0-A9是地址输入端,I/O1-I/O4是数据输入输出端,CS是片选信号(低电平有效),WE是写允许信号(低电平写,高电平读)。Vcc是电源端。GND是接地端。 2114RAM芯片的结构示意图:行选择6根线,列选择4根线,但存储矩阵是64×64个基本单电路,列少了2根线,是因同时需要选中4列,所以只需要4根线,2^4=16,16x(2^2)=64。也就是1Kx4位的。
2114芯片内的存储矩阵结构:每个小方块都是由6个MOS管组成的基本单电路,排列成64×64的矩阵,64列对应64对T7和T8管,又将64列分成了4组,每组16列,每次列选中4列,间隔选中不连续,和一个读/写电路相连接,受WE和CS控制,4个读/写电路对应4根I/O数据线。 行地址译码以后选中某一行,列地址译码以后选中某4列。下面的读操作选中了1行4列。CS低电平,WE高电平来读
下面的写操作选中了4列的,CS低电平,WE低电平来写
2、动态RAM(dynamic random access memory,DRAM) (1)动态RAM的基本单电路 有三管式和单管式两种,都是靠电容存储电荷的原理来寄存信息。电容上的电荷一般只能维持1-2ms,因此即使电源不掉电,信息也会自动消失。因此,必须在2ms内对其所有存储单恢复一次原状态。这个过程称作再生或刷新,和静态RAM相比较,集成度更高、功耗更低等特点,目前被各类计算机广泛采用。 晶体管越少,集成度越高 动态RAM读数据,存的数据和读出的数据是相反的,下面是T1-T3组成的3管MOS动态RAM基本单电路。
要提高集成度,将三管电路进一步简化,得到单管MOS动态RAM基本单电路。数据线有电流就是1,数据线没有电流就是0。读时字线是高电平,经T管在数据线上产生电流,读操作结束时,Cs的电荷已经释放完毕,故是破坏性读出,需要再生的。 写入时,字线是高电平使T导通,若数据线上是高电平,经T管对Cs充电,使其存“1”;若数据线是低电平,则Cs经T放电,使其失去电荷存“0”。
(2)动态RAM芯片example 1)三管动态RAM芯片 结构示意图:1Kx1位的存储芯片,32×32的存储矩阵,每个小方块代表由3个MOS管组成的动态RAM基本单电路。每列都有一个刷新放大器(再生)和一个预充电管(没画出来的),芯片有10根地址线,采用重合法选择基本单电路。
读出时,先置以预充电信号,给出行列选择信号并给出读信号的。
2)单管动态RAM芯片 结构示意图,16Kx1位的存储芯片,应有fourteen根地址线,但为了减少芯片的引脚数,地址线只有7根,地址信息分两次发送,先送7个行地址保存到芯片内的行地址缓存器内,再送7个列地址保存到列地址缓存器内,行列地址分时传送,芯片内存在时序电路,它受到行地址选通RAS、列地址选通CAS,以及写允许信号WE控制。 先由RAS将行地址送入行地址缓冲器,然后是CAS将列地址送入列地址缓冲器,CAS滞后于RAS的时间必须超过其规定值。
16Kx1位的存储芯片,共有16K个单管MOS基本单电路,它们排列成2^7×2^7的矩阵,行线就是字线,列线就是数据线,行分布在读放大器的左右两侧,128列共有128个读放大器,两侧分别和64个MOS管连接,每根列线上都有一个列地址选择管,128个列地址选择管的输出并接在一起和I/O缓冲器相连,I/O缓冲器的一端接输出驱动器,另一端接输入器,供数据输入的。 读放大器类似跷跷板,和触发器的,两端的电平相反,读出时,行列地址受RAS和CAS控制,分两次分别存入行、列地址缓冲器,选中行以后,反映到读放大器的左侧或者右侧,选中列会输出或者输入。0-63存入读出都相反,64-127存入读出相同。
读放大器左侧写入相反,右侧写入相同的
(4)动态RAM的刷新 刷新的实质是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程,上面的刷新放大器,和读放大器都是这个作用的。 存储单被访问是随机的,某些存储单长期得不到访问,其存储单内的信息会慢慢消失,必须采用定时刷新的方式,规定在一定时间内,对动态RAM的全部基本电路必做一次刷新,一般是2ms,这个时间称作刷新周期,又称再生周期。 刷新是一行一行进行的,必须在刷新周期内,由专用的刷新电路来完成对基本单电路的逐行刷新,才能保证动态RAM内的信息不丢失,通常有三种方式刷新:集中刷新、分散刷新和异步刷新。 1)集中刷新:是在规定的一个刷新周期内,对全部存储单集中一段时间逐行进行刷新,此刻必须停止读/写操作; 2)分散刷新:指对每行存储单的刷新分散到每个存取周期内完成。降低芯片性能,而且速度变慢,不需要刷新这么频繁。 3)异步刷新:是前两种方式的组合,即可缩短“死时间”,又充分利用了最大刷新间隔为2ms的特点。若将动态RAM刷新安排在CPU对指令的译码阶段,这个阶段CPU不访问存储器,刷新不会耽误CPU的时间。这种方案克服了分散刷新需要独占0.5us用于刷新,使存取周期加长且降低系统速度的缺点,又不会出现集中刷新的访存“死区”问题,从根本上提升了整机的使用效率。 动态RAM和静态RAM的比较: 动态RAM应用更加广泛的; (1)动态RAM集成度更高 ; (2)动态RAM行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减小; (3)动态RAM功耗更低; (four)动态RAM价格更便宜,容量更大的,存取周期更慢; 动态RAM的缺点:使用了电容的,速度更慢的;需要再生所以需要配置再生电路。 通常容量不大的高速缓冲存储器,用静态RAM实现。 four.2.four 只读存储器 最开始的定义是,ROM一旦被注入原始信息就不能再改变了。但随着用户的需要,想任意修改ROM内的原始信息,这便出现了PROM、EPROM和EEPROM等。 对半导体ROM而言,基本器件分两种:MOS型和TTL型。 1、掩膜ROM MOS型掩膜ROM,容量是1Kx1位,采用重合方式驱动,32×32的存储矩阵,行列交叉点有耦合件MOS管,代表输出“1”,没有代表输出“0”,用户不能改变的。
2、PROM PROM是可以实现一次性编程的只读存储器,可以由双极型电路和熔丝构成的基本单电路。熔丝断保存信息“0”,熔丝没断保存信息“1”。
3、EPROM erase、program,一种可擦除可编程只读存储器,可以由用户对其所存信息做任意次的改动,目前用的较多的EPROM是由浮动栅雪崩注入型MOS管构成的,又称FAMOS型EPROM。需要用紫外线照射驱散浮动栅,
闪速存储器(Flash Memory),又称快擦型存储器,像SDcard,U盘,SSD,都使用了这个的。 four.2.5 存储器和CPU的连接 1、存储容量的扩展 单片存储芯片的容量是有限的,需要将若干存储芯片连在一起才可以组成足够容量的存储器,称为存储容量的扩展,通常包括了 位扩展和字扩展。 (1)位扩展 增加存储字长,2片1Kx4位的芯片可组成1Kx8位的存储器,地址线连接是相同的,数据线分别连接一半,也就是输出合并在一起,输入地址是相同的。 第二副图是将8片16Kx1位的存储芯片连接在一起,可组成一个16Kx8位的存储器。
(2)字扩展 增加存储字的数量,也就是输入地址变多,但是输出长度不变,像用两片1Kx8位的存储芯片,可组成一个2Kx8位的存储器,存储字增加了一倍的 片选信号CS需要选择不同的存储芯片,因存储芯片变多了,需要选择不同的存储芯片才可以 下面的图片,就展示了A10做片选线,2K需要共11根地址线的,其中10根做1K的地址线,第11条做片选线。
(3)字、位扩展 是指既增加存储字的数量,又增加存储字长,用八片1Kx4位的芯片组成four Kx8位的存储器。10根地址线连接在芯片上,第11根地址线、第12根地址线,用来做片选线,输入到片选译码器,每两个芯片做一组,每次选中两个芯片,这两个芯片组成了1Kx8位的扩展位芯片,数据线分别连接一半。
存储器和CPU的连接 特别要注意片与片之间的地址线、数据线和控制线的连接。 (1)地址线的连接 存储芯片的容量不同,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多。 通常将CPU地址线的低位和存储芯片的地址线相连,CPU地址线的高位或在存储芯片扩充时用,或做其他用途,像片选信号等。 (2)数据线的连接 CPU的数据线数和存储芯片的数据线数也不一定相等,必须对存储芯片扩位,使其数据位数和CPU的数据线数相等。 (3)读/写命令线的连接 CPU读/写命令线一般可直接和存储芯片的读/写控制端相连,高电平读,低电平写。有些CPU读/写命令线是分开的,读命令线和存储芯片的允许读控制端相连,写命令线和存储芯片的允许写控制端相连。 (four)片选线的连接 是CPU和存储芯片正确工作的key,存储器由很多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端CS是否能接收到来自CPU的片选有效信号。 片选有效信号和CPU的访存控制信号MREQ(低电平有效)有关,因只有当CPU要求访存时,才需选择存储芯片。若CPU访问I/O,则MREQ是高电平,表示不要求存储器工作,此外,片选有效信号还和地址相关,因CPU的地址线往往多于存储芯片的地址线,故那些未与存储芯片连上的高位地址必须和访存控制信号MREQ共同产生存储芯片的片选信号,通常需要用到一些逻辑电路,像译码器及其他各种门电路,来产生片选有效信号。 (5)合理选择存储芯片 主要指存储芯片类型(RAM 或 ROM)和数量的选择,通常选用ROM存放系统程序、标准子程序和各类常数等,RAM则是为用户编程设置的。 此外,在考虑芯片数量时,要尽量使连线简单方便。 具体的内容可见书上的example: 需要写出相应的 four.2.6 存储器的校验 在计算机运行过程中,由于种种原因致使数据在存储过程中可能出现差错,为了能及时发现错误并及时纠正错误,通常可将原数据配成汉明编码的。 1、汉明码的组成 具有一位的纠错能力,由编码纠错能力可知; 编码最小距离:是指在一种编码系统中,任意两组合法代码之间的最小二进制位数的差异;两者互变需要改变的最少的二进制数的最小值; 根据纠错理论:L-1=D+C,D是检测错误的位数,C是纠正错误的位数,D>=C,检错能力大于或等于纠错能力; 划分方式的校验方式
four.2.7 提高访存速度的措施 对存储器的工作速度和容量要求也越来越高,除了寻找高速器件和采用层次结构以外,调整主存的结构也可提高访存速度。 1、单体多字系统 由于程序和数据在存储体内是连续存放的,所以CPU访存取出的信息也是连续的,若在一个存取周期内,从同一地址取出四个指令,再逐条将指令送至CPU执行,每隔1/four个存取周期,主存向CPU送一条指令。增大了存储器的带宽,提高了单体存储器的工作速度。
上图是单体四字结构存储器,每字W位,按地址在一个存取周期内可读出4xW位的指令或数据,使主存带宽提升到4倍。 使用这种方式的前提是:指令和数据在主存内必须是连续存放的,一旦是转移指令,或者操作数不能连续存放,这种方式的效果就不明显。 2、多体并行系统 采用多体模块组成的存储器,每个模块有相同的容量和存取速度,各模块都有各自独立的MAR、MDR、地址译码、驱动电路和读/写电路,能并行工作也能交叉工作。 并行工作指同时访问N个模块,同时启动、同时读出,完全并行的工作(同时读出的N个字在总线上需分时传送),下图适合于并行工作的高位交叉编址的多体存储器结构示意图。图中程序按照地址顺序存放(一个体存满后再存入下一个体),故又有顺序存储之称,高位地址表示体号,低位地址表示体内地址,只要合理调动,使不同的请求源同时访问不同的体,便可实现并行工作。 像一个体和CPU交换信息,另一个体和外部设备进行直接存储器访问。由于体内地址是连续的,便于扩充存储器。
下面展示了低位交叉,各个体轮流编址,每个体地址的后面两个都是体的编号。也叫交叉存储,低位地址用来表示体号,高位地址是体内地址,又称做模M编址。 使用交叉编址以后,可以在不改变每个模块存取周期的前提下,提高存储器的带宽,虽然每个体的存取周期不变,但4个存储体的读/写过程重叠进行,最终在一个存取周期的时间内(除去第一个存取周期外),存储器向CPU提供了32×4位二进制代码的,增加了存储器的带宽。 对于低位交叉的存储器,连续读取n个字所需的时间t1是t1=T+(n-1)a,若采用高位交叉编址,则需要nT的时间。
3、高性能存储芯片 也是提高主存速度的措施之一,DRAM集成度高、价格便宜、广泛应用于主存。人们开发出了对基本DRAM结构的增强功能。 (1)SDRAM,(synchronous DRAM,同步DRAM) (2)RDRAM,(rambus DRAM) (3)带cache的DRAM,(CDRAM):通常的DRAM芯片内集成了SRAM,做缓存 four.3 高速缓冲存储器 four.3.1 概述 1、问题的提出 在多体并行存储系统中,I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,CPU空等一段时间,降低了CPU的工作效率,要避免CPU和I/O设备争抢访存,可在CPU和主存之间加一级缓存。主存可将CPU要取得信息提前送至缓存,主存在和I/O设备交换时,CPU直接从缓存中读取所需信息,不用空等而影响效率的。 另外的方面就是,主存速度的提高始终跟不上CPU的发展,可用高速缓存Cache来解决主存和CPU速度的不匹配问题。 根据程序访问的局部性特征,可使CPU不直接访问主存,而和高速Cache来交换信息,指令和数据在主存都是连续存放的,只要将CPU近期要用到的程序和数据提前从主存送到Cache,那么就可以做到CPU在一定时间内只访问Cache。Cache采用高速的SRAM制作。 2、缓存的工作机制 Cache-主存的基本结构示意图,Cache被分成很多的块,每个块包含了很多的字,主存可以根据Cache的块数量分为很多个区,每个区包含了Cache内相同的块,两者的块内包含的字数量相等。所以主存的编址可以分成三部分:区地址t+Cache内块的地址c+块内地址的。其中区地址+Cache内块的地址,两者的个数的和等于主存编址的长度m=t+c。 下面的图片,C<<M,m包括了区的地址和块的地址
任何时刻都有些主存块处在缓存中,CPU要读取主存某个字时,有两种可能,一种是所需要的字在缓存内,可直接访问缓存,称作CPU访问Cache命中。另一种是不在缓存内,称作CPU访问Cache不命中。 CPU读内容的时候,要将主存地址的高某些地址和缓存块的标记做比较,来判断所读的内容是否在缓存中。 通常用“命中率”来衡量Cache的效率,指CPU要访问的内容已在Cache内的相关比率。
,一个程序执行期间,Nc是访问Cache的总命中次数,Nr是访问主存的总次数 Cache-主存系统的平均访问时间ta是:
,tc是命中时的Cache访问时间,tm是不命中时的主存访问时间。 e表示访问效率:
当Cache容量达到一定值时,命中率已不因容量的增大而有明显的提高。块长和命中率之间的关系更加复杂,它取决于各程序的局部特性。 3、缓存的基本结构 主要是这几个部分,Cache存储体、主存-Cache地址映射变换机构、Cache替换机构。 Cache存储体:以块做unit和主存交换信息,主存大多采用多体结构,且Cache访存的优先级最高。 地址映射变换机构:将CPU送来的主存地址转换到Cache地址,主要是主存的区号、块号(高地址)和Cache的块号的转换。 若命中,CPU可直接访问Cache存储体;若不命中,CPU在访问主存时,不仅将该字从主存通过数据总线取出,同时将它所在的内存块也调入Cache,供CPU使用,此时若Cache已经装满了,就需要使用替换策略。 替换机构:Cache内容满,替换机构确定从Cache中移出哪个块返回主存,调入其它块。
Cache的读写操作: 读操作:CPU发出访问地址,判断该字是否在Cache中,若命中直接访问Cache,将该字送至CPU,若不命中,访问主存将该字送至CPU,并调入缓存,若Cache满,腾出空间再调入。 写操作:会存在保持Cache和主存内容一致的问题。列出几种方式: 1)写直达方式(Write-through),又称存直达方式(Store-through),写操作时数据即写入Cache又写入主存,它能随时保证主存和Cache的数据始终一致,增加了访存次数。 2)写回方式(Write-back),又称拷回方式(Copy-back),写操作时只写入Cache而不写入主存,当Cache被替换时才写回主存。 存在多个处理器的系统,各自都有独立的Cache,且都共享主存,当一个缓存中的数据被修改以后,不仅主存中对应的字失效,其它缓存中相对应的字副本也失效了。
four、缓存的改进 普遍使用了多个缓存,含义包括两个方面:增加缓存的级数,将统一的缓存变成分立的缓存。 (1) 单一缓存和两级缓存 单一缓存就是CPU和主存之间只设置一个Cache。还可制作在CPU内,称片内缓存(片载缓存),提高了外部总线的使用,Cache制作在CPU内,CPU直接访问Cache而不必占用芯片外的总线(系统总线)。数据通路很短,提高了存取速度,外部总线可更多的支持I/O设备和主存的信息传输,增强了系统的整体功能。 若主存和片内缓存之间再加一级缓存,称作片外缓存,SRAM,CPU和片外缓存之间使用独立的数据路径,片内缓存称作第一级,片外缓存称作第二级。 (2)统一缓存和分立缓存 统一缓存:数据和指令都存放在同一缓存内的Cache; 分立缓存:指令和数据分别存放在不同的Cache内,一个称作指令Cache,另一个称作数据Cache。 考虑的因素:1、和主存结构相关,若计算机的主存是统一的(指令和数据存储在同一主存中),则相应的缓存Cache采用统一缓存;若指令和数据采用分开存储,则采用分立缓存;2、和机器对指令执行的控制方式相关,当采用超前控制或者流水线控制时,使用分立缓存。 four.3.2 Cache-主存地址映射 由主存地址映射到Cache地址称作地址映射。包括:像直接映射(固定的映射关系)、全相联映射(灵活性大的映射关系)、组相联映射(上述两种映射的折中)。 1、直接映射 t代表了多少个区,c代表了多少个缓存块,t+c代表了主存的块个数,m=t+c;也就是使用缓存将主存划分到很多个区(2^t个区),每个区的块个数和缓存的块总数相同(2^c个块),单个主存块和Cache块内的字数量相同。每个区的首个块对应到Cache的第0块,每个区的第二块对应到Cache的第1块,所以主存的每个块对应到缓存的固定块。 使用数学方式来表达就是模,i = j mod (2^c),下图的主存字块标记,也就是区号,计算方式是 (2^m)/(2^c),主存的第几个区,Cache字块地址,也就是块在缓存中的地址。m=t+c。区号放在了缓存的标记内。 当缓存接到CPU送来的主存地址以后,根据Cache字块地址找到缓存某个字块,然后比较这个字块内的标记和主存地址的高m个数字,也就是区号是否相同,若有效位是“1”(初始时刻的数据无效),数据有效的,若比较相同,则命中,最后根据字块内地址取出数据,若不命中或者数据无效“0”,则从主存读入并调入缓存。 优点:速度好,缺点:不够灵活,对应方式固定,存储空间使用低,降低了命中率的。
2、全相联映射 允许主存中每一字块映射到Cache中的任何一个字块地址上,可从已占满的Cache内替换出任一字块,灵活、命中高、缩小了块冲突。但是主存字块标记采用了m个,也就是主存的全部地址,Cache的“标记”数量变多,而且访问Cache时主存字块标记需要和所有的Cache“标记”来比较,逻辑电路甚多,成本高,速度慢,采用了“按内容寻址”的相联存储器来完成的。
3、组相联映射 是对直接映射和全相联映射的折中,将Cache分到Q组、每组R个块(row)。i = j mod Q,和直接映射类似,使用Q组将主存分到很多个区,每个区都有Q个块,q = c – r。所以Q组的地址可用q长度的地址来表示。区号长度也就是m-q。缓存内组的地址是q=c-r。 主存字块标记长度:m-q = m-(c-r);组地址:q=c-r,字块内地址是固定的而且相等。 组内2块r=2的组相联映射又称作二路组相联。
four.3.3 替换策略 当新的主存块需要调入Cache并且它的可用空间=0时,需要替换掉Cache的数据,产生了替换策略。 直接映射:某个主存块只和一个Cache字块有映射关系,替换策略很简单。 全相联映射 和 组相联映射 的Cache中:主存块可以写入Cache的若干地址空间。存在选择替换掉哪一个Cache的问题。 替换方式包括了:先进先出算法、近期最少使用算法 和 随机法。 1、先进先出算法(FIFO,First In First Out) 直接选择最早调入Cache的字块进行替换,不需要记录各字块的使用情况,开销小,没有使用访存的局部性规则,故不能提高Cache命中率。 2、近期最少使用算法(LRU, Least Recently Used) 比较好的使用了访存的局部性规则,替换出近期用的最少的字块。平均命中率比FIFO高,一般采用简化的方式,只记录每个块最近一次使用的时间。 3、随机法(Random) 随机地确定被替换的块,不能提高缓存的命中率的。 four.four 辅助存储器 包括了 硬磁盘存储器、软磁盘存储器、磁带存储器、光盘存储器、Flash memory闪存存储器等 1、辅助存储器的特点 又称外部存储器,简称外存的,和主存一起组成了存储器系统的 主存-辅存层次,和主存相比较,辅存具有容量大、速度慢、价格低、可脱机保存信息等特点,具有“非易失性”,而主存 速度快、成本高、容量小,大多由半导体芯片组成,不能永久保存,属“易失性”存储器。 磁表面存储器:在不同形状(盘状、带状)的载体上涂上磁性材料层,工作时,靠载磁体高速运动,由磁头在磁层上进行读/写操作,信息被记录在磁层上,这些信息的轨迹就是磁道,磁盘的磁道是环状,磁带的磁道是沿磁带长度方向的直线。
2、磁表面存储器的主要技术指标 (1)记录密度 指一个unit长度内所存储的二进制信息量,磁盘存储器用道密度和位密度来表示;磁带存储器用位密度来表示。 道密度:磁盘沿半径方向单位长度的磁道数,tpi(Track per inch), tpm(Track per mm); 磁盘上各个磁道所能记录的信息量是相同的,所以越往内 ei密度越高,越往外 ei密度越低的。 (2)存储容量 指外存所能存储的二进制信息总数量,一般用er或者字节。磁盘存储器的一种计算方式:C=n.k.s,C是存储总容量,n是存放信息的盘面数量,k是每个盘面的磁道数,s是每条磁道记录的二进制信息数量。 (3)平均寻址时间 ————-重要指标的呢 磁盘采取直接存取方式,可分两个部分:1、磁头寻找目标磁道的找道时间;2、找到磁道以后,磁头等待磁道扇区旋转到磁头下方所需要的等待时间。由于从最里圈磁道找到最外圈磁道和寻找相邻磁道所需时间是不等的,而且磁头等待不同区段所花的时间也不相等,一般取平均值。 硬磁盘的平均寻址时间比软磁盘短,速度好很多的。 磁带存储器采取了顺序存取方式,磁头不动的,磁带移动的,不需要寻找磁道,但要考虑磁头寻找记录区段的等待时间。也就是空转时间——–磁带寻址时间。 (four)数据传输率Dr 指unit时间内磁表面存储器向主机传送数据的bit数或字节数,它与记录密度Db和记录介质的运动速度相关。Dr=Db x 速度 four.four.2 磁记录yuan理和记录方式 1、磁记录yuan理 磁表面存储器通过磁头和介质的相对运动完成读/写操作。记录介质在磁头下方匀速通过,对写入线圈输入一定方向和大小的电流,使磁头导磁体磁化,产生一定方向和强度的磁场。磁头和磁层表面间的距离很小,磁力线穿透磁层表面,将磁头下方的区域磁化,根据驱动电流的不同方向,磁层表面被磁化的极性方向不相同,从而记录了0和1。
读出时,记录介质在磁头下方匀速通过,磁头切割磁力线,磁头读线圈中产生感应电势,根据感应电势方向的不同,就可以读出0和1。
2、磁表面存储器的记录方式 又称作code方式 four.four.3 硬磁盘存储器 是计算机系统中最主要的外存设备 1、硬磁盘存储器类型 盘片由硬质铝合金材料制成的,表面涂有一层可被磁化的硬磁特性材料,按磁头的工作方式可分到:固定磁头磁盘存储器 和 移动磁头磁盘存储器。按磁盘是否具有可换性:可换盘磁盘存储器 和 固定盘磁盘存储器。 固定磁头磁盘存储器:磁头固定不动,每个磁道对应一个磁头,盘片不可更换,省去了磁头沿盘片径向运动所需寻找磁道的时间。 移动磁头磁盘存储器:磁头在盘片做径向运动,也可包括多个盘片装在同一个同心主轴上,每个记录面各有一个磁头。 下图最右侧包括了6盘片,上下两外侧是保护面,其它10个盘面可作为记录面。并对应10个磁头。
可换盘磁盘存储器是指盘片可以脱机保存, 固定盘磁盘存储器:磁盘不能从驱动器中取下的。 2、硬磁盘存储器的结构 包括了 磁盘驱动器、磁盘控制器 和 盘片三大部分组成的。
(1)磁盘驱动器 是主机外一个独立的装置,又称磁盘机。驱动器主要包括了:主轴、定er驱动和数据控制三大部分的。
(2)磁盘控制器 通常制作成一块电路板,放在主机总线插槽中,接收由主机发来的命令,将它转换成磁盘驱动器的控制命令,实现主机和驱动器之间的数据格式转换和数据传送,并控制驱动的读/写。磁盘控制器是主机和磁盘驱动器之间的接口。内部又包含了两个接口,一个是对主机的接口,称作系统级接口,它通过系统总线和主机交换信息;另一个是对硬盘(设备)的接口,称作设备级接口,又称作设备控制器。它接收主机的命令,来控制设备的各种操作,一个磁盘控制器可以控制一台或几台驱动器。 four.four.four 软磁盘存储器 软磁盘存储器和硬磁盘存储器的存储机制和记录方式是相同的,结构上有较大的差别:硬盘转速高,存取速度快,软盘转速低,存取速度慢,硬盘存在固定磁头、固定盘、盘组等结构;软盘都是活动头,可换盘片结构。硬盘靠浮动磁头读/写,磁头不接触盘片,软盘磁头直接接触盘片进行读写。硬盘系统和硬盘片价格高,大部分盘片不能互换,软盘价格便宜,盘片保存方便、使用灵活、具有互换性。硬盘对环境要求苛刻,采用超净措施。软盘对环境要求不苛刻。 2、软磁盘盘片:盘基是塑料,两面涂有磁层的 光盘存储器 使用光学方式进行读/写信息的盘,应用激光在某种介质上写入信息,然后再使用激光读出信息,这种技术称作光存储技术。 若光存储使用的介质是磁性材料,即使用激光在磁记录介质上存储信息,就称作磁光存储。通常将非磁性介质进行光存储的技术称作第一代光存储技术,不能将内容抹掉重写其它内容。磁光存储技术是在光存储技术基础上发展起来的,称作第二代光存储技术,主要特点是可擦除重写。根据光存储性能和用途的不同,光盘存储器可分作三类:(1)只读型光盘(CD-ROM)由厂家事先写入,使用时用户只能读出,(compact disk-ROM)(2)只写一次型光盘(WORM write once read many),用于计算机系统中的文件存档(3)可擦写型光盘:类似磁盘的,可重复读写的。仅存在光磁记录(热磁反转)和相变记录(晶态-非晶态转变)两种。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/17817.html