一 引 论
1.组成计算机的五大部件及其功能。
输入设备、输出设备、存储器、运算器、控制器
输入设备:把人们编好的程序和原始数据送到计算机中,并且将他们转换为计算机内部所能识别和接受的信息方式。
输出设备:将计算机的处理结果以数字、字符、图形、图像、声音等形式送出计算机。
存储器:存储器是用来存放程序和数据的部件,它是一个记忆装置,是计算机能够实现“存储程序控制”的基础。
运算器:对信息进行处理和运算的部件。运算器又叫算术逻辑运算部件(ALU),运算器的核心是加法器。运算器中有若干个寄存器。
控制器:按照人们预先确认的操作步骤,控制整个计算机的各个部件有条不紊地自动工作。
2.中央处理器(CPU) CPU=运算器+控制器
主机 主机=中央处理器+主存储器
外部设备 除去主机以外的硬件装置(如输入设备、输出设备、辅助存储器等)
3.总线:是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。
总线的特点:共享、分时
系统总线分类(数据总线、地址总线、控制总线)
系统总线按传送信息的不同可以细分为地址总线、数据总线和控制总线。
地址总线:由单方向的多根信号线组成,用于CPU向主存、外设传输地址信息
数据总线:由双方向的多根信号线组成,CPU可以沿这些线从主存或外设读入数据,也可以沿这些线向主存或外部设备送出数据
控制总线:传输控制信息,包括CUP送出的控制命令和主存或外设返回CPU的反馈信号
4.大中型计算机的典型结构
在系统连接上分为四级:主机、通道、设备控制器和外部设备
通道是承担I/O操作管理的主要部件,主机可以连接多个通道,每个通道可以接一台或几台设备控制器,每个设备控制器又可接一台或几台外部设备,这样整个系统就可以连接很多的外部设备。
5.冯诺伊曼结构和哈佛结构的原理、特点。
冯诺依曼结构
冯诺依曼结构即指令和数据是不加区别地混合存储在同一个存储器中的,共享数据总线。指令地址和数据地址指向同一个存储器的不同物理位置,指令和数据的宽度相同。由于指令和数据存放在同一存储器中,因此冯诺依曼结构中不能同时取指令和取操作数。
哈佛结构
哈佛结构的指令和数据是完全分开的,存储器分为两部分,一个是程序存储器,用来存放指令,另一个是数据存储器,用来存放数据。这意味着在一个机器周期内可以同时准备好指令和操作数,本条指令执行时可以预先读取下一条指令,所以哈佛结构的中央处理器通常具有较高的执行效率。
6.软件兼容
向上(下)兼容指的是按某档次及其编制的程序,不加修改就能运行在比它更高(低)档的机器上;
向前(后)兼容是指按某个时期投入市场的某种型号机器编制的程序,不加修改就能运行在它之前(后)投入市场的机器上。
对系列机的软件向下和向前兼容可以不做要求, 但必须保证向后兼容,力争做到向上兼容。
7.计算机的性能指标有哪些?
机器字长
是指参与运算的数的基本位数,它是由加法器、寄存器的位数决定的。所以机器字长一般等于内部寄存器的大小。字长标志着精度。
在计算机中为了更灵活地表达和处理信息,又以字节为基本单位,用大写字母B表示。一个字节等于8位二进制位。
需要注意的是,这里所说的字(数据字)和字长(机器字长)的概念是有区别的,字实际上是一个度量单位,用来度量各种数据类型的宽度,而字长表示数据运算的宽度,反映了计算机处理信息的能力。它们两者的长度可以一样,也可以不一样。
数据通路宽度
数据总线一次所能并行传送信息的位数,称为数据通路宽度。它影响到信息的传送能力,从而影响计算机的有效处理速度。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。
主存容量
主存储器所能存储的全部信息量称为主存容量。通常,以字节数来表示存储容量,这样的计算机称为字节编址的计算机,也有一些计算机是以字为单位编址的,它们用字数×字长来表示存储容量。4096×16表示存储器有4096个存储单元,每个存储单元字长为16位。
运算速度
⑴吞吐量和响应时间
吞吐量是指系统在单位时间内处理请求的数量。响应时间是指系统对请求作出响应的时间,包括CPU时间与等待时间的总和。
⑵主频和CPU时钟周期
CPU的主频又称为时钟频率,表示在CPU内数字脉冲信号振荡的速度。
主频的倒数就是CPU时钟周期,这是CPU中最小的时间元素。每个动作至少需要一个时钟周期。
⑶CPI
CPI是指每条指令执行所用的时钟周期数。
⑷CPU执行时间
(5) MIPS 和 MFLOPS
MIPS表示每秒执行多少百万条指令。
MFLOPS表示每秒执行多少百万次浮点运算。
二 数据的机器层次表示
1.数的原码、反码和补码表示(习题2-1)
原码:用最高位表示符号位,符号位为“0”表示该数为正,符号位为“1”表示该数为负,数值部分与真值相同。 [+0]原=00000 [-0]原=10000
补码:符号位表示方法与原码相同,其数值部分的表示与数的符号有关:对于正数,数值部分与真值形式相同;对于负数,其数值部分为真值形式按位取反,且在最低位加1。
反码:符号位表示方法与原码相同,但其数值部分的表示与数的符号有关:对于正数,数值部分与真值形式相同;对于负数,数值部分为真值形式按位取反。[+0]反=00000 [-0]反=11111
由真值、原码转换为补码
当X为正数时,[X]补=[X]原=X。
当X为负数时,由[X]原转换为[X]补的方法:
①X原除掉符号位外的各位取反加“1”。
②自低位向高位,尾数的第一个“1”及其右部的“0”保持不变,左部的各位取反,符号位保持不变。
对于正数它们都等于真值本身,而对于负数各有不同的表示。
原码、反码表示的正、负数范围是对称的;但补码负数能多表示一个最负的数(绝对值最大的负数),其值等于-2n(纯整数)或-1(纯小数)。
2.定点小数
若机器字长有n+1位,则:
原码定点小数表示范围为:-(1-2-n)~(1-2-n)
补码定点小数表示范围为:-1~(1-2-n)
3.定点整数
若机器字长有n+1位,则:
原码定点整数表示范围为:-(2n-1) ~(2n-1)
补码定点整数表示范围为:-2n~(2n-1)
4.浮点表示法
5. 规格化
6.移码
[X]移=偏置值+X
最常见的移码的偏置值为2^n
当字长8位时,偏置值为27
偏置值为2^n的移码具有以下特点:
在移码中,最高位为0表示负数,最高位为1表示正数。
移码为全0时,它所对应的真值最小,为全1时,它所对应的真值最大。
真值为0在移码中的表示形式是唯一的,即[+0]移=[-0]移=100…0。
移码把真值映射到一个正数域,所以可将移码视为无符号数,直接按无符号数规则比较大小。
同一数值的移码和补码除最高位相反外,其他各位相同。
7. 尾数基数r对浮点数特性的影响 N=M×r^E
可表示数的范围。随着r的增大,可表示数的范围增大。
可表示数的个数。随着r的增大,可表示数的个数增加。
数在数轴上的分布。r越大,数在数轴上的分布越稀。
可表示数的精度。r越大,可表示数的精度单调下降。
运算中的精度损失。r越大,尾数右移的机会越小,可降低运算中因尾数右移所造成的精度损失。
运算速度。r增大,将使运算中移位的次数减少,运算速度可以提高。
大、中型机r宜取大,小、微型机r宜取小。
8. IEEE 754标准浮点数
最高位为数符位;其后8位为阶码,以2为底,阶码的偏置值为127;其余23位是尾数。
对于规格化的二进制浮点数,数值的最高位总是1,为了使尾数部分能表示更多一位的有效值,IEEE 754采用隐含尾数最高数位1(这一位1不表示出来)的方法,因此尾数实际上是24位。
v=(-1)^S×(1.f)×2^(E-127)
E的最小值0和最大值255将另做他用,因此E取值为1~254
当E、m均为0时表示机器零,当E为全1,m为全0,表示±∞
不管定点数还是浮点数,每个数值都对应于数轴上的一个点。所谓数的表示范围,实际上指的是数的上、下限,它们之间是一些不连续的点,而不是一段连续的区间。
对于定点整数而言,各个点在数轴上的分布是均匀的;而对于浮点数而言,各个点在数轴上的分布是不均匀的,越靠近数轴的原点,两个相邻数之间的距离就越近。
运算结果超出尾数的表示范围却并不一定溢出,只有当阶码超出所能表示的范围时,才溢出。
9.汉字的表示方法
国标码=区位码(十六进制)+2020H
机内码=国标码+8080H
10.十进制数的编码
十进制数 | 8421码 | 2421码 | 余3码 | Gray码 |
0 1 2 3 4 5 6 7 8 9 | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 | 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 | 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 | 0000 0001 0011 0010 0110 1110 1010 1011 1001 1000 |
8421码又称为NBCD码,其主要特点是:
它是一种有权码,四位二进制代码的位权从高到低分别为8、4、2、1。
简单直观。每个代码与它所代表的十进制数之间符合二进制数和十进制数相互转换的规则。
不允许出现1010~1111。这六个代码在8421码中是非法码。
2421码其主要特点是:
它是一种有权码,四位二进制代码的位权从高到低分别为2、4、2、1。
它又是一种对9的自补码。即某数的2421码,只要自身按位取反,就能得到该数对9之补的2421码。例如:3的2421码是0011。3对9之补是6,而6的2421码是1100
不允许出现0101~1010。这六个代码在2421码中是非法码。
余3码其主要特点是:
它是一种无权码,但也可看作是一种特殊的有权码,即在8421码的基础上加+3(+0011)形成的,故称余3码。在这种编码中各位的“1”不表示一个固定的十进制数值,因而不直观。
它也是一种对9的自补码。
不允许出现0000~0010、1101~1111 。这六个代码在2421码中是非法码。
11.十进制数串
非压缩的十进制数串
一个字节可存放一个十进制数或符号的ASCII码。
非压缩的十进制数串又根据符号所处的位置,分成前分隔式数字串和后嵌入式数字串两种格式。
在前分隔式数字串中,符号位占用单独一个字节,放在数值位之前,正号对应的ASCII码为2BH,负号对应的ASCII码为2DH。
在后嵌入式数字串中,符号位不再单独占用一个字节,正号为00H,负号为40H,嵌入到最末数值位。所以正数最末位不变,负数最末位加上40H
压缩的十进制数串
每位数字仅占半个字节,其值常用8421码表示。符号位也占半个字节,并存放在最低数值位之后,通常用CH表示正号,DH表示负号。在这种表示中,规定数字的个数加符号位之和必须为偶数,当和为奇数时,应在最高数值位之前补 “0”(即第一个字节的高半字节为“0000”)
12.数据校验码
奇校验──整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验──整个校验码中“1”的个数为偶数
交叉奇偶校验
汉明校验码
校验位的位数K和信息位的位数N应满足下列关系:2K-1 ≥N+K+1。
一个字节由8位二进制位组成,此时N=8,K=5,故汉明码的总位数为13位,可表示为:
H13 H12 … H2 H1
五个校验位P5~P1对应的海明码位号应分别为:H13 、H8 、H4 、H2 、H1 ,除P5 外,其余四位都满足Pi的位号等于2i-1的关系,而P5只能放在H13上,因为它已经是海明码的最高位了。因此,有如下排列关系:
P5 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1
当S5~S1为00000时,表明无错。
当S5~S1中仅有一位不为0,表明是某一校验位出错或三位汉明码(包括信息位和校验位)同时出错
当S5~S1中有两位不为0,表明是两位汉明码同时出错,此时只能发现错误,而无法确定出错的位置。
当S5~S1中有三位不为0,表明是一位信息位出错或三位校验位同时出错,出错位的位号由S4~S1四位编码值指明,此时不仅能检查出一位错,而且能准确地定位,因此可以纠正这个错误(将该位变反)。当S5~S1=00111时, S4~S1为7,即对应H7(也就是D4 )位出错
当S5~S1中有四位或五位不为0时,表明出错情况严重,系统工作可能出现故障,应检查系统硬件的正确性。
三 指令系统
1、指令由两部分构成。(P49)指令由操作码字段和地址码字段构成
2、指令长度等于机器字长的指令称为单字长指令
指令长度等于半个机器字长的指令称为半字长指令
指令长度等于两个机器字长的指令称为双字长指令
3、规整型和非规整型编码的优缺点(P52-53)
规整型编码的操作码字段的位数和位置是固定的(定长编码)
优点:简化硬件设计、减少指令译码的时间
缺点:存在极大的信息冗余
非规整编码的操作码字段的位数不固定,且分散地放在指令字的不同位置上(变长编码)
优点:有效地压缩指令中操作码字段的平均长度
缺点:操作字段的位数和位置不固定将增加指令译码和分析的难度,使得控制器得设计复杂化
不允许短码是长码的前缀,即短码不能与长码的开始部分的代码相同,否则将无法保证解码的唯一性和实时性。
各条指令的操作码一定不能重复雷同,而且各类指令的格式安排应统一规整。
鲤鱼:某机为定长指令字结构,指令长度16 位;每个操作数的地址码长6 位,指令分为
无操作数、单操作数和双操作数三类。若双操作数指令已有K 种,无操作数指令已有L
种,问单操作数指令最多可能有多少种? 上述三类指令各自允许的最大指令条数是多少?
4.地址码结构(以双操作数为例)
四地址指令 OP A1 A2 A3 A4 (A1)OP(A2)→A3 A4=下条将要执行指令的地址
三地址指令 OP A1 A2 A3 (A1)OP(A2)→A3 (PC)+1=下条将要执行指令的地址(隐含)
4次访问主存 1取指令 23取两个操作数 4保存运算结果
二地址指令 OP A1 A2 (A1)OP(A2)→A1 (PC)+1=下条将要执行指令的地址(4次访存)
一地址指令 OP A1 另一操作数存放于累加寄存器(Acc) (Acc)OP(A1)→Acc
(PC)+1=下条将要执行指令的地址 2次访问主存 1取指令 2取操作数
零地址指令 OP 参加运算的操作数放在堆栈中,运算结果也放在堆栈中。
5、编址单位(P55)
字编码:编址单位=访问单位
特点:每位编址单位所包含的信息量与访问一次寄存器、主存所获得的信息量相同
缺点:不支持非数值应用
字节编码:编址单位<访问单位
特点:使编址单位与信息的基本单位相一致
缺点:存在着地址信息的浪费
位编码:
缺点:地址信息浪费更大
6.基本的数据寻址方式
①立即寻址:指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身。
在取指令时,操作码和操作数被同时取出,不必再次访问存储器,从而提高了指令的执行速度。
②寄存器寻址:指令中地址码部分给出一通用寄存器的编号,所指定的寄存器中存放着操作数。
优点:从寄存器存取数据比主存快得多;由于寄存器的数量较少,其地址码字段比主存单元地址字段短得多。
③直接寻址:指令中地址码字段给出的地址A就是操作数的有效地址 EA=A
④间接寻址:指令中给出的地址A不是操作数的地址,而是存放操作数地址的地址。EA=(A)
通常在指令格式中划出一位@作为标志位。@=0 直接寻址@=1 间接寻址 (至少2次访存)
⑤寄存器间接寻址:指令中的地址码给出某一通用寄存器的编号,被指定的寄存器中存放操作数的有效地址,而操作数则存放在主存单元中。这种寻址方式的指令较短,并且在取指令后只需一次访存便可得到操作数。
⑥.变址寻址:把指令给出的形式地址A与变址寄存器RX的内容相加,形成操作数有效地址:
EA=A+(RX) RX 的内容为变址值。
指令中的形式地址作为基准地址,而RX的内容作为修改量。在遇到需要频繁修改地址时,无须修改指令,只要修改变址值就可以了。
⑦.基址寻址:将基址寄存器Rb的内容与位移量D相加,形成操作数有效地址:EA=(Rb)+D
基址寄存器的内容称为基址值,指令的地址码字段是一个位移量,位移量可正可负。
基址寻址和变址寻址在形成有效地址时所用的算法是相同的,而且在一些计算机中,这两种寻址方式都是由同样的硬件来实现的。
但这两种寻址方式应用的场合不同,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。
⑧相对寻址:相对寻址是基址寻址的一种变通,由程序计数器PC提供基准地址,即:
EA=(PC)+D 位移量指出的是操作数和现行指令之间的相对位置
操作数的地址不是固定的,随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值±D。当指令地址改变时,由于其位移量不变,使得操作数与指令在可用的存储区内一起移动,所以仍能保证程序的正确执行。
⑨.页面寻址:页内地址由指令的地址码A自动直接提供,它与页面地址通过简单的拼装连接就可得到有效地址。
基页寻址(零页寻址)。由于页面地址等于全0,所以有效地址EA=0∥A(∥在这里表示简单拼接),操作数S在零页面中。
当前页寻址。页面地址就等于程序计数器PC的高位部分,所以有效地址EA=(PC)H ∥A,操作数S与指令本身处于同一页面中。
页寄存器寻址。页面地址取自页寄存器,与形式地址相拼接形成操作数有效地址:EA=(页寄存器)∥A
有些计算机在指令格式中设置了一个页面标志位(Z/C)。当Z/C=0,表示零页寻址,当Z/C=1,表示当前页寻址。
※各种数据寻址方式获得数据的速度(由快到慢)
立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、页面寻址、变址寻址(基址寻址、相对寻址)、一级间接寻址、多级间接寻址
为了能区分出各种不同寻址方式,必须在指令中给出标识。标识的方式有两种:显式和隐式。
显式的方法就是在指令中设置专门的寻址方式MOD字段,用二进制代码来表明寻址方式类型。
隐式的方式是由指令的操作码字段说明指令格式并隐含约定寻址方式。
7.堆栈与堆栈操作:
① 寄存器堆栈
用一组专门的寄存器构成寄存器堆栈,又称为硬堆栈。这种堆栈的栈顶是固定的,寄存器组中各寄存器是相互连接的,它们之间具有对应位自动推移的功能,即可将一个寄存器的内容推移到相邻的另一个寄存器中去。执行压入操作的时候,将i的内容传入i+1.
② 存储器堆栈
从主存中划出一段区域来作堆栈,这种堆栈又称为软堆栈,堆栈的大小可变,栈底固定,栈顶浮动,故需要一个专门的硬件寄存器作为堆栈栈顶指针SP,简称栈指针。栈指针所指定的主存单元,就是堆栈的栈顶。
(SP)-1→SP 修改栈指针
(A)→(SP) 将A中的数据压入堆栈
((SP))→A 将栈顶内容弹出,送入A中
(SP)+1→SP 修改栈指针
以上是由高地址(栈底)à低地址(栈顶)的堆栈,且SP指向栈顶的一个满单元
【做题时:注意是高地址à低地址还是相反,注意栈顶指针是指向栈顶满单元还是空单元】
进、出栈指令每条3次访存(找当前、改指针、放数值)
8. 数据传送类指令
一般传送指令(MOV)具有数据复制的性质,即数据从源地址传送到目的地址,而源地址中的内容保持不变。
堆栈操作指令,堆栈指令是一种特殊的数据传送指令,分为进栈(PUSH)和出栈(POP)两种。
数据交换指令,前述指令的传送都是单方向的,然而,数据传送也可以是双方向的,即将源操作数与目的操作数(一个字节或一个字)相互交换位置。
9.运算类指令
算数运算
逻辑运算(P66-67)
(1)按位测(位检查) 检测位置1,其余置0,执行“与”指令
(2)按位清(位清除) 清除位置0,其余置1,执行“与”指令
(3)按位置(位设置) 设置位置1,其余置0,执行“或”指令
(4)按位修改 利用“异或”指令 (因为A⊕1=A ̅,A⊕0=A)
(5)判符合 若两数相符合,其异或之后的结果必定为“0”。
(6)清0 自己和自己异或
移位指令
算术移位的对象是带符号数,算术移位过程中必须保持操作数的符号不变,左移一位,数值*2,右移一位,数值÷2。
逻辑移位的对象是没有数值含义的二进制代码,因此移位时不必考虑符号问题。
循环移位又按进位位是否一起循环分为两类:小循环(不带进位循环)大循环(带进位循环)
10.程序控制类指令
①转移指令
在程序执行过程中,通常采用转移指令来改变程序的执行顺序。转移指令又分无条件转移和条件转移两种。
无条件转移指令(JMP)不受任何条件的约束,直接把程序转向新的位置执行。
条件转移指令必须受到条件的约束,若条件满足时才转向新的位置执行,否则程序仍顺序执行。主要用于程序的分支。
②子程序调用指令
子程序是一组可以公用的指令序列,只要知道子程序的入口地址就能调用它。
从主程序转向子程序的指令称为子程序调用指令(CALL);转子指令安排在主程序中需要调用子程序的地方,转子指令是一地址指令。而从子程序转向主程序的指令称为返回指令(RET)。返回地址存放的位置决定了返回指令的格式,如果返回地址保存在堆栈中,则返回指令是零地址指令,如果返回地址保存在某个主存单元中,则返回指令中必须是一地址指令。
保存返回地址的方法除去堆栈以外还有:
用子程序的第一个字单元存放返回地址。转子指令把返回地址存放在子程序的第一个字单元中,子程序从第二个字单元开始执行。返回时将第一个字单元地址作为间接地址,采用间址方式返回主程序。这种方法可以实现多重转子,但不能实现递归循环。
用寄存器存放返回地址。转子指令先把返回地址放到某一个寄存器中,再由子程序将寄存器中的内容转移到另一个安全的地方,比如存储器的某个区域。这是一种较为安全的方法,可以实现子程序的递归循环。IBM370采用这种方法,这种方法相对增加了子程序的复杂程度,递归会很复杂,选择题优先选堆栈。
11.I/O类指令
①独立编址的I/O
所谓独立编址就是把外设端口和主存单元分别独立编址。指令系统中有专门的IN/OUT指令。以主机为基准,信息由外设传送到主机称为输入,反之称为输出。指令中需要给出外设端口地址。这些端口地址与主存地址无关,是另一个独立的地址空间。
②统一编址的I/O
所谓统一编址就是把外设寄存器和主存单元统一编址。指令系统中没有专门的I/O指令,就用一般的数据传送类指令来实现I/O操作。
12.指令系统的发展
CISC 指令系统中指令丰富、功能强。这些计算机被称为复杂指令系统计算机
RISC 出现了精简指令系统计算机,简称RISC。
VLIW VLIW是英文“Very Long Instruction Word”的缩写,中文含义是“超长指令字”,即一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。在这种指令系统中,编译器把许多简单、独立的指令组合到一条指令字中。当这些指令字从主存中取出放到处理器中时,它们被容易地分解成几条简单的指令,这些简单的指令被分派到一些独立的执行单元去执行。
EPIC EPIC是英文“Explicit Parallel Instruction Code”的缩写,中文含义是“显式并行指令代码”。EPIC是从VLIW中衍生出来的,通过将多条指令放入一个指令字,有效的提高了CPU各个计算功能部件的利用效率,提高了程序的性能。
四 数值的机器运算
1.全加器
基本的加法单元称为全加器,它要求三个输入量:操作数Ai和Bi、低位传来的进位Ci-1,并产生两个输出量:本位和Si、向高位的进位Ci。
2.串行加法器与并行加法器
在串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算。
并行加法器由多个全加器组成,其位数的多少取决于机器的字长,数据的各位同时运算。
进位表达式:𝐶_𝑖=𝐴_𝑖 𝐵_𝑖+(𝐴_𝑖⨁𝐵_𝑖 ) 𝐶_(𝑖−1)
Gi的含义是:若本位的两个输入均为1,必然要向高位产生进位。
Pi的含义是:当两个输入中有一个为1,低位传来的进位Ci-1将超越本位向更高的位传送。
∴Ci=Gi+PiCi-1
假定,将一级门的延迟时间定为ty,从上述公式中可看出,每形成一级进位的延迟时间为2ty。在字长为n位的情况下,若不考虑Gi、Pi的形成时间,从C0→Cn的最长延迟时间为2nty。
3.快速进位
(1)并行进位
其特点是各级进位信号同时形成。
C1=G1+P1C0
C2=G2+P2C1=G2+P2G1+P2P1C0
C3=G3+P3G2+P3P2G1+P3P2P1C0
C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
上述各式中所有各位的进位均不依赖于低位的进位,各位的进位可以同时产生。这种进位方式是快速的,若不考虑Gi、Pi的形成时间,从C0→Cn的最长延迟时间仅为2ty。随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,所以,完全采用并行进位是不现实的。
(2)分组并行进位
①单级先行(组内并行、组间串行)
第1小组组内的进位逻辑函数C1、C2、C3、C4的表达式与前述相同,C1~C4信号是同时产生的,从C0出现到产生C1~C4的延迟时间是2ty。
若不考虑Gi、Pi的形成时间,从C0àCn的最长延迟时间为2mty,其中m为分组的组数。
②多级先行(组内并行、组间并行)
若不考虑Gi、Pi的形成时间,C0经过2ty产生第1小组的C1、C2、C3及所有组进位产生函数Gi*和组进位传递函数Pi*;再经过2ty,产生C4、C8、C12、C16;最后经过2ty后,才能产生第2、3、4小组内的C5~C7、C9~C11、C13~C15。
影响并行加法器速度的关键因素是______________.*
*进位信号的产生和传递
4. 补码加减运算
补码加法
两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码之和,即
[X+Y]补=[X]补+[Y]补
补码减法
根据补码加法公式可推出:
[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补
已知[Y]补,求[-Y]补的方法是:将[Y]补连同符号位一起求反,末尾加“1”。
[-Y]补被称为[Y]补的机器负数,由[Y]补求[-Y]补的过程称为对[Y]补变补(求补),表示为:
[-Y]补=[[Y]补]变补
补码加减运算规则
(1)参加运算的两个操作数均用补码表示;
(2)符号位作为数的一部分参加运算;
(3)若做加法,则两数直接相加;若做减法,则将被减数与减数的机器负数相加;
(4)运算结果用补码表示。
补码符号扩展:原有符号位保持不变,若为正数则所有附加位都用0进行填充,若为负数则所有附加位都用1进行填充。也可以理解为是用符号位来填充附加的高位。
5. 补码的溢出判断与检测方法
被操作数为:[X]补=Xs,X1X2…Xn
操作数为:[Y]补=Ys,Y1Y2…Yn
其和差为:[S]补=Ss,S1S2…Sn
(1)采用一个符号位
两正数相加,结果为负表明产生正溢;两负数相加,结果为正表明产生负溢。
当Xs=Ys=0,Ss=1时,产生正溢。
当Xs=Ys=1,Ss=0时,产生负溢。
(2)采用进位位
两数运算时,产生的进位为:Cs,C1C2…Cn,其中:Cs为符号位产生的进位,C1为最高数值位产生的进位。
两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生正溢。
两负数相加,当最高有效位没有进位(C1=0)而符号位产生进位(Cs=1)时,发生负溢。
(3)采用变形补码(双符号位补码)
在双符号位的情况下,把左边的符号位Ss1叫做真符,因为它代表了该数真正的符号,两个符号位都作为数的一部分参加运算。这种编码又称为变形补码。
双符号位的含义如下:
Ss1Ss2=00 结果为正数,无溢出
Ss1Ss2=01 结果正溢
Ss1Ss2=10 结果负溢
Ss1Ss2=11 结果为负数,无溢出
6.移位操作与舍入操作
①原码:左移、右移 符号位均不变 空位补0
②补码:正数左移、右移,负数左移 空位补0;负数右移 空位补1.
③恒舍(切断):这是一种最容易实现的舍入方法,无论多余部分q位为何代码,一律舍去,保留部分p位不作任何改变。
④冯·诺依曼舍入法:这种舍入法又称为恒置1法,即不论多余部分q位为何代码,都把p位的最低位置1。
⑤下舍上入法:就是0舍1入。用将要舍去的q位部分的最高位作为判断标志,如该位为0,则舍去整个q位部分,如该位为1,则在前面的p位部分的最低位上加1。
⑥查表舍入法:用ROM存放下溢处理表,每次经查表来读得相应的处理结果。ROM表的容量为2K个单元,每个单元字长为K-1位。舍入处理表的内容设置一般采用的方法是:当K位数据的高K-1位为全“1”时,让那些单元按截断法填入K-1位全“1”,其余单元都按最低位(即附加位)0舍1入的结果来填其内容。
7.定点乘法运算 x(被乘数)×y(乘数)
(1)原码一位乘法 【例4-8】
①参加运算的操作数取其绝对值;
②令乘数的最低位为判断位,若为“1”,加被乘数,若为“0”,不加被乘数(加0);
③累加后的部分积右移一位;(等价于新部分积左移)
④重复n次②和③;
⑤符号位单独处理,同号为正,异号为负。
乘法运算需要3个寄存器:
A寄存器:部分积与最后乘积的高位部分,初值为0。
B寄存器:被乘数X。
C寄存器:乘数Y,运算后C寄存器中不再需要保留乘数,改为存放乘积的低位部分。
(2)补码一位乘法
<1>校正法 [X×Y]补=[X]补×(0.Y1Y2…Yn)+[-X]补×Ys
<2>比较法——Booth乘法【例4-9】
①参加运算时的数用补码表示 ②符号位参加运算
③乘数最低位后面增加一位附加为Yn+1,其初值为0
④每求一次部分积要右移一位,所以乘数的最低两位Yn、Yn+1的值决定了每次应执行的操作;
判断位Yn、Yn+1 | 操作 |
00、11 | 原部分积右移一位 |
01 | 原部分积加[X]补后右移一位 |
10 | 原部分积加[-X]补后右移一位 |
⑤移位按补码右移规则进行
⑥需做n+1次累加,n次移位,第n+1次不移位
(3)补码两位Booth乘法【例4-10】
①参加运算的数用补码表示;
②符号位参加运算;
③乘数最低位后增加一位附加位Yn+1,初值为0;
④根据乘数的最低三位Yn-1YnYn+1的值决定每次应执行的操作;比较结果(Yi+1+Yi-2Yi-1)
⑤移位按补码右移规则进行。
Yn-1 Yn Yn+1
0 0 0 +0,右移2位
0 0 1 +[X]补,右移2位
0 1 0 +[X]补,右移2位
0 1 1 +2[X]补,右移2位
1 0 0 +2[-X]补,右移2位
1 0 1 +[-X]补,右移2位
1 1 0 +[-X]补,右移2位
1 1 1 +0,右移2位
⑥被乘数和部分积取3符号位,
乘数位n为偶数时,乘数取2符号位,共需(n/2)+1次累加,n/2次移位(最后一次不移位);乘数位n为奇数时,乘数取1符号位,共需(n+1)/2次累加和移位,最后一次仅移一位。
8.定点除法运算 x(被除数)÷y(除数)
(1)原码不恢复余数法(原码加减交替法)【例4-12】
余数为- 商0 +|Y| 左移
余数为+ 商1 -|Y| 左移
除法运算需要3个寄存器:
A寄存器:存放被除数X,最后A寄存器中剩下的是扩大了若干倍的余数。运算过程中A寄存器的内容将不断地发生变化。
B寄存器:存放除数Y。
C寄存器:存放商Q,它的初值为0。
需要指出的是,在定点小数除法运算时,为了防止溢出,要求被除数的绝对值小于除数的绝对值,即|X|<|Y|,且除数不能为0。另外,在原码加减交替法中,当最终余数为负数时,必须恢复一次余数,使之变为真余数,注意此时不需要再左移了。
(2)补码除法【例4-13】
9.规格化浮点运算
(1)加减运算
①对阶:小阶向大阶看齐。采用这一规则的原因是当阶码小的数的尾数右移并相应增加阶码时,舍去的仅是尾数低位部分,误差比较小。要使小阶的阶码增大,则相应的尾数右移,直到两数的阶码相等为止。对于r=2,每右移一位,阶码加1。
②尾数加减
③规格化尾数
④浮点数的溢出情况由阶码的符号决定
(2)乘法运算
①阶码相加,两个浮点数的阶码相加,当阶码用移码表示的时候,应注意要减去一个偏置值2n。
②尾数相乘,与定点小数乘法算法相同
③尾数结果规格化
∵1/2<|MA|<1,1/2<|MB|<1,所以1/4<|MA×MB|<1。
当1/2<|MA×MB|<1时,乘积已是规格化数,不须再进行规格化操作;当1/4< |MA×MB|<1/2时,则需要左规一次。
(3)除法运算
①尾数调整:首先须要检测|MA|<|MB|。如果不小于,则MA右移一位,EA+1→EA,称为尾数调整。因为A、B都是规格化数,所以最多调整一次。
②阶码相减,两浮点数的阶码相减,当阶码用移码表示时,应注意要加上一个偏置值2n。
③尾数相除:与定点小数除法算法相同。开始进行了尾数调整,运算结果一定在规格化范围内。
10.十进制整数的加减运算
8421 余三码 等码字的相加 一定要考虑校正的问题
8421码的加法规则:
①两个8421码相加时, “逢2进1”;
②当和≤9,无需校正;
③当和>9,则+6校正; +6校正函数=C4’+S4’S3’+S4’S2’
④在做+6校正的同时,将产生向上一位的进位。
十进制余3码加法规则:
两个余3码相加,“逢2进1”;
若其和没有进位,则减3(即+1101)校正;-3校正函数=
若其和有进位,则加3(即+0011)校正。 +3校正函数=C4’
11.运算器的基本组成与实例
(1)运算器的基本组成
基本的运算器包含以下几个部分:
实现基本算术、逻辑运算功能的ALU,
提供操作数与暂存结果的寄存器组,
有关的判别逻辑和控制电路等。
①带多路选择器的运算器 有选择的同时获得两路输入数据
②带输入锁存器的运算器 暂存两个操作数
(2). 运算器的内部总线结果
①单总线结构运算器 运算器实现一次双操作数的运算需要分成三步
②双总线结构运算器 运算器实现一次双操作数的运算需要两步。
③三总线结构运算器 实现一次双操作数的运算仅需要一步
(3)4位ALU芯片举例
74181 四位一组 组内并行 74182 组间并行的先行进位部件
五 存储系统概念与层次化结构
1.存储器的分类
<1>. 按存储器在计算机系统中的作用分类
(1)高速缓冲存储器:高速缓冲存储器位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU高速地使用它们。
(2)主存:用来存放计算机运行期间所需要的程序和数据,CPU可直接随机地进行读写访问。
(3)辅助存储器:用来存放当前暂不参与运行的程序和数据,以及一些需要永久性保存的信息。CPU不能直接访问它。
<2>. 按存取方式分类
(1)随机存取存储器RAM:CPU可以对RAM单元的内容随机地读写访问。CPU对任何一个存储单元的读写时间是一样的,即存取时间是相同的。
(2)只读存储器ROM:ROM可以看作RAM的一种特殊方式,存储器的内容只能随机读出而不能写入。
(3)顺序存取存储器SAM:SAM的内容只能按某种顺序存取,存取时间与信息在存储体上的物理位置有关。
(4)直接存取存储器DAM:当要存取所需的信息时,第一步直接指向整个存储器中的某个小区域(如磁盘上的磁道),第二步在小区域内顺序检索或等待,直至找到目的地后再进行读写操作。
<3>.按存储介质分类
(1)磁芯存储器:利用两种不同的剩磁状态表示“1”或“0”。磁芯存储器的特点是信息可以长期存储,不会因断电而丢失;但磁芯存储器的读出是破坏性读出。
(2)半导体存储器:采用半导体器件制造的存储器,主要有双极型(TTL电路或ECL电路)存储器和MOS型存储器两大类。
(3)磁表面存储器:在金属或塑料基体上,涂复一层磁性材料,用磁层存储信息,常见的有磁盘、磁带等。
(4)光存储器:采用激光技术控制访问的存储器,如CD-ROM(只读光盘) 、WORM(CD-R,写一次多次读光盘) 、CD-RW(可读可写光盘)。
<4>.按信息的可保存性分类
断电后,存储信息即消失的存储器,称易失性存储器。断电后信息仍然保存的存储器,称非易失性存储器。
如果某个存储单元所存储的信息被读出时,原存信息将被破坏,则称破坏性读出。具有破坏性读出的存储器,每当一次读出操作之后,必须紧接一个重写(再生)的操作,以便恢复被破坏的信息。
如果读出时,被读单元原存信息不被破坏,则称非破坏性读出。
2.层次结构
从CPU的角度来看,n种不同的存储器(M1~Mn)在逻辑上是一个整体。其中:M1速度最快、容量最小、位价格最高;Mn速度最慢、容量最大、位价格最低。整个存储系统具有接近于M1的速度,相等或接近Mn的容量,接近于Mn的位价格。在多级存储层次中,最常用的数据在M1中,次常用的在M2中,最少使用的在Mn中。
Cache存储系统是为解决主存速度不足而提出来的。在Cache和主存之间,增加辅助硬件,让它们构成一个整体。从CPU看速度接近Cache的速度,容量是主存的容量,每位价格接近于主存的价格。Cache存储系统全部用硬件来调度,它对系统程序员和应用程序员都是透明的。
虚拟存储系统是为解决主存容量不足而提出来的。在主存和辅存之间,增加辅助的软硬件,让它们构成一个整体。从CPU看,速度接近主存的速度,容量是虚拟的地址空间,每位价格是接近于辅存的价格。由于虚拟存储系统需要通过操作系统来调度,因此对系统程序员是不透明的,但对应用程序员是透明的。
2.主存储器的基本结构与存储单元
位是二进制数的最基本单位,也是存储器存储信息的最小单位。
一个二进制数由若干位组成,当这个二进制数作为一个整体存入或取出时,这个数称为存储字。存放存储字或存储字节的主存空间称为存储单元或主存单元,大量存储单元的集合构成一个存储体,程序和数据都存放在存储体中,它是存储器的核心。存储单元是 CPU 对主存可访问操作的最小存储单位。
大端方案将高字节(MSB)存放在低地址,小端方案将高字节存放在高地址。采用大端方案进行数据存放符合人类的正常思维,而采用小端方案进行数据存放利于计算机处理。
3.主存的主要技术指标
(1)存储容量是指主存所能容纳的二进制信息总量。对于字节编址的计算机,以字节数来表示容量;对于字编址的计算机,以字数与其字长的乘积来表示容量。
(2)存取速度
①存取时间Ta:存取时间又称为访问时间或读/写时间,它是指从启动一次存储器操作到完成该操作所经历的时间。
②存取周期Tm:存取周期又可称作读写周期、访存周期,它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次访问存储器操作之间所需要的最短时间。
一般情况下,Tm>Ta
4. 数据在主存中的存放
(1)不浪费存储器资源的存放方法
四种不同长度的数据一个紧接着一个存放。优点是不浪费宝贵的主存资源,但存在的问题是:当访问的一个双字、单字或半字跨越两个存储字时,存储器的工作速度降低了一倍,而且读写控制比较复杂。
(2)从存储字的起始位置开始存放方法
无论要存放的是字节、半字、单字或双字,都必须从存储字的起始位置开始存放,而空余部分浪费不用。优点是:无论访问一个字节、半字、单字或双字都可以在一个存取周期内完成,读写数据的控制比较简单。缺点是:浪费了宝贵的存储器资源。
(3)边界对齐的数据存放方法
双字地址的最末三个二进制位必须为000,单字地址的最末两位必须为00,半字地址的最末一位必须为0。它能够保证无论访问双字、单字、半字或字节,都在一个存取周期内完成,尽管存储器资源仍然有浪费,但是浪费比第⑵种存放方法要少得多。
5. 动态RAM的刷新,静态RAM,即SRAM其存储电路以双稳态触发器为基础;动态RAM,即DRAM其存储电路以电容为基础。
(1)刷新间隔
为了维持MOS型动态记忆单元的存储信息,每隔一定时间必须对存储体中的所有记忆单元的栅极电容补充电荷,这个过程就是刷新。
一般选定MOS型动态存储器允许的最大刷新间隔为2ms,也就是说,应在2ms内,将全部存储体刷新一遍。
刷新和重写(再生)是两个完全不同的概念。重写是随机的,某个存储单元只有在破坏性读出之后才需要重写。而刷新是定时的,即使许多记忆单元长期未被访问,若不及时补充电荷的话,信息也会丢失。重写一般是按存储单元进行的,而刷新通常以存储体矩阵中的一行为单位进行的。
(2)刷新方式
①集中刷新方式
在允许的最大刷新间隔内,按照存储芯片容量的大小集中安排若干个刷新周期,刷新时停止读写操作。 刷新时间=存储体矩阵行数×刷新周期
这里刷新周期是指刷新一行所需要的时间,由于刷新过程就是“假读”的过程,所以刷新周期就等于存取周期。
集中刷新方式的优点是读/写操作时不受刷新工作的影响,因此系统的存取速度比较高。缺点是在集中刷新期间必须停止读/写,这一段时间称为“死区”,而且存储容量越大,死区就越长。
②分散刷新方式
分散刷新是指把刷新操作分散到每个存取周期内进行,此时系统的存取周期被分为两部分,前一部分时间进行读/写操作或保持,后一部分时间进行刷新操作。一个系统存取周期内刷新存储矩阵中的一行。
分散刷新方式没有死区,但是,它也有很明显的缺点,第一是加长了系统的存取周期,如存储芯片的存取周期为0.5ms,则系统的存取周期应为1ms,降低了整机的速度;第二是刷新过于频繁(本例中每32ms就重复刷新一遍),尤其是当存储容量比较小的情况下,没有充分利用所允许的最大刷新间隔(2ms)。
③异步刷新方式
异步刷新方式可以看成前述两种方式的结合,它充分利用了最大刷新间隔时间,把刷新操作平均分配到整个最大刷新间隔时间内进行:相邻两行的刷新间隔=最大刷新间隔时间/行数
对于32×32矩阵,在2ms内需要将32行刷新一遍,所以相邻两行的刷新时间间隔=2ms/32=62.5ms,即每隔62.5ms安排一个刷新周期,在刷新时封锁读/写。
(3)刷新控制
MOS型动态RAM的刷新要注意几个问题:
刷新对CPU是透明的。
刷新通常是一行一行地进行的,每一行中各记忆单元同时被刷新,故刷新操作时仅需要行地址,不需要列地址。
刷新操作类似于读出操作。
因为所有芯片同时被刷新,所以在考虑刷新问题时,应当从单个芯片的存储容量着手,而不是从整个存储器的容量着手。
6.RAM芯片分析
<1>RAM芯片
存储芯片通过地址线、数据线和控制线与外部连接。地址线是单向输入的,其数目与芯片容量有关。如容量为1024×4时,地址线有10根;容量为64K×1时,地址线有16根。数据线是双向的,可输入,可输出,其数目与数据位数有关。如1024×4的芯片,数据线有4根;64K×1的芯片,数据线有1根。控制线主要有读/写控制线(写允许线)和片选线两种,读/写控制线是用来决定芯片是进行读操作还是写操作的,片选线是用来决定该芯片是否被选中的。
由于DRAM芯片集成度高,容量大,为了减少芯片引脚数量,DRAM芯片把地址线分成相等的两部分,分两次从相同的引脚送入。两次输入的地址分别称为行地址和列地址,行地址由行地址选通信号(RAS)送入存储芯片,列地址由列地址选通信号(CAS)送入存储芯片。采用了地址复用技术,DRAM芯片每增加一条地址线,实际上是增加了两位地址,增加了4倍的容量。
<2>地址译码方式:地址译码电路能把地址线送来的地址信号翻译成对应存储单元的选择信号。
(1)单译码方式
单译码方式又称字选法,它所对应的存储器结构是字结构的,容量为M个字的存储器(M个字,每字b位),排列成M行×b列的矩阵,矩阵的每一行对应一个字,有一条公用的选择线wi(字线)。字线选中某一行时,同一行中的各位就都被选中,由读写电路对被选中的各位实施读出或写入操作。
字结构的优点是结构简单,缺点是使用的外围电路多,成本昂贵。更严重的是,当字数大大超过位数时,存储器会形成纵向很长而横向很窄的不合理结构,所以这种方式只适用于容量不大的存储器。
(2)双译码方式
双译码方式又称为重合法。通常是把K位地址码分成接近相等的两段,一段用于水平方向作X地址线,供X地址译码器译码;一段用于垂直方向作Y地址线,供Y地址译码器译码。X和Y两个方向的选择线在存储体内部的一个记忆单元上交叉,以选择相应的记忆单元。
<3> RAM的读/写时序
7. 半导体只读存储器ROM
ROM的最大优点是具有非易失性,即使电源断电,ROM中存储的信息也不会丢失。
根据编程方法的不同,ROM通常可以分为以下几类:
(1)掩膜式ROM (MROM):字符点阵存储器、微程序存储器等。
它的内容是由半导体生产厂家按用户提出的要求在芯片的生产过程中直接写入的,写入后任何人都无法改变其内容。
(2)一次可编程ROM(PROM): 结破坏型和熔丝型,可编程逻辑阵列等。
PROM允许用户利用专门的设备(编程器或写入器)写入自己的程序,但一旦写入后便无法改变,因此它是一种一次性可编程的ROM。
(3)可擦除可编程ROM(EPROM): EEPROM和UVEPROM,专用编程器。
这种ROM的内容不仅可以由用户利用编程器写入,而且可以对其内容进行多次改写。但要注意的是:在+5V的电源条件下只能读出不能写入,用编程器写入信息时必须用+25V的高压。与前两种ROM相比,EPROM使用起来最为方便,因此应用非常广泛。
UVEPROM(紫外线擦除)用紫外线灯进行擦除的,所以只能对整个芯片擦除,而不能对芯片中个别需要改写的存储单元单独擦除和重写。
EEPROM(电擦除)用电气方法来进行擦除的,它在联机条件下可以用字擦除方式擦除,也可以用数据块擦除方式擦除。以字擦除方式操作时,能够只擦除被选中的那个存储单元的内容;在数据块擦除方式操作时,可擦除数据块内所有单元的内容。
(4)闪速存储器(FLASH):在线可擦除,U盘、SSD固态硬盘等。
一种快擦写型存储器,它的主要特点是:既可在不加电的情况下长期保存信息,又能在线进行快速擦除与重写,兼备了EEPROM和RAM的优点。
8.主存的扩展
(1)位扩展
位扩展指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的。位扩展的连接方式是将各存储芯片的地址线、片选线和读/写线相应地并联起来,而将各芯片的数据线单独列出
(2)字扩展
字扩展是指仅在字数方向扩展,而位数不变。字扩展将芯片的地址线、数据线、读/写线并联,由片选信号来区分各个芯片。
(3)字和位同时扩展
当构成一个容量较大的存储器时,往往需要在字数方向和位数方向上同时扩展,这将是前两种扩展的组合,实现起来也是很容易的。
10.存储芯片的地址分配和片选
(1)线选法
线选法就是用除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中与之对应的存储芯片。请注意,这些片选地址线每次寻址时只能有一位有效,不允许同时有多位有效,这样才能保证每次只选中一个芯片(或组)。
线选法的优点是不需要地址译码器,线路简单,选择芯片不需要外加逻辑电路,但仅适用于连接存储芯片较少的场合。同时,线选法不能充分利用系统的存储器空间,且把地址空间分成了相互隔离的区域,给编程带来了一定的困难。
(2)全译码法
全译码法将片内寻址外的全部高位地址线作为地址译码器的输入,把经译码器译码后的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。
全译码法的优点是每片(或组)芯片的地址范围是唯一确定的,而且是连续的,也便于扩展,不会产生地址重叠的存储区,但全译码法对译码电路要求较高。
(3)部分译码
所谓部分译码即用片内寻址外的高位地址的一部分来译码产生片选信号。
如用4片2K×8的存储芯片组成8K×8存储器,需要四个片选信号,因此只要用两位地址线来译码产生。设地址总线有20位(A19~A0),则寻址8K×8存储器时,无论A19~A13取何值,只要A12=A11=0,而均选中第一片,只要A12=0,A11=1,均选中第二片,……。也就是说,8K RAM中的任一个存储单元,都对应有2(20-13) =27 个地址,这种一个存储单元出现多个地址的现象称地址重叠。
11.主存储器和CPU的连接
(1)主存和CPU之间的硬连接
主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)。此时,我们把主存看作一个黑盒子,存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口。MAR可以接受来自程序计数器的指令地址或来自运算器的操作数地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。
(2)CPU对主存的基本操作
读操作是指从CPU送来的地址所指定的存储单元中取出信息,再送给CPU,其操作过程是:
地址→MAR→AB CPU将地址信号送至地址总线
Read CPU发读命令
Wait for MFC 等待存储器工作完成信号
((MAR))→DB→MDR 读出信息经数据总线送至CPU
写操作是指将要写入的信息存入CPU所指定的存储单元中,其操作过程是:
地址→MAR→AB CPU将地址信号送至地址总线
数据→MDR→DB CPU将要写入的数据送至数据总线
Write CPU发写命令
Wait for MFC 等待存储器工作完成信号
由于CPU和主存的速度存在着差距,通常有两种匹配方式:同步存储器读取和异步存储器读取。上面给出的读/写基本操作是以异步存储器读取来考虑的,CPU和主存间没有统一的时钟,由存储器工作完成信号MFC通知CPU存储器工作已完成。
对于同步存储器读取,CPU和主存采用统一时钟,因为主存速度较慢,所以CPU与之配合必须放慢速度。在这种存储器中,不需要存储器工作完成信号。
12. PC系列微机的存储器接口
8位
如果数据总线为8位(如微机系统中的PC总线),而主存按字节编址,则匹配关系比较简单。一个总线周期中读/写8位。
16位
在一个总线周期内可读/写两个字节,即先送出偶地址,然后同时读/写这个偶地址单元和随后的奇地址单元,用低8位数据总线传送偶地址单元的数据,用高8位数据总线传送奇地址单元的数据,这样读/写的字(16位)被称为规则字。如果读/写的是非规则字,即是从奇地址开始的字,这时需要安排两个总线周期才能实现。
为了实现这样的传送,需要将存储器分为两个存储体,一个存储体的地址均为偶数,称为偶地址(低字节)存储体,它与低8位数据线相连;另一个存储体的地址均为奇数,称为奇地址(高字节)存储体,与高8位数据线相连。8086和主存之间可以传送一个字节(8位)数据,也可以传送一个字(16位)数据。
32位
32位微处理器的存储器系统由4个存储体组成,每个存储体的存储空间为1GB,存储体选择通过选择信号BE3 、BE2 、BE1 和BE0 实现。如果要传送一个32位数,那么4个存储体都被选中;若要传送一个16位数,则有2个存储体(通常是BE3 和BE2 或者BE1 和BE0 )被选中;若传送的是8位数,只有一个存储体被选中。
64位
64位微处理器的存储器系统由8个存储体组成,每个存储体的存储空间为512MB(Pentium)或8GB(Pentium Pro),存储体选择通过选择信号BE7 ~BE0 实现。如果要传送一个64位数,那么8个存储体都被选中;如果要传送一个32位数,那么4个存储体都被选中;若要传送一个16位数,则有2个存储体被选中;若传送的是8位数,只有一个存储体被选中。
13. 提高存储系统性能的技术
(1)程序的局部性原理
程序的局部性包括:时间局部性和空间局部性。
时间局部性是指如果一个存储单元被访问,则可能该单元会很快被再次访问。这是因为程序存在着循环。
空间局部性是指如果一个存储单元被访问,则该单元邻近的单元也可能很快被访问。这是因为程序中大部分指令是顺序存储、顺序执行的,数据一般也以向量、数组、树、表等形式簇聚地存储在一起。
(2)Cache的基本结构
高速缓冲技术就是利用程序的局部性原理,把程序中正在使用的部分存放在一个高速的容量较小的Cache中,使CPU的访存操作大多数针对Cache进行,从而使程序的执行速度大大提高。
Cache和主存都被分成若干个大小相等的块,每块由若干字节组成。由于Cache的容量远小于主存的容量,它保存的信息只是主存中最活跃的若干块的副本。
(3)虚拟存储器
虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的存储空间。在这个大空间里,用户可以自由编程,完全不必考虑程序在主存是否装得下以及这些程序将来在主存中的实际存放位置。
用户编程的地址称为虚地址或逻辑地址,实际的主存单元地址称为实地址或物理地址,虚地址空间要比实地址空间大得多。
在实际的物理存储层次上,所编程序和数据在操作系统管理下,先送入磁盘,然后操作系统将当前运行所需要的部分调入主存,供CPU使用,其余暂不运行部分留在磁盘中。
页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器
常用的替换算法有哪三种?
最佳置换算法(OPT)
先进先出(FIFO)算法
近期最少使用(LRU)算法
六 中央处理器
1.中央处理器的功能和组成
(1)CPU的主要功能:
控制指令的执行顺序;
产生控制信号控制部件工作;
控制各步操作的时序;
数据处理:算术和逻辑运算;
(2)CPU的组成从硬件设计的角度:
CPU包含数据通路(执行部件)和控制器(控制部件)两部分。
数据通路指:指令执行过程中,数据所经过的路径,包括路径中的部件。它是指令的执行部件,包含寄存器、运算部件等。
控制器:对指令进行译码,生成指令对应的控制信号,控制数据通路的动作。它能对执行部件发出控制信号,因此是指令的控制部件。如译码器、时序控制等。
指令流指的是处理器执行的指令序列,数据流指的是根据指令操作要求依次存取数据的序列。从程序运行的角度来看,控制器的基本功能是对指令流和数据流在时间与空间上实施正确的控制
对指令流的控制:指令流出的控制、指令分析与执行的控制 、指令流向的控制
对数据流的控制:数据的流入与流出的控制;对数据变换、加工等操作的控制。
对于冯·诺依曼结构的计算机而言,数据流是根据指令流的操作而形成的,也就是说数据流是由指令流来驱动的。
(3)CPU中的主要寄存器
通用寄存器:通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。通用寄存器一般可以由CPU直接访问。
专用寄存器:专用寄存器是专门用来完成某一种特殊功能的寄存器。CPU中至少要有五个专用的寄存器。它们是:程序计数器(PC)、指令寄存器(IR)、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、状态标志寄存器(PSWR)。
①程序计数器 PC
程序计数器用来存放正在执行的指令地址或接着要执行的下条指令地址。对于顺序执行的情况,PC的内容应不断地增量(加“1”),以控制指令的顺序执行
②指令寄存器 IR
指令寄存器用来存放从存储器中取出的指令。当指令从主存取出暂存于指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。
③存储器数据寄存器 MDR
存储器数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也暂时将它们存放在存储器数据寄存器中。
④存储器地址寄存器 MAR
存储器地址寄存器用来保存当前CPU所访问的主存单元的地址。由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的读/写操作完成为止。
当CPU和主存进行信息交换,无论是CPU向主存存/取数据时,还是CPU从主存中读出指令时,都要使用存储器地址寄存器和数据寄存器。
⑤状态标志寄存器 PSWR
状态标志寄存器用来存放程序状态字的。程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。它主要包括两部分内容:一是状态标志,如:进位标志(C)、结果为零标志(Z)等,大多数指令的执行将会影响到这些标志位;二是控制标志,如:中断标志、陷阱标志等。
(4)CPU的组成
控制器的主要功能有:
①从主存中取出一条指令,并指出下一条指令在主存中的位置。
②对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
③指挥并控制CPU、主存和输入/输出设备之间的数据流动方向。
运算器的主要功能有:
①执行所有的算术运算;
②执行所有的逻辑运算,并进行逻辑测试。
2.CPU的主要技术参数
(1)字长 CPU的字长是指在单位时间内同时处理的二进制数据的位数。
(2)内部工作频率
内部工作频率又称为内频或主频,它是衡量CPU速度的重要参数。CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系。因此主频仅是CPU性能表现的一个方面,而不代表CPU的整体性能。内部时钟频率的倒数是时钟周期,这是CPU中最小的时间元素。每个动作至少需要一个时钟周期。
(3)外部工作频率
它是由主板为CPU提供的基准时钟频率。早期,CPU的内频就等于外频。目前,CPU的内频越来越高,相比之下主存的速度还很缓慢,如果外频设计得跟内频同步,则主存都将无法跟上CPU的速度。所以现在外频跟内频不再只是一比一的同步关系,从而出现了所谓的内部倍频技术,导致了“倍频”的出现。内频、外频和倍频三者之间的关系是:内频=外频×倍频
(4)前端总线频率
前端总线(Front Side Bus),通常用FSB表示,它是CPU和外界交换数据的最主要通道,主要连接主存、显卡等数据吞吐率高的部件,因此前端总线的数据传输能力对计算机整体性能作用很大。
(5)QPI数据传输速率
取代FSB的基于包传输的高速点到点连接技术QPI(快速通道互联)。
QPI抛弃了FSB易混淆的单位MHz,而使用GT/s、MT/s,明确的表示总线实际的数据传输速率,而不是时钟频率。T/s即transfers per second,表示每秒数据传输的次数。QPI总线采用的是2:1比率,即实际的数据传输速率两倍于实际的总线时钟频率。QPI 的时钟频率基于2.4 GHz、3.2 GHz,则QPI的数据传输速率为4.8GT/s、6.4GT/s,如时钟频率2.4GHz的QPI的数据传输速率是2.4GHz×2=4.8GT/s。
(6)片内Cache的容量
L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存。一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。大多数CPU的一级数据缓存和一级指令缓存具有相同的容量。
L2 Cache是影响CPU性能的关键因素之一,在CPU核心不变化的情况下,增加L2 Cache的容量能使性能大幅度提高。
L3 Cache是为读取L2 Cache后未命中的数据设计的—种缓存。
(7)工作电压
(8)地址总线宽度
地址总线宽度决定了CPU可以访问的最大的物理地址空间,简单地说就是CPU到底能够使用多大容量的主存。例如,Pentium有32位地址线,可寻址的最大容量为232=4096MB(4GB),Itantium有44位地址线,可寻址的最大容量为244=16TB。
(9)数据总线宽度
数据总线宽度则决定了CPU与外部Cache、主存以及输入输出设备之间进行一次数据传输的信息量。如果数据总线为32位,每次最多可以读写主存中的32位
(10)制造工艺
线宽是指芯片内电路与电路之间的距离,可以用线宽来描述制造工艺。线宽越小,意味着芯片上包括的晶体管数目越多。
3.控制器的基本组成与硬件实现
(1)指令部件
指令部件的主要任务是完成取指令并分析指令。指令部件包括:
程序计数器(PC)
指令寄存器(IR)
指令译码器(ID):又称操作码译码器或指令功能分析解释器。暂存在指令寄存器中的指令只有在其操作码部分经过译码之后才能识别出这是一条什么样的指令,并产生相应的控制信号提供给微操作信号发生器。
地址形成部件:根据指令的不同寻址方式,用来形成操作数的有效地址,在微、小型机中,一般不设专门的地址形成部件,而是利用运算器来进行有效地址的计算。
(2)时序部件
时序部件能产生一定的时序信号,以保证机器的各功能部件有节奏地进行信息传送、加工及信息存储。时序部件包括:
脉冲源。脉冲源用来产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供基准信号。
启停控制逻辑。作用是根据计算机的需要,可靠地开放或封锁脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。启停控制逻辑保证启动时输出的第一个脉冲和停止时输出的最后一个脉冲都是完整的脉冲。
节拍信号发生器。又称脉冲分配器。脉冲源产生的脉冲信号,经过节拍信号发生器后产生出各个机器周期中的节拍信号,用以控制计算机完成每一步微操作。
(3)微操作信号发生器
一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分割的操作称为微操作。微操作信号发生器也称为控制单元(CU)。不同的机器指令具有不同的微操作序列。
(4)中断控制逻辑 中断控制逻辑是用来控制中断处理的硬件逻辑。
(5)控制器硬件实现方法
①组合逻辑型
这种控制器称为常规控制器或硬布线控制器,它是采用组合逻辑技术来实现的,其微操作序列形成部件是由门电路组成的复杂树形网络。
组合逻辑控制器的最大优点是速度快,但是微操作信号发生器的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化。一旦微操作信号发生器构成之后,要想增加新的控制功能是不可能的。
②存储逻辑型
这种控制器称为微程序控制器,它是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。
微程序控制器的设计思想和组合逻辑设计思想截然不同。它具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令执行速度比组合逻辑控制器慢。
③组合逻辑和存储逻辑结合型
这种控制器称为PLA控制器,它是组合逻辑技术和存储逻辑技术结合的产物,它克服了两者的缺点,是一种较有前途的方法。
4.时序系统
(1)指令周期和机器周期
指令周期是指取指令、分析指令到执行完该指令所需的全部时间。由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期不尽相同。
机器周期通常又称CPU周期,通常把一条指令划分为若干个机器周期,每个机器周期完成一个基本操作。
指令周期=i×机器周期
(2)节拍
在一个机器周期内,要完成若干个微操作。这些微操作有的可以同时执行,有的需要按先后次序串行执行。因而需要把一个机器周期分为若干个相等的时间段,每一个时间段对应一个电位信号,称为节拍电位信号。
节拍的宽度取决于CPU完成一次基本操作的时间。
由于不同的机器周期内需要完成的微操作内容和个数是不同的,因此,不同机器周期内所需要的节拍数也不相同。
①统一节拍法:
以最复杂的机器周期为准定出节拍数,每一节拍时间的长短也以最繁的微操作作为标准。这种方法采用统一的、具有相等时间间隔和相同数目的节拍,使得所有的机器周期长度都是相等的,因此称为定长CPU周期。
②分散节拍法:
按照机器周期的实际需要安排节拍数,需要多少节拍,就发出多少节拍,这样可以避免浪费,提高时间利用率。由于各机器周期长度不同,又称为不定长CPU周期。
③延长节拍法:
在照顾多数机器周期要求的情况下,选取适当的节拍数,作为基本节拍,如果在某个机器周期内统一的节拍数无法完成该周期的全部微操作,则可以延长节拍。
④时钟周期插入
在一些微型机中,时序信号中不设置节拍,而直接使用时钟周期信号。一个机器周期中含有若干个时钟周期,时钟周期的数目取决于机器周期内完成微操作的多少及相应功能部件的速度。一个机器周期的基本时钟周期数确定之后,还可以不断插入等待时钟周期。
(3)工作脉冲
在节拍中执行的有些操作需要同步定时脉冲,为此,在一个节拍内常常设置一个或几个工作脉冲,作为各种同步脉冲的来源。工作脉冲的宽度只占节拍电位宽度的1/n,并处于节拍的末尾,只要能保证所有触发器都可靠、稳定地翻转就可以了。
在只设置机器周期和时钟周期的微型机中,一般不再设置工作脉冲,因为时钟周期既可以作为电位信号,其前后沿又可以作为脉冲触发信号。
(4)多级时序系统
小型机中常采用机器周期、节拍、工作脉冲三级时序系统。每个机器周期M中包括若干节拍,每个节拍内有一个脉冲。在机器周期间、节拍电位间、工作脉冲间既不允许有重叠交叉,也不允许有空隙,应该是一个接一个的准确连接。
5.控制方式
(1)同步控制方式
各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。由于不同的指令,操作时间长短不一致,同步控制方式应以最复杂指令的操作时间作为统一的时间间隔标准。
这种控制方式设计简单,容易实现,但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。
又称为集中控制方式或中央控制方式。
(2)异步控制方式
异步控制方式即可变时序控制方式。各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。
异步控制采用不同时序,没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。
又称为分散控制方式或局部控制方式。
(3)联合控制方式
这是同步控制和异步控制相结合的方式。实际上现代计算机中几乎没有完全采用同步或完全采用异步的控制方式,大多数是采用联合控制方式。通常的设计思想是:在功能部件内部采用同步方式或以同步方式为主的控制方式,在功能部件之间采用异步方式。
6.指令执行的基本过程与微操作序列
(1)取指令阶段
取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去。具体的操作:
①将程序计数器(PC)中的内容送至存储器地址寄存器(MAR),并送地址总线(AB)。(PC)→MAR
②由控制单元(CU)经控制总线(CB)向主存发读命令。 Read
③从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR)。 M(MAR) →MDR
④将MDR的内容送至指令寄存器(IR)中。 (MDR)→IR
⑤将PC的内容递增,为取下一条指令做好准备。 (PC)+1→PC
(2)分析取数阶段
取出指令后,机器立即进入分析指令阶段,指令译码器ID可识别和区分不同的指令类型及各种获取操作数的方法。
(3) 执行阶段
执行阶段完成指令规定的各种操作,形成稳定的运算结果,并将其存储起来。
(4)加法指令的微操作序列 ADD R1,@R0
这条指令完成的功能是把R0的内容作为地址送到主存以取得第一操作数,再与R1的内容相加,最后将结果送回主存中。即实现: ((R0))+(R1)→(R0)
(5)转移指令的微操作序列 JC A
这是一条条件转移指令,若上次运算结果有进位(C=1),就转移;若上次运算结果无进位(C=0),就顺序执行下一条指令。设A为位移量,转移地址等于PC的内容加位移量。
7. 微程序控制的基本概念
微程序设计技术的实质是将程序设计技术和存储技术相结合,即用程序设计的思想方法来组织操作控制逻辑,将微操作控制信号按一定规则进行信息编码(代码化),形成控制字(微指令),再把这些微指令按时间先后排列起来,存放在一个只读存储器中。
一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。微命令是控制计算机各部件完成某个基本微操作的命令。
微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。
微命令有兼容性和互斥性之分,兼容性微命令是指那些可以同时产生,共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。兼容和互斥都是相对的。
微指令是指控制存储器中的一个单元的内容,即控制字,它是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址。
一条微指令通常至少包含两大部分信息:
① 操作控制字段,又称微操作码字段,用以产生某一步操作所需的各微操作控制信号。
② 顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。
微指令有垂直型和水平型之分,垂直型微指令接近于机器指令的格式,每条微指令只能完成一个基本操作。水平型微指令则具有良好的并行性,每条微指令可以完成较多的基本操作。
从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间称为微周期。
一系列微指令的有序集合就是微程序。一条机器指令对应于一段微程序。
微程序是由微指令组成的,它用于描述机器指令,实际上是机器指令的实时解释器,它是由计算机的设计者事先编制好并存放在控制存储器中的。对于程序员来说,计算机系统中微程序一级的结构和功能是透明的。
8.微指令编码法【作业题 6-20】
(1)直接控制法(不译码法)
这种方法结构简单,并行性强,操作速度快,但是微指令字太长,若微命令的总数为N个,则微指令字的操作控制字段就要有N位。另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。
(2)最短编码法
最短编码法的微指令字长最短,但要通过一个微命令译码器译码以后才能得到需要的微命令。微命令数目越多,译码器就越复杂。这种方法同一时刻只能产生一个微命令,不能充分利用机器硬件所具有的并行性,使得机器指令对应的微程序变得很长,而且对于某些要求在同一时刻同时动作的组合性微操作将无法实现。
(3)字段编码法 每段内采用最短编码法,段与段之间采用直接控制法。
① 把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。这样有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。
② 应与数据通路结构相适应。
③ 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
④ 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。
9. 微程序控制器的基本组成和工作过程
10.微程序入口地址的形成
11.后继微地址的形成
12.微程序设计
七 总线
1.总线是一种用来连接各功能部件并承担部件之间信息传送任务的公共信息通道。
总线特点: 分时共享。采用总线的优点:成本低,简化了硬件的设计,便于批量生产、系统扩充和修改性好、便于故障诊断和维修。缺点是总线的带宽形成了信息交换的瓶颈,从而限制了系统中总的 I/O吞吐量。
3.总线的分类
按传输方向分类:单向和双向总线
单向总线上的信息只能向一个方向传送,如地址总线。
双向总线上的信息可以向两个方向上传送,如数据总线。
按功能层次分类:片内总线、系统总线、通信总线(外总线)
按数据线的多少分类:并行总线、串行总线
4.总线事务:
通常把在总线上一对设备之间的一次信息交换过程称为一个“总线事务”,把发出总线事务请求的部件称为主设备,与主设备进行信息交换的对象称为从设备。例如CPU要求读取存储器中某单元的数据,则CPU是主设备,而存储器是从设备。总线事务类型通常根据它的操作性质来定义,典型的总线事务类型有“存储器读”、“存储器写”、“I/O读”、“I/O写”、“中断响应”等,一次总线事务简单来说包括两个阶段:地址阶段和数据阶段。
5.总线的组成及性能指标
(1)总线结构
①单总线结构:只有一条系统总线,所有部件通过系统总线接入。
②双总线结构:在单总线的基础上增加一条专用于CPU和主存之间的数据传送通路。
③三总线结构:在双总线的基础上再增加一条I/O总线。
(2)总线的主要性能指标有:
①总线宽度:总线宽度指的是总线的线数,它决定了总线所占的物理空间和成本。
②总线带宽:总线带宽定义为总线的最大数据传输率,即每秒传输的字节数。在同步通信中,总线的带宽与总线时钟密不可分,总线时钟频率的高低决定了总线带宽的大小。总线的带宽公式为:
B=W×F/N
其中,W为数据总线宽度,通常以字节为单位;F为总线的时钟频率;N为完成一次数据传送所用的时钟周期数。
③总线负载:总线负载指连接在总线上的最大设备数量。
④总线复用:总线分时复用是指在不同时段利用总线上同一个信号线传送不同信号,例如地址总线和数据总线共用一组信号线。采用这种方式的目的是减少总线数量,提高总线的利用率。
⑤总线猝发传输:猝发(突发)式数据传输是一种总线传输方式,即在一个总线周期中可以传输存储地址连续的多个数据。
6.总线标准
(1)系统总线标准 P225-226
PC/XT总线、ISA总线、MCA总线、EISA总线、VL总线(VESA局部总线)、PCI局部总线、AGP、PCI-Express
(2)外部总线标准 P227-230
串口、并口、USB接口、IEEE-1394接口、eSATA接口
八 外部设备
1.磁介质存储器的技术指标
(1)记录密度
记录密度是指磁介质存储器单位长度或单位面积磁层表面所能存储的二进制信息量。通常以道密度和位密度表示,也可用两者的乘积面密度来表示。
①道密度:道密度又叫横向密度,是指垂直于磁道方向上单位长度中的磁道数目,道密度的单位是道/英寸(TPI)或道/毫米(TPM)。
磁道指的是磁头写入磁场在记录介质表面上形成的磁化轨迹。
②位密度:位密度又叫纵向密度,是指沿磁道方向上单位长度中所能记录的二进制信息的位数,位密度的单位为位/英寸(bpi)或位/毫米(bpm)。
(2)存储容量
存储容量是指整个磁介质存储器所能存储的二进制信息的总量,一般用位或字节为单位表示,它与存储介质尺寸和记录密度直接相关。
磁介质存储器的存储容量有非格式化容量和格式化容量两种指标。非格式化容量是指磁记录表面上可全部利用的磁化单元数;格式化容量是指用户实际可以使用的存储容量。格式化容量一般约为非格式化容量的60~80%左右。
(3)平均存取时间
当磁头接到读/写命令,从原来的位置移动到指定位置,并完成读/写操作的时间叫存取时间。对于磁盘存储器来说,存取时间主要包括4部分:第一部分是指磁头从原先位置移动到目的磁道所需要的时间,称为定位时间或寻道时间;第二部分是指在到达目的磁道以后,等待被访问的记录块旋转到磁头下方的等待时间,称为旋转时间或等待时间;第3部分是信息的读写操作时间,也称为传输时间;最后是磁盘控制器的开销。
传输时间和控制器的开销相对平均寻道时间Ts和平均等待(等待)时间Tw来说要小得多,所以磁盘的平均存取时间Ta约等于:Ta=Ts+Tw=(Tsmax+Tsmin)/2+(Twmax+Twmin)/2
(4)数据传送率
磁介质存储器在单位时间内向主机传送数据的位数或字节数,称为数据传送率Dr,单位为位/秒或字节/秒。 Dr=D×v (D是记录密度,对于单道存取装置磁盘为位密度,多道如磁带是位密度与磁道数的乘积, v是记录介质通过磁头时的速度)
(5)误码率
误码率是衡量磁介质存储器出错概率的参数,它等于读出的出错信息位数和读出总的信息位数之比。
2. 数字磁记录方式
直接记录方式
当记录密度较低时,可以不编码,直接按记录信息的“0”、“1”排序记录。这类方式有:
(1)归零制(RZ)
(2)不归零制(NRZ)
(3)不归零-1制(NRZ-1)
这是一种改进的不归零制,记录“1”时,磁头线圈中写电流改变方向,使磁层磁化翻转;而记录“0”时,写电流方向维持不变,保持原来的磁化状态,所以称之为见“1”就翻的不归零制。
按位编码记录方式
(1)调相制(PE)
记录“1”时,写电流在位周期中间由负变正;记录“0”时,写电流在位周期中间由正变负。当连续出现两个或两个以上“1”或“0”时,为了维持上述原则,在位周期的边界上也要翻转一次。这种记录方式常用于磁带机中。
(2)调频制(FM)
调频制是根据写电流的频率来区分记录“1”或“0”的。记录“1”时,写电流在位周期中间和边界各改变一次方向;记录“0”时,写电流仅在位周期边界改变一次方向。因此,记录“1”的磁化翻转频率为记录“0”时的两倍,故又称倍频制。若以T0表示位周期,则调频制的磁化翻转间距为0.5T0和T0。
(3)改进的调频制(MFM)
MFM制是在FM制基础上改进的一种记录方式,又称为延迟调制码或密勒码。其编码规则为:记录“1”时,写电流在位周期中间改变方向;记录独立的一个“0”,写电流不改变方向;记录连续的两个“0”,写电流在位周期边界改变方向。
改进的调频制的磁化翻转间距有三种:T0、1.5T0、2T0 ,对应于三种不同的频率,所以又称为三频制。
(4)改进的改进型调频制(M2FM)
M2FM制的编码规则为:记录“1”时,写电流在位周期中间改变方向;记录独立的一个“0”,写电流不改变方向;记录连续的两个“0”,写电流在位周期边界处改变方向,产生磁化翻转;记录连续两个以上的“0”,写电流在前两个“0”的位周期边界处改变方向,以后每隔两个“0”的位周期边界处,写电流再改变一次方向,产生翻转翻转。
改进的改进型调频制的磁化翻转间距有四种:T0、1.5T0、2T0、2.5T0,对应于四种不同的频率,所以又称为四频制。
3.硬盘的信息分布和磁盘地址
在硬盘中信息分布呈如下层次:记录面、圆柱面、磁道、扇区。
(1)记录面
硬盘驱动器中可有多个盘片(数量为1~20片),每个盘片有两个记录面,每个记录面对应一个磁头。
(2)磁道
在读/写时,磁头固定不动,盘片高速旋转,磁化区构成一个闭合圆环,称为磁道。在盘面上,一条条磁道形成一组同心圆,最外圈的磁道为0号,往内则磁道号逐步增加。(每个盘片可有500~2500条磁道)。
(3)圆柱面
在一个盘组中,各记录面上相同编号(位置)的诸磁道构成一个圆柱面。例如,某驱动器有4片8面,则8个0号磁道构成0号圆柱面,8个1号磁道构成1号圆柱面,……。硬盘的圆柱面数等于一个记录面上的磁道数,圆柱面号即对应的磁道号。
引入圆柱面的概念是为了提高硬盘的存储速度。当主机要存入一个较长的文件时,若一条磁道存不完,就需要存放在几条磁道上。这时主机应选择位于同一记录面上的几条磁道?还是选择同一圆柱面上的几条磁道呢?很明显,选择同一圆柱面上的磁道,则各记录面的磁头可同时定位,换道的时间仅是磁头选择电路的译码时间。所以在存入文件时,应首先将一个文件尽可能地存放在同一圆柱面中。
(4)扇区
通常将一条磁道划分为若干个段,每个段称为一个扇区或扇段,每个扇区存放一个定长信息块(如512个字节)。一条磁道划分多少扇区,每个扇区可存放多少字节,一般由操作系统决定。磁道上的扇区编号从1号开始。
(5)硬盘地址
主机向磁盘控制器送出有关寻址信息,磁盘地址一般表示为:
驱动器号、圆柱面(磁道)号、记录面(磁头)号、扇区号
4.硬盘存储器的技术参数
硬盘的主要性能指标
(1)硬盘容量(2)主轴转速(3)道密度(4)平均存取时间
(5)缓存 缓存存在的目的是为了解决硬盘内部与接口数据之间速度不匹配的问题,它可以提高硬盘的读写速度。
(6)数据传输率
硬盘的数据传输率分为内部数据传输率和外部数据传输率。内部数据传输率主要依赖于硬盘的旋转速度。外部数据传输率指的是系统总线与硬盘缓冲区之间的数据传输率,外部数据传输率与硬盘接口类型和缓存大小有关。
硬盘参数的计算
例:设有一个盘面直径为18 in的磁盘组,有20个记录面,每面有5in的区域用于记录信息,记录密度为100道/in(TPI)和1000b/in(bpi),转速为2400 r/min,道间移动时间为0.2ms,试计算该盘组的容量、数据传送率和平均存取时间。
非格式化容量=最大位密度×最内圈磁道周长×总磁道数
格式化实际上就是在磁盘上划分记录区,写入各种标志信息和地址信息,这些信息占用了磁盘的存储空间,故格式化之后的有效存储容量要小于非格式化容量。
格式化容量=每道扇区数×扇区容量×总磁道数
硬盘的NCQ技术
通过对内部队列中的命令进行重新排序实现智能数据管理,避免像传统硬盘那样机械地按照接收命令的先后顺序移动磁头读写硬盘的不同位置,从而减少了磁头反复移动带来的损耗,延长了硬盘的寿命。
根据磁盘地址,硬盘寻址的过程如下:寻找目标圆柱面、寻找目标盘面、寻找目标扇区
5.光盘存储器
(1)光盘存储器的类型
CD光盘:
CD光盘采用波长为780 nm的红外激光读取和写入数据,其容量在700MB左右。
CD-ROM光盘
只读型光盘,它预先写入数据和程序,使用时用户只能读出,不能修改或写入新内容。
CD-R光盘
CD-R光盘可由用户写入信息,写入后可以多次读出,但只能写入一次,信息写入后将不能再修改,所以称为只写一次型光盘。
CD-RW光盘
可以写入、擦除、重写的可逆性记录系统。此光盘类似于磁盘,可重复读/写。
DVD光盘:
DVD代表通用数字化多功能光盘,简称高容量CD。DVD光盘采用波长为650nm的红色激光读取和写入数据,其容量可以达到4.7GB。
蓝光盘
蓝光盘(BD)利用波长较短(405nm)的蓝色激光读取和写入数据,并因此而得名。通常来说波长越短的激光,能够在单位面积上记录或读取更多的信息。因此,蓝光极大地提高了光盘的存储容量。
(2)光盘存储器的组成及工作原理
CLV技术,即恒定线速度读取方式。这是在低于12倍速的光驱中使用的技术。它是为了保持数据传输率不变,而随时改变旋转光盘的速度。读取内道数据的旋转速度比外部要快许多。
CAV技术,即恒定角速度读取方式。它是用同样的速度来读取光盘上的数据。但光盘上的内道数据比外道数据传输速度要低,越往外越能体现光驱的速度。
PCAV(Partial-CAV)技术是融合了CLV和CAV的一种技术,称为区域恒定角速度读取方式。它是在读取外道数据时采用CLV技术,在读取内道数据时采用CAV技术,从而提高了整体数据传输的速度。
(3)光盘驱动器
CD-ROM驱动器
为了提高光盘的存储容量,12倍速以下的光驱一般采用“恒定线速度(CLV)”技术,CD-ROM会根据现在正在读取的是光盘外道数据还是内道数据来控制电机以不同的角速度旋转光盘,读内道数据时,光盘转速快,读外道数据时,光盘转速慢。这样就能够保证在盘片的不同区域内保持恒定的数据传输率,并且对光盘的纠错性能也能有一定的提高。但是在光驱速度进一步提高之后,如果仍采用恒定线速度的方法,电机将在高速的旋转下,不断地改变速度以保证在不同的内、外光道时线速度仍然相同,这将使电机的老化加剧。
为了解决上述问题,对于12倍速以上的高速光驱采用了“恒定角速度(Constant Anguler Velocity,CAV)”技术。此时,光驱主轴的转速是恒定的,由于在光盘外道读取的数据要比内道多,所以外道的数据传输率高于内道的数据传输率。
CD-R驱动器
由于CD-R驱动器可以对光盘写入,因此也称为光盘刻录机。光盘刻录机的速度有读取速度和写入速度,而后者才是刻录机的重要技术指标。其次应该注意数据缓冲区的大小。缓冲区的大小是衡量刻录机的重要指标之一。
CD-RW驱动器
CD-RW驱动器可代替大部分的CD-R驱动器,因为CD-RW驱动器与CD-R完全兼容,并能以同样的能力读写通用的CD-R介质。CD-RW光盘的烧制或刻录的方式也与CD-R光盘相同,主要区别在于它们可以擦除掉而多次重写,重写次数可以达1000多次。
DVD驱动器
DVD 光盘需要 DVD 驱动器。CD-ROM、CD-R 、CD-RW 驱动器不能读DVD 光盘,而 DVD 驱动器可以读 CD-ROM、CD-R、 CD-RW 光盘。
BD光驱
BD光驱是能读取或刻录蓝光光盘的光驱,向下兼容DVD、CD格式。BD光驱有内置和外置之分,内置BD光驱多采用SATA接口,外置BD光驱则采用USB接口。
6. 键盘
(1)键开关和键盘类型
键盘上的每个按键起一个开关的作用,又称键开关。键开关分为接触式和非接触式两大类。
按照键码的识别方法,键盘可分为两大类型:编码键盘和非编码键盘。
编码键盘具有识别有无键按下和哪个键被按下的能力,并能将按下的那个键的代码送给计算机。编码键盘又有静态编码键盘和动态编码键盘之分。
非编码键盘通过执行键盘扫描程序对键盘进行扫描,以识别按键的位置,并提供与按下的键对应的位置码(扫描码),然后将位置码通过查ROM表转换成对应的ASCII码。这种键盘的响应速度不如编码键盘,但是它通过软件编程可为键盘中某些键的重新定义提供更大的灵活性,因此得到广泛地使用。
(2)键盘扫描
①逐行扫描法
通过执行键盘扫描程序对键盘矩阵进行扫描,以识别按键的行、列位置。程序查询的步骤如下:
Ⅰ查询是否有键按下:
首先由CPU对行线的各位置“0”,然后CPU再从列线读入数据。若读入的数据为全“1”,表示无键按下;只要读入的数据中有一位不为“1”,表示有键按下,接着查按键的位置。
Ⅱ查询已按下键的位置
CPU首先使X0=0,X1~X7全为“1”,读入Y0~Y7,若全为“1”,表示按键不在这一行;接着使X1=0,其余各位为全“1”,读入Y0~Y7……直至Y0~Y7不全为“1”为止,从而确定了当前按下的键在键盘矩阵中的位置。
Ⅲ按行号和列号求键的位置码
得到的行号和列号表示按下键的位置码。若该键是字符键,则根据这个键码到专用的ROM中取出此键的ASCII码;若该键是功能键,则转入相应的服务子程序,完成其功能操作。
②行列扫描法
在扫描每一行时,读列线,若读得的结果为全“1”,说明没有键按下,即尚未扫描到闭合键;若某一列为低电平,说明有键按下,而且行号和列号已经确定。然后用同样的方法,依次向列线扫描输出,读行线。如果两次所得到的行号和列号分别相同,则键码确定无疑,即得到闭合键的行列扫描码。
(3)键盘控制电路
8048单片机周期性执行固化在其ROM中的键盘管理和扫描程序,对键盘矩阵进行扫描,发现、识别按下键的位置,形成与按键位置对应的扫描码,对扫描码进行并-串转换,并将串行的键扫描码和时钟送给微机主板上的键盘接口电路,供系统使用。
8048通过译码器,分别产生16个行扫描信号和8个列扫描信号。扫描方式采用行列扫描法,8048将列号和行号拼成一个7位的扫描码(列号为前3位,行号为后4位),例如第4列第7行键被按下,则得到闭合键(接通)扫描码为47H。
在8048中有一个20字节的缓冲队列,能暂存20个扫描码。当多键滚按时,若干按键的扫描码便被放入缓冲队列。按先进先出的原则从缓冲区取出扫描码送往接口,以免高速按键时主机来不及进行中断响应和处理。
键盘内部的单片机根据按键位置向主机发送的仅是该按键位置的键扫描码。当键按下时,输出的数据称为接通扫描码;当键松开时,输出的数据称为断开扫描码。
(4)键盘接口电路
①串行接收键盘送来的接通扫描码和断开扫描码,转换成并行数据并暂存;
②收到一个完整的扫描码后,立即向主机发中断请求;
③主机中断响应后读取扫描码,并转换成相应的ASCII码存入键盘缓冲区。对于控制键,设置相应的状态;
④接收主机发来的命令,传送给键盘,并等候键盘的响应,自检时用以判断键盘的正确性。
7.打印输出设备
(1)打印机的主要性能指标
①分辨率(DPI)
打印机的打印质量是指打印出的字符的清晰度和美观程度,用打印分辨率表示,单位为每英寸打印多少个点(DPI)。
②打印速度和打印幅面
③接口方式
④缓冲区
最简单的缓冲区只能存放一行打印信息,当这一行信息打印完后,即清除掉缓冲区的信息,并告诉主机“缓冲区空”,主机将再发送新的信息给打印机,如此反复直到所有信息打印完毕为止。
(2)印字原理
针式打印机是由若干根打印针印出m×n个点阵组成的字符或汉字、图形。这里m表示打印的列数,n表示打印的行数。点阵越密,印字的质量就越高。需要注意的是,字符由m×n个点阵组成,并不意味着打印头就装有m×n根打印针。串式针打的打印头上一般只装有一列n根打印针(也有的分为两列)。
在早期的9针打印机中,将9根打印针排成纵向一列,每次打印一列,印完一列后打印头沿水平方向移动一步,m步之后,形成一个m×n点阵。
(3)点阵格式和字库
由点阵组成的字符或汉字,“1”表示打点,“0”表示不打点,于是每个m×n的点阵字形可用m个n位的二进制数来表示列点阵码。为书写方便,通常用十六进制数来表示列点阵码。
所有字符和汉字的列点阵码都存储在ROM中,我们把它称为字库。字库包括字符库和汉字库,字符库又称字符发生器。
带有汉字库的打印机称为汉字打印机,主机送出汉字代码,打印机根据汉字代码从汉字库中取出汉字点阵数据,驱动打印针打印。
不带汉字库的打印机称为西文打印机,打印汉字时是需利用存放在微机系统硬盘上的汉字库(常称为软字库)。先由主机将汉字代码转换为点阵数据,再送至打印机,打印机按图形方式打印出汉字。
(4)打印控制
主机要输出打印信息时,首先要检查打印机所处的状态。当打印机空闲时,允许主机发送字符。打印机CPU开始接收从主机送来的字符代码(ASCII码),先判断它们是可打印的字符还是只执行某种控制操作的控制字符(如:“回车”、“换行”等)。如果是可打印的字符就将其代码送入打印行缓冲区(RAM)中,接口电路产生回答信息,通知主机发送下一个字符。如此重复,把要打印的一行字符的代码都存入数据缓冲区。当缓冲区接收满一行打印的字符后,停止接收,转入打印。
8.显示设备
(1)分类
一类是主动显示器件,如CRT显示器、发光二极管等,它们是在外加电信号作用下,依靠器件本身产生的光辐射进行显示的,因此也叫光发射器件。另一类叫做被动显示器件,如液晶显示器,这类器件本身不发光,工作时需另设光源,在外加电信号的作用下,依靠材料本身的光学特性变化,使照射在它上面的光受到调制,因此这类器件又叫光调制器件。
(2)CRT显示器的主要技术指标
点距(dot pitch)是用来表征彩色显示器的参数,指屏幕上两个相邻的同色荧光点之间的距离。点距越小,显示的画面就越清晰、自然和细腻。
行频又称水平扫描频率,是电子枪每秒在屏幕上扫描过的水平线条数,以KHz为单位。场频又称垂直扫描频率,是每秒钟屏幕重复绘制显示画面的次数,以Hz为单位。
视频带宽是表示显示器显示能力的一个综合性指标,以MHz为单位。它指每秒钟扫描的像素个数,即单位时间内每条扫描线上显示的点数的总和。带宽越大表明显示器显示控制能力越强,显示效果越佳。 视频带宽=水平分辨率×垂直分辨率×刷新率×1.344
最高分辨率是定义显示器画面解析度的标准,由每帧画面的像素数决定,以水平显示的像素个数×水平扫描线数表示, 800×600,表示水平和垂直方向的像素点数分别是800和600。
刷新率指的是显示器每秒钟重画屏幕的次数,刷新率越高,意味着屏幕的闪烁越小,对人眼睛产生的刺激越小。 屏幕尺寸指屏幕对角线长度。
(3)CRT显示器的扫描方式
电子束从显示屏的左上角开始,沿水平方向从左向右扫描,到达屏幕右端后迅速水平回扫到左端下一行位置,又从左到右匀速地扫描。这样一行一行地扫描,直到屏幕的右下角,然后又垂直回扫,返回屏幕左上角。在水平和垂直回扫时,电子束是“消隐”的,荧光屏上没有亮光显示。这样,在CRT的屏幕上形成了一条条水平扫描线,我们把它称为光栅。
(4)显示缓冲区
为了不断提供刷新画面的信号,无论采用字符还是图形显示模式,都必须把字符或图形信息存储在一个显示缓冲区中,这个缓冲区又称为视频存储器(VRAM)。显示器一方面对屏幕进行光栅扫描,一方面同步地从VRAM中读取显示内容,送往显示器件。因此,对VRAM的操作是显示器工作的软、硬件界面所在。
VRAM的容量由分辨率和灰度级决定,分辨率越高,灰度级越高,VRAM的容量就越大。同时,VRAM的存取周期必须满足刷新率的要求。
在字符显示方式中,将一屏中可显示的最多字符数称为分辨率,例如80列×25行,表示每屏最多可显示25行,每行可有80个字符。字符方式的VRAM通常分成两部分:字符代码缓存和显示属性缓存。字符代码缓存中存放着显示字符的ASCII码,每个字符占1个字节;显示属性缓存中存放着字符的显示属性,一般也占1个字节。VRAM的最小容量是由屏幕上字符显示的行、列规格来决定的。例如,一帧字符的显示规格为80×25,那么VRAM中的字符代码缓存的最小容量就是2KB。
在图形显示方式中,将一屏中可显示的像素点数称为分辨率,图形方式的显示信息以二进制的形式存储在VRAM中,这些信息是图形元素的矩阵数组,在最简单的情况下,只需要存储两值图形,即用“0”表示黑色,用“1”表示白色。用VRAM的1位表示1个点,所以VRAM的1个字节可以存放8个点。例如,一个CRT显示器的分辨率为640×200,在无灰度级的单色显示器中,只需要16KB的VRAM。在彩色显示或单色多灰度显示时,每个点需要若干位来表示。例如,若用2位二进制代码表示1个点,那么每个点便能选择显示4种颜色,但是此时VRAM的1个字节只能存放4个点。
如果显示器的分辨率不变,颜色数增加,VRAM的容量就要增加。反之,若VRAM容量一定,随着分辨率的增高,显示的颜色数将减少。在图形方式下,VRAM中用于存放每个像素点颜色信息的位数称为颜色深度或色彩深度,颜色深度与颜色数的对应关系为:颜色深度=log2颜色数。
9.字符显示设备
一般的字符显示屏幕上可显示80列×25行=2000个字符,字符窗口数目为80×25。在单色字符显示方式下,每个字符窗口为9×14点阵,对应的分辨率为80列×25行(720×350点阵),其中字符本身点阵为7×9,同一字符行中字符横向间隔2个点,不同字符行间的间隔为5个点。
VRAM中存放的是字符的ASCII码,不是点阵信息。若要显示出字符的形状,还需要有字符发生器(字符库)的支持。
在字符显示器中,屏幕上每个字符位置对应VRAM中的一个字节,VRAM中各字节单元的地址随着屏幕由左向右,自上而下的显示顺序从低向高安排。
每个字符在屏幕上的显示位置,对应VRAM中的地址为
起始地址+行号×每行字符数+列号
例如,起始地址是B000H,每行显示80个字符(50H),那么第二行最左边字符编码就存放在VRAM的B050H单元中,而第三行的内容存放在B0A0H开始的80个单元中。
★字符显示器的控制电路【PPT习题 2、3】
点计数器对一个字符的列数和字符横向间隔进行计数,为9分频,即输入9个点脉冲后完成一次计数循环,并向下一级计数器输出一个计数脉冲,这对应于一个字符横向7点,加上2点间距。
字计数器用来同步控制一条水平扫描线的正扫和回扫。由于一排可有80个字符,需在扫描正程中显示,所以当字计数器由0计到80时,光栅从左向右扫满一行。然后进入回扫逆程,设逆程须占18个字符扫描时间(折合值),因此字符计数器为(80+18)=98分频,即每输入98个计数脉冲完成一个计数循环。
行计数器对字符窗口的高度进行控制,字符窗口的高度所占的扫描线数为14。CRT每完成一次水平扫描,只能显示一排字符中的一行。只有依次扫描9行后,才能完整地显示出一排字符,再扫描5行并消隐之后,即形成排间的空白间距。所以行计数器为(9+5)=14分频。
排计数器对应于屏幕的垂直扫描及其回扫。正程显示25排字符,当排计数器从0计数到25时,光栅正好从上向下扫完一屏,然后进入回扫逆程,回到屏幕左上角。逆程时间等于扫描一排字符的时间,折合值为1,所以计数分频值为(25+1)=26。
图形显示器
设彩色图形显示器的分辨率为640×480,可同时显示16种颜色。需要用VRAM中的4位来定义一种颜色。
从屏幕显示角度,每一行由4个位面中的80个字节来表示(640/8=80)。屏幕上的一个彩色像素点,需要用来自4个位平面上每个位平面的相同位置的一个存储位表示。
图形/图像以像素为单位,但在VRAM中以字节为单位按地址存储,即将一条水平线上自左向右,每8个点的代码作为一个字节,存放在一个编址单元中。因此点脉冲经点计数器8分频之后产生字节脉冲,每发一次字节脉冲就访问一次VRAM,从4个位平面中各读出一个字节(8点),送往移位寄存器,再串行输出形成16色中的一种。
列计数器又称字节计数器,98分频。计数值从0到79,光栅从左向右扫描一行,正程显示80字节共640点。字节计数器所附加的18次计数,作为行线逆程回扫时间,逆程回扫应当消隐。
行计数器为488分频。计数值从0到479,对应于场正程扫描,显示480行;附加8次计数,对应于场逆程回扫,逆程回扫应消隐。
分辨率、颜色数与VRAM容量密切相关。对于字符显示方式,如分辨率为c列×l行,而一个字符的编码与属性、颜色数共需占n字节,则VRAM的总容量应不少于c×l×n字节。
显然,图形方式所需的VRAM容量一般都大于字符方式。如果一台CRT显示器既可用作字符方式又可用作图形方式,且各有数种分辨率规格,则VRAM容量计算应以高分辨率图形方式为准。
九 中断与输入输出系统
1、主机和外设的连接方式
主机和外设的连接方式有辐射型连接、总线型连接等。
2、主机和外设间需交换的信息种类
数据信息、控制信息、状态信息、联络信息和外设识别信息
3、接口的功能
(1)实现主机和外设的通信联络控制接
(2)进行地址译码和设备选择
(3)实现数据缓冲
(4)数据格式的变换
(5)传递控制命令和状态信息
4、端口的概念,通常接口中包含的端口
端口是指接口电路中可以进行读/写的寄存器,若干个端口加上相立的控制逻辑电路才组成接口。通常,一个接口中包含有数据端口、控制端口和状态端口。存放数据信息的寄存器称为数据端口,存放控制命令的端口称为命令端口,存放状态信息的寄存器称为状态端口。
5、端口的编址方式有独立编址、统一编址
6、输入输出信息传递的方式
程序查询方式、程序中段方式、直接存储器(DMA)存取方式、I/O通道控制方式
7、程序查询方式的缺点
外设和主机不能同时工作,各外设之间也不能同时工作,系统效率很低,因此,仅适用于外设的数目不多,对I/O处理的实时要求不那么高,CPU的操作任务比较单一,不很忙的情况。
8、中断与子程序的区别
表面上看起来,计算机的中断处理过程有点类似于调用子程序的过程,这里现行程序相当于主程序,中断服务程序相当于子程序。但是,它们之间却是有着本质上的区别的。
1)子程序的执行是由程序员事先安排好的(由一条调用子程序指令转入),而中断服务程序的执行则是由随机的中断事件引起的;
2)子程序的执行受到主程序或上层子程序的控制,而中断服务程序一般与被中断的现行程序毫无关系;
3)不存在同时调用多个子程序的情况,有可能发生多个外设同时请求CPU为自己服务的情况。
9、中断的基本类型,中断判优的方法
中断的基本类型:
(1)自愿中断和强迫中断
(2)程序中断和简单中断
(3)内中断和外中断
(4)向量中断和非向量中断
(5)单重中断和多重中断
中断判优的方法: (1)软件判优法(2)硬件判优法
10、中断响应的条件,中断隐指令的作用
响应中断的条件(1)CPU接收到中断请求信号(2)CPU允许中断(3)一条指令执行完毕
中断隐指令的作用(1)保存断点(2)暂不允许中断(3)引出中断服务程序
11.开中断和关中断的条件
允许中断即开中断,下列情况时应开中断:
(1)在中断服务程序执行完毕,恢复中断现场之后;
(2)在多重中断的情况下,保护中断现场之后。
禁止中断即关中断,下列情况时应关中断:
(1)当响应某一级中断请求,不再允许被其他中断请求打断时;
(2)在中断服务程序的保护和恢复现场之前。
12、中断升级的概念
中断屏蔽字的另一个作用是可以改变中断优先级,将原级别较低的中断源变成较高的级别,我们称之为中断升级。
13、DMA方式的概念
直接存储器访问DMA方式是在外设和主存储器之间开辟一条“直接数据通道",不需要CPU干预也不需要软件介入的情况下在两者之间进行的高速数据传送方式。
14、DMA方式的特点
①它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
②在数据块传送时,主存地址的确定,传送数据的计数等等都用硬件电路直接实现。
③主存中要开辟专用缓冲区,供给和接收外设的数据。
④DMA传送速度快,CPU和外设并行工作,提高了系统的效率。
⑤DMA在开始前和结束后要通过程序和中断方式进行预处理和后处理。
15、DMA和中断的区别
①中断方式是程序切换,需要保护和恢复现场;而DMA方式除了开始和结尾时,不占用CPU的任何资源。
②对中断请求的响应只能发生在每条指令执行完毕时;对DMA请求的响应可以发生在每个机器周期结束时。
③中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,故数据传送速率非常高,适合于高速外设的成组数据传送。
④DMA请求的优先级高于中断请求。
⑤中断方式具有对异常事件的处理能力;而DMA方式仅局限于完成传送信息块的I/O操作。
16、DMA控制器的功能
①接受外设发出的DMA请求,并向CPU发出总线请求;
②当CPU响应此总线请求,发出总线响应信号后,接管对总线的控制,进入DMA操作周期;
③确定传送数据的主存单元地址及传送长度,并能自动修改主存地址计数值和传送长度计数值;
④规定数据在主存与外设之间的传送方向,发出读/写或其他控制信号,并执行数据传送的操作。
⑤向CPU报告DMA操作的结束
17、DMA控制器与CPU使用主存的三种方法
(1)CPU停止访问主存法(2)存储器分时法(3)周期挪用法
18、DMA传送过程
(1) DMA预处理(2)数据传送(3) DMA后处理
19、通道与DMA方式的区别
①DMA控制器是通过专门设计的硬件控制逻辑来实现对数据传送的控制;而通道则是一个具有特殊功能的处理器,它具有自己的指令和程序,通过执行一个通道程序实现对数据传送的控制,故通道具有更强的独立处理数据输入/输出的功能。
②DMA控制器通常只能控制一台或少数几台同类设备;而一个通道则可以同时控制许多台同类或不同类的设备。
20、通道的功能
接受CPU的I/O指令,按指令要求与指定的外设进行联系。
从主存取出属于该通道程序的通道指令,经译码后向设备控制器和设备发送各种命令。
实施主存和外设间的数据传送。
从外设获得设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到主存的指定单元,供CPU使用。
将外设的中断请求和通道本身的中断请求按次序及时报告CPU。