TW201423402A - 通用目的數位資料處理器、系統及方法 - Google Patents

通用目的數位資料處理器、系統及方法 Download PDF

Info

Publication number
TW201423402A
TW201423402A TW101147084A TW101147084A TW201423402A TW 201423402 A TW201423402 A TW 201423402A TW 101147084 A TW101147084 A TW 101147084A TW 101147084 A TW101147084 A TW 101147084A TW 201423402 A TW201423402 A TW 201423402A
Authority
TW
Taiwan
Prior art keywords
memory
digital data
thread
cache memory
event
Prior art date
Application number
TW101147084A
Other languages
English (en)
Inventor
Steven J Frank
Hau Lin
Original Assignee
Paneve Llc
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 Paneve Llc filed Critical Paneve Llc
Priority to TW101147084A priority Critical patent/TW201423402A/zh
Publication of TW201423402A publication Critical patent/TW201423402A/zh

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本發明提供包括改良之資料處理裝置、系統及方法,該等裝置、系統包括一或多個節點,例如,處理器模組或包括或以其他方式耦接至快取記憶體、實體記憶體或其他記憶體(例如,附接式快閃磁碟機或其他掛接式儲存器件)之其他者,該等記憶體統稱為「系統記憶體」。該等節點中之至少一者包括一快取記憶體系統,其儲存最近由該各別節點存取(及/或預期存取)之資料(及/或指令)連同指定該各別資料(及/或指令)之位址及狀態(例如,已修改、參考計數等)的標籤。該等標籤促進將系統位址轉譯成實體位址,(例如)以用於在系統記憶體(及具體而言,例如,實體記憶體,諸如附接式磁碟機或其他掛接式儲存器)與該快取記憶體系統之間移動資料(及/或指令)。在該等處理器模組中之一或多者內,一事件表將諸如(以非限制性實例說明)硬體中斷、軟體中斷及記憶體事件之事件映射至各別執行緒。器件及/或軟體(例如,應用程式、處理程序及/或執行緒)向(例如)預設系統執行緒或其他執行緒註冊以識別其需要及/或其可提供之事件處理服務。彼執行緒或其他機制基於整個環境之需求及容量來持續地匹配事件與執行緒且更新事件表以反映事件至執行緒之最佳映射。處理器模組准許應用程式及作業系統層級執行緒跨越不同器件(包括行動器件)而以透通方式執行,且使此類器件能夠自動卸載工作以改良效能及達成較低功率消耗。一事件遞送機制將諸如(以非限制性實例說明)硬體中斷、軟體中斷及記憶體事件之事件遞送至各別執行緒。例如藉由一設計人員、製造商、經銷商、零售商、售後支援人員、終端使用者或其他者執行的預處理器(或其他功能性)回應於預期核心及/或站點資源可用性以及使用者優先順序,以在執行階段產生使執行緒執行個體化、維護及執行緒指派最佳化的預設系統執行緒程式碼、連結參數等。算術邏輯或其他執行單元藉由針對JPEG2000 EBCOT(嵌入式最佳截斷區塊編碼)內之位元平面編碼而編碼等量磁碟區行及將其儲存至一或多個暫存器中之一者(或多者)來執行選定處理器層級指令。該等算術邏輯單元亦可藉由將來自一JPEG2000二進位算術編碼器查找表之值儲存至該/該等暫存器來執行選定處理器層級指令。另外,該等算術邏輯單元可執行指定具有轉置之算術運算的選定處理器層級指令,該執行係藉由對含於該等暫存器中之各別者中的一或多個指定運算元(例如,長字組、字組或位元組)執行指定算術運算以產生彼運算之結果及(例如)跨越多個指定暫存器以轉置格式儲存彼運算之結果來進行。一處理器模組可包括與一或多個暫存器以及快取記憶體通信耦接之一算術邏輯或其他執行單元。與該快取記憶體相關聯之功能性協同該執行單元工作以回應於實行該等暫存器與該快取記憶體之間的資料及/或指令交換之載入、儲存及其他請求而使對該快取記憶體之利用變化。該等模組可執行代替通常藉由先前技術器件使用之類型的硬體組件之類似管線的軟體組件之管線。

Description

通用目的數位資料處理器、系統及方法
本發明係關於數位資料處理,且更特定而言,係關於具有改良之軟體執行的數位資料處理模組、系統及方法。以實例說明,本發明已應用於嵌入式處理器架構及操作。本發明已應用於高清晰度數位電視、遊戲系統、數位視訊記錄器、視訊及/或音訊播放器、個人數位助理、個人知識導覽器、行動電話及其他多媒體及非多媒體器件。本發明亦應用於桌上型電腦、膝上型電腦、迷你電腦、大型電腦及其他計算器件中。
先前技術嵌入式以處理器為基礎之系統或應用程式系統通常組合以下兩者:(1)用於處置使用者介面處理、高層級應用程式處理及作業系統任務之一或多個通用目的處理器(例如,種類有ARM、MIP或x86),及(2)專用於基於即時/低延時處置特定介面處或特定應用程式內之特定類型之算術計算的一或多個數位信號處理器(DSP),包括媒體處理器。替代DSP或除DSP之外,常常亦提供特殊目的硬體來處置DSP不能在可程式化基礎上處置的專用需要,此(例如)係因為DSP不能一次處置多個活動或因為DSP不能滿足對極特殊計算元件之需要。
先前技術亦包括:個人電腦、工作站、膝上型電腦及通常組合主處理器與單獨圖形處理器及單獨聲音處理器之其他此等計算器件;遊戲系統,其通常組合主處理器與單獨 程式化圖形處理器;數位視訊記錄器,其通常組合通用目的處理器、mpeg2解碼器及編碼器晶片與特殊目的數位信號處理器;數位電視,其通常組合通用目的處理器、mpeg2解碼器及編碼器晶片與特殊目的DSP或媒體處理器;行動電話,其通常組合用於使用者介面及應用程式處理之處理器與用於行動電話GSM、CDMA或其他協定處理之特殊目的DSP。
早期先前技術專利包括美國專利第6,408,381號,其揭示利用快照檔案之管線式處理器,該快照檔案具有指示各個管線級中之指令之狀態的項目;及美國專利第6,219,780號,其有關於改良具有以叢集分組之多個執行單元的電腦之輸送量。早期先前技術面臨之一個問題為硬體設計複雜性結合在程式化及介接異質類型之計算元件中的軟體複雜性。另一問題為對於每個應用程式而言必須再工程硬體及軟體兩者。此外,早期先前技術系統並非負載平衡的:容量不可自一硬體元件轉移至另一硬體元件。
除其他趨勢外,世界正走向視訊,亦即,消費者、商業、教育、政府及其他市場正愈來愈需要視訊創建及/或播放以滿足使用者需要。因此,視訊及影像處理為嵌入式器件之一個主要用途,且在器件中為普遍的(遍及消費型及商務型器件連同其他器件)。然而,現今仍使用之許多處理器依賴於數十年以來之已往經最佳化以用於文字處理的Intel及ARM架構。
本發明之一目標為提供用於數位資料處理之改良之模 組、系統及方法。
本發明之另一目標為提供具有改良之軟體執行的此等模組、系統及方法。
一相關目標為提供適合於嵌入式環境或應用程式之此等模組、系統及方法。
另一相關目標為提供適合於視訊及影像處理之此等模組、系統及方法。
另一相關目標為提供促進設計、製造、上市時間、成本及/或維護之此等模組、系統及方法。
本發明之另一目標為提供用於嵌入式(或其他)處理之改良之模組、系統及方法,其滿足現今及未來設備(以非限制性實例說明,包括(略舉數例)數位電視、數位視訊記錄器、視訊及/或音訊播放器、個人數位助理、個人知識導覽器及行動電話)之計算、大小、功率及成本要求。
又一目標為提供支援一定範圍之應用的改良之模組、系統及方法。
再一目標為提供低成本、低功率及/或支援穩固快速上市實施之此等模組、系統及方法。
又一目標為提供適合於供桌上型電腦、膝上型電腦、迷你電腦、大型電腦及其他計算器件使用之此等模組、系統及方法。
本發明之此等及其他態樣在以下論述及圖式中為顯而易見的。
具有快取記憶體管理式記憶體之數位資料處理器
前述內容係在藉由本發明獲得之目標當中,在一些態樣中,本發明提供具有快取記憶體控制式系統記憶體之改良之數位資料處理系統。根據本發明之一個此類態樣的系統包括一或多個節點(例如,處理器模組或其他模組),該一或多個節點包括或以其他方式耦接至快取記憶體、實體記憶體或其他記憶體(例如,附接式快閃磁碟機或其他掛接式儲存器件),該等記憶體統稱為「系統記憶體」。
該等節點中之至少一者包括一快取記憶體系統,其儲存最近由各別節點存取(及/或預期存取)之資料(及/或指令)連同指定各別資料(及/或指令)之位址及狀態的標籤(例如,已修改、參考計數等)。快取記憶體可以多個階層層級來組織(例如,第一層級快取記憶體、第二層級快取記憶體等),且該等位址可形成該等節點中之多者所共有之「系統」位址的部分。
系統記憶體及/或快取記憶體可包括額外(或「擴展」)標籤。除指定各別資料(及/或指令)之系統位址及狀態外,擴展標籤亦指定彼等資料在系統記憶體中之實體位址。因而,該等標籤促進將系統位址轉譯成實體位址,(例如)以用於在系統記憶體(及具體而言,例如,實體記憶體,諸如附接式磁碟機或其他掛接式儲存器)與快取記憶體系統之間移動資料(及/或指令)。
本發明之相關態樣提供針對系統記憶體中之每一可定址資料(或視情況,資料區塊或頁面)提供一個擴展標籤的系 統(例如,如上文所描述)。
本發明之其他態樣提供擴展標籤在系統記憶體中組織為樹的系統(例如,如上文所描述)。
本發明之相關態樣提供擴展標籤中之一或多者快取於一或多個節點之快取記憶體系統中的此系統。此等擴展標籤可包括(例如)用於藉由彼等節點在其各別快取記憶體系統內之彼資料之快取「未命中」後最近存取(或預期存取)的資料之擴展標籤。
本發明之其他相關態樣提供此類系統,其包含經耦接以用於(例如)藉由匯流排、網路或其他媒體彼此通信以及較佳與記憶體系統通信的複數個節點。在相關態樣中,此包含環形互連件。
根據本發明之另外其他態樣的節點可在其自身之內部快取記憶體系統內的對資料之快取未命中後沿著彼匯流排、網路或其他媒體用信號傳輸對彼資料之請求。若其他節點中無一者滿足請求,則系統記憶體可滿足彼請求或對資料之後續相關請求。
在本發明之相關態樣中,節點可利用匯流排、網路或其他媒體將對快取資料及/或擴展標籤之更新傳達至其他節點及/或記憶體系統。
本發明之其他態樣提供一或多個節點包括含有頻繁及/或最近使用之資料及/或指令的第一層級快取記憶體及含有第一層級快取記憶體中之資料及/或指令之超集的至少一第二層級快取記憶體的系統(例如,如上文所描述)。
本發明之其他態樣提供在節點內利用少於或多於兩個層級之快取記憶體的系統(例如,如上文所描述)。因此,例如,系統節點可包括僅單一層級快取記憶體連同上文所描述之類型的擴展標籤。
本發明之另外其他態樣提供節點包含(例如)處理器模組、記憶體模組、數位資料處理系統(或至其的互連)及/或其組合的系統(例如,如上文所描述)。
本發明之另外其他態樣提供(例如)一或多個層級之快取記憶體(例如,第一層級及第二層級)整體或部分地含於節點中之一或多者(例如,處理器模組)上的此類系統。
根據本發明之數位資料模組、系統及方法的優勢為所有系統位址被視為如同快取於記憶體系統中。因此,不管(例如)是處於快取記憶體抑或實體記憶體(例如,附接式快閃磁碟機或其他掛接式儲存器件)中,存在於系統中之可定址項目皆具有在快取記憶體層級中之一者中的項目。不存在於任何快取記憶體(及記憶體系統)中(亦即,不反映於快取記憶體層級中之任一者中)的項目接著不存在於記憶體系統中。因此,記憶體系統可在無處理器上之表的額外負荷的情況下以對軟體及作業系統自然之方式來稀疏地填充。
根據本發明之數位資料模組、系統及方法的優勢為其提供對記憶體之有效利用,尤其在記憶體利用可受限制之處,例如,在行動及消費型器件上。
其他優勢為數位資料模組、系統及方法經歷正作為快取 記憶體來管理之所有記憶體的效能改良而無晶片上面積處罰。此情形又使(例如)行動及消費型器件之記憶體能夠由另一網路連接器件擴充。以另一非限制性實例說明,其亦可用以管理(例如)最近攜帶型器件(諸如,迷你筆記型電腦)上之RAM及FLASH記憶體。
具有事件至執行緒之動態指派的通用目的處理器
本發明之其他態樣提供處理模組包含各自執行處理程序或執行緒(統稱為「執行緒」)之複數個處理單元的處理器模組、系統及方法(例如,如上文所描述)。事件表將諸如(以非限制性實例說明)硬體中斷、軟體中斷及記憶體事件之事件映射至各別執行緒。器件及/或軟體(例如,應用程式、處理程序及/或執行緒)向(例如)預設系統執行緒或其他執行緒註冊以識別其需要及/或其可提供之事件處理服務。彼執行緒或其他機制基於整體環境之需求及容量來持續地使事件與執行緒匹配且更新事件表以反映事件至執行緒之映射。
本發明之相關態樣提供併有處理器之如下系統及方法(例如,如上文所描述):(例如)藉由預處理器基於指示詞來產生由硬體器件或軟體利用以註冊其事件處理需要及/或容量的程式碼,該等指示詞由開發人員、製造商、經銷商、零售商、售後支援人員、終端使用者或關於使用或將使用處理器之實際或預期執行階段環境的其他者來供應。
本發明之其他相關態樣提供此類程式碼可由預處理器等插入至個別應用程式之各別執行階段程式碼中的此方法。
具有位置獨立共用執行環境之通用目的處理器
本發明之其他態樣提供處理器模組、系統及方法(例如,如上文所描述),其准許應用程式及作業系統層級執行緒跨越不同器件(包括行動器件)而以透通方式執行且使此類器件能夠自動卸載工作以改良效能及達成較低功率消耗。
本發明之相關態樣提供藉由在一個器件上執行之處理器偵測到的事件可投送至(例如)在另一器件上執行之處理器以供處理的此類模組、系統及方法。
本發明之其他相關態樣提供如下此類模組、系統及方法:在一個器件上執行之執行緒可遷移至(例如)另一器件上之處理器,且藉此遷移至(例如)在彼另一器件本端之處理器事件及/或以達成負載平衡(皆以實例說明)。因此,例如,執行緒可遷移至(例如)較不忙器件、至更合適器件或簡單地至預期發生大多數事件之器件。
本發明之其他態樣提供在多個不同器件中之處理器之間及當中及/或在單一器件上之多個處理器當中投送事件及/或遷移執行緒的模組、系統及方法(例如,如上文所描述)。
本發明之另外其他態樣提供用於投送事件之表實施於新穎記憶體/快取記憶體結構中(例如)使得合作處理器模組(例如,區域網路上之彼等模組)之表包含單一共用階層表的模組、系統及方法(例如,如上文所描述)。
經由執行緒執行個體化、維護及最佳化佈建服務品質之通 用目的處理器
本發明之其他態樣提供處理器包含各自執行處理程序或執行緒(統稱為「執行緒」)之複數個處理單元的處理器模組、系統及方法(例如,如上文所描述)。事件遞送機制將諸如(以非限制性實例說明)硬體中斷、軟體中斷及記憶體事件之事件遞送至各別執行緒。例如藉由設計人員、製造商、經銷商、零售商、售後支援人員、終端使用者或其他者執行的預處理器(或其他功能性)回應於預期核心(core)及/或站點資源可用性以及使用者優先順序,以產生使執行階段之執行緒執行個體化、維護及執行緒指派最佳化的預設系統執行緒程式碼、連結參數等。
本發明之相關態樣提供執行如上文所論述而創建之執行緒(例如,預設系統執行緒)的模組、系統及方法。
本發明之另外其他相關態樣提供執行根據前述內容而編譯、連結、載入及/或調用之執行緒的模組、系統及方法。
本發明之又另外其他相關態樣提供預設系統執行緒或其他功能性確保在適當時間適當數目個執行緒之執行個體化(例如)以滿足服務品質要求的模組、系統及方法(例如,如上文所描述)。
本發明之其他相關態樣提供此類程式碼可由預處理器等插入至個別應用程式之各別原始程式碼中的此類方法。
具有JPEG2000位元平面等量磁碟區行(Stripe Column)編碼之通用目的處理器
本發明之其他態樣提供包括與一或多個暫存器通信耦接之算術邏輯或其他執行單元的處理器模組、系統及方法(例如,如上文所描述)。彼執行單元藉由編碼等量磁碟區行及將其儲存至暫存器中之一者(或多者)以用於JPEG2000 EBCOT(嵌入式最佳截斷區塊編碼)內之位元平面編碼來執行選定處理器層級指令。
本發明之相關態樣提供執行單元基於待編碼之行之指定位元及鄰近於其之位元產生經編碼等量磁碟區行的處理器模組、系統及方法(例如,如上文所描述)。
本發明之其他相關態樣提供執行單元自待編碼之行之四個位元及鄰近於其之位元產生經編碼等量磁碟區行的處理器模組、系統及方法(例如,如上文所描述)。
本發明之另外其他態樣提供執行單元回應於指令之執行而產生經編碼等量磁碟區行的處理器模組、系統及方法(例如,如上文所描述),除待編碼之行之位元及鄰近於其之位元之外,該指令亦指定待編碼之位元中之至少一者的當前編碼狀態。
本發明之又另外其他態樣提供待編碼之每一位元之編碼狀態用三個位元表示的處理器模組、系統及方法(例如,如上文所描述)。
本發明之另外其他態樣提供執行單元回應於指令之執行而產生經編碼等量磁碟區行的處理器模組、系統及方法(例如,如上文所描述),該指令指定包括有效性傳播遍次(significance propagation pass)(SP)、量值精細化遍次 (magnitude refinement pass)(MR)、清除遍次(cleanup pass)(CP)及組合式MR與CP遍次中之任一者的編碼遍次。
本發明之另外其他相關態樣提供執行單元選擇性地產生待編碼之位元中之至少一者的經更新編碼狀態且將其儲存至一或多個暫存器的處理器模組、系統及方法(例如,如上文所描述)。
具有JPEG2000二進位算術編碼查找之通用目的處理器
本發明之其他態樣提供算術邏輯或其他執行單元藉由將來自JPEG2000二進位算術編碼器查找表之值儲存至一或多個暫存器來執行選定處理器層級指令的處理器模組、系統及方法(例如,如上文所描述),該算術邏輯或其他執行單元與彼/彼等暫存器通信耦接。
本發明之相關態樣提供JPEG2000二進位算術編碼器查找表為Qe值及機率估計查找表的處理器模組、系統及方法(如上文所描述)。
本發明之相關態樣提供執行單元回應於此選定處理器層級指令而將來自此查找表之一或多個函數值儲存至該一或多個暫存器的處理器模組、系統及方法(如上文所描述),其中彼等函數係選自Qe值、NMPS、NLPS及SWITCH函數之群組。
在其他相關態樣中,本發明提供執行邏輯單元將該一或多個值儲存至該一或多個暫存器作為JPEG2000解碼或編碼指令序列之部分的處理器模組、系統及方法(例如,如上文所描述)。
具有算術運算轉置參數之通用目的處理器
本發明之其他態樣提供與一或多個暫存器通信耦接之算術邏輯或其他執行單元藉由以下步驟執行具有轉置之指定算術運算之選定處理器層級指令的處理器模組、系統及方法(例如,如上文所描述):對含於暫存器中之各別者中的一或多個指定運算元(例如,長字組、字組或位元組)執行指定算術運算以產生彼運算之結果及(例如)跨越多個指定暫存器以轉置格式儲存彼運算之結果。
在相關態樣中,本發明提供算術邏輯單元寫入結果(例如)作為四個鄰近暫存器之四分之一字組行或(以其他實例說明)八個鄰近暫存器之位元組行的處理器模組、系統及方法(例如,如上文所描述)。
在其他相關態樣中,本發明提供算術邏輯單元將結果(例如,長字組、字組或位元組)分成單獨部分(例如,字組、位元組或位元)且將其置於單獨暫存器中(例如,彼等暫存器中之每一者中之特定共同位元組、位元或其他位置處)的處理器模組、系統及方法(例如,如上文所描述)。
在其他相關態樣中,本發明提供選定算術運算為加法運算之處理器模組、系統及方法(例如,如上文所描述)。
在其他相關態樣中,本發明提供選定算術運算為減法運算之處理器模組、系統及方法(例如,如上文所描述)。
具有快取記憶體控制指令集及快取記憶體起始最佳化之通用目的處理器
本發明之其他態樣提供具有改良之快取記憶體操作的處 理器模組、系統及方法(例如,如上文所描述)。根據此類態樣之處理器模組(例如)可包括與一或多個暫存器以及快取記憶體通信耦接之算術邏輯或其他執行單元。與快取記憶體相關聯之功能性協同執行單元工作以回應於實行暫存器與快取記憶體之間的資料及/或指令交換之載入、儲存及其他請求而使對快取記憶體之利用變化。
本發明之相關態樣提供處理器模組、系統及方法(例如,如上文所描述):其中(與)快取記憶體(相關聯之前述功能性)回應於藉由執行單元執行之記憶體參考指令(除非自上下文另外顯而易見,否則在本文中與術語「記憶體參考指令」互換地使用之術語)而選擇性地使替換及經修改區塊回寫變化。
本發明之其他相關態樣提供(與)快取記憶體(相關聯之前述功能性)回應於此類記憶體參考指令而使「參考計數」之值變化的處理器模組、系統及方法(例如,如上文所描述),該參考計數選擇性地與經快取指令及/或資料相關聯。
本發明之另外其他態樣提供(與)快取記憶體(相關聯之前述功能性)回應於選定記憶體參考指令而迫使參考計數值為最低值以藉此確保對應快取記憶體項目將為待替換之下一者的處理器模組、系統及方法(例如,如上文所描述)。
本發明之相關態樣提供此類指令包括相應地影響參考計數之參數(例如,「再使用/未再使用快取記憶體提示」)的此類處理器模組、系統及方法。此等指令可包括(以實例 說明)載入、儲存、「填充」及「清空」指令中之任一者,且更特定而言,(以實例說明)可包括下列中之一或多者:LOAD(載入暫存器)、STORE(儲存至記憶體)、LOADPAIR(載入暫存器對)、STOREPAIR(儲存對至記憶體)、PREFETCH(預提取記憶體)、LOADPRED(載入述詞暫存器)、STOREPRED(儲存述詞暫存器)、EMPTY(清空記憶體),及FILL(填充記憶體)指令。
本發明之又另外其他態樣提供(與)快取記憶體(相關聯之前述功能性)協同執行單元工作以防止未頻繁存取之大記憶體陣列移除頻繁使用之其他快取記憶體項目的處理器模組、系統及方法(例如,如上文所描述)。
本發明之其他態樣提供功能性根據以下兩者使經快取資料/指令之替換及回寫變化且功能性更新的處理器模組、系統及方法:(a)獲取快取記憶體之存取權,及(b)此類資料藉由其他處理器模組利用之性質。此可結合記憶體存取指令執行參數及/或經由快取子系統之「自動」操作(及/或作業系統中之合作機制)來實行。
本發明之另外其他態樣提供包括新穎虛擬記憶體及有效地將所有記憶體作為快取記憶體來管理之記憶體系統架構特徵的處理器模組、系統及方法(例如,如上文所描述)。
本發明之其他態樣提供(與)快取記憶體(相關聯之前述功能性)協同執行單元工作以執行代表執行緒之請求操作的處理器模組、系統及方法(例如,如上文所描述)。在多處理器系統上,此等操作可橫跨至非本端第二層級(level2) 及第二層級擴展快取記憶體。
執行替換類似硬體組件管線之軟體組件管線的通用目的處理器及數位資料處理系統
本發明之其他態樣提供執行替換通常由先前技術器件使用之類型的類似硬體組件管線之軟體組件管線的處理器模組、系統及方法(例如,如上文所描述)。
因此,例如,根據本發明之處理器可執行經管線化以用於視訊處理且包括下列之軟體組件:H.264解碼器軟體模組、純量及雜訊減小軟體模組、色彩校正軟體模組、圖框速率控制軟體模組,該等模組皆替換類似硬體管線,亦即,包括充當H.264解碼之系統控制器之半導體晶片的一硬體管線,該半導體晶片經管線連接至充當純量及雜訊減小模組之半導體晶片,經管線連接至起作用以用於色彩校正之半導體晶片且進一步經管線連接至充當圖框速率控制器之半導體晶片。
本發明之相關態樣提供處理模組將管線式軟體組件作為單獨各別執行緒來執行的此類數位資料處理系統及方法。
本發明之其他相關態樣提供包含各自執行替換類似硬體組件之軟體組件管線之複數個處理模組的數位資料處理系統及方法(例如,如上文所描述)。
本發明之另外其他相關態樣提供定義管線(例如,用於視訊處理)之不同各別組件的複數個執行緒中之至少一者在不同於定義彼等其他各別組件之一或多個執行緒之處理模組上執行的數位資料處理系統及方法(例如,如上文所 描述)。
本發明之又另外其他相關態樣提供處理器模組中之至少一者包括算術邏輯或其他執行單元且進一步包括複數個快取記憶體層級的數位資料處理系統及方法(例如,如上文所描述),該等快取記憶體層級中之至少一者儲存執行單元所共有之一些電路資料(亦即,晶片上)且儲存執行單元所共有之其他電路外資訊(亦即,晶片外)。
本發明之又另外其他態樣提供處理模組中之複數者包括如上文所描述之快取記憶體層級的數位資料處理系統及方法(例如,如上文所描述)。根據本發明之相關態樣,彼等各別處理器之快取記憶體層級可管理儲存及存取或整個數位資料處理系統所共有之資料及/或指令。
根據本發明之處理模組、數位資料處理系統及方法的優勢(連同其他優勢)為其使單一處理器能夠處置行動產品、消費型產品及/或其他產品之所有應用程式、影像、信號及網路處理(以實例說明),從而導致較低成本及功率消耗。另一優勢為其避免設計、製造、裝配及測試硬體管線之重複出現之複雜性,以及寫入此類硬體管線式器件之軟體的重複出現之複雜性。
本發明之此等及其他態樣在以下論述及圖式中為顯而易見的。
參看圖式可獲得對本發明之更透徹理解。
概述
圖1描述根據本發明之一個實踐的包括處理器模組(一般在本文中別處稱為「SEP」及/或「核心」)12、14、16之系統10。此等模組中之每一者一般以揭示為(例如)分別題為「General Purpose Embedded Processor」及「Virtual Processor Methods and Apparatus With Unified Event Notification and Consumer-Producer Memory Operations」之美國專利US 7,685,607及US 7,653,912的圖1及隨附本文之元件5的「處理器模組」之方式來建構、操作及利用,且該等模組之其他細節揭示於彼等兩個專利之圖2至圖26及隨附本文中,該等圖及本文之教示以引用之方式併入本文中,且US 7,685,607之複本在此藉由實例作為附錄A來申請,如根據本文件中之教示所調適。
因此,例如,所說明核心12至16分別包括功能單元12A至16A,該等功能單元一般以揭示為(以非限制性實例說明)前述美國專利第7,685,607號及US 7,653,912之圖1及隨附本文之元件30至38的「執行單元」(或功能單元)之方式來建構、操作及利用,且該等功能單元之其他細節揭示於(以非限制性實例說明)彼等兩個專利之圖13、圖16(分支單元)、圖17(記憶體單元)、圖20、圖21至圖22(整數及比較單元)、圖23A至圖23B(浮點單元)及隨附本文中,該等圖及本文(且與功能或執行單元有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。在圖式中針對算術邏輯單元將功能單元12A至16A標記為「ALU」,但該等功能單元可替代地或另外伺服其他功能 (例如,分支、記憶體等)。
以其他實例說明,核心12至16分別包括執行緒處理單元12B至16B,該等執行緒處理單元一般以揭示為(以非限制性實例說明)前述美國專利第7,685,607號及US 7,653,912之圖1及隨附本文之元件10至20的「執行緒處理單元(TPU)」之方式來建構、操作及利用,且該等執行緒處理單元之其他細節揭示於(以非限制性實例說明)彼等兩個專利之圖3、圖9、圖10、圖13及隨附本文中,該等圖及本文(且與執行緒處理單元或TPU有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。
與彼等教示一致,各別核心12至16可具有一或多個TPU,且每核心之彼等TPU的數目可不同(此處例如,核心12具有三個TPU 12B;核心14具有兩個TPU 14B;且核心16具有四個TPU 16B)。此外,儘管圖式展示具有三個核心12至16之系統10,但其他實施例可具有更大或更小數目個核心。
以其他實例說明,核心12至16包括各別事件查找表12C至16C,該等事件查找表一般以揭示為(以非限制性實例說明)前述美國專利第7,685,607號及US 7,653,912之圖4及隨附本文中之元件42的「事件至執行緒查找表」(亦稱為「事件表」或「執行緒查找表」或其類似者)之方式來建構、操作及利用,該等圖及本文(且與「事件至執行緒查找表」有關之其他者)之教示以引用之方式併入本文中(如根據本文件中之教示所調適),(例如)以提供與在處理器邊 界內或跨越處理器邊界(亦即,在其他處理器上)執行之執行緒匹配的事件。
為便利起見,將表12C至16C展示為圖式之每一核心內的單一結構;實務上,可在核心之間及/或當中在邏輯上、功能上及/或實體上整體或部分地共用該等表(如藉由虛線所指示),且因此在本文中可將該等表稱為「虛擬」事件查找表、「虛擬」事件至執行緒查找表等。此外,彼等表12C至16C可實施為單一階層表之部分,該階層表可在下文所論述類型之「分區」內之合作處理器模組當中共用且以此處所論述之新穎虛擬記憶體及記憶體系統架構的方式來操作。
以其他實例說明,核心12至16包括各別快取記憶體12D至16D,該等快取記憶體一般以分別揭示為(以非限制性實例說明)前述美國專利第7,685,607號及US 7,653,912之圖1及隨附本文中之元件22、24、26(26a、26b)的「指令快取記憶體」、「資料快取記憶體」、「第一層級(L1)」快取記憶體、「第二層級(L2)」快取記憶體及/或「第二層級擴展(L2E)」快取記憶體之方式來建構、操作及利用,且該等快取記憶體之其他細節揭示於(以非限制性實例說明)彼等兩個專利之圖5、圖6、圖7、圖8、圖10、圖11、圖12、圖13、圖18、圖19及隨附本文中,該等圖及本文(且與指令、資料及其他快取記憶體有關之其他者)之教示以引用之方式併入本文中(如根據本文件中之教示所調適),(例如)以支援新穎虛擬記憶體及記憶體系統架構特徵,其中 即使晶片外記憶體利用DDR DRAM或其他者,但所有記憶體仍有效地作為快取記憶體來管理。
為便利起見,將快取記憶體12D至16D展示為圖式之每一核心內的單一結構。實務上,彼等快取記憶體中之一或多者可構成每一各別核心內之一或多個結構,該等結構在邏輯上、功能上及/或實體上彼此分離及/或在核心之間及/或當中在邏輯上、功能上及/或實體上整體或部分地共用,如藉由連接快取記憶體12D至16D之虛線所指示。(因此,快取記憶體中之一或多者在本文中別處被稱為「虛擬」指令及/或資料快取記憶體。)舉例而言,如圖2中所展示,每一核心可具有其自身的各別L1資料快取記憶體及L1指令快取記憶體,但可與其他核心共用L2快取記憶體及L2擴展快取記憶體。
以其他實例說明,核心12至16包括各別暫存器12E至16E,該等暫存器一般以揭示於(以非限制性實例說明)前述美國專利第7,685,607號及US 7,653,912之圖9及圖20以及隨附本文中的通用目的暫存器、述詞暫存器及控制暫存器之方式來建構、操作及利用,該等圖及本文(且與處理器模組中所使用之暫存器有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。
此外,替代或除耦接至如展示於(以非限制性實例說明)圖31及本文中別處所論述之實施例中的晶片外DRAM或其他此類系統記憶體之外,所說明核心12至16中之一或多者可包括晶片上DRAM或其他「系統記憶體」(如本文中別 處)。另外,彼等核心中之一或多者可耦接至再次(例如)如圖31中展示之快閃記憶體(其可為晶片上記憶體,但更通常為晶片外記憶體),或其他掛接式儲存器(未圖示)。各別核心至此類DRAM(或其他系統記憶體)及快閃記憶體(或其他掛接式儲存器)之耦接可以此項技術中已知的習知方式實行,如根據本文件中之教示所調適。
各別核心之所說明元件(例如,12A至12G、14A至14G、16A至16G)經耦接以用於彼此直接及/或經由硬體及/或軟體邏輯間接以及與其他核心(例如,14、16)通信,如以下論述及其他圖式中顯而易見的。為簡單起見,此耦接未展示於圖1中。因此,例如,每一核心12至16之算術邏輯單元、執行緒處理單元、虛擬事件查找表、虛擬指令及資料快取記憶體可經耦接以用於以分別揭示於前述以引用方式併入之美國專利第7,685,607號及US 7,653,912之(以非限制性實例說明)前述諸圖及本文中的「執行單元」(或「功能單元」)、「執行緒處理單元(TPU)」、「事件至執行緒查找表」及「指令快取記憶體」/「資料快取記憶體」之方式與其各別核心12至16之其他元件及與系統10之其他元件通信,如根據本文件中之教示所調適。
快取記憶體控制式記憶體系統-介紹
所說明實施例提供系統10,其中核心12至16利用快取記憶體控制式系統記憶體(例如,形成系統之所有記憶體儲存器件的基於快取記憶體之管理,不管是作為快取記憶體子系統內之快取記憶體抑或諸如快閃記憶體、掛接式磁碟 機或其他者之附接式實體記憶體)。概況而言,彼系統可據稱包括一或多個節點,此處為處理器模組或核心12至16(但在其他實施例中為其他邏輯元件),該一或多個節點包括如展示於(例如)圖31中及本文中別處所論述之快取記憶體、實體記憶體(例如,附接式快閃磁碟機或其他掛接式儲存器件)或其他記憶體(統稱為「系統記憶體」)或以其他方式耦接至該等記憶體。該等節點12至16(或在一些實施例中,其中之至少一者)提供快取記憶體系統,其儲存最近由各別節點存取(及/或預期存取)之資料(及在所說明實施例中較佳為指令)連同指定各別資料(及/或指令)之位址及狀態的標籤(例如,已修改、參考計數等)。較佳根據節點中之一或多者及較佳所有節點所共有之「系統」定址方案將彼等快取記憶體及更一般「系統記憶體」中之資料(及指令)作為整體來參考。
在所說明實施例中,以各自(例如)如展示於本文件中之圖20中般組織之多個階層層級(例如,第一層級快取記憶體、第二層級快取記憶體等)來組織為簡單起見而在本文件中之圖1中展示為單式各別元件12D至16D之快取記憶體。
彼等快取記憶體可操作為支援新穎虛擬記憶體系統架構之虛擬指令及資料快取記憶體,在該架構中,即使(例如)晶片外記憶體可利用DDR DRAM,但所有系統記憶體(不管呈快取記憶體、實體記憶體抑或其他記憶體形式)仍有效地作為快取記憶體來管理。因此,例如,可以與揭示於 (以實例說明)Kendall Square Research Corporation之專利公開案中之平行方式在快取記憶體與其他系統記憶體(例如,實體記憶體)當中及之間複製、更新及移動指令及資料,該等專利公開案包括US 5,055,999、US 5,341,483及US 5,297,265,其包括(以實例說明)US 5,055,999之圖2A、圖2B、圖3、圖6A至圖7D及隨附本文,該等圖及本文(且與資料移動、複製及更新有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。前述情形類似地適用於擴展標籤,其亦可以類似方式在快取記憶體與其他系統記憶體當中及之間複製、更新及移動。
所說明實施例之系統記憶體儲存可類似於快取記憶體標籤而由節點、記憶體系統及/或作業系統使用的額外(或「擴展」)標籤。除指定各別資料(及/或指令)之系統位址及狀態之外,擴展標籤亦指定彼等資料在系統記憶體中之實體位址。因而,其促進將系統位址轉譯至實體位址,(例如)以用於在實體(或其他系統)記憶體與快取記憶體系統(亦稱為「快取子系統」、「快取記憶體子系統」等)之間移動資料(及/或指令)。
在節點之快取記憶體系統以及記憶體系統中快取所說明系統之選定擴展標籤。此等選定擴展標籤包括(例如)用於藉由彼等節點在其各別快取記憶體系統內之彼資料之快取「未命中」後最近存取(或預期存取)的資料之彼等擴展標籤。在於本端快取未命中(亦即,其自身之快取記憶體系統內的快取未命中)後存取實體(或其他系統記憶體)以取得 資料之前,此類節點可(例如)沿著匯流排、網路或其他媒體(例如,圖31中所展示及本文中別處所論述之環狀互連件)將對彼資料之請求用信號傳輸至與其在匯流排、網路或其他媒體上耦接的節點。更新此類資料或其對應標籤之節點可類似地經由互連件向其他節點及/或記憶體系統用信號傳輸更新。
返回參看圖1,所說明核心12至16可形成(例如)容納於大型電腦、迷你電腦、工作站、桌上型電腦、膝上型電腦等之通用目的計算系統的部分。其同樣可嵌入於諸如(以實例說明)電視、蜂巢式電話或個人數位助理之消費型、商業或其他器件(未圖示)中,且可經由各種周邊介面及/或其他邏輯(此處未圖示)與此類器件互動。
體現根據所說明實施例之處理器及相關技術(該處理器及相關技術在本文中有時藉由助憶「SEP」及/或藉由名稱「Paneve處理器」、「Paneve SDP」或其類似者來提及)的單一或多處理器系統經最佳化以用於具有大資料處理要求之應用程式,例如,具有高度媒體處理要求之即時嵌入式應用程式。在多個態樣中,SEP為通用目的的:
‧軟體定義之處理而非用於特殊目的功能之專用硬體
o標準語言及類似gcc之編譯器
‧類似Linux之標準OS,不需要即時OS
‧大範圍媒體及通用目的應用程式之高效能。
‧充分利用平行性以按比例調整應用程式及關於現今及未來實施之效能。SEP經設計以按比例調整單執行緒效 能、執行緒平行效能及多處理器效能
‧軟體演算法之增益高效率及基礎硬體能力之利用。
SEP之產品及應用程式的類型無限制,但為簡單起見且不失一般性,此處論述之焦點為行動產品。此類應用程式為網路及網際網路感知的,且可包括(以非限制性實例說明):
‧通用網路連接顯示器
‧網路連接資訊設備
‧具有語音及圖形使用者介面與諸如即時語音辨識之能力的PDA及個人知識導覽器(PKN)、攝影(靜態、視訊)記錄器、MP3播放器、遊戲機、導航及廣播數位視訊(MP4?)。此器件可能看起來不像PDA。
‧與其他能力整合之G3行動電話。
‧包括視訊伺服器、視訊記錄器及MP3伺服器之音訊及視訊設備。
‧通用網路感知設備
以非限制性實例說明,此等例示性目標應用程式為固有平行的。另外,其具有或包括下列中之一或多者:
‧高計算要求
‧即時應用要求
‧多媒體應用
‧語音及圖形使用者介面
‧智慧
‧輔助使用者之背景任務(類似智慧型代理程式)
‧互動性質
‧透通網際網路、網路連接及同級間(P2P存取)
‧同時執行以提供器件/使用者功能之多個應用程式。
一種類別之此類目標應用程式為多媒體及使用者介面驅動之應用程式,其在多任務及多處理層級(包括同級間)處為固有平行的。
在先前章節中及下文論述SEP之架構、處理及其他態樣連同支援彼等特徵之結構及機制。將瞭解,在說明中所展示及此處論述之處理器、系統及方法為本發明之實例,且併有關於此處彼等處理器、系統及方法之變體的其他實施例亦由本發明涵蓋。
所說明SEP實施例直接支援64位元位址、64/32/18/8位元資料類型、大的通用目的暫存器組及通用目的述詞暫存器組。在較佳實施例(諸如此處所說明)中,對指令進行預測以使編譯器能夠消除許多條件分支。指令編碼支援多執行緒及動態分散式共用執行環境特徵。
SEP同時多執行緒提供靈活多指令發佈。經由同時執行多個處理程序或執行緒(統稱為「執行緒」)及消除記憶體未命中之無效率及記憶體/分支相依性來達成執行單元之高利用率。高利用率得到高效能及較低功率消耗。
在無OS介入之情況下直接藉由對應執行緒處置事件。此情形實現利用類似Linux之標準OS的即時能力。不需要即時OS。
所說明SEP實施例支援廣泛範圍之平行性以動態地獲得 廣泛混合之應用程式之平行性的正確範圍及粒度,如以下所論述。
‧指令內之平行性
o指令集均一地使單倍64位元、雙倍32位元、四倍16位元及八倍8位元運算能夠支援高效能影像處理、視訊處理、音訊處理、網路處理及DSP應用程式
‧單一執行緒內之多指令執行
o編譯器指定在可在單一循環期間執行之單一執行緒內分組的指令。指令編碼直接支援分組之指定。所說明SEP架構實現跨越實施(一或多個整數、浮點、比較、記憶體及分支類別(branch class))之可按比例調整指令層級平行性。
‧同時多執行緒
o SEP實施同時執行來自多個執行緒之一或多個指令的能力。SEP在每一循環排程來自多個執行緒之一或多個指令以最佳地利用可用執行單元資源。SEP多執行緒使多個應用程式及處理執行緒能夠在低延時、低功率消耗、高效能及減小之實施複雜性下同時操作及交互操作。參見本文件中之「通用化事件及多執行緒」。
‧通用化事件架構
o SEP提供實現有效多執行緒、多處理器及分散式P2P環境之機制:統一事件機制及軟體透通消費者生產者記憶體能力。
o類似Linux之標準OS之即時效能的最大降級為所有 中斷及事件必須在由實際事件或應用程式事件處置常式處置之前由內核(kernel)處置。此情形降低類似音訊及視訊之即時應用程式的品質。每個SEP事件在無內核介入之情況下以透通方式喚醒適當執行緒。統一事件使所有事件(HW中斷、SW事件及其他事件)能夠直接由使用者層級執行緒處置,從而實際上消除所有OS內核延時。因此,顯著改良了標準OS之即時效能。
o在執行緒或處理器(例如,用於影像處理之多個步驟)之間實施基於自然資料之處理流程的同步額外負荷及程式化難度為極高的。SEP記憶體指令使執行緒能夠等待資料可用性且在另一執行緒指示資料可用時以透通方式喚醒。軟體透通消費者-生產者記憶體操作在有效資料定向之消費者-生產者程式化樣式下實現較高效能之精巧細微的執行緒層級平行性。
‧單一處理器替換多個嵌入式處理器
o大多數嵌入式系統需要單獨特殊目的處理器(或專用硬體資源)以用於應用程式、影像、信號及網路處理。又,多個特殊目的處理器之軟體開發複雜性為高的。一般而言,多個嵌入式處理器增加最終產品之成本及功率消耗。
o多執行緒及通用化事件架構使單一SEP處理器能夠處置行動產品之所有應用程式、影像、信號及網路處理,從而導致較低成本及功率消耗。
‧基於快取記憶體之記憶體系統
o在較佳實施例(諸如此處所說明)中,將所有系統記憶體作為快取記憶體來管理。此情形使有效機制能夠管理跨越單一及多個行動器件之大稀疏位址及記憶體空間。此情形亦消除來自第一層級快取記憶體之位址轉譯瓶頸及TLB未命中處罰。跨越多個器件之SEP的有效操作為整合特徵(並非事後整合)。
‧動態分散式共用執行環境(遠端P2P技術)
o一般而言,OS層級執行緒及應用程式執行緒不能跨越不同器件以透通方式執行。通用化事件、消費者-生產者記憶體、多執行緒實現跨越處理器之無縫分散式共用執行環境,包括:分散式共用記憶體/物件、分散式共用事件及分散式共用執行。此情形使行動器件能夠自動卸載工作以改良效能及達成較低功率消耗。
該架構支援可按比例調整性,包括:
‧藉由額外功能單元或可程式化功能單元之指令擴展
‧增加功能單元之數目會改良個別執行緒之效能,更顯著改良同時執行之執行緒的效能。
‧多處理器-將額外處理器添加至SEP晶片。
‧快取記憶體及記憶體大小之增加。
‧半導體技術之改良。
通用化事件及多執行緒
通用化SEP事件及多執行緒模型為既唯一又強大的。執行緒為可設定狀態之完全獨立控制流。執行緒經由共用記憶體(類似共用記憶體多處理器)或經由事件通信。SEP具 有使記憶體效能、經由記憶體互動之執行緒的效能及事件信號傳輸效能最佳化的特殊行為及指令。SEP事件機制使器件(或軟體)事件(類似中斷)能夠直接用信號傳輸至經指定以處置事件之執行緒而無需OS互動。
通用化多執行緒模型跨越一或多個實體處理器無縫地工作。每一處理器12、14實施在任何給定瞬時繫結至一個執行緒之一或多個執行緒處理單元(TPU)12B、14B。執行緒處理單元類似虛擬處理器來行動且同時執行。如圖式中所展示,在單一處理器上執行之TPU通常共用第一層級(L1指令及L1資料)及第二層級(L2)快取記憶體(亦可與其他處理器之TPU共用該等快取記憶體)。其共用快取記憶體之事實為軟體透通的,因此多個執行緒可以透通方式在單一或多個處理器上執行。
SEP處理器之每一實施具有某一數目個(例如,一或多個)執行緒處理單元(TPU)及某一數目個執行(或功能)單元。每一TPU含有每一執行緒之完整狀態,包括通用暫存器、述詞暫存器、控制暫存器及位址轉譯。
前述內容可藉由參看圖2來瞭解,圖2描繪包含圖1中所展示類型且此處標記為12、14之兩個處理器模組的系統10'。如上文所論述,此等包括各別功能單元12A至14A、執行緒處理單元12B至14B及各別快取記憶體12D至14D,此處將該等快取記憶體配置為用於每一模組之單獨各別第一層級指令及資料快取記憶體及配置為共用第二層級快取記憶體及第二層級擴展快取記憶體(如所展示)。此類共用 可(例如)藉由介面邏輯來實行,一方面,該介面邏輯耦接至各別模組12至14,且更特定而言,耦接至其各別L1快取記憶體電路,且另一方面,該介面邏輯耦接至分別構成L2及L2E快取記憶體之晶片上(例如,在L2快取記憶體狀況下)及/或晶片外(例如,在L2E快取記憶體狀況下)記憶體。
圖2中所展示之處理器模組另外包括此處展示為與各別執行緒處理單元12B至14B相關聯之各別位址轉譯功能性12G至14G,其以類似於(以非限制性實例說明)結合皆屬於前述美國專利第7,685,607號及US 7,653,912之圖1之TPU元件10至20,結合圖5及隨附本文且結合圖13及隨附本文之分支單元38所揭示之方式的方式來提供位址轉譯,該等圖及本文(且與位址轉譯有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。
彼等處理器模組另外包括各別啟動及管線控制單元12F至14F,該等單元一般以揭示為(以非限制性實例說明)前述美國專利第7,685,607號及US 7,653,912之分別在圖1及圖13至圖14以及隨附本文中之元件28及130的「啟動及管線控制」或「管線控制」之方式來建構、操作及利用,該等圖及本文(且與啟動及管線控制有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。
在每一循環期間,分派器排程來自執行緒處理單元中之處於「執行」狀態下之執行緒的指令以便使執行單元之利用率最佳化。一般而言,在具有少量作用中執行緒之情況下,利用率可通常極高,通常>80-90%。在每一循環期 間,SEP基於循環法排程對執行單元之TPU請求(基於指令)。在每一循環,循環法之起點於TPU當中輪換(rotate)以確保公平性。可基於個別執行緒調整執行緒優先權以提高或降低個別執行緒之優先權,從而使針對彼執行緒分派指令之相對速率存在偏差。
跨越實施,執行緒內或跨越執行緒之指令平行性的量可基於皆對軟體透通之執行單元、TPU及處理器之數目而變化。
對比超純量對SEP多執行緒架構,在超純量處理器中,基於程式內之實際平行性及相依性動態地排程來自單一執行緒之指令以在可用執行單元上執行。此情形意謂:平均而言,大多數執行單元在每一循環期間不可利用。隨著執行單元之數目增加,利用率百分比通常降低。又,執行單元在記憶體系統及分支預測未命中/等待期間為閒置的。相比之下,來自多個執行緒(以不同色彩展示)之多執行緒SEP指令同時執行。SEP在每一循環排程來自多個執行緒之指令以最佳地利用可用執行單元資源。因此,執行單元利用率及總效能較高,完全對軟體透通。
每處理器支援多個作用中執行緒(虛擬處理器)之基礎原理為:
‧功能能力
o使單一多執行緒處理器能夠替換多個應用程式、媒體、信號處理及網路處理器
o使對應於應用程式、影像、信號處理及網路連接 之多個執行緒能夠在低延時及高效能下同時操作及交互操作。上下文切換及介接額外負荷經最小化。即使在類似MP4解碼之單一影像處理應用程式內,執行緒仍可易於以管線方式同時操作從而(例如)在正構成圖框n之同時準備好圖框n+1之資料。
‧效能
o藉由更好地利用功能單元及耐受記憶體及其他事件延時來增加個別處理器之效能。對於支援多達4至6個同時執行之執行緒,通常獲得3倍或3倍以上之效能增加。功率消耗及晶粒大小增加為可忽略的,使得每單位功率效能及價格效能得到改良。
o藉由使另一執行緒在分支及快取未命中期間執行而減少歸因於此等事件之效能降級
o消除大多數上下文切換額外負荷
o降低即時活動之延時
o通用高效能事件模型。
‧實施
o管線及總設計之簡化
o無複雜分支預測-另一執行緒可執行!!
o降低單一處理器晶片對多個處理器晶片之成本。
o降低消除其他複雜性時之成本。
o改良每單位功率效能。
執行緒狀態
藉由執行緒狀態暫存器(以下結合「控制暫存器」來論 述)之執行緒啟用欄位來停用及啟用執行緒。當停用執行緒時:不改變執行緒狀態,不分派指令且未辨識到事件。當停用執行緒時,系統軟體可藉由恢復或儲存執行緒狀態而將執行緒載入至TPU中或自TPU卸載。當啟用執行緒時:可分派指令,可辨識到事件且可基於指令完成及/或事件而改變執行緒狀態。
圖3中說明執行緒狀態及轉變。此等執行緒狀態及轉變包括:
執行:執行緒上下文載入至TPU中且當前正執行指令。
o當記憶體指令必須等待快取記憶體以完成例如未命中或未清空/填滿(生產者-消費者記憶體)之操作時,執行緒轉變至等待。
o當已執行事件指令時,執行緒轉變至閒置。
等待:執行緒上下文載入至TPU中但當前不執行指令。當執行緒等待之以下事件發生時,其轉變至執行:
o快取記憶體操作完成,使得將允許記憶體指令繼續進行。
等待_IO:執行緒上下文載入至TPU中但當前不執行指令。當以下事件中之一者發生時,執行緒轉變至執行:
o硬體或軟體事件。
圖4將指令執行、執行緒及執行緒狀態繫接在一起。分派器分派來自處於「執行」狀態下之執行緒的指令。指令經淘汰-完成及更新執行緒狀態(類似通用目的(gp)暫存 器);抑或轉變至等待,此係因為指令不能完成(又因為其被封鎖)。指令封鎖之實例為快取未命中。當指令變成未封鎖時,執行緒自等待轉變至執行狀態,且分派器自彼處接管。封鎖之其他記憶體指令的實例為清空及填滿。
接下來介紹可在閒置或執行狀態下發生之非同步信號(稱作事件)。
事件
事件為至執行緒之非同步信號。SEP事件為唯一的,此係因為任何類型之事件可直接用信號傳輸任何執行緒、使用者或系統特殊權限而無需藉由OS處理。在所有其他系統中,將中斷用信號傳輸至OS,OS接著將信號分派至適當處理程序或執行緒。此情形將OS之延時及用信號傳輸另一執行緒之延時添加至中斷延時。此情形通常需要高度調諧之即時OS及用於應用程式之進階軟體調諧。對於SEP,由於事件直接遞送至執行緒,因此延時實際上為零,此係因為執行緒可立即作出回應且不涉及OS。標準OS為及無應用程式調諧為必要的。
圖5中展示兩種類型之SEP事件,其描繪根據本發明之處理器模組(例如,12至16)中的事件繫結及處理。更特定而言,彼圖式說明在所說明實施例之核心12至16中提供的功能性及該等核心用以處理器件事件及軟體事件且將該等事件繫結至所載入執行緒(例如,在同一核心內及/或在一些實施例中跨越核心,如本文中別處所描述)的方式。每一實體事件或中斷表示為實體事件編號(16個位元)。事件表 將實體事件編號映射至虛擬執行緒編號(16個位元)。若實施具有一個以上處理器,則事件表亦包括八位元處理器編號。事件至執行緒遞送機制將事件遞送至經映射執行緒,如(以非限制性實例說明)結合前述美國專利第7,685,607號及US 7,653,912之圖4及隨附本文的元件40至44所揭示,該等圖及本文(且與事件至執行緒遞送有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。接著將事件排入佇列。每一TPU對應於如在其對應ID暫存器中指定之虛擬執行緒編號。比較事件之虛擬執行緒編號與每一TPU之編號。若存在匹配,則將事件用信號傳輸至對應TPU及執行緒。若不存在匹配,則將事件用信號傳輸至TPU零中之預設系統執行緒。
藉由所說明實施例之核心12至16進行的記憶體事件至執行緒之投送係用(以非限制性實例說明)結合前述美國專利第7,685,607號及US 7,653,912之圖4及隨附本文的元件44、50所揭示之方式處置,該等圖及本文(且與記憶體事件處理有關之其他者)之教示以引用之方式併入本文中,如根據本文件中之教示所調適。
為了處理事件,執行緒採取以下動作。若執行緒處於等待狀態,則執行緒等待記憶體事件完成且執行緒將立即辨識該事件。若執行緒處於等待_IO狀態,則執行緒等待IO器件操作完成且將立即辨識該事件。若執行緒處於執行狀態,則執行緒將停止分派指令且立即辨識該事件。
在辨識該事件後,對應執行緒將指令指標之當前值儲存 至系統或應用程式例外狀況IP暫存器中,且將事件編號及事件狀態儲存至系統或應用程式例外狀況狀態暫存器中。基於當前特殊權限等級來利用系統或應用程式暫存器。將特殊權限等級設定為系統,且重設應用程式陷阱啟用。若先前特殊權限等級為系統,則亦重設系統陷阱啟用。指令指標接著基於先前特殊權限等級而載入有例外狀況目標位址(表8)且執行自此指令開始。
其他執行緒之操作不受事件影響。
執行緒以如下兩個特殊權限等級來執行:系統及應用程式。系統執行緒可存取其執行緒及處理器內之所有其他執行緒的所有狀態。應用程式執行緒可僅存取對應於其之無特殊權限狀態。在重設後,TPU 0以系統特殊權限執行執行緒0。在藉由系統特殊權限執行緒創建其他執行緒時,可針對特殊權限等級來組態該等其他執行緒。
用於硬體及軟體事件之事件格式
實例事件操作 重設事件處置 重設事件引起以下動作:
‧清除事件處置佇列。
‧用於每一執行緒之執行緒狀態暫存器具有如指定之重設行為。系統例外狀況狀態暫存器將指示重設。執行緒0將自虛擬位址0×0開始執行。因為位址轉譯在重設時停用,所以此位址亦將為系統位址0×0。始終將memcore組態為核心0,因此memcore處之0×0位移將定址快閃記憶體之位址0×0。參見本文件中之「虛擬記憶體及記憶體系統」中之章節「定址」及「標準器件暫存器」。
‧所有其他執行緒在重設時被停用。
‧不需要重設後之快閃存取的組態。直接由處理器位址存取之快閃記憶體未經快取且直接置於執行緒指令佇列中。
‧可快取位址空間必須直至L1指令、L1資料及L2快取記憶體經初始化才被存取。應僅利用單一執行緒,直至快取記憶體初始化為止。L1快取記憶體可經由指令或資料第一層級快取記憶體標籤指標(ICTP、DCTP)及指令或資料第一層級快取記憶體標籤項目(ICTE、DCTE)控制暫存器來初始化。標籤格式提供於本文件中之「虛擬記憶體及記憶體系統」的快取記憶體組織及項目描述章節中。L2快取記憶體可經由描述於本文件中之「虛擬記憶體及記憶體系 統」的L2標準器件暫存器及格式來初始化
執行緒事件處置
‧重設事件處置必須組態事件佇列。獨立於核心數目,每晶片存在單一事件佇列。事件佇列與核心0相關聯。
‧對於每一事件類型,將一項目置於事件佇列查找表中。將事件佇列查找表中不具有值之所有事件排入佇列至執行緒0。
‧每當載入執行緒或自執行緒處理單元(硬體執行緒)卸載執行緒時,應更新對應事件佇列查找表項目。序列應為:
o自事件佇列查找表移除項目
o停用執行緒,卸載執行緒。應注意,若在移除項目與停用執行緒之間的窗中用信號傳輸事件,則將事件呈現給執行緒0以供採取動作。
o將新項目添加至事件佇列查找表
o將新執行緒載入至TPU中。
‧操作對於單一執行緒及多個執行緒以及TPU為相同的
事件至執行緒之動態指派
參看圖38,根據本發明之一些實踐的SEP處理器模組(例如,12)准許器件及/或軟體(例如,應用程式、處理程序及/或執行緒)向(例如)預設系統執行緒或其他邏輯註冊,以識別其需要之事件處理服務及/或其提供之事件處置能力。彼執行緒或其他邏輯(例如,下文事件表管理器106')持續地使彼等要求(或「需要」)與能力匹配,且基於整個 系統10之要求及能力更新事件至執行緒查找表以反映事件至執行緒之最佳映射,使得在彼等事件發生時,可使用該表(例如,藉由事件至執行緒遞送機制,如本文件中之章節「事件」中所論述)將事件映射及投送至各別虛擬執行緒且用信號傳輸正執行該等事件之TPU。除使器件及/或軟體向預設系統執行緒或其他邏輯註冊之需要及能力彼此匹配之外,預設系統執行緒或其他邏輯可使經註冊需要與其已知的其他能力(不管是否註冊)匹配,且類似地可使經註冊能力與其已知之其他需要(再次,不管自身是否註冊)匹配。
此情形可優於僅基於「硬編碼」或固定指派使事件與執行緒匹配。對於軟體及硬體環境可合理地由軟體開發人員預測之應用,彼等配置綽綽有餘。然而,其不能最好地伺服動態改變系統之處理及輸送量需求,例如,在動態改變系統中,具備處理能力之器件(例如,配備有SEP處理模組或其他模組之彼等器件)變得彼此且與其他需求處理之軟體或器件通信耦接或脫離通信耦接)。以非限制性實例說明,其為用於遊戲應用之配備有SEP核心的電話。當該電話受到隔離時,其處理其自身上之所有遊戲執行緒(以及電話等執行緒)。然而,若該電話進入至另一配備有核心之器件的範圍中,則其將適當軟體及硬體中斷處理卸下至彼另一器件。
參看圖38,此項技術中已知(但如根據本文件中之教示所調適)之類型的預處理器將事件至執行緒查找表管理程 式碼插入至將由系統10執行之應用程式之原始程式碼(或中間程式碼或其他程式碼)、程式庫程式碼、驅動程式等中,事件至執行緒查找表管理程式碼在執行(例如,在解譯後及/或編譯、連結等之後)後即使經執行程式碼註冊其將需要之事件處理服務及/或其將在執行階段提供之能力。彼事件至執行緒查找表管理程式碼可基於由開發人員(以及潛在地由製造商、經銷商、零售商、售後支援人員、終端使用者或其他者)供應之指示詞以反映下列中之一或多者:各別原始程式碼、中間程式碼或其他程式碼的以及關於預期執行環境及彼環境內潛在可用之具有潛在匹配能力(或要求)之器件或軟體的實際或預期要求(或能力)。
該圖式藉由通常將預期需要事件處理服務之三個應用程式100至104之原始程式碼來說明此情形;但彼軟體及其他軟體可替代地或另外提供事件處置能力,例如,如在可具有用於來自其他軟體(例如,高層級應用程式)之服務事件或器件之服務事件的事件處置能力之編碼解碼器、特殊目的程式庫常式等的狀況下。如所展示,藉由預處理器處理例示性應用程式100至104以分別產生各自具有由預處理器插入之事件至執行緒查找表管理程式碼的「經預處理應用程式」100'至104'。
預處理器可類似地將事件至執行緒查找表管理程式碼插入至器件驅動程式碼或其類似者(例如,器件驅動程式之原始程式碼、中間程式碼或其他程式碼),該事件至執行 緒查找表管理程式碼詳細描述其各別器件將需要之事件處理服務及/或彼等器件在插入於系統10中後將提供之能力。
或者或除基於由開發人員(製造商、經銷商、零售商、售後支援人員、終端使用者或其他者)供應之指示詞之外,事件至執行緒查找表管理程式碼可由開發人員(製造商、經銷商、零售商、售後支援人員、終端使用者或其他者)用原始程式碼、中間程式碼或其他程式碼自身來供應,或又進一步或者或另外,可藉由預處理器基於預期執行環境之預設或其他假設/預期來產生。且儘管在此處將事件至執行緒查找表管理程式碼論述為藉由預處理器插入至原始程式碼、中間程式碼或其他程式碼中,但其可替代地或另外藉由任何下游解譯器、編譯器、連結器、載入器等插入至中間檔案、目標檔案、可執行檔案或由該等器件產生之其他輸出檔案中。
此情形擴展至事件表管理器程式碼模組106'之狀況,亦即,在執行階段基於由軟體及/或器件在執行階段註冊之事件處理服務及事件處置能力來更新事件至執行緒表的模組。儘管彼模組可以原始程式碼格式(例如,以檔案100至104之方式)來提供,但在所說明實施例中,其提供為經預封裝程式庫或經編譯及/或連結至可執行程式碼中之其他中間程式碼、目標程式碼或其他程式碼模組。熟習此項技術者將瞭解,此係以實例來說明且在其他實施例中,可以其他方式提供模組106'之功能性。
進一步參看圖式,此項技術中已知(但如根據本文件中之教示所調適)之類型的編譯器/連結器自經預處理應用程式100'至104'及模組106'(以及自任何其他軟體模組)產生適合於載入及藉由模組12在執行階段執行的可執行程式碼檔案。儘管彼執行程式碼有可能包含儲存於磁碟(未圖示)上、L2E快取記憶體或其他者中之一或多個檔案,但在此處為便利起見將其描繪為其在執行時將最終分成之執行緒100"-106"。
在所說明實施例中,在執行階段將彼可執行程式碼載入至指令/資料快取記憶體12D中,且將其分級以供如上文且在本文中別處所描述之處理模組12的TPU 12B(此處標記為TPU[0,0]至TPU[0,2])執行。此處用標記100''''、102''''、104''''來展示對應經啟用(或作用中)執行緒。展示標記為106''''之對應於事件表管理器模組106'的彼模組。
需要事件處理服務(例如,針對軟體中斷)及/或提供事件處理能力之執行緒100''''至104''''藉由用信號傳輸彼模組以識別彼等需要及/或能力來向(例如)事件表管理器模組106''''註冊。此類註冊/信號傳輸可在每一執行緒執行個體化時及/或貫穿執行緒之壽命而進行(例如,若且在其需要及/或能力演進時)。器件110亦可進行此及/或可依賴於中斷處置常式以針對該等常式進行彼註冊(例如,信號傳輸)。此類註冊(此處為信號傳輸)在圖式中藉由自TPU[0,1]之執行緒102''''(此處針對執行緒註冊標記為「執行緒註冊(thread regis)」)、TPU[0,2]之執行緒104''''(軟體中斷源註 冊)、器件110 Dev 0(器件0註冊)及器件1110 Dev 1(器件1註冊)發出的通知箭頭來指示,以用於投送至事件表管理器模組106''''。在其他實施例中,軟體及/或器件可以其他方式向(例如)模組106''''註冊。
模組106''''回應於通知而使執行緒及/或器件之各別需要及/能力匹配,(例如)以(例如)基於包括(以非限制性實例說明)下列之許多因素中之一者來最佳化系統10之操作:TPU及/或核心12至16當中之負載平衡、個別執行緒及/或執行緒類別之服務品質要求(例如,核心12之電話應用程式中的語音處理執行緒對web資料傳輸執行緒的資料輸送量要求)、能量利用率(例如,針對電池操作或其他者)、同時事件之實際或預期數目、能夠處理事件之TPU及/或核心之實際或預期可用性等,所有該等因素以實例說明)。模組106''''相應地更新事件查找表12C,使得隨後發生之事件可根據彼最佳化而映射至執行緒(例如,藉由事件至執行緒遞送機制,如本文件中之章節「事件」中所論述)。
位置獨立共用執行環境
圖39描繪圖1之系統100的組態及使用以提供位置獨立共用執行環境,且進一步結合用以支援此類位置獨立共用執行環境之跨越核心邊界的執行緒遷移來描繪處理器模組12至16之操作。此等組態及使用在系統10之靜態組態及(例如)具備處理能力之器件變得彼此且與其他需求處理之軟體或器件通信耦接或脫離通信耦接的動態改變組態兩者中為有利的,此係因為(連同其他原因)其促進系統10之操作 的最佳化以(例如)達成TPU及/或核心12至16當中之負載平衡,滿足個別執行緒、執行緒類別、個別事件及/或事件類別之服務品質要求,最小化能量利用率,等等,其全部以實例說明。藉由概述,系統10且更特定而言核心12至16藉由在核心之間移動資料、指令及/或執行緒(狀態)來提供跨越核心邊界之執行緒遷移,以便(例如)使事件處理執行緒到達彼等事件由此產生或偵測到之核心(或較接近核心),將事件處理執行緒移動至能夠處理其之核心(或較接近核心),等等,其全部以非限制性實例說明。
圖39中說明支援位置獨立共用執行環境及跨越處理器12至16邊界之執行緒遷移的所說明處理器模組之操作,其中執行以下步驟(在圖式中指示為虛線橢圓中之編號)。將瞭解,此等係以實例說明且其他實施例可執行不同步驟及/或以不同次序執行:在步驟120中,向核心12通知事件。此事件可為硬體或軟體事件,且其可自本端器件(亦即,直接耦接至核心12之一者)、本端執行之執行緒或其他者用信號傳輸。在該實例中,該事件為尚未有執行緒指派至其的事件。此類通知可以此項技術中已知之方式及/或利用揭示於以引用之方式併入之專利US 7,685,607及US 7,653,912中的機制來實行,如根據本文件中之教示所調適。
在步驟122中,向在核心12本端之TPU中之一者(此處為TPU[0,0])上執行的預設系統執行緒通知新接收之事件,且在步驟123中,彼預設執行緒可使一執行緒執行個體化以 處置即將進行事件及後續相關事件。此情形可包括(例如)設定新執行緒之狀態,自(例如)器件表識別事件處置常式或軟體序列以處理該事件,等等,其全部以此項技術中已知之方式及/或利用揭示於以引用之方式併入之專利US 7,685,607及US 7,653,912中的機制來進行,如根據本文件中之教示所調適。(在一些實施例中,預設系統執行緒可直接處理即將進行事件且排程新執行緒以用於處置後續相關事件。)預設系統執行緒類似地(例如)以此項技術中已知之方式及/或利用揭示於以引用之方式併入之專利US 7,685,607及US 7,653,912中的機制來更新事件至執行緒表以反映事件至新建立執行緒之指派,如根據本文件中之教示所調適;參見步驟124。
在步驟125中,正處置事件之執行緒(例如,新執行個體化之執行緒或在一些實施例中,預設系統執行緒)試圖自快取記憶體12D讀取彼事件之事件處置指令序列的下一指令。若彼指令不存在於本端指令快取記憶體12D中,則(例如)以結合本文件中之題為「虛擬記憶體及記憶體系統」、「快取記憶體系統概述」及「記憶體系統實施」(全部以實例說明)之章節所描述的方式將該指令(且更特定而言,包括該指令之指令「資料」的區塊及同一序列之後續指令)傳送(或「遷移」)至該快取記憶體中;參見步驟126。且在步驟127中,(例如)根據本文件中之「通用化事件及多執行緒」處及本文中別處的論述將彼指令傳送至事件處置執行緒所指派至的TPU 12B。
在步驟128a中,將指令連同執行所需之資料分派至執行單元12A(例如,如本文件中之「通用化事件及多執行緒」及本文中別處所論述)以用於彼執行,TPU 12B及/或經指派執行單元12A亦可自快取記憶體12D載入該資料;參見步驟128b。如上所述,若彼資料不存在於本端資料快取記憶體12D中,則(例如)以上文結合步驟126之論述所提及的方式將該資料傳送(或「遷移」)至該快取記憶體中。
重複步驟125至128b,例如,在執行緒處於作用中時(例如,直至事件之處理完成為止)或直至其陷入等待狀態(例如,如上文結合「執行緒狀態」及本文中別處所論述)為止。若向執行緒正在其上執行之TPU 12B通知(例如)由核心12接收且投送至彼執行緒(例如,藉由如本文件中之章節「事件」中所論述之事件至執行緒遞送機制)之其他相關事件或在此時,可進一步重複該等步驟。
步驟130至139說明彼執行緒(例如)回應於接收到與其相關之其他事件而遷移至核心16。儘管此類遷移並非根據本發明之系統所必要的,但其(遷移)亦可促進系統之操作的最佳化,如上文所論述。所說明步驟130至139與上文所描述之步驟平行,但步驟130至139係在核心16上執行。
因此,例如,關於由核心16接收事件通知之步驟130與步驟120平行。
關於向在核心16本端之TPU中之一者(此處為TPU[2,0])上執行的預設系統執行緒通知新接收之事件的步驟132與步驟122平行。
關於使執行緒執行個體化以處置即將進行事件之步驟133與步驟123平行。然而,不同於使新執行緒執行個體化之步驟123,步驟133將預先存在之執行緒(在此狀況下為在步驟123中執行個體化且上文結合在步驟120中接收之事件之處理所論述的執行緒)傳送(或遷移)至核心16以處置事件。為此,在步驟133中,在TPU[2,0]中執行之預設系統執行緒用信號傳輸及與在TPU[0,0]中執行之預設系統執行緒合作以傳送預先存在之執行緒的暫存器狀態以及如揭示於本文件中之「執行緒(虛擬處理器)狀態」中之記憶體中之基於執行緒狀態之剩餘者;參見步驟133b。在一些實施例中,預設系統執行緒(例如)藉由搜尋展示於(例如)以下圖40之分解部分中的事件查找表之本端及遠端組件來識別預先存在之執行緒及在其上執行之核心。或者,此處結合步驟133及133b所論述之操作中的一或多者藉由與TPU分離且隔開之邏輯(專用邏輯或其他邏輯)來處置,例如,藉由事件至執行緒遞送機制(論述於本文件中之章節「事件」中)或其類似者處置。
關於更新核心16之事件至執行緒表以反映事件至經傳送執行緒之指派的步驟134與步驟124平行。
關於下列之步驟135至137分別與步驟125至127平行:自快取記憶體(此處為快取記憶體16D)讀取事件處置指令序列之下一指令,在彼指令尚未存在於彼快取記憶體中的情況下將該指令遷移至該快取記憶體,及將彼指令傳送至事件處置執行緒所指派至之TPU(此處為16B)。
關於分派指令以供執行及結合指令載入必要資料的步驟138a至138b與步驟128a至128b平行。
如上所述,重複步驟135至138b,例如,在執行緒處於作用中時(例如,直至事件之處理完成為止)或直至其陷入等待狀態(例如,如上文結合「執行緒狀態」及本文中別處所論述)為止。若向執行緒正在其上執行之TPU 16B通知(例如)由核心16接收且投送至彼執行緒(例如,藉由如本文件中之章節「事件」中所論述之事件至執行緒遞送機制)之其他相關事件或在此時,可進一步重複該等步驟。
圖40描繪根據本發明之實踐的其他系統10'及方法,其中圖39之處理器模組(此處為簡單起見全部標記為12)嵌入於消費型器件、商業器件或其他器件150至164中以用於合作操作,例如,在分區170至174內在模組當中及之間投送及處理事件。說明中所展示之器件為電視152、164及機上盒154、蜂巢式電話158、162,及個人數位助理168、遙控器156,但此等器件係僅以實例說明。在其他實施例中,該等模組可替代地或另外嵌入於其他器件中;例如,其可包括於桌上型電腦、膝上型電腦或其他電腦中。
說明中所展示之分區170至174藉由區域網路來界定,但再次此等分區係以實例說明。此類合作操作可在以其他方式界定之分區內或跨越該等分區發生。事實上,在一些實施例中,合作操作限於給定器件內(例如,電視152內)之核心12,而在其他實施例中,彼操作跨越甚至比LAN涵蓋更多範圍(例如,更寬範圍)或涵蓋更少範圍之網路而延伸。
嵌入式處理器模組12在圖40中一般由圖41A中所展示之圖形符號來指示。與彼等模組12在其各別器件中(亦即,在嵌入有彼等模組之各別器件內)互動的用符號描繪之周邊及/或其他邏輯伴隨彼等模組。圖41B中提供用於彼等周邊及/或其他邏輯之圖形符號,但該等符號另外在圖40中保持未標記以避免混亂。
在圖40之左上部分中展示此類核心12之詳細分解部分(由虛線指示)。為易於說明,彼分解部分未展示核心12之快取記憶體或功能單元(ALU)。然而,該分解部分將彼模組(一般如上文(例如)結合圖1及圖39所論述來建構、操作及利用)之事件查找表12C展示為包括以下兩個組件:本端事件表182,其用以促進使事件與本端執行之執行緒(亦即,在同一核心12之TPU 12B中之一者上執行的執行緒)匹配;及遠端事件表184,其用以促進使事件與遠端執行之執行緒匹配(亦即,在另一核心上執行之執行緒,例如,該另一核心在同一分區170內或在另一分區172至174內,此取決於實施。儘管在圖式中展示為兩個單獨組件182、184,但在本發明之其他實施例中,此等可包含更大或更小數目個組件。
此外,儘管此處描述為「表」,但將瞭解,事件查找表可包含其他功能組件(諸如,如本文件中之章節「事件」中所論述之事件至執行緒遞送機制)或與該等其他功能組件耦接,且彼等表及/或組件可完全在各別核心或其他者之本端(亦即,安置於其內)。因此,例如,遠端事件查找 表184(類似本端事件查找表182)可包含用於實行查找功能之邏輯。此外,表184可包括不僅駐留於本端處理器模組中而且駐留於其他處理器模組14至16中的邏輯及/或以與該邏輯合作之方式工作,以用於交換將事件投送至該等模組所必要之資訊(例如,執行緒id、模組id/位址、事件id等)。為此,遠端事件查找「表」在圖式中亦被稱為「遠端事件散佈模組」。
圖式中描繪對照本端事件表182在邏輯上匹配發生之事件(例如,本端軟體事件186及本端記憶體事件188)的結果。具體而言,如藉由標記為「核心中處理」之箭頭所指示,將彼等事件投送至本端核心之TPU以用於由預先存在或新創建之執行緒處理。此情形詳細反映於圖41之左上部分中。
相反,若在本端發生之事件並非本端事件表182中之項目但匹配遠端事件表184中之一者(例如,如藉由平行或串行應用程式將即將進行事件ID對照彼等表來判定),則遠端事件表184可傳回負責處理彼事件之核心及執行緒的執行緒id、模組id/位址(統稱為「位址」)。偵測到事件之核心的事件至執行緒遞送機制及/或預設系統執行緒(例如)可利用彼位址來投送事件以供彼負責核心/執行緒處理。以實例說明,此情形藉由硬體事件190反映於圖40中,該硬體事件190匹配表184中之項目,該表184傳回負責處置彼事件之遠端核心(在此狀況下為嵌入於器件154中之核心12)的位址。偵測到事件190之核心12的事件至執行緒遞送機 制及/或預設系統執行緒(或其他邏輯)利用彼位址將事件投送至彼遠端核心,該核心(例如)如上文(例如)結合步驟120至128b所描述而處理事件。
儘管已指派有執行緒之事件的投送可基於「當前」執行緒位置(亦即,基於所指派執行緒當前所駐留於之核心12的位置),但可替代地將事件投送至其他模組(例如)以達成負載平衡(如上文所論述)。在一些實施例中,此情形亦適用於「新」事件(亦即,尚未指派有執行緒之事件)以及已指派有執行緒之事件兩者。就後者而言(且事實上就兩者而言),核心可利用執行緒遷移(例如,如圖39中所展示及上文所論述)以實行事件如此投送至之模組的事件之處理。以非限制性實例說明,此情形說明於圖40之右下角中,其中展示器件158且更特定而言其各別核心12傳送「執行緒」(且更精確而言,根據圖39之論述,執行緒狀態、指令等)。
然而,在一些實施例中,分區170至174內及/或整個系統內(取決於實施)之處理器模組12中的「主控」者負責將事件投送至預先存在之執行緒且選擇哪些模組/器件(潛在地包括本端模組)將(例如)協同預設系統執行緒來處置新事件,預設系統執行緒在彼等預先存在之執行緒在內部執行的核心12上執行(例如,如上文結合圖39所論述。主控器狀態可特定地或以其他方式來授予,且事實上,其可在分區內之處理器當中輪換(或以其他方式動態變化)。事實上,在一些實施例中,在同級間基礎上實行散佈,(例如) 使得每一模組負責投送其接收之事件(例如,假設該模組自身不參與事件之處理)。
根據本發明建構之系統可實行軟體至所說明嵌入式處理器模組之下載。如圖40中所展示,此下載可自「供應商」伺服器至部署於「現場」(亦即,嵌入於商業、住宅或其他場所中所安裝之器件中)之模組來實行。然而,該下載可簡單地實行為模組預先部署,例如,在製造、散佈及/或零售期間。此外,該下載需要藉由伺服器來實行,但更確切而言,可藉由適合於傳輸必要軟體及/或將必要軟體安裝於模組上之其他功能性來進行。無論如何,如圖40之右上角所展示,可(例如)回應於來自模組、其操作者、安裝者、零售商、經銷商、製造商或其他者之請求而組態及下載軟體,該等請求指定每一此類模組上必要(及/或所要)之應用程式及彼模組上(及/或各別分區內)可用以處理彼等應用程式之資源的要求。此可不僅包括程式碼將下載至之處理器模組的處理能力,而且包括在各別分區中與該等處理器模組合作以(例如)卸下及/或共用處理任務之其他處理器模組的彼等處理能力。
經由執行緒執行個體化、維護及最佳化佈建服務品質之通用目的嵌入式處理器
在一些實施例中,根據需要使執行緒執行個體化且將其指派至TPU。因此,例如,將藉由核心接收或產生之事件(包括(例如)記憶體事件、軟體中斷及硬體中斷)映射至執行緒,且通知各別TPU進行事件處理,例如,如本文件中 之章節「事件」中所描述。若尚未有執行緒指派至特定事件,則通知預設系統執行緒,且預設系統執行緒使一執行緒執行個體化以處置即將進行事件及後續相關事件。如上文所註釋,此類執行個體化可包括(例如)設定新執行緒之狀態,自(例如)器件表識別事件處置常式或軟體序列以處理該事件,等等,其全部以此項技術中已知之方式及/或利用揭示於以引用之方式併入之專利US 7,685,607及US 7,653,912中的機制來進行,如根據本文件中之教示所調適。
此類按需執行個體化及事件至執行緒之指派對於許多應用程式綽綽有餘。然而,在具有一或多個核心12至16之負擔過重的系統中,設置執行緒所需之額外負荷及/或對提供單一關鍵服務之執行緒之依賴可渴望達成所要服務品質所必要的操作。以實例說明,使用嵌入式核心12來支援電視上之子母畫面顯示。儘管單一JPEG 2000解碼執行緒對於大多數用途可為足夠的,但可能最好在使用者請求過大數目個嵌入式圖片時使多個此類執行緒執行個體化,以免顯示中之一或多者在實質螢幕上運動之面中呈現為鋸齒狀的。另一實例可為較低功率核心12(但潛在地為更強大核心),其用作蜂巢式電話中之主要處理器且在該電話與正執行密集遊戲應用程式或其類似者之電視(或其他器件)網路連接時經呼叫以提供偶然支援處理角色。若電話之處理器過度忙於其支援角色,則起始呼叫之使用者可通知電話回應性之降級。
為此,根據本發明之一些實踐的SEP處理器模組(例如,12)利用此項技術中已知(但如根據本文件中之教示所調適)之類型的預處理器來將執行緒管理程式碼插入至將由系統10執行之應用程式之原始程式碼(或中間程式碼或其他程式碼)、程式庫程式碼、驅動程式或其他程式碼中,執行緒管理程式碼在執行後即使預設系統執行緒(或系統10內之其他功能性)在執行階段最佳化執行緒執行個體化、維護及執行緒指派。此情形可促進在適當時間使適當數目個執行緒執行個體化,(例如)以滿足關於上文所識別且包括下列(以非限制性實例說明)之因素(連同其他因素)中之一或多者的個別執行緒、執行緒類別、個別事件及/或事件類別之服務品質要求:
‧語音處理事件、應用程式及/或執行緒之資料處理要求,
‧web資料傳輸事件、應用程式及/或執行緒之資料輸送量要求,
‧遊戲事件、應用程式及/或執行緒之資料處理及顯示要求,
‧視訊出席(telepresence)事件、應用程式及/或執行緒之資料處理及顯示要求,
‧視聽(例如,電視或視訊)事件、應用程式及/或執行緒之解碼、純量及雜訊減小、色彩校正、圖框速率控制以及其他處理及顯示要求,
‧系統5以及在其上處理之事件、應用程式及/或執行緒 的能量利用率要求,及/或
‧藉由個別執行緒、執行緒類別、個別事件及/或事件類別處理之同時事件之實際或預期數目
‧執行緒、執行緒類別、事件及/或事件類別優先於其他執行緒、執行緒類別、事件及/或事件類別的優先順序
參看圖42,此情形藉由應用程式200至204之原始程式碼模組來說明,藉由該等應用程式在執行期間執行之功能具有各別服務品質要求。與上文結合圖38之論述平行,如圖42中所展示,藉由此項技術中已知(但如根據本文件中之教示所調適)之預處理器類型來處理應用程式200至204以分別產生「經預處理應用程式」200'至204',預處理器基於由開發人員、製造商、經銷商、零售商、售後支援人員、終端使用者供應之指示詞或關於下列中之一或多者的其他因素而將執行緒管理程式碼插入至經預處理應用程式中:藉由各別應用程式200至204提供之功能的服務品質要求、預期在執行階段調用彼等功能之頻率及持續時間(例如,回應於藉由終端使用者或其他者進行之動作)、預期彼等功能及/或應用程式自身在執行階段對系統10施加之預期處理或輸送量負載(例如,以MIPS或其他合適術語表示)、彼等應用程式所需之處理資源、彼等功能關於彼此及提供於執行系統內之其他功能的相對優先順序等。
或者或除基於指示詞之外,事件管理程式碼可用應用程式200至204原始程式碼或其他程式碼自身來供應,或又進一步或者或另外,可藉由預處理器基於關於前述(例如, 應用程式功能之服務品質要求、其在執行階段使用之頻率及持續時間等)中之一或多者的預設或其他假設/預期來產生。且儘管在此處將事件管理程式碼論述為藉由預處理器插入至原始程式碼、中間程式碼或其他程式碼中,但其可替代地或另外藉由任何下游解譯器、編譯器、連結器、載入器等插入至中間檔案、目標檔案、可執行檔案或由該等器件產生之其他輸出檔案中。
此情形擴展至執行緒管理程式碼模組206'之狀況,亦即,滿足以下情況之模組:在執行階段補充預設系統執行緒、插入至經預處理應用程式200'至204'中之事件管理程式碼及/或系統10內之其他功能性以促進執行緒創建、指派及維護,以便鑒於上文所識別之其他因素(其在執行階段使用之頻率及持續時間等)及鑒於關於系統10之其他需求以及其能力而滿足各別應用程式200至204之功能的服務品質要求。儘管彼模組可以原始程式碼格式(例如,以檔案200至204之方式)來提供,但在所說明實施例中,其提供為經預封裝程式庫或經編譯及/或連結至可執行程式碼中之其他中間程式碼、目標程式碼或其他程式碼模組。熟習此項技術者將瞭解,此以實例來說明且在其他實施例中,可以其他方式提供模組206'之功能性。
進一步參看圖式,此項技術中已知(但如根據本文件中之教示所調適)之類型的編譯器/連結器自經預處理應用程式200'至204'及模組206'(以及自任何其他軟體模組)產生適合於載入至模組12中及在執行階段由模組12執行的可執行 程式碼檔案。儘管彼執行程式碼有可能包含儲存於磁碟(未圖示)上、L2E快取記憶體或其他者中之一或多個檔案,但在此處為便利起見將其描繪為其在執行時將最終分成之執行緒200"-206"。
在所說明實施例中,在執行階段將彼可執行程式碼載入至指令/資料快取記憶體12D中,且將其分級以供如上文且在本文中別處所描述之處理模組12的TPU 12B(此處標記為TPU[0,0]至TPU[0,2])執行。此處用標記200''''至204''''來展示對應經啟用(或作用中)執行緒。展示標記為206''''之對應於執行緒管理程式碼206'的程式碼。
在載入可執行碼、執行緒執行個體化後及/或貫穿其壽命,執行緒200''''至204''''與執行緒管理程式碼206''''(不管是否操作為獨立於預設系統執行緒或其他者之執行緒)合作以確保滿足藉由彼等執行緒200''''至204''''提供之功能的服務品質要求。此合作可(例如)取決於上文所識別之因素(例如,其在執行階段使用之頻率及持續時間等)、系統實施、關於系統10之需求及系統10之能力等而以數種方式進行。
舉例而言,在一些執行個體中,在載入可執行程式碼後,執行緒管理程式碼206''''即將產生軟體中斷或在執行緒200''''至204''''之基礎功能性在正常過程中需要之前很久便潛在地以其他方式調用執行緒200''''至204''''(例如,由於使用者動作、軟體或硬體中斷等),因此確保在此類需求發生時,該等執行緒將更立即就緒以伺服此需求。
以其他實例說明,執行緒200''''至204''''中之一或多者在藉由模組206''''或其他者調用後即可用信號傳輸預設系統執行緒(例如,對執行緒管理程式碼206''''或其他者起作用)以執行個體化同一執行緒之多個執行個體,從而將每一者映射至預期(例如)在近期發生之不同各別即將進行事件。此情形可有助於確保更立即服務通常成批發生之事件,且對於該等事件,在給定彼等事件之服務品質需求時,專用額外資源為適當的。參看上文關於將JPEG 2000解碼執行緒用於支援子母畫面顯示之實例。
以又其他實例說明,執行緒管理程式碼206''''可週期性地、偶發地、情節性地(episodically)、隨機地或以其他方式產生軟體中斷,或甚至在由於使用者動作、軟體或硬體中斷等而招致之在服務正常事件後其正常處理的明顯終止之後仍以其他方式調用執行緒200''''至204''''中之一或多者以防止其變為不作用,從而再次確保在此類事件發生時,該等執行緒將更立即就緒以伺服事件。
程式化模型 定址模型及資料組織
所說明SEP架構利用單一平坦位址空間。SEP支援大端序及小端序位址空間,且經由處理器組態暫存器中之特殊權限位元來組態。所有記憶體資料類型可在任何位元組邊界處對齊,但在記憶體資料類型在自然邊界上對齊之情況下效能較大。
在所說明實施例中,所有資料位址為位元組位址格式;所有資料類型必須藉由原始大小對齊且位址亦藉由原始大小對齊;且所有指令位址為指令雙字組。其他實施例可在此等方面中之一或多者上變化。
執行緒(虛擬處理器)狀態
每一應用程式執行緒包括圖6中所展示之暫存器狀態。此狀態又提供指向記憶體中之基礎執行緒狀態中之剩餘者的指標。系統特殊權限等級及應用程式特殊權限等級兩者處的執行緒含有相同狀態,但一些執行緒狀態僅在處於系統特殊權限等級處時可見。
暫存器設定大小實施註釋:
通用目的暫存器
取決於實施,每一執行緒具有多達128個通用目的暫存器。通用目的暫存器3-0(GP[3:0])僅在系統特殊權限等級下可見,且可在事件處理之初期階段期間用於事件堆疊指標及工作暫存器。
通常將GP暫存器作為類似於矩陣列之單一對或鄰近對暫存器來組織及正常存取。一些指令具有轉置(T)選項以將目的地寫為4個鄰近暫存器之¼字組行或8個鄰近暫存器之位元組行。此選項對於加速矩陣轉置及相關類型之運算可為有用的。
述詞暫存器
述詞暫存器為通用目的所說明SEP預測機制之部分。基於參考述詞暫存器之值,每一指令之執行為有條件的。
所說明SEP提供多達64個一位元述詞暫存器作為執行緒狀態之部分。每一述詞暫存器保持稱作述詞之內容,基於執行比較指令之結果將該述詞設定為1(真)或重設為0(假)。述詞暫存器3-1(PR[3:1])在系統特殊權限等級下可見,且可在事件處理之初期階段期間用於工作述詞。僅讀取述詞暫存器0,且始終讀取為1(真)。藉由指令使其執行為無條件的。
控制暫存器 執行緒狀態暫存器
ID暫存器
指令指標暫存器
指定待執行之下一指令的64位元虛擬位址。
系統例外狀況狀態暫存器
應用程式例外狀況狀態暫存器
系統例外狀況IP
對應於系統特殊權限之經用信號傳輸例外狀況之指令的位址。
對應於經用信號傳輸例外狀況之指令的位址。
應用程式例外狀況IP
對應於應用程式特殊權限之經用信號傳輸例外狀況之指令的位址。
例外狀況記憶體位址
經用信號傳輸例外狀況之記憶體參考的位址。僅對記憶體錯誤有效。當例外狀況狀態暫存器指示記憶體參考錯誤、等待填充或等待清空時,保持未決記憶體操作之位址。
指令區段表指標(ISTP)、資料區段表指標(DSTP)
藉由ISTE及ISTE暫存器利用以指定所讀取或寫入之ste及field。
指令區段表項目(ISTE)、資料區段表項目(DSTE)
當讀取時,將藉由ISTE暫存器指定之STE置於目的地通用暫存器中。當寫入時,自通用目的源暫存器寫入藉由ISTE或DSTE指定之STE。區段表項目之格式指定於本文件中之「虛擬記憶體及記憶體系統」中題為「轉譯表組織及項目描述」之章節中。
指令或資料第一層級快取記憶體標籤指標(ICTP、DCTP)
指定藉由ICTE或DCTE讀取或寫入之指令快取記憶體標籤。
指令或資料第一層級快取記憶體標籤項目(ICTE、DCTE)
當讀取時,將藉由ICTP或DCTP暫存器指定之快取記憶體標籤置於目的地通用暫存器中。當寫入時,自通用目的源暫存器寫入藉由ICTP或DCTP指定之快取記憶體標籤。快取記憶體標籤項目之格式指定於本文件中之「虛擬記憶體及記憶體系統」中題為「轉譯表組織及項目描述」之章節中。
記憶體參考分級暫存器(MRSR0、MRSR1)
記憶體參考分級暫存器提供用於一些記憶體操作之128位元分級暫存器。MRSR0對應於低64位元。
將SW事件暫存器排入佇列
寫入至排入佇列SW事件暫存器會將事件排入佇列至待藉由執行緒處置之事件佇列上。
計時器及效能監視器
所有計時器及效能監視器暫存器可在應用程式特殊權限下存取。
時脈
已執行指令
執行緒執行時脈
等待逾時計數器
指令集概述 總概念 執行緒為指令執行之基本控制流
執行緒為用於所說明SEP實施例之控制流的基本單位。其可以軟體透通方式同時執行多個執行緒。執行緒可經由共用記憶體、生產者-消費者記憶體操作或事件通信,而與彼瞬時其是否在同一實體處理器上執行及/或處於作用中無關。建置SEP應用程式之自然方法為經由通信執行 緒。此亦為Unix及Linux之極自然樣式。參見本文件中之「通用化事件及多執行緒」及/或個別指令之論述以獲得更多資訊。
指令分組及排序
SEP架構需要編譯器指定何指令可在執行緒之單一循環內執行。可在單一執行緒之單一循環內執行的指令稱作指令群組。指令群組藉由設定存在於每一指令中之停止位元來定界。SEP可在單一循環中執行整個群組,或可因為資源約束、同時多執行緒或事件辨識而在必要時將彼群組劃分至多個循環中。對可在指令群組內指定之指令的數目不存在限制。指令群組不具有關於指令雙字組之任何對齊要求。
在所說明實施例中,分支目標必須為指令雙字組之開始;其他實施例可在此方面上變化。
結果延遲
指令結果延遲對於指令且因此對於編譯器可見。大多數指令不具有結果延遲,但一些指令具有1或2個循環之結果延遲。若指令具有零結果延遲,則該結果可在下一指令分組期間使用。若指令具有一之結果延遲,則該指令之結果可在一個指令分組後首次被利用。在無指令可在指令分組內排程之很少發生的情形下,可使用由NOP(其中設定停止位元以為群組之結尾定界)組成之一個指令分組。NOP指令不利用任何處理器執行資源。
預測
除通用目的暫存器檔案之外,SEP亦含有述詞暫存器檔案。在所說明實施例中,每一述詞暫存器為單一位元(但其他實施例可在此方面變化)。述詞暫存器藉由比較及測試指令來設定。在所說明實施例中,每個SEP指令在其編碼內指定述詞暫存器編號(且再次,其他實施例可在此方面變化)。若指定述詞暫存器之值為真,則執行指令,否則不執行指令。SEP編譯器利用述詞作為條件性指令執行之方法以消除許多分支,且允許比其他情況下可能之指令多的指令平行地執行。
運算元大小及元件
大多數SEP指令跨越單一字組、兩個½字組、四個¼字組及八個位元組而均一地運算。元件為藉由運算元大小指定之64位元暫存器的夾盤。
低功率指令集
指令集經組織以最小化功率消耗-達成每循環最大工作而非最小功能性以實現最大時脈速率。
例外狀況
例外狀況皆經由通用化事件架構來處置。取決於設置事件辨識之方式,執行緒可處置其自身之事件或指定系統執行緒可處置事件。此事件辨識可基於個別事件來設置。
適時編譯平行性
SEP架構及指令集為強大的通用目的64位元指令集。當與通用化事件結構耦接時,高效能虛擬環境可經設置以執行(例如)Java或ARM。
指令類別
此章節將展開以概述指令類別
記憶體存取
比較及測試
平行比較會消除在評估複雜條件性關係時之仿真延遲。
運算及立即運算(Immediate)
分支、SW事件
指令集 記憶體存取指令 載入暫存器LOAD
格式:ps LOAD.lsize.cache dreg,breg.u,ireg{,stop} 暫存器索引形式
ps LOAD.lsize.cache dreg,breg.u,disp,{,stop} 位移形式
ps LOAD.splat32.cache dreg,breg.u,ireg{,stop} splat32暫存器索引形式
ps LOAD.splat32.cache dreg,breg.u,disp,{,stop} splat32移位形式
描述:在有效位址處開始自記憶體讀取由lsize組成之值。接著用正負號或零將lsize值擴展至字組大小且將其置於dreg(目的地暫存器)中。Splat32形式將½字組載入至dreg之低及高½字組中。
對於暫存器索引形式,藉由將breg(基址暫存器)與ireg暫 存器(索引暫存器)相加來計算有效位址。對於位移形式,藉由將breg(基址暫存器)與移位lsize之disp(位移)相加來計算有效位址。
位元組:EA=breg[63:0]+disp[9:0]
¼字組:EA=breg[63:0]+(disp[9:0]<1)
½字組:EA=breg[63:0]+(disp[9:0]<2)
字組:EA=breg[63:0]+(disp[9:0]<3)
雙字組:EA=breg[63:0]+(disp[9:0]<4)
支援已對齊有效位址及未對齊有效位址兩者。不跨越L1快取記憶體區塊邊界之已對齊及未對齊存取在單一循環內執行。未對齊存取需要第二循環來存取第二快取記憶體區塊。在可能情況下推薦已對齊有效位址,但未對齊有效定址在統計上具高效能。
運算元及欄位:
ps 指定是否執行指令之述詞源暫存器。若真,則執行指令,否則若假,則不執行指令(無副作用)。
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
cache 0 僅在再使用快取記憶體提示情況下讀取
1 在再使用快取記憶體提示情況下讀取/寫入
2 僅在未再使用快取記憶體提示情況下讀取
3 在未再使用快取記憶體提示情況下讀取/寫入
u 0 未修改基址暫存器(breg)
1 藉由基址加上索引暫存器(或位移)位址計算來寫入基址暫存器(breg)。
lsize[2:0] 0 載入位元組且用正負號擴展至字組大小
1 載入¼字組且用正負號擴展至字組大小
2 載入½字組且用正負號擴展至字組大小
3 載入字組
4 載入位元組且用零擴展至字組大小
5 載入¼字組且用零擴展至字組大小
6 載入½字組且用零擴展至字組大小
7 載入對至(dreg[6:1],0)及(dreg[6:1],1)中
ireg 指定指令之索引暫存器。
breg 指定指令之基址暫存器。
disp[9:0] 指定用於記憶體參考指令之二補數位移常數(10個位元)。
dreg 指定指令之目的地暫存器。
例外狀況:TLB錯誤
頁面不存在錯誤
儲存至記憶體STORE
格式:ps STORE.size.ru s1reg,breg.u,ireg{,stop} 暫存器索引形式
ps STORE.size.ru s1reg,breg.u,disp,{,stop} 位移形式
描述:在有效位址處開始將由s1reg中之值之最低有效ssize位元組成的值寫入至記憶體。對於暫存器索引形式,藉由將breg(基址暫存器)與ireg暫存器(索引暫存器)相加來計算有效位址。對於位移形式,藉由將breg(基址暫存器)與移位lsize之disp(位移)相加來計算有效位址。
位元組:EA=breg[63:0]+disp[9:0]
¼字組:EA=breg[63:0]+(disp[9:0]<1)
½字組:EA=breg[63:0]+(disp[9:0]<2)
字組:EA=breg[63:0]+(disp[9:0]<3)
雙字組:EA=breg[63:0]+(disp[9:0]<4)
支援已對齊有效位址及未對齊有效位址兩者。不跨越L1快取記憶體區塊邊界之已對齊及未對齊存取在單一循環內執行。未對齊存取需要第二循環來存取第二快取記憶體區塊。在可能情況下推薦已對齊有效位址,但未對齊有效定址在統計上具高效能。
運算元及欄位:
ps 指定是否執行指令之述詞源暫存器。若真,則執行指令,否則若假,則不執行指令(無副作用)。
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
ru0 0 再使用快取記憶體提示
1 未再使用快取記憶體提示
u 0 未修改基址暫存器(breg)
1 藉由基址加上索引暫存器(或位移)位址計算來寫入基址暫存器(breg)。
size[2:0] 0 儲存位元組
1 儲存¼字組
2 儲存½字組
3 儲存字組
4-6 保留
7 儲存暫存器對(dreg[6:1],0)及(dreg[6:1],1)至記憶體中
ireg 指定指令之索引暫存器。
breg 指定指令之基址暫存器。
disp 指定用於記憶體參考指令之二補數位移常數(10個位元)
s1reg 指定含有指令之第一運算元的暫存器。
例外狀況:TLB錯誤
頁面不存在錯誤
快取記憶體操作CACHEOP
格式:ps.CacheOp.pr dreg=breg{,stop} 位址形式
ps.CacheOp.pr dreg=breg,s1reg{,stop} 位址-源形式
描述:指示本端第二層級快取記憶體及第二層級擴展快取記憶體以執行代表發佈執行緒的操作。在多處理器系統上,此等操作可橫跨至非本端第二層級快取記憶體及第二層級擴展快取記憶體。Breg指定操作及對應於操作之位址。可選s1reg指定取決於操作之額外源運算元。將藉由發佈CacheOp指定之傳回值置至dreg中。CacheOp始終使對應執行緒自執行狀態轉變至等待狀態。
運算元及欄位:
ps 指定是否執行指令之述詞源暫存器。若真,則執行指令,否則若假,則不執行指令(無副作用)。
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
s1reg 指定CacheOp指令之位址-源版本的源暫存器。
dreg 指定CacheOp指令之目的地暫存器。
例外狀況:
當以應用程式特殊權限等級存取系統控制欄位時的特殊權限例外狀況。
運算指令
大多數運算指令極對稱,惟所執行之運算除外。
加法整數運算ADD、SUB、ADDSATU、ADDSAT、SUBSATU、SUBSAT、RSUBSATU、RSUBSAT、RSUB
圖43描繪如本文中別處所論述而建構及操作之核心12,其中此處稱為ALU(算術邏輯單元)之功能單元12A與轉置同時執行選定算術運算。
在操作中,所說明核心12之算術邏輯單元12A藉由(例如)通常以與運算元(例如,長字組、字組或位元組)中之一或多者相同的格式將指定運算之結果儲存於單一暫存器232中而執行指定含於各別暫存器中之一或多個運算元230(例如,長字組、字組或位元組)的習知算術指令(包括一元及二進位算術指令)。此情形之實例展示於圖43之右上部分中且更多實例展示於圖7至圖10中。
然而,所說明ALU藉由將結果轉置及在多個指定暫存器上儲存該等結果而執行包括轉置(T)參數(例如,此處藉由含於addop欄位中之第二位元指定,但在其他實施例中,如別處及以其他方式所指定)之此類算術指令。因此,如以下所註釋,當addop欄位之T位元的值為0(意謂無轉置)時,以在邏輯上等效於矩陣列之正常(亦即,非轉置)暫存器格式儲存結果。然而,當彼位元為1(意謂轉置)時,以在邏輯上等效於以矩陣行儲存結果(如以下進一步論述)的轉置格式在多個暫存器234至240上儲存結果。就此而言,ALU(例如)以共同字組、位元組、位元或其他起點來在多個指定暫存器上攤派(apportion)指定運算之結果。因此,例如,ALU可執行將結果寫入為(例如)四個鄰近暫存器的四分之一字組行或(以其他實例說明)八個鄰近暫存器之位元組行的ADD(具有轉置)運算。ALU類似地執行具有此類 同時轉置之其他算術運算(二進位、一元或其他運算)。
回應於前述指令而實行具有可選轉置之算術運算的所說明實施例之ALU 12E之運算的邏輯閘、時序以及其他結構及運算態樣可以此項技術中已知之習知方式來實施,如根據文中之教示所調適。
格式:ps.addop.T.osize.dreg=s1reg,s2reg{,stop} 暫存器形式
ps.addop.T.osize dreg=s1reg,immediate8,{,stop} 立即運算形式
ps.add.T.osize dreg=s1reg,immediate14{,stop} 長立即運算形式
描述:如藉由addop及osize欄位所指定對兩個運算元進行運算,且將結果置於目的地暫存器dreg中。加法指令基於如指定於osize欄位中且在圖7至圖10中所說明之原始大小邊界而將全64位元字組處理為單一運算或多個獨立運算。
運算元及欄位: addop
ps 指定是否執行指令之述詞源暫存器。若真,則執行指令,否則若假,則不執行指令(無副作用)。
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
osize 0 八個獨立位元組運算
1 四個獨立¼字組運算
2 兩個獨立½字組運算
3 單一字組運算
immediate8 指定immediate8常數,針對不帶正負號運算將其用零擴展至運算大小且針對帶正負號運算將其用正負號擴展至運算大小。獨立地適用於每一子運算。
Immediate14 指定用正負號擴展至運算大小之immediate14常數。獨立地適用於每一子運算。
s1reg 指定含有指令之第一源運算元的暫存器。
s2reg 指定含有指令之第二源運算元的暫存器。
dreg 指定指令之目的地暫存器。
T(轉置)
轉置位元TRAN
格式:ps.tran.mode dreg=s1reg,s2reg{,stop} 固定形式
ps.tran.qw dreg=s1reg,s2reg,s3reg{,stop} 可變形式
描述:對於固定形式,每一¼字組(QW)或位元組元素內之位元基於dreg暫存器之模式來進行位元轉置。對於可變形式,每一¼字組(QW)或位元組元素內之位元基於dreg暫存器之qw及s3reg位元位置來進行位元轉置。
參見圖11至圖16 mode
qw
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
s1reg 指定含有指令之第一源運算元的暫存器。
s2reg 指定含有指令之第二源運算元的暫存器。
s3reg 指定含有指令之第三源運算元的暫存器。
dreg 指定指令之目的地暫存器。
二進位算術編碼器查找BAC
圖44描繪如本文中別處所論述而建構及操作之核心12,其中此處稱為ALU(算術邏輯單元)之功能單元12A藉由將來自JPEG2000二進位算術編碼器查找表之值儲存至暫存器12E而執行處理器層級指令(此處稱為BAC指令)。
更特定而言,參看該圖式,所說明核心12之ALU 12A執行促進JPEG2000編碼及解碼之處理器層級指令,包括JPEG2000二進位算術編碼器表查找指令(BAC指令)。在所說明實施例中,此類指令包括指定用以在此類表208中查 找之一或多個函數值以及此類查找所基於之值的參數。ALU回應於此類指令而將來自JPEG2000二進位算術編碼器Qe值及機率估計查找表之值載入至暫存器12E(圖44)中。
在所說明實施例中,查找表如指定於Tinku Acharya及Ping-Sing Tsai之「JPEG2000 Standard for Image Compression:Concepts,Algorithms and VLSI Architectures」(Wiley,2005年,重印刷於本文件中之附錄C中)的表7.7中。此外,該等函數為在彼表中指定之Qe值、NMPS、NLPS及SWITCH函數值。其他實施例可利用此表之變體及/或可提供較少(或額外)函數。對前述函數之進一步瞭解可藉由參看教示以引用之方式併入本文中的所引證本文來瞭解。
來自所引證本文抑或以其他方式獲得之表208可經硬編碼及/或自身可儲存於暫存器中。或者或另外,藉由ALU在執行指令後所產生之傳回值可來自此表之演算法近似。
回應於前述指令而實行來自JPEG2000二進位算術編碼器查找表之值之儲存的所說明實施例之ALU 12E之運算的邏輯閘、時序以及其他結構及運算態樣實施在Tinku Acharya及Ping-Sing Tsai之「JPEG2000 Standard for Image Compression:Concepts,Algorithms and VLSI Architectures」(Wiley,2005年)之表7.7中指定的查找表,該表以引用之方式併入本文中且其複本作為附表D附於此。其他實施例之ALU可使用實施其他此類演算法表之邏輯閘、時序以及其他結構及運算態樣。
對根據所說明實施例的用於實行來自JPEG2000二進位算術編碼器查找表之值之儲存的指令之更透徹理解可藉由參考指令語法及效應之以下規格而獲得:
格式:ps.bac.fs dreg=s2reg{,stop} 暫存器形式
描述:將s2reg中值範圍為0至46之查找表(如由type指定)置於dreg之對應元素中。未定義在該值範圍外之s2reg的傳回值。
運算元及欄位: type
ps 元件12E中之指定是否執行指令的述詞源暫存器。若真,則執行指令,否則若假,則不執行指令(無副作用)。
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
S2reg 指定元件12E中含有指令之第二源運算元的暫存器。
dreg 指定元件12E中指令之目的地暫存器。
位元平面等量磁碟區行編碼BPSCCODE
圖45描繪如本文中別處所論述而建構及操作之核心12,其中此處稱為ALU(算術邏輯單元)之功能單元12A藉由針對JPEG2000 EBCOT內之位元平面編碼(或換言之,根據EBCOT方案之位元平面編碼)而編碼暫存器12E中之值的等量磁碟區行來執行處理器層級指令(此處稱為BPSCCODE指令)。EBCOT代表「嵌入式最佳截斷區塊編碼」。在所說明實施例中,彼等指令指定待編碼之行的四個位元及緊鄰於彼等位元中之每一者的位元。該等指令進一步指定待編碼之四個行位元中之每一者的當前編碼狀態(此處用三個位元指定)。
如藉由圖式之元素210所反映,根據指令之一個變體(如藉由所謂的「cs」參數所判定),所說明實施例之ALU 12E回應於此類指令而產生由指令之「pass」參數指定之行編碼且將其儲存至指定暫存器。可具有指定有效性傳播遍次(SP)、量值精細化遍次(MR)、清除遍次(CP)及組合式MR與CP遍次之值的彼參數回應於指令而判定由ALU 12E執行之編碼的階段。
如藉由圖式之元素212所反映,根據指令之另一變體(再次如藉由「cs」參數所判定),所說明實施例之ALU 12E回應於如上所述之指令而替代地(或另外)產生編碼狀態之更新值(例如,在執行特定遍次後)且將其儲存至暫存器。
用於回應於前述指令實行等量磁碟區行之編碼的所說明 實施例之ALU 12E的邏輯閘、時序以及其他結構及運算態樣來實施一演算法/方法論方法,其揭示於Amit Gupta、Saeid Nooshabadi及David Taubman之「Concurrent Symbol Processing Capable VLSI Architecture for Bit Plane Coder of JPEG2000」(IEICE Trans.Inf.& System,第E88-D卷,第8期,2005年8月)中,其教示以引用之方式併入本文中且其複本作為附表D附於此。其他實施例之ALU可使用實施其他演算法及/或方法論方法之邏輯閘、時序以及其他結構及運算態樣。
對根據所說明實施例的用於針對JPEG2000 EBCOT內之位元平面編碼而編碼等量磁碟區行的指令之更透徹理解可藉由參考指令語法及效應之以下規格而獲得:
格式:ps.bpsccode.pass.cs dreg=s1reg,s2reg{,stop} 暫存器形式
描述:用以針對JPEG2000 EBCOT(嵌入式最佳截斷區塊編碼)內之位元平面編碼而編碼4位元等量磁碟區行。(參見Amit Gupta、Saeid Nooshabadi及David Taubman之「Concurrent Symbol Processing Capable VLSI Architecture for Bit Plane Coder of JPEG2000」(IEICE Trans.Inf.& System,第E88-D卷,第8期,2005年8月))。S1reg自暫存器12E(圖45)指定待編碼之行的4個位元及緊鄰於此等位元中之每一者的位元。S2reg指定4個行位元中之每一者的當前編碼狀態(3個位元)。行編碼如由pass指定且 cs傳回於dreg(暫存器12E中之目的地)中。
參見圖17至圖18。 運算元及欄位:
ps 指定是否執行指令之述詞源暫存器。若真,則執行指令,否則若假,則不執行指令(無副作用)。
pass 0 有效性傳播遍次(SP)
1 量值精細化遍次(MR)
2 清除遍次(CP)
3 組合MR及CP
cs 0 Dreg含有行編碼、CS、D對。
1 Dreg含有行之狀態位元的新值。
stop 0 指定指令群組不由此指令劃界。
1 指定指令群組由此指令劃界。
s1reg 指定元件12E(圖45)中含有指令之第一源運算元的暫存器。
S2reg 指定元件12E中含有指令之第一源運算元的暫存器。
dreg 指定元件12E中指令之目的地暫存器。
虛擬記憶體及記憶體系統
SEP利用新穎虛擬記憶體及記憶體系統架構以實現高效能、程式化簡易性、低功率及低實施成本。態樣包括:
‧64位元虛擬位址(VA)
‧64位元系統位址(SA)。如將瞭解,此位址具有不同於標準實體位址之特性。
‧藉由稀疏填充之VA或SA的虛擬位址至系統位址轉譯之區段模型。
‧VA至SA轉譯係基於區段。接著在記憶體系統中快取系統位址。因此,存在於記憶體系統中之SA具有在快取記憶體層級中之一者中的項目。不存在於任何快取記憶體(及記憶體系統)中之SA則不存在於記憶體系統中。因此,以對軟體及OS自然之方式按頁面(及子頁面)粒度來稀疏地填充記憶體系統,而無處理器上之頁面表之額外負荷。
‧將所有記憶體有效地管理為快取記憶體,但晶片外記憶體利用DDR DRAM。記憶體系統包括兩個邏輯層級。第一層級快取記憶體,將其分成單獨資料及指令快取記憶體以達成最佳延時及頻寬。第二層級快取記憶體包括晶片上部分及稱為第二層級擴展之晶片外部分。第二層級快取記憶體整體為用於個別SEP處理器之記憶體系統,且促成用於多個SEP處理器之分散式全快取記憶體系統。多個處理器未必在實體上共用相同記憶體系統、晶片或匯流排且可經由網路耦接。
此架構之一些額外益處為:
‧直接支援分散式共用:
o記憶體(DSM)
o檔案(DSF)
o物件(DSO)
o同級間(DSP2P)
‧可按比例調整快取記憶體及記憶體系統架構
‧區段可易於在執行緒之間共用
‧快速第一層級快取,此係因為查找與標籤存取平行,無完全虛擬至實體位址轉譯或虛擬快取記憶體之複雜性。
虛擬記憶體概述
參看圖19,虛擬位址為藉由記憶體參考及分支指令建構之64位元位址。在每區段基礎上將虛擬位址轉譯成用以存取所有系統記憶體及IO器件之系統位址。表6指定系統位址指派。每一區段之大小可自224個位元組變化至248個位元組。
虛擬位址用以匹配區段表中之項目。已匹配項目指定對應系統位址、區段大小及特殊權限。系統記憶體為系統位址空間之頁面層級快取記憶體。頁面層級控制提供於快取記憶體系統中,更確切而言在處理器處在位址轉譯時。作業系統虛擬記憶體子系統經由L2擴展快取記憶體(L2E快取記憶體)描述符來基於頁面控制系統記憶體。此方法之優勢在於避免了處理器頁面表及頁面層級TLB之效能額外負荷。
當停用位址轉譯時,略過區段表且所有位址被截斷至低32個位元且需要系統特殊權限。
快取記憶體系統概述 引言
參看圖20,如所展示來組織所說明實施例之核心12至16的資料及指令快取記憶體。L1資料及指令快取記憶體皆為8向關聯的。每一128位元組區塊具有對應項目。此項目描 述區塊之系統位址、當前11快取記憶體狀態、區塊是否已相對於12快取記憶體修改及區塊是否已被參考。在至區塊之每一儲存時設定已修改位元。藉由對區塊之每一記憶體參考來設定參考位元,除非再使用提示指示未再使用。未再使用提示允許程式存取記憶體位置一次,無此提示則位移將再使用之其他快取記憶體區塊。藉由L2快取記憶體控制器週期性地清除參考位元以實施第一層級快取記憶體工作集演算法。當L2快取記憶體控制件用區塊中之修改資料更新其資料時,清除已修改位元。
第二層級快取記憶體係由晶片上及晶片外擴展L2快取記憶體(L2E)組成。可自含於各別核心上、在多個核心當中散佈及/或含於(整體或部分)「閘道器」(或「IO橋接器」)上之DDRAM的晶片上L2快取記憶體互連至其他處理器(例如,不同於此處所展示及論述之彼等類型)及/或系統,由標籤及資料部分組成。每一128位元組資料區塊藉由標籤部分內之對應描述符來描述。該描述符追蹤快取記憶體狀態,該區塊是否已相對於L2E修改、該區塊是否存在於L1快取記憶體中、記住區塊由L1及標籤模式使用之次數的LRU計數。
晶片外DDR dram記憶體被稱作L2E快取記憶體,此係因為其充當L2快取記憶體之擴展。L2E快取記憶體可含於單一器件(例如,具有整合控制器(例如,DDR3控制器)之記憶體板或在與各別核心或其他者相關聯之多個器件當中散佈。基於頁面分配L2E快取記憶體內之儲存,且基於區塊 在L2與L2E之間傳送資料。系統位址至特定L2E頁面之映射藉由L2E描述符指定。此等描述符儲存於系統位址空間及外部ddr2 dram中之固定位置內。L2E描述符指定系統記憶體或實體記憶體(例如,附接式快閃磁碟機或其他掛接式儲存器件)之儲存對應頁面的位置。作業系統負責初始化及維護此等描述符作為OS之虛擬記憶體子系統的部分。作為整體,L2E描述符指定系統位址空間之存在於(快取於)實體記憶體中的稀疏頁面。若頁面及對應L2E描述符不存在,則用信號傳輸頁面錯誤例外狀況。
L2快取記憶體參考L2E描述符以搜尋特定系統位址,從而滿足L2未命中。在利用L2E描述符之組織的情況下,需要L2快取記憶體存取3個區塊來存取參考區塊,存取2個區塊來遍歷描述符樹,且存取1個區塊來獲得實際資料。為了使效能最佳化,L2快取記憶體快取最近使用之描述符。因此,L2E描述符可最可能藉由L2直接參考,且僅需要單一L2E參考來載入對應區塊。
將L2E描述符儲存於L2區塊之資料部分內,如圖85中所展示。標籤內之L2描述符內的標籤模式位元指示資料部分由用於擴展L2快取記憶體之16個標籤組成。用以快取L2E描述符之L2快取記憶體的部分藉由OS設定,且正常設定為一個快取記憶體群組,或0.5m L2快取記憶體之256個區塊。此組態導致快取對應於212個L2E頁面(此等效於256 MB(百萬位元組))之描述符。
儘管展示為結合類似處理器模組(例如,本文中別處詳 細描述之類型)使用,但將瞭解,根據本發明之快取結構、系統及/或機制藉由其他處理器模組、記憶體系統及/或儲存系統來實踐(例如,如圖31中所說明)。
利用本文中所描述類型之快取的實施例之優勢為下列
‧記憶體中目錄之快取
‧消除轉譯預看緩衝器(TLB)及處理器處之TLB額外負荷
‧單一稀疏位址空間實現單一層級儲存
‧涵蓋dram、快閃記憶體及快取記憶體作為單一最佳化記憶體系統
‧提供分散一致性及工作集管理
‧提供透通狀態管理
‧藉由使資料動態地接近需要其之處及能夠利用較低成本密集儲存技術來加速能及減小功率。
快取記憶體系統接續
將第一層級快取記憶體組織為單獨第一層級指令快取記憶體及第一層級資料快取記憶體以最大化指令及資料頻寬。兩種第一層級快取記憶體為第二層級快取記憶體之合適子集。圖20中展示總SEP記憶體組織。此組織在實施內用參數表示,且在未來設計中可按比例調整。
L1資料及指令快取記憶體皆為8向關聯的。每一128位元組區塊具有對應項目。此項目描述區塊之系統位址、當前11快取記憶體狀態、區塊是否已相對於L2快取記憶體修改及區塊是否已被參考。在至區塊之每一儲存時設定已修改 位元。藉由對區塊之每一記憶體參考來設定參考位元,除非再使用提示指示未再使用。未再使用提示允許程式存取記憶體位置一次,無需記憶體位置位移將再使用之其他快取記憶體區塊。藉由L2快取記憶體控制器週期性地清除參考位元以實施第一層級快取記憶體工作集演算法。當L2快取記憶體控制件用區塊中之修改資料更新其資料時,清除已修改位元。
第二層級快取記憶體包括晶片上及晶片外擴展L2快取記憶體(L2E)。晶片上L2快取記憶體包括標籤及資料部分。每一128位元組資料區塊藉由標籤部分內之對應描述符來描述。該描述符追蹤快取記憶體狀態,該區塊是否已相對於L2E修改、該區塊是否存在於L1快取記憶體中、記住區塊由L1及標籤模式使用之次數的LRU計數。圖22中展示L2快取記憶體之組織。
晶片外DDR DRAM記憶體被稱作L2E快取記憶體,此係因為其充當L2快取記憶體之擴展。基於頁面分配L2E快取記憶體內之儲存,且基於區塊在L2與L2E之間傳送資料。系統位址至特定L2E頁面之映射藉由L2E描述符指定。將此等描述符儲存於系統位址空間及外部ddr2 dram中之固定位置內。L2E描述符指定晶片外L2E DDR DRAM內之儲存對應頁面的位置。作業系統負責初始化及維護此等描述符作為OS之虛擬記憶體子系統的部分。作為整體,L2E描述符指定系統位址空間之存在於(快取於)實體記憶體中的稀疏頁面。若頁面及對應L2E描述符不存在,則用信號傳輸 頁面錯誤例外狀況。
將L2E描述符組織為樹,如圖24中所展示。
圖25描繪根據本發明之系統中的L2E實體記憶體佈局;L2快取記憶體參考L2E描述符以搜尋特定系統位址,滿足L2未命中。在利用L2E描述符之組織的情況下,需要L2快取記憶體存取3個區塊來存取參考區塊,存取2個區塊來遍歷描述符樹,且存取1個區塊來獲得實際資料。為了使效能最佳化,L2快取記憶體快取最近使用之描述符。因此,L2E描述符可最可能藉由L2直接參考,且僅需要單一L2E參考來載入對應區塊。
將L2E描述符儲存於L2區塊之資料部分內,如圖23中所展示。標籤內之L2描述符內的標籤模式位元指示資料部分包括用於擴展L2快取記憶體之16個標籤。用以快取L2E描述符之L2快取記憶體的部分藉由OS設定,且正常設定為一個快取記憶體群組(不需要SEP實施支援快取所有快取記憶體群組中之L2E描述符。最少需要1個快取記憶體群組),或0.5m L2快取記憶體之256個區塊。此組態導致快取對應於212個L2E頁面(此等效於256個百萬位元組)之描述符。
圖21說明L2及L2E操作之總流程。L2及L2E快取記憶體操作之偽碼摘要:
轉譯表組織及項目描述
圖26描繪根據本發明之一個實踐的SEP系統中之區段表項目格式。
快取記憶體組織及項目描述
圖27至圖29分別描繪根據本發明之一個實踐的SEP系統中的L1、L2及L2E快取記憶體定址及標籤格式。
利用Ref(參考)計數欄位以追蹤藉由L1快取記憶體(及處理器)參考L2區塊之次數。當將區塊移至L1中時,使該計數遞增。其可同樣用於L2E快取記憶體(關於至L2快取記憶體之移動)及L1快取記憶體(關於藉由本端核心或遠端核心之功能單元參考)中。
在所說明實施例中,核心(例如,12至16)內之功能或執行單元(例如,12A至16A)執行記憶體參考指令,該等指令 影響快取記憶體內之參考計數的設定且藉此影響包括替換及已修改區塊回寫之快取記憶體管理。因此,例如,在將對應項目(例如,資料或指令)置入快取記憶體中時,將結合藉由執行單元進行之典型或正常記憶體存取而設定的參考計數設定為中間值(例如,在以下實例中為值3)。在參考快取記憶體中之每一項目時,使參考計數遞增。在背景技術中,快取記憶體週期性地掃描及遞減參考計數。當將新資料/指令置入快取記憶體中時,快取記憶體子系統基於已快取項目之對應參考計數而判定將移除已快取項目中之哪一者(亦即,首先移除具有較低參考計數之項目)。
所說明核心(例如,12)之功能或執行單元(例如,12A)可選擇性地使新近存取之資料/指令的參考計數有意設定為低值,藉此確保對應快取記憶體項目將為接下來要替換之項目且將不會取代掉長期需要之其他快取記憶體項目。為此,所說明核心(例如,12)支援記憶體存取指令中之至少一些包括相應地影響參考計數之參數(例如,「未再使用快取記憶體提示」)的指令集。
在所說明實施例中,自身連同所謂的標籤部分(如與所謂的資料部分相對比)或各別快取記憶體中之各別資料之描述符一起維護的參考計數之設定及調整自動地藉由快取記憶體子系統內之邏輯進行,因此使功能單元(例如,12A至16A)不必設定或調整彼等計數自身。換言之,在所說明實施例中,記憶體參考指令(例如,具有或不具有未再使用提示)藉由功能或執行單元(例如,12A至16A)之執行使 快取記憶體(且更特定而言,例如,本端L2及L2E快取記憶體)執行代表發佈執行緒之操作(例如,根據本文件中之教示的參考計數之設定及調整)。在多核心系統上,此等操作可橫跨至非本端第二層級快取記憶體及第二層級擴展快取記憶體。
前述機制亦可整體或部分地用以(例如)獨立於藉由處理器執行之記憶體存取指令而促進快取記憶體起始之效能最佳化。因此,例如,新近置入各別快取記憶體中之資料的參考計數可根據以下兩者來設定(或若已設定,則隨後調整):(a)獲取快取記憶體之存取權,及(b)此類資料由處理器模組(本端或遠端)之利用的性質。
以實例說明,在置入快取記憶體中之唯讀資料預期在遠端快取記憶體上頻繁更新(例如,藉由具有寫入權之處理節點)之情況下,獲取快取記憶體可將參考計數設定為低,藉此確保(除非資料藉由獲取快取記憶體頻繁存取)對應快取記憶體項目將被替換,從而排除對來自遠端快取記憶體之不必要更新的需要。參考計數之此類設定可經由記憶體存取指令參數(如上所述)來實行及/或經由快取子系統(及/或作業系統中之合作機制)之自動操作來「快取起始」。
以其他實例說明,維護於快取記憶體中之惟寫資料在唯讀(或其他)基礎上未共用於任何其他快取記憶體中的情況下,快取子系統(及/或作業系統中之合作機制)可至少延遲或暫時中止將對彼資料之更新用信號傳輸至其他快取記憶 體或記憶體系統,直至與維護快取記憶體相關聯之處理器已停止使用資料為止。
前述內容可藉由參看圖47來進一步瞭解,該圖展示藉由核心12上之應用程式(例如,200(且更精確而言,其標記為200''''之執行緒))對L1資料快取記憶體(以非限制性實例說明)執行無未再使用提示(或換言之,具有設定為「真」之再使用參數)之記憶體「讀取」操作的效應。特定而言,如藉由執行緒200''''所指定之正經讀取之資料的虛擬位址(例如)以圖19(以非限制性實例說明)中所展示及本文中別處所論述之方式轉換為系統位址。
若所請求資料在L1資料快取記憶體中,則L1快取記憶體查找且更具體而言對照L1資料快取記憶體之標籤部分比較彼系統位址(例如,以與展示於關於L2資料快取記憶體之圖22中之方式平行的方式)的查找導致將所請求區塊、頁面等(取決於實施)傳回至請求執行緒的命中。如圖47之右上角中所展示,維護於所得資料之描述符中的參考計數結合讀取操作而遞增。
若參考計數仍存在於L1中(例如,假設其尚未藉由另一記憶體存取操作存取),則參考計數週期性地遞減。具有最高參考計數之區塊在L2快取記憶體內具有最高當前時間局部性。具有最低參考計數之區塊在最近一段時間以來存取最少,且作為替換區塊之目標以服務L2未命中,亦即,自L2E快取記憶體置入新區塊。在所說明實施例中,當自L2E快取記憶體置入區塊時,正常將該區塊之ref計數初始 化為中間值3(以非限制性實例說明)。當然,其他實施例可不僅關於此等計數之開始值變化而且在使其增加及減少之量及時序上變化。
如上文所提到,(例如)在應用程式200''''使用具有指示「未再使用」之未再使用提示(或換言之,設定為「假」之再使用參數)的記憶體存取指令時,亦即,參考資料區塊將不由執行緒再使用(例如,在近期)時,可藉由應用程式200''''以程式化方式影響對參考位元之設定。舉例而言,在所說明實施例中,若藉由指定未再使用之記憶體參考指令將區塊置入快取記憶體(例如,L1或L2快取記憶體)中,則將ref計數初始化為值2(而非依據上文所論述之正常狀況的3),且(以其他實例說明)若彼區塊已在快取記憶體中,則由於指令執行而不遞增其參考計數(或事實上,可由於此類執行而減小至比如彼開始值2)。再次,其他實施例當然可關於此等開始值及/或在參考計數由於執行具有未再使用提示之記憶體存取指令的改變之設定或時序上變化。
此情形可藉由參看圖48來進一步瞭解,該圖在如下範圍內與圖47平行:其亦展示藉由核心12上之應用程式執行緒200''''對資料快取記憶體(此處為L1及L2快取記憶體)執行(以非限制性實例說明)包括未再使用提示之記憶體「讀取」操作的效應。如上所述,如藉由執行緒200''''所指定之所請求資料的虛擬位址(例如)以圖19(以非限制性實例說明)中所展示及本文中別處所論述之方式轉換為系統位 址。
若所請求資料在L1資料快取記憶體中(其並非此處所展示之狀況),則將資料傳回至請求程式200'''',但在快取記憶體中不更新其描述符之參考計數(因為未再使用提示),且事實上,在一些實施例中,若參考計數大於用於未再使用請求之預設初始化值,則可將其設定為彼值(此處為2)。
若所請求資料不在L1資料快取記憶體中(如此處所展示),則彼快取記憶體用信號傳輸未命中且將請求傳遞至L2資料快取記憶體。若所請求資料在L2資料快取記憶體中,則L2快取記憶體查找且更具體而言對照L2資料快取記憶體之標籤部分比較彼系統位址(例如,以圖22中展示之方式)的查找導致將所請求區塊、頁面等(取決於實施)傳回至L1資料快取記憶體的命中,L1資料快取記憶體為彼資料分配描述符且(因為未再使用提示)將其參考計數設定為用於未再使用請求之預設初始化值,可將其設定為彼值(此處為2)。L1資料快取記憶體又可將所請求資料傳遞回至請求執行緒。
將瞭解,圖47及圖48中所展示之操作(但為簡單起見此處關於涉及兩個快取記憶體層級(L1及L2)之讀取操作而展示及論述)可同樣擴展至額外快取記憶體層級(例如,L2E)以及其他記憶體操作(例如,寫入操作)。在所說明實施例中,其他此類操作可(例如)包括(以非限制性實例說明)以下記憶體存取指令(及其各別再使用/未再使用快取記憶體提示)連同其他者:LOAD(載入暫存器)、STORE(儲存至記 憶體)、LOADPAIR(載入暫存器對)、STOREPAIR(儲存對至記憶體)、PREFETCH(預提取記憶體)、LOADPRED(載入述詞暫存器)、STOREPRED(儲存述詞暫存器)、EMPTY(清空記憶體),及FILL(填充記憶體)指令。替代地或替代地或另外,其他實施例可提供利用此類參數或以其他方式提供用於影響參考計數(例如,根據本文件中之原理)之其他指令。
第二層級擴展(L2E)快取記憶體標籤以編索引之集合關聯方式來定址。可將L2E資料置於晶片外記憶體之任意位置處。
定址
圖30描繪根據本發明之一個實踐的SEP系統中之IO位址空間格式。
標準器件暫存器
IO器件包括標準器件暫存器及器件特定暫存器。在接下來之章節中描述標準器件暫存器。
器件類型暫存器
識別器件之類型。使器件能夠藉由首先讀取類型暫存器之軟體來動態地組態。核心針對所有空器件提供器件類型0x0000。
IO器件
對於每一IO器件,提供功能性、位址映射及詳細暫存器描述。
事件表
事件佇列暫存器
事件佇列暫存器(EQR)實現對事件佇列之讀取及寫入存取。藉由IO位址之器件位移的位元[15:0]來指定事件佇列位置。第一實施含有16個位置。
事件佇列操作暫存器
事件佇列操作暫存器(EQR)使事件能夠被推送至事件佇列上或自事件佇列彈出。至EQR之儲存用於推送,且自EQR之載入用於彈出。
事件-執行緒查找表暫存器
事件至執行緒查找表建立藉由硬體器件或事件指令呈現之事件編號與被用信號傳輸事件之較佳執行緒之間的映射。表中之每一項目指定事件編號及事件經映射至之對應虛擬執行緒編號。在未將虛擬執行緒編號載入至TPU中或事件映射不存在之狀況下,接著將事件用信號傳輸至預設系統執行緒。參見本文件中之「通用化事件及多執行緒」以獲得進一步描述。
藉由IO位址之器件位移的位元[15:0]來指定事件-執行緒查找位置。第一實施含有16個位置。
L2及L2E記憶體控制器
功率管理 SEP利用若干類型之功率管理:
‧SEP處理器指令排程器將在給定循環期間不需要之單元置於低功率狀態。
‧IO控制器可在不使用時被停用
‧總功率管理包括以下狀態
o斷開-所有晶片電壓為零
o完全接通-啟用晶片電壓及子系統
o閒置-在所有執行緒處於等待_IO狀態時處理器進入低功率狀態
o睡眠-啟用時脈計時器、一些其他各種暫存器及自動dram再新。所有其他子系統處於低功率狀態。
實例記憶體系統操作 添加移除區段
SEP利用可變大小區段來提供自虛擬位址空間至系統位址空間之位址轉譯(及特殊權限)。區段之規格實質上並不在系統位址空間內分配系統記憶體。如下一章節中所描述,系統記憶體之分配及解除分配係基於頁面。
可將區段視為用於程式碼、堆、檔案等之經映射記憶體空間。
在每執行緒基礎上來定義區段。添加區段以實現用於對應處理程序之指令或資料區段表項目。藉由以系統特殊權限執行之軟體來顯式地管理此等區段。區段表項目定義對應執行緒對區段之存取權。可以大小邊界來任意地定義區段之虛擬至系統位址映射。
藉由停用對應區段表項目來移除區段。
分配及解除分配頁面
頁面係基於全系統來分配。藉由對應於頁面系統位址之區段表項目來定義對頁面之存取特殊權限。藉由基於系統共用來管理頁面,針對頁面描述符及頁面內容而藉由記憶體系統自動地維持一致性。因為SEP將所有記憶體及對應頁面管理為快取記憶體,所以在共用記憶體系統處而非每執行緒分配及解除分配頁面。
藉由展示於圖86中之記憶體中雜湊表(L2E描述符樹查找)來描述有效頁面及其儲存於記憶體中之位置。對於特定索引,描述符樹可為1、2或3個層級。根區塊開始為0位 移。系統軟體可創建將虛擬映射至0x0處之系統的區段,且創建直接映射至位址空間使得此記憶體在內核位址空間內的頁面描述符。
藉由設置對應NodeBlock(節點區塊)、TreeNode(樹節點)及L2E快取記憶體標籤來分配頁面。TreeNode描述NodeBlock內其指向之最大SA。TreeNode以遞增SA次序配置於NodeBlock內。實體頁面編號指定dram中用於頁面之儲存位置。此有效地為b樹組織。
藉由將項目標為無效來將頁面解除分配。
記憶體系統實施
參看圖31,所說明SEP架構之記憶體系統實施實現可跨越核心及執行緒以透通方式按比例調整的全快取記憶體系統。記憶體系統實施包括下列:
‧環狀互連件(RI)提供用於快取記憶體系統操作之封包傳送。每一器件包括RI埠。此類環狀互連件可以揭示為(以非限制性實例說明)題為「Register Bus Multiprocessor System with Shift」之美國專利US 5,119,481的圖1及隨附本文中之元件10至13的「單元互連件(cell interconnect)」之方式來建構、操作及利用,且該單元互連件之其他細節揭示於(以非限制性實例說明)彼專利之圖3至圖8及隨附本文中,該專利之教示以引用之方式併入本文中且其複本在此藉由實例作為附錄B來申請,如根據本文件中之教示所調適。
‧外部記憶體快取控制器提供RI與外部DDR3 dram及快 閃記憶體之間的介面。
‧第二層級快取記憶體控制器提供RI與處理器核心之間的介面。
‧IO橋接器提供RI與IO匯流排及器件之間的DMA及程式化IO介面。
所說明記憶體系統為有利的,例如,此係因為其可用以組合高頻寬技術與頻寬效率且因為其跨越核心及/或其他處理模組(及/或可分別體現其之各別SOC或系統)及外部記憶體(DRAM及flash)而按比例調整。
環狀互連件(RI)通用操作 RI提供傳統分層通信方法:
‧快取協定-提供包括對事件之支援的全快取記憶體系統之整合一致性
‧封包內容-由資料、位址、命令、狀態及信號傳輸組成之有效負載
‧實體傳送-映射至信號。實施可具有不同平行等級及頻寬
封包內容 封包包括以下欄位:
‧SystemAddress[63:7]-對應於資料傳送或請求之區塊位址。所有傳送係以單一128位元組區塊為單位來進行。
‧RequestorID[31:0]-請求者之RI介面編號。ReqID[2:0]實施於第一實施中,剩餘部分保留。將每一RI之值固線連接為RI介面實施之部分。
‧命令
狀態-與命令相關聯之快取記憶體狀態。
‧早期有效-指示對應封包時槽含有有效命令之布林值(Boolean)。位元早期存在於封包中。早期有效及後期有效布林值兩者對於待有效之封包必須為真。
‧早期忙碌-指示命令不可由RI介面處理之布林值。命令必須由起始者重新嘗試。若設定為早期忙碌或後期忙 碌,則將封包視為忙碌。
‧後期有效-指示對應封包時槽含有有效命令之布林值。位元後期存在於封包中。早期有效及後期有效布林值兩者對於待有效之封包必須為真。當RI介面傳遞封包通過時,其應試圖在後期有效為假之情況下清空早期有效。
‧後期忙碌-指示命令不可由RI介面處理之布林值。命令必須由起始者重新嘗試。若設定為早期忙碌或後期忙碌,則將封包視為忙碌。當RI介面傳遞封包通過時,其應試圖在後期忙碌為真之情況下設定早期忙碌。
實體傳送
環狀互連頻寬可按比例調整以滿足超出2核心之可按比例調整實施的需要。可以階層方式按比例調整RI以提供虛擬無限制之可按比例調整性。
環狀互連實體傳送有效地為輪換移位暫存器(rotating shift register)。第一實施每RI介面利用4個階段。單一位元指定每一封包之第一循環(對應於下表1中之循環1)且在重設時初始化。
對於雙核心SEP實施實例,存在寬度為32個位元組之資料有效負載路徑及亦多工命令、狀態、流程控制及封包信號傳輸之57位元位址路徑。
指令集可擴充性
提供定義專用於特定應用程式及/或演算法之可程式化指令的能力。此等指令可以如下兩種方式添加:
‧專用功能單元-固定指令能力。此可為額外功能單元或對現存單元之添加。
‧可程式化功能單元-依據演算法之確切細則定製硬體單元的有限FPGA類型功能性。此能力自具特殊權限控制暫存器載入且可用於所有執行緒。
優勢及其他實施例
根據本發明建構之系統可用以提供用於執行資料塊(例如,如圖32中所說明)之執行環境(無識別單獨處理器或核心邊界之圖形細節):彼等資料塊(例如,應用程式、附帶軟體程式庫等)可以(例如)如揭示於US 5,535,393(「System for Parallel Processing That Compiles a[Tiled]Sequence of Instructions Within an Iteration Space」)中之此項技術中已知的習知方式來創建且指派至執行緒,該案之教示以引用之方式併入本文中。此類資料塊可有利地利用本文中所論述之記憶體存取指令以及揭示於(以非限制性實例說明)以引用方式併入之專利US 7,685,607及US 7,653,912之圖24A至圖24B及隨附本文中(例如,在題為「消費者-生產者記憶體」之章節中)的彼等指令,該等圖及本文之教示(且與記憶體存取 指令且特定而言(例如)清空及填充指令有關之其他者)以引用之方式併入本文中,如根據本文件中之教示所調適。
圖33中展示利用由根據本發明之系統提供之種類的執行環境之例示性非限制軟體架構,亦即,TV/機上盒應用程式提供同時執行之(以實例說明)電視、視訊出席、遊戲及其他應用程式(app)中的一或多者,該等應用程式(a)在此項技術中已知類型之共同應用程式框架(application framework)上執行,如根據本文件中之教示所調適,且又(b)在利用此項技術中已知類型(例如,Linux核心服務)之媒體框架(media framework)(例如,編解碼器、OpenGL、按比例調整及雜訊減小功能性、色彩轉換及校正功能性及圖框速率校正功能性,其全部以實例說明)的此項技術中已知類型之媒體(例如,視訊串流等)上執行,如根據本文件中之教示所調適,且又(c)在此項技術中已知類型之核心服務上執行,如根據本文件中之教示所調適,且又(d)在此項技術中已知類型之核心作業系統(例如,Linux)上執行,如根據本文件中之教示所調適。
所說明實施例之處理器模組、系統及方法特別適合於執行利用圖33中所展示類型之軟體架構的數位電影、整合視訊出席、基於虛擬全息圖之遊戲、基於全息圖之醫療成像、視訊密集應用、面部辨識、使用者定義之3D呈現、軟體應用,其全部以非限制性實例說明。
根據本發明之處理器模組及系統之優勢為(連同其他優勢)其提供「所有軟體」邏輯解決方案之靈活性及可程式 化性結合等於或好於「所有硬體」邏輯解決方案之效能的效能,如圖34中所描繪。
圖35中展示用於使用先前技術處理器進行視訊處理之消費型(或其他)器件的典型實施。一般而言,此等實施需要針對器件中之每一新功能添加新硬體(例如,額外硬體處理器邏輯)。比較而言,圖36中展示使用所說明實施例之處理器模組的對應實施。如自比較該等圖式顯而易見,通常需要先前技術實施中之固定固線式解決方案的處理可藉由根據所說明實施例之解決方案中的軟體管線來實行。此情形亦展示於圖46中,其中在每一或核心12至16上執行之指令的管線充當傳統上在先前技術中實踐之類型之對應硬體管線的軟體等效物。因此,例如,在核心12之TPU 12B上執行之指令220的管線執行與硬體管線222相同之功能性且代替硬體管線222;在核心14之TPU 14B上執行的軟體管線224執行與硬體管線226相同之功能性且代替硬體管線226;及在核心14之TPU 14B上執行的軟體管線228執行與硬體管線230相同之功能性且代替硬體管線230,其全部以非限制性實例說明。
除執行會執行與對應硬體管線相同之功能性且代替對應硬體管線的軟體管線之外,亦可在不添加新硬體之情況下將新功能添加至此等核心12至16,此係因為彼等功能常常可經由軟體管線來容納。
為此等目的,圖37說明使用根據本發明之SEP處理器用於根據本發明之系統之執行環境的應用程式、ARM二進位 檔案、媒體框架(此處例如為H.264及JPEG 2000邏輯)及其他組件(其全部以實例說明)之平行執行。
參看圖46,所說明核心為能夠執行替換通常由先前技術器件使用之類型之硬體組件的類似管線之軟體組件之管線的通用目的處理器。因此,例如,以非限制性實例說明,核心14執行經管線連接以用於視訊處理且包括下列之軟體組件:H.264解碼器軟體模組、純量及雜訊減小軟體模組、色彩校正軟體模組、圖框速率控制軟體模組(例如,如所展示)。此情形替換專用晶片(例如,充當H.264解碼之系統控制器的半導體晶片)上之類似硬體管線226的包括性執行,該專用晶片經管線連接至充當純量及雜訊減小模組之半導體晶片,經管線連接至起作用以用於色彩校正之半導體晶片且進一步經管線連接至充當圖框速率控制器之半導體晶片。
在操作中,(例如)管線224之各別軟體組件中的每一者作為一或多個執行緒來執行,對於給定任務,所有該等執行緒可在單一核心上執行或可在多個核心當中散佈。
為促進前述執行,核心12至16如上文所論述而操作,且每一者支援以下特徵(以非限制性實例說明)中之一或多個者:事件至執行緒之動態指派,位置獨立共用執行環境,經由執行緒執行個體化、維護及最佳化佈建服務品質,JPEG2000位元平面等量磁碟區行編碼,JPEG2000二進位算術碼查找,算術運算轉置,快取記憶體控制指令集及快取記憶體起始最佳化,及快取記憶體管理式記憶體系統。
本文中展示及描述了滿足上文所陳述之目標連同其他目標的處理器模組、系統及方法。將瞭解,所說明實施例僅為本發明之實例且體現對本發明之改變的其他實施例在本發明之範疇內。
10‧‧‧系統
10'‧‧‧系統
12‧‧‧SEP處理器模組/核心/嵌入式處理器模組/嵌入式核心/節點/處理器
12A‧‧‧功能單元/執行單元/算術邏輯單元
12B‧‧‧執行緒處理單元
12C‧‧‧事件查找表
12D‧‧‧快取記憶體
12E‧‧‧暫存器
12F‧‧‧啟動及管線控制單元
12G‧‧‧位址轉譯功能性
14‧‧‧SEP/處理器模組/核心/節點/處理器
14A‧‧‧功能單元
14B‧‧‧執行緒處理單元
14C‧‧‧事件查找表
14D‧‧‧快取記憶體
14E‧‧‧暫存器
14F‧‧‧啟動及管線控制單元
14G‧‧‧位址轉譯功能性
16‧‧‧SEP/處理器模組/核心/節點
16A‧‧‧功能單元
16B‧‧‧執行緒處理單元
16C‧‧‧事件查找表
16D‧‧‧快取記憶體
16E‧‧‧暫存器
100‧‧‧應用程式/檔案
100'‧‧‧經預處理應用程式
100"‧‧‧執行緒
100''''‧‧‧經啟用(或作用中)執行緒
102‧‧‧應用程式/檔案
102'‧‧‧經預處理應用程式
102"‧‧‧執行緒
102''''‧‧‧經啟用(或作用中)執行緒
104‧‧‧應用程式/檔案
104'‧‧‧經預處理應用程式
104"‧‧‧執行緒
104''''‧‧‧經啟用(或作用中)執行緒
106'‧‧‧事件表管理器程式碼模組/事件表管理器
106"‧‧‧執行緒
106''''‧‧‧事件表管理器模組
110‧‧‧器件
150‧‧‧器件
152‧‧‧器件/電視
154‧‧‧器件/機上盒
156‧‧‧器件/遙控器
158‧‧‧器件/蜂巢式電話
160‧‧‧器件
162‧‧‧器件/蜂巢式電話
164‧‧‧器件/電視
170‧‧‧分區
172‧‧‧分區
174‧‧‧分區
182‧‧‧本端事件查找表
184‧‧‧遠端事件查找表
186‧‧‧本端軟體事件
188‧‧‧本端記憶體事件
190‧‧‧硬體事件
200‧‧‧應用程式/檔案
200'‧‧‧經預處理應用程式
200"‧‧‧執行緒
200''''‧‧‧經啟用(或作用中)執行緒/應用程式
202‧‧‧應用程式/檔案
202'‧‧‧經預處理應用程式
202"‧‧‧執行緒
202''''‧‧‧經啟用(或作用中)執行緒/應用程式
204‧‧‧應用程式/檔案
204'‧‧‧經預處理應用程式
204"‧‧‧執行緒
204''''‧‧‧經啟用(或作用中)執行緒/應用程式
206'‧‧‧執行緒管理程式碼模組
206"‧‧‧執行緒
206''''‧‧‧執行緒管理程式碼
208‧‧‧表
210‧‧‧元素
212‧‧‧元素
220‧‧‧指令
222‧‧‧硬體管線
224‧‧‧軟體管線
226‧‧‧硬體管線
228‧‧‧軟體管線
230‧‧‧硬體管線/運算元
232‧‧‧暫存器
234‧‧‧暫存器
236‧‧‧暫存器
238‧‧‧暫存器
240‧‧‧暫存器
圖1描繪根據本發明之包括處理器模組的系統;圖2描繪包含圖1中所展示之類型之兩個處理器模組的系統;圖3描繪根據本發明之系統中的執行緒狀態及轉變;圖4描繪根據本發明之系統中的執行緒-指令抽象關係;圖5描繪根據本發明之處理器模組中的事件繫結及處理;圖6描繪根據本發明之系統之處理器模組中的暫存器;圖7至圖10描繪根據本發明之系統之處理器模組中的加法指令;圖11至圖16描繪根據本發明之系統之處理器模組中的包裝及解包裝指令;圖17至圖18描繪根據本發明之系統之處理器模組中的位元平面等量磁碟區指令;圖19描繪根據本發明之系統中的記憶體位址模型;圖20描繪根據本發明之系統中的快取記憶體階層組織;圖21描繪根據本發明之系統中之L2及L2E快取記憶體操作的總流程;圖22描繪根據本發明之系統中之L2快取記憶體的組織; 圖23描繪根據本發明之系統中之L2E存取命中的結果;圖24描繪根據本發明之系統中的L2E描述符樹查找;圖25描繪根據本發明之系統中的L2E實體記憶體佈局;圖26描繪根據本發明之系統中的區段表項目格式;圖27至圖29分別描繪根據本發明之SEP系統中的L1、L2及L2E快取記憶體定址及標籤格式;圖30描繪根據本發明之系統中的IO位址空間格式;圖31描繪根據本發明之系統中的記憶體系統實施;圖32描繪藉由根據本發明之系統提供之用於執行資料塊(tile)的執行環境;圖33描繪藉由根據本發明之系統提供的另一執行環境;圖34描繪根據本發明之處理器模組及系統的優勢;圖35描繪用於視訊處理之消費型(或其他)器件的典型實施;圖36描繪圖35之器件在根據本發明之系統中的實施;圖37描繪使用根據本發明之一個實踐之處理器用於應用程式及執行環境之其他組件之平行執行;圖38描繪根據本發明之准許事件至執行緒之動態指派的系統;圖39描繪根據本發明之提供位置獨立共用執行環境的系統;圖40描繪根據本發明之具有位置獨立共用執行環境及事件至執行緒之動態指派的系統中之執行緒的遷移;包括圖41A及圖41B之圖41為圖40中所使用之符號的關 鍵;圖42描繪根據本發明之經由執行緒執行個體化、維護及最佳化促進服務品質之准許的系統;圖43描繪根據本發明之功能單元與轉置同時執行選定算術運算的系統;圖44描繪根據本發明之功能單元藉由將處理器層級指令自JPEG2000二進位算術編碼器查找表儲存至暫存器值來執行該等指令的系統;圖45描繪根據本發明之功能單元藉由編碼暫存器中之值之等量磁碟區行以用於JPEG2000 EBCOT內之位元平面編碼來執行處理器層級指令的系統;圖46描繪根據本發明之在核心上執行之指令的管線用作傳統上在先前技術中實踐之類型的對應硬體管線之軟體等效物的系統;及圖47及圖48展示根據本發明之系統中的在具有及不具有關於快取記憶體之未再使用提示情況下之記憶體存取指令的效應。
10'‧‧‧系統
12‧‧‧SEP處理器模組/核心/嵌入式處理器模組/嵌入式核心/節點/處理器
12C‧‧‧事件查找表
152‧‧‧器件/電視
154‧‧‧器件/機上盒
156‧‧‧器件/遙控器
158‧‧‧器件/蜂巢式電話
160‧‧‧器件
162‧‧‧器件/蜂巢式電話
164‧‧‧器件/電視
170‧‧‧分區
172‧‧‧分區
174‧‧‧分區
182‧‧‧本端事件查找表
184‧‧‧遠端事件查找表
186‧‧‧本端軟體事件
188‧‧‧本端記憶體事件
190‧‧‧硬體事件

Claims (190)

  1. 具有快取記憶體管理式記憶體之數位資料處理器1.一種數位資料處理裝置,其包含:A.一或多個節點,其以通信方式彼此耦接,B.一或多個記憶體元件(「實體記憶體」),其以通信方式耦接至該等節點中之至少一者,C.該等節點中之至少一者包括一快取記憶體,該快取記憶體儲存藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者,D.其中該快取記憶體另外儲存指定各別資料或指令在該實體記憶體中之位址的標籤。
  2. 如請求項1之數位資料處理裝置,其包含包括該實體記憶體及該快取記憶體之系統記憶體。
  3. 如請求項2之數位資料處理裝置,其中該系統記憶體包含多個節點之該快取記憶體。
  4. 如請求項3之數位資料處理裝置,其中儲存於該快取記憶體中之該等標籤指定各別資料或指令在系統記憶體中之位址。
  5. 如請求項3之數位資料處理裝置,其中該等標籤指定該等各別資料或指令之一或多個狀態。
  6. 如請求項5之數位資料處理裝置,其中彼等狀態包括一已修改狀態及一參考計數狀態中之任一者。
  7. 如請求項1之數位資料處理裝置,其中該快取記憶體包含多個階層層級。
  8. 如請求項7之數位資料處理裝置,其中該多個階層層級包括一第一層級快取記憶體、一第二層級快取記憶體及一第二層級擴展快取記憶體中之至少一者。
  9. 如請求項1之數位資料處理裝置,其中藉由該等標籤指定之該等位址形成該等節點中之多者所共有的一系統位址空間之部分。
  10. 如請求項9之數位資料處理裝置,其中藉由該等標籤指定之該等位址形成所有該等節點所共有的一系統位址空間之部分。
  11. 一種數位資料處理裝置,其包含:A.一或多個節點,其以通信方式彼此耦接,該等節點中之至少一者一處理模組,B.一或多個記憶體元件(「實體記憶體」),其以通信方式耦接至該等節點中之至少一者,C.該等節點中之至少一者包括一快取記憶體,該快取記憶體儲存藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者,D.其中至少該快取記憶體儲存指定儲存於實體記憶體中之至少一資料或指令中之每一者的一系統位址及一實體位址之標籤(「擴展標籤」)。
  12. 如請求項11之數位資料處理裝置,其包含包括該實體記憶體及該快取記憶體之系統記憶體。
  13. 如請求項12之數位資料處理裝置,其包含包括該實體記憶體及多個節點之快取記憶體之系統記憶體。
  14. 如請求項12之數位資料處理裝置,其中藉由該等擴展標籤指定之一該系統位址形成該等節點中之多者所共有的一系統位址空間之部分。
  15. 如請求項14之數位資料處理裝置,其中藉由該等擴展標籤指定之一該系統位址形成所有該等節點所共有的一系統位址空間之部分。
  16. 如請求項13之數位資料處理裝置,其中該等標籤指定一該各別資料或指令之一或多個狀態。
  17. 如請求項16之數位資料處理裝置,其中彼等狀態包括一已修改狀態及一參考計數狀態中之任一者。
  18. 如請求項11之數位資料處理裝置,其中至少一該節點包含利用藉由一該擴展標籤指定之一該系統位址及一該實體位址以將一系統位址轉譯為一實體位址的位址轉譯。
  19. 一種數位資料處理裝置,其包含:A.一或多個節點,其以通信方式彼此耦接,該等節點中之至少一者一處理模組,B.一或多個記憶體元件(「實體記憶體」),其以通信方式耦接至該等節點中之至少一者,其中彼等記憶體元件中之一或多者包括快閃記憶體或其他掛接式磁碟機中之任一者,C.該等節點中之至少一者包括一快取記憶體,該快取記憶體儲存藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者,D.該實體記憶體及該等節點之該快取記憶體一起構成 系統記憶體,E.每一節點之該快取記憶體儲存藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者,且另外儲存指定至少一各別資料或指令在實體記憶體中之位址的標籤,其中彼等標籤中之至少一者(「擴展標籤」)指定儲存於實體記憶體中之至少一資料或指令中之每一者的一系統位址及一實體位址。
  20. 如請求項19之數位資料處理裝置,其中多個該等擴展標籤係在系統記憶體中組織為一樹。
  21. 如請求項19之數位資料處理裝置,其中該等擴展標籤中之一或多者係快取於一或多個節點之該快取記憶體系統中。
  22. 如請求項21之數位資料處理裝置,其中快取於一或多個節點之該快取記憶體系統中的該等擴展標籤中之該一或多者為用於最近由該各別節點存取或預期存取之資料及指令中之任一者的擴展標籤。
  23. 一種數位資料處理裝置,其包含:A.複數個節點,其藉由一匯流排、網路或其他媒體(統稱為「互連件」)以通信方式彼此耦接,B.一或多個記憶體元件(「實體記憶體」),其以通信方式耦接至該等節點中之至少一者,其中彼等記憶體元件中之一或多者包括快閃記憶體或其他掛接式磁碟機中之任一者,C.該等節點中之至少一者包括一快取記憶體,該快取 記憶體儲存藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者,D.該實體記憶體及該等節點之快取記憶體一起構成系統記憶體,E.每一節點之該快取記憶體儲存藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者,且另外儲存指定至少一各別資料或指令在實體記憶體中之位址的標籤,其中彼等標籤中之至少一者(「擴展標籤」)指定儲存於實體記憶體中之至少一資料或指令中之每一者的一系統位址及一實體位址。
  24. 如請求項23之數位資料處理裝置,其中該互連件包含一環狀互連件。
  25. 如請求項24之數位資料處理裝置,其中該環狀互連件包含一輪換移位暫存器。
  26. 如請求項23之數位資料處理裝置,其中一該節點在其自身之快取記憶體內的一快取未命中後沿著該匯流排、該網路或該等其他媒體用信號傳輸對一資料及指令中之任一者的一請求。
  27. 如請求項26之數位資料處理裝置,其中若未能自該等其他節點中之一者的該快取記憶體滿足該請求,則可自實體記憶體滿足該請求。
  28. 如請求項26之數位資料處理裝置,其中一該節點利用該匯流排、該網路或該等其他媒體來通信以更新快取於該等其他節點或另一系統記憶體中之任一者中的資料及指 令中之任一者。
  29. 如請求項26之數位資料處理裝置,其中一該節點利用該匯流排、該網路或該等其他媒體來傳達以更新快取於該等其他節點或該另一系統記憶體中之任一者中的擴展標籤。
  30. 一種用於數位資料處理之方法,其包含:A.提供以通信方式彼此耦接之一或多個節點,該等節點中之至少一者包括一處理模組,B.以通信方式將一或多個記憶體元件(「實體記憶體」)耦接至該等節點中之至少一者,C.將藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者儲存於該等節點中之至少一者的一快取記憶體中,D.其中該儲存步驟另外包括將指定各別資料或指令在該實體記憶體中之位址的標籤儲存於該快取記憶體中。
  31. 如請求項30之方法,其中該儲存步驟包括:將指定形成該等節點中之多者所共有的一系統位址空間之部分之位址的標籤儲存於該快取記憶體中。
  32. 如請求項31之方法,其包含以階層方式組織及存取該快取記憶體。
  33. 一種用於數位資料處理之方法,其包含:A.提供以通信方式彼此耦接之一或多個節點,B.以通信方式將一或多個記憶體元件(「實體記憶體」)耦接至該等節點中之至少一者, C.將藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者儲存於該等節點中之至少一者的一快取記憶體中,D.其中該儲存步驟包括:將指定儲存於實體記憶體中之至少一資料或指令中之每一者的一系統位址及一實體位址之標籤(「擴展標籤」)儲存於該快取記憶體中。
  34. 具有事件至執行緒之動態指派的通用目的處理器34.一種數位資料處理裝置,其包含:A.一或多個處理單元,其各自執行處理程序或執行緒(統稱為「執行緒」),B.一事件表,其耦接至該複數個處理單元且將事件映射至該複數個處理單元,C.硬體及軟體中之一或多者,其以通信方式耦接至在系統上執行之邏輯且向該邏輯註冊該硬體或該軟體之事件處理需要及/或能力中的任一者,且D.其中該邏輯基於使該等經註冊需要及能力彼此匹配及/或與該系統之組件之需要及能力匹配來更新該事件表。
  35. 如請求項34之數位資料處理裝置,其中在該等處理單元中之一者上執行的一預設系統執行緒提供該邏輯。
  36. 如請求項35之數位資料處理裝置,其中該邏輯基於該整個系統之要求及能力匹配事件處理需要及能力以反映一最佳映射。
  37. 如請求項36之數位資料處理裝置,其中該邏輯更新該事 件表以反映該最佳映射。
  38. 如請求項34之數位資料處理裝置,其包含一預處理器,該預處理器將事件表管理程式碼插入至將藉由該系統執行之軟體中。
  39. 如請求項38之數位資料處理裝置,其中該事件表管理程式碼在執行時使被插入該事件表管理程式碼之軟體在執行階段註冊其事件處理需要能力。
  40. 如請求項38之數位資料處理裝置,其中該程式碼係基於藉由一開發人員或其他者供應之指示詞。
  41. 如請求項40之數位資料處理裝置,其中該等指示詞反映該程式碼插入之該軟體的實際或預期要求。
  42. 如請求項40之數位資料處理裝置,其中該等指示詞反映一預期執行環境。
  43. 如請求項40之數位資料處理裝置,其中該等指示詞反映在匹配該程式碼插入之該軟體之能力或要求的環境能力或要求內可用的預期器件或軟體。
  44. 如請求項34之數位資料處理裝置,其中該邏輯包含一程式庫或其他中間程式碼、目標程式碼或其他程式碼模組。
  45. 一種用於數位資料處理之方法,其包含:A.提供一或多個處理單元,其各自執行處理程序或執行緒(統稱為「執行緒」),B.利用一事件表將事件映射至該等執行緒,C.註冊以通信方式耦接至系統之硬體或軟體中之任一 者的事件處理需要及/或能力,D.使彼等需要及/或能力彼此匹配及/或與該系統之組件之需要及/或能力匹配,及E.基於該匹配步驟之結果來更新該事件表。
  46. 如請求項45之方法,其中該註冊步驟包括:向在該系統上執行之一預設系統執行緒註冊該等事件處理需要及/或能力。
  47. 如請求項46之方法,其中該匹配步驟包括:基於該整個系統之要求及能力匹配事件處理需要及能力以反映一最佳映射。
  48. 如請求項45之方法,其包含利用一預處理器將事件表管理程式碼插入至將藉由該系統在執行階段執行之軟體中。
  49. 如請求項48之方法,其包含在執行階段執行該事件表管理程式碼以使被插入該事件表管理程式碼之軟體註冊其事件處理需要能力。
  50. 如請求項48之方法,其包含使該程式碼基於藉由一開發人員或其他者供應之指示詞。
  51. 如請求項50之方法,其中該等指示詞反映該程式碼插入之該軟體的實際或預期要求。
  52. 如請求項50之方法,其中該等指示詞反映一預期執行環境。
  53. 如請求項50之方法,其中該等指示詞反映在匹配該程式碼插入之該軟體之能力或要求的環境能力或要求內可用 的預期器件或軟體。
  54. 具有位置獨立共用執行環境之通用目的處理器54.一種用於數位資料處理之方法,其包含:A.在經耦接以用於通信之一或多個器件中的每一者中提供執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.藉由該等器件中之一第一者的該處理單元接收一第一事件之通知,C.在該第一器件之該處理單元中使一第一執行緒執行個體化以處置該第一事件及後續相關事件,D.將用於處置該事件之一指令序列中的至少一指令自與該等器件中之另一者之該處理單元相關聯的記憶體遷移至該第一器件之該處理單元,E.將該經遷移指令作為該第一執行緒之部分來執行。
  55. 如請求項54之方法,其包含重複步驟(D)至(E)直至該事件之處理已完成為止。
  56. 如請求項54之方法,其包含重複步驟(D)至(E)直至該第一執行緒進入一等待狀態為止。
  57. 如請求項54之方法,其包含將該經執行個體化之執行緒遷移至一第二器件之該處理單元以供其執行。
  58. 如請求項57之方法,其包含藉由該第二器件之實行單元接收一相關事件之通知。
  59. 如請求項58之方法,在該第二器件之該處理單元中使一第二執行緒執行個體化以處置該等相關事件。
  60. 如請求項59之方法,將用於處置該第一事件及該等後續相關事件之該指令序列中的至少一指令自與該第一器件之該處理單元相關聯的記憶體遷移至該第二器件之該處理單元。
  61. 如請求項60之方法,將該經遷移指令作為該第二執行緒之部分來執行。
  62. 如請求項54之方法,其包含重複以下步驟直至該第二事件之處理完成為止:A.將用於處置該第一事件及該等後續相關事件之該指令序列中的至少一指令自與第一器件之該處理單元相關聯的記憶體遷移至該第二器件之該處理單元。B.將該經遷移指令作為該第二執行緒之部分來執行。
  63. 如請求項54之方法,其包含重複以下步驟直至該第二執行緒進入一等待狀態為止:A.將用於處置該第一事件及該等後續相關事件之該指令序列中的至少一指令自與第一器件之該處理單元相關聯的記憶體遷移至該第二器件之該處理單元。B.將該經遷移指令作為該第二執行緒之部分來執行。
  64. 一種數位資料處理裝置,其包含:A.一或多個器件,其經耦接以用於通信,該一或多個器件中之每一者具有執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.該等器件中之至少一第一者的該處理單元以通信方式耦接至一事件表,該事件表將事件映射至在該等器件 中之一第二者之該處理單元上執行的執行緒,及C.該第一器件回應於映射至在該第二器件之該處理單元上執行之一執行緒的一事件之接收而將該事件投送至該器件以藉此進行處理。
  65. 如請求項64之數位資料處理裝置,其中該事件表將事件映射至在該等第一器件之該處理單元上執行的執行緒。
  66. 如請求項65之數位資料處理裝置,其中該第一器件回應於映射至在該第一器件之該處理單元上執行之一執行緒的一事件之接收而將該事件投送至該處理單元。
  67. 如請求項66之數位資料處理裝置,其中該事件表藉由傳回負責處理一事件之一處理單元之一執行緒id及一位址中的至少一者而回應對匹配該事件之一請求。
  68. 如請求項64之數位資料處理裝置,其中該事件表將事件映射至在處於與該第一器件相同之一分區中之一或多個器件的處理單元上執行的執行緒。
  69. 如請求項68之數位資料處理裝置,其中該分區包含一區域網路。
  70. 如請求項64之數位資料處理裝置,其中該等器件包含電視、機上盒、蜂巢式電話、個人數位助理及遙控器中之任一者。
  71. 經由執行緒執行個體化、維護及最佳化佈建服務品質之通用目的處理器71.一種數位資料處理裝置,其包含:A.一或多個器件,其經耦接以用於通信,該一或多個 器件中之每一者具有執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.一事件遞送機制,其將中斷及其他事件遞送至該等處理單元,及C.邏輯,其在該等處理單元中之一或多者中執行,該邏輯在執行階段最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  72. 如請求項71之數位資料處理裝置,其中該前述邏輯最佳化執行緒執行個體化、維護及執行緒指派中之至少一者以滿足個別執行緒、諸多類別執行緒、個別事件及/或諸多類別事件之服務品質要求。
  73. 如請求項72之數位資料處理裝置,其中該等服務品質要求包括下列中之一或多者:語音處理事件、應用程式及/或執行緒之資料處理要求,web資料傳輸事件、應用程式及/或執行緒之資料輸送量要求,遊戲事件、應用程式及/或執行緒之資料處理及顯示要求,視訊出席事件、應用程式及/或執行緒之資料處理及顯示要求,視聽(例如,電視或視訊)事件、應用程式及/或執行緒之解碼、純量及雜訊減小、色彩校正、圖框速率控制以及其他處理及顯示要求, 系統75以及在其上處理之事件、應用程式及/或執行緒的能量利用率要求,及/或藉由個別執行緒、諸多類別執行緒、個別事件及/或諸多類別事件處理之同時事件之實際或預期數目執行緒、諸多類別執行緒、事件及/或諸多類別事件優先於其他執行緒、諸多類別執行緒、事件及/或諸多類別事件之處理的優先順序
  74. 如請求項71之數位資料處理裝置,其中該邏輯藉由在正常過程中需要一或多個事件處置執行緒之前調用該一或多個事件處置執行緒來最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  75. 如請求項74之數位資料處理裝置,其中在需要之前調用之該一或多個事件處置執行緒可用以在確實出現該需要時服務就緒服務使用者動作、軟體及/或硬體中斷。
  76. 如請求項71之數位資料處理裝置,其中該邏輯藉由執行個體化一執行緒之多個執行個體及將每一者映射至預期在未來發生之不同各別即將進行事件來最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  77. 如請求項76之數位資料處理裝置,其中該多個經執行個體化之執行緒確保在該等即將進行事件確實發生時更立即服務該等事件。
  78. 如請求項76之數位資料處理裝置,其中不同各別即將進行事件為通常成批發生之事件。
  79. 如請求項71之數位資料處理裝置,其中該邏輯藉由週期 性地、偶發地、情節性地、隨機地或以其他方式產生中斷以防止一或多個執行緒變為不作用來最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  80. 如請求項79之數位資料處理裝置,其中該邏輯甚至在該一或多個執行緒之正常處理的明顯終止之後仍產生該等中斷以防止該等執行緒變為不作用。
  81. 如請求項80之數位資料處理裝置,其中該邏輯產生該等中斷以確保藉由該一或多個執行緒更立即服務該等即將進行事件。
  82. 一種用於數位資料處理之方法,其包含:A.在經耦接以用於通信之一或多個器件中的每一者中提供執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.將中斷及其他事件遞送至該等處理單元,C.在該等處理單元中之一或多者中執行執行緒管理程式碼,該執行緒管理程式碼最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  83. 如請求項82之方法,其中步驟(C)包括:將該執行緒管理程式碼插入至將藉由該一或多個處理單元執行之軟體中。
  84. 如請求項83之方法,在預處理、編譯程式/連結程式或載入中之任一者期間將該執行緒管理程式碼插入至該軟體中。
  85. 如請求項82之方法,其中該執行緒管理程式碼最佳化執 行緒執行個體化、維護及執行緒指派中之至少一者以滿足個別執行緒、諸多類別執行緒、個別事件及/或諸多類別事件之服務品質要求。
  86. 如請求項85之方法,其中該等服務品質要求包括下列中之一或多者:語音處理事件、應用程式及/或執行緒之資料處理要求,web資料傳輸事件、應用程式及/或執行緒之資料輸送量要求,遊戲事件、應用程式及/或執行緒之資料處理及顯示要求,視訊出席事件、應用程式及/或執行緒之資料處理及顯示要求,視聽(例如,電視或視訊)事件、應用程式及/或執行緒之解碼、純量及雜訊減小、色彩校正、圖框速率控制以及其他處理及顯示要求,系統75以及在其上處理之事件、應用程式及/或執行緒的能量利用率要求,及/或藉由個別執行緒、諸多類別執行緒、個別事件及/或諸多類別事件處理之同時事件之實際或預期數目執行緒、諸多類別執行緒、事件及/或諸多類別事件優先於其他執行緒、諸多類別執行緒、事件及/或諸多類別事件的優先順序。
  87. 如請求項82之方法,其中該執行緒管理邏輯藉由在一或 多個事件處置執行緒在正常過程中需要之前調用該一或多個事件處置執行緒來最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  88. 如請求項87之方法,其中在需要之前調用之該一或多個事件處置執行緒可用以在確實出現該需要時服務就緒服務使用者動作、軟體及/或硬體中斷。
  89. 如請求項82之方法,其中該執行緒管理邏輯藉由執行個體化一執行緒之多個執行個體及將每一者映射至預期在未來發生之不同各別即將進行事件來最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  90. 如請求項89之方法,其中該多個經執行個體化之執行緒確保在該等即將進行事件確實發生時更立即服務該等事件。
  91. 如請求項89之方法,其中不同各別即將進行事件為通常成批發生之事件。
  92. 如請求項82之方法,其中該執行緒管理邏輯藉由週期性地、偶發地、情節性地、隨機地或以其他方式產生中斷以防止一或多個執行緒變為不作用來最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  93. 如請求項92之方法,其中該執行緒管理邏輯甚至在該一或多個執行緒之正常處理的明顯終止之後仍產生該等中斷以防止該等執行緒變為不作用。
  94. 如請求項93之方法,其中該執行緒管理邏輯產生該等中斷以確保藉由該一或多個執行緒更立即服務該等即將進 行事件。
  95. 具有JPEG2000位元平面等量磁碟區行編碼之通用目的處理器95.一種數位資料處理器,其包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接,C.該執行單元藉由針對JPEG2094嵌入式最佳截斷區塊編碼(EBCOT)內之位元平面編碼而編碼一等量磁碟區行及將其儲存至該一或多個暫存器中之一或多者來執行一選定處理器層級指令。
  96. 如請求項95之數位資料處理器,其中該執行單元基於待編碼之一行的指定位元及鄰近於該等位元之位元來產生該經編碼等量磁碟區行。
  97. 如請求項96之數位資料處理器,其中待編碼之一行之該等位元及鄰近於該等位元之位元中的至少一者係指定為該處理器層級指令之參數。
  98. 如請求項95之數位資料處理器,其中該執行單元自待編碼之該行的四個位元及鄰近於該四個位元之該等位元來產生該經編碼等量磁碟區行。
  99. 如請求項95之數位資料處理器,其中該執行單元回應於除指定待編碼之該行之該等位元及鄰近於該等位元之位元外亦指定待編碼之該等位元中之至少一者的一當前編碼狀態的一指令而產生該經編碼等量磁碟區行。
  100. 如請求項99之數位資料處理器,其中待編碼之每一位元的該編碼狀態係用三個位元來表示。
  101. 如請求項95之數位資料處理器,其中該執行單元回應於指定包括下列中之任一者的一編碼遍次之一指令的執行而產生經編碼等量磁碟區行:一有效性傳播遍次(SP)、一量值精細化遍次(MR)、一清除遍次(CP)及一組合式MR與CP遍次。
  102. 如請求項101之數位資料處理器,其中該執行單元選擇性地產生待編碼之該等位元中之至少一者的一經更新編碼狀態且將其儲存至一或多個暫存器。
  103. 一種用於數位資料處理之方法,其包含:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由針對JPEG2102嵌入式最佳截斷區塊編碼(EBCOT)內之位元平面編碼而編碼一等量磁碟區行及將其儲存至該一或多個暫存器中之一或多者來在該執行單元上執行一選定處理器層級指令。
  104. 如請求項103之方法,其中該執行步驟包括:基於待編碼之一行的指定位元及鄰近於該等位元之位元來產生該經編碼等量磁碟區行。
  105. 如請求項104之數位資料處理器,其中待編碼之一行之該等位元及鄰近於該等位元之位元中的至少一者係指定為該處理器層級指令之參數。
  106. 如請求項103之方法,其中該執行步驟包括:基於待編碼之該行的四個位元及鄰近於該四個位元之該等位元來 產生該經編碼等量磁碟區行。
  107. 如請求項103之方法,其中該執行步驟包括:回應於除指定待編碼之該行之該等位元及鄰近於該等位元之位元外亦指定待編碼之該等位元中之至少一者的一當前編碼狀態的一指令而產生該經編碼等量磁碟區行。
  108. 如請求項107之方法,其中待編碼之每一位元的該編碼狀態係用三個位元來表示。
  109. 如請求項103之方法,其中該執行步驟包括回應於指定包括下列中之任一者的一編碼遍次之一指令的執行而產生該經編碼等量磁碟區行:一有效性傳播遍次(SP)、一量值精細化遍次(MR)、一清除遍次(CP)及一組合式MR與CP遍次。
  110. 如請求項109之方法,其中該執行步驟包括:選擇性地產生待編碼之該等位元中之至少一者的一經更新編碼狀態且將其儲存至一或多個暫存器。
  111. 具有JPEG2000二進位算術碼查找之通用目的處理器111.一種數位資料處理器,其包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接,C.該執行單元藉由編碼來自一JPEG2000二進位算術編碼器查找表之一或多個值及藉由將該一或多個值儲存至該一或多個暫存器中之一或多者而儲存至該等暫存器來執行一選定處理器層級指令。
  112. 如請求項111之數位資料處理器,其中該JPEG2000二進 位算術編碼器查找表為一Qe值及機率估計查找表。
  113. 如請求項111之數位資料處理器,其中該執行單元回應於對此一選定處理器層級指令而將來自此一查找表之一或多個函數值儲存至該一或多個暫存器。
  114. 如請求項113之數位資料處理器,其中該函數值為一Qe值函數值。
  115. 如請求項113之數位資料處理器,其中該函數值為一NMPS函數值。
  116. 如請求項113之數位資料處理器,其中該函數值為一NLPS函數值。
  117. 如請求項113之數位資料處理器,其中該函數值為一SWITCH函數值。
  118. 如請求項111之數位資料處理器,其中該執行單元將該一或多個值儲存至該一或多個暫存器作為一JPEG2000解碼或編碼指令序列之部分。
  119. 如請求項111之數位資料處理器,其中該執行單元自一硬編碼表、含於該等暫存器中之一表及/或該表之演算法近似中之任一者來產生該一或多個值。
  120. 一種數位資料處理之方法,其包含:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由編碼來自一JPEG2009二進位算術編碼器查找表之一或多個值及藉由將該一或多個值儲存至該一或多個 暫存器中之一或多者而儲存至該等暫存器來在該執行單元上執行一選定處理器層級指令。
  121. 如請求項120之方法,其中該JPEG2009二進位算術編碼器查找表為一Qe值及機率估計查找表。
  122. 如請求項120之方法,其中該執行步驟包括:回應於對此一選定處理器層級指令而將來自此一查找表之一或多個函數值儲存至該一或多個暫存器。
  123. 如請求項122之方法,其中該函數值為一Qe值函數值。
  124. 如請求項122之方法,其中該函數值為一NMPS函數值。
  125. 如請求項122之方法,其中該函數值為一NLPS函數值。
  126. 如請求項122之方法,其中該函數值為一SWITCH函數值。
  127. 如請求項120之方法,其中該執行步驟包括:將該一或多個值儲存至該一或多個暫存器作為一JPEG2009解碼或編碼指令序列之部分。
  128. 如請求項120之方法,其中該執行步驟包括:自一硬編碼表、含於該等暫存器中之一表及/或該表之演算法近似中之任一者產生該一或多個值。
  129. 具有算術運算轉置參數之通用目的處理器129.一種數位資料處理器,其包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接,C.該執行單元執行指定一選定算術運算及指定待藉由一轉置執行運算的一處理器層級指令,該執行係藉由對 一或多個指定運算元執行該指定算術運算及藉由以轉置格式將該運算之一結果儲存至該等暫存器中之一或多者來進行。
  130. 如請求項129之數位資料處理器,其中該等指定運算元為暫存器且其中該執行單元跨越多個暫存器而儲存該運算之該結果。
  131. 如請求項130之數位資料處理器,其中該等指定運算元在邏輯上等效於矩陣列,且其中該執行單元以等效於一矩陣行之一邏輯儲存該運算之該結果。
  132. 如請求項129之數位資料處理器,其中該執行單元將該運算之該結果寫入為下列中之任一者:(i)四個鄰近暫存器之一四分之一字組行,(ii)八個鄰近暫存器之一位元組行,其全部以實例說明。
  133. 如請求項129之數位資料處理器,其中該執行單元將該運算之該結果分成單獨部分且將其置於單獨暫存器中之一特定共同位元組、位元或其他位置處。
  134. 如請求項129之數位資料處理器,其中該運算為一加法或減法運算中之任一者。
  135. 一種數位資料處理器,其包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接,C.該執行單元執行指定一選定算術運算之一處理器層級指令,該執行係藉由對一或多個指定運算元執行該指定算術運算及藉由取決於該指令之一轉置參數之一設定 而以一非轉置格式及一轉置格式中之任一者儲存運算之一結果來進行。
  136. 如請求項135之數位資料處理器,其中該等指定運算元為暫存器,且其中該執行單元在該轉置參數未設定之情況下將該運算之該結果儲存於一暫存器內及在該轉置參數設定之情況下跨越多個暫存器而儲存該運算之該結果。
  137. 如請求項136之數位資料處理器,其中該等指定運算元在邏輯上等效於矩陣列,且其中該執行單元在該轉置參數未設定之情況下以等效於一矩陣列之一邏輯儲存該運算之該結果及在該轉置參數設定之情況下以等效於一矩陣行之一邏輯儲存該運算之該結果。
  138. 一種用於數位資料處理器之方法,其包含:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由該執行單元執行指定一選定算術運算及指定待藉由一轉置執行運算的一處理器層級指令,該執行係藉由對一或多個指定運算元執行該指定算術運算及藉由以轉置格式將該運算之一結果儲存至該等暫存器中之一或多者來進行。
  139. 如請求項138之方法,其中該等指定運算元為暫存器,且其中該執行單元跨越多個暫存器而儲存該運算之該結果。
  140. 如請求項139之方法,其中該等指定運算元在邏輯上等效於矩陣列,且其中該執行單元以等效於一矩陣行之一邏輯儲存該運算之該結果。
  141. 如請求項138之方法,其中該執行步驟包括將該運算之該結果寫入為下列中之任一者:(i)四個鄰近暫存器之一四分之一字組行,(ii)八個鄰近暫存器之一位元組行,其全部以實例說明。
  142. 如請求項138之方法,其中該執行步驟包括:將該運算之該結果分成單獨部分且將其儲存至單獨暫存器中之一特定共同位元組、位元或其他位置處。
  143. 如請求項138之方法,其中該運算為一加法或減法運算中之任一者。
  144. 一種數位資料處理器之方法,其包含:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由一執行單元執行指定一選定算術運算之一處理器層級指令,該執行係藉由對一或多個指定運算元執行該指定算術運算及藉由取決於該指令之一轉置參數之一設定而以一非轉置格式及一轉置格式中之任一者儲存運算之一結果來進行。
  145. 如請求項144之方法,其中該等指定運算元為暫存器,且其中該執行步驟包括:在該轉置參數未設定之情況下將該運算之該結果儲存於一暫存器內及在該轉置參數設 定之情況下跨越多個暫存器而儲存該運算之該結果。
  146. 如請求項145之方法,其中該等指定運算元在邏輯上等效於矩陣列,且其中該執行步驟包括:在該轉置參數未設定之情況下以等效於一矩陣列之一邏輯儲存該運算之該結果及在該轉置參數設定之情況下以等效於一矩陣行之一邏輯儲存該運算之該結果。
  147. 具有快取記憶體控制指令集及快取記憶體起始最佳化之通用目的處理器147.一種數位資料處理器,其包含:A.一快取記憶體子系統,其包括快取記憶體,B.一或多個暫存器,C.一執行單元,其與該一或多個暫存器通信耦接且與該快取記憶體子系統通信耦接,該執行單元執行記憶體參考指令以在該快取記憶體與該一或多個暫存器之間傳送資料及指令(統稱為「資料」)中之任一者,D.該快取記憶體子系統回應於實行該一或多個暫存器與該快取記憶體之間的資料傳送之選定記憶體參考指令的執行而使對該快取記憶體之利用變化。
  148. 如請求項147之數位資料處理器,其中快取記憶體子系統回應於藉由該執行單元執行之記憶體參考指令而選擇性地使替換及已修改區塊回寫變化。
  149. 如請求項147之數位資料處理器,其中該快取記憶體子系統回應於此類記憶體參考指令而選擇性地使與經快取資料相關聯之一參考計數的一值變化。
  150. 如請求項149之數位資料處理器,其中該快取記憶體子系統回應於選定記憶體參考指令而迫使該參考計數值為一低值。
  151. 如請求項150之數位資料處理器,其中一低值加速對與該值相關聯之該經快取資料的替換。
  152. 如請求項147之數位資料處理器,其中該等記憶體參考指令包括下列中之任一者:LOAD(載入暫存器)、STORE(儲存至記憶體)、LOADPAIR(載入暫存器對)、STOREPAIR(儲存對至記憶體)、PREFETCH(預提取記憶體)、LOADPRED(載入述詞暫存器)、STOREPRED(儲存述詞暫存器)、EMPTY(清空記憶體),及FILL(填充記憶體)指令。
  153. 一種數位資料處理器,其包含:A.一快取記憶體子系統,其包括快取記憶體,B.一或多個暫存器,C.一執行單元,其與該一或多個暫存器通信耦接且與該快取記憶體子系統通信耦接,該執行單元執行記憶體參考指令以在該快取記憶體與該一或多個暫存器之間傳送資料及指令(統稱為「資料」)中之任一者,D.該快取記憶體子系統回應於實行該一或多個暫存器與該快取記憶體之間的資料傳送之選定記憶體參考指令的執行而選擇性地使與經快取資料相關聯之一參考計數的一值變化。
  154. 如請求項153之數位資料處理器,其中該快取記憶體子 系統優先用新資料替換儲存於該快取記憶體中且與較低參考計數值相關聯之舊資料。
  155. 如請求項154之數位資料處理器,其中該快取記憶體子系統回應於選定記憶體參考指令而迫使該參考計數值為一低值。
  156. 如請求項154之數位資料處理器,其中該快取記憶體子系統回應於包括一未再使用提示之記憶體參考指令而迫使該參考計數值為一低值。
  157. 一種數位資料處理之方法,其包含:A.在與一或多個暫存器通信耦接且與包括一快取記憶體之一快取記憶體子系統通信耦接的一執行單元中執行記憶體參考指令,以在該快取記憶體與該一或多個暫存器之間傳送資料及指令(統稱為「資料」)中之任一者,及B.藉由該快取記憶體子系統回應於實行該一或多個暫存器與該快取記憶體之間的資料傳送之選定記憶體參考指令的執行而使對該快取記憶體之利用變化。
  158. 如請求項157之方法,其中該變化步驟包括:藉由該快取記憶體子系統回應於藉由該執行單元執行之記憶體參考指令而選擇性地使替換及已修改區塊回寫變化。
  159. 如請求項157之方法,其中該變化步驟包括:藉由該快取記憶體子系統回應於此類記憶體參考指令而使與經快取資料相關聯之一參考計數的一值變化。
  160. 如請求項159之方法,其中該變化步驟包括:藉由該快取記憶體子系統回應於選定記憶體參考指令而迫使該參 考計數值為一低值。
  161. 如請求項160之方法,其中一低值加速對與該值相關聯之該經快取資料的替換。
  162. 如請求項157之方法,其中該等記憶體參考指令包括下列中之任一者:LOAD(載入暫存器)、STORE(儲存至記憶體)、LOADPAIR(載入暫存器對)、STOREPAIR(儲存對至記憶體)、PREFETCH(預提取記憶體)、LOADPRED(載入述詞暫存器)、STOREPRED(儲存述詞暫存器)、EMPTY(清空記憶體),及FILL(填充記憶體)指令。
  163. 一種數位資料處理之方法,其包含:A.藉由與一或多個暫存器通信耦接且與一快取記憶體子系統通信耦接之一執行單元執行記憶體參考指令以在該快取記憶體與該一或多個暫存器之間傳送資料及指令(統稱為「資料」)中之任一者,B.藉由該快取記憶體子系統回應於實行該一或多個暫存器與該快取記憶體之間的資料傳送之選定記憶體參考指令的執行而選擇性地使與經快取資料相關聯之一參考計數的一值變化。
  164. 如請求項163之方法,其包含藉由該快取記憶體子系統在該快取記憶體中優先用新資料替換儲存於該快取記憶體中且與較低參考計數值相關聯之舊資料。
  165. 如請求項164之方法,其中該變化步驟包括:藉由該快取記憶體子系統回應於選定記憶體參考指令而迫使該參考計數值為一低值。
  166. 如請求項164之方法,其中該變化步驟包括:藉由該快取記憶體子系統回應於包括一未再使用提示之記憶體參考指令而迫使該參考計數值為一低值。
  167. 執行替換類似硬體組件管線之軟體組件管線的通用目的處理器及數位資料處理系統167.一種數位資料處理裝置,其包含:A.一或多個器件,其經耦接以用於通信,該一或多個器件中之每一者具有執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.該等處理單元執行一起定義軟體組件之一管線的複數個執行緒,C.其中該等處理單元執行軟體組件之該管線以執行與硬體組件之類似管線相同但代替硬體組件之類似管線的功能。
  168. 如請求項167之數位資料處理裝置,其中定義該等軟體組件中之一者的一或多個執行緒在不同於定義另一各別軟體組件之一或多個執行緒的一處理單元上操作。
  169. 如請求項167之數位資料處理裝置,其用於視訊處理,該數位資料處理裝置包含:A.一軟體組件,其定義在該等處理單元中之一或多者上執行的一H.430解碼器模組,B.一軟體組件,其定義在該等處理單元中之一或多者上執行的純量及雜訊減小模組,C.一軟體組件,其定義在該等處理單元中之一或多者 上執行的一色彩校正模組,D.一軟體組件,其定義在該等處理單元中之一或多者上執行的一圖框速率控制軟體模組。
  170. 如請求項169之數位資料處理裝置,其執行與包括充當H.430解碼之一系統控制器之一半導體晶片的一硬體管線相同的功能,該半導體晶片經管線連接至充當一純量及雜訊減小模組之一半導體晶片、管線連接至起作用以用於色彩校正之一半導體晶片且進一步管線連接至充當一圖框速率控制器之一半導體晶片。
  171. 如請求項167之數位資料處理裝置,其中該等處理單元將該等管線式軟體組件作為單獨各別執行緒來執行。
  172. 如請求項167之數位資料處理裝置,其中A.該等器件中之至少一者包括一快取記憶體,該快取記憶體儲存藉由該各別處理單元存取及預期存取中之任一者的資料及指令中之至少一者,B.其中該快取記憶體另外儲存指定各別資料或指令在耦接至該數位資料處理裝置之一實體記憶體中之位址的標籤。
  173. 如請求項167之數位資料處理裝置,其中該等處理單元中之至少一者包含:A.一事件表,其耦接至該複數個處理單元且將事件映射至該複數個處理單元,B.硬體及軟體中之一或多者,其以通信方式耦接至在該系統上執行之邏輯且向該邏輯註冊該硬體或該軟體之 事件處理需要及/或能力中的任一者,及C.其中該邏輯基於使該等經註冊需要及能力彼此匹配及/或與該系統之組件之需要及能力匹配來更新該事件表。
  174. 如請求項167之數位資料處理裝置,其中A.該等器件中之至少一第一者的該處理單元以通信方式耦接至一事件表,該事件表將事件映射至在該等器件中之一第二者之該處理單元上執行的執行緒,及B.該第一器件回應於映射至在該第二器件之該處理單元上執行之一執行緒的一事件之接收而將該事件投送至該器件以藉此進行處理。
  175. 如請求項167之數位資料處理裝置,其中該等處理單元中之至少一者包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接,C.該執行單元執行指定一選定算術運算及指定待藉由一轉置執行運算的一處理器層級指令,該執行係藉由對一或多個指定運算元執行該指定算術運算及藉由以轉置格式將該運算之一結果儲存至該等暫存器中之一或多者來進行。
  176. 如請求項167之數位資料處理裝置,其中該等處理單元中之至少一者包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接, C.該執行單元藉由編碼來自一JPEG2166二進位算術編碼器查找表之一或多個值及藉由將該一或多個值儲存至該一或多個暫存器中之一或多者而儲存至該等暫存器來執行一選定處理器層級指令。
  177. 如請求項167之數位資料處理裝置,其中該等處理單元中之至少一者包含:A.一或多個暫存器,B.一執行單元,其與該一或多個暫存器通信耦接,C.該執行單元藉由針對JPEG2260嵌入式最佳截斷區塊編碼(EBCOT)內之位元平面編碼而編碼一等量磁碟區行及將其儲存至該一或多個暫存器中之一或多者來執行一選定處理器層級指令。
  178. 如請求項167之數位資料處理裝置,其中該等處理單元中之一或多者包含:A.一事件遞送機制,其將中斷及其他事件遞送至該等處理單元,及B.邏輯,其在該等處理單元中之一或多者中執行,該邏輯在執行階段最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  179. 如請求項167之數位資料處理裝置,其中該等處理單元中之至少一者包含:A.一快取記憶體子系統,其包括快取記憶體,B.一或多個暫存器,C.一執行單元,其與該一或多個暫存器通信耦接且與 該快取記憶體子系統通信耦接,該執行單元執行記憶體參考指令以在該快取記憶體與該一或多個暫存器之間傳送資料及指令(統稱為「資料」)中之任一者,D.該快取記憶體子系統回應於實行該一或多個暫存器與該快取記憶體之間的資料傳送之選定記憶體參考指令的執行而使對該快取記憶體之利用變化。
  180. 一種數位資料處理系統之方法,其包含:A.提供一或多個器件,其經耦接以用於通信,該一或多個器件中之每一者具有執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.在該等處理單元上執行一起定義軟體組件之一管線的複數個執行緒,C.其中該等處理單元執行軟體組件之該管線以執行與硬體組件之類似管線相同但代替硬體組件之類似管線的功能。
  181. 如請求項180之方法,其中定義該等軟體組件中之一者的一或多個執行緒在不同於定義另一各別軟體組件之一或多個執行緒的一處理單元上操作。
  182. 如請求項180之方法,其包含將該等管線式軟體組件作為單獨各別執行緒來在該等處理單元上執行。
  183. 如請求項180之方法,其包含以下步驟A.將藉由該各別節點存取及預期存取中之任一者的資料及指令中之至少一者儲存於節點中之至少一者的一快取記憶體中, B.其中該儲存步驟另外包括將指定各別資料或指令在實體記憶體中之位址的標籤儲存於該快取記憶體中。
  184. 如請求項180之方法,其包含在該等處理單元中之至少一者上執行以下步驟:A.利用一事件表將事件映射至該等執行緒,B.註冊以通信方式耦接至該系統之硬體或軟體中之任一者的事件處理需要及/或能力,C.使該等需要及/或該等能力彼此匹配及/或與該系統之組件之需要及/或能力匹配,及D.基於該匹配步驟之結果來更新該事件表。
  185. 如請求項180之方法,其包含在該等處理單元中之至少一者上執行以下步驟:A.在經耦接以用於通信之一或多個器件中的每一者中提供執行處理程序或執行緒(統稱為「執行緒」)之至少一處理單元,B.藉由該等器件中之一第一者的該處理單元接收一第一事件之通知,C.在該第一器件之該處理單元中使一第一執行緒執行個體化以處置該第一事件及後續相關事件,D.將用於處置該事件之一指令序列中的至少一指令自與該等器件中之另一者之該處理單元相關聯的記憶體遷移至該第一器件之該處理單元,E.將該經遷移指令作為該第一執行緒之部分來執行。
  186. 如請求項180之方法,其包含在該等處理單元中之至少 一者上執行以下步驟:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由該執行單元執行指定一選定算術運算及指定待藉由一轉置執行運算的一處理器層級指令,該執行係藉由對一或多個指定運算元執行該指定算術運算及藉由以轉置格式將該運算之一結果儲存至該等暫存器中之一或多者來進行。
  187. 如請求項180之方法,其包含在該等處理單元中之至少一者上執行以下步驟:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由編碼來自一JPEG2175二進位算術編碼器查找表之一或多個值及藉由將該一或多個值儲存至該一或多個暫存器中之一或多者而儲存至該等暫存器來在該執行單元上執行一選定處理器層級指令。
  188. 如請求項180之方法,其包含在該等處理單元中之至少一者上執行以下步驟:A.提供一或多個暫存器,B.提供一執行單元,其與該一或多個暫存器通信耦接,C.藉由針對JPEG2268嵌入式最佳截斷區塊編碼 (EBCOT)內之位元平面編碼而編碼一等量磁碟區行及將其儲存至該一或多個暫存器中之一或多者來在該執行單元上執行一選定處理器層級指令。
  189. 如請求項180之方法,其包含以下步驟A.將中斷及其他事件遞送至該等處理單元,B.在該等處理單元中之一或多者中執行執行緒管理程式碼,該執行緒管理程式碼最佳化執行緒執行個體化、維護及執行緒指派中之至少一者。
  190. 如請求項180之方法,其包含在該等處理單元中之至少一者上執行以下步驟:A.在與該一或多個暫存器通信耦接且與包括一快取記憶體之一快取記憶體子系統通信耦接的一執行單元中執行記憶體參考指令,以在該快取記憶體與該一或多個暫存器之間傳送資料及指令(統稱為「資料」)中之任一者,及B.藉由該快取記憶體子系統回應於實行該一或多個暫存器與該快取記憶體之間的資料傳送之選定記憶體參考指令的執行而使對該快取記憶體之利用變化。
TW101147084A 2012-12-12 2012-12-12 通用目的數位資料處理器、系統及方法 TW201423402A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101147084A TW201423402A (zh) 2012-12-12 2012-12-12 通用目的數位資料處理器、系統及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101147084A TW201423402A (zh) 2012-12-12 2012-12-12 通用目的數位資料處理器、系統及方法

Publications (1)

Publication Number Publication Date
TW201423402A true TW201423402A (zh) 2014-06-16

Family

ID=51394004

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101147084A TW201423402A (zh) 2012-12-12 2012-12-12 通用目的數位資料處理器、系統及方法

Country Status (1)

Country Link
TW (1) TW201423402A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608352B (zh) * 2016-07-10 2017-12-11 華邦電子股份有限公司 資料管理方法以及具有快閃記憶體的裝置
TWI648625B (zh) * 2015-03-19 2019-01-21 美商凱為有限責任公司 管理位址獨立的頁面屬性
CN110121702A (zh) * 2017-10-20 2019-08-13 图核有限公司 结合多线程处理器中多个线程的状态
TWI703451B (zh) * 2017-11-03 2020-09-01 美商卡赫倫特羅吉克斯公司 處理器操作方法、相關電腦系統、及非暫時性電腦可存取儲存媒體
TWI761992B (zh) * 2020-10-16 2022-04-21 創鑫智慧股份有限公司 資料計算裝置及其操作方法
TWI800560B (zh) * 2017-11-20 2023-05-01 南韓商三星電子股份有限公司 多處理器系統、資料管理方法以及非暫態電腦可讀取儲存媒體

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI648625B (zh) * 2015-03-19 2019-01-21 美商凱為有限責任公司 管理位址獨立的頁面屬性
TWI608352B (zh) * 2016-07-10 2017-12-11 華邦電子股份有限公司 資料管理方法以及具有快閃記憶體的裝置
CN110121702A (zh) * 2017-10-20 2019-08-13 图核有限公司 结合多线程处理器中多个线程的状态
CN110121702B (zh) * 2017-10-20 2023-07-21 图核有限公司 处理器、操作处理器的方法及可读存储介质
TWI703451B (zh) * 2017-11-03 2020-09-01 美商卡赫倫特羅吉克斯公司 處理器操作方法、相關電腦系統、及非暫時性電腦可存取儲存媒體
TWI762982B (zh) * 2017-11-03 2022-05-01 美商卡赫倫特羅吉克斯公司 處理器操作方法、相關電腦系統、及非暫時性電腦可存取儲存媒體
TWI806550B (zh) * 2017-11-03 2023-06-21 美商卡赫倫特羅吉克斯公司 處理器操作方法、相關電腦系統、及非暫時性電腦可存取儲存媒體
US11755382B2 (en) 2017-11-03 2023-09-12 Coherent Logix, Incorporated Programming flow for multi-processor system
TWI800560B (zh) * 2017-11-20 2023-05-01 南韓商三星電子股份有限公司 多處理器系統、資料管理方法以及非暫態電腦可讀取儲存媒體
TWI761992B (zh) * 2020-10-16 2022-04-21 創鑫智慧股份有限公司 資料計算裝置及其操作方法

Similar Documents

Publication Publication Date Title
US20160026574A1 (en) General purpose digital data processor, systems and methods
US8797332B2 (en) Device discovery and topology reporting in a combined CPU/GPU architecture system
EP1658564B1 (en) Methods and apparatus for providing a software implemented cache memory
JP4870914B2 (ja) デジタルデータプロセッサ
US8972699B2 (en) Multicore interface with dynamic task management capability and task loading and offloading method thereof
US20150378762A1 (en) Monitoring and dynamic configuration of virtual-machine memory-management
EP1696318B1 (en) Methods and apparatus for segmented stack management in a processor system
EP1846820B1 (en) Methods and apparatus for instruction set emulation
US10324726B1 (en) Providing instruction characteristics to graphics scheduling circuitry based on decoded instructions
JP2006318477A (ja) ロジカルパーティショニングされた処理環境におけるリソース管理のための方法および装置
TW201423402A (zh) 通用目的數位資料處理器、系統及方法
US11301142B2 (en) Non-blocking flow control in multi-processing-entity systems
KR101900436B1 (ko) 결합된 cpu/gpu 아키텍처 시스템에서의 디바이스의 발견 및 토폴로지 보고
Govindarajan et al. Design and performance evaluation of a multithreaded architecture
US20230050061A1 (en) Logical Slot to Hardware Slot Mapping for Graphics Processors
WO2006085636A1 (en) Methods and apparatus for processing instructions in a multi-processor system
US20230047481A1 (en) Affinity-based Graphics Scheduling
US20230048951A1 (en) Kickslot Manager Circuitry for Graphics Processors
US20230051906A1 (en) Software Control Techniques for Graphics Hardware that Supports Logical Slots
US20230075531A1 (en) Quality of Service Techniques in Distributed Graphics Processor
US20230077058A1 (en) Priority Inversion Mitigation Techniques
WO2023018529A1 (en) Logical slot to hardware slot mapping for graphics processors
Hall et al. Memory management in a PIM-based architecture
Kim et al. Sophy+: Programming model and software platform for hybrid resource management of many-core accelerators
CN113448880A (zh) 存储装置和存储器中的启用一致多处理的计算