CN117806540A - 储存装置控制器及储存装置控制器的方法 - Google Patents
储存装置控制器及储存装置控制器的方法 Download PDFInfo
- Publication number
- CN117806540A CN117806540A CN202311209888.5A CN202311209888A CN117806540A CN 117806540 A CN117806540 A CN 117806540A CN 202311209888 A CN202311209888 A CN 202311209888A CN 117806540 A CN117806540 A CN 117806540A
- Authority
- CN
- China
- Prior art keywords
- core
- address information
- thread
- write
- different
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000004044 response Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 239000007787 solid Substances 0.000 description 6
- 238000005192 partition Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- SUYHYHLFUHHVJQ-UHFFFAOYSA-N Menazon Chemical compound COP(=S)(OC)SCC1=NC(N)=NC(N)=N1 SUYHYHLFUHHVJQ-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种储存装置控制器及储存装置控制器的方法。该方法包括:使用一接口电路以接收并储存一主机装置所发送的多个不同写入命令信号的多个不同写入地址资讯,该多个不同写入地址资讯是顺序错乱的;以及利用多个处理器核心来重新排序该多个不同写入地址资讯,并接着根据重新排列后的多个不同写入地址资讯来写入数据至至少一储存区中。
Description
技术领域
本发明有关于一多重处理机制,尤指一种储存装置控制器及其方法。
背景技术
一般而言,传统的快闪存储器控制器可用作应用于一主机装置(例如一储存伺服器)的一控制器,而该储存伺服器可连接至一个或多个储存装置(例如固态硬碟)。一命名空间(namespace)是该主机装置的软件可以存取的多个逻辑区块地址(logical blockaddress,LBA)的一集合,它可以被划分为多个区域(zone),这些区域需要依顺序写入,并且同一个区域的多个逻辑区块地址也需要依顺次写入。传统的快闪存储器控制器只能够支持伫列深度(queue depth)为1的技术方案,因此传统的快闪存储器控制器无法同时写入多个区域,当需要写入大数据量时,其写入的反应时间会更长。
发明内容
因此本发明的目的之一在于提供一种储存装置控制器及相应的方法,以解决上述问题。
根据本发明的实施例,揭露了一种储存装置控制器。该储存装置控制器包括一接口电路与多个处理器核心,该接口电路耦接于一主机装置,该主机装置外接于该储存装置控制器,该接口电路用于接收并储存该主机装置所发送的多个不同写入命令信号的多个不同写入地址资讯,该多个不同写入地址资讯是顺序错乱的。该多个处理器核心耦接于该接口电路,并用以依序重排该多个不同的写入地址资讯,并依据该依序重排后的多个不同写入地址资讯来写入数据到至少一储存区。
根据本发明的实施例,揭露了一种储存装置控制器的方法。该方法包括:使用一接口电路以接收并储存一主机装置所发送的多个不同写入命令信号的多个不同写入地址资讯,该多个不同写入地址资讯是顺序错乱的;以及利用多个处理器核心来重新排序该多个不同写入地址资讯,并接着根据重新排列后的多个不同写入地址资讯来写入数据至至少一储存区中。
附图说明
图1为本发明一实施例的一储存装置控制器的方块图。
图2为本发明另一实施例的一储存装置控制器的方块图。
图3为根据本发明的一实施例图1中的储存装置控制器的操作范例示意图。
图4为根据本发明的一实施例执行图1中的HBFTL执行绪的管理核心CN的操作流程示意图。
图5为本发明另一实施例的一储存装置控制器的方块图。
图6为根据本发明的一实施例图5中的多个处理器核心的操作场景示例图。
图7为根据本发明另一实施例的储存装置控制器执行管理核心CN的HBFTL执行绪的操作流程示意图。
图8为根据本发明的另一个不同实施例在图7中的特定处理器核心的操作流程示意图。
【符号说明】
100,500:储存装置控制器
101:主机装置
105:接口电路
1010:主机驱动器
1011:I/O伫列
1051:硬件存储器
具体实施方式
本发明旨在于提供一种技术方案和储存装置控制器,其能够对一主机装置的多个顺序错乱的写入命令信号进行排列或重排,以满足非挥发性存储器主机控制器接口规范(NVMe或NVM Express)的分区命名空间(zoned namespaces,ZNS)的接口要求,其中NVM代表非挥发性存储器。一命名空间是一主机装置的软件所能够存取的多个逻辑区块地址(LBA)的一个集合,而一非挥发性存储器主机控制器接口规范的命名空间被划分为多个区域,该多个区域需要依顺次写入,而同一个区域的逻辑区块地址也需要依顺次写入。本发明所揭露的储存装置控制器是耦接在一主机装置和一个或多个储存装置之间,储存装置例如是基于快闪存储器所实现的固态硬碟(flash memory-based SSD(solid-state drives/disk)),所揭露的储存装置控制器可以排列或重新排列该主机装置所输出的顺序错乱的写入命令信号,以满足一或多个分区命名空间的需要依顺序写入的要求。
图1是依照本发明一实施例的储存装置控制器100的方块图。储存装置控制器100为一个多核心的快闪存储器处理器(但不限于),其至少包括多个处理器核心C0、C1、…、CN-1与CN以及一特定接口电路105,接口电路105例如是一NVM Express(NVMe)的硬件电路,其中NVMe硬件电路105支持主机装置101与储存装置控制器100之间的NVMe协议通信,其中上述的数字N并非是本案的限制。储存装置控制器100外接于主机装置101,主机装置101例如是一个人电脑装置或一伺服器装置,以及储存装置控制器100外接于一或多个储存装置,储存装置例如是快闪存储器所实现的固态硬碟(未显示于图1中)。
多个核心C0、C1、…、CN-1与CN中的一个处理器核心如CN会是专用的并被选定为一管理员核心(administrator core),其或是所有储存区(zone or open zone)的一管理核心(manager core),该管理员核心具有一管理执行绪(manager thread),该管理执行绪例如是一基于主机为主的快闪存储器转换层(host-based flash translation layer,在以下段落中简写入为HBFTL)的执行绪并且被用来执行该HBFTL执行绪,其中一个执行绪是可以由一处理器或一处理器核心所执行以进行一特定操作或功能的一执行绪。此外,其他处理器核心C0、C1、…、CN-1被视为是工作核心(worker core),每一个工作核心具有一第一执行绪和一第二执行绪,该第一执行绪例如是一获取命令执行绪(fetch command thread)TF,该第二执行绪例如是一数据移动执行绪(data move thread)TD。
主机装置101包括一主机驱动器1010,主机驱动器1010可以具有多个输入/输出(I/O)伫列Q0、Q1、…与QM,它们分别通过NVMe接口协议耦接到NVMe硬件电路105,数字M可以不同于或相同于数字N。每一个I/O伫列Q0、Q1、…与QM可以用于储存单一个写入命令信号的资讯,该单一个写入命令信号可以携带有一写入命令、一组对应的写入地址资讯以及一或多个对应的待写入数据单元,其中该对应的写入地址资讯可以包括有一起始逻辑区块地址(简写为SLBA)以及该一或多个对应数据单元的一数据长度,该数据长度例如是一或多个逻辑区块地址的个数(简写为NLBA)。另外,在一实施例,每个I/O伫列Q0、Q1、…与QM的伫列深度可以等于1(但不限于);也就是说,此时每个I/O伫列只能储存一组写入地址资讯。在另一实施例中,由于储存装置控制器100可以允许顺序错乱的写入命令信号,所以每个I/O伫列Q0、Q1、…与QM的伫列深度可以被设置为大于1。
当主机装置101发出多个写入命令信号以写入至不同数据单元至同一个开放区(open zone)连续储存空间或至不同开放区的连续储存空间时,储存装置控制器100可以允许该些写入命令信号的该些写入地址资讯是乱序的(亦即前后顺序错乱的)。主机装置101例如可以发出和传输不同的写入命令信号到不同的I/O伫列Q0、Q1、…与QM的至少一部分,而以及I/O伫列Q0、Q1、…与QM可以依序地或随机地将该些写入命令信号的该些不同写入地址资讯输出到NVMe硬件电路105中。在本实施例中,例如(但不限于),储存装置控制器100所接收到的多个写入命令信号的SLBA资讯可以是乱序的,而储存装置控制器100仍然可以正确地处理该些写入命令信号以满足一或多个分区命名空间的需要依顺序写入的要求。
储存在多个I/O伫列中的该些不同写入命令信号的该些不同的对应的写入地址资讯会分别从该些I/O伫列传输到NVMe硬件电路105,该些传输可以是依顺序的,也可以是乱序的。也就是说,NVMe硬件电路105可以同时缓存一组或多组写入命令信号的写入地址资讯。
当一工作核心例如C0是空闲时,该工作核心C0被安排执行其第一执行绪,亦即获取命令执行绪TF,以从该NVMe硬件电路105获取一个写入命令信号的一组写入命令资讯,接着用来将该组写入命令资讯发送给该管理核心CN。同样地,当多个或全部工作核心C0、C1、…、CN-1是空闲时,一部分的工作核心C0、C1、…、CN-1分别执行各自的获取命令执行绪TF,以分别从该NVMe硬件电路105获取多个写入命令信号的不同组的写入地址资讯。接着,该些工作核心会分别将它们所获取的不同写入地址资讯发送给该管理核心CN。
管理核心CN用于在所接收到的多个写入命令信号的不同写入地址资讯出现乱序时,对该些写入命令信号进行顺序排列或重排。如果该些写入命令信号的不同写入地址资讯的顺序没有错乱,则管理核心CN不会重新排列该些写入命令信号的顺序。接着,管理核心CN用于将重新排列后的该些不同写入地址资讯依顺序地传送给多个空闲的工作核心。
例如,对于一个工作核心例如C0,工作核心C0被安排用来执行它的第二执行绪,亦即数据移动执行绪TD,以根据重新排列后的一写入地址资讯将相应的数据移动并写入到重新排列后的该写入地址资讯所指定的一储存空间中。也就是说,对于工作核心C0,其第一执行绪所获取的写入地址资讯可能不同于其第二执行绪所接收到写入地址资讯及不同于管理核心CN所指派的写入地址资讯。另外,在一个示例中,对于另一个不同的工作核心例如C1,其第一执行绪所获取的写入地址资讯可以相同于其第二执行绪所接收到的并由管理核心CN所指派的写入地址资讯。
图2为本发明另一实施例的储存装置控制器100的方块图。在本实施例中,储存装置控制器100可以支持主机装置101的不同示例,主机装置101可以包括单一个I/O伫列1011,该伫列1011可以储存多组不同的写入地址资讯。图2的储存装置控制器100的操作和功能与图1中的储存装置控制器100的操作和功能相同,为简洁起见,不再详细说明。
图3是根据本发明的一个实施例图1中的储存装置控制器100的操作范例示意图。如图3所示,例如(但不限于),四个连续的写入命令信号可以依序从主机装置101传输到图1中的NVMe硬件电路105,而储存装置控制器100所接收到的不同的写入地址资讯可能不是乱序的。NVMe硬件电路105中的一个硬件存储器1051可以储存四个写入命令信号W1、W2、W3和W4,其可携带四组可能不是乱序的不同的写入地址资讯,例如SLBA资讯和NLBA资讯。
例如(但不限于),工作核心C0执行其获取命令执行绪TF以从NVMe硬件电路105获取一写入命令信号W1的写入地址资讯(例如SLBA=A和NLBA=K),其中SLBA=A表示起始逻辑区块地址资讯等于A,NLBA=K表示逻辑区块地址个数资讯等于K。也就是说,写入命令信号W1的结束逻辑区块地址等于或被计算为(A+K)。接着,工作核心C0执行其获取命令执行绪TF以将写入命令信号W1的写入地址资讯(例如SLBA=A和NLBA=K)传送到管理核心CN的HBFTL执行绪中。需要说明的是,在一个例子中,在与多个写入命令信号有相关联的一数据写入操作/过程中,如果一个写入命令信号的操作已经完成或结束,则管理核心CN的HBFTL执行绪可以记录一个写入命令信号的结束逻辑区块地址在其区域写入指标(zone writepointer)处。另外,写入命令信号W1是管理核心CN的HBFTL执行绪所接收到的一第一个命令信号,而该HBFTL执行绪用于建立一连结串列(link list)并记录写入命令信号W1的该写入地址资讯(例如SLBA=A和NLBA=K)在该连结串列的第一个节点。
接着,类似地,工作核心C1可以执行其获取命令执行绪TF以从该NVMe硬件电路105获取一写入命令信号W2的写入地址资讯(例如SLBA=A+K+M和NLBA=N),其中SLBA=A+K+M表示起始逻辑区块地址等于(A+K+M),NLBA=N表示逻辑区块地址个数等于N;也就是说,写入命令信号W2的结束逻辑区块地址等于或被计算为(A+K+M+N)。此外,工作核心C1执行其获取命令执行绪TF以将写入命令信号W2的写入地址资讯(例如SLBA=A+K+M和NLBA=N)传送到管理核心CN的HBFTL执行绪中。
在管理核心CN的HBFTL执行绪接收到写入命令信号W2的写入地址资讯(例如SLBA=A+K+M和NLBA=N)之后,管理核心CN的HBFTL执行绪会用来比较该连结串列最后一个节点的SLBA资讯(亦即第一个写入命令信号W1的SLBA,亦即A)与该写入命令信号W2的SLBA资讯(亦即A+K+M)来决定如何更新该连结串列。在本例子中,写入命令信号W2的SLBA资讯(亦即A+K+M)会大于该写入命令信号W1的SLBA资讯(亦即A),而HBFTL执行绪被安排用来记录第二个写入命令W2的资讯于该连结串列的第二节点处,其中第二节点是第一节点之后的下一个节点。类似地,在与多个写入命令信号有相关联的数据写入操作/过程中,如果写入命令信号W1的操作已经完成或结束,则管理核心CN的HBFTL执行绪可以记录该写入命令信号W1的结束逻辑区块地址A其于区域写入指标处。在这种情况下,管理核心CN的HBFTL执行绪可以将该区域写入指标的资讯与第二写入命令信号W2的SLBA资讯进行比较,以决定是否通过使用一直接存储器存取(DMA)操作从主机装置101载入数据至储存装置控制器100。例如(但不限于),当该区域写入指标的资讯等于一个写入命令的SLBA资讯时,可以执行DMA操作来载入数据。在本例子中,由于该区域写入指标的资讯不等于写入命令信号W2的SLBA资讯(亦即A+K+M),因此不进行DMA操作。
接着,类似地,工作核心CN-1可以执行其获取命令执行绪TF以从NVMe硬件电路105获取一写入命令信号W3的写入地址资讯(例如SLBA=A+K+M+N和NLBA=L),其中SLBA=A+K+M+N表示起始逻辑区块地址等于(A+K+M+N),NLBA=L表示逻辑区块地址个数等于L;也就是说,写入命令信号W3的结束逻辑区块地址等于或被计算为(A+K+M+N+L)。另外,工作核心CN-1执行其获取命令执行绪TF以将写入命令信号W3的写入地址资讯(例如SLBA=A+K+M+N和NLBA=L)传送到管理核心CN的HBFTL执行绪。
管理核心CN的HBFTL执行绪接收到写入地址资讯(例如SLBA=A+K+M+N和NLBA=L)之后,管理核心CN的HBFTL执行绪会比较该连结串列的最后一个节点的SLBA资讯(亦即第二写入命令信号W2的SLBA资讯(A+K+M))与写入命令信号W3的SLBA资讯(亦即A+K+M+N)来决定如何产生或更新该连结串列。在本例子中该写入命令信号W3的SLBA(亦即A+K+M+N)大于写入命令信号W2的SLBA(亦即A+K+M),该HBFTL执行绪会记录第三写入命令信号W3的资讯于该连结串列的第三节点处,第三节点会跟随该连结串列的第二节点处的第二写入命令W2的资讯,其中第三节点现在是该连结串列中的最后一个节点。
类似地,在与多个写入命令信号有相关的数据写入操作/过程中,如果写入命令信号W2的操作已经完成或结束,则管理核心CN的HBFTL执行绪可以记录写入命令信号W2的一结束逻辑区块地址(A+K+M+N)在其区域写入指标处。在这种情况下,HBFTL执行绪可以将其区域写入指标的资讯与第三写入命令信号W3的SLBA资讯进行比较,以决定是否通过使用DMA操作将数据从主机装置101载入到储存装置控制器100。例如(但不限于),如果区域写入指标的资讯等于第三写入命令信号W3的SLBA资讯,则可以执行DMA操作来载入数据。如果区域写入指标的资讯不等于写入命令信号W3的SLBA资讯,则不进行DMA操作。
接着,类似地,工作核心C1(但不限于)可以执行其获取命令执行绪TF以从NVMe硬件电路105获取一写入命令信号W4的写入地址资讯(例如SLBA=A+K和NLBA=M),其中SLBA=A+K表示起始逻辑区块地址等于(A+K),NLBA=M表示逻辑区块地址个数等于M;也就是说,写入命令信号W4的结束逻辑区块地址等于或被计算为(A+K+M)。此外,工作核心C1执行其获取命令执行绪TF以将写入命令信号W4的写入地址资讯(例如SLBA=A+K和NLBA=M)传送到管理核心CN的HBFTL执行绪中。
管理核心CN的HBFTL执行绪接收到写入地址资讯(例如SLBA=A+K和NLBA=M)之后,管理核心CN的HBFTL执行绪会比较该连结串列的最后一个节点的SLBA资讯(亦即第三个写入命令信号W3的SLBA资讯(A+K+M+N))与写入命令信号W4的SLBA资讯(亦即A+K)来决定如何更新该连结串列。在本例子中,写入命令信号W4的SLBA资讯(亦即A+K)小于该连结串列的最后一个节点的SLBA资讯(亦即A+K+M+N),该HBFTL执行绪会插入一个新节点在该连结串列的两个节点之间。例如(但不限于),HBFTL执行绪在写入命令信号W1的节点和写入命令信号W2的节点之间插入一个新节点,以重新排列该连结串列的顺序,其中新节点记录了写入命令信号W4的写入地址资讯,亦即SLBA=A+K和NLBA=M的资讯。因此,更新后的该连结串列包括四个节点,其中第一节点记录了写入命令信号W1的地址资讯,在第一节点之后是记录了写入命令信号W4的地址资讯的第二节点,第二节点之后是记录了写入命令信号W2的地址资讯的第三节点,而在第三节点之后是第四个节点(亦即最后一个节点),其记录了写入命令W3的地址资讯。
另外,类似地,在与多个写入命令信号有相关联的数据写入操作/过程中,如果一个写入命令信号的操作已经完成或结束,则管理核心CN的HBFTL执行绪可以记录该写入命令信号的结束逻辑区块地址在其区域写入指标处。在这种情况下,HBFTL执行绪可以将其区域写入指标的资讯与第三写入命令信号W4的SLBA资讯进行比较,以决定是否通过DMA操作将数据从主机装置101载入到储存装置控制器100。例如(但不限于),如果该区域写入指标的资讯等于第三写入命令信号W4的SLBA资讯,则可以执行DMA操作来载入数据。如果该区域写入指标的资讯不等于写入命令信号W4的SLBA资讯,则不进行DMA操作。
接着,管理核心CN执行其HBFTL执行绪,依次将该连结串列中的不同节点记录的写入地址资讯依次指派和传输给不同工作核心中的一或多个空闲工作核心。例如,所执行的HBFTL执行绪用于将该连结串列第一个节点的写入命令信号W1的SLBA和NLBA的资讯指派并传递给工作核心C0的数据移动执行绪TD,工作核心C0会执行其数据移动执行绪TD以将来自主机装置101的写入命令信号W1的要被写入的数据单元移动并写入到由写入命令信号W1的SLBA和NLBA资讯所指定的一个或多个固态硬碟的一或多个储存区块中。在此示例中,工作核心C0的获取命令执行绪TF和数据移动执行绪TD会处理或服务相同的写入命令信号W1。
当写入命令信号W1的操作完成或将要完成时,管理核心CN的HBFTL执行绪会把该连结串列的第二节点上的写入命令信号W4的SLBA和NLBA资讯指派和发送到工作核心C1的数据移动执行绪TD,工作核心C1执行其数据移动执行绪TD以将来自主机装置101的写入命令信号W4的要被写入的数据单元移动并写入到由写入命令信号W4的SLBA和NLBA资讯所指定的一个或多个的固态硬碟的一或多个不同的储存区块。在此例子中,工作核心C1的读取命令执行绪TF会用来服务写入命令信号W2,而工作核心C1的数据移动执行绪TD会用来服务不同于写入命令信号W2的写入命令信号W4。
接着,当写入命令信号W4的操作完成或即将完成时,管理核心CN的HBFTL执行绪会把在该连结串列的第三节点上的写入命令信号W2的SLBA和NLBA资讯指派和传输工作核心CN-1的数据移动执行绪TD,并且工作核心CN-1执行其数据移动执行绪TD以将来自主机装置101的写入命令信号W2的要被写入的数据单元移动并写入到由写入命令信号W2的SLBA和NLBA资讯所指定的一个或多个固态硬碟的一或多个不同储存区块中。在此例子中,工作核心CN-1的读取命令执行绪TF会服务写入命令信号W3,而工作核心CN-1的数据移动执行绪TD会服务不同于写入命令信号W3的写入命令信号W2。
接着,当写入命令信号W2的操作完成之后,管理核心CN的HBFTL执行绪会将该连结串列的最后一个节点上的写入命令信号W3的SLBA和NLBA资讯指派并传递给一空闲工作核心(例如C0、C1或CN-1)的数据移动执行绪TD,例如工作核心C1(但不限于)是空闲的而工作核心C0和CN-1是忙碌的,工作核心C1会执行其数据移动执行绪TD以将来自主机装置101的写入命令信号W3的要被写入的数据单元移动并写入到由写入命令信号W3的SLBA和NLBA资讯所指定的一个或多个固态硬碟的一或多个不同储存区块中。
需要说明的是,在一个实施例中,基于所产生的连结串列,管理核心CN的HBFTL执行绪可以将该连结串列的不同节点上所记录的地址资讯对应地且依序地指派传输给单一个空闲的工作核心、多个不同的空闲工作核心或是不同于工作核心C0、C1和CN-1的不同的空闲工作核心。另外,在一个实施例中,管理核心CN选择的多个空闲工作核心也可以是无序的,而依序指派和传输记录在该连结串列的不同节点处的资讯的操作是有序的。此外,在执行获取命令执行绪TF以服务一写入命令信号之后的一个工作核心可以被安排用来执行其他执行绪以服务其他操作或请求并因此变得忙碌,而管理核心CN所指派的一不同的空闲工作核心会执行数据移动执行绪TD来服务该写入命令信号。如此一来,即使依序所接收到的多个写入命令信号的地址资讯出现乱序,储存装置控制器100仍可满足一或多个分区命名空间的依序写入的需求。
图4是根据本发明的一个实施例图1中的管理核心CN执行HBFTL执行绪的操作流程示意图。假设能够达到基本相同的结果,则图4所示的流程步骤不需要按照所示的确切顺序来执行,并且不需要是连续的,也就是说,其他步骤可以插入于中间。详细步骤说明如下:
步骤S400:开始;
步骤S405:HBFTL执行绪接收写入命令信号的SLBA和NLBA资讯;
步骤S410:HBFTL执行绪将写入命令信号的SLBA和NLBA资讯与一区域写入指标的资讯进行比较,以判断是否执行一直接存储器存取操作;如果资讯匹配或相等,则流程进行步骤S415,否则流程进行步骤S420;
步骤S415:触发并执行直接存储器存取操作以载入数据;
步骤S420:HBFTL执行绪将写入命令信号的SLBA资讯与该连结串列的最后一个节点上的SLBA资讯进行比较;如果写入命令信号的SLBA资讯大于该连结串列的最后一个节点的SLBA资讯,则流程进入步骤S425,否则流程进入步骤S430;
步骤S425:HBFTL执行绪增加一个新节点作为连结串列的最后一个节点,以记录接收到的写入命令信号的地址资讯在新节点上(亦即更新连结串列的最后一个节点);
步骤S430:HBFTL执行绪在该连结串列的两个节点之间插入一个新的节点来更新该连结串列,在插入的节点上记录接收到的写入命令信号的地址资讯(亦即不是更新连结串列的最后一个节点);以及
步骤S435:结束。
另外,在另一个实施例中,除了图1或图2的实施例的操作之外,管理核心CN的HBFTL执行绪可以另外指派或设置多个不同的工作核心作为分别专用于不同的储存区的多个管理核心,因此处理器核心CN的负担就可以由原本作为工作核心的其他处理器核心所分担。也就是说,管理核心CN的能力可以共享到不同的工作核心中,不同开放区的写入操作可以隔离和独立,其反应的时间可以更短。
图5是依照本发明另一实施例的一储存装置控制器500的方块图。储存装置控制器500为一多核心的快闪存储器处理器(但不限于),其至少包括多个处理器核心C0、C1、…、CN-1与CN以及一特定接口电路105,接口电路105例如是一NVM Express(NVMe)硬件电路,其中NVMe硬件电路105支持主机装置101(未显示于图5中)与储存装置控制器500之间的NVMe协议通信,数字N并非是本案的限制。储存装置控制器500外接于至主机装置101,主机装置101例如是一个人计算机装置或伺服器装置,并且储存装置控制器500外接于至一个或多个储存装置,储存装置例如是基于快闪存储器所实现的固态硬碟(未显示于图5中)。多个核心C0、C1、…、CN-1与CN中的一个处理器核心例如CN被选择作为一管理核心,其具有管理执行绪TM,管理执行绪TM例如是基于主机为主的第一快闪存储器转换层(缩写为HBFTL)执行绪并被安排用来执行一第一HBFTL执行绪。其他处理器核心C0、C1、…、CN-1被视为是工作核心,每一个工作核心具有一第一执行绪例如一获取命令执行绪TF和一第二执行绪例如一数据移动执行绪TD。如果一工作核心被设置为用于一特定开放区域的一管理核心,则该工作核心会另包括第二HBFTL执行绪,该第二HBFTL执行绪可以从管理核心CN被部分或全部复制并传输到该工作核心中。第二HBFTL执行绪由管理核心CN的第一HBFTL执行绪所指派,并用于服务或处理该特定开放区域的数据/操作。接着,运行在管理核心CN上的第一HBFTL执行绪被安排用来通知所有其他的工作核心关于该工作核心已经被设置为特定开放区域之管理核心的讯息。
例如(但不限于),在图5中,管理核心CN可以将工作核心C0指派为开放区域X的管理核心并将第一HBFTL执行绪的副本传输给工作核心C0作为开放区域X的第二HBFTL执行绪,可以指派工作核心C1作为开放区域Y的管理核心并将第一HBFTL执行绪的副本传输到工作核心C1作为开放区域Y的第二HBFTL执行绪,并将工作核心CN-1指派为开放区域Z的管理核心并将第一HBFTL执行绪的副本作为开放区域Z的第二HBFTL执行绪并传输到工作核心CN-1。其他不同的工作核心不会被指派为管理核心,并且第一HBFTL执行绪的副本不会被传输到其他不同的工作核心。管理核心CN被安排用来向所有处理器核心通知哪些工作核心被指派为专用于一或多个开放区域的一或多个管理核心的资讯。
在图5的例子中(但不限于),最初处理器核心C0是一空闲的工作核心,并且尚未被设置为开放区域X的管理核心,工作核心C0例如执行其获取命令执行绪TF以获取自NVMe硬件电路105的一个写入命令信号的写入地址资讯来,其中写入地址资讯表示开放区域Y中的SLBA资讯,接着工作核心C0将写入地址资讯传输给管理核心CN的管理执行绪TM(亦即第一HBFTL执行绪),因此管理核心CN可以据此决定或设置该处理器核心C0为开放区域X专用的管理核心,接着将第一HBFTL执行绪的副本从管理核心CN传送至处理器核心C0以作为处理器核心C0的第二HBFTL执行绪。类似地,基于相同的操作,管理核心CN可以分别判断出或设置处理器核心C1为开放区域Y专用的管理核心以及处理器核心CN-1为开放区域Z专用的管理核心,而该第一HBFTL执行绪的副本也会分别从管理核心CN传输到处理器核心C1和处理器核心CN-1。
图6是根据本发明的一实施例图5中处理器核心的操作场景示例图。图5。在图6中,处理器核心C0已被设置为开放区域X的管理核心,管理核心CN中的管理执行绪的副本被传送并储存在处理器核心C0中。处理器核心C1已被设置为开放区域Y的管理核心,管理核心CN中的管理执行绪的副本被传送并储存在处理器核心C1中。处理器核心CN-1已被设置为开放区域Z的管理核心,管理核心CN中的管理执行绪的副本被传送并储存在处理器核心CN-1中。
在该示例中,例如(但不限于),处理器核心C0执行其获取命令执行绪TF以获取与开放区域Y有相关联的一写入命令信号的SLBA和NLBA资讯,并且被安排用来传输该写入命令信号的SLBA和NLBA资讯至处理器核心C1的HBFTL执行绪,而不将SLBA和NLBA资讯传输到管理核心CN。接着作为开放区域Y之管理核心的处理器核心C1会产生或更新开放区域Y的一对应的连结串列,接着发送开放区域Y的该写入命令信号的SLBA和NLBA资讯回到处理器核心C0的数据移动执行绪TD,使得该处理器核心C0执行其数据移动执行绪TD以执行一数据写入操作以将针对开放区域Y的该写入命令信号的数据载入并写入到属于开放区域Y的一对应的储存空间中。
另外,处理器核心C1执行其获取命令执行绪TF以获取与开放区域Z有相关联的另一写入命令信号的SLBA和NLBA资讯,并且用来将该写入命令信号的SLBA和NLBA资讯传输到处理器核心CN-1的HBFTL执行绪,而不将SLBA和NLBA资讯传输到管理核心CN。接着处理器核心CN-1作为开放区域Z专用的管理核心会用于产生或更新开放区域Z的一对应的连结串列,接着发送该写入命令信号的SLBA和NLBA资讯给处理器核心C1的数据移动执行绪TD,使得处理器核心C1执行其数据移动执行绪TD将该写入命令的数据载入写入至属于开放区域Z的一相应的储存空间中。
如此一来,在本实施例中,管理核心CN中的管理执行绪TM不会被触发来执行与更新开放区域Y和Z的连结串列,这可以有效减轻处理器核心CN的负载。
图7是根据本发明另一实施例的储存装置控制器500执行管理核心CN的HBFTL执行绪的操作流程示意图。假设能够达到基本相同的结果,则图7所示的流程步骤不需要按照所示的确切顺序来执行,并且不需要是连续的,也就是说,其他步骤可以插入于中间。详细步骤说明如下:
步骤S700:开始;
步骤S705:管理核心CN的HBFTL执行绪接收与一特定开放区域有关联的一写入命令信号的SLBA和NLBA资讯;
步骤S710:管理核心CN的HBFTL执行绪判断其他处理器核心C0至CN-1中的一特定处理器核心是否已经处理过该特定开放区域的一命令;如果处理器已经处理过该特定开放区域,则流程进行步骤S715,否则流程进行步骤S720A;
步骤S715:管理核心CN的HBFTL执行绪指派或设置该特定处理器核心为该特定开放区域专用的管理核心,创造并传送管理核心CN的HBFTL执行绪的一副本到该特定处理器核心,并通知所有其他不同处理器核心关于将该特定处理器核心设置为该特定开放区域的管理核心之讯息;
步骤S716:不同于管理核心CN的该特定处理器核心的HBFTL执行绪接收与特定开放区域有相关联的写入命令信号的SLBA和NLBA资讯;
步骤S720A:管理核心CN的HBFTL执行绪将写入命令信号的SLBA和NLBA资讯与特定开放区域的区域写入指标资讯进行比较,判断是否执行一直接存储器存取操作;如果资讯匹配或相等,则流程进行步骤S725A,否则流程进行步骤S730A;
步骤S725A:触发并执行直接存储器存取操作以载入数据;
步骤S730A:管理核心CN的HBFTL执行绪将写入命令信号的SLBA资讯与该连结串列最后一个节点的SLBA资讯进行比较;如果写入命令信号的SLBA资讯大于该连结串列最后一个节点的SLBA资讯,则流程进行步骤S735A,否则流程进行步骤S740A;
步骤S735A:管理核心CN的HBFTL执行绪增加一个新节点作为该连结串列的最后一个节点,在新节点上(亦即更新后的连结串列的最后一个节点)记录接收到的写入命令信号的地址资讯;
步骤S740A:管理核心CN的HBFTL执行绪在该连结串列的两个节点之间插入一个新的节点,更新该连结串列以在所插入的节点上(亦即不是更新后的连结串列的最后一个节点)记录接收到的写入命令信号的地址资讯;
步骤S720B:该特定处理器核心的HBFTL执行绪将该写入命令信号的SLBA和NLBA资讯与该特定开放区域的区域写入指标的资讯进行比较,判断是否执行直接存储器存取操作;如果资讯匹配或相等,则流程进行步骤S725B,否则流程进行步骤S730B;
步骤S725B:触发并执行直接存储器存取操作以载入数据;
步骤S730B:该特定处理器核心的HBFTL执行绪将该写入命令信号的SLBA资讯与该连结串列的最后一个节点的SLBA资讯进行比较;如果该写入命令信号的SLBA资讯大于该连结串列的最后一个节点的SLBA资讯,则流程进行步骤S735B,否则流程进行步骤S740B;
步骤S735B:该特定处理器核心的HBFTL执行绪增加一个新的节点作为该连结串列的最后一个节点,在新节点上(亦即更新后的连结串列的最后一个节点)记录接收到的写入命令信号的地址资讯;
步骤S740B:该特定处理器核心的HBFTL执行绪在该连结串列的两个节点之间插入一个新的节点,在更新后的连结串列的所插入的节点上(亦即不是连结串列的最后一个节点)记录接收到的写入命令信号的地址资讯;以及
步骤S745:结束。
图8是根据本发明的另一个不同实施例图7中的特定处理器核心的操作流程图。假设能够达到基本相同的结果,则图8所示的流程步骤不需要按照所示的确切顺序来执行,并且不需要是连续的,也就是说,其他步骤可以插入于中间。详细步骤说明如下:
步骤S800:开始;
步骤S805:该特定处理器核心的HBFTL执行绪接收一写入命令信号的SLBA和NLBA资讯,该特定处理器核心被设置为特定开放区专用的管理核心;
步骤S810:该特定处理器核心的HBFTL执行绪判断该写入命令信号的SLBA资讯是否在该特定开放区中;如果该写入命令信号的SLBA资讯位于该特定开放区,则流程进行步骤S820A,否则流程进行步骤S815;
步骤S815:该特定处理器核心的HBFTL执行绪将该写入命令信号的SLBA和NLBA资讯传送给另一个处理器核心,该另一个处理器核心被指定为该写入命令信号的SLBA资讯所位于的该开放区的管理核心;
步骤S816:不同于该特定处理器核心和管理核心CN的该另一个处理器核心的HBFTL执行绪接收该写入命令信号的SLBA和NLBA资讯;
步骤S820A:该特定处理器核心的HBFTL执行绪将该写入命令信号的SLBA和NLBA资讯与该特定开放区域的区域写入指标资讯进行比较,判断是否执行直接存储器存取操作;若资讯匹配或相等,则流程进行步骤S825A,否则流程进行步骤S830A;
步骤S825A:触发并执行直接存储器存取操作以载入数据;
步骤S830A:该特定处理器核心的HBFTL执行绪将该写入命令信号的SLBA资讯与该连结串列最后一个节点的SLBA资讯进行比较;如果该写入命令信号的SLBA资讯大于该连结串列最后一个节点的SLBA资讯,则流程进行步骤S835A,否则流程进行步骤S840A;
步骤S835A:该特定处理器核心的HBFTL执行绪增加一个新的节点作为该连结串列的最后一个节点,在新节点上(亦即更新后的连结串列的最后一个节点)记录接收到的该写入命令信号的地址资讯;
步骤S840A:该特定处理器核心的HBFTL执行绪在该连结串列的两个节点之间插入一个新的节点,在更新的连结串列的被插入的节点上(亦即不是连结串列的最后一个节点)记录接收到的该写入命令信号的地址资讯;
步骤S820B:另一个处理器核心的HBFTL执行绪将该写入命令信号的SLBA和NLBA资讯与另一个开放区域的一区域写入指标的资讯进行比较,判断是否执行直接存储器存取操作;如果资讯匹配或相等,则流程进行步骤S825B,否则流程进行步骤S830B;
步骤S825B:触发并执行直接存储器存取操作以载入数据;
步骤S830B:另一个处理器核心的HBFTL执行绪将该写入命令信号的SLBA资讯与该连结串列最后一个节点的SLBA资讯进行比较;如果写入命令信号的SLBA资讯大于连结串列最后一个节点的SLBA资讯,则流程进行步骤S835B,否则流程进行步骤S840B;
步骤S835B:另一个处理器核心的HBFTL执行绪增加一个新节点作为连结串列的最后一个节点,在新节点上(亦即更新后的连结串列的最后一个节点)记录接收到的写入命令信号的地址资讯;
步骤S840B:另一个处理器核心的HBFTL执行绪在连结串列的两个节点之间插入一个新的节点,在更新后的连结串列的被插入的节点上(亦即不是连结串列的最后一个节点)记录接收到的写入命令信号的地址资讯;以及
步骤S845:结束。
在其他实施例中,对于不同的开放区域,多个空闲的处理器核心也可以同时执行它们的数据移动执行绪以将多个数据单元载入和移动到由属于不同开放区域的不同写入命令信号所分别指定的不同储存空间中。
以上所述仅为本发明之较佳实施例,凡依本发明申请专利范围所做之均等变化与修饰,皆应属本发明之涵盖范围。
Claims (20)
1.一种储存装置控制器,包括:
一接口电路,耦接于一主机装置,该主机装置外接于该储存装置控制器,该接口电路用于接收并储存该主机装置所发送的多个不同写入命令信号的多个不同写入地址资讯,该多个不同写入地址资讯是顺序错乱的;以及
多个处理器核心,耦接于该接口电路,用以依序重排该多个不同的写入地址资讯,并依据该依序重排后的多个不同写入地址资讯来写入数据到至少一储存区。
2.如权利要求1所述的储存装置控制器,其特征在于,该多个处理器核心包括:
一第一处理器核心,用以作为所有储存区的一管理核心;以及
至少一第二处理器核心,每一个第二处理器核心被用以作为一工作核心;
其中,该第一处理器核心根据被依序重新排列后的该多个不同写入地址资讯,来控制该至少一第二处理器核心写入数据至该至少一储存区。
3.如权利要求2所述的储存装置控制器,其特征在于,该第一处理器核心根据该多个不同写入地址资讯来执行一管理执行绪以重新排列该多个不同写入命令信号的顺序,以及根据被重新排列后的该多个不同写入命令信号来控制该至少一第二处理器核心写入多个对应数据单元至该至少一储存区的多个对应储存空间中。
4.如权利要求3所述的储存装置控制器,其特征在于,该工作核心具有一第一执行绪与一第二执行绪;该工作核心执行该第一执行绪以从该接口电路取得一第一写入命令信号的一第一写入地址资讯,并将该第一写入地址资讯传送至该管理执行绪;以及,该工作核心用以因应于从该第一处理器核心的该管理执行绪所发送的一第二写入地址资讯来执行该第二执行绪以执行一数据写入操作。
5.如权利要求4所述的储存装置控制器,其特征在于,该第一写入地址资讯不同于该第二写入地址资讯,该第二写入地址资讯系有关于一不同的写入命令信号。
6.如权利要求2所述的储存装置控制器,其特征在于,该第一处理器核心系因应于一特定工作核心已经处理了与一特定储存区有相关联的一命令,将该特定工作核心设置为专用于该特定储存区的一管理核心,以及接着该第一处理器核心将该管理执行绪的一副本传送到该特定工作核心,该特定工作核心用于执行该管理执行绪的该副本以重新排列该特定储存区的多个传入进来的写入命令信号的一顺序。
7.如权利要求6所述的储存装置控制器,其特征在于,该特定储存区的该多个传入进来的写入命令信号的不同写入地址资讯被传送到该特定工作核心,而不被传送到该第一处理器核心的该管理执行绪。
8.如权利要求6所述的储存装置控制器,其特征在于,该第一处理器核心用于通知所有其他工作核心将该特定工作核心设置为专用于该特定储存区的该管理核心。
9.如权利要求8所述的储存装置控制器,其特征在于,该特定工作核心用于将另一个不同储存区的另一个写入命令信号的一写入地址资讯传送到另一个工作核心,该另一个工作核心被决定为专用于该另一个不同储存区的一管理核心,以及该特定工作核心不会因应于该另一个不同储存区的该另一个写入命令信号的该写入地址资讯来重排多个写入命令信号。
10.如权利要求8所述的储存装置控制器,其特征在于,该特定工作核心具有一第一执行绪与一第二执行绪;该特定工作核心执行该第一执行绪以从该接口电路取得一第一储存区的一第一写入命令信号的一第一写入地址资讯,并将该第一写入地址资讯传送至专用于该第一储存区的另一个工作核心;以及,该特定工作核心因应于从该第一处理器核心所发送的一第二写入地址资讯来执行该第二执行绪以执行一数据写入操作,该第一写入地址资讯与该第二写入地址资讯均与该特定储存区有相关联。
11.一种储存装置控制器的方法,包括:
使用一接口电路以接收并储存一主机装置所发送的多个不同写入命令信号的多个不同写入地址资讯,该多个不同写入地址资讯是顺序错乱的;以及
利用多个处理器核心来重新排序该多个不同写入地址资讯,并接着根据重新排列后的多个不同写入地址资讯来写入数据至至少一储存区中。
12.如权利要求11所述的方法,其特征在于,该多个处理器核心包括有一第一处理器核心与至少一第二处理器核心,该第一处理器核心用以作为所有储存区的一管理核心,而每一第二处理器核心用以作为一工作核心,以及该方法另包括:
使用该第一处理器核心以根据被依序重新排列后的该多个不同写入地址资讯来控制该至少一第二处理器核心写入数据至该至少一储存区。
13.如权利要求12所述的方法,其特征在于,另包括:
使用该第一处理器核心根据该多个不同写入地址资讯来执行一管理执行绪以重新排列该多个不同写入命令信号的顺序,以及根据被重新排列后的该多个不同写入命令信号来控制该至少一第二处理器核心写入多个对应数据单元至该至少一储存区的多个对应储存空间中。
14.如权利要求13所述的方法,其特征在于,该工作核心具有一第一执行绪和一第二执行绪,以及该方法另包括:
使用该工作核心来执行该第一执行绪以从该接口电路取得一第一写入命令信号的一第一写入地址资讯,并将该第一写入地址资讯传送至该管理执行绪;以及
使用该工作核心以因应于从该第一处理器核心的该管理执行绪所发送的一第二写入地址资讯来执行该第二执行绪以执行一数据写入操作。
15.如权利要求14所述的方法,其特征在于,该第一写入地址资讯不同于该第二写入地址资讯,该第二写入地址资讯系有关于一不同的写入命令信号。
16.如权利要求12所述的方法,其特征在于,另包括:
使用该第一处理器核心以因应于一特定工作核心已经处理了与一特定储存区有相关联的一命令,将该特定工作核心设置为专用于该特定储存区的一管理核心;以及
使用该第一处理器核心将该管理执行绪的一副本传送到该特定工作核心,该特定工作核心用于执行该管理执行绪的该副本以重新排列该特定储存区的多个传入进来的写入命令信号的一顺序。
17.如权利要求16所述的方法,其特征在于,该特定储存区的该多个传入进来的写入命令信号的不同写入地址资讯被传送到该特定工作核心,而不被传送到该第一处理器核心的该管理执行绪。
18.如权利要求16所述的方法,其特征在于,另包括:
使用该第一处理器核心以通知所有其他工作核心将该特定工作核心设置为专用于该特定储存区的该管理核心。
19.如权利要求18所述的方法,其特征在于,另包括:
使用该特定工作核心以将另一个不同储存区的另一个写入命令信号的一写入地址资讯传送到另一个工作核心,该另一个工作核心被决定为专用于该另一个不同储存区的一管理核心,以及不会因应于该另一个不同储存区的该另一个写入命令信号的该写入地址资讯来重排多个写入命令信号。
20.如权利要求18所述的方法,其特征在于,该特定工作核心具有一第一执行绪和一第二执行绪,以及该方法另包括:
使用该特定工作核心来执行该第一执行绪以从该接口电路取得一第一储存区的一第一写入命令信号的一第一写入地址资讯,并将该第一写入地址资讯传送至专用于该第一储存区的另一个工作核心;以及
使用该特定工作核心以因应于从该第一处理器核心所发送的一第二写入地址资讯来执行该第二执行绪以执行一数据写入操作;
其中该第一写入地址资讯与该第二写入地址资讯均与该特定储存区有相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/958,430 US20240111456A1 (en) | 2022-10-02 | 2022-10-02 | Storage device controller and method capable of allowing incoming out-of-sequence write command signals |
US17/958,430 | 2022-10-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117806540A true CN117806540A (zh) | 2024-04-02 |
Family
ID=90418786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311209888.5A Pending CN117806540A (zh) | 2022-10-02 | 2023-09-19 | 储存装置控制器及储存装置控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240111456A1 (zh) |
CN (1) | CN117806540A (zh) |
TW (1) | TW202416127A (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180114649A (ko) * | 2017-04-11 | 2018-10-19 | 에스케이하이닉스 주식회사 | 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법 그리고 멀티 프로세서 시스템 |
KR102538222B1 (ko) * | 2018-06-26 | 2023-06-01 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법 |
US11416161B2 (en) * | 2019-06-28 | 2022-08-16 | Western Digital Technologies, Inc. | Zone formation for zoned namespaces |
US11294827B2 (en) * | 2019-09-12 | 2022-04-05 | Western Digital Technologies, Inc. | Non-sequential zoned namespaces |
KR20210081088A (ko) * | 2019-12-23 | 2021-07-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 |
US11416163B2 (en) * | 2020-04-09 | 2022-08-16 | SK Hynix Inc. | Systems and methods for dynamic logical block address distribution between multicores |
US11586385B1 (en) * | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
KR20220076803A (ko) * | 2020-12-01 | 2022-06-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11816358B2 (en) * | 2021-08-24 | 2023-11-14 | Micron Technology, Inc. | Preserving application data order in memory devices |
KR20230081505A (ko) * | 2021-11-30 | 2023-06-07 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그의 동작 방법 |
KR20230139233A (ko) * | 2022-03-25 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
-
2022
- 2022-10-02 US US17/958,430 patent/US20240111456A1/en active Pending
-
2023
- 2023-07-14 TW TW112126311A patent/TW202416127A/zh unknown
- 2023-09-19 CN CN202311209888.5A patent/CN117806540A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202416127A (zh) | 2024-04-16 |
US20240111456A1 (en) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6553566B2 (ja) | メモリシステムおよび制御方法 | |
US7069393B2 (en) | Storage system providing file aware caching and file aware remote copy | |
US9170754B2 (en) | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment | |
JP4438457B2 (ja) | 記憶領域割当方法、システム及び仮想化装置 | |
US7752390B2 (en) | Disk array apparatus and control method for disk array apparatus | |
JP6406707B2 (ja) | 半導体記憶装置 | |
JP4464378B2 (ja) | 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法 | |
JP5310480B2 (ja) | ストレージ制御装置および方法 | |
KR20100011698A (ko) | 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법 | |
US6260109B1 (en) | Method and apparatus for providing logical devices spanning several physical volumes | |
JP2005258918A (ja) | ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法 | |
JPH09319528A (ja) | データ記憶システムにおけるデータの再配置方法、そのシステムに記憶されたデータのアクセス方法及びデータ記憶システム | |
US7085907B2 (en) | Dynamic reconfiguration of memory in a multi-cluster storage control unit | |
JPH06139120A (ja) | ファイルの更新方式 | |
TWI792322B (zh) | 記憶體系統及控制方法 | |
JP2010170295A (ja) | 記憶装置、記憶装置のデータ転送方法 | |
US20160011792A1 (en) | Media control device and control method | |
US20210224002A1 (en) | Storage control apparatus and storage medium | |
JP6311365B2 (ja) | 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム | |
JP2005115561A (ja) | フラッシュrom制御装置 | |
US20150269098A1 (en) | Information processing apparatus, information processing method, storage, storage control method, and storage medium | |
JP2005339299A (ja) | ストレージ装置のキャッシュ制御方法 | |
CN117806540A (zh) | 储存装置控制器及储存装置控制器的方法 | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 | |
JP6715297B2 (ja) | 半導体記憶装置の制御方法 |
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 |