编程模型(Programming Model)

本文详细介绍了架构中的关键数据类型,包括布尔值、位串、字节、整数、浮点数等,以及数据格式、对齐规则、内存模型、信号量操作和各种寻址模式,如绝对地址、基+偏移和循环寻址。

一、数据类型

  
1 、Boolean 

布尔值为TRUE或FALSE:

                                        TRUE是生成时的值1,测试时为非零。

                                        位串是位的填充字段。位串由逻辑、移位和位字段指令产生和使用。FALSE是值0

布尔值作为比较和逻辑指令的结果产生,并在逻辑和条件跳转指令中用作源操作数。

  
2、 Bit String

位串是位的填充字段。位串由逻辑、移位和位字段指令产生和使用。

    
3、 Byte 

字节是一个8位值,可用于字符或非常短的整数。没有特定的编码假设。

  
4 、Signed Fraction 

该体系结构支持16位、32位和64位符号小数数据用于DSP算法。这种格式的数据值有一个高阶符号位,其中0表示正(+),1表示负(-),后面跟着一个隐含的二进制点和分数。因此,它们的值在[-1,1]的范围内。

  
5 、Address 

地址是一个32位的无符号值。

  
6 、Signed and Unsigned Integers 

有符号整数和无符号整数通常是32位。较短的有符号或无符号整数在从内存加载到寄存器时是符号扩展或零扩展到32位的。

Multi-precision

支持多精度整数,使用进位进行加减。整数被认为是移位和屏蔽操作的位字符串。多精度移位可以使用单精度移位和位域提取的组合来实现。

 
7 、IEEE-754 Single-Precision Floating-Point Number 

根据核心体系结构的具体实现,协处理器硬件指令或对库的软件调用支持IEEE-754浮点数。

  
二、 数据格式 

所有通用寄存器(GPRs)都是32位宽,大多数指令操作字(32位)值。当字节或半字数据元素从内存中加载时,它们会自动进行符号扩展或零扩展以填充寄存器。填充类型在加载指令中是隐式的。例如,LD.B加载带有符号扩展名的字节,或LD.BU加载带有0扩展名的字节。

支持的数据格式有:

字节:有符号,无符号

半字:有符号,无符号,分数

字:有符号,无符号,分数,浮点数

48位:有符号,无符号,分数

双字:有符号,无符号,分数

  
1、对齐要求 

地址和数据的对齐要求不同。加载到地址寄存器或从地址寄存器存储的地址变量必须始终是word对齐的。

数据可以在任何半字边界上对齐,无论大小如何,除非下面注明。这便于在DSP应用程序中使用打包算术运算,允许在任何半字边界上加载或存储两个或四个打包的16位数据元素。

编程限制

有一些限制是程序员必须知道的,具体来说:

                LDMST, CMPSWAP.W, SWAPMSK.W和SWAP.W指令要求它们的操作数与word对齐。

    

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值