減少數(shù)據(jù)貯存裝置的讀取延遲的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本公開(kāi)一般地涉及減少讀取延遲。
【背景技術(shù)】
[0002] 非易失性數(shù)據(jù)貯存裝置一一諸如通用串行總線(USB)閃存存儲(chǔ)器裝置或者可拆卸 貯存卡一一使得數(shù)據(jù)和軟件應(yīng)用越來(lái)越便攜。閃存存儲(chǔ)器裝置可以通過(guò)在每個(gè)閃存存儲(chǔ)器 單元中貯存多個(gè)位(bit)來(lái)提高數(shù)據(jù)貯存密度。例如,多級(jí)單元(MLC)閃存存儲(chǔ)器裝置通 過(guò)每單元貯存3位、每單元4位或者更多來(lái)提供增加的貯存密度。盡管增加每單元的位的 數(shù)量并且減少裝置特征尺寸可以增加存儲(chǔ)器裝置的貯存密度,但是貯存在存儲(chǔ)器裝置處的 數(shù)據(jù)的位錯(cuò)誤率也可能增加。
[0003] 隨機(jī)的每秒輸入 / 輸出操作(input/output operations per second,IOPS) 性能已經(jīng)變?yōu)楸容^諸如iNAND的存儲(chǔ)器產(chǎn)品的標(biāo)準(zhǔn)之一?;陧?yè)的閃存管理(Flash Management,F(xiàn)M)可以在編程期間(例如,對(duì)于大量的編程IOPS)改善性能。但是,在數(shù)據(jù) 讀取之前發(fā)布控制讀取(Control Reads,CR)可能在當(dāng)使用基于頁(yè)的閃存管理時(shí)減少讀取 性能。
[0004] 例如,CR可以被用于識(shí)別數(shù)據(jù)在存儲(chǔ)器中的物理地址。物理地址可以被貯存在存 儲(chǔ)器中的邏輯-到-物理地址映射表中。邏輯-到-物理地址映射表可能過(guò)于大(例如, 每1GB的存儲(chǔ)器有1MB的表大?。┒荒鼙徽w保持在閃存存儲(chǔ)器裝置的控制器處。因此, 在大跨度的讀取地址上的隨機(jī)讀取操作期間,每當(dāng)包括請(qǐng)求的地址的邏輯-到-物理地址 映射表的一部分不被緩存在控制器中時(shí),可以發(fā)布CR以從存儲(chǔ)器讀取邏輯-到-物理地址 映射表,導(dǎo)致了增加的整體讀取延遲和減少的IOPS數(shù)量。
【發(fā)明內(nèi)容】
[0005] 以減少讀取延遲的方式從數(shù)據(jù)貯存裝置讀取數(shù)據(jù)。具體地,當(dāng)在數(shù)據(jù)貯存裝置處 從主機(jī)裝置接收指示邏輯地址的讀取請(qǐng)求時(shí),數(shù)據(jù)貯存裝置的控制器可以確定將邏輯地址 映射到物理地址的表的一部分是否貯存在控制器處。如果表的一部分不貯存在控制器處, 控制器可以進(jìn)行第一讀取操作以從存儲(chǔ)器取回邏輯映射表的條目的表示,并且進(jìn)行第二讀 取操作以從存儲(chǔ)器取回碼字的表示,其中碼字包括邏輯映射表的條目??刂破骺梢宰g碼碼 字的表示以確定在條目處是否存在錯(cuò)誤,并且在完成譯碼碼字的表示之前,開(kāi)始第三讀取 操作以從對(duì)應(yīng)于基于所述條目的表示確定的所述邏輯地址的第一物理地址取回第一讀取 數(shù)據(jù)。如果所述譯碼指示在所述條目處不存在錯(cuò)誤,則從所述第一物理地址取回的第一讀 取數(shù)據(jù)可以被提供到主機(jī)。如果譯碼指示在條目處存在錯(cuò)誤,控制器可以開(kāi)始第四讀取操 作以從對(duì)應(yīng)于基于在譯碼的碼字中的錯(cuò)誤校正的條目確定的邏輯地址的第二物理地址取 回第二讀取數(shù)據(jù)。因此,當(dāng)條目不包括錯(cuò)誤時(shí)可以減少讀取延遲,因?yàn)樵谧x取第一物理地址 的同時(shí)進(jìn)行確定所述條目是否包含錯(cuò)誤的譯碼。當(dāng)條目包含錯(cuò)誤時(shí),讀取延遲可能不被減 少也不被增加。相應(yīng)地,存儲(chǔ)器裝置的平均讀取延遲被減少。
【附圖說(shuō)明】
[0006] 圖1是包括被配置為減少讀取延遲的數(shù)據(jù)貯存裝置的系統(tǒng)的特定示意性實(shí)施例 的框圖;
[0007] 圖2是以減少的讀取延遲地從數(shù)據(jù)貯存裝置讀取數(shù)據(jù)的方法的第一特定示意性 實(shí)施例的流程圖;以及
[0008] 圖3是以減少的讀取延遲地從數(shù)據(jù)貯存裝置讀取數(shù)據(jù)的方法的第二特定示意性 實(shí)施例的流程圖。
【具體實(shí)施方式】
[0009] 參考圖1,描述了包括被配置為減少讀取延遲的數(shù)據(jù)貯存裝置102的系統(tǒng)的特定 示意性實(shí)施例,并且該系統(tǒng)的特定示意性實(shí)施例被一般地指定為100。系統(tǒng)100包括通過(guò) 總線156耦合到主機(jī)裝置150的數(shù)據(jù)貯存裝置102。數(shù)據(jù)貯存裝置102包括耦合到控制器 120的存儲(chǔ)器104??刂破?20被配置為以減少讀取延遲的方式從存儲(chǔ)器讀取數(shù)據(jù)。
[0010] 存儲(chǔ)器104可以是非易失性存儲(chǔ)器,諸如NAND閃存存儲(chǔ)器。存儲(chǔ)器104包括一組 貯存元件,諸如多級(jí)單元(MLC)閃存存儲(chǔ)器的字線。數(shù)據(jù)貯存裝置102可以是存儲(chǔ)器卡, 所述存儲(chǔ)器卡諸如安全數(shù)字SD?卡、microSD?卡、miniSD. TM卡(特拉華州威明頓市的 SD-3C LLC的商標(biāo))、MultiMediaCard. TM(MMC. TM)卡(弗吉尼亞州阿靈頓市的JEDEC固態(tài) 技術(shù)協(xié)會(huì)的商標(biāo))或者CompactFlash?(CF)卡(加利福尼亞州苗比達(dá)市的SanDisk公 司的商標(biāo))。作為另一示例,數(shù)據(jù)貯存裝置102可以被配置為作為內(nèi)嵌的存儲(chǔ)器耦合到主 機(jī)裝置150,所述內(nèi)嵌的存儲(chǔ)器諸如作為示意性示例的eMMC? (弗吉尼亞州阿靈頓市的 JEDEC固態(tài)技術(shù)協(xié)會(huì)的商標(biāo))以及eSD。為了說(shuō)明,數(shù)據(jù)貯存裝置102可以對(duì)應(yīng)于eMMC(內(nèi) 嵌式的MultiMedia卡)裝置。數(shù)據(jù)貯存裝置102可以依照J(rèn)EDEC行業(yè)規(guī)范操作。例如,數(shù) 據(jù)貯存裝置102可以依照J(rèn)EDEC eMMC規(guī)范、JEDEC通用閃存貯存(UFS)規(guī)范、一個(gè)或多個(gè) 其它規(guī)范或其組合操作。
[0011] 主機(jī)裝置150可以被配置為提供用以貯存在存儲(chǔ)器104處的數(shù)據(jù)和/或請(qǐng)求從存 儲(chǔ)器104讀取的數(shù)據(jù)。例如,主機(jī)裝置150可以包括移動(dòng)電話、音樂(lè)播放器、視頻播放器、游 戲操縱臺(tái)、電子書(shū)閱讀器、個(gè)人數(shù)字助理(PDA)、諸如膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)或者平板 的計(jì)算機(jī)、任何其它電子裝置或者其任何組合。主機(jī)裝置150通過(guò)使能從存儲(chǔ)器104讀取 以及寫(xiě)入到存儲(chǔ)器104的存儲(chǔ)器接口來(lái)通信。例如,主機(jī)裝置150可以依照聯(lián)合電子裝置 工程協(xié)會(huì)(JEDEC)行業(yè)規(guī)范操作,所述行業(yè)規(guī)范諸如通用閃存貯存(UFS)主機(jī)控制器接口 規(guī)范。作為其它示例,主機(jī)裝置150可以依照一個(gè)或多個(gè)其它規(guī)范,諸如作為示意性示例的 安全數(shù)字(SD)主機(jī)控制器規(guī)范來(lái)操作。主機(jī)設(shè)備150可以根據(jù)任何其他適當(dāng)?shù)耐ㄐ艆f(xié)議 而與存儲(chǔ)器104通信。
[0012] 存儲(chǔ)器104可以是閃存裝置的非易失性存儲(chǔ)器,該閃存裝置諸如NAND閃存裝置、 NOR閃存裝置或者任何其它類型的閃存裝置。存儲(chǔ)器104包括物理存儲(chǔ)器位置108和邏輯到 物理映射表106。邏輯到物理映射表106包括多個(gè)條目,諸如代表性的第一條目112。所述 多個(gè)條目的每個(gè)條目將特定邏輯地址映射到物理存儲(chǔ)器位置108之一的相應(yīng)的物理地址。 條目可以被分組成多組條目,諸如對(duì)應(yīng)于第一碼字110的第一組條目以及對(duì)應(yīng)于第二碼字 118的第二組條目。每一個(gè)碼字110、118可以與錯(cuò)誤校正數(shù)據(jù)相關(guān)聯(lián)或者可以包括錯(cuò)誤校 正數(shù)據(jù),該錯(cuò)誤校正數(shù)據(jù)諸如與第一碼字110相關(guān)聯(lián)的代表性的碼字錯(cuò)誤校正碼(ECC)數(shù) 據(jù)116。在特定實(shí)施例中,條目的每一個(gè)還可以與錯(cuò)誤檢測(cè)數(shù)據(jù)相關(guān)聯(lián),該錯(cuò)誤檢測(cè)數(shù)據(jù)諸 如與第一條目112相關(guān)聯(lián)的代表性的奇偶校驗(yàn)數(shù)據(jù)114。
[0013] 控制器120包括被配置為進(jìn)行存儲(chǔ)器管理功能的存儲(chǔ)器管理系統(tǒng)122,該存儲(chǔ)器 管理功能諸如將數(shù)據(jù)發(fā)送到控制器120的各種組件、和從控制器120的各種組件接收數(shù)據(jù)、 以及協(xié)調(diào)控制器120的各種組件的操作。存儲(chǔ)器管理系統(tǒng)122可以包括映射邏輯124,其被 配置為使用邏輯到物理映射信息、以將從主機(jī)裝置150接收的邏輯地址映射到對(duì)應(yīng)于存儲(chǔ) 器104的物理存儲(chǔ)器位置108的物理地址。為了將邏輯地址映射到物理地址,映射邏輯124 可以訪問(wèn)控制器120的存儲(chǔ)器,諸如貯存邏輯到物理映射表106的部分128的隨機(jī)存取存 儲(chǔ)器(RAM) 126。在特定實(shí)施例中,RAM 126可能太小以至于不能貯存整個(gè)邏輯到物理映射 表106。因此,諸如先進(jìn)先出緩存的緩存處理或者另外的緩存處理可以確定貯存在RAM 126 處的、邏輯到物理映射表106的部分128。
[0014] 控制器120還可以包括ECC引擎130。ECC引擎130被配置為使用碼字ECC數(shù)據(jù) 來(lái)譯碼從存儲(chǔ)器104取回的碼字。例如,當(dāng)從存儲(chǔ)器104取回第一碼字110的表示164時(shí), ECC引擎130可以譯碼第一碼字110的表示164以識(shí)別并校正錯(cuò)誤。為了說(shuō)明,ECC引擎 130可以使用BCH錯(cuò)誤校正碼、Hamming錯(cuò)誤校正碼、Reed-Solomon錯(cuò)誤校正碼或者另外的 錯(cuò)誤校正碼以檢測(cè)和校正在取回的碼字中的錯(cuò)誤。
[0015] 控制器120還可以包括錯(cuò)誤檢測(cè)引擎132。錯(cuò)誤檢測(cè)引擎132被配置為檢測(cè)在從 存儲(chǔ)器104取回的條目中的錯(cuò)誤。當(dāng)