Computer Organization Principles

5 分钟阅读时长

发布时间:

This is a notebook on the principles of computer organization

冯诺依曼计算机体系结构的基本思想是什么?

  • 1.计算机由五大部件组成
  • 2.指令和数据以同等地位存于存储器,可按地址寻访
  • 3.指令和数据用二进制表示
  • 4.指令由操作码和地址码组成
  • 5.存储程序,也就是将用指令序列描述的解题程序与原始数据一起存储到计算机中。计算机只有一个启动,就能自动的取出一条条指令并执行之,直至程序执行完毕,得到计算结果为止。
  • 6.以运算器为中心(现在一般以存储器为中心)

冯诺依曼计算机的设计思想为计算机的硬件是由有形的电子器件等构成的。冯诺依曼计算机由五部分组成. 分别为: 输入设备:将程序和数据以机器所能识别和接受的信息形式输入到计算机

输出设备:将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出

存储器:用来存放数据和程序

运算器:计算机的执行部件,用于对数据进行加工处理,完成算术运算和逻辑运算。

控制器:计算机的指挥中心,由其“指挥”各部件自动协调的进行工作。

传统上将运算器和控制器称为CPU,而将CPU和存储器称为主机。

在计算机中,CPU是如何区别指令和数据的?

通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。

通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。

说明总线结构对计算机系统性能的影响。

  • (1)最大存储容量。单总线系统中,最大内存容量必须小于由计算机字长所决定的可能的地址总线。双总线系统中,存储容量不会受到外围设备数量的影响。

  • (2)指令系统。双总线系统,必须有专门的I/O指令系统;单总线系统,访问内存和I/O使用相同指令。

  • (3)吞吐量。总线数量越多,吞吐量越大。

总线结构的优点:便于故障诊断与维护,便于模块化结构设计和简化系统设计,便于系统扩展和升级,便于生产各种兼容的软硬件。

一个计算机系统中的总线,大致分为哪几类?

—个计算机系统中的总线,大致分为三类:

  • ①CPU 内部连接各寄存器及运算部件之间的总线,称为内部总线(片内总线);
  • ②CPU同计算机系统的其他高速功能部件,一如存储器、通道等相互连接的总线,称为系统总线

  • ③中、低速I/O设备之间相互连接的总线,称为I/O总线(通信总线)。

PCI总线三种桥的名称?桥的功能?

PCI总线上有HOST桥、PCI/LAGACY总线桥、PCI/PCI桥。

桥在PCI总线体系结构中起着重要作用,它连接两条总线,使彼此间相互通信。桥是一个总线转换部件,可以把一条总线的地址空间映射到另一条总线的地址空间上,从而使系统中任意一个总线主设备都能看到同样的一份地址表。桥可以实现总线间的猝发式传送,可使所有的存取都按CPU的需要出现在总线上。

总线标准

总线的特性

总线是一组电导线,在部件间共享传输信息。 总线标准需规定以下基本特性:

物理机械特性:连线类型、数量、接插件的几何尺寸和形状以及引脚线的排列等。

电气特性:每条信号线的信号传递方向、信号的有效电平范围。

功能特性:总线中每根传输线的功能。

时间特性:总线中任一根传输线在什么时间内有效,以及每根,线产生的信号之间的时序关系。

同步通信与异步通信的区别。

异步通信:指没有统一时钟控制的通信,部件间采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率。

优点:总线周期长度可变,不把响应时间强加到功能模块上,因而允许快速和慢速的功能模块都连接到同一总线上;

缺点:总线复杂,成本较高。

总线的主设备与从设备

总线的主设备是指拥有总线控制权,启动总线上信息传送的设备;

总线的从设备是指总线上只能接受总线命令没有总线控制权的设备。

总线主设备获得总线控制权后才开始启动一次总线上的信息传送,从设备响应主设备的总线命令共同完成一次总线传送。

总线定时解决的问题是什么?有几种方法?每一种方法是如何实现定时的?各有什么优缺点?

总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,主要有 同步定时和异步定时。

同步定时:指由统一时钟控制的通信,总线周期的长度是固定的,控制方式简单,灵活性差,当系统中各部件工作速度差异较大时,总线工作效率明显下降。适合于速度差别不大的场合。具有高的传输频率,缺点同步总线必须按最慢的模块来设计公共时钟,当各模块存取时间相差很大是附会大大损失总线效率。

异步定时:指没有统一时钟控制的通信,部件间采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率。优点:总线周期长度可变,不把响应时间强加到功能模块上,因而允许快速和慢速的功能模块都连接到同一总线上;缺点:总线复杂,成本较高。

何为总线仲裁?一般采用何种策略进行仲裁,简要说明它们的应用环境?

连接到总线上功能模块有主动和被动两种形态。

主方可以启动一个总线周期,而从方只能响应主方的请求。每次总线操作,只能有一个主方启用总线控制权,但同一时间里可以有一个或多个从方。

除 CPU 模块外,I/O功能模块也可以提出总线请求。为了解决多个主设备同时竞争总线控制权,必须具有总线仲裁部件,以某种方式选择其中一个主设备作为总线的下一次主方。

一般来说,采用优先级或公平策略进行仲裁。在多处理器系统中对 CPU 模块的总线请求采用公平原则处理,而对I/O模块的总线请求采用优先级策略。

进行总线仲裁的时机为何?

总线空闲不忙时。

一个完整的总线周期包括哪几个阶段?

申请分配阶段:需要使用总线的主模块提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。

寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块;

传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送;

结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。

总线的一次信息传送过程大致分哪几个阶段?

分五个阶段:总线请求,总线仲裁,寻址(目的地址),信息传送,状态返回(或错误报告)。

提示:(其中总线请求,总线仲裁并称申请分配阶段)

为什么要进行总线仲裁?

为了解决多个主设备同时竞争总线控制权,必须具有总线仲裁部件,以某种方式选择其中一个主设备作为总线的下一次主方。对多个主设备提出的占用总线请求,一般采用优先级或公平策略进行仲裁。按照总线仲裁电路的位置不同,仲裁方式分为集中式仲裁和分布式仲裁两类。

请说明每一种仲裁方法是怎样进行仲裁的,并比较它们的优缺点。

第一类:集中式仲裁中每个功能模块有两条线连到中央仲裁器,一条是送往仲裁器的总线请求信号线 BR,一条是仲裁器送出的总线授权信号线BG。

(1)链式查询方式

链式查询方式的主要特点:总线授权信号BG串行地从一个 接口传送到下一个I/O接口。假如BG到达的接口无总线请求,则继续往下查询;假如BG到达的接口有总线请求,BG信号便不再往下查询,该I/O接口获得了总线控制权。离中央仲裁器最近的设备具有最高优先级,通过接口的优先级排队电路来实现。链式查询方式的优点:只用很少几根线就能按定优先次序实现总线仲裁,很容易扩充设备。

链式查询方式的缺点:对询问链的电路故障很敏感,如果第个设备的接口中有关链的电路有故障,那么第i个以后的设备都不能进行工作。查询链的优先级是固定的,如果优先级高的设备出现频繁的请求时,优先级较低的设备可能长期不能使用总线。

(2)计数器定时查询方式

总线上的任一设备要求使用总线时:通过 BR线发出总线请求。中央仲裁器接到请求信号以后,在BS 线为“0”的情况下让计数器开始计数,计数值通过一组地址线发向各设备。每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址相一致时,该设备置“1”BS线,获得了总线使用权.此时中止计数查询。

每次计数可以从 0开始,也可以从中止点开始。如果从“0”开始,各设备的优先次序与链式查询法相同,优先级的顺序是固定的。如果从中止点开始,则每个设备使用总线的优先级相等。

计数器的初值也可用程序来设置,这可以方便地改变优先次序,但这种灵活性是以增加线数为代价的。

(3)独立请求方式

每个共享总线的设备均有一对总线请求线 BRi和总线授权线BGi。当设备要求使用总线时,便发出该设备的请求信号。中央仲裁器中的排队电路决定首先响应哪个设备的请求,给设备以授权信号BGi。

独立请求方式的优点:响应时间快,确定优先响应的设备所花费的时间少,用不着一个设备接一个设备地查询。其次,对优先次序的控制相当灵活,可以预先固定也可以通过程序来改变优先次序;还可以用屏蔽(禁止)某个请求的办法,不响应来自无效设备的请求。

第二类分布式仲裁:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号和仲裁器。当它们有总线请求时,就会把它们各自唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器从仲裁总线上得到的仲裁号与自己的仲裁号比较。若仲裁总线上的仲裁号优先级高,则它的总线请求不予响应,并撤销它的仲裁号。最后,获胜者的仲裁号保留在仲裁总线上。

什么叫刷新?为什么要刷新?说明刷新有几种方法?

刷新:对 DRAM定期进行的全部重写过程; 刷新原因:DRAM存储元是通过栅极电容存储电荷来暂存信息。由于存储的信息电荷终究是有泄露的,电荷数又不能像SRAM存储元那样由电源经负载管来补充,时间一长,信息就会丢失。为此必须设法由外界按一定规律给栅极充电,按需要补给栅极电容的信息电荷,此过程叫“刷新”。

常用的刷新方法有三种、集中式、分散式、异步式。

集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成。其中,把机器的存取周期tc分成两段,前半段tM用来读/写或维持信息,后半段tR用来刷新。不存在停止读/写的死时间,但是存取周期长了,整个系统速度降低了。

异步刷新:每一行只要在最大刷新周期(不刷新/充电就丢失数据的极限时间)内,找个每一行它自己觉得方便的时候刷新即可。

如果将DRAM的刷新安排在CPU对指令的译码阶段,由于这个阶段CPU不访问存储器,所以这种方案既克服了分散刷新需独占0.5μs用于刷新,使存取周期加长且降低系统速度的缺点,又不会出现集中刷新的访存“死区”问题,从根本上上提高了整机的工作效率。

为什么刷新与存取不能并行?

因为内存就一套地址译码和片选装置,刷新与存取有相似的过程,它要选中一行——这期间片选线、地址线、地址译码器全被占用着。同理,刷新操作之间也不能并行——意味着一次只能刷一行。

寻址方式

就是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。

何谓存储的层次结构?各曾分别解决什么问题?增加CACHE的目的是什么?

存储器的层次结构主要体现在cache-主存和主存-辅存这两入存储层次上。

Cache-主存层次在存储系统中主要对 CPU 访存起加速作用,即从整体运行的效果分析,CPU 访存速度加快,接近于Cache的速度,而寻址空间和价位却接近于主存。

主存-辅存层次在存储系统中主要起扩容作用.

顺序存储、直接存储、随机存储、关联存储。

随机存取:随机存取存储器(RAM)。随机存取指的是当存储器中的数据被读取或写入时,所需要的时间与该数据所在的物理地址无关。RAM利用电容存储电荷的原理保存信息,所以RAM可以高速存取,且与物理地址无关。

顺序存取:磁带、光盘、磁盘上的数据分别存储在不同扇区、不同磁道上,磁盘的读写磁头通过切换不同扇区和磁道来读取物理地址不连续的数据时,该过程中要经过不同扇区和不同磁道上的无关数据,磁盘的读写磁头在切换不同扇区和磁道所需时间也不同,故为顺序存取。顺序存取是一种按记录的逻辑顺序进行读、写操作的存取方法,所需要的时间与该数据所在的物理地址有关。顺序存取表现为:在存取第N个数据时,必须先访问前(N-1)个数据。

直接存储:先直接指出该存储器的某个区域再顺序查找(磁盘)(随机+顺序)

相联存储:按内容查找相联存储器(快表)(与前面三种都不同,这种方法是采取内容寻找存储位置)

半导体存储器分为哪几类?简述各类存储器的特点。

按其功能可分为随机存取存储器(RAM)和只读存储器(ROM)

RAM:包括 DRAM和SRAM,当关机或断电时,其中的 信息都会随之丢失。 DRAM主要用于主存,SRAM主要用于高速缓存存储器。

ROM:只能读出不能随意写入信息,在主板上的ROM里面固化了一个基本输入/输出系统,其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。按其制造工艺可分为:双极晶体管存储器和MOS晶体管存储器。

①T双极型:运算速度比磁芯存储器速度约快3个数量级,而且与双极型逻辑电路型式相同,使接口大为简化。

②MOS:集成度高、容量大、体积小、存取速度快、功耗低、价格便宜、维护简单。

按其存储原理,可分为:静态和动态两种。

①静态存储器:需要电源才能工作,只要电源正常,就能长期稳定的保存信息。

②动态存储器:超大容量的存储技术,跟其它类型的存储器相比?每兆比特的价格为最低。

在PC机中何谓逻辑地址?何谓物理地址?如何将逻辑地址变换为物理地址?

物理地址是内存中各存储单元的编号,即存储单元的真实地址,它是可识别、可寻址并实际存在的。用户程序经过编译或汇编形成的目标代码,通常采用相对地址形式,其首地址为零,其余指令中的地址都是相对首地址而定。这个相对地址就称为逻辑地址或虚拟地址。逻辑地址不是内存中的物理地址,不能根据逻辑地址到内存中存取信息。为了保证CPU执行程序指令时能正确访问存储单元,需要将用户程序中的逻辑地址转运行时可由机器直接寻址的物理地址,这一过程称为地址映射或地址重定位。

说明SRAM的组成结构,与SRAM相比,DRAM在电路组成上有什么不同之处。

SRAM存储器由存储体、读写电路、地址译码电路、控制电路组成,DRAM还需要有动态刷新电路。与SRAM相比,DRAM在电路组成上有以下不同之处:

(地址线复用技术)地址线的引脚一般只有一半,因此,增加了两根控制线RAS、CAS,分别控制接受行地址和列地址。先送RAS,再送CAS。

主存储器的性能指标有哪些?含义是什么?

主存储器的性能指标有存储容量、存取时间、存取周期和存储带宽。

存储容量:在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量。

存取时间又称为存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。

存储周期是指连续启动两次读操作所需间隔的最小时间。

存储器带宽是单位时间里存储器所存取的信息量。

Cache块的大小会带来什么问题?统一/分立的Cache各有什么优缺点?使用两级Cache的目的并指出原因。

(1)行的长度较大,可以充分利用程序访问的局部性原理,使一个比较的局部空间被一起调到Cache中因而可以增加命中机会,但是行长也不能太长,行长大使失效损失变大。如果未命中的话,需要更多的时间从主存读快。行长太大,则Cache项数变少,命中可能性变小。

(2)统—Cache比分立Cache有更高的命中率,因为它在获取指令和数据时可以自动实现平衡。只须设计和实现一个Cache,设计难度低。分立Cache允许CPU在同一个Cache存储周期内同时取指令和数据,保证不同指令可以同时访存。

(3)提高计算机运算速度,由于片内缓存在芯片内,其容量不可能很大,这就可能致使CPU欲访问的信息不在缓存内,必须通过系统总线访问主存,次数多了,导致速度下降。

什么是程序的局部性?请结合CACHE设计,说明计算机系统结构如何利用程序的局部性?

空间局部性+时间局部性。

程序访问的局部性原理包括时间局部性和空间局部性,时间局部性是指在最近的未来要用到的信息。很可能是现在正在使用的信息,因为程序中存在循环。

空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的因为指令通常是顺序存放、顺序执行的,数据一般也是以向量、数组等形式簇聚地存储在一起的。

1.以块为单位组织Cache,充分利用空间局部性。

2.LRU替换算法,充分利用时间局部性

Cache的基本原理?

(1)CPU与 Cache、Cache与主存之间的数据交换是以块为单位。一个块由通常若干定长的字组成。

(2)因此Cache的基本原理是当CPU要读取主存中的一个字时,总是将存放该字的内存地址同时发给Cache和主存。此时Cache 控制逻辑立即依据地址判断该字当前是否已在Cache中。

若是,将此字立即传送给CPU,CPU无需再访问主存,让主存访问失效;

若非,则用主存读周期把此字从主存读出送到 CPU,与此同时把含有这个字的数据块从主存读出并装入到Cache 中较旧的内容块替换掉。这种替换控制由始终管理Cache 使用情况的硬件逻辑电路来实现,最常用的替换算法为LRU(最近最少使用策略)。

什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?

存储容量是指存储器可以容纳的二进制信息量,用存储器中存储地址寄存器MAR的编址数与存储字节数的乘积表示; 存储器中是由许多存储单元组成的,每个存储单元都有编号,称为单元地址。如果某字代表要处理的数据,则称为数据字;如果某字为一条指令,则称为指令字。

简述控制器的功能和各组成部分的作用。

