计算机组成原理最终版.doc_第1页
计算机组成原理最终版.doc_第2页
计算机组成原理最终版.doc_第3页
计算机组成原理最终版.doc_第4页
计算机组成原理最终版.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理教案 姜 涛 第一章 概论1.1 计算机系统的组成和特点1.1.1 发展历史第一代(19451954)电子管与继电器存储器用导线互连,单个CPU,CPU用程序计数器和累加器顺序完成定点运算,采用机器语言和汇编语言,用CPU程序控制I/O。代表:1946年IAS机。IBM1953年IBM701第二代(19551964)晶体管,铁氧体磁芯,用印刷电路互连,采用变址寄存器、浮点运算,多路存储器,I/O处理机,采用有编译的高级语言,子程序库、批处理。代表:1962 IBM 7030第三代(19651974)小、中规模集成电路,多层印刷电路,采用流水线,高速缓存,先行处理机,微程序控制,软件采用分时操作系统,多道程序设计。代表:IBM 360370系列第四代(19751991)大、超大规模集成电路,半导体存储器,出现了并行计算机,产生了并列处理和分布式处理的软件工具和环境。代表:VAX 9000第五代(1992至今)采用VLSI工艺的高密度、高速度处理器和存储芯片,大规模并行处理,采用了可扩展和可时延的系统结构。计算机换代的突出标志 器件的换代 系统结构的改进区分三个基本概念:1、计算机的系统结构(Amdahl1964年提出的经典定义)是由程序设计者所看到的计算机系统的属性,即概念性结构和功能特性(计算机系统的外特性)。按照计算机层次结构,不同的程序设计者看到的计算机不同的属性。Amdahl提出的程序设计者指的是机器语言或编译程序设计者,他们看到的是硬件子系统的概念结构及其功能特性,包括:数据表示,寻址方式,寄存器组织(定义、数量、使用约定等),指令系统,存储系统(包括最小编址单位,编址方式,主存容量,空间等),中断机构,I/O结构等。 计算机系统结构作为一门学科,主要研究软、硬件功能分配以及对软、硬件界面的确定,即哪些功能由软件完成,哪些由硬件完成。 *透明性-在计算机技术中,一种本来是存在的事物或属性,但从某种角度看似乎不存在的现象。如,低层机器级的概念性结构和功能特性,对于高级语言程序员来说是透明的。2、计算机的组成指计算机系统结构的逻辑实现,包括机器内数据流、控制流的组成及逻辑设计等。计算机组成的设计是按希望达到的性能价格比,最佳、最合理地把各种设备和部件组成计算机,以实现所确定的系统结构。3、计算机的实现是计算机组成的物理实现。包括处理机、主存等的物理结构,器件的集成度和速度,信号传输,器件、模块的划分连接,电源、装配及制造工艺等。1.1.2 冯诺依曼体制设计思想(1945)1. 采用二进制形式来表示数据和指令2. 采用存储程序的方式(核心内容)事先编制程序,将程序(指令和数据)存入主存储器中,计算机在运行程序时就能自动地、连续地从主存储器中依次地取出指令且执行,这是计算机高速运行的基础。为了控制指令序列的执行顺序,设置一个程序计数器PC,它就象一个指针,一直指示着程序的执行过程。3. 采用由运算器、控制器、存储器、输入输出装置等五大部件组成计算机系统,并拟定了各自的功能。* 指令和数据都放在内存中,形式上他们都是二进制数,控制器如何区分它们?1.1.3 典型计算机的组成及各部件的功能控制器输入设备存储器输出设备运算器状态请求命令命令请求命令数据结果地址指令程序结果1.1.4 信息的数字化表示1.1.5 数字计算机的特点 能在程序的控制下自动地连续工作 速度快 精度高 信息存储能力强 通用性强1.1.6 计算机系统的层次结构层次结构的模型(从软硬件组成的角度划分)P16目的:将计算机和从不同的角度分成若干级(层次),根据不同的工作需要,选择某一层次去观察分析计算机的组成、性能和工作机理或进行设计。在构造一个完整的系统时,可以分层次地逐级实现,按这样结构化的设计策略实现的系统,易于建造,调试,维护和扩充。1.1.7 软硬件的逻辑等价性软件的硬化硬件的软化 固件第二章 运算方法和运算器运算方法基本思想复杂的计算四则运算和基本的逻辑运算四则运算的核心是加法2.1 数据信息的表示方法一. 常用的二进制数码序列: xn xn-1x0. x-1 x-2x-n多项式表示:S(2)= xn 2n +xn-12n-1+x020 +x-12-1 + x-m2-m =( xi为0或1)二. 八进制三. 十六进制四. 二十进制BCD码:用二进制编码来表示十进制的数(137)10 = (0001, 0011, 0111) BCD五、进制间的转换 2.2 带符号数的表示真值:正负号+绝对值机器数:符号位也数字化,分为四种表示方式:原码,补码,反码,移码1. 原码定义:x 原 = x0 x1xn ( 或x0.x1xn)表示法:最高位是符号位(0正;1负),其他有效数值部分用二进制的绝对值表示。即,正数的原码为它本身,负数的原码在最高位添1注意:1. 符号位不能参与加减运算,它是人为定义的,故计算时应拿出来 2. 0+0 原 = 0.0000 原 =1.000例:定点小数x = +0.1001,则 x 原 =0.1001x = 0.1001,则 x 原 =1.1001定点整数x = +1010,则 x 原 =01010x = 1010,则 x 原 =110102. 补码定义:x 补 = M + x (M为模数)表示法:如果正数,补码与原码相同如果负数,将负数的原码除符号位外各位取反,末位加1注意:1. +0 补 = 0 补 = 0.0002. x 补 补 = x 原例:定点小数x = +0.1011,则 x 补 =0.1011x = 0.1011,则 x 补 =1.0101定点整数x = +1010,则 x 补 =01010x = 1010,则 x 补 =101103. 反码定义:x 反 = x0 x1xn ( 或x0.x1xn)表示法:正数的反码等于真值负数的反码是将其原码除符号位以外的各位按位取反注意:1. +0 原 = 0.0000 原 = 1.0002. x 补 = x 反 + 2-n例:定点小数x = +0.1010,则 x 反 = 0.1010x = 0.1010,则 x 反 = 1.0101定点整数x = +1010,则 x 反 =01010x = 1010,则 x 反 =101014. 移码定义:x 移 = x0 x1xn (其中x0为符号位,长度1=n)表示法:x 移 = 2n + x -2n x 2n (常数2n为偏置值)注意:1.移码为定点整数! 2、移码中的符号位与原码、补码、反码表示相反。例:定点整数x = +10101,则 x 移 = 25 + 10101 = 1,10101x = 10101,则 x 移 = 25 10101 = 0,01011 -10101补=01010+00001=010112.3 浮点数的表示定点数的缺点: 定点数编程困难 表数范围小 数据存储单元利用率低格式:N = M.RE(R基数,取2)EfE1E2EmMfM1M2Mn阶符 阶码E 数符 尾数M0:+1:浮点数的规格化为了使浮点数的表示唯一,同时为了提高数据的表示精度,及扩大表示范围而对浮点数表示做出某种明确的统一的规定,将其变成这一要求的表达式,称为浮点数的规格化。所谓规格化,就是通过调整非规格化浮点数的阶码和尾数的大小,使非零的浮点数在尾数的最高位数上是一个有效值。规格化的浮点数要求其尾数的最高位必须是一个有效值1,即规格化的浮点数应该具有如下形式:N = 0.1x2x3xn2E注:规格化的浮点数有效位的最高位必须是1。当用补码表示尾数时,规格化浮点数的最高位与符号位不同,即当1/2|M|1时,应有0.1x2x3xn的形式。必须注意的是,当M=1/2时,对于原码来说,这是规格化数,而对于补码来说,这不是规格化数!例1:0.101122是规格化数例2:x10 = (+128.75) 2-10,规格化浮点数(阶码、尾数分别用原码、补码表示;阶码位数4位,阶符1位,尾数15位,数符1位)。解:x 2= 10000000.11 2-10(指数暂时不动)= 0.1000000011 2-2(指数暂时不动)Ef = 1Mf = 0E = 0010(代表十进制的2)M = 100000001100000100100100000001100000Ef E Mf M 1 8 23SEM数符 阶码 尾数x = (-1)S (1.M) 2 E-1272.2 算术逻辑运算定点加减,溢出的判别,舍入,移位,基本逻辑运算2.2.1 原码的加减操作数与结果均采用原码表示,运算时尾数进行加减,符号位单独处理8种可能的运算归结为四类操作(+A) + (+B) (+A) (-B)(A) + (B) (A) (B)(+A) + (B) (+A) (+B)(A) + (+B) (A) (B):绝对值相加,符号取被加数:绝对值相减,选择恰当的符号2.2.2 补码的加减操作数用补码表示,连同符号位一起运算,结果用补码表示(x + y)补 = (x)补 + (y)补(x y)补 = (x)补 + (y)补(y)补 (y)补称为对y补求补,连同y补的符号位一起求反加一*运算规则 运算的操作数均为补码,结果也是补码 加操作,两数直接相加 减操作,将减数求补后与被减数相加例:9+3=12(9)+(3)=-1293=69(3)=1201001101110100101001+00011+11101+11101+0001101100(1)10100(1)0011001100+1+A+BBiAiBiCPA允许存进去+i A 放到累加器A中+或门与门非门Ai ,Bi为操作数;红色为控制信号功能控制命令加+A,+B, A, CPA减+A,+,+1, A, CPA2.2.3 溢出判别(溢出运算结果超出了机器数的表示范围)正溢两个正数相加绝对值超出了范围负溢两个负数例:A0A1A2A3A4,补码运算,定点整数范围(-24241)9+3=1211+7=189+(3)=(12)010010101110111+00011+00111+111010,1100 1,0010 (1)1,0100(正常)符号位(正溢) (正常)(11)+(7)=1893=629=6101010100100011+11001+11101+10111(1) 0,1110(1) 0,0110 1,1010(负溢)(正常)(正常)定义:操作数符SA,SB,结果数符Sf符号位产生的进位Cf,最高位有效位的进位C溢出逻辑: 溢出 = SASBSf + SASBSf(即:“”+“”=“+”, “+”+“+”=“”) 溢出 = CfC双符号位9:1,0111+9:0,1001 11,0111 00,1001双符号位数表示补码:M模= 49+3=1311+7=18(11)+(7)= 18 (9)+(3)=1200,100100,101111,010111,0111+00,0001+00,0111+11,1001+11,110100,110001,0010 (1)10,1110 (1)11,0100 正溢 负溢双符号定义:00正01正溢11负10负溢双符号位:第一符号位Sf1,第二符号位Sf2 溢出:Sf1Sf22.2.4 移位逻辑移位:将数字代码当成纯逻辑代码,没有数值含义,而进行的移位(如,循环左(右)移)算术移位:数字代码有数值含义,且保留符号位而进行的移位例:算术左移0.0101(0.3125)10左移一位0.1010(0.625) 100.0101(0.3125)10右移一位0.00101(0.15625) 10算术移位规则: 原码(以及正数补码):数符不变,空位补0左移:2X右移:X / 2 负数的补码左移:数符不变,空位即末位补0右移:数符不变,空位补1例:1.1011左移一位1.01101.1011右移一位1.1101111.0110左移一位10.110010.1100右移一位11.01102.2.5 舍入规则: 原码与补码一般采用“0舍1入” 负数反码一般采用“1舍0借”例:x 原 = 0.1101舍入0.111x 原 = 0.1100舍入0.110x 补 = 1.0011舍入1.010x 补 = 1.0010舍入1.001x 反= 1.0010舍入1.000x 反 = 1.0011舍入1.001 原码与补码采取末位“恒置1”,负数反码“恒置0”2.3 基本的二进制加法器(P35)2.3.1 一位全加器Si = AiBiCiCi+1 = AiBi + BiCi + CiAi2.3.2 十进制加法器十进制8421码二进制数修正量CiA4A3A2A1A4A3A2A1090不修正10100001010+01101110001101112100101100131001111012.4 定点乘法2.4.1 原码的1位乘法例:X = 0.1101Y = 0.1011求XY = ?A = 00.0000B = |X| = 00.1101C = |Y| = .1011 AC 判断位Cn 00.0000.1011Cn=1 +B00.1101 00.1101 00.0110 1.101Cn=1 +B00.1101 01.001100.1001 11.10Cn=0 00.0100 111.1Cn=1 +B00.1101 01.000100.1000 1111加符号位 XY=1.10001111A寄存器放部分积累加和,处值为0,B放被乘数X,C存放乘数Y,运算结束时,A放结果高位部分,C放低位部分。2.4.2 不带符号的列阵乘法a3a2a1a0= Ab3b2b1b0= Ba3b0a2b0a1b0a0b0a3b1a2b1a1b0a0b1a3b2a2b2a1b2a0b2a3b3a2b3a1b3a0b0p6p5p4p3p2p1p02.4.3 带符号位的列阵乘法器2.4.4 直接补码并行乘法2. 5 定点除法器2.5.1 原码除法的原理被除数XX原 = Xf.Xn-1X0除数YY原 = Yf.Yn-1Y0q = X / Yq原 = (XfYf) + 0.(Xn-1X0 / 0.Yn-1Y0)2.5.2 可控的加(减)码单元(CAS)2.5.3 阵列除法器(P48)2.6 定点运算器的组成2.6.1 逻辑运算2.6.2 多功能算术逻辑运算单元74181芯片2.7 浮点运算2.7.1 加减运算步骤: 判零 对阶 运算 规格化(舍入,判溢)规格化处理:若尾数是双符号位补码表示,经过浮点求和(或差)运算后,尾数可能呈现以下6种形式:(1) 00.1xxx(2) 11.0xxx符合规格化,不需规格化(3) 00.0xxx(4) 11.1xxx符号位和尾数最高位相同,左规。尾数左移1位,其阶码减1(5) 10.xxxx(6) 01.xxxx符号位值不相同,表示尾数溢出,右规。尾数右移1位,其阶码加1例子:P61/25问题: 移码的加减 移、补、原码的混合运算原码:X1X0定点小数;X原 =1X=1+|X|1X0X0X2n定点整数:X原 =2nX=2n+|X|2nX0补码:X0X1 定点小数;X补 =2+X2|X|1X0 X0X2n定点整数:X补 =2n+1+X=2n+1|X|2nX0 反码:X0X1 定点小数;X反 =(22-n)+X1X0 X0X2n定点整数:X反=(2n+11)+X2nX0移码:X反 = 2nX2nX2n运算法则:X = Mx2Ex Y = My2Ey Ex,Ey一般用补码表示XY = (MxMy)2 Ex + EyX / Y = (Mx / My)2 Ex Ey X移 + X移= 2n + x + 2n + y= 2n + (2n + (x + y)= 2n + x + y移 X移 + X补= 2n + x + 2n+1 + y= 2n+1 + (2n + (x + y)= 2n+1 + x + y移mod(2n+1)= x + y移 X移 + Y补= 2n + x (2n + y)= (2n + (x y) 2n= x y移例:0.1000020 0.111112-1a. 判零b. 对阶c. 运算0.10000200.01111(1)20=0.00000(1)20d. 左规0.100 2-5移、补码混合运算定义:移码用双符号位表示第二符号位为0正(上)溢最高符号位为1溢出第二符号位为1负(下)溢第二符号位为0负数最高符号位为0正常第二符号位为1正数第三章存储系统3.1 概述3.1.1 现代计算机是以存储器为中心 存储器的性能是用三个指标来表示:速度、容量、价格a) 速度:存储器的访问周期(存储周期、存取周期、读写周期),读出时间,频带宽度b) 容量:bit:字1B = 8bByte:字节1KB = 1024B = 210Bc) 价格主存储器取指令取操作数写结果I/O数据 存储器与存储系统的区别存储系统:两个或两个以上速度容量和价格各不相同的存储器用硬件软件或软硬结合的方式连接起来成为一个系统。这个系统对应用程序员透明程序员感觉不到其存在,并且从应用程序员来看他是个存储器,这个存储器的速度接近于速度最快的那个存储器,存储的容量与容量最大的那个相近,单位容量的价格接近于最便宜的那个存储器。M1(T1 S1 C1)M1(T1 S1 C1)M1(T1 S1 C1)从外部看Tmin(T1T2Tn)Smax(S1S2Sn)Cmin(C1C2Cn) 介绍两种存储系统1)硬件调用 Cache和主存构成的Cache存储系统主存:一般用DRAM,存取周期几百毫微秒,与CPU之间速度差几百几千倍 在主存与CPU之间,设计Cache,存取速度为几十毫微秒。CPUCache主存Cache中没有则到主存中找存放当前CPU中最活跃的数据副本找到:Cache的命中没找到:Cache的未命中2) 软件(操作系统)调用由主存储器与磁盘存储器所组成的虚拟存储系统3.1.2 存储系统的体系结构三级存储结构为什么要采用以上结构!3.1.3 存储器的分类CPUCache外存主存速度最快容量最大价格最低用途:Cache,主存,磁盘,光盘材料:磁芯存储器半导体存储器(静态:SRAM;动态:DRAM)光盘存储器RAM可读可写ROM只读存取方式:SAM顺序存取DAM直接存取3.2 半导体存储单元和存储芯片3.2.1 双极型存储单元及芯片WD1D2T1T2ABVccZW读写放大器定义:T1导通,T2截止“0”T1截止,T2导通“1”写“1”:Z加低电平(0.3V),高(3V),W维持(1.6V)D1导通,T2导通,T1截止保持:Z加高电平(3V),、W保持(1.6V)D1、D2截止,、W与双稳态电路不通,T1 、T2保持原状读“1”:Z加低电平(0.3V),、W保持(1.6V)如果原来存“1”,即T1截止,T2导通 T1不通,T2导通,W经D2、T2有较大电流,无电流,读放检出W信号放大,称为读“1”3.2.2 静态MOS存储单元与芯片列译码y0y1y2y3DI4DO4DI3DO3DI2DO2DI0DO0行译码x0x1x2x3A3A2A1A0双译码:四个位平面的行译码示意图3.2.3 动态MOS存储单元与芯片存储原理:将信息以电荷的形式存在电容上,通常定义充电量至高电平为“1”放电至 低电平为“0”特点: 电容存在泄漏,因此在一段时间后对存储器内容重写一遍,称为刷新。 功耗小,集成度高1. 动态MOS四管存储单元T3T4WC1C2ZT1T2定义:C1充电至高电平,使T1导通,而C2放电至低电平,T2截止,存入信息“0”C1放电至低电平,使T1截止,而C2充电至高电平,T2导通,存入信息“1电平设置: 写“0”:Z加高(相当于书上Y选中),T3,T4 导通。W加高电平,C1充电,T1导通,C2通过T1,T3放电,T2截止 写“1”:反 保持:Z加低电平,T3,T4截止 读出:先对W,EQ * jc2 * Font:Verdana * hps10 oad(sup 9(),W)预充电,使W,态,对Z加高电平,T3,T4 导通,W,EQ * jc2 * Font:Verdana * hps10 oad(sup 9(),W)为读出线。a. 原为“0”,即C1高,T1通,则EQ * jc2 * Font:Verdana * hps10 oad(sup 9(),W)通过T1放电,EQ * jc2 * Font:Verdana * hps10 oad(sup 9(),W)将有放电电流,电流放大后作为“0”读出,同时W对C1充电可补充泄漏掉的电荷,因此四管单元为非破坏性读出,且读出过程起到一个刷新的作用。b. 原为“1”,即C2高,T2通,则W放电,放大读出“1”,同时EQ * jc2 * Font:Verdana * hps10 oad(sup 9(),W)对C2充电。2. 动态MOS单管存储单元Vcc SHAPE * MERGEFORMAT T1C1C2ZWTC1充电至高电平“1”C1充电至低电平“0”电平设置:写入:Z高,T导通写“0”:W加低电平,C1放电,“0”写“1”:W加高电平,C1充电,“1”保持:Z置低电平,T截止读出:对W预充电(Vm),再断开,W浮空。Vm=(V1+V0)/2,V1为充电至V1电压,V0是充电至V0电压,对Z加高电平,T导通读“0”:原存“0”,W对C1充电,W电平下降,定义为“0”读“1”:原存“1”,W对C1放电,W电平上升,定义为“1”这是破坏性读出,需要读后重写3. 用途:四管单元用于4K以下;单管用于4K以上4. 芯片:Intel216464 K1位Intel211616 K1位 SHAPE * MERGEFORMAT 2164地A6A5A4A3A7NCD/NA0A1A2Vcc5 DRAM刷新*大多数的DRAM芯片需要刷新,最大刷新周期为2ms*对于整个存储器而言,各个存储芯片可以同时刷新,对于每个芯片则是按行刷新,每刷一行需要一个周期。容量最大的一行为128行,则在2ms中至少应该安排128个刷新周期,即每15.6us刷新一行*对于四管DRAM读出时自动刷新,单管的DRAM破坏性读出,因此需要对其进行刷新,由一个地址记数器来提供新的行地址,刷一行记数器加1*主存处于两种状态,一种读/写/保持,另一种刷新状态如何来安排刷新周期?三种方式: 集中式刷新方式优点:主存利用率高,控制简单缺点:存在死区 分散式刷新方式优点:时序控制简单,主存没有长的死区缺点:利用率不高,速度降到一半 异步刷新方式每15.6us提出一次刷新请求,至于何时刷新则根据CPU访存的忙闲程度,一旦CPU空闲则安排刷新周期。优点:对主存的速度影响小,没有明显的死区缺点:控制复杂(可以利用专门的刷新控制起来实现)3.2.4 ROM SHAPE * MERGEFORMAT DATA BUSCPURAM片选译码器ROM“1”: RR/3.3 主存初期的组织(P77)3.3.1 存储器与CPU的连接1. 位扩展法2. 字扩展法3. 字位同时扩展法3.3.2 主存的校验校验的方法:就是让写入的信息符合某种规定的规律,在读出时校验读出的信息是否符合这一约定的规律,如果符合则读出的信息正确,大部分采用冗余校验的思想在写入二进制代码时,增加部分代码,称为校验位(冗余位),将待写的有效位和冗余位一起,按约定的顺序进行编码,这样的编码称为校验码,将其写入主存读出时没,对其进行校验,看它是否满足约定的规律。如不符合则判别有误,如果规律选择适当,不仅可以验错,还可以纠错。*概念:码字:由若干位代码组成一个字码字间的“距离”:将两个不同的码字逐位比较,代码不同位的个数叫做这两个码字间的距离。码距:一种码制中各个合法码字间的最小距离*奇偶校验两种规则:奇校验:使整个校验码(有效位+校验位)中“1”的个数为奇数 偶校验:使整个校验码(有效位+校验位)中“1”的个数为偶数e.g. 奇校验11011110111(1的个数为奇数)*海明校验*CRC循环冗余校验码有效代码看成一个多项式M(x),利用某一规则产生一个冗余位R(x)校验码生成多项式G(x) = M(x)xr + R(x)e.g. 将4位有效信息(1100)编成CRC,生成多项式为(1011)M(x) = x3+x2,G(x) = x3+x+1,r=41=3M(x)x3 / G(x) = (x3+x2)x3 / (x3+x+1) = 1100000 / 1011 = 1110+010 / 1011R(x) = 010CRC:1100010校验: _1 1 1 0_ 1011 | 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0(模2除,即做操作,余数为0则数据存储正确,反之错误)待编M(x),约定的除数为G(x),产生的余数R(x)编码方式: 将待编的K位有效信息M(x)左移r位,得到M(x)xr,这样的目标是空出r位以便拼装将来求得的r位余数 选取r+1位的生成多项式G(x),对M(x)xr做模2除M(x)xr / G(x) = Q(x) + R(x) / G(x)(模2除)产生r位的余数,所以除数G(x)要求r+1位 将左移r位的待编信息与余数R(x)做模2加(减)。即拼成循环校验码M(x)xr + R(x) = Q(x)G(x)例:有效信息D0D110101011 采用偶校验,写出校验码 采用CRC校验,生成多项式G(x) = x4 + x + 1解: 101010111 M(x) = x7+x5+x3+x+1 = 10101011 G(x) = 10011r=4 1 0 1 1 0 1 1 0 10011 | 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0R(x) = 1010CRC:1010101110103.3.3 主存储器的结构设计例:某半导体存储器容量4k8位(4kB),其中固化区2kB,选用EPROM芯片2716(2k8位),工作区2kB,选用RAM芯片2114(1k4位),地址总线A15A0,双向数据总线D7D0,设计存储器的结构解: 确定存储空间的分配及芯片数量固化区2k8(2716)1k4(2114)1k4(2114)1k4(2114)1k4(2114) 确定地址的分区及片选逻辑芯片芯片容量芯片地址片选信号片选逻辑27162kA0A10CS01121141kA0A9CS1A11101kA0A9CS2A11A100,0000,0000,0000 2k (211)0,0111,1111,11110,1000,0000,0000 4k 1k (210)0,1011,1111,11110,1100,0000,0000 1k (210)0,1111,1111,1111 画逻辑图R/D0D3D4D7D0D7CPUA0A15A10A11EPROM27162k8CS0译码器2:4A0A1021141k4R/CS121141k4R/CS121141k4R/CS221141k4R/CS2D0D7DATA BUSA0A9D0D3D4D7A1011101110A11A10A11若换成2k8呢?0,0000,0000,00002k (211)0,0111,1111,11110,1000,0000,00002k (211)0,1111,1111,1111片选逻辑: A11若换成2k4呢?D0D7CPUA0A10A11EPROM27162k8CS0A0A10D0D7DATA BUSEPROM2k8R/CS1R/D0D7D0D7CPUA0A10A11EPROM27162k8CS0译码器1:2A0A10D0D7DATA BUSEPROM2k8R/CS1R/3.4 高速缓存Cache3.4.1 Cache工作原理Cache地址CacheCPUCPU块内地址W块号B主存Cache地址变换块内地址w块号b命中未命中已满Cache替换策略替换块未满主存装入块两者是相同的同样大的快程序局部性原理*Cache是一种高速缓存,解决CPU与主存之间速度不匹配而采用的技术。*Cache是由高速SRAM组成,为了追求高速,包括管理在内的全部功能均由硬件来实现。*Cache对于应用及系统程序员是透明的。*CPU与主存之间的速度差为几百倍,一般来说,Cache与主存之间的速度差为310倍。一般来说,采用两级Cache,一级在CPU内部,容量小,速度快,第二级在主板上,容量大,速度要低5倍左右。*CPU与Cache之间交换是以字为单位,Cache与主存之间交换是以块为单位。工作原理:将Cache与主存都划分成相同大小的块,主存地址由块号B和块内地址W所组成,Cache由块号b与块内地址w组成。CPU访问主存时,主存地址主存地址寄存器,Cache地址变换部件将主存地址中的BCache中的b,放入Cache的地址寄存器,并将W直接w,装入Cache地址寄存器,这个转换成功,则Cache命中,用Cache地址访问Cache,取出数据送CPU。*如果变换不成功(未命中),产生Cache实效信息,CPU直接用主存地址访问主存,从主存中取出数据(字)CPU,同时,将包含该字的那一整块读出,送到Cache中。*Cache若已满,则采用Cache替换算法,把不常用的块先调回主存中原来存放它的地方,把空间让出来存放新调用的块。由于程序的局部性原理,每次失效时都把一块调入Cache中能够提高命中率。Cache命中率:Nc Cache存取的总次数Nm 主存存取的总次数h = Nc / (Nc + Nm) 命中率1-h 未命中率tc 命中时Cache的访问时间tm 未命中时主存的访问时间ta Cache/主存系统的平均访问时间ta = htc +(1-h)tmr = tm / tc 主存与CPU的速度差访问效率:e = tc / ta = tc /htc +(1-h)tm = 1/h+(1-h)r = 1/r+(1-r)h(当h1,e100%,r的值5%10%不宜过大)3.4.2 地址映射与变换方法3.4.2.1 全相联映射及变换全相联的映射是指主存中的任意一块信息可以映射到Cache中的任意一块的位置上目录表块内地址WCb个字块的数量Cb块的数量Mb块0块1块Cb-2块Cb-1块0块1块Mb-2块Mb-1块号B主存块号BCache块号b有效位Bb1命中b块内地址W寄存器1为有效2为无效优点: 块的冲突率小 Cache的利用率最高缺点: 代价高 相联比较所花的时间要影响Cache的访问速度3.4.2.2 直接相联映射及变换主存中的一块只能映射到Cache中的特定的块:B = B mod Cb块的数量Cb块0块Cb-1块的数量Mb块0块1块2Cb-1块Cb块Cb-1区号E块号B块内地址W主存地址相等比较未命中块号b块内地址w命中CPU区号E有效位1E区0块Mb-1区t-1优点:硬件实现简单 访问速度快缺点:块冲突率高3.4.2.3 组相联映射及地址变换映射方法:将Cache与主存划分成相同大小的块,同时,还把主存与Cache按同样大小划分成组,每一组由相同块数组成,Cache的组与主存的组之间建立直接映射关系,在两个对应的组内采用全相联映射。组Cg-1块0块Cb-1块Cb-1块2Cb-1Cache组0组1组Cg-1全相联组0块Cb-1块0组Cg组Mg-1区me-1区0主存区号E组号G组内块号B块内地址W组号g组内块号b块内地址w相联地址未命中区号E组内块号B组内块号b有效位Gb个块b1命中主存地址Cache块表如果Gb1,组相联直接相联如果Gb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论