微程序控制器 刘鹏 Dept. ISEE Zhejiang University

Slides:



Advertisements
Similar presentations
程序的执行 程序执行和指令执行概述 数据通路基本结构和工作原理 流水线方式下指令的执行
Advertisements

建構 Beta電腦 – Fall /29/0.
案件の處理(概說) 檢察官對於偵查案件的 「總結」.
实验四 利用中规模芯片设计时序电路(二).
最新計算機概論 第3章 計算機組織.
即兴中文讲演比赛 On-Site Speech 新型比赛项目
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
数字系统设计 Digital System Design
1.1 计算机系统简介 1.2 计算机的基本组成 1.3 计算机硬件的主要技术指标 1.4 本书结构.
Hardware Chen Ching-Jung
存储器与可编程逻辑阵列 刘鹏 浙江大学信息与电子工程学院
组合逻辑 刘鹏 Mar. 17, 2015 浙江大学 信息与电子工程系
CH.2 Introduction to Microprocessor-Based Control
Chapter 5 電腦元件 目標---- 研讀完本章後,你應該可以: 閱讀有關電腦的廣告以及了解它的專業用語(行話)。
微处理器设计1 刘鹏 College of ISEE Zhejiang University
数字系统设计 I Digital System Design I
时序电路 计数器分析及设计 刘鹏 浙江大学信息与电子工程学院 April 10, 2018 EE141
第4章 处理器(CPU) 4.1 引言 4.2 逻辑设计的一般方法 4.3 建立数据通路 4.4 一个简单的实现机制 4.5 多周期实现机制.
数字系统设计 Digital System Design
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
控制器2 刘鹏 Dept. ISEE Zhejiang University Source: 补充讲义
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
memory array (2n words by m bits)
5 Computer Organization (計算機組織).
时序电路 计数器分析及设计 刘鹏 浙江大学信息与电子工程学院 March 31, 2016 EE141
The Processor: Datapath and Control
Operating System Internals and Design principles
memory array (2n words by m bits)
微程序控制器 刘鹏 Dept. ISEE Zhejiang University
数字系统设计 Digital System Design
数字系统设计复习 Digital System Design Summary
計算機結構 – 概論 陳鍾誠 於金門大學.
微处理器设计2 刘鹏 College of ISEE Zhejiang University
讲义第十章 微处理器设计.
组合逻辑3 Combinational Logic
一个非常简单的CPU的设计 1、组合逻辑控制器 2、微程序控制器.
数字系统设计 Digital System Design
数字系统设计 Digital System Design
本章主要内容 CPU的功能和组成 控制器控制原理 指令周期(★★★) 时序产生器和控制方式 硬布线控制器 微程序控制器(★★★)
邏輯設計 Logic Design 顧叔財, Room 9703, (037)381864,
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2013年5月28日
控制器 刘鹏 Dept. ISEE Zhejiang University Source: 补充讲义
时序电路设计 刘鹏 浙江大学信息与电子工程系 Apr. 24, 2011 EE141
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
CPU结构和功能.
数字系统设计 Digital System Design
版权所有,引用请注明出处 第六章、中央控制器 原著 谭志虎 主讲(改编) 蒋文斌.
Instructions: Language of the Machine
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
C语言程序设计 主讲教师:陆幼利.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
The Processor: Datapath and Control (Multi-cycle implementation)
微机原理与接口技术 西安邮电大学计算机学院 王忠民.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
计算机组成原理 课程设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
信号量(Semaphore).
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
College of Computer Science & Technology
Introduction to Computer Security and Cryptography
Chapter 8 – Memory Basics
数字系统设计 Digital System Design
Presentation transcript:

微程序控制器 刘鹏 liupeng@zju.edu.cn Dept. ISEE Zhejiang University Source: 补充讲义 May 10, 2012 ZDMC – Lec. #16 – 1

控制逻辑 数字系统的设计过程可分成两个部分: 数据路径中的寄存器传输设计和控制单元中的控制逻辑设计。控制逻辑是一个有限状态机,其米里型和摩尔型输出控制着数据路径中的操作。 控制单元的输入是外部输入,内部状态信号从数据路径反馈到控制电路。 控制电路是时序电路,可以采用我们前面概括出的时序逻辑设计步骤进行设计。我们现在提出的方法是对经典时序电路设计方法的补充。 设计方法 采用序列寄存器-计数器和译码器 采用数据选择器来设计 采用一位热位设计(每个状态一个触发器) ZDMC – Lec. #16 – 2