功能:(1)从主存中取出一条指令,并指出下一条指令在主存中的位置。

(2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。

(3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。

程序计数器:用于指出条指令在主存中的存放地址。

指令寄存器:用天保存当前正在执行的那条指令。

MAR:用于存放所要访间的主存单元的地址。

指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号

MDR 用于在存向主存写人的信息或从主存中读出的信息。

时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。

微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。

控制器通常分为哪两种?简述各类控制器的含义及特点。

根据控制器产生微操作控制信号的方式的不同,控制器可分为硬布线控制器和微程序控制器,两类控制器中的PC和IR是相同的,但确定和表示指令执行出步骤的办法,以及给出控制各部分运行所需要的控制信号的方案是不同的。

硬布线控制器:根据指令的要求、当前的时序及外部和内部的状态情况,按时间的顺序发送一系列微操作控制信号。它由复杂的组合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器。速度快,应用RISC的CPU,一旦设计完成,不能通过其他额外修改添加新功能。

微程序控制器:采用存储逻辑实现,也就是把微操作信号代码化,使每余机器指令转化成为一段微程序并存一个专门的存储器控制存储器)中,微操作控制信号由微指令产生。这些微程序可以存放在一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序的微指令。具有规整性,灵活性,可维护性,速度较慢,用于 CISC的CPU。

流水线的冒险与处理?

在指令流水线中,可能会遇到一些情况使得流水线无法正确执行后续指令而引起流水线阻塞或停顿,这种现象称为流水线冒险。根据导致冒险的原因不同主要有3种:结构冒险(资源冲突)数据冒险(数据冲突)和控制冒险(控制冲突)

1.结构冒险

由于多条指令在同一时刻争用同一资源而形成的冲突,也称为资源冲突,即由硬件资源竞争造成的冲突,有以下两种解决办法:

1)前一指令访存时,使后一条相关指令(以及其后续指令)暂停一个时钟周期。

2)单独设置数据存储器和指令存储器,使取数和取指令操作各自在不同的存储器中进行。事实上,现代计算机都引入了Cache 机制,而L1 Cache 通常采用数据Cache 和指令Cache分离的方式,因而也就避免了资源冲突的发生。

2.数据冒险

在一个程序中,下一条指令会用到当前指令计算出的结果,此时这两条指令发生数据冲突。当多条指令重叠处理时就会发生冲突,数据冒险可分为三类:

1)写后读(Read After Write,RAW)相关:表示当前指令将数据写入寄存器后,下一条指令才能从该寄存器读取数据。否则,先读后写,读到的就是错误(旧)数据。

2)读后写(Write After Read,WAR)相关:表示当前指令读出数据后,下一条指令才能写该寄存器。否则,先写后读,读到的就是错误(新)数据。

3)写后写(Write After Write,WAW)相关:表示当前指令写入寄存器后,下一条指令才能写该寄存器。否则,下一条指令在当前指令之前写,将使寄存器的值不是最新值。解决的办法有以下几种:

①把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行,可分为硬件阻塞(stall)和软件插入“NOP”指令两种方法。

②设置相关专用通路,即不等前一条指令把计算结果写回寄存器组,下一条指令也不再读寄存器组,而直接把前一条指令的ALU的计算结果作为自己的输入数据开始计算过程,使本来需要暂停的操作变得可以继续执行,这称为数据旁路技术。通过编译器对数据相关的指令编译优化的方法,调整指令顺序来解决数据相关。

3.控制冒险

指令通常是顺序执行的,但是在遇到改变指令执行顺序的情况,例如执行转移、调用或返回等指令时,会改变 PC值,会造成断流,从而引起控制冒险。解决的办法有以下几种:

1)对转移指令进行分支预测,尽早生成转移目标地址。分支预测分为简单(静态)预测和动态预测。静态预测总是预测条件不满足,即继续执行分支指令的后续指令。动态预测根据程序执行的历史情况,进行动态预测调整,有较高的预测准确率。

2)预取转移成功和不成功两个控制流方向上的目标指令。

3)加快和提前形成条件码。

4)提高转移方向的猜准率。

先行进位(超前进位)解决的问题和基本思想是什么?

先行进位解决进位的传递速度问题。让每一位的进位与其低一位的进位无关,仅与两个参加操作的数以及最低位的进位有关。由于每位的操作数是同时给出的,各进位信号几乎可以同时产生,和数也随之产生,所以先行进位可以提高进位的传递速度,从而提高加法器的运算速度。

程序查询方式的工作流程

①CPU执行初始化程序,并预置传送参数。

②向I/O接口发出命令字:启动I/O设备。

③从外设接口读取其状态信息。

④CPU不断查询I/O设备状态,直到外设准备就绪。

⑤传送一次数据。

⑥修改地址和计数器参数。

⑦判断传送是否结束,若未结束转第③步,直到计数器为0。

简要描述外设进行 DMA 操作的过程

①外设发出DMA请求;

②CPU响应请求,DMA控制器从CPU 接管总线的控制;

③由DMA控制器执行数据传送操作;

④向CPU 报告 DMA操作结束;

I/O中断的产生

在I/O设备与主机交换信息时,由于设备本身机电特性的影响,其工作速度较低,与CPU无法匹配,因此,CPU启动设备后,往往需要等待一段时间才能实现主机与I/O设备之间的信息交换。如果在设备准备的同时,CPU不做无谓的等待,而继续执行现行程序,只有当I/O设备准备就绪向CPU提出请求后,再暂时中断CPU现行程序转入I/O服务程序,这便产生了I/O中断。

CPU响应中断的条件

①中断源有中断请求。

②CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)。

③一条指令执行完毕(异常不受此限制),且没有更紧迫的任务。

程序中断方式

倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应,这将大大提高CPU的工作效率。

在DMA方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断服务程序。若出现 DMA 和CPU 同时访问主存,CPU 总是将总线占有权让给DMA。通常把DMA的这种占有称为窃取或挪用。窃取的时间一般为一个存取周期,故又把DMA占用的存取周期窃取周期或挪用周期。而且,在DMA窃取存取周期时,CPU尚能继续做内部操作。

DMA的优缺点?

优点:DMA方式的主要优点是速度快。由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。在数据传送过程中,没有保存现场、恢复现场之类的工作。内存地址修改、传送字个数的计数等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。

缺点:①如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA 接口同时访问主存的冲突问题,会使控制变得十分复杂。

②CPU需要对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率。

DMA方式的特点

①它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。

②在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路接实现。

③主存中要开辟专用缓冲区,及时供给和接收外设的数据。

④DMA传送速度快,CPU和外设升行工作,提高了系统效率。

⑤ DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。

DMA控制器(DMA 接口)的功能

利用DMA方式传送数据时,数据的传输过程完全由DMA接口电路控制。

①向CPU申请DMA传送。

②在CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争。

③在DMA期间管理系统总线,控制数据传送。

④确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。

⑤ 在数据块传送结束时,给出DMA操作完成的信号。

DMA 接口的组成

(1)主存地址寄存器(AR)

AR用于存放主存中需要交换数据的地址。在DMA传送数据前,必须通过程序将数据在主存中的首地址送到主存地址寄存器。在DMA传送过程中,每交换一次数据,将地址寄存器内容加1,直到一批数据传送完毕为止。

(2)字计数器(WC)

WC用于记录传送数据的总字数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器加1,直到计数器为0,即最高位产生进位时,表示该批数据传送完毕(若交换字数以原码值预置,则每传送一个字,字计数器减1,直到计数器为0时,表示该批数据传送结束)。于是DMA接口向CPU发中断请求信号。

(3)数据缓冲寄存器(BR)

BR 用于暂存每次传送的数据。通常DMA接口与主存之间采用字传送,而DMA与设备之间可能是字节或位传送。因此DMA接口中还可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等。

(4)DMA控制逻辑

DMA控制逻辑负责管理DMA的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成。每当设备准备好一个数据字(或一个字传送结束),就向DMA接口提出申请(DREQ),DMA控制逻辑便向CPU请求DMA服务,发出总线使用权的请求信号(HRQ)。待收到CPU发出的响应信号HLDA后,DMA控制逻辑便开始负责管理DMA传送的全过程,包括对主存地址寄存器和字计数器的修改、识别总线地址、指定传送类型(输入或输出)以及通知设备已经被授予一个DMA周期(DACK)等。

