CN112540932B - 存储控制器以及写入辅助方法 - Google Patents
存储控制器以及写入辅助方法 Download PDFInfo
- Publication number
- CN112540932B CN112540932B CN201910894256.4A CN201910894256A CN112540932B CN 112540932 B CN112540932 B CN 112540932B CN 201910894256 A CN201910894256 A CN 201910894256A CN 112540932 B CN112540932 B CN 112540932B
- Authority
- CN
- China
- Prior art keywords
- logical address
- write
- logical
- data
- address
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000013507 mapping Methods 0.000 claims description 60
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 12
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 11
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013523 data management Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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]
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)
- Memory System (AREA)
Abstract
本发明提供一种存储控制器以及写入辅助方法。所述写入辅助方法包括:判断相应于写入指令的第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址。反应于判定所述第一逻辑地址不为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址,识别相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度;根据所述页面偏移长度来计算存取偏移长度;以及反应于判定相应于写入指令的写入数据的所述数据大小大于所述存取偏移长度,根据所述第一逻辑地址与所述存取偏移长度,将相应于所述写入指令的逻辑地址从所述第一逻辑地址调整为第二逻辑地址;以及指示所述处理器将所述写入数据写入至所述第二逻辑地址。
Description
技术领域
本发明涉及一种存储控制器以及所述存储控制器所使用的写入辅助方法。
背景技术
闪存的读/写操作的最小单位为实体页面,不同的闪存的实体页面大小也可能不同。执行于主机系统的作业系统在管理数据时,会以分区的形式管理所储存的数据。每一个分区通常会有一个分区起始偏移。在微软作业系统中,数据管理的最小单位叫做“簇”。一般来说,簇的大小的整数倍可等于实体页面的大小。当分区起始偏移的大小不等于实体页面Page大小的整数倍时,会导致在分区起始偏移之后被储存的数据无法从一个实体页面的起始实体地址被储存,从而造成了之后所储存的数据无法对齐实体页面。在此一个簇的数据需要跨越两个不同的实体页面情况下,存储装置需要执行额外的读/写操作,以读/写原本只需执行一次的读/写操作的数据,导致了读/写性能的降低。
发明内容
本发明是针对用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器以及所述存储控制器所使用的写入辅助方法。
本发明的实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、写入辅助电路单元及处理器。所述连接接口电路用以耦接至主机系统。所述存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体页面。所述处理器耦接至所述连接接口电路、所述存储器接口控制电路及所述写入辅助电路单元。所述写入辅助电路单元用以根据写入指令执行写入辅助操作,其中所述写入指令用以指示将写入数据写入至第一逻辑地址,在所述写入辅助操作中,所述写入辅助电路单元用以判断所述第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址,其中反应于判定所述第一逻辑地址不为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址,所述写入辅助电路单元还用以识别相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度,其中所述写入辅助电路单元还用以根据所述页面偏移长度来计算存取偏移长度,其中所述写入辅助电路单元还用以判断所述写入数据的数据大小是否大于所述存取偏移长度。反应于判定所述写入数据的所述数据大小大于所述存取偏移长度,所述写入辅助电路单元还用以根据所述第一逻辑地址与所述存取偏移长度,将相应于所述写入指令的逻辑地址从所述第一逻辑地址调整为第二逻辑地址,其中所述写入辅助电路单元还用以指示所述处理器将所述写入数据写入至所述第二逻辑地址,以完成所述写入辅助操作。
在本发明的一实施例中,在执行判断所述第一逻辑地址是否为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址的运作后,反应于判定所述第一逻辑地址为所述逻辑页面的所述起始地址,所述写入辅助电路单元指示所述处理器将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址相等于所述第一逻辑地址。此外,所述写入辅助电路单元根据所述写入数据的所述数据大小来更新所述目标逻辑页面的所述页面偏移长度。
在本发明的一实施例中,在执行判断所述写入数据的所述数据大小是否大于所述存取偏移长度的运作后,反应于判定所述写入数据的所述数据大小不大于所述存取偏移长度,所述写入辅助电路单元指示所述处理器将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址相等于所述第一逻辑地址。此外,所述写入辅助电路单元根据所述写入数据的所述数据大小来更新所述目标逻辑页面的所述页面偏移长度。
在本发明的一实施例中,在指示所述处理器将所述写入数据写入至所述第二逻辑地址的运作中,所述写入辅助电路单元还记录所述第一逻辑地址与所述第二逻辑地址的映像关系于真实-虚拟逻辑映射表中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表中的真实逻辑地址栏位,并且所述第二逻辑地址被记录至所述真实-虚拟逻辑映射表中的虚拟逻辑地址栏位。此外,在指示所述处理器将所述写入数据写入至所述第三逻辑地址的运作中,所述写入辅助电路单元还记录所述第一逻辑地址与所述第三逻辑地址的映像关系于所述真实-虚拟逻辑映射表中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述真实逻辑地址栏位,并且所述第三逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述虚拟逻辑地址栏位。
在本发明的一实施例中,反应于被指示将所述写入数据写入至所述第二逻辑地址,所述处理器指示所述存储器接口控制电路将所述写入数据程序化至相应于所述第二逻辑地址的目标实体地址,并且记录所述第二逻辑地址与所述目标实体地址之间的映像关系于逻辑转实体地址映像表。此外,反应于被指示将所述写入数据写入至所述第三逻辑地址,所述处理器指示所述存储器接口控制电路将所述写入数据程序化至相应于所述第三逻辑地址的另一目标实体地址,并且记录所述第三逻辑地址与所述另一目标实体地址之间的映像关系于所述逻辑转实体地址映像表。
本发明的实施例提供一种写入辅助方法。所述方法包括:根据写入指令执行写入辅助操作,其中所述写入指令用以指示将写入数据写入至第一逻辑地址,其中所述写入辅助操作包括下列步骤:判断所述第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址。反应于判定所述第一逻辑地址不为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址,识别相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度;根据所述页面偏移长度来计算存取偏移长度;以及判断所述写入数据的数据大小是否大于所述存取偏移长度。反应于判定所述写入数据的所述数据大小大于所述存取偏移长度,根据所述第一逻辑地址与所述存取偏移长度,将相应于所述写入指令的逻辑地址从所述第一逻辑地址调整为第二逻辑地址;以及指示所述处理器将所述写入数据写入至所述第二逻辑地址,以完成所述写入辅助操作。
基于上述,本发明实施例所提供的存储控制器以及写入辅助方法,可根据判断相应于写入指令的第一逻辑地址是否为特定逻辑地址和/或判断相应于所述写入指令的写入数据的数据大小是否大于所计算的存取偏移长度,以判断使否将所述第一逻辑地址调整至第二逻辑地址,从而将所述写入数据写入至第二逻辑地址或相等于所述第一逻辑地址的第三逻辑地址。如此一来,本发明实施例所提供的存储控制器以及写入辅助方法,可使一般的写入数据以对齐逻辑页面的方式被写入至逻辑页面及相应的实体页面,以使对齐后所储存的写入数据可有效率地被存取,从而增加存储装置的存取效率。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1为根据本发明的实施例所示出的主机系统与存储装置的方块示意图。
图2为根据本发明的实施例所示出的写入辅助方法的流程图。
图3A~3B为根据本发明的实施例所示出的写入系统信息的示意图。
图4A~4B为根据本发明的实施例所示出的写入非系统信息的写入数据的示意图。
图5A~5B为根据本发明的实施例所示出的写入非系统信息的另一写入数据的示意图。
图6为根据本发明的实施例所示出的真实-虚拟逻辑地址映像表的示意图。
附图标号说明:
10:主机系统;
110、211:处理器;
120:主机存储器;
130:数据传输接口电路;
210:存储控制器;
212:数据管理电路;
213:存储器接口控制电路;
214:错误检查与校正电路;
215:写入辅助电路单元;
216:缓冲存储器;
217:电源管理电路;
220:可复写式非易失性存储器模块;
230:连接接口电路;
S21、S22、S23、S24、S25、S26、S27、S28、S29:写入辅助方法的流程步骤;
A31、A41、A51:箭头;
310:逻辑区块;
320(1)、320(2)、320(3)、320(4)、320(5)、320(6):逻辑页面;
BID:系统信息数据/区块信息数据;
LBA0、LBA1、LBA2、LBA3:逻辑地址;
UD1、UD2:非系统信息的写入数据/使用者数据);
BIDL、UDL1、UDL2:数据大小/写入数据的长度(大小);
BO1、BO2:页面偏移长度;
IO1、IO2:存取偏移长度;
T600:真实-虚拟逻辑地址映像表。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在附图和描述中用来表示相同或相似部分。
图1为根据本发明的实施例所示出的主机系统与存储装置的方块示意图。请参照图1,主机系统10例如是个人电脑、笔记本电脑、服务器。主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120、数据传输接口电路(Data TransferInterface Circuit)130、存储装置140。在本实施例中,处理器110耦接(也称,电性连接)至主机存储器120、数据传输接口电路130及存储装置。在另一实施例中,处理器(Processor)110、主机存储器120、数据传输接口电路130及存储装置140之间利用系统总线(SystemBus)彼此耦接。在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataManagement Circuit)212与存储器接口控制电路(Memory Interface Control Circuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是U盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线耦接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、串行高级技术附件(Serial Advanced Technology Attachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(UniversalFlash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211被多个控制指令/程序码所程序化,并且在存储装置20运作时,此些控制指令/程序码会被执行以进行数据的写入、读取与抹除等运作。此外,在本实施例中,所述控制指令/程序码还可被执行以进行写入辅助操作,以实现本发明所提供的写入辅助方法。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路组件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器210各部件所执行的操作也可视为存储控制器210所执行的操作。
其中,数据管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据(数据可读取自一或多个实体单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。
存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、辅助写入数据操作的写入辅助指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
此外,存储控制器210会建立逻辑转实体地址映像表(Logical To Physicaladdress mapping table)与实体转逻辑地址映像表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元/实体区块、实体页面、实体扇区)之间的地址映像关系。换言之,存储控制器210可通过逻辑转实体地址映像表来查找逻辑单元所映射的实体单元(如,查找逻辑页面所映射的实体页面;查找逻辑地址所映像的实体地址),并且存储控制器210可通过实体转逻辑地址映像表来查找实体单元所映射的逻辑单元(如,查找实体页面所映射的逻辑页面;查找实体地址所映像的逻辑地址)。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段且非本发明所欲阐述的技术方案,不再赘述于此。
在本实施例中,错误检查与校正电路214是耦接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传错误比特数给处理器211。
在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是耦接至处理器211并且用以控制存储装置20的电源。
可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple LevelCell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quadruple Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flashmemory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元(也称为记忆胞,Memory Cell)是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线耦接至多个存储单元。同一条字线上的多个存储单元会组成一个实体程序化单元(也称,实体页面)。此外,多个实体页面可组成一个实体区块(也称,实体抹除单元)。
在本实施例中,每次被写入至可复写式非易失性存储器模块220中的写入数据的数据大小的最小单位是簇(Cluster)。主机系统10所执行的作业系统会利用簇为最小单位来存取/管理写入至逻辑页面中的数据,并且作业系统可掌握/管理每个数据的逻辑地址与大小。一个簇的大小可小于或等于一个实体页面的大小。一个簇可具有多个扇区(Sector)。一个簇的大小可小于或等于一个逻辑页面。
为了方便说明,在以下的实施例中,一个簇的大小等于一个实体页面的大小,并且一个实体页面的大小也等于一个逻辑页面的大小。此外,假设可复写式非易失性存储器模块220的每一个实体页面的大小为512个字节(Bytes)。但,应注意的是,本发明并不限定于每一个实体页面、逻辑页面、簇的大小。
在本实施例中,在根据写入指令来写入相应所述写入指令的写入数据至可复写式非易失性存储器模块之前,处理器211可指示写入辅助电路单元215执行数据写入辅助操作以实现本发明所提供的数据写入辅助方法,从而获得实际上所写入的逻辑地址(如,虚拟逻辑地址),并且使被写入的非系统信息的写入数据可自动化且有效率地对齐至逻辑页面。
图2为根据本发明的实施例所示出的数据写入辅助方法的流程图。请参照图2,在步骤S21中,写入辅助电路单元215根据写入指令执行写入辅助操作,其中所述写入指令用以指示将写入数据写入至第一逻辑地址。在本实施例中,写入数据可包括:为系统信息的数据(也称,系统信息数据)与非系统信息的数据(也称,非系统信息数据)。若写入数据为系统信息数据,写入指令也可被称为系统信息写入指令;若写入数据为非系统信息数据,写入指令也可被称为一般写入指令。
所执行的写入辅助操作包括步骤S22~S29。
在步骤S22中,写入辅助电路单元215判断所述第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址。具体来说,写入辅助电路单元215可根据所述第一逻辑地址的值来识别所指向的逻辑页面(即,目标逻辑页面),并且可判断所述第一逻辑地址是否为目标逻辑页面的第一个逻辑地址(起始逻辑地址)。
此外,在本实施例中,若所述第一逻辑地址为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址(如,所述目标逻辑页面的第一个逻辑地址,即,排序在所述目标逻辑页面的所有逻辑地址中的最前面的逻辑地址),写入辅助电路单元215会判定所述写入指令用以写入系统信息数据。也就是说,在本实施例中,系统信息数据会被写入至所述目标逻辑页面的起始逻辑地址(如,逻辑地址LBA0)。值得一提的是,在本实施例中,用以储存系统信息数据的目标逻辑页面是一个逻辑区块(也称,逻辑分区)的所有逻辑页面中排列在最前面的逻辑页面。换句话说,若所述第一逻辑地址为一个逻辑区块的起始逻辑地址,写入辅助电路单元215可判定所述写入指令为系统信息写入指令。即,写入辅助电路单元215也可根据判断所述第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑区块的起始逻辑地址,来判断写入指令是否为系统信息写入指令。在一实施例中,被写入的所述系统信息数据为用以记录相应于所属的逻辑区块的区块信息的数据。
反应于判定所述第一逻辑地址为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址(S22→是),写入辅助电路单元215执行步骤S23;反应于判定所述第一逻辑地址不为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址(S22→否),写入辅助电路单元215执行步骤S25。
在步骤S23中,写入辅助电路单元215指示处理器211将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址相等于所述第一逻辑地址。具体来说,于步骤S23中,写入辅助电路单元215会不调整第一逻辑地址为第二逻辑地址,并且直接指示处理器211根据第一逻辑地址(即,第三逻辑地址)来将相应于写入指令的写入数据写入至第一逻辑地址(第三逻辑地址)。换句话说,从步骤S22至步骤S23的过程中,写入辅助电路单元215会判定相应于所述写入指令的写入数据为系统信息数据,并且所述系统信息数据应直接被写入至所指定的第一逻辑地址。
接着,在步骤S24中,写入辅助电路单元215根据所述写入数据的所述数据大小来更新相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度。具体来说,在写入辅助电路单元215指示处理器211将系统信息数据写入至起始逻辑地址后,写入辅助电路单元215会根据系统信息数据的数据大小来记录系统信息数据所占用的空间/长度,并且将所述系统信息数据的数据大小作为储存系统信息数据的目标逻辑页面的页面偏移长度。若有旧的目标逻辑页面的页面偏移长度,也会被相应地更新。以下先利用图3A~3B来说明。
图3A~3B为根据本发明的实施例所示出的写入系统信息的示意图。请先参照图3A,为了方便说明,假设逻辑区块310具有6个逻辑页面320(1)~320(6),并且写入指令用以指示将写入数据BID写入至第一逻辑地址LBA0。在这个例子中,写入辅助电路单元215会判定所述第一逻辑地址LBA0为相应于所述第一逻辑地址LBA0的目标逻辑页面320(1)的起始逻辑地址。写入辅助电路单元215还可识别到所述写入指令为系统信息写入指令,并且相应的写入数据BID为系统信息数据BID。
接着,如箭头A31所示,写入辅助电路单元215会指示处理器211将写入数据BID直接写入至第三逻辑地址LBA0(即,第一逻辑地址LBA0)(步骤S23)。
此外,写入辅助电路单元215还会根据写入数据BID的数据大小BIDL来记录/更新为目标逻辑页面320(1)的页面偏移长度BO1(步骤S24)。
请再回到图2,另一方面,在步骤S25中,写入辅助电路单元215识别相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度。具体来说,写入辅助电路单元215可记录储存有数据的逻辑页面的页面偏移长度,并且写入辅助电路单元215可直接根据目标逻辑页面的识别码(或逻辑地址/起始逻辑地址)来查找到相应于目标逻辑页面的页面偏移长度。例如,假设目标逻辑页面为图3B中的逻辑页面320(1),写入辅助电路单元215可识别目标逻辑页面320(1)的页面偏移长度BO1。
接着,在步骤S26中,写入辅助电路单元215根据所述页面偏移长度来计算存取偏移长度。请参照图3B,举例来说,写入辅助电路单元215可根据目标逻辑页面320(1)的总空间/总长度(也称,逻辑页面长度)与页面偏移长度BO1来计算目标逻辑页面320(1)的存取偏移长度IO1。应注意的是,在一实施例中,所述存取偏移长度IO1也可相等于目标逻辑页面的剩余空间的长度/大小。
值得一提的是,在本实施例中,写入辅助电路单元215可根据下列公式(F1)来计算存取偏移长度:
存取偏移长度={[(页面偏移长度+逻辑页面长度-1)/逻辑页面长度]*逻辑页面长度-页面偏移长度}(F1)
应注意的是,在上述公式中,运算符“/”用以表示计算“(页面偏移长度+逻辑页面长度-1)”除以“逻辑页面长度”的商。
在计算出目标逻辑页面的存取偏移长度后,在步骤S27中,写入辅助电路单元215判断所述写入数据的数据大小是否大于所述存取偏移长度。
反应于判定所述写入数据的数据大小大于所述存取偏移长度(S27→是),写入辅助电路单元215执行步骤S28;反应于判定所述写入数据的数据大小不大于所述存取偏移长度(S27→否),写入辅助电路单元215执行步骤S23。
值得一提的是,从步骤S27至步骤S23的过程中,写入辅助电路单元215会判定相应于所述写入指令的写入数据可被写入至目标逻辑页面中的剩余空间(可用空间)且不超过所述剩余空间(即,所述写入数据并不会跨越两个逻辑页面)。因此,写入辅助电路单元215会判定所述写入数据可直接被写入至所指定的第一逻辑地址,从而执行步骤S23。
另一方面,在步骤S28中,根据所述第一逻辑地址与所述存取偏移长度,将相应于所述写入指令的逻辑地址从所述第一逻辑地址调整为第二逻辑地址。即,从步骤S27至步骤S28的过程中,写入辅助电路单元215会判定相应于所述写入指令的写入数据在被写入至目标逻辑页面中的剩余空间(可用空间)后会超过所述剩余空间(即,所述写入数据会跨越两个逻辑页面(目标逻辑页面与排列在目标逻辑页面后的逻辑页面))。因此,写入辅助电路单元215会判定所述写入数据不可直接被写入至所指定的第一逻辑地址,并且执行步骤S28,以将用以储存写入数据的逻辑地址从所述第一逻辑地址调整为第二逻辑地址。
在本实施例中,写入辅助电路单元215可直接将所述第一逻辑地址加上目标逻辑页面的存取偏移长度所获得的总和作为第二逻辑地址的值。
接着,在步骤S29中,写入辅助电路单元215指示处理器211将所述写入数据写入至所述第二逻辑地址,以完成所述写入辅助操作。
应注意的是,反应于被指示将所述写入数据写入至所述第二逻辑地址,所述处理器211指示所述存储器接口控制电路213将所述写入数据程序化至相应于所述第二逻辑地址的目标实体地址,并且记录所述第二逻辑地址与所述目标实体地址之间的映像关系于逻辑转实体地址映像表,
反应于被指示将所述写入数据写入至所述第三逻辑地址,所述处理器211指示所述存储器接口控制电路213将所述写入数据程序化至相应于所述第三逻辑地址的另一目标实体地址,并且记录所述第三逻辑地址与所述另一目标实体地址之间的映像关系于所述逻辑转实体地址映像表。
以下利用图4A~4B、图5A~5B来举例说明步骤S25→步骤S29的例子以及步骤S25→步骤S24的例子。
图4A~4B为根据本发明的实施例所示出的写入非系统信息的写入数据的示意图。请先参照图4A,为了方便说明,假设图4A是接续图3B的例子,逻辑区块310具有6个逻辑页面320(1)~320(6),逻辑页面320(1)已经被写入系统信息数据BID,并且写入指令用以指示将写入数据UD1写入至第一逻辑地址LBA1。在这个例子中,写入辅助电路单元215会判定所述第一逻辑地址LBA1不为相应于所述第一逻辑地址LBA1的目标逻辑页面320(1)的起始逻辑地址(S22→否→S25)。写入辅助电路单元215可识别到所述写入指令为非系统信息写入指令,并且相应的写入数据UD1为非系统信息数据UD1。接着,写入辅助电路单元215可识别相应于所述第一逻辑地址LBA1的所述目标逻辑页面320(1)的页面偏移长度BO1(步骤S25)。接着,写入辅助电路单元215可根据所述页面偏移长度BO1来计算存取偏移长度IO1(步骤S26)。接着,写入辅助电路单元215可判断所述写入数据UD1的数据大小UDL1是否大于所述存取偏移长度IO1(步骤S27)。
在此例子中,写入辅助电路单元215会判定数据大小UDL1大于所述存取偏移长度IO1(步骤S27→是→步骤S28)。接着,写入辅助电路单元215根据所述第一逻辑地址LBA1与所述存取偏移长度IO1,将相应于所述写入指令的逻辑地址从所述第一逻辑地址LBA1调整为第二逻辑地址LBA2(步骤S28)。接着,请参照图4B,如箭头A41所示,写入辅助电路单元215会指示处理器211将写入数据UD1写入至第二逻辑地址LBA2(步骤S29)(相应于第二逻辑地址LBA2的目标逻辑页面为逻辑页面320(2))。换句话说,在此例子中,写入辅助电路单元215会判定写入数据UD1原本的第一逻辑地址LBA1并没有对齐目标逻辑页面,并且会使写入数据UD1在依据第一逻辑地址LBA1被写入且跨越两个逻辑页面,从而导致了后续存取此依据第一逻辑地址LBA1被写入的写入数据UD1的效率低下(因为,需要调用两个实体页面来存取此相应于第一逻辑地址LBA1的写入数据UD1)。因此,写入辅助电路单元215会调整第一逻辑地址LBA1为第二逻辑地址LBA2,以使写入数据UD1在依据第二逻辑地址LBA2被写入至目标逻辑页面320(2)后,写入数据UD1可对齐至目标逻辑页面320(2)(即,从目标逻辑页面320(2)的起始逻辑地址开始被程序化/写入)。如图4B所示,依据第二逻辑地址LBA2被写入的数据UD1已经对齐目标逻辑页面320(2)并且也没有跨越两个逻辑页面,从而避免了传统的单一簇大小的写入数据会跨越两个逻辑页面所导致的存取效率降低的问题。
应注意的是,在执行完步骤S29后,写入辅助电路单元215可更新目标逻辑页面320(1)的页面偏移长度(即,新的目标逻辑页面320(1)的页面偏移长度为目标逻辑页面320(1)的逻辑页面长度)。
图5A~5B为根据本发明的实施例所示出的写入非系统信息的另一写入数据的示意图。请先参照图5A,为了方便说明,假设图5A是接续图3B的例子,逻辑区块310具有6个逻辑页面320(1)~320(6),逻辑页面320(1)已经被写入系统信息数据BID,并且写入指令用以指示将另一写入数据UD2写入至第一逻辑地址LBA3。在这个例子中,写入辅助电路单元215会判定所述第一逻辑地址LBA3不为相应于所述第一逻辑地址LBA3的目标逻辑页面320(1)的起始逻辑地址(S22→否→S25)。写入辅助电路单元215可识别到所述写入指令为非系统信息写入指令,并且相应的写入数据UD2为非系统信息数据UD2。接着,写入辅助电路单元215可识别相应于所述第一逻辑地址LBA3的所述目标逻辑页面320(1)的页面偏移长度BO1(步骤S25)。接着,写入辅助电路单元215可根据所述页面偏移长度BO1来计算存取偏移长度IO1(步骤S26)。接着,写入辅助电路单元215可判断所述写入数据UD2的数据大小UDL2是否大于所述存取偏移长度IO1(步骤S27)。
请参照图5B,在此例子中,写入辅助电路单元215会判定数据大小UDL2不大于所述存取偏移长度IO1(步骤S27→否→步骤S23)。接着,如箭头A51所示,写入辅助电路单元215直接指示处理器211将写入数据UD2写入至第三逻辑地址LBA3(即,第一逻辑地址LBA3)(步骤S23)。
在执行完步骤S23后,接续执行步骤S24,写入辅助电路单元215根据旧的页面偏移长度与写入数据UD2的数据大小UDL2来更新目标逻辑页面320(1)的页面偏移长度(即,新的目标逻辑页面320(1)的页面偏移长度BO2为旧的页面偏移长度BO1加上数据大小UDL2的总和)。
应注意的是,目标逻辑页面320(1)的新的存取偏移长度IO2也会根据新的页面偏移长度BO2而被重新计算。
图6为根据本发明的实施例所示出的真实-虚拟逻辑地址映像表的示意图。请参照图6,在本实施例中,写入辅助电路单元215可记录所处理过的第一逻辑地址与对应的第二逻辑地址,以及第一逻辑地址与对应的第三逻辑地址于真实-虚拟逻辑地址映射表T600中。
具体来说,在指示所述处理器211将所述写入数据写入至所述第二逻辑地址的运作中(如,图4B的例子),所述写入辅助电路单元215还记录所述第一逻辑地址与所述第二逻辑地址的映像关系于真实-虚拟逻辑映射表T600中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表T600中的真实逻辑地址栏位,并且所述第二逻辑地址被记录至所述真实-虚拟逻辑映射表中的虚拟逻辑地址栏位。
此外,在指示所述处理器211将所述写入数据写入至所述第三逻辑地址的运作中(如,图3B或图5B的例子),所述写入辅助电路单元215还记录所述第一逻辑地址与所述第三逻辑地址的映像关系于所述真实-虚拟逻辑映射表T600中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表T600中的所述真实逻辑地址栏位,并且所述第三逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述虚拟逻辑地址栏位。
如此一来,当要执行对应一个逻辑地址(真实逻辑地址)的读取指令时,处理器211可先至真实-虚拟逻辑映射表T600查找对应所述真实逻辑地址的虚拟逻辑地址,再根据所查找到的虚拟逻辑地址来至逻辑实体地址映像表中来查找映射至所查找到的所述虚拟逻辑地址的实体地址,以从所述实体地址中来读取数据,将所读取的数据作为相应至真实逻辑地址的数据以回应所述读取指令。
值得一提的是,在其他实施例中,所述写入辅助电路单元215可被实做为软件或固件的形式,被程序化至数据传输接口电路130或连接接口电路230,或是被处理器211所执行,从而实现本发明所提供的写入辅助方法。
基于上述,本发明实施例所提供的存储控制器以及写入辅助方法,可根据判断相应于写入指令的第一逻辑地址是否为特定逻辑地址和/或判断相应于所述写入指令的写入数据的数据大小是否大于所计算的存取偏移长度,以判断使否将所述第一逻辑地址调整至第二逻辑地址,从而将所述写入数据写入至第二逻辑地址或相等于所述第一逻辑地址的第三逻辑地址。如此一来,本发明实施例所提供的存储控制器以及写入辅助方法,可使一般的写入数据以对齐逻辑页面的方式被写入至逻辑页面及相应的实体页面,以使对齐后所储存的写入数据可有效率地被存取,从而增加存储装置的存取效率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,其特征在于,所述存储控制器包括:
连接接口电路,用以耦接至主机系统;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体页面;
写入辅助电路单元;以及
处理器,耦接至所述连接接口电路、所述存储器接口控制电路及所述写入辅助电路单元,
其中所述写入辅助电路单元用以根据写入指令执行写入辅助操作,其中所述写入指令用以指示将写入数据写入至第一逻辑地址,在所述写入辅助操作中,
所述写入辅助电路单元还用以判断所述第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址,
其中反应于判定所述第一逻辑地址不为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址,所述写入辅助电路单元还用以识别相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度,其中所述写入辅助电路单元还用以根据所述页面偏移长度来计算存取偏移长度,
其中所述写入辅助电路单元还用以判断所述写入数据的数据大小是否大于所述存取偏移长度,
反应于判定所述第一逻辑地址为所述逻辑页面的所述起始逻辑地址,所述写入辅助电路单元指示所述处理器将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址相等于所述第一逻辑地址,其中所述写入辅助电路单元根据所述写入数据的所述数据大小来更新所述目标逻辑页面的所述页面偏移长度,
其中反应于判定所述写入数据的所述数据大小大于所述存取偏移长度,所述写入辅助电路单元还用以根据所述第一逻辑地址与所述存取偏移长度,将相应于所述写入指令的逻辑地址从所述第一逻辑地址调整为第二逻辑地址,其中所述写入辅助电路单元还用以指示所述处理器将所述写入数据写入至所述第二逻辑地址,以完成所述写入辅助操作,
反应于判定所述写入数据的所述数据大小不大于所述存取偏移长度,所述写入辅助电路单元将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址等于所述第一逻辑地址,其中所述写入辅助电路单元根据所述写入数据的所述数据大小来更新所述目标逻辑页面的所述页面偏移长度。
2.根据权利要求1所述的存储控制器,其特征在于:
在指示所述处理器将所述写入数据写入至所述第二逻辑地址的运作中,所述写入辅助电路单元还记录所述第一逻辑地址与所述第二逻辑地址的映像关系于真实-虚拟逻辑映射表中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表中的真实逻辑地址栏位,并且所述第二逻辑地址被记录至所述真实-虚拟逻辑映射表中的虚拟逻辑地址栏位,
在指示所述处理器将所述写入数据写入至所述第三逻辑地址的运作中,所述写入辅助电路单元还记录所述第一逻辑地址与所述第三逻辑地址的映像关系于所述真实-虚拟逻辑映射表中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述真实逻辑地址栏位,并且所述第三逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述虚拟逻辑地址栏位。
3.根据权利要求2所述的存储控制器,其特征在于:
反应于被指示将所述写入数据写入至所述第二逻辑地址,所述处理器指示所述存储器接口控制电路将所述写入数据程序化至相应于所述第二逻辑地址的目标实体地址,并且记录所述第二逻辑地址与所述目标实体地址之间的映像关系于逻辑转实体地址映像表,
反应于被指示将所述写入数据写入至所述第三逻辑地址,所述处理器指示所述存储器接口控制电路将所述写入数据程序化至相应于所述第三逻辑地址的另一目标实体地址,并且记录所述第三逻辑地址与所述另一目标实体地址之间的映像关系于所述逻辑转实体地址映像表。
4.一种写入辅助方法,其特征在于,包括:
根据写入指令执行写入辅助操作,其中所述写入指令用以指示将写入数据写入至第一逻辑地址,其中所述写入辅助操作包括下列步骤:
判断所述第一逻辑地址是否为相应于所述第一逻辑地址的目标逻辑页面的起始逻辑地址;
其中反应于判定所述第一逻辑地址不为相应于所述第一逻辑地址的所述目标逻辑页面的所述起始逻辑地址,识别相应于所述第一逻辑地址的所述目标逻辑页面的页面偏移长度;
根据所述页面偏移长度来计算存取偏移长度;
根据所述写入数据的所述数据大小来更新所述目标逻辑页面的所述页面偏移长度;以及
判断所述写入数据的数据大小是否大于所述存取偏移长度,
反应于判定所述第一逻辑地址为所述逻辑页面的所述起始逻辑地址,将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址相等于所述第一逻辑地址;
其中反应于判定所述写入数据的所述数据大小大于所述存取偏移长度,根据所述第一逻辑地址与所述存取偏移长度,将相应于所述写入指令的逻辑地址从所述第一逻辑地址调整为第二逻辑地址;以及
指示处理器将所述写入数据写入至所述第二逻辑地址,以完成所述写入辅助操作;
反应于判定所述写入数据的所述数据大小不大于所述存取偏移长度,将所述写入数据写入至第三逻辑地址,以完成所述写入辅助操作,其中所述第三逻辑地址相等于所述第一逻辑地址;以及
根据所述写入数据的所述数据大小来更新所述目标逻辑页面的所述页面偏移长度。
5.根据权利要求4所述的写入辅助方法,其特征在于:
所述将所述写入数据写入至所述第二逻辑地址的步骤包括:
记录所述第一逻辑地址与所述第二逻辑地址的映像关系于真实-虚拟逻辑映射表中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表中的真实逻辑地址栏位,并且所述第二逻辑地址被记录至所述真实-虚拟逻辑映射表中的虚拟逻辑地址栏位;
所述将所述写入数据写入至所述第三逻辑地址的步骤包括:
记录所述第一逻辑地址与所述第三逻辑地址的映像关系于所述真实-虚拟逻辑映射表中,其中所述第一逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述真实逻辑地址栏位,并且所述第三逻辑地址被记录至所述真实-虚拟逻辑映射表中的所述虚拟逻辑地址栏位。
6.根据权利要求5所述的写入辅助方法,其特征在于:
反应于被指示将所述写入数据写入至所述第二逻辑地址,将所述写入数据程序化至相应于所述第二逻辑地址的目标实体地址,并且记录所述第二逻辑地址与所述目标实体地址之间的映像关系于逻辑转实体地址映像表;以及
反应于被指示将所述写入数据写入至所述第三逻辑地址,将所述写入数据程序化至相应于所述第三逻辑地址的另一目标实体地址,并且记录所述第三逻辑地址与所述另一目标实体地址之间的映像关系于所述逻辑转实体地址映像表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894256.4A CN112540932B (zh) | 2019-09-20 | 2019-09-20 | 存储控制器以及写入辅助方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894256.4A CN112540932B (zh) | 2019-09-20 | 2019-09-20 | 存储控制器以及写入辅助方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540932A CN112540932A (zh) | 2021-03-23 |
CN112540932B true CN112540932B (zh) | 2023-11-14 |
Family
ID=75012475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894256.4A Active CN112540932B (zh) | 2019-09-20 | 2019-09-20 | 存储控制器以及写入辅助方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540932B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567221A (zh) * | 2010-12-29 | 2012-07-11 | 群联电子股份有限公司 | 数据管理方法、存储器控制器与存储器储存装置 |
CN104102585A (zh) * | 2013-04-03 | 2014-10-15 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
CN107665091A (zh) * | 2016-07-28 | 2018-02-06 | 大心电子股份有限公司 | 数据读取方法、数据写入方法及其存储控制器 |
US9934152B1 (en) * | 2015-02-17 | 2018-04-03 | Marvell International Ltd. | Method and apparatus to use hardware alias detection and management in a virtually indexed physically tagged cache |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI443513B (zh) * | 2011-08-05 | 2014-07-01 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與資料寫入方法 |
KR20190087217A (ko) * | 2018-01-16 | 2019-07-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
2019
- 2019-09-20 CN CN201910894256.4A patent/CN112540932B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567221A (zh) * | 2010-12-29 | 2012-07-11 | 群联电子股份有限公司 | 数据管理方法、存储器控制器与存储器储存装置 |
CN104102585A (zh) * | 2013-04-03 | 2014-10-15 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
US9934152B1 (en) * | 2015-02-17 | 2018-04-03 | Marvell International Ltd. | Method and apparatus to use hardware alias detection and management in a virtually indexed physically tagged cache |
CN107665091A (zh) * | 2016-07-28 | 2018-02-06 | 大心电子股份有限公司 | 数据读取方法、数据写入方法及其存储控制器 |
Non-Patent Citations (1)
Title |
---|
将ROM逻辑地址数据转成物理地址数据的方法;孙丽莉;方启文;;厦门城市职业学院学报(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112540932A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI679537B (zh) | 資料移動方法及儲存控制器 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
US20200057725A1 (en) | Data storage device and operating method thereof | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN107045890B (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI757216B (zh) | 溫度控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112540932B (zh) | 存储控制器以及写入辅助方法 | |
TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112445417B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111610937A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN112802512B (zh) | 存储控制器以及存储装置初始化方法 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
CN117608501B (zh) | 电压调整方法、存储器存储装置及存储器控制电路单元 | |
US11372590B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
CN111435287B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |