欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于高速緩存利用的設(shè)備和方法

文檔序號(hào):6593273閱讀:189來源:國知局
專利名稱:用于高速緩存利用的設(shè)備和方法
技術(shù)領(lǐng)域
本發(fā)明涉及高速緩存利用。更具體來說,本發(fā)明的一些實(shí)施例涉及在諸如基于處 理器的系統(tǒng)的電子系統(tǒng)中利用非易失性高速緩存的設(shè)備和方法。
背景技術(shù)
許多電子系統(tǒng)得益于高速緩存存儲(chǔ)器的使用。在一些電子系統(tǒng)中,可提供驅(qū)動(dòng)程 序軟件來利用高速緩存存儲(chǔ)器。美國專利第7360015號(hào)描述了高速緩存存儲(chǔ)器的一些利用,其可包括確定所請(qǐng) 求的信息是否是流式訪問(streaming access)的一部分以及如果所請(qǐng)求的信息是流式 訪問的一部分,則在存儲(chǔ)裝置與存儲(chǔ)器之間直接傳送所請(qǐng)求的信息。或者,如果所請(qǐng)求的信 息不是流式訪問的一部分,則它可在存儲(chǔ)裝置與高速緩存之間進(jìn)行傳送。在各種實(shí)施例中, 高速緩存可以是非易失性盤高速緩存。在 ftp//download, intel. com/desiRn/flash/NAND/turbomemory/whitepaper. Mf發(fā)布的白皮書中,白皮書描述了 Intel Turbo Memory,它由Intel TurboMemory控制 器ASIC (專用集成電路)芯片和使得能夠在休眠之后更快速恢復(fù)生產(chǎn)力的兩個(gè)Intel NAND 閃速非易失性存儲(chǔ)器組件組成,從而通過限制硬盤驅(qū)動(dòng)器訪問而提供額外的功率節(jié)省,并 增加應(yīng)用響應(yīng)性以實(shí)現(xiàn)更豐富的用戶體驗(yàn)。


