计算机组成基础学习知识原理CPU设计.docx

上传人:b****5 文档编号:6277154 上传时间:2023-01-05 格式:DOCX 页数:19 大小:128.32KB
下载 相关 举报
计算机组成基础学习知识原理CPU设计.docx_第1页
第1页 / 共19页
计算机组成基础学习知识原理CPU设计.docx_第2页
第2页 / 共19页
计算机组成基础学习知识原理CPU设计.docx_第3页
第3页 / 共19页
计算机组成基础学习知识原理CPU设计.docx_第4页
第4页 / 共19页
计算机组成基础学习知识原理CPU设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

计算机组成基础学习知识原理CPU设计.docx

《计算机组成基础学习知识原理CPU设计.docx》由会员分享,可在线阅读,更多相关《计算机组成基础学习知识原理CPU设计.docx(19页珍藏版)》请在冰豆网上搜索。

计算机组成基础学习知识原理CPU设计.docx

计算机组成基础学习知识原理CPU设计

1CPU的用途

字长:

8位D[7…0]

寻址范围:

64byte,2的6次方=64,A[5…0]

2确定ISA(包括程序员可访问的寄存器)

1)程序员可访问的寄存器AC—8位累加器

CPU的指令集(共4条)

指令

操作码

操作

COM

00XXXXXX

AC←AC’(取反)

JREL

01XXXXXX

PC←PC+00AAAAAA

OR

10XXXXXX

AC←AC∨M[00AAAAAA]

SUB1

11AAAAAA

AC←AC-M[00AAAAAA]-1

2)其他寄存器

AR

地址寄存器

6位

由A[5…0]向存贮提供地址

PC

程序计数器

6位

指向下一条指令的地址

DR

数据寄存器

8位

通过D[7…0]从存贮器接收指令和数据

IR

指令寄存器

2位

存放从存贮器中取回的指令的操作码部分

3CPU设计状态图

为了确定CPU的状态图,对每条指令作以下分析

1)从存贮器中取指令(所有指令均相同)

原理:

在CPU能执行指令之前,它必须从存贮器中取出,CPU通过执行如下的操作序列完成这个任务

A)选择存贮单元由A[5…0]确定

B)对工A[5…0]译码,延迟,并向存贮器发一个信号使存贮器将此指令输出到它的输出引脚。

这些引脚与CPU的D[7…0]相连。

CPU从这些引脚读入数据。

具体操作:

(分为三个状态)

A)要取的指令的地址存放在程序计数器(PC)中。

第一步就是把PC的内容拷贝到AR中。

FETCH1:

AR←PC

B)CPU必须从存贮器中读取指令,为此CPU必须发一个READ信号到器的RD(RD-RAM,相对于OE-ROM)端上使存贮器将数据发送到D[7…0]上,存入CPU的DR寄存器中。

同时实现PC←PC+1,为取下一条指令作准备。

FETCH2:

DR←M,PC←PC+1

C)作为取指令的一部分,CPU还必须完成两件事。

1DR的高2位拷贝到IR,目的是确定指令的功能

2DR的低6位拷贝到AR,目的:

a.对于ORT和SUB1指令这6位包含了指令的一个操作数的存贮器地址(一个数已经在AC)

b.对于COM和JREL,它们不需要再次访问存贮器,一旦它们返回到FETCH1周期,FETCH1将把PC的值装到AR,覆盖无用的值。

FETCH3:

IR←DR[7,6],AR←DR[5…0]

取指令周期的状态图

2)指令译码(每条指令的操作码都是唯一的)

本CPU有四条指令,因此有四个不同的执行同期,为此用IR中的值来确定即可。

3)指令执行(每条指令的执行周期都是一样的)

每条指令的执行周期的状态分析:

1.COM指令

功能是对AC的内容取反,执行周期的状态是

COM1:

AC←AC’

2.JREL指令

代码为01AAAAAA,即转移的相对地址由AAAAAA确定,而AAAAAA在DR[5…0]中,所以有

JREL1:

PC←PC+DR[5…0]

3.OR指令

为了执行指令,必须完成两件事情

OR1:

DR←M;从存贮器取出一个操作数送到数据寄存器

OR2:

AC←AC∨DR;与AC相或,并把结果存回AC中

 

4.SUB1指令

为了执行指令,必须完成两件事情

SUB11:

DR←M;从存贮器取出一个操作数送到数据寄存器

SUB12:

AC<-AC+DR';对DR取反,等于-DR-1

综上所述可知CPU的完全状态图如下

4设计必要的数据通路和控制逻辑,以便实现这个有限状态机,最终实现这个CPU。

状态图以及寄存器的传输说明了实现本CPU所须完成工作(方法和步骤如下)

1)与CPU的每个状态相关联的操作(共九个状态)

FETCH1:

AR←PC

FETCH2:

DR←M,PC←PC+1

FETCH3:

IR←DR[7,6],AR←DR[5…0]

COM1:

AC←AC’

JREL1:

PC←PC+DR[5…0]

OR1:

DR←M;

OR2:

AC←AC∨DR;

SUB11:

DR←M;

SUB12:

AC<-AC+DR'

2)建立数据通路的原理和方法

A.存贮器是通过引脚D[7…0]将数据送给CPU。

B.存贮器的地址是通过地址引脚A[5…0]从AR中获得的。

于是CPU与存贮器之间要A[5…0](地址)和D[7…0](数据)通路,如下图

3)总线类型的确定方法

原理:

首先把操作数重新分组,依据是指导修改同一个寄存器的操作分配在同一组。

AR:

AR←PC,AR←DR[5…0]

PC:

PC←PC+DR[5…0],PC←PC+1

DR:

DR←M,

IR:

IR←DR[7,6],

AC:

AC<-AC+DR',AC←AC∨DR,AC←AC’

决定每个部件应完成的功能

a>AR,DR,IR,AC

总是从其他一些部件中装入数据。

若数据已在总线上,则需要做的是能够执行并装入操作。

(LD端口分别是ARLOAD,DRLOAD,IRLOAD,ACLOAD信号同步装入)

b>PC

能从其他一些部件中装入数据,还有相应的自增(INC)当前值,所以应创建一个单独的硬件使之能自增。

(端口有PCINC,PCLOAD)

4)把每个部件都连接到系统总线上

三态缓冲区——原有的寄存器部是把结果输出到系统总线,使CPU内部数据冲突,所以应增加三态缓冲区加以控制,但AR的输出还应与A[5…0]相接,这是寻址所需。

5)根据实际需要修改上图的设计,并加上适当控制信号名称

1.AR:

仅向存贮器提供地址,没有必要将它的输出连接到内部总线上,加上ARLOAD实现从BUS装入数据。

2.AR←PC:

保留三态缓冲器由PCBUS控制同步

3.IR:

不通过内部总线向任何其他部件提供数据,而IR的输出将直接送到控制器用于确定指令的功能

4.AC:

本CPU不向其他任何单位提供数据

5.DR[7…0]:

不统一,有6位也有2位宽度,必须确定哪些寄存器从总线的哪些位上接收和发送数据。

应有DRBUS实现同步。

DRLOAD实现LD

6.AC:

必须能装载AC+DR'的和,以及AC∨DR与AC’的逻辑与结果。

CPU必须包含一个能产生这些结果的ALU,并由ACLOAD实现装入。

7.PC:

必须能装载PC+DR[5…0]的和。

CPU必须包含一个能产生这些结果的ALU并由PCLOAD实现载入,而PCINC实现PC←PC+1

ALU的设计

1)ALU1(与PC相连)的设计

数据通路的分析:

功ALU1必须接收PC和DR作为输入,然后把运算结果输出到PC

实现PC←PC+DR[5…0]

在本CPU中,把PC的导线和ALU的输入输出相连起来,并且利用系统总线把DR和ALU的输入连接起来。

用计数器来实现PC←PC+1操作,就可以在FETCH2内完成,因为计数器不必占用总线的时间。

2)ALU2(与AC相连)的设计

在本ALU的设计中AC和ALU的输入输出连接,并且利用系统总线把DR和ALU和输入相连起来。

