一、RISC与CISC
RISC | CISC |
---|---|
指令格式和长度通常固定 | 指令长度通常可变 |
寻址方式少而简单 | 指令类型多 |
大多指令在一个周期内执行完 | 一条指令若干周期执行完 |
利用简单的硬件电路设计出指令解码功能,易于流水线的实现 | 执行流水线作业时有较多的限制 |
只有载入和存储指令可以访问存储器,数据处理指令只对寄存器的内容进行操作,为了加速程序运算,会设定多组的寄存器,并且指定特殊用途的寄存器 | 允许数据处理指令对存储器进行操作,对寄存器的要求相对不高 |
硬布线逻辑与微程序相结合在微程序技术中 |
二、寻址方式
1.寄存器寻址
当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式
2.寄存器间接寻址
与寄存器寻址的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存(主存单元)中
3.立即寻址
操作数包含在指令中
4.直接寻址
指令中给出的地址就是操作数的有效地址,即形式地址等于有效地址。
跳转指令中的操作时即为要转向执行的指令地址,因此,应将指令中的地址码送入程序计数器(PC),以获得下一条指令的地址,从而实现程序执行过程的自动控制功能。
5.变址寻址
就是把变址寄存器Rx的内容与指令中给出的形式地址A相加,形成操作数的有效地址,即EA=(Rx)+A
6.基址寻址
将基址寄存器Rv的内容与指令中给出的位移量D相加,形成操作数的有效地址,即EA=(Rb)+D
7.相对寻址
是基址寻址的一种变通,由程序计数器提供基准地址,指令中的地址码字段座位位移量D,两者相加后得到操作数的有效地址,即EA=(PC)+D
8.间接寻址
指令中给出的地址不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址
9.隐含寻址
不是明显地给出操作数的地址,而是在指令中隐含操作数的地址
三、运行指令过程
无论运行什么指令,CPU首先需要取指令,第一个操作就是将指令地址(程序计数器PC中的内容)送往存储器地址寄存器。取值完成的微操作序列是公共的操作,与具体取值无关,取值公共操作如下:
(1)将PC中的内容送至存储器地址寄存器MAR,(PC)->MAR
(2)向主存发读命令,记作Read
(3)从主存中取出的指令送到存储器数据寄存器MDR,M(MAR)->MDR
(4)将MDR的内容送至指令寄存器IR中,(MDR)->IR
(5)将PC的内容递增,为取下一条指令做好准备,(PC)+1->PC
四、流水线
流水线的基本原理是把一个重复的过程分解为若干个子过程,前一个子过程为下一个子过程创造执行条件,每一个过程可以与其他子过程同时进行。流水线各段执行时间最长那段为整个流水线的瓶颈,一般将“最长那段时间”称为流水线的周期。
五、缓冲区
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间为5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为(152)μs;采用双缓冲区需要花费的时间为(107)μs。
计算:
(1)10 ×(10μs + 5μs)+ 2μs = 152μs
(2)10 × 10μs + 5μs + 2μs = 107μs
六、指令流-数据流
原文链接
①单指令流单数据流机器(S1SD):单处理机
SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器。
②单指令流多数据流机器(SIMD):相联处理机
SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理,以及多媒体信息处理等领域非常有效。
Intel 处理器实现的MMXTM、SSE (Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说人们现在用的单核计算机基本上都厲于SIMD机器。
③多指令流单数据流机器(MISD):流水线计算机
MISD是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有投入实际应用。
④多指令流多数据流机器(MIMD):多处理机系统
MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器。
某指令流水线由4段组成,各段所需要的时间如下图所示,连续输入8条指令时的吞吐率(单位时间内流水线所完成的任务数或输出的结果数)为(8/28Δt)
计算:
8×3Δt+1Δt+2Δt+1Δt=28Δt
吞吐率:8/28Δt
七、指令寄存器
指令寄存器是CPU中的关键寄存器,其内容为正在执行的指令,显然其位数取决于指令字长。