基于MIPS指令系统的处理器设计

 PS:word的多级标题转到csdn就乱了,不过不影响阅读,只是让我强迫症犯了。

         结构图是简图,主要看文字理解吧。

基于MIPS指令系统的处理器设计

  1. MIPS指令系统介绍

1.1 MIPS概述

MIPS(Microprocessor without Interlocked Pipeline Stages,无互锁流水线微处理器)是一种精简指令集(RISC)架构,在1981年由斯坦福大学的研究小组开发,其设计初衷是为了克服传统复杂指令集计算机(CISC)架构中的性能瓶颈,提供一种更加高效、简洁的处理器架构。

MIPS指令集采用精简指令集架构(RISC),相对于传统的复杂指令集(CISC),RISC指令集更加简洁、高效。因此MIPS指令集中只包含少量简单的指令,使指令执行速度更快,同时简化了处理器的设计和实现。MIPS架构具有32个32位的通用寄存器。寄存器作为CPU内部的数据存储单元,其数量和位宽对处理器的性能有着重要影响。MIPS的32位寄存器能够满足大多数应用场景的需求,同时保证了较高的执行效率,同时尽可能地减少了指令的数量。MIPS处理器采用流水线架构,将指令执行分为多个阶段,使得多条指令可以同时执行,提高了处理器的吞吐量,进一步提升了性能。MIPS的流水线架构经过优化,能够充分利用处理器的资源,实现高效的数据处理。

MIPS指令系统以其精简的指令集、通用的多个寄存器、高效的流水线架构等优势,成为了一种高效、可靠的处理器架构,被广泛应用于个人电脑、嵌入式系统、游戏控制台、网络设备和超级计算机等多个领域。

1.2 MIPS指令格式

MIPS指令集的所有指令均为固定字长,长度为32位(4字节),被分为三类:R类指令、I类指令和J类指令。

R类指令包含6位操作码(op)、两个源寄存器(rs、rt)、一个目的寄存器(rd)、一个6位功能码(func)以及(对于某些指令)一个5位移位量字段(shamt)。用于执行各种算术、逻辑、比较以及数据处理操作,R类指令的操作通常涉及三个寄存器之间的交互。

Bit#

31…26

25…21

20…16

15…11

10…6

5…0

R类指令

op

rs

rt

rd

shamt

func

表1.2.1 R类指令格式

I类指令包含6位操作码(op)、源寄存器(rs)、目的寄存器(rt)以及一个16位的立即数(immediate)。常用于执行算术逻辑运算、加载/存储操作以及其他直接使用立即数的操作。

Bit#

31…26

25…21

20…16

15…0

I类指令

op

rs

rt

immediate

表1.2.2 I类指令格式

J类指令包含6位操作码(op)和一个26位的目标地址(target)。专用于实现无条件跳转和分支操作,如函数调用、循环控制等。

Bit#

31…26

25…0

J类指令

op

address

表1.2.3 J类指令格式

1.3 MIPS寄存器

MIPS架构的处理器共有32个通用寄存器,均为32位。不同寄存器硬件上完全相同,功能上各不相同。

寄存器编号

别名

功能

$0

$zero

Constant 0

$1

$at

Assembly Temporary

$2,$3

$v0,$v1

Function Result

$4—$7

$a0—$a3

Argument 1 to 4

$8—$15

$t0—$t7

Unsaved Temporary

$16—$23

$s0—$s7

Saved Temporary

$24,$25

$t8,$t9

Unsaved Temporary

$26,$27

$k0,$k1

Reserved for EXCEPTION

$28

$gp

Pointer to Global Data

$29

$sp

Stack Pointer

$30

$fp

Frame Pointer

$31

$ra

Return Address

表1.3.1 MIPS寄存器

  1. 处理器设计
    1. 指令格式设计

本文选择具有代表性的lw,sw,j,add,sub这五条指令进行设计。

lw指令是取数指令,属于I类指令,其汇编格式为lw rt, offset(rs),其功能为rt ← memory[rs + (sign-extend) offset],即将offset进行位拓展后与rs寄存器中数据相加获得访存地址,然后从该地址中取出数据并存到rt寄存器中。

Bit#

31…26

25…21

20…16

15…0

lw指令

100011

rs

rt

offset

表2.1.1 lw指令格式

sw指令是存数指令,属于I类指令,其汇编格式为sw rt, offset(rs),其功能为memory[rs + (sign-extend) offset] ← rt,即将offset进行位拓展后与rs寄存器中数据相加获得访存地址,然后从rt寄存器中取出数据存到该地址中。

Bit#

31…26

25…21

20…16

15…0

sw指令

101011

rs

rt

offset

表2.1.2 sw指令格式

j指令是无条件跳转指令,属于J类指令,其汇编格式为j address,其功能为PC ←  (PC+4)[31..28],address/4,0,0,即将顺序指令地址PC+4的高4位作为高地址部分(31…28位),并与指令字中的 26 位立即数address左移两位得到的28位数据进行拼接,生成一个32位的无条件跳转目标地址,将该地址送入PC实现跳转。

Bit#

31…26

25…0

j指令

000010

address

表2.1.3 j指令格式

add指令是加法指令,属于R类指令,其汇编格式为add rd, rs, rt,其功能为rd ← rs + rt,即将rs中的加数与rt中的加数送入ALU中运算,得到和,将结果送到rd中,完成32位整数加法运算。

Bit#

31…26

25…21

20…16

15…11

10…6

5…0

add指令

000000

rs

rt

rd

00000

100000

表2.1.4 add指令格式

sub指令是减法指令,属于R类指令,其汇编格式为sub rd, rs, rt,其功能为rd ← rs - rt,即将rs中的被减数与rt中的减数送入ALU中运算,得到差,将结果送到rd中,完成32位整数减法运算。

Bit#

31…26

25…21

20…16

15…11

10…6

5…0

sub指令

000000

rs

rt

rd

00000

100010

表2.1.5 sub指令格式

2.2 微操作定义

一条指令的指令周期一般被分为取指周期、间址周期、执行周期和中断周期。本文选取的5个指令的指令周期只需要考虑取指周期和执行周期,又可以细分为取指,取数,执行,访存,写回五个阶段。根据这五个阶段的划分,考虑单总线CPU结构和MIPS架构的32个通用寄存器来进行这5个指令的微操作的定义。

图2.2.1 单总线CPU内部结构

2.2.1 lw指令

汇编格式为lw rt, offset(rs)。指令字长32位,其中0…15位为offset,16…20位为寄存器rt,21…25位为寄存器rs,26…31位为操作码。

取指阶段:

微操作

微操作命令

含义

PC→MAR

PCout,MARin

将PC中指令地址通过Bus送入MAR

1→R

MemR=1

读主存有效

M(MAR)→MDR

MARout,MDRin

从主存的MAR地址读取指令送入MDR

MDR→IR

MDRout,IRin

将MDR中的指令送入IR

OP(IR)→CU

IRout

将IR中指令的操作码送入CU

(PC)+4→PC

+4

PC+4

表2.2.1.1 lw指令取指微操作序列

取数阶段:

微操作

微操作命令

含义

R(IR[21…25])→Y

R(IR[21…25])out,Yin

将寄存器rs内的地址送入Y

表2.2.1.2 lw指令取数微操作序列

执行阶段:

微操作

微操作命令

含义

Y+Extended(IR[0…15])→Z

Yout,ALU+,Zin

将Y与位扩展的offset求和送入Z

表2.2.1.3 lw指令执行微操作序列

访存阶段:

微操作

微操作命令

含义

Z→MAR

Zout,MARin

将Z中的运算后的地址送入MAR

1→R

MemR=1

读主存有效

M(MAR)→MDR

MARout,MDRin

从主存中MAR地址读取指令送入MDR

表2.2.1.4 lw指令访存微操作序列

写回阶段:

微操作

微操作命令

含义

MDR→R(IR[16…20])

MDRout,

R(IR[16…20])in

将MDR中的数据送入寄存器rt

表2.2.1.5 lw指令写回微操作序列

2.2.2 sw指令

汇编格式为sw rt, offset(rs)。指令字长32位,其中0…15位为offset,16…20位为寄存器rt,21…25位为寄存器rs,26…31位为操作码。sw指令没用写回阶段。

取指阶段:

微操作

微操作命令

含义

PC→MAR

PCout,MARin

将PC中指令地址通过Bus送入MAR

1→R

MemR=1

读主存有效

M(MAR)→MDR

MARout,MDRin

从主存的MAR地址读取指令送入MDR

MDR→IR

MDRout,IRin

将MDR中的指令送入IR

OP(IR)→CU

IRout

将IR中指令的操作码送入CU

(PC)+4→PC

+4

PC+4

表2.2.2.1 sw指令取指微操作序列

取数阶段:

微操作

微操作命令

含义

R(IR[21…25])→Y

R(IR[21…25])out,Yin

将寄存器rs内的地址送入Y

表2.2.2.2 sw指令取数微操作序列

执行阶段:

微操作

微操作命令

含义

Y+Extended(IR[0…15])→Z

Yout,ALU+,Zin

将Y与位扩展的offset求和送入Z

表2.2.2.3 sw指令执行微操作序列

访存阶段:

微操作

微操作命令

含义

Z→MAR

Zout,MARin

将Z中的运算后的地址送入MAR

R(IR[16…20])→MDR

R(IR[16…20])out,

MDRin

将寄存器rt中的数据送入MDR

1→W

MemW=1

写主存有效

MDR→M(MAR)

MDRout,MARout

将MDR数据写入主存中MAR地址位置

表2.2.2.4 sw指令访存微操作序列

2.2.3 j指令

汇编格式为j address。指令字长32位,其中0…25位为跳转目标地址,26…31位为操作码。

取指阶段:

微操作

微操作命令

含义

PC→MAR

PCout,MARin

将PC中指令地址通过Bus送入MAR

1→R

MemR=1

读主存有效

M(MAR)→MDR

MARout,MDRin

从主存的MAR地址读取指令送入MDR

MDR→IR

MDRout,IRin

将MDR中的指令送入IR

OP(IR)→CU

IRout

将IR中指令的操作码送入CU

(PC)+4→PC

+4

PC+4

表2.2.3.1 j指令取指微操作序列

执行阶段:

微操作

微操作命令

含义

{PC,IR[0…25],0,0}→PC

PCin

将生成的跳转目标地址送入PC

表2.2.3.2 j指令执行微操作序列

2.2.4 add指令

汇编格式为add rd, rs, rt。指令字长32位,其中0…5位为func,6…10位为shamt,11…15位为寄存器rd,16…20位为寄存器rt,21…25位为寄存器rs,26…31位为操作码。6…10位的shamt为00000。

取指阶段:

微操作

微操作命令

含义

PC→MAR

PCout,MARin

将PC中指令地址通过Bus送入MAR

1→R

MemR=1

读主存有效

M(MAR)→MDR

MARout,MDRin

从主存的MAR地址读取指令送入MDR

MDR→IR

MDRout,IRin

将MDR中的指令送入IR

OP(IR)→CU

IRout

将IR中指令的操作码送入CU

(PC)+4→PC

+4

PC+4

表2.2.4.1 add指令取指微操作序列

取数阶段:

微操作

微操作命令

含义

R(IR[21…25])→Y

R(IR[21…25])out,Yin

将寄存器rs内的加数送入Y

表2.2.4.2 add指令取数微操作序列

执行阶段:

微操作

微操作命令

含义

Y+R(IR[16…20])→Z

Yout,

R(IR[16…20])out,Zin

将Y与寄存器rt中的加数求和送入Z

表2.2.4.3 add指令执行微操作序列

写回阶段:

微操作

微操作命令

含义

Z→R(IR[11…15])

Zout,R(IR[11…15])in

将Z中的和送入寄存器rd

表2.2.4.4 add指令写回微操作序列

2.2.5 sub指令

汇编格式为sub rd, rs, rt。指令字长32位,其中0…5位为func,6…10位为shamt,11…15位为寄存器rd,16…20位为寄存器rt,21…25位为寄存器rs,26…31位为操作码。6…10位的shamt为00000。

取指阶段:

微操作

微操作命令

含义

PC→MAR

PCout,MARin

将PC中指令地址通过Bus送入MAR

1→R

MemR=1

读主存有效

M(MAR)→MDR

MARout,MDRin

从主存的MAR地址读取指令送入MDR

MDR→IR

MDRout,IRin

将MDR中的指令送入IR

OP(IR)→CU

IRout

将IR中指令的操作码送入CU

(PC)+4→PC

+4

PC+4

表2.2.5.1 sub指令取指微操作序列

取数阶段:

微操作

微操作命令

含义

R(IR[21…25])→Y

R(IR[21…25])out,Yin

将寄存器rs内的被减数送入Y

表2.2.5.2 sub指令取数微操作序列

执行阶段:

微操作

微操作命令

含义

Y-R(IR[16…20])→Z

Yout,

R(IR[16…20])out,Zin

将Y与寄存器rt中的减数作差送入Z

表2.2.5.3 sub指令执行微操作序列

写回阶段:

微操作

微操作命令

含义

Z→R(IR[11…15])

Zout,R(IR[11…15])in

将Z中的差送入寄存器rd

表2.2.5.4 sub指令写回微操作序列

2.3 节拍划分

节拍划分应当遵循三项原则:原则一,微操作的先后顺序不得随意更改;原则二,被控对象不同的微操作尽量安排在一个节拍内完成;原则三,占用时间较短的微操作尽量安排在一个节拍内完成,并允许有先后顺序。

2.3.1 取指阶段

5条指令取指阶段的微操作序列相同,进行统一的节拍划分。

节拍

微操作

T0

PC→MAR,1→R

T1

M(MAR)→MDR,(PC)+4→PC

T2

MDR→IR,OP(IR)→ID

表2.3.1.1 取指阶段节拍划分

2.3.2 取数阶段

lw指令,sw指令,add指令,sub指令具有取数阶段,且4条指令取数阶段的微操作序列相同。

节拍

微操作

T0

T1

T2

R(IR[21…25])→Y

表2.3.2.1 取数阶段节拍划分

2.3.3 执行阶段

5条指令执行阶段不完全相同,分别进行节拍划分。

lw指令:

节拍

微操作

T0

T1

T2

Y+Extended(IR[0…15])→Z

表2.3.3.1 lw指令执行阶段节拍划分

sw指令:

节拍

微操作

T0

T1

T2

Y+Extended(IR[0…15])→Z

表2.3.3.2 sw指令执行阶段节拍划分

j指令:

节拍

微操作

T0

T1

T2

{PC,IR[0…25],0,0}→PC

表2.3.3.3 j指令执行阶段节拍划分

add指令:

节拍

微操作

T0

T1

T2

Y+R(IR[16…20])→Z

表2.3.3.4 add指令执行阶段节拍划分

sub指令:

节拍

微操作

T0

T1

T2

Y-R(IR[16…20])→Z

表2.3.3.5 sub指令执行阶段节拍划分

2.3.4 访存阶段

lw指令,sw指令具有访存阶段,访存阶段各有不同,分别进行节拍划分。

lw指令:

节拍

微操作

T0

Z→MAR,1→R

T1

M(MAR)→MDR

T2

表2.3.4.1 lw指令访存阶段节拍划分

sw指令:

节拍

微操作

T0

Z→MAR,1→W

T1

R(IR[16…20])→MDR

T2

MDR→M(MAR)

表2.3.4.2 sw指令访存阶段节拍划分

2.3.5 写回阶段

lw指令,add指令,sub指令具有写回阶段,add指令与sub指令写回阶段相同。

lw指令:

节拍

微操作

T0

T1

T2

MDR→R(IR[16…20])

表2.3.5.1 lw指令写回阶段节拍划分

add指令:

节拍

微操作

T0

T1

T2

Z→R(IR[11…15])

表2.3.5.2 add指令写回阶段节拍划分

sub指令:

节拍

微操作

T0

T1

T2

Z→R(IR[11…15])

表2.3.5.3 sub指令写回阶段节拍划分

2.4 控制器设计

本文控制器设计采用组合逻辑设计,这是由于本文只实现5条简单指令,指令数目较少,指令形式简单,适用于硬布线的组合逻辑设计,且组合逻辑设计思路清晰,简单明了,控制器运行速度快。

2.4.1 操作时间表

设计采用组合逻辑设计的控制器,首先需要列出各阶段的操作时间表。

取指阶段:

工作阶段

节拍

微操作命令

lw

sw

j

add

sub

IF取指

T0

PC→MAR

1

1

1

1

1

1→R

1

1

1

1

1

T1

M(MAR)→MDR

1

1

1

1

1

(PC)+4→PC

1

1

1

1

1

T2

MDR→IR

1

1

1

1

1

OP(IR)→ID

1

1

1

1

1

表2.4.1.1 取指阶段操作时间表

取数阶段:

工作阶段

节拍

微操作命令

lw

sw

j

add

sub

ID取数

T0

T1

T2

R(IR[21…25])→Y

1

1

1

1

表2.4.1.2 取数阶段操作时间表

执行阶段:

工作阶段

节拍

微操作命令

lw

sw

j

add

sub

EX执行

T0

T1

T2

Y+Extended(IR[0…15])→Z

1

1

{PC,IR[0…25],0,0}→PC

1

Y+R(IR[16…20])→Z

1

Y-R(IR[16…20])→Z

1

表2.4.1.3 执行阶段操作时间表

访存阶段:

工作阶段

节拍

微操作命令

lw

sw

j

add

sub

MEM访存

T0

Z→MAR

1

1

1→W

1

1→R

1

T1

M(MAR)→MDR

1

R(IR[16…20])→MDR

1

T2

MDR→M(MAR)

1

表2.4.1.4 访存阶段操作时间表

写回阶段:

工作阶段

节拍

微操作命令

lw

sw

j

add

sub

WB写回

T0

T1

T2

MDR→R(IR[16…20])

1

Z→R(IR[11…15])

1

1

表2.4.1.5 写回阶段操作时间表

2.4.2 最简表达式

根据列出的操作时间表,可以写出微操作命令的最简表达式。共17条不同的微操作命令,最简表达式分别为:

(1)PC→MAR

= IF*T0

(2)1→R

= IF*T0 + MEM*T0*(lw)

(3)M(MAR)→MDR

= IF*T1 + MEM*T1*(lw)

(4)(PC)+4→PC

= IF*T1

(5)MDR→IR

= IF*T2

(6)OP(IR)→ID

= IF*T2

(7)R(IR[21…25])→Y

= ID*T2*(lw + sw + add + sub)

(8)Y+Extended(IR[0…15])→Z

= EX*T2*(lw + sw)

(9){PC,IR[0…25],0,0}→PC

= EX*T2*(j)

(10)Y+R(IR[16…20])→Z

= EX*T2*(add)

(11)Y-R(IR[16…20])→Z

= EX*T2*(sub)

(12)Z→MAR

= MEM*T0*(lw + sw)

(13)1→W

= MEM*T0*(sw)

(14)R(IR[16…20])→MDR

= MEM*T1*(sw)

(15)MDR→M(MAR)

= MEM*T2*(sw)

(16)MDR→R(IR[16…20])

= WB*T2*(lw)

(17)Z→R(IR[11…15])

= WB*T2*(add + sub)

2.5 处理器结构及功能

2.5.1 处理器结构框图

针对所选取的5条经典指令,本文设计了一个简单处理器模型来实现这5条指令。

图2.5.1.1 针对5条指令的处理器模型结构框图

2.5.2 处理器各结构功能

程序计数器(PC):

保存将要执行的指令的地址。CPU在执行程序时,需要按照指令的顺序依次执行每个指令,PC中保存将要执行的指令的地址来确保CPU执行完一条指令后能够顺利调取下一条指令并执行。

对于本文的处理器而言,指令字长均为4字节,因此每执行完一条指令需要PC+4来得到下一条指令的地址,PC+4由单独的运算器实现。同时,PC能够接收到地址生成逻辑发出的跳转地址,以此来实现j指令的无条件跳转。

地址寄存器(MAR):

保存CPU访问主存的地址。在CPU需要访问主存时,地址都要先传入MAR,MAR通过地址总线与主存相连,CPU经过MAR与地址总线来访问主存。

数据寄存器(MDR):

保存从主存储器中读取的数据或准备写入主存储器的数据。MDR与CPU的数据总线和主存储器的数据总线相连,负责在CPU和主存储器之间传输数据。当CPU需要从主存储器读取数据时,MDR会接收这些数据;当CPU需要向主存储器写入数据时,MDR会发送这些数据。

指令寄存器(IR):

暂存当前正在执行的指令。每个周期IR会从内存中读取当前要执行的指令,供CPU进行解析和执行。

指令译码器(ID):

对从指令寄存器IR中获取的指令op码和func码进行分析译码,得到译码信号传入根据2.4中组合逻辑设计的硬布线控制器产生微操作控制信号序列。

地址生成逻辑:

负责lw,sw,j指令的地址运算,其中应包括一个运算器来执行加法运算实现lw和sw的地址偏移,还应有一个位扩展单元进行j指令需要的位扩展以及左移两位的逻辑电路从而实现j指令的地址运算。

硬布线控制器(CU):

接收ID发送的译码信号,通过设计好的逻辑电路得到微操作控制信号序列,实现对各个通路控制开关的控制,进而完成指令的执行。

其中的时序产生器负责节拍信号以及阶段信号的产生。一个指令周期共有取指,取数,执行,访存,写回五个阶段,每个阶段由三个节拍构成,共十五个节拍。

图2.5.2.1 时序产生器输出

由5条指令得到5种译码信号lw,sw,j,add,sub,结合时序产生器的输出经由逻辑电路得到2.4中17种微操作命令对应的微操作控制信号序列。

通用寄存器(GR):

能够存储数据,来实现多种功能。本文基于MIPS架构,共有32个通用寄存器($0~$31),每个寄存器具有各自的功能,在表1.3.1中介绍了各个寄存器的具体功能。

算术逻辑单元(ALU):

执行基本的算术和逻辑运算,支持实现二进制加减乘除以及取模等算术运算,与或非异或等逻辑运算,还有二进制的位移操作。本文设计的ALU只需要有加减移位功能即可满足5条指令的实现要求。

  1. 指令的实现

以微操作最多的lw指令为例,结合图2.5.1.1的处理器简单模型和图2.5.2.1的时序图,展示lw rt, offset(rs)实现的过程。

第一个时钟周期,时序产生器发出IF信号与T0信号,信号通过控制器中的逻辑电路输出PC→MAR,1→R的信号,信号使得PCout与MARin打开,R置为1。PC中的指令地址被送入MAR和一个加法运算器中,主存处于可读状态。

第二个时钟周期,时序产生器发出IF信号与T1信号,信号通过控制器中的逻辑电路输出M(MAR)→MDR,(PC)+4→PC的信号,信号使得MDRin和PCin打开。主存中的指令被送入MDR,PC中的指令地址更新为PC+4。

第三个时钟周期,时序产生器发出IF信号与T2信号,信号通过控制器中的逻辑电路输出MDR→IR,OP(IR)→ID的信号,信号使得MDRout,IRin和OP(IR)out打开。MDR中的指令被送入IR,IR中的指令的op码和func码被送入指令译码器得到lw信号,地址码被送入地址生成逻辑。

第四个时钟周期,没有微操作需要执行。

第五个时钟周期,没有微操作需要执行。

第六个时钟周期,时序产生器发出ID信号与T2信号,与lw信号一起通过控制器中的逻辑电路输出R(IR[21…25])→Y的信号,信号使得源寄存器rs的out和Yin打开。源寄存器rs中的地址信息被送入地址生成逻辑的运算器中。

第七个时钟周期,没有微操作需要执行。

第八个时钟周期,没有微操作需要执行。

第九个时钟周期,时序产生器发出EX信号与T2信号,与lw信号一起通过控制器中的逻辑电路输出Y+Extended(IR[0…15])→Z的信号,信号使得Yout和Zin打开,运算器做加法运算。偏移后的地址被送入到Z暂存。

第十个时钟周期,时序产生器发出MEM信号与T0信号,与lw信号一起通过控制器中的逻辑电路输出1→R,Z→MAR的信号,信号使得R置为1,Zout和MARin打开。偏移后的地址被送入到MAR中。

第十一个时钟周期,时序产生器发出MEM信号与T1信号,与lw信号一起通过控制器中的逻辑电路输出M(MAR)→MDR的信号,信号使得MDRin打开。主存中的数据被送入MDR中。

第十二个时钟周期,没有微操作需要执行。

第十三个时钟周期,没有微操作需要执行。

第十四个时钟周期,没有微操作需要执行。

第十五个时钟周期,时序产生器发出WB信号与T2信号,与lw信号一起通过控制器中的逻辑电路输出MDR→R(IR[16…20])的信号,信号使得目标寄存器rt的in 和MDRout打开。MDR中的数据被送入目标寄存器rt。

其余四条指令的实现过程与lw相同。首先时序产生器产生时序信号,控制器根据时序信号完成取指,译码后得到指令信号,在之后的阶段中指令信号与时序信号一起产生控制信号,完成指令的执行过程。

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值