基于工作負(fù)載實(shí)施動態(tài)的高速緩存啟用和禁用的制作方法
【專利摘要】一種用于在計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的方法、系統(tǒng)和存儲器控制器。在高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合以識別工作負(fù)載的變化,并且響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用高速緩存。在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載,并且響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用高速緩存。
【專利說明】基于工作負(fù)載實(shí)施動態(tài)的高速緩存啟用和禁用
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及數(shù)據(jù)處理領(lǐng)域,并且更具體地涉及一種用于在計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的方法、系統(tǒng)和存儲器控制器。
【背景技術(shù)】
[0002]現(xiàn)代計算機(jī)系統(tǒng)通常被配置以大量存儲器以便向計算機(jī)系統(tǒng)中的一個或多個處理器提供數(shù)據(jù)和指令。
[0003]在歷史上,處理器速度比針對特別是DRAM(動態(tài)隨機(jī)訪問存儲器)的大部分存儲器的存儲器訪問時間更快地有所提高。已經(jīng)構(gòu)建了存儲器層級以減少處理器和存儲器之間的性能不匹配。例如,大多數(shù)現(xiàn)代處理器被構(gòu)建為具有LI (I級)高速緩存,其由處理器半導(dǎo)體芯片上的SRAM(靜態(tài)隨機(jī)訪問存儲器)所構(gòu)建。LI高速緩存非???,僅在處理器的一個或數(shù)個周期內(nèi)提供讀和寫。然而,雖然非???,但是LI高速緩存也十分小,可能是64KB(千字節(jié))至256KB。經(jīng)常還在處理器芯片上實(shí)現(xiàn)L2 (2級)高速緩存。雖然一些處理器采用DRAM存儲,但是L2高速緩存通常也使用SRAM存儲進(jìn)行構(gòu)造。L2高速緩存通常在字節(jié)數(shù)量方面比LI高速緩存大數(shù)倍,但是讀和寫卻更慢。一些現(xiàn)代處理器芯片還包含更高級別的高速緩存,諸如L3 (3級)高速緩存。L3高速緩存能夠保存數(shù)倍于L2高速緩存的數(shù)據(jù)。L3高速緩存有時利用DRAM存儲進(jìn)行構(gòu)造。在一些計算機(jī)系統(tǒng)中,L3高速緩存在獨(dú)立于處理器的一個或多個芯片上實(shí)現(xiàn),并且利用印刷線路板(PWB)或多芯片模塊(MCM)上的連線耦合至處理器。計算機(jī)系統(tǒng)的主存儲器通常很大,經(jīng)常為許多GB(前兆字節(jié))并且通常以DRAM實(shí)現(xiàn)。
[0004]主存儲器通常利用存儲器控制器耦合至處理器,該存儲器控制器可以與處理器集成在相同設(shè)備上或者與處理器分開定位,經(jīng)常是位于相同的MCM(多芯片模塊)或PWB上。存儲器控制器從處理器接收加載或讀命令以及存儲或?qū)懨畈⑶覍δ切┟钸M(jìn)行服務(wù),從主存儲器讀數(shù)據(jù)或者向主存儲器寫數(shù)據(jù)。通常,存儲器控制器具有一個或多個隊列,例如讀隊列和寫隊列。讀隊列和寫隊列緩存包括一個或多個命令、控制、地址和數(shù)據(jù)在內(nèi)的信息;由此使得處理器在給定時間能夠有多個請求進(jìn)行處理一包括讀和/或?qū)懻埱蟆?br>
[0005]在持續(xù)的基礎(chǔ)上,工業(yè)界進(jìn)行了廣泛的研究和開發(fā)工作以創(chuàng)建有所改進(jìn)的創(chuàng)新性解決方案,以便通過改進(jìn)存儲器系統(tǒng)和存儲器子系統(tǒng)的設(shè)計和操作而使得整體系統(tǒng)性能和密度最大化。
[0006]處于存儲設(shè)備或存儲子系統(tǒng)之前或內(nèi)部的高速緩存經(jīng)常能夠產(chǎn)生非常大的性能增益。這是由聯(lián)合、寫命中、讀命中、更低的響應(yīng)時間以及突發(fā)吸收性(burst absorbency)帶來的。這種非常大的性能增益在諸如具有許多小規(guī)模連續(xù)寫入的日志之類的工作負(fù)載、具有高度空間關(guān)聯(lián)以及低隊列深度寫入的事務(wù)工作負(fù)載中最為凸顯,在上述工作負(fù)載中響應(yīng)時間是最為重要的。
[0007]然而,高速緩存也可能成為危害。高速緩存需要更多的管理并且經(jīng)常需要更多的硬件操作。這能夠隨兩種極端工作負(fù)載而顯然地看到。完全隨機(jī)的小幅寫入將快速填充高速緩存并且高速緩存將簡單地成為管理開銷。然而,根據(jù)確切的高速緩存算法以及高速緩存下的設(shè)備類型,高速緩存仍能惠及到該工作負(fù)載,因為其將操作(ops)重新排序為更具連續(xù)性。例如,利用自動扶梯(escalator)方案而使得操作離臺的高速緩存可能使得旋轉(zhuǎn)驅(qū)動器受益。完全順序的大尺寸或最大尺寸的操作將受到影響,因為它們并沒有從重寫或聯(lián)合獲益,但是它們確實(shí)導(dǎo)致了額外的硬件操作以及軟件/固件管理開銷以在高速緩存中安全地存放數(shù)據(jù)。
[0008]作為示例,假設(shè)用于保存高速緩存的冗余副本的其間具有鏡像機(jī)制的一對高速緩存存儲適配器能夠承受在兩個卡之間鏡像的最大1.3GB/S的寫數(shù)據(jù)吞吐量?,F(xiàn)在還假設(shè)當(dāng)沒有高速緩存時,每個卡能夠向其之下的驅(qū)動器輸送2.2GB/s。最后,假設(shè)適配器配對下的驅(qū)動器能夠在大規(guī)模連續(xù)工作負(fù)載上保持5GB/s,在沒有高速緩存的小規(guī)模隨機(jī)工作負(fù)載上保持200MB/S,并且在具有高速緩存的小規(guī)模隨機(jī)工作負(fù)載上保持800MB/S。
[0009]如果用戶簡單地開啟高速緩存而運(yùn)行,則大規(guī)模連續(xù)工作負(fù)載將達(dá)到1.3GB/s的極限而小規(guī)模隨機(jī)工作負(fù)載將達(dá)到800MB/S的極限。
[0010]如果用戶簡單地在高速緩存禁用的情況下運(yùn)行,則大規(guī)模連續(xù)工作負(fù)載將達(dá)到4.4GB/s的極限但是小規(guī)模隨機(jī)工作負(fù)載將僅達(dá)到200MB/S。
[0011]應(yīng)當(dāng)注意的是,在幾乎所有高速緩存存儲系統(tǒng)中,啟用和禁用高速緩存的操作都不是自由的。啟用和禁用高速緩存伴隨有硬件、固件和或軟件的開銷。
[0012]一些工作負(fù)載被非友好地高速緩存,這意味著啟用高速緩存的操作將導(dǎo)致整體性能下降。然而,一些高速緩存被友好地高速緩存則意味著高速緩存的操作將減少對于存儲系統(tǒng)中的一些其它組件的需求,這允許整體性能有所提升。一種已知的高速緩存非友好工作負(fù)載是大規(guī)模連續(xù)寫入。所有數(shù)據(jù)都必須通過系統(tǒng)移動并且高速緩存沒有提供聯(lián)合或重寫增益。然而,招致了與保持冗余副本、管理數(shù)據(jù)、存儲非易失性數(shù)據(jù)、使得數(shù)據(jù)離臺至驅(qū)動器和其它懲罰相關(guān)聯(lián)的所有開銷。
[0013]需要一種用于在計算機(jī)系統(tǒng)中實(shí)施高速緩存的動態(tài)啟用和禁用以提高性能的有效機(jī)制。
[0014]如以下描述和權(quán)利要求中所使用的,術(shù)語控制器或存儲器控制器應(yīng)當(dāng)被寬泛地理解為包括存儲器控制器、存儲控制器、輸入/輸出(I/o)適配器(Ι0Α)和存儲接口 ;并且術(shù)語高速緩存應(yīng)當(dāng)被寬泛地理解為包括各種高速緩存存儲器部署形式,包括存儲適配器高速緩存和處理器高速緩存。
【發(fā)明內(nèi)容】
[0015]本發(fā)明的主要方面是提供一種用于在計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的方法、系統(tǒng)和存儲器控制器。本發(fā)明的其它重要方面是在基本上沒有負(fù)面影響的情況下提供這樣的方法、系統(tǒng)和存儲器控制器并且克服現(xiàn)有技術(shù)的裝置的許多缺陷。
[0016]概言之,一種用于在計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的方法、系統(tǒng)和存儲器控制器。在高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合以識別工作負(fù)載的變化,并且響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用高速緩存。在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載,并且響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用高速緩存。
[0017]依據(jù)本發(fā)明的特征,監(jiān)視預(yù)定義的信息集合包括監(jiān)視預(yù)定義位置信息、預(yù)定義高速緩存操作狀態(tài)統(tǒng)計信息和預(yù)定義性能度量信息中的一個或多個。
[0018]依據(jù)本發(fā)明的特征,選擇性地禁用高速緩存是響應(yīng)于所識別的預(yù)定義的基本上連續(xù)的寫工作負(fù)載而提供的。
[0019]依據(jù)本發(fā)明的特征,在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載包括運(yùn)行的平均寫操作的到達(dá)率和平均寫操作大小中的一個或多個。
[0020]依據(jù)本發(fā)明的特征,選擇性地禁用高速緩存是響應(yīng)于所識別的基本上連續(xù)的寫工作負(fù)載以外的預(yù)定義工作負(fù)載而提供的。
[0021]依據(jù)本發(fā)明的特征,在高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合以識別工作負(fù)載變化以及在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載包括監(jiān)視統(tǒng)計信息。
【專利附圖】
【附圖說明】
[0022]本發(fā)明連同以上和其它的目標(biāo)和優(yōu)勢可以通過以下對附圖中所示的本發(fā)明的優(yōu)選實(shí)施例的詳細(xì)描述而獲得最佳理解,其中:
[0023]圖1是體現(xiàn)本發(fā)明的示例計算機(jī)系統(tǒng)的框圖;
[0024]圖2A、2B和2C共同提供了圖示依據(jù)優(yōu)選實(shí)施例的用于諸如在圖1的計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的示例操作的流程圖;和
[0025]圖3是圖示依據(jù)優(yōu)選實(shí)施例的計算機(jī)程序產(chǎn)品的框圖。
【具體實(shí)施方式】
[0026]依據(jù)以下對本發(fā)明實(shí)施例的詳細(xì)描述,對圖示出可以通過其對本發(fā)明進(jìn)行實(shí)踐的示例實(shí)施例的附圖加以參考。應(yīng)當(dāng)理解的是,可以采用其它實(shí)施并且可以進(jìn)行結(jié)構(gòu)變化而并不背離本發(fā)明的范圍。
[0027]這里所使用的術(shù)語僅是出于描述特定實(shí)施例的目的,而并非意在對本發(fā)明進(jìn)行限制。如這里所使用的,單數(shù)形式“一個”(〃a〃,"an〃和〃the")意在也包括復(fù)數(shù)形式,除非上下文明確另外有所指示。將要進(jìn)一步理解的是,當(dāng)在該說明書中使用時,術(shù)語“包括”和/或“包括了”規(guī)定了存在所提到的特征、整數(shù)、步驟、操作、要素和/或組件,而并不排除存在或增加一個或多個其它征、整數(shù)、步驟、操作、要素、組件和/或其群組。
[0028]依據(jù)本發(fā)明的特征,提供了用于基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的方法、系統(tǒng)和存儲器控制器。提供了一種低開銷的方法以識別工作負(fù)載并且動態(tài)地啟用和禁用高速緩存從而解決高速緩存在大規(guī)模連續(xù)或稍顯連續(xù)的工作負(fù)載中成為危害的情形。
[0029]依據(jù)本發(fā)明的特征,執(zhí)行一種低開銷方法以在高速緩存被啟用的同時識別大規(guī)模連續(xù)或稍顯連續(xù)的寫工作負(fù)載。執(zhí)行一種低開銷方法以在高速緩存并未被啟用的同時識別大規(guī)模連續(xù)或稍顯連續(xù)的寫工作負(fù)載以外的工作負(fù)載。
[0030]依據(jù)本發(fā)明的特征,在高速緩存被啟用的同時所執(zhí)行的低開銷方法必須在工作負(fù)載變?yōu)楦咚倬彺娣怯押玫那闆r下識別出工作負(fù)載的變化。這例如是使用多種不同的信息集合來實(shí)現(xiàn)的,諸如包括位置信息、高速緩存操作統(tǒng)計和性能度量。
[0031]現(xiàn)在參考附圖,在圖1中示出了依據(jù)優(yōu)選實(shí)施例的總體上由附圖標(biāo)記100所指示的體現(xiàn)本發(fā)明的計算機(jī)系統(tǒng),其用于基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用。計算機(jī)系統(tǒng)100包括一個或多個處理器102或通用可編程中央處理單元(CPU) 102,#1-N。如所示出的,計算機(jī)系統(tǒng)100包括多個處理器102,通常為相對大型的系統(tǒng);然而,系統(tǒng)100可以包括單個CPU 102。計算機(jī)系統(tǒng)100包括連接至每個處理器102的高速緩存存儲器104。
[0032]計算機(jī)系統(tǒng)100包括存儲器系統(tǒng)106,其包括通過總線112進(jìn)行連接的存儲器控制器108和主存儲器110??偩€112是向主存儲器110發(fā)送地址/命令信息以及從存儲器110發(fā)送和接收數(shù)據(jù)的一個或多個總線。主存儲器110是用于存儲包括程序在內(nèi)的數(shù)據(jù)的隨機(jī)訪問半導(dǎo)體存儲器。主存儲器110例如由動態(tài)隨機(jī)訪問存儲器(DRAM)、同步直接隨機(jī)訪問存儲器(SDRAM)、當(dāng)前雙倍數(shù)據(jù)速率(DDRx)SDRAM、非易失性存儲器、光學(xué)存儲和其它存儲設(shè)備。
[0033]I/O總線接口 114以及總線116、118在各種系統(tǒng)組件之間提供通信路徑??偩€116是處理器/存儲器總線,其經(jīng)常被稱作前端總線,其提供用于在CPU 102和高速緩存104、存儲器控制器108和I/O總線接口單元114之間傳輸數(shù)據(jù)的數(shù)據(jù)通信路徑。I/O總線接口114進(jìn)一步耦合至系統(tǒng)I/O總線118以便往來于各種I/O單元傳輸數(shù)據(jù)。
[0034]如所示出的,計算系統(tǒng)100包括存儲接口 120,其包括高速緩存121并且耦合至存儲設(shè)備,該存儲設(shè)備諸如直接訪問存儲設(shè)備(DASD) 122和CD-ROM 124。計算機(jī)系統(tǒng)100包括耦合至多個終端128#1-M的終端接口 126,耦合至諸如互聯(lián)網(wǎng)、局域網(wǎng)或其它網(wǎng)絡(luò)的網(wǎng)絡(luò)132的網(wǎng)絡(luò)接口 130,以及耦合至諸如第一打印機(jī)/傳真機(jī)136A和第二打印機(jī)136B的I/O設(shè)備的I/O設(shè)備接口 134。
[0035]I/O總線接口 114通過系統(tǒng)I/O總線116與多個I/O接口單元120、126、130、134進(jìn)行通信,其也被稱作I/o處理器(Ι0Ρ)或I/O適配器(Ι0Α)。系統(tǒng)I/O總線116例如是工業(yè)標(biāo)準(zhǔn)PCI總線或者其它適當(dāng)總線技術(shù)。
[0036]依據(jù)本發(fā)明的特征,處理器102、存儲器控制器108或存儲接口 120中所選擇的一個能夠被用來實(shí)施依據(jù)優(yōu)選實(shí)施例的用于基于工作負(fù)載而動態(tài)地啟用和禁用諸如高速緩存104和/或高速緩存121的高速緩存的方法,其包括用于在高速緩存被啟用的同時識別大規(guī)模連續(xù)或稍顯連續(xù)的寫工作負(fù)載的低開銷方法,以及用于在高速緩存并未啟用的同時識別大規(guī)模連續(xù)或稍顯連續(xù)的寫工作負(fù)載以外的工作負(fù)載的低開銷方法。
[0037]計算機(jī)系統(tǒng)100以足以理解本發(fā)明的簡化形式所示出。所圖示的計算機(jī)系統(tǒng)100并非意在暗示架構(gòu)或功能限制。雖然主存儲器110、高速緩存104和高速緩存121在圖1中被概念地表示為單個實(shí)體,但是將要理解的是,如本領(lǐng)域所知的,這些實(shí)際上更為復(fù)雜并且高速緩存可以存在于多個不同級別。本發(fā)明可以隨各種硬件、軟件和固件實(shí)施方式以及系統(tǒng)、各種其它內(nèi)部軟件和固件和其它內(nèi)部硬件設(shè)備而使用。
[0038]依據(jù)本發(fā)明的特征,一種低開銷方法利用預(yù)定義的不同信息集合。保存在高速緩存中的每個數(shù)據(jù)塊由高速緩存行或CL所表示。每個CL保存諸如數(shù)據(jù)與之相關(guān)聯(lián)的驅(qū)動和邏輯塊地址(LBA)之類的信息以及其它狀態(tài)信息。此外,該CL有利地保存位置位,其提供了邏輯上處于該數(shù)據(jù)之前的數(shù)據(jù)是否存在于高速緩存之中的指示。在對每個寫操作進(jìn)行處理時,僅在邏輯上處于該寫操作的第一 CL之前的CL必須被檢查,因為包括該寫入的所有后續(xù)CL根據(jù)定義都是處于高速緩存中的邏輯上的后續(xù)數(shù)據(jù)。在第一 CL具有被開啟的位置為的情況下,在每次寫入時被置入高速緩存的其位置位開啟的CL的總數(shù)簡單地是該操作的長度(以CL為單位)減I加I。隨后在離臺時,被離臺的CL中的位置位之和輕易地使得能夠在高速緩存被啟用的情況下針對每個驅(qū)動器保存位置位的總數(shù)。
[0039]依據(jù)本發(fā)明的特征,除了 CL中的信息之外,還能夠保存與高速緩存的操作相關(guān)的統(tǒng)計。例如,有利地以非常小的開銷保存寫命中的數(shù)量、重寫的數(shù)量、寫的總數(shù)、快速寫的總數(shù)和離臺數(shù)量,上述快速寫是并不等待空間被釋放的寫入。除了每種類型的事件的數(shù)量之夕卜,每種類型的事件的塊計數(shù)(CL計數(shù))也可以被保留。
[0040]依據(jù)本發(fā)明的特征,使用被開啟的位置位的總數(shù)、高速緩存中CL的總數(shù)以及其它高速緩存統(tǒng)計,有可能識別出可能為非友好的高速緩存工作負(fù)載。首先,如果位置位指示高速緩存中所有或幾乎所有的數(shù)據(jù)具有位置,例如在被開啟的位置位的總數(shù)除以高速緩存中的CL總數(shù)等于或大于95%的情況下,則能夠完成進(jìn)一步的檢查。隨后,如果作為被寫入的全部塊除以寫總數(shù)的平均傳入塊大小較大,則能夠完成進(jìn)一步的檢查。接下來,如果寫命中數(shù)量相對于寫數(shù)量非常低,例如2%或更低,或者如果離臺數(shù)量接近于寫數(shù)量,例如98%至120%,則這指示工作負(fù)載由大規(guī)模連續(xù)寫入所構(gòu)成。
[0041]依據(jù)本發(fā)明的特征,必須確定關(guān)閉高速緩存將會有所幫助。大規(guī)模連續(xù)寫入工作負(fù)載可能處于非常低的隊列深度,并且因此高速緩存通過提供非常低的響應(yīng)時間而有利于該工作負(fù)載?;蛘撸咚倬彺婵赡苡捎隍?qū)動器無法繼續(xù)而被填滿并且因此關(guān)閉高速緩存也不會有所幫助。在這種情況下,清空高速緩存的成本可能非常高。然而,如果用于維護(hù)高速緩存的硬件或管理資源存在壓力,則禁用高速緩存將提供益處。例如,在企業(yè)存儲解決方案中,高速緩存數(shù)據(jù)被非易失性地進(jìn)行保存并且被鏡像到多個物理位置。該鏡像動作和非易失性屬性有時能夠成為限制性因素。
[0042]依據(jù)本發(fā)明的特征,提供了用于檢測這種高速緩存所導(dǎo)致的瓶頸的三種可能方法,包括:
[0043]1.使用各種高速緩存相關(guān)接口的統(tǒng)計查看吞吐量。在被寫入高速緩存的塊接近限制接口的極限時,例如處于5 %之內(nèi),則能夠假設(shè)該接口成為瓶頸。
[0044]2.檢查利用計數(shù)器或隊列深度計數(shù)器。當(dāng)硬件或CPU指示其處于其極限時,我們了解到我們的工作負(fù)載將由于關(guān)閉高速緩存而獲益。
[0045]3.監(jiān)視硬件或軟件/固件操作的響應(yīng)時間。如果操作超過足夠多操作的設(shè)定閾值,則能夠假設(shè)在資源上備份了過多的工作。
[0046]依據(jù)本發(fā)明的特征,無論使用何種度量,都必須挑選閾值以指示高速緩存的清空并且變換為不進(jìn)行高速緩存。例如,如果檢測到瓶頸是由于10分鐘間隔期間90%的時間都在對資源進(jìn)行高速緩存,則存儲系統(tǒng)能夠清空高速緩存并使其禁用。而且,在高速緩存的同時,應(yīng)當(dāng)對平均運(yùn)行的寫操作到達(dá)率進(jìn)行監(jiān)視。當(dāng)高速緩存即將被禁用時,此時的平均到達(dá)率應(yīng)當(dāng)作為高速緩存到達(dá)率而單獨(dú)保存。
[0047]依據(jù)本發(fā)明的特征,除了使用高速緩存的同時可獲得的數(shù)據(jù)動態(tài)地禁用高速緩存之外,還提供了在工作負(fù)載再次變換為高速緩存友好時動態(tài)地啟用高速緩存。使高速緩存禁用的一個關(guān)鍵方面在于處理節(jié)約。因此,被用來識別變?yōu)楦邤?shù)緩存友好的工作負(fù)載的工作負(fù)載的任何機(jī)制都必須增加非常小的開銷或者至少明顯低于對高速緩存的維護(hù)。
[0048]依據(jù)本發(fā)明的特征,由于需要決定何時禁用高速緩存,因此當(dāng)每個新的寫操作到達(dá)時,運(yùn)行的平均傳入操作大小必須被進(jìn)行維護(hù)。特定于啟用被禁用的高速緩存,運(yùn)行的平均到達(dá)率也必須被保留。對于并不被尋找和旋轉(zhuǎn)延時所影響的固態(tài)驅(qū)動器而言,僅需要考慮平均傳入塊大小和到達(dá)率。如果到達(dá)率始終低于高速緩存到達(dá)率,則重新啟用高速緩存將可能是有利的。因此,必須挑選一些與之比率和時間來作出該決策。例如,如果到達(dá)率低于高速緩存到達(dá)率30%達(dá)大于2分鐘,則再次啟用高速緩存可能是有益的。
[0049]依據(jù)本發(fā)明的特征,并且如果平均操作大小下降,高速緩存可能再次成為有利的。類似于高速緩存到達(dá)率,必須挑選閾值比率和時間。一個示例是:如果平均操作大小在大于
2分鐘的時間內(nèi)下降至低于200K,則再次啟用高速緩存可能是有利的。
[0050]應(yīng)當(dāng)注意的是,到達(dá)速率和平均操作大小可以進(jìn)行交織。也就是說,具有高到達(dá)率的較小操作實(shí)際上對于高速緩存系統(tǒng)的稅賦較低,因為整體數(shù)據(jù)速率可能會較低。通過評估這兩個參數(shù),能夠確保如果工作負(fù)載再次變?yōu)楦咚倬彺嬗押梦覀兙蛯㈤_始高速緩存。
[0051]依據(jù)本發(fā)明的特征,同樣對于其性能被數(shù)據(jù)位置大幅影響的旋轉(zhuǎn)驅(qū)動器或硬盤驅(qū)動器(HDD)而言,除了平均到達(dá)率和平均操作大小之外還必須要考慮平均尋找距離。就像其它兩個參數(shù)一樣,應(yīng)當(dāng)相對于預(yù)定義的閾值對平均尋找距離進(jìn)行評估。一個示例是:如果平均尋找距離在3分鐘內(nèi)對于15%的操作大于驅(qū)動器的1/32,則再次啟用高速緩存可能是有益的。為了考慮被請求的多個同時的連續(xù)流,并且不會虛假地計算出可能比其應(yīng)該數(shù)值更高的平均尋找長度,必須要執(zhí)行連續(xù)流的檢測并且必須保存并使用距最接近的連續(xù)流的運(yùn)行的平均距離。
[0052]依據(jù)本發(fā)明的特征,利用這些方法,能夠獲得高速緩存的好處而不會在每個高速緩存非友好的工作負(fù)載上感覺到高速緩存的危害。如以上所列出的示例之中,利用大規(guī)模連續(xù)工作負(fù)載,在預(yù)先設(shè)定的閾值時間之后將會實(shí)現(xiàn)4.4GB/s,而利用小的隨機(jī)工作負(fù)載,在預(yù)先設(shè)定的閾值時間之后將會實(shí)現(xiàn)800MB/S。
[0053]參考圖2A、2B和2C,不出了依據(jù)優(yōu)選實(shí)施例的用于在圖1的系統(tǒng)中基于工作負(fù)載實(shí)施高速緩存的動態(tài)啟用和禁用的示例操作。
[0054]在圖2A中,如框200中所指示的,接收新的操作并且執(zhí)行檢查以識別出讀RD操作或?qū)慦R操作,如決策框202所示。對于所識別的讀RD操作,如框204所示,讀操作計數(shù)器CTR加1。隨后如框206所示,讀高速緩存行CL計數(shù)器CTR增加以該操作中高速緩存行CL的數(shù)量#。如框208所示,執(zhí)行針對高速緩存命中的檢查。對于所識別的高速緩存命中,如框210所示,讀高速緩存命中計數(shù)器CTR增加。隨后如框211所示,該操作結(jié)束。
[0055]對于所識別的寫WR操作,如框212所示,寫操作計數(shù)器CTR加1。隨后如框214所示,寫高速緩存行CL計數(shù)器CTR增加以該操作中高速緩存行CL的數(shù)量#。隨后如框215所示,保存運(yùn)行的WR操作的到達(dá)率。
[0056]如決策框216所示,執(zhí)行針對被啟用高速緩存的檢查。如果高速緩存被啟用,則如框218所示,針對操作CL,2-N個位置位被設(shè)置為等于1。如決策框220所示,檢查高速緩存中在邏輯上處于該操作第一個CL之前的CL是否被執(zhí)行。如果是,則如框222所示,該操作的第一個CL位置位被設(shè)置為1。隨后,如決策框224所示,執(zhí)行檢查以確定高速緩存中是否有用于新的操作數(shù)據(jù)的空間。
[0057]如果高速緩存中有用于新的操作數(shù)據(jù)的空間,則如框226所示,快速寫計數(shù)器被遞增。隨后如決策框228所示,執(zhí)行檢查以確定新的操作是否與已有高速緩存數(shù)據(jù)相重疊。如果新的操作與已有高速緩存數(shù)據(jù)重疊,則如框230所示,寫命中計數(shù)器被遞增。接下來如決策框232所示,執(zhí)行檢查以確定等于1的位置位的數(shù)量是否大于寫CL計數(shù)器的95%。應(yīng)當(dāng)理解的是,95%僅是一個示例,并且能夠使用其它數(shù)字。當(dāng)?shù)扔?的位置位的數(shù)量小于或等于寫CL計數(shù)器的95%時,則該操作在框211退出。否則,當(dāng)?shù)扔?的位置位的數(shù)量大于寫CL計數(shù)器的95%時,則該操作在圖2B的框236繼續(xù)。
[0058]在圖2B中,如決策框236所示,執(zhí)行檢查以確定平均操作長度是否大于X個高速緩存行的預(yù)定數(shù)量。如果否,則該操作在圖2A的框211退出。否則,如決策框238所示,執(zhí)行檢查以確定快速寫%是否低于預(yù)定的Y%并且WC命中%是否低于預(yù)定的Z%。如果否,則該操作在圖2A的框211退出。否則如決策框240所示,執(zhí)行檢查以確定離臺計數(shù)器是否大于寫操作計數(shù)器的98%并小于120%。如果否,則該操作在圖2A的框211退出。否則,如決策框242所示,執(zhí)行檢查以確定平均RT是否大于預(yù)定義時間A ms,或者TP是否大于預(yù)定義速率B MB/s或者CPU利用是否大于預(yù)定義C%。如果否,則該操作在圖2A的框211退出。否則,如框244所示保存高速緩存寫操作到達(dá)率,并且如框246所示沖刷(flush)高速緩存。隨后,如框248所示禁用高速緩存。隨后,則該操作在圖2A的框211退出。
[0059]現(xiàn)在參考圖2C,在確定了高速緩存并未在圖2A的決策框216被啟用之后,執(zhí)行檢查以確定運(yùn)行的高速緩存寫操作的到達(dá)率是否是高速緩存寫操作到達(dá)率的預(yù)定義M%達(dá)比預(yù)定義時間N分鐘更長的時間。如果是,則如框252所示,高速緩存被啟用。否則,如決策框254所示,執(zhí)行檢查以確定平均操作長度是否小于高速緩存行CL的預(yù)定義數(shù)量達(dá)比預(yù)定義時間N分鐘更長的時間。如果是,則如框252所示,高速緩存被啟用。否則,如決策框256所示,執(zhí)行檢查以確定該設(shè)備是否為硬盤驅(qū)動器HDD。如果該設(shè)備不是硬盤驅(qū)動器HDD,則該操作在圖2A的框211退出。否則,當(dāng)該設(shè)備是硬盤驅(qū)動器HDD時,如框258所示,針對連續(xù)流執(zhí)行檢查并且執(zhí)行數(shù)學(xué)公式以確定距最近連續(xù)流的距離(即使沒有)。隨后,如框260所示,保存距最近連續(xù)流的運(yùn)行平均距離。隨后,如框262所示,檢查距最近連續(xù)流的平均運(yùn)行距離大于HDD大小的預(yù)定義數(shù)值A(chǔ)%達(dá)比預(yù)定義時間B分鐘更長的時間。如果否,則該操作在圖2A的框211退出。否則,在框252,高速緩存被啟用。
[0060]現(xiàn)在參考圖3,圖示了本發(fā)明的制造品或計算機(jī)程序產(chǎn)品300。計算機(jī)程序產(chǎn)品300有形地體現(xiàn)于包括記錄介質(zhì)302的非瞬態(tài)計算機(jī)可讀存儲介質(zhì)上,諸如軟盤、光學(xué)讀取緊致盤或CD-ROM形式的大容量只讀存儲器、磁帶或者其它類似的計算機(jī)程序產(chǎn)品。記錄介質(zhì)302在介質(zhì)302上存儲程序裝置304、306、308和310以便在圖1的系統(tǒng)100中執(zhí)行優(yōu)選實(shí)施例的用于基于工作負(fù)載而實(shí)施高速緩存的動態(tài)啟用和禁用的方法。
[0061]由所記錄的程序裝置304、306、308和310定義的程序指令的順序或者一個或多個相關(guān)模塊的邏輯組成對計算機(jī)系統(tǒng)100進(jìn)行指示以便實(shí)施優(yōu)選實(shí)施例的高速緩存基于工作負(fù)載的動態(tài)啟用和禁用。
[0062]雖然已經(jīng)參考圖中所示的本發(fā)明實(shí)施例的細(xì)節(jié)對本發(fā)明進(jìn)行了描述,但是這些細(xì)節(jié)并非意在對如所附權(quán)利要求中所請求保護(hù)的本發(fā)明的范圍加以限制。
【權(quán)利要求】
1.一種用于在計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施對高速緩存的動態(tài)啟用和禁用的方法,包括: 在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合以識別工作負(fù)載的變化,并且響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用所述高速緩存; 在所述高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載,并且響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用所述高速緩存。
2.根據(jù)權(quán)利要求1的方法,其中在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合包括監(jiān)視預(yù)定義的位置信息,所述預(yù)定義的位置信息指示在邏輯上處于當(dāng)前寫數(shù)據(jù)之前的數(shù)據(jù)是否存在于高速緩存中;所述預(yù)定義位置信息保留在用于所述高速緩存中保留的每個數(shù)據(jù)塊的高速緩存行中。
3.根據(jù)權(quán)利要求1的方法,其中在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合包括監(jiān)視預(yù)定義的高速緩存操作統(tǒng)計信息,所述高速緩存操作統(tǒng)計信息包括寫命中數(shù)量、重寫數(shù)量、寫總數(shù)、快速寫總數(shù)和離臺數(shù)量中的一個或多個。
4.根據(jù)權(quán)利要求1的方法,其中在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合包括監(jiān)視預(yù)定義的性能度量信息,所述預(yù)定義的性能度量信息包括高速緩存引發(fā)的瓶頸信息、高速緩存利用信息、高速緩存隊列深度信息以及硬件或軟件操作響應(yīng)時間中的一個或多個。
5.根據(jù)權(quán)利要求1的方法,其中響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用所述高速緩存包括響應(yīng)于所識別的預(yù)定義的基本上連續(xù)的寫工作負(fù)載而選擇性地禁用所述高速緩存。
6.根據(jù)權(quán)利要求1的方法,其中響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用所述高速緩存包括響應(yīng)于識別出所監(jiān)視的位置信息、所監(jiān)視的預(yù)定義高速緩存操作統(tǒng)計信息和所監(jiān)視的預(yù)定義性能度量信息中至少一個的預(yù)定義度量閾值而選擇性地禁用所述高速緩存。
7.根據(jù)權(quán)利要求1的方法,其中在所述高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載包括監(jiān)視運(yùn)行中的平均寫操作的到達(dá)率。
8.根據(jù)權(quán)利要求1的方法,其中在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載包括監(jiān)視平均寫操作大小。
9.根據(jù)權(quán)利要求1的方法,其中響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用所述高速緩存包括響應(yīng)于所識別的預(yù)定義工作負(fù)載不同于基本上連續(xù)的寫工作負(fù)載而選擇性地啟用所述高速緩存。
10.一種計算機(jī)系統(tǒng),包括: 存儲器控制器,用于在所述計算機(jī)系統(tǒng)中基于工作負(fù)載實(shí)施對高速緩存的動態(tài)啟用和禁用; 處理器; 所述高速緩存,耦合至所述存儲器控制器和所述處理器; 存儲器,耦合至所述存儲器控制器和所述處理器高速緩存; 所述存儲器控制器在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合以識別工作負(fù)載的變化,并且所述存儲器控制器響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用高速緩存; 所述存儲器控制器在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載,并且所述存儲器控制器響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用所述高速緩存。
11.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合包括所述存儲器控制器監(jiān)視預(yù)定義的位置信息,所述預(yù)定義的位置信息保留在用于所述高速緩存中所保留的每個數(shù)據(jù)塊的高速緩存行中。
12.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合包括所述存儲器控制器監(jiān)視預(yù)定義的高速緩存操作統(tǒng)計信息,所述高速緩存操作統(tǒng)計信息包括寫命中數(shù)量、重寫數(shù)量、寫總數(shù)、快速寫總數(shù)綜述和離臺數(shù)量中的一個或多個。
13.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器在所述高速緩存被啟用之時監(jiān)視預(yù)定義的信息集合包括所述存儲器控制器監(jiān)視預(yù)定義的性能度量信息,所述預(yù)定義的性能度量信息包括高速緩存引發(fā)的瓶頸信息、高速緩存利用信息、高速緩存隊列深度信息以及硬件或軟件操作響應(yīng)時間中的一個或多個。
14.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用所述高速緩存包括所述存儲器控制器響應(yīng)于所識別的預(yù)定義的度量閾值而選擇性地使所述高速緩存禁用、發(fā)起高速緩存沖刷以及保存高速緩存寫操作到達(dá)率。
15.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用高速緩存包括所述存儲器控制器響應(yīng)于所識別的預(yù)定義的基本上連續(xù)的寫工作負(fù)載而選擇性地禁用所述高速緩存。
16.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器響應(yīng)于所識別的第一預(yù)定義工作負(fù)載而選擇性地禁用所述高速緩存包括所述存儲器控制器響應(yīng)于識別出所監(jiān)視的位置信息、所監(jiān)視的預(yù)定義高速緩存操作統(tǒng)計信息和所監(jiān)視的預(yù)定義性能度量信息中至少一個的預(yù)定義度量閾值而選擇性地禁用所述高速緩存。
17.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器在所述高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載包括所述存儲器控制器監(jiān)視運(yùn)行中的平均寫操作的到達(dá)率。
18.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器在高速緩存被禁用之時監(jiān)視預(yù)定義信息以識別第二預(yù)定義工作負(fù)載包括所述存儲器控制器監(jiān)視平均寫操作大小。
19.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用所述高速緩存包括所述存儲器控制器響應(yīng)于所識別的預(yù)定義工作負(fù)載不同于基本上連續(xù)的寫工作負(fù)載而選擇性地啟用所述高速緩存。
20.根據(jù)權(quán)利要求10的系統(tǒng),其中所述存儲器控制器響應(yīng)于所述所識別的第二預(yù)定義工作負(fù)載而選擇性地啟用所述高速緩存包括所述存儲器控制器識別平均寫操作大小和運(yùn)行中的平均寫操作到達(dá)率中的至少一個的預(yù)定義閾值。
【文檔編號】G06F12/08GK104375954SQ201410383754
【公開日】2015年2月25日 申請日期:2014年8月6日 優(yōu)先權(quán)日:2013年8月12日
【發(fā)明者】C·A·安德森, A·C·格哈德, D·納瓦羅 申請人:國際商業(yè)機(jī)器公司