專利名稱:一種存放數(shù)據的方法和裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)據處理領域,特別涉及一種存放數(shù)據的方法和裝置。
背景技術:
高速緩存存儲器(Cache)為可以透明的對數(shù)據進行緩存的存儲單元,處理單元對高速緩存存儲器的訪問快于對下一級存儲單元的訪問。在對高速緩存存儲器的操作中,包括寫分配(Write Allocate)、非寫分配(Not Write Allocate)、讀分配(Read Allocate)、 非讀分配(Not Read Allocate)和讀無效(Read Invalidate)等操作。其中,在寫Cache時,對應的寫地址在Cache中不存在就會出現(xiàn)寫不命中,此時加載相應的存儲器塊到高速緩存中,然后更新高速緩存塊,即是寫分配的操作;在寫Cache時,對應寫地址在Cache中不存在就會出現(xiàn)寫不命中,此時直接將數(shù)據寫入到下一級存儲器中,并不在Cache中分配地址,即是非寫分配操作;在讀Cache時,對應讀地址不存在于Cache中就會出現(xiàn)讀不命中,此時加載相應的下一級存儲器的存儲器塊到高速緩存中,然后反饋數(shù)據給處理單元,就是讀分配的操作;在讀Cache時,對應讀地址不存在于Cache中就會出現(xiàn)讀不命中,直接將數(shù)據從下一級存儲器中讀入并返回給處理單元,并不在Cache中分配地址,這就是非讀分配操作;在讀數(shù)據時,如果被讀數(shù)據在Cache中命中,數(shù)據被送給讀操作發(fā)起模塊之后,對應的CacheLine將被設置為無效狀態(tài),如此新操作訪問時,此CacheLine將可以被分配新數(shù)據,而不會發(fā)生Cache沖突?,F(xiàn)有的業(yè)務處理具有固定特點,報文頭部、報文載荷、業(yè)務處理中間變量等不同數(shù)據的使用頻率有很大差別,報文頭部和業(yè)務處理中間變量的使用頻率明顯高于報文載荷。 處理單元處理數(shù)據時,會利用此特點,根據特定的規(guī)則將數(shù)據區(qū)別對待,將常用數(shù)據放置在靠近處理單元的Cache中,以加快處理速度,提升系統(tǒng)處理性能。另外,訪問Cache中數(shù)據比訪問下一個存儲層次中的數(shù)據耗費更多功耗。所以,讓數(shù)據訪問盡量控制在離處理單元更近的存儲層次上,對提升性能和降低功耗都有幫助。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題Cache的容量有限,不能完全存放所有處理過程中的數(shù)據,則數(shù)據必然需要存放到下一級存儲中,Cache和下一級存儲之間會不斷的發(fā)生數(shù)據替換和交互,使用頻繁的正在處理數(shù)據可能被輸入的大流量數(shù)據替換到Cache的下一級存儲中,導致Cache的命中率降低, 增強設備的功耗,影響處理節(jié)點的處理帶寬,使得系統(tǒng)性能隨著處理帶寬和處理復雜度增加急劇惡化。
發(fā)明內容
為了解決現(xiàn)有技術中存在的問題,本發(fā)明實施例提供了一種存放數(shù)據的方法和裝置。所述技術方案如下一種存放數(shù)據的方法,所述方法包括
6
判斷當前設備的負載模式;當所述負載模式為第一負載模式時,將所述當前設備正在處理的數(shù)據均存放在所述Cache中;當所述負載模式為第二負載模式時,將所述當前設備正在處理的使用頻率超過預設頻率的數(shù)據存所述放在Cache中,未超過預設頻率的數(shù)據存放在所述Cache的下一級存儲器中;當所述負載模式為第三負載模式時,將所述當前設備正在處理的對處理延時要求在預設時間內且使用頻率超過所述預設頻率的數(shù)據存放在所述Cache中。一種存放數(shù)據的裝置,其特征在于,所述裝置包括判斷模塊,用于判斷當前設備的負載模式;第一控制模塊,用于當所述判斷模塊判斷得到所述負載模式為第一負載模式時, 將所述當前設備正在處理的數(shù)據均存放在所述Cache中;第二控制模塊,用于當所述判斷模塊判斷得到所述負載模式為第二負載模式時, 將所述當前設備正在處理的使用頻率超過預設頻率的數(shù)據存所述放在Cache中,未超過預設頻率的數(shù)據存放在所述Cache的下一級存儲器中;第三控制模塊,用于當所述判斷模塊判斷得到所述負載模式為第三負載模式時, 將所述當前設備正在處理的對處理延時要求在預設時間內且使用頻率超過所述預設頻率的數(shù)據存放在所述Cache中。本發(fā)明實施例提供的技術方案的有益效果是通過將當前設備在進行業(yè)務處理過程中劃分為不同的負載模式,動態(tài)調整Cache中對各種數(shù)據的存放方式,使得當前設備中具有不同特性的節(jié)點可控制對Cache的操作,使得一個大容量系統(tǒng)能夠在負載較大時得到更低功耗,且達到最優(yōu)性能。
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發(fā)明實施例1提供的一種存放數(shù)據的方法的流程示意圖;圖2是本發(fā)明實施例2提供的一種存放數(shù)據的方法的流程示意圖;圖3是本發(fā)明實施例2提供的在當前設備中設立多個監(jiān)測點進行監(jiān)測的情況示意圖;圖4是本發(fā)明實施例2提供的帶有預設標記的數(shù)據在當前設備中的傳輸路線的示意圖;圖5是本發(fā)明實施例2提供的一種在輕負載模式下控制當前設備對Cahce的操作的配置方式的示意圖;圖6是本發(fā)明實施例2提供的一種在中負載模式下控制當前設備對Cahce的操作的配置方式的示意圖;圖7是本發(fā)明實施例2提供的一種在重負載模式下控制當前設備對Cahce的操作的配置方式的示意圖;圖8是本發(fā)明實施例3提供的一種存放數(shù)據的裝置的結構示意圖;圖9是本發(fā)明實施例3提供的一種存放數(shù)據的裝置中的第一監(jiān)測單元的結構示意圖;圖10是本發(fā)明實施例3提供的一種存放數(shù)據的裝置的第二種結構示意圖;圖11是本發(fā)明實施例3提供的一種存放數(shù)據的裝置的第三種結構示意圖;圖12是本發(fā)明實施例3提供的一種存放數(shù)據的裝置中的調整模塊的結構示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。實施例1如圖1所示,本實施例提供了一種存放數(shù)據的方法,應用于高速緩存存儲器中,該方法包括101、判斷當前設備的負載模式,當為第一負載模式時,執(zhí)行步驟102,當為第二負載模式時,執(zhí)行步驟103,當為第三負載模式時,執(zhí)行步驟104 ;102、將當前設備正在處理的數(shù)據均存放在Cache中;103、將當前設備正在處理的使用頻率超過預設頻率的數(shù)據存放在Cache中,未超過預設頻率的數(shù)據存放在Cache的下一級存儲器中;104、將當前設備正在處理的對處理延時要求在預設時間內且使用頻率超過預設頻率的數(shù)據存放在Cache中。其中,在第二負載模式下的Cache的負載大于在第一負載模式下的Cache的負載, 在第三負載模式下的Cache的負載大于在第二負載模式下的Cache的負載。本發(fā)明實施例提供了一種存放數(shù)據的方法,通過將當前設備在進行業(yè)務處理過程中劃分為不同的負載模式,動態(tài)調整Cache中對各種數(shù)據的存放方式,使得當前設備中具有不同特性的節(jié)點可控制對Cache的操作,使得一個大容量系統(tǒng)能夠在負載較大時得到更低功耗,且達到最優(yōu)性能。實施例2本實施例提供了一種存放數(shù)據的方法,是在實施例基礎之上進行的改進,在本實施例中,以對網絡數(shù)據處理設備的Cache存放數(shù)據的控制為例進行說明,該設備中包括 Cache和Cache的下一級存儲器,且該設備中包括三種節(jié)點入口節(jié)點(例如網口)、出口節(jié)點(例如網口)和多個可對數(shù)據進行業(yè)務處理的處理節(jié)點(例如處理器),在本實施例中設定該設備包括如下處理節(jié)點處理器、加速器/協(xié)處理器。需要說明的是,Cache為網絡處理設備中距離CPU (Central Processing Unit,中央處理器)最近的高速小容量存儲器,距離CPU的距離其次的為Cache的下一級存儲器,例如內存。如圖2所示,一種存放數(shù)據的方法,該方法包括201、判斷得到當前設備的負載模式,當為輕負載模式時,執(zhí)行步驟202,當為中負載模式時,執(zhí)行步驟203,當為重負載模式時,執(zhí)行步驟204 ;
在本發(fā)明中,可將設備對數(shù)據處理時劃分為多種負載模式,并在不同的負載模式下使用不同的控制策略。在本實施例中,為了便于說明,將當前系統(tǒng)的負載模式劃分為第一、第二、第三負載模式,也即輕負載模式、中負載模式、重負載模式。其中,在中負載模式下的Cache的負載大于在輕負載模式下的Cache的負載,在重負載模式下的Cache的負載大于在中負載模式下的Cache的負載。在本實施例中,當前系統(tǒng)的負載模式共包括兩種方式第一種是通過軟件配置的方式,第二種是通過自動監(jiān)測進行判斷的方式。其中,第一種通過軟件配置的方式,即當前設備向用戶提供對負載模式進行預設的接口,例如通過界面供用戶選擇負載模式,用戶通過軟件對負載模式進行預設,當設備處理的數(shù)據流量穩(wěn)定時,該方式可應用在小流量設備,直接將用于預設的負載模式下發(fā)到設備的模式控制器中。第二種通過自動監(jiān)測進行判斷的方式,具體的為通過監(jiān)測當前設備中的入口節(jié)點實際帶寬流量、任務隊列中的任務數(shù)量、Cache容量和Cache命中率,并根據當前設備中的入口實際帶寬流量、任務隊列中的任務數(shù)量、Cache容量和Cache命中率判斷得到當前設備的負載模式;進一步地,通過監(jiān)測當前設備中的入口節(jié)點實際帶寬流量、任務隊列中的任務數(shù)量、Cache容量和Cache命中率,并根據當前設備中的入口實際帶寬流量、任務隊列中的任務數(shù)量、Cache容量和Cache命中率判斷得到當前設備的負載模式,具體包括201-1、在當前設備的入口節(jié)點處設立第一監(jiān)測點,并在預設的第一時間段內對第一監(jiān)測點進行監(jiān)測得到當前設備的入口實際帶寬流量R ;如圖3所示,在本實施例中,需要在當前設備中設立多個監(jiān)測點進行監(jiān)測。具體地,在本步驟201-1中,如圖3中①所示,第一監(jiān)測點設立在入口節(jié)點處,同時,在對第一監(jiān)測點進行監(jiān)測時,還可以得到通過監(jiān)測得到反壓信號或反壓消息。201-2、如圖3中②所示,在當前設備的Cache處設立第二監(jiān)測點,并在預設的第一時間段內對第二監(jiān)測點進行監(jiān)測得到Cache命中率;201-3、如圖3中③所示,在處理器和加速器/協(xié)處理器處設立第三監(jiān)測點,并在預設的第一時間段內對第三監(jiān)測點進行監(jiān)測得到處理器和加速器/協(xié)處理器中待處理任務的數(shù)量;201-4、如圖3中④所示,在當前設備的出口節(jié)點處設立第四監(jiān)測點,對第四監(jiān)測點進行監(jiān)測得到當前設備的出口節(jié)點處待處理的任務的數(shù)量;201-5、統(tǒng)計預設的第一時間段內任務隊列中的任務數(shù)量;其中,預設的第一時間段內任務隊列中的任務數(shù)量即為在預設的第一時間段內從第三監(jiān)測點和第四監(jiān)測點監(jiān)測得到的待處理任務的數(shù)量的總和。201-6、根據任意兩個節(jié)點之間的數(shù)據處理延時計算方法計算得到當前設備對數(shù)據進行處理的處理延時T ;其中,在本實施例中,任意兩個節(jié)點之間的數(shù)據處理延時計算方法如下A、在第一節(jié)點處構建帶有預設標記的數(shù)據,并將時間Ta作為時間戳插入到帶有預設標記的數(shù)據中;
B、在第一節(jié)點處將插入時間戳后的帶有預設標記的數(shù)據放入當前設備正在處理的數(shù)據中;C、在第二節(jié)點處進行監(jiān)測,當監(jiān)測得到上述插入時間戳后的帶有預設標記的數(shù)據時,記錄當前的時間Tb;其中,第二節(jié)點包括第一節(jié)點的下一個或其他處理節(jié)點,也可以為第一節(jié)點自身。D、根據時間Ta和時間Tb計算得到第一節(jié)點到第二節(jié)點的處理延時Tp = Tb-Ta0需要說明的是,在根據上述方法計算當前設備對數(shù)據進行處理的處理延時T時, 具體的為計算入口節(jié)點到出口節(jié)點之間的數(shù)據的處理延時,具體如圖4所示,在入口節(jié)點處構建帶有預設標記的數(shù)據,并將第一時間tl作為第一時間戳信息插入到帶有預設標記的數(shù)據中,對出口節(jié)點輸出的數(shù)據進行監(jiān)測,當監(jiān)測到帶有預設標記的數(shù)據時,記錄帶有預設標記的數(shù)據的到達出口節(jié)點的第二時間t2,根據第一時間tl和第二時間t2計算得到處理延時T = t2-tl ;其中,如圖4所示,為帶有預設標記的數(shù)據在當前設備中的傳輸路線。201-7、根據入口實際帶寬流量R、Cache容量、Cache命中率、處理延時T、任務隊列中的任務數(shù)量以及收到反壓信號或反壓信息的頻率判斷得到當前設備的負載模式在本實施例中,根據入口實際帶寬流量R、Cache命中率、處理延時T、任務隊列中的任務數(shù)量以及收到反壓信號或反壓信息的頻率判斷得到當前設備的負載模式,具體為(1)當入口實際帶寬流量R*處理延時T ( Cache容量時,當前設備的負載模式為輕負載模式;其中,當負載模式為輕負載模式時,可以推斷得出當前設備中待處理的數(shù)據數(shù)量小于Cache的容量,Cache可以存放所有處理過程中的數(shù)據;(2)當入口實際帶寬流量R*處理延時T > Cache容量且Cache命中率保持在預設的第一命中率范圍之內時,當前設備的負載模式為中負載模式;其中,當負載模式為中負載模式時,Cache無法緩存所有處理過程中的數(shù)據,需要有選擇性的對數(shù)據進行緩存;(3)當滿足Cache命中率低于預設的第一命中率、任務隊列中的任務數(shù)量超過預設的門限值、接收到反壓信號或反壓消息超過預設次數(shù)中的任一條件時,當前設備的負載模式為重負載模式;其中,當負載模式為重負載模式時,當前設備的數(shù)據處理壓力很大,Cache命中率下降,Cache性能降低嚴重。202、將當前設備正在處理過程中的數(shù)據均存放在Cache中,執(zhí)行步驟205 ;需要說明的是,輕負載模式下,Cache容量可以存放所有正在處理過程中數(shù)據,因此,在當前設備的各個節(jié)點對Cache進行操作時,除了出口節(jié)點的其他節(jié)點對Cache的操作都可設置為讀分配、寫分配,以便避免或減少在對Cache的下一級存儲器操作時產生的功
^^ ο如圖5所示,本實施例提供了一種在輕負載模式下控制當前設備對Cahce的操作的配置方式,其中,將入口節(jié)點、處理器、加速器/協(xié)處理器對Cahce的操作設置為可進行讀分配、寫分配操作,出口節(jié)點對Cache的操作設置為讀無效。203、將當前設備正在處理過程中使用頻率超過預設頻率的數(shù)據存放在Cache中,
1未超過預設頻率的數(shù)據存放在Cache的下一級存儲器中,執(zhí)行步驟205 ;需要說明的是,在中負載模式下,Cache的容量不能存放所有處理過程中的數(shù)據, 部分處理數(shù)據必然要被放置在下一級存儲中。因此,對不同的數(shù)據采用不同策略,處理過程中使用頻率超過預設頻率的數(shù)據(高頻數(shù)據)存放在Cache中,其他數(shù)據(使用頻率未超過預設頻率的數(shù)據,即低頻數(shù)據)直接放在Cache的下一級存儲器中,并不在Cache中分配空間,避免高頻數(shù)據被低頻數(shù)據替換出Cache而導致當前設備的整體處理性能下降和產生功耗。例如,在網絡轉發(fā)業(yè)務處理中,報文頭部(Header)可認為是高頻數(shù)據,報文載荷 (Payload)可認為是低頻數(shù)據,其中,在網絡轉發(fā)進行轉發(fā)的報文中,一般包括報文頭部和報文載荷,報文頭部用了指示對應的報文內容和通信方式等,因此使用頻率較高,除報文頭部外的其余部分為報文載荷,對于通信業(yè)務來說,報文載荷只做轉發(fā)處理,不做業(yè)務處理, 因此使用頻率較低。在本步驟中,將當前設備正在處理過程中使用頻率超過預設頻率的數(shù)據存放在 Cache中,未超過預設頻率的數(shù)據存放在Cache的下一級存儲器中,在進行操作時,具體可以設置為高頻數(shù)據采用讀分配、寫分配操作的方式訪問Cache,低頻數(shù)據采用非讀分配和非寫分配操作的方式訪問Cache。如圖6所示,本發(fā)明實施例提供了一種在中負載模式下控制當前設備對Cahce的操作的配置方式,其中,將入口節(jié)點對Cahce的操作設置為高頻數(shù)據進行寫分配操作,低頻數(shù)據進行非寫分配操作,將處理器對Cahce的操作設置為寫分配和讀分配操作,將處理器、 加速器/協(xié)處理器對Cahce的操作設置為高頻數(shù)據進行寫分配操作,低頻數(shù)據進行非寫分配操作,高頻數(shù)據和低頻數(shù)據均可進行非讀分配操作,出口節(jié)點對Cache的操作設置為讀無效。204、將對處理延時要求在預設時間內且使用頻率超過預設頻率的數(shù)據存放在 Cache中,執(zhí)行步驟205。需要說明的是,在本步驟中,將對處理延時要求在預設時間內且使用頻率超過預設頻率的數(shù)據存放在Cache中,具體的為將存儲訪問延時敏感的節(jié)點(處理延時要求在預設時間內的節(jié)點)對高頻數(shù)據采用讀分配和寫分配操作的方式訪問Cache,其他節(jié)點對 Cache的訪問均使用非讀分配和非寫分配方式訪問Cache。進一步地,在本步驟中,還可以包括在入口節(jié)點處控制進入當前設備的數(shù)據流量或安全丟棄數(shù)據等操作,避免性能惡化更加嚴重。其中,在重負載模式下,設備的業(yè)務處理壓力大,需要進入Cache的數(shù)據過多,從入口節(jié)點輸入或加速引擎操作的數(shù)據進入Cache會將處理節(jié)點的局部數(shù)據替換到Cache的下一級存儲器中,會導致Cache命中率下降嚴重,使芯片性能和吞吐量下降,因此,本步驟可采集兩種方式避免系統(tǒng)性能惡化1)入口節(jié)點、加速引擎等對Cache訪問延時不敏感的節(jié)點在對Cache訪問非命中時不在Cache中分配數(shù)據單元,提高對存儲訪問延時敏感的處理節(jié)點訪問Cache的命中率;幻在數(shù)據入口處丟棄或者反壓任務,避免情況更加惡化,其中反壓任務具體為停止當前設備的接口繼續(xù)接收數(shù)據,例如PCIe接口,不再接收對端發(fā)送過來的數(shù)據。
如圖7所示,本發(fā)明實施例提供了一種在重負載模式下控制當前設備對Cahce的操作的配置方式,其中,將入口節(jié)點對Cahce的操作設置為非寫分配操作;處理器對Cahce 的操作設置為對一次性數(shù)據進行非寫分配,其他數(shù)據進行寫分配操作,高頻數(shù)據進行寫分配操作,低頻數(shù)據進行非寫分配操作;將處理器、加速器/協(xié)處理器對Cahce的操作設置為非寫分配和非讀分配操作;出口節(jié)點對Cache的操作設置為讀無效。205、根據Cache命中率調整進行讀分配和寫分配操作的數(shù)據長度。其中,根據Cache命中率調整進行讀分配和寫分配操作的數(shù)據的長度,具體包括如下步驟a、讀取當前的Cache命中率;b、判斷當前的Cache命中率是否在預設的第二時間內均為100%或超過預設的第二命中率,如果當前的Cache命中率在預設的第二時間內均為100%或超過預設的第二命中率,執(zhí)行步驟c,否則,執(zhí)行步驟d ;C、增加進行讀分配和寫分配操作的數(shù)據的長度;d、判斷是否在預設的第三時間內Cache命中率均低于預設的第二命中率,如果是,執(zhí)行步驟e,如果不是,返回步驟a ;e、減少進行讀分配和寫分配操作的數(shù)據的長度。本發(fā)明實施例提供了一種存放數(shù)據的方法,通過將當前設備在進行業(yè)務處理過程中劃分為不同的負載模式,動態(tài)調整Cache中對各種數(shù)據的存放方式,使得當前設備中具有不同特性的節(jié)點可控制對Cache的操作,使得一個大容量系統(tǒng)能夠在負載較大時得到更低功耗,且達到最優(yōu)性能。實施例3如圖8所示,本發(fā)明實施例提供了一種存放數(shù)據的裝置,該裝置包括判斷模塊301,用于判斷當前設備的負載模式;第一控制模塊302,用于當判斷模塊301判斷得到負載模式為第一負載模式時,將當前設備正在處理的數(shù)據均存放在Cache中;第二控制模塊303,用于當判斷模塊301判斷得到負載模式為第二負載模式時,將當前設備正在處理的使用頻率超過預設頻率的數(shù)據存放在Cache中,未超過預設頻率的數(shù)據存放在Cache的下一級存儲器中第三控制模塊304,用于當判斷模塊301判斷得到負載模式為第三負載模式時,將當前設備正在處理的對處理延時要求在預設時間內且使用頻率超過預設頻率的數(shù)據存放在Cache中。進一步地,上述第一負載模式、第二負載模式、第三負載模式分別具體的為輕負載模式、中負載模式、重負載模式,且在第二負載模式下的Cache的負載大于在第一負載模式下的Cache的負載,在第三負載模式下的Cache的負載大于在第二負載模式下的Cache的負載。進一步地,判斷模塊301包括第一獲取單元;或,判斷模塊301包括第一監(jiān)測單元和第一判斷單元;其中,第一獲取單元,用于獲取用戶通過軟件配置為當前設備預設的負載模式;第一監(jiān)測單元,用于通過監(jiān)測得到當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù);第一判斷單元,用于根據第一監(jiān)測單元監(jiān)測得到的當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù)判斷得到當前設備的負載模式。進一步地,如圖9所示,第一監(jiān)測單元3012,包括第一監(jiān)測子單元30121,用于在當前設備的入口節(jié)點處設立第一監(jiān)測點,并在預設的第一時間段內對第一監(jiān)測點進行監(jiān)測得到入口實際帶寬流量R ;第二監(jiān)測子單元30122,用于在當前設備的Cache處設立第二監(jiān)測點,并在預設的第一時間段內對第二監(jiān)測點進行監(jiān)測得到Cache命中率;第三監(jiān)測子單元30123,用于在當前設備的處理節(jié)點處設立第三監(jiān)測點,并在預設的第一時間段內對第三監(jiān)測點進行監(jiān)測得到處理節(jié)點中待處理任務的數(shù)量;第四監(jiān)測子單元30124,用于在當前設備的出口節(jié)點處設立第四監(jiān)測點,對第四監(jiān)測點進行監(jiān)測得到出口節(jié)點處待處理的任務的數(shù)量;第一統(tǒng)計子單元30125,用于統(tǒng)計預設的第一時間段內任務隊列中的任務數(shù)量,任務隊列中的任務數(shù)量為處理節(jié)點中待處理任務的數(shù)量和出口節(jié)點處待處理的任務的數(shù)量的和;第一計算子單元30126,用于計算得到當前設備對數(shù)據進行處理的處理延時T ;其中,當前設備至少包括入口節(jié)點、出口節(jié)點和用于對數(shù)據進行業(yè)務處理的處理節(jié)點。進一步地,第一計算子單元30126,具體用于在入口節(jié)點處構建帶有預設標記的數(shù)據,并將第一時間tl作為第一時間戳插入到帶有預設標記的數(shù)據中,在出口節(jié)點處對輸出的數(shù)據進行監(jiān)測,當監(jiān)測到插入第一時間戳后的帶有預設標記的數(shù)據時,記錄插入第一時間戳后的帶有預設標記的數(shù)據的到達出口節(jié)點的時間為第二時間t2,根據第一時間tl和第二時間t2計算得到處理延時T = t2-tl。進一步地,第一判斷單元3013,包括第一判斷子單元,用于當判斷得到入口實際帶寬流量R與處理延時T的乘積小于或等于Cache容量時,確定負載模式為第一負載模式;第二判斷子單元,用于當判斷得到入口實際帶寬流量R與處理延時T的乘積大于 Cache容量且Cache命中率保持在預設的第一命中率范圍之內時,負載模式為第二負載模式;第三判斷子單元,用于當判斷得到滿足Cache命中率低于預設的第一命中率、任務隊列中的任務數(shù)量超過預設的門限值、接收到反壓信號或反壓消息超過預設次數(shù)中的任一條件時,負載模式為第三負載模式。進一步地,如圖10所示,該裝置還包括第四控制模塊305,用于當負載模式為第三負載模式時,在當前設備的入口節(jié)點處控制進入當前設備的數(shù)據流量或進行數(shù)據丟棄操作。進一步地,如圖11所示,上述裝置還包括調整模塊306,用于根據Cache命中率調整對Cache進行讀分配和寫分配操作的數(shù)據長度。
1
進一步地,如圖12所示,調整模塊306,包括讀取單元3061,用于讀取當前的Cache命中率;第二判斷單元3062,用于判斷當前的Cache命中率是否超過預設的第二命中率或在預設的第二時間內均為100% ;增加單元3063,用于當?shù)诙袛鄦卧?062判斷得到當前的Cache命中率超過預設的第二命中率或在預設的第二時間內均為100%時,增加對Cache進行讀分配和寫分配操作的數(shù)據的長度;第三判斷單元3064,用于當?shù)诙袛鄦卧?062判斷得到當前的Cache命中率未超過預設的第二命中率或未在預設的第二時間內均為100%時,判斷在預設的第三時間內當前的Cache命中率均是否低于預設的第二命中率;減少單元3065,用于當?shù)谌袛鄦卧?064判斷得到在預設的第三時間內當前的 Cache命中率均低于預設的第二命中率時,減少對Cache進行讀分配和寫分配操作的數(shù)據的長度。本發(fā)明實施例提供了一種存放數(shù)據的裝置,通過將當前設備在進行業(yè)務處理過程中劃分為不同的負載模式,動態(tài)調整Cache中對各種數(shù)據的存放方式,使得當前設備中具有不同特性的節(jié)點可控制對Cache的操作,使得一個大容量系統(tǒng)能夠在負載較大時得到更低功耗,且達到最優(yōu)性能。本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
1權利要求
1.一種存放數(shù)據的方法,其特征在于,所述方法包括 判斷當前設備的負載模式;當所述負載模式為第一負載模式時,將所述當前設備正在處理的數(shù)據均存放在Cache中;當所述負載模式為第二負載模式時,將所述當前設備正在處理的使用頻率超過預設頻率的數(shù)據存所述放在Cache中,未超過預設頻率的數(shù)據存放在所述Cache的下一級存儲器中。
2.根據權利要求1所述的方法,其特征在于,所述第一負載模式、第二負載模式、第三負載模式分別具體的為輕負載模式、中負載模式、重負載模式,且在所述第二負載模式下的所述Cache的負載大于在所述第一負載模式下的所述Cache的負載,在所述第三負載模式下的所述Cache的負載大于在所述第二負載模式下的所述Cache的負載。
3.根據權利要求1所述的方法,其特征在于,所述判斷得到當前設備的負載模式,包括獲取用戶通過軟件配置為所述當前設備預設的負載模式; 或,通過監(jiān)測得到所述當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù),并根據所述當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù)判斷得到當前設備的負載模式。
4.根據權利要求3所述的方法,其特征在于,所述通過監(jiān)測得到所述當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù),包括在所述當前設備的入口節(jié)點處設立第一監(jiān)測點,并在預設的第一時間段內對所述第一監(jiān)測點進行監(jiān)測得到所述入口實際帶寬流量R ;在所述當前設備的Cache處設立第二監(jiān)測點,并在所述預設的第一時間段內對所述第二監(jiān)測點進行監(jiān)測得到所述Cache命中率;在所述當前設備的處理節(jié)點處設立第三監(jiān)測點,并在所述預設的第一時間段內對所述第三監(jiān)測點進行監(jiān)測得到所述處理節(jié)點中待處理任務的數(shù)量;在所述當前設備的出口節(jié)點處設立第四監(jiān)測點,對所述第四監(jiān)測點進行監(jiān)測得到所述出口節(jié)點處待處理的任務的數(shù)量;統(tǒng)計所述預設的第一時間段內所述任務隊列中的任務數(shù)量,所述任務隊列中的任務數(shù)量為所述處理節(jié)點中待處理任務的數(shù)量和所述出口節(jié)點處待處理的任務的數(shù)量的和; 計算得到所述當前設備對數(shù)據進行處理的所述處理延時T ;其中,所述當前設備至少包括所述入口節(jié)點、出口節(jié)點和用于對數(shù)據進行業(yè)務處理的所述處理節(jié)點。
5.根據權利要求4所述的方法,其特征在于,所述計算得到所述當前設備對數(shù)據進行處理的所述處理延時T,包括在所述入口節(jié)點處構建帶有預設標記的數(shù)據,并將第一時間tl作為第一時間戳插入到所述帶有預設標記的數(shù)據中;在所述出口節(jié)點處對輸出的數(shù)據進行監(jiān)測,當監(jiān)測到所述插入第一時間戳后的帶有預設標記的數(shù)據時,記錄所述插入第一時間戳后的帶有預設標記的數(shù)據的到達所述出口節(jié)點的時間為第二時間t2;根據第一時間tl和第二時間t2計算得到所述處理延時T = t2-tl。
6.根據權利要求3所述的方法,其特征在于,所述根據所述當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù)判斷得到當前設備的負載模式,包括當判斷得到所述入口實際帶寬流量R與所述處理延時T的乘積小于或等于所述Cache 容量時,所述負載模式為第一負載模式;當判斷得到所述入口實際帶寬流量R與所述處理延時T的乘積大于所述Cache容量且所述Cache命中率保持在預設的第一命中率范圍之內時,所述負載模式為第二負載模式;當判斷得到滿足所述Cache命中率低于所述預設的第一命中率、所述任務隊列中的任務數(shù)量超過預設的門限值、所述接收到反壓信號或反壓消息超過預設次數(shù)中的任一條件時,所述負載模式為第三負載模式。
7.根據權利要求1所述的方法,其特征在于,當所述負載模式為第三負載模式時,所述方法還包括在所述當前設備的入口節(jié)點處控制進入當前設備的數(shù)據流量或進行數(shù)據丟棄操作。
8.根據權利要求1所述的方法,其特征在于,所述方法還包括根據Cache命中率調整對所述Cache進行讀分配和寫分配操作的數(shù)據長度。
9.根據權利要求8所述的方法,其特征在于,所述根據Cache命中率調整對所述Cache 進行讀分配和寫分配操作的數(shù)據長度,包括讀取當前的Cache命中率;判斷所述當前的Cache命中率是否超過預設的第二命中率或在預設的第二時間內均為 100% ;如果所述當前的Cache命中率超過預設的第二命中率或在預設的第二時間內均為 100%,則增加所述對所述Cache進行讀分配和寫分配操作的數(shù)據的長度;如果所述當前的Cache命中率未超過預設的第二命中率或未在預設的第二時間內均為100%,判斷在預設的第三時間內所述當前的Cache命中率均是否低于所述預設的第二命中率,如果在所述預設的第三時間內所述當前的Cache命中率均低于所述預設的第二命中率,則減少所述對所述Cache進行讀分配和寫分配操作的數(shù)據的長度。
10.一種存放數(shù)據的裝置,其特征在于,所述裝置包括判斷模塊,用于判斷當前設備的負載模式;第一控制模塊,用于當所述判斷模塊判斷得到所述負載模式為第一負載模式時,將所述當前設備正在處理的數(shù)據均存放在所述Cache中;第二控制模塊,用于當所述判斷模塊判斷得到所述負載模式為第二負載模式時,將所述當前設備正在處理的使用頻率超過預設頻率的數(shù)據存所述放在Cache中,未超過預設頻率的數(shù)據存放在所述Cache的下一級存儲器中;第三控制模塊,用于當所述判斷模塊判斷得到所述負載模式為第三負載模式時,將所述當前設備正在處理的對處理延時要求在預設時間內且使用頻率超過所述預設頻率的數(shù)據存放在所述Cache中。
11.根據權利要求10所述的裝置,其特征在于,所述第一負載模式、第二負載模式、第三負載模式分別具體的為輕負載模式、中負載模式、重負載模式,且在所述第二負載模式下的所述Cache的負載大于在所述第一負載模式下的所述Cache的負載,在所述第三負載模式下的所述Cache的負載大于在所述第二負載模式下的所述Cache的負載。
12.根據權利要求10所述的裝置,其特征在于,所述判斷模塊包括第一獲取單元; 或,所述判斷模塊包括第一監(jiān)測單元和第一判斷單元;其中,所述第一獲取單元,用于獲取用戶通過軟件配置為所述當前設備預設的負載模式;所述第一監(jiān)測單元,用于通過監(jiān)測得到所述當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù);所述第一判斷單元,用于根據所述第一監(jiān)測單元監(jiān)測得到的所述當前設備中的入口節(jié)點實際帶寬流量R、任務隊列中的任務數(shù)量、處理延時T、Cache命中率、和接收到反壓信號或反壓消息的次數(shù)判斷得到當前設備的負載模式。
13.根據權利要求12所述的裝置,其特征在于,所述第一監(jiān)測單元,包括第一監(jiān)測子單元,用于在所述當前設備的入口節(jié)點處設立第一監(jiān)測點,并在預設的第一時間段內對所述第一監(jiān)測點進行監(jiān)測得到所述入口實際帶寬流量R ;第二監(jiān)測子單元,用于在所述當前設備的Cache處設立第二監(jiān)測點,并在所述預設的第一時間段內對所述第二監(jiān)測點進行監(jiān)測得到所述Cache命中率;第三監(jiān)測子單元,用于在所述當前設備的處理節(jié)點處設立第三監(jiān)測點,并在所述預設的第一時間段內對所述第三監(jiān)測點進行監(jiān)測得到所述處理節(jié)點中待處理任務的數(shù)量;第四監(jiān)測子單元,用于在所述當前設備的出口節(jié)點處設立第四監(jiān)測點,對所述第四監(jiān)測點進行監(jiān)測得到所述出口節(jié)點處待處理的任務的數(shù)量;第一統(tǒng)計子單元,用于統(tǒng)計所述預設的第一時間段內所述任務隊列中的任務數(shù)量,所述任務隊列中的任務數(shù)量為所述處理節(jié)點中待處理任務的數(shù)量和所述出口節(jié)點處待處理的任務的數(shù)量的和;第一計算子單元,用于計算得到所述當前設備對數(shù)據進行處理的所述處理延時T ; 其中,所述當前設備至少包括所述入口節(jié)點、出口節(jié)點和用于對數(shù)據進行業(yè)務處理的所述處理節(jié)點。
14.根據權利要求13所述的裝置,其特征在于,所述第一計算子單元,具體用于在所述入口節(jié)點處構建帶有預設標記的數(shù)據,并將第一時間tl作為第一時間戳插入到所述帶有預設標記的數(shù)據中,在所述出口節(jié)點處對輸出的數(shù)據進行監(jiān)測,當監(jiān)測到所述插入第一時間戳后的帶有預設標記的數(shù)據時,記錄所述插入第一時間戳后的帶有預設標記的數(shù)據的到達所述出口節(jié)點的時間為第二時間t2,根據第一時間tl和第二時間t2計算得到所述處理延時 T = t2-tl。
15.根據權利要求12所述的裝置,其特征在于,所述第一判斷單元,包括第一判斷子單元,用于當判斷得到所述入口實際帶寬流量R與所述處理延時T的乘積小于或等于所述Cache容量時,確定所述負載模式為第一負載模式;第二判斷子單元,用于當判斷得到所述入口實際帶寬流量R與所述處理延時T的乘積大于所述Cache容量且所述Cache命中率保持在預設的第一命中率范圍之內時,所述負載模式為第二負載模式;第三判斷子單元,用于當判斷得到滿足所述Cache命中率低于所述預設的第一命中率、所述任務隊列中的任務數(shù)量超過預設的門限值、所述接收到反壓信號或反壓消息超過預設次數(shù)中的任一條件時,所述負載模式為第三負載模式。
16.根據權利要求10所述的裝置,其特征在于,所述裝置還包括第四控制模塊,用于當所述負載模式為第三負載模式時,在所述當前設備的入口節(jié)點處控制進入當前設備的數(shù)據流量或進行數(shù)據丟棄操作。
17.根據權利要求10所述的裝置,其特征在于,所述裝置還包括調整模塊,用于根據Cache命中率調整對所述Cache進行讀分配和寫分配操作的數(shù)據長度。
18.根據權利要求17所述的裝置,其特征在于,所述調整模塊,包括讀取單元,用于讀取當前的Cache命中率;第二判斷單元,用于判斷所述當前的Cache命中率是否超過預設的第二命中率或在預設的第二時間內均為100% ;增加單元,用于當所述第二判斷單元判斷得到所述當前的Cache命中率超過預設的第二命中率或在預設的第二時間內均為100%時,增加所述對所述Cache進行讀分配和寫分配操作的數(shù)據的長度;第三判斷單元,用于當所述第二判斷單元判斷得到所述當前的Cache命中率未超過預設的第二命中率或未在預設的第二時間內均為100%時,判斷在預設的第三時間內所述當前的Cache命中率均是否低于所述預設的第二命中率;減少單元,用于當所述第三判斷單元判斷得到在所述預設的第三時間內所述當前的 Cache命中率均低于所述預設的第二命中率時,減少所述對所述Cache進行讀分配和寫分配操作的數(shù)據的長度。
全文摘要
本發(fā)明實施例提供了一種存放數(shù)據的方法和裝置,涉及數(shù)據處理領域。本發(fā)明通過將當前設備在進行業(yè)務處理過程中劃分為不同的負載模式,動態(tài)調整Cache中對各種數(shù)據的存放方式,使得當前設備中具有不同特性的節(jié)點可控制對Cache的操作,使得一個大容量系統(tǒng)能夠在負載較大時得到更低功耗,且達到最優(yōu)性能。
文檔編號G06F12/08GK102591799SQ20111045611
公開日2012年7月18日 申請日期2011年12月30日 優(yōu)先權日2011年12月30日
發(fā)明者程傳寧 申請人:華為技術有限公司