IT评测·应用市场-qidao123.com

标题: [Tricore][TC1.6.2][架构手册] - 3.系统和通用寄存器 [打印本页]

作者: 滴水恩情    时间: 2024-12-27 00:23
标题: [Tricore][TC1.6.2][架构手册] - 3.系统和通用寄存器
简介:
本篇为英飞凌TC1.6.2架构手册第三章翻译 - General Purpose and System Registers
手册实用于TC3XX(包罗TC397)芯片
官方架构手册下载链接:
https://www.infineon.com/dgdl/Infineon-AURIX_TC3xx_Architecture_vol2-UserManual-v01_00-EN.pdf?fileId=5546d46276fb756a01771bc4c2e33bdd

 目录

3.系统和通用寄存器
复位值
ENDINIT掩护
3.1.通用寄存器 - GPR
 通用数据寄存器
通用地址寄存器
3.2.程序状态信息寄存器
程序计数器 - PC
程序状态字 - PSW
PSW用户状态位
访问权限等级控制 - I/O权限
PCXI - 之前上下文信息
3.3.栈管理寄存器
栈指针寄存器 - A[10] (SP)
中断栈指针寄存器 - ISP
系统控制寄存器 - SYSCON
CPU ID寄存器 - CPU_ID
Core ID寄存器 - CORE_ID
3.4.兼容模式寄存器 - COMPAT
3.5.权限控制寄存器
SIST模式权限控制寄存器 - SMACON
3.6.中断寄存器
3.7.内存掩护寄存器
3.8.Trap寄存器
3.9.内存配置寄存器
3.10.内核调试控制寄存器
3.11.浮点寄存器
3.12.内核特殊功能寄存器的权限

   3.系统和通用寄存器

  TriCore内核寄存器有两种类型:
通用寄存器 - General Purpose Registers (GPRs)
内核特殊功能寄存器 - Core Special Function Registers (CSFRs)
通用寄存器包含16个数据寄存器以及16个地址寄存器,内核特殊功能寄存器控制内核运行,同时提供内核相干的状态信息,内核寄存器大致可分为如下几种类型:

   复位值

  架构手册只给出了部门通用的复位值,未给出的必要参考各个平台的具体实现 
   ENDINIT掩护

  TriCore架构支持在用户程序运行之进步行预初始化
预初始化阶段,可以使用MTCR指令修改全部的内核特殊功能寄存器CSFR
用户程序执行阶段,仅部门内核特殊功能寄存器可以通过MTCR指令修改,其他指令不受影响
这种CSFR仅在预初始化阶段可写入的行为称为ENDINIT掩护,从预初始化阶段过渡至用户程序执行阶段的方式依照各具体的平台实现,ENDINIT掩护使得CSFR仅在预初始化阶段可被修改,从而为关键的CSFR提供额外的掩护,如下几个CSFRENDINIT掩护:

TriCore架构提供了安全版本的ENDINIT掩护,如下几个寄存器受到SAFETY_ENDINIT掩护:

   3.1.通用寄存器 - GPR

  通用寄存器GPR分为数据寄存器和地址寄存器:

数据寄存器和地址寄存器分离的设计,使算数运算和地址运算得以并行执行,从而提拔芯片的运行服从,一些指令被允许在数据寄存器和地址寄存器之间交换信息(例如创建或获取索引表),数据寄存器可以按相邻两个为一组的方式,构成8个扩展大小的寄存器E[0]E[2]E[4]E[6]E[8]E[10]E[12]E[14],从而可以支持64-bit宽度的数据,地址寄存器也可以按照雷同的方式构成P[0]P[2]P[4]P[6]P[8]P[10]P[12]P[14]

通过将相邻两个32位寄存器构成一对的方式支持64位指令,汇编语法中这些寄存器称为32位寄存器对或扩展64位寄存器,例如D[8]/D[9]寄存器对(E8寄存器为D[8]D[9]的串联,D[8]E[8]的最低有用字或者低32位)
为了支持扩展地址模式,相邻的一奇一偶两个32位寄存器构成寄存器对,用于生存扩展的地址值,如A[8]/A[9]寄存器对
TriCore架构没有单独的浮点寄存器,通用数据寄存器GPR也用于浮点数盘算,浮点数据使用自动上下文切换,支持自动生存和恢复


GPR是任务上下文切换的必要部门,生存或恢复任务的上下文时会将其分为上半部门和下半部门:

    通用数据寄存器

  


   通用地址寄存器

  


   3.2.程序状态信息寄存器

  PCPSWPCXI三个寄存器生存程序状态相干信息,在生存、恢复以及修改任务内容的过程中,这些寄存器是生存和恢复任务上下文的紧张组成部门

   程序计数器 - PC

  指向当前正在执行的指令(生存当前正在执行指令的地址),PC是任务状态信息的一部门,修改PC指针必要在内核处于Halt状态时举行,内核运行时修改指针无效


   程序状态字 - PSW

  PSW寄存器包含了通用寄存器GPR中没有记录,且特定于任务的状态信息,其下半部门(Lower Half)包含了掩护系统相干的控制参数,包罗:




   PSW用户状态位

  PSW寄存器最高的8位被指定为用户状态位,用户指令会设置或扫除相干位,通常用于记录指令执行结果的状态,单独的位也可用于调整部门指令的操纵,例如Add Extended(ADDE)Add with Carry(ADDE)指令使用第31位记录ADD操纵的执行情况,以及该位在指令执行前的值会反映在ADDC指令的执行结果中