([ALUS1,ALUS2]=[0,0],选AC←AC’,

[ALUS1,ALUS2]=[0,1],选AC←AC∨DR,

[ALUS1,ALUS2]=[1,0],选AC<-AC+DR',)

用硬布线的方法设计控制器

组成:

计数器:

保存当前状态

共有9个状态(四条指令,共有9个状态)所以需要一个四——16位译码器,译码器中有7个状态没用到。

译码器:

接收当前状态并为每个状态生成单独的信号

逻辑组合:

接受单独的状态信号,为每一部件生成控制信号以及计数器的控制信号

原理图:

计数器与译码器的设计:

1.FETCH1状态:

规定计数器的0值,使用计数器的CLR=1到达这一状态。

(指令执行完毕后,转入的取址状态。

2.将顺序状态设定为计数器的连续值,用INC实现。

3利用IR映射1[IR]0来确定指令的执行

如下表

IR

计数值

状态

00

1000

COM1

01

1010

JREL1

10

1100

OR1

11

1110

SUB1

指令的执行

FETCH1――――――――――――――――0

FETCH2――――――――――――――――1

FETCH3――――――――――――――――2

COM1:

――――――――――――――――8

JREL1:

――――――――――――――――10

OR1:

――――――――――――――――12

OR2:

――――――――――――――――13

SUB11:

――――――――――――――――14

SUB12:

――――――――――――――――15

计数器控制信号的确定

LD:

在取址周期的FETCH3状态中发出,进入执行周期的第一个状态(装载1IR[]0进入指令的正确执行周期)FETCH3:

IR←DR[7,6],AR←DR[5…0]

INC:

CLR:

如上图所示

根据译码器的输出信号组合后产生CPU中寄存器的有关信号

1 ARLOAD(装载地址寄存器的控制信号)

FETCH1:

AR←PC

FETCH3:

AR←DR[5…0]

2PCLOADPCINC

PCLOAD=JREL1:

PC←PC+DR[5…0]

PCINC=FETCH2:

PC←PC+1

3DRLOAD(实现DR←M)

FETCH2+OR1+SUB11

4ACLOAD(实现AC←AC’,AC←AC∨DR,AC<-AC+DR')

ACLOAD=COM1+OR2+SUB12

5IRLOAD=FETCH3

6ALUS1,ALUS2

与AC相连的ALU有两个控制信号

[ALUS1,ALUS2]=[0,0],选COM1:

AC←AC’

[ALUS1,ALUS2]=[0,1],选OR2:

AC←AC∨DR;

[ALUS1,ALUS2]=[1,0],选SUB12:

AC<-AC+DR'

ALUS1=SUB12

ALUS2=OR2

缓冲器控制信号

许多操作需从内部总线上获取数据,CPU必须能控制缓冲器以便在合适的时间将正确的数据放到总线上,为此应满足如下逻辑关系。

MEMBUS=FETCH2+OR1+SUB11

PCBUS=FETCH1

READ=FETCH2+OR1+SUB11

DRBUS=FETCH3+JREL1+OR2+SUB12

部分电路图如下:

设计验证

1.程序段如下所列[存贮单元:

指令]

0:

COM

1:

JREL0

2OR4

3:

SUB5

420H

5:

30H

2.CPU遵循状态图并以合适的状态顺序取出、译码和执行

每条指令:

COM:

FETCH1→FETCH2→FETCH3→COM1

JREL4:

FETCH1→FETCH2→FETCH3→JREL1

OR5:

FETCH1→FETCH2→FETCH3→OR1→OR2

SUB6:

FETCH1→FETCH2→FETCH3→SUB11→SUB12

2.对这段程序的一次循环的跟踪情况(所有寄存器的初始值都是0)

指令

状态

有效信号

所执行的操作

下一个状态

COM

FETCH1

PCBUS,ARLOAD

AR←0

FETCH2

FETCH2

READ,MEMBUS,

DRLOAD,PCINC

DR←00H,PC←1

FETCH3

FETCH3

DRBUS,ARLOAD,

IRLOAD

IR←00

AR←00H

COM1

COM1

ACLOAD

AC←00H’=FFH

FETCH1

指令

状态

有效信号

所执行的操作

下一个状态

JREL0

FETCH1

PCBUS,ARLOAD

AR←1

FETCH2

FETCH2

READ,MEMBUS,

DRLOAD,PCINC

DR←40H

PC←2

FETCH3

FETCH3

DRBUS,ARLOAD,

IRLOAD

IR←01,

AR←00H

JREL1

JREL1

DRBUS,PCLOAD

PC←02H+00H=02H

FETCH1

OR4

FETCH1

PCBUS,ARLOAD

AR←2

FETCH2

FETCH2

READ,MEMBUS,

DRLOAD,PCINC

DR←84H,

PC←3

FETCH3

FETCH3

DRBUS,ARLOAD,

IRLOAD

IR←10,

AR←04H

OR1

OR1

READ,MEMBUS,DRLOAD

DR←20H;

OR2

OR2

DRBUS,ALUS2

ACLOAD

AC←FFH∨20H=FFH

FETCH1

SUB5

FETCH1

PCBUS,ARLOAD

AR←3

FETCH2

FETCH2

READ,MEMBUS,

DRLOAD,PCINC

DR←C5H,

PC←4

FETCH3

FETCH3

DRBUS,ARLOAD,

IRLOAD

IR←11,

AR←05H

SUB11

SUB11

READ,MEMBUS,

DRLOAD

DR←30H

SUB12

SUB12

DRBUS,ALUS1

ACLOAD

AC←FFH+30H'=2FH

FETCH1

用微程序控制器设计

一微程序控制器的基本框图

两种可能的下址方式(由MUX实现选择)

S=1―――操作码映象(经指令译码进入下一条指令的执行周期)

S=0―――绝对跳转(下一条要执行的微指令在控存内)

工作原理分析描述

1)确定微子程序的第一条指令入口地址。

方法是根据取批中的最后一个状态FETCH3,便可转入到四条指令中任一条执行周期的第一条微指令入口,但必须通过MAP输入来实现

2)下址的确定

绝对跳转:

可直接跳转到FETCH1状态

当前地址加1。

3)几个参数的设定

