TW201203104A - System and method of processing hierarchical very long instruction packets - Google Patents

System and method of processing hierarchical very long instruction packets Download PDF

Info

Publication number
TW201203104A
TW201203104A TW100107221A TW100107221A TW201203104A TW 201203104 A TW201203104 A TW 201203104A TW 100107221 A TW100107221 A TW 100107221A TW 100107221 A TW100107221 A TW 100107221A TW 201203104 A TW201203104 A TW 201203104A
Authority
TW
Taiwan
Prior art keywords
instruction
sub
packet
instructions
execution unit
Prior art date
Application number
TW100107221A
Other languages
English (en)
Inventor
Lucian Codrescu
Erich James Plondke
Ajay Anant Ingle
Suresh K Venkumahanti
Charles Joseph Tabony
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201203104A publication Critical patent/TW201203104A/zh

Links

Classifications

    • 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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

201203104 六、發明說明: 【發明所屬之技術領域】 本發明大體上係關於編碼一階層式超長指令字。 【先前技術】 技術之進展已導致更小且更強大的計算裝置。舉例而 言,當前存在各種各樣的攜帶型個人計算裝置,包括無線 什算裝置,諸如,小巧、輕便且易於由使用者攜帶之攜帶 型無線電話、個人數位助理(PDA)及傳呼裝置。更具體言 之,諸如蜂巢式電話及網際網路協定(IP)電話之攜帶型無 線電話可在無線網路上傳遞語音及資料封包。另外,許多 :等無線電話包括併入於其中之其他類型的裝置。舉例而 言’無線電話亦可包括數位靜態相機、數位視訊相機、數 位:己錄器及音訊檔案播放器…此等無線電話可處理可 執仃拮7,包括軟體應用程式,諸如,網頁瀏覽器應用程 式,其可用以存取網際網路。同樣,此等無線電話可包括 顯著的計算能力。 、為了加速计算且減小程式大小及減少隨之的程式儲存需 =更有效率地包裝指令將為有幫助的。藉由更有效率地 包裝指令,可減小指令快取記憶體大小,綱的指令快 取5己憶體大小可保持更多指令。 【發明内容】 在一特定實施例中,.捤一 ^ . ’、種處理指令之方法。該方法 g括接收一指令封包。該封$ 人 发对包包括至少一指令,該至少— 指々可經解碼以判定該指令是 〇〇 疋否為一早一指令或該指令是 154546.doc 201203104 否包括一包括複數個子指令之子封包。該方法亦包括回應 於判疋該指令包括該子封包,執行該等子指令中之每一 者。 在另一特定實施例中,處理指令之方法包括接收一指令 封包,其中該封包包括-具有—第一剖析值之第一指令及 具有第一剖析值之第二指令。該方法包括將該第一指 令路由至-第-執行單元,及將該第二指令識別為一包括 一第一子指令及-第二子指令之子封包指令。該方法亦包 括將該第—子指令路由至一第二執行單元。 在另肖疋實施例中’揭示一種處理器。該處理器包括 解碼益w接收-指令封包。該解碼器操作以解碼在該封 $内,-指令以狀該指令是否為—包括—第—子指令及 。。第一子指令之第一子封包指令。該處理器亦包括一執行 單70以執行該指令或執行該第一子指令。 由所揭示之實施例中之至少一者提供的一特定優點為可 減二指令快取記憶體大小,此係因為指令係較密集地包裝 在一起。指令之有效率的包裝之一優點為將更多指令儲存 :量㈣取記憶體中之能力。由所揭示之實施例中之 θ '、者提供的另一優點為自記憶體提取程式碼需要的能 :之減少此係因為每一封包包括較高的指令密度,從而 致擷取指令以執行一程式的呼叫之總數之減少。 在審閱整個申+圭姿_ ^ 微蔣m 咕案之後,本發明之其他態樣、優點及特 =㈣顯而易見’整個申請案包括以下部分:圖式簡單 說明、貫施方式及申請專利範圍。 154546.doc 201203104 【實施方式】 參看圖1,揭示超長指令字(VLIW)封包之一特定說明性 實施例。VLIW封包102包括N個指令,其包括第—指令 110、第二指令112及多達第]^個指令114之額外指令。在管 線式處理器100之提取級102處,VLIW封包102最初係自儲 存器(未圖示)提取且進入管線式處理器100之解碼級104。 在解碼級104處,將指令114識別為包括子指令116及118 之子封包指令。自解碼級104, vuw封包1〇2中之複數個N 個指令前進至執行級1〇6 ^執行級1〇6包括M個執行單元, 其包括執行單元12〇、122、124及126。在一特定說明性實 施例令,Μ可超過在另一特定說明性實施例中,厘可 小於N。在另一特定說明性實施例中,M可等於Νβ 匕在執行級106處,第一指令1〇4進入執行單元12〇。第二 指令U2進人執行單元122。第_子指令u6進人執行單元 124 ’且第二子指令118進入執行單元126。在一特定說明 性實施例中,VUW封包1()2中的其他指令中之每—者可進 入在執行級106處之一對應的執行單元。 一在;特定說明性實施例中,vuw封包1〇8中的指令中之 或多者為包括兩個或兩個以上子指令之子封包指令。包 括一或多個子指令封包之VLIW封包被稱作階層式VLIW。 :圖1中展示之說明性實施例中,子指令116及118中之每 一者進入不同執行單元,且同時執行子指令U6與m。或 者’可將子指令116及118中之每-者路由至執行子指令 116及118兩者之單一執行單元。 154546.doc 201203104 在-特定說明性實施例中,vuw封包包括多個子封包 指令,且每一子封包指令包括兩個或兩個以上子指令。在 -特定說雜實施射,子封包指令可經解碼以識別子子
指令封包(未圖示),盆中早A I '、T子子封包包括被稱作子子指令之 複數個指令。在另-特定說明性實施例中,VLIW封包之 每一指令包含一包括一或多個巢式指令之超長指令字,該 -或多個巢式指令中之至少—者為—包括兩個或兩個以上 子指令之子封包指令。 在執行級1〇6處存在Μ個執行單元。當數目M足夠大以容 内匕括才曰7 110、112及子指令116及118的VLIW封包之每 -指令時’ M大於N且可同時執行VLIW封包⑽之所有指 令。同時處理VLIW封包⑽中之所有指令的―優點為與依 序處理VLIW封包⑽中所包括之指令中的—些相比較快地 進行處理。 f看圖2, VLIW封包之-特定說明性實施例經揭示且整 體標明為細。VLIW封包包括指令2()2、⑽、及 則。指令2〇2、2〇4、2〇6及2〇8中之每一者通常包括固定 數目個位元。舉例而言’指令2〇2、2〇4、鳩及2〇8中之每 =可^位元。該等指令中之每一者可包括一剖析 在—特定說明性實施例中,剖析攔位包括兩個位 兀。在-特定說明性實施例中,將第—剖析值儲存在第一 指令之兩個鄰近内部位元處,且將第二剖析值儲存在第二 指令之兩個鄰近内部位元處。舉例而言,將剖析值〇ι儲存 在指令206之兩個鄰近内部位元處’且將剖析值〇〇儲存在 154546.doc 201203104 指令208之兩個鄰近内部位元處。在一特定說明性實施例 中,剖析欄位位於對應的指令之最中心位元處。作為剖析 攔位之一實例,指令202包括-具有儲存值1〇之剖析棚位 21〇,私令204包括一具有儲存值〇1之剖析攔位212,指令 206包括一具有儲存值〇1之剖析欄位214,且指令2⑽包^ 一具有儲存值00之剖析攔位216。 剖析攔位可為指令是否為封包結尾指令之指示符。在一 特定實财,剖析顯1G㈣該封包並㈣包結尾,且亦 指示該封包處於硬體迴路之結尾。在一特定說明性實例 中,具有值01之剖析欄位指示並非封包結尾之指令。在一 特定說明性㈣巾,具有值此則糊位指示封包結尾指 令°在—特定實施例中,具有具㈣之剖析攔位的指令亦 指示封包結尾指令。具有具值〇〇之剖析攔位的指令亦指示 該指令為子封包指令。子封包指令為包括兩個或兩個以上 子指令之指令^ 舉例而a ’指令208包括具有值〇〇之剖析攔位216。因 此,指令208為子封包指令且亦為封包結尾指令。查看指 令·之詳圖(圖2之下部部分),第—子指令218及第二子指 令220包括於指令内。第-子指令W包括標為A之資 料,且第二子指令220包括標為B之資料。 除了子指令218及220之外,指令208亦包括第一指令類 別攔位222及第二指令類別攔位224。指令類別攔位如及 224可指示指令之類型’諸如’載入、儲存、算術等。指 令類別欄位222及224之内容可用於管線式處理器之解碼級 I54546.doc 201203104 處。 在一特定說明性實施例中,指令208包括32個位元,每 一子指令218及220包括13個位元,剖析攔位216包括2個位 元’第一指令類別攔位222包括3個位元,且第二指令類別 欄位224包括1個位元。 在一特定說明性實施例中,在管線式處理器之執行級處 同時執行子指令2 1 8及220。在另一特定說明性實施例中, 在管線式處理器之執行級處連續執行子指令2丨8及22〇。 參看圖3,管線式處理器之一特定說明性實施例經揭示 且整體標明為300。管線式處理器3〇〇包括複數個級。圖3 展不二個級:提取級3〇2、解碼級3〇4及執行級3〇6。在替 代實施例中,管線式處理器3〇〇可包括諸如回寫級之其他 級。在一特定說明性實例中,在提取級3〇2處提取指令封 包308。在解碼級304處解碼指令封包3〇8,其後,將指令 封包308中所包括之複數個指令發送至執行級3,在執行 級306處執行該等指令中之每一者。 在一特定說明性實例中,指令封包308包括指令202、 204、206及208。在-特定說明性實施例中,自與處理器 300相關聯的緊密麵合記憶體(未圖示)榻取指令封包則。 在另-特疋說明性實施例中,自與處理器则相關聯的指 令快取記憶體(未圖示)擷取指令封包。在一特定說明性實 施例中,指令封包308的指令2〇2、2〇4、2〇6及2〇8中之每 一者具有同一大小(亦即,包括相同數目個位元)。在一特 定說明性實施例中,指令2〇2、204、206及208中之每一者 154546.doc 201203104 具有32個位元之大小。 在一特定說明性實施例中,指令封包3〇8為一超長指令 字(VLIW)封包。VLIW封包308中的指令中之一者(諸如, 指令208)為包括第一子指令218及第二子指令22〇之子封包 指令。指令2〇2、204、206及208 _之每一者包括一剖析攔 位。指令202包括一剖析攔位21〇,在圖3中展示之實例 中,該剖析攔位210具有值1〇,其意味指令2〇2並非封包指 令之結尾及指令2〇2為硬體迴路指令之結尾。指令2〇4及 206具有對應的剖析欄位212及214,其中之每一者具有值 〇1 ’其意味對應的指令並非封包結尾指令。指令2〇8為子 封包指令’且包括具有值〇〇之剖析攔位216,該值意味指 令208為子封包指令且亦意味指令2〇8為封包結尾指令。在 一特定說明性實施例中,指令2〇8包括兩個子指令218及 220,其中之每—者具有比指令316小(亦即,包括較小數 目個位元)的大小。 你辨螞敬304處,將VLIW指令封包3〇8解碼成指令2〇2、 二4曰、206及子指令218及22〇。可評估每一指令以判定該指 v疋為可執行指令或是包括多個子指令之子封包指令。舉 例而S,可將剖析攔位22〇之内容與指示子封包指令之定 義值比較。並未指示為子封包指令之指令可立即二至: 仃級。判定為子封包指令之指令可解碼成其組成子指令 1〔例如’子封包指令218及22〇)。在一些實施例令,接^ 行地將子指令路由聽躲扇。可在—單—執行單元中 或在多個執行單元中並行地執行子指令。在其他實施例 154546.doc 201203104 中,連續路由該等子指令。執行級306可經組態以基於可 用之處理器資源判定是連續或是並行地執行子指令。 移至執行級306,在一特定說明性實例中,離開解碼級 的指令中之每一者進入對應的執行單元。指令2〇2進入執 行單元330,指令2〇4進入執行單元332,指令2〇6進入執行 單元334,子指令218進入執行單元336,且子指令22〇進入 執行單元338 ^在一特定說明性實施例中,同時執行所有 指令202、204、2〇6、218及22〇。在圖3之說明性實施例 中,執行單元334、336及338執行諸如載入及儲存指令之 與資料快取記憶體有關之指令,而執行單元33〇及332為算 術執行單元,例如,算術邏輯單元(ALU)。在執行後,每 一執行單元之輸出在回寫級(未圖示)期間繼續進行以提供 結果。 在一特定實施例中,可並行地執行VLIW封包中之所有 指令。舉例而言,所有指令可由處理器3〇〇並行地執行, 否則’將出現故障。在另—特定實施例中,當處理器则 不具有足夠的資源來並行地執行指令2〇2、2〇4、2〇6及子 指令218及220時,可在已執行了 vuw封包中之其他指令 後執行子指令(例如,21 8或220)。 在一特定實施例中,指令在VLIW封包内之位置判定哪 一執行單元將接收指令。舉例而言,在圖3中,指令2〇2為 VUW封包3G8之第-指令且被路由至執行單元33G,第二 指令204被路由至執行單元332,且第三指令屬被路由I 執行單元334。 154546.doc 201203104 VLIW封包可因此向處理器指示並行地處理哪奸 每一指令將被路由至哪_執行單元。在此等實施例^可 不准許處理器在多個循環内處理在單一封包 指令路由至盥由沪人 7 一飞將 一 ”由扣7在VLIW封包中之位置指示之執 元不同的執行單元。 因為在包括子指令之vuw封包中包裝的指令之總數可 大於在無子指令之VLIW封包中包裝的指令之總數,所以 可減/為了獲得程式指令而對記憶體進行提取之總數,計 :時間效率隨之增加。由於每-提取具有能量成本,因此 提取之總數的減少可導致與執行程式相關聯的減少之功率 消耗。 參看圖4 ’管線式處理器之一特定說明性實施例經揭示 且整體標明為400。管線式處理器400包括一提取級4〇2、 一解碼級404及一執行級4〇6。管線之額外級(包括回寫級) 未圖示。在提取級402處,自諸如指令快取記憶體或其他 s己憶體之記憶體提取超長指令字(vu w)指令4〇8。vliw指 令408包括四個指令2〇2、2〇4、2〇6及2〇8。指令2〇2包括一 具有值10之剖析攔位210,指令2〇4包括一具有值〇1之剖析 欄位212,指令2〇6包括一具有值01之剖析攔位214,且指 令208包括一具有值〇〇之剖析攔位216。剖析攔位21〇、212 及214具有指示其對應的指令並非封包結尾指令之值。具 有值00之剖析攔位216指示指令208為子封包指令且指令 208為封包結尾指令。指令2〇8包括第一子指令218及第二 子指令220。第一子指令218包括由A指示之資料,且第二 154546.doc -II - 201203104 子指令220包括由B指示之資料。 前進至解碼級4G4,將VLIW封包彻分裂成指令2〇2、 204、2G6及兩個子指令218及2辦之每—者^前進至執行 級406,存在四個執行單元·· 特定說明性實施例中,執行單元430及432執行算術指令 (用字母X標明),且執行單元434及432為資料載人及儲存 執行單元(用字母D標明)。在-特定說明性實例中,在執 行單元430中執行指令2〇2,在執行單元中執行指令 204’在執行單元434中執行指令2〇6,及在執行單元❻中 執行第一子指令218。可同時執行指令2〇2、2〇4、2〇6及第 一子指令218。在於執行單元436 _執行第一子指令218 後,在後一個時脈循環期間在執行單元436中執行第二子 指令220。因此,在圖4中描繪之實例中,在執行單元436 中連續地執行子指令218及220。在另一特定說明性實例 (圖4中未展不)中,執行單元436經組態以致能兩個子指令 218及220之同時執行。在此組態中,可同時執行指令 202、204、206、218及220 ° 在圖5中說明之又一特定說明性實例中’並非剖析欄位 (亦即,不在210、212、214或216内)之指示符攔位5〇2可充 當一特定指令為子封包指令之指示符。舉例而言,指令 204可包括指示符欄位502,該指示符欄位5〇2當經設定時 指示指令204為包括第一子指令C 5〇4及第二子指令〇 5〇6 之子封包指令。或者,VLIW封包408中之每一指令可包括 一子封包指示符攔位。可在解碼級404處解碼子封包指令 154546.doc •12· 201203104 且接著可執行子指令504及咖。在圖5中展示之一特 疋說明性實例中,處理器5⑽包括_執行單元532,兑㈣ J以同時執行兩個子指令’從而使子指令5〇4及5〇6能夠與 一曰令202、摘及子指令218同時執行。在另一特定說明性 貫例(圖4或圖5中未展示)中,執行單元432及436中之每一 者經組態以同時執行兩個子指令,從而使子指令218及220 及子指令504及506能夠與指令2〇2及2〇6同時執行。 參看圖6 ’管線式處理器之一特定說明性實施例經揭示 且整體標明為管線式處理器_包括一控制單元_ 及執行單元608、610、612及614。控制單元6〇6包括一解 碼器616及通用暫存器檔案620。 在操作中’操取一指令封包(諸如,包括複數個指令之 VUW封包)且經由M流排634將其供應至控制單元。解碼 器…可操作以解碼指令封包内之多個指令。在解碼器616 處將VLIW封包解封裝成個別指令。vu^包包括複數個 指令’其包括-指令202、-指令204及一包括一子指令 218及-子指令22G之子封包指令。在—特定說明性實施例 中,子指令2職220為每一者在大小上比包裝在⑷以封 包中之子封包指令小(亦即,包括較少位元)的指令。 在於解碼器616處解碼了 VLIW封包後,將經解碼之指令 發送至執行級。指令202、204、 218及220中之每一者進入 一對應的執行單元。如圖6中所示,在指令單元614處執行 指令202 ’在指令|元612處執行指令2()4,在執行單元㈣ 處執行子指令218,及在指令單元6〇8處執行子指令22〇。 154ii46.doc •13· 201203104 因此,在圖6中展+ #香+ '、之貫例中’同時執行指令202、204、 218及220。在執行後,將執行單元_、61〇、612及614中 之每一者的輸出寫入至通用暫存器檔案㈣。亦可經由匯 流排㈣執行單元_、㈣、612及614之輸出發送至儲 存記憶體。 參看圖7,路由指令之方法的一特定說明性實施例經展 示且整體標明為7GG。在71G處,接收包括具有第-剖析值 之第-指令及具有第二剖析值之第二指令的一指令封包。 舉例而f,在圖3中,指令2〇6具有一具有第一剖析值⑴之 剖析襴位2 14,且指A 9 OR敗士 a . 且知7 208具有一具有第二剖析值〇〇之剖析 欄位216 ^在一特定說明性實施例中,該指令封包為一 VLIW封包。舉例而言’在圖3中封包规為一 封 包。在720處,將第一指令路由至第一執行單元。舉例而 言,在圖3中,將指令2〇6路由至執行單元334。前進至 730 ’將第二指令識別為包括—第—子指令及—第二子指 令之子封包指令。舉例而言,在圖3中,指令2〇8由剖析攔 位216中之第二剖析值〇〇識別為子封包指令。指令2〇8包括 第一子指令218及第二子指令220。前進至740,將第一子 指令路由至第二指令單元。舉例而言,在圖3中,將第一 子指令21 8路由至指令單元336。前進至75〇,可將第二子 指令路由至第三執行單元。舉例而言,在圖3中,將第二 子指令220路由至指令單元338。視情況,在76〇處,同時 執行第一子指令、第二子指令及第一指令。舉例而言,在 圖3中’同時執行指令206及子指令218及22〇。方法在77〇 154546.doc -14· 201203104 處結束。在其他實施例中,可將第二子指令路由至第二指 令單元以與第一子指令連續地執行。 參看圖8,執行指令之方法的一特定說明性實施例經揭 示且整體標明為800。在810處,接收包括—第一指令之一 指令封包。舉例而言,在圖3中,封包3〇8包括指令2〇8。 在820處,解碼第一指令。在83〇處,進行關於第一指令是 否為子封包指令之判mu第—指令為包括複數個子 指令之第一子封包指令時,方法前進至區塊請。舉例而 言,在圖3中,指令208為包括第一子指令218及第二子指 令220之子封包指令。第—指令包括將第—指令識別為子 封包指令指示第-指令之封包結尾狀態之剖析指示符。 (封包内的指令中之任一者可在解碼期間經由其剖析指示 符之值而識別為子封包指令或經由識別子封包指令之替代 方法來識別。)舉例而言,在圖3中,指令2〇8包括具有值 00之剖析指示符216,該值將指令2〇8識別為子封包指令且 才曰不指令208為封包結尾指令。在區塊84〇處,執行複數個 子指令中之每一者。舉例而言,在圖3中,執行第一子指 令218及第二子指令22〇。在一特定說明性實施例中,同時 執行複數個子指令中之所有者。舉例而言,在圖3中,同 時執行第一子指令218及第二子指令22〇。返回至決策區塊 830,當第一指令不為子封包指令時,在85〇處,執行第一 指令。舉例而言,在圖3中,在解碼級304處,判定指令 206不為子封包指令’且指令206自解碼級304前進至執行 其之執行級306。方法在860處結束。 154ii46.doc •15· 201203104 參看圖9,包括一數位信號處理器以處理包括子指令之 VLIW封包的無線裝置之一特定說明性實施例之方塊圖經 描繪且整體標明為900。裝置900包括一處理器(諸如,數 位信號處理器(DSP)910),以處理VLIW封包964中之複數 個指令。VLIW封包964包括指令966、968、970及972 » VLIW封包964為一階層式指令封包,其包括複數個子封包 指令。VLIW封包964包括按階層的三個等級之指令。每一 子封包指令包括複數個子指令。舉例而言’指令972為包 括子指令974及976之子封包指令(該階層之第二等級)。子 指令974為包括子子指令978及980之子子封包指令(該階層 之第三等級),且子指令976為包括子子指令982及984之子 子封包指令(該階層之第三等級)。 在DSP 910之解碼級處,將VLIW封包964解碼成指令 966、968、970及972 »子封包指令972被解碼成子指令974 及976。子指令974被解碼成子子指令978及980,且子指令 976被解碼成子子指令982及984。在一說明性實例中, DSP 910根據圖3至圖5中之一或多者及根據圖6及圖7的方 法中之一或多者或其任何組合來處理指令966、968、 970、978、980、982及984 ° 圖9亦展示一顯示控制器926,其耦接至數位信號處理器 910及顯示器928。編碼器/解碼器((:〇〇£(:)934亦可耦接至 數位信號處理器910。揚聲器936及麥克風938可耦接至 CODEC 934。 圖9亦指示無線控制器940可耦接至數位信號處理器910 154546.doc * 16 - 201203104 及無線天線942。在一特定實施例中,DSP 910、顯示控制 器926、記憶體932、CODEC 934及無線控制器940包括於 系統級封裝或系統單晶片裝置922中。在一特定實施例 中,輸入裝置930及電源供應器944耦接至系統單晶片裝置 922。此外,在一特定實施例中,如圖9中所說明,顯示器 928、輸入裝置930、揚聲器936、麥克風938、無線天線 942及電源供應器944在系統單晶片裝置922外部。然而’ 顯示器928、輸入裝置930、揚聲器936、麥克風938、無線 天線942及電源供應器9料中之每一者可耦接至系統單晶片 裝置922之一組件,諸如,介面或控制器。 熟習此項技術者將進一步瞭解,結合本文所揭示之實施 例所描述之多種說明性邏輯區塊、組態、模組、電路及演 算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為 了清晰地說明硬體與軟體之此可互換性,各種說明性組 件、區塊、組態、模組、電路及步驟已在上文大體按其功 能性加以描述。將此功能性實施為硬體或是軟體視特定應 用及強加於整個系統上之設計約束而定。熟習此項技術者 可針對每-特定應用以變化的方式實施所描述之功能性, 但此等實施決Μ應被解釋為會造成脱離本發明之範嘴。 結合本文中所揭示之實施例所描述之方法或演算法的步 驟可直接以硬體、由處理器執行之軟體模組或兩者之以 來體現。軟_組可常駐於隨機存取記憶體(ram)、快閃 記憶體、唯讀記憶體(R0M)、 』心式化唯讀記憶體 (PROM)、可抹除可程式化唯讀 只。己憶體(EPROM)、電可抹 1541i46.doc 17 201203104 除可程式化唯讀s己憶體(EEPR〇M)、暫存器、硬碟、抽取 式碟片、緊密光碟唯讀記憶體(CD-R〇M)或此項技術中已 4之任何其他形式的儲存媒體中…例示性儲存媒體耗接 至處理器,使得處理器可自儲存媒體讀取資訊及將資訊寫 :至儲存媒體。在替代方案中,儲存媒體可整合至處理 器。處理器及赌存媒體可常駐於特殊應用積體電路(asic) 中ASIC可节駐於叶算裝置或使用者終端機中。在替代方 案中’處理器及儲存媒體可作為離散組件常駐於一計算裝 置或使用者終端機中。 提供所揭示之實施例的先前描述,以使任何熟習此項技 術者能夠進行或使用所揭示之實施例。對於熟習此項技術 者而言,對此等實施例之各種修改將易於顯而易見,且在 不脫離本發明之範疇的情況下,本文中界定之原理可適用 於其他實施你j。因&,本發明並不欲限於本文中所展示之 實施例,而應符合與如由下列申請專利範圍界定之原理及 新賴特徵相一致之最廣泛的可能範疇。 【圖式簡單說明】 圖1為進入管線式處理器的超長指令字(vuw)封包之一 特定說明性實施例之方塊圖; 圖2為包括一子封包指令的▽。買封包之一特定說明性實 施例之方塊圖; 圖3為處理包括一子封包指令之VLIW封包的管線式處理 器之一特定說明性實施例之方塊圖; 圖4為正處理包括一子封包指令之¥]^冒封包的管線式處 154546.doc •18- 201203104 理器之另一特定說明性實施例之方塊圖; 圖5為正處理包括一子封包指令之VLIW封包的管線式處 理器之另一特定說明性實施例之方塊圖; 圖6為正處理包括一子封包指令之乂]^玫封包的管線式處 理單元之另一特定說明性實施例之方塊圖; 圖7為處理包括一子封包指令之VLIW封包的方法之一特 定說明性實施例之流程圖; 圖8為處理包括一子封包指令之vliW封包的方法之另一 特定說明性實施例之流程圖;及 圖9為包括一數位信號處理器以處理包括子指令之VLIW 封包的無線裝置之方塊圖。 【主要元件符號說明】 100 管線式處理器 102 VLIW封包/提取級 104 解碼級 106 執行級 108 VLIW封包 110 第一指令 112 第二指令 114 第N個指令 116 子指令 118 子指令 120 執行單元 122 執行單元 154fl46.doc •19· 201203104 124 執行單元 126 執行單元 200 VLIW封包 202 指令 204 指令 206 指令 208 指令 210 剖析欄位 212 剖析欄位 214 剖析欄位 216 剖析欄位 218 第一子指令 220 第二子指令 222 第一指令類別攔位 224 第二指令類別欄位 300 管線式處理器 302 提取級 304 解碼級 306 執行級 308 指令封包 330 執行單元 332 執行單元 334 執行單元 336 執行單元/指令單元 154546.doc -20. 201203104 338 執行單元/指令單元 400 管線式處理器 402 提取級 404 解碼級 406 執行級 408 VUW指令 430 執行單元 432 執行單元 434 執行單元 436 執行單元 500 處理器 502 指示符攔位 504 第一子指令 506 第二子指令 532 執行單元 600 管線式處理器 606 控制單元 608 執行單元 610 執行單元 612 執行單元 614 執行單元 616 解碼器 620 通用暫存器檔案 634 匯流排 154fi46.doc -21 201203104 700 路由指令之方法 800 執行指令之方法 900 無線裝置 910 數位信號處理器(DSP) 922 系統級封裝或系統單晶片裝置 926 顯示控制器 928 顯示器 930 輸入裝置 932 記憶體 934 編碼器/解碼器(CODEC) 936 揚聲器 938 麥克風 940 無線控制器 942 無線天線 944 電源供應器 964 VLIW封包 966 指令 968 指令 970 指令 972 指令 974 子指令 976 子指令 978 子子指令 980 子子指令 154546.doc -22- 201203104 982 984 子子指令 子子指令 154546.doc -23

