0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解ARM内核中的处理器和注册文件

嵌入式星球 2020-10-09 14:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

了解ARM内核的微体系结构,包括寄存器文件的说明及其在处理器中的功能。
在本文中,我们将定义什么是微体系结构。我们还将说明什么是ARM寄存器文件以及它在处理器的微体系结构中的位置。
本文旨在为下一篇文章提供基础信息,在本文中,我们将介绍汇编的基础知识,并展示一些使用Raspberry Pi编写的32位ARM内核的基本汇编指令

什么是微架构?


微体系结构(有时写为“微体系结构”)是允许执行指令集的数字逻辑。它是寄存器,存储器,算术逻辑单元,多路复用器和任何其他数字逻辑块的组合实现。所有这些共同构成了处理器。

微体系结构与指令集体系结构(ISA)相结合,构成了系统的整体计算机体系结构。不同的微体系结构可以实现相同的ISA,但是需要在功率效率或执行速度等方面进行权衡。最基本的处理器将包括一个寄存器文件,一个ALU,系统存储器和一个控制单元,该控制单元使处理器可以根据其执行的指令来做出决定。


ARM寄存器文件


要对数据执行操作,需要有一个临时存储该数据的地方。这就是处理器的注册文件的用途。寄存器文件是一堆寄存器,用于存储临时值并对这些值执行操作。在寄存器之外,可以检索数据并将其存储在计算机的内存中。虽然这是一个较慢的操作,但是与可用的相对较少的寄存器相比,可以在内存中存储的内容更多。寄存器文件通常以SRAM的形式出现。

让我们以32位ARM内核为例。在这种情况下,我们将重点介绍32位ARMV7指令和32位寄存器。

32位或4字节的数量对应于ARM指令集中的一个字。ARM寄存器文件包含十六个用于执行指令的寄存器。还存在状态寄存器来存储有关操作结果的信息,并允许处理器根据该结果做出决定。


注册符号


寄存器用字母R和数字表示。

  • R0–R3用于存储临时值或变量,但在子例程调用中也起作用。

  • R4–R12是通用的。

  • R13或SP是堆栈指针。堆栈指针包含一个内存地址,程序可以在该内存中存储以后需要检索的信息。

  • R14是链接寄存器,与分支指令一起使用以返回程序中的上一个位置。

  • R15,称为PC为programÇounter,存储下一个指令的地址被执行。这给PC带来了巨大的责任,因为它可以控制处理器上执行的指令。在PC上输入错误的值,您的程序可能会突然停止运行;这通常称为崩溃。



注册标志

所述 current program status register (CPSR),前面提到的,包含大量的标记,可以是当集的指令执行的。

这些标志是N,Z,C和V标志:

  • N代表负数,并在指令结果为负数时使用。

  • Z,ZERO,当结果为零。

  • C代表carry并且在进位输出被设定的指令结果时。

  • V代表oveRFlow ,发生溢出时被设置。

为了检查这些标志,在编写汇编代码时,某些条件后缀(在后面的文章中讨论)会附加到指令中。


处理器的一部分:数据路径和控制单元


尽管我们不会详细介绍设计ARM处理器的细节(也许在以后的文章中),但最好能基本了解寄存器文件适合运行我们的指令的系统的位置。下面的图1是处理器的高度简化框图。

寄存器文件包含处理器的当前状态,并且ALU和内存与该状态交互。内存分为多个部分。其中包含正在执行的指令列表(汇编程序);另一个保存程序将使用的数据。所有这些组件以及绿色突出显示的行构成了处理器的数据路径。

数据路径包含执行正在实施的ISA中所有指令所需的所有内容。但是数据路径如何知道要执行哪个操作?


图1.高度简化的处理器


数据路径上方是控制单元。控制单元解释在每个指令中找到的操作码(操作码)和条件码,以打开或关闭数据路径内的路由。控制单元使处理器能够根据当前从内存中读取的指令执行不同的操作。控制单元和数据路径共同构成了CPU或中央处理单元。

