改善的流水线数字信号处理器的制作方法

文档序号:6569450阅读:207来源:国知局
专利名称:改善的流水线数字信号处理器的制作方法
技术领域
本发明涉及用于避免计算单元和地址单元之间的流水线停顿的 流水线数字信号处理器。
背景技术
随着计算机速度从33 mHz增加到1.2GHz及以上,计算机操作 不能在一个周期中完成。因此,流水线技术被采用以更有效地利用较 高的处理器性能并改善其吞吐率。目前深流水线使用多达25级甚至 更多的级。 一般而言,在流水线计算系统中,存在若干同时工作的并 行构件块,其中每个块关注整个处理的不同部分。例如,存在计算单 元、地址单元以及序列发生器或控制电路,该计算单元进行计算,该 地址单元包括根据所选的地址模式在存储器中获取和存储数据的数 据地址发生器(DAG ),且该序列发生器或控制电路编码和分布指令。 DAG是可以寻址存储器的唯一组件。因而在深流水线系统中,如果 指令依赖于另一指令的结果,将发生流水线停顿,其中流水线将停止, 在重新开始工作之前等待令人不愉快的指令完成操作。例如,如果在 计算之后,DAG需要计算单元的输出以用于下一数据获取,该输出 不能被直接发送到DAG以被调节来用于数据获取在它可以被DAG 处理以完成下一数据获取和计算之前,它必须通过流水线传播。这是 因为只有DAG可以访问存储器,可以将计算结果转换成定位所需数 据的地址指针。在多任务通用计算机中,这种停顿可能并不关键,但 是在诸如用在移动电话、数码相机中的实时计算机系统中,这些停顿 是有问题
发明内容
因此本发明的一个目的是提供一种用于最小化计算单元和地址 单元之间的流水线停顿的改善的流水线数字信号处理器。
本发明的另 一 目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的改善的流水线数字信号处理器,该处理器采用局 部可重构填充和溢出随机存取存储器阵列。
本发明的另 一 目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的具有增强的性能效率的改善的流水线数字信号 处理器。
本发明的另一目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的改善的流水线数字信号处理器,该处理器可以并 行和串行地填充和溢出。
本发明的另一目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的改善的流水线数字信号处理器,其中当 一组函数 中的一个或多个所存储的值更新时,局部可重构填充和溢出随机存取 存储器阵列选择性地、有条件地溢出。
本发明的另一目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的改善的流水线数字信号处理器,该处理器采用了
在多个局部可重构填充和溢出随机存取存储器阵列中共享的输入和 输出寄存器,用于在每个局部可重构填充和溢出随机存取存储器阵列 中以一对一的方式将结果映射到函数,或者用于将结果输入映射到一 个合成的输出函数,所述合成输出函数由所述单局部可重构填充和溢 出随机存取存储器阵列中每一个呈现的函数部分构成。
本发明的另 一 目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的改善的流水线数字信号处理器,其中局部可重构 填充和溢出随机存取存储器阵列足够小以适合于常规计算单元并在 一个周期内可访问,但是又足够大以支持计算单元内部的大多数应 用。
本发明的另 一 目的是提供这种用于最小化计算单元和地址单元 之间的流水线停顿的改善的流水线数字信号处理器,该处理器通过将计算单元结果直接映射到存储在局部可重构填充和溢出随机存取存 储器阵列中的相关函数来避免流水线停顿的不利结果。
本发明源于这种实现使用响应来自算法的指令计算结果的一个 或多个计算单元可以实现用于最小化计算单元和地址单元之间的流 水线停顿的新的改善的流水线数字信号处理器,每个计算单元包括局 部可重构填充和溢出随机存取存储器阵列,该局部可重构填充和溢出 随机存取存储器阵列存储与算法的预定指令组的计算结果相关的预 定函数组,以在该计算单元内提供计算结果到相关函数的直接映射。
然而,在其它实施例中,本发明不需要实现所有的这些目的且本 发明的权利要求书并不限制于能够实现这些目的的结构或方法。
本发明的特征在于一种处理器,该处理器包含用于减少计算单元 和地址单元之间的流水线停顿的装置,该处理器包括至少一个计算 单元,用于响应算法的指令来计算结果。每个计算单元包括局部随机 存取存储器阵列,用于存储与算法的预定指令组的计算结果相关的预 定函数组,以在计算单元内提供计算结果到相关函数的直接映射。
在一个优选实施例中,可以具有被计算单元共享的寄存器堆。所 有的计算单元局部随机存取存储器阵列可以并行地填充来自于寄存
器堆中的相同值。局部随机存取存储器阵列可以并行地填充来自寄存 器堆的不同值。局部随机存取存储器阵列可以并行地溢出到寄存器 堆。计算电路可以包括状态器件,在存储在局部随机存取存储器阵列 中的函数值已被更新时进行指示。该状态器件可用于判定是否应当溢 出和保存局部随机存取存储器阵列中的函数值。计算结果到相关函数 的映射可以与先前的计算结果映射无关。计算结果到相关函数的映射 在各计算单元之间是相互独立的。来自寄存器堆的寄存器可以用作多 个计算单元中的随机存取存储器阵列的索引。多个计算单元中的随机 存取存储器阵列的输出可以组合到寄存器堆的单个寄存器中。不同于 寄存器堆的寄存器可以用作每个计算单元中的随机存取存储器阵列 的索引。每个计算单元中的每个随机存取存储器阵列的输出可以放置 于寄存器堆的不同寄存器中。局部随机存取存储器阵列可以包括查找表。可以具有用于在局部随机存取存储器阵列中存储预定函数值组的 控制单元,以在计算单元内提供计算结果到相关函数的直接映射。计 算单元可以包括与每个局部随机存取存储器阵列相关的表基址寄存 器,用于允许将相关的数据组存储在每个局部可重构填充和溢出随机 存取存储器阵列中独立的地址处。
本发明的特征还在于一种流水线信号处理器,用于减少计算单 元和地址单元之间的流水线停顿。具有至少一个计算单元,用于响应 算法的指令来计算结果。每个计算单元包括局部可重构填充和溢出随 机存取存储器阵列,用于存储与算法的预定指令组的计算结果相关的 预定函数组,以在计算单元内提供计算结果到相关函数的直接映射。
在优选实施例中,可以具有被计算单元共享的寄存器堆。寄存器 堆可以包括用于在所有的计算单元局部可重构填充和溢出随机存取 存储器阵列上并行地填充相同值的输入寄存器堆。寄存器堆可以包括 用于在计算单元局部可重构填充和溢出随机存取存储器阵列其中每 一个中串行地填充不同值的输入寄存器。寄存器堆可以包括用于从局 部可重构填充和溢出随机存取存储器阵列并行地溢出所存储的值的 输出寄存器。寄存器堆可以包括用于从局部可重构填充和溢出随机存 取存储器阵列串行地溢出所存储的值的输出寄存器。计算单元可以包 括状态器件,当局部可重构填充和溢出随机存取存储器阵列的至少一 分区已被更新时,允许从该分区溢出值。计算结果到相关函数的映射 可以与先前计算的结果映射无关。寄存器堆可以包括被局部可重构填 充和溢出随机存取存储器阵列共享的输入寄存器和被局部可重构填 充和溢出随机存取存储器阵列共享的输出寄存器。输入寄存器可以为 每个局部可重构填充和溢出随机存取存储器阵列接收不同计算结果 且输出寄存器可以呈现来自每个局部可重构填充和溢出随机存取存 储器阵列的不同函数。输入寄存器可以为每个局部可重构填充和溢出 随机存取存储器阵列接收相同的计算结果,且输出寄存器堆可以呈现 单一的函数,该单一函数由局部可重构填充和溢出随机存取存储器阵 列其中每一个呈现的函数部分构成。局部随机存取存储器阵列可以包括查找表。可以具有用于在局部可重构填充和溢出随机存取存储器阵 列中存储与算法的预定指令组的计算结果相关的预定函数组的控制
单元,以在计算单元内提供计算结果到相关函数的直接映射。
本发明的特征还在于一种用于减小处理器中的计算单元和地址
单元之间的流水线停顿的方法,包括响应于算法的指令,在计算单 元中计算结果。在计算单元中的局部随才几存取存储器阵列中存储与算 法的预定指令组的计算结果相关的预定函数组,以在计算单元内提供 计算结果到相关函数的直接映射。
在优选实施例中,该处理器可以包括被计算单元共享的寄存器 堆。该方法可以包括向所有计算单元局部随机存取存储器阵列并行地 填充来自寄存器堆的相同值。该方法可以包括向局部随机存取存储器 阵列并行地填充来自寄存器堆的不同值。该方法可以包括并行地溢出 局部随机存取存储器阵列到寄存器堆。该方法还可以包括当随机存取 存储器阵列的一个分区中存储的一个或多个值已被更新时在计算电 路的状态器件中进行指示。该方法还可以包括在该状态器件中判定是 否溢出和保存随机存取存储器阵列中的值。该方法还可以包括与先前 的计算结果映射无关地将计算结果映射到相关函数。该方法还可以包 括在各计算单元之间相互独立地将计算结果映射到相关函数。来自寄
存器堆的寄存器可以用作多个计算单元中随机存取存储器阵列的索 引。该方法还可以包括将多个计算单元中的随机存取存储器阵列的输 出组合到寄存器堆中的单个寄存器中。该方法还可以包括使用不同于 寄存器堆的寄存器作为每个计算单元中的随机存取存储器阵列的索
引。该方法还可以包括将每个计算单元中的每个随机存取存储器阵列 的输出放置在寄存器堆的不同寄存器中。局部随机存取存储器阵列可
以包括查找表';该方法还可以包括在局部随机存取存储器中存储算法
的预定指令组,以在计算单元内提供计算结果到相关函数的直接映 射。使用与计算单元中的每个局部随机存取存储器阵列相关的表基址 寄存器,相关的数据组可以存储在每个局部可重构填充和溢出随机存 取存储器阵列中独立的地址。


