本發(fā)明涉及計算機技術領域,特別是涉及一種高速緩存Cache異常的處理方法及裝置。
背景技術:
目前,中央處理器(CPU,Central Processing Unit)的訪問速度越來越高,而內存的訪問速度的改進緩慢,這導致CPU從內存獲取指令或讀寫內存中的數據成為了CPU訪問速度的瓶頸?;谠撉闆r,Cache(高速緩存)應運而生。
Cache為一種特殊的存儲器子系統(tǒng),其位于CPU和內存之間。一般地,Cache分為一級(L1,level 1)Cache和二級(L2,level 2)Cache。L1 Cache集成在CPU內部,包括多個Cache way(高速緩存路),每個Cache way包括多個Cache line(高速緩存行)。L2 Cache集成在主板上,包括多個Bank(存儲單元);其中每個Bank包括多個Cache way,每個Cache way包括多個Cache line。L1 Cache和L2 Cache的存儲容量都很小,但訪問速度很快,CPU可以快速地從L1 Cache和L2 Cache中獲取指令或讀寫數據,極大地提高了CPU的訪問速度。但Cache的成本較高,并且存儲容量很小,這使得對Cache異常的處理顯得尤為重要。
現有技術中,通信設備檢測到Cache異常時,讀取L1 Cache的寄存器和L2Cache的寄存器,記錄L1 Cache的異常信息和/或L2 Cache的Cache異常信息,通信設備執(zhí)行重啟。但這種Cache異常的處理方式所導致的問題在于,通信設備的Cache異常是偶然性異常,無法確定通信設備什么時候會再次因為Cache異常重啟,給通信設備運行的通信產生不穩(wěn)定的影響,導致網絡數據中斷,影響業(yè)務的處理。
技術實現要素:
本發(fā)明實施例的目的在于提供一種高速緩存異常的處理方法及裝置,以提高通信設備的穩(wěn)定性,降低對業(yè)務的影響。具體技術方案如下:
一方面,本發(fā)明實施例公開了一種高速緩存異常的處理方法,所述方法包括:
檢測到高速緩存異常,讀取一級高速緩存的寄存器和二級高速緩存的寄存器;
根據讀取的所述一級高速緩存的寄存器和所述二級高速緩存的寄存器,識別產生所述高速緩存異常的異常高速緩存行;
確定所述異常高速緩存行所屬的高速緩存路位于所述一級高速緩存,根據記錄所述一級高速緩存的高速緩存路狀態(tài)的寄存器,判斷所述一級高速緩存是否還有可用的高速緩存路;
如果是,在所述記錄一級高速緩存的高速緩存路狀態(tài)的寄存器中,記錄所述異常高速緩存行所屬的高速緩存路不可用,關閉所述異常高速緩存行所屬的高速緩存路;
如果否,執(zhí)行重啟。
另一方面,本發(fā)明實施例公開了一種高速緩存異常的處理裝置,所述裝置包括:
檢測模塊,用于檢測高速緩存異常;
讀取模塊,用于當檢測到高速緩存異常時,讀取一級高速緩存的寄存器和二級高速緩存的寄存器;
識別模塊,用于根據讀取的所述一級高速緩存的寄存器和所述二級高速緩存的寄存器,識別產生所述高速緩存異常的異常高速緩存行;
控制模塊,用于確定所述異常高速緩存行所屬的高速緩存路位于所述一級高速緩存,根據記錄所述一級高速緩存的高速緩存路狀態(tài)的寄存器,判斷所述一級高速緩存是否還有可用的高速緩存路;如果是,在所述記錄一級高速緩存的高速緩存路狀態(tài)的寄存器中,記錄所述異常高速緩存行所屬的高速緩存路不可用,關閉所述異常高速緩存行所屬的高速緩存路;如果否,執(zhí)行重啟。
本發(fā)明實施例中,通信設備檢測到Cache異常,在L1 Cache或者L2 Cache的Bank還有可用Cache way時,先記錄發(fā)生Cache異常的Cache way,再關閉發(fā)生Cache異常的Cache way,繼續(xù)使用在L1 Cache或者L2 Cache的Bank中可用的Cache way,減少了通信設備由于Cache異常的重啟的次數,提高了通信設備的穩(wěn)定性,降低了對報文轉發(fā)業(yè)務的影響。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種Cache異常的處理方法的流程示意圖;
圖2為本發(fā)明實施例中記錄L1 Cache的Cache way狀態(tài)的寄存器的示意圖;
圖3為圖2中記錄L1 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;
圖4為圖2和圖3中記錄L1 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;
圖5為本發(fā)明實施例中記錄兩個線程共享的L1 Cache的Cache way狀態(tài)的寄存器的示意圖;
圖6為圖5中記錄兩個線程共享的L1 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;
圖7為本發(fā)明實施例中記錄L2 Cache的Cache way狀態(tài)的寄存器的示意圖;
圖8為圖7中記錄L2 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;
圖9為圖7和圖8中記錄L2 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;
圖10為本發(fā)明實施例提供的一種Cache異常的處理裝置的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
下面通過具體實施例,對本發(fā)明進行詳細說明。
參考圖1,圖1為本發(fā)明實施例提供的一種Cache異常的處理方法的流程示意圖。一般的,Cache分為L1 Cache和L2 Cache。LCache包括多個Cache way,每個Cache way包括多個Cache line;L2 Cache包括多個Bank,每個Bank包括多個Cache way,每個Cache way包括多個Cache line。具體地,該方法包括:
步驟101,檢測到高速緩存異常,讀取一級高速緩存的寄存器和二級高速緩存的寄存器;
步驟102,根據讀取的一級高速緩存的寄存器和二級高速緩存的寄存器,識別產生高速緩存異常的異常高速緩存行;
步驟103,確定異常高速緩存行所屬的高速緩存路位于一級高速緩存;
步驟104,根據記錄一級高速緩存的高速緩存路狀態(tài)的寄存器,判斷一級高速緩存是否還有可用的高速緩存路;如果是,執(zhí)行步驟105;如果否,執(zhí)行步驟107;
步驟105,在記錄一級高速緩存的高速緩存路狀態(tài)的寄存器中,記錄異常高速緩存行所屬的高速緩存路不可用;
步驟106,關閉異常高速緩存行所屬的高速緩存路;
步驟107,執(zhí)行重啟。
具體地,通信設備的CPU可以采用ECC(Error Correcting Code,錯誤檢查與糾正)技術中的SECDED(Single Error Correction and Double Error Detection,單錯誤校正、多錯誤發(fā)現)技術,檢測L1 Cache和L2 Cache的各個Cache way包括的各個Cache line中是否存在錯誤的Bit(比特),若存在一個錯誤的Bit,則進行檢查并糾正;若存在多個錯誤的Bit,則確定Cache line發(fā)生Cache異常,讀取L1 Cache的寄存器和L2 Cache的寄存器,根據讀取到的信息可以確定出發(fā)生Cache異常的Cache line是位于L1 Cache,還是位于L2 Cache;
如果發(fā)生Cache異常的Cache line(也就是異常Cache line)位于L1 Cache,則確定發(fā)生Cache異常的Cache line所屬的Cache way,并將這個Cache way設置為不可用。
例如:一個Cache way的存儲空間大小為4KB,一個Cache line的存儲空間大小為32byte,則一個Cache way可以包括Cache line0-Cache line127這128個Cache line,若檢測到一個Cache way中Cache line0-Cache line127中任一Cache line存在Cache異常,則將這個Cache way設置為不可用。
在將L1 Cache中發(fā)生Cache異常的Cache line所屬的Cache way設置為不可用之前,可以先檢測L1 Cache中是否還存在可用的Cache way,如果存在可用的Cache way,再將L1 Cache中發(fā)生Cache異常的Cache line所屬的Cache way設置為不可用,進而關閉L1 Cache中不可用的Cache way,通信設備可以繼續(xù)使用L1 Cache中可用的Cache way進行通信,處理業(yè)務,降低了對業(yè)務的影響;如果不存在可用的Cache way,L1 Cache中不再具有可以處理業(yè)務的Cache way,再執(zhí)行將L1 Cache中發(fā)生Cache異常的Cache line所屬的Cache way設置為不可用,關閉L1 Cache中不可用的Way的操作將不具有任何意義,此時可以直接重啟通信設備。
在本發(fā)明的一個實施例中,為了便于確定當前L1 Cache中是否存在可用的Way,可以通過寄存器記錄L1 Cache的Cache way是否可用。
圖2為本發(fā)明實施例中記錄L1 Cache的Cache way狀態(tài)的寄存器的示意圖。假設,通信設備的L1 Cache具有8個Cache way。在圖2所示的記錄L1 Cache的Cache way狀態(tài)的寄存器中,Bit 0-Bit 7指示L1 Cache的Cache way 0-Cache way 7是否可用;記錄L1 Cache的Cache way狀態(tài)的寄存器的Bit 0-Bit 7在初始狀態(tài)下,每個Bit值都被設置為“0”,用于指示每個Bit對應的Cache way可用。
圖3為圖2中記錄L1 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;通信設備檢測到Cache異常時,讀取L1 Cache的寄存器和L2 Cache的寄存器,將L1 Cache和L2 Cache存儲的指令和數據寫入內存,根據讀取的L1Cache的寄存器和L2 Cache的寄存器,檢測到發(fā)生Cache異常的Cache line位于L1 Cache的Cache way 0,且確定L1 Cache中還有可用Cache way,對記錄L1Cache的Cache way狀態(tài)的寄存器中指示Cache way 0的Bit 0進行“或”操作,將Bit 0的初始值從“0”修改為“1”,指示L1 Cache的Cache way 0為不可用;通信設備關閉L1 Cache的Cache way 0。
圖3中,通信設備在發(fā)生Cache異常時,在記錄L1 Cache的Cache way 0不可用之前,先將L1 Cache和L2 Cache中記錄的指令和數據回寫到內存中,保證了數據的一致性和避免了Cache way 0是L1 Cache中最后一個可用的Cache way而需要重啟導致的存儲的數據和指令的丟失。
圖4為圖2和圖3中記錄L1 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;通信設備再次檢測到Cache異常,讀取L1 Cache的寄存器和L2 Cache的寄存器,將L1 Cache和L2 Cache存儲的指令和數據寫入內存,根據讀取的L1 Cache的寄存器和L2 Cache的寄存器,檢測到發(fā)生Cache異常的Cache line位于L1 Cache的Cache way 3,且確定L1 Cache中還有可用Cache way,對記錄L1 Cache的Cache way狀態(tài)的寄存器中指示Cache way 3的Bit 3進行“或”操作,將Bit 3的初始值從“0”修改為“1”,指示L1 Cache的Cache way 3不可用;通信設備關閉L1 Cache的Cache way 3。
假設,通信設備已經關閉了L1 Cache中的7個Cache way,再次檢測到發(fā)生Cache異常的Cache line位于L1 Cache的一個Cache way,將L1 Cache和L2 Cache存儲的指令和數據寫入內存之后,確定L1 Cache已沒有可用的Cache way,則進行重啟,通信設備不必再將記錄L1 Cache的Cache way狀態(tài)的寄存器中指示最后一個不可用Cache way的Bit設置為不可用。
在本發(fā)明的其他實施例中,通信設備可根據記錄L1 Cache的Cache way狀態(tài)的寄存器中數值為“0”的Bit的數目,確定L1 Cache是否還有可用的Cache way,或者,通信設備可根據記錄L1 Cache的Cache way狀態(tài)的寄存器中數值為“1”的Bit的數目,確定L1 Cache是否還有可用的Cache way。譬如,通信設備從記錄L1 Cache的Cache way狀態(tài)的寄存器中讀取的數值為“0”的Bit的數目為1個,則確定當前發(fā)生Cache異常的Cache line位于L1 Cache唯一可用的Cache way,L1Cache沒有可用的Cache way?;蛘?,譬如,通信設備從記錄L1 Cache的的Cache way狀態(tài)的寄存器讀取的數值為“1”的Bit的數目為7個(L1 Cache的Cache way的總數目減1),則確定當前發(fā)生Cache異常的Cache line位于L1 Cache唯一可用的Cache way,L1 Cache沒有可用的Cache way。
在本發(fā)明的一個實施例中,通信設備的CPU含有多個核心,即多核CPU,多核CPU的每個核可以有多個線程,這些線程共享L1 Cache的各個Cache way的Cache line的存儲空間。這種情況下,在確定發(fā)生Cache異常的Cache line所屬的L1 Cache的Cache way后,需要在記錄這些線程共享的L1 Cache的Cache way狀態(tài)的寄存器中,將L1 Cache中每個線程對應的發(fā)生Cache異常的Cache line所屬的Cache way都記錄為不可用,將L1 Cache中每個線程對應的不可用的Cache way都關閉。
圖5為本發(fā)明實施例中記錄兩個線程共享的L1 Cache的Cache way狀態(tài)的寄存器的示意圖;假設,CPU的其中一個核運行2個線程,共享L1 Cache的8個Cache way。在圖5所示的記錄兩個線程共享的L1 Cache的Cache way狀態(tài)的寄存器中,Bit 0-Bit 7指示線程1共享的L1 Cache的8個Cache way是否可用,Bit 8-Bit 15指示線程2共享的L1 Cache的8個Cache way是否可用。
圖6為圖5中記錄兩個線程共享的L1 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;通信設備檢測到Cache異常時,讀取L1 Cache的寄存器和L2 Cache的寄存器,將L1 Cache和L2 Cache存儲的指令和數據寫入內存,根據讀取的L1 Cache的寄存器和L2 Cache的寄存器,檢測到發(fā)生Cache異常的Cache line位于L1 Cache的Cache way 0,且確定L1 Cache中還有可用Cache way,對指示線程1所使用的Cache way 0的Bit 0進行“或”操作,將Bit 0的初始值從“0”修改為“1”,對指示線程2使用的Cache way 0的Bit 8進行“或”操作,將Bit 8的初始值從“0”修改為“1”,這樣,記錄線程1和線程2共享的L1 Cache的Cache way 0為不可用;通信設備關閉線程1和線程2共享的L1 Cache的Cache way 0。
在本發(fā)明的其他實施例中,通信設備檢測到Cache異常時,讀取L1 Cache的寄存器和L2 Cache的寄存器,根據讀取的L1 Cache的寄存器和L2 Cache的寄存器,檢測到發(fā)生Cache異常的Cache line所屬的Cache way位于L2 Cache的其中一個Bank,若檢測到發(fā)生Cache異常的Cache line所屬的Cache way所在的Bank還存在可用的Cache way,則關閉發(fā)生Cache異常的Cache line所屬的Cache way,通信設備可以繼續(xù)使用這個Bank中其他的可用的Cache way,降低了對業(yè)務的影響;如果這個Bank沒有可用的Cache way,不必再執(zhí)行關閉這個發(fā)生Cache異常的Cache line所屬的Cache way的操作,可以直接重啟通信設備。
圖7為本發(fā)明實施例中記錄L2 Cache的Cache way狀態(tài)的寄存器的示意圖。假設,通信設備的L2 Cache包括2個Bank:Bank 0和Bank 1;Bank 0和Bank 1各自包括8個Cache way。在圖7所示的記錄L2 Cache的Cache way狀態(tài)的寄存器中,Bit 0-Bit 7的初始值可被設置為“0”,用于指示Bank 0的Cache way 0-Cache way 7可用,Bit 8-Bit 15的初始值可被設置為“0”,用于指示Bank 1的Cache way0-Cache way 7可用。
圖8為圖7中記錄L2 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;通信設備檢測到Cache異常時,讀取L1 Cache的寄存器和L2 Cache的寄存器,將L1 Cache和L2 Cache存儲的指令和數據寫入內存,根據讀取的L1Cache的寄存器和L2 Cache的寄存器,檢測到發(fā)生Cache異常的Cache line位于L2Cache的Bank 0的Cache way 0,且確定L2 Cache的Bank 0中還有可用Cache way,對記錄L2 Cache的Cache way狀態(tài)的寄存器中指示Bank 0的Cache way 0的Bit 0進行“或”操作,將Bit 0的初始值從“0”修改為“1”,指示L2 Cache的Bank 0的Cache way 0為不可用;通信設備關閉L2 Cache的Bank 0的Cache way 0。
圖9為圖7和圖8中記錄L2 Cache的Cache way狀態(tài)的寄存器記錄不可用Cache way的示意圖;通信設備檢測到Cache異常時,讀取L1 Cache的寄存器和L2 Cache的寄存器,將L1 Cache和L2 Cache存儲的指令和數據寫入內存,根據讀取的L1 Cache的寄存器和L2 Cache的寄存器,檢測到發(fā)生Cache異常的Cache line位于L2 Cache的Bank 1的Cache way 3,且確定L2 Cache的Bank 1中還有可用Cache way,對記錄L2 Cache的Cache way狀態(tài)的寄存器中Bit 11進行“或”操作,將Bit 11的初始值從“0”修改為“1”,指示L2 Cache的Bank 1的Cache way 3為不可用;通信設備關閉L2 Cache的Bank 1的Cache way 3。
假設,通信設備已經關閉了L2 Cache的Bank 0的7個Cache way,再次檢測到發(fā)生Cache異常的Cache line位于L2 Cache的Bank 0的一個Cache way,將L1Cache和L2 Cache存儲的指令和數據寫入內存之后,確定L2 Cache的Bank 0沒有可用的Cache way,則進行重啟,通信設備不必在記錄了L2 Cache的Bank0的全部Cache way都設置不可用之后再重啟。
在本發(fā)明的其他實施例中,通信設備可根據記錄L2 Cache的Cache way狀態(tài)的寄存器中數值為“0”的Bit的數目,確定L2 Cache的每個Bank是否還有可用的Cache way,或者,通信設備可根據記錄L2 Cache的Cache way狀態(tài)的寄存器中數值為“1”的Bit的數目,確定L2 Cache的每個Bank是否還有可用的Cache way。
譬如,通信設備從記錄L2 Cache的Cache way狀態(tài)的寄存器的Bit-0-Bit7讀取到數值為“0”的Bit的數目為1個,則確定當前發(fā)生Cache異常的Cache line位于L2 Cache的Bank 0唯一可用的Cache way,L2 Cache的Bank 0沒有可用的Cache way。或者,通信設備從記錄L2 Cache的Cache way狀態(tài)的寄存器的Bit0-Bit7讀取到數值為“1”的Bit的數目為7個,則確定當前發(fā)生Cache異常的Cache line位于L2 Cache的Bank 0的唯一可用的Cache way,L2 Cache的Bank 0沒有可用的Cache way。
同樣的,通信設備從記錄L2 Cache的Cache way狀態(tài)的寄存器的Bit-8-Bit 15讀取到數值為“0”的Bit的數目為1個,則確定當前發(fā)生Cache異常的Cache line位于L2 Cache的Bank 1唯一可用的Cache way,L2 Cache的Bank 1沒有可用的Cache way。或者,通信設備從記錄L2 Cache的Cache way狀態(tài)的寄存器的Bit8-Bit 15讀取到數值為“1”的Bit的數目為7個,則確定當前發(fā)生Cache異常的Cache line位于L2 Cache的Bank 1唯一可用的Cache way,L2 Cache的Bank 1沒有可用的Cache way。
應用上述實施例,通信設備檢測到Cache異常,在L1 Cache或者L2 Cache的Bank還有可用Cache way時,先記錄發(fā)生Cache異常的Cache way,再關閉發(fā)生Cache異常的Cache way,繼續(xù)使用在L1 Cache或者L2 Cache的Bank中可用的Cache way,減少了通信設備由于Cache異常的重啟的次數,提高了通信設備的穩(wěn)定性,降低了對報文轉發(fā)業(yè)務的影響。
參考圖10,圖10為本發(fā)明實施例提供的一種Cache異常的處理裝置的結構示意圖,該裝置包括:
檢測模塊1001,用于檢測高速緩存異常;
讀取模塊1002,用于當檢測到高速緩存異常時,讀取一級高速緩存的寄存器和二級高速緩存的寄存器;
識別模塊1003,用于根據讀取的一級高速緩存的寄存器和二級高速緩存的寄存器,識別產生高速緩存異常的異常高速緩存行;
控制模塊1004,用于確定異常高速緩存行所屬的高速緩存路位于一級高速緩存,根據記錄一級高速緩存的高速緩存路狀態(tài)的寄存器,判斷一級高速緩存是否還有可用的高速緩存路;如果是,在記錄一級高速緩存的高速緩存路狀態(tài)的寄存器中,記錄異常高速緩存行所屬的高速緩存路不可用,關閉異常高速緩存行所屬的高速緩存路;如果否,執(zhí)行重啟。
在本發(fā)明的其他實施例中,控制模塊1004,還可以用于:
確定異常高速緩存行所屬的高速緩存路位于一級高速緩存且被多個線程共享,根據記錄多個線程共享的一級高速緩存的高速緩存路狀態(tài)的寄存器,判斷一級高速緩存是否還有可用的高速緩存路;如果是,在記錄多個線程共享的一級高速緩存的高速緩存路狀態(tài)的寄存器中,將每個線程使用的異常高速緩存行所屬的高速緩存路記錄為不可用;關閉被多個線程共享的異常高速緩存行所屬的高速緩存路;如果否,執(zhí)行重啟。
在本發(fā)明的其他實施例中,控制模塊1004,還可以用于:
確定異常高速緩存行所屬的高速緩存路位于二級高速緩存的其中一個存儲單元,根據記錄二級高速緩存的每個存儲單元的高速緩存路狀態(tài)的寄存器,判斷異常高速緩存行所屬的高速緩存路位于的存儲單元是否還有可用的高速緩存路;如果是,在記錄二級高速緩存的每個存儲單元的高速緩存路狀態(tài)的寄存器中,記錄異常高速緩存行所屬的高速緩存路不可用;關閉異常高速緩存行所屬的高速緩存路;如果否,執(zhí)行重啟。
在本發(fā)明的其他實施例中,控制模塊1004,還可以用于:
存儲模塊,將一級高速緩存和二級高速緩存中存儲的數據和指令記錄于內存。
應用上述實施例,通信設備檢測到Cache異常,在L1 Cache或者L2 Cache的Bank還有可用Cache way時,先記錄發(fā)生Cache異常的Cache way,再關閉發(fā)生Cache異常的Cache way,繼續(xù)使用在L1 Cache或者L2 Cache的Bank中可用的Cache way,減少了通信設備由于Cache異常的重啟的次數,提高了通信設備的穩(wěn)定性,降低了對報文轉發(fā)業(yè)務的影響。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。