專利名稱:用于直接累積未調(diào)準(zhǔn)數(shù)據(jù)的可寫入分段字的架構(gòu)型寄存器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及處理器領(lǐng)域,且確切地說(shuō)涉及一種具有一個(gè)或一個(gè)以上用于直接 累積未調(diào)準(zhǔn)數(shù)據(jù)的可寫入分段字的架構(gòu)型寄存器的處理器。
背景技術(shù):
微處理器在廣泛的應(yīng)用中執(zhí)行計(jì)算任務(wù),所述廣泛的應(yīng)用包含嵌入式應(yīng)用(例如便 攜式電子裝置)。此種裝置的日益增加的特征組和增強(qiáng)的功能性要求計(jì)算能力更加強(qiáng)大的 處理器經(jīng)由軟件提供額外的功能性。便攜式電子裝置的另一趨勢(shì)是形狀因數(shù)日漸縮小。 這種趨勢(shì)的一個(gè)主要影響是,用來(lái)為裝置中的處理器及其它電子器件供電的電池的尺寸 越來(lái)越小,從而使得功率效率成為主要的設(shè)計(jì)目標(biāo)。便攜式電子裝置的縮小的尺寸還要 求處理器和其它電子器件經(jīng)過(guò)高度集成和緊密的封裝,從而使得芯片面積越發(fā)寶貴。因 此,便攜式電子裝置處理器需要增加執(zhí)行速度、減少功率消耗和/或減小芯片大小的處理 器上的改進(jìn)。通過(guò)處理器的指令集來(lái)界定處理器架構(gòu)?,F(xiàn)代精簡(jiǎn)指令集計(jì)算(RISC)架構(gòu)的特征包含指令相對(duì)較少、在指令之間隔離存儲(chǔ)器存取操作和邏輯/算術(shù)運(yùn)算,以及將計(jì)算復(fù) 雜性從指令集(或微碼)轉(zhuǎn)移到編譯器。RISC硬件特征包含 一個(gè)或一個(gè)以上高速執(zhí)行 管線,其包括一連串相對(duì)簡(jiǎn)單的執(zhí)行級(jí);存儲(chǔ)器層級(jí);和架構(gòu)型的一組通用寄存器(GPR)。 所有GPR具有相同寬度(架構(gòu)的字寬度)、形成存儲(chǔ)器層級(jí)的頂部(最快)層,并且用 作指令操作數(shù)或地址以及指令結(jié)果的目的地的來(lái)源。在特定的實(shí)施方案中,可提供廣泛 的無(wú)架構(gòu)支持硬件來(lái)輔助處理器,所述硬件例如為所屬領(lǐng)域技術(shù)人員眾所周知的"擦除" 寄存器、緩沖器、堆棧、FIFO和類似物。在處理器上執(zhí)行的程序并不知曉這些非架構(gòu)型 結(jié)構(gòu)。一種已知的無(wú)架構(gòu)"擦除"寄存器是可寫入字節(jié)的寄存器,其用來(lái)累積來(lái)自存儲(chǔ)器 存取的未調(diào)準(zhǔn)數(shù)據(jù),然后將累積的數(shù)據(jù)字加載到架構(gòu)型寄存器中。未調(diào)準(zhǔn)數(shù)據(jù)是在存儲(chǔ) 在存儲(chǔ)器中時(shí)跨越預(yù)定存儲(chǔ)器邊界(例如,字或半字邊界)的數(shù)據(jù)。由于存儲(chǔ)器在邏輯 上構(gòu)成和尋址并且在物理上耦合到存儲(chǔ)器總線的方式的緣故,跨越存儲(chǔ)器邊界的數(shù)據(jù)無(wú)法在單個(gè)循環(huán)中讀取或?qū)懭搿6?,需要兩個(gè)連續(xù)的總線循環(huán)---個(gè)用以讀取或?qū)懭脒吔缫粋?cè)上的數(shù)據(jù),而另一個(gè)用以讀取或?qū)懭肫溆嗟臄?shù)據(jù)。
這需要未調(diào)準(zhǔn)存儲(chǔ)器的存取指令(例如加載)在管線中產(chǎn)生額外的指令步驟或微操 作,以執(zhí)行未調(diào)準(zhǔn)數(shù)據(jù)所需的額外存儲(chǔ)器存取。因此,來(lái)自加載指令的數(shù)據(jù)以兩個(gè)、部 分或分段字的小段返回,并且必須將其累積到一個(gè)字中,然后將其寫入架構(gòu)型寄存器(例 如GPR)。這可通過(guò)將來(lái)自第一和第二存儲(chǔ)器存取微操作的分段字?jǐn)?shù)據(jù)寫入擦除寄存器中 來(lái)實(shí)現(xiàn),其中每一字節(jié)可獨(dú)立寫入而不會(huì)改變其它任何字節(jié)的內(nèi)容。當(dāng)將最后到達(dá)的分 段字?jǐn)?shù)據(jù)寫入可寫入字節(jié)的擦除寄存器中時(shí),將累積的字寫入加載指令的目的地GPR。如果正在進(jìn)行的存儲(chǔ)器存取操作引起較長(zhǎng)的等待時(shí)間,則高性能處理器試圖執(zhí)行其 它存儲(chǔ)器存取。雖然可寫入字節(jié)的擦除寄存器足以為偶然的、孤立的未調(diào)準(zhǔn)存儲(chǔ)器存取 累積分段字?jǐn)?shù)據(jù),但如果遇到第二個(gè)未調(diào)準(zhǔn)的存儲(chǔ)器存取指令,則可寫入字節(jié)的擦除寄 存器變?yōu)楦?jìng)爭(zhēng)資源。如以下實(shí)例所說(shuō)明的,這會(huì)危及結(jié)構(gòu)性管線。以下地址范圍的數(shù)據(jù)駐存在數(shù)據(jù)高速緩存中且可用0x00-0x0F、 0x20-0x2F和 0x3O-0x3R。 0xl0-0xlF范圍中的數(shù)據(jù)不在高速緩存中。第一 LDW(加載字)指令具有(未 調(diào)準(zhǔn))的目標(biāo)地址OxOF。這個(gè)指令將執(zhí)行存儲(chǔ)器存取操作,以從高速緩存中檢索OxOF 處的第一字節(jié),并將其加載到可寫入字節(jié)的擦除寄存器中。所述指令將產(chǎn)生第二存儲(chǔ)器 存取操作,這次是針對(duì)0x10 (以檢索0x10、 0x11和0x12處的三個(gè)字節(jié),假設(shè)字的大小 為32位)。第二存儲(chǔ)器存取將在高速緩存中未命中,從而需要從主存儲(chǔ)器存取,這可能 會(huì)引起顯著的等待時(shí)間。為了防止整個(gè)管線在待決主存儲(chǔ)器存取時(shí)閑置,處理器可發(fā)出第二LDW指令,這個(gè) 指令是針對(duì)0x2E,其也是未調(diào)準(zhǔn)的數(shù)據(jù)地址。第二LDW指令將產(chǎn)生兩個(gè)存儲(chǔ)器存取一一 第一存取是針對(duì)0x2E存取兩個(gè)字節(jié),且第二存取是針對(duì)0x30存取兩個(gè)字節(jié)。這兩個(gè)存 取均將在高速緩存中命中,且可在可寫入字節(jié)的擦除寄存器中匯集數(shù)據(jù),并將所述數(shù)據(jù) 加載到指令的目標(biāo)GPR中,然后完成第一LDW指令。然而,第二LDW無(wú)法利用與第 一 LDW指令相同的可寫入字節(jié)的擦除寄存器,因?yàn)榈谝晃凑{(diào)準(zhǔn)的LDW指令已將0x0F 字節(jié)存儲(chǔ)在那里。由于只有一個(gè)可寫入字節(jié)的擦除寄存器可用,所以管線控制器必須執(zhí)行結(jié)構(gòu)性危險(xiǎn) 檢查,然后才能發(fā)出第二LDW,并且如果資源正在使用中,則必須防止執(zhí)行第二LDW。 這種危險(xiǎn)檢査會(huì)增加控制邏輯的復(fù)雜性和處理器的功率消耗,且會(huì)對(duì)性能造成負(fù)面影響。 或者,可提供多個(gè)可寫入字節(jié)的擦除寄存器。這會(huì)浪費(fèi)功率和硅面積,因?yàn)槲凑{(diào)準(zhǔn)的存 儲(chǔ)器存取相對(duì)較少發(fā)生。此外,在任一情況下,由于需要將分段字?jǐn)?shù)據(jù)匯集成一個(gè)字然 后將其加載到架構(gòu)型寄存器中,所以會(huì)對(duì)存儲(chǔ)器存取指令強(qiáng)加延遲,從而對(duì)性能造成負(fù)
面影響。 發(fā)明內(nèi)容處理器中的架構(gòu)型寄存器是可寫入分段字的,且將來(lái)自未調(diào)準(zhǔn)的存儲(chǔ)器存取操作的 數(shù)據(jù)直接匯集在架構(gòu)型寄存器中,而無(wú)需首先在可寫入分段字的、非架構(gòu)型寄存器中匯 集數(shù)據(jù),且接著將所述數(shù)據(jù)傳送到架構(gòu)型寄存器。在一個(gè)實(shí)施例中, 一種將來(lái)自未調(diào)準(zhǔn)的存儲(chǔ)器存取的數(shù)據(jù)直接匯集到可寫入分段字 的架構(gòu)型寄存器的方法包括執(zhí)行第一存儲(chǔ)器存取操作,和將第一分段字?jǐn)?shù)據(jù)寫入架構(gòu) 型寄存器。所述方法進(jìn)一步包括執(zhí)行第二存儲(chǔ)器存取操作,和將第二分段字?jǐn)?shù)據(jù)寫入 架構(gòu)型寄存器。在另一實(shí)施例中,處理器包含至少一個(gè)可寫入分段字的架構(gòu)型寄存器。所述處理器 還包含指令執(zhí)行管線,其可操作以執(zhí)行兩個(gè)存儲(chǔ)器存取操作,以存取未調(diào)準(zhǔn)的數(shù)據(jù),每 一存儲(chǔ)器存取操作將分段字?jǐn)?shù)據(jù)直接寫入可寫入分段字的架構(gòu)型GPR寄存器中。
圖1是處理器的功能方框圖。圖2是流程圖。
具體實(shí)施方式
如本文所用,以下術(shù)語(yǔ)具有以下定義架構(gòu)型寄存器通過(guò)處理器指令集(明確地或隱含地)界定的數(shù)據(jù)存儲(chǔ)寄存器。架 構(gòu)型寄存器是架構(gòu)型字大小的寬度。指令對(duì)架構(gòu)型寄存器進(jìn)行存取以獲得操作數(shù)和存儲(chǔ) 器地址,且指令將結(jié)果寫入架構(gòu)型寄存器。請(qǐng)注意,架構(gòu)型寄存器無(wú)需被靜態(tài)界定或識(shí) 別(即,其可被重新命名),且無(wú)需包括硬件中的定時(shí)、靜態(tài)寄存器(即,其可位于緩沖器、FIFO或其它存儲(chǔ)器結(jié)構(gòu)中)。通用寄存器(GPR)無(wú)論是否被指令集架構(gòu)以此命名, 均為架構(gòu)型寄存器。如本文中所用,術(shù)語(yǔ)"架構(gòu)型寄存器"也包含作為動(dòng)態(tài)指派的GPR 識(shí)別符的存儲(chǔ)位置,如本文中更全面地論述。非架構(gòu)型寄存器未由處理器指令集界定或辨識(shí)的給定實(shí)施方案中的數(shù)據(jù)存儲(chǔ)寄存器。擦除寄存器和管線中的管級(jí)寄存器是非架構(gòu)型寄存器的實(shí)例。字架構(gòu)型字大小或字寬度是處理器指令集所辨識(shí)的數(shù)據(jù)的原子量。指令用字寬度的數(shù)據(jù)來(lái)讀取和寫入寄存器?,F(xiàn)代RISC處理器通常具有32或64位的字寬度,但這并不 限制本發(fā)明。分段字小于架構(gòu)型字寬度的量的數(shù)據(jù)。舉例來(lái)說(shuō),從一個(gè)到三個(gè)字節(jié)的數(shù)據(jù)對(duì)于32位的字大小而言均是分段字量??蓪懭敕侄巫挚蓪懭肷儆谡麄€(gè)字的數(shù)據(jù)而不會(huì)改變或破壞寄存器中的其它數(shù)據(jù)的 數(shù)據(jù)存儲(chǔ)位置。舉例來(lái)說(shuō),具有四個(gè)獨(dú)立字節(jié)允許的32位寄存器對(duì)于32位的字大小而 言是可寫入分段字寄存器??赏ㄟ^(guò)對(duì)可寫入字寄存器執(zhí)行的適當(dāng)?shù)淖x取-修改-寫入操作來(lái) 模擬分段字的可寫入性;如本文所用,此類寄存器不可寫入分段字。圖1描繪處理器10的功能方框圖。處理器10根據(jù)控制邏輯14在指令執(zhí)行管線12 中執(zhí)行指令。管線12可以是超標(biāo)量設(shè)計(jì),具有多個(gè)并行管線(例如12a和12b)。管線 12a、 12b包含各種組織成管級(jí)的非架構(gòu)型寄存器或鎖存器16,以及一個(gè)或一個(gè)以上算術(shù) 邏輯單元(ALU) 18。通用寄存器(GPR)文件20提供多個(gè)架構(gòu)型寄存器21,其也被稱 為GPR21,其包括存儲(chǔ)器層級(jí)的頂部。在有些實(shí)施例中,GPR文件20可包括寄存器重 新命名文件(RRF) 23。在其它實(shí)施例中,重新排序緩沖器(ROB) 25可與GPR文件 20通信。管線12a、 12b從指令高速緩存(I-Cache) 22獲取指令,其中存儲(chǔ)器尋址和許可由 指令側(cè)轉(zhuǎn)換后備緩沖器(ITLB) 24來(lái)管理。從數(shù)據(jù)高速緩存(D-Cache) 26存取數(shù)據(jù), 其中存儲(chǔ)器尋址和許可由主轉(zhuǎn)換后備緩沖器(TLB) 28來(lái)管理。在各種實(shí)施例中,ITLB 可包括TLB的部分的拷貝?;蛘?,可集成ITLB和TLB。類似地,在處理器10的各種實(shí) 施例中,可集成I-Cache 22和D-Cache 26或使其合成一體。在I-Cache 22和/或D-Cache 26中未命中會(huì)導(dǎo)致在存儲(chǔ)器接口 30的控制下對(duì)主(芯片外)存儲(chǔ)器32進(jìn)行存取。處理 器10可包含輸入/輸出(I/O)接口 34,從而控制對(duì)各種外圍裝置36的存取。所屬領(lǐng)域 的技術(shù)人員將認(rèn)識(shí)到,對(duì)處理器10的許多更改都是可以的。舉例來(lái)說(shuō),處理器10可包 含用于I和D高速緩存中的一者或兩者的二級(jí)(L2)高速緩存。此外,特定實(shí)施例中可 省略處理器10中所描繪的功能塊中的一者或一者以上。在一個(gè)或一個(gè)以上實(shí)施例中,架構(gòu)型寄存器21中的一者或一者以上是可寫入分段字 的,且將來(lái)自未調(diào)準(zhǔn)的存儲(chǔ)器存取操作的數(shù)據(jù)直接匯集在可寫入分段字的、架構(gòu)型寄存 器21中,而無(wú)需首先將數(shù)據(jù)匯集在可寫入分段字的無(wú)架構(gòu)寄存器中,且接著將所述數(shù)據(jù) 傳送到架構(gòu)型寄存器21。這消除了一個(gè)或一個(gè)以上可寫入分段字的非架構(gòu)型寄存器對(duì)硅 面積和功率的消耗。這還消除了與在起始未調(diào)準(zhǔn)的存儲(chǔ)器存取之前執(zhí)行結(jié)構(gòu)性危險(xiǎn)檢查以確保可寫入分段字的非架構(gòu)型寄存器可用相關(guān)聯(lián)的復(fù)雜性。此外,由于消除了從可寫 入分段字的非架構(gòu)型寄存器到架構(gòu)型寄存器21的經(jīng)匯集的字?jǐn)?shù)據(jù)的傳送,所以性能得以改進(jìn)。 圖2描繪匯集來(lái)自未調(diào)準(zhǔn)的存儲(chǔ)器存取指令的分段字?jǐn)?shù)據(jù)的方法。檢測(cè)未調(diào)準(zhǔn)的存 儲(chǔ)器存取指令(方框40)。如果目標(biāo)地址是明確的或已知的,則所述步驟可在解碼級(jí)處。 或者,可對(duì)存儲(chǔ)器存取指令進(jìn)行解碼,且只在地址產(chǎn)生步驟中在執(zhí)行管線12a、 12b深處 發(fā)現(xiàn)其針對(duì)未調(diào)準(zhǔn)數(shù)據(jù)的事實(shí)。在任一情況下,必須從存儲(chǔ)器存取指令產(chǎn)生兩個(gè)相異的 存儲(chǔ)器存取操作(方框42)。執(zhí)行第一存儲(chǔ)器存取操作,從而返回第一分段字?jǐn)?shù)據(jù)。將 這個(gè)分段字?jǐn)?shù)據(jù)直接寫入可寫入分段字的架構(gòu)型寄存器21中(在由地址和處理器的字節(jié) 排列順序確定的位置處)(方框44)。接著執(zhí)行第二存儲(chǔ)器存取操作,從而返回第二分段 字?jǐn)?shù)據(jù),隨后將所述數(shù)據(jù)加載到可寫入分段字的架構(gòu)型寄存器21的其余分段的部分中, 而不改變由第一存儲(chǔ)器存取操作寫入的數(shù)據(jù)(方框46)。優(yōu)選的是,在發(fā)起第一存儲(chǔ)器存取操作之前,所述兩個(gè)存儲(chǔ)器存取操作均應(yīng)經(jīng)過(guò)異 常檢査。這保存架構(gòu)型寄存器21的狀態(tài),以在所述存儲(chǔ)器存取操作中的一者引起異常的 情況下進(jìn)行錯(cuò)誤恢復(fù)。優(yōu)選的是,應(yīng)當(dāng)事先針對(duì)所述兩個(gè)存儲(chǔ)器存取操作執(zhí)行異常檢查。 舉例來(lái)說(shuō),針對(duì)未調(diào)準(zhǔn)的存儲(chǔ)器地址的LDW將產(chǎn)生第一存儲(chǔ)器存取操作以讀取未調(diào)準(zhǔn)數(shù) 據(jù)的一部分。這個(gè)第一存儲(chǔ)器存取操作可讀取存儲(chǔ)器頁(yè)上的最后的字節(jié),并將其加載到 架構(gòu)型寄存器21中。需要進(jìn)行第二存儲(chǔ)器存取操作以讀取其余的未調(diào)準(zhǔn)數(shù)據(jù)。然而,如果未調(diào)準(zhǔn)字跨越 頁(yè)邊界,則其余字節(jié)中的一者或一者以上將位于隨后的存儲(chǔ)器頁(yè)中,而所述過(guò)程可能沒(méi) 有對(duì)所述隨后頁(yè)的讀取許可。這將會(huì)引起異常;然而,架構(gòu)型寄存器21的內(nèi)容已被第一 存儲(chǔ)器存取操作改變,且無(wú)法通過(guò)刷新LDW和隨后的指令來(lái)恢復(fù)處理器的狀態(tài)。因此, 未調(diào)準(zhǔn)的存儲(chǔ)器存取指令所要求的兩個(gè)存儲(chǔ)器存取操作優(yōu)選在執(zhí)行第一存儲(chǔ)器存取操作 之前均經(jīng)過(guò)異常檢査。在一個(gè)實(shí)施例中,無(wú)需這種對(duì)兩個(gè)存儲(chǔ)器存取操作的事先異常檢查,其中處理器包 含寄存器重新命名文件23。如所屬領(lǐng)域中眾所周知的,寄存器重新命名是一種寄存器管 理方法,借此可提供大于GPR21的架構(gòu)數(shù)目的多個(gè)物理寄存器。所述物理寄存器被動(dòng)態(tài) 指派有對(duì)應(yīng)于GPR21的邏輯識(shí)別符。因此,舉例來(lái)說(shuō),可將來(lái)自對(duì)未調(diào)準(zhǔn)數(shù)據(jù)的多個(gè)存 取的分段字?jǐn)?shù)據(jù)匯集在"空閑"物理寄存器中,且當(dāng)已匯集出整個(gè)字時(shí),向寄存器指派 GPR識(shí)別符。根據(jù)一個(gè)或一個(gè)以上實(shí)施例,寄存器重新命名系統(tǒng)包含通過(guò)"撤消"重新命名操作 (即,通過(guò)向先前與一GPR識(shí)別符相關(guān)聯(lián)的物理寄存器重新指派識(shí)別符)而從由一個(gè)或 一個(gè)以上未調(diào)準(zhǔn)的存儲(chǔ)器存取所引起的異常中恢復(fù)過(guò)來(lái)的能力。經(jīng)過(guò)重新命名的物理寄
存器直到提交與所述重新命名相關(guān)聯(lián)的指令(這意味著所述指令及其之前的所有指令均 已經(jīng)過(guò)全面的異常檢查且確信已完成執(zhí)行)才被釋放以供重新使用。因此,在由一個(gè)或 一個(gè)以上未調(diào)準(zhǔn)的存儲(chǔ)器存取引起異常的情況下可恢復(fù)先前與所述GPR識(shí)別符相關(guān)聯(lián)的 數(shù)據(jù),且可通過(guò)刷新未調(diào)準(zhǔn)的存儲(chǔ)器存取指令以及所有隨后指令來(lái)恢復(fù)處理器狀態(tài)。當(dāng)將未調(diào)準(zhǔn)的數(shù)據(jù)匯集在空閑的物理的可寫入分段字的寄存器中時(shí),如果在第二存 儲(chǔ)器存取操作期間發(fā)生異常,則不會(huì)將物理寄存器重新命名或向其指派GPR識(shí)別符?;?者,如果已經(jīng)重新命名,則可通過(guò)將GPR識(shí)別符指派回給先前與所述識(shí)別符相關(guān)聯(lián)的物 理寄存器而"撤消"寄存器重新命名。因此,在重新命名寄存器的實(shí)施例中,與未調(diào)準(zhǔn) 的LD指令相關(guān)聯(lián)的兩個(gè)存儲(chǔ)器存取操作均無(wú)需在起始第一未調(diào)準(zhǔn)的存儲(chǔ)器存取操作先 前經(jīng)過(guò)全面的異常檢查。類似地,根據(jù)另一實(shí)施例的在架構(gòu)型寄存器中匯集分段字良好適合用于具有重新排 序緩沖器25的處理器。如所屬領(lǐng)域中眾所周知的,重新排序緩沖器25包括臨時(shí)字寬度 存儲(chǔ)空間,其例如布置成FIFO。可將臨時(shí)或偶然的指令結(jié)果寫入重新排序緩沖器25,且 接著為緩沖器位置指派GPR識(shí)別符。當(dāng)提交相應(yīng)的指令時(shí),可將數(shù)據(jù)從重新排序緩沖器 25傳送到架構(gòu)型GPR文件20中。重新排序緩沖器25可與GPR文件20并行地存取, 且可將數(shù)據(jù)提供到來(lái)自重新排序緩沖器位置的指令。因此,可將重新排序緩沖器位置視 為架構(gòu)型寄存器21,因?yàn)槠湎蛑噶钐峁┎僮鲾?shù)和/或地址。在一個(gè)或一個(gè)以上實(shí)施例中,重新排序緩沖器25包含控制硬件,使得如果發(fā)生異常, 則可使寫入重新排序緩沖器位置的數(shù)據(jù)無(wú)效,且/或可使所述位置"未命名"或與相應(yīng) GPR識(shí)別符解除關(guān)聯(lián)。確切地說(shuō),在重新排序緩沖器數(shù)據(jù)存儲(chǔ)位置是可寫入分段字的情 況下,可在第一存儲(chǔ)器存取操作檢索未調(diào)準(zhǔn)的分段字?jǐn)?shù)據(jù)時(shí)將所述數(shù)據(jù)寫入重新排序緩 沖器位置。接著,可將隨后檢索到的未調(diào)準(zhǔn)的分段字?jǐn)?shù)據(jù)寫入重新排序緩沖器位置的其 余部分,并向其指派GPR識(shí)別符。當(dāng)提交LD指令時(shí),可將數(shù)據(jù)傳送到GPR文件20中 的相應(yīng)GPR21。如果第二存儲(chǔ)器存取操作期間發(fā)生異常,則可使重新排序緩沖器位置無(wú)效且/或移除 其GPR識(shí)別符或解除關(guān)聯(lián)。相應(yīng)地,可將與相關(guān)的架構(gòu)型寄存器編號(hào)(無(wú)論是在重新排 序緩沖器25還是在GPR文件20中)相關(guān)聯(lián)的先前存儲(chǔ)位置重新命名,或者與GPR識(shí) 別符相關(guān)聯(lián)。通過(guò)刷新LD和所有隨后的指令,可將處理器恢復(fù)成LD指令異常先前存在 的狀態(tài)。因此,可在架構(gòu)型寄存器中直接對(duì)未調(diào)準(zhǔn)的數(shù)據(jù)進(jìn)行分段字匯集,而無(wú)需在起 始第一存儲(chǔ)器存取操作先前對(duì)兩個(gè)未調(diào)準(zhǔn)的存儲(chǔ)器存取操作進(jìn)行全面的異常檢查。 根據(jù)本文中揭示的各個(gè)實(shí)施例,可同時(shí)或相繼執(zhí)行多個(gè)未調(diào)準(zhǔn)的存儲(chǔ)器存取指令, 而無(wú)需為了使用一個(gè)或一個(gè)以上非架構(gòu)型可寫入分段字的"擦除"寄存器而執(zhí)行結(jié)構(gòu)性 危險(xiǎn)檢查。這會(huì)降低復(fù)雜性、改進(jìn)性能并減少功率消耗。此外,無(wú)需提供大量此類非架 構(gòu)型、可寫入分段字的擦除寄存器以慮及此種功能性,因此會(huì)減少硅面積。特別是在寄 存器重新命名和重新排序緩沖器的情況下,可利用現(xiàn)有邏輯從異常中恢復(fù)過(guò)來(lái),從而無(wú) 需對(duì)從存儲(chǔ)器中檢索未調(diào)準(zhǔn)數(shù)據(jù)所需的兩個(gè)存儲(chǔ)器存取操作進(jìn)行全面的異常檢查。在所 有情況下,來(lái)自未調(diào)準(zhǔn)的存儲(chǔ)器存取指令的匯集數(shù)據(jù)比在非架構(gòu)型、可寫入分段字的擦 除寄存器中匯集數(shù)據(jù)隨后將所述數(shù)據(jù)傳送到架構(gòu)型寄存器的情況至少早一個(gè)循環(huán)可用。雖然本文已相對(duì)于本發(fā)明的特定特征、方面和實(shí)施例描述了實(shí)施例,但應(yīng)了解,在 本發(fā)明的廣泛范圍內(nèi)可能有許多變更、修改和其它實(shí)施例,且因此,將所有變更、修改 和實(shí)施例視為處于本發(fā)明的范圍內(nèi)。因此,當(dāng)前實(shí)施例在所有方面均將理解為說(shuō)明性的 而非限制性的,且期望處于所附權(quán)利要求書的含義和等效范圍內(nèi)的所有變化均包含在其 中。
權(quán)利要求
1. 一種將來(lái)自未調(diào)準(zhǔn)的存儲(chǔ)器存取的數(shù)據(jù)直接匯集到可寫入分段字的架構(gòu)型寄存器 中的方法,其包括執(zhí)行第一存儲(chǔ)器存取操作,并將第一分段字?jǐn)?shù)據(jù)寫入所述架構(gòu)型寄存器;和 執(zhí)行第二存儲(chǔ)器存取操作,并將第二分段字?jǐn)?shù)據(jù)寫入所述架構(gòu)型寄存器。
2. 根據(jù)權(quán)利要求l所述的方法,其進(jìn)一步包括在將所述第一分段字?jǐn)?shù)據(jù)寫入所述架構(gòu) 型寄存器之前對(duì)所述兩個(gè)存儲(chǔ)器存取操作進(jìn)行異常檢查。
3. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括對(duì)每一所述存儲(chǔ)器存取操作進(jìn)行異常檢 査。
4. 根據(jù)權(quán)利要求3所述的方法,其中所述可寫入分段字的架構(gòu)型寄存器包括位于寄存 器重新命名文件中的物理寄存器,且進(jìn)一步包括通過(guò)向所述物理寄存器指派通用寄 存器(GPR)識(shí)別符來(lái)重新命名所述物理寄存器。
5. 根據(jù)權(quán)利要求4所述的方法,其中如果所述第二存儲(chǔ)器存取操作不引起異常,則執(zhí) 行所述重新命名步驟。
6. 根據(jù)權(quán)利要求4所述的方法,其進(jìn)一步包括如果任一所述存儲(chǔ)器存取操作引起異常, 則從所述物理寄存器中移除所述GPR識(shí)別符。
7. 根據(jù)權(quán)利要求3所述的方法,其中所述可寫入分段字的架構(gòu)型寄存器包括重新排序 緩沖器中的位置,且進(jìn)一步包括通過(guò)向重新排序緩沖器位置指派GPR識(shí)別符來(lái)重新 命名所述重新排序緩沖器位置。
8. 根據(jù)權(quán)利要求7所述的方法,其中如果所述第二存儲(chǔ)器存取操作不引起異常,則執(zhí) 行所述重新命名步驟。
9. 根據(jù)權(quán)利要求8所述的方法,其進(jìn)一步包括如果任一所述存儲(chǔ)器存取操作引起異常, 則從所述重新排序緩沖器位置移除所述GPR識(shí)別符。
10. —種處理器,其包括至少一個(gè)可寫入分段字的架構(gòu)型寄存器;和指令執(zhí)行管線,其可操作以執(zhí)行兩個(gè)存儲(chǔ)器存取操作來(lái)存取未調(diào)準(zhǔn)數(shù)據(jù),每一所 述存儲(chǔ)器存取操作將分段字?jǐn)?shù)據(jù)直接寫入所述可寫入分段字的架構(gòu)型寄存器中。
11. 根據(jù)權(quán)利要求10所述的處理器,其中所述指令執(zhí)行管線進(jìn)一步可操作以在將第一 所述分段字?jǐn)?shù)據(jù)寫入所述可寫入分段字的架構(gòu)型寄存器之前對(duì)所述兩個(gè)存儲(chǔ)器存 取操作進(jìn)行異常檢査。
12. 根據(jù)權(quán)利要求10所述的處理器,其中所述指令執(zhí)行管線進(jìn)一步可操作以對(duì)每一所 述存儲(chǔ)器存取操作進(jìn)行異常檢查。
13. 根據(jù)權(quán)利要求12所述的處理器,其中所述可寫入分段字的架構(gòu)型寄存器包括物理 寄存器,且其中通過(guò)向所述物理寄存器指派通用寄存器(GPR)識(shí)別符而重新命名 所述物理寄存器。
14. 根據(jù)權(quán)利要求13所述的處理器,其中如果第二所述存儲(chǔ)器存取操作不引起異常, 則重新命名所述物理寄存器。
15. 根據(jù)權(quán)利要求13所述的處理器,其中如果任一所述存儲(chǔ)器存取操作引起異常,則 撤消所述物理寄存器重新命名。
16. 根據(jù)權(quán)利要求12所述的處理器,其中所述可寫入分段字的架構(gòu)型寄存器包括重新 排序緩沖器中的位置,且其中通過(guò)向重新排序緩沖器位置指派GPR識(shí)別符而重新命 名所述重新排序緩沖器位置。
17. 根據(jù)權(quán)利要求16所述的處理器,其中如果第二所述存儲(chǔ)器存取操作不引起異常, 則重新命名所述重新排序緩沖器位置。
18. 根據(jù)權(quán)利要求17所述的處理器,其中如果任一所述存儲(chǔ)器存取操作引起異常,則 撤消所述重新排序緩沖器位置重新命名。
19. 一種執(zhí)行針對(duì)跨越預(yù)定存儲(chǔ)器邊界的數(shù)據(jù)的加載指令的方法,其包括獲得來(lái)自針對(duì)所述邊界各側(cè)的兩個(gè)或兩個(gè)以上存儲(chǔ)器存取操作的數(shù)據(jù)的分段部 分;禾口獨(dú)立地將數(shù)據(jù)的所述分段部分寫入所述加載指令的目的地寄存器的相應(yīng)分段部 分中。
20. 根據(jù)權(quán)利要求19所述的方法,其進(jìn)一步包括在將數(shù)據(jù)的第一分段部分寫入所述目 的地寄存器之前對(duì)所有所述存儲(chǔ)器存取操作進(jìn)行異常檢査。
21. 根據(jù)權(quán)利要求19所述的方法,其中獨(dú)立地將數(shù)據(jù)的所述分段部分寫入所述加載指 令的目的地寄存器的相應(yīng)分段部分中包括獨(dú)立地將數(shù)據(jù)的所述分段部分寫入寄存 器重新命名文件中的可用物理寄存器的相應(yīng)分段部分中,且如果未出現(xiàn)異常,則向 所述物理寄存器指派所述加載指令的目的地寄存器的識(shí)別符。
22. 根據(jù)權(quán)利要求21所述的方法,其進(jìn)一步包括在執(zhí)行每一所述存儲(chǔ)器存取操作時(shí)對(duì) 每一所述存儲(chǔ)器存取操作進(jìn)行異常檢查。
23. 根據(jù)權(quán)利要求19所述的方法,其中獨(dú)立地將數(shù)據(jù)的所述分段部分寫入所述加載指 令的目的地寄存器的相應(yīng)分段部分中包括獨(dú)立地將數(shù)據(jù)的所述分段部分寫入重新 排序緩沖器中的可用存儲(chǔ)位置的相應(yīng)分段部分中,且如果未出現(xiàn)異常,則向所述重 新排序緩沖器位置指派所述加載指令的目的地寄存器的識(shí)別符。
24. 根據(jù)權(quán)利要求23所述的方法,其進(jìn)一步包括在執(zhí)行每一所述存儲(chǔ)器存取操作時(shí)對(duì) 每一所述存儲(chǔ)器存取操作進(jìn)行異常檢査。
全文摘要
處理器中的一個(gè)或一個(gè)以上架構(gòu)型寄存器是可寫入分段字的,且可將來(lái)自多個(gè)未調(diào)準(zhǔn)的存儲(chǔ)器存取操作的數(shù)據(jù)直接匯集在架構(gòu)型寄存器中,而不是首先將所述數(shù)據(jù)匯集在可寫入分段字的非架構(gòu)型寄存器中且接著將其傳送到所述架構(gòu)型寄存器。在通用寄存器文件利用寄存器重新命名或重新排序緩沖器的實(shí)施例中,將來(lái)自多個(gè)未調(diào)準(zhǔn)的存儲(chǔ)器存取操作的數(shù)據(jù)直接匯集在可寫入分段字的架構(gòu)型寄存器中,而無(wú)需在執(zhí)行第一存儲(chǔ)器存取操作之前對(duì)兩個(gè)未調(diào)準(zhǔn)的存儲(chǔ)器存取操作進(jìn)行全面的異常檢查。
文檔編號(hào)G06F9/312GK101147125SQ200680009669
公開(kāi)日2008年3月19日 申請(qǐng)日期2006年2月3日 優(yōu)先權(quán)日2005年2月3日
發(fā)明者托馬斯·安德魯·薩托里烏斯, 杰弗里·托德·布里奇斯, 維克托·羅伯茨·奧格斯堡, 詹姆斯·諾里斯·迪芬德?tīng)栙M(fèi)爾 申請(qǐng)人:高通股份有限公司