本领域技术人员可以从优选实施例的下述描述和附图想到其它
目的、特征和优点,附图中
图1是具有外部存储器和存储器总线的现有技术数字信号处理 器(DSP)的简化框图2是示意性图表,示出了在DSP中执行指令获取、数据地址 产生、数据获取、计算以及提交操作所需的多周期步骤;
图3是4个计算单元的示意性图示,该4个计算单元包括;f艮据本 发明被实施为查找表(LUT)的局部可重构填充和溢出随机存取存储 器阵列,详细地示出了其中的一个;
图4是通用算法及其组成应用的说明,所述组成应用中每一个都
包括可被本发明执行的一个或多个特定算法。
图5是根据本发明的计算单元的示意性图示,其中通过在计算单 元内将计算结果直接映射到所选函数来最小化流水线停顿。
图6是4个局部可重构填充和溢出随机存取存储器阵列的示意性 图示,具有实现了数据加密标准(Des/3Des)加密的共享寄存器堆;
图7是4个局部可重构填充和溢出随机存取存储器阵列的示意性 图示,其中共享寄存器堆实现了可变长解码(VLD);
图8A示出了很多阵列中的几个,根据本发明,4个局部可重构 填充和溢出随机存取存储器阵列的数据结构可以布置在所述阵列中;
图8B示出了布置4个局部可重构填充和溢出随机存取存储器阵 列以获得512个16位值的另 一种方法;
图9是示出了用于符号a, b, c...的VLD值的图表。 图10是用于检查n位VLD输入流的位FIFO寄存器的图示; 图ll是示出了 VLD解码操作中的几个步骤的图示。 图12是表格,示出了在MPEG-2中,根据最小化流水线停顿的本 发明,在局部可重构填充和溢出随机存取存储器阵列中使用它自己的 256个8位值,可以在计算单元内实现超过97%的VLD操作。图13是仅384个8位值的4个局部可重构填充和溢出随机存取 存储器阵列的图示,它可用于高级加密标准(AES)加密的Galios字 段乘法或Reed-Solomon前向纠错(FEC )。
图14-17是根据本发明的局部可重构填充和溢出随机存取存储器 阵列中的并行和串行填充和溢出操作的示意性说明。
图18是根据本发明的局部可重构填充和溢出随机存取存储器阵 列中的条件选择溢出的示意性说明;以及
图19是本发明的方法的简化的流程图。
具体实施例方式
除了下述优选实施例之外,本发明能够实现其它实施例且本发明 能够以各种方式实践或实施。因而,应当理解,在其应用中本发明并 不被限制为下面的说明中提出或附图中示出的结构细节和组件布置。 如果此处仅描述一个实施例,所附权利要求也不限于该实施例。而且, 除非有表明特定排除、限制或放弃的清晰且令人信服的证据,所附权 利要求不被限制性地阅读。
图1中示出了一种数字信号处理器10,其包括具有一个或多个 数字地址发生器14、 16的地址单元12;诸如程序序列发生器18的控 制单元以及一个或多个计算单元20,每个计算单元包含多个电路,如 算术逻辑单元22、乘法/累加器24、移位器26。典型地,在数字信号 处理器中存在2个、4个或更多个计算单元。数字信号处理器通过存 储器总线28与一个或多个存储器相连,所述一个或多个存储器例如 是包括程序存储器32和数据存储器34的1级(Ll)存储器30,或 附加存储器36。存储器30可以是典型地极快且十分昂贵的一级存储 器。存储器36可以是较便宜且较慢的3级存储器。当DSP 10操作在 lGHz及以上时,操作的周期如此地快,以致于地址单元和计算单元 需要多于一个周期来完成它们的操作。为改善DSP IO的吞吐率以及 由此改善它的性能,典型地使用深流水线。
在流水线操作中,当对于所有处理器并行构件块而言,先前的指令和后续的指令的结果之间没有依存关系时,保持了流水线效率。然 而,如果存在这种依存关系,则会发生流水线停顿,其中流水线将在 继续工作之前停止并等待令人不快的指令完成。例如,如果计算结果
不能被直接存储而是必须用于产生可以在存储器中发现该计算结果
的相关函数的地址时,在计算单元结果和打断流水线平滑操作的DAG 之间存在依存关系,将详细阐述一个示例。
假设计算单元计算作为一个角度a的结果,不过它是在后续操作
执行中使用的该角度a的函数,sinea(a的正弦函数)。于是计算单元 必须发送计算结果到地址单元12,其中DAG 14或16产生合适的地 址来从存储器30或36获取该角度的正弦函数并将它返回和提交到计 算单元。这种流水线中的停止或打断浪费了时间。DSP IO的一个特征 在于地址单元12且仅地址单元12可以寻址存储器30和36。因而, 只要计算单元需要来自Ll存储器30或L3存储器36的信息来进行操 作,由于计算单元结果在比装栽DAG 12寄存器靠后的级有效这一事 实,流水线操作变停顿。
参考图2的表格可以更好地理解这一点,从图2可以看出,例如, 指令获取花费了 4个机器周期IF1、 IF2、 IF3、 IF4。数字地址产生需 要两个机器周期DAG1 、DAG2,且数据获取还需要4个机器周期DF1 、 DF2、 DF3、 DF4。计算操作需要3个周期CF1、 CF2、 CF3以获得计 算结果Cl。因而如果下一指令的DAG需要来自于级Cl的计算单元 结果,该结果必须沿流水线"向上游(swim up )"且在装栽DAG寄存 器之前等待级D被执行。这是流水线停顿的一个图示。
根据本发明,参考图3,在根据本发明的DSP 10a中,每个计算 单元20a、 20b、 20c、 20d设置有局部可重构填充和溢出随机存取存 储器阵列,例如查找表(LUT》50a。除其它器件外,计算单元28典 型地可以包括乘法器52、多个选择电路54和56、诸如用于Galios 字段操作的多项式乘法器58、桶式移位器60、算术逻辑单元62、累 加器64以及多路复用器66。而且,每个计算单元包括寄存器堆68。 典型地,当存在多于一个计算单元时,例如,如图3所示的计算单元20a、 20b、 20c和20d,它们可以全部共享相同的寄存器堆68。每个 计算单元还具有它自己的局部可重构填充和溢出随机存取存储器阵
列LUT50a、 50b、 50c和50d。这些局部可重构填充和溢出随机存取 存储器阵列足够小以适合于常规计算单元且在一个周期可访问,而它 们又足够大以支持计算单元内部的大多数应用而不必转入外部存储 器和引起流水线停顿。
DSP10a可用于实现手持机,参考图4,在这种情况下,整个通 用手持机算法可以包括多个应用,每个应用可以包括一个或多个特定 算法。例如,图4中所示的手持机算法可以包括调制解调器应用,随 后是例如可以包括高级加密标准(AES)的加密应用,随后是可以使 用可变长度解码(VLD)的视频压缩设备,如MPEG2、 MPEG4或 WMV。还可以存在图# 应用和语音应用。
在图5中以示意的形式示出了在实施图4所示的这种通用算法时 本发明的功效。可以看出,寄存器堆68a中的值移动经过緩冲级70、 乘法阵列72、另一个流水线緩冲级74、选择和压缩电路76、又另一 个流水线緩冲级78、加法器80、多路复用和选择电路82且最后移到 累加器84,从该累加器84它可以被装载回寄存器堆68a。如果存储 在寄存器堆68a中的累加器84的输出的形式适于后续指令的执行, 则计算单元不需要访问外部存储器。但是假设在CF使用乘法器86 和88且在CF2使用乘法器90和92进行乘法运算,并进一步假设乘 法器90和92的输出需要使用LUT映射以用于后续指令执行。于是 不得不进行外部获取,由于计算单元结果在比装载数据地址发生器寄 存器靠后的级有效这一事实,这将导致流水线停顿。然而,根据本发 明,乘法器90和92的输出可以在周期CF3中在计算单元内被直接引 入到LUT 94,其中存储的函数与乘法器卯和92的计算结果相关。 这允许结果96以合适的形式呈现在累加器84中,使得当驻留在寄存 器堆68a中时,它适于后续指令的执行,由此节省了外部获取所需要 的所有外部周期时间,且避免了流水线停顿。
在图6中可以看出本发明的灵活性,其中包括输入寄存器100和输出寄存器102的寄存器堆68b被多个(在此例中为4个)局部可重 构填充和溢出随才几存取存储器阵列50a、 50b、 50c和50d共享,所述 可重构填充和溢出随机存取存储器阵列50a、 50b、 50c和50d中每一 个包括至少64个8位值。在DES加密应用中这种布置可以接收4个 不同的6位计算值bo、 b!、 b2、 b3并在输出寄存器102提供4个不同 的值SboxO、 Sboxl、 Sbox2和Sbox3。
备选地,在通信类型的应用中,参考图7,相同的计算结果boa 可以被放置在输入寄存器100c的每个部分106、 108、 110和112中, 使得它们识别一个值的4个部分。例如,ct的正弦的4部分。每个部 分处于输出寄存器102c的部分114、 116、 118和120中,且是8位 的,使得当被组合时,它们为该正弦a产生32位准确值。每个局部 可重构填充和溢出随机存取存储器阵列50a、 50b、 50c、 50d可以包 含256个8位值,且可以以多种不同方式布置它们的数据结构。例如, 参考图8A,局部可重构填充和溢出随机存取存储器阵列50a可以提 供8个8位值130,或者每个局部可重构填充和溢出随机存取存储器 阵列可以在132、 134、 136、 138提供用于DES加密的不同s-box值。 数据可以跨越所有的局部可重构填充和溢出随机存取存储器阵列构 造,如140,提供诸如用于VLD解码的32位值。或者可以仅使用(142) 两个局部可重构填充和溢出随机存取存储器阵列50a、 50b,从而以 16位精度存取该正弦值。可以看出,数据结构是相当容易的。而且不 必受限于如图8A中所示的并排布置可以是如图8B所示的2x2布 置以提供高达16位跨度的512个位置。尽管在图8A中,S-box值组 132、 134、 136、 138在每个存储阵列LUT 50 a-d中存储在相同的位 置'63,,这不必是本发明的限制。通过使用每个阵列LUT 50a-d添加 表基址寄存器,它们可以存储在每个阵列中任何不同的可用位置。例 如,S-box 2、 3和4, 64条目LUT 134、 136、 138可以在位置"0"开 始存储,或者S-box2可以在位置"O,,开始存储,而S-box 3和4, 136, 138可以在位置"191,,开始存储。这样,相关的数据组例如S-boxl-4, 1/GF(xl-4)不需要在所有的存储器阵列50a-d中被存储在相同位置,而是可以存储在每个阵列中独立的地址。
如参考图9-12所解释的,参考可变长解码(,VLD)应用说明只 有250个8位值的局部可重构填充和溢出随机存取存储器阵列可以对 流水线停顿的避免产生重大影响这一事实。在这种应用中,可变长码 利用以下事实某一码值将比其它码值更频繁地出现。如果频繁出现 的值被分配以短长度码字且使用较长的码字传送不常出现的值,将获 得有效的比特率减少。作为模拟,如果传送英语文本,使用短码字发 送"a"、 "e"、 "i",而使用长码字发送"z"。例如,使用图9中的图示 示出的可变长码对a, b, c, d, e, f...进行编码。符号i由0代表, 符号L由01代表,符号£_由100代表,符号i由101代表,符号£ 由110代表,符号L由1110代表,符号由11110代表,依此类推。 因而,参考图10,当位FIFO寄存器140接收到VLD输入位流时, 参考图11,在150,进行n位检查,其中n等于8。被检查的8位字 段用作进入计算单元的256的条目VLDLUT的地址。LUT条目可以 被标记为识别的符号152 (MSB被设置为"1"),或者它可标记识别 符号166需要更多的位(MSB被设置为"0")。在符号被识别的情况, LUT条目保存解码的符号的值156以及从位流移除(提取)多少位 154以开始下一符号的检查。在需要更多位的情况下(166), LUT条目 保存完成识别168需要多少附加位流位的指示以及指向负责识别比8 位长的所有符号的另一L1-LUT的指针176。当LUT条目被标记为识 别的符号时(170),该过程结束。注意在图11的前两个示例中,局部 可童构填充和溢出随机存取存储器阵列在内部满足所有的需求,不需 要外部存储器且因而避免了流水线停顿。然而,在第三示例中,局部 可重构填充和溢出随机存取存储器阵列不能满足需要且必须考虑外 部存储器,导致流水线停顿。
然而,所关注的例子中,本发明是非常成功的。例如,如图12 所示,在最大码字尺寸为16位的MPEG-2解码处理中,可变长码字 识别处理可以被分成三个检查组(8, 5, 3),其中第一个是具有8 位或更少位的所有最可能码字的组(经常出现的符号)。第二个是具
17有少于12位且大于8位的所有码字的组,且最后一个是多于12位的 所有的其它不常出现的码字的组。局部可重构填充和溢出随机存取存 储器阵列将识别在一个计算单元LUT引用中具有97.2%的出现概率 的25个最可能的码字的第一组。附加的5位-Li-LUT引用将识别出 现概率为1.3+%的40个码字的第二组,且第三个3位-Ll-LUT引用 将识别出现概率为0.17+%的不常用码字的第三组。对于8 44检查序 列呈现类似的结果。因而,无论完成的方法如何,8 5 3还是8 4 4, 在超过97%的时间,局部可重构填充和溢出随机存取存储器阵列可以 在一个LUT引用中识别码字。而且,对于8 53检查序列而言,识别 任意 一 个MPEG-2 VLD码字所需的平均存储器存取是 (1*0.97+2*0.013+3*0.0013 )=1.005127,而对于844检查序列而言, 是1.00708。这意味着采用使用小至256个8位结构存储器的本发明, 用于组合的内部和外部存储器获取的平均查询时间几乎不大于l个周 期时间。本发明由此给予了流水线数字信号处理器中的独特的优点。 尽管256个8位结构或更少的结构足以给予本发明的优点,在某些情 况下,仅增加一位将适应甚至更多的情况。例如,参考图13,对于 AES加密中的Galois字段乘法操作,需要128个8位结构50 a-d用 于Galois字段乘法器值,需要另外的256个50 a-d用于S-box值, 对于每个局部可重构填充和溢出随机存取存储器阵列,总共只需要 384个8位结构。对于Reed-Solomon实现,50, a-d将包含1/GF(x) 值。
参考图14,通过同时向所有的局部可重构填充和溢出随机存取 存储器阵列50a、 b、 c、 d广播来自于输入寄存器68e的值,可以并 行地填充一个或多个局部可重构填充和溢出随机存取存储器阵列,或 者参考图15,通过从输入寄存器68d分离地向局部可重构填充和溢出 随机存取存储器阵列中每一个50a、 b、 c、 d输入值,可以串行地完 成填充。所以,同样,参考图16,可以从局部可重构填充和溢出随机 存取存储器阵列50a、 b、 c、 d...中的每一个并行地向输出寄存器102e 完成它们的溢出,或者,参考图17,从局部可重构填充和溢出随机存取存储器阵列50a、 b、 c、 d…中的每一个向输出寄存器102e以串行 的方式一次一个地完成它们的溢出。
填充和溢出操作不需要在整个局部可重构填充和溢出随机存取 存储器阵列50a、 b、 c、 d上执行,而是只在需要时在其一部分上执 行以进一步节省时间和资源。即,溢出操作可以是有条件的和选择性 的。例如,如图18所示,在计算单元20a中,局部可重构填充和溢 出随机存取存储器阵列的分区(section) 200、 202、 204…中的每一个可 具有不同的函数组。当实施如图4所示的整个通用算法时,参考图18, 局部可重构填充和溢出随机存取存储器阵列的分区50a在必要时被使 用新的信息选择性地一次一个分区地重写。然而,如果这些分区中的 一个,例如,202已经被算术逻辑单元22a更新,则状态电路206检 测该更新并记录基址寄存器位置,并促使值的分区202溢出到某些外 部存储器30或36,它被存储在那里直到它被需要。如果没有值被更 新,则它将只被重写且在恰当的时间和通常情况一样从存储器30或 36调用原始的一组值。
在图19中示出了根据本发明的方法的简化描述。该方法开始于 根据算法在处理器中的计算单元中对结果的计算(300)。然后,与来自
预定算术指令组的计算结果相关的预定函数组被存储在计算单元中 的局部随机存取存储器阵列中(302)。然后,计算的结果被直接映射到 相关函数。
更具体而言,处理器包括被计算单元共享的寄存器堆。所有的计 算单元局部随机存取存储器阵列被并行地填充来自寄存器堆的值。所 述值可以是相同值或不同值。局部随机存取存储器阵列也可以并行地 溢出到寄存器堆。当存储在随机存取存储器阵列中的分区中的一个或 多个值更新时,在计算单元的状态器件中做出指示。然后在状态器件 中判定是否应当溢出和保存随机存取存储器中的值。计算结果到相关 函数的映射与先前的计算结果映射无关或者在各计算单元之间相互 独立地完成。来自寄存器堆的寄存器用作随机存取存储器阵列和多个 计算单元的索引。随机存取存储器阵列和多个计算单元的输出可以组合到寄存器堆的单个寄存器中。与寄存器堆不同的寄存器可以用作每 个计算单元中随机存取存储器阵列的索引。每个计算单元中的每个随
机存取存储器阵列的输出可以被放置在寄存器堆的不同寄存器中。局 部随机存取存储器阵列可以包括查找表。在局部随机存取存储器阵列 中可以存储算法的预定指令组,以在计算单元内提供计算结果到相关 函数的直接映射。然后,使用与计算单元中的每个局部随机存取存储 器阵列相关的表寄存器,可以将相关的数据组存储在每个局部可重构 填充和溢出随机存取存储器阵列中独立的地址。
尽管已经在某些附图中示出了本发明的特定特征,这仅是为了方 便而已,根据本发明,每个特征可以与任意或者全部其它特征相组合。 此处使用的词"包括"、"包含"、"具有"以及"有"将被广义和全面地理 解,且并不限制于任意物理互连。而且,本申请中公布的任何实施例 并不被认为是唯一可能的实施例。
此外,在专利申请的审查过程中为本申请提出的任何修改并不是
提交的申请中提出的任何权利要求元素的放弃本领域技术人员不能 想当然地指望设计照字面意义包含所有可能的等价物的权利要求,很 多等价物在修正时是不可预知的且超出了被放弃的合法解释(如果存 在)的范围,经过修正的基本原理可能并不满足更多的对应于等价要 求的略微触及的关系,且/或存在很多不能期望申请人为任意修正的权 利要求元素描述无实体替代物的其它原因。
本领域技术人员可以想到其它实施例,且这些其它实施例归于所 附权利要求。
权利要求
1.一种处理器,包含用于减少计算单元和地址单元之间的流水线停顿的装置,该处理器包括至少一个计算单元,用于响应算法的指令来计算结果;所述计算单元包括局部随机存取存储器阵列,用于存储与所述算法的预定指令组的计算结果相关的预定函数值组,以在所述计算单元内提供计算结果到相关函数的直接映射。
2. 根据权利要求1所述的处理器,包括被所述计算单元共享的 寄存器堆。
3. 根据权利要求2所述的处理器,其中所有的计算单元局部随 机存取存储器阵列被并行地填充来自所述寄存器堆的相同值。
4. 根据权利要求2所述的处理器,其中局部随机存取存储器阵 列被并行地填充来自所述寄存器堆的不同值。
5. 根据权利要求2所述的处理器,其中所述局部随机存取存储 器阵列并行地溢出到所述寄存器堆。
6. 根据权利要求1所述的处理器,其中所述计算单元包括当存 储在所述随机存取存储器阵列的分区中的一个或多个函数值已被更 新时进行指示的状态器件。
7. 根据权利要求6所述的处理器,其中所述状态器件判定是否 应当溢出和保存随机存取存储器阵列中的函数值。
8. 根据权利要求1所述的处理器,其中计算结果到相关函数的 所述映射与先前的计算结果映射无关。
9. 根据权利要求1所述的处理器,其中计算结果到相关函数的 所述映射在各计算单元之间是相互独立的。
10. 根据权利要求2所述的处理器,其中来自寄存器堆的寄存器 可以用作多个计算单元中的随机存取存储器阵列的索引。
11. 根据权利要求2所述的处理器,其中多个计算单元中的随机 存取存储器阵列的输出被组合到寄存器堆中的单个寄存器中。
12. 根据权利要求9所述的处理器,其中与寄存器堆不同的寄存 器被用作每个计算单元中的随机存取存储器阵列的索引。
13. 根据权利要求9所述的处理器,其中每个计算单元中的每个 随机存取存储器阵列的输出被放置在所述寄存器堆的不同寄存器中。
14. 根据权利要求l所述的处理器,其中所述局部随机存取存储 器阵列包括查找表。
15. 根据权利要求l所述的处理器,还包括控制单元,用于在所 述局部随机存取存储器阵列中存储所述预定函数值组,以在计算单元 内提供计算结果到相关函数的直接映射。
16. 根据权利要求l所述的处理器,其中所述计算单元包括与每 个局部随机存取存储器阵列相关的表基址寄存器,用于允许相关的数 据组被存储在每个局部可重构填充和溢出随机存取存储器阵列中独 立的地址。
17. —种用于减少计算单元和地址单元之间的流水线停顿的流水 线数字倌号处理器,包括至少一个计算单元,用于响应算法的指令来计算结果;所述计算单元包括局部可重构填充和溢出随机存取存储器,用于 存储与所述算法的预定指令组的计算结果相关的预定值组,以在所述计算单元内提供计算结果到相关函数的直接映射。
18. 根据权利要求17所述的流水线数字信号处理器,包括被所 述计算单元共享的寄存器堆。
19. 根据权利要求18所述的流水线数字信号处理器,其中所述 寄存器堆包括用于对所有的计算单元局部可重构填充和溢出随机存 取存储器阵列并行地填充相同值的输入寄存器。
20. 根据权利要求18所述的流水线数字信号处理器,其中所述寄存器堆包括在计算单元局部可重构填充和溢出随机存取存储器阵 列中的每一个中串行地填充不同值的输入寄存器。
21. 根据权利要求18所述的流水线数字信号处理器,其中所述 寄存器堆包括用于从局部可重构填充和溢出随机存取存储器阵列并行地溢出所存储的值的输出寄存器。
22. 根据权利要求18所述的流水线数字信号处理器,其中所述 寄存器堆包括用于从局部可重构填充和溢出随机存取存储器阵列串 行地溢出所存储的值的输出寄存器,
23. 根据权利要求17所述的流水线数字信号处理器,其中所述 计算电路包括状态器件,用于在存储在所述局部可重构填充和溢出随 机存取存储器阵列中的至少一分区中的一个或多个所述值已被更新 时允许来自所述分区的值的溢出,
24. 根据权利要求17所述的流水线数字信号处理器,其中计算 结果到相关函数值的所述映射与先前的计算结果映射无关。
25. 根据权利要求18所述的流水线数字信号处理器,其中所述 寄存器堆包括被局部可重构填充和溢出随机存取存储器阵列共享的 输入寄存器和被局部可重构填充和溢出随机存取存储器阵列共享的 输出寄存器。
26. 根据权利要求25所述的流水线数字信号处理器,其中所述 输入寄存器为每个局部可重构填充和溢出随机存取存储器阵列接收 不同的计算结果,且所述输出寄存器呈现来自每个局部可重构填充和 溢出随机存取存储器阵列的不同函数值。
27. 根据权利要求25所述的流水线数字信号处理器,其中所述 输入寄存器为每个局部可重构填充和溢出随机存取存储器阵列接收 相同的计算结果,且所述输出寄存器呈现单一函数值,该单一函数值 由局部可重构填充和溢出随机存取存储器阵列中的每一个所呈现的 函数部分构成。
28. 根据权利要求17所述的流水线数字信号处理器,其中所述 局部可重构填充和溢出随机存取存储器阵列包括查找表。
29. 根据权利要求17所述的流水线数字信号处理器,还包括控 制单元,用于在所述局部可重构填充和溢出局部随机存取存储器阵列 中存储与算法中的预定指令组的计算结果相关的预定函数值组,以在 所述计算单元内部提供计算结果到相关函数的直接映射。
30. 根据权利要求17所述的处理器,其中所述计算单元包括与 每个局部可重构填充和溢出随机存取存储器阵列相关的表基址寄存 器,用于允许相关的数据组被存储在每个局部可重构填充和溢出随机 存取存储器阵列中独立的地址。
31. —种用于减少处理器中计算单元和地址单元之间的流水线停 顿的方法,包括响应算法的指令,在计算单元中计算结果; 在计算单元中的局部随机存取存储器阵列中存储与所述算法的预定指令组的计算结果相关的预定函数组;以及在所述计算单元内提供计算结果到相关函数的直接映射。
32. 根据权利要求31所述的方法,其中所迷处理器包括被所述 计算单元共享的寄存器堆。
33. 根据权利要求32所述的方法,包括对所有的计算单元局部 随机存取存储器阵列并行地填充来自所述寄存器堆的相同值。
34. 根据权利要求32所述的方法,包括对局部随机存取存储器 阵列并行地填充来自所述寄存器堆的不同值。
35. 根据权利要求32所述的方法,包括使所述局部随机存取存 储器阵列并行地溢出到所述寄存器堆。
36. 根据权利要求31所述的方法,还包括当存储在所述随机存 取存储器阵列的分区中的一个或多个值已被更新时,在所述计算电路 的状态器件中进行指示。
37. 根据权利要求36所述的方法,还包括在所述状态器件中判 定是否应当溢出和保存所述随机存取存储器阵列中的值。
38. 根据权利要求31所述的方法,还包括与先前的计算结果映 射无关地将计算结果映射到相关函数。
39. 根据权利要求31所述的方法,还包括在各计算单元之间相 互独立地将计算结果映射到相关函数值。
40. 根据权利要求32所述的方法,其中来自寄存器堆的寄存器 被用作多个计算单元中的随机存取存储器阵列的索引。
41. 根据权利要求32所述的方法,还包括将多个计算单元中的 随机存取存储器阵列的输出组合到寄存器堆中的单个寄存器中。
42. 才艮据权利要求39所述的方法,还包括使用与寄存器堆不同 的寄存器作为每个计算单元中的随机存取存储器阵列的索引。
43. 根据权利要求39所述的方法,还包括将每个计算单元中的 每个随机存取存储器阵列的输出放置在所述寄存器堆的不同寄存器 中。
44. 根据权利要求31所述的方法,其中所述局部随机存取存储 器阵列包括查找表。
45. 根据权利要求31所述的方法,还包括在所述局部随机存取 存储器阵列中存储所述算法的预定指令组,以在计算单元内提供计算 结果到相关函数值的直接映射。
46. 根据权利要求31所述的方法,其中使用与计算单元中的每 个局部随机存取存储器阵列相关的表基址寄存器,将相关数据组存储 在每个局部可重构填充和溢出随机存取存储器阵列中独立的地址。
全文摘要
通过响应算法的指令在计算单元中计算结果;在计算单元中的局部随机存取存储器阵列中存储与算法的预定指令组的计算结果相关的预定函数组;并且在该计算单元内提供计算结果到相关函数的直接映射,可以实现减少处理器中计算单元和地址单元之间的流水线停顿。
文档编号G06F15/00GK101297279SQ200680039988
公开日2008年10月29日 申请日期2006年10月17日 优先权日2005年10月26日
发明者C·J·普伦德加斯特, C·M·梅耶, G·M·尤康, J·A·卡布洛特斯基, J·威尔逊, Y·斯坦 申请人:阿纳洛格装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1