精华内容
下载资源
问答
  • 同组指令代码
    千次阅读
    2021-07-16 04:50:29

    去年带了一次了,但是因为是网上授课,印象不深 今年回归线下面对面了 随手记录一下 首先要出题,每4个人一个任务书 任务书里有6个指令 IN ADD LDA STA CLR COM JMO SUB HALT 我没用间接寻址,麻烦 先讲大概原理,有PPT 然后讲原理图 分ALU REGS uPC clk 四大块 用pfga来验证 顶层是原

    计算机组成原理复习大纲2021-06-29 09:33:30

    (供夏令营复习用,侵删)

    Principle-of-Computer-Composition

    计算机组成原理思维导图

    计算机组成

    第一章 计算机系统概论

    冯诺依曼型计算机特点

    1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。3.指令由

    计算机组成原理2021-06-28 09:00:47

    目录第一章:冯~诺依曼思想(重要)1 工作原理:2 冯·诺依曼计算机的组成1 硬件2 软件第二章:数据表示1.数据的表示2.同余3.定点与浮点数据表示4 数据校验的基本原理5 奇偶校验6 海明编码第三章:运算方法与运算器1 定点数运算及溢出检测2 加法器的逻辑实现第四章:储存系统1 储存器概述分类

    1.CPU的组成和功能:

    (1)CPU(中央处理器)功能:控制程序按设定方式执行。

    1)指令控制:控制程序的执行顺序【顺序寻址、跳跃寻址】

    2)操作控制:产生和发送各操作信号【对指令操作码译码后产生控制信号】

    3)时间控制:控制指令、或操作的

    CPU微指令相关概念2021-02-20 12:57:43

    第1章 微程序控制器

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

    中文名 微程序

    1.微程序控制器的设计思路

    程序:由指令序列组成 指令是对程序执行步骤的描述,与微程序一一对应 微程序:由微指令序列组成,包含多个微指令 微指令是对指令执行步骤的描述,微指令中可能包含多个微命令,微命令与微操作一一对应,一个微命令对应一根输出线 微周期(微指令周期)︰从控制

    计算机组成原理练习题(有助于理解概念)2020-08-19 20:31:35

    一、(12分)假设CPU执行某段程序时共访问Cache命中4000次,访问主存100次,已知Cache的存取周期是20ns,主存的存取周期100ns, 求Cache的命中率及Cache-主存系统的平均访问时间和访问效率,并计算该系统的性能提高了多少?

    二、(10分)欲传送的二进制代码为1001001,用奇校验来确定其对应的汉

    计算机原理 6.12 微指令格式2020-06-24 22:07:46

    1、微指令设计原则

    有利于缩短微指令字长度

    有利于减少控制存储器容量

    有利于提高微程序执行速度

    有利于对微指令进行修改

    有利于提高程序设计的灵活性

    2、微指令格式(直接表示法)

    这种方法简单直观,便于输出控制,但是微指令长度太长,控存容量大,如何压缩微指令长度?

    这里介绍三种

    0.1.2 一切设计的起点:CPU的架构

    由于CPU的内部是有一些微指令组成的,所以我们所使用的软件都是要经过CPU内部的微指令集来达成才行。那这些指令集的设计主要又被分为两种设计理念,这是目前世界上常见到的两种主要CPU架构,分贝是:精简指令集(RISC)与复杂指令集(CISC)。

    精简指令集(Reduced

    计算机组成:概述2020-01-29 17:57:41

    计算机组成原理补课式自学

    其实这门课我是上了的,但是感觉HK教的偏简单,自己再补补课

    视频地址:https://www.bilibili.com/video/av15123338、https://www.bilibili.com/video/av11438856

    以下内容是以知识点而非章节排序的,并且由于是补课,所以我会的一些部分可能就不包括了

    计算机体

    计算机组成:CPU2020-01-29 17:53:56

    CPU

    机器指令:CPU可以直接识别并执行的命令,所有机器指令构成这个CPU的指令集

    RISC:精简指令集计算机

    CISC:复杂指令集计算机

    无用的多余指令使得指令的运行速度被拖慢

    指令简单,在一个时钟周期内完成一条指令

    RISC只有LOAD、STORE方式访问存储,而复杂指令集有多种方式访问

    RISC指令

    联通2019-09-03 23:50:23

    1.存储器

    1)主存储器(内存):RAM、ROM

    2)外存储器(辅助)

    2.运算器的核心部分:算数逻辑运算单元

    3.位、字节、字、字长

    链接:https://mp.weixin.qq.com/s?src=11&timestamp=1567524647&ver=1830&signature=Kp-NnXtfuLovAdare4McWMCu*KWRqPezhDY*fbVK-Ptfp4nQPsJQGKS7bmT5K0U9y8c7-YBL2R-uhaTI

    CPU中控制单元结构示意如下,其中控制单元CU主要负责发出各种微操作命令序列来控制完成各种指令。

    根据CU的功能特性来进行CU的设计,主要包括组合逻辑设计和微程序设计。

    1.组合逻辑设计

    CU的外特性如下所示

    机器主频时钟,输入到节拍发生器,产生节拍序列输入到CU中控制各种微操作

    第0章 计算机概论2019-05-10 22:43:01

    计算机概论

    1.1 计算机硬件五大单元:

    输入单元、输出单元、CPU内部的控制单元、CPU内部的算数逻辑单元、内存

    输入单元:键盘、鼠标、读卡机、扫描仪、手写板、触摸屏

    输出单元:屏幕、打印机

    主机部分:主板、CPU、内存

    主机中一块主板,上面安插中央处理器(cpu)、内存、硬盘、显卡等,智能手机

    嵌入式相关概念杂谈2019-05-06 11:55:24

    一、背景说明

    以前在互联网干活,主要讲的是4A、集群这些偏应用层的概念;现在转入物联网行业,主要讲的变成了串口、驱动这些偏硬件的概念。

    之前没怎么注意,但这两天看着身旁的开发板,突然想到自己对硬件的很多概念都一知半解,有必要探究明确一番。

    二、各种问题和名词

    2.1 分时操作系

    Linux运维之预备知识2019-05-04 23:56:31

    预备知识 : 进程 : 运行起来的程序即称之为进程;Vmvare常用操作 :    桥接 : 即借助物理主机的物理设备即网卡与外部设备通信;    快照 : 常用于在虚拟机中装好系统伊始或在使用虚拟系统过程中的重要节点,保存系统当前状态,以便未来系统崩溃时,无需重新安装系统,直接回到

    os练习题62019-04-08 14:55:55

    可以中断,只是中断后占用CPU的别的进程,不能访问和上一个进程刚刚执行的那段临界区而已。

    作业控制(Jobcontrol)是shell的另一个特性,它允许用户同时运行多个作业而产生,并且根据需求可将前后台的作业进行切换。当启动某个作业时,它通常是运行在前台,因此该作业是与终端相连接的。利

    计算机概论(1)2019-03-21 20:53:17

    计算机:辅助人脑的好工具

    所谓的计算机就是一种计算器,而计算器其实是:接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的信息。因此,只要有输入设备 (不管是键盘还是触摸屏) 及输出设备 (例如计算机屏幕或直接由打印机打印出来),让你可以输入数据使

    更多相关内容
  • 多周期54条CPU:计课设:多周期54条MIPS指令CPU设计(含代码)_孔艺菲的博客-CSDN博客 单周期CPU源码:while-TuRe/Single-cycle-CPU31 (github.com) 单周期CPU指的是一个周期就能得出结果的CPU。 如何做到一个...

    多周期54条CPU:计组课设:多周期54条MIPS指令CPU设计(含代码)_孔艺菲的博客-CSDN博客       

    单周期CPU源码:while-TuRe/Single-cycle-CPU31 (github.com)  

    单周期CPU指的是一个周期就能得出结果的CPU。

    如何做到一个周期得出结果呢?

            答案是巧妙地利用时钟上升沿和下降沿,将同步控制和异步控制相结合。

            异步控制 PC~instruction~RsRt~reg.XY~alu.Res:instruction是根据PC异步变化的,即PC改变后立即取出新指令。解析instruction中的Rs、Rt、Rd是通过assign实现与instruction同时变化。从寄存器中读取数据这一操作是随地址异步变化的,得到RsRt后立即在通用寄存器中进行读取。ALU也是逻辑电路,在得到操作数后立即得到结果。

            同步控制:fileout,RF_W:输出结果是在testbench模块中时钟上升沿发生的,PC是在CPU的Controller时钟上升沿增加的。

    那么,我们如何建立模型实现单周期CPU呢?

    首先,什么是MIPS指令?我们在用MIPS编程时,写的是汇编语言。但是计算机不能识别汇编语言,只能识别机器语言。MIPS编译器Mars就可以将汇编语言编译成机器语言。编译的依据就是下面的指令格式表。我们要做的就是根据这样一个32位的二进制序列做为指令完成它所描述的一系列操作。

    所以,需要弄懂要实现的指令的结构。MIPS有R型指令(只在寄存器中操作的指令),I型指令(含有立即数immediate的指令)和J型指令(jump跳转指令)。每种指令有不同的格式,每条指令有不同的op和func码以区分。

    指令执行流程:

    指令ID解析

    为提高可读性,需要将每条指令不同的op和func码和指令对应起来。

    方法一:可设置31个变量,如wire add_,sub_等,代表是不是这条指令。优点是可读性高,缺点是不易在模块间传输。

    方法二:可设置1个31位变量区分不同指令,如000000000000000000000000000001代表add,000000000000000000000000000010代表sub等。优点是便于传参,缺点是可读性较低,且增加指令不易。

    可选择将CPU模块调用和controller写在一起避免模块传输(不过计算机真正设计是分开的),更好的方法是用方法二改进方法一,在模块传输是写一个31位变量接口funcID,并且使其每位分别代表一个指令。

    地址解析

    为在一个时钟周期得到结果,采用组合逻辑设计,故这些变量都要采用assign赋值。对于不同种类的指令需调整如何赋值,根据指令ID通过?:实现。

    指令格式

     模块设计

    计算机的基本组成:

    • 存储器:     实现记忆功能的部件用来存放计算程序及参与运算的各种数据
    • 运算器:     负责数据的算术运算和逻辑运算即数据的加工处理
    • 控制器:     负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问
    • 输入设备:    实现计算程序和原始数据的输入
    • 输出设备:    实现计算结果输出

    我们主要需要实现的是前三项。

    存储器有数据存储器和指令存储器,分别构建module DMEM IMEM 。

    CPU内有运算器和控制器,控制器的功能在于控制运算器和其他模块(乘法器除法器中断处理器等),传入正确数据。(本例将CPU和Controller写在了一起,实际分开更好)

     如何载入指令进行测试?

            IMEM模块用于根据pc读取instruction。在其中添加ROM IP核,设置为16进制1024*32,载入要执行的coe文件。

            如何获取coe文件? 下载MARS(MIPS汇编程序和运行时模拟器),写入程序导出为16进制文件,再在该16进制文件前添加

    memory_initialization_radix = 16;

    memory_initialization_vector =

    如何调试程序?

    首先,先静态纠错。将每条指令过一遍,检查模块的接口及数据位数。

    然后再指令memory的IP核中载入待测试的coe文件,进行仿真,将每次指令变化后的pc、instruction、寄存器结果输出,与Mars的结果比对。

    如果发现某条指令错误,将相关的变量在testbench中显示调用,在仿真的波形图中就可以看到了。显示调用方式如下:

    展开全文
  • (五)指令系统设计

    千次阅读 多人点赞 2019-06-18 20:44:17
    文章目录一、指令系统设计1....具体的指令(1)双操作数指令(2)单操作数指令(3)转移指令(4)无操作数指令二、指令时序1.概念2.时序控制方式(1)同步控制(2)异步控制(3)联合控制三、指令执行过程分析1...


    一个字节:8位
    一个字:16位

    【微操作、微命令、微指令、微程序】
    一条指令的执行过程可以分解为若干更微小的基本操作,并称这种基本操作为微操作。
    控制完成微操作的命令称为微命令。
    能够产生一个或多个微命令的二进制编码就称为微指令。
    通过将完成一条机器指令的一系列微指令存入存储器中,然后再按顺序依次读出执行,从而完成指令的功能。并称这些完成机器指令功能的一系列微指令构成的程序称为微程序。


    一、指令系统设计

    1.字指令(依据字的个数分)

    (1)单字指令和双字指令

    在要设计的CPU中,指令有两种格式:单字指令和双字指令两种(在这里规定一个字为二进制16位)。即有的指令只用一个字构成,而有的指令则需两字构成。

    • 单字指令:该指令由一个字组成(一行)
    • 双字指令:该指令由两个字组成(两行)
      在这里插入图片描述

    (2)bit0~bit7指令寻址方式字段

    从指令表示上:bit3决定是单字指令还是双字指令。
    从指令作用上:寻址方式决定是单字指令还是双字指令。

    在这里插入图片描述
    寄存器寻址和寄存器间接寻址的指令只需一个字即可构成;
    而立即寻址、直接寻址、相对寻址和变址寻址则需要两个字,其中一个字用来表示操作码及寻址方式,另一个字表示立即数、直接地址或偏移量。

    • 单字指令:
      ①寄存器寻址;
      ②寄存器间接寻址;
    • 双字指令:
      ③立即寻址;
      ④直接寻址;
      ⑤相对寻址;
      ⑥变址寻址。

    例子:

    单字指令:
    若指定两个操作数的ADD加法指令的操作码字段为00000001,则指令:ADD AX,[ SI]是一条寄存器间接寻址的单字指令,它由16位二进制编码。00000001 10000110组成(1000表示AX是目的地址,0110表示[SI])。

    双字指令:
    若指令: ADD AX,[2000H]是一条直接寻址的双字指令,该指令由两个16位的字组成,一个为指令码字、一个为直接地址:
    00000001 10001001 为指令操作码字
    00100000 00000000 为直接地址字

    2.操作数指令(依据操作数的个数分)

    在这里插入图片描述

    (1)双操作数指令

    双操作数指令的指令操作码字前缀为0000。

    • ADD AX,[ SI]
    • ADD AX,[2000H]

    (2)单操作数指令

    单操作数指令的指令操作码字为0000 1110。

    • INC [BX]
      假如规定加1指令INC的操作码为00001110 0001,[BX]是0101,则其指令码为:00001110 00010101。
    • INC [DI+1000H]
      00001110 00011101 为指令操作码字
      00010000 00000000 为偏移量字

    (3)转移指令

    转移指令的指令操作码字为0000 1111。

    (4)无操作指令

    无操作指令的指令码前缀是0000 1111 1111.

    3.具体的指令

    (1)双操作数指令

    在这里插入图片描述
    双操作数指令设置有:
    传送指令(MOV)
    与指令(AND)
    减法指令(SUB)
    带进位加法指令(ADC)
    带进位减法指令(SBC)
    比较指令(CMP)
    乘法指令(MUL)
    除法指令(DIV)
    加法指令(ADD)
    或指令(OR)
    异或指令(XOR)

    (2)单操作数指令

    在这里插入图片描述
    单操作数指令设置有:
    调用子程序指令(CALL)
    加1指令(INC)
    减1指令(DEC)
    压入堆栈指令(PUSH)
    弹出堆栈指令(POP)
    取反指令(NOT)
    左移指令(SHL)
    逻辑右移指令(SHR)
    算术右移指令(SAR)
    小循环左移指令(ROL)
    小循环右移指令(ROR)
    大循环左移指令(RCL)
    大循环右移指令(RCR)

    (3)转移指令

    在这里插入图片描述
    尽管这类指令也是单操作数指令,在这里单独列出。设置指令有:
    无条件转移指令(JMP)
    零转移指令(JZ)
    非零转移指令(JNZ)
    有进位转移指令(JC)
    无进位转移指令(JNC)
    大于转移指令(JG)
    大于等于转移指令(JGE)
    高于转移指令(JA)
    高于等于转移指令(JAE)

    显然,在上述条件转移中,JC、JNC、JA、JAE是用于无符号数;而JG、JGE则用于带符号数。

    (4)无操作数指令

    在这里插入图片描述
    无操作数指令主要有:
    子程序返回指令(RET)
    中断返回指令(IRET)
    空操作指令(NOP)
    关中断指令(CLI)
    开中断指令(STI)
    软件中断指令(SWI)
    十进制校正指令(DAA)

    二、指令时序

    1.概念

    指令时序是用来控制程序怎么遵从时间有秩序地执行。
    在这里插入图片描述

    • 指令周期:
      CPU从头到尾执行一条指令所用的时间称为指令周期。
    • 机器周期(CPU周期或总线周期):
      把CPU通过系统总线对内存的一次读或写称为一个机器周期。
      指令周期可以分为三个阶段机器周期:取指令操作码(取指)、指令取操作数(取数)和执行指令(执行).
    • 时钟周期(节拍周期)
      机器周期的进一步细分:
      机器周期是由时钟激励完成的,不同的机器周期所需时钟周期数是不一样的。

    PS:
    在这里插入图片描述
    若是一条无操作数指令,则不需要取操作数,CPU将直接进入执行周期。
    若有操作数,不管是一个还是两个,则进入取操作数的周期。

    2.时序控制方式

    指令时序怎么设计和执行,就是时序控制方式。(将如何根据不同指令形成不同系列控制信号所采用的控制方式称为时序控制方式)

    (1)同步控制

    同步控制
    指令执行或指令中每个控制信号都由事先确定的统一的时序信号进行统一控制。

    • ①定长的机器周期,定长的指令周期
      如每条指令都有3个机器周期,每个机器周期都有4个时钟周期。因此,每条指令的执行时间都是12个时钟周期。
    • ②定长的机器周期,变长的指令周期
      机器周期的长度(时钟周期)是固定不变的,而指令可以由一个二个、三个或更多个机器周期组成
    • ③变长的机器周期,变长的指令周期
    • ④折中方案

    (2)异步控制

    异步控制
    当控制器发出某一操作控制信号后,等待执行部件完成操作后发回“回答”信号,再开始新的操作。

    • 没有统一的时钟对信号进行同步
    • 每条指令的指令周期可由多少不等的机器周期数组成

    (3)联合控制

    同步控制和异步控制相结合的方式。

    • 大部分微操作序列安排在固定的机器周期中
    • 对某些时间难以确定的操作则采用“应答”方式。
      如:CPU访问存储器时,依靠其送来的“READY”信号作为读/写周期的结束。

    PS:
    8086CPU采用同步②(定长的机器周期,变长的指令周期)的方式,并在读/写内存或接口时,利用应答信号READY来决定机器周期的长短。

    三、指令执行过程分析

    从指令时序分析,我们可以把一条指令的执行分为三个大的步骤:取指令操作码、取操作数、执行指令。
    在这里插入图片描述

    1.取指令操作码(取指)

    取指令操作码的过程就是从主存中将指令字取出并放在指令寄存器IR中。而且这一过程对所有的指令(不管是单字指令还是双字指令)都是一样的

    取指过程:

    • PC→AR;首先将PC的内容送地址寄存器AR
    • AR→AB,RD,PC+1→PC;将AR输出到系统总线上,作为主存地址,接着送出读控制信号RD,同时内部程序计数器加1
    • MD→DB,DB→DR;第三步就是将从主存读出的指令字(即操作码)送到数据寄存器DR
    • DR→IR;DR再将指令字送到指令寄存器IR中

    2. 译码取操作数

    (1)检测指令

    检测是哪种操作指令:双操作数指令、单操作数指令、转移指令和无操作数指令。
    在这里插入图片描述

    (2)转移指令

    在这里插入图片描述

    (3)双操作数指令

    在这里插入图片描述
    在这里插入图片描述

    (4)单操作数指令

    在这里插入图片描述
    在这里插入图片描述

    3.指令执行

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、微指令控制域

    微指令控制域编码是构成微指令重要的组成部分。微指令在执行时,就是由该控制域的编码产生微命令。

    通常,将微指令分为水平型微指令和垂直型微指令。

    • 水平型微指令可以使多个控制信号同时有效,达到使多个微操作同时发生的效果。(一条微指令定义和执行多个并行微命令)
    • 垂直型微指令类似于机器指令,它利用微操作码的不同编码来表示不同的微操作功能。(一条微指令只实现1~2个微命令。)

    1.水平微指令

    (1)直接表示法

    表示方式:

    • 在微指令的控制域字段中,直接表示法就是直接用一个二进制位表示一种微命令。微命令有多少个,控制字段就有多少位
    • 当某位设定为“1”时,表示该位定义的控制信号有效,为“0”时,表示该位定义的控制信号无效。这样,我们就可以利用一条微指令,同时使多个控制信号有效。
      在这里插入图片描述

    优点:
    由于控制信号直接从微指令控制域的某位获得,不需要译码器(这种设计法也称作不译码法或直接控制法)。可以快速地产生控制信号。

    缺点:

    • 微指令控制字段很长:若计算机系统需要 n 个控制信号,则控制域字段长度为 n 个二进制位。
    • 利用率是非常低的:机器指令执行过程的每一步,只需少量的几个微命令。因此,每一条微指令的控制字段中只有少数几个 1,绝大多数位都是 0(该位无效)。

    (2)字段译码法(字段编码)

    相容信号与互斥信号:

    • 相容信号:可以同时出现。
    • 互斥信号:不可以同时出现。

    【互斥信号为什么不可以同时出现?】
    凡是有可能使状态引起竞争的控制信号都是互斥的:
    ① 总线竞争:所有向内总线 IB 的输出信号必是互斥的。例如,PCout、BXout 等等。这些信号一旦同时出现,必定引起总线竞争,一定会造成严重后果。
    ② 多功能器件的诸多功能必是互斥的。例如,ALU 某一时刻只能完成一种功能,做加法时不可能同时做减法。移位器件不可能同时进行左移和右移。
    ③ CPU 对系统总线的操作是互斥的。CPU 不可能同时进行读写,读时不能写,写时不能读。
    ④ 同一器件的输入和输出是互斥的。例如,BXin,BXout 是互斥的。

    字段编码法:它将控制域分为若干字段,互斥的信号放在同一字段、相容的信号放在不同字段。

    • 直接译码方式:若各字段的编码相互独立,则通过各字段独立译码就可以获得计算机系统的全部控制信号
      在这里插入图片描述
    • 间接译码方式:若某些字段的编码相互关联,则关联字段要通过两级译码才能获得相关的控制信号
      在这里插入图片描述

    【为什么互斥的信号放在同一字段、相容的信号放在不同字段?】
    同一字段只会同时执行一个信号,那么互斥的只有一个;不同字段可以同时执行多个信号,那么可以相容。

    【字段编码法如何生效多个字段的指令,如何不生效某个字段的指令?】
    在每个字段中设计一个无效控制信号NOP的编码来不生效某个字段的指令。控制域的某字段有 m 位,则可以提供 2 m − 1 2^m-1 2m1个控制信号的编码。

    【一种字段编码法的控制域字段】
    在这里插入图片描述
    ① 输出到内总线的命令
    XXout微命令,它们是命令某个寄存器将其内容输出到内总线IB上。
    它们放在一个用 4bit 编码的字段中,若从 0000 到 1011 的编码顺序表示从 NOP 到 Tout,则 PCout微命令必为 1001。该命令即可完成 PC→IB 微操作。
    ② 触发寄存器的命令
    XXin微命令,它们是命令内总线IB上的内容输出到某个寄存器上。
    这些命令用这 4 位编码来表示。同样,若从 0000 到 1100 的编码顺序表示从 NOP 到 Tin,则 PCin微命令
    必为 1001。该命令即可完成 IB→PC 微操作。
    ③ 其他微命令
    根据信号的多少决定该字段编码的位数。例如,ARin的编码应为二进制 10。

    共27位。

    2.垂直型微指令

    在这里插入图片描述
    例子:
    如果 CPU 执行机器指令只需 50 余种微命令,则可用 6 位二进制编码构成微指令的控制字段。因为,一种编码只指定一种微命令,6 位编码有 64 种,足以表示这 50 几种微操作命令。可以想像其构成的微指令一定是很短的。

    3.比较

    在这里插入图片描述

    五、微指令的设计

    1.设计

    共9+4+27=40位。
    在这里插入图片描述

    • NA:若控制存储器的容量为 512 字,微指令采用一地址格式,则地址编码用 9 位即可表示。
    • 后继地址控制字段 AC:设定为 4 位,4 位 AC 编码用于控制顺序执行、无条件转移、两分支转移和多分支转移。
    • 控制域字段:采用水平型编码的字段编码法
      在这里插入图片描述
      【XXout和XXin到底怎么区分?】
    • XXout表示将XX中的数据放到IB内部总线上(取出XX)或者从相应器件(ALU)取出
    • XXin表示将IB内部总线上的数据放到XX中(输入XX)或者向相应器件(ALU)输入

    2.例子

    在这里插入图片描述
    表示PCout,ARin

    六、微操作和微命令

    1.微操作和微命令

    在这里插入图片描述
    微指令是一串微命令的结合。
    微操作和微命令互相转化(其实就是微操作和微指令的互相转化)。

    我们规定一个机器周期由 4 个节拍来实现。

    (1)取指令码周期(取指)FIC

    微操作 取指过程:

    • PC→AR;首先将PC的内容送地址寄存器AR
    • AR→AB,RD,PC+1→PC;将AR输出到系统总线上,作为主存地址,接着送出读控制信号RD,同时内部程序计数器加1
    • MD→DB,DB→DR;第三步就是将从主存读出的指令字(即操作码)送到数据寄存器DR
    • DR→IR;DR再将指令字送到指令寄存器IR中

    对应的取指的微操作命令:

    • W0 PCout,ARin
    • W1 AR→AB,RD,PC+1
    • W2 MD→DB,DRin
    • W3 DRout,IRin

    (2)取操作数周期(取数)FDC

    ① MOV AX, 4000H
    该指令的取操作数周期过程如下:
    W0 PCout,ARin
    W1 AR→AB,RD,PC+1
    W2 MD→DB,DRin
    W3 DRout,AXin
    这里要说明的是,该指令取操作数周期结束,该指令执行也就结束。利用最后的节拍启动下一条指令的 FIC 周期。

    ② ADD BX, [DI]
    该指令的取操作数周期过程如下:
    W0 DIout,ARin
    W1 AR→AB,RD
    W2 MD→DB,DRin
    W3 DRout,Sin
    在此取操作数的周期结束时,就将以 DI 的内容为内存地址的存储器单元的内容读出并放在暂存器 S 中,其输出加到了 ALU 的一边,接着就进行下一步执行周期EXEC。

    ③ 转移指令
    在这里写出无条件转移和满足条件的条件转移的取操作数微操作命令安排。不
    满足条件顺序执行前面己经提到,这里不再说明。
    W0 PCout,ARin
    W1 AR→AB,RD,PC+1
    W2 MD→DB,DRin
    W3 DRout,Sin
    将指令操作数即偏移地址取出放入暂存器 S。

    ④ INC [BX]
    该指令的取操作数周期过程如下:
    W0 BXout,ARin
    W1 AR→AB,RD
    W2 MD→DB,DRin
    W3 DRout,Sin
    在此取操作数的周期结束时,就将以 BX 的内容为内存地址的存储器单元的内容读出并放在暂存器 S 中,其输出加到了 ALU 的一边,接着就启动下一步执行周期EXEC。

    ⑤ SHR CX
    该指令的取操作数周期过程如下:
    W0
    W1
    W2
    W3 CXout,Sin

    (3)执行周期(执行)EXEC

    ① MOV AX, 4000H
    该指令取指令操作数与执行周期合在一起,前面己经说明。

    ② ADD BX, [DI]
    该指令的执行周期过程如下:
    W0 S→ALU
    W1 BXout→ALU
    W2 ALU,ADD→T,Tin
    W3 Tout,BXin
    在此周期里,ALU 将放在 S 中的操作数与 BX 的内容相加送 T,T 输出放回 BX中。

    ③ 转移指令
    在这里写出无条件转移和满足条件的条件转移的执行周期微操作命令安排。
    W0 S→ALU,
    W1 PCout→ALU
    W2 ALU,ADD→T,Tin
    W3 Tout,PCin
    将 PC 的当前值与偏移地址相加,构成目的地址放 PC。

    ④ INC [BX]
    该指令的执行周期过程如下:
    W0 S→ALU
    W1 ALU+1→T,Tin
    W2 Tout,DRin
    W3 DR→DB,WR
    在此周期中,将上面周期取得的操作数经 ALU 加 1,再送到数据寄存器 DR 中。此时,AR 中仍存有操作数的地址,送时就将 DR 出的数据写回原来的地址,

    ⑤ SHR CX
    该指令的执行周期过程如下:
    W0 S→ALU
    W1 ALU 直通→T,Tin
    W2 T 逻揖右移一次
    W3 Tout,CXin

    ⑥ IRET
    中断返回指令由取指周期直接进入执行周期,其过程为:
    W0 SPout,ARin
    W1 AR→AB,RD,SP+1
    W2 MD→DB,DRin
    W3 DRout,PCin

    ⑦ 中断响应过程 INTA
    对中断请求响应时,CPU 仅保护 PC 的内容,并且由硬件提供该中断的中断向量。其过程为:
    W0 SPout,ARin
    W1 AR→AB,SP-1
    W2 PCout,DRin
    W3 DR→DB,WR
    W0 0→IF,IFin
    W1
    W2
    W3 IVout,PCin
    中断响应过程需两个机器周期,第 1 个机器周期保护断点 PC 的内容入堆栈。第 2 个机器周期关中断(使 IF=0),并将特定的该中断的中断向量 IV 放入 PC,并启动取指周期。则下一个机器周期 CPU 必定进入该中断的中断处理程序入口开始执行。

    六、例题

    1.搞清问题

    【问的是什么?微操作流程还是微流程】
    实现指令 ADD AX, BX(功能为(AX)+(BX)→AX )

    • 微操作流程:
      PC→AR
      AR→AB,RD,PC+1
      DB→DR
      DR→IR
      AX→S
      BX→IB,ADD
      ALU→T
      T→AX
    • 微流程:
      ① PCout,ARin
      ② AR→AB,RD,PC+1
      ③ MD→DB,DRin
      ④ DRout,IRin
      ⑤ BXout,ARin
      ⑥ AR→AB,RD
      ⑦ MD→DB,DRin
      ⑧ DRout,Sin
      ⑨ S→ALU
      ⑩ AXout→ALU
      11.ADD→T,Tin
      12.Tout,AXin

    【问的是哪些阶段?是所有阶段还是只写指令执行阶段】

    2.例题

    在这里插入图片描述

    (1)ADD指令

    将源操作数放入S中,再由S输入到ALU中
    将目的操作数直接输入到ALU中

    ADD AX, [BX]

    (取指)
    ① PCout,ARin
    ② AR→AB,RD,PC+1
    ③ MD→DB,DRin
    ④ DRout,IRin

    (将[BX]对应的储存器中的数取出,放到S中)
    ⑤ BXout,ARin
    ⑥ AR→AB,RD
    ⑦ MD→DB,DRin
    ⑧ DRout,Sin
    ⑨ S→ALU

    (将AX中的数取出,放到S中)
    ⑩ AXout→ALU

    (两数相加,并将结果放入AX)
    11.ADD→T,Tin
    12.Tout,AXin

    ADD BX, [DI]

    ① PCout,ARin
    ② AR→AB,RD,PC+1
    ③ MD→DB,DRin
    ④ DRout,IRin

    ⑤ DIout,ARin
    ⑥ AR→AB,RD
    ⑦ MD→DB,DRin
    ⑧ DRout,Sin
    ⑨ S→ALU

    ⑩ BXout→ALU

    11 ADD→T,Tin
    12 Tout,BXin

    ADD AX,DISP(SI)

    (取指)
    ① PCout,ARin
    ② AR→AB,RD,PC+1
    ③ MD→DB,DRin
    ④ DRout,IRin

    (计算偏移地址)
    ⑤ PCout,ARin
    ⑥ AR→AB,RD,PC+1
    ⑦ MD→DB,DRin
    ⑧ DRout,Sin
    ⑨ S→ALU

    ⑩ SIout→ALU

    11 ADD→T,Tin
    12 Tout,ARin

    (取内存中数)
    13 AR→AB,RD,
    14 MD→DB,DRin
    15 DRout,Sin
    16 S→ALU

    (将AX中的数取出,放到S中)
    16 AXout→ALU

    (两数相加,并将结果放入AX)
    17 ADD→T,Tin
    18 Tout,AXin

    (2)SUB BX,100(DI)

    ① PCout,ARin
    ② AR→AB,RD,PC+1
    ③ MD→DB,DRin
    ④ DRout,IRin

    ⑤ PCout,ARin
    ⑥ AR→AB,RD,PC+1
    ⑦ MD→DB,DRin
    ⑧ DRout,Sin
    S→ALU
    ⑨ DIout→ALU
    10 ADD→T,Tin
    11 Tout,ARin
    12 AR→AB,RD,
    13 MD→DB,DRin
    14 DRout,Sin
    15 S→ALU
    16 BXout→ALU
    17 SUB→T,Tin
    18 Tout,BXin

    (3)INC指令

    INC [BX]

    ① PCout,ARin
    ② AR→AB,RD,PC+1
    ③ MD→DB,DRin
    ④ DRout,IRin

    ⑤ BXout,ARin
    ⑥ AR→AB,RD
    ⑦ MD→DB,DRin
    ⑧ DRout,Sin
    ⑨ S→ALU

    ⑩ ALU+1→T,Tin
    11 Tout,DRin
    12 DR→DB,WR

    展开全文
  • G代码一览表

    2014-05-28 21:02:51
    G代码一览表
  • 国产CPU,指令集之殇 ARM 和 x86 有什么区别? ARM 处理器:RISC与CISC 是什么? 0. 基础知识 0.1 什么是指令集 所谓指令集,是CPU中用来计算和控制计算机系统的一套指令的集合。指令的强弱是CPU的重要指标,指令集...

    参考资料:
    国产CPU,指令集之殇
    RISC-V能否“重构”芯片产业格局
    ARM 和 x86 有什么区别?
    ARM 处理器:RISC与CISC 是什么?


    0. 基础知识

    0.1 什么是指令集

    所谓指令集,是CPU中用来计算和控制计算机系统的一套指令的集合。指令的强弱是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。

    指令集是一个比较模糊和虚化的概念,我们的看到的指令集是一个指令列表,几百种CPU指令命令,而CPU看到的指令集则是一连串的“01010101”电信号,每种电信号代表一种运算命令。而CPU的设计当中,就必须固化好各种指令对应的芯片电路模块

    CPU依靠指令计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。与其他硬件电路相配合,决定的是这一款CPU的生态系统。因此,指令集搭建的是一个桥梁,是软硬件之间沟通的桥梁,简单来说,软件通过指令集和硬件讲话。因此,指令集对形成生态至关重要,从这个意义上讲,不同的CPU指令集决定了这款CPU设计的复杂程度

    从现阶段的主流体系结构讲,指令集可分为复杂指令集(CISC, complex instruction set computer)和精简指令集(RISC, reduced instruction set computer)两部分。简单来讲,RISC功能简洁,代表着简洁的CPU设计,CISC功能完备,代表着复杂的CPU设计。RISC的简洁代表着效率,CISC的功能完备代表着臃肿。这里引用步日欣老师文章中的一段话:

    CPU的指令,就如同盖房子的砖,如果都是小块的标准砖头,也能盖起各种不同的房子,这就是RISC;如果除了标准砖头,还设计了很多的砖瓦结构件,适用于拐角、吊梁等,这就是CISC。不同的模式,都能盖起房子,但是效率却大不一样,RISC的标准砖头,小平房可以盖,摩天大楼也可以盖,底层的原材料很简单,都是标准化的砖头;CISC的各种复杂的结构件,对于盖一种房子的时候效率确实高,吊起结构件随便一拼装就ok,但是如果要盖的房子种类多了,就需要定义更多更复杂的结构件,结构件的管理就会越来越复杂,而且在建设某种常见建筑的时候,大部分特殊的结构架是闲置不用的,大大影响了施工效率。
    基于CISC模式下的CPU设计,在各种新需求下,堆叠的功能越来越复杂,芯片设计难度也越来越高,效率低下,因此就出现了RISC精简指令集的概念。

    • 注:指令集架构ISA,Instruction Set Architecture)也可简单地理解为指令集。

    0.2 RISC指令集的由来

    一开始的处理器都是CISC架构,随着时间演进,有越来越多的指令集加入。由于当时编译器的技术并不成熟,程序都会直接以机器码或是汇编语言写成,为了减少程序设计师的设计时间,逐渐开发出单一指令,复杂操作的程序码,设计师只需写下简单的指令,再交由CPU去执行。但是后来有人发现,整个指令集中,只有约20%的指令常常会被使用到,约占整个程序的80%;剩余80%的指令,只占整个程序的20%。于是1979年美国加州大学伯克莱分校的David Patterson教授提出了RISC的想法,主张硬件应该专心加速常用的指令,较为复杂的指令则利用常用的指令去组合。

    这里也提供一个小小的概念,CISC是在RISC出现之后才出现的相对名词,并不是从一开始就有CISC、RISC这两种处理器架构。

    1. CISC复杂指令集

    1.1 CISC体系的指令特征

    1. 使用微代码。指令集可以直接在微代码存储器(比主存储器的速度快很多)里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程序。

    2. 庞大的指令集。可以减少编程所需要的代码行数,减轻程序员的负担。高级语言对应的指令集:包括双运算元格式、寄存器到寄存器、寄存器到存储器以及存储器到寄存器的指令。

    1.2 CISC体系的优缺点

    1. 优点:能够有效缩短新指令的微代码设计时间,允许设计师实现 CISC 体系机器的向上兼容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软件。另外微程序指令的格式与高级语言相匹配,因而编译器并不一定要重新编写。

    2. 缺点:指令集以及芯片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。

    1.3 CISC复杂指令集阵营

    Intel的X86。

    2. RISC精简指令集

    2.1 RISC体系的指令特征

    1. 精简指令集:包含了简单、基本的指令,通过这些简单、基本的指令,就可以组合成复杂指令。

    2. 同样长度的指令:每条指令的长度都是相同的,可以在一个单独操作里完成。

    3. 单机器周期指令:大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。

    2.2 RISC体系的优缺点

    1. 优点:在使用相同的芯片技术和相同运行时钟下,RISC 系统的运行速度将是 CISC 的2~4倍。由于RISC处理器的指令集是精简的,它的内存管理单元、浮点单元等都能设计在同一块芯片上。RISC 处理器比相对应的 CISC 处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术,开发更快的下一代处理器。

    2. 缺点:多指令的操作使得程序开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快的存储器,这通常都集成于处理器内部,就是L1 Cache(一级缓存)。

    2.3 RISC精简指令集阵营

    ARM、RISC-V、MIPS。

    3. 对比CISC和RISC

    1. 指令的形成:CISC 因指令复杂,故采用微指令码控制单元的设计,而RISC的指令90%是由硬件直接完成,只有10%的指令是由软件以组合的方式完成,因此指令执行时间上RISC较短,但RISC所须ROM空间相对的比较大,至于RAM使用大小应该与程序的应用比较有关系。

    2. 寻址模式:CISC的需要较多的寻址模式,而RISC只有少数的寻址模式,因此CPU在计算存储器有效位址时,CISC占用的汇流排周期较多。

    3. 指令的执行:CISC指令的格式长短不一,执行时的周期次数也不统一,而RISC结构刚好相反,故适合采用流水线处理架构的设计,进而可以达到平均一周期完成一指令的方向努力。显然的,在设计上RISC较CISC简单,同时因为CISC的执行步骤过多,闲置的单元电路等待时间增长,不利于平行处理的设计,所以就效能而言RISC较CISC还是占了上风,但RISC因指令精简化后造成应用程式码变大,需要较大的存储器空间,且存在指令种类较多等等的缺点。

    展开全文
  • 存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同) 3、中断隐指令是由硬件实现的,并不是指令系统中存在的指令。 4、累加器:存放中间结果的寄存器 5、PC存放当前欲执行指令的地址,而指令的操作码则...
  • 计算机组成原理——指令系统

    千次阅读 多人点赞 2021-11-04 15:12:00
    指令系统一:指令系统的发展与性能要求1、指令系统及其发展2、指令系统性能的要求3、常见的指令集二:指令格式1、指令字长度2、操作码 一:指令系统的发展与性能要求 1、指令系统及其发展 一台计算机中所有机器指令...
  • 与linux系统下常用指令的知识与操作方法看这一篇文章就够啦
  • (四)指令系统

    千次阅读 多人点赞 2019-05-30 00:35:07
    文章目录一、元器件二、指令1.指令格式三、寻址方式1.立即寻址2.直接寻址3. 一、元器件 二、指令 1.指令格式 操作码⎵[操作码]∣源操作数∣结果操作数∣下一指令地址⎵[操作数]\underbrace {操作码}_{[操作码]}|\...
  • 展开全部一、概念不62616964757a686964616fe78988e69d83313334313532631、机器指令:机器指令是CPU能直接识别并执行的指令。2、微指令:是指在机器的一个CPU周期中,一实现一定操作功能的微命令的组合,描述微...
  • 欧姆龙PLC功能指令

    千次阅读 2020-12-20 05:14:20
    除基本逻辑指令外,OMRON公司C系列plc还有若干条功能指令,或称专用指令。因机型不同所使用的功能指令数量也不同,如C20P~C60P有功能指令25条,C500有功能指令56条,C200H有功能指令133条,C1000H、C2000H有功能...
  • 指令系统之指令格式

    千次阅读 2020-08-13 09:51:10
    一条指令就是机器语言的一个语句,它是一有意义的二进制代码。 一条指令通常由操作码和地址码来组成: 图 1指令格式 上图表示的只是一个抽象的概念,并没有指出其中具体的内容。下面举个实际的例子: 图 2.....
  • 汇编指令速查表

    万次阅读 多人点赞 2016-08-17 21:51:24
    有时我们需要查看汇编代码去分析软件问题,汇编代码才能最直观地反映出软件的问题。为了方便大家理解并记忆汇编指令,读懂汇编代码的上下文,此处列出常用汇编指令的使用说明,以供参考。...
  • 数控车床编程--G 代码 M代码命令

    千次阅读 2021-05-23 08:43:41
    1 G 代码组及含义[表 6.2-1] G 代码组及解释( 带 * 者表示是开机时会初始化的代码。)2 G 代码解释定位(G00)1. 格式这个指令把刀具从当前位置移动到指令指定的位置 (在绝对坐标方式下), 或者移动到某个距离处 (在...
  • 原文地址: 数控机床的运动是由程序控制的,而准备功能和辅助功能是程序段的重要组成部分,也是程序编制过程中的核心问题。目前国际上广泛应用的是ISO...它是使数控机床或数控系统建立起某种加工方式的指令。 G代码
  • 8月13日,银河麒麟操作系统V10正式发布,其最大亮点就是专门对于国内自主研发的龙芯、...无独有偶同样也是8 月 13 日的全国计算机体系结构学术年会(ACA2020)上,龙芯中科董事长胡伟武作了名为《指令系统的自主与兼..
  • 什么是指令集架构

    千次阅读 2022-03-08 12:12:31
    指令集架构概念说明
  • 408 知识点笔记——计指令系统、中央处理器)

    千次阅读 多人点赞 2020-10-27 15:36:37
    文章目录4 指令系统5 中央处理器6 总线7 输入/输出系统 4 指令系统 【程序计数器、指令寄存器位数】 程序计数器给出下一条指令字的访存地址,取决于存储器的字数 指令寄存器用于接收取得的指令,取决于指令字长 如...
  • linux常用指令

    万次阅读 多人点赞 2022-01-23 14:26:38
    文章目录Linux下基本指令ls指令which指令alias指令ll指令pwd指令cd指令echo指令touch指令stat指令mkdir指令rmdir指令rm 指令man指令cp指令mv指令cat指令tac指令more指令less指令head指令tail指令时间相关指令 ...
  • CPU微指令相关概念

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

    千次阅读 2020-09-13 11:21:49
    (1)什么是指令集 参考: http://product.pconline.com.cn/itbk/bjbzj/notebook/1109/2522116.html 所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列...
  • 汇编语言的所有指令

    万次阅读 多人点赞 2017-11-11 09:43:15
    1、数据传送指令集MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,...
  • ARM汇编指令以及伪指令

    千次阅读 2020-10-26 17:21:05
    文章目录ARM寄存器ARM寻址方式数据处理指令转移指令程序状态寄存器访问指令加载/存储指令异常指令指令ARM的存储系统ATPCS介绍异常中断处理ARM链接器 ARM寄存器 R13:栈指针寄存器(SP) R14:连接寄存器(LR) R15:...
  • ARM指令集详解

    万次阅读 多人点赞 2018-07-18 23:48:27
    ARM指令集详解 1. 汇编 1.1. 通用寄存器   通用寄存器 37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针, cpsr_c代表的是这32位中的低8位,也就是控制位 CPSR有4个...
  • 多核处理器二、指令集架构指令集和处理器的关系指令集的重要性指令集的分类三、指令集架构和操作系统总结 前言 当我们在买电脑时,总要关注一下电脑中使用的是哪一款CPU,也就是中央处理单元,不同的CPU会影响电脑...
  • ARM汇编语言指令集汇总

    千次阅读 多人点赞 2020-08-21 18:02:09
    ARM汇编语言指令集汇总跳转指令存储器和寄存器交互数据指令(内存访问)数据传送指令数据算术运算指令数据逻辑运算指令比较指令组合和分离指令并行指令测试指令ThumbEE指令协处理器指令指令无线 MMX 技术伪指令...
  • 指令与选项 什么是Linux的指令? 指在Linux终端(命令行)中输入的内容就称之为指令。 一个完整的指令的标准格式:Linux通用的格式 #指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项 操作对象...
  • [整理]windows Win+R指令汇总

    千次阅读 2020-07-13 09:50:49
    文章目录查看运行服务 查看运行服务 执行指令 services.msc 功能: 可以查看正在运行的注册进程 可以手动打开以及关闭MySQL数据库
  • JVM字节码指令集大全及其介绍

    千次阅读 多人点赞 2019-08-22 23:39:48
    本节将会着重介绍一下JVM中的指令集、Java是如何跨平台的、JVM指令集参考手册等内容。 目录 Java是怎么跨平台的 平台无关的基石 JVM字节码指令介绍 字节码与数据类型 加载和存储指令 算术指令 类型转换指令 ...
  • 指令是指把由若干个程序指令组成的机器人程序作为一条单独的指令来记录,进而调用并执行该指令的功能。FANUC机器人支持记录150个宏指令,可以将现有的程序记录为宏指令,也可以单独创建宏程序,然后再将其记录为宏...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 238,867
精华内容 95,546
关键字:

同组指令代码