RISC处理器设计(一)------体系结构的选择

RISC处理器指令和变量数目非常少但结构复杂,因此RISC处理器可实现更高的并行性。本文设计的RISC处理机的特点如下:

(1)指令简单且数量较少

通过对程序的静态指令进行静态分析,最终只将最常见的指令在RISC处理器中实现,其他指令由编译器综合实现。要实现这一特性以及减少诸如数据相关或程序跳转引起的流水线冲突较少,主要依赖于合适的编译器和特殊硬件来实现。指令集的简单也带来了相对简单的指令传送机制,可以减少对存储器进行指令的读和写操作。

(2)格式固定而且指令长度简短

简单指令基本上字长是固定的,且刚好是一个处理器字,格式较少。这些指令可以支持高效率的定点控制操作和实现结构简单的快速流水线,以及高效率的Cache和寄存器堆。但是只能通过编译器来实现传统的CISC计算机变字长指令和其他复杂指令的功能。

(3)Load/Store特性

对主存储器的读写,速度慢且价格昂贵。RISC指令仅对处理器片内的寄存器堆进行操作,只有Load/Store指令直接访问存储器。除此之外,指令的装载都来自于主存储器。这种指令装载操作在运行Cache的情况下可以大大减少。减少速度慢的存储器访问操作,可以使得流水线平滑的运行,从而获得较高的吞吐率。高效的编译器可以减少Load/Store指令,并且避免流水线冲突。CISC指令直接将存储器和寄存器的内容组合起来使用。

(4)流水线

把指令按完成任务的不同分割成等长的时间段来运行。

(5)可消除流水线冲突

通常情况下,当流水线第二级的指令需要读取寄存器R中的内容,而同时已处于第三级的前一条指令要向存储器R中写入执行结果时,就会产生数据相关。数据相关可以通过硬件电路的数据前推机制或编译器的调整来解决。

由于Load指令访问主存储器通常需要超过1个时钟周期的时间,它的执行结果也不能被后续的指令所使用。通过编译器调度技术可以消除这种延迟装载的流水线冲突。

无效的或者错误的指令进入了流水线导致的相同情况,在执行分子跳转指令时也将打乱流水线的平稳执行状态。通过编译器对延迟跳转进行优化,甚至为分子跳转指令准备Cache,可以达到较高的流水线吞吐率。

(6)高吞吐率

通过灵活高效的指令组合,使得指令的执行时间平均起来小于机器时钟频率。

(7)处理器内无微程序

拥有固定格式的简单指令,使得译码的过程仅需要硬件连接,而且逻辑简单,只用单级就可以实现,以节省执行时间和芯片面积。高效率的编译器可以通过一个简单指令序列的执行来代替复杂的指令执行,从而消除微程序。

(8)Cache和寄存器堆

多端口存储器堆,以及作为主存储器和处理器之间的中间存储器的各种片上Cache(指令Cache、通用指令Cache和条件转移目标Cache),及其合理的替换策略是加速流水线执行的关键模块。它们的使用避免了流水线的冲突,而且大大提高了流水线使用效率。

处理器体系结构的选择:

(1)动态寄存器模块

多窗口的概念是基于线索窗口的概念提出的。高达1024个通用寄存器设计成大小固定的模块。在程序执行中,这些寄存器模块动态地按照需要分配。没有了Berkerley RISC处理器中的循环缓冲器,可以大大减少寄存器存储和读取操作。这种技术的优点还包括:处理程序流变换和处理中断的灵活性。

(2)伪哈佛结构和通用指令Cache

在处理器内部使用分立的指令和数据总线,然而,从外部看,处理器仍然保持一套32位的总线和另一套用于给出地址的总线。对于这样的“伪哈佛”结构,集成一个片内的指令Cache是很有意义的。这样做的优点在于,控制逻辑与数据Cache相比要容易的多,而且通过提高并行度可以提升处理器性能。

