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

      指令預取方法與預取裝置的制作方法

      文檔序號:6333817閱讀:447來源:國知局
      專利名稱:指令預取方法與預取裝置的制作方法
      技術領域
      本發(fā)明涉及計算機技術領域,更具體地,本發(fā)明涉及一種用于多核處理器的指令預取方法與預取裝置。
      背景技術
      多核處理器是指將多個處理器核心及相關功能部件集成到一個處理器芯片上,從而形成包含有多個處理器核心的處理器結構。相較于以往的單核處理器,由于集成了多個處理器核心,所述多核處理器的數(shù)據(jù)處理能力大大提高。在所述多核處理器執(zhí)行程序的過程中,每個處理器核心有限容量的本地指令緩沖不能滿足大規(guī)模程序的存儲,需要不斷的從片外主存中將需要用到的指令裝入所述本地指令緩沖。然而,所述片外主存的存取速度很難滿足處理器核心處理速度的需求,而且所述多核處理器在實際運行時通常會有多個處理器核心競爭訪問片外主存,這加劇了指令獲取的難度,多核處理器的數(shù)據(jù)處理能力無法完全發(fā)揮。針對所述因指令獲取引起的處理器處理能力無法完全發(fā)揮的問題,申請?zhí)枮?01816274. 6的中國專利申請?zhí)峁┝艘环N采用輔助處理器預取用于主要處理器的指令的方法和裝置,通過主要處理器外部的輔助處理器預取指令以充分發(fā)揮處理器的處理能力。然而,該方法只可以為一個處理器提供指令預取服務,不適于多核處理器的處理器結構。另一方面,所述用于預取指令的輔助處理器需要執(zhí)行程序的簡化版本,硬件開銷較大。

      發(fā)明內(nèi)容
      本發(fā)明解決的問題是提供一種指令預取方法與預取裝置,簡化了硬件指令存儲的管理邏輯,提高了處理器的處理效率。為解決上述問題,本發(fā)明提供了一種指令預取裝置,用于向處理器核心提供指令預取服務,包括取指控制單元與指令緩存單元,其中所述取指控制單元,用于接收處理器核心提供的預取請求,基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,或指示指令緩存單元從片外主存中獲取與所述預取請求對應的指令;基于所述預取請求指示指令緩存單元將與預取請求對應的指令提供給處理器核心;所述指令緩存單元,用于存儲指令;響應所述取指控制單元的指示,從片外主存中獲取與所述預取請求對應的指令,以及將與預取請求對應的指令提供給處理器核心??蛇x的,所述取指控制單元還用于將不同處理器核心提供的預取請求合并,基于所述合并后的預取請求進行指令預取操作??蛇x的,所述取指控制單元包括預取請求合并單元、指令引擎、取指緩存、訪存緩存、裝填緩存以及傳輸單元,其中所述預取請求合并單元,用于接收處理器核心提供的預取請求,將取指目標相同的預取請求合并,并將合并后的預取請求提供給取指緩存;
      所述指令引擎,用于從取指緩存中獲取預取請求,基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,若預取請求命中,則將預取請求寫入裝填緩存,若預取請求未命中,且所述預取請求與裝填緩存中已存儲的預取請求不沖突時,則將所述未命中的預取請求提供給訪存緩存;所述取指緩存、訪存緩存以及 裝填緩存,用于暫存預取請求;所述傳輸單元,用于從裝填緩存中獲取預取請求,從指令緩存單元中獲取指令,基于所述預取請求將與所述預取請求對應的指令提供給處理器核心;片外主存從訪存緩存中獲取預取請求,基于所述預取請求,將與所述預取請求對應的指令提供給指令緩存單元,并將所述預取請求提供給裝填緩存。相應的,本發(fā)明還提供了一種指令預取方法,包括獲取處理器核心提供的預取請求;基于所述預取請求,獲取與所述預取請求對應的指令并存儲于處理器的片上指令緩存中;將片上指令緩存中與所述預取請求對應的指令提供給與所述預取請求對應的處理器核心。與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點1.以較為簡便的方式實現(xiàn)了多核處理器的指令預取,無需使用輔助處理器執(zhí)行程序,降低了硬件開銷,簡化了硬件指令存儲的管理邏輯,提高了處理器的處理效率;2.可以將不同處理器核心提供的預取請求合并后再進行指令預取操作,以便于向需求相同指令的處理器核心同時裝載指令,這進一步提高了指令預取的效率。


      圖1示出了本發(fā)明指令預取裝置的第一實施例;圖2示出了本發(fā)明指令預取裝置的第二實施例;圖3示出了本發(fā)明指令預取裝置中預取請求合并單元的一種實施方式;圖4示出了預取請求合并單元的級聯(lián)結構;圖5示出了本發(fā)明指令預取方法一個實施例的流程。
      具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本發(fā)明的具體實施方式
      做詳細的說明。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是本發(fā)明還可以采用其他不同于在此描述的其它方式來實施,因此本發(fā)明不受下面公開的具體實施例的限制。正如背景技術部分所述,現(xiàn)有技術利用輔助處理器為主要處理器提供預取指令的方法只可以為一個處理器提供指令預取服務,不適于多核處理器的處理器結構。此外,所述用于預取指令的輔助處理器需要執(zhí)行程序的簡化版本,硬件開銷較大。針對上述問題,本發(fā)明的發(fā)明人提供了一種用于處理器的指令預取方法與預取裝置,簡化了硬件指令存儲的管理邏輯,有效提高了處理器的處理效率。依據(jù)具體實施例的不同,本發(fā)明的指令預取方法與預取裝置既可以用于單核處理器,也可以用于多核處理器。為了便于說明,在下面的實施例中,均以多核處理器為例進行說明,但不應限制其范圍。第一實施例圖1示出了本發(fā)明指令預取裝置的第一實施例。如圖1所 示,所述指令預取裝置包括取指控制單元101與指令緩存單元103。所述指令預取裝置配合于片外主存105及多個處理器核心107,向處理器核心107提供預取指令的服務,其中,所述取指控制單元101,用于接收處理器核心107提供的預取請求,基于所述預取請求在指令緩存單元103搜索與所述預取請求對應的指令,或指示指令緩存單元103從片外主存105中獲取與所述預取請求對應的指令,基于所述預取請求指示指令緩存單元103 將與預取請求對應的指令提供給處理器核心107的本地指令緩沖111。所述指令緩存單元103,用于存儲指令;響應所述取指控制單元101的指示,從片外主存105中獲取與所述預取請求對應的指令,以及將與預取請求對應的指令提供給處理器核心107。所述處理器核心107包含有微處理單元109與本地指令緩沖111,所述本地指令緩沖111用于存儲由指令緩存單元103提供的指令,并將所述指令提供給對應的微處理單元 109 ;所述微處理單元109調(diào)用本地指令緩沖111中存儲的指令,并執(zhí)行所述指令。在具體實施例中,所述指令預取裝置集成在處理器中,用于預取指令并提供給所述處理器的一個或多個處理器核心。為了實現(xiàn)指令預取,所述預取請求中應包含有預取指令信息、核心需求信息以及指令裝填地址等信息。其中,所述預取指令信息用于標識需要預取的指令;所述核心需求信息對應于所述預取的指令具體需要存放到哪些處理器核心中;而所述指令裝填地址則對應于所述預取的指令存放于處理器核心的本地指令緩沖中的具體地址,優(yōu)選的,不同的處理器核心對應于相同的指令裝填地址,將與預取指令信息對應的指令存儲至所述至少一個處理器核心中相同的指令裝填地址。上述的預取請求是針對多核處理器而言的,依據(jù)具體實施例的不同,處理器中還有可能只包含有一個處理器核心,在這種情況下,發(fā)出預取請求與接收預取指令的操作只涉及一個處理器核心,因此,所述預取請求無需包含有核心需求信息。在具體實施例中,所述預取指令信息可以包含一個或多個需要預取的指令的標識;指令緩存單元根據(jù)所述預取指令信息,將與預取指令信息對應的一個或多個指令提供至所述核心需求信息對應的處理器核心。特別的,對于不同的處理器核心,其可以預取相同的指令,也可以預取不同的指令。接下來,對本發(fā)明指令預取裝置第一實施例的工作過程進行說明,在本實施例中, 集成所述指令預取裝置的處理器包含有多個處理器核心,所述多個處理器核心協(xié)同工作, 完成數(shù)據(jù)計算等處理任務。處理器在執(zhí)行處理任務時,其中的處理器核心執(zhí)行的指令通常直接從所述處理器核心的本地指令緩沖中獲得。但由于所述本地指令緩沖的存儲容量有限,因此,在所述本地指令緩沖中的指令處理完成前,即當前執(zhí)行的程序未結束前,該處理器核心提前向取指控制單元發(fā)送預取請求。在具體實施例中,所述預取請求可以采用預取請求指令的形式添加在需要執(zhí)行的程序中。在處理器當前執(zhí)行的程序運行到不同的分支時,處理器核心基于當前程序中不同的預取請求指令,即可提供不同的預取請求。對于某個處理器核心發(fā)出的預取請求,其既可以為當前處理器核心獲取指令,也可以為其他處理器核心一起預取指令。所述多個處理器核心一起預取的指令即可以用于實現(xiàn)后續(xù)指令的同步運行。
      所述取指控制單元在獲得預取請求后,即基于所述預取請求從指令緩存單元中搜索與預取指令信息所對應的指令。若指令緩存單元中未存儲有對應的指令,所述取指控制單元即基于預取請求指示指令緩存單元從片外主存中獲取與預取指令信息對應的指令并存儲所述指令。所述片外主存中存儲的指令是通過軟件編譯的,而非硬件動態(tài)執(zhí)行的,這就大大減少了硬件開銷。在指令緩存單元中確定存儲有與預取指令信息對應的指令后,所述取指控制單元基于預取請求,確定需要所述預取指令的處理器核心、以及所述預取指令在所述處理器核心本地指令緩沖中的具體存儲地址,并指示指令緩存單元將其存儲的與預取指令信息對應的指令提供給對應的處理器核心的本地指令緩沖,以供微處理單元調(diào)用。在實際應用中,指令緩存單元將其中存儲的指令提供給處理器核心的本地指令緩沖時,需要對所述本地指令緩沖的寫入端口申請寫入操作。相應的,如果該寫入操作的申請結果有效,則基于預取請求向處理器核心的本地指令緩沖中寫入指令;如果該寫入操作的申請結果無效,則在下一周期后繼續(xù)申請寫入操作,直至獲得有效的申請結果,從而完成指令的寫入。此外,基于實際應用的需要,所述取指控制單元中還可以選擇集成有預取請求合并功能。所述預取請求合并功能是指,取指控制單元在接收到不同處理器核心提供的預取請求后,可以基于預取指令信息與核心需求信息的信息,選擇將預取指令信息相同的預取請求合并為新的預取請求。在預取請求合并后,所述取指控制單元即基于合并后的預取請求進行相應的指令預取操作。舉例說明所述預取請求合并功能。所述預取請求中包含有預取指令信息與核心需求信息等信息。其中,所述核心需求信息可以采用核心序號陣列的形式,所述核心序號陣列中的每一元素對應于處理器中的一個處理器核心。例如,所述處理器包含有核心A、核心B、核心C與核心D,而核心A與核心B分別向指令預取裝置提供預取請求1與預取請求2,其中,所述預取請求1與預取請求 2對應于相同的指令,但預取請求1對應于向核心A與核心B預取所述指令,其對應的核心序號陣列中核心A與核心B對應的元素為有效;預取請求2對應于向核心C預取所述指令, 其對應的核心序號陣列中核心C對應的元素為有效?;谒鲱A取請求1與預取請求2,所述取指控制單元可以將這兩個預取請求合并為一個新的預取請求,這時,只需要將所述核心序號陣列中核心A、B、C對應的元素設置為有效,即可實現(xiàn)向核心A、B、C預取所述指令的操作。之所以在指令預取裝置中設置預取請求合并功能,是因為在處理器運行過程中, 不同處理器核心運行的程序并不相同,因此,不同處理器核心發(fā)出的預取請求也并不相同。 但是,有可能出現(xiàn)不同處理器核心需要相同指令的情況。在這種情況下,如果仍分別處理所述預取請求,無疑會導致指令預取的效率降低。因此,通過將預取相同指令的預取請求合并,需求相同指令的不同處理器核心即可以同時裝載所需求的指令,這就避免了多次裝載相同指令的重復操作,提高了指令預取的效率。第二實施例參考圖2,示出了本發(fā)明指令預取裝置的第二實施例。相較于本發(fā)明指令預取裝置的第一實施例,所述指令預取裝置第二實施例的結構進一步細化。此外,依據(jù)實際應用的不同,本發(fā)明的指令預取裝置可以選擇集成有預取請求合并功能,在本實施例中,以集成有預取請求合并功能的實施例為例進行說明,但不應限制其范圍。所述指令預取裝置包括預取請求合并單元201、指令引擎203、指令緩存單元 205、取指緩存207、訪存緩存209、裝填緩存211以及傳輸單元213。所述指令預取裝置配合于片外主存217及多個處理器核心215,向處理器核心215提供預取指令的服務,其中,

      所述預取請求合并單元201,用于接收處理器核心提供的預取請求,將取指目標相同的預取請求合并,并將合并后的預取請求提供給取指緩存207 ;所述指令引擎203,用于從取指緩存207中獲取預取請求,基于所述預取請求在指令緩存單元205搜索與所述預取請求對應的指令,若預取請求命中,則將預取請求寫入裝填緩存211,若預取請求未命中,且所述預取請求與裝填緩存211中已存儲的預取請求不沖突時,則將所述未命中的預取請求提供給訪存緩存209 ;片外主存217,用于從訪存緩存209中獲取預取請求,基于所述預取請求,將與所述預取請求對應的指令提供給指令緩存單元205,并將所述預取請求提供給裝填緩存211 ;傳輸單元213,用于從裝填緩存211中獲取預取請求,從指令緩存單元205中獲取指令,基于所述預取請求將與所述預取請求對應的指令提供給處理器核心215。對于所述取指緩存207、訪存緩存209以及裝填緩存211,其主要用于暫存預取請求。特別的,其可以采用FIFO的緩存器結構,通過所述FIFO結構,預取請求的處理順序得到有效控制。其中,所述預取請求合并單元201、指令引擎203、取指緩存207、訪存緩存209、裝填緩存211以及傳輸單元213即對應于第一實施例中的取指控制單元。接下來,對本實施例的工作過程進行說明。其中,本實施例與第一實施例相同的工作方式不再贅述。處理器核心執(zhí)行程序,并基于當前執(zhí)行程序中的預取指令形成預取請求并向指令預取裝置的預取請求合并單元發(fā)送所述預取請求。特別的,對于每個處理器核心,其每次只能發(fā)出一個預取請求,前一預取請求對應的指令返回后,處理器核心才能發(fā)出下一預取請求。所述預取請求合并單元獲得預取請求后,會判斷所述預取請求是否與其他預取請求可以合并,若可以合并,則將取指目標相同的預取請求合并,并將合并后的預取請求提供給取指緩存;若不可合并,則直接將所述預取請求提供給取指緩存。之后,指令引擎從取指緩存中獲取預取請求,并基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,若預取請求命中,則將預取請求寫入裝填緩存,若預取請求未命中,且所述預取請求與裝填緩存中已存儲的預取請求不沖突時,則將所述來命中的預取請求提供給訪存緩存,若所述預取請求與裝填緩存中已存儲的預取請求沖突,則等待裝填緩存中已存儲的預取請求處理完之后,再將所述未命中的預取請求提供給訪存緩存。 對于所述命中的預取請求,說明所述指令緩存單元中已存儲有對應的指令,無需從片外主存中獲取指令;而對于因未命中而暫存于訪存緩存中的預取請求,片外主存會從訪存緩存中獲取所述預取請求,并基于所述預取請求,將與所述預取請求對應的指令提供給指令緩存單元,同時將所述預取請求提供給裝填緩存,這樣,指令緩存單元中即存儲有與預取請求對應的指令,而裝填緩存中亦得到了所述預取請求。接著,傳輸單元從裝填緩存中獲取預取請求,同時從指令緩存單元中獲取對應的指令,基于所述預取請求將與所述預取請求對應的指令提供給處理器核心的本地指令緩沖,從而完成所述指令預取操作??梢钥闯?,通過所述預取請求合并單元,指令預取裝置避免了多次裝載相同指令的重復操作,提高了指令預取的效率。接下來,再對所述預取請求合并單元的具體結構進行說明。參考圖3,示出了所述預取請求合并單元的一種具體實施方式
      。所述預取請求合并單元包括輪轉(zhuǎn)仲裁單元與指令比較單元,其中,所述輪轉(zhuǎn)仲裁單元,用于接收處理器核心提供的預取請求,選擇一個預取請求作為主預取請求,其他的預取請求作為從預取請求;所述指令比較單元,用于接收主預取請求及從預取請求并進行比較,將包含有相同的指令需求信息的主預取請求與從預取請求合并為新的預取請求,同時向處理器核心返回預取請求已處理的接收響應。在實際應用中,與所述指令預取裝置相連的處理器的每一處理器核心分別通過一個獨立的硬連線與預取請求合并單元連接。通過所述硬連線,輪轉(zhuǎn)仲裁單元接收多個處理器核心提供的預取請求,并采用公平輪轉(zhuǎn)的策略,每次合并時選擇一個預取請求作為主預取請求,其他的預取請求作為從預取請求。在確定主預取請求與從預取請求之后,指令比較單元對所述主預取請求及從預取請求進行比較。若所述主預取請求與從預取請求包含有相同的指令需求信息,則將所述主預取請求與從預取請求合并為新的預取請求,同時向處理器核心返回預取請求已處理的接收響應。所述接收響應用于指示處理器核心其發(fā)出的預取請求已被處理,以便撤銷被處理的預取請求,避免同一預取請求被多次處理。若所述主預取請求與從預取請求不包含有相同的指令需求信息,則不合并所述主預取請求與從預取請求,而直接提供給后續(xù)單元。對于所述預取指令合并處理,其可以根據(jù)電路實現(xiàn)的延時,分為一拍或多拍進行。 需要注意的是,對于多拍執(zhí)行的預取指令合并處理,其合并過程不能夠流水進行。依據(jù)實際應用的不同,所述預取請求合并單元還可以采用采用多級級聯(lián)結構,圖4 即示出了預取請求合并單元的一種級聯(lián)結構。依據(jù)具體應用的不同,所述預取請求合并單元包含有兩級以上的級聯(lián)結構,作為示例,圖4示出了兩級級聯(lián)結構,但不應限制其范圍。如圖4所示,不同的第一級預取請求合并子單元分別接收不同處理器核心提供的預取請求并進行相應的合并處理。合并處理后的預取請求繼續(xù)提供給第二級預取請求合并子單元,并由其進行合并處理。再所述兩級合并處理之后,預取請求合并單元將合并后的預取請求提供給取指緩存。之所以設置所述級聯(lián)結構的預取請求合并單元,是因為處理器核心的規(guī)模并不確定,對于規(guī)模較大的處理器核心,由于其中包含有較多的處理器核心,如果采用一級結構,預取請求需要比較的次數(shù)過多,電路邏輯級數(shù)過長,限制了芯片工作頻率。 因此,采用多級級聯(lián)結構可以減少預取請求比較電路的延遲,從而優(yōu)化預取請求的合并電路邏輯,提高電路工作頻率。本發(fā) 明的指令預取裝置實現(xiàn)了指令由片外主存向處理器核心的預先轉(zhuǎn)移,提高了處理器的處理效率。特別的,一次預取操作可以向多個處理器核心提供指令,這就減少了指令預取操作的次數(shù),減少了片外主存或指令緩存單元與處理器核心的指令交互次數(shù),提高了指令管理的效率。圖5示出了本發(fā)明指令預取方法一個實施例的流程。如圖5所示,本發(fā)明指令預取方法一個實施例的流程包括執(zhí)行步驟S502,獲取處理器核心提供的預取請求。在具體實施例中,所進預取請求可以采用預取請求指令的形式添加在需要執(zhí)行的程序中。所述程序中不同分支或不同位置的預取請求指令對應于不同指令的預取操作。在處理器當前執(zhí)行的程序運行到不同的分支時,處理器核心即基于當前程序中不同的預取請求指令,提供不同的預取請求。特別的,處理器核心提供所述預取請求為異步進行的,因此,所述預取請求的提供并不會影響處理器核心中的微處理單元進行運算操作,也不會影響其流水線繼續(xù)運行??梢钥闯?,本發(fā)明的指令預取方法通過程序自行管理指令預取,提高了指令預取的可移植性, 大大擴展了適用范圍。依據(jù)具體實施例的不同,可以將不同處理器核心提供的需要相同指令的預取請求合并。通過將預取相同指令的預取請求合并,需求相同指令的不同處理器核心即可以同時裝載所述指令,這就避免了多次裝載相同指令的重復操作,提高了指令預取的效率。執(zhí)行步驟S504,基于所述預取請求,獲取與所述預取請求對應的指令并存儲于處理器的片上指令緩存中。為了實現(xiàn)指令預取,所述預取請求中應包含有預取指令信息、核心需求信息以及指令裝填地址等信息。其中,所述預取指令信息用于標識需要預取的指令,所述核心需求信息對應于所述預取的指令具體需要存放到哪些處理器核心中,而所述指令裝填地址則對應于所述預取的指令存放于處理器核心本地指令緩沖中的具體地址。在實際應用中,所述集成于程序中的預取請求指令可以采用下述的指令格式 Preblk Ra Rb,其中,Preblk標記了預取請求指令,該指令的兩個參數(shù)Ra表示預取指令信息,Rb表示核心需求信息,而指令裝填地址可以基于當前本地指令緩沖的存儲狀況由處理器核心提供。基于所述預取請求中的預取指令信息,在處理器的片上指令緩存(所述片上指令緩存不包括處理器核心中的本地指令緩沖,例如圖1中示出的指令緩存單元)中搜索與所述預取指令信息所對應的指令。若片上指令緩存中已存儲有對應的指令,則繼續(xù)執(zhí)行后續(xù)的指令寫入;而若片上指令緩存中未存儲有對應的指令,則從片外主存中獲取與預取指令信息對應的指令并存儲到片上指令緩存中。相較于片外主存與片上指令緩存間較慢的通信速度,處理器核心與片上指令緩存間具備較快的通信速度,因此,通過將指令由片外主存轉(zhuǎn)移到片上指令緩存中,指令預取速度大為提高。
      執(zhí)行步驟S506,將片上指令緩存中與所述預取請求對應的指令提供給與所述預取請求對應的處理器核心。在具體實施例中,所述核心需求信息包含至少一個處理器核心的標識,基于所述預取請求中的核心需求信息,向一個或多個處理器核心的本地指令緩沖提供預取的指令; 優(yōu)選的,不同的處理器核心對應于相同的指令裝填地址,將與預取指令信息對應的指令存儲至所述至少一個處理器核心中相同的指令裝填地址。所述預取指令信息可以包含一個或多個需要預取的指令的標識;基于所述預取指令信息,將與預取指令信息對應的一個或多個指令提供至所述核心需求信息對應的處理器核心。特別的,對于不同的處理器核心,其可以預取相同的指令,也可以預取不同的指令。在實際應用中,需要對處理器核心中用于存儲指令的本地指令緩沖的寫入端口申請寫入操作。相應的,如果該寫入操作的申請結果有效,則基于預取請求向處理器核心的本地指令緩沖中寫入指令;如果該寫入操作的申請結果無效,則在下一周期后繼續(xù)申請寫入操作,直至獲得有效的申請結果,從而完成指令的寫入。本發(fā)明的指令預取方法與預取裝置以較為簡便的方式實現(xiàn)了多核處理器的指令預取,簡化了硬件指令存儲的管理邏輯,提高了處理器的處理效率;所述預取請求通過指令的形式添加在需要執(zhí)行的程序中,通過程序來管理指令預取,這就提高了指令預取的可移植性,大大擴展了適用范圍;此外,基于需要預取的指令的不同,還可以將不同處理器核心提供的預取請求合并后再進行指令預取操作,以便于向需求相同指令的處理器核心同時裝載指令,這進一步提高了指令預取的效率。應該理解,此處的例子和實施例僅是示例性的,本領域技術人員可以在不背離本申請和所附權利要求所限定的本發(fā)明的精神和范圍的情況下,做出各種修改和更正。
      權利要求
      1.一種指令預取裝置,用于向處理器核心提供指令預取服務,其特征在于, 包括取指控制單元與指令緩存單元,其中所述取指控制單元,用于接收處理器核心提供的預取請求,基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,或指示指令緩存單元從片外主存中獲取與所述預取請求對應的指令;基于所述預取請求指示指令緩存單元將與預取請求對應的指令提供給處理器核心;所述指令緩存單元,用于存儲指令;響應所述取指控制單元的指示,從片外主存中獲取與所述預取請求對應的指令,以及將與預取請求對應的指令提供給處理器核心。
      2.如權利要求1所述的指令預取裝置,其特征在于,所述取指控制單元包括指令引擎、 取指緩存、訪存緩存、裝填緩存以及傳輸單元,其中所述取指緩存,用于接收并暫存處理器核心提供的預取請求; 所述指令引擎,用于從取指緩存中獲取預取請求,基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,若預取請求命中,則將預取請求寫入裝填緩存,若預取請求未命中,且所述預取請求與裝填緩存中已存儲的預取請求不沖突時,則將所述未命中的預取請求提供給訪存緩存;所述訪存緩存以及裝填緩存,用于暫存預取請求;所述傳輸單元,用于從裝填緩存中獲取預取請求,從指令緩存單元中獲取指令,基于所述預取請求將與所述預取請求對應的指令提供給處理器核心;片外主存從訪存緩存中獲取預取請求,基于所述預取請求,將與所述預取請求對應的指令提供給指令緩存單元,并將所述預取請求提供給裝填緩存。
      3.如權利要求1所述的指令預取裝置,其特征在于,所述取指控制單元還用于將不同處理器核心提供的預取請求合并,基于所述合并后的預取請求進行指令預取操作。
      4.如權利要求3所述的指令預取裝置,其特征在于,所述取指控制單元包括預取請求合并單元、指令引擎、取指緩存、訪存緩存、裝填緩存以及傳輸單元,其中所述預取請求合并單元,用于接收處理器核心提供的預取請求,將取指目標相同的預取請求合并,并將合并后的預取請求提供給取指緩存;所述指令引擎,用于從取指緩存中獲取預取請求,基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,若預取請求命中,則將預取請求寫入裝填緩存,若預取請求未命中,且所述預取請求與裝填緩存中已存儲的預取請求不沖突時,則將所述未命中的預取請求提供給訪存緩存;所述取指緩存、訪存緩存以及裝填緩存,用于暫存預取請求;所述傳輸單元,用于從裝填緩存中獲取預取請求,從指令緩存單元中獲取指令,基于所述預取請求將與所述預取請求對應的指令提供給處理器核心;片外主存從訪存緩存中獲取預取請求,基于所述預取請求,將與所述預取請求對應的指令提供給指令緩存單元,并將所述預取請求提供給裝填緩存。
      5.如權利要求4所述的指令預取裝置,其特征在于,所述預取請求合并單元包括輪轉(zhuǎn)仲裁單元與指令比較單元,其中,所述輪轉(zhuǎn)仲裁單元,用于接收處理器核心提供的預取請求,選擇一個預取請求作為主預取請求,其他的預取請求作為從預取請求;所述指令比較單元,用于接收主預取請求及從預取請求并進行比較,將包含有相同的指令需求信息的主預取請求與從預取請求合并為新的預取請求,同時向處理器核心返回預取請求已處理的接收響應。
      6.如權利要求5所述的指令預取裝置,其特征在于,所述預請求合并單元采用級聯(lián)結構。
      7.如權利要求1所述的指令預取裝置,其特征在于,所述指令預取裝置集成在多核處理器中,用于預取指令并提供給所述多核處理器的多個處理器核心。
      8.如權利要求7所述的指令預取裝置,其特征在于,所述預取請求中包含有預取指令信息、核心需求信息以及指令裝填地址。
      9.如權利要求8所述的指令預取裝置,其特征在于,所述核心需求信息包含至少一個處理器核心的標識,所述指令緩存單元將與預取指令信息對應的指令存儲至所述至少一個處理器核心中相同的指令裝填地址。
      10.如權利要求8所述的指令預取裝置,其特征在于,所述預取指令信息包含一個或多個需要預取的指令的標識;所述指令緩存單元根據(jù)所述預取指令信息,將與預取指令信息對應的一個或多個指令提供至所述核心需求信息對應的處理器核心。
      11.一種指令預取方法,其特征在于,包括獲取處理器核心提供的預取請求;基于所述預取請求,獲取與所述預取請求對應的指令并存儲于處理器的片上指令緩存中;將片上指令緩存中與所述預取請求對應的指令提供給與所述預取請求對應的處理器核心。
      12.如權利要求11所述的指令預取方法,其特征在于,所述基于所述預取請求,獲取與所述預取請求對應的指令并存儲于處理器的片上指令緩存中包括在處理器的片上指令緩存中搜索與所述預取請求所對應的指令,若所述片上指令緩存中未存儲有與預取請求對應的指令,則從片外主存中獲取與預取請求對應的指令并存儲到片上指令緩存中。
      13.如權利要求11所述的指令預取方法,其特征在于,所述預取請求以預取請求指令的形式添加在當前執(zhí)行的可執(zhí)行程序中,處理器核心基于所述當前執(zhí)行程序中不同的預取請求指令提供不同的預取請求。
      14.如權利要求11所述的指令預取方法,其特征在于,所述預取請求中包含有預取指令信息、核心需求信息及指令裝填地址,所述將片上指令緩存中與所述預取請求對應的指令提供給與所述預取請求對應的處理器核心還包括所述核心需求信息包含至少一個處理器核心的標識,基于所述預取請求中的核心需求信息,向一個或多個處理器核心的本地指令緩沖提供預取的指令。
      15.如權利要求14所述的指令預取方法,其特征在于,還包括不同的處理器核心對應于相同的指令裝填地址,將與預取指令信息對應的指令存儲至所述至少一個處理器核心中相同的指令裝填地址。
      16.如權利要求14所述的指令預取方法,其特征在于,還包括所述預取指令信息包含一個或多個需要預取的指令的標識,基于所述預取指令信息,將與預取指令信息對應的一個或多個指令提供至所述核心需求信息對應的處理器核心。
      17.如權利要求11所述的指令預取方法,其特征在于,所述將片上指令緩存中與所述預取請求對應的指令提供給與所述預取請求對應的處理器核心還包括基于所述預取請求,向處理器核心中本地指令緩沖申請寫入操作,如果申請結果有效,則向所述本地指令緩沖中寫入與所述預取請求對應的指令;如果申請結果無效,則在下一周期后繼續(xù)申請寫入操作。
      18.如權利要求11所述的指令預取方法,其特征在于,在所述獲取處理器核心提供的預取請求之后,還包括將不同處理器核心提供的需要相同指令的預取請求合并。
      全文摘要
      一種指令預取方法與預取裝置。所述指令預取裝置,用于向處理器核心提供指令預取服務,包括取指控制單元,用于接收處理器核心提供的預取請求,基于所述預取請求在指令緩存單元搜索與所述預取請求對應的指令,或指示指令緩存單元從片外主存中獲取與所述預取請求對應的指令;基于所述預取請求指示指令緩存單元將與預取請求對應的指令提供給處理器核心;指令緩存單元,用于存儲指令;響應所述取指控制單元的指示,從片外主存中獲取與所述預取請求對應的指令,以及將與預取請求對應的指令提供給處理器核心。本發(fā)明的指令預取方法與預取裝置以較為簡便的方式實現(xiàn)了多核處理器的指令預取,簡化了硬件指令存儲的管理邏輯,提高了處理器的處理效率。
      文檔編號G06F9/38GK102446087SQ20101050887
      公開日2012年5月9日 申請日期2010年10月12日 優(yōu)先權日2010年10月12日
      發(fā)明者任秀江, 呂暉, 李宏亮, 謝向輝, 鄭方, 錢磊 申請人:無錫江南計算技術研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1