(5)中断机构

当字计数器溢出(全“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理。(这里的中断与I/O中断的技术相同,但中断的目的不同,前面是为了数据的输入或输出, 而这里是为了报告一批数据传送结束、它们是I/O系统中不同的中断事件。)

(6)设备地址寄存器(DAR)

DAR存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号、盘面号和柱面号。具体内容取决于设备的数据格式和地址的编址方式。

DMA的传送过程

DMA的数据传送过程分为预处理数据传送后处理3个阶段:

预处理由CPU完成一些必要的准备工作。首先,CPU执行几条I/O指令,用以测试I/O设备状态,初始化DMA控制器中的有关寄存器、设置传送方向、启动该设备等。然后,CPU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求),用以传输数据。

数据传送,DMA 的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位。对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由DMA控制器而非通过 CPU执行程序实现的,即数据传送阶段完全由DMA(硬件)控制。

后处理,DMA 控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转诊断程序)及决定是否继续使用DMA传送其他数据等。

I/O设备与主机信息传送的控制方式?

程序查询方式、程序中断方式、直接存储器存取方式(DMA)、I/O通道方式、I/O处理机方式。

程序查询方式是由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息采用这种方式实现主机和I/O设备交换信息,要求I/O接口内设置一个能反映0设备是否准备就绪的状态标记,CPU通过对此标记的检测,可得知I/O设备的准备情况。

硬件向量法和软件查询法

1.硬件向量法

硬件向量法就是利用硬件产生向量地址,再由向量地址找到中断服务程序的入口地址,向量地址由中断向量地址形成部件产生,这个电路可分散设置在各个接口电路中,也可设置在CPU内。

由向量地址寻找中断服务程序的入口地址通常采用两种办法。一种是在向量地址内存放一条无条件转移指令,CPU响应中断时,只要将向量地址送至PC,执行这条指令,便可无条件转向服务程序的入口地址。另一种是设置向量地址表。该表设在存储器内,存储单元的地址为向量地址,存储单元的内容为入口地址,只要访问向量地址所指示的存储单元,便可获得入口地址。

硬件向量法寻找入口地址速度快,在现代计算机中被普遍采用。

用软件寻找中断服务程序入口地址的方法称为软件查询法,当查到某一中断源有中断请求时,接着安排一条转移指令,直接指向此中断源的中断服务程序人口地址,机器便能自动进入中断处理。至于各中断源对应的入口地址,则由程序员(或系统)事先确定。这种方法不涉及硬件设备,但查询时间较长。计算机可具备软、硬件两种方法寻找入口地址,使用户使用更方便、灵活。

I/O中断处理的过程

中断请求,中断判优,中断响应,中断服务,中断返回。

中断的响应过程:CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,我们将它称为中断隐指令,中断隐指令并不是指令系统中的一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列自动操作。它所完成的操作如下:

关中断:CPU 响应中断后,首先要保护程序的断点和现场信息,在保护断点和现场的过程中,CPU不能响应更高级中断源的中断请求。否则,若断点或现场保存不完整,在中断服务程序结束后,就不能正确地恢复并继续执行现行程序。

保存断点:为保证在中断服务程序执行完后能正确地返回到原来的程序,必须将原程序的断点(指令无法直接读取的PC和PSW的内容)保存栈或特定寄存器中。

注意异常和中断的差异:异常指令通常并没有执行成功,异常处理后要重新执行,所以其断点是当前指令的地址。中断的断点则是下一条指令的地址。

引出中断服务程序:识别中断源,将对应的服务程序入口地址送入程序计数器pc。

有两种方法识别中断源:硬件向量法和软件查询法。

中断服务程序:

一般中断服务程序的流程分四大部分:保护现场、中断服务、恢复现场和中断返回。

1.保护现场

保护现场有两个含义,其一是保存程序的断点;其二是保存通用寄存器和状态寄存器的内容。前者由中断隐指令完成,后者由中断服务程序完成。具体而言,可在中断服务程序的起始部分安排若干条存数指令,将寄存器的内容存至存储器中保存,或用进栈指令(PUSH)将各寄存器的内容推入堆栈保存,即将程序中断时的“现场”保存起来。

2.中断服务(设备服务)

这是中断服务程序的主体部分,对于不同的中断请求源,其中断服务操作内容是不同的。

3.恢复现场

这是中断服务程序的结尾部分,要求在退出服务程序前,将原程序中断时的“现场”恢复到原来的寄存器中。通常可用取数指令或出栈指令(POP),将保存在存储器(或堆栈)中的信息送回到原来的寄存器中。

4.中断返回

中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。

中断嵌套(多重中断)和单重中断

计算机在处理中断的过程中,有可能出现新的中断请求,此时如果CPU暂停现行的中断服务程序,转去处理新的中断请求,这种现象称为中断嵌套,或多重中断。倘若CPU在执行中断服务程序时,对新的中断请求不予理睬,这种中断称为单重中断。其区别在于“开中断”的设置时间不同。

通道

负责管理I/O设备以及实现主存与I/O设备之间进行信息交换。

通道指令(通道控制字)

对具有通道的I/O系统专门设置的指令,这类指令一般用以指明参与传送的数据组在主存中的首地址。指明需要传送的字节数或所传送的数据组的末地址。指明所选设备的设备码以及完成某种操作的命令码。

I/O处理机

独立于主机工作,即可完成I/O通道完成的I/O控制,又可完成码制变换,格式处理,数据块检错纠错等操作。

I/O设备与主机的联络方式?

(1)立即响应方式

对于一些工作速度十分缓慢的I/O设备,如指示灯的亮与灭、开关的通与断、A/D转换器缓变信号的输入等,当它们与CPU发生联系时,通常都已使其处于某种等待状态,因此,只要CPU的I/O指令一到,它们便立即响应,故这种设备无须特殊联络信号,称为立即响应方式。

(2)异步工作采用应答信号联络

当I/O设备与主机工作速度不匹配时,通常采用异步工作方式。这种方式在交换信息前,I/O设备与CPU各自完成自身的任务,一旦出现联络信号,彼此才准备交换信息。

(3)同步工作采用同步时标联络

同步工作要求I/O设备与CPU的工作速度完全同步。这种联络互相之间还得配有专用电路,用以产生同步时标来控制同步工作。

I/O设备与主机之间的连接方式?

辐射式和总线式。

采用辐射式连接方式时,要求每台I/O设备都有一套控制线路和一组信号线,因此所用的器件和连线较多,对I/O设备的增删都比较困难。

总线连接方式,通过一组总线(包括地址线、数据线、控制线等),将所有的I/O设备与主机连接。

统一编址和不统一编址

通常将I/O设备码看作地址码,对I/O地址码的编址可采用两种方式:统一编址或不统一编址。

统一编址就是将I/O地址看作存储器地址的一部分。例如,在64K地址的存储空间中,划出8K地址作为/0设备的地址,凡是在这8K地址范围内的访问,就是对I/O设备的访问,所用的指令与访存指令相似。

不统一编址就是指I/O地址和存储器地址是分开的,所有对I/O设备的访问必须有专用的I/0指令。显然统一编址占用了存储空间,减少了主存容量,但无须专用的I/O指令。不统一编址由于不占用主存空间,故不影响主存容量,但需设I/O专用指令。

中断响应周期完成那些工作?