Claims (1)

  1. 201203104 七、申請專利範圍: 1 · 一種處理指令之方法,該方法包含: 接收一指令封包,其中該封包包括一指令; 解碼該指令以判定該指令是否 是皁—指令或該指令 疋洛巴括—包括複數個子指令之子封包;及 之:應=判定該指令包括該子封包,執行該等子指令中 ;· 之方法’其中該指令封包包括多個子封包。 .·之二=方法’其進一步包含解碼該複數個子指令 第一子封包以識別一第一指令子封包。 4. 如請求項1之方法,其中該解 令封包中之了才呆作以解碼該指 〒之夕個指令的解碼器執行。 5. 如請求们之方法,其中該指 該子封包之料冑料令識別為 6. 如請求項! #古 -類型之抨入類、、^指令包括一用以識別指令之 土·^知令類別攔位。 7 ·如請求項丨 封包。方法,其中該封包為-超長指令字(VUW) 8. 如請求項^ 9. 如請求们 、㈣包包括複數個指令。 在一第一執广法,其中該複數個子指令中之每—者俜 弟執行單元處執行。 者係' 10. 如請求項】 係在一第M 、’其中該複數個子指令中之一第—者 第二者:在 1:單:處執行,且該複數個子指”之— 第二執行單元處執行。 154:>46.doc 201203104 11. 12. 13. 14. 15. 16. 17. 18. 19. 如睛求項10之方法 法,其中同時執行該等子指令t之該第 -者與該等子指令中之該第二者。 項1之方法,其中該封包之每一指令包含一超長 才曰令字(VUW)指令。 一種處理指令之方法,該方法包含: ^ 7封包’纟中該封包包括-具有-第-剖析 值之第-指令及一具有一第二剖析值之第二指令; 將該第—指令路由至-第-執行單元; 〆第才曰”戠別為-包括一第一子指令及一第二子 扣7之子封包指令;及 2該第—子指令路由至一第二執行單元。 、/項13之方法’其中每—剖析值識別對應指令係處 ;X之結尾處、處於—硬體迴路之一結尾處或不 在該封包之一結尾處。 如請求項U之方法,其中該第二剖析值將該第二指令識 別為該子封包指令。 月求項13之方法’其中該等執行單元中之每一者包括 一算術執行單元或一載入/儲存資料單元。 如”月求項13之方法’其進—步包含同時執行該第一子指 令與該第二子指令。 士叫求項13之方法,其進一步包含將該第二子指令路由 至一第三執行單元。 一種處理器,其包含: 解碼器,以接收一指令封包,其中該封包包括一指 154546.doc 201203104 令,該解碼器操作以解碼該 包括一第一子指令及 曰“乂判定該指令是否為- -執行單元,以執":八曰令之第一子封包指令;及 M執仃該指令或執杆 2〇·如請求項19之處理胃,其進一步二亥第—子指令》 執行該第二子指令。 乂匕3一第一執行單元以 21.如請求項丨9之處理器,其 ^ β ^封包進一步包含一第-# 令,該處理器進—步包 弟一扣 指令。 第二執行單元以執行該第二 22=請求項19之處理11,其中該封包包括複數個指令,皇 亥複數個指令中之每-指令具有同一大小。 23·=求項22之處理器,其中與該第—子指令及該第二子 才"中之#者相關聯的—大小小於與該指令相關聯的 該大小。 24.如請求項19之處理器,其中該指令包括一第一剖析指示 符,°亥第咅析指示符具有-與-封包結尾狀態相關聯 之第剖析值,該第一剖析值亦指示該第一指令包括該 第一子指令及該第二子指令。 25·如印求項19之處理器,其中與該第—子指令及該第二子 才曰7中之母者相關聯的一大小小於與該指令相關聯的 一大小0 154546.doc
