CN110308864A - 控制器、具有控制器的系统及其操作方法 - Google Patents
控制器、具有控制器的系统及其操作方法 Download PDFInfo
- Publication number
- CN110308864A CN110308864A CN201811405958.3A CN201811405958A CN110308864A CN 110308864 A CN110308864 A CN 110308864A CN 201811405958 A CN201811405958 A CN 201811405958A CN 110308864 A CN110308864 A CN 110308864A
- Authority
- CN
- China
- Prior art keywords
- order
- command queue
- command
- inspection
- controller
- 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.)
- Withdrawn
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0658—Controller construction arrangements
-
- 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
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
- Tests Of Electronic Circuits (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种用于控制装置的操作的存储器控制器,该存储器控制器可包括命令队列、命令队列控制器及命令信息存储装置。命令队列可存储多个命令。命令队列控制器可使用弹出信号和推送信号来控制命令队列的操作。命令信息存储装置可存储与存储在命令队列中的每一个命令相对应的命令信息。命令队列控制器可通过基于命令信息检查存储在命令队列中的命令并基于检查的结果转换检查的命令来控制命令队列。
Description
相关申请的交叉引用
本申请要求于2018年3月20日提交的申请号为10-2018-0032238的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种控制器、包括控制器的系统以及操作控制器的方法。
背景技术
通常,存储器装置可具二维结构或三维结构,其中在二维结构中单元串被水平地设置在半导体衬底上,在三维结构中单元串被垂直地堆叠在半导体衬底上。被设计成克服二维存储器装置集成度的限制的三维存储器装置可包括垂直堆叠在半导体衬底上的多个存储器单元。
发明内容
本公开的各个实施例涉及一种能够更有效地使用命令队列的控制器以及包括该控制器的系统。
本公开的各个实施例涉及一种操作能够更有效地使用命令队列的控制器的方法。
根据本公开的实施例的用于控制装置的操作的控制器可包括命令队列、命令队列控制器及命令信息存储装置。命令队列可存储多个命令。命令队列控制器可使用弹出信号和推送信号(push signal)来控制命令队列的操作。命令信息存储装置可存储与存储在命令队列中的每一个命令相对应的命令信息。命令队列控制器可通过基于命令信息检查存储在命令队列中的命令中的一些并基于检查的结果转换所检查的命令来控制命令队列。
在实施例中,命令队列控制器可将弹出信号施加到命令队列以输出命令并检查所输出的命令,然后将推送信号施加到命令队列,以使输出并被检查的命令被再次输入到命令队列。命令队列控制器可基于与输出的命令相对应的命令信息来检查输出的命令。
在实施例中,命令信息可包括输出的命令的忙碌时间信息和地址信息。
在实施例中,命令队列控制器可包括命令检查部件和命令转换器。命令检查部件可响应于弹出信号来检查从命令队列输出的命令中的至少一些。命令转换器可基于检查输出的命令中的至少一些的结果来对至少一个输出并被检查的命令进行转换。
在实施例中,命令检查部件可基于与输出的命令中的每一个相对应的命令信息来生成检查表,并且基于该检查表生成指示对至少一个被检查的命令执行转换的检查结果数据。此外,命令转换器可通过基于检查结果数据转换至少一个被检查的命令来控制命令队列。
在实施例中,命令转换器可生成检查结果数据以改变多个被检查的命令的顺序,使得参考检查表的忙碌时间信息而首先输出具有最短忙碌时间的命令。
在实施例中,命令转换器可生成检查结果数据,使得参考检查表的地址信息而擦除多个被检查的命令中涉及相同地址的一个命令。
在实施例中,命令转换器可生成检查结果数据,使得参考检查表的地址信息将涉及连续物理地址的多个被检查的命令结合到一个命令中。
在实施例中,命令队列控制器可进一步包括命令存储装置,该命令存储装置被配置成存储命令队列中存储的被检查的命令中的至少一个。
在实施例中,命令存储装置可包括临时存储装置,该临时存储装置临时存储使命令转换器能够转换至少一个命令的命令中的至少一个。
在实施例中,在命令转换器转换至少一个命令之前,命令存储装置可对存储在命令队列中的命令进行备份。
根据本公开的实施例的操作被配置成控制装置的操作的控制器的方法可包括:检查存储在命令队列中并将被传输到装置的命令,并且基于检查的结果转换存储在命令队列中的被检查的命令中的至少一个。
在实施例中,检查命令可包括:向命令队列施加弹出信号、检查输出的命令、并且向命令队列施加输出的命令和推送信号以将输出的命令重新插入到命令队列中。
在实施例中,该方法可进一步包括:当在向命令队列施加输出的命令和推送信号之后命令队列中存在未被检查的命令时,向命令队列施加弹出信号,并且检查随后输出的命令。
在实施例中,转换存储在命令队列中的命令中的至少一个可包括:擦除存储在命令队列中的被检查的命令中的至少一个。
在实施例中,擦除存储在命令队列中的被检查的命令中的至少一个可包括:向命令队列施加弹出信号,并且确定根据弹出信号而被再次输出的被检查的命令是否是待擦除的目标命令。
在实施例中,该方法可进一步包括:当根据弹出信号而被再次输出的被检查的命令是待擦除的目标命令时,向命令队列施加弹出信号,并且从命令队列中输出被检查的命令中的后续命令。
在实施例中,该方法可进一步包括:当根据弹出信号而被再次输出的被检查的命令不是待擦除的目标命令时,向命令队列施加根据弹出信号而再次被输出的被检查的命令和推送信号。
在实施例中,转换存储在命令队列中的命令中的至少一个可包括:改变存储在命令队列中的被检查的命令中的至少一个的轮次(turn)。
在实施例中,改变被检查的命令中的至少一个的轮次可包括:向命令队列施加弹出信号,并且确定根据弹出信号而被再次输出的被检查的命令的轮次是否被转移到后续轮次。
在实施例中,该方法可进一步包括:当根据弹出信号而被再次输出的被检查的命令是待转移到后续轮次的命令时,临时存储根据弹出信号而被再次输出的被检查的命令。
在实施例中,该方法可进一步包括:当根据弹出信号而被再次输出的被检查的命令不是待转移到后续轮次的命令时,向命令队列施加根据弹出信号而被再次输出的被检查的命令和推送信号。
根据本公开的实施例的接口系统装置可包括控制器和输入/输出装置。控制器可被配置成输出用于控制装置的操作的命令。输入/输出装置可被配置成将从控制器输出的命令输出到装置。控制器可包括命令队列、命令队列控制器和命令信息存储装置。命令队列可被配置成存储用于控制装置的操作的多个命令。命令队列控制器可被配置成控制命令队列的操作。命令信息存储装置可被配置成存储与存储在命令队列中的命令中的每一个相对应的命令信息。命令队列控制器可通过基于命令信息检查存储在命令队列中的命令中的至少一些并基于检查的结果转换所检查的命令来控制命令队列。
根据本公开的实施例的用于处理命令的装置可包括队列和控制器。队列可被配置成根据先进先出(FIFO)方案,对与从外部源提供的请求相对应的一个或多个命令进行排队。控制器可被配置成根据用于控制存储器装置执行操作的顺序,顺序地向存储器装置提供排队的命令。控制器可进一步被配置成从队列的前端移除排队的命令,识别所移除的命令,并且将移除并识别的命令顺序地返回到队列的末端,并且基于识别的结果通过从队列的前端移除排队的命令并将所移除的命令返回到队列的末端,来执行移除、组合和改变排队的命令的顺序的操作中的一个或多个。
附图说明
图1是示出根据本公开的实施例的包括存储器控制器的存储器系统的示图。
图2是示出根据本公开的实施例的图1的存储器装置的示图。
图3是示出根据本公开的实施例的存储器控制器的框图。
图4是示出图3所示的命令队列控制器的示例的框图。
图5A至图5I是用于说明根据本公开的实施例的扫描存储在命令队列410中的命令CMD的进程的示图。
图6是示出根据本公开的实施例命令检查部件431和命令转换器433根据命令扫描进程的操作的框图。
图7A至图7C是用于说明根据本公开的实施例的擦除存储在命令队列410中的命令CMD中的一个的进程的示图。
图8A至图8F是用于说明根据本公开的实施例的改变存储在命令队列410中的命令CMD中的一些的顺序的进程的示图。
图9是示出根据本公开的实施例的操作存储器控制器的方法的流程图。
图10是示出图9所示的命令检查步骤的示例的流程图。
图11是示出图9所示的命令转换步骤的示例的流程图。
图12是示出图9所示的命令转换步骤的示例的流程图。
图13是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
图14是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
图15是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
图16是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
图17是示出根据本公开的实施例的包括控制器的接口系统的示图。
具体实施方式
现将参照附图更全面地描述各个实施例;然而,元件和特征可被配置成不同于本文所示或所述的元件和特征。因此,本发明不限于本文阐述的实施例。相反地,提供这些实施例以使本公开彻底且充分,并且将实施例的范围全面地传达给本领域的技术人员。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
在附图中,为了说明清楚,可放大尺寸。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
将参照附图描述实施例。本文中将参考装置、中间结构和部件的示意图和截面图示来描述实施例。这样,由于例如制造技术和/或公差而导致的图示中部件形状的变化将是可预期的。因此,实施例不应被解释为限于在本文中所示的特定形状或区域,而是可包括例如由制造引起的形状偏差。在附图中,为清楚起见,可以夸大层和区域的长度和大小。附图中相同的附图标记表示相同的元件。
诸如“第一”和“第二”的术语可用于识别各个部件,但并不限制这些部件。这些术语仅用于将一个部件与另外具有相同或相似名称的其他部件区分开。例如,在不脱离本公开的实质和范围的情况下,第一部件可被称为第二部件,并且第二部件可被称为第一部件等。此外,“和/或”可包括所提及的部件中的任意一个或组合。
此外,除非上下文另有说明,否则单数形式可包括复数形式,反之亦然。此外,在说明书中使用的“包括/包含”或“包括有/包含有”表示存在或添加一个或多个部件、步骤、操作和元件。
此外,除非另有定义,否则本说明书中使用的包括技术术语和科学术语的所有术语具有与相关领域的技术人员通常理解的含义相同的含义。通常使用的字典中定义的术语应被解释为具有与在相关技术的背景下解释的含义相同的含义,并且除非在本说明书中另有明确定义,否则其不应被解释为具有理想化或过于正式的含义。
还应注意的是,在本说明书中,“连接/联接”不仅指一个部件直接联接另一部件,而且还指通过中间部件间接联接另一部件。另一方面,“直接连接/直接联接”指一个部件直接联接另一部件而没有中间部件。
图1是用于说明根据本公开的实施例的包括存储器控制器1200的存储器系统1000的示图。
参照图1,存储器系统1000可包括被配置成存储数据的存储器装置1100,以及被配置成在主机2000的控制下控制存储器装置1100的存储器控制器1200。
主机2000可使用诸如以下的接口协议与存储器系统1000进行通信:高速外围组件互连(PCI-E)协议、高级技术附件(ATA)协议、串行ATA(SATA)协议、并行ATA(PATA)协议或串列SCSI(SAS)协议。然而,用于主机2000和存储器系统1000之间的数据通信的接口协议不限于前述示例;也可使用诸如以下的其它接口协议中的任何一种:通用串行总线(USB)协议、多媒体卡(MMC)协议、增强型小型磁盘接口(ESDI)协议和电子集成驱动器(IDE)协议。
存储器控制器1200可控制存储器系统1000的全部操作,并且控制主机2000与存储器装置1100之间的数据交换。例如,存储器控制器1200可响应于主机2000的请求来控制存储器装置1100编程或读取数据。此外,存储器控制器1200可控制存储器装置1100,使得信息被存储在包括在存储器装置1100中的主存储块和子存储块中,并且根据针对编程操作而加载的数据量对主存储块或子存储块执行编程操作。在实施例中,存储器装置1100可包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)或闪速存储器。
存储器装置1100可在存储器控制器1200的控制下执行编程操作、读取操作或擦除操作。将参照图2以示例的方式描述存储器装置1100的详细配置和操作。
根据本公开的实施例的存储器控制器1200可以弹出和推送方案顺序地检查存储在命令队列中的命令。此外,存储器控制器1200可基于检查的结果转换存储在命令队列中的命令中的至少一个。因此,可有效地使用存储器控制器1200的命令队列。将参照图3更详细地描述根据本公开的实施例的存储器控制器1200。
图2是示出图1的存储器装置1100的示图。
参照图2,存储器装置1100可包括被配置成存储数据的存储器单元阵列100。存储器装置1100可包括外围电路200,其被配置成执行用于将数据存储在存储器单元阵列100中的编程操作、用于输出所存储的数据的读取操作和用于擦除所存储的数据的擦除操作。存储器装置1100可包括控制逻辑300,其被配置成在存储器控制器(图1的1200)的控制下控制外围电路200。
存储器单元阵列100可包括多个存储块MB1至MBk(110,k为正整数)。局部线LL和位线BL1至BLn(n为正整数)可联接到存储块MB1至MBk(110)中的每一个。例如,局部线LL可包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多个字线。此外,局部线LL可包括布置在第一选择线和字线之间以及布置在第二选择线和字线之间的虚设线。此处,第一选择线可以是源极选择线,并且第二选择线可以是漏极选择线。例如,局部线LL可包括字线、漏极选择线、源极选择线以及源极线SL。例如,局部线LL可进一步包括虚设线。例如,局部线LL可进一步包括管线。局部线LL可联接到存储块MB1至MBk(110)中的每一个。位线BL1至BLn可共同联接到存储块MB1至MBk(110)。存储块MB1至MBk(110)可被实现为二维或三维结构。例如,在具有二维结构的存储块110中,存储器单元可在平行于衬底的方向上布置。例如,在具有三维结构的存储块110中,存储器单元可在垂直于衬底的方向上堆叠。
外围电路200可在控制逻辑300的控制下对所选择的存储块110执行编程操作、读取操作或擦除操作。例如,在控制逻辑300的控制下,外围电路200可将验证电压和通过电压提供至第一选择线、第二选择线和字线,选择性地使第一选择线、第二选择线和字线放电,并且验证联接到字线之中的所选择的字线的存储器单元。例如,外围电路200可包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压生成电路210可响应于操作信号OP_CMD而生成待用于编程操作、读取操作和擦除操作的各种操作电压Vop。此外,电压生成电路210可响应于操作信号OP_CMD而选择性地使局部线LL放电。例如,在控制逻辑300的控制下,电压生成电路210可生成编程电压、验证电压、通过电压、接通电压、读取电压、擦除电压、源极线电压等。
行解码器220可响应于行地址RADD,将操作电压Vop传输到与所选择的存储块110联接的局部线LL。
页面缓冲器组230可包括联接到位线BL1至BLn的多个页面缓冲器PB1至PBn(231)。页面缓冲器PB1至PBn(231)可响应于页面缓冲器控制信号PBSIGNALS进行操作。例如,在读取操作或验证操作期间,页面缓冲器PB1至PBn(231)可临时存储通过位线BL1至BLn接收的数据,或者感测位线BL1至BLn的电压或电流。
列解码器240可响应于列地址CADD,在输入/输出电路250和页面缓冲器组230之间传输数据。例如,列解码器240可通过数据线DL与页面缓冲器231交换数据,或者可通过列线CL与输入/输出电路250交换数据。
输入/输出电路250可将从存储器控制器1200接收的命令CMD或地址ADD传输到控制逻辑300,或者与列解码器240交换数据DATA。
在读取操作或验证操作期间,感测电路260可响应于允许位VRY_BIT<#>而生成参考电流,并且可将从页面缓冲器组230接收的感测电压VPB与由参考电流生成的参考电压进行比较,并输出通过信号PASS或失败信号FAIL。
控制逻辑300可响应于命令CMD和地址ADD来输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>,从而控制外围电路200。另外,控制逻辑300可响应于通过信号PASS或失败信号FAIL,来确定目标存储器单元已通过验证操作还是验证操作失败。
图3是示出根据本公开的实施例的存储器控制器1200的框图。
参照图3,根据本公开的实施例的存储器控制器可包括命令队列410、命令队列控制器430和命令信息存储装置450。
命令队列410可存储从主机接收的命令。存储在命令队列410中的命令可被传输到存储器装置。存储器装置可响应于接收到的命令执行操作。
命令队列控制器430可控制命令队列410的操作。详细地,命令队列控制器430可向命令队列410施加队列控制信号CTRLQ以控制命令队列410。队列控制信号CTRLQ可包括弹出信号或推送信号。如果施加了弹出信号,则可输出存储在命令队列410前端的命令。如果施加了推送信号和命令,则所施加的命令可被存储在命令队列410的末端。
从命令队列410输出的命令CMD被传输到命令队列控制器430。命令队列控制器430可检查每一个输出的命令,并将推送信号和被检查的命令施加到命令队列410。因此,被检查的命令可被再次存储在命令队列430中。在根据本公开的实施例的存储器控制器中,当弹出信号和推送信号被重复地输入到命令队列410时,命令队列控制器430可检查存储在命令队列410中的所有的命令CMD。基于检查的结果,命令队列控制器430可转换存储在命令队列410中的命令CMD中的至少一个。
命令信息存储装置450可存储与存储在命令队列410中的命令CMD中的每一个相对应的命令信息。例如,命令信息存储装置450可存储忙碌时间信息Inf_tBusy,该信息是与执行存储在命令队列410中的命令CMD中的每一个所花费的时间相关的信息。命令信息存储装置450可存储命令队列410中存储的命令CMD中的每一个的地址信息Inf_Addr。命令队列控制器430可从命令信息存储装置450接收各命令CMD的忙碌时间信息Inf_tBusy和地址信息Inf_Addr,并且基于忙碌时间信息Inf_tBusy和地址信息Inf_Addr转换命令CMD中的至少一个。命令的忙碌时间信息Inf_tBusy和地址信息Inf_Addr可配置对应于该命令的命令信息。
命令CMD的转换可包括擦除命令、组合命令以及改变命令的顺序。本文稍后将参照图5A至图8F详细描述命令CMD的转换。
根据本公开的实施例的存储器控制器的命令队列控制器430可基于弹出信号和推送信号来顺序地扫描存储在命令队列410中的命令CMD。此后,命令队列控制器430可基于扫描的结果和从命令信息存储装置450传输的命令信息即忙碌时间信息Inf_tBusy和地址信息Inf_Addr,来转换存储在命令队列410中的命令CMD中的至少一个。因此,可更有效地使用存储器控制器的命令队列410,并且可增加存储器控制器与存储器装置之间或存储器控制器与主机之间的吞吐量。
图4是示出图3所示的命令队列控制器430的实施例的框图。参照图4,命令队列控制器430可包括命令检查部件431、命令转换器433和命令存储装置435。
命令检查部件431可检查被顺序扫描的命令CMD。详细地,命令检查部件431可基于从命令信息存储装置450传输的命令信息,即忙碌时间信息Inf_tBusy和地址信息Inf_Addr,检查所施加的命令CMD。命令检查部件431可生成检查结果数据DATA_Rep作为检查命令CMD的结果。检查结果数据DATA_Rep可以是指示转换特定命令的数据。生成的检查结果数据DATA_Rep被传输到命令转换器433。
命令转换器433可生成队列控制信号CTRLQ并将其传输到命令队列410。由此,基于由命令转换器433生成的队列控制信号CTRLQ来操作命令队列410。如上所述,队列控制信号CTRLQ可包括弹出信号或推送信号。在图4中,示出了命令转换器433生成队列控制信号CTRLQ的示例。然而,本发明不限于这种配置。例如,命令检查部件431而非命令转换器433可生成队列控制信号CTRLQ并将其传输到命令队列410。
命令转换器433可从命令队列410接收命令CMD。接收的命令可以是响应于弹出信号而从命令队列410的前端输出的命令。此外,命令转换器433可将命令CMD传输到命令队列410。此处,可将命令连同推送信号一起传输到命令队列410。因此,传输的命令可被存储在命令队列410的末端。
当命令检查部件431扫描命令队列410的命令CMD时,命令转换器433可接收从命令队列410输出的命令CMD中的每一个,并且将每一个命令连同推送信号一起再次施加到命令队列410。因此,当命令检查部件431完成扫描命令的操作时,命令队列410可以与初始阶段相同的顺序来存储在初始阶段已存储在其中的命令。本文中稍后将参照图5A至图5I详细描述在执行扫描命令CMD的操作时,从命令队列410输出命令并将命令重新输入到命令队列410的详细进程。
如果完成了扫描命令CMD的操作,则命令检查部件431可生成检查结果数据DATA_Rep。生成的检查结果数据DATA_Rep被传输到命令转换器433。命令转换器433可基于接收到的检查结果数据DATA_Rep来转换存储在命令队列410中的命令CMD中的至少一个。更详细地,命令转换器433可转换命令CMD中的至少一个,同时重复地向命令队列410施加弹出信号和推送信号。本文中稍后将参照图6至图8F详细描述由命令转换器433进行的命令的转换。
命令存储装置435可存储从命令队列410输出的命令CMD中的至少一些。详细地,命令存储装置435可临时存储命令CMD中的至少一些,以允许命令转换器433通过使用临时存储在命令存储装置435中的命令CMD中的至少一些来转换命令队列410的命令CMD中的至少一个。
在实施例中,命令存储装置435可对已经存储在命令队列410中的命令进行备份。换言之,命令存储装置435可存储在命令转换器433转换命令之前已经存储在命令队列410中的命令。即使在已经存储在命令队列410中的至少一些命令被命令检查部件431和命令转换器433转换之后,一个或多个被转换的命令也可根据需要而恢复到它们在命令队列410中的原始形式。
在根据本公开的实施例的存储器控制器中,命令队列控制器430的命令检查部件431可顺序地检查存储在命令队列410中的命令CMD。随后,命令检查部件431可生成检查结果数据DATA_Rep,并且将检查结果数据DATA_Rep传输到命令转换器433,其中该检查结果数据DATA_Rep是指示检查命令CMD的结果的数据。命令转换器433可基于检查结果数据DATA_Rep来转换存储在命令队列410中的命令CMD中的至少一个。在该进程期间,存储在命令队列410中的命令CMD可被存储在命令存储装置435中。
因此,在根据本公开的实施例的存储器控制器中,可更有效地使用命令队列410,并且存储器控制器与存储器装置之间或存储器控制器与主机之间的吞吐量可增加。
图5A至图5I是用于说明根据本公开的实施例的扫描存储在命令队列410中的命令CMD的进程的示图。
参照图5A,示出了命令C1、C2、C3、C4、……、C(n-1)和Cn被存储在命令队列410中的示例。第一命令C1被存储在命令队列410的前端,第n命令Cn被存储在命令队列410的末端。命令队列410可基于队列控制信号CTRLQ存储或输出命令。还将参照图4描述扫描命令CMD的进程。
参照图5B,命令转换器433可向命令队列410传输弹出信号。然后,输出已经存储在命令队列410的前端的第一命令C1。输出的第一命令C1被传输到命令检查部件431和命令转换器433。命令检查部件431将第一命令C1和相关信息Inf_tBusy和Inf_Addr临时存储到检查表中。稍后将参照[表1]描述该检查表。
此后,参照图5C,命令转换器433向命令队列410施加推送信号和第一命令C1。然后,第一命令C1被存储在命令队列410的末端。另外,如图所示,第二命令C2被存储在命令队列410的前端。
参照图5D,命令转换器433可将弹出信号传输到命令队列410。由此,输出已经存储在命令队列410的前端中的第二命令C2。输出的第二命令C2被传输到命令检查部件431和命令转换器433。命令检查部件431将第二命令C2和相关信息Inf_tBusy和Inf_Addr临时存储在检查表中。
此后,参照图5E,命令转换器433向命令队列410施加推送信号和第二命令C2。因此,第二命令C2被存储在命令队列410的末端。另外,如图所示,第三命令C3被存储在命令队列410的前端。
随着重复地执行图5B至图5E所示的进程,命令队列410的命令CMD可由命令检查部件431顺序地检查,然后被重新输入到命令队列410。参照图5F,示出了通过重复上述进程第一至第n-2命令C1至C(n-2)已经被检查并重新存储在命令队列410中的情况。如图5F所示,命令转换器433可将弹出信号传输到命令队列410。由此,输出已经存储在命令队列410的前端的第n-1命令C(n-1)。输出的第n-1命令C(n-1)被传输到命令检查部件431和命令转换器433。命令检查部件431将第n-1命令C(n-1)和相关信息Inf_tBusy和Inf_Addr临时存储在检查表中。
此后,参照图5G,命令转换器433向命令队列410施加推送信号和第n-1命令C(n-1)。因此,第n-1命令C(n-1)被存储在命令队列410的末端。
参照图5H,命令转换器433可将弹出信号传输到命令队列410。由此,输出已经存储在命令队列410的前端的第n命令Cn。输出的第n命令Cn被传输到命令检查部件431和命令转换器433。命令检查部件431将第n命令Cn和相关信息Inf_tBusy和Inf_Addr临时存储在检查表中。
此后,参照图5I,命令转换器433向命令队列410施加推送信号和第n命令Cn。因此,第n命令Cn被存储在命令队列410的末端。
参照图5I,应当理解的是,存储在命令队列410中的命令CMD具有与扫描进程之前图5A所示的命令CMD的状态相同的状态。换言之,存储在命令队列410中的命令可通过按存储在命令队列410中的命令的数量向命令队列410施加弹出信号和推送信号以进行一次轮换。当命令进行一次轮换时,命令检查部件431可基于进行轮换的命令和相关命令信息来生成检查表。以这种方式,根据本公开的实施例的存储器控制器可扫描存储在命令队列410中的所有的命令CMD,而不改变命令CMD。
图6是示出根据本公开的实施例的命令检查部件431和命令转换器433根据命令扫描进程的操作的框图。
当以图5A至图5I所示的方案扫描命令CMD时,已经存储在命令队列410中的命令C1、C2、……、Cn被顺序地传输到命令检查部件431和命令转换器433。命令转换器433向命令队列410施加弹出信号和推送信号,以从命令队列410顺序地输出命令,然后将命令重新存储到命令队列410。
在扫描命令CMD的进程中,命令检查部件431可基于扫描的命令CMD和相关命令信息生成检查表。此外,命令检查部件431可在内部临时存储所生成的检查表。为此,命令检查部件431可包括用于存储检查表的存储装置(未示出)。例如,命令检查部件431可生成检查表,如表1所示,并且临时存储该检查表。
[表1]
C1 | C2 | C3 | C4 | …… | Cn | |
忙碌时间 | T1 | T2 | T3 | T4 | …… | Tn |
允许的顺序改变 | Y | N | N | Y | …… | Y |
块地址 | BA1 | BA2 | BA3 | BA4 | …… | BAn |
页面地址 | PGA1 | PGA2 | PGA3 | PGA4 | …… | PGAn |
平面信息 | PLN1 | PLN2 | PLN3 | PLN4 | …… | PLNn |
参考表1所示的检查表,关于各个命令C1、C2、C3、C4、……、Cn,可在检查表中存储:忙碌时间T1、T2、T3、T4、……、Tn,关于是否允许顺序改变的信息(是(Y)或否(N)),块地址BA1、BA2、BA3、BA4、……、BAn,页面地址PGA1、PGA2、PGA3、PGA4、……、PGAn以及平面信息PLN1、PLN2、PLN3、PLN4、……、PLNn。在已经完成扫描命令CMD的进程之后,命令检查部件431可基于生成的检查表来生成检查结果数据DATA_Rep,以用于转换命令CMD中的至少一个。
在实施例中,命令检查部件431可基于忙碌时间来改变命令的顺序。例如,可改变命令的顺序,使得以从最短忙碌时间到最长忙碌时间的顺序输出命令。在这种情况下,因为首先输出具有相对较短忙碌时间的命令,所以可减少在命令队列中等待的命令的数量。
例如,如果第四命令C4的忙碌时间T4比第一命令C1的忙碌时间T1短,则第一命令C1和第四命令C4的轮次在它们相对的输出顺序方面可彼此改变。在这样的命令顺序改变中,命令检查部件431可确定改变第一和第四命令C1和C4的输出顺序。在表1中,关于“允许的顺序改变”的项,“Y”表示可改变对应命令的轮次,“N”表示不能改变对应命令的轮次。例如,因为不允许改变第二命令C2和第三命令C3两者的顺序(表1中的“N”),所以可能不会允许改变第二命令C2和第三命令C3的轮次。另一方面,因为允许改变第一命令C1和第四命令C4两者的顺序(表1中的“Y”),所以可允许基于忙碌时间来改变命令的轮次。在这种情况下,检查结果数据DATA_Rep可包括指示改变第一命令C1和第四命令C4的轮次的数据。
在实施例中,命令检查部件431可基于数据地址来擦除至少一个命令。例如,第一命令C1和第四命令C4都可以是读取命令并指示相同的物理地址。换言之,第一和第四命令C1和C4的块地址BA1和BA4、页面地址PGA1和PGA4以及平面信息PLN1和PLN4可彼此相同。这种情况表示已经重复输入针对相同数据的读取命令C1和C4。因此,存储器控制器1200可仅将第一命令C1传输到存储器装置,高速缓存读取数据,然后响应于与第一命令C1和第四命令C4相对应的请求重复地将数据传输到主机。在这种情况下,因为可擦除第四命令C4,所以可防止不必要地重复执行对存储器装置1100的读取操作。在这种情况下,检查结果数据DATA_Rep可包括指示擦除第四命令C4的数据。
在实施例中,命令检查部件431可基于数据的地址来组合两个或更多个命令。例如,第一命令C1和第四命令C4可指示连续的物理地址。换言之,第一和第四命令C1和C4的块地址BA1和BA4以及平面信息PLN1和PLN4可彼此相同,并且第一和第四命令C1和C4的页面地址PGA1和PGA4可指示连续的物理地址。在这种情况下,为了有效地使用命令队列410的空间并确保存储器装置1100的有效操作,可将第一命令C1和第四命令C4组合成一个命令C1’。对于该操作,可生成新命令C1’,并且可擦除第一命令C1和第四命令C4。在这种情况下,检查结果数据DATA_Rep可包括指示将第一命令C1和第四命令C4彼此组合的数据(即,指示生成新命令C1’并擦除第一命令C1和第四命令C4的数据)。
如上所述,可以各种方式来转换命令CMD,以便增加存储器控制器1200与存储器装置之间或存储器控制器与主机之间的吞吐量,并且更有效地使用存储器控制器的命令队列410。根据特定需要或策略,命令检查部件431可生成指示转换命令CMD的检查结果数据DATA_Rep,并且可将检查结果数据DATA_Rep传输到命令转换器433。
命令转换器433可基于接收到的检查结果数据DATA_Rep来转换存储在命令队列410中的命令CMD。
图7A至图7C是用于说明根据本公开的实施例的擦除存储在命令队列410中的命令CMD中的一个的进程的示图。描述了基于从命令检查部件431接收的检查结果数据DATA_Rep擦除第二命令C2的情况。
参照图7A,应当理解的是,已经将第一命令C1存储在命令队列410的末端。换言之,应当理解的是,在图7A的状态之前,命令转换器433已经施加了弹出信号和推送信号,使得已经存储在命令队列410的前端的第一命令C1被存储在命令队列410的末端。
在第一命令C1被存储在命令队列410的末端并且第二命令C2被存储在命令队列410的前端的图7的情况下,命令转换器433向命令队列410施加弹出信号。从而,从命令队列410输出第二命令C2。随后,如图7B所示,命令转换器433再次向命令队列410施加弹出信号。从而,第三命令C3被输出。此后,如图7C所示,命令转换器433向命令队列410施加推送信号和第三命令C3。从而,第三命令C3被存储在第一命令C1之后。在前述过程期间,从命令队列410中擦除了第二命令C2。在图7C的步骤之后,命令转换器433可重复和交替地向命令队列410施加弹出信号和推送信号,以使得可顺序地转移命令队列410中的命令。
图8A至图8F是用于说明根据本公开的实施例的改变存储在命令队列410中的一些命令CMD的顺序的进程的示图。描述了基于从命令检查部件431接收的检查结果数据DATA_Rep,将第一命令C1的轮次改变为第n-1命令C(n-1)和第n命令Cn之间的轮次的进程。
参照图8A,命令转换器433向命令队列410施加弹出信号。从命令队列410输出第一命令C1。因为第一命令C1是其轮次将被改变的命令,所以第一命令C1被临时存储在图4所示的命令存储装置435中。
参照图8B,命令转换器433再次向命令队列410施加弹出信号。从命令队列410输出第二命令C2。从而,第三命令C3被存储在命令队列410的前端。第一命令C1仍然被存储在命令存储装置435中。
参照图8C,命令转换器433将输出的第二命令C2连同推送信号一起施加到命令队列410。然后,第二命令C2被存储在命令队列410的末端,而第三命令C3被存储在命令队列410的前端。如图8C所示,第二命令C2被存储在第n命令Cn之后。
在图8C所示的步骤之后,命令转换器433交替地施加弹出信号和推送信号,以仅使存储在命令队列410中的命令的位置循环。换言之,重复执行输出存储在命令队列410中的命令之中位于命令队列410前端的命令并将所输出的命令存储在命令队列410的末端的操作。重复执行前述循环操作,直到第n命令Cn被存储在命令队列410的前端,并且第n-1命令C(n-1)被存储在命令队列410的末端。
参照图8D,在第n命令Cn被存储在命令队列410的前端并且第n-1命令C(n-1)被存储在命令队列410的末端的情况下,命令转换器433向命令队列410施加推送信号和已经被临时存储在命令存储装置435中的第一命令C1。从而,第一命令C1被存储在命令队列410的末端。换言之,第一命令C1在命令队列410中被存储在第n-1命令C(n-1)之后。
参照图8E,命令转换器433向命令队列410施加弹出信号。从命令队列410输出第n命令Cn。参照图8F,命令转换器433将输出的第n命令Cn连同推送信号一起施加到命令队列410。从而,第n命令Cn在命令队列410中被存储在第一命令C1之后。因此,第一命令C1的轮次被改变为第n-1命令C(n-1)与第n命令Cn之间的轮次。
在图8A至图8F中,示出了改变单个命令的轮次的方法。然而,应当理解的是,作为对该方法的修改,也可将两个命令的轮次彼此交换。
图9是示出根据本公开的实施例的操作例如存储器控制器1200的存储器控制器的方法的流程图。参照图9,该方法可包括:步骤S110,检查存储在命令队列中的命令;以及步骤S130,基于检查的结果来转换存储在命令队列中的命令中的至少一个。
在步骤S110中,如参照图5A至图5I所述,检查存储在命令队列410中的命令CMD。根据实施例,在步骤S110中,可以弹出和推送方案检查存储在命令队列410中的命令CMD。弹出和推送方案表示弹出并输出存储在命令队列410的前端的命令,检查所输出的命令,然后将对应的命令推送并存储在命令队列410的末端。因此,可扫描存储在命令队列410中的所有的命令,而不改变命令CMD。稍后将参照图10描述步骤S110的详细配置。
在步骤S130中,基于步骤S110中检查的结果,转换存储在命令队列410中的命令CMD中的至少一个。此处,步骤S110中检查的结果可以是由命令检查部件431生成的检查结果数据DATA_Rep。在步骤S130中,可擦除存储在命令队列410中的命令CMD中的至少一个,或者可改变命令CMD的顺序。可选地,在步骤S130中,可对存储在命令队列410中的多个命令进行组合。稍后将参照图11和图12描述步骤S130的详细配置。
图10是示出图9所示的命令检查步骤S110的流程图。
参照图10,在步骤S210中,向命令队列410施加弹出信号。当弹出信号被施加到命令队列410时,可输出已经存储在命令队列410的前端的命令。
此后,在步骤S230中,检查所输出的命令。可由命令检查部件431执行步骤S230的检查操作。例如,如上所述,命令检查部件431可基于输出的命令和相关信息Inf_tBusy和Inf_Addr来生成诸如表1的检查表。
随后,命令转换器433将输出的命令和推送信号施加到命令队列410。从而,完成检查的命令被存储在命令队列410的末端。
此后,在步骤S270中,确定是否已经完全检查了存储在命令队列410中的所有命令。如果尚未完全检查所有的命令,则进程返回到步骤S210,以弹出和推送方案检查存储在命令队列410的前端的后续命令。如果已经完全检查了所有的命令,则完成图9的命令检查步骤S110。应当理解的是,前述进程基本与参照图5A至图5I描述的进程基本相同。
图11是示出图9所示的命令转换步骤S130的实施例的流程图。图11示出了作为命令转换操作的示例的擦除特定命令的操作。
在步骤S310中,向命令队列410施加弹出信号。当弹出信号被施加到命令队列410时,可输出已经存储在命令队列410的前端的命令。
在步骤S330中,确定输出的命令是否是待擦除的目标命令。如果输出的命令是待擦除的目标命令,则终止进程。在这种情况下,因为输出的命令没有被再次输入到命令队列410,所以输出的命令被擦除。
如果输出的命令不是待擦除的目标,则在步骤S350中,将输出的命令和推送信号施加到命令队列410。因此,输出的命令可不被擦除。应当理解的是,前述进程基本与参照图7A至图7C描述的进程基本相同。
图12是示出图9所示的命令转移步骤的另一实施例的流程图。图12示出了作为命令转换操作的示例的改变特定命令的轮次的操作。
在步骤S410中,向命令队列410施加弹出信号。当弹出信号被施加到命令队列410时,可输出已经存储在命令队列410的前端的命令。
在步骤S420中,确定输出的命令是待置于临时存储的命令之后的命令。此处,应当理解的是,临时存储的命令是先前从存储器队列410弹出并临时存储在图4的命令存储装置435中的命令。
如果输出的命令将被置于临时存储的命令之后,则临时存储的命令必须比输出的命令更早地存储在命令队列中。因此,在这种情况下,进程继续进行到步骤S430以将临时存储的命令和推送信号施加到命令队列410。
如果输出的命令将被置于临时存储的命令之前,则进程继续进行到步骤S440。应当理解的是,如果不存在临时存储的命令,则进程继续进行到步骤S440。
此后,确定是否必须改变输出的命令的轮次。换言之,在步骤S440中,确定输出的命令的轮次是否必须转移到后续轮次。如果输出的命令的轮次必须被转移到后续轮次,则在步骤S460中,临时存储输出的命令。随后,弹出后续的命令并与临时存储的命令进行比较。
如果不允许将输出的命令移动到后续轮次,则向命令队列410施加输出的命令和推送信号。从而,输出的命令可被再次存储在命令队列410中。因此,输出的命令的轮次可不改变。
如上所述,在操作根据实施例的存储器控制器的方法中,可更有效地使用命令队列410,并且可增加存储器控制器与存储器装置之间或存储器控制器与主机之间的吞吐量。
图13是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
参照图13,存储器系统3000可被实现在移动电话、智能电话、平板电脑、个人数字助理(PDA)或无线通信装置中。存储器系统3000可包括存储器装置1100和被配置成控制存储器装置1100的操作的存储器控制器1200。存储器控制器1200可在处理器3100的控制下控制存储器装置1100的数据存取操作,例如编程操作、擦除操作或读取操作。
编程在存储器装置1100中的数据可在存储器控制器1200的控制下通过显示器3200输出。
无线电收发器3300可通过天线ANT发送和接收无线电信号。例如,无线电收发器3300可将通过天线ANT接收到的无线电信号改变为能够在处理器3100中处理的信号。因此,处理器3100可处理从无线电收发器3300输出的信号,并将处理后的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可将由处理器3100处理的信号编程到半导体存储器装置1100。此外,无线电收发器3300可将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将改变后的无线电信号输出到外部装置。输入装置3400可用于输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据。输入装置3400可被实现在诸如触摸板和计算机鼠标的点击装置、小键盘或键盘中。处理器3100可控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。
在实施例中,能够控制存储器装置1100的操作的存储器控制器1200可被实现为处理器3100的一部分或与处理器3100分开设置的芯片。
图14是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
参照图14,存储器系统4000可被实现在个人计算机(PC)、平板电脑、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器中。
存储器系统4000可包括存储器装置1100和被配置成控制存储器装置1100的数据处理操作的存储器控制器1200。
处理器4100可根据从输入装置4200输入的数据通过显示器4300输出存储在存储器装置1100中的数据。例如,输入装置4200可被实现在诸如触摸板或计算机鼠标的点击装置、小键盘或键盘中。
处理器4100可控制存储器系统4000的整体操作,并且控制存储器控制器1200的操作。在实施例中,能够控制存储器装置1100的操作的存储器控制器1200可被实现为处理器4100的一部分或与处理器4100分开设置的芯片。
图15是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
参照图15,存储器系统5000可被实现在例如数码相机、配备有数码相机的便携式电话、配备有数码相机的智能电话或配备有数码相机的平板电脑的图像处理装置中。
存储器系统5000可包括存储器装置1100和能够控制存储器装置1100的例如编程操作、擦除操作或读取操作的数据处理操作的存储器控制器1200。
存储器系统5000的图像传感器5200可将光学图像转换为数字信号。转换后的数字信号可被传输到处理器5100或存储器控制器1200。在处理器5100的控制下,转换后的数字信号可通过显示器5300输出或通过存储器控制器1200而存储在存储器装置1100中。存储在存储器装置1100中的数据可在处理器5100或存储器控制器1200的控制下通过显示器5300输出。
在实施例中,能够控制存储器装置1100的操作的存储器控制器1200可被实现为处理器5100的一部分或与处理器5100分开设置的芯片。
图16是示出包括图3所示的存储器控制器的存储器系统的示例的示图。
参照图16,存储器系统7000可被实施在存储卡或智能卡中。存储器系统7000可包括存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可控制存储器装置1100和卡接口7100之间的数据交换。在实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但不限于此。
卡接口7100可根据主机6000的协议来接口连接主机6000和存储器控制器1200之间的数据交换。在实施例中,卡接口7100可支持通用串行总线(USB)协议和芯片间(IC)-USB协议。此处,卡接口可指能够支持主机6000使用的协议的硬件、安装在硬件中的软件或者信号传输方案。
当存储器系统7000联接到诸如PC、平板电脑、数码相机、数字音频播放器、移动电话、控制台视频游戏硬件或数字机顶盒的主机6000的主机接口6200时,主机接口6200可在微处理器6100的控制下,通过卡接口7100和存储器控制器1200与存储器装置1100进行数据通信。
图17是示出根据本公开的实施例的包括控制器的接口系统1500的示图。
参照图17,接口系统1500可包括被配置成与应用装置1400通信的输入/输出装置1150,以及被配置成在主机2000的控制下控制输入/输出装置1150的控制器1300。
控制器1300可控制接口系统1500的全部操作,并且控制主机2000与应用装置1400之间的数据交换。例如,控制器1300可响应于主机2000请求来控制输入/输出装置1150以向应用装置1400传输数据或从应用装置1400接收数据。
在实施例中,应用装置1400可包括存储器装置。在实施例中,应用装置1400可包括非存储器装置。例如,应用装置1400可包括网络装置或通信装置。另外,被配置成执行各种功能的装置可作为图17的应用装置1400连接到接口系统1500。
参照图1至图4,示出了存储器控制器1200包括命令队列410、命令队列控制器430和命令信息存储装置450的示例。然而,根据本公开的控制器不限于存储器控制器1200。例如,根据图17所示实施例的控制器1300可控制可能具有各种形式的应用装置1400的操作以及存储器装置的操作。在这种情况下,应用装置1400可基于从控制器1300传输的命令来操作。
图17的控制器1300可包括图3所示的命令队列410、命令队列控制器430和命令信息存储装置450。在这种情况下,从命令队列410输出的命令可通过输入/输出装置1150而传输到应用装置1400。
本公开的各个实施例提供了一种能够更有效地使用命令队列的存储器控制器。
本公开的各个实施例提供了一种操作能够更有效地使用命令队列的存储器控制器的方法。
本文已经公开了实施例的示例,并且尽管使用了特定的术语,但是它们以一般的和描述性的意义来使用并理解,而不用于限制的目的。在一些情况下,从本申请提交起,对于本领域技术人员而言显而易见的是,结合特定实施例描述的特征、特性和/或元件可单独使用或与结合其它实施例描述的特征、特性和/或元件组合使用,除非另外明确指出。因此,本领域技术人员将理解的是,在不脱离如权利要求中阐述的本公开的实质和范围的情况下,可进行形式和细节上的各种改变。
Claims (25)
1.一种用于控制装置的操作的控制器,所述控制器包括:
命令队列,存储多个命令;
命令队列控制器,控制所述命令队列的操作;以及
命令信息存储装置,存储与存储在所述命令队列中的命令中的每一个相对应的命令信息,
其中所述命令队列控制器通过基于所述命令信息检查存储在所述命令队列中的所述命令中的至少一些并基于检查的结果转换所检查的命令来控制所述命令队列。
2.根据权利要求1所述的控制器,
其中所述命令队列控制器将弹出信号施加到所述命令队列以输出命令并检查所输出的命令,然后将推送信号施加到所述命令队列,使得所输出并检查的命令被再次输入到所述命令队列,并且
其中所述命令队列控制器基于与所输出的命令相对应的所述命令信息来检查所输出的命令。
3.根据权利要求2所述的控制器,其中所述命令信息包括所输出的命令的忙碌时间信息和地址信息。
4.根据权利要求1所述的控制器,其中所述命令队列控制器包括:
命令检查部件,响应于弹出信号检查从所述命令队列输出的所述命令中的至少一些;以及
命令转换器,基于检查所输出的命令中的至少一些的结果来对至少一个输出并检查的命令进行转换。
5.根据权利要求4所述的控制器,
其中所述命令检查部件基于与所输出的命令中的每一个相对应的命令信息来生成检查表,并且基于所述检查表生成检查结果数据,所述检查结果数据指示对至少一个检查的命令执行转换,并且
其中所述命令转换器通过基于所述检查结果数据转换所述至少一个检查的命令来控制所述命令队列。
6.根据权利要求5所述的控制器,其中所述命令转换器生成所述检查结果数据以改变多个检查的命令的顺序,以便参考所述检查表的忙碌时间信息而首先输出具有最短忙碌时间的命令。
7.根据权利要求5所述的控制器,其中所述命令转换器生成所述检查结果数据,以便参考所述检查表的地址信息而擦除涉及相同地址的多个检查的命令中的一个。
8.根据权利要求5所述的控制器,其中所述命令转换器生成所述检查结果数据,以便参考所述检查表的地址信息将涉及连续物理地址的多个检查的命令结合到一个命令中。
9.根据权利要求5所述的控制器,其中所述命令队列控制器进一步包括命令存储装置,所述命令存储装置对存储在所述命令队列中的检查的命令中的至少一个进行存储。
10.根据权利要求9所述的控制器,其中所述命令存储装置包括临时存储装置,所述临时存储装置临时存储所述命令中的至少一个,所述命令中的至少一个使所述命令转换器能够转换至少一个命令。
11.根据权利要求9所述的控制器,其中在所述命令转换器转换至少一个命令之前,所述命令存储装置对存储在所述命令队列中的命令进行备份。
12.一种操作控制器的方法,所述控制器控制装置的操作,所述方法包括:
检查存储在命令队列中并待被传输到所述装置的命令;以及
基于检查的结果转换存储在所述命令队列中的检查的命令中的至少一个。
13.根据权利要求12所述的方法,其中检查所述命令包括:
向所述命令队列施加弹出信号;
检查输出的命令;以及
将所述输出的命令和推送信号施加到所述命令队列以将所述输出的命令重新插入到所述命令队列中。
14.根据权利要求13所述的方法,
所述方法进一步包括,在将所述输出的命令和所述推送信号施加到所述命令队列之后,
当所述命令队列中存在未被检查的命令时,向所述命令队列施加弹出信号,并且检查随后输出的命令。
15.根据权利要求12所述的方法,其中转换存储在所述命令队列中的所述命令中的至少一个包括:擦除存储在所述命令队列中的检查的命令中的至少一个。
16.根据权利要求15所述的方法,其中擦除存储在所述命令队列中的检查的命令中的至少一个包括:
向所述命令队列施加弹出信号;以及
确定根据所述弹出信号而再次输出的所述检查的命令是否是待擦除的目标命令。
17.根据权利要求16所述的方法,所述方法进一步包括:当根据所述弹出信号而再次输出的所述检查的命令是所述待擦除的目标命令时,向所述命令队列施加弹出信号,并且从所述命令队列输出所述检查的命令中的后续命令。
18.根据权利要求16所述的方法,所述方法进一步包括:当根据所述弹出信号而再次输出的所述检查的命令不是待擦除的目标命令时,向所述命令队列施加根据所述弹出信号而再次输出的所述检查的命令和推送信号。
19.根据权利要求12所述的方法,其中转换存储在所述命令队列中的命令中的至少一个包括:改变存储在所述命令队列中的所述检查的命令中的至少一个的轮次。
20.根据权利要求19所述的方法,其中改变所述检查的命令中的至少一个的轮次包括:
向所述命令队列施加弹出信号;以及
确定根据所述弹出信号而再次输出的所述检查的命令的轮次是否被转移到后续轮次。
21.根据权利要求20所述的方法,所述方法进一步包括:当根据所述弹出信号而再次输出的所述检查的命令是待转移到后续轮次的命令时,临时存储根据所述弹出信号而再次输出的所述检查的命令。
22.根据权利要求21所述的方法,所述方法进一步包括:当根据所述弹出信号而再次输出的所述检查的命令不是待转移到后续轮次的命令时,向所述命令队列施加根据所述弹出信号而再次输出的所述检查的命令和推送信号。
23.一种存储器系统,包括:
存储器装置,包括用于存储数据的多个存储器单元;以及
存储器控制器,控制所述存储器装置的操作,
其中所述存储器控制器包括:
命令队列,存储用于控制所述存储器装置的操作的多个命令;
命令队列控制器,控制所述命令队列的操作;以及
命令信息存储装置,存储与存储在所述命令队列中的命令中的每一个相对应的命令信息,
其中所述命令队列控制器通过基于所述命令信息检查存储在所述命令队列中的命令中的至少一些并基于检查的结果转换检查的命令来控制所述命令队列。
24.一种接口系统,包括:
控制器,输出用于控制装置的操作的命令;以及
输入/输出装置,将从所述控制器输出的命令输出到所述装置,
其中所述控制器包括:
命令队列,存储用于控制所述装置的操作的多个命令;
命令队列控制器,控制所述命令队列的操作;以及
命令信息存储装置,存储与存储在所述命令队列中的命令中的每一个相对应的命令信息,
其中所述命令队列控制器通过基于所述命令信息检查存储在所述命令队列中的命令中的至少一些并基于检查的结果转换检查的命令来控制所述命令队列。
25.一种处理命令的装置,包括:
队列,根据先进先出方案,即FIFO方案,对与从外部源提供的请求相对应的一个或多个命令进行排队,以及
控制器,根据用于控制存储器装置执行操作的顺序,顺序地向存储器装置提供排队的命令,
其中所述控制器进一步:
从所述队列的前端移除排队的命令,识别被移除的命令,并且将被移除并被识别的命令顺序地返回到所述队列的末端;并且
基于识别的结果,通过从所述队列的前端移除所述排队的命令并将被移除的命令返回到所述队列的末端,来执行移除、组合和改变所述排队的命令的顺序的操作之中的一个或多个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180032238A KR20190110360A (ko) | 2018-03-20 | 2018-03-20 | 컨트롤러, 이를 포함하는 시스템 및 그 동작 방법 |
KR10-2018-0032238 | 2018-03-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110308864A true CN110308864A (zh) | 2019-10-08 |
Family
ID=67985236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811405958.3A Withdrawn CN110308864A (zh) | 2018-03-20 | 2018-11-23 | 控制器、具有控制器的系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11321011B2 (zh) |
KR (1) | KR20190110360A (zh) |
CN (1) | CN110308864A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210314653A1 (en) * | 2020-04-02 | 2021-10-07 | Rovi Guides, Inc. | Systems and methods for delayed pausing |
US11733918B2 (en) * | 2020-07-28 | 2023-08-22 | Samsung Electronics Co., Ltd. | Systems and methods for processing commands for storage devices |
US11789634B2 (en) | 2020-07-28 | 2023-10-17 | Samsung Electronics Co., Ltd. | Systems and methods for processing copy commands |
US11907575B2 (en) | 2021-02-08 | 2024-02-20 | Samsung Electronics Co., Ltd. | Memory controller and memory control method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553454B1 (en) * | 1999-07-23 | 2003-04-22 | Fujitsu Limited | Storage device and method of reordering commands from a command queue |
US20040184470A1 (en) * | 2003-03-18 | 2004-09-23 | Airspan Networks Inc. | System and method for data routing |
US20100306417A1 (en) * | 2009-05-27 | 2010-12-02 | Matthew Stephens | Transfer of Commands And Storage Data To A Data Storage Device |
CN102317928A (zh) * | 2009-01-09 | 2012-01-11 | 美光科技公司 | 修改命令 |
US20130262761A1 (en) * | 2012-03-29 | 2013-10-03 | Samsung Electronics Co., Ltd. | Memory device and method of operating the same |
US20150253992A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and control method |
CN105938418A (zh) * | 2015-03-06 | 2016-09-14 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
US20160291866A1 (en) * | 2015-03-31 | 2016-10-06 | Kabushiki Kaisha Toshiba | Command load balancing for nvme dual port operations |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5570332A (en) * | 1995-05-25 | 1996-10-29 | Seagate Technology, Inc. | Method for reducing rotational latency in a disc drive |
US6216178B1 (en) * | 1998-11-16 | 2001-04-10 | Infineon Technologies Ag | Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution |
JP4156985B2 (ja) * | 2003-06-30 | 2008-09-24 | 株式会社東芝 | 半導体記憶装置 |
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
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 |
US8321647B2 (en) | 2009-05-06 | 2012-11-27 | Apple Inc. | Multipage preparation commands for non-volatile memory systems |
TWI435215B (zh) * | 2009-08-26 | 2014-04-21 | Phison Electronics Corp | 下達讀取指令與資料讀取方法、控制器與儲存系統 |
KR101679251B1 (ko) | 2015-01-07 | 2016-11-24 | 윈본드 일렉트로닉스 코포레이션 | 플래시 메모리, 메모리 모듈, 프로그램 및 동작 방법 |
US10175889B2 (en) * | 2016-03-10 | 2019-01-08 | Toshiba Memory Corporation | Memory system capable of accessing memory cell arrays in parallel |
US10642536B2 (en) * | 2018-03-06 | 2020-05-05 | Western Digital Technologies, Inc. | Non-volatile storage system with host side command injection |
-
2018
- 2018-03-20 KR KR1020180032238A patent/KR20190110360A/ko unknown
- 2018-10-30 US US16/175,382 patent/US11321011B2/en active Active
- 2018-11-23 CN CN201811405958.3A patent/CN110308864A/zh not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553454B1 (en) * | 1999-07-23 | 2003-04-22 | Fujitsu Limited | Storage device and method of reordering commands from a command queue |
US20040184470A1 (en) * | 2003-03-18 | 2004-09-23 | Airspan Networks Inc. | System and method for data routing |
CN102317928A (zh) * | 2009-01-09 | 2012-01-11 | 美光科技公司 | 修改命令 |
US20100306417A1 (en) * | 2009-05-27 | 2010-12-02 | Matthew Stephens | Transfer of Commands And Storage Data To A Data Storage Device |
US20130262761A1 (en) * | 2012-03-29 | 2013-10-03 | Samsung Electronics Co., Ltd. | Memory device and method of operating the same |
US20150253992A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and control method |
CN105938418A (zh) * | 2015-03-06 | 2016-09-14 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
US20160291866A1 (en) * | 2015-03-31 | 2016-10-06 | Kabushiki Kaisha Toshiba | Command load balancing for nvme dual port operations |
Also Published As
Publication number | Publication date |
---|---|
US11321011B2 (en) | 2022-05-03 |
KR20190110360A (ko) | 2019-09-30 |
US20190294369A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110308864A (zh) | 控制器、具有控制器的系统及其操作方法 | |
US10496281B2 (en) | Data storage device, data processing system and method of operation | |
CN102640226B (zh) | 具有内部处理器的存储器及控制存储器存取的方法 | |
US8769318B2 (en) | Asynchronous management of access requests to control power consumption | |
US7843758B2 (en) | Multi-chip package flash memory device and method for reading status data therefrom | |
US8144515B2 (en) | Interleaved flash storage system and method | |
CN111694514A (zh) | 用于处理运算的存储器设备及操作该存储器设备的方法 | |
US20210133096A1 (en) | Memory system and operating method thereof | |
CN107102817B (zh) | 非易失性存储设备 | |
CN108701081A (zh) | 用于同时存取非易失性存储器的多个分区的设备和方法 | |
US10802750B2 (en) | Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module | |
CN108694018A (zh) | 数据存储装置及其操作方法 | |
US10838653B2 (en) | Electronic device and operating method thereof | |
US20150046639A1 (en) | System and method of page buffer operation for memory devices | |
CN106920575B (zh) | 数据存储装置及其操作方法 | |
CN109857679A (zh) | 存储器控制器、存储器系统以及存储器系统的操作方法 | |
CN105528299B (zh) | 读取命令排程方法以及使用该方法的装置 | |
CN109407967A (zh) | 存储器系统及其操作方法 | |
US10698819B2 (en) | Memory system and operating method thereof | |
CN108108261A (zh) | 数据存储装置及其操作方法 | |
CN113220220A (zh) | 控制器、控制器的操作方法及包括该控制器的存储装置 | |
CN110489056A (zh) | 控制器以及包括该控制器的存储器系统 | |
CN110286847A (zh) | 数据存储装置及其操作方法 | |
US20140047288A1 (en) | Storage interface apparatus for solid state drive tester | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191008 |