TWI408600B - 具有內部位元先進先出電路之計算單元 - Google Patents

具有內部位元先進先出電路之計算單元 Download PDF

Info

Publication number
TWI408600B
TWI408600B TW097109496A TW97109496A TWI408600B TW I408600 B TWI408600 B TW I408600B TW 097109496 A TW097109496 A TW 097109496A TW 97109496 A TW97109496 A TW 97109496A TW I408600 B TWI408600 B TW I408600B
Authority
TW
Taiwan
Prior art keywords
bit
register
field
unit
read
Prior art date
Application number
TW097109496A
Other languages
English (en)
Other versions
TW200903325A (en
Inventor
James Wilson
Joshua Kablotsky
Yosef Stein
Original Assignee
Analog Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of TW200903325A publication Critical patent/TW200903325A/zh
Application granted granted Critical
Publication of TWI408600B publication Critical patent/TWI408600B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)

Description

具有內部位元先進先出電路之計算單元
本發明係關於具有內部位元先進先出電路之計算單元。
這項申請案係關於由Wilison等人在2005年10月26號(AD-432J)申請之美國專利申請案第11/258,801號題為"改良式管線式數位信號處理器(IMPROVED PIPELINED DIGITAL SIGNAL PROCESS)",該案以引用之方式併入本文中。
數位信號處理器是一種特殊用途之處理器,其經最佳化以用於數位信號處理應用,諸如數位濾波、語音分析與合成或視訊編碼與解碼,以產生經壓縮之位元流。某些通信或視訊應用可以使用哈夫曼(Huffman)編碼,其使用可變長度編碼方案(有別於使用每碼字固定數量位元之編碼方案)。哈夫曼編碼最小化用於以最高頻率出現之碼字之總位元數。此編碼基於已知概率來選擇位元數,致使當資料流中的該等位元抵達時解碼該資料位元流。此編碼達成更緊密之資料壓縮,因為最常出現之字元是短的,及偶爾出現之字元是長的,其中具有最高出現概率之最短字元只有一位元長。大多數之數位信號處理器被設計用以操縱具有固定字大小(例如,8位元,16位元或32位元之字)之資料。當處理器需要操縱非標準字大小時,典型地使用位元先進先出電路來實現,位元先進先出電路可處置任何指定長度位元欄位。此類裝置之一缺點在於其實施在計算單元外部 之儲存器中,致使每當需要存取以進行讀或寫時,拖延可能發生。只能透過資料位址產生器(DAG)完成對擴展儲存器之存取的事實而使之惡化。相依於外部位元先進先出電路之另一個問題在於其增加信號必須行進之距離以及因此限制了操作循環之速度。
因此本發明之一目的是提供一種具有內部位元先進先出電路之改良式計算單元。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其利用該計算單元之查詢表以實施該位元先進先出電路。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其能有條件地自外部儲存器填充(fill)及移取(spill)到外部儲存器。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其設定及上限標準(high water mark)及下限標準(low water mark)以定義一用於連續位元流運算元之窗。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其用32位記憶體對齊字填充與移取。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其中以上限標準及下限標準為條件而使填充及移取發生。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其能在一個循環中在一外部儲存器與任何計算單元資料暫存器之間以一連續位元流之形式轉遞一指定長度位元欄位。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其可以利用一查詢表之僅一部分並且可能有一個以上位元先進先出電路在一或多個查詢表中。
本發明之進一步目的是提供此種具有內部位元先進先出電路之改良式計算單元,其能從左到右(大端(Big Endian))或從右到左(小端(Little Endian))存入/提取資料。
本發明係實現下列之結果:可在一計算單元內在內部提供一位元先進先出,其係藉由在該計算單元中組態一查詢表,以定義一位元先進先出基底位址、長度及讀/寫模式,並回應於具有一查詢表識別欄位、位元長度欄位及暫存器提取/存入欄位的一指令,而使用讀/寫指標暫存器,用於在一單個循環中在該先進先出電路與該資料暫存器之間選擇性地轉遞一指定長度位元欄位。
然而,在其他實施例中,本發明不需要達成所有這些目的並且其請求項不應限制於能夠達成這些目的之結構或方法。
本發明之特徵在於具有內部位元先進先出電路之計算單元,其包括:至少一資料暫存器;一查詢表;一組態暫存器,其包含先進先出基底位址、長度及讀/寫模式欄位, 用於組態該查詢表之一部分以作為一位元先進先出電路;及一讀/寫指標暫存器,其回應於具有一查詢表識別欄位、位元長度欄位及暫存器提取/存入欄位的一指令,用於在一單個循環中在該先進先出電路與該資料暫存器之間選擇性地轉遞一指定位元長度欄位。
在一較佳實施例中,該組態暫存器可進一步包含一小端/大端模式欄位。轉遞一位元欄位可包含:回應於在該組態暫存器及該指標暫存器中之資訊以及該指令,從該先進先出電路提取一位元欄位並儲存該位元欄位在該計算單元資料暫存器中。轉遞一位元欄位可包含:從一資料暫存器存入一位元欄位到該位元先進先出電路中,並回應於在該組態暫存器及該指標暫存器中之資訊以及該指令。提取可包含:藉由在模先進先出長度中之該指定長度,更新在該讀指標暫存器中之讀指標。存入可包含:藉由在該模先進先出長度中之該指定長度,更新在該寫指標暫存器中之寫指標。該讀/寫指標暫存器可包含用於追蹤該指定長度的一字位址欄位及位元位置欄位。該讀/寫指標暫存器可進一步包含一限制標準(water mark)暫存器,該限制標準暫存器用於定義:上限標準,對於高於該上限標準,禁止轉遞至該位元先進先出電路,並且必須移取該位元先進先出電路到一外部儲存器;及下限標準,對於低於該下限標準,准許轉遞至該位元先進先出電路,並且啟用以一連續位元流運算元從該外部儲存器填充該位元先進先出。用外部記憶體之填充及移取可係以32位元字出現。該等32位元字是 對齊之記憶體。該查詢表可包含一隨機存取記憶體。該資料暫存器可係該計算單元暫存器檔案之一者。提取可包含:如果留置於該先進先出中之該等位元低於該下限標準,則更新該讀指標暫存器中之讀指標並產生一下限標準信號。存入可包含:如果該先進先出中之該等位元高於該上限標準,則更新該寫指標暫存器中之寫指標並產生一上限標準信號。該查詢表可以包含多個位元先進先出。
除了以下揭露之較佳實施例,本發明有其他實施例以及以各種方式實踐或實施之能力。因此,應瞭解本發明之應用並不限於以下描述中所闡述或圖中說明之構造細節及組件佈置。如果本文描述佄一項實施例,其請求項非限於該實施例。此外,其請求項不被認為局限性,除非有明確及令人信服之證據展現特定之排斥、限制或宣告放棄。
圖1中所示之數位信號處理器210包含:一位址單元212,其具有一或多個數位位址產生器214、216;一控制單元,諸如程式定序器218;及一或多個計算單元220,每一計算單元含有若干電路,諸如算術邏輯單元222、乘法/累加器224、移位器226。在一個數位信號處理器中通常有兩個、四個或更多之計算單元。該數位信號處理器係透過記憶體匯流排228連接到一或多個記憶體,諸如第一階(L1)記憶體230,包含程式記憶體232及資料記憶體234或附加記憶體236。記憶體230可能是第一階記憶體,其通常非常快速並且相當昂貴。記憶體236可能是第三階(L3)記 憶體,其比較便宜並且比較慢。隨著數位信號處理器210操作於1GHz及更高,操作循環是如此之快以至於該位址單元及計算單元需要一個以上循環以完成它們之操作。為了改良數位信號處理器210之總處理能力以及加強它之效能,其典型係深管線式。
在管線式操作中,當跨所有處理器平行建置組塊介於先前指令之結果與後續指令之間的無相依性時,管線式效率被保存。然而,如果有此種相依性,則管線拖延可能發生,其中管線將停止並等待有問題的指令完成,才能繼續進行工作。例如,如果一計算結果不能被直接儲存但必須被用來產生一位址(可在該位址處在記憶體中找到該計算結果之相關函數),則在計算單元結果與資料位址產生器之間有一種相依性,其破壞管線之平穩操作,一實例將足以說明。
假設計算單元計算一結果,其是一個角α,但是它是該角之一函數sine α,其將被用在執行後續操作中。然後計算單元必須轉遞計算結果到位址單元212,在位址單元212處的資料位址產生器214或216產生正確之位址以從記憶體230或236提取該角之正弦函數並把它帶回且提交給計算單元。管線中之此拖延或中斷浪費時間。數位信號處理器210之一個特徵在於位址單元212並且僅位址單元212可定址記憶體230及236。因此任何時候,計算單元需要來自L1記憶體230或L3記憶體236的資訊才能進行操作時,歸因於計算單元結果在遲於該資料位址產生器212暫存器被載入時之階段才有效之事實,而造成管線式操作變得拖延。
按照本發明,在根據本發明之數位信號處理器10a中,圖2之每個計算單元20a、20b、20c、20d皆具備一本端可重組態填充與移取隨機存取記憶體陣列,例如,查詢表(LUT)50a。計算單元28典型可包含:乘法器52;若干選擇電路54及56;多項式乘法器58,諸如用於Galois欄位操作者;桶式移位器(barrel shifter)60;算術邏輯單元62;累加器64;及多工器66等等。再者,每一計算單元包含一暫存器檔案68。資料暫存器可能是計算單元暫存器檔案之一者。典型地,當有一個以上計算單元(例如,在圖3中,計算單元20a、20b、20c及20d)時,計算單元可皆共用相同暫存器檔案68。每一計算單元亦有自己之本端可重組態填充與移取隨機存取記憶體陣列(查詢表50a、50b、50c及50d)。本端可重組態填充與移取隨機存取記憶體陣列係小得足以剛好能容納於習知計算單元中並且係可在一循環中存取,而本端可重組態填充與移取隨機存取記憶體陣列亦係大得足以支援計算單元內部之大多數應用,而不必用到外部記憶體及引起管線拖延。
具有內部組態之位元先進先出電路的計算單元(例如,使用一個內部計算單元查詢表)係適用於編碼操作及解碼操作兩者。在編碼操作中,圖3A之計算單元10包含一算術邏輯單元12、一或多個資料暫存器14及一位元先進先出16,連同計算單元中通常存在的其他組件。操作中,原始資料或未經壓縮之位元流18係在線路20上被提供到算術邏輯單元12,算術邏輯單元12按照某演算法(例如H.264、 Windows Media、MP3或類似項)壓縮資料。經壓縮資料典型係在一運算元區塊中(諸如一巨集區塊)轉遞到資料暫存器14。然後,資料暫存器14轉遞經壓縮資料到位元先進先出16,位元先進先出16在線路22上提供連續位元流運算元(諸如視訊巨集區塊)作為經壓縮位元流24。
除了在計算單元10中提供一內部組態之位元先進先出16,本發明具有在位元先進先出16中提供上限標準功能之額外特徵。在編碼操作期間,如果位元先進先出16中之位元數目超過該上限標準,此指示出位元先進先出中沒有足夠之空間以存入足夠位元以用於編碼一個完整運算元(例如一完整巨集區塊),所以位元先進先出16中之一些位元必須移取到外部儲存器(典型係一L3級儲存器)。
當圖3B之計算單元10操作在解碼操作中時,一壓縮位元流26(諸如來自一L3級儲存器裝置)係在線路28上轉遞到位元先進先出16。這些位元係經由資料暫存器14被轉遞到算術邏輯單元12,算術邏輯單元12以巨集區塊之運算元解碼該資料(典型在視訊應用中)。然後,在線路30上提供未經壓縮或經解碼之資料以作為未經壓縮資料32。
本發明之一額外特徵在於位元先進先出16中之下限標準操作。下限標準確立低於下限標準則無法有效地完成對運算元(例如一巨集區塊)之解碼並且必須從外部儲存器填充位元先進先出的極限。當該位元先進先出16中之位元數目高於該下限標準時,則確立位元先進先出16中有至少最小數目之位元以使巨集區塊或其他定義之運算元能夠被解 碼,而在處理中無拖延發生。
在查詢表40中組態圖4之位元先進先出16,查詢表40可能是在計算單元10內部包含的一查詢表,諸如圖2之LUT0 50a、LUT1 50c、LUT2 50b、LUT3 50d。除了算術單元12及一或多個資料暫存器14外,計算單元10亦包含一位元先進先出組態暫存器42、讀/寫指標暫存器44及限制標準暫存器46。組態暫存器42實際上組態查詢表40中的位元先進先出16。組態暫存器42具有:一讀/寫欄位48,其指示是否讀取或寫入至位元先進先出16;及端(endian)欄位50,其指示操作位元先進先出16之方式是否係先讀取最高有效位元地從右到左的大端,或係先讀取最低有效位元地從左到右的小端。組態暫存器42亦具有:一欄位52,用來定義查詢表40中之位元先進先出16之長度;以及起始位址或基底位址54,用來定義查詢表40中之位元先進先出16之起始位址。指標暫存器44包含一個寫指標56及一個讀指標58。圖5A之寫指標56包含一字位址60及位元位置62。讀指標58亦包含一字位址欄位64及位元位置欄位66。在每種情況下,字位址分別指示位元先進先出16中待讀取及寫入之位址,而位元位置指示已藉由圖5B及5C之讀指令及寫指令分別指定的位址之位元數目。圖5B之讀指令70包含:一位元先進先出識別欄位72,其識別其中位元先進先出已被組態的特定查詢表;欄位74,在欄位74中指示待讀取位元之長度;欄位76,在欄位76中指示待存入位元之數目。圖5C之寫指令80亦具有:一欄位82,其識別其中待寫入之位 元先進先出已被組態的查詢表;一欄位84,在欄位84中指定待寫入之位元長度;及一欄位86,其識別特轉遞提取之位元至其的暫存器。
回到圖4,限制標準暫存器46包含一上限標準欄位90及下限標準欄位92。上限標準欄位係涉及當存入或寫入位元正在發生時的編碼操作期間。下限標準欄位係涉及當提取或讀取位元正在發生時的解碼操作期間。指標暫存器44回應於一讀指令或寫指令以用於在單個循環中從位元先進先出電路選擇性地轉遞到資料暫存器或該資料暫存器選擇性地轉遞到該位元先進先出電路。指定位元欄位之轉遞可意謂著從先進先出電路提取一位元欄位並儲存該位元欄位在計算單元資料暫存器中,或從資料暫存器存入一位元欄位到位元先進先出電路中。提取動作或存入動作包含藉由在模先進先出長度中之指定長度分別更新在讀指標暫存器中之讀指標或寫指標暫存器中之寫指標,以適切追蹤位元先進先出16之狀態,其是一循環式記憶體。即,例如假設位元先進先出16是一512位元記憶體,當位元滿溢512時,位元先進先出16循環回到零並再次開始,如箭頭94所示。圖5A之指標暫存器中之字位址及位元位置持續追蹤位元先進先出16中之資料。
在解碼操作期間,限制標準暫存器46利用上限標準欄位90以用信號發送先進先出幾乎滿並且必須藉由從該位元先進先出16移取或卸載位元到晶片外記憶體100(諸如L3級)以使空間可用,否則將發生資料滿溢。在解碼操作中下限 標準欄位用信號發送先進先出中沒有足夠資料以處理下一個巨集區塊以及必須被從晶片外位元流記憶體100填充先進先出,否則資料不足將發生。下限標準被設定在最小位元數目以確保有足夠之位元以允許一完整運算元(例如,視訊巨集區塊)被處理,而未由於缺乏足夠資料而使拖延發生。
在圖6中顯示下限標準102及上限標準104之圖形表示,其中自上而下填充查詢表40。亦分別顯示基底位址106之位置以及讀指標108之位置與寫指標110之位置。圖6中亦顯示:大端路徑112,MSB最先,左到右;以及小端路徑114,LSB最先,右到左。填充及移取到外部記憶體100較好以標準字(諸如32位元字,並且典型係對齊之記憶體)出現,即以位元組(8個位元)、短字(16個位元)、字(32個位元)或雙字(64個位元)來操縱填充及移取。可用習知隨機存取記憶體裝置來實施查詢表40。
參考圖7A及7B能更好地理解上限標準及下限標準之操作。在圖7A中,在位元先進先出16中有大量之位元120,其中寫指標110非常接近上限標準104,在此點必須移取先進先出以避免資料滿溢。在圖7B中,在位元先進先出16中僅有少許位元122,並且讀指標108剛剛勉強達到下限標準,其確認在位元先進先出16中有足夠之位元122,以及必須填充先進先出以完全處理運算元(例如資料視訊巨集區塊),而無拖延或資料不足。
在圖8及9中分別描繪分別從晶片外L3級記憶體100填充 之操作及移取到晶片外L3級記憶體100之操作。在圖8之填充操作中,經由資料暫存器14從晶片外L3級記憶體100填充位元先進先出16,資料暫存器14接受四個8位元之位元組或一個32位元之字並轉遞其到在122指示之可用空間中在寫指標110處的位元先進先出16。從位元先進先出16到外部晶片記憶體100之移取操作發生在圖9中,當高於讀指標108上面之資料被轉遞到資料暫存器14以用於傳送到晶片外記憶體100時。雖然至此已引用單個計算單元中之單個查詢表中之單個位元單先進先出來解說本發明,但是計算單元可以有一個以上組態之位元先進先出;事實上,在圖10之單一查詢表40中可以有一個以上位元先進先出16a、16b。
雖然本發明之具體特徵被顯示在一些圖式中且未顯示於其他圖式中,但這僅為了方便,因為每個特徵可根據本發明之任意或所有其他特徵結合。在這裏所使用之用詞“包含”、“包括”、“有”及“具有”被廣泛地全面地理解且不被限制於任意實現互連。此外,在本申請案中揭露之任何實施例不被作為唯一可能之實施例。
此外,在專利申請案之追訴期間對本專利提出之任何修正不是對在如申請之申請案中提出之任何請求項之宣告放棄:熟習此項技術者不能合理地預期起草一請求項,其可能從字面上來看涵蓋了所有可能之當量,很多當量將在修正之時間係不可預見並超出將要被放棄之合理解釋(如果有之話),基本原理修正可能承擔不超過一個對很多當量 之正切關係,及/或有很多其他原因,申請人不能指望來描述對所附任何請求項之某些無實質之代替。
其他實施例將被那些熟習此項技術者想到並且在以下之請求項中。
10‧‧‧計算單元
10a‧‧‧數位信號處理器
12‧‧‧算術邏輯單元
14‧‧‧資料暫存器
16‧‧‧位元先進先出
16a‧‧‧位元先進先出
16b‧‧‧位元先進先出
18‧‧‧未經壓縮之位元流(原始資料)
20‧‧‧線路
20a‧‧‧計算單元
20b‧‧‧計算單元
20c‧‧‧計算單元
20d‧‧‧計算單元
22‧‧‧線路
24‧‧‧經壓縮位元流
26‧‧‧來自L3的壓縮位元流
28‧‧‧線路
30‧‧‧線路
32‧‧‧未經壓縮資料
40‧‧‧查詢表
42‧‧‧組態暫存器
44‧‧‧讀/寫指標暫存器
46‧‧‧限制標準暫存器
48‧‧‧讀/寫欄位
50a‧‧‧查詢表
50b‧‧‧查詢表
50c‧‧‧查詢表
50d‧‧‧查詢表
50‧‧‧端欄位
52‧‧‧乘法器
52‧‧‧欄位
54‧‧‧選擇電路
54‧‧‧起始位址或基底位址
56‧‧‧選擇電路
56‧‧‧寫指標
58‧‧‧多項式乘法器
58‧‧‧讀指標
60‧‧‧桶式移位器
62‧‧‧算術邏輯單元
64‧‧‧累加器
66‧‧‧多工器
68‧‧‧暫存器檔案
70‧‧‧讀指令
72‧‧‧位元先進先出識別欄位
74‧‧‧欄位
76‧‧‧欄位
80‧‧‧寫指令
82‧‧‧欄位
84‧‧‧欄位
86‧‧‧欄位
90‧‧‧上限標準欄位
92‧‧‧下限標準欄位
94‧‧‧開始代表箭頭
94‧‧‧開始代表箭頭
100‧‧‧晶片記憶體
102‧‧‧下限標準
104‧‧‧上限標準
106‧‧‧基底位址
108‧‧‧讀指標
110‧‧‧寫指標
112‧‧‧大端:MSB最先,左到右
114‧‧‧小端:LSB最先,右到左
120‧‧‧位元
122‧‧‧位元
210‧‧‧數位信號處理器
212‧‧‧位址單元
214‧‧‧數位位址產生器
216‧‧‧數位位址產生器
218‧‧‧程式定序器
220‧‧‧計算單元
222‧‧‧算術邏輯單元
224‧‧‧乘法/累加器
226‧‧‧移位器
228‧‧‧記憶體匯流排
230‧‧‧第一階(L1)記憶體
232‧‧‧程式記憶體
234‧‧‧資料記憶體
236‧‧‧附加記憶體
圖1是一種先前技術之具有外部記憶體及記憶體匯流排之數位信號處理器(DSP)之簡化方塊圖;圖2是一種根據本發明具有多個有本端可重組態查詢表之計算單元之數位信號處理器之方塊圖;圖3A及3B分別是根據本發明之編碼及解碼系統之簡化示意方塊圖;圖4是根據本發明在計算單元中之查詢表中實施之內部位元先進先出之示意圖;圖5A、5B及5C分別顯示該指標暫存器、讀指令及寫指令之欄位配置;圖6是類似於圖4之圖,說明根據本發明具有大端及小端選項之下限標準特徵及上限標準特徵之使用;圖7A及7B分別顯示使用及上限標準及下限標準之功效。
圖8及9分別顯示在實施位元先進先出之查詢表及外部儲存器之間之填充及移取操作;及圖10說明在一個查詢表中實施一個以上位元先進先出。
10a‧‧‧數位信號處理器
20a‧‧‧計算單元
20b‧‧‧計算單元
20c‧‧‧計算單元
20d‧‧‧計算單元
50a‧‧‧查詢表
50b‧‧‧查詢表
50c‧‧‧查詢表
50d‧‧‧查詢表
52‧‧‧乘法器
54‧‧‧選擇電路
56‧‧‧選擇電路
58‧‧‧多項式乘法器
60‧‧‧桶式移位器
62‧‧‧算術邏輯單元
64‧‧‧累加器
66‧‧‧多工器
68‧‧‧暫存器檔案

