CN1315058C - 存储器中的循环寻址的地址产生装置及其集成电路 - Google Patents
存储器中的循环寻址的地址产生装置及其集成电路 Download PDFInfo
- Publication number
- CN1315058C CN1315058C CNB021035466A CN02103546A CN1315058C CN 1315058 C CN1315058 C CN 1315058C CN B021035466 A CNB021035466 A CN B021035466A CN 02103546 A CN02103546 A CN 02103546A CN 1315058 C CN1315058 C CN 1315058C
- Authority
- CN
- China
- Prior art keywords
- address
- adder
- output
- carry
- offset
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
一种用于存储器中循环区域的地址产生装置,其中循环区域的上边界隐含于目前地址内。此双模式地址产生器具有数个输入及目标地址产生逻辑。这些输入接收目前地址A、地址偏移M、区域长度L及一控制信号。而目标地址产生逻辑根据A、M以及L,计算出用于以隐藏式下边界为基准的循环区域的第一个存储器地址,及用于以隐藏式上边界为基准的循环区域的第二个存储器地址。控制信号会选择两个地址中的一个为最后的输出。第一存储器地址由目前地址A加上地址偏移M产生,用于具有隐藏式下边界X及包括自X到(X+L)的第一循环区域;第二存储器地址由目前地址A加上地址偏移M产生,用于具有隐藏式上边界Y及包括自Y到(Y-L)的第二循环区域。
Description
技术领域
本发明是有关于一种存储器寻址,且特别是有关于一种用于如数字信号处理器的数字系统的循环区域的寻址。
背景技术
循环寻址(Circular Addressing),也称为模(modulo)寻址,普遍使用在数字信号处理及其它的数据处理应用上。在使用循环寻址的区域(Buffer)中,需先设定其地址分布范围。在产生用于循环区域的地址中,目标地址乃经由目前地址加上偏移值而产生。如果目前地址及偏移值的和所指到的地址超出所指定的地址范围时,则目标地址会绕折到循环区域的相反的一边。
已有若干用于产生循环区域寻址的方法,已用在公知技术上。一种达成循环寻址的普遍方法就是定义出两个清楚的参数来设定循环区域的上下边界。在此方法中,使用者可以任意地于可用存储器中定义循环区域的位置。然而,此种方法需要两个缓存器来储存上下边界,并且需要较复杂的逻辑来计算下个地址,因而地址产生逻辑可能成为整个设计的速度瓶颈。所以需要有其它的方法,将其简化。
产生用于循环区域的寻址的另一种方法已经叙述在Roesgen所发明的美国专利案第4800524号中。在Roesgen专利的方法中,循环区域是通过单一区域长度参数,以及用于循环区域的目前数据存取地址而定义得出,而循环区域的下边界隐含于目前地址及区域长度内。其下边界是由目前地址的低阶N个位均以0取代而得,若区域长度以二进制表示时,其中的N为领先(最左侧)1的位(bit)位置。下边界既已得出,则上边界可由下边界加上区域长度而得。此种方法比需要清楚设定出上下边界的方法更简单。然而,因为可用边界的限制设定,使存储器的使用没有效率。
产生循环地址的公知技术的其它方法叙述在Lane所发明的美国专利案第4202035号;Taber所发明的美国专利案第4809156号;Catherwood,et al.所发明的美国专利案第5249148号;以及Shridhar,etal.所发明的美国专利案第5381360号中。
因为依赖的循环寻址的数字信号处理应用的复杂度已增加,所以对于如此的应用,增加弹性与减化地址产生器的需要也愈重要。
发明内容
本发明的目的是提出一种用于存储器中的循环区域(CircularBuffer)的地址产生装置,其中循环区域的上边界隐含于目前数据存取地址内。此种方法可单独应用,或者结合以隐藏式下边界为基准的循环区域,进而改善存储器的使用效率,以及增加集成电路的循环区域设计上的弹性。
为达到上述目的,本发明的提出的地址产生器包括数个输入及逻辑。其中,这些个输入是用以接收目前地址A、地址偏移M、区域长度值L及一控制信号。而所组成的逻辑响应于A、M、以及L,而用以计算出用于存储器中的位置的第一个存储器地址及第二个存储器地址。以及响应于控制信号,用以选择第一个存储器地址或第二个存储器地址为输出。其中用于具有地址边界X与包括从地址X到地址(X+L)的第一循环区域的第一存储器地址等于目前地址A加上地址偏移M。以及用于具有地址边界Y与包括从地址Y到地址(Y-L)的第二循环区域的第二存储器地址等于目前地址A加上地址偏移M。
当区域长度L的值以二进制表示时,在位(bit)位置N,具有一领先(leading)1。若以隐藏式下边界为基底,则其下边界X是由目前地址A并令其低阶N个位均为0所得出。若以隐藏式上边界为基底,则其上边界Y是由目前地址A并令其低阶N个位均为1所得出。
在不同实施例中,这些输入A、M与L可以来自储存它们的缓存器。控制信号也可来自储存区的缓存器中。
在本实施例中,地址产生器所使用的逻辑包括第一加法器、第二加法器、以及选择逻辑。其中,第一加法器用以产生第一输出,其值等于A+M,同时具有进位输出。第二加法器用以产生第二输出,当M的符号为正时,第二输出等于第一绕折地址(A+M)-(L+1),同时具有进位输出。或当M的符号为负时,第二输出等于第二绕折地址(A+M)+(L+1),同时具有进位输出。而选择逻辑响应于来自第一加法器的进位输出信号及第二加法器的进位输出信号,而用以选择第一输出或第二输出。在一较佳实施例中,第一加法器与第二加法器可以被同时具有隐藏式下地址边界的循环区域及隐藏式上地址边界的循环区域的地址产生器所共享。
在另外的实施例中,其中L在位(bit)位置N,具有一领先1。若以隐藏式下边界为基底,其下边界X将目前地址A的低阶N个位均为0取代而得。若以隐藏式上边界为基底,其上边界Y将目前地址A的低阶N个位均为1取代而得。第一加法器与第二加法器会于每个位权产生进位输出,而优先选择器响应于L,并提供逻辑,使来自加法器中的第N个位置位的进位为输出。因此,在此实施例中,另一选择逻辑的运作响应于来自第一加法器与第二加法器的来自第N个位(bit)位置的进位输出信号,而用以选择第一输出或第二输出。
对同时使用隐藏式下地址边界与隐藏式上地址边界的循环区域的实施例而言,所组成的选择逻辑为:
选择到第一加法器的输出的情况有:
当控制信号设定用于第一存储器地址、地址偏移为正、以及来自第一加法器与第二加法器的进位输出均非为1,或
当控制信号设定用于第一存储器地址、地址偏移为负、以及来自第一加法器的进位输出为1,或
当控制信号设定用于第二存储器地址、地址偏移为正、以及来自第一加法器的进位输出为为0,或
当控制信号设定用于第二存储器地址、地址偏移为负、以及来自第一加法器与第二加法器的进位输出都为1;
选择到第二加法器的输出的情况有,
当控制信号设定用于第一存储器地址、地址偏移为正、以及来自第一加法器或第二加法器的进位输出至少一个为1,或
当控制信号设定用于第一存储器地址、地址偏移为负、以及来自第一加法器的进位输出为0,或
当控制信号设定用于第二存储器地址、地址偏移为正、以及来自第一加法器的进位输出为1,或
当控制信号设定用于第二存储器地址、地址偏移为负、以及来自第一加法器或第二加法器的进位输出至少一个为0。
对单独使用隐藏式上地址边界的实施例而言,所组成的选择逻辑:
选择到第一加法器的输出的情况有,
当地址偏移为正,以及来自第一加法器的进位输出为0,或
当地址偏移为负,以及来自第一加法器与第二加法器的进位输出都为1;以及
选择到第二加法器的输出的情况有,
当地址偏移为正,以及来自第一加法器的进位输出为1,或
当地址偏移为负,以及来自第一加法器或第二加法器的进位输出至少一个为0。
本发明也可通过集成电路来实施,此集成电路包括处理器核心、数个暂存储存器、存储器、以及用于存储器的地址产生器。其中,这些暂存储存器用以储存目前地址A、偏移值M与区域长度L。如上所述,根据本发明的实施例中,所组成的地址产生器可以单独使用隐藏式上地址边界,或者是使用隐藏式上地址边界与隐藏式下地址边界的结合。
附图说明
图1是本发明的具有隐藏式上/下边界循环地址产生器的集成电路处理器的简化方框图;
图2a、图2b、以及图2c分别是用于公知技术的隐藏式下地址边界的循环区域的地址分布示意图、用于本发明的一隐藏式上地址边界的循环区域的实施例的地址分布示意图、以及用于本发明的一结合隐藏式上地址边界与隐藏式下地址边界的循环区域的实施例的地址分布示意图;
图3是根据公知技术的以隐藏式下地址边界为基底的循环地址产生器的简化逻辑图;
图4是根据本发明的一以隐藏式上地址边界为基底的循环地址产生器的实施例的简化逻辑图;
图5是根据本发明的一结合隐藏式上地址边界与隐藏式下地址边界的循环地址产生器的实施例的逻辑图;
图6是根据本发明的一隐藏式上地址边界的循环地址产生器的实施例的逻辑图,图中显示通过优先权选择器,会选择到在位置N的进位输出。
10:集成电路装置
11:程序存储器
12:处理器核心
13:缓存器集合
14:数据存储器
15:循环地址产生器
201、202、301、302、401、402、501、502:加法器
203、303、403、503:Exclusive NOR门
204,430:OR门
205,429:反相器
206、207、208、209、210、211、212、306、307、308、309、310、311、312、415、416、515、516:线
213、214、313、314:多任务器
305、405、505:NAND门
404、406、423、426、504、506:多任务器
407、507:目前地址A
408、508:偏移值M
409、509:区域长度L
410、510:偏移值M的符号位
411、511:Exclusive NOR门的输出
412、512:绝对地址
413、513:绕折地址
414、514:目标地址
417、418、424、425、427、428、431、518:接线
419、420、519、520:进位输出
421、422、521、522:优先权选择器
431:上/下边界基底控制信号
517:NAND门的输出
具体实施方式
本发明所提出的实施例将配合图1-图6做详细描述。
在图1中,集成电路处理器的简化图包括用于本发明的地址产生器。集成电路装置10包括程序存储器11、数据存储器14、以及处理器核心12。如此的处理器核心12包括用于数据存储器存取的循环地址产生器15、含有定义循环区域的参数的缓存器集合(Registerfile)13、以及如指令译码器,算数逻辑单元(ALU)等的其它逻辑。根据本发明的循环地址产生器15可用以管理数据存储器14中的区域(Buffer),其具有长度(L+1)及可选择的边界基底,其可以以隐藏式上边界为基准,或者可以以隐藏式上边界及隐藏式下边界的结合为基准。
例如,处理器核心12执行来自程序存储器11的指令。指令包括直接地址指令与间接地址指令。间接地址指令则依赖循环地址产生器辅助完成。用于循环地址产生器的参数则储存于缓存器集合13中。在本实施例中,有四组可程序循环区域缓存器,每组包括用以储存目前地址A的第一缓存器、用以储存偏移值M的第二缓存器、以及用以储存区域长度值L的第三缓存器。对同时支持上地址边界与下地址边界的实施例而言,所提供的上下选择信号表示每次存取是使用到上地址边界为基底的区域或下地址边界为基底的区域。此上下选择信号可由指令本身提供,或者当偏移值仅用到缓存器部分的位,可利用储存偏移值M的缓存器中的一个高位来标示上下选择信号。
例如,一个指令“ld x1,ar2,m2”是通过处理器核心12解译之后,以读取存储器数据,并将其储存器于缓存器x1中。所读取的存储器数据地址来自缓存器ar2的内容,它也是循环地址产生器的目前地址A。当数据被读取之后,目前地址A会随之增减,其增减值为缓存器m2所储存的偏移值M。缓存器l2中所储存乃区域长度值L。在本实施例中,如果将16位地址的区域长度值L设定为十六进制的ffff,则其循环区域为整个存储器空间,也可以说明是一线性寻址(Linear Addressing)。
图2a-图2c是使用隐藏式下地址边界、隐藏式上地址边界、以及结合下及上地址边界的循环地址的例子。在图2a中,所显示的公知技术的隐藏式下地址边界的方法具有循环区域1与循环区域2。在此例中,循环区域1具有等于10的长度(L+1),以及其配置介于0a00(16进位)与0a09(16进位)之间。假设使用者想要定义循环区域2具有等于6的长度(L+1)。虽然介于0a0a(16进位)与0a0f(16进位)之间的地址长度等于6,但是此地址设定不能用作循环区域2,因为其不符合使隐藏式下地址边界中的低阶的3个位为0的条件。所以将循环区域2配置于0a10(16进位)至0a15(16进位)的区间,这也留下0a0a(16进位)至0a0f(16进位)之间没用到的空间。
图2b是本发明的隐藏式上地址边界的方法。循环区域1与循环区域2显示于图中。此例中,隐含了上地址边界。此循环区域1具有等于10的长度(L+1),以及其地址介于0a0f(16进位)与0a06(16进位)之间。此例中,使用者定义循环区域2具有等于6的长度(L+1)。对区域1的最简洁及最近的配置,以隐藏式上边界为基底而言,就是将区域2配置于0a17(16进位)与0a12(16进位)之间。这仍留下了区域1与区域2之间没用到的空间。
图2c是具有隐藏式下地址边界的循环区域1,以及具有隐藏式上地址边界的循环区域2,其组成表示在它们之间没有未使用到的空间。此例中,循环区域1具有相等于10的长度(L+1)。对介于0a00(16进位)与0a09(16进位)之间的目前地址而言,循环地址产生器会产生在0a00(16进位)到0a09(16进位)范围内的下个地址。此例中,长度(L+1)等于6的循环区域2,其具有隐藏式上地址边界0a0f(16进位)。使用介于0a0f(16进位)与0a0a(16进位)之间的目前地址对循环区域2做存取,循环地址产生器会产生在0a0f(16进位)到0a0a(16进位)范围内的下个地址。由此可知,可组成两个循环区域,使得在它们之间没有未使用的空间。
具有隐藏式下地址边界区域及具有隐藏式上地址边界区域的地址产生逻辑将配合图3与图4,在以下做描述。
如果选择的区域具有隐藏式下边界,则隐藏式下边界是由目前地址并令其低阶N个位均为0所决定出来,其中N的值为区域长度参数L的第一个领先1的位(bit)位置。N的值也可由2^(N-1)<=L<2^N的方程式来表示。根据此技术,下边界可位于2^N的任意倍的位置上。此区域的下边界是由位于A左侧的高阶W-N个位与使右侧的低阶N个位均为0的连接所指定,其中W用于存储器中的地址的位数。一旦决定出下边界,上边界是由下边界加上L而得。也就是,上边界是由位于A左侧的高阶W-N个位与位于L右侧的低阶N个位的连接所指定。
例如,考虑W=16、L为000 0000 0010 1011(二进制表示的16位)、以及区域的目前存取地址为0011 1001 0101 1110的例子。L中的领先1在位(bit)位置6为,所以N=6。而下边界为0011 1001 01000000,以及上边界为0011 1001 0110 1011。
为简化叙述,我们将高于W-N的位自A与上边界、下边界去除,以及使用I来表示A的低阶N个位、使用0来表示下边界、以及使用L来表示上边界。M为介于目前地址I与下个目标地址I之间的偏移。M可为正数或负数。
如果M为正数,对考虑到产生目标地址的逻辑而言,有三种情况:(1)I+M>=2^N、(2)I+M>=L+1、以及(3)I+M<L+1。
在情况1中,M为正,且I+M>=2^N。如此,绝对地址(I+M)会超出上边界L,下个地址需绕折至循环区域的低地址区域。下个目标地址I可由来自绝对地址(I+M)减去区域长度(L+1)而计算得出。方程式为(I+M)-(L+1),以2的补码系统可表示为(I+M)+(L\)。
在情况2中,M为正,且I+M>=L+1。如此,绝对地址(I+M)也超出上边界L,下个地址需绕折至循环区域的低地址区域。下个目标地址I可由来自绝对地址减去区域长度而计算得出。方程式与情况1中的相同,为(I+M)-(L+1),其2的补码系统等于(I+M)+(L\)。
情况3,M为正,且I+M<L+1。如此,绝对地址(I+M)未超出上边界L。所以下个目标地址等于I+M。
在硬件实现中,情况1(I+M>=2^N)可由有来自I+M所产生的进位输出(carry out)判别。情况2(I+M>=L+1)可由有来自I+M+(L\)所产生的进位输出判别。情况3可由没有来自I+M所产生的进位输出判别。
如果M为负数,对考虑到产生目标地址的逻辑而言,有两种情况:(1)I+M<0,(2)I+M>=0。
在情况1中,M为负,I+M<0。因为绝对地址(I+M)为负数,并低于循环区域的下边界0。下个地址需绕折至循环区域的高地址区域。下个目标地址I可由来自绝对地址(I+M)加上区域长度L+1而计算得出,方程式为:I+M+L+1。
情况2,M为负,且I+M>=0。因为绝对地址(I+M)位在下边界0之上,所以下个目标地址I与I+M相等。
在硬件实现中,情况1,(I+M<0)可由没有来自I+M所产生的进位输出信号判别。情况2,(I+M>=0)可由有来自I+M所产生的进位输出信号判别。
因此,隐藏式下地址边界循环区域的硬件完成如图3中所实施的逻辑。图3中的逻辑包括第一加法器201与第二加法器202。第一加法器201的输入包括I值与M值。第一加法器201的输出(为绝对地址)是由线207所提供,其与I+M相等。来自第一加法器201的进位输出信号是由线206所供给。第二加法器202的输入包括Exclusive NOR门203的输出与位于第一加法器201的输出207。Exclusive NOR门203的输入包括长度值L与地址偏移M的符号位(sign bit)。第二加法器202的进位输入(carry in)接收如线211所传入的M的符号位。第二加法器202的输出(为绕折地址)是由线209所供给。多任务器213接收线207上的绝对地址,以及以线209上的绕折地址当做输入,并且供给线210做为目标地址输出。施加至多任务器213的选择信号212表示会将计算得出的绝对地址与绕折地址中的一个当做输出。信号线212是由多任务器214的输出所提供,多任务器214的作用为响应于M的符号位211,用以选择M的符号位为1(M为负)的逻辑,以及M的符号位为0(M为正)的逻辑。
在M的符号位为1的情况中,反向器205的输出当做线212上的控制信号。反向器205的输入来自第一加法器201的进位输出信号206。因此,如果M的符号位为1,当第一加法器201的进位输出信号为0时,会选择到绕折地址,以及当第一加法器201的进位输出信号为1时,会选择到绝对地址。
在M的符号位为0的情况,或门204的输出当做线212上的控制信号。或门204的输入包括来自第二加法器202的进位输出信号208,以及来自第一加法器201的进位输出信号206。因此,如果M的符号位为0,当线206与线208上的进位输出信号中有至少一个为1时,会选择到绕折地址。如果M的符号位为0,当线206与线208上的进位输出信号都为0时,会选择到绝对地址。
如果所选择的区域具有隐藏式上边界,则隐藏式上边界将目前地址A的低阶N个位均由1取代而得,其中N为区域长度参数L的第一个领先“1”的位(bit)位置。N也可由2^(N-1)<=L<2^N的方程式来决定。换句话说,上边界可位于(2^N的任意倍)+(2^N-1)的位置上。目前地址A可用来定位出区域的上下边界。假设A含有W个位,此区域的上边界是由位于A的左侧的高于W-N的位与使右侧的低阶N个位均为1的连接所产生。一旦上边界决定出来,下边界通过上边界减去L而得。因此,下边界通过位于A的左侧的高于W-N的位与位于(L\)右侧的低阶N个位的连接所产生。这里的(L\)为L的1的补码。
例如,考虑W=16、L为000 0000 00010 1011(二进制表示的16位)、以及区域的目前地址为0011 1001 0101 1110的例子。然后可得到N=6、以及隐藏式上边界为0011 1001 0111 1111、以及隐藏式下边界为0011 1001 0101 0100。
为简化如上的叙述,我们将高于W-N的位自A与上边界及下边界去除,以及使用I来表示A的低阶N个位、使用F来表示上边界、以及使用(L\)来表示下边界。M为介于目前地址I与目标地址I之间的偏移。M可为正或负。
如果M为正数,对考虑到连接于产生目标地址的逻辑而言,有两种情况:(1)I+M>=F+1与(2)I+M<F+1。
在情况1中,M为正,且(I+M>=F+1)。因为绝对地址(I+M)超出上边界(F,都为1),所以下个地址需绕折至循环区域的低地址区域。目标(绕折)地址I可通过绝对地址(I+M)减去区域长度(L+1)而计算得出。其算式为(I+M)-(L+1),若以2的补码系统表示,等于(I+M)+(L\)。
在情况2中,M为正,且(I+M<F+1)。因绝对地址(I+M)未超出上边界F。在此种情况中,目标地址I即等于I+M。
对硬件实现而言,情况1(I+M>=F+1)可由有来自I+M所产生的进位输出判别。情况2(I+M<F+1)可由没有来自I+M所产生的进位输出判别。
如果M为负数,对考虑到连接于产生目标地址的逻辑而言,有三种情况:(1)I+M<0、(2)I+M<(L\)与(3)I+M>=(L\)。
在情况1中,M为负,且I+M<0。因绝对地址(I+M)为负数且位于循环区域的下边界(L\)的下方。因此,下个目标地址需绕折至循环区域的高地址区域。下个目标(绕折)地址I可由区域长度与绝对地址的相加所计算得出,其算式为:I+M+L+1。
在情况2中,M为负,且I+M<(L\)。因绝对地址也位于循环区域的下边界(L\)的下方。所以下个目标(绕折)地址I将为I+M+L+1。
在情况3中,M为负,且I+M>=(L\)。因绝对地址(I+M)未超出下边界(L\)。因此,下个目标地址I等于I+M。
对硬件实现而言,情况1,(I+M<0)可由没有来自I+M所产生的进位输出判别。情况2,I+M<(L\)可由没有来自I+M+L+1所产生的进位输出判别。
因此,隐藏式上地址边界循环区域的硬件完成如图4所示的实施的逻辑。图4中的逻辑包括第一加法器301与第二加法器302。第一加法器301的输入包括I值与M值。第一加法器301的输出(为绝对地址)是由线307所供给。第二加法器302的输入包括ExclusiveNOR门303的输出与第一加法器301的输出307。Exclusive NOR门303的输入包括长度值L与地址偏移M的符号位。第二加法器302的进位输入(carry in)接收如在线311上所传入的M的符号位。第二加法器302的输出(为绕折地址)是由线309所供给。多任务器313接收线307上的绝对地址、以及以线309上的绕折地址当做输入、以及供给线310做为目标地址。施加至线312上的多任务器313的控制信号是用以表示以选择绝对地址或绕折地址中的一个当做输出。线312上的信号是通过多任务器314的输出提供,其作用为响应于线311上的M的符号位,用以选择M的符号位为1(M为负)的逻辑,或M的符号位为0(M为正)的逻辑。
在M的符号位为1的情况中,NAND门305的输出当做线312上的控制信号。NAND门305的输入包括来自第一加法器301的线306上的进位输出信号与来自第二加法器302的线308上的进位输出信号。因此,如果M的符号位为1,当第一加法器301与第二加法器302的至少一个的进位输出信号为0时,会选择到绕折地址,或当第一加法器301与第二加法器302的进位输出信号都为1时,会选择到绝对地址。
在M的符号位为0的情况中,第一加法器301的线306上的进位输出当做线312上的控制信号。因此,如果M的符号位为0,当线306上的进位输出信号为1时,会选择到绕折地址。如果M的符号位为0,当线306上的进位输出信号为0时,会选择到绝对地址。
图5显示一可能的实施例的方框图,其中的两个加法器401,402是由下边界结构与上边界结构所共享。此装置具有四个输入与一个输出。
输入为:
1.区域长度L 409,其为可程序化的值(真实的区域长度为L+1)。
2.目前存取地址A 407,循环区域的边界隐藏于A及L中。
3.介于目前地址A 407与目标地址414之间的偏移M 408。M具有正负号的数值,而且M的绝对值不可大于L。
4.线431上的可程序的控制信号,其用来选择是否使用以隐藏式下边界或隐藏式上边界为基准的区域。
输出为:
1.目标地址414,它将成为下一次地址计算的目前地址407。
加法器401执行A 407与M 408的加法运算,以及产生和412(绝对地址),以及产生来自每个位权(bit weight)的进位输出419。如果M 408的符号位410等于0,则Exclusive NOR门403用来将L 409做反相。如果M 408的符号位410等于1,则Exclusive NOR门403的输出等于L 409。加法器402执行绝对地址412与Exclusive NOR门403的输出411的加法运算,并加上一进位输入于最小有效位,其值等于M 408的符号位410,以及产生和413(绕折地址)与来自每个位权的进位输出420。目标地址414选自绝对地址412或绕折地址413,其经由多任务器404及其控制信号418。优先权选择器421通过侦测L 409中的领先「1」的位置来选择来自加法器401的进位输出419的第N个位进位输出当做输出415。优先权选择器422响应于L 409而选择来自加法器402的进位输出420的第N个位进位输出当做输出416。接线(wire)431用以选择多任务器423的两个输入中的一个。如果接线431等于0,则控制信号418来自于接线425。这也意谓所定义的循环区域是以下边界为基底。否则会选择到接线424,循环区域是以上边界为基底。
如果接线431为0,则循环区域以下边界为基底。当M为正数,接线428会被选择为控制信号418,并经由多任务器426、接线425与多任务器423。如果经由优先权选择器421的来自加法器401所产生的进位输出415或经由优先权选择器422的来自加法器402所产生的进位输出416,其中至少一个为1,则加法器402的和413(绕折地址)经由多任务器404被选择为目标地址414。此OR功能通过OR门430来执行。接线428为OR门430的输出,同时也为多任务器426的输入。当M为负数,接线427被选择为控制信号418,并经由多任务器426、接线425与多任务器423。如果经由优先权选择器421的来自加法器401所产生的进位输出415为0,则加法器402的和413(绕折地址)经由多任务器404被选择为目标地址414。反相器429用来确认接线415的清除(clear)状态。接线427为反相器429的输出。
如果接线431设为1,则循环区域是以上边界为基底。当M为正数,接线415被选择为控制信号418,并经由多任务器406、接线424与多任务器423。如果经由优先权选择器421的来自加法器401所产生的进位输出415为1,则加法器402的和413(绕折地址)经由多任务器404被选择为目标地址414,否则来自加法器402所产生的绝对地址,将被选择为目标地址414。当M为负数,接线417被选择为控制信号418,并经由多任务器406、接线424与多任务器423。如果经由优先权选择器421的来自加法器401所产生的进位输出415或经由优先权选择器422的来自加法器402所产生的进位输出416,其中至少一个为0,则加法器402的和413(绕折地址)经由多任务器404被选择为目标地址414,否则绝对地址412将被选择为目标地址414。OR功能通过NAND门405来执行。接线417为NAND门405的输出及多任务器406的输入。
在本发明的一些实施例中,隐藏式上边界的结构可单独使用,如图6所示。
在图6中,加法器501执行A 507与M 508的相加及产生绝对地址512。如果M 508为正数(M的符号位510等于0),则ExclusiveNOR门503会将L 519做反相。如果M 508为负数(M的符号位510等于1),则Exclusive NOR门503的输出511与L 519相等。加法器502执行绝对地址512与Exclusive OR门503的输出511的加法运算,并加上一进位输入于最小有效位,其值等于M的符号位510。加法器502的输出为绕折地址513。当绝对地址超出区域的边界时,绕折地址会被选择为输出514。目标地址514选自绝对地址512或绕折地址513,经由多任务器504及其控制信号518。
如果M为正,信号515通过多任务器506而被选为控制信号518。优先权选择器521通过侦测L 509中的领先“1”的位置来选择来自加法器501的进位输出519的第N个位进位输出当做输出515。优先权选择器521的输出515表示加法器501的第N个位进位输出的状态。来自加法器501的第N个位进位输出为“1”表示绝对地址(A+M)超出区域的上边界,所以绕折地址513将被选为输出514。否则绝对地址512被选为输出514。
如果M为负,来自于多任务器506的信号517会被选为控制信号518。在此种情况,会使用到二个具有第N个进位输出的进位输出信号515及516。线515与516为NAND门505的输入,信号517为其输出。信号515的“0”值表示没有通过A+M所产生的进位输出,其意谓绝对地址512为负值且超出区域的下边界。因此绕折地址513会被选为目标地址输出514。优先权选择器522通过侦测L 509中的领先“1”的位置来选择来自加法器502的进位输出520的第N个位进位输出当做输出516。信号516的“0”值表示没有通过加法器502所产生的进位输出,其意谓A+M<(L\),且绝对地址超出区域的下边界。在此种情况,绕折地址513也会被选为目标地址输出514。如果上述这两种绕折的情况没发生,则绝对地址512会被选为目标地址输出514。
综上所述,提出一种地址产生器,用以存取线性存储器空间中的循环区域。此区域具有可程序化的长度(L+1),此区域的基底定义为具有隐藏式下边界或隐藏式上边界。如果使用隐藏式下边界来定义出循环区域,则其下边界地址将具有低阶N个位都为0的特性,其中N为L的第1个领先1的位(bit)位置。如果使用隐藏式上边界来定义出循环区域,则其上边界地址将具有低阶N个位都为1的特性。绝对地址是由偏移M与目前地址A相加而计算得出,其中M为具有正负号的数值,而且M的绝对值不大于L。如果绝对地址超出区域的边界,其将通过加上或减去区域长度(L+1)而绕折至边界的另一侧。以此种方法,下个目标地址总是位于区域内。如此的地址产生器可用于数字信号处理的应用,也可用在数据处理的其它应用上。
Claims (14)
1、一种用于存储器中的循环区域的地址产生装置,其特征是,该装置包括:
多个输入端,该些输入端接收一目前地址A、一地址偏移M、一区域长度值L及一控制信号;以及
一逻辑电路,其组成响应于A、M、以及L,而计算出用于存储器中的位置的一第一存储器地址及一第二存储器地址,以及响应于该控制信号,其选择该第一存储器地址或该第二存储器地址为输出,其中该第一存储器地址相当于该目前地址A加上该地址偏移M,并存取数据于具有一地址边界X与包括从地址X到地址(X+L)的一第一循环区域,以及该第二存储器地址相当于该目前地址A加上该地址偏移M,并存取数据于具有一地址边界Y与包括从地址Y到地址(Y-L)的一第二循环区域;当L的值以二进制表示时,在位位置N,具有一领先1,以及该地址边界X是由该目前地址A的低阶N个位均以0取代而得,以及该地址边界Y是由该目前地址A的低阶N个位均以1取代而得,以及该逻辑电路包括:
一第一加法器,其产生一第一输出,该第一输出相等于A+M,并在位位置N,具有一进位输出信号;
一第二加法器,其产生一第二输出,当M的符号为正时,该第二输出相等于一第一绕折地址(A+M)-(L+1),并在位位置N,具有一进位输出信号,或当M的符号为负时,该第二输出相等于一第二绕折地址(A+M)+(L+1),并在位位置N,具有一进位输出信号;以及
一包括第一多任务器及一第二多任务器的选择逻辑电路,该第一多任务器是接收来自该第一加法器的进位输出信号及该第二加法器的进位输出信号并依据该地址偏移M而输出一选择信号以控制该第二多任务器,选择该第一输出或该第二输出。
2、如权利要求1所述的用于存储器中的循环区域的地址产生装置,其特征是,该些输入端包括用以储存A、M与L的多个缓存器。
3、如权利要求1所述的用于存储器中的循环区域的地址产生装置,其特征是,该些输入端包括用以储存A、M、L与该控制信号的多个缓存器。
4、如权利要求1所述的用于存储器中的循环区域的地址产生装置,其特征是,所组成的该选择逻辑电路:
选择到该第一加法器的输出的情况为:
当该控制信号设定用于该第一存储器地址、该地址偏移为正、以及来自该第一加法器与该第二加法器的进位输出均非为1,或
当该控制信号设定用于该第一存储器地址、该地址偏移为负、以及来自该第一加法器的进位输出为1,或
当该控制信号设定用于该第二存储器地址、该地址偏移为正、以及来自该第一加法器的进位输出为0,或
当该控制信号设定用于该第二存储器地址、该地址偏移为负、以及来自该第一加法器与该第二加法器的进位输出都为1;以及
选择到该第二加法器的输出的情况为,
当该控制信号设定用于该第一存储器地址、该地址偏移为正、以及来自该第一加法器或该第二加法器的进位输出至少一个为1,或
当该控制信号设定用于该第一存储器地址、该地址偏移为负、以及来自该第一加法器的进位输出为0,或
当该控制信号设定用于该第二存储器地址、该地址偏移为正、以及来自该第一加法器的进位输出为1,或
当该控制信号设定用于该第二存储器地址、该地址偏移为负、以及来自该第一加法器或该第二加法器的进位输出至少一个为0。
5、一种用于存储器中的具有隐藏式上地址边界的循环区域的地址产生装置,其特征是,该装置包括:
多个输入端,其接收一目前地址A、一地址偏移M、以及一区域长度值L;以及
一逻辑电路,其组成响应于A、M、以及L,而计算出一存储器地址,其中该存储器地址相当于该目前地址A加上该地址偏移M,并存取数据于一地址边界Y与包括从地址Y到地址(Y-L)的一循环区域;当L的值以二进制表示时,在位位置N,具有一领先1,而该地址边界Y是由该目前地址A的低阶N个位均以1取代而得,以及该逻辑电路包括:
一第一加法器,其产生一第一输出,该第一输出相等于A+M,并在位位置N,具有一进位输出信号;
一第二加法器,其产生一第二输出,当M的符号为正时,该第二输出相等于一第一绕折地址(A+M)-(L+1),并在位位置N,具有一进位输出信号,或当M的符号为负时,该第二输出相等于一第二绕折地址(A+M)+(L+1),并在位位置N,具有一进位输出信号;以及
一包括第一多任务器及一第二多任务器的选择逻辑电路,该第一多任务器是接收来自该第一加法器的进位输出信号及该第二加法器的进位输出信号并依据该地址偏移M而输出一选择信号以控制该第二多任务器选择该第一输出或该第二输出。
6、如权利要求5所述的用于存储器中的具有隐藏式上地址边界的循环区域的地址产生装置,其特征是,该些输入端包括用以储存A、M与L的多个缓存器。
7、如权利要求5所述的用于存储器中的具有隐藏式上地址边界的循环区域的地址产生装置,其特征是,所组成的该选择逻辑电路:
选择到该第一加法器的输出的情况为,
当该地址偏移为正,以及来自该第一加法器的进位输出为0,或
当该地址偏移为负,以及来自该第一加法器与该第二加法器的进位输出都为1;以及
选择到该第二加法器的输出的情况为,
当该地址偏移为正,以及来自该第一加法器的进位输出为1,或
当该地址偏移为负,以及来自该第一加法器或该第二加法器的进位输出至少一个为0。
8、一种集成电路,其特征是,该集成电路包括:
一处理器;
多个缓存器,耦接于该处理器,该些缓存器储存一目前地址A、一地址偏移M、以及一区域长度值L;
一存储器;以及
一地址产生器,耦接于该处理器,该地址产生器产生用于该存储器的地址,该地址产生器的组成响应于A、M、以及L,而计算出用于存储器中的位置的一第一存储器地址及一第二存储器地址,以及响应于一控制信号,其选择该第一存储器地址或该第二存储器地址为输出,其中该第一存储器地址相当于该目前地址A加上该地址偏移M,并存取数据于具有一地址边界X与包括从地址X到地址(X+L)的一第一循环区域,以及该第二存储器地址相当于该目前地址A加上该地址偏移M,并用于存取数据于具有一地址边界Y与包括从地址Y到地址(Y-L)的一第二循环区域;当L的值以二进制表示时,在位位置N,具有一领先1,以及该地址边界X是由该目前地址A的低阶N个位均以0取代而得,以及该地址边界Y是由该目前地址A的低阶N个位均以1取代而得,以及该地址产生器包括:
一第一加法器,其产生一第一输出,该第一输出相等于A+M,并在位位置N,具有一进位输出信号;
一第二加法器,其产生一第二输出,当M的符号为正时,该第二输出相等于一第一绕折地址(A+M)-(L+1),并在位位置N,具有一进位输出信号,或当M的符号为负时,该第二输出相等于一第二绕折地址(A+M)+(L+1),并在位位置N,具有一进位输出信号;以及
一包括第一多任务器及一第二多任务器的选择逻辑电路,该第一多任务器是接收来自该第一加法器的进位输出信号及该第二加法器的进位输出信号并依据该地址偏移M而输出一选择信号以控制该第二多任务器选择该第一输出或该第二输出。
9、如权利要求8所述的集成电路,其特征是,该处理器包括一译码器,该译码器响应于指令,并将该目前地址A、该地址偏移M、以及该区域长度值L储存于该些缓存器中。
10、如权利要求8所述的集成电路,其特征是,该地址偏移M与该控制信号储存于单一缓存器中。
11、如权利要求8所述的集成电路,其特征是,所组成的该选择逻辑电路:
选择到该第一加法器的输出的情况为,
当该控制信号设定用于该第一存储器地址、该地址偏移为正、以及来自该第一加法器与该第二加法器的进位输出均非为1,或
当该控制信号设定用于该第一存储器地址、该地址偏移为负、以及来自该第一加法器的进位输出为1,或
当该控制信号设定用于该第二存储器地址、该地址偏移为正、以及来自该第一加法器的进位输出为0,或
当该控制信号设定用于该第二存储器地址、该地址偏移为负、以及来自该第一加法器与该第二加法器的进位输出都为1;以及
选择到该第二加法器的输出的情况为,
当该控制信号设定用于该第一存储器地址、该地址偏移为正、以及来自该第一加法器或该第二加法器的进位输出至少一个为1,或
当该控制信号设定用于该第一存储器地址、该地址偏移为负、以及来自该第一加法器的进位输出为0,或
当该控制信号设定用于该第二存储器地址、该地址偏移为正、以及来自该第一加法器的进位输出为1,或
当该控制信号设定用于该第二存储器地址、该地址偏移为负、以及来自该第一加法器或该第二加法器的进位输出至少一个为0。
12、一种集成电路,其特征是,该集成电路包括:
一处理器;
多个缓存器,耦接于该处理器,该些缓存器储存一目前地址A、一地址偏移M、以及一区域长度值L;
一存储器;以及
一地址产生器,产生用于存储器中的具有隐藏式上地址边界的循环区域,该地址产生器的组成响应于A、M、以及L,而计算出一存储器地址,而该存储器地址相当于该目前地址A加上该地址偏移M,并用于具有一地址边界Y与包括从地址Y到地址(Y-L)的一循环区域;该地址产生器包括:
一第一加法器,其产生一第一输出,该第一输出相等于A+M,并伴随着一进位输出信号;
一第二加法器,其产生一第二输出,当M的符号为正时,该第二输出相等于一第一绕折地址(A+M)-(L+1),并伴随着一进位输出信号,或当M的符号为负时,该第二输出相等于一第二绕折地址(A+M)+(L+1),并伴随着一进位输出信号;以及
一包括第一多任务器及一第二多任务器的选择逻辑电路,该第一多任务器是接收来自该第一加法器的进位输出信号及该第二加法器的进位输出信号并依据该地址偏移M而输出一选择信号以控制该第二多任务器选择该第一输出或该第二输出;其中当L的值以二进制表示时,在位位置N,具有一领先1,以及该地址边界Y是由该目前地址A的低阶N个位均以1取代而得。
13、如权利要求12所述的集成电路,其特征是,该处理器包括一译码器,该译码器响应于指令,并将该目前地址A、该地址偏移M、以及该区域长度值L储存于该些缓存器中。
14、如权利要求12所述的集成电路,其特征是,所组成的该选择逻辑电路:
选择到该第一加法器的输出的情况为,
当该地址偏移为正,以及来自该第一加法器的进位输出为0,或
当该地址偏移为负,以及来自该第一加法器与该第二加法器的进位输出都为1;以及
选择到该第二加法器的输出的情况为,
当该地址偏移为正,以及来自该第一加法器的进位输出为1,或
当该地址偏移为负,以及来自该第一加法器或该第二加法器的进位输出至少一个为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021035466A CN1315058C (zh) | 2002-02-07 | 2002-02-07 | 存储器中的循环寻址的地址产生装置及其集成电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021035466A CN1315058C (zh) | 2002-02-07 | 2002-02-07 | 存储器中的循环寻址的地址产生装置及其集成电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1437112A CN1437112A (zh) | 2003-08-20 |
CN1315058C true CN1315058C (zh) | 2007-05-09 |
Family
ID=27627866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021035466A Expired - Fee Related CN1315058C (zh) | 2002-02-07 | 2002-02-07 | 存储器中的循环寻址的地址产生装置及其集成电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1315058C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100347686C (zh) * | 2003-12-15 | 2007-11-07 | 上海奇码数字信息有限公司 | 循环缓冲地址产生装置和运算装置 |
CN102043729B (zh) * | 2009-10-20 | 2013-03-13 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
CN102163141B (zh) * | 2011-03-22 | 2013-11-06 | 上海交通大学 | 实现数字信号处理器的寻址模块 |
CN106155946A (zh) * | 2015-03-30 | 2016-11-23 | 上海芯豪微电子有限公司 | 基于信息推送的信息系统和方法 |
CN107580700B (zh) * | 2015-09-29 | 2020-10-09 | 华为技术有限公司 | 一种生成地址的方法及数据处理设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
US4809156A (en) * | 1984-03-19 | 1989-02-28 | Trw Inc. | Address generator circuit |
US4935867A (en) * | 1986-03-04 | 1990-06-19 | Advanced Micro Devices, Inc. | Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations |
US5249148A (en) * | 1990-11-26 | 1993-09-28 | Motorola, Inc. | Method and apparatus for performing restricted modulo arithmetic |
US5381360A (en) * | 1993-09-27 | 1995-01-10 | Hitachi America, Ltd. | Modulo arithmetic addressing circuit |
US6275894B1 (en) * | 1998-09-23 | 2001-08-14 | Advanced Micro Devices, Inc. | Bank selector circuit for a simultaneous operation flash memory device with a flexible bank partition architecture |
-
2002
- 2002-02-07 CN CNB021035466A patent/CN1315058C/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809156A (en) * | 1984-03-19 | 1989-02-28 | Trw Inc. | Address generator circuit |
US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
US4935867A (en) * | 1986-03-04 | 1990-06-19 | Advanced Micro Devices, Inc. | Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations |
US5249148A (en) * | 1990-11-26 | 1993-09-28 | Motorola, Inc. | Method and apparatus for performing restricted modulo arithmetic |
US5381360A (en) * | 1993-09-27 | 1995-01-10 | Hitachi America, Ltd. | Modulo arithmetic addressing circuit |
US6275894B1 (en) * | 1998-09-23 | 2001-08-14 | Advanced Micro Devices, Inc. | Bank selector circuit for a simultaneous operation flash memory device with a flexible bank partition architecture |
Also Published As
Publication number | Publication date |
---|---|
CN1437112A (zh) | 2003-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1291379A (zh) | 用于通信系统的交织/解交织设备和方法 | |
CN1124378A (zh) | 数字处理器 | |
CN1949221A (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
CN1183462C (zh) | 可变流水线级数的数据处理装置 | |
KR102552954B1 (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 | |
CN1567362A (zh) | 动态逻辑分区并控制访问权限的ic智能卡及其实现方法 | |
CN1315058C (zh) | 存储器中的循环寻址的地址产生装置及其集成电路 | |
CN1967720A (zh) | 半导体存储器件及其控制方法 | |
CN1482572A (zh) | 票据图象处理装置 | |
CN1395175A (zh) | 规定存取属性的存储器保护方法和电路 | |
CN1133454A (zh) | 半导体集成电路 | |
CN101046798A (zh) | 一种排版领域的图文绕排方法 | |
CN1381797A (zh) | 高速信息检索系统 | |
CN101079890A (zh) | 一种生成特征码确定状态机的方法和装置 | |
CN1149472C (zh) | 更名装置及处理器 | |
CN1047417C (zh) | 生成和改变缝纫机用的缝纫数据的设备 | |
CN1423191A (zh) | 提供最优网络配置的准最小树的构造、搜索或生成方法 | |
CN1960194A (zh) | 排序装置 | |
CN1639683A (zh) | 用于并行访问多个存储器模块的方法和设备 | |
CN1949273A (zh) | 一种在3d游戏中绘制草坪的方法和系统 | |
CN1728109A (zh) | 基于mcs-51架构的16m字节程序存储器寻址空间扩充方法 | |
CN1252733C (zh) | 存储系统、存储单元、比特屏蔽电路及相关方法 | |
CN1592117A (zh) | 用于计算交织参数的移动电话、设备、方法和程序 | |
CN1290018C (zh) | 交织/去交织方法及装置 | |
CN1821982A (zh) | 一种在单板中对外围器件进行片选的方法和系统 |
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 |
Granted publication date: 20070509 Termination date: 20210207 |
|
CF01 | Termination of patent right due to non-payment of annual fee |