正在加载图片...
转和回绕(取模寻址)。(5)无额外开销的循环和转移:条件判断与跳转仅占一个周期 ADI的ADSP21xx系列和T的TMS320xx系列无疑正是按照这样的要求设计 的,它们都是定点的DSP处理器芯片中的骄骄者,但两者之间也有一些差异。下面 介绍一下ADSP-21xx芯片 ADSP21xx系列处理器的结构特点 ADI公司的ADSP21xx系列处理器(代表器件是ADSP-2101)是基于修改的 Harvard结构的16bit定点系列处理器,这样的结构可以将操作数的数据从程序存储 器和数据存储器送到运算部分。 1.汇编语言的所有指令都是单字、单周期指令,并使用代数语法进行书写,可读 性强。比如MR=MXO*MYO(SS)指令,它把取自寄存器MX0和MYO的两个有符号 数乘起来后存到MR寄存器上,该指令看起来直观、方便。 2.汇编语言中有大量的(单周期)并行指令,这些并行指令从功能上可分为两部分, 部分进行计算,另一部分进行操作数存取。处理器采用修改的 Harvard结构,数 据和程序存储器的数据和地址总线(共4条)是分离的,保证可同时从程序和数据存 储器中各取一个数据。另外“操作数读操作发生在指令周期开始时、写操作发生在 周期结束时”的读写规则保证了在并行指令中一个操作的源可以是另一个操作的目 的,节省指令条数。一个典型的并行指令的例子是,MR=MR+MXO*MYO(SS, MX0=DM(⑩0,M1),MY0=PM(14,M5),该指令把乘累加及取两个操作数集中在一个周 期内完成,它使得常见的乘积和运算只用一个单指令循环体就可以实现,可谓高效。 3.乘/累加的动态扩展范围大,两个16位的数据相乘,其结果保存在40位宽的 MR寄存器中,该寄存器既可以做累加用,又可以分为三个小存储器单独使用。这 么大的动态范围保证在一定循环次数的乘累加运算不至于发生中间溢出。 4.单周期的条件指令是另一个有用的指令形式,该指令允许根据上次运算或测试 的结果决定是否进行运算或跳转,这种形式保证了条件判断无需额外的周期开销 不仅如此,循环启动指令(仅占一个周期)旦执行,循环的主要周期开销就在循环 体的指令上,而条件判断和分支跳转都由硬件实现,不需任何额外的周期开销 5.数据存取指令具有很大的灵活性。它可以根据需要在对一个操作数进行完存取 之后自动修改地址指针,修改步长可由程序任意指定。如果需要,硬件可以在地址 指针超过循环缓冲区的尾部时自动把指针回绕到缓冲区的头部,这就是“硬件循环 缓冲区”的取模寻址。比如,若指针修改寄存器M1=3,长度寄存器L0=16,地址指 针寄存器I0=14,那么对DM(I0,M1)存取之后,I0将自动变为(14+3)mod16=1。 6.另一个特别有用的是串行口数据传输的自动缓冲区。如果允许了这个功能,那 么只有在整个缓冲区(大小是可编程的)的接收或发送全部完成时才会发生串行口中 断。这节约了一些不必要的额外开销。转和回绕(取模寻址)。(5)无额外开销的循环和转移:条件判断与跳转仅占一个周期。 ADI 的 ADSP-21xx 系列和 TI 的 TMS320xx 系列无疑正是按照这样的要求设计 的,它们都是定点的 DSP 处理器芯片中的骄骄者,但两者之间也有一些差异。下面 介绍一下 ADSP-21xx 芯片。 二、ADSP-21xx 系列处理器的结构特点 ADI 公司的 ADSP-21xx 系列处理器(代表器件是 ADSP-2101)是基于修改的 Harvard 结构的 16bit 定点系列处理器,这样的结构可以将操作数的数据从程序存储 器和数据存储器送到运算部分。 1. 汇编语言的所有指令都是单字、单周期指令,并使用代数语法进行书写,可读 性强。比如 MR=MX0*MY0(SS)指令,它把取自寄存器 MX0 和 MY0 的两个有符号 数乘起来后存到 MR 寄存器上,该指令看起来直观、方便。 2. 汇编语言中有大量的(单周期)并行指令,这些并行指令从功能上可分为两部分, 一部分进行计算,另一部分进行操作数存取。处理器采用修改的 Harvard 结构,数 据和程序存储器的数据和地址总线(共 4 条)是分离的,保证可同时从程序和数据存 储器中各取一个数据。另外“操作数读操作发生在指令周期开始时、写操作发生在 周期结束时”的读写规则保证了在并行指令中一个操作的源可以是另一个操作的目 的,节省指令条数。一个典型的并行指令的例子是,MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4, M5),该指令把乘累加及取两个操作数集中在一个周 期内完成,它使得常见的乘积和运算只用一个单指令循环体就可以实现,可谓高效。 3. 乘/累加的动态扩展范围大,两个 16 位的数据相乘,其结果保存在 40 位宽的 MR 寄存器中,该寄存器既可以做累加用,又可以分为三个小存储器单独使用。这 么大的动态范围保证在一定循环次数的乘累加运算不至于发生中间溢出。 4. 单周期的条件指令是另一个有用的指令形式,该指令允许根据上次运算或测试 的结果决定是否进行运算或跳转,这种形式保证了条件判断无需额外的周期开销。 不仅如此,循环启动指令(仅占一个周期)一旦执行,循环的主要周期开销就在循环 体的指令上,而条件判断和分支跳转都由硬件实现,不需任何额外的周期开销。 5. 数据存取指令具有很大的灵活性。它可以根据需要在对一个操作数进行完存取 之后自动修改地址指针,修改步长可由程序任意指定。如果需要,硬件可以在地址 指针超过循环缓冲区的尾部时自动把指针回绕到缓冲区的头部,这就是“硬件循环 缓冲区”的取模寻址。比如,若指针修改寄存器 M1=3, 长度寄存器 L0=16,地址指 针寄存器 I0=14,那么对 DM(I0, M1)存取之后,I0 将自动变为(14+3) mod 16=1。 6. 另一个特别有用的是串行口数据传输的自动缓冲区。如果允许了这个功能,那 么只有在整个缓冲区(大小是可编程的)的接收或发送全部完成时才会发生串行口中 断。这节约了一些不必要的额外开销
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有