Claims (15)

  1. 一種包含一位址單元、一控制單元及一計算單元之數位信號處理器,該計算單元包括:至少一資料暫存器;一算術邏輯單元;一本地隨機存取記憶體陣列;一組態暫存器,其包含一先進先出基底位址欄位、一長度欄位及一讀/寫模式欄位,用於組態該記憶體陣列之一部分以作為一位元先進先出電路以提供或儲存一連續位元流運算元;及一讀/寫指標暫存器,其回應於具有一識別欄位、一位元長度欄位及一暫存器提取/存入欄位的一指令,用於在一單個時脈循環中在該位元先進先出電路與該資料暫存器之間選擇性地轉遞具有於該位元長度欄位中指定之一長度之一位元欄位。
  2. 根據請求項1之計算單元,其中該組態暫存器進一步包含一小端/大端模式欄位。
  3. 根據請求項1之計算單元,其中轉遞一位元欄位包含:回應於在該組態暫存器及該指標暫存器中之資訊以及該指令,從該位元先進先出電路提取一位元欄位並儲存該位元欄位在該計算單元資料暫存器中。
  4. 根據請求項1之計算單元,其中轉遞一位元欄位包含:從一資料暫存器存入一位元欄位到該位元先進先出電路中,並回應於在該組態暫存器及該指標暫存器中之資訊 以及該指令。
  5. 根據請求項3之計算單元,其中提取包含:藉由在模先進先出長度中之該指定長度,更新在該讀指標暫存器中之讀指標。
  6. 根據請求項3之計算單元,其中存入包含:藉由在該模先進先出長度中之該指定長度,更新在該寫指標暫存器中之寫指標。
  7. 根據請求項1之計算單元,其中該讀/寫指標暫存器包含用於追蹤該指定長度的一字位址欄位及位元位置欄位。
  8. 根據請求項1之計算單元,進一步包含一限制標準暫存器,該限制標準暫存器用於定義:上限標準,對於高於該上限標準者,必須移取該位元先進先出電路到一外部儲存器;及下限標準,對於低於該下限標準者,必須用該連續位元流運算元從該外部儲存器填充該位元先進先出。
  9. 根據請求項1之計算單元,其中用一外部記憶體之填充及移取以32位元字出現。
  10. 根據請求項9之計算單元,其中該等32位元字是對齊之記憶體。
  11. 根據請求項1之計算單元,其中該查詢表包含一隨機存取記憶體。
  12. 根據請求項1之計算單元,其中該資料暫存器是該計算單元暫存器檔案之一者。
  13. 根據請求項8之計算單元,其中提取包含:如果留置於 該先進先出中之該等位元低於該下限標準,則更新該讀指標暫存器中之讀指標並產生一下限標準信號。
  14. 根據請求項8之計算單元,其中存入包含:如果該先進先出中之該等位元高於該上限標準,則更新該寫指標暫存器中之寫指標並產生一上限標準信號。
  15. 根據請求項1之計算單元,其中該查詢表可包含多個位元先進先出。
