- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
硬件课程设计报告 基于RISC处理器结构的模子机
硬件课程设计报告
姓名:
学院:计算机科学与技术
专业:网络工程
时间:2010年12月17日
题目:基于RISC处理器结构的模型机
设计目的
随着计算机技术要求的不断发展,为增强计算机系统的功能,简化编译器的工作量,更好的改善计算机的性能,减少系统的辅助开销,提高计算机的运行速度和效率,计算机结构设计者一直在致力研究为系统结构提供更好的硬件支持。设计RISC及其一般遵循以下原则:
确定指令系统时,选取使用频率最高的一些简单指令,以及很有用但不复杂的指令。
指令长度固定,指令格式限制在1-2种之内,大大减少指令系统的寻址方式,一般不超过2种。
大部分指令在一个及其周期内完成。
只有取、存指令可以访问存储器,其他指令的操作一律在寄存器间进行,大大增加寄存器的数量。
一硬布线控制为主,很少户不用微程序控制。
特别重视编译优化工作,支持高级语言的实现。
设计内容与要求
选用使用频率比较高的五条基本指令:MOV ADD STORE LOAD JMP,成功执行后添加一条指令,如:SUB。
寻址方式采用寄存器寻址级直接寻址两种方式。
指令格式采用单字长级双字长两种格式。
设计不采用微程序,在CPLD中设计控制逻辑。
操作码 RS RD 单字长指令格式:
双字长指令格式:
操作码 RS RD ADDR 其中RS RD为不同状态,则选中不同的寄存器:
RS或RD 寄存器 00 R0 01 R1 10 R2 11 AC 指令系统如下:
MOV RS, RD
ADD RS,RD
JMP RS
LOAD [ADDR] ,RD
STORE RS,[ADDR]
MOV ADD JMP三条指令为单周期执行完成,STORE LOAD两条指令为两周期执行完成,ADDR为存或取数的直接地址。第一及其周期完成取操作码、作标记;第二机器周期完成取直接地址并完成取数或存数。
5、CPLD芯片设计
顶层模块电路图(top.sch)
RISC模型机的连线图
设计原理
目前在RISC处理机中主要采用如下的技术:
延时转移技术
在RISC处理机中,指令一般采用流水线方式工作。取指令和执行指令并行运行。如果取指令和执行指令需要一个周期,那么,在正当情况之下,每个周期就能执行完一条指令。人后,在遇到转移指令时,流水就有可能断流。由于转移的目的地址要在指令执行完后才能产生,这是下一条指令已经取出来了,因此,必须把取出来的指令作废,并按照转移地址重新取出正确的指令。为解决上述问题,可以使比一期自动调整指令序列,在转移地址后插入一条有效的指令,而转移指令好像被延迟执行了,这种技术成为延迟转移技术。
重叠寄存器窗口技术
由于RISC程序中有很多的CALL和RETURN指令,因而在执行CALL指令时,必须保存现场,另外,还要把执行子程序的参数从主程序中传输出去,在执行RETURN指令时,要把保存的结果传输加主程序。为了尽量减少访问存储器的次数,在RISC处理机中采用重叠寄存器宣传品技术。
硬连实现为主,微程序固件为辅
主要采用硬联逻辑来实现指令系统,对于那些必须的少量的复杂指令,可以采用微程序实现。微程序便于实现复杂指令,便于修改指令系统,增强了机器的灵活性和适应性,但执行速度低。
强调优化编译系统设计
编译器必须努力优化寄存器的分配和使用,提高寄存器的使用效率,减少访问存储器的次数,为了使RISC处理机中的流水线高效率的工作,尽量不断流,编译器不必分析所放弃的数据流和控制流,当发现有可能断流时,要调整指令序列,对有些可以通过流量重新命名来消除数据相关的,要尽量消除,这样,可以提高流水线的执行效率,缩短程序的执行时间。
设计结果及分析
指令执行流程
RISC数据通路
ABEL程序的基本格式
Module 模块名 //模块开始
[title 标题说明]
[Declarations] //说明部分
[器件名 device 器件的工业标号 ;]
[低层模块名 INTERFACE(输入->输出);]
[例化名 FUNCTIONL_BLOCK 低层模块名;]
信号名, 信号名 pin [引脚号, 引脚号] [istype 属性 ];
信号名, 信号名 node [istype 属性 ];
[常量说明语句;]
[集合的定义;]
[宏定义语句;]
//逻辑关系描述部分
Equations //逻辑方程
[truth-table(输入变量- 输出变量) 真值表;]
[state-diagram(状态变量) 状态图描述;]
[test-ve
文档评论(0)