CN104346103B - 指令执行方法、存储器控制器与存储器储存装置 - Google Patents
指令执行方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN104346103B CN104346103B CN201310346785.3A CN201310346785A CN104346103B CN 104346103 B CN104346103 B CN 104346103B CN 201310346785 A CN201310346785 A CN 201310346785A CN 104346103 B CN104346103 B CN 104346103B
- Authority
- CN
- China
- Prior art keywords
- logical address
- instruction
- write
- data
- key
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本发明提供一种指令执行方法、存储器控制器与存储器储存装置。此方法将逻辑地址区分为多个逻辑地址群组;并且为每一逻辑地址独立地配置一个金钥。本方法还包括从主机系统接收写入指令与对应此写入指令的写入数据并且将此写入数据暂存至缓冲存储器。本方法还包括执行此写入指令并启动一次直接存储器存取来从缓冲存储器中传输此写入数据至存储器储存装置的可复写式非易失性存储器模块中,且根据对应储存此写入数据的逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的写入数据中的每一扇区数据。
Description
技术领域
本发明是有关于一种指令执行方法、存储器控制器与存储器储存装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可复写式非易失性存储器模块会由一个存储器控制器所控制并且通过一个连接器电性连接至一个主机系统。主机系统会下达指令给存储器控制器来存取可复写式非易失性存储器模块中的数据。为了能够保护储存于可复写式非易失性存储器模块中的数据的安全性,目前已有在将数据写入至可复写式非易失性存储器模块之前先对数据进行加密的技术。然而,当主机系统对应某个写入指令所传输的数据是属于不同群组并且需要以不同的金钥来加密时,目前的技术是需要先将数据暂存至缓冲存储器并且分段读取此数据的各个部分来以对应不同群组的金钥加密后回存,最后再将对应此写入指令的已加密数据从缓冲存储器中传输以实体程序化单元为单位至可复写式非易失性存储器模块。由于需对缓冲存储器中进行多次直接存储器存取来完成对应一个写入指令的所有数据的加密,因此,严重影响存储器储存装置的存效能。
发明内容
本发明提供一种指令执行方法、存储器控制器与存储器储存装置,其能够有效提升数据存取的速度同时对数据根据不同的使用群组进行个别的保护。
本发明范例实施例提出一种用于存储器储存装置的指令执行方法。此方法包括将对应此存储器储存装置的多个逻辑地址区分为多个逻辑地址群组;并且将多个不同的金钥分别地配置给此些逻辑地址群组,其中一个逻辑地址群组对应一个金钥。本方法还包括从主机系统接收写入指令与对应此写入指令的写入数据并且将此写入数据暂存至缓冲存储器,其中此写入数据包括多个扇区数据并且此写入指令指示将此些扇区数据写入至此些逻辑地址之中的多个目标逻辑地址且此些目标逻辑地址属于至少两个不同的逻辑地址群组。本方法还包括执行此写入指令并启动一次直接存储器存取来从缓冲存储器中传输此写入数据至存储器储存装置的可复写式非易失性存储器模块中,且由加密/解密电路根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的写入数据的扇区数据。
在本发明的一实施例中,上述逻辑地址群组包括第一逻辑地址群组与第二逻辑地址群组,上述金钥之中的第一金钥被配置给第一逻辑地址群组且上述金钥之中的第二金钥被配置给该第二逻辑地址群组。上述扇区数据包括第一扇区数据与第二扇区数据,上述写入指令指示将第一扇区数据写入至此些逻辑地址中属于第一逻辑地址群组的第一逻辑地址并且指示将第二扇区数据写入至此些逻辑地址中属于第二逻辑地址群组的第二逻辑地址。并且,上述根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的写入数据的扇区数据的步骤包括:在传输第一扇区数据期间,判断配置给第一逻辑地址群组的第一金钥是否已被载入至加密/解密电路;在传输该第一扇区数据期间,倘若配置给第一逻辑地址群组的第一金钥未被载入至加密/解密电路时,将第一金钥更换至加密/解密电路中;在传输第一扇区数据期间,由加密/解密电路使用第一金钥加密所传输的第一扇区数据,其中加密后的第一扇区数据会被写入至可复写式非易失性存储器模块;在传输第二扇区数据期间,判断配置给第二逻辑地址群组的第二金钥是否已被载入至加密/解密电路;在传输第二扇区数据期间,倘若配置给第一逻辑地址群组的第二金钥未被载入至加密/解密电路,将第二金钥更换至加密/解密电路中;以及在传输第二扇区数据期间,由加密/解密电路使用第二金钥加密所传输的第二扇区数据,其中加密后的第二扇区数据会被写入至可复写式非易失性存储器模块。
在本发明的一实施例中,上述的金钥分别地配置给逻辑地址群组的步骤包括:初始地将此些金钥载入至金钥暂存器中。
在本发明的一实施例中,上述接收写入指令与对应此写入指令的写入数据并且将写入数据暂存至缓冲存储器的步骤包括:由指令接收电路接收此写入指令并且将此写入指令放至指令队列寄存器;由指令接收电路判断此写入指令所指示的目标逻辑地址是否已被设定为写入锁定;以及倘若此些目标逻辑地址已被设定为写入锁定时,指令接收电路从指令队列寄存器中清除此写入指令。
在本发明的一实施例中,上述的指令执行方法还包括:由存储器管理电路将此写入指令从指令队列寄存器移到指令触发队列寄存器。
在本发明的一实施例中,上述的指令执行方法还包括在执行写入指令并启动直接存储器存取来从缓冲存储器中传输此写入数据至存储器储存装置的可复写式非易失性存储器模块中之前,从指令触发队列寄存器中选取此写入指令。
在本发明的一实施例中,上述指令执行方法还包括:从主机系统接收指示从上述目标逻辑地址中读取数据的读取指令;由存储器管理电路从可复写式非易失性存储器模块中将属于此些目标逻辑地址的读取数据读取至缓冲存储器中;以及执行此读取指令并启动直接存储器存取来从缓冲存储器中传输读取数据至该主机系统,同时由加密/解密电路根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来解密所传输的读取数据的扇区数据。
本发明范例实施例提出一种存储器控制器,其包括存储器接口、主机接口、缓冲存储器、存储器管理电路、指令接收电路、指令执行控制电路与加密/解密电路。存储器接口用以电性连接至可复写式非易失性存储器模块。主机接口用以电性连接至主机系统。存储器管理电路电性连接至存储器接口、主机接口与缓冲存储器。指令接收电路与指令执行控制电路电性连接至该存储器管理电路,并且加密/解密电路电性连接至指令执行控制电路。存储器管理电路用以将多个逻辑地址区分为多个逻辑地址群组,并且将多个不同的金钥分别地配置给此些逻辑地址群组,其中一个逻辑地址群组对应一个金钥。指令接收电路用以从主机系统接收写入指令与对应此写入指令的写入数据并且将此写入数据暂存至缓冲存储器,其中写入数据包括多个扇区数据并且此写入指令指示将此些扇区数据写入至此些逻辑地址之中的多个目标逻辑地址且此些目标逻辑地址属于至少两个不同的逻辑地址群组。指令执行控制电路用以执行此写入指令并启动一次直接存储器存取来从缓冲存储器中传输写入数据至存储器储存装置的可复写式非易失性存储器模块中,且加密/解密电路根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的写入数据的扇区数据。
在本发明的一实施例中,上述的存储器控制器还包括电性连接至加密/解密电路的逻辑地址检查电路。此外,上述逻辑地址群组包括第一逻辑地址群组与第二逻辑地址群组,上述金钥之中的第一金钥被配置给第一逻辑地址群组且上述金钥之中的第二金钥被配置给该第二逻辑地址群组。上述扇区数据包括第一扇区数据与第二扇区数据,上述写入指令指示将第一扇区数据写入至此些逻辑地址中属于第一逻辑地址群组的第一逻辑地址并且指示将第二扇区数据写入至此些逻辑地址中属于第二逻辑地址群组的第二逻辑地址。并且,在传输第一扇区数据期间,逻辑地址检查电路用以识别出写入指令所指示的第一逻辑地址并识别对应第一逻辑地址的第一逻辑地址群组,并且加密/解密电路会根据逻辑地址检查电路的识别判断配置给第一逻辑地址群组的第一金钥是否已被载入至加密/解密电路。在传输该第一扇区数据期间,倘若配置给第一逻辑地址群组的第一金钥未被载入至加密/解密电路时,加密/解密电路会载入该第一金钥。在传输第一扇区数据期间,加密/解密电路使用第一金钥加密所传输的第一扇区数据,其中加密后的第一扇区数据会被写入至可复写式非易失性存储器模块。在传输第二扇区数据期间,逻辑地址检查电路用以识别出写入指令所指示的第二逻辑地址并识别对应第二逻辑地址的第二逻辑地址群组,并且加密/解密电路会根据逻辑地址检查电路的识别判断配置给第二逻辑地址群组的该第二金钥是否已被载入至加密/解密电路。在传输该第二扇区数据期间,倘若配置给第一逻辑地址群组的第二金钥未被载入至加密/解密电路,加密/解密电路会载入该第二金钥。在传输第二扇区数据期间,加密/解密电路使用第二金钥加密所传输的第二扇区数据,其中加密后的第二扇区数据会被写入至可复写式非易失性存储器模块。
在本发明的一实施例中,上述的存储器控制器还包括分别地电性连接至加密/解密电路的金钥暂存器与金钥设定电路,其中金钥设定电路初始地将此些金钥载入至金钥暂存器中。
在本发明的一实施例中,上述的存储器控制器还包括指令队列寄存器。指令接收电路接收此写入指令并且将此写入指令放至指令队列寄存器,并且判断写入指令所指示的此些目标逻辑地址是否已被设定为写入锁定。倘若此些目标逻辑地址已被设定为写入锁定时,指令接收电路从指令队列寄存器中清除此写入指令。
在本发明的一实施例中,上述的存储器控制器还包括指令触发队列寄存器,其中存储器管理电路将此写入指令从指令队列寄存器移到指令触发队列寄存器。
在本发明的一实施例中,上述的指令执行控制电路从指令触发队列寄存器中选取此写入指令执行。
在本发明的一实施例中,上述的指令接收电路还用以从主机系统接收指示从上述目标逻辑地址中读取数据的读取指令。存储器管理电路从可复写式非易失性存储器模块中将属于此些目标逻辑地址的读取数据读取至缓冲存储器中。指令执行控制电路执行此读取指令并启动此直接存储器存取来从缓冲存储器中传输读取数据至主机系统,同时加密/解密电路根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来解密所传输的读取数据的扇区数据。
本发明范例实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性存储器模块与存储器控制器。连接器用以连接至主机系统。存储器控制器电性连接至连接器与可复写式非易失性存储器模块。存储器控制器将对应此存储器储存装置的多个逻辑地址区分为多个逻辑地址群组;并且将多个不同的金钥分别地配置给此些逻辑地址群组,其中一个逻辑地址群组对应一个金钥。存储器控制器从主机系统接收写入指令与对应此写入指令的写入数据并且将此写入数据暂存至缓冲存储器,其中此写入数据包括多个扇区数据并且此写入指令指示将此些扇区数据写入至此些逻辑地址之中的多个目标逻辑地址且此些目标逻辑地址属于至少两个不同的逻辑地址群组。存储器控制器执行此写入指令并启动一次直接存储器存取来从缓冲存储器中传输此写入数据至存储器储存装置的可复写式非易失性存储器模块中,且根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的写入数据的扇区数据。
在本发明的一实施例中,上述逻辑地址群组包括第一逻辑地址群组与第二逻辑地址群组,上述金钥之中的第一金钥被配置给第一逻辑地址群组且上述金钥之中的第二金钥被配置给该第二逻辑地址群组。上述扇区数据包括第一扇区数据与第二扇区数据,上述写入指令指示将第一扇区数据写入至此些逻辑地址中属于第一逻辑地址群组的第一逻辑地址并且指示将第二扇区数据写入至此些逻辑地址中属于第二逻辑地址群组的第二逻辑地址。并且,上述根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的写入数据的扇区数据的操作中:在传输第一扇区数据期间,存储器控制器判断配置给第一逻辑地址群组的第一金钥是否已被载入;在传输该第一扇区数据期间,倘若配置给第一逻辑地址群组的第一金钥未被载入时,存储器控制器载入第一金钥;在传输第一扇区数据期间,存储器控制器使用第一金钥加密所传输的第一扇区数据,其中加密后的第一扇区数据会被写入至可复写式非易失性存储器模块;在传输第二扇区数据期间,判断配置给第二逻辑地址群组的第二金钥是否已被载入;在传输第二扇区数据期间,倘若配置给第一逻辑地址群组的第二金钥未被载入至加密/解密电路,存储器控制器载入;以及在传输第二扇区数据期间,存储器控制器使用第二金钥加密所传输的第二扇区数据,其中加密后的第二扇区数据会被写入至可复写式非易失性存储器模块。
在本发明的一实施例中,存储器控制器初始地将此些金钥载入至金钥暂存器中。
在本发明的一实施例中,存储器控制器接收此写入指令并且将此写入指令放至指令队列寄存器,并判断写入指令所指示的此些目标逻辑地址是否已被设定为写入锁定。倘若些目标逻辑地址已被设定为写入锁定时,存储器控制器从指令队列寄存器中清除此写入指令。
在本发明的一实施例中,上述的存储器控制器将此写入指令从指令队列寄存器移到指令触发队列寄存器。
在本发明的一实施例中,在执行此写入指令并启动直接存储器存取来从缓冲存储器中传输此写入数据至存储器储存装置的可复写式非易失性存储器模块中的操作之前,存储器控制器从指令触发队列寄存器中选取此写入指令。
在本发明的一实施例中,上述的存储器控制器还用以接收用以指示从此些目标逻辑地址中读取数据的读取指令,并且从可复写式非易失性存储器模块中将属于此些目标逻辑地址的读取数据读取至缓冲存储器中。此外,存储器控制器执行此读取指令并启动直接存储器存取来从缓冲存储器中传输此读取数据至主机系统,同时根据对应此些目标逻辑地址的逻辑地址群组使用对应的金钥来解密所传输的读取数据的扇区数据。
基于上述,本发明范例实施例的指令执行方法、存储器控制器与存储器储存装置能够在一次直接存储器存取的触发期间对一个指令中属于不同逻辑地址群组的数据使用对应的金钥来加密,由此可大幅提升数据存取的效能。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图;
图2是根据一范例实施例所绘示的电脑、输入/输出装置与存储器储存装置的示意图;
图3是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图;
图4是绘示图1所示的存储器储存装置的概要方块图;
图5与图6是根据一范例实施例所绘示的管理实体抹除单元的范例示意图;
图7是根据一范例实施例所绘示的存储器控制器的概要方块图;
图8与图9是根据本发明一范例实施例所绘示的接收指令与准备执行指令的流程图;
图10是根据一范例实施例所绘示的初始化金钥的流程图;
图11是根据一范例实施例所绘示的执行指令的流程图;
图12是根据一范例实施例所绘示的在图11的方块S1105中执行写入指令的详细流程图;
图13是根据一范例实施例所绘示的在图11的方块S1105中执行读取指令的详细流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器;
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身盘;
1214:存储卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:存储棒;
1318:CF卡;
1320:嵌入式储存装置;
100:存储器储存装置;
102:连接器;
104:存储器控制器;
106:可复写式非易失性存储器模块;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
208:缓冲存储器;
210:指令接收电路;
212:指令执行控制电路;
214:指令队列寄存器;
216:指令触发队列寄存器;
218:加密/解密电路;
220:金钥暂存器;
222:金钥设定电路;
224:逻辑地址检查电路;
226:电源管理电路;
228:错误检查与校正电路;
410(0)~410(N):实体抹除单元;
502:系统区;
504:数据区;
506:闲置区;
508:取代区;
LBA(0)~LBA(H):逻辑地址;
LBG(0)~LBG(1):逻辑地址群组;
S801、S803、S805、S807、S809、S811:接收指令的步骤;
S901、S903、S905:准备执行指令的步骤;
S1001、S1003、S1005:初始化金钥的步骤;
S1101、S1103、S1105、S1107:执行指令的步骤;
S1201、S1203、S1205、S1207、S1209、S1211、S1213:执行写入指令的步骤;
S1301、S1303、S1305、S1307、S1309、S1311、S1313:执行读取指令的步骤。
具体实施方式
一般而言,存储器储存装置(也称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图。
请参照图1,主机系统1000一般包括电脑1100与输入/输出(input/output,以下简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,以下简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图2的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的操作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图2所示的随身盘1212、存储卡1214或固态硬盘(Solid StateDrive,以下简称SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick,以下简称MS)1316、CF卡1318或嵌入式储存装置1320(如图3所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,以下简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4是绘示图1所示的存储器储存装置的概要方块图。
请参照图4,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
在本范例实施例中,连接器102是兼容于序列先进附件(Serial AdvancedTechnology Attachment,以下简称SATA)标准。然而,必须了解的是,本发明不限于此,连接器102也可以是符合并列先进附件(Parallel Advanced Technology Attachment,以下简称PATA)标准、电气和电子工程师协会(Institute of Electrical and ElectronicEngineers,以下简称IEEE)1394标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,以下简称PCI Express)标准、通用序列汇流排(Universal SerialBus,以下简称USB)标准、安全数码(Secure Digital,以下简称SD)接口标准、超高速一代(Ultra High Speed-I,以下简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,以下简称UHS-II)接口标准、存储棒接口标准、多媒体储存卡(Multi Media Card,以下简称MMC)接口标准、崁入式多媒体储存卡接口标准、通用闪存(Universal Flash Storage,以下简称UFS)接口标准、小型快闪(Compact Flash,以下简称CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,以下简称IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制命令,并且根据主机系统1000的命令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等操作。
可复写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器模块106具有多个实体抹除单元。每一实体抹除单元分别具有复数个实体程序化单元,并且属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。例如,每一实体抹除单元是由128个实体程序化单元所组成。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的记忆单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据位元区与冗余位元区。数据位元区包含多个实体扇区地址用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体扇区地址,且一个实体存取扇区地址的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇区地址,本发明并不限制实体扇区地址的大小以及个数。例如,实体抹除单元为实体区块,并且实体程序化单元为实体页面。
在本范例实施例中,可复写式非易失性存储器模块106为多阶记忆单元(MultiLevel Cell,以下简称MLC)NAND型闪存模块,即一个记忆单元中可储存至少2个比特数据。然而,本发明不限于此,可复写式非易失性存储器模块106亦可是单阶记忆单元(SingleLevel Cell,以下简称SLC)NAND型闪存模块、复数阶记忆单元(Trinary Level Cell,以下简称TLC)NAND型闪存模块、其他闪存模块或其他具有相同特性的存储器模块。
图5与图6是根据一范例实施例所绘示的管理实体抹除单元的范例示意图。
请参照图5,存储器控制器104会将实体抹除单元410(0)~410-(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以储存来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已储存数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器控制器104会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器控制器104会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的操作中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
请参照图6,存储器控制器104会配置逻辑地址LBA(0)~LBA(H)以映射数据区502的实体抹除单元。并且,当主机系统100欲写入数据至逻辑地址或更新储存于逻辑地址中的数据时,存储器控制器104会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。
为了识别数据每个逻辑地址的数据被储存在那个实体抹除单元,在本范例实施例中,存储器控制器104(或存储器管理电路202)会记录逻辑地址与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑地址中存取数据时,存储器控制器104(或存储器管理电路202)会确认此逻辑地址所映射的实体抹除单元,由此存取数据。例如,在本范例实施例中,存储器控制器104(或存储器管理电路202)会在可复写式非易失性存储器模块106中储存逻辑转实体地址映射表来记录每一逻辑地址所映射的实体抹除单元,并且当欲存取数据时存储器控制器104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器208来维护。
值得一提的是,存储器储存装置100具有数据保密的功能,并且可以提供此保密功能给不同的使用群组。具体来说,在本范例实施例中,存储器控制器104(或存储器管理电路202)会将逻辑地址LBA(0)~LBA(H)分组为多个逻辑地址群组,并且为每一逻辑地址群组设定独立地存取权控制。也就是说,每一个逻辑地址群组可根据使用者的需求分别设定为可读取、读取锁定(即,不可读取)、可写入、写入锁定(即,不可写入)等存取控制。例如,逻辑地址LBA(0)~LBA(H)会被区分为第一逻辑地址群组LBG(0)与第二逻辑地址群组LBG(1)。必须了解的是,尽管本范例实施例是以两个逻辑地址群组来作说明,但本发明不限于此,逻辑地址群组的数目可根据系统需求来适当的规划。
图7是根据一范例实施例所绘示的存储器控制器的概要方块图。
请参照图7,存储器控制器104包括存储器管理电路202、主机接口204、存储器接口206、缓冲存储器208、指令接收电路210、指令执行控制电路212、指令队列寄存器214、指令触发队列寄存器216、加密/解密电路218、金钥暂存器220、金钥设定电路222、逻辑地址检查电路224、电源管理电路226与错误检查与校正电路228。
存储器管理电路202用以控制存储器控制器104的整体操作。具体来说,存储器管理电路202具有多个控制命令,并且在存储器储存装置100操作时,此些控制命令会被执行以进行数据的写入、读取与抹除等操作。
在本范例实施例中,存储器管理电路202的控制命令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制命令是被烧录至此只读存储器中。当存储器储存装置100操作时,此些控制命令会由微处理器单元来执行以进行数据的写入、读取与抹除等操作。
在本发明另一范例实施例中,存储器管理电路202的控制命令也可以程序码型式储存于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制器104被致能时,微处理器单元会先执行此开机码来将储存于可复写式非易失性存储器模块106中的控制命令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制命令以进行数据的写入、读取与抹除等操作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制命令也可以一硬体型式来实作。例如,存储器管理电路202包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入单元用以对可复写式非易失性存储器模块106下达写入命令以将数据写入至可复写式非易失性存储器模块106中;存储器读取单元用以对可复写式非易失性存储器模块106下达读取命令以从可复写式非易失性存储器模块106中读取数据;存储器抹除单元用以对可复写式非易失性存储器模块106下达抹除命令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理单元用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以电性连接至主机系统1000。也就是说,主机系统1000所传送的命令与数据会通过主机接口204来传送至存储器控制器104并且存储器控制器104会通过主机接口204将从可复写式非易失性存储器模块106中读取的数据传送给主机系统1000。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
缓冲存储器208是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据或来自于可复写式非易失性存储器模块106的数据。例如,当从主机系统1000接收到写入指令与对应此写入指令的数据时,存储器管理电路202会将数据暂存至缓冲存储器208。再例如,当从主机系统1000接收到读取指令并且从可复写式非易失性存储器模块106中读取对应的数据时,存储器管理电路202会将所读取的数据暂存至缓冲存储器208
指令接收电路210是电性连接至存储器管理电路202并且用以接收来自于主机系统1000的指令。
指令执行控制电路212是电性连接至存储器管理电路202并且用以执行主机系统1000所下达的指令。
指令队列寄存器214与指令触发队列寄存器216分别地用以暂存从主机系统1000所接收的指令以及预备要执行的指令。具体来说,在本范例实施例中,存储器储存装置100支援原生指令排序(Native Command Queue)功能,其中指令接收电路210会将从主机系统1000接收到的指令会被放置于指令队列寄存器214,存储器管理电路202会根据此些指令的属性(例如,欲存取的逻辑地址)来排序此些指令的执行顺序并且指令执行控制电路212会根据所决定的顺序来执行所接收的指令。在本范例实施例中,指令队列寄存器214与指令触发队列寄存器216是以独立的硬件电路来实作,然而,本发明不限于此,在本发明另一范例实施例中,存储器管理电路202亦可于缓冲存储器208中规划出一储存区来作为指令队列寄存器214与指令触发队列寄存器216。
图8与图9是根据本发明一范例实施例所绘示的接收指令与准备执行指令的流程图。
请参照图8,首先在方块S801中,指令接收电路210会处于待命状态。接着,在方块S803中,指令接收电路210会判断是否接收到指令(例如,写入指令或读取指令)。若判断未接收到时,则指令接收电路210会回至待命状态(即,方块S801)。
倘若判断接收到指令时,则在方块S805中,指令接收电路210会将所接收到的指令放置于指令队列寄存器214,并且在方块S807中,指令接收电路210会判断所接收的指令是否违反存取控制。例如,倘若所接收的指令为读取指令时,指令接收电路210会判断此指令所指示的逻辑地址是否被设定为读取锁定,并且若此指令所指示的逻辑地址被设定为读取锁定(即,此逻辑地址禁止被读取),指令接收电路210会识别所接收的指令违反存取控制。又例如,倘若所接收的指令为写入指令时,指令接收电路210会判断此指令所指示的逻辑地址是否被设定为写入锁定,并且若此指令所指示的逻辑地址被设定为写入锁定(即,此逻辑地址禁止被写入),指令接收电路210会识别所接收的指令违反存取控制。
倘若所接收的指令未违反存取控制,则指令接收电路210会回至待命状态(即,方块S801)。
倘若所接收的指令违反存取控制,在方块S809中,指令接收电路210会执行错误处置程序。例如,在方块S809中,指令接收电路210会清除指令队列寄存器214中的所有指令。并且,在方块S811中,指令接收电路210会判断错误处置程序是否已完成。若错误处置程序未已完成,则指令接收电路210会持续侦测错误处置程序是否已完成(即,方块S811),反之,则指令接收电路210会回至待命状态(即,方块S801)。
请参照图9,在方块S901中,存储器管理电路202会处于待命状态,并且在方块S903中,存储器管理电路202会判断指令队列寄存器214是否存有待执行的指令。
倘若指令队列寄存器214存有待执行的指令时,在方块S905中,存储器管理电路202会根据所设定的排序规则将其中一个指令移至指令触发队列寄存器216,以供指令执行控制电路212来执行,并且方块S903的操作会再被执行。倘若指令队列寄存器214未存有待执行的指令时,存储器管理电路202会回到待命状态(即,方块S901)。
请再参照图7,加密/解密电路218电性连接至指令执行控制电路212,并且对数据进行加解密。具体来说,对欲传输至可复写式非易失性存储器模块106的数据会通过加密/解密电路218来进行加密,并且从可复写式非易失性存储器模块106中读取的数据会通过加密/解密电路218来进行解密。特别是,加密/解密电路218会根据写入指令所指示的逻辑地址来使用对应的金钥来加密数据。例如,倘若主机系统1000欲储存数据至属于第一逻辑地址群组的逻辑地址时,加密/解密电路218会以配置给第一逻辑地址群组的金钥来加密欲储存的数据;并且倘若主机系统1000欲储存数据至属于第二逻辑地址群组的逻辑地址时,加密/解密电路218会以配置给第二逻辑地址群组的金钥来加密欲储存的数据。
金钥暂存器220电性连接至加密/解密电路218并且用于暂存用以加密数据或解密数据的金钥。
金钥设定电路222电性连接至加密/解密电路218并且用以将金钥初始地载入至金钥暂存器220。特别是,在本范例实施例中,金钥设定电路222会为不同逻辑地址群组设定不同的金钥。例如,在本范例实施例中,金钥设定电路222为第一逻辑地址群组设定一金钥(以下称为第一金钥),为第二逻辑地址群组设定一金钥(以下称为第二金钥)并且在存储器储存装置100开机时,将第一金钥与第二金钥载入至金钥暂存器220。
图10是根据一范例实施例所绘示的初始化金钥的流程图。
请参照图10,当存储器储存装置100启动时,在方块S1001中,金钥设定电路222会将对应各逻辑地址群组的金钥载入至金钥暂存器220,并且在方块S1003中,金钥设定电路222会判断所有金钥的初始化是否已完成。若金钥的初始化未完成时,则金钥设定电路222会持续侦测所有金钥的初始化是否已完成(即,方块S1003),反之,则在方块S1005中,金钥设定电路222会处于待命状态。
请再参照图7,逻辑地址检查电路224电性连接至加密/解密电路218并且用以识别在主机系统1000所下达的指令中指示的预存取的逻辑地址。在本范例实施例中,加密/解密电路218会根据逻辑地址检查电路224的识别选择对应的金钥来加密主机系统1000欲储存的数据或者解密从可复写式非易失性存储器模块106中读取的数据。例如,在本范例实施例中,逻辑地址检查电路224会识别从主机系统1000中接收的指令是欲存取属于第一逻辑地址群组或第二逻辑地址群组的逻辑地址,并且加密/解密电路218会根据此识别使用第一金钥或第二金钥来加解密数据。
电源管理电路226是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路228是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入命令时,错误检查与校正电路228会为对应此写入命令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入命令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路228会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
在本范例实施例中,当指令执行控制电路212执行指令触发队列寄存器216中的写入指令时,指令执行控制电路212会启动对缓冲存储器208的直接存储器存取(DirectMemory Access,以下简称DMA),并且对应此指令的数据会从缓冲存储器208被传输至可复写式非易失性存储器模块106;并且当指令执行控制电路212执行指令触发队列寄存器216中的读取指令时,指令执行控制电路212会启动对缓冲存储器208的直接存储器存取并且对应此读取指令的数据会从缓冲存储器208传输至主机系统1000。
特别是,在此直接存储器存取期间,逻辑地址检查电路224识别储存所传输的数据之中的每个扇区数据的逻辑地址(以下称为目标逻辑地址)以及此些目标逻辑地址所属的逻辑地址群组,并且加密/解密电路218会根据所识别的逻辑地址群组使用对应的金钥来加密或解密所传输的写入数据的扇区数据。
图11是根据一范例实施例所绘示的执行指令的流程图。
请参照图11,在方块S1101中,指令执行控制电路212会处于待命状态,并且在方块S1103中指令执行控制电路212会判断触发队列寄存器216是否存有指令。
倘若触发队列寄存器216存有指令时,在方块S1105中,指令执行控制电路212会选择一个指令来执行并且启动对缓冲存储器208的一次直接存储器存取以传输对应此指令的数据同时根据此储存此数据的逻辑地址(以下称为目标逻辑地址)以对应的金钥加密或解密此数据。在此,所谓的一次直接存储器存取是指存储器管理电路202指示指令执行控制电路212开始将数据传至存储器或从存储器读取数据,并且传输完成后,指令执行控制电路212中断存储器管理电路202并通知存储器管理电路202数据传输已经结束。
在方块S1107中,指令执行控制电路212会判断指令的执行是否已完成。若指令的执行未完成,则指令执行控制电路212会持续判断指令的执行是否已完成(即,方块S1107),反之,则指令执行控制电路212会处于待命状态(即,方块S1101)。
图12是根据一范例实施例所绘示的在图11的方块S1105中执行写入指令的详细流程图。为了方便说明,以下以写入两个扇区数据为例来说明执行写入指令的流程,但本发明不限于此。
在方块S1201中,指令执行控制电路212会执行写入指令并且启动对缓冲存储器208的直接存储器存取以传输对应此指令的写入数据(包括第一扇区数据与第二扇区数据)。
在方块S1203中,逻辑地址检查电路224识别对应欲储存此写入数据的第一扇区数据的逻辑地址(以下称为第一逻辑地址)的逻辑地址群组(以下称为第一逻辑群组)并且判断对应第一逻辑群组的金钥(以下称为第一金钥)是否已被载入至加密/解密电路218。
若对应第一逻辑群组的第一金钥未被载入至加密/解密电路218时,在方块S1205中,加密/解密电路218会从金钥暂存器220载入第一金钥以进行金钥更换。之后,在方块S1207中,加密/解密电路218会使用第一金钥对所传输的第一扇区数据进行加密,并且加密后的第一扇区数据会被传输至可复写式非易失性存储器模块106。
在方块S1209中,逻辑地址检查电路224识别对应欲储存此写入数据的第二扇区数据的逻辑地址(以下称为第二逻辑地址)的逻辑地址群组(以下称为第二逻辑群组)并且判断对应第二逻辑群组的金钥(以下称为第二金钥)是否已被载入至加密/解密电路218。
若对应第二逻辑群组的第二金钥未被载入至加密/解密电路218时,在方块S1211中,加密/解密电路218会从金钥暂存器220载入第二金钥以进行金钥更换。之后,在方块S1213中,加密/解密电路218会使用第二金钥对所传输的第二扇区数据进行加密,并且加密后的第二扇区数据会被传输至可复写式非易失性存储器模块106。
图13是根据一范例实施例所绘示的在图11的方块S1105中执行读取指令的详细流程图。为了方便说明,以下以写入两个扇区数据为例来说明执行写入指令的流程,但本发明不限于此。
在方块S1301中,指令执行控制电路212会执行读取指令并且启动对缓冲存储器208的直接存储器存取以传输对应此指令的读取数据(包括第一扇区数据与第二扇区数据)。必须了解的是,在启动对缓冲存储器208的直接存储器存取以传输对应此指令的读取数据之前,存储器管理电路202已从可复写式非易失性存储器模块106将此读取数据读取至缓冲存储器208中。
在方块S1303中,逻辑地址检查电路224识别对应欲储存此读取数据的第一扇区数据的逻辑地址(以下称为第一逻辑地址)的逻辑地址群组(以下称为第一逻辑群组)并且判断对应第一逻辑群组的金钥(以下称为第一金钥)是否已被载入至加密/解密电路218。
若对应第一逻辑群组的第一金钥未被载入至加密/解密电路218时,在方块S1305中,加密/解密电路218会从金钥暂存器220载入第一金钥以进行金钥更换。之后,在方块S1307中,加密/解密电路218会使用第一金钥对所传输的第一扇区数据进行解密,并且解密后的第一扇区数据会被传输至主机系统1000。
在方块S1309中,逻辑地址检查电路224识别对应欲储存此写入数据的第二扇区数据的逻辑地址(以下称为第二逻辑地址)的逻辑地址群组(以下称为第二逻辑群组)并且判断对应第二逻辑群组的金钥(以下称为第二金钥)是否已被载入至加密/解密电路218。
若对应第二逻辑群组的第二金钥未被载入至加密/解密电路218时,在方块S1311中,加密/解密电路218会从金钥暂存器220载入第二金钥以进行金钥更换。之后,在方块S1313中,加密/解密电路218会使用第二金钥对所传输的第二扇区数据进行解密,并且解密后的第二扇区数据会被传输至主机系统1000。
综上所述,本发明范例实施例的指令执行方法、存储器控制器与存储器储存装置能够在一次直接存储器存取的触发期间对一个指令中属于不同逻辑地址群组的数据使用对应的金钥来加密,由此可大幅提升数据存取的效能。此外,在本发明范例实施例的指令执行方法、存储器控制器与存储器储存装置中,指令接收与指令执行可独立地被执行,因此,可增加指令执行的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁盘或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种指令执行方法,用于一存储器储存装置,其特征在于,该指令执行方法包括:
将对应该存储器储存装置的多个逻辑地址区分为多个逻辑地址群组;
将多个不同的金钥分别地配置给该些逻辑地址群组,其中一个逻辑地址群组对应一个金钥;
从一主机系统接收一写入指令与对应该写入指令的一写入数据并且将该写入数据暂存至一缓冲存储器,其中该写入数据包括多个扇区数据并且该写入指令指示将该些扇区数据写入至该些逻辑地址之中的多个目标逻辑地址且该些目标逻辑地址属于至少两个不同的逻辑地址群组;以及
执行该写入指令并启动一次直接存储器存取来从该缓冲存储器中传输该写入数据至该存储器储存装置的一可复写式非易失性存储器模块中,且由一加密/解密电路根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的该写入数据的该些扇区数据。
2.根据权利要求1所述的指令执行方法,其特征在于,该些逻辑地址群组包括一第一逻辑地址群组与一第二逻辑地址群组,该些金钥之中的一第一金钥被配置给该第一逻辑地址群组且该些金钥之中的一第二金钥被配置给该第二逻辑地址群组,
其中该些扇区数据包括一第一扇区数据与一第二扇区数据,该写入指令指示将该第一扇区数据写入至该些逻辑地址中属于该第一逻辑地址群组的一第一逻辑地址并且指示将该第二扇区数据写入至该些逻辑地址中属于该第二逻辑地址群组的一第二逻辑地址,
其中上述根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的该写入数据的该些扇区数据的步骤包括:
在传输该第一扇区数据期间,判断配置给该第一逻辑地址群组的该第一金钥是否已被载入至该加密/解密电路;
在传输该第一扇区数据期间,倘若配置给该第一逻辑地址群组的该第一金钥未被载入至该加密/解密电路,将该第一金钥更换至该加密/解密电路中;
在传输该第一扇区数据期间,由该加密/解密电路使用该第一金钥加密所传输的该第一扇区数据,其中加密后的该第一扇区数据会被写入至该可复写式非易失性存储器模块;
在传输该第二扇区数据期间,判断配置给该第二逻辑地址群组的该第二金钥是否已被载入至该加密/解密电路;
在传输该第二扇区数据期间,倘若配置给该第二逻辑地址群组的该第二金钥未被载入至该加密/解密电路,将该第二金钥更换至该加密/解密电路中;以及
在传输该第二扇区数据期间,由该加密/解密电路使用该第二金钥加密所传输的该第二扇区数据,其中加密后的该第二扇区数据会被写入至该可复写式非易失性存储器模块。
3.根据权利要求1所述的指令执行方法,其特征在于,将该些金钥分别地配置给该些逻辑地址群组的步骤包括:
初始地将该些金钥载入至一金钥暂存器中。
4.根据权利要求1所述的指令执行方法,其特征在于,接收该写入指令与对应该写入指令的该写入数据并且将该写入数据暂存至该缓冲存储器的步骤包括:
由一指令接收电路接收该写入指令并且将该写入指令放至一指令队列寄存器;
由该指令接收电路判断该写入指令所指示的该些目标逻辑地址是否已被设定为一写入锁定;以及
倘若该些目标逻辑地址已被设定为该写入锁定时,该指令接收电路从该指令队列寄存器中清除该写入指令。
5.根据权利要求4所述的指令执行方法,其特征在于,还包括:
由一存储器管理电路将该写入指令从该指令队列寄存器移到一指令触发队列寄存器。
6.根据权利要求5所述的指令执行方法,其特征在于,还包括在执行该写入指令并启动该直接存储器存取来从该缓冲存储器中传输该写入数据至该存储器储存装置的该可复写式非易失性存储器模块中之前,从该指令触发队列寄存器中选取该写入指令。
7.根据权利要求1所述的指令执行方法,其特征在于,还包括
从该主机系统接收一读取指令,其中该读取指令指示从该些目标逻辑地址中读取数据;
由一存储器管理电路从该可复写式非易失性存储器模块中将属于该些目标逻辑地址的读取数据读取至该缓冲存储器中;以及
执行该读取指令并启动该直接存储器存取来从该缓冲存储器中传输该读取数据至该主机系统,同时由该加密/解密电路根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来解密所传输的该读取数据的该些扇区数据。
8.一种存储器控制器,其特征在于,包括:
一存储器接口,用以电性连接至一可复写式非易失性存储器模块;
一主机接口,用以电性连接至一主机系统;
一缓冲存储器;
一存储器管理电路,电性连接至该存储器接口、该主机接口与该缓冲存储器;
一指令接收电路,电性连接至该存储器管理电路;
一指令执行控制电路,电性连接至该存储器管理电路;以及
一加密/解密电路,电性连接至该指令执行控制电路,
其中该存储器管理电路用以将多个逻辑地址区分为多个逻辑地址群组,并且将多个不同的金钥分别地配置给该些逻辑地址群组,其中一个逻辑地址群组对应一个金钥,
其中该指令接收电路用以从该主机系统接收一写入指令与对应该写入指令的一写入数据并且将该写入数据暂存至该缓冲存储器,其中该写入数据包括多个扇区数据并且该写入指令指示将该些扇区数据写入至该些逻辑地址之中的多个目标逻辑地址且该些目标逻辑地址属于至少两个不同的逻辑地址群组,
其中该指令执行控制电路用以执行该写入指令并启动一次直接存储器存取来从该缓冲存储器中传输该写入数据至该可复写式非易失性存储器模块中,且该加密/解密电路根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的该写入数据的该些扇区数据。
9.根据权利要求8所述的存储器控制器,其特征在于,还包括一逻辑地址检查电路,电性连接至该加密/解密电路,
其中该些逻辑地址群组包括一第一逻辑地址群组与一第二逻辑地址群组,该些金钥之中的一第一金钥被配置给该第一逻辑地址群组且该些金钥之中的一第二金钥被配置给该第二逻辑地址群组,
其中该些扇区数据包括一第一扇区数据与一第二扇区数据,该写入指令指示将该第一扇区数据写入至该些逻辑地址中属于该第一逻辑地址群组的一第一逻辑地址并且指示将该第二扇区数据写入至该些逻辑地址中属于该第二逻辑地址群组的一第二逻辑地址,
其中在根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的该写入数据的该些扇区数据的操作中,
在传输该第一扇区数据期间,该逻辑地址检查电路用以识别出该写入指令所指示的该第一逻辑地址并识别对应该第一逻辑地址的该第一逻辑地址群组,并且该加密/解密电路会根据该逻辑地址检查电路的识别判断配置给该第一逻辑地址群组的该第一金钥是否已被载入至该加密/解密电路;
在传输该第一扇区数据期间,倘若配置给该第一逻辑地址群组的该第一金钥未被载入至该加密/解密电路,该加密/解密电路会载入该第一金钥;
在传输该第一扇区数据期间,该加密/解密电路使用该第一金钥加密所传输的该第一扇区数据,其中加密后的该第一扇区数据会被写入至该可复写式非易失性存储器模块;
在传输该第二扇区数据期间,该逻辑地址检查电路用以识别出该写入指令所指示的该第二逻辑地址并识别对应该第二逻辑地址的该第二逻辑地址群组,并且该加密/解密电路会根据该逻辑地址检查电路的识别判断配置给该第二逻辑地址群组的该第二金钥是否已被载入至该加密/解密电路;
在传输该第二扇区数据期间,倘若配置给该第二逻辑地址群组的该第二金钥未被载入至该加密/解密电路,该加密/解密电路会载入该第二金钥;以及在传输该第二扇区数据期间,该加密/解密电路使用该第二金钥加密所传输的该第二扇区数据,其中加密后的该第二扇区数据会被写入至该可复写式非易失性存储器模块。
10.根据权利要求8所述的存储器控制器,其特征在于,还包括一金钥暂存器与一金钥设定电路,分别地电性连接至该加密/解密电路,
其中该金钥设定电路初始地将该些金钥载入至该金钥暂存器中。
11.根据权利要求8所述的存储器控制器,其特征在于,还包括一指令队列寄存器,
其中该指令接收电路接收该写入指令并且将该写入指令放至该指令队列寄存器,并且判断该写入指令所指示的该些目标逻辑地址是否已被设定为一写入锁定,
其中倘若该些目标逻辑地址已被设定为该写入锁定时,该指令接收电路从该指令队列寄存器中清除该写入指令。
12.根据权利要求11所述的存储器控制器,其特征在于,还包括一指令触发队列寄存器,
其中该存储器管理电路将该写入指令从该指令队列寄存器移到该指令触发队列寄存器。
13.根据权利要求12所述的存储器控制器,其特征在于,该指令执行控制电路从该指令触发队列寄存器中选取该写入指令来执行。
14.根据权利要求8所述的存储器控制器,其特征在于,该指令接收电路还用以从该主机系统接收一读取指令,其中该读取指令指示从该些目标逻辑地址中读取数据,
其中该存储器管理电路从该可复写式非易失性存储器模块中将属于该些目标逻辑地址的读取数据读取至该缓冲存储器中,
其中该指令执行控制电路执行该读取指令并启动该直接存储器存取来从该缓冲存储器中传输该读取数据至该主机系统,同时该加密/解密电路根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来解密所传输的该读取数据的该些扇区数据。
15.一种存储器储存装置,其特征在于,包括:
一连接器,用以连接至一主机系统;
一可复写式非易失性存储器模块;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,
其中该存储器控制器将对应该存储器储存装置的多个逻辑地址区分为多个逻辑地址群组,
其中该存储器控制器将多个不同的金钥分别地配置给该些逻辑地址群组,其中一个逻辑地址群组对应一个金钥,
其中该存储器控制器接收一写入指令与对应该写入指令的一写入数据并且将该写入数据暂存至一缓冲存储器,其中该写入数据包括多个扇区数据并且该写入指令指示将该些扇区数据写入至该些逻辑地址之中的多个目标逻辑地址且该些目标逻辑地址属于至少两个不同的逻辑地址群组,
其中该存储器控制器执行该写入指令并启动一次直接存储器存取来从该缓冲存储器中传输该写入数据至该可复写式非易失性存储器模块中,且根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来加密所传输的该写入数据的该些扇区数据。
16.根据权利要求15所述的存储器储存装置,其特征在于,该些逻辑地址群组包括一第一逻辑地址群组与一第二逻辑地址群组,该些金钥之中的一第一金钥被配置给该第一逻辑地址群组且该些金钥之中的一第二金钥被配置给该第二逻辑地址群组,
其中该些扇区数据包括一第一扇区数据与一第二扇区数据,该写入指令指示将该第一扇区数据写入至该些逻辑地址中属于该第一逻辑地址群组的一第一逻辑地址并且指示将该第二扇区数据写入至该些逻辑地址中属于该第二逻辑地址群组的一第二逻辑地址,
其中在传输该第一扇区数据期间,该存储器控制器判断配置给该第一逻辑地址群组的该第一金钥是否已被载入,倘若配置给该第一逻辑地址群组的该第一金钥未被载入时,该存储器控制器载入该第一金钥,以及该存储器控制器使用该第一金钥加密所传输的该第一扇区数据,其中加密后的该第一扇区数据会被写入至该可复写式非易失性存储器模块,
其中在传输该第二扇区数据期间,该存储器控制器判断配置给该第二逻辑地址群组的该第二金钥是否已被载入,倘若配置给该第二逻辑地址群组的该第二金钥未被载入时,该存储器控制器载入该第二金钥,以及该存储器控制器使用该第二金钥加密所传输的该第二扇区数据,其中加密后的该第二扇区数据会被写入至该可复写式非易失性存储器模块。
17.根据权利要求15所述的存储器储存装置,其特征在于,该存储器控制器初始地将该些金钥载入至一金钥暂存器中。
18.根据权利要求15所述的存储器储存装置,其特征在于,该存储器控制器接收该写入指令并且将该写入指令放至一指令队列寄存器,并判断该写入指令所指示的该些目标逻辑地址是否已被设定为一写入锁定,
其中倘若该些目标逻辑地址已被设定为该写入锁定时,该存储器控制器从该指令队列寄存器中清除该写入指令。
19.根据权利要求18所述的存储器储存装置,其特征在于,该存储器控制器将该写入指令从该指令队列寄存器移到一指令触发队列寄存器。
20.根据权利要求19所述的存储器储存装置,其特征在于,在执行该写入指令并启动该直接存储器存取来从该缓冲存储器中传输该写入数据至该存储器储存装置的该可复写式非易失性存储器模块中的操作之前,该存储器控制器从该指令触发队列寄存器中选取该写入指令。
21.根据权利要求15所述的存储器储存装置,其特征在于,该存储器控制器还用以接收一读取指令,其中该读取指令用以指示从该些目标逻辑地址中读取数据,
其中该存储器控制器从该可复写式非易失性存储器模块中将属于该些目标逻辑地址的读取数据读取至该缓冲存储器中,
其中该存储器控制器执行该读取指令并启动该直接存储器存取来从该缓冲存储器中传输该读取数据至该主机系统,同时根据对应该些目标逻辑地址的逻辑地址群组使用对应的金钥来解密所传输的该读取数据的该些扇区数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310346785.3A CN104346103B (zh) | 2013-08-09 | 2013-08-09 | 指令执行方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310346785.3A CN104346103B (zh) | 2013-08-09 | 2013-08-09 | 指令执行方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346103A CN104346103A (zh) | 2015-02-11 |
CN104346103B true CN104346103B (zh) | 2018-02-02 |
Family
ID=52501826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310346785.3A Active CN104346103B (zh) | 2013-08-09 | 2013-08-09 | 指令执行方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346103B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3295310A4 (en) * | 2015-05-14 | 2018-12-26 | Adesto Technologies Corporation | Concurrent read and reconfigured write operations in a memory device |
TW201818248A (zh) * | 2016-11-15 | 2018-05-16 | 慧榮科技股份有限公司 | 可應用於資料儲存裝置之記憶體管理方法 |
CN108399328B (zh) * | 2017-02-08 | 2021-04-27 | 新唐科技股份有限公司 | 系统存储器内容认证设备及方法 |
CN106599735B (zh) * | 2017-02-13 | 2023-10-24 | 珠海格力电器股份有限公司 | 数据保护装置、方法以及存储控制器 |
CN109753821B (zh) * | 2017-11-01 | 2022-03-15 | 瑞昱半导体股份有限公司 | 数据存取装置及方法 |
TWI692690B (zh) * | 2017-12-05 | 2020-05-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
CN110069934B (zh) * | 2018-01-23 | 2022-12-13 | 群联电子股份有限公司 | 存储器存储系统、主机系统验证方法及存储器存储装置 |
GB201807257D0 (en) * | 2018-05-02 | 2018-06-13 | Nordic Semiconductor Asa | Cryptographic key distribution |
CN110580230B (zh) * | 2018-06-11 | 2022-11-22 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN110770699A (zh) * | 2018-08-22 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据指令处理方法、存储芯片、存储系统和可移动平台 |
TWI691895B (zh) * | 2018-12-28 | 2020-04-21 | 新唐科技股份有限公司 | 資料寫入方法、燒錄系統、資料更新方法以及儲存裝置 |
US10891184B2 (en) * | 2019-05-22 | 2021-01-12 | Macronix International Co., Ltd. | Configurable data integrity mode, and memory device including same |
FR3105853B1 (fr) * | 2019-12-31 | 2023-01-06 | Proton World Int Nv | Système embarqué |
US11216348B2 (en) * | 2020-03-02 | 2022-01-04 | Silicon Motion, Inc. | All flash array server and control method thereof |
CN114489478A (zh) * | 2021-12-20 | 2022-05-13 | 山西转型综改示范区华纳方盛科技有限公司 | 数据记录仪的数据存储方法、数据存储模块及数据记录仪 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101097550A (zh) * | 2006-06-26 | 2008-01-02 | 索尼株式会社 | 存储器存取控制设备和方法、以及通信设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071973A1 (en) * | 2000-01-06 | 2008-03-20 | Chow David Q | Electronic data flash card with various flash memory cells |
JP2005328149A (ja) * | 2004-05-12 | 2005-11-24 | Nec Electronics Corp | 検索プログラム、検索用回路及びルータ |
US8271801B2 (en) * | 2009-11-19 | 2012-09-18 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing data confidentiality and integrity of shingled written data |
US8788788B2 (en) * | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
-
2013
- 2013-08-09 CN CN201310346785.3A patent/CN104346103B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101097550A (zh) * | 2006-06-26 | 2008-01-02 | 索尼株式会社 | 存储器存取控制设备和方法、以及通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104346103A (zh) | 2015-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346103B (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
TWI479359B (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
TWI475385B (zh) | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
US8589669B2 (en) | Data protecting method, memory controller and memory storage device | |
CN101944386B (zh) | 识别闪速存储器中错误数据的控制电路及存储系统与方法 | |
CN103699491B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN104793891B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI498738B (zh) | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 | |
CN103257938B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN104536906B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103914391B (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN102789430B (zh) | 存储器储存装置、其存储器控制器与存取方法 | |
CN102446137A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104573537B (zh) | 数据处理方法、存储器存储装置与存储器控制电路单元 | |
CN107045890A (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
CN106814968A (zh) | 存储器管理方法与系统及其存储器存储装置 | |
CN103218319B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN105183660B (zh) | 数据读取方法、存储器控制器与储存装置 | |
CN102087632B (zh) | 用于闪存的数据储存方法及其控制器与储存系统 | |
CN103870408B (zh) | 数据处理方法、存储器控制器与存储器储存装置 | |
CN102375943B (zh) | 识别码产生方法与存储器管理方法、控制器及储存系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |