TW201732619A - 仿真的訊息通知中斷(msi)中斷處置 - Google Patents

仿真的訊息通知中斷(msi)中斷處置 Download PDF

Info

Publication number
TW201732619A
TW201732619A TW105137501A TW105137501A TW201732619A TW 201732619 A TW201732619 A TW 201732619A TW 105137501 A TW105137501 A TW 105137501A TW 105137501 A TW105137501 A TW 105137501A TW 201732619 A TW201732619 A TW 201732619A
Authority
TW
Taiwan
Prior art keywords
interrupt
processor
data
vector
allowable delay
Prior art date
Application number
TW105137501A
Other languages
English (en)
Other versions
TWI715669B (zh
Inventor
彥山 邱
Original Assignee
英特爾股份有限公司
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 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201732619A publication Critical patent/TW201732619A/zh
Application granted granted Critical
Publication of TWI715669B publication Critical patent/TWI715669B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)

Abstract

一種處理器包括核心及中斷控制器。該中斷控制器包括用以從記憶體讀取中斷資料之邏輯,該中斷資料包括時戳、可容許延遲值、及至少一中斷向量。該中斷控制器亦包括延遲比較電路,用以根據該時戳和系統時鐘信號來判定經過時間及用以比較該經過時間與該可容許延遲值。此外,該中斷控制器包括第二邏輯,用以根據該經過時間與該可容許延遲值之該比較來判定是否引動中斷處置器。

Description

仿真的訊息通知中斷(MSI)中斷處置
本發明係有關處理邏輯、微處理器、及相關指令集架構之領域,當由處理器或其他處理邏輯執行時該指令集架構係履行邏輯、數學、或其他功能性操作。
多處理器系統變為越來越常見。多處理器系統之應用包括動態域分割一路向下至桌上型電腦計算。為了利用多處理器系統,待執行碼可被分離為數個執行緒,以供由各個處理實體來執行。各執行緒可被彼此平行地執行。再者,為了增加處理實體之利用性,失序執行可被利用。失序執行可執行指令,當輸入至此等指令變為可行時。因此,較晚出現於碼序列中的指令可在較早出現於碼序列中的指令之前被執行。
100‧‧‧系統
102‧‧‧處理器
104‧‧‧第1階(L1)內部快取記憶體
106‧‧‧暫存器檔
108‧‧‧執行單元
109‧‧‧緊縮指令集
110‧‧‧處理器匯流排
112‧‧‧圖形控制器
114‧‧‧互連
116‧‧‧系統邏輯晶片
118‧‧‧高頻寬記憶體路徑
119‧‧‧指令
120‧‧‧記憶體
121‧‧‧資料
122‧‧‧系統I/O
123‧‧‧舊有I/O控制器
124‧‧‧資料儲存
125‧‧‧使用者輸入介面
126‧‧‧無線收發器
127‧‧‧串列擴充埠
128‧‧‧韌體集線器(快閃BIOS)
129‧‧‧音頻控制器
130‧‧‧I/O控制器集線器(ICH)
134‧‧‧網路控制器
140‧‧‧資料處理系統
141‧‧‧匯流排
142‧‧‧執行單元
143‧‧‧緊縮指令集
144‧‧‧解碼器
145‧‧‧暫存器檔
146‧‧‧同步動態隨機存取記憶體(SDRAM)控制
147‧‧‧靜態隨機存取記憶體(SRAM)控制
148‧‧‧叢發快閃記憶體介面
149‧‧‧個人電腦記憶卡國際協會(PCMCIA)/微型快閃(CF)卡控制
150‧‧‧液晶顯示(LCD)控制
151‧‧‧直接記憶體存取(DMA)控制器
152‧‧‧替代匯流排主介面
153‧‧‧I/O匯流排
154‧‧‧I/O橋
155‧‧‧通用異步接收器/傳輸器(UART)
156‧‧‧通用串列匯流排(USB)
157‧‧‧藍牙無線UART
158‧‧‧I/O擴充介面
159‧‧‧處理核心
160‧‧‧資料處理系統
161‧‧‧SIMD共處理器
162‧‧‧執行單元
163‧‧‧指令集
164‧‧‧暫存器檔
165‧‧‧解碼器
166‧‧‧主處理器
167‧‧‧快取記憶體
168‧‧‧輸入/輸出系統
169‧‧‧無線介面
170‧‧‧處理核心
200‧‧‧處理器
201‧‧‧前端
202‧‧‧快速排程器
203‧‧‧失序執行引擎單元
204‧‧‧緩慢/一般浮點排程器
205‧‧‧整數/浮點微操作佇列
206‧‧‧簡單浮點排程器
207‧‧‧記憶體微操作佇列
208‧‧‧整數暫存器檔
209‧‧‧記憶體排程器
210‧‧‧浮點暫存器檔
211‧‧‧執行區塊
212‧‧‧位址產生單元(AGU)
214‧‧‧AGU
216‧‧‧快速ALU
218‧‧‧快速ALU
220‧‧‧緩慢ALU
222‧‧‧浮點ALU
224‧‧‧浮點移動單元
226‧‧‧指令預提取器
228‧‧‧指令解碼器
230‧‧‧軌線快取
232‧‧‧微碼ROM
234‧‧‧微操作佇列
310‧‧‧緊縮位元組
320‧‧‧緊縮字元
330‧‧‧緊縮雙字元(dword)
341‧‧‧緊縮半
342‧‧‧緊縮單
343‧‧‧緊縮雙
344‧‧‧無符號的緊縮位元組表示
345‧‧‧有符號的緊縮位元組表示
346‧‧‧無符號的緊縮字元表示
347‧‧‧有符號的緊縮字元表示
348‧‧‧無符號的緊縮雙字元表示
349‧‧‧有符號的緊縮雙字元表示
360‧‧‧格式
361,362‧‧‧欄位
363,373‧‧‧MOD欄位
364,365‧‧‧來源運算元識別符
366‧‧‧目的地運算元識別符
370‧‧‧格式
371,372,378‧‧‧欄位
374,375‧‧‧來源運算元識別符
376‧‧‧目的地運算元識別符
380‧‧‧格式
381‧‧‧條件欄位
382,389‧‧‧CDP運算碼欄位
383,384,387,388‧‧‧欄位
385,390‧‧‧來源運算元識別符
386‧‧‧目的地運算元識別符
400‧‧‧處理器管線
402‧‧‧提取級
404‧‧‧長度解碼級
406‧‧‧解碼級
408‧‧‧配置級
410‧‧‧重新命名級
412‧‧‧排程級
414‧‧‧暫存器讀取/記憶體讀取級
416‧‧‧執行級
418‧‧‧寫入回/記憶體寫入級
422‧‧‧例外處置級
424‧‧‧確定級
430‧‧‧前端單元
432‧‧‧分支預測單元
434‧‧‧指令快取單元
436‧‧‧指令變換後備緩衝(TLB)
438‧‧‧指令提取單元
440‧‧‧解碼單元
450‧‧‧執行引擎單元
452‧‧‧重新命名/配置器單元
454‧‧‧撤回單元
456‧‧‧排程器單元
458‧‧‧實體暫存器檔單元
460‧‧‧執行叢集
462‧‧‧執行單元
464‧‧‧記憶體存取單元
470‧‧‧記憶體單元
472‧‧‧資料TLB單元
474‧‧‧資料快取單元
476‧‧‧第2階(L2)快取單元
490‧‧‧處理器核心
500‧‧‧處理器
502‧‧‧核心
506‧‧‧快取
508‧‧‧環狀互連單元
510‧‧‧系統代理
512‧‧‧顯示引擎
514‧‧‧介面
516‧‧‧直接媒體介面(DMI)
518‧‧‧PICe橋
520‧‧‧記憶體控制器
522‧‧‧同調邏輯
552‧‧‧記憶體控制單元
560‧‧‧圖形模組
565‧‧‧媒體引擎
570‧‧‧前端
572,574‧‧‧快取
580‧‧‧失序引擎
582‧‧‧配置模組
584‧‧‧資源排程器
586‧‧‧資源
588‧‧‧記錄器緩衝器
590‧‧‧模組
595‧‧‧LLC
599‧‧‧RAM
600‧‧‧系統
610,615‧‧‧處理器
620‧‧‧圖形記憶體控制器集線器(GMCH)
640‧‧‧記憶體
645‧‧‧顯示
650‧‧‧輸入/輸出(I/O)控制器集線器(ICH)
660‧‧‧外部圖形裝置
670‧‧‧周邊裝置
700‧‧‧多處理器系統
714‧‧‧I/O裝置
716‧‧‧第一匯流排
718‧‧‧匯流排橋
720‧‧‧第二匯流排
722‧‧‧鍵盤及/或滑鼠
724‧‧‧音頻I/O
727‧‧‧通訊裝置
728‧‧‧儲存單元
730‧‧‧指令/碼及資料
732‧‧‧記憶體
734‧‧‧記憶體
738‧‧‧高性能圖形電路
739‧‧‧高性能圖形介面
750‧‧‧點對點互連
752,754‧‧‧P-P介面
770‧‧‧第一處理器
772,782‧‧‧集成記憶體控制器單元
776,778‧‧‧點對點(P-P)介面
780‧‧‧第二處理器
786,788‧‧‧P-P介面
790‧‧‧晶片組
794,798‧‧‧點對點介面電路
796‧‧‧介面
800‧‧‧第三系統
814‧‧‧I/O裝置
815‧‧‧舊有I/O裝置
872,882‧‧‧控制邏輯
900‧‧‧SoC
902‧‧‧互連單元
908‧‧‧集成圖形邏輯
910‧‧‧應用程式處理器
912‧‧‧系統代理單元
914‧‧‧集成記憶體控制器單元
916‧‧‧匯流排控制器單元
920‧‧‧媒體處理器
924‧‧‧影像處理器
926‧‧‧音頻處理器
928‧‧‧視頻處理器
930‧‧‧靜態隨機存取記憶體(SRAM)單元
932‧‧‧直接記憶體存取(DMA)單元
940‧‧‧顯示單元
1000‧‧‧處理器
1005‧‧‧CPU
1010‧‧‧GPU
1015‧‧‧影像處理器
1020‧‧‧視頻處理器
1025‧‧‧USB控制器
1030‧‧‧UART控制器
1035‧‧‧SPI/SDIO控制器
1040‧‧‧顯示裝置
1045‧‧‧記憶體介面控制器
1050‧‧‧MIPI控制器
1055‧‧‧快閃記憶體控制器
1060‧‧‧雙資料速率(DDR)控制器
1065‧‧‧安全性引擎
1070‧‧‧I2S/I2C控制器
1100‧‧‧儲存
1110‧‧‧硬體或軟體模型
1120‧‧‧模擬軟體
1140‧‧‧記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧製造設施
1205‧‧‧程式
1210‧‧‧仿真邏輯
1215‧‧‧處理器
1302‧‧‧高階語言
1304‧‧‧x86編譯器
1306‧‧‧x86二元碼
1308‧‧‧指令集編譯器
1310‧‧‧指令集二元碼
1312‧‧‧指令轉換器
1314‧‧‧沒有至少一x86指令集核心之處理器
1316‧‧‧具有至少一x86指令集核心之處理器
1400‧‧‧指令集架構
1406,1407‧‧‧核心
1408‧‧‧L2快取控制
1409‧‧‧匯流排介面單元
1410‧‧‧互連
1415‧‧‧圖形處理單元
1420‧‧‧視頻編碼解碼器
1425‧‧‧LCD視頻介面
1430‧‧‧SIM介面
1435‧‧‧開機ROM介面
1440‧‧‧SDRAM控制器
1445‧‧‧快閃控制器
1450‧‧‧SPI主機單元
1460‧‧‧SDRAM晶片或模組
1465‧‧‧快閃記憶體
1470‧‧‧藍牙模組
1475‧‧‧高速3G數據機
1480‧‧‧全球定位系統模組
1485‧‧‧無線模組
1500‧‧‧指令集架構
1510‧‧‧單元
1511‧‧‧中斷控制器及分佈單元
1512‧‧‧監聽控制單元
1513‧‧‧快取至快取轉移單元
1514‧‧‧監聽過濾器
1515‧‧‧計時器
1516‧‧‧AC埠
1520‧‧‧匯流排介面單元
1525‧‧‧快取
1530‧‧‧指令預提取級
1531‧‧‧選擇
1532‧‧‧指令快取
1535‧‧‧分支預測單元
1536‧‧‧總體歷史
1537‧‧‧目標位址
1538‧‧‧返回堆疊
1540‧‧‧記憶體系統
1543‧‧‧預提取器
1544‧‧‧記憶體管理單元(MMU)
1545‧‧‧變換後備緩衝(TLB)
1546‧‧‧載入儲存單元
1550‧‧‧雙指令解碼級
1555‧‧‧暫存器重新命名級
1556‧‧‧暫存器池
1557‧‧‧分支
1560‧‧‧發送級
1561‧‧‧指令佇列
1565‧‧‧執行實體
1566‧‧‧ALU/乘法單元(MUL)
1567‧‧‧ALU
1568‧‧‧浮點單位(FPU)
1569‧‧‧既定位址
1570‧‧‧寫入回級
1575‧‧‧追蹤單元
1580‧‧‧已執行指令指針
1582‧‧‧撤回指針
1700‧‧‧電子裝置
1710‧‧‧處理器
1715‧‧‧記憶體單元
1720‧‧‧驅動
1722‧‧‧BIOS/韌體/快閃記憶體
1724‧‧‧顯示
1725‧‧‧觸控式螢幕
1730‧‧‧觸控板
1735‧‧‧快速晶片組(EC)
1736‧‧‧鍵盤
1737‧‧‧風扇
1738‧‧‧信任平台模組(TPM)
1739‧‧‧熱感應器
1740‧‧‧感應器集線器
1741‧‧‧加速計
1742‧‧‧周圍光感應器(ALS)
1743‧‧‧羅盤
1744‧‧‧迴轉儀
1745‧‧‧近場通訊(NFC)單元
1746‧‧‧熱感應器
1750‧‧‧無線區域網路(WLAN)單元
1752‧‧‧藍牙單元
1754‧‧‧相機
1756‧‧‧無線廣域網路(WWAN)單元
1757‧‧‧SIM卡
1760‧‧‧數位信號處理器
1763‧‧‧揚聲器
1764‧‧‧耳機
1765‧‧‧麥克風
1800‧‧‧系統
1801‧‧‧處理器
1803‧‧‧核心
1808‧‧‧快取
1809a-1809n‧‧‧快取線
1812‧‧‧解碼器
1820‧‧‧中斷控制器
1821‧‧‧延遲比較電路
1822‧‧‧主要中斷處置器
1823‧‧‧次要中斷處置器
1825‧‧‧性能暫存器
1830‧‧‧系統時鐘
1840‧‧‧中斷裝置
1841‧‧‧直接快取存取(DCA)暫存器
1842‧‧‧最大延遲暫存器
1850‧‧‧匯流排
1900‧‧‧中斷資料
1902,1904‧‧‧中斷向量
1906‧‧‧最大可容許延遲值
1908‧‧‧時戳
實施例係藉由範例來闡明而非限制於後附圖形之圖示中: 圖1A為形成有處理器之範例電腦系統的方塊圖,該處理器可包括用以執行指令之執行單元,依據本發明之實施例;圖1B闡明一資料處理系統,依據本發明之實施例;圖1C闡明用以履行文字串比較操作之資料處理系統的其他實施例;圖2為針對處理器之微架構的方塊圖,該處理器可包括用以履行指令之邏輯電路,依據本發明之實施例;圖3A闡明多媒體暫存器中之各種緊縮資料類型表示,依據本發明之實施例;圖3B闡明可能的暫存器中資料儲存格式,依據本發明之實施例;圖3C闡明多媒體暫存器中之各種有符號的及無符號的緊縮資料類型表示,依據本發明之實施例;圖3D闡明操作編碼格式之實施例;圖3E闡明具有四十或更多位元之另一可能的操作編碼格式,依據本發明之實施例;圖3F闡明又另一可能的操作編碼格式,依據本發明之實施例;圖4A為闡明依序管線及暫存器重新命名、失序問題/執行管線之方塊圖,依據本發明之實施例;圖4B為闡明其將被包括於處理器中的依序架構核心及暫存器重新命名邏輯、失序問題/執行邏輯之方塊圖,依據本發明之實施例; 圖5A為一處理器之方塊圖,依據本發明之實施例;圖5B為核心的範例實施方式之方塊圖,依據本發明之實施例;圖6為一系統之方塊圖,依據本發明之實施例;圖7為第二系統之方塊圖,依據本發明之實施例;圖8為第三系統之方塊圖,依據本發明之實施例;圖9為一晶片上系統之方塊圖,依據本發明之實施例;圖10闡明一含有中央處理單元及圖形處理單元之處理器,其可履行至少一指令,依據本發明之實施例;圖11為闡明IP核心的開發之方塊圖,依據本發明之實施例;圖12闡明第一類型的指令可如何被不同類型的處理器所仿真,依據本發明之實施例;圖13闡明對照軟體指令轉換器之使用的方塊圖,該轉換器係用以將來源指令集中之二元指令轉換至目標指令集中之二元指令,依據本發明之實施例;圖14為處理器的指令集架構之方塊圖,依據本發明之實施例;圖15為處理器的指令集架構之更詳細方塊圖,依據本發明之實施例;圖16為用於處理器的指令集架構之執行管線的方塊圖,依據本發明之實施例;圖17為用以利用處理器的電子裝置之方塊圖,依據 本發明之實施例;圖18闡明一種具有改良的仿真MSI中斷處置之範例系統的方塊圖,依據本發明之實施例;圖19為用於MSI中斷之中斷資料的方塊圖,依據本發明之實施例;及圖20為用以處置仿真MSI中斷之方法的範例實施例之流程圖,依據本發明之實施例。
【發明內容及實施方式】
以下說明係描述一種中斷控制器,用以判定如何服務仿真的訊息通知中斷(MSI)請求。MSI請求內所接收的中斷資料可包括時序資訊以及多數中斷向量。中斷控制器可利用時序資訊以判定多數中斷向量之哪一個應被用以服務該中斷請求。於以下描述中,諸如處理邏輯、處理器類型、微架構狀況、事件、致能機制等等各種特定細節被提出,以提供本發明之實施例的更透徹瞭解。然而,熟悉此項技術人士將理解其實施例可被實行而無此等特定細節。此外,某些眾所周知的結構、電路等等尚未被詳細地顯示以免非必要地混淆本發明之實施例。
雖然以下實施例係參考處理器而描述,但其他實施例亦可應用於其他類型的積體電路及邏輯裝置。本發明之實施例的類似技術及教導可被應用於其他類型的電路或半導體裝置,其可受益自較高的管線通量及增進的性能。本發明之實施例的教導可應用於其履行資料調處之任何處理器 或機器。然而,實施例不限於其履行512位元、256位元、128位元、64位元、32位元、或16位元資料操作的處理器或機器,且可被應用於其中可履行資料之調處或管理的任何處理器及機器。此外,以下描述提供範例,且附圖顯示各種範例,以供闡明之目的。然而,這些範例不應被理解在限制性意義,因為其僅欲提供本發明之實施例的範例而非欲提供本發明之實施例之所有可能實施方式的窮舉列表。
雖然以下範例係描述指令處置及分佈於執行單元及邏輯電路之背景,但本發明之其他實施例可藉由機器可讀取、有形媒體上所儲存之資料或指令(其當由機器所履行時係造成機器履行與本發明之至少一實施例相符的功能)來完成。於一實施例中,與本發明之實施例相關的功能被實施於機器可執行指令。該些指令可被用以致使通用或特殊用途處理器(其可被編程以該些指令)履行本發明之步驟。本發明之實施例可被提供為電腦程式產品(或軟體),其可包括其上儲存有指令之機器或電腦可讀取媒體,其可被用以編程電腦(或其他電子裝置)來履行依據本發明之實施例的一或更多操作。再者,本發明之實施例的步驟可由含有固定功能邏輯以履行該些步驟之特定硬體組件所履行,或者可由已編程的電腦組件及固定功能硬體組件之任何組合所履行。
用於編程邏輯以履行本發明之實施例的指令可被儲存於系統中之記憶體內,諸如DRAM、快取、快閃記憶體、 或其他儲存。再者,該些指令可經由網路或藉由其他電腦可讀取媒體而被分佈。因此機器可讀取媒體可包括用以依可由機器(例如,電腦)所讀取之形式儲存或傳輸資訊的任何機制,但不限定於軟碟、光碟、CD、唯讀記憶體(CD-ROM)、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可編程唯讀記憶體(EPROM)、電可抹除可編程唯讀記憶體(EEPROM)、磁或光學卡、快閃記憶體、或有形、機器可讀取儲存,用於透過經電、光、聲或其他形式的傳播信號(例如,載波、紅外線信號、數位信號,等等)之網際網路的資訊之傳輸。因此,電腦可讀取媒體可包括適於以可由機器(例如,電腦)所讀取之形式儲存或傳輸電子指令或資訊的任何類型的有形機器可讀取媒體。
設計可經歷各個階段,從創造至模擬至生產。表示設計之資料可以數種方式來表示設計。首先,如可用於模擬,硬體可使用硬體描述語言或另一功能性描述語言來表示。此外,具有邏輯及/或電晶體閘之電路等級模型可於設計程序之某些階段被產生。再者,設計(於某階段)可達到表示硬體模型中之各個裝置的實體布局之資料的等級。於其中使用某些半導體製造技術之情況下,表示硬體模型之資料可為指明針對用以產生積體電路之遮罩的不同遮罩層上之各個特徵的存在或缺乏之資料。於設計之任何表示中,資料可被儲存以機器可讀取媒體之任何形式。記憶體或者磁性或光學儲存(諸如碟片)可為用以儲存資訊 之機器可讀取媒體,該資訊係經由光或電波(其被調變或者產生以傳輸此資訊)而被傳輸。當電載波(其係指示或攜載碼或設計)被傳輸時,至其電信號之複製、緩衝、或再傳輸被履行之程度,則新的副本可被產生。因此,通訊提供者或網路提供者可於有形的、機器可讀取媒體上(至少暫時地)儲存一物件,諸如編碼入載波之資訊,實現本發明之實施例的技術。
於現代處理器中,數個不同的執行單元可被用以處理並執行各種碼及指令。某些指令可較快地完成而其他指令則可能需要數個時脈循環來完成。指令之通量越快,則處理器之整體性能越佳。因此將為有利的是具有許多指令盡可能快地執行。然而,可能有某些指令,其具有較大的複雜度且需要更多的執行時間及處理器資源,諸如浮點指令、載入/儲存操作、資料移動,等等。
隨著更多電腦系統被用於網際網路、文字、及多媒體應用,額外的處理器支援已被逐漸地引入。於一實施例中,指令集可關聯與一或更多電腦架構,包括資料類型、指令、暫存器架構、地址模式、記憶體架構、中斷和例外處置、及外部輸入和輸出(I/O)。
於一實施例中,指令集架構(ISA)可由一或更多微架構所實施,該些微架構可包括用以實施一或更多指令集之處理器邏輯及電路。因此,具有不同微架構之處理器可共用共同指令集之至少一部分。例如,Intel® Pentium 4處理器,Intel® CoreTM處理器、及來自Advanced Micro Devices,Inc.of Sunnyvale CA之處理器係實施幾乎相同版本的x86指令集(具有其已被加入較新版本的某些延伸),但具有不同的內部設計。類似地,由其他處理器開發公司(諸如ARM Holdings,Ltd.,MIPS、或者其授權者或採用者)所設計的處理器可共用共同指令集之至少一部分,但可包括不同的處理器設計。例如,ISA之相同的暫存器架構可使用新的或眾所周知的技術而以不同方式被實施於不同的微架構中,包括專屬的實體暫存器、使用暫存器重新命名機制之一或更多動態配置的實體暫存器(例如,使用暫存器別名表(RAT)、記錄器緩衝器(ROB)及撤回暫存器檔)。於一實施例中,暫存器可包括一或更多暫存器、暫存器架構、暫存器檔、或其他暫存器組(其可為或可不為由軟體編程者可定址的)。
指令可包括一或更多指令格式。於一實施例中,指令格式可指示各種欄位(位元之數目、位元之位置,等等)以指明(除了別的以外)待履行操作以及將於其上履行操作之運算元。於進一步實施例中,某些指令格式可由指令模板(或子格式)所進一步定義。例如,既定指令格式之指令模板可被定義為具有指令格式之欄位的不同子集及/或被定義為具有不同地解讀的既定欄位。於一實施例中,指令可使用指令格式(以及,假如被定義的話,以該指令格式之指令模板的既定一者)而被表達,並指明或指示操作及將於其上履行操作之運算元。
科學、金融、自動向量化通用、RMS(辨識、挖掘、 及合成)、及視覺和多媒體應用(例如,2D/3D圖形、影像處理、視頻壓縮/解壓縮、聲音辨識演算法及音頻調處)可能需要相同的操作被履行於大量的資料項目上。於一實施例中,單指令多資料(SIMD)係指稱一種致使處理器於多資料元件上履行操作之指令的類型。SIMD科技可被用於處理器,其可邏輯地將暫存器中之位元劃分為數個固定大小的或可變大小的資料元件,其各代表分離的值。例如,於一實施例中,64位元暫存器中之位元可被組織為來源運算元,含有四個分離的16位元資料元件,其各代表分離的16位元值。此類型的資料可被稱為「緊縮」資料類型或「向量」資料類型,而此資料類型的運算元可被稱為緊縮資料運算元或向量運算元。於一實施例中,緊縮資料項目或向量可為儲存於單一暫存器內之緊縮資料元件之序列,而緊縮資料運算元或向量運算元可為SIMD指令之來源或目的地運算元(或「緊縮資料指令」或「向量指令」)。於一實施例中,SIMD指令係指明其將被履行於兩來源向量運算元上之單一向量操作,用以產生相同或不同大小之目的地向量運算元(亦稱為結果向量運算元),具有相同或不同數目的資料元件,以及依相同或不同的資料元件順序。
SIMD科技(諸如其由具有包括x86,MMXTM,Streaming SIMD Extensions(SSE),SSE2,SSE3,SSE4.1之指令集、及SSE4.2指令的Intel® CoreTM處理器所利用者)、ARM處理器(諸如具有包括Vector Floating Point (VFP)及/或NEON指令之指令集的處理器之ARM Cortex®家族)、及MIPS處理器(諸如由Institute of Computing Technology(ICT)of the Chinese Academy of Sciences所開發之處理器的Loongson家族)已致能應用程式性能之顯著增進(CoreTM及MMXTM為Intel Corporation of Santa Clara,Calif.之註冊商標或商標)。
於一實施例中,目的地及來源暫存器/資料可為用以表示相應資料或操作之來源及目的地的一般性術語。於某些實施例中,其可由暫存器、記憶體、或其他儲存區域(其具有除了那些已描述者之外的其他名稱或功能)所實施。例如,於一實施例中,「DEST1」可為暫時儲存暫存器或其他儲存區域,而「SRC1」及「SRC2」可為第一及第二來源儲存暫存器或其他儲存區域,等等。於其他實施例中,SRC及DEST儲存區域之二或更多者可相應於相同儲存區域(例如,SIMD暫存器)內之不同的資料儲存元件。於一實施例中,來源暫存器之一亦可作用為目的地暫存器,藉由(例如)將一履行於第一及第二來源資料上之操作的結果寫回至其作用為目的地暫存器的兩個來源暫存器之一。
圖1A為形成有處理器之範例電腦系統的方塊圖,該處理器可包括用以執行指令之執行單元,依據本發明之實施例。系統100可包括一組件(諸如處理器102)以利用執行單元,其包括用以履行針對製程資料之演算法的邏輯,依據本發明,諸如於文中所述之實施例中。系統100 可代表根據可得自Intel Corporation of Santa Clara,California之PENTIUMTM III,PENTIUMTM 4,XeonTM,Itanium,XScaleTM及/或StrongARMTM微處理器之處理系統,雖然其他系統(包括具有其他微處理器之PC、工程工作站、機上盒等等)亦可被使用。於一實施例中,樣本系統100可執行可得自Microsoft Corporation of Redmond,Washington之WINDOWSTM作業系統之版本,雖然其他作業系統(例如,UNIX及Linux)、嵌入式軟體、及/或圖形使用者介面亦可被使用。因此,本發明之實施例不限於硬體電路與軟體之任何特定組合。
實施例不限於電腦系統。本發明之實施例可被用於其他裝置,諸如手持式裝置及嵌入式應用。手持式裝置之一些範例包括行動電話、網際網路協定裝置、數位相機、個入數位助理(PDA)、及手持式PC。嵌入式應用可包括微控制器、數位信號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)開關、或者其可依據至少一實施例以履行一或更多指令之任何其他系統。
電腦系統100可包括處理器102,其可包括一或更多執行單元108,用以履行一演算法,用以依據本發明之一實施例來履行至少一指令。一實施例可被描述於單一處理器桌上型電腦或伺服器系統之背景中,但其他實施例可被包括於微處理器系統中。系統100可為「集線器」系統架構之範例。系統100可包括用以處理資料信號之處理器 102。處理器102可包括複雜指令集電腦(CISC)微處理器、精簡指令集計算(RISC)微處理器、極長指令字元(VLIW)微處理器、實施指令集之組合的處理器、或任何其他處理器裝置,諸如數位信號處理器,舉例而言。於一實施例中,處理器102可被耦合至處理器匯流排110,其可傳輸資料信號於處理器102與系統100中的其他組件之間。系統100之元件可履行其為那些熟悉本技術者所熟知的習知功能。
於一實施例中,處理器102可包括第一階(L1)內部快取記憶體104。根據該架構,處理器102可具有單一內部快取或者多階內部快取階。於另一實施例中,快取記憶體可駐存於處理器102外部。其他實施例亦可包括內部與外部快取兩者之組合,根據特定實施方式及需求。暫存器檔106可儲存不同類型的資料於各種暫存器中,包括整數暫存器、浮點暫存器、狀態暫存器、及指令指標暫存器。
執行單元108(包括用以履行整數及浮點操作之邏輯)亦駐存於處理器102中。處理器102亦可包括微碼(ucode)ROM,其係儲存針對某些微指令之微碼。於一實施例中,執行單元108可包括用以處置緊縮指令集109之邏輯。藉由包括緊縮指令集109於通用處理器102之指令集中(連同用以執行該些指令之相關電路),由許多多媒體應用所使用之操作可使用通用處理器102中之緊縮資料而被履行。因此,許多多媒體應用可被更有效率地加速並執行,藉由使用處理器之資料匯流排的全寬度以履行操 作於緊縮資料上。此可消除將較小單元的資料轉移跨越處理器之資料匯流排以一次地履行一或更多操作於資料元件上的需求。
執行單元108之實施例亦可被用於微控制器、嵌入式處理器、圖形裝置、DSP、及其他類型的邏輯電路。系統100可包括記憶體120。記憶體120可被實施為動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、或其他記憶體裝置。記憶體120可儲存由資料信號(其可由處理器102所執行)所表示之指令119及/或資料121。
系統邏輯晶片116可被耦合至處理器匯流排110及記憶體120。系統邏輯晶片116可包括記憶體控制器集線器(MCH)。處理器102可經由處理器匯流排110而與MCH 116通訊。MCH 116可提供高頻寬記憶體路徑118給記憶體120以用於指令119和資料121之儲存及以用於圖形命令、資料和紋理之儲存。MCH 116可指引系統100中介於處理器102、記憶體120、與其他組件之間的資料信號,並橋接介於處理器匯流排110、記憶體120、與系統I/O 122之間的資料信號。於某些實施例中,系統邏輯晶片116可提供圖形埠以供耦合至圖形控制器112。MCH 116可透過記憶體介面118而被耦合至記憶體120。圖形卡112可透過加速圖形埠(AGP)互連114而被耦合至MCH 116。
系統100可使用專屬集線器介面匯流排122以將 MCH 116耦合至I/O控制器集線器(ICH)130。於一實施例中,ICH 130可經由局部I/O匯流排以提供直接連接至某些I/O裝置。局部I/O匯流排可包括高速I/O匯流排,用以將周邊裝置連接至記憶體120、晶片組、及處理器102。範例可包括音頻控制器129、韌體集線器(快閃BIOS)128、無線收發器126、資料儲存124、含有使用者輸入介面125(其可包括鍵盤介面)之舊有I/O控制器123、串列擴充埠127(諸如通用串列匯流排(USB))、及網路控制器134。資料儲存裝置124可包含硬碟驅動、軟碟驅動、CD-ROM裝置、快閃記憶體裝置、或其他大量儲存裝置。
針對系統之另一實施例,依據一實施例之指令可被使用以系統單晶片。系統單晶片之一實施例包含處理器及記憶體。用於一此系統之記憶體可包括快取記憶體。快閃記憶體可被置於如處理器及其他系統組件之相同晶粒上。此外,其他邏輯區塊(諸如記憶體控制器或圖形控制器)亦可被置於系統單晶片上。
圖1B闡明一資料處理系統140,其係實施本發明之實施例的原理。熟悉本技術人士將輕易理解:文中所述之實施例可操作以替代處理系統而不背離本發明之實施例的範圍。
電腦系統140包含處理核心159,用以依據一實施例而履行至少一指令。於一實施例中,處理核心159代表任何類型架構的處理單元,包括(但不限定於)CISC、 RISC或VLIW類型架構。處理核心159亦可適於一或更多製程科技中之製造,且藉由以足夠細節被表示於機器可讀取媒體上,可適於協助該製造。
處理核心159包含執行單元142、一組暫存器檔145、及解碼器144。處理核心159亦可包括額外電路(未顯示),其對於本發明之實施例的瞭解是不需要的。執行單元142可執行由處理核心159所接收的指令。除了履行典型處理器指令之外,執行單元142可履行指令集143中之指令,以履行緊縮資料格式上之操作。緊縮指令集143可包括用以履行本發明之實施例的指令及其他緊縮指令。執行單元142可藉由內部匯流排而被耦合至暫存器檔145。暫存器檔145可表示處理核心159上之儲存區域,用以儲存資訊(包括資料)。如先前所述,應理解:儲存區域可儲存緊縮資料。執行單元142可被耦合至解碼器144。解碼器144可將其由處理核心159所接收的指令解碼為控制信號及/或微碼進入點。回應於這些控制信號及/或微碼進入點,執行單元142履行適當的操作。於一實施例中,解碼器可解讀指令之運算碼,其將指示哪個操作應被履行於該指令內所指示之相應資料上。
處理核心159可被耦合與匯流排141,以便通訊與各個其他系統裝置,其可包括(但不限定於),例如,同步動態隨機存取記憶體(SDRAM)控制146、靜態隨機存取記憶體(SRAM)控制147、叢發快閃記憶體介面148、個人電腦記憶卡國際協會(PCMCIA)/微型快閃(CF)卡控 制149、液晶顯示(LCD)控制150、直接記憶體存取(DMA)控制器151、及替代匯流排主介面152。於一實施例中,資料處理系統140亦可包含I/O橋154,用以經由I/O匯流排153而與各個I/O裝置通訊。此等I/O裝置可包括(但不限定於),例如,通用異步接收器/傳輸器(UART)155、通用串列匯流排(USB)156、藍牙無線UART 157及I/O擴充介面158。
資料處理系統140之一實施例係提供行動裝置、網路及/或無線通訊及處理核心159,其可履行SIMD操作,包括文字串比較操作。處理核心159可被編程以各個音頻、視頻、成像及通訊演算法,包括:離散變換(諸如Walsh-Hadamard變換、快速傅立葉變換(FFT)、離散餘弦變換(DCT)、及其個別反變換;壓縮/解壓縮技術,諸如顏色空間變換、視頻編碼動作估計或視頻解碼動作補償;及調變/解調(MODEM)功能,諸如脈衝編碼調變(PCM)。
圖1C闡明其履行SIMD文字串比較操作之資料處理系統的其他實施例。於一實施例中,資料處理系統160可包括主處理器166、SIMD共處理器161、快取記憶體167、及輸入/輸出系統168。輸入/輸出系統168可選擇性地被耦合至無線介面169。SIMD共處理器161可履行操作,包括依據一實施例之指令。於一實施例中,處理核心170可適於一或更多製程科技中之製造,且藉由以足夠細節被表示於機器可讀取媒體上,可適於協助資料處理系統 160之所有或部分(包括處理核心170)的製造。
於一實施例中,SIMD共處理器161包含執行單元162及一組暫存器檔164。主處理器166之一實施例包含解碼器165,用以辨識指令集163之指令,包括依據一實施例之指令以供由執行單元162來執行。於其他實施例中,SIMD共處理器161亦包含解碼器165之至少部分(顯示為165B)以解碼指令集163之指令。處理核心170亦可包括額外電路(未顯示),其對於本發明之實施例的瞭解是不需要的。
於操作時,主處理器166係執行一串資料處理指令,其控制一般類型之資料處理操作,包括與快取記憶體167、及輸入/輸出系統168之互動。嵌入資料處理指令之串流內者可為SIMD共處理器指令。主處理器166之解碼器165辨識這些SIMD共處理器指令為其應由裝附之SIMD共處理器161所執行的類型。因此,主處理器166將這些SIMD共處理器指令(或代表SIMD共處理器指令之控制信號)發送於共處理器匯流排166上。從共處理器匯流排171,這些指令可由任何裝附的SIMD共處理器所接收。於此情況下,SIMD共處理器161可接受並執行針對其之任何接收的SIMD共處理器指令。
資料可經由無線介面169而被接收,以供藉由SIMD共處理器指令的處理。針對一範例,聲音通訊可被接收以數位信號之形式,其可由SIMD共處理器指令所處理以再生其代表聲音通訊之數位音頻樣本。針對另一範例,壓縮 的音頻及/或視頻可被接收以數位位元流之形式,其可由SIMD共處理器指令所處理以再生數位音頻樣本及/或動作視頻框。於處理核心170之一實施例中,主處理器166、及SIMD共處理器161可被集成入單一處理核心170,包含執行單元162、一組暫存器檔164、及一解碼器165,用以辨識指令集163之指令,包括依據一實施例之指令。
圖2為針對處理器200之微架構的方塊圖,該處理器200可包括用以履行指令之邏輯電路,依據本發明之實施例。於某些實施例中,依據一實施例之指令可被實施以操作於資料元件,其具有位元組、字元、雙字元、四字元等等之尺寸;以及資料類型,諸如單和雙精確度整數及浮點資料類型。於一實施例中,依序前端201可實施處理器200之部分,其可提取將被執行的指令並備製將稍後於處理器管線中使用的指令。前端201可包括數個單元。於一實施例中,指令預提取器226係從記憶體提取指令並將該些指令饋送至指令解碼器228,其接著解碼或解讀該些指令。例如,於一實施例中,解碼器將已接收指令解碼為一或更多操作,稱為其機器可執行之「微指令」或「微操作」(亦稱為micro op或uops)。於其他實施例中,解碼器將指令剖析為運算碼及相應的資料和控制欄位,其可由微架構所使用以依據一實施例來履行操作。於一實施例中,軌線快取230可將已解碼的微操作組合為微操作佇列234中之程式依序列或軌線,以供執行。當軌線快取230遭遇複雜指令時,則微碼ROM 232便提供用以完成該操 作所需的微操作。
某些指令可被轉換為單一微操作,而其他指令則需要數個微操作來完成完整操作。於一實施例中,假如需要四個微操作來完成指令,則解碼器228可存取微碼ROM 232以履行該指令。於一實施例中,指令可被解碼為少數微操作,以供處理於指令解碼器228。於另一實施例中,假如需要數個微操作來完成該操作,則指令可被儲存於微碼ROM 232內。軌線快取230係指稱進入點可編程邏輯陣列(PLA),用以判定正確的微指令指針,以供讀取微碼序列來完成一或更多指令(依據一實施例)自微碼ROM 232。在微碼ROM 232完成針對一指令之微操作後,機器之前端201可重新從軌線快取230提取微操作。
失序執行引擎單元203可準備用於執行之指令。失序執行邏輯具有數個緩衝器,用以平緩並重新排序指令之流程來最佳化性能,隨著其前進管線且被排程以供執行。配置器/暫存器重新命名器215中之配置器邏輯係配置其各微操作欲執行所需的機器緩衝器及資源。配置器/暫存器重新命名器215中之暫存器重新命名邏輯係將邏輯暫存器重新命名於暫存器檔中之項目上。配置器215亦配置各微操作之項目於兩微操作佇列之一中,其中之一係針對記憶體操作(記憶體微操作佇列207)而另一係針對非記憶體操作(整數/浮點微操作佇列205),在指令排程器之前:記憶體排程器209、快速排程器202、緩慢/一般浮點排程器204、及簡單浮點排程器206。微操作排程器202、 204、206係根據其相依的輸入暫存器運算元資源之備妥狀態及微操作欲完成其操作所需的執行資源之可用性以判定微操作何時準備好執行。一實施例之快速排程器202可於主時脈循環之各一半時排程,而其他排程器僅可於每主處理器時脈循環排程一次。排程器係針對調度埠仲裁以排程用於執行之微操作。
暫存器檔208、210可被配置於排程器202、204、206與執行區塊211中的執行單元212、214、216、218、220、222、224之間。暫存器檔208、210之各者係個別地履行整數及浮點操作。各暫存器檔208、210可包括旁通網路,其可旁通或傳遞剛完成的結果(其尚未被寫入暫存器檔)至新的相依微操作。整數暫存器檔208及浮點暫存器檔210可彼此傳遞資料。於一實施例中,整數暫存器檔208可被分割為兩個分離的暫存器檔,一暫存器檔用於資料之低順序的三十二位元而第二暫存器檔用於資料之高順序的三十二位元。浮點暫存器檔210可包括128位元寬項目,因為浮點指令通常具有寬度從64至128位元之運算元。
執行區塊211可含有執行單元212、214、216、218、220、222、224。執行單元212、214、216、218、220、222、224可執行該些指令。執行區塊211可包括暫存器檔208、210,其係儲存微指令所需執行之整數及浮點資料運算元值。於一實施例中,處理器200可包含數個執行單元:位址產生單元(AGU)212、AGU 214、快速 ALU 216、快速ALU 218、緩慢ALU 220、浮點ALU 222、浮點移動單元224。於另一實施例中,浮點執行區塊222、224可執行浮點、MMX、SIMD、及SSE、或其他操作。於又另一實施例中,浮點ALU 222可包括64位元X64位元浮點除法器,用以執行除法、平方根、及餘數微操作。於各個實施例中,涉及浮點值之指令可被處置以浮點硬體。於一實施例中,ALU操作可被傳遞至高速ALU執行單元216、218。高速ALU 216、218可執行具有半時脈循環之有效潛時的快速操作。於一實施例中,大部分複雜整數操作來到緩慢ALU 220,因為緩慢ALU 220可包括針對長潛時類型操作的整數執行硬體,諸如乘法器、移位、旗標、邏輯、及分支處理。記憶體載入/儲存操作可由AGU 212、214所執行。於一實施例中,整數ALU 216、218、220可履行整數操作於64位元資料運算元上。於其他實施例中,ALU 216、218、220可被實施以支援多種資料位元大小,包括十六、三十二、128、256,等等。類似地,浮點單元222、224可被實施以支援具有各個寬度之位元的廣泛運算元。於一實施例中,浮點單元222、224可操作於128位元寬的緊縮資料運算元上,配合SIMD及多媒體指令。
於一實施例中,微操作排程器202、204、206在母載入已完成執行以前調度相依的操作。因為微操作可被臆測地排程並執行於處理器200中,所以處理器200亦可包括用以處置記憶體喪失之邏輯。假如資料載入喪失於資料快 取中,則可能有相依的操作於管線的途中,其已留給排程器暫時錯誤的資料。重播機制係追蹤並重新執行其使用錯誤資料之指令。僅有相依的操作可能需要被重播而獨立的操作可被容許完成。處理器之一實施例的排程器及重播機制亦可被設計成捕捉指令序列以供文字串比較操作。
術語「暫存器」可指稱板上處理器儲存位置,其可被使用為用以識別運算元之指令的部分。換言之,暫存器可為那些從處理器外部(從編程者之觀點)可使用者。然而,於某些實施例中,暫存器可不限於特定類型的電路。反之,暫存器可儲存資料、提供資料、並履行文中所述之功能。文中所述之暫存器可藉由使用任何數目之不同技術的處理器內之電路來實施,諸如專屬實體暫存器、使用暫存器重新命名之動態配置實體暫存器、專屬及動態配置實體暫存器之組合,等等。於一實施例中,整數暫存器係儲存32位元整數資料。一實施例之暫存器檔亦含有針對緊縮資料之八個多媒體SIMD暫存器。針對以下的討論,暫存器可被理解為設計成保持緊縮資料之資料暫存器,諸如64位元寬的MMXTM暫存器(亦稱為「mm」暫存器於某些例子中)於其致能有來自Intel Corporation of Santa Clara,California之MMX科技的微處理器中。這些MMX暫存器(可有整數及浮點形式兩者)可操作以其伴隨SIMD及SSE指令之緊縮資料元件。類似地,有關於SSE2、SSE3、SSE4、或超過(一般稱為「SSEx」)科技之128位元寬的XMM暫存器可保持此等緊縮資料運算元。於一 實施例中,於儲存緊縮資料及整數資料時,暫存器無須於兩種資料類型之間區別。於一實施例中,整數及浮點資料可被含入於相同的暫存器檔或不同的暫存器檔中。再者,於一實施例中,浮點及整數資料可被儲存於不同的暫存器或相同的暫存器中。
於以下圖形之範例中,數個資料運算元可被描述。圖3A闡明多媒體暫存器中之各種緊縮資料類型表示,依據本發明之實施例。圖3A闡明針對128位元寬的運算元之緊縮位元組310、緊縮字元320、及緊縮雙字元(dword)330的資料類型。此範例之緊縮位元組格式310可為128位元長並含有十六個緊縮位元組資料元件。位元組可被定義(例如)為八位元的資料。針對各位元組資料元件之資訊可被儲存於位元7至位元0(針對位元組0)、位元15至位元8(針對位元組1)、位元23至位元16(針對位元組2)、及最後位元120至位元127(針對位元組15)。因此,所有可用位元可被用於暫存器中。此儲存配置增加處理器之儲存效率。同樣地,隨著存取十六個資料元件,一操作現在可平行地被履行於十六個資料元件上。
通常,資料元件可包括個別件的資料,其被儲存於具有相同長度之其他資料元件的單一暫存器或記憶體位置中。在有關於SSEx科技之緊縮資料序列中,XMM暫存器中所儲存之資料元件的數目可為128位元除以單獨資料元件之位元長度。類似地,在有關於MMX及SSE科技之緊縮資料序列中,XMM暫存器中所儲存之資料元件的數 目可為64位元除以單獨資料元件之位元長度。雖然圖3A中所示之資料類型可為128位元長,但本發明之實施例亦可操作以64位元寬或其他大小的運算元。此範例之緊縮字元格式320可為128位元長並含有八個緊縮字元資料元件。各緊縮字元含有十六位元的資訊。圖3A之緊縮雙字元格式330可為128位元長並含有四個緊縮雙字元資料元件。各緊縮雙字元資料元件含有三十二位元的資訊。緊縮四字元可為128位元長並含有兩個緊縮四字元資料元件。
圖3B闡明可能的暫存器中資料儲存格式,依據本發明之實施例。各緊縮資料可包括多於一獨立資料元件。三個緊縮資料格式被顯示;緊縮半341、緊縮單342、及緊縮雙343。緊縮半341、緊縮單342、及緊縮雙343之一實施例含有固定點資料元件。針對另一實施例,緊縮半341、緊縮單342、及緊縮雙343之一或更多者可含有浮點資料元件。緊縮半341之一實施例可為含有八個16位元資料元件之128位元長。緊縮單342之一實施例可為128位元長且含有四個32位元資料元件。緊縮雙343之一實施例可為128位元長且含有兩個64位元資料元件。應理解:此等緊縮資料格式可被進一步擴充至其他暫存器長度,例如,至96位元、160位元、192位元、224位元、256位元或更多。
圖3C闡明多媒體暫存器中之各種有符號的及無符號的緊縮資料類型表示,依據本發明之實施例。無符號的緊縮位元組表示344係闡明SIMD暫存器中之無符號緊縮位 元組的儲存。針對各位元組資料元件之資訊可被儲存於位元7至位元0(針對位元組0)、位元15至位元8(針對位元組1)、位元23至位元16(針對位元組2)、及最後位元120至位元127(針對位元組15)。因此,所有可用位元可被用於暫存器中。此儲存配置可增加處理器之儲存效率。同樣地,隨著存取十六個資料元件,一操作現在可以平行方式被履行於十六個資料元件上。有符號的緊縮位元組表示345係闡明有符號緊縮位元組的儲存。注意:每一位元組資料元件之第八位元可為符號指示器。無符號的緊縮字元表示346係闡明字元七至字元零可如何被儲存於SIMD暫存器中。有符號字元表示347可類似於無符號緊縮字元暫存器中表示346。注意:各字元資料元件之第十六位元可為符號指示器。無符號緊縮雙字元表示348顯示雙字元如何被儲存。有符號雙字元表示349可類似於無符號緊縮雙字元暫存器中表示348。注意:必要的符號位元可為各雙字元資料元件之第三十二位元。
圖3D闡明操作編碼(運算碼)之實施例。再者,格式360可包括暫存器/記憶體運算元定址模式,其係相應與「IA-32 Intel Architecture Software Developer’s Manual Volume 2:Instruction Set Reference」中所描述之運算碼格式的類型,其可得自Intel Corporation,Santa Clara,CA於www.intel.com/design/litcentr。於一實施例中,指令可由欄位361及362之一或更多者所編碼。可識別高達每指令兩個運算元位置,包括高達兩個來源運算元識別符364 及365。於一實施例中,目的地運算元識別符366可相同於來源運算元識別符364,而於其他實施例中其可為不同的。於另一實施例中,目的地運算元識別符366可相同於來源運算元識別符365,而於其他實施例中其可為不同的。於一實施例中,由來源運算元識別符364及365所識別的來源運算元可由文字串比較操作之結果所覆寫,而於其他實施例中識別符364係相應於來源暫存器元件且識別符365係相應於目的地暫存器元件。於一實施例中,運算元識別符364及365可識別32位元或64位元來源及目的地運算元。
圖3E闡明具有四十或更多位元之另一可能的操作編碼(運算碼)格式370,依據本發明之實施例。運算碼格式370係相應與運算碼格式360並包含選擇性的前綴位元組378。依據一實施例之指令可由欄位378、371及372之一或更多所編碼。高達每指令兩個運算元位置可由來源運算元識別符374及375以及由前綴位元組378所識別。於一實施例中,前綴位元組378可被用以識別32位元或64位元來源及目的地運算元。於一實施例中,目的地運算元識別符376可相同於來源運算元識別符374,而於其他實施例中其可為不同的。針對另一實施例,目的地運算元識別符376可相同於來源運算元識別符375,而於其他實施例中其可為不同的。於一實施例中,指令係操作於其由運算元識別符374和375所識別的運算元之一或更多者上,且其由運算元識別符374和375所識別的運算元之一 或更多者可被該指令之結果所覆寫;而於其他實施例中,由識別符374和375所識別的運算元可被寫入至另一暫存器中之另一資料元件。運算碼格式360及370容許暫存器至暫存器、記憶體至暫存器、暫存器接記憶體、暫存器接暫存器、暫存器接即刻、暫存器至記憶體位址,其係部分地由MOD欄位363和373以及由選擇性比例-指標-基礎和置換位元組所指明。
圖3F闡明又另一可能的操作編碼(運算碼)格式,依據本發明之實施例。64位元單指令多資料(SIMD)算數操作可透過共處理器資料處理(CDP)指令而被履行。操作編碼(運算碼)格式380係描繪具有CDP運算碼欄位382和389之一此CDP指令。CDP指令之類型,針對令一實施例,操作可由欄位383、384、387及388之一或更多所編碼。可識別高達每指令三個運算元位置,包括高達兩個來源運算元識別符385和390以及一個目的地運算元識別符386。共處理器之一實施例可操作於八、十六、三十二、及64位元值。於一實施例中,指令可被履行於整數資料元件上。於某些實施例中,指令可被條件式地執行,使用條件欄位381。針對某些實施例,來源資料大小可由欄位383所編碼。於某些實施例中,零(Z)、負(N)、攜載(C)、及溢流(V)檢測可被進行於SIMD欄位上。針對某些指令,飽和之類型可由欄位384所編碼。
圖4A為闡明依序管線及暫存器重新命名、失序問題/ 執行管線之方塊圖,依據本發明之實施例。圖4B為闡明其將被包括於處理器中的依序架構核心及暫存器重新命名邏輯、失序問題/執行邏輯之方塊圖,依據本發明之實施例。圖4A中之實線方盒係闡明依序管線,而虛線方盒係闡明暫存器重新命名、失序問題/執行管線。類似地,圖4B中之實線方盒係闡明依序架構邏輯,而虛線方盒係闡明暫存器重新命名邏輯和失序問題/執行邏輯。
於圖4A中,處理器管線400可包括提取級402、長度解碼級404、解碼級406、配置級408、重新命名級410、排程(亦已知為分派或發送)級412、暫存器讀取/記憶體讀取級414、執行級416、寫入回/記憶體寫入級418、例外處置級422、及確定級424。
於圖4B中,箭號係表示介於二或更多單元之間的耦合,而箭號之方向係指示介於那些單位之間的資料流之方向。圖4B顯示處理器核心490,其包括一耦合至執行引擎單元450之前端單元430,且兩者可被耦合至記憶體單元470。
核心490可為精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字元(VLIW)核心、或者併合或替代核心類型。於一實施例中,核心490可為特殊用途核心,諸如(例如)網路或通訊核心、壓縮引擎、圖形核心,等等。
前端單元430可包括分支預測單元432,其係耦合至指令快取單元434。指令快取單元434可被耦合至指令變 換後備緩衝(TLB)436。TLB 436可被耦合至指令提取單元438,其被耦合至解碼單元440。解碼單元440可解碼指令,並將以下產生為輸出:一或更多微操作、微碼進入點、微指令、其他指令、或其他控制信號,其可被解碼自(或者反應)、或可被衍生自原始指令。解碼器可使用各種不同的機制來實施。適當機制之範例包括(但不限定於)查找表、硬體實施方式、可編程邏輯陣列(PLA)、微碼唯讀記憶體(ROM),等等。於一實施例中,指令快取單元434可被進一步耦合至記憶體單元470中之第2階(L2)快取單元476。解碼單元440被耦合至執行引擎單元450中之重新命名/配置器單元452。
執行引擎單元450可包括重新命名/配置器單元452,其係耦合至撤回單元454及一組一或更多排程器單元456。排程器單元456代表任何數目的不同排程器,包括保留站、中央指令窗,等等。排程器單元456可被耦合至實體暫存器檔單元458。實體暫存器檔單元458之各者代表一或更多實體暫存器檔,其不同者係儲存一或更多不同的資料類型,諸如純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點等等、狀態(例如,其為下一待執行指令之位址的指令指標),等等。實體暫存器檔單元458可由撤回單元454所重疊以闡明其中暫存器重新命名及失序執行可被實施之各種方式(例如,使用一或更多記錄器緩衝器和一或更多撤回暫存器檔;使用一或更多未來檔、一或更多歷史緩衝器、和一或更多撤回暫存器檔; 使用暫存器映圖和暫存器池,等等)。通常,架構暫存器可從處理器之外部或者從編程者之觀點為可見的。暫存器可不限於任何已知特定類型的電路。各種不同類型的暫存器可為適合的,只要其儲存並提供資料如文中所述者。適當暫存器之範例包括(但不限定於)專屬實體暫存器、使用暫存器重新命名之動態配置實體暫存器、專屬及動態配置實體暫存器之組合,等等。撤回單元454及實體暫存器檔單元458可被耦合至執行叢集460。執行叢集460包括一組一或更多執行單元462及一組一或更多記憶體存取單元464。執行單元462可履行各種操作(例如,偏移、相加、相減、相乘)以及於各種類型的資料上(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)。雖然某些實施例可包括數個專屬於特定功能或功能集之執行單元,但其他實施例可包括僅一個執行單元或者全部履行所有功能之多數執行單元。排程器單元456、實體暫存器檔單元458、及執行叢集460被顯示為可能複數的,因為某些實施例係針對某些類型的資料/操作產生分離的管線(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線、及/或記憶體存取管線,其各具有本身的排程器單元、實體暫存器檔單元、及/或執行叢集-且於分離記憶體存取管線之情況下,某些實施例可被實施於其中僅有此管線之執行叢集具有記憶體存取單元464)。亦應理解:當使用分離管線時,這些管線之一或更多者可為失序發送/執行而其他者為依序。
該組記憶體存取單元464可被耦合至記憶體單元470,其可包括資料TLB單元472,其耦合至資料快取單元474,其耦合至第2階(L2)快取單元476。於一範例實施例中,記憶體存取單元464可包括載入單元、儲存位址單元、及儲存資料單元,其各者可被耦合至記憶體單元470中之資料TLB單元472。L2快取單元476可被耦合至一或更多其他階的快取且最終至主記憶體。
舉例而言,範例暫存器重新命名、失序發送/執行核心架構可實施管線400如下:1)指令提取438可履行提取和長度解碼級402和404;2)解碼單元440可履行解碼級406;3)重新命名/配置器單元452可履行配置級408和重新命名級410;4)排程器單元456可履行排程級412;5)實體暫存器檔單元458和記憶體單元470可履行暫存器讀取/記憶體讀取級414;執行叢集460可履行執行級416;6)記憶體單元470和實體暫存器檔單元458可履行寫入回/記憶體寫入級418;7)各個單元可參與例外處置級422之履行;及8)撤回單元454和實體暫存器檔單元458可履行確定級424。
核心490可支援一或更多指令集(例如,x86指令集(具有其已被加入以較新版本之某些延伸);MIPS Technologies of Sunnyvale,CA之MIPS指令集;ARM Holdings of Sunnyvale,CA之ARM指令集(具有諸如NEON之選擇性額外延伸))。
應理解:核心可支援多線程(執行二或更多平行組的 操作或線緒)以多種方式。多線程支援可藉由(例如)包括以下之方式來履行:時間切割多線程、同時多線程(其中單一實體核心提供邏輯核心給其實體核心正同時地多線程之每一線緒)、或者其組合。此一組合可包括(例如)時間切割提取和解碼以及之後的同時多線程,諸如於Intel® Hyper-Threading Technology中。
雖然暫存器重新命名可被描述於失序執行之背景,但應理解其暫存器重新命名可被使用於依序架構。雖然處理器之所述的實施例亦可包括分離的指令和資料快取單元434/474以及共享L2快取單元476,但其他實施例可具有針對指令和資料兩者之單一內部快取,諸如(例如)第1階(L1)內部快取、或多階內部快取。於某些實施例中,該系統可包括內部快取與外部快取之組合,該外部快取可是位於核心及/或處理器之外部。於其他實施例中,所有快取可於核心及/或處理器之外部。
圖5A為一處理器500之方塊圖,依據本發明之實施例。於一實施例中,處理器500可包括多核心處理器。處理器500可包括系統代理510,其係通訊地耦合至一或更多核心502。再者,核心502及系統代理510可被通訊地耦合至一或更多快取506。核心502、系統代理510、及快取506可經由一或更多記憶體控制單元552而被通訊地耦合。再者,核心502、系統代理510、及快取506可經由記憶體控制單元552而被通訊地耦合至圖形模組560。
處理器500可包括任何適當的機制,用以互連核心 502、系統代理510、及快取506、與圖形模組560。於一實施例中,處理器500可包括環狀互連單元508,用以互連核心502、系統代理510、及快取506、與圖形模組560。於其他實施例中,處理器500可包括用以互連此等單元之任何數目的眾所周知技術。環狀互連單元508可利用記憶體控制單元552以協助互連。
處理器500可包括記憶體階層,其包含該些核心內之一或更多階快取、一或更多共享快取單元(諸如快取506)、或耦合至該組集成記憶體控制器單元552之外部記憶體(未顯示)。快取506可包括任何適當的快取。於一實施例中,快取506可包括一或更多中階快取,諸如第2階(L2)、第3階(L3)、第4階(L4)、或其他階快取、最後階快取(LLC)、及/或其組合。
於各個實施例中,核心502之一或更多者可履行多線程。系統代理510可包括用以協調並操作核心502之組件。系統代理單元510可包括(例如)電力控制單元(PCU)(未顯示)。PCU可為或者包括用以調節核心502之電力狀態所需的邏輯和組件。系統代理510可包括顯示引擎512,用以驅動一或更多外部連接的顯示或圖形模組560。系統代理510可包括用於針對圖形之通訊匯流排的介面514。於一實施例中,介面514可由PCI Express(PCIe)所實施。於一進一步實施例中,介面514可由PCI Express Graphics(PEG)所實施。系統代理510可包括直接媒體介面(DMI)516。DMI 516可提供電腦系統 之主機板或其他部分上介於不同橋之間的鏈結。系統代理510可包括PICe橋518,用以提供PCIe鏈結至計算系統之其他元件。PICe橋518可使用記憶體控制器520及同調邏輯522來實施。
核心502可被實施以任何適當的方式。核心502可為同質或異質,有關於架構及/或指令集。於一實施例中,某些核心502可為依序的而其他可為失序的。於另一實施例中,核心502之二或更多者可執行相同指令集,而其他者可執行該指令集之僅一子集或不同的指令集。
處理器500可包括通用處理器,諸如CoreTM i3,i5,i7,2 Duo及Quad,XeonTM,ItaniumTM,XScaleTM或StrongARMTM處理器,其可得自Intel Corporation,of Santa Clara,Calif。處理器500可被提供自其他公司,諸如ARM Holdings,Ltd,MIPS,等等。處理器500可為特殊用途處理器,諸如(例如)網路或通訊處理器、壓縮引擎、圖形處理器、共處理器、嵌入式處理器,等等。處理器500可被實施於一或更多晶片上。處理器500可為一或更多基底之部分及/或可被實施於其上,使用數個製程技術之任一者,諸如(例如)BiCMOS、CMOS、或NMOS。
於一實施例中,快取506之一既定者可由數個核心502所共用。於另一實施例中,快取506之一既定者可專屬於核心502之一。快取506至核心502之指派可由快取控制器或其他適當機制來處置。快取506之一既定者可由二或更多核心502所共用,藉由實施既定快取506之時間 切割。
圖形模組560可實施集成圖形處理子系統。於一實施例中,圖形模組560可包括圖形處理器。再者,圖形模組560可包括媒體引擎565。媒體引擎565可提供媒體編碼及視頻解碼。
圖5B為核心502的範例實施方式之方塊圖,依據本發明之實施例。核心502可包括前端570,其係通訊地耦合至失序引擎580。核心502可透過快取階層503而被通訊地耦合至處理器500之其他部分。
前端570可被實施以任何適當方式,諸如完全地或部分地藉由如上所述之前端201。於一實施例中,前端570可透過快取階層503而與處理器500之其他部分通訊。於進一步實施例中,前端570可從處理器500之部分提取指令並準備該些指令以供後續於處理器管線中使用,隨著其被傳遞至失序執行引擎單元580。
失序執行引擎單元580可被實施以任何適當方式,諸如完全地或部分地藉由如上所述之失序執行引擎單元203。失序執行引擎單元580可準備從前端570所接收的指令以供執行。失序執行引擎單元580可包括配置模組582。於一實施例中,配置模組582可配置處理器500之資源或其他資源(諸如暫存器或緩衝器),以執行既定指令。配置模組582可進行配置於排程器中,諸如記憶體排程器、快速排程器、或浮點排程器。此等排程器可藉由資源排程器584而被表示於圖5B中。配置模組582可藉由 其配合圖2所描述的配置邏輯而被完全地或部分地實施。資源排程器584可根據既定資源的來源之備妥狀態及欲執行指令所需的執行資源之可用性以判定指令何時準備好執行。資源排程器584可由(例如)如上所討論的排程器202、204、206所實施。資源排程器584可排程一或更多資源上之指令的執行。於一實施例中,此等資源可於核心502內部,且可被顯示(例如)為資源586。於另一實施例中,此等資源可於核心502外部,且可為由(例如)快取階層503可存取的。資源可包括(例如)記憶體、快取、暫存器檔、或暫存器。於核心502內部之資源可由圖5B中之資源586所表示。如所需,被寫入至或讀取自資源586之值可透過(例如)快取階層503而與處理器500之其他部分協調。隨著指令被指派資源,其可被置入記錄器緩衝器588。記錄器緩衝器588可追蹤指令(隨著其被執行)並可根據處理器500之任何適當準則以選擇性地記錄其執行。於一實施例中,記錄器緩衝器588可識別指令或一連串指令,其可被獨立地執行。此等指令或一連串指令可與其他此等指令平行地被執行。核心502中之平行執行可藉由任何適當數目的分離執行區塊或虛擬處理器而被履行。於一實施例中,共用資源-諸如記憶體、暫存器、及快取-可存取至既定核心502內之多數虛擬處理器。於其他實施例中,共用資源可存取至處理器500內之多數處理實體。
快取階層503可被實施以任何適當的方式。例如,快 取階層503可包括一或更多較低階或中階快取,諸如快取572、574。於一實施例中,快取階層503可包括LLC 595,其係通訊地耦合至快取572、574。於另一實施例中,LLC 595可被實施於模組590,其可存取至處理器500中之所有處理實體。於進一步實施例中,模組590可被實施於來自Intel,Inc之處理器的非核心模組中。模組590可包括針對核心502之執行為必要(但可能不被實施於核心502內)的處理器500之部分或子系統。除了LLC 595以外,模組590可包括(例如)硬體介面、記憶體同調協調器、處理器間互連、指令管線、或記憶體控制器。處理器500可用之對於RAM 599的存取可透過模組590(及更明確地,LLC 595)而被進行。再者,核心502之其他例子可類似地存取模組590。核心502之例子的協調可部分地透過模組590而被促成。
圖6-8可闡明適於包括處理器500之範例系統,而圖9可闡明其可包括核心502之一或更多者的範例系統單晶片(SoC)。用於膝上型電腦、桌上型電腦、手持式PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、開關、嵌入式處理器、數位信號處理器(DSP)、圖形裝置、視頻遊戲裝置、機上盒、微控制器、行動電話、可攜式媒體播放器、手持式裝置、及各種其他電子裝置之技術中已知的其他系統設計和組態亦可為適當的。通常,其結合處理器及/或其他執行邏輯(如文中所揭露者)之多種系統或電子裝置可為一般性適當的。
圖6闡明一系統600之方塊圖,依據本發明之實施例。系統600可包括一或更多處理器610、615,其可被耦合至圖形記憶體控制器集線器(GMCH)620。額外處理器615之選擇性本質於圖6中被標示以斷線。
各處理器610、615可為處理器500之某版本。然而,應注意:集成圖形邏輯和集成記憶體控制單元可能不存在於處理器610、615中。圖6闡明其GMCH 620可被耦合至記憶體640,其可為(例如)動態隨機存取記憶體(DRAM)。DRAM可(針對至少一實施例)與非揮發性快取相關。
GMCH 620可為晶片組、或晶片組之一部分。GMCH 620可與處理器610、615通訊並控制介於處理器610、615與記憶體640之間的互動。GMCH 620亦可作用為介於處理器610、615與系統600的其他元件之間的匯流排介面。於一實施例中,GMCH 620係經由多點分支匯流排(諸如前側匯流排(FSB)695)而與處理器610、615通訊。
再者,GMCH 620可被耦合至顯示645(諸如平板顯示)。於一實施例中,GMCH 620可包括集成圖形加速器。GMCH 620可被進一步耦合至輸入/輸出(I/O)控制器集線器(ICH)650,其可被用以耦合各個周邊裝置至系統600。外部圖形裝置660可包括耦合至ICH 650之離散圖形裝置,連同其他周邊裝置670。
於其他實施例中,額外或不同處理器亦可存在於系統 600中。例如,額外處理器610、615可包括:其可相同於處理器610的額外處理器、其可與處理器610異質或非對稱的額外處理器、加速器(諸如,例如,圖形加速器或數位信號處理(DSP)單元)、場可編程閘極陣列、或任何其他處理器。於實體資源610、615間可有多樣差異,針對價值矩陣之譜,包括架構、微架構、熱、功率耗損特性,等等。這些差異可有效地顯現自身為非對稱以及介於處理器610、615之間的異質性。針對至少一實施例,各個處理器610、615可駐存於相同晶粒封裝中。
圖7闡明一第二系統700之方塊圖,依據本發明之實施例。如圖7中所示,多處理器系統700可包括點對點互連系統,並可包括經由點對點互連750而耦合之第一處理器770及第二處理器780。處理器770及780之每一者可為處理器500之某版本,如處理器610、615之一或更多者。
雖然圖7可闡明兩個處理器770、780,但應理解其本發明之範圍未如此限制。於其他實施例中,一或更多額外處理器可存在於既定處理器中。
處理器770及780被顯示個別地包括集成記憶體控制器單元772及782。處理器770亦可包括其匯流排控制器單元點對點(P-P)介面776及778之部分;類似地,第二處理器780可包括P-P介面786及788。處理器770、780可使用P-P介面電路778、788而經由點對點(P-P)介面750來交換資訊。如圖7中所示,IMC 772及782可 將處理器耦合至個別記憶體,亦即記憶體732及記憶體734,其於一實施例中可為本地地裝附至個別處理器之主記憶體的部分。
處理器770、780可各經由個別的P-P介面752、754而與晶片組790交換資訊,使用點對點介面電路776、794、786、798。於一實施例中,晶片組790亦可經由高性能圖形介面739而與高性能圖形電路738交換資訊。
共享快取(未顯示)可被包括於任一處理器中或者於兩處理器外部,而經由P-P互連與處理器連接,以致處理器之任一者或兩者的本地快取資訊可被儲存於共享快取中,假如處理器被置於低功率模式時。
晶片組790可經由一介面796而被耦合至第一匯流排716。於一實施例中,第一匯流排716可為周邊組件互連(PCI)匯流排、或者諸如PCI快速匯流排或其他第三代I/O互連匯流排等匯流排,雖然本發明之範圍未如此限制。
如圖7中所示,各種I/O裝置714可被耦合至第一匯流排716,連同匯流排橋718,其係將第一匯流排716耦合至第二匯流排720。於一實施例中,第二匯流排720可為低管腳數(LPC)匯流排。各個裝置可被耦合至第二匯流排720,其包括(例如)鍵盤及/或滑鼠722、通訊裝置727、及儲存單元728,諸如磁碟機或其他大量儲存裝置(其可包括指令/碼及資料730),於一實施例中。此外,音頻I/O 724可被耦合至第二匯流排720。注意:其他架 構可為可能的。例如,取代圖7之點對點架構,系統可實施多點分支匯流排或其他此類架構。
圖8闡明一第三系統800之方塊圖,依據本發明之實施例。圖7及8中之類似元件係具有類似數字,而圖7之某些形態已被省略自圖8以免混淆圖8之其他形態。
圖8闡明其處理器770、780可包括集成記憶體及I/O控制邏輯(「CL」)872和882,個別地。針對至少一實施例,CL 872、882可包括集成記憶體控制器單元,諸如以上配合圖5和7所述者。此外,CL 872、882亦可包括I/O控制邏輯。圖8闡明其不僅記憶體732、734可被耦合至CL 872、882,同時其I/O裝置814亦可被耦合至控制邏輯872、882。舊有I/O裝置815可被耦合至晶片組790。
圖9闡明SoC 900之方塊圖,依據本發明之實施例。圖5中之類似元件具有類似的參考數字。同時,虛線方塊可代表更多先進SoC上之選擇性特徵。互連單元902可被耦合至:應用程式處理器910,其可包括一組一或更多核心502A-N及共享快取單元506;系統代理單元510;匯流排控制器單元916;集成記憶體控制器單元914;一組一或更多媒體處理器920,其可包括集成圖形邏輯908、影像處理器924(用以提供靜止及/或視頻相機功能)、音頻處理器926(用以提供硬體音頻加速)、及視頻處理器928(用以提供視頻編碼/解碼加速);靜態隨機存取記憶體(SRAM)單元930;直接記憶體存取(DMA)單元 932;及顯示單元940(用以耦合至一或更多外部顯示)。
圖10闡明一含有中央處理單元(CPU)及圖形處理單元(GPU)之處理器,其可履行至少一指令,依據本發明之實施例。於一實施例中,用以依據至少一實施例來履行操作之指令可由CPU所履行。於另一實施例中,指令可由GPU所履行。於又另一實施例中,指令可透過由GPU和CPU所履行之操作的組合而被履行。例如,於一實施例中,依據一實施例之指令可被接收並解碼以供於GPU上執行。然而,已解碼指令內之一或更多操作可由CPU所履行且結果回覆至GPU以供指令之最終撤回。反之,於某些實施例中,CPU可作用為主處理器而GPU為共處理器。
於某些實施例中,從高度平行、通量處理器得利的指令可由GPU所履行,而從處理器(其係從大量管線化架構得利)之性能得利的指令可由CPU所履行。例如,圖形、科學應用、金融應用及其他平行工作負荷可得利自GPU之性能而可因此被執行,而更串列式的應用(諸如作業系統核心或應用程式碼)可更適於CPU。
於圖10中,處理器1000包括CPU 1005、GPU 1010、影像處理器1015、視頻處理器1020、USB控制器1025、UART控制器1030、SPI/SDIO控制器1035、顯示裝置1040、記憶體介面控制器1045、MIPI控制器1050、快閃記憶體控制器1055、雙資料速率(DDR)控制器 1060、安全性引擎1065、及I2S/I2C控制器1070。其他的邏輯和電路可被包括於圖10之處理器中,包括更多的CPU或GPU及其他周邊介面控制器。
至少一實施例之一或更多形態可由其儲存在機器可讀取媒體上之代表性資料所實施,該機器可讀取媒體代表處理器內之各個邏輯,當由機器讀取時造成該機器製造邏輯以履行文中所述之技術。此等表示(已知為「IP核心」)可被儲存在有形的、機器可讀取媒體(「帶」)上,且被供應至各個消費者或製造設施以載入其實際上製造該邏輯或處理器之製造機器。例如,IP核心(諸如由ARM Holdings,Ltd.所開發的CortexTM家族處理器及the Institute of Computing Technology(ICT)of the Chinese Academy of Sciences所開發的Loongson IP核心)可被授權或販售給各個消費者或被授權人(諸如Texas Instruments,Qualcomm,Apple,或Samsung),且被實施於由這些消費者或被授權人所製造的處理器中。
圖11顯示一方塊圖,其闡明IP核心的開發,依據本發明之實施例。儲存1100可包括模擬軟體1120及/或硬體或軟體模型1110。於一實施例中,代表IP核心設計之資料可被提供至儲存1100,經由記憶體1140(例如,硬碟)、有線連接(例如,網際網路)1150或無線連接1160。由模擬工具及模型所產生的IP核心資訊可接著被傳輸至製造設施1165,其中其可由第三方所製造以履行依據至少一實施例之至少一指令。
於某些實施例中,一或更多指令可相應於第一類型或架構(例如,x86)且可被變換或仿真於不同類型或架構(例如,ARM)之處理器上。指令(依據一實施例)可因此被履行於任何處理器或處理器類型上,包括ARM、x86、MIPS、GPU、或其他處理器類型或架構。
圖12闡明第一類型的指令可如何被不同類型的處理器所仿真,依據本發明之實施例。於圖12中,程式1205含有某些指令,其可履行如依據一實施例之指令的相同或實質上相同的功能。然而,程式1205之指令可屬於不同於或不相容與處理器1215之類型及/或格式,表示程式1205中之該類型的指令可能無法由處理器1215所本機地執行。然而,藉助於仿真邏輯1210,程式1205之指令可被變換為其可由處理器1215所本機地執行之指令。於一實施例中,仿真邏輯可被實施於硬體中。於另一實施例中,仿真邏輯可被實施於有形的、機器可讀取媒體,其含有用以將程式1205中之該類型的指令變換為可由處理器1215所本機地執行之類型的軟體。於其他實施例中,仿真邏輯可為固定功能或可編程硬體與儲存於有形的、機器可讀取媒體上之程式的組合。於一實施例中,處理器含有仿真邏輯,而於其他實施例中,仿真邏輯存在於處理器外部並可由第三方所提供。於一實施例中,處理器可藉由執行處理器中所含有或與處理器相關的微碼或韌體以載入體現於一有形的、機器可讀取媒體(其含有軟體)的仿真邏輯。
圖13闡明對照軟體指令轉換器之使用的方塊圖,該轉換器係用以將來源指令集中之二元指令轉換至目標指令集中之二元指令,依據本發明之實施例。於所述之實施例中,指令轉換器可為一種軟體指令轉換器,雖然該指令轉換器亦可被實施以軟體、韌體、硬體、或其各種組合。圖13顯示一種高階語言1302之程式可使用x86編譯器1304而被編譯以產生x86二元碼1306,其可由具有至少一x86指令集核心之處理器1316來本機地執行。具有至少一x86指令集核心之處理器1316代表任何處理器,其可藉由可相容地執行或者處理以下事項來履行實質上如一種具有至少一x86指令集核心之Intel處理器的相同功能:(1)Intel x86指令集核心之指令集的實質部分或者(2)針對運作於具有至少一x86指令集核心之Intel處理器上的應用程式或其他軟體之物件碼版本,以獲得如具有至少一X86指令集核心之Intel處理器的實質上相同結果。x86編譯器1304代表一種編譯器,其可操作以產生x86二元碼1306(例如,物件碼),其可(具有或沒有額外鏈結處理)被執行於具有至少一x86指令集核心之處理器1316上。類似地,圖13顯示高階語言1302之程式可使用替代的指令集編譯器1308而被編譯以產生替代的指令集二元碼1310,其可由沒有至少一x86指令集核心之處理器1314來本機地執行(例如,具有其執行MIPS Technologies of Sunnyvale,CA之MIPS指令集及/或其執行ARM Holdings of Sunnyvale,CA之ARM指令集的核心 之處理器)。指令轉換器1312者被用以將x86二元碼1306轉換為其可由沒有x86指令集核心之處理器1314來本機地執行的碼。此已轉換碼可不相同於替代指令集二元碼1310;然而,該已轉換碼將完成一般性操作並由來自替代指令集之指令所組成。因此,指令轉換器1312代表軟體、韌體、硬體、或其組合,其(透過仿真、模擬或任何其他程序)容許處理器或其他不具有x86指令集處理器或核心的電子裝置來執行x86二元碼1306。
圖14為處理器的指令集架構1400之方塊圖,依據本發明之實施例。指令集架構1400可包括任何適當數目或種類的組件。
例如,指令集架構1400可包括處理實體,諸如一或更多核心1406、1407及圖形處理單元1415。核心1406、1407可透過任何適當機制(諸如透過匯流排或快取)而被通訊地耦合至指令集架構1400之剩餘者。於一實施例中,核心1406、1407可被通訊地耦合透過L2快取控制1408,其可包括匯流排介面單元1409及L2快取1411。核心1406、1407及圖形處理單元1415可被通訊地耦合至彼此以及透過互連1410而至指令集架構1400之剩餘者。於一實施例中,圖形處理單元1415可使用視頻編碼解碼器1420,定義其中特定視頻信號所將被編碼及解碼以供輸出的方式。
指令集架構1400亦包括任何數目或種類的介面、控制器、或其他機制,用以與電子裝置或系統之其他部分介 面或通訊。此等機制可協助與(例如)周邊、通訊裝置、其他處理器、或記憶體之互動。於圖14之範例中,指令集架構1400可包括液晶顯示(LCD)視頻介面1425、訂戶介面模組(SIM)介面1430、開機ROM介面1435、同步動態隨機存取記憶體(SDRAM)控制器1440、快閃控制器1445、及串列周邊介面(SPI)主機單元1450。LCD視頻介面1425可提供來自(例如)GPU 1415並透過(例如)行動工業處理器介面(MIPI)1490或高解析多媒體介面(HDMI)1495之視頻信號的輸出至顯示。此一顯示可包括(例如)LCD。SIM介面1430可提供存取至或自SIM卡或裝置。SDRAM控制器1440可提供存取至或自記憶體,諸如SDRAM晶片或模組1460。快閃控制器1445可提供存取至或自記憶體,諸如快閃記憶體1465或RAM之其他例子。SPI主機單元1450可提供存取至或自通訊模組,諸如藍牙模組1470、高速3G數據機1475、全球定位系統模組1480、無線模組1485,其係實施諸如802.11之通訊標準。
圖15為處理器的指令集架構1500之更詳細方塊圖,依據本發明之實施例。指令架構1500可實施指令集架構1400之一或更多形態。再者,指令集架構1500可闡明用於處理器內之指令的執行之模組及機制。
指令架構1500可包括記憶體系統1540,其係通訊地耦合至一或更多執行實體1565。再者,指令架構1500可包括快取及匯流排介面單元,諸如單元1510,其係通訊 地耦合至執行實體1565及記憶體系統1540。於一實施例中,指令之載入執行實體1565可由執行之一或更多級來履行。此類級可包括(例如)指令預提取級1530、雙指令解碼級1550、暫存器重新命名級1555、發送級1560、及寫入回級1570。
於一實施例中,記憶體系統1540可包括已執行指令指針1580。已執行指令指針1580可儲存其識別一批指令內之最舊的、未分派的指令之值。該最舊指令可相應於最低程式順序(PO)值。PO可包括指令之獨特編號。此一指令可為由多數執行股所表示之執行緒內的單指令。PO可被用於排序指令以確保碼之正確執行語意。PO可藉由(諸如)評估對於指令中所PO編碼之增值(而非絕對值)等機制來重建。此一重建的PO可被已知為「PRO」。雖然PO可被參考於文中,此一PO可與PRO被交替地使用。執行股可包括其為取決於彼此之資料的一連串指令。執行股可藉由二元變換器而被配置於編譯時刻。執行執行股之硬體可依據各個指令之PO以依序地執行既定執行股之指令。執行緒可包括數個執行股以致不同執行股之指令可彼此相依。既定執行股之PO可為其尚未從發送級所分派至執行之執行股中的最舊指令的PO。因此,給定多數執行股之執行緒,各執行股包括由PO所排序之指令,則已執行指令指針1580可儲存最舊的(由最低數目所顯示的)PO於執行緒中。
於另一實施例中,記憶體系統1540可包括撤回指針 1582。撤回指針1582可儲存一識別上個已撤回指令之PO的值。撤回指針1582可由(例如)撤回單元454所設定。假如無指令尚未被撤回,則撤回指針1582可包括零值。
執行實體1565可包括任何適當數目及種類的機制,處理器可藉由該些機制以執行指令。於圖5之範例中,執行實體1565可包括ALU/乘法單元(MUL)1566、ALU 1567、及浮點單位(FPU)1568。於一實施例中,此等實體可利用既定位址1569內所含的資訊。執行實體1565(結合級1530、1550、1555、1560、1570)可集體地形成執行單元。
單元1510可被實施以任何適當的方式。於一實施例中,單元1510可履行快取控制。於此一實施例中,單元1510可因此包括快取1525。快取1525可被實施(於進一步實施例中)為L2統一快取,具有任何適當尺寸,諸如記憶體之零、128k、256k、512k、1M、或2M位元組。於另一進一步實施例中,快取1525可被實施於錯誤校正碼記憶體中。於另一實施例中,單元1510可履行匯流排介面至處理器或電子裝置之其他部分。於此一實施例中,單元1510可因此包括匯流排介面單元1520,用以通訊透過互連、處理器內匯流排、處理器間匯流排、或其他通訊匯流排、埠、或線。匯流排介面單元1520可提供介面以供履行(例如):用於執行實體1565與指令架構1500外部之系統的部分之間的資料轉移之記憶體及輸入/輸出位址 的產生。
為了進一步協助其功能,匯流排介面單元1520可包括中斷控制及分佈單元1511,用以產生對於處理器或電子裝置之其他部分的中斷及其他通訊。於一實施例中,匯流排介面單元1520可包括監聽控制單元1512,其係處置針對多處理核心之快取存取及同調性。於進一步實施例中,為了提供此功能,監聽控制單元1512可包括快取至快取轉移單元1513,其係處置介於不同快取之間的資訊交換。於另一進一步實施例中,監聽控制單元1512可包括一或更多監聽過濾器1514,其係監督其他快取(未顯示)之同調以致快取控制器(諸如單元1510)無須直接地履行此監督。單元1510可包括任何適當數目的計時器1515,用以同步化指令架構1500之動作。同時,單元1510可包括AC埠1516。
記憶體系統1540可包括任何適當數目及種類的機制,用以儲存針對指令架構1500之處理需求的資訊。於一實施例中,記憶體系統1540可包括載入儲存單元1546,用以儲存資訊,諸如緩衝器寫入至或讀取回自記憶體或暫存器。於另一實施例中,記憶體系統1540可包括變換後備緩衝(TLB)1545,其係提供介於實體與虛擬位址之間的位址值之查找。於又另一實施例中,記憶體系統1540可包括記憶體管理單元(MMU)1544,用以協助存取至虛擬記憶體。於又另一實施例中,記憶體系統1540可包括預提取1543,用以在此等指令實際地需被執行之 前從記憶體請求指令,以供減少潛時。
用以執行指令之指令架構1500的操作可透過不同級而被履行。例如,使用單元1510指令預提取級1530可透過預提取器1543以存取指令。已擷取指令可被儲存於指令快取1532中。預提取級1530可致能針對快速迴路模式之選擇1531,其中係執行一連串指令,其係形成一足夠小以配適入既定快取內之迴路。於一實施例中,此一執行可被履行而無須存取額外指令自(例如)指令快取1532。應預提取哪些指令之判定可藉由(例如)分支預測單元1535來進行,該分支預測單元1535可存取:總體歷史1536中之執行的指示、目標位址1537之指示、或返回堆疊1538之內容,用以判定碼之哪些分支1557將被接下來執行。此等分支可因此有可能被預提取。分支1557可透過如以下所述之操作的其他級而被產生。指令預提取級1530可提供指令以及有關未來指令之任何預測至雙指令解碼級1550。
雙指令解碼級1550可將已接收指令變換為其可被執行之微碼為基的指令。雙指令解碼級1550可同時地於每時脈循環解碼兩個指令。再者,雙指令解碼級1550可將其結果傳遞至暫存器重新命名級1555。此外,雙指令解碼級1550可從微碼之其解碼及最終執行判定任何所得分支。此等結果可被輸入分支1557。
暫存器重新命名級1555可將對於虛擬暫存器或其他資源之參考變換為對於實體暫存器或資源之參考。暫存器 重新命名級1555可包括暫存器池1556中之此等映射的指示。暫存器重新命名級1555可改變所接收的指令並將結果傳送至發送級1560。
發送級1560可發送或調度命令至執行實體1565。此發送可被履行以失序方式。於一實施例中,多重指令可在執行前被保持於發送級1560。發送級1560可包括用以保持此等多重命令之指令佇列1561。指令可由發送級1560所發送至特定處理實體1565,根據任何可接受的準則,諸如用於執行既定指令之資源的可用性及適合性。於一實施例中,發送級1560可重新排序指令佇列1561內之指令,以致所接收的第一指令可能不是所執行的第一指令。根據指令佇列1561之排序,額外分支資訊可被提供至分支1557。發送級1560可傳遞指令至執行實體1565以供執行。
於執行時,寫入回級1570可將資料寫入暫存器、佇列、或指令集架構1500之其他結構以通知既定命令之完成。根據發送級1560中所配置之指令的順序,寫入回級1570之操作可致能額外指令被執行。指令集架構1500之履行可由追蹤單元1575所監督或除錯。
圖16為用於處理器的指令集架構之執行管線1600的方塊圖,依據本發明之實施例。執行管線1600可闡明(例如)圖15之指令架構1500的操作。
執行管線1600可包括步驟或操作之任何適當組合。於1605,可進行其接下來將被執行之分支的預測。於一 實施例中,此等預測可根據指令之先前執行以及其結果。於1610,相應於執行之預測分支的指令可被載入指令快取。於1615,指令快取中之一或更多此等指令可被提取以供執行。於1620,其已被提取之指令可被解碼成微碼或更特定的機器語言。於一實施例中,多重指令可被同時地解碼。於1625,對於已解碼指令內之暫存器或其他資源的參考可被重新指派。例如,對於虛擬暫存器之參考可被取代以對於相應實體暫存器之參考。於1630,指令可被調度至佇列以供執行。於1640,指令可被執行。此執行可被履行以任何適當的方式。於1650,指令可被發送至適當執行實體。其中指令所被執行之方式可取決於執行該指令之特定實體。例如,於1655,ALU可履行算術功能。ALU可利用單一時脈循環於其操作,以及兩個兩個移位器。於一實施例中,兩個ALU可被利用,而因此兩個指令可被執行於1655。於1660,可進行所得分支之判定。程式計數器可被用以指定其所將被進行至之分支的目的地。1660可被執行於單一時脈循環內。於1665,浮點算術可由一或更多FPU所履行。浮點操作可能需要多重時脈循環以執行(諸如)二至十循環。於1670,乘法及除法操作可被履行。此等操作可被履行於四個時脈循環。於1675,載入及儲存操作至暫存器或管線1600之其他部分可被履行。該些操作可包括載入及儲存位址。此等操作可被履行於四個時脈循環。於1680,寫入回操作可藉由1655-1675之所得操作而被履行如所需。
圖17為用以利用處理器1710的電子裝置1700之方塊圖,依據本發明之實施例。電子裝置1700可包括(例如)筆記型電腦、輕薄型筆電、電腦、塔式伺服器、框架式伺服器、刀鋒式伺服器、膝上型電腦、桌上型電腦、輸入板、行動裝置、電話、嵌入式電腦、或任何其他適當的電子裝置。
電子裝置1700可包括處理器1710,其係通訊地耦合至任何適當數目或種類的組件、周邊、模組、或裝置。此耦合可藉由任何適當種類的匯流排或介面來完成,諸如I2C匯流排、系統管理匯流排(SMBus)、低管腳數(LPC)匯流排、SPI、高解析度音頻(HDA)匯流排、串列先進技術裝附(SATA)匯流排、USB匯流排(版本1、2、3)、或通用異步接收器/傳輸器(UART)匯流排。
此等組件可包括(例如)顯示1724、觸控式螢幕1725、觸控板1730、近場通訊(NFC)單元1745、感應器集線器1740、熱感應器1746、快速晶片組(EC)1735、信任平台模組(TPM)1738、BIOS/韌體/快閃記憶體1722、數位信號處理器1760、驅動1720,諸如固態硬碟(SSD)或硬碟驅動(HDD)、無線區域網路(WLAN)單元1750、藍牙單元1752、無線廣域網路(WWAN)單元1756、全球定位系統(GPS)1775、相機1754,諸如USB 3.0相機、或低功率雙資料速率(LPDDR)記憶體單元1715,其係實施以(例如) LPDDR3標準。這些組件可各被實施以任何適當的方式。
再者,於各個實施例中,其他組件可透過以上所討論的組件而被通訊地耦合至處理器1710。例如,加速計1741、周圍光感應器(ALS)1742、羅盤1743、及迴轉儀1744可被通訊地耦合至感應器集線器1740。熱感應器1739、風扇1737、鍵盤1736、及觸控板1730可被通訊地耦合至EC 1735。揚聲器1763、耳機1764及麥克風1765可被通訊地耦合至音頻單元1762,其可因而被通訊地耦合至DSP 1760。音頻單元1762可包括(例如)音頻編碼解碼器及類別D放大器。SIM卡1757可被通訊地耦合至WWAN單元1756。諸如WLAN單元1750及藍牙單元1752(以及WWAN單元1756)等組件可被實施於下一代形狀因數(NGFF)。
圖18闡明一種具有改良的MSI中斷處置之範例系統的方塊圖,依據本發明之實施例。依據某些實施例,提供一種機制以容許裝置藉由直接地傳送中斷資料(包括一或更多中斷向量)至處理器來請求訊息通知中斷(MSI或MSI中斷),以仿真MSI中斷。中斷資料不限於特定格式或大小。因此,中斷裝置可以多種格式傳送中斷資料至處理器。與處理器相關的解碼器邏輯可監督並檢測MSI中斷請求而引動中斷控制器根據該中斷資料以發送MSI中斷。於某些實施例中,中斷資料可包括時序資訊以及多數中斷向量。中斷控制器可利用時序資訊以判定多數中斷向量之哪一個應被用以服務該中斷請求。
於某些實施例中,針對其能夠請求MSI中斷之各裝置,記憶體之特定區塊可被配置給該裝置。記憶體之此一區塊可被配置(例如)自處理器快取,諸如第1階(L1)快取、第2階(L2)快取、或第3階(L3)快取。各裝置可得以直接地存取記憶體之相關區塊,經由後置寫入異動,使用直接快取或記憶體存取技術。與裝置相關之記憶體區塊的大小可根據裝置組態而改變。
於某些實施例中,當裝置請求MSI中斷時,該裝置可經由後置寫入異動以傳送並儲存資料(於文中亦稱為中斷資料)至相關的記憶體區塊。此資料可由服務該中斷請求之處理器所利用。中斷資料可包括一或更多中斷向量,其係指向與中斷裝置相關的一或更多中斷服務常式(ISR)。
回應於後置寫入異動,解碼器邏輯可引動中斷控制器從記憶體區塊擷取中斷向量。中斷控制器可由任何適當的控制器所實施,諸如(例如)先進可編程中斷控制器(APIC)。MSI中斷可被直接地傳送至處理器,而MSI中斷之中斷向量可由處理器APIC所攔截。解碼器邏輯可確立信號至APIC以告知APIC有關未決的MSI中斷。於某些實施例中,解碼器邏輯可將記憶體區塊位址傳遞至APIC,其可根據該接收的記憶體區塊位址以從該記憶體區塊提取中斷向量。
於某些實施例中,應被儲存於記憶體區塊中之中斷資料可包括多數中斷向量。各中斷向量可與中斷服務常式 (ISR)或ISR之進入點相關聯。回應於針對記憶體區塊之後置寫入異動的檢測,解碼器邏輯可從該記憶體區塊擷取中斷向量。針對中斷向量之各者,解碼器邏輯可引動中斷控制器從該記憶體區塊存取該中斷向量並引動處理器或處理器核心執行與該中斷向量相關的ISR。
系統1800可包括處理器1801、系統時鐘1830、及中斷裝置1840。中斷裝置1840可經由匯流排1850(亦稱為骨幹匯流排或前側匯流排(FSB))而被通訊地耦合至處理器1801。中斷裝置1840可包括任何裝置,其可傳送仿真的MSI中斷請求至處理器1801。例如,中斷裝置1840可包括另一處理器或任何適當的周邊裝置,諸如滑鼠、鍵盤、或參考圖17而於以上所述之任何其他周邊裝置。
處理器1801可包括核心1803之一或更多例示。核心1803之各例示可包括解碼器1812及中斷控制器1820。中斷控制器1820可被實施以任何適當的中斷控制器,諸如APIC。核心1803亦可包括快取1808。再者,快取1808可包括任何適當的快取階,諸如第1階(L1)快取、第2階(L2)快取、或第3階(L3)快取。雖然快取1808被顯示於圖18為核心1803之部分,但快取1808亦可由核心1803之多數例示所共享。快取1808可包括快取之多數線,諸如快取線1809a至1809n。快取1808中之某些快取線可被配置給一或更多裝置以儲存來自那些裝置之中斷資料。例如,快取線1809a可被配置給中斷裝置1840,而快取1808中之其他快取線可被配置給其未被明確地顯 示於圖18中之其他中斷裝置。
於某些實施例中,裝置可藉由儲存中斷資料至快取1808中之其配置的快取線(經由後置寫入異動)以仿真MSI中斷。例如,為了確立MSI中斷,中斷裝置1840可經由後置寫入異動以儲存中斷資料至快取線1809a。中斷資料可包括一或更多中斷向量,其係代表與中斷裝置1840相關的ISR之進入點。中斷資料亦可包括資訊,諸如資料緩衝器位址、控制和狀態暫存器值及其可用於服務中斷之任何其他資訊。解碼器1812可監督且檢測對於已配置快取線之任何後置寫入異動,並可檢測從中斷裝置1840所起始之任何仿真的MSI中斷。回應於此後置寫入異動之檢測,解碼器1812可指示中斷控制器1820從快取1808中之已配置快取線1809a擷取一或更多中斷向量。中斷控制器1820可直接地存取其配置給中斷裝置1840之快取線1809a,以從中斷裝置1840讀取中斷資料。因為中斷控制器1820係從快取1808直接地獲得中斷資料而非從中斷裝置1840(經由透過匯流排1850之一或更多輸入/輸出(IO)異動)獲得相同的資料,所以當服務仿真的MSI中斷時處理器1801可節省時間。
特定快取線(諸如快取1808中之快取線1809a至1809n)可防止其寫入至已配置快取線之中斷資料被自動地由快取線取代演算法(諸如最少近期使用(LRU)快取線取代策略)所取代。此外,快取線之配置亦可防止解碼器1812錯誤地引動處理器1801服務中斷,當寫入至已配置 快取線係由自動快取線資料取代事件(而非經由後置寫入異動至已配置快取線所請求之實際仿真的MSI中斷)所觸發時。已配置快取線可藉由使其無法用於自動取代而被配置。如以下更詳細地描述,快取線可被配置至特定裝置(諸如中斷裝置1840),藉由將快取線位址寫入該裝置之直接快取存取(DCA)暫存器1841。於某些實施例中,特別指定的裝置可為其被致能以寫入至配置給該裝置之快取線的系統中之唯一裝置。
中斷裝置1840可包括DCA暫存器1841。如上所述,DCA暫存器1841可儲存其配置至中斷裝置1840之快取1808中的快取線之位址。例如,當快取線1809a已被配置至中斷裝置1840時,則中斷裝置1840之DCA暫存器1841可儲存快取線1809a之位址。因此,中斷裝置1840可經由後置寫入異動至處理器1801內之快取線1809a以仿真MSI中斷。
中斷裝置1840亦可包括最大延遲暫存器1842。於系統1800之一或更多組件的組態期間,裝置組態韌體可將中斷裝置1840之最大可容許延遲資訊寫入至最大延遲暫存器1842。最大可容許延遲資訊可為以任何適當方式所定義的時間值。例如,最大可容許延遲可為使用者定義的或者由與中斷裝置1840相關之驅動程式所定義的。
再者,中斷裝置1840可被通訊地耦合至系統時鐘1830。中斷裝置1840可根據系統時鐘1830以產生時戳,每次中斷裝置1840傳送仿真的MSI中斷至處理器1801 時。如以下參考圖19所更詳細地描述,為了仿真MSI中斷請求,中斷裝置1840可將中斷資料(包括時戳、最大可容許延遲值、及一或更多中斷向量)傳送至處理器1801。亦如以下參考回圖18而更詳細地描述,中斷控制器1820可利用時序資訊以判定如何處置MSI中斷請求。
圖19為用於仿真的MSI中斷之中斷資料的方塊圖,依據本發明之實施例。中斷資料1900可代表從中斷裝置1840傳送至處理器1801並經由後置寫入異動而儲存於快取線1809a中(如圖18中所示)的中斷資料。
中斷資料1900可包括一或更多中斷向量,諸如中斷向量1902及中斷向量1904。於某些實施例中,中斷向量1902可為主要中斷向量而中斷向量1904可為次要中斷向量。中斷資料1900亦可包括最大可容許延遲值1906。最大可容許延遲值1906可根據圖18中之中斷裝置1840的最大延遲暫存器1842內所儲存之資訊。再者,中斷資料1900可包括時戳1908。時戳1908可由中斷裝置1840根據系統時鐘1830而產生,並可表示仿真的MSI中斷從中斷裝置1840被傳送至處理器1801的時間。如以下參考回圖18而更詳細地描述,中斷控制器1820可利用最大可容許延遲值1906及時戳1908以判定如何處置中斷向量1902與1904之一者或兩者。
於某些實施例中,中斷資料1900內部之資料欄位可為可交換的,例如最大可容許延遲1906及時戳1908資料欄位可位於中斷資料1900中之中斷向量1902及1904資 料欄位前。
回來參考圖18,中斷控制器1820可在服務MSI中斷請求前檢查快取1808中所儲存的中斷資料。例如,如上所述,中斷裝置1840可藉由將中斷資料(包括時戳、最大可容許延遲值、及一或更多中斷向量)經由後置寫入異動而寫入至快取線1809a以請求MSI中斷。解碼器1812可監督且檢測對於已配置快取線之任何後置寫入異動,並可檢測仿真的MSI中斷。回應地,解碼器1812可指示中斷控制器1820存取快取線1809a。中斷控制器1820可接著從快取線1809a讀取最大可容許延遲值。於某些實施例中,中斷控制器1820可根據最大可容許延遲值以指派優先權給MSI中斷。例如,較高的優先權可被授予一具有50毫秒最大可容許延遲之MSI中斷,相較於一具有100毫秒最大可容許延遲之MSI中斷。中斷控制器1820可根據判定的優先權以將仿真的MSI中斷依序地排列於中斷佇列中。
於某些實施例中,處理器1801之中斷控制器1820可根據中斷資料中之時序資訊以判定是否服務一請求的MSI中斷。例如,中斷控制器1820中之延遲比較電路1821可從快取線1809a讀取時戳及最大可容許延遲值。延遲比較電路1821可比較時戳與來自系統時鐘1830之時間信號以判定從中斷裝置1840傳送仿真的MSI中斷至處理器1801的時刻開始所經過之時間量。延遲比較電路1821可接著比較該經過時間與該最大可容許延遲並判定該經過時間是 否於該最大可容許延遲內。
假如該經過時間是於該最大可容許延遲內,則中斷控制器1820可從快取線1809a讀取中斷向量1902。如上所述,中斷向量1902可為主要中斷向量。因此,根據中斷向量1902,中斷控制器1820可引動主要中斷處置器1822運行主要ISR。
假如該經過時間非於該最大可容許延遲內,則中斷控制器1820可履行替代步驟。例如,假如該經過時間非於該最大可容許延遲內,則中斷控制器1820可忽略該請求的MSI中斷並告知中斷裝置1840其該仿真的MSI中斷請求未被服務。當作另一範例,假如該經過時間非於該最大可容許延遲內,則中斷控制器1820可從快取線1809a讀取中斷向量1904。如上所述,中斷向量1904可為次要中斷向量。因此,根據中斷向量1904,中斷控制器1820可引動次要中斷處置器1823運行次要ISR。
次要ISR可包括一或更多動作,其可負責大於中斷裝置1840之最大可容許延遲的經過時間。例如,次要中斷處置器1823可處置該中斷請求以一種主要中斷處置器1822所將處置該請求的類似方式,但亦負責其有關該中斷請求之某些裝置資料可能過期的潛在可能。例如,假如過期的裝置資料係有關由中斷裝置所履行的即時測量,則次要中斷處置器1823可丟棄該過期的裝置資料並請求中斷裝置重複該測量且傳送新的中斷請求。
次要中斷處置器1823亦可登錄有關從當中斷裝置 1840一開始請求仿真的MSI中斷時至當那些中斷被服務時之該些延遲的性能資料。處理器1801可接著將該性能資料使用為回饋以最佳化未來中斷請求之處置。例如,次要中斷處置器1823可更新性能暫存器1825中之計數,每次次要中斷處置器1823由於中斷被延遲超過其最大可容許延遲而處置該中斷時。當作另一範例,次要中斷處置器1823可針對各延遲中斷請求登錄性能暫存器1825中之最大中斷延遲值及/或經過時間值。次要中斷處置器1823亦可提出一指示其請求中斷已被延遲之旗標。旗標可被傳送至作業系統或運作於處理器1801上之另一程序。處理器1801可利用性能資訊(諸如性能暫存器1825中之資訊或指示延遲中斷請求之旗標)來調整處理器性能或系統資源以供處置未來中斷請求。例如,處理器頻率及/或性能可被增加以提供用來服務中斷之額外處理能力。服務品質(QOS)參數亦可針對某些裝置而被調整。例如,針對具有較長最大可容許延遲之中斷裝置的優先權可被減少及/或針對具有較短最大可容許延遲之中斷裝置的優先權可被增加。此外,處理器1801可調整各個中斷裝置之匯流排仲裁優先權。例如,具有50ms之最大可容許延遲的中斷裝置可被授予在匯流排1850上之較高優先權,相較於具有100ms之最大可容許延遲的中斷裝置。
此外,處理器1801可告知中斷裝置1840有關由處理器1801所採取的任何動作,回應於藉由次要中斷處置器1823之延遲中斷請求的處置。中斷裝置1840可接著調整 其本身的操作參數,其可最佳化處理器1801之能力以處置來自中斷裝置1840之中斷請求。例如,中斷裝置1840可調整其操作頻率向上或向下。當作另一範例,非時序關鍵裝置之性能可被減少以釋放用於其他時序關鍵裝置之處理資源。再者,中斷裝置1840可增加其可在既定時刻緩衝之中斷請求的數目。此外,中斷裝置1840可將多數中斷請求結合為單一中斷請求,其可減少處理器1801欲處置該些中斷請求所需的處理資源之量。當作另一範例,中斷裝置1840可再組態本身以分佈其中斷請求至核心1803之不同例示或處理器1801之不同例示。如此一來,用以服務由中斷裝置1840所請求之MSI中斷所需的處理負載可被分割於不同的處理器及/或處理器核心之間。
圖20為用以處置仿真MSI中斷之方法的範例實施例之流程圖,依據本發明之實施例。方法2000可闡明(例如)由處理器1801及/或中斷控制器1820所履行之操作。方法2000可針對處理器之各核心而被履行。於一實施例中,方法2000可開始於步驟2010。
於步驟2010,中斷資料可被接收。例如,處理器1801可從中斷裝置1840接收中斷資料。於某些實施例中,中斷裝置1840可仿真MSI中斷請求,藉由寫入中斷資料至其配置給中斷裝置1840之處理器1801內的記憶體之區塊。例如,中斷裝置1840可經由後置寫入異動以儲存中斷資料至快取線1809a。中斷資料可包括時戳、最大可容許延遲值、及一或更多中斷向量。時戳可代表其MSI 中斷從中斷裝置1840被傳送至處理器1801之時間。最大可容許延遲值可代表最大可容許延遲-從中斷被請求之時間至中斷被服務之時間-以供該請求的中斷依據主要中斷服務常式而被服務。
於步驟2020,最大可容許延遲值可被讀取。以及於2030,時戳可被讀取。例如,解碼器1812可監督且檢測對於已配置給中斷裝置1840的快取線之任何後置寫入異動,並因此可檢測從中斷裝置1840所起始之任何仿真的MSI中斷。回應於檢測到仿真的MSI中斷請求,解碼器1812可指示中斷控制器1820存取快取線1809a。中斷控制器1820可接著讀取其由處理器1801從中斷裝置1840所接收的中斷資料,於步驟2010期間。中斷資料可包括最大可容許延遲值及時戳兩者。
於步驟2040,時戳可與時鐘信號進行比較以判定經過時間。例如,延遲比較電路1821可比較時戳與來自系統時鐘1830之時間信號以判定其從中斷裝置1840傳送仿真的MSI中斷至處理器1801的時刻開始所經過之時間量。
於步驟2050,經過時間可與最大可容許延遲進行比較。例如,延遲比較電路1821可比較步驟2040中所判定之經過時間與步驟2020期間所讀取之最大可容許延遲值。
根據步驟2050中所進行的比較,可於步驟2060判定是否引動中斷處置器。例如,假如該經過時間非於該最大 可容許延遲內,則中斷控制器1820可忽略該請求的MSI中斷,告知中斷裝置1840其該請求的MSI中斷請求未被服務,並前進至步驟2090以結束方法2000。替代地,假如該經過時間是於該最大可容許延遲內,則方法2000可前進至步驟2070;或假如該經過時間非於該最大可容許延遲內,則前進至步驟2080。
於步驟2070,主要中斷處置器可被引動。中斷控制器1820可從快取線1809a讀取中斷向量1902。根據中斷向量1902,中斷控制器1820可引動主要中斷處置器1822運行主要ISR。
於步驟2080,次要中斷處置器可被引動。中斷控制器1820可從快取線1809a讀取中斷向量1904。根據中斷向量1904,中斷控制器1820可引動次要中斷處置器1823運行次要ISR。
在步驟2070或步驟2080之後,方法2000可前進至步驟2090以結束方法2000。
方法2000可藉由任何適當的準則而被起始。再者,雖然方法2000描述特定元件之操作,但方法2000亦可由元件之任何適當的組合或類型所履行。例如,方法2000可由圖1-19中所示之元件或者可操作以實施方法2000之任何其他系統來實施。如此一來,方法2000之較佳初始化及包含方法2000之元件的順序可取決於所選擇的實施方式。於某些實施例中,某些元件可被選擇性地省略、再組織、重複、或結合。再者,方法2000之各個部分可彼 此平行而被完全地或者部分地履行。
文中所揭露之機制的實施例可被實施以硬體、軟體、韌體、或此等實施方式之組合。本發明之實施例可被實施為電腦程式或程式碼,其被執行於可編程系統上,該可編程系統包含至少一處理器、儲存系統(包括揮發性和非揮發性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置。
程式碼可被應用於輸入指令以履行文中所述之功能並產生輸出資訊。輸出資訊可被應用於一或更多輸出裝置,以已知的方式。為了本申請案之目的,處理系統可包括任何系統,其具有處理器,諸如(例如)數位信號處理器(DSP)、微控制器、特定應用積體電路(ASIC)、或微處理器。
程式碼可被實施以高階程序或目標導向的編程語言來與處理系統通訊。程式碼亦可被實施以組合或機器語言,假如想要的話。事實上,文中所述之機制在範圍上不限於任何特定編程語言。於任何情況下,該語言可為編譯或解讀語言。
至少一實施例之一或更多形態可由其儲存在機器可讀取媒體上之代表性指令所實施,該機器可讀取媒體代表處理器內之各個邏輯,當由機器讀取時造成該機器製造邏輯以履行文中所述之技術。此等表示(已知為「IP核心」)可被儲存在有形的、機器可讀取媒體上,且被供應至各個消費者或製造設施以載入其實際上製造該邏輯或處理器之 製造機器。
此類機器可讀取儲存媒體可包括(無限制)由機器或裝置所製造或形成之物件的非暫態、有形配置,包括:半導體裝置,諸如唯讀記憶體(ROM)、諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可編程唯讀記憶體(EPROM)等隨機存取記憶體(RAM)、快閃記憶體、電可抹除可編程唯讀記憶體(EEPROM)、磁或光學卡、或者適於儲存電子指令之任何其他類型的媒體。
因此,本發明之實施例亦可包括含有指令或含有諸如硬體描述語言(HDL)等設計資料之非暫態、有形的機器可讀取媒體,該硬體描述語言(HDL)係定義文中所述之結構、電路、設備、處理器及/或系統特徵。此類實施例亦可被稱為程式產品。
於某些情況下,指令轉換器可被用以將來自來源指令集之指令轉換至目標指令集。例如,指令轉換器可將指令翻譯(例如,使用靜態二元翻譯、動態二元翻譯,包括動態編譯)、變形、仿真、或者轉換至一或更多其他指令以供由核心所處理。指令轉換器可被實施以軟體、硬體、韌體、或其組合。指令轉換器可位於處理器上、處理器外、或者部分於處理器上而部分於處理器外。
因此,已揭露依據至少一實施例以履行一或更多指令之技術。雖然某些範例實施例已被描述及顯示於附圖中,但應理解其此等實施例僅為說明性而非對於其他實施例之 限制性,以及其此等實施例不限於所顯示及描述之特定指令,因為各種其他修改在研讀本發明後可為那些熟悉此技藝人士所能推知的。於諸如本發明之技術領域中,其中成長很快速而進一步的進步不是輕易地預見的,所揭露之實施例的配置及細節可為輕易可修改的,如藉由致能科技上進步而不背離本發明之原理或後附申請專利範圍之範圍來促成。
於某些實施例中,一種處理器可包括核心及中斷控制器。該中斷控制器可包括用以從記憶體讀取中斷資料之邏輯,該中斷資料包括時戳、可容許延遲值、及至少一中斷向量。該中斷控制器亦可包括延遲比較電路,用以根據該時戳和系統時鐘信號來判定經過時間及用以比較該經過時間與該可容許延遲值。該中斷控制器亦可包括邏輯,用以根據該經過時間與該可容許延遲值之該比較來判定是否引動中斷處置器。於任何上述實施例之結合中,該中斷資料可包括主要中斷向量及次要中斷向量。於任何上述實施例之結合中,該中斷控制器可進一步包括邏輯,用以根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。於任何上述實施例之結合中,該中斷控制器可進一步包括邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。於任何上述實施例之結合中,該處理器可進一步包括邏輯,用以在每次該次要中斷處置器被引動時更新性能暫存器。於任何上述實施例之結合中,該處理器可進一步 包括邏輯,用以在每次該次要中斷處置器被引動時將該可容許延遲值與該經過時間之至少一者登錄於性能暫存器中。於任何上述實施例之結合中,該處理器可進一步包括邏輯,用以傳送信號至裝置,該中斷資料係從該裝置所接收,該信號係指示其該經過時間大於該可容許延遲值。
於某些實施例中,一種處理器可包括核心及快取,其被配置以接收包括時戳、可容許延遲值、及至少一中斷向量之中斷資料。該處理器亦可包括解碼器,用以檢測該快取中之該中斷資料的該接收;及中斷控制器。該中斷控制器可包括:邏輯,用以於由該解碼器檢測到該中斷資料之該接收時從該快取讀取該中斷資料;延遲比較電路,用以根據該時戳和系統時鐘信號來判定經過時間及用以比較該經過時間與該可容許延遲值;及邏輯,用以根據該經過時間與該可容許延遲值之該比較來判定是否引動中斷處置器。於任何上述實施例之結合中,該中斷資料可包括主要中斷向量及次要中斷向量。於任何上述實施例之結合中,該中斷控制器可進一步包括邏輯,用以根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。於任何上述實施例之結合中,該中斷控制器可進一步包括邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。於任何上述實施例之結合中,該處理器可進一步包括邏輯,用以在每次該次要中斷處置器被引動時更新性能暫存器。於任何上述實施例之結合中,該處理器可進一步包括邏輯, 用以在每次該次要中斷處置器被引動時將該可容許延遲值與該經過時間之至少一者登錄於性能暫存器中。於任何上述實施例之結合中,該處理器可進一步包括邏輯,用以傳送信號至裝置,該中斷資料係從該裝置所接收,該信號係指示其該經過時間大於該可容許延遲值。
於某些實施例中,一種方法可包括:接收包括時戳、可容許延遲值、及至少一中斷向量之中斷資料;讀取該可容許延遲值;讀取該時戳;比較該時戳與時鐘信號以判定經過時間;比較該經過時間與該可容許延遲值;及根據該經過時間與該可容許延遲值之該比較以判定是否引動中斷處置器。於任何上述實施例之結合中,該中斷資料可包括主要中斷向量及次要中斷向量。於任何上述實施例之結合中,該方法可進一步包括接收該中斷資料內之主要中斷向量及次要中斷向量。於任何上述實施例之結合中,該方法可進一步包括根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。於任何上述實施例之結合中,該方法可進一步包括根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。於任何上述實施例之結合中,該方法可進一步包括在每次該次要中斷處置器被引動時更新性能暫存器。於任何上述實施例之結合中,該方法可進一步包括在每次該次要中斷處置器被引動時將該可容許延遲值登錄於性能暫存器中。於任何上述實施例之結合中,該方法可進一步包括傳送信號至裝置,該中斷資料係從該裝置所接收,該信 號係指示其該經過時間大於該可容許延遲值。
於某些實施例中,一種系統可包括:接收機構,用以接收包括時戳、可容許延遲值、及至少一中斷向量之中斷資料;讀取機構,用以讀取該可容許延遲值;讀取機構,用以讀取該時戳;比較機構,用以比較該時戳與時鐘信號以判定經過時間;比較機構,用以比較該經過時間與該可容許延遲值;及判定機構,用以根據該經過時間與該可容許延遲值之該比較以判定是否引動中斷處置器。於任何上述實施例之結合中,該中斷資料可包括主要中斷向量及次要中斷向量。於任何上述實施例之結合中,該系統可進一步包括接收機構,用以接收該中斷資料內之主要中斷向量及次要中斷向量。於任何上述實施例之結合中,該系統可進一步包括引動機構,用以根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。於任何上述實施例之結合中,該系統可進一步包括引動機構,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。於任何上述實施例之結合中,該系統可進一步包括更新機構,用以在每次該次要中斷處置器被引動時更新性能暫存器。於任何上述實施例之結合中,該系統可進一步包括登錄機構,用以在每次該次要中斷處置器被引動時將該可容許延遲值與該經過時間之至少一者登錄於性能暫存器中。於任何上述實施例之結合中,該系統可進一步包括傳送機構,用以傳送信號至裝置,該中斷資料係從該裝置所接收,該信號係指示其 該經過時間大於該可容許延遲值。
100‧‧‧系統
102‧‧‧處理器
104‧‧‧第1階(L1)內部快取記憶體
106‧‧‧暫存器檔
108‧‧‧執行單元
109‧‧‧緊縮指令集
110‧‧‧處理器匯流排
112‧‧‧圖形控制器
114‧‧‧互連
116‧‧‧系統邏輯晶片
118‧‧‧高頻寬記憶體路徑
119‧‧‧指令
120‧‧‧記憶體
121‧‧‧資料
122‧‧‧系統I/O
123‧‧‧舊有I/O控制器
124‧‧‧資料儲存
125‧‧‧使用者輸入介面
126‧‧‧無線收發器
127‧‧‧串列擴充埠
128‧‧‧韌體集線器(快閃BIOS)
129‧‧‧音頻控制器
130‧‧‧I/O控制器集線器(ICH)
134‧‧‧網路控制器

Claims (20)

  1. 一種處理器,包含:核心;及中斷控制器,包括:第一邏輯,用以從記憶體讀取中斷資料,該中斷資料包括時戳、可容許延遲值、及至少一中斷向量;延遲比較電路,用以根據該時戳和系統時鐘信號來判定經過時間及用以比較該經過時間與該可容許延遲值;以及第二邏輯,用以根據該經過時間與該可容許延遲值之該比較來判定是否引動中斷處置器。
  2. 如申請專利範圍第1項之處理器,其中該中斷資料包括主要中斷向量及次要中斷向量。
  3. 如申請專利範圍第1項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;以及該中斷控制器進一步包括第三邏輯,用以根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。
  4. 如申請專利範圍第1項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;以及該中斷控制器進一步包括第三邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。
  5. 如申請專利範圍第1項之處理器,其中: 該中斷資料包括主要中斷向量和次要中斷向量;該中斷控制器進一步包括第三邏輯,用以根據該經過時間大於該最大可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及該處理器進一步包括第四邏輯,用以在每次該次要中斷處置器被引動時更新性能暫存器。
  6. 如申請專利範圍第1項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;該中斷控制器進一步包括第三邏輯,用以根據該經過時間大於該最大可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及該處理器進一步包括第四邏輯,用以在每次該次要中斷處置器被引動時將該可容許延遲值與該經過時間之至少一者登錄於性能暫存器中。
  7. 如申請專利範圍第1項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;該中斷控制器進一步包括第三邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及該處理器進一步包含第四邏輯,用以傳送信號至裝置,該中斷資料係從該裝置所接收,該信號係指示其該經過時間大於該可容許延遲值。
  8. 一種處理器,包含:核心; 快取,其被配置以接收包括時戳、可容許延遲值、及至少一中斷向量之中斷資料;解碼器,用以檢測該快取中之該中斷資料的該接收;及中斷控制器,包括:第一邏輯,用以於由該解碼器檢測到該中斷資料之該接收時從該快取讀取該中斷資料;延遲比較電路,用以根據該時戳和系統時鐘信號來判定經過時間及用以比較該經過時間與該可容許延遲值;以及第二邏輯,用以根據該經過時間與該可容許延遲值之該比較來判定是否引動中斷處置器。
  9. 如申請專利範圍第8項之處理器,其中該中斷資料包括主要中斷向量及次要中斷向量。
  10. 如申請專利範圍第8項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;以及該中斷控制器進一步包含第三邏輯,用以根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。
  11. 如申請專利範圍第8項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;以及該中斷控制器進一步包含第三邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。
  12. 如申請專利範圍第8項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;該中斷控制器進一步包含第三邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及該處理器進一步包括第四邏輯,用以在每次該次要中斷處置器被引動時更新性能暫存器。
  13. 如申請專利範圍第8項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;該中斷控制器進一步包括第三邏輯,用以根據該經過時間大於該最大可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及該處理器進一步包括第四邏輯,用以在每次該次要中斷處置器被引動時將該可容許延遲值與該經過時間之至少一者登錄於性能暫存器中。
  14. 如申請專利範圍第8項之處理器,其中:該中斷資料包括主要中斷向量和次要中斷向量;以及該中斷控制器進一步包含第三邏輯,用以根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及該處理器進一步包含第四邏輯,用以傳送信號至裝置,該中斷資料係從該裝置所接收,該信號係指示其該經過時間大於該最大可容許延遲值。
  15. 一種方法,包含於處理器內: 接收包括時戳、可容許延遲值、及至少一中斷向量之中斷資料;讀取該可容許延遲值;讀取該時戳;比較該時戳與時鐘信號以判定經過時間;比較該經過時間與該可容許延遲值;及根據該經過時間與該可容許延遲值之該比較以判定是否引動中斷處置器。
  16. 如申請專利範圍第15項之方法,其中該中斷資料包括主要中斷向量及次要中斷向量。
  17. 如申請專利範圍第15項之方法,進一步包含:接收該中斷資料內之主要中斷向量及次要中斷向量;根據該經過時間小於該可容許延遲值來引動與該主要中斷向量相關的主要中斷處置器。
  18. 如申請專利範圍第15項之方法,進一步包含:接收該中斷資料內之主要中斷向量及次要中斷向量;以及根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器。
  19. 如申請專利範圍第15項之方法,進一步包含:接收該中斷資料內之主要中斷向量及次要中斷向量;以及根據該經過時間大於該最大可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及 在每次該次要中斷處置器被引動時更新性能暫存器。
  20. 如申請專利範圍第15項之方法,進一步包含:接收該中斷資料內之主要中斷向量及次要中斷向量;以及根據該經過時間大於該可容許延遲值來引動與該次要中斷向量相關的次要中斷處置器;以及傳送信號至裝置,該中斷資料係從該裝置所接收,該信號係指示其該經過時間大於該可容許延遲值。
TW105137501A 2015-12-21 2016-11-16 仿真的訊息通知中斷(msi)中斷處置 TWI715669B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
MYPI2015003008A MY186256A (en) 2015-12-21 2015-12-21 Emulated msi interrupt handling
MYPI2015003008 2015-12-21

Publications (2)

Publication Number Publication Date
TW201732619A true TW201732619A (zh) 2017-09-16
TWI715669B TWI715669B (zh) 2021-01-11

Family

ID=59067039

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105137501A TWI715669B (zh) 2015-12-21 2016-11-16 仿真的訊息通知中斷(msi)中斷處置

Country Status (4)

Country Link
US (1) US10394728B2 (zh)
MY (1) MY186256A (zh)
TW (1) TWI715669B (zh)
WO (1) WO2017112173A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY186256A (en) 2015-12-21 2021-06-30 Intel Corp Emulated msi interrupt handling
US10672362B2 (en) * 2018-08-17 2020-06-02 Ffipco, Llc Systems and methods for digital content creation and rendering
US20210107512A1 (en) * 2020-03-27 2021-04-15 Intel Corporation Computing system for mitigating execution drift
CN111722916B (zh) * 2020-06-29 2023-11-14 长沙新弘软件有限公司 一种通过映射表处理msi-x中断的方法
US20220377158A1 (en) * 2021-05-24 2022-11-24 Texas Instruments Incorporated Priority selection for multiple protocol stacks
TWI784853B (zh) * 2021-12-23 2022-11-21 新唐科技股份有限公司 資料偵測電路以及處理裝置
US11843663B1 (en) * 2023-01-03 2023-12-12 Huawei Cloud Computing Technologies Co., Ltd. Vector-scalar logical clock and associated method, apparatus and system
CN116909639B (zh) * 2023-09-13 2023-12-12 珠海星云智联科技有限公司 一种挂载系统、方法、集群以及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944840A (en) * 1997-09-10 1999-08-31 Bluewater Systems, Inc. Continuous monitor for interrupt latency in real time systems
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
DE10039277A1 (de) * 2000-08-11 2002-02-21 Gfs Systemtechnik Gmbh & Co Kg Verfahren für die termingerechte Ausführung einer Zielfunktion
GB2403822B (en) * 2003-07-07 2006-05-10 Advanced Risc Mach Ltd Data processing apparatus and method for handling interrupts
US7702835B2 (en) * 2005-02-03 2010-04-20 Oracle America, Inc. Tagged interrupt forwarding
US8850262B2 (en) * 2010-10-12 2014-09-30 International Business Machines Corporation Inter-processor failure detection and recovery
US9384154B2 (en) * 2011-11-03 2016-07-05 Intel Corporation Method to emulate message signaled interrupts with multiple interrupt vectors
US8996760B2 (en) 2011-11-03 2015-03-31 Intel Corporation Method to emulate message signaled interrupts with interrupt data
MY186256A (en) 2015-12-21 2021-06-30 Intel Corp Emulated msi interrupt handling

Also Published As

Publication number Publication date
TWI715669B (zh) 2021-01-11
US10394728B2 (en) 2019-08-27
MY186256A (en) 2021-06-30
US20170177518A1 (en) 2017-06-22
WO2017112173A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
TWI739772B (zh) 處理器、用於安全指令執行管線之方法、及運算系統
TWI733710B (zh) 用於重複發生相鄰聚集的處理器、方法和單元
TWI715669B (zh) 仿真的訊息通知中斷(msi)中斷處置
EP3384378B1 (en) Instruction and logic for in-order handling in an out-of-order processor
TW201727493A (zh) 從持續記憶體預取資訊的指令及邏輯
TW201729078A (zh) 用於以通道為基礎的跨步儲存操作之指令及邏輯
TW201732581A (zh) 用於載入索引與集中操作的指令及邏輯
US20180004526A1 (en) System and Method for Tracing Data Addresses
TW201732560A (zh) 用於位元欄位位址和插入之指令及邏輯
US20170168819A1 (en) Instruction and logic for partial reduction operations
TW201732548A (zh) 用於向量置換的指令和邏輯
TW201729079A (zh) 用於檢測浮點消除效應之指令及邏輯
TW201732555A (zh) 用於向量位元欄壓縮及擴展的指令及邏輯
US10102215B2 (en) Apparatus for hardware implementation of lossless data compression
WO2018005718A1 (en) System and method for out-of-order clustered decoding
US9928066B2 (en) Instruction and logic for encoded word instruction compression
WO2015097494A1 (en) Instruction and logic for identifying instructions for retirement in a multi-strand out-of-order processor
US20170123799A1 (en) Performing folding of immediate data in a processor
US10795684B2 (en) Method and logic for maintaining performance counters with dynamic frequencies
US10795681B2 (en) Instruction length decoding
US20170177348A1 (en) Instruction and Logic for Compression and Rotation
US10990395B2 (en) System and method for communication using a register management array circuit
TW201730754A (zh) 用以取得資料行的指令和邏輯
TWI773654B (zh) 處理器、運算系統及用於執行以向量為基礎的位元操控之方法