微程序 微程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的操作控制信号汇集一起编码成所谓的微指令,存放在一个存储单元里。系统运行时,一条又一条地读出这些微指令,从而产生系统所需要的各种操作控制信号,以控制各逻辑部件执行所规定的操作。 控制部件通过控制线向执行部件发出各种控制命令,我们把这种控制命令称为微命令,而执行部件接受微命令所执行的操作叫作微操作。 ZDMC – Lec. #16 – 3

微指令的典型结构 微指令除给出微命令信息外,还应给出测试判别信息。 微指令中还包含一个下址字段,该字段将指明存储器中下一条微指令的地址 。 EE141 微指令的典型结构 微指令除给出微命令信息外,还应给出测试判别信息。 微指令中还包含一个下址字段,该字段将指明存储器中下一条微指令的地址 。 微程序是由若干条微码指令组成的序列。 长条框内的符号×表示一个二进制位(bit)。其中微命令字段用于操作控制;×编码为1时表示有微命令,×编码为0时表示无微命令。测试判别字段和下址字段一起实现顺序控制:当测试判别字段无效时(×编码为0),下址字段信息即是下条微指令的地址;当测试判别字段有效时(×编码为1,可以有多个测试),根据反馈线来的“状态”信息对下址字段信息进行修改,修改后的地址即为下条微指令的地址。 ZDMC – Lec. #16 – 4

微程序控制器的一般结构 控制存储器存放微码程序 微命令寄存器当前微码指令的控制信息 微地址寄存器存放下条微指令的地址 地址转移逻辑 EE141 微程序控制器的一般结构 控制存储器存放微码程序 微命令寄存器当前微码指令的控制信息 微地址寄存器存放下条微指令的地址 地址转移逻辑 微地址寄存器 存放下条微指令的地址,它可由带R和S端的D触发器组成,其中R端用来清除寄存器,S端用来强置1。后者可用来修改寄存器的内容。也可以不用强置端修改,由打入端分时打入修改内容。 地址转移逻辑 微码指令由ROM读出后直接给出下一条微指令的地址,这个地址就放在微地址寄存器中。如果当前微指令的测试字段Pi标明要测试判别时,意味着微程序出现分支,即出现条件转移。此时,通过测试标志Pi和执行部件反馈的“状态条件”信号所组成的地址转移逻辑电路去修改微地址寄存器的内容,并按修改好的微地址读出下一条微指令。 ZDMC – Lec. #16 – 5

微程序控制器的设计 硬件设计和微程序编制 硬件设计选取存储器和寄存器,设计地址转移逻辑。 微程序设计需要确定微程序流程图,即控制算法流程图。 例1按照数据通路,设计微指令格式,确定微程序控制器的基本方案。假定测试判别字段有2位,下址字段有4位。 (讲义例7.11) ZDMC – Lec. #16 – 6

微程序控制器的设计例1 ZDMC – Lec. #16 – 7

微程序控制器的设计例2 数字比较系统硬件框图及ASM流程图如图7.26所示,请设计其微程序控制器。 微程序流程图 硬件框图 ASM流程图 EE141 微程序控制器的设计例2 数字比较系统硬件框图及ASM流程图如图7.26所示,请设计其微程序控制器。 由于采用控制存储器(E2PROM),流程图中无需写状态名称,每一个状态框变成一条微指令。每条微指令的右上角须写上它在E2PROM中的微地址。本题中只有四条微指令,令其地址为0000,0100,0101,1000,它们是任意安排的用4位二进制表示的微地址。 硬件框图 ASM流程图 微程序流程图 ZDMC – Lec. #16 – 8

微程序控制器的设计例2-2 微指令格式 本系统中的控制信号只有3个,所以微命令字段为3位。加上判别测试字段1位,下地址字段4位,故微指令字长度为8位。 ZDMC – Lec. #16 – 9

微程序控制器的设计例2-3 当前微地址 微指令二进制代码 微命令 判别 下地址 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 微程序 微程序控制器硬件结构 ZDMC – Lec. #16 – 10

微程序控制器的设计例3-1 采用例7.11的数据通路和图7.32所示的微指令格式,编制如下四种基本操作的微程序流程图,并完成微地址转移逻辑的设计。 00 RAMRj(2) (从RAM中取数至R2) 01 Ri(3)加Rj(4)Rj(4)(R3,R4中二数算术加) 10 Ri(6)RAM (R6中的数存入RAM) 11 Ri(7) ⊕Rj(8)(R7,R8中二数逻辑异) 假设条件: (1)四种基本操作分别用4个状态的编码(00,01,10,11)来表示,该编码值由IR0和IR1两个触发器组成的计数器提供。对应计数器的一种状态,则执行相应的一种基本操作; (2)每当一种基本操作结束时,计数器进行加数而改变状态。但操作开始前计数器的初始状态是随机的,这意味着四种操作执行的顺序可认为是随意的,但时间上必须是连续的; (3)通用寄存器的选择也是随意的; (4)向RAM中取数、存数的地址均由暂存器B给出。 ZDMC – Lec. #16 – 11