TW097109496A 2007-03-26 2008-03-18 具有內部位元先進先出電路之計算單元 TWI408600B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/728,358 US7882284B2 (en) 2007-03-26 2007-03-26 Compute unit with an internal bit FIFO circuit

Publications (2)

Publication Number Publication Date
TW200903325A TW200903325A (en) 2009-01-16
TWI408600B true TWI408600B (zh) 2013-09-11

Family

ID=39788803

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097109496A TWI408600B (zh) 2007-03-26 2008-03-18 具有內部位元先進先出電路之計算單元

Country Status (6)

Country Link
US (1) US7882284B2 (zh)
EP (1) EP2130132B1 (zh)
JP (1) JP5191532B2 (zh)
CN (1) CN101657803B (zh)
TW (1) TWI408600B (zh)
WO (1) WO2008118277A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8024551B2 (en) * 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
JP4963683B2 (ja) * 2008-03-31 2012-06-27 富士フイルム株式会社 インクジェット記録装置
TWI424372B (zh) * 2010-03-24 2014-01-21 Altek Corp Selectable image line path means
US9740484B2 (en) * 2011-12-22 2017-08-22 Intel Corporation Processor-based apparatus and method for processing bit streams using bit-oriented instructions through byte-oriented storage
CN103389893B (zh) * 2013-07-09 2016-01-13 福州瑞芯微电子股份有限公司 一种配置寄存器读写方法及装置
CN115481079B (zh) * 2021-06-15 2023-07-07 珠海一微半导体股份有限公司 一种数据调度系统、可重构处理器及数据调度方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710939A (en) * 1995-05-26 1998-01-20 National Semiconductor Corporation Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
US5819102A (en) * 1991-08-09 1998-10-06 Lotus Corporation Formula processor having cache means for storing and retrieving results of previously computed formulas base on identification and dependency informations
US5961640A (en) * 1997-04-22 1999-10-05 Vlsi Technology, Inc. Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
US6009499A (en) * 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
TW559729B (en) * 1999-09-01 2003-11-01 Intel Corp Instruction for multithreaded parallel processor

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5351047A (en) * 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors
JP4298006B2 (ja) * 1997-04-30 2009-07-15 キヤノン株式会社 画像プロセッサ及びその画像処理方法
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US5970241A (en) * 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
JPH11161467A (ja) * 1997-12-01 1999-06-18 Ricoh Co Ltd データ転送制御装置
US6094726A (en) 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
JP2000101975A (ja) * 1998-09-21 2000-04-07 Nec Corp 映像再生システム
US6332188B1 (en) 1998-11-06 2001-12-18 Analog Devices, Inc. Digital signal processor with bit FIFO
US6829695B1 (en) 1999-09-03 2004-12-07 Nexql, L.L.C. Enhanced boolean processor with parallel input
KR100461339B1 (ko) * 2002-05-14 2004-12-10 주식회사 포디컬쳐 영상데이터 전송장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819102A (en) * 1991-08-09 1998-10-06 Lotus Corporation Formula processor having cache means for storing and retrieving results of previously computed formulas base on identification and dependency informations
US5710939A (en) * 1995-05-26 1998-01-20 National Semiconductor Corporation Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
US6009499A (en) * 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
US5961640A (en) * 1997-04-22 1999-10-05 Vlsi Technology, Inc. Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
TW559729B (en) * 1999-09-01 2003-11-01 Intel Corp Instruction for multithreaded parallel processor

Also Published As

Publication number Publication date
EP2130132A4 (en) 2011-11-16
JP2010522928A (ja) 2010-07-08
CN101657803A (zh) 2010-02-24
EP2130132A1 (en) 2009-12-09
JP5191532B2 (ja) 2013-05-08
WO2008118277A1 (en) 2008-10-02
US20080244237A1 (en) 2008-10-02
US7882284B2 (en) 2011-02-01
TW200903325A (en) 2009-01-16
EP2130132B1 (en) 2013-05-29
CN101657803B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
TWI408600B (zh) 具有內部位元先進先出電路之計算單元
JP5945291B2 (ja) デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置
JP5478068B2 (ja) 改善されたパイプライン化デジタル信号プロセッサ
JP6022581B2 (ja) Fifoロード命令
US10666288B2 (en) Systems, methods, and apparatuses for decompression using hardware and software
US10083034B1 (en) Method and apparatus for prefix decoding acceleration
US20070226420A1 (en) Compression method and apparatus for a CPU
TWI288349B (en) Apparatus and method for dynamic program decompression
US10069512B2 (en) Systems, methods, and apparatuses for decompression using hardware and software
US20110125987A1 (en) Dedicated Arithmetic Decoding Instruction
TWI249129B (en) Trace buffer circuit, pipelined processor, method for assigning instruction addresses of a trace buffer and associated apparatus
US20080059776A1 (en) Compression method for instruction sets
US20130086366A1 (en) Register File with Embedded Shift and Parallel Write Capability
JP3786329B2 (ja) 符号化復号化装置
JP2017525005A (ja) 専用算術符号化命令
JP2004326710A (ja) 演算処理装置及び方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees