CN104298468B - 指令执行方法、连接器与存储器储存装置 - Google Patents
指令执行方法、连接器与存储器储存装置 Download PDFInfo
- Publication number
- CN104298468B CN104298468B CN201310302395.6A CN201310302395A CN104298468B CN 104298468 B CN104298468 B CN 104298468B CN 201310302395 A CN201310302395 A CN 201310302395A CN 104298468 B CN104298468 B CN 104298468B
- Authority
- CN
- China
- Prior art keywords
- instruction
- array
- host system
- control circuit
- operating state
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
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)
- Read Only Memory (AREA)
Abstract
本发明提供一种指令执行方法、连接器与存储器储存装置。此指令执行方法包括:接收来自主机系统的至少一个指令与对应这些指令的至少一个标号,并且将所述指令暂存在一指令阵列当中;传送所述标号至主机系统,并执行所述指令;判断存储器储存装置的运作状态是否符合一预设条件;以及若运作状态符合预设条件,则传送一设定信息至主机系统以解除所述标号对应所述指令。由此,可以增加存储器储存装置的存取频宽。
Description
技术领域
本发明是有关于一种指令执行方法,且特别是有关于一种用于可复写式非易失性存储器模块的指令执行方法、连接器与存储器储存装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可复写式非易失性存储器模块会由一个存储器控制器所控制并且通过一个连接器耦接至一个主机系统。主机系统会下达指令给存储器控制器来存取可复写式非易失性存储器模块中的数据。在一些标准中会定义一个指令阵列,主机系统所下达的指令会先储存在此指令阵列当中,而存储器控制器可以决定这些指令的执行顺序。主机系统与存储器控制器可用标号来决定目前要执行的是那一个指令。如果一个标号仍然对应至一个指令,则主机系统会认为对应的指令还未被执行完毕。因此,在执行完一个指令以后,连接器会传送一个信息给主机系统以解除一个标号对应至一个指令的状态。然而,若一个指令所要存取的数据非常少,则上述的信息可能显著地会减少存储器储存装置的存取频宽。因此,如何增加存储器储存装置的存取频宽,为此领域技术人员所关心的议题。
发明内容
本发明提供一种指令执行方法、连接器与存储器储存装置,可以增加存储器储存装置的存取频宽。
本发明一范例实施例提出一种指令执行方法,用于一存储器储存装置。此方法包括:接收来自主机系统的至少一个指令与对应这些指令的至少一个标号,并且将所述指令暂存在一指令阵列当中;传送所述标号至主机系统,并执行所述指令;判断存储器储存装置的运作状态是否符合一预设条件;以及若运作状态符合预设条件,则传送一设定信息至主机系统以解除所述标号对应所述指令。
在一范例实施例中,上述的指令执行方法还包括:判断用以执行所述指令所需的一缓冲存储器空间是否准备好;若指令所需的缓冲存储器空间未准备好,则判断主机系统与存储器储存装置之间的一联线是否闲置超过一预设时间;若联线已闲置超过预设时间,则判断存储器储存装置是否已执行至少另一个指令且未传送设定信息至主机系统;以及若存储器储存装置已执行所述另一个指令且未传送设定信息至主机系统,则判断运作状态符合预设条件。
在一范例实施例中,上述判断运作状态是否符合预设条件的步骤包括:在执行所述指令之后,判断指令阵列中是否有等待被执行的指令;以及若指令阵列中无等待被执行的指令,则判断运作状态符合预设条件。
在一范例实施例中,上述判断运作状态是否符合预设条件的步骤包括:在执行所述指令以后,取得一计数值;判断计数值是否大于一临界值;以及若计数值大于临界值,判断运作状态符合预设条件。
在一范例实施例中,上述的取得计数值的步骤包括:记录多个标记;在执行所述指令以后,升起至少一个标记;以及计数被升起的标记以计算出上述的计数值。
在一范例实施例中,上述的指令阵列包括一接收指令阵列与一触发阵列,并且所述指令是根据一执行顺序从接收指令阵列被移动至触发阵列。此指令执行方法还包括:根据接收指令阵列的一个第一指令数目来决定临界值。
在一范例实施例中,所述指令被接收时,这些指令是暂存在接收指令阵列当中。此指令执行方法还包括:判断接收指令阵列的一个第二指令数目是否大于第一指令数目;以及若第二指令数目大于第一指令数目,将第一指令数目设定为相同于第二指令数目。
以另外一个角度来说,本发明一范例实施例提出一种连接器,包括存储器、传输电路、存取电路与控制电路。存储器是用以储存一指令阵列。传输电路耦接至存储器,用以接收来自主机系统的至少一个指令与对应所述指令的至少一个标号,并且将所述指令暂存在一指令阵列当中。存取电路是耦接至存储器。控制电路耦接至传输电路与存取电路。传输电路用以传送所述标号至主机系统,并且存取电路用以执行所述指令。控制电路用以判断存储器储存装置的一运作状态是否符合一预设条件。若运作状态符合预设条件,则传输电路用以传送一设定信息至主机系统以解除所述标号对应所述指令。
在一范例实施例中,在执行所述指令之前,控制电路还用以判断用以执行所述指令所需的一缓冲存储器空间是否准备好。若所述指令所需的缓冲存储器空间未准备好,则控制电路用以判断主机系统与存储器储存装置之间的一联线是否闲置超过一预设时间。若联线已闲置超过预设时间,则控制电路用以判断存取电路是否已执行至少另一个指令且传输电路未传送设定信息至主机系统。若存取电路已执行所述另一个指令且传输电路未传送设定信息至主机系统,则控制电路判断运作状态符合预设条件。
在一范例实施例中,上述控制电路判断运作状态是否符合预设条件的操作包括:在存取电路执行所述指令之后,控制电路用以判断指令阵列中是否有等待被执行的指令;若指令阵列中无等待被执行的指令,则控制电路用以判断运作状态符合预设条件。
在一范例实施例中,上述控制电路判断运作状态是否符合预设条件的操作包括:在存取电路执行所述指令以后,控制电路取得一计数值;控制电路判断计数值是否大于一临界值;若计数值大于临界值,控制电路判断运作状态符合预设条件。
在一范例实施例中,上述的连接器还包括一标记电路。此标记电路是耦接至存取电路与控制电路,用以记录多个标记。在执行所述指令以后,存取电路也用以升起至少一个标记。控制电路用以计数被升起的标记以计算出上述的计数值。
在一范例实施例中,上述的控制电路还用以根据接收指令阵列的一个第一指令数目来决定临界值。
在一范例实施例中,上述的连接器控制电路还用以判断接收指令阵列的一个第二指令数目是否大于第一指令数目。若第二指令数目大于第一指令数目,控制电路用以将第一指令数目设定为相同于第二指令数目。
以另外一个角度来说,本发明一范例实施例提出一种存储器储存装置,包括连接器、可复写式非易失性存储器模块与存储器控制器。连接器是用以耦接至一主机系统。可复写式非易失性存储器模块包括多个实体擦除单元。存储器控制器是耦接至连接器与可复写式非易失性存储器模块。上述的连接器包括存储器、传输电路、存取电路与控制电路。存储器是用以储存一指令阵列。传输电路是耦接至存储器,用以接收来自主机系统的至少一个指令与对应所述指令的至少一个标号,并且将所述指令暂存在一指令阵列当中。存取电路是耦接至存储器。控制电路是耦接至传输电路与存取电路。传输电路用以传送所述标号至主机系统,并且存取电路用以执行所述指令。控制电路用以判断存储器储存装置的一运作状态是否符合一预设条件。若运作状态符合预设条件,则传输电路用以传送一设定信息至主机系统以解除所述标号对应所述指令。
基于上述,本发明范例实施例提出的指令执行方法、连接器与存储器储存装置,可以在存储器储存装置的运作状态符合预设条件的时候才传送设定信息给主机系统以解除标号对应指令的状态。由此,可以增加存储器储存装置的存取频宽。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A是根据一范例实施例所绘示的主机系统与存储器储存装置;
图1B是根据一范例实施例所绘示的电脑、输入/输出装置与存储器储存装置的示意图;
图1C是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图;
图2是图1A所示的存储器储存装置的概要方框图;
图3是根据一范例实施例所绘示的存储器储存装置100与主机系统1000之间的传输示意图;
图4是根据一范例实施例所绘示的连接器的示意方框图;
图5是根据一范例实施例所绘示的判断存储器储存装置的操作状态是否符合预设条件的流程图;
图6是根据一范例实施例所绘示的存储器控制器的操作流程图;
图7是根据一范例实施例所绘示的指令执行方法的流程图。
附图标记说明:
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:可复写式非易失性存储器模块;
304(0)~304(R):实体擦除单元;
310、320、330、340、350:帧数据结构;
410:存储器;
412:指令接收阵列;
414:触发阵列;
416:指令阵列;
420:传输电路;
430:控制电路;
440:存取电路;
450:标记电路;
S501~S508、S601~S603、S701~S705:步骤。
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据一范例实施例所绘示的主机系统与存储器储存装置,图1B是根据一范例实施例所绘示的电脑、输入/输出装置与存储器储存装置的示意图。
请参照图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等的可复写式非易失性存储器储存装置。
图1C是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图。
一般而言,主机系统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,PCIExpress)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数位(SecureDigital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、崁入式多媒体储存卡(Embedded MultimediaCard,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬体型式或韧体型式实作的多个逻辑门控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与擦除等运作。
可复写式非易失性存储器模块106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体擦除单元304(0)~304(R)。例如,实体擦除单元304(0)~304(R)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体擦除单元分别具有多个实体程序化单元,并且属于同一个实体擦除单元的实体程序化单元可被独立地写入且被同时地擦除。例如,每一实体擦除单元是由128个实体程序化单元所组成。然而,必须了解的是,本发明不限于此,每一实体擦除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体擦除单元为擦除的最小单位。亦即,每一实体擦除单元含有最小数目之一并被擦除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据位元区与冗余位元区。数据位元区包含多个实体存取位址用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据位元区中会包含4个实体存取位址,且一个实体存取位址的大小为512位元组(byte,B)。然而,在其他范例实施例中,数据位元区中也可包含8个、16个或数目更多或更少的实体存取位址,本发明并不限制实体存取位址的大小以及个数。例如,实体擦除单元为实体区块,并且实体程序化单元为实体页面或实体扇。
在本范例实施例中,可复写式非易失性存储器模块106为多层单元(Multi LevelCell,MLC)NAND型快闪存储器模块,即一个存储单元中可储存至少2个位元数据。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单层单元(Single Level Cell,SLC)NAND型快闪存储器模块、三层单元(Trinary Level Cell,TLC)NAND型快闪存储器模块、其他快闪存储器模块或其他具有相同特性的存储器模块。
图3是根据一范例实施例所绘示的存储器储存装置100与主机系统1000之间的传输示意图。
请参照图3,在此以SATA标准为例,主机系统1000与存储器储存装置100之间会交换多个帧数据结构(frame information structure,FIS)以完成一个指令的执行。值得注意的是,在SATA标准中,帧数据结构是属于传输(transport)层,因此一个帧数据结构还会被包含在其他的数据结构中,本领域具有通常知识者应可理解如何传送帧数据结构。此外,主机系统1000与存储器储存装置100还可能交换其他的信号,本发明并不在此限。当主机系统1000要下达一个指令给存储器储存装置100时,主机系统1000会先传送一个主机至装置(host to device,H2D)的帧数据结构310(frame information structure,FIS)给存储器储存装置100。帧数据结构310是用以指示主机系统1000的一个状态或是一个指令的信息。在此,帧数据结构310会包括一个指令所对应的标号(tag)。接下来,存储器储存装置100会传送装置至主机(device to host,D2H)的帧数据结构320给主机系统1000。在交换了帧数据结构310与320后,便表示一个指令已经传送给存储器储存装置100,并且此指令会被储存在一个指令阵列中。而存储器储存装置100可以决定指令阵列中指令的执行顺序。
当存储器储存装置100要执行指令阵列中的一个指令时,存储器储存装置100会传送一个直接存储器存取设置(direct memory access setup,DMA setup)的帧数据结构330给主机系统1000。帧数据结构330便会包括所要执行的指令所对应的标号。所要执行的指令可以是写入指令、读取指令、或是任意内容的指令,本发明并不在此限。接下来,主机系统1000会传送数据(DATA)帧数据结构340给存储器储存装置100(例如,所执行的是写入指令);或者,存储器储存装置100会传送数据帧数据结构340给主机系统1000(例如,所执行的是读取指令)。如上所述,主机系统1000与存储器储存装置100是用标号来决定要执行哪一个指令。在一个指令被执行完毕,但此指令仍然对应于一个标号时,主机系统100无法利用此标号来下达另一个指令。因此,当指令执行完毕以后,存储器储存装置100会传送设置装置位元(set device bits,SDB)的帧数据结构350给主机系统1000。帧数据结构350是用以解除一个标号对应至一个指令的状态。例如,假设帧数据结构350是用以解除标号“0”对应于一个指令的状态,则在接收到帧数据结构350以后,主机系统1000便可以再下达另一个对应至标号“0”的指令给存储器储存装置100。
在此范例实施例中,存储器储存装置100会判断存储器储存装置100的一个运作状态是否符合一个预设条件。若存储器储存装置100的运作状态符合预设条件,则存储器储存装置100才会传送一个设置信息给主机系统1000以解除某些标号对应于某些指令的状态。若此预设条件不符合,则存储器储存装置100则暂时不会传送设置信息给主机系统1000,即执行完毕的指令仍然会对应至一个标号。值得注意的是,在SATA标准中,上述的设置信息例如是帧数据结构350。然而,在其他标准中,设置信息可以是其他用以解除标号对应至指令的信息,本发明并不在此限。
图4是根据一范例实施例所绘示的连接器的示意方框图。
请参照图4,连接器102包括了存储器410、传输电路420、控制电路430、存取电路440与标记电路450。
存储器410中储存了一个指令阵列416。在此范例实施例中,指令阵列416还被实作为接收指令阵列(receive command queue)412与触发阵列(trigger queue)414。当主机系统1000传送一个指令给连接器时,此指令会先被暂存在接收指令阵列412当中。存储器控制器104会决定一个执行顺序并且根据此执行顺序将一或多个指令从接收指令阵列412移动到触发阵列414。
传输电路420耦接至存储器410,用以接收来自主机系统1000的信息(或称信号)并传送信息至主机系统1000。例如,传输电路420会相容于SATA标准的实体层(phy layer)与连结层(link layer)。
控制电路430耦接至传输电路420,用以判断存储器储存装置100的运作状态是否符合上述的预设条件。
存取电路440耦接至存储器410与控制电路430,用以执行与直接存储器存取(DMA)有关的操作。例如,执行在触发阵列414中的一个指令可能会需要一个缓冲存储器空间,其是用来暂存所读取的数据或是欲被写入的数据。存储器410中的一个子空间可被划分作为缓冲存储器空间;或者,存储器储存装置100中的另一个存储器也可作为此缓冲存储器空间,本发明并不在此限。若触发阵列414中一个指令所需的缓冲存储器空间已经准备好(ready),则传输电路420便会传送此指令对应的标号给主机系统1000。接下来,存取电路440可将从主机系统1000接收到的数据写入至缓冲存储器空间;或者,从存取电路440可将从可复写式非易失性存储器模块106中读取的数据储存在缓冲存储器空间当中,以便通过传输电路420传送给主机系统1000。当执行完上述读取或写入的操作以后,便表示一个指令已被执行。
标记电路450是耦接至存取电路440与控制电路430。标记电路450中记录了多个标记(flag),并且每一个标记是对应至一个标号。当存取电路440执行完一个指令以后,会升起(raise)标记电路450中对应的标记。由此,控制电路430可以根据这些标记得知哪些指令已被执行完毕但仍然是对应至一个标号。在传输电路420传送设置信息至主机系统1000以后,对应的标记则会被重置。
在一范例实施例中,在存取电路440决定要执行触发阵列414中的一个第一指令以后,第一指令会从触发阵列414中被移除,并且触发阵列414中还会包括一或多个第二指令。控制电路430会判断每一个第二指令所需的缓冲存储器空间是否准备好。若所有的第二指令所需的缓冲存储器空间都未准备好,控制电路430会再判断存储器储存装置100与主机系统1000之间的一联线是否闲置(idle)超过一个预设时间。若此联线已闲置超过预设时间,则控制电路430会判断存储器储存装置100的运作状态符合上述的预设条件。也就是说,在第一指令被执行以后,控制电路430会驱动传输电路420将设定信息传送给主机系统1000以解除第一指令对应至标号的状态。然而,控制电路430可以在任意的时间点执行上述的判断步骤。例如,控制电路430可用轮询(pooling)的方式随时监测所有第二指令所需的缓冲存储器空间是否准备好,并且判断联线是否已闲置超过预设时间。
在另一范例实施例中,控制电路430是在触发阵列414中的一个第一指令被执行以前判断执行第一指令所需的缓冲存储器空间是否准备好。若第一指令所需的缓冲存储器空间未准备好,则控制电路430会判断主机系统1000与存储器储存装置100之间的联线是否闲置超过预设时间。若该联线已闲置超过预设时间,则控制电路430还会进一步判断存储器储存装置100是否已执行至少另一个指令(亦称第二指令)且未传送设定信息至主机系统1000(即,第二指令仍然是对应至一个第二标号)。若存储器储存装置100已执行第二指令且未传送设定信息至该主机系统1000,则控制电路430会判断存储器储存装置100的运作状态符合上述的预设条件。也就是说,虽然第一指令尚未被执行,但设定信息会被传送至主机系统1000以解除第二标号对应至指令的状态。
如此一来,由于设置信息是在储存装置100与主机系统1000之间的联线闲置时所传送的,因此可以有效的利用所建立的联线,进而增加存储器储存装置100的存取频宽。在此,存取频宽所指的是主机系统1000每秒可以写入多少数据(通过多个写入指令)至存储器储存装置100或从存储器储存装置100读取多少数据(通过多个读取指令)。
在一范例实施例中,在一个指令从触发阵列414中被移除以后,控制电路430会判断触发阵列414中是否有等待被执行的指令。若触发阵列414中没有等待被执行的指令,则控制电路430也会判断存储器储存装置100的运作状态符合预设条件,并且驱动传输电路420将设定信息传送给主机系统1000。同样地,控制电路430也可以在任意时间点判断触发阵列414中是否有等待被执行的指令。
在一范例实施例中,在触发阵列414中的第一指令被存取电路440执行以后,存取电路440会取得一个计数值。此计数值表示有多少个指令已被执行完但仍对应至一个标号。例如,控制电路430可以计数标记电路450中有多少个标记被升起以计算出上述的计数值。然而,控制电路430也可以在一个指令被执行以后将计数值加上1,并且在发送设定信息传送给主机系统1000时重置计数值,本发明并不在此限。控制电路430会判断此计数值是否大于一个临界值。若计数值大于该临界值,则控制电路430也会判断存储器储存装置100的运作状态符合预设条件,即控制电路430会驱动传输电路420将设定信息传送给主机系统1000以解除第一指令对应至一个标号的状态。
由于当一个标号仍然对应至一个指令时,主机系统1000不能利用此标号下达另一个指令,因此在一范例实施例中,存储器控制器104会根据接收指令阵列412的一个第一指令数目来决定该临界值。此第一指令数目是表示主机系统1000最多会利用几个标号来下达指令。在SATA标准中,主机系统1000最多可以使用32个标号,但主机系统1000可能只会使用16或24个标号。因此,当第一指令数目越小时,上述的临界值便会越小,以避免主机系统1000不能下达其他的指令。例如,存储器控制器104可以将临界值设定为第一指令数目的2/3,但本发明并不在此限。更具体来说,存储器控制器104会持续的判断接收指令阵列412中指令的数目(亦称第二指令数目)是否大于第一指令数目。若目前接收指令阵列412的第二指令数目大于第一指令数目,则存储器控制器104会将第一指令数目设定为相同于第二指令数目。
在本范例实施例中,上述的临界值是由存储器控制器104来决定,但在另一范例实施例中,此临界值也可以由控制电路430来决定,并且由控制电路430来决定第一指令数目,本发明并不在此限。另一方面,上述存储器储存装置100的运作状态符合预设条件的多个情况可以任意的结合。例如,控制电路430可以在计数值大于临界值或触发阵列414中没有等待执行的指令时,判断运作状态符合预设条件。
图5是根据一范例实施例所绘示的判断存储器储存装置的运作状态是否符合预设条件的流程图。请参照图5,在步骤S501,存取电路440是处于闲置的状态。在步骤S502中,控制电路430与存取电路440会判断触发阵列414中是否有等待被执行的指令。若触发阵列414中有等待被执行的指令,在步骤S503中,存取电路440会确认所需要的缓冲存储器空间,并从触发阵列414中选取一个指令。在步骤S504中,控制电路430会判断是否触发阵列414中所有的指令所需要的缓冲存储器空间都未准备好且主机系统1000与存储器储存装置100之间的联线已闲置超过一预设时间。若触发阵列414中一个指令所需要的缓冲存储器空间已准备好,或者是主机系统1000与存储器储存装置100之间的联线没有闲置超过预设时间,则回到步骤S503。另外,在步骤S505(步骤S504与步骤S505可以同时被执行)中,存取电路440会开始执行一个指令(例如,开始读取或写入数据),并且判断数据是否传输完毕。若数据已传输完毕,在步骤S506中,存取电路440会取得计数值。在步骤S507中,控制电路430会判断是否计数值大于临界值或触发阵列414中没有等待被执行的指令。若计数值小于等于临界值并且触发阵列414中有等待被执行的指令,则回到步骤S502。若步骤507的结果为是,或者步骤S504的结果为是,在步骤S508中,控制电路430会驱动传输电路420传送设定信息给主机系统1000以解除一或多个标号对应至指令的状态。
值得注意的是,在步骤S508中,传送给主机系统1000的设定信息可用以解除多个标号分别对应至一个指令的状态。举例来说,传输电路420从主机系统1000接收了第一指令与第二指令并把第一指令与第二指令储存在接收指令阵列412当中。传输电路420也接收了对应于第一指令的第一标号和对应于第二指令的第二标号。在第一指令被执行(步骤S506)以后,步骤S507的结果为否。接下来会执行第二指令,即第二指令所对应的第二标号会被传输电路420传送给主机系统1000且存取电路440会传输对应的数据(步骤S505)。接下来,步骤S507的结果为是(或者,步骤S504的结果为是),因此在步骤S508中,传输电路420会传送设定信息至主机系统1000以清除第一标号与第二标号对应至指令的状态。
图6是根据一范例实施例所绘示的存储器控制器的操作流程图。
请参照图6,在步骤S601中,存储器控制器104是处于闲置的状态。在步骤S602中,存储器控制器104判断接收指令阵列412是否有指令。若步骤S602的结果为是,在步骤S603中,存储器控制器104会将一个指令移动到触发阵列414,并且取得接收指令阵列412的第一指令个数以调整上述的临界值。
图7是根据一范例实施例绘示指令执行方法的流程图。
请参照图7,在步骤S701中,接收来自主机系统的至少一个指令与对应此至少一指令的至少一标号,并且将此至少一指令暂存在指令阵列当中。在步骤S702中,传送上述的至少一标号至主机系统并且执行上述的至少一指令。在步骤S703中,判断存储器储存装置100的运作状态是否符合预设条件。若步骤S703的结果为是,在步骤S704中,传送设定信息至主机系统以解除上述的至少一标号对应上述的至少一指令。若不符合预设条件,在步骤S705中,不传送设定信息至主机系统。值得注意的是,步骤S705所指的并不是永远不传送设定信息至主机系统1000。在任意的时间点,当判断预设条件已符合时,设定信息便会被传送至主机系统1000。
图7中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图7中各步骤可以实作为多个程序码或是电路(例如,传输电路420、控制电路430与存取电路440),本发明并不在此限。此外,图7的方法可以搭配以上范例实施例使用,也可以单独使用,本发明并不在此限。
综上所述,本发明范例实施例所提出的指令执行方法、连接器与存储器储存装置,可以在预设条件符合的情况才送出设定信息给主机系统。如此一来,一个设定信息会用以解除多个标号对应至指令的状态,而主机系统与存储器储存装置之间所传输的设定信息的数目会减少。当每个指令所需要传输的数据越小时,则存储器储存装置的存取频宽会提升的越多。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种指令执行方法,用于一存储器储存装置,其特征在于,包括:
接收来自一主机系统的至少一指令与对应该至少一指令的至少一标号,并且将该至少一指令暂存在一指令阵列当中;
传送该至少一标号至该主机系统,并执行该至少一指令;
在执行完该至少一指令后,判断该存储器储存装置的一运作状态是否符合一预设条件;
若该运作状态符合该预设条件,则传送一设定信息至该主机系统以解除该至少一标号对应该至少一指令;以及
若该运作状态不符合该预设条件,不传送该设定信息至该主机系统。
2.根据权利要求1所述的指令执行方法,其特征在于,在执行该至少一指令之前,该指令执行方法还包括:
判断用以执行该至少一指令所需的一缓冲存储器空间是否准备好;
若该至少一指令所需的该缓冲存储器空间未准备好,则判断该主机系统与该存储器储存装置之间的一联线是否闲置超过一预设时间;
若该联线已闲置超过该预设时间,则判断该存储器储存装置是否已执行至少一另一指令且未传送该设定信息至该主机系统;以及
若该存储器储存装置已执行该至少一另一指令且未传送该设定信息至该主机系统,则判断该运作状态符合该预设条件。
3.根据权利要求1所述的指令执行方法,其特征在于,判断该运作状态是否符合该预设条件的步骤包括:
在执行该至少一指令之后,判断该指令阵列中是否有等待被执行的指令;以及
若该指令阵列中无等待被执行的指令,则判断该运作状态符合该预设条件。
4.根据权利要求1所述的指令执行方法,其特征在于,判断该运作状态是否符合该预设条件的步骤包括:
在执行该至少一指令以后,取得一计数值;
判断该计数值是否大于一临界值;以及
若该计数值大于该临界值,判断该运作状态符合该预设条件。
5.根据权利要求4所述的指令执行方法,其特征在于,取得该计数值的步骤包括:
记录多个标记;
在执行该至少一指令以后,升起该些标记的至少其中之一;以及
计数被升起的该些标记以计算出该计数值。
6.根据权利要求4所述的指令执行方法,其特征在于,该指令阵列包括一接收指令阵列与一触发阵列,并且该至少一指令是根据一执行顺序从该接收指令阵列被移动至该触发阵列,该指令执行方法还包括:
根据该接收指令阵列的一第一指令数目来决定该临界值。
7.根据权利要求6所述的指令执行方法,其特征在于,该至少一指令被接收时,该至少一指令是暂存在该接收指令阵列当中,该指令执行方法还包括:
判断该接收指令阵列的一第二指令数目是否大于该第一指令数目;以及
若该第二指令数目大于该第一指令数目,将该第一指令数目设定为相同于该第二指令数目。
8.一种连接器,其特征在于,包括:
一存储器,用以储存一指令阵列;
一传输电路,耦接至该存储器,用以接收来自一主机系统的至少一指令与对应该至少一指令的至少一标号,并且将该至少一指令暂存在一指令阵列当中;
一存取电路,耦接至该存储器;以及
一控制电路,耦接至该传输电路与该存取电路,
其中,该传输电路用以传送该至少一标号至该主机系统,并且该存取电路用以执行该至少一指令,
其中,在执行完该至少一指令的运作之后,该控制电路用以判断该存储器储存装置的一运作状态是否符合一预设条件,
若该运作状态符合该预设条件,则该传输电路用以传送一设定信息至该主机系统以解除该至少一标号对应该至少一指令,
若该运作状态不符合该预设条件,则该传输电路不传送该设定信息至该主机系统。
9.根据权利要求8所述的连接器,其特征在于,在执行该至少一指令之前,该控制电路还用以判断用以执行该至少一指令所需的一缓冲存储器空间是否准备好,
若该至少一指令所需的该缓冲存储器空间未准备好,则该控制电路用以判断该主机系统与该存储器储存装置之间的一联线是否闲置超过一预设时间,
若该联线已闲置超过该预设时间,则该控制电路用以判断该存取电路是否已执行至少一另一指令且该传输电路未传送该设定信息至该主机系统;以及
若该存取电路已执行该至少一另一指令且该传输电路未传送该设定信息至该主机系统,则该控制电路判断该运作状态符合该预设条件。
10.根据权利要求8所述的连接器,其特征在于,该控制电路判断该运作状态是否符合该预设条件的操作包括:
在该存取电路执行该至少一指令之后,该控制电路用以判断该指令阵列中是否有等待被执行的指令;以及
若该指令阵列中无等待被执行的指令,则该控制电路用以判断该运作状态符合该预设条件。
11.根据权利要求8所述的连接器,其特征在于,该控制电路判断该运作状态是否符合该预设条件的操作包括:
在该存取电路执行该至少一指令以后,该控制电路取得一计数值;
该控制电路判断该计数值是否大于一临界值;以及
若该计数值大于该临界值,该控制电路判断该运作状态符合该预设条件。
12.根据权利要求11所述的连接器,其特征在于,还包括:
一标记电路,耦接至该存取电路与该控制电路,用以记录多个标记,
其中,在执行该至少一指令以后,该存取电路升起该些标记的至少其中之一,
其中,该控制电路用以计数被升起的该些标记以计算出该计数值。
13.根据权利要求11所述的连接器,其特征在于,该指令阵列包括一接收指令阵列与一触发阵列,并且该至少一指令是根据一执行顺序从该接收指令阵列被移动至该触发阵列,
其中,该控制电路还用以根据该接收指令阵列的一第一指令数目来决定该临界值。
14.根据权利要求13所述的连接器,其特征在于,该传输电路接收该至少一指令时,该传输电路将该至少一指令暂存在该接收指令阵列当中,
其中,该控制电路还用以判断该接收指令阵列的一第二指令数目是否大于该第一指令数目,
其中,若该第二指令数目大于该第一指令数目,该控制电路用以将该第一指令数目设定为相同于该第二指令数目。
15.一种存储器储存装置,其特征在于,包括:
一连接器,用以耦接至一主机系统;
一可复写式非易失性存储器模块,包括多个实体擦除单元;以及
一存储器控制器,耦接至该连接器与该可复写式非易失性存储器模块,
其中,该种连接器包括:
一存储器,用以储存一指令阵列;
一传输电路,耦接至该存储器,用以接收来自一主机系统的至少一指令与对应该至少一指令的至少一标号,并且将该至少一指令暂存在一指令阵列当中;
一存取电路,耦接至该存储器;以及
一控制电路,耦接至该传输电路与该存取电路,
其中,该传输电路用以传送该至少一标号至该主机系统,并且该存取电路用以执行该至少一指令,
其中,在执行完该至少一指令的步骤之后,该控制电路用以判断该存储器储存装置的一运作状态是否符合一预设条件,
若该运作状态符合该预设条件,则该传输电路用以传送一设定信息至该主机系统以解除该至少一标号对应该至少一指令,
若该运作状态不符合该预设条件,则该传输电路不传送该设定信息至该主机系统。
16.根据权利要求15所述的存储器储存装置,其特征在于,在执行该至少一指令之前,该控制电路还用以判断用以执行该至少一指令所需的一缓冲存储器空间是否准备好,
若该至少一指令所需的该缓冲存储器空间未准备好,则该控制电路用以判断该主机系统与该存储器储存装置之间的一联线是否闲置超过一预设时间,
若该联线已闲置超过该预设时间,则该控制电路用以判断该存取电路是否已执行至少一另一指令且该传输电路未传送该设定信息至该主机系统;以及
若该存取电路已执行该至少一另一指令且该传输电路未传送该设定信息至该主机系统,则该控制电路判断该运作状态符合该预设条件。
17.根据权利要求15所述的存储器储存装置,其特征在于,该控制电路判断该运作状态是否符合该预设条件的步骤包括:
在该存取电路执行该至少一指令之后,该控制电路判断该指令阵列中是否有等待被执行的指令,
若该指令阵列中无等待被执行的指令,则该控制电路判断该运作状态符合该预设条件。
18.根据权利要求15所述的存储器储存装置,其特征在于,该控制电路判断该运作状态是否符合该预设条件的步骤包括:
在该存取电路执行该至少一指令以后,该控制电路取得一计数值;
该控制电路判断该计数值是否大于一临界值;以及
若该计数值大于该临界值,该控制电路判断该运作状态符合该预设条件。
19.根据权利要求18所述的存储器储存装置,其特征在于,该连接器还包括:
一标记电路,耦接至该存取电路与该控制电路,用以记录多个标记,
其中,在执行该至少一指令以后,该存取电路升起该些标记的至少其中之一,
其中,该控制电路用以计数被升起的该些标记以计算出该计数值。
20.根据权利要求18所述的存储器储存装置,其特征在于,该指令阵列包括一接收指令阵列与一触发阵列,并且该至少一指令是根据一执行顺序从该接收指令阵列被移动至该触发阵列,
其中,该存储器控制器还用以根据该接收指令阵列的一第一指令数目来决定该临界值。
21.根据权利要求20所述的存储器储存装置,其特征在于, 该传输电路接收该至少一指令时,该传输电路将该至少一指令暂存在该接收指令阵列当中,
其中,该存储器控制器还用以判断该接收指令阵列的一第二指令数目是否大于该第一指令数目,
其中,若该第二指令数目大于该第一指令数目,该存储器控制器用以将该第一指令数目设定为相同于该第二指令数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310302395.6A CN104298468B (zh) | 2013-07-15 | 2013-07-15 | 指令执行方法、连接器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310302395.6A CN104298468B (zh) | 2013-07-15 | 2013-07-15 | 指令执行方法、连接器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298468A CN104298468A (zh) | 2015-01-21 |
CN104298468B true CN104298468B (zh) | 2018-09-18 |
Family
ID=52318215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310302395.6A Active CN104298468B (zh) | 2013-07-15 | 2013-07-15 | 指令执行方法、连接器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298468B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491287B (zh) * | 2017-08-30 | 2020-06-23 | 苏州乐麟无线信息科技有限公司 | 指令的执行方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620747B1 (en) * | 2005-10-12 | 2009-11-17 | Nvidia Corporation | Software based native command queuing |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260756A1 (en) * | 2006-01-05 | 2007-11-08 | Pao-Ching Tseng | Method for Processing Command via SATA Interface |
-
2013
- 2013-07-15 CN CN201310302395.6A patent/CN104298468B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620747B1 (en) * | 2005-10-12 | 2009-11-17 | Nvidia Corporation | Software based native command queuing |
Non-Patent Citations (1)
Title |
---|
SATA固态盘传输与应用层的实现;周文;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120715;第2012卷(第7期);第2.2,3.2,4.3-4.4节 * |
Also Published As
Publication number | Publication date |
---|---|
CN104298468A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9747029B2 (en) | Apparatus including memory management control circuitry and related methods for allocation of a write block cluster | |
US8949492B2 (en) | Apparatus including buffer allocation management and related methods | |
EP2715729B1 (en) | Apparatus including memory system controllers and related methods | |
US9430373B2 (en) | Apparatus including memory channel control circuit and related methods for relaying commands to logical units | |
US9514838B2 (en) | Apparatus including memory system controllers and related methods for memory management using block tables | |
US7970978B2 (en) | SSD with SATA and USB interfaces | |
EP2973572B1 (en) | System and method of reading data from memory concurrently with sending write data to the memory | |
US8775760B2 (en) | Modifying a host interface setting for a non-volatile memory module | |
TWI507981B (zh) | 指令執行方法、連接器與記憶體儲存裝置 | |
US9804983B2 (en) | Controlling method, connector, and memory storage device | |
CN104298468B (zh) | 指令执行方法、连接器与存储器储存装置 | |
CN104008072B (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 |