控存中地址的倍数

24=16>9因共有9条微指令,可用四位

MUX→微地址寄存器,微地址寄存器→控存

24=16>9用四位

确定UPOS的位数

二生成正确序列并设计映象逻辑

1.给有限状态机的每一种状态分配一个控存地址

利用IR映射1[IR]0来确定指令的执行如下表

IR

计数值

状态

00

1000

COM1

01

1010

JREL1

10

1100

OR1

11

1110

SUB1

2.其余微指令的地址

微程序控制器的状态地址

FETCH1――――――――――――――――0

FETCH2――――――――――――――――1

FETCH3――――――――――――――――2

COM1:

――――――――――――――――8

JREL1:

――――――――――――――――10

OR1:

――――――――――――――――12

OR2:

――――――――――――――――13

SUB11:

――――――――――――――――14

SUB12:

――――――――――――――――15

3.确定微指令中的选择域和地址域,即生成正确的微指令执行顺序

1)一般状态转换

设SEL=0,ADDR为下一条指令要执行的控存号,一个微指执行完后,从ADDR中得到下址,转到ADDR指定的微指令

2)特别状态FETCH3下址的确定

当FETCH3执行完后,必须到指令执行周期的微子程序入处,根据1IR[]0所算出的结果

三生成正确的微操作及相应的控制信号

用水平型微指令生成微操作及用垂直型指令生成微操作

本CPU采用水平型微指令生成微操作法

微操作及它们的助记符

助记符

微操作

ARPC

AR←PC

DRM

DR←M

PCIN

PC←PC+1

IRDR

IR←DR[7,6]

ARDR

AR←DR[5…0]

NOAC

AC←AC’

PCPLUSDR

PC←PC+DR[5…0]

ACORDR

AC←AC∨DR

ACSUBDR

AC←AC+DR'

由于IRDR和ARDR在同一个微操作进行,可以对他们进行合并为AIDR来表示。

指令格式

选择域1位

微操作域8位

下址域4位

微程序控制器基本的水平微代码

状态

地址

SE

L

AR

PC

DR

M

PC

IN

AI

DR

NO

AC

PCPL

USDR

ACO

RDR

AC

SU

BDR

AD

DR

FETCH1

0000

0

1

0

0

0

0

0

0

0

0001

FETCH2

0001

0

0

1

1

0

0

0

0

0

0010

FETCH3

0010

1

0

0

0

1

0

0

0

0

****

COM1

1000

0

0

0

0

0

1

0

0

0

0000

JREL1

1010

0

0

0

0

0

0

1

0

0

0000

OR1

1100

0

0

0

1

0

0

0

0

0

1101

OR2

1101

0

0

0

0

0

0

0

1

0

0000

SUB11

1110

0

0

1

0

0

0

0

0

0

1111

SUB12

1111

0

0

0

0

0

0

0

0

1

0000

1位

8位

4位

控存容量:

(1+8+4)*9=117位

CPU控制信号值

控制信号

ARLOAD

ARPC∨AIDR

PCLOAD

PCPLUSDR

PCINC

PCIN

DRLOAD

DRM

ACLOAD

NOAC∨ACORDR∨ACSUBDR

IRLOAD

AIDR

ALUS1

ACSUBDR

ALUS2

ACORDR

MEMBUS

DRM

PCBUS

ARPC

READ

DRM

DRBUS

AIDR∨PCPLUSDR∨ACORDR∨ACSUBDR

设计体会

由于这个CPU的设计和教材上的例子很相似,只要按照教材上设计程序就可以一步步的设计出来。

通过这个CPU设计对CPU的指令的执行和实现有了更加深的了解,也对CPU内部的结构有了更好的理解。

对这类非常简单的CPU设计的过程和具体步骤有一定的了解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1