TW100107221A 2010-03-03 2011-03-03 System and method of processing hierarchical very long instruction packets TW201203104A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/716,359 US9678754B2 (en) 2010-03-03 2010-03-03 System and method of processing hierarchical very long instruction packets

Publications (1)

Publication Number Publication Date
TW201203104A true TW201203104A (en) 2012-01-16

Family

ID=43827510

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100107221A TW201203104A (en) 2010-03-03 2011-03-03 System and method of processing hierarchical very long instruction packets

Country Status (7)

Country Link
US (1) US9678754B2 (zh)
EP (1) EP2542963B1 (zh)
JP (2) JP2013521577A (zh)
KR (1) KR101449732B1 (zh)
CN (1) CN102822794B (zh)
TW (1) TW201203104A (zh)
WO (1) WO2011109476A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620957B2 (en) * 2015-10-22 2020-04-14 Texas Instruments Incorporated Method for forming constant extensions in the same execute packet in a VLIW processor
US10719325B2 (en) * 2017-11-07 2020-07-21 Qualcomm Incorporated System and method of VLIW instruction processing using reduced-width VLIW processor
CN110381051A (zh) * 2019-07-12 2019-10-25 苏州浪潮智能科技有限公司 一种报文解析的方法、系统、设备及计算机可读存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2835103B2 (ja) 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
JP2931890B2 (ja) 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
JP2806359B2 (ja) 1996-04-30 1998-09-30 日本電気株式会社 命令処理方法及び命令処理装置
US8583895B2 (en) 1996-05-15 2013-11-12 Nytell Software LLC Compressed instruction format for use in a VLIW processor
US5890009A (en) 1996-12-12 1999-03-30 International Business Machines Corporation VLIW architecture and method for expanding a parcel
JP3578883B2 (ja) 1997-01-31 2004-10-20 三菱電機株式会社 データ処理装置
US5819058A (en) * 1997-02-28 1998-10-06 Vm Labs, Inc. Instruction compression and decompression system and method for a processor
JP3790607B2 (ja) 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6157996A (en) * 1997-11-13 2000-12-05 Advanced Micro Devices, Inc. Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space
US6101592A (en) 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US6366999B1 (en) 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6366998B1 (en) 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
US6356950B1 (en) 1999-01-11 2002-03-12 Novilit, Inc. Method for encoding and decoding data according to a protocol specification
US6385757B1 (en) 1999-08-20 2002-05-07 Hewlett-Packard Company Auto design of VLIW processors
US6564264B1 (en) * 1999-12-08 2003-05-13 At&T Corp. System, apparatus and method for automatic address updating of outgoing and incoming user messages in a communications network
US6658551B1 (en) 2000-03-30 2003-12-02 Agere Systems Inc. Method and apparatus for identifying splittable packets in a multithreaded VLIW processor
US7096343B1 (en) 2000-03-30 2006-08-22 Agere Systems Inc. Method and apparatus for splitting packets in multithreaded VLIW processor
US7181595B1 (en) 2000-05-11 2007-02-20 Mindspeed Technologies, Inc. Method for decoding composite VLIW packets utilizing a tree structure
KR100464406B1 (ko) 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
EP1367484B1 (en) 2002-05-31 2013-07-24 STMicroelectronics Limited Instruction encoding
US7523295B2 (en) 2005-03-21 2009-04-21 Qualcomm Incorporated Processor and method of grouping and executing dependent instructions in a packet
US7526633B2 (en) 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
US7590824B2 (en) 2005-03-29 2009-09-15 Qualcomm Incorporated Mixed superscalar and VLIW instruction issuing and processing method and system
US7581082B2 (en) * 2005-05-13 2009-08-25 Texas Instruments Incorporated Software source transfer selects instruction word sizes
US20070266229A1 (en) * 2006-05-10 2007-11-15 Erich Plondke Encoding hardware end loop information onto an instruction
US8775777B2 (en) 2007-08-15 2014-07-08 Nvidia Corporation Techniques for sourcing immediate values from a VLIW
US8665996B2 (en) * 2008-04-01 2014-03-04 Qualcomm Incorporated Efficient parallel sub-packet decoding using multiple decoders

