上海大学 计算机学院
《计算机组成原理实验》报告十三
姓 名 学 号 教师
时 间 机 位 报告成绩
实验名称:建立指令流水系统
一、实验目的
1. 了解指令流水系统的设计方式。
2. 编制一条可以流水方式运行的指令。
3. 了解指令流水执行的原理和特点。
二、实验原理
硬部件的并行工作
微指令的子操作使用的硬件(包括总线)互不相同,于是可以同时工作。这一特点表现在微指令编码上,就是各个子操作的微指令码中为低电平(有效)的都不相同,于是可以将这些子操作的微指令码合并成一个微指令,这个微指令控制各个部分硬件并行工作。
指令流水执行
把 “使用不同硬件的操作可以同时工作”的概念推广到相继的两条指令之间,就形成“指令的流水线执行模式”。
这个模式下,同一时间有多条指令各自在不同的硬件中执行,而对同一条指令而言,不同时间顺序在不同的硬件中执行,很像在流水型生产线上的产品,不同时刻顺序在不同的工位上加工。这就是指令流水模式的名称来源。
显然,要形成指令流水模式,每条指令都应该分成几个独立的子操作,当前趋指令的后几个子操作与后继指令的前几个子操作不使用同样的硬件时,系统就可设计成流水线方式。
实验箱系统的指令流水硬件基础
实验箱系统的各种基本操作我们已经熟悉,其中的很多操作可以在不同的硬件中同时执行,典型的是“取指令”的微操作,其微指令码微CBFFFF,与大多数的微操作无关。在厂家给的默认指令系统中这个操作编在了每条指令的最后一个状态,即每条指令的操作完成后就取进下一条指令。这是典型的“取指、执行、取指 ”模式。即一条指令先被“取指”,再执行其他微操作,完成后再取下一条指令。
如果一条指令的最后一个微操作与取指无关,就可以把二者合并成一个微指令,于是这个指令的最后一个微操作与取下一条指令并行进行。对下一条指令而言,其“取指”与“其他操作”在不同硬件中顺序执行——指令二级流水。
实验箱系统实现指令流水的技巧
由原理3可知:一条指令的最后一个微操作与取指无关,就可以把二者合并成一个微指令。这个原则用微操作码表述就是:
若取指令操作(CBFFFF)与它前面的微操作码没有相同的位为0,则这两个微操作码的“与”就是二者合并后的微指令。在程序中这条指令就会和它的后继指令形成二级流水模式。