CN106547701B - 记忆装置及数据读取方法 - Google Patents
记忆装置及数据读取方法 Download PDFInfo
- Publication number
- CN106547701B CN106547701B CN201610636069.2A CN201610636069A CN106547701B CN 106547701 B CN106547701 B CN 106547701B CN 201610636069 A CN201610636069 A CN 201610636069A CN 106547701 B CN106547701 B CN 106547701B
- Authority
- CN
- China
- Prior art keywords
- task
- state
- tasks
- specific
- processor
- 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
- 238000000034 method Methods 0.000 title claims description 17
- 230000015654 memory Effects 0.000 claims abstract description 126
- 238000006243 chemical reaction Methods 0.000 claims abstract description 39
- 238000010586 diagram Methods 0.000 description 9
- 241000590419 Polygonia interrogationis Species 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/068—Hybrid storage device
-
- 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
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)
- Software Systems (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种记忆装置,包括多个非挥发性内存、一挥发性内存以及一处理器。挥发性内存具有一命令队列。处理器透过多个信道读取非挥发性内存,并根据命令队列里的命令产生一状态表。状态表记录多个任务以及每一任务的一读取状态及一通道编号。处理器挑选这些任务中的多个特定任务,以作为一第一任务集合,并同时执行第一任务集合中的所有任务。第一任务集合里的所有任务的信道编号均不相同。当第一任务集合中的一第一任务的读取状态为一第一预设状态时,处理器读取关联于第一任务的逻辑地址的一逻辑至实体转换表。当第一任务的读取状态为一第二预设状态时,处理器读取关联于第一任务的逻辑地址的数据。
Description
技术领域
本发明有关于一种记忆装置,特别是有关于一种根据一状态表里的读取状态进行读取操作的记忆装置。
背景技术
一般而言,内存可分为挥发性内存与非挥发性内存。非挥发性内存在无电源供应的情况下亦可保持其所储存的数据,而挥发性内存仅仅在有电源供应的情况下才可保持其所储存的数据。内存通常配置于一记忆装置中,用以为主机储存数据。举例来说,一记忆装置通常具有一个处理器及一至多个内存。记忆装置的内存是单纯供储存数据,而记忆装置的处理器是依据主机的命令而为主机存取内存中的数据。
发明内容
本发明提供一种记忆装置,包括多个非挥发性内存、一挥发性内存以及一处理器。挥发性内存具有一命令队列。处理器透过多个信道读取非挥发性内存,并根据命令队列里的至少一命令产生一状态表。状态表记录多个任务以及每一任务的一读取状态及一通道编号。处理器挑选这些任务中的多个特定任务作为一第一任务集合,并同时执行第一任务集合中的所有任务。第一任务集合里的所有任务的信道编号均不相同。当第一任务集合中的一第一任务的读取状态为一第一预设状态时,处理器读取非挥发性内存之一者,用以读取关联于第一任务的逻辑地址的一逻辑至实体转换表。当第一任务的读取状态为一第二预设状态时,处理器读取非挥发性内存之一者,用以读取关联于第一任务的逻辑地址的数据。
本发明另揭示一种数据读取方法,适用于一记忆装置。记忆装置包括多个非挥发性内存以及一处理器。处理器透过多个信道读取非挥发性内存。本发明的数据读取方法包括,根据一命令队列里的至少一命令产生一状态表,该状态表记录多个任务、每一任务的一读取状态及一通道编号;挑选多个任务作为一第一任务集合,并同时执行第一任务集合中的所有任务,其中第一任务集合里的所有任务的信道编号均不相同;当该第一任务集合中的一第一任务的读取状态为一第一预设状态时,读取这些非挥发性内存之至少一者,用以读取关联于该第一任务的逻辑地址的一逻辑至实体转换表;当该第一任务的读取状态为一第二预设状态时,读取这些非挥发性内存之至少一者,用以读取关联于该第一任务的逻辑地址的数据。
为让本发明的特征和优点能更明显易懂,下文特举出较佳实施例,并配合附图,作详细说明如下:
附图说明
图1为本发明的存取系统的示意图。
图2为本发明的初始化后的状态表的示意图。
图3为本发明的更新后的状态表示意图。
图4为本发明的更新后的另一状态表示意图。
图5为本发明的数据读取方法的一流程图。
符号说明
100:存取系统; 110:主机装置;
120:记忆装置; 130:处理器;
140:挥发性内存; 150:非挥发性记忆单元;
141~143:区块; 160_1~160_4:通道;
150_1~150_4:非挥发性内存;
S511~S515:步骤。
具体实施方式
图1为本发明的存取系统的示意图。如图所示,存取系统100包括一主机装置110以及一记忆装置120。当主机装置110发送写入命令时,记忆装置120根据写入命令储存数据。当主机装置110发出读取命令时,记忆装置120根据读取命令提供数据予主机装置110。在本实施例中,记忆装置120包括一处理器130、一挥发性内存140以及一非挥发性记忆单元150。
处理器130接收来自主机装置110的多个命令,并将这些命令依序储存在挥发性内存140的一命令队列(command queue)中。为方便说明,假设挥发性内存140的区块141作为一命令队列。在本实施例中,处理器130根据该命令队列里的至少一命令建立一状态表。在一可能实施例中,该状态表储存于挥发性内存140的区块142之中,但并非用以限制本发明。在其它实施例中,该状态表可能储存于另一内存中,如非挥发性记忆单元150或是其它内存中。稍后将说明该状态表所记录的信息。
在一可能实施例中,挥发性内存140的区块143储存一逻辑至实体转换表(logical-to-physical address mapping table)。逻辑至实体转换表包括多个逻辑地址以及这些逻辑地址关联的多个实体地址。处理器130根据逻辑至实体转换表得知主机装置110所提供的逻辑地址(Logical Block Address;LBA)的数据实际储存于非挥发性记忆单元150的哪个非挥发性内存中。
在一些实施例中,挥发性内存140更储存一转换地址表,用以指示主机装置110所提供的逻辑地址所对应的一特定逻辑至实体转换表系储存在非挥发性记忆单元150的哪个非挥发性内存中。举例而言,当处理器130从挥发性内存140所储存的一第一逻辑至实体转换表中找不到主机装置110所提供的逻辑地址所对应的实体地址时,处理器130改从挥发性内存140所储存的一转换地址表中,找出主机装置110所提供的逻辑地址所对应的一第二逻辑至实体转换表系储存在非挥发性记忆单元150的哪个非挥发性内存中,并将第二逻辑至实体转换表加载挥发性内存140中,再从挥发性内存140所储存的第二逻辑至实体转换表中找出主机装置110所提供的逻辑地址所对应的数据系储存在非挥发性记忆单元150的哪个位置。
挥发性内存140可为一动态随机存取内存(Dynamic Random Access Memory;DRAM)或是一静态随机存取内存(Static Random Access Memory;SDRAM),但并非用以限制本发明。在其它实施例中,挥发性内存140可为其它种类的挥发性内存。在一可能实施例中,处理器130与挥发性内存140可整合成一控制器,用以根据主机装置110所提供的命令,存取非挥发性记忆单元150。
非挥发性记忆单元150可为一NAND型闪存(flash)。如图所示,非挥发性记忆单元150包括非挥发性内存150_1~150_4,但并非用以限制本发明。在其它实施例中,非挥发性记忆单元150包括其它数量的非挥发性内存。在本实施例中,处理器130透过不同通道存取不同的非挥发性内存。举例而言,处理器130透过通道160_1存取非挥发性内存150_1,透过通道160_2存取非挥发性内存150_2,透过通道160_3存取非挥发性内存150_3,以及透过通道160_4存取非挥发性内存150_4。在一可能实施例中,非挥发性内存150_1~150_4储存数据以及多个逻辑至实体转换表。在本实施例中,处理器130读取并输出非挥发性内存150_1~150_4所储存的数据予主机装置110,但不会输出逻辑至实体转换表予主机装置110。
图2为本发明的状态表的示意图。如图所示,状态表记录多个任务以及每一任务的一读取状态及执行该任务所对应的信道编号。为方便说明,图2的状态表仅显示8项任务,但并非用以限制本发明。在其它实施例中,状态表记录其它数量的任务。
在一可能实施例中,处理器130根据挥发性内存140的一命令队列里的至少一命令得知任务1~8,并根据任务1~8建立一状态表。处理器130初始化任务1~8的读取状态。在本实施例中,处理器130将任务1~8的每一者的读取状态初始化成一预设状态a。由于处理器130尚不知需透过哪个通道存取哪个非挥发性内存,因此,任务1~8所对应的通道编号以问号表示。
接着,处理器130译码任务1~8,用以取得任务1~8的逻辑地址,并根据任务1~8的逻辑地址以及挥发性内存140所储存信息,更新任务1~任务8的读取状态以及通道编号。第3图显示更新后的状态表。以任务1为例,假设任务1的逻辑地址并未被记录于挥发性内存140的逻辑至实体转换表中,因此,处理器130将任务1的读取状态由预设状态a更新为预设状态b。默认状态b表示处理器130需先找出任务1的逻辑地址所对应的一逻辑至实体转换表储存在哪个非挥发性内存中,再根据找到的逻辑至实体转换表得知任务1的逻辑地址所对应的数据储存在哪个非挥发性内存中。
举例而言,在一读取期间,处理器130根据挥发性内存140所储存的一转换地址表,得知任务1的逻辑地址所对应的一特定逻辑至实体转换表储存在非挥发性内存150_1中。由于处理器130透过通道160_1存取非挥发性内存150_1,因此,处理器130将任务1所对应的信道编号设定为0。
请再参考图3,假设,任务3的逻辑地址已被记录于挥发性内存140所储存的逻辑至实体转换表中。在此例中,处理器130将任务3的读取状态设定为预设状态c。由于任务3的逻辑位置的数据储存在非挥发性内存150_3中,故处理器130将任务3的信道编号更新为2。在本实施例中,通道编号0~3分别对应通道160_1~160_4。
在更新完图2的所有任务的读取状态以及信道编号后,处理器130从更新后的状态表(如图3所示)中,挑选多个任务作为一第一任务集合,并同时执行第一任务集合里的所有任务。在本实施例中,第一任务集合里的所有任务的信道编号均不相同。
举例而言,图3所示的任务1-3及8的通道编号均不相同,故处理器130可能挑选图3中的任务1-3及8作为一第一任务集合。在此例中,任务1-3及8之至少一者的读取状态不同于另一者。在另一可能实施例中,处理器130挑选具有相同的读取状态但不同信道编号的任务。举例而言,处理器130挑选任务1-2及7作为一第一任务集合,或是挑选任务3及8作为一第一任务集合。在其它实施例中,处理器130根据信道编号挑选任务,用以使信道160_1~160_4皆处于忙录状态。换句话说,在每一读取期间,处理器130透过通道160_1~160_4读取非挥发性内存150_1~150_4。
为方便说明,以下假设处理器130挑选图3的任务1-3作为一第一任务集合。在此例中,处理器130根据任务1-3的信道编号,透过信道160_1~160_3同时读取非挥发性内存150_1~150_3。以任务1为例,由于任务1的读取状态为预设状态b,故处理器130透过通道160_1读取非挥发性内存150_1所储存的一第一逻辑至实体转换表。在处理器130取得第一逻辑至实体转换表后,处理器130将任务1的读取状态更新为预设状态c。在一可能实施例中,处理器130将第一逻辑至实体转换表加载挥发性内存140中。处理器130根据第一逻辑至实体转换表得知任务1的逻辑地址所对应的数据储存在非挥发性内存150_3。因此,处理器130任务1的信道编号更新为2,如图4所示。在一可能实施例中,如果任务1的逻辑地址所对应的数据也是储存非挥发性内存150_1时,则处理器130将任务1的信道编号维持在0。
针对任务2,在图3中,由于任务2的信道编号为1,故处理器130透过通道160_2读取非挥发性内存150_2所储存的一第二逻辑至实体转换表,并将任务2的读取状态更新为预设状态c,如图4所示。对于任务3,由于图3中的任务3的读取状态为预设状态c,故处理器130透过通道160_3读取非挥发性内存150_3所储存的数据,并将任务3的读取状态更新为状态d,如图4所示。状态d表示处理器130已完成任务3。
在一可能实施例中,处理器130将读取到的数据及逻辑至实体转换表储存于挥发性内存140中,但处理器130只会输出数据予主机装置110,并不会将逻辑至实体转换表输出予主机装置110。
图4为更新任务1-3后的状态表示意图。如图所示,状态1-3的读取状态及通道编号均已被修改。处理器130再从图4的状态表中,挑选多个具有不同信道编号的任务作为一第二任务集合。在一可能实施例中,处理器130可能挑选具有相同读取状态的任务。举例而言,处理器130可能挑选图4中的任务1-2作为第二集合任务,或是挑选任务4及7作为第二集合任务。在其它实施例中,处理器130可能挑选任务1-2及5作为第二集合任务。在此例中,第二集合任务里的一第一任务(如任务1)的读取状态不同于第二集合任务里的一第二任务(如任务5)的读取状态。
在一些实施例中,第二集合任务里的所有任务具有相同的读取状态,并且相同或不同于第一集合任务里的所有任务的读取状态。举例而言,第二集合任务里的所有任务的读取状态均为预设状态b,而第一集合任务里的所有任务的读取状态均为预设状态b或c。
处理器130执行第二集合任务,并更新第二集合任务里的所有任务的读取状态及信道编号,并再从更新后的状态图中重新挑选多个任务作为一第三任务集合,直到图4的任务1~8的读取状态均为状态d。在一可能实施例中,当处理器130读取到关联于任务1~8的逻辑地址的数据时,处理器130一并输出读取数据予主机装置110。
图5为本发明的数据读取方法,其可适用于一记忆装置中。记忆装置包括一挥发性内存、多个非挥发性内存以及一处理器。在一可能实施例中,处理器透过多个通道读取这些非挥发性内存。
首先,处理器根据一命令队列里的至少一命令产生一状态表(步骤S511)。在一可能实施例中,记忆装置里的挥发性内存140的一记忆区块作为该命令队列。另外,状态表也可能储存在记忆装置里的挥发性内存、非挥发性内存或是其它内存中。在本实施例中,状态表记录多个任务以及每一任务的一读取状态以及一通道编号。在建立状态表后,处理器初始化状态表里的所有任务的读取状态。在一可能实施例中,处理器将状态表里的所有任务的读取状态初始化成一特定状态,如一预设状态a。图2显示一可能的初始化结果。
接着,处理器根据挥发性内存所储存的信息,更新状态表里每一任务的读取状态及信道编号(步骤S512)。因此,每一任务的读取状态与挥发性内存所储存的信息有关。在一可能实施例中,处理器判断状态表里的一第一任务的逻辑地址是否被记录于挥发性内存所储存的一逻辑至实体转换表。
当第一任务的逻辑地址未被记录于挥发性内存所储存的逻辑至实体转换表时,处理器将第一任务的读取状态设定为一预设状态b,并根据挥发性内存所储存的一转换地址表,更新第一任务的信道编号。然而,当第一任务的逻辑地址被记录于挥发性内存所储存的逻辑至实体转换表时,处理器设定第一任务的读取状态为一预设状态c。此时,处理器根据挥发性内存所储存的逻辑至实体转换表,更新第一任务的信道编号。
接着,处理器从更新后的状态表中,挑选多个任务作为一第一任务集合,并同时执行第一任务集合里的所有任务(步骤S513)。在本实施例中,第一任务集合里的所有任务的信道编号均不相同。在一可能实施例中,第一任务集合里的所有任务的读取状态均为预设状态b或c。在其它实施例中,第一任务集合里的多个任务中之一者的读取状态不同于第一任务集合里的多个任务中之另一者。
以图3为例,假设,处理器挑选任务1-3作为第一任务集合。针对任务1及2,由于任务1及2的读取状态为预设状态b,故处理器读取非挥发性内存之至少一者,用以读取关联于任务1及2的逻辑地址的至少一逻辑至实体转换表。接着,处理器将任务1-2的读取状态更新为预设状态c,并根据读取到的至少一逻辑至实体转换表更新任务1及2的信道编号。
接着,针对任务3,由于任务3的读取状态为预设状态c,故处理器读取非挥发性内存之至少一者,用以读取关联于任务3的逻辑地址的数据。在读取到数据后,处理器将任务3的读取状态更新为状态d,图4显示执行完第一任务集合后的状态表示意图。
在更新完第一任务集合里的所有任务的读取状态后,处理器判断图4的状态表里的所有读取状态是否均为状态d。若是,表示处理器已完成命令队列里的一读取命令(步骤S515)。因此,处理器输出所有的读取数据予一主机装置。若第4图的状态表里的所有读取状态并非状态d时,则回到步骤S513,继续挑选并同时执行图4里的多个任务。此时,被挑选到的任务构成一第二任务集合。
处理器执行第二任务集合,并根据执行结果更新第二任务集合里的每一任务的读取状态。在处理器执行完第二任务集合里的所有任务后,若仍有部分任务的读取状态不为状态d时,则处理器再次挑选多个任务作为一第三任务集合,并同时执行第亖任务集合里的多个任务,直到图4的状态表里的任务1-8的读取状态均为状态d。
处理器在不同的读取期间执行不同的任务集合里的多个任务。在一可能实施例中,在每一读取期间,所有的通道均为忙录状态。当图4的对应表里的任务1-8的读取状态均为状态d时,处理器将关联任务1-8的逻辑地址的数据输出予主机装置。在此例中,处理器并不会输出逻辑至实体转换表予主机装置。
在一可能实施例中,第二任务集合里的所有任务的读取状态均相同,并相同或不同于第一任务集合里的所有任务的读取状态。在另一可能实施中,第二任务集合具有一第一任务以及一第二任务,其中第一任务的读取状态不同于第二任务的读取状态。在此例中,处理器可同时进行表格(逻辑至实体转换表)的读取以及数据的读取。
除非另作定义,在此所有词汇(包含技术与科学词汇)均属本发明所属技术领域中具有通常知识者的一般理解。此外,除非明白表示,词汇于一般字典中的定义应解释为与其相关技术领域的文章中意义一致,而不应解释为理想状态或过分正式的语态。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (18)
1.一种记忆装置,包括:
多个非挥发性内存;
一挥发性内存,具有一命令队列;以及
一处理器,透过多个通道读取这些非挥发性内存,并根据该命令队列里的至少一命令产生一状态表,该状态表记录多个任务以及每一任务的一读取状态及一通道编号,
其中该处理器产生该状态表的方法包括,判断一第一任务集合里的一第一特定任务的一逻辑地址是否已记载在该挥发性内存所储存的一特定逻辑至实体转换表,当该第一特定任务的该逻辑地址并未记载在该特定逻辑至实体转换表时,该处理器设定该第一特定任务的一读取状态为一第一预设状态,当该第一特定任务的该逻辑地址已记载在该特定逻辑至实体转换表时,该处理器设定该第一特定任务的该读取状态为一第二预设状态,
其中该处理器根据该状态表所记录的这些任务以及这些任务对应的通道编号,挑选这些任务中之多个特定任务,以作为该第一任务集合,该第一任务集合里的每一任务所对应的信道编号不同于该第一任务集合里的其他任务所对应的信道编号,
其中该处理器同时执行该第一任务集合中的所有任务,该第一任务集合里的所有任务的信道编号均不相同;
其中当该第一特定任务的读取状态为该第一预设状态时,该处理器读取这些非挥发性内存之一者,用以读取关联于该第一特定任务的逻辑地址的一逻辑至实体转换表;当该第一特定任务的读取状态为该第二预设状态时,该处理器读取这些非挥发性内存之一者,用以读取关联于该第一特定任务的逻辑地址的数据。
2.如权利要求1所述的记忆装置,其特征在于,在一第一读取期间,该处理器执行该第一任务集合,该第一任务集合里的每一任务的读取状态均为一第一特定状态;
在一第二读取期间,该处理器根据该状态表所记录的这些任务以及这些任务对应的通道编号,从这些任务中挑选多个特定任务,以作为一第二任务集合,该第二任务集合里的每一任务所对应的信道编号不同于该第二任务集合里的其它任务所对应的信道编号,该处理器同时执行该第二任务集合中的所有任务,该第二任务集合里的所有任务的信道编号均不相同,该第二任务集合里的每一任务的读取状态均为一第二特定状态,该第二特定状态不同于该第一特定状态。
3.如权利要求2所述的记忆装置,其特征在于,当该第一特定状态为该第一预设状态,并且该第二特定状态为该第二预设状态时,在该处理器执行完该第一任务集合后,该处理器将该第一任务集合里的每一任务的读取状态更新成该第二预设状态,当该处理器执行完该第二任务集合后,该处理器将该第二任务集合里的每一任务的读取状态更新成一第三状态,该第三状态表示该处理器已完成该第二任务集合里的一特定任务。
4.如权利要求2所述的记忆装置,其特征在于,当该第一特定状态为该第二预设状态,并且该第二特定状态为该第一预设状态时,在该处理器执行完该第一任务集合后,该处理器将该第一任务集合里的每一任务的读取状态更新成一第三状态,当该处理器执行完该第二任务集合后,该处理器将该第二任务集合里的每一任务的读取状态更新成该第二预设状态,该第三状态表示该处理器已完成该第一任务集合里一特定任务。
5.如权利要求4所述的记忆装置,其特征在于,在一第三读取期间,该处理器根据该状态表所记录的这些任务以及这些任务对应的通道编号,从这些任务中挑选多个特定任务作为一第三任务集合,该第三任务集合里的每一任务所对应的信道编号不同于该第三任务集合里的其它任务所对应的信道编号,该处理器同时执行该第三任务集合中的所有任务,该第三任务集合里的所有任务的信道编号均不相同,该第三任务集合里的每一任务的读取状态均为该第二预设状态,当该处理器执行完该第三任务集合后,该处理器将该第三任务集合里的每一任务的读取状态更新成该第三状态,该处理器继续挑选这些任务中的多个任务,直到这些任务之每一者的读取状态均为该第三状态。
6.如权利要求1所述的记忆装置,其特征在于,该处理器同时执行该第一任务集合里的该第一特定任务以及一第二特定任务,该第一特定任务的读取状态不同于该第二特定任务的读取状态。
7.如权利要求6所述的记忆装置,其特征在于,当该处理器执行该第一特定任务时,该处理器读取这些非挥发性内存的一第一非挥发性内存所储存的一逻辑至实体转换表,当该处理器执行该第二特定任务时,该处理器读取这些非挥发性内存的一第二非挥发性内存所储存的一特定数据,该记忆装置输出该特定数据予一主机装置,但不输出该逻辑至实体转换表予该主机装置。
8.如权利要求1所述的记忆装置,其特征在于,该挥发性内存所储存的该特定逻辑至实体转换表包括多个逻辑地址以及这些逻辑地址关联的多个实体地址。
9.如权利要求1所述的记忆装置,其特征在于,在一读取期间,该处理器透过所有通道读取这些非挥发性内存。
10.一种数据读取方法,适用于一记忆装置,该记忆装置包括多个非挥发性内存、一挥发性内存以及一处理器,该处理器透过多个通道读取这些非挥发性内存,该数据读取方法包括:
根据一命令队列里的至少一命令产生一状态表,该状态表记录多个任务、每一任务的一读取状态及一通道编号,其中根据该命令队列里的该命令产生该状态表的步骤包括,该处理器判断一第一任务集合里的一第一特定任务的一逻辑地址是否已记载在该挥发性内存所储存的一特定逻辑至实体转换表,当该第一特定任务的该逻辑地址并未记载在该特定逻辑至实体转换表时,该处理器设定该第一特定任务的一读取状态为一第一预设状态,当该第一特定任务的该逻辑地址已记载在该特定逻辑至实体转换表时,该处理器设定该第一特定任务的该读取状态为一第二预设状态;
根据该状态表所记录的这些任务以及这些任务对应的通道编号,挑选这些任务中的多个任务作为该第一任务集合,其中该第一任务集合里的每一任务所对应的信道编号不同于该第一任务集合里的其它任务所对应的信道编号;
同时执行该第一任务集合中的所有任务,其中该第一任务集合里的所有任务的信道编号均不相同;
当该第一任务集合中的该第一特定任务的读取状态为该第一预设状态时,读取这些非挥发性内存之至少一者,用以读取关联于该第一特定任务的逻辑地址的一逻辑至实体转换表;以及
当该第一特定任务的读取状态为该第二预设状态时,读取这些非挥发性内存之至少一者,用以读取关联于该第一特定任务的逻辑地址的数据。
11.如权利要求10所述的数据读取方法,其特征在于,在一第一读取期间,执行该第一任务集合,该第一任务集合的每一任务的读取状态均为一第一特定状态;
在一第二读取期间,根据该状态表所记录的这些任务以及这些任务对应的通道编号,挑选这些任务中的多个任务作为一第二任务集合,其中该第二任务集合里的每一任务所对应的信道编号不同于该第二任务集合里的其它任务所对应的信道编号,并同时执行该第二任务集合中的所有任务,其中该第二任务集合里的所有任务的信道编号均不相同,该第二任务集合里的所有任务的读取状态均为一第二特定状态,该第二特定状态不同于该第一特定状态。
12.如权利要求11所述的数据读取方法,其特征在于,当该第一特定状态为该第一预设状态,并且该第二特定状态为该第二预设状态时,在执行完该第一任务集合后,将该第一任务集合的每一任务的读取状态更新成该第二预设状态,在执行完该第二任务集合后,将该第二任务集合里的每一任务的读取状态更新成一第三状态,该第三状态表示已完成相对应的任务。
13.如权利要求11所述的数据读取方法,其特征在于,当该第一特定状态为该第二预设状态,并且该第二特定状态为该第一预设状态时,在执行完该第一任务集合后,将该第一任务集合里的每一任务的读取状态更新成一第三状态,在执行完该第二任务集合后,将该第二任务集合的每一任务的读取状态更新成该第二预设状态,该第三状态表示已表示已完成相对应的任务。
14.如权利要求13所述的数据读取方法,其特征在于,在一第三读取期间,根据该状态表所记录的这些任务以及这些任务对应的通道编号,挑选这些任务中的多个任务作为一第三任务集合,其中该第三任务集合里的每一任务所对应的信道编号不同于该第三任务集合里的其它任务所对应的信道编号,并同时执行该第三任务集合中的所有任务,该第三任务集合里的所有任务的信道编号均不相同,该第三任务集合里的每一者任务的读取状态均为该第二预设状态,在执行完该第三任务集合后,将该第三任务集合里的每一任务的读取状态更新成该第三状态,并继续执行其它任务,直到所有任务的读取状态均为该第三状态。
15.如权利要求10所述的数据读取方法,其特征在于,该第一任务集合至少包括该第一特定任务以及一第二特定任务,该第一及第二特定任务的读取状态不同。
16.如权利要求15所述的数据读取方法,其特征在于,在执行该第一特定任务时,读取这些非挥发性内存的一第一非挥发性内存所储存的一逻辑至实体转换表,在执行该第二特定任务时,读取这些非挥发性内存的一第二非挥发性内存所储存的一特定数据,其中该特定数据被输出予一主机装置,但该逻辑至实体转换表不被输出予该主机装置。
17.如权利要求10所述的数据读取方法,其特征在于,还包括:
该特定逻辑至实体转换表包括多个逻辑地址以及这些逻辑地址关联的多个实体地址。
18.如权利要求10所述的数据读取方法,其特征在于,在一读取期间,这些通道的每一者为一忙录状态。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562220038P | 2015-09-17 | 2015-09-17 | |
US62/220,038 | 2015-09-17 | ||
TW105108937A TWI587141B (zh) | 2015-09-17 | 2016-03-23 | 記憶裝置及資料讀取方法 |
TW105108937 | 2016-03-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547701A CN106547701A (zh) | 2017-03-29 |
CN106547701B true CN106547701B (zh) | 2020-01-10 |
Family
ID=58282328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610636069.2A Active CN106547701B (zh) | 2015-09-17 | 2016-08-05 | 记忆装置及数据读取方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10275187B2 (zh) |
CN (1) | CN106547701B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102655347B1 (ko) * | 2016-07-04 | 2024-04-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10037150B2 (en) * | 2016-07-15 | 2018-07-31 | Advanced Micro Devices, Inc. | Memory controller with virtual controller mode |
US10289544B2 (en) * | 2016-07-19 | 2019-05-14 | Western Digital Technologies, Inc. | Mapping tables for storage devices |
CN107608773B (zh) * | 2017-08-24 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 任务并发处理方法、装置及计算设备 |
US20220342655A1 (en) * | 2021-04-22 | 2022-10-27 | STMicroelectronics (Grand Ouest) SAS | Microcontroller, computer program product, and method for adding an additional function to a computer program |
US20220382478A1 (en) * | 2021-06-01 | 2022-12-01 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for page migration in memory systems |
CN114706528A (zh) * | 2022-03-26 | 2022-07-05 | 西安电子科技大学 | 一种文件管理系统、控制方法、介质、设备及终端 |
CN117453115A (zh) * | 2022-07-19 | 2024-01-26 | 华为技术有限公司 | 一种存储器件共享的方法、装置及系统 |
CN117785732B (zh) * | 2023-12-28 | 2025-02-28 | 摩尔线程智能科技(成都)有限责任公司 | 存储空间管理方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103635968A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN103631751A (zh) * | 2013-12-17 | 2014-03-12 | 武汉科技大学 | 一种基于连接特征的多任务集合划分方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000276404A (ja) * | 1999-03-29 | 2000-10-06 | Nec Corp | 仮想記憶装置および仮想記憶方法、並びに記録媒体 |
US7873791B1 (en) * | 2007-09-28 | 2011-01-18 | Emc Corporation | Methods and systems for incorporating improved tail cutting in a prefetch stream in TBC mode for data storage having a cache memory |
KR101486987B1 (ko) | 2008-05-21 | 2015-01-30 | 삼성전자주식회사 | 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법 |
US8055816B2 (en) * | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
US9058208B2 (en) * | 2012-11-12 | 2015-06-16 | Skymedi Corporation | Method of scheduling tasks for memories and memory system thereof |
-
2016
- 2016-08-05 CN CN201610636069.2A patent/CN106547701B/zh active Active
- 2016-08-24 US US15/246,110 patent/US10275187B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103635968A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN103631751A (zh) * | 2013-12-17 | 2014-03-12 | 武汉科技大学 | 一种基于连接特征的多任务集合划分方法 |
Also Published As
Publication number | Publication date |
---|---|
US10275187B2 (en) | 2019-04-30 |
US20170083372A1 (en) | 2017-03-23 |
CN106547701A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547701B (zh) | 记忆装置及数据读取方法 | |
JP6918805B2 (ja) | 不揮発性メモリの複数区画の同時アクセスのための装置及び方法 | |
TWI624838B (zh) | 用於在記憶體存取操作期間同時存取記憶體之多個記憶體平面之裝置及方法 | |
US10445005B2 (en) | Memory system and operating method thereof | |
US8417872B2 (en) | Write and merge methods in memory card systems for reducing the number of page copies | |
JP2008507756A5 (zh) | ||
CN103488580A (zh) | 固态储存装置的地址对应表建立方法 | |
KR20160024546A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20180039443A1 (en) | System and method for controlling a programmable deduplication ratio for a memory system | |
TWI679534B (zh) | 資料儲存裝置以及資料儲存方法 | |
CN104850501A (zh) | 一种ddr存储器访存地址映射方法及访存地址映射单元 | |
CN108877856B (zh) | 储存装置、记录方法以及预载方法 | |
US10102125B2 (en) | PCI device, interface system including the same, and computing system including the same | |
US20180357280A1 (en) | Trie search engine | |
US20140075103A1 (en) | Method capable of increasing performance of a memory and related memory system | |
JP6605597B2 (ja) | 複数メモリからのアプリケーション起動 | |
TWI662413B (zh) | 記憶裝置及資料讀取方法 | |
US10515674B2 (en) | Devices and systems to reduce the number of memory type range registers (MTRRS) used to map processor-associated memory | |
WO2016056290A1 (ja) | メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 | |
TW201935244A (zh) | 基於偏移之邏輯區塊映射 | |
TW201814494A (zh) | 記憶體系統及處理器系統 | |
TWI453747B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
KR101814894B1 (ko) | 제어 디바이스 및 그 제어 디바이스를 이용하는 액세스 시스템 | |
CN105760317A (zh) | 数据写系统和用于核心处理器的数据写方法 | |
US20110055526A1 (en) | Method and apparatus for accessing memory according to processor instruction |
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 |