基于CEVA DSP BX2的架构分析(三)-寄存器介绍(一)

目录

4 寄存器文件

4.1 概述

4.2 通用寄存器文件

4.3 谓词(Predicate)寄存器

4.4 特殊地址寄存器

4.4.1 堆栈指针寄存器

​​​​​​​4.4.2 I/O Space Page Register

​​​​​​​4.4.3 立即基址寄存器


4 寄存器文件

4.1 概述

4-1 列出了所有CEVA-BX2寄存器及其特殊属性。下面的部分将更详细地描述寄存器。

表4-1. CEVA-BX2寄存器摘要

寄存器组

寄存器名称

描述

R/W

Priv.级别

全局寄存器文件

r0-r31

通用寄存器

R/W

用户

谓词

PRDR

谓词寄存器

R/W

用户

特殊地址寄存器

SP(SP)

堆栈指针

R/W

用户

IOPR

I/O space page register

R/W

用户

IBA

立即表基址寄存器

R/W

用户

算术模式和状态寄存器

SASR

标量算术状态寄存器

R/W

用户

SFPSR

标量浮点状态寄存器

R/W

用户

SAMR

标量算术模式寄存器

R/W

用户

支持Getbits机制的寄存器

streambuff0

Getbits流缓冲区0

R/W

用户

Streambuff1

Getbits流缓冲器1

R/W

用户

tstreambuff

Getbits临时加载流缓冲区

R/W

用户

gbctl

Getbits控制寄存器

R/W

用户

程序控制和状态

PC

程序计数器

RO

用户

retreg

功能返回PC寄存器

R/W

用户

retreg_p1

上一个函数返回PC寄存器

R/W

用户

FBA

功能表基址寄存器

R/W

用户

ALC

辅助回路计数器

R/W

用户

IVBR

中断向量基

R/W

超级

GCR

全局配置寄存器

R/W

超级

GSR

全局状态寄存器

R/W

超级

CSR

核心状态寄存器

RO

超级

NTCSR

正常和陷阱中断CSR恢复寄存器

R/W

超级

CECSR

关键和错误中断CSR恢复寄存器

R/W

超级

DCSR

调试中断CSR恢复寄存器

R/W

超级

retregi

正常和陷阱中断返回寄存器

R/W

超级

retregn

关键和错误中断返回寄存器

R/W

超级

retregb

调试中断恢复寄存器

R/W

超级

EPC

PC寄存器错误

R/W

超级

btbdata

保存通过btbrd指令从BTB读取的数据

RO

超级

version

核心版本

RO

用户

4.2 通用寄存器文件

CEVA-BX2包含由3232位寄存器组成的通用寄存器文件(GRF)。寄存器被称为r0r31

一般来说,只要两条指令不写入同一目的地,GRF的寄存器就可以作为源操作数或目标操作数从分组中激活的所有执行单元访问,没有限制(有关更多详细信息,请参阅第4.1.4节,并行语义)。例如,使用四个源操作数的存储指令不会限制在同一数据包中与其分组的SPU指令使用为其指定的任意数量的源操作数。

在大多数情况下,使用GRF寄存器作为操作数的指令可以选择任何GRF寄存器。在某些情况下,特定操作数被限制为寄存器的子集(例如,可用于后修改地址或用作累加器的寄存器)。

每个指令支持的允许寄存器组在CEVA-BX2体系结构规范第II卷中的每个指令的描述中指定。

GRF寄存器可以保存表示许多数据类型的值,这些值的符号、宽度和格式各不相同。大多数类型适合于单个寄存器;然而,一些需要两个寄存器,例如长长(64位)类型,或包括实32位部分和虚32位部分的complex32类型。第4.2数据类型中描述了数据类型列表。

存储在寄存器中的数据的解释取决于将寄存器用作源操作数或目标操作数的指令。

GRF寄存器的重置值为0

4.3 谓词(Predicate)寄存器

谓词寄存器(PRDR)由谓词组成,这些谓词用于几乎所有CEVA-BX2指令的条件控制执行。

