日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

使用固態(tài)盤的緩存系統(tǒng)和方法

文檔序號:6596973閱讀:260來源:國知局
專利名稱:使用固態(tài)盤的緩存系統(tǒng)和方法
技術領域
本公開涉及緩存系統(tǒng),以及更特別地涉及使用閃存的緩存系統(tǒng)。
背景技術
此處提供的背景描述的目的在于一般地提出本公開的環(huán)境。目前命名發(fā)明人的工
作,在此背景部分描述的工作的程度上,以及所描述的方面可能不像提交時的現(xiàn)有技術一
樣獲得承認,當現(xiàn)有技術與本公開對立時,本公開不明確也不暗示承認。 現(xiàn)在參考圖1,主機系統(tǒng)102可通過緩存系統(tǒng)106與存儲設備104通信。主機系統(tǒng)
102可包括計算機系統(tǒng),比如個人計算機、消費類電子設備等。存儲設備104可包括硬盤驅(qū)
動器(HDD)。 緩存系統(tǒng)106可作為存儲主機系統(tǒng)102從存儲設備104頻繁存取的數(shù)據(jù)的臨時存 儲區(qū)域。主機系統(tǒng)102可比從存儲設備104更快地從緩存系統(tǒng)106存取數(shù)據(jù)。因此,當主 機系統(tǒng)102重復存取存儲在緩存系統(tǒng)106中的數(shù)據(jù)時,緩存系統(tǒng)106可減少存取時間。然 而,當主機系統(tǒng)102要求的數(shù)據(jù)沒有存儲在緩存系統(tǒng)106中時,緩存系統(tǒng)106可不減少存取 時間。 緩存系統(tǒng)106包括控制模塊108和緩存存儲器110??刂颇K108從/向緩存存 儲器110和存儲設備104讀/寫數(shù)據(jù)。主機系統(tǒng)102通過控制模塊108向存儲設備104請 求數(shù)據(jù)??刂颇K108從緩存存儲器110和存儲設備104之一檢索所請求的數(shù)據(jù)并將所請 求的數(shù)據(jù)發(fā)送給主機系統(tǒng)102。 控制模塊108確定所請求的數(shù)據(jù)是否存儲在緩存存儲器110中。當控制模塊108 確定緩存存儲器110包括所請求的數(shù)據(jù)時,控制模塊108可從緩存存儲器110檢索所請求 的數(shù)據(jù)。 當緩存存儲器110沒有包括所請求的數(shù)據(jù)時,控制模塊108可從存儲設備104檢 索所請求的數(shù)據(jù)。當緩存存儲器110沒有包括所請求的數(shù)據(jù)時,控制模塊108可將從存儲 設備104檢索到的數(shù)據(jù)存儲在緩存存儲器110中。 控制模塊108可比從存儲設備104更快地從緩存存儲器110中檢索所請求的數(shù) 據(jù)。例如,當緩存存儲器110是動態(tài)隨機存取存儲器(DRAM)并且存儲設備104是HDD時, 控制模塊108可比HDD更快地訪問DRAM。因此,對主機系統(tǒng)102,緩存系統(tǒng)106可起到減小 數(shù)據(jù)檢索時間的作用。 主機系統(tǒng)102可命令寫入緩存存儲器110和存儲設備104中的至少一個??刂颇?塊108可響應寫命令而將數(shù)據(jù)寫入緩存存儲器110,隨后將數(shù)據(jù)寫入存儲設備104。因此, 當主機系統(tǒng)102命令寫入存儲設備104時,緩存系統(tǒng)106可作為緩沖器??刂颇K108也可以響應于寫命令并行地將數(shù)據(jù)都寫入存儲設備104和緩存存儲器110。因此,緩存系統(tǒng) 106可將寫入存儲設備104的數(shù)據(jù)緩存到緩存存儲器110中。