在这种指令Cache中,并不是将每一个存储器对应地址中的变量都保存在其中,而只是将哪些有Load/Store指令访存导致总线冲突的指令存储到Cache中。当下一次再访问这样一条指令时,IF级就从Cache中取出指令,而不需要等待。Cache的这一特性非常简单高效,在提高了处理器性能的同时,还没有增加太多额外的电路。将多种模式的Cache组合起来,就构成了通用指令Cache—MPC。

(3)条件转移目标Cache

在地址总线上,用于存储跳转指令和跳转目标地址,以及延迟指令的Cache。称之为跳转目的Cache。当再次执行这样的跳转时,对延迟指令的装载即可以被忽略。在性能提高的同时,需要增加复杂的控制逻辑。

(4)中断、虚拟地址和内核/用户模式

在中断发生后流水线的状态必须被保存下来。中断有不同的优先级别。中断机制是处理器运行所必须的。中断是虚拟地址以及处理器内核/用户模式的基础。虚拟地址通常需要在Cache中存储虚拟的而不是物理的地址,而且,需要外部存储器的控制单元对于存储器表和触发的中断进行管理。

内核/用户模式区别在于,在内核模式下,所有的指令集都有效;在用户模式下,仅有有限的地址单元可用,并且不允许Cache操作指令的执行。

(5)超标量流水线和更高效存储器管理

现代的存储器部分通常包含有一个快速的爆发模式,用于加速平均数据传输的速度。这需要高效的存储器接口。这使得存储器在单时钟周期内一次可以装载两条指令。这样,就需要并行的两个流水级共同执行指令。

(6)高效的ALU

除了执行时间主要取决于访存时延的取值级,ALU部件的执行也是流水线的瓶颈。因此需要更快速的ALU,还需要在ALU中加入高性能的桶形位移器。

(7)异步流水线

流水线的每一级执行时间在每一级之间各不相同,而且在不同的应用条件下,每一级的执行时间也各不相同。同步流水线控制器运行时需要等待运算最慢的时间执行完成,而如果采用与时钟无关的事件驱动机制进行控制的异步流水线控制机,可以大大提高性能。

原文地址:https://www.cnblogs.com/1mpanda/p/8328541.html

时间: 2024-11-13 02:20:46

RISC处理器设计(一)------体系结构的选择的相关文章

RISC处理器设计(七)------Cache和寄存器堆的选择

