位移缓存器引擎的制作方法

文档序号:6516098阅读:324来源:国知局
专利名称:位移缓存器引擎的制作方法
技术领域
本发明是有关一种位移缓存器引擎(shift register engine)。

发明内容
本发明是关于一种位移缓存器引擎。在一实施例中,一位移缓存器引擎包括至少一位移缓存器及一执行单元耦接于至少一位移缓存器。至少一位移缓存器包括多个数据存储单元,每一该数据存储单元可操作于储存至少一数据值。典型地,位移缓存器可操作于位移储存在该多个数据存储单元的第一数据存储单元的数据值到多个数据存储单元的第二数据存储单元。
执行单元耦接于至少一位移缓存器,使得执行单可读取储存在位移缓存器的第二资料包的数据值。此外,执行单元可操作于执行一算法,使用储存在第二数据存储单元的该至少一数据值作为算法的操作数。
在执行单元实质上已经完成执行该算法后,至少一位移缓存器可操作于位移该数据值从第一数据存储单元到第二数据存储单元,执行单元可因应于至少一位移缓存器位移新资料到第二数据存储单元,使得执行单元以新资料再次执行算法。
在另一实施例中,位移缓存器引擎包括一微码存储器,可操作于储存多个微码程序;一微码执行单元,能执行每一微码程序,且电性耦接于微码存储器;以及至少一线性位移缓存器,电性耦接于微码执行单元。
至少一线性位移缓存器包括可操作于储存至少一数据值的多个数据存储单元。至少一线性位移缓存器可操作于位移数据值从多个数据存储单元的一第一存储单元到多个数据存储单元的一第二存储单元。再者,微码执行单元可操作于读取储存在第二数据存储单元的数据值,且可操作于因应至少一位移缓存器位移一新数据值到第二数据存储单元而执行多个微码程序的至少其一。
在又一实施例中,一中央处理单元包括一固定执行单元,可操作于执行一第一多个功能;一可程序化执行单元,可操作于执行一第二多个功能;一控制器,耦接于固定执行单元与可程序化执行单元;以及至少一线性位移缓存器,耦接于固定执行单元与可程序化执行单元的至少其一。
控制器可操作于接收来自一耦接于控制器的存储器的一指令,基于指令而决定第一与第二多个功能中的至少其一的一第一功能要被执行,以及产生一信号给固定执行单元与可程序化执行单元中的至少其一,以执行第一功能。
至少一线性位移缓存器包括多个数据存储单元,可操作于储存能成为第一与第二多个功能的至少其一的操作数的至少一数据值。再者,至少一线性位移缓存器可操作于位移储存在多个存储单元的一第一存储单元的数据值到多个存储单元的一第二存储单元。
固定执行单元包括一第一输入,耦接于控制器,且可操作于接收该信号;一第二输入,耦接于线性位移缓存器,且可操作于接收该储存在第二存储单元的至少一数据值;以及多个分离式的逻辑组件,耦接于第一与第二输入。每一分离式的逻辑组件互连分离式的逻辑组件中的其它至少一个。此外,每一分离式的逻辑组件更耦接于第一输入,以因应信号而实践第一多个功能的至少其一。第一多个功能中的至少其一基于该信号而被决定,以引发固定执行单元使用储存在第二存储单元的至少一数据值作为一操作数执行第一功能。
可程序化执行单元包括一第三输入,耦接于控制器,且可操作于接收信号;一第四输入,耦接于线性位移缓存器,且可操作于接收储存在第二存储单元的至少一数据值;一微码存储器,可操作于储存多个微码程序,每一微码程序可操作于实践第二多个功能的至少其一;一微码执行单元,耦接于微码存储器,能选择性地执行每一微码程序;以及一微码控制器,耦接于第三与第四输入,更耦接于微码执行单元。
微码控制器可操作于引发微码执行单元因应信号,而执行微码程序中的至少其一,以引发可程序化执行单元使用储存在第二存储单元的至少一数据值作为一操作数执行第一功能。
典型地,当至少一线性位移缓存器位移一新资料到第二数据存储单元时,固定执行单元与可程序化执行单元的至少其一可因应而执行第一与第二多个功能的至少其一。


