• ARM体系结构


    ARM 内核采用精简指令集结构(RISC,Reduced Instruction Set Computer)体系结构。其目标是设计出一套能在高时钟频率下单周期执行、简单而有效的指令集,RISC 的设计重点在于降低硬件执行指令的复杂度,这是因为软件比硬件容易提供更大的灵活性和更高的智能。与其相对的传统复杂指令级计算机(CISC)则更侧重于硬件执行指令的功能性,使 CISC 指令变得更复杂。

    Thumb 指令集
    ARM 处理器根据 RICS 原理设计,但是由于各种原因,在低代码密度上它比其他多数 RICS 要好一些,然
    而它的代码密度仍不如某些 CISC 处理器。在代码密度重要的场合,ARM 公司在某些版本的 ARM 处理器
    中加入了一个称为 Thumb 结构的新型机构。Thumb 指令集是原来 32 位 ARM 指令集的 16 位压缩形式,并
    在指令流水线中使用了动态解压缩硬件。Thumb 代码密度优于多数 CISC 处理器达到的代码密度。

    互锁 
    在典型的程序处理过程中,经常会遇到这样的情形,即一条指令的结果被用做下一条指令的操作数。如例
    2.4 所示。
    【例 2.4】
    有如下指令序列:
    LDR r0,[r0,#0]
    ADD r0,r0,r1 ;在 5 级流水线上产生互锁
    从例 2.4 中可以看出,流水线的操作产生中断,因为第一条指令的结果在第二条指令取数时还没有产生。
    第二条指令必须停止,直到结果产生为止。

    在 ARM9TDMI 中使用了典型的 5 级流水线。ARM9TDMI 的组织结构如图 2.7 所示。
    5 级流水线包括下面的流水线级:
    取指(fetch):从存储器中取出指令,并将其放入指令流水线。
    译码(decode):指令被译码,从寄存器堆中读取寄存器操作数。在寄存器堆中有 3 个操作数读端口,
    因此,大多数 ARM 指令能在 1 个周期内读取其操作数。
    执行(execute):将其中一个操作数移位,并在 ALU 中产生结果。如果指令是 Load 或 Store 指令,则
    在 ALU 中计算存储器的地址。
    缓冲/数据(buffer/data):如果需要则访问数据存储器,否则 ALU 只是简单地缓冲一个时钟周期。
    回写(write-back):将指令的结果回写到寄存器堆,包括任何从寄存器读出的数据。

  • 相关阅读:
    又见Dooyoul
    用premake编译跨平台opencv程序
    [try it] 使用Apache Ant
    用OllyDbg做破解
    什么是SEO
    SEO最新百度排名算法调整
    SEO网站外链的建设
    SEO网站title优化
    网站title优化应注意的细节
    [ios]设置ARC 【转】
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8245424.html
Copyright © 2020-2023  润新知