【系统架构师修炼之道】(17):操作系统基础知识——寄存器、主存、缓存...

寄存器

中央处理器内的组成部分,有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

分类

  • 数据寄存器- 用来储存整数数字(参考以下的浮点寄存器)。在某些简单/旧的CPU,特别的数据寄存
    器是累加器,作为数学计算之用

  • 地址寄存器- 持有存储器地址,用来访问存储器。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)

  • 通用目的寄存器(GPRs) - 可以保存数据或地址两者,也就是说它们是结合数据/地址 寄存器的功用,修改他们的值通常不会对计算机的运行造成很大的影响。

  • 浮点寄存器(FPRs) - 用来储存浮点数字。

  • 常数寄存器- 用来持有只读的数值

  • 向量寄存器- 用来储存由向量处理器运行SIMD(Single Instruction, Multiple Data)指令所得到的数据

  • 特殊目的寄存器- 储存CPU内部的数据,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。

  • 指令寄存器(instruction register)- 储存现在正在被运行的指令

  • 索引寄存器(index register)- 是在程序运行时用来更改运算对象地址之用。

原理

寄存器的基本单元是 D触发器,按照其用途分为基本寄存器和移位寄存器

基本寄存器(见图)是由 D触发器组成,在 CP 脉冲作用下,每个 D触发器能够寄存一位二进制码。在 D=0 时,寄存器储存为 0,在 D=1 时,寄存器储存为 1

CPU的频率就是指数字集成电路的时钟频率

移位寄存器按照移位方向可以分为单向移位寄存器和双向移位寄存器,单向移位寄存器是由多个 D 触发器串接而成

寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据

主存

主存储器,存放指令和数据,并能由中央处理器(CPU)直接随机存取,一般采用半导体存储器,与辅助存储器相比有容量小、读写速度快、价格高等特点,存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址,而存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址,如果计算机中可编址的最小单位是字存储单元,则该计算机称为按字编址的计算机。如果计算机中可编址的最小单位是字节,则该计算机称为按字节编址的计算机。一个机器字可以包含数个字节,所以一个存储单元也可以包含数个能够单独编址的字节地址。

时间

从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间

周期

连续启动两次独立的存储器操作(如连续两次读操作)所需间隔的最小时间

分类

  • RAM

RAM一般使用动态半导体存储器件(DRAM),因为CPU工作的速度比RAM的读写速度快,所以CPU读写RAM时需要花费时间等待,这样就使CPU的工作速度下降。人们为了提高CPU读写程序和数据的速度,在RAM和CPU之间增加了高速缓存(Cache)部件。Cache的内容是随机存储器(RAM)中部分存储单元内容的副本

  • ROM

只读存储器,出厂时其内容由厂家用掩膜技术写好,只可读出,但无法改写。信息已固化在存储器中,一般用于存放系统程序BIOS和用于微程序控制

  • PROM
    PROM是可编程ROM,只能进行一次写入操作(与ROM相同),但是可以在出厂后,由用户使用特殊电子设备进行写入。

  • EROM

EPROM是可擦除的PROM,可以读出,也可以写入。但是在一次写操作之前必须用紫外线照射,以擦除所有信息,然后再用EPROM编程器写入,可以写多次

  • EEROM

EEPROM是电可擦除PROM,与EPROM相似,可以读出也可写入,而且在写操作之前,不需要把以前内容先擦去,能够直接对寻址的字节或块进行修改

  • 闪速存储器

介于EPROM与EEPROM之间。闪速存储器也可使用电信号进行快速删除操作,速度远快于EEPROM。但不能进行字节级别的删除操作,其集成度高于EEPROM

连接方式

主存与CPU之间的硬连接:主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB),存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口,MAR可以接收由程序计数器(PC)的指令地址或来自运算器的操作数的地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。MAR和MDR从功能上看属于主存,但通常放在CPU内

CPU读主存

CPU-(需要读取数据的地址)->MAR->AB-(读命令)->DB-(交换信息)->MDR-(读数据)->CPU

CPU写主存

CPU-(需要写数据的地址)->MAR->AB-(写命令)->MDR->DB

无论是读还是写数据 DB起到了数据交换作用

CPU与主存同步

  • CPU和主存间没有统一的时钟,由主存工作完成信号(MFC)通知CPU“主存工作已完成”。

  • CPU和主存采用统一时钟,同步工作,因为主存速度较慢,所以CPU与之配合必须放慢速度,在这种存储器中,不需要主存工作完成信号。

寄存器和主存速度

缓存

位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速率却比内存要快得多。缓存的出现主要是为了解决CPU运算速率与内存读写速率不匹配的矛盾,缓存往往使用的是RAM,L1 Cache(一级缓存)是CPU第一层高速缓存,一般L1缓存的容量通常在32—256KB,L1分为数据Cache,指令Cache,L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片,内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半,缓存只是内存中少部分数据的复制品。二级缓存是比一级缓存速率更慢,容量更大的内存,主要就是做一级缓存和内存之间数据临时交换的地方用。为了适应速率更快的处理器。

缓存基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静态存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是不能将缓存容量做得太大的重要原因。它的特点归纳如下:优点是节能、速率快、不必配合内存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。

工作原理

缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使CPU读取缓存的命中率非常高,一般把静态RAM缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。

作用

  • 预读取

当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中,当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速率远远高于磁头读写的速率,所以能够达到明显改善性能的目的。

  • 写入

当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上,掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地。

从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。更大容量缓存是未来硬盘发展的必然趋势

缓存算法

  • 最近最少使用算法,最近一段时间内最少被访问过的行淘汰出局,因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法

命中率

CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

缓存关系

打开CPU缓存

在BIOS设置中的StandardCMOSSetup(标准CMOS设定)有两项是用来打开或关闭缓存的:CPUInternalCache设为Enable时开启CPU内部的一级缓冲区,若设置为Disabl则为关闭,这时系统性能将大大降低;ExternalCache选项是控制主板上二级缓冲区,如果主板上有二级缓存则应设成Enable


感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,你的鼓励是作者写作最大的动力,
如果您认为本文质量不错,读后觉得收获很大,不妨小额赞助我一下,让我更有动力继续写出高质量的文章。

  • 支付宝

  • 微信

作 者 : @mousycoder

原文出处 : http://mousycoder.com/2015/10/14/the-pragmatic-sa-17/

创作时间:2015-9-15

更新时间:2015-10-16

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本科生期末试卷十三 一、 选择题(每小题1分,共10分) 1. 计算机硬件能直接执行的只有______。 A.符号语言 B 机器语言 C 汇编语言 D 机器语言和汇编语言 2. 假定下列字符码中有奇偶校验位,但没有数据错误,采用偶校验的字符码是______。 A.11001011 B.11010110 C.11000001 D.1100100 3. 运算器的主要功能是进行______。 A.逻辑运算 B.算术运算 C.逻辑运算与算术运算 D.初等函数的运算 4. 某计算机字长16位,它的存贮容量是64K,若按字编址,那么它的寻址范围是______。 A.64K B.32K C.64KB D.32KB 5. 主存贮器和CPU之间增加cache的目的是______。 A.解决CPU和主存之间的速度匹配问题 B.扩大主存贮器的容量 C.扩大CPU中通用寄存器的数量 D.扩大外存的容量 6. 用于对某个寄存器中操作数的寻址方式称为______寻址。 A.直接 B.间接 C.寄存器直接 D.寄存器间接 7. 异步控制常用于______作为其主要控制方式。 A.在单总线结构计算机中访问主存与外围设备时 B.微型机的CPU中 C硬布线控制器中 D.微程序控制器中 8. 系统总线中地址线的功能是______。 A.选择主存单元地址 B.选择进行信息传输的设备 C.选择外存地址 D.指定主存和I/O设备接口电路的地址 9. 在微型机系统中,外围设备通过______与主板的系统总线相连接。 A.适配器 B.设备控制器 C.计数器 D.寄存器 10.发生中断请求的条件是______。 A.一条指令执行结束 B.一次I/O操作结束 C.机器内部发生故障 D.一次DMA操作结束 二、填空题(每小题3分,共15分) 1.表示法主要用于表示A______数的阶码E,以利于比较两个B______数的大 小和C______操作。 2.存储器的技术指标有A______、B______、C______和存储器带宽。 3.寻址方式根据操作数的A______位置不同,多使用B______型和C______型。 4.当今的CPU芯片,除了包括定点运算器和控制器外,还包括A______,B______ 运算器和C______管理等部件。 5. PCI总线采用A______协议和B______仲裁策略,具有C______能力。 三、(10分)已知X=2010×0.11011011,Y=2100×(-0.10101100),求X+Y。 四、(9分)某加法器进位链小组信号为C4C3C2C1,低位来的进位信号为C0,请 分别按下述两种方式写出C4C3C2C1的逻辑表达式。 (1)串行进位方式 (2)并行进位方式 五、(9分)一台处理机具有如下指令格式:。 6位 2位 3位 3位 OP X 源寄存器 目标寄存器 地址 其格式表明有8个通用寄存器(长度16位),X为指定的寻址模式,主存最大容量为256 K字 1) 假设不用通用寄存器也能直接访问主存的每一个操作数,并假设操作码域OP=6位,请问地址码域应该分配多少位?指令字长度应有多少位? 2) 假设X=11时,指定的那个通用寄存器用作基址寄存器,请提出一个硬件设计规则,使得被指定的通用寄存器能访问1M的主存空间中的每一个单元。 六、(10分)假设某计算机的运算器框图如图B13.1所示,其中ALU为16位的加法器(高电平工作),SA 、SB为16位锁存器,4个通用寄存器由D触发器组成,Q端输出,其读写控制如下表所示: 读控制 写控制 R RA0 RA1 选择 W WA0 WA1 选择 1 1 1 1 0 0 0 1 1 x 0 1 0 1 x R0 R1 R2 R3 不读出 1 1 1 1 0 0 0 1 1 x 0 1 0 1 x R0 R1 R2 R3 不写入 图B13.1 要求:(1)设计微指令格式。 (2)画出ADD,SUB两条微指令程序流程图(不编码)。 七、(9分)CPU响应中断应具备哪些条件?画出中断处理过程流程图。 八、(9分)CPU执行一段程序时,cache完成存取的次数为5000次,主存完成存取的次数为200次。已知cache存取周期为40ns,主存存取周期为160ns。求: 1.Cache 命中率H。 2.Cache/主存系统的访问效率e。 3.平均访问时间Ta。 九、(10分) 1) 简要说明I/O标准接口SCSI的性能特点 2) 若设备优先级依次为CD-ROM,扫描仪、硬盘,画出SCSI接口配置图 十、(9分)用定量分析方法证明交叉存储器带宽大于顺序存储器带宽。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值