经过中断判优,中断处理就进入中断响应阶段。中断响应时,CPU向中断源发出中断响应信号,同时: ① 保护硬件现场; ② 关中断; ③ 保护断点; ④ 获得中断服务程序的入口地址(将向量地址送至程序计数器(硬件向量法)或将中断识别程序入口地址送至程序计数器(软件查询法)。

在向量中断系统中,设备为什么将中断向量放在数据总线上而不放在地址总线上?

因为在系统总线中,地址总线是单向的,只能用于CPU向存储器和外设传输地址信息,而不能用于外设向CPU传输信息,所以外设向CPU传输中断向量只能通过数据总线。

DMA 方式与中断方式的区别

相同点:这两种方式下,主机和I/O设备都是并行工作。

与程序中断方式相比,DMA方式有如下特点。

①从数据传送看,程序中断方式靠程序传送,DMA方式靠硬件传送。

②从CPU响应时间看,程序中断方式是在一条指令执行结束时响应,而DMA方式可在指令周期内的任一存取周期结束时响应。

③程序中断方式有处理异常事件的能力,DMA方式没有这种能力,主要用于大批数据的传送,如硬盘存取、图像处理、高速数据采集系统等,可提高数据吞吐量。

④程序中断方式需要中断现行程序,故需保护现场;DMA方式不中断现行程序,无须保护现场。

⑤ DMA的优先级比程序中断的优先级高。

CPU对DMA请求和中断请求的响应时间是否一样?为什么?

CPU对DMA请求和中断请求的响应时间不一样,因为两种方式的交换速度相差很大,因此CPU必须以更短的时间间隔查询并响应DMA请求。响应中断请在每条指令执行周期结束的时刻,而响应DMA请在存取周期结束的时刻。

中断方式是程序切换,而程序又是由指令组成,所以必须在一条指令执行完毕才能响应中断请求,而且 CPU只有在每条指令执行周期结束的时刻才发出查询信号,以获取中断请求信号,若此时条件满足,便能响应中断请求。

DMA请求由DMA接口根据设备的工作状态向CPU申请占用总线此时只要总线未被CPU占用,即可立即响应 DMA请求;若总线正被CPU占用,则必须等待该存取周期结束时,CPU才交出总线的使用权。

程序查询方式和程序中断方式都是通过“程序”传送数据,两者的区别是什么?CPU对中断请求和DMA请求的响应时间是否相同?为什么?

①区别:程序查询方式下处理器处于轮询(死等)状态,只专注于读取数据,处理器利用率很低。程序中断方式下,在中断来临之前处理器可以处理其他任务,只有中断信号来临并产生中断之后才传送数据,处理器利用率大大提高。 ②响应时间不同:CPU对中断的响应是在中断产生时正在执行的那条指令执行完成之后才响应。而对 DMA的响应可以发生在每个机器周期结束时,只要CPU不占用总线就可以响应

解释下列有关中断的概念:中断、中断源、中断系统、中断向量、程序中断、多重中断、向量中断、单重中断、断点

中断:中断就是使CPU暂停运行原来的程序而应更为急迫事件的需要转向去执行为中断源服务的程序,待该程序处理完后,再返回运行原程序。

中断源:即引起中断的事件的原因或发出中断申请的来源。

中断系统:实现中断功能的硬件和软件称为中断系统。

中断向量:由发出中断请求的设备通过输入输出总线主动向CPU发出一个识别代码。

程序中断:指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊情况请求进行处理,在处理完毕后CPU 继续执行原程序。

多重中断:当.CPU执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU 暂停现行中断服务程序的执行、转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程.

向量中断:是指一种识别中断源的技术或方式。识别中断源的目的就是要找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址

单重中断:处理一个中断请求期间不允许被其他中断请求打断

断点:即程序执行中断的地方,保存断点以便处理完中断继续执行该程序

中断向量地址与入口地址的区别与联系?

中断向量地址是指中断服务程序的入口地址的地址。

入口地址即中断向量,是中断服务程序的首地址。

中断响应与中断处理

中断响应是指 CPU 识别中断源到确定中断服务程序入口地址的过程;

中断处理是指执行中断服务程序的过程。

两者共同构成了一个完整的中断服务过程,中断响应通常是由硬件完成,中断处理则是软件完成。

为什么要设置I/O接口?

①一台机器通常配有多台I/O设备,它们各自有其设备号(地址),通过接口可实现I/O设备的选择。

②I/O设备种类繁多,速度不一,与CPU速度相差可能很大,通过接口可实现数据缓冲,达到速度匹配。

③有些I/O设备可能串行传送数据,而CPU一般为并行传送,通过接口可实现数据串并格式的转换。

④I/O设备的输入输出电平可能与CPU的输入输出电平不同,通过接口可实现电平转换。

⑤CPU启动I/O设备工作,要向I/O设备发各种控制信号,通过接口可传送控制命令。

⑥I/O设备需将其工作状态(如“忙”“就绪”“错误”“中断请求”等)及时向CPU报告,通过接口可监视设备的工作状态,并可保存状态信息,供CPU查询。

把外围设备接入计算机系统时,必须解决哪些基本问题?通过什么手段解决这些问题?

外围设备接入计算机系统时,必须解决以下基本问题。

(1)由于一般外围设备都有它自身的独立时钟,故把它们接入主机时,必须解决两个异步工作的系统之间的同步或通讯联络问题。

(2)由于外围设备的工作速度远比主机慢,有的相差达几个数量级,故将它们相连时,必须解决速度匹配问题。

(3)由于外围设备的数据格式往往与主机内部的数据格式不同,故将它们相连时,必须解决数据格式的转换问题。

通过总线接口解决上述问题。

接口和端口的区别?

接口可以看作两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。它一边通过地址线、数据线、控制线与CPU连接,一边通过数据信息、控制信息、状态信息与外设连接。

端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分别称为数据端口、控制端口和状态端口。若干个端口加上相应的控制逻辑才能组成接口。CPU通过输入指令,从端口读入信息,通过输出指令,可将信息写入端口中。主机与外设之间的信息交换通过访问端口来实现。

存取周期、存取时间、指令周期、机器周期

存取周期是指存储器进行连续两次独立的存储器操作(如连续两次读操作)所需的最小时间间隔。

存取时间又称为访问时间,是指启动一次存储器操作(读或者写)到完成该操作所需的全部时间。两者都用来表示存储速度,存取周期通常大于存取时间。

比较:存储周期包含存取时间和恢复时间。

指令周期是指CPU 取出并执行一条指令所需的全部时间。

机器周期是所有指令执行过程中的一个基准时间。通常用内存中读取一个指令字的最短时间来规定CPU周期(机器周期)。

时钟周期:处理操作的最基本单位,时钟频率的倒数,时钟信号控制节拍发生器,每个节拍宽度对应一个时钟周期。

一般情况下,一个指令周期包含若干个机器周期,每个指令周期内的机器周期数可以不等。而机器周期时间又包含有若干个时钟周期。

什么是指令?什么是程序?指令系统?

指令是机器所能领会的一组编排成特定格式的代码串,他要求机器在一个指令周期内,完成一组特定的操作;

程序是为特定问题求解而设计的指令序列。

一台计算机中所有机器指令的集合称为这台计算机的指令系统。

机器字长、指令字长、存储字长

机器字长:计算机进行一次运算所能处理的二进制数据的位数,一般等于内部通用寄存器的大小。 指令字长:一个指令字中包含二进制代码的位数由操作码和地址码组成。 比较:现代CPU的机器字长和指令字长不定相等,但两者都是字节的整数倍。

存储字长:一个存储单元存储二进制代码的位数。

通常情况下,CPU中有哪些主要的控制寄存器?各有什么作用?控制寄存器的设计中要考虑那些因素为什么?

程序计数器PC:用于指出下一条指令在主存中的存放地址

指令寄存器IR:用于存放当前正在执行的那条指令

指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号

存储器地址寄存器MAR:用于存放所要访问的主存单元的地址

存储器数据寄存器MDR:用于存放向主存写入的信息或从主存中读出的信息

基址寻址与变址寻址

基址寻址方式是指操作数的有效地址中指令码中的形式地址与基址寄存器中的内容相加形成;

变址寻址方式是指操作数的有效地址由指令码中的形式地址与变址寄存器中的内容相加形成。

基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值不变;

变制寻址主要用于数组寻址等,变址寄存器的内容由用户设定,在程序执行过程中其值可变。

程序执行的顺序有几种?CPU 是如何控制程序执行顺序的?

顺序执行和并发执行。PC 自加自动生成下一条指令地址。或转移指令(通过改变 PC 值实现)

微程序控制器结构?

①控制存储器CM。它是微程序控制器的核心部件,用于存放各指令对应的程序,控制存储器可用只读存储器ROM构成。)

②微指令寄存器。用于存放从CM中取出的微指令,它的位数同微指令字长相等。

③微地址形成部件。用于产生初始微地址和后继微地址,以保证微指令的连续执行。

④微地址寄存器。接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。

微程序控制器的工作过程?

微程序控制器的工作过程实际上就是在微程序控制器的控制下计算机执行机器指令的过程,整个过程可以描述如下:

①执行取微指令公共操作具体的执行是:在机器开始运行时,自动将取指微程序的入口地址送入CMAR,并CM中读出相应的微指令送入CMDR。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器中。

②机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入CMAR。

③从CM中逐条取出对应的微指令并执行。

