1.3 典型习题和题例分析与解答
题 1.1 有一个经解释实现的计算机,可以按功能划分成 4 级。每一级为了执行一条指令
需要下一级的 N 条指令解释。若执行第 1 级的一条指令要 K ns 时间,那么执行第 2、第
3、第 4 级的一条指令各需要用多少时间?
[分析] 计算机按功能 分成级时,最底层是第 l 级,向上依次为第 2、第 3 和第 4 级;解
释方式的执行是在低级机器级上用它的一串语句或指令来仿真高一级机器级上的一条语 句
或指令的功能,而且是通过对高级机器级程序中的每条语句或指令逐条加以解释来实现的。
[解答] 执行第 2、第 3、第 4 级的一条指令各需 KN ns、KN
2
ns、KN
3
ns 的时间。
题 1.2 操作系统机器级的某些指令就用传统机器级的指令,这些指令可以用微程序直接
实现,而不必由操作系绕自己来实现。你认为这样做有哪些好处?
[解答] 这样做,可以加快操作系统中操作命令解释的速度,同时也节省了存放解释操作
命令这部分解释程序所占的存贮空间,简化了操作系统机器级的设计,也有利于减少传统
机器级的指令条数。
题 1.3 有一个计算机系统可按功能分成 4 级,各级的指令都不相同,每一级的指令都比
其下一级的指令在效能上强 M 倍,即第 i 级的一条指令能完成第 i-1 级的 M 条指令的计算
量。现若需第 i 级的 N 条指令解释第 i+l 级的一条指令,而有一段第 l 级的 程序需要运行的
时间为 K s,问在第 2、3 和 4 级上一段等效的程序各需要运行多长时间?
[分析] 因为从功能意义上讲,第 i 级的一条指令能完成第 i-1 级的 M 条指令的计算量,
但第 i 级的一条指令的执行,都是靠第 i-1 级的 N 条指令的执行来解释完成。已知,第 1 级
的一段程序运行时间为 K s。第 2 级的一段程序从功能等效上讲,所需的指令条数应当是第
1 级上指令数的 1/M。而由第 1 级解释时又需要执行 N 条指令,所以,第 2 级一段等效程序
的运行就需要 K· 的时间。第 3、4 级则可依次类推。
[解答] 第 2、3 和 4 级上的一段等效程序分别需要 K· 、K· s 和 K· 的时
间。
题 1.4 硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。
[解答] 硬件和软件在逻辑功能上是等效的。在原理上,用软件实现的功能完全可以用硬
件或固件(微程序解释)来完成。用硬件实现的功能也可以通过用软件进行模拟来完成,只
是反映在速度、价格、实现的难易程度上,这两者是不同的。
例如,编译程序、操作系统等许多用机器语言软件子程序实现的功能完全可以用组合电
路硬件或微程序固件来解释实现。它们的差别只是软件实现的速度慢,软件的编制复杂,
编程工作量大,程序所占的存贮空间量较多,这些都是不利的;但是,这样所花硬件少,
硬件实现上也就因此而简单容易,硬件的成本低,解题的灵活性和适应性较好,这些都是
有利的。又如,乘除法运算可以经机器专门设计的乘法指令用硬件电路或乘除部件来实现
也可以通过执行一个使用相加、移位、比较、循环等机器指令组成的机器语言子程序来实
现。向量、数组运算在向量处理机中是直接使用向量、数组类指令和流水或阵列等向量运
算部件的硬件方式来实现,但在标量处理机上也可以通过执行用标量指令组成的循环程序
的软件方式来完成。
浮点数运算可以直接通过设置浮点运算指令用硬件来实现,也可以用两个定点数分别表
示浮点数的阶码和尾数,通过程序方法把浮点数阶码和尾数的运算映象变换成两个定点数
的运算,用于程序软的方式来实现。十进制数的运算可以通过专门设置十进制运算类指令