国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用硬件與軟件組合的路徑概況分析的制作方法_2

      文檔序號:9278173閱讀:來源:國知局
      測單元1532,該指令 高速緩存單元耦合到指令轉(zhuǎn)換后備緩沖器(TLB) 1536,該指令轉(zhuǎn)換后備緩沖器耦合到指令 取出單元1538,該指令取出單元耦合到解碼單元1540。解碼單元或解碼器可解碼指令,并 生成一個或多個微操作、微代碼進(jìn)入點(diǎn)、微指令、其他指令、或其他控制信號作為輸出,這些 輸出是從原始指令中解碼出、或以其他方式反映原始指令、或是從原始指令中導(dǎo)出的。解碼 器可使用各種不同的機(jī)制來實(shí)現(xiàn)。合適機(jī)制的示例包括但不限于,查找表、硬件實(shí)現(xiàn)、可編 程邏輯陣列(PLA)、微代碼只讀存儲器(ROM)等。指令高速緩存單元1534還耦合到存儲器 單元1570中的第二級(L2)高速緩存單元1576。解碼單元1540耦合至執(zhí)行引擎單元1550 中的重命名/分配器單元1552。
      [0034] 執(zhí)行引擎單元1550包括耦合到引退單元1554以及一個或多個調(diào)度器單元的集合 1556的重命名/分配器單元1552。調(diào)度器單元1556表示任意數(shù)量的不同調(diào)度器,包括預(yù) 留站、中央指令窗口等。調(diào)度器單元1556耦合到物理寄存器組單元1558。物理寄存器組單 元1558中的每一個表示一個或多個物理寄存器組,其中不同的物理寄存器組存儲一個或 多個不同的數(shù)據(jù)類型(諸如,標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)、緊縮整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮 點(diǎn)等)、狀態(tài)(諸如,作為將要執(zhí)行的下一指令的地址的指令指針)等等。物理寄存器組單 元1558被引退單元1554覆蓋以示出可實(shí)現(xiàn)寄存器重命名和無序執(zhí)行的多種方式(諸如, 使用重排序緩沖器和引退寄存器組、使用未來文件(future file)、歷史緩沖器以及引退寄 存器組;使用寄存器映射和寄存器池等)。通常,架構(gòu)寄存器從處理器外部或從編程者的視 角來看是可見的。這些寄存器不限于任何已知的特定類型的電路。各種不同類型的寄存器 可適用,只要它們能夠存儲并提供本文中所述的數(shù)據(jù)。合適寄存器的示例包括但不限于,專 用物理寄存器、使用寄存器重命名的動態(tài)分配的物理寄存器、以及專用物理寄存器和動態(tài) 分配的物理寄存器的組合,等等。引退單元1554和物理寄存器組單元1558耦合至執(zhí)行群 集1560。執(zhí)行群集1560包括一個或多個執(zhí)行單元的集合1562以及一個或多個存儲器訪問 單元的集合1564。執(zhí)行單元1562可執(zhí)行各種操作(包括:移位、加法、減法、乘法)并可對 各種數(shù)據(jù)類型(諸如,標(biāo)量浮點(diǎn)、緊縮整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮點(diǎn))執(zhí)行。盡管一 些實(shí)施例可包括專用于特定功能或功能集的多個執(zhí)行單元,但其他實(shí)施例可包括全部執(zhí)行 所有功能的僅一個執(zhí)行單元或多個執(zhí)行單元。調(diào)度器單元1556、物理寄存器組單元1558、 執(zhí)行群集1560被示出為可能是復(fù)數(shù)個,因為某些實(shí)施例為某些數(shù)據(jù)/操作類型創(chuàng)建了諸個 單獨(dú)的流水線(例如,各自具有其自身的調(diào)度器單元、物理寄存器組單元和/或執(zhí)行群集的 標(biāo)量整數(shù)流水線、標(biāo)量浮點(diǎn)/緊縮整數(shù)/緊縮浮點(diǎn)/向量整數(shù)/向量浮點(diǎn)流水線和/或存 儲器訪問流水線一一并且在單獨(dú)的存儲器訪問流水線的情況下,實(shí)現(xiàn)某些實(shí)施例,在其中 該流水線的僅執(zhí)行群集具有存儲器訪問單元1564)。還應(yīng)當(dāng)理解,在使用單獨(dú)的流水線的情 況下,這些流水線中的一個或多個可以是無序發(fā)布/執(zhí)行的,而其余部分可以是有序的。
      [0035] 存儲器訪問單元的集合1564 f禹合到存儲器單元1570,該存儲器單元包括親合到 數(shù)據(jù)高速緩存單元1574的數(shù)據(jù)TLB單元1572,其中數(shù)據(jù)高速緩存單元耦合到第二級(L2) 高速緩存單元1576。在一個示例性實(shí)施例中,存儲器訪問單元1564可包括加載單元、存 儲地址單元和存儲數(shù)據(jù)單元,其中的每一個均親合至存儲器單元1570中的數(shù)據(jù)TLB單元 1572。L2高速緩存單元1576耦合至一個或多個其他層級的高速緩存,并最終耦合至主存儲 器。
      [0036] 作為示例,示例性寄存器重命名無序發(fā)布/執(zhí)行核架構(gòu)可按如下方式實(shí)現(xiàn)流水線 1400 :1)指令取出1538執(zhí)行取出以及長度解碼級1402和1404 ;2)解碼單元1540執(zhí)行解 碼級1406 ;3)重命名/分配器單元1552執(zhí)行分配級1408和重命名級1410 ;4)調(diào)度器單 元1556執(zhí)行調(diào)度級1412 ;5)物理寄存器組單元1558和存儲器單元1570執(zhí)行寄存器讀取 /存儲器讀取級1414 ;執(zhí)行群集1560執(zhí)行執(zhí)行級1416 ;6)存儲器單元1570和物理寄存器 組單元1558執(zhí)行寫回/存儲器寫入級1418 ;7)各單元可牽涉到異常處理級1422 ;以及8) 引退單元1554和物理寄存器組單元1558執(zhí)行提交級1424。
      [0037] 核1590可支持一個或多個指令集(諸如,x86指令集(具有增加有更新版本的一 些擴(kuò)展)、加利福尼亞州桑尼威爾的MIPS技術(shù)公司的MIPS指令集、加利福尼亞州桑尼威爾 的ARM控股公司的ARM指令集(具有可選附加擴(kuò)展,諸如NEON))。
      [0038] 應(yīng)當(dāng)理解,核可支持多線程操作(執(zhí)行兩個或更多個并行的操作或線程的集合), 并且可以按各種方式來這樣做,各種方式包括時分多線程操作、同步多線程操作(其中,單 個物理核為物理核正在同步地進(jìn)行多線程操作的線程中的每一個線程提供邏輯核)或其 組合(例如,時分取出和解碼以及此后諸如用丨ntel?.超線程技術(shù)進(jìn)行的同步多線程操作)。
      [0039] 盡管在無序執(zhí)行的上下文中描述了寄存器重命名,但應(yīng)當(dāng)理解,可在有序架構(gòu)中 使用寄存器重命名。雖然處理器的所示實(shí)施例也包括單獨(dú)的指令和數(shù)據(jù)高速緩存單元 1534/1574以及共享的L2高速緩存單元1576,但替代實(shí)施例可具有用于指令和數(shù)據(jù)兩者的 單個內(nèi)部高速緩存,諸如例如,第一級(L1)內(nèi)部高速緩存或多個層級的內(nèi)部高速緩存。在 一些實(shí)施例中,該系統(tǒng)可包括內(nèi)部高速緩存和在核和/或處理器外部的外部高速緩存的組 合?;蛘?,所有高速緩存都可以在核和/或處理器的外部。
      [0040] 圖4是根據(jù)實(shí)現(xiàn)的微處理器系統(tǒng)1300的框圖。如圖4所示,多處理器系統(tǒng)1300是 點(diǎn)對點(diǎn)互連系統(tǒng),且包括經(jīng)由點(diǎn)對點(diǎn)互連1350耦合的第一處理器1370和第二處理器1380。 處理器1370和1380中的每一個都可以是圖6的處理設(shè)備602的某個版本。如圖4中所示, 處理器1370和1380中的每一個可以是包括第一和第二處理器核(即,處理器核1374a和 1374b以及處理器核1384a和1384b)的多核處理器,盡管這些處理器中可能存在多得多的 核。也可將處理器核稱為執(zhí)行核。處理器各自可包括根據(jù)本公開的實(shí)施例的混合型寫入模 式邏輯。在一個實(shí)施例中,處理器1370和1380中的一個或多個可執(zhí)行概況分析模塊(例 如,圖7中所示的概況分析模塊330)。在另一實(shí)施例中,路徑標(biāo)識符模塊(例如,圖7中所 示的路徑標(biāo)識符模塊340)可包括在核1370和1380中,或可以是它們中的一個或多個的部 分。
      [0041] 雖然以兩個處理器1370U380來示出,但應(yīng)理解本公開的范圍不限于此。在其他 實(shí)現(xiàn)中,在給定處理器中可存在一個或多個附加處理器。
      [0042] 處理器1370和1380被示出為分別包括集成存儲器控制器單元1372和1382。處 理器1370還包括作為其總線控制器單元的部分的點(diǎn)對點(diǎn)(P-P)接口 1376和1378 ;類似 地,第二處理器1380包括P-P接口 1386和1388。處理器1370、1380可以經(jīng)由使用點(diǎn)對點(diǎn) (P-P)接口電路1378、1388的P-P接口 1350來交換信息。如圖4所示,頂C 1372和1382 將處理器耦合到各自的存儲器,即存儲器1332和存儲器1334,這些存儲器可以是本地附連 到各自處理器的主存儲器的多個部分。在一個實(shí)施例中,可將路徑標(biāo)識符數(shù)據(jù)(例如,圖6 中所示的表290)存儲在存儲器器1332和1334中的一個或多個中。
      [0043] 處理器1370、1380可各自經(jīng)由使用點(diǎn)對點(diǎn)接口電路1376、1394、1386和1398的各 個P-P接口 1352U354與芯片組1390交換信息。芯片組1390還可經(jīng)由高性能圖形接口 1339與高性能圖形電路1338交換信息。
      [0044] 共享高速緩存(未示出)可被包括在兩個處理器的任一處理器之內(nèi),或被包括在 兩個處理器外部但仍經(jīng)由P-P互連與這些處理器連接,使得如果將某處理器置于低功率模 式,則可將任一處理器或兩個處理器的本地高速緩存信息存儲在該共享高速緩存中。
      [0045] 芯片組1390可經(jīng)由接口 1396耦合至第一總線1316。在一個實(shí)施例中,第一總線 1316可以是外圍組件互連(PCI)總線或諸如PCI快速總線或另一第三代I/O互連總線之類 的總線,但是本公開的范圍不限于此。
      [0046] 如圖4所示,各種I/O設(shè)備1314可連同總線橋1318 -起親合到第一總線1316,總 線橋1318將第一總線1316耦合到第二總線1320。在一個實(shí)施例中,第二總線1320可以 是低引腳數(shù)(LPC)總線。在一個實(shí)施例中個,各種設(shè)備可耦合到第二總線1320,包括例如, 鍵盤和/或鼠標(biāo)1322、通信設(shè)備1327以及存儲單元1328 (諸如,可包括指令/代碼和數(shù)據(jù) 1330的盤驅(qū)動器或其他大容量存儲設(shè)備)。此外,音頻I/O 1324可耦合至第二總線1320。 注意,其他架構(gòu)是可能的。例如,代替圖4的點(diǎn)對點(diǎn)架構(gòu),系統(tǒng)可以實(shí)現(xiàn)多分支總線或其他 此類架構(gòu)。
      [0047] 圖5是根據(jù)本公開的一個實(shí)施例的包括多個指令塊105-150的應(yīng)用100的框圖。 應(yīng)用100可以是可由處理模塊(例如,圖8中所示的處理模塊350)執(zhí)行的程序、軟件模塊、 軟件組件和/或其他軟件元件。應(yīng)用100可包括多條指令。這些指令可包括用于使處理模 塊(例如,處理器)執(zhí)行多個活動的程序代碼,多個活動諸如但不限于:讀取數(shù)據(jù)、寫入數(shù) 據(jù)、處理數(shù)據(jù)、制定數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù)、變換數(shù)據(jù)等。例如,應(yīng)用100可以是二進(jìn)制文件和/或 可執(zhí)行文件,其包括用于使處理模塊執(zhí)行媒體播放器以播放媒體項目(諸如,數(shù)字視頻、數(shù) 字音樂)或使處理模塊執(zhí)行web瀏覽器的指令??蓪?yīng)用100中的這些指令劃分為諸如指 令塊105-150之類的指令塊(例如,指令序列或指令組)。應(yīng)當(dāng)注意,指令塊105-150僅是 可包括在應(yīng)用中的不同的指令和/或指令塊的一個示例。在其他實(shí)施例中,應(yīng)用100可包 括更多或更少的指令塊,并且每一個指令塊可導(dǎo)致一個或多個不同的指令塊。例如,第一指 令塊可基于該第一指令塊中的BRANCH(分支)指令的條件分支到四個目的地指令塊(在附 圖中沒有示出)中的一個。
      [0048] 指令塊105-150可包括各種不同的指令(例如,程序指令)。例如,指令塊105-150 可包括:ADD (加法)指令(用于相加兩個或更多值)、MULT (乘法)指令(用于相乘兩個或 更多值)、異或(XOR)指令(用于對兩個或更多值進(jìn)行異或操作)、AND( "與")指令(用于 對兩個或更多值執(zhí)行按位"與"操作)、存儲指令(用于將值存儲在諸如寄存器之類的存儲 器位置中)、JUMP (跳轉(zhuǎn))指令(用于將指令的執(zhí)行流引導(dǎo)至特定指令)、BRANCH(分支)指 令(用于基于一個或多個條件,將指令的執(zhí)行流引導(dǎo)至特定指令等)。在一個實(shí)施例中,指 令塊105-150可以是基本塊。在一個實(shí)施例中,基本塊可以是具有一個進(jìn)入點(diǎn)(例如,該基 本塊中的一條指令是JUMP和/或BRANCH指令的目的地)和一個退出點(diǎn)(例如,最后一條 指令可以是去往不同的基本塊的JUMP或BRANCH指令)的指令組(例如,塊)。
      [0049] 如上文中所討論的那樣,諸如應(yīng)用100之類的應(yīng)用可包括許多不同的執(zhí)行路徑。 在一個實(shí)施例中,執(zhí)行路徑可以是當(dāng)處理模塊執(zhí)行應(yīng)用100的指令時由該處理模塊執(zhí)行 的、應(yīng)用100中的指令和/或指令塊的序列(例如,路徑)。例如,執(zhí)行路徑(例如,由處 理模塊執(zhí)行的指令和/或指令塊的序列)可在指令塊105 (例如,啟動指令塊(starting instruction block))處開始,繼續(xù)進(jìn)行到指令塊110,繼續(xù)進(jìn)行到指令塊115,繼續(xù)進(jìn)行到 指令塊130,繼續(xù)進(jìn)行到指令塊140,繼續(xù)進(jìn)行到指令塊145,并且繼續(xù)進(jìn)行到指令塊150。在 另一示例中,執(zhí)行路徑可在指令塊105處開始,繼續(xù)進(jìn)行到指令塊110,繼續(xù)進(jìn)行到指令塊 120,繼續(xù)進(jìn)行到指令塊130,繼續(xù)進(jìn)行到指令塊140,繼續(xù)進(jìn)行到指令塊145,并且繼續(xù)進(jìn)行 到指令塊150。獲取應(yīng)用100的路徑概況可允許處理模塊應(yīng)用編譯器和/或處理模塊來執(zhí) 行可允許應(yīng)用更高效、更迅速地和/或使用較少存儲空間(例如,用于該應(yīng)用的較小的二進(jìn) 制文件)地運(yùn)行的優(yōu)化。
      [0050] 如圖5中所示,指令塊105、115、120、135、140和150包括概況分析指令。概況 分析指令可以是可用來跟蹤執(zhí)行路徑的任何指令。例如,指令塊105包括概況分析指令 PSTART(例如,起始指令(start instruction));指令塊115包括概況分析指令PMARK1 ; 指令塊120包括概況分析指令PMARK2 ;指令塊135包括概況分析指令PMARK3 ;指令塊140 包括概況分析指令PMARK4 ;而指令塊150包括概況分析指令P-END (例如,結(jié)束指令(end instruction))。在一個實(shí)施例中,概況分析指令可以是指令塊的部分的指令,可由處理模 塊執(zhí)行,并且可用來跟蹤應(yīng)用(例如,應(yīng)用100)的執(zhí)行路徑。
      [0051] 在一個實(shí)施例中,可由(下文中結(jié)合圖7和圖8更詳細(xì)討論的)概況分析模塊來 將概況分析指令插入和/或添加到應(yīng)用100的指令中。概況分析模塊可標(biāo)識應(yīng)用100中 的指令區(qū)域(例如,一個或多個指令塊)以進(jìn)行概況分析。例如,概況分析模塊可確定應(yīng) 當(dāng)為指令塊105-150生成路徑概況。概況分析模塊可在該區(qū)域的第一和/或開始指令塊 (beginning instruction block)處(例如,在啟動指令塊處)插入PSTART指令(例如,起 始指令)。例如,如圖5中所示,概況分析模塊可在指令塊105中插入PSTART指令。概況分 析模塊也可在該(指令)區(qū)域的最后和/或結(jié)尾指令塊(ending instruction block)處 插入P-END指令以進(jìn)行概況分析。例如,如圖5中所示,概況分析模塊可在指令塊150中插 入P-END指令。概況分析模塊也可將PMARK指令插入到目的地指令塊中。例如,如圖5中 所示,指令塊115和120可以是來自指令塊110的可能目的地指令塊。概況分析模塊可將 PMARK1指令插入到指令塊115中,并且可將PMARK2指令插入到指令塊120中。
      [0052] 當(dāng)處理模塊執(zhí)行應(yīng)用100的指令時,概況指令可使該處理模塊生成由該處理模塊 執(zhí)行的執(zhí)行路徑的路徑標(biāo)識符。如上文討論的那樣,執(zhí)行路徑可以是由處理模塊執(zhí)行的指 令和/或指令塊的序列。路徑標(biāo)識符可包括指示由處理模塊執(zhí)行的指令塊的數(shù)據(jù)。例如, 執(zhí)行路徑可在指令塊105處開始,繼續(xù)進(jìn)行到指令塊110,繼續(xù)進(jìn)行到指令塊120,繼續(xù)進(jìn)行 到指令塊135,繼續(xù)進(jìn)行到指令塊140,繼續(xù)進(jìn)行到指令塊145,并且繼續(xù)進(jìn)行到指令塊150。 當(dāng)處理模塊執(zhí)行指令塊105中的PSTART指令時,該處理模塊可開始生成路徑標(biāo)識符。例如, 如下文中結(jié)合圖9所討論的那樣,處理模塊可將指令塊105中的第一指令(例如,啟動指令 (starting instruction))的標(biāo)識符(例如,程序計數(shù)器、地址和/或位置)添加到存儲在 存儲器模塊(例如,寄存器、高速緩存和或可存儲數(shù)據(jù)的任何設(shè)備或組件)中的路徑標(biāo)識 符。當(dāng)執(zhí)行了 PMARK指令時,處理模塊可更新路徑標(biāo)識符以指示執(zhí)行了包含該P(yáng)MARK指令的 指令塊。例如,當(dāng)處理模塊執(zhí)行指令塊120時,該處理模塊可執(zhí)行PMARK2指令。該P(yáng)MARK2 指令可使該處理模塊更新路徑簽名以指示執(zhí)行了指令塊120。當(dāng)處理模塊執(zhí)行了 P-END指 令時,該處理模塊可向(下文中結(jié)合圖7和圖9所討論的)路徑標(biāo)識符模塊指示已達(dá)到用 于進(jìn)行概況分析的指令區(qū)域的末尾。該路徑標(biāo)識符模塊可確定如何處理該路徑標(biāo)識符,以 及是否將該路徑標(biāo)識符添加到現(xiàn)有的路徑標(biāo)識符數(shù)據(jù)。
      [0053] 圖6是示出根據(jù)本公開的一個實(shí)施例的示例路徑標(biāo)識符數(shù)據(jù)的表290。如上文所 討論的那樣,當(dāng)處理模塊執(zhí)行概況分析指令時,該處理模塊可生成路徑標(biāo)識符。路徑標(biāo)識符 模塊可存儲包括多個路徑標(biāo)識符以及與這些路徑標(biāo)識符中的每一個相關(guān)聯(lián)的信息的路徑 標(biāo)識符數(shù)據(jù),諸如,與路徑標(biāo)識符相關(guān)聯(lián)的執(zhí)行路徑發(fā)生的次數(shù)??蓪⒃撀窂綐?biāo)識符數(shù)據(jù)存 儲在存儲器模塊(例如,寄存器、隨機(jī)存取存儲器、高速緩存等)中。盡管以表格(例如,表 290)形式示出路徑標(biāo)識符數(shù)據(jù),但是應(yīng)當(dāng)理解,可使用各種其他數(shù)據(jù)結(jié)構(gòu)和/或表示來表 示該路徑標(biāo)識符數(shù)據(jù)。例如,可使用圖形、樹、列表等來表示該路徑標(biāo)識符數(shù)據(jù)。在其他實(shí) 施例中,表290可包括任何數(shù)量的條目。例如,表290可包括四個條目、八個條目、16個條
      當(dāng)前第2頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1