TWI546667B - 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI546667B TWI546667B TW104102838A TW104102838A TWI546667B TW I546667 B TWI546667 B TW I546667B TW 104102838 A TW104102838 A TW 104102838A TW 104102838 A TW104102838 A TW 104102838A TW I546667 B TWI546667 B TW I546667B
- Authority
- TW
- Taiwan
- Prior art keywords
- setting
- memory
- instruction
- smart card
- temporary file
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Description
本發明是有關於一種智慧卡管理方法,且特別是有關於一種用於具有可複寫式非揮發性記憶體模組與智慧卡的記憶體儲存裝置及記憶體控制電路單元的智慧卡管理方法。
隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡操作系統、安全模組及記憶體之組件的積體電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存資料的功能外還能達到對其所儲存的資料加以保護的功能。使用全球行動通信系統(GSM)機制之蜂巢式電話中所使用的用戶識別模組(Subscriber Identification Module,SIM)卡為智慧卡的其中一個應用範例。然而,智慧卡本身受限於儲存容量,因此近年來開始與大量儲存裝置的記憶卡作結合,以擴增智慧卡的儲存容量。
一般來說,主機系統與智慧卡之間的資料是透過存取關聯於智慧卡的暫時檔而被傳送。然而,目前Google在Android 4.4.2的版本中所提出的資料存取方式僅允許使用者的應用程式在特定目錄下進行資料存取,因此可能會因為權限不足而導致使用者的應用程式無法對某些暫時檔進行資料寫入。另一方面,動態地在主機系統中建立暫時檔雖然可避免上述問題,但當某一個動態暫時檔的邏輯位址(logical address,LA)是破碎的或不連續的時,記憶體裝置可能無法完整地記錄此動態暫時檔的邏輯位址。
本發明提供一種智慧卡管理方法、記憶體控制電路單元及記憶體儲存裝置,其可改善對於暫時檔的邏輯位址之管理能力。
本發明的一範例實施例提供一種用於具有可複寫式非揮發性記憶體模組與智慧卡的智慧卡管理方法,其包括:從主機系統接收對應暫時檔的第一設定指令,其中所述暫時檔關聯至所述智慧卡,所述第一設定指令包括多個第一設定訊息,並且所述第一設定訊息的其中之一包括第一設定指令驗證資訊與第一位置識別資訊,其中所述第一設定指令驗證資訊用以驗證所述第一設定指令是否是用以設定所述暫時檔,而所述第一位置識別資訊用以找出所述第一設定訊息的所述其中之一所對應的邏輯單元;以及根據所述第一設定指令將屬於所述暫時檔的第一邏輯範圍記錄於查找表。
在本發明的一範例實施例中,所述第一位置識別資訊包括排序位置識別資訊,所述排序位置識別資訊用以指示所述第一設定訊息的所述其中之一在所述第一設定訊息中的排序位置。
在本發明的一範例實施例中,所述智慧卡管理方法更包括:從主機系統接收對應所述暫時檔的第二設定指令,其中所述第二設定指令包括多個第二設定訊息;以及根據所述第二設定指令將屬於所述暫時檔的第二邏輯範圍記錄於所述查找表,其中所述第一邏輯範圍與所述第二邏輯範圍不重疊。
在本發明的一範例實施例中,所述第一設定訊息的第一資料長度與所述第二設定訊息的第二資料長度之總和小於或等於所述暫時檔的資料長度。
在本發明的一範例實施例中,所述第一邏輯範圍的結束邏輯單元與所述第二邏輯範圍的起始邏輯單元不連續。
在本發明的一範例實施例中,所述第一設定訊息的其中之另一包括第二設定指令驗證資訊與第二位置識別資訊,而所述智慧卡管理方法更包括:判斷所述第一設定指令驗證資訊與所述第二設定指令驗證資訊是否符合預設設定指令驗證資訊。
在本發明的一範例實施例中,所述智慧卡管理方法更包括:根據所述第一位置識別資訊與所述第二位置識別資訊來決定所述第一邏輯範圍。
在本發明的一範例實施例中,所述智慧卡管理方法更包括:從主機系統接收操作指令,以及根據所述預設操作指令驗證
資訊與所述第一邏輯範圍的至少其中之一來判斷所述操作指令是指示操作所述可複寫式非揮發性記憶體模組或所述智慧卡。
在本發明的一範例實施例中,所述操作指令包括指令-應用程式資料單元(Command-Application Protocol Data Unit,C-APDU)。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制具有可複寫式非揮發性記憶體模組與智慧卡的記憶體儲存裝置。所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以從主機系統接收對應暫時檔的第一設定指令,其中所述暫時檔關聯至智慧卡,所述第一設定指令包括多個第一設定訊息,並且所述第一設定訊息的其中之一包括第一設定指令驗證資訊與第一位置識別資訊,其中所述第一設定指令驗證資訊用以驗證所述第一設定指令是否是用以設定所述暫時檔,而所述第一位置識別資訊用以找出所述第一設定訊息的所述其中之一所對應的邏輯單元。其中所述記憶體管理電路更用以根據所述第一設定指令將屬於所述暫時檔的第一邏輯範圍記錄於查找表。
在本發明的一範例實施例中,所述記憶體管理電路更用以從所述主機系統接收對應所述暫時檔的第二設定指令,其中所述第二設定指令包括多個第二設定訊息。其中所述記憶體管理電
路更用以根據所述第二設定指令將屬於所述暫時檔的第二邏輯範圍記錄於所述查找表,其中所述第一邏輯範圍與所述第二邏輯範圍不重疊。
在本發明的一範例實施例中,所述第一設定訊息的其中之另一包括一第二設定指令驗證資訊與一第二位置識別資訊。其中所述記憶體管理電路更用以判斷所述第一設定指令驗證資訊與所述第二設定指令驗證資訊是否符合預設設定指令驗證資訊。
在本發明的一範例實施例中,所述記憶體管理電路根據所述第一位置識別資訊與所述第二位置識別資訊來決定所述第一邏輯範圍。
在本發明的一範例實施例中,所述記憶體管理電路更用以從所述主機系統接收操作指令。其中所述記憶體管理電路更用以根據預設操作指令驗證資訊與所述第一邏輯範圍的至少其中之一來判斷所述操作指令是指示操作所述可複寫式非揮發性記憶體模組或所述智慧卡。
本發明的又一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組、智慧卡及記憶體控制電路單元。連接介面單元用以耦接至主機系統。記憶體控制電路單元耦接至連接介面單元、可複寫式非揮發性記憶體模組及智慧卡。其中所述記憶體控制電路單元用以從所述主機系統接收對應暫時檔的第一設定指令,其中所述暫時檔關聯至所述智慧卡,所述第一設定指令包括多個第一設定訊息,並且所述第一
設定訊息的其中之一包括第一設定指令驗證資訊與第一位置識別資訊,其中所述第一設定指令驗證資訊用以驗證所述第一設定指令是否是用以設定所述暫時檔,而所述第一位置識別資訊用以找出所述第一設定訊息的所述其中之一所對應的邏輯單元。其中所述記憶體控制電路單元更用以根據所述第一設定指令將屬於所述暫時檔的第一邏輯範圍記錄於查找表。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以從所述主機系統接收對於所述暫時檔的第二設定指令,其中所述第二設定指令包括多個第二設定訊息。其中所述記憶體控制電路單元更用以根據所述第二設定指令將屬於所述暫時檔的第二邏輯範圍記錄於所述查找表,其中所述第一邏輯範圍與所述第二邏輯範圍不重疊。
在本發明的一範例實施例中,所述第一設定訊息的其中之另一包括第二設定指令驗證資訊與第二位置識別資訊。所述記憶體控制電路單元更用以判斷所述第一設定指令驗證資訊與所述第二設定指令驗證資訊是否符合預設設定指令驗證資訊。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第一位置識別資訊與所述第二位置識別資訊來決定所述第一邏輯範圍。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以從所述主機系統接收操作指令。所述記憶體管理電路更用以根據預設操作指令驗證資訊與所述第一邏輯範圍的至少其中之
一來判斷所述操作指令是指示操作所述可複寫式非揮發性記憶體模組或所述智慧卡。
基於上述,藉由在對於暫時檔的設定指令中加入設定指令驗證資訊與排序位置識別資訊,屬於新建立之暫時檔的邏輯位址可以更正確地被記憶體儲存裝置記錄下來,減少因對於暫時檔的設定指令被批次傳輸而導致記錄錯誤的情形發生。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體(RAM)
13‧‧‧輸入/輸出裝置
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
10‧‧‧記憶體儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
408‧‧‧智慧卡
410‧‧‧應用程式
410(0)~410(F)、410(F+1)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
610(0)~610(D)‧‧‧邏輯單元
800、1000-1~1000-4、1100-1~1100-4‧‧‧設定指令
710(0)~710(N-1)、810(0)~810(127)、1010(0)~1010(255)、1110(0)~1110(255)‧‧‧設定訊息
712(0)~712(N-1)、812(0)~812(127)、1012(0)~1012(255)、1112(0)~1112(255)‧‧‧位置識別資訊
714、814、1014、1114‧‧‧設定訊息總數資訊
C(0)~C(255)‧‧‧設定指令驗證資訊
880、1000、1100‧‧‧查找表
1102、1104、1106‧‧‧邏輯範圍
S901、S903、S905、S907、S909、S911、S913、S915、S917、S919‧‧‧智慧卡管理方法的步驟
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217、S1219、S1221、S1223、S1225、S1227、S1229、S1231‧‧‧智慧卡管理方法的步驟
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的範例示意圖。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的主機系統與記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示之管理實體抹除單
元的範例示意圖。
圖7是根據本發明的一範例實施例所繪示的設定訊息的示意圖。
圖8A與圖8B是根據本發明的一範例實施例所繪示的記錄邏輯範圍的範例示意圖。
圖9是根據本發明的一範例實施例繪示之智慧卡管理方法的流程圖。
圖10A與圖10B是根據本發明的另一範例實施例所繪示的記錄邏輯範圍的範例示意圖。
圖11A與圖11B是根據本發明的另一範例實施例所繪示的記錄不連續的多個邏輯範圍的範例示意圖。
圖12是根據本發明的另一範例實施例繪示之智慧卡管理方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的範例示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output,I/O)裝置13。電腦12包括微處理器122、隨機存取記憶體(random access memory,RAM)124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件電性連接。藉由微處理器122、隨機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態硬碟(Solid State Drive,SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的範例示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來做說明,然而,在另一範例實施例中主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為圖3中的數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝
置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接於主機系統的基板上。
圖4是繪示圖1所示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404、可複寫式非揮發性記憶體模組406以及智慧卡408。
在本範例實施例中,記憶體控制電路單元404是用以操作記憶體儲存裝置10,以完成根據本發明實施例的智慧卡管理方法。此外,必須瞭解的是主機系統11亦包含主機系統11欲與記憶體儲存裝置10連接所需具備的一般功能。
連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(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)介面標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標
準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406與智慧卡408中進行資料的寫入、讀取、抹除與合併等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
智慧卡408耦接至記憶體控制電路單元404並且用以執行計算、加密、雙向通信及安全認證等功能。在一範例實施例中,智慧卡408為相容於ISO 7816標準的接觸式智慧卡。然而,必須
瞭解的是,本發明不限於此。例如,智慧卡408亦可是相容於ISO 14443、ISO 15408或其他安全智慧卡標準的接觸或非接觸式智慧卡。又例如,智慧卡408可為射頻識別(Radio Frequency Identification,RFID)晶片、無線傳輸晶片(如:藍芽晶片)或多媒體控制晶片(如:數位錄音晶片)等。此外,值得說明的是,記憶體控制電路單元404與智慧卡408可各為一獨立晶片,亦可合併封裝為一單一晶片。在本範例實施例中,智慧卡408是用以儲存加/解密金鑰、帳號及/或密碼等與安全驗證有關的敏感資料。然而,在另一範例實施例中,智慧卡408亦可以用以儲存一般資料。
圖5是根據本發明的一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會
由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406與智慧卡408。也就是說,
欲寫入至可複寫式非揮發性記憶體模組406或智慧卡408的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406或智慧卡408所能接受的格式。例如,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406或智慧卡408的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,
當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路512會依據此錯誤檢查與校正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
圖6是根據本發明之範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述實體抹除單元的運作時,以“選擇”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,實體抹除單元在智慧卡408與可複寫式非揮發性記憶體模組406中的實際位置並未更動,而是邏輯上對此些實體抹除單元進行操作。
請參照圖6,可複寫式非揮發性記憶體模組406具有實體抹除單元410(1)~410(F)且智慧卡408具有實體抹除單元410(F+1)~410(N)。實體抹除單元410(0)~410(F)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。實體抹除單元410(F+1)~410(N)亦可屬於同一個記憶體晶粒或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實
體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。此外,在另一範例實施例中,智慧卡408也可以是包含其他類型的儲存媒體而非限於使用實體抹除單元來儲存資料。
記憶體管理電路502會配置邏輯單元610(0)~610(D)以映射至實體抹除單元410(0)~410(N)的至少一部份。例如,在本範例實施例中,主機系統11是透過邏輯區塊位址(logical block address,LBA)來存取儲存在實體抹除單元410(0)~410(N)中的資料,因此每一個邏輯單元610(0)~610(D)是指一個邏輯區塊位址。在另一本範例實施例中,一個邏輯單元的大小等於一個邏輯扇的大小。例如,一個邏輯扇的大小為512千位元組。然而,在另一範例實施例中,一個邏輯單元的大小也可以是更大或更小,並且每一個邏輯單元610(0)~610(D)也可以是指一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續的邏輯區塊位址組成。每一個邏輯單元610(0)~610(D)是映射至一或多個實體單元。在本範例實施例中,一個實體單元是指一個實體扇。然而,在另一範例實施例中,一
個實體單元也可以是一個實體位址、一個實體程式化單元、一個實體抹除單元或者是由多個連續的實體位址組成,本發明不加以限制。記憶體管理電路502可將邏輯單元與實體單元之間的映射關係記錄於一或多個邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此一或多個邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
在本範例實施例中,主機系統11運行有一或多個應用程式410。主機系統11(或應用程式410)可存取智慧卡408以獲得操作所需的資料。例如,應用程式410可以是即時通訊應用程式、簡訊應用程式、通話應用程式或安全驗證應用程式等各種類型的應用程式,且應用程式410的種類不限於上述。例如,主機系統11亦可以運行一作業系統(operating system,OS)並且基於此作業系統來運行應用程式410。此作業系統例如是安卓(android)4.4.2或其他類型/版本的作業系統。
一般來說,主機系統11(或應用程式410)會透過一或多個暫時檔來存取智慧卡408。例如,當智慧卡408被初始化、智慧卡408被重新耦接或插入至記憶體儲存裝置10、記憶體儲存裝置10重新開機或任意需要更新暫時檔之檔案名稱或邏輯單元等資訊時,主機系統11(或應用程式410)會在智慧卡408中動態地建立一或多個暫時檔。所建立的暫時檔會被關聯至智慧卡408。在主機系統11的檔案系統中,動態建立之暫時檔(亦稱為動態暫時檔)的檔
案位置及/或存取權限與一般作業系統自行建立的暫時檔(亦稱為靜態暫時檔)的檔案位置及/或存取權限不同。例如,動態暫時檔的檔案位置可能會是在屬於應用程式410的一個預設目錄/路徑下,故動態暫時檔可供應用程式410存取。而靜態暫時檔的檔案位置卻可能是在應用程式410所無法存取的目錄/路徑下(例如,根目錄)。透過存取屬於此暫時檔的邏輯單元,主機系統11(或應用程式410)即可執行對於智慧卡408的資料存取操作。
在本範例實施例中,在動態地建立一個暫時檔之後,主機系統11會發送對應於此暫時檔的至少一個設定指令至記憶體儲存裝置10以設定此暫時檔。更詳細的來說,此設定指令是用以設定屬於此暫時檔的邏輯單元。例如,屬於此暫時檔的至少部份邏輯單元會隨著設定指令一併發送給記憶體儲存裝置10。在本範例實施例中,一個設定指令會包括一或多個設定訊息。一個設定訊息會包括設定指令驗證資訊與位置識別資訊。設定指令驗證資訊用以驗證包含此指令驗證資訊的設定指令是否是用以設定某一個暫時檔。位置識別資訊是用以找出包含此位置識別資訊之設定訊息所對應的邏輯單元。為了方便說明,以下範例實施例將以包括排序位置資訊的位置識別資訊作為位置識別資訊之範例進行說明。
圖7是根據本發明的一範例實施例所繪示的設定訊息的示意圖。
請參照圖7,假設設定訊息710(0)~710(N-1)是用以設定
屬於某一個暫時檔的邏輯單元。其中,N為整數,並且N等於屬於此暫時檔的邏輯單元之數目。設定訊息710(0)~710(N-1)會被包含於一或多個設定指令中並且被傳送至記憶體儲存裝置10。以設定訊息710(0)為例,設定訊息710(0)包括設定指令驗證資訊C(0)與位置識別資訊712(0)。設定指令驗證資訊C(0)用以驗證包含設定訊息710(0)的設定指令是否是用以設定某一個暫時檔。位置識別資訊712(0)是用以找出設定訊息710(0)所對應的邏輯單元。在本範例實施例中,位置識別資訊712(0)包括一排序位置識別資訊。此排序位置識別資訊指示設定訊息710(0)在設定訊息710(0)~710(N-1)中的排序位置。例如,位置識別資訊712(0)之排序位置識別資訊的值是「0」,表示設定訊息710(0)是排序在設定訊息710(0)~710(N-1)中的起始位置。然而,在另一範例實施例中,位置識別資訊712(0)則是包括一邏輯單元識別資訊。此邏輯單元識別資訊可包括設定訊息710(0)所對應的邏輯單元之編號等資訊。根據此邏輯單元識別資訊即可識別出設定訊息710(0)所對應的邏輯單元。
以設定訊息710(1)為另一例,設定訊息710(1)包括設定指令驗證資訊C(1)與位置識別資訊712(1)。設定指令驗證資訊C(1)用以驗證包含設定訊息710(1)的設定指令是否是用以設定某一個暫時檔。位置識別資訊712(1)用以找出設定訊息710(1)所對應的邏輯單元。在本範例實施例中,位置識別資訊712(1)包括一排序位置識別資訊。此排序位置識別資訊指示設定訊息710(1)在設定
訊息710(0)~710(N-1)中的排序位置。例如,位置識別資訊712(1)的排序位置識別資訊的值是「1」,表示設定訊息710(1)是排序在設定訊息710(0)~710(N-1)中的第二個位置,並且是此位置是接續於設定訊息710(0)之後。以此類推,設定訊息710(K)會包括設定指令驗證資訊C(K)與位置識別資訊712(K)。設定指令驗證資訊C(K)用以驗證包含設定訊息710(K)的設定指令是否是用以設定關聯於智慧卡408的某一個暫時檔。位置識別資訊712(K)用以找出設定訊息710(K)所對應的邏輯單元。例如,位置識別資訊712(K)可指示設定訊息710(K)在設定訊息710(0)~710(N-1)中的排序位置。其中,K為整數,且K介於0~N-1之間。
在另一範例實施例中,至少部份的設定訊息中還可以包括設定訊息總數資訊等任意有用的資訊。此設定訊息總數資訊指示用以設定同一個暫時檔的多個設定訊息之總數。例如,在圖7的範例實施例中,設定訊息總數資訊714用以指示設定訊息710(0)~710(N-1)之總數(例如,「N」)。
值得一提的是,在圖7的範例實施例中,用以設定同一個暫時檔的每一個設定訊息710(0)~710(N-1)之格式皆相同。然而,在圖7的另一範例實施例中,每一個設定訊息710(0)~710(N-1)之格式則可能不同。例如,可能只有設定訊息710(0)~710(N-1)中的一部分包含有設定指令驗證資訊C(K)、只有設定訊息710(0)~710(N-1)中的一部分包含有位置識別資訊712(K)、及/或只有710(0)~710(N-1)中的一部分包含有設定訊息總數資訊714。
在本範例實施例中,用以設定同一個暫時檔的每一個設定訊息是對應至屬於此暫時檔的一個邏輯單元。例如,在圖7的範例實施例中,假設一個暫時檔是佔用N個邏輯單元,則設定訊息710(0)~710(N-1)是依序對應至此N個邏輯單元的其中之一。例如,設定訊息710(K)是對應至此N個邏輯單元中的第K個邏輯單元。在圖7的一範例實施例中,假設一個邏輯單元的大小是512位元組,則每一個設定訊息710(0)~710(N-1)的大小皆為512位元組。其中,每一個設定指令驗證資訊C(0)~C(N-1)的大小皆為504位元組,每一個位置識別資訊712(0)~712(N-1)的大小皆為4位元組,並且設定訊息總數資訊714的大小亦為4位元組。然而,在另一範例實施例中,一個設定訊息亦可以是對應至多個邏輯單元,並且設定訊息、設定指令驗證資訊、排序位置識別資訊及設定訊息總數資訊的大小都可以是更大或更小,視實務上的需求而定。
在本範例實施例中,記憶體管理電路502會根據一個設定指令中的設定指令驗證資訊來驗證此設定指令並且根據此設定指令是否通過驗證來決定是否記錄下對應於此設定指令的一或多個連續或分散的邏輯範圍(亦稱為邏輯位址範圍)。例如,記憶體管理電路502會將接收到的設定指令驗證資訊與預先儲存於記憶體管理電路502中的一預設設定指令驗證資訊進行比較並且判斷兩者是否一致。其中,記憶體管理電路502可以是分別將接收到的每一個設定指令驗證資訊與對應的預設設定指令驗證資訊進行單
獨比對或者是將接收到的至少部份的設定指令驗證資訊之結合來與對應的預設設定指令驗證資訊進行比對。若接收到的設定指令驗證資訊與預設設定指令驗證資訊一致,表示對應的設定指令通過驗證,因此記憶體管理電路502會將對應的一或多個彼此不重疊的邏輯範圍記錄於一查找表中。其中,一個邏輯範圍可以是由屬於某一個暫時檔的多個連續的或分散的邏輯單元組成。此外,若接收到的設定指令驗證資訊與預設設定指令驗證資訊不一致,則記憶體管理電路502不會執行上述記錄邏輯範圍的操作。
圖8A與圖8B是根據本發明的一範例實施例所繪示的記錄邏輯範圍的範例示意圖。
請參照圖8A與圖8B,假設一個動態暫時檔的大小為64千位元組,主機系統11會產生並發送用以設定此動態暫時檔之設定指令800至記憶體儲存裝置10。其中,設定指令800包括設定訊息810(0)~810(127)。設定訊息810(0)~810(127)的資料長度之總合等於此動態暫時檔之資料長度。然而,在另一範例實施例中,暫時檔的大小可以更大或更小,且設定訊息810(0)~810(127)的數目也可以是更多或更少,本發明不加以限制。
當記憶體管理電路502接收到設定指令800時,記憶體管理電路502會將設定指令驗證資訊C(0)~C(127)與記憶體管理電路502中的一預設設定指令驗證資訊進行比對。若設定指令驗證資訊C(0)~C(127)與設定指令驗證資訊一致,則記憶體管理電路502會記錄下對應於設定指令800的一個邏輯範圍於查找表880。
其中,此邏輯範圍中的一起始邏輯單元、一結束邏輯單元或者此邏輯範圍中所有的邏輯單元例如是隨著設定指令800傳送至記憶體儲存裝置10。例如,如圖8B所示,此邏輯範圍的起始邏輯單元為「610(1000)」,此邏輯範圍的結束邏輯單元為「610(1127)」,並且此邏輯範圍包含邏輯單元「610(1000)」~「610(1127)」。
在一範例實施例中,若只有一部份的邏輯單元(例如,起始邏輯單元)隨著設定指令800傳送至記憶體儲存裝置10,則記憶體管理電路502可根據設定指令800中的設定訊息總數資訊814或者位置識別資訊812(0)與812(127)來獲得此邏輯範圍的大小與邊界。例如,根據設定訊息總數資訊814,記憶體管理電路502可將所接收到的起始邏輯單元「610(1000)」加上「127」個邏輯單元而獲得結束邏輯單元「610(1127)」。在本範例實施例中,對於一個邏輯範圍來說,只有此邏輯範圍的起始邏輯單元與結束邏輯單元會被記錄下來,以節省儲存空間。然而,在另一範例實施例中,一個邏輯範圍中更多或更少的邏輯單元可被記錄下來。換言之,此時,主機系統11已將屬於某一個動態暫時檔的邏輯單元更新至記憶體儲存裝置10中。
然而,智慧卡408所對應的邏輯單元可能在記憶體儲存裝置10的使用過程中被改變,因此上述發送設定指令以及記錄屬於暫時檔的邏輯範圍的操作會在任何需要更新智慧卡408所對應的邏輯單元時再次被執行,例如,當智慧卡408被初始化、智慧卡408被重新耦接或插入至記憶體儲存裝置10、記憶體儲存裝置
10重新開機、記憶體儲存裝置10被使用超過一段預設時間或者任意時間點。
在上述範例實施例中,當主機系統11(或應用程式410)欲更新某一個暫時檔之相關資訊時,主機系統11(或應用程式410)就會建立一個新的暫時檔。然而,在一範例實施例中,在建立一個新的暫時檔之前,主機系統11(或應用程式410)還會判斷是否已有足夠的動態暫時檔存在(例如,存在於應用程式410可存取的一預設目錄下)。若已有足夠的動態暫時檔存在,則主機系統11(或應用程式410)可以不建立新的暫時檔,而僅是重新發送對應於已存在之動態暫時檔的設定指令至記憶體儲存裝置10,以重新設定此些已存在的暫時檔。反之,若沒有預先建立的動態暫時檔存在或者動態暫時檔的數目不夠,主機系統11(或應用程式410)才會執行上述動態建立暫時檔與發送對應的設定指令之操作。
在記憶體管理電路502根據一或多個設定指令將對應的邏輯範圍記錄於查找表之後,若記憶體管理電路502從主機系統11接收到一操作指令,記憶體管理電路502會驗證此操作指令並且根據此操作指令是否通過驗證來決定後續的操作。例如,記憶體管理電路502可根據預先儲存於記憶體儲存裝置10中的一預設操作指令驗證資訊及/或記錄於查找表中的邏輯範圍來驗證此操作指令。其中,此預設操作指令驗證資訊可以與上述預設設定指令驗證資訊相同或者是與上述預設設定指令驗證資訊不同,本發明不加以限制。例如,記憶體管理電路502可比對此預設操作指令
驗證資訊與接收到的操作指令中的一操作指令驗證資訊。若此預設操作指令驗證資訊與接收到的操作指令中的操作指令驗證資訊不一致,記憶體管理電路502可判定此操作指令沒有通過驗證並且將此操作指令識別為對於可複寫式非揮發性記憶體模組406的操作指令。若此預設操作指令驗證資訊與接收到的操作指令中的操作指令驗證資訊一致,記憶體管理電路502可判定此操作指令通過驗證並且根據此操作指令執行對於智慧卡408的一存取操作。在另一範例實施例中,若此預設操作指令驗證資訊與接收到的操作指令中的操作指令驗證資訊一致,記憶體管理電路502會接續判斷此操作指令所指示存取的邏輯單元是否包含於上述查找表中的任一個邏輯範圍內。若此操作指令所指示存取的邏輯單元包含於上述查找表中的某一個邏輯範圍內,記憶體管理電路502會判定此操作指令通過驗證並且執行對應的存取操作。例如,在圖8的範例實施例中,若某一個操作指令通過驗證且其是指示存取邏輯單元「610(1000)」,則記憶體管理電路502會將此操作指令識別為包括智慧卡408的通訊資料單元並且根據此操作指令執行對於智慧卡408的一存取操作。在本發明範例實施例中,此通訊資料單元是符合ISO 7816標準的指令-應用程式協定資料單元(Command-Application Protocol Data Unit,C-APDU)。此外,若此預設操作指令驗證資訊與接收到的操作指令中的操作指令驗證資訊一致但是此操作指令所指示存取的邏輯單元不包含於查找表中的任一個邏輯範圍內,表示屬於某一個暫時檔的邏輯單元與智慧
卡408之間的映射關係可能已發生變更,故記憶體管理電路502會判定此操作指令沒有通過驗證並且不會執行對於智慧卡408的存取操作,以避免發生錯誤操作。在另一範例實施例中,在接收到某一個操作指令之後,記憶體管理電路502亦可以略過上述比對預設操作指令驗證資訊與接收到的操作指令中的操作指令驗證資訊的操作而直接判斷此操作指令所指示存取的邏輯單元是否包含於上述查找表中的任一個邏輯範圍內。若此操作指令所指示存取的邏輯單元包含於上述查找表中的某一個邏輯範圍,則記憶體管理電路502即可判定此操作指令通過驗證並且根據此操作指令執行對於智慧卡408的一存取操作。
圖9是根據本發明的一範例實施例繪示之智慧卡管理方法的流程圖。
請參照圖9,在步驟S901中,主機系統11(或應用程式410)動態地建立用以存取智慧卡408的一個暫時檔。
在步驟S903中,主機系統11會傳送對應此暫時檔的一個設定指令至記憶體儲存裝置10。
在步驟S905中,記憶體管理電路502會驗證此設定指令。關於如何驗證此設定指令已於上述範例實施例中說明,在此便不贅述。若此設定指令通過驗證,則記憶體管理電路502會根據此設定指令將屬於此暫時檔的一或多個邏輯範圍記錄於一查找表中。
在步驟S907中,主機系統11傳送對應智慧卡408的操
作指令至記憶體儲存裝置10。
在步驟S909中,記憶體管理電路502從主機系統11接收此操作指令並且驗證此操作指令。關於如何驗證此操作指令已於上述範例實施例中說明,在此便不贅述。
若此操作指令通過驗證,在步驟S911中,記憶體管理電路502會將此操作指令識別為智慧卡408的C-APDU並且發送對應的C-APDU操作指令至智慧卡408。在範例實施例中,在發送C-APDU操作指令至智慧卡408之後,記憶體管理電路502會處於等候智慧卡408之回應的一處理中(In Progress)狀態。
在完成C-APDU操作指令之後,在步驟S913中,智慧卡408會回傳一個回應以回應所接收到的C-APDU操作指令。在本範例實施例中,此回應包括符合ISO 7816標準的回應-應用程式協定資單元(Response-Application Protocol Data Unit,R-APDU)。在接收到此回應之後,記憶體管理電路502會處於一資料可用(Data Available)狀態。在此資料可用狀態下,記憶體管理電路502會等待主機系統11讀取此回應。
在步驟S915中,主機系統11的應用程式410發送對於某一個暫時檔的一讀取指令至記憶體管理電路502以讀取此回應。
在步驟S917中,記憶體管理電路502會驗證此讀取指令。其中,此讀取指令可能會經過相同或相似於上述操作指令的驗證程序。若此讀取指令通過驗證,則在步驟S919中,記憶體管理電路502會提供此回應給主機系統11。
值得一提的是,在一範例實施例中,主機系統11是以叢集(cluster)作為資料的一個基本存取單位。每一個叢集是架構在邏輯扇的2次方倍數上。例如,連續的64個邏輯扇可構成一個叢集(亦即,一個叢集的大小為32千位元組)。在此範例實施例中,若某一個暫時檔的大小超過一個基本存取單位,則用以設定此暫時檔的多個設定訊息可能會被分割為多個設定指令進行傳輸。然而,在另一範例實施例中,一個叢集的大小也可以是更大或更小,本發明不加以限制。
圖10A與圖10B是根據本發明的另一範例實施例所繪示的記錄邏輯範圍的範例示意圖。
請參照圖10A與圖10B,在本範例實施例中,假設設定訊息1010(0)~1010(255)是用以設定某一個暫時檔。此外,假設大小為32千位元組的叢集是一個基本存取單位,並且此暫時檔的大小為128千位元組,因此設定訊息1010(0)~1010(255)會被切割成四個設定指令1000-1~1000-4來進行傳輸。其中,每一個設定指令1000-1~1000-4的大小等於一個基本存取單位的大小。值得注意的是,本發明並不限制基本存取單位之大小與用以設定同一個暫時檔之設定指令的數目。例如,在另一範例實施例中,若一個基本存取單位是16千位元組,則主機系統11可能會下達八個或更多的設定指令來傳輸設定訊息1010(0)~1010(255)。
如圖10A所示,設定指令1000-1包含設定訊息1010(0)~1010(63),設定指令1000-2包含設定訊息
1010(64)~1010(127),設定指令1000-3包含設定訊息1010(128)~1010(191),並且設定指令1000-4包含設定訊息1010(192)~1010(255)。每一個設定訊息1010(0)~1010(255)的格式相同或相似於圖7之範例實施例的設定訊息之格式。例如,設定訊息1010(K)可以包括設定指令驗證資訊C(K)、位置識別資訊1012(K)及設定訊息總數資訊1014的至少其中之一。設定指令驗證資訊C(K)用以驗證設定指令1000-1是否是用以設定某一個暫時檔。位置識別資訊1012(K)用以找出設定訊息1010(K)所對應的邏輯單元。在本範例實施例中,位置識別資訊1012(K)包括排序位置識別資訊。此排序位置識別資訊可指示設定訊息1010(K)在設定訊息1010(0)~1010(255)中的排序位置。設定訊息總數資訊1014指示用以設定此暫時檔的設定訊息1010(0)~1010(255)之總數(例如,「255」)。其中,K為整數,且K介於0~255之間。
記憶體管理電路502會依序接收設定指令1000-1~1000-4並且對設定指令1000-1~1000-4進行驗證。例如,對於設定指令1000-1,記憶體管理電路502會比對設定指令驗證資訊C(0)~C(63)與對應的一預設設定指令驗證資訊;對於設定指令1000-2,記憶體管理電路502會比對設定指令驗證資訊C(64)~C(127)與對應的另一預設設定指令驗證資訊,以此類推。關於如何驗證設定指令已於上述範例實施例中說明,在此便不贅述。
若設定指令1000-1~1000-4都通過驗證,則記憶體管理電路502會根據此些設定指令1000-1~1000-4來決定對應的一或多個
邏輯範圍。例如,根據隨著設定指令1000-1傳輸的一個起始邏輯單元「610(1000)」以及位置識別資訊1012(0)~1012(63),記憶體管理電路502可獲得邏輯範圍「610(1000)~610(1063)」;根據隨著設定指令1000-2傳輸的一個起始邏輯單元「610(1064)」以及位置識別資訊1012(64)~1012(127),記憶體管理電路502可獲得邏輯範圍「610(1064)~610(1127)」;根據隨著設定指令1000-3傳輸的一個起始邏輯單元「610(1128)」以及位置識別資訊1012(128)~1012(191),記憶體管理電路502可獲得邏輯範圍「610(1128)~610(1191)」;根據隨著設定指令1000-4傳輸的一個起始邏輯單元「610(1192)」以及位置識別資訊1012(192)~1012(255),記憶體管理電路502可獲得邏輯範圍「 610(1192)~610(1255)」。其中,記憶體管理電路502例如是將對應於某一個設定指令的起始邏輯單元加上此設定指令中設定訊息的總數而獲得對應的邏輯範圍。例如,將隨著設定指令1000-1傳輸的起始邏輯單元「610(1000)」加上「63」個邏輯單元即可獲得對應於設定指令1000-1的邏輯範圍「610(1000)~610(1063)」。
記憶體管理電路502會將此些邏輯範圍記錄於查找表1000。在此,由於所獲得的邏輯範圍都是彼此連續的,故屬於此些邏輯範圍會被整合成「610(1000)~610(1255)」,並且此邏輯範圍例如是以記錄起始邏輯單元「610(1000)」與結束邏輯單元「610(1255)」的方式記錄於查找表1000中。換言之,此時,屬於某一個動態暫時檔的邏輯單元已被設定至記憶體儲存裝置10。
值得一提的是,上述各範例實施例皆是以記錄屬於同一個暫時檔的連續的邏輯單元作為範例。然而,在另一範例實施例中,屬於同一個暫時檔的邏輯單元也可能是不連續的。
圖11A與圖11B是根據本發明的另一範例實施例所繪示的記錄不連續的多個邏輯範圍的範例示意圖。
請參照圖11A與圖11B,本範例實施例與圖10之範例實施例的差異在於,在本範例實施例中,所欲設定的動態暫時檔所使用的邏輯單元是不連續的。例如,此動態暫時檔所使用的邏輯單元是邏輯單元「610(1000)~610(1063)」、「610(2000)~610(2127)」及「610(3000)~610(3063)」。其中,起始邏輯單元「610(1000)」是隨著設定指令1100-1傳送給記憶體儲存裝置10,起始邏輯單元「610(2000)」是隨著設定指令1100-2傳送給記憶體儲存裝置10,起始邏輯單元「610(2064)」是隨著設定指令1100-3傳送給記憶體儲存裝置10,並且起始邏輯單元「610(3000)」是隨著設定指令1100-4傳送給記憶體儲存裝置10。
在接收到設定指令1100-1~1100-4之後,若設定指令1100-1~1100-4皆通過驗證,記憶體管理電路502會根據起始邏輯單元「610(1000)」與設定指令1100-1中的位置識別資訊1112(0)~1112(63)獲得邏輯範圍「610(1000)~610(1063)」;根據起始邏輯單元「610(2000)」與設定指令1100-2中的位置識別資訊1112(64)~1112(127)獲得邏輯範圍「610(2()00)~610(2063)」;根據起始邏輯單元「610(2064)」與設定指令1100-3中的位置識別資訊
1112(128)~1112(191)獲得邏輯範圍「610(2064)~610(2127)」;根據起始邏輯單元「610(3000)」與設定指令1100-4中的位置識別資訊1112(192)~1112(255)獲得邏輯範圍「610(3000)~610(3063)」。其中,記憶體管理電路502例如是將對應於某一個設定指令的起始邏輯單元加上此設定指令中設定訊息的總數而獲得對應的邏輯範圍。在將可以合併的邏輯範圍合併之後,記憶體管理電路502會將所獲得的多個彼此不連續的邏輯範圍1102、1104及1106記錄於查找表1100(如圖11B所示)。此些彼此不連續的邏輯範圍1102、1104及1106皆是屬於同一個暫時檔。此外,根據類似操作,屬於其他的暫時檔的邏輯範圍也可以被記錄於查找表1100中。爾後,在接收到來自主機系統11的操作指令之後,記憶體管理電路502即可執行對應的驗證程序並且根據查找表1100來判斷此操作指令是否是對於智慧卡408的操作指令。
圖12是根據本發明的另一範例實施例所繪示之智慧卡管理方法的流程圖。
請參照圖12,在步驟S1201中,主機系統11(或應用程式410)動態地建立用以存取智慧卡408的一個暫時檔。在此是假設用以設定此暫時檔的設定訊息會被分割為兩個設定指令進行傳輸。
在步驟S1203中,主機系統11會傳送對應此暫時檔的一個設定指令(亦稱為第一設定指令)至記憶體儲存裝置10。
在步驟S1205中,記憶體管理電路502會驗證此第一設
定指令。關於如何驗證設定指令已於上述範例實施例中說明,在此便不贅述。若此第一設定指令通過驗證,則記憶體管理電路502會根據此第一設定指令將屬於此暫時檔的一個邏輯範圍記錄於一查找表中。
在步驟S1207中,主機系統11會傳送對應此暫時檔的另一個設定指令(亦稱為第二設定指令)至記憶體儲存裝置10。
在步驟S1209中,記憶體管理電路502會驗證此第二設定指令。關於如何驗證設定指令已於上述範例實施例中說明,在此便不贅述。若此第二設定指令通過驗證,則記憶體管理電路502會根據此第二設定指令將屬於此暫時檔的另一個邏輯範圍記錄於此查找表中。
在步驟S1211中,主機系統11傳送對應智慧卡408的一操作指令(亦稱為第一操作指令)至記憶體儲存裝置10。
在步驟S1213中,記憶體管理電路502從主機系統11接收此第一操作指令並且驗證此第一操作指令。關於如何驗證操作指令已於上述範例實施例中說明,在此便不贅述。
在步驟S1215中,主機系統11傳送對應智慧卡408的另一操作指令(亦稱為第二操作指令)至記憶體儲存裝置10。
在步驟S1217中,記憶體管理電路502從主機系統11接收此第二操作指令並且驗證此第二操作指令。關於如何驗證操作指令已於上述範例實施例中說明,在此便不贅述。
若第一操作指令與第二操作指令皆通過驗證,記憶體管
理電路502會將此第一操作指令與第二操作指令的操作合併並且將其識別為智慧卡408的C-APDU。在步驟S1219中,記憶體管理電路502會發送對應的C-APDU操作指令至智慧卡408。在發送C-APDU操作指令至智慧卡408之後,記憶體管理電路502會處於等候智慧卡408之回應的一處理中狀態。
在完成C-APDU操作指令之後,在步驟S1221中,智慧卡408會回傳一個R-APDU以回應所接收到的C-APDU操作指令。在接收到此R-APDU之後,記憶體管理電路502會處於一資料可用狀態以等待主機系統11讀取此R-APDU。
在步驟S1223中,主機系統11的應用程式410發送對於某一個暫時檔的一讀取指令(亦稱為第一讀取指令)至記憶體儲存裝置10以讀取此R-APDU的一部份。
在步驟S1225中,記憶體管理電路502可能會驗證此第一讀取指令。
在步驟S1227中,主機系統11的應用程式410發送對於此暫時檔的另一讀取指令(亦稱為第二讀取指令)至記憶體儲存裝置10以讀取此R-APDU的另一部份。
在步驟S1229中,記憶體管理電路502可能會驗證此第二讀取指令。例如,此第一讀取指令與此第二讀取指令可能會經過相同或相似於上述操作指令的驗證。
若此第一讀取指令與第二讀取指令皆通過驗證,則在步驟S1231中,記憶體管理電路502會提供此R-APDU給主機系統
11。
值得一提的是,圖9與圖12的範例實施例亦可以分別視為是一個資料傳輸系統。此資料傳輸系統適用於一主機系統與具有智慧卡與可複寫式非揮發性記憶體模組的記憶體儲存裝置之間的通訊。此外,圖9與圖12中的各步驟可以實作為軟體模組或硬體電路。
綜上所述,藉由在對於暫時檔的設定指令中加入特定的資訊,屬於新建立之暫時檔的邏輯單元可以更正確地被記憶體儲存裝置記錄下來,從而減少因對於暫時檔的設定指令被批次傳輸而導致記錄錯誤的情形發生。
11‧‧‧主機系統
408‧‧‧智慧卡
502‧‧‧記憶體管理電路
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217、S1219、S1221、S1223、S1225、S1227、S1229、S1231‧‧‧智慧卡管理方法的步驟
Claims (27)
- 一種智慧卡管理方法,用於具有可複寫式非揮發性記憶體模組與智慧卡的記憶體儲存裝置,該智慧卡管理方法包括:從一主機系統接收對應一暫時檔的一第一設定指令,其中該暫時檔關聯至該智慧卡,該第一設定指令包括多個第一設定訊息,並且該些第一設定訊息的其中之一包括一第一設定指令驗證資訊與一第一位置識別資訊,其中該第一設定指令驗證資訊用以驗證該第一設定指令是否是用以設定該暫時檔,而該第一位置識別資訊用以找出該些第一設定訊息的該其中之一所對應的一邏輯單元;以及根據該第一設定指令將屬於該暫時檔的一第一邏輯範圍記錄於一查找表。
- 如申請專利範圍第1項所述的智慧卡管理方法,其中該第一位置識別資訊包括一排序位置識別資訊,該排序位置識別資訊用以指示該些第一設定訊息的該其中之一在該些第一設定訊息中的一排序位置。
- 如申請專利範圍第1項所述的智慧卡管理方法,更包括:從該主機系統接收對應該暫時檔的一第二設定指令,其中該第二設定指令包括多個第二設定訊息;以及根據該第二設定指令將屬於該暫時檔的一第二邏輯範圍記錄於該查找表,其中該第一邏輯範圍與該第二邏輯範圍不重疊。
- 如申請專利範圍第3項所述的智慧卡管理方法,其中該些 第一設定訊息的一第一資料長度與該些第二設定訊息的一第二資料長度之總和小於或等於該暫時檔的一資料長度。
- 如申請專利範圍第3項所述的智慧卡管理方法,其中該第一邏輯範圍的一結束邏輯單元與該第二邏輯範圍的一起始邏輯單元不連續。
- 如申請專利範圍第2項所述的智慧卡管理方法,其中該些第一設定訊息的其中之另一包括一第二設定指令驗證資訊與一第二位置識別資訊,而該智慧卡管理方法更包括:判斷該第一設定指令驗證資訊與該第二設定指令驗證資訊是否符合一預設設定指令驗證資訊。
- 如申請專利範圍第6項所述的智慧卡管理方法,更包括:根據該第一位置識別資訊與該第二位置識別資訊來決定該第一邏輯範圍。
- 如申請專利範圍第1項所述的智慧卡管理方法,更包括:從該主機系統接收一操作指令;以及根據一預設操作指令驗證資訊與該第一邏輯範圍的至少其中之一來判斷該操作指令是指示操作該可複寫式非揮發性記憶體模組或該智慧卡。
- 如申請專利範圍第8項所述的智慧卡管理方法,其中該操作指令包括一指令-應用程式資料單元(Command-Application Protocol Data Unit,C-APDU)。
- 一種記憶體控制電路單元,用於控制具有可複寫式非揮 發性記憶體模組與智慧卡的記憶體儲存裝置,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以從該主機系統接收對應一暫時檔的一第一設定指令,其中該暫時檔關聯至該智慧卡,該第一設定指令包括多個第一設定訊息,並且該些第一設定訊息的其中之一包括一第一設定指令驗證資訊與一第一位置識別資訊,其中該第一設定指令驗證資訊用以驗證該第一設定指令是否是用以設定該暫時檔,而該第一位置識別資訊用以找出該些第一設定訊息的該其中之一所對應的一邏輯單元,其中該記憶體管理電路更用以根據該第一設定指令將屬於該暫時檔的一第一邏輯範圍記錄於一查找表。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中該第一位置識別資訊包括一排序位置識別資訊,該排序位置識別資訊用以指示該些第一設定訊息的該其中之一在該些第一設定訊息中的一排序位置。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該主機系統接收對應該暫時檔的一第二設定指令,其中該第二設定指令包括多個第二設定訊息, 其中該記憶體管理電路更用以根據該第二設定指令將屬於該暫時檔的一第二邏輯範圍記錄於該查找表,其中該第一邏輯範圍與該第二邏輯範圍不重疊。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中該些第一設定訊息的一第一資料長度與該些第二設定訊息的一第二資料長度之總和小於或等於該暫時檔的一資料長度。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中該第一邏輯範圍的一結束邏輯單元與該第二邏輯範圍的一起始邏輯單元不連續。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中該些第一設定訊息的其中之另一包括一第二設定指令驗證資訊與一第二位置識別資訊,其中該記憶體管理電路更用以判斷該第一設定指令驗證資訊與該第二設定指令驗證資訊是否符合一預設設定指令驗證資訊。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路根據該第一位置識別資訊與該第二位置識別資訊來決定該第一邏輯範圍。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該主機系統接收一操作指令,其中該記憶體管理電路更用以根據一預設操作指令驗證資訊與該第一邏輯範圍的至少其中之一來判斷該操作指令是指示操作該可複寫式非揮發性記憶體模組或該智慧卡。
- 如申請專利範圍第17項所述的記憶體控制電路單元,其中該操作指令包括一指令-應用程式資料單元。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;一智慧卡;以及一記憶體控制電路單元,耦接至該連接介面單元、該可複寫式非揮發性記憶體模組及該智慧卡,其中該記憶體控制電路單元用以從該主機系統接收對應一暫時檔的一第一設定指令,其中該暫時檔關聯至該智慧卡,該第一設定指令包括多個第一設定訊息,並且該些第一設定訊息的其中之一包括一第一設定指令驗證資訊與一第一位置識別資訊,其中該第一設定指令驗證資訊用以驗證該第一設定指令是否是用以設定該暫時檔,而該第一位置識別資訊用以找出該些第一設定訊息的該其中之一所對應的一邏輯單元,其中該記憶體控制電路單元更用以根據該第一設定指令將屬於該暫時檔的一第一邏輯範圍記錄於一查找表。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中該第一位置識別資訊包括一排序位置識別資訊,該排序位置識別資訊指示該些第一設定訊息的該其中之一在該些第一設定訊息中的一排序位置。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中該 記憶體控制電路單元更用以從該主機系統接收對應該暫時檔的一第二設定指令,其中該第二設定指令包括多個第二設定訊息,其中該記憶體控制電路單元更用以根據該第二設定指令將屬於該暫時檔的一第二邏輯範圍記錄於該查找表,其中該第一邏輯範圍與該第二邏輯範圍不重疊。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該些第一設定訊息的一第一資料長度與該些第二設定訊息的一第二資料長度之總和小於或等於該暫時檔的一資料長度。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該第一邏輯範圍的一結束邏輯單元與該第二邏輯範圍的一起始邏輯單元不連續。
- 如申請專利範圍第20項所述的記憶體儲存裝置,其中該些第一設定訊息的其中之另一包括一第二設定指令驗證資訊與一第二位置識別資訊,其中該記憶體控制電路單元更用以判斷該第一設定指令驗證資訊與該第二設定指令驗證資訊是否符合一預設設定指令驗證資訊。
- 如申請專利範圍第24項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一位置識別資訊與該第二位置識別資訊來決定該第一邏輯範圍。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以從該主機系統接收一操作指令, 其中該記憶體管理電路更用以根據一預設操作指令驗證資訊與該第一邏輯範圍的至少其中之一來判斷該操作指令是指示操作該可複寫式非揮發性記憶體模組或該智慧卡。
- 如申請專利範圍第26項所述的記憶體儲存裝置,其中該操作指令包括一指令-應用程式資料單元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104102838A TWI546667B (zh) | 2015-01-28 | 2015-01-28 | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US14/666,319 US9817573B2 (en) | 2015-01-28 | 2015-03-24 | Smart card management method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104102838A TWI546667B (zh) | 2015-01-28 | 2015-01-28 | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201627864A TW201627864A (zh) | 2016-08-01 |
TWI546667B true TWI546667B (zh) | 2016-08-21 |
Family
ID=56434458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104102838A TWI546667B (zh) | 2015-01-28 | 2015-01-28 | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9817573B2 (zh) |
TW (1) | TWI546667B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180145497A1 (en) * | 2016-11-23 | 2018-05-24 | Schneider Electric USA, Inc. | Method to utilize multiple configuration software for df/cafi breakers |
US11429289B2 (en) * | 2020-03-27 | 2022-08-30 | Intel Corporation | Memory map protection mechanism |
CN112149191A (zh) * | 2020-09-16 | 2020-12-29 | 合肥大唐存储科技有限公司 | 一种存储装置及实现存储数据保护的方法和固态硬盘 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4032670B2 (ja) * | 2001-06-21 | 2008-01-16 | 株式会社日立製作所 | ホストコンピュータの認証を行う記憶装置システム |
US7673129B2 (en) * | 2005-09-27 | 2010-03-02 | Intel Corporation | Secure booting from a memory device |
TWI454912B (zh) * | 2012-01-06 | 2014-10-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
-
2015
- 2015-01-28 TW TW104102838A patent/TWI546667B/zh active
- 2015-03-24 US US14/666,319 patent/US9817573B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160216893A1 (en) | 2016-07-28 |
US9817573B2 (en) | 2017-11-14 |
TW201627864A (zh) | 2016-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043549B2 (en) | Memory storage apparatus, memory controller, and method for transmitting and identifying data stream | |
US8296466B2 (en) | System, controller, and method thereof for transmitting data stream | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
TWI614755B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI454912B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
TWI459202B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
US8812756B2 (en) | Method of dispatching and transmitting data streams, memory controller and storage apparatus | |
TW202016937A (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI521345B (zh) | 回應讀取方法及資料傳輸系統 | |
TWI546667B (zh) | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI648675B (zh) | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN112445417B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN112835536A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TW202011179A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10324894B2 (en) | Storage device management method and system, and memory storage device thereof | |
CN114527941B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI777519B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109460372B (zh) | 数据存储方法、存储器控制电路单元及存储器存储装置 | |
CN112445416B (zh) | 冷区域判断方法、存储器控制电路单元与存储器存储装置 | |
US8544424B2 (en) | System, controller and method thereof for transmitting and distributing data stream | |
CN112445418B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN114371877A (zh) | 指令管理方法、存储器存储装置及存储器控制电路单元 | |
CN115238321A (zh) | 签名验证方法、存储器存储装置及存储器控制电路单元 | |
CN112181859A (zh) | 有效数据合并方法、存储器控制电路单元与存储装置 |