新四季網

用於通過使用由可分割引擎實例化的虛擬核來支持代碼塊執行的寄存器文件段的製作方法

2023-05-25 00:42:41 2

用於通過使用由可分割引擎實例化的虛擬核來支持代碼塊執行的寄存器文件段的製作方法
【專利摘要】一種用於使用用於處理器的多個寄存器文件片段來執行指令的系統。該系統包括:全局前端調度器,用於接收傳入指令序列,其中全局前端調度器將傳入指令序列分割成指令的多個代碼塊並且生成描述在代碼塊的指令之間的相互依賴性的多個繼承性矢量。該系統還包括:處理器的多個虛擬核,被耦合用於接收全局前端調度器分配的代碼塊,其中每個虛擬核包括多個可分割引擎的資源的相應子集,其中根據虛擬核模式並且根據相應的繼承性矢量通過使用可分割引擎來執行代碼塊。多個寄存器文件段耦合到可分割引擎用於提供數據存儲。
【專利說明】用於通過使用由可分割弓I擎實例化的虛擬核來支持代碼塊執行的寄存器文件段
[0001]本申請要求對Mohammad A.Abdallah於2011年3月25日提交的、名稱為"REGISTER FILE SEGMENTS FOR SUPPORTING CODE BLOCK EXECUTION BY USING VIRTUALCORES INSTANTIATED BY PARTITIONABLE ENGINES〃的、共同未決、共同轉讓的美國臨時專利申請第61/467,939號的權益,並且其全部內容併入於此。
[0002]有關串請的交叉引用
[0003]本申請與Mohammad A.Abdallah於2007年4月12日提交的、名稱為"APPARATUSAND METHOD FOR PROCESSING AN INSTRUCTION MATRIX SPECIFYING PARALLEL INDEPENDENT OPERATIONS"的、共同未決、共同轉讓的美國專利申請公開第2009/0113170號有關,並且其全部內容併入於此。
[0004]本申請與Mohammad A.Abdallah 於 2007 年 11 月 14 日提交的、名稱為"APPARATUSAND METHOD FOR PROCESSING COMPLEX INSTRUCTION FORMATS IN A MULTITHREADEDARCHITECTURE SUPPORTING VARIOUS ⑶NTEXT SWITCH MODES AND VIRTUALIZATIONSCHEMES"的、共同未決、共同轉讓的美國專利申請公開第2010/0161948號有關,並且其全部內容併入於此。
【技術領域】
[0005]本發明總體上涉及數字計算機系統、更具體地涉及用於選擇包括指令序列的指令的系統和方法。
【背景技術】
[0006]處理器被要求處置依賴或者全獨立的多個任務。這樣的處理器的內部狀態通常由可以在每個特定程序執行的實例保持不同值的寄存器構成。在每個程序執行的實例,內部狀態映像被稱為處理器的架構狀態。
[0007]如果將代碼執行進行切換以運行另一功能(例如另一線程、進程或者程序),則必須保存機器/處理器的狀態,從而新功能可以利用內部寄存器以構建它的新狀態。一旦終止新功能,則可以丟棄它的狀態,並且將還原先前上下文的狀態而且執行恢復。這樣的切換過程被稱為上下文切換並且尤其對於運用大量寄存器(例如64、128、256個)和/或無序執行的現代架構通常包括數十或者數百個周期。
[0008]在線程感知硬體架構中,硬體通常針對有限數目的由硬體支持的線程而支持多個上下文狀態。在這一情況下,硬體針對每個支持的線程重複所有架構狀態單元。這消除了在執行新線程時對於上下文切換的需要。然而這仍然具有多個缺點、即針對硬體中支持的每個附加線程重複所有架構狀態單元(即寄存器)的面積、功率和複雜性。此外,如果軟體線程的數目超過顯式支持的硬體線程的數目,則仍然必須執行上下文切換。
[0009]這隨著在要求大量線程的細粒度基礎上需要並行性而變得常見。具有重複上下文狀態硬體存儲的硬體線程感知架構無助於非線程式軟體代碼而僅針對線程化的軟體減少上下文切換數目。然而那些線程通常是針對粗粒度並行性而構造的並且導致用於發起和同步的繁重軟體開銷,從而讓細粒度並行性、比如功能調用和循環並行執行而沒有高效線程化發起/自動生成。如此描述的開銷伴隨有難以使用用於非顯式/容易並行化/線程化的軟體代碼的現有技術編譯器或者用戶並行化技術來自動地並行化這樣的代碼。

【發明內容】

[0010]在一個實施例中,將本發明實施為一種用於使用用於處理器的多個虛擬核來執行指令的系統。該系統包括:全局前端調度器,用於接收傳入指令序列,其中所述全局前端調度器將所述傳入指令序列分割成指令的多個代碼塊並且生成描述在所述代碼塊的指令之間的相互依賴性的多個繼承性矢量。該系統還包括:所述處理器的多個虛擬核,被耦合用於接收由所述全局前端調度器分配的代碼塊,其中每個虛擬核包括多個可分割引擎的資源的相應子集,其中根據虛擬核模式並且根據相應的所述繼承性矢量通過使用所述可分割引擎來執行所述代碼塊。多個寄存器文件段,耦合到所述可分割引擎用於提供數據存儲。
[0011]本發明的其它實施例利用公共調度器、公共寄存器文件和公共存儲器子系統以實施用於處理器的多個可分割引擎的片段式地址空間。可分割引擎可以用來實施多個虛擬核。片段通過允許附加虛擬核以協同地執行指令序列來實現微處理器性能升級。片段分級可以跨越每個高速緩存分級(例如LI高速緩存、L2高速緩存和公共寄存器文件)相同。片段分級可以使用地址位將地址空間劃分成片段,其中使用地址位使得片段在高速緩存線邊界以上並且在頁面邊界以下。每個片段可以被配置為利用多埠存儲體結構用於存儲。
[0012]前文是
【發明內容】
、因此必然包含細節的簡化、概括和省略;因而本領域技術人員將理解,
【發明內容】
僅為示例而並非旨在於以任何方式進行限制。如僅由權利要求限定的本發明的其它方面、發明特徵和優點將在下文闡述的非限制具體描述中變得清楚。
【專利附圖】

【附圖說明】
[0013]在附圖的各圖中通過示例而非通過限制舉例說明本發明,並且在附圖中,相似標號指代相似單元。
[0014]圖1A示出全局前端生成代碼塊和繼承性矢量以支持在代碼序列的相應可分割引擎上執行代碼序列的方式的概況。
[0015]圖1B示出根據本發明的一個實施例的可分割引擎及其部件的概況圖,這些部件包括用於多核處理器的分段式調度器和寄存器文件、全局互連以及分段式存儲器子系統。
[0016]圖2示出根據本發明的一個實施例的調度器流程圖。
[0017]圖3示出根據本發明的一個實施例的示例硬體電路的圖,該圖示出存儲具有互連的操作數和結果的分段式寄存器文件。
[0018]圖4示出根據本發明的一個實施例的描繪全局前端提取和調度器的圖。
[0019]圖5示出根據本發明的一個實施例的跨越許多虛擬核的指令分布的備選實現方式。
[0020]圖6示出根據本發明的一個實施例的具有對應多個寄存器文件以及操作數和結果緩衝器的多個寄存器段。
[0021]圖7示出根據本發明的一個實施例的用於多核處理器的片段式存儲器子系統的更具體圖。
[0022]圖8示出描繪根據本發明的一個實施例的通過地址生成如何使用地址的位以枚舉片段的圖。
[0023]圖9示出本發明的實施例的如何處置加載和存儲的圖。
[0024]圖10示出根據本發明的一個實施例的可以將片段拆分成兩個或者更多域的方式。
[0025]圖11示出根據本發明的一個實施例的處理器的操作模式,在該操作模式中虛擬核被配置作為在執行應用中與邏輯核對應的物理核。
[0026]圖12示出根據本發明的一個實施例的處理器的操作模式,在該操作模式中虛擬核被配置作為在執行應用中與邏輯核對應的軟核。
[0027]圖13示出根據本發明的一個實施例的處理器的操作模式,在該操作模式中虛擬核被配置作為在執行應用中與單個邏輯核對應的軟核。
[0028]圖14示出根據本發明的一個實施例的用來支持邏輯核和虛擬核功能的片段分割的示例性實現方式。
[0029]圖15示出根據本發明的一個實施例的實施多物理到多邏輯模式的示例性四片段處理器的片段存儲器。
[0030]圖16示出根據本發明的一個備選實施例的實施多物理到多邏輯模式的示例性四片段處理器的片段存儲器。
[0031]圖17示出根據本發明的一個實施例的實施多軟核到多邏輯核模式的示例性四片段處理器的片段存儲器。
[0032]圖18示出根據本發明的一個實施例的實施多軟核到一個邏輯核模式的示例性四片段處理器的片段存儲器。
[0033]圖19示出根據本發明的一個實施例的實施物理到邏輯模式的示例性四片段處理器的地址計算和執行單元、操作數/結果緩衝器、線程式寄存器文件以及公共分割調度器。
[0034]圖20示出根據本發明的一個實施例的用來實施多物理到多邏輯模式的示例性四片段處理器的地址計算和執行單元、操作數/結果緩衝器、線程式寄存器文件以及公共分割調度器的備選實現方式。
[0035]圖21示出根據本發明的一個實施例的實施多軟核到多邏輯模式的示例四片段處理器的地址計算和執行單元、寄存器文件以及公共分割調度器。
[0036]圖22示出根據本發明的一個實施例的實施多軟核到一個邏輯核模式的示例性四片段處理器的地址計算和執行單元、寄存器文件以及公共分割調度器。
[0037]圖23示出根據本發明的一個實施例的示例性微處理器流水線的圖。
【具體實施方式】
[0038]雖然已經結合一個實施例來描述本發明,但是本發明未旨在局限於這裡闡述的具體形式。與此相反,它旨在覆蓋如能夠在如所附權利要求限定的本發明的範圍內合理包括的這樣的備選、修改和等同。
[0039]在以下具體描述中,已經闡述許多具體細節、比如具體方法順序、結構、單元和連接。然而將理解,無需利用這些和其它具體細節以實現本發明的實施例。在其它境況中,已經省略或者尚未特別具體描述公知結構、單元或者連接以免不必要地使本描述混淆。
[0040]在說明書內對「一個實施例」或者「實施例」的引用旨在於指示結合該實施例描述的特定特徵、結構或者特性包含於本發明的至少一個實施例中。在說明書內的各處出現短語「在一個實施例中」未必都指代相同實施例,也並非是與其它實施例互斥的單獨或者備選實施例。另外,描述可以被一些實施例而未被其它實施例表現的各種特徵。類似地,描述各種要求,這些要求可以是針對一些實施例、但是並非其它實施例的要求。
[0041]以流程、步驟、邏輯塊、處理和對計算機存儲器內的數據位的操作的其它符號表示形式呈現以下具體描述的一些部分。這些描述和表示形式是數據處理領域中的技術人員用來向本領域其他技術人員最有效傳達他們的工作實質的手段。過程、計算機執行的步驟、邏輯塊、處理等在這裡以及總體上被理解為是導致所期望結果的步驟或者指令的自一致序列。步驟是需要對物理量進行物理操縱的步驟。這些量儘管未必、但是通常採用計算機可讀存儲介質的電或者磁信號的形式並且能夠在計算機系統中被存儲、傳送、組合、比較和以其他方式進行操縱。主要出於普遍使用的原因而將這些信號稱為位、數值、單元、符號、字符、項、數等已經證實有時是方便的。
[0042]然而應當謹記,所有這些和相似術語將與適當物理量關聯並且僅為應用於這些量的方便標註。除非如從以下討論中清楚的那樣另有特別指出,否則要理解,貫穿本發明利用諸如「處理」或者「訪問」或者「寫入」或者「存儲」或者「重複」等術語的討論指代計算機系統或者相似電子計算設備的動作和過程,該計算機系統或者電子計算設備將計算機系統的寄存器和存儲器以及其它計算機可讀介質內表示為物理(電子)量的數據操縱和變換成計算機系統存儲器或者寄存器或者其它這樣的信息存儲、傳輸或者顯示設備內相似地表示為物理量的其它數據。
[0043]本發明的實施例利用公共全局前端調度器、多個片段式寄存器文件和存儲器子系統以實施用於多核處理器的多個核的片段式地址空間。在一個實施例中,片段通過允許附加虛擬核(例如軟核)以協同地執行包括一個或者多個線程的指令序列來實現微處理器性能升級。片段分級跨越每個高速緩存分級(例如LI高速緩存、L2高速緩存和公共寄存器文件)相同。片段分級使用地址位將地址空間劃分成片段,其中使用地址位使得由在高速緩存線邊界以上並且在頁面邊界以下的位來標識片段。每個片段被配置為利用多埠存儲體結構用於存儲。在以下圖1A和IB中進一步描述本發明的實施例。
[0044]圖1A示出根據本發明的一個實施例的處理器的概況圖。如圖1A中描繪的,處理器包括全局前端提取和調度器10以及多個可分割引擎11-14。
[0045]圖1A示出全局前端生成代碼塊和繼承性矢量以支持在代碼序列的相應可分割引擎上執行代碼序列的方式的概況。代碼序列20-23中的每個代碼序列可以根據特定虛擬核執行模式屬於相同邏輯核/線程或者屬於不同邏輯核/線程。全局前端提取和調度器將處理代碼序列20-23以生成代碼塊和繼承性矢量。如圖所示這些代碼塊和繼承性矢量被分配至特定可分割引擎11-14。
[0046]可分割引擎根據選擇的模式實施虛擬核。可分割引擎包括段、片段和多個執行單元。在可分割引擎內的資源可以用來實施具有多個模式的虛擬核。如虛擬核模式調配的那樣,可以實施一個軟核或者許多軟核以支持一個邏輯核/線程。在圖1A的實施例中,根據選擇的模式,虛擬核可以支持一個邏輯核/線程或者四個邏輯核/線程。在虛擬核支持四個邏輯核/線程的實施例中,跨越可分割引擎中的每個可分割引擎展開每個虛擬核的資源。在虛擬核支持一個邏輯核/線程的實施例中,所有引擎的資源專用於該核/線程。引擎被分割使得每個引擎提供包括每個虛擬核的資源的子集。換而言之,虛擬核將包括引擎11-14中的每個引擎的資源的子集。在引擎11-14中的每個引擎的資源之間的通信由全局互連結構30提供以便有助於這一過程。備選地,引擎11-14可以用來實施物理模式,在該物理模式中,引擎11-14的資源專用於支持專用核/線程的執行。以這一方式,由引擎實施的軟核包括讓資源跨越引擎中的每個引擎展開的虛擬核。在以下圖中進一步描述虛擬核執行模式。
[0047]應當注意在常規核實現方式中,僅僅一個核/引擎內的資源被唯一分配給一個邏輯線程/核。對照而言,在本發明的實施例中,任何引擎/核的資源可以被分割以與其它引擎/核分割共同實例化向一個邏輯線程/核分配的虛擬核。此外,本發明的實施例可以實施多個虛擬執行模式,在執行虛擬執行模式中,那些相同引擎可以被分割以支持許多專用核/線程、許多動態分配的核/線程或者所有引擎的所有資源都支持單個核/線程的執行的實施例。在以下描述中進一步描述這些實施例。
[0048]圖1B示出根據本發明的一個實施例的可分割引擎及其部件的概況圖,這些部件包括用於多核處理器的分段式調度器和寄存器文件、全局互連以及片段式存儲器子系統。如圖1中描繪的,示出四個片段101-104。片段分級跨越每個高速緩存分級(例如LI高速緩存、L2高速緩存和加載存儲緩衝器)相同。可以經由存儲器全局互連IlOa在LI高速緩存中的每個高速緩存、L2高速緩存中的每個高速緩存和加載存儲緩衝器中的每個加載存儲緩衝器之間交換數據。
[0049]存儲器全局互連包括路由矩陣,該路由矩陣允許多個核(例如地址計算和執行單元121-124)訪問可以在片段式高速緩存分級(例如LI高速緩存、加載存儲緩衝器和L2高速緩存)中的任何點存儲的數據。圖1也描繪地址計算和執行單元121-124可以經由存儲器全局互連IlOa訪問片段101-104中的每個片段的方式。
[0050]執行全局互連IlOb類似地包括路由矩陣,該路由矩陣允許多個核(例如地址計算和執行單元121-124)訪問可以在片段式寄存器文件中的任何片段式寄存器文件存儲的數據。因此,核具有經由存儲器全局互連IlOa或者執行全局互連IlOb對在片段中的任何片段中存儲的數據和在段中的任何段中存儲的數據的訪問。此外,應當注意在一個實施例中,在公共分割提取和調度器中的每個公共分割提取和調度器之間存在另一全局互連。這由在每個公共分割提取和調度器之間並且連接每個公共分割提取和調度器的水平箭頭所示出。
[0051]圖1B還示出全局前端提取和調度器150,該全局前端提取和調度器具有整個機器的了解並且管理寄存器文件段和片段式存儲器子系統的利用。地址生成包括用於片段定義的基礎。全局前端提取和調度器通過向每個段的分割調度器分配指令序列來工作。公共分割調度器然後分派那些指令序列用於在地址計算和執行單元121-124上執行。
[0052]應當注意在一個實施例中可以向全局前端調度器150中併入公共分割提取和調度器的功能。在這樣的實施例中,段將未包括相應公共分割提取和調度器,並且將無需在它們之間的互連。
[0053]此外,應當注意可以用分級方式嵌套圖1A中所示可分割引擎。在這樣的實施例中,第一級可分割引擎將包括本地前端提取和調度器以及連接到它的多個次級可分割引擎。
[0054]圖2示出根據本發明的一個實施例的調度器流程圖。如圖2中描繪的,示出包括推測性線程存儲桶指針、存儲桶源列表和目的列表的存儲桶緩衝器。調度器和執行存儲桶包括存儲桶分派選擇器以及虛擬寄存器匹配和讀取、包括寄存器分級和寄存器高速緩存的可能性。後端是記錄執行的存儲桶之處,並且在引退之前實行異常排序。寄存器分級/高速緩存也用為用於執行的存儲桶結果的中間存儲裝置直至它們為非推測性並且可以更新架構狀態。以下公開記錄執行的存儲桶的前端、分派級和後端的一個可能實現方式。
[0055]圖2示出該概念從管理少量緊密耦合的線程的存儲桶緩衝器升級成管理多個存儲桶緩衝器和線程的硬體電路的方式。將描述那些可以被擴展以處理可能具有更少緊密交互的更大量線程的電路為全局前端(例如圖1中所示全局前端調度器150)。
[0056]該過程通過提取新線程矩陣/存儲桶/塊來開始,然後向存儲桶緩衝器中的空餘存儲桶槽中指派新線程存儲桶。線程分配指針陣列852中的線程分配指針中的每個線程分配指針組成存儲桶間隔,該存儲桶間隔物理上允許線程在該存儲桶間隔中放置它的指令塊/存儲桶。這些線程中的每個線程保持以輪循方式向在它的對應連續空間間隔內部的存儲桶緩衝器陣列中分配存儲桶。每當新存儲桶/塊被指派時在每個線程空間內部的存儲桶/塊獲得指派的遞增的新編號854。針對每個存儲桶中的有效源,針對每個存儲桶,有效源具有有效讀取位「Rv」,該有效讀取位「Rv」指示在這一個存儲桶內部的指令需要這一個源。按照相同約定,在這一個存儲桶中的將回寫指令的每個指令寄存器具有在存儲桶中設置的有效位「Wv」,並且它在目的繼承性矢量853中具有欄位。在將向存儲桶緩衝器中提取新存儲桶時,它從由線程存儲桶分配指針852指向的先前分配的存儲桶繼承目的繼承性矢量。該繼承性矢量從先前分配的存儲桶複製並且然後它改寫與由那些存儲桶指令將更新的寄存器對應的那些有效目的欄位。將用當前存儲桶編號來標註有效目的,而從在存儲桶內部的對應繼承性矢量複製無效目的。然後對於新提取的存儲桶通過遞增線程存儲桶指針來更新它的指針(指針在它的間隔內卷繞)。
[0057]在存儲桶分派和執行階段中,無論何時執行存儲桶都沒有任何異常處置,然後設置並且貫穿存儲桶緩衝器而且在每個如下存儲桶內鎖存/監視廣播存儲桶異常標誌(包含存儲桶編號)854,該存儲桶以具有該存儲桶編號的源為源。也有可能隨著存儲桶編號傳遞其它有關信息、比如關於虛擬寄存器位置的信息。如果存儲桶內設置源存儲桶的所有執行標誌,則設置該存儲桶就緒位855並且該存儲桶準備好被分派和執行。如果存儲桶執行而無任何異常並且它準備好按照程序的依次順序更新架構狀態,則它引退存儲桶並且將引退線程指針857遞增到陣列中的下一個存儲桶。可以向新存儲桶指派引退的存儲桶位置。
[0058]那些緊密相關線程可以都共存於矩陣/存儲桶/塊緩衝器內部;每個線程將佔用屬於該線程的連續存儲桶間隔。該線程的分配指針以輪循方式在這一存儲桶間隔內部移動從而提取新指令存儲桶並且以描述的輪循方式在線程間隔內部分配它們。利用這樣的間隔分節,用不同或者相等存儲桶間隔長度動態劃分整個存儲桶緩衝器。
[0059]這裡針對指令存儲桶以及針對線程引入繼承性矢量概念。每個指令矩陣/塊/存儲桶向在架構寄存器之中的特定寄存器中寫入。每個新存儲桶在分配階段時向這一矢量中寫入它自己的線程和存儲桶編號而更新這一繼承性矢量、留下它沒有寫入的寄存器的欄位而不更新。按照程序順序從每個存儲桶向下一個存儲桶轉發這一存儲桶繼承性矢量[iv856。在圖8中,如果每個矩陣中的指令向架構目的寄存器中寫入,則該矩陣向那些寄存器中寫入它自己的編號,否則它從該線程中的先前存儲桶的B_iv繼承該值。
[0060]圖3示出根據本發明的一個實施例的示例硬體電路的圖,該圖示出存儲具有互連的操作數和結果的分段式寄存器文件。圖3示出經由執行全局互連而耦合到多個執行單元的操作數結果緩衝器。
[0061]圖4示出根據本發明的一個實施例的描繪全局前端調度器的圖。全局前端調度器被配置用於處理可以具有更少緊密交互的更大量線程(例如圖1中所示全局前端調度器150)。該圖示出如何跨越許多虛擬核來分布來自一個邏輯核的指令序列。這一過程將針對機器中存在的每個邏輯核進行重複。應當注意圖4的「引擎」包括虛擬核的部件,其中顯式地描繪寄存器文件以示出在寄存器文件級的虛擬核間通信的各方面。
[0062]例如如圖4中所描繪的,全局前端調度器可以處理線程頭部920、但是無需處理線程內的實際指令以跨越那些遠線程實行依賴性檢查。線程的頭部和它的存儲桶的子頭部僅包含關於那些線程和存儲桶寫入到的架構寄存器(那些指令的目的寄存器)的信息、在那些頭部中無需包括那些指令的實際指令或者源。實際上,列舉那些目的寄存器或者位矢量是足夠的,在該位矢量中針對用於指令的目的的每個寄存器設置每一個位。該頭部無需物理地放置為指令的頭部;它可以是可以與其餘指令信息一起存儲或者不與其餘指令信息一起存儲的、在線程內的指令的目的寄存器的任何格式化分組或者緊湊表示。
[0063]這一全局前端按照程序順序僅提取線程/塊的頭部並且生成動態線程和/或存儲桶繼承性矢量901(Tiv和/或Biv)。每當分配新線程時,如903所示通過保持當前線程存儲桶不會寫入到或者更新的舊欄位來轉發那些繼承性矢量。那些繼承性矢量被分布到大量引擎/核/或者處理器904,這些引擎/核/或者處理器中的每個弓丨擎/核/或者處理器可能包括本地前端和提取單元(該本地前端和提取單元將提取和存儲針對每個存儲桶產生依賴性矢量的實際指令)和具有本地寄存器文件905的本地矩陣/塊/存儲桶緩衝器。本地前端然後提取實際指令並且使用從全局前端獲得的繼承性矢量的信息以針對那些被帶入引擎用於執行的指令的指令源來填充依賴性信息。圖3圖示了全局前端實現方式和它僅使用關於指令的簡潔信息(該信息僅為那些指令寫入到的寄存器)來向不同引擎904散播繼承性矢量的方式。放置於頭部中有幫助的其它信息是關於在線程內或者跨越線程的控制路徑的變化的信息。全局分支預測器可以用來預測跨越那些線程的控制流。因此,這樣的頭部可以包括分支目的和偏移。除了分支預測器確定控制流之外,硬體/編譯器還可以判決跨越分支的2個控制路徑來分派獨立線程。在這樣的情況下,它將隨後使用繼承性矢量來合併那些2個路徑的執行。圖3也示出在前端提取新線程的頭部時的轉發過程,例如線程2(906)將更新向它轉發的對應繼承性矢量901從而產生矢量910,在該矢量910中用T2標籤更新寄存器1、2、3、4、6、0和7。注意在910中T2存儲桶未寫入寄存器5,因此T2存儲桶的標籤從先前繼承性矢量繼承。
[0064]一個感興趣的觀察是寄存器文件允許在核/引擎之中的交叉通信。一旦在填充源依賴性信息時提取並且在本地存儲桶緩衝器中分配線程的指令存儲桶就可以提出來自交叉引擎的需要的寄存器的(用於減少訪問延時的)早期請求,從而可以在分派實際指令用於執行之前可能很久的時間發布交叉引擎線程引用。在任何情況下,指令直至轉發和到達交叉引用的源才將被分派。這一交叉引用的源可以存儲於本地多線程式寄存器文件或者寄存器高速緩存中。雖然這一交叉引用的源(可以重用加載存儲緩衝器物理存儲裝置和依賴性檢查機制而)可以存儲於與加載存儲緩衝器相似的緩衝器中,但是它是作為寄存器加載而不是存儲器加載。許多技術可以用來跨越引擎/核連接寄存器文件,這可以是環形拓撲或者縱橫拓撲或者網狀路由式互連。
[0065]以下討論可以舉例說明如何可以在引擎內部並且也跨越引擎使用寄存器文件分害I]。在分派存儲桶時,向寄存器文件和寄存器高速緩存二者(同時或者依次)發送它的源。如果寄存器文件被物理地統一併且具有針對線程化的直接支持,則從對應線程寄存器分節直接讀取操作數。如果寄存器文件是包括使用標記的物理上片段的寄存器文件的虛擬寄存器,則必須完成將標記匹配為虛擬寄存器讀取的部分。如果該標記匹配,則從片段的寄存器文件發生讀取。
[0066]公開了一種支持軟體線程、硬體生成的線程、VLIff執行、SMD和MMD執行以及無序超標量執行的仿真的寄存器架構。雖然它被物理地片段,但是它看來是統一架構資源。這一片段的寄存器是可以包括寄存器分級和寄存器高速緩存以及用於存儲和檢查寄存器標記的機制的虛擬寄存器文件的部分。如果我們使用利用依賴性繼承性矢量的基於位置的方案則可以消除標記訪問。該方案工作使得在分派階段期間對執行的存儲桶編號進行廣播時後續指令的所有源執行CAM (內容可尋址匹配),該CAM將它們的源存儲桶與剛才分派/執行的存儲桶進行比較以設置針對該源的就緒標誌。這裡,該存儲桶執行之處的物理位置也可以與寄存器編號一起傳播,從而解決語意模糊。
[0067]例如考慮有4個寄存器文件段的實現方式,每個寄存器文件段包含16個寄存器。例如在向分節2分派存儲桶#x時,將該存儲桶編號X向存儲桶緩衝器廣播並且還隨著它廣播段#2』從而對存儲桶X具有依賴性的所有源將記錄有它在段2中寫入所有它的寄存器。在分派那些指令的時間到來時,它們知道它們需要從段2而不是任何其它段讀取它們的寄存器,即使在其它段中存在相同寄存器編號。這也適用於寄存器高速緩存以避免使用標記。我們可以將這一概念延伸到全局前端,在該全局前端中,除了線程信息之外,繼承性矢量還可以指定在哪個引擎中分配向這一寄存器寫入的指令存儲桶。
[0068]圖5示出根據本發明的一個實施例的跨越許多虛擬核的指令分布的備選實現方式。圖5示出通過向虛擬核分布繼承性矢量編碼段來工作的運行時間優化器調度器550。在一個實施例中,優化器關注多個指令代碼塊並且跨越所有代碼塊重新調度指令以創建代碼段和繼承性矢量。優化器的目標將是使代碼段在它們的相應虛擬核上重疊執行的執行效
率最大化。
[0069]圖6示出根據本發明的一個實施例的具有對應多個寄存器文件以及操作數結果緩衝器的多個寄存器段。如圖6中所描繪的,執行全局互連將每個寄存器段連接到多個地址計算和執行單元。
[0070]圖6中的寄存器段可以用來實施3個執行模式之一:通過由編譯器/編程器分組在一起以形成MMD超指令矩陣,或者可以在單個線程在4個硬體分節中的每個硬體分節上同時執行的線程式模式中獨立執行每個矩陣。最後一個可能執行模式是有能力使用硬體依賴性檢查來動態執行來自單個線程的4個不同指令矩陣以確保在4個不同硬體分節上同時執行的那些不同矩陣之間沒有依賴性存在。
[0071]可以根據執行模式交替地配置圖6中的寄存器文件。在一個模式中,寄存器文件視為服務於MMD寬度的4個分節的MMD分節式寄存器文件或者寄存器文件用為4個單獨的寄存器文件,每個寄存器文件服務於單個線程。寄存器文件也可以支持動態執行模式,在該動態執行模式中4個分節是一個統一寄存器文件,在該統一寄存器文件中向特定分節中的任何寄存器寫入的數據可由其它分節中的所有單元訪問。在那些模式之間切換可以無縫,因為不同執行模式可以在每一個線程基線指令矩陣與MMD超指令矩陣線程之間交替。
[0072]在多線程執行模式中,每個寄存器文件和它的執行線程的執行單元完全獨立於其它寄存器文件及其線程。這與每個線程具有它自己的寄存器狀態相似。然而,可以指定在那些線程之間的依賴性。屬於線程的每個矩陣將在該線程的寄存器文件的執行單元中執行。如果在硬體上僅執行一個線程或者單個非線程式程序,則以下方法用來允許屬於該單個線程/程序的並行矩陣能夠訪問向其它分節中的寄存器中寫入的結果。做到這一點的方式是通過允許向4個寄存器文件分節中的任何寄存器文件分節中寫入結果的任何矩陣生成那些寄存器在其它寄存器文件分節中的副本。在物理上,這通過將每個分節的寫入埠延伸到剩餘分節中來做到。然而這不可升級,因為我們不能構建高效寄存器文件而每個存儲器單元具有如一個分節獨自所需寫入埠的多達4倍。我們呈現構建寄存器文件使得這樣的單線程寄存器廣播延伸將不影響它的機制。
[0073]應當注意可以在Mohammad A.Abdallah於2007年11月14日提交的、名稱為"APPARATUS AND METHOD FOR PROCESSING COMPLEX INSTRUCTION FORMATS IN AMULTITHREADED ARCHITECTURE SUPPORTING VARIOUS CONTEXT SWITCH MODES ANDVTRTUALTZATTON SCHEMES"的、美國專利申請公開第2010/0161948號中發現關於如在本發明的實施例中使用的寄存器段的各附加方面。
[0074]圖7示出根據本發明的一個實施例的用於多核處理器的片段式存儲器子系統的更具體圖。圖7示出在線程之中和/或一般在加載和存儲之中的同步方案的全面方案和實現方式。該方案描述一種用於跨越加載/存儲架構和/或跨越存儲器引用和/或線程的存儲器訪問的存儲器引用的同步和消歧的優選方法。在圖2中,我們示出寄存器文件(地址和/或數據寄存器)的多個段、執行單元、地址計算單元和I級高速緩存的片段和/或加載存儲緩衝器和2級高速緩存以及地址寄存器互連1200和地址計算單元互連1201。那些片段式單元可以在一個核/處理器內通過將它的集中式資源片段和分布到若干引擎中來構造,或者它們可以由在多核/多處理器配置中的不同核/處理器的單元構造。在該圖中示出那些片段1211之一為片段編號I ;片段可以升級成大量(一般如該圖中所示升級成N個片段)。
[0075]這一機制也用為針對在那些引擎/核/處理器之中的存儲器架構的相干方案。這一方案通過來自一個片段/核/處理器中的一個地址計算單元的地址請求來開始。例如,假設片段I請求地址(1211),則它可以使用屬於它自己的片段的地址寄存器和/或使用地址互連總線1200從跨越其它片段的寄存器來獲得和計算它的地址。在計算地址之後,它創建用來訪問高速緩存和存儲器的32位地址或者64位地址的參考地址。這一地址通常被片段成標記欄位以及設置和線欄位。這一特定片段/引擎/核將該地址存儲到它的加載存儲緩衝器和/或LI地址陣列和/或L2地址陣列1202中,同時它將通過使用壓縮技術來創建標記的壓縮版本(具有比地址的原有標記欄位更少的位數)。
[0076]另外,不同片段/引擎/核/處理器將使用設置欄位或者設置欄位的子集作為用於標識在哪個片段/核/處理器中維護地址的索引。地址設置欄位對片段的這一索引化確保了地址在特定片段/核/引擎中的所有權獨佔,即使與該地址對應的存儲器數據可以在另一個或者多個其它片段/引擎/核/處理器中存活。即使在每個片段中示出將地址CAM/標記陣列1202/1206與數據陣列1207耦合,但是它們可以僅以物理鄰近的放置和布局的方式耦合或者甚至事實是二者屬於特定引擎/核/處理器這樣,但是在地址陣列中保持的地址與在一個片段內部的數據陣列中的數據之間沒有關係。
[0077]圖8示出描繪根據本發明的一個實施例的通過地址生成如何使用地址的位以枚舉片段的圖。在本實施例中,如圖8中所描繪,片段由在頁面邊界以上的地址位和在高速緩存線邊界以下的地址位定義。本發明有利地保持於頁面邊界以上以避免在從虛擬地址轉譯成物理地址期間引起TLB錯失。該過程保持於高速緩存線邊界以下以便具有完整高速緩存線以便在硬體高速緩存分級內正確相配。例如,在運用64位元組高速緩存線的系統中,片段邊界將避免後六個地址位。為比較,運用32位元組高速緩存線的系統,片段邊界將避免後五位。一旦定義,片段分級跨越處理器的所有高速緩存分級相同。
[0078]圖9示出本發明的實施例的如何處置加載和存儲的圖。如圖9中所描繪,每個片段與它的加載存儲緩衝器和存儲引退緩衝器關聯。對於任何給定的片段,向該片段的加載存儲緩衝器發送指明與該片段或者另一片段關聯的地址範圍的加載和存儲用於處理。應當注意,它們可以無序地到達,因為核無序地執行指令。在每個核內,核具有不僅對它自己的寄存器文件而且對其它核的寄存器文件中的每個寄存器文件的訪問。
[0079]本發明的實施例實施一種分布式加載存儲排序系統。該系統跨越多個片段分布。在片段內,該片段執行本地數據依賴性檢查。這是因為片段僅在該特定片段的存儲引退緩衝器內加載和存儲。這限制了對必須關注其它片段以維護數據相干性的需要。以這一方式,將片段內的數據依賴性進行本地實行。
[0080]關於數據一致性,存儲分派門根據嚴格的按照程序順序的存儲器一致性規則實行存儲引退。存儲無序地到達加載存儲緩衝器。加載也無序地到達加載存儲緩衝器。同時,無序加載和存儲被轉發到存儲引退緩衝器用於處理。應當注意雖然在給定的片段內依序引退存儲,但是在它們去往存儲分派門時它們可以無序地來自多個片段。存儲分派門實行如下策略,該策略確保即使存儲可以無序地跨越存儲引退緩衝器而駐留,並且即使緩衝器可以相對於其它緩衝器的存儲而向存儲分派門無序地轉發存儲,分派門仍然確保向片段存儲器嚴格依序轉發它們。這是因為存儲分派門具有存儲引退的全局了解並且僅允許存儲跨越所有片段一即全局一依序離開去往存儲器的全局可視側。以這一方式,存儲分派門作為全局觀察器工作以確保存儲跨越所有片段最終依序返回到存儲器。
[0081]圖10示出根據本發明的一個實施例的可以將片段拆分成兩個或者更多域的方式。圖10示出可以將單個片段拆分成多個域的方式。域拆分可以經由地址生成過程來實施。域拆分改變必須在片段內完成加載存儲檢查的方式,因為在這一情況下它們必須僅按域來完成,這有別於跨越整個片段。域拆分還有利在於它可以使單埠式存儲器表現如同多埠存儲器,其中將單個埠訪問每個不同的域。
[0082]圖11示出根據本發明的一個實施例的處理器的操作模式,在該操作模式中,可分割引擎的硬體資源在執行應用中如同邏輯核工作。在這一實施例中,將虛擬核的引擎的硬體資源配置為物理核。在圖11的模式中,每個物理核被配置為作為邏輯核工作。多線程式應用和多線程式功能取決於應用的軟體的線程式可編程性。[0083]圖12示出根據本發明的一個實施例的處理器的操作模式,在該操作模式中,軟體核用來在執行應用中如同邏輯核工作。在這一實施例中,虛擬核的可分割引擎將支持多個軟核。在圖12的模式中,每個軟核被配置為作為邏輯核工作。多線程式應用和多線程式功能取決於應用的軟體的線程式可編程性。
[0084]圖13示出根據本發明的一個實施例的處理器的操作模式,在該操作模式中,軟核用來在執行應用中如同單個邏輯核工作。在圖13的模式中,每個軟核被配置為作為單個邏輯核工作。在這樣的實現方式中,單個線程式應用讓它的指令序列被劃分並且在虛擬核之中分配,其中它們被協同地執行以實現高的單線程式性能。以這一方式,單線程式性能可以隨著添加附加軟核而升級。
[0085]可以在選擇處理器的操作模式時使用多個策略。對於具有大量引擎(例如8個引擎、12個引擎等)的處理器,多個軟核可以被配置為作為單個邏輯核工作,而剩餘核可以在其它模式中操作。這一屬性允許智能資源分割以確保硬體的利用最大化和/或浪費的功耗最小化。例如,在一個實施例中,可以根據執行的應用類型來在每線程基礎上分配核(例如軟核或者邏輯核)。
[0086]圖14示出根據本發明的一個實施例的用來支持邏輯核和虛擬核功能的片段分割的示例實現方式。如以上討論的那樣,片段分割允許處理器被配置為支持如以上描述的不同虛擬核執行模式。
[0087]全局互連允許核的線程訪問埠 1401中的任何埠。應當注意,這裡所用術語「線程」是指來自不同邏輯核的指令序列、來自相同邏輯核的指令序列或者二者的某種混合的表示。
[0088]如圖所示根據仲裁器的策略可調節線程利用埠 1401之一以訪問加載存儲緩衝器的方式。因此,使用埠 1401中的任何埠的線程可以具有經由埠 1402對加載存儲緩衝器的更大或者更少量訪問。分配的大小和管理分配的方式由仲裁器控制。該仲裁器可以根據特定線程的需求而動態分配對埠的訪問。
[0089]加載存儲緩衝器被配置為讓多個條目跨越埠展開。對加載存儲緩衝器的訪問由仲裁器控制。以這一方式,仲裁器可以向不同線程動態地分配加載存儲緩衝器中的條目。
[0090]圖14還示出在加載存儲緩衝器與LI高速緩存之間的埠上的仲裁器。因此,與以上描述的加載存儲緩衝器一樣,使用埠 1403中的任何埠的線程可以具有經由埠1404對LI高速緩存的更大或者更少量訪問。分配的大小和管理分配的方式由仲裁器控制。該仲裁器可以根據特定線程的需求而動態地分配對埠的訪問。
[0091]LI高速緩存被配置為讓多個方式跨越埠展開。對LI高速緩存的訪問由仲裁器控制。以這一方式,仲裁器可以向不同線程動態地分配LI高速緩存中的條目。
[0092]在一個實施例中,仲裁器被配置以與用於跟蹤功能的多個計數器1460和提供限制功能的多個閾值限制寄存器1450工作。限制功能針對每個給定的線程指定最大資源分配百分比。跟蹤功能跟蹤在任何給定的時間向給定的線程分配的實際資源。這些跟蹤和限制功能影響用於加載存儲緩衝器、LI高速緩存、L2高速緩存或者全局互連的每線程條目、路線或者埠的數目。例如可以對比可變閾值而動態地檢查針對每個線程分配的在加載存儲緩衝器中的條目總數。這一可變閾值可以根據給定的線程的轉發進度來更新。例如在一個實施例中,將減緩的線程(例如大量L2錯失等)量化為產生緩慢向前進度,因此降低它們的包括條目閾值、路線閾值和埠閾值的相應資源分配閾值。
[0093]圖14也示出共享L2高速緩存。在本實施例中,共享的L2高速緩存具有固定的埠布置而沒有在來自LI高速緩存的訪問之間的任何仲裁。在處理器上執行的線程將都共享對L2高速緩存和L2高速緩存的資源的訪問。
[0094]圖15示出根據本發明的一個實施例的實施多物理到多邏輯模式的示例性四片段處理器的片段存儲器。
[0095]圖15上的陰影示出一個示例性邏輯核及其與處理器的資源的關係。在圖11的操作模式(多物理核到多邏輯核的模式,其中物理核用來在執行應用中如同邏輯核而工作)中,每個邏輯核將被配置為具有固定的加載存儲緩衝器和LI高速緩存的資源比值。埠可以向每個線程或者核具體指派。可以每線程或者核具體保留加載存儲緩衝器中的條目。可以每線程或者核具體保留LI高速緩存內的路線。多線程式應用和多線程式功能取決於應用的軟體的線程式可編程性。這由一個邏輯核具有分配的埠以及片段中的每個片段的存儲緩衝器和LI高速緩存的分配部分而示出。以這一方式,邏輯核包括固定的每個片段的資源的分配片段。
[0096]在一個實施例中,在多物理核到多邏輯核模式中,可以根據訪問每個片段的埠(埠 1401)的數目對四個片段進行分割。例如在每片段有六個埠的實施例中,可以用跨越4個片段和4個分割雙引擎來支持6個物理核這樣的方式對每個片段的資源進行劃分並且因此劃分引擎的每個分割的資源。每個分割可以被分配它自己的埠。類似地,將以支持6個物理核這樣的方式而分配加載存儲緩衝器和LI高速緩存的資源。例如,在其中加載存儲緩衝器具有48個條目的實施例中,可以分配48個條目使得每物理核有12個條目以支持實施4個物理核的模式,或者可以分配它們使得每物理核有8個條目以支持實施6個物理核的模式。
[0097]圖16示出根據本發明的一個備選實施例的實施多物理到多邏輯模式的示例性四片段處理器的片段存儲器。
[0098]同圖15,圖16上的陰影示出一個示例邏輯核及其與處理器的資源的關係。在圖11的操作模式(多物理核到多邏輯核模式)中,整個分割表引擎專用於支持單個邏輯核的執行。這由圖16中的陰影示出。物理資源引擎用來在執行應用中如同邏輯核工作。
[0099]圖17示出根據本發明的一個實施例的實施多軟核到多邏輯核模式的示例性四片段處理器的片段存儲器。
[0100]圖17上的陰影示出一個示例性邏輯核及其與處理器的資源的關係。在圖12的操作模式(多軟核到多邏輯模式,其中虛擬核用來在執行應用中如同邏輯核工作)中,加載存儲緩衝器的資源的分配的大小和管理分配的方式由仲裁器控制。該仲裁器可以根據特定線程或者核的需求來動態地分配對埠的訪問。類似地,LI高速緩存的資源的分配的大小和管理分配的方式由仲裁器控制。該仲裁器可以根據特定線程或者核的需求來動態地分配對埠的訪問。因此,在任何給定的實例,(例如有陰影的)邏輯線程/核可以使用不同仲裁器和不同埠。
[0101]以這一方式,對加載存儲緩衝器的資源的訪問和對LI高速緩存的資源的訪問可以更由策略驅動並且可以更基於產生向前進度的個別線程或者核的需要。這由一個邏輯核具有動態分配的埠以及片段中的每個片段的存儲緩衝器和LI高速緩存的動態分配部分示出。以這一方式,邏輯核包括每個片段的資源的非固定、動態分配片段。
[0102]圖18示出根據本發明的一個實施例的實施多軟核到一個邏輯核模式的示例性四片段處理器的片段存儲器。
[0103]在圖13的操作模式(多軟核到一個邏輯核模式,其中軟核用來在執行應用中如同單個邏輯核工作)中,軟核中的每個軟核被配置以與其它軟核一起作為單個邏輯核協同地工作。單個線程或者核具有加載存儲緩衝器的所有資源和LI高速緩存的所有資源。在這樣的實現方式中,單個線程式應用讓它的指令序列被劃分並且在軟核之中分配,其中它們被協同地執行以實現高的單線程式性能。以這一方式,單線程式性能可以隨著添加附加軟核而升級。在圖17中示出這一點,其中處理器的所有資源的陰影示出一個示例邏輯核及其與處理器的資源的關係。
[0104]圖19示出根據本發明的一個實施例的實施多物理到多邏輯模式的示例性四片段處理器的地址計算和執行單元、操作數/結果緩衝器、線程式寄存器文件以及公共分割調度器。
[0105]圖19上的陰影示出一個示例性邏輯核及其與處理器的資源的關係。在圖11操作模式(多物理核到多邏輯核模式,其中物理核用來在執行應用中如同邏輯核工作)中,每個邏輯核將被配置為具有固定的地址計算單元、操作數/結果緩衝器、線程式寄存器文件和公共分割調度器的資源比值。多線程式應用和多線程式功能取決於應用的軟體的線程式可編程性。這由一個邏輯核具有分配的地址計算和執行單元、分配的線程式寄存器文件以及分配的公共分割調度器而示出。以這一方式,邏輯核包括固定的分配段。然而在一個實施例中,在這一操作模式中,仍然可以共享地址計算和執行單元(例如意味著地址計算和執行單元中的每個地址計算和執行單元將無陰影)
[0106]圖20示出根據本發明的一個實施例的用來實施多物理到多邏輯模式的示例性四片段處理器的地址計算和執行單元、操作數/結果緩衝器、線程式寄存器文件以及公共分割調度器的備選實現方式。
[0107]圖20上的陰影示出一個示例性邏輯核及其與處理器的資源的關係。然而在圖20的實施例中,跨越片段中的每個片段和可分割引擎中的每個可分割引擎展開物理核的資源。這由一個邏輯核跨越段中的每個段具有地址計算和執行單元的分配部分、線程式寄存器文件的分配部分以及公共分割調度器的分配部分而示出。此外,圖20示出將如何已經向一個邏輯核分配地址計算執行單元中的每個地址計算執行單元的資源的部分。以這一方式,邏輯核包括固定的段中的每個段的分配部分。
[0108]圖21示出根據本發明的一個實施例的實施多軟核到多邏輯核模式的示例性四片段處理器的地址計算和執行單元、寄存器文件以及公共分割調度器。
[0109]圖21上的陰影示出一個示例性邏輯核及其與處理器的資源的關係。在圖12的操作模式(多軟核到多邏輯核模式,其中軟核用來在執行應用中如同邏輯核工作)中,每個邏輯核將被配置為具有對地址計算單元以及操作數/結果緩衝器、線程式寄存器文件和公共分割調度器的動態分配部分中的任一項的共享訪問。多線程式應用和多線程式功能取決於應用的軟體的線程式可編程性。
[0110]圖22示出根據本發明的一個實施例的實施多軟核到一個邏輯核模式的示例性四片段處理器的地址計算和執行單元、寄存器文件以及公共分割調度器。[0111]圖22上的陰影示出一個示例性邏輯核及其與處理器的資源的關係。在圖13的操作模式(多軟核到一個邏輯核模式,其中軟核用來在執行應用中如同單個邏輯核操作)中,每個軟核將被配置為具有對所有地址計算單元以及所有操作數/結果緩衝器、線程式寄存器文件和公共分割調度器的共享訪問。在這樣的實現方式中,單個線程式應用讓它的指令序列被劃分並且在虛擬核之中分配,其中它們被協同地執行以實現高的單線程式性能。以這一方式,單線程式性能可以隨著添加附加軟核而升級。
[0112]圖23示出根據本發明的一個實施例的示例性微處理器流水線2300的圖。微處理器流水線2300包括實施如以上描述的過程的功能的提取模塊2301,該過程用於標識和抽取包括執行的指令。在圖23的實施例中,提取模塊跟隨有解碼模塊2302、分配模塊2303、分派模塊2304、執行模塊2305和引退模塊2306。應當注意,微處理器流水線2300僅為實施以上描述的本發明的實施例的功能的流水線的一個示例。本領域技術人員將認識可以實施包括以上描述的解碼模塊的功能的其它微處理器流水線。
[0113]已經出於說明的目的參照具體實施例對前文描述進行了描述。然而以上所示討論並非旨在詳盡的或者使本發明限於公開的精確形式。鑑於以上教導的許多修改和變化是可能的。選擇和描述實施例以便最好地說明本發明的原理及其實際應用,以由此使本領域其他技術人員能夠藉助如可以與設想的特定使用相適應的各種修改最好地利用本發明和各種實施例。
【權利要求】
1.一種用於使用用於處理器的多個寄存器文件段來執行指令的系統,所述系統包括: 全局前端調度器,用於接收傳入指令序列,其中所述全局前端調度器將所述傳入指令序列分割成指令的多個代碼塊並且生成描述在所述代碼塊的指令之間的相互依賴性的多個繼承性矢量; 所述處理器的多個虛擬核,被耦合用於接收由所述全局前端調度器分配的代碼塊,其中每個虛擬核包括多個可分割引擎的資源的相應子集,其中根據虛擬核模式並且根據相應的所述繼承性矢量通過使用所述可分割引擎來執行所述代碼塊;以及多個寄存器文件段,耦合到所述可分割引擎用於提供數據存儲。
2.根據權利要求1所述的系統,其中所述多個寄存器文件段實施執行模式,其中分配每個寄存器文件段的物理資源的子集以支持邏輯核的單個邏輯線程的執行。
3.根據權利要求2所述的系統,每個寄存器文件段實施多個邏輯核的部分。
4.根據權利要求1所述的系統,其中所述多個寄存器文件段實施執行模式,其中根據可調節閾值來動態分配每個寄存器文件段的物理資源以支持單個邏輯核的單個邏輯線程的執行。
5.根據權利要求4所述的系統,其中所述多個寄存器文件段實施多個邏輯核的部分。
6.根據權利要求1所述的系統,其中所述多個寄存器文件段實施執行模式,其中分配每個寄存器文件段的物理資源的所述集合以支持單個邏輯線程的執行。
7.根據權利要求1所述的系統,其中每個寄存器文件段還包括公共分割調度器、操作數和結果緩衝器以及線程式寄存器文件。
8.根據權利要求1所述的系統,其中互連將所述多個寄存器文件段中的每個寄存器文件段連結到所述多個執行單元中的每個執行單元。
9.一種用於使用多個寄存器文件段來執行指令的處理器,所述處理器包括: 全局前端調度器,用於接收傳入指令序列,其中所述全局前端調度器將所述傳入指令序列分配到指令的多個代碼段中並且生成描述在所述代碼段的指令之間的相互依賴性的多個繼承性矢量; 多個執行單元,耦合到所述全局前端調度器用於根據相應的繼承性矢量執行所述代碼段;以及 多個寄存器文件段,耦合到所述執行單元用於提供數據存儲。
10.根據權利要求9所述的處理器,其中所述多個寄存器文件段實施執行模式,其中分配每個寄存器文件段的物理資源的子集以支持邏輯核的單個邏輯線程的執行。
11.根據權利要求10所述的處理器,每個寄存器文件段實施多個邏輯核的部分。
12.根據權利要求9所述的處理器,其中所述多個寄存器文件段實施執行模式,其中根據可調節閾值來動態分配每個寄存器文件段的物理資源以支持單個邏輯核的單個邏輯線程的執行。
13.根據權利要求12所述的處理器,其中所述多個寄存器文件段實施多個邏輯核的部分。
14.根據權利要求9所述的處理器,其中所述多個寄存器文件段實施執行模式,其中分配每個寄存器文件段的物理資源的所述集合以支持單個邏輯線程的執行。
15.根據權利要求9所述的處理器,其中每個寄存器文件段還包括公共分割調度器、操作數和結果緩衝器以及線程式寄存器文件。
16.根據權利要求9所述的處理器,其中互連將所述多個寄存器文件段中的每個寄存器文件段連結到所述多個執行單元中的每個執行單元。
17.一種用於使用用於處理器的多個寄存器文件段來執行指令的系統,所述系統包括: 全局前端調度器,用於接收傳入指令序列,其中所述全局前端調度器將所述傳入指令序列分割成指令的多個代碼塊; 所述處理器的多個虛擬核,被耦合用於接收由所述全局前端調度器分配的代碼塊,其中每個虛擬核包括多個可分割引擎的資源的相應子集,其中根據虛擬核模式通過使用所述可分割引擎來執行所述代碼塊;以及 多個寄存器文件段,耦合到所述可分割引擎用於提供數據存儲。
18.根據權利要求17所述的系統,其中所述多個寄存器文件段實施執行模式,其中分配每個寄存器文件段的物理資源的子集以支持邏輯核的單個邏輯線程的執行。
19.根據權利要求18所述的系統,每個寄存器文件段實施多個邏輯核的部分。
20.根據權利要求17所述的系統,其中所述多個寄存器文件段實施執行模式,其中根據可調節閾值來動態分配每個寄存器文件段的物理資源以支持單個邏輯核的單個邏輯線程的執行。
21.根據權利要求20所述的系統,其中所述多個寄存器文件段實施多個邏輯核的部分。
22.根據權利要求17所述的系統,其中所述多個寄存器文件段實施執行模式,其中分配每個寄存器文件段的物理資源的所述集合以支持單個邏輯線程的執行。
23.根據權利要求17所述的系統,其中每個寄存器文件段還包括公共分割調度器、操作數和結果緩衝器以及線程式寄存器文件。
24.根據權利要求17所述的系統,其中互連將所述多個寄存器文件段中的每個寄存器文件段連結到所述多個執行單元中的每個執行單元。
【文檔編號】G06F9/46GK103562866SQ201280024054
【公開日】2014年2月5日 申請日期:2012年3月23日 優先權日:2011年3月25日
【發明者】M·阿布達拉 申請人:索夫特機械公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