CN104281413B - 命令队列管理方法、存储器控制器及存储器储存装置 - Google Patents
命令队列管理方法、存储器控制器及存储器储存装置 Download PDFInfo
- Publication number
- CN104281413B CN104281413B CN201310289044.6A CN201310289044A CN104281413B CN 104281413 B CN104281413 B CN 104281413B CN 201310289044 A CN201310289044 A CN 201310289044A CN 104281413 B CN104281413 B CN 104281413B
- Authority
- CN
- China
- Prior art keywords
- order
- index
- those
- register
- indicator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种命令队列管理方法、存储器控制器及存储器储存装置,此方法包括:根据多个第一指示比特将至少一第一命令储存于命令队列寄存器,并根据命令队列寄存器的目前储存状态更新第一指示比特;并根据已更新第一指示比特和多个第二指示比特更新第二指示比特。此方法也包括:根据已更新第二指示比特获得对应在命令队列寄存器中储存第一命令的暂存区块的第一命令指标,并将第一命令指标加入命令指标寄存器;并且执行未执行命令指标在命令队列寄存器中对应的命令。
Description
技术领域
本发明是有关于一种命令队列管理方法、存储器控制器及存储器储存装置。
背景技术
以往通用序列总线大量储存装置(USB mass storage device)与电脑主机之间主要是透过仅限批量传输(bulk only transport,BOT)协定来传输数据及/或命令。根据BOT协定的规范,USB大量储存装置一次只能传输一个命令至电脑主机或自电脑主机接收一个命令,并且当此命令被执行完毕后才能接续传输或接收下一个命令。
由于BOT协定在实务上欠缺弹性,且人们对于USB大量储存装置的数据处理效率与文件传输效能的要求也逐渐提高,因此可一次传输多个命令的USB Attached SCSI协定已被提出,希望可透过USB Attached SCSI协定来改善以往BOT协定存在的数据传输效率低落等问题。
然而,虽然USB Attached SCSI协定已被提出,却始终没有可将USB AttachedSCSI协定所带来的优势有效地与现有的储存媒体的系统架构进行整合的机制。
发明内容
有鉴于此,本发明提供一种命令队列管理方法、存储器控制器及存储器储存装置,其可有效地管理从主机系统接收的多个命令。
本发明提供一种命令队列管理方法,用于管理从一主机系统接收的多个命令,此命令队列管理方法包括:配置一命令队列寄存器、一第一指示器及一第二指示器,其中此命令队列寄存器包括多个命令暂存区块并且每一所述命令暂存区块配置有一命令指标;并且配置一命令指标寄存器,其中此命令指标寄存器具有一起始指标、一结尾指标与一命令未处理指标。此命令队列管理方法包括:从此主机系统接收至少一第一命令;根据此第一指示器中的多个第一指示比特将所述第一命令储存于此命令队列寄存器,并根据此命令队列寄存器的一目前储存状态更新所述第一指示比特以产生多个已更新第一指示比特;并且根据此第一指示器中的所述已更新第一指示比特和此第二指示器中的多个第二指示比特来产生多个已更新第二指示比特。此命令队列管理方法也包括:根据所述已更新第二指示比特获得所述第一命令的数目和所述命令指标之中对应在此命令队列寄存器中储存所述第一命令的命令暂存区块的至少一第一命令指标;将所述第一命令指标加入至此命令指标寄存器,并且根据所述第一命令的数目更新此结尾指标;执行记录在此命令指标寄存器中的所述未执行命令指标在此命令队列寄存器中对应的命令暂存区块所储存的命令。
在本发明的一实施例中,所述根据第一指示器中的所述已更新第一指示比特和第二指示器中的所述第二指示比特来产生所述已更新第二指示比特的步骤包括:配置一接收命令开关指示器与一接收命令状态指示器;停止接收所述第一命令,并将接收命令开关指示器的一开关指示比特切换至一不可接收命令状态;判断接收命令状态指示器的一状态指示比特是否为一正在接收命令状态;并且若接收命令状态指示器的状态指示比特不为正在接收命令状态,根据第一指示器中的所述已更新第一指示比特和第二指示器中的所述第二指示比特来产生所述已更新第二指示比特。
在本发明的一实施例中,所述根据第一指示器中的所述已更新第一指示比特和第二指示器中的所述第二指示比特来产生所述已更新第二指示比特的步骤包括:对第一指示器中的所述已更新第一指示比特与第二指示器中的所述第二指示比特执行一异或操作;并且根据异或操作的一操作结果产生所述已更新第二指示比特,并将所述已更新第二指示比特写入第二指示器。
在本发明的一实施例中,所述根据异或操作的操作结果产生所述已更新第二指示比特,并将所述已更新第二指示比特写入第二指示器的步骤还包括:以第一指示器中的所述已更新第一指示比特取代第二指示器中的所述已更新第二指示比特为多个已取代第二指示比特。
在本发明的一实施例中,所述命令队列管理方法还包括:当所述未执行命令指标中的至少一第一未执行命令指标在命令队列寄存器中对应的命令被执行完毕且可被擦除时,根据所述第一未执行命令指标更新起始指标、第一指示器中的所述已更新第一指示比特及第二指示器中的所述已取代第二指示比特。
在本发明的一实施例中,所述根据所述已更新第二指示比特获得所述第一命令的数目和所述命令指标之中对应在命令队列寄存器中储存所述第一命令的命令暂存区块的所述第一命令指标的步骤包括:配置一新命令数记录器与一新命令指标记录器;统计所述已更新第二指示比特中的至少一第一比特状态的数目以获得所述第一命令的数目,并将所述第一命令的数目记录于新命令数记录器;并且根据所述已更新第二指示比特中的所述第一比特状态获得所述命令指标之中对应在命令队列寄存器中储存所述第一命令的命令暂存区块的所述第一命令指标,并将所述第一命令指标记录于新命令指标记录器。
在本发明的一实施例中,所述执行记录在命令指标寄存器中的所述未执行命令指标在命令队列寄存器中对应的命令暂存区块所储存的命令的步骤包括:根据命令未处理指标与结尾指标,重新排列记录在命令指标寄存器中的未执行命令指标的执行顺序;根据此执行顺序执行记录在命令指标寄存器中的未执行命令指标在命令队列寄存器中对应的命令暂存区块所储存的命令。
在本发明的一实施例中,所述根据命令未处理指标与结尾指标,重新排列记录在命令指标寄存器中的所述未执行命令指标的执行顺序的步骤包括:根据命令未处理指标与结尾指标,取得记录在命令指标寄存器中的所述未执行命令指标。其中所述未执行命令指标包括所述第一命令指标与对应储存于命令队列寄存器的至少一第二命令的至少一第二命令指标。
本发明提供一种存储器控制器,此存储器控制器包括主机接口与存储器管理电路。主机接口用以耦接至一主机系统。存储器管理电路耦接至主机接口。存储器管理电路用以配置一命令队列寄存器、一第一指示器及一第二指示器,所述命令队列寄存器包括多个命令暂存区块并且每一所述命令暂存区块配置有一命令指标。存储器管理电路还用以配置一命令指标寄存器,所述命令指标寄存器具有一起始指标、一结尾指标与一命令未处理指标。存储器管理电路还用以从主机系统接收至少一第一命令,根据第一指示器中的多个第一指示比特将所述第一命令储存于命令队列寄存器,并且根据命令队列寄存器的一目前储存状态更新所述第一指示比特以产生多个已更新第一指示比特。存储器管理电路还用以根据第一指示器中的所述已更新第一指示比特和第二指示器中的多个第二指示比特来产生多个已更新第二指示比特,并且根据所述已更新第二指示比特获得所述第一命令的数目和所述命令指标之中对应在命令队列寄存器中储存所述第一命令的命令暂存区块的至少一第一命令指标。存储器管理电路还用以将所述第一命令指标加入至命令指标寄存器,并且根据所述第一命令的数目更新结尾指标。存储器管理电路还用以执行记录在命令指标寄存器中的所述未执行命令指标在命令队列寄存器中对应的命令暂存区块所储存的命令。
在本发明的一实施例中,所述存储器管理电路还用以配置一接收命令开关指示器与一接收命令状态指示器。所述存储器管理电路还用以停止接收所述第一命令,并将接收命令开关指示器的一开关指示比特切换至一不可接收命令状态。所述存储器管理电路还用以判断接收命令状态指示器的一状态指示比特是否为一正在接收命令状态,并且若接收命令状态指示器的状态指示比特不为正在接收命令状态,根据第一指示器中的所述已更新第一指示比特和第二指示器中的所述第二指示比特来产生所述已更新第二指示比特。
在本发明的一实施例中,所述存储器管理电路还用以对第一指示器中的所述已更新第一指示比特与第二指示器中的所述第二指示比特执行一异或操作。所述存储器管理电路还用以根据异或操作的一操作结果产生所述已更新第二指示比特,并将所述已更新第二指示比特写入第二指示器。
在本发明的一实施例中,所述存储器管理电路还用以以第一指示器中的所述已更新第一指示比特取代第二指示器中的所述已更新第二指示比特为多个已取代第二指示比特。
在本发明的一实施例中,当所述未执行命令指标中的至少一第一未执行命令指标在命令队列寄存器中对应的命令被执行完毕且可被擦除时,所述存储器管理电路还用以根据所述第一未执行命令指标更新起始指标、第一指示器中的所述已更新第一指示比特与第二指示器中的所述已取代第二指示比特。
在本发明的一实施例中,所述存储器管理电路还用以配置一新命令数记录器与一新命令指标记录器。所述存储器管理电路还用以统计所述已更新第二指示比特中的至少一第一比特状态的数目以获得所述第一命令的数目,并将所述第一命令的数目记录于新命令数记录器。所述存储器管理电路还用以根据所述已更新第二指示比特中的所述第一比特状态自获得所述命令指标之中对应在命令队列寄存器中储存所述第一命令的命令暂存区块的所述第一命令指标,并将所述第一命令指标记录于新命令指标记录器。
在本发明的一实施例中,所述存储器管理电路还用以根据命令未处理指标与结尾指标,重新排列记录在命令指标寄存器中的未执行命令指标的执行顺序。所述存储器管理电路还用以根据此执行顺序执行记录在命令指标寄存器中的未执行命令指标在命令队列寄存器中对应的命令暂存区块所储存的命令。
在本发明的一实施例中,所述存储器管理电路还用以根据命令未处理指标与结尾指标,取得记录在命令指标寄存器中的所述未执行命令指标。所述未执行命令指标包括所述第一命令指标与对应储存于命令队列寄存器的至少一第二命令的至少一第二命令指标。
本发明提供一种存储器储存装置,此存储器储存装置包括连接器与存储器控制器。连接器用以耦接至一主机系统。存储器控制器耦接至连接器。存储器控制器用以配置一命令队列寄存器、一第一指示器及一第二指示器,所述命令队列寄存器包括多个命令暂存区块并且每一所述命令暂存区块配置有一命令指标。存储器控制器还用以配置一命令指标寄存器,所述命令指标寄存器具有一起始指标、一结尾指标与一命令未处理指标。存储器控制器还用以从主机系统接收至少一第一命令,根据第一指示器中的多个第一指示比特将所述第一命令储存于命令队列寄存器,并且根据命令队列寄存器的一目前储存状态更新所述第一指示比特以产生多个已更新第一指示比特。存储器控制器还用以根据第一指示器中的所述已更新第一指示比特和第二指示器中的多个第二指示比特来产生多个已更新第二指示比特,并且根据所述已更新第二指示比特获得所述第一命令的数目和所述命令指标之中对应在命令队列寄存器中储存所述第一命令的命令暂存区块的至少一第一命令指标。存储器控制器还用以将所述第一命令指标加入至命令指标寄存器,并且根据所述第一命令的数目更新结尾指标。存储器控制器还用以执行记录在命令指标寄存器中的所述未执行命令指标在命令队列寄存器中对应的命令暂存区块所储存的命令。
在本发明的一实施例中,所述存储器控制器还用以配置一接收命令开关指示器与一接收命令状态指示器。所述存储器控制器还用以停止接收所述第一命令,并将接收命令开关指示器的一开关指示比特切换至一不可接收命令状态。所述存储器控制器还用以判断接收命令状态指示器的一状态指示比特是否为一正在接收命令状态,并且若接收命令状态指示器的状态指示比特不为正在接收命令状态,根据第一指示器中的所述已更新第一指示比特和第二指示器中的所述第二指示比特来产生所述已更新第二指示比特。
在本发明的一实施例中,所述存储器控制器还用以对第一指示器中的所述已更新第一指示比特与第二指示器中的所述第二指示比特执行一异或操作。所述存储器控制器还用以根据异或操作的一操作结果产生所述已更新第二指示比特,并将所述已更新第二指示比特写入第二指示器。
在本发明的一实施例中,所述存储器控制器还用以以第一指示器中的所述已更新第一指示比特取代第二指示器中的所述已更新第二指示比特为多个已取代第二指示比特。
在本发明的一实施例中,当所述未执行命令指标中的至少一第一未执行命令指标在命令队列寄存器中对应的命令被执行完毕且可被擦除时,所述存储器控制器还用以根据所述第一未执行命令指标更新起始指标、第一指示器中的所述已更新第一指示比特与第二指示器中的所述已取代第二指示比特。
在本发明的一实施例中,所述存储器控制器还用以配置一新命令数记录器与一新命令指标记录器。所述存储器控制器还用以统计所述已更新第二指示比特中的至少一第一比特状态的数目以获得所述第一命令的数目,并将所述第一命令的数目记录于新命令数记录器。所述存储器控制器还用以根据所述已更新第二指示比特中的所述第一比特状态自获得所述命令指标之中对应在命令队列寄存器中储存所述第一命令的命令暂存区块的所述第一命令指标,并将所述第一命令指标记录于新命令指标记录器。
在本发明的一实施例中,所述存储器控制器还用以根据命令未处理指标与结尾指标,重新排列记录在命令指标寄存器中的未执行命令指标的执行顺序。所述存储器控制器还用以根据此执行顺序执行记录在命令指标寄存器中的未执行命令指标在命令队列寄存器中对应的命令暂存区块所储存的命令。
在本发明的一实施例中,所述存储器控制器还用以根据命令未处理指标与结尾指标,取得记录在命令指标寄存器中的所述未执行命令指标。其中所述未执行命令指标包括所述第一命令指标与对应储存于命令队列寄存器的至少一第二命令的至少一第二命令指标。
基于上述,本发明范例实施例的命令队列管理方法、存储器控制器及存储器储存装置,可对从主机系统接收的多个命令进行最佳化管理。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据一范例实施例所绘示的主机系统与存储器储存装置示意图;
图1B是根据一范例实施例所绘示的电脑、输入/输出装置与存储器储存装置的示意图;
图1C是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图;
图2是图1A所示的存储器储存装置的概要方块图;
图3是根据一范例实施例所绘示的存储器控制器的概要方块图;
图4是根据一范例实施例所绘示的缓冲存储器模块的概要方块图;
图5是根据一范例实施例所绘示的命令队列寄存器、第一指示器、第二指示器及命令指标寄存器的示意图;
图6是根据一范例实施例所绘示的初始化命令队列寄存器、第一指示器、第二指示器及命令指标寄存器的示意图;
图7是根据一范例实施例所绘示的储存第一命令并更新第一指示比特的示意图;
图8是根据一范例实施例所绘示的执行异或操作的示意图;
图9是根据一范例实施例所绘示的新命令数记录器与新命令指标记录器的示意图;
图10是根据一范例实施例所绘示的加入命令指标至命令指标寄存器并更新结尾指标的示意图;
图11是根据一范例实施例所绘示的更新起始指标、第一指示比特及第二指示比特的示意图;
图12是根据一范例实施例所绘示的储存第二命令并更新第一指示比特的示意图;
图13是根据一范例实施例所绘示的执行另一次异或操作的示意图;
图14是根据一范例实施例所绘示的加入另外的命令指标至命令指标寄存器并更新结尾指标的示意图;
图15是根据一范例实施例所绘示的命令队列管理方法的流程图;
图16是根据另一范例实施例所绘示的命令队列管理方法的流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器;
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身盘;
1214:存储卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式储存装置;
100:存储器储存装置;
102:连接器;
104:存储器控制器;
106:可复写式非易失性存储器芯片;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
252:缓冲存储器模块;
254:电源管理电路;
256:错误检查与校正电路;
402:命令队列寄存器;
404:第一指示器;
406:第二指示器;
408:命令指标寄存器;
410:新命令数记录器;
412:新命令指标记录器;
414:接收命令开关指示器;
416:接收命令状态指示器;
501(0)~501(n):命令暂存区块;
502(0)~502(m):命令指标暂存区块;
A(0)~A(n):第一指示比特;
B(0)~B(n):第二指示比特;
C(0)~C(2):第三指示比特;
Ptr_C(0)~Ptr_C(n):命令指标;
Ptr_I:起始指标;
Ptr_U:命令未处理指标;
Ptr_T:结尾指标;
S1502、S1504、S1506、S1508、S1510、S1512、S1514、S1516:本发明一范例实施例的命令队列管理方法各步骤;
S1602、S1604、S1606、S1608、S1610、S1612、S1614、S1616、S1618、S1620、S1622、S1624、S1626、S1628:本发明另一范例实施例的命令队列管理方法各步骤。
具体实施方式
一般而言,存储器储存装置(也称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据一范例实施例所绘示的主机系统与存储器储存装置示意图。
参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是透过数据传输接口1110与主机系统1000的其他元件耦接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的操作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的随身盘1212、存储卡1214或固态硬盘(Solid StateDrive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄像机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图2是图1A所示的存储器储存装置的概要方块图。
参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器芯片106。
在本范例实施例中,连接器102是相容于串行高级附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102也可以是符合并行高级附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速外设互连接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra HighSpeed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(MultiMedia Card,MMC)接口标准、崁入式多媒体储存卡(Embedded Multimedia Card,eMMC)接口标准、通用闪存存储器(Universal Flash Storage,UFS)接口标准、小型闪存(CompactFlash,CF)接口标准、集成电子设备接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件形式或软件形式实现的多个逻辑门或控制命令,并且根据主机系统1000的命令在可复写式非易失性存储器芯片106中进行数据的写入、读取与擦除等操作。
可复写式非易失性存储器芯片106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器芯片106具有多个实体擦除单元。每一实体擦除单元分别具有复数个实体程序化单元,并且属于同一个实体擦除单元的实体程序化单元可被独立地写入且被同时地擦除。例如,每一实体擦除单元是由128个实体程序化单元所组成。然而,必须了解的是,本发明不限于此,每一实体擦除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体擦除单元为擦除的最小单位。也即,每一实体擦除单元含有最小数目之一并被擦除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以储存使用者的数据,而冗余比特区用以储存系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,实体擦除单元为实体区块,并且实体程序化单元为实体页面或实体扇。
在本范例实施例中,可复写式非易失性存储器芯片106为多阶存储胞(MultiLevel Cell,MLC)NAND型闪存存储器模组,即一个存储单元中可储存至少2个比特数据。然而,本发明不限于此,可复写式非易失性存储器芯片106也可是单阶存储单元(SingleLevel Cell,SLC)NAND型闪存存储器模块、复数阶存储单元(Trinary Level Cell,TLC)NAND型闪存存储器模块、其他闪存存储器模块或其他具有相同特性的存储器模块。
图3是根据一范例实施例所绘示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体操作。具体来说,存储器管理电路202具有多个控制命令,并且在存储器储存装置100操作时,此些控制命令会被执行以进行数据的写入、读取与擦除等操作。以下说明存储器管理电路202的操作时,等同于说明存储器控制器104的操作,以下并不再赘述。
在本范例实施例中,存储器管理电路202的控制命令是以硬件形式来实现。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制命令是被烧录至此只读存储器中。当存储器储存装置100操作时,此些控制命令会由微处理器单元来执行以进行数据的写入、读取与擦除等操作。
在本发明另一范例实施例中,存储器管理电路202的控制命令也可以程序形式储存于可复写式非易失性存储器芯片106的特定区域(例如,存储器模组中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此唯读存储器具有开机码(boot code),并且当存储器控制器104被致能时,微处理器单元会先执行此开机码来将储存于可复写式非易失性存储器芯片106中的控制命令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制命令以进行数据的写入、读取与擦除等操作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制命令也可以一硬件形式来实现。例如,存储器管理电路202包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器擦除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器擦除单元与数据处理单元是耦接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器芯片106的实体擦除单元;存储器写入单元用以对可复写式非易失性存储器芯片106下达写入命令以将数据写入至可复写式非易失性存储器芯片106中;存储器读取单元用以对可复写式非易失性存储器芯片106下达读取命令以从可复写式非易失性存储器芯片106中读取数据;存储器擦除单元用以对可复写式非易失性存储器芯片106下达擦除命令以将数据从可复写式非易失性存储器芯片106中擦除;而数据处理单元用以处理欲写入至可复写式非易失性存储器芯片106的数据以及从可复写式非易失性存储器芯片106中读取的数据。
主机接口204是耦接至存储器管理电路202并且用以接收与识别主机系统1000所传送的命令与数据。也就是说,主机系统1000所传送的命令与数据会透过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是耦接至存储器管理电路202并且用以存取可复写式非易失性存储器芯片106。也就是说,欲写入至可复写式非易失性存储器芯片106的数据会经由存储器接口206转换为可复写式非易失性存储器芯片106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器模块252、电源管理电路254与错误检查与校正电路256。
缓冲存储器模块252是耦接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与命令或来自于可复写式非易失性存储器芯片106的数据。
电源管理电路254是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路256是耦接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入命令时,错误检查与校正电路256会为对应此写入命令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入命令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器芯片106中。之后,当存储器管理电路202从可复写式非易失性存储器芯片106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4是根据一范例实施例所绘示的缓冲存储器模组的概要方块图。请参照图4,存储器控制器104(或存储器管理电路202)可在缓冲存储器模组252中配置命令队列寄存器402、第一指示器404、第二指示器406及命令指标寄存器408。
命令队列寄存器402用以储存存储器控制器104(或存储器管理电路202)自主机系统1000接收的命令。详细而言,命令队列寄存器402包括多个命令暂存区块,并且每一个命令暂存区块用以储存一个命令。此外,每一个命令暂存区块配置有一个命令指标。也就是说,每一个命令指标实际上是指向一个命令暂存区块(或命令暂存区块的暂存地址)。
第一指示器404用以储存多个第一指示比特。详细而言,当存储器控制器104(或存储器管理电路202)接收到来自主机系统1000的一个或多个命令时,存储器控制器104(或存储器管理电路202)可查询第一指示器404中的第一指示比特,以根据查询结果将此一个或多个命令储存在命令队列寄存器402的一个或多个命令暂存区块。在本范例实施例中,第一指示器404可用以指示命令队列寄存器402的储存状态。其中,值得说明的是,在本文中,“根据”是意指“至少利用”,例如“存储器控制器104根据对第一指示器404中的第一指示比特的查询结果,将此一个或多个命令储存在命令队列寄存器402的一个或多个命令暂存区块”是代表存储器控制器104可单独利用此查询结果来决定下一步骤的执行与否,或此查询结果只是供存储器控制器104参考的因素之一。
第二指示器406用以储存多个第二指示比特。详细而言,存储器控制器104(或存储器管理电路202)可根据第二指示器406中的第二指示比特获得每一次自主机系统1000接收的命令或命令队列中的命令的数目。特别是,在本范例实施例中,第一指示比特及第二指示比特的数目会与命令队列寄存器402的命令暂存区块的数目相等。在本范例实施例中,第二指示器406可用以指示最新从主机系统1000接收的命令数目及此等最新从主机系统1000接收的命令其相对应的命令指标。
然而,必须了解的是,本发明不限于此,在本发明另一范例实施例中,第一指示比特及第二指示比特的数目也可以分别小于命令队列寄存器402的命令暂存区块的数目。
命令指标寄存器408用以储存命令指标。详细而言,储存于命令指标寄存器408中且对应的命令尚未被执行的命令指标会被依照其对应的命令的接收时间及/或储存命令的存储器地址是否连续等有利于排序的信息进行排序。然后,存储器控制器104(或存储器管理电路202)可根据排序结果来依序读取储存于命令指标寄存器408中且对应的命令尚未被执行的命令指标,并根据所读取的命令指标找到对应在命令队列寄存器402中的命令暂存区块。接着,存储器控制器104(或存储器管理电路202)可执行所找到的命令暂存区块中储存的命令。
图5是根据一范例实施例所绘示的命令队列寄存器、第一指示器、第二指示器及命令指标寄存器的示意图。
请参照图5,命令队列寄存器402包括命令暂存区块501(0)~501(n)与命令指标Ptr_C(0)~Ptr_C(n)。每一个命令暂存区块501(0)~501(n)用以储存一个命令,并且命令指标Ptr_C(0)~Ptr_C(n)分别指向命令暂存区块501(0)~501(n)(或命令暂存区块501(0)~501(n)的暂存地址)。也就是说,假设命令队列寄存器402包括n+1个命令暂存区块501(0)~501(n),则命令队列寄存器402最多可同时暂存n+1个命令。
第一指示器404储存第一指示比特A(0)~A(n),并且第二指示器406储存第二指示比特B(0)~B(n)。
命令指标寄存器408包括命令指标暂存区块502(0)~502(m)。每一个命令指标暂存区块502(0)~502(m)用以储存一个命令指标。此外,命令指标寄存器408还具有起始指标Ptr_I、结尾指标Ptr_T与命令未处理指标Ptr_U。
为了说明方便,以下将以n=7作为范例对本范例实施例进行详细说明。但是,在本发明另一实施例中,n还可以是任意小于或大于7的正整数,本发明并不对n的值进行限定。此外,以下将假设第一比特状态为“1”且第二比特状态为“0”,但是,在本发明另一实施例中,第一比特状态也可以是“0”且第二比特状态也可以是“1”,本发明不对其限制。
图6是根据一范例实施例所绘示的初始化命令队列寄存器、第一指示器、第二指示器及命令指标寄存器的示意图。
请参照图6,命令队列寄存器402中的命令暂存区块501(n)~501(7)储存的初始值以“Null”表示,并且命令指标Ptr_C(0)~Ptr_C(7)分别指向命令暂存区块501(n)~501(7)。第一指示器404所储存的第一指示比特A(0)~A(7)与第二指示器406所储存的第二指示比特B(0)~B(7)的初始值皆为“0”(即,第二比特状态)。此外,命令指标寄存器408中的命令指标暂存区块502(0)~502(m)储存的初始值也同样以“Null”表示,且起始指标Ptr_I、结尾指标Ptr_T及命令未处理指标Ptr_U一开始都指向命令指标暂存区块502(0)。然而,在本发明另一范例实施例中,若不执行初始化,则命令暂存区块501(n)~501(7)与命令指标暂存区块502(0)~502(m)中的值也可以是任意值,本发明不对其限制。
详细而言,当存储器控制器104(或存储器管理电路202)在一次的命令队列接收程序中从主机系统1000接收一个或多个命令(以下统称为第一命令)时,存储器控制器104(或存储器管理电路202)可根据第一指示器404中的第一指示比特A(0)~A(7)将此第一命令储存于命令队列寄存器402,并根据命令队列寄存器402的目前储存状态或命令暂存区块501(0)~501(7)的使用状态来更新第一指示比特A(0)~A(7)。
需说明的是,在此,一次的命令队列接收程序实质上是以存储器控制器104(或存储器管理电路202)执行一次的命令队列的批量接收与批量储存作为单位,但本发明不在此限。
图7是根据一范例实施例所绘示的储存第一命令并更新第一指示比特的示意图。
请参照图7,假设存储器控制器104(或存储器管理电路202)在一次的命令队列接收程序中从主机系统1000接收命令1、命令2及命令3。在储存命令1、命令2及命令3之前,存储器控制器104(或存储器管理电路202)会先查询第一指示器404,并从第一指示比特A(0)开始依序识别第一指示比特A(0)~A(7)是否为第一比特状态。若当前识别的第一指示比特不为第一比特状态,存储器控制器104(或存储器管理电路202)会将已接收但尚未储存的第一命令的其中之一储存于当前识别的第一指示比特在命令队列寄存器402中对应的命令暂存区块。此外,若当前识别的第一指示比特为第一比特状态,则存储器控制器104(或存储器管理电路202)会接续识别下一个第一指示比特,直到识别到第一指示比特A(7)为止。
以第一比特状态为“1”且第二比特状态为“0”作为范例,由于第一指示比特A(0)、第一指示比特A(1)及第一指示比特A(2)皆被记录为第二比特状态,因此存储器控制器104(或存储器管理电路202)会将命令1储存于第一指示比特A(0)对应的命令暂存区块501(0),将命令2储存于第一指示比特A(1)对应的命令暂存区块501(1),并且将命令3储存于第一指示比特A(2)对应的命令暂存区块501(2)。
然后,在将命令1、命令2及命令3分别写入命令暂存区块501(0)、命令暂存区块501(1)及命令暂存区块501(2)之后,存储器控制器104(或存储器管理电路202)会将第一指示比特A(0)、第一指示比特A(1)及第一指示比特A(2)皆更新为第一比特状态(即,“1”),以表示命令暂存区块501(0)、命令暂存区块501(1)及命令暂存区块501(2)都已经储存了目前不能被擦除或覆盖的第一命令(即,尚未完成执行的命令)。
然后,存储器控制器104(或存储器管理电路202)会根据更新后的第一指示比特A(0)~A(7)和第二指示器406中的第二指示比特B(0)~B(7)来更新第二指示比特B(0)~B(7)。
详细而言,存储器控制器104(或存储器管理电路202)可对第一指示比特A(0)~A(7)与第二指示比特B(0)~B(7)执行异或(Exclusive OR,XOR)操作,并根据XOR操作的操作结果产生更新后的第二指示比特B(0)~B(7)。然后,存储器控制器104(或存储器管理电路202)可将更新后的第二指示比特B(0)~B(7)重新写入至第二指示器406。
图8是根据一范例实施例所绘示的执行异或操作的示意图。
请参照图8,存储器控制器104(或存储器管理电路202)对第一指示器404中的第一指示比特(即,“11100000”)与第二指示器406中的第二指示比特(即,“00000000”)执行XOR操作,以产生更新后的第二指示比特(即,“11100000”),并将更新后的第二指示比特(即,“11100000”)写入至第二指示器406。
接着,存储器控制器104(或存储器管理电路202)可根据更新后的第二指示比特B(0)~B(7)获得第一命令的数目和命令指标Ptr_C(0)~Ptr_C(7)之中对应在命令队列寄存器402中储存第一命令的命令暂存区块501(0)、命令暂存区块501(1)及命令暂存区块501(2)的命令指标Ptr_C(0)、命令指标Ptr_C(1)及命令指标Ptr_C(2)(以下统称为第一命令指标)。
请再次参照图4,在本范例实施例中,存储器控制器104(或存储器管理电路202)还可在缓冲存储器模块252中配置新命令数记录器410与新命令指标记录器412。
新命令数记录器410可储存多个第三指示比特,并且第三指示比特用以记录第一命令的数目。
新命令指标记录器412可包括多个命令指标暂存区块,并且这些命令指标暂存区块用以储存第一命令指标。
详细而言,存储器控制器104(或存储器管理电路202)可以统计第二指示器406中更新后的第二指示比特B(0)~B(7)之中被记录为第一比特状态(即,“1”)的指示比特的数目以获得第一命令的数目,并利用第三指示比特将第一命令的数目记录于新命令数记录器410。此外,存储器控制器104(或存储器管理电路202)也可将第一命令指标记录于新命令指标记录器412。
图9是根据一范例实施例所绘示的新命令数记录器与新命令指标记录器的示意图。
请同时参照图8与图9,由于第二指示器406中第二指示比特B(0)、第二指示比特B(1)及第二指示比特B(2)是“1”,因此存储器控制器104(或存储器管理电路202)会获得第一命令的数目为“3”,并将新命令数记录器410中的第三指示比特C(0)、C(1)及C(2)分别设为“0”、“1”及“1”,以表示第一命令的数目为“3”。此外,存储器控制器104(或存储器管理电路202)也会将命令指标Ptr_C(0)~Ptr_C(2)记录于新命令指标记录器412。
然后,在获得第一命令的数目以及第一命令指标之后,存储器控制器104(或存储器管理电路202)会以第一指示器404中的第一指示比特A(0)~A(7)取代第二指示器406中的第二指示比特B(0)~B(7)。
另一方面,在获得第一命令的数目以及第一命令指标之后,存储器控制器104(或存储器管理电路202)会将第一命令指标加入至命令指标寄存器408,并且根据第一命令的数目更新命令指标寄存器408中的结尾指标Ptr_T。然后,存储器控制器104(或存储器管理电路202)可自命令指标寄存器408中依序读取对应于储存在命令队列寄存器402中但尚未被执行的命令的命令指标(以下统称为未执行命令指标),以执行未执行命令指标在命令队列寄存器402中对应的命令暂存区块所储存的命令。
此外,在本发明的另一范例实施例中,存储器控制器104(或存储器管理电路202)还会根据命令指标寄存器408中的命令未处理指标Ptr_U与结尾指标Ptr_T,重新排列未执行命令指标的执行顺序。例如,根据未执行命令指标的接收时间及/或储存命令的存储器地址是否连续等有利于排序的信息来排列未执行命令指标的执行顺序。在完成排序之后,存储器控制器104(或存储器管理电路202)可根据此执行顺序从命令指标寄存器408中依序读取未执行命令指标,以执行未执行命令指标在命令队列寄存器402中对应的命令暂存区块所储存的命令。
详细而言,存储器控制器104(或存储器管理电路202)会根据命令未处理指标Ptr_U与结尾指标Ptr_T来取得未执行命令指标。特别是,根据不同的命令储存与执行状态,未执行的命令指标可以仅包括第一命令指标。或者,未执行的命令指标也可同时包括第一命令指标与对应储存于命令队列寄存器402的其余尚未执行的命令的命令指标。
图10是根据一范例实施例所绘示的加入命令指标至命令指标寄存器并更新结尾指标的示意图。
请参照图10,在获得第一命令的数目(即,“3”)以及命令指标Ptr_C(0)~Ptr_C(2)之后,存储器控制器104(或存储器管理电路202)可将命令指标Ptr_C(0)~Ptr_C(2)加入至命令指标寄存器408,并将结尾指标Ptr_T从指向命令指标暂存区块502(0)切换至指向命令指标暂存区块502(2)。例如,将结尾指标Ptr_T的值加3。
同时,由于命令未处理指标Ptr_U是指向命令指标暂存区块502(0),并且结尾指标Ptr_T是指向命令指标暂存区块502(2),因此,存储器控制器104(或存储器管理电路202)会将记录在命令指标暂存区块502(0)~502(2)中的命令指标Ptr_C(0)~Ptr_C(2)视为尚未被读取的命令指标。然后,存储器控制器104(或存储器管理电路202)会对命令指标Ptr_C(0)~Ptr_C(2)进行排序。例如,根据命令1、命令2及命令3的接收时间及/或储存命令的存储器地址是否连续等有利于排序的信息对命令指标Ptr_C(0)~Ptr_C(2)进行排序。在本范例实施例中,假设排序结果为执行优先权由高至低依序为命令3、命令1及命令2,则对应于命令3的命令指标Ptr_C(2)会被储存到命令指标暂存区块502(0),对应于命令1的命令指标Ptr_C(0)会被储存到命令指标暂存区块502(1),并且对应于命令2的命令指标Ptr_C(1)会被储存到命令指标暂存区块502(2)。
然后,存储器控制器104(或存储器管理电路202)可先自命令指标暂存区块502(0)读取命令指标Ptr_C(2),以读取并执行储存于命令暂存区块501(2)的命令3。然后,存储器控制器104(或存储器管理电路202)可自命令指标暂存区块502(1)读取命令指标Ptr_C(0),以读取并执行储存于命令暂存区块501(0)的命令1。接着,存储器控制器104(或存储器管理电路202)可自命令指标暂存区块502(2)读取命令指标Ptr_C(1),以读取并执行储存于命令暂存区块501(1)的命令2。
此外,每当存储器控制器104(或存储器管理电路202)欲执行下一个命令时,存储器控制器104(或存储器管理电路202)就会更新命令未处理指标Ptr_U,例如,把命令未处理指标Ptr_U的值加“1”。
举例来说,假设命令未处理指标Ptr_U一开始是指向命令指标暂存区块502(0)。若存储器控制器104(或存储器管理电路202)欲执行下一个命令,则存储器控制器104(或存储器管理电路202)会将命令未处理指标Ptr_U从指向命令指标暂存区块502(0)切换至指向命令指标暂存区块502(1),以读取命令指标Ptr_C(0)。接着,若存储器控制器104(或存储器管理电路202)欲再执行下一个命令,则存储器控制器104(或存储器管理电路202)会接续将命令未处理指标Ptr_U从指向命令指标暂存区块502(1)切换至指向命令指标暂存区块502(2),以读取命令指标Ptr_C(1)。
另一方面,当命令指标寄存器408中特定的命令指标在命令队列寄存器402中对应的命令被执行完毕且可被擦除或可被新的命令覆盖时,存储器控制器104(或存储器管理电路202)可根据此特定的命令指标来更新命令指标寄存器408中的起始指标Ptr_I、第一指示器404中的第一指示比特A(0)~A(7)及第二指示器406中的第二指示比特B(0)~B(7)。
举例来说,图11是根据一范例实施例所绘示的更新起始指标、第一指示比特及第二指示比特的示意图。
请参照图11,假设命令3与命令1已被依序或同时执行完毕,且命令3与命令1也处于可自命令队列寄存器402中擦除或可被新的命令覆盖的状态,则存储器控制器104(或存储器管理电路202)可将起始指标Ptr_I切换至指向命令指标暂存区块502(1),并将第一指示器404中的第一指示比特A(0)与第一指示比特A(2)以及第二指示器406中的第二指示比特B(0)与第二指示比特B(2)都更新为第二比特状态(即,“0”),以表示可将新的命令储存于命令暂存区块501(0)与命令暂存区块501(2)。
以上是以经过初始化后的命令队列寄存器402、第一指示器404、第二指示器406及命令指标寄存器408作为范例进行说明。然而,不管命令队列寄存器402、第一指示器404、第二指示器406及命令指标寄存器408是否经过初始化,基本的实施方式还是相同的。因此,以下将接续上述范例,对非处于初始化状态的命令队列寄存器402、第一指示器404、第二指示器406及命令指标寄存器408进行说明。
接续上述范例,若存储器控制器104(或存储器管理电路202)在另一次的命令队列接收程序中从主机系统1000接收另外的一个或多个命令(以下统称为第二命令),则存储器控制器104(或存储器管理电路202)同样可根据第一指示器404中的第一指示比特A(0)~A(7)将此第一命令储存于命令队列寄存器402,并根据命令队列寄存器402的目前储存状态或命令暂存区块501(0)~501(7)的使用状态来更新第一指示比特A(0)~A(7)。
图12是根据一范例实施例所绘示的储存第二命令并更新第一指示比特的示意图,并且图13是根据一范例实施例所绘示的执行另一次异或操作的示意图。
请参照图12,假设存储器控制器104(或存储器管理电路202)在另一次的命令队列接收程序中自主机系统1000接收命令4、命令5与命令6。由于第一指示器404中的第一指示比特A(0)、第一指示比特A(2)及第一指示比特A(3)皆为第二比特状态(即,“0”),因此存储器控制器104(或存储器管理电路202)可将命令4写入第一指示比特A(0)对应的命令暂存区块501(0),将命令5写入第一指示比特A(2)对应的命令暂存区块501(2),并且将命令6写入第一指示比特A(3)对应的命令暂存区块501(3)。此外,存储器控制器104(或存储器管理电路202)还可根据命令队列寄存器402的目前储存状态或命令暂存区块501(0)~501(7)的使用状态来更新第一指示比特A(0)~A(7)。也就是说,存储器控制器104(或存储器管理电路202)可将第一指示比特A(0)、第一指示比特A(2)及第一指示比特A(3)由第二比特状态(即,“0”)更新为第一比特状态(即,“1”)。
然后,请参照图13,存储器控制器104(或存储器管理电路202)会对第一指示器404中的第一指示比特(即,“11110000”)与第二指示器406中的第二指示比特(即,“01000000”)执行XOR操作,并产生更新后的第二指示比特(即,“10110000”)。根据更新后的第二指示比特(即,“10110000”),存储器控制器104(或存储器管理电路202)可得知第二命令的数目为“3”,并获得命令指标Ptr_C(0)~Ptr_C(7)之中对应在命令队列寄存器402中储存第二命令的命令暂存区块501(0)、命令暂存区块501(2)及命令暂存区块501(3)的命令指标Ptr_C(0)、Ptr_C(2)及Ptr_C(3)(以下统称为第二命令指标)。
图14是根据一范例实施例所绘示的加入另外的命令指标至命令指标寄存器并更新结尾指标的示意图。
请参照图14,在获得第二命令的数目(即,“3”)并将命令指标Ptr_C(0)、命令指标Ptr_C(2)及命令指标Ptr_C(3)记录在新命令指标记录器412之后,存储器控制器104(或存储器管理电路202)可接续在命令指标暂存区块502(2)之后将命令指标Ptr_C(0)、命令指标Ptr_C(2)及命令指标Ptr_C(3)加入至命令指标寄存器408,并根据第二命令的数目(即,“3”)将结尾指标Ptr_T从指向命令指标暂存区块502(2)切换至指向命令指标暂存区块502(5)。例如,将结尾指标Ptr_T的值加3。
同时,由于命令未处理指标Ptr_U是指向命令指标暂存区块502(2),并且结尾指标Ptr_T是指向命令指标暂存区块502(5),因此,存储器控制器104(或存储器管理电路202)会将记录在命令指标暂存区块502(2)~502(5)的命令指标Ptr_C(0)~Ptr_C(3)皆视为尚未被读取的命令指标。然后,存储器控制器104(或存储器管理电路202)会对命令指标Ptr_C(0)~Ptr_C(3)进行排序。例如,根据命令2、命令4~命令6的接收时间及/或储存命令的存储器地址是否连续等有利于排序的信息对命令指标Ptr_C(0)~Ptr_C(3)进行排序。在本范例实施例中,假设排序结果为执行优先权由高至低依序为命令2、命令4、命令6及命令5,则命令指标Ptr_C(1)会被储存到命令指标暂存区块502(2),命令指标Ptr_C(0)会被储存到命令指标暂存区块502(3),命令指标Ptr_C(3)会被储存到命令指标暂存区块502(4),并且命令指标Ptr_C(2)会被储存到命令指标暂存区块502(5)。
然后,存储器控制器104(或存储器管理电路202)可依序读取命令指标暂存区块502(2)~502(5)中的命令指标Ptr_C(0)~Ptr_C(3),并执行相对应的命令等等,并对应更新命令未处理指标Ptr_U、起始指标Ptr_I及结尾指标Ptr_T,在此不重复赘述。
值得一提的是,在本范例实施例中,命令指标寄存器408为一环形命令指标寄存器。也就是说,若命令未处理指标Ptr_U、起始指标Ptr_I及/或结尾指标Ptr_T已指向命令指标暂存区块502(m)而欲继续往下切换时,在超过命令指标暂存区块502(m)之后,命令未处理指标Ptr_U、起始指标Ptr_I及/或结尾指标Ptr_T会切换回命令指标暂存区块502(0),并可接续切换至指向命令指标暂存区块502(1)及/或命令指标暂存区块502(2)等。此外,在加入命令指标至命令指标寄存器408时,若已到达命令指标暂存区块502(m)且欲继续加入命令指标时,基于环形命令指标寄存器的特性,同样也是将多余的命令指标从命令指标暂存区块502(0)开始依序写入。
然而,本发明不以上述实施方式为限。请再次参照图4,在本发明一范例实施例中,存储器控制器104(或存储器管理电路202)还可以在缓冲存储器模组252中配置接收命令开关指示器414与接收命令状态指示器416。
接收命令开关指示器414用以储存一开关指示比特。若存储器控制器104(或存储器管理电路202)欲停止自主机系统1000接收命令,则存储器控制器104(或存储器管理电路202)会将接收命令开关指示器414的开关指示比特切换至不可接收命令状态。例如,将开关指示比特设为“0”。反之,若存储器控制器104(或存储器管理电路202)欲自主机系统1000接收命令,则存储器控制器104(或存储器管理电路202)会将接收命令开关指示器414的开关指示比特切换至可接收命令状态。例如,将开关指示比特设为“1”。然而,实际的设定方式可视实务上的需求加以调整,本发明不对其限制。
接收命令状态指示器416用以储存一状态指示比特。详细而言,状态指示比特是用以反映存储器控制器104(或存储器管理电路202)当前是否正在接收命令。当状态指示比特为正在接收命令状态时,表示存储器控制器104(或存储器管理电路202)正在自主机系统1000接收命令。反之,若状态指示比特不为正在接收命令状态,则表示存储器控制器104(或存储器管理电路202)目前没有自主机系统1000接收命令。
在本范例实施例中,存储器控制器104(或存储器管理电路202)可判断接收命令状态指示器416的状态指示比特是否为正在接收命令状态。若接收命令状态指示器416的状态指示比特不为正在接收命令状态,存储器控制器104(或存储器管理电路202)才会对第一指示比特及/或第二指示比特进行更新,例如根据第一指示器404中的第一指示比特和第二指示器中的第二指示比特来更新第二指示比特。反之,若接收命令状态指示器416的状态指示比特为正在接收命令状态,则存储器控制器104(或存储器管理电路202)不更新第一指示比特及/或第二指示比特。藉此,可避免在更新第一指示比特及/或第二指示比特时,有新的命令进来,导致命令的接收和命令队列的管理出现冲突。
需特别说明的是,虽然上述范例实施例是将命令队列寄存器402、第一指示器404、第二指示器406、命令指标寄存器408、新命令数记录器410、新命令指标记录器412、接收命令开关指示器414及接收命令状态指示器416配置于缓冲存储器模组252内,但是,在本发明另一范例实施例中,命令队列寄存器402、第一指示器404、第二指示器406、命令指标寄存器408、新命令数记录器410、新命令指标记录器412、接收命令开关指示器414及接收命令状态指示器416也可以是配置在复写式非易失性存储器芯片106中,并且可由存储器控制器104(或存储器管理电路202)对其进行存取。又例如,在另一范例实施例中,命令队列寄存器402、第一指示器404、第二指示器406、命令指标寄存器408、新命令数记录器410、新命令指标记录器412、接收命令开关指示器414及接收命令状态指示器416也可以以硬件实现并配置在存储器储存装置100中的寄存器。
图15是根据一范例实施例所绘示的命令队列管理方法的流程图。
请参照图15,在步骤S1502中,存储器控制器104(或存储器管理电路202)会配置命令队列寄存器402、第一指示器404及第二指示器406。
在步骤S1504中,存储器控制器104(或存储器管理电路202)会配置命令指标寄存器408。
特别是,本发明并不限制步骤S1502与步骤S1504的执行先后顺序。例如,在本发明另一范例实施例中,步骤S1504也可以先被执行,而在步骤S1504之后接续执行步骤S1502。
在步骤S1506中,存储器控制器104(或存储器管理电路202)从主机系统1000接收至少一第一命令。
在步骤S1508中,存储器控制器104(或存储器管理电路202)会根据第一指示器404中的多个第一指示比特将第一命令储存于命令队列寄存器402,并根据命令队列寄存器402的目前储存状态或命令暂存区块的使用状态更新第一指示比特,以产生多个更新后的第一指示比特。
接着,在步骤S1510中,存储器控制器104(或存储器管理电路202)会根据第一指示器404中的更新后的第一指示比特和第二指示器406中的多个第二指示比特来产生多个更新后的第二指示比特。
然后,在步骤S1512中,存储器控制器104(或存储器管理电路202)会根据更新后的第二指示比特获得第一命令的数目和命令指标之中对应在命令队列寄存器402中储存第一命令的命令暂存区块的第一命令指标。
接着,在步骤S1514中,存储器控制器104(或存储器管理电路202)会将第一命令指标加入至命令指标寄存器408,并且根据第一命令的数目更新命令指标寄存器408中的结尾指标。
然后,在步骤S1516中,存储器控制器104(或存储器管理电路202)可执行记录在命令指标寄存器408中的未执行命令指标在命令队列寄存器402中对应的命令暂存区块所储存的命令。
图16是根据另一范例实施例所绘示的命令队列管理方法的流程图。
请参照图16,在步骤S1602中,存储器控制器104(或存储器管理电路202)启动接收命令。例如,存储器控制器104(或存储器管理电路202)可将接收命令开关指示器414的开关指示比特切换至可接收命令状态,以允许接收来自主机系统1000的第一命令。
在步骤S1604中,存储器控制器104(或存储器管理电路202)判断是否有新命令进来。详细而言,在步骤S1602中,若存储器控制器104(或存储器管理电路202)有接收到第一命令,就表示有新命令进来,在步骤S1604之后步骤S1608会被接续执行。反之,在步骤S1602中,若没有新命令进来,则在步骤S1606中,存储器控制器104(或存储器管理电路202)会判断是否有未完成的命令。例如,存储器控制器104(或存储器管理电路202)可直接判断命令指标寄存器408中是否存在尚未被执行或尚未被执行完毕的命令。若命令指标寄存器408中存在尚未被执行或尚未被执行完毕的命令,则存储器控制器104(或存储器管理电路202)判定有未完成的命令。或者,存储器控制器104(或存储器管理电路202)也可以判断命令指标寄存器408中的命令未处理指标是否与结尾指标指向相同的命令指标暂存区块。若命令指标寄存器408中的命令未处理指标与结尾指标指向同一个命令指标暂存区块,存储器控制器104(或存储器管理电路202)判定没有未完成的命令,因此步骤S1604会被重复执行。反之,若命令指标寄存器408中的命令未处理指标与结尾指标不是指向相同的命令指标暂存区块,则存储器控制器104(或存储器管理电路202)会判定有未完成的命令,并接续执行步骤S1608。
在步骤S1608中,存储器控制器104(或存储器管理电路202)暂停接收命令。例如,存储器控制器104(或存储器管理电路202)可将接收命令开关指示器414的开关指示比特切换至不可接收命令状态,以停止接收来自主机系统1000的命令。接着,存储器控制器104(或存储器管理电路202)可判断接收命令状态指示器416的状态指示比特是否为正在接收命令状态。若接收命令状态指示器416的状态指示比特不为正在接收命令状态,表示目前没有命令正在被接收,则步骤S1610会被接续执行。反之,若接收命令状态指示器416的状态指示比特为正在接收命令状态,则存储器控制器104(或存储器管理电路202)会等到接收命令状态指示器416的状态指示比特切换至不为正在接收命令状态时,才会接续执行步骤S1610。
在步骤S1610中,存储器控制器104(或存储器管理电路202)判断是否有新命令进来,并且步骤1610类似于步骤S1604,在此不重复赘述。若没有新命令进来,在步骤S1610之后步骤S1620被接续执行。反之,若有新命令(例如,第一命令)进来,则在步骤S1612中,存储器控制器104(或存储器管理电路202)会根据第一指示器404中的已更新第一指示比特和第二指示器406中的多个第二指示比特来更新第二指示比特,并将更新后的第二指示比特储存于第二指示器406。
然后,在步骤S1614中,存储器控制器104(或存储器管理电路202)会根据更新后的第二指示比特获得第一命令的数目和命令指标之中对应在命令队列寄存器402中储存第一命令的命令暂存区块的第一命令指标。
接着,在步骤S1616中,存储器控制器104(或存储器管理电路202)会将第一命令指标加入至命令指标寄存器408,并且根据第一命令的数目更新命令指标寄存器408中的结尾指标。
接着,在步骤S1618中,存储器控制器104(或存储器管理电路202)会根据命令指标寄存器408中的命令未处理指标与结尾指标,重新排列记录在命令指标寄存器408中的多个未执行命令指标的执行顺序。
然后,在步骤S1620中,存储器控制器104(或存储器管理电路202)判断是否有完成的命令。详细而言,存储器控制器104(或存储器管理电路202)会判断命令队列寄存器402中是否有命令被执行完毕且可被擦除或可被新的命令覆盖。若命令队列寄存器402中有命令被执行完毕且可被擦除或可被新的命令覆盖,则在步骤S1620之后步骤S1622被接续执行。反之,若命令队列寄存器402中没有命令被执行完毕且可被擦除或可被新的命令覆盖,则在步骤S1620之后步骤S1624被接续执行。
在步骤S1622中,存储器控制器104(或存储器管理电路202)可根据命令指标寄存器408中对应至命令队列寄存器402中被执行完毕且可被擦除或可被新的命令覆盖的命令的命令指标来更新命令指标寄存器408中的起始指标、第一指示器404中的第一指示比特及第二指示器406中的第二指示比特。
在更新完起始指标、第一指示器404中的第一指示比特及第二指示器406中的第二指示比特之后,在步骤S1624中,存储器控制器104(或存储器管理电路202)会启动接收命令,并且步骤S4624类似于步骤S1602,在此不重复赘述。
然后,在步骤S1626中,存储器控制器104(或存储器管理电路202)会判断是否有待执行的命令。详细而言,存储器控制器104(或存储器管理电路202)可直接判断命令指标寄存器408中是否存在尚未被读取的命令指标(即,未执行命令指标)。若命令指标寄存器408中存在尚未被读取的命令指标,则存储器控制器104(或存储器管理电路202)判定有待执行的命令。或者,存储器控制器104(或存储器管理电路202)也可以判断命令指标寄存器408中的命令未处理指标是否与结尾指标指向相同的命令指标暂存区块。若命令指标寄存器408中的命令未处理指标与结尾指标指向相同的命令指标暂存区块,表示没有待执行的命令,因此存储器控制器104(或存储器管理电路202)重复执行步骤S1604。反之,若命令指标寄存器408中的命令未处理指标与结尾指标不是指向相同的命令指标暂存区块,则表示有待执行的命令,因此存储器控制器104(或存储器管理电路202)接续执行步骤S1628。
在步骤S1628中,存储器控制器104(或存储器管理电路202)会根据此执行顺序,执行记录在命令指标寄存器408中的未执行命令指标在命令队列寄存器402中对应的命令暂存区块所储存的命令。此外,每当存储器控制器104(或存储器管理电路202)欲执行下一个命令时,存储器控制器104(或存储器管理电路202)就会更新命令未处理指标,例如,把命令未处理指标的值加“1”。
然而,图15与图16中各步骤已详细说明如上,在此便不在赘述。值得注意的是,图15与图16中各步骤可以实现为多个程序码或是电路,本发明并不在此限。此外,图15与图16的方法可以搭配以上实施例使用,也可以单独使用,本发明并不在此限。
综上所述,本发明实施例提出的命令队列管理方法、存储器控制器及存储器储存装置,可储存接收到的命令队列与用于读取命令队列中的各命令的命令指标,并对尚未被执行的命令所对应的命令指标进行排序。藉此,本发明实施例提出的命令队列管理方法、存储器控制器及存储器储存装置,可优先读取执行优先权最高的命令对应的命令指标,并执行优先权最高的命令。然后,再根据排序结果依序读取其余的命令指标,并且执行其余的命令。
此外,本发明实施例提出的命令队列管理方法、存储器控制器及存储器储存装置,可利用起始指标、待处理指标及结尾指标在环形命令指标寄存器中进行切换,从而提升对于命令指标的管理效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (24)
1.一种命令队列管理方法,用于管理从一主机系统接收的多个命令,其特征在于,该命令队列管理方法包括:
配置一命令队列寄存器、一第一指示器及一第二指示器,其中该命令队列寄存器包括多个命令暂存区块并且每一该些命令暂存区块配置有一命令指标,其中该命令指标用以指向一命令储存地址;
配置一命令指标寄存器,其中该命令指标寄存器具有一起始指标、一结尾指标与一命令未处理指标;
从该主机系统接收至少一第一命令;
根据该第一指示器中的多个第一指示比特将该至少一第一命令储存于该命令队列寄存器,并根据该命令队列寄存器的一目前储存状态更新该些第一指示比特以产生多个已更新第一指示比特;
对该第一指示器中的该些已更新第一指示比特和该第二指示器中的多个第二指示比特执行一异或操作,并根据该异或操作的一操作结果来产生多个已更新第二指示比特;
根据该些已更新第二指示比特获得该至少一第一命令的数目和该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的至少一第一命令指标;
将该至少一第一命令指标加入至该命令指标寄存器,并且根据该至少一第一命令的数目更新该结尾指标;
执行记录在该命令指标寄存器中的多个未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令。
2.根据权利要求1所述的命令队列管理方法,其特征在于,根据该第一指示器中的该些已更新第一指示比特和该第二指示器中的该些第二指示比特来产生该些已更新第二指示比特的步骤包括:
配置一接收命令开关指示器与一接收命令状态指示器;
停止接收该至少一第一命令,并将该接收命令开关指示器的一开关指示比特切换至一不可接收命令状态;
判断该接收命令状态指示器的一状态指示比特是否为一正在接收命令状态;以及
若该接收命令状态指示器的该状态指示比特不为该正在接收命令状态,根据该第一指示器中的该些已更新第一指示比特和该第二指示器中的该些第二指示比特来产生该些已更新第二指示比特。
3.根据权利要求1所述的命令队列管理方法,其特征在于,还包括:
在产生该些已更新第二指示比特后,将该些已更新第二指示比特写入该第二指示器。
4.根据权利要求3所述的命令队列管理方法,其特征在于,根据该异或操作的该操作结果产生该些已更新第二指示比特,并将该些已更新第二指示比特写入该第二指示器的步骤还包括:
以该第一指示器中的该些已更新第一指示比特取代该第二指示器中的该些已更新第二指示比特为多个已取代第二指示比特。
5.根据权利要求4所述的命令队列管理方法,其特征在于,还包括:
当该些未执行命令指标中的至少一第一未执行命令指标在该命令队列寄存器中对应的命令被执行完毕且可被擦除时,根据该至少一第一未执行命令指标更新该起始指标、该第一指示器中的该些已更新第一指示比特及该第二指示器中的该些已取代第二指示比特。
6.根据权利要求1所述的命令队列管理方法,其特征在于,根据该些已更新第二指示比特获得该至少一第一命令的数目和该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的该至少一第一命令指标的步骤包括:
配置一新命令数记录器与一新命令指标记录器;
统计该些已更新第二指示比特中的至少一第一比特状态的数目以获得该至少一第一命令的数目,并将该至少一第一命令的数目记录于该新命令数记录器;以及
根据该些已更新第二指示比特中的该至少一第一比特状态获得该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的该至少一第一命令指标,并将该至少一第一命令指标记录于该新命令指标记录器。
7.根据权利要求1所述的命令队列管理方法,其特征在于,执行记录在该命令指标寄存器中的该些未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令的步骤,还包括:
根据该命令未处理指标与该结尾指标,重新排列记录在该命令指标寄存器中的该些未执行命令指标的一执行顺序;以及
根据该执行顺序执行记录在该命令指标寄存器中的该些未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令。
8.根据权利要求7所述的命令队列管理方法,其特征在于,根据该命令未处理指标与该结尾指标,重新排列记录在该命令指标寄存器中的该些未执行命令指标的该执行顺序的步骤包括:
根据该命令未处理指标与该结尾指标,取得记录在该命令指标寄存器中的该些未执行命令指标,
其中该些未执行命令指标包括该至少一第一命令指标与对应储存于该命令队列寄存器的至少一第二命令的至少一第二命令指标。
9.一种存储器控制器,其特征在于,包括:
一主机接口,用以耦接至一主机系统;
一存储器管理电路,耦接至该主机接口,
其中该存储器管理电路用以配置一命令队列寄存器、一第一指示器及一第二指示器,其中该命令队列寄存器包括多个命令暂存区块并且每一该些命令暂存区块配置有一命令指标,其中该命令指标用以指向一命令储存地址,
其中该存储器管理电路还用以配置一命令指标寄存器,其中该命令指标寄存器具有一起始指标、一结尾指标与一命令未处理指标,
其中该存储器管理电路还用以从该主机系统接收至少一第一命令,
其中该存储器管理电路还以根据该第一指示器中的多个第一指示比特将该至少一第一命令储存于该命令队列寄存器,并根据该命令队列寄存器的一目前储存状态更新该些第一指示比特以产生多个已更新第一指示比特,
其中该存储器管理电路还用以对该第一指示器中的该些已更新第一指示比特和该第二指示器中的多个第二指示比特执行一异或操作,并根据该异或操作的一操作结果来产生多个已更新第二指示比特,
其中该存储器管理电路还用以根据该些已更新第二指示比特获得该至少一第一命令的数目和该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的至少一第一命令指标,
其中该存储器管理电路还用以将该至少一第一命令指标加入至该命令指标寄存器,并且根据该至少一第一命令的数目更新该结尾指标,
其中该存储器管理电路还用以执行记录在该命令指标寄存器中的多个未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令。
10.根据权利要求9所述的存储器控制器,其特征在于,该存储器管理电路还用以配置一接收命令开关指示器与一接收命令状态指示器,
其中该存储器管理电路还用以停止接收该至少一第一命令,并将该接收命令开关指示器的一开关指示比特切换至一不可接收命令状态,
其中该存储器管理电路还用以判断该接收命令状态指示器的一状态指示比特是否为一正在接收命令状态,
若该接收命令状态指示器的该状态指示比特不为该正在接收命令状态,该存储器管理电路根据该第一指示器中的该些已更新第一指示比特和该第二指示器中的该些第二指示比特来产生该些已更新第二指示比特。
11.根据权利要求9所述的存储器控制器,其特征在于,在产生该些已更新第二指示比特后,该存储器管理电路还用以将该些已更新第二指示比特写入该第二指示器。
12.根据权利要求11所述的存储器控制器,其特征在于,该存储器管理电路还用以以该第一指示器中的该些已更新第一指示比特取代该第二指示器中的该些已更新第二指示比特为多个已取代第二指示比特。
13.根据权利要求12所述的存储器控制器,其特征在于,当该些未执行命令指标中的至少一第一未执行命令指标在该命令队列寄存器中对应的命令被执行完毕且可被擦除时,该存储器管理电路还用以根据该至少一第一未执行命令指标更新该起始指标、该第一指示器中的该些已更新第一指示比特与该第二指示器中的该些已取代第二指示比特。
14.根据权利要求9所述的存储器控制器,其特征在于,该存储器管理电路还用以配置一新命令数记录器与一新命令指标记录器,
其中该存储器管理电路还用以统计该些已更新第二指示比特中的至少一第一比特状态的数目以获得该至少一第一命令的数目,并将该至少一第一命令的数目记录于该新命令数记录器,
其中该存储器管理电路还用以根据该些已更新第二指示比特中的该至少一第一比特状态自获得该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的该至少一第一命令指标,并将该至少一第一命令指标记录于该新命令指标记录器。
15.根据权利要求9所述的存储器控制器,其特征在于,该存储器管理电路还用以根据该命令未处理指标与该结尾指标,重新排列记录在该命令指标寄存器中的该些未执行命令指标的一执行顺序,
其中该存储器管理电路还用以根据该执行顺序执行记录在该命令指标寄存器中的该些未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令。
16.根据权利要求15所述的存储器控制器,其特征在于,该存储器管理电路还用以根据该命令未处理指标与该结尾指标,取得记录在该命令指标寄存器中的该些未执行命令指标,
其中该些未执行命令指标包括该至少一第一命令指标与对应储存于该命令队列寄存器的至少一第二命令的至少一第二命令指标。
17.一种存储器储存装置,其特征在于,包括:
一连接器,用以耦接至一主机系统;
一可复写式非易失性存储器模块,用以储存数据;
一存储器控制器,耦接至该连接器与该可复写式非易失性存储器模块,
其中该存储器控制器用以配置一命令队列寄存器、一第一指示器及一第二指示器,其中该命令队列寄存器包括多个命令暂存区块并且每一该些命令暂存区块配置有一命令指标,其中该命令指标用以指向一命令储存地址,
其中该存储器控制器还用以配置一命令指标寄存器,其中该命令指标寄存器具有一起始指标、一结尾指标与一命令未处理指标,
其中该存储器控制器还用以从该主机系统接收至少一第一命令,
其中该存储器控制器还用以根据该第一指示器中的多个第一指示比特将该至少一第一命令储存于该命令队列寄存器,并根据该命令队列寄存器的一目前储存状态更新该些第一指示比特以产生多个已更新第一指示比特,
其中该存储器控制器还用以对该第一指示器中的该些已更新第一指示比特和该第二指示器中的多个第二指示比特执行一异或操作,并根据该异或操作的一操作结果来产生多个已更新第二指示比特,
其中该存储器控制器还用以根据该些已更新第二指示比特获得该至少一第一命令的数目和该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的至少一第一命令指标,
其中该存储器控制器还用以将该至少一第一命令指标加入至该命令指标寄存器,并且根据该至少一第一命令的数目更新该结尾指标,
其中该存储器控制器还用以执行记录在该命令指标寄存器中的多个未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令。
18.根据权利要求17所述的存储器储存装置,其特征在于,该存储器控制器还用以配置一接收命令开关指示器与一接收命令状态指示器,
其中该存储器控制器还用以停止接收该至少一第一命令,并将该接收命令开关指示器的一开关指示比特切换至一不可接收命令状态,
其中该存储器控制器还用以判断该接收命令状态指示器的一状态指示比特是否为一正在接收命令状态,
若该接收命令状态指示器的该状态指示比特不为该正在接收命令状态,该存储器控制器根据该第一指示器中的该些已更新第一指示比特和该第二指示器中的该些第二指示比特来产生该些已更新第二指示比特。
19.根据权利要求17所述的存储器储存装置,其特征在于,在产生该些已更新第二指示比特后,该存储器控制器还用以将该些已更新第二指示比特写入该第二指示器。
20.根据权利要求19所述的存储器储存装置,其特征在于,该存储器控制器还用以以该第一指示器中的该些已更新第一指示比特取代该第二指示器中的该些已更新第二指示比特为多个已取代第二指示比特。
21.根据权利要求20所述的存储器储存装置,其特征在于,当该些未执行命令指标中的至少一第一未执行命令指标在该命令队列寄存器中对应的命令被执行完毕且可被擦除时,该存储器控制器还用以根据该至少一第一未执行命令指标更新该起始指标、该第一指示器中的该些已更新第一指示比特与该第二指示器中的该些已取代第二指示比特。
22.根据权利要求17所述的存储器储存装置,其特征在于,该存储器控制器还用以配置一新命令数记录器与一新命令指标记录器,
其中该存储器控制器还用以统计该些已更新第二指示比特中的至少一第一比特状态的数目以获得该至少一第一命令的数目,并将该至少一第一命令的数目记录于该新命令数记录器,
其中该存储器控制器还用以根据该些已更新第二指示比特中的该至少一第一比特状态自获得该些命令指标之中对应在该命令队列寄存器中储存该至少一第一命令的命令暂存区块的该至少一第一命令指标,并将该至少一第一命令指标记录于该新命令指标记录器。
23.根据权利要求17所述的存储器储存装置,其特征在于,该存储器控制器还用以根据该命令未处理指标与该结尾指标,重新排列记录在该命令指标寄存器中的该些未执行命令指标的一执行顺序,
其中该存储器控制器还用以根据该执行顺序执行记录在该命令指标寄存器中的该些未执行命令指标在该命令队列寄存器中对应的命令暂存区块所储存的命令。
24.根据权利要求23所述的存储器储存装置,其特征在于,该存储器控制器还用以根据该命令未处理指标与该结尾指标,取得记录在该命令指标寄存器中的该些未执行命令指标,
其中该些未执行命令指标包括该至少一第一命令指标与对应储存于该命令队列寄存器的至少一第二命令的至少一第二命令指标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310289044.6A CN104281413B (zh) | 2013-07-10 | 2013-07-10 | 命令队列管理方法、存储器控制器及存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310289044.6A CN104281413B (zh) | 2013-07-10 | 2013-07-10 | 命令队列管理方法、存储器控制器及存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104281413A CN104281413A (zh) | 2015-01-14 |
CN104281413B true CN104281413B (zh) | 2017-10-20 |
Family
ID=52256329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310289044.6A Active CN104281413B (zh) | 2013-07-10 | 2013-07-10 | 命令队列管理方法、存储器控制器及存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104281413B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089255B2 (en) * | 2015-07-24 | 2018-10-02 | SK Hynix Inc. | High performance host queue monitor for PCIE SSD controller |
CN107193768B (zh) * | 2016-03-15 | 2021-06-29 | 厦门旌存半导体技术有限公司 | 查询队列状态的方法与装置 |
KR102446733B1 (ko) * | 2017-11-30 | 2022-09-23 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 |
CN110209481B (zh) * | 2019-05-17 | 2022-07-26 | 深圳市德明利技术股份有限公司 | 一种命令队列优化管理的实现方法和系统以及设备 |
CN110795364B (zh) * | 2019-10-31 | 2023-06-02 | 四川效率源信息安全技术股份有限公司 | 一种ide模式下访问硬盘的方法 |
CN112052041B (zh) | 2020-10-10 | 2022-03-11 | 乐鑫信息科技(上海)股份有限公司 | 更新寄存器的方法 |
CN114625681A (zh) * | 2020-12-09 | 2022-06-14 | Oppo广东移动通信有限公司 | 芯片间的通信方法、多媒体芯片和电子设备 |
TWI840221B (zh) * | 2023-05-12 | 2024-04-21 | 慧榮科技股份有限公司 | 快閃記憶體控制器及相關的控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207921A (zh) * | 2010-06-01 | 2011-10-05 | 钰创科技股份有限公司 | 基于uasp协议实现多端口储存媒体的系统及其方法 |
CN103154846A (zh) * | 2010-09-24 | 2013-06-12 | 英特尔公司 | 基于指令的类型和内容的处理器功率管理 |
CN103180816A (zh) * | 2010-10-21 | 2013-06-26 | 马维尔国际贸易有限公司 | Usb至sata的高速桥接器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601198B2 (en) * | 2011-06-30 | 2013-12-03 | Intel Corporation | Controllable transaction synchronization for merging peripheral devices |
US8554976B2 (en) * | 2011-07-08 | 2013-10-08 | Plx Technology, Inc. | Single pipe non-blocking architecture |
-
2013
- 2013-07-10 CN CN201310289044.6A patent/CN104281413B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207921A (zh) * | 2010-06-01 | 2011-10-05 | 钰创科技股份有限公司 | 基于uasp协议实现多端口储存媒体的系统及其方法 |
CN103154846A (zh) * | 2010-09-24 | 2013-06-12 | 英特尔公司 | 基于指令的类型和内容的处理器功率管理 |
CN103180816A (zh) * | 2010-10-21 | 2013-06-26 | 马维尔国际贸易有限公司 | Usb至sata的高速桥接器 |
Also Published As
Publication number | Publication date |
---|---|
CN104281413A (zh) | 2015-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104281413B (zh) | 命令队列管理方法、存储器控制器及存储器储存装置 | |
CN103838687B (zh) | 贮存设备、包括其的计算系统及其数据传送方法 | |
KR101354341B1 (ko) | 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들 | |
US8370603B2 (en) | Architecture for address mapping of managed non-volatile memory | |
TWI493455B (zh) | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 | |
US8612791B2 (en) | Method of selective power cycling of components in a memory device independently by turning off power to a memory array or memory controller | |
US8751700B2 (en) | Memory controllers, memory systems, solid state drives and methods for processing a number of commands | |
KR101382060B1 (ko) | 관리된 비휘발성 메모리에 대한 낮은 레이턴시 판독 동작 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
US9442834B2 (en) | Data management method, memory controller and memory storage device | |
CN110297600A (zh) | 存储设备和操作存储设备的方法 | |
US20140019670A1 (en) | Data writing method, memory controller, and memory storage device | |
US20130013852A1 (en) | Memory controlling method, memory controller and memory storage apparatus | |
CN101965559A (zh) | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 | |
TW201145037A (en) | USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch | |
CN109857679A (zh) | 存储器控制器、存储器系统以及存储器系统的操作方法 | |
CN110059032A (zh) | 存储器接口及具有存储器接口的存储器控制器 | |
CN107633862A (zh) | 存储器系统及其操作方法 | |
CN110069426A (zh) | 存储器控制器及具有存储器控制器的存储器系统 | |
CN107590080A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN109753457A (zh) | 数据处理系统及其操作方法 | |
US20120030385A1 (en) | Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method | |
CN103914391B (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN107102951A (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |