| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 带你了解嵌入式处理器的流水线技术 -> 正文阅读 |
|
[嵌入式]带你了解嵌入式处理器的流水线技术 |
?01.为什么要引入流水线技术嵌入式处理器执行指令时,一般步骤为:首先从存储器中读取指令,然后对该指令进行译码,识别出被执行的指令属于哪一种指令,然后再从指令中提取到操作数并进行组合,接着根据需要将数据存储到存储器中,最后将结果写到寄存器中。但是,在实际运行过程中,并非所有的指令都需要执行所有的步骤,并且这些步骤所需要用到的硬件功能往往也是不同的。假如某条指令结束之前,后一条指令还未开始,那么在处理指令的每一个步骤都只需使用少部分的硬件,因而硬件资源的使用率并不高。 那么如何改善硬件资源的使用率呢?可以使用流水线技术,即在当前的指令结束之前,就开始执行后一条指令。RISC处理器执行指令时就采用了流水线技术,在对当前指令进行译码的同时,读取下一条指令,从而提高了指令执行的效率。和汽车制造的流水生产线技术一样,在每一个阶段都只进行特定的处理器任务。 02.处理器中流水线技术的应用到ARM7为止的ARM处理器都使用了三级流水线技术: 1)取指:从寄存器中加载一条指令; 2)译码:识别指令,并准备下一个周期需要用到的数据通路的控制信号。 3)执行:处理指令,将所得到的结果写到寄存器中。 在处理器执行简单的数据处理指令的时候,原本完成一条指令平均需要3个时钟周期,那么使用流水线技术,就能将一条指令的平均完成时间缩短至1个时钟周期。因而三级流水线技术对于到ARM7为止的ARM处理器而言性价比都是比较高的,能满足其高性能的要求。 如果处理器要获得更高的性能,有两种方法:一是提高时钟频率,但这会缩短指令的执行周期,就需要简化每一级中流水线的逻辑,增加流水线的级数;二是减少每一条指令的平均指令周期。 三级流水线的ARM核在每一个时钟周期都会访问存储器:读取指令或者进行数据传输,只是利用不使用存储器的周期进行性能改善,这对于处理器而言无法获得更高的性能。而减少指令的平均指令周期数,就需要在每个时钟周期内让存储器给出多于一个的数据,即让一个存储器给出32位以上的数据或者为指令和数据各设一个存储器。 因而,较高性能的ARM核采用了五级流水线,以提高时钟频率,并且为指令和数据分别设置了一个存储器,以减少每条指令的平均周期数。ARM9TDMI使用的就是典型的五级流水线技术: 1)取指:从存储器中加载一条指令并放入指令流水线; 2)译码:识别所读取的指令,并从寄存器堆中提取操作数; 3)执行:将其中一个操作数移位,并在存储器地址中产生结果,其中对于load、store指令则是计算存储器地址; 4)缓冲/数据:如果不需要数据,就只是缓冲一个时钟周期,如果需要数据就访问数据存储器获取数据; 5)回写:将处理指令所得到的结果写到寄存器堆中。 在Cortex-A8中ARM核采用了十三级流水线以提高性能。 03.流水线技术不适用的情况在处理器处理某些指令或者当指令过于复杂时,流水线的使用效率就会降低,甚至难以使用流水线实现。 例如当前指令的结果在后一条指令取数的时候还没有产生,并且后一条指令的操作数是当前指令的结果,那么后一条指令必须中断直到等到前一条指令的结果产生。 此外,如果出现跳转指令,并且跳转目标的计算结果会影响后一条指令的取指,那么就必须中断,但是,在进行译码之前,无法确定当前指令属于跳转指令,而此时已经按照流水线已经完成了后一条指令的取指,那么只能放弃该指令的取指结果,重新进行取指。如果跳转指令发生在执行指令的阶段,那么需要放弃已经取指的后两条指令,这无疑会降低流水线的使用效率。 因而,只有按照相似步骤执行的指令,才能发挥流水线技术的使用效率,达到预期提高处理器性能的目的。 04.SkyEye支持的处理器核心SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。 SkyEye目前支持主流的嵌入式硬件平台,可以运行主流的操作系统,此外还能适配国内自主研发的操作系统天脉。通过利用基于LLVM的动态二进制翻译技术,使虚拟处理器在典型的桌面计算机上运行速度可以达到2000MIPS以上。 ▲图?4-1?利用虚拟原型来降低产品的周期和成本 SkyEye支持包括ARM在内的多种指令集架构的不同处理器核心,可以在主流的嵌入式硬件平台,运行主流的操作系统,还能适配国内自主研发的操作系统天脉。 五、参考资料 [1].《ARM处理器开发详解》 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:20:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |