TWI335521B - Dsp system with multi-tier accelerator architecture and method for operating the same - Google Patents
Dsp system with multi-tier accelerator architecture and method for operating the same Download PDFInfo
- Publication number
- TWI335521B TWI335521B TW095147640A TW95147640A TWI335521B TW I335521 B TWI335521 B TW I335521B TW 095147640 A TW095147640 A TW 095147640A TW 95147640 A TW95147640 A TW 95147640A TW I335521 B TWI335521 B TW I335521B
- Authority
- TW
- Taiwan
- Prior art keywords
- accelerator
- address
- instruction
- primary
- accelerators
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
Description
1335521 、九、發明說明: 【發明所屬之技術領域】 本發明係有關於一種具有多階層加速器架構之處理器 系統及操作方法,特別是有關於一種數位信號處理(digital signal processing,DSP)系統,其具有一主加速器橋接於 一數位信號處理器與複數個次加速器間,此主加速器可協 助數位信號處理器存取該等次加速器。 籲【先前技術】 處理器(例如一般用途的微處理器、微電腦、或數位 信號處理器)係根據操作程式來處理資料。現今的電子裝 置通常將處理任務分配至不同的處理器。舉例來說,移動 式通信裝置通常包括數位信號處理(digital signal processing,DSP)單元用以進行數位信號處理,例如語音 編碼/解碼以及調變/解調變。移動式通信裝置還包括一般用 鲁途之微處理單元,用以進行通信協定處理。 數位信號處理單元可與加速器整合以執行特定的任 務,例如波形等化,以進一步地最佳化數位信號處理單元 之效能。如第1圖所示,美國專利編號5,987,556揭露一種 ^*3 —個用於數位信號處理的加速器之資料處理裝置,此 資料處理裝置包括微處理器核心12〇、加速器14〇與其輸 出暫存器142、記憶體112、以及中斷控制器12卜加速器 140係透過資料匯流排、位址匯流排、以及讀取/寫入控制 線連接至微處理器核心12〇。加速器14〇透過讀取/寫入控 6 1335521 ’制線而受微處理器核心120所控制,以依據位址匯流排的 資料位址自微處理器核心120讀取資料或將資料寫入至微 處理器核心120。當具有高優先權之中斷要求傳送至微處 理核心120且由微處理器核心120所承認時,先前技術 之資料處理裝置可利用中斷控制器121來終止加速器140 與微處理器核心120間的資料存取。然而,此微處理器核 心120缺乏識別不同加速器的能力,因此資料處理裝置之 功能被限制了。 • 因此,提供一種具有處理不同加速器之能力的數位信 號處理系統乃一待解決之課題,使其可避免發生不明確處 理又不佔用過度的指令設定編碼空間。 【發明内容】 本發明提供一種數位信號處理系統,其具有存取與識 別複數個加速器之能力。此外,本發明提供一種數位信號 處理系統,其具有複數個多階層架構之加速器,以幫助加 φ 速器之選擇。 承上,本發明提供一種數位信號處理系統,其具有一 主加速器橋接於一數位信號處理器與共用一通用指令集複 數個次加速器間,其中,該主加速器可協助數位信號處理 器存取該等次加速器中至少一者。 在本發明之一實施例中,主加速器包含一位址指標暫 存器’其儲存包+—可定址的位址區段對應至該等次加速 器,以及一解碼器,用以接收數位信號處理器傳送之指令, 以控制位址指標暫存器。假使數位信號處理器打算存取某 7 1335521 一特定的次加速器,數位信號處理器將發佈一個包含階層 1(L1)加速器識別碼與存取指令之L1加速器指令。主加速 器會根據位址指標暫存器之子集位址選擇特定的次加速 器。或者,數位信號處理器可發送一 L1加速器指令以及一 偏移位址,以修改或更新位址指標暫存器之内容。 在本發明之另一實施例中,主加速器亦可傳送控制信 號至該等次加速器,以選擇特定的次加速器、設定資料傳 送尺寸、設定存取型態、以及指示參數傳送模式。 • 本發明的又一實施例提供一種多階層架構且使用一通 用加速器指令集的電腦系統,此電腦系統包括處理器、主 加速器與複數個次加速器。處理器用以傳送一選自該通用 加速器指令集的指令;主加速器則連接至處理器,以接收 指令;次加速器則透過主加速器連接至處理器。其中,主 加速器包括:一位址產生器,儲存一主位址集;以及一解 碼器,用以控制位址產生器依據指令與主位址集之中對應 的主位址以產生對應至一選中之次加速器的次位址。 ® 本發明之又一實施例提供一種操作方法’適用於一多 階層架構系統,此多階層架構系統包括一處理器以及共用 一通用指令集的複數個加速器。本實施例之方法包括:將 該等加速器對應至一位址集;自處理器接收一選自通用指 令集的指令,該指令包含一欄位對應至位址集中的一個位 址;以及依據該位址存取加速器其中一者。 為使本發明之上述目的、特徵和優點能更明顯易懂, 下文特舉一較佳實施例,並配合所附圖式,作詳細說明如 8 1335521 下0 【實施方式】 第2圖係繪示本發明一實施例之具有多階層加速器架 構的數位信號處理系統。在此數位信號處理系統中’數位 信號處理器(digital signal processor,DSP) 10 具有簡易 的一般加速器指令組,且透過一加速器介面60連接至階層 1 (Level-1,L1)加速器20。L1加速器20透過一個加速 器本地匯流排70連接至複數個階層2 (Level-2,L2)加速 器30A至30N。本實施例之多階層加速器架構包栝L1加 速器20與L2加速器30A至30N,兩者透過加速器本地匯 流排70相連接。此外,為了更明確地說明,li加速器可 與”主加速器”替換使用,而L2加速器可與”次加速器”替換 使用。
本實施例的多階層加速器架構提供了一些相較於先前 技術將加速器直接連接於處理ϋ之作法的優點。此類之應 用舉凡MiCr〇DSP1.x架構,其可利用上至四個加速器介面 支援複數個加速II。其中-個優點是,使用—個較小且一 般的U加速器齡組即可充分地域複數個 :此不需要針對每-新的L2加速器定義新 = 令。而在先前技術中,則需要對於每一 , 新的加速器指令組。另一個優點是 ’速器定義 器,而先前技術所支援的加速器數4= L2加速 大量L2加速器之方式係藉由標準記對=制。支援 法;L i加速器内包含一或多個32_C輸出方 疋L1位址指標,而 9 1335521 所有的L2加速器皆對應至此加速器位址空間(藉由L1加 速器位址指標定址),且數位信號處理器可使用此一般L1 加速器指令集來存取該等L2加速器。與L1加速器結合 後,L2加速器可汉δ十來取代先前技術之加速器,如此一來 數位信號處理器即可藉由發送L1加速器指令來執行(例如 開始、控制、及/或監控)簡易的單一週期任務或較複雜的 多週期任務,而此L1加速器指令係由L1加速器介面透過 加速器本地匯流排傳送至合適的L2加速器。上述之單一週 • 期任務。例如,反轉在數位信號處理器内之複數個暫存器 之一者内部的特定數量之最低有效位元(LSB),而多週 期任務則例如,MpEG-4編碼中計算與一區塊的影像資料 相關的運動向量。由數位信號處理器至L2加速器之控制與 資料資訊’以及由L2加速器返回至數位信號處理器之資料 資訊,皆流過多階層加速器架構内相同的介面及匯流排(加 速器介面60與加速器本地匯流排70)。 在本實施例的多階層加速器架構中,該等L2加速器 鲁 30A至30N不需要加速器識別碼(id),且數位信號處理 器指令組之編碼空間可有效被利用。在一實施例中,若 MicroDSP.l.x指令組使用4個位元來表示一個L1加速器 識別碼’則僅需整體指令組編碼空間的丨6分之1 (大約 6°/〇 )’即足以支援所有的硬體加速器,而剩餘整體指令 組編碼空間的16分之15 (大約94% )則可使用在數位信 號處理器核心的内部指令組方面。L2加速器30A至30N 之存取(讀取/寫入)係透過L1加速器20之位址指標以及 1335521 數位信號處理器ίο所提供的偏移位址(drift address)來 執行。 L2加速器30A至30N之每一者皆對應至一位址資料 段,此位址資料段是受L1加速器20之位址指標所定址之 總加速器位址空間的子集(subset)。L1加速器20首先識 別數位信號處理器所傳送之指令的L1加速器識別碼。假使 此預s又位元見度(例如4位元)之L1加速器識別碼出現在 指令中’ L1加速器20則辯認此指令為加速器指令,且L1 鲁加速器20將協助數位信號處理器1〇存取特定的[2加速 器。 或者,L1加速器20可根據加速器指令局部地更新本 身的内容’例如,調整其L1位址指標暫存器。在存取L2 加速器30的情況下,L1加速器20可根據加速器指令來驅 動加速器本地匯流排信號;本地匯流排位址可直接受L1 位址指標暫存器的驅動,或受L1位址指標暫存器之内容與 加速器指令所提供之資訊兩者之結合驅動。若需改變L1 •位址指標暫存器之内容時,其内容係由L1加速器指令所包 含之值來更新或修正。 第2圖與第3圖係示意根據本發明實施例之L1加速器 20之示意圖。l 1加速器20係透過加速器介面匯流排60 連接至數位信號處理器1〇。加速器介面匯流排6〇包括一 個24位元的加速器指令匯流排AIN[23:0]、—個32位元 L1寫入資料匯流排AWD[31:〇]、以及一個32位元L1讀取 資料匯流排ARD[31:0]。本實施例的指令匯流排及資料匯 1335521 流排之匯流排寬度僅為說明之用,而非用來限制本發明。 其他的匯流排寬度也可依實際的系統要求來做選擇。 L1加速器20係透過加速器本地匯流排70連接至複數 個L2加速器30A至30N。加速器介面匯流排70包括32 位元位址匯流排LAD[31:0]、控制匯流排LCTRL、32位元 L2寫入資料匯流排LWD[31:0]、以及32位元L2讀取資料 匯流排LRDP1:0]。 如第3圖所示’Ll加速器20包括解碼器22、位址產 • 生器24、寫入緩衝器26、以及讀取多工器28。解碼器22 透過AIN匯流排接收來自數位信號處理器1〇之指令,且 對接收之指令進行解碼。位址產生器24係受解碼器22所 控制,以輸出L2位址至LAD匯流排。寫入緩衝器26亦受 解碼器22所控制,以作為AWD匯流排與LWD匯流排間 的緩衝。讀取多工器28則多工處理該等L2加速器所驅動 之所有LRD匯流排。位址產生器24包括32位元位址指標 鲁暫存器(PTR) 240以儲存32位元位址。寫入緩衝器26 包含32位元寫入資料暫存器260。假使指令中包含l 1加 迷器識別碼,則解碼器22將識別接收之指令為加速器指 令。 根據本發明之一實施例,該等L2加速器30Α至30Ν 之存取係由位址產生器24所產生的[AD位址來確認。LAD 位址可藉由驅動位址指標暫存器(pTR)24〇的内容到位址 匯流排LAD[31:0]上來產生;或者藉由連結位址指標暫存 器240之最高有效位元(MSB)與加速器指令中作為分頁 1335521 模式(page-mode )立即偏移位址之一部分位址位元而產 生。位址指標暫存器可依加速器指令的指示後置增值 (post-increment)。位址的產生與指標後置增值與否係由 解碼器22所控制,解碼器22也可驅動控制匯流排LCTRL 之複數個控制信號,這些控制信號可依照加速器指令之指 示來控制L2加速器存取的執行。 第4圖係表示三個相異的L2加速器30A、30B、以及 30C之位址對應表的實施例。L2加速器30A至30C所提供 • 之加速器任務可藉由傳送適當的加速器指令至L1加速器 而受數位信號處理器10所控制與監測,而L1加速器可傳 送控制與資料資訊至L2加速器30内適當的位址位置。L1 加速器可以任何方向或同時雙向在數位信號處理器1〇與 任一個L2加速器之間傳送與加速器指令相關之資料。 位址指標暫存器(PTR) 240之内容可由下列兩個L1 加速器指令之實施例來指派或更新: 1. ’,awr ptr.hi,#uimml6” 擊 此L1加速器指令將丨6位元的無符號立即值 寫入至L1加速器中L1位址指標暫存器(ptr) 240的最 高16個位元。 2. ’’awr ptr.lo,#uimml6” 此L1加速器指令將16位元的無符號立即值#uimml6 寫入至L1加速器中L1位址指標暫存器(ptr ) 240之最 低16個位元。 前述之”立即值”指此值係直接被編碼至L1加速器指 13 1335521 ‘令。例如,24位元之L1加速器指令可為下面形式:
1100 0010 ^>DDD DDDD DDDD DDDD 其中’前四個位元係為L1加速器之識別碼,且在框線 内的’’D”表示16位元無符號立即值。 根據上述的位址分配指令來設定L1加速器20之L1 位址指標暫存器(PTR) 240的内容即可助於選擇特定的 L2加速器30x來執行資料存取。 對於數位信號處理器10而言,透過加速器本地匯流排 • 7〇對L2加速器進行資料存取可如下面兩個實施例之方式 來實現,其中每一個實施例皆包含一個示範的指令與相關 的信號波形。 範例1 :將資料寫入至L2加速器30A,並對L1位址 指標暫存Is ( PTR ) 240作後置增值。 本範例的L1加速器指令為”awr ptr++,#uimmi 6”。 此L1加速器指令寫入16位元的無符號立即值至L1 位址指標暫存器(PTR) 240所包含的L2加速器位址。接 籲著,對L1位址指標暫存器(PTr) 240之位址加1作後置 增值。舉例而言,假使L1位址指標暫存器(ptr) 240之 内容為0xF7FF:8000,數位信號處理器1〇發送該指令即可 連續地將數個區塊的16位元無符號資料寫入至L2加速器 30A之内部輸入暫存器。 第5圖係表示自數位信號處理器1〇至L2加速器的寫 入操作相關之信號波形圖。圖示中以大寫字母A為開頭之 信號組係與數位信號處理器1〇及L1加速器20間的加速器 133.5521 .介面匯流排60相關;而其他資料與控制信號則與加速器本 地匯流排70相關。位址匯流排LAD[31:0]係為一 32位元 匯流排,且由L1加速器20所驅動。LRNW信號係表示其 為讀取非寫入之信號’而LSEL一X信號為一個選擇作號, 用以指示L1加速器20透過加速器匯流排來詞·該等L2加 速器其中之一者作存取。在圖示中,*PTR係表示在u位 址指標暫存器(PTR) 240内的值需驅動至位址匯流排 LAD[31:〇pLSEL_x信號為選擇信號,以選擇啟動該等u • 加速器其中之一者。在一特定時間内,L2加速器3〇A至 30N中只有一者被選擇’且此選擇係依據位址匯流排 LAD[31:0]上之位址的一部分最高有效位元。被lsel X信 號所選中的L2加速器將對加速器本地匯流排70上的信號 進行解碼,且將#uimml6資料寫入至其複數個内部輸入暫 存器之一者,該暫存器係依據位址匯流排LAD[3l:〇]上之 位址的部分最低有效位元決定。在圖示中,LSEL__x與 LRNW信號係透過控制匯流排所傳送。 ® 再參閱第3圖,位址控制器24包括後置增值單元242 及第一多工器244。後置增值單元242係用來對L1位址指 標暫存器(PTR) 240之位址執行後置增值操作。第一多工 器244則受解碼器22所控制,選擇性地將後置增值單元 242的輸出或L1寫入資料匯流排AWD[31:0]之資料傳送至 L1位址指標暫存器(PTR) 240,因此L1位址指標暫存器 (PTR) 240之内容可被修改。位址控制器24更包括一個 第二多工器246,用以選擇性地將L1位址指標暫存器 15 133.5521 (PTR) 240的部份最低有效位元或加速器指令匯流排 AIN[23:0]的一部分傳送到位址匯流排LAD[3l:〇]的最低有 效位元部分。根據第3圖,L1加速器20之寫入緩衝器26 包括一個第三多工器262及寫入資料暫存器260。L2寫入 資料匯流排LWD[31:0]係受到寫入資料暫存器260所驅
動,且包含加速器介面60之加速器指令匯流排AIN[23:〇J 與L1寫入資料匯流排AWD[31:0]之資料的組合。解碼器 22透過控制匯流排LCTRL傳送資料尺寸信號LSIZE ’且 此為料尺寸仏號LSIZE係表示加速器本地匯流排7〇所傳 送之資料為1位元組、2位元組、或4位元組。 此範例之指令可以2階段管線(2-stage pipeline )處理 來實現。在第-週期(解喝週期)内,“加速器指令自數 位信號處理器1G傳送至加速器指令匯流排AIN[23:〇],且 ^址匯流排LAD[31:0]與控制匯流排LCTRL可根據加速器 指,之内容被驅動。在第二週期(執行週期)内,16位元 無符號貝料被驅動至L2寫入資料匯流排LWD[31:〇]上的 16個較低位元,即lwd[15:〇j。 3〇A移動至數位信號處理 範例2:將資料自L2加迷器 器的内部暫存器。 本範例的L1加速器指令為”^ GRx #addr8”。 此L1加速器指令將資料由L2加速器移動至數位信 =器H)之-内部暫存器咖卜個16位元暫存器): :PTR[31.8]與#addr8 (8位元立即位址值)連接之連 續值可指K固特定加逮器位址。 1335521 第6圖係示意與此範例操作相關的信號波形圖。 LSEL_x信號為選擇複數該等L2加速器之一者的選擇信 號。在給定的時間内,只有L2加速器30A至30N之一者 被選中’其選擇依據位址匯流排LAD[31:0]上之位址值決 定。被選中之L2加速器,例如L2加速器X,將根據位址 匯流排LAD之一部分最低有效位元,來選擇應驅動其複數 個内部暫存器之中何者的内容至L2讀取資料匯流排LRD 上’以回傳到L1加速器10。位址匯流排LAD之最低有效 • 位元部分係由數位信號處理器10所傳送之偏移位 址”#addr8”所驅動。L1加速器1將傳送讀取資料至L1讀 取資料匯流排ARD上,以回傳至數位信號處理器1〇之内 部暫存器GRx。此讀取資料則可此般寫入至數位信號處理 器10之内部暫存器GRx。 根據第3圖,L1加速器之多工器28係用以自對應 至L2加速器30A至30N之複數個讀取資料匯流排LRD_A 至LRD_N中選擇適當的讀取匯流排。被選中的讀取資料 匯流排LRD_x被驅動至L1讀取資料匯流排ARD,且此選 擇係依據L2選擇信號LSEL_x。 舉例來說,上述24位元L1加速器指令可為下面形式: 1100 1100 Iaaaa aaaa| xxxx 0000 其中’以字母” A”所表示之位元是代表由數位信號處理 器10所傳送之偏移位址#addr8的8位元立即值。以字母,’χ” 所表示之位元是代表在數位信號處理器1〇内16個一般暫 存器GR0至GR15其中之一者。 17 1335521 • 由上述兩個例子可得知,本發明之指令操作不須指派 任何加速器識別碼至任何一個L2加速器,取而代之的是在 L1加速器内没置具有彈性的位址產生器24 ,即可選擇L2 加速器與1^2加速器内的位置。L1位址指標暫存器(pTR) 240之位元數量也可修改(除了 32位元),以支援更小或 更大的L2加速器位址空間。 在上述兩個範例中’僅有4位元(例如在範例中起始 位元序列11〇〇)被用來當作L1加速器識別碼,L1加速器 •指令組玎縮減至一個數量相對較少(32或更少)的一般指 令組,然而其彈性足以支援大量且多種相異之匕2加速器。 下一個範例將說明此種類型一般但仍功用極大的u加速 器指令的可變通性。 範例3 : L2加速器位址之參數控制寫入讀取操作(參 閱第7圖)。 此範例之一般L1加速器指令為,,ardp GRx, #addrX,#uimm4”。 • 此L1加速器指令將儲存在數位信號處理器10之内部 暫存器GRx的資料傳送至由PTR[31:X]與χ位元立即偏移 位址#addrX相結合之連續值所指定的L2加速器位址。内 部暫存器GRx之内容係受數位信號處理器驅動至Li寫入 資料匯流排AWD[15:0]上,且在下一(執行)時脈週期由 L1加速器傳送至L2寫入資料匯流排LWD[15:〇]上。同樣 地,L1加速器在下-(執行)時脈週期亦將被數位信號處 理器驅動至加速器指令匯流排AIN[23:〇]的4位元立即"參 18 133.5521 數值傳送至L2寫入資料匯流排LWD[19:16]上。此外, 加速器也指示被選中的L2加速器在執行時脈週期内驅動 某部份之16位元資料返回至其對應的L2讀取資料匯流排 LRD—x[15:0],以在執行時脈週期結束時更新内部暫存器 GRx。因此,此加速器指令同時利用了加速器介面之寫入 及讀取資料匯流排與加迷器本地匯流排。另需注意,是否 使用4位元的參數值完全取決於L2加速器,而非受限於 L1加速器指令本身的定義。在L1加速器指令的解碼週期
期間,加速器本地匯流排信號LPRM被驅動(高位準), 以表示此類的指令正出現在加速器本地匯流排。 此範例的L1加速器指令可用來實現一或多個L2加速 器内多種相異的單一週期任務。舉例來說,當指令傳送至 一特定L2加速器位址時,此指令可表示内部暫存器gRx 之16位元内容的部份最低有效位元(例如4位元參數值) 應該,行位兀反置(bit_reversed)。而傳送至其他特定 广二,位址的其他指令可表示對l2寫入資料匯流排 者,對f5 〇]所提供之資料執行其他完全相異的操作(或 且在此在特定L2加速器位址位置之資料執行操作), 邻If »。行時脈週期結束時,此操作之結果將被記錄至内 1节仔态GRx。 第7圖4系矣 中以大寫1、示與Li加速器指令相關之信號波形圖。圖 字母A為開頭之信號係與介於數位信號處理器 丹加速器2〇 pq 以大寫—, 間的加速器介面匯流排60相關的信號;而 予母L為開頭的其他資料與控制信號則為與加速器 1335521 •本地匯流排70相關的信號。 在第6及7圖中,LSEL__x、LPRM、以及LRNW信號 乃透過控制匯流排LCTRL所傳送。LSEL_x信號為選擇信 號用以選擇該等L2加速器之中一者。LPRM信號為參數指 示信號,邏輯”1”係表示在L2寫入資料匯流排LWD[19:16] 上發生由一參數所控制的寫取/讀入傳輸。LRNW信號係表 示加速器本地匯流排上之讀取與寫入傳輸的觸發與 否,邏輯”1”係表示讀取傳輸,而邏輯係表示寫入傳輸。 籲 在一範例中,假使此系統為JPEG ( Joint Photographic
Experts Group,靜態影像壓縮標準)解碼系統,L2加速器 可以是可變長度解碼器(variable length decoder,VLD) 30A、DCT/IDCT (離散餘弦轉換/反離散餘弦轉換)加速器 30B、以及顏色轉換加速器(color conversion accelerator) 30C。 第8圖係表示根據本發明另一實施例,採用多階層加 速器架構之數位信號處理系統示意圖。本實施例為可並列 • 發送指令之數位信號處理器的架構。第8圖之數位信號處 理器10可以並列方式來發送兩個加速器指令(Li加速器 指令)。在此情況下,這兩個加速器指令以並列方式來存 取L2加速器30A至30N其中一者或二者,且需要提供兩 個加速器本地匯流排70A及70B。 本發明所提供之L1加速器的操作可以第9圖之流程圖 來總結說明。此方法提供了透過一個L1加速器相互橋接的 處理器與複數個L2加速器之間的指令解釋及控制的流程。 20 1335521 在第一個步驟S100 :建立L1位址指標暫存器(ptr ) 240之子集位址(subset address)與連接至L1加速器 、 數個L2加速器間的對應關係。 在下一步驟S200 :自數位信號處理器10讀取指令。 在下一步驟S220 :檢查L1加迷器識別碼存在與否來 識別此指令是否為L1加速器指令。若此指令非li加速器 指令,則執行步驟S222 ;若次指令確為L1加迷器指令, 則執行步驟S240。 • 在步驟S222:於數位信號處理器10内部執行此指令, 且可依需要對連接至數位信號處理器之其他裝置(例如 SRAM記憶體)執行存取。 在步驟S240:識別此L1加速器指令是否需對一 [2加 速器進行存取。假使是,則執行步驟S242 ;假使否,則執 行步驟S250。 在步驟S242 :依據L1位址指標暫存器(ptr) 240之 位址選擇其指定的L2加速器’接著繼續進行步驟S260。 ® 在步驟S250:識別此L1加速器指令是否為執行L1位 址指標暫存器(PTR) 240之位址的修改。假使是,則執行 步驟S252。 在步驟S252 :根據L1加速器指令所包含之資訊修改 在L1位址指標暫存器(PTR) 240之位址。 在下一步驟S260 :識別該指令的L2加速器存取是否 為參數控制存取。假使是,執行步驟S262 ;假使否,則執 行步驟S264。 21 1335521 在步驟S262:以參數控制存取來執行L2加速器存取, 其執行方式請參考範例3之說明。之後執行步驟S280。 在步驟S264 :執行L2加速器資料存取,其執行方式 請參考範例1及2之說明。之後執行步驟S280。 在下一步驟S280:檢查是否需執行後置增值。假使是, 則於下一步驟S282執行後置增值;否則,回到步驟S200。 綜上所述,本發明具有以下優點: 1. 由L1加速器所提供之加速器指令組僅需設計一次, • 且可供數位信號處理器用來聯繫複數個階層2加速器。因 此,不需要針對單一 L2加速器重新設計加速器指令組。此 組裝方法無須因應新的L2加速器而更新。 2. 所有的L2加速器係透過一般L1加速器指令組來控 制,取代了專用的加速器指令組。因此,L2加速器不需要 包含任何指令碼對應關係,簡化了其設計以及其在數位信 號處理次系統中的可再使用性。 3丄1加速器之内部位址指標暫存器可支援非常大量的 • L2加速器。L2加速器則不需要分門別類,全部聚集在L1 加速器内的一點。此項可支援非常大量的L2加速器的特點 簡化了設計分隔及可再使用性。 4.當僅使用單一 L1加速器時,加速器識別碼則非必要 的,且數位信號處理指令組的編碼空間可有效地被利用。 假設指令中有4位元被用來指示一個L1加速器識別碼,那 麼整體24位元指令組編碼空間的16分之1(大約6% ), 足以支援所有的硬體加速器,而整體24位元指令組編碼空 22 1335521 間的16分之15 (大約94% )則可使用在數位信號處理器 核心指令組。 本發明雖以較佳實施例揭露如上,然其並非用以限定 本發明的範圍,任何所屬技術領域中具有通常知識者,在 不脫離本發明之精神和範圍内,當可做些許的更動與潤 飾,因此本發明之保護範圍當視後附之申請專利範圍所界 定者為準。 【圖式簡單說明】 第1圖表示具有加速器之習知資料處理裝置。 第2圖表示根據本發明一實施例,具有多階層加速器 架構的數位信號處理系統之示意圖。 第3圖表示根據本發明一實施例,多階層加速器架構 之L1加速器之示意圖。 第4圖表示根據本發明一實施例,關於三個相異的L2 加速器之位址對應表。 第5圖表示根據本發明一實施例,與一多階層加速器 架構之操作相關之信號波形。 第6圖表示根據本發明另一實施例,與一多階層加速 器架構之操作相關之信號波形。 第7圖表示根據本發明另一實施例,與一多階層加速 器架構之操作相關之信號波形。 第8圖表示根據本發明另一實施例,在多階層加速器 架構中並列之兩L1加速器示意圖。 第9圖表示根據本發明一實施例,多階層加速器架構 23 133.5521 之數位信號處理器系統之操作方法流程圖。 【主要元件符號說明】 112〜記憶體;120〜微處理器核心;121〜中斷控制 器;122〜内部匯流排;140〜加速器;142〜輸出暫存器; 10〜數位信號處理器;20〜L1加速器;30、30A...30N 〜L2加速器;60〜加速器介面;70〜加速器本地匯流排; 22〜解碼器;24〜位址產生器;26〜寫入緩衝器;28 〜讀取多工器;242〜後置增值單元;244〜第一多工器; 246〜第二多工器;260〜寫入資料暫存器;262〜第三多工 益, 20A、20B〜L1加速器;70A、70B〜加速器本地匯流 排。
24
Claims (1)
133.5521 jff年1月丄丨日修正本 十、申請專利範圍: 1. 一種主加速器,橋接於一處理器與共用一通用指令 集的複數個次加速器之間,該主加速器包括: 一位址指標暫存器,包含一位址,該位址的一個位址 區段指向一次加速器;以及 一解碼器,用以接收傳送自該處理器之一指令,以控 制該位址指標暫存器。
2. 如申請專利範圍第1項所述之主加速器,更包含: 一多工器,用以選擇性傳送該位址與該指令的一部分 至該選中之次加速器;以及 一後置增值單元,用以在該指令執行完畢後對該位址 執行一後置增值操作。 3. 如申請專利範圍第1項所述之主加速器,更包含 一資料緩衝器,耦接於該處理器與該選中之次加速器 之間,用以緩衝資料存取。
4. 如申請專利範圍第1項所述之主加速器,其中該解 碼器依據該指令内的一偏移位址調整該位址。 5. 如申請專利範圍第4項所述之主加速器,其中該解 碼器係用以將該位址與該偏移位址相連結。 6. 如申請專利範圍第1項所述之主加速器,其中該解 碼器根據該位址對該選中之次加速器内至少一内部暫存器 進行存取。 7. 如申請專利範圍第1項所述之主加速器,其中該解 碼器將包含於該指令之一立即資料寫入至該選中之次加速 25 133.5521 器。 8. 如申請專利範圍第1項所述之主加速器,其中該解 碼器傳送下列信號之任意組合至該選中之次加速器: 一控制信號,用以設定該選中之次主加速器為啟動; 一資料尺寸信號,用以表示欲存取之資料大小; 一參數控制信號,用以表示一參數控制操作;以及 一存取信號,用以表示一讀取或寫入操作。 9. 如申請專利範圍第8項所述之主加速器,其中該參 Φ 數控制操作為一單一周期操作。 10. 如申請專利範圍第1項所述之主加速器,其中該主 加速器係透過一指令匯流排與一第一資料匯流排連接至該 處理器,並透過一位址匯流排、一控制匯流排與一第二資 料匯流排連接至該等次主加速器。 11. 一種多階層架構且使用一通用加速器指令集的電 腦系統,包括: 一處理器,用以傳送一選自該通用加速器指令集的指 鲁令; 一主加速器,連接至該處理器,並接收該指令;以及 複數個次加速器,透過該主加速器連接至該處理器; 其中,該主加速器包括: 一位址產生器,儲存一主位址集;以及 一解碼器,用以控制該位址產生器依據該指令與該 主位址集中一對應的主位址以產生對應至一選中之次 加速器的次位址。 26 ^35521 12. 如申請專利範圍第n項所述之電腦系統,其中該 位址產生器包含一位址指標暫存器,用以儲存該主位址集Y 13. 如申請專利範圍第n項所述之電腦系統,其中對 應至該次位址的該選中之次加速器依據該主、 執行該指令指示之操作。 …控制 14. 如申請專利範圍第13項所述之電腦系統,其中該 解碼器傳送下列信號之任意組合至該次加速器:八
控制4號’用以設定該選中之次主加迷器為啟動. 一資料尺寸信號,用以表示欲存取之資料大小; —參數控制信號,用以表示一參數控制操作;以及 一存取信號’用以表示一讀取或寫入操作。 15. 如申請專利範圍第14項所述之電腦系統,並 參數控制操作可於單—時間週期内寫人資料至該選ϊ之Γ 加速器,並自該選中之次加速器讀取資料。Λ選中之_人 16. 如申請專利範圍第u項所述之電腦 次位址為下列項目之任意組合: 具中該 該主位址連接該指令中一偏移位址; 依據該指令的該偏移位址調整後的該主位址· 一個=位址中對應至該選中之次加速器的一位址區段的 17•如申請專利範圍第n項所述之 主^器透過-指令匯流排連接至該處理器,並透過^ 址排與—控龍流排連接至該等次加速器。 18.-種操作方法,適用於—多階層架構系統,該多階 27 1335521 層架構系統包括一處理器以及共用一通用指令集的複數個 加速器,該方法包括: 將該等加速器對應至一位址集; 自該處理器接收一選自該通用指令集的指令,該指令 包含一欄位對應至該位址集的一個位址;以及 依據該位址存取該等加速器其中一者。 19. 如申請專利範圍第18項所述之操作方法,其中存 取該等加速器其中一者之步驟更包括: • 依據該指令提供一控制信號至該加速器。 20. 如申請專利範圍第19項所述之操作方法,其中該 控制信號為下列信號之任意組合: 一啟動控制信號,用以設定一選中之次加速器為啟動; 一資料尺寸信號,用以表示欲存取之資料大小; 一參數控制信號,用以表示一單一時間週期的參數控 制操作;以及 一存取信號,用以表示一讀取或寫入操作。 • 21.如申請專利範圍第18項所述之操作方法,更包括: 於存取該等加速器其中一者之步驟結束後,對該位址 進行後置增值。 22.如申請專利範圍第18項所述之操作方法,更包括: 依據該指令的一偏移值修改該位址集的該位址。 28 1335521 .七、指定代表圖: (一) 本案指定代表圖為:第(2 )圖。 (二) 本代表圖之元件符號簡單說明: 10〜數位信號處理器;20〜L1加速器;30、30A...30N 〜L2加速器;60〜加速器介面;70〜加速器本地匯流排。
八、本案若有化學式時,請揭示最能顯示發明特徵的化學式: 略
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US75162605P | 2005-12-19 | 2005-12-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200731093A TW200731093A (en) | 2007-08-16 |
| TWI335521B true TWI335521B (en) | 2011-01-01 |
Family
ID=38165727
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW095147640A TWI335521B (en) | 2005-12-19 | 2006-12-19 | Dsp system with multi-tier accelerator architecture and method for operating the same |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20070139424A1 (zh) |
| CN (1) | CN100451952C (zh) |
| TW (1) | TWI335521B (zh) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009145919A1 (en) * | 2008-05-30 | 2009-12-03 | Advanced Micro Devices, Inc. | Shader complex with distributed level one cache system and centralized level two cache |
| US9582287B2 (en) * | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
| CN104142907B (zh) * | 2013-05-10 | 2018-02-27 | 联想(北京)有限公司 | 增强型处理器、处理方法和电子设备 |
| US9336056B2 (en) * | 2013-12-31 | 2016-05-10 | International Business Machines Corporation | Extendible input/output data mechanism for accelerators |
| US10599441B2 (en) * | 2017-09-04 | 2020-03-24 | Mellanox Technologies, Ltd. | Code sequencer that, in response to a primary processing unit encountering a trigger instruction, receives a thread identifier, executes predefined instruction sequences, and offloads computations to at least one accelerator |
| US11797342B2 (en) | 2018-06-20 | 2023-10-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and supporting node for supporting process scheduling in a cloud system |
| CN113934677B (zh) * | 2020-07-13 | 2025-06-27 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5524223A (en) * | 1994-01-31 | 1996-06-04 | Motorola, Inc. | Instruction accelerator for processing loop instructions with address generator using multiple stored increment values |
| US6829697B1 (en) * | 2000-09-06 | 2004-12-07 | International Business Machines Corporation | Multiple logical interfaces to a shared coprocessor resource |
| US7430652B2 (en) * | 2003-03-28 | 2008-09-30 | Tarari, Inc. | Devices for performing multiple independent hardware acceleration operations and methods for performing same |
| US7714870B2 (en) * | 2003-06-23 | 2010-05-11 | Intel Corporation | Apparatus and method for selectable hardware accelerators in a data driven architecture |
-
2006
- 2006-12-19 TW TW095147640A patent/TWI335521B/zh active
- 2006-12-19 US US11/613,170 patent/US20070139424A1/en not_active Abandoned
- 2006-12-19 CN CNB2006101717159A patent/CN100451952C/zh active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20070139424A1 (en) | 2007-06-21 |
| TW200731093A (en) | 2007-08-16 |
| CN1983166A (zh) | 2007-06-20 |
| CN100451952C (zh) | 2009-01-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI463332B (zh) | 在單一指令多資料之資料處理器中提供擴充尋址模式 | |
| US9460016B2 (en) | Cache way prediction | |
| US5481734A (en) | Data processor having 2n bits width data bus for context switching function | |
| JPH09212361A5 (zh) | ||
| JPH04109336A (ja) | データ処理装置 | |
| US20030033482A1 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
| TWI335521B (en) | Dsp system with multi-tier accelerator architecture and method for operating the same | |
| JP5191532B2 (ja) | 内部ビットfifo回路を有する演算ユニット | |
| JPH10207717A (ja) | マイクロコンピュータ | |
| JP3789583B2 (ja) | データ処理装置 | |
| JPH07129537A (ja) | 半導体集積回路装置 | |
| US20090070501A1 (en) | Data processor | |
| JPH1049369A (ja) | データ処理装置 | |
| JPH11316679A (ja) | 多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法 | |
| JPH09152971A (ja) | データ処理装置 | |
| JP2002251284A (ja) | データ処理装置 | |
| JP2556182B2 (ja) | デ−タ処理装置 | |
| US5519881A (en) | Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it | |
| US20230205901A1 (en) | Direct data transfer system | |
| JP3575496B2 (ja) | メモリアドレス指定論理回路およびメモリアドレス指定方法 | |
| JP5673322B2 (ja) | ベクトル処理装置、システムおよびベクトル処理装置の動作方法 | |
| JP2009217714A (ja) | データ処理回路、キャッシュシステムおよびデータ転送装置 | |
| JP3562215B2 (ja) | マイクロコンピュータ及び電子機器 | |
| JP3936694B2 (ja) | 半導体集積回路装置および半導体集積回路装置のデータ転送方法 | |
| JPH0778780B2 (ja) | バス幅制御装置 |