什么是冯诺伊曼结构?
A:有五个特点:
1.由运算器,存储器,控制器,输入输出这五大部件组成
2.指令和数据以二进制形式存储在存储器中
3.整个系统以运算器为中心
4.指令有操作码和地址码
5.指令按顺序存在,以按一定顺序输出
冯诺依曼机的存储思想
主要有三点:
(1)计算机硬件组成应为五大部分:控制器,运算器,存储器,输入和输出;
(2)存储程序,让程序来指挥计算机自动完成各种工作;
(3)计算机运算基础采用二进制;
存储程序?
“存储程序”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的 首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
在计算机系统结构中,什么是编译?什么是解释?
翻译的方式有两种,一个是编译,一个是解释。
编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件, 比如exe文件,如果源程序不变以后要运行的话就不用重新翻译。
解释则不同,解释性语言的程序不需要编译,在运行程序的时候才翻译,翻译一句执行一句,不 生成目标程序,这样解释性语言每执行一次就要翻译一次,效率比较低。
描述一下指令执行过程?
取指令,分析指令,执行指令。
计算机的工作过程?
计算机的工作过程分为以下三个步骤:
1) 把程序和数据装入主存储器。
2) 将源程序转换成可执行文件。
3) 从可执行文件的首地址开始逐条执行指令。
计算机主要性能指标
机器字长、数据通路带宽、主存容量、运算速度。
运算速度包括:吞吐量和响应时间、主频和CPU周期、CPI等
主频高的cpu一定比主频低的cpu快吗?
不一定,计算机运算速度,cpu的主频只是其中一个指标。没有明显的公式表明。主频越高计算速度越快。
指令字长、机器字长、存储字长?
指令字长: - -条指令的总长度(可能会变)
机器字长:CPU进行--次整数运算所能处理的二进制数据的位数(通常和ALU直接相关) 机器字长一般等于内部寄存器的大小,它决定了计算机运算的精度
存储字长: -一个存储单元中的二进制代码位数(通常和MDR位数相同)
半字长指令、单字长指令、双字长指令 - --指令长度是机器字长的多少倍
指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则取- -条双字长指令需要两次访存
定长指令字结构:(指令系统中所有指令的长度都相等变长指令字结构:指令系统中各种指令的长度不等
奇偶校验可以纠错吗?汉明码可以纠错吗?
奇偶校验码只能检测出错误,而不能进行纠正错误;汉明码可以进行纠正错误
字在存储单元中有两种存储方式,大端方式和小端方式,分别是什么含义?
大端方式:指把字的高位存储在存储单元的低地址中,把字的低位存储在存储单元的高地址中。
小端方式:指把字的高位存储在存储单元的高地址中,把字的低位存储在存储单元的低地址中。
主存储器中,什么是MAR,什么是MDR,存储器的最大容量由什么决定?
MAR:指存储地址寄存器,保存需要访问的存储单元地址,反应存储单元的个数。
MDR:指存储数据寄存器,缓存读出或写入存储单元的数据,反应存储字长。
存储器的最大容量由MAR和MDR寄存器的位数共同决定。
多级存储系统?
寄存器->cache->主存->辅存
为了解决存储系统大容量、高速度和低成本3 个相互制约的矛盾,在计算机系统中,通常采用多级存储器结构,由上至下,位价越来越低,速度越来越慢,容量越来越大, CPU 访问的频度也越来越低。
有哪些技术能够提高CPU访存速度?
为了提高CPU 访问存储器的速度,可以采用双端口存储器、多模块存储器等技术,它们同属并行 技术,前者为空间并行,后者为时间并行。
随机存储器包含哪两大类?哪个需要刷新?请从速度,容量,价格等方面进行简要对比?
随机存储器包括:动态RAM和静态RAM。
静态RAM:采用锁存器原理实现。
动态RAM:采用电容原理实现,并且需要刷新。
相比于动态RAM,静态RAM的速度更快,容量小,价格高,一般用来做缓存,动态RAM一般用来做内存。
DRAM三种刷新方式
集中刷新、分散刷新、异步刷新
集中:用一段固定时间依次对存储器的所有行逐一刷新
分散:把对每一行的剧新分散到各个工作周期中去
异步:把对每行刷新分散到一整个刷新周期中去
时间局部性和空间局部性
时间局部性:程序当前运行的指令或用到的数据,在不久也可能会用到。因为程序有循环结构
空间局部性:某个存储单元被访问,接下来它临近的存储单元也可能被访问。因为指令是顺序存放的,数组等数据结构所占的存储空间也是连续的。
Cache中主存块的替换算法
随机替换算法、先进先出替换算法、近期最少使用替换算法、最不经常使用替换算法。
几种虚拟存储器
段式、页式、段页式
段式存储器和页式存储器的区别(操作系统层面描述)
页是信息的物理单位。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的。
段是信息的逻辑单位。分页的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。
页的大小固定且由系统决定。段的长度却不固定,决定于用户编写的程序。
分页的用户进程地址空间是一维的,程序员只需给出一个记忆符即可表示一个地址。
分段的用户进程地址空间是二维的,程序员在标识一个地址时,既要给出段名,也要给出段内地址。分段比分页更容易实现信息的共享和保护。不能被修改的代码称为纯代码或可重入代码〈不属于临界资源),这样的代码是可以共享的。可修改的代码是不能共享的
段页式存储器的特点
结合两者的特点,先把按照程序之间的逻辑结构分段,每一段再划分固定大小的页,主存空间也划分为大小相等的页,页仍然是基本单位。每个程序对应一个段表,每个段对应一个页表。虚拟地址分为段号、段内页号、页内地址三个部分。
段页式的优点是兼具页式和段氏的优点,可以实现共享和保护。缺点是地址变换中需要两次查表,开销极大。
什么是存取时间?什么是存取周期?二者相比哪个更大一些?
存取时间:存储器完成一次操作(读或写)所需要的时间。
存取周期:存储器完成两次操作多需要的最小时间间隔。二者相比存取周期的更大,存取周期包括存取时间
什么是形式地址和有效地址?寻址方式包含哪两大类?
形式地址:地址码字段通常不代表操作数的真实地址,称为形式地址,记为A
有效地址:操作数的真实地址,记为EA,由寻址特征和形式地址来共同决定。
寻址方式分为两大类:指令寻址和数据寻址。
指令寻址是指下一条要执行的指令的指令地址;
数据寻址是指本指令操作数的地址。
指令寻址
顺序寻址:通过程序计数器PC加1,自动形成下一条指令的地址
跳跃寻址:通过转移类指令直接或间接给出下一条指令的地址
数据寻址
隐含寻址:操作数地址不明显给出,隐含在指令中
立即寻址:给出的不是操作数的地址,而是操作数本身
直接寻址:直接给出操作数的真实地址
寄存器寻址:直接给出操作数所在的寄存器编号
寄存器间接寻址:给出存有操作数所在主存单元的地址的寄存器编号
相对寻址:把程序计数器PC的内容加上指令格式中的形式地址
基址寻址:将基址寄存器的内容加上指令格式中的形式地址
变址寻址:将变址寄存器的内容加上指令格式中的形式地址
基址+变址寻址:基址寄存器的内容+变址寄存器的内容加上指令格式中的形式地址
堆栈寻址:从规定的堆栈中取出操作数
操作码长度有固定长度和可变长度两种,各自有什么优点?
1)固定长度:便于硬件设计,指令译码时间短;
2)可变长度:可设计出复杂的指令;
CISC和RISC(复杂指令集和精简指令集)的对比?
CISC指令数目多、字长不固定、寻址方式多、寄存器数量少、一般为徽程序控制
RISC指令数目少、字长固定、寻址方式少、寄存器数量多、一般为组合逻辑控制
CPU 的功能?
中央处理器(CPU) 由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令;运算器的功能是对数据进行加工。
CPU 的具体功能包括:
1) 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
2) 操作控制。一条指令的功能往往由若干操作信号的组合来实现。CPU 管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
3) 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
4) 数据加工。对数据进行算术和逻辑运算。
5) 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
描述指令周期
指令周期:CPU从主存中每取出和执行一条指令所需的全部时间称为指令周期。指令周期由机器周期组成,机器周期由时钟周期组成。每个指令周期内的机器周期可以不等,机器周期内的节拍数也可以不等。
指令周期可分为:取指周期、间址周期、执行周期、中断周期。每个周期都有访存,只是目的不同。间址周期是为了取操作数的有效地址,执行周期是为了取操作数。
指令的三种执行方案
单指令周期:对所有指令选用相同执行时间来完成。每条指令都在固定的时钟周期内完成,指令之间串行,指令周期取决于执行时间最长的指令执行时间。对于那些本来可以在短时间完成的指令,却要使用较长的周期来完成,会降低整个系统的运行速度。
多指令周期:不同类型的指令选用不同的执行步骤来完成,称为多指令周期。指令之间串行。
流水线方案:
计算机如何区分指令和数据
从时间上讲取指令时间发生在取值周期,取数据阶段发生在执行周期;
从空间上讲,指令取出送入控制器,数据取出送入运算器。
指令周期、机器周期、时钟周期的解释和联系
指令周期是指CPU取出并执行一条指令所需要的时间;
机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作所需的周期时间。
时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位。对应一个微操作所需的时间。
指令周期是否是一个固定值
由于计算机的各种指令执行所需的时间差异很大,所以为了提高CPU的效率,即使在同步控制器中,不同指令的指令周期长度都是不一致的。
微命令、微操作、微程序、微指令的含义
控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令叫做微命令。
而执行部件接受微命令后所执行的操作就叫做微操作。
一个指令对应一个微程序,微程序由多条微指令组成的,微指令转化成电路信号来操作各个部件,就是微命令。
微命令--》微指令--》微程序 A--》B表示由A组成B
控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令叫做微命令,是最小单位,组成微指令,而执行部件接受微命令后所执行的操作就叫做微操作。
在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令
事实上一条机器指令的功能是由许多条微指令组成的序列来实现的。这个微指令序列通常叫做微程序。
硬布线控制器和微程序控制器的比较
硬布线控制器是由逻辑电路实现的,微程序控制器是由微指令存储器和微指令寄存器组成的。
硬布线控制器速度快,在精简指令计算机上使用。微程序控制器在复杂指令计算器上应用。
微程序控制的基本概念
微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化为微程序并存入一个专门的存储器,微操作控制信号由微指令产生。
微程序控制器的工作过程
1、执行取微指令公共操作。
2、由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序入口地址,并送入CMAR
3、从CM中逐条取出对应的微指令并执行
4、执行完对应于一条机器指令的微程序后,又回到取指微程序的地址入口,继续+1执行。周而复始。
微指令是什么,它和指令的关系是什么
控制部件向其它执行部件发出的控制命令被称为微命令,一组实现一定功能的微命令的组合被称为一条微指令,许多条微指令组成的序列被称为微程序,微程序完成对指令的解释执行。指令,即机器指令。每一条指令都对应一个微程序,一个微程序中包含很多微指令,微指令可以发出多条微命令。
指令流水线
将一条指令分为多个子过程,每个子过程与其它的子过程并行执行,以提高计算机吞吐率的手段。只需要少量的硬件,就可以使计算机的运行速度提高好几倍。是计算机经常使用的并行处理技术。
什么是流水线?
把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来执行,并依靠多个功能部件并行工作来缩短程序的执行时间。
流水线越多,并行度就越高。是否流水段越多,指令执行越快?
错误,原因如下:
- 流水段缓冲之间的额外开销增大。每个流水段有一些额外开销用于缓冲间传送数据、进行各种准备和发送等功能,这些开销加长了一条指令的整个执行时间,当指令间逻辑上相互依赖时,开销更大。
- 流水段间控制逻辑变多、变复杂。用于流水线优化和存储器(或寄存器)冲突处理的控制逻辑将随流水段的增加而大增,这可能导致用于流水段之间控制的逻辑比段本身的控制逻辑更复杂。
影响流水线性能的因素
结构相关是当多条指令同一时刻争用同一资源形成冲突
解决方案:
1)暂停一个时钟周期(
2)单独设置数据存储器和指令存储器
数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的.
解决方案:(
2)暂停一个时钟周期(
2)数据旁路:把前一条指令的ALU计算结果直接输入到下 一条指令
控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的.
解决方案:(
1)延迟转移技术。将转移指令与其前面的与转移指令无关的一条或几条指令对换位置,让成功转移总是在紧跟的指令被执行之后发生,从而使预取的指令不作废。
2)转移预测技术。
为什么要使用总线?总线的两大特征是什么?
在冯诺依曼结构中,部件和部件之间都有单独连线,连线多而复杂且I/O设备的扩展很困难,从而引入了总线连接方式,将所有设备连接在一组总线上,构成设备之间的共享传输通道。
总线具有共享和分时两大特征,共享是指多个部件连接在一组总线上,都通过该总线进行数据的传输和交换;分时是指在同一时刻只能有一个部件使用总线传输信息。
引入总线结构有什么好处?
引入总线结构主要有以下优点:
1)简化了系统结构,便于系统设计制造。
2)大大减少了连线数目,便于布线,减小体积,提高系统的可靠性。
3)便于接口设计,所有与总线连接的设备均采用类似的接口。
4)便于系统的扩充、更新与灵活配置,易千实现系统的模块化。
5)便于设备的软件设计,所有接口的软件对不同的接口地址进行操作。
6)便于故障诊断和维修,同时也能降低成本。
总线的定义和特点
总线是一组能为多个部件分时共享的公共信息传输线路。分时和共享是总线的两个特点。
总线分类
片内总线、系统总线、通讯总线
系统总线又分为数据总线(双向)、地址总线(单向)、控制总线
按照时序控制方式:同步总线和异步总线;
按照数据传输格式:并行总线和串行总线
引入总线会导致什么问题,如何解决
引入总线后,总线上的设备会分时共享总线,当设备多了会产生总线冲突。应该采用总线仲裁来解决冲突。
集中仲裁的三种集中仲裁方式方式
链式查询方式;
计数器定时查询;
独立请求方式;
描述分布仲裁方式
不需要中央仲裁器,每个主模块都有自己的仲裁器。当有总线请求时,就回吧他们各自唯一的仲裁号发到仲裁总线上。
总线传输的四个阶段
申请分配阶段、寻址阶段、传输阶段、结束阶段。
描述同步和异步的优缺点
同步方式,系统采用统一的时钟周期来协调发送和接受双方的传送定时关系。时钟产生相等的时间间隔构成一个总线周期。优点是传输速度快,总线控制逻辑简单。缺点是主从设备强制同步,不能及时进行数据通信的有效性检验,可靠性差。适用于总线长度较短和总线所需部件的存取时间比较接近的系统。
异步方式,没有统一的时钟也没有固定的时间间隔,完全依靠传送双方相互制约的握手信号来实现定时控制。优点:总线周期长度可变,能保证两个工作速度相差跟大的部件可靠地通信。缺点是比同步方式控制要复杂,速度要慢一些。
异步方式的三种类型
不互锁方式;半互锁方式;全互锁方式。
简要说明单总线结构的概念以及缺点?(或者说现代计算机为什么采用多总线结构?)
单总线结构即所有的设备都连接在一组总线上,当设备通过这组总线进行信息传输时,在同一时刻只能有一个设备占用总线,单总线也就成了限制系统的因素,因此,后来的计算机采用了多总线结构,所谓多总线结构即把速度相近的设备连接在一组总线上,总线之间通过总线控制器相连。
什么是IO接口
IO接口是主机和外设的交接面,通过接口可以实现主机与外设的信息交换。由于主机和外设有很大的速度差异,所以需要接口来解决这个差异。
IO接口的功能?
1、实现主机和外设的通讯联络;
2、进行地址译码和设备选择;
3、实现数据缓冲;
4、信号格式转换;
I/O设备编址方式有哪两种?各有什么优缺点?
统一编址方式:和存储器统一进行编址,I/O地址是存储器地址的一部分,占用存储器的空间,无须专门的I/O指令。
独立编址方式:和存储器分开编址,需要专门的I/O指令。
中断响应的三个条件是什么?
①中断源有中断请求
②CPU允许中断
③一条指令执行完毕,没有特别要紧的任务
描述程序中断方式过程
工作流程:
- 中断请求
- 中断相应:
响应中断的条件
中断判优
- 中断处理:关中断、保存断点、引入中断服务程序(前三步由中断隐指令完成)、保存现场和屏蔽字、开中断、执行中断服务程序、关中断、恢复现场和屏蔽字、开中断返回断点。
中断服务程序的基本流程包括哪四部分?
1,.保护现场 2.中断服务 3.恢复现场 4.中断返回
CPU响应中断的时机?
当前指令结束之后
向量中断、中断向量、向量地址三个概念是什么关系?
1)中断向量:中断服务程序的入口地址。每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中
断服务程序入口的跳转指令构成一张表,称为中断向量跳转表。
2)向量地址:中断向量服务程序入口地址的地址。中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向
量地址或中断类型号。
3)向量中断:指一种识别中断源的技术或方式。识别中断源的目的是找到中断源对应的中断服务
程序的入口地址的地址,即获得向量地址。
中断响应优先级和中断处理优先级分别指什么?
中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为"0", 对新中断开放),若是,则中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止的中断继续处理。
程序中断和调用子程序有何区别?
两者的根本区别主要表现在服务时间和服务对象上不一样。
1) 调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL) 执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。而中断过程发生的时间一般是随机的, CPU 在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决的。
2) 子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系。
3) 主程序调用子程序的过程完全属千软件处理过程,不需要专门的硬件电路;而中断处理系统是一个软/硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。
4) 子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级数不会很大。
什么是DMA?其工作过程包括哪三部分?在DMA方式中,由于DMA接口和CPU共享主存,可能会出现两者争用主存的冲突,为了解决冲突在DMA和主存交换数据时通常采用哪三种工作方式?
DMA是直接内存访问,在主存和I/O设备之间建立独立的总线连接。
其工作过程为:预处理,数据传输,后处理。
解决冲突常用的三种方式如下:
(1)停止CPU访问主存,DMA的访问权限最高
(2)周期挪用,DMA挪用总线使用权一个或多个主存存储周期
(3)DMA和CPU交替访问,将CPU工作周期分为两部分,一部分供DMA访存,另一部分供CPU访存
CPU通过接口对外设进行控制的方式有以下几种:
I/O的方式有程序性,中断性,通道,DMA。
1.程序 I/O 方式
早期的计算机系统中, 没有中断系统,所以CPU和I/O设备进行通信,传输数据时CPU速度远快于I/O设备,于是CPU需要不断测试I/O设备,看其是否完成了传输。
2.中断驱动方式
当某进程要启动某个 I/O 设备工作时,便由 CPU 向相应的设备控制器发出一条 I/O 命令,然后立即返回继续执行原来的任务。仅当输完一个数据时,才需 CPU 花费极短的时间去做些中断处理。
3.DMA方式(直接存储器访问)
通过在I/O设备和内存之间开启一个可以直接传输数据的通路,采用DMA控制器来控制一个数据块
的传输,CPU只需在一个数据块传输开始阶段设置好传输所需的控制信息,并在传输结束阶段做进一步处理。
4.I/O通道控制方式
通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。 通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等
可以看看这个博主所写,非常详细
DMA方式与中断控制方式以及通道方式的区别
1、DMA方式和中断控制方式的主要区别
(1)中断方式是程序切换,需要保护和恢复现场;而DMA方式(总线全切换)除了开始和结尾时,不占用CPU的任何资源。
(2)对中断请求的响应时间只能发生在每条指令执行完毕时;而对DMA请求的响应时间可以发生在每个机器周期结束时。
(3)中断传送过程需要CPU的干预,而DMA传送过程不需要CPU干预,所以传输数据的效率非常高,适合高速外设的成组数据传送。
(4)DMA请求优先级高于中断请求
(5)中断方式具有对异常事件的处理能力,而DMA方式局限于完成传送数据块的I/O操作。
2、DMA方式与通道方式的主要区别
(1)DMA控制器是通过专门设计的硬件控制逻辑来实对数据传送的控制:而通道则是一个具有特殊功能的处理器,它具有自己的指令和程序,通过执行通道程序来实现对数据传输的控制,因此通道具有更强的独立处理数据输入输出的功能。
(2)DMA控制器通常只能控制一台或少数几台同类设备;而一个通道则可以同时控制多台同类或不同类的设备。