本文将开始从开发者的角度研究Hexagon DSP的硬件细节。
在文章一开始,我们自然要对芯片所提供的寄存器给出详细的介绍。
在Hexagon 处理器的寄存器组中包含了两种寄存器,分别称之为通用寄存器以及控制寄存器,与我们见过的很多DSP类似,通用寄存器适用于通用类型的计算,例如地址的生成以及标量数据矢量数据的数学计算。
而在Hexagon处理器中,控制寄存器还可以支持特殊用途的处理器特性,例如硬件回路以及分支预测。
通用寄存器:
Hexagon处理器一共包含了32个32位的通用寄存器(命名为R0至R31).这些寄存器的用途便是为所有的操作存储操作数了,他们可以为load/store指令集的地址寻址,算数以及布尔运算的操作数,向量指令的向量操作数提供存储服务。
举例如下:
R1=memh(R0) //从地址R0中导入数据
R4=add(R2,R3) //相加
R28=vaddh(R11,R10) //向量加半字
下图也显示了通用寄存器的构成:
在这些通用寄存器当中,R29-R32被用来支持子程序的调用以及程序栈,这些寄存器可以无保留的被子程序调用或栈指令改变。在编程环境中,R29-R32可以用符号来表示。例如: