CN102163141B - 实现数字信号处理器的寻址模块 - Google Patents

实现数字信号处理器的寻址模块 Download PDF

Info

Publication number
CN102163141B
CN102163141B CN 201110068802 CN201110068802A CN102163141B CN 102163141 B CN102163141 B CN 102163141B CN 201110068802 CN201110068802 CN 201110068802 CN 201110068802 A CN201110068802 A CN 201110068802A CN 102163141 B CN102163141 B CN 102163141B
Authority
CN
China
Prior art keywords
addressing
mux
output terminal
bit reversal
play amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110068802
Other languages
English (en)
Other versions
CN102163141A (zh
Inventor
卫振琦
孔吉
刘佩林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Fujitsu Ltd
Original Assignee
Shanghai Jiaotong University
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University, Fujitsu Ltd filed Critical Shanghai Jiaotong University
Priority to CN 201110068802 priority Critical patent/CN102163141B/zh
Publication of CN102163141A publication Critical patent/CN102163141A/zh
Application granted granted Critical
Publication of CN102163141B publication Critical patent/CN102163141B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

一种计算机体系结构领域的实现数字信号处理器的寻址模块结构,包括:地址计算单元和与之相连的寻址寄存器堆,地址计算单元输出更新地址至寻址寄存器堆并接收当前地址及控制信号,本发明都能够在一个时钟周期内完成地址的计算,且具有极小的电路延迟,满足了高性能信号处理器对于高运算速度的要求。

Description

实现数字信号处理器的寻址模块
技术领域
本发明涉及的是一种数字信号处理技术领域的装置,具体是一种实现数字信号处理器的寻址模块结构。 
背景技术
在常用的数字信号处理算法中,数据寻址通常有以下三种方式:顺序寻址、循环寻址和比特翻转寻址。传统的数字信号处理器仅支持计算简单的顺序寻址,在实现数字信号处理算法时,往往达不到较高性能。另外有一些处理器还支持循环寻址和比特翻转寻址,但是对于地址具有较多限制,如进行循环寻址时设置的缓冲区的起始地址必须是2的幂次,或进行比特翻转寻址时首地址必须是2的幂次。这些限制大大减弱了寻址的灵活性,并且给内存分配制造了困难,不利于编译器或程序员对算法进行优化。 
经过对现有技术的检索发现,中国专利申请号200610105063.9,公开日期:2007年2月21日,记载了一种“倒序/循环地址产生器电路结构”,该技术为了减少倒序数据地址的计算开销,该电路结构对于倒序寻址的首地址进行了限制。倒序输入数据序列的长度或循环缓冲区长度记为L0(L0=2n,n是自然数),则倒序寻址首地址最低k0位必须为零,k0满足关系式2k0>L0(k0是自然数)。另外该电路结构对于循环寻址的首地址也进行了限制,循环缓冲区长度记为L1,则循环寻址的首地址的最低k1位必须为零,k1是满足关系式2k1>L1的最小自然数。鉴于该电路结构对于倒序/循环寻址首地址的限制,其产生的地址不能灵活支持FFT、卷积以及相关等数字信号处理算法,增加了地址分配的复杂度,不便于程序员使用。 
发明内容
本发明针对现有技术存在的上述不足,提供一种实现数字信号处理器的寻址模块结构。 
本发明是通过以下技术方案实现的,本发明包括:地址计算单元和与之相连的寻址寄存器堆,其中:地址计算单元输出更新地址至寻址寄存器堆并接收当前地址及控制信号。 
所述的地址计算单元由若干个与寻址寄存器堆相连的地址计算模块组成,该地址计算模块输出数字信号处理器用来访存的一路或多路地址,其中:地址计算单元从寻址寄存器堆接收控制信号和当前地址,并将新偏移量和新比特翻转偏移量输出至寻址寄存器堆。 
所述的寻址寄存器堆由寻址寄存器和控制寄存器组成,其中:寻址寄存器将地址、数据和控制信号输出至地址计算单元,并从地址计算单元接收计算得到的更新地址、新偏移量和新比特翻转偏移量,存储至寻址寄存器,控制寄存器将寻址控制信号输出至地址计算单元并确定各 地址计算单元的寻址模式。 
所述的寻址寄存器由当前地址寄存器、基地址寄存器、步长寄存器、范围寄存器、偏移量寄存器和比特翻转偏移量寄存器组成,其中:当前地址寄存器实现输出地址并保存计算得到的更新地址,基地址寄存器实现保存并输出基地址,步长寄存器实现保存并输出步长,范围寄存器实现保存并输出范围,偏移量寄存器实现输出偏移量并保存计算得到的新偏移量,比特翻转偏移量寄存器实现输出比特翻转偏移量并保存计算得到的新比特翻转偏移量;控制寄存器为寻址模式寄存器,实现保存并输出寻址模式控制信号。 
所述的地址计算模块包括:五个加法器、两个保留进位加法器、两个比特翻转逻辑和若干个多路选择器,其中: 
第一加法器实现在顺序寻址或循环寻址时生成候选的更新地址,其两个输入端分别接收寻址寄存器堆输出的当前地址和步长且输出端与第一多路选择器的第一输入端相连, 
第二加法器实现在循环寻址时生成候选的更新地址,其两个输入端分别连接到第一保留进位加法器的两个输出端且输出端与第一多路选择器的第二输入端相连; 
第三加法器实现生成候选的新偏移量和候选的新比特翻转偏移量,其第一输入端接收寻址寄存器堆输出的步长,第二输入端与第二多路选择器的输出端相连且输出端分别与第一比特翻转逻辑的输入端、第三多路选择器的第一输入端、第四多路选择器的第一输入端和第五多路选择器的第一输入端相连; 
第四加法器实现生成候选的新偏移量,其两个输入端分别与第二保留进位加法器的两个输出端相连且输出端分别与第三多路选择器的第二输入端和第四多路选择器的第二输入端相连; 
第五加法器实现在比特翻转寻址时生成候选的更新地址,其第一输入端接收寻址寄存器堆输出的基地址,第二输入端与第一比特翻转逻辑的输出端相连且输出端与第一多路选择器的第三输入端相连; 
第一保留进位加法器以及第二保留进位加法器均实现在循环寻址时将三个输入端的数据相加得到两个输出数据,第一保留进位加法器的输入端分别接收寻址寄存器堆输出的当前地址、步长和范围;第二保留进位加法器的输入端分别接收寻址寄存器堆输出的步长、范围和偏移量。 
第一比特翻转逻辑实现在比特翻转逻辑时生成候选的新偏移量,其输出端与第三多路选择器的第三输入端相连; 
第二比特翻转逻辑实现在顺序寻址或循环寻址时生成候选的新比特翻转偏移量,其输入端与第四多路选择器的输出端相连,输出端与第五多路选择器第二输入端相连; 
第一多路选择器实现生成更新地址; 
第二多路选择器实现生成第三加法器的输入数据,其两个输入端分别接收寻址寄存器堆输 出的偏移量和比特翻转偏移量; 
第三多路选择器实现生成新偏移量; 
第四多路选择器实现生成第二比特翻转逻辑的输入数据; 
第五多路选择器实现生成新比特翻转偏移量。 
本发明的寻址模块的电路结构,具有以下优点: 
支持顺序寻址、循环寻址和比特翻转寻址,在处理器执行卷积、FFT等数字信号处理算法时能自动生成地址,增加了算法的执行效率; 
通过设置基地址寄存器和寻址范围寄存器,本发明对所支持的三种寻址方式,尤其对于循环寻址和比特翻转寻址的寻址范围几乎没有限制,极大增加了寻址的灵活性; 
利用偏移量寄存器和比特翻转偏移量寄存器提供的两个偏移量,能够实现三种寻址方式的自由切换,减少切换时带来的额外的指令开销。 
通过地址计算模块中的多个加法器的并行计算,并根据加法器的输出端的正负状态,使得在循环寻址时需要进行的地址越界的判断和地址的计算能够同时完成;在比特翻转寻址时仅需经过两次加法和一次比特翻转逻辑就能计算得到更新地址,比不引入offset和BRoffset两个偏移量时减少了一次加法运算和一次比特翻转运算。 
对于所持之的三种寻址方式,本发明都能够在一个时钟周期内完成地址的计算,且具有极小的电路延迟,满足了高性能信号处理器对于高运算速度的要求。 
附图说明
图1是本发明所实现的循环寻址的示例图。 
图2是本发明所实现的比特翻转寻址的示例图。 
图3是本发明所提出的寻址模块的系统框图。 
图4是本发明所提出的寻址寄存器堆的结构框图。 
图5是本发明所提出的寻址模块中的地址计算模块的电路结构图。 
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。 
如图3所示,本实施例包括:一个地址计算单元1110和一个寻址寄存器堆1120;其中: 
地址计算单元1110,包含至少一个地址计算模块1111、1112,输出数字信号处理器用来访存的一路或多路地址。地址计算单元1110从寻址寄存器堆1120接收控制信号、当前地址,并将新偏移量和新比特翻转偏移量输出至寻址寄存器堆1120。 
寻址寄存器堆1120,包含寻址寄存器1121和控制寄存器1122,实现存放访存地址和与寻 址有关的数据和控制字。其中: 
寻址寄存器1121,包含当前地址寄存器,实现输出当前地址,并保存计算得到的更新地址;基地址寄存器,实现保存并输出基地址;步长寄存器,实现保存并输出步长;范围寄存器,实现保存并输出范围;偏移量寄存器,实现输出偏移量,并保存计算得到的新偏移量;比特翻转偏移量寄存器,实现输出比特翻转偏移量,并保存计算得到的新比特翻转偏移量; 
控制寄存器1122,包含寻址模式寄存器,实现保存并输出寻址模式控制信号。 
寻址寄存器堆1120将地址、数据和控制信号输出至地址计算单元1110,同时从地址计算单元1110接收计算得到的更新地址、新偏移量和新比特翻转偏移量,存储至寻址寄存器1121。 
地址计算模块1111,包含五个加法器、两个保留进位加法器、两个比特翻转逻辑和若干个多路选择器;其中: 
第一加法器,实现在顺序寻址或循环寻址时生成候选的更新地址,它的两个输入端分别是当前地址和步长。第一加法器的输出端连接到第一多路选择器的一个输入端; 
第二加法器,实现在循环寻址时生成候选的更新地址,它的两个输入端分别连接到第一保留进位加法器的两个输出端。第二加法器的输出端连接到第一多路选择器的一个输入端; 
第三加法器,实现生成候选的新偏移量和候选的新比特翻转偏移量,它的两个输入端分别是步长和第二多路选择器的输出端。第三加法器的输出端分别连接到第一比特翻转逻辑的输入端、第三多路选择器的一个输入端、第四多路选择器的一个输入端和第五多路选择器的一个输入端; 
第四加法器,实现生成候选的新偏移量,它的两个输入端分别连接到第二保留进位加法器的两个输入端。第四加法器的输出端分别连接到第三多路选择器的一个输入端和第四多路选择器的一个输入端; 
第五加法器,实现在比特翻转寻址时生成候选的更新地址,它的两个输入端分别是基地址和第一比特翻转逻辑的输出端。第五加法器的输出端连接到第五多路选择器的一个输入端; 
第一保留进位加法器,实现在循环寻址时将三个输入端的数据相加得到两个输出数据,它的三个输入端分别是当前地址、步长和范围。第一保留进位加法器的两个输出端分别连接到第二加法器的两个输入端; 
第二保留进位加法器,实现在循环寻址时将三个输入端的数据相加得到两个输出数据,它的三个输入端分别是步长、范围和偏移量。第二保留进位加法器的两个输出端分别连接到第四加法器的两个输入端; 
第一比特翻转逻辑,实现在比特翻转逻辑时生成候选的新偏移量,翻转的位宽由范围决定。第一比特翻转逻辑的输入端连接到第三加法器的输出端,它的输出端分别连接到第三多路选择 器的一个输入端和第五加法器的一个输入端; 
第二比特翻转逻辑,实现在顺序寻址或循环寻址时生成候选的新比特翻转偏移量,翻转的位宽由范围决定。第二比特翻转逻辑的输入端连接到第四多路选择器的输出端,它的输出端连接到第五多路选择器的一个输入端; 
第一多路选择器,根据寻址模式、第三加法器的输出端的正负状态和第四加法器的输出端的正负状态选通三个输入端,实现生成更新地址。第一多路选择器的三个输入端分别连接到第一加法器的输出端、第二加法器的输出端和第五加法器的输出端,它的输出端连接到更新地址; 
第二多路选择器,根据寻址模式选通两个输入端,实现生成第三加法器的输入数据。第二多路选择器的两个输入端分别连接到偏移量和比特翻转偏移量,它的输出端连接到第三加法器的一个输入端; 
第三多路选择器,根据寻址模式、第三加法器的输出端的正负状态和第四加法器的输出端的正负状态选通三个输入端,实现生成新偏移量。第三多路选择器的三个输入端分别连接到第三加法器的输出端、第一比特翻转逻辑的输出端和第四加法器的输出端,它的输出端连接到新偏移量; 
第四多路选择器,根据寻址模式、第三加法器的输出端的正负状态和第四加法器的输出端的正负状态选通两个输入端,实现生成第二比特翻转逻辑的输入数据。第四多路选择器的两个输入端分别连接到第三加法器的输出端和第四加法器的输出端,它的输出端连接到第二比特翻转逻辑的输入端; 
第五多路选择器,根据寻址模式选通两个输入端,实现生成新比特翻转偏移量。第五多路选择器的两个输入端分别连接到第三加法器的输出端和第二比特翻转逻辑的输出端,它的输出端连接到新比特翻转偏移量。 
本实施例所述装置包括以下三种寻址方式,具体步骤为: 
1)顺序寻址: 
进行顺序寻址时,第一多路选择器选通第一加法器的输出端,第二多路选择器选通偏移量,多路选择3选通第三加法器的输出端,第四多路选择器选通第三加法器的输出端,第五多路选择器选通第二比特翻转逻辑的输出端。所以更新地址为第一加法器的输出,即next_addr=addr+/-inc;新偏移量为第三加法器的输出,即next_offset=offset+/-inc;新比特翻转偏移量为第二比特翻转逻辑的输出,即next_BRoffset=BR(offset+/-inc)。寻址寄存器堆将保存这些计算结果,并在下次计算地址时为地址计算模块提供当前地址、偏移量和比特翻转偏移量等数据。 
常规的数字信号处理运算要求处理器能够以地址递增或递减的方式访问内存区域,该寻址模式称为顺序寻址。设当前地址为addr,地址的改变步长为inc,偏移量为offset,生成的更新 地址为next_addr。表1所示为处理器进行顺序寻址时地址的生成方式。 
表1顺序寻址时地址的生成方式 
Figure GDA00003424999300061
2)循环寻址: 
进行循环寻址时,第二多路选择器选通偏移量,第五多路选择器选通第二比特翻转逻辑的输出端。其他多路选择器的选通情况由寻址方式和部分加法器的输出端的正负状态决定。 
当寻址模式为循环寻址加步长时,第四加法器的输出为offset+inc-range,若该输出为负,则说明当前地址加步长仍在循环寻址区域内,此时第一多路选择器选通第一加法器的输出端,所以next_addr=addr+inc;第三多路选择器选通第三加法器的输出端,所以next_offset=offset+inc;第四多路选择器选通第三加法器的输出端。所以next_BRoffset=BR(offset+inc)。 
若第四加法器的输出为非负,则说明当前地址加步长已经超过了循环寻址区域的上限,此时第一多路选择器选通第二加法器的输出端,所以next_addr=addr+inc-range;第三多路选择器选通第四加法器的输出端,所以next_offset=offset+inc-range;第四多路选择器选通第四加法器的输出端,所以next_BRoffset=BR(offset+inc-range)。 
(1)循环寻址减步长 
当寻址模式为循环寻址减步长时,第三加法器的输出为offset-inc,若该输出为非负,则说明当前地址减步长仍在循环区域内,此时第一多路选择器选通第一加法器输出端,所以next_addr=addr-inc;第三多路选择器选通第三加法器的输出端,所以next_offset=offset-inc;第四多路选择器选通第三加法器的输出端,所以next_BRoffset=BR(offset-inc)。 
若第三加法器的输出为负,则说明当前地址减步长已经超过了循环寻址区域的下限,此时第一多路选择器选通第二加法器的输出端,所以next_addr=addr-inc+range;第三多路选择器选通第四加法器的输出端,所以next_offset=offset-inc+range;第四多路选择器选通第四加法器的输出端,所以next_BRoffset=BR(offset-inc+range)。 
卷积运算、FIR滤波等数字信号处理运算要求处理器能够循环访问一片连续的内存区域,该寻址模式称为循环寻址。循环寻址的寻址区域由基地址和范围决定,设地址的改变步长为inc,当前地址为addr,偏移量为offset即当前地址减去基地址,生成的更新地址为next_addr,新偏移量为next_offset。表2所示为处理器进行循环寻址时地址的生成方式。 
表2循环寻址时地址的生成方式 
以下给出循环寻址的一个示例: 
假设基地址为0x22,范围为0x10,步长为0x4,当前地址为0x28,寻址方式为循环寻址加步长。寻址过程如图1所示,具体描述如下: 
(1)当前地址0x28加步长0x4未超过循环寻址区域, 
next_addr=addr+inc=0x28+0x4=0x2c 
next_offset=offset+inc=0x6+0x4=0xa 
(2)当前地址0x2c加步长0x4未超过循环寻址区域, 
next_addr=addr+inc=0x2c+0x4=0x30 
next_offset=offset+inc=0xa+0x4=0xe 
(3)当前地址0x30加步长0x4超过循环寻址区域, 
next_addr=addr+inc-range=0x30+0x4-0x10=0x24 
next_offset=offset+inc-range=0xe+0x4-0x10=0x2 
(4)当前地址0x24加步长0x4未超过循环寻址区域, 
next_addr=addr+inc=0x24+0x4=0x28 
next_offset=offset+inc=0x2+0x4=0x6 
3)比特翻转寻址: 
进行比特翻转寻址时,第一多路选择器选通第五加法器的输出端,第二多路选择器选通比特翻转偏移量,第三多路选择器选通第一比特翻转逻辑的输出端,第四多路选择器任意选通,第五多路选择器选通第三加法器的输出端。 
第三加法器的输出为BRoffset+/-inc;更新地址为第五加法器的输出,所以next_addr=base_addr+BR(BRoffset+/-inc);新偏移量为第一比特翻转逻辑的输出,所以next_offset=BR(BRoffset+/-inc);新比特翻转偏移量为第三加法器的输出,所以next_BRoffset=BRoffset+/-inc。 
快速傅立叶变换FFT等数字信号处理运算要求处理器能够以比特翻转顺序访问内存。通过比特翻转对输入信号的高低位进行互换即最低位与最高位互换,次低位与次高位互换,以此类推,进行比特翻转的位宽由范围决定,表3描述了根据范围选取比特翻转操作的运算位宽。 
表3比特翻转操作的运算位宽 
范围 比特翻转操作的输出
0b00000100 输入信号的低2位进行比特翻转
0b00001000 输入信号的低3位进行比特翻转
0b00010000 输入信号的低4位进行比特翻转
... 以此类推
为了说明比特翻转操作的运算方式,以范围取0b1000为例,表4描述了比特翻转操作的运算结果,比特翻转操作记为BR()。 
表4当范围取0b1000时BR()的运算结果 
输入 输出
0b000 BR(0b000)=0b000=0x0
0b001 BR(0b001)=0b100=0x4
0b010 BR(0b010)=0b010=0x2
0b011 BR(0b011)=0b110=0x6
0b100 BR(0b100)=0b001=0x1
0b101 BR(0b101)=0b101=0x5
0b110 BR(0b110)=0b011=0x3
0b111 BR(0b111)=0b111=0x7
表5所示为比特翻转寻址时地址的生成方式,得到更新地址需要进行两次加法运算和两次比特翻转操作。 
表5比特翻转寻址时地址的生成方式 
Figure GDA00003424999300091
为了简化运算步骤,这里引入两个新的变量,分别为比特翻转偏移量和新比特翻转偏移量。在顺序寻址和循环寻址时,next_BRoffset是对next_offset进行比特翻转操作,即next_BRoffset=BR(next_offset);在比特翻转寻址时,next_BRoffset=BRoffset+/-inc。 
利用BRoffset和next_BRoffset,在比特翻转寻址时可以减少一次比特翻转操作。表6所示为引进BRoffset和next_BRoffset后比特翻转寻址时地址的生成方式。 
表6引进BRoffset和next_BRoffset后比特翻转寻址时地址的生成方式 
Figure GDA00003424999300092
以下给出比特翻转寻址的一个示例: 
假设基地址为0x64,范围为0x8即对偏移量的低三位进行比特翻转操作,步长为0x1,当前地址为0x64,寻址方式为比特翻转寻址加步长,当前的偏移量为0x0,当前的比特翻转偏移量为0x0。寻址过程如图2所示,具体描述如下: 
(1)当前比特翻转偏移量0x0加步长0x1得到新比特翻转偏移量0x1,再进行比特翻转操作得到新偏移量0x4,将其与基地址0x64相加得到更新地址0x68 
next_BRoffset=BRoffset+inc=0x0+0x1=0x1 
next_offset=BR(next_BRoffset)=0x4 
next_addr=base_addr+next_offset=0x64+0x4=0x68 
(2)当前比特翻转偏移量0x1加步长0x1得到新比特翻转偏移量0x2,再进行比特翻转操作得到新偏移量0x2,将其与基地址0x64相加得到更新地址0x66 
next_BRoffset=BRoffset+inc=0x1+0x1=0x2 
next_offset=BR(next_BRoffset)=0x2 
next_addr=base_addr+next_offset=0x64+0x2=0x66 
(3)当前比特翻转偏移量0x2加步长0x1得到新比特翻转偏移量0x3,再进行比特翻转操作得到新偏移量0x6,将其与基地址0x64相加得到更新地址0x6a 
next_BRoffset=BRoffset+inc=0x2+0x1=0x3 
next_offset=BR(next_BRoffset)=0x6 
next_addr=base_addr+next_offset=0x64+0x6=0x6a 
(4)当前比特翻转偏移量0x3加步长0x1得到新比特翻转偏移量0x4,再进行比特翻转操作得到新偏移量0x1,将其与基地址0x64相加得到更新地址0x65 
next_BRoffset=BRoffset+inc=0x3+0x1=0x4 
next_offset=BR(next_BRoffset)=0x1 
next_addr=base_addr+next_offset=0x64+0x1=0x65。 

Claims (1)

1.一种实现数字信号处理器的寻址模块,包括:地址计算单元和与之相连的寻址寄存器堆,其特征在于:地址计算单元输出更新地址至寻址寄存器堆并接收当前地址及控制信号;
所述的地址计算单元由若干个与寻址寄存器堆相连的地址计算模块组成,该地址计算模块输出数字信号处理器用来访存的一路或多路地址,其中:地址计算单元从寻址寄存器堆接收控制信号和当前地址,并将新偏移量和新比特翻转偏移量输出至寻址寄存器堆;
所述的寻址寄存器堆由寻址寄存器和控制寄存器组成;
所述的寻址寄存器由当前地址寄存器、基地址寄存器、步长寄存器、范围寄存器、偏移量寄存器和比特翻转偏移量寄存器组成,其中:当前地址寄存器实现输出地址并保存计算得到的更新地址,基地址寄存器实现保存并输出基地址,步长寄存器实现保存并输出步长,范围寄存器实现保存并输出范围,偏移量寄存器实现输出偏移量并保存计算得到的新偏移量,比特翻转偏移量寄存器实现输出比特翻转偏移量并保存计算得到的新比特翻转偏移量;控制寄存器为寻址模式寄存器,实现保存并输出寻址模式控制信号;
所述的寻址寄存器堆将地址和控制信号输出至地址计算单元,同时从地址计算单元接收计算得到的更新地址、新偏移量和新比特翻转偏移量,存储至寻址寄存器;
所述的地址计算模块包括:五个加法器、两个保留进位加法器、两个比特翻转逻辑单元和若干个多路选择器,其中:第一加法器实现在顺序寻址或循环寻址时生成候选的更新地址,其两个输入端分别接收寻址寄存器堆输出的当前地址和步长且输出端与第一多路选择器的第一输入端相连;第二加法器实现在循环寻址时生成候选的更新地址,其两个输入端分别连接到第一保留进位加法器的两个输出端且输出端与第一多路选择器的第二输入端相连;第三加法器实现生成候选的新偏移量和候选的新比特翻转偏移量,其第一输入端接收寻址寄存器堆输出的步长,第二输入端与第二多路选择器的输出端相连且输出端分别与第一比特翻转逻辑单元的输入端、第三多路选择器的第一输入端、第四多路选择器的第一输入端和第五多路选择器的第一输入端相连;第四加法器实现生成候选的新偏移量,其两个输入端分别与第二保留进位加法器的两个输出端相连且输出端分别与第三多路选择器的第二输入端和第四多路选择器的第二输入端相连;第五加法器实现在比特翻转寻址时生成候选的更新地址,其第一输入端接收寻址寄存器堆输出的基地址,第二输入端与第一比特翻转逻辑单元的输出端相连且输出端与第一多路选择器的第三输入端相连;第一保留进位加法器以及第二保留进位加法器均实现在循环寻址时将三个输入端的数据相加得到两个输出数据,第一保留进位加法器的输入端分别接收寻址寄存器堆输出的当前地址、步长和范围;第二保留进位加法器的输入端分别接收寻址寄存器堆输出的步长、范围和偏移量;第一比特翻转逻辑单元实现在比特翻转寻址模式时生成候选的新偏移量,其输出端与第三多路选择器的第三输入端相连;第二比特翻转逻辑单元实现在顺序寻址或循环寻址时生成候选的新比特翻转偏移量,其输入端与第四多路选择器的输出端相连,输出端与第五多路选择器第二输入端相连;第一多路选择器实现生成更新地址;第二多路选择器实现生成第三加法器的输入数据,其两个输入端分别接收寻址寄存器堆输出的偏移量和比特翻转偏移量;第三多路选择器实现生成新偏移量;第四多路选择器实现生成第二比特翻转逻辑单元的输入数据;第五多路选择器实现生成新比特翻转偏移量;
进行顺序寻址时,第一多路选择器选通第一加法器的输出端,第二多路选择器选通偏移量,第三多路选择器选通第三加法器的输出端,第四多路选择器选通第三加法器的输出端,第五多路选择器选通第二比特翻转逻辑单元的输出端,所以更新地址为第一加法器的输出,即next_addr = addr +/- inc;新偏移量为第三加法器的输出,即next_offset = offset +/- inc;新比特翻转偏移量为第二比特翻转逻辑的输出,即next_BRoffset = BR( offset +/- inc ),寻址寄存器堆将保存这些计算结果,并在下次计算地址时为地址计算模块提供当前地址、偏移量和比特翻转偏移量;其中:inc为地址步长,addr为当前地址,offset为偏移量即当前地址减去基地址,next_addr为生成的更新地址,next_offset为新偏移量,next_BRoffset为新比特翻转偏移量,BR()代表比特翻转操作;
进行循环寻址时,第二多路选择器选通偏移量,第五多路选择器选通第二比特翻转逻辑单元的输出端,其他多路选择器的选通情况由寻址方式和部分加法器的输出端的正负状态决定;
当寻址模式为循环寻址加步长时,第四加法器的输出为offset + inc - range,当该输出为负,则说明当前地址加步长仍在循环寻址区域内,此时第一多路选择器选通第一加法器的输出端,所以next_addr = addr + inc;第三多路选择器选通第三加法器的输出端,所以next_offset = offset + inc;第四多路选择器选通第三加法器的输出端,所以next_BRoffset = BR( offset + inc );
当第四加法器的输出为非负,则说明当前地址加步长已经超过了循环寻址区域的上限,此时第一多路选择器选通第二加法器的输出端,所以next_addr = addr + inc - range;第三多路选择器选通第四加法器的输出端,所以next_offset = offset + inc - range;第四多路选择器选通第四加法器的输出端,所以next_BRoffset = BR( offset + inc - range );其中:range为循环寻址的范围;
当寻址模式为循环寻址减步长时,第三加法器的输出为offset - inc,当该输出为非负,则说明当前地址减步长仍在循环区域内,此时第一多路选择器选通第一加法器输出端,所以next_addr = addr - inc;第三多路选择器选通第三加法器的输出端,所以next_offset = offset - inc;第四多路选择器选通第三加法器的输出端,所以next_BRoffset = BR( offset - inc );
当第三加法器的输出为负,则说明当前地址减步长已经超过了循环寻址区域的下限,此时第一多路选择器选通第二加法器的输出端,所以next_addr = addr - inc + range;第三多路选择器选通第四加法器的输出端,所以next_offset = offset - inc + range;第四多路选择器选通第四加法器的输出端,所以next_BRoffset = BR( offset - inc + range );
进行比特翻转寻址时,第一多路选择器选通第五加法器的输出端,第二多路选择器选通比特翻转偏移量,第三多路选择器选通第一比特翻转逻辑单元的输出端,第四多路选择器任意选通,第五多路选择器选通第三加法器的输出端。
CN 201110068802 2011-03-22 2011-03-22 实现数字信号处理器的寻址模块 Expired - Fee Related CN102163141B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110068802 CN102163141B (zh) 2011-03-22 2011-03-22 实现数字信号处理器的寻址模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110068802 CN102163141B (zh) 2011-03-22 2011-03-22 实现数字信号处理器的寻址模块

