赞
踩
计算机系统是由硬件和软件组成的,它们协同工作来运行程序。
计算机的基本硬件系统由运算器 、控制器、存储器、输入设备和输出设备 5 大部件组成。
运算器、控制器等部件被集成在一起统称为中央处理单元 ( CPU ) 。CPU 是硬件系统的核心,用于数据的加工处理,能完成算术运算、逻辑运算及控制功能。
存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于存储运行过程中的程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
输入设备和输出设备合称为外部设备(简称外设), 输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
中央处理单元 ( CPU ) 是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
CPU 的功能
(1) 程序控制。CPU 按照程序的安排来执行指令,保证程序指令严格按规定的顺序执行, 通过执行程序控制计算机的行为。
(2) 操作控制。一条指令功能的实现需要若干操作信号来完成, CPU 产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。
(3) 时间控制。CPU 对每条指令的整个执行时间要进行严格控制。同时,指令执行过程中操作信号的出现时间、待续时间及出现的时间顺序都需要进行严格控制。
(4) 数据处理。CPU 通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果为人们所使用。所以, 对数据的加工处理是 CPU 最根本的任务。
此外,CPU 还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
CPU 的组成
CPU 主要由运算器、控制器、寄存器组和内部总线等部件组成。
1 ) 运算器
运算器包括算术逻辑单元( ALU ) 、累加寄存器、数据缓冲寄存器和状态条件寄存器等,它是数据加工处理部件,完成所规定的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有如下两个主要功能:
(1) 执行所有的算术运算, 如加、减、乘、除等基本运算及附加运算。
(2) 执行所有的逻辑运算并进行逻辑测试, 如与、或、非、零值测试或两个值的比较等。
下面简要介绍运算器中各部件的组成和功能。
(1) 算术逻辑单元 ( ALU ) 。ALU 是运算器的重要组成部件, 负责处理数据,实现对数据的算术运算和逻辑运算。
(2) 累加寄存器 ( AC ) 。AC 通常简称为累加器,它是一个通用寄存器。其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为 ALU 提供一 个工作区。例如, 在执行一个减法运算前,先将被减数暂 存在AC 中,再从内存储器中取出减数 ,然后与 AC 的内容相减,所得的结果送回 AC 暂存。
(3) 数据缓冲寄存器( DR ) 。在对内存储器进行读写操作时,用 DR 暂时存放由内存储器读写的一条指令或一个数据字, 将不同时间段内读写的数据隔离开来。 DR 的主要作用为: 作为CPU 和内存、外部设备之间数据传送的中转站以及它们在操作速度上的缓冲; 在单累加器结构的运算器中,数据缓冲寄存器还可兼作操作数寄存器。
(4) 状态条件寄存器 ( PSW ) 。PSW 保存根据算术指令和逻辑指令运行或测试的结果建立的各种条件码内容, 主要分为状态标志和控制标志,如运算结果进位标志 ( C ) 、运算结果溢出标志 ( V ) 、运算结果为0 标志 ( Z ) 、运算结果为负标志( N ) 、中断标志( I ) 、方向标志 ( D ) 和单步标志等。这些标志通常分别由1 位触发器保存,保存了当前指令执行完成之后的状态。通常, 一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。
2) 控制器
控制器用于控制整个 CPU 的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。控制器在工作过程中主要使用下述几个部件:
(1) 指令寄存器 ( IR ) 。当 CPU 执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入 IR 暂存,指令译码器根据 IR 的内容产生各种微操作指令,控制其他部件协调工作 ,完成指令的功能。
(2) 程序计数器 ( PC) 。PC 具有寄存信息和计数两种功能, 又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入 PC, 该地址在程序加载到内存时确定,因此 PC 的内容即是程序第一条指令的地址。执行指令时,CPU 将自动修改 PC 的内容,以便使其保待的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对 PC 加 1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量产生, 或者根据转移指令给出的直接转移的地址产生,再送入 PC。
(3) 地址寄存器 ( AR) 。AR 保存当前 CPU 所访问的内存单元的地址。由千内存和CPU存在若操作速度上的差异,所以需要使用 AR 保持地址信息,直到内存的读/写操作完成为止。
(4) 指令译码器 ( ID) 。指令包含操作码和地址码两部分,为了能执行任何给定的指令, 必须对操作码进行分析,以便识别要进行的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作 ,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。
时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给 CPU 处理。
3) 寄存器组
寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。
3. 多核CPU
CPU 的核心又称为内核,是CPU 最重要的组成部分。CPU 中心那块隆起的芯片就是核心,是由单品硅以一定的生产工艺制造出来的, CPU 所有的计算、接收/存储命令、处理数据都由核心执行。各种 CPU 核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都需要合理的布局。
多核即在一个单芯片上面焦成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级Cache、二级 Cache 共享或独有,其部件的完整性和单核处理器内核相比完全一致。
起初,CPU 的主要厂商 AMD 和Intel 的双核技术在物理结构上有很大不同。AMD 将两个内核做在一个 Die(晶元)上,通过直连架构连接起来 ,集成度更高。Intel 则是将放在不同核心上的两个内核封装在一起,因此有人将Intel 的方案称为“双芯", 将 AMD 的方案称为 “双核"。从用户端的角度来看,AMD 的方案能够使双核CPU 的管脚、功耗等指标跟单核CPU 保持一致,从单核升级到双核,不需要更换电源、芯片组、散热系统和主板,只需要刷新 BIOS 软件即可。
多核 CPU 系统最大的优点(也是开发的最主要目的)是可满足用户同时进行多任务处理等要求。
单核多线程 CPU 是交替地转换执行多个任务,只不过交替转换的时间很短 ,用户一般感觉不出来。如果同时执行的任务太多,就会感觉到慢或者“卡”。 而多核在理论上则是在任何时间内每个核分别执行各自的任务,不存在交替问题。因此,单核多线程和多核 (一般每核也是多线程的)虽然都可以执行多任务,但多核的速度更快。
虽然采用了Intel 超线程技术的单核可以视为双核,4 核可以视为 8 核。然而,视为8 核一般比不上实际是8 核的 CPU 性能。
要发挥 CPU 的多核性能,就需要操作系统能够及时、合理地给各个核分配任务和资源(如缓存、总线、内存等),也需要应用软件在运行时可以把并行的线程同时交付给多个核心分别处理。
存储器的分类
1 ) 按存储器所处位置分类
按存储器所处的位置,可将其分为内存和外存。
(1) 内存。内存也称为主存,设置在主机内(或主机板上),用来存放机器当前运行所需要的程序和数据,以便向 CPU 提供信息。相对于外存 ,其特点是容量小、速度快。
(2) 外存。外存也称为辅存,如磁盘、磁带和光盘等, 用来存放当前不参与运行的大量信息,必要时可把需要的信息调入内存。相对千内存,外存的容量大 、速度慢。
2 ) 按存储器的构成材料分类
按构成存储器的材料,可将其分为磁存储器 、半导体存储器和光存储器。
(1) 磁存储器。其是用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
(2) 半导体存储器。根据所用元件又可分为双极型和MOS 型;根据数据是否需要刷新,又可分为静态 ( Static memery) 和动态 ( Dynamic memery) 两类。
(3) 光存储器。如CD-ROM、DVD-ROM 等光盘 ( Optical Disk ) 存储器。
3 ) 按存储器的工作方式分类
按存储器的工作方式可将其分为读写存储器和只读存储器。
(1 ) 读写存储器 ( Random Access Memery, RAM) 。其是既能读取数据也能存入数据的存储器。
( 2 ) 只读存储器。根据数据的写入方式,这种存储器又可分为 ROM、PROM、EPROM 和EEPROM等类型。
@固定只读存储器( Read Only Memery, ROM ) 。这种存储器的内容是在厂家生产时就写好的,其内容只能读出,不能改变。 一般用于存放系统程序 BIOS 以及用于微程序控制。
@可编程的只读存储器 ( Programmable Read Only Memery , PROM ) 。其中的内容可以由用户一次性地写入,写入后不能再修改。
@可擦除可编程的只读存储器( Erasable Programmable Read Only Memery , EPROM ) 。其中的内容既可以读出,也可以由用户写入, 写入后还 可以修改。改写的方法是写入之前先用紫外线照射15~ 20 分钟以擦去所有信息, 然后再用特殊的电子设备写入信息。
@电擦除可编程的只读存储器( Electrically Erasable Programmable Read Only Memery, EEPROM ) 。与EPROM 相似,EEPROM 中的内容既可以读出,也可以进行改写。只不过这种存储器是用电擦除的方法进行数据的改写。
© 闪速存储器 ( Flash Memery) 。其简称闪存 ,闪存的特性介于 EPROM 和 EEPROM 之间,类似于EEPROM, 也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于 EPROM。
4 ) 按访问方式分类
存储器按访问方式可分为按地址访问的存储器和按内容访问的存储器。
5 ) 按寻址方式分类
存储器按寻址方式可分为随机存储器、顺序存储器和直接存储器。
(1 ) 随机存储器 ( Random Access Memery , RAM) 。这种存储器可对任何存储单元存入或读取数据, 访问任何 一个存储单元所需的时间是相同的。
(2 ) 顺序存储器( Sequentially Addressed Memery , SAM) 。访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
(3 ) 直接存储器 ( Direct Addressed Memery , DAM) 。介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
随机访问存储器
随机访问存储器 ( RAM) 分为静态 RAM 和动态 RAM 两类。静态RAM ( SRAM) 比动态 RAM ( DRAM) 更快,也更贵。SRAM 常用来做高速缓存存储器,DRAM 用来作为主存及图形系统的帧缓冲存储区。
( 1 ) SRAM。在 SRAM 中,将每个位存储在一个双稳态存储器单元中,每个单元是用一个六晶体管电路来实现的。只要供电,SRAM 存储单元的内容就保待不变。
(2 ) DRAM。在 DRAM 中,每个位由一个电容和一个晶体管组成,电容量很小(容量越小速度越快)。与SRAM 不同,DRAM 存储器单元对干扰很敏感,电容的电压被扰乱之后也不能再自行恢复, 也有其他原因会导致漏电,因此,必须在电容中的电荷漏掉之前进行补充,以保证信息不会丢失,这称为刷新。 DRAM 必须周期性地进行刷新操作。
由于集成度高、价格低,DRAM 常用来构成主存储器,主要采用 SDRAM ( Syncronous Dynamic RandomAccess Memory ) ,发展出了 SDR SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM 等。
由 DRAM 芯片可组成所需容量要求的内存模块。例如, 由 4 个 8M X 8 位的 DRAM 芯片 ( DRAM 0、DRAM 1、DRAM 2、DRAM 3 ) 构成 8M X 32 位的内存区域, 32 位字的 4 个字节分别由4 个 DRAM 芯片的同一地址单元提供,DRAM 0 提 供第 1 字节(最低字节),D RAM 1 提供第 2 字节,DRAM 2 提供第 3 字节,DRAM 3 提供第04 字节(最高字节)。
外存储器
外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU 不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存后才可访问。外存储器由磁表面存储器(如磁盘、磁带)及光盘存储器构成。下面介绍两种常用的外存储器。
l ) 磁盘存储器
在磁表面存储器中,磁盘的存取速度较快 ,且具有较大的存储容量 ,是目前广泛使用的外存储器。磁盘存储器由盘片、驱动器、控制器和接口组成。盘片用来存储信息。驱动器用于驱动磁头沿盘面径向运动以寻找目标磁道位置,同时驱动盘片以额定速率稳定旋转, 并且控制数据的写入和读出。控制器接收主机发来的命令,将它转换成磁盘驱动器的控制命令, 并实现主机和驱动器之间数据格式的转换及数据传送,以控制驱动器的读/写操作。一个控制器可以控制一台或多台驱动器。接口是主机和磁盘存储器之间的连接逻辑。
硬盘是最常见的外存储器。一个硬盘驱动器内可装有多个盘片,组成盘片组,每个盘片都配有一个独立的磁头。所有记录面上相同序号的磁道构成一个圆柱面,其编号与磁道编号相同。文件存储在硬盘上时尽可能放在同一圆柱面上,或者放在相邻柱面上,这样可以缩短寻道时间。
为了正确存储信息,将盘片划成许多同心圆,称为磁道 ,从外到里编号 ,最外一圈为 0 道, 往内道号依次增加。沿径向的单位距离的磁道数称为道密度,单位为 tpi(每英寸磁道数)。将一个磁道沿圆周等分为若干段,每段称为一个扇段或扇区,每个扇区内可存放一个固定长度的数据块, 如 512B。磁道上单位距离可记录的位数称为位密度,单位为 bpi(每英寸位数)。因为每条磁道上的扇区数相同,而每个扇区的大小又一样, 所以每条磁道都记录同样多的信息。又因为里圈磁道圆周比外圈磁道的圆周小,所以里圈磁道的位密度要比外圈磁道的位密度高。最内圈的位密度称为最大位密度。
硬盘的寻址信息由硬盘驱动号 、圆柱面号、磁头号(记录面号)、数据块号(或扇区号) 以及交换量组成。
磁盘容量有两种指标: 一 种是非格式化容量,它是指 一个磁盘所能存储的总位数; 另一种是格式化容量,它是指各扇区中数据区容量总和。计算公式分别如:下
非格式化容量=面数X (磁道数/面) X 内圆周长 X最大位密度格式化容量=面数X (磁道数/面) X (扇区数/道) X (字节数/扇区)按盘片是否固定、磁头是否移动等指标,硬盘可分为移动磁头固定盘片的磁盘存储器、固定磁头的磁盘存储器、移动磁头可换盘片的磁盘存储器和温彻斯特磁盘存储器(简称温盘)。
2 ) 光盘存储器
光盘存储器是一种采用聚焦激光束在盘式介质上非接触地记录高密度信息的存储装置。根据性能和用途,光盘存储器可分为只读型光盘 ( CD-ROM) 、只写一次型光盘( WORM)和可擦除型光盘。只读型光盘是由生产厂家预先用激光在盘片上蚀刻不能再改写的各种信息,目前这类光盘使用很普遍。只写一次型光盘是指由用户一次写入 、可多次读出但不能擦除的光盘,写入方法是利用聚焦激光束的热能, 使光盘表面发生永久性变化而实现的。可擦除型光盘是读写性光盘,它是利用激光照射引起介质的可逆性物理变化来记录信息。
光盘存储器由光学、电学和机械部件等组成。其特点是记录密度高;存储容量大;采用非 接触式读/写信息(光头距离光盘通常2为mm) ;信息可长期保存(其寿命达 10 年以上);采用多通道记录时数据传送率可超过 200MB/s; 制造成本低;对机械结构的精度要求不高;存取时间较长等。
所谓总线 (Bus) ,是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。
从硬件角度看, 输入/输出 ( I/O ) 设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备, 从软件角度只关注输入 /输出设备的编程接口。
I/O 设备概述
I/O 设备可分为块设备和字符设备两类。块设备把信息存放在固定大小的块中,每个块都有自己的地址,独立于其他块,可寻址。例如磁盘、USB 闪存、CD-ROM 等。字符设备以字符为单位接收或发送一个字符流,字符设备不可以寻址。例如打印机、网卡、鼠标键盘等。
I/O 设备一般都包含设备控制器,一般以芯片的形式出现,如南桥芯片。不同的控制器可以控制不同的设备。南桥芯片中包含了多种设备的控制器,如硬盘控制器、USB 控制器、网卡、声卡控制器等。I/O 设备通过总线以及卡槽与计算机其他部件进行连接,如PCI、PCI-E、SATA、USB 等。
不同设备控制器的操作控制通过专门的软件即驱动程序进行控制。每个控制器都有几个寄存器与 CPU 进行通信。通过写入这些寄存器,可以命令设备发送或接收数据,开启或关闭。通过读这些寄存器就能知道设备的状态。由于寄存器数量和大小是有限的,所以设备一般会有一个 RAM 性质的缓冲区,来存放一些数据。比如硬盘的读写缓存、显卡的显存等。一方面提供数据存放,另一方面是提高 I/O 操作的速度。
CPU 与 I/O 设备控制器中的寄存器或数据缓冲区如何进行通信?存在以下两个可选方案:
(1 ) 为每个控制器分配一个I/O 端口号,所有的控制器可以形成一个I/O 端口空间, 这些信息存放在内存中,一般程序不能访问, 操作系统则通过特殊的指令和端口号来从设备读取或是写入数据。早期计算机基本都是这种方式,通常使用汇编语言进行操作。
( 2 ) 将所有控制器的寄存器映射到内存空间,于是每个设备的寄存器都一有个唯一的地址。
这种称为内存映射 I/O 。由于不需要特殊的指令控制,对待 I/O 相同的,因此可以使用 C 语言来编程。
设备和其他普通数据访问方式也可以将上述两种方式相结合,例如,寄存器拥有 I/O 端口,而数据缓冲区则映射到内存空间。
CPU 无论是从内存还是 I/O 设备读取数据,都需要把地址放到地址总线上,然后向控制总线传递一个读信号,还要用一条信号线来表示是从内存还是 I/O 读取数据。
程序控制方式
程序控制 I/O 是指外设数据的输入/输出过程是在 CPU 执行程序的控制下完成的。这种方式分为无条件传送和程序查询方式两种情况。
l ) 无条件传送
在此情况下,外设总是准备好的,它可以无条件地随时接收 CPU 发来的输出数据,也能够无条件地随时向 CPU 提供需要输入的数据。
2 ) 程序查询方式
通过 CPU 执行程序来查询外设的状态, 判断外设是否准备好接收数据或准备好了向CPU 输入的数据。根据这种状态,CPU 有针对性地为外设的输入 /输出服务。
通常, 一个计算机系统中可以存在若多种不同的外设,如果这些外设是用查询方式工作, 则 CPU 应对这些外设逐一进行查询,发现哪个外设准备就绪就对该外设服务。这种工作方式有两大缺点: 一是降低了 CPU 的效率,二是对外部的突发事件无法做出及时响应。
计算机系统中的CPU 是稀缺资源,应尽量提高其利用率, 减少等待 I/O 操作的时间。
中断方式
在中断方式下,I/O 设备工作时 CPU 不再等待,而是进行其他的操作,当 I/O 通过一个硬件中断信号通知 CPU, CPU 再来处理接下来的工作。
设备完成后,利用中断方式完成数据的输入/输出过程为: 当 系统与外设交换数据时,CPU 无须等待也不必去查询 I/O 设备的状态, 而是处理其他任 务。当 I/O 设备准备好以后, 就发出中断请求信号通知 CPU , CPU 接到中断请求信号后,保存正在执行程序的现场,转入 I/O 中断服务程序的执行,完成与 I/O 系统的数据交换 ,然后再返回被打断的程 序继续执行 。与程序控制方式相比 ,中断方式因为 CPU 无须等待而提高了效率。
在系统中具有多个中断源的情况下,常用的处理方法有多中断信号线法 ( multiple interupt lines) 、中断软件查询法 ( software poll ) 、菊花链法 ( daisy chain) 、总线仲裁法和中断向量表法。
( 1 ) 多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向 CPU 提出中断请求。
( 2 ) 中断软件查询法。 当 CPU 检测到一个中断请求信号以后 , 即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。
( 3 ) 菊花链法。软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。所有的 I/O 楼块共享一根共同的中断请求线 ,而中断确认信号则以链式在各模块间相连。当 CPU 检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在 I/O 模块间传递,直到发出请求的模块 ,该模块则把它的 ID 送往数据线由 CPU 读取。
( 4 ) 总线仲裁法。 一个 I/O 设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。当 CPU 发出中断响应信号后 ,该设备即把自己的 ID 发往数据线。
( 5 ) 中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号 ( INTR ) 以后,由中断控制器 ( INTC ) 确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址, 同时 INTC 把中断请求信号提交给 CPU。 中断源的优先级由 INTC 来控制。
在具有多个中断源的计算机系统中,各中断源对服务的要求紧迫程度可能不同。在这样的计算机系统中,就需要按中断源的轻重缓急来安排对它们的服务。
在中断优先级控制系统中,给最紧迫的中断源分配高的优先级,而给那些要求相对不紧迫的中断源分配低一些的优先级。在进行优先级控制时解决以下两种情况:
(1) 当不同优先级的多个中断源同时提出中断请求时, CPU 应优先响应优先级最高 的中断源。
( 2 ) 当 CPU 正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU 应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再回到原先被中断的优先级较低的中断服务程序继续执行。这种情况称为中断嵌套,即一个中断服务程序的执行中嵌套若另一个中断服务程序的执行过程。
DMA 方式
在计算机与外设交换数据的过程中,无论是无条件传送、利用查询方式传送还是利用中断方式传送都需要由 CPU 通过执行程序来实现。这就限制了数据的传送速度。
直接内存存取( Direct Memery Access, DMA) 是指数据在内存与 I/O 设备间的直接成块传送,即在内存与 I/O 设备间传送一个数据块的过程中,不需要 CPU 的任何干涉,只需要 CPU 在过程开始启动(即向设备发出“传送一块数据"的命令)与过程结束( CPU 通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由 DMA 硬件直接执行完成, CPU 在此传送过程中可处理别的任务。
(1 ) 外设向 DMA 控制器 ( DMAC) 提出DMA 传送的请求。
(2) ) DMA 控制器向CPU 提出请求,其请求信号通常加到 CPU 的保持请求输入端HOLD 上。
(3) CPU 在完成当前的总线周期后立即对此请求进行响应,CPU 的响应包括两个方面的内容: 一方面,CPU 将有效地保持响应信号 HLDA 输出加到 DMAC 上,告诉DMAC 它的请求已得到响应; 另一方面,CPU 将其输出的总线信号置为高阻,这就意味着 CPU 放弃了对总线的控制权。
(4) 此时 DMAC 获得了对系统总线的控制权, 开始实施对系统总线的控制。同时向提出请求的外设送出 DMAC 的响应信号, 告诉外设其请求已得到响应,现在准备开始进行数据的传送。
( 5 ) DMAC 送出地址信号和控制信号, 实现数据的高速传送。
( 6) 当DMAC 将规定的字节数传送完时,它就将 HOLD 信号变为无效并加到 CPU 上,撤销对CPU 的请求。CPU 检测到无效的 HOLD 就知道 DMAC 已传送结束,CPU 就送出无效的 HLDA 响应信号,同时重新获得系统总线的控制权 ,接着 DMA 前的总线周期继续执行下面的总线周期。
在 DMA 传送过程中无须 CPU 的干预,整个系统总线完全交给了 DMAC, 由它控制系统总线完成数据传送。在 DMA 传送数据时要占用系统总线,根据占用总线的方法不同, DMA 可以分为中央处理器停止法、总线周期分时法和总线周期挪用法等。无论采用哪种方法,在 DMA 传送数据期间, CPU 不能使用总线。
输入输出处理器 (IOP )
DMA 方式的出现减少了CPU 对 I/O 操作的控制 ,使得 CPU 的效率显著提高 ,而通道的出现则进一步提高了CPU 的效率。
通道是一个具有特殊功能的处理器,又称为输入输出处理器( Input/Output Processor, IOP) , 它分担了 CPU 的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。
通道方式大大提高了CPU 的工作效率,然而这种效率的提高是以增加更多的硬件为代价的。外围处理机 ( Peripheral Processor Unit, PPU) 方式是通道方式的进一步发展。PPU 是专用处理机,它根据主机的 I/O 命令,完成对外设数据的输入输出。在一些系统中,设置了多台 PPU, 分别承担 I/O 控制、通信、维护诊断等任务 。从某种意义上说,这种系统已变成分布式的多机系统。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。