一个非常简单地CPU地设计.ppt

一个非常简单地CPU地设计.ppt

ID:52497651

大小:370.00 KB

页数:77页

时间:2020-04-08

一个非常简单地CPU地设计.ppt_第1页
一个非常简单地CPU地设计.ppt_第2页
一个非常简单地CPU地设计.ppt_第3页
一个非常简单地CPU地设计.ppt_第4页
一个非常简单地CPU地设计.ppt_第5页
资源描述:

《一个非常简单地CPU地设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一个非常简单的CPU的设计1、组合逻辑控制器2、微程序控制器1.cpu定义我们按照应用的需求来定义计算机,本文介绍一个非常简单的CPU的设计,它仅仅用来教学使用的。我们规定它可以存取的存储器为64byte,其中1byte=8bits。所以这个CPU就有6位的地址线A[5:0],和8位的数据线D[7:0]。我们仅定义一个通用寄存器AC(8bits寄存器), 它仅仅执行4条指令如下:InstructionInstructionCodeOperationADD00AAAAAAAC<—AC+M[AAAAAA]AND01AAAAAAAC<—AC^M[AAA

2、AAA]JMP10AAAAAAGOTOAAAAAAINC11XXXXXXAC<—AC+1除了寄存器AC外,我们还需要以下几个寄存器:地址寄存器A[5:0],保存6位地址。程序计数器PC[5:0],保存下一条指令的地址。数据寄存器D[7:0],接受指令和存储器来的数据。指令寄存器IR[1:0],存储指令操作码。2.取指设计在处理器执行指令之前,必须从存储器取出指令。其中取指执行以下操作:通过地址端口A[5:0]从地址到存储器等待存储器准备好数据后,读入数据。由于地址端口数据A[5:0]是从地址寄存器中读出的,所以取指第一个执行的状态是Fetch1:

3、AR<—PC接下来cpu发出read信号,并把数据从存储器M中读入数据寄存器DR中。同时pc加一。Fetch2:DR<—M,PC<—PC+1接下来把DR[7:6]送IR,把DR[5:0]送ARFetch3:IR<—DR[7:6],AR<—DR[5:0]3.指令译码Cpu在取指后进行译码后才知道执行什么指令,对于本文中的CPU来说只有4条指令也就是只有4个执行例程,状态图如下:4.指令执行对译码中调用的4个例程我们分别讨论:4.1ADD指令ADD指令需要CPU做以下两件事情:从存储器取一个操作数把这个操作数加到AC上,并把结果存到AC,所以需要以下

4、操作:ADD1:DR<—MADD2:AC<—AC+DR4.2AND指令AND指令执行过程和ADD相似,需要以下操作:AND1:DR<—MAND2:AC<—AC^DR4.3JMP指令JMP指令把CPU要跳转的指令地址送PC,执行以下操作:JMP1:PC<—DR[5:0]4.4INC指令INC指令执行AC+1操作:INC1:AC<—AC+15.建立数据路径这一步我们来实现状态图和相应的寄存器传输。首先看下面的状态及对应的寄存器传输:Fetch1:AR<—PCFetch2:DR<—M,PC<—PC+1Fetch3:IR<—DR[7:6],AR<—DR[

5、5:0]ADD1:DR<—MADD2:AC<—AC+DRAND1:DR<—MAND2:AC<—AC^DRJMP1:PC<—DR[5:0]INC1:AC<—AC+1为了设计数据路径,我们可以采用两种办法:创造直接的两个要传输组件之间的直接路径在CPU内部创造总线来传输不同组件之间的数据首先我们回顾一下可能发生的数据传输,以便确定各个组件的功能。特别的我们要注意把数据载入组件的各个操作。首先我们按照他们改变了那个寄存器的数据来重组这些操作。得到如下的结果:AR:AR<—PC;AR<—DR[5:0]PC:PC<—PC+1;PC<—DR[5:0]DR:D

6、R<—MIR:IR<—DR[7:6]AC:AC<—AC+DR;AC<—AC^DR;AC<—AC+1现在我们来看每个操作来决定每个组件执行什么样的功能,AR,DR,IR三个组件经常从其他的组件载入数据(从总线),所以只需要执行一个并行输入的操作。PC和AC能够载入数据同时也能够自动加一操作。下一步我们把这些组件连接到总线上来,如图所示:如上图所示,各个组件与总线之间通过三态连接,防止出现总线竞争。AR寄存器送出存储器的地址,DR寄存器用于暂存存数起来的数据。到现在为止我们还没有讨论有关的控制信号,我们现在只是保证了所有的数据传输能够产生,我们将在后

7、面章节来使这些数据传输正确的产生---控制逻辑。现在我们来看以下者写数据传输中有没有不必要的传输:AR仅仅提供数据给存储器,所以他不需要连接到总线上。IR不通过总线提供数据给任何组件,所以他可以直接输出到控制单元。AC不提供数据到任何的组件,可以不连接到总线上。总线是8bit宽度的,但是有些传输是6bit或者2bit的,我们必须制定寄存器的那几位送到总线的那几位。AC要可以载入AC和DR的和或者逻辑与的值,数据路径中还需要进行运算的ALU。由此我们做以下工作:去掉AR,IR,AC与总线的连接。我们约定寄存器连接是从总线的低位开始的。AR,PC连接

8、到Bus[5:0],由于IR是接受DR[7:6]的,所以可以连接到总线的Bus[7:6]。我们设定,AC作为ALU的一个输入,另一个输入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。