CN114333930B - 多通道存储器存储装置、控制电路单元及其数据读取方法 - Google Patents
多通道存储器存储装置、控制电路单元及其数据读取方法 Download PDFInfo
- Publication number
- CN114333930B CN114333930B CN202111595367.9A CN202111595367A CN114333930B CN 114333930 B CN114333930 B CN 114333930B CN 202111595367 A CN202111595367 A CN 202111595367A CN 114333930 B CN114333930 B CN 114333930B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- buffer
- channel
- read
- 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
- 230000005055 memory storage Effects 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 25
- 239000000872 buffer Substances 0.000 claims abstract description 159
- 238000013500 data storage Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000007726 management method Methods 0.000 claims description 82
- 238000012546 transfer Methods 0.000 claims description 30
- 230000007812 deficiency Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 13
- 238000012937 correction Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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/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/0656—Data buffering arrangements
-
- 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
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本发明提供一种多通道存储器存储装置、控制电路单元及其数据读取方法。所述方法包括:执行多通道存取时,判断缓冲存储器的存储空间是否不足;响应于缓冲存储器的存储空间不足,根据主机读取指令中的逻辑地址向可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过多个通道从数据存储区中读取对应多个通道中的每一个的数据至数据快取区;以及在缓冲存储器的存储空间被释放之后,向可复写式非易失性存储器模块分配缓冲存储器的存储空间,并下达快取读取指令以将数据快取区中暂存的数据中的第一数据搬移至缓冲存储器。
Description
技术领域
本发明涉及一种存储器数据读取技术,尤其涉及一种多通道存储器存储装置、控制电路单元及其数据读取方法。
背景技术
笔记本电脑和移动电话等可携式电子装置在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)(例如,快闪存储器)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,所以非常适合内建于上述所举例的各种可携式电子装置中。固态硬盘就是一种以快闪存储器模块作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
一般来说,存储器存储装置中会配置静态随机存取存储器(Static RandomAccess Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)作为存取数据的缓冲存储器。而配置的缓冲存储器的容量通常有限,对于多通道存储器存储装置而言,在主机系统连续读取数据时缓冲存储器的容量通常不足以暂存所存取的数据。因此,如何有效率地运用所配置的缓冲存储器以进行数据的管理及存取,存在着技术上的需求。
发明内容
本发明提供一种多通道存储器存储装置、控制电路单元及其数据读取方法,能够充分发挥以多通道存取进行数据读取时读取快速的优势。
本发明提供一种数据读取方法,适用于包括存储器控制电路单元以及可复写式非易失性存储器模块的多通道存储器存储装置。所述存储器控制电路单元包括缓冲存储器,所述可复写式非易失性存储器模块包括数据快取区以及数据存储区。所述方法包括:根据来自主机系统的主机读取指令执行多通道存取时,判断所述缓冲存储器的存储空间是否不足;响应于所述缓冲存储器的存储空间不足,根据所述主机读取指令中的逻辑地址向所述可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区;以及在所述缓冲存储器的存储空间被释放之后,向所述可复写式非易失性存储器模块分配所述缓冲存储器的存储空间,并向所述可复写式非易失性存储器模块下达快取读取指令以将所述数据快取区中暂存的数据中的第一数据搬移至所述缓冲存储器。其中所述第一数据的数据量符合所述缓冲存储器释放的存储空间的容量。
在本发明的一实施例中,判断所述缓冲存储器的存储空间是否不足的步骤包括:判断所述缓冲存储器中配置用于暂存来自所述可复写式非易失性存储器模块的读取数据暂存区的存储空间是否不足。
在本发明的一实施例中,所述数据存储区包括多个存储器晶粒,所述多个存储器晶粒中的多个第一存储器晶粒连接所述多个通道中的第一通道,多个存储器晶粒中的多个第二存储器晶粒连接所述多个通道中的第二通道。其中向所述可复写式非易失性存储器模块下达对应所述多个通道中的每一个的所述数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区的步骤包括:下达对应所述第一通道以及所述第二通道的所述数据读取指令,以同时通过所述第一通道以及所述第二通道从所述多个第一存储器晶粒以及所述多个第二存储器晶粒中读取对应所述数据读取指令的数据至所述数据快取区。
在本发明的一实施例中,所述快取读取指令为直接存储器存取传送。
在本发明的一实施例中,所述方法更包括:将所述缓冲存储器中暂存的所述第一数据传输至所述主机系统以释放所述缓冲存储器的存储空间后,向所述可复写式非易失性存储器模块下达下一个快取读取指令以将所述数据快取区中暂存的数据中的第二数据搬移至所述缓冲存储器。
本发明提供一种多通道存储器存储装置,包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。所述连接接口单元用以耦接至主机系统。所述可复写式非易失性存储器模块包括数据快取区以及数据存储区。所述存储器控制电路单元耦接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元包括缓冲存储器。其中所述存储器控制电路单元用以根据来自所述主机系统的主机读取指令执行多通道存取时,判断所述缓冲存储器的存储空间是否不足。所述存储器控制电路单元更用以响应于所述缓冲存储器的存储空间不足,根据所述主机读取指令中的逻辑地址向所述可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区。并且,所述存储器控制电路单元更用以在所述缓冲存储器的存储空间被释放之后,向所述可复写式非易失性存储器模块分配所述缓冲存储器的存储空间,并向所述可复写式非易失性存储器模块下达快取读取指令以将所述数据快取区中暂存的数据中的第一数据搬移至所述缓冲存储器。其中所述第一数据的数据量符合所述缓冲存储器释放的存储空间的容量。
在本发明的一实施例中,判断所述缓冲存储器的存储空间是否不足的操作中,所述存储器控制电路单元更用以判断所述缓冲存储器中配置用于暂存来自所述可复写式非易失性存储器模块的读取数据暂存区的存储空间是否不足。
在本发明的一实施例中,所述所述数据存储区包括多个存储器晶粒,所述多个存储器晶粒中的多个第一存储器晶粒连接所述多个通道中的第一通道,多个存储器晶粒中的多个第二存储器晶粒连接所述多个通道中的第二通道。其中所述存储器控制电路单元更用以下达对应所述第一通道以及所述第二通道的所述数据读取指令,以同时通过所述第一通道以及所述第二通道从所述多个第一存储器晶粒以及所述多个第二存储器晶粒中读取对应所述数据读取指令的数据至所述数据快取区。
在本发明的一实施例中,所述快取读取指令为直接存储器存取传送。
在本发明的一实施例中,所述存储器控制电路单元更用以将所述缓冲存储器中暂存的所述第一数据传输至所述主机系统以释放所述缓冲存储器的存储空间后,向所述可复写式非易失性存储器模块下达下一个快取读取指令以将所述数据快取区中暂存的数据中的第二数据搬移至所述缓冲存储器。
本发明提供一种存储器控制电路单元,用于控制包括数据快取区以及数据存储区的可复写式非易失性存储器模块。所述存储器控制电路单元包括主机接口、存储器接口、缓冲存储器以及存储器管理电路。所述主机接口用以耦接至主机系统。所述存储器接口用以耦接至所述可复写式非易失性存储器模块。所述存储器管理电路耦接至所述主机接口、所述存储器接口及所述缓冲存储器。其中所述存储器管理电路用以根据来自所述主机系统的主机读取指令执行多通道存取时,判断所述缓冲存储器的存储空间是否不足。所述存储器管理电路更用以响应于所述缓冲存储器的存储空间不足,根据所述主机读取指令中的逻辑地址向所述可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区。并且,所述存储器管理电路更用以在所述缓冲存储器的存储空间被释放之后,向所述可复写式非易失性存储器模块分配所述缓冲存储器的存储空间,并向所述可复写式非易失性存储器模块下达快取读取指令以将所述数据快取区中暂存的数据中的第一数据搬移至所述缓冲存储器。其中所述第一数据的数据量符合所述缓冲存储器释放的存储空间的容量。
在本发明的一实施例中,判断所述缓冲存储器的存储空间是否不足的操作中,所述存储器管理电路更用以判断所述缓冲存储器中配置用于暂存来自所述可复写式非易失性存储器模块的读取数据暂存区的存储空间是否不足。
在本发明的一实施例中,所述所述数据存储区包括多个存储器晶粒,所述多个存储器晶粒中的多个第一存储器晶粒连接所述多个通道中的第一通道,多个存储器晶粒中的多个第二存储器晶粒连接所述多个通道中的第二通道。其中所述存储器管理电路更用以下达对应所述第一通道以及所述第二通道的所述数据读取指令,以同时通过所述第一通道以及所述第二通道从所述多个第一存储器晶粒以及所述多个第二存储器晶粒中读取对应所述数据读取指令的数据至所述数据快取区。
在本发明的一实施例中,所述快取读取指令为直接存储器存取传送。
在本发明的一实施例中,所述存储器管理电路更用以将所述缓冲存储器中暂存的所述第一数据传输至所述主机系统以释放所述缓冲存储器的存储空间后,向所述可复写式非易失性存储器模块下达下一个快取读取指令以将所述数据快取区中暂存的数据中的第二数据搬移至所述缓冲存储器。
基于上述,本发明提供的多通道存储器存储装置、控制电路单元及其数据读取方法能够在连续执行多通道存取时,先通过将数据读取至数据快取区来将数据上载的忙碌时间堆叠起来。等到存储器控制电路单元中缓冲存储器的可用空间足够时,再分配存储空间给数据快取区执行内部数据传输,藉此,可节省执行数据上载的时间,使得存储器存储装置运作时即使在缓冲空间有限的情况下,仍然能够充分发挥以多通道存取进行数据读取时读取快速的优势。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图;
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图;
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;
图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图;
图7A及图7B是根据本发明的一范例实施例所示出的多通道存储器存储装置的示意图;
图8A至图8C是根据本发明的一范例实施例所示出的以缓冲存储器中读取数据暂存区进行数据缓冲的示意图;
图9是根据本发明的一范例实施例所示出的数据读取方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
一般而言,存储器存储装置(亦称,存储器存储系统或多通道存储器存储装置)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(亦称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆耦接至系统总线(system bus)110。
在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10耦接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12耦接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式耦接至存储器存储装置10。存储器存储装置10可例如是随身盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通信(Near FieldCommunication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通信技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110耦接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通信装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的安全数字(SecureDigital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded Multi MediaCard,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接耦接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
连接接口单元402用以将存储器存储装置10耦接至主机系统11。存储器存储装置10可通过连接接口单元402与主机系统11通信。在本范例实施例中,连接接口单元402是相容于串行高级附件(Serial Advanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并行高级附件(ParallelAdvanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute ofElectrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(MemoryStick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是耦接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406包括数据快取区4061以及数据存储区4062。在本范例实施例中,数据快取区4061以及数据存储区4062封装在相同的存储器芯片中。在一范例实施例中,数据快取区4061以及数据存储区4062属于同一个存储器晶粒(die)。在其他范例实施例中,数据快取区4061以及数据存储区4062也可以是属于不同的存储器晶粒,本发明不在此限制。
可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quad LevelCell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406包括被配置为矩阵状的复数个存储单元。可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下亦称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制门极(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制门极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作亦称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。
在本范例实施例中,可复写式非易失性存储器模块406的存储单元可构成多个实体程序化单元,并且此些实体程序化单元可构成多个实体抹除单元。具体来说,同一条字元线上的存储单元可组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字元线上的实体程序化单元可至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效位(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效位(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的数据写入速度会大于上实体程序化单元的数据写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元可为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元可包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路502的控制指令亦可以代码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路502的控制指令亦可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或存储单元群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个代码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
主机接口504是耦接至存储器管理电路502。存储器管理电路502可通过主机接口504与主机系统11通信。主机接口504可用以接收与识别主机系统11所传送的指令与数据。例如,主机系统11所传送的指令与数据可通过主机接口504来传送至存储器管理电路502。此外,存储器管理电路502可通过主机接口504将数据传送至主机系统11。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是耦接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或代码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
在一范例实施例中,存储器控制电路单元404还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。
错误检查与校正电路508是耦接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会根据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
缓冲存储器510是耦接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。缓冲存储器510可以是静态随机存取存储器(Static Random Access Memory,SRAM)、或动态随机存取存储器(DynamicRandom Access Memory,DRAM)等,本发明并不加以限制。电源管理电路512是耦接至存储器管理电路502并且用以控制存储器存储装置10的电源。
在一范例实施例中,图4的可复写式非易失性存储器模块406亦称为快闪(flash)存储器模块,且存储器控制电路单元404亦称为用于控制快闪存储器模块的快闪存储器控制器。在一范例实施例中,图5的存储器管理电路502亦称为快闪存储器管理电路。
图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。请参照图6,存储器管理电路502可将可复写式非易失性存储器模块406的实体单元610(0)~610(B)逻辑地分组至存储区601与闲置区602。存储区601中的实体单元610(0)~610(A)以及闲置区602中的实体单元610(A+1)~610(B)是用以存储来自于主机系统11的数据。具体来说,存储区601的实体单元是被视为已存储数据的实体单元,而闲置区602的实体单元是用以替换存储区601的实体单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路502会使用从闲置区602中提取实体单元来写入数据,以替换存储区601的实体单元。
在本范例实施例中,每一个实体单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体单元亦可以是指一个实体地址、一个实体程序化单元或由多个连续或不连续的实体地址组成。存储器管理电路502会配置逻辑单元612(0)~612(C)以映射存储区601中的实体单元610(0)~610(A)。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(C)中的每一者可被映射至一或多个实体单元。
存储器管理电路502可将逻辑单元与实体单元之间的映射关系(亦称为逻辑-实体地址映射关系)记录于至少一逻辑-实体地址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体地址映射表来执行对于存储器存储装置10的数据存取操作。
一般来说,存储器管理电路502会将缓冲存储器510的存储空间划分成多个区域以存储数据。举例来说,存储器管理电路502可将缓冲存储器510划分为映射表暂存区、固件码暂存区、写入数据暂存区、读取数据暂存区与其他区域。映射表暂存区例如用以存储映射表(例如,逻辑-实体地址映射表)的至少一部分。固件码暂存区用以存储存储器管理电路502执行的代码。写入数据暂存区用以暂存欲写入至可复写式非易失性存储器模块406的数据,而读取数据暂存区则用以暂存读取自可复写式非易失性存储器模块406的数据。然而,缓冲存储器510区域的划分方式不限于此。
如上所述,缓冲存储器510的存储空间会事先被规划以存储存储器存储装置10运作时所需暂存的程序或数据。由于缓冲存储器510中各个区域的空间大小有限,当执行数据读取操作时,存储器管理电路502必须释放缓冲存储器510中读取数据暂存区的存储空间才能接收更多其他读取自可复写式非易失性存储器模块406的数据。
图7A及图7B是根据本发明的一范例实施例所示出的多通道存储器存储装置的示意图。可复写式非易失性存储器模块406可包括多个存储器晶粒,每个存储器晶粒是可复写式非易失性存储器模块406内可执行命令并回报自身状态的最小独立单元,因此可作为进行平行作动的单位。值得一提的是,存储器管理电路502可针对预期执行单通道存取(single channel access)或多通道存取(multi-channel access)而进行不同的作动模式,其中单通道存取是指同一时间仅作动一个输入/输出总线来存取存储器晶粒,而多通道存取是指同一时间通过作动多个输入/输出总线来存取存储器晶粒。
图7A以四个通道(channel)为例进行说明,但本发明不在此限制存储器接口506的通道数量,其可以是两个、八个或更多数量的通道。如图7A的实施例所示,存储器接口506包括四个通道CH#0~CH#3,而每个通道连接有两个存储器晶粒,因此本实施例的可复写式非易失性存储器模块406包括八个存储器晶粒D0~D7。换言之,多个存储器晶粒可共享一个通道,且多通道之间的存储器晶粒可以利用多通道存取进行存取,可增加数据存取的效能。
每一个通道中相同对应地址的存储器晶粒可构成能够执行交错(interleaving)操作的存储库(bank),交错操作可对不同的存储库同时进行存取。本范例实施例中,与通道CH#0~CH#3连接的八个存储器晶粒D0~D7可构成存储库Bank#0以及Bank#1,同一个存储库的存储器晶粒能够共用芯片致能(chip enable,CE)。假设本实施例每一个存储器晶粒划分为两个平面(plane)并假设平面包括的多个实体页面中的每一个的容量为16K,其中每个平面含有自身的页暂存器(page register)与快取暂存器(cache register)以允许平行运作。在此情况下,通过四个通道执行平行操作、两个存储库执行存储库交错和每个存储器晶粒的两个平面执行平行操作,存储器管理电路502满足多通道同时读取的情形时,最多可同时读取256K(4x4x16K)的数据。因此,为了达到多通道同时读取的最大效能,缓冲存储器510中读取数据暂存区必须事先被规划具有256K的存储空间。
然而,若对可复写式非易失性存储器模块406的容量进行扩充,在缓冲存储器510可用的存储空间有限的情况下,以多通道存取进行数据读取的效能将无法完全发挥。举例来说,参照图7B,可复写式非易失性存储器模块406连接同一通道的存储器晶粒扩充成八个,可复写式非易失性存储器模块406包括32个存储器晶粒D0~D31。在此情况下,通过四个通道执行平行操作、四个存储库执行存储库交错和每个存储器晶粒的两个平面执行平行操作,存储器管理电路502满足多通道同时读取的情形时,最多可同时读取512K(4x8x16K)的数据。然而,由于缓冲存储器510的读取数据暂存区只被规划具有256K的存储空间,缓冲存储器510无法容纳以多通道存取进行数据读取时最多能同时读取的数据量。存储器管理电路502必须释放缓冲存储器510中读取数据暂存区的存储空间才能接收更多其他读取自可复写式非易失性存储器模块406的数据。因此,当缓冲存储器510的资源不足时,在主机系统连续读取大量数据的情况下,将无法发挥以多通道存取进行数据读取的优势。
基此,本发明范例实施例提出的数据读取方法,可使得存储器存储装置10运作时充分发挥以多通道存取进行数据读取的优势。在一范例实施例中,存储器管理电路502会根据来自主机系统11的主机读取指令中的逻辑地址通过存储器接口506向可复写式非易失性存储器模块406下达数据读取指令以及快取读取指令来读取数据。例如,快取读取指令为直接存储器存取(Direct Memory Access,DMA)传送。
请参照图4,数据快取区4061用以暂存存储器控制电路单元404与可复写式非易失性存储器模块406之间传输的数据。请参照图4与图5,当主机系统11欲从存储器存储装置10的可复写式非易失性存储器模块406中读取数据时,存储器管理电路502可根据来自主机系统11的主机读取指令通过存储器接口506向可复写式非易失性存储器模块406下达数据读取指令以及快取读取指令。此时,可复写式非易失性存储器模块406根据数据读取指令会将欲读取的数据先从数据存储区4062中搬移至可复写式非易失性存储器模块406内的数据快取区4061中,此过程可称为数据上载(load)。在完成数据上载后,数据快取区4061中的数据根据快取读取指令会被搬移至存储器控制电路单元404(例如,存储器控制电路单元404中的缓冲存储器510),此过程可称为内部数据传输(transfer)。一旦缓冲存储器510备妥欲读取的数据,主机系统11便可自缓冲存储器510读出数据,此过程可称为外部数据传输。用以从数据存储区4062接收数据的数据快取区4061可包括存储器晶粒中每个平面含有的快取暂存器。其中快取暂存器可暂存至少一个页面的数据以对应读取单位(例如,一个页面)。
值得注意的是,在进行数据上载的过程中,存储器管理电路502在下达数据读取指令后,可复写式非易失性存储器模块406会根据数据读取指令从数据存储区4062中搬移至少一个页面的数据至数据快取区4061中,此期间可复写式非易失性存储器模块406会处于忙碌(busy)状态。此时,存储器管理电路502无法对处于忙碌状态下的可复写式非易失性存储器模块406下达任何指令。可复写式非易失性存储器模块406在暂存于数据快取区4061中的数据被搬移至缓冲存储器510之后就会回复为待命(ready)状态。
图8A至图8C是根据本发明的一范例实施例所示出的以缓冲存储器中读取数据暂存区进行数据缓冲的示意图。参照图8A,假设缓冲存储器510中读取数据暂存区包括的四个页面,且每个页面的容量为16K。本范例实施例以图4的主机系统11与存储器存储装置10为例进行数据缓冲的说明,其中存储器控制电路单元404包括图8A示出的缓冲存储器510,可复写式非易失性存储器模块406则实施为图7B中的可复写式非易失性存储器模块406。
在本范例实施例中,存储器管理电路50会根据来自主机系统11的主机读取指令先向可复写式非易失性存储器模块406分配缓冲存储器510的存储空间作为读取数据暂存区,并通过存储器接口506向可复写式非易失性存储器模块406下达数据读取指令以及快取读取指令。假设此数据读取指令指示以多通道存取从存储器晶粒D0~D3中连续读取共四个实体页面的数据,此时,可复写式非易失性存储器模块406会根据数据读取指令执行如前所述的数据上载以将欲读取的数据(例如,存储器晶粒D0中的数据DATA0_0、存储器晶粒D1中的数据DATA1_0、存储器晶粒D2中的数据DATA2_0以及存储器晶粒D3中的数据DATA3_0)先从存储器晶粒D0~D3中搬移至可复写式非易失性存储器模块406内的数据快取区4061中。在完成数据上载后,如前所述的内部数据传输会被执行以根据快取读取指令将数据快取区4061中的数据DATA0_0~DATA3_0搬移至缓冲存储器510中的读取数据暂存区。一旦缓冲存储器510备妥欲读取的数据DATA0_0~DATA3_0(如图8B所示出),如前所述的外部数据传输会被执行,主机系统11便可自读取数据暂存区读出数据DATA0_0~DATA3_0。数据DATA0_0~DATA3_0被读出后,缓冲存储器510可释放读取数据暂存区的存储空间,如图8A示出的缓冲存储器510中的读取数据暂存区未暂存数据而处于待命(ready)状态。因此,在本范例实施例中,存储器存储装置10接收到主机读取指令会依序执行数据上载、内部数据传输以及外部数据传输以从可复写式非易失性存储器模块406中读取数据。
然而,本范例实施例的缓冲存储器510中只配置四个页面作为读取数据暂存区。若数据读取指令指示以多通道存取连续读取超过四个实体页面的数据,存储器存储装置10必须在执行一轮数据上载、内部数据传输以及外部数据传输后,再执行下一轮的数据上载、内部数据传输以及外部数据传输,才能将数据读取完毕。举例来说,假设数据读取指令指示以多通道存取从存储器晶粒D0~D7中连续读取共八个实体页面的数据。此时,存储器存储装置10会执行如前述图8A~图8B对应的操作,并通过缓冲存储器510中的数据DATA0_0~DATA3_0被主机系统11读出后释放读取数据暂存区的存储空间。之后,可复写式非易失性存储器模块406会将执行如前所述的数据上载以将欲读取的数据(例如,存储器晶粒D4~D7中存储的数据DATA0_1~DATA3_1)先从存储器晶粒D4~D7中搬移至可复写式非易失性存储器模块406内的数据快取区4061中。在完成数据上载后,如前所述的内部数据传输会被执行以将数据快取区4061中的数据DATA0_1~DATA3_1传输至缓冲存储器510。一旦缓冲存储器510备妥欲读取的数据DATA0_1~DATA3_1(如图8C所示出),如前所述的外部数据传输会被执行,主机系统11便可自缓冲存储器510读出数据DATA0_1~DATA3_1。数据DATA0_1~DATA3_1被读出后,缓冲存储器510可如图8A或图8C所示出的未存储数据。
由此可知,本范例实施例中,存储器管理电路502欲读取超过缓冲存储器510中配置的读取数据暂存区的容量时,必须等待缓冲存储器510释放后(即,数据传送至主机系统11后)才能向可复写式非易失性存储器模块406发送下一个数据读取命令以及快取读取命令。因此,本范例实施例根据主机读取指令自可复写式非易失性存储器模块406读取数据DATA0_0~DATA3_0以及数据DATA0_1~DATA3_1所需的总时间如下:
Total time_1=(tR+tDMA+tHost)x2
其中Total time_1为读取数据的总时间,tR为执行数据上载的时间,tDMA为执行内部数据传输的时间,tHost为执行外部数据传输的时间。换言之,本范例实施例执行多通道存取从存储器晶粒D0~D7中连续读取共八个实体页面的数据时,即便存储器管理电路502通过四个通道CH#0~CH#3可同时从存储器晶粒D0~D3读取存储的数据DATA0_0~DATA3_0以及从存储器晶粒D4~D7读取存储的数据DATA0_1~DATA3_1,仍因本实施例的缓冲存储器510中配置的读取数据暂存区的存储空间有限而需等待读取数据暂存区的存储空间释放后才能处理下一轮的读取存储器晶粒D4~D7中存储的数据DATA0_1~DATA3_1的数据上载、内部数据传输以及外部数据传输。此将无法发挥多通道存取时同时读取多笔数据的优势,而使得以多通道存取进行数据读取的效能无法完全发挥。
因此,在一范例实施例中,存储器管理电路502可在根据来自主机系统11的主机读取指令执行多通道存取时,判断缓冲存储器510的存储空间是否不足,即,判断缓冲存储器510的存储空间是否已满。举例来说,此外,存储器管理电路502在判断缓冲存储器510的存储空间是否不足时是判断缓冲存储器510中配置用于暂存来自可复写式非易失性存储器模块406的读取数据暂存区的存储空间是否不足。
在本范例实施例中,响应于缓冲存储器510的存储空间不足,存储器管理电路502根据该主机读取指令中的逻辑地址通过存储器接口506向可复写式非易失性存储器模块406下达对应每个通道的数据读取指令,以通过每个通道从数据存储区4062中读取对应每个通道的数据至数据快取区4061。具体来说,数据读取指令包括主机读取指令中的逻辑地址所映射的实体地址。可复写式非易失性存储器模块406可根据数据读取指令中的实体地址从数据存储区4062中读取对应每个通道的数据至数据快取区4061。
在对应数据读取指令的所有数据被读取至数据快取区4061后,存储器管理电路502会等待缓冲存储器510释放存储空间。在缓冲存储器510的存储空间被释放之后,存储器管理电路502会向可复写式非易失性存储器模块406分配缓冲存储器510的存储空间,并向可复写式非易失性存储器模块406下达快取读取指令以将数据快取区4061中暂存的数据从数据快取区4061搬移至缓冲存储器510。具体来说,此快取读取指令指示将数据快取区4061暂存的数据中的第一数据从数据快取区4061搬移至缓冲存储器510。此第一数据的数据量符合缓冲存储器510释放的存储空间的容量。并且,存储器管理电路502将第一数据传输至主机系统11以释放缓冲存储器510的存储空间后,会再向可复写式非易失性存储器模块406下达快取读取指令以将数据快取区4061暂存的数据中的第二数据从数据快取区4061搬移至缓冲存储器510。此第二数据的数据量符合缓冲存储器510释放的存储空间的容量。
举例来说,假设多个主机读取指令指示从图7B的存储器晶粒D0~D7中连续读取共八个实体页面的数据。本范例实施例以图4的主机系统11与存储器存储装置10为例进行数据缓冲的说明,其中存储器控制电路单元404包括图8A示出的缓冲存储器510。
在本范例实施例中,由于存储欲读取的数据的存储器晶粒D0~D7对应多个通道CH#0~CH#3,存储器管理电路502会执行多通道存取。此时,假设缓冲存储器510的存储空间不足,存储器管理电路502会向可复写式非易失性存储器模块406下达对应至各个通道CH#0~CH#3的数据读取指令。而可复写式非易失性存储器模块406会根据数据读取指令同时从存储库Bank#0所包括的存储器晶粒D0~D3读取对应数据读取指令的数据DATA0_0~DATA3_0以及从存储库Bank#1所包括的存储器晶粒D4~D7读取对应数据读取指令的数据DATA0_1~DATA3_1至数据快取区4061。在将所有数据读取至数据快取区4061时,存储器管理电路502会等待缓冲存储器510释放存储空间。
在存储器管理电路502释放缓冲存储器510的存储空间之后,存储器管理电路502会向数据快取区4061分配缓冲存储器510的存储空间,并向数据快取区4061下达快取读取指令以将数据快取区4061暂存的数据中的数据DATA0_0~DATA3_0从数据快取区4061搬移至缓冲存储器510。数据DATA0_0~DATA3_0的数据量符合缓冲存储器510释放的存储空间的容量。并且,存储器管理电路502将数据DATA0_0~DATA3_0传输至主机系统11以释放缓冲存储器510的存储空间后,会再向数据快取区4061下达快取读取指令以将数据快取区4061暂存的数据中的DATA0_1~DATA3_1从数据快取区4061搬移至缓冲存储器510。
因此,本范例实施例根据主机读取指令自可复写式非易失性存储器模块406读取数据DATA0_0~DATA3_0以及数据DATA0_1~DATA3_1所需的总时间如下:
Total time_2=tR+(tDMA+tHost)x2
其中Total time_2为读取数据的总时间,tR为执行数据上载的时间,tDMA为执行内部数据传输的时间,tHost为执行外部数据传输的时间。于此,本范例实施例读取数据的总时间Total time_2相较前述实施例中读取数据的总时间Total time_1节省了执行数据上载的时间tR。
值得注意的是,若主机读取指令欲通过多通道存取同时读取更多存储库所包括的存储器晶粒中的数据,本范例实施例提供的数据读取方法可节省更多执行数据上载的时间tR。
图9是根据本发明的一范例实施例所示出的数据读取方法的流程图。
在步骤S902中,根据来自主机系统的主机读取指令执行多通道存取时,判断缓冲存储器的存储空间是否不足。在步骤S904中,响应于缓冲存储器的存储空间不足,根据主机读取指令中的逻辑地址向可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过多个通道从数据存储区中读取对应多个通道中的每一个的数据至数据快取区。在步骤S906中,在缓冲存储器的存储空间被释放之后,向可复写式非易失性存储器模块分配缓冲存储器的存储空间,并向可复写式非易失性存储器模块下达快取读取指令以将数据快取区中暂存的数据中的第一数据搬移至缓冲存储器。
然而,图9中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图9中各步骤可以实作为多个代码或是电路,本发明不加以限制。此外,图9的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明提供的多通道存储器存储装置、控制电路单元及其数据读取方法能够在连续执行多通道存取时,先通过将数据读取至数据快取区来将数据上载的忙碌时间堆叠起来。等到存储器控制电路单元中缓冲存储器的可用空间足够时,再分配存储空间给数据快取区执行内部数据传输,藉此,可节省执行数据上载的时间,使得存储器存储装置运作时即使在缓冲空间有限的情况下,仍然能够充分发挥以多通道存取进行数据读取时读取快速的优势。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种数据读取方法,适用于包括存储器控制电路单元以及可复写式非易失性存储器模块的多通道存储器存储装置,所述存储器控制电路单元包括缓冲存储器,所述可复写式非易失性存储器模块包括数据快取区以及数据存储区,所述方法包括:
根据来自主机系统的主机读取指令执行多通道存取时,判断所述缓冲存储器的存储空间是否不足;
响应于所述缓冲存储器的存储空间不足,根据所述主机读取指令中的逻辑地址向所述可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区;以及
在所述缓冲存储器的存储空间被释放之后,向所述可复写式非易失性存储器模块分配所述缓冲存储器的存储空间,并向所述可复写式非易失性存储器模块下达快取读取指令以将所述数据快取区中暂存的数据中的第一数据搬移至所述缓冲存储器,
其中所述第一数据的数据量符合所述缓冲存储器释放的存储空间的容量。
2.根据权利要求1所述的数据读取方法,其中判断所述缓冲存储器的存储空间是否不足的步骤包括:
判断所述缓冲存储器中配置用于暂存来自所述可复写式非易失性存储器模块的读取数据暂存区的存储空间是否不足。
3.根据权利要求1所述的数据读取方法,其中所述数据存储区包括多个存储器晶粒,所述多个存储器晶粒中的多个第一存储器晶粒连接所述多个通道中的第一通道,多个存储器晶粒中的多个第二存储器晶粒连接所述多个通道中的第二通道,其中向所述可复写式非易失性存储器模块下达对应所述多个通道中的每一个的所述数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区的步骤包括:
下达对应所述第一通道以及所述第二通道的所述数据读取指令,以同时通过所述第一通道以及所述第二通道从所述多个第一存储器晶粒以及所述多个第二存储器晶粒中读取对应所述数据读取指令的数据至所述数据快取区。
4.根据权利要求1所述的数据读取方法,其中所述快取读取指令为直接存储器存取传送。
5.根据权利要求1所述的数据读取方法,其中所述方法更包括:
将所述缓冲存储器中暂存的所述第一数据传输至所述主机系统以释放所述缓冲存储器的存储空间后,向所述可复写式非易失性存储器模块下达下一个快取读取指令以将所述数据快取区中暂存的数据中的第二数据搬移至所述缓冲存储器。
6.一种多通道存储器存储装置,包括:
连接接口单元,用以耦接至主机系统;
可复写式非易失性存储器模块,包括数据快取区以及数据存储区;以及
存储器控制电路单元,耦接至所述连接接口单元与所述可复写式非易失性存储器模块,所述存储器控制电路单元包括缓冲存储器,
其中所述存储器控制电路单元用以根据来自所述主机系统的主机读取指令执行多通道存取时,判断所述缓冲存储器的存储空间是否不足,
所述存储器控制电路单元更用以响应于所述缓冲存储器的存储空间不足,根据所述主机读取指令中的逻辑地址向所述可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区,并且
所述存储器控制电路单元更用以在所述缓冲存储器的存储空间被释放之后,向所述可复写式非易失性存储器模块分配所述缓冲存储器的存储空间,并向所述可复写式非易失性存储器模块下达快取读取指令以将所述数据快取区中暂存的数据中的第一数据搬移至所述缓冲存储器,
其中所述第一数据的数据量符合所述缓冲存储器释放的存储空间的容量。
7.根据权利要求6所述的多通道存储器存储装置,其中判断所述缓冲存储器的存储空间是否不足的操作中,所述存储器控制电路单元更用以判断所述缓冲存储器中配置用于暂存来自所述可复写式非易失性存储器模块的读取数据暂存区的存储空间是否不足。
8.根据权利要求6所述的多通道存储器存储装置,其中所述数据存储区包括多个存储器晶粒,所述多个存储器晶粒中的多个第一存储器晶粒连接所述多个通道中的第一通道,多个存储器晶粒中的多个第二存储器晶粒连接所述多个通道中的第二通道,其中所述存储器控制电路单元更用以下达对应所述第一通道以及所述第二通道的所述数据读取指令,以同时通过所述第一通道以及所述第二通道从所述多个第一存储器晶粒以及所述多个第二存储器晶粒中读取对应所述数据读取指令的数据至所述数据快取区。
9.根据权利要求6所述的多通道存储器存储装置,其中所述快取读取指令为直接存储器存取传送。
10.根据权利要求6所述的多通道存储器存储装置,其中所述存储器控制电路单元更用以将所述缓冲存储器中暂存的所述第一数据传输至所述主机系统以释放所述缓冲存储器的存储空间后,向所述可复写式非易失性存储器模块下达下一个快取读取指令以将所述数据快取区中暂存的数据中的第二数据搬移至所述缓冲存储器。
11.一种存储器控制电路单元,用于控制包括数据快取区以及数据存储区的可复写式非易失性存储器模块,其中所述存储器控制电路单元包括:
主机接口,用以耦接至主机系统;
存储器接口,用以耦接至所述可复写式非易失性存储器模块;
缓冲存储器;以及
存储器管理电路,耦接至所述主机接口、所述存储器接口及所述缓冲存储器,
其中所述存储器管理电路用以根据来自所述主机系统的主机读取指令执行多通道存取时,判断所述缓冲存储器的存储空间是否不足,
所述存储器管理电路更用以响应于所述缓冲存储器的存储空间不足,根据所述主机读取指令中的逻辑地址向所述可复写式非易失性存储器模块下达对应多个通道中的每一个的数据读取指令,以通过所述多个通道从所述数据存储区中读取对应所述多个通道中的每一个的数据至所述数据快取区,并且
所述存储器管理电路更用以在所述缓冲存储器的存储空间被释放之后,向所述可复写式非易失性存储器模块分配所述缓冲存储器的存储空间,并向所述可复写式非易失性存储器模块下达快取读取指令以将所述数据快取区中暂存的数据中的第一数据搬移至所述缓冲存储器,
其中所述第一数据的数据量符合所述缓冲存储器释放的存储空间的容量。
12.根据权利要求11所述的存储器控制电路单元,其中判断所述缓冲存储器的存储空间是否不足的操作中,所述存储器管理电路更用以判断所述缓冲存储器中配置用于暂存来自所述可复写式非易失性存储器模块的读取数据暂存区的存储空间是否不足。
13.根据权利要求11所述的存储器控制电路单元,其中所述数据存储区包括多个存储器晶粒,所述多个存储器晶粒中的多个第一存储器晶粒连接所述多个通道中的第一通道,多个存储器晶粒中的多个第二存储器晶粒连接所述多个通道中的第二通道,其中所述存储器管理电路更用以下达对应所述第一通道以及所述第二通道的所述数据读取指令,以同时通过所述第一通道以及所述第二通道从所述多个第一存储器晶粒以及所述多个第二存储器晶粒中读取对应所述数据读取指令的数据至所述数据快取区。
14.根据权利要求11所述的存储器控制电路单元,其中所述快取读取指令为直接存储器存取传送。
15.根据权利要求11所述的存储器控制电路单元,其中所述存储器管理电路更用以将所述缓冲存储器中暂存的所述第一数据传输至所述主机系统以释放所述缓冲存储器的存储空间后,向所述可复写式非易失性存储器模块下达下一个快取读取指令以将所述数据快取区中暂存的数据中的第二数据搬移至所述缓冲存储器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595367.9A CN114333930B (zh) | 2021-12-23 | 2021-12-23 | 多通道存储器存储装置、控制电路单元及其数据读取方法 |
TW111101062A TWI825551B (zh) | 2021-12-23 | 2022-01-11 | 多通道記憶體儲存裝置、控制電路單元及其資料讀取方法 |
US17/579,537 US11669270B1 (en) | 2021-12-23 | 2022-01-19 | Multi-channel memory storage device, memory control circuit unit and data reading method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595367.9A CN114333930B (zh) | 2021-12-23 | 2021-12-23 | 多通道存储器存储装置、控制电路单元及其数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114333930A CN114333930A (zh) | 2022-04-12 |
CN114333930B true CN114333930B (zh) | 2024-03-08 |
Family
ID=81012865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111595367.9A Active CN114333930B (zh) | 2021-12-23 | 2021-12-23 | 多通道存储器存储装置、控制电路单元及其数据读取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11669270B1 (zh) |
CN (1) | CN114333930B (zh) |
TW (1) | TWI825551B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632877A (zh) * | 2004-01-16 | 2005-06-29 | 智权第一公司 | 可变延滞时间堆栈快取存储器及提供资料的方法 |
CN103218308A (zh) * | 2012-01-20 | 2013-07-24 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制器与存储器储存装置 |
CN104423888A (zh) * | 2013-08-23 | 2015-03-18 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827348B2 (en) * | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US9122631B2 (en) * | 2011-11-07 | 2015-09-01 | Peking University | Buffer management strategies for flash-based storage systems |
TWI554885B (zh) * | 2015-08-18 | 2016-10-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
KR20180062247A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 효율적인 버퍼 할당을 수행하는 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10002086B1 (en) * | 2016-12-20 | 2018-06-19 | Sandisk Technologies Llc | Multi-channel memory operations based on bit error rates |
US10430919B2 (en) * | 2017-05-12 | 2019-10-01 | Google Llc | Determination of per line buffer unit memory allocation |
US10565133B2 (en) * | 2017-09-22 | 2020-02-18 | Intel Corporation | Techniques for reducing accelerator-memory access costs in platforms with multiple memory channels |
US10642535B2 (en) * | 2018-01-23 | 2020-05-05 | International Business Machines Corporation | Register access in a distributed memory buffer system |
US11221976B2 (en) * | 2019-01-25 | 2022-01-11 | Microchip Technology Incorporated | Allocation of buffer interfaces for moving data, and related systems, methods and devices |
TWI742698B (zh) * | 2019-11-29 | 2021-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
KR20210079611A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
US11709620B2 (en) * | 2020-11-13 | 2023-07-25 | Ford Global Technologies, Llc | Methods and systems for memory management in a publish and subscribe system |
KR20220067572A (ko) * | 2020-11-16 | 2022-05-25 | 삼성전자주식회사 | 메모리 패키지 및 이를 포함하는 저장 장치 |
JP2022096478A (ja) * | 2020-12-17 | 2022-06-29 | キオクシア株式会社 | メモリシステム及び制御方法 |
-
2021
- 2021-12-23 CN CN202111595367.9A patent/CN114333930B/zh active Active
-
2022
- 2022-01-11 TW TW111101062A patent/TWI825551B/zh active
- 2022-01-19 US US17/579,537 patent/US11669270B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632877A (zh) * | 2004-01-16 | 2005-06-29 | 智权第一公司 | 可变延滞时间堆栈快取存储器及提供资料的方法 |
CN103218308A (zh) * | 2012-01-20 | 2013-07-24 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制器与存储器储存装置 |
CN104423888A (zh) * | 2013-08-23 | 2015-03-18 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI825551B (zh) | 2023-12-11 |
US11669270B1 (en) | 2023-06-06 |
TW202326392A (zh) | 2023-07-01 |
CN114333930A (zh) | 2022-04-12 |
US20230205451A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402318B2 (en) | Mapping table updating method, memory control circuit unit and memory storage device | |
US9952806B2 (en) | Mapping table loading method and memory storage apparatus | |
CN106681932B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN107544922B (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
TWI650639B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110837339A (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US11609822B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
CN112486417B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111583976B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN114333930B (zh) | 多通道存储器存储装置、控制电路单元及其数据读取方法 | |
CN112463018B (zh) | 指令传送方法、存储器控制电路单元及存储器存储装置 | |
CN108958640B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN114115737B (zh) | 数据存储分配方法、存储器存储装置及控制电路单元 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112015327B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN114527941B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US10942680B2 (en) | Data writing method, memory storage device and memory control circuit unit | |
US11144244B2 (en) | Command transmitting method with temporary storing commands by memory interfaces for rewritable non-volatile memory modules, memory control circuit unit and memory storage device | |
CN111435287B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN114385244A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN115576497A (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 |