TWI682395B - 固態硬碟的未映射位址的重導向方法 - Google Patents
固態硬碟的未映射位址的重導向方法 Download PDFInfo
- Publication number
- TWI682395B TWI682395B TW108104149A TW108104149A TWI682395B TW I682395 B TWI682395 B TW I682395B TW 108104149 A TW108104149 A TW 108104149A TW 108104149 A TW108104149 A TW 108104149A TW I682395 B TWI682395 B TW I682395B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- pages
- block
- data
- unmapped
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000007787 solid Substances 0.000 title claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明係揭露一種固態硬碟的未映射位址的重導向方法,提供一個NAND記憶體。該NAND記憶體有若干區塊,且每個區塊有若干頁。從該NAND記憶體的區塊選一個區塊。從被選的區塊選若干頁當作「0」的專用頁,且將其資料寫為「0」,並另選若干頁當作「1」的專用頁,且將其資料寫為「1」。從主機接收一個讀取固態硬碟的某位址的資料的要求,隨後判斷這位址是否一個未映射位址。若這位址是未映射位址,則從「0」或「1」的專用頁傳「0」或「1」給主機。
Description
本發明關於固態硬碟,特別是固態硬碟的未映射位址的重導向方法。
當一個主機(host)要從一個固態硬碟(solid state drive或SSD)的未映射位址(unmapped addresses)讀資料,主機就要求固態硬碟提供「0」或「1」。為應付主機的要求,就把在NAND記憶體的一部分(「0」的專用部)裡的資料全寫為「0」,並把在NAND記憶體的另外一部分(「1」的專用部)裡的資料全寫為「1」。每一次主機要讀一個未映射位址的資料,若主機要求以「0」當作未映射位址的資料,則從「0」的專用部傳「0」給主機,若主機要求以「1」當作未映射資料,則從「1」的專用部傳「1」給主機。這種程序被稱為重導向(redirecting)。
參考第4圖,依一傳統方式,用NAND記憶體的一個區塊(block)的第一頁(page)當作「0」的專用部,並用NAND記憶體的同一個區塊的第二頁當作「1」的專用部。在主機要求下,可能從NAND記憶體的「0」的專用部或「1」的專用部,讀很多次資料。這必然導致”read disturb”,亦即從一頁讀資料的次數達一個值時,整個NAND記憶體就會失效,即使很少用NAND記憶體的其他頁。
參考第5圖,依另一傳統方式,用固態硬碟的一
個隨機存取記憶體(RAM)的第一個緩衝區當作「0」的專用部,並用隨機存取記憶體的第二個緩衝區當作「1」的專用部。如此,就避免”read disturb”。然而,為用隨機存取記憶體來處理重導向,就導致一些問題。首先,須使用容量較大的隨機存取記憶體,這不可避免地增加成本。其次,因可能從隨機存取記憶體或NAND記憶體讀取資料,這增加軟體設計的複雜度。
有鑑於習知技藝之上述問題,本發明之目的在於提供一種有效且省錢的固態硬碟的未映射位址的重導向方法。
為達成上述目的,在本發明的固態硬碟的未映射位址的重導向方法中,提供一個NAND記憶體。該NAND記憶體有若干區塊,且每個區塊有若干頁。從該NAND記憶體的區塊選一個區塊。從被選的區塊選若干頁當作「0」的專用頁,且將其資料寫為「0」,並另選若干頁當作「1」的專用頁,且將其資料寫為「1」。從主機接收一個讀取固態硬碟的某位址的資料的要求,隨後判斷這位址是否一個未映射位址。若這位址是一個未映射位址,則從「0」或「1」的專用頁傳「0」或「1」給主機。
10‧‧‧固態硬碟資料貯存裝置
Core 0,Core 1‧‧‧中央處理單元
12‧‧‧NAND記憶體
14‧‧‧元資料
16‧‧‧NAND快閃記憶體控制器
18‧‧‧快閃記憶體轉換層
20‧‧‧後端
22‧‧‧前端
24‧‧‧資料快取
26‧‧‧主機
S10~S28‧‧‧步驟
第1圖是一個固態硬碟的方塊圖;第2圖是本發明的較佳實施例的固態硬碟的未映射位址的重導向方法的流程圖,此方法被用於第1圖所示的資料貯存裝置;第3圖是以第2圖所示的方法管理下,NAND記憶體的方
塊圖;第4圖是以一種傳統的固態硬碟的未映射位址的重導向方法下的資料貯存裝置的方塊圖;及第5圖是以另一種傳統的固態硬碟的未映射位址的重導向方法下的資料貯存裝置的方塊圖。
以下參考相關圖式說明本發明的固態硬碟的未映射位址的重導向方法的較佳實施例。為便於理解本發明,以下用相同符號標示相同元件。
參考第1圖,一個固態硬碟10包括兩個中央處理單元(CPU)及一個NAND記憶體12。這兩個中央處理單元被稱為Core 0及Core 1。
中央處理單元Core 0執行若干韌體,例如元資料(system metadata或SysMeta)14、NAND快閃記憶體控制器(NAND flash controller;NFC)16、快閃記憶體轉換層(flash translation layer或FTL)18、及後端(back end或BE)20。
中央處理單元Core 1執行若干韌體,例如前端(front end或FE)22資料及快取(data cache或DC)24。
NAND記憶體12有許多區塊(block),每個區塊有許多頁(page)。在較佳實施例中,這些區塊組成N群,每群有若干區塊。在另一實施例中,不以這些區塊組成若干群。
參考第2圖,本發明的較佳實施例的固態硬碟的未映射位址的重導向方法(「程序」)被用於第1圖所示的固態硬碟10。
參考第2圖及第3圖,在S10,程序開始。
在S12,執行元資料14而從這N群選一群。
在S14,元資料14呼叫NAND快閃記憶體控制器16,從被選的這群的許多頁,選M/2頁並把它們的資料寫為「0」,並另外選M/2頁且把它們的資料寫為「1」。為方便描述,稱這M頁為「專用頁」,稱載滿「0」的M/2頁為「0」的專用頁,稱載滿「1」的M/2頁為「1」的專用頁,稱其餘頁為「普通頁」。當選用一群時,就用這群的普通頁貯存資料,亦即把資料寫入這群的普通頁。
在S16,前端22從主機26接收一個讀資料的要求。這要求包括一個邏輯位址(「原始邏輯位址」)。因此,前端22準備且傳送一個請求(request)到資料快取24。。
在S18,從前端22收到請求後,資料快取24準備並傳送一個請求到快閃記憶體轉換層18。
在S20,從資料快取24收到請求後,快閃記憶體轉換層18將原始邏輯位址轉換成原始實體位址,並傳送一個請求到後端20。
在S22,後端20判斷原始實體位址是否一個未映射位址。
若原始實體位址不是未映射位址,則程序直接走到S24,且原始實體位址被傳到NAND快閃記憶體控制器16。
若原始實體位址是未映射位址,則程序先走到S23,後走到S24。
在S23,後端20向元資料14取得一個重導向實體位址,並以重導向實體位址取代原始實體位址。並把重導向實體位址傳到NAND快閃記憶體控制器16。
在S24,NAND快閃記憶體控制器16從原始實體
位址或重導向實體位址,把「0」、「1」或其他資料傳到主機26。
在S26,判斷這群的全部普通頁的是否被寫滿。若是,則程序走到S27,否則程序走到S28。
在S27,元資料14選另一群。
在S28,程序結束。
與先前技藝相比,本發明有幾個優點。第一,壽命長。用M乘N專用頁貯存「0」及「1」,故不易發生”read disturb”。第二,成本低,固態硬碟10不佔用隨機存取記憶體的容量,故不必用容量大且貴的隨機存取記憶體。第三,軟體複雜度低,因資料的來源只有NAND記憶體12。
以上僅為描述本發明的較佳實施方式,非用以限定本發明的範圍。本技術領域內的一般技術人員根據上述實施例所作的均等變化,以及本領域內技術人員熟知的改變,仍在本發明的範圍內。
10‧‧‧固態硬碟資料貯存裝置
12‧‧‧NAND記憶體
14‧‧‧元資料
16‧‧‧NAND快閃記憶體控制器
18‧‧‧快閃記憶體轉換層
20‧‧‧後端
22‧‧‧前端
24‧‧‧資料快取
26‧‧‧主機
Claims (4)
- 一種固態硬碟的未映射位址的重導向方法,包括以下步驟:提供一個NAND記憶體,其中該NAND記憶體有若干區塊,且每個區塊有若干頁;從該NAND記憶體的區塊選一個區塊;從被選的該區塊選若干頁當作「0」的專用頁,且將其資料全寫為「0」,並從被選的該區塊另外選若干頁當作「1」的專用頁,且將其資料全寫為「1」,其他頁當作普通頁;從一主機(26)接收一個讀取固態硬碟(10)的一位址的資料的要求;並判斷該位址是否一個未映射位址;若該位址是一個未映射位址,則把「0」或「1」的專用頁的「0」或「1」傳到該主機(26)。
- 如請求項1所述之固態硬碟的未映射位址的重導向方法,還包括以下步驟:判斷是否寫完被選的該區塊的普通頁的位元;若否,則續用該區塊;及若是,則選另一區塊。
- 一種固態硬碟的未映射位址的重導向方法,其中一固態硬碟包括一NAND記憶體(12)、一元資料(14)、一NAND快閃記憶體控制器(16)、一快閃記憶體轉換層(18)、一後端(20)、一前端(22)、一資料快取(24),該NAND記憶體(12)有許多區塊,且每 個區塊有若干頁,該方法包括以下步驟:(S12)執行該元資料(14)而從該些區塊選一區塊;(S14)該元資料(14)呼叫該NAND快閃記憶體控制器(16)而從被選的該區塊的許多頁選M/2頁當作「0」的專用頁,且將其資料寫為「0」,並另外選M/2頁當作「1」的專用頁,且將其資料寫為「1」,其他頁當作普通頁;(S16)該前端(22)從一主機(26)接收一個讀資料的要求,其中這要求包括一個原始邏輯位址,且該前端(22)準備且傳送一個DC請求到該資料快取(24);(S18)該資料快取(24)準備並傳送一個FTL請求到該快閃記憶體轉換層(18);(S20)該快閃記憶體轉換層(18)將該原始邏輯位址轉換成一原始實體位址,並傳送一個請求到該後端(20);(S22)該後端(20)判斷該原始實體位址是否一個未映射位址;(S24)若該原始實體位址非未映射位址,則把該原始實體位址傳到該NAND快閃記憶體控制器(16);(S23)若該原始實體位址是未映射位址,則該後端(20)向該元資料(14)取得一個重導向實體位址,取代該原始實體位址,並把該重導向實體位址傳到該NAND快閃記憶體控制器(16);(S24)該NAND快閃記憶體控制器(16)從該原始實體位址或 該重導向實體位址,把「0」、「1」或其他資料傳到該主機(26)。
- 如請求項3所述之固態硬碟的未映射位址的重導向方法,還包括以下步驟:(S26)判斷是否寫滿該區塊的普通頁;(S27)若是,則該元資料(14)選另一群。(S28)否則程序結束。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW108104149A TWI682395B (zh) | 2019-02-01 | 2019-02-01 | 固態硬碟的未映射位址的重導向方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW108104149A TWI682395B (zh) | 2019-02-01 | 2019-02-01 | 固態硬碟的未映射位址的重導向方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI682395B true TWI682395B (zh) | 2020-01-11 |
| TW202030733A TW202030733A (zh) | 2020-08-16 |
Family
ID=69942968
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108104149A TWI682395B (zh) | 2019-02-01 | 2019-02-01 | 固態硬碟的未映射位址的重導向方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI682395B (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1995016963A1 (en) * | 1993-12-15 | 1995-06-22 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
| US20040268116A1 (en) * | 2003-06-30 | 2004-12-30 | Vasisht Virender K | Fault tolerant recovery block with reduced flash footprint |
| US7461213B2 (en) * | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor system using request, data, snoop, and response rings |
| US20090119089A1 (en) * | 2007-10-31 | 2009-05-07 | International Business Machines Corporation | Method, apparatus and full-system simulator for speeding mmu simulation |
| US20130024930A1 (en) * | 2011-07-20 | 2013-01-24 | Michael Steil | Executing Functions of a Secure Program in Unprivileged Mode |
| US20180314643A1 (en) * | 2017-04-28 | 2018-11-01 | SK Hynix Inc. | Data storage device and operating method thereof |
-
2019
- 2019-02-01 TW TW108104149A patent/TWI682395B/zh active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1995016963A1 (en) * | 1993-12-15 | 1995-06-22 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
| US7461213B2 (en) * | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor system using request, data, snoop, and response rings |
| US20040268116A1 (en) * | 2003-06-30 | 2004-12-30 | Vasisht Virender K | Fault tolerant recovery block with reduced flash footprint |
| US20090119089A1 (en) * | 2007-10-31 | 2009-05-07 | International Business Machines Corporation | Method, apparatus and full-system simulator for speeding mmu simulation |
| US20130024930A1 (en) * | 2011-07-20 | 2013-01-24 | Michael Steil | Executing Functions of a Secure Program in Unprivileged Mode |
| US20180314643A1 (en) * | 2017-04-28 | 2018-11-01 | SK Hynix Inc. | Data storage device and operating method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202030733A (zh) | 2020-08-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7613870B2 (en) | Efficient memory usage in systems including volatile and high-density memories | |
| US7979631B2 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
| US11630766B2 (en) | Memory system and operating method thereof | |
| TWI530791B (zh) | 用於改善外部計算裝置效能的調適性記憶體系統 | |
| CN106547476B (zh) | 用于数据存储系统的方法和装置 | |
| US8423709B2 (en) | Controller | |
| JP4768504B2 (ja) | 不揮発性フラッシュメモリを用いる記憶装置 | |
| JP5768654B2 (ja) | 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法 | |
| CN102096556B (zh) | 拷贝数据的方法、读取数据的方法和装置及系统 | |
| KR20150132151A (ko) | 프로그램 가능한 어드레스 매핑 및 메모리 액세스 동작 | |
| JP2007241927A (ja) | データ記憶装置及び方法 | |
| US10635356B2 (en) | Data management method and storage controller using the same | |
| US10013174B2 (en) | Mapping system selection for data storage device | |
| KR20220037333A (ko) | 구역 네임스페이스 디바이스들에서의 판독 처리 | |
| US20160026399A1 (en) | Block i/o interface for a host bus adapter that utilizes nvdram | |
| US11494312B2 (en) | Flash memory devices and prefetch methods thereof | |
| CN101174198B (zh) | 数据存储系统及其数据存取方法 | |
| CN113590506B (zh) | Hmb的表项管理方法及固态硬盘的控制系统 | |
| US10083117B2 (en) | Filtering write request sequences | |
| US11822483B2 (en) | Operating method of memory system including cache memory for supporting various chunk sizes | |
| TWI682395B (zh) | 固態硬碟的未映射位址的重導向方法 | |
| CN104182359A (zh) | 一种缓存分配方法及装置 | |
| WO2016056290A1 (ja) | メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 | |
| CN111581117A (zh) | 固态硬盘的未映像地址的重导向方法 | |
| CN112463041A (zh) | 一种主机读写数据的处理方法及相关装置 |