通過以下對(duì)在附圖中示出的優(yōu)選實(shí)施例的描述,本發(fā)明的各種特征將顯而易見, 附圖中,類似的附圖標(biāo)記一般指相同的部分。附圖不一定按比例繪制,而是將重點(diǎn)放在說明 本發(fā)明的原理上。圖1是根據(jù)本發(fā)明一些實(shí)施例的電子系統(tǒng)的框圖。圖2是根據(jù)本發(fā)明一些實(shí)施例的基于處理器的系統(tǒng)的框圖。圖3是根據(jù)本發(fā)明一些實(shí)施例的流程圖。圖4是根據(jù)本發(fā)明一些實(shí)施例的另一流程圖。圖5是根據(jù)本發(fā)明一些實(shí)施例的另一流程圖。圖6是根據(jù)本發(fā)明一些實(shí)施例的另一流程圖。圖7是根據(jù)本發(fā)明一些實(shí)施例的另一流程圖。圖8是根據(jù)本發(fā)明一些實(shí)施例用于比較的編號(hào)唯一扇區(qū)對(duì)訪問次數(shù)的曲線圖。圖9是根據(jù)本發(fā)明一些實(shí)施例的編號(hào)唯一扇區(qū)對(duì)訪問次數(shù)的曲線圖。圖10是根據(jù)本發(fā)明一些實(shí)施例的另一流程圖。
具體實(shí)施例方式在以下描述中,為了說明而非限制的目的,闡述了諸如特定結(jié)構(gòu)、體系結(jié)構(gòu)、接口、 技術(shù)等具體細(xì)節(jié),以便充分了解本發(fā)明的各個(gè)方面。但是,對(duì)于得益于本公開的本領(lǐng)域技
6術(shù)人員顯而易見的是,可在離開這些具體細(xì)節(jié)的其它實(shí)例中實(shí)現(xiàn)本發(fā)明的各個(gè)方面。在某 些情況下,省略了對(duì)公知裝置、電路和方法的描述,以免用不必要的細(xì)節(jié)混淆對(duì)本發(fā)明的描 述。參考圖1,電子系統(tǒng)10可包括設(shè)置在大容量存儲(chǔ)設(shè)備14與系統(tǒng)存儲(chǔ)器16之間的 高速緩存12。系統(tǒng)10可包括存儲(chǔ)在電子系統(tǒng)10上的代碼,用于基于對(duì)第一信息的第一請(qǐng) 求的第一元數(shù)據(jù)與在電子系統(tǒng)10的先前引導(dǎo)上下文中存儲(chǔ)的預(yù)引導(dǎo)流信息的比較而防止 將流數(shù)據(jù)存儲(chǔ)在高速緩存12中,而是在系統(tǒng)存儲(chǔ)器16與大容量存儲(chǔ)設(shè)備14之間直接發(fā)送 流數(shù)據(jù)。例如,代碼可存儲(chǔ)在大容量存儲(chǔ)設(shè)備14、系統(tǒng)存儲(chǔ)器16或耦合到電子系統(tǒng)10的另 一存儲(chǔ)器或存儲(chǔ)裝置上。在系統(tǒng)10的一些實(shí)施例中,如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)與預(yù)引導(dǎo) 流信息的比較確定第一信息不是流式訪問的一部分,則代碼還可使電子系統(tǒng)10緩存第一 信息。在系統(tǒng)10的一些實(shí)施例中,代碼還可使電子系統(tǒng)10 接收對(duì)大容量存儲(chǔ)設(shè)備訪問的 第二請(qǐng)求,第二請(qǐng)求用于請(qǐng)求第二信息;并且如果先前確定第一信息不是流式訪問的一部 分,則基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和與第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比較確定 第二信息是否是流式訪問的一部分;并且如果確定第二信息是流式訪問的一部分,則存儲(chǔ) 對(duì)應(yīng)于流式訪問的流信息,該流信息跨越包括電子系統(tǒng)10的硬引導(dǎo)在內(nèi)的電子系統(tǒng)的不 同功率狀態(tài)保持連續(xù)(persistent),其中所存儲(chǔ)的流信息可在以后用作隨后引導(dǎo)的預(yù)引導(dǎo) 流fe息。在系統(tǒng)10的一些實(shí)施例中,代碼還可使系統(tǒng)10 基于與第一請(qǐng)求相關(guān)聯(lián)的第一元 數(shù)據(jù)和預(yù)引導(dǎo)流信息的比較確定第一信息是否是流式訪問的一部分;將流式訪問的頻率信 息與頻率閾值進(jìn)行比較;如果確定第一信息是流式訪問的一部分并且流式訪問的頻率信息 沒有超過頻率閾值,則直接用大容量存儲(chǔ)設(shè)備14執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求; 并且如果確定第一信息是流式訪問的一部分并且流式訪問的頻率信息超過頻率閾值,則緩 存第一信息。例如,在一些實(shí)施例中,代碼還可更新流式訪問的頻率信息。例如,在一些實(shí) 施例中,代碼還可將流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾值進(jìn)行比較,并且如果流式訪問的長(zhǎng) 度信息超過長(zhǎng)度閾值,則防止將流數(shù)據(jù)存儲(chǔ)在高速緩存中,而是在系統(tǒng)存儲(chǔ)器16與大容量 存儲(chǔ)設(shè)備14之間直接發(fā)送流數(shù)據(jù)。參考圖2,基于處理器的系統(tǒng)20可包括處理器21、耦合到處理器21的系統(tǒng)存儲(chǔ) 器22、大容量存儲(chǔ)裝置23、以及設(shè)置在系統(tǒng)存儲(chǔ)器22與大容量存儲(chǔ)裝置23之間的非易失 性高速緩存存儲(chǔ)器24。例如,處理器21可以是中央處理單元(CPU)。例如,系統(tǒng)存儲(chǔ)器22 可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。例如,系統(tǒng)存儲(chǔ)器22可以經(jīng)由存儲(chǔ)器控制器集線器 (MCH) 25耦合到處理器21。例如,高速緩存24可以是非易失性存儲(chǔ)器(NVM)高速緩存。例 如,大容量存儲(chǔ)裝置23可以是諸如硬盤驅(qū)動(dòng)器或光盤驅(qū)動(dòng)器的旋轉(zhuǎn)介質(zhì)。例如,大容量存 儲(chǔ)裝置23可以是諸如固態(tài)驅(qū)動(dòng)器的非旋轉(zhuǎn)介質(zhì)。例如,高速緩存24和大容量存儲(chǔ)裝置23 都可經(jīng)由輸入/輸出控制器集線器(ICH) 26耦合到MCH。存儲(chǔ)在基于處理器的系統(tǒng)20上的代碼可使基于處理器的系統(tǒng)接收對(duì)大容量存 儲(chǔ)設(shè)備訪問的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求第一信息;檢索在基于處理器的系統(tǒng)的先前引 導(dǎo)上下文期間存儲(chǔ)的預(yù)引導(dǎo)流信息,先前的引導(dǎo)上下文不同于當(dāng)前的引導(dǎo)上下文。代碼還 可使基于處理器的系統(tǒng)20 基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和預(yù)引導(dǎo)流信息的比較
7確定第一信息是否是流式訪問的一部分;并且如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和 預(yù)引導(dǎo)流信息的比較確定第一信息不是流式訪問的一部分,則緩存第一信息。如果確定第 一信息是流式訪問的一部分,則代碼還可使基于處理器的系統(tǒng)20 將流式訪問的頻率信息 與頻率閾值進(jìn)行比較;如果確定第一信息是流式訪問的一部分并且流式訪問的頻率信息沒 有超過頻率閾值,則直接用大容量存儲(chǔ)裝置23執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求;并 且如果確定第一信息是流式訪問的一部分并且流式訪問的頻率信息超過頻率閾值,則緩存 第一信息。例如,代碼可存儲(chǔ)在大容量存儲(chǔ)裝置23、系統(tǒng)存儲(chǔ)器22或耦合到基于處理器的 系統(tǒng)20的另一存儲(chǔ)器或存儲(chǔ)裝置上。例如,代碼可作為耦合到ICH 26的基本輸入/輸出 系統(tǒng)(BIOS) 27的一部分加以存儲(chǔ)。例如,在系統(tǒng)20的一些實(shí)施例中,代碼還可使基于處理器的系統(tǒng)20接收對(duì)大容量 存儲(chǔ)設(shè)備訪問的第二請(qǐng)求,第二請(qǐng)求用于請(qǐng)求第二信息。如果先前確定第一信息不是流式 訪問的一部分,則代碼還可使基于處理器的系統(tǒng)20基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù) 和與第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比較確定第二信息是否是流式訪問的一部分。如果確 定第二信息是流式訪問的一部分,則代碼還可使基于處理器的系統(tǒng)20存儲(chǔ)對(duì)應(yīng)于流式訪 問的流信息,該流信息跨越包括基于處理器的系統(tǒng)20的硬引導(dǎo)在內(nèi)的不同功率狀態(tài)保持 連續(xù),其中流信息可在以后用作隨后引導(dǎo)的預(yù)引導(dǎo)流信息。例如,在基于處理器的系統(tǒng)20的一些實(shí)施例中,代碼還可更新流式訪問的頻率信 息。在基于處理器的系統(tǒng)20的一些實(shí)施例中,代碼還可將流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾 值進(jìn)行比較,并且如果流式訪問的長(zhǎng)度信息超過長(zhǎng)度閾值,則防止將流數(shù)據(jù)存儲(chǔ)在高速緩 存24中,而是在系統(tǒng)存儲(chǔ)器22與大容量存儲(chǔ)裝置23之間直接發(fā)送流數(shù)據(jù)。參考圖3和圖4,根據(jù)本發(fā)明的一些實(shí)施例,在電子系統(tǒng)中利用高速緩存可包括 在大容量存儲(chǔ)裝置與系統(tǒng)存儲(chǔ)器之間設(shè)置高速緩存(例如,在方框30);接收對(duì)大容量存儲(chǔ) 設(shè)備訪問的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求第一信息(例如,在方框31);檢索在先前的引導(dǎo) 上下文期間存儲(chǔ)的預(yù)引導(dǎo)流信息,先前的引導(dǎo)上下文不同于當(dāng)前的引導(dǎo)上下文(例如,在 方框32);基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和預(yù)引導(dǎo)流信息的比較確定第一信息是否 是流式訪問的一部分(例如,在方框33);以及如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和 預(yù)引導(dǎo)流信息的比較確定第一信息是流式訪問的一部分,則直接用大容量存儲(chǔ)裝置執(zhí)行對(duì) 大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求(例如,在方框34)。例如,本發(fā)明的一些實(shí)施例還可包括如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù) 和預(yù)引導(dǎo)流信息的比較確定第一信息不是流式訪問的一部分,則緩存第一信息(例如,在 方框35)。例如,本發(fā)明的一些實(shí)施例還可包括接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第二請(qǐng)求, 第二請(qǐng)求用于請(qǐng)求第二信息(例如,在方框36);以及如果先前確定第一信息不是流式訪問 的一部分,則基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和與第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比 較確定第二信息是否是流式訪問的一部分(例如,在方框37);以及如果確定第二信息是流 式訪問的一部分,則存儲(chǔ)對(duì)應(yīng)于流式訪問的流信息,該流信息跨越包括電子系統(tǒng)的硬引導(dǎo) 在內(nèi)的電子系統(tǒng)的不同功率狀態(tài)保持連續(xù),其中所存儲(chǔ)的流信息可在以后用作隨后引導(dǎo)的 預(yù)引導(dǎo)流信息(例如,在方框38)。參考圖5和圖6,根據(jù)本發(fā)明的一些實(shí)施例,在電子系統(tǒng)中利用高速緩存可包括 在大容量存儲(chǔ)裝置與系統(tǒng)存儲(chǔ)器之間設(shè)置高速緩存(例如,在方框50);接收對(duì)大容量存儲(chǔ)
8設(shè)備訪問的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求第一信息(例如,在方框51);基于與第一請(qǐng)求相 關(guān)聯(lián)的第一元數(shù)據(jù)和與流式訪問相關(guān)聯(lián)的其它信息的比較確定第一信息是否是流式訪問 的一部分(例如,在方框52);以及如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和與流式訪問 相關(guān)聯(lián)的其它信息的比較確定第一信息是流式訪問的一部分,則將流式訪問的頻率信息與 頻率閾值進(jìn)行比較(例如,在方框53);如果確定第一信息是流式訪問的一部分并且流式訪 問的頻率信息沒有超過頻率閾值,則直接用大容量存儲(chǔ)裝置執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的 第一請(qǐng)求(例如,在方框54);以及如果確定第一信息是流式訪問的一部分并且流式訪問的 頻率信息超過頻率閾值,則緩存第一信息(例如,在方框55)。例如,與流式訪問相關(guān)聯(lián)的其它流信息可以是預(yù)引導(dǎo)流信息、在當(dāng)前的引導(dǎo)上下 文中保存的流信息、或與流式訪問相關(guān)聯(lián)的可用于將第一信息識(shí)別為流式訪問的一部分的 其它信息。例如,一些實(shí)施例還可包括更新流式訪問的頻率信息(例如,在方框56)。例如, 一些實(shí)施例還可包括將流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾值進(jìn)行比較(例如,在方框57); 以及如果流式訪問的長(zhǎng)度信息超過長(zhǎng)度閾值,則防止緩存第一信息(例如,在方框58)。參考圖7,根據(jù)本發(fā)明的一些實(shí)施例,在基于處理器的系統(tǒng)中利用高速緩存可包 括在大容量存儲(chǔ)裝置與系統(tǒng)存儲(chǔ)器之間設(shè)置高速緩存(例如,在方框70);接收對(duì)大容量 存儲(chǔ)設(shè)備訪問的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求第一信息(例如,在方框71);檢索在先前的 引導(dǎo)上下文期間存儲(chǔ)的預(yù)引導(dǎo)流信息,先前的引導(dǎo)上下文不同于當(dāng)前的引導(dǎo)上下文(例 如,在方框72);基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和預(yù)引導(dǎo)流信息的比較確定第一信 息是否是流式訪問的一部分(例如,在方框73);如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù) 和預(yù)引導(dǎo)流信息的比較確定第一信息不是流式訪問的一部分,則緩存第一信息(例如,在 方框74)。如果基于與第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和預(yù)引導(dǎo)流信息的比較確定第一信息 是流式訪問的一部分,則一些實(shí)施例還可包括將流式訪問的頻率信息與頻率閾值進(jìn)行比 較(例如,在方框75);如果確定第一信息是流式訪問的一部分并且流式訪問的頻率信息 沒有超過頻率閾值,則直接用大容量存儲(chǔ)裝置執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求(例 如,在方框76);以及如果確定第一信息是流式訪問的一部分并且流式訪問的頻率信息超 過頻率閾值,則緩存第一信息(例如,在方框77)。本發(fā)明的一些實(shí)施例還可包括更新流式訪問的頻率信息(例如,在方框78)。例 如,一些實(shí)施例還可在進(jìn)入點(diǎn)A之后利用高速緩存(例如,參見圖3)。例如,一些實(shí)施例還 可在進(jìn)入點(diǎn)B之后利用高速緩存(例如,參見圖5)。有利地,本發(fā)明的一些實(shí)施例可提供用于在旋轉(zhuǎn)介質(zhì)與高速緩存之間處理流訪問 的改進(jìn)的技術(shù)。如上述白皮書中所述,Intel Turbo Memory提供可加快硬盤訪問的高速緩 存策略。但是,也有一些訪問是硬盤做得好但同時(shí)可能對(duì)高速緩存有害的。例如,媒體文件 回放要求可由硬盤以HD視頻顯示器所需的速率容易地滿足。由于這些文件大且很少再使 用,所以它們違反根本的緩存前提,即,時(shí)間局部性(temporal locality)。如果將這些文件 進(jìn)行緩存,則影響是,可能會(huì)從高速緩存中驅(qū)逐出具有良好時(shí)間局部性的位置而用具有較 差時(shí)間局部性的位置取代。有利地,本發(fā)明的一些實(shí)施例可改善何時(shí)以及是否緩存信息的 決定的時(shí)機(jī)和質(zhì)量。決定過程會(huì)因高速緩存驅(qū)動(dòng)程序軟件在文件系統(tǒng)軟件棧中的位置而復(fù)雜化。例 如,高速緩存驅(qū)動(dòng)程序軟件可能不能直接訪問文件名稱信息。而是,高速緩存驅(qū)動(dòng)程序軟件
9可訪問諸如下列元數(shù)據(jù)的有限信息LBA-用于識(shí)別硬盤驅(qū)動(dòng)器上的起始扇區(qū)的邏輯塊地址;命令-對(duì)大容量存儲(chǔ)裝置的命令,例如讀或?qū)懀灰约伴L(zhǎng)度-命令的扇區(qū)數(shù)。有利地,本發(fā)明的一些實(shí)施例可提供用于匯集對(duì)高速緩存驅(qū)動(dòng)程序軟件有用的這 種有限信息并利用此有限信息來識(shí)別和管理流的改進(jìn)的技術(shù)。例如,流可以是表示相同命 令的命令集和所有或幾乎所有扇區(qū)。例如,在一些實(shí)施例中,最小大小可以是用于檢測(cè)和識(shí) 別流的有用參數(shù)。最小大小參數(shù)可以具有使高速緩存看起來更大的效果,這是因?yàn)榭梢瞥?不太可能的候選者。參考圖8和圖9,圖8示出沒有最小大小參數(shù)的示范模擬高速緩存利用,而圖9示 出具有四兆字節(jié)(MB)最小大小參數(shù)的示范模擬高速緩存利用。在圖9中可見,在移除4MB 或更大大小的流之后,還有約40 %的高速緩存大小可用。在一些實(shí)施例中,關(guān)于流的信息可以用元數(shù)據(jù)存儲(chǔ)。如果以后受到請(qǐng)求要訪問,則 這些信息可用于在以后識(shí)別相同流。這些元數(shù)據(jù)可用于為來自例如盤驅(qū)動(dòng)器的這個(gè)后來的 請(qǐng)求直接訪問數(shù)據(jù),而放棄存儲(chǔ)在高速緩存中。在一些實(shí)施例中,流式訪問可通過將關(guān)于先 前訪問的信息記錄到潛在流信息的陣列中來進(jìn)行檢測(cè)和識(shí)別。這種陣列可存儲(chǔ)在各種位 置,例如存儲(chǔ)在系統(tǒng)存儲(chǔ)器或高速緩存本身中。該陣列中的每個(gè)元素可包括某些元數(shù)據(jù),例 如起始位置(例如,起始盤地址)、長(zhǎng)度、流(或潛在流)中的請(qǐng)求數(shù)量的計(jì)數(shù)和/或指示流 (或潛在流)中的最近請(qǐng)求的到達(dá)的時(shí)間戳。例如,在流結(jié)束之后,可以用元數(shù)據(jù)表示流的 最終長(zhǎng)度。參考圖10,本發(fā)明的一些實(shí)施例可包括識(shí)別流(例如,方框101)。例如,此識(shí)別包 括順序訪問,但不只限于順序訪問。例如,如果信息足夠接近順序性,則訪問也可檢測(cè)為流。 讀訪問和寫訪問都可識(shí)別為流。有利地,通過不將流識(shí)別局限于順序訪問,本發(fā)明的一些實(shí) 施例可識(shí)別兩種額外情形a)當(dāng)沒有順序訪問流時(shí);以及b)當(dāng)由于例如分段或壓縮(但不限于這些實(shí)例)而導(dǎo)致流沒有按順序排列在大容 量存儲(chǔ)裝置(例如,旋轉(zhuǎn)介質(zhì))上時(shí)。本發(fā)明的一些實(shí)施例還可包括將流的所有剩余訪問直接指向大容量存儲(chǔ)裝置 (例如,硬盤驅(qū)動(dòng)器)而不是插入到高速緩存中(例如,方框102);將任何緩存的流內(nèi)容標(biāo) 記為“較早逐出”候選者(例如,方框103);預(yù)取流并在系統(tǒng)存儲(chǔ)器(例如,DRAM)中緩沖 流(例如,方框104);以及當(dāng)由于例如再使用或基于時(shí)間老化而導(dǎo)致流不再有效時(shí),結(jié)束流 (例如,方框105)。本發(fā)明的一些實(shí)施例還可包括跨越系統(tǒng)功率狀態(tài)保存流信息(例如,方框106)。 例如,可在大的時(shí)間周期(例如但不限于按分、小時(shí)或天計(jì)的特定時(shí)間長(zhǎng)度)內(nèi)保留在當(dāng)前 引導(dǎo)上下文中檢測(cè)到的流信息以用作隨后引導(dǎo)中的預(yù)引導(dǎo)流信息。有利地,存儲(chǔ)預(yù)引導(dǎo)流 信息可有助于在訪問流本身的第一元素時(shí)檢測(cè)流,從而更早地識(shí)別流(例如,在第二訪問 請(qǐng)求之前),并能更好地利用高速緩存(例如,通過避免緩存來自第一訪問請(qǐng)求的信息)。例 如,預(yù)引導(dǎo)流信息可存儲(chǔ)在永久性存儲(chǔ)裝置中,例如存儲(chǔ)在硬盤、非易失性存儲(chǔ)器或電池供 電的存儲(chǔ)器中。
10
例如,系統(tǒng)功率狀態(tài)可包括功率減小狀態(tài)和關(guān)機(jī)功率狀態(tài)。一些基于處理器的系 統(tǒng)利用各種功率狀態(tài),包括例如就緒狀態(tài)、待機(jī)狀態(tài)、掛起狀態(tài)、休眠狀態(tài)和關(guān)閉狀態(tài)。例 如,硬引導(dǎo)可對(duì)應(yīng)于從關(guān)閉狀態(tài)重啟系統(tǒng)。本發(fā)明的一些實(shí)施例可包括保存流訪問頻率信息(例如,方框107);以及利用 流頻率信息來確定是直接執(zhí)行對(duì)盤的流訪問還是將流訪問保存在高速緩存中(例如,方框 108)。盡管與當(dāng)前利用高速緩存的做法相反,但根據(jù)本發(fā)明的一些實(shí)施例,如果相對(duì)頻繁地 訪問流,則將相對(duì)較大的流存儲(chǔ)在高速緩存中可能是有利的。例如,如果高速緩存提供比大 容量存儲(chǔ)裝置相對(duì)更好的性能,則用戶體驗(yàn)可通過緩存頻繁訪問的流而增強(qiáng)。根據(jù)本發(fā)明的一些實(shí)施例,可根據(jù)以下偽代碼來利用高速緩存
輸入
Access (訪問),由系統(tǒng)做出請(qǐng)求。
關(guān)鍵:變量
N,流檢測(cè)時(shí)隙數(shù)。
IsAStream,在過濾開始之前的流式數(shù)據(jù)的扇區(qū)數(shù)。
M,已知流時(shí)隙數(shù)。
Il處理預(yù)先檢測(cè)的情形,其中保留有預(yù)引導(dǎo)流信息
LOOPM
IFKnownStream[M]. StartLBA = Access. StartLBA
&&KnownStream[Μ]. RequestSizeThreshold = AVERAGE (Access. RequestSize)
&&KnownStream[Μ]. Operation = Access. Operation THEN
KnownStream[M]. Frequency++
IF KnownStream[M]. Frequency > !FREQUENCY—THRESHOLD
&& KnownStream[M]· Length < CACHED—STREAM—THRESHOLD THEN
Pre-fetch(M)OR Send to Disk
Save stream in Cache
EXIT
ENDIF
ENDIF
END LOOP
//運(yùn)行中檢測(cè)流
LOOPN
IF Stream[N]. ExpectedStartLBA = Access. StartLBA
&& Stream[N]. ExpectedRequestSize = AVERAGE (Access. RequestSize)
&& Stream[N]. ExpectedOperation = Access. Operation
&& Stream[N]. Valid
&& Stream[N]. NotEmpty THEN
Stream[N]. ExpectedStartLBA+ = Stream[N]. ExpectedRequestSize
Stream[N]. Length+ = ExpectedRequestSize
PlacedInStream = TRUE
IF Stream[N], Length > IsAStream THENGOTO Pre-Fetch(N)OR Send To DiskMove Stream[N]to Stream[M]ENDIFELSE IF Stream[N]. NotEmpty THENStream[N]. Expire++IF Stream[N], Expire > HighestExpire. Value THENHighestExpire. Value = Stream[N]. ExpireHighestExpired. Index = NENDIFENDIFEND LOOPH將新訪問添加到可用流時(shí)隙并令N檢測(cè)新流IF PlacedInStream = FALSE THENIF Stream[ANY N]IS OPEN THENStream[ANY N], Valid = TRUEStream[ANY N]. ExpectedLBA = Access. StartLBA+Access. RequestSizeStream[ANY N]. ExpectedRequestSize = Access. RequestSizeStream[ANY N]. ExpectedOperation = Access. OperationELSEPlace In Stream[HighestExpired. Index]ENDIFENDIF有利地,跨越系統(tǒng)功率狀態(tài)存儲(chǔ)流信息和/或保存流頻率信息可改善決定何時(shí)以
及是否將信息存儲(chǔ)在高速緩存中的時(shí)機(jī)和質(zhì)量。在一些實(shí)施例中,關(guān)于利用高速緩存存儲(chǔ) 器做出更好的決定可使小的高速緩存更有效,從而減少系統(tǒng)大小和/或成本。在一些實(shí)施 例中,另一個(gè)優(yōu)點(diǎn)是,可移除不太可能對(duì)高速緩存有益的訪問,從而通過移除隊(duì)列業(yè)務(wù)改善 高速緩存的響應(yīng)性,同時(shí)保留來自大容量存儲(chǔ)裝置的良好的介質(zhì)性能。在一些實(shí)施例中,緩 存頻繁使用的某些大小的流可提供更好的用戶體驗(yàn)。本領(lǐng)域技術(shù)人員將明白,給定本描述的益處,各種各樣的其它電路以及硬件和/ 或軟件的組合可配置成根據(jù)本文描述的實(shí)施例和本發(fā)明的其它實(shí)施例實(shí)現(xiàn)各種方法、電路 和系統(tǒng)。圖1-10的實(shí)例是合適實(shí)施例的非限制性實(shí)例。本發(fā)明的前述和其它方面可個(gè)別以及組合地實(shí)現(xiàn)。除非特定權(quán)利要求明確需要, 否則不應(yīng)將本發(fā)明理解為需要兩個(gè)或兩個(gè)以上這樣的方面。此外,盡管結(jié)合目前被認(rèn)為是 優(yōu)選實(shí)例的內(nèi)容描述了本發(fā)明,但應(yīng)了解,本發(fā)明不限于所公開的實(shí)例,而是相反,本發(fā)明 意在涵蓋包含在本發(fā)明的精神和范圍內(nèi)的各種修正和等效布置。
權(quán)利要求
一種在電子系統(tǒng)中利用高速緩存的方法,包括在大容量存儲(chǔ)裝置與系統(tǒng)存儲(chǔ)器之間設(shè)置高速緩存;接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求,所述第一請(qǐng)求用于請(qǐng)求第一信息;檢索在先前的引導(dǎo)上下文期間存儲(chǔ)的預(yù)引導(dǎo)流信息,所述先前的引導(dǎo)上下文不同于當(dāng)前的引導(dǎo)上下文;基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的比較確定所述第一信息是否是流式訪問的一部分;以及如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的所述第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的所述比較確定所述第一信息是所述流式訪問的一部分,則直接用所述大容量存儲(chǔ)裝置執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的所述第一請(qǐng)求。
2.如權(quán)利要求1所述的方法,還包括如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的所述第一元 數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的所述比較確定所述第一信息不是所述流式訪問的一部分,則緩 存所述第一信息。
3.如權(quán)利要求2所述的方法,還包括接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第二請(qǐng)求,所述第二請(qǐng)求用于請(qǐng)求第二信息; 如果先前確定所述第一信息不是所述流式訪問的一部分,則基于與所述第一請(qǐng)求相關(guān) 聯(lián)的所述第一元數(shù)據(jù)和與所述第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比較確定所述第二信息是 否是所述流式訪問的一部分;以及如果確定所述第二信息是所述流式訪問的一部分,則存儲(chǔ)對(duì)應(yīng)于所述流式訪問的流信 息,所述流信息跨越包括所述電子系統(tǒng)的硬引導(dǎo)在內(nèi)的所述電子系統(tǒng)的不同功率狀態(tài)保持 連續(xù),其中所述存儲(chǔ)的流信息可在以后用作隨后引導(dǎo)的預(yù)引導(dǎo)流信息。
4.一種在電子系統(tǒng)中利用高速緩存的方法,包括 在大容量存儲(chǔ)裝置與系統(tǒng)存儲(chǔ)器之間設(shè)置高速緩存;接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求,所述第一請(qǐng)求用于請(qǐng)求第一信息; 基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和與流式訪問相關(guān)聯(lián)的其它信息的比較確 定所述第一信息是否是所述流式訪問的一部分;如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的所述第一元數(shù)據(jù)和與所述流式訪問相關(guān)聯(lián)的所述 其它信息的所述比較確定所述第一信息是所述流式訪問的一部分,則將所述流式訪問的頻 率信息與頻率閾值進(jìn)行比較;如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息沒有 超過所述頻率閾值,則直接用所述大容量存儲(chǔ)裝置執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的所述第一 請(qǐng)求;以及如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息超過 所述頻率閾值,則緩存所述第一信息。
5.如權(quán)利要求4所述的方法,還包括 更新所述流式訪問的頻率信息。
6.如權(quán)利要求4所述的方法,還包括將所述流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾值進(jìn)行比較;以及 如果所述流式訪問的長(zhǎng)度信息超過所述長(zhǎng)度閾值,則防止緩存所述第一信息。
7.一種在基于處理器的系統(tǒng)中利用高速緩存的方法,包括 在大容量存儲(chǔ)裝置與系統(tǒng)存儲(chǔ)器之間設(shè)置高速緩存;接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求,所述第一請(qǐng)求用于請(qǐng)求第一信息; 檢索在先前的引導(dǎo)上下文期間存儲(chǔ)的預(yù)引導(dǎo)流信息,所述先前的引導(dǎo)上下文不同于當(dāng) 前的引導(dǎo)上下文;基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的比較確定所述第一 信息是否是流式訪問的一部分;如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的所述第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的所述比較 確定所述第一信息不是所述流式訪問的一部分,則緩存所述第一信息;以及如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的所述第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的所述比較 確定所述第一信息是所述流式訪問的一部分,則將所述流式訪問的頻率信息與頻率閾值進(jìn)行比較;如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息沒有 超過所述頻率閾值,則直接用所述大容量存儲(chǔ)裝置執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的所述第一 請(qǐng)求;以及如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息超過 所述頻率閾值,則緩存所述第一信息。
8.如權(quán)利要求7所述的方法,還包括接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第二請(qǐng)求,所述第二請(qǐng)求用于請(qǐng)求第二信息; 如果先前確定所述第一信息不是所述流式訪問的一部分,則基于與所述第一請(qǐng)求相關(guān) 聯(lián)的第一元數(shù)據(jù)和與所述第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比較確定所述第二信息是否是 所述流式訪問的一部分;以及如果確定所述第二信息是所述流式訪問的一部分,則存儲(chǔ)對(duì)應(yīng)于所述流式訪問的流信 息,所述流信息跨越包括所述基于處理器的系統(tǒng)的硬引導(dǎo)在內(nèi)的不同功率狀態(tài)保持連續(xù), 其中所述流信息可在以后用作隨后引導(dǎo)的預(yù)引導(dǎo)流信息。
9.如權(quán)利要求7所述的方法,還包括 更新所述流式訪問的頻率信息。
10.如權(quán)利要求7所述的方法,還包括將所述流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾值進(jìn)行比較;以及 如果所述流式訪問的長(zhǎng)度信息超過所述長(zhǎng)度閾值,則防止緩存所述第一信息。
11.一種電子系統(tǒng),包括設(shè)置在大容量存儲(chǔ)設(shè)備與所述電子系統(tǒng)的系統(tǒng)存儲(chǔ)器之間的高速緩存;以及 存儲(chǔ)在所述電子系統(tǒng)上的代碼,用于基于對(duì)第一信息的第一請(qǐng)求的第一元數(shù)據(jù)與在所 述電子系統(tǒng)的先前引導(dǎo)上下文中存儲(chǔ)的預(yù)引導(dǎo)流信息的比較防止將流數(shù)據(jù)存儲(chǔ)在所述高 速緩存中,而是在所述系統(tǒng)存儲(chǔ)器與所述大容量存儲(chǔ)設(shè)備之間直接發(fā)送所述流數(shù)據(jù)。
12.如權(quán)利要求11所述的系統(tǒng),所述代碼還用于如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的所述比較確定 所述第一信息不是流式訪問的一部分,則緩存所述第一信息。
13.如權(quán)利要求12所述的系統(tǒng),所述代碼還用于接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第二請(qǐng)求,所述第二請(qǐng)求用于請(qǐng)求第二信息; 如果先前確定所述第一信息不是所述流式訪問的一部分,則基于與所述第一請(qǐng)求相關(guān) 聯(lián)的第一元數(shù)據(jù)和與所述第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比較確定所述第二信息是否是 所述流式訪問的一部分;以及如果確定所述第二信息是所述流式訪問的一部分,則存儲(chǔ)對(duì)應(yīng)于所述流式訪問的流信 息,所述流信息跨越包括所述電子系統(tǒng)的硬引導(dǎo)在內(nèi)的所述電子系統(tǒng)的不同功率狀態(tài)保持 連續(xù),其中所述存儲(chǔ)的流信息可在以后用作隨后引導(dǎo)的預(yù)引導(dǎo)流信息。
14.如權(quán)利要求11所述的系統(tǒng),所述代碼還用于基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)與所述預(yù)引導(dǎo)流信息的所述比較確定所述 第一信息是否是流式訪問的一部分;將所述流式訪問的頻率信息與頻率閾值進(jìn)行比較;如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息沒有 超過所述頻率閾值,則直接用所述大容量存儲(chǔ)設(shè)備執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的所述第一 請(qǐng)求;以及如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息超過 所述頻率閾值,則緩存所述第一信息。
15.如權(quán)利要求14所述的系統(tǒng),所述代碼還用于 更新所述流式訪問的頻率信息。
16.如權(quán)利要求14所述的系統(tǒng),所述代碼還用于將所述流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾值進(jìn)行比較;以及如果所述流式訪問的長(zhǎng)度信息超過所述長(zhǎng)度閾值,則防止將流數(shù)據(jù)存儲(chǔ)在所述高速緩 存中,而是在所述系統(tǒng)存儲(chǔ)器與所述大容量存儲(chǔ)設(shè)備之間直接發(fā)送所述流數(shù)據(jù)。
17.一種基于處理器的系統(tǒng),包括 處理器;耦合到所述處理器的系統(tǒng)存儲(chǔ)器; 大容量存儲(chǔ)裝置;設(shè)置在所述系統(tǒng)存儲(chǔ)器與所述大容量存儲(chǔ)裝置之間的非易失性高速緩存存儲(chǔ)器;以及 存儲(chǔ)在所述基于處理器的系統(tǒng)上的代碼,用于使所述基于處理器的系統(tǒng) 接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第一請(qǐng)求,所述第一請(qǐng)求用于請(qǐng)求第一信息; 檢索在所述基于處理器的系統(tǒng)的先前的引導(dǎo)上下文期間存儲(chǔ)的預(yù)引導(dǎo)流信息,所述先 前的引導(dǎo)上下文不同于當(dāng)前的引導(dǎo)上下文;基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的比較確定所述第一 信息是否是流式訪問的一部分;如果基于與所述第一請(qǐng)求相關(guān)聯(lián)的第一元數(shù)據(jù)和所述預(yù)引導(dǎo)流信息的所述比較確定 所述第一信息不是所述流式訪問的一部分,則緩存所述第一信息;以及 如果確定所述第一信息是所述流式訪問的一部分,則 將所述流式訪問的頻率信息與頻率閾值進(jìn)行比較;如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息沒有 超過所述頻率閾值,則直接用所述大容量存儲(chǔ)裝置執(zhí)行對(duì)大容量存儲(chǔ)設(shè)備訪問的所述第一請(qǐng)求;以及如果確定所述第一信息是所述流式訪問的一部分并且所述流式訪問的頻率信息超過 所述頻率閾值,則緩存所述第一信息。
18.如權(quán)利要求17所述的基于處理器的系統(tǒng),所述代碼還用于使所述基于處理器的系統(tǒng)接收對(duì)大容量存儲(chǔ)設(shè)備訪問的第二請(qǐng)求,所述第二請(qǐng)求用于請(qǐng)求第二信息; 如果先前確定所述第一信息不是所述流式訪問的一部分,則基于與所述第一請(qǐng)求相關(guān) 聯(lián)的所述第一元數(shù)據(jù)和與所述第二請(qǐng)求相關(guān)聯(lián)的第二元數(shù)據(jù)的比較確定所述第二信息是 否是所述流式訪問的一部分;以及如果確定所述第二信息是所述流式訪問的一部分,則存儲(chǔ)對(duì)應(yīng)于所述流式訪問的流信 息,所述流信息跨越包括所述基于處理器的系統(tǒng)的硬引導(dǎo)在內(nèi)的不同功率狀態(tài)保持連續(xù), 其中所述流信息可在以后用作隨后引導(dǎo)的預(yù)引導(dǎo)流信息。
19.如權(quán)利要求17所述的基于處理器的系統(tǒng),所述代碼還用于 更新所述流式訪問的頻率信息。
20.如權(quán)利要求18所述的基于處理器的系統(tǒng),所述代碼還用于 將所述流式訪問的長(zhǎng)度信息與流長(zhǎng)度閾值進(jìn)行比較;以及如果所述流式訪問的長(zhǎng)度信息超過所述長(zhǎng)度閾值,則防止將流數(shù)據(jù)存儲(chǔ)在所述高速緩 存中,而是在所述系統(tǒng)存儲(chǔ)器與所述大容量存儲(chǔ)裝置之間直接發(fā)送所述流數(shù)據(jù)。
全文摘要
在一些實(shí)施例中,一種電子系統(tǒng)可包括設(shè)置在大容量存儲(chǔ)設(shè)備與系統(tǒng)存儲(chǔ)器之間的高速緩存;以及存儲(chǔ)在電子系統(tǒng)上的代碼,用于基于對(duì)第一信息的第一請(qǐng)求的第一元數(shù)據(jù)與在先前引導(dǎo)上下文中存儲(chǔ)的預(yù)引導(dǎo)流信息的比較防止將流數(shù)據(jù)存儲(chǔ)在高速緩存中,而是在系統(tǒng)存儲(chǔ)器與大容量存儲(chǔ)設(shè)備之間直接發(fā)送流數(shù)據(jù)。還公開其它實(shí)施例并要求其它實(shí)施例的權(quán)利。
文檔編號(hào)G06F12/08GK101981551SQ200980112390
公開日2011年2月23日 申請(qǐng)日期2009年6月9日 優(yōu)先權(quán)日2008年6月25日
發(fā)明者D·朱內(nèi)曼, G·欣頓, J·豪斯, J·馬修斯, O·平托, R·S·特特里克, S·威爾斯 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
山西省| 怀集县| 顺义区| 茂名市| 白朗县| 长顺县| 乌拉特中旗| 通榆县| 曲周县| 肥西县| 蒙阴县| 永丰县| 嘉兴市| 保靖县| 古田县| 于田县| 甘泉县| 沙河市| 临泉县| 长沙市| 洛宁县| 蓬安县| 长武县| 沁源县| 秀山| 无极县| 海兴县| 手机| 潮安县| 景洪市| 玉溪市| 玉田县| 文登市| 林甸县| 普安县| 大安市| 永平县| 贡嘎县| 天峨县| 晴隆县| 青州市|