精华内容
下载资源
问答
  • 如何编写微指令
    千次阅读
    2021-07-16 00:40:57

    西北工业大学《计算机组成原理实验报告》

    计算机组成原理实验报告

    时间: 2012.11.26 地点: 实验大楼4楼北 成绩:

    班级: xxxxxx 学号: xxxxxx 姓名: xx

    班级: xxxxxx 学号: xxxxxxx 姓名: xx

    题目: 微程序控制器实验

    一、 实验目的:

    1. 掌握微程序控制器的组成原理;

    2. 掌握微程序的编制、写入,观察微程序的运行过程。

    二、 实验内容及要求:

    3. 熟悉微指令的编写方式,编码格式,了解机器指令与微指令之间的关联。

    4. 设计微指令,以实现从存储器中读出8位二进制数并进行加法计算的功能。

    三、 实验步骤、观察与思考:

    实验步骤:

    1. 连线,将实验电路板上的所需单元用排线连接起来,以实现数据通路。

    2. 对微控制器的读写操作

    (1) 手动读写:(默认为已实现线路连接)

    进行手动读或写,都需要手动给出地址,系统专门安排了一个ADDR单元,作为地址输入。ADDR单元实为一个加减计数器。当开关为“加1”挡时,在T2的下沿计数器进行加1计数;当开关为“减1”挡时,在T2的下沿计数器进行减1计数;当开关置为“置数”挡时,计数器置初值,其作用相当于直通,SA7…SA0的输出值就是二进制开关组的值。

    在实验中选择什么挡位,取决于写入数据的地址是否连续,如果是连续地址,选择“加1”或是“减1”挡会方便一些。如果是离散地址,选择“置数”挡会方便一些。

    1) 手动对微控制器进行编程(写)。

    a. 修改连线,以方便实现手动控制(完成读写操作后恢复);

    b. 将MC单元编程开关置为“编程”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡。

    c. 使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC单元的MA5…MA0微地址灯显示。

    d. CON单元SD27…SD20,SD17…SD10,SD07…SD00开关上置24位微代码,待写入值由MC单元的M23…M0 24位LED灯显示。

    e. 启动时序电路(按动一次TS按钮),即将微代码写入到EEPROM2816的相应地址对应的单元中。

    f. 重复c,d,e三步,将所需写入的微代码写入到2816芯片中(二进制微代码在表一中列出)。

    2) 手动对微控制器进行校验(读)。

    a. 接线方法和编程一样。

    b. 将MC单元编程开关置为“校验”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡。

    c. 使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC单元的MA5…MA0微地址灯显示。相应地址单元的数据将会被读出,并在MC单元的M23…M0 24位LED灯显示。重复本步,检查2816芯片中相应地址单元的数据是否和所设计的微代码二进制数据相同,如果不同,则说明写入操作失败,应重新写入。

    (2) 联机读写。

    1) 将微程序写入文件。微指令格式如下:

    $M 1F 112233

    其中,间隔用四个空格,微指令地址为两位十六进制,伪指令值为六位十六进制,按顺序为高、中、低。

    分号为注释符

    2) 写入微程序:

    用联机软件的“转储装载数据”功能将该格式文件(*.TXT)装载入实验系统。装入过程中,在软件的输出区的“结果”栏会显示装载信息。

    3) 校验位程序:

    选择联机软件的“转储刷新指令区”可以读出下位机所有的机器指令和微指令,并在指令区显示。检查微控制器相应地址单元的数据是否与设计的微指令相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令。

    3. 运行微程序

    微程序设计:

    微指令格式:

    23

    22

    21

    20

    19

    18~15

    14~12

    11~9

    8~6

    5~0

    M23

    M22

    WR

    RD

    IOM

    S3~S0

    A字段

    B字段

    C字段

    MA5~MA0

    加法指令ADD:R0的数据与存储器某个单元的数据相加,结果送到R0。

    输入指令IN

    输出指令OUT

    停机指令HTL

    表 1二进制数微代码表

    地址

    十六进制

    高五位

    S3-S0

    A字段

    B字段

    C字段

    MA5-MA0

    00

    000001

    00000

    0000

    000

    000

    000

    000001

    01

    007070

    00000

    0000

    111

    000

    001

    110000

    04

    006D45

    00000

    0000

    110

    110

    101

    000101

    05

    106006

    00010

    0000

    110

    000

    000

    000110

    06

    102007

    00010

    0000

    010

    000

    000

    000111

    07

    053201

    00000

    1010

    011

    001

    000

    000001

    08

    106009

    00010

    0000

    110

    000

    000

    001001

    09

    200401

    00100

    0000

    000

    010

    000

    000001

    0A

    10600B

    00010

    0000

    110

    000

    000

    001011

    0B

    103001

    00010

    0000

    011

    000

    000

    000001

    30

    001404

    00000

    0000

    001

    010

    000

    000100

    31

    006D48

    00000

    0000

    110

    110

    101

    001000

    32

    00140C

    00000

    0000

    001

    010

    000

    001100

    33

    00141C

    00000

    0000

    001

    010

    000

    011100

    34

    006D4A

    00000

    0000

    110

    110

    101

    001010

    35

    001420

    00000

    0000

    001

    010

    000

    100000

    $M 00 000001 ; NOP

    $M 01 006D43 ; PC->AR,PC加1

    $M 03 107070 ; MEM->IR, P<1>

    ADD:$M 30 001404 ; R0->A 实现相加

    $M 04 006D45 ; PC->AR

    $M 05 106006 ; MEM->AR

    $M 06 102007 ; MEM->B

    $M 07 053201 ; A加B->R0

    STA:$M 31 006D48 ; PC->AR 实现存数

    $M 08 106009 ; MEM->AR

    $M 09 200401 ; R0->MEM

    LAD:$M 34 006D4A ; PC->AR 实现取数

    $M 0A 10600B ; MEM->AR

    $M 0B 103001 ; MEM->R0

    IN:$M 32 183001 ; IN->R0 实现in->R0

    OUT:$M 33 280401 ; R0->OUT 实现R0->out

    HTL:$M 35 000035 ; NOP 停机

    四、 结论:

    我们在本次试验中实现了对存储器读写,首先IN单元输入10011001到MEM(0), IN单元输入10010110到MEM(1),经过CPU对MEM的读取,(地址线手动给出)实现了结果输出结果00101111(FC=1)在OUT单元上显示2F,FC=1

    根据我们的设计,我们的微程序对应机器指令如下:

    助记符

    机器指令码

    说明

    ADD

    0000 0000

    R0 + MEM R0

    IN

    0010 0000

    IN R0

    OUT

    0011 0000

    RO OUT

    HLT

    0101 0000

    停机

    五、 实验心得:

    这次试验中,我们收获颇丰,熟悉了微程序控制器的使用方法,了解了其内部的逻辑结构,以及设计微程序时机器指令与微程序的对应方式,另外,对于微指令格式有了一个更深入的认识。

    实验前,我们做了预习工作,但实际操作时,仍有些不当的地方,经两个人的努力,最终攻破许多难关。

    4

    展开阅读全文

    更多相关内容
  • CPU微指令相关概念

    千次阅读 2021-02-20 12:49:05
    第1章 程序控制器 程序控制器是一种控制器,同组合逻辑控制器相比较,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的组合逻辑控制器,并已被广泛地应用。在计算机系统中,...

    第1章 微程序控制器

    微程序控制器是一种控制器,同组合逻辑控制器相比较,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的组合逻辑控制器,并已被广泛地应用。在计算机系统中,微程序设计技术是利用软件方法来设计硬件的一门技术 。

    中文名 微程序控制器
    外文名 Microprogram controller
    基本思想 按照通常的解题程序的方法
    优 点 规整性、灵活性、可维护性
    设计技术 利用软件方法来设计硬件
    定 义 采用微程序控制方式的控制器

    1.1 定义

    采用微程序控制方式的控制器称为微程序控制器。所谓微程序控制方式是指微命令不是由组合逻辑电路产生的,而是由微指令译码产生。一条机器指令往往分成几步执行,将每一步操作所需的若干位命令以代码形式编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。在设计CPU时,根据指令系统的需要,事先编制好各段微程序 ,且将它们存入一个专用存储器(称为控制存储器)中。微程序控制器由指令寄存器IR、程序计数器PC、程序状态字寄存器PSW、时序系统、控制存储器CM、微指令寄存器以及微地址形成电路、微地址寄存器等部件组成。执行指令时,从控制存储器中找到相应的微程序段,逐次取出微指令,送入微指令寄存器,译码后产生所需微命令,控制各步操作完成。

    1.2 基本概念

    微命令和微操作
    微命令:控制部件通过控制线向执行部件发出的各种控制命令。它构成控制信号的最小单元 [1] 。
    微操作:执行部件接受微命令后所进行的操作。它是由微命令实现的最基本操作 [1] 。
    控制部件与执行部件通过控制线和反馈信息进行联系。
    微指令和微程序
    微指令,在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合。
    微程序,实现一条机器指令功能的许多条微指令组成的序列。
    控制部件与执行部件通过控制线和反馈信息进行联系。
    CPU周期与微指令周期的关系
    在串行方式的微程序控制器中:微指令周期 = 读出微指令的时间 + 执行该条微指令的时间
    一个CPU周期为0.8μs,它包含四个等间隔的节拍脉冲T1—T4,每个脉冲宽度为200ns。用T4作为读取微指令的时间,用T1+T2+T3时间作为执行微指令的时间。例如,在前600ns时间内运算器进行运算,在600ns时间的末尾运算器已经运算完毕,可用T4上升沿将运算结果打入某个寄存器。与此同时可用T4间隔读取下条微指令,经200ns时间延迟,下条微指令又从只读存储器读出,并用T1上升沿打入到微指令寄存器。如忽略触发器的翻转延迟,那么下条微指令的微命令信号就从T1上升沿起就开始有效,直到下一条微指令读出后打入微指令寄存器为止。因此一条微指令的保持时间恰好是0.8μs,也就是一个CPU周期的时间。 [2]

    1.3 组成

    微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。
    控制存储器
    控制存储器用来存放实现全部指令系统的微程序,它是一种只读存储器。若指令系统中有多少条机器指令,就有多少微程序。一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令……。读出一条微指令并执 行微指令的时间总和称为一个微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。 [3]
    微指令寄存器
    微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。 [3]
    地址转移逻辑
    在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。 [3]

    1.4 控制原理

    微程序控制的基本思想,就是仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里.当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作 。
    微程序控制的基本原理是:
    (1)将机器指令分解为基本的微命令序列,在制造CPU时固化在控制存储器CM中,执行一条机器指令时,CPU依次从CM中取出微指令产生微命令。
    (2)一条微指令包含的微命令控制实现一步(一个节拍)操作,若干条微指令组成一小段微程序解释执行一条机器指令。 [1]

    1.5 执行过程

    (1)根据计算机给出的第一条微指令的地址,从控制存储器中取出第一条微指令。
    (2)微指令由操作控制部分和顺序控制部分组成。操作控制部分产生微操作控制信号,控制执行部分完成规定的操作。顺序控制部分中的直接顺序控制部分放入微地址寄存器,顺序控制部分的P字段和执行部件反馈的状态条件信息决定修改微地址寄存器中的值。
    (3)按地址寄存器中的值从控制存储器中取出下一条微指令,继续第二步,如此循环,直到全部指令执行完毕。

    1.6 设计步骤

    微程序控制器的设计步骤如下:
    (1)根据CPU的结构图描述出每条指令的微操作流程图并综合成总的流程图;
    (2)用混合控制法对微命令进行编码;
    (3)选择合适的控制和时序;
    (4)选用微程序的顺序控制方式为微指令安排微地址;
    (5)画出微程序控制器组成框图。 [4]

    1.7 组合逻辑控制器和微程序控制器的比较

    组合逻辑控制器和微程序控制器,除了操作控制信号的形成方法和原理有差别外,其余的组成部分上没有本质的区别。最显著的差别可归纳为如下两点:
    实现方式
    微程序控制器的控制功能是在存放微程序的控制存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,而组合逻辑控制器由逻辑电路实现。前者电路比较规整,各条指令控制信号的差别反映在控制存储器的内容上,因此无论是增加或修改(包括纠正设计中的错误或升级)指令,只要增加或者修改内容即可。组合逻辑控制器先用逻辑表达式列出,精简化后用逻辑门电路实现,因而显得零乱复杂,当需要增加或修改指令时很麻烦甚至不可能,因此微程序控制器得到了广泛应用,尤其是指令系统复杂的计算机,一般都采用微程序控制器。 [1]
    性能
    在同样的工艺条件下,微程序控制的速度比组合逻辑电路速度低,因为执行每条微指令都要从控制存储器(CM)中读取一次,影响了速度,而组合逻辑电路的速度主要取决于电路延迟,因而在高速或超高速计算机中,对影响速度的关键部分如CPU,往往采用组合逻辑电路。近年来,一些新的计算机系统如RISC(精简指令计算机),选用了组合逻辑控制器。 [1]

    1.8 参考资料

    1. 李捍东主编 .微机原理与接口技术.重庆:重庆大学出版社,2004:49-51
    2. 微程序控制器 .湖南学院网[引用日期2012-10-12]
    3. 宋红主编.计算机组成原理 .北京:中国铁道出版社,2008:102-103
    4. 陈琳琳编著.计算机组成原理答疑解惑与典型题解.北京:北京邮电大学出版社,2015:190-190

    第2章 微指令

    本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
    微指令是指在微程序控制的计算机中,同时发出的控制信号所执行的一组微操作。微指令是由同时发出的控制信号的有关信息汇集起来形成的。将一条指令分成若干条微指令,按次序执行就可以实现指令的功能。若干条微指令可以构成一个微程序,而一个微程序就对应了一条机器指令。
    中文名 微指令
    外文名 microinstruction
    作 用微程序控制
    定 义 实现一定操作功能的微命令的组合
    领 域 计算机
    格 式 水平型微指令和垂直型微指令

    2.1 定义编辑

    微指令是指在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合 [1] ,描述微操作的语句。微命令是指控制部件通过控制线向执行部件发出各种控制命令。操作微指令是描述受控电路的操作语句 , 分支微指令是描述控制电路的分支语句。
    一条机器指令的功能是若干条微指令组成的序列来实现的,即一条机器指令所完成的操作分成若干条微指令来完成,由微指令进行解释和执行,这个微指令序列通常叫做微程序。微指令的编译方法是决定微指令格式的主要因素。考虑到速度,成本等原因,在设计计算机时采用不同的编译法 。因此微指令的格式大体分成两类:水平型微指令和垂直型微指令。

    2.2 类型

    水平型微指令
    一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。水平型微指令的一般格式如下:控制字段,判别测试字段和下地址字段。按照控制字段的编码方法不同,水平型微指令又分为三种:一种是全水平型(不译法)微指令,第二种是字段译码法水平型微指令,第三种是直接和译码相混合的水平型微指令。
    垂直型微指令
    微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。垂直型微指令的结构类似于机器指令的结构.它有操作码,在一条微指令中只有l-2个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多 .它是采用较长的微程序结构去换取较短的微指令结构。
    水平型微指令与垂直型微指令的比较
    (1)水平型微指令并行操作能力强,指令高效,快速,灵活,垂直型微指令则较差。
    (2)水平型微指令执行一条指令时间短,垂直型微指令执行时间长。
    (3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。
    (4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。

    2.3 规范化描述

    规范化描述就是在指令系统的微指令描述中尽量减小语句使用的随意性,使整个指令系统的描述具有较强的规律性,并使微操作集中的元素最少。事实上只要微指令描述合理规范,从微程序设计角度来看,所描述的功能都是可以通过ASIC技术实现的。在一条指令的描述中, 指令的微操作步数必须与指令所需的时钟周期数相吻合,分配好各微指令序列所占的时钟数,安排好各微指令组和各微指令序列在整个控制序列中的位置,这是指令系统规范化描述的基础。在同类指令的描述中, 完成相同微功能的微指令序列所占的时钟周期数必须相同, 在控制序列中的分配位置必须合理。例如字除法指令比字节除法指令多8个状态周期,因此每位除法只能占用一个状态周期。再例如操作数长度相同的有符号数除法指令和无符号数除法指令相比多增加 4个状态周期,因此有符号除法中被除数和除数、商和余数的符号化处理,只能分别在2个状态周期中实现,且删除这4个状态周期中的所有微指令 [2] 。

    2.4 相关指令

    机器指令和微指令的关系
    一台数字计算机基本上可以划分为两大部分——控制部件和执行部件。控制器就是控制部件,而运算器、存储器、外围设备相对控制器来说就是执行部件。控制部件与执行部件的一种联系就是通过控制线。控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令叫做微命令,而执行部件接受微命令后所执行的操作就叫做微操作。控制部件与执行部件之间的另一种联系就是反馈信息。执行部件通过反馈线向控制部件反映操作情况,以便使得控制部件根据执行部件的状态来下达新的微命令,这也叫做“状态测试”。微操作在执行部件中是组基本的操作。由于数据通路的结构关系,微操作可分为相容性和相斥性两种。在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。一般的微指令格式由操作控制和顺序控制两部分构成。操作控制部分用来发出管理和指挥全机工作的控制信号。其顺序控制部分用来决定产生下一个微指令的地址。事实上一条机器指令的功能是由许多条微指令组成的序列来实现的。这个微指令序列通常叫做微程序。既然微程序是由微指令组成的,那么当执行当前的一条微指令的时候。必须指出后继微指令的地址,以便当前一条微指令执行完毕以后,取下一条微指令执行。机器指令和微指令的关系归纳如下:

    1. 一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。因此,一条机器指令的功能是若干条微指令组成的序列来实现的。简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
      2.从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器(它是微程序控制器的一部分。微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三部分组成。其中,微指令寄存器又分为微地址寄存器和微命令寄存器两部分)有关,与此相关也有相对应的硬设备。
      3.一条机器指令对应4个CPU周期,每个CPU周期就对于一条微指令。
      参考资料
    2. 白中英-.计算机组成原理:科学出版社,2012
    3. 宋琦,龚茂康. 微处理器功能的微指令描述[J]. 江苏农学院学报,1997,(01):86-90. .中国知网[引用日期2017-12-14]

    第3章 微命令

    微命令即控制部件通过控制线向执行部件发出各种控制命令 。在微指令的控制字段中,每一位代表一个微命令。
    中文名 微命令
    属 性 控制命令

    3.1 简介

    在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成"1"或"0",这样就可打开或关闭某个控制门,这就是直接控制法.
    在6.3节中所讲的就是这种方法.但在某些复杂的计算机中,微命令甚至可多达三四百个,这使微指令字长达到难以接受的地步,并要求机器有大容量控制存储器,为了改进设计出现了以下各种编译法.

    3.2 方法

    字段直接编译法
    在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(相应的控制位为"0").所谓微周期,指的是一条微指令所需的执行时间.如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的.
    例如,向主存储器发出的读命令和写命令是互斥的;又如在ALU部件中,送往ALU两个输入端的数据来源往往不是唯一的,而每个输入端在任一微周期中只能输入一个数据,因此控制该输人门的微命令是互斥的.
    选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示, 就是字段直接编译法.
    例如,将7个互斥的微命令编成一组,用三位二进制码分别表示每个微命令,那么在微指令中,该字段就从7位减成3位,缩短了微指令长度.而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令.
    字段长度与所能表示的微命令数的关系如下:
    字段长度 微命令数
    2位 2~3
    3位 4~7
    4位 8~15
    一般每个字段要留出一个代码,表示本段不发出任何微命令,因此当字段长度为3位时,最多只能表示7个互斥的微命令,通常代码000表示不发微命令.
    字段间接编译法
    字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法.
    如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法.
    本方法进一步减少了指令长度,但很可能会削弱微指令的并行控制能力,因此通常只作为直接编译法的一种辅助手段.
    字段A(3位)的微命令还受字段B控制,当字段B发出b1微命令时,字段A发出a1,1,a1,2,…,a1,7中的一个微命令;而当字段B发出b2微命令时,字段A发出a2,1,a2,2,…,a2,7中的一个微命令,仅当A为000时例外,此时什么控制命令都不产生.
    4.常数源字段E
    在微指令中,一般设有一个常数源字段E就如指令中的直接操作数一样.E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段.
    该常数有时作为操作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等.
    当前正在执行的微指令,称为现行微指令,现行微指令所在的控制存储器单元的地址称现行微地址,现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址.
    所谓微程序流的控制是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址.
    与程序设计相似,在微程序设计中除了顺序执行微程序外还存在转移功能和微循环程序和微子程序等,这将影响下址的形成.
    下面介绍几种常见的产生后继微指令地址的方法.
    (1)以增量方式产生后继微地址.
    在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址.
    机器加电后执行的第一条微指令地址(微程序入口)来自专门的硬件电路,控制实现取令操作,然后由指令操作码产生后继微地址.接下去,若顺序执行微指令,则将现行微地址主微程序计数器( PC中)+1产生后继微地址;若遇到转移类微指令,则由 PC与形成转移微地址的逻辑电路组合成后继微地址.
    (2)增量与下址字段结合产生后继微地址
    将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送 PC,否则顺序执行下一条微指令( PC+1).
    执行微程序条件转移时,决定转移与否的硬件条件有好几种.例如,“运算结果为零”,“溢出”,“已完成指定的循环次数"等.
    我们假设有八种转移情况,定义了八个微命令(BCF取3位),在图中设置计数器CT用来控制循环次数.如在执行乘(或除)法指令时,经常采用循环执行"加,移位”(或减,移位)的方法,指令开始执行时,在CT中置循环次数)每执行一次循环,计数器减1,当计数器为零时结束循环.又考虑到执行微子程序时,要保留返回微地址,因此图中设置了一个返回寄存器RR.

    展开全文
  • 微指令的设计

    2022-07-08 16:37:35
    一条微指令只能定义一个微命令,由微操作码字段规定具体功能1.2.1基本格式优点:微指令短、简单、规整,便于编写微程序; 缺点:微程序长,执行速度慢,工作效率低。1.3混合型微指令 在垂直型的基础上增加一些不太...


    1.微指令的格式
    相容性微命令:可以并行完成的微命令。
    互斥性微命令:不允许并行完成的微命令。

    1.1水平型微指令
    一条微指令能定义多个可并行的微命令。

    1.1.1基本格式

    优点:微程序短,执行速度快;
    缺点:微指令长,编写微程序较麻烦。

    1.2垂直型微指令
    一条微指令只能定义一个微命令,由微操作码字段规定具体功能

    1.2.1基本格式

    优点:微指令短、简单、规整,便于编写微程序;
    缺点:微程序长,执行速度慢,工作效率低。

    1.3混合型微指令
    在垂直型的基础上增加一些不太复杂的并行操作。

    优点:微指令较短,仍便于编写;微程序也不长,执行速度加快。

    2.微指令的编码方式
    2.1水平型微指令
    2.1.1直接编码(直接控制)方式
    在微指令的操作控制字段中,每一位代表一个微操作命令
    某位为“1”表示该控制信号有效

    比如我们想进行取址操作,将(PC)→MAR和1→R的操作控制置为1就行
    优点:简单、直观,执行速度快,操作并行性好。
    缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。

    2.1.2字段直接编码方式
    将微指令的控制字段分成若干“段”,每段经译码后发出控制信号微命令字段分段的原则:
    ①互斥性微命令分在同一段内,相容性微命令分在不同段内。
    ②每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
    ③一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。

    优点:可以缩短微指令字长 。
    缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢 。

    2.1.2.1例子
    某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?

    第1个互斥类有7个微命令,要留出1个状态表示不操作,所以需要表示8种不同的状态,故需要3个二进制位。以此类推,后面4个互斥类各需要表示4、13、6、7种不同的状态,分别对应2、4、3、3个二进制位。故操作控制字段的总位数为3+2+4+3+3 = 15 位

    若采用直接编码方式,则控制字段需要33位。

    2.1.3字段间接编码方式
    一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。
    优点:可进一步缩短微指令字长。
    缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。

    3.微指令的地址形成方式
    3.1 微指令的下地址字段指出
    微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
    3.2根据机器指令的操作码形成
    当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
    3.3增量计数器法
    类似 ( CMAR ) + 1→ CMAR
    3.4分支转移
    转移方式:指明判别条件;转移地址:指明转移成功后的去向。
    3.5通过测试网络
    3.6 由硬件产生微程序入口地址

    展开全文
  • 微程序由微指令构成,事先编写好在CM(控制存储器)中,一般是不可改写的 微指令 若干微命令的集合 存放微指令的控制存储器的单元成为微地址。 在同一CPU周期内,并行执行的一组微命令,存储在控制存储器上面,...

    微程序

    实现一条机器指令功能的微指令序列
    微程序由微指令构成,事先编写好在CM(控制存储器)中,一般是不可改写的

    微指令

    若干微命令的集合
    存放微指令的控制存储器的单元成为微地址
    在同一CPU周期内,并行执行的一组微命令,存储在控制存储器上面,称为一条微指令

    微命令&微操作

    微命令和微操作是一 一对应的。微命令是微操作的控制信号;微操作是微命令的执行过程。

    五条机器指令的微程序(IN,ADD,STA,OUT,JMP)
    控制存储器里面的五条机器指令的微程序集合(IN,ADD,STA,OUT,JMP)每个矩形方框可以理解为一个微指令

    机器指令

    当执行一条指令时,先把它从内存取到指令寄存器,
    然后再对其进行译码、执行。指令划分为操作码和地址码字段,由二进制数构成,
    为了执行任何给定的指令,必须对操作码进行测试[P(1)],通过节拍脉冲 的控制以便识别所要求的操作。
    “指令译码器”根据指令中的操作码译码强置微程序控制器单元的微地址,使下一条微指令指向相应的微程序首地址

    例如我要执行ADD指令,经过P(1)测试识别出后,强制转换的地址“11”,进行接下来的微指令

    机器指令是借助微程序(微指令)实现的。

    展开全文
  • 你要知道这些 一、术语 程序:计算机能识别和运行的指令 指令:指挥计算机工作的指示和命令(编程语言编写的语句) 机器指令:指令编译后的结果(编程语言转换为机器语言) 微指令:机器指令根据一个个操作细分后的...
  • 59微指令的格式

    千次阅读 2021-01-26 08:18:47
    缺点是微指令长,编写微程序比较麻烦。 2、 垂直型微指令。垂直型微指令的特点是采用类似机器指令操作码的方式,在微指令中设置微操作码字段,采用微操作码编译法,由位操作码规定微指令的功能,其
  • 计算机组成原理实验报告时间: 2012.11.26 地点: 实验大楼4楼北 成绩: 班级: 学号: 姓名:班级: xxxxxx 学号: xxxxxxx 姓名: xx题目: 程序控制器实验一、 实验目的:1. 掌握程序控制器的组成原理;2. ...
  • SUB指令 ADD AND DEC CLR RL RRC MOV LDI OUT LDA STA JMP JZ JC HALT
  • 实验内容: (1)观察微指令寄存器地址为31H和32H单元的内容;分析其控制功能;...(2)编制一条微指令实现“A非”运算后左移一位的值送OUT;把这条微指令放入微程序寄存器的03H单元;验证它的功能是否实现。
  • 计算机组成原理实验报告-控制器及微指令系统的操作与运用 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分成绩:实 验 报 告课程名称:计算机组成原理实验...
  • 前言:2014年12月,大二上学期,计算机组成原理课程设计,我当年亲手写了一些机器指令,甚至设计出了一些微指令(扩充指令集,写到控制存储器里面),想想都觉得我当年好厉害。。。
  • 机器指令-微指令存储&相关基本概念

    千次阅读 2018-06-10 23:02:12
    机器指令 存储位置:一般在主存中 指令格式:操作码+地址码 操作码---分为长度固定和长度可变 地址码---分为寻址地址+形式地址(指令中显示出来的地址,指明了操作数的位置。可以经过某种计算变成有效地址,也...
  • 缺点:微指令长,编写微程序较麻烦。 1.2垂直型微指令 一条微指令只能定义一个微命令,由微操作码字段规定具体功能 1.2.1基本格式 优点:微指令短、简单、规整,便于编写微程序; 缺点:微程序长,执行速度慢,工作...
  • 10.2-控制单元CU的程序设计

    千次阅读 2022-03-26 15:28:16
    2.微指令:1条微指令就是多个bit位,如8个bit,每个bit位表示一种微操作; 一条机器指令对应一个微程序; 一个微程序由多条微指令组成; 一条微指令由多个微操作组成; (因为微指令表示为多个bit位,如01000010,...
  • 关于机器指令和微指令

    千次阅读 2013-07-23 18:31:46
    我们都知道,实际上我们用高级语言编写的程序,被编译成可执行程序,存放可执行程序的文件实际就是一些机器码,可以被硬件执行。在这一步,我们称其为机器指令(Machine Instruction),而到了这一步,往往也就以为...
  • 【组成原理-处理器】程序控制器
  • 微程序与微指令和微命令In a program, we very frequently face situations where there is a need to perform the same set of task again and again. So, for that instead of writing the same sequence of ...
  • 基于程序控制器的模型计算机设计 目录目录 1 课程设计的目的课程设计的目的 1 2 课程设计要求课程设计要求 1 3 课程设计报告内容课程设计报告内容 1 1 系统主要功能 1 2 总体设计 2 3 程序控制器 3 4 汇编语言...
  • 格式: ... 有点:微指令短、简单、规整、便于编写微程序。 缺点:微程序长,执行速度慢;工作效率低。 2.水平型微指令 一条微指令定义并执行几种并行的基本操作。 有点:微程序短,执行速度快
  • • 画出微指令流程图 • 使⽤上述指令系统编写程序,实现 – INPUT读⼊数据保存到ADDR, – 将ADDR内容在OUTPUT显⽰。 – 循环往复 – 注意:INPUT读⼊到内存和内存输出到OUTPUT所使⽤的寄存器要求不是同⼀个 四、 ...
  • 计算机组成原理实验3程序控制器实验经济管理学院 信息管理与信息系统专业 班 __组 学号姓名 协作者 教师评定_____________实验题目_ 程 序 控 制 器 实 验_________________实验目的与要求:实验目的:1....
  • 丁伟学院:计算机学院班级:软件1501姓名:学号:一、项目任务本项目的任务是针对第2章所述的OpenJUC-II教学机模型机,设计控制器的程序,实现该模型机的指令系统。通过课程设计理解指令的执行过程,指令系统与硬件的关系...
  • 冯·诺依曼型计算机的基本特点是什么?答:冯•诺依曼原理的基本思想是:(1)采用二进制形式表示...(3) 指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。(4)计算机由存储器、...
  • 程序控制器

    2021-07-09 08:14:17
    程序控制器是一种控制器,同组合逻辑控制器相比较,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的组合逻辑控制器,并已被广泛地应用。在计算机系统中,程序设计技术是利用...
  • 微指令的编码与数控程序

    千次阅读 2017-03-27 21:17:02
    微指令是类似于存储程序中指令的存在,但和存储程序中的指令有所不同,后者的操作对象是内存,前者的操作对象是控制器。在一条指令读取到CPU时,会先读取其指令类型(通常为一定长度的指令类型码),控制器根据指令...
  • 计算机组成原理(3.6微程序控制器设计)-20103.6 微程序控制器...微指令格式 按数据通路各段操作划分字段,同类操作中互斥的微命令放同一字段。 (1)格式 数据通路操作 辅助操作 AI BI SM C0 S ZO EMAR R W ST SC 3 ...
  • 【组成原理系列】程序设计

    千次阅读 2020-12-20 00:04:01
    微程序设计 思想 一条机器指令对应一个微程序(存入 ROM) 框图及工作原理 机器指令对应的微程序 ...全部微指令存在 CM 中,程序执行过程中 只需读出 ...微指令的编码方式 ...将微指令的控制字段分成
  • 计算机组成原理习题 -

    千次阅读 2020-12-19 06:15:41
    每一条机器指令由一段微指令编写的微程序来解释执行 D. 一条微指令由若干条机器指令组成9微程序控制器中,机器指令与微指令的关系是______。 A. 每一条机器指令由一条微指令来执行B. 每一条机器指令由一段微指令编写...
  • 按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换成十六进制格式文件。     M23 M22 M21 M20 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,439
精华内容 12,175
热门标签
关键字:

如何编写微指令

友情链接: design-Model.rar