④执行完对应于一条机器指令的一个微程序后,又回到取指微程序的入口地址,继续第①步,以完成取下一条机器指令的公共操作。

以上是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕。

采用间接编码方式的微指令是水平型微指令吗?

是,水平型微指令是指一次能定义并执行多个并行操作的微命令;从编码方式看,直接编码,字段直接编码,宇段间接编码以及直接和字段混合编码都属水平型微指令,只要在一条微命令中定义并执行多个并行操作,即可称为水平型微指令,与编码方式无关,但直接编码速度最快,字段编码要经过译码,故速度受影响。

CISC和RISC的含义分别是什么?你怎么看待他们的发展趋势。

CISC:复杂指令集计算机;RISC:精简指令集计算机。

融合,互相借鉴。总体而言,RISC将在更多的领域发挥愈来愈大的作用。

RISC 机能提高运算速度的原因?

①RISC机的指令数、寻址方式和指令格式种类较少,而且指令的编码很有规律,因此RISC的指令译码比CISC的指令译码快。

② RISC机内通用寄存器多,减少了访存次数,可加快运行速度。

③ RISC机采用寄存器窗口重叠技术,程序嵌套时不必将寄存器内容保存到存储器中,故又提高了执行速度。

④RISC机采用组合逻辑控制,比采用微程序控制的CISC机的延迟小,缩短了CPU的周期。

⑤ RISC机选用精简指令系统,适合于流水线工作,大多数指令在一个时钟周期内完成。

提高处理机速度的方法?

(1)提高器件的性能

(2)改进系统的结构,开发系统的并行性

所谓并行,包含同时性和并发性两个方面。前者是指两个或多个事件在同一时刻发生,后者是指两个或多个事件在同一时间段发生。也就是说,在同一时刻或同一时间段内完成两种或两种以上性质相同或不同的功能,只要在时间上互相重叠,就存在并行性。

并行性体现在不同等级上。通常分为4个级别[作业级或程序级、任务级或进程级、指令之间级和指令内部级。前两级为粗粒度,又称为过程级;后两级为细粒度,又称为指令级。粗粒度并行性(Coarse-grained Parallelism)一般用算法(软件)实现,细粒度并行性(Fine-grained Parallelism)一般用硬件实现。从计算机体系上看,粗粒度并行性是在多个处理机上分别运行多个进程,由多分处理机合作完成一个程序;细粒度并行性是指在处理机的操作级和指令级的并行性,其中指令的流水作业就是一项重要技术。

超标量流水线技术

也称动态多发射技术,每个时钟周期内可并发多条独立指令,以并行操作方式将两条或多条指令编译并执行。

超长指令字技术

也称静态多发射技术,由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字。

超流水线技术

通过提高流水线主频的方式提升流水线性能。但流水线级数越多,用于流水寄存器的开销越大。

如何判断定点补码加减法运算结果是否溢出?如何判断补码除法和乘法运算结果是否溢出?如何判断浮点加减法运算结果是否发生溢出?如何判断原码定点除法运算结果是否溢出?

定点补码加减判断方法:

法1:当符号相同的两数相加,如果结果的符号和加数(或被加数)不相同,则为溢出 法2:任意两符号两数相加时,若数值最高位的进位与符号位的进位不一致,则为溢出 法3:如果采用双符号位,正数符号位为00,负数为11,两符号位不一致则为溢出,01为正溢出,10为负溢出。

定点补码乘法和除法溢出判断

1. 乘法溢出判断

补码乘法运算溢出发生在结果超出可表示的范围。判断方法:

  • 检查结果是否超出定点表示的最大和最小值范围。

公式化表示:

A * B:
- 当结果 > 最大可表示正数 或 结果 < 最小可表示负数 时,溢出

2. 除法溢出判断

补码除法运算溢出发生在除数为0或特定边界条件时。

具体判断方法:

  • 如果除数为0,除法运算未定义,结果溢出。
  • 如果被除数是补码最小负数,且除数为-1,结果溢出(因为结果超过了补码表示范围)。

公式化表示:

A / B:
- 当B == 0 时,溢出
- 当A 为补码最小负数(例如,对于32位整数,A = -2^31),且B = -1 时,溢出

浮点加减法运算溢出判断

浮点加减法运算溢出发生在结果超出了浮点数的表示范围。

具体判断方法:

  • 如果运算结果大于浮点数的最大表示值,发生正向溢出。
  • 如果运算结果小于浮点数的最小表示值,发生负向溢出。
A + B 或 A - B:
- 当结果 > 最大可表示浮点数 时,正向溢出
- 当结果 < 最小可表示浮点数 时,负向溢出

原码定点除法运算溢出判断

原码除法溢出通常指被除数(分子)大于除数(分母)的最大值范围,即超出了能够表示的范围。

具体判断方法:

  • 如果除数为0,除法运算未定义,结果溢出。
  • 如果被除数的绝对值大于可表示的最大正数,结果溢出。

公式化表示:

A / B:
- 当B == 0 时,溢出
- 当|A| > 最大可表示值 时,溢出

总结

  1. 定点补码加减法溢出:三种方法
  2. 定点补码乘法溢出:检查结果是否超出定点表示的范围。
  3. 定点补码除法溢出:除数为0或特定边界条件(最小负数除以-1)判断。
  4. 浮点加减法溢出:结果超出浮点数的最大和最小表示值判断。
  5. 原码定点除法溢出:除数为0或被除数绝对值大于可表示最大正数判断。

何谓浮点规格化?浮点加减运算分为哪几步?简述各步的操作规则。

浮点数中,为了在尾数中表示最多的有效数据位,同时使浮点数具有唯一的表示方式,浮点数的编码所采用的规范格式。

对阶:求阶差,然后以小阶向大阶着齐的原则,将阶码小的尾数右移一位,阶加1,道到两个数的阶码相等为止。

尾数求和:将对阶后的尾数按定点数加(减)运算规则运算

规格化:当尾数的最高数值位与符号位不同时,即为规格化形式。

舍入:在对阶和右规的过程中,可能会将尾数低位丢失,引起误差,影响精度。

溢出判断:浮点数的溢出与否是由阶码的符号决定的。

计算机硬件和软件是什么关系?

计算机硬件和计算机软件之间的关系:硬件和软件是一个完整的计算机系统互相依存的两大部分,它们的关系主要体现在以下几个方面。

(1)硬件和软件互相依存

硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。

(2)硬件和软件无严格界线

随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有绝对严格的界面。

【注意】一个功能即可由硬件实现,又可由软件实现。

(3)硬件和软件协同发展

计算机软件随硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切地交织发展,缺一不可。

I/O接口是什么?功能?

接口可以看作两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。

选址功能,传送命令功能,传送数据功能,反应I/O设备工作状态功能

指令是什么?程序是什么?CPU如何控制程序执行?

指令:计算机执行某种操作的命令。

程序:使计算机执行一个完整的任务的指令的集合。

CPU控制程序的执行,实际是对指令的执行,那么就是指令执行过程。计算机每执行一条指令都可分为三个阶段进行。即取指令、分析指令、执行指令.

取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。

分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。

计算机执行指令的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

请谈一谈计算机中是如何表示和处理数值数据的。

计算机中表示和处理数值数据的方法多种多样,主要分为整数和浮点数两大类。不同的数据类型有不同的存储方式和运算处理方式。

一、整数表示

1. 无符号整数

无符号整数表示非负整数,范围从0到最大值。最大值取决于数据类型的位数。例如,8位无符号整数的范围是0到255。

表示方式:

  • 直接使用二进制编码。
  • 每一位表示相应的2的幂次。

2. 有符号整数

有符号整数可以表示正数、负数和零,常用的表示方法有原码、反码和补码。

  • 原码:最高位表示符号位,0表示正,1表示负,其他位表示数值的绝对值。
  • 反码:负数的表示方式为对其绝对值按位取反,正数的反码与原码相同。
  • 补码:负数的表示方式为对其绝对值按位取反后加1,正数的补码与原码相同。

补码是计算机中最常用的表示方法,因为它解决了符号位的处理问题,并且简化了加减法运算。

二、浮点数表示

浮点数用于表示具有小数部分的实数,采用科学计数法表示,即一个数表示为m×2e,其中 ( m ) 是尾数,( e ) 是指数。常用的浮点数标准是IEEE 754。

1. IEEE 754 标准

IEEE 754标准定义了32位单精度浮点数和64位双精度浮点数的表示方法。

  • 单精度(32位)
    • 1位符号位(S):0表示正数,1表示负数。
    • 8位指数位(E):存储偏移量为127的指数。
    • 23位尾数位(M):存储尾数。
  • 双精度(64位)
    • 1位符号位(S)
    • 11位指数位(E):存储偏移量为1023的指数。
    • 52位尾数位(M)

2. 浮点数运算

浮点数运算包括加法、减法、乘法和除法。由于浮点数运算的复杂性和精度问题,通常采用专门的硬件单元(浮点运算单元,FPU)来处理。

三、数值数据处理

1. 加法和减法

  • 整数加减法
    • 无符号整数直接相加减。
    • 补码表示的有符号整数,加减法同样直接进行二进制运算。
    • 溢出判断基于符号位变化。
  • 浮点数加减法
    • 对阶:调整指数使得两数指数相同。
    • 尾数相加减。
    • 规格化:调整结果使得尾数在合法范围内。

2. 乘法和除法

  • 整数乘除法
    • 直接进行二进制运算。
    • 对于补码表示,符号位参与运算,注意溢出判断。
  • 浮点数乘除法
    • 尾数相乘除。
    • 指数相加减。
    • 规格化结果。

四、数值表示的范围和精度

不同表示方法的数值范围和精度不同:

  • 无符号整数:范围[0, (2^n - 1)],其中n为位数。
  • 有符号整数(补码):范围[-(2^{n-1}), (2^{n-1}-1)]。
  • 浮点数:范围和精度取决于尾数位数和指数位数,单精度和双精度范围不同,单精度范围约为 (10^{-38}) 到 (10^{38}),双精度范围约为 (10^{-308}) 到 (10^{308})。

总结

计算机通过多种表示方法来处理数值数据,包括无符号整数、有符号整数(补码)、浮点数等。不同表示方法有各自的范围和精度,适用于不同的计算需求。数值运算(加减乘除)在计算机中有专门的处理方式,确保运算的正确性和效率。

请详细回答中断处理的全过程,并分析其优缺点。

中断源向CPU发送中断请求信号;

CPU结束当前指令的执行,检测中断请求信号;

CPU向提出请求的中断源发出中断响应信号;

CPU进行断点保护,PSW、断点地址保存在堆栈中,被响应的中断源撤销中断请求信号,并为CPU提供中断处理程序入口地址的相关信息;

CPU识别中断源,获得中断处理程序入口地址,并将其装入PC,转向执行中断处理程序

CPU执行中断处理程序

CPU执行中断返回指令,恢复被保存在堆栈中的断点信息,回到断点处继续执行源程序。

【优点】使处理器的利用率提高,且能支持多道程序和/O设备的并行操作。

【缺点】①各种1/O设备都通过中断处理方式进行并行操作;②)如果i/O控制器的数据缓冲区此较小,在缓冲区装满数据之后将会发生中断。那么,在数据传送的过程中,发生中断的机会较多,这将消耗大量的CPU处理时间。

