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

      高速緩存控制器、控制高速緩存控制器的方法以及計(jì)算機(jī)系統(tǒng)的制作方法

      文檔序號(hào):6586523閱讀:272來源:國知局
      專利名稱:高速緩存控制器、控制高速緩存控制器的方法以及計(jì)算機(jī)系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明有關(guān)于高速緩存(cache)控制器,更具體地,本發(fā)明有關(guān)于高速緩存控制 器、控制高速緩存控制器的方法以及計(jì)算機(jī)系統(tǒng)。
      背景技術(shù)
      高速緩存在現(xiàn)代CPU設(shè)計(jì)中具有重要地位。高速緩存用于存儲(chǔ)CPU所頻繁存取 以及重復(fù)使用的一小部分內(nèi)容(content)。如果已存儲(chǔ)的內(nèi)容具有時(shí)間與空間的區(qū)域性 (locality)的話,那么就可高效的存取高速緩存。待存儲(chǔ)到高速緩存中的內(nèi)容包含指令以 及數(shù)據(jù)。大多數(shù)指令彼此之間具有區(qū)域性,大多數(shù)數(shù)據(jù)彼此之間也具有區(qū)域性;盡管如此, 在指令與數(shù)據(jù)之間卻沒有區(qū)域性。高速緩存一般可以分為混合式高速緩存(unified cache)和非混合式高速緩存 (non-unified cache)。在非混合式高速緩存中,指令和數(shù)據(jù)分開處理,特別地,非混合式高 速緩存在不同的硬件中存儲(chǔ)指令和數(shù)據(jù),而且,具有分別傳輸指令以及數(shù)據(jù)的兩個(gè)不同端 口(port)。既然指令與數(shù)據(jù)分開處理,所以很容易維持存儲(chǔ)在高速緩存中的指令之間的區(qū) 域性,以及存儲(chǔ)在高速緩存中的數(shù)據(jù)的區(qū)域性。與此相反的是,混合式高速緩存將指令以及數(shù)據(jù)存儲(chǔ)在同樣的硬件中,而且傳輸 指令以及數(shù)據(jù)使用單一的端口。圖1為使用混合式高速緩存的先前計(jì)算機(jī)系統(tǒng)1的示意圖。 計(jì)算機(jī)系統(tǒng)ι包含處理器11、混合式高速緩存控制器13以及存儲(chǔ)器模塊15。更具體地,混 合式高速緩存控制器13包含高速緩存131?;旌鲜礁咚倬彺婵刂破?3通過第一端口 130、第二端口 132以及第三端口 134連 接到處理器11,第一端口 130用于自處理器接收內(nèi)容的地址,其中,該內(nèi)容可以是指令或 者數(shù)據(jù)。第二端口 132為現(xiàn)有技術(shù)中的混合式高速緩存控制器13中的虛擬端口(dummy port)。第三端口 134用于將高速緩存控制器13的內(nèi)容傳輸給處理器11。很明顯,在高速緩 存131中的指令和數(shù)據(jù)是混合的,而高速緩存控制器13沒有辦法管理存儲(chǔ)在高速緩存131 中的內(nèi)容。具體地,當(dāng)高速緩存行(cache line)已滿時(shí),高速緩存控制器13不考慮在預(yù)清 除高速緩存行中存儲(chǔ)的內(nèi)容,而清除一個(gè)或者多個(gè)高速緩存行。因此,高速緩存控制器清除 即將用于下一個(gè)周期(cycle)的指令或者數(shù)據(jù)將是可能的,這將增加高速緩存誤失(miss) 的概率?;旌鲜礁咚倬彺嬖诂F(xiàn)在CPU設(shè)計(jì)中是很常用的,因?yàn)榛旌鲜礁咚倬彺嫒菀自O(shè)計(jì)以 及擴(kuò)展。因此,迫切需要找到一種方法,以解決指令以及數(shù)據(jù)的競(jìng)爭(competition)而引起 的混合式高速緩存中高速緩存高誤失的問題。

      發(fā)明內(nèi)容
      因此,本發(fā)明提供一種高速緩存控制器、控制高速緩存控制器的方法。本發(fā)明提供一種高速緩存控制器,包含第一端口,用于自處理器接收內(nèi)容的地
      5址,該內(nèi)容的類型為指令與數(shù)據(jù)其中之一;第二端口,用于自該處理接收對(duì)應(yīng)該內(nèi)容的信息 比特,該信息比特指示出該內(nèi)容的類型;以及至少一高速緩存,包含多個(gè)高速緩存行,該多 個(gè)高速緩存行的每一者包含內(nèi)容域,該多個(gè)高速緩存行的每一者對(duì)應(yīng)一個(gè)信息域,根據(jù)該 信息比特以及該地址,該內(nèi)容以及該信息比特分別存儲(chǔ)在該多個(gè)高速緩存行其中之一的該 內(nèi)容域與對(duì)應(yīng)的該信息域中。本發(fā)明再提供一種控制高速緩存控制器的方法,該高速緩存控制器包含至少一高 速緩存,該至少一高速緩存的每一者包含多個(gè)高速緩存行,該多個(gè)高速緩存行的每一者包 含內(nèi)容域,該多個(gè)高速緩存行的每一者對(duì)應(yīng)一個(gè)信息域,該方法包含自處理器接收內(nèi)容的 地址,該內(nèi)容的類型為指令以及數(shù)據(jù)其中之一;自該處理器接收對(duì)應(yīng)該內(nèi)容的信息比特,該 信息比特指示出該內(nèi)容的類型;以及根據(jù)該信息比特以及該地址,將該內(nèi)容以及該信息比 特分別存儲(chǔ)在該多個(gè)高速緩存行其中之一的該內(nèi)容域與對(duì)應(yīng)的該信息域中。本發(fā)明另提供一種計(jì)算機(jī)系統(tǒng),包含處理器;以及高速緩存控制器,電連接到該 處理器,包含第一端口,該第一端口用于自該處理器接收內(nèi)容的地址,該內(nèi)容的類型為指 令以及數(shù)據(jù)其中之一;第二端口,該第二端口用于自該處理器接收對(duì)應(yīng)該內(nèi)容的信息比特, 該信息比特指示該內(nèi)容的該類型;以及至少一高速緩存包含多個(gè)高速緩存行,該多個(gè)高速 緩存行的每一者包含內(nèi)容域,該多個(gè)高速緩存行的每一者對(duì)應(yīng)一個(gè)信息域,根據(jù)該信息比 特以及該地址,該內(nèi)容以及該信息比特分別存儲(chǔ)在該多個(gè)高速緩存行其中之一的內(nèi)容域與 對(duì)應(yīng)的該信息域中。本發(fā)明提供的一種高速緩存控制器、控制高速緩存控制器的方法以及計(jì)算機(jī)系統(tǒng) 可以解決現(xiàn)有技術(shù)中存在的高速緩存高誤失的問題。


      圖1為使用混合式高速緩存的先前計(jì)算機(jī)系統(tǒng)的示意圖;圖2為本發(fā)明第一實(shí)施例計(jì)算機(jī)系統(tǒng)的示意圖;圖3A為本發(fā)明第一實(shí)施例中的高速緩存的示意圖;圖3B為本發(fā)明第一實(shí)施例中的地址的示意圖;圖4為根據(jù)本發(fā)明的實(shí)施例的用于控制高速緩存控制器的方法的流程圖。
      具體實(shí)施例方式在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。所屬領(lǐng)域中具有通常 知識(shí)者應(yīng)可理解,制造商可能會(huì)用不同的名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并 不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。 在通篇說明書及權(quán)利要求當(dāng)中所提及的“包括”和“包含”為一開放式的用語,故應(yīng)解釋成 “包含但不限定于”。以外,“耦接”一詞在此包含任何直接及間接的電氣連接手段。間接的 電氣連接手段包括通過其它裝置進(jìn)行連接。圖2為本發(fā)明第一實(shí)施例計(jì)算機(jī)系統(tǒng)2的示意圖。計(jì)算機(jī)系統(tǒng)2包含處理器21、 高速緩存控制器23以及存儲(chǔ)器模塊25。處理器21為具有單一端口的處理器,例如,處理器21為ARM7EJS處理器,其中,單 一端口用于自高速緩存控制器23接收內(nèi)容。存儲(chǔ)器模塊25可以為DRAM、SRAM或者任何存儲(chǔ)媒體。在此實(shí)施例中,內(nèi)容的類型可以為指令或者數(shù)據(jù)。高速緩存控制器23包含高速緩 存231、數(shù)據(jù)計(jì)數(shù)器233以及指令計(jì)數(shù)器235。請(qǐng)注意,在其它實(shí)施例中,高速緩存控制器可 具有多個(gè)高速緩存。高速緩存控制器的高速緩存的數(shù)量不以本發(fā)明實(shí)施例為限。高速緩存 控制器23進(jìn)一步包含第一端口 230、第二端口 232、第三端口 234以及第四端口 236,其中, 第一端口 230、第二端口 232以及第四端口 236電連接到處理器21,而第三端口 234電連接 到存儲(chǔ)器模塊25。請(qǐng)參考圖3A,圖3A為本發(fā)明第一實(shí)施例中的高速緩存231的示意圖。高速 緩存231包含多個(gè)高速緩存行31a、31b、31c、31d、31e、31f、31g以及31h,多個(gè)信息域 (information field) 32b、32c、32d、32e、32f、32g 以及 32h,多個(gè)標(biāo)簽域(tag field) 33b, 33c、33d、33e、33f、33g 以及 33h。多個(gè)信息域 32b、32c、32d、32e、32f、32g 以及 32h 中的每 一者都可以由一比特寄存器(register)實(shí)現(xiàn),多個(gè)標(biāo)簽域33b、33c、33d、33e、33f、33g以及 33h中的每一者都可以由多比特寄存器實(shí)現(xiàn)??梢宰⒁獾?,高速緩存行、信息域以及標(biāo)簽域 的數(shù)量不以本發(fā)明實(shí)施例為限。多個(gè)高速緩存行31a、31b、31C、31d、31e、31f、31g以及31h 分別對(duì)應(yīng)多個(gè)信息域32&、3213、32(;、32(1、326、32廠328以及3211與多個(gè)標(biāo)簽域333、3313、33(;、 33d、33e、33f、33g 以及 33h。處理器21必須自高速緩存231獲取內(nèi)容以進(jìn)行運(yùn)作。特別地,處理器21將內(nèi)容 的地址202以及對(duì)應(yīng)該內(nèi)容的信息比特204傳輸給高速緩存控制器23。然后,高速緩存控 制器23的第一端口 230以及第二端口 232分別接收內(nèi)容的地址202以及對(duì)應(yīng)該內(nèi)容的信 息比特204。信息比特204指示出該內(nèi)容的類型,例如,“0”表示指令,而“1”表示數(shù)據(jù)。請(qǐng) 注意,使用“0”或者“1”代表指令(或者數(shù)據(jù))不以本發(fā)明實(shí)施例為限。當(dāng)該內(nèi)容為指令, 則該地址為指令的地址,而且信息比特為0。相似地,當(dāng)該內(nèi)容為數(shù)據(jù),則該地址為數(shù)據(jù)的地 址,而且信息比特為1。接收地址202以及信息比特204后,高速緩存控制器23根據(jù)地址202查找高速緩 存231,以找到正確的內(nèi)容,而此操作會(huì)導(dǎo)致高速緩存命中(hit)或者高速緩存誤失。圖3B 為本發(fā)明第一實(shí)施例中的地址202的示意圖,其中,地址202包含標(biāo)簽域202a、內(nèi)容域202b 以及偏移202c。高速緩存控制器23將地址202的標(biāo)簽域202a與高速緩存231的標(biāo)簽域 33a、33b、33c、33d、33e、33f、33g以及33h進(jìn)行比較。如果高速緩存231的標(biāo)簽域33a 33b、 33c、33d、33e、33f、33g以及33h的其中之一可以與地址202的標(biāo)簽域202a匹配的話,那么 就高速緩存命中,否則就會(huì)發(fā)生高速緩存誤失。下面描述“高速緩存誤失”的情況。高速緩存控制器23請(qǐng)求后自存儲(chǔ)器模塊25接 收存儲(chǔ)在地址202的內(nèi)容。然后,根據(jù)信息比特204以及地址202,高速緩存控制器23將該 內(nèi)容存儲(chǔ)在多個(gè)高速緩存行31a、31b、31C、31d、31e、31f、31g以及31h的其中之一,然后將 信息比特204存儲(chǔ)在高速緩存行的對(duì)應(yīng)信息域中,其中,該高速緩存行中存儲(chǔ)該內(nèi)容。接下 來,高速緩存控制器23通過第四端口 236,將該內(nèi)容傳輸給處理器21。下面將描述存儲(chǔ)該 內(nèi)容以及信息比特204的細(xì)節(jié)。根據(jù)指示出指令與數(shù)據(jù)的比例的已調(diào)整比例,高速緩存控制器23設(shè)定數(shù)據(jù)計(jì)數(shù) 器233與指令計(jì)數(shù)器235中存儲(chǔ)的數(shù)值。已調(diào)整比例可以是內(nèi)建的數(shù)值,或者由使用者使 用計(jì)算機(jī)系統(tǒng)2來設(shè)定的數(shù)值。假設(shè)指令與數(shù)據(jù)的已調(diào)整比例為1 3?;谏鲜黾僭O(shè),8 個(gè)高速緩存行31a、31b、31C、31d、31e、31f、31g以及31h中的兩者可以用來存儲(chǔ)類型為指令的內(nèi)容,而另外6個(gè)高速緩存行可以用來存儲(chǔ)類型為數(shù)據(jù)的內(nèi)容。請(qǐng)注意,1 3的比例僅 用于說明本發(fā)明,然本發(fā)明不以此為限。已調(diào)整比例可以用來設(shè)定用于指令計(jì)數(shù)器235存儲(chǔ)的數(shù)值的范圍,以及用于數(shù)據(jù) 計(jì)數(shù)器233存儲(chǔ)的數(shù)值的范圍。指令計(jì)數(shù)器235用于存儲(chǔ)與類型為指令的高速緩存行有關(guān) 的一個(gè)數(shù)值,該類型為指令的高速緩存行由對(duì)應(yīng)信息域中存儲(chǔ)的一比特指示,而數(shù)據(jù)計(jì)數(shù) 器233用于存儲(chǔ)與類型為數(shù)據(jù)的高速緩存行有關(guān)的一數(shù)值,該類型為數(shù)據(jù)的高速緩存行由 對(duì)應(yīng)信息域中存儲(chǔ)的一個(gè)比特指示,例如,該數(shù)值可以為高速緩存行的個(gè)數(shù),而該高速緩存 行每一者對(duì)應(yīng)的信息域存儲(chǔ)了指示出數(shù)據(jù)類型的一個(gè)比特。既然8個(gè)高速緩存行31a、31b、 31c、31d、31e、31f、31g以及31h中的兩者可以用來存儲(chǔ)類型為指令的內(nèi)容,那么指令計(jì)數(shù) 器235存儲(chǔ)的數(shù)值的范圍就可以為從0到2。相似地,8個(gè)高速緩存行31a、31b、31c、31d、 31e、31f、31g以及31h中的六者可以用來存儲(chǔ)類型為數(shù)據(jù)的內(nèi)容,那么數(shù)據(jù)計(jì)數(shù)器233存儲(chǔ) 的數(shù)值的范圍就可以為從0到6。舉例說明,開始,所有8個(gè)高速緩存行31a、31b、31c、31d、 31e.31f.31g以及31h都為空,所以指令計(jì)數(shù)器235以及數(shù)據(jù)計(jì)數(shù)器233存儲(chǔ)的數(shù)值就設(shè)定 為0。如果信息比特204指示出內(nèi)容的類型為指令(例如,信息比特204為0),那么高速 緩存控制器23就可以確定指令計(jì)數(shù)器235存儲(chǔ)的數(shù)值是否為最大(即,2)。如果指令計(jì)數(shù) 器235存儲(chǔ)的數(shù)值沒有達(dá)到最大值,那么高速緩存控制器23就可以自8個(gè)高速緩存行31a、 31b、31c、31d、31e、31f、31g以及31h中選擇一個(gè)空的高速緩存行,以存儲(chǔ)該內(nèi)容。假設(shè)選 定高速緩存行31a。然后,高速緩存控制器23將該內(nèi)容存儲(chǔ)在高速緩存行31a,將信息比特 204存儲(chǔ)在對(duì)應(yīng)信息域32a,以及將地址202的標(biāo)簽域202a存儲(chǔ)在對(duì)應(yīng)標(biāo)簽域33a。在存儲(chǔ) 該內(nèi)容之后,根據(jù)該內(nèi)容之存儲(chǔ)而更新存儲(chǔ)在指令計(jì)數(shù)器235中的數(shù)值,特別地,指令計(jì)數(shù) 器235的數(shù)值可以從0增長到1。指令計(jì)數(shù)器235存儲(chǔ)的數(shù)值已經(jīng)到達(dá)最大值也是可能的,然后高速緩存控制器23 必須選擇對(duì)應(yīng)的信息域?yàn)?的多個(gè)高速緩存行中的至少一者(即,指示高速緩存行存儲(chǔ)類 型為指令的內(nèi)容),以實(shí)施清除。指令計(jì)數(shù)器235存儲(chǔ)的數(shù)值在清除之后可以更新。特別地, 如果高速緩存控制器23清除對(duì)應(yīng)的信息域?yàn)?的兩個(gè)高速緩存行,那么指令計(jì)數(shù)器235存 儲(chǔ)的數(shù)值就可以減少2。如果高速緩存控制器23清除對(duì)應(yīng)信息域?yàn)?的一個(gè)高速緩存行, 那么指令計(jì)數(shù)器235的數(shù)值就可以減少1。需要強(qiáng)調(diào)的是,當(dāng)信息比特204為0時(shí),高速緩 存控制器23不選擇對(duì)應(yīng)信息域?yàn)?的高速緩存行來實(shí)施清除。相似地,如果信息比特204指示出內(nèi)容的類型為數(shù)據(jù)(即,信息比特204為1),那 么高速緩存控制器23就可以確定數(shù)據(jù)計(jì)數(shù)器233存儲(chǔ)的數(shù)值是否為最大值(即6)。如果 數(shù)據(jù)計(jì)數(shù)器233存儲(chǔ)的數(shù)值沒有到達(dá)最大值,那么高速緩存控制器23以相似的處理方式, 存儲(chǔ)地址202的內(nèi)容、信息比特以及標(biāo)簽域202a,然后數(shù)據(jù)計(jì)數(shù)器233相應(yīng)地更新存儲(chǔ)的數(shù) 值。相似地,如果數(shù)據(jù)計(jì)數(shù)器233已經(jīng)達(dá)到最大值,那么高速緩存控制器23必須選擇對(duì)應(yīng) 信息域?yàn)?的多個(gè)高速緩存行中的至少一個(gè)(即,指示出高速緩存行存儲(chǔ)類型為數(shù)據(jù)的內(nèi) 容),以實(shí)施清除。在清除之后,數(shù)據(jù)計(jì)數(shù)器233相應(yīng)地更新。請(qǐng)注意,對(duì)于數(shù)據(jù)以及指令使 用計(jì)數(shù)器,僅用于說明本發(fā)明,然本發(fā)明不以此為限。舉例說明,數(shù)據(jù)計(jì)數(shù)器或者指令計(jì)數(shù) 器可以由軟件方法,通過使用如數(shù)據(jù)計(jì)數(shù)器233以及指令計(jì)數(shù)器235所實(shí)施的類似的步驟 而實(shí)現(xiàn)。
      在其它實(shí)施例中,高速緩存控制器23可以減法的方式,使用指令計(jì)數(shù)器235以及 數(shù)據(jù)計(jì)數(shù)器233。也就是說,數(shù)據(jù)計(jì)數(shù)器233可以用于存儲(chǔ)一個(gè)數(shù)值,該數(shù)值為指示出仍可 用于存儲(chǔ)類型為數(shù)據(jù)的內(nèi)容的高速緩存行的個(gè)數(shù)。在此情況下,指令計(jì)數(shù)器235以及數(shù)據(jù) 計(jì)數(shù)器233開始分別設(shè)定為最大值。當(dāng)高速緩存控制器23將類型為指令的內(nèi)容存儲(chǔ)在多 個(gè)高速緩存行31a、31b、31C、31d、31e、31f、31g以及31h的其中之一時(shí),高速緩存控制器23 將指令計(jì)數(shù)器235存儲(chǔ)的數(shù)值減一。相似地,當(dāng)高速緩存控制器23將類型為數(shù)據(jù)的內(nèi)容存 儲(chǔ)在多個(gè)高速緩存行31a、31b、31C、31d、31e、31f、31g以及31h的其中之一時(shí),高速緩存控 制器23將數(shù)據(jù)計(jì)數(shù)器233存儲(chǔ)的數(shù)值減一。根據(jù)前面描述,任何所屬領(lǐng)域普通技術(shù)人員可以將本發(fā)明的思想實(shí)現(xiàn)在包含多個(gè) 高速緩存行的高速緩存控制器中。在來自處理器21的信息比特、數(shù)據(jù)計(jì)數(shù)器233以及指令計(jì)數(shù)器235的幫助下,本 發(fā)明可以將指令與數(shù)據(jù)分開存儲(chǔ)在高速緩存231中。需要強(qiáng)調(diào)的是,高速緩存231為混合 式高速緩存。當(dāng)用于存儲(chǔ)指令的高速緩存行已滿時(shí),高速緩存控制器23僅僅清除用于指令 的高速緩存行,而不清除用于數(shù)據(jù)的高速緩存行。相似地,當(dāng)用于存儲(chǔ)數(shù)據(jù)的高速緩存行已 滿時(shí),高速緩存控制器23僅僅清除用于數(shù)據(jù)的高速緩存行,而不清除用于指令的高速緩存 行。如此實(shí)現(xiàn)的原因是,數(shù)據(jù)本身具有區(qū)域性,指令本身具有區(qū)域性;盡管如此,在指令和數(shù) 據(jù)之間卻沒有區(qū)域性。經(jīng)過前面的描述,混合式高速緩存的命中的比率就會(huì)增大。圖4為根據(jù)本發(fā)明的實(shí)施例的用于控制高速緩存控制器的方法的流程圖。該方法 可以由混合式高速緩存(例如,本發(fā)明第一實(shí)施例的高速緩存控制器23)而使用。該方法 的解釋可以參考高速緩存控制器23而進(jìn)行。此外,數(shù)據(jù)計(jì)數(shù)器233以及指令計(jì)數(shù)器235開 始時(shí)可以分別設(shè)定為最大值。例如,數(shù)據(jù)計(jì)數(shù)器233存儲(chǔ)的數(shù)值設(shè)定為6,而指令計(jì)數(shù)器存 儲(chǔ)的數(shù)值設(shè)定為2。那就意味著,仍然有6個(gè)高速緩存行可用于存儲(chǔ)類型為數(shù)據(jù)的內(nèi)容,而 且仍然有2個(gè)高速緩存行可以用于存儲(chǔ)類型為指令的內(nèi)容。首先,該方法執(zhí)行步驟S701,這樣高速緩存控制器23就可以自處理器接收內(nèi)容的 地址,其中,該內(nèi)容的類型可以為指令或者數(shù)據(jù)。在步驟S703,高速緩存控制器23自處理器 接收對(duì)應(yīng)內(nèi)容的信息比特,其中,該信息比特指示出該內(nèi)容的類型。需要注意的是,高速緩 存控制器23可以同時(shí)執(zhí)行步驟S701以及步驟S703,或者在執(zhí)行步驟S701之前執(zhí)行步驟 S703。然后執(zhí)行步驟S705,以使能高速緩存控制器23,用于確定由該地址指示出的內(nèi)容 是否在高速緩存中。如果該內(nèi)容在高速緩存中,那么高速緩存控制器23執(zhí)行步驟S707以 將該內(nèi)容傳輸給處理器。如果該內(nèi)容不在高速緩存中,那么高速緩存控制器23執(zhí)行步驟 S709,以根據(jù)該地址,自存儲(chǔ)器接收內(nèi)容。例如,由第三端口自存儲(chǔ)器接收內(nèi)容。在步驟S709后,高速緩存控制器23執(zhí)行步驟S711,以確定該信息比特指示出該 內(nèi)容的類型是否為數(shù)據(jù)。如果該內(nèi)容的類型為數(shù)據(jù),那么執(zhí)行步驟S721、S723、S725、S727、 S729以及步驟S707。如果該內(nèi)容的類型不是數(shù)據(jù)(即,類型為指令),那么執(zhí)行步驟S731、 S733、S735、S737、S739 以及步驟 S707。如果該內(nèi)容的類型為數(shù)據(jù),那么高速緩存控制器23執(zhí)行步驟S721以確定高速緩 存是否具有存儲(chǔ)內(nèi)容的類型為數(shù)據(jù)的可用空高速緩存行。特別地,步驟S721可以通過確定 存儲(chǔ)在數(shù)據(jù)計(jì)數(shù)器中的數(shù)值是否為0來實(shí)現(xiàn)。如果高速緩存仍然有可以用于存儲(chǔ)類型為數(shù)據(jù)(即,數(shù)據(jù)計(jì)數(shù)器不為0)的內(nèi)容的空高速緩存行,那么高速緩存控制器23執(zhí)行步驟S727 以將該內(nèi)容存儲(chǔ)在多個(gè)空高速緩存行的其中之一。然后,高速緩存控制器23執(zhí)行步驟S729 以更新數(shù)據(jù)計(jì)數(shù)器。特別地,高速緩存控制器23通過將數(shù)據(jù)計(jì)數(shù)器中存儲(chǔ)的數(shù)值減一而更 新數(shù)據(jù)計(jì)數(shù)器。然后,高速緩存控制器23執(zhí)行步驟S707以將該內(nèi)容傳輸給處理器。另一 方面,如果步驟S721確定該高速緩存沒有用于存儲(chǔ)類型為數(shù)據(jù)的內(nèi)容的空的高速緩存行, 那么高速緩存控制器必須在執(zhí)行步驟S727之前執(zhí)行步驟S723到步驟S725。在步驟S723, 高速緩存控制器23清除至少一個(gè)存儲(chǔ)了類型為數(shù)據(jù)的內(nèi)容的高速緩存行。也就是說,高速 緩存控制器23清除了多個(gè)高速緩存行之一者的內(nèi)容域,其中,該已清除的內(nèi)容域的高速緩 存行對(duì)應(yīng)的信息域存儲(chǔ)了指示類型為數(shù)據(jù)的一比特,然后也清除對(duì)應(yīng)信息域。在清除之后, 高速緩存控制器23執(zhí)行步驟S725以更新數(shù)據(jù)計(jì)數(shù)器。特別地,高速緩存控制器23通過將 數(shù)據(jù)計(jì)數(shù)器存儲(chǔ)的數(shù)值加一而更新數(shù)據(jù)計(jì)數(shù)器。如果步驟S711確定,內(nèi)容的類型為指令(即,不是數(shù)據(jù)),那么高速緩存控制器 23就執(zhí)行步驟S731以確定高速緩存是否還具有存儲(chǔ)內(nèi)容的類型為指令的可用空高速緩存 行。特別地,步驟S731中,高速緩存控制器23可以確定存儲(chǔ)在指令計(jì)數(shù)器中的數(shù)值是否 為零。如果高速緩存仍然具有可以用于存儲(chǔ)內(nèi)容的類型為指令的空高速緩存行(即,指令 計(jì)數(shù)器不為0),那么高速緩存控制器23執(zhí)行步驟S737以將內(nèi)容存儲(chǔ)在多個(gè)空高速緩存行 的其中之一。然后高速緩存控制器23執(zhí)行步驟S739,以更新指令計(jì)數(shù)器。特別地,在步驟 S739中,高速緩存控制器通過將指令計(jì)數(shù)器存儲(chǔ)的數(shù)值減一而更新指令計(jì)數(shù)器。之后,高速 緩存控制器23執(zhí)行步驟S707以將內(nèi)容傳輸給處理器。如果步驟S731確定了高速緩存沒 有可用于存儲(chǔ)內(nèi)容的類型為指令的空高速緩存行,那么高速緩存控制器23必須在執(zhí)行步 驟S737之前執(zhí)行步驟S733以及步驟S735。在步驟S733中,高速緩存控制器23清除至少 一個(gè)存儲(chǔ)了類型為指令的內(nèi)容的高速緩存行。也就是說,高速緩存控制器23清除多個(gè)高速 緩存行中其中之一的內(nèi)容域,,其中,該已清除的內(nèi)容域的高速緩存行對(duì)應(yīng)的信息域存儲(chǔ)了 指示類型為指令的一比特,然后也清除對(duì)應(yīng)信息域。在清除之后,高速緩存控制器23執(zhí)行 步驟S735以更新數(shù)據(jù)計(jì)數(shù)器。特別地,在步驟S735,高速緩存控制器23通過將存儲(chǔ)在指令 計(jì)數(shù)器中存儲(chǔ)的數(shù)值加一而更新數(shù)據(jù)計(jì)數(shù)器。請(qǐng)注意,步驟S723以及步驟S733中,高速緩存控制器23可以清除多于一個(gè)高速 緩存行。例如,步驟S725以及步驟S735可以根據(jù)已清除的高速緩存行的數(shù)量而更新。更具體地,在其它實(shí)施例中,上述方法可以選擇其它方式以實(shí)現(xiàn)步驟S721、S725、 S729、S731、S735以及S739。例如,數(shù)據(jù)計(jì)數(shù)器以及指令計(jì)數(shù)器開始時(shí)可以設(shè)定為零。在 此情況下,步驟S721中,高速緩存控制器23確定數(shù)據(jù)計(jì)數(shù)器存儲(chǔ)的數(shù)值是否已經(jīng)到達(dá)最 大值,然后在步驟S731確定指令計(jì)數(shù)器存儲(chǔ)的數(shù)值是否已經(jīng)到達(dá)最大值,在步驟S725中, 將數(shù)據(jù)計(jì)數(shù)器存儲(chǔ)的數(shù)值減一,在步驟S735中將指令計(jì)數(shù)器存儲(chǔ)的數(shù)值減一,然后在步驟 S729中,將數(shù)據(jù)計(jì)數(shù)器存儲(chǔ)的數(shù)值加一,在步驟S739中,將指令計(jì)數(shù)器存儲(chǔ)的數(shù)值加一。除了上述步驟,基于對(duì)上述實(shí)施例的描述,所屬領(lǐng)域普通技術(shù)人員可以理解上述 方法的流程圖的執(zhí)行的運(yùn)作以及功能,因此此處不再贅述。 根據(jù)上述步驟,本發(fā)明的方法中,指令和數(shù)據(jù)分開存儲(chǔ)在混合式高速緩存中。當(dāng)用 于存儲(chǔ)指令的高速緩存行已滿時(shí),高速緩存控制器23僅僅清除用于存儲(chǔ)指令的高速緩存 行,而不清除用于存儲(chǔ)數(shù)據(jù)的高速緩存行。相似地,當(dāng)用于存儲(chǔ)數(shù)據(jù)的高速緩存行已滿時(shí),
      10高速緩存控制器23僅僅清除用于存儲(chǔ)數(shù)據(jù)的高速緩存行,而不清除用于存儲(chǔ)指令的高速 緩存行。經(jīng)由此操作,混合式高速緩存的命中比率就可以增大,而處理時(shí)間也可以減少。
      任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明之精神和范圍內(nèi),當(dāng)可做些許的更動(dòng)與潤 飾,因此本發(fā)明之保護(hù)范圍當(dāng)視所附之權(quán)利要求所界定者為準(zhǔn)。
      權(quán)利要求
      一種高速緩存控制器,包含第一端口,用于自處理器接收內(nèi)容的地址,該內(nèi)容的類型為指令與數(shù)據(jù)其中之一;第二端口,用于自該處理接收對(duì)應(yīng)該內(nèi)容的信息比特,該信息比特指示出該內(nèi)容的類型;以及至少一高速緩存,包含多個(gè)高速緩存行,該多個(gè)高速緩存行的每一者包含內(nèi)容域,該多個(gè)高速緩存行的每一者對(duì)應(yīng)一個(gè)信息域,根據(jù)該信息比特以及該地址,該內(nèi)容以及該信息比特分別存儲(chǔ)在該多個(gè)高速緩存行其中之一的該內(nèi)容域與對(duì)應(yīng)的該信息域中。
      2.如權(quán)利要求1所述的高速緩存控制器,其特征在于進(jìn)一步包含第三端口,在將該內(nèi)容存儲(chǔ)到該多個(gè)高速緩存行其中之一之前,根據(jù)該地址,第三端口 自存儲(chǔ)器接收該內(nèi)容。
      3.如權(quán)利要求1所述的高速緩存控制器,其特征在于進(jìn)一步包含第四端口,用于將該內(nèi)容傳輸給該處理器。
      4.如權(quán)利要求1所述的高速緩存控制器,其特征在于進(jìn)一步包含數(shù)據(jù)計(jì)數(shù)器,用于存儲(chǔ)與類型為數(shù)據(jù)的高速緩存行有關(guān)的數(shù)值,該類型為數(shù)據(jù)的高速 緩存行由對(duì)應(yīng)的信息域中存儲(chǔ)的一比特指示。
      5.如權(quán)利要求4所述的高速緩存控制器,其特征在于,該信息比特指示出該內(nèi)容的類 型為數(shù)據(jù),而存儲(chǔ)在該數(shù)據(jù)計(jì)數(shù)器中的數(shù)值根據(jù)該內(nèi)容的存儲(chǔ)而更新。
      6.如權(quán)利要求1所述的高速緩存控制器,其特征在于進(jìn)一步包含數(shù)據(jù)計(jì)數(shù)器,用于存儲(chǔ)數(shù)值,該數(shù)值指示存儲(chǔ)內(nèi)容的類型為數(shù)據(jù)的可用高速緩存行的 個(gè)數(shù)。
      7.如權(quán)利要求6所述的高速緩存控制器,其特征在于,該信息比特指示出該內(nèi)容的類 型為數(shù)據(jù),且存儲(chǔ)在該數(shù)據(jù)計(jì)數(shù)器中的該數(shù)值根據(jù)該內(nèi)容的存儲(chǔ)而減一。
      8.如權(quán)利要求1所述的高速緩存控制器,其特征在于進(jìn)一步包含指令計(jì)數(shù)器用于存儲(chǔ)與類型為指令的高速緩存行有關(guān)的數(shù)值,該類型為指令的高速緩 存行由對(duì)應(yīng)的該信息域中存儲(chǔ)的一比特指示。
      9.如權(quán)利要求8所述的高速緩存控制器,其特征在于,該信息比特指示出該內(nèi)容類型 為指令,且存儲(chǔ)在該指令計(jì)數(shù)器中的該數(shù)值根據(jù)該內(nèi)容的存儲(chǔ)而更新。
      10.如權(quán)利要求1所述的高速緩存控制器,其特征在于進(jìn)一步包含指令計(jì)數(shù)器,該指令計(jì)數(shù)器用于存儲(chǔ)數(shù)值,該數(shù)值指示出存儲(chǔ)內(nèi)容的類型為指令的可 用高速緩存行的個(gè)數(shù)。
      11.如權(quán)利要求10所述的高速緩存控制器,其特征在于,該信息比特指示出該內(nèi)容類 型為指令,且存儲(chǔ)在該指令計(jì)數(shù)器中的該數(shù)值根據(jù)該內(nèi)容的存儲(chǔ)而減一。
      12.—種控制高速緩存控制器的方法,該高速緩存控制器包含至少一高速緩存,該至少 一高速緩存的每一者包含多個(gè)高速緩存行,該多個(gè)高速緩存行的每一者包含內(nèi)容域,該多 個(gè)高速緩存行的每一者對(duì)應(yīng)一個(gè)信息域,該方法包含自處理器接收內(nèi)容的地址,該內(nèi)容的類型為指令以及數(shù)據(jù)其中之一;自該處理器接收對(duì)應(yīng)該內(nèi)容的信息比特,該信息比特指示出該內(nèi)容的類型;以及根據(jù)該信息比特以及該地址,將該內(nèi)容以及該信息比特分別存儲(chǔ)在該多個(gè)高速緩存行 其中之一的該內(nèi)容域與對(duì)應(yīng)的該信息域中。
      13.如權(quán)利要求12所述的控制高速緩存控制器的方法,其特征在于進(jìn)一步包含在將該 內(nèi)容以及該信息比特分別存儲(chǔ)在該多個(gè)高速緩存行其中之一的該內(nèi)容域與對(duì)應(yīng)的該信息 域中之前,根據(jù)該地址,自存儲(chǔ)器接收該內(nèi)容。
      14.如權(quán)利要求12所述的控制高速緩存控制器的方法,其特征在于進(jìn)一步包含將該內(nèi) 容傳輸給該處理器。
      15.如權(quán)利要求12所述的控制高速緩存控制器的方法,其特征在于,該高速緩存控制 器進(jìn)一步包含數(shù)據(jù)計(jì)數(shù)器,該數(shù)據(jù)計(jì)數(shù)器用于存儲(chǔ)與類型為數(shù)據(jù)的高速緩存行有關(guān)的數(shù) 值,該類型為數(shù)據(jù)的高速緩存行由對(duì)應(yīng)的該信息域中存儲(chǔ)的一比特指示,而該方法進(jìn)一步 包含,根據(jù)該內(nèi)容的存儲(chǔ)更新該高速緩存控制器的該數(shù)據(jù)控制器存儲(chǔ)的該數(shù)值。
      16.如權(quán)利要求12所述的控制高速緩存控制器的方法,其特征在于,該高速緩存控制 器進(jìn)一步包含數(shù)據(jù)計(jì)數(shù)器,該數(shù)據(jù)計(jì)數(shù)器用于存儲(chǔ)數(shù)值,其中,該數(shù)值指示出存儲(chǔ)內(nèi)容的類 型為數(shù)據(jù)的可用高速緩存行的個(gè)數(shù),而該方法進(jìn)一步包含根據(jù)該內(nèi)容的存儲(chǔ),將在該高速緩存控制器的該數(shù)據(jù)計(jì)數(shù)器存儲(chǔ)的該數(shù)值減一。
      17.如權(quán)利要求16所述的控制高速緩存控制器的方法,在將該內(nèi)容以及該信息比特分 別存儲(chǔ)在該多個(gè)高速緩存行其中之一的該內(nèi)容域與對(duì)應(yīng)的該信息域中前,進(jìn)一步包含確定由該信息比特指示出的該類型為數(shù)據(jù);確定存儲(chǔ)在該數(shù)據(jù)計(jì)數(shù)器中的該數(shù)值為零;清除該多個(gè)高速緩存行其中之一的內(nèi)容域,其中,該已清除的內(nèi)容域的高速緩存行對(duì) 應(yīng)的信息域存儲(chǔ)了指示類型為數(shù)據(jù)的一比特;清除該已清除的內(nèi)容域的高速緩存行對(duì)應(yīng)的該信息域;以及將該數(shù)據(jù)計(jì)數(shù)器存儲(chǔ)的該數(shù)值加一。
      18.如權(quán)利要求12所述的控制高速緩存控制器的方法,其特征在于,該高速緩存控制 器進(jìn)一步包含指令計(jì)數(shù)器,該指令計(jì)數(shù)器用于存儲(chǔ)與類型為指令的高速緩 存行有關(guān)的數(shù) 值,該類型為指令的高速緩存行由對(duì)應(yīng)的該信息域中存儲(chǔ)的一比特指示,而該方法進(jìn)一步 包含根據(jù)該內(nèi)容的存儲(chǔ),更新該高速緩存控制器的該指令計(jì)數(shù)器存儲(chǔ)的該數(shù)值。
      19.如權(quán)利要求12所述的控制高速緩存控制器的方法,其特征在于,該高速緩存控制 器進(jìn)一步包含指令計(jì)數(shù)器,該指令計(jì)數(shù)器用于存儲(chǔ)數(shù)值,其中,該數(shù)值指示出存儲(chǔ)內(nèi)容的類 型為指令的可用高速緩存行的個(gè)數(shù),而該方法進(jìn)一步包含根據(jù)該內(nèi)容的存儲(chǔ),將該高速緩存控制器的該指令計(jì)數(shù)器存儲(chǔ)的該數(shù)值減一。
      20.如權(quán)利要求19所述的控制高速緩存控制器的方法,在將該內(nèi)容以及該信息比特分 別存儲(chǔ)在該多個(gè)高速緩存行其中之一的該內(nèi)容域與對(duì)應(yīng)的該信息域中前,其特征在于進(jìn)一 步包含確定由該信息比特指示出的該類型為指令;確定存儲(chǔ)在該指令計(jì)數(shù)器中的該數(shù)值為零;清除該多個(gè)高速緩存行其中之一的內(nèi)容域,其中,該已清除的內(nèi)容域的高速緩存行對(duì) 應(yīng)的信息域存儲(chǔ)了指示類型為指令的一比特;清除該已清除的內(nèi)容域的高速緩存行對(duì)應(yīng)的該信息域;以及將該指令計(jì)數(shù)器存儲(chǔ)的該數(shù)值加一。
      21.一種計(jì)算機(jī)系統(tǒng),包含處理器;以及高速緩存控制器,電連接到該處理器,包含第一端口,該第一端口用于自該處理器接 收內(nèi)容的地址,該內(nèi)容的類型為指令以及數(shù)據(jù)其中之一;第二端口,該第二端口用于自該處 理器接收對(duì)應(yīng)該內(nèi)容的信息比特,該信息比特指示該內(nèi)容的該類型;以及至少一高速緩存 包含多個(gè)高速緩存行,該多個(gè)高速緩存行的每一者包含內(nèi)容域,該多個(gè)高速緩存行的每一 者對(duì)應(yīng)一個(gè)信息域,根據(jù)該信息比特以及該地址,該內(nèi)容以及該信息比特分別存儲(chǔ)在該多 個(gè)高速緩存行其中之一的內(nèi)容域與對(duì)應(yīng)的該信息域中。
      22.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于,該信息比特指示該內(nèi)容的類型為 數(shù)據(jù),而該高速緩存控制器進(jìn)一步包含數(shù)據(jù)計(jì)數(shù)器,用于存儲(chǔ)與類型為數(shù)據(jù)的高速緩存行有關(guān)的數(shù)值,該類型為數(shù)據(jù)的高速 緩存行由對(duì)應(yīng)的該信息域中存儲(chǔ)的一比特指示;其中,根據(jù)該內(nèi)容的存儲(chǔ),更新該數(shù)值。
      23.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于,該信息比特指示出該內(nèi)容的類型 為數(shù)據(jù),而該高速緩存控制器進(jìn)一步包含數(shù)據(jù)計(jì)數(shù)器,用于存儲(chǔ)數(shù)值,該數(shù)值指示出存儲(chǔ)內(nèi)容的類型為數(shù)據(jù)可用高速緩存行的 個(gè)數(shù);其中,根據(jù)該內(nèi)容的存儲(chǔ),將該數(shù)值減一。
      24.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于,該信息比特指示出該內(nèi)容的類型 為指令,而該高速緩存控制器進(jìn)一步包含指令計(jì)數(shù)器,用于存儲(chǔ)與類型為指令的高速緩存行有關(guān)的數(shù)值,該類型為指令的高速 緩存行由對(duì)應(yīng)的該信息域中存儲(chǔ)的一比特指示;其中,根據(jù)該內(nèi)容的存儲(chǔ),更新該數(shù)值。
      25.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于,該信息比特指示出該內(nèi)容的類型 為指令,而該高速緩存控制器進(jìn)一步包含指令計(jì)數(shù)器,用于存儲(chǔ)數(shù)值,該數(shù)值指示出存儲(chǔ)內(nèi)容的類型為指令可用高速緩存行的 個(gè)數(shù);其中,根據(jù)該內(nèi)容的存儲(chǔ),將該數(shù)值減一。
      26.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于,該處理器為ARM7EJS處理器。
      27.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于進(jìn)一步包含存儲(chǔ)器;其中,該高速緩存控制器進(jìn)一步包含第三端口,在將該內(nèi)容存儲(chǔ)到該多個(gè)高速緩存行 之前,根據(jù)該地址,該第三端口用于自該存儲(chǔ)器接收該內(nèi)容。
      28.如權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng),其特征在于,該高速緩存控制器進(jìn)一步包含第三端口,該第三端口用于將該內(nèi)容傳輸給該控制器。
      全文摘要
      一種高速緩存控制器、控制高速緩存控制器的方法以及計(jì)算機(jī)系統(tǒng),其中,計(jì)算機(jī)系統(tǒng)包含處理器;以及高速緩存控制器,電連接到該處理器,包含第一端口,用于自該處理器接收內(nèi)容的地址,該內(nèi)容的類型為指令以及數(shù)據(jù)其中之一;第二端口,用于自該處理器接收對(duì)應(yīng)該內(nèi)容的信息比特,該信息比特指示該內(nèi)容的該類型;以及至少一高速緩存包含多個(gè)高速緩存行,該多個(gè)高速緩存行的每一者包含內(nèi)容域并對(duì)應(yīng)一個(gè)信息域,根據(jù)該信息比特以及該地址,該內(nèi)容以及該信息比特分別存儲(chǔ)在該多個(gè)高速緩存行其中之一的內(nèi)容域與對(duì)應(yīng)的該信息域中。本發(fā)明提供的高速緩存控制器、控制高速緩存控制器的方法以及計(jì)算機(jī)系統(tǒng)可解決現(xiàn)有技術(shù)中的高速緩存高失誤的問題。
      文檔編號(hào)G06F12/08GK101930408SQ200910261669
      公開日2010年12月29日 申請(qǐng)日期2009年12月23日 優(yōu)先權(quán)日2009年6月23日
      發(fā)明者戴昌憲, 陳柏宏 申請(qǐng)人:聯(lián)發(fā)科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1