有两类用户指令使用用户状态位:

PSW[23:16]为保留位,系统复位后通过MFCRMove From Core Register)指令读取PSW时这些位的值为0,通过MTCRMove To Core Register)指令写入PSW时,应向其写入0
   访问权限等级控制 - I/O权限

  软件任务管理(Software Managed Tasks, SMTs)由实时内核或操纵系统的服务创建,并在调度软件的控制下调度,中断服务例程(Interrupt Service Routines, ISRs)在相应中断时由硬件调度,ISR是处理器在吸收到中断时直接调用的代码,SMT有时称为用户任务,由于它们是在用户模式下执行的
每个任务依据任务的相干函数分配了对应的模式:

任何任务都与一组状态元素相干联,这些元素统称为任务的上下文,上下文是处理器定义任务状态并使其继续执行所需的统统,其中包罗任务使用的CPU通用寄存器、任务的程序计数器PC以及程序状态信息PCXIPSW,平台通过硬件管理和维护任务的上下文
   PCXI - 之前上下文信息

  之前上下文信息寄存器(Previous Context Information, PCXI)包含了之前执行任务的上下文相干信息,用于中断和自动上下文切换,PCXI是任务状态信息的一部门,之前上下文指针(Previous Context Pointer, PCX)生存之前任务的Context Save AreaCSA)地址


   3.3.栈管理寄存器

  TriCore架构的栈管理支持一个用户栈和一个中断栈,栈管理会用到地址寄存器A[10]、中断栈指针ISPPSW寄存器中的一位

在处理中断且必要使用中断专属的堆栈时(PSW.IS == 0),会生存用户堆栈的内容以及被中断任务的上下文,随后加载A[10](SP)以及ISP堆栈(从用户程序进入中断服务程序)
在处理中断或Trap,且已产生的中断任务正在使用专用堆栈(PSW.IS == 0)时,不会再次加载A[10](SP),中断服务例程ISP继续使用当前堆栈,但保留其中已入栈的值(中断嵌套)
一样平常只必要在预初始化阶段初始化一次ISP,但是根据应用程序的必要,ISP可以在程序执行时被修改,必要注意的是,没有指令或程序可以阻止ISR或者系统服务例程在专用堆栈上执行
注意:在ISR中使用A[10](SP)由程序员自己决定
   栈指针寄存器 - A[10] (SP)

  


   中断栈指针寄存器 - ISP

  注意:该寄存器受ENDINIT掩护


   系统控制寄存器 - SYSCON

  系统配置寄存器有如下几个功能:

注意:除了FCDSF位,该寄存器的其他位均受SAFETY_ENDINIT掩护


   CPU ID寄存器 - CPU_ID

  CPU ID寄存器指示了CPU的类型和版本


   Core ID寄存器 - CORE_ID

  多核处理器系统中,每个内核都有一个唯一的编号,其值生存在CODE_ID寄存器中


   3.4.兼容模式寄存器 - COMPAT

  COMPAT寄存器用于控制系统是否强制兼容之前的版本,其内容以各平台具体实现而定
注意:该寄存器受SAFETY_ENDINIT掩护


   3.5.权限控制寄存器

  SIST模式权限控制寄存器 - SMACON

使用SMACON寄存器可以控制系统测试软件(Software in System Test, SIST)的运行,该寄存器的实现依平台而定
注意:该寄存器受SAFETY_ENDINIT掩护


   3.6.中断寄存器

  TriCore架构中,一个典型的服务/中断请求包含独立的控制位,用于使能/禁用请求、分配优先级编号以及将服务请求发送给对应的服务提供者(CPU/DMA),参考内核特殊功能寄存器CSFR
   3.7.内存掩护寄存器

  内存掩护寄存器组的数量取决于平台的具体实现,最多可以有8个寄存器组(每个组包含一组数据和一组代码),每个寄存器组由多少组寄存器(也称为Range Table Entries)构成
每个范围表项包含一个段掩护寄存器对,以及一个通用模式寄存器内的位字段,寄存器对指定了受掩护内存的上下边界
内存掩护寄存器受内核特殊功能寄存器CSFR的控制
   3.8.Trap寄存器

  Trap寄存器受内核特殊功能寄存器CSFR的控制
   3.9.内存配置寄存器

  内存配置寄存器由架构定义,但具体实现依平台而定
   3.10.内核调试控制寄存器

  TriCore寄存器支持调试功能
   3.11.浮点寄存器

  参考FPU_TRAP_CON寄存器的具体实现
   3.12.内核特殊功能寄存器的权限

  CSFR使用MFCRMove From Core Register)指令举行读取操纵,使用MTCRMove To Core register)指令举行写入操纵,用户程序一样平常不必要更新CSFR,因此,CSFR的实现不依赖于硬件布局,从而避免更新这些寄存器导致的意外情况,执行MTCR指令更新CSFR之后插入一条ISYNC指令可以避免因更新而产生的意外情况,ISYNC指令可以确保执行后续指令前,全部CSFR均已完成更新
MTCR指令访问未定义的寄存器时无效,MFCR指令读取未定义的寄存器会返回未定义的数据

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4