發(fā)明內(nèi)容
系統(tǒng)包括控制模塊、位置描述模塊和頁面失效模塊。所述控制模塊配置成將從主
機系統(tǒng)接收到的數(shù)據(jù)寫入存儲介質(zhì),從所述存儲介質(zhì)讀取數(shù)據(jù),以及將來自所述主機系統(tǒng)
和所述存儲介質(zhì)中的至少一個的數(shù)據(jù)緩存到閃存中。所述位置描述模塊配置成將有效狀態(tài)
和無效狀態(tài)之一映射到所述閃存中的數(shù)據(jù)子集的物理位置。所述頁面失效模塊配置成接收
命令,所述命令包括對應于所述子集的地址和將所述子集的物理位置的狀態(tài)設置為無效狀
態(tài)的指令。所述頁面失效模塊還配置成響應于所述命令而將所述子集的物理位置的狀態(tài)設
置為所述無效狀態(tài)。所述命令接收自所述主機系統(tǒng)和所述控制模塊之一。 在其他特征中,所述存儲介質(zhì)包括磁性存儲介質(zhì)和光存儲介質(zhì)之一 。 在其他特征中,所述閃存包括NAND閃存。 在其他特征中,所述系統(tǒng)還包括位置映射模塊,所述位置映射模塊配置成將所述
子集的物理位置映射到邏輯地址。所述邏輯地址對應于所述存儲介質(zhì)上的物理位置。 在其他特征中,所述位置映射模塊包括使所述子集的物理位置與所述邏輯地址相
關的映射。當所述頁面失效模塊將所述子集的物理位置的狀態(tài)設置為所述無效狀態(tài)時,所
述位置映射模塊更新所述映射以指示沒有數(shù)據(jù)存儲在所述邏輯地址處。 在其他特征中,所述系統(tǒng)還包括碎片整理模塊,所述碎片整理模塊配置成對包括
所述子集的所述閃存的塊進行碎片整理。所述頁面失效模塊響應于所述命令而將所述子集
的物理位置的所述狀態(tài)設置為所述無效狀態(tài)。 在又一些其他特征中,一種方法包括將從主機系統(tǒng)接收到的數(shù)據(jù)寫入存儲介質(zhì), 從所述存儲介質(zhì)讀取數(shù)據(jù),以及將來自所述主機系統(tǒng)和所述存儲介質(zhì)中的至少一個的數(shù)據(jù) 緩存到閃存中。所述方法還包括將有效狀態(tài)和無效狀態(tài)之一映射到所述閃存中的數(shù)據(jù)的 子集的物理位置。所述方法還包括接收命令,所述命令包括對應于所述子集的地址和將所 述子集的物理位置的狀態(tài)設置為所述無效狀態(tài)的指令。此外,所述方法包括響應于所述命 令而將所述子集的物理位置的所述狀態(tài)設置為所述無效狀態(tài)。所述命令接收自所述主機系 統(tǒng)和控制模塊之一。 在其他特征中,所述方法包括從磁性存儲介質(zhì)和光存儲介質(zhì)之一讀取數(shù)據(jù)。
在其他特征中,所述方法包括將數(shù)據(jù)從所述主機系統(tǒng)和所述存儲介質(zhì)中的至少 一個緩存到NAND閃存中。 在其他特征中,所述方法包括將所述子集的物理位置映射到對應于所述存儲介 質(zhì)上的物理位置的邏輯地址。 在其他特征中,所述方法包括當將所述子集的物理位置的所述狀態(tài)設置為所述 無效狀態(tài)時,更新映射以指示沒有數(shù)據(jù)存儲在所述邏輯地址處。
在其他特征中,所述方法包括對包括所述子集的所述閃存的塊進行碎片整理,以
及響應于所述命令而將所述子集的物理位置的所述狀態(tài)設置為所述無效狀態(tài)。 在又一些其他特征中,上述系統(tǒng)和方法由一個或多個處理器執(zhí)行的計算機程序?qū)?br> 現(xiàn)。所述計算機程序可存在于計算機可讀介質(zhì)上,比如但不限于存儲器、非易失性數(shù)據(jù)存儲器和/或其它合適的有形存儲介質(zhì)。 根據(jù)詳細描述、權利要求以及附圖,本公開的適用性的更多方面將變得明顯。詳細 描述和特定例子僅是用于說明的目的,而不是用來限制本公開的范圍。


