计算机组成原理
1.1 计算机发展历程
1.1.1 计算机硬件的发展
计算机的四代变化
计算机元件的更新换代
摩尔定律
半导体存储器的发展
微处理器的发展
1.1.2 计算机软件的发展
1.2 计算机系统层次结构
1.2.1 计算机系统的组成
硬件系统和软件系统共同构成了一个完整的计算机系统。
1.2.2 计算机硬件的基本组成
冯·诺依曼提出了“存储程序”的概念
注意:“存储程序”的概念是指将指令以代码的形式事先输入到计算机主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。
1.2.3 早期的冯·诺依曼机
1)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
2)指令和数据以同等地位存于存储器内,并可按地址寻访。
3)指令和数据均用二进制代码表示。
4)指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
5)指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
6)早期的冯·诺依曼机以运算器为中心,输入输出设备通过运算器与存储器传送数据。
1.2.4 典型的冯·诺依曼计算机结构
1.2.5 现代计算机的组织结构
1.2.6 计算机的功能部件
(1)输入设备
(2)输出设备
(3)存储器
存储器是计算机的存储部件,用来存放程序和数据
存储器分为主存储器(简称主存,也称内存储器)和辅助存储器(简称辅存,也称外存储器).
CPU能够直接访问的存储器是主存储器。辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问。
主存储器由许多存储单元组成,每个存储单元包含若干个存储元件,每个元件存储一位二进制代码“0”或“1”.故而存储单元可存储一串二进制代码,称这串代码为存储字,这串代码的位数称为存储字长,存储字长可以是一个字节(8bt)或者是字节的偶数倍。
主存储器的工作方式是按存储单元的地址进行存取的,这种存取方式称为按地址存取方式(相联存储器是按内容访问的).
主存储器的最基本组成如图所示。存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器(MDR)是主存和其他部件的中介机构,用于暂存要从存储器中读或者写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信号
MAR用于寻址,其位数对应着存储单元的个数,如MAR为10位,则有2^10=1024个存储单元,记为1K.MAR的长度与PC的长度相等。
MDR的位数和存储字长相等。一般为字节的二次幂整数倍。
请注意MAR与MDR虽然是存储器的一部分,但在现代CPU中却是存在于CPU中的,另外后文提到的高速缓存( Cache)也是存在于CPU中,也就是说逻辑上MAR与MDR是属于存储器的,但是实现上确是属于CPU的.
(4)运算器
运算器的核心是算术逻辑单元ALU( Arithmetic and Logical Unit).运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(Ⅸ)、基址寄存器(BR)等,其中前3个寄存器是必须有的。
运算器内还有程序状态寄存器(PSW),保留各类运算指令或测试指令的结果的各类状态信息,以表征系统运行状态
(5)控制器
控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。控制器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。
PC用来存放当前欲执行指令的地址,可以自动+1以形成下一条指令的地址,它与主存的MAR之间有一条直接通路。IR用来存放当前的指令,其内容来自主存的MDR,指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列,而地址码Ad(IR)送往MAR来取操作数。
如图所示为一个更细化的计算机组成框图。现代计算机一般是将运算器和控制器集成到同个芯片上,合称为中央处理器,简称CPU.CPU和主存储器共同构成主机,而计算机中主机的其他硬件装置(如I/O)统称为外部设备(简称外设).也就是说,外设主要包括外存和IO设备。
1.2.7 计算机软件的分类
系统软件和应用软件
1.2.7.1 三个级别的语言
1)机器语言。
2)汇编语言。
3)高级语言。
1.2.8 计算机的工作过程
计算机的工作过程分为以下几个步骤
1)把程序和数据装入到主存储器中。
2)从程序的起始地址运行程序
3)用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址
4)用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止:每一条指令都是在取指、译码和执行的循环过程中完成的
下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC中)为例,其信息流程如下
取指令:PC→MAR→M→MDR→IR
分析指令:OP(IR)→CU
执行指令:Ad(IR)→MAR→M→MDR→ACC
此外,每取完一条指令,还必须为取下条指令作准备,形成下一条指令的地址,即(PC)+1
注意:(PC指程序计数器PC中存放的内容。PC→MAR应理解为(PC)→MAR,即程序计数器中的值经数据通路送到MAR,也即表示数据通路时括号可省略(因为只是表示数据流经的途径,而不强调数据本身的流动)但是运算时括号不能省略,即(PC)+1→PC不能写为PC+1→PC.
1.2.9 计算机系统的多级层次结构
将高级语言源程序转换为机器级目标代码文件的程序是(C)
A.汇编程序B.链接程序C.编译程序D.解释程序
翻译程序是指把高级语言源程序转换成机器语言程序(目标代码)的软件。翻译程序有两种
一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只要执行目标程序,因此,只要源程序不变,就无须重新编译。另一种是解释程序,它将源程序的一条语句翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序。汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。汇编语言是一
种面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。
什么是存储程序原理?按此原理,计算机应具有哪凡大功能?
存储程序是指将指令以代码的形式事先输入到计算机主存储器中,然后按其在存储器中的首
地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。
计算机按照此原理应该具有5大功能:数据传送功能、数据存储功能、数据处理功能、操作
控制功能、操作判断功能
1.3 计算机的性能指标
1.3.1 计算机的主要性能指标
1.3.1.1 机器字长
机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数。通常与CPU的寄存器位数、加法器有关。所以机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度就越高。计算机字长通常都选定为字节(Byte,8位)的整数倍,通常是2、4、8倍。不同的计算机,字长可以不相同.
1.3.1.2 数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。
注意:各个子系统通过数据总线连接形成的数据传送路径称为数据通路
1.3.1.3 主存容量
主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数×字长(如512K×16位)来表示存储容量。其中,MAR的位数反映了存储单元的个数,MAR的位数反映了可寻址范围的最大值(而不一定是实际存储器的存储容量).
1.3.1.4 运算速度
(1)吞吐量和响应时间
(2)主频和CPU时钟周期
CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位。每个动作至少需要一个时钟周期
主频(CPU时钟频率):机器内部主时钟的频率,它是衡量机器速度的重要参数。主频的倒数是CPU时钟周期。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。
注意:CPU时钟周期=1/主频,主频通常以MHz(兆赫兹)为单位,1Hz表示每秒1次
(3)CPI( Clock cycle Per Instruction),即执行一条指令所需的时钟周期数
(4)CPU执行时间,指运行一个程序所花费的时间
CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)/主频
上式表明,CPU的性能(CPU执行时间)取决于三个要素:①主频(时钟频率);②每条指令执行所用的时钟周期数(CPI);③指令条数
2.1 数据的表示和运算
2.1.1 BCD码
2.1.2 字符与字符串
2.1.3 校验码
校验码是指能够发现或能够自动纠正错误的数据编码,也称为检错纠错编码。校验码的原理
是通过增加一些冗余码,来检验或纠错编码。
通常某种编码都由许多码字构成,任意两个合法码字之间最少变化的二进制位数,称为数据校验码的码距。对于码距不小于2的数据校验码,开始具有检错的能力。码距越大,检、纠错
能力就越强,而且检错能力总是大于或等于纠错能力。
2.1.3.1 奇偶校验码
2.1.3.1 海明(汉明)校验码
2.1.3.2 循环冗余校验(CRC-Cyclic Redundancy Check)码
2.1.4 定点数的表示与运算
计算机中为啥采用二进制表示数据?
1.具有二值状态的物理器件容易实现
2.二进制得运算规则简单,硬件容易实现
3具有逻辑特性,可代表“真假”,“是非”
2.1.4.1 定点数的表示
2.1.4.2 定点数的运算
2.1.4.3 强制类型转换
2.1.4.4 [y]补跟[-y]补的关系:
连同符号位在内,每位取反,末位加1
2.1.4.5 原码/补码/反码总结
1.最高位位符号位,书写上用","(整数)或"."(小数)将数值部分和符号位隔开.
2.对于正数,原码=补码=反码.
3.对于负数,符号位为1,其数值部分有三种情况:如果是原码,则其数值部分为其数值部分本身.
如果是补码,则原码除符号位外每位取反末位加1.如果是反码,则原码除符号位外每位取反.
2.1.4.6 认识移码:
因为补码不容易看出两个数的大小,所以移码出现了.
移码的特点就是只有整数,而没有小数,而且移码与补码很像,只是符号位不一样,数值位相同.
2.1.5 浮点数的表示与运算
2.1.5.1 浮点数的表示
2.1.5.2 浮点数的加减运算
2.1.5.2.1 逻辑移位:
不存在符号位,所有位进行移位.左移/右移都添加零
2.1.6 算术逻辑单元ALU
ACC | MQ(乘商寄存器) | X | |
---|---|---|---|
加法 | 被加数/和 | 加数 | |
减法 | 被减数/差 | 减数 | |
乘法 | 乘积高位 | 乘数/乘积低位 | 被乘数 |
除法 | 被除数 /余数 | 商 | 除数 |
3.1 存储系统
3.1.1 主存简单模型及寻址的概念
半导体存储芯片的基本结构
译码器
3.1.2 半导体存储器RAM
1 SRAM存储器的工作原理
通常把存放一个二进制位的物理器件称为存储元,它是存储器的最基本构件。地址码相同的多个存储元构成一个存储单元。若干存储单元的集合构成存储体。
静态随机存储器(SRAM)的存储元是用双稳态触发器(六管MOS)来记忆信息的,因此即使信息被读出后,它仍保持其原状态而不需要再生(非破坏性读出).但是,只要电源被切断,原来的保存信息便会丢失,故它属易失性半导体存储器。
SRAM的存取速度快,但集成度低,功耗较大,所以一般用来组成高速缓冲存储器。
2 DRAM存储器的工作原理
与SRAM存储器的存储原理不同,动态随机存储器(DRAM)是利用存储元电路中栅极电容上的电荷来存储信息的,常见的DRAM的基本存储电路通常分为三管式和单管式。DRAM采用地址复用技术,地址线是原来的1/2,且地址信号分行、列两次传送。相对于SRAM来说,DRAM具有容易集成、位价低、容量大和功耗低等优点,但是DRAM的存取速度比SRAM慢,一般用来组成大容量主存系统。
DRAM电容上的电荷一般只能维持1~2ms,因此即使电源不掉电,信息也会自动消失。为此,每隔一定时间必须刷新,通常取2ms,这个时间称为刷新周期。常用的刷新方式有3种:集中刷新、分散刷新和异步刷新。
1)集中刷新:指在一个刷新周期内,利用一段固定的时间,依次对存储器的所有行进行逐一再生,在此期间停止对存储器的读写操作,称为“死时间”,又称为访存“死区”.
集中刷新的优点是读写操作时不受刷新工作的影响,因此系统的存取速度比较高;缺点是在集中刷新期间(死区)不能访问存储器。
2)分散刷新:把对每一行的刷新分散到各个工作周期中去。这样,一个存储器的系统工作周期分为两部分:前半部分用于正常读、写或保持;后半部分用于刷新某一行。这种刷新方式增加了系统的存取周期,如存储芯片的存取周期为0.5微妙,则系统的存取周期应为1微妙.
分散刷新的优点是没有死区;缺点是加长了系统的存取周期,降低了整机的速度。
3)异步刷新:异步刷新是前两种方法的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为2ms的特点。具体做法是将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每隔时间t产生一次刷新请求。这样可以避免使CPU连续等待过长的时间,而且减少了刷新次数,从根本上提高了整机的工作效率。如果将刷新安排在不需要访问存储器的译码阶段,则既不会加长存取周期,也不会产生“死时间”,这是分散刷新方式的发展,也称作“透明刷新”.
DRAM的刷新需注意以下问题:①刷新对CPU是透明的,即刷新不依赖于外部的访问;②动态RAM的刷新单位是行,故刷新操作时仅需要行地址;③刷新操作类似于读操作,但又有所不同。
刷新操作仅是给栅极电容补充电荷,不需要信息输出。另外,刷新时不需要选片,即整个存储器中的所有芯片同时被刷新。读者需要注意易失性存储器和刷新的区别,易失性存储器是指断电后数据丢失,SRAM和DRAM都满足断电内容消失,但需要刷新的只有DRAM,而SRAM不需要刷新。
3.1.3 半导体存储器ROM
1 只读存储器(ROM)的特点
ROM和RAM都是支持随机存取的存储器,其中SRAM和DRAM均为易失性存储器。而ROM中一旦有了信息,就不能轻易改变,即使掉电也不会丢失,它在计算机系统中是只供读出的存储器。ROM器件有两个显著的优点:
1)结构简单,所以位密度比可读写存储器高。
2)具有非易失性,所以可靠性高。
2 ROM的类型
(1)掩膜式只读存储器
(2)一次可编程只读存储器
(3)可擦除可编程只读存储器
(4)闪速存储器( Flash Memory)
(5)固态硬盘( Solid State Drives,SSD)
3.1.4 存储器基本概念
3.1.4.1 存储器的分类
存储器种类繁多,可以从不同的角度对存储器进行分类
1 按在计算机中的作用(层次)分类
1)主存储器:简称主存,又称内存储器(内存),用来存放计算机运行期间所需的大量程序和数据,CPU可以直接随机地对其进行访问,也可以和高速缓冲存储器( Cache)以及辅助存储器交换数据。其特点是容量较小、存取速度较快、每位价格较高。
2)辅助存储器:简称辅存,又称外存储器(外存),是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,它不能与CPU直接交换信息。其特点是容量极大、存取速度较慢、单位成本低。
3)高速缓冲存储器:简称 Cache,位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU能高速地使用它们。 Cache的存取速度可以与CPU的速度相匹配,但存储容量小、价格高。目前的高档计算机通常将它们制作在CPU中
2 按存储介质分类
按存储介质,存储器可分为磁表面存储器(磁盘、磁带)、磁芯存储器半导体存储器(MOS型存储器、双极型存储器)和光存储器(光盘).
3 按存取方式分类
1)随机存储器(RAM):存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。其优点是读写方便、使用灵活,主要用做主存或高速缓冲存储器
RAM又分为静态RAM(以触发器原理寄存信息)和动态RAM(以电容充电原理寄存信息).
2)只读存储器(ROM):存储器的内容只能随机读出而不能写入。信息一旦写入存储器就固定不变了,即使断电,内容也不会丢失。因此,通常用它存放固定不变的程序、常数和汉字字库,甚至用于操作系统的固化。它与随机存储器可共同作为主存的一部分,统一构成主存的地址域
由ROM派生出的存储器也包含可反复重写的类型,ROM和RAM的存取方式均为随机存取
请注意广义上的只读存储器已经可以通过电擦除等方式进行写入了,其“只读”的概念没有保留,但仍然保留了断电内容保留、随机读取的特性,但其写入速度比读取速度慢得多。
3)串行访问存储器:对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址,包括
顺序存取存储器(如磁带)与直接存取存储器(如磁盘)
顺序存取存储器的内容只能按某种顺序存取,存取时间的长短与信息在存储体上的物理位置有关,其特点是存取速度慢。直接存取存储器既不像RAM那样随机地访问任一个存储单元,也不像顺序存取存储器那样完全按顺序存取,而是介于两者之间。存取信息时通常先寻找整个存储器中的某个小区域(如磁盘上的磁道),再在小区域内顺序查找。
4 按信息的可保存性分类
断电后,存储信息即消失的存储器,称为易失性存储器,如RAM.断电后信息仍保持的存储器,称为非易失性存储器,如ROM、磁表面存储器和光存储器。如果某个存储单元所存储的信息被读出时,原存储信息将被破坏,则称为破坏性读出:如果读出时,被读单元原存储信息不被破坏,则称为非破坏性读出。具有破坏性读出性能的存储器,每次读出操作后,必须紧接一个再生的操作,以便恢复被破坏的信息。
3.1.4.2 存储器的性能指标
1)存储容量=存储字数x字长(如1Mx8位).单位换算:1B(Byte,字节)=8b(bit,位).
存储字数表示存储器的地址空间大小,字长表示一次存取操作的数据量。
2)单位成本:每位价格=总成本/总容量
3)存储速度:数据传输率=数据的宽度/存储周期。
1 存取时间(T):存取时间是指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间
2 存取周期(Tn):存取周期又称为读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写操作)之间所需的最小时间
3 主存带宽(Bm):主存带宽又称数据传输率,表示每秒从主存进出信息的最大数量,单位:字/秒、字节秒(B/s)或位秒(b/s).
1G内存,可以存储多少字节的数据?可以存储多少比特数据?
1G = 1024^3Bytes = 1024^3*8bits
为什么网上买的移动硬盘500G,格式化之后就只剩465G了?
硬盘商一般用10进位标记容量
(500*1000^3)/(1024^3)约等于465G
为什么电信拉的100M光纤,测试峰值速度只有12M每秒?
100M/s = 100Mbps = 100Mbit/s
100Mbit/s=(100/8)MB/s=12.5MB/s
3.1.4.3 存储器的层次化结构
为了解决存储系统大容量、高速度和低成本3
个相互制约的矛盾,在计算机系统中,通常采用
多级存储器结构,如图所示。在图中由上至下,
位价越来越低,速度越来越慢,容量越来越大,
CPU访问的频度也越来越低。
主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的:而主存和辅存之间的数
据调动则是由硬件和操作系统共同完成的,对应用程序员是透明的。
3.1.4.4 主存储器与CPU的连接
连接原理
1)主存储器通过数据总线、地址总线和控制总线与CPU连接
2)数据总线的位数与工作频率的乘积正比于数据传输率。
3)地址总线的位数决定了可寻址的最大内存空间
4)控制总线(读/写)指出总线周期的类型和本次输入输出操作完成的时刻。
3.1.4.4.1 主存容量的扩展
1 位扩展法
2 字扩展法
3 字位同时扩展法
位扩展法
字扩展法
存储芯片的地址分配和片选
字位同时扩展法
3.1.4.5 双口RAM和多模块存储器
3.1.4.5.1 双端口RAM
3.1.4.5.2 多模块存储器
单体多字存储器
多体并行存储器
3.1.4.5 局部性原理及性能分析
3.1.4.5.1 局部性原理
程序访问的局部性原理包括时间局部性和空间局部性。前者是指在最近的未来要用到的信息,很可能是现在正在使用的信息,这是因为程序存在循环。后者是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的,这是因为指令通常是顺序存放、顺序执行的,数据一般也是以向量、数组、表等形式簇聚地存储在一起的。高速缓冲技术就是利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的 Cache中,使CPU的访存操作大多数针对 Cache进行,从而使程序的执行速度大大提高。
Cache位于存储器层次结构的顶层,通常由SRAM构成,其基本结构如图所示。Cache和主存都被分成若干大小相等的块( Cache块又称为 Cache行),每块由若干字节组成,块的长度称为块长( Cache行长).由于 Cache的容量远小于主存的容量,所以 Cache中的块数要远少于主存中的块数,它仅保存主存中最活跃的若干块的副本。故而 Cache按照某种策略,预测
CPU在未来一段时间内欲访存的数据,将其装入 Cache
当CPU发出读请求时,如果访存地址在 Cache中命中,就将此地址转换成 Cache地址,直接对 Cache进行读操作,与主存无关;如果 Cache不命中,则仍需访问主存,并把此字所在的块次从主存调λ Cache内。若此时 Cache已满,则需根据某种替换算法,用这个块替换掉 Cache中原来的某块信息。值得注意的是,CPU与 Cache之间的数据交换以字为单位,而 Cache与主存之间的数据交换则是以 Cache块为单位。
当CPU发出写请求时,如果 Cache命中,有可能会遇到 Cache与主存中的内容不一致的问题。例如,由于CPU写 Cache,把 Cache某单元中的内容从X修改成了X′,而主存对应单元中的内容仍然是X,没有改变。所以如果 Cache命中,需要按照一定的写策略处理,常见的处理方法有:全写法和写回法,详见本节的 Cache写策略部分。
3.1.4.5.2 性能分析
3.1.4.6 地址映射
Cache和主存的映射方式
在 Cache中,地址映射是指把主存地址空间映射到 Cache地址空间,也就是把存放在主存中的程序按照某种规则装入 Cache中。由于 Cache块数比主存块数少得多,这样主存中只有一部分块的内容可放在 Cache中,因此在 Cache中要为每一块加一个标记,指明它是主存中哪一块的副本。该标记的内容相当于主存中块的编号。为了说明标记是否有效,每个标记至少还应设置一个有效位,该位为1时,表示 Cache映射的主存块数据有效;否则无效。
3.1.4.6.1 全相联映射
3.1.4.6.2 直接映射
3.1.4.6.3 组相联映射
3.1.4.7 替换算法及写策略
在采用全相联映射和组相联映射方式时,从主存向 Cache传送一个新块,当 Cache中的空间
已被占满时,就需要使用替换算法置换 Cache行。而采用直接映射时,一个给定的主存块只能放
到一个唯一的固定 Cache行中,所以,在对应 Cache行已有一个主存块的情况下,新的主存块毫
无选择地把原先已有的那个主存块替换掉,因而无需考虑替换算法。
常用的替换算法有随机(RAND)算法、先进先出(FFO)算法、近期最少使用(LRU)算
法和最不经常使用(LFU)算法
1)随机算法:随机地确定替换的 Cache块。它的实现比较简单,但没有依据程序访问的局
部性原理,故可能命中率较低。
2)先进先出算法:选择最早调入的行进行替换。它比较容易实现,但也没有依据程序访问
的局部性原理,可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入 Cache的块
替换掉
3)近期最少使用算法:依据程序访问的局部性原理选择近期内长久未访问过的存储行作为
替换的行,平均命中率要比FIFO要高,是堆栈类算法
LRU算法对每行设置一个计数器, Cache每命中一次,命中行计数器清0,而其他各行计数
器均加1,需要替换时比较各特定行的计数值,将计数值最大的行换出
4)最不经常使用算法:将一段时间内被访问次数最少的存储行换出。每行也设置一个计数
器,新行建立后从0开始计数,每访问一次,被访问的行计数器加1,需要替换时比较各特定行
的计数值,将计数值最小的行换出。
Cache写策略
因为 Cache中的内容是主存块副本,当对 Cache中的内容进行更新时,就需选用写操作策略
使 Cache内容和主存内容保持一致。此时有两种情况:
对于 Cache写命中( write hit),有两种写操作策略:全写法和写回法
全写法(写直通法、 write-through)
写回法( write-back)
对于 Cache写不命中,也有两种处理方法。
3.1.4.8 虚拟存储器
虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,在这个空间内,
用户可以自由编程,而不必在乎实际的主存容量和程序在主存中实际的存放位置。
用户编程允许涉及的地址称为虚地址或者逻辑地址,虚地址对应的存储空间称为虚拟空间或程
序空间。实际的主存单元地址称为实地址或者物理地址,实地址对应的是主存地址空间,也称为实
地址空间。虚地址比实地址要大很多。虚拟存储器的地址空间如图3-21所示。
CPU使用虚地址时,由辅助硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址对
应的存储单元内容是否已装入主存。如果已在主存中,则通过地址变换,CPU可直接访问主存指
示的实际单元;如果不在主存中,则把包含这个字的一页或一段调入主存后再由CPU访问。如果
主存已满,则采用替换算法置换主存中的一页或一段。
在实际的物理存储层次上,所编程序和数据在操作系统管理下,先送入磁盘,然后操作系统
将当前运行所需要的部分调入主存,供CPU使用,其余暂不运行部分留在磁盘中。
3.1.4.8.1 页式虚拟存储器
以页为基本单位的虚拟存储器称为页式虚拟存储器。虚拟空间与主存空间都被划分成同
样大小的页,主存的页称为实页,虚存的页称为虚页。把虚拟地址分为两个字段:虚页号和
页内地址。虚地址到实地址之间的变换是由页表来实现的。页表是一张存放在主存中的虚页
号和实页号的对照表,记录着程序的虚页调入主存时被安排在主存中的位置。页表一般长久
地保存在内存中.
页表基址寄存器存放当前运行程序的页表的起始地址,它和虚页号拼接成页表项地址,每一
个页表项记录了与某个虚页对应的虚页号、实页号和装入位等信息。若装入位为“1”,表示该页
面已在主存中,将对应的实页号和虚地址中的页内地址拼接就得到了完整的实地址;若装入位为
“0”,表示该页面不在主存中,于是要启动I/O系统,把该页从辅存调入主存后再供CPU使用。
页式虚拟存储器的地址变换过程如图3-22所示。
由上述转换过程可知,CPU访存时,先要查页表,为此需要访问一次主存。若不命中,还要
进行页面替换和页表修改,则访问主存的次数就更多了。
页式虚拟存储器的优点是页面的长度固定,页表简单,调入方便。缺点是由于程序不可能正
好是页面的整数倍,最后一页的零头将无法利用而造成浪费,并且页不是逻辑上独立的实体,所
以处理、保护和共享都不及段式虚拟存储器方便。
3.1.4.8.2 段式虚拟存储器
段式虚拟存储器中的段是按程序的逻辑结构划分的,各个段的长度因程序而异。把虚拟地址
分为两部分:段号和段内地址。虚拟地址到实地址之间的变换是由段表来实现的。段表是程序的
逻辑段和在主存中存放位置的对照表。段表的每一行记录了与某个段对应的段号、装入位、段起
点和段长等信息。由于段的长度可变,所以段表中要给出各段的起始地址与段的长度
CPU根据虚拟地址访存时,首先根据段号与段表起始地址拼接成对应的段表行,然后根据
该段表行的装入位判断该段是否已调入主存(若装入位为“1”,表示该段已调入主存;若装入
位为“0”,则表示该段不在主存中).若已调入主存,从段表读出该段在主存中的起始地址,与
段内地址(偏移量)相加,得到对应的主存实地址。段式虚拟存储器的地址变换过程如图3-23
所示。
3.1.4.8.3 段页式虚拟存储器
把程序按逻辑结构分段,每段再划分为固定大小的页,主存空间也划分为大小相等的页,程
序对主存的调入、调出仍以页为基本传送单位,这样的虚拟存储器称为段页式虚拟存储器。在段
页式虚拟存储器中,每个程序对应一个段表,每段对应一个页表,段的长度必须是页长的整数倍,
段的起点必须是某一页的起点.
虚地址分为段号、段内页号、页内地址三部分。CPU根据虚地址访存时,首先根据段号得到
段表地址;然后从段表中取出该段的页表起始地址,与虚地址段内页号合成,得到页表地址;最
后从页表中取出实页号,与页内地址拼接形成主存实地址。
段页式虚拟存储器的优点是兼具页式和段式虚拟存储器的优点,可以按段实现共享和保护。
缺点是在地址变换过程中需要两次查表,系统开销比较大。
3.1.4.8.4 快表TLB
在虚拟存储器中,必须先访问一次主存去查页表,再访问主存才能取得数据,相当于访存速
度降低了一半。而在段页式虚拟存储器中,既要查找段表也要查找页表。
依据程序执行的局部性原理,在一段时间内总是经常访问某些页,若把这些页对应的页表项
存放在高速缓冲器组成的快表(TLB)中,则可以明显提高效率。相应地把放在主存中的页表称
为慢表(Page).快表只是慢表的一个副本,而且只存放了慢表中很少的一部分
查找时,快表和慢表同时进行,快表由于根据内容指定地址,一般使用相联存储器。若快表
中有此逻辑页号,则能很快地找到对应的物理页号,送入实主存地址寄存器,并使慢表的查找作
废,从而就能做到虽采用虚拟存储器但访问主存速度几乎没有下降。
注意:TLB是Page的一个很小的副本,所以若TLB命中则Page一定命中。
在同时具有虚拟页式存储器(有TLB)和 Cache的系统中,访问顺序为TLB→页表→ Cache
→主存。CPU发出访存命令(逻辑地址),先査找TLB和Page,将逻辑地址转换为物理地址,再
查找对应的 Cache块(与主存查找并行).若 Cache命中,则说明所需页面己调入主存,Page必
然命中,但TLB不一定命中;若 Cache不命中,并不能说明所需页面未调入主存,和TLB和Page
命中与否没有联系。若Page不命中,说明所需页面未调入主存,当然 Cache和主存也不会命中,
需要执行调页策略
3.1.4.8.5 虚拟存储器与 Cache的比较
4.1 指令系统
4.1.1 指令格式
指令(又称机器指令)是指示计算机执行某种操作的命令,是计算机运行的最小功能单位
计算机的所有指令的集合构成该机的指令系统,也称为指令集。指令系统是计算机的主性,位于硬件和软件的交界面上
其中,操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。操作码是识别指令、了解指令功能与区分操作数地址内容的组成和使用方法等的关键信息。例如,指出是算术加运算,还是减运算:是程序转移,还是返回操作
地址码用于给出被操作的信息(指令或数据)的地址,包括参加运算的一个或多个操作数所在的地址、运算结果的保存地址、程序的转移地址、被调用的子程序的入口地址等
指令的长度是指一条指令中所包含的二进制代码的位数。
在一个指令系统中,若所有指令的长度都是相等的,称为定长指令字结构。定字长指令的行速度快,控制简单。若各种指令的长度随指令功能而异,就称为变长指令字结构。但因为主存一般是按字节编址,所以指令字长多为字节的整数倍
根据指令中的操作数地址码的数目的不同,可将指令分成以下几种格式
4.1.2 定长操作码指令格式
定长操作码指令是在指令字的最高位部分分配固定的若干位(定长)表示操作码。
4.1.3 扩展操作码指令格式
4.1.4 指令寻址方式
寻址方式是指寻找指令或操作数有效地址的方式,也就是指确定本条指令的数据地址,以及下一条将要执行的指令地址的方法。寻址方式分为指令寻址和数据寻址两大类
指令中的地址码字段并不代表操作数的真实地址,称为形式地址(A).用形式地址并结合寻址方式,可以计算出操作数在存储器中的真实地址,称为有效地址(EA).
注意,(A)表示地址为A的数值,A既可以是寄存器编号也可以是内存地址。对应的(A)就是寄存器中的数值,或相应内存单元的数值。例如,EA=(A)意思就是有效地址是地址A中的数值。
4.1.4.1 指令寻址和数据寻址
寻址方式分为指令寻址和数据寻址两大类。寻找下一条将要执行的指令地址称为指令寻址,寻找操作数的地址称为数据寻址。
1 指令寻址
指令寻址方式有两种,一种是顺序寻址方式;另一种是跳跃寻址方式。
1)顺序寻址可通过程序计数器PC加1(1个指令字长),自动形成下一条指令的地址
2)跳跃寻址则通过转移类指令实现。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出下条指令地址的计算方式。跳跃的结果是当前指令修改PC值,所以下一条指令仍然是通过程序计数器PC给出
2 数据寻址
数据寻址就是如何在指令中表示一个操作数的地址.
数据寻址方式的种类较多,为了区别各种方式,通常在指令字中设一个字段,用来指明属于哪种寻址方式。由此可得指令的格式如下所示
4.1.4.2 常见的数据寻址方式
4.1.5 CISC和RISC
4.1.5.1 复杂指令系统计算机CISC
随着ⅥLSI技术的发展,硬件成本不断下降,软件成本不断上升,促使人们在指令系统中增
加更多更复杂的指令,以适应不同的应用领域,构成了复杂指令系统计算机(CISC)
CISC的主要特点有:
1)指令系统复杂庞大,指令数目一般为200条以上
2)指令的长度不固定,指令格式多,寻址方式多
3)可以访存的指令不受限制。
4)各种指令使用频度相差很大
5)各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成
6)控制器大多数采用微程序控制
7)难以用优化编译生成高效的目标代码程序
在对传统CISC指令系统的测试表明,各种指令的使用频率相差悬殊,大概只有20%的比较简单的指令被反复使用,约占整个程序的80%:而有80%左右的指令则很少使用,约占整个程序的20%.从这一事实出发,人
们开始了对指令系统合理性的研究,于是RISC随之诞生
4.1.5.2 精简指令系统计算机RISC
RISC的主要特点有:
1)选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现
2)指令长度固定,指令格式种类少,寻址方式种类少
3)只有 Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。
4)CPU中通用寄存器数量相当多。
5)RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成
6)以硬布线控制为主,不用或少用微程序控制
7)特别重视编译优化工作,以减少程序执行时间
5.1 CPU的功能和基本结构
5.1.1 CPU的功能
中央处理器(CPU)由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令;运算器的功能是对数据进行加工。CPU的具体功能包括:
(1)指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
(2)操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作
(3)时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号
(4)数据加工。对数据进行算术和逻辑运算
(5)中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
5.1.2 CPU的基本结构
1 运算器
运算器接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。运算器是计算机对数据进行加工处理的中心。它主要由算术逻辑单元(ALU)、暂存寄存器、累加寄存器(ACC)、通用寄存器组、程序状态字寄存器(PSW)、移位器、计数器(CT)等组成。
(1)算术逻辑单元:主要功能是进行算术逻辑运算
(2)暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。暂存寄存器对应用程序员是透明的。
(3)累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端
(4)通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址
(5)程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息。
如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成
(6)移位器:对操作数或运算结果进行移位运算
(7)计数器:控制乘除运算的操作步数。
2 控制器
控制器是整个系统的指挥中枢,在控制器的控制下,使运算器、存储器和输入输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作。控制器的基本功能就是执行指令,每条指令的执行是由控制器发出的一组微操作实现的.
控制器有硬布线控制器和微程序控制器两种类型.
控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、时序系统和微操作信号发生器等组成
(1)程序计数器:用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能
(2)指令寄存器:用于保存当前正在执行的那条指令。
(3)指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
(4)存储器地址寄存器:用于存放所要访问的主存单元的地址。
(5)存储器数据寄存器:用于存放向主存写入的信息或从主存中读出的信息
(6)时序系统:用于产生各种时序信号,它们都是由统一时钟( CLOCK)分频得到
(7)微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。控制器的工作原理是根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。计算机整机各硬件系统在这些控制信号的控制下协同运行,产生预期的执行结果
注意:CPU内部寄存器大致可以分为两类:一类是用户可见的寄存器,可对这类寄存器编程。如通用寄存器组、程序状态宇寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可以对这类寄存器编程,如存储器地址寄存器、存储器数据寄存器、指令寄存器。
5.1.3 指令执行过程
指令周期
CPU从主存中每取出并执行一条指令所需的全部时间称为指令周期,也就是CPU完成一条指令的时间。指令周期常常用若干机器周期来表示,一个机器周期又包含若干时钟周期(也称为节拍或T周期,它是CPU操作的最基本单位).每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。图5-2反映了上述关系。图5-2(a)所示为定长的机器周期,每个机器周期
包含4个节拍(T;图5-2(b)所示为不定长的机器周期,每个机器周期包含的节拍数可以为4个,也可以为3个
对于无条件转移指令JMP X,在执行时不需要访问主存,只包含取指阶段(包括取指和分析)和执行阶段,所以其指令周期仅包含取指周期和执行周期。
对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后再访问主存,取出操作数,所以还需包括间址周期。间址周期介于取指周期和执行周期之间.当CPU采用中断方式实现主机和IO设备交换信息时,CPU在每条指令执行结束前,都要发中断查询信号,如果有中断请求,CPU则进入中断响应阶段,又称中断周期。这样,一个完整的指令周期应包括取指、间址、执行和中断4个周期,如图5-3所示
上述4个工作周期都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。为了区别不同的工作周期,在CPU内设置4个标志触发器FE、IND、EX和INT,分别对应取指、间址、执行和中断周期,并以“1”状态表示有效,它们分别由1→FE、1→IND、1→EX和1→INT这4个信号控制
注意:中断周期中进栈操作是将SP减1,和传统意义上的进栈操作相反,原因是计算机的堆栈中都是向低地址增加,所以进栈操作是减1,不是加1.
数据在功能部件之间传送的路径称为数据通路。运算器与各寄存器之间的传送路径就是中央处理器内部数据通路。建立数据通路的任务是由“操作控制部件”来完成的。数据通路的功能是实现CPU内部的运算器与寄存器以及寄存器之间的数据交换
5.1.4 数据通路的基本结构
数据通路的基本结构主要有以下两种
(1)CPU内部单总线方式。将所有寄存器的输入端和输出端都连接到一条公共的通路上,这种结构比较简单,但数据传输存在较多的冲突现象,性能较低。如果连接各部件的总线只有一条称为单总线结构:如果CPU中有两条或更多的总线,则构成双总线结构或多总线结构。图5-7所示为CPU内部总线的数据通路和控制信号。
(2)CPU内部三总线方式。将所有寄存器的输入端和输出端都连接到多条公共的通路上,相比之下单总线中一个时钟内只允许传一个数据,因而指令执行效率很低,因此采用多总线方式,同时在多个总线上传送不同数据,提高效率
(3)专用数据通路方式。根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能比较高,但硬件量大.
注意:内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间互相连接的总线。
5.1.5 控制器的功能和工作原理
控制器的结构和功能
从图可以看到计算机硬件系统的五大功能部件及其连接关系。它们通过数据总线、地址总线和控制总线连接在一起,其中点画线框内的是控制器部件
现对其主要连接关系简单说明如下:
1)运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据。
2)输入设备和输出设备通过接口电路与总线相连接。
3)内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
4)控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号。
控制器是计算机系统的指挥中心,控制器的主要功能有:
1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向
根据控制器产生微操作控制信号的方式的不同,控制器可分为硬布线控制器和微程序控制器,两类控制器中的PC和RR是相同的,但确定和表示指令执行步骤的办法,以及给出控制各部件运行所需要的控制信号的方案是不同的
6.1 总线
随着计算机的发展和应用领域的不断扩大,I/O设备的种类和数量也越来越多。为了更好地解决I/O设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接。为了进步简化设计,又提出了各类总线标准。
1 总线的定义
总线是一组能为多个部件分时共享的公共信息传送线路。分时和共享是总线的两个特点.分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。
共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享,在某一时刻只允许有一个部件向总线发送信息,但多个部件可以同时从总线上接收相同的信息。
2 总线设备
总线上所连接的设备,按其对总线有无控制功能可分为主设备和从设备两种。
主设备:总线的主设备是指获得总线控制权的设备。
从设备:总线的从设备是指被主设备访问的设备,只能响应从主设备发来的各种总线命令
3 总线特性
总线特性是指机械特性(尺寸、形状)、电气特性(传输方向和有效的电平范围)、功能特性(每根传输线的功能)和时间特性(信号和时序的关系).
4 总线的猝发传输方式
在一个总线周期内传输存储地址连续的多个数据字的总线传输方式叫猝发传送
6.1.1 总线的分类
按总线功能划分,计算机系统中总线分为以下3类
1 片内总线
片内总线是芯片内部的总线,它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
2 系统总线
系统总线是计算机系统内各功能部件(CPU、主存、IO接口)之间相互连接的总线。按系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线
1)数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长储字长有关。
2)地址总线用来指出数据总线上的源数据或目的数据所在的主存单元或I/O端口的地址.它是单向传输总线,地址总线的位数与主存地址空间的大小有关
3)控制总线传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。
注意区分数据通路和数据总线:各个功能部件通过数据总线连接形成的数据传输路径称为数据遹路。数据通路表示的是数据流经的路径,而数据总线是承載的媒介。
3 通信总线
通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线
此外,按时序控制方式,可以将总线划分为同步总线和异步总线。还可以按数据传输格式,将总线划分为并行总线和串行总线
6.1.2 系统总线的结构
总线结构通常可分为单总线结构、双总线结构和三总线结构等。
6.1.3 总线的性能指标
6.1.4 总线仲裁
7.1 I/O系统基本概念
7.1.1 输入/输出系统
输入输出是以主机为中心而言的,将信息从外部设备传送到主机称为输入,反之称为输出.
I/O系统中的几个基本概念如下:
1)外部设备:包括输入输出设备及通过输入输出接口才能访问的外存储设备。
2)接口:在各个外设与主机之间的数据传输时进行各种协调工作的逻辑部件。协调包括传输过程中速度的匹配、电平和格式转换等。
3)输入设备:用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基
本的输入设备。
4)输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。
5)外存设备:是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备。
1)I/O软件:包括驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现CPU和I/O设备的信息交换。
2)I/O硬件:包括外部设备、设备控制器和接口、I/O总线等。通过设备控制器来控制I/O设备的具体动作;通过I/O接口与主机(总线)相连。
7.1.2 I/O 控制方式
在输入输出系统中,经常需要进行大量的数据传输,而传输过程中有各种不同的I/O控制方式,基本的控制方式主要有以下4种。
1)程序查询方式:由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。
2)程序中断方式:只在I/O设备准备就绪并向CPU发出中断请求时才予以响应。
3)DMA方式:主存和IO设备之间有一条直接数据通路,当主存和IO设备交换信息时,无需调用中断服务程序
4)通道方式:在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作。
其中,方式1)和方式2)主要用于数据传输率比较低的外部设备,方式3)和方式4)主要用于数据传输率比较高的设备。
7.1.3 外部设备
外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置。最基本的外部设备主要有键盘、鼠标、显示器、打印机、磁盘存储器和光盘存储器等。
7.1.4 输入设备
1 键盘
键盘是最常用的输入设备,通过它可发出命令或输入数据
键盘通常以矩阵的形式排列按键,每个键用符号标明它的含义和作用。每个键相当于一个开关,当按下键时,电信号连通:当松开键时,弹簧把键弹起,电信号断开。键盘输入信息可分为3个步骤:①查出按下的是哪个键;②将该键翻译成能被主机接收的码,如ASCII码;③将编码传送给主机。
2 鼠标
鼠标是常用的定位输入设备,它把用户的操作与计算机屏幕上的位置信息相联系。常用的鼠标有机械式和光电式两种。
工作原理:当鼠标在平面上移动时,其底部传感器把运动的方向和距离检测出来,从而控制光标做相应运动。
7.1.5 输出设备
显示器
打印机
7.1.6 外存储器
1 磁盘存储器
2 磁盘阵列
3 光盘存储器
4 固态硬盘
7.1.7 I/O接口
I/O接口的功能
I/O接口的基本结构
I/O接口的类型
I/O端口及其编址
7.1.8 I/O方式
7.1.8.1 程序查询方式
7.1.8.2 程序中断方式
7.1.8.3 DMA方式