图1是一具有一微码引擎的中央处理单元的一个实施例的示意图;图2是一具有一微码引擎的中央处理单元的第二实施例的示意图;图3是一具有一线性位移缓存器的微码引擎的一个实施例的示意图;图4是在一组目标资料上的一可位移窗口的示意图;
图5显示一线性位移缓存器的一个可能对应的示意图;图6A是在一位移操作以前的一线性位移缓存器的一个实施例的示意图;图6B是图6A的线性位移缓存器在一位移操作以后的一个实施例的示意图;以及图7是一位移缓存器微引擎的示意图。
符号说明100 中央处理单元102 系统存储器104 CPU执行单元106 微码引擎108 指令译码器110 参数提取单元112 ALU执行单元113 硬接线操作114 写回单元115 电性耦接116 微码执行单元118 微码存储器119 交握信号200 中央处理单元202 系统存储器204 CPU执行单元206 微码引擎
220 DMA信道221 交握信号300 微码引擎302 微码执行单元304 微码存储器306 可位移窗口406 线性位移缓存器408 可位移窗口410 操作数504 可位移窗口506 线性位移缓存器602 线性位移缓存器604 可位移窗口606 操作数608 黑区610 灰区700 位移缓存器微引擎701 微码存储器702 微码执行单元704 可位移缓存器串706 逻辑组件
具体实施例方式
请先参考图1,图1显示一种具有一微码引擎的中央处理单元100,其包括有一系统存储器102,一CPU执行单元104,耦接于系统存储器102,以及一微码引擎106,耦接于CPU执行单元104。此处,「耦接」一词的定义是指直接地连接到或经由一或更多中介组件间接地连接到,此等中介组件可包括以硬件或软件为基础的组件。
系统存储器102可为能储存一程序/对象码指令与微码的任何型态的存储器,并可包括中介存储器,例如高速缓存。在一实施例中,CPU执行单元104是一硬件单元或其它固定执行单元,经硬接线以执行各种操作与发出各种命令给微码引擎106。典型地,硬件单元包括多个分离式的逻辑组件,其中每一该分离式的逻辑组件互连至所述多个分离式的逻辑组件中的其它至少一个,以执行多个功能。
微码引擎106是一种诸如处理器或其它可程序化执行单元的装置,能执行微码程序,以执行在一较高阶的处理器中的各种操作,也就是说,微码引擎106实践一或更多可供程序设计者使用的较高阶的对象码指令。如同稍后将更详细描述的,一微码引擎106可额外地使用或取代硬接线电路与逻辑,以实践一较高阶的中央处理单元的功能。
系统存储器102、CPU执行单元104及微码引擎106可全数字于一单一集成电路上,也可以是分离式的组件。在一实施例中,至少该CPU执行单元104与该微码引擎106位于同一集成电路上。
在其它实施例中,CPU执行单元104与微码引擎106可全数字于一场可程序化门阵列(Field Programmable Gate Array;FPGA)上,或在分离式的场可程序化门阵列上。在其它不同实施例中,中央处理单元可能具有多个系统存储器单元102、CPU执行单元104或微码引擎106,其可全数字于单一组件上,例如一集成电路或一场可程序化门阵列,或者所述多个单元可位于分离式的组件上。
一般而言,系统存储器102为CPU执行单元104储存程序/对象码指令,在一实施例中,为微码引擎106储存微码。CPU执行单元104如同一控制器作动,读取及译码系统存储器102中的每一指令。根据每一译码的指令,CPU执行单元104决定,从可供CPU执行单元112的ALU执行单元112执行的多个硬接线功能,与可供微码引擎106执行的多个微码功能当中,选出要执行指令所需的功能。典型地,CPU执行单元104产生一信号,包括至少一参数,以指出ALU执行单元112与微码引擎106当中的那些功能(如果有的话)在实践该指令时需要被执行。因应该信号,ALU执行单元112与微码引擎106执行他们的操作,而且典型地会回传结果给CPU执行单元104,该结果可包括一动作、一第二信号及/或一结果参数。因应该结果,CPU执行单元104可储存该结果在系统存储器102中,或决定从该第一及第二多个功能当中选出一第二功能,给该ALU执行单元112与微码引擎106当中至少一个去执行。
微码是可直接控制一微处理器的最低阶程序。典型地,微码非可程序化寻址,但可以被修改,例如现存微码可以经修改而更正瑕疵或加强性能,或额外的微码程序可以加入微码引擎106中,例如增加可供操作的新指令型态。在一实施例中,借着经由CPU执行单元104下载微码程序加入微码引擎106中。在其它不同实施例中,藉直接下载微码程序加入微码引擎106中。
典型地,微码引擎106能执行微码程序,该微码程序可包括多个微指令或该微码引擎106的一或更多功能/指令。在一实施例中,微码程序用来仿真一处理器中典型地是硬接线的操作。具有硬接线操作的处理器执行操作的速度通常比使用微码引擎的处理器快,但是要付出牺牲系统弹性的代价。一旦处理器经过硬接线,使用诸如逻辑闸或晶体管等组件以执行操作,该处理器在没有重新设计处理器的硬接线操作时无法执行新的指令型态。此等重新设计耗时耗财,而且可能引入设计错误到整体处理器设计中。
相较于在处理器中的硬接线操作,微码引擎106允许降低硅面积,而且藉由允许使用者写入额外的微码程序以执行新的指令型态,或修改现存的微码程序以更正瑕疵或加强性能,提供了弹性。举例而言,假如在系统的初始设计之后,为了一新的算法需要新的指令型态,则一新的微码程序可以仅单纯地撰写及下载至微码引擎106中,因而更改处理器的操作。再者,假如在处理器的操作中发现瑕疵或性能议题,则微码可以被更改或研议,以更正该问题或加强性能。
微码引擎106也减轻对于独立的数字信号处理器(Digital SignalProcessor;DSP)的需求。为了加速影像处理,一些系统使用具有内建影像处理功能的完全分离式的中央处理单元的独立DSP。使用独立的DSP来加速影像处理要付出增加需要的硅面积的代价,而且缺乏控制中央处理单元及独立DSP之间的沟通。如同此处所揭示的,微码引擎可以用来取代或配合该DSP。
在一具有一微码引擎的中央处理单元的实施例中,CPU执行单元104电性耦接于系统存储器102,使得CPU执行单元104可以读取系统存储器102中储存的指令或写入数据到系统存储器102中。CPU执行单元104通常包括一指令译码器108、一参数提取单元110、一ALU执行单元112、以及一写回单元114。较佳者,指令译码器108、参数提取单元110、ALU执行单元112、以及写回单元114彼此互相电性耦接,使得每一个指令的参数可以轻易地在CPU执行单元104的不同单元之间传递。
微码引擎106也经电性耦接115至CPU执行单元104,使得CPU执行单元104可将微码引擎106视为一硬件辅助指令。典型地,CPU执行单元104与微码引擎106是以平行的方式排置,二者能够在执行相同或不同功能时实质上同时地操作。在其它不同实施例中,CPU执行单元104与微码引擎106也可以用串接或管线的方式排置,或此技艺中已知的其它任何排置。经由电性耦接115,CPU执行单元104控制微码引擎106将执行的指令与微码引擎106如何及何时执行每一指令。特别地,CPU执行单元104典型地控制微码引擎106接收的微码与指令参数,以及微码引擎106传递给CPU执行单元104或系统存储器102的数据。
典型地,微码引擎106包括一微码执行单元116与一微码存储器118。微码执行单元116与微码存储器118典型地彼此电性耦接,使得微码执行单元116能读取储存在微码存储器118中的指令参数或微码,或写入资料到微码存储器118中。
在操作期间,CPU执行单元104读取储存在系统存储器102中的一个程序/对象码指令。典型地,在CPU执行单元104中的指令译码器108如同一控制器作动,以检查指令集与决定什么操作被要求来执行指令集的各个指令。依一给定的指令所需要的操作,CPU执行单元104可以使用CPU执行单元104的硬接线操作113执行该指令,CPU执行单元104可以致动微码引擎106执行该指令,或者CPU执行单元104可以使用CPU执行单元104的硬接线操作113执行该指令的一部分,而微码引擎106执行该指令的另一部分。
假如CPU执行单元104使用CPU执行单元104的硬接线操作113执行该指令,则参数提取单元110典型地传递指令参数给ALU执行单元112。ALU执行单元112在硬接线逻辑的指引下执行必要的操作,且写回单元114记录指令结果在系统存储器102、一缓存器或其它储存装置中。
假如CPU执行单元104致动微码引擎106执行该指令,则参数提取单元110典型地传递指令参数、任何必要的微码(若尚未加载)、以及任何其它命令给微码引擎106。微码执行单元116如同一微码控制器作动,接收来自CPU执行单元104的信息,并读取可以储存在微码存储器118中的任何其它信息。微码执行单元116执行操作,即实践指令的微码程序,且记录指令结果在微码存储器118中,或者传递结果给CPU执行单元104。如果有必要的话,写回单元114记录指令结果在系统存储器102、一缓存器或其它储存装置中。在一实施例中,当微码引擎106正在处理操作时,CPU执行单元104有空闲处理其它操作。在其它不同实施例中,CPU执行单元104在执行其它动作以前,等待微码引擎106完成操作。
假如CPU执行单元104使用CPU执行单元104的硬接线操作113执行该指令的一部分,而微码引擎106执行该指令的另一部分,则参数提取单元110传递指令参数给ALU执行单元112与微码执行单元116。ALU执行单元112与微码执行单元116依照算法,以平行或循序的方式执行他们的操作,而且指令结果被写入系统存储器102、一缓存器或其它储存装置中。在一实施例中,ALU执行单元112可将微码引擎106的输出因子化为最终的结果。
在另一实施例中,CPU执行单元104与微码引擎106能在同一时间或不同时间对相同或不同的资料执行操作。为了确保CPU执行单元104与微码引擎106以正确的顺序执行操作,可在CPU执行单元104与微码引擎106之间实施交握(hand shake)信号119。交握信号119是诸如WAIT信号或其它在一处理器的至少二单元之间传递的状态指示器的信号,以确保算法以正确的顺序执行。透过交握信号119,CPU执行单元104与微码引擎106能传递信号,使得CPU执行单元104与微码引擎106可以同步地操作。虽然交握信号119允许CPU执行单元104与微码引擎106相对于对方同步地操作,所述多个信号119也允许在CPU执行单元104与微码引擎106之间讯令,以允许CPU执行单元104与微码引擎106二者其中之一或同时在内部同步地或异步地操作。
在又另一实施例中,如图2所示,提供独立的直接存储器存取(DirectMemory Access;DMA)信道220在系统存储器202与微码引擎206之间,以及额外的交握信号221在CPU执行单元204与微码引擎206之间。藉由允许微码引擎206直接读取在系统存储器202中的资料,而非只能读取CPU执行单元204已自系统存储器202读取的数据,独立的DMA信道220允许系统更快速且更有效率地操作。
在CPU执行单元204与微码引擎206之间的额外交握信号221允许CPU执行单元204与微码引擎206同步地操作更复杂的执行。相较于其它只有CPU执行单元204发出命令给微码引擎206的实施例,额外的交握信号221允许微码引擎206与CPU执行单元204彼此沟通。使CPU执行单元204与微码引擎206二者传递交握信号的能力允许CPU执行单元204与微码引擎206以点对点(peer-to-peer)的方式动作,而非以主仆(master-slave)式动作。
根据所揭示的实施例,具有一微码引擎的中央处理单元可以使用在诸如数字相机等装置中,与独立的DSP并用或取代一独立的DSP,以实践及/或加速影像处理。一微码引擎允许数字相机制造商变更微码引擎中的微码程序,以更正问题、改善功能、实践适当的影像处理算法、或在无需重新设计相机硬件的成本下增加特色以响应市场驱使的需求。由于微码引擎的弹性,在相机设计与制造期间或其后,甚至在相机被购买以后,一数字相机制造商可以在任何时间变更微码程序及因而导致的数字相机功能。
在一具有所揭示的中央处理单元与微码引擎的数字相机的实施例中,微码引擎执行一或更多实践特定操作的微码程序,以压缩该相机的影像传感器产生的像素资料。在另一实施例中,微码引擎执行一或更多实践特定操作的微码程序,来为该相机的影像传感器产生的像素资料去马赛克,其中该影像传感器使用一彩色滤光片数组(Color Filter Array;CFA),例如一Bayer图样的彩色滤光片数组。
在另一具有一微码引擎的中央处理单元的实施例中,如图3所示,一微码引擎300包括一线性位移缓存器(Linear Shift Register;LSR),以执行一可位移窗口的操作。一具有线性位移缓存器的微码引擎300通常包括一微码执行单元302、一微码存储器304、以及一实践一可位移窗口306的线性位移缓存器。较佳者,该微码引擎300是一能执行微码程序的特定用途集成电路,不过该微码引擎300也可以藉此技艺中任何已知的方式实践。此外,线性位移缓存器206与其它逻辑组件的结合可以藉此技艺中任何已知的方式实践。
典型地,微码执行单元302电性耦接微码存储器304,使得微码执行单元302可读取储存在微码存储器304中的指令或微码,以及写入资料到微码存储器304中。较佳者,当新的指令型态成为可供操作时,额外的微码可以在任何时候加入微码存储器304中。
在一实施例中,如图4所示,一实践可位移窗口408的线性位移缓存器406对一组从(1,1)到(5,18)的资料操作。图4的算法所需的可位移窗口408是一十字形,但是由于微码程序的弹性,实践可位移窗口408的线性位移缓存器406可以是大小为n×n的方形、大小为n×m的矩形、或不规则的大小与形状,其定义那些数据元素会在任一给定的位移事件中同时被存取。可位移窗口408的形状取决于一算法的参数,仅有大小及形状的要求是可位移窗口408包括执行该算法的所有必要的操作数。在图4的范例中,执行一算法所需的一操作数410以灰色显示。
如图4所示,资料是连续地馈入线性位移缓存器406中。藉由在使用可位移窗口408的微码执行单元302(图3)中执行一微码程序,微码执行单元302(图3)能连续地对储存在该组线性缓存器406中的资料执行一算法。
可位移窗口408提供一能力,对藉由在微码执行单元302(图3)完成一操作后,从线性位移缓存器406的一新区段位移资料到可位移窗口408中,而循序地输入线性位移缓存器406中的连续资料持续地执行一算法。典型地,在线性位移缓存器406中的每一缓存器可以被寻址为可位移窗口408中的一个操作数410。从线性位移缓存器406一新区段位移该新资料到可位移窗口408中,会变更该操作数410,使得在线性位移缓存器406中的新的、后续的目标位置的数据在正确的相对位置上。因此,下一个要藉微码执行单元302(图3)操作所用的数据值,可以不必在藉由CPU执行引擎或微码引擎300重新提取资料或重排资料下便取得。
单纯地只位移新资料到可位移窗口408中,而不重排旧资料,便藉由增加微码引擎300(图3)的效率而加速影像处理。位移新资料到可位移窗口408中,避免了典型地与诸如额外提取操作、加载操作、或储存操作等处理器功能有关的重复操作。中央处理单元或微码引擎300(图3)将能使用节省下来的时间及周期以执行算法,增进整体的效率。
先前为了加速数字相机中的影像处理,设计者使用一经由软件制成的可位移窗口或一经由硬接线操作制成的可位移窗口。经由软件制成的可位移窗口提供弹性,但缺乏硬接线操作的速度。硬接线操作执行影像处理功能快速,但付出牺牲弹性的代价,因为可位移窗口的大小及形状是固定的。使用实践可位移窗口的线性位移缓存器增加处理器的效率,补偿了速度与弹性之间的妥协,因此,提供一窗口操作,能为一算法快速地执行操作,也对满足未来的变更更具弹性,其中所述多个未来的变更例如要求新的窗口大小或形状的新指令或新算法。
图5显示实践图4的可位移窗口504的线性位移缓存器506的对应(mapping)。在可位移窗口504的每一元素中的数目,表示在线性位移缓存器506中该元素的顺序。当数据位移通过线性位移缓存器506时,元素1中的数据位移到元素2,而元素2中的数据位移到元素3。此一过程持续循序地穿过线性位移缓存器。
图6A及6B显示使用图5对应的可位移窗口604的一个实施例在一位移操作之前与之后。一位移操作位移新资料到可位移窗口604的操作数606中。在图6A及6B显示的实施例中,资料由右向左位移通过可位移窗口604,但是可位移窗口604可以设计为资料可从任一方向位移进入可位移窗口604的操作数606中。当资料由右向左位移时,以黑区608及灰区610显示的可位移窗口604的区域表示影像处理操作不再需要的数据值。因此,纵使所述多个数据值存在于线性位移缓存器602中,也可以被当作不存在。行610的缓存器是表示新资料可储存于其内的下一组缓存器。可位移窗口604可经由一串行的缓存器组、一环形的缓存器组、或此技艺中任何其它已知的缓存器设计来实践。
在另一实施例中,如图7所示,一位移缓存器微引擎700通常包括一微码存储器701、一微码执行单元702、一串的可位移缓存器704、以及一串的逻辑组件706。在一实施例中,逻辑组件706电性耦接可位移缓存器704,使得逻辑组件706对微码执行单元702当前的可位移窗口中包括的操作数执行一运算。此外,微码存储器701及微码执行单元702电性耦接可位移缓存器704,使得藉由读取储存在微码存储器701中的微码程序,微码执行单元702得知在线性位移缓存器上操作的方向及资料流的方向。
一般而言,资料,例如像素资料,来自诸如数字相机CCD的组件,或藉诸如DMA的中介组件,或藉经由中央处理单元核心加载,而恒常地串行输入该串可位移缓存器704中。当资料位移通过该串可位移缓存器704时,逻辑组件706基于存在可位移窗口中当前的操作数计算一结果。此操作可以是基于在窗口中当前资料的过滤操作或解译操作,或是其它任何在逻辑上或算术上有用的操作。在该算法完成目前的操作数之后,一位移操作线性地位移数据,且有效地移动可位移窗口往前一个像素。在该位移操作后,可位移窗口对准一个新的像素,纵使算法所用的周边像素的一半将被留置在他们的正确相对位置时亦然。只有需要且可位移窗口中不存在的新资料被位移进入可位移窗口中。在位移操作后,逻辑组件706自动地为该组新的操作数计算一结果,并输出一结果。此一过程在资料循序地输入通过该串可位移缓存器604时持续地重复。
在另一实施例中,DMA信道可以加在线性位移缓存器与微码引擎之间,以更进一步加速影像处理操作。在又另一增强性能的实施例中,额外的指令可以增加给可位移窗口,俾在每一指令及/或周期执行超过一次的位移操作。
在一具有一中央处理单元与一包括一线性位移缓存器以执行可位移窗口操作的微码引擎的数字相机的实施例中,可位移窗口用来对像素资料执行诸如过滤或解译的特定操作。在其它实施例中,可位移窗口可以用来执行压缩算法、去马赛克算法、或其它使用像素资料作为操作数任何其它型态的算法。
举例而言,在一使用一可位移窗口施行一去马赛克算法的实施例中,可位移窗口围绕一目标像素及其邻近像素,所述多个邻近像素是从每像素影像单一颜色生成每像素影像三颜色所需者。当一数字相机使用一彩色滤光片数组,例如一Bayer彩色滤光片数组,红、绿及蓝色像素以一预定的图样排列,使得每色像素邻接其它两色像素。去马赛克算法用来从每像素影像单一颜色生成每像素影像三颜色,使用例如双线性内插的程序。在此程序中,一个单色目标像素及其周边的单色像素被用来生成一个单一的三颜色像素。一可位移窗口藉由在每一次对一目标像素的双线性内插完成后,快速地位移新的像素数据到可位移窗口中,加速该去马赛克算法。
以上的详细叙述企图仅仅当作解说,而非对本发明的保护范围进行限定,本发明的保护范围以权利要求所界定的为准。
权利要求
1.一种位移缓存器引擎,包括至少一位移缓存器,包括一第一多个存储单元,每一该存储单元可操作于储存至少一数据值,该至少一位移缓存器可操作于位移储存在该第一多个存储单元的一第一存储单元的该至少一数据值到该第一多个存储单元的一第二存储单元;以及一执行单元,耦接于该至少一位移缓存器,且能读取储存在该第二存储单元的至少该至少一数据值,该执行单元可操作于至少基于储存在该第二存储单元的该至少一数据值而执行一算法;其中,该第一多个存储单元的该第二存储单元的该至少一数据值包括一第一数据值,该第一多个存储单元的该第一存储单元的该至少一数据值包括一第二数据值;以及其中,该执行单元可操作于至少基于该第一数据值而执行该算法,该至少一位移缓存器可操作于在该执行单元实质上已经完成该算法后,位移储存在该第一多个存储单元的第一存储单元的至少该第二值到该第一多个存储单元的该第二存储单元,该执行单元可因应该位移,使得该执行单元至少基于该第二数据值而再次执行该算法。
2.根据权利要求1所述的位移缓存器引擎,其中该至少一位移缓存器更包括一第二多个存储单元,每一该存储单元可操作于储存该至少一数据值,该至少一位移缓存器可操作于位移储存在该第二多个存储单元的一第一存储单元的该至少一数据值到该第二多个存储单元的一第二存储单元;其中,该执行单元耦接于该第一多个存储单元的至少一存储单元与该第二多个存储单元的至少一存储单元;以及其中,该第二多个存储单元的该第二存储单元的该至少一数据值包括一第三数据值,该第二多个存储单元的该第一存储单元的该至少一数据值包括一第四数据值;以及其中,该执行单元可操作于至少基于该第一值与该第三值而执行该算法。
3.根据权利要求2所述的位移缓存器引擎,其中该至少一位移缓存器可操作于位移储存在该第一多个存储单元的至少一数据存储单元的至少一数据值到该第二多个存储单元的至少一存储单元。
4.根据权利要求2所述的位移缓存器引擎,其中该至少一位移缓存器可操作于位移储存在该第一多个存储单元的该第一存储单元的该第二数据值到该第一多个存储单元的该第二存储单元,且实质上为同时地位移储存在该第二多个存储单元的该第一存储单元的该第四数据值到该第二多个存储单元的第二存储单元。
5.根据权利要求1所述的位移缓存器引擎,其中该执行单元可操作于储存该算法的一结果在包括该至少一位移缓存器的该第一多个存储单元的至少一存储单元。
6.根据权利要求1所述的位移缓存器引擎,其中该至少一位移缓存器是一串行缓存器组。
7.根据权利要求1所述的位移缓存器引擎,其中该至少一位移缓存器是一环型缓存器组。
8.根据权利要求1所述的位移缓存器引擎,其中该执行单元包括一微码存储器,可操作于储存多个微程序;一微码执行单元,耦接于该微码存储器,且能执行每一该微程序;以及一微码控制器,耦接于该微码执行单元,且可操作于引发该微码执行单元执行该多个微码程序的至少其一。
9.根据权利要求1所述的位移缓存器引擎,其中该执行单元包括多个分离式的逻辑组件,每一该分离式的逻辑组件互连所述多个分离式的逻辑组件中的其它至少一个,以执行多个功能。
10.一种位移缓存器引擎,包括一微码存储器,可操作于储存多个微码程序;一微码执行单元,电性耦接于该微码存储器,该微码执行单元能执行每一该微码程序;以及至少一线性位移缓存器,电性耦接于该微码执行单元,该至少一线性位移缓存器包括一第一多个存储单元,可操作于储存至少一数据值;其中,该至少一线性位移缓存器可操作于位移储存在该第一多个存储单元的一第一存储单元的该至少一数据值到该第一多个存储单元的一第二存储单元;其中,该微码执行单元可操作于读取储存在该第一多个存储单元的该第二存储单元的该至少一数据值;以及其中,该微码执行单元可因应于当该至少一线性位移缓存器位移至少一新数据值到该第一多个存储单元的该第二存储单元时,执行该多个微码程序的至少其一。
11.根据权利要求10所述的位移缓存器引擎,其中该至少一位移缓存器更包括一第二多个存储单元,每一该第二多个存储单元可操作于储存该至少一数据值,该至少一位移缓存器可操作于位移储存在该第二多个存储单元的一第一存储单元的该至少一数据值到该第二多个存储单元的一第二存储单元;其中,该微码执行单元耦接于该第一多个存储单元的至少一存储单元与该第二多个存储单元的至少一存储单元;以及其中,该微码执行单元可操作于执行该多个微码程序的至少其一,使用储存在该第一多个存储单元的该第二存储单元的该至少一数据值与该第二多个存储单元的该第二存储单元的该至少一数据值作为该微码程序的操作数。
12.根据权利要求10所述的位移缓存器引擎,其中该至少一位移缓存器可操作于位移储存在该第一多个存储单元的至少一存储单元的该至少一数据值到该第二多个存储单元的至少一存储单元。
13.根据权利要求10所述的位移缓存器引擎,其中该至少一位移缓存器可操作于位移储存在该第一多个存储单元的该第一存储单元的该至少一数据值到该第一多个存储单元的该第二存储单元,且实质上同时地位移储存在该第二多个存储单元的该第一存储单元的该至少一数据值到该第二多个存储单元的该第二存储单元。
14.根据权利要求10所述的位移缓存器引擎,其中该微码执行单元更可操作于储存一结果到该至少一线性位移缓存器中该多个微码程序的该至少其一。
15.一种中央处理单元,包括一固定执行单元,可操作于执行一第一多个功能;一可程序化执行单元,可操作于执行一第二多个功能;一控制器,耦接于该固定执行单元与该可程序化执行单元,该控制器可操作于接收来自一耦接该控制器的存储器的一指令,基于该指令而决定该第一与第二多个功能中的至少其一的一第一功能要被执行,以及产生一信号给该固定执行单元与该可程序化执行单元中的至少其一,以执行该第一功能;以及至少一线性位移缓存器,耦接该固定执行单元与该可程序化执行单元的至少其一,该至少一线性位移缓存器包括一第一多个存储单元,可操作于储存能成为该第一与第二多个功能的至少其一的操作数的至少一数据值;其中,该至少一线性位移缓存器可操作于位移储存在该第一多个存储单元的一第一存储单元的该至少一数据值到该第一多个存储单元的一第二存储单元;其中,该固定执行单元更包括一第一输入,耦接于该控制器,且可操作于接收该信号;一第二输入,耦接于该线性位移缓存器,且可操作于接收至少该储存在该第一多个存储单元的该第二存储单元的至少一数据值;以及多个分离式的逻辑组件,耦接于该第一与第二输入,每一该分离式的逻辑组件互连所述多个分离式的逻辑组件中的其它至少一个,且更耦接于该第一输入,以因应该信号而实践该第一多个功能的至少其一,该第一多个功能中的该至少其一基于该信号而被决定,以引发该固定执行单元使用储存在该第二多个存储单元的该第二存储单元的该至少一数据值作为一操作数执行该第一功能;以及其中,该可程序化执行单元更包括一第三输入,耦接于该控制器,且可操作于接收该信号;一第四输入,耦接于该线性位移缓存器,且可操作于接收储存在该第一多个存储单元的该第二存储单元的该至少一数据值;一微码存储器,可操作于储存多个微码程序,每一该微码程序可操作于实践该第二多个功能的至少其一;一微码执行单元,耦接于该微码存储器,能选择性地执行每一该微码程序;一微码控制器,耦接于该第三与第四输入,更耦接于该微码执行单元,该微码控制器可操作于引发该微码执行单元因应该信号,而执行所述多个微码程序中的至少其一,以引发该可程序化执行单元使用储存在该第一多个存储单元的该第二存储单元的该至少一数据值作为一操作数执行该第一功能;以及其中,该固定执行单元与该可程序化执行单元的至少其一可因应于当该至少一线性位移缓存器至少位移一新数据值到该第一多个存储单元的该第二存储单元时,执行该第一与第二多个功能的至少其一。
16.根据权利要求15所述的中央处理单元,其中该至少一线性位移缓存器更包括一第二多个存储单元,每一该存储单元可操作于储存该至少一数据值,该至少一线性位移缓存器可操作于位移储存在该第二多个存储单元的一第一存储单元的该至少一数据值到该第二多个存储单元的一第二存储单元;其中,该固定执行单元与该可程序化执行单元的至少其一耦接于该第一多个存储单元的至少一存储单元与该第二多个存储单元的至少一存储单元;以及其中,该固定执行单元与该可程序化执行单元的至少其一可操作于使用储存在该第一多个存储单元的该第二存储单元的该至少一数据值与该第二多个存储单元的该第二存储单元的该至少一数据值作为该第一与第二多个功能的至少其一的一操作数执行该第一与第二多个功能的至少其一。
17.根据权利要求16所述的中央处理单元,其中该至少一线性位移缓存器可操作于位移储存在该第一多个存储单元的至少一存储单元的该至少一数据值到该第二多个存储单元的至少一数据存储单元。
18.根据权利要求16所述的中央处理单元,其中该至少一线性位移缓存器可操作于位移储存在该第一多个存储单元的该第一存储单元的该至少一数据值到该第一多个存储单元的该第二存储单元,且实质上同时地位移储存在该第二多个存储单元的该第一存储单元的该至少一数据值到该第二多个存储单元的该第二存储单元。
19.一种使用一位移缓存器引擎执行一算法的方法,包括下列步骤位移一第一数据值到一位移缓存器的至少一数据存储单元;因应该位移该第一数据值,基于该至少一数据存储单元的一内容在一执行单元中执行一算法;位移一第二数据值到该至少一数据存储单元;以及因应该位移该第二数据值到该至少一数据存储单元,基于该至少一数据存储单元的该内容再次执行该算法。
20.根据权利要求19所述的方法,更包括储存对该算法的一响应在该缓存器的该至少一资料包。
21.根据权利要求19所述的方法,其中该因应该位移该第一数据值,基于该至少一数据存储单元的一内容在一执行单元中执行一算法的步骤包括下列步骤在一微码执行单元中使用该第一数据值作为至少一操作数执行一微码程序。
22.根据权利要求19所述的方法,其中该因应该位移该第一数据值,基于该至少一数据存储单元的一内容在一执行单元中执行一算法的步骤包括下列步骤在一固定执行单元中使用该第一数据值作为至少一操作数执行一功能。
23.根据权利要求19所述的方法,更包括下列步骤改变该执行单元所执行的该算法,使得该执行单元将因应该位移该第一数据值而执行一新算法。
24.一种中央处理单元,包括一位移缓存器,可操作于周期性地循序位移资料经过一序列内连接数据存储单元;以及一执行单元,耦接于该位移缓存器,且可操作于读取该序列内连接数据存储单元的一部分的内容;其中,该执行单元可操作于执行一算法,该算法基于该内容,当该部分的该内容随着该资料循序位移经过包括该部分的该序列内连接数据存储单元而改变时,该算法被再次执行。
25.一种计算一结果的方法,包括下列步骤提供多个数据存储单元,每一该数据存储单元能储存资料,每一该数据存储单元依序耦接于该多个数据存储单元的另一个,以致于能位移该资料循序经过该多个数据存储单元;读取该多个数据存储单元的一部分的内容;基于该内容计算一第一结果;取得该第一结果;引发每一该数据存储单元位移该资料到该多个数据存储单元的另一个;因应引发而读取该部分的该内容;基于该内容计算一第二结果;以及取得该第二结果。
全文摘要
一种具有一线性位移缓存器的位移缓存器引擎,包括至少一位移缓存器及一执行单元,位移缓存器含有多个数据存储单元,每一数据存储单元储存至少一数据值。当新资料输入位移缓存器时,位移缓存器可操作于位移数据值从一第一数据存储单元到一第二数据存储单元。执行单元电性耦接线性位移暂单元,使得执行单元执行一算法时,执行单元使用储存在第二数据存储单元的数据值作为一操作数。在执行单元实质上完成算法后,线性位移缓存器位移一新数据值到第二数据存储单元。因应线性位移缓存器位移新资料到第二数据存储单元,执行单元再次执行算法。
文档编号G06F13/00GK1828521SQ20051000866
公开日2006年9月6日 申请日期2005年3月1日 优先权日2005年3月1日
发明者程力方, 劳思蒙, 康铭钦 申请人:华晶科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1