TW200825906A - Method and system to combine multiple register units within a microprocessor - Google Patents

Method and system to combine multiple register units within a microprocessor Download PDF

Info

Publication number
TW200825906A
TW200825906A TW096128461A TW96128461A TW200825906A TW 200825906 A TW200825906 A TW 200825906A TW 096128461 A TW096128461 A TW 096128461A TW 96128461 A TW96128461 A TW 96128461A TW 200825906 A TW200825906 A TW 200825906A
Authority
TW
Taiwan
Prior art keywords
unit
register
register unit
temporary
temporary storage
Prior art date
Application number
TW096128461A
Other languages
English (en)
Inventor
Lucian Codrescu
Erich Plondke
Mao Zeng
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 TW200825906A publication Critical patent/TW200825906A/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
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/46Multiprogramming arrangements

Landscapes

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

Description

200825906 九、發明說明: 【發明所屬之技術領域】 本發明大體而言係關於微處理器,且更具體言m關 於在微處理器(諸如數位信號處理器)内結合多個暫存 元之方法及系統。 ° 【先前技術】 Ο Ο 。。料電腦系統包括—或多個微處理器器件,每-微處理 器器件經組態以對儲存於電腦系統之記憶體内之值執行運 异並管理電腦系統之總運算。此等電腦系統亦可包括各種 =媒體II件(諸如音效卡及/或視訊卡),每—多媒體器件進 -步包括-或多個處理器(諸如數位信號處理器(⑽”,該 或該等處理器執行每一各別多 人 冰 夕媒體裔件内之複雜數學計 异。 口’ 數位:號處理器(DSP)通常包括經特定組態以執 數學計算之硬體勃并g 4 早凡,啫如一或多個算術邏輯單元 (ALU)、一或多個乘法月g 4 tm 一 ^ ,、σ早元(MAC),及經組態以執 仃精由DSP内之指今隹所招6 4 M m 等運曾… 規疋之運算的其他功能單元。此 運算,每-去m 异域輯運异及其他資料處理 者猎由相關聯指令集所定義。 通吊’DSP内之執行覃开白屋 勒六抑 早凡自耦接至記憶體及執行單开夕 暫存咨檔案讀取資料及運算元、執行指曾 儲存於暫存幸中 9 异,且將結果 案中。暫存器檔案 母一暫存器單元作為一盟一加—。。、 存為早兀, 罝- 、 暫存器或作為兩個相鄰暫在口口 早兀之經對齊對而為可存取的。 ㈣相㈣存益 …、而,某些特定運算(諸 123388.doc 200825906 如加或減資料之運算)需要來自暫存写 器單元之資料經適當地對齊以用於執行二=立!存 ;種=行單一指令期間結合_内多個非相鄰的暫:t 早兀以致能儲存於此等暫存 言存态 方法及系統。 …内之資料之適當對齊的 【發明内容】 本發明描述一種在微處理器(諸 合多個暫存器單元之方法及夺%纟1就處理益)内結 早^之暫存器檔案結構擷取一第一暫处里 暫存器單元,該第一暫存3!里n早凡及一第二 相鄰地位於暫存器檔案結構内:=第:暫存器單元並非 步結合該第-暫存器單元及;第在::早-指令期間進-得暫存器單元。最後,所得暫=存:單元以形成-所 結構内以用於進一步處理。…儲存於暫存器檔案 Ο 二::實施例中,在擷取第—暫存器單元及第二暫存 。早几之後’自第一暫存器單元擷取第一半 二暫存器單元擷取第二半字單元。 第 第-半字單元及第二半字單元進=亍單一指令期間將 元之針m 子早兀進—步輸入至所得暫存器單 :對應向及低部分以形成所得暫存器單 暫存器單元儲存於暫存 所传 【實施方式】 構内以用於進一步處理。 入=發=描述一種在微處理器(諸如數位信號處理器…士 °夕固暫存器單元的方法及系統。儘管以下所描述之系统 致此數位信號處理器(DSP)結合暫存器單元,但應瞭解可 123388.doc 200825906 使用一微處理器器件,或能在執行單一指令期間將多個暫 存器單元結合為一所得較大暫存器單元之任何其他處理單 元來實施該系統。 通常,DSP内之執行單元自暫存器檔案讀取資料及運算 元,執行指令運算,且將結果儲存於暫存器檔案中。暫存 器檔案包括多個暫存器單元,每一暫存器單元作為一單一 暫存器或作為兩個相鄰暫存器單元之經對齊對而為可存取 的。然而,某些特定運算(諸如加或減資料之運算)需要來 自暫存器檔案内之獨立暫存器單元之資料經適當地對齊以 用於執行指令。以下詳述之實施例有助於在執行單一指令 期間結合/串聯DSP内之多個非相鄰的暫存器單元,以致能 儲存於此等暫存器單元内之資料的適當對齊以為後續之向 量運算做準備。 在一實施例中,自處理單元内之暫存器檔案結構擷取一 第一暫存器單元及一第二暫存器單元,該第一暫存器單元 及該第二暫存器單元並非相鄰地位於暫存器檔案結構内。 在執行單一指令期間進一步結合該第一暫存器單元及該第 二暫存器單元以形成一所得較大暫存器單元。最後,所得 暫存器單元儲存於暫存器檔案結構内以用於進一步處理。 在一替代實施例中,在擷取第一暫存器單元及第二暫存 器單元之後:自第一暫存器單元擷取第一半字單元且自第 二暫存器單元擷取第二半字單元。在執行單一指令期間將 第一半字單元及第二半字單元進一步輸入至所得暫存器單 元之對應高及低部分以形成所得暫存器單元。最後,所得 123388.doc -9- 200825906 暫存器單元儲存於暫存器擋案結構内以用於進一步處理。 圖1為執行指令集之數位信號處理系統之方塊圖。如圖i :所說明,數位信號處理系統100包括一處理單元110、— 隐體150及-或多個匯流排16G ’匯流排⑽將處理單元 110耦接至記憶體15〇。 z It體150以(諸如)藉自VLIW編譯器產生之極長指令字 (VLIW)封包的形式儲存資料及指彳,每一 vliw封包包含 〇 或夕個扎令。封包之每-指令通常具有預定寬度且具有 。己隐體15G中之特定位址,以使得封包中之第_指令通常 具有較封包之最後指令低之記憶體位址。記憶體之定址機 制為此項技術中所熟知的且此處未加以詳細討論。經由匯 流排160將記憶體150中之指令載入處理單元1 10中。 處理單兀110進一步包含經由一或多個管線140耦接至一 或多個暫存器檔案結構12〇之中央處理單元核心13〇。處理 單元110可進一步包含一或多個微處理器,數位信號處理 益’或其類似物。 暫存器檔案120進一步包含:一組通用暫存器單元,其 支援通用計算,且在下文結合圖2進一步詳細描述其;及 一組控制暫存器單元,其支援特殊目的功能性 ’諸如硬體 • 迴路、述詞及其他特殊運算元。 圖2為說明數位信號處理系統内之通用暫存器結構之一 實施例的方塊圖。如圖2中所說明,在一實施例中,暫存 器權案120内之通用暫存器檔案結構2〇〇包括多個暫存器單 元’諸如三十二(32)位元寬暫存器單元210,每一暫存器單 123388.doc -10- 200825906 一暫存器單元2 1 〇之經對 元作為單一暫存器或作為兩個相 齊對220為可存取的。 可基於合適之指令藉由多個名 不冉木知代通用暫存器單元 210。舉例而言,暫存器單开 仔益早70 210可個別地被稱為R0、 1 ...... R3 〇及R31。此外,暫在哭留一 瞀存益早兀R〇及R丨可形成一 被稱為R1:。之64位元暫存器對22()。相似地,暫存 & 及R3可形成被稱為‘之64位元暫存器對220,暫存器單元2
R28及R29可形成被稱為R29:2r64位㈣存器對㈣,且暫 存器單元r30及r31可形成被稱為〜3〇之64位元暫存 220。 σ 在一實施例中,通用暫存器單元21〇用於通用計算目 的,諸如位址產生、純量算術及向量算術;且提供用於指 令之所有運算元,包㈣於載人/儲存指令之位址、用於 數值指令之資料運算元及詩向量指令之向量運算元。 圖3為說明極長指令字(vuw)數位信號處理系統架構之 一實施例的方塊圖。VLIW系統架構3〇〇包括經由一指令載 入匯流排320、一資料載入匯流排322及一資料載入/儲存 匯流排324耦接至一數位信號處理器(DSP)330之記憶體 3 1 0 〇 〜 貫知例令,5己憶體3 1 〇以(例如)具有一至四個指令 之VLIW封包之形式儲存資料及指令。經由指令載入匯流 排320將記憶體3 1〇内所儲存之指令載入至DSp 33〇。在一 實施例中,每一指令具有一 32位元字寬,其經由一具有四 子寬之128位元指令載入匯流排32〇載入至DSp 33〇。在_ 123388.doc 200825906 實施例中,記憶體310為 辟六4^:人· ^組可定址記憶體,具有 :子曰々與資料之32位元位址空間, 八 nittle enH. 1 且在小端序模式 (iitUe-eiidianmode)中操作。 在一實施例中,DSp 33〇包 採式勒—抑 斤歹335、用於四個處 里或執仃早凡345之四個管線 一 ^ 通用暫存器檔宰妗構 350(已含複數個通用暫存器單元,諸如纟士人〆”、口· 夕、S田你士 、、、口 δ圖2詳細描述 之通用暫存器檔案結構200)及一控制暫存器檔宰结構 36〇。序列器335自記憶體㈣接收指令之封包且使 指令内之資訊為每-所接收之封包之每一指令判定適當之 官❸40及各別執行單元345。在為封包之每-指令作出此 判疋之後’序列器335將指令輸入至適當之管線34。中以藉 由適當之執行單元345處理。 曰 =實施射,該等執行單元345進—步包含—向量移 位單兀、-向sMAC單元、—載人單元及—載人/儲存單 兀。向ϊ移位單元345執行(例如)8型(移位單元)指令,諸 如移位及加/減運算、移位及邏輯運算、置換運算 〇Perati〇n)、述詞運算、位元操作及向量半字/字移位; A64型(64位元算術)指令,諸如64位元算術及邏輯運算、 32位το邏輯運算、置換運算;A32型(32位元算術)指令, 諸如32位兀算術運算;了型(跳轉)指令,諸如跳轉/調用 相關運算;及CR型(控制暫存器)指令,諸如控制暫存器轉 移、硬體迴路設置。向量MAC單元345執行(例如)%型(乘 法單元)彳曰令,諸如單精度、雙精度、複雜及向量位元組/ 半字指令;A64型指令;A32型指令;j型指令及爪型(跳轉 123388.doc 200825906 暫存器)指令,諸如跳轉/調 資料自λ s 畀益運异。載入單元345將 只1丁曰口己憶體3 1 0載入至通用勒 (例如入別 暫存态杈案結構350且執行 (例如)载入型及Α32型指令。载… ⑴丁 暫在火奋丄 邊存早元345將來自通用 臀存态4s案結構350之資料載 執行仏I4 載入並儲存回至記憶體310,且 仃(例如)載入型、儲存型及A32型指令。 所之每-執行單元345使用藉“個執行單元345
C Ο 所::之=用暫存器權案結構350來執行指令。將由指令 存评二=64位7"資料載入匯流排322載入至通用暫 什為;f田案結構3 5 〇。在藉 — 之播收 精由執仃早心45執行-封包之指令 έ 暫存裔私案結構350且隨後 、、&由64位元資料載入/健在 310。 載/储存匯流排324載入並儲存至記憶體 、匕之—至四個指令藉由四個執行單元345 時脈週期中並行執行,1 八甲對於母一時脈週期而言, 猎由官線340接收並處理最多一指令。 在實知例中,執行單元345亦可使用控 結構鳩來執行對應之指令。控制暫存器㈣結構㈣= :組特殊暫存器單元,諸如修改暫存器⑽。則以以扣㈣ 單凡、、狀態暫存器單元及述詞暫存器單元。 圖4為說明在數位信號處理系統1〇〇内結合暫存器單元之 方法的#施例的流程圖。如圖4之實施例中所說明,在 處理步驟41G處,接收在數位信號處理系統3GG内結人/串 聯暫存器單元的指令。在一實施例中,如以下所描^述, DSP 330内之執行單元345接收指令且執行該指令以結合儲 存於通用暫存器檔案結構35〇中之預定暫存器單元。在一 123388.doc • 13 - 200825906 實施例中,預定暫存器單元並非相鄰地位 案結構内。 *1仔裔才田 _在處理步驟420處,識別駭暫存器單元(諸如第一叫立 2暫存器單元及第二32位元寬暫存器單元)。在一實施 行單元345與通用暫存器檔案結構⑽通信且識別 :結合之暫存器單元。在-實施例中,記憶體31〇隨 Ο u 位元資料載入匯流排322將由指令所需之資料載 二=二暫存器檔案結構350。或者,資料可能已儲存於 斤4別之弟一及第二暫存器單元内。 =理:驟43❹處’擷取所識別之暫存器單元及相關聯 :抖。在一實施例中’執行單元⑷自通用暫存器槽案 '、° 1取所識別之暫存器單元及相關聯之資料。 在處理步驟44〇處,將所擷取 所得較大暫存㈣肉— 货存盗早凡結合/串聯在 孕又大暫存盗對内。在一實施例中,執行單元34”士入
所擷取之暫存器單元(諸如第一 °Q 元)及其相關聯之資料為一所心::二70寬暫存器單 以使得第-暫存/一 Η 暫存11對翠元, 写單…存益早凡及其相關聯之資料輸入至所得暫存 …之向部分且第二暫存器單元及 至所得暫存器單元之低部分。 胃科輸入 -^理在:::驟450處’儲存所得暫存器對以用於進 .I —貫施例巾,執行單元345將所得暫存單 凡輸出至通用暫存栌崇姓姓。CA ’仔裔早 以用於額外々構且儲存所得暫存器單元 用於頜外指令之進一步處理。 圖5為說明結合圖4所描述之用以結合暫存器單元之方法 123388.doc -14- 200825906 的方塊圖。如圖5中所說明,識別到源暫存器單元Rs 510 及Rt 520且進一步自通用暫存器檔案結構35〇擷取該等源 暫存器單元Rs 510及rt 52〇。 在一實施例中,將源暫存器單元Rs 51〇&Rt 52〇結合/串 聯為所得較大目的暫存器單元RD 53G之指令為·· σ (KS? Kj) 旦執行該指令’便將暫存器單元Rs 510及RT 520結合/ :聯為所得較大目的暫存器單元Rd 530,以使得駐留於暫 2早元RS 5附之資料輸人至暫存器單元& 53〇之高部 为中且駐留於暫存器單元Rt52〇中之資料輸入至暫存器單 部分中。若(例如)Rs51〇Mt似皆為Μ位 元寬暫:益早几’則所得目的暫存器單元^530為一 64位 70寬暫存器。 圖6為說明在數位信號處理系 方法 、、死内結合暫存荔旱元之 万法的一替代實施例的流 明,名飱,田止 如圖6之貫施例中所說 在處理步驟610處,拯跄 合/$ + 位信號處理系統300内結 口 /串聯暫存器單元的指令 ^ 勃耔。。- 长貫把例中’ DSP 330内之 執仃早tl 345接收指令且執行 明之 存器+μ 料令以結合儲存於通用暫 田系、、、口構3 5 0中之預定暫在 預定暫存哭抑_ # ^ 。早兀。在一實施例中, _在處理步驟㈣處,識別預㈣存:、案、、·。構内。 元寬暫存5|單元及篦- μ σ早711(諸如第一 32位 飞仔為早7L及第一 32位元寬暫 例中,執行單元裔早π)。在一實施 叮早兀Mi)興通用暫存器檔 請求待結合之暫存器單元。在—音冓50通信且識別 貫施例中,記憶體310隨 123388.doc 200825906 後經由64位元資料載入匯流排322將 入至通用暫存器擋案結構35〇 所需之資料載 所識別之第-及第二暫存器翠元内。’貝料可能已健存於 在處理步驟㈣處’擷取所識 … 之資料。在-實施例中,執行翠存盗早凡及相關聯 結構350擷取所識別之暫存器單元Z5關自;lit存器播案 在處理步驟640處,自第—暫存器單元掏貝枓。 元且將其輸人至所得暫存器 1取第—半字單 單元345進一步自 纟-貫施例中,執行 單元(其在一實施例中暫可存:第早元寬半字 元,或替代地可為第—暫暫存器單元之高半字單 第-半字軍元輸入至所得暫半字單元),且將 士各 益早^之高部分中。 在處理步驟650處,自第二暫 — 开曰脏甘μ °單'A指頁取第二半丰留 兀且將其輸入至所得暫存牛予早 單元345進一步自 在—實施例中,執行 ϋ 單元(其在-實單元擁取第二16位元寬半字 元1 可為第二暫存器單元之高半字。。 :,:!代地可為第二暫存器單元之低半字單元):早 第一半子單凡輸入至所得 且將 得一咖元寬所得暫存器軍元益早凡之低部分令,因此獲 最二在處理步驟66。處’健存所得暫 進一步處理。在一實施例中,^用於 單元輸出至通用暫存器播宰=早凡45將所得暫存器 元以用於㈣指令之進_/;^35()且儲存所得暫存器單 圖7為說明結合圖6所描述之用以結合暫存 U <方法 123388.doc -16 - 200825906 的方塊圖。如圖7中所說明,識別源暫存器單元^別及 τ且自通用暫存器檔案結構200擷取該等源暫存器單 元 Rs 540及 RT 550。 在一實施例中’將源暫存器單元Rs 540&RT 550結合/串 聯為所得目的暫存器單元Rd56〇之指令為: 結合(RT.[HL],RS.[HL]) τ [HL]為具有向半字低半字之源暫存器單元 RT ’且其+RS為具有高半字Η及低半字L之源暫存器單元
Rs 〇 Ο 如圖7中所展示,一旦執行指令,源暫存器單元RT 550 之高半字〜1或(替代地)源暫存器單元RT 550之低半字Rt2 &由多工器555輸入至暫存器單元Rd⑽之高部分,且源 暫存器單元RS 540之高半字〜或(替代地)源暫存器單元& 之低半子RS2經由多工器545輸入至暫存器單元、56〇 2部分中。若(例如)Rs㈣及Rt 55〇皆為32位元寬暫存 4早7°則在—實施例中’源暫存器單元RT 55G之高半字 一為6位凡寬’源暫存器單元1^ 540之低半字RS2亦為16 ::寬’且因此所得目的暫存器單元^5 6〇為32位元寬暫 存器。 藏办白2貝技術者將瞭解’可使用任何各種不同技術及技 :來表示資訊及信號。舉例而言,在以上描述中可參考之 資料、指令、命令、資却^ ^ —、 D ^旒、位元、符號及碼片可由 盆 1 a電磁波、磁場或磁粒子、光場或光學粒子戋 其任何組合來表示。 卞及 123 3 8 8.doc 200825906 熟習此項技術者應進一步瞭解可將結合本文中揭示之實 施例而描述之各種說明性邏輯區塊、模組、電路及演算、去 步驟實施為電子硬體、電腦軟體或兩者之組合。為清楚地 說明硬體及軟體之此互換性,已根據其功能性在上文中大 致描述了各種說明性組件、區塊、模組、電路及步驟。將 此功能性實施為硬體還是軟體取決於特定應用及強加於整 個系統之設計約束。對於每一特定應用,熟習此項技術者 可以變化之方式實施所描述之功能性,但不應將此等實施 決策解釋為會導致偏離本發明之範轉。 可用經没計以執行本文所描述之功能的通用處理器、數 位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程 式化閘陣列(FPGA)或其他可程式化邏輯器件、離散閘或電 晶體邏輯、離散硬體組件或其任何組合來實施或執行結合 本文中揭不之實施例所描述的各種說明性邏輯區塊、模組 及電路。通用處理器可為微處理器,但或者,該處理器可 為任何習知之處理器、控制器、微控制器或狀態機。處理 器亦可實施為計算器件之組合,例如一DSp及一微處理器 之組合、複數個微處理器之組合、一或多個微處理器以及 一 DSP核心之組合,或任何其他此組態。 結合本文所揭示t實施例描述之方法或演算法的步驟可 直接實施於硬體中、由處理H所執行之軟體中,或兩者之 組合中。應瞭解,此等實施例可用作軟體程式或用於支援 軟體程式’此等軟體程式於某形式之處理器或處理核心 (諸如電腦之CPU)上储,或另外實施或實現於一機器或 123388.doc 200825906 電腦可讀媒體之上或之中。一機器可讀媒體包括用於儲存 或傳輸呈可由一機器(例如,電腦)讀取之形式之資訊的任 何機制。舉例而言,機器可讀媒體包括RAM記憶體、快閃 。己隐體、ROM記憶體、epr〇nh&憶體、EEpR〇M記憶體、 • 暫存益、硬碟、抽取式碟片、CD-ROM,或此項技術中已 • ^之任何其它形式之儲存媒體。將例示性儲存媒體耗接至 ’處理益,使得處理器可自儲存媒體讀取資訊或將資訊寫入 ( 至儲存媒體。或者,可將儲存媒體整合至處理器。處理器 及儲存媒體可駐留於ASIC中。ASIC可駐留於一使用者終 端機中。或者,處理器及儲存媒體可作為離散組件駐留於 使用者終端機中。 提供所揭示實施例之先前描述以使任何熟習此項技術者 月b製k或使用本發明。熟習此項技術者將易於瞭解對此等 實施例之各種修改,且在不偏離本發明之精神或範疇的情 下本文中所疋義之一般原則可應用於其他實施例。因 〇 此本發明並不意欲限制於本文中所示之實施例,而應符 合與本文中所揭示之原理及新穎特徵一致的最廣泛範疇。 【圖式簡單說明】 圖1為可執行指令集之數位信號處理系統之方塊圖; • 圖2為說明數位信號處理系統内之通用暫存器結構之一 實施例的方塊圖; 圖3為說明極長指令字(VLIW)數位信號處理系統架構之 一貫施例的方塊圖; 圖4為说明在數位信號處理系統内結合暫存器單元之方 123388.doc -19- 200825906 法之一實施例的流程圖; 圖5為說明結合圖4所描述 ,,., 用以結合暫存置- 的方塊圖; ^早兀之方法 圖6為說明在數位信號處 !系統内結合智;μ D 一替代實施例的流葙隐. ^ @早 Γ 法的一替代實施例的流程圖. 圖7為說明結合圖6所描诚+ 用以結合暫存留_的方塊圖。 飞仔态早元之方法【主要元件符號說明】 元之方 u 100 數位信號虚/ 此疼理系統 110 處理單元 120 暫存器槽案結構/暫存: 130 中央處理單元核心 140 管線 150 記憶體 160 匯流排 200 通用暫存器檔案結構 210 暫存器單元 220 經對齊對/暫存器對 300 VLIW系統架構/數位信 310 記憶體 320 指令載入匯流排 322 資料載入匯流排 324 資料載入/儲存匯流排 330 數位信號處理器(DSP) 統 123388.doc -20- 200825906 335 序列器 340 管線 345 處理或執行單元、執行單元、向量MAC 單元、載入單元、載入/儲存單元 350 通用暫存器檔案結構 * 360 控制暫存器檔案結構 - 510 源暫存器單元Rs/暫存器單元Rs 520 Γ: 源暫存器單元RT/暫存器單元RT 530 目的暫存器單Rd 540 源暫存器單元Rs 545 多工器 550 源暫存器單元RT 555 多工器 560 目的暫存器單元Rd/暫存器單元Rd R0 暫存器單元 U R1 暫存器單元 R2 暫存器單元 R3 暫存器單元 R28 暫存器單元 • R29 暫存器單元 R30 暫存器單元 R31 暫存器單元 123388.doc -21 -

Claims (1)

  1. 200825906 十、申請專利範圍: 1. 一種電腦可讀媒體,其包含: 一在含於該媒體内之複數個可執行指令中之指令,該 指令在於一處理系統中執行時引起該處理系統選擇性地 結合來自一暫存器檔案結構之一第一暫存器單元及一第 ; 二暫存器單元以形成一所得暫存器單元,該第一暫存器 單元及該第二暫存器單元並非相鄰地位於該暫存器檔案 結構内。 2. 如請求項1之電腦可讀媒體,其中駐留於該第一暫存器 單元之資料及駐留於該第二暫存器單元内之資料經儲存 於該所得暫存器單元之對應部分中。 3. 如請求項2之電腦可讀媒體,其中該第一暫存器單元及 該第二暫存器單元為32位元寬暫存器單元,且該所得暫 存器單元為一 64位元寬暫存器單元。 4. 如請求項1之電腦可讀媒體,其中該第一暫存器單元之 ., 一第一半字單元及該第二暫存器單元之一第二半字單元 CJ 經儲存於該所得暫存器單元之對應部分中。 5. 如請求項4之電腦可讀媒體,其中該第一半字單元及該 •第二半字單元為16位元寬單元,且該所得暫存器單元為 ,一 32位元寬暫存器單元。 6. —種方法,其包含: 接收一可執行指令;及 執行該指令以選擇性地結合來自一暫存器檔案結構之 一第一暫存器單元及一第二暫存器單元以形成一所得暫 123388.doc 200825906 存器單元,該第一暫存器單元 .liL ^ 及5亥第一暫存器單元並非 相一地位於該暫存器檔案結構内。 7·如請求項6之方法,其中該執行進-步包含: 將駐留於該第一暫存琴罝 ^ . ° 内之資料及駐留於該第二 元内之資料儲存於該所得暫存器單元内: 相冋寬度之對應部分中。 /、令 8 ·如請求項7之方法,其中嗲箓 存器單元為32位元寬暫存;第軍:暫存器單元及該第二暫 為-“位元寬暫存器軍元…該所得暫存器單元 9·如請求項6之方法’其中該執行進-步包含: 將该第一暫存器單元之一抑 器單元之一第-半半字單元及該第二暫存 具有相同寬度之對應部分中。 存盗早X内之 “請:項9之方法,其中該第—半字單元 早το為16位元嘗置; /第一半予 Ο 元 寬暫存器單元^兀’以所得暫存器單元為—叫立 U·如:以項6之方法,其中該執行進—步包含: 。己隐體擷取與該第一暫存器單元 早凡相關聯之資料; μ第一暫存器 將該資料儲存於該f各別第_ 將該資料選擇性地姓入 存益早元内;及 !2· -種方法,:所得暫存器單元中。 器單元I理早7^内之一暫存器檔案結構擷取-第暫 …及-第二暫存器單 暫存 X弟暫存器單元及該第 123388.doc 200825906 二暫存器單元並非相鄰地位於該暫存器檔案結構内. 在執行一單一指令期間選擇性地結人 , 元及該第二暫存器單元以形成—所得暫;暫存器單 將該所得暫存器單元儲存 。早凡,及 於進-步處理。 暫存益槽案結構内以用 13.如請求項12之方法’其中該結合進—步包a . 接收用以結合該第-暫存器單元及^第3二 之該指令;及 节仔态早 在該處理單元内執行該指令。 14·如請求項12之方法,其中該結合進一步包含· :駐留於該第一暫存器單元内之資留 =單元内之資料儲存於該所得暫存器單元内二: 相同寬度之對應部分中。 〃有 15·如請求項14之方法,其中該第一 存器單元為32位元寬暫存器單元, 暫 Ο A , 且該所得暫存器單元 為一 64位元寬暫存器單元。 凡 16. 如請求項12之方法,其中該結合進_步包含: 將该第一暫存器單元之一第_ 口 哭番一 予早元及該第二暫存 i有Γ之一第二半字單元儲存於該所得暫存器單元内之 具有相同寬度之對應部分中。 I 17. 如請求項16之方法,其中該 留- 4 千子早兀及該第二半念 早凡為16位元寬單元,且該所得暫 1 寬暫存器單元。 暫存-早-為-32位元 18. 如請求項12之方法,其進一步包含: 123388.doc 200825906 自δ己憶體擷取與該第一暫存器嚴_ 單元相關聯之資料; D 70及該第二暫存器 將該資料儲存於該等各 將該資料選擇性地結合至該所:暫:暫巧^ 19. 一種含有可執行指令之電腦可讀_,:;;中。 處理系統中執行時’引起該處理系統執;;二在於-法包含·· 订方法,該方 Γ Ο 理單元内之—暫存器檔案結 …及—第二暫存器單元,該第-暫存 二在暫:器單?並非相鄰地位於該暫存器檔案二:該第 一订一早一指令期間選擇性地結合該第卜 凡及該第二暫存器單元以形成—所 存盗單 將該所得暫存器單元儲存於該暫存及 於進一步處理。 。田案、、、口構内以用 20·如19之電腦可讀媒體,其中該結合進-步包含· 接收用以結合該第一暫存器單元: 之該指令;及 货存裔早兀 在該處理單元内執行該指令。 21.如請求項19之電腦可讀媒體,其中該結合進—步包含. 暫在η / 内之資料及駐留於該第二 暫存為早几内之:貝料儲存於該所得暫存器單元内之且有 相同寬度之對應部分中。 〃 ^求f1之電細可頃媒體,其中該第—暫存11單元及 §亥第二暫存器單元為32位元寬暫存器單元,且該所得暫 123388.doc 200825906 存器單元為一 64位元寬暫存器單元 23·如請求項19之電腦可讀媒體,其7 將該第一暫存器單元之一第一、二、、"合進一步包含: 器單元之一第二半字單开辟六.半予早元及該第二暫存 70儲存於該所得暫 具有相同寬度之對應部分中。 节存裔早元内之 24·如請求項23之電腦可讀媒體,其中 〃 第二半字單元為16位元寬單元 "—半字單元及該
    U 一 32位元寬暫存器單元。’且該所得暫存器單元為 25.如請求項19之電腦可讀媒體,其 自一記憶體擷取盥哕第"去進一步包含: 只Μ 一口亥第一暫存器 單元相關聯之資料; °亥第二暫存器 、吻寸合别弟一及第二暫一 ==選擇性地結合至該所得暫 : 26. 種積體電路,其包含 憶體’其用於儲存包含—或多 -處理器,其轉接至該記憶體 之封包,及 -處理單元及_耦接至該處理…里益進-步包含 該處理單元用以.白二f兀之暫存器檔案結構; 存器單元及—第二暫 構擷取—第一暫 第二暫存写單 ° 70,6亥第-暫存器單元及該 在執行-單鄰地位於該暫存器槽案結構内,· 及該第二二=擇!地:?合該第-暫存器單元 所得暫存器單 』七成所传暫存器單元;且將該 步處理。館存於該暫存器檔案結構内以用於進- 123388.doc 200825906 27·:請求項26之電路,其中該處理單元進— 接收用以結合該第一輕— ° ^體 “弟t存器單元及該第 該指令,且執行該指令。 早兀之 1如請求項:二電路,其中該處理單元進一步將駐 第一暫存器單元内之資料 ^ ^ 又貝枓及駐留於該第二暫存器 之負料儲存於該所得暫存 賞 應部分中。 心,、有相冋寬度之對 29·如請求項28之電路, m 乐臀存杰早凡及該第二暫 存裔早兀為32位元寬暫存器單元,且該如 為-64位元寬暫存器單元。 μ传暫存益單元 3 0·如請求項26之電路,其中 。一 存器單元之一第丰二亥處…進-步將該第-暫 弟一丰予單元及該第二暫存器單元之—第 -+字單兀儲存於該所得暫存器單元内之 之對應部分中。 /、有相同寬度 31·如請求項30之電路,其中該第一 Ο 築n乙 牛子早兀及該第二半字 早兀為位兀寬單元,且該所得暫存 寬暫存器單元。 為32位兀 I 電路’其中該記憶體進-步儲存與該第一 暫存…及該第二暫存器單元相關聯之資料, 益槽案結構進一步擷取該資料且將該資 ::一及第二暫存器單元内,且該處理單元進:= 貝料選擇性地結合於該所得暫存器單元中 33· —種裝置,其包含: 用於自一處理單元内之一暫农 臀存益檔案結構擷取一第一 123388.doc 200825906 暫存器單元及一第二暫存器元 單元及該第二暫存号單乂兆“ 該第-暫存器 結構内;暫存mm非相鄰地位於該暫存器檔案 4於:ΓΓ單—指令期間選擇性地結合該第-暫存 : ; 第二暫存器單元以形成-所得暫存号單-的 構件;及 丁节仔态早7G的 用於將該所得暫存器單 〇 以用於進-步處理之構件。亥暫“楷案結構内 34.如請求項33之裝置,其進一步包含: 用於接收用以結合該第一暫存 單元之該指令之構件;及 I亥弟二暫存器 用於在該處理單元内執行該指令之構件。 35.如請求項33之裝置,其進一步包含: 用於將駐留於該第一暫存器 Ο 第二暫存器單元内之資料儲存 =及駐留於該 具有相同寬度之對應部分中的構;所㈣存器單元内之 如明求項35之裝置,其中該第—暫存 存器單元為32位元寬暫存器單元;;早凡及該第二暫 為位元寬暫存器單元。 该所得暫存器單元 37. 如請求項33之裝置’其進—步包含: 用於將該第一暫存器單元之— > 暫存器單元之一第—半字單元及該第二 内之如 早兀儲存於該所得暫存写里- 内之相同寬度之對應部分中之構件 于智存裔早TL 38. 如請求項37之裝置,其中該第—半。 予單元及該第二半字 123388.doc 且該所得暫存器單元為 及第二暫存 用 構件 200825906 單元為16位元寬單元 寬暫存器單元。 39·如請求項33之裝置,其推— 、·^ 一步包含: 用於自-記憶體類取輿該 存器單元相關聯之資料的構件;+盗早兀及該 用於將該資料儲存於該等各別第 内之構件;及 於將該資料選擇性地結合至該所得暫存 32位元 第二暫 _單元 七中之 123388.doc
TW096128461A 2006-08-02 2007-08-02 Method and system to combine multiple register units within a microprocessor TW200825906A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/498,627 US8417922B2 (en) 2006-08-02 2006-08-02 Method and system to combine multiple register units within a microprocessor

Publications (1)

Publication Number Publication Date
TW200825906A true TW200825906A (en) 2008-06-16

Family

ID=38745271

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096128461A TW200825906A (en) 2006-08-02 2007-08-02 Method and system to combine multiple register units within a microprocessor

Country Status (7)

Country Link
US (1) US8417922B2 (zh)
EP (1) EP2069913A1 (zh)
JP (5) JP2009545823A (zh)
KR (1) KR101048234B1 (zh)
CN (1) CN101495959B (zh)
TW (1) TW200825906A (zh)
WO (1) WO2008016902A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898436B2 (en) 2009-04-20 2014-11-25 Oracle America, Inc. Method and structure for solving the evil-twin problem
CN102457268B (zh) * 2010-10-15 2014-10-22 北京德威特继保自动化科技股份有限公司 32位捕获寄存器的实现方法
KR101801920B1 (ko) 2010-12-17 2017-12-28 삼성전자주식회사 동적 클러스터링이 가능한 레지스터 파일 및 동적 클러스터링이 가능한 레지스터 파일을 이용한 재구성 가능 컴퓨팅 장치
WO2013100927A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Reducing the number of io requests to memory when executing a program that iteratively processes contiguous data
US9323529B2 (en) 2012-07-18 2016-04-26 International Business Machines Corporation Reducing register read ports for register pairs
US9323532B2 (en) 2012-07-18 2016-04-26 International Business Machines Corporation Predicting register pairs
US9298459B2 (en) * 2012-07-18 2016-03-29 International Business Machines Corporation Managing register pairing
US9026791B2 (en) * 2013-03-11 2015-05-05 Qualcomm Incorporated Linear feedback shift register (LFSR)
US10228941B2 (en) * 2013-06-28 2019-03-12 Intel Corporation Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register
US9582419B2 (en) * 2013-10-25 2017-02-28 Arm Limited Data processing device and method for interleaved storage of data elements
US9886276B2 (en) * 2014-10-10 2018-02-06 Arm Limited System register access
US9952865B2 (en) * 2015-04-04 2018-04-24 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file
US10162634B2 (en) * 2016-05-20 2018-12-25 International Business Machines Corporation Extendable conditional permute SIMD instructions
CN107621949A (zh) * 2016-07-15 2018-01-23 龙芯中科技术有限公司 内存拷贝方法及装置
US10747531B1 (en) * 2018-04-03 2020-08-18 Xilinx, Inc. Core for a data processing engine in an integrated circuit

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0779577B1 (en) * 1993-10-18 2002-05-22 VIA-Cyrix, Inc. Micoprocessor pipe control and register translation
US5564056A (en) 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
JPH07262010A (ja) * 1994-03-25 1995-10-13 Hitachi Ltd 演算処理装置および演算処理方法
EP0743591B1 (en) 1995-05-16 2002-01-02 Océ-Technologies B.V. Printing system comprising a communication control apparatus
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
JP3526976B2 (ja) * 1995-08-03 2004-05-17 株式会社日立製作所 プロセッサおよびデータ処理装置
WO1997009679A1 (en) 1995-09-01 1997-03-13 Philips Electronics North America Corporation Method and apparatus for custom processor operations
US5854939A (en) * 1996-11-07 1998-12-29 Atmel Corporation Eight-bit microcontroller having a risc architecture
US6052522A (en) * 1997-10-30 2000-04-18 Infineon Technologies North America Corporation Method and apparatus for extracting data stored in concatenated registers
US6041404A (en) * 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US6247112B1 (en) * 1998-12-30 2001-06-12 Sony Corporation Bit manipulation instructions
US6463525B1 (en) * 1999-08-16 2002-10-08 Sun Microsystems, Inc. Merging single precision floating point operands
US6631460B1 (en) 2000-04-27 2003-10-07 Institute For The Development Of Emerging Architectures, L.L.C. Advanced load address table entry invalidation based on register address wraparound
AU2001259555A1 (en) 2000-05-05 2001-11-20 Ruby B. Lee A method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
US7120781B1 (en) * 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
JP2002132499A (ja) * 2000-10-27 2002-05-10 Hitachi Ltd データ処理装置及び記録媒体
JP3779540B2 (ja) * 2000-11-08 2006-05-31 株式会社ルネサステクノロジ 複数レジスタ指定が可能なsimd演算方式
US7228403B2 (en) * 2000-12-23 2007-06-05 International Business Machines Corporation Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JP3776732B2 (ja) * 2001-02-02 2006-05-17 株式会社東芝 プロセッサ装置
WO2004015563A1 (en) 2002-08-09 2004-02-19 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US7103756B2 (en) 2002-09-30 2006-09-05 Hewlett-Packard Development Company, L.P. Data processor with individually writable register subword locations
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409066B (en) 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409064B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
US7177876B2 (en) * 2004-03-04 2007-02-13 Texas Instruments Incorporated Speculative load of look up table entries based upon coarse index calculation in parallel with fine index calculation
US7376813B2 (en) * 2004-03-04 2008-05-20 Texas Instruments Incorporated Register move instruction for section select of source operand
US7237096B1 (en) * 2004-04-05 2007-06-26 Sun Microsystems, Inc. Storing results of producer instructions to facilitate consumer instruction dependency tracking
US8621444B2 (en) 2004-06-01 2013-12-31 The Regents Of The University Of California Retargetable instruction set simulators
US8127117B2 (en) 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor
US8445994B2 (en) 2009-05-07 2013-05-21 Qualcomm Incorporated Discontinuous thin semiconductor wafer surface features
US20100314725A1 (en) 2009-06-12 2010-12-16 Qualcomm Incorporated Stress Balance Layer on Semiconductor Wafer Backside
US8076762B2 (en) 2009-08-13 2011-12-13 Qualcomm Incorporated Variable feature interface that induces a balanced stress to prevent thin die warpage

Also Published As

Publication number Publication date
US8417922B2 (en) 2013-04-09
CN101495959B (zh) 2012-04-25
KR101048234B1 (ko) 2011-07-08
JP2013218709A (ja) 2013-10-24
US20080184007A1 (en) 2008-07-31
JP2009545823A (ja) 2009-12-24
JP2015201216A (ja) 2015-11-12
KR20090042294A (ko) 2009-04-29
JP2017138993A (ja) 2017-08-10
CN101495959A (zh) 2009-07-29
EP2069913A1 (en) 2009-06-17
JP5680709B2 (ja) 2015-03-04
WO2008016902A1 (en) 2008-02-07
JP2013242879A (ja) 2013-12-05

Similar Documents

Publication Publication Date Title
TW200825906A (en) Method and system to combine multiple register units within a microprocessor
CN105453071B (zh) 用来提供向量族群计数功能的方法、设备、指令和逻辑
TWI223196B (en) Method, apparatus, and system for exception handling in a pipelined processor
US8074051B2 (en) Multithreaded processor with multiple concurrent pipelines per thread
CN105359129B (zh) 用于提供用于基因组测序和比对的族群计数功能的方法、装置、指令以及逻辑
TW201106263A (en) Instruction process methods, and superscalar pipelined microprocessors
JP6242615B2 (ja) マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
TW201203110A (en) Mapping between registers used by multiple instruction sets
TW201007472A (en) Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor
US7809894B2 (en) Compare, swap and store facility with no external serialization
TWI288350B (en) Method for multi-pipe dispatch and execution of complex instructions in a superscalar processor
TW201337738A (zh) 用以提供向量水平式多數決投票功能之指令與邏輯
BR112015022683B1 (pt) Sistema de processamento e método de realização de uma operação de manipulação de dados
JP2001500641A (ja) 並列データプロセッサにおけるアクティブ命令を回転させる方法および装置
TW408269B (en) A method and system for handling multiple store instruction completions in a processing system
CN101322111A (zh) 每个线程具有多个并发流水线的多线程处理器
EP1050800A1 (en) A pipelined execution unit
TW201028917A (en) Data storing method and processor using the same
JPH0311479A (ja) ストリーム演算終了検知方法及びその装置