CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

机器指令计算机

已有 6487 次阅读 2010-3-31 12:54 |个人分类:教学笔记|系统分类:科研笔记| 计算机体系结构, 微指令计算机, 机器指令计算机

                                                                               姜咏江
 
什么是机器指令计算机?要回答中国问题,先要说清楚什么是机器指令。所谓的机器指令是完成一定功能可带有一定格式的微程序名称,这种名称只能数表示。
 
一、机器指令解释
 
例如微指令计算机中(见我上篇博文),微指令程序:
 
1000001;x→A
 
0100001;y→B
 
0010010;x+y→O
 
 
1000001;x→A
 
0100001;y→B
 
0011010;x-y→O
 
分别确定了两个数相加和相减的基本功能。假如我们将前者用“00000001”表示,后者用“00000010”表示,我们就可以用这两个二进制数代表两个微程序,就称它们是机器指令,前者是加,后者是减。
 
这个例子中变量(寄存器)x、y是隐含的,不需要指出。如果需要指出,须将x、y编成数表示。假如这样的x、y有8个,那么就可以用3位数表示,那么这两个加、减指令就必须写成14位数,后加的6位中有3位数表示x,另外3位数表示y。我们将前面“00000001” “00000010”称为指令“操作码”,后面的6位数称为“操作数”。这样一来,机器指令的一般格式就为:操作码 操作数。
 
习惯上人们将操作码放在左面,操作数放在右面,其实怎样放都可以,只要能够识别就行。
 
一个计算机的表数位数是固定的,如何设计操作码和操作数的位数,需要统筹安排。一般来说,计算机组成越复杂,指令的格式会相应的复杂一些。
 
因为计算机是物理器件,是以逻辑电路为基础的,因而只能通过二进制数相互传递信息,也就是“计算机只能识别二进制数”。
 
二、机器指令计算机
 
机器指令的微程序是固定的。机器指令的固定微程序又叫“例行程序”。要执行一个机器指令,就必须将例行程序的每条微指令按顺序执行一遍(假如没有重复执行),这需要事先将例行程序保存在某处,并且能够按顺序送到计算机控制字上,这叫机器指令执行。简单的办法是将例行程序放到存储器中,并设法将机器指令和它的例行程序的首地址对应起来,以便能够依据机器指令迅速找到例行程序,并执行例行程序。
 
如下图1所示,依据机器指令查找例行程序,然后将微指令送到各控制线执行。
 
                                                              图 1    基本机器指令计算机
 
与微指令计算机相比,程序员只要将机器指令送到计算机的相关设备中,机器就能够执行它的例行程序,从而避免了程序员逐条输入微指令,这就是计算机指令计算机的最基本特征。
 
随着自动化执行的需求,人们将机器指令程序放到了存储器中,并设法让机器指令逐条取出执行,于是就出现了如图2所示的情况。
 
                                                             图 2    复杂机器指令计算机
 
虽然经过此番演变,程序员仍然要编写机器指令程序,因而没有改变机器指令计算机的性质。为了逐条将机器指令从程序送出,设备增加了程序计数器PC。为了找到指令的例行程序,人们增设了微程序地址译码和微程序计数器。为了加快速度,人们将例行程序选择和执行用逻辑电路来实现,因而出现了所谓的控制矩阵,进而出现了控制器。为了机器程序和数据的输入输出,人们又增设了输入输出设备,但至今为止,程序员实际的程序书写结果仍然是机器指令程序,也就是最终到达计算机程序存储器的仍然是机器指令程序。
 
三、软硬件的接口
 
我主张可以变化和移动的信息就是软件。从计算机使用的角度来看,程序员能够直接使用的信息就应改被定义成软件。不论何种方式的机器指令计算机,程序员最终都是使用机器指令来工作的,而机器指令程序向下的工作都可以使用硬件电路完成,因而软件的起点定在机器指令处比较合适。
 
对于已经成型的机器指令计算机,我们能够改变的东西只有程序和数据,而可以改变程序的最低层并不是微指令,而是机器指令,因而不能够将现在这种成型计算机的微指令程序(例行程序)称为软件,尽管可以用存储器将微程序装填进去,但在计算机运行中,这些例行程序并不变化。
对于微指令计算机来说,程序员使用的微指令是不断变化的,因而那里的微指令程序应该是软件。 
 
如果用可变与不可变来定义软硬件,那么计算机运行中一切不可改变或转移的东西,都可以称为硬件,否则就是软件。
 
2010-3-31
 






https://blog.sciencenet.cn/blog-340399-307654.html

上一篇:微指令计算机
下一篇:高级语言指令计算机
收藏 IP: .*| 热度|

1 唐常杰

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-22 21:41

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部