亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

預取計算機系統(tǒng)中的數(shù)據(jù)的制作方法

文檔序號:6416402閱讀:193來源:國知局
專利名稱:預取計算機系統(tǒng)中的數(shù)據(jù)的制作方法
背景技術
發(fā)明領域本發(fā)明涉及該計算機系統(tǒng)領域,更具體地說,涉及從存儲位置預取數(shù)據(jù)。
相關技術的說明預取是通常在處理器中加以執(zhí)行的技術。在它實際上被該處理器的核心執(zhí)行單元(EU)利用之前,預取處理器所要求的數(shù)據(jù)和指令。作為預取的結(jié)果,該EU可按該處理器的內(nèi)部總線的相對較高的數(shù)據(jù)傳輸速率來獲得該被預取的數(shù)據(jù)。處理器中的硬件預取引擎(HWP)通常預取該EU所要求的該數(shù)據(jù)。由于無論何時該EU要求它,這些被預取的數(shù)據(jù)和指令(數(shù)據(jù))都可用,因此,預取通常會改善該處理器的總體性能。
但是,如果不正確地執(zhí)行預取,則預取可能會削弱處理器或系統(tǒng)的性能。為了(例如)從外部存儲器中預取數(shù)據(jù)和/或指令,可使用該外部存儲器總線。因此,預取可能占用該外部存儲器總線的各種資源,從而減小該外部存儲器總線的有效帶寬??梢詫⒈活A取的該數(shù)據(jù)/指令存儲在接近該處理器的高速緩沖存儲器中。為了提高效率,可以使用多級高速緩沖存儲器。但是,由于該高速緩沖存儲器的尺寸有限,新的數(shù)據(jù)/指令的預取可以重寫仍然需要的、先前被取出的數(shù)據(jù)/指令。
在典型的處理器中,可以預取整條超高速緩沖存儲器線。例如,如果超高速緩沖存儲器線包括32個字節(jié),并且如果在該高速緩存中發(fā)生不命中,那么,在某時,可以從外部存儲器中預取32個字節(jié),并將其存儲在該高速緩存中。如果該相同的超高速緩沖存儲器線中發(fā)生多個不命中,則該HWP可以多次預取該相同的整條超高速緩沖存儲器線。這個預取方法既冗余、又效率低。
附圖簡述通過參考下文和被用于舉例說明的附圖,可以理解本發(fā)明的各個實施例。在這些附圖中

