亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于指令的快速失敗處理的裝置和方法

文檔序號:8491691閱讀:463來源:國知局
用于指令的快速失敗處理的裝置和方法
【專利說明】用于指令的快速失敗處理的裝置和方法 【背景技術(shù)】 技術(shù)領(lǐng)域[0001]
[0002] 本發(fā)明總體涉及計(jì)算機(jī)處理器領(lǐng)域。更具體地說,本發(fā)明涉及用于用于指令的快 速失敗處理的裝置和方法。 【背景技術(shù)】
[0003]
[0004] 如今,調(diào)用加速器需要通過驅(qū)動(dòng)器接口。在其中使用層次結(jié)構(gòu)保護(hù)域的系統(tǒng)中,這 意味著切換到環(huán)0,并且將數(shù)據(jù)復(fù)制到不同的地址空間,從而消耗顯著的時(shí)間和處理資源。 由于高等待時(shí)間,此類加速器接口固有地也是異步的??删幊碳铀倨饕蟊患铀俚拇a以 其自身的指令集架構(gòu)(ISA)被實(shí)現(xiàn)。
[0005] -些當(dāng)前的處理器架構(gòu)嘗試解決這些顧慮中的一些,但是僅提供具有在被加速的 任務(wù)請求及其執(zhí)行之間的高等待時(shí)間的、粗粒度的異步機(jī)制。此外,當(dāng)前的架構(gòu)使用非X86 ISA,這需要單獨(dú)的工具鏈來生成被加速的任務(wù),并將該被加速任務(wù)與主x86程序集成。
[0006] 此外,當(dāng)前的異步硬件加速器(例如,GPU)允許被加速的任務(wù)執(zhí)行與觸發(fā)該被加 速的任務(wù)的應(yīng)用線程不相關(guān)的任務(wù)。這允許該應(yīng)用線程處理異常和/或中斷而不影響被加 速的任務(wù),并且甚至允許該應(yīng)用線程在多個(gè)核之間迀移而不影響系統(tǒng)上被加速的任務(wù)的位 置。
[0007] 當(dāng)前的同步硬件加速器需要確保中斷、異常、上下文切換和核迀移仍然是功能正 確的,并且確保向前進(jìn)展。這是通過下述之一完成的:(1)確保加速器足夠短并且不導(dǎo)致 任何異常,使得任何中斷被推遲到完成該加速器為止;(2)在現(xiàn)有的架構(gòu)寄存器(例如, REPM0V)中保持加速器的向前進(jìn)展;或(3)定義保存加速器狀態(tài)的新架構(gòu)寄存器,并且將它 們添加到 XSAVE/XRESTORE。 【附圖說明】
[0008] 結(jié)合以下附圖,從以下【具體實(shí)施方式】中可獲得對本發(fā)明更好的理解,其中:
[0009]圖1A是示出根據(jù)本發(fā)明的多個(gè)實(shí)施例的示例性有序流水線和示例性的寄存器重 命名的無序發(fā)布/執(zhí)行流水線的框圖;
[0010] 圖1B是示出根據(jù)本發(fā)明的各實(shí)施例的要包括在處理器中的有序架構(gòu)核的示例性 實(shí)施例和示例性的寄存器重命名的無序發(fā)布/執(zhí)行架構(gòu)核的框圖;
[0011] 圖2是根據(jù)本發(fā)明的多個(gè)實(shí)施例的具有集成的存儲器控制器和圖形器件的單核 處理器和多核處理器的框圖。
[0012] 圖3示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)的框圖;
[0013] 圖4示出根據(jù)本發(fā)明的實(shí)施例的第二系統(tǒng)的框圖;
[0014]圖5示出根據(jù)本發(fā)明的實(shí)施例的第三系統(tǒng)的框圖;
[0015]圖6示出根據(jù)本發(fā)明的實(shí)施例的芯片上系統(tǒng)(SoC)的框圖;
[0016]圖7示出根據(jù)本發(fā)明的多個(gè)實(shí)施例的、對照使用軟件指令轉(zhuǎn)換器將源指令集中的 二進(jìn)制指令轉(zhuǎn)換成目標(biāo)指令集中的二進(jìn)制指令的框圖;
[0017] 圖8A示出可在其中實(shí)現(xiàn)本發(fā)明的多個(gè)實(shí)施例的處理器架構(gòu);
[0018] 圖8B-C示出存儲用于調(diào)用加速器并回顧結(jié)果的數(shù)據(jù)的寄存器;
[0019]圖9A-C示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于調(diào)用加速器的方法;
[0020] 圖10示出用于處理經(jīng)常失敗的復(fù)雜指令的方法;
[0021] 圖11示出使用用于存儲加速器狀態(tài)信息的棧的本發(fā)明的一個(gè)實(shí)施例。
[0022] 圖12A和12B是示出根據(jù)本發(fā)明的多個(gè)實(shí)施例的通用向量友好指令格式及其指令 模板的框圖;
[0023] 圖13A-D是示出根據(jù)本發(fā)明的多個(gè)實(shí)施例的示例性專用向量友好指令格式的框 圖;以及
[0024] 圖14是根據(jù)本發(fā)明的一個(gè)實(shí)施例的寄存器架構(gòu)的框圖。
[0025]圖15示出根據(jù)本發(fā)明的某些實(shí)施例的計(jì)算機(jī)系統(tǒng)。 【具體實(shí)施方式】
[0026] 在下面的描述中,為了進(jìn)行解釋,闡述了眾多具體細(xì)節(jié)以便提供對下述本發(fā)明的 多個(gè)實(shí)施例的透徹理解。然而,對本領(lǐng)域的技術(shù)人員顯而易見的是,可以在沒有這些具體細(xì) 節(jié)中的一些細(xì)節(jié)的情況下實(shí)施本發(fā)明的多個(gè)實(shí)施例。在其他實(shí)例中,公知的結(jié)構(gòu)和設(shè)備以 框圖形式示出,以避免使本發(fā)明的多個(gè)實(shí)施例的基本原理模糊。
[0027] 示例件處理器架構(gòu)和數(shù)據(jù)類塑
[0028]圖1A是示出根據(jù)本發(fā)明的多個(gè)實(shí)施例的示例性有序流水線和示例性的寄存器重 命名的無序發(fā)布/執(zhí)行流水線的框圖。圖1B是示出根據(jù)本發(fā)明的多個(gè)實(shí)施例的要包括在 處理器中的有序架構(gòu)核的示例性實(shí)施例和示例性的寄存器重命名的無序發(fā)布/執(zhí)行架構(gòu) 核的框圖。圖1A-B中的實(shí)線框示出了有序流水線和有序核,而可選增加的虛線框示出了寄 存器重命名的、無序發(fā)布/執(zhí)行流水線和核??紤]到有序方面是無序方面的子集,將描述無 序方面。
[0029] 在圖1A中,處理器流水線100包括取出級102、長度解碼級104、解碼級106、分配 級108、重命名級110、調(diào)度(也被稱為分派或發(fā)布)級112、寄存器讀取/存儲器讀取級 114、執(zhí)行級116、寫回/存儲器寫入級118、異常處理級122和提交級124。
[0030] 圖1B示出處理器核190,其包括耦合到執(zhí)行引擎單元130的前端單元150,且執(zhí)行 引擎單元和前端單元兩者都耦合到存儲器單元170。核190可以是精簡指令集計(jì)算(RISC) 核、復(fù)雜指令集計(jì)算(CISC)核、超長指令字(VLIW)核或混合或替代核類型。作為又一選項(xiàng), 核190可以是專用核,諸如例如,網(wǎng)絡(luò)或通信核、壓縮引擎、協(xié)處理器核、通用計(jì)算圖形處理 單元(GPGPU)核、圖形核等。
[0031] 前端單元130包括耦合到指令高速緩存單元134的分支預(yù)測單元132,該指令高 速緩存單元耦合到指令轉(zhuǎn)換后備緩沖器(TLB) 136,該指令轉(zhuǎn)換后備緩沖器耦合到指令取出 單元138,指令取出單元耦合到解碼單元140。解碼單元140 (或解碼器)可解碼指令,并生 成從原始指令解碼出的、或以其他方式反映原始指令的、或從原始指令導(dǎo)出的一個(gè)或多個(gè) 微操作、微代碼進(jìn)入點(diǎn)、微指令、其他指令或其他控制信號作為輸出。解碼單元140可使用 各種不同的機(jī)制來實(shí)現(xiàn)。合適機(jī)制的示例包括但不僅限于,查找表、硬件實(shí)現(xiàn)、可編程邏輯 陣列(PLA)、微代碼只讀存儲器(ROM)等。在一個(gè)實(shí)施例中,核190包括微代碼ROM或存儲 用于某些宏指令的微代碼的其他介質(zhì)(例如,在解碼單元140中或以其他方式在前端單元 130內(nèi))。解碼單元140耦合至執(zhí)行引擎單元150中的重命名/分配器單元152。
[0032] 執(zhí)行引擎單元150包括耦合到引退單元152和一個(gè)或多個(gè)調(diào)度器單元的集合154 的重命名/分配器單元156。調(diào)度器單元156表示任意數(shù)量的不同調(diào)度器,包括預(yù)留站、中 央指令窗等。調(diào)度器單元156耦合到物理寄存器組單元158。物理寄存器組單元158中的 每一個(gè)表示一個(gè)或多個(gè)物理寄存器組,其中不同的物理寄存器組存儲一個(gè)或多個(gè)不同的數(shù) 據(jù)類型,例如,標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)、緊縮整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮點(diǎn),狀態(tài)(例如, 作為要被執(zhí)行的下一條指令的地址的指令指針)等。在一個(gè)實(shí)施例中,物理寄存器組單元 158包括向量寄存器單元、寫掩碼寄存器單元和標(biāo)量寄存器單元。這些寄存器單元可以提供 架構(gòu)向量寄存器、向量掩碼寄存器、和通用寄存器。物理寄存器組單元158被引退單元154 覆蓋,以示出可實(shí)現(xiàn)寄存器重命名和無序執(zhí)行的各種方式(例如,使用重排序緩沖器和引 退寄存器組;使用未來文件(future file)、歷史緩沖器、引退寄存器組;使用寄存器映射 和寄存器池等)。引退單元154和物理寄存器組單元158耦合至執(zhí)行群集160。執(zhí)行群集 160包括一個(gè)或多個(gè)執(zhí)行單元的集合162以及一個(gè)或多個(gè)存儲器訪問單元的集合164。執(zhí)行 單元162可執(zhí)行多種操作(例如,移位、加法、減法、乘法),并且可對多種數(shù)據(jù)類型(例如, 標(biāo)量浮點(diǎn)、緊縮整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮點(diǎn))執(zhí)行操作。盡管一些實(shí)施例可以包括 專用于特定功能或功能集的多個(gè)執(zhí)行單元,但其他實(shí)施例可包括全部執(zhí)行所有功能的僅一 個(gè)執(zhí)行單元或多個(gè)執(zhí)行單元。調(diào)度器單元156、物理寄存器組單元158、執(zhí)行群集160被示 出為可能是復(fù)數(shù)個(gè),因?yàn)槟承?shí)施例為某些數(shù)據(jù)/操作類型創(chuàng)建了諸個(gè)單獨(dú)流水線(例如, 均具有各自調(diào)度器單元、物理寄存器組單元和/或執(zhí)行群集的標(biāo)量整數(shù)流水線、標(biāo)量浮點(diǎn)/ 緊縮整數(shù)/緊縮浮點(diǎn)/向量整數(shù)/向量浮點(diǎn)流水線、和/或存儲器訪問流水線,以及在單獨(dú) 的存儲器訪問流水線的情況下特定實(shí)施例被實(shí)現(xiàn)為僅僅該流水線的執(zhí)行群集具有存儲器 訪問單元164)。還應(yīng)當(dāng)理解,在使用分開的流水線的情況下,這些流水線中的一個(gè)或多個(gè)可 以是無序發(fā)布/執(zhí)行的,并且其余流水線可以是有序發(fā)布/執(zhí)行的。
[0033] 存儲器訪問單元的集合164耦合到存儲器單元170,該存儲器單元包括耦合到數(shù) 據(jù)高速緩存單元172的數(shù)據(jù)TLB單元174,其中,數(shù)據(jù)高速緩存單元耦合到第二級(L2)高速 緩存單元176。在一個(gè)示例性實(shí)施例中,存儲器訪問單元164可包括加載單元、存儲地址單 元和存儲數(shù)據(jù)單元,其中的每一個(gè)均親合至存儲器單元170中的數(shù)據(jù)TLB單元172。指令高 速緩存單元134還耦合到存儲器單元170中的第二級(L2)高速緩存單元176。L2高速緩 存單元176耦合到一個(gè)或多個(gè)其他級的高速緩存,并最終耦合到主存儲器。
[0034]作為示例,示例性的寄存器重命名的、無序發(fā)布/執(zhí)行核架構(gòu)可按如下方式實(shí)現(xiàn) 流水線100 :1)指令取出138執(zhí)行取出和長度解碼級102和104 ;2)解碼單元140執(zhí)行解 碼級106 ;3)重命名/分配器單元152執(zhí)行分配級108和重命名級110 ;4)調(diào)度器單元156 執(zhí)行調(diào)度級112 ;5)物理寄存器組單元158和存儲器單元170執(zhí)行寄存器讀取/存儲器讀 取級114;執(zhí)行群集160執(zhí)行執(zhí)行級116 ;6)存儲器單元170和物理寄存器組單元158執(zhí)行 寫回/存儲器寫入級118 ;7)各單元可牽涉到異常處理級122 ;以及8)引退單元154和物 理寄存器組單元158執(zhí)行提交級124。
[0035] 核190可支持一個(gè)或多個(gè)指令集(例如,x86指令集(在更新的版本中加入了一 些擴(kuò)展);加利福尼亞州桑尼維爾市的MIPS技術(shù)公司的MIPS指令集;加利福尼州桑尼維爾 市的ARM控股公司的ARM指令集(具有諸如NEON之類的可選附加擴(kuò)展)),其中包括本文中 描述的各指令。在一個(gè)實(shí)施例中,核190包括用于支持緊縮數(shù)據(jù)指令集擴(kuò)展(例如,AVX1、 AVX2和/或先前描述的一些形式的通用向量友好指令格式(U =0和/或U =1))的邏輯, 從而允許由許多多媒體應(yīng)用使用的操作能夠使用緊縮數(shù)據(jù)來執(zhí)行。
[0036] 應(yīng)當(dāng)理解,核可支持多線程操作(執(zhí)行兩個(gè)或更多個(gè)并行的操作或線程的集合), 并且可以按各種方式來完成該多線程操作,各種方式包括時(shí)分多線程操作、同步多線程操 作(其中,單個(gè)物理核為物理核正在同步進(jìn)行多線程操作的多個(gè)線程中的每一個(gè)線程提供 邏輯核)或其組合(例如,時(shí)分取出和解碼以及此后諸如利用丨ntel?超線程技術(shù)的同步多 線程操作)。
[0037] 盡管在無序執(zhí)行的上下文中描述了寄存器重命名,但應(yīng)當(dāng)理解,可在有序架構(gòu)中 使用寄存器重命名。盡管所示出的處理器的實(shí)施例還包括分開的指令和數(shù)據(jù)高速緩存單元 134/174以及共享L2高速緩存單元176,但替代實(shí)施例可以具有用于指令和數(shù)據(jù)兩者的單 個(gè)內(nèi)部高速緩存,諸如例如一級(L1)內(nèi)部高速緩存或多個(gè)級別的內(nèi)部高速緩存。在一些實(shí) 施例中,該系統(tǒng)可包括內(nèi)部高速緩存和在核和/或處理器外部的外部的高速緩存的組合。 或者,所有高速緩存都可在核和/或處理器的外部。
[0038]圖2是根據(jù)本發(fā)明的多個(gè)實(shí)施例的、可能具有多于一個(gè)的核、可能具有集成存儲 器控制器、并且可能具有集成圖形器件的處理器200的框圖。圖2中的實(shí)線框示出具有單 個(gè)核202A、系統(tǒng)代理210、一個(gè)或多個(gè)總線控制器單元216的集合的處理器200,而虛線框的 可選附加示出具有多個(gè)核202A-N、系統(tǒng)代理單元210中的一個(gè)或多個(gè)集成存儲器控制器單 元214的集合以及專用邏輯208的替代處理器200。
[0039] 因此,處理器200的不同實(shí)現(xiàn)可包括:1)CPU,其中專用邏輯208是集成圖形和/或 科學(xué)(吞吐量)邏輯(其可包括一個(gè)或多個(gè)核),并且核202A-N是一個(gè)或多個(gè)通用核(例 如,通用有序核、通用無序核、這兩者的組合);2)協(xié)處理器,其中核202A-N是旨在主要用于 圖形和/或科學(xué)(吞吐量)的大量專用核;以及3)協(xié)處理器,其中核202A-N是大量通用有 序核。因此,處理器200可以是通用處理器、協(xié)處理器或?qū)S锰幚砥?,該專用處理器諸如例 如,網(wǎng)絡(luò)或通信處理器、壓縮引擎、圖形處理器、GPGPU (通用圖形處理單元)、高吞吐量的集 成眾核(MIC)協(xié)處理器(包括30個(gè)或更多核)、嵌入式處理器等。該處理器可以被實(shí)現(xiàn)在 一個(gè)或多個(gè)芯片上。處理器200可以是一個(gè)或多個(gè)基板的一部分,并且/或者可使用多種 工藝技術(shù)(諸如,BiCMOS、CMOS、或NM0S)中的任意技術(shù)被實(shí)現(xiàn)在一個(gè)或多個(gè)基板上。
[0040] 存儲器層次結(jié)構(gòu)包括核內(nèi)的一個(gè)或多個(gè)層級的高速緩存、一組或一個(gè)或多個(gè)共享 高速緩存單元206以及耦合至集成存儲器控制器單元的集合214的外部存儲器(未示出)。 共享高速緩存單元的集合206可包括一個(gè)或多個(gè)中級高速緩存,諸如,第二級(L2)、第三級 (L3)、第四級(L4)或其他層級的高速緩存、末級高速緩存(LLC)和/或以上的組合。盡管在 一個(gè)實(shí)施例中,基于環(huán)的互連單元212將集成圖形邏輯208、共享高速緩存單元的集合206 以及系統(tǒng)代理單元210/集成存儲器控制器單元214互連,但替代實(shí)施例可使用任何數(shù)量的 公知技術(shù)來將此類單元互連。在一個(gè)實(shí)施例中,可維護(hù)一個(gè)或多個(gè)高速緩存單元206和核 202A-N 之間的一致性(coherency)。
[0041] 在一些實(shí)施例中,一個(gè)或多個(gè)核202A-N能夠進(jìn)行多線程操作。系統(tǒng)代理210包括 協(xié)調(diào)和操作核202A-N的那些組件。系統(tǒng)代理單元210可包括例如功率控制單元(P⑶)和 顯示單元。PCU可以是或可包括調(diào)節(jié)核202A-N和集成圖形邏輯208的功率狀態(tài)所需的邏輯 和組件。顯示單元用于驅(qū)動(dòng)一個(gè)或多個(gè)外部連接的顯示器。
[0042] 核202A-N在架構(gòu)指令集方面可以是同構(gòu)的或異構(gòu)的;也就是說,這些核202A-N中 的兩個(gè)或更多個(gè)核可能能夠執(zhí)行相同的指令集,而其他核可能能夠執(zhí)行該指令集的僅僅子 集或不同的指令集。
[0043] 圖3-6是示例性計(jì)算機(jī)架構(gòu)的框圖。本領(lǐng)
當(dāng)前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1