TWI459202B - 資料處理方法、記憶體控制器與記憶體儲存裝置 - Google Patents

資料處理方法、記憶體控制器與記憶體儲存裝置 Download PDF

Info

Publication number
TWI459202B
TWI459202B TW101145711A TW101145711A TWI459202B TW I459202 B TWI459202 B TW I459202B TW 101145711 A TW101145711 A TW 101145711A TW 101145711 A TW101145711 A TW 101145711A TW I459202 B TWI459202 B TW I459202B
Authority
TW
Taiwan
Prior art keywords
data
sub
application
parameter value
memory
Prior art date
Application number
TW101145711A
Other languages
English (en)
Other versions
TW201423399A (zh
Inventor
Hsu Chih Chiang
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 TW101145711A priority Critical patent/TWI459202B/zh
Priority to US13/845,040 priority patent/US9772937B2/en
Publication of TW201423399A publication Critical patent/TW201423399A/zh
Application granted granted Critical
Publication of TWI459202B publication Critical patent/TWI459202B/zh

Links

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

資料處理方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種資料處理方法,且特別是有關於一種用於具有可複寫式非揮發性記憶體模組與智慧卡晶片之記憶體儲存裝置的資料處理方法,與使用此方法的記憶體儲存裝置與記憶體控制器。
隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡操作系統、安全模組及記憶體之組件的積體電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存資料的功能外還能達到對其所儲存的資料加以保護的功能。使用全球行動通信系統(GSM)機制之蜂巢式電話中所使用的用戶識別模組(Subscriber Identification Module,SIM)卡為智慧卡的其中一個應用範例。一般來說,智慧卡本身受限於其積體電路的規範,因此儲存容量有限。
記憶卡是一種數據儲存設備,其一般是以NAND快閃記憶體作為儲存媒體。NAND快閃記憶體具有可寫入、可抹除、以及斷電後仍可保存數據的優點,此外,隨著製造技術的改良,NAND快閃記憶體具有體積小、存取速度快、與耗電量低等優點。
對於同時具有智慧卡與記憶卡的儲存裝置來說,在接收到來自主機系統的存取指令時,需先判別存取動作的對象是智慧卡或記憶卡。而由於智慧卡多半用以儲存與使用者資訊相關的重要資料或是數位現金,因此如何確保存取智慧卡的安全性並提升可靠度,便是本領域技術人員所致力的目標。
有鑑於此,本發明提供一種記憶體儲存裝置,記憶體控制器與資料處理方法,能正確處理主機系統欲寫入智慧卡晶片的資料。
本發明提出一種資料處理方法,用於具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置,其中可複寫式非揮發性記憶體模組具有數個實體抹除單元,且各實體抹除單元具有數個實體程式化單元,此方法包括從主機系統接收寫入指令,此寫入指令所對應的寫入資料包括多個子資料,且各子資料被安裝於主機系統的應用程式個別附加一資料索引標記。上述寫入資料是對應應用程式欲傳送至記憶體儲存裝置的原始資料,而記憶體儲存裝置與應用程式預先協定有第一規則,第一規則包括預設函數、初始參數值選擇方式及參數值新增方式。而應用程式根據初始參數值選擇方式選定一初始參數值,並將初始參數值代入預設函數以獲得附加至原始資料中的第一筆子資料的資料索引標記,並依據參數值新增方式、第一筆子資 料的資料索引標記與上述子資料在原始資料中的順序,決定個別附加至其餘子資料的資料索引標記。此方法還包括根據與應用程式預先協定的第一規則以及各子資料的資料索引標記,重新排序所有的子資料,並且將重新排序後的子資料傳送至智慧卡晶片。
在一範例實施例中,其中主機系統安裝有作業系統,而應用程式係透過作業系統將原始資料傳送至記憶體儲存裝置。應用程式依據主機系統之基本存取單位的容量將原始資料分為數個子資料,且上述子資料在寫入資料中的順序相同或相異於上述子資料在原始資料中的順序。
在一範例實施例中,其中根據與應用程式預先協定的第一規則以及各子資料的資料索引標記來重新排序子資料的步驟包括根據初始參數值選擇方式確定應用程式所選定的初始參數值,將初始參數值代入預設函數以獲得函數值,並依照函數值、參數值新增方式與各子資料的資料索引標記,將所有子資料重新排列為與原始資料相符。
在一範例實施例中,其中可複寫式非揮發性記憶體模組具有映射部分的實體抹除單元的數個邏輯抹除單元,上述邏輯抹除單元被至少格式化成檔案配置表區、根目錄區與檔案區,且檔案區儲存有多個通訊檔案。應用程式根據與記憶體儲存裝置預先協定的第二規則,選擇其中一個通訊檔案,並將所選擇之通訊檔案對應的檔案識別標記附加至其中之一子資料。
在一範例實施例中,其中在從主機系統接收寫入指令 的步驟之後,此方法更包括根據第二規則從所有的通訊檔案中確定出應用程式所選擇的通訊檔案,並且當附加於寫入資料的檔案識別標記對應所確定出的通訊檔案時,才執行根據與主機系統預先協定的第一規則以及各子資料的資料索引標記去重新排序子資料的步驟。
在一範例實施例中,其中在將重新排序後的子資料傳送至智慧卡晶片的步驟之後,此方法更包括透過根據第二規則所確定出的通訊檔案傳送回應訊息至主機系統,其中回應訊息包括所確定出的通訊檔案對應的檔案識別標記。
從另一觀點來看,本發明提出一種記憶體控制器,用於具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置中,此記憶體控制器包括主機介面、記憶體介面,以及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有數個實體抹除單元,且各實體抹除單元具有數個實體程式化單元。記憶體管理電路耦接主機介面與記憶體介面,記憶體管理電路用以從主機系統接收寫入指令,其中寫入指令所對應的寫入資料包括多個子資料,且各子資料被安裝於主機系統的應用程式個別附加一資料索引標記。上述寫入資料是對應應用程式欲傳送至記憶體儲存裝置的原始資料,而記憶體儲存裝置與應用程式預先協定有第一規則,第一規則包括預設函數、初始參數值選擇方式及參數值新增方式。而應用程式根據初始參數值選擇方式選定一初始參數值,並將初始參 數值代入預設函數以獲得附加至原始資料中的第一筆子資料的資料索引標記,並依據參數值新增方式、第一筆子資料的資料索引標記與上述子資料在原始資料中的順序,決定個別附加至其餘子資料的資料索引標記。記憶體管理電路更用以根據與應用程式預先協定的第一規則以及各子資料的資料索引標記來重新排序子資料。記憶體管理電路更用以將重新排序後的子資料傳送至智慧卡晶片。
在一範例實施例中,其中寫主機系統安裝有作業系統,而應用程式係透過作業系統將原始資料傳送至記憶體儲存裝置。應用程式依據主機系統之基本存取單位的容量將原始資料分為數個子資料,且上述子資料在寫入資料中的順序相同或相異於上述子資料在原始資料中的順序。
在一範例實施例中,其中記憶體管理電路在根據與應用程式預先協定的第一規則以及各子資料的資料索引標記而重新排序子資料時,係根據初始參數值選擇方式確定應用程式所選定的初始參數值,並將初始參數值代入預設函數以獲得一函數值,以及依照函數值、參數值新增方式與各子資料的資料索引標記,將所有子資料重新排列為與原始資料相符。
在一範例實施例中,其中記憶體管理電路配置多個邏輯抹除單元以映射部分的實體抹除單元,且記憶體管理電路將上述邏輯抹除單元至少格式化成檔案配置表區、根目錄區與檔案區,且儲存多個通訊檔案至檔案區。應用程式根據與記憶體儲存裝置預先協定的第二規則,選擇其中之 一通訊檔案,並將所選擇之通訊檔案對應的檔案識別標記附加於其中之一子資料。
在一範例實施例中,其中記憶體管理電路更用以在從主機系統接收寫入指令之後,根據第二規則從所有的通訊檔案中確定出應用程式所選擇的通訊檔案,並且當附加於寫入資料的檔案識別標記對應所確定出的通訊檔案時,記憶體管理電路才根據與主機系統預先協定的第一規則以及各子資料的資料索引標記,重新排序子資料。
在一範例實施例中,其中記憶體管理電路在將重新排序後的子資料傳送至智慧卡晶片之後,更用以透過根據第二規則所確定出的通訊檔案傳送回應訊息至主機系統,其中回應訊息包括所確定出的通訊檔案對應的檔案識別標記。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組、智慧卡晶片,以及記憶體控制器。其中,連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各實體抹除單元具有多個實體程式化單元。記憶體控制器耦接至連接器、可複寫式非揮發性記憶體模組與智慧卡晶片。記憶體控制器用以從主機系統接收寫入指令,其中寫入指令所對應的寫入資料包括多個子資料,且各子資料被安裝於主機系統的應用程式個別附加一資料索引標記。上述寫入資料是對應應用程式欲傳送至記憶體儲存裝置的原始資料,而記憶體儲存裝置與應用程式預先協定有第一規 則,第一規則包括預設函數、初始參數值選擇方式及參數值新增方式。而應用程式根據初始參數值選擇方式選定一初始參數值,並將初始參數值代入預設函數以獲得附加至原始資料中的第一筆子資料的資料索引標記,並依據參數值新增方式、第一筆子資料的資料索引標記與上述子資料在原始資料中的順序,決定個別附加至其餘子資料的資料索引標記。記憶體控制器更用以根據與應用程式預先協定的第一規則以及各子資料的資料索引標記來重新排序子資料。記憶體控制器更用以將重新排序後的子資料傳送至智慧卡晶片。
在一範例實施例中,其中主機系統安裝有作業系統,而應用程式係透過作業系統將原始資料傳送至記憶體儲存裝置。應用程式依據主機系統之基本存取單位的容量將原始資料分為數個子資料,且上述子資料在寫入資料中的順序相同或相異於上述子資料在原始資料中的順序。
在一範例實施例中,其中主機系統安裝有作業系統,而應用程式係透過作業系統將原始資料傳送至記憶體儲存裝置。記憶體控制器在根據與主機系統預先協定的第一規則以及各子資料的資料索引標記來重新排序子資料時,係根據初始參數值選擇方式確定應用程式所選定的初始參數值、將初始參數值代入預設函數以獲得一函數值,並依照函數值、參數值新增方式與各子資料的資料索引標記,將上述子資料重新排列為與原始資料相符。
在一範例實施例中,其中記憶體控制器配置多個邏輯 抹除單元以映射部分的實體抹除單元,且記憶體控制器將上述邏輯抹除單元至少格式化成檔案配置表區、根目錄區與檔案區,且儲存多個通訊檔案至檔案區。應用程式根據與記憶體儲存裝置預先協定的第二規則,選擇其中之一通訊檔案,並將所選擇之通訊檔案對應的檔案識別標記附加於其中之一子資料。
在一範例實施例中,其中記憶體控制器更用以在從主機系統接收寫入指令之後,根據第二規則從所有的通訊檔案中確定出應用程式所選擇的通訊檔案,並且當附加於寫入資料的檔案識別標記對應所確定出之通訊檔案時,記憶體控制器才根據與主機系統預先協定的第一規則以及各子資料的資料索引標記,重新排序子資料。
在一範例實施例中,其中記憶體控制器在將重新排序後的子資料傳送至智慧卡晶片之後,更用以透過根據第二規則所確定出之通訊檔案傳送回應訊息至主機系統,其中回應訊息包括所確定出之通訊檔案對應的檔案識別標記。
基於上述,本發明在接收安裝於主機系統之應用程式所傳送的寫入資料時,根據附加至寫入資料的資料索引標記將其重新排列後再傳送至智慧卡晶片。並且,主機系統與記憶體儲存裝置會依據預先協定的規則選用通訊檔案來傳送資料。據此,在確保智慧卡晶片能收到正確資料的同時,降低惡意應用程式干擾資料傳送的情況產生。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據本發明一範例實施例所繪示之使用記憶體儲存裝置之主機系統的示意圖。
主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108以及資料傳輸介面1115。微處理器1102會執行安裝於隨機存取記憶體1104中的作業系統1110與應用程式1120,以使主機系統1000根據使用者之操作而提供對應的功能。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1115與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104以及輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100,或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的記憶卡1214、 隨身碟1212、或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是手機、數位相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,記憶體儲存裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示之記憶體儲存裝置100的方塊圖。請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104、可複寫式非揮發性記憶體模組106與智慧卡晶片108。
連接器102耦接至記憶體控制器104,並且用以耦接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為安全數位(Secure Digital,SD)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是序列先進附件(Serial Advanced Technology Attachment,SATA)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、通用序列匯流排(Universal Serial Bus,USB)介面、超高速一代(Ultra High Speed-I,UHS-I)介面、超高速二代(Ultra High Speed-II,UHS-II)介面、記憶棒(Memory Stick,MS)介面、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面、通用快閃記憶體(Universal Flash Storage,UFS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之資料處理方法來處理主機系統1000欲寫入智慧卡晶片108的資料。本範例實施例之資料處理方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體模組106耦接至記憶體控制器104。可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,但本發明不限於此,可複寫式非揮發性記憶體模組106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶 體模組、其他快閃記憶體模組或任何具有相同特性的記憶體模組。進一步來說,可複寫式非揮發性記憶體模組106包括多個實體抹除單元,而每一實體抹除單元具有多個實體程式化單元。屬於同一個實體抹除單元的實體程式化單元可被獨立地寫入且被同時地抹除。也就是說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。在本範例實施例中,實體抹除單元為實體區塊,而實體程式化單元為實體頁面,但本發明不以此為限。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、記憶體管理電路1043,以及記憶體介面1045。
主機系統介面1041耦接至記憶體管理電路1043,並透過連接器102以耦接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為SD介面,而在其他範例實施例中,主機系統介面1041也可以是SATA介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、USB介面、UHS-I介面、UHS-II介面、eMMC介面、UFS介面、MS介面、CF介面、IDE介面或符合其他介面 標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100被運轉(power on)時,上述控制指令會被執行以實現本範例實施例之資料處理方法。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例之資料處理方法。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本範例實施例之資料處理方法。
此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。舉例來說,記憶體管理電路1043包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106中的實體抹除單元。記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中。記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料。記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除。而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
記憶體介面1045耦接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體模組106相互耦接。據此,記憶體控制器104可對可複寫式非揮發性記憶體模組106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明之另一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3002。錯誤檢查與校正電路3002耦接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3002會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體模組106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3002會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序,以識別該筆資料是否存在錯誤位元。
在本發明之另一範例實施例中,記憶體控制器104還包括緩衝記憶體3004。緩衝記憶體3004可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體3004耦接至記憶體管理電路1043,用以暫存來自於主機系統1000的指令與資料,或暫存來自於可複寫式非揮發性記憶體模組106的資料。
在本發明又一範例實施例中,記憶體控制器104還包括電源管理電路3006。電源管理電路3006耦接至記憶體 管理電路1043,用以控制記憶體儲存裝置100的電源。
圖4、5是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組106的示意圖。
在以下描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組106之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組106的實體抹除單元進行上述操作。
請參照圖4,本範例實施例之可複寫式非揮發性記憶體模組106包括實體抹除單元410(0)~410(N)。記憶體控制器104中的記憶體管理電路1043會將實體抹除單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體抹除單元數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體模組106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。舉例來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以寫入新資料的實體抹除單元。換句話說,閒置區504的實體抹除單元為空或可使用的實體抹除單元(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入 之資料時,記憶體管理電路1043會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。或者,當需要對一邏輯抹除單元執行資料合併程序時,記憶體管理電路1043會從閒置區504提取實體抹除單元並將資料寫入其中,以替換原先映射此邏輯抹除單元的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體模組106的製造商與型號、可複寫式非揮發性記憶體模組106的實體抹除單元數、每一實體抹除單元的實體程式化單元數等等。
邏輯上屬於取代區508的實體抹除單元是用以在資料區502、閒置區504或系統區506中的實體抹除單元損毀時,取代損壞的實體抹除單元。具體而言,在記憶體儲存裝置100運作期間,倘若取代區508中仍存有正常之實體抹除單元且資料區502的實體抹除單元損壞時,記憶體管理電路1043會從取代區508中提取正常的實體抹除單元來更換資料區502中損壞的實體抹除單元。倘若取代區508中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體管理電路1043會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
也因此,在記憶體儲存裝置100的運作過程中,資料區502、閒置區504、系統區506與取代區508的實體抹除單元會動態地變動。例如,用以輪替儲存資料的實體抹除 單元會變動地屬於資料區502或閒置區504。
請參照圖5,為了讓主機系統1000能對可複寫式非揮發性記憶體模組106進行存取,記憶體管理電路1043(或記憶體控制器104)會配置數個邏輯抹除單元610(0)~610(L)以映射資料區502中的實體抹除單元410(0)~410(F-1)。其中,每一邏輯抹除單元包括多個邏輯程式化單元,而邏輯抹除單元610(0)~610(L)中的邏輯程式化單元會映射實體抹除單元410(0)~410(F-1)中的實體程式化單元。
詳言之,記憶體管理電路1043(或記憶體控制器104)將所配置的邏輯抹除單元610(0)~610(L)提供給主機系統1000,並維護邏輯位址-實體位址映射表以記錄邏輯抹除單元610(0)~610(L)與實體抹除單元410(0)~410(F-1)的映射關係。因此,當主機系統1000欲存取一邏輯位址時,記憶體管理電路1043(或記憶體控制器104)會確認此邏輯位址所對應的邏輯抹除單元與邏輯程式化單元,再透過邏輯位址-實體位址映射表找到其所映射的實體程式化單元來進行存取。
在本範例實施例中,主機系統1000的作業系統1110使用檔案系統將邏輯抹除單元610(0)~610(L)格式化成如圖6所示之一個分割區(partition)600,其中分割區600包括主引導磁區602、檔案配置表區604、根目錄區606與檔案區608。
屬於主引導磁區602的邏輯程式化單元是用以儲存記 憶體儲存裝置100的可儲存空間的系統資訊。
屬於檔案配置表區604的邏輯程式化單元是用以儲存檔案配置表。檔案配置表是用以記錄儲存檔案之邏輯位址所對應的叢集。例如,檔案配置表區中會儲存兩個檔案配置表,其中一個檔案配置表為正常存取所使用,而另一個檔案配置表為備份檔案配置表。
屬於根目錄區606的邏輯程式化單元是用以儲存檔案描述區塊(File Description Block,FDB),其用以記錄目前儲存於記憶體儲存裝置100中之檔案與目錄的屬性資訊。特別是,檔案描述區塊會記錄用以儲存此些檔案的起始儲存位址(即,起始叢集)。
屬於檔案區608的邏輯程式化單元會被劃分為多個叢集並且用以實際地儲存檔案的內容。詳言之,磁碟儲存最小單位為扇區,每一個扇區包含了512位元組(byte)的資訊內容。然而,使用扇區當單位來儲存時,主機系統1000的效率會很差。一般來說,主機系統1000的作業系統1110不會以一個扇區當作存取檔案的單位,而是以叢集做為一基本存取單位。每一個叢集是架構在扇區的2次方倍數上。假定連續的8個扇區構成一個叢集,則此叢集的大小就為4096位元組。基此,在作業系統1110在存取資料時會以8個扇區連續讀取而提升了相對效率。
請參照回圖2,在本範例實施例中,記憶體儲存裝置100還包括智慧卡晶片108。智慧卡晶片108是透過介面108a耦接至記憶體控制器104,其中介面108a是專門用以 與智慧卡晶片108進行通訊的介面。
智慧卡晶片108具有微處理器、安全模組、唯讀記憶體(Read Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、電子抹除式可編程唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)、震盪器等元件。微處理器用以控制智慧卡晶片108的整體運作。安全模組用以對儲存至智慧卡晶片108中的資料進行加解密。震盪器用以產生智慧卡晶片108運作時所需之時脈訊號。隨機存取記憶體用以暫存運算的資料或韌體程式。電子抹除式可編程唯讀記憶體用以儲存使用者資料。唯讀記憶體用以儲存智慧卡晶片108的韌體程式。具體來說,當智慧卡晶片108運作時,智慧卡晶片108的微處理器會執行唯讀記憶體中的韌體程式來執行相關運作。
特別是,智慧卡晶片108的安全模組會執行一安全機制以防止欲竊取儲存於智慧卡晶片108中所儲存之資料的攻擊。例如,此攻擊包括時間攻擊(timing attack)、單一電力分析攻擊(single-power-analysis attack)或差異電力分析攻擊(differential-power-analysis)。此外,智慧卡晶片108所執行的安全機制是符合聯邦資訊處理標準(Federal Information Processing Standards,FIPS)140-2的第三等級或更高等級或者符合EMV EL(American Express,JCB,MasterCard and Visa Evaluation Level)的第三等級或更高等級。也就是說,智慧卡晶片108是通過FIPS 140-2之第四級以上的認證或者通過EMV EL之第四級以上的認證。在此,FIPS是美國聯邦政府制定給所有軍事機構除外的政府機構及政府的承包商所使用的公開標準,其中FIPS 140-2制定了關於資料安全的等級。此外,EMV是國際金融業界對於智慧卡與可使用晶片卡的銷售點(point-of-sale,POS)終端機,以及銀行機構所廣泛設置的自動櫃員機等所制定的專業交易與認證的標準規範。此規範是針對晶片***與現金卡的支付款系統(Payment System)的相關軟硬體所設置的標準。在本範例實施例中,藉由智慧卡晶片108的運作,記憶體儲存裝置100可提供具有身份認證的服務,例如,小額付款服務、票證服務等。
值得一提的是,智慧卡晶片108是透過記憶體儲存裝置100的連接器102接收來自於主機系統1000的指令與資料,或者傳送資料至主機系統1000,而非直接透過智慧卡介面(即,介面108a)與主機系統1000通訊。基此,在本範例實施例中,應用程式1120會被安裝在主機系統1000中,並且使用特定之通訊檔案來傳送指令資料單元給智慧卡晶片108,指令資料單元例如是指令-應用程式協定資料單元(Command-Application Protocol Data Unit,C-APDU)以及接收智慧卡晶片108的回應資料單元,例如回應-應用程式協定資料單元(Response-Application Protocol Data Unit,R-APDU)。
進一步,記憶體控制器104會在記憶體儲存裝置100產生一個或多個通訊檔案,並且將用以儲存此一個或多個 通訊檔案的邏輯位址的資訊傳送給應用程式1120。例如,當應用程式1120下達在記憶體儲存裝置100中儲存一個通訊檔案的指令時,作業系統1110會根據記憶體儲存裝置100的檔案系統(未繪示)使用部分的邏輯位址來寫入此通訊檔案。在此,用以儲存此通訊檔案的邏輯位址的被稱為特定邏輯位址。之後,針對智慧卡晶片108的操作會藉由應用程式1120對通訊檔案進行存取來完成。例如,應用程式1120會透過對通訊檔案的寫入指令將C-APDU傳送至記憶體儲存裝置100並且透過對通訊檔案的讀取指令從記憶體儲存裝置100中讀取R-APDU。值得一提的是,在其他作業系統中,應用程式1120亦可直接對用以儲存通訊檔案的特定邏輯位址進行存取,來執行對智慧卡晶片108的操作。
在本範例實施例中,主機系統1000與記憶體儲存裝置100彼此預先協定好一第一規則,並據此執行對智慧卡晶片108的寫入操作。第一規則包括預設函數、初始參數值選擇方式及參數值新增方式。其中,初始參數值選擇方式是關於如何選擇初始參數值,例如當初始參數值選擇方式為日期時,應用程式1120將以當天的日期作為初始參數值。參數值新增方式則是關於用以先後產生兩筆資料索引標記之兩個參數值之間的遞增或遞減規律,舉例來說,假設參數值新增方式為遞增且遞增幅度為1,若用以產生第一筆資料索引標記的初始參數值為1,則用以產生第二筆資料索引標記的參數值則為2。
當應用程式1120欲將一原始資料寫入智慧卡晶片108,應用程式1120依據最小基本存取單位的容量將原始資料分為多個子資料,例如一個扇區的大小(512位元組),但本發明並不以此為限。並且,應用程式1120根據初始參數值選擇方式選定一初始參數值,再將初始參數值代入預設函數以獲得第一資料索引標記。此第一資料索引標記會附加至由原始資料所劃分出的第一筆子資料。接下來,應用程式1120依據參數值新增方式、第一筆子資料的資料索引標記與所有子資料在原始資料中的順序,決定個別附加至其餘子資料的資料索引標記。
由於應用程式1120欲寫入的原始資料必須經由作業系統1110傳送至記憶體儲存裝置100,然而作業系統1110為了加快整體的存取速度,會對存取檔案區608之叢集的順序進行最佳化處理。基此,作業系統1110在進行最佳化處理後去存取各子資料的先後順序可能相同或相異於這些子資料在原始資料中的順序。也就是說,即便作業系統1110是因應應用程式1120的寫入需求而對記憶體儲存裝置100發出寫入指令,但記憶體管理電路1043(或記憶體控制器104)所接收到的寫入資料與應用程式1120實際欲寫入的原始資料可能有所不同。
然而在本範例實施例中,由於應用程式1120已在每筆子資料中都個別附加了表示其在原始資料中的順序的資料索引標記,因此記憶體管理電路1043(或記憶體控制器104)在接收到寫入資料後,會根據第一規則以及各子資料 的資料索引標記來重新排序所有的子資料,使其恢復至與其在原始資料中相同的順序,並且將重新排序後的上述子資料傳送至智慧卡晶片108。具體來說,記憶體管理電路1043(或記憶體控制器104)根據初始參數值選擇方式確定應用程式1120所選定的初始參數值,接著將初始參數值代入預設函數以獲得一函數值,再依照函數值、參數值新增方式與各子資料的資料索引標記便能將所有子資料重新排列為符合其在原始資料中的順序。
舉例來說,假設預設函數為下列式(1):F(X)=X2 (1)
其中,X為參數值。並假設記憶體管理電路1043(或記憶體控制器104)根據初始參數值選擇方式確定應用程式1120所選定的初始參數值為3,且參數值新增方式為遞增且遞增幅度為1。若接收到一子資料Y的資料索引標記為9,記憶體管理電路1043(或記憶體控制器104)在對應式(1)而對9進行反平方運算後得到數值3後,即可判斷子資料Y是原始資料中的第一筆子資料。且基於參數值新增方式可判定用以產生第二筆子資料之資料索引標記的參數為4,因此只要在所接收到的所有子資料中搜尋所對應之資料索引標記為4的平方(即,16)的子資料,即找出在原始資料中的第二筆子資料。以此類推便可獲得所有子資料原本在原始資料中的順序,據此能重新排列子資料。
在其他範例實施例中,預設函數可為下列式(2):F(X)=X3 (2)
其中,X為參數值,但必須說明的是,式(1)與式(2)僅是為了說明舉出的範例,本發明並不以此為限。
圖7是根據本發明之一範例實施例所繪示之作業系統1110下達之寫入指令的示意圖。請參閱圖7,欄位A用以記錄欲寫入之邏輯位址。欄位T用以記錄一特殊標記,表示此筆寫入資料是要寫入至智慧卡晶片108。欄位D用以記錄欲寫入的資料內容,其中,D1 至Dm 分別用以記錄各筆子資料的內容,而I1 至Im 則分別用以記錄對應之資料索引標記的內容,且m為正整數。欄位P則用以記錄與避免寫入錯誤相關之偵測機制的資訊。
以下將以圖8A至圖8D來說明當應用程式1120欲寫入原始資料時,主機系統1000與記憶體儲存裝置100如何依據第一規則來正確地完成對智慧卡晶片108的寫入操作。
請參閱圖8A,假設應用程式1120依照主機系統1000之基本存取單位的容量將原始資料依序分為子資料SD1 至SD4 。針對第一筆子資料SD1 ,應用程式1120根據初始參數值選擇方式選定初始參數值,並將初始參數值代入預設函數以獲得附加至第一筆子資料SD1 的資料索引標記P1 。假設初始參數值為數值1且預設函數為上述式(1),則資料索引標記P1 為數值1。針對其餘三筆子資料SD2 至SD4 ,應用程式1120依據參數值新增方式、先前產生之第一筆子資料SD1 的資料索引標記P1 來產生三個資料索引標記P2 至P4 。延續上述範例,若參數值新增方式為遞增且遞增幅 度為1,那麼用以產生子資料SD2 至SD4 之資料索引標記P2 至P4 的三個參數值分別為數值2、3、4。將上述參數值代入式(1)便可得到分別附加至子資料SD2 至SD4 的資料索引標記P2 至P4 則為數值4、9、16。但必須強調的是,上述預設函數、初始參數值選擇方式與參數值新增方式僅是為了說明而舉出的範例,本發明並不以此為限。
在本範例實施例中,作業系統1110為求提升整體存取速度而並未依照子資料SD1 至SD4 在原始資料中的順序來進行存取,且在查詢檔案系統的過程中需要額外存取某些輔助資料,如圖8B所示,假設作業系統1110實際存取的順序為子資料SD4 、輔助資料OSX1 、輔助資料OSX2 、子資料SD1 、子資料SD2 ,以及子資料SD3 ,那麼記憶體管理電路1043(或記憶體控制器104)所接收到之寫入指令對應的寫入資料則會包括以圖8B所示順序出現的子資料及輔助資料。
記憶體管理電路1043(或記憶體控制器104)收到寫入指令後並不會直接依照各子資料在圖8B中的順序來將其傳送至智慧卡晶片108,而會根據第一規則確定出應用程式1120在此次寫入操作中會附加至第一筆子資料的資料索引標記(即,資料索引標記P1 ),並據此找出何者為第一筆子資料(即,子資料SD1 )。並且,記憶體管理電路1043(或記憶體控制器104)依照資料索引標記P1 與參數值新增方式來確定會附加至子資料SD2 至SD4 的資料索引標記P2 至P4 ,而只要根據參數值新增方式即可判讀資料索引 標記P1 至P4 的順序,便能據此將子資料SD1 至SD4 的順序重新排列為符合其在原始資料中的順序。除此之外,由於記憶體管理電路1043(或記憶體控制器104)在接收到作業系統1110發出的寫入指令,並在欄位T識別出特殊標記之後,係先假定欄位D中的所有資料都是要寫入智慧卡晶片108,然而當記憶體管理電路1043(或記憶體控制器104)察看出輔助資料OSX1 、OSX2 並沒有被附加任何資料索引標記,則會判定輔助資料OSX1 、OSX2 不屬於應用程式1120欲寫入的原始資料。基此,記憶體管理電路1043(或記憶體控制器104)在屏除輔助資料OSX1 、OSX2 並重新排列子資料SD1 至SD4 後,會將如圖8C所示的資料內容傳送至智慧卡晶片108。
在另一範例實施例中,如圖8D所示,假設作業系統1110並未更動存取各子資料的順序,然而主機系統1000存在惡意應用程式使得作業系統1110在寫入子資料SD2與SD3之間亦要寫入兩筆惡意資料X1 、X2 。由於惡意資料X1 、X2 也缺乏應用程式1120附加的資料索引標記,因此記憶體管理電路1043(或記憶體控制器104)在準備要傳送至智慧卡晶片108的資料時,亦會將惡意資料X1 、X2 剔除,如此可避免智慧卡晶片108的寫入操作受到惡意程式干擾。
在本發明的另一範例實施例中,主機系統1000與記憶體儲存裝置100之間除了存在上述第一規則之外,還有彼此預先協定好的第二規則,而依據第一規則與第二規則 來對智慧卡晶片108進行寫入操作可以更進一步降低被惡意程式干擾的機率。
詳言之,記錄在檔案區608的所有通訊檔案是主機系統1000與智慧卡晶片108之間的溝通介面,每當應用程式1120需要將資料寫入智慧卡晶片108時,必須選擇使用某一通訊檔案來傳送資料,而第二規則便是關於如何從記錄在檔案區608的所有通訊檔案中選擇此次要使用的通訊檔案。在本範例實施例中,應用程式1120會將所選擇之通訊檔案所對應的檔案識別標記附加在其中一筆子資料當中。舉例來說,應用程式1120是將檔案識別標記附加在最後一筆子資料中。
當記憶體管理電路1043(或記憶體控制器104)接收到寫入指令之後,首先根據第二規則從所有的通訊檔案中確定出應用程式1120在此次資料寫入操作中所選用的通訊檔案(以下稱為目標通訊檔案),接著查看在寫入資料所包括的所有子資料中,是否存在一子資料其所附加的檔案識別標記係對應於目標通訊檔案。若是,記憶體管理電路1043(或記憶體控制器104)才根據第一規則以及各子資料的資料索引標記去重新排序子資料。
也就是說,唯有當此次要寫入資料所選用的通訊檔案符合主機系統1000與記憶體儲存裝置100事先協議好的第二規則,記憶體管理電路1043(或記憶體控制器104)才進行子資料的重組,進而將整理過的子資料傳送至智慧卡晶片108。如此一來,即便惡意應用程式在應用程式1120要 寫入資料的期間發出干擾的惡意資料或欲透過隨機存取通訊檔案來打亂子資料的順序,則因惡意應用程式缺乏第二規則的資訊,故選用與應用程式1120相同之通訊檔案的機率不高,基此能降低干擾發生的機率。應用程式1120在下一次需要將資料寫入智慧卡晶片108時,會依照第二規則選用另一個通訊檔案。記憶體管理電路1043(或記憶體控制器104)則依前述方式確認接收到的寫入資料是否由應用程式1120發出,據此降低惡意應用程式造成的干擾影響。
圖9A是由記憶體管理電路1043(或記憶體控制器104)下達至智慧卡晶片108之寫入指令的示意圖。請參閱圖9A,欄位T用以記錄特殊標記。欄位L記錄欲寫入之資料的長度。欄位S記錄如第一筆子資料之資料索引標記、預設函數等與資料安全相關的資訊。欄位D用以記錄欲寫入之資料的內容(即,重新排序後的子資料)。而欄位F則用以記錄應用程式1120在此次資料寫入操作中所選用之通訊檔案的檔案識別標記。
記憶體管理電路1043(或記憶體控制器104)在利用如圖9A之寫入指令將重新排序後的子資料傳送至智慧卡晶片108之後,根據智慧卡晶片108的運作結果並透過根據第二規則所確定出的通訊檔案將回應訊息傳送至主機系統1000,回應訊息如圖9B所示,其中欄位T用以記錄特殊標記。欄位L記錄先前所寫入之資料的長度。欄位D用以記錄智慧卡晶片108根據先前寫入之資料的內容產生回應訊息的內容。而欄位F則用以記錄應用程式1120在此次 資料寫入操作中所選用之通訊檔案的檔案識別標記。
圖10是根據本發明之一範例實施例所繪示之資料處理方法的流程圖。
請參閱圖10,在步驟S1010中,記憶體管理電路1043(或記憶體控制器104)接收來自主機系統1000的寫入指令,此寫入指令所對應的寫入資料包括多個子資料,且各子資料被安裝於主機系統1000的應用程式1120個別附加一資料索引標記。上述寫入資料是對應應用程式1120欲傳送至記憶體儲存裝置100的原始資料,而記憶體儲存裝置100與應用程式1120預先協定有第一規則,第一規則包括預設函數、初始參數值選擇方式及參數值新增方式。應用程式1120係根據初始參數值選擇方式選定一初始參數值,並將初始參數值代入預設函數以獲得附加至原始資料中的第一筆子資料的資料索引標記,並依據參數值新增方式、第一筆子資料的資料索引標記與上述子資料在原始資料中的順序,決定個別附加至其餘子資料的資料索引標記。
接著在步驟S1020中,記憶體管理電路1043(或記憶體控制器104)根據與主機系統1000預先協定好的第二規則,從記錄在檔案區608的所有的通訊檔案中確定出應用程式1120所選擇的通訊檔案。
如步驟S1030所示,記憶體管理電路1043(或記憶體控制器104)判斷附加於寫入資料的檔案識別標記是否對應所確定出的通訊檔案。
若否,則結束本範例實施例所繪示之資料處理方法的流程。若是,則如步驟S1040所示,記憶體管理電路1043(或記憶體控制器104)根據與主機系統1000預先協定好的第一規則以及各子資料的資料索引標記,重新排序所有的子資料。
在步驟S1050中,記憶體管理電路1043(或記憶體控制器104)將重新排序後的子資料傳送至智慧卡晶片108。
最後如步驟S1060所示,記憶體管理電路1043(或記憶體控制器104)透過根據第二規則所確定出之通訊檔案將回應訊息傳送至主機系統1000。
綜上所述,本發明所述之資料處理方法、記憶體控制器與記憶體儲存裝置可確保對智慧卡晶片進行寫入操作的正確性,並可降低惡意應用程式在寫入操作的期間做出干擾的機率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1110‧‧‧作業系統
1120‧‧‧應用程式
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1115‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
108‧‧‧智慧卡晶片
1041‧‧‧主機系統介面
1043‧‧‧記憶體管理電路
1045‧‧‧記憶體介面
3002‧‧‧錯誤檢查與校正電路
3004‧‧‧緩衝記憶體
3006‧‧‧電源管理電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
610(0)~610(L)‧‧‧邏輯抹除單元
600‧‧‧分割區
602‧‧‧主引導磁區
604‧‧‧檔案配置表區
606‧‧‧根目錄區
608‧‧‧檔案區
A、T、D、D1 、Dm 、I1 、Im 、P、S、L、F‧‧‧欄位
SD1 、SD2 、SD3 、SD4 ‧‧‧子資料
P1 、P2 、P3 、P4 ‧‧‧資料索引標記
OSX1 、OSX2 ‧‧‧輔助資料
X1 、X2 ‧‧‧惡意資料
S1010~S1060‧‧‧本發明之一實施例所述之資料處理方法之各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4、5是根據本發明之一範例實施例所繪示之管理複寫式非揮發性記憶體模組的示意圖。
圖6是根據本發明之一範例實施例所繪示之以檔案系統格式化可複寫式非揮發性記憶體模組之邏輯抹除單元的範例。
圖7是根據本發明之一範例實施例所繪示之作業系統下達之寫入指令的示意圖。
圖8A至8D是根據本發明之一範例實施例所繪示之資料處理的示意圖。
圖9A是根據本發明之一範例實施例所繪示之下達至智慧卡晶片之寫入指令的示意圖。
圖9B是根據本發明之一範例實施例所繪示之對應寫入指令之回應訊息的示意圖。
圖10是根據本發明之一範例實施例所繪示之資料處理方法的流程圖。
S1010~S1060‧‧‧本發明之一實施例所述之資料處理方法之各步驟

Claims (18)

  1. 一種資料處理方法,用於具有一可複寫式非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元,該方法包括:從一主機系統接收一寫入指令,該寫入指令所對應的一寫入資料包括多個子資料,且各該些子資料被安裝於該主機系統的一應用程式個別附加一資料索引標記,其中該寫入資料是對應該應用程式欲傳送至該記憶體儲存裝置的一原始資料,而該記憶體儲存裝置與該應用程式預先協定有一第一規則,該第一規則包括一預設函數、一初始參數值選擇方式及一參數值新增方式,且該應用程式根據該初始參數值選擇方式選定一初始參數值,並將該初始參數值代入該預設函數以獲得附加至該原始資料中的一第一筆子資料的該資料索引標記,並依據該參數值新增方式、該第一筆子資料的該資料索引標記與該些子資料在該原始資料中的順序,決定個別附加至該些子資料中的其餘子資料的該資料索引標記;根據與該應用程式預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料;以及將重新排序後的該些子資料傳送至該智慧卡晶片。
  2. 如申請專利範圍第1項所述之資料處理方法,其中該主機系統安裝有一作業系統,而該應用程式係透過該作 業系統將該原始資料傳送至該記憶體儲存裝置,該應用程式依據一基本存取單位的容量將該原始資料分為該些子資料,且該些子資料在該寫入資料中的順序相同或相異於該些子資料在該原始資料中的順序。
  3. 如申請專利範圍第1項所述之資料處理方法,其中根據與該應用程式預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料的步驟包括:根據該初始參數值選擇方式確定該應用程式所選定的該初始參數值;將該初始參數值代入該預設函數以獲得一函數值;以及依照該函數值、該參數值新增方式與各該些子資料的該資料索引標記,將該些子資料重新排列為與該原始資料相符。
  4. 如申請專利範圍第1項所述之資料處理方法,其中該可複寫式非揮發性記憶體模組具有映射部分的該些實體抹除單元的多個邏輯抹除單元,該些邏輯抹除單元被至少格式化成一檔案配置表區、一根目錄區與一檔案區,且該檔案區儲存有多個通訊檔案,該應用程式根據與該記憶體儲存裝置預先協定的一第二規則,選擇該些通訊檔案其中之一,並將所選擇之通訊檔案所對應的一檔案識別標記附加於該些子資料其中之一。
  5. 如申請專利範圍第4項所述之資料處理方法,其中在從該主機系統接收該寫入指令的步驟之後,更包括: 根據該第二規則從該些通訊檔案中確定出該應用程式所選擇的通訊檔案;以及當附加於該寫入資料的該檔案識別標記對應所確定出的通訊檔案時,才執行根據與該主機系統預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料的步驟。
  6. 如申請專利範圍第5項所述之資料處理方法,其中在將重新排序後的該些子資料傳送至該智慧卡晶片的步驟之後,更包括:透過根據該第二規則所確定出的通訊檔案傳送一回應訊息至該主機系統,其中該回應訊息包括所確定出的通訊檔案對應的該檔案識別標記。
  7. 一種記憶體控制器,用於具有一可複寫式非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置中,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元;以及一記憶體管理電路,耦接該主機介面與該記憶體介面,該記憶體管理電路用以從該主機系統接收一寫入指令,其中該寫入指令所對應的一寫入資料包括多個子資料,且各該些子資料被安裝於該主機系統的一應用程式個 別附加一資料索引標記,其中該寫入資料是對應該應用程式欲傳送至該記憶體儲存裝置的一原始資料,而該記憶體儲存裝置與該應用程式預先協定有一第一規則,該第一規則包括一預設函數、一初始參數值選擇方式及一參數值新增方式,且該應用程式根據該初始參數值選擇方式選定一初始參數值,並將該初始參數值代入該預設函數以獲得附加至該原始資料中的一第一筆子資料的該資料索引標記,並依據該參數值新增方式、該第一筆子資料的該資料索引標記與該些子資料在該原始資料中的順序,決定個別附加至該些子資料中的其餘子資料的該資料索引標記,該記憶體管理電路更用以根據與該應用程式預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料,該記憶體管理電路更用以將重新排序後的該些子資料傳送至該智慧卡晶片。
  8. 如申請專利範圍第7項所述之記憶體控制器,其中該主機系統安裝有一作業系統,而該應用程式係透過該作業系統將該原始資料傳送至該記憶體儲存裝置,該應用程式依據一基本存取單位的容量將該原始資料分為該些子資料,且該些子資料在該寫入資料中的順序相同或相異於該些子資料在該原始資料中的順序。
  9. 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路在根據與該應用程式預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些 子資料時,係根據該初始參數值選擇方式確定該應用程式所選定的該初始參數值、將該初始參數值代入該預設函數以獲得一函數值,並依照該函數值、該參數值新增方式與各該些子資料的該資料索引標記,將該些子資料重新排列為與該原始資料相符。
  10. 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路配置多個邏輯抹除單元以映射部分的該些實體抹除單元,且該記憶體管理電路將該些邏輯抹除單元至少格式化成一檔案配置表區、一根目錄區與一檔案區,且儲存多個通訊檔案至該檔案區,該應用程式根據與該記憶體儲存裝置預先協定的一第二規則,選擇該些通訊檔案其中之一,並將所選擇之通訊檔案所對應的一檔案識別標記附加於該些子資料其中之一。
  11. 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路更用以在從該主機系統接收該寫入指令之後,根據該第二規則從該些通訊檔案中確定出該應用程式所選擇的通訊檔案,並且當附加於該寫入資料的該檔案識別標記對應所確定出的通訊檔案時,才根據與該主機系統預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料。
  12. 如申請專利範圍第11項所述之記憶體控制器,其中該記憶體管理電路在將重新排序後的該些子資料傳送至該智慧卡晶片之後,更用以透過根據該第二規則所確定出 的通訊檔案傳送一回應訊息至該主機系統,其中該回應訊息包括所確定出的通訊檔案對應的該檔案識別標記。
  13. 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體抹除單元,且各該些實體抹除單元具有多個實體程式化單元;一智慧卡晶片;以及一記憶體控制器,耦接至該連接器、該可複寫式非揮發性記憶體模組與該智慧卡晶片,該記憶體控制器用以從該主機系統接收一寫入指令,其中該寫入指令所對應的一寫入資料包括多個子資料,且各該些子資料被安裝於該主機系統的一應用程式個別附加一資料索引標記,其中該寫入資料是對應該應用程式欲傳送至該記憶體儲存裝置的一原始資料,而該記憶體儲存裝置與該應用程式預先協定有一第一規則,該第一規則包括一預設函數、一初始參數值選擇方式及一參數值新增方式,且該應用程式根據該初始參數值選擇方式選定一初始參數值,並將該初始參數值代入該預設函數以獲得附加至該原始資料中的一第一筆子資料的該資料索引標記,並依據該參數值新增方式、該第一筆子資料的該資料索引標記與該些子資料在該原始資料中的順序,決定個別附加至該些子資料中的其餘子資料的該資料索引標記,該記憶體控制器更用以根據與該應用程式預先協定的該第一規則以及各該些子資料的該資料索引標記,重新 排序該些子資料,該記憶體控制器更用以將重新排序後的該些子資料傳送至該智慧卡晶片。
  14. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該主機系統安裝有一作業系統,而該應用程式係透過該作業系統將該原始資料傳送至該記憶體儲存裝置,該應用程式依據一基本存取單位的容量將該原始資料分為該些子資料,且該些子資料在該寫入資料中的順序相同或相異於該些子資料在該原始資料中的順序。
  15. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器在根據與該應用程式預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料時,係根據該初始參數值選擇方式確定該應用程式所選定的該初始參數值、將該初始參數值代入該預設函數以獲得一函數值,並依照該函數值、該參數值新增方式與各該些子資料的該資料索引標記,將該些子資料重新排列為與該原始資料相符。
  16. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器配置多個邏輯抹除單元以映射部分的該些實體抹除單元,且該記憶體控制器將該些邏輯抹除單元至少格式化成一檔案配置表區、一根目錄區與一檔案區,且儲存多個通訊檔案至該檔案區,該應用程式根據與該記憶體儲存裝置預先協定的一第二規則,選擇該些通訊檔案其中之一,並將所選擇之通 訊檔案所對應的一檔案識別標記附加於該些子資料其中之一。
  17. 如申請專利範圍第16項所述之記憶體儲存裝置,其中該記憶體控制器更用以在從該主機系統接收該寫入指令之後,根據該第二規則從該些通訊檔案中確定出該應用程式所選擇的通訊檔案,並且當附加於該寫入資料的該檔案識別標記對應所確定出的通訊檔案時,才根據與該主機系統預先協定的該第一規則以及各該些子資料的該資料索引標記,重新排序該些子資料。
  18. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器在將重新排序後的該些子資料傳送至該智慧卡晶片之後,更用以透過根據該第二規則所確定出的通訊檔案傳送一回應訊息至該主機系統,其中該回應訊息包括所確定出的通訊檔案對應的該檔案識別標記。
TW101145711A 2012-12-05 2012-12-05 資料處理方法、記憶體控制器與記憶體儲存裝置 TWI459202B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101145711A TWI459202B (zh) 2012-12-05 2012-12-05 資料處理方法、記憶體控制器與記憶體儲存裝置
US13/845,040 US9772937B2 (en) 2012-12-05 2013-03-17 Data processing method, memory controller and memory storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101145711A TWI459202B (zh) 2012-12-05 2012-12-05 資料處理方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201423399A TW201423399A (zh) 2014-06-16
TWI459202B true TWI459202B (zh) 2014-11-01

Family

ID=50826657

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101145711A TWI459202B (zh) 2012-12-05 2012-12-05 資料處理方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9772937B2 (zh)
TW (1) TWI459202B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI566182B (zh) * 2015-03-24 2017-01-11 群聯電子股份有限公司 儲存裝置管理方法與系統及其記憶體儲存裝置
CN106155564B (zh) * 2015-03-31 2019-08-27 群联电子股份有限公司 存储装置管理方法与***及其存储器存储装置
US11461010B2 (en) * 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
TWI658359B (zh) 2017-12-27 2019-05-01 群聯電子股份有限公司 資料寫入方法、有效資料識別方法及記憶體儲存裝置
CN110008146B (zh) * 2018-01-05 2022-11-08 群联电子股份有限公司 数据写入方法、有效数据识别方法及存储器存储装置
CN112711378B (zh) * 2020-12-22 2022-08-05 四川九洲电器集团有限责任公司 数据储存方法及读写设备
US11593030B2 (en) * 2021-05-11 2023-02-28 EMC IP Holding Company LLC Cross-stream transactions in a streaming data storage system
CN115509463B (zh) * 2022-11-15 2023-04-11 北京云成金融信息服务有限公司 一种基于数据中台的均衡化数据存储方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW582040B (en) * 1999-03-05 2004-04-01 Global Unichip Corp Embedded type memory self-tester
US20100332743A1 (en) * 2008-03-10 2010-12-30 Huawei Technologies Co., Ltd. System and method for writing cache data and system and method for reading cache data
US20110063887A1 (en) * 2009-09-17 2011-03-17 Kazushige Kanda Nonvolatile semiconductor memory device capable of testing diodes and manufacturing method thereof
TW201207621A (en) * 2010-08-12 2012-02-16 Phison Electronics Corp Method for dispatching and transmitting data stream, memory controller and memory storage apparatus

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055726B1 (en) * 2006-10-31 2011-11-08 Qlogic, Corporation Method and system for writing network data
TWI397821B (zh) * 2009-01-19 2013-06-01 Phison Electronics Corp 資料串傳送方法、系統及其控制器
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
TWI436372B (zh) * 2010-01-28 2014-05-01 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
TWI420305B (zh) * 2010-10-08 2013-12-21 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法
TWI489466B (zh) * 2011-06-15 2015-06-21 Phison Electronics Corp 記憶體抹除方法、記憶體控制器與記憶體儲存裝置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW582040B (en) * 1999-03-05 2004-04-01 Global Unichip Corp Embedded type memory self-tester
US20100332743A1 (en) * 2008-03-10 2010-12-30 Huawei Technologies Co., Ltd. System and method for writing cache data and system and method for reading cache data
US20110063887A1 (en) * 2009-09-17 2011-03-17 Kazushige Kanda Nonvolatile semiconductor memory device capable of testing diodes and manufacturing method thereof
TW201207621A (en) * 2010-08-12 2012-02-16 Phison Electronics Corp Method for dispatching and transmitting data stream, memory controller and memory storage apparatus

Also Published As

Publication number Publication date
US9772937B2 (en) 2017-09-26
TW201423399A (zh) 2014-06-16
US20140156913A1 (en) 2014-06-05

Similar Documents

Publication Publication Date Title
TWI459202B (zh) 資料處理方法、記憶體控制器與記憶體儲存裝置
TWI425355B (zh) 資料存取方法、記憶體控制器與儲存系統
US9043549B2 (en) Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
TWI408551B (zh) 快閃記憶體儲存系統及其控制器與資料處理方法
US8041883B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
TWI397821B (zh) 資料串傳送方法、系統及其控制器
TWI454912B (zh) 資料處理方法、記憶體控制器與記憶體儲存裝置
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
TWI451248B (zh) 資料保護方法、記憶體控制器與記憶體儲存裝置
US20120005557A1 (en) Virtual copy and virtual write of data in a storage device
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
TW201337554A (zh) 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
TWI489272B (zh) 保護資料的方法、記憶體控制器與記憶體儲存裝置
TW201706848A (zh) 有效資料合併方法、記憶體控制器與記憶體儲存裝置
US8812756B2 (en) Method of dispatching and transmitting data streams, memory controller and storage apparatus
TW202016937A (zh) 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
TWI521345B (zh) 回應讀取方法及資料傳輸系統
CN103218300B (zh) 数据处理方法、存储器控制器与存储器储存装置
US9817573B2 (en) Smart card management method, memory storage device and memory control circuit unit
TWI436209B (zh) 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置
CN103870408B (zh) 数据处理方法、存储器控制器与存储器储存装置
US8544424B2 (en) System, controller and method thereof for transmitting and distributing data stream
TWI847838B (zh) 借助非平衡表搜尋來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置