從詳細描述以及附圖,本公開將被更全面地理解,其中
圖1是緩存系統(tǒng)的功能框圖;
圖2是閃存系統(tǒng)的功能框圖; 圖3是包括閃存(flash)管理模塊的閃存系統(tǒng)的功能框圖;
圖4是閃存的塊和頁面布置的圖示; 圖5A是閃存的邏輯塊地址(LBA)到物理位置映射的圖示; 圖5B是閃存的物理位置描述表的圖示; 圖6是根據(jù)本公開的閃存緩存系統(tǒng)的功能框圖; 圖7是根據(jù)本公開的包括頁面失效模塊的閃存緩存系統(tǒng)的功能框圖;
圖8是緩存地址表的圖;以及 圖9示出了根據(jù)本公開的用于使閃存的物理位置失效的方法。
具體實施例方式
下面的詳述在性質(zhì)上僅是示范性的,且絕不是為了限制本公開、其應用或用途。為 了清楚,圖中將使用相同的標號來標識相同的元件。如此處所使用的,詞組"A、 B和C中的 至少一個"將被使用非排他性的邏輯或(OR)而被解釋為表述邏輯(A或B或C)。應當理解, 方法中的步驟可以以不同順序執(zhí)行而不改變本公開的原理。 如此處所使用的,術語模塊可以指,部分的或者包括專用集成電路(ASIC)、電子電 路、處理器(共享的、專用的或組)和/或存儲器(共享的、專用的或組),來執(zhí)行一個或多 個軟件或固件程序、組合邏輯電路和/或其他提供所描述功能的合適的組件。
現(xiàn)在參考圖2,主機系統(tǒng)102可通過接口 101與閃存系統(tǒng)202通信。主機系統(tǒng)102 可包括計算機、多媒體設備、移動計算設備等。例如,接口 101可包括高級技術附接(ATA) 接口、串行ATA(SATA)接口等。 閃存系統(tǒng)202包括閃存管理模塊206、存儲器208和閃存210。主機系統(tǒng)102通過 閃存管理模塊206從/向閃存210讀/寫數(shù)據(jù)。主機系統(tǒng)102可使用邏輯塊尋址(LBA)方 案與閃存管理模塊206通信。LBA方案中指定的地址可被稱為"邏輯地址"。此外,主機系 統(tǒng)102可在邏輯地址上、從閃存210請求數(shù)據(jù)。例如,邏輯地址可記為LBA 1、 LBA 2等。
閃存210可包括多個閃存芯片211。閃存210可包括與非(NAND)閃存和或非(NOR) 閃存中的至少一種。閃存管理模塊206從/向閃存210讀/寫數(shù)據(jù)。此外,閃存管理模塊 206在閃存210上執(zhí)行其他操作。其他操作可包括擦除閃存210的某些部分和對閃存210 進行碎片整理(defragment)。 當擦除閃存210和當整理閃存210的碎片時,閃存管理模塊206可將數(shù)據(jù)從閃存 210存儲到存儲器208中。閃存管理模塊206可將數(shù)據(jù)緩沖在存儲器208中。例如,閃存管 理模塊206可在存儲器208中緩沖要被寫入閃存210中的數(shù)據(jù)。閃存管理模塊206也可在存儲器208中緩沖從閃存210讀取的數(shù)據(jù),該數(shù)據(jù)隨后被轉(zhuǎn)移到主機系統(tǒng)102中。
現(xiàn)在參考圖3,閃存管理模塊206包括閃存控制模塊302、讀/寫(R/W)模塊304、 擦除模塊306、位置映射模塊308、位置描述模塊310和碎片整理模塊312。
閃存控制模塊302向/從主機系統(tǒng)102發(fā)送/接收數(shù)據(jù)。閃存控制模塊302指示 讀/寫(R/W)模塊304從/向閃存210讀/寫數(shù)據(jù)。閃存控制模塊302指示擦除模塊306 從閃存210擦除數(shù)據(jù)。閃存控制模塊302指示位置映射模塊308將邏輯地址映射到閃存 210中的數(shù)據(jù)的物理位置。閃存控制模塊302指示位置描述模塊310映射閃存210中的數(shù) 據(jù)的有效性。閃存控制模塊302通過碎片整理模塊312執(zhí)行閃存210上的碎片整理操作。
現(xiàn)在參考圖4,示出了閃存210的塊和頁面布置的示范性圖示。閃存210包括n個 擦除塊(下文簡稱"塊")。每個塊包括m個頁面。僅舉例,塊的大小可以為256KB到512KB 以及頁面大小可以為4KB。因此,塊可包括64-128個頁面。 擦除模塊306以塊為單位從閃存210中擦除數(shù)據(jù)。例如,當從閃存210中擦除數(shù) 據(jù)時,擦除模塊306擦除一個或多個塊。 讀/寫模塊304以頁面為單位從/向閃存210讀/寫數(shù)據(jù)。因此,當從/向閃存 210讀/寫數(shù)據(jù)時,讀/寫模塊304從/向一個或多個頁面讀/寫數(shù)據(jù)。讀/寫模塊304可 在頁面擦除后向該頁面寫數(shù)據(jù)。當頁面包括先前寫入的數(shù)據(jù)時,直到擦除模塊306擦除頁 面后,讀/寫模塊304才能向該頁面寫數(shù)據(jù)。 在擦除模塊306擦除塊后,讀/寫模塊304可最初順序地向塊中的頁面寫入。例 如,在塊1被擦除后,讀/寫模塊304可自塊1的頁面1開始向閃存210寫數(shù)據(jù),并且向每 個連續(xù)頁面寫數(shù)據(jù),直到塊1的頁面m。 讀/寫模塊304可不向塊中包括數(shù)據(jù)的頁面之前的塊中頁面寫數(shù)據(jù)。例如,當塊 的頁面20中已寫入數(shù)據(jù)時,讀/寫模塊304可不向塊內(nèi)的頁面1-19寫入。然而,讀/寫模 塊304可在擦除模塊306擦除包括頁面1-19的塊之后,寫入頁面1-19。
回到參考圖3,位置映射模塊308包括LBA到物理位置映射(下文簡稱"位置映 射")。位置映射可將邏輯地址與閃存210中的物理位置相關聯(lián)。例如,位置映射將邏輯地 址與閃存210的塊編號和頁面編號相關聯(lián)。 當讀/寫模塊304向閃存210寫數(shù)據(jù)時,位置映射模塊308更新位置映射。閃存 控制模塊302可接收向先前已被寫入的邏輯地址寫數(shù)據(jù)的命令。也就是說,閃存控制模塊 302可接收向同一邏輯地址寫入的多個命令。由于在沒有首先擦除已寫入數(shù)據(jù)時,讀/寫 模塊304不能覆寫已被寫入的物理位置處的數(shù)據(jù),讀/寫模塊304向新的物理位置寫數(shù)據(jù)。 位置映射模塊308更新位置映射以包括對應邏輯地址的新的物理位置。
為更明確地描述向閃存210寫數(shù)據(jù)的過程,向邏輯地址K寫新數(shù)據(jù)可執(zhí)行如下。閃 存控制模塊302接收主機系統(tǒng)102的向LBA K寫數(shù)據(jù)的命令。閃存控制模塊302指示讀/ 寫模塊304向閃存210中的物理位置X寫數(shù)據(jù)。例如,X可以是閃存控制器210中的下一 個可用的物理位置。之后讀/寫模塊304寫入物理位置X。之后位置映射模塊308更新位 置映射以使LBA K與物理位置X相關聯(lián)。因此,當閃存控制模塊302從主機系統(tǒng)102接收 從LBA K讀取的要求時,閃存控制模塊302通過讀/寫模塊304從閃存210的物理位置X 處讀取。 現(xiàn)在參考圖5A,示出了位置映射的一個實施方式。位置映射將LBA1與(塊3,頁
7面20)的物理位置相關聯(lián)。位置映射將LBA 2與"無數(shù)據(jù)"相關聯(lián)。例如,"無數(shù)據(jù)"可指示 主機系統(tǒng)102尚未向LBA 2寫數(shù)據(jù)和/或LBA 2不包括數(shù)據(jù)。 回到參考圖3,位置描述模塊310包括物理位置描述表(下文簡稱"描述表")。描 述表指示了物理位置處的數(shù)據(jù)的狀態(tài)。數(shù)據(jù)的狀態(tài)可以是有效狀態(tài)和無效狀態(tài)之一。也就 是說,描述表指示了寫在閃存210的物理位置處的數(shù)據(jù)是有效還是無效。可以以頁面為單 位指示數(shù)據(jù)有效/無效。 最初寫入對應一邏輯地址的(即,擦除之后的)頁面的數(shù)據(jù)可以在描述表中被指 示為有效。當新的數(shù)據(jù)寫入對應同一個邏輯地址的新的物理位置時,位置描述模塊310更 新該描述表,以指示新的物理位置有效以及舊的物理位置無效。 在對同一個邏輯地址的連續(xù)寫入之后更新描述表可執(zhí)行如下。讀/寫模塊304對 應邏輯地址向物理位置寫數(shù)據(jù)。該物理位置處的數(shù)據(jù)在描述表中可最初被設置為有效。隨 后,當讀/寫模塊304對應同一個邏輯地址在新的物理位置處寫新的數(shù)據(jù)時,新的物理位置 處的數(shù)據(jù)在描述表中被設置為有效。之后,先前物理位置處的數(shù)據(jù)被設置為無效。
現(xiàn)在參考圖5B,示出了描述表的一個實施方式。描述表指示物理位置(塊l,頁面 1)處的數(shù)據(jù)無效。也就是說,描述表將無效狀態(tài)映射到物理位置(塊l,頁面l)。描述表指 示物理位置(塊3,頁面20)處的數(shù)據(jù)有效。也就是說,描述表將有效狀態(tài)映射到物理位置 (塊3,頁面20)處。 回到參考圖3,由于讀/寫模塊304不能覆寫先前已寫的頁面,讀/寫模塊304可 能用完物理位置而無法在閃存210中寫數(shù)據(jù)。閃存管理模塊206整理閃存210的碎片以釋 放閃存210中的物理位置以進行寫入。閃存管理模塊206可基于閃存210的塊內(nèi)的無效頁 面的編號釋放物理位置。 閃存管理模塊206整理閃存210的碎片以釋放至少一個塊。碎片整理模塊312可 基于每個塊內(nèi)的一定數(shù)量的無效頁面選擇進行碎片整理的塊組。因此,碎片整理模塊312 可選擇共同包括大于或等于一個塊的一定數(shù)量的無效頁面(比如m個頁面)的塊組。例如, 當塊包括m個頁面時,碎片整理模塊312選擇共同包括m個或更多個無效頁面的塊組。
閃存210的碎片整理可包括如下操作。碎片整理模塊312基于每個塊中的一定數(shù) 量的無效頁面選擇塊組進行碎片整理。例如,碎片整理模塊312選擇具有最多無效頁面的 塊以形成塊組。閃存控制模塊302通過讀/寫模塊304從閃存210中所選擇的塊組讀取有 效頁面。閃存控制模塊302從塊組向存儲器208寫有效頁面。在讀/寫模塊304向存儲器 208寫有效頁面后,擦除模塊306擦除該塊組。 讀/寫模塊304將有效頁面寫入閃存210中的已擦除的塊組。例如,讀/寫模塊 304可順序地將有效頁面寫入閃存210。由于塊組中的無效頁面的數(shù)目大于m,閃存210在 碎片整理操作后可包括一個或多個已完全擦除的塊。位置映射模塊308在碎片整理操作后 更新位置映射。位置描述模塊310在碎片整理操作后更新描述表。 用于執(zhí)行碎片整理操作的時間和資源可取決于閃存210中的無效頁而的數(shù)目。通 常,碎片整理過程涉及在閃存210和存儲器208之間轉(zhuǎn)移較多的有效頁面,這需要比轉(zhuǎn)移較 少有效頁面的時間和資源更多。因此,閃存210中的每個塊的更多的無效頁面可導致使用 更少時間和資源的更優(yōu)化的碎片整理操作。 也就是說,閃存210中的更多無效頁面可導致如下的碎片整理操作,其包括較少
8地搜索包括最多無效頁面,以及在閃存210和存儲器208之間的更少的數(shù)據(jù)轉(zhuǎn)移。在某些 情況下,單個的塊可包括所有無效頁面,允許擦除該塊而無任何數(shù)據(jù)轉(zhuǎn)移。在某些情況下, 例如,當有兩個塊每個塊包括m/2個無效頁面時,碎片整理操作可通過只對兩個塊進行碎 片整理釋放單個塊。 閃存210的碎片整理可以是影響作為緩存存儲器的閃存210的性能的存儲器密集 處理。也就是說,碎片整理使用資源對閃存210中的數(shù)據(jù)重新排序,而不提高主機系統(tǒng)102 接收所請求的數(shù)據(jù)的速度。 根據(jù)本公開的閃存緩存系統(tǒng)使閃存210的頁面失效,以減少用于執(zhí)行碎片整理操 作的時間和資源。閃存緩存系統(tǒng)可因此減小用于執(zhí)行碎片整理操作的時間和資源的總量。
現(xiàn)在參考圖6,在閃存緩存系統(tǒng)600中實現(xiàn)閃存系統(tǒng)202。閃存緩存系統(tǒng)600包括 硬盤驅(qū)動組件(HDA)601和硬盤驅(qū)動器控制系統(tǒng)602。 HDA 601包括磁介質(zhì)603,例如, 一個 或多個存儲數(shù)據(jù)的磁盤,以及讀/寫設備604。盡管閃存緩存系統(tǒng)600包括作為存儲設備的 HDA 601,但是,可用其它存儲設備代替HDA 601。例如,可用光存儲設備代替HDA 601。
布置在致動器臂605上的讀/寫設備604在磁介質(zhì)603上讀數(shù)據(jù)和寫數(shù)據(jù)。HDA601 包括使磁介質(zhì)603旋轉(zhuǎn)的主軸馬達606和驅(qū)動致動器臂605的音圈馬達(VCM)607。
硬盤驅(qū)動器控制系統(tǒng)602包括前置放大器608。前置放大器608在讀操作中放大 由讀/寫設備604產(chǎn)生的信號,并在寫操作中向讀/寫設備604提供信號。硬盤驅(qū)動器控 制系統(tǒng)602還包括讀/寫(R/W)通道模塊609、硬磁盤控制器(HDC)模塊610、緩沖器611、 閃存系統(tǒng)202和主軸/VCM驅(qū)動模塊614。 R/W通道模塊609處理從前置放大器608接收到的數(shù)據(jù)以及向前置放大器608傳 送的數(shù)據(jù)。HDC模塊610控制HDA 601的部件并通過接口 101與主機系統(tǒng)102通信。
HDC模塊610可從HDA 601、 R/W通道模塊609、緩沖器611、閃存系統(tǒng)202、主軸/ VCM驅(qū)動模塊614和/或接口 101接收數(shù)據(jù)。HDC模塊610可對數(shù)據(jù)進行處理,包括編碼、 解碼、濾波和/或格式化數(shù)據(jù)。處理后的數(shù)據(jù)可向HDA601 、 R/W通道模塊609 、緩沖器611 、 閃存系統(tǒng)202、主軸/VCM驅(qū)動模塊614和/或接口 101輸出。 HDC模塊610可使用緩沖器611和/或閃存系統(tǒng)202來存儲與閃存緩存系統(tǒng)600 的控制和操作有關的數(shù)據(jù)。緩沖器611可包括動態(tài)隨機存儲器(DRAM)、同步動態(tài)隨機存儲 器(SDRAM)等。主軸/VCM驅(qū)動模塊614控制主軸馬達606和VCM 607。硬盤驅(qū)動器控制系 統(tǒng)602包括供電電源616,其向閃存緩存系統(tǒng)600的組件供電。 HDC模塊610從/向閃存210和HDA 601讀/寫數(shù)據(jù)。主機系統(tǒng)102可通過HDC 模塊610向HDA 601請求數(shù)據(jù)。例如,主機系統(tǒng)102可使用邏輯塊尋址方案向HDA 601請 求數(shù)據(jù)。HDC模塊610可從閃存210和HDA601之一接收所請求的數(shù)據(jù),并向主機系統(tǒng)102 發(fā)送所請求的數(shù)據(jù)。 由于閃存緩存系統(tǒng)600在閃存210中緩存數(shù)據(jù),因此閃存緩存系統(tǒng)600的閃存210 可被稱為緩存存儲器。例如,閃存緩存系統(tǒng)600可在閃存210中緩存從HDA 601讀取的數(shù) 據(jù),或緩存寫入HDA 601的數(shù)據(jù)。 現(xiàn)在參考圖7,功能框圖示出HDC模塊610、閃存管理模塊206、主機系統(tǒng)102和HDA 601之間的交互。HDC模塊610包括緩存控制模塊702、內(nèi)容確定模塊704和頁面失效模塊 706。緩存控制模塊702根據(jù)緩存操作控制主機系統(tǒng)102、閃存210和HDA 601之間的數(shù)據(jù)傳輸。緩存控制模塊702通過閃存控制模塊302控制到/來自閃存210的數(shù)據(jù)傳輸。內(nèi)容 確定模塊704確定什么邏輯地址被存儲在閃存210中。頁面失效模塊706可例如根據(jù)緩存 操作在描述表中將閃存210的物理位置的狀態(tài)設置為無效的。 內(nèi)容確定模塊704確定閃存210是否包括主機系統(tǒng)102請求的在邏輯地址處的數(shù) 據(jù)。當閃存210包括請求的在邏輯地址處的數(shù)據(jù)時,緩存控制模塊702可從閃存210取回 所請求的數(shù)據(jù)。 在一些實現(xiàn)方式中,內(nèi)容確定模塊704包括緩存地址表,其包括存儲在閃存210中 的邏輯地址。緩存地址表使存儲在閃存210中的邏輯地址與閃存210的物理位置(例如, 塊偏移)相關。 在一些實現(xiàn)方式中,內(nèi)容確定模塊704可使用緩存地址表來確定閃存210中與邏 輯地址相對應的物理位置。在其它實現(xiàn)方式中,內(nèi)容確定模塊704可根據(jù)在圖5A和5B中 示出的位置映射和描述圖來確定邏輯地址是否存儲在閃存210中,且邏輯地址存儲在閃存 210中的什么地方。因此,緩存地址表可結(jié)合或代替位置映射和描述圖使用,以確定邏輯地 址存儲在閃存的什么地方。當新的信息被寫到閃存210和從閃存210擦除時,內(nèi)容確定模 塊704更新緩存地址表以反映存儲在閃存210中的數(shù)據(jù)。 現(xiàn)在參考圖8,示例性緩存地址表使邏輯地址與閃存210中的緩存的數(shù)據(jù)的位置 相關。緩存塊偏移列可指示閃存210中的數(shù)據(jù)的物理位置。例如,該表指示邏輯地址LBA 10位于緩存塊偏移32的物理位置處。 回來參考圖7,當閃存210不包括所請求的數(shù)據(jù)時,緩存控制模塊702從HDA 601 取回所請求的數(shù)據(jù)。當閃存不包括所請求的數(shù)據(jù)時,緩存控制模塊702可將從HDA 601取 回的數(shù)據(jù)存儲在閃存210中。當從HDA601取回的數(shù)據(jù)存儲在閃存210中時,位置映射模塊 308更新位置映射,位置描述模塊310更新描述表,而內(nèi)容確定模塊704更新緩存地址表。
換句話說,當緩存控制模塊702可將數(shù)據(jù)從HDA 601傳輸?shù)街鳈C系統(tǒng)102時,緩存 控制模塊702可將數(shù)據(jù)寫到閃存210。因此,當緩存控制模塊702接收對來自閃存210不包 括的邏輯地址的數(shù)據(jù)的請求時,緩存控制模塊702可將來自HDA 601的數(shù)據(jù)"緩存數(shù)據(jù)"在 閃存210中。在一些實現(xiàn)方式中,緩存控制模塊702除了緩存附近邏輯地址的數(shù)據(jù)以外,還 緩存來自閃存210不包括的邏輯地址的數(shù)據(jù)。 閃存緩存系統(tǒng)600可比HDA 601更快地從閃存210取回所請求的數(shù)據(jù)。例如,當 閃存210包括NAND閃存時,NAND閃存在隨機讀取期間可比HDA 601被更快地存取。因此, 當主機系統(tǒng)102從HDA 601請求數(shù)據(jù)時,閃存緩存系統(tǒng)600起作用來減少主機系統(tǒng)102的 數(shù)據(jù)取回時間。 主機系統(tǒng)102可命令到閃存210和HDA 601中的至少一個的寫入。緩存控制模塊 702在接收寫入命令時可將數(shù)據(jù)寫到HDA 601并將數(shù)據(jù)存儲在閃存210中。因此,閃存緩存 系統(tǒng)600緩存被寫到HDA 601的數(shù)據(jù)。緩存控制模塊702可將數(shù)據(jù)寫到閃存210并接著在 以后的時間將數(shù)據(jù)寫到HDA601。因此,當主機系統(tǒng)102命令到HDA 601的寫入時,閃存緩存 系統(tǒng)600可充當緩沖器。 緩存控制模塊702根據(jù)各種緩存操作將數(shù)據(jù)寫到閃存210。頁面失效模塊706根 據(jù)各種緩存操作在描述表中將閃存的物理位置的狀態(tài)設置為無效的。換句話說,頁面失效 模塊706根據(jù)緩存操作使閃存210的物理位置無效。頁面失效模塊706使描述表中的物理位置無效,以減少用于執(zhí)行碎片整理操作的時間和資源。 在一些實現(xiàn)方式中,頁面失效模塊706根據(jù)來自主機系統(tǒng)102的命令使描述表中 的物理位置無效。例如,主機系統(tǒng)102可通過緩存控制模塊702命令頁面失效模塊706使 描述表中的物理位置無效。該命令可包括與要無效的數(shù)據(jù)相對應的地址(例如,LBA)和使 數(shù)據(jù)無效的指令。頁面失效模塊706向應于該命令使數(shù)據(jù)無效。主機系統(tǒng)102可根據(jù)在主 機系統(tǒng)102執(zhí)行的緩存操作來命令頁面失效模塊706使描述表中的物理位置無效。
頁面失效模塊706以下列方式使相應于邏輯地址的物理位置無效。頁面失效模塊 706根據(jù)位置映射確定相應的邏輯地址的物理位置。頁面失效模塊706接著在描述表中將 物理位置的狀態(tài)設置為無效的。位置映射模塊308接著以"無數(shù)據(jù)"標記位置映射中的相 應的邏輯地址。 頁面失效模塊706使位置描述表中的頁無效,以便增加包括在閃存210中的無效 頁面的數(shù)量。因此,頁面失效模塊706通過增加閃存210中無效頁面的數(shù)量而減少了在碎 片整理操作期間使用的資源的量。 通常,緩存操作是包括確定哪些數(shù)據(jù)將存儲在閃存210中以及哪些數(shù)據(jù)將從閃存 210中擦除的操作。因為數(shù)據(jù)以塊的單位被擦除且數(shù)據(jù)可按頁面的單位被寫入,當緩存控制 模塊702根據(jù)緩存操作確定了頁面應從閃存210移除時,緩存控制模塊702可以不擦除頁 面。替代地,緩存控制模塊702命令頁面失效模塊706使頁面失效,以便失效的頁面可以后 在碎片整理操作期間被擦除。 下文描述了各種緩存操作。緩存控制模塊702可執(zhí)行先進先出(FIFO)緩存操作, 其中緩存控制模塊702用較新的數(shù)據(jù)代替閃存210中最舊的數(shù)據(jù)。例如,緩存控制模塊702 可命令頁面失效模塊706使閃存210中最舊的數(shù)據(jù)無效。緩存控制模塊702可接著擦除失 效的數(shù)據(jù)以在閃存210中為較新的數(shù)據(jù)騰出空間。 緩存控制模塊702可執(zhí)行最近最少使用的(LRU)緩存操作,其中緩存控制模塊702 丟棄最近最少使用的來自閃存210的數(shù)據(jù)。例如,緩存控制模塊702可命令頁面失效模塊 706使最近最少使用的來自閃存210的數(shù)據(jù)失效,所以最近最少使用的數(shù)據(jù)可被從閃存210 中擦除。 緩存控制模塊702可執(zhí)行最不經(jīng)常使用的(LFU)緩存操作,其中緩存控制模塊702 丟棄最不經(jīng)常使用的來自閃存210的數(shù)據(jù)。例如,緩存控制模塊702可命令頁面失效模塊 706使最不經(jīng)常使用的來自閃存210的數(shù)據(jù)失效,所以最不經(jīng)常使用的數(shù)據(jù)可被從閃存210 中擦除。 當HDC模塊610執(zhí)行緩存操作中之一以便使數(shù)據(jù)失效并將數(shù)據(jù)寫入閃存210中 時,位置映射模塊308、位置描述模塊310和內(nèi)容確定模塊704相應地更新相應的表。雖然 上面描述了 FIFO、 LRU和LFU緩存操作,但是緩存控制模塊702可執(zhí)行其它緩存操作,以確 定使哪些物理位置無效。 在一些情況下,閃存210可能耗盡了數(shù)據(jù)將被寫入的物理位置。當沒有要寫入的 更多可用頁面或可用頁面的數(shù)量小于閾值量時,緩存控制模塊702可確定閃存210是滿的。 緩存控制模塊702可接著指示頁面失效模塊706使閃存210的物理位置失效。
現(xiàn)在參考圖9,用于使閃存的物理位置失效的方法在900開始。在900, R/W模塊 304將數(shù)據(jù)寫到閃存210。在902,位置映射模塊308根據(jù)被寫到閃存210的數(shù)據(jù)來更新位置映射。在904,位置描述模塊310根據(jù)被寫到閃存210的數(shù)據(jù)來更新描述表。在906,緩存控制模塊702根據(jù)緩存操作確定是否使數(shù)據(jù)無效。如果在906的結(jié)果為假,則該方法重復906。如果在906的結(jié)果為真,則該方法在908繼續(xù)進行。在908,緩存控制模塊702命令頁面失效模塊706使數(shù)據(jù)無效。在910,頁面失效模塊706確定要無效的數(shù)據(jù)的物理位置(例如,根據(jù)位置映射)。在912,頁面失效模塊706在描述表中將數(shù)據(jù)的狀態(tài)設置為無效的,以使數(shù)據(jù)無效。在914,位置映射模塊308更新位置映射以指示物理位置包括"無數(shù)據(jù)"。 本公開的廣泛教導可按各種形式實現(xiàn)。因此,雖然本公開包括特定的例子,但本公開的真實范圍不應被如此限制,因為當研究附圖、說明書和下列權利要求時,其它更改將變得明顯。
權利要求
一種系統(tǒng),其包括控制模塊,其配置成將從主機系統(tǒng)接收到的數(shù)據(jù)寫入存儲介質(zhì),從所述存儲介質(zhì)讀取數(shù)據(jù),以及將數(shù)據(jù)從所述主機系統(tǒng)和所述存儲介質(zhì)中的至少一個緩存到閃存中;位置描述模塊,其配置成將有效狀態(tài)和無效狀態(tài)之一映射到所述閃存中的數(shù)據(jù)的子集的物理位置;以及頁面失效模塊,其配置成接收命令,所述命令包括對應于所述子集的地址和將所述子集的物理位置的狀態(tài)設置為所述無效狀態(tài)的指令;以及響應于所述命令來將所述子集的所述物理位置的所述狀態(tài)設置為所述無效狀態(tài),其中所述命令接收自所述主機系統(tǒng)和所述控制模塊之一。
2. 如權利要求1所述的系統(tǒng),其中所述存儲介質(zhì)包括磁性存儲介質(zhì)和光存儲介質(zhì)之
3. 如權利要求1所述的系統(tǒng),其中所述閃存包括NAND閃存。
4. 如權利要求1所述的系統(tǒng),其中所述子集的所述物理位置對應于所述閃存的塊和頁面。
5. 如權利要求1所述的系統(tǒng),還包括位置映射模塊,所述位置映射模塊配置成將所述子集的所述物理位置映射到邏輯地址,其中所述邏輯地址對應于所述存儲介質(zhì)上的物理位置。
6. 如權利要求5所述的系統(tǒng),其中所述位置映射模塊包括使所述子集的所述物理位置與所述邏輯地址相關的映射,且其中當所述頁面失效模塊將所述子集的所述物理位置的所述狀態(tài)設置為所述無效狀態(tài)時,所述位置映射模塊更新所述映射以指示沒有數(shù)據(jù)存儲在所述邏輯地址處。
7. 如權利要求1所述的系統(tǒng),還包括碎片整理模塊,所述碎片整理模塊被配置為對包括所述子集的所述閃存的塊進行碎片整理,其中所述頁面失效模塊響應于所述命令而將所述子集的所述物理位置的所述狀態(tài)設置為所述無效狀態(tài)。
8. 如權利要求7所述的系統(tǒng),其中所述子集是第一子集,其中所述塊包括數(shù)據(jù)的第二子集和數(shù)據(jù)的第三子集,其中對應于所述第二子集和所述第三子集的物理位置各自具有所述有效狀態(tài),且其中所述碎片整理模塊在對所述塊進行碎片整理時擦除所述第一子集并將所述第二子集和所述第三子集寫到新的物理位置。
9. 如權利要求1所述的系統(tǒng),其中當從所述主機系統(tǒng)接收所述命令時,所述地址是邏輯塊地址。
10. 如權利要求1所述的系統(tǒng),其中所述控制模塊是硬盤控制模塊,且所述存儲介質(zhì)是硬盤驅(qū)動器。
11. 一種方法,包括將從主機系統(tǒng)接收到的數(shù)據(jù)寫入存儲介質(zhì);從所述存儲介質(zhì)中讀取數(shù)據(jù);將來自所述主機系統(tǒng)和所述存儲介質(zhì)中的至少一個的數(shù)據(jù)緩存到閃存中;將有效狀態(tài)和無效狀態(tài)之一映射到所述閃存中的數(shù)據(jù)的子集的物理位置;接收命令,所述命令包括對應于所述子集的地址和將所述子集的所述物理位置的狀態(tài)設置為所述無效狀態(tài)的指令;以及響應于所述命令而將所述子集的所述物理位置的所述狀態(tài)設置為所述無效狀態(tài),其中所述命令從所述主機系統(tǒng)和控制模塊之一接收。
12. 如權利要求11所述的方法,其中所述存儲介質(zhì)包括磁性存儲介質(zhì)和光存儲介質(zhì)之
13. 如權利要求11所述的方法,其中所述閃存包括NAND閃存。
14. 如權利要求11所述的方法,還包括將所述子集的所述物理位置映射到邏輯地址,其中所述邏輯地址對應于所述存儲介質(zhì)上的物理位置。
15. 如權利要求14所述的方法,還包括當將所述子集的所述物理位置的所述狀態(tài)設置為所述無效狀態(tài)時,更新一映射以指示沒有數(shù)據(jù)存儲在所述邏輯地址處,其中所述映射使所述子集的所述物理位置與所述邏輯地址相關。
16. 如權利要求11所述的方法,還包括對包括所述子集的所述閃存的塊進行碎片整理;以及響應于所述命令來將所述子集的所述物理位置的所述狀態(tài)設置為所述無效狀態(tài)。
全文摘要
本發(fā)明提供了使用固態(tài)盤的緩存系統(tǒng)和方法。一種包括控制模塊、位置描述模塊和頁面失效模塊的系統(tǒng)。所述控制模塊配置成將從主機接收到的數(shù)據(jù)寫入存儲介質(zhì),從所述存儲介質(zhì)讀數(shù)據(jù),以及將來自所述主機和所述存儲介質(zhì)中的至少一個的數(shù)據(jù)緩存到閃存中。所述位置描述模塊配置成將有效和無效狀態(tài)之一映射到所述閃存中的數(shù)據(jù)子集的物理位置。所述頁面失效模塊配置成從所述主機和所述控制模塊之一接收命令,該命令包括對應所述子集的地址以及將所述物理位置的狀態(tài)設置為無效狀態(tài)的指令。所述頁面失效模塊還配置成響應所述命令,將所述物理位置的狀態(tài)設置為無效狀態(tài)。
文檔編號G06F12/10GK101782872SQ20101000403
公開日2010年7月21日 申請日期2010年1月18日 優(yōu)先權日2009年1月16日
發(fā)明者瑞姆·基肖爾·卓赫瑞, 阿爾溫德·普魯茨 申請人:馬維爾國際貿(mào)易有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1