1、第1 章 计算机系统概述数字计算机也称为电子计算机或计算机它无处不在很难发现有哪个领域没有使用计算机在本章中我们将介绍数字计算机、数据类型、计算机的发展和计算机分类,1 . 1 数字计算机 数字计算机是处理各种计算任务的数字系统。“数字”的意思是计算机中的信息可由具有部分离散值的变量来表示,这些离散值的内部处理是由具有部分离散状态的部件完成的例如十进制数字O , l , 2 , 9 即提供了10 个离散值。第一台电子数字计算机产生于20 世纪40年代末,它主要用于数值计算,那时的离散元素即为数字为了进行数值计算而产生了数字计算机实际上如果只使用两种状态数字计算机的性能将更可靠。因为部件的物理约
2、束和人们的逻辑处理需要所以数字计算机使用具有两种值的离散数据这种数据称为二进制。数字计算机使用只有数字O 和l 的二进制数据系统一个二进制数字称作位在数字计算机中用一组二进制表示信息。应用各种编码技术一组二进制数字不但可以表示二进制数据,而且还可以表示其他离散符号如十进制数字或字母表中的字母例如ASCII是用7 位二进制数字表示一个字符。通过合理使用二进制组合和各种编码技术可产生用于完成各种类型计算的一系列指令。与基数为10 的十进制数相比二进制数的基数为2 使用了数字O 和1 与一个二进制数等值的十进制数可以扩展为包含更多位的二进制数计算机系统是由硬件系统和软件系统组成的,硬件系统由看得见、
3、摸得着的物理设备构成如磁盘和屏幕。软件系统是管理计算机的无形“控制”,是运行在计算机中的所有程序,程序是指令的集台,它告诉硬件应该做什么,通常将计算机硬件分为3 个主要部分:输入和输出设备(I/O 设备)、中央处理器(CPU)和存储器。在第2 章中对硬件部分进行详细介绍软件可以按其用途分类。应用软件是为诸如会计、娱乐和工程领域之类的处理任务而设计的,如果玩过计算机游戏或用字处理软件输入入过文件内容则用户已经具有使用应用软件的体验。另一方面系统软件控制计算机系统,系统软件不仅包括专业人员用于创建应用软件的复杂程序而且还包括用于启动计算机和提供给其他程序使用的管理程序这部分内容将在第2 章和第6
4、章中详细介绍,1 . 2 数据类型数字计算机中的二进制信息存储在存储器或处理器的寄存器中。寄存器的内容为数据或控制信息。控制信息为一位或多位用于表明控制信号的顺序这些信号用于处理其他寄存器的数据数据是数字和其他二进制代码信息通过处理这些数据得到所需的计算结果下面介绍在数字计算机最常用的数据类型和各种数据类型在计算机的寄存器中如何以二进制代码的形式表示数字计算机寄存器中的数据可分类如下;数值数据常用来表示整数n位无符号整数其值的表示范围为O -l ;n位带符号整数其值的表示范围为- -1。这两种格式的数据可以用于算术运算。有些数值数据不能表示为整数。这些数值在计算机中用浮点格式表示典型的如小数部
5、分。计算机中有专用于浮点数的寄存器和指令。布尔值TRUE 和FALSE 经常被被使用这使它们有自己的数据类型一一布尔型和汇编语言指令常用0 值表示FALSE 用非0 值表示TRUE 。布尔汇编语言指令可以对布尔数据执行逻辑操作。与逻辑指令每位都产生操作结果不同,布尔指令只产生一个结果。下面举例来说明它们的不同,若A=0000 0010 , B =0000 0001,则二进制数据的逻辑与运算的给果为0000 0000;然而,如果它们是布尔值,因为它们均为非O ,所以A 和B 均为TRUE ,对它们进行布尔与运算给果为TRUE ,用非O 值表示。计算机也可处理字符型数据。字符型数据用ASCII、E
6、BCDIC 、UNICODE或其他字符编码标准编码后的二进制数据进行存储。计算机能将若干字符连成串,用一些字符代替其他字符或另行处理字符串,而不是用算术方法或逻辑方法处理字符。有些汇编语言指令集中包含了直接处理字符数据的指令,而另一些汇编语言指令集中则运用其他指令构成例程来达到相同的结果。1.3 计算机的发展第一台大型电子计算机是电子数字模拟计算机(ENIAC),它诞生于1946 年从此计算机经历了4 个发展年代或阶段。每一年代的特点是:与上一年代相比,体积更小,费用更低。1 第一代(1944-1958)这是最早的计算机,许多抽入和输出介质采用穿孔卡和磁带,尽管一合计算机只有一个使用磁鼓的主存
7、,但主存几乎全部是由几百个电子管构成。因为电子管易坏,所以计算机可靠性差。与现代的微型计算机相比,它们速度慢、会产生很高的温度,并且体积非常大,它们一次只能运行一个程序。2 第二代(1959-1963) 在20 世纪60 年代初期,多数计算机采用了晶体管和比电子管小得多的其他固态器件。磁芯看起来像由带电的导线所串起来的非常小的金属垫圈,它最广泛地运用于主存。存储设备采用可移动磁盘组件,它是由公共轴将多个磁盘连接在一起而形成的。第二代计算机比第一代计算机体积更小性能更可靠,速度更快3 第三代(1964-1970 ) 第三代计算机用集成电路代替了传统的晶体管电路集成电路是一个完整的电子电路它在一个
8、小硅芯片上集成了许多晶体管和其他电子元件。由于各个元件不需要在计算机系统板上用线路直接连接所以集成电路成本低用于第二代数据存储的磁盘使用得更广泛计算机开始支持多道程序设计(同时处理多个程序)和分时技术(多个用户同时使用相同的计算机)小型计算机在20 世纪70 年代初期被广泛使用并占领了部分大型计算机市场。以前需要由大型计算机处理的任务现在都可由小型计算机完成。4 第四代(1971一至今)大规模集成电路和超大规模集成电路得到发展它们是成千上万个晶体管集成在一个微小芯片上1971 年加Intel公司的Ted Hoff发明了微处理器它是将CPU 的全部组成部分,包括存储器、逻辑电路和控制电路集成到一
9、个芯片上。微处理器和超大规模集成电路技术使计算机在体积大小、外观、价格、可用性和性能方面得到根本改变并且它们开创了小型化的时代计算机向着越来越小的方向发展在此期间计算机主存的性能得到提高而其价格不断降低这些都直接影响着软件的类型和可用性, 软件应用像文字处理、电子表格、数据库管理程序、绘图程序及桌面印刷等进入商业市场,使更多的人去使用计算机,1 . 4 计算机分类计算机通常分为4 大类:微型计算机、小型计算机、大型计算机和巨型计算机。因为计算机速度和存储容量变化非常快所以很难给出每类计算机的精确定义。下述定义将说明每类计算机的特点1微型计算机微型计算机也称为个人计算机它是一种适合于在办公桌或桌
10、面上使用的计算机并且便于携带。微机既可用作独立计算机又可通过连接形成网络如局域网局域网就是将一个办公室或一个建筑物内的一组个人计算机和外部设备用特殊电缆连接起来2 .小型计算机小型计算机设计成可同时支持多个分时终端与微机相比小型计算机操作速度快并且价格高。通常一台小型计算机能充分满足一个部门或一个小事务的日常计算需要其他小型计算机专用于特殊应用例如小型机能控制工厂中的流水线、能记录科学实验室中的数据或帮助编程人员为其他计算机开发程序。3 .大型计算机大型计算机比小型计算机体积更大、速度更快、价格更高它们提供给银行、保险公司、大型团体和政府组织使用。大型计算机可同时服务于几百个用户它适用于解决大
11、量数字计算问题或很多人同时共享最大信息4 巨型计算机巨型计算机最初在20 世纪70 年代产生它们是速度最快和性能最高的计算机,其价格在几十万美元到几亿美元之间它们要安装在具有特殊空调的房间中这些计算机通常用于科学研究,其应用领域包括世界范围内的天气预报技气象分析、石油勘探、航天飞机设计、核武器系列评估和数学研究与微型计算机一般只有一个中央处理器不同大型计算机有几百到几千个处理器,并且每秒能完成大最的计算第2 章 计算机系统的组成原理本章主要介绍基本计算机系统的组成,包括计算机组成简介、系统总线、CPU组成、存储器子系统组成和输入/输出(I/O)子系统组成。2.1 计算机组成简介计算机系统有硬件
12、系统和软件系统组成。计算机硬件系统通常被分为3个主要部分或子系统:CPU存储子系统和I/O子系统,如图2-1所示。,CPU 提供许多操作和控制计算机的功能存储子系统用于存储被CPU 执行的程序及其数据I/O子系统可使CPU 和输入/输出设备(比如个人计算机的键盘和显示器等)交互计算机的所有部件都通过总线相连我们首先介绍系统总线2 .2 系统总线物理上总线就是一束金属线它们被用于连接计算机系统的各个部件从一个部件向其他部件发送信息时,源部件输出数据到总线,目的部件从总线输入相应的数据随着计算机系统复杂性的增加,使用总线比各个设备直接相连更加有效使用总线比大量的直接连接需要更小的电路板空间和电力,
13、组成CPU 的芯片或芯片组则需要更少的引脚,1地址总线在图中有3 种系统总线图中最上面的总线是地址总线当CPU 从存储器中读写数据或指令时,它必须指定CPU 要访间的存储单元的地址CPU 输出地址到地址总线,存储器从地址总线输入地址并用此地址存取正确的存储单元每一个I/O设备,比如键盘、显示器或磁盘驱动器都有一个惟一地址当访问一个I/O 设备时,CPU 输出I/O设备的地址到地址总线每一个设备都可读取地址并判定是否是CPU所需要的设备与其他总线不同,地址总线总是从CPU 接收数据,而CPU从不读取地址总线2 数据总线数据通过数据总线进行传输当CPU 从存储器中读取数据时,它首先输出该存储器的地
14、址到地址总线,然后存储器将数据输出到数据总线,CPU 可以从数据总线读取数据。当向存储器写数据时,CPU 首先输出地址到地址总线,然后输出数据到教据总线这样存储器就可以正确地读取数据并存放在正确的位置I/O设备读取数据和写数据的过程是相似的3 控制总线控制总线与其他两种总线不同地址总线由n 条线组成,以组合传输一个n位的地址值与此相似,数据总线的线路也是协同工作以传输单个多位的值与此不同,控制总线由独立的控制信号组成这些控制信号指示数据是否读入CPU 或从CPU 写出,控制CPU 是访问存储器还是I/O设备,判断存储器或I/O设备是否准备好传输数据尽管这种总线确实是由单向信号组成的,但大多数信
15、号是CPU输出到存储器和I/O子系统,少数是由这些子系统输出到CPU . 系统可以具有总线型的层次结构例如,用地址总线、数据总线和控制总线可以访问存储器和I/O控制器反之,I/O控制器可以使用第二总线(通常被称为I/O总线或局部总线)访间所有I/O设备在个人计算机中比较常见的一个局部总线是PCI 总线2 . 3 CPU 组成在计算机中用于完成数据处理的部件称为中央处理器,简称CPU在微型计算机中常称为微处理器CPU主要由3 部分组成,如图2 一2 所示1.寄存器组寄存器组存储指令执行过程的中间数据顾名思义,寄存器组包括一组寄存器和一个总线或其他的通信设备系统地址总线和数据总线与CPU 的这个部
16、件交互寄存器组还包括其他不被程序员直接访间的寄存器相对简单的CPU 包含地址寄存器,临时存储寄存器和其他不是指令系统结构组成部分的寄存器2 ALU 算术逻辑单元(ALU )提供大多数的算术和逻辑操作,比如“加或“与操作它从CPU 的寄存器组中接收操作数并将结果返回到寄存器组中由于ALU 必须在单个时钟周期内完成运算,所以ALU 仅使用一个组合逻辑来构成3 控制器控制器(CU)控制寄存器之间的信息传输和指示ALU 完成操作这个控制器产生内部控制信号以使寄存器调用数据、增加或清除其内容,输出其内容,并且使ALU 执行正确的功能控制器接收来自寄存器组的一些数据值,并以此产生控制信号这些数据包括指令代
17、码和一些标记寄存器的值控制器还产生系统控制总线的信号,比如READ 2 . ROM ROM 芯片是为数据只读的应用程序而设计的。这些芯片在被加入到计算机系统之前通过外部编程器来写入数据。一旦完成数据通常是不变的。ROM 芯片适用于这种情况因为它具有非易失性即当断电时存储在ROM中的指令记录不会消失当开机时在ROM中固定程序引导计算机为了引导计算机ROM 首先告诉CPU 检测与计算机相连的输入、输出和存储设备然后指示CPU 检测磁盘是否包含可以让用户开始发出命令的操作系统软件。在典型的个人计算机中ROM 还有多种自检程序以便于很容易地诊断和修复硬件错误。根据固化程序的方式和时间长短ROM 芯片被
18、分为几种不同的类型。(l)掩模ROM 掩模ROM 或简单的ROM 在制作芯片时程序数据就被固化制造这些芯片的掩膜技术设计时内都需要使用数据硬连线这些芯片对那些批量生产并且一旦装入数据便不可改变的用户产品非常有用。并且一旦生产完毕数据不能再更改(2) PROM PROM 是可编程的ROM 。与ROM 不同PROM 可以由使用任何标准的PROM 的程序员来编写程序。与硬连线相比PROM 有一系列类似于熔丝的内部连接向PROM 编写数据本质上是熔断指定的熔丝以使存储器的侮一个字存储正确的值因为这些熔丝一旦熔断就不可恢复PROM 仅能编写一次这些芯片适用于制造原型也适用于可以使用ROM 但考虑到ROM
19、 掩膜的成本,不能提供足够数量存储单元的应用。(3)EPROM EPROM 是可擦写的PROM 顾名思义EPROM 像PROM 一样可编写但它的内容可擦除并可重新编写编写EPROM 类似于给电容器充电。已充电和未充电的电容器使存储器中的每个字能存储正确的值这些芯片在表面有一个小的透明窗口,芯片放在紫外线下照射导致电容器泄漏电荷而被擦除这样就可以重新设置芯片内容当使用时这个窗口通常用不透光的胶布盖着以防止任何室内灯光或日光的紫外线不经意间破坏芯片内容尽管它们是可擦写的但常用于数据不变的应用中. EPROM 通常用于产品开发实验室和原型等场合。( 4 ) EEPROM或( PROM ) EEPRO
20、M 有时表示为 PROM 是电擦写PROM 除了其内容是通过电而不是紫外线来擦写和重新编写外它的工作方式与EPROM 相同与EPROM 的必须全部擦除再重新编写不同EEPROM 可以更改个别单元而其他单元不变另外,重新编写一个EEPROM 只需几秒种擦除一个EPROM 则需大概20 分钟EEPROM 适用于内容较少更改的应用只要系统电路中含有具有重写芯片的可编程硬件EEPROM 常用于个人计算机的基本输入/输入系统或BIOS 芯片通常不更改除非新版本的软件应用时BIOS 被更改一次或两次。(5)快闪EEPROM (flash EEPROM ) 一种特殊类型的EEPROM 被称为快闪EEPROM
21、 ,它是以电擦除方式擦除大块数据而不是独立的单元。它非常适用于写大量数据和用作固态硬盘也被用于数码相机的数据存储快闪EEPROM 仅能有限次地重写数据这在当前限制了它在计算机系统中的广泛使用。不同大小的RAM 和ROM 芯片是通用的如果计算机需要比一个芯片更大容量的存储器那么就有必要组合多个芯片来满足存储器容量需要,2.4.2 存储器分级体系存储器分级体系包括在计算机系统中的所有存储设备从低速但容量高的辅助存储器到相对较快的主存到更小更快的可接近高速处理逻辑的高速缓冲存储器典型的存储器分级体系的组成如图2 一所示直接与CPU 通信的存储器被称为主存。提供备用存储的设备被称为辅助存储器。在计算机
22、系统中最常见的辅助存储器是磁盘和磁带。它们用来存储系统程序、大的数据文件和其他备份信息只有CPU 需要的程序和数据放在主存中 所有其他的信息存放在辅助存储器中 当需要时才被传送到主存中。当CPU 需要没有驻留在主存中的程序时这些程序从辅助存储器中调入,当前在主存中不需要的程序被传送到辅助存储器以便为当前使用的程序和数据提供空间。有时可以使用一种被称为高速缓存(cache)的存储器使CPU 可以快速地存取当前的程序和数据从而在计算机系统中使用高速缓存以弥补主存的存取时间和处理器之间的速度不同。CPU 通常比主存的存取时间要快以致处理速度主要受限于主存速度,为了弥补操作速度的不匹配在CPU 和主存
23、之间采用伴常快的小容量高速缓冲存储岩它的存取时间接近于处理器的逻辑时钟周期。高速缓冲存储器用于存储当前正在CPU中 被执行的程序段和当前计算需要的常用临时数据。通过使程序和数据在高速率下可用提高计算机性能就成为可能如图2 一3 所示CPU 可直接访问高速缓冲存储储和主存,但不能直接访问辅存在存储储分级体系中每个组成部分位于不同的层次上由于经济原因在存储器分级体系中有两层或只层随着存储器存储容量的增大,存储每一位二进制信息的成本下降了但存储器的存取时间加长了辅存容量大并且相对便宜但与主存相比存取速度慢高速缓冲存储器容量小相对较贵但有非常高的存取速度。这样随着存储器存取速度的提高相关费用也提高了使
24、用存储器分级体系的总目标是在最小化整个存储系统的全部成本的同时获取尽可能高的平均存取速度。2 . 5 I/O子系统组成本节主要介绍I/O设备、I/O 接口和传输模式2.5.1 I/O设备1 .键盘计算机键盘最初的设计目的是模仿打字机从而使打字员更容易学会使用计算机但是计算机技术的需要导致键和键盘布局不再像以前打字机上看到的那样打字机仅有50 个键而计算机键盘有100 个或更多键。计算机键盘上的键通常分为4 类:字母数字键、功能键、光标键和数字键。字母数字键包括字母、数字和标点符号,它们排列得很像打字机上的键。功能键是标有Fl 、FZ 等一直到F12 或F15 的键,它们用于给出像打印或退出程序
25、等的普通命令每个功能键的精确定义随程序不同而不同光标键用于在屏幕上移动光标光标是小的闪烁符号它在屏幕上显示将要发生事情的位置当击键时光标一直在最后键入的字符的右边闪烁光标键包括上移、下移、左移和右移箭头键还包括上翻页、下翻页、开头和结尾键数字键区包括在标准计算器上有的数字键。2. 鼠标鼠标之所以流行是因为指向比击键更容易也因为箭头键在屏幕上画图或移动不方便鼠标有一个塑料房状的外壳外壳下有一滚动球外壳上面有一个或多个按钮当在桌面上移动鼠标时内部的传感器记录球的滚动并在屏幕上将光标移动到相应位置。使用鼠标发送命令有3 种方式:第一种,可以单击按钮来标识某一位置可能是指出图片的哪一部分需要修改第二可
26、拖动鼠标也就是说,当移动鼠标时可以一直按住按钮拖动它可以在屏幕上移动图画。第三种方式是双击鼠标即在大约半秒内连按两次按钮双击用于在屏幕上选择某些对象当然在所有的指示工具中最简单的是手指事实上触摸屏广泛用于商场的广告显示、信息亭、抽奖游戏机和其他不需要用户非常熟悉计算机的场合在这些机器上只需触摸显示屏上想选择的部分就像按售货机上的按钮一样。依靠触摸屏上使用的传感方法手指可以打断保护屏幕表面的红外线网络这样会告诉计算机所指的位置3监视器监视器或显示屏提供方便的但临时的方法来观看信息。最早的计算机监视器只是转换电视信号当普通电视还被用于打电子游戏时现代大多数计算机程序已要求更高质量的监视器获得更好的
27、监视器有两条路径:提高类电视屏的质量和开发平面显示器。4 .打印机不同种类的计算机打印机使用不同的技术有的打印机使用喷墨技术;有的使用热感技术;有的使用击打色带技术;还有的使用激光产生图像。激光打印机通过快速旋转的八角形镜子反射激光束到光敏滚筒上来工作喷墨打印机通过喷出细小的墨水滴到纸上来工作。点阵式打印机的特征是一个可移动的装有一排小针头的打印头针头打击色带到纸上以产生圆点的矩阵(或图案)当打印头在纸上来回移动时圆点可以形成字符或图片。5 调制解调器调制解调器(modem 是调制器-解调器的缩写它用于计算机之间的通信,调制解调器将计算机的电子脉冲转换成电话线可以传输的格式当信号到达目的计算机
28、时另一个调制解调器将信号重新转换为计算机可以识别的格式有的调制解调器类似于书本大小插在计算机的后面,有的则安装在计算机的内部2 .5 .2 I/O接口输入一输出接口提供了一种在内部存储器和外部I/O 设备之间传输信息的方法连接到计算机的外设为了能和中央处理器相接,需要特殊的通信链路通信链路的目的是解决主机和外设存在的差别。主要差别包括;外设是机电设备或电磁设备,它们的工作方式不同于电子的CPU 和存储器的工作方式。这样就需要信号值的转换外设的数据传输速率通常比CPU 的传输速率慢因此需要一个同步装置。外设的数据编码和格式与CPU 和存储器的字符格式不同。外设之间的操作模式是不同的并且每一个外设
29、必须是可控的从而可以不影响其他与CPU 连接的外设的操作为了解决这些差别计算机系统在CPU 和外设之间含有特殊的硬件部件以管理和同步所有的输入和输出传输。因为它们在处理器总线和外设之间提供接口所以这些部件被称为接口单元另外每个设备可能有自己的控制器来管理外设中特殊装置的操作I/O 接口如图2 ? 1 所示每一个外设都与一个接口单元相连每一个接口对来自I/O总线的地址和控制进行解码将它们解释给外设并为外设控制器提供信号。它还使数据流同步并管理外设和处理器之间的传输2 .5 .3 传输模式从外部设备接收的二进制信息通常存储在存储器中以便于以后的处理主机传输到外设的信息产生于存储器,CPU 只是执行
30、I/O 指令并临时接收数据但最终的信源或信宿是存储器在主机和I/O设备之间的数据传输可通过多种模式来操作一些模式用CPU 当做中间路径其他的直接从存储器传输数据。与外设的数据传输可以通过3 种可能的模式中的一种来操作:程序化I/O. 中断直接存储器存取(DMA 1 程序化I/O程序化I/O操作是通过执行写在计算机程序中的I/O指令完成的。每一个数据项的传输被程序中的一条指令初始化通常是在CPU 寄存器和外设之间传输其他指令需要在CPU 和存储器之间传输数据。程序控制下的数据传输需要CPU 持续地监控外设。一旦数据传输开始CPU 需要监控接口来发现什么时候可以再传输在CPU中执行的程序化指令可以
31、密切监视发生在接口单元和I/O设备中的所有事情在程序化I/O方法中 . CPU 停留在程序循环中一直到I/O单元表明已经准备好传输数据了。因为它使处理器处于不必要的繁忙中, 所以这是一种浪费时间的处理方式这是可以避免的当来自于设备的数据可用时,通过使用一个中断设备和特殊的命令来通知接口发出一个中断请求信号,期间CPU 可以执行其他程序接口在此期间保持对设备的监控。当接口判定设备准备好传输数据时它对计算机产生一个中断请求。一旦检测到外部的中断信号,CPU 即刻停止正在处理的任务跳转到处理I/O传输的服务程序完成服务程序后再返回到原来执行的任务。2 中断设置CPU 监控标记的一个可供选择的方法是让
32、接口通知计算机什么时候它已准备好传输数据这种传输模式使用中断设备。当CPU 运行一个程序时,它不用检测这个标记但是当标记设置时计算机即刻中断当前执行的程序并被通知当前标记已被设置,CPU 离开当前正在执行的程序去完成输入或输出传输当传输完成后,计算机返回到以前的程序继续执行中断前所做的事情,CPU 通过把程序计数器中的返回地址保存到存储器堆栈从而响应中断信号然后控制分支到处理I/O传输要求的服务程序处理器选择不同单元的服务程序入口地址的方式是不同的在原理上有两种方法可以实现一种是被称为向量中断另外一种是非向量中断。在非向量中断中入口地址保存在存储器的固定单元中。在向量中断中 .中断源向计算机提
33、供入口信息这个信息称为中断向量。在一些计算机中.中断向量是一个地址它指向存储器中存储I/O服务程序起始地址的单元。3 .直接存储器存取(DMA)可以提高计算机系统性能的另一种方法是在存储器和I/O设备之间传输数据这是计算机系统中很普遍的操作将程序或数据文件从磁盘装入存储器、在磁盘上保存文件和访问在任何辅存上的虚拟内存页,所有这些都属于这类操作设想一个典型的系统它由CPU 、存储器和一个或更多的输入输出设备组成假定其中一个I/O设备是磁盘驱动器并且计算机需要从这个驱动器装入一个程序到存储器CPU 会读取这个程序的第1 个字节然后将它写入存储器,对第2 个及以后的每个字节都做同样的操作直到CPU
34、将核个程序都装入到存储器。这充其量是低效率的将数据装入写出CPU 明显地减慢了传输的速度CPU 根本不修改数据它只是在数据通向最后目的地过程中起到附加保留的作用如果绕过CPU 直接在存储器和I/O设备之间传输数据这个处理过程将大大加快直接存储器存取(DMA)则完成这种操作计算机系统中 DMA控制器实现直接存储器存取。它一端直连I/O设备另一端和系统总线相连它还通过系统总线和两种新的直接连接器与CPU 交流为了从I/O设备传送数据到存储器,通过将BR 设置为1 , DMA 控制器首先向CPU 发送一个总线请求。当可以同意这个请求时CPU 给予总线同意信号,并将BG 设置为l , CPU 还声明它
35、的地址线、数据线和控制线这些系统总线由DMA 控制器进行控制只要BR 有效CPU 会继续让出地址线、数据线和控制线现在DMA控制器具有对系统总线的控制能力它可以完成所需要的数据传输为了将数据从I/O设备中装入到存储器它发出适当的I/O控制信号并将数据从I/O 设备装入到内部的DMA 数据寄存器。接着它将数据写入存储器为了完成这项工作它输出存储器地址到地址总线并输出数据到数据总线DMA 控制器还在控制总线上发出适当的控制信号以使存储器读取数据。紧接着DMA 控制器写第2 个数据位到随后的存储单元直到传输完整个数据块为止。为了更好地理解DMA 控制器是如何完成数据传输的必须说明它的内部结构DMA 控制器包括一些寄存器,DMA 控制器中的地址寄存器包含用于数据传输的存储器地址CPU 将这个寄存器视为一个或更多的输出端口,DMA 控制器中 的计数寄存器有时被称为字计数寄存岩包含被传输数据的字节数。与DMA 地址寄存器相同它也被CPU 视为一个输出端口。DMA 控制器中的控制寄存器接收来自CPU 的命令。大多数DMA 控制器还有一个状态寄存器,这个寄存器向CPU 提供信息CPU 将它作为一个输入端口,DMA 控制器通常还包括可用于中止传输的电路如果I/O设备在预先确定的时间内没有准备好,就被中止传输这被称为超时