本發明涉及一種電路裝置,其可以被用于實現流水線化級聯數字信號處理(DSP)結構,以減少DSP結構之間的傳播延時。
背景技術:
在大規模數字電路諸如但不限于現場可編程門陣列(FPGA)或專用集成電路(ASIC)中,若干DSP結構常常一起工作以實現復雜的任務。為了實現經改進的性能,這些DSP結構常常以高速度操作。雖然已經改進FPGA速度或者備選地ASIC處理速度,但是特別地當遇到可以由基于行的冗余引入的兩個DSP結構之間的隨機路由選擇距離時,一個約束是兩個DSP結構之間的傳播延遲。例如,當若干DSP結構或塊以脈動陣列模式連接來改進系統吞吐量時,操作1GHz FPGA的挑戰之一是DSP塊之間的互連的效率。一旦已經設計1GHz DSP塊,則多個DSP塊連接在一起以創建單個結構并且在單個結構中以高速度例如1GHz操作,并且因此期望塊之間的高效的互連以改進多塊性能。
用于在該情況中改進性能的一個方法將是在DSP結構之間添加流水線級。流水線技術可以被用于通過允許不同的功能單元同時操作增強DSP結構的關鍵路徑處的處理速度。然而,流水線化脈動陣列結構可能未正確地操作,因為有時可能干擾使能流。因此,跨越DSP結構的值的求和可能產出不準確的結果,因為流水線深度不再是平衡的。可以添加附加平衡寄存器以平衡延遲,其可能引起附加硬件和邏輯成本。
技術實現要素:
根據本發明的實施例,呈現了用于改進多塊性能的塊間配準的數 個架構。
因此,根據本發明的實施例,提供了接受數據輸入和基于所述數據輸入而生成數據輸出的電路裝置。電路裝置包括:第一電路塊,其還包括第一乘法器電路;第一多個流水線寄存器,其被布置為將第一乘法器電路的操作流水線化;第一加法器電路,其接受來自第一電路塊的第一加法器輸入和來自第一塊間連接的第二加法器電路。電路還包括:第二電路塊,其經由第一塊間連接級聯到第一電路塊,所述第一塊間連接包括第二乘法器電路;第二多個流水線寄存器,其被布置為將第二乘法器電路的操作流水線化。第二多個流水線寄存器中的一個或多個流水線寄存器選擇性地旁路以平衡第一加法器輸入和第二加法器輸入。
根據本發明的其他實施例,提供了接受數據輸入和基于所述數據輸入而生成輸出和的電路裝置。電路裝置包括第一脈動陣列FIR結構,其具有第一加法器電路和放置在第一加法器之前的第一紋波使能寄存器。第一FIR結構由第一紋波使能寄存器重新定時以允許附加流水線貫穿第一脈動陣列FIR結構添加。電路裝置還包括經由塊間連接被連接到第一脈動陣列FIR結構的第二脈動陣列FIR結構。第一級聯流水線寄存器將第一脈動陣列FIR結構和第二脈動陣列FIR結構連接。
根據本發明的另一實施例,提供了在浮點模式或定點模式下操作的電路裝置。電路裝置包括接受第一數據輸入和生成第一數據輸出的第一電路。第一電路包括接受第一數據輸入的第一算術元件、與第一算術元件連接布置的多個流水線寄存器和輸出第一數據輸出的級聯寄存器。電路裝置還包括接受第二數據輸入和生成第二數據輸出的第二電路。第二電路級聯到第一電路,使得第一數據輸出經由級聯寄存器連接到第二數據輸入。當第一電路在定點模式下操作時,選擇性地旁路級聯寄存器。例如,針對級聯寄存器的連接配置可以是允許級聯寄存器選擇性地旁路的可選擇的連接。
根據本發明的另一實施例,提供了一種操作級聯電路的方法。方法包括經由第一電路內的多個輸入寄存器接收數據輸入信號。第一電 路包括支持浮點操作的第一算術元件、將第一算術元件的操作流水線化的多個流水線寄存器和連接以使用級聯寄存器。響應于第一命令信號,電路選擇性地旁路來自多個輸入寄存器的一個輸入寄存器或者來自多個流水線寄存器的一個流水線寄存器以補償來自級聯寄存器的延遲。然后,電路經由級聯寄存器將塊間數據信號從第一電路傳送到第二電路。
附圖說明
結合附圖,根據對以下詳細描述的說明書的考慮,本發明的進一步的特征、其性質和各種優點將是明顯的,其中,相同附圖標記自始至終涉及相同部分,并且其中:
圖1示出了用于兩抽頭脈動陣列FIR濾波器的DSP塊的示例電路圖;
圖2示出了利用紋波使能寄存器操作的可以被視為圖1中的DSP塊的重新定時版本的DSP塊的示例電路圖;
圖3示出了DSP塊的示例電路圖,其示出具有附加流水線的重新定時DSP塊;
圖4示出了具有DSP塊的輸出處的級聯流水線的一對級聯DSP塊的示例電路圖;
圖5示出了具有包括一個或多個旁路流水線寄存器的級聯流水線的重新定時FIR濾波器的另一示例電路圖;
圖6示出了在浮點模式中配置的DSP塊的示例電路圖;
圖7示出了具有在浮點模式中配置的級聯寄存器和平衡寄存器的DSP塊的示例電路圖;
圖8示出了在流水線化和平衡向量模式中操作的兩個相鄰DSP塊的示例電路圖;
圖9A-F(在下文中統稱為“圖9”)示出了使用圖8中所示的類似流水線和平衡技術的遞歸向量結構的示例電路;
圖10-11示出了用于級聯流水線化DSP塊150a-b的通用結構的 示例電路圖,其中圖示了圖7-9中所示的流水線和平衡技術可以適于任何DSP結構;
圖12示出了在不要求用于平衡寄存器的附加硬件的情況下具有更多塊間寄存器的級聯流水線化DSP塊的通用結構的備選實施方式中的示例電路圖;
圖13示出了示例電路圖,其圖示了放置在塊間連接202上的冗余寄存器203之前的多路復用器的使用;
圖14示出了示例電路圖,其圖示了加法器輸入平衡路徑103能夠于寄存器201(和可以放置在如圖12中所示的寄存器201之后的塊間流水線203)相結合地用于改進向量結構的稍后的加法器樹部分;
圖15示出了與圖4中的電路圖類似的另一示例電路圖,并且DSP塊180c的輸入路徑平衡寄存器103中的附加的輸入平衡寄存器103b已經被旁路以允許塊間寄存器203使用;
圖16示出了圖示在浮點模式或定點模式下操作級聯DSP塊(例如,圖6-15中所示的電路結構)的工作流的示例邏輯流程圖;以及
圖17是采用并入本發明的可編程邏輯器件的示例性系統的簡化框圖。
具體實施方式
除非另外指示,否則以下討論將基于諸如FPGA的可編程集成電路的示例。然而,應當注意,本文所公開的主題可以使用在任何種類的固定或可編程器件中,包括但不限于專用集成電路(ASIC)。
在本發明的一些實施例中,當多個DSP塊級聯以執行大型系統中的一系列任務時,流水線可以在FPGA中的一組級聯DSP結構中以提供塊間寄存并且因此改進系統性能。信號可以在DSP結構內重新選擇路由以在不引入附加寄存器以節省硬件的情況下使用結構中的現有流水線寄存器。例如,脈動陣列有限沖激響應(FIR)濾波器可以使用DSP結構之間的可配置的流水線寄存器,如圖1-5中所圖示的。浮點結構可以使用乘法器與加法器之間的可配置的寄存器,如圖6-8 中所圖示的。在一般情況下,浮點結構可以由流水線寄存器重新定時以貫穿較大的系統并且在遞歸向量模式下平衡延遲,如圖10-15中所圖示的。
圖1示出了用于兩抽頭脈動陣列FIR濾波器的DSP塊100的示例電路圖。脈動陣列濾波器可以包括多個級聯DSP塊,例如其中,數據輸入301、310連接到級聯DSP塊的數據輸出305、320。在DSP塊100內,可以利用使能輸入信號(在圖1中未示出)對一系列輸入寄存器302a-d進行饋送。可以使用單個(平)使能寄存器320a,或者備選地,如圖1中所示,如果輸入停止,則多個使能寄存器320a-d可以被用于繼續處理濾波器中的數據。在圖1中的相應示例和圖2-5中所示的備選示例中,利用不同的填充圖案示出寄存器以指示相應的寄存器由不同的使能信號使能,其可以是基于相應的寄存器的放置來配置的。例如,輸入寄存器302a-d可以由第一使能信號操作;延遲或平衡加法器307a-b(使得加法器處的兩個輸入具有相同或基本上相同的寄存器延遲)和/或乘法器308a-b所使用的寄存器(例如,311、306等等)可以由第二使能信號操作;并且脈動陣列鏈309上的寄存器可以由第三使能信號操作。當附加的流水線寄存器添加到電路(例如,參見圖3中的寄存器315a-b)時,這些流水線寄存器可以由相同的第二使能信號操作。在這些示例中,不是DSP塊中的所有寄存器直接連接到相同使能輸入;并且因此可以減少使能輸入的扇出。
如圖1中所示,寄存器306放置在兩個乘法器308a-b的加法器307a與針對脈動陣列鏈309的加法器307b之間。這在硬件價錢方面可能是昂貴的,因為要么包含兩個進位傳播加法器(CPA)要么第一加法器307a需要是冗余形式,其可能導致兩倍的寄存器的數目。備選地,當寄存器306移動到作為紋波使能寄存器的位置時,在兩個加法器307a-b之間沒有留下附加的物理元件,加法器307a-b可以合并為一個加法器以節省硬件資源。可以在于2015年5月20日提交的共同未決的共同受讓的美國專利申請號14/717,449中找到關于重新定時脈動陣列FIR濾波器的輸出級以合并加法器的進一步的討論,其以整 體內容通過引用明確地并入本文。
圖2示出了利用紋波使能寄存器312操作的可以被視為圖1中的DSP塊100的重新定時版本的DSP塊200的示例電路圖。如圖1-2中所示,圖1中的寄存器306可以移動到乘法器308a與加法器307a之間的位置并且然后與寄存器311合并,產生寄存器312。在這種情況下,包括合并的寄存器311和306的寄存器312的使能是輸出鏈寄存器309的使能。
圖3示出了DSP塊的示例電路圖,其示出具有附加流水線的重新定時DSP塊。一旦DSP塊300已經重新定時,則附加流水線可以添加在每個乘法器路徑中的任何地方,例如,如圖3中的流水線315a-b處所示。可以在乘法器308a或30b(其可以通過乘法器重新定時)之前或之后添加任何數目的流水線以增加性能,只要其分組為由相應的使能信號所使能的相同使能寄存器(如圖3中的相應的填充圖案所示)。
以流水線化DSP塊300繼續,雖然級聯多個這樣的塊,但是DSP塊之間的連接的路徑長度可以變為在實現高性能系統時添加流水線的關鍵路徑。
圖4示出了具有DSP塊300a的輸出處的級聯流水線321的一對級聯DSP 300a-b的示例電路圖。DSP塊300a-b可以與圖3中的DSP塊300類似。級聯流水線321可以包括一個或多個流水線寄存器(例如,參見322),其創建額外延遲以便將DSP塊300a和DSP塊300b的操作流水線化。在圖4中示出了單個流水線寄存器322,但是多個寄存器可以被用于將DSP塊300a和DSP塊300b的操作流水線化。寄存器322或多個等效寄存器可以要么放置在DSP塊300a的輸出、DSP塊300b的輸入處要么分布在兩個DSP塊中間。(一個或多個)流水線寄存器可以定位的另一地點在兩個塊之間,其可以減少基于行的冗余的性能影響。(一個或多個)流水線寄存器322的使用可以是定制或可選的,例如,當延時vs.速度折衷被規定時,可以旁路(一個或多個)流水線寄存器322中的一個、一些或全部。
例如,當添加大量的(一個或多個)流水線寄存器322時,DSP塊300a-b的吞吐量增加,但是利用由流水線所引起的附加寄存器延遲,延時可能增加。在一些實施方式中,當采用DSP塊300a-b的設備或系統確定系統吞吐量和/或速度已經到達期望的水平時,設備或系統可以選擇性地旁路一個或多個流水線寄存器322以減少延時。
圖5示出了具有包括一個或多個旁路流水線寄存器的級聯流水線的重新定時FIR濾波器的另一示例電路圖。將流水線寄存器添加在塊之間的接口中可以允許寄存器分布重新定時,如圖5中所示。可以選擇性地旁路塊300b的輸入中的(圖4中所示的)第一寄存器323或324。例如,DSP塊300a-b之間的電路可以在沒有寄存器323-324的情況下預配置有塊300a-b之間的直接連接,并且這樣的直接連接可以由系統處理器選擇性地選擇。當選擇性地旁路寄存器323-324時,DSP塊300a-b的電路可以功能上等于多個塊300的直接級聯,如圖3中所示。取決于采用DSP塊300a-b的器件的特點,圖5中的電路可以比圖3中的多個塊的級聯更快地執行。在這種情況下,器件裝配工具可以在圖5中所示的模式而不是圖3中的那個中自動地操作一系列DSP塊。
圖6示出了在浮點模式中配置的DSP塊600的示例電路圖。浮點乘法器601和浮點加法器602連同邏輯(例如,任何其他算術元件)和路由選擇包括在DSP塊600中以實現更復雜的功能,諸如乘加、乘累加、遞歸向量結構和/或類似。為簡單起見,在圖6中未圖示一些寄存器、總線和特征。
乘法器流水線具有輸入寄存器605、兩個內部寄存器級606以及在其與隨后的浮點加法器之間的寄存器級607。所支持的模式之一(遞歸向量模式)采取浮點乘法器601輸出并且通過直接到相鄰DSP塊(例如,塊600的右邊,在圖6中未示出)中的總線將其路由選擇到下一DSP塊。該路徑可以是針對浮點遞歸向量模式的性能的關鍵路徑,因為在沒有上一邏輯水平之后的寄存器的益處的情況下路由通過乘法器流水線的最后的CPA來選擇-這樣做以最小化乘法器流水線中 的寄存器級的數目,其在面積以及延時方面可能是昂貴的。可以在于2013年1月29日提交的共同未決的共同受讓的美國專利申請號13/752,661中找到關于浮點模式操作的進一步的討論,其以整體內容通過引用明確地并入本文。
圖7示出了具有在浮點模式中配置的級聯寄存器和平衡寄存器的DSP塊700的示例電路圖。DSP塊700可以被配置為在定點模式和在浮點模式二者下操作,即,在定點模式下,塊700可以生成以定點數的形式的數據輸出;并且在浮點模式下,塊700可以生成以浮點數的形式的數據輸出。在一些示例中,定點和浮點乘法器流水線可以共享相同邏輯。然而,浮點模式可能具有比定點模式更有挑戰性的處理速度問題,因為浮點加法器的大型組合結構可能導致浮點功能性中的更復雜的關鍵路徑。例如,在定點模式下,在從一個DSP塊的輸出寄存器到另一DSP塊的輸入寄存器的DSP塊之間傳遞塊間數據。然而,在浮點模式下,可以將塊間數據從乘法器、加法器或者DSP塊的輸出傳遞到另一DSP塊的輸入。隨著額外的邏輯通常被使用在乘法器或者加法器的流水線之后,來自在一個DSP塊中的乘法器或加法器的數據可以在其被傳送到另一DSP塊之前通過額外邏輯進行路由選擇,其導致與定點模式相比較在浮點模式下更慢的速度。因此,定點模式常常期望具有較高的速度期望或要求。
能夠通過在路由選擇到下一DSP塊之前在DSP塊700的輸出上提供級聯寄存器701保存定點模式和浮點模式二者的總體流水線深度。添加寄存器701可以比將另一寄存器添加到乘法器流水線606中更高效,因為其僅必須被用于浮點鏈,并且更高速度定點數據可以不需要穿過它。由于在浮點模式下,通常以64位格式傳送數據并且浮點模式具有32位,因而改進處理效率,同時定點數據可以跳過流水線中的一個或多個寄存器。當寄存器701選擇使用時,浮點加法器路徑上的另一輸入寄存器703的遞歸向量模式可能需要平衡,使得塊700中的加法器的兩個輸入路徑具有相同或者基本上相同的寄存器延遲。在該示例中,寄存器702添加并且由較慢的浮點路徑使用,但是 較快的定點數據可能不需要使用它。
圖8示出了在流水線化和平衡向量模式中操作的兩個相鄰DSP塊700a-b的示例電路圖。如圖8中所示,包括附加的塊間流水線寄存器701a-b和平衡寄存器702a-b以支持較高性能遞歸向量模式。兩個流動路徑702和708-709可以具有相同的流水線深度。
圖9示出了使用圖8中所示的類似流水線和平衡技術的遞歸向量結構的示例電路。例如,塊800a-e能夠被級聯以實現遞歸向量結構。在遞歸向量模式下,例如,塊800a的輸出可以基于塊800a的輸入A、B和塊800b的輸入C、D,例如,“AB+CD”:塊800b的輸出可以基于兩個相鄰塊的輸出,例如,塊800C的輸出“EF+GH”和塊800a的輸出“AB+CD”,其將針對塊800b的輸出生成為“AB+CD+EF+GH”等等。
圖10-11示出了圖示圖7-9中所示的流水線和平衡技術可以適于任何DSP結構的級聯流水線化DSP塊150a-b的通用結構的示例電路圖。如圖10中所示,兩個DSP塊150a-b通過連接110級聯以輸出來自塊150a中的乘法器102a的結果和來自另一塊150b中的乘法器102b的結果的和117a。在每個塊150a-b內,若干流水線寄存器101a或101b被提供用于乘法器102a或102b,其相應地由輸入平衡寄存器103a或103b平衡。出于說明性目的,針對寄存器101a或101b示出了四個流水線,但是在寄存器101a或101b處可以使用任何數目的流水線。
在塊150a-b中的每一個中,加法器輸入寄存器104a-105a和104b-105b相應地連接到加法器106a-b。寄存器104a接受來自相同DSP塊中的乘法器的乘法結果,并且另一寄存器105a接受來自相鄰DSP塊中的乘法器的乘法結果。例如,DSP塊150a中的寄存器104a連接到塊150a的乘法器流水線101a,并且DSP塊140a中的寄存器105a連接到塊150b的乘法器流水線101b。加法器106a的輸出穿過產生DSP塊輸出信號117a的輸出寄存器107a。
塊間連接110可以被用于實現遞歸向量模式的一個級。在DSP塊150b中,甚至當流水線101的最后的寄存器120在自身與相鄰塊 150a之間沒有邏輯時,特別地考慮冗余的影響,長路由選擇路徑可以仍然是向量模式中的關鍵路徑(如結合圖13進一步討論的)。
如圖11中所示,與圖7中所示的級聯寄存器701類似,甚至在不要求相關聯的平衡寄存器的情況下,可以在圖10中所示的一般情況中引入級聯寄存器。如結合圖7所討論的,定點乘法器流水線和浮點乘法器流水線可以共享相同邏輯,但是定點模式可以期望以比浮點模式更高的速度操作。可以通過在經由塊間連接202路由選擇到下一DSP塊150a之前在DSP塊150b上提供影子寄存器保存定點模式和浮點模式二者的總體流水線深度(互連211示出了到在圖1中未示出的另一DSP塊的連接)。在不添加塊150a中的寄存器104a之后的平衡寄存器(如圖7中的平衡寄存器702)的情況下并且通過旁路乘法器102b處的一個或多個流水線寄存器(例如相應示例中的流水線101b的寄存器124),可以平衡影子寄存器201。這樣,由于沿著元件101、201和連接202的路徑的寄存器的總數目保持不變,因而處理速度將不減少,并且因此不需要附加的平衡寄存器以平衡寄存器201。
在相應的示例中,影子寄存器201可以僅當調用浮點模式時使用;并且在定點塊間模式中,可以不穿過影子寄存器201的情況下直接路由選擇數據。如結合圖7先前所討論的,由于定點模式可以具有比浮點模式更高的數據需求(64位vs.32位),因而旁路影子寄存器201可以幫助增加定點模式中的數據傳輸效率。而且,頂點模式的延時可以小于浮點模式,因為乘法器流水線的最后CPA 106a-b可以與全部所要求的定點鏈和累積組合,而浮點模式可以要求分離的浮點算術邏輯單元(ALU)。由旁路寄存器124造成的速度減少可能未影響浮點模式的性能,其將指定以比定點模式的那個更低的速度操作。
圖12示出了在不要求用于平衡寄存器的附加硬件的情況下具有更多塊間寄存器201和203的級聯流水線化DSP塊160a-b的通用結構的備選實施方式中的示例電路圖。如圖12中所示,浮點加法器106a將具有一些輸入平衡寄存器103a,使得可以直接執行加上乘法器102a 和102b的結果的計算。在這種情況下,兩個寄存器201和203使用在塊間路徑(塊間連接202)中,其如果使用DSP塊160b中的所有乘法器流水線寄存器101b(例如,未旁路流水線寄存器),則因此可以要求針對輸入208的兩個附加的平衡寄存器。此處,DSP塊160a中的現有輸入平衡寄存器103a可以被用于引起針對輸入208的附加延遲而不是添加更多寄存器。這樣,加法器106a處的兩個輸入是平衡的,即,具有相等或基本上相等的延遲。例如,如圖12中的塊160a處所示,對于加法器106a的一個輸入分支而言,在流水線延遲101a之后,來自輸入C 208的數據在傳送到加法器寄存器105a之前重定向到塊160a中的寄存器103a,并且對于加法器106a的另一輸入分支而言,塊106b處的數據輸入穿過流水線寄存器101b、寄存器201、塊間寄存器203以及然后加法器寄存器104a。加法器106a的兩個輸入分支上的寄存器的數目是相同的。
圖13示出了圖示放置在塊間連接202上的冗余寄存器203之前的多路復用器217的使用的示例電路圖。如圖13中所示,DSP塊170a-c鏈接成一行(其中,元件101a-c、102a-c、103a-c、104a-c、105a-c、106a-c和107a-c與關于圖10中的塊150a-b所討論的那些類似),并且DSP塊170b-c相應地各自具有塊間延遲寄存器201b-c。特別地,平衡寄存器103a可以被用于將附加延遲提供給通過流水線寄存器101a的路徑,使得外部輸入104a可以添加到乘法的結果。外部輸入104a已經沿著通過流水線寄存器101c和附加寄存器201c和203的路徑延遲。多路復用器217可以放置在DSP塊170a與170b之間,使得可以從要么塊170b的寄存器201b要么塊170c的寄存器201c選擇進入170a中的塊間輸入(例如,其可以經由寄存器104a饋送到加法器107a中)。例如,當塊170b具有缺陷時,采用DSP鏈170a-c的系統可以選擇經由多路復用器217將其跳過,其可以由于跳過來自塊170b的數據而導致額外延遲。寄存器203放置在多路復用器217之后以引入針對來自塊170b-c的塊間路徑的延遲。這樣,當跳過來自塊170b的輸入時,寄存器203幫助維持數據吞吐量,并且因此DSP結構170a-c 可以支持高速度向量模式。
圖14示出了圖示加法器輸入平衡路徑103可以結合寄存器201(和可以放置在如圖12中所示的寄存器201之后的塊間流水線203)被用于改進向量結構的稍后的加法器樹部分的示例電路圖。在圖14中所示,在遞歸向量模式下操作時,DSP塊18a中的浮點加法器106a加上來自乘法器102a-b的結果。在DSP塊180c中,DSP塊180c中的浮點加法器106c加上來自乘法器102c的結果和輸入223(其可以從圖14中所示的另一DSP塊傳送,例如從另一DSP塊中的乘法器)。在DSP塊180b中,加法器106b加上DSP塊180a-b的輸出,例如,塊180c的輸出可以路由選擇到塊180b的輸入210b,并且塊180a的輸出可以路由選擇到塊180c的輸入210c。因此,以遞歸的方式將三個塊互連。在于2013年1月29日提交的共同未決的共同受讓的美國專利申請號13/752,661和于2013年7月15日提交的美國專利申請號13/941,847中討論了遞歸向量模式操作的進一步的細節,其中的每一個以整體內容通過引用明確地并入本文。
在DSP塊180a中,加法器輸入平衡路徑103a可以具有與浮點乘法器流水線101a相同數目的流水線級,例如在該相應的示例中4個流水線。在DSP塊180b中,加法器106b由DSP塊180b的輸入210b和DSP塊180c的輸入210c饋送,在該示例中是4級。通過旁路DSP塊180c中的平衡寄存器103c之一(例如,參見旁路寄存器156),級聯寄存器210c可以沿著針對輸入210c的輸入路徑使用在DSP塊180c中以使得來自輸入路徑210B和210c的延遲是基本上相等的。這樣,當采用DSP塊180a-c的器件選擇性地旁路一個或多個寄存器時,可以改進功耗效率。例如,針對平衡寄存器的連接配置可以是允許一個或多個平衡寄存器選擇性地旁路的可選擇的連接。
圖15示出了與圖4中的電路圖類似的另一示例電路圖,并且DSP塊180c的輸入路徑平衡寄存器103中的附加的輸入平衡寄存器103b已經旁路以允許塊間寄存器203使用。寄存器203可以被用于給定路徑中的附加延遲。平衡路徑之一中的任何一個或多個寄存器的旁路可 以不必遵循特定模式。所旁路的鏈中的(一個或多個)寄存器(例如,如103c中的寄存器158-159)將被選擇為對性能影響最小的一個。在圖15中所示的相應示例的備選示例中,在DSP塊180c中,路徑中的第一和最后的寄存器可以保持使用(在圖15中未示出),使得從輸入210到輸入平衡寄存器103的路徑可以盡可能地保持短,并且也使從輸入平衡寄存器103到寄存器201的路徑盡可能短。
圖16示出了圖示在浮點模式或定點模式下級聯DSP塊(例如,通過動態地配置圖6-15中所示的電路結構)的操作的示例邏輯流程圖。采用圖1-15中所圖示的級聯DSP塊結構的設備或系統的處理器(例如,參見圖17中的元件601)可以將指令例如控制信號發送到DSP塊以控制DSP塊的操作。采用級聯DSP塊結構的設備或系統的存儲器單元(例如,參見圖17中的元件602)可以存儲針對處理器的處理器可執行指令以讀取和執行并且因此控制DSP塊的操作。
如圖16中所示,DSP塊可以接收數據輸入信號(步驟501),其取決于DSP塊的操作模式可以是定點格式或浮點格式。處理器可以確定針對DSP塊的操作模式(步驟502),并且將處理器指令503a發送給DSP塊。處理器指令503a可以包括取決于DSP塊的操作模式使用或者旁路級聯寄存器的命令信號。
例如,如果DSP塊在定點模式506a下操作,則處理器指令503a控制DSP塊以旁路級聯寄存器(步驟507)并且然后將塊間數據直接從相應的DSP塊發送到級聯塊(步驟509)。
在備選示例中,如果DSP塊在浮點模式506b下操作,則處理器指令503a控制DSP塊以使用級聯寄存器將塊間數據傳送到級聯塊(步驟508),并且選擇性地旁路DSP塊內的流水線寄存器或輸入寄存器以平衡級聯寄存器(步驟510)。結合圖11-14先前討論了關于在不引入附加平衡寄存器的情況下旁路流水線寄存器或輸入寄存器的進一步的示例結構。
在一些實例中,處理器可以可選地確定來自流水線寄存器或輸入平衡寄存器的哪個寄存器旁路以便引起對DSP塊和系統的最小性能 影響(步驟520),例如通常保持第一和最后的寄存器。對于步驟510而言,處理器可以將處理器指令503b發送給DSP塊以指示哪些寄存器旁路。然后,DSP塊可以例如通過接收新輸入(返回到步驟501)繼續操作(步驟515)。
在備選實施方式中,DSP塊可以具有針對定點或浮點操作的靜態配置。例如,在DSP塊的操作之前,可以對使用或旁路的流水線寄存器和/或平衡寄存器進行預配置。
圖17是采用并入本發明的可編程邏輯器件的示例性系統的簡化框圖。被配置為包括根據本發明的任何實施方式的算術電路的PLD 60可以使用在許多種類的電子設備中。一種可能使用是在圖6中所示的示例性數據處理系統600中。數據處理系統600可以包括以下部件中的一個或多個:處理器601;存儲器602;I/O電路603;和外圍設備604。這些部件通過系統總線605耦合在一起并且填充在包含在終端用戶系統607中的電路板606上。
系統600可以使用在各種各樣的應用中,諸如計算機網絡、數據網絡、儀器、視頻處理、數字信號處理、遠程無線電頭端(RRH)或其中使用可編程或可再編程邏輯的優點是期望的任何其他應用。PLD60可以被用于執行各種不同的邏輯功能。例如,PLD 60可以被配置為與處理器601協同工作的處理器或控制器。PLD 60還可以用作用于仲裁對系統600中的共享資源的訪問的仲裁器。在又一示例中,PLD60可以被配置為處理器1801與系統600中的其他部件之一之間的接口。應當注意,系統600僅是示例性的,并且本發明的真實范圍和精神應當由以下權利要求指示。
各種技術可以被用于實現如上文所描述并且并入本發明的PLD60。
根據一個方面,接收數據輸入和基于數據輸入而生成數據輸出的電路裝置包括第一電路塊。第一電路塊包括第一乘法器電路、將第一乘法器電路的操作流水線化的第一多個流水線寄存器、接受來自第一電路塊內的第一加法器輸入和來自第一塊間連接的第二加法器輸入 的第一加法器電路。電路裝置還包括經由第一塊間連接級聯到第一電路塊的第二電路塊。第二電路塊包括第二乘法器電路和將第二乘法器電路的操作流水線化的第二多個流水線寄存器。第二多個流水線寄存器具有第一可選擇的連接配置,使得第二多個流水線寄存器中的一個或多個流水線寄存器被配置為選擇性地旁路以平衡第一加法器輸入和第二加法器輸入。
如果期望的話,第一塊間連接包括級聯寄存器,并且級聯寄存器被布置在第一電路內、第二電路塊內或第一電路塊與第二電路塊之間。
在一些實施例中,第二電路塊還包括被布置為平衡第二多個流水線寄存器的多個平衡寄存器,并且多個平衡寄存器中的一個或多個寄存器被配置為選擇性地旁路以平衡第二電路塊。
在一些實施例中,第一加法器電路包括經由第一多個流水線寄存器連接到第一乘法器電路的第二可選擇的連接。
在一些實施例中,第一電路塊包括被布置為平衡第一多個流水線寄存器的多個平衡寄存器,并且在來自多個平衡寄存器的一個或多個寄存器與第一多個流水線寄存器的最后一個寄存器之間的第三可選擇的連接配置,使得一個或多個寄存器被配置為作為延時寄存器重新使用以創建針對第一加法器輸入的附加延時。
如果期望的話,電路的第二電路塊還包括多個平衡寄存器,其被布置為平衡第二多個流水線寄存器。而且,第一塊間連接被連接到第二多個流水線寄存器或多個平衡寄存器。
如果期望的話,電路還包括經由第二塊間連接級聯到第二電路塊的第三電路塊,并且包括第三乘法器電路、與第三乘法器電路連接布置的第三多個流水線寄存器、布置為接近所述第三多個流水線寄存器并且連接到第二塊間連接的多個平衡寄存器。而且,多個平衡寄存器中的一個或多個選擇性地旁路以通過第二塊間連接平衡數據路徑。
在一些實施例中,第一塊間連接包括對來自第二電路塊的第一多路復用輸入和來自第三電路塊的第二多路復用輸入進行多路復用的 多路復用器元件。
根據一個方面,在浮點模式或定點模式下操作的電路裝置包括第一電路和第二電路。第一電路接受第一數據輸入和生成第一數據輸出。第一電路包括接受第一數據輸入的第一算術元件、與第一算術元件連接地布置的多個流水線寄存器和輸出第一數據輸出的級聯寄存器。第二電路接受第二數據輸入和生成第二數據輸出。而且,第二電路級聯到第一電路,使得第一數據輸出經由級聯寄存器連接到第二數據輸入,并且當第一電路在定點模式下操作時,級聯寄存器被選擇性地旁路。
在一些實施例中,第一算術元件包括支持浮點乘法的乘法器。
在一些實施例中,第二電路包括支持浮點操作的第二算術元件。第二算術元件經由級聯寄存器接受第二數據輸入并且生成第二數據輸出。
在一些實施例中,當第一電路和第二電路在浮點模式下操作時,使用級聯寄存器和平衡寄存器。
在一些實施例中,當使用級聯寄存器時,選擇性地旁路來自多個流水線寄存器中的一個流水線寄存器。
在一些實施例中,電路的第二電路還包括第二算術元件、第三算術元件、與第二算術元件布置的第二多個流水線寄存器和多個輸入平衡寄存器。第二算術元件接受第二數據輸入。
在一些實施例中,第二多個流水線寄存器的最后一個寄存器被連接到來自多個輸入平衡寄存器的輸入平衡寄存器,并且來自輸入平衡寄存器的數據饋送到第二算術元件中。
在一些實施例中,電路還包括接受第三數據輸入和生成第三數據輸出的第三電路。
如果期望的話,電路還包括對第三數據輸出和第一數據輸出進行多路復用的多路復用器,其中,多路復用器連接到第二數據輸入。
在一些實施例中,電路還包括布置在多路復用器之后的冗余寄存器,并且冗余寄存器的輸出被饋送到第二電路中以在多路復用器跳過 第三數據輸出時維持數據流。
根據一個方面,在遞歸向量模式下操作的電路裝置包括第一電路、第二電路和第三電路。第一電路接受第一輸入和第一塊間輸入,并且生成第一輸出。第二電路級聯到第一電路并且接受第二輸入和第二塊間輸入,并且經由第一級聯寄存器將第一塊間輸入輸出到第一電路。第一級聯寄存器連接到多個流水線寄存器,并且當使用第一級聯寄存器時,選擇性地旁路來自多個流水線寄存器的流水線寄存器。第三電路級聯到第二電路、接受第三輸入并且將第二塊間輸入輸出到第二電路和第三輸出。第一輸出連接到第三輸入,并且第三輸出連接到第二輸入。
在一些實施例中,第二電路包括支持浮點操作的算術元件,并且當第二電路在浮點模式下操作時,使用第一級聯寄存器。
在一些實施例中,電路裝置包括布置在第二電路與第三電路之間的冗余寄存器。而且,當使用冗余寄存器時,選擇性地旁路第三電路內的輸入寄存器。
在一些實施例中,第三電路包括接受第三輸入的多個輸入寄存器,并且輸入寄存器選自多個輸入寄存器,使得旁路輸入寄存器對第三電路的性能具有減少的影響。
根據一個方面,操作級聯電路裝置的方法包括經由第一電路內的多個輸入寄存器接收數據輸入信號。第一電路包括支持浮點操作的第一算術元件、將第一算術元件的操作流水線化的多個流水線寄存器和連接到第二電路的級聯寄存器。方法還包括以下操作:從處理器接收第一命令信號以使用級聯寄存器;并且響應于第一命令信號,選擇性地旁路來自多個輸入寄存器的一個輸入寄存器或者來自多個流水線寄存器的一個流水線寄存器以補償來自級聯寄存器的延遲;并且經由級聯寄存器將塊間數據信號從第一電路傳送到第二電路。
在一些實施例中,方法還包括從處理器接收第二命令信號以旁路級聯寄存器,并且響應于第二命令信號,在不穿過級聯寄存器的情況下,將塊間數據信號從第一電路傳送到第二電路。
在一些實施例中,當數據輸入信號具有浮點格式時,處理器發送第一命令信號,并且當數據輸入信號具有定點格式時,處理器發送第二命令信號。
將理解到,前述僅說明本發明的原理,并且在不脫離本發明的范圍和精神的情況下,可以由本領域技術人員做出各種修改。例如,可以以任何期望的數目和/或布置在PLD上提供本發明的各種元件。本領域技術人員將理解到,可以通過除了出于說明而非限制的目的呈現的所描述的實施例實踐本發明,并且本發明僅由以下權利要求限制。