具有陳舊數(shù)據(jù)機(jī)制的數(shù)據(jù)貯存系統(tǒng)及其操作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明大體涉及數(shù)據(jù)貯存系統(tǒng),更具體地涉及具有陳舊(stale)數(shù)據(jù)機(jī)制的系統(tǒng)。
【背景技術(shù)】
[0002]通常稱為貯存器或者存儲器的數(shù)據(jù)貯存器指保留數(shù)字?jǐn)?shù)據(jù)的計(jì)算機(jī)組件和記錄介質(zhì)。數(shù)據(jù)貯存器是消費(fèi)和工業(yè)電子產(chǎn)品、尤其是諸如計(jì)算機(jī)、電視、蜂窩電話、移動設(shè)備和數(shù)字?jǐn)z像機(jī)的設(shè)備的核心功能和基礎(chǔ)組件。
[0003]近來,除了電動機(jī)械硬盤之外的長期貯存的形式對于用在計(jì)算機(jī)中變?yōu)榭尚?。非_AND(NAND)快閃是在固態(tài)貯存設(shè)備中使用的非易失性存儲器的一種形式。存儲器單元以典型的行和列的方式布置,具有用于訪問各個(gè)單元的電路。那些單元的存儲器晶體管被放置以貯存可以被解譯的模擬值以在單級單元(SLC)的情況下保持兩個(gè)邏輯狀態(tài)或者在多級單元(MLC)的情況下保持多于兩個(gè)邏輯狀態(tài)。
[0004]快閃存儲器單元的重量輕,占據(jù)很少的空間,并且比電動機(jī)械盤驅(qū)動器消耗更少的功率。具有此類型的存儲器的貯存系統(tǒng)的構(gòu)造允許比典型的電動機(jī)械盤驅(qū)動器高得多的帶寬和每秒的輸入/輸出操作(1PS)。更重要的是,其尤其強(qiáng)健并且可以以非常大的溫度范圍而操作。其可以經(jīng)受重復(fù)的掉落而沒有不利影響,每次掉落將損壞典型的電動機(jī)械硬盤驅(qū)動器??扉W存儲器表現(xiàn)出的問題是其趨向于具有有限的操作速度。
[0005]因此,仍需要更快速的數(shù)據(jù)貯存系統(tǒng)。鑒于對于數(shù)據(jù)貯存系統(tǒng)的增加的需求,越來越至關(guān)重要的是為這些問題找到答案。鑒于日益增加的商業(yè)競爭壓力以及對于市場上的有意義的產(chǎn)品差異的增長的消費(fèi)者期望和逐漸減少的機(jī)會,為這些問題找到答案至關(guān)重要。另外,降低成本、改進(jìn)效率和性能以及滿足競爭壓力的需求為對這些問題找到答案的至關(guān)重要的必要性增加了甚至更大的緊迫性。
[0006]長期在尋求對這些問題的解決方案,但是現(xiàn)有的發(fā)展還沒有教導(dǎo)或提出任何解決方案,因此,本領(lǐng)域技術(shù)人員始終無法掌握對這些問題的解決方案。
【附圖說明】
[0007]圖1是本發(fā)明的實(shí)施例中的數(shù)據(jù)貯存系統(tǒng)的框圖。
[0008]圖2是根據(jù)一些實(shí)施例的數(shù)據(jù)貯存系統(tǒng)的存儲器圖的示例。
[0009]圖3是根據(jù)一些實(shí)施例的命令重疊的示例。
[0010]圖4是根據(jù)一些實(shí)施例的邏輯到物理表的示例。
[0011]圖5是根據(jù)一些實(shí)施例的寫處理的第一示例。
[0012]圖6是根據(jù)一些實(shí)施例的寫處理的第二示例。
[0013]圖7是根據(jù)一些實(shí)施例的讀處理的示例。
[0014]圖8是根據(jù)一些實(shí)施例的數(shù)據(jù)貯存系統(tǒng)的操作的方法的流程圖。
【具體實(shí)施方式】
[0015]在此所述的各種實(shí)現(xiàn)方式包括用于使能陳舊數(shù)據(jù)機(jī)制的系統(tǒng)、方法和/或設(shè)備。一些實(shí)現(xiàn)方式包括用于確定是否設(shè)置了與寫命令的邏輯地址對應(yīng)的陳舊標(biāo)志并且根據(jù)設(shè)置了陳舊標(biāo)志的確定檢測重疊的系統(tǒng)、方法和/或設(shè)備,該重疊指示兩個(gè)或更多未完成的(outstanding)寫命令正在相同的存儲器空間上操作。
[0016]更具體地,一些實(shí)施例包括數(shù)據(jù)貯存系統(tǒng)的操作的方法。在一些實(shí)施例中,該方法包括:(I)接收指定要寫到的邏輯地址的寫命令,(2)確定是否設(shè)置了與該邏輯地址對應(yīng)的陳舊標(biāo)志,(3)根據(jù)沒有設(shè)置陳舊標(biāo)志的確定,設(shè)置陳舊標(biāo)志并且釋放要處理的寫命令,以及(4)根據(jù)設(shè)置了陳舊標(biāo)志的確定,檢測重疊,其中該重疊指示兩個(gè)或更多未完成的寫命令正在相同的存儲器空間上操作。
[0017]在一些實(shí)施例中,該方法還包括響應(yīng)于檢測到重疊,進(jìn)行寫合并操作,其中該寫合并操作整合對于該邏輯地址的兩個(gè)或更多未完成的寫命令。
[0018]在一些實(shí)施例中,該方法還包括(I)完成寫命令的處理以及(2)更新陳舊標(biāo)志。
[0019]在一些實(shí)施例中,更新陳舊標(biāo)志包括清除該陳舊標(biāo)志。
[0020]在一些實(shí)施例中,該陳舊標(biāo)志是與各個(gè)邏輯地址相關(guān)聯(lián)的未完成的寫命令的數(shù)量的計(jì)數(shù),并且更新陳舊標(biāo)志包括將該計(jì)數(shù)遞減。
[0021]在一些實(shí)施例中,該方法還包括:(I)接收指定從其讀取的第二邏輯地址的讀取命令,(2)確定是否設(shè)置了與該第二邏輯地址對應(yīng)的第二陳舊標(biāo)志,(3)根據(jù)沒有設(shè)置第二陳舊標(biāo)志的確定,進(jìn)行該讀取命令,其中進(jìn)行該讀取命令包括從與該第二邏輯地址對應(yīng)的物理地址讀取數(shù)據(jù),其中使用邏輯到物理表確定該物理地址,以及(4)根據(jù)設(shè)置了第二陳舊標(biāo)志的確定,跳過該讀取命令的進(jìn)行直到?jīng)]有設(shè)置第二陳舊標(biāo)志。
[0022]在一些實(shí)施例中,該方法還包括根據(jù)設(shè)置了第二陳舊標(biāo)志的確定,使陳舊寫入優(yōu)先,其中陳舊寫入的完成清除該第二陳舊標(biāo)志。
[0023]在一些實(shí)施例中,該方法還包括:(I)接收指定從其讀取的第二邏輯地址的讀取命令,(2)確定是否設(shè)置了與該第二邏輯地址對應(yīng)的第二陳舊標(biāo)志,(3)根據(jù)沒有設(shè)置第二陳舊標(biāo)志的確定,進(jìn)行該讀取命令,其中進(jìn)行該讀取命令包括從與該第二邏輯地址對應(yīng)的物理地址讀取數(shù)據(jù),其中使用邏輯到物理表確定該物理地址,以及(4)根據(jù)設(shè)置了第二陳舊標(biāo)志的確定,通過從對于該第二邏輯地址的進(jìn)行中的寫入數(shù)據(jù)讀取數(shù)據(jù)來為該讀取命令服務(wù)。
[0024]在一些實(shí)施例中,多個(gè)邏輯地址的每個(gè)邏輯地址具有相應(yīng)的陳舊標(biāo)志,并且每個(gè)陳舊標(biāo)志被貯存在用于將邏輯地址映射到物理地址的邏輯到物理表中。
[0025]在一些實(shí)施例中,多個(gè)邏輯地址的每個(gè)邏輯地址具有相應(yīng)的陳舊標(biāo)志,并且每個(gè)陳舊標(biāo)志被貯存在與用于將邏輯地址映射到物理地址的邏輯到物理表分開的表中。
[0026]在另一方面,上述的任意方法由數(shù)據(jù)貯存系統(tǒng)進(jìn)行,該數(shù)據(jù)貯存系統(tǒng)包括:(I)一個(gè)或多個(gè)處理器,以及(2)存儲器,貯存要由該一個(gè)或多個(gè)處理器執(zhí)行的一個(gè)或多個(gè)程序,該一個(gè)或多個(gè)程序包括用于進(jìn)行在此所述的任意方法或者控制在此所述的任意方法的進(jìn)行的指令。
[0027]在另一方面,一些實(shí)施例包括非暫時(shí)計(jì)算機(jī)可讀貯存介質(zhì),存儲配置為由數(shù)據(jù)貯存系統(tǒng)的一個(gè)或多個(gè)處理器執(zhí)行的一個(gè)或多個(gè)程序,該一個(gè)或多個(gè)程序包括用于進(jìn)行在此所述的任意方法或者控制在此所述的任意方法的進(jìn)行的指令。
[0028]充分詳細(xì)地描述以下實(shí)施例以使得本領(lǐng)域技術(shù)人員能夠做出和使用本發(fā)明。將理解,基于本公開,其他實(shí)施例將是顯然的,并且可以不脫離本發(fā)明的范圍進(jìn)行系統(tǒng)、處理或機(jī)械上的改變。
[0029]在以下描述中,給出了許多具體細(xì)節(jié)以通過本發(fā)明的透徹理解。但是,將顯而易見的是,可以沒有這些具體細(xì)節(jié)而實(shí)踐本發(fā)明。為了避免混淆本發(fā)明,沒有詳細(xì)公開一些公知的電路、系統(tǒng)配置和處理步驟。
[0030]示出了系統(tǒng)的實(shí)施例的附圖是半圖解式的并且不是按比例的,特別是一些尺寸是為了清楚地呈現(xiàn)并且在附圖中放大地示出。
[0031]其中公開和描述了具有一些共同特征的多個(gè)實(shí)施例,為了清楚以及易于例示、描述和理解這些實(shí)施例,將通常利用類似的參考標(biāo)記來描述彼此類似或者相同的特征。為了方便描述實(shí)施例已經(jīng)被標(biāo)號為第一實(shí)施例、第二實(shí)施例等等,不意圖具有任何其他意義或者提供對本發(fā)明的限制。
[0032]在此提及的術(shù)語“模塊”可以根據(jù)使用該數(shù)據(jù)的上下文在本發(fā)明中包括軟件、硬件或其組合。例如,軟件可以是機(jī)器代碼、固件、嵌入式代碼和應(yīng)用軟件。而且,例如,硬件可以是電路、處理器、計(jì)算機(jī)、集成電路、集成電路核、微機(jī)電系統(tǒng)(MEMS)、無源器件、包括溫度傳感器的環(huán)境傳感器或其組合。
[0033]在此提及的術(shù)語“SSD”被定義為固態(tài)盤驅(qū)動器(solid-state disk drive),現(xiàn)如今這些類型的設(shè)備使用NAND閃存作為貯存介質(zhì)。在此提及的術(shù)語“讀取-修改-寫入”被定義為從存儲器讀取存儲器塊、更新該存儲器的操作的子區(qū)域、然后將整個(gè)存儲器區(qū)域?qū)懟氐浇橘|(zhì)的處理。
[0034]在此提及的術(shù)語“擦除塊”被定義為一組頁,其是一次被擦除的最少數(shù)量的頁。在此提及的術(shù)語“存儲器頁”被定義為被編程為單獨(dú)的單元的擦除塊內(nèi)的存儲器組件。存儲器頁是從擦除塊讀取或者被寫到擦除塊中的最小組的數(shù)據(jù)字節(jié)。
[0035]在此提及的術(shù)