TWI489272B - 保護資料的方法、記憶體控制器與記憶體儲存裝置 - Google Patents

保護資料的方法、記憶體控制器與記憶體儲存裝置 Download PDF

Info

Publication number
TWI489272B
TWI489272B TW101111863A TW101111863A TWI489272B TW I489272 B TWI489272 B TW I489272B TW 101111863 A TW101111863 A TW 101111863A TW 101111863 A TW101111863 A TW 101111863A TW I489272 B TWI489272 B TW I489272B
Authority
TW
Taiwan
Prior art keywords
block address
virtual
logical block
virtual block
logical
Prior art date
Application number
TW101111863A
Other languages
English (en)
Other versions
TW201342054A (zh
Inventor
Ching Wen Chang
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW101111863A priority Critical patent/TWI489272B/zh
Priority to US13/491,607 priority patent/US9032135B2/en
Publication of TW201342054A publication Critical patent/TW201342054A/zh
Application granted granted Critical
Publication of TWI489272B publication Critical patent/TWI489272B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

保護資料的方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種資料保護的技術,且特別是有關於一種避免一個應用程式存取到不屬於其可存取之資料的資料保護方法以及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體中會包括多個實體區塊,且這些實體區塊會被映射至多個邏輯區塊。這些邏輯區塊用以提供一或多個應用程式來使用。然而,這些應用程式是透過下達存取邏輯區塊的指令來存取實體區塊。若一個應用程式下達了存取屬於其他應用程式的邏輯區塊的指令時,屬於其他應用程式所存取之資料可能因此被修改,而影響資料的安全性。因此,如何避免一個應用程式存取到不屬於本身可存取之資料,為此領域技術人員所關心的議題。
本發明提出一種資料保護方法、記憶體控制器與記憶體儲存裝置,其可有效地避免一個應用程式存取到非授權可存取的資料。
本發明一範例實施例中提出一種資料保護方法,用於一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體區塊,而多個邏輯區塊位址會被配置以映射至部分的實體區塊。此資料保護方法包括:配置多個虛擬區塊位址,以映射至上述的邏輯區塊位址;將至少一個虛擬區塊位址劃分為一第一虛擬區塊位址區域並且將第一虛擬區塊位址區域分配給一第一應用程式,其中第一虛擬區塊位址區域會映射至第一邏輯區塊位址區域。此資料保護方法還包括:接收來自第一應用程式的第一存取指令,此第一存取指令指示上述存取虛擬區塊位址中的第一虛擬區塊位址;判斷第一虛擬區塊位址是否屬於第一虛擬區塊位址區域;以及,若第一虛擬區塊位址不屬於第一虛擬區塊位址區域時,則回應一存取錯誤訊息給第一應用程式。
在一範例實施例中,上述的資料保護方法,還包括:若第一虛擬區塊位址屬於第一虛擬區塊位址區域時,取得第一虛擬區塊位址所映射的第一邏輯區塊位址;以及,根據第一存取指令存取第一邏輯區塊位址所映射的實體區塊。
在一範例實施例中,上述的資料保護方法還包括:將虛擬區塊位址之中的至少另一個虛擬區塊位址劃分為第二虛擬區塊位址區域並且將第二虛擬區塊位址區域分配給一第二應用程式;接收來自第二應用程式的一個第二存取指令,此第二存取指令指示存取虛擬區塊位址的一第二虛擬區塊位址。此資料保護方法還包括:判斷第二虛擬區塊位址是否屬於第二虛擬區塊位址區域;以及,若第二虛擬區塊位址不屬於第二虛擬區塊位址區域時,回應存取錯誤訊息給第二應用程式。
在一範例實施例中,上述的資料保護方法還包括:建立一個存取區塊表,用以紀錄第一虛擬區塊位址區域中的虛擬區塊位址與第一邏輯區塊位址區域中的邏輯區塊位址的一映射關係。上述判斷第一虛擬區塊位址是否屬於第一虛擬區塊位址區域的步驟包括:根據此存取區塊表,判斷第一虛擬區塊位址是否屬於第一虛擬區塊位址區域。
在一範例實施例中,上述的資料保護方法還包括:將邏輯區塊位址之中的多個第三邏輯區塊位址劃分為第一邏輯區塊位址區域;將虛擬區塊位址之中的多個第三虛擬區塊位址映射至第三邏輯區塊位址並將第三虛擬區塊位址劃分為第一虛擬區塊位址區域,其中第三虛擬區塊位址的數目等於第三邏輯區塊位址的數目,第三邏輯區塊位址為不連續的。此外,在此方法中還包括:將這些第三虛擬區塊位址指派給第一應用程式。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。其中,連接器是用以耦接至一主機系統。可複寫式非揮發性記憶體模組包括多個實體區塊,其中多個邏輯區塊位址會被配置以映射至部份的實體區塊。記憶體控制器則耦接至連接器與可複寫式非揮發性記憶體模組。記憶體控制器會將上述邏輯區塊位址之中的至少一個邏輯區塊位址劃分為第一邏輯區塊位址區域並且將第一邏輯區塊位址區域分配給第一應用程式。記憶體控制器也會接收來自第一應用程式的第一存取指令,此第一存取指令是用以指示存取上述多個邏輯區塊位址中的至少一個第一邏輯區塊位址。記憶體控制器還會判斷第一邏輯區塊位址是否屬於第一邏輯區塊位址區域,若不,則記憶體控制器會回應一存取錯誤訊息給第一應用程式。
在一範例實施例中,若上述的第一邏輯區塊位址屬於第一邏輯區塊位址區域時,記憶體控制器會根據第一存取指令存取第一邏輯區塊位址所映射的實體區塊。
在一範例實施例中,上述的記憶體控制器還用以將邏輯區塊位址之中的至少另一個邏輯區塊位址劃分為第二邏輯區塊位址區域並且將第二邏輯區塊位址區域分配給第二應用程式。記憶體控制器也會接收來自第二應用程式的第二存取指令,此第二存取指令是用以指示存取上述邏輯區塊位址中的至少一個第二邏輯區塊位址。記憶體控制器還會判斷第二邏輯區塊位址是否屬於第二邏輯區塊位址區域,若不,則記憶體控制器會回應存取錯誤訊息給第二應用程式。
在一範例實施例中,上述的記憶體控制器還會紀錄多個欄位,且每個欄位是分別對應至一個上述的邏輯區塊位 址。記憶體控制器還用以將第一應用程式的多個權限資訊記錄在欄位當中,其中各個權限資訊表示第一應用程式是否有權限存取所對應的邏輯區塊位址,而第一應用程式所能存取的邏輯區塊位址便屬於第一邏輯區塊位址區域。記憶體控制器還會根據上述的權限資訊,判斷第一邏輯區塊位址是否屬於第一邏輯區塊位址區域。
以另外一個角度來說,本發明一範例實施例還提出一種記憶體控制器,用以控制一個可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體區塊,其中多個邏輯區塊位址會被分配以映射至部份的實體區塊。此記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。其中,主機介面是用以耦接至一主機系統。記憶體介面是耦接至上述的可複寫式非揮發性記憶體模組。記憶體管理電路則耦接至主機介面與記憶體介面,用以配置多個虛擬區塊位址以映射至上述的邏輯區塊位址。記憶體管理電路也會將至少一個虛擬區塊位址劃分為第一虛擬區塊位址區域並且將第一虛擬區塊位址區域分配給一第一應用程式。而第一虛擬區塊位址區域會映射至第一邏輯區塊位址區域。記憶體管理電路也會接收來自第一應用程式的第一存取指令,此第一存取指令指示存取虛擬區塊位址中的第一虛擬區塊位址。記憶體管理電路還會判斷第一虛擬區塊位址是否屬於第一虛擬區塊位址區域。若第一虛擬區塊位址不屬於第一虛擬區塊位址區域時,記憶體管理電路會回應一個存取錯誤訊息給第一應用程式。
在一範例實施例中,若第一虛擬區塊位址是屬於第一虛擬區塊位址區域時,記憶體管理電路會取得第一虛擬區塊位址所映射的第一邏輯區塊位址,並根據第一存取指令存取第一邏輯區塊位址所映射的實體區塊。
在一範例實施例中,上述的記憶體管理電路還用以將虛擬區塊位址之中的至少另一個虛擬區塊位址劃分為一第二虛擬區塊位址區域並且將第二虛擬區塊位址區域分配給一第二應用程式。記憶體管理電路還用以接收來自第二應用程式的第二存取指令,此第二存取指令指示存取上述虛擬區塊位址中的一第二虛擬區塊位址。記憶體管理電路還用以判斷第二虛擬區塊位址是否屬於第二虛擬區塊位址區域,若第二虛擬區塊位址不屬於第二虛擬區塊位址區域時,則記憶體管理電路會回應存取錯誤訊息給第二應用程式。
在一範例實施例中,上述的記憶體管理電路還用以建立一存取區塊表,用以紀錄第一虛擬區塊位址區域中的虛擬區塊位址與第一邏輯區塊位址區域中的邏輯區塊位址的一映射關係。記憶體管理電路還用以根據此存取區塊表,判斷第一虛擬區塊位址是否屬於第一虛擬區塊位址區域。
在一範例實施例中,上述的記憶體管理電路還用以將上述邏輯區塊位址之中的多個第三邏輯區塊位址劃分為第一邏輯區塊位址區域,將上述虛擬區塊位址之中的多個第三虛擬區塊位址映射至第三邏輯區塊位址。記憶體管理電路還會將第三虛擬區塊位址劃分為第一虛擬區塊位址區域,而第三虛擬區塊位址的數目會等於第三邏輯區塊位址的數目,第三邏輯區塊位址為不連續的。此外,記憶體管理電路會將第三虛擬區塊位址指派給第一應用程式。
基於上述,本發明範例實施例所提出的資料保護方法、記憶體控制器與記憶體儲存裝置,可以避免一個應用程式存取到屬於其他應用程式的邏輯區塊位址的資料。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
[第一範例實施例]
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。微處理器1102會執行被載入至隨機存取記憶體1104中的作業系統1105與應用程式1107,以使主機系統1000根據使用者之操作而提供對應的功能。輸入/輸出裝置1106包括如圖1B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體區塊304(0)~304(N)。例如,實體區塊304(0)~304(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體區塊分別具有複數個實體頁面,並且每一實體頁面具有至少一實體扇區,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。例如,每一實體區塊是由128個實體頁面所組成,並且每一實體頁面具有8個實體扇區(sector)。也就是說,在每一實體扇區為512位元組(byte)的例子中,每一實體頁面的容量為4千位元組(Kilobyte,KB)。然而,必須瞭解的是,本發明不限於此,每一實體區塊是可由64個實體頁面、256個實體頁面或其他任意個實體頁面所組成。
更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是實體扇區或其他大小。每一實體頁面通常包括資料位元區與冗餘位元區。資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體區塊;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252、電源管理電路254與錯誤檢查與校正電路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4與圖5是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體區塊的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體區塊進行操作。
請參照圖4,記憶體控制器104會將可複寫式非揮發性記憶體模組的實體區塊304(0)~304(R)邏輯地分組為資料區402、閒置區404、系統區406與取代區408。
資料區402與閒置區404的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區402是已儲存資料的實體區塊,而閒置區404的實體區塊是用以替換資料區402的實體區塊。因此,閒置區404的實體區塊為空或可使用的實體區塊,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區404中的實體區塊已被執行抹除運作,或者當閒置區404中的實體區塊被提取用於儲存資料之前所提取之實體區塊會先被執行抹除運作。因此,閒置區404的實體區塊為可被使用的實體區塊。
邏輯上屬於系統區406的實體區塊是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區408中的實體區塊是替代實體區塊。例如,可複寫式非揮發性記憶體模組於出廠時會預留4%的實體區塊作為更換使用。也就是說,當資料區402、閒置區404與系統區406中的實體區塊損毀時,預留於取代區408中的實體區塊是用以取代損壞的實體區塊(即,壞實體區塊(bad block))。因此,倘若取代區408中仍存有正常之實體區塊且發生實體區塊損毀時,記憶體控制器104會從取代區408中提取正常的實體區塊來更換損毀的實體區塊。倘若取代區408中無正常之實體區塊且發生實體區塊損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區402、閒置區404、系統區406與取代區408之實體區塊的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體區塊關聯至資料區402、閒置區404、系統區406與取代區408的分組關係會動態地變動。例如,當閒置區中的實體區塊損壞而被取代區的實體區塊取代時,則原本取代區的實體區塊會被關聯至閒置區。
請參照圖5,如上所述,資料區402與閒置區404的實體區塊是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體控制器104會配置邏輯區塊位址LBA(0)~LBA(D)以利於在以上述輪替方式在儲存資料之實體區塊中進行資料存取。例如,當記憶體儲存裝置100被作業系統1110透過檔案系統(例如,FAT 32)格式化時,邏輯區塊位址LBA(0)~LBA(D)分別地映射至資料區402的實體區塊304(0)~304(D)。在此,記憶體管理電路202會建立邏輯區塊位址-實體區塊映射表(logical block address-physical block mapping table),以記錄邏輯區塊位址與實體區塊之間的映射關係。
在本範例實施例中,記憶體管理電路還會配置多個虛擬區塊位址以映射至邏輯區塊位址LBA(0)~LBA(D)。主機系統1000上的應用程式可以透過這些虛擬區塊位址來存取邏輯區塊位址LBA(0)~LBA(D),進而存取實體區塊304(0)~304(D)。特別的是,記憶體管理電路202會從這些虛擬區塊位址中劃分多個區域,以分別作為特定應用之多個應用程式的專屬存取區域。例如,此些應用程式包括用於商店之小額付款之應用程式、用於交通運輸工具之購票認證的應用程式。然而,本發明並不限制這些應用程式的用途。
圖6是依照第一範例實施例所繪示的應用程式存取虛擬區塊位址的示意圖。
請參照圖6,第一應用程式602與第二應用程式604是被安裝在主機系統1000上。記憶體管理電路202會配置虛擬區塊位址702(0)~702(D)以映射至邏輯區塊位址LBA(0)~LBA(D)。記憶體管理電路202會將虛擬區塊位址702(0)~702(D)中的至少一個虛擬區塊位址劃分為第一虛擬區塊位址區域,並且,記憶體管理電路202會將邏輯區塊位址LBA(0)~LBA(D)中的至少一個邏輯區塊位址劃分為第一邏輯區塊位址區域。例如,記憶體管理電路202會將虛擬區塊位址702(0)~702(F)(亦稱第三虛擬區塊位址)劃分為第一虛擬區塊位址區域704。並且,記憶體管理電路202會將邏輯區塊位址LBA(0)~LBA(F)(亦稱第三邏輯區塊位址)劃分為第一邏輯區塊位址區域708。其中,虛擬區塊位址702(0)~702(F)的數目會等於邏輯區塊位址LBA(0)~LBA(F)的數目。此外,記憶體管理電路202會將虛擬區塊位址702(0)~702(F)映射至邏輯區塊位址LBA(0)~LBA(F)。換言之,第一虛擬區塊位址區域704是映射至第一邏輯區塊位址區域708。最後,記憶體管理電路202會將第一虛擬區塊位址區域704分配給第一應用程式602。
類似地,記憶體管理電路202會將虛擬區塊位址702(J)~702(D)劃分為第二虛擬區塊位址區域706,並將邏輯區塊位址LBA(J)~LBA(D)會被劃分為第二邏輯區塊位址區域710。其中,記憶體管理電路202會將虛擬區塊位址702(J)~702(D)映射至邏輯區塊位址LBA(J)~LBA(D),換言之,第二虛擬區塊位址區域706是映射至第二邏輯區塊位址區域710。並且,記憶體管理電路202會將第二虛擬區塊位址區域706分配給第二應用程式604。
特別的是,當第一應用程式602下達存取一虛擬區塊位址(亦稱第一虛擬區塊位址)的存取指令(亦稱第一存取指令)給記憶體管理電路202以後,記憶體管理電路202會判斷第一應用程式602所要存取的虛擬區塊位址是否屬於第一虛擬區塊位址區域704,若不是,則記憶體管理電路202會回覆一錯誤存取訊息給第一應用程式602。若第一應用程式602所要存取的虛擬區塊位址是屬於第一虛擬區塊位址區域704,則記憶體管理電路202會找到第一虛擬區塊位址所映射的邏輯存取位址(亦稱第一邏輯存取位址),並根據第一存取指令來存取第一邏輯區塊位址所映射的實體區塊。
具體來說,記憶體管理電路202會建立屬於第一應用程式602的一個存取區塊表,來判斷第一應用程式602所要存取的虛擬區塊位址是否屬於第一虛擬區塊位址區域704。
圖7是根據第一範例實施例說明屬於第一應用程式的存取區塊表的範例示意圖。
請同時參照圖6與圖7,記憶體管理電路202會建立屬於第一應用程式602的存取區塊表700,用以記錄第一虛擬區塊位址區域704中的虛擬區塊位址702(0)~702(F)與第一邏輯區塊位址區域708中的邏輯區塊位址LBA(0)~LBA(F)之間的映射關係。例如,如圖7所示,虛擬區塊位址702(0)是映射至邏輯區塊位址LBA(0),虛擬區塊位址702(1)是映射至邏輯區塊位址LBA(1),以此類推。另一方面,記憶體管理電路202也可以根據存取區塊表700來判斷第一應用程式602所要存取的虛擬區塊位址是否屬於第一虛擬區塊位址區域704。具體來說,記憶體管理電路202可以根據第一應用程式602所要存取的虛擬區塊位址是否存在於存取區塊表700,來判斷此虛擬區塊位址是否屬於第一虛擬區塊位址區域704。例如,當第一應用程式602下達了存取虛擬區塊位址702(0)(亦稱第一虛擬區塊位址)的指令(亦稱第一存取指令)給記憶體管理電路202以後,記憶體管理電路202會判斷虛擬區塊位址702(0)是否存在於存取區塊表700中。若是,記憶體管理電路202會判斷虛擬區塊位址702(0)是屬於第一虛擬區塊位址區域704。並且,記憶體管理電路202會根據存取區塊表700找到映射至虛擬區塊位址702(0)的邏輯區塊位址LBA(0)(亦稱第一邏輯區塊位址)。接著,記憶體管理電路202會根據所接收到的第一存取指令來存取邏輯區塊位址LBA(0)所映射的實體區塊。例如,當第一應用程式602下達了存取虛擬區塊位址702(J)的指令給記憶體管理電路202以後,記憶體管理電路202會判斷虛擬區塊位址702(J)並不存在於存取區塊表700中。因此,記憶體管理電路202會判斷虛擬區塊位址702(J)並不屬於第一虛擬區塊位址區域704,並且,記憶體管理電路202會傳送一存取錯誤訊息給第一應用程式602。如此一來,便可以避免第一應用程式602存取了不屬於自己的虛擬區塊位址。
類似地,如圖6所示,當第二應用程式604下達存取一虛擬區塊位址(亦稱第二虛擬區塊位址)的存取指令(亦稱第二存取指令)給記憶體管理電路202以後,記憶體管理電路202會判斷第二虛擬區塊位址是否屬於第二虛擬區塊位址區域706,若不是,則記憶體管理電路202會回覆一錯誤存取訊息給第二應用程式604。若第二虛擬區塊位址屬於第二虛擬區塊位址區域706,則記憶體管理電路202會找到第二虛擬區塊位址所映射的第二邏輯區塊位址,並會根據第二存取指令來存取第二邏輯區塊位址所映射的實體區塊。此外,記憶體管理電路202也會建立屬於第二應用程式604的存取區塊表,用以紀錄第二虛擬區塊位址區域706中的虛擬區塊位址與第二邏輯區塊位址區域710中的邏輯區塊位址之間的映射關係。換言之,對於執行於主機系統1000的每一個應用程式,記憶體管理電路202都會建立一個應用程式專屬的存取區塊表,以判斷應用程式是否要存取不屬於自己的虛擬區塊位址。
在圖6所示的範例實施例中,記憶體管理電路202所分配的虛擬區塊位址702(0)~702(D)是連續的。然而,在另一範例實施例中,記憶體管理電路202所分配的虛擬區塊位址也可以是不連續的。
圖8是根據第一範例實施例說明不連續的虛擬區塊位址的範例示意圖。
請參照圖8,在圖8所示的範例實施例中,記憶體管理電路202會將連續的邏輯區塊位址LBA(0)~LBA(A)(亦稱第三邏輯區塊位址)劃分為第一邏輯區塊位址區域622。並且,在所分配的多個虛擬區塊位址中,記憶體管理電路202會將其中的虛擬區塊位址902(0)~902(A)(亦稱第三虛擬區塊位址)映射至邏輯區塊位址LBA(0)~LBA(A),其中虛擬區塊位址902(0)~902(A)的數目會等於邏輯區塊位址LBA(0)~LBA(A)的數目。此外,記憶體管理電路202還會將虛擬區塊位址902(0)~902(A)劃分為第一虛擬區塊位址區域906,並將第一虛擬區塊位址區域906分配給第一應用程式602。如此一來,第一應用程式602便可以下達存取虛擬區塊位址902(0)~902(A)的存取指令給記憶體管理電路202。此外,在此範例實施例中,記憶體管理電路202也會將虛擬區塊位址902(0)~902(A)與邏輯區塊位址LBA(0)~LBA(A)的映射關係記錄在一個存取區塊表中。
類似地,記憶體管理電路202會將連續的邏輯區塊位址LBA(B)~LBA(E)劃分為第二邏輯區塊位址區域624,並將虛擬區塊位址904(0)~904(G)映射至邏輯區塊位址LBA(B)~LBA(E)。記憶體管理電路202也會將虛擬區塊位址904(0)~904(G)劃分為第二虛擬區塊位址區域908,並將第二虛擬區塊位址區域908分配給第二應用程式604。並且,記憶體管理電路202也會將虛擬區塊位址904(0)~904(G)與邏輯區塊位址LBA(B)~LBA(E)的映射關係記錄在屬於第二應用程式604的存取區塊表中。
在圖8所示的範例實施例中,分配給第一應用程式602的虛擬區塊位址902(0)~902(A)與分配給第二應用程式604的虛擬區塊位址904(0)~904(G)是獨立的。換言之,虛擬區塊位址是應用程式與記憶體管理電路202所協定好的。例如,當應用程式下達存取虛擬區塊位址的存取指令給記憶體管理電路202時,記憶體管理電路202可以先識別下達指令的應用程式,再根據下達指令的應用程式的存取區塊表來判斷所接收的虛擬區塊位址是否屬於所對應的虛擬區塊位址區域。本發明並不限制記憶體管理電路202所分配的虛擬區塊位址為連續或不連續。
圖9是根據第一範例實施例說明不連續的邏輯區塊位址的範例示意圖。
請參照圖9,在圖9所示的範例實施例中,記憶體管理電路202也可以將不連續的邏輯區塊位址分配給應用程式。例如,記憶體管理電路202會將邏輯區塊位址LBA(0)~LBA(2)與邏輯區塊位址LBA(A)~LBA(A+2)(亦稱第三邏輯區塊位址)劃分為第一邏輯區塊位址區域。記憶體管理電路202會配置多個虛擬區塊位址,並將其中的虛擬區塊位址802(0)~802(5)(亦稱第三虛擬區塊位址)映射至邏輯區塊位址LBA(0)~LBA(2)與LBA(A)~LBA(A+2),而第三虛擬區塊位址802(0)~802(5)的數目會等於邏輯區塊位址LBA(0)~LBA(2)與LBA(A)~LBA(A+2)的數目。此外,記憶體管理電路202會建立一個存取區塊表,用以記錄第一虛擬區塊位址802(0)~802(5)和邏輯區塊位址LBA(0)~LBA(2)與LBA(A)~LBA(A+2)之間的映射關係(如圖10所示)。並且,記憶體管理電路202會將第三虛擬區塊位址802(0)~802(5)劃分為第一虛擬區塊位址區域,並將第一虛擬區塊位址區域分配給第一應用程式602。如此一來,第一應用程式602可透過下達存取虛擬區塊位址802(0)~802(5)的存取指令來存取資料。
圖11是根據第一範例實施例所繪示之資料保護方法的流程圖。
請參照圖11,在步驟S802中,記憶體管理電路202會配置多個虛擬區塊位址以映射至多個邏輯區塊位址,而這些邏輯區塊位址是映射至部份的實體區塊。
在步驟S804中,記憶體管理電路202會將至少一個虛擬區塊位址劃分為第一虛擬區塊位址區域並且將第一虛擬區塊位址區域分配給第一應用程式。
在步驟S806中,記憶體管理電路202會接收來自第一應用程式的第一存取指令,此第一存取指令指示存取上述虛擬區塊位址中的第一虛擬區塊位址。
在步驟S808中,記憶體管理電路202會判斷第一虛擬區塊位址是否屬於第一虛擬區塊位址區域。
若第一虛擬區塊位址不屬於第一虛擬區塊位址區域,在步驟S810中,記憶體管理電路202會傳送存取錯誤訊息給主機系統。
若第一虛擬區塊位址是屬於第一虛擬區塊位址區域,在步驟S812中,記憶體管理電路202會取得第一虛擬區塊位址所映射的第一邏輯區塊位址。接著在步驟S814中,記憶體管理電路202會根據第一存取指令存取第一邏輯區塊位址所映射的實體區塊。
然而,圖11中各步驟已詳細說明如上,在此便不再贅述。
[第二範例實施例]
在第一範例實施例中,記憶體管理電路是在虛擬區塊位址的層級上,判斷一個應用程式是否存取了不屬於自己的資料。然而,在第二範例實施例中,記憶體管理電路是在邏輯區塊位址的層級上判斷一個應用程式是否存取了不屬於自己的資料。具體來說,在第二範例實施例中,記憶體管理電路202會將至少一個邏輯區塊位址劃分為邏輯區塊位址區域,並將此邏輯區塊位址區域分配給應用程式。當應用程式下達存取邏輯區塊位址(亦稱第一邏輯區塊位址)的存取指令給記憶體管理電路202時,記憶體管理電路202會判斷第一邏輯區塊位址是否屬於所分配的邏輯區塊位址區域。藉此,記憶體管理電路202可以判斷應用程式是否要存取不屬於自己的資料。
圖12是根據第二範例實施例說明將邏輯區塊位址分配給應用程式的範例示意圖。
請參照圖12,記憶體管理電路202會將邏輯區塊位址LBA(0)~LBA(A)劃分為第一邏輯區塊位址區域1222,而第一邏輯區塊位址區域1222是獨立地分配給第一應用程式602來進行存取。也就是說,第一應用程式602具有對邏輯區塊位址LBA(0)~LBA(A)專屬的存取權,其他應用程式無法將資料儲存至邏輯區塊位址LBA(0)~LBA(A)中或從邏輯區塊位址LBA(0)~LBA(A)中讀取資料。例如,第一應用程式602是透過製造商指令(vendor command)來存取邏輯區塊位址LBA(0)~LBA(A),並且作業系統1105無法存取邏輯區塊位址LBA(0)~LBA(A)。特別的是,記憶體管理電路202還會記錄多個欄位。這些欄位是用以記錄第一應用程式602的多個權限資訊,其中每個權限資訊是對應到一個邏輯區塊位址,用以表示第一應用程式602是否有權限存取所對應的邏輯區塊位址。在本範例實施例中,記憶體管理電路202是根據這些欄位的權限資訊,判斷第一應用程式602所存取的邏輯區塊位址是否屬於第一邏輯區塊位址區域。
圖13是根據第二範例實施例繪示屬於第一應用程式之多個欄位的示意圖。
請同時參照圖12與圖13,欄位920(0)~920(D)是分別對應至邏輯區塊位址LBA(0)~LBA(D)。在本範例實施例中,每個欄位中的權限資訊是用一個位元來表示,其代表第一應用程式602是否有權限存取對應的邏輯區塊位址。例如,位元”1”來表示有權限,並且用位元”0”來表示沒有權限。例如,邏輯區塊位址LBA(0)~LBA(A)是屬於第一邏輯區塊位址區域1222,即,第一應用程式602有權限存取邏輯區塊位址LBA(0)~LBA(A)。因此,欄位920(0)~920(A)之中的權限資訊會被記錄為”1”,且其他欄位會被記錄為”0”。
舉例來說,當第一應用程式602下達存取邏輯區塊位址LBA(0)的存取指令給記憶體管理電路202時,記憶體管理電路202會找到對應邏輯區塊位址LBA(0)的欄位920(0),並從欄位920(0)讀取所記錄的權限資訊。由於欄位920(0)所記錄的權限資訊是”1”,因此記憶體管理電路202會判斷邏輯區塊位址LBA(0)是屬於第一邏輯區塊位址區域1222。反之,倘若所讀取之權限資訊為’0’時,則記憶體管理電路202會判斷所存取之邏輯區塊位址非屬於於第一邏輯區塊位址區域。在判斷邏輯區塊位址LBA(0)是屬於第一邏輯區塊位址區域以後,記憶體管理電路202會根據邏輯區塊位址-實體區塊映射表找到邏輯區塊位址LBA(0)所映射的實體區塊。並且,記憶體管理電路202會根據第一應用程式602所下達的第一存取指令來存取邏輯區塊位址LBA(0)所映射的實體區塊。
值得注意的是,本範例實施例中每個欄位是用位元”1”表示有權限,但在其他範例實施例中也可以用位元”0”表示有權限,或者,使用其他文字或符號來表示有權限與沒有權限,本發明並不在此限。
類似地,如圖12所示,記憶體管理電路202會將邏輯區塊位址LBA(B)~LBA(E)劃分為第二邏輯區塊位址區域1224,而第二邏輯區塊位址區域1224是獨立地分配給第二應用程式604。也就是說,第二應用程式604具有對邏輯區塊位址LBA(B)~LBA(E)專屬的存取權。當第二應用程式604下達了存取邏輯區塊位址(亦稱第二邏輯區塊位址)的存取指令(亦稱第二存取指令)給記憶體管理電路202時,記憶體管理電路202會判斷第二邏輯區塊位址是否屬於第二邏輯區塊位址區域1224。若第二邏輯區塊位址屬於第二邏輯區塊位址區域1224,則記憶體管理電路202會根據第二存取指令存取第二邏輯區塊位址所映射的實體區塊。若第二邏輯區塊位址不屬於第二邏輯區塊位址區域1224,則記憶體管理電路202會傳送一存取錯誤訊息給第二應用程式604。然而,記憶體管理電路202也會紀錄屬於第二應用程式604的多個欄位,這些欄位會紀錄屬於第二應用程式604的權限資訊,而記憶體管理電路202根據這些欄位判斷第二邏輯區塊位址是否屬於第二邏輯區塊位址區域1224的方式與判斷第一邏輯區塊位址是否屬於第一邏輯區塊位址區域1222的方式相同,在此便不再贅述。
圖14是根據第二範例實施例所繪示之資料保護方法的流程圖。
請參照圖14,在步驟S1004中,記憶體管理電路202會將邏輯區塊位址之中的至少部分邏輯區塊位址劃分為至少一邏輯區塊位址區域並且將所劃分之邏輯區塊位址區域專屬地分配給應用程式。例如,如圖12所示,部分的邏輯區塊位址會被劃分為第一邏輯區塊位址區域與第二邏輯區塊位址區域,第一邏輯區塊位址區域會專屬地分配給第一應用程式並且第二邏輯區塊位址區域會專屬地分配給第二應用程式。
在步驟S1006中,記憶體管理電路202從執行於主機系統1000的應用程式中接收指示存取一個或多個邏輯區塊位址(亦稱第一邏輯區塊位址)的存取指令。
在步驟S1008中,記憶體管理電路202會判斷第一邏輯區塊位址是否屬於分配給此應用程式的邏輯區塊位址區域。
若此存取指令所指示的存取位址屬於分配給此應用程式的邏輯區塊位址區域時,則在步驟S1010中,記憶體管理電路202會根據所接收的存取指令來存取第一邏輯區塊位址所映射的實體區塊。例如,在步驟S1010中,記憶體管理電路202會根據邏輯區塊位址-實體區塊映射表識別第一邏輯區塊位址所映射的實體區塊。
倘若此存取指令所存取的存取位址不屬於分配給此應用程式的邏輯區塊位址區域時,則在步驟S1012中,記憶體管理電路202會傳送存取錯誤訊息給主機系統。例如,當第一應用程式所要存取的邏輯區塊位址不屬於第一邏輯區塊位址區域時,記憶體管理電路202會傳送存取錯誤訊息給第一應用程式;並且當第二應用程式所要存取的邏輯區塊位址不屬於第二邏輯區塊位址區域時,記憶體管理電路202會傳送存取錯誤訊息給第二應用程式。
綜上所述,本發明範例實施例所提出的資料保護方法、記憶體控制器與記憶體儲存裝置,是在虛擬區塊位址或邏輯區塊位址的層級上判斷應用程式是否要存取不屬於自己的資料。如此一來,一個應用程式便不會存取其他應用程式的資料,藉此保護各個應用程式所專屬的資料。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1105...作業系統
1106...輸入/輸出裝置
1107...應用程式
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...記憶體儲存裝置
102...連接器
104...記憶體控制器
106...可複寫式非揮發性記憶體模組
304(0)~304(R)...實體區塊
202...記憶體管理電路
206...記憶體介面
254...電源管理電路
252...緩衝記憶體
256...錯誤檢查與校正電路
402...資料區
404...閒置區
406...系統區
408...取代區
LBA(0)~LBA(D)‧‧‧邏輯區塊位址
602‧‧‧第一應用程式
604‧‧‧第二應用程式
702(0)~702(D)‧‧‧虛擬區塊位址
704、906‧‧‧第一虛擬區塊位址區域
706、908‧‧‧第二虛擬區塊位址區域
708、622‧‧‧第一邏輯區塊位址區域
710、624‧‧‧第二邏輯區塊位址區域
700‧‧‧存取區塊表
902(0)~902(A)、904(0)~904(G)、802(0)~802(5)‧‧‧虛擬區塊位址
S802、S804、S806、S808、S810、S812、S814‧‧‧資料保護方法的步驟
1222‧‧‧第一邏輯區塊位址區域
1224‧‧‧第二邏輯區塊位址區域
920(0)~920(D)‧‧‧欄位
S1004、S1006、S1008、S1010、S1012‧‧‧資料保護方法的步驟
圖1A是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據第一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4與圖5是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖6是依照第一範例實施例所繪示的應用程式存取虛擬區塊位址的示意圖。
圖7是根據第一範例實施例說明屬於第一應用程式的存取區塊表的範例示意圖。
圖8是根據第一範例實施例說明不連續的虛擬區塊位址的範例示意圖。
圖9是根據第一範例實施例說明不連續的邏輯區塊位址的範例示意圖。
圖10是根據圖9所示之範例實施例說明存取區塊表的範例示意圖。
圖11是根據第一範例實施例所繪示之資料保護方法的流程圖。
圖12是根據第二範例實施例說明將邏輯區塊位址分配給應用程式的範例示意圖。
圖13是根據第二範例實施例繪示屬於第一應用程式之多個欄位的示意圖。
圖14是根據第二範例實施例所繪示之資料保護方法的流程圖。
S802、S804、S806、S808、S810、S812、S814...資料保護方法的步驟

Claims (14)

  1. 一種資料保護方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體區塊,多個邏輯區塊位址會被配置以映射至部分的該些實體區塊,該資料保護方法包括:配置多個虛擬區塊位址,以映射至該些邏輯區塊位址;將該些虛擬區塊位址之中的至少一虛擬區塊位址劃分為一第一虛擬區塊位址區域並且將該第一虛擬區塊位址區域分配給一第一應用程式,其中該至少一虛擬區塊位址映射至少一邏輯區塊位址,該第一虛擬區塊位址區域映射一第一邏輯區塊位址區域;接收來自該第一應用程式的一第一存取指令,其中該第一存取指令指示存取該些虛擬區塊位址中的一第一虛擬區塊位址;判斷該第一虛擬區塊位址是否屬於該第一虛擬區塊位址區域;以及若該第一虛擬區塊位址不屬於該第一虛擬區塊位址區域時,則回應一存取錯誤訊息給該第一應用程式。
  2. 如申請專利範圍第1項所述之資料保護方法,還包括:若該第一虛擬區塊位址屬於該第一虛擬區塊位址區域時,取得在該些邏輯區塊位址中該第一虛擬區塊位址所映射的一第一邏輯區塊位址;以及 根據該第一存取指令存取該第一邏輯區塊位址所映射的實體區塊。
  3. 如申請專利範圍第1項所述之資料保護方法,還包括:將該些虛擬區塊位址之中的至少另一虛擬區塊位址劃分為一第二虛擬區塊位址區域並且將該第二虛擬區塊位址區域分配給一第二應用程式;接收來自該第二應用程式的一第二存取指令,其中該第二存取指令指示存取該些虛擬區塊位址的一第二虛擬區塊位址;判斷該第二虛擬區塊位址是否屬於該第二虛擬區塊位址區域;以及若該第二虛擬區塊位址不屬於該第二虛擬區塊位址區域時,則回應該存取錯誤訊息給該第二應用程式。
  4. 如申請專利範圍第1項所述之資料保護方法,還包括:建立一存取區塊表,該存取區塊表紀錄該第一虛擬區塊位址區域的該些虛擬區塊位址與該第一邏輯區塊位址區域的該些邏輯區塊位址的一映射關係,其中判斷該第一虛擬區塊位址是否屬於該第一虛擬區塊位址區域的步驟包括:根據該存取區塊表,判斷該第一虛擬區塊位址是否屬於該第一虛擬區塊位址區域。
  5. 如申請專利範圍第1項所述之資料保護方法,還包 括:將該些邏輯區塊位址之中的多個第三邏輯區塊位址劃分為該第一邏輯區塊位址區域;將該些虛擬區塊位址之中的多個第三虛擬區塊位址映射至該些第三邏輯區塊位址並將該些第三虛擬區塊位址劃分為該第一虛擬區塊位址區域,其中該些第三虛擬區塊位址的數目等於該些第三邏輯區塊位址的數目,該些第三邏輯區塊位址為不連續的;以及將該些第三虛擬區塊位址指派給該第一應用程式。
  6. 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體區塊,其中多個邏輯區塊位址會被配置以映射至部份的該些實體區塊;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,將該些邏輯區塊位址之中的至少一邏輯區塊位址劃分為一第一邏輯區塊位址區域並且將該第一邏輯區塊位址區域分配給一第一應用程式,其中,該記憶體控制器接收來自該第一應用程式的一第一存取指令,其中該第一存取指令指示存取至少一第一邏輯區塊位址,其中,該記憶體控制器判斷該至少一第一邏輯區塊位址是否屬於該第一邏輯區塊位址區域,若該至少一第一邏輯區塊位址不屬於該第一邏輯區塊位址區域時,該記憶體 控制器回應一存取錯誤訊息給該第一應用程式。
  7. 如申請專利範圍第6項所述之記憶體儲存裝置,其中若該至少一第一邏輯區塊位址屬於該第一邏輯區塊位址區域時,該記憶體控制器根據該第一存取指令存取該至少一第一邏輯區塊位址所映射的實體區塊。
  8. 如申請專利範圍第7項所述之記憶體儲存裝置,其中該記憶體控制器還用以將該些邏輯區塊位址之中的至少另一邏輯區塊位址劃分為一第二邏輯區塊位址區域並且將該第二邏輯區塊位址區域分配給一第二應用程式,並接收來自該第二應用程式的一第二存取指令,其中該第二存取指令指示存取該些邏輯區塊位址中的至少一第二邏輯區塊位址,其中,該記憶體控制器判斷該至少一第二邏輯區塊位址是否屬於該第二邏輯區塊位址區域,若該至少一第二邏輯區塊位址不屬於該第二邏輯區塊位址區域時,該記憶體控制器回應該存取錯誤訊息給該第二應用程式。
  9. 如申請專利範圍第7項所述之記憶體儲存裝置,其中該記憶體控制器還記錄多個欄位,且該些欄位是分別對應至該些邏輯區塊位址,該記憶體控制器還用以將該第一應用程式的多個權限資訊記錄在該些欄位當中,其中各該些權限資訊表示該第一應用程式是否有權限存取所對應的該邏輯區塊位址,而該第一應用程式所能存取的該些邏輯區塊位址屬於該第一邏輯區塊位址區域,其中,該記憶體控制器根據該些權限資訊,判斷該至 少一第一邏輯區塊位址是否屬於該第一邏輯區塊位址區域。
  10. 一種記憶體控制器,用以控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體區塊,其中多個邏輯區塊位址會被分配以映射至部份的該些實體區塊,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,配置多個虛擬區塊位址以映射至該些邏輯區塊位址,其中,該記憶體管理電路將該些虛擬區塊位址之中的至少一虛擬區塊位址劃分為一第一虛擬區塊位址區域並且將該第一虛擬區塊位址區域分配給一第一應用程式,其中該至少一虛擬區塊位址映射至少一邏輯區塊位址,該第一虛擬區塊位址區域映射一第一邏輯區塊位址區域,其中,該記憶體管理電路接收來自該第一應用程式的一第一存取指令,其中該第一存取指令指示存取該些虛擬區塊位址中的一第一虛擬區塊位址,其中,記憶體管理電路判斷該第一虛擬區塊位址是否屬於該第一虛擬區塊位址區域,若該第一虛擬區塊位址不屬於該第一虛擬區塊位址區域時,該記憶體管理電路回應一存取錯誤訊息給該第一應用程式。
  11. 如申請專利範圍第10項所述之記憶體控制器,其 中若該第一虛擬區塊位址屬於該第一虛擬區塊位址區域時,該記憶體管理電路取得在該些邏輯區塊位址中該第一虛擬區塊位址所映射的一第一邏輯區塊位址,並根據該第一存取指令存取該第一邏輯區塊位址所映射的實體區塊。
  12. 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路還用以將該些虛擬區塊位址之中的至少另一虛擬區塊位址劃分為一第二虛擬區塊位址區域並且將該第二虛擬區塊位址區域分配給一第二應用程式,該記憶體管理電路還用以接收來自該第二應用程式的一第二存取指令,其中該第二存取指令指示存取該些虛擬區塊位址的一第二虛擬區塊位址,該記憶體管理電路還用以判斷該第二虛擬區塊位址是否屬於該第二虛擬區塊位址區域,若該第二虛擬區塊位址不屬於該第二虛擬區塊位址區域時,則該記憶體管理電路回應該存取錯誤訊息給該第二應用程式。
  13. 如申請專利範圍第10項所述之記憶體控制器,該記憶體管理電路還用以建立一存取區塊表,該存取區塊表紀錄該第一虛擬區塊位址區域的該些虛擬區塊位址與該第一邏輯區塊位址區域的該些邏輯區塊位址的一映射關係,該記憶體管理電路還用以根據該存取區塊表,判斷該第一虛擬區塊位址是否屬於該第一虛擬區塊位址區域。
  14. 如申請專利範圍第10項所述之記憶體控制器,該記憶體管理電路還用以將該些邏輯區塊位址之中的多個第三邏輯區塊位址劃分為該第一邏輯區塊位址區域,將該些 虛擬區塊位址之中的多個第三虛擬區塊位址映射至該些第三邏輯區塊位址,並將該些第三虛擬區塊位址劃分為該第一虛擬區塊位址區域,其中該些第三虛擬區塊位址的數目等於該些第三邏輯區塊位址的數目,該些第三邏輯區塊位址為不連續的,該記憶體管理電路會將該些第三虛擬區塊位址指派給該第一應用程式。
TW101111863A 2012-04-03 2012-04-03 保護資料的方法、記憶體控制器與記憶體儲存裝置 TWI489272B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101111863A TWI489272B (zh) 2012-04-03 2012-04-03 保護資料的方法、記憶體控制器與記憶體儲存裝置
US13/491,607 US9032135B2 (en) 2012-04-03 2012-06-08 Data protecting method, memory controller and memory storage device using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101111863A TWI489272B (zh) 2012-04-03 2012-04-03 保護資料的方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201342054A TW201342054A (zh) 2013-10-16
TWI489272B true TWI489272B (zh) 2015-06-21

Family

ID=49236632

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101111863A TWI489272B (zh) 2012-04-03 2012-04-03 保護資料的方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9032135B2 (zh)
TW (1) TWI489272B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924636B2 (en) * 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
KR20150071500A (ko) * 2013-12-18 2015-06-26 삼성전자주식회사 데이터 관리 방법 및 장치
KR101593161B1 (ko) * 2014-10-02 2016-02-15 한국전자통신연구원 메모리 관리 장치 및 방법
US10236069B2 (en) * 2017-06-20 2019-03-19 Intel Corporation Word line read disturb error reduction through fine grained access counter mechanism
US10970226B2 (en) 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
US11609845B2 (en) * 2019-05-28 2023-03-21 Oracle International Corporation Configurable memory device connected to a microprocessor
US11537526B2 (en) * 2020-09-10 2022-12-27 Micron Technology, Inc. Translating of logical address to determine first and second portions of physical address
US20230083104A1 (en) * 2021-09-10 2023-03-16 Vmware, Inc. Efficiently Deleting Snapshots in a Log-Structured File System (LFS)-Based Storage System

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220229A1 (en) * 2006-03-16 2007-09-20 Fujitsu Limited Memory area allocation control device, storage medium storing its program and its method
TW200809594A (en) * 2005-12-13 2008-02-16 Sandisk Corp Logically-addressed file storage
US8086585B1 (en) * 2008-09-30 2011-12-27 Emc Corporation Access control to block storage devices for a shared disk based file system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6839827B1 (en) * 2000-01-18 2005-01-04 International Business Machines Corporation Method, system, program, and data structures for mapping logical blocks to physical blocks
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7281114B2 (en) * 2003-12-26 2007-10-09 Tdk Corporation Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
JPWO2005103903A1 (ja) * 2004-04-20 2007-08-30 松下電器産業株式会社 不揮発性記憶システム
US7478221B1 (en) * 2005-05-03 2009-01-13 Symantec Operating Corporation System and method for using consistent virtual addresses to communicate in cooperative multi-layer virtualization environments
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
US20070136553A1 (en) * 2005-12-13 2007-06-14 Sinclair Alan W Logically-addressed file storage systems
US20070150690A1 (en) * 2005-12-23 2007-06-28 International Business Machines Corporation Method and apparatus for increasing virtual storage capacity in on-demand storage systems
JP4946102B2 (ja) * 2006-03-10 2012-06-06 ソニー株式会社 不揮発性メモリシステムおよび不揮発性メモリの管理方法
US8024545B2 (en) * 2007-10-19 2011-09-20 Inha-Industry Partnership Institute Efficient prefetching and asynchronous writing for flash memory
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
TWI499907B (zh) * 2009-07-17 2015-09-11 Genesys Logic Inc 快閃記憶體之平行處理架構及其方法
US8402220B2 (en) * 2010-03-18 2013-03-19 Hitachi, Ltd. Storage controller coupled to storage apparatus
TWI437430B (zh) * 2010-04-07 2014-05-11 Phison Electronics Corp 動態切換分割區方法、記憶卡控制器與記憶卡儲存系統及電腦程式產品
KR20120003283A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
WO2012039002A1 (en) * 2010-09-21 2012-03-29 Hitachi, Ltd. Semiconductor storage device and data control method thereof
KR20120121736A (ko) * 2011-04-27 2012-11-06 삼성전자주식회사 데이터 라이트 방법 및 저장 장치
KR101954995B1 (ko) * 2011-04-27 2019-05-31 시게이트 테크놀로지 엘엘씨 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체
US8645662B2 (en) * 2011-12-23 2014-02-04 Oracle International Corporation Sub-lun auto-tiering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200809594A (en) * 2005-12-13 2008-02-16 Sandisk Corp Logically-addressed file storage
US20070220229A1 (en) * 2006-03-16 2007-09-20 Fujitsu Limited Memory area allocation control device, storage medium storing its program and its method
US8086585B1 (en) * 2008-09-30 2011-12-27 Emc Corporation Access control to block storage devices for a shared disk based file system

Also Published As

Publication number Publication date
US9032135B2 (en) 2015-05-12
TW201342054A (zh) 2013-10-16
US20130262748A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
TWI489272B (zh) 保護資料的方法、記憶體控制器與記憶體儲存裝置
US8938624B2 (en) Encryption key destruction for secure data erasure
TWI425355B (zh) 資料存取方法、記憶體控制器與儲存系統
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
TWI475385B (zh) 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
TWI480733B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9176865B2 (en) Data writing method, memory controller, and memory storage device
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI592799B (zh) 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
CN106681932B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
TWI486766B (zh) 資料處理方法、記憶體控制器與記憶體儲存裝置
US9268688B2 (en) Data management method, memory controller and memory storage apparatus
US8255656B2 (en) Storage device, memory controller, and data protection method
TWI420308B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI451439B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI498738B (zh) 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置
TWI650639B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI486765B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI457755B (zh) 資料寫入方法、記憶體控制器與儲存裝置
TWI591640B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US8074046B2 (en) Semiconductor memory device and operation method thereof
TW201935232A (zh) 記憶體管理方法及使用所述方法的儲存控制器
TWI454908B (zh) 記憶體組態方法、記憶體控制器與記憶體儲存裝置