專利名稱:確定鏈接數(shù)據(jù)儲(chǔ)存器中存儲(chǔ)和重寫的項(xiàng)目的數(shù)據(jù)存儲(chǔ)協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域涉及數(shù)據(jù)存儲(chǔ)裝置,并且具體而言,涉及每時(shí)鐘周期接收多個(gè)訪問 請(qǐng)求的數(shù)據(jù)存儲(chǔ)裝置。
背景技術(shù):
數(shù)據(jù)處理器處理要求相當(dāng)大的存儲(chǔ)容量的越來越大的數(shù)據(jù)量。訪問諸如存儲(chǔ)器的 大型數(shù)據(jù)儲(chǔ)存器耗費(fèi)時(shí)間。因此,技術(shù)已演進(jìn)至將處理器可能需要的數(shù)據(jù)的子集存儲(chǔ)在比 如低級(jí)高速緩存之類的易于訪問的較小數(shù)據(jù)儲(chǔ)存器中,如果需要不在該子集內(nèi)的數(shù)據(jù),則 對(duì)諸如較高級(jí)高速緩存或存儲(chǔ)器的一個(gè)或多個(gè)較大儲(chǔ)存器進(jìn)行訪問。使得較小數(shù)據(jù)儲(chǔ)存器易于訪問以改善處理器速度,然而,要實(shí)現(xiàn)它們?cè)诠β屎兔?積方面成本高昂,并且因此,重要的是其存儲(chǔ)處理器很可能將需要的項(xiàng)目(item)。如果其未 存儲(chǔ)所需數(shù)據(jù),則其僅僅增加面積并消耗功率,而不增加益處。實(shí)際上,這些數(shù)據(jù)儲(chǔ)存器的 命中率對(duì)于處理器功率消耗和性能而言非常重要。此類數(shù)據(jù)儲(chǔ)存器的一個(gè)示例是轉(zhuǎn)換旁視緩沖器(translation lookaside buffer)或TLB。具有虛擬存儲(chǔ)器的大多數(shù)現(xiàn)代微處理器具有被虛擬尋址、物理映射的數(shù)據(jù) 高速緩存。因此,所有存儲(chǔ)器讀和寫需要在能夠訪問尋址的存儲(chǔ)位置之前使其虛擬地址轉(zhuǎn) 換成物理地址。此轉(zhuǎn)換通常由稱為TLB的小轉(zhuǎn)換高速緩存進(jìn)行。如果TLB不包含所請(qǐng)求 的轉(zhuǎn)換,則必須從后備的2級(jí)TLB或從訪問存儲(chǔ)器中的頁(yè)表的存儲(chǔ)器管理邏輯中檢索轉(zhuǎn)換 信息。這些TLB中的命中率對(duì)于處理器性能而言非常重要。即便用后備L2TLB,TLB遺漏 (miss)造成的損失仍對(duì)總體性能具有顯著影響。許多現(xiàn)代微處理器可以每周期發(fā)出兩個(gè)存儲(chǔ)器訪問,一個(gè)加載且一個(gè)存儲(chǔ),并且 因此,這些需要兩個(gè)TLB或雙端口 TLB進(jìn)行轉(zhuǎn)換。雙端口 TLB具有與雙TLB解決方案幾乎 相同的面積,并且實(shí)際上可以實(shí)現(xiàn)為兩個(gè)TLB。雙端口 TLB具有實(shí)際上每個(gè)條目被存儲(chǔ)兩次 的缺點(diǎn)。在每個(gè)能夠存儲(chǔ)不同條目的兩個(gè)獨(dú)立TLB正在訪問存儲(chǔ)器的不同區(qū)域的情況下, 使用這兩個(gè)TLB具有能夠比雙端口 TLB存儲(chǔ)更多的條目并因此能夠提供更好性能的優(yōu)點(diǎn)。然而,存在加載和存儲(chǔ)將是針對(duì)相同數(shù)據(jù)項(xiàng)目的若干情況,并且如果這些最近未 被訪問,則在該雙TLB實(shí)施方式中,加載TLB和存儲(chǔ)TLB中都將存在遺漏。因此,這兩次訪 問都會(huì)遭受時(shí)間損失。在雙端口 TLB中,很明顯,加載TLB將已經(jīng)存儲(chǔ)數(shù)據(jù),使其可用于存 儲(chǔ) TLB。因此,這兩種實(shí)施方式都具有缺點(diǎn)。期望的是能夠提供一種具有雙端口和獨(dú)立存儲(chǔ)機(jī)制兩者的至少某些優(yōu)點(diǎn)的系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明的第一方面提供一種用于存儲(chǔ)多個(gè)項(xiàng)目的存儲(chǔ)裝置,所述存儲(chǔ)裝置被配置 為在相同時(shí)鐘周期內(nèi)接收用于訪問相應(yīng)項(xiàng)目的第一訪問請(qǐng)求和第二訪問請(qǐng)求,所述存儲(chǔ)裝 置包括兩個(gè)儲(chǔ)存器,每個(gè)儲(chǔ)存器用于存儲(chǔ)所述多個(gè)項(xiàng)目的子集,所述第一訪問請(qǐng)求被路由到第一儲(chǔ)存器且所述第二訪問請(qǐng)求被路由到第二儲(chǔ)存器;遺漏檢測(cè)電路,其用于檢測(cè)其中 所請(qǐng)求的項(xiàng)目未被存儲(chǔ)在所述被訪問儲(chǔ)存器中的遺漏;項(xiàng)目檢索電路,其用于從另外的儲(chǔ) 存器中檢索其訪問產(chǎn)生遺漏的項(xiàng)目;更新電路,其用于根據(jù)所述兩個(gè)儲(chǔ)存器中的相應(yīng)一個(gè) 的訪問歷史選擇要在所述相應(yīng)儲(chǔ)存器中重寫的項(xiàng)目,所述更新電路響應(yīng)于所述遺漏檢測(cè)電 路在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述遺漏并響應(yīng)于至少一個(gè)另外的條件而通過重 寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器中檢索的所述項(xiàng)目來更新所述兩個(gè)儲(chǔ)存器二者。
本發(fā)明認(rèn)識(shí)到,當(dāng)在相同時(shí)鐘周期中發(fā)生兩個(gè)訪問請(qǐng)求時(shí),它們可能是相關(guān)的,并 且如此,在也允許每個(gè)數(shù)據(jù)儲(chǔ)存器獨(dú)立存儲(chǔ)數(shù)據(jù)的同時(shí)提供它們正在訪問的這兩個(gè)數(shù)據(jù)儲(chǔ) 存器之間的某種關(guān)聯(lián)可能是有利的。因此,本發(fā)明提供對(duì)遺漏和至少一個(gè)另外的條件進(jìn)行 響應(yīng)而通過重寫所選項(xiàng)目來用所檢索的項(xiàng)目更新這兩個(gè)儲(chǔ)存器的更新電路。基于實(shí)際數(shù)據(jù) 儲(chǔ)存器的訪問歷史來選擇這些項(xiàng)目,并且因此,可以在每個(gè)儲(chǔ)存器中獨(dú)立地重寫最近未被 訪問的項(xiàng)目。因此,如果第一訪問請(qǐng)求之一訪問第二訪問請(qǐng)求將不需要的項(xiàng)目,則此項(xiàng)目將 被存儲(chǔ)在第二數(shù)據(jù)儲(chǔ)存器中但不會(huì)被使用,并且如此,更新電路不久將選擇它以進(jìn)行重寫。 然而,如果這兩個(gè)訪問請(qǐng)求正在訪問共同的項(xiàng)目,則至少某些第二訪問請(qǐng)求將需要被第一 訪問請(qǐng)求訪問的項(xiàng)目,并且該項(xiàng)目在第二數(shù)據(jù)儲(chǔ)存器中的存儲(chǔ)將已提供某些益處。
在某些實(shí)施例中,所述更新電路被配置為識(shí)別產(chǎn)生所述遺漏的所述項(xiàng)目是否被存 儲(chǔ)在所述第二儲(chǔ)存器中,所述至少一個(gè)另外的條件是檢測(cè)到所述項(xiàng)目未被存儲(chǔ)在所述第二 儲(chǔ)存器中。更新電路可以識(shí)別在第一儲(chǔ)存器中產(chǎn)生遺漏的項(xiàng)目是否被存儲(chǔ)在第二儲(chǔ)存器中。 如果其未被存儲(chǔ)在第二儲(chǔ)存器中,則這是所述至少一個(gè)另外的條件,并且意味著所述更新 電路將通過重寫所選項(xiàng)目用所檢索的項(xiàng)目來更新第一和第二儲(chǔ)存器兩者,所述項(xiàng)目是響應(yīng) 于其訪問歷史而選擇的。在其它實(shí)施例中,所述更新電路響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的所述項(xiàng)目存在于所 述第二儲(chǔ)存器中而從所述第二儲(chǔ)存器檢索所述項(xiàng)目并通過重寫由所述更新電路選擇的所 述項(xiàng)目來將所述項(xiàng)目復(fù)制到所述第一儲(chǔ)存器。如果產(chǎn)生遺漏的項(xiàng)目存在于第二儲(chǔ)存器中,則在某些實(shí)施例中,從第二儲(chǔ)存器檢 索此項(xiàng)目并將其復(fù)制到第一儲(chǔ)存器中的由更新電路所選的位置中。這在從另外的儲(chǔ)存器取 回該項(xiàng)目將需要許多時(shí)鐘周期的情況下可能是有利的。這可以在所述另外的儲(chǔ)存器是諸如 片外存儲(chǔ)器的難以訪問的儲(chǔ)存器的情況下發(fā)生。在其它實(shí)施例中,所述更新電路響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的所述項(xiàng)目存在于所 述第二儲(chǔ)存器中而選擇所述項(xiàng)目以用于重寫并根據(jù)所述第一儲(chǔ)存器的項(xiàng)目訪問歷史選擇 所述儲(chǔ)存器中用于重寫的項(xiàng)目,所述更新電路被配置為用從所述另外的儲(chǔ)存器檢索的所述 項(xiàng)目重寫所述所選項(xiàng)目。如果該另外的儲(chǔ)存器不是遠(yuǎn)程且難以訪問的,則如在其它情況下執(zhí)行的那樣僅僅 從所述另外的儲(chǔ)存器取回?cái)?shù)據(jù)項(xiàng)目并在第二儲(chǔ)存器中用取回的值來重寫此項(xiàng)目且將其寫 入第一儲(chǔ)存器中的由更新電路基于訪問歷史所選的位置中可能更簡(jiǎn)單。雖然所取回的值應(yīng) 與存儲(chǔ)在第二儲(chǔ)存器中的值相同,但重寫該值可能是有利的,因?yàn)檫@將保證這兩個(gè)數(shù)據(jù)儲(chǔ) 存器永不包含用于相同項(xiàng)目的不同轉(zhuǎn)換或?qū)傩?。雖然軟件應(yīng)永遠(yuǎn)阻止這種情況發(fā)生,但在 這種情況下可以通過始終重寫該條目來減少確認(rèn)工作。
在其它實(shí)施例中,在第二儲(chǔ)存器中不重寫此條目,僅僅使其保持原樣且沒有項(xiàng)目 被寫入第二儲(chǔ)存器,并且所檢索的項(xiàng)目被寫入第一數(shù)據(jù)儲(chǔ)存器中的由更新電路所選的地點(diǎn) 處。在某些實(shí)施例中,從所述另外的儲(chǔ)存器檢索的所述項(xiàng)目具有表示與之相關(guān)的所述 數(shù)據(jù)的屬性的屬性數(shù)據(jù),所述至少一個(gè)另外的條件包括所述屬性數(shù)據(jù),所述更新電路響應(yīng) 于所述屬性數(shù)據(jù)不具有預(yù)定值而用所述檢索的項(xiàng)目更新所述第二儲(chǔ)存器和所述第一儲(chǔ)存 器以及響應(yīng)于所述屬性數(shù)據(jù)具有所述預(yù)定值而不用所述檢索的項(xiàng)目更新所述第二儲(chǔ)存器 且用所述檢索的項(xiàng)目更新所述第一儲(chǔ)存器。在某些情況下,所存儲(chǔ)的項(xiàng)目可以具有與之相關(guān)的屬性信息。在判定是否要更新 項(xiàng)目時(shí)使用此信息可能是有利的。例如,如果所述第一訪問請(qǐng)求是加載(存儲(chǔ)器讀)請(qǐng)求且所述第二訪問請(qǐng)求是存 儲(chǔ)(存儲(chǔ)器寫)請(qǐng)求,并且所述預(yù)定值是指示與所述值相關(guān)的所述數(shù)據(jù)是只讀數(shù)據(jù)的值,則 在這種情況下,很明顯,絕不會(huì)在存儲(chǔ)(存儲(chǔ)器寫)流水線中使用所檢索的項(xiàng)目,并且如此, 不應(yīng)將其寫入在此流水線中的第二儲(chǔ)存器。因此,使用此進(jìn)一步的信息可以通過不使用已 知永不需要的項(xiàng)目重寫第二儲(chǔ)存器中可能需要的項(xiàng)目來提高設(shè)備的效率。在某些實(shí)施例中,所述兩個(gè)儲(chǔ)存器包括兩個(gè)1級(jí)(level 1)高速緩存且所述存儲(chǔ) 裝置還包括所述另外的儲(chǔ)存器,所述另外的儲(chǔ)存器包括2級(jí)高速緩存。本發(fā)明的實(shí)施例對(duì)高速緩存特別有用,高速緩存是訪問容易且廉價(jià)并且由于其面 積和功率開銷而只能存儲(chǔ)少量數(shù)據(jù)的數(shù)據(jù)儲(chǔ)存器。1級(jí)高速緩存訪問起來最容易且最快,2 級(jí)高速緩存通常較大且要花費(fèi)更多的時(shí)間進(jìn)行訪問。因此,可能有利的是使作為1級(jí)高速 緩存的儲(chǔ)存器1和儲(chǔ)存器2存儲(chǔ)數(shù)據(jù)的子集并且使另外的數(shù)據(jù)項(xiàng)目存儲(chǔ)在2級(jí)或L2高速 緩存中。在不具有用于所述另外的數(shù)據(jù)的L2高速緩存的其它實(shí)施例中,所述另外的數(shù)據(jù)可 以存儲(chǔ)在存儲(chǔ)器中,并且將需要存儲(chǔ)器管理單元來訪問該數(shù)據(jù)。在某些實(shí)施例中,所述更新電路包括用于存儲(chǔ)所述兩個(gè)儲(chǔ)存器中的每一個(gè)的訪問 歷史的緩沖器且所述更新電路被配置為選擇最近未被訪問的項(xiàng)目以進(jìn)行重寫。當(dāng)選擇要重寫哪個(gè)項(xiàng)目時(shí),更新電路依賴于該儲(chǔ)存器的訪問歷史。因此,在某些實(shí) 施例中,其包括存儲(chǔ)這兩個(gè)儲(chǔ)存器中的每一個(gè)的訪問歷史的緩沖器且更新電路使用此數(shù)據(jù) 來選擇最近未被訪問的項(xiàng)目進(jìn)行重寫。通過此方式,一段時(shí)間未被使用的項(xiàng)目被重寫。因 此,如果被寫入儲(chǔ)存器的項(xiàng)目是另一儲(chǔ)存器所需的且在該儲(chǔ)存器中不被使用的項(xiàng)目,則其 將很快被重寫,因?yàn)槠湓L問歷史指示其未被訪問。在某些實(shí)施例中,所述訪問請(qǐng)求使用虛擬地址來識(shí)別所述項(xiàng)目的存儲(chǔ)位置,并且 所述兩個(gè)儲(chǔ)存器包括每個(gè)都存儲(chǔ)有虛擬地址到物理地址的多個(gè)轉(zhuǎn)換的轉(zhuǎn)換旁視緩沖器。本發(fā)明的實(shí)施例對(duì)轉(zhuǎn)換旁視緩沖器特別有用。如引言中所述,轉(zhuǎn)換旁視緩沖器用 來將由處理器輸出的虛擬地址轉(zhuǎn)換成識(shí)別高速緩存和存儲(chǔ)器中的存儲(chǔ)位置的物理地址。這 些轉(zhuǎn)換旁視緩沖器通常是高速緩存并存儲(chǔ)轉(zhuǎn)換信息的子集。重要的是在其中盡可能少地發(fā) 生遺漏,因?yàn)槠湓谔幚頃r(shí)間方面產(chǎn)生大的開銷。本發(fā)明的實(shí)施例提供一種提供兩個(gè)旁視緩 沖器的方式,所述兩個(gè)旁視緩沖器能夠存儲(chǔ)獨(dú)立的項(xiàng)目但是相鏈接,使得如果它們之一需 要項(xiàng)目,該項(xiàng)目也被寫入另一個(gè)中。這意味著在處理器例如在相對(duì)接近的時(shí)間讀取并寫入 相同頁(yè)面的情況下,則對(duì)頁(yè)面的第一加載將保證其被存儲(chǔ)在位于準(zhǔn)備好向該頁(yè)面寫入的寫
7路徑上的數(shù)據(jù)儲(chǔ)存器中。由于所選擇的要重寫的項(xiàng)目是基于它們的訪問歷史而針對(duì)每個(gè)儲(chǔ) 存器獨(dú)立地選擇的,所以如果項(xiàng)目被寫入數(shù)據(jù)儲(chǔ)存器中不需要的那一個(gè),則其將很快被重寫。應(yīng)注意的是所存儲(chǔ)的項(xiàng)目可以僅僅是虛擬地址到物理地址的轉(zhuǎn)換,或者它們可以 替換地包括附加信息,諸如與存儲(chǔ)在物理地址處的項(xiàng)目的屬性相關(guān)的屬性數(shù)據(jù)。在某些實(shí)施例中,所述存儲(chǔ)裝置包括至少一個(gè)附加儲(chǔ)存器,所述存儲(chǔ)裝置被配置 為在與所述第一和第二訪問請(qǐng)求相同的時(shí)鐘周期內(nèi)接收至少一個(gè)附加訪問請(qǐng)求,所述至少 一個(gè)附加訪問請(qǐng)求被路由到所述至少一個(gè)附加儲(chǔ)存器,所述更新電路被配置為根據(jù)所述至 少一個(gè)附加儲(chǔ)存器的訪問歷史來選擇要在所述至少一個(gè)附加儲(chǔ)存器中重寫的項(xiàng)目,所述更 新電路響應(yīng)于所述遺漏檢測(cè)電路在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述遺漏并響應(yīng)于 所述至少一個(gè)另外的條件而通過重寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器檢索的所述項(xiàng) 目更新所有所述儲(chǔ)存器。雖然已針對(duì)單個(gè)周期中的兩個(gè)訪問請(qǐng)求和兩個(gè)數(shù)據(jù)儲(chǔ)存器討論了本發(fā)明的實(shí)施 例,但技術(shù)人員應(yīng)清楚,在使用附加數(shù)據(jù)儲(chǔ)存器的情況下,其同樣很好地適用于相同周期中 更多的訪問請(qǐng)求。在此類情況下,如果所述另外的條件也滿足的話,則任何數(shù)據(jù)儲(chǔ)存器中的 任何遺漏都將導(dǎo)致所檢索的數(shù)據(jù)被存儲(chǔ)在所有數(shù)據(jù)儲(chǔ)存器中。本發(fā)明的第二方面提供一種包括用于處理數(shù)據(jù)的處理器和根據(jù)本發(fā)明的第一方 面的存儲(chǔ)裝置的數(shù)據(jù)處理裝置,其中,所述處理器被配置為在相同時(shí)鐘周期期間生成數(shù)據(jù) 加載請(qǐng)求和數(shù)據(jù)存儲(chǔ)請(qǐng)求。在兩個(gè)訪問請(qǐng)求是加載請(qǐng)求和存儲(chǔ)請(qǐng)求的情況下,具有相鏈接的儲(chǔ)存器是特別有 利的,因?yàn)樘幚砥鞒3?梢栽谙鄬?duì)接近的時(shí)間對(duì)相同項(xiàng)目進(jìn)行讀和寫。在這種情況下,如 果儲(chǔ)存器未被鏈接,則對(duì)項(xiàng)目的第一加載使得處理器停止,同時(shí)處理遺漏,并且在短時(shí)間之 后,當(dāng)發(fā)生對(duì)相同項(xiàng)目的第一存儲(chǔ)時(shí),處理器將再次停止。通過將在加載期間檢索的數(shù)據(jù)存 儲(chǔ)在用于寫流水線的數(shù)據(jù)儲(chǔ)存器中,將避免第二次停止。在某些實(shí)施例中,所述數(shù)據(jù)處理裝置包括所述另外的儲(chǔ)存器,所述另外的儲(chǔ)存器 被配置為存儲(chǔ)與每個(gè)項(xiàng)目相關(guān)聯(lián)的屬性數(shù)據(jù)。可以將項(xiàng)目存儲(chǔ)在另外的儲(chǔ)存器中的由物理地址識(shí)別的位置中。這些項(xiàng)目可以是 例如將由處理器處理的數(shù)據(jù)項(xiàng)目或用于控制處理器的指令。這些物理地址可以具有與之相 關(guān)的屬性數(shù)據(jù),此屬性數(shù)據(jù)提供被存儲(chǔ)在該地址中的項(xiàng)目的屬性的指示。這些屬性可以包 括諸如項(xiàng)目是否可高速緩存、和/或其是否是只讀或只寫項(xiàng)目等事項(xiàng)。本發(fā)明的第三方面提供一種更新存儲(chǔ)在第一儲(chǔ)存器和第二儲(chǔ)存器中的項(xiàng)目的方 法,包括步驟在相同時(shí)鐘周期中接收用于訪問所述第一儲(chǔ)存器中的第一項(xiàng)目的第一訪問 請(qǐng)求和用于訪問第二儲(chǔ)存器中的第二項(xiàng)目的第二訪問請(qǐng)求;確定任一個(gè)訪問請(qǐng)求是否產(chǎn)生 其中所請(qǐng)求的項(xiàng)目未被存儲(chǔ)在所述被訪問儲(chǔ)存器中的遺漏;從另外的儲(chǔ)存器中檢索其訪問 產(chǎn)生遺漏的項(xiàng)目;根據(jù)所述兩個(gè)儲(chǔ)存器中的相應(yīng)一個(gè)的訪問歷史來選擇要在所述相應(yīng)儲(chǔ)存 器中重寫的項(xiàng)目;響應(yīng)于在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述遺漏并響應(yīng)于至少一個(gè) 另外的條件,通過重寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器檢索的所述項(xiàng)目更新所述兩個(gè) 儲(chǔ)存器二者。本發(fā)明的第四方面提供一種用于存儲(chǔ)多個(gè)項(xiàng)目的存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備被配置為在相同時(shí)鐘周期內(nèi)接收用于訪問相應(yīng)項(xiàng)目的第一訪問請(qǐng)求和第二訪問請(qǐng)求,所述存儲(chǔ)設(shè) 備包括兩個(gè)儲(chǔ)存器,每個(gè)儲(chǔ)存器用于存儲(chǔ)所述多個(gè)項(xiàng)目的子集,所述第一訪問請(qǐng)求被路由 到第一儲(chǔ)存器且所述第二訪問請(qǐng)求被路由到第二儲(chǔ)存器;遺漏檢測(cè)設(shè)備,其用于檢測(cè)其中 所請(qǐng)求的項(xiàng)目未被存儲(chǔ)在所述被訪問儲(chǔ)存器中的遺漏;項(xiàng)目檢索設(shè)備,其用于從另外的儲(chǔ) 存器中檢索其訪問產(chǎn)生遺漏的項(xiàng)目;更新設(shè)備,其用于根據(jù)所述兩個(gè)儲(chǔ)存器中的相應(yīng)一個(gè) 的訪問歷史選擇要在所述相應(yīng)儲(chǔ)存器中重寫的項(xiàng)目,所述更新設(shè)備響應(yīng)于所述遺漏檢測(cè)設(shè) 備在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述遺漏并響應(yīng)于至少一個(gè)另外的條件而通過重 寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器中檢索的所述項(xiàng)目來更新所述兩個(gè)儲(chǔ)存器二者。根據(jù)結(jié)合附圖來閱讀的說明性實(shí)施例的以下詳細(xì)說明,將清楚本發(fā)明的以上及其 它目的、特征和優(yōu)點(diǎn)。
圖1示出根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)存儲(chǔ)裝置;圖2示出根據(jù)本發(fā)明的實(shí)施例的具有使用TLB訪問的高速緩存的數(shù)據(jù)處理裝置;圖3示出其中在單個(gè)時(shí)鐘周期中接收多個(gè)訪問請(qǐng)求的存儲(chǔ)裝置;以及圖4示出舉例說明根據(jù)本發(fā)明的實(shí)施例的方法的流程圖。
具體實(shí)施例方式圖1示出根據(jù)本發(fā)明的實(shí)施例的存儲(chǔ)裝置10。此存儲(chǔ)裝置包括兩個(gè)數(shù)據(jù)儲(chǔ)存器 12和14,數(shù)據(jù)儲(chǔ)存器12和14包括多個(gè)數(shù)據(jù)項(xiàng)目15及其對(duì)應(yīng)地址16。這兩個(gè)數(shù)據(jù)儲(chǔ)存器 被并行布置且每個(gè)在相同的時(shí)鐘周期期間接收訪問請(qǐng)求。這些訪問請(qǐng)求是對(duì)于數(shù)據(jù)的訪問 請(qǐng)求并使用地址來指定此數(shù)據(jù)的存儲(chǔ)位置。因此,將指定的地址與地址16相比較,并且如 果匹配的話,則將數(shù)據(jù)輸出。除了輸出數(shù)據(jù)之外,指示已存在對(duì)此存儲(chǔ)位置的訪問的命中數(shù)據(jù)也被發(fā)送到電路 20。電路20包括用于每個(gè)數(shù)據(jù)儲(chǔ)存器12和14的兩個(gè)訪問歷史緩沖器22和24。這些存儲(chǔ) 數(shù)據(jù)儲(chǔ)存器12和14的訪問歷史。如果訪問請(qǐng)求中的一者或兩者在訪問的數(shù)據(jù)儲(chǔ)存器12、 14中未發(fā)現(xiàn)所需的數(shù)據(jù),則使用遺漏檢測(cè)器30檢測(cè)到此。然后,遺漏檢測(cè)器30在另一數(shù)據(jù) 儲(chǔ)存器14、12中尋找遺漏的項(xiàng)目。然后其用信號(hào)通知電路20內(nèi)的更新邏輯在相應(yīng)數(shù)據(jù)儲(chǔ) 存器中已存在遺漏,而且其還用信號(hào)通知遺漏項(xiàng)目是否在另一數(shù)據(jù)儲(chǔ)存器中并且如果在的 話用信號(hào)通知其位置。然后,更新電路用信號(hào)通知取回電路28取回遺漏的數(shù)據(jù)項(xiàng)目,并且取回電路28然 后向遠(yuǎn)程位置處的附加數(shù)據(jù)儲(chǔ)存器發(fā)送信號(hào)并檢索所需的數(shù)據(jù)項(xiàng)目。在本實(shí)施例中,數(shù)據(jù)項(xiàng)目被存儲(chǔ)在該遠(yuǎn)程數(shù)據(jù)儲(chǔ)存器中的由地址識(shí)別的位置中。 此存儲(chǔ)位置具有與之相關(guān)的屬性數(shù)據(jù),指示存儲(chǔ)在此地址處的項(xiàng)目的屬性??赡芘c數(shù)據(jù)項(xiàng) 目相關(guān)的屬性的示例是許可,諸如讀、寫、或不可訪問,這些許可可能具有進(jìn)一步的限制,諸 如允許誰訪問數(shù)據(jù)項(xiàng)目,例如訪問可以局限于用戶或管理員。另外的屬性可以包括諸如可 高速緩存、從不執(zhí)行或設(shè)備指示符等事項(xiàng)。因此,這些屬性提供關(guān)于數(shù)據(jù)項(xiàng)目的進(jìn)一步信息 且可以被更新邏輯用來確定將數(shù)據(jù)項(xiàng)目存儲(chǔ)在特定數(shù)據(jù)儲(chǔ)存器中是否適合。此屬性數(shù)據(jù)可 以被檢索并與數(shù)據(jù)項(xiàng)目一起存儲(chǔ)在數(shù)據(jù)儲(chǔ)存器中。
因此,更新邏輯26使用發(fā)生遺漏的數(shù)據(jù)儲(chǔ)存器的訪問歷史確定最近未被訪問的 存儲(chǔ)位置從而在該數(shù)據(jù)儲(chǔ)存器中選擇將存儲(chǔ)此數(shù)據(jù)項(xiàng)目的位置。然后,更新電路26查看屬 性數(shù)據(jù)以了解其是否指示此數(shù)據(jù)項(xiàng)目在另一數(shù)據(jù)儲(chǔ)存器中的存儲(chǔ)是否很可能是有用的。例 如,如果數(shù)據(jù)項(xiàng)目的屬性指示該數(shù)據(jù)項(xiàng)目是只讀數(shù)據(jù),則如果另一數(shù)據(jù)儲(chǔ)存器是寫通道上 的數(shù)據(jù)儲(chǔ)存器,則最好不用此只讀數(shù)據(jù)項(xiàng)目來重寫存儲(chǔ)在該數(shù)據(jù)儲(chǔ)存器中的項(xiàng)目。如果屬 性數(shù)據(jù)不阻止數(shù)據(jù)項(xiàng)目到另一數(shù)據(jù)儲(chǔ)存器的寫入,則更新電路26選擇將向其寫入該數(shù)據(jù) 項(xiàng)目的存儲(chǔ)位置。首先,其將查看遺漏檢測(cè)器向其發(fā)送的數(shù)據(jù),以了解該數(shù)據(jù)項(xiàng)目之前是否 被存儲(chǔ)在該數(shù)據(jù)儲(chǔ)存器中。如果是,則其將選擇此位置寫入該數(shù)據(jù)。如果不是,則其將根據(jù) 存儲(chǔ)在訪問歷史緩沖器中的訪問歷史來選擇存儲(chǔ)位置。應(yīng)注意的是雖然在本實(shí)施例中,如 果被遺漏的數(shù)據(jù)項(xiàng)目在另一數(shù)據(jù)儲(chǔ)存器中,則其被重寫,但在其它實(shí)施例中,可能的是在該 數(shù)據(jù)儲(chǔ)存器中僅僅將此數(shù)據(jù)保持原樣,并且不將此數(shù)據(jù)項(xiàng)目寫入該數(shù)據(jù)儲(chǔ)存器。很明顯,不 將其寫入數(shù)據(jù)儲(chǔ)存器具有某些節(jié)能優(yōu)點(diǎn),而將其寫入數(shù)據(jù)儲(chǔ)存器將具有這樣的優(yōu)點(diǎn),即如 果出于某種原因,該數(shù)據(jù)項(xiàng)目的副本已以某種方式改變,則最新的值被寫入。圖2示出根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)處理裝置100。其包括處理器110和作為物 理尋址高速緩存的高速緩存112和114。應(yīng)注意的是雖然這些被示為兩個(gè)高速緩存,但在某 些實(shí)施例中它們可以是具有讀和寫端口的單個(gè)高速緩存。該處理器具有并行地操作的加載 和存儲(chǔ)流水線,因此,存在在相同時(shí)鐘周期期間發(fā)送的加載請(qǐng)求和存儲(chǔ)請(qǐng)求。這些請(qǐng)求使用 虛擬地址,并且因此,為了從高速緩存訪問數(shù)據(jù)項(xiàng)目,需要將其轉(zhuǎn)換成物理地址。這使用TLB 122和124來執(zhí)行。因此,同時(shí)向相應(yīng)TLB發(fā)送加載請(qǐng)求和存儲(chǔ)請(qǐng)求并確定指定的地址是否 被存儲(chǔ)在其中。如果不存儲(chǔ)在其中,則使用遺漏檢測(cè)器30檢測(cè)到此且遺漏檢測(cè)器30查看 另一 TLB以了解該項(xiàng)目是否被存儲(chǔ)在其中。然而,如果存在指定的地址,則此命中信息被發(fā) 送到電路20中的與每個(gè)TLB相關(guān)的訪問歷史緩沖器。同時(shí),根據(jù)虛擬地址找到的物理地址 被發(fā)送到高速緩存。如果TLB中的一者或兩者產(chǎn)生遺漏,則更新邏輯26根據(jù)從遺漏檢測(cè)器接收到的信 息來確定所需項(xiàng)目是否在另一 TLB中。從存儲(chǔ)附加地址轉(zhuǎn)換信息的L2高速緩存126取回 該項(xiàng)目。這返回所需信息且更新邏輯26然后根據(jù)遺漏檢測(cè)器30來確定該項(xiàng)目是否在另一 TLB中。如果是,則不更新此TLB,并且用所檢索的項(xiàng)目更新產(chǎn)生遺漏的TLB,其中根據(jù)訪問 歷史來選擇用于重寫的項(xiàng)目。如果不在,則更新邏輯根據(jù)相應(yīng)訪問歷史緩沖器來確定應(yīng)將 此數(shù)據(jù)項(xiàng)目存儲(chǔ)在TLB 122和124兩者中的位置。其選擇最近用得最少的項(xiàng)目來重寫。通 過此方式,雖然數(shù)據(jù)項(xiàng)目被寫入每個(gè)TLB中,但由于基于其訪問歷史來選擇要重寫的不同 數(shù)據(jù)項(xiàng)目,所以這兩個(gè)TLB不會(huì)同時(shí)包含相同的數(shù)據(jù)項(xiàng)目。然而,由于TLB之一中的遺漏將 使得地址轉(zhuǎn)換被存儲(chǔ)在另一 TLB中,所以如果處理器像時(shí)常發(fā)生的那樣對(duì)相同頁(yè)表進(jìn)行讀 和寫,則響應(yīng)于遺漏的加載流水線中的停止之后將不會(huì)是存儲(chǔ)流水線中的停止,因?yàn)樗?頁(yè)表將已被寫入存儲(chǔ)流水線上的TLB中。如果它們正在訪問不同的頁(yè)表,則響應(yīng)于另一 TLB 中的遺漏而存儲(chǔ)在一個(gè)TLB中的信息將不會(huì)被使用且很快被重寫,因?yàn)橹貙懰惴ㄊ褂迷L問 歷史來選擇要重寫的項(xiàng)目。圖3示出根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)存儲(chǔ)裝置。在此裝置中,存在對(duì)三個(gè)并行數(shù) 據(jù)儲(chǔ)存器222、224和226并行地發(fā)生的三個(gè)數(shù)據(jù)訪問請(qǐng)求。以類似于前一電路的方式,遺 漏檢測(cè)器30檢測(cè)在任何數(shù)據(jù)儲(chǔ)存器中是否存在遺漏,并且如果存在,則確定該項(xiàng)目是否存在于任何其它數(shù)據(jù)儲(chǔ)存器中。然后,其將此信息發(fā)送到更新邏輯26。如果不存在遺漏,則存 在命中的信息被發(fā)送到電路20,在那里,其被存儲(chǔ)在與相應(yīng)數(shù)據(jù)儲(chǔ)存器相關(guān)的歷史緩沖器 20中。然后,更新邏輯26根據(jù)來自遺漏電路30的信息來確定在任何其它數(shù)據(jù)儲(chǔ)存器中是 否存在所需數(shù)據(jù)項(xiàng)目。如果存在,則其將該數(shù)據(jù)從該數(shù)據(jù)儲(chǔ)存器復(fù)制到其它數(shù)據(jù)儲(chǔ)存器并 根據(jù)相應(yīng)歷史緩沖器22中的信息來選擇要在這些數(shù)據(jù)儲(chǔ)存器中重寫的位置。如果數(shù)據(jù)項(xiàng) 目未存在于任何其它數(shù)據(jù)儲(chǔ)存器中,則在本示例中其從存儲(chǔ)器管理單元230取回?cái)?shù)據(jù)。應(yīng) 注意的是在本實(shí)施例中,由于另外的數(shù)據(jù)儲(chǔ)存器不是2級(jí)高速緩存,而是實(shí)際上由存儲(chǔ)器 管理單元管理的實(shí)體,于是檢索數(shù)據(jù)會(huì)花費(fèi)相當(dāng)長(zhǎng)的額外時(shí)間。因此,如果未存在于數(shù)據(jù) 儲(chǔ)存器之一中的數(shù)據(jù)項(xiàng)目存在于其它儲(chǔ)存器之一中,則將其從此數(shù)據(jù)儲(chǔ)存器復(fù)制到其它數(shù) 據(jù)儲(chǔ)存器會(huì)是有利的。如果數(shù)據(jù)項(xiàng)目未存在于任何數(shù)據(jù)儲(chǔ)存器中,則使用存儲(chǔ)器管理單元 230來取回它并將其寫入每個(gè)數(shù)據(jù)儲(chǔ)存器中,根據(jù)從相應(yīng)歷史緩沖器22確定的訪問歷史來 選擇每個(gè)數(shù)據(jù)儲(chǔ)存器中要重寫的項(xiàng)目。圖4示出舉例說明根據(jù)本發(fā)明的實(shí)施例的方法的流程圖。最初,接收多個(gè)訪問請(qǐng) 求并確定所請(qǐng)求的項(xiàng)目是否存在于對(duì)應(yīng)數(shù)據(jù)儲(chǔ)存器中。如果是,則更新該數(shù)據(jù)儲(chǔ)存器的訪 問歷史,并確定是否已執(zhí)行所有所請(qǐng)求的訪問。如果其不在對(duì)應(yīng)數(shù)據(jù)儲(chǔ)存器中,則確定所請(qǐng)求的項(xiàng)目是否在任何其它數(shù)據(jù)儲(chǔ)存器 中。如果是,則將此項(xiàng)目選擇為該特定數(shù)據(jù)儲(chǔ)存器中要重寫的項(xiàng)目。然后從另外的數(shù)據(jù)儲(chǔ) 存器檢索該項(xiàng)目。如果在先前的步驟中尚未對(duì)其選擇,則根據(jù)它們的訪問歷史來選擇每個(gè) 數(shù)據(jù)儲(chǔ)存器中的要重寫的項(xiàng)目。然后重寫所選項(xiàng)目并確定是否所有數(shù)據(jù)儲(chǔ)存器已被更新。 如果它們已被更新,則確定是否已執(zhí)行了所有訪問請(qǐng)求。如果沒有,則返回確定所請(qǐng)求的項(xiàng) 目是在對(duì)應(yīng)數(shù)據(jù)儲(chǔ)存器中。如果它們已被全部執(zhí)行,則用于更新電路的過程結(jié)束。這僅僅是執(zhí)行數(shù)據(jù)訪問的一種方法,并且因當(dāng)清楚的是,如前所述,如果所請(qǐng)求的 項(xiàng)目在其它數(shù)據(jù)儲(chǔ)存器之一中,則不是將其選為要重寫的項(xiàng)目,而是可以僅僅將其留下且 不重寫該數(shù)據(jù)儲(chǔ)存器中的項(xiàng)目,或者可替換地可以將其從該數(shù)據(jù)儲(chǔ)存器復(fù)制到其它數(shù)據(jù)儲(chǔ) 存器,而不是從另外的數(shù)據(jù)儲(chǔ)存器進(jìn)行檢索。雖然在本文中已參照附圖詳細(xì)地描述了本發(fā)明的說明性實(shí)施例,但應(yīng)理解的是本 發(fā)明并不僅限于那些精確的實(shí)施例,并且在不脫離所附權(quán)利要求定義的本發(fā)明的范圍和精 神的情況下,本領(lǐng)域的技術(shù)人員可以對(duì)其進(jìn)行各種變更和修改。例如,在不脫離本發(fā)明的范 圍的情況下可以進(jìn)行以下從屬權(quán)利要求的特征與獨(dú)立權(quán)利要求的特征的各種組合。
權(quán)利要求
一種用于存儲(chǔ)多個(gè)項(xiàng)目的存儲(chǔ)裝置,所述存儲(chǔ)裝置被配置為在相同時(shí)鐘周期內(nèi)接收用于訪問相應(yīng)項(xiàng)目的第一訪問請(qǐng)求和第二訪問請(qǐng)求,所述存儲(chǔ)裝置包括兩個(gè)儲(chǔ)存器,每個(gè)儲(chǔ)存器用于存儲(chǔ)所述多個(gè)項(xiàng)目的子集,所述第一訪問請(qǐng)求被路由到第一儲(chǔ)存器且所述第二訪問請(qǐng)求被路由到第二儲(chǔ)存器;遺漏檢測(cè)電路,其用于檢測(cè)其中所請(qǐng)求的項(xiàng)目未被存儲(chǔ)在所述被訪問儲(chǔ)存器中的遺漏;項(xiàng)目檢索電路,其用于從另外的儲(chǔ)存器中檢索其訪問產(chǎn)生遺漏的項(xiàng)目;更新電路,其用于根據(jù)所述兩個(gè)儲(chǔ)存器中的相應(yīng)一個(gè)的訪問歷史選擇要在所述相應(yīng)儲(chǔ)存器中重寫的項(xiàng)目,所述更新電路響應(yīng)于所述遺漏檢測(cè)電路在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述遺漏并響應(yīng)于至少一個(gè)另外的條件而通過重寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器中檢索的所述項(xiàng)目來更新所述兩個(gè)儲(chǔ)存器二者。
2.如權(quán)利要求1所述的存儲(chǔ)裝置,其中,所述更新電路被配置為識(shí)別產(chǎn)生所述遺漏的 所述項(xiàng)目是否被存儲(chǔ)在所述第二儲(chǔ)存器中,所述至少一個(gè)另外的條件是檢測(cè)到所述項(xiàng)目未 被存儲(chǔ)在所述第二儲(chǔ)存器中
3.如權(quán)利要求2所述的存儲(chǔ)裝置,其中,所述更新電路響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的 所述項(xiàng)目存在于所述第二儲(chǔ)存器中而從所述第二儲(chǔ)存器檢索所述項(xiàng)目并通過重寫由所述 更新電路所選的所述項(xiàng)目來將所述項(xiàng)目復(fù)制到所述第一儲(chǔ)存器。
4.如權(quán)利要求2所述的存儲(chǔ)裝置,其中,所述更新電路響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的 所述項(xiàng)目存在于所述第二儲(chǔ)存器中而選擇所述項(xiàng)目以用于重寫并根據(jù)所述第一儲(chǔ)存器的 項(xiàng)目訪問歷史選擇所述儲(chǔ)存器中用于重寫的項(xiàng)目,所述更新電路被配置為用從所述另外的 儲(chǔ)存器檢索的所述項(xiàng)目重寫所述所選項(xiàng)目。
5.如權(quán)利要求2所述的存儲(chǔ)裝置,其中,所述更新電路響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的 所述項(xiàng)目存在于所述第二儲(chǔ)存器中而不重寫所述第二儲(chǔ)存器中的任何項(xiàng)目并根據(jù)所述第 一儲(chǔ)存器的項(xiàng)目訪問歷史來選擇所述儲(chǔ)存器中用于重寫的項(xiàng)目且重寫所述所選項(xiàng)目。
6.如權(quán)利要求1所述的存儲(chǔ)裝置,其中,從所述另外的儲(chǔ)存器檢索的所述項(xiàng)目具有表 示與之相關(guān)的所述數(shù)據(jù)的屬性的屬性數(shù)據(jù),所述至少一個(gè)另外的條件包括所述屬性數(shù)據(jù), 所述更新電路響應(yīng)于所述屬性數(shù)據(jù)不具有預(yù)定值而用所述檢索的項(xiàng)目更新所述第二儲(chǔ)存 器和所述第一儲(chǔ)存器,以及響應(yīng)于所述屬性數(shù)據(jù)具有所述預(yù)定值而不用所述檢索的項(xiàng)目更 新所述第二儲(chǔ)存器且用所述檢索的項(xiàng)目更新所述第一儲(chǔ)存器。
7.如權(quán)利要求6所述的存儲(chǔ)裝置,其中,所述第一訪問請(qǐng)求是存儲(chǔ)請(qǐng)求且所述第二訪 問請(qǐng)求是加載請(qǐng)求,所述預(yù)定值是指示與所述值相關(guān)的所述數(shù)據(jù)是只讀數(shù)據(jù)的值。
8.如權(quán)利要求1所述的存儲(chǔ)裝置,所述兩個(gè)儲(chǔ)存器包括兩個(gè)一級(jí)高速緩存且所述存儲(chǔ) 裝置還包括所述另外的儲(chǔ)存器,所述另外的儲(chǔ)存器包括二級(jí)高速緩存。
9.如權(quán)利要求1所述的存儲(chǔ)裝置,其中,所述更新電路包括用于存儲(chǔ)所述兩個(gè)儲(chǔ)存器 中的每一個(gè)的訪問歷史的緩沖器且所述更新電路被配置為選擇最近未被訪問的項(xiàng)目以進(jìn) 行重寫。
10.如權(quán)利要求1所述的存儲(chǔ)裝置,其中,所述訪問請(qǐng)求使用虛擬地址來識(shí)別所述項(xiàng)目 的存儲(chǔ)位置,并且所述兩個(gè)儲(chǔ)存器包括每個(gè)都存儲(chǔ)有虛擬地址到物理地址的多個(gè)轉(zhuǎn)換的轉(zhuǎn) 換旁視緩沖器。
11.如權(quán)利要求1所述的存儲(chǔ)裝置,所述存儲(chǔ)裝置包括至少一個(gè)附加儲(chǔ)存器,所述存儲(chǔ) 裝置被配置為在與所述第一和第二訪問請(qǐng)求相同的時(shí)鐘周期內(nèi)接收至少一個(gè)附加訪問請(qǐng) 求,所述至少一個(gè)附加訪問請(qǐng)求被路由到所述至少一個(gè)附加儲(chǔ)存器,所述更新電路被配置 為根據(jù)所述至少一個(gè)附加儲(chǔ)存器的訪問歷史來選擇要在所述至少一個(gè)附加儲(chǔ)存器中重寫 的項(xiàng)目,所述更新電路響應(yīng)于所述遺漏檢測(cè)電路在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述 遺漏并響應(yīng)于所述至少一個(gè)另外的條件而通過重寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器 檢索的所述項(xiàng)目更新所有所述儲(chǔ)存器。
12.一種包括用于處理數(shù)據(jù)的處理器和如權(quán)利要求1所述的存儲(chǔ)裝置的數(shù)據(jù)處理裝 置,其中,所述處理器被配置為在相同的時(shí)鐘周期期間生成數(shù)據(jù)加載請(qǐng)求和數(shù)據(jù)存儲(chǔ)請(qǐng)求。
13.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括所述另外的儲(chǔ)存器,所 述另外的儲(chǔ)存器被配置為存儲(chǔ)與每個(gè)項(xiàng)目相關(guān)聯(lián)的屬性數(shù)據(jù)。
14.一種更新存儲(chǔ)在第一儲(chǔ)存器和第二儲(chǔ)存器中的項(xiàng)目的方法,包括步驟在相同時(shí)鐘周期中接收訪問所述第一儲(chǔ)存器中的第一項(xiàng)目的第一訪問請(qǐng)求和訪問第 二儲(chǔ)存器中的第二項(xiàng)目的第二訪問請(qǐng)求;確定任一個(gè)訪問請(qǐng)求是否產(chǎn)生其中所請(qǐng)求的項(xiàng)目未被存儲(chǔ)在所述被訪問儲(chǔ)存器中的 遺漏;從另外的儲(chǔ)存器中檢索其訪問產(chǎn)生遺漏的項(xiàng)目;根據(jù)所述兩個(gè)儲(chǔ)存器中的相應(yīng)一個(gè)的訪問歷史來選擇要在所述相應(yīng)儲(chǔ)存器中重寫的 項(xiàng)目;響應(yīng)于在對(duì)所述第一儲(chǔ)存器的訪問中檢測(cè)到所述遺漏并響應(yīng)于至少一個(gè)另外的條件, 通過重寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器檢索的所述項(xiàng)目更新所述兩個(gè)儲(chǔ)存器二者。
15.如權(quán)利要求14所述的方法,包括識(shí)別產(chǎn)生所述遺漏的所述項(xiàng)目是否被存儲(chǔ)在所述 第二儲(chǔ)存器中的另外步驟,所述至少一個(gè)另外的條件是檢測(cè)到所述第一項(xiàng)目未被存儲(chǔ)在所 述第二儲(chǔ)存器中。
16.如權(quán)利要求14所述的方法,包括響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的所述項(xiàng)目存在于所 述第二儲(chǔ)存器中從所述第二儲(chǔ)存器檢索所述項(xiàng)目;以及通過重寫由所述更新電路選擇的所述項(xiàng)目來將所述項(xiàng)目復(fù)制到所述第一儲(chǔ)存器。
17.如權(quán)利要求15所述的方法,其中,響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的所述項(xiàng)目存在于 所述第二儲(chǔ)存器中選擇所述項(xiàng)目以用于重寫;根據(jù)所述第一儲(chǔ)存器的項(xiàng)目訪問歷史來選擇所述儲(chǔ)存器中的用于重寫的項(xiàng)目;以及通過重寫所述所選項(xiàng)目用從所述另外的儲(chǔ)存器檢索的所述項(xiàng)目來更新所述兩個(gè)儲(chǔ)存器·~ 者ο
18.如權(quán)利要求15所述的方法,其中,響應(yīng)于檢測(cè)到產(chǎn)生所述遺漏的所述項(xiàng)目存在于 所述第二儲(chǔ)存器中不重寫所述第二儲(chǔ)存器中的任何項(xiàng)目;以及根據(jù)所述第一儲(chǔ)存器的項(xiàng)目訪問歷史來選擇所述儲(chǔ)存器中用于重寫的項(xiàng)目并重寫所 述第一儲(chǔ)存器中的所述所選項(xiàng)目。
19. 一種用于存儲(chǔ)多個(gè)項(xiàng)目的存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備被配置為在相同時(shí)鐘周期內(nèi)接 收用于訪問相應(yīng)項(xiàng)目的第一訪問請(qǐng)求和第二訪問請(qǐng)求,所述存儲(chǔ)設(shè)備包括兩個(gè)儲(chǔ)存器,每個(gè)儲(chǔ)存器用于存儲(chǔ)所述多個(gè)項(xiàng)目的子集,所述第一訪問請(qǐng)求被路由到 第一儲(chǔ)存器且所述第二訪問請(qǐng)求被路由到第二儲(chǔ)存器;遺漏檢測(cè)設(shè)備,其用于檢測(cè)其中所請(qǐng)求的項(xiàng)目未被存儲(chǔ)在所述被訪問儲(chǔ)存器中的遺漏;項(xiàng)目檢索設(shè)備,其用于從另外的儲(chǔ)存器中檢索其訪問產(chǎn)生遺漏的項(xiàng)目; 更新設(shè)備,其用于根據(jù)所述兩個(gè)儲(chǔ)存器中的相應(yīng)一個(gè)的訪問歷史選擇要在所述相應(yīng)儲(chǔ) 存器中重寫的項(xiàng)目,所述更新設(shè)備響應(yīng)于所述遺漏檢測(cè)設(shè)備在對(duì)所述第一儲(chǔ)存器的訪問中 檢測(cè)到所述遺漏并響應(yīng)于至少一個(gè)另外的條件而通過重寫所述所選項(xiàng)目用從所述另外的 儲(chǔ)存器中檢索的所述項(xiàng)目來更新所述兩個(gè)儲(chǔ)存器二者。
全文摘要
本發(fā)明涉及確定鏈接數(shù)據(jù)儲(chǔ)存器中存儲(chǔ)和重寫的項(xiàng)目的數(shù)據(jù)存儲(chǔ)協(xié)議。公開了存儲(chǔ)多個(gè)項(xiàng)目的存儲(chǔ)裝置和方法。存儲(chǔ)裝置配置為在相同時(shí)鐘周期內(nèi)接收訪問相應(yīng)項(xiàng)目的第一和第二訪問請(qǐng)求。存儲(chǔ)裝置包括均存儲(chǔ)多個(gè)項(xiàng)目的子集的兩個(gè)儲(chǔ)存器,第一訪問請(qǐng)求路由到第一儲(chǔ)存器且第二訪問請(qǐng)求路由到第二儲(chǔ)存器;遺漏檢測(cè)電路,檢測(cè)請(qǐng)求的項(xiàng)目未存儲(chǔ)在被訪問儲(chǔ)存器中的遺漏;項(xiàng)目檢索電路,從另外儲(chǔ)存器中檢索其訪問產(chǎn)生遺漏的項(xiàng)目;更新電路,根據(jù)兩個(gè)儲(chǔ)存器的相應(yīng)一個(gè)的訪問歷史選擇在相應(yīng)儲(chǔ)存器中重寫的項(xiàng)目,更新電路響應(yīng)于遺漏檢測(cè)電路在對(duì)第一儲(chǔ)存器的訪問中檢測(cè)到遺漏和至少一個(gè)另外條件,而通過重寫所選項(xiàng)目用從另外儲(chǔ)存器中檢索的項(xiàng)目來更新兩個(gè)儲(chǔ)存器。
文檔編號(hào)G06F12/08GK101930344SQ201010212478
公開日2010年12月29日 申請(qǐng)日期2010年6月22日 優(yōu)先權(quán)日2009年6月22日
發(fā)明者D·J·威廉森, P·G·邁爾, S·J·克拉斯克 申請(qǐng)人:Arm有限公司