通道和DMA方式的异同?

相同点:都是能在不需要CPU干预下实现外设和内存间的数据交换

不同点:

1)DMA 控制器是通过专门设讨的硬件控制逻辑来实现对数据传递的控制,而通道具有自己的指令和程序,是一个有特殊功能的处理器

2)DMA仅能控制一台或几台同类设备,而通道能控制多台同类或不同类设备

计算机中为什么要采用二进制数码?

是由计算机电路所采用的器件决定的。计算机中采用了具有两不稳态的二值电路,用二值电路只能代表两个数码:0 和1。比如,采用正逻辑表示,是以低电位表示数码“0”,高电位表示数码“1”;负逻辑表示则以高电位表示数码“0”,低电位表示数码“1”。

在计算机中采用二进制,具有运算规则简单,物理上实现方便,成本低廉,数码“1”和“0”正好与逻辑命题中的两个值“True”、“False”相对应,为计算机中实现逻辑运算和程序中的逻辑判断提供了便利条件等优点。

主存储器的性能指标?

主存储器的性能指标主要是存储容量、存取时间、存储周期可靠性和性能价格比

在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量

存取时间又称存储访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。

存储周期是指连续两次独立的存储器操作(如连续两次读操作)所需间隔的最小时间。

可靠性是指在规定的时间内,存储器无故障工作的时间。通常用平均无故障时间MTBF来衡量。

性能与价格的比值是衡量存储器经济性能好坏的综合性指标。

CPU的性能指标?CPU的概念?

主要性能指标有:主频、外频、前端总线、CPU的位和字长、倍频系数、缓存。

概念:CPU是计算机系统中的核心部分,它的内部结构可以分为逻辑运算单元、控制单元和存储单元三个

部分,有读数据、处理数据和写数据三个基本功能。

计算机的主要技术性能指标有下面几项:

主频、字长、存储容量、存取周期和运算速度等。

(1)主频:主频即时钟频率,是指计算机的CPU在单位时间内发出的脉冲数。

(2)字长:字长是指计算机的运算部件能同时处理的二进制数据的位数,它与计算机的功能和用途有很大的关系。字长决定了计算机的运算精度,字长长,计算机的运算精度就高。字长也影响机器的运算速度,字长越长,计算机的运算速度越快。

(3)存储容量:计算机能存储的信息总字节量称为该计算机系统的存储容量存储容量的单位还有MB(兆字节)、GB(吉字节)和TB(太字节)。

(4)存取周期:把信息代码存入存储器,称为“写”;把信息代码从存储器中取出,称为“读”。存储器进行一次“读”或“写”操作所需的时间称为存储器的访问时间(或读写时间)),而连续启动两次独立的“读”或“写”操作(如连续的两次“读”操作)所需的最短时间,称为存取周期(或存储周期)。

(5)运算速度:运算速度是一项综合性的性能指标。衡量计算机运算速度的单位是MIPS(百万条指令/秒)。因为每种指令的类型不同,执行不同指令所需的时间也不一样。过去以执行定点加法指令作标准来计算运算速度,现在用一种等效速度或平均速度来衡量。等效速度由各种指令平均执行时间以及相对应的指令运行比例计算得出来,即用加权平均法求得。

单总线,双总线,三总线的结构特点?

单总线结构:使用一条单一的系统总线来连接CPU、主存和 i/0设备。总线只能分时工作,使信息传送的吞吐量受到限制。系统简单、易于扩充、效率低。

双总线结构:在CPU和主存之间专门设置了一组高速的存储总线,使CPU可通过专用总线与存储器交换信息,并减轻了系统总线的负担。主存仍可通过系统总线与处设之间实现DMA操作,而不必经过CPU。

三总线结构、在双总线系统的基础上增加1/0总线,其中,系统总线是CPU、主存和通道之间进行数据传送的公共通路,而i/o总线是多个外部设备与通道之间进行数据传送的公共通路。通道实际上是一台具有特殊功能的处理器,它分担了一部分CPU 的功能,以实现对外设的统一管理及外设与主存之间的数据传送。

I/O接口与主存单元统一编址,原理和优缺点?

统一编址方式是将I/O端口与内存单元统一起来进行编号,即包括在1MB 的存储器空间中:看作存储器单元,每个端口占用一个存储单元地址。该方式主要优点是不需要专门的I/O指令,对I/O端口操作的指令类型多;缺点是端口要占用部分存储器的地址空间,不容易区分是访问存储器还是外部设备。

IO端口的作用?

I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口、状态端口和控制端口,若干端口加上相应的控制逻辑电路组成接口。通常,CPU能对数据端口执行读写操作、但对状态端口只能执行读操作,对控制端口只能执行写操作。

注意区分接口和端口:接口可以看作两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。IO接口有选址功能,传送命令功能,传送数据功能,反应I/O设备工作状态功能

请说出什么是计算机系统结构?什么是计算机组成?什么是计算机实现?他们之间的相互关系是什么?

计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。包括指令集、数据类型、存储器寻址技术等,大都属于抽象的属性。计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。确定主存周期、逻辑上是否采用并行主存、逻辑设计等。

计算机实现是计算机组成的物理实现。如选择存储芯片类型、微组装技术、线路设计等。

计算机组成是计算机系统结构的逻辑实现。一种体系结构可以有多种组成。

一种组成可以有多种实现。

什么是Cache的透明性?有哪些方法可用来实现Cache的透明性?