Also Published As

Publication number Publication date
CN102822794A (zh) 2012-12-12
KR101449732B1 (ko) 2014-10-13
KR20120139773A (ko) 2012-12-27
US20110219212A1 (en) 2011-09-08
JP2013521577A (ja) 2013-06-10
WO2011109476A1 (en) 2011-09-09
EP2542963A1 (en) 2013-01-09
EP2542963B1 (en) 2016-02-24
JP2014238859A (ja) 2014-12-18
CN102822794B (zh) 2016-08-03
US9678754B2 (en) 2017-06-13

Similar Documents

Publication Publication Date Title
US8868888B2 (en) System and method of executing instructions in a multi-stage data processing pipeline
US9235418B2 (en) Register files for a digital signal processor operating in an interleaved multi-threaded environment
KR101183849B1 (ko) 멀티-스레드 프로세서에서 프로그램 스레드들을 실행하는 시스템 및 방법
US7584233B2 (en) System and method of counting leading zeros and counting leading ones in a digital signal processor
EP2261815A2 (en) Multithread processor with efficient processing for convergence device applications
KR101697548B1 (ko) Fifo 로드 명령
WO2006110906A2 (en) Unified non-partitioned register files for a digital signal processor operating in an interleaved multi-threaded environment
JP2013541758A (ja) 命令フェッチユニットの電力を落とすことによりプロセッサ内の電力消費を低下させる方法および装置
US8688761B2 (en) Arithmetic logic and shifting device for use in a processor
US8281111B2 (en) System and method to execute a linear feedback-shift instruction
US8843730B2 (en) Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination
TW201203104A (en) System and method of processing hierarchical very long instruction packets
US8874884B2 (en) Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold
KR20070118705A (ko) 레지스터 파일에 액세스하기 위해 프리디케이트 값을이용하는 시스템 및 방법
WO2013025641A1 (en) Bit splitting instruction
KR100955555B1 (ko) 디지털 신호 프로세서에서 2의 보수 연산들을 수행하는시스템 및 방법