国产精品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ǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu)的制作方法

      文檔序號(hào):6419863閱讀:235來(lái)源:國(guó)知局
      專利名稱:含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)系統(tǒng),特別涉及含有顯式高速緩沖存儲(chǔ)器(簡(jiǎn)稱Ecache)的計(jì)算機(jī)微體系結(jié)構(gòu)。
      背景技術(shù)
      過(guò)去50年里,計(jì)算機(jī)性能大體上按Moore定律增長(zhǎng),主要依靠的技術(shù)是提高機(jī)器的工作頻率和使用各種并行機(jī)制。存儲(chǔ)技術(shù)雖然也有發(fā)展,但是存儲(chǔ)器速度與處理器速度相比仍有很大差距?,F(xiàn)代計(jì)算機(jī)在內(nèi)存和寄存器之間設(shè)有一級(jí)、二級(jí),甚至三級(jí)高速緩沖存儲(chǔ)器(Cache),希望能重用Cache中的數(shù)據(jù),以緩解訪問內(nèi)存速度慢的矛盾(見圖1)。
      為什麼在芯片內(nèi)增加Cache能緩解訪存矛盾呢?我們以CPU讀數(shù)據(jù)的過(guò)程為例,簡(jiǎn)要說(shuō)明Cache的工作過(guò)程(Cache的工作原理見圖3)。
      Cache由若干個(gè)塊組成(圖3中的陰影部分就是一個(gè)塊),每個(gè)塊又分兩個(gè)部分,即圖中示出的標(biāo)記部分(TAG)和數(shù)據(jù)部分(DATA)。數(shù)據(jù)部分存放的是來(lái)自內(nèi)存的數(shù)據(jù),標(biāo)記部分存放的是與該數(shù)據(jù)對(duì)應(yīng)的標(biāo)記,標(biāo)記實(shí)際上對(duì)應(yīng)著該數(shù)據(jù)在內(nèi)存中的位置。CPU讀數(shù)據(jù)的過(guò)程,由下面幾個(gè)步驟組成(這是由硬件自動(dòng)完成的)1.用訪存地址的低位部分對(duì)Cache進(jìn)行譯碼,確定本次訪問是針對(duì)哪一個(gè)Cache塊進(jìn)行的。在本例中,陰影塊被選中;2.將被選中的那個(gè)塊的標(biāo)記部分與訪存地址的高位部分進(jìn)行比較,看是否相等;3.如果相等,說(shuō)明本次訪問的數(shù)據(jù)在Cache里,稱為命中,直接將被選中的塊的數(shù)據(jù)部分送給CPU即可。完成這一步大約需要1-3個(gè)時(shí)鐘周期;4.如果不相等,說(shuō)明本次訪問的數(shù)據(jù)不在Cache里,稱為不命中,則需從內(nèi)存取出相應(yīng)的數(shù)據(jù),放入Cache,也送給CPU。如果Cache已裝滿數(shù)據(jù),則需按某種替換規(guī)則將某一Cache塊回寫到內(nèi)存,等到回寫完成后,才能將從內(nèi)存取來(lái)的數(shù)據(jù)放入Cache。此過(guò)程相當(dāng)慢,因此完成這一步平均需要40-50個(gè)時(shí)鐘周期。
      從上面介紹的Cache工作過(guò)程可以得到Cache的若干特征1)一級(jí)Cache在CPU芯片中,保證對(duì)Cache中數(shù)據(jù)的訪問有較快的速度;2)Cache有一套機(jī)制(控制電路),判斷訪存數(shù)據(jù)是否在Cache中。如果不在Cache中,則要從內(nèi)存取數(shù)據(jù),還要維護(hù)Cache和內(nèi)存的數(shù)據(jù)一致性。訪存不命中Cache是造成延遲的主要原因;3)Cache結(jié)構(gòu)對(duì)編譯器來(lái)說(shuō)是不可見的,知道它的存在,但不可以將重用性好的數(shù)據(jù)有目的地分配到Cache中。
      不難看出,重用Cache中的數(shù)據(jù)是提高訪存性能的關(guān)鍵。用戶程序能否充分地利用Cache中的數(shù)據(jù),是由程序自身行為決定的。編譯器的優(yōu)化任務(wù)之一就是要挖掘出程序中潛在的數(shù)據(jù)局部性(包括時(shí)間局部性和空間局部性),利用各種程序變換技術(shù),使編譯后的目標(biāo)代碼達(dá)到減少訪存時(shí)間和加速執(zhí)行速度的目的。
      訪存數(shù)據(jù)通常分為四類只讀數(shù)據(jù)(常量),全局靜態(tài)數(shù)據(jù),棧數(shù)據(jù)和堆數(shù)據(jù)。編譯器為每個(gè)被編譯的程序在內(nèi)存中劃出四個(gè)相應(yīng)的數(shù)據(jù)區(qū),分別存放上述四類數(shù)據(jù)。四個(gè)數(shù)據(jù)區(qū)的劃分與分布見圖5。只讀數(shù)據(jù)和全局靜態(tài)數(shù)據(jù)由編譯器和連接器靜態(tài)分配。棧數(shù)據(jù)區(qū)用作過(guò)程(函數(shù))的活動(dòng)紀(jì)錄(frame stack),其結(jié)構(gòu)見圖7。每個(gè)過(guò)程的frame stack按“先進(jìn)后出”原則,動(dòng)態(tài)地分配到棧區(qū)。堆數(shù)據(jù)區(qū)用作數(shù)據(jù)對(duì)象(如數(shù)組等)的動(dòng)態(tài)分配。
      根據(jù)對(duì)SPEC CPU 2000基準(zhǔn)測(cè)試程序所做的統(tǒng)計(jì)分析,平均有大約45%的執(zhí)行時(shí)間是花在訪存上,其中54%是訪問棧數(shù)據(jù)。由于很多時(shí)間花在了訪存上,再加上其它的延遲,使得計(jì)算機(jī)的實(shí)際性能處在峰值的25%~30%之間。
      目前編譯器對(duì)訪存的優(yōu)化主要是針對(duì)循環(huán)和數(shù)組的。以圖8中程序?yàn)槔?,?dāng)m較大,而b的m個(gè)元素b(1),b(2),...b(m)不能全部裝在Cache中時(shí),該程序的局部性極差。編譯器對(duì)它的j循環(huán)做循環(huán)分段和循環(huán)交換后,得到圖9所示的程序,該程序具有良好的局部性,條件是Cache要能裝下1個(gè)b元素。由于Cache對(duì)編譯器來(lái)說(shuō)是不可見的,堆數(shù)據(jù)又是動(dòng)態(tài)分配的,編譯和運(yùn)行時(shí)都不能預(yù)見Cache的使用狀態(tài),故編譯器實(shí)現(xiàn)局部性優(yōu)化具有很多不合理性(如本例中1取多大合理?)。
      編譯器對(duì)被編譯的程序分析后,可以較準(zhǔn)確地知道其他三類數(shù)據(jù)(只讀、全局、和棧)的數(shù)量和使用頻率。如果硬件提供一個(gè)編譯器可以分配和管理的高速緩沖存儲(chǔ)器,則可將訪問頻率高(即重用性好)的數(shù)據(jù)分配在其中,這將對(duì)訪存速度有很大的改善。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于給編譯器提供一種可以靜態(tài)分配,運(yùn)行時(shí)管理的顯式高速緩沖存儲(chǔ)器(簡(jiǎn)稱Ecache),利用編譯技術(shù)使訪存速度慢的矛盾得以緩解。
      為實(shí)現(xiàn)上述目的,一種含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),包括內(nèi)存、cache、寄存器和運(yùn)算部件,還包括位于CPU芯片內(nèi)的Ecache,所述Ecache與內(nèi)存統(tǒng)一編碼。
      本發(fā)明的Ecache位于CPU芯片內(nèi),因此可保證硬件實(shí)現(xiàn)對(duì)Ecache的快速訪問;Ecache與內(nèi)存統(tǒng)一編址,且從小地址開始,因此在所有訪存指令中,訪問Ecache的地址顯式出現(xiàn)(可見),硬件易于識(shí)別與實(shí)現(xiàn)。設(shè)計(jì)的幾組指令,支持編譯器和運(yùn)行程序?qū)cache的顯式使用和動(dòng)態(tài)管理。這些指令與Ecache是不可分的整體。


      圖1是典型的帶有一級(jí)Cache的CPU芯片結(jié)構(gòu)及數(shù)據(jù)通路的示意圖。
      圖2是在CPU芯片中增加Ecache的結(jié)構(gòu)和數(shù)據(jù)通路的結(jié)構(gòu)圖。
      圖3是Cache工作原理圖。
      圖4是Ecache和內(nèi)存統(tǒng)一編址與地址空間劃分的示意圖。
      圖5為典型的常規(guī)編譯器對(duì)數(shù)據(jù)區(qū)的劃分。
      圖6為編譯器對(duì)Ecache所做的數(shù)據(jù)區(qū)劃分。
      圖7是編譯器中使用的棧數(shù)據(jù)區(qū)結(jié)構(gòu)。它的駐留地為內(nèi)存。
      圖8是一個(gè)普通的循環(huán)程序。
      圖9是對(duì)圖8中程序優(yōu)化后的循環(huán)程序。
      圖10是利用Ecache和相應(yīng)的傳輸指令對(duì)圖8中程序所做的優(yōu)化。其中取b(jj*i:jj*i+l-1)→eb(d:d+l-1)表示將l個(gè)b元素預(yù)取至Ecache中,eb(d:d+l-1)是指Ecache中可以使用的l個(gè)單元,eb(d:d+l-1)→b(jj*i:jj*i+l-1)是將計(jì)算結(jié)果送回內(nèi)存b數(shù)組的相應(yīng)位置。
      具體實(shí)施例方式
      下面結(jié)合附圖描述本發(fā)明。如圖2所示,本發(fā)明在CPU芯片中增加一個(gè)Ecache,Ecache本質(zhì)上是一個(gè)芯片內(nèi)的高速存儲(chǔ)器。Ecache的連接方式與現(xiàn)有計(jì)算機(jī)系統(tǒng)中的cache相同,一端接在寄存器上,另一端接在計(jì)算機(jī)系統(tǒng)中的內(nèi)存上。并且,Ecache與內(nèi)存和寄存器之間的數(shù)據(jù)傳輸共用cache已有的機(jī)制。
      圖4是Ecache和內(nèi)存統(tǒng)一編址與地址空間劃分的示意圖。從圖4可以看出,位于CPU芯片內(nèi)的Ecache與位于CPU片外的內(nèi)存統(tǒng)一編址,且是從小地址開始。在訪問Ecache的實(shí)現(xiàn)上,首先判斷訪存地址是否<m。如果<m,則表示直接訪問Ecache,編譯器保證要訪問的數(shù)據(jù)在Ecache中,沒有命中與不命中的問題;如果地址≥m,則按原來(lái)的訪存方式,經(jīng)Cache訪問。由于Ecache沒有Cache那樣復(fù)雜的控制電路,所以Ecache的訪問速度比Cache快得多。
      Ecache和Cache的不同之處在于,Cache雖然能夠存放數(shù)據(jù),但其存儲(chǔ)位置是獨(dú)立的,不列入內(nèi)存的尋址空間,內(nèi)存數(shù)據(jù)進(jìn)入Cache是由硬件自動(dòng)完成的。而Ecache是內(nèi)存尋址空間的一部分,由于它被置于CPU芯片內(nèi),故訪問的速度很快。另外,對(duì)它的使用如同使用芯片外的內(nèi)存一樣,是編譯器可見,可分配和可管理的一段快速片上“內(nèi)存”。編譯器將Ecache劃分出四個(gè)數(shù)據(jù)區(qū)(如圖6所示)。由于Ecache和內(nèi)存統(tǒng)一連續(xù)編址,當(dāng)棧區(qū)不夠使用時(shí),自然下溢至相鄰的內(nèi)存;當(dāng)棧區(qū)有剩余空間時(shí),可用作堆數(shù)據(jù)分配。
      為支持編譯器對(duì)Ecache的有效使用和管理,本發(fā)明設(shè)計(jì)了以下幾組指令1.設(shè)立一個(gè)存放傳輸數(shù)據(jù)個(gè)數(shù)的長(zhǎng)度寄存器r1;并提供一條置r1長(zhǎng)度的指令setr r1,n其語(yǔ)義為將立即數(shù)n置于r1中。
      2.為內(nèi)存(memory),Ecache,寄存器(register)之間成組傳輸數(shù)據(jù)提供三組指令。
      第一組tme md,ed,n表示從memory到Ecachetem ed,md,n表示從Ecache到memory其中,md和ed分別表示數(shù)據(jù)在memory和Ecache中的首地址,傳輸?shù)臄?shù)據(jù)個(gè)數(shù)為n。
      第二組tmed md,ed,d表示從memory到Ecachetemd ed,md,d表示從Ecache到memory其中,md和ed分別表示數(shù)據(jù)在memory和Ecache中的首地址,傳輸?shù)臄?shù)組以跨距為d分布在memory中,傳輸數(shù)據(jù)的個(gè)數(shù)為r1中指示的個(gè)數(shù)。
      利用這兩組指令可以實(shí)現(xiàn)成組數(shù)據(jù)的預(yù)取和保存。圖10是利用Ecache對(duì)圖8中循環(huán)的優(yōu)化。這兩組指令的實(shí)現(xiàn)可以借用原Cache與memory之間的數(shù)據(jù)傳輸通路,外加一個(gè)控制傳輸數(shù)據(jù)個(gè)數(shù)的計(jì)數(shù)裝置即可。
      第三組ter ed,rd,n表示從Ecache到registertre rd,ed,n表示從register到Ecache其中ed為數(shù)據(jù)在Ecache中的首地址,rd為register的編號(hào),n表示傳輸數(shù)據(jù)的個(gè)數(shù)。
      利用這組指令可以快速實(shí)現(xiàn)寄存器的保留和恢復(fù)(處理寄存器的溢出問題)。硬件實(shí)現(xiàn)也可以利用Cache與register之間的數(shù)據(jù)通路。
      權(quán)利要求
      1.一種含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),包括內(nèi)存、cache、寄存器和運(yùn)算部件,其特征在于還包括位于CPU芯片內(nèi)的顯式高速緩沖存儲(chǔ)器Ecache,所述Ecache與內(nèi)存統(tǒng)一編址。
      2.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述Ecache的編址從小地址開始。
      3.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述Ecache是高速存儲(chǔ)器。
      4.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述Ecache與內(nèi)存和寄存器的數(shù)據(jù)通路與cache共用。
      5.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述Ecache是內(nèi)存尋址空間的一部分。
      6.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于還包括為內(nèi)存、Ecache、寄存器之間成組傳輸數(shù)據(jù)提供三組指令。第一組tme md,ed,n表示從內(nèi)存到Ecachetem ed,md,n表示從Ecache到內(nèi)存其中,md和ed分別表示數(shù)據(jù)在內(nèi)存和Ecache中的首地址,傳輸?shù)臄?shù)據(jù)個(gè)數(shù)為n;第二組tmed md,ed,d表示從內(nèi)存到Ecachetemd ed,md,d表示從Ecache到內(nèi)存其中,md和ed分別表示數(shù)據(jù)在內(nèi)存和Ecache中的首地址,傳輸?shù)臄?shù)組以跨距為d分布在內(nèi)存中,傳輸數(shù)據(jù)的個(gè)數(shù)為r1中指示的個(gè)數(shù);第三組ter ed,rd,n表示從Ecache到寄存器tre rd,ed,n表示從寄存器到Ecache其中ed為數(shù)據(jù)在Ecache中的首地址,rd為寄存器的編號(hào),n表示傳輸數(shù)據(jù)的個(gè)數(shù)。
      7.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述顯式高速緩沖存儲(chǔ)器中的數(shù)據(jù)由編譯器分配和管理。
      8.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述Ecache作為目標(biāo)碼的運(yùn)行棧。
      9.按權(quán)利要求1所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于所述Ecache作為目標(biāo)碼的只讀數(shù)據(jù)和全局量駐留地。
      10.按權(quán)利要求4所述的含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),其特征在于編譯器可以用成組傳輸指令實(shí)現(xiàn)數(shù)據(jù)預(yù)取,對(duì)堆數(shù)據(jù)的快速訪問。
      全文摘要
      一種含有顯式高速緩沖存儲(chǔ)器的計(jì)算機(jī)微體系結(jié)構(gòu),包括內(nèi)存、cache、寄存器和運(yùn)算部件,還包括位于CPU芯片內(nèi)的Ecache,所述Ecache與內(nèi)存統(tǒng)一編碼。本發(fā)明的Ecache位于CPU芯片內(nèi),因此可保證硬件實(shí)現(xiàn)對(duì)Ecache的快速訪問;Ecache與內(nèi)存統(tǒng)一編址,且從小地址開始,因此在所有訪存指令中,訪問Ecache的地址顯式出現(xiàn)(可見),硬件易于識(shí)別與實(shí)現(xiàn)。設(shè)計(jì)的幾組指令,支持編譯器和運(yùn)行程序?qū)cache的顯式使用和動(dòng)態(tài)管理。這些指令與Ecache是不可分的整體。
      文檔編號(hào)G06F12/02GK1529244SQ20031010106
      公開日2004年9月15日 申請(qǐng)日期2003年10月14日 優(yōu)先權(quán)日2003年10月14日
      發(fā)明者張兆慶, 喬如良, 唐志敏, 馮曉兵 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1