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

      高速緩存路預(yù)測(cè)的制作方法

      文檔序號(hào):9471312閱讀:582來(lái)源:國(guó)知局
      高速緩存路預(yù)測(cè)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本專利申請(qǐng)涉及信號(hào)處理領(lǐng)域,并且更具體地涉及配置用來(lái)高速緩存路預(yù)測(cè)的處理器。
      【背景技術(shù)】
      [0002]處理器中的"等待狀態(tài)"是指該處理器閑置以等待內(nèi)存操作完成而不是做有用的工作,避免過量"等待狀態(tài)"的已知方法是為處理器使用專用的本地高速內(nèi)存。在不同的體系結(jié)構(gòu)中,這種高速內(nèi)存可以采取一個(gè)或多個(gè)高速緩存或L1、L2或其它本地內(nèi)存的形式,每種都有其自己特定的優(yōu)點(diǎn)和用途。貫穿本說(shuō)明書,所有的本地高速內(nèi)存都被統(tǒng)稱為"高速緩存"。
      [0003]然而,只有在所需數(shù)據(jù)可以被寫入或從本地內(nèi)存讀取時(shí),這種本地內(nèi)存才是有用的。特別地,當(dāng)處理器需要從特定內(nèi)存位置讀值,且該內(nèi)存位置還沒有被加載到高速緩存中時(shí),會(huì)發(fā)生"高速緩存未命中"。在這種情況下,內(nèi)存子系統(tǒng)可能需要執(zhí)行高速緩存填充來(lái)從內(nèi)存獲取所需的值,在此期間,處理器可以至少部分地處于閑置狀態(tài)。
      【附圖說(shuō)明】
      [0004]通過閱讀附圖及下面的詳細(xì)描述,我們可以更好的理解本申請(qǐng)。需要強(qiáng)調(diào)的是,按照在業(yè)界的標(biāo)準(zhǔn)做法,各種特征未按比例繪制,并且僅用于說(shuō)明目的。事實(shí)上,各種特征的尺寸可為了討論清楚而任意放大或縮小。
      [0005]圖1是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的處理器的框圖。
      [0006]圖2是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的計(jì)算系統(tǒng)的框圖。
      [0007]圖3A和3B是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的多路高速緩存的框圖。
      [0008]圖4是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的高速緩存子系統(tǒng)的框圖。
      [0009]圖5A-5F是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的路預(yù)測(cè)的流程圖。
      [0010]圖6A和6B是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的路預(yù)測(cè)的流程圖。
      [0011]圖7A和7B是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的路預(yù)測(cè)的流程圖。
      【具體實(shí)施方式】
      [0012]綜述
      [0013]第一個(gè)示例展示了計(jì)算系統(tǒng),該系統(tǒng)包括:處理器、包括Y高速緩存路的高速緩存、包括路區(qū)的寄存器和用于通知處理器來(lái)從高速緩存中訪問值的電路和邏輯操作,其包括從多路讀取值和僅保留來(lái)自路W的值,以及在寄存器路區(qū)中編碼W。
      [0014]第二個(gè)示例展示了用于訪問Y路高速緩存的高速緩存控制器,包括用于從高速緩存訪問值的電路和邏輯,其包括從多路讀取值和僅保留來(lái)自路W的值,以及在寄存器路區(qū)編碼W,以用于預(yù)測(cè)在隨后的內(nèi)存訪問事件中首先檢查哪路。
      [0015]第三個(gè)示例展示了用于在具有Y路高速緩存的處理器上進(jìn)行路預(yù)測(cè)的方法,包括從高速緩存中訪問值,其包括從多路讀取值和僅保留來(lái)自路W的值,以及在寄存器路區(qū)編碼W。
      [0016]本公開的示例實(shí)施方案
      [0017]以下公開提供了許多不同的實(shí)施方案或示例,用于實(shí)現(xiàn)本公開的不同的特征。為簡(jiǎn)化本公開,組件和排列的具體示例描述如下。當(dāng)然,這些僅是示例并不旨在進(jìn)行限制。此夕卜,本公開可能在各種示例中重復(fù)參考標(biāo)記和/或字母。這種重復(fù)是為了簡(jiǎn)明和清楚,并不因本身決定所討論的各種實(shí)施方案和/或結(jié)構(gòu)之間的關(guān)系。
      [0018]不同實(shí)施方案可能具有不同的優(yōu)點(diǎn),并且沒有特定優(yōu)點(diǎn)是任何實(shí)施方案必需的。
      [0019]高速緩存可以被劃分為不同的類,包括"直接映射"高速緩存和"N路"高速緩存等。主存中的值通常駐留在較大L字的"高速緩存行"。例如,8字高速緩存行(L =8)通常被映射,使得地址僅在最低3位(第O位至第2位)不同的內(nèi)存位置位于相同高速緩存行內(nèi),并因此在高速緩存的相同位置上(每個(gè)位置存儲(chǔ)整個(gè)高速緩存行)。通常地址的后續(xù)位用來(lái)識(shí)別高速緩存行被映射到的組。例如,在有8組的高速緩存中,第3位至第5位可以識(shí)別高速緩存行所屬的組。換句話說(shuō),只有第3位至第5位是bOOO的位置可以存儲(chǔ)在第O組,而第3位至第5位是bOOl的被映射到第I組,第3位至第5位是b010的被映射到第2組,依此類推。
      [0020]在"直接映射"高速緩存中,每個(gè)組在高速緩存中包括一個(gè)確切的位置("路")。這種結(jié)構(gòu)具有速度、功率和成本方面的某些優(yōu)點(diǎn),但在實(shí)現(xiàn)中卻以靈活性為代價(jià)。為從內(nèi)存地址0x40加載值,以0x0起始的高速緩存行必須被以0x40起始的高速緩存行替換,因?yàn)檫@兩個(gè)地址被映射到高速緩存中的同一位置。
      [0021]附加的靈活性可以通過將各組分成多個(gè)獨(dú)立的N路來(lái)實(shí)現(xiàn)。在N路高速緩存中,N可以是任意的值,且甚至通常是二的冪,如2、4、8或16路高速緩存。附加的緩存路提高了靈活性,但在速度、功率或成本上有一定的犧牲。例如,在8組、4路高速緩存中,來(lái)自內(nèi)存地址0x0、0x40、0x80與OxCO的值可能在高速緩存同時(shí)共存。實(shí)現(xiàn)4路(N = 4)、8組(S =8)的高速緩存可能需要內(nèi)存長(zhǎng)達(dá)NXSXL = 256個(gè)字,但其性能往往會(huì)比相同大小的直接映射高速緩存更好。
      [0022]實(shí)現(xiàn)N路高速緩存的另一個(gè)挑戰(zhàn)是,高速緩存控制器不一定事先知道所期望的值被存儲(chǔ)在哪路。因此,在示例操作中,高速緩存控制器可首先從高速緩存中可能存有值的每一路中讀取N個(gè)值或標(biāo)記。然后高速緩存控制器檢查對(duì)應(yīng)的每個(gè)高速緩存行的標(biāo)記,以確定它們中的任何一個(gè)是否含有所需的值。在最好的情況下,所需的位置在高速緩存中,并且處理器中保留該值,同時(shí)忽略從高速緩存中讀取的其它N-1個(gè)值。如果高速緩存中沒有所需的數(shù)據(jù),那么高速緩存控制器執(zhí)行高速緩存填充來(lái)加載高速緩存行到緩存,使得下次需要該高速緩存行的值時(shí)它是可用的。
      [0023]有利地是,該方法是快速高效的,但它以功率和復(fù)雜性作為代價(jià)。在現(xiàn)代高效的處理器中,幾乎在每個(gè)處理器活躍的時(shí)鐘周期內(nèi),高速緩存都可被訪問。因此,在每個(gè)時(shí)鐘周期內(nèi),最好的情況下N-1個(gè)多余的標(biāo)記和/或值可從高速緩存讀出。在最壞的情況下,在高速緩存控制器確認(rèn)該值不在高速緩存中并執(zhí)行高速緩存填充之前,N個(gè)多余的標(biāo)記和/或值被讀出。
      [0024]此方法的改進(jìn)可通過允許DAG或尚速緩存控制器首先確定哪一路最可能有所需的值來(lái)實(shí)現(xiàn)。如果在這路中找到該值,那么不再?gòu)母咚倬彺孀x取多余的值。如果該確定錯(cuò)誤,未找到該值,那么在最壞的情況,處理器必須執(zhí)行先前的方法,讀出所有N個(gè)字,和/或執(zhí)行高速緩存填充。
      [0025]由于內(nèi)存通常是順序讀取的,如在陣列或其它相關(guān)數(shù)據(jù)集中,先前命中的成功的路為尋找下一值的合適的路提供第一級(jí)"最佳猜測(cè)"。例如,如果寄存器Rl處于"未命中"狀態(tài)(即它沒有先前命中的成功的路),那么它將讀出所有N路以查看能否在高速緩存中找到該值,和/或執(zhí)行高速緩存填充以將該值放入緩存。一旦該值已成功位于路W,N-1個(gè)多余的字將被忽略。然而,在下一個(gè)包含從Rl讀值的讀周期中,處理器可以首先在路W上尋找所需的值,而不是加載所有N路。只要處理器設(shè)計(jì)者確信路W將包含所需值,那么節(jié)省非平凡時(shí)間段、相當(dāng)大的功率和成本是可以實(shí)現(xiàn)的。
      [0026]為進(jìn)一步細(xì)化該方法,該處理器也應(yīng)知道它何時(shí)有"已知的未知"。例如,當(dāng)?shù)刂芳拇嫫鱎l已經(jīng)更改為未知的地址時(shí),它可現(xiàn)在對(duì)應(yīng)于不同的高速緩存行,且"猜測(cè)的"路W的值被大大降低,這比隨機(jī)猜測(cè)稍好一點(diǎn),或者更糟糕。因此,在這種情況下,可最好讀取所有N路并丟棄N-1個(gè)多余的值。又如偏移尋址或后遞增,其中基址被偏移或遞增到超過本高速緩存行末端的值。在這種情況下,下一個(gè)值可能無(wú)法在高速緩存中找到,或者至少?zèng)]有理由假定它可以在路W被找到。
      [0027]現(xiàn)在轉(zhuǎn)到附圖,圖1是根據(jù)本說(shuō)明書一個(gè)或多個(gè)示例的示例的數(shù)字信號(hào)處理器(DSP)核100的原理框圖。應(yīng)當(dāng)指出的是,DSP核100被提供為一種處理器的一個(gè)非限制性的示例,并且如貫穿本說(shuō)明書使用的術(shù)語(yǔ)"處理器"意在廣泛地涵蓋提供可編程邏輯的硬件、軟件或固件的任意組合,通過非限制性的示例的方式,包括微處理器、數(shù)字信號(hào)處理器、現(xiàn)場(chǎng)可編程門陣列、可編程邏輯陣列、專用集成電路或虛擬機(jī)處理器。DSP核100可以形成較大"計(jì)算設(shè)備"的一部分,通過非限制性示例的方式,在各個(gè)實(shí)施方案中其可以包括或成為計(jì)算機(jī)、嵌入式計(jì)算機(jī)、嵌入式控制器、嵌入式傳感器、個(gè)人數(shù)字助理(PDA)、便攜式計(jì)算機(jī)、移動(dòng)電話、IP電話、智能電話、平板電腦、手持計(jì)算器或任何其它用于處理和傳送數(shù)據(jù)的電子、微電子或微機(jī)電裝置一部分。為了清楚和更好地理解本公開的新穎概念,圖1已經(jīng)被簡(jiǎn)化。因此,可以在DSP核100中添加附加的特征,并且一些下述的特征可以在DSP核100的其它實(shí)施方案中被替換或消除。
      [0028]DSP核100可以包括控制單元110、高速緩存120、內(nèi)存122和計(jì)算陣列130。在示例中,控制單元I1和計(jì)算陣列130構(gòu)成可以執(zhí)行DSP核100的計(jì)算和數(shù)據(jù)處理功能的核心處理器。一些DSP核100的實(shí)施方案包含其它組件,例如用于執(zhí)行微控制器指令的微控制器、直接內(nèi)存存取(DMA)單元和各種片外設(shè)備的接口。此外,雖然內(nèi)存122在這里與高速緩存120作為在內(nèi)存122與寄存器堆154之間被處理的單個(gè)邏輯塊,但應(yīng)當(dāng)認(rèn)識(shí)到,在不同的實(shí)施方案中內(nèi)存122可以包含系統(tǒng)主存、各種級(jí)別的片上或本地內(nèi)存、高速緩存和/或其它易失性或非易失性的內(nèi)存技術(shù)。
      [0029]控制單元110促進(jìn)DSP核100的程序執(zhí)行??刂茊卧?10可以包括算術(shù)邏輯單元和數(shù)據(jù)地址產(chǎn)生(ALU-DAG)單元112、程序定序器114和本地程序內(nèi)存116??刂茊卧?10還可以包括其它組件,如指令高速緩存、計(jì)時(shí)器和指令寄存器。在示例中,ALU-DAG單元112支持通用目的整數(shù)計(jì)算并提供內(nèi)存地址。例如,當(dāng)數(shù)據(jù)在內(nèi)存122和寄存器(如以下所述的計(jì)算陣列130的寄存器堆)之間傳送時(shí),ALU-DAG 112提供內(nèi)存地址。ALU-DAG單元112可以為數(shù)據(jù)內(nèi)存(例如,內(nèi)存122)和/或程序內(nèi)存11 6提供地址。程序定序器114為程序內(nèi)存116提供地址用以獲取指令。程序內(nèi)存11 6存儲(chǔ)程序,DSP核100實(shí)現(xiàn)來(lái)處理數(shù)據(jù)(例如,存儲(chǔ)在內(nèi)存122的數(shù)據(jù)),并還可以存儲(chǔ)處理數(shù)據(jù)。如貫穿本說(shuō)明書使用的"程序",包括任何可執(zhí)行指令的有序集,其可以表示處理器,如DSP核100,以執(zhí)行指定的任務(wù)。DSP核100可以通過獲取指令來(lái)實(shí)現(xiàn)程序,例如從內(nèi)存122中檢索到指令并將它們加載到程序定序器114中,將指令解碼,并提供解碼的指令給處理元件PE來(lái)執(zhí)行,或者在ALU-DAG單元112本地執(zhí)行。在示例中,程序可以包含用于實(shí)現(xiàn)各種DSP算法的指令集,包括可以被并行執(zhí)行的算法,通過在兩個(gè)或更多處理元件PE上執(zhí)行它們,或在單指令多數(shù)據(jù)(SHffi)模式下,其中兩個(gè)或多個(gè)處理元件在不同的數(shù)據(jù)元件上執(zhí)行相同的指令,如從程序定序器114接收的。Sn?是常用的,例如,用于大數(shù)據(jù)陣列的快速處理,通過將該矩陣列分成η個(gè)子陣列,然后允許η個(gè)處理元件以分別處理每一個(gè)子陣列。
      [0030]內(nèi)存122存儲(chǔ)由DSP核100處理的數(shù)據(jù)(數(shù)據(jù)內(nèi)存)、由DSP核I 00實(shí)現(xiàn)的處理數(shù)據(jù)的程序(
      當(dāng)前第1頁(yè)1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1