国产精品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>

      減少處理引擎中的加載-存儲(chǔ)沖突懲罰的系統(tǒng)和方法

      文檔序號(hào):8487663閱讀:306來(lái)源:國(guó)知局
      減少處理引擎中的加載-存儲(chǔ)沖突懲罰的系統(tǒng)和方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明一般涉及一種處理引擎,更具體地涉及一種減少推定的亂序處理引擎中的加載-存儲(chǔ)沖突懲罰的系統(tǒng)和方法。
      【背景技術(shù)】
      [0002]諸如微處理器等的處理引擎執(zhí)行諸如x86指令集架構(gòu)等的指令集架構(gòu)的指令。在許多這樣的引擎中,經(jīng)常被稱為宏指令的、指令集架構(gòu)的指令首先被翻譯成微指令(或微操作或“ μ op”),微指令被發(fā)射到將指令派遣到執(zhí)行單元的保留站模塊。這里,微指令被更一般地簡(jiǎn)稱為“指令”。指令也被發(fā)射到確保指令的按次序退出(retirement)的重排序緩沖器。
      [0003]亂序(out-of-order,0-0-0)調(diào)度器在處理器設(shè)計(jì)中被廣泛使用,并且提供高性能處理器與他者之間的重要區(qū)別。在0-0-0調(diào)度器中,基于依賴性來(lái)派遣每個(gè)指令,當(dāng)多個(gè)指令分別使用同一寄存器來(lái)作為源和目的地時(shí)存在依賴性。此外,一些指令的依賴性難以識(shí)別,諸如加載(load)指令和存儲(chǔ)(store)指令的依賴性。這是因?yàn)?,依賴性不是由于同一寄存器而引起的,而是由于同一地址而引起的,而該地址是不為調(diào)度階段的調(diào)度器所知道的。所以,一種通常的方法是推定地假設(shè)加載指令和存儲(chǔ)指令不具有任何沖突。當(dāng)后面不幸檢測(cè)到?jīng)_突時(shí),結(jié)果是不正確的,清空流水線,并且再次派遣指令。當(dāng)指令的推定派遣是不正確的時(shí),指令的清空和重新派遣引起顯著的懲罰(penalty)。

      【發(fā)明內(nèi)容】

      [0004]根據(jù)一個(gè)實(shí)施例的微處理器包括加載流水線、調(diào)度器、地址生成單元和加載-存儲(chǔ)隊(duì)列。加載流水線包括多個(gè)級(jí),包含至少一個(gè)操作數(shù)級(jí)和多個(gè)執(zhí)行級(jí)。調(diào)度器向至少一個(gè)操作數(shù)級(jí)派遣加載指令,以由執(zhí)行級(jí)來(lái)執(zhí)行。加載指令包括推定派遣的加載指令。地址生成單元在推定派遣的加載指令已進(jìn)行到執(zhí)行級(jí)之前提供關(guān)于推定派遣的加載指令的加載指令虛擬地址。當(dāng)在加載指令虛擬地址與至少一個(gè)先前派遣的且尚未確定對(duì)應(yīng)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)指令的存儲(chǔ)指令虛擬地址之間發(fā)生匹配時(shí),加載-存儲(chǔ)隊(duì)列聲明清除信號(hào)以無(wú)效推定派遣的加載指令。
      [0005]倘若沖突,諸如當(dāng)在加載指令虛擬地址與至少一個(gè)先前派遣的存儲(chǔ)指令的存儲(chǔ)指令虛擬地址之間發(fā)生匹配時(shí),清除信號(hào)無(wú)效推定派遣的加載指令。以此方式,當(dāng)清除信號(hào)被聲明時(shí)調(diào)度器可以不過(guò)早地派遣依賴性指令,否則相反的是,調(diào)度器被配置為調(diào)度依賴于投機(jī)加載指令的指令的派遣。
      [0006]在一個(gè)實(shí)施例中,加載流水線被配置為當(dāng)推定派遣的加載指令已經(jīng)進(jìn)行到所選擇的執(zhí)行級(jí)時(shí)聲明加載有效信號(hào)。提供阻止邏輯(kill logic),當(dāng)清除信號(hào)被聲明時(shí),阻止邏輯阻止調(diào)度器檢測(cè)到加載有效信號(hào)??梢蕴峁V播邏輯以當(dāng)加載有效信號(hào)被聲明時(shí)接收和廣播加載有效信號(hào),除非清除信號(hào)被聲明以無(wú)效推定派遣的加載指令。廣播邏輯可以包括當(dāng)清除信號(hào)被聲明時(shí)阻止廣播邏輯廣播加載有效信號(hào)的阻止邏輯。
      [0007]加載-存儲(chǔ)隊(duì)列可以包括多個(gè)條目,每個(gè)用于將推定派遣的加載指令的加載指令虛擬地址與一個(gè)或多個(gè)存儲(chǔ)指令虛擬地址進(jìn)行比較??梢詾槊總€(gè)條目提供有效邏輯和適格邏輯,以確保對(duì)應(yīng)的存儲(chǔ)指令虛擬地址與早先派遣的且對(duì)應(yīng)存儲(chǔ)數(shù)據(jù)尚未被確定的存儲(chǔ)指令對(duì)應(yīng)。每個(gè)條目可以聲明初步清除信號(hào),并且可以提供或(OR)邏輯以當(dāng)任何一個(gè)或多個(gè)初步清除信號(hào)被聲明時(shí)聲明清除信號(hào)。
      [0008]為亂序處理引擎公開(kāi)加載-存儲(chǔ)沖突檢測(cè)系統(tǒng)。處理引擎包括:調(diào)度器,向多個(gè)指令流水線派遣指令,其中指令流水線包括當(dāng)執(zhí)行推定派遣的加載指令時(shí)提供加載有效信號(hào)的加載流水線。加載-存儲(chǔ)沖突檢測(cè)系統(tǒng)包括比較邏輯、廣播邏輯和阻止邏輯。當(dāng)推定派遣的加載指令的加載指令虛擬地址與至少一個(gè)先前派遣的且對(duì)應(yīng)數(shù)據(jù)尚未準(zhǔn)備好的存儲(chǔ)指令的至少一個(gè)存儲(chǔ)指令虛擬地址匹配時(shí),比較邏輯聲明清除信號(hào)。廣播邏輯向調(diào)度器廣播加載有效信號(hào),以使能依賴于推定派遣的加載指令的任何指令的派遣。當(dāng)在加載有效信號(hào)之前或與其同時(shí)聲明清除信號(hào)時(shí),阻止邏輯無(wú)效加載有效信號(hào)。
      [0009]阻止邏輯可以被并入廣播邏輯或調(diào)度器或二者的任何適當(dāng)組合中。加載-存儲(chǔ)沖突檢測(cè)系統(tǒng)可以包括用于存儲(chǔ)一個(gè)或多個(gè)存儲(chǔ)指令虛擬地址的存儲(chǔ)器。
      [0010]減少亂序投機(jī)處理引擎中的加載-存儲(chǔ)沖突的方法包括:提供關(guān)于對(duì)應(yīng)存儲(chǔ)數(shù)據(jù)尚未準(zhǔn)備好的至少一個(gè)先前派遣的存儲(chǔ)指令中的每一個(gè)的存儲(chǔ)指令地址;向加載流水線推定派遣加載指令;在執(zhí)行推定派遣的加載指令之前確定關(guān)于推定派遣的加載指令的加載指令地址;將加載指令地址與至少一個(gè)先前派遣的存儲(chǔ)指令中的每一個(gè)的存儲(chǔ)指令地址進(jìn)行比較;當(dāng)加載指令地址與至少一個(gè)先前派遣的存儲(chǔ)指令的存儲(chǔ)指令地址匹配時(shí),聲明清除信號(hào);在執(zhí)行推定派遣的加載指令的同時(shí)聲明加載有效信號(hào);以及當(dāng)清除信號(hào)也被聲明時(shí)無(wú)效加載有效信號(hào)。
      [0011]該方法可以包括:向調(diào)度器的每個(gè)隊(duì)列廣播加載有效信號(hào);以及當(dāng)也清除信號(hào)也被聲明時(shí)抑制加載有效信號(hào)的廣播。該方法可以包括:確定至少一個(gè)先前派遣的存儲(chǔ)指令中的每一個(gè)存儲(chǔ)指令地址的有效性。該方法可以包括:將加載指令地址與多個(gè)存儲(chǔ)指令地址進(jìn)行比較,并且當(dāng)加載指令地址與多個(gè)存儲(chǔ)指令地址之一匹配時(shí),聲明多個(gè)初步清除信號(hào)中的對(duì)應(yīng)的一個(gè);并且當(dāng)至少一個(gè)初步清除信號(hào)時(shí)被聲明時(shí)聲明清除信號(hào)。
      【附圖說(shuō)明】
      [0012]參照以下描述和附圖,將更好地理解本發(fā)明的益處、特征和優(yōu)點(diǎn),在附圖中:
      [0013]圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例實(shí)施的超標(biāo)量流水線微處理器的簡(jiǎn)化框圖;
      [0014]圖2是以簡(jiǎn)化方式描繪根據(jù)示出沖突和對(duì)應(yīng)因果關(guān)系的傳統(tǒng)配置的0-0-0指令序列相比于順序執(zhí)行指令序列的圖;
      [0015]圖3是根據(jù)一個(gè)實(shí)施例的接收從圖1的保留站中的LD RS Q派遣的指令的圖1的加載流水線以及對(duì)應(yīng)的加載執(zhí)行級(jí)的簡(jiǎn)化框圖;
      [0016]圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖3的LoStQ的更具體的框圖;以及
      [0017]圖5是根據(jù)本發(fā)明的一個(gè)替換實(shí)施例的圖4的LoStQ的示范性條目的圖。
      【具體實(shí)施方式】
      [0018]發(fā)明人已經(jīng)認(rèn)識(shí)到與因處理引擎內(nèi)的加載指令的推定派遣而導(dǎo)致的加載-存儲(chǔ)沖突相關(guān)聯(lián)的懲罰。因此,他們開(kāi)發(fā)了一種在加載指令被派遣以執(zhí)行之前檢測(cè)加載-存儲(chǔ)沖突的系統(tǒng)和方法。該方法進(jìn)一步壓制或者抑制加載指令的派遣生效,以防止依賴于該推定派遣的加載指令的其它指令的發(fā)射。因?yàn)椴⒉贿^(guò)早地派遣潛在依賴的指令,所以流水線無(wú)需被清空并且依賴性指令無(wú)需被重播(replay)。以此方式,與該推定派遣的加載指令相關(guān)聯(lián)的懲罰被減少或被最小化。加載-存儲(chǔ)(Lo-St)隊(duì)列(LoStQ)結(jié)構(gòu)被加入到檢測(cè)加載指令與未準(zhǔn)備好完成的任何存儲(chǔ)指令之間的沖突的指令流水線中。未準(zhǔn)備好完成的存儲(chǔ)指令意指已經(jīng)確定了地址部分(STA)但是尚未確定數(shù)據(jù)部分(STD),以致存儲(chǔ)指令被暫時(shí)認(rèn)為“LoSt”。加載-存儲(chǔ)隊(duì)列LoStQ檢測(cè)該沖突并發(fā)回一清除信號(hào),以阻止將加載指令的派遣生效廣播至保持派遣指令的調(diào)度隊(duì)列。該清除信號(hào)抑制依賴于該推定派遣的加載指令的其它指令的派遣,以提高性能效率。
      [0019]圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例實(shí)施的超標(biāo)量流水線微處理器100的簡(jiǎn)化框圖。微處理器100包括:指令高速緩沖存儲(chǔ)器102,其高速緩沖存儲(chǔ)諸如X86指令集架構(gòu)等的指令集架構(gòu)的宏指令。其它或可替換的指令集架構(gòu)也是可以預(yù)期的。微處理器100包括:指令翻譯器
      當(dāng)前第1頁(yè)1 2 3 4 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1