Cache 的透明性指cache功能的具体实现对程序员不可见。程序员不需要理解其内部实现原理。

Cache的功能主要采硬件实现)以实现透明性。

请尽你所能说明访问页式虚拟存储器的整个过程

中央处理器访问主存的逻辑地址分解成页号a和页内地址b,并对页号a进行地址变换,即将逻辑页号a作为索引,先查找快表。

若找到要访问的页,便修改页表项中的访问位。然后利用页表项中给出的物理块号和页内地址形成物理地址。

若在快表中未找到该页的页表项,应到内存中去查找页表,再对比页表项中的状态位,看该页是否已调入主存,未调入则产生缺页中断,请求从外存把该页调入主存。

若内存中没有空闲块.还需根据页面置换算法淘汰某页。

最后将得到的物理页号同页内地址组合得到物理地址,根据物理地址从主存中存取必要的信息。

什么是总线接口?什么是(为什么)外围设备必须通过总线接口连到系统总线上?

总线接口:连接在总线上的设备与总线的连接电路;

外设的速度与CPU 的速度不匹配。接口可以看作两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。IO接口有选址功能,传送命令功能,传送数据功能,反应I/O设备工作状态功能

单总线的优缺点,总线发展趋势?

采用简单的单总线结构,虽然可以构成计算机系统,但是它的信息吞吐量受到限制,工作效率和计算机的使用范围受到很大的限制。随着对微机性能越来越高的要求,现代微机的体系结构已不再采用单总线或双总线的结构,而是采用更复杂的多总线结构。

什么是指令、微指令、程序、微程序?请说明指令与微指令之间的关系。

指令:指挥机器工作的指示和命令 微指令:若干微命令的集合,存放微指令的控制存储器的单元地址称为微地址 程序:一系列按一定顺序排列的指令 微程序:实现一条机器指令功能的微指令序列。 关系:

①一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。因此,一条机器指令的功能是若干条微指令组成的序列来实现的。简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。

②指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器(它是微程序控制器的一部分。微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三部分组成。其中,微指令寄存器又分为微地址寄存器和微命令寄存器两部分)有关,与此相关也有相对应的硬设备。

③从一般指令的微程序执行流程图可似看出。每个CPU 周期就对于一条微指令。这就告诉我们怎么设计微程序,也将使得我们进一步体验到机器指令很微指令的关系。

为什么从上层软件角度观察计算机的指令执行是不可打断的?

从上层软件角度观察,计算机的指令执行是不可打断的,主要因为指令的原子性、中断和上下文切换的透明性、编程语言和抽象层次的屏蔽、同步机制的使用,以及软件设计的假设。这些因素共同作用,使得软件在处理和执行指令时可以假设每个指令的执行是一个完整而不可分割的过程,从而简化了并发和错误处理的复杂性。

计算机的指令被设计为原子操作(atomic operation),即一条指令在执行过程中不可分割。指令要么完全执行,要么完全不执行,不会出现部分执行的情况。这种原子性保证了指令的执行是一个完整的过程。

在硬件层面,CPU执行指令时通过指令周期(fetch, decode, execute)来处理每一条指令。这些步骤对软件是透明的,软件只看到指令要么完成,要么未完成。

虽然硬件层面可以通过中断机制打断指令的执行,但从软件角度看,中断只在指令边界处发生。中断处理程序会保存当前指令的上下文,并在中断处理完成后恢复执行。这使得从软件视角看,指令执行没有被打断,保持了连续性。

多任务操作系统中,任务切换发生在指令之间,而不是指令内部。操作系统调度器确保每次切换时保存和恢复任务状态,使得每个任务的指令执行过程在其视角内是完整的。

高级编程语言(如C、Java、Python等)中的操作被编译器翻译成多条底层机器指令。程序员在使用这些高级语言时,不需要关心底层指令的细节,而是看到语言级别的操作作为一个整体。

程序抽象层次屏蔽了底层的指令细节和可能的中断。在编写和调试代码时,开发者关注的是逻辑层次的操作序列,而这些操作序列通过编译器和操作系统的管理,被映射为连续的指令执行。

为了保证并发环境下的正确性,上层软件通过锁、信号量、屏障等同步机制来控制并发执行。这些机制利用了指令的原子性,确保关键区段的操作是不可被打断的,从而维持数据一致性。

编译器和CPU提供内存屏障指令来控制内存访问顺序,确保在多处理器系统中的一致性。这些屏障指令提供了一种机制,使得从软件角度看,关键操作是不可打断和顺序一致的。

微周期,微命令,微操作,微指令,微程序,指令,程序的概念

  • 微周期:从控制存储器读取一条微指令并执行相应操作所需的时间。一个微周期通常包含若干个时钟周期,也就是CPU的节拍
  • 微命令:构成控制信号序列的最小单位。控制部件通过控制线向执行部件发出的控制命令称为微命令。每一个微操作都需要在对应的微命令控制下完成
  • 微操作:由微命令控制实现的最基本操作。执行部件接受微命令后进行的操作称为微操作。完成一条机器指令是通过完成一个微操作序列实现的,这些微操作是计算机中最基本、不可再分解的操作
  • 微指令:每个微周期的操作所需的微命令组成一条微指令。微指令是若干微命令的集合。一条微指令通常至少包含两大部分信息:操作控制字段,显示了这条微指令是由哪些微操作构成的;顺序控制字段,用于控制产生下一条将要执行的微指令的地址。
  • 微程序:一条机器指令对应一个微程序。微程序是若干微指令的集合。微程序是用微指令编写的微程序设计技术。微程序的执行过程就是从控制存储器中依次读取微指令并执行相应的微操作的过程
  • 指令:指令是要计算机执行某种操作的命令。指令是机器语言的基本单位,由操作码和操作数组成。指令的执行过程分为取指、译码、执行、写回等阶段。
  • 程序:程序是一系列指令的有序集合。程序是用某种编程语言编写的,可以是机器语言、汇编语言、高级语言等。程序的执行过程就是按照程序的逻辑顺序,从存储器中取出指令并执行的过程

从C语言到可执行文件的转换需要经过几个步骤:

  • 预处理:预处理器(cpp)根据以 # 字符开头的命令,修改原始的C程序,例如展开头文件、替换宏、去除注释等,生成一个.i文件。
  • 编译:编译器(cc1)将.i文件翻译成汇编语言程序,进行词法分析、语法分析、语义分析、符号汇总等,生成一个.s文件。
  • 汇编:汇编器(as)将.s文件翻译成机器语言指令,打包成一种叫做可重定位目标程序的格式,生成一个.o文件。
  • 链接:链接器(ld)将.o文件与其他目标文件或库文件合并,解决符号引用和重定位问题,生成一个可执行文件。

使用硬件实现浮点数运算和软件实现浮点数运算分别有何优缺点?

  • 硬件实现浮点数运算的优点是速度快,精度高,可以利用专门的浮点运算单元(FPU)来执行浮点运算,不需要用整数运算来模拟浮点运算。硬件实现浮点数运算的缺点是消耗资源多,成本高,需要在芯片中集成FPU,或者使用外接的FPU,这会增加芯片的面积和功耗。
  • 软件实现浮点数运算的优点是消耗资源少,成本低,不需要额外的硬件支持,只需要用整数运算来模拟浮点运算,可以在没有FPU的芯片上运行。软件实现浮点数运算的缺点是速度慢,精度低,需要用复杂的算法来处理浮点数的表示、运算和舍入等问题,会占用更多的CPU时间和内存空间。

存储芯片内的地址译码方法有哪些?

  1. 线选法:适用于地址线较少的芯片,地址信号只需要经过一个方向的译码就可以选中某个单元的所有位。
  2. 重合法:适用于地址线较多的芯片,地址线分为两组,分别经过行、列两个方向进行移码,只需要行、列两个方向均被选中的存储元才能读写信息。

多体结构存储器为什么能够提高访存速度(原理)

将存储器分成若干独立的模块,每个模块的容量和存取周期相等。且可以独立的进行读写操作。

若将这些模块按高位交叉编制,可以使不同的请求源同时访问。不同的模块便可提高访存速度。

若按低位交叉编制是存储器在不改变存取周期的前提下,增加存储器带宽。

指令cache和数据cache分离后的好处

分离之后取指令和取数到不同的cache中寻找,指令流水线中取址部分和取数部分可以避免冲突,从而减少了指令流水线的冲突。