Publications (2)

Publication Number Publication Date
CN102163141A CN102163141A (zh) 2011-08-24
CN102163141B true CN102163141B (zh) 2013-11-06

Family

ID=44464384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110068802 Expired - Fee Related CN102163141B (zh) 2011-03-22 2011-03-22 实现数字信号处理器的寻址模块

Country Status (1)

Country Link
CN (1) CN102163141B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761751B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10552070B2 (en) 2017-11-14 2020-02-04 International Business Machines Corporation Separation of memory-based configuration state registers based on groups
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10761983B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
CN109992255B (zh) * 2019-03-07 2022-06-24 中科亿海微电子科技(苏州)有限公司 具有进位链结构的双输出查找表及可编程逻辑单元
CN117314730B (zh) * 2023-11-28 2024-03-15 进迭时空(杭州)科技有限公司 一种用于加速数字图像处理的中值滤波计算装置及其方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer
JP2003131868A (ja) * 2001-10-25 2003-05-09 Fujitsu Ltd プロセッサ
CN1437112A (zh) * 2002-02-07 2003-08-20 旺宏电子股份有限公司 具有有效使用存储器的循环寻址的方法及系统
US6647484B1 (en) * 2000-09-19 2003-11-11 3 Dsp Corporation Transpose address mode in general purpose DSP processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer
US6647484B1 (en) * 2000-09-19 2003-11-11 3 Dsp Corporation Transpose address mode in general purpose DSP processor
JP2003131868A (ja) * 2001-10-25 2003-05-09 Fujitsu Ltd プロセッサ
CN1437112A (zh) * 2002-02-07 2003-08-20 旺宏电子股份有限公司 具有有效使用存储器的循环寻址的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DSP处理器循环寻址和位翻转寻址的设计;段来仓;《微电子学与计算机》;20030131(第1期);11-13 *
段来仓.DSP处理器循环寻址和位翻转寻址的设计.《微电子学与计算机》.2003,(第1期),11-13.

