当前位置:主页 > 科技论文 > 计算机论文 >

32位RISC微处理器设计研究

发布时间:2020-07-16 09:46
【摘要】:随着VLSI工艺水平的提高,如今能够把整个电子系统集成到一块或几块芯片上(SoC)。SoC的出现能够在改善系统性能的同时减小系统的功耗、尺寸和成本。SoC设计成败的关键在于其中的RISC微处理器的设计。同时随着半导体工艺技术的提高、体系结构技术的不断发展以及应用需求的不断提高,对高性能嵌入式微处理器产品的需求量也越来越大。 本文在介绍了各种商业主流RISC微处理器的技术特点后讨论了一种32位高性能RISC微处理器的设计方法,重点在于其逻辑设计,包括:指令集结构设计、RISC CPU设计、层次化存储器系统设计和其它功能单元设计。随后我们对RISC微处理器进行了功能验证,它包括两个方面:系统级仿真与FPGA硬件验证。实验表明,我们所设计的电路达到了预期的目标,并且在速度、面积等指标上有着较好的性能。 本文提出了一种对集中式控制器单元进行划分的方法并根据该方法确定了RISC CPU的体系结构。这种结构不仅利于进行调试和扩展而且流水线的暂停信息不会在多个流水段内进行传递,因此对流水线的速度不会附加额外的负面影响。 本文提出了一种完全去掉由RAW冒险在流水线中所引起的“气泡”的方法。 本文提出了一种显著缩短程序的执行时间的方法。当转移指令处于指令译码段时就能够判断转移发生与否和确定下一条要取的指令的地址,这使得在转移指令之后只需插入一条空指令。这种方法显著地缩短了程序的执行时间。 本文提出了流水线暂停的两条原则并根据这两条原则产生了流水线中各个流水段的暂停信号。仿真波形表明,这些信号能够使流水线正确地暂停与恢复。 本文采用了不同的方式产生从指令MMU送往指令Cache和从数据MMU送往数据Cache的是否可缓存标志信号。在任何情况下指令存储器所对应的地址空间都是可缓存的。这在功能上是正确的,同时减少了指令存储器的访问次数和去掉了一个异步环路。这改善了整个系统的时序。 本文研究了RISC微处理器的低功耗设计技术并给出了一种支持动态和静态功耗管理的功耗管理单元的设计方法。 本文研究了RISC微处理器对WISHBONE SoC接口的支持并给出了一种采用 WP=5 WISHBONE协议的总线接口单元的设计方法。 本文介绍了在进行系统级仿真时所采用的两种配置管理方法。通过这两种仿真管理方法,对于一种特定的仿真,仿真环境的使用者能够以最快的速度决定在该仿真中要使用哪些模型从而提高了仿真效率。 最后,给出了设计的FPGA硬件验证方案。比较了系统级软件仿真与FPGA硬件验证两种方式所能得到的吞吐率并论证了FPGA硬件验证的必要性。 总的来说,该微处理器在应用方面具有很好的性能,并且实现简单,规模可扩展性好,具有开放的SoC接口。
【学位授予单位】:华中科技大学
【学位级别】:博士
【学位授予年份】:2004
【分类号】:TP332
【图文】:

结构图,指令地址,单元电路,结构图


图 2.9 异常处理例程的入口地址Except_prefix 是异常处理例程入口地址的前缀,可由 CPU SPR 编程设置:当指令存储器足够大时,就设为 1;当指令存储器不是特别大时,就设为 0。Except_type 表示异常类型,同时也是各种异常对应的异常处理程序的偏移矢量。异常处理例程的入口地址不通过指令 TLB 映射,也不通过指令 cache 访问,即允许异常处理程序直接访问程序存储器。⑷ spr_pc_we 为 1,此时从 CPU SPR 来的输入数据 spr_dat_i[31:0]写入到 pc[31:0]中,同时由于没有发生转移,所以转移发生标志应被设置为 0。当虚拟指令地址生成后,指令 MMU 中的 TLB 将根据虚拟指令地址生成物理地址。如果指令 Cache 的标记与物理地址的高位相同,则从指令 Cache 中将指令取到取指令单元同时指令 Cache 根据虚拟指令地址的低位选择相应指令,否则需要从指令存储器中取指令。地址产生单元电路结构如图 2.10 所示。

结构图,取指令,单元电路,结构图


图 2.11 取指令单元电路结构图2.6 控制单元控制单元也是本 RISC 的指令译码单元,它的主要功能是对取来的指令进行译码、区分指令是单周期指令还是多周期指令并产生相应的控制信号。控制单元的各个控制信号产生很复杂,必须保证所有的控制信号能够保证系统按设想好的顺序及过程协调工作。2.6.1 形成指令流水线地址产生单元产生从指令存储子系统取来指令的虚拟地址并使用该地址访问指令存储器。从指令存储器中取出来的指令在取指令流水段结束时被打入取指令流水线寄存器if_insn[31:0]。该寄存器的内容被送到控制单元并相继被打入指令译码流水寄存器、指令执行流水寄存器和回写流水寄存器以形成五段指令流水线。指令译码流水寄存器 id_insn[31:0]的值确定方式如下:

仿真波形,指令流水线,仿真波形,类指


图 2.12 指令流水线仿真波形如图 2.12 所示,在指令周期的第一个时钟周期产生指令地址(此时 icpu_adr_o[31:0]为 32’h400_06d0),该地址被送到指令存储子系统。在第二个时钟周期,指令(此时icpu_dat_i[31:0]为 32’he064_2805)从指令存储子系统中被读来并被保存到取指令流水寄存器(if_insn[31:0])。在第三和第四个周期,该指令将分别被译码和执行。在最后一个时钟周期,指令执行结果被回写到相应的目标寄存器,同时指令周期结束。2.6.2 指令译码首先将从取指令单元来的指令锁存起来形成 id_insn[31:0],随后根据其第 32 位到第27 位(共 6 位)的值,控制单元通过译码得到指令是执行什么操作。对于 ALU 类指令、Load/Store 类指令和分支类指令,译码结果应为该类指令的哪一种具体操作。如果是 ALU类指令中的比较操作或乘累加操作,译码结果还应具体到到底是哪一种比较操作或乘累加操作。同时,在指令译码段结束之前指令译码单元将处于译码段的指令的所有源操作

【引证文献】

相关期刊论文 前1条

1 尤菲菲;胡宝霞;刘小平;;32位嵌入式RISC微处理器设计[J];科技咨询导报;2007年26期

相关硕士学位论文 前5条

1 陈海民;密码嵌入式微处理器设计与实现研究[D];解放军信息工程大学;2011年

2 李云;嵌入式RISC处理器中指令流水单元的设计[D];西北工业大学;2007年

3 江琳;兼容ARC指令集的RISC IP核的开发[D];哈尔滨工业大学;2007年

4 赵先锋;COTS微处理器软件容错性能的研究[D];哈尔滨工业大学;2007年

5 刘亮;RISC处理器整数运算和控制单元的研究与设计[D];华北电力大学;2012年



本文编号:2757846

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2757846.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户a9e57***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com