`
soboer
  • 浏览: 1319793 次
文章分类
社区版块
存档分类
最新评论

ARM9五级流水线 .

 
阅读更多

Arm9的流水线分为:取值,译码,执行,仿存,回写

取值

从指令存储器取指令

译码

读取寄存器操作数

执行

产生ALU运算结果或产生存储器地址

仿存

访问数据存储器

回写

完成结果写寄存器

五级流水线技术的问题:如果当前指令(A) 的目的操作数寄存器(也就是写寄存器的操作)和下一条指令(B) 的源操作数寄存器(也就是度寄存器的操作)一致,B 指令就需要等A 回写之后才能译码。这就是五级流水线中的寄存器冲突,所以应该避免写这一种程序。为了解决这个问题,就采用了互锁。来解决这个问题。如图所示:

由于指令LDR的目的地址和他的下一条指令的源地址都是R9,第一条指令对R9的写要发生在回写阶段,也只有第一条指令会写后第二条指令才能进行译码。所以会产生上述的情况。

通常采用的解决的办法是改变程序的顺序就可以了。

例如:现在要实现的是:把0x00001000和0x00002000处的内容放到地址是0x00008000和0x00009000的位置。

其中0x00001000里面的内容是: H E L L O W O R L D

实现的过程是:

全部拷贝过程由两个结构相同的循环各自独立完成,分别实现两块数据的拷贝,并且两个拷贝过程极为类似,分析其中一个即可。

T1~ T3 是3 个单独的时钟周期; T4 ~ T11 是一个循环,在时空图中描述了第一次循环的执行情况。在T12 的时候写LR 的同时,开始对循环的第一条语句进行取指,所以总的流水线周期数为3 + 10 ×10 + 2 ×9 = 121 。整个拷贝过程需要121 ×2 + 2 = 244 个时钟周期完成。考虑到通过减少流水线的冲突可以提高流水线的执行效率,而流水线的冲突主要来自寄存器冲突和分支指令,因此对代码作如下两方面调整:

①将两个循环合并成一个循环能够充分减少循环跳转的次数,减少跳转带来的流水线停滞;

②调整代码的顺序,将带有与临近指令不相关的寄存器插到带有相关寄存器的指令之间,能够充分地避免寄存器冲突导致的流水线阻塞

对代码调整和流水线的时空图如图所示

调整之后, T1 ~ T5 是5 个单独的时钟周期, T6~ T13是一个循环,同样在T14的时候BNE 指令在写LR 的同时,循环的第一条指令开始取指,所以总的指令周期数为5 + 10 ×10 + 2 ×9 + 2= 125 。

通过两段代码的比较可看出:调整之前整个拷贝过程总共使用了244 个时钟周期,调整了循环内指令的顺序后,总共使用了125 个时钟周期就完成了同样的工作,时钟周期减少了119 个,缩短了119/ 244 = 48. 8 % ,效率提升十分明显。

因此流水线的优化问题主要应从两方面考虑:

①通过合并循环等方式减少分支指令的个数,从而减少流水线的浪费;

②通过交换指令的顺序,避免寄存器冲突造成的流水线停滞。

分享到:
评论

相关推荐

    ARM流水线关键技术分析与代码优化

    流水线技术通过多个功能部件并行工作来缩短...ARM7处理器核使用了典型三级流水线的冯•诺伊曼结构,ARM9系列则采用了基于五级流水线的哈佛结构。通过增加流水线级数简化了流水线各级的逻辑,进一步提高了处理器的性能。

    arm9_compatiable_code_high.v

    在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样...

    三级流水线RISC-V处理器设计与验证.pdf

    三级流水线结构是最常用的流水线结构之一,分别为取指、译码、执行、访存和写回五个阶段。流水线的深度越高,流水线被切得越细,每一级流水线内容纳的硬件逻辑越小,进而吞吐率性能更佳。但是,三级流水线结构也存在...

    MIPS五级流水线CPU(全部注释)

    系统硬件综合设计 设计并实现一个多周期和流水CPU。 1.若干段流水、可以处理冲突。 2.三种类型的指令(R类,I类,J类指令)若干条。 3.CPU指令集(MIPS、ARM、RISC-V等均可)不限

    一种超低功耗的RISC-V处理器流水线结构.pdf

    该设计考虑到功耗和性能的折中要求,采用了以两级按序流水线为主体,辅以其他组件流水线长度可变的流水线结构。该设计基于RISC-V指令集架构的优点,具有极简、模块化和可定制扩展等优点。 在 IoT 的终端设备应用中...

    嵌入式系统/ARM技术中的ARM9微处理器系列

    ARM9微处理器系列采用ARMV4T(Harvard)结构,五级流水线,指令与数据分离的Cache,平均功耗为0.7mW/MHz,时钟频率为120MHz~200MHz,在高性能和低功耗特性方面提供最佳的性能。ARM9微处理器系列具有如表所示特点。...

    复旦nois教材01.rar

    1 第一章 绪论....................................................................................................................................1 1.1 概述................................................

    嵌入式系统.pdf

    Arm 9的体系结构是一个五级流水线结构,包括取指令、译码、执行、访存和写回等五个阶段。Arm 9的特点包括高性能、低功耗、低成本等。Arm 9的应用包括嵌入式系统、机器人、自动控制系统等多个领域。 嵌入式系统是一...

    嵌入式系统/ARM技术中的uClinux在Nios II嵌入式平台上的移植研究

     Nios II是运行在FPGA上的五级流水线、单指令的RISC处理器,它专门针对Altera的可编程逻辑器件及片上可编程的设计思想做了相应的优化。作为一种可配置的精减的RISC处理器,它可以与用户自定义逻辑结合构成SOPC系统...

    计算机科学丛书:计算机组成原理 [英] 艾伦·克莱门茨(Alan Clements)(2017.3出版)

    3.9.9 十六进制字符转换 144 3.9.10 输出十六进制字符 144 3.9.11 打印横幅 145 3.10 子程序与栈 145 3.10.1 子程序调用与返回 147 3.10.2 子程序嵌套 148 3.10.3 叶子程序 150 3.11 数据的大小与排列 150 3.11.1 ...

    嵌入式系统/ARM技术中的一款32位嵌入式CPU的定点加法器设计

    摘要:根据一块32位嵌入式CPU的400MHz主频的要求,结合该CPU五级流水线结构,并借鉴各种算法成熟的加法器,提出了一种电路设计简单、速度快、功耗低、版图面积小的32位改进定点加法器的设计方案,为后续浮点加法器的...

Global site tag (gtag.js) - Google Analytics