Also Published As

Publication number Publication date
CN102163141A (zh) 2011-08-24

Similar Documents

Publication Publication Date Title
CN102163141B (zh) 实现数字信号处理器的寻址模块
CN107220023B (zh) 一种嵌入式可配置fifo存储器
CN102141905B (zh) 一种处理器体系结构
US10324853B2 (en) Cache system and method using track table and branch information
CN112767983B (zh) 刷新控制电路及存储器
CN102508803A (zh) 一种矩阵转置存储控制器
RU2015103934A (ru) Процессор компьютера и система без арифметико-логического блока
CN103336681B (zh) 针对采用变长指令集的流水线结构处理器的取指方法
CN103034621B (zh) 基2×k并行fft架构的地址映射方法及系统
US20140324937A1 (en) Method for a stage optimized high speed adder
CN114297097A (zh) 一种众核可定义分布式共享存储结构
Waidyasooriya et al. FPGA-accelerator for DNA sequence alignment based on an efficient data-dependent memory access scheme
KR101099417B1 (ko) 캐시 메모리 디바이스
CN102411557A (zh) 多粒度并行fft计算装置
KR20170114119A (ko) 가속기-디지털 신호 프로세서 간 메모리 공유 기반의 연산장치 및 연산방법
US10303484B2 (en) Method for implementing a line speed interconnect structure
CN102129495B (zh) 一种降低可重构算子阵列结构功耗的方法
CN110618950B (zh) 一种异步fifo读写控制电路及方法、可读存储介质及终端
CN203465714U (zh) 位查找电路、旁路转换缓冲器、存储器及微处理器
Jain-Mendon et al. A case study of streaming storage format for sparse matrices
Chiu et al. Efficient particle-pair filtering for acceleration of molecular dynamics simulation
Wong et al. Ultra-low latency continuous block-parallel stream windowing using FPGA on-chip memory
Wijeratne et al. Programmable fpga-based memory controller
JP6256088B2 (ja) ベクトルプロセッサ、情報処理装置および追い越し制御方法
Zhu et al. Design and Optimization of Reconfigurable Data Path for Communication Baseband Signal Processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131106

Termination date: 20180322