计算机组成原理_课程设计任务书.doc_第1页
计算机组成原理_课程设计任务书.doc_第2页
计算机组成原理_课程设计任务书.doc_第3页
计算机组成原理_课程设计任务书.doc_第4页
计算机组成原理_课程设计任务书.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计课程名称: 计算机组成原理 设计题目: 一个非常简单的CPU的设计 学 院: 信息工程与自动化 专 业: 计算机科学与技术 年 级: 08级 1班 学生姓名: 张桥 指导教师: 李凌宇 日 期: 2010-9-9 教 务 处 制 课 程 设 计 任 务 书 信息工程与自动化 学院 计算机 专业 08 1 年级学生姓名: 张桥 课程设计题目: 一个简单的CPU的设计 课程设计主要内容:设计一台完整的计算机。首先要确定该计算机的功能和用途。在设计中根据功能和用途确定指令系统,定义数据通路,设计每条指令的执行流程,要求利用微程序进行设计,每人至少要求4条CPU指令,可以自己选择;在设计中要求画出指令系统的格式并说明各位的意义;要求画出数据通路并定义微操作信号;要求画出微程序流程图。设 计 指 导 教 师 (签字): 教学基层组织负责人(签字): 年 月 日一台模型计算机的设计一、教学目的、任务与实验设备融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间空间”概念的理解,从而清晰地建立计算机的整机概念。二、数据格式和指令系统本模型机是一个8位定点二进制计算机,具有四个通用寄存器:R0R3,能执行11条指令,主存容量为256KB。1 数据格式数据按规定采用定点补码表示法,字长为8位,其中最高位(第7位)为符号位,小数点位置定在符号位后面,其格式如下:数值相对于十进制数的表示范围为: 1X1272 指令格式及功能由于本模型机机器字只有8位二进制长度,故使用单字长指令和双字长指令。 LDR Ri,D格式 7 4 3 2 1 00 0 0 0Ri不 用D功能:RiM(D)(2) STR Ri,D格式 7 4 3 2 1 00 0 0 1Ri不 用D功能:M(D)(Ri)(3) ADD Ri,Rj格式 7 4 3 2 1 00 0 1 0RiRj功能:Ri (Ri) (Rj)(4) SUB Ri,Rj格式 7 4 3 2 1 00 0 1 1RiRj功能:Ri (Ri) (Rj)(5) AND Ri,Rj格式 7 4 3 2 1 00 1 0 0RiRj功能:Ri (Ri) (Rj)(6) OR Ri,Rj格式 7 4 3 2 1 00 1 0 1RiRj功能:Ri (Ri) (Rj)(7) MUL Ri,Rj格式 7 4 3 2 1 00 1 1 0RiRj功能:Ri (Ri) (Rj)(8) 转移指令格式 7 4 3 2 1 00 1 1 1条件不 用D功能: 条件码 00 无条件转移 PC D01 有进位转移 PC D10 结果为0转移 PC D11 结果为负转移 PC D IN Ri,M j格式 7 4 3 2 1 01 0 0 1RiMj其中M j为设备地址,可以指定四种外围设备,当M j=01时,选中实验箱的二进制代码开关。功能: Ri (M j) OUT Ri,M j格式 7 4 3 2 1 01 0 1 0RiMj当M j=10时,选中实验箱的显示灯。功能: (M j) Ri HALT(停机指令)格式 7 4 3 2 1 01 0 1 1不用不用 功能: 用于实现停机。 三、总体设计总体设计的主要任务是(1) 选定CPU中所使用的产要器件;(2) 根据指令系统、选用的器件和设计指标,设计指令流的数据通路;(3) 根据指令系统、选用的器件和设计指标,设计数据流的数据通路。计算机的工作过程,实质上是不同的数据流在控制信号作用下在限定的数据通路中进行传送。数据通路不同,指令所经过的操作过程也不同,机器的结构也就不样,因此数据通路的设计是至关重要的。所谓数据通路的设计,也就是确定机器各逻辑部件相对位置的总框图。数据远路的设计,目前还没有非常标准的方法。主要是依据设计者的经验,并参考现有机器的三种典型形式(单总线、双总线或三总线结构),根据指令系统的要求,可采用试探方法来完成。其主要步骤如下: (1) 对指令系统中的各条指令进行分析,得出所需要的指令周期与操作序列,以便决定各器件的类型和数量。 (2) 构成一个总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所包涵的数据通路都能实现,并满足技术指标的要求。 (3) 检验全部指令周期的操作序列,确定所需要的控制点和控制信号。 (4) 检查所设计的数据通路,尽可能降低成本,简化线路。以上过程可以反复进行,以便得到一个较好的方案。图1给出了一个没有考虑乘法除法指令操作的总框图参考方案,注意,在此方案确定之后,应该检查所选用的各个器件是否满足数据通路的要求。实际上,数据通路的设计与器件的选择应同时进行而不能分离地工作。其次,接入总线的器件都要有三态输出,以便与总线连接。另外,在信息传送过程中应当注意器件原码和反码输出的配合关系。图1所示的方案采用单总线结构,使用的许多器件都是三态输出,这种方案便于总线的连接和扩展,但缺点是指令和数据的传送都要经过总线,因此对总线的使用权就要分配得当。另外,执行算术逻辑指令时,先将第一个操作数由通用寄存器Ri送至缓冲寄存器DR1,然后再由通用寄存器Rj取第二个操作数送至缓冲寄存器DR2,之后送往ALU进行运算。显然,执行条算术逻辑指令的时间相应要长一些。 图1 模型机数据通路框图四、微程序控制器数据通路框图旦确定,指令流与数据流的通路也就随之最后确定,因而运算器和控制器的大部分结构也就确定下来了。图1中各功能器件上还标注了控制点及其控制信号这些控制信号就是微程序控制器进行设计的依据。1微指令格式微指令格式建议采用水平型微指令,微命令编码采用直接表示法和分段直接译码法相结合的混合表示法,以缩短微指令长度。后继地址采用断定方式。微指令格式如下:控制字段判别字段下址字段同学们应根据本模型的具体情况来确定各字段的长度。2 微程序控制器根据微指令和微程序的长度,确定控制存储器需选用几片EPROM(2716)用位扩展方式组成。3微程序设计将机器的全部指令系统采用微指令序列实现的过程,叫做微程序设计。一条机器指令对应一个微程序,11条机器指令应当对应11个微程序。微指令格式确定后,微程序的横向设计在于正确地选择数据通路,纵向设计在于确定后继微指令地址事实上,微程序设计的关键在于纵向设计,即如何确定下一条微指令的地址。通常的做法是先确定微程序分支处的微地址,因为微程序分支处需要进行判别测试。这些微地址确定以后,就可以在一个“微地址表”中把相应的微地址单元填进去,以免后面的设计中重复使用而未发现,以致造成设计错误。五、输入输出输入输出是人机联系的重要手段,输入可采用开关、键盘等方式,输出可采用字符显示或打印输出等方式。考虑到成本与设备因素,本模型机采用最简单的二进制开关输入和发光二极管显示的方法,换句话说,本模型机中只使用两种“外部设备”:一种是二进制代码开关,它作为输入设备;另一种是发光二极管,它作为输出设备。本设计为了节省器件,输入输出时可以不设置专门的数据缓冲寄存器。例如输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也就不变。输出时,将输出数据送到数据总线BUS上,驱动发光二极管进行显示。如果采用正规的输入输出方法,可采用相应的器件构成接口电路。实习经验首先因设计出ALU计算器模块、R4R0零时寄存器选择模块、数据通路模块、存储器模块、计数器模块,最后在根据之前设计所需的信号与结果设计安排cpu控制模块,这样的设计思路清晰,省时省力。而我在实验室采取了完全相反的步骤,先设计了cpu控制模块,最后根据控制模块设计其他模块,使得其他模块无法正常匹配cpu模块,不断地修正cpu模块,前后重写代码4次之多严重影响了试验进程。此经验教训应当谨记。试验步骤:实验步骤会按照正确的顺序进行,即将cpu控制模块的设计放在最后,先说明其他模块的设计。ALU计算模块:设计思想: 预算模块要求5种运算,并且运算数据要求补码表示范围在1X127先将AND运算和OR运算的电路图做出来,这个比较简单:运算:OR运算:接着是加减法器的设计。加减法器:设计思想:符号浮点数的加减法与符号幅值的加减法相似,但两个有重要区别,首先由于有几个需要特别表示,因此浮点数加法算必须明确地检测出操作数的是否为0,正负无穷,或NaN(not a number),移位,对齐,相加减的方法能处理大部分浮点数的加减法。但它只能对规格化的浮点数进行处理,当操作数为0,正负无穷,或NaN时,浮点数算法必须作特殊处理。所以,我们可以从符号加减法器开始,然后对结果进行修改,使之成为符号浮点加减法器。但是后来发现maxplusII中有加减器的运算模块,设置好初值后可以直接拿来使用,原件及具体设置如下:原件:Cout有效8位操作数 有符号初值设置:只有三处需要设置:打开cout输出。LPM_RERERSENTATION=”SIGNED”表示操作数为符号数。LPM_WIDTH=8表示操作数为8位。乘法器设计:同样在maxplusII中找到了乘法器原件,设置初值后便可直接使用。具体设置及如下:有符号运算位输出结果必须与操作数相匹配位操作数有符号运算需要改动的地方有三处:LPM_REPRESENTATION=”SIGNED”设置运算为符号赋值运算。LPM_WIDTHA=8输入操作数A为8位。LPM_WIDTHB=8输入操作数B为8位。LPM_WIDTHS=16输出结果为16位,此处的值必须与输入值相匹配。由于该cpu只显示8位值,所以我只取成法器输出结果的高8位结果。最终ALU :由于设计的需要,必须在每次预算执行前对运算方式进行存储,这样可以节省8个重复的cpu状态,同时,为了选择正确的结果输出,需要一个选择器进行筛选。在maxplusII中发现多路选择器件LPM_MUX,设置初值后可以直接取用;电路及初值设置如下:运算器结果选择器运算方式存储器路输入选择位结果输出LPM,_MUX初值设置:LPM_SIZE=44路输入选择LPM_WIDTH=88位结果输出数据通路模块: 数据通路模块的作用是控制数据在总线上的传输,包括个寄存器的载入、释放,ALU运算器操作数输入、结果的输出等部分R4R1选择模块:选择模块的功能在这个实验中很重要,其可以大量减少cpu控制模块的状态设置,选择器最基础的功能有根据指令的要求确定特定的临时寄存器的释放和载入。同时根据设计的需要,还要有存储备选数据的能力,避免被总线的上的数据影响最终的选择结果。设计思路:有四个临时寄存器,可以由两位决定二进制值决定各个寄存起的编号,可由24译码器实现此功能。选择器要能起到选择正确顺序是临时寄存器工作的作用,所以要有控制端控制第一顺序操作的临时寄存器和第二时间操作的临时寄存器(该cpu对寄存器的操作最多只有两个操作步)。最后要决定对所选的临时寄存器是载入还是释放,或者既不载入也不释放。根据这一思路设计的选择模块如下:载入选择:选择寄存器存储预选值置有效是否进行操作选择操作顺序选择释放选择:置有效设计思路:根据试验的要求,数据通路需要一个ALU运算模块,两个数据寄存器,其功能是保存操作数并将得到的操作数直接送入ALU预算模块进行预算。4个零时寄存器R4R1,一个数据选择模块,控制外部数据输入的计数器。设计图下:释放选择载入选择数据总线ALU模块外部数据输入临时寄存器临时寄存器临时寄存器数据寄存器ALU模块数据总线存储器模块:存储器模块的作用即存储程序指令和程序需要的各项数据,以及在恰当的时机读出个指令和数据。包括一个PC计数器(program counter)一个AR寄存器(adress register),一个内存芯片(LPM_RAM_IO)。设计思路:CPU要依照指令顺序执行相应程序,在内存中,指令按照顺序配列存储在相应内存单元中,每执行完一条指令,PC自动加一,将地址数据送给AR,RAM取得AR中的地址数据,放出相应地址的指令或操作数。读取指令按此步骤循环。PC可以用74161计数器完成其功用,由74244控制器数据在争取的时间传给AR,AR可用74273制作,只用于存储RAM中的下一指令或操作数的内存地址。内存由LPM_RAM_IO设置初值后制作完成。LPM_RAM_IO设置:内存数据写实能读实能内存大小地址数据输入地址数位宽数据位宽时钟信号LPM_FILE=”内存数据,可以将程序写进.mif文件,然后在此设置相应.mif文件的地址则可以在内存中读取该文件LP,M_NUMWORDS=256内存容量大小,实验要求256KLPM_WIDTH=8数据显示位宽LPM_WIDTHAD=8地址显示位宽电路设计图:各输出管脚 各输入管脚 PC计数器 ARRAM控制器模块控制器模块是CPU设计的精髓所在,其功用是控制所有模块能够正确的执行内存中的程序代码。控制器模块要求能够翻译指令码为与之相应的机器码语言。能够在正确的时间放出有效信号,关闭无效信号,协调各模块之间按的工作配合。设计思路:ROM模块:首先根据实验要求,与之前设计的各模块对信号控制的要求,画出CPU状态图:P FTHCHT1 FTEHCH2 THETCH3 FETHC2FETHC2FETHC2FETHC2FETHC2FETHC2FETHC2FETHC2FETHC2FETHC2FETHC2PCARPC+1PC-ARPC+1PC-ARPC+1RAM-RiRi-ALURi-ALURi-ALURi-ALURiMDR2-RjDR2-RjDR2-RjDR2-RjDR2-RjAR-MAR-MSTOPM-RiRi-MDR1-RiDR1-RiDR1-RiDR1-RiDR1-Ri 从这状态图中可以看出,有很多重复的状态,尤其是5个运算指令的各个状态完全相同,唯一不同的是每个状态的第一个步骤需要对运算器输入不同的运算选择以确定不同的运算方式,所以可以考虑将5个运算指令的后几个状态整合,以减少cpu的状态。更改后的状态图:PALU-IRALU-IRALU-IRALU-IRALU-IR FETHCH1 FETCH2 FETHC2PPCARPC+1CL-IRCB-IRARRiPC-ARPC+1FETHC2ARRiPC-ARPC+1FETHC2AR-MARRiFETHC2 FETCH3CL-IRCB-IRSTOPFETHC2Ri-MMOUT; B00000 =B010010000000000010000000001;-SW-PC 1% B00001 =B100010000000000111000000010;-PC-AR PC+1 2% B00010 =B110010000000010010011010000;-RAM-IR% %CHUSHI 3% B10000 =B010010000000000010000000110;%CLCTB100010000000000111000010011;%ARB110010000000010110000010110;%ARB111010000010010010000000001;%MB010010000000000010000000110;%CLCTB100010000000000111000011111;%ARB110010000000010110000011011;%ARB110110000100001010000000001;%RiB010010000000000010000000111;%ALU_SB110111111101000010000000011;%DR1B110111110100100010000010111;%DR2B111001110010000010000000001;%RiB110110111101000010000000011;%DR1B110110011101000010000000011;%DR1B110110101101000010000000011;%DR1B110110001101000001000000011;%DR1B100010000000000111000100101;%ARB110010000000010000000000001;%PCB110010000000000011000000001;%PC+1% %JUMP 19% B11001 =B010010000000000010000001010;%CLCTB011010000000000010000000001;%RiB010110000000000010000010001;%CLCTB010110000000000010000000001;%MiB110010000000000010100000001;%STOP&% %HALT 22% END TABLE;(SW_BUS,PC_BUS,R_LOAD,R_BUS,ALU_BUS,A_S,S1,S0)=OUT26.19;(S_EN,CB,CL,LDDR1,LDDR2,RD,WE,ARLD,PCLOAD,PCINC,STOP,IRLD,P,P1,AD4,AD3,AD2,AD1,AD0)=OUT18.0;END;跳转条件电路:跳转条件电路要求在符合跳转条件时,更改下址,改变为操作,完成跳转。设计思路:跳转与不调转的下址只有一位不同,只要条件满足,只需更改那一位下址代码即可。首先跳转条件有四种,跟据条件转为信号可以用24译码器实现。然后通过逻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论