EE141 微程序控制器的设计例3-2 微程序流程图 图7.34中,每一个方框表示一条微指令。右上角的二进制码表示当前微指令的地址;右下角的数字表示下条微指令的地址(在微程序无分支情况下)或待修改的地址(在微程序有分支情况下)。最上面的第一条微指令的当前地址为0000,它是所有微程序的入口地址,这可以通过系统启动时将微地址寄存器清零来给出。第一条微指令的下地址1000是一个待修改的微地址,在P1测试时,根据IR1,IR2的状态修改微地址寄存器的最后两位触发器,从而得出1000,1001,1010,101l四个微地址,实现了四个微程序的多路并行分支。 ZDMC – Lec. #16 – 12

微程序控制器的设计例3-3 当前微地址 八进制表示的微命令(26位) P2 P1 下一微地址(4位) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 3 2 4 0 0 0 0 0 4 0 0 0 0 0 1 0 0 0 0 0 0 2 6 0 0 1 1 0 1 0 0 1 0 0 1 7 1 6 4 0 0 0 0 1 0 3 1 0 0 0 0 4 4 0 1 0 1 0 0 0 1 1 0 0 1 1 3 0 0 0 0 0 1 0 0 3 7 4 0 0 0 0 1 0 1 0 1 1 0 0 1 7 3 7 0 0 0 0 1 0 1 2 6 1 0 0 1 0 4 0 0 0 0 0 0 0 0 2 0 ZDMC – Lec. #16 – 13

Homework 阅读讲义 ZDMC – Lec. #16 – 14

Microprogramming How to organize the control signals Implement control signals by storing 1's and 0's in a ROM Horizontal vs. vertical microprogramming Horizontal: 1 ROM output for each control signal Vertical: encoded control signals in ROM, decoded externally some mutually exclusive signals can be combined helps reduce ROM length ZDMC – Lec. #16 – 15

Microprogramming Register Transfer/Microoperations 14 Register Transfer operations become 22 Microoperations: PC  ABUS IR  ABUS MBR  ABUS RBUS  AC AC  ALU A MBUS  ALU B ALU ADD ALU PASS B MAR  Address Bus MBR  Data Bus ABUS  IR ABUS  MAR Data Bus  MBR RBUS  MBR MBR  MBUS 0 PC PC + 1  PC ABUS  PC Read/Write Request AC  RBUS ALU Result  RBUS ZDMC – Lec. #16 – 16

Horizontal Microprogramming Horizontal Branch Sequencer ,  Mux bits 4 x 4 Next State bits 22 Control operation bits 40 bits total RBUS Address Bus MBR ALU B Data Bus  ABUS AC MAR MBR  MBUS PC IR PC ABUS ALU A RBUS ABUS       PC   ALU PASS B    Read/Write ALU Result   ALU ADD Data Bus Request  mux mux  MBR RBUS MBUS PC + 1 ABUS MAR MBR ABUS ABUS RBUS MBR  PC AC AC a IR b Next States A0 A1 A2 A3 ZDMC – Lec. #16 – 17

Horizontal Microprogramming Moore Processor ROM RBUS Address Bus MBR ALU B Data Bus  ABUS AC MAR MBR  MBUS PC PC ABUS ALU A IR ABUS RBUS         ALU PASS B    PC Read/Write ALU Result ALU ADD Request mux   Data Bus mux Next States   MBR RBUS MBUS PC + 1 Current State PC AC MAR MBR ABUS ABUS RBUS MBR  ABUS a b IR AC (Address) A0 A1 A2 A3 RES (0000) 0 0 0001 0001 0001 0001 1 IF0 (0001) 0 0 0010 0010 0010 0010 1 1 IF1 (0010) 0 0 0010 0010 0011 0011 IF2 (0011) 0 0 0100 0100 0011 0011 1 IF3 (0100) 0 0 0100 0100 0101 0101 1 OD (0101) 1 1 0110 1001 1011 1110 LD0 (0110) 0 0 0111 0111 0111 0111 1 LD1 (0111) 0 0 1000 1000 0111 0111 1 LD2 (1000) 0 0 0001 0001 0001 0001 1 1 ST0 (1001) 0 0 1010 1010 1010 1010 1 1 ST1 (1010) 0 0 0001 0001 1010 1010 1 AD0 (1011) 0 0 1100 1100 1100 1100 1 AD1 (1100) 0 0 1101 1101 1100 1100 1 1 AD2 (1101) 0 0 0001 0001 0001 0001 1 1 BR0 (1110) 0 1 0001 1111 0001 1111 BR1 (1111) 0 0 0001 0001 0001 0001 1 1 Alpha inputs: 0 = Wait, 1 = IR<15> Beta inputs: 0 = AC<15>, 1 = IR<14> ZDMC – Lec. #16 – 18