1.通用指令Cache MPC 因为访存类指令占据了存储器的接口,阻止了新的指令进入处理器.因此在冯诺依曼体系结构下,单存储器接口会产生冲突问题. 在RIB模式下(精简指令缓冲器),只保存在访存类指令执行时需要从存储器中取出的指令,将其存入Cache中. 通过这种方法,访存类指令执行的开销可以在Cache命中的情况下减少到一个半周期以内. MPC包含16项,每一项包含两个部分.每一个部分中保存一条指令.还有一个TAG区域保留,作为地址和处理器模式的标识位(KERNEL_MODE或USER_MOD

RISC处理器设计(二)------指令集的设计

定义指令字长为32位,并把寄存器堆扩展到32个通用32位寄存器.一套包含8个寄存器的寄存器堆,对于一个优化好的进程,足够安排所有的本地变量.采用寄存器窗技术可以提高系统的吞吐率.使CPI<1.一套32位寄存器阵列能够实现4个嵌套深度的进程. 1.指令格式的设计 指令可以分为四大类: 类别 说明 运算类 寄存器数据算术逻辑运算 访存类 主存储器访问(Load/Store) 跳转类 分支跳转(控制转移.条件与非条件) 特殊类 对诸如程序计数器PC等特殊寄存器操作的特殊指令 指令格式可以分为两大类:访

RISC处理器设计(四)------数据流的设计

数据流是由硬件的数据通路决定的,表示数据随着指令的执行而流动的过程.也就是数据和控制之间的关系. 对于数据而言,包括操作码.操作数.存储器地址和内容.跳转目的地址和内容.寄存器地址和内容. 对于控制而言,包括控制各个部件的控制信号.时序控制信号和中断控制信号. 1.指令在数据通路中的执行 (1)指令装载进指令寄存器IR 指令的地址来自程序计数器PC.在最好情况下,指令来自指令Cache,是由跳转Cache BTC和通用指令Cache MPC共同构成的. 在最坏的情况下,指令来自于外部存储器,即C

RISC处理器设计(八)-------处理器整体架构

将粗略结构模型的数据通路划分为:取指令单元IFU.指令译码单元IDU.算术运算单元ALU.存储器访问单元MAU以及前推和数据寄存器堆FRU. 前推和数据寄存器堆FRU包括写回级.寄存器堆和数据前推逻辑.一些指令的功能涉及在多个流水线级的操作,把流水线的控制功能集中在两个模块完成. 因此分别设计流水线控制单元PCU和总线控制单元BCU,用以实现对外存储器和总线控制协议的接口. 1.取指令级IFU IFU包括程序计数器PC.跳转解码.PC逻辑.通用指令Cache MPC和条件转移目标Cache BT

RISC处理器设计(三)------中断的设计

中断是将正常的指令流运行过程转向中断服务程序.在中断处理完之后,处理器返回到原来运行的程序. 处理器状态包括寄存器状态和程序流返回地址,他们保存在特殊寄存器和通用寄存器的R28~R31中.所以有两套额外的寄存器在不同的中断等级下调出使用. 处理器有外部中断或称为硬件中断(Hwi)供其他系统单元请求处理器暂停正在执行的程序,而内部中断则发生在处理器内部.内部中断又分为异常(EXC)和软件中断(SWI)两种. 异常是指令执行过程中发生错误时自动调用的,软件中断是SWI指令调用的. 软件通过跳转到不同

RISC处理器

 RISC(精简指令集算法)处理器是经过硬件的精简只执行很有限的最常用的那部分指令的处理器.因为通过研究发现,只有 大约 20%的指令是最常用的,把处理器能执行的指令数目减少到 最低限度,对它们的执行进行优化,就可以极大地提高处理器的 工作速度.一般来说,RISC 处理器比同等的 CISC 处理器要快 50%-75%,同时 RISC 处理器更容易设计和纠错. RISC处理器的基本思想 体:指令系统结构 操作:简单 数据:Load-Store结构,寻址方式简单 编码:定长 相:实现与使用方式 简化

基于状态机的简易RISC CPU设计

目录 一.什么是CPU? 二.RISC CPU结构 1.时钟发生器 2.指令寄存器 3.累加器 4.RISC CPU算术逻辑运算单元 5.数据控制器 6.状态控制器 7.程序计数器 8.地址多路器 9.外围模块 10.地址译码器 a.RAM b.ROM 三.RISC CPU中各部件的相互连接关系 四.RISC CPU和它的外围电路 五.RISC CPU的寻址方式和指令系统 六.RISC CPU的操作和时序 正文 一.什么是CPU? CPU 即中央处理单元的英文缩写,它是计算机的核心部件.计算机进

论5级流水32bit risc cpu设计

前段时间用verilog写了一个32bit的risc cpu,五级流水,下板调试已经完全可用,准备后期加入浮点运算器,因为最近事情超级多,因此暂时先把RTL图传上来供大家参考,后面我会讲具体怎么设计.希望大家多多关注 :)

迅为iMX6开发板支持单核,双核,四核处理器,为客户产品选择提供灵活性

本文转自迅为:http://topeetboard.com 店铺:https://arm-board.taobao.com 处理器:Freescale Cortex-A9 四核 i.MX6Q 主频 1.2 GHz:开发板默认是四核商业扩展级芯片,可根据用户需求更换单核,双核,工业级.汽车级处理器,批量更省成本. 核心板配置:标配大内存:2GB DDR3内存 16GB EMMC存储;另有4MB的EEPROM用来存储关键数据. 核心板连接器:扩展引脚多达320个 ,经过大批量检验的核心板连接方式,更