一種面向大數(shù)據(jù)應用的目錄緩存管理方法
【專利摘要】本發(fā)明公開了一種面向大數(shù)據(jù)應用的目錄緩存管理方法,屬于目錄緩存管理方法,在末級共享緩存中增加共享標志位與數(shù)據(jù)塊指針,共享標志位用來區(qū)分數(shù)據(jù)是私有數(shù)據(jù)或是共享數(shù)據(jù),數(shù)據(jù)塊指針用來追蹤私有數(shù)據(jù)在私有緩存中的位置,目錄緩存用來維護共享數(shù)據(jù)的一致性;基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù);私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性。本發(fā)明可以降低目錄緩存的沖突以及替換次數(shù),降低私有數(shù)據(jù)的訪存延遲,提高多核處理器系統(tǒng)的性能。
【專利說明】一種面向大數(shù)據(jù)應用的目錄緩存管理方法
【技術領域】
[0001]本發(fā)明涉及一種目錄緩存管理方法,具體地說是一種面向大數(shù)據(jù)應用的目錄緩存管理方法。
【背景技術】
[0002]隨著網(wǎng)絡購物、搜索、物聯(lián)網(wǎng)與數(shù)據(jù)挖掘等領域的迅速發(fā)展,數(shù)據(jù)中心所需要處理的數(shù)據(jù)量急劇快速地增長。數(shù)據(jù)中心采用Scale-Out方式擴容,操作簡單、成本低,逐漸成為了未來數(shù)據(jù)中心發(fā)展的主流方向。然而,與傳統(tǒng)應用相比,Scale-Out類型的應用有其特殊之處,第一數(shù)據(jù)集大,Scale-Out類型的應用需要處理的數(shù)據(jù)集往往在千兆(M)以上,遠遠超出目前處理器片上緩存容量;第二有限共享,Scale-Out類型的應用存在數(shù)據(jù)共享,主要集中在指令共享以及任務通信協(xié)作的共享,數(shù)據(jù)集約為幾兆;第三局部性,Scale-Out類型的應用存在局部性,對于小范圍的數(shù)據(jù)存在較高的數(shù)據(jù)重用。
[0003]傳統(tǒng)的緩存一致性協(xié)議是針對傳統(tǒng)應用程序而設計的,針對Scale-Out類型的應用效率不高,存在兩點主要原因:第一目錄抖動;第二延遲高。目錄抖動產生的原因是,目錄的替換策略缺少私有緩存中的數(shù)據(jù)訪問信息,大量的數(shù)據(jù)競爭有限的目錄容量,造成替換了在私有緩存中被經(jīng)常使用的數(shù)據(jù)。高的訪問延遲產生的原因是,對于私有數(shù)據(jù)本身不需要維護數(shù)據(jù)一致性,而在傳統(tǒng)設計中,需要競爭目錄緩存,而在目錄緩存發(fā)生替換時存在較長的時間延遲,嚴重影響系統(tǒng)性能。
【發(fā)明內容】
[0004]本發(fā)明的技術任務是提供一種可以降低目錄緩存的沖突以及替換次數(shù),降低私有數(shù)據(jù)的訪存延遲,提高多核處理器系統(tǒng)的性能的一種面向大數(shù)據(jù)應用的目錄緩存管理方法。
[0005]本發(fā)明的技術任務是按以下方式實現(xiàn)的:
一種面向大數(shù)據(jù)應用的目錄緩存管理方法,在末級共享緩存(Last-Level-Cache,LLC)中增加共享標志位與數(shù)據(jù)塊指針,共享標志位用來區(qū)分數(shù)據(jù)是私有數(shù)據(jù)或是共享數(shù)據(jù),數(shù)據(jù)塊指針用來追蹤私有數(shù)據(jù)在私有緩存中的位置,目錄緩存(Directory Cache,DC)用來維護共享數(shù)據(jù)的一致性;基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù);私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性。
[0006]共享標志位與數(shù)據(jù)塊指針的控制過程如下:共享標志位用來標志該數(shù)據(jù)在片上是否處于共享狀態(tài),當緩存塊處于無效狀態(tài)時標志位不起作用,當緩存塊處于有效狀態(tài)時,首次建立的緩存塊默認是私有的,此時,數(shù)據(jù)塊指針用來索引該緩存塊在私有緩存中的數(shù)據(jù)備份,如果私有緩存中沒有備份,數(shù)據(jù)塊指針指向空索引(NULL)。
[0007]目錄緩存用來維護共享數(shù)據(jù)的一致性,具體是指:目錄緩存是一個采用組相聯(lián)結構的緩存,每個緩存塊包括標簽(TAG)與共享向量(Shared-Vector);共享向量用來記錄共享數(shù)據(jù)在私有緩存中的位置。
[0008]基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù),具體是指: 一次數(shù)據(jù)訪問根據(jù)末級共享緩存以及目錄緩存的命中與缺失情況將數(shù)據(jù)塊分為如下四類:
(1)、LLC-Hit及DC-Hit的數(shù)據(jù)塊,其中DC-Hit說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時LLC中該數(shù)據(jù)的共享標志位處于共享狀態(tài);
(2)LLC-Hit及DC-Miss的數(shù)據(jù)塊,其中DC-Miss說明該數(shù)據(jù)塊是私有數(shù)據(jù)、處于私有狀態(tài),此時LLC中該數(shù)據(jù)塊的共享標志位處于私有狀態(tài),但是數(shù)據(jù)塊指針未必有效,允許離處理器更近的私有緩存中沒有數(shù)據(jù)備份;
(3)、LLC-Miss及DC-Hit的數(shù)據(jù)塊,其中DC-Hit說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時LLC-Miss說明LLC的組織方式是無包含關系(Non-1nclusive)或者互斥關系(Exclusive)的;
(4)、LLC-Miss及DC-Miss的數(shù)據(jù)塊,說明該數(shù)據(jù)塊在片上沒有備份,要重新建立緩存,對于新建立的緩存數(shù)據(jù)默認是私有數(shù)據(jù);
在上述四類情況的數(shù)據(jù)塊中,有兩類數(shù)據(jù)塊(I) (3)處于共享狀態(tài),這兩類數(shù)據(jù)塊需要占用目錄緩存的空間;另外兩類(2) (4)處于私有狀態(tài),占用末級共享緩存的空間,不占用目錄緩存的空間。
[0009]私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性,具體是指:
(1)、對于任意一次數(shù)據(jù)訪問,首先訪問末級共享緩存,如果末級共享緩存缺失,則訪問目錄緩存,如果目錄緩存缺失,則說明這次訪問請求的是一組新數(shù)據(jù),從內存中取數(shù)據(jù)回填到末級共享緩存,在末級共享緩存中標記上私有數(shù)據(jù),數(shù)據(jù)塊指針指向發(fā)出請求的處理器核,返回數(shù)據(jù)到更高層的私有緩存中,該數(shù)據(jù)塊不在目錄緩存中占用空間;
(2)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存缺失,則需要訪問目錄緩存,如果在目錄緩存中命中,則說明這次訪問請求的是一組共享數(shù)據(jù);如果是寫操作,需要向所有的共享數(shù)據(jù)發(fā)送使無效消息,然后從目錄緩存中退出,向內存讀取數(shù)據(jù)保存在末級共享緩存中,并返回到更高層的私有緩存,在末級共享緩存中標記為私有數(shù)據(jù),數(shù)據(jù)塊指針指向發(fā)出請求的處理器核;如果是讀操作,在目錄緩存的共享向量中對應的位置做標記,從內存讀取數(shù)據(jù)保存在末級共享緩存,并返回到更高層的私有緩存,在末級共享緩存中標記為共享數(shù)據(jù),數(shù)據(jù)塊指針指向空索引(NULL);
(3)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存命中,且標記為私有數(shù)據(jù),但是請求的處理器核與數(shù)據(jù)塊指針指向的處理器核不同(訪存請求不可能從同一個處理器核發(fā)出);如果是寫請求,首先根據(jù)一致性協(xié)議維護一致性(如果是臟數(shù)據(jù)需要回寫,如果是干凈數(shù)據(jù)需要使無效該數(shù)據(jù)),然后,修改數(shù)據(jù)塊指針,最后寫入數(shù)據(jù)到末級共享緩存;如果是讀請求,需要將數(shù)據(jù)的狀態(tài)改成共享狀態(tài),將數(shù)據(jù)塊指針指向空索引(NULL),然后,在目錄緩存中占用一項紀錄共享向量;
(4)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存命中,且標記為共享狀態(tài);如果是寫操作,首先訪問目錄緩存,根據(jù)共享向量使無效所有私有緩存中的數(shù)據(jù),然后修改標記為私有數(shù)據(jù),將數(shù)據(jù)塊指針指向發(fā)出請求的處理器核,寫入數(shù)據(jù)到末級共享緩存并返回數(shù)據(jù)到更高層的私有緩存;如果是讀操作,訪問目錄緩存,修改共享向量,返回數(shù)據(jù)。
[0010]本發(fā)明的一種面向大數(shù)據(jù)應用的目錄緩存管理方法具有以下優(yōu)點:可以降低目錄緩存的沖突以及替換次數(shù),降低私有數(shù)據(jù)的訪存延遲,提高多核處理器系統(tǒng)的性能。因而,具有很好的推廣使用價值。
【具體實施方式】
[0011 ] 參照具體實施例對本發(fā)明的一種面向大數(shù)據(jù)應用的目錄緩存管理方法作以下詳細地說明。
[0012]實施例1:
本發(fā)明的一種面向大數(shù)據(jù)應用的目錄緩存管理方法,在末級共享緩存(Last-Level-Cache, LLC)中增加共享標志位與數(shù)據(jù)塊指針,共享標志位用來區(qū)分數(shù)據(jù)是私有數(shù)據(jù)或是共享數(shù)據(jù),數(shù)據(jù)塊指針用來追蹤私有數(shù)據(jù)在私有緩存中的位置,目錄緩存(Directory Cache,DC)用來維護共享數(shù)據(jù)的一致性;基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù);私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性。
[0013]共享標志位與數(shù)據(jù)塊指針的控制過程如下:共享標志位用來標志該數(shù)據(jù)在片上是否處于共享狀態(tài),當緩存塊處于無效狀態(tài)時標志位不起作用,當緩存塊處于有效狀態(tài)時,首次建立的緩存塊默認是私有的,此時,數(shù)據(jù)塊指針用來索引該緩存塊在私有緩存中的數(shù)據(jù)備份,如果私有緩存中沒有備份,數(shù)據(jù)塊指針指向
目錄緩存用來維護共享數(shù)據(jù)的一致性,具體是指:目錄緩存是一個采用組相聯(lián)結構的緩存,每個緩存塊包括標簽(TAG)與共享向量(Shared-Vector);共享向量用來記錄共享數(shù)據(jù)在私有緩存中的位置。
[0014]基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù),具體是指: 一次數(shù)據(jù)訪問根據(jù)末級共享緩存以及目錄緩存的命中與缺失情況將數(shù)據(jù)塊分為如下四類:
(1)、LLC-Hit及DC-Hit的數(shù)據(jù)塊,其中DC-Hit說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時LLC中該數(shù)據(jù)的共享標志位處于共享狀態(tài);
(2)LLC-Hit及DC-Miss的數(shù)據(jù)塊,其中DC-Miss說明該數(shù)據(jù)塊是私有數(shù)據(jù)、處于私有狀態(tài),此時LLC中該數(shù)據(jù)塊的共享標志位處于私有狀態(tài),但是數(shù)據(jù)塊指針未必有效,允許離處理器更近的私有緩存中沒有數(shù)據(jù)備份;
(3)、LLC-Miss及DC-Hit的數(shù)據(jù)塊,其中DC-Hit說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時LLC-Miss說明LLC的組織方式是無包含關系(Non-1nclusive)或者互斥關系(Exclusive)的;
(4)、LLC-Miss及DC-Miss的數(shù)據(jù)塊,說明該數(shù)據(jù)塊在片上沒有備份,要重新建立緩存,對于新建立的緩存數(shù)據(jù)默認是私有數(shù)據(jù);
在上述四類情況的數(shù)據(jù)塊中,有兩類數(shù)據(jù)塊(I) (3)處于共享狀態(tài),這兩類數(shù)據(jù)塊需要占用目錄緩存的空間;另外兩類(2) (4)處于私有狀態(tài),占用末級共享緩存的空間,不占用目錄緩存的空間。
[0015]實施例2: 本發(fā)明的一種面向大數(shù)據(jù)應用的目錄緩存管理方法,在末級共享緩存(Last-Level-Cache, LLC)中增加共享標志位與數(shù)據(jù)塊指針,共享標志位用來區(qū)分數(shù)據(jù)是私有數(shù)據(jù)或是共享數(shù)據(jù),數(shù)據(jù)塊指針用來追蹤私有數(shù)據(jù)在私有緩存中的位置,目錄緩存(Directory Cache,DC)用來維護共享數(shù)據(jù)的一致性;基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù);私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性。
[0016]末級共享緩存(Last-Level-Cache, LLC)包含三部分數(shù)據(jù):標簽(Tag)、數(shù)據(jù)(Data)與狀態(tài)位(VUDA)。標簽(Tag)用來與訪存地址進行比較,檢查緩存塊是否命中;數(shù)據(jù)(Data)用來緩存內存數(shù)據(jù);狀態(tài)位(VUDA)中的四位分別表示:V (Valid,數(shù)據(jù)有效)、U(Used,數(shù)據(jù)被訪問過)、D (Dirty,數(shù)據(jù)是否為臟)、A (Allocated,緩存塊已經(jīng)被分配)。新增了兩部分數(shù)據(jù):數(shù)據(jù)塊指針(Pointer)與共享標志位(SV)。其中,數(shù)據(jù)塊指針(Pointer)用來記錄數(shù)據(jù)在哪個處理器核中有備份;共享標志位中的兩位分別表示:S (Shared,數(shù)據(jù)塊處于共享態(tài))、N (NULL,數(shù)據(jù)塊指針指向空索引)。
[0017]共享標志位與數(shù)據(jù)塊指針的控制過程如下:共享標志位用來標志該數(shù)據(jù)在片上是否處于共享狀態(tài),當緩存塊處于無效狀態(tài)時標志位不起作用,當緩存塊處于有效狀態(tài)時,首次建立的緩存塊默認是私有的,此時,數(shù)據(jù)塊指針用來索引該緩存塊在私有緩存中的數(shù)據(jù)備份,如果私有緩存中沒有備份,數(shù)據(jù)塊指針指向
目錄緩存用來維護共享數(shù)據(jù)的一致性,具體是指:目錄緩存是一個采用組相聯(lián)結構的緩存,每個緩存塊包括標簽(TAG)與共享向量(Shared-Vector);共享向量用來記錄共享數(shù)據(jù)在私有緩存中的位置。
[0018]基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù),具體是指: 一次數(shù)據(jù)訪問根據(jù)末級共享緩存以及目錄緩存的命中與缺失情況將數(shù)據(jù)塊分為如下四類:
(1)、LLC-Hit及DC-Hit的數(shù)據(jù)塊,其中DC-Hit說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時LLC中該數(shù)據(jù)的共享標志位處于共享狀態(tài);
(2)LLC-Hit及DC-Miss的數(shù)據(jù)塊,其中DC-Miss說明該數(shù)據(jù)塊是私有數(shù)據(jù)、處于私有狀態(tài),此時LLC中該數(shù)據(jù)塊的共享標志位處于私有狀態(tài),但是數(shù)據(jù)塊指針未必有效,允許離處理器更近的私有緩存中沒有數(shù)據(jù)備份;
(3)、LLC-Miss及DC-Hit的數(shù)據(jù)塊,其中DC-Hit說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時LLC-Miss說明LLC的組織方式是無包含關系(Non-1nclusive)或者互斥關系(Exclusive)的;
(4)、LLC-Miss及DC-Miss的數(shù)據(jù)塊,說明該數(shù)據(jù)塊在片上沒有備份,要重新建立緩存,對于新建立的緩存數(shù)據(jù)默認是私有數(shù)據(jù);
在上述四類情況的數(shù)據(jù)塊中,有兩類數(shù)據(jù)塊(I) (3)處于共享狀態(tài),這兩類數(shù)據(jù)塊需要占用目錄緩存的空間;另外兩類(2) (4)處于私有狀態(tài),占用末級共享緩存的空間,不占用目錄緩存的空間。
[0019]私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性,具體是指:
(I)、對于任意一次數(shù)據(jù)訪問,首先訪問末級共享緩存,如果末級共享緩存缺失,則訪問目錄緩存,如果目錄緩存缺失,則說明這次訪問請求的是一組新數(shù)據(jù),從內存中取數(shù)據(jù)回填到末級共享緩存,在末級共享緩存中標記上私有數(shù)據(jù),數(shù)據(jù)塊指針指向發(fā)出請求的處理器核,返回數(shù)據(jù)到更高層的私有緩存中,該數(shù)據(jù)塊不在目錄緩存中占用空間;
(2)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存缺失,則需要訪問目錄緩存,如果在目錄緩存中命中,則說明這次訪問請求的是一組共享數(shù)據(jù);如果是寫操作,需要向所有的共享數(shù)據(jù)發(fā)送使無效消息,然后從目錄緩存中退出,向內存讀取數(shù)據(jù)保存在末級共享緩存中,并返回到更高層的私有緩存,在末級共享緩存中標記為私有數(shù)據(jù),數(shù)據(jù)塊指針指向發(fā)出請求的處理器核;如果是讀操作,在目錄緩存的共享向量中對應的位置做標記,從內存讀取數(shù)據(jù)保存在末級共享緩存,并返回到更高層的私有緩存,在末級共享緩存中標記為共享數(shù)據(jù),數(shù)據(jù)塊指針指向空索引(NULL);
(3)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存命中,且標記為私有數(shù)據(jù),但是請求的處理器核與數(shù)據(jù)塊指針指向的處理器核不同(訪存請求不可能從同一個處理器核發(fā)出);如果是寫請求,首先根據(jù)一致性協(xié)議維護一致性(如果是臟數(shù)據(jù)需要回寫,如果是干凈數(shù)據(jù)需要使無效該數(shù)據(jù)),然后,修改數(shù)據(jù)塊指針,最后寫入數(shù)據(jù)到末級共享緩存;如果是讀請求,需要將數(shù)據(jù)的狀態(tài)改成共享狀態(tài),將數(shù)據(jù)塊指針指向空索引(NULL),然后,在目錄緩存中占用一項紀錄共享向量;
(4)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存命中,且標記為共享狀態(tài);如果是寫操作,首先訪問目錄緩存,根據(jù)共享向量使無效所有私有緩存中的數(shù)據(jù),然后修改標記為私有數(shù)據(jù),將數(shù)據(jù)塊指針指向發(fā)出請求的處理器核,寫入數(shù)據(jù)到末級共享緩存并返回數(shù)據(jù)到更高層的私有緩存;如果是讀操作,訪問目錄緩存,修改共享向量,返回數(shù)據(jù)。
[0020]通過上面【具體實施方式】,所述【技術領域】的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的2種【具體實施方式】。在公開的實施方式的基礎上,所述【技術領域】的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。
【權利要求】
1.一種面向大數(shù)據(jù)應用的目錄緩存管理方法,其特征在于在末級共享緩存中增加共享標志位與數(shù)據(jù)塊指針,共享標志位用來區(qū)分數(shù)據(jù)是私有數(shù)據(jù)或是共享數(shù)據(jù),數(shù)據(jù)塊指針用來追蹤私有數(shù)據(jù)在私有緩存中的位置,目錄緩存用來維護共享數(shù)據(jù)的一致性;基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù);私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性。
2.根據(jù)權利要求1所述的一種面向大數(shù)據(jù)應用的目錄緩存管理方法,其特征在于共享標志位與數(shù)據(jù)塊指針的控制過程如下:共享標志位用來標志該數(shù)據(jù)在片上是否處于共享狀態(tài),當緩存塊處于無效狀態(tài)時標志位不起作用,當緩存塊處于有效狀態(tài)時,首次建立的緩存塊默認是私有的,此時,數(shù)據(jù)塊指針用來索引該緩存塊在私有緩存中的數(shù)據(jù)備份,如果私有緩存中沒有備份,數(shù)據(jù)塊指針指向空索引。
3.根據(jù)權利要求1所述的一種面向大數(shù)據(jù)應用的目錄緩存管理方法,其特征在于目錄緩存用來維護共享數(shù)據(jù)的一致性,具體是指:目錄緩存是一個采用組相聯(lián)結構的緩存,每個緩存塊包括標簽與共享向量;共享向量用來記錄共享數(shù)據(jù)在私有緩存中的位置。
4.根據(jù)權利要求1所述的一種面向大數(shù)據(jù)應用的目錄緩存管理方法,其特征在于基于末級共享緩存以及目錄緩存將數(shù)據(jù)分成私有數(shù)據(jù)與共享數(shù)據(jù),具體是指: 一次數(shù)據(jù)訪問根據(jù)末級共享緩存以及目錄緩存的命中與缺失情況將數(shù)據(jù)塊分為如下四類:
及00??!“的數(shù)據(jù)塊,其中00??!“說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時[仏中該數(shù)據(jù)的共享標志位處于共享狀態(tài); (2)及001188的數(shù)據(jù)塊,其中001188說明該數(shù)據(jù)塊是私有數(shù)據(jù)、處于私有狀態(tài),此時[仏中該數(shù)據(jù)塊的共享標志位處于私有狀態(tài); (3),及00!!“的數(shù)據(jù)塊,其中00!!“說明該數(shù)據(jù)塊是共享數(shù)據(jù)、處于共享狀態(tài),此時說明1(:的組織方式是無包含關系或者互斥關系的; (4),110-1188及001188的數(shù)據(jù)塊,說明該數(shù)據(jù)塊在片上沒有備份,要重新建立緩存,對于新建立的緩存數(shù)據(jù)默認是私有數(shù)據(jù); 在上述四類情況的數(shù)據(jù)塊中,有兩類數(shù)據(jù)塊(1)(3)處于共享狀態(tài),這兩類數(shù)據(jù)塊需要占用目錄緩存的空間;另外兩類(2) (4)處于私有狀態(tài),占用末級共享緩存的空間,不占用目錄緩存的空間。
5.根據(jù)權利要求1所述的一種面向大數(shù)據(jù)應用的目錄緩存管理方法,其特征在于私有數(shù)據(jù)不占用目錄緩存的空間,通過私有緩存中目錄維護數(shù)據(jù)一致性;共享數(shù)據(jù)占用目錄緩存空間,通過目錄緩存維護數(shù)據(jù)一致性,具體是指: (0、對于任意一次數(shù)據(jù)訪問,首先訪問末級共享緩存,如果末級共享緩存缺失,則訪問目錄緩存,如果目錄緩存缺失,則說明這次訪問請求的是一組新數(shù)據(jù),從內存中取數(shù)據(jù)回填到末級共享緩存,在末級共享緩存中標記上私有數(shù)據(jù),數(shù)據(jù)塊指針指向發(fā)出請求的處理器核,返回數(shù)據(jù)到更高層的私有緩存中,該數(shù)據(jù)塊不在目錄緩存中占用空間; 口)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存缺失,則需要訪問目錄緩存,如果在目錄緩存中命中,則說明這次訪問請求的是一組共享數(shù)據(jù);如果是寫操作,需要向所有的共享數(shù)據(jù)發(fā)送使無效消息,然后從目錄緩存中退出,向內存讀取數(shù)據(jù)保存在末級共享緩存中,并返回到更高層的私有緩存,在末級共享緩存中標記為私有數(shù)據(jù),數(shù)據(jù)塊指針指向發(fā)出請求的處理器核;如果是讀操作,在目錄緩存的共享向量中對應的位置做標記,從內存讀取數(shù)據(jù)保存在末級共享緩存,并返回到更高層的私有緩存,在末級共享緩存中標記為共享數(shù)據(jù),數(shù)據(jù)塊指針指向空索引; (3).對于任意一次數(shù)據(jù)訪問,如果末級共享緩存命中,且標記為私有數(shù)據(jù),但是請求的處理器核與數(shù)據(jù)塊指針指向的處理器核不同;如果是寫請求,首先根據(jù)一致性協(xié)議維護一致性,然后,修改數(shù)據(jù)塊指針,最后寫入數(shù)據(jù)到末級共享緩存;如果是讀請求,需要將數(shù)據(jù)的狀態(tài)改成共享狀態(tài),將數(shù)據(jù)塊指針指向空索引,然后,在目錄緩存中占用一項紀錄共享向量; “)、對于任意一次數(shù)據(jù)訪問,如果末級共享緩存命中,且標記為共享狀態(tài);如果是寫操作,首先訪問目錄緩存,根據(jù)共享向量使無效所有私有緩存中的數(shù)據(jù),然后修改標記為私有數(shù)據(jù),將數(shù)據(jù)塊指針指向發(fā)出請求的處理器核,寫入數(shù)據(jù)到末級共享緩存并返回數(shù)據(jù)到更高層的私有緩存;如果是讀操作,訪問目錄緩存,修改共享向量,返回數(shù)據(jù)。
【文檔編號】G06F12/08GK104461932SQ201410611086
【公開日】2015年3月25日 申請日期:2014年11月4日 優(yōu)先權日:2014年11月4日
【發(fā)明者】唐士斌 申請人:浪潮電子信息產業(yè)股份有限公司