Horizontal Microprogramming Advantages: most flexibility -- complete parallel access to datapath control points Disadvantages: very long control words -- 100+ bits for real processors NOTE: Not all microoperation combinations make sense! Output Encodings: Group mutually exclusive signals Use external logic to decode Example: 0  PC, PC + 1  PC, ABUS  PC mutually exclusive Save ROM bit with external 2:4 Decoder ZDMC – Lec. #16 – 19

Horizontal Microprogramming Partially Encoded Control Outputs ZDMC – Lec. #16 – 20

Vertical Microprogramming More extensive encoding to reduce ROM word length Typically use multiple microword formats: Horizontal microcode -- next state + control bits in same word Separate formats for control outputs and "branch jumps" may require several microwords in a sequence to implement same function as single horizontal word In the extreme, very much like assembly language programming ZDMC – Lec. #16 – 21

Vertical Microprogramming Branch Jump Compare indicated signal to 0 or 1 Register Transfer Source, Destination, Operation 10 ROM Bits ZDMC – Lec. #16 – 22

Vertical Microprogramming ROM ADDRESS SYMBOLIC CONTENTS BINARY CONTENTS 000000 RES RT PC  MAR, PC +1  PC 0 001 011 100 000001 IF0 RT MAR  M, Read 0 100 000 101 000010 BJ Wait=0, IF0 1 000 000 001 000011 IF1 RT MAR  M, M  MBR, Read 0 100 100 101 000100 BJ Wait=1, IF1 1 001 000 011 000101 IF2 RT MBR  IR 0 011 010 000 000110 BJ Wait=0, IF2 1 000 000 101 000111 RT IR  MAR 0 010 011 000 001000 OD BJ IR<15>=1, OD1 1 101 010 101 001001 BJ IR<14>=1, ST0 1 111 010 000 001010 LD0 RT MAR  M, Read 0 100 000 101 001011 LD1 RT MAR  M, M  MBR, Read 0 100 100 101 001100 BJ Wait=1, LD1 1 001 001 011 001101 LD2 RT MBR  AC 0 110 001 010 001110 BJ Wait=0, RES 1 000 000 000 001111 BJ Wait=1, RES 1 001 000 000 ZDMC – Lec. #16 – 23

Vertical Microprogramming ROM ADDRESS SYMBOLIC CONTENTS BINARY CONTENTS 010000 ST0 RT AC  MBR 0 101 101 000 010001 RT MAR  M, MBR  M, Write 0 100 111 110 010010 ST1 RT MAR  M, MBR  M, Write 0 100 111 110 010011 BJ Wait=0, RES 1 000 000 000 010100 BJ Wait=1, ST1 1 001 010 010 010101 OD1 BJ IR<14>=1, BR0 1 111 011 101 010110 AD0 RT MAR  M, Read 0 100 000 101 010111 AD1 RT MAR  M, M  MBR, Read 0 100 100 101 011000 BJ Wait=1, AD1 1 001 010 111 011001 AD2 RT AC + MBR  AC 0 110 001 001 011010 BJ Wait=0, RES 1 000 000 000 011011 BJ Wait=1, RES 1 000 000 000 011100 BR0 BJ AC<15>=0, RES 1 010 000 000 011101 RT IR  PC 0 010 110 000 011110 BJ AC<15>=1, RES 1 011 000 000 31 words x 10 ROM bits = 310 bits total versus 16 x 38 = 608 bits horizontal ZDMC – Lec. #16 – 24

Vertical Programming Controller Block Diagram ZDMC – Lec. #16 – 25

Vertical Microprogramming Condition Logic ZDMC – Lec. #16 – 26

Vertical Microprogramming Writeable Control Store Part of control store addresses map into RAM Allows assembly language programmer to implement own instructions Extend "native" instruction set with application specific instructions Requires considerable sophistication to write microcode Not a popular approach with today's processors Make the native instruction set simple and fast Write "higher level" functions as assembly language sequences ZDMC – Lec. #16 – 27