DSP数值数据存储方式采用的是好几位二进制代码组成的一组数(称为字),一般是16位或24位。存贮时从最高位开始存储,存储的位宽和精度取决于硬件所采用的算术格式。例如在定点算术中,可以采用整数位、小数位的表示形式;在浮点算术中,可以采用符号、阶码、尾数的表示形式。因此,在存储方式的基础上,还需设计好数据格式。
在标准的处理器中,一个地址仅包含一个程序代码或数据代码字。但在DSP中,一般采用存储块技术,将一组相关的字组合在一起,以便于高效地传输或执行相关的处理操作。
存储是现代微电子技术中时间和空间常用的折衷手段,目标是取得最佳的成本效益。在DSP中,数据存储架构必须满足高速内存存储、容量异构性、寄存器堆接口、数据块缓存等性能要求。DSP数据存储架构通常是基于存储技术的分类进行设计和实现。
前端内存区是指DSP内部的暂存区,通常由程序代码存储器、数据存储器、活动寄存器堆和符号扩展器组成。这些存储器单元对于初始化、中断管理、链表指针表格和数据交换尤为重要。后端内存区则用于存储大量数据块,带有感知缓存的指令地址寄存器,和数据块片段的反向编址指针等。
在DSP中,为了提高读写速度,在存储器的选择上需要做出艰难的决策,因此,需综合考虑存储器的存储密度、读写速度、建设成本和体积等多个因素。目前,常用的存储技术有SRAM、DRAM、ROM、EPROM、E2PROM、FLASH等。其中,SRAM优异性能,内部集成度高,但价格昂贵,因此通常应用于DSP内部寄存器和程序代码存储器。DRAM存储密度高,但读写速度较慢,通常用于数据存储器。FLASH集成度高,但写入速度慢,仅适用于DSP存储器的外部拓展。
DSP芯片在内部存储数据时按照大端字节序方式进行存储。大端存储,又称为高位优先,也就是将高位字节存储在低位存储器地址中。比如,整数0x12345678以大端字节序在内存中存储为0x12、0x34、0x56、0x78。而在小端存储中,数字的低位字节被放在低位存储器地址中,常见于Intel系列的芯片中。
当DSP芯片与其他设备进行通信时,可能需要进行数据的字节序转换。常用的方法包括通过软件进行大端/小端转换,或通过硬件电路器件实现大端/小端转换。