赞
踩
计算机系统包括硬件和软件。从计算机系统的层次结构来看,它通常可以分为五个以上的层次,在每一层上都能进行程序设计。由下至上可排序为:第一级微程序机器级,微指令硬件直接执行;第二级传统机器级,用微程序解释机器指令;第三级操作系统级,一般用及其语言程序解释作业控制语句;第四级汇编语言级,这一级由汇编语言支持和执行;第五级高级语言级,采用高级语言,由各种高级语言编译程序支持和执行。还可以有第六级,应用语言机器级,采用各种面向问题的应用语言。
冯诺依曼结构计算机是一种典型的计算机组织结构,将计算机硬件分为运算器,存储器,控制器,输入部件和输出部件,采用存储程序的工作方式。冯诺依曼结构计算机的主要外部特征是:
(1)指令和数据都以字的方式存放在相同的存储器中,没有区别,由计算机的状态来确定从存储器独处的字是指令还是数据。指令送往控制单元译码,,数据送往运算器进行运算。
(2)指令顺序串行地执行,并由控制单元集中控制,采用一个PC计数器对指令进行寻址。
(3)存储器是一个单元定长的一维线性空间。
(4)使用低级机器语言,数据以二级制形式表示。指令中包括操作码和地址码两部分。操作数的编码格式从数据本身不能进行区别。
(5)单处理机结构,以运算器为中心,只有一个数据流和指令流。
冯诺依曼结构计算机的局限性在于它的并行性十分有限,不适合于人工智能和模式识别等应用场合。
计算机内部有控制信息流和数据信息流。控制信息包括指令信息、状态信息和时序信息,这些信息的组合产生各类控制信号,对数据信息进行加工处理,并控制数据信息的流向,实现计算机的各项功能。
计算机采用二进制计数制。这种计数制便于物理器件实现。如半导体存储器中输出元件的导通与截止、瓷表面存储器中磁化单元的磁化方向、光存储器中金属存储面上凹坑的有无等都可用来表示二级制数的0和1。
运算器的主要功能是完成算数运算和逻辑运算;控制器的主要功能是对指令译码,并产生相应的控制信号。
输入设备将人们书序的信息(数字、字符、文字、图形、图像、声音)形式转换成计算机能接受并识别的信息(二进制信息)形式,输出设备则将计算机内部信息形式转换成人们熟悉的信息形式。
算术运算对数据进行算数操作,包括加减乘除四则运算和数据格式转换;逻辑运算按位对数据进行与或非异或和移位等操作。
机器语言是一种用二进制代码表示的计算机语言,机器可以直接执行用机器语言编写的程序。汇编语言是一种用助记符表示的与机器语言一一对应的语言,用汇编语言编写的程序需经过汇编后才能执行。高级语言是一种接近人类自然语言的与计算机结构无关的语言,用高级语言编写的程序要经过解释和编译才能执行。
指令是机器完成某种操作的命令,典型的指令包括操作码和地址码两部分。操作码用来指出执行什么操作(如加、传送),地址码用来指出操作数在什么地方、程序是有序指令的集合,用来解决某一特定问题。
在存储程序的计算机中,指令和数据都是以二进制的形式存放在存储器中。从存储器中存储的内容本身看不出它是指令还是数据,因为它们都是二进制代码。计算机在读取指令时把从存储器中读到的信息都看作是指令,而在读取数据时则把从存储器中读到的信息都看作是操作数,所以为了不产生混乱,在进行汇编程序设计时要注意区分存储器中的信息是程序还是数据,而用高级语言设计程序一般不会产生上述问题。有些计算机程序是专门对程序进行操作的,如编译程序和汇编程序,所以指令也可以是计算机的操作对象。有时我们把存储在计算机中的指令和数据统称为数据,因为它们都是存储在存储器中的二进制代码,都可以作为指令的操作对象。
寄存器在运算时用于保存运算数据和中间运算结果,以提高运算速度。此外,寄存器还可以存放指令、指令地址、程序运行状态等。寄存器还可以作为数据缓存。
编译程序和解释程序的作用都是将高级语言程序转换成机器语言程序,但转换的过程不同。编译程序在编译时先检验程序错误,进行结构分析后转换成中间代码,然后将中间代码转换为机器指令代码,最后还需执行机器指令。这种方法编译时间长,运行速度块。解释程序前线检查错误,然后边解释边执行。这种方法简单,但运行速度慢,主要用于调试程序。13.什么是存储单元、单元地址、存储体、存储容量?
存储单元是存储器的基本存储单位,用于存放一个字信息,可以使指令或数据。对存储单元用二进制统一编号,编号就是单元地址,信息存储按地址进行。存储体是计算机系统存储器的基本组成单位,计算机系统最少应有一个存储体,存储体应有课运行程序的基本容量,主要是数据位数应等于系统数据总线的宽度。存储单元的总数称为存储容量。
机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。指令字长是指计算机指令中二进制代码的总位数。存储字长是指存储单元中存放二进制代码的总位数。三者可以相当也可以不等,视不同机器而定。
(1)机器字长:CPU一次能处理的数据的位数,通常与CPU寄存器的位数有关。
(2)存储容量:包括主存容量和辅存容量,是存放二进制代码的总和,可用位(Bit)
或字节(Byte)来衡量。
(3)运算速度:可用MIPS(每秒执行的百万条指令数)、CPI(没执行一条指令所需的时钟周期数)或FLOPS(每秒浮点运算次数)来衡量运算速度。
不对。计算机指令的功能强并不意味着计算机的性能高。计算机系统的性能取决于程序中指令的数量和每条指令执行时所需的时间,指令的功能强可减少程序中指令的数量,但也可能使得每条指令的平均执行时间延长。
用硬件实现的功能,在原理上可以用软件实现;用软件实现的功能,在原理上也可以用硬件来实现,这就是硬件和软件的等价性。例如,硬件可以直接做乘法运算,也可以通过软件用相加和移位的方式实现乘法运算。运行软件可以控制计算机的运行,但也可以把软件固化在ROM芯片中(如BIOS),在开机过程中由硬件直接运行。
当数据的位数超过一个字节时,将低位字节存放在低位地址的存储方式为小数端存储方式;将高低位字节存放在高位地址的存储方式为大数端存储方式。
带符号数在计算机内部的表示方式有原码、反码、补码和移码。
原码表示方法简单易懂,实现乘除法预算简单,但用它实现加减法运算比较复杂。
补码的特点是加减法运算规则简单,正负数的处理方式一致。
反码通常只用来计算补码,由于用发麻运算不方便,因此发麻在计算机中没得到实际应用。移码由于保持了数据原有的大小顺序,便于进行比较操作,因此常用语浮点数中的阶码,使用比较方便。
浮点的规格化是为了使浮点数尾数的最高数值位为有效位。当尾数用补码表示时,若符号位与小数点后第一位不相等,则被定义为已规格化数,若则便是非规格化数。通过规格化,可以保证运算数据的精度。
从程序的编制与执行的角度来看,指令规定了计算机的操作类型及操作数地址,它们是产生各种控制信息的基础。另外,从硬件设计的角度看,在设计计算机时先要确定其硬件能够直接执行哪些操作,表现为一组指令的集合,称之为该计算机的指令系统。因此,指令系统体现了一台计算机的软硬件界面。指令系统包含若干指令,它规定了计算机功能的强弱及硬件复杂程度。
指令字长为机器指令所包含的二进制代码位数,存储字长为存储单元中二进制数的位数,及其子长为运算器一次运算的二进制位数。
指令地址:指令在内存中的地址;形式地址:指令地址字段给出的地址;有效地址:形式地址经一定的运算而得到的操作数的实际地址。
用一些比较容易记忆的文字符号来表示指令中的操作码和操作数,这种符号称为助记符。助记符比较接近人类语言,因此程序编写比较容易,指令短,便于阅读,而用二进制代码编写程序则较复杂,指令长,阅读也较困难。
RISC指令系统通过简化指令,使计算机的结构更加简单合理,并通过减少指令执行周期数的途径,达到提高机器速度的目的。其特点如下。
(1)选取使用频度较高的一些简单指令。复杂指令的功能由执行频度高的简单指令组合来实现。
(2)指令长度固定,指令格式和寻址方式种类少。
(3)CPU中通用寄存器数量多,大多数指令操作都在寄存器之间进行,只有取数(LOAD)和存数(STORE)指令访问存储器。
(4)采用流水线技术们大部分指令在一个时钟周期内完成。
(5)控制器采用组合逻辑控制,不用微程序控制。
(6)采用优化编译程序。
数据的寻址方式有:按地址查找、按内容查找、按顺序查找等,其中按地址查找的寻址方式最为普遍。
寄存器寻址:寄存器中存放的就是操作数。寄存器间址:寄存器中存放的是操作数的地址,操作数在内存中。寄存器寻址访问操作数的速度比寄存器间接寻址访问操作数的速度快。11.在寄存器-寄存器型,寄存器-存储器型和存储器-存储器型三类指令中,哪类指令的执行时间最长,哪类指令的执行时间最短,为什么?
寄存器-寄存器型执行速度最快,存储器-存储器型最慢。因为前者操作数均在寄存器中,后者操作室在存储器中,而访问一次存储器所需的时间一般比访问一次寄存器所需时间长。12.选择寻址方式时主要考虑哪些因素?
选择寻址方式时主要考虑以下因素:
(1)应与数据的表示相配合,能方便地存取各种数据;
(2)应根据指令系统及各种寻址方式的特点和相互组合的可能性进行选择;
(3)考虑实现上的有限性和可能性;
(4)还应使地址码尽可能短,存取的空间尽可能大,使用方便。
寻址方式在指令格式中的表示方法通常有两种。
(1)由不同的操作码指明操作数的不同寻址方式(操作码指明法);
(2)在指令格式中增设寻址特征位指明寻址方式(寻址方式位法)。
在各类寻址方式中,立即寻址方式最快,因为它不需要寻址,可从指令中直接获得操作数。复合寻址方式最慢,因为它不但要进行运算,执行(PC)+D或(Ri)+D操作,而且需要两次访问存储器才能获得操作数。
相对寻址方式中,操作数的地址是程序计数器PC的值加上偏移量形成的,是一种特殊的变址寻址方式,偏移量用补码表示,可正可负。相对寻址方式可用较短的地址访问内存。16.转子指令执行时应执行哪些操作,子程序中的返回指令应执行哪些操作?
转子指令保存返回地址有三种方式。
(1)用子程序的第一个字单元存放返回地址。这种方法允许多重转子,但不允许子程序的递归和联锁递归。
(2)用寄存器存放返回地址。这种方法可以支持多重转子及递归,但是子程序实现比较复杂。
(3)用堆栈保存返回地址。这种方法支持多重转子和递归,是目前广泛采用的方法。
按指令功能分,可分为数据传送类指令,算/逻运算类指令、程控类指令和I/O类指令等。这是最常用的分类方法。
CPU具有控制程序的顺序执行、产生完成每条指令所需的控制命令,对各种操作实施时间上的控制、对数据进行算数和逻辑以及处理中断等功能,其框图如图所示。图中寄存器包括转用寄存器(如程序计数器CPU ADD 寄存器、指令寄存器、堆栈指示器、存储器地址寄存器、存储器数据寄存器、中断系统微命令发生器状态指令寄存器等)以及通用寄存器(存放操作数);控制单元生成各控制总线数据总线地址总线种微操作命令序列;ALU完成算数和逻辑运算;中断系统用于处理各种中断。
控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、地址译码器、微操作产生部件、时序发生器和中断机构等组成,它的基本功能如下。
(1)取指令:根据PC内容,从存储器指定单元取出指令后传送到IR,并修改PC内容,指向下一条执行。
(2)分析指令:对指令操作码进行译码,产生各种微操作控制信号。
(3)执行指令:根据操作码指定的操作性质实现操作目的。
(4)处理中断请求:包括故障中断和外设请求。
组合逻辑控制器速度较快,但控制较复杂,且功能扩展较难。与组合逻辑控制器相比,微程序控制器具有鬼整形、可维护性的优点。它是一种利用软件方法设计硬件的技术,可实现复杂指令的操作控制。另外,微程序设计便于计算机功能的扩充,可较方便地增加和修改指令,只需要增加或修改一些微程序。
(1)一条机器指令对应一段微程序,这段微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
(2)从指令与微指令、程序与微程序、地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。
(3)每一个CPU周期对应一条微指令。
带多路选择器的运算器中,数据通路:每个寄存器有单独的数据通路与多路选择器连接;数据流动方向:CPU内部总线是一组单向传送的数据线,将ALU的运算结构送往各寄存器;对运算型指令的支持较强,可同时将两个操作数送达ALU;但是寄存器间数据传送需要通过ALU中转。
带输入锁存器的运算器中,数据通路:寄存器组采用小规模告诉存储器结构,通过总线与ALU输入端的锁存器连接;数据流动方向:CPU内部总线是一组双向传送的数据线;对于运算型指令,由于寄存器组每次只能通过总线向ALU提供一个操作数,因此需要在ALU输入端设置锁存器,暂存操作数。
CPU在取指阶段从存储器取出的信息为指令代码。CPU在执行阶段从存储器中取出的可以是运算数据、字符代码和BCD代码,具体是哪一种信息与指令的操作码有关。凡是根据堆栈指示器SP所指示的地址访存时所获得的数据即为堆栈数据。
计算机中的时序控制方式分为同步控制和异步控制两大类。同步控制方式是指用统一发出的时序信号对各项操作进行同步控制。在同步控制方式中,操作时间被划分为许多长度固定的时间段,每个时间段完成一步操作,如一次访存操作。其特点是始终周期一旦确定,便固定不变,各步操作之间的衔接由时间段的自动切换来控制。异步控制方式是指各项操作不受统一时序信号的约束,而是根据实际操作安排不同的时间。各操作之间的衔接、各部件之间的数据传送采用异步应答方式。其特点是没有统一的时钟周期划分和同步定时脉冲。
同步控制方式的优点是时序关系简单,时序划分规整,控制不复杂,控制部件在结构上易于集中设计方便;缺点是在时间的安排上可能不合理,对时间的利用不经济。
异步控制方式的优点是时间安排紧凑、合理,能按不同部件、不同设备的实际需要分配时间;缺点是控制比较复杂。
应用场合:一般地,在CPU或者设备内部的操作中普遍采用同步控制方式;在连接CPU、主存和外部设备的系统上,有的采用同步方式,有的采用异步方式来控制总线数据传送操作。
补码加减法中一个重要问题是溢出判断,共有三种方法。
对于两数A=S A A n-1A n-2…A0 B=S B B n-1B n-2…B0
方法一:“溢出”=S A S B S f+ S A S B S f,其中,表示S f结果的符号位。
方法一:“溢出”=C f○+C,其中,C f表示符号位产生的进位;C表示数值为最高位产生的进位。
方法三:将符号位扩展为双符号位,则结果的符号位为S f1,S f2,有“溢出”= S f1○+S f2。
将符号位扩展为双符号位,则结果的符号位为S f1,S f2,有“溢出”= S f1○+S f2。相对但符号位溢出判别方法,该方法简单可靠。
对阶的原因:如果大阶向小阶看齐,随阶码的值减少,为保持数的值不变,则尾数必须左移相应位数,有可能发生符号位及尾数高位丢失的错误,这是不允许的。而增大小阶码同时尾数右移,有可能发生尾数低位的丢失,这只影响精度,不会产生错误。
上溢:同号数相加,其中一数的绝对值很大,阶码已达到正最大,而和的绝对值大于1,则尾数需要右规,阶码加1,超出了阶码的最大表示范围,此时称为上溢。运算结果错误,CPU 报错停机,并置程序状态字寄存器,中溢出标志位为1.
下溢:异号数相加前,两数的绝对值很小,使阶码达到负绝对值最大,且两数相差很小,相加后需左规,则尾数左规时,阶码减小,超出了阶码表示的最小的负数,此时称为下溢,一般当做机器零处理,计算机不报错。
尾数调整是指检测被除数尾数的绝对值是否小于除数尾数的绝对值,以确保商的尾数为小数,如果不是,则被除数尾数右移一位,并相应的调整其阶码。由于两操作数均已是规格化数,即|M|≥1/2,相除后期商(结果尾数)的绝对值必然大于等于1/2,不需要左规。在进行“尾数调整后”,商(结果尾数)的绝对值必然小于1,不需要左规。所以按照上述操作产生的商不需要进行规格化处理。
对阶的目的:使被加数(或被减数)X和加数(或减数)Y的小数点对齐,即是其阶码相等。对阶原则:小阶向大阶看齐。
对阶的方法:阶码小的数每次阶码加1,尾数右移1位,直到两数的阶码相等。
图3-10是指令周期的流程图,取指周期完成取指令和分析指令的操作;间址周期用于取操
CPU 中断周期前为执行周期,中断周期后为取指周期。中断周期完成下列操作:
保存程序断点、硬件关中断,将向量地址送至程序计数器(硬件向量法)或将中断识别程序入口地址送至程序计数器(软件查询法)。
把指令执行所需要的所有控制信号存放在控制存储器中,需要时从这个存储器中读取,也就是把操作控制信号编成微指令,存放到一个专门的存储器中。这样,指令的控制器设计就变成微程序设计,从而可用类似于软件技术来设计控制器部件。
微程序控制器具有较强的灵活性,因为微程序容易修改,从而可方便地实现新功能,增加新指令。但是微程序控制器在执行每条指令时都要访问存储控制存储器若干次,控制存储器的速度就成了系统工作速度的关键。与组合电路的控制器比较,微程序的控制器具有规整性,可维护性等优点。它一种利用软件方法来设计硬件的技术。
微指令编码方式有直接表示法、编码表示法、混合表示法。微指令的格式大体分成两类:水平型微指令和垂直型微指令。水平型微指令分为全水平型微指令、字段编码的水平型微指令、直接和编码相混合的微指令。微程序控制器具有规整性、可维护性和灵活性的优点,可实现复杂指令的操作控制,使得在计算机中可以较方便地增加和修改指令,甚至可以实现其他计算机的指令。
流水线受阻一般有三种情况。
(1)在指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突。如在同一时间,几条重叠执行的指令分别要取指令、取操作数和存结果,都需要访存,就会发生访存冲突。
(2)在程序的相邻指令之间出现了某种关联,如当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行,就会引起数据相关。
(3)当流水线遇到分支指令时,如一条指令要等前一条(或几条)指令作出转移方向的决定后,才能进入流水线时,便发生控制相关。
指令流水线和运算流水线的共同点是:由于相邻两段在执行不同的操作,所需的时间可能不相同,因此在相邻两段之间必须设置锁存器或寄存器,以保证在一个时钟周期内流水各段的输出信号不变。
从一条指令到启动到下一条指令启动的时间间隔称为指令周期。完成指令中一个步骤所需的时间称为机器周期。完成一条微指令所需的时间称为时钟周期。一个指令周期包含若干个机器周期,如取指令周期、取操作数周期和运算周期。一个机器周期包含个若干个时钟周期,若干条微指令实现指令中一个步骤的功能。
PSW是程序状态字,存放在程序状态字寄存器SR中。它表示程序运行时的运行结果特征和处理器的状态,为指令运行提供必要的条件。
时序就是时间序列,CPU时序就是CPU在执行一条指令时所需要的时间序列。这个时间序列可用时序发生器产生的一组时序信号来标志。将时序信号产生的一系列脉冲与电位,送至各操作部件,对控制信号进行定时控制。
一条指令的执行过程可分为取指令、指令译码,取操作数和执行指令等步骤。指令译码与取操作数可以并行操作,因此将指令执行过程分为取指令、取操作数和执行指令阶段。由于大多数指令有两个操作数,因此取操作数阶段分为取源操作数阶段和取目的操作数阶段。每个阶段对应一个机器周期,为了便于控制,取最长的机器周期作为计算机标准机器周期。26.指令周期结束操作包含哪些内容,为什么要做结束操作?
指令周期结束操作包括停机,电源失效、DMA请求和中断请求的处理。结束操作是维持正常的指令循环所必需的。CPU在运行程序时,可能会出现各种事件和异常情况,若不自动处理,则指令的循环无法正常执行。因此必须事先考虑当出现事件或异常情况时的处理方法,安排控制流程,在指令结束时予以判断和处理,维持指令的正常循环。
指令和数据不加区分的以二进制代码的方式存放在存储器中。在取指令阶段,根据PC中的地址,从存储器中取出来的是指令,它被传送到指令寄存器IR中。在取操作数阶段,根据寻址方式获得操作数的地址,从存储器中取出来的是数据,根绝指令操作意图,操作数被传送到ALU参加运算,或者被传送到寄存器或存储器中。
水平型指令的字长较长,在一条微指令中定义了较多的微操作,因此编制的微程序较短,可用较少的微指令实现机器指令的功能。它可以直接控制操作对象,具有效率高、速度快、灵活性强、控制简单的特点。微程序设计较复杂,但硬件实现较简单。垂直型微指令的结构类似于机器指令的结构,微操作码需经过译码后再控制操作对象,因此速度较慢。另外,在一条微指令中只能定义一种微操作,使得指令规范、功能简单、字长较短、编制的微程序较长。微程序设计简单,但硬件控制较复杂。
微指令有以下几种编码方式:
(1)直接表示法。微操作码中的每一位表示一种微操作,这种方法简单,但微指令字长较长,编码效率较低。
(2)编码表示法。将微操作码分段编码,将相容性微操作放在不同的段中,而将相斥性微操作放在同一段中。每段包含若干位,用不同的码点表示不同的微操作。这种方法微指令字长较短,编码效率高,但执行速度较慢,且需要增加译码器。
(3)混合表示法。结合前两种方法,将一些速度要求高,或者与其他微操作都相容的微操作用直接表示法表示,而将其他微操作以编码表示法表示。
存储元:存储器最小组成单元,它的作用是用来存放一位二进制代码”0”或者”1”。任何具有两个未定状态(双稳态)的物理器件都可用来做存储元。
存储单元:在存储器中有大量的存储元,把他们按相同的位数划分为组,组内所有的存储元同时进行读出或写入操作,这样的一组存储元称为一个存储单元。一个存储单元通常可以存放一个字或若干个字节;存储单元是CPU访问存储器的基本单位。
单元地址:存储器中存储单元的编号叫做单元地址。在按地址访问的存储器中,单元地址与存储单元是一一对应的,是存储单元的唯一标志。
存储体:存储单元的集合组成存储体。存储体是存放二进制信息的地方,它具有读取,写入和保持(记忆)的功能。
存储容量:存储器可以容纳的二进制信息的总量称为存储容量,其单位是字节(Byte)或者字(Word),常用的单位符号还有KB,MB,GB,TB。
存储器:计算机系统的重要组成部分,是计算机系统中的记忆设备,用来存放程序和数据。有了存储器,计算机系统就具有了记忆功能,从而将用户信息存放到计算机中,使计算机可以脱离人工干预,自动地进行作业。
所谓程序访问的局部性,即程序执行时对存储器的访问是不均匀的,这是由于指令和数据在主存的地址分布不是随机的,而是相对地簇聚。存储系统的Cache--主存级和主存—辅存级都用到了程序访问的局部性原理。对Cache—主存级而言,把CPU最近期执行的程序放在容量较小、速度较高的Cache中。对主存—辅存级而言,把程序中访问频率高、比较活跃的部分放在主存中,这样既提高了访存的速度也扩大了存储器的容量。
随着计算机技术的广泛应用及科学技术的发展,任何计算机系统对存储器的要求都是高速度、大容量、低成本。然而这三项指标是相互矛盾的,在目前的工艺技术条件下不可能同时满足。为了解决这个矛盾,逐渐形成了分级的存储体系。各级存储器采用不同容量、不同速度、性能上互补的存储器构成一个存储系统的整体,各级存储器之间在必要时需要进行信息交换,从而满足不同应用的需求。现在广泛采用的是三级的层次结构:告诉缓冲存储器(Cache)、主存储器、辅助存储器。这三级存储器不是孤立的部件,而是构成了一个整体。主存和Cache之间的信息交换由专门的部件(辅助部件)控制进行,因为其速度要求高,辅助硬件通常采用组合逻辑实现。从CPU的角度来看,主存和Cache层次的速度接近Cache,容量是主存的容量,而位成本也接近于主存,因此可以解决速度和成本的矛盾。主存和辅存之间信息交换通过辅助软硬件实现。通过软硬件结合,把主存和辅存统一成为一个整体,构成主存和辅存层次。从整体上来看其速度解决于主存,但容量是辅存的容量,而位成本也接近于廉价的辅存的平均价格,因此可以解决容量和成本的矛盾。这样,用户就可使用一个容量很大(取决于辅存),价格低廉(接近于辅存),而速度很高(主要取决于Cache)的存储系统,从而满足高速、大容量、低成本的要求。
三级存储体系由Cache存储器、主存和辅存构成。在Cache—主存之间,主存和辅存之间分别有软硬件和辅助软件负责信息的调度,以便各级存储器能共组成有机的三级存储体系。Cache和主存构成了系统的内存,而主存和辅存依靠辅助软硬件支持构成了虚拟存储器。在三级存储体系中,Cache—主存和主存—辅存这两个存储层次有如下两个相同点。
(1)出发点相同;二者都是为了提高存储系统的性能价格比而构造的层次性存储体系,都力图使存储系统的性能接近高速存储器,而价格接近于低速存储器。
(2)原理相同:都是利用了程序运行时的局部性原理把最近常用的信息快从相对较慢,而大容量的存储器调入到相对高速而容量较小的存储器。
Cache—主存和主存—辅存这两个存储层次有如下四个不同点.
(1)目的不同:Cache主要解决主存与CPU的速度差异问题;而虚存就性能价格比提高而言主要是解决存储容量的问题(另外还包括存储管理、主存分配和存储保护等方面)
(2)数据通路不同:CPU与Cache和主存之间均有直接访问通路,Cache不命中时可以直接访问主存;而虚存中,辅存与主存之间不存在直接的数据通路,当主存不命中时只能通过调进解决,即把CPU要用的程序从辅存调进主存。
(3)透明性不同:Cache的管理完全由硬件完成,对系统程序和应用程序均透明;而虚存管理由软件(操作系统)和硬件共同完成,对系统程序不透明,对应于程序透明(段式和段页式管理对应用程序半透明)。
(4)未命中时的损失不同:由于主存的存取时间是Cache的存取时间的5~10倍,而辅存的存取时间通常是主存的上千倍,故主存未命中时系统的性能损失要远大于Cache未命中时的损失。
与EPROM相比,闪存的优点是存储容量大(可达2MB),数据可在线更新,且更新较方便,缺点是无法保障数据安全,容易遭受病毒攻击。
主存的速度指标用存取周期表示。辅存的速度指标,以磁盘为例,一般包括寻找(寻道)时间、等待时间和数据传输时间三个量。因为主存是随机存取存储器,所以存取周期不随存储单元的地址不同而改变。而磁盘存储器属磁表面存储器,其存取周期与存储单元的位置有关,不同位置所需的寻道时间和等待时间(在磁道上找到制定扇区位置所需的时间)不同,故不能以一个物理量来衡量。
辅存的技术指标一般包括以下几个方面。
(1)记录密度(分道密度和位密度两种)。
(2)存储容量(盘面数×每个盘面的磁道数×每个磁道记录的二进制代码数)。
(3)平均访盘时间(包括寻道时间、等待时间和传送时间)。
(4)数据传送速率(每秒钟内存入或读出二进制代码的位数)。
(5)误码率(出错信息位数和独处信息的总位数之比)。
按存储器在计算机中的作用分类,可分为(1)高速暂存存储器(2)高速缓冲存储器(3)主存储器(4)辅助存储器(5)其他功能的存储器。
按存储介质分类,可分为:(1)半导体存储器(2)磁表面存储器(3)光盘存储器。
按存储方式分类,可分为:(1)只读存储器(2)随机存取存储器(3)直接存取存储器(4)顺序存取存储器(5)按内容寻址存储器。
按信息的可保存性分类,可分为:(1)挥发性存储器和非挥发性存储器(2)破坏性读出存储器和非破坏性读出存储器。
RAM是随机存取存储器,在程序的执行过程中既可以读出又可以写入。ROM是只读存储器,在程序的执行过程中只能读出信息,不能写入信息。
由公式:T a=H×T c+(1-H)T m,可以看出,Cache和主存的存取周期直接影响CPU的平均访存时间,而命中率也是影响Cache—主存系统速度的原因之一。命中率越高,平均访存时间就越接近与Cache的存取速度。而影响命中率的因素包括Cache的替换策略、Cache的写操作策略、Cache的容量、Cache的组织方式、块的大小以及所运行的程序的特性,还包括控制Cache的复制硬件的调度方式。如果实现信息调度功能的辅助硬件能够事先预测CPU未来可能需要访问的内容,就可以把有用的信息事先调入Cache,从而提高命中率。而扩大Cache的存储容量可以尽可能多地装入有用信息,减少主从主存替换的次数,同样能提高命中率。但是,Cache的容量收到性能价格比的限制,加大容量会使成本增加,致使Cache—主存系统的平均位价格上升。所以虽然提高命中率能够提高平均速度,但提高命中率会受到多种因素的制约。
动态存储器一句栅极电容上有无电荷来表示信息1和0.由于电路中存在漏电流,电容上的电荷会逐渐泄漏,因此必须在电荷未消失之前予以补充,这一过程称为刷新。刷新过程是一个数据的读/写过程,将信息读出,放大后再写回存储元,对栅极电容进行充电。
动态随机存储器利用存储元中的栅极电容存储电荷,电容上有电荷表明存放数据1,无电荷表明存放数据0。由于存储元电路存在漏电流,使栅极电容上的电荷流失,因此必须每隔一段时间对存储体中的所有记忆单元的栅极电容补充电荷,这个过程称为刷新。
有三种典型的刷新控制方式。
(1)集中刷新方式:在最大刷新时间间隔内,前一段时间进行读/写/保持,后一段时间集中进行刷新。这种方式的主要缺点是在集中刷新这段时间内不能进行存取访问,称为死区。(2)分散刷新方式:这种方式把CPU对内存的存取周期扩展为两倍,前半段用来进行读/写/保持,后半段作为刷新时间。因刷新过于频繁,故影响子系统的速度,但它不存在死区。这种方式不适合高速内存。
(3)异步刷新方式:将以上两种方式结合起来就形成了异步刷新方式。首先用最大刷新时间间隔除以要刷新的行数,然后将每段时间分割成两部分,前半部分用于读/写/保持,后一小段用于刷新。这样既保证了内存的刷新,又没有明显的死区。
相同点:动态随机存储器(DRAM)与静态随机存储器(SRAM)都是存放二进制数据的物理器件,读/写方式大致相同,都属于随机存储器,即在程序的执行过程中即可读出又可写入信息;它们都属于一会发行存储器,断电后信息将丢失。
不同点:SRAM由双稳态触发器存储信息,只要电源不掉电,信息就不丢失;DRAM靠电容
存储点和原理存储信息,即使电源不掉电,由于电容要放电,信息也会丢失,需要定期刷新。另外DRAM成本较低,存取速度较慢,因此一般用大容量存储器。SRAM成本较高,存取速度较快,一般用于小容量存储器。
主存储器由存储矩阵、寻址系统、读\写系统和时序控制线路组成、存储矩阵亦称存储体、存储阵列,它是存储i欣喜地物理器件,是存储单元的集合,由存储位元构成。因存储介质、存取方式和存储功能不同,因此其组织形式也存在很大差别。寻址系统由存储地址寄存器MAR、地址译码器和地址驱动器三部分构成。I/O或CPU访存时,先将访存地址送MAR,经地址译码器找到被访问的存储单元,最后由地址驱动器驱动该存储单元以实现读/写。读/写系统包括存储缓冲寄存器MBR、读出和写入线路。
读出根据访存的读命令,通过读出线路将由寻址确定的存储单元内容读出送MBR,以供I/O 或CPU使用。若是破坏性读出,还应启动写入线路将信息重写回单元。写入时先将要写入的数据送MBR,根据写命令,通过写入线路,将MBR内容写入由寻址确定的存储单元。时序控制线路包括控制触发器,各种门电路和延迟线等,接收I/O中CPU的启动、读写、清除等命令,产生一些列时序控制主存储器完成读/写命令。
以存储器读为例说明存储器的工作过程。首先由选址机构选中存储体,地址总线此时给出要访问的存储单元的地址,并将该地址放在地址寄存器MAR中。MAR中的地址经过译码才能够访问存储体中的单元。地址驱动的作用是为了解决徐那只信号在存储体内的衰减问题。存储体在读/写电路的控制下,将对应存储单元中的内容读出,并将结果放在数据缓存寄存器MBR中。MBR中的数据在控制线路的作用下交给数据总线。
主存的存储容量指的是主存所能容纳的二进制位个数的总和,即构成主存的存储位元的总和。存储容量等于存储单元个数与每个存储存储单元包含的存储位元个数之积。
存取时间:指的是从启动一次存储器操作到完成该操作所用时间。
存取周期:指的是连续两次启动同一存储器进行存取操作所需的最小时间间隔。可靠性通常用平均无故障时间来衡量,表示两次故障之间的平均时间间隔。
功耗与集成度:功耗反映了存储器件耗电多少,集成度标示单个存储芯片的存储容量。一般希望功耗小、集成度高,但两者是矛盾的,必须进行折中。
性能价格比:性能主要包括存储容量、存储周期、存取时间和可靠性等。价格包括存储芯片和外围电路的成本。通常要求性能价格比要高。
存取宽度:CPU或I/O一次访存可存取的数据位数或字节数。
NRZ是不归零制(见变就翻),其特点是磁头线圈中始终有电流,正向电流代表”1”,负向电流代表”0”。
NRZ-1是不归零-1(见”1”就翻转),其特点是磁头线圈中始终有电流,写”1”时改变电流方向,写”0”时电流方向不变。
FM是调频制,其特点是写”1”时在存储元的起始和中间位置均要改变电流方向,写”0”时只在存储元起始位置改变电流方向。
MFM是改进调频制,其特点是保留记录”1”时在存储元的中间位置改变电流方向,而且不论写”0”或写”1”,在存储元的起始位置均不改变电流方向,只有在连续记录两个或两个以上的”0”时,才在两个存储元之间改变电流方向。
主存与高速缓存之间的地址映射方式有直接映射、全相联映射和组相连映射。直接映射方式下主存中的块只能映射到高速缓存中的指定块。直接映射的地址转换速度快,但块的冲突概率较高,在大容量高速Cache系统中使用直接映射方式,既可以发挥Cache的高速度,又可以减少块的冲突概率。全相联映射下主存中的块可以映射到高速缓存中的任意块。而组相连映射是二者的组合,它将主存与高速缓存分组,组间采用直接映射,组内采用全相联映射。组相连映射和全相联映射速度较低,通常适合于小容量Cache。
高速缓冲存储器的设计主要解决下列问题:
(1)地址映射方法。它确定主存地址与高速缓存地址的映射关系,映射以块为单位。
(2)高速缓存的置换策略。高速缓存装满后在调入新的数据块之前必须将高速缓存中的某一块置换出去,应根据一定的算法予以置换。
(3)数据的更新策略。决定在执行写操作时,是否在写高速缓存的同时写主存。此外还需考虑高速缓存的容量和块的容量等问题。
带有高速缓存的存储系统中,访问主存时数据将同时写入高速缓存。若高速缓存已满则需做替换,用新的数据替换原来的数据。替换哪个数据块是替换算法应考虑的问题。目前常用的替换算法有随机发(用随机发生器随机选择块号)、先进先出法(淘汰最先进入的块)和近期最少使用法(淘汰长时间不使用的块)。
每一道程序(或一个用户、一个进程等)由一张段表控制,每个程序段在段表中占一行,主要包括段号(或段名)、该程序段的长度、在主存中的起始地址等三个字段。其中,如果第一个字段用段号而不用段名表示,而且几段号是连续的,则这一个字段可以省掉。只要根据段表中的另外两个字段(该程序段在主存中的起始地址和段的长度),就可以把该程序段唯一地映射到主存储器的确定位置中。另外,根据需要还可以在段表中增加其他信息,如指出该程序段的访问方式(可读可写、只读、某些用户可写、只能执行等)、是否已经装入主存的标志、该段程序是否被修改过的标志灯。不过,增加的这些字段在地址映射过程中用不上的,可以用于地址变换过程中。
二者的原理是相同的,都是基于程序的局部性原理。二者在功能上的相同点是为了提高存储系统的性能价格比,不同点是Cache—主存层次主要是为了提高存储系统的访问速度,Cache 是的设置是为了弥补CPU与主存之间的速度差异;主存—辅存层次是为了扩大存储系统的容量,辅助存储器作为主存的后援存储器,提供位价格较低的海量存储设备。
多体交叉存储器由多个相互独立、容量相同的存储体构成。每个存储体有独立的读/写电路、地址寄存器和数据寄存器。CPU可以在同一个存储周期内分时访问这些存储体。当连续访问的存取单元在不同的存储体中时可获得较快的访问速度。
相连存储器除具有和RAM一样的随机读/写和保持功能外,还具有比较功能,可按信息内容寻址,存储器查询速度快。缺点是需要额外的控制电路。相连存储器由输入寄存器IR、屏蔽寄存器MR、时序控制和存储体等基本部分组成。
计算机中采用总线结构便于故障诊断与维护,便于模块化结构设计和简化系统设计,便于系统扩展和升级,便于生产各种兼容的软硬件。
总线标准是国际公布或推荐的互联各个模块的标准,这个标准为各模块互联提供一个标准界面(接口),这个界面对它两端的模块都是透明的,即界面的任一方只需根据总线标准的要求来完成自身一方接口的功能,而不必考虑对方与界面的接口方式。
制定总线标准使得系统设计简化,便于模块生产批量化,确保其性能的稳定,质量可靠,实现可移植化,便于维护等,较好地解决了系统、模块、设备与总线之间不适应、不通用及不匹配等问题。
总线通信主要解决通信双反如何获知传输开始和传输结束,以及通信双方如何协调配合。因为总线是众多部件共享的,在传送时间上只能分时方式来解决,所以通信双反必须按某种约定的方式进行通信。
同步通信和异步通信的主要区别是前者有公共时钟,总线上的所有设备按统一的时序,统一的传输周期进行信息传输,通信双方按约定好的时序联络;后者没有公共时钟,没有固定的传输周期,采用应答方式通信,具体的联络方式有简单的制约关系;全互锁方式通信双方有完全的制约关系,其中全互锁通信可靠性最高。
高档PC机中,系统总线主要连接CPU和存储器;PCI总线主要连接多媒体卡、高速局域网适配器、高性能图形板等高速部件;ISA或EISA总线连接图文传真机、调制解调器、打印机等低速部件。系统总线和PCI总线通过PCI桥路相连,PCI总线又通过标准总线控制器与ISA 和EISA总线相连。
设总线的时钟频率是f,则总线的时钟周期T=1/f,根据在一个总线周期(即一个时钟周期)内并行传输8B,得总线带宽为B=8/T=8f=8×66(MHz)=528(MB)
主机与I/O交换信息的方式有以下几种。
(1)程序查询方式。其特点是主机与I/O串行工作。CPU启动I/O后,时刻查询I/O是否准备好,若设备准备就绪,CPU便转入处理I/O与主机传送信息的程序;若设备未做好准备,则CPU反复查询,“跨不等待”,直到I/O准备就绪为止。这种方式CPU效率很低。
(2)程序中断方式。其特点是主机与I/O并行工作。CPU启动I/O后,不必时刻查询I/O是否准备好,而是继续执行程序。当I/O准备就绪时,向CPU发出中断请求信号,CPU在适当的时候响应I/O的中断请求,暂停现行程序为I/O服务。这种方式消除了“跨步”现象,提高了CPU的效率。
(3)DMA方式。其特点是主机与I/O并行工作,主存与I/O之间有一条直接数据通路。CPU启动后不必查询I/O是否准备好,当I/O准备就绪后发出DMA请求,此时CPU不直接参与I/O 和主存间的信息交换,只是把外部总线(地址线、数据线及有关控制线)的使用权暂时教育DMA,CPU仍然可以完成自身内部的操作(如加法、移位等),故不必中断现行程序,秩序暂停一个存取周期访存(即周期挪用),CPU的效率更高。
(4)通道方式。通道是一个具有特殊功能的处理器。CPU把部分权力下放给通道,由它实现对外围设备的统一管理和外围设备与内存之间的数据交换,大大提高了CPU的效率,但它是以花费更多的硬件为代价的。
(5)I/O处理方式。它是通道方式的进一步发展。CPU将I/O操作及外围设备的管理权全部交给I/O处理机。其实质是多机系统,因为效率有更大提高。
(1)中断方式指:CPU在接到随机产生的中断请求信号后,暂停原程序,转去执行相应的中断处理程序,以处理该随机事件,处理完毕后返回并继续执行原程序;
(2)主要应用于处理复杂随机事件,控制中低速I/O;
(3)如,打印机控制,故障处理。
在中断相应周期,CPU主要完成以下工作。
(1)关中断。进入不可再次相应中断的状态,以便在保护中断现场时,不被新的中断所打断,从而保证中断的程序在中断处理完成后接着正确地执行下去。
(2)保存断点。程序计数器PC的内容指示程序执行到哪条指令,即给出被中断的程序将要执行的指令地址,该地址称为断点。保存断点是保证中断服务程序执行完后能正确返回原来的程序。保存断点最常见的方法是压入堆栈,中断处理完后,再由堆栈弹出恢复断点。(3)转中断服务程序入口。通常可采用软件、硬件及软硬件结合的方法完成。软件法通常是按预定的顺序逐个测试各中断源的中断触发器,当遇到为”1”的标志时,即找到了优先处理的中断源,程序即可转入对应的中断服务程序。硬件发即向量中断法,中断向量表存放的是服务程序入口地址,在一般的PC机中,当CPU相应中断请求INTR时,向中断控制器发送批准信号INTA;从中断控制器经数据总线取得被批准中断源的中断类型码;中断类型码乘以4形成向量地址;访问主存,从中断向量表读取服务程序入口地址;最后转向服务程序。
有如下两种。
(1)外围设备引起的中断,外围设备要求CPU接入输入/输出操作。如接口的缓冲器已经准备好接受收或发送数据、设备的启动或控制工作、输入\输出过程出错等都能引起中断。(2)运算器发生的中断,最常见的主要是运算过程中出现一些无法解决的错误,如算术操作溢出,除数为0、非法数据格式、校验错误等。
中断屏蔽是一种使某个中断源的请求暂时不起作用的措施。该中断请求仍然保留,直到对它的屏蔽撤销时才可得到相应。屏蔽措施也是调整中断相应顺序的措施。常见的中断屏蔽方法是采用屏蔽寄存器。由屏蔽寄存器的输出决定是否屏蔽某一中断。屏蔽寄存器一般可以用指令修改,这样系统软件就可以对终端屏蔽进行控制。中断屏蔽的方法一般是将中断源进行分级,使得某一级的中断可以屏蔽另一级的中断,而某些级的中断不能屏蔽另一些中断的相应。分级的屏蔽通常将中断分成高低不等的中断优先级,优先级高的中断可以屏蔽优先级低的中断。在采用屏蔽寄存器的情况下,软件可以灵活地设置中断的屏蔽。
(1)中断优先级是在同时出现几个中断请求的情况下,CPU对中断源响应的顺序,优先级高的中断先得到相应。
(2)中断源的优先级是计算机用户根据中断的必要性和实时性要求制定的,同时还要兼顾操作系统的需求。通常把硬件故障的中断优先级定位最高。如电源故障的中断一般是不可屏蔽的紧急中断。而软件中断的优先级则一般较低。某些特殊的中断,如虚拟存储器管理中的页面失效中断,要求在指令没有执行完事就得到响应,因为在发生页面失效时,如不立即处理,就无法得到指令的操作数,该指令也就不可能执行完成。
CPU的中断控制部件是为实现中断功能而采用的软件和硬件。它通常具有以下功能。
(1)允许和进制中断源的请求
(2)保护终端点的现场和恢复中断点的现场。
(3)使程序转向相应中断源的服务程序。
(4)对同时发生的多个中断请求进行判优裁决。
(5)在具有多级中断功能的部件中,允许低级中断的服务程序被高级中断请求中断。
CPU响应中断必须满足的三个条件是:(1)必须有中断请求;(2)必须开中断;(3)一般应待一条指令完。中断优先权控制电路的功能是:当同事有若干个中断请求时,选优先权最高的中断请求送CPU。
程序中断处理的三个主要步骤如下:
(1)保存被中断程序的断点和现场,判断中断条件,转入相应的中断服务程序入口;
(2)执行中断服务程序;
(3)恢复以前保存的现场和断点,”保存断点和现场”以及”恢复现场”都应整体执行,不能被中断。因此,执行前应关中断(禁止响应中断请求),执行后应开中断,即允许响应其他的中断请求。
查询中断即通过运行一个测试查询程序来判别中断优先权。这种方法可以灵活修改中断源的优先级别,但判优和是被中断源完全依靠程序实现。向量中断,将各种中断服务程序的入口地址(或者包括状态字)组织成中断向量表;响应中断时,由硬件直接产生对应于中断源的向量地址;据此访问中断向量表,从中读取服务程序入口地址,由此转入服务程序。在具有多根请求线的系统中,可通过对请求线编码来解决中断优先权问题。
(1)地址译码。选取接口中有关寄存器,也就是选择I/O设备。
(2)命令字/状态字寄存器。供CPU输出控制命令,调回接口与设备的状态信息。
(3)数据缓存。提供数据缓冲,实现速度匹配。
(4)控制逻辑。如中断控制逻辑、与设备特性相关的控制逻辑等。
定义:由DMA控制器控制系统总线,直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预。适用场合:高速、批量数据的简单传送。
DMA传送钱的预置阶段(DMA初始化),数据传送阶段(DMA传送),传送后的结束处理。
向DMA控制器及I/O接口分别送出以下信息:
(1)测试设备状态,预置DMA控制器工作方式;
(2)主存缓冲区首址,交换量,传送方向;
(3)设备寻址信息,启动读/写。
在DMA方式中,CPU和DMA控制器分时使用内存通常采用三种方式。
(1)停止CPU访问内存。这种方法DMA在传送一批数据时,独占内存,CPU放弃了地址线、数据线和有关控制线的使用权。在一批数据传送完毕后,DMA控制器才把总线的控制权交回给CPU。显然,这种方法在DMA传送过程中,CPU基本处于保持状态。
(2)周期挪用。这种方法CPU按程序访问内存,一旦I/O设备有DMA请求,则由I/O设备挪用一个存取周期。此时CPU可完成自身的操作,但要停止访问。显然这种方法既实现了I/O传送,又较好的发挥了内存和CPU的效率,这是一种广泛采用的方法。
(3)DMA和CPU交替访问内存。这种方法适用于CPU的工作周期比内存的存取周期长得多的情况。如CPU的工作周期是内存周期的两倍,则每个CPU周期的上半周期专供DMA控制器访问内存,下半周期专供CPU访问内存。这种交替访问方式可使DMA传送和CPU同时发挥最高效率,但相应的硬件逻辑复杂。
一旦I/O设备有DMA请求,则CPU要咋听一个存取周期访问,把总线控制权让给DMA传送。这就好比I/O设备挪用了CPU的访问周期,故称周期挪用或周期窃取。周期挪用可能会出现三种情况。
(1)I/O设备DMA请求时,CPU正在进行自身的操作(如乘法),并不需要访问内存,即I/O访问内存和CPU访问内存没有冲突故不存在周期窃取。
(2)I/O设备要求访问内存时,CPU也要求访问内存,此时发生冲突。在这种情况下,I/O的DMA请求有限,即出现了周期挪用,CPU需延缓一个存取周期访问内存。
(3)I/O设备有DMA请求时,存储器本身正处于“忙”状态(正在读/写),此时必须待存取周期结束后才能进行I/O访问内存。这种情况也不存在周期挪用。
DMA方式中的中断请求不是为了传送信息(信息是通过主存和I/O之间的直接数据通道传送的),只是为了报告CPU一组数据传送结束,有待CPU做一些其他处理工作,如测试传送过程中是否出错,决定是否继续使用DMA方式传送等。而程序中断方式的中断请求是为了传送数据,I/O和主机交换信息完全靠CPU响应中断后,转至中断服务程序完成的。
在DMA控制器的控制下,数据不经过CPU而直接在内存和外设之间传送,传送速度快,CPU 基本不干预,适合于高速I/O设备传送大批数据。
三种解决方法如下。
(1)DMA工作期间停止CPU访问内存。优点:控制简单,适于高速外设成组传送数据,缺点:CPU和内存的效率没有充分发挥。
(2)DMA挪用几个内存周期完成数据传送。优点:较好地发挥内存和CPU的效率,适于外设存取周期大于内存周期的情况(低速外设)。
(3)DMA与CPU交叉访问内存。优点:能高效工作。缺点:硬件复杂。这种方式要求CPU周期比内存周期长的多。
基本的DMA控制器的主要部件有:地址寄存器、长度计数器、数据寄存器、标志寄存器、命令寄存器、控制逻辑等。
(1)DMA仅限于数据块的输入/输出操作,而程序中断除用于输入/输出操作外,还可用于故障诊断等任务,意义要广泛的多。
(2)中断响应一般只是繁盛在一条指令周期结束而另一条指令尚未开始的时刻,而DMA则可在两个存储周期之间的任意时刻响应。
(3)DMA过程中,若遇到出错信号或收到信的启动指令,则仍可中断现行程序,静茹中断服务程序,而程序中断除了对DMA提供后处理外,还可通过测试DMA的状态或中断条件,以实施对DMA及有关设备控制器的监控。
DMA方式适用场合:高速、批量数据的简单传送。中断方式适用场合:处理复杂随机事件、控制中低速I/O设备。
不可以。DMA方式中也需要用中断机制进行同步,而且DMA方式适合于大批量数据的高速传输,不适合于低速的单字节的数据传输。
中断方式常用于打印机输出、键盘输入等。DMA方式常用与读/写磁盘、读/写磁带等。30.主机与外设之间信息传送的控制方式有哪几种,采用哪种方式CPU效率最低?
主机与外设之间信息传送的控制方式有四种:程序查询方式、中断方式、DMA方式和通道方式。程序查询方式CPU效率最低。
DMA方式能够直接在存储器与外设之间传送数据块,使CPU可以从输入/输出操作中解脱出来,而只需要对数据传输进行初始化和启动,但需要有相应的硬件支持。DMA可用于高速的数据输入/输出。DMA是一个时序电路控制器,建立在中断机制基础上,只能进行数据传输操作。输出/输出通道是DMA的发展,它在输入/输出设备与CPU之间采用DMA方式传输数据。一个通道是一个专用于输入/输出控制的处理器,它有自己的指令,能够在通道程序的控制下,对外围设备进行DMA方式的块数据传输以及对字设备的数据传输,并读取外设的状态信息,在完成输入/输出操作时向CPU发出输入/输出操作中断请求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。