CEVA-BX2 PRDR寄存器包括15个标记为prX.bprX.b2的双标量谓词,其中X表示谓词索引015。每个谓词由两个位组成。

谓词可以是以下类型之一:

  • 单谓词(prX.b):用于标量(单目标)SPU操作,以及所有类型的LD/STPCU操作。
  • 双谓词(prX.b2):用于SIMD类型的SPU操作(类型s2i2)。

两位谓词中的每个位都根据其位置影响标量SIMD操作:右位影响操作的低位部分,左位影响运算的高位部分。

pr15始终保持值1,并用于指定指令无条件执行。

表4-2. PRDR寄存器位/字段描述

字段

位/位置

描述

prsl

pr14l、pr13l、pr12l、pr11l、pr10l、pr9l、pr8l、pr7l、pr6l、pr5l、pr4l、pr3l、pr2l、pr1l、pr0l

[14:0]

SPU的低位谓词寄存器(PR)。

该字段反映SPU的PR的状态。PR可以通过使用专用指令来修改,也可以通过使用ld、pop、mov或lbf指令显式写入寄存器来修改。

该字段在核心重置时清除。

pr15

[15]

低无条件谓词寄存器。

当用作指令的条件时,执行总是发生(即,它等同于不将谓词作为条件写入指令中)。

用作源时,表示逻辑“1”。

当用作目标时,它是一个伪寄存器,这意味着它不能被修改(即,它是只读寄存器)。

prsh

pr14h、pr13h、pr12h、pr11h、pr10h、pr9h、pr8h、pr7h、pr6h、pr5h、pr4h、pr3h、pr2h、pr1h、pr0h

[30:16]

SPU的高PR。

PR可以通过使用专用指令来修改,也可以通过使用ld、pop、mov或lbf指令显式写入寄存器来修改。

该字段在核心重置时清除。

pr15

[31]

无条件谓词寄存器。

当用作指令的条件时,执行总是发生(即,它等同于不将谓词作为条件写入指令中)。

用作源时,表示逻辑“1”。

当用作目标时,它是一个伪寄存器,这意味着它不能被修改(即,它是只读寄存器)。

4.4 特殊地址寄存器

以下各节描述特殊地址寄存器组,它由具有数据存储器寻址特殊功能的寄存器组成。这些寄存器主要由LSU使用。

​​​​​​​4.4.1 堆栈指针寄存器

堆栈指针(SP)是指向软件堆栈的32位寄存器。堆栈指针中的值指向要写入的下一个位置。

专用LDST指令具有相对于SP的寻址模式。此外,推送和弹出指令从堆栈中写入或检索值,这些指令在SP中执行所需的更新。

某些SPU算术指令可以使用SP作为源操作数或目标操作数来执行操作,这使软件能够管理堆栈。

有关这些指令和堆栈管理的更多详细信息,请参阅。SP寄存器的重置值为0

​​​​​​​4.4.2 I/O Space Page Register

I/O空间页寄存器(IOPR)保存基址,用于使用输入或输出指令在某些寻址模式下访问I/O

IOPR的重置值为0

4-3. IOPR寄存器位/字段描述

字段

位/位置

描述

iopage

[23:0]

I/O space page.

当使用专用的输入和输出指令访问I/O空间时,使用此字段。该页表示整个32位地址的24个MSB。页面内的偏移量(八位)在指令本身中指定。

该字段在核心重置时被清除,并且可以通过使用ld、pop、mov或lbf指令写入该寄存器来修改。

​​​​​​​4.4.3 立即基址寄存器

立即数基址(IBA)寄存器将指向立即数公共符号表的指针存储在数据存储器中。此表存储32位值,这些值用作初始化寄存器的立即操作数。专用ld指令变体将该寄存器用作基指针。将这些值引用为IBA相对负载可以节省代码大小。

有关使用该寄存器的指令和立即数公共符号表的更多详细信息,请参阅第7.3.5IBA相对寻址。

IBA寄存器的重置值为0

你可能感兴趣的:(架构,单片机,嵌入式硬件)