计算机组成原理CPU设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1C P U的用途

字长:8位 D[7…0]

寻址范围:64byte,2的6次方=64,A[5…0]

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

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

为了确定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还必须完成两件事。

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

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

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

(一个数已经在AC)

b. 对于COM和JREL,它们不需要再次访问存贮器,一旦它们返回到

FETCH1周期,FETCH1将把PC的值装到AR,覆盖无用的值。

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

取指令周期的状态图

2

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内完成,因为计数器不必占用

相关文档
最新文档