MIPS指令五级流水CPU设计剖析
- 格式:ppt
- 大小:2.41 MB
- 文档页数:37
MIPS指令五级流水CPU设计剖析MIPS指令五级流水CPU设计是一种高性能的处理器设计架构,它将指令的执行过程拆分为五个阶段,并且在每个阶段中可以同时处理多条指令,实现了指令级并行处理。
在这种设计中,分别是取指(Instruction Fetch)、译码(Instruction Decode)、执行(Execute)、访存(Memory Access)和写回(Write Back)这五个阶段。
在MIPS指令五级流水CPU设计中,首先是取指(Instruction Fetch)阶段,这是整个处理器开始处理一条指令的阶段。
在这个阶段,处理器从指令存储器中读取即将执行的指令,并将其送入流水线中。
这个阶段还会包括对指令地址的计算和异常处理的操作。
当一条指令流入流水线后,处理器就会进行下一个阶段的操作。
接下来是译码(Instruction Decode)阶段,这个阶段主要是将取到的指令进行解码,确定指令的操作类型和需要操作的寄存器等信息。
在这个阶段,会根据指令的不同分支到不同的功能单元中处理。
同时还会识别指令之间的数据相关性,以便在后续阶段进行相应的控制。
第三个阶段是执行(Execute)阶段,在这个阶段,CPU执行指令的操作,进行算数运算或逻辑运算,或者进行跳转等控制操作。
在这个阶段,CPU还将从寄存器文件中读取数据,并进行相应的运算。
这个阶段涉及到的计算量比较大,所以需要比较多的时钟周期来完成。
接下来是访存(Memory Access)阶段,这个阶段主要是处理访问数据内存的操作,比如从数据内存中读取数据,或将结果写入数据内存等。
在这个阶段,处理器还会涉及到访存相关的操作,比如缓存机制的处理等。
这个阶段的操作通常是比较高速的存储器操作。
最后是写回(Write Back)阶段,这个阶段是处理器的最后一个阶段,处理器将执行结果写回到寄存器文件中,或进行其他相关的操作。
这个阶段可以认为是指令执行的结束阶段,对前面四个阶段产生的结果进行最终的处理。
基于MIPS指令集的流水线CPU设计与实现刘秋菊;张光照;王仲英【摘要】提出了一种CPU设计方案,实现指令集为MIPS指令集中选取15条指令作为本CPU的基本指令,采用基本5步流水线CPU设计.分析了流水线CPU的逻辑结构与指令的处理过程,给出了取指阶段IF、译码阶段ID、执行阶段EX、内存访问阶段MEM、寄存器写回阶段WB阶段的设计与实现.对流水线产生的相关性问题,采用Bubble法和Forwarding法相结合的方法来消除相关性,在FPGA平台上进行了测试,测试结果表明,该方案符合设计要求.%In this paper,a design method of CPU was proposed,the instruction set of the CPU contained 15 items of MIPS instruction set,and the basic method of five step pipeline CPU design was used.Analyses were conducted on the logic structure of the pipeline CPU and the processing of the instruction.This paper also gave design and realization of stage IF,stage ID,stage EX,stage MEM and stage WB.About the pipeline-related problems,the paper adopted Bubble and Forwarding technologies to eliminate it.The tests on the FPGA platform show that the scheme meets the design requirements.【期刊名称】《实验室研究与探索》【年(卷),期】2017(036)008【总页数】6页(P148-152,172)【关键词】流水线;中央处理器;设计;指令集【作者】刘秋菊;张光照;王仲英【作者单位】郑州工程技术学院信息工程学院,郑州450000;河南经贸职业学院技术科学系,郑州450018;河南经贸职业学院技术科学系,郑州450018【正文语种】中文【中图分类】TP332在工业设计和机器人研究中,微处理器作为控制部件的核心是设计的关键,其性能直接影响整个系统的性能。
MIPS指令五级流水CPU设计剖析MIPS指令五级流水将指令的执行过程划分为取指(Instruction Fetch, IF)、译码(Instruction Decode, ID)、执行(Execution, EX)、访存(Memory Access, MEM)和写回(Write Back, WB)五个阶段。
每个阶段由一个独立的硬件逻辑电路实现,这样指令可以在同一时间在不同阶段同时执行,从而提高了CPU的吞吐量。
在取指阶段,CPU从指令缓存(Instruction Cache)中读取指令,并将其送入指令译码阶段。
取指阶段主要包括以下几个步骤:首先,CPU从PC寄存器中读取下一条指令的地址;然后,CPU将这个地址发送到指令缓存中,读取对应的指令;最后,CPU将读取到的指令送入译码阶段。
在译码阶段,CPU对指令进行译码,确定指令的类型和操作数,并将这些信息传递给执行阶段。
译码阶段主要包括以下几个步骤:首先,CPU从指令中解析出操作码和操作数;然后,CPU根据操作码确定指令的类型,并确定需要使用的操作数;最后,CPU将指令类型和操作数传递给执行阶段。
在执行阶段,CPU执行指令的实际操作,并计算结果。
执行阶段主要包括以下几个步骤:首先,CPU根据指令类型和操作数进行相应的运算;然后,CPU将计算结果传递给访存阶段或写回阶段,具体传递给哪个阶段取决于指令的类型;最后,CPU将执行完成的指令从流水线中清除。
在访存阶段,CPU将数据存储到内存或从内存中读取数据,并将数据传递给下一个阶段。
访存阶段主要包括以下几个步骤:首先,CPU将执行阶段产生的数据存储到内存;然后,CPU从内存中读取数据;最后,CPU将读取到的数据传递给写回阶段或下一个指令的取指阶段。
在写回阶段,CPU将执行阶段产生的结果写回到寄存器文件(Register File)中,以保存计算结果。
写回阶段主要包括以下几个步骤:首先,CPU将执行阶段产生的结果写入寄存器文件;然后,CPU更新PC寄存器的值,以指向下一条需要执行的指令;最后,CPU将流水线上所有已经执行完成的指令清除。
指令级流水指令级并行计算机体系结构Report2指令级流水和指令级并行——永无休止的“完美”追求戚洪源目录一、性能瓶颈来源 (4)1、单周期、多周期MIPS结构性能瓶颈 (4)2、简单的五级流水MIPS性能瓶颈来源 (4)相关 (4)冲突 (5)二、突破瓶颈的可能性 (5)三、性能提升的具体方法 (6)1、简单的硬件实现方法 (6)定向技术 (6)投机 (6)2、基于软件(编译器)的静态调度方法 (7)预测分支 (7)3、软硬件结合的动态调度方法 (8)Tomasulo算法 (8)动态分支预测 (8)4、多指令流出 (9)基于静态调度的多流出技术 (9)基于动态调度的多流出技术 (9)超长指令字技术 (10)超流水线技术 (10)5、循环展开和指令调度 (10)四、总结 (10)摘要:有人说,如果计算机科学与技术是一座金字塔,位于塔尖的一定是高性能计算。
从计算机诞生至今,每一次进步都是对于计算机性能极限的一次刷新。
人类对于计算性能日益膨胀的需求,前沿科技对于高性能计算的考验,都促使这一领域不断发展。
单纯硬件技术上的改革是非常重要的:主频的提高、稳定的晶体管……但我们同样惊艳于并行技术在其中发挥的神奇的作用。
各种并行技术犹如催化剂一般,使提高计算机性能的进程大大加快。
这些技术的应用,不断挖掘着计算机潜在的性能,也让人类在一条追求“完美”的道路上不断前行。
何谓“完美”?这是一个看起来复杂实际上非常简单的问题。
“完美”,就是让计算机每一个部件每时每刻全负荷运作,发挥最高的性能。
看似简单,但却很难实现,也不可能实现。
并行技术的发展,也是追求“完美”的尝试。
然而程序“性本恶”,程序本身的许多特性为并行化带来了不小的麻烦。
我们其实是在和自己斗争。
“榨干计算机每一滴性能”,这是ASC15上浪潮集团首席科学家王恩东演讲时说的一句话。
在我看来,不论是指令级流水还是指令级并行,目的都是为了“榨干计算机每一滴性能”。
摘要CPU是计算机系统的核心部件,在各类信息终端中得到了广泛的应用。
处理器的设计及制造技术也是计算机技术的核心之一。
而MIPS 是世界上很流行的一种RISC处理器。
MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。
本文围绕着指令执行过程中需经历的五个阶段,详细描述了处理器中各阶段的逻辑设计及其相关功能模块的设计。
这五个阶段包括:取指令阶段IF,指令译码阶段ID,指令执行阶段EXE,存储器读写阶段MEM,寄存器写回阶段WB。
相关模块包括:程序存储器imem,控制单元controller,寄存器堆regfile,算术逻辑单元alu,数据存储器dmem。
在完成了CPU的整体逻辑设计后,通过Modelsim仿真软件在所设计的CPU上运行了测试程序,测试输出波形表明了处理器逻辑设计的正确性。
关键词:MIPS;处理器;流水线AbstractThe Central Processing Unit (CPU) is the key part of a computer, which has been widely used in various information terminals.Also, the design and manufacturing technology of the processor is one of the cores of the computer technology. And, as a RISC processor, MIPS is very popular in the world. MIPS means “microprocessor without interlocked piped stages”, the mechanism of it is to avoid the data-related problems in the pipeline as much as possible by software.Around the five stages of the instruction execution, the article describes the logic designs of the processor and it’s related functional modules in detail.The five stages include: the instruction fetch stage IF, the instruction decode stage ID, the instruction execution stage EXE, the memory read/write stage MEM, and the register write back stage WB. The related modules include: the instruction memory imem, the control unit controller, the register file regfile, the arithmetic logic unit alu, and the data memory dmem.Upon the completion of the whole logic designs, running the test programs by the Modelsim, the correctness of the logic designs is proved by the output waveform.Keywords: MIPS, CPU, Pipeline目录摘要 (I)Abstract (II)目录 (IV)第1章 MIPS体系结构概述 (1)1.1 流水线技术 (1)1.2 RISC技术 (2)1.3 MIPS简介 (4)1.4 MIPS指令集 (5)1.5 本章小结 (10)第2章 MIPS处理器的实现 (11)2.1 MIPS CPU顶层结构 (11)2.2 IF级 (13)2.3 ID级 (14)2.4 EXE级 (16)2.5 MEM级 (17)2.6 WB级 (19)2.7 外部数据输入中断 (19)2.8 本章小结 (20)第3章流水线CPU的仿真 (21)3.1 流水线CPU的指令仿真 (21)3.2 本章小结 (37)第4章总结和展望 (38)参考文献 (39)致谢 (40)附录1 英文文献 (41)附录2 中文译文 (49)附录3 主要模块代码 (55)第1章 MIPS体系结构概述1.1 流水线技术在任一条指令的执行过程中,各个功能部件都会随着指令执行的进程而呈现出时忙时闲的现象。
摘要CPU是计算机系统的核心部件,在各类信息终端中得到了广泛的应用。
处理器的设计及制造技术也是计算机技术的核心之一。
而MIPS 是世界上很流行的一种RISC处理器。
MIPS的意思是“无部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。
本文围绕着指令执行过程中需经历的五个阶段,详细描述了处理器中各阶段的逻辑设计及其相关功能模块的设计。
这五个阶段包括:取指令阶段IF,指令译码阶段ID,指令执行阶段EXE,存储器读写阶段MEM,寄存器写回阶段WB。
相关模块包括:程序存储器imem,控制单元controller,寄存器堆regfile,算术逻辑单元alu,数据存储器dmem。
在完成了CPU的整体逻辑设计后,通过Modelsim仿真软件在所设计的CPU上运行了测试程序,测试输出波形表明了处理器逻辑设计的正确性。
关键词:MIPS;处理器;流水线AbstractThe Central Processing Unit (CPU) is the key part of a computer, which has been widely used in various information terminals.Also, the design and manufacturing technology of the processor is one of the cores of the computer technology. And, as a RISC processor, MIPS is very popular in the world. MIPS means “microprocessor without interlocked piped stages”, the mechanism of it is to avoid the data-related problems in the pipeline as much as possible by software.Around the five stages of the instruction execution, the article describes the logic designs of the processor and it’s related functional modules in detail. The five stages include: the instruction fetch stage IF, the instruction decode stage ID, the instruction execution stage EXE, the memory read/write stage MEM, and the register write back stage WB. The related modules include: the instruction memory imem, the control unit controller, the register file regfile, the arithmetic logic unit alu, and the data memory dmem.Upon the completion of the whole logic designs, running the test programs by the Modelsim, the correctness of the logic designs is proved by the output waveform.Keywords: MIPS, CPU, Pipeline目录摘要 (I)Abstract (II)目录 (III)第1章 MIPS体系结构概述 (1)1.1 流水线技术 (1)1.2 RISC技术 (2)1.3 MIPS简介 (4)1.4 MIPS指令集 (5)1.5 本章小结 (10)第2章 MIPS处理器的实现 (11)2.1 MIPS CPU顶层结构 (11)2.2 IF级 (13)2.3 ID级 (14)2.4 EXE级 (16)2.5 MEM级 (17)2.6 WB级 (19)2.7 外部数据输入中断 (19)2.8 本章小结 (20)第3章流水线CPU的仿真 (21)3.1 流水线CPU的指令仿真 (21)3.2 本章小结 (37)第4章总结和展望 (38)参考文献 (39)致 (40)附录1 英文文献 (41)附录2 中文译文 (48)附录3 主要模块代码 (54)第1章 MIPS体系结构概述1.1 流水线技术在任一条指令的执行过程中,各个功能部件都会随着指令执行的进程而呈现出时忙时闲的现象。
一、实验目的(1)了解提高CPU性能的方法。
(2)理解数据冒险、控制冒险的概念以及流水线冲突的解决方法。
(3)掌握流水线MIPS微处理器的工作原理。
(4)掌握流水线MIPS微处理器的测试方法。
二、实验任务设计一个32位流水线MIPS微处理器,具体要求如下设计要求:(1)至少执行下列MIPS32指令。
①算数运算指令:ADD ADDU SUB SUBU ADDI ADDU②逻辑运算指令:AND OR NOR XOR ANDI ORI XORI SLT SLTISLTU SLTIU③移位指令:SLL SLLV SRL SRLV SRA④条件分支指令:BEQ BNE BGEZ BGTZ BLEZ BLTZ⑤无条件跳转指令:J JR⑥数据传输指令:LW SW⑦空指令:NOP(2)在用5级流水线技术,对数据冒险实现转发或阻塞功能。
(3)在XUP Vietex-II Pro开发系统中实现MIPS微处理器,要求CPU的运行速度大于25MHz.三、实验原理1.流水线MIPS CPU总体设计流水线是数字系统中一种提高系统稳定性和工作速度的方法,广泛应用在高档CPU的构建中。
根据MIPS处理器指令的特点,将整体的处理过程分为取指令(IF)、指令译码、执行、存储器访问和寄存器写回五级,对应多周期CPU的五个处理阶段。
如图1所示,一个指令的执行需要五个时钟周期,每个时钟周期上升沿来临时,此指令所代表的一系列数据和控制信息转移到下一级处理。
图1 流水线流水作业示意图一条MIPS指令分为五个处理步骤,即五级流水线,的具体执行过程如图2所示。
图2 五级流水线MIPS CPU初步原理框图流水线寄存器:为了在其它四级流水线中各条指令保持各自的值,从指令存储器中读出的指令必须保存在寄存器中。
同样的方法应用到每个流水线步骤中,需要在上图中各级之间加入寄存器,如图3所示。
图3.在各级分割线添加寄存器后的框图由于在流水线中,数据和控制信息将在时钟上升沿转移到下一级,所以规定流水线转移的变量命名遵守如下格式:名称_流水线级名称。
五段式流⽔线CPU流⽔线CPU⼀、流⽔线CPU概述1、流⽔线CPU的原理流⽔线CPU是为提⾼吞吐量⽽创造的,五段式流⽔线CPU的吞吐量是单周期CPU的五倍,同⼀时间CPU上最多有五条指令在运⾏。
如何达到同⼀CPU上五条指令呢?答案就在于把每条指令都拆分成五个阶段,按照CPU硬件执⾏流来拆成五段:IF(instruction fetch)、DEC(decode)、EXE(execute)、ME(memory)、WB(write back),CPU上五段部分分别执⾏⼀条指令的⼀个阶段。
因为CPU上五段分别进⾏不同指令的不同阶段,每段都需要⾃⼰当前执⾏指令的数据:IF段所⽤数据为指令地址,可有pc寄存器提供;DE、EXE、ME、WB段所⽤数据包含但不限于指令内容,⼀定需要对应流⽔线寄存器保存。
2、流⽔线CPU设计的难点流⽔线CPU同时有多条指令运⾏,⼀个很重要的设计因素是解决冲突。
冲突包含硬件冲突、控制冲突和数据冲突。
硬件冲突硬件冲突是说同⼀时刻需要对同⼀互斥硬件(⼀次只允许⼀次读或写)进⾏访问,举例来说,D段需要从存储器中取出指令,M段需要对存储器写⼊数据,这两个操作同时进⾏就会带来冲突,在这⾥IM和DM是独⽴的两个存储器,因此不必考虑。
控制冲突控制冲突是分⽀指令和跳转指令带来的冲突。
分⽀指令的最终分⽀地址晚于下⼀周期到来,导致下⼀条指令的地址不能及时算出或者决定;跳转指令的跳转地址晚于下⼀周期到来,导致上述同样冲突。
解决这样的冲突主要是通过假设不跳转或者延迟槽。
假设不跳转是说先假设不跳转和分⽀,正常执⾏下⼀条指令,当计算出要跳转时清楚已执⾏的结果。
延迟槽是说跳转指令后⾯加空指令nop,即等待跳转地址计算出来再决定是继续下⼀条指令还是跳转。
数据冲突数据冲突是关于数据“新鲜性”的冲突。
指令的执⾏离不开寄存器,有的指令会利⽤寄存器数据,有的指令会写回寄存器,有的指令两者皆有,当前序执⾏的指令的⽬的寄存器(将要写回的寄存器)和后序执⾏的指令的源寄存器(利⽤其数据的寄存器)相同时,就存在数据关联。
嵌入式五级流水线CPU核的设计与实现赖兆磬,潘 明,许 勇,张 辉(桂林电子科技大学 计算机与控制学院 广西 桂林 541004)摘 要:本文基于FPGA平台设计并实现了一种嵌入式16位RISC CPU核。
以MIPS CPU指令集为参考,完成指令集设计;对指令处理过程进行抽象,把指令分成取指、译码、执行、访存、写回五级流水处理,根据处理过程所需要的元件构建五级数据通路;针对流水线处理产生的数据相关构建旁路通路;根据五级数据通路及旁路通路所需要的协调信号构建控制通路;把数据通路和控制通路融合成CPU核。
采用VHDL 实现CPU核;在CPU核上运行测试程序,并给出仿真结果;在FPGA平台上对CPU核进行验证。
结果表明了所设计CPU核的有效性。
关键词:FPGA;CPU核;数据通路;控制通路中图分类号:TP332.3 文献标识码:BThe Design-implementation of embedded five Stage Pipeline CPUCoreLAI Zhao-qing, PAN Ming, XU Yong, ZHANG Hui(School of Computer Science and Control, Guilin University of Electronic Technology, Guilin 541004 , China) Abstract: An embedded 16-bit RISC CPU core was designed and implemented on FPGA. Refer to MIPS instruction set, the instruction set was finished; Analyzing the process of each instruction, the process was divided into five stages which is IF, ID, EXE, MEM, WB. Then the five stages data path was constructed according to work unit which is needed in the process; Aim at the data hazard which happens in the pipeline, the forward path was constructed; the control path was constructed according to the data path; the CPU core was composed of data path and control path. The CPU core was implemented with VHDL; the test program was run at the CPU core, then the simulation was presented; the CPU core was verified at FPGA hardware terrace. The result shows that the CPU core is effective.Keywords: FPGA; CPU core; Data path; Control path;引言随着微电子技术的迅速发展, 集成电路(ASIC)的集成度越来越高。
计算机组成原理课程设计报告5级流水无cache CPU实验1.1 实验内容:无cache流水CPU的分析与改造1.理解无cache流水CPU的工作原理,明确系统总体结构和数据通路图,分析解决各种相关用到的主要信号,以及详细分析各流水段的功能和实现。
2.将16位的指令系统改为8位,设计新的指令系统,并修改相应的数据通路。
3.修改规则文件(cpu.txt),并编写测试程序验证系统改造的正确性。
1.2 总体基本信息1.深刻理解无cache流水cpu的工作原理。
在详细分析了各流水段的功能实现、3种相关的产生原因和解决方法的基础上,完成了以下后续工作。
2.修改指令系统。
具体包括:a)16位指令改为8位,重新编写了指令OP码。
b)新增了MOVI指令。
由于原指令系统没有将立即数存进指定寄存器的指令,因此此处新增一条MOVI指令。
指令的汇编语句为MOVI DR, IMM其中DR为目的寄存器,IMM为立即数。
因为指令长度为8位,OP和DR共占了6位,因此IMM的大小不大于3(即二进制“00”至“11”)。
c)修改及删除了部分指令。
此处详见5.1。
3.修改系统控制信号。
在保持原有系统逻辑功能基本不变的情况下,修改各个模块里控制信号位数以及模块接口信号位数以和新的指令系统兼容。
4.增加内存模块。
使用vhdl编写了一个ram模块,根据读写信号来选择读写功能。
reset时将事先写好的二进制形式程序写进内存。
5.扩展了常量定义文件。
在常量定义文件unitpack.vhd中,具体地:a)新增了ALU功能选择信号常量aluMOVI。
b)新增了寄存器编号常量R0、R1、R2和R3。
c)新增了ram类型。
6.使用Quartus II进行功能仿真并debug。
7.使用bdf构造顶层实体cpum。
由于新增了内存模块,而原系统是使用vhdl编写的,为了方便对接,我们使用bdf的形式将无cache流水线cpu和内存模块连接起来构造顶层实体cpum,“m”的含义是“memory”,即带内存模块的无cache流水线cpu。