CN100390726C - 实现快速存取数据结构元素的系统、方法及装置 - Google Patents
实现快速存取数据结构元素的系统、方法及装置 Download PDFInfo
- Publication number
- CN100390726C CN100390726C CNB2005101135223A CN200510113522A CN100390726C CN 100390726 C CN100390726 C CN 100390726C CN B2005101135223 A CNB2005101135223 A CN B2005101135223A CN 200510113522 A CN200510113522 A CN 200510113522A CN 100390726 C CN100390726 C CN 100390726C
- Authority
- CN
- China
- Prior art keywords
- shift unit
- access
- structural element
- data structure
- multiplexer
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 17
- 238000006073 displacement reaction Methods 0.000 claims abstract description 27
- 239000000758 substrate Substances 0.000 claims description 11
- 238000010977 unit operation Methods 0.000 claims description 2
- 238000003491 array Methods 0.000 abstract 1
- 230000011218 segmentation Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 14
- 238000007792 addition Methods 0.000 description 13
- 239000000872 buffer Substances 0.000 description 13
- 238000012545 processing Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种可实现快速存取数据结构元素的一处理器,此处理器包含一位于具有数组的数据结构中的元素以及至少一索引、一基地址;该处理器包含一分割移位器,该分割移位器用以将该索引值往上位移三个比特位置以及输出一字节偏移;该处理器亦包含一加法器,该加法器用以将上述字节偏移与上述基地址相加,并且输出一最终地址;该处理器还包含一通用移位器,该通用移位器用以执行左旋、右旋以及左移、右移;以及该处理器包含一选择器,该选择器用以选择上述最终地址或者是上述通用移位器的一输出信号。
Description
技术领域
本发明是有关于减少一处理器内的延迟时间,特别是有关于一种在单一频率周期内计算一数组元素地址的逻辑结构。
背景技术
计算机软件内较常见的操作之一是存取一数据结构内的元素,而此存取通常接收像是此数据结构的基地址及一对应此数据结构中元素的索引,此为一般常见的数组元素的存取。而计算机软件程序一般指示一数组中的第i个元素系使用术语,例如:“x=array[i]”。当数组为一储存半字组、字组或双字组的混合结构时,其索引往往由将其索引值左移1、2或3个比特位置而转换成字节偏移以得到偏移值,然后此偏移值被加至基地址,进而产生最终地址用以存取内存内数据。
一般实行转换索引至偏移值的方法,是在管线执行的阶段利用一具有加法器的通用移位器,此通用移位器具有左移、逻辑右移、算数右移及右旋转0~32比特位置的能力。此通用移位器会在第一频率周期移动索引适当的数量;然后加法器则在第二频率周期将此索引加至基地址。
上述结构的缺点在于其花费了两个频率周期执行此经常性的操作。由于处理器在操作期间执行许多次此操作,因此在某种程度而言,处理器的时间是因上述操作时间的消耗而浪费掉。
鉴于以上所述的缺点,实有需要持续发展新的改良系统、方法及装置,以克服上述所提及的限定及缺失。
发明内容
本发明的目的在于提供一种实现快速存取数据结构元素的系统、方法及装置。
为实现上述目的,本发明提供的存取数据结构元素的装置,包含:
一第一移位器,用以接收一第一位移输入及一第一位移数量并传递一位移值;
一第二移位器,用以接收一第二位移输入及一第二位移数量并传递一基底偏移值;
一加法器,耦接该第二移位器,该加法器用以接收该基底偏移值及一基地址并传递一最终地址;以及
一多任务器,在存取一数据结构的情况下会选取该最终地址,在非存取一数据结构的情况下会选取该位移值。
所述的存取数据结构元素的装置,其中该第一移位器为一通用移位器。
所述的存取数据结构元素的装置,其中该第二移位器还用以逻辑左移。
所述的存取数据结构元素的装置,其中该第二移位器较该第一移位器运作于较少的闸级延迟。
所述的存取数据结构元素的装置,其中该第一移位器执行该第二移位器所无法执行的至少一操作。
所述的存取数据结构元素的装置,包含至少一正反器用以保持一信号至少一频率周期。
本发明提供的存取数据结构元素的方法,包含:
接收具有至少一索引值的一数组;
接收一基地址;
利用一分割移位器位移该索引值,其中该分割移位器用以执行逻辑左移并传递一基底偏移值;
由相加该基底偏移值与该基地址产生一最终地址;以及
在存取一数据结构时,从一加法器选取该最终地址,以及在非存取一数据结构时,从一通用移位器选取一输出信号。
所述的存取数据结构元素的方法,其中该通用移位器执行该分割移位器所无法执行的至少一功能。
所述的存取数据结构元素的方法,其中该分割移位器操作较该通用移位器快。
所述的存取数据结构元素的方法,包含在存取一数据结构时,从该分割移位器选取该基底偏移值,以及在非存取一数据结构时,从该通用移位器选取一输出信号。
本发明提供的存取数据结构元素的系统,包含:
具有至少一索引值的一数组;
一基地址;
一分割移位器,该分割移位器由位移该索引值产生一字节地址;以及
一加法器,该加法器由相加该基地址与该字节地址产生一最终地址。
所述的存取数据结构元素的系统,包含一通用移位器用以执行该分割移位器所无法执行的至少一功能。
所述的存取数据结构元素的系统,其中该分割移位器较该通用移位器运作于较少的闸级延迟。
所述的存取数据结构元素的系统,包含一选择器用以在存取一数据结构时,选取该最终地址,以及在非存取一数据结构时,从该通用移位器选取一输出信号。
附图说明
图1为一微处理器内的一管线结构的机能方块图;
图2为图1的微处理器的另一实施例的机能方块图,其描绘一数据结构的一元素的存取;
图3为执行图2部分管线结构的电路的机能方块图;
图4为图1的微处理器电路操作于单一频率周期的机能方块图;
图5为一通用移位器的机能方块图,如图3、图4所示;
图6为图5的通用移位器内的电路的机能方块图;
图7为可与图1微处理器使用的一分割移位器的机能方块图;
图8为图7分割移位器内的电路的机能方块图;
图9为图7分割移位器内的附加电路的机能方块图;
图10为使用于图1微处理器内的另一分割移位器实施例的机能方块图;
图11为图10分割移位器内的电路的机能方块图;
图12为利用本发明的一实施例的微处理器内的一管线结构的机能方块图,其与图1的微处理器比较;
图13为本发明使用于第一图的微处理器内的一电路实施例的机能方块图;以及
图14为图13的另一实施例的机能方块图。
具体实施方式
本发明的部分目的、优点及创新的特征将于下列描述中提出,且依其后的检视或实际学习可成为熟悉该项技术人员显而易知的事项。
本发明提供一具有改良逻辑电路的处理器,在一实施例中,此处理器包含至少一索引及一基地址以及一实现较快存取一数组型数据结构中的一元素的系统;此处理器亦包含一用以移动此索引值并输出一字节偏移的分割移位器;一用以将上述的字节偏移与上述的基地址相加并输出一最终地址的加法器;以及一通用移位器及一选择器,而此选择器是用以选择上述最终地址或上述通用移位器的一输出信号。
其它的系统、方法、特征及/或优点,依附图及详细描述的检视将或可能成为熟悉该项技艺者显而易知的事项。而所有此类修改的系统、方法、特征及/或优点均应包含在本发明中及申请的专利范围保护。
本发明的一些实施例会详细描述如下。然而,除了详细描述外,本发明还可以广泛地在其它的实施例施行,且本发明的范围不受限定,其以专利范围为准。并且,为提供更清楚的描述及更容易理解本发明,附图内各部分并没有依照其相对尺寸绘图,某些尺寸与其它相关尺度的比例已经被夸张;不相关的细节部分也未完全绘出,以求附图的简洁。
一管线结构包含一中央处理单元(central processing unit;CPU),用以在一程序中运转以执行每一机械码指令的一序列动作。在每一周期的开始,中央处理单元将程序计数器的值呈现在地址总线(未绘出)上,然后中央处理单元经由数据总线从主存储器(可能经由快取及/或管线)撷取指令到指令缓存器内。
请参照图1,为一中央处理单元内一管线结构的功能方块图。在此范例中,中央处理单元系执行6个阶段。在第一阶段105,中央处理单元是从计算机的另一部分撷取一指令。
在指令撷取阶段105执行的后,处理器则在阶段110将此指令译码以决定如何执行此指令。此指令的译码可能揭示此指令是呼叫一算数逻辑单元的功能(例如:加法、减法等),是执行一寻址功能或是其它类型的功能。译码阶段110亦决定此指令执行时所需的一些缓存器以及从缓存器组(未绘出)中存取该些缓存器。一但该些缓存器被确认,指令译码阶段110亦会从适当的缓存器(或随机存取内存(RAM)、高速缓存等)撷取数据以供执行阶段120使用。
一但指令被译码且缓存器被存取,执行阶段120即执行此指令,此表示执行阶段120会计算此指令的结果。这些结果包含一些地址的加载与储存以及算数逻辑单元所计算的值。如一非限制本发明范围的范例所示,如果指令呼叫加法,执行阶段120将执行两个指定值的相加。
一但指令被执行,处理器会在数据存取阶段125中存取数据以及在阶段130中将数据写回位于缓存器组内的一(些)适当缓存器。对于一加法功能,算数逻辑单元一般提供两操作数于两个不同缓存器内以执行此加法功能,然后写回阶段130将结果放进由此指令所指定的一缓存器内,此时中央处理单元会增加程序计数器以寻址下一指令以及重复上述的周期,当处理器被指示中断上述的周期时,此操作才停止。
请参照图2,为图1的微处理器的另一实施例的一描绘数据结构中元素存取的功能方块图。当计算机软件存取一数据结构中的元素时,其方法是在管线执行阶段利用一通用移位器。图2说明缓存器存取阶段115如何传递数组的索引210与基地址205至执行阶段120。执行阶段120计算偏移值215以及将此数据传回执行阶段120以计算最终地址。此方法一般需横跨两个频率周期。
请参照图3,为一实现图2部分管线结构的电路方块图。在电路300中,加法器310及通用移位器305为电性耦接至多任务器315,而此多任务器315是串联耦接至正反器模块320。正反器模块320的输出耦接至加法器310。对于熟悉此项技术人员而言,加法器310可以是一较大单元(例如:一算数逻辑单元)的部分。
在操作中,来自一数组的索引210(图2所示)经由移位器输入线335传递至通用移位器305。移位线340用以指示通用移位器305索引210将被位移的数量,而此被位移的索引(现为图2中的字节偏移值215)被传送至多任务器315,而此多任务器315亦接收一允许字节偏移值215通过正反器模块320的选择信号350。正反器模块320由回馈线325将字节偏移值送回加法器310的输入。基地址205经由路径330传递至加法器310。加法器310将基地址205(图2所示)与字节偏移值215(图2所示)相加以求得一最终地址。此最终地址经由最终地址线345传递至多任务器315。在一非限制本发明的范例中,因应选择信号350的指示,多任务器315允许此最终地址通过,并通过正反器模块320至管线的下一阶段。
如上述所讨论,除了图3所图解的简单电路外,此类实施例的问题在于,因为信号是传递回加法器310内,因此此程序横跨两个频率周期;位移功能消耗第一频率周期,而加法功能消耗第二频率周期。
请参照图4,其为一用以执行以上所述的相同任务的另一实施例。本结构是使用通用移位器305串联加法器310。对照图3的电路300的两个频率周期,电路400可在单一频率周期内执行以上所描述的操作。
如图4所示,索引210经由移位器输入线335传递至通用移位器305。如上述所讨论,移位线340是指示索引210位移的数量。然而在本结构中,字节偏移值经由传递路径405直接传递至加法器310,而加法器310将字节偏移值与基地址(基地址经由基地址传递路径330传递至加法器310)相加。最终地址经由路径410传递至管线的下一阶段。
当此结构在单一频率周期内执行所要求的动作时,闸级延迟可能是一问题。一般而言,一个32位加法器具有12个闸级延迟,而一个32位通用移位器(其具有逻辑移位、算数移位以及旋转等功能)具有7至8个闸级延迟。随着越多的20个闸级延迟(使用32位字组),频率是以一低速率在单一频率周期内执行此操作。
请参照图5,其为图3与图4的通用移位器305的功能方块图。本类型的移位器由于其可逻辑移位、算数移位以及旋转而广泛地被使用于现今的处理器内。此移位器305具有32位输入335以及32位输出405。移位器选择线340可以是一5位输入,其允许最多至32位的移位及旋转。
请参照图6,为通用移位器305内可能包含的电路600的功能方块图。如图6所示,电路600具有32个标示a31至a0的输入(335);32个标示r31至r0的输出(405);以及5个标示ctrl4至ctrl0的移位器选择输入(340)。
本结构首先传送每一输入至对应阶段0的输入缓冲区块605(第一列的方块),然后每一输入垂直向下与斜对向下被转传至阶段1的多任务器610。每一阶段1的多任务器610直接接收其上的输入以及较低一比特位置的输入。如一非限制本发明的范例,多任务器610a接收输入a1(其上的输入)以及输入a0(较低一比特位置的输入)。阶段1的多任务器610接收ctrl0当成其选择输入。
然后阶段1的多任务器610的输出被垂直向下输入以及跨越两个比特位置斜对向下输入。此关系着阶段2的多任务器615从其上多任务器接收输入以及从较低两比特位置的多任务器接收输入。如一非限制本发明的范例,多任务器615b是从多任务器610c(615b的正上方)及多任务器610a(较低两比特位置)接收输入。阶段2的多任务器是接收ctrl1当成其选择输入。阶段3的多任务器620除了其第二输入较低四比特位置之外,其比照(mirror)阶段1及阶段2的输出/输入结构。阶段4的多任务器(630)较低八比特位置,而阶段5的多任务器(635)较低十六比特位置。
对于熟悉此项技术人员而言,因为上述结构类型,一些阶段将包含具有一输入与一选择输入的多任务器(例如:610z、615z以及615y),而在此些状态下,多任务器可能被移除。
一般而言,当存取一数据结构时,索引210(图2)是逻辑左移1至3比特位置,此意味着通用移位器305在处理器内对许多的操作并非是最适合。图7是图解一具有4个输入735与4个输出710的分割移位器705。两位移位器选择线740允许移位器位移4位索引1、2或3个比特位置,如同往常存取一数据结构时使用。
图8是图解图7的分割移位器705内一般所包含的电路系统。当图6的通用移位器305使用五阶段的多任务器610操作时,分割移位器705是执行两个阶段。再者,分割移位器705具有逻辑左移的能力,而此更减少通用移位器305的闸级延迟。如图8所示,输入735标示a3~a0,输出710标示r3~r0,以及选择线740标示ctrl1~ctrl0。
阶段0缓冲区块805除了本列包含四个此类型的区块外,相似图6的缓冲区块605。同理,阶段1的多任务器810包含4个多任务器(610z、610a、610b及610c),并且阶段2的多任务器815包含2个多任务器(615a及615b)。
图9是图解说明分割移位器705内的电路系统的另一范例。此功能方块图是图解说明此特殊移位器705的操作。如图8,输入线735被标示a0~a3,输出线710被标示r0~r3,以及移位器选择线740被标示ctrl0~ctrl1。多任务器610a、610b及610c接收输入a0~a3。本附图是用以更清楚说明图8的电路系统,同理,亦可对照于图6与图11。
在本电路的阶段1,输入a0直接耦接至输出r0与多任务器610a的输入。多任务器610a亦耦接至输入a1与选择线ctrl0。输入a1亦与输入a2及选择线ctrl0耦接至多任务器610b。多任务器610c与选择线ctrl0耦接至输入a2及a3。
在阶段2,多任务器615a接收多任务器610b的输出及a0,多任务器615a接收ctrl1当成其选择线,并且输出至r2。多任务器615b接收多任务器610c的输出与多任务器610a的输出,多任务器615b接收ctrl1当成输入,并且输出至r3。
图10是图解一分割移位器905的方块图,类似图7的分割移位器705。然而,分割移位器905具有32个输入、32个输出以及1个两位选择线。此两位选择线允许一32位索引输入此移位器并且逻辑左移1、2或3个比特位置。
图11是图10的分割移位器905内所展现电路系统的功能方块图。类似图6的通用移位器305,此移位器905具有32个输入335以及32个输出405。然而,类似分割移位器705,此移位器具有两控制线940(标示ctrl0及ctrl1)以及两阶段的多任务器610及615。当分割移位器905内比分割移位器705内具有更多的多任务器时,由于移位器905与移位器705具有两个阶段,其等以近似相同速度执行且在一阶段的多任务器同时操作,因此执行影响可忽略。
图12是一微处理器管线结构的功能方块图,此结构是用以克服图2的微处理器结构的缺失。在类似图1与图2的管线结构,本附图说明如何将索引210与基地址205输入至执行阶段120。然后使执行阶段120能够在单一频率周期内直接传递最终地址1205至数据存取阶段125。
图13是在单一频率周期内传递最终地址(如图12所示)的电路1300的功能方块图。此电路1300包含加法器310、分割移位器905以及全移位器305,并亦包含2x1多任务器1320以及正反器模块320与1305。
在操作中,索引210是以选择线740控制位移数目传递至分割移位器905,然后字节偏移215通过正反器1305传递至加法器310。而基地址205亦由基地址线330耦接至加法器310。加法器310将基地址205与字节偏移215相加并输出结果(即最终地址)至多任务器1320,而多任务器1320亦从通用移位器305接收输入,并且可能输出最终地址经由正反器模块320至管线的下一阶段。
如一非限制本发明的范例,一当前的指令可能需要存取一数据结构,依此电路1300被使用。索引210经由移位器输入线335输入至分割移位器905,而选择线740指示位移索引的数目。分割移位器905输出基底偏移215至正反器1305,而此正反器1305储存此信号并将其输出至加法器310,加法器310亦经由路径330接收基地址205,并将此两个值相加且将相加的和(最终地址)传递至多任务器1320。依多任务器1320的选择输入,多任务器1320输出最终地址至正反器320,而此正反器320储存此信号并传递此信号至管线的下一阶段。
经由类似上述执行所知的优点是由于使用分割移位器905,因而具有较少闸级延迟,由此允许较快的频率速度,再者,由串接分割移位器905与加法器310,因此此操作仅花费单一频率周期。
图14是图13的电路的另一实施电路1400的功能方块图。图14的电路1400与图13的电路1300的不同处在于,电路1400亦包含多任务器1420、回馈线1415以及反向器1410。此结构的目的在于当索引210逻辑左移1、2或3位时,考虑较快的操作,亦考虑到通用移位器的性能。
在操作中,索引210经由移位器输入线335传递至分割移位器905以及通用移位器305。如果索引210将被位移到3个比特位置时,则分割移位器905将索引210位移相当的数目,并且输出字节偏移215信号。而字节偏移215通过正反器模块1305a传递至多任务器1420。
如一非限制本发明的范例,如果索引210被位移到3个比特位置时,多任务器选择线1425传递一逻辑“0”至反向器1410,而反向器1410送出一逻辑“1”至多任务器1420,由此使得字节偏移215可传递至加法器310。然后字节偏移215与基地址205在加法器310内相加以产生一最终地址1250。最终地址1250传递至多任务器1320,而由于多任务器选择线1425送出一逻辑“0”给多任务器1320选择输入,因此在此非限制本发明的范例中,多任务器1320允许最终地址1250通过。然后最终地址1250被传递给管线的下一阶段。
另一方面,如果索引210将位移大于3个比特位置的数目时(或者是在其它方面改变通用移位器305执行的方法),多任务器选择线1425将传递一逻辑“1”给反向器1410与多任务器1320,而此多任务器1320将允许通用移位器305的输出传递给多任务器1320。然后多任务器1320与正反器模块320的输出由回馈线1415传递给多任务器1420。由于多任务器选择线1425的信号在反向器1410内被反向,因此多任务器1420允许上述的输出传递至加法器310。然后加法器310将字节偏移与基地址相加,并且将输出传递至多任务器1320。由于在频率周期2之前,逻辑“0”已传递给多任务器1320的选择输入而使得多任务器选择线已改变成逻辑“0”,因此多任务器1320将允许此信号(加法器310的输出)被传递给正反器320,而其结果接着被传送给管线的下一阶段。
如熟悉此项技术人员可轻易理解,在所讨论附图中的图解说明仅用以协助说明本发明的实施,该些附图并非欲用以限制本发明的实施方式。例如:附图以32位组件做图解说明,然而,此仅为本发明的一实施例,而具有不同字符长度的组件亦应被包含于本发明。并且,具体讨论的电路组件可能轻易地被替换成未讨论的其它组件以执行相似的操作。注意相似的一情况,对照于讨论附图中的逻辑状态,其等仅是非限制本发明的范例中可能使用的信号,对于熟悉此项技术人员者而言,这些信号可能被修改以达成相类似的结果。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它为脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在申请的专利范围。
Claims (11)
1.一种存取数据结构元素的装置,包含:
一第一移位器,用以接收一第一位移输入及一第一位移数量并传递一位移值;
一第二移位器,用以接收一第二位移输入及一第二位移数量并传递一基底偏移值;
一加法器,耦接该第二移位器,该加法器用以接收该基底偏移值及一基地址并传递一最终地址;以及
一多任务器,在存取一数据结构的情况下会选取该最终地址,在非存取一数据结构的情况下会选取该位移值。
2.如权利要求1所述的存取数据结构元素的装置,其特征在于,其中该第一移位器为一通用移位器。
3.如权利要求1所述的存取数据结构元素的装置,其特征在于,其中该第二移位器还用以逻辑左移。
4.如权利要求1所述的存取数据结构元素的装置,其特征在于,其中该第二移位器较该第一移位器运作于较少的闸级延迟。
5.如权利要求1所述的存取数据结构元素的装置,其特征在于,包含至少一正反器用以保持一信号至少一频率周期。
6.一种存取数据结构元素的方法,包含:
接收具有至少一索引值的一数组;
接收一基地址;
利用一分割移位器位移该索引值,其中该分割移位器用以执行逻辑左移并传递一基底偏移值;
由相加该基底偏移值与该基地址产生一最终地址;以及
在存取一数据结构时,从一加法器选取该最终地址,以及在非存取一数据结构时,从一通用移位器选取一输出信号。
7.如权利要求6所述的存取数据结构元素的方法,其特征在于,其中该分割移位器操作较该通用移位器快。
8.如权利要求6所述的存取数据结构元素的方法,其特征在于,包含在存取一数据结构时,从该分割移位器选取该基底偏移值,以及在非存取一数据结构时,从该通用移位器选取一输出信号。
9.一种存取数据结构元素的系统,包含:
具有至少一索引值的一数组;
一基地址;
一分割移位器,该分割移位器由位移该索引值产生一字节地址;以及
一加法器,该加法器由相加该基地址与该字节地址产生-最终地址。
10.如权利要求9所述的存取数据结构元素的系统,其特征在于,其中该分割移位器较该通用移位器运作于较少的闸级延迟。
11.如权利要求9所述的存取数据结构元素的系统,其特征在于,包含一选择器用以在存取一数据结构时,选取该最终地址,以及在非存取一数据结构时,从该通用移位器选取一输出信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/983,548 US7254670B2 (en) | 2004-11-08 | 2004-11-08 | System, method, and apparatus for realizing quicker access of an element in a data structure |
US10/983,548 | 2004-11-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1749952A CN1749952A (zh) | 2006-03-22 |
CN100390726C true CN100390726C (zh) | 2008-05-28 |
Family
ID=36317702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101135223A Active CN100390726C (zh) | 2004-11-08 | 2005-10-17 | 实现快速存取数据结构元素的系统、方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7254670B2 (zh) |
CN (1) | CN100390726C (zh) |
TW (1) | TWI293730B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936317B2 (en) * | 2019-05-24 | 2021-03-02 | Texas Instruments Incorporated | Streaming address generation |
CN113726661B (zh) * | 2021-08-27 | 2022-10-18 | 西安微电子技术研究所 | 一种高性能低功耗的路由哈希器及其控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560691B2 (en) * | 2001-04-19 | 2003-05-06 | Faraday Technology Corp. | Modulus address generator and method for determining a modulus address |
US6567898B1 (en) * | 1999-07-07 | 2003-05-20 | Fujitsu Limited | Memory controller and an information processing apparatus with improved efficiency |
-
2004
- 2004-11-08 US US10/983,548 patent/US7254670B2/en active Active
-
2005
- 2005-09-27 TW TW094133455A patent/TWI293730B/zh active
- 2005-10-17 CN CNB2005101135223A patent/CN100390726C/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567898B1 (en) * | 1999-07-07 | 2003-05-20 | Fujitsu Limited | Memory controller and an information processing apparatus with improved efficiency |
US6560691B2 (en) * | 2001-04-19 | 2003-05-06 | Faraday Technology Corp. | Modulus address generator and method for determining a modulus address |
Also Published As
Publication number | Publication date |
---|---|
TWI293730B (en) | 2008-02-21 |
TW200615759A (en) | 2006-05-16 |
US7254670B2 (en) | 2007-08-07 |
US20060101228A1 (en) | 2006-05-11 |
CN1749952A (zh) | 2006-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4674032A (en) | High-performance pipelined stack with over-write protection | |
AU618142B2 (en) | Tightly coupled multiprocessor instruction synchronization | |
US4600986A (en) | Pipelined split stack with high performance interleaved decode | |
US7925864B2 (en) | Method and apparatus for binding shadow registers to vectored interrupts | |
US4016545A (en) | Plural memory controller apparatus | |
US7143271B2 (en) | Automatic register backup/restore system and method | |
CN112379930A (zh) | 产生并执行控制流 | |
JPS5834862B2 (ja) | アレイ・プロセツサ | |
US4541045A (en) | Microprocessor architecture employing efficient operand and instruction addressing | |
WO1999028817A2 (en) | An instruction decoder | |
US5265258A (en) | Partial-sized priority encoder circuit having look-ahead capability | |
US3790960A (en) | Right and left shifter and method in a data processing system | |
CN114996204B (zh) | 一种片上系统可配置装置 | |
CN100390726C (zh) | 实现快速存取数据结构元素的系统、方法及装置 | |
US4837688A (en) | Multi-channel shared resource processor | |
EP1652079A2 (en) | Microcontroller with an interrupt structure having programmable priority levels with each priority level associated with a different register set | |
EP0363174A2 (en) | Branch on bit processing | |
CN100356318C (zh) | 用于指令对准的方法和设备 | |
CN100444107C (zh) | 优化的处理器和指令对准 | |
CN102955683A (zh) | 时钟数据恢复电路和时钟数据恢复方法 | |
CN118311916B (zh) | 一种可编程逻辑系统和微处理器 | |
US6832309B2 (en) | Generation of modified commands repeatedly from feedback or base command | |
US12019561B2 (en) | Pseudo-first in, first out (FIFO) tag line replacement | |
CN101615114A (zh) | 完成两次乘法两次加法两次位移的微处理器实现方法 | |
JPH0256029A (ja) | 汎用レジスタ切換方式 |
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 |