圖1表現(xiàn)了根據(jù)本發(fā)明的一個實施例的計算機系統(tǒng)的一個部分的框圖。
圖2表現(xiàn)了流程圖,它展示根據(jù)本發(fā)明的一個實施例的濾波器電路的該操作。
圖3表現(xiàn)了流程圖,它展示根據(jù)本發(fā)明的一個實施例的輸入隊列中的隊列條目的服務。
圖4A、4B表現(xiàn)了流程圖,它展示根據(jù)本發(fā)明的一個實施例的關于高速緩存不命中的檢測器指派以及該窗口尺寸的動態(tài)調(diào)整。
圖5表現(xiàn)了流程圖,它展示根據(jù)本發(fā)明的一個實施例來分配關于L2高速緩存不命中的檢測器。
圖6表現(xiàn)了根據(jù)本發(fā)明的一個實施例的濾波器電路。
圖7表現(xiàn)了根據(jù)本發(fā)明的一個實施例的監(jiān)視器,用于分配檢測器和調(diào)整該檢測器窗口尺寸。
詳細說明描述了一種方法和裝置,用于使用濾波器電路來處理處理器中的指令。此外,該方法和裝置可以根據(jù)關于該總線的條目數(shù)量來動態(tài)地調(diào)整檢測器窗口。在下文中,陳述眾多特殊的細節(jié)(例如,邏輯實施、操作碼、用于規(guī)定操作數(shù)的工具、系統(tǒng)部件的類型和相互關系、以及邏輯劃分或集成選擇),以便提供對本發(fā)明的徹底的理解。但是,掌握該技術領域的普通技能的人將會明白可以在沒有這些特殊細節(jié)的條件下實踐本發(fā)明。在其他實例中,還沒有示出眾所周知的構造、控制結(jié)構、門級電路、完全的軟件指令序列和技術等,以避免不必要地使對該說明的理解模糊不清。利用這些所包括的說明,掌握該技術領域的普通技能的人將能夠執(zhí)行適當?shù)墓δ苄?,而無須執(zhí)行過度的實驗。
本說明書中對“一個實施例”、“實施例”、“范例實施例”等的參考指出所描述的該實施例可以包括特定的特點、結(jié)構或特征,但每個實施例可能不一定都包括這個特定的特點、結(jié)構或特征。而且,這類短語不一定指的是相同的實施例。另外,當連同實施例來描述特定的特點、結(jié)構或特征時,認為無論是否加以明確的描述,精通該技術領域的人都可以連同其他實施例來影響這種特點、結(jié)構或特征。
在以下的說明和權利要求書中,可以連同諸如“按通訊方式被耦合”等派生詞一起來使用術語“被耦合”和“被連接”。應該理解這些術語并不意在作為彼此的同義詞。相反,在特定的實施例中,可以使用“被連接”來指出兩個或更多的元件彼此直接物理接觸或電接觸。但是,“被耦合”也可以意味著兩個或更多的元件彼此沒有直接接觸,但仍然彼此合作或相互作用。
使用精通該技術領域的人通常所運用的術語來呈現(xiàn)該說明的各個部分,以便向精通該技術領域的其他人傳達其工作的實質(zhì)。也按照通過執(zhí)行編程指令來加以執(zhí)行的操作,來呈現(xiàn)該說明的各個部分。如精通該技術領域的人所熟知的,這些操作經(jīng)常采取能夠通過(例如)電部件來加以存儲、傳送、結(jié)合和操作的電信號、磁信號或光信號的形式。
圖1是根據(jù)本發(fā)明的一個實施例的計算機系統(tǒng)的一個部分的框圖。在圖1所展示的該實施例中,處理器100包括被耦合到L1高速緩存105的執(zhí)行單元(EU)160,該L1高速緩存105被耦合到濾波器電路110。產(chǎn)生于來自L1高速緩存105的高速緩存不命中的超高速緩沖存儲器線請求可以被輸入濾波器電路110。超高速緩沖存儲器線請求是關于來自主存儲器或來自另一級高速緩沖存儲器的數(shù)據(jù)和/或指令塊的請求。在一個實施例中,L1高速緩存105是內(nèi)部存儲器(即處理器100內(nèi)部的存儲器),但其他實施例可以使用其他配置(例如,處理器100外部的存儲器)。輸入隊列115和輸出隊列125可以包括控制電路和緩沖存儲器,以處理包括來自EU 160的高速緩存不命中的請求。
在本發(fā)明的一個實施例中,通過濾波器電路110而進入輸入隊列115的這些請求是讀請求。這些請求可能是關于EU 160將要利用的數(shù)據(jù)、指令或兩者(數(shù)據(jù)/指令)的請求。這些讀請求可以從將要被讀取的該數(shù)據(jù)中識別存儲地址。這些地址可以經(jīng)受地址轉(zhuǎn)換,以便當被輸入隊列115接收時,它們可以表示物理地址或虛擬地址。濾波器電路110被耦合到輸入隊列115,輸入隊列115被耦合到HWP 120。濾波器電路110可以過濾出來自輸入濾波器隊列115的冗余超高速緩沖存儲器線請求。在一個實施例中,超高速緩沖存儲器線請求包括關于超高速緩沖存儲器線的請求,該超高速緩沖存儲器線包含來自與L1高速緩存不命中相對應的地址位置的數(shù)據(jù)/指令。這樣,輸入隊列115中的每個條目可以包含用于檢索單一超高速緩沖存儲器線的地址。
在圖1的該實施例中,HWP 120被耦合到輸出隊列125,輸出隊列125被耦合到L2請求隊列152。L2請求隊列152被耦合到L2高速緩存153,L2高速緩存153經(jīng)由前側(cè)總線(FSB)157而被耦合到存儲控制器150。雖然該術語FSB有時在本揭示說明中被用來描述該高速緩存-存儲器控制器總線,但是,對于掌握該技術領域的普通技能的人而言,將會顯而易見其他術語可以被用于在高速緩存與主存儲器之間傳送數(shù)據(jù)的總線,而不會偏離本發(fā)明的各個實施例。
監(jiān)視器140可以監(jiān)控這些超高速緩沖存儲器線請求(例如,在輸出隊列125中),并將檢測器指派給超高速緩沖存儲器線請求。在本發(fā)明的一個實施例中,監(jiān)視器140可以被耦合到該HWP 120,或可以構成該HWP 120的一部分。在本發(fā)明的其他實施例中,監(jiān)視器140可以被耦合到輸出隊列125,作為單獨實體;或者,可以構成輸出隊列125的不可分割的一部分。存儲控制器150從L2高速緩存153那里接收這些超高速緩沖存儲器線請求,并且經(jīng)由存儲器總線170來從存儲器(例如,DRAM 155)中檢索數(shù)據(jù)/指令。這里所描述的每個隊列(例如,輸入隊列115、輸出隊列125和L2請求隊列152)可以具有控制和緩沖器電路,以便管理和存儲這些超高速緩沖存儲器線請求、該被預取的數(shù)據(jù)、以及其他的變量和計數(shù)器。
在獲得關于EU 160的該數(shù)據(jù)/指令的過程中,該EU可以將請求發(fā)送到該L1高速緩存。如果在該L1高速緩存中沒有發(fā)現(xiàn)該被請求的數(shù)據(jù)/指令,則觸發(fā)高速緩存不命中(例如,可以設置標志,并且可以通過該插入邏輯而將關于該需要的數(shù)據(jù)/指令的超高速緩沖存儲器線請求發(fā)送到該L2高速緩存)。在一個實施例中,一旦第一超高速緩沖存儲器線請求被HWP 120接收,HWP120或監(jiān)視器140就可以預測EU 160將要求的下一條超高速緩沖存儲器線,并且連同該第一超高速緩沖存儲器線請求一起將關于那下一個超高速緩沖存儲器線請求的請求發(fā)送到該L2高速緩存。如果在該L2高速緩存153中沒有發(fā)現(xiàn)超高速緩沖存儲器線請求,則該超高速緩沖存儲器線請求可以經(jīng)由FSB隊列157而被轉(zhuǎn)送到外部存儲器(即,到DRAM 155)。
由于對相同的指令超高速緩沖存儲器線的多個超高速緩沖存儲器線請求相對罕見,因此,在一個實施例中,只有關于高速緩存數(shù)據(jù)不命中的超高速緩沖存儲器線請求被輸入濾波器電路110,而關于高速緩存指令不命中的超高速緩沖存儲器線請求被直接輸入輸入隊列115(見圖1中的虛線箭頭)。由于HWP 120在超高速緩沖存儲器線或塊中進行預取,因此,相同的存儲塊內(nèi)的地址不需要生成復制的超高速緩沖存儲器線請求。例如,如果超高速緩沖存儲器線包括32個字節(jié),并且如果高速緩存不命中發(fā)生在地址位置9,那么,關于包括地址位置9的超高速緩沖存儲器線的請求被輸入輸入隊列115。但是,如果以后高速緩存不命中發(fā)生在地址位置10(假設地址位置10在與地址位置9相同的超高速緩沖存儲器線中),那么,關于該相同的超高速緩沖存儲器線的第二請求不被放置在輸入隊列115中。所以,濾波器電路110可以過濾出關于已被發(fā)送到輸入隊列115的超高速緩沖存儲器線的超高速緩沖存儲器線請求。與“將超高速緩沖存儲器線請求發(fā)送到關于每個L1高速緩存不命中的輸入隊列115”相比,通過濾波器電路110所執(zhí)行的冗余超高速緩沖存儲器線請求的該過濾,可以允許HWP 120按較低頻率運行(從而消耗較少的功率,并且設計起來更簡單)。
根據(jù)圖2和圖6來描述根據(jù)本發(fā)明的一個實施例的濾波器電路110的該操作。如圖2和圖6中所展示的,在205處,重置或清除濾波器緩沖器605A-D和地址寄存器620。在210處,計數(shù)器I(未示出)被初始化為零。計數(shù)器I可以位于各種電路中(例如,在濾波器電路600中或在控制器610中)。在本發(fā)明的一個實施例中,計數(shù)器I指向其中接下來存儲超高速緩沖存儲器線請求的該緩沖位置。在215處,確定該EU所需要的該數(shù)據(jù)/指令是否會導致高速緩存不命中。如果該L1高速緩存中沒有該數(shù)據(jù)/指令,則觸發(fā)高速緩存不命中。
通過觸發(fā)高速緩存不命中,可使與觸發(fā)過該高速緩存不命中的該請求(即超高速緩沖存儲器線請求)相對應的超高速緩沖存儲器線的該地址被存儲在地址寄存器620中。如果無條目被存儲在緩沖器605A-D中,則該超高速緩沖存儲器線請求被存儲在計數(shù)器I所指向的該緩沖位置。在225處,例如,由控制器610確定該超高速緩沖存儲器線的該地址是否與緩沖器605A-D中所存儲的任何條目的該超高速緩沖存儲器線地址相匹配。雖然圖6中的該實施例比較各個超高速緩沖存儲器線地址,但是,其他實施例可以存儲在緩沖器605A-D中,并比較其他尺寸遞增(例如,字節(jié)地址、字地址等)。在一個實施例中,比較電路(例如,包括一系列異或門電路(未示出))將地址寄存器620中所存儲的這些超高速緩沖存儲器線請求的各個位與緩沖器605A-D中所存儲的這些超高速緩沖存儲器線請求進行比較。如果地址寄存器620中的該超高速緩沖存儲器線請求與緩沖器605A-D中的條目相匹配,那么,在本發(fā)明的一個實施例中,放棄地址寄存器620中的該超高速緩沖存儲器線請求(例如,該地址寄存器可以被重置為空值)。在本發(fā)明的一個實施例中,允許一個處理器周期過去,而不是放棄地址寄存器620中的這些超高速緩沖存儲器線請求;并且,在這下一個處理器周期期間,這些接下來的超高速緩沖存儲器線請求(對應于這下一個高速緩存不命中)被存儲在地址寄存器620中。
但是,如果地址寄存器620中所存儲的這些超高速緩沖存儲器線請求不與緩沖器605A-D中的條目相匹配,那么,用地址寄存器620中所存儲的這些超高速緩沖存儲器線請求來取代該計數(shù)器I所指向的該緩沖器中的該超高速緩沖存儲器線請求。在235處,在本發(fā)明的一個實施例中,在將該超高速緩沖存儲器線請求寫入該緩沖器之后,該計數(shù)器I遞增。在240處,(例如)由控制器610確定計數(shù)器I是否指向這個最后的緩沖位置。如果該計數(shù)器I指向這個最后的緩沖位置,從而指出“所有緩沖位置605A-D都充滿”,那么,可以引入等待周期,其間,該HWP為緩沖器605A-D中的這些超高速緩沖存儲器線請求提供服務,從而為這下一個非冗余超高速緩沖存儲器線地址而釋放緩沖位置。
在本發(fā)明的一個實施例中,當為超高速緩沖存儲器線請求服務時,這些超高速緩沖存儲器線請求按先進先出(FIFO)方式而逐次前進通過這些緩沖位置。例如,當緩沖位置605a中的該超高速緩沖存儲器線請求被提供服務(即,被發(fā)送到該HWP,再到該輸出隊列)時,緩沖位置605b-d中的其他超高速緩沖存儲器線請求上移一個間隔,以填充緩沖位置605a中所創(chuàng)建的該空位。這樣,這個新的非冗余超高速緩沖存儲器線請求被拷貝到空閑的緩沖位置605d,并且,最老的條目(從時間上來說)經(jīng)由該輸入隊列而被發(fā)送到該HWP。在245處,如果緩沖器可用,則該超高速緩沖存儲器線地址被寫入那個緩沖器。在245處將該超高速緩沖存儲器線請求加入該緩沖器之后,該周期可以在215處再次開始。雖然圖6中的該實施例展示了被標注為605A-D的4個緩沖器,但是,其他實施例可以具有不同數(shù)量的緩沖器并且/或者帶有其他標簽。在圖6所展示的該實施例中,控制器610執(zhí)行高速緩存不命中地址到超高速緩沖存儲器線請求的轉(zhuǎn)換,并且可以將這些超高速緩沖存儲器線請求寫入地址寄存器620以及(當這些緩沖位置變得可用時)緩沖器605A-D。
圖3是流程圖,它展示了該輸入隊列中的隊列條目的服務。在301處,EU 160將關于數(shù)據(jù)/指令的請求發(fā)送到高速緩存105。在302處,確定是否有超高速緩沖存儲器線請求(由高速緩存不命中來觸發(fā))。如果沒有超高速緩沖存儲器線請求,那么,在304處,輸入隊列115觸發(fā)等待周期,并且,這時沒有采取行動。但是,如果在302處有對輸入隊列115的超高速緩沖存儲器線請求,那么,在一個實施例中,在303處,最老的超高速緩沖存儲器線請求(即已經(jīng)在輸入隊列115中的該超高速緩沖存儲器線請求——最長的)退出隊列,以便為這個新的請求騰出空位。使請求退出隊列意味著由(例如)HWP 120來為已在該隊列中的超高速緩沖存儲器線請求提供服務。在305處,(例如)由HWP 120確定輸入隊列115中的這個退出隊列的超高速緩沖存儲器線請求是否是基于L1高速緩存不命中的請求。在本發(fā)明的一個實施例中,通過檢驗與每個超高速緩沖存儲器線請求相對應的標志來確定該不命中類型,HWP 120可確定該不命中類型。如果在305處,該超高速緩沖存儲器線請求被確定是L1數(shù)據(jù)或指令高速緩存不命中,那么,在307處,將該地址與先前所定義的這些檢測器進行比較。在本發(fā)明的一個實施例中,檢測器被定義為具有等同于先前創(chuàng)建的超高速緩沖存儲器線預取請求的地址。但是,如果305處的該超高速緩沖存儲器線請求不是L1高速緩存不命中,那么,在306處,確定該高速緩存不命中是L2高速緩存不命中。如果該高速緩存不命中是L2高速緩存不命中,那么,如根據(jù)圖5而解釋的,該L2超高速緩沖存儲器線請求(對應于該L2高速緩存不命中)被分配檢測器。
在本發(fā)明的一個實施例中,可以由可構成HWP 120的一部分的匹配檢測電路來發(fā)現(xiàn)該檢測器分配。在其它實施例中,可以由單獨電路(例如,由被耦合到輸出隊列125的監(jiān)視器140)來執(zhí)行該檢測器分配。在本發(fā)明的一個實施例中,由包括地址、方向和窗口尺寸的參數(shù)來定義檢測器。該輸入隊列中的該超高速緩沖存儲器線請求的該地址可以在該檢測器地址+/-該窗口尺寸的范圍以內(nèi)。該檢測器的該方向可以是以下任何一個值零、+1或-1。零可以意味著該檢測器還沒有被分配方向。+1可以指出該檢測器具有向前的方向;-1可以指出該檢測器具有相反的方向。該檢測器的該地址指出這下一個超高速緩沖存儲器線預取請求的該地址,并且,該檢測器的該方向被用來計算這些接連的預取請求。例如,具有100的地址并具有+1的方向的檢測器暗示這下一個超高速緩沖存儲器線預取請求將是100——后面是101。
圖4A、4B展示了流程圖,它表現(xiàn)根據(jù)本發(fā)明的一個實施例的關于高速緩存不命中的該檢測器指派和該窗口尺寸的動態(tài)調(diào)整。圖7展示了根據(jù)本發(fā)明的一個實施例的監(jiān)視器。在本發(fā)明的一個實施例中,監(jiān)視器700可以被耦合到圖1中的線路121所指出的HWP 120。在本發(fā)明的其它實施例中,監(jiān)視器700可以是被耦合到輸出隊列125的單獨電路。參照圖4A、4B和圖7來解釋該檢測器指派。如圖4A所展示的,在401處,(例如)由被耦合到輸入隊列115的控制器710來檢測L1超高速緩沖存儲器線請求。在405處,表示檢測器的變量“D”被初始化為(例如)零。在415處,確定檢測器“D”的該方向是否是零(即,指出還沒有指派該檢測器的該方向)。在本發(fā)明的一個實施例中,這些檢測器被存儲在緩沖器705A-D中。
每個檢測器至少具有地址位、指出相對于該檢測器地址(方向標志)的從那里預取數(shù)據(jù)的該方向的一個或多個位、檢測器前面命中(HAD)計數(shù)器、檢測器后面命中(HBD)計數(shù)器、以及最近最少使用的標志(LRU)標記。如果該檢測器的該方向標志具有零的值,那么,在420處,(例如)由控制器710確定det ector”D”address≥cachelineaddress≥det ector”D”address-windowsize...[1]是否為真。特別是,控制器710確定檢測器D的該地址是大于、還是等于該超高速緩沖存儲器線地址;以及,該超高速緩沖存儲器線地址是大于、還是等于檢測器D的該地址減去該窗口尺寸。如果兩者都是,那么,遞增該HBD計數(shù)器,并更新該LRU標記。
在本發(fā)明的一個實施例中,檢測器窗口尺寸730是確定預取數(shù)據(jù)的侵占性的全局變量。大的窗口尺寸指出侵占性預取,反之亦然。如果方程式[1]為真,那么,遞增被稱作為“HBD計數(shù)器”的計數(shù)器,并且,該LRU標記被加以設置——例如,具有指出該時間的值。在440處,(例如)由控制器710確定關于該檢測器的該HBD計數(shù)器是否具有大于(例如)三的值。如果該HBD計數(shù)器大于三,那么,在445處,檢測器的方向“D”被設置為-1。此外,在本發(fā)明的一個實施例中,在445處,該檢測器的該地址被設置為該超高速緩沖存儲器線地址(不命中地址)減去該窗口尺寸。在本發(fā)明的一個實施例中,如果在440處,該HBD計數(shù)器沒有大于三的值,則該過程在450處結(jié)束。如果在420處,方程式[1]為假,那么,在425處,(例如)由控制器710確定det ector”D”address≤cachelineaddress≤detector”D”address+windowsize...[2]是否為真。
特別是,控制器710確定檢測器D的該地址是小于、還是等于該超高速緩沖存儲器線地址;以及,該超高速緩沖存儲器線地址是小于、還是等于檢測器D的該地址加上該窗口尺寸。如果條件[2]為真,那么,在452處,遞增該HAD計數(shù)器,并更新該LRU標記。在452處遞增該HAD計數(shù)器和關于檢測器“D”的該LRU標記之后,在454處確定HAD計數(shù)器是否大于二。如果該HAD計數(shù)器大于二,那么,在456處,檢測器“D”的該方向被設置為加一,并且,該檢測器的該地址被設置為該不命中地址加上該窗口尺寸。在456處設置該檢測器的該地址和方向之后,該過程在450處結(jié)束。如果在425處,條件[2]的該結(jié)果為假,那么,在430處,該計數(shù)器“D”遞增一,并且,該過程被加以重復。
但是,如果在415處,該檢測器的該方向被確定不等于零,那么,在458處,(例如)由控制器710確定檢測器“D”的該方向是否等于一。特別是,具有1的方向的檢測器意味著被預取的這下一個超高速緩沖存儲器線地址具有比這個被指派的檢測器的該地址更大的地址。因此,被預取的該數(shù)據(jù)是與該檢測器地址相對應的該數(shù)據(jù),而且是與這下一個超高速緩沖存儲器線地址相對應的該數(shù)據(jù)。如果在458處,該檢測器方向等于一,那么,在460處,(例如)由控制器710確定det ector”D”address≥cachelineaddress≥det ector”D”address-windowsize...[3]是否為真。特別是,控制器710確定檢測器D的該地址是大于、還是等于該超高速緩沖存儲器線地址;以及,該超高速緩沖存儲器線地址是大于、還是等于檢測器D的該地址減去該窗口尺寸。
在本發(fā)明的一個實施例中,一旦檢測器被指派超高速緩沖存儲器線地址,對應于這個被指派的檢測器前面和后面的超高速緩沖存儲器線的數(shù)據(jù)就被自動預取。如果該條件[3]為假,那么,在427處,該變量“D”遞增一,并且,過程流動到410。在410處,(例如)由控制器710確定所有這些檢測器都已被指派超高速緩沖存儲器線地址。但是,如果條件[3]為真,那么,在464處,控制器710使檢測器D排隊,并獲得對應于檢測器D的數(shù)據(jù)、以及對應于其地址在檢測器D的該地址右邊的該鄰近的超高速緩沖存儲器線的數(shù)據(jù)(即,對應于這下一個最高的超高速緩沖存儲器線請求地址)。接下來,在465處,該檢測器地址被設置為等同于該檢測器地址加上兩倍的該檢測器方向。檢測器D的該方向遞增2,以便隨后的預取可獲得對應于這接下來的兩個超高速緩沖存儲器線請求的數(shù)據(jù)。
如果在458處,檢測器D的該方向不等于1,那么,在466處,確定det ector”D”address≤cachelineaddress≤det ector”D”address+windowsize...[4]是否為真。特別是,控制器710確定檢測器D的該地址是小于、還是等于該超高速緩沖存儲器線地址;以及,該超高速緩沖存儲器線地址是小于、還是等于檢測器D的該地址加上該窗口尺寸。如果條件[4]為真,則該過程流動到464。但是,如果條件[4]為假,則該過程流動到427。
在本發(fā)明的一個實施例中,該監(jiān)視器根據(jù)FSB隊列732中的超高速緩沖存儲器線請求的數(shù)量來調(diào)整該窗口尺寸。該算法確保如果該窗口尺寸太大,那么,與該窗口尺寸太小相比,有可能觸發(fā)更多的檢測器。觸發(fā)檢測器意味著該檢測器被指派超高速緩沖存儲器線地址,并且被發(fā)送到輸出隊列125或該L2請求隊列,以取出該對應的數(shù)據(jù)。如果FSB隊列732處于被欠利用的狀態(tài),則增加該窗口尺寸;并且,如果FSB隊列732具有太多條目(被過度利用),那么,減小該窗口尺寸。當減小該窗口尺寸時,觸發(fā)較少的檢測器。
在470處,(例如)由控制器710確定FSB隊列732中的該條目數(shù)量是否小于最大FSB閾值727。在本發(fā)明的一個實施例中,最大FSB閾值727、最小FSB閾值728、最大檢測器窗口尺寸726、最小檢測器窗口尺寸725和檢測器窗口尺寸730是被存儲在監(jiān)視器700中的變量。如果FSB隊列732中的該條目數(shù)量小于最大FSB閾值727,那么,在472處,(例如)由控制器710確定檢測器窗口尺寸730是否小于最大檢測器窗口尺寸726。如果在472處,檢測器窗口尺寸730小于最大檢測器窗口尺寸726,那么,在474處,檢測器窗口尺寸730遞增一,并且,該過程在484處結(jié)束。
但是,如果FSB隊列732中的該條目數(shù)量不小于最大FSB閾值727,那么,在476處,(例如)由控制器710確定FSB隊列732中的該條目數(shù)量是否大于最小閾值728。如果FSB隊列732中的該條目數(shù)量大于最小閾值728,那么,在478處,(例如)由控制器710確定檢測器窗口尺寸730大于最小檢測器窗口尺寸725。如果在478處,檢測器窗口尺寸730大于最小檢測器窗口尺寸725,那么,在480處,檢測器窗口尺寸變量730被設置為等于該檢測器窗口減去一。但是,如果在478處,檢測器窗口尺寸430小于最小檢測器窗口尺寸725,則該過程在484處結(jié)束。
這樣,根據(jù)該FSB隊列中的該條目數(shù)量來調(diào)整該窗口尺寸。如果FSB隊列732具有很少的條目,則增加檢測器窗口尺寸730。如果FSB隊列732具有太多條目,則減小窗口尺寸730。
圖5展示了流程圖,用于根據(jù)本發(fā)明的一個實施例來分配關于L2高速緩存不命中的檢測器。如圖5所展示的,在505處,輸入隊列115檢測新的L2超高速緩沖存儲器線。在510處,指出該檢測器數(shù)量的變量“D”由(例如)控制器710來初始化為零。在515處,(例如)由控制器710確定detector”D”address≤cachelineaddress≤det ector”D”address+windowsize...[5]是否為真。特別是,控制器710確定檢測器D的該地址是小于、還是等于該超高速緩沖存儲器線地址;以及,該超高速緩沖存儲器線地址是小于、還是等于檢測器D的該地址加上該窗口尺寸。如果條件[5]為真,則該過程在525處結(jié)束。如果[5]為假,那么,在520處,(例如)由控制器710確定det ector”D”address≥cachelineaddress≥det ector”D”address-windowsize...[6]是否為真。特別是,控制器710確定檢測器D的該地址是大于、還是等于該超高速緩沖存儲器線地址;以及,該超高速緩沖存儲器線地址是大于、還是等于檢測器D的該地址減去該窗口尺寸。如果條件[6]為真,則該過程在525處結(jié)束。但是,如果條件[6]為假,那么,(例如)由控制器710確定“D”是否小于檢測器的該最大數(shù)量。如果D小于監(jiān)視器700所指派的檢測器的最大數(shù)量,那么,在540處,通過比較這些檢測器的各個時間標記,(例如)由控制器710來識別該LRU檢測器。一旦識別該LRU檢測器,就在545處對該最近最少使用的檢測器進行初始化。在一個實施例中,對該最近最少使用的檢測器進行初始化意味著將該檢測器地址設置為該不命中地址,并將該檢測器的該方向設置為零。也意味著將該HBD計數(shù)器設置為零,將該HAD計數(shù)器設置為零,并更新該LRU檢測器計數(shù)器。在對該LRU檢測器進行初始化之后,該過程在550處結(jié)束。
如前所述,通過調(diào)整關于最大和最小檢測器窗口尺寸以及關于該FSB隊列中的最大和最小條目數(shù)量的各個參數(shù),可以調(diào)整該過濾操作的侵占性??梢詾楦鞣N操作模式而協(xié)調(diào)這些參數(shù)和關聯(lián)的侵占性。例如,如果該處理器處于單一線程(ST)模式,則可以使用更具侵占性的參數(shù)集;而如果該處理器處于同時多線程模式(SMT),則可以使用侵占性較小的參數(shù)集。這些參數(shù)也可以為其他操作模式和/或操作條件而加以調(diào)整,并且,甚至可以被調(diào)整,以適應操作條件的組合(而不是單一的操作條件)??梢允褂酶鞣N用于為這些參數(shù)編程的方法。在一個實施例中,一個或多個位被設置成指出該操作條件,并且,硬件將這些位的該狀態(tài)轉(zhuǎn)變成這些關聯(lián)的參數(shù)。在另一個實施例中,這些參數(shù)被直接編程到寄存器中——從那里,該有關的電路可存取這些參數(shù)。也可以使用為這些有關的參數(shù)編程的其他技術。
這樣,已揭示了一種方法和裝置,用于過濾該輸入隊列中的超高速緩沖存儲器線地址,并根據(jù)該FSB中的該條目數(shù)量來動態(tài)地調(diào)整該檢測器窗口尺寸。已展示和描述了目前所認為的本發(fā)明的范例實施例,但精通該技術領域的人將會理解在不脫離本發(fā)明的真實范圍的前提下,可以進行各種其他的修改,并可以替換相等物。此外,在不脫離這里所描述的該中心發(fā)明概念的前提下,可以進行許多修改,以便使特定情況適應本發(fā)明的教導。所以,本發(fā)明并不意在局限于所揭示的這些特定實施例,而是意在包括處于所附權利要求書的范圍以內(nèi)的所有實施例。
權利要求
1.一種裝置,其特征在于包括多個地址緩沖器,用于接收和存儲多個預取地址;以及,濾波器電路,它被耦合到這多個地址緩沖器,用于將被存儲的這多個預取地址與被接收的預取地址進行比較,如果這個被接收的預取地址等同于被存儲的這多個預取地址中的任何一個預取地址,則所述濾波器電路放棄這個被接收的預取地址。
2.權利要求1的裝置,其特征在于其中,如果這個被接收的預取地址不等同于這些被存儲的預取地址中的任何一個預取地址,則該濾波器電路將這個被接收的預取地址存儲在這多個地址緩沖器之一中。
3.權利要求1的裝置,其特征在于其中,這些預取地址包括高速緩存中的數(shù)據(jù)不命中的地址和高速緩存中的指令不命中的地址中的至少一個地址。
4.權利要求1的裝置,其特征在于其中,這多個預取地址和這個被接收的預取地址是超高速緩沖存儲器線地址。
5.權利要求1的裝置,其特征在于其中,該濾波器電路被耦合到硬件預取引擎,所述硬件預取引擎預取這些預取地址所指向的信息。
6.權利要求1的裝置,其特征在于其中,該濾波器電路被耦合到輸入隊列。
7.權利要求6的裝置,其特征在于其中,該輸入隊列被耦合到硬件預取引擎。
8.權利要求7的裝置,其特征在于其中,該硬件預取引擎被耦合到輸出隊列。
9.權利要求8的裝置,其特征在于其中,該輸出隊列被耦合到L2請求隊列。
10.權利要求5的裝置,其特征在于其中,該硬件預取引擎從處理器高速緩存和外部存儲器中的至少一項中預取數(shù)據(jù)和指令中的至少一項。
11.權利要求1的裝置,其特征在于其中,該濾波器電路被耦合到處理器核心。
12.一種方法,其特征在于包括接收第一預取地址;存儲該第一預取地址;接收第二預取地址;將這個被接收的第二預取地址與這個被存儲的第一預取地址進行比較;以及,如果該第二預取地址等同于這個被存儲的第一預取地址,則放棄這個被接收的第二預取地址。
13.權利要求12的方法,其特征在于其中,這些預取地址包括高速緩存中的數(shù)據(jù)不命中的地址和高速緩存中的指令不命中的地址中的至少一個地址。
14.權利要求12的方法,其特征在于進一步包括如果該第二高速緩存不命中地址等同于這個被存儲的第一預取地址,則存儲這個被接收的第二預取地址。
15.權利要求12的方法,其特征在于進一步包括將這些被存儲的預取地址發(fā)送到硬件預取引擎,以預取這些被存儲的預取地址所指向的信息。
16.權利要求12的方法,其特征在于這些預取地址是超高速緩沖存儲器線地址。
17.一種計算機系統(tǒng),其特征在于包括外部總線;被耦合到該外部總線的外部存儲器;被耦合到高速緩沖存儲器和該外部存儲器的處理器核心;多個地址緩沖器,用于接收和存儲多個預取地址;以及,濾波器電路,它被耦合到這多個地址緩沖器,用于將被存儲的這多個預取地址與被接收的預取地址進行比較,如果這個被接收的預取地址與被存儲的這多個預取地址中的任何一個預取地址相匹配,則所述濾波器電路放棄這個被接收的預取地址。
18.權利要求17的計算機系統(tǒng),其特征在于其中,如果這個被接收的預取地址不與這些被存儲的預取地址中的任何一個預取地址相匹配,則該濾波器電路將這個被接收的預取地址存儲在這多個地址緩沖器之一中。
19.權利要求17的計算機系統(tǒng),其特征在于其中,這些預取地址包括高速緩存中的數(shù)據(jù)不命中的地址和高速緩存中的程序指令不命中的地址中的至少一個地址。
20.權利要求17的計算機系統(tǒng),其特征在于其中,這多個預取地址和這個被接收的預取地址是超高速緩沖存儲器線地址。
21.權利要求17的計算機系統(tǒng),其特征在于其中,該濾波器電路被耦合到硬件預取引擎,所述硬件預取引擎預取這些預取地址所指向的信息。
22.權利要求17的計算機系統(tǒng),其特征在于其中,該濾波器電路被耦合到輸入隊列。
23.權利要求17的計算機系統(tǒng),其特征在于其中,該輸入隊列被耦合到硬件預取引擎。
24.權利要求17的計算機系統(tǒng),其特征在于其中,該硬件預取引擎被耦合到輸出隊列。
25.權利要求17的計算機系統(tǒng),其特征在于其中,該輸出隊列被耦合到仲裁器,該仲裁器被耦合到高速緩沖存儲器。
26.權利要求17的計算機系統(tǒng),其特征在于其中,該預取引擎從該外部存儲器中預取包括數(shù)據(jù)和程序指令的信息。
27.一種方法,其特征在于包括生成多個檢測器,每個檢測器與預取地址和檢測器窗口尺寸變量相對應;將這多個檢測器中的至少一個檢測器發(fā)送到高速緩存-存儲器控制器總線隊列,以預取數(shù)據(jù)和指令中的至少一項;監(jiān)控該高速緩存-存儲器控制器總線隊列中的這多個檢測器中的該至少一個檢測器的數(shù)量;以及,根據(jù)該高速緩存-存儲器控制器總線隊列中的這多個檢測器中的該至少一個檢測器的該數(shù)量,來調(diào)整該檢測器窗口尺寸變量。
28.權利要求27的方法,其特征在于其中,該預取地址包括高速緩存中的數(shù)據(jù)不命中的地址和高速緩存中的指令不命中的地址中的至少一個地址。
29.權利要求27的方法,其特征在于其中,該預取地址是超高速緩沖存儲器線地址。
30.權利要求27的方法,其特征在于其中,如果該高速緩存-存儲器控制器總線隊列中有少于預定的第一數(shù)量的檢測器,則動態(tài)地增加該檢測器窗口尺寸;如果該高速緩存-存儲器控制器總線隊列中有多于預定的第二數(shù)量的檢測器,則動態(tài)地減少該檢測器窗口尺寸。
31.權利要求30的方法,其特征在于其中,如果該檢測器窗口尺寸小于最大檢測器窗口尺寸變量,則動態(tài)地增加該檢測器窗口尺寸。
32.權利要求30的方法,其特征在于其中,如果該檢測器窗口尺寸大于最小檢測器窗口尺寸變量,則動態(tài)地減少該檢測器窗口尺寸。
33.一種裝置,其特征在于包括多個檢測器緩沖器,用于存儲多個檢測器;超高速緩沖存儲器線請求緩沖器,它被耦合到這多個檢測器緩沖器;以及,被耦合到這多個檢測器緩沖器和該超高速緩沖存儲器線請求緩沖器的控制器,所述控制器將檢測器分配給超高速緩沖存儲器線請求,并且動態(tài)地調(diào)整被發(fā)送到高速緩存-存儲器控制器總線隊列的該檢測器數(shù)量。
34.權利要求33的裝置,其特征在于其中,這些超高速緩沖存儲器線請求包括高速緩存中的數(shù)據(jù)不命中的地址和高速緩存中的指令不命中的地址中的至少一個地址。
35.權利要求33的裝置,其特征在于其中,如果該高速緩存-存儲器控制器總線隊列中的該檢測器數(shù)量小于預定的第一數(shù)量,那么,該控制器將要監(jiān)控該高速緩存-存儲器控制器總線隊列并增加被發(fā)送到該高速緩存-存儲器控制器總線的該檢測器數(shù)量;如果該高速緩存-存儲器控制器總線隊列中的該檢測器數(shù)量大于預定的第二數(shù)量,那么,該控制器將要減少被發(fā)送到該高速緩存-存儲器控制器總線隊列的該檢測器數(shù)量。
36.權利要求33的裝置,其特征在于其中,該控制器將要監(jiān)控檢測器窗口尺寸變量,該檢測器窗口尺寸變量對應于該高速緩存-存儲器控制器總線隊列中的該條目數(shù)量而加以動態(tài)的調(diào)整。
37.權利要求33的裝置,其特征在于其中,該控制器被耦合到輸出隊列。
38.權利要求37的裝置,其特征在于其中,該輸出隊列被耦合到該FSB隊列。
39.權利要求33的裝置,其特征在于其中,該控制器被耦合到硬件預取引擎。
40.一種計算機系統(tǒng),其特征在于包括外部總線;被耦合到該外部總線的外部存儲器;被耦合到高速緩沖存儲器和該外部存儲器的處理器核心,所述處理器包括用于存儲多個檢測器的多個檢測器緩沖器;被耦合到這多個檢測器緩沖器的超高速緩沖存儲器線請求緩沖器;以及,被耦合到這多個檢測器緩沖器和該超高速緩沖存儲器線請求緩沖器的控制器,所述控制器將檢測器分配給超高速緩沖存儲器線請求,并且動態(tài)地調(diào)整被發(fā)送到高速緩存-存儲器控制器總線隊列的該檢測器數(shù)量。
41.權利要求40的計算機系統(tǒng),其特征在于其中,這些超高速緩沖存儲器線請求包括高速緩存中的數(shù)據(jù)不命中的地址和高速緩存中的指令不命中的地址中的至少一個地址。
42.權利要求40的計算機系統(tǒng),其特征在于其中,如果該高速緩存-存儲器控制器總線隊列中的該檢測器數(shù)量小于預定的第一數(shù)量,那么,該控制器將要監(jiān)控該高速緩存-存儲器控制器總線隊列并增加被發(fā)送到該高速緩存-存儲器控制器總線隊列的該檢測器數(shù)量;如果該高速緩存-存儲器控制器總線隊列中的該檢測器數(shù)量大于預定的第二數(shù)量,那么,該控制器將要減少被發(fā)送到該高速緩存-存儲器控制器總線隊列的該檢測器數(shù)量。
43.權利要求40的計算機系統(tǒng),其特征在于其中,該控制器將要監(jiān)控檢測器窗口尺寸變量,該檢測器窗口尺寸變量對應于該高速緩存-存儲器控制器總線隊列中的該條目數(shù)量而加以動態(tài)的調(diào)整。
44.權利要求40的計算機系統(tǒng),其特征在于其中,該控制器被耦合到輸出隊列。
45.權利要求40的計算機系統(tǒng),其特征在于其中,該輸出隊列被耦合到該高速緩存-存儲器控制器總線隊列。
46.權利要求40的計算機系統(tǒng),其特征在于其中,該控制器被耦合到硬件預取引擎。
47.權利要求40的計算機系統(tǒng),其特征在于其中,該輸出隊列被耦合到存儲器。
48.權利要求47的計算機系統(tǒng),其特征在于其中,該存儲器是動態(tài)隨機存取(DRAM)存儲器。
49.權利要求40的計算機系統(tǒng),其特征在于其中,該檢測器數(shù)量的該動態(tài)調(diào)整基于該處理器的操作模式。
50.權利要求49的計算機系統(tǒng),其特征在于其中,該處理器的該操作模式是單一線程模式和同時多線程模式之一。
全文摘要
一種方法和裝置,用于檢測和過濾出預取輸入隊列中的冗余超高速緩沖存儲器線地址,并且用于根據(jù)關于該高速緩存-存儲器控制器總線的該隊列中的該檢測器條目數(shù)量來動態(tài)地調(diào)整該檢測器窗口尺寸。檢測器對應于可以表示各級高速緩沖存儲器中的高速緩存不命中的超高速緩沖存儲器線地址。
文檔編號G06F9/00GK1729445SQ03821851
公開日2006年2月1日 申請日期2003年9月6日 優(yōu)先權日2002年9月16日
發(fā)明者E·施普蘭格爾, A·羅布拉 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
<form id="y4l4q"></form>