添加允许CPU与其他组件交互的内存就形成了我们所谓的处理器。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9588

    浏览量

    393556
  • 微架构
    +关注

    关注

    0

    文章

    22

    浏览量

    7347
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CP3UB17:可重编程连接处理器的技术剖析

    ,在众多应用场景展现出强大的优势。下面我们就来深入了解一下CP3UB17的各项特性。 文件下载: CP3UB17K38/NOPB.pdf 一、总体概述 CP3UB17将强大的RISC内核
    的头像 发表于 04-18 15:25 464次阅读

    深入剖析STA2065:高性能信息娱乐应用处理器

    的STA2065,一款高度集成的SOC应用处理器,它将主机功能与高性能嵌入式GPS完美结合,广泛应用于车辆主机、移动导航、远程信息处理、信息娱乐、高级音频和连接系统等领域。 文件下载: STA2065N.pdf 一、STA206
    的头像 发表于 04-16 14:05 86次阅读

    ADSP-2148x SHARC处理器:音频处理领域的强大之选

    ,成为了音频处理应用的理想选择。今天,我们就来深入了解一下这款处理器文件下载: ADSP-21489.pdf 处理器概述 ADSP-21
    的头像 发表于 03-23 16:40 434次阅读

    ADAU1702音频处理器:音频处理的强大解决方案

    ADAU1702音频处理器:音频处理的强大解决方案 在音频处理领域,一款高性能、功能丰富的音频处理器至关重要。今天我们就来深入了解一下Ana
    的头像 发表于 03-23 16:05 128次阅读

    探索TDA54x Jacinto™处理器:高性能与安全的完美融合

    我们带来了哪些新的技术亮点和应用可能。 文件下载: tda54-q1.pdf 强大的功能特性 多核心处理架构 TDA54x处理器拥有丰富的处理核心。它配备了多达八个
    的头像 发表于 03-06 16:50 1151次阅读

    深入剖析ARM64内核关键文件:kernel-6.1/arch/arm64/kernel/head.S

    ARM64 架构的 Linux 内核开发,arch/arm64/kernel/head.S是一个绕不开的关键文件—— 它是
    的头像 发表于 02-04 17:35 1380次阅读
    深入剖析<b class='flag-5'>ARM</b>64<b class='flag-5'>内核</b>关键<b class='flag-5'>文件</b>:kernel-6.1/arch/<b class='flag-5'>arm</b>64/kernel/head.S

    Cortex-M0 处理器介绍

    Cortex-M0 处理器简介ARM公司的Cortex-M0应用于各种微控制(MCU),并可让研发工程师以8位的价位创造32位的的效能,并将传统的8位和16位的
    发表于 01-16 08:04

    瑞萨RZ/G2L微处理器Linux内核热管理框架介绍

    RZ/G2L微处理器配备Cortex-A55(1.2 GHz)CPU、16位DDR3L/DDR4接口、带Arm Mali-G31的3D图形加速引擎以及视频编解码(H.264)。此外,这款微
    的头像 发表于 01-05 14:32 5624次阅读
    瑞萨RZ/G2L微<b class='flag-5'>处理器</b>Linux<b class='flag-5'>内核</b><b class='flag-5'>中</b>热管理框架介绍

    利用Verdi调试协处理器的实现步骤

    的search forward工具按钮搜索nice_req_valid信号以追踪到主处理器发起的调用请求信号。 结果如下图所示。 小结 本文梳理了调试过程的技巧,通过调试发现协处理器设计不周到的地方,因为能力有限,若是
    发表于 10-30 08:26

    MD5信息摘要算法实现二(基于蜂鸟E203协处理器

    本设计首先根据MD5协处理器的功能设计MD5算法IP核,软件部分使用串口程序助手进行64位加解密结果的输出,E203内核根据地址取出对应的数据,使用相关的指令进行传输显示。通过NICE接口将MD5协
    发表于 10-30 07:54

    基于E203 NICE协处理器扩展指令

    扩展到某些特定领域可以非常明显地提高能效比。NICE协处理器(Nuclei Instruction Co-unitExtension,蜂鸟内核指令协处理器扩展机制)是一个独立于蜂鸟E203内核
    发表于 10-21 14:35

    Cortex-M0+处理器的HardFault错误介绍

    ARM处理器,如果一个程序产生了错误并且被处理器检测到,就会产生错误异常。Cortex-M0+处理器只有一种异常用以
    的头像 发表于 10-14 10:50 3644次阅读
    Cortex-M0+<b class='flag-5'>处理器</b>的HardFault错误介绍

    石油测井仪器电子舱的“大脑”——高温ARM处理器芯片

    175℃高温ARM处理器芯片是高温电子学的尖端成果,是解锁深部、高温油气资源勘探开发的关键技术之一
    的头像 发表于 07-22 13:09 1168次阅读
    石油测井仪器电子舱的“大脑”——高温<b class='flag-5'>ARM</b><b class='flag-5'>处理器</b>芯片

    集成了Arm® Cortex®-M0内核处理器的电容处理器芯片

    ‌电容处理器芯片的工作原理‌主要基于电容传感的原理,通过检测电容的变化来感知物理量的变化。电容传感利用两个导体之间的电容变化来检测各种物理量,如距离、位置、液位和压力等‌。
    的头像 发表于 06-06 10:09 826次阅读
    集成了<b class='flag-5'>Arm</b>® Cortex®-M0<b class='flag-5'>内核</b>微<b class='flag-5'>处理器</b>的电容<b class='flag-5'>处理器</b>芯片

    龙芯处理器支持WINDOWS吗?

    )。 Windows的适配:微软官方仅支持x86/x64和ARM架构的处理器,未推出针对LoongArch或MIPS的Windows版本。 技术限制 指令集不兼容:Windows系统的内核、驱动和应用程序均依赖x86
    发表于 06-05 14:24