專利名稱:高速緩沖存儲器控制方法和高速緩沖存儲器控制裝置的制作方法
技術(shù)領域:
本發(fā)明涉及裝載了高速緩沖存儲器的微處理器中的高速緩沖存儲 器控制方法和高速緩沖存儲器控制裝置。
背景技術(shù):
在微處理器中,為了隱蔽向外部存儲器的存取的執(zhí)行罰則(penalty),裝載了高速緩沖存儲器。另外,在近年來裝載了微處理 器的系統(tǒng)中,為了提高程序的執(zhí)行性能,正在采用裝載了多個處理器 核心(core)的多處理器系統(tǒng)或用于在一個處理器中高效地執(zhí)行多個程 序的可進4亍多線程(multi thread )處理的處理器。在多處理器或多線程處理器中,以執(zhí)行多個程序時的存儲器共有 并使用一個存儲器空間的情形居多。即使對上述高速緩沖存儲器,也 不在各處理器、各線程上裝載獨立的高速緩沖存儲器,而是共有并使 用一個高速緩沖存儲器或高速緩沖存儲器系統(tǒng)的情形居多。通常,高速緩沖存儲器采取具有多條通道的組相聯(lián)(set-associative) 結(jié)構(gòu)。在程序?qū)Ω咚倬彺娲嫒〉那闆r下,存取地址是命中高速緩存 (cache hit),還是未命中高速緩存(cache miss ),通常在對全部通 道進行存取后加以判定。在多處理器或進行多線程處理的處理器中,有一種方法,即,各 自的程序所進行高速緩存的數(shù)據(jù)分配高速緩存通道,使之對相互的程 序沒有影響。此時,在未命中高速緩存的情況下,為了將數(shù)據(jù)重新裝 填到被分配給各程序的通道,在各程序中命中高速緩存的通道為所分 配的通道的概率高。不管如何,由于是對共有存儲器進行高速緩存的共有高速緩沖存 儲器,所以是否命中的判定必須對全部通道進行,對全部通道進行存 取的是否命中高速緩存的判定成為消耗無用的功率的狀態(tài)。為了降低高速緩存存取時的功耗,有僅對上一次進行了存取的通 道進行是否命中高速緩存的判定,或者對上一次進行了存取的通道只 有數(shù)據(jù)陣列進行存取的方法(專利文獻l)。但是,該方法有效之處僅 限于取指令等地址按時序(sequential)變化的情形。另外,在多處理 器系統(tǒng)或進行多線程處理的處理器的情況下,被并行處理的程序的取 指令地址或數(shù)據(jù)存取地址有時不連續(xù),因而不能充分發(fā)揮其效果。 專利文獻1:特開平11-39216號公報在從多個處理器或線程存取的共有高速緩沖存儲器中,在上述高 速緩沖存儲器可對各處理器或線程重新裝填的通道進行分配的情況 下,由于命中所分配的通道的概率高,故如對全部通道同時進行是否 命中的判定,則消耗無謂的功率。發(fā)明內(nèi)容因此,本發(fā)明的目的在于,提供一種可削減伴隨是否命中高速緩 存的判定的功耗的高速緩沖存儲器控制方法和高速緩沖存儲器控制裝 置。為了解決上述課題,本發(fā)明的高速緩沖存儲器控制方法是對于 由至少2個存儲器單位構(gòu)成的高速緩沖存儲器,在每個存儲器單位中 預先設定高速緩存重新裝填的可否,對于在高速緩沖存儲器之中高速 緩存重新裝填被設定為"可"的存儲器單位,有選擇地進行存取,進 行是否命中高速緩存的第1判定,在命中高速緩存時,結(jié)束對高速緩 沖存儲器的存取(以僅對高速緩存重新裝填被設定為"可"的存儲器 單位進行存取)。按照該方法,對于高速緩沖存儲器之中高速緩存重新裝填被設定 為"可"的存儲器單位,有選擇地進行是否命中高速緩存的第l判定, 并且在判定命中高速緩存時,結(jié)束對高速緩沖存儲器的存取(以僅對 高速緩存重新裝填被設定為"可,,的存儲器單位進行存取),所以可 削減伴隨是否命中高速緩存的判定的功耗。而且,高速緩存重新裝填 被設定為"可,,的存儲器單位由于命中高速緩存的概率高,故以僅對 高速緩存重新裝填被設定為"可,,的存儲器單位進行存取而結(jié)束的概 率高,可有效地削減功耗。在上述本發(fā)明的高速緩沖存儲器控制方法中,理想情況是,當是 否命中高速緩存的第1判定的結(jié)果為未命中高速緩存時,對于高速緩 沖存儲器之中高速緩存重新裝填被設定為"否"的存儲器單位,有選 擇地進行存取,進行是否命中高速緩存的第2判定。
按照該方法,由于對于高速緩存重新裝填被設定為"否"的存儲器單位進行是否命中高速緩存的第2判定,所以即使各自被許可的存 儲器單位是以不同的多個存取進行存取的高速緩沖存儲器,也可對同 一地址空間進行高速緩存。另外,在上述本發(fā)明的高速緩沖存儲器控制方法中,當是否命中 高速緩存的第1判定的結(jié)果為未命中高速緩存時,也可對于高速緩沖 存儲器的全部存儲器單位進行存取,進行是否命中高速緩存的第2判 定。按照該方法,由于對于全部存儲器單位進行是否命中高速緩存的 第2判定,所以即使各自被許可的存儲器單位是以不同的多個存取進 行存取的高速緩沖存儲器,也可對同一地址空間進行高速緩存。另外,在上述本發(fā)明的高速緩沖存儲器控制方法中,高速緩沖存 儲器從至少2個存取元被存取,與至少2個存取元中的各存取元對應 地,在每個存儲器單位預先設定高速緩存重新裝填的可否。本發(fā)明的高速緩沖存儲器控制裝置包括高速緩沖存儲器,由至 少2個存儲器單位構(gòu)成;高速緩存重新裝填可否設定部,對于高速緩 沖存儲器在每個存儲器單位中設定高速緩存重新裝填的可否;存儲器 單位選擇裝置,根據(jù)高速緩存重新裝填可否設定部的設定狀態(tài),對于 高速緩沖存儲器之中高速緩存重新裝填被高速緩存重新裝填可否設定 部設定為"可,,的存儲器單位,可有選擇地進行存?。灰约笆欠衩?控制部,對于高速緩存重新裝填被設定為"可"的存儲器單位,進行 是否命中高速緩沖存儲器的第1判定,在命中高速緩存時,結(jié)束對高 速緩沖存儲器的存取(以僅對高速緩存重新裝填被設定為"可,,的存 儲器單位進行存取)。按照該結(jié)構(gòu),對于高速緩沖存儲器之中高速緩存重新裝填被設定 為"可"的存儲器單位,有選擇地進行是否命中高速緩存的第1判定, 并且在判定命中高速緩存時,結(jié)束對高速緩沖存儲器的存取(以僅對 高速緩存重新裝填被設定為"可,,的存儲器單位進行存取),所以可 削減伴隨是否命中高速緩存的判定的功耗。而且,高速緩存重新裝填 被設定為"可"的存儲器單位由于命中高速緩存的概率高,故以僅對 高速緩存重新裝填被設定為"可"的存儲器單位進行存取而結(jié)束的概 率高,可有效地削減功耗。 在上述本發(fā)明的高速緩沖存儲器控制裝置中,理想情況是,存儲 器單位選擇裝置在被是否命中控制部判定為未命中高速緩存時,對于高速緩沖存儲器之中高速緩存重新裝填被設定為"否"的存儲器單位, 可有選擇地進行存取,是否命中控制部對于高速緩存重新裝填被設定為"否"的存儲器單位,進行是否命中高速緩存的第2判定。按照該結(jié)構(gòu),由于對于高速緩存重新裝填被設定為"否"的存儲 器單位進行是否命中高速緩存的第2判定,所以即使各自被許可的存 儲器單位是以不同的多個存取進行存取的高速緩沖存儲器,也可對同 一地址空間進行高速緩存。另外,在上述本發(fā)明的高速緩沖存儲器控制裝置中,存儲器單位 選擇裝置在被是否命中控制部判定為未命中高速緩存時,對于高速緩 沖存儲器的全部存儲器單位,可進行存取,是否命中控制部對于高速 緩沖存儲器的全部存儲器單位,進行是否命中高速緩存的第2判定。按照該結(jié)構(gòu),由于對于全部存儲器單位進行是否命中高速緩存的 第2判定,所以即使各自被許可的存儲器單位是以不同的多個存取進 行存取的高速緩沖存儲器,也可對同一地址空間進行高速緩存。另外,在上述本發(fā)明的高速緩沖存儲器控制裝置中,高速緩沖存 儲器從至少2個存取元被存取,高速緩存重新裝填可否設定部與至少2 個存取元中的各存取元對應地,在每個存儲器單位預先設定高速緩存 重新裝填的可否。另外,理想情況是,上述高速緩存重新裝填可否設定部有設定每 個存儲器單位的高速緩存重新裝填的可否的寄存器,可用軟件變更寄 存器的值。發(fā)明的效果如果應用本發(fā)明,則在裝載多處理器或進行多線程處理的CPU (Central Processing Unit:中央處理單元)并裝栽共有高速緩沖存儲 器的系統(tǒng)中,在高速緩存控制部可對各處理器或線程分配進行重新裝 填的通道的情況下,可降低高速緩存存取的功率而并不降低高速緩存 存取周期的性能。
圖1是表示本發(fā)明的實施例1中的高速緩沖存儲器控制裝置的系
統(tǒng)結(jié)構(gòu)的方框圖。
圖2是本發(fā)明的實施例1中的高速緩存存取的流程圖。
圖3是本發(fā)明的實施例1中的高速緩沖存儲器控制裝置的時序圖
(分配,通道內(nèi)的命中)。
圖4是本發(fā)明的實施例1中的高速緩沖存儲器控制裝置的時序圖
(分配,通道以外的命中)。
圖5是本發(fā)明的實施例2中的高速緩存存取的流程圖。
圖6是本發(fā)明的實施例2中的高速緩沖存儲器控制裝置的時序圖。
圖7是表示本發(fā)明的實施例3中的高速緩沖存儲器控制裝置的系 統(tǒng)結(jié)構(gòu)的方框圖。
符號說明 (l畫l ) CPU1 (12 ) CPU2 (1-3)高速緩存控制部 (1-4)高速緩沖存儲器 (1-5)存取調(diào)??刂撇?(1-6)重新裝填許可通道設定部 (1-7) CS信號生成部 (1-8)是否命中控制部 (1-9)通道1 (1-10)通道2 (1-11)通道3 (1-12)通道4 (1隱13 ) CPU1請求 (1-14) CPU1 ID (1-15) CPU1地址 (1-16) CPU2請求 (1-17) CPU2 ID (1-18 ) CPU2地址 (1-19)存取地址
1-20)通道1 CS信號 1-21)通道2CS信號 1-22)通道3 CS信號 1-23)通道4CS信號 1-24)通道1命中信號 1-25)通道2命中信號 1-26)通道3命中信號 1-27)通道4命中信號 1-28 )數(shù)據(jù)選擇信號 1-29 )通道1數(shù)據(jù) 1-30)通道2數(shù)據(jù) 1-31)通道3數(shù)據(jù) 1-32 )通道4數(shù)據(jù) 1-33)高速緩存讀出數(shù)據(jù) 1-34 )通道選擇器 1-35)存取結(jié)束信號 1-36) CPU1肯定 1-37) CPU2肯定 1-38)時鐘 1-39 )存取ID 1-40)重新裝填許可信息 1-41 ) BCU 1-42) IO總線 1-43)許可設定寄存器1 1-44)許可設定寄存器2 2-1 第l存取的步驟 2-2是否命中第l判定的步驟 2-3 第2存取的步驟 2-4是否命中第2判定的步驟 2-5 高速緩存重新裝填的步驟 2-6數(shù)據(jù)輸出的步驟 2-7 存取結(jié)束的步驟
具體實施例方式
以下,參照
本發(fā)明的實施例。 實施例1
圖l表示實施例1中的高速緩沖存儲器控制裝置的系統(tǒng)結(jié)構(gòu)圖。 在圖1中表示讀出存取時的命中高速緩存動作所需的功能部。在該系
統(tǒng)中,CPU1 (1-1)和CPU2 (1-2)由高速緩存控制部(1-3)共有高 速緩沖存儲器(1-4)而動作。
在高速緩存控制部(1-3)中,符號(1-5)表示存取調(diào)??刂撇?, 符號(l-6 )表示重新裝填許可通道設定部,符號(l-7 )表示CS ( Chip Select:片選)信號生成部,符號(1-8 )表示是否命中控制部。符號(1-43 ) 表示許可設定寄存器1 ,符號(1-44 )表示許可設定寄存器2。符號(1-41 ) 表示總線控制部即BCU (Bus Control Unit:總線控制單元),符號 (1-42 )表示IO (Input/Output:輸入/輸出)總線。
在高速緩沖存儲器(1-4)中,符號(1-9)表示通道1,符號(1-10)表示通道2,符號(1-11)表示通道3,符號(l-l2)表示通道4。
符號(1-13 )表示CPU1請求,符號(1-14 )表示CPU1ID,符號 (1-15 )表示CPUl地址。符號(1-16 )表示CPU2請求,符號(1-17 ) 表示CPU2ID,符號(1-18)表示CPU2地址。符號(1-19)表示高速 緩存控制部(1-3)的存取地址。
符號(l-20)表示通道1CS信號,符號(1-21)表示通道2CS信 號,符號(1-22 )表示通道3CS信號,符號(l-23 )表示通道4CS信 號。各通道的CS信號,即符號(1-20) ~ (1-23)中所示的各信號為 負邏輯的信號。符號(1-24)表示通道l命中信號,符號(l-25)表示 通道2命中信號,符號(l-26)表示通道3命中信號,符號(1-27)表 示通道4命中信號。符號(l-28)表示數(shù)據(jù)選擇信號。符號(1-29)表 示通道1數(shù)據(jù),符號(U0)表示通道2數(shù)據(jù),符號(1-31)表示通道 3數(shù)據(jù),符號(1-32)表示通道4數(shù)據(jù)。符號(1-33)表示高速緩存讀 出數(shù)據(jù)。符號(1-34)表示通道選擇器。符號(I-35)表示存取結(jié)束信 號。符號(1-36)表示CPU1肯定,符號(1-37)表示CPU2肯定。符 號(l-38 )表示時鐘。符號(l-39 )表示存取ID。符號(1-40 )表示重 新裝填許可信息。
以下,詳細地說明本實施例的高速緩沖存儲器控制裝置。在由
CPU1 (1-1)和CPU2 (1-2)進行存儲器存取的情況下,在高速緩存控 制部(1-3)的存取調(diào)??刂撇?1-5)中,調(diào)停從哪一CPU進行存取, 生成從受理了處理的CPU的ID進行高速緩存存取的存取ID (1-39 )。 在此處,受理了處理的CPU的ID直接成為存取ID (1-39)。
高速緩存控制部(1-3)通過存取ID (1-39),例如選擇CPU1地 址(l-l5),送給高速緩沖存儲器(1-4)。
在高速緩存控制部(1-3)中,具有重新裝填許可通道設定部(1-6 ),具有設定由CPU1 (1-1)和CPU2 (1-2 )執(zhí)行中的程序?qū)δ囊煌?道許可重新裝填的許可設定寄存器1 (1-43)、許可設定寄存器2 (1-44)。許可設定寄存器l (1-43)保持對CPU1 (1-1)的設定,許可設 定寄存器2保持對CPU2的設定。另外,許可設定寄存器1 (1-43)、 許可設定寄存器2 ( 1-43 )是可從BCU (1-41 )經(jīng)由IO總線(1-42 ) 進行存取的寄存器,是可由軟件自由地設定的寄存器。
高速緩沖存儲器U-4)具有組相聯(lián)結(jié)構(gòu)。在圖中示出了 4通道組 相聯(lián)結(jié)構(gòu)的高速緩沖存儲器(1-4)。具體地說,高速緩沖存儲器(1-4 )由通道1(1-9)、通道2 ( 1-10 )、通道3(1-11)、通道4 ( 1-12 ) 這4個存儲器塊(存儲器單位)構(gòu)成。各通道由保持標簽(tag)數(shù)據(jù) 的標簽存儲器和保持數(shù)據(jù)的數(shù)據(jù)存儲器構(gòu)成。
對各通道的存取通過從CS信號生成部(1-7 )輸入CS信號來執(zhí)行。 CS信號生成部(I-7)生成通道1CS信號(1-20),輸入到通道l (l國 9)。輸入了 CS信號的通道1 (1-9)對存取地址(1-19),在本例中 為CPU1地址(1-15),進行是否命中高速緩存的判定,并將通道l命 中信號(l-24)輸出給是否命中控制部(1-8)。在命中高速緩存的情 況下,從通道l內(nèi)的數(shù)據(jù)存儲器輸出通道l數(shù)據(jù)(1-29)。其它的通道 也同樣地動作。
是否命中控制部(I-8)接受通道l命中信號(1-24)、通道2命 中信號(1-25)、通道3命中信號(1-26)、通道4命中信號(1-27), 只要任意一個命中信號被認定(assert),則判斷為命中高速緩存,輸 出數(shù)據(jù)選擇信號U-28)。另外,是否命中控制部(1-8)在輸出數(shù)據(jù) 選擇信號(1-28)的同時,還輸出存取結(jié)束信號(1-35),告知存取調(diào) 停控制部(1-5)存取已結(jié)束,存取調(diào)??刂撇?l-5)根據(jù)當前正存取
的存取ID ( 1-39 )輸出CPU1肯定(1-36 )或CPU2肯定(1-37 )。
通道選擇器(1-34)如上所述接受數(shù)據(jù)選擇信號(1-28),選擇已 命中的通道的數(shù)據(jù),將高速緩存讀出數(shù)據(jù)(1-33)輸出給CPU1 (1-1) 和CPU2 (l誦2 )。
圖2表示本發(fā)明的實施例1中的高速緩存存取的流程圖。如果從 CPU1 (1-1 )或CPU2 (1-2 )發(fā)生存取,則決定由存取調(diào)??刂撇?1-5 ) 受理存取的CPU,生成存取ID(l-39),開始高速緩存存取。
一旦開始高速緩存存取,則從重新裝填許可通道設定部(1-6)向 CS信號生成部(1-7),以存取ID (1-39)為基礎輸出重新裝填許可 信息(1-40 )。在受理了 CPU1 (1-1 )的情況下許可設定寄存器1 (1-43 ) 的內(nèi)容,在受理了 CPU2 (1-2)的情況下許可設定寄存器2 (I-44)的 內(nèi)容作為重新裝填許可信息(1-40)輸出。其結(jié)果是,在CS信號生成 部(1-7)僅對所分配的通道生成CS信號,由此對所分配的通道進行 存取(步驟2-1 )。
進行了存取的通道進行是否命中判定,并將作為進行了是否命中 判定的結(jié)果的命中信號返回到是否命中控制部(1-8)。在是否命中控 制部(1-8)進行是否命中的第l判定(步驟2-2)。
在是否命中控制部(1-8)從任意一個通道認定了命中信號的情況 下,判定為命中,在輸出了所命中的通道的數(shù)據(jù)(步驟2-6)后,結(jié)束 存取(步驟2-7 )。
在步驟2-2中由是否命中控制部(1-8)判定為未命中的情況下, 在CS信號生成部(1-7)對未被重新裝填許可通道設定部(1-6)內(nèi)的 許可設定寄存器l (1-43)分配的剩余通道生成CS信號,進行笫2存 取(步驟2-3 )。
進行了第2存取的通道將作為是否命中判定的結(jié)果的命中信號返 回到是否命中控制部(1-8)。在是否命中控制部(1-8)進行是否命中 的第2判定(步驟2-4)。在從任意一個通道認定了命中信號的情況下, 判定為命中,在輸出了所命中的通道的數(shù)據(jù)(步驟2-6)后,結(jié)束存取 (步驟2-7 )。
在是否命中的第2判定(步驟2-4)為未命中的情況下,開始來自 外部存儲器的重新裝填的處理(步驟2-5)。
圖3是實施例1中的時序圖,是在所分配的通道內(nèi)命中的情況下
的時序圖。圖中示出了來自CPU1 (1-1)的存取的情況。
另外,假設對CPU1 (1-1),在重新裝填許可通道設定部(1-6) 對通道1和通道2設定重新裝填的許可。
在周期3-i中發(fā)生來自cpm u-i)的高速緩存請求,在存取調(diào)停
控制部(1-5 )中受理來自CPU1 (1-1 )的存取,生成存取ID (1-39 )。 即,存取ID (1-39)輸出表示CPU1 (1-1)的"ID1"。
重新裝填許可通道設定部(1-6)從存取ID (1-39)將"0011"作 為重新裝填許可信息(1-40)輸出給CS信號生成部(1-7)。在圖中, 重新裝填許可信息(1-40)表示,各個位(bit)與各通道對應地,如
果是l則被許可。
CS信號生成部(1-7)生成只是通道l、通道2的CS信號,認定 通道1CS信號(1-20)、通道2CS信號(1-21),不認定通道3CS信 號(1-22 )、通道4CS信號(1-23 )。
輸入了 CS信號的通道1 (1-9)、通道2 (1-10)對存取地址(1-19)進行是否命中判定,在周期3-2中,輸出通道l命中信號(1-24)、 通道2命中信號(1-25)。圖3中示出了命中通道l的情形。
是否命中控制部(1-8)觀察通道1命中信號(1-24)、通道2命 中信號(1-25),判定為已命中通道l,輸出存取結(jié)束信號(I-35), 結(jié)束高速緩存控制。同時,輸出選擇通道1的信號,作為數(shù)據(jù)選擇信 號(1陽28 )。
在存取調(diào)??刂撇縐-5)從存取結(jié)束信號(1-35)和存取ID (1-39),將肯定信號返回到存取ID (I-39)所表示的CPU。在圖中,由 于是來自CPU1 (1-1)的存取,故認定CPU1肯定(1-36)。
在通道選擇器(1^4 )觀察數(shù)據(jù)選擇信號(1-28 )以選擇通道1數(shù) 據(jù)U-29),并輸出通道l的數(shù)據(jù)作為高速緩存讀出數(shù)據(jù)(1-33)。
在將重新裝填高速緩存的通道分配給多處理器的各CPU或各線 程,重新裝填的通道被各CPU、各線程限定的情況下,高速緩存存取 所命中的通道在上述所分配的通道內(nèi)的概率高。特別是,在各CPU、 各線程分割存儲器空間,即使在同 一物理存儲器內(nèi)也無共有存儲器空 間的情況下,其概率為100%。
在這樣的情況下,即使對共有高速緩沖存儲器的全部通道進行存 取,由于在所分配的通道內(nèi)命中的概率高,所以使未被分配的通道的
存儲器動作會無謂地消耗功率。
僅對所分配的通道進行存取,在該通道內(nèi)命中的情況下,無需對 剩余通道進行存取。
另外,用本發(fā)明的方法在所分配的通道內(nèi)命中的情況下,以及在 第1存取中對全部通道進行存取的情況下,直至存取結(jié)束的周期數(shù)不 變。
按照本發(fā)明,只要考慮在上述所分配的通道內(nèi)命中的概率,即可 實現(xiàn)功率降低而性能又不致變差。
圖4是實施例1中的時序圖,是在所分配的通道以外命中的情況 下的時序圖。圖4中示出了命中通道3的情況下的動作。周期3-4的動 作與圖3的周期3-l相同。
在周期3-5中,由于未命中進行過存取的通道1、通道2,所以通 道l命中信號U-24)和通道2命中信號(I-25)未被認定。高速緩存 控制部(1-3)在是否命中的第1判定中判斷為未曾命中,開始是否命 中的第2判定。
在周期3-5中由于對未被分配的通道3、通道4進行存取,從CS 信號生成部(1-7 )生成通道3CS信號(1-22 )、通道4CS信號(1-23 )。
在周期3-6中輸出通道3命中信號(1-26)和通道4命中信號(1-27)。
是否命中控制部(1-8)進行第2判定周期,當由通道3命中信號 (1-26 )命中通道3時,結(jié)束高速緩存控制,輸出存取結(jié)束信號(l-35 )。 同時,輸出通道3的選擇信號作為數(shù)據(jù)選擇信號(1-28)。
在通道選擇器(I-34)觀察數(shù)據(jù)選擇信號(I-28)以選擇通道3數(shù) 據(jù)(1-31),輸出通道3的數(shù)據(jù)作為高速緩存讀出數(shù)據(jù)(1-33)。
再有,雖然沒有圖示,但在圖3的周期3-6中通道3命中信號 (1-26)、通道4命中信號(1-27)均未被認定的情況下,是否命中控 制部U-8)判斷為高速緩存未命中,在周期3-6以后,高速緩存控制 部(1-3)開始來自外部存儲器的重新裝填的處理。
如果進行上述2階段的存取,則在共有存儲器空間內(nèi)存在命中被 自CPU以外的CPU分配到自CPU的通道以外的通道的數(shù)據(jù)的情況 下,也可進行來自高速緩沖存儲器的數(shù)據(jù)讀出。
另外,也無需通過高速緩存存取對外部存儲器進行存取,與全部
通道存取時同樣地可使用共有高速緩沖存儲器。
另外,如上所述,由于通常命中高速緩存的通道在所分配的通道 內(nèi)命中的概率高,所以若從程序的總體執(zhí)行來考慮,則能夠以與全部 通道存取時同等的存取性能來實現(xiàn)功耗降低。
再有,在本實施例中雖然對讀出存取進行了說明,但就寫入存取 而言,也可用同樣的方法來實現(xiàn)功耗降低。
另外,在本實施例中雖然對高速緩沖存儲器的各通道當被輸入cs 信號時進行是否命中判定并輸出數(shù)據(jù)的高速緩沖存儲器進行了說明, 但高速緩沖存儲器內(nèi)的標簽存儲器、數(shù)據(jù)存儲器即使是可用標簽存儲 器用的cs信號、數(shù)據(jù)存儲器用的cs信號分別進行存取的高速緩沖存 儲器,也可執(zhí)行同樣的處理。
實施例2
圖5是本發(fā)明的實施例2中的高速緩存存取的流程圖。
在實施例2中,只是實施例1中的第2存取時的存取通道數(shù)不同,
從存取開始至第l存取的步驟(步驟2-l、 2-2)與第2存取以后的步驟 (步驟2-4、 2-5、 2-6、 2-7)相同。
在實施例2中,在第2存取(步驟3-l)中,對全部通道進行存取。 圖6是實施例2中的時序圖。圖中示出了命中未被分配的通道的
情形的時序圖。
再有,命中所分配的通道的情形是與實施例1完全相同的存取時 序(圖3)。
周期6-l的動作與圖3的周期3-l相同。
在周期6-l中,由于未命中已存取過的通道l、通道2,所以通道l 命中信號(1-24)和通道2命中信號(1-25)未被認定。高速緩存控制 部(1-3)在是否命中的第1判定中判斷為未曾命中,開始是否命中的 第2判定。
在周期6-2中,進行全部通道的存取。從CS信號生成部(1-7 )生 成通道ICS信號(1-20 )、通道2CS信號(1-21 )、通道3CS信號(1-22 )、 通道4CS信號(1-23)。
在周期6-3中輸出通道3命中信號(1-26)、通道4命中信號(1-27)。
是否命中控制部(1-8)進行是否命中的第2判定,當由通道3命
中信號(l-26)命中通道3時,結(jié)束高速緩存控制,輸出存取結(jié)束信號 (1-35)。同時,輸出通道3的選擇信號作為數(shù)據(jù)選擇信號(1-28)。
在通道選擇器(1-34)觀察數(shù)據(jù)選擇信號(1-28)以選擇通道3數(shù) 據(jù)(1-31),輸出通道3的數(shù)據(jù)作為高速緩存讀出數(shù)據(jù)(1-33)。
再有,與實施例l同樣地,在實施例2中雖然也僅示出讀出存取, 但對寫入存取也可應用同樣的方法。
實施例3
圖7表示實施例3中的高速緩沖存儲器控制裝置的系統(tǒng)結(jié)構(gòu)圖。 在圖7中表示讀出存取時的命中高速緩存動作所需的功能部。
該系統(tǒng)中的CPU (7-1 )是以時間單位切換程序計數(shù)器等的內(nèi)部資 源信息而執(zhí)行多個程序的CPU,或用一個CPU并行執(zhí)行多個程序的 CPU (多線程)。在此處,假設本實施例的CPU (7-1)是進行通常的 多線程動作,在存儲器存取的執(zhí)行中線程不作切換的CPU。
符號(7_2)表示存取控制部,符號(7-3)表示CPU地址,符號 (7-4 )表示CPU請求,符號(7-5 )表示CPU肯定,符號(7-6 )表 示處理ID。符號(7-7)表示保持每個處理ID的重新裝填許可通道的 設定的許可設定寄存器。
在從CPU (7-1)進行存取的情況下,輸出CPU請求(7-4),與 之同步地輸出當前正在執(zhí)行的處理的識別符即處理ID (7-6)。存取控 制部(7-2)接受CPU請求(7-4),開始高速緩存存取。另外,將存 取ID (1-39)輸出給重新裝填許可通道設定部(1-6)。在重新裝填許 可通道設定部(1-6 )中有對每個處理ID可設定重新裝填許可通道的許 可設定寄存器(7-7),將與存取ID (1-39)對應的設定作為重新裝填 許可信息(1-40)輸出。在該實施例中,處理ID (7-6)作為存取ID (1-39)直接原樣輸出,但如果能夠理解為與處理ID (7-6)對應,也 可以是不同的數(shù)據(jù)。
其后的處理與實施例l、實施例2相同,得到同樣的效果。
如上所述,CPU (7-1)進行通常的多線程動作,在讀出存取過程 中(在讀出數(shù)據(jù)返回前)線程不作切換。即,在高速緩存讀出數(shù)據(jù)(1-33 ) 被輸入到CPU (7-1)之前線程不作切換。因此,高速緩存讀出數(shù)據(jù) (1-33)總是啟動了其讀出存取的與處理ID(7-6)對應的數(shù)據(jù)。因此, CPU (7-1)可原樣取入高速緩存讀出數(shù)據(jù)(1-33)。
另外,與實施例1同樣地示出了僅僅是讀出存取的功能,但對寫 入存取也可應用同樣的方法。
再有,在上述各實施例中,是否命中的第1判定的結(jié)果是,完成 對命中高速緩存的情形的高速緩沖存儲器的存取,進行對未命中高速
緩存的情形的高速緩沖存儲器的剩余通道或全部通道的存取,以進行
是否命中的第2判定。但是,是否命中的第1判定的結(jié)果,也可以是 在未命中高速緩存的情況下不進行對高速緩沖存儲器的剩余通道或全 部通道的存取,也就是說不進行是否命中的第2判定,使來自外部存 儲器的重新裝填的處理開始。 工業(yè)上的可利用性
本發(fā)明的高速緩沖存儲器控制裝置具有可降低高速緩存存取的功 率而幾乎不降低高速緩存存取周期的性能的效果,作為裝栽多處理器 或進行多線程處理的CPU并裝載共有高速緩沖存儲器的系統(tǒng)是有用 的。
權(quán)利要求
1.一種高速緩沖存儲器控制方法,其特征在于,對于由至少2個存儲器單位構(gòu)成的高速緩沖存儲器,在每個存儲器單位中預先設定高速緩存重新裝填的可否,對于在上述高速緩沖存儲器之中高速緩存重新裝填被設定為“可”的存儲器單位,有選擇地進行存取,進行是否命中高速緩存的第1判定,在命中高速緩存時,結(jié)束對上述高速緩沖存儲器的存取。
2. 如權(quán)利要求l所述的高速緩沖存儲器控制方法,其特征在于, 當上述是否命中高速緩存的第1判定的結(jié)果為未命中高速緩存時,對于上述高速緩沖存儲器之中高速緩存重新裝填被設定為"否" 的存儲器單位,有選擇地進行存取,進行是否命中高速緩存的第2判 定。
3. 如權(quán)利要求l所述的高速緩沖存儲器控制方法,其特征在于, 當上述是否命中高速緩存的第1判定的結(jié)果為未命中高速緩存時,對于上述高速緩沖存儲器的全部存儲器單位進行存取,進行是否 命中高速緩存的第2判定。
4. 如權(quán)利要求l所述的高速緩沖存儲器控制方法,其特征在于, 上述高速緩沖存儲器從至少2個存取元被存取,與上述至少2個存取元中的各存取元對應地,在每個存儲器單位預先設定高速緩存重 新裝填的可否。
5. —種高速緩沖存儲器控制裝置,其特征在于,包括高速緩沖存儲器,由至少2個存儲器單位構(gòu)成;高速緩存 重新裝填可否設定部,對于上述高速緩沖存儲器在每個存儲器單位中 設定高速緩存重新裝填的可否;存儲器單位選擇裝置,根據(jù)上述高速 緩存重新裝填可否設定部的設定狀態(tài),對于上述高速緩沖存儲器之中 高速緩存重新裝填被上述高速緩存重新裝填可否設定部設定為"可" 的存儲器單位,可有選擇地進行存??;以及是否命中控制部,對于上 述高速緩存重新裝填被設定為"可"的存儲器單位,進行是否命中高 速緩沖存儲器的第1判定,在命中高速緩存時,結(jié)束對上述高速緩沖 存儲器的存取。
6. 如權(quán)利要求5所述的高速緩沖存儲器控制裝置,其特征在于, 上述存儲器單位選擇裝置在被上述是否命中控制部判定為未命中 高速緩存時,對于上述高速緩沖存儲器之中高速緩存重新裝填被設定 為"否"的存儲器單位,可有選擇地進行存取,上述是否命中控制部 對于上述高速緩存重新裝填被設定為"否"的存儲器單位,進行是否命中高速緩存的笫2判定。
7. 如權(quán)利要求5所述的高速緩沖存儲器控制裝置,其特征在于, 上述存儲器單位選擇裝置在被上述是否命中控制部判定為未命中高速緩存時,對于上述高速緩沖存儲器的全部存儲器單位,可進行存 取,上述是否命中控制部對于上述高速緩沖存儲器的全部存儲器單 位,進行是否命中高速緩存的第2判定。
8. 如權(quán)利要求5所述的高速緩沖存儲器控制裝置,其特征在于, 上述高速緩沖存儲器從至少2個存取元被存取,上述高速緩存重新裝填可否設定部與上述至少2個存取元中的各存取元對應地,在每 個存儲器單位預先設定高速緩存重新裝填的可否。
9. 如權(quán)利要求5所述的高速緩沖存儲器控制裝置,其特征在于, 上述高速緩存重新裝填可否設定部有設定每個存儲器單位的高速緩存重新裝填的可否的寄存器,可用軟件變更上述寄存器的值。
全文摘要
本發(fā)明的目的在于,削減伴隨是否命中高速緩存的判定的功耗。為此,對各CPU或各線程,在設置了對高速緩沖存儲器內(nèi)的各通道的高速緩存重新裝填是否可能的設定裝置的對高速緩沖存儲器進行存取的情況下,首先僅對重新裝填被設定為“可能”的通道進行是否命中高速緩存的第1判定(步驟2-1、2-2),在是否命中高速緩存的第1判定結(jié)果為命中高速緩存的情況下,結(jié)束存取(步驟2-6)。在未命中高速緩存的情況下,僅對重新裝填未被設定為“可能”的通道進行存取(步驟2-3),或者,進行對全部通道的存取的是否命中的第2判定(步驟2-4)。
文檔編號G06F12/12GK101107599SQ20068000242
公開日2008年1月16日 申請日期2006年3月22日 優(yōu)先權(quán)日2005年3月22日
發(fā)明者金子圭介 申請人:松下電器產(chǎn)業(yè)株式會社