首页 > 编程知识 正文

计算机组成原理流水线,嵌入式工程级处理器

时间:2023-05-05 10:09:20 阅读:109516 作者:1233

01. 为什么要引入流水线技术

嵌入式处理器执行指令时,一般的步骤是,首先从存储器中读取指令,然后再解码该指令,识别被执行的指令属于哪个指令,然后从指令中取出操作数进行组合,根据需要将数据存储在存储器中但在实际操作中,并非所有指令都需要执行所有步骤,这些步骤所需的硬件功能往往也不同。 如果在某个指令结束之前,下一个指令还没有开始,则硬件资源利用率不高,因为处理该指令的所有步骤都需要较少的硬件使用。

那么,如何改善硬件资源的利用率呢? 可以使用流水线技术。 这意味着在当前指令结束之前,开始执行下一个指令。 RISC处理器在执行指令时采用流水线技术,通过在解码当前指令的同时读取下一个指令,提高了指令的执行效率。 和汽车制造的流水生产线技术一样,在各个阶段只进行特定的处理器任务。

02. 处理器中流水线技术的应用

到ARM7的ARM处理器使用三级流水线技术。

1 )读取)从寄存器加载指令;

2 )识别解码)命令,准备下一个周期中使用的数据路径的控制信号。

3 )执行)处理指令,并将结果写入寄存器。

当处理器执行简单数据处理指令时,原本平均每完成一条指令需要三个时钟,但是使用流水线技术可以将一条指令的平均完成时间缩短到一个时钟。 因此,三级流水线技术对于到ARM7为止的ARM处理器来说,能够满足高性能的要求,性价比较高。

处理器有两种方法可以获得更高的性能。 一种是提高时钟频率,这是为了缩短指令的执行周期,需要简化每一级的流水线逻辑,增加流水线的级数。 二是减少每条指令的平均指令周期。

三阶段流水线的ARM核心在每个时钟周期访问内存。 读取指令和传输数据只是在不使用内存的周期内进行性能改善,处理器无法获得更高的性能。 为了减少指令的平均指令周期数,必须在每个时钟周期向存储器提供多个数据。 这意味着必须为一个内存提供32位以上的数据,或者为指令和数据分别设置一个内存。

为此,高性能的ARM核采用五级流水线提高时钟频率,为指令和数据分别设置一个存储器,减少每个指令的平均周期数。 ARM9TDMI使用典型的五级流水线技术。

1 )读取是指从存储器中加载指令并放入指令流水线

2 )解码)识别读取的指令,从寄存器文件中提取操作数;

3 )执行)移位其中一个操作数,向存储器地址生成结果。 这里,关于load、store指令不计算存储器地址;

4 )缓冲/数据)在不需要数据情况下,只缓冲1个时钟周期,在需要数据的情况下,访问数据存储器取得数据

5 )写回:将处理指令所得结果写入寄存器文件。

在Cortex-A8中,ARM核心采用13级流水线来提高性能。

03 .管线技术不适用时

如果处理器处理特定指令,或者指令过于复杂,则流水线的使用效率会降低,或者很难在流水线上实现。

例如,如果当前指令的结果在读取下一个指令时还没有产生,而下一个指令的操作数是当前指令的结果,则下一个指令必须中断直到产生上一个指令的结果。

另外,在发生跳转命令,跳转目标的计算结果影响下一个命令的支路的情况下,必须中断,但在进行解码之前,不能确定当前的命令是跳转命令,在流水线上完成了下一个命令的支路的情况下,停止该命令如果跳转指令在执行指令的阶段发生,则必须丢弃已经指定的以下两个指令,这无疑会降低流水线的使用效率。

因此,只有以相似顺序执行的指令才能发挥流水线技术的使用效率,有望提高处理器的性能。

04. SkyEye支持的处理器核心

SkyEye,中文全称天目全数字实时仿真软件

SkyEye目前除了支持主流的嵌入式硬件平台,能够运行主流的操作系统外,还能适应国内自主开发的操作系统的发展脉络。 利用基于LLVM的动态二进制翻译技术,虚拟处理器可以在典型的台式计算机上以2000MIPS或更高的速度运行。

图4-1利用虚拟样机降低产品周期和成本

SkyEye支持包括ARM在内的多种指令集架构的不同处理器内核,是主流的嵌入式硬件平台,运行主流的操作系统,适应国内自主开发的操作系统的精髓

五、参考资料

[1]. 《ARM处理器开发详解》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。