CN113220220B - 控制器、控制器的操作方法及包括该控制器的存储装置 - Google Patents
控制器、控制器的操作方法及包括该控制器的存储装置 Download PDFInfo
- Publication number
- CN113220220B CN113220220B CN202010888820.4A CN202010888820A CN113220220B CN 113220220 B CN113220220 B CN 113220220B CN 202010888820 A CN202010888820 A CN 202010888820A CN 113220220 B CN113220220 B CN 113220220B
- Authority
- CN
- China
- Prior art keywords
- command
- time
- queued
- write
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 42
- 230000015654 memory Effects 0.000 claims abstract description 130
- 238000012545 processing Methods 0.000 claims abstract description 93
- 230000008569 process Effects 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 238000013500 data storage Methods 0.000 description 36
- 239000000872 buffer Substances 0.000 description 25
- 239000010410 layer Substances 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 229910045601 alloy Inorganic materials 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 229910000679 solder Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 229910000314 transition metal oxide Inorganic materials 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种控制器,该控制器可以被配置为:控制非易失性存储器的操作;通过分析在第一单位时间期间在命令队列中排队的命令的模式来确定写入命令处理调度,在第一单位时间期间在命令队列中排队的命令包括第一写入命令、第一读取命令或两者;并且基于所确定的写入命令处理调度,处理在第一单位时间之后的第二单位时间期间在命令队列中排队的第二写入命令。
Description
相关申请的交叉引用
本申请要求于2020年2月3日向韩国知识产权局提交的申请号为10-2020-0012602的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体上涉及电子装置,更特别地,涉及一种控制器、该控制器的操作方法以及包括该控制器的存储装置。
背景技术
近来,计算机环境的范例改变为可以随时随地使用计算机***的普适计算。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用正在迅速增加。通常,这样的便携式电子装置采用使用存储器装置的数据存储装置。数据存储装置用于存储在便携式电子装置中使用的数据。
使用存储器装置的数据存储装置的优点在于,由于其不包括机械驱动单元而具有优异的稳定性和耐久性,并且具有非常快的信息访问速度和较小的功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置和固态驱动器(SSD)。
发明内容
实施例提供了一种能够提高读取性能的控制器、该控制器的操作方法以及包括该控制器的存储装置。
此外,实施例提供了一种能够提高数据的可靠性的控制器、该控制器的操作方法以及包括该控制器的存储装置。
在实施例中,一种控制器可以被配置为:控制非易失性存储器的操作;通过分析在第一单位时间期间在命令队列中排队的命令的模式来确定写入命令处理调度,在第一单位时间期间在命令队列中排队的命令包括第一写入命令、第一读取命令或两者;并且基于所确定的写入命令处理调度,处理在第一单位时间之后的第二单位时间期间在命令队列中排队的第二写入命令。
在实施例中,一种控制器的操作方法可以包括:分析在第一单位时间期间在命令队列中排队的命令的模式,在第一单位时间期间在命令队列中排队的命令包括第一写入命令、第一读取命令或两者;基于命令的模式确定写入命令处理调度;并且基于所确定的写入命令处理调度,处理在第一单位时间之后的第二单位时间期间在命令队列中排队的第二写入命令。
在实施例中,一种存储装置可以包括:非易失性存储器;以及控制器,被配置为响应于来自主机的请求来控制非易失性存储器的操作。该控制器可以被配置为:通过分析在第一单位时间期间在命令队列中排队的命令的模式来确定写入命令处理调度,在第一单位时间期间在命令队列中排队的命令包括第一写入命令、第一读取命令或两者;并且基于所确定的写入命令处理调度,处理在第一单位时间之后的第二单位时间期间在命令队列中排队的第二写入命令。
附图说明
图1示出根据实施例的存储装置。
图2示出根据实施例的图1的控制器。
图3示出根据实施例的图1的控制器和非易失性存储器。
图4示出根据实施例的图2的存储器。
图5示出根据实施例的图4的命令排队区域。
图6示出根据实施例的动态地改变命令处理调度的示例。
图7示出根据另一实施例的动态地改变命令处理调度的示例。
图8示出根据实施例的控制器的操作过程。
图9示出根据实施例的包括固态驱动器(SSD)的数据处理***。
图10示出图9所示的控制器。
图11示出根据实施例的包括数据存储设备的数据处理***。
图12示出根据实施例的包括数据存储设备的数据处理***。
图13示出根据实施例的包括数据存储设备的网络***。
图14示出根据实施例的包括在数据存储设备中的非易失性存储器装置。
具体实施方式
下面将参照附图描述各个实施例。
图1是示出根据实施例的存储装置10的配置的示图。
参照图1,根据本实施例的存储装置10可以存储由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV或车载信息娱乐***的主机20访问的数据。存储装置10可以称为存储器***。
根据联接到主机20的接口协议,存储装置10可以被配置为各种类型的存储装置中的任意一种。例如,存储装置10可以被配置为以下中的任意一种:固态驱动器(SSD),嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC型的多媒体卡(MMC),具有SD、迷你SD或微型SD型的安全数字(SD)卡,具有通用串行总线(USB)存储装置、通用闪存(UFS)装置或个人计算机存储卡国际协会(PCMCIA)卡型的存储装置,具有***组件互连(PCI)卡型的存储装置,具有高速PCI(PCI-e)卡型的存储装置,紧凑型闪存(CF)卡,智能媒体卡以及记忆棒。
存储装置10可以被制造为各种封装类型中的任意一种。例如,存储装置10可以被制造为以下中的任意一种:堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储装置10可以包括非易失性存储器100和控制器200。
非易失性存储器100可以用作存储装置10的数据存储介质。非易失性存储器100可以根据存储器单元被配置为诸如以下的各种类型的非易失性存储器中的任意一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)膜的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)以及使用过渡金属氧化物的电阻式随机存取存储器(ReRAM)。
非易失性存储器100可以包括具有多个存储器单元的存储器单元阵列,如图14所示,该多个存储器单元设置在多个位线和多个字线相交的相应区域中。存储器单元阵列可以包括多个存储块。多个存储块中的每一个可以包括多个页面。
例如,存储器单元阵列的存储器单元中的每一个可以是能够存储一位数据的单层单元(SLC)、能够存储2位数据的多层单元(MLC)、能够存储3位数据的三层单元(TLC)或者能够存储4位数据的四层单元(QLC)。存储器单元阵列可以包括SLC、MLC、TLC和QLC中的至少一种。例如,存储器单元阵列可以包括具有二维水平结构的存储器单元或具有三维垂直结构的存储器单元。
参照图3,非易失性存储器100可以包括多个存储器芯片。多个存储器芯片可以通过相应的通道CH1至CHm向控制器200传输信号(或数据),并从控制器200接收信号(或数据)。一个或多个存储器芯片1至n可以联接到多个通道CH1至CHm中的每一个。
控制器200可以控制存储装置10的全部操作。响应于从主机20接收到的请求,控制器200可以控制非易失性存储器100以执行与该请求相对应的操作。例如,控制器200可以基于从主机20接收到的请求来生成用于控制非易失性存储器100的操作的控制信号,并且可以将所生成的控制信号提供给非易失性存储器100。控制信号可以包括命令、地址和操作控制信号,但是实施例不限于此。
图2是示出图1的控制器200的示图。
控制器200可以包括第一内核(或主机接口层(HIL)内核)210、第二内核(或闪存转换层(FTL)内核)220、第三内核(或闪存接口层(FIL)内核)230、存储器240和命令搜索器250。尽管图2示出了具有单独的第一、第二和第三内核210、220和230的控制器以及单独的命令搜索器250,但是实施例不限于此。例如,在实施例中,第二内核220可以执行归属于第一内核210、第三内核230和/或命令搜索器250的一些或全部功能。
第一内核210可以被配置为根据主机20的协议在主机20和存储装置10之间接口连接。因此,第一内核210可以被称为协议内核或主机接口层(HIL)内核。例如,第一内核210可以通过以下中的任意一种与主机20通信:通用串行总线(USB)、通用闪存(UFS)、多媒体卡(MMC)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机***接口(SCSI)、串联SCSI(SAS)、***组件互连(PCI)和高速PCI(PCI-e)协议。
第一内核210可以包括微控制单元(MCU)和/或中央处理单元(CPU)。第一内核210可以解释从主机20接收到的请求,并且可以向第二内核220提供用于生成与所接收到的请求相对应的命令的请求信息。例如,请求信息可以包括操作类型、地址信息和数据大小信息,但是实施例不限于此。
此外,第一内核210可以在存储器240的写入缓冲器(未示出)中存储从主机20接收到的数据(例如,写入数据)。为此,控制器200可以进一步包括单独的数据传输块(未示出),用于将从主机20接收到的数据传输到存储器240的写入缓冲器。例如,响应于从第一内核210接收到的控制信号,数据传输块可以从主机20接收数据,并将所接收到的数据存储在存储器240的写入缓冲器中。
此外,第一内核210可以将存储器240的读取缓冲器(未示出)中存储的数据(例如,读取数据)传输到主机20。例如,响应于从第一内核210接收到的控制信号,数据传输块可以读取存储器240的读取缓冲器中存储的数据,并将所读取的数据传输到主机20。
第二内核220可以通过运行加载到存储器240的固件或软件来控制存储装置10的全部操作。第二内核220可以解释并运行被表示为诸如固件或软件的计算机代码的指令或算法。第二内核220可以被称为闪存转换层(FTL)内核。
第二内核220可以包括MCU和/或CPU。
第二内核220可以基于由第一内核210提供的请求信息来生成与从主机20接收到的请求相对应的命令。此外,第二内核220可以将所生成的命令在存储器240的命令排队区域243(图4所示)中排队。此外,第二内核220可以在无主机20干预的情况下生成与在存储装置10内执行的操作即后台操作相对应的命令,并且可以将所生成的命令在存储器240的命令排队区域243中排队。后台操作可以包括垃圾收集等,但是实施例不限于此。
第三内核230使在存储器240的命令排队区域243中排队的命令从命令排队区域243中出队,并且可以将出队的命令提供给非易失性存储器100。第三内核230可以被称为闪存接口层(FIL)内核。
第三内核230可以包括MCU和/或CPU。
第三内核230可以向非易失性存储器100提供存储器240的写入缓冲器中存储的写入数据,或者可以将从非易失性存储器100接收到的读取数据存储在存储器240的读取缓冲器中。为此,控制器200可以进一步包括单独的数据传输块(未示出),该数据传输块响应于从第三内核230接收到的控制信号,将存储器240的写入缓冲器中存储的写入数据传输到非易失性存储器100,或者将从非易失性存储器100接收到的读取数据传输到存储器240的读取缓冲器。
存储器240可以配置有随机存取存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM),但是实施例不特别地限于此。在图2中,已经将存储器240示出为包括在控制器200内,但是存储器240可以位于控制器200的外部。
存储器240可以物理联接和电联接到第一内核210、第二内核220、第三内核230和/或命令搜索器250。存储器240可以存储由第二内核220运行的固件。此外,存储器240可以存储运行固件所必需的数据,例如元数据。也就是说,存储器240可以用作第二内核220的工作存储器。
此外,存储器240可以临时存储待从主机20传输到非易失性存储器100的写入数据和待从非易失性存储器100传输到主机20的读取数据。也就是说,存储器240可以用作缓冲存储器。稍后参照图4描述存储器240的内部配置。
命令搜索器250可以监控新命令是否已经在存储器240的命令排队区域243中排队,并且当新命令在命令排队区域243中排队时,可以向第三内核230提供指示新命令已经排队的信号。命令搜索器250可以使用轮询技术来周期性地监控命令排队区域243,但是用于命令搜索器250监控命令排队区域243的技术不限于轮询技术。
当命令搜索器250提供信号时,第三内核230可以从存储器240的命令排队区域243提取新命令,并且可以将所提取的新命令提供给非易失性存储器100。
图4是示出图2的存储器240的示图。
参照图4,根据本实施例的存储器240可以包括第一区域241、第二区域242和第三区域243,但是实施例不限于此。例如,由第二内核220解释和运行的固件(FW)(或软件)可以存储在存储器240的第一区域241中。此外,可以将运行FW(或软件)所必需的元数据存储在存储器240的第二区域242中。此外,由第二内核220所生成的命令可以被存储在存储器240的第三区域243中。
例如,存储器240的第一区域241中存储的固件可以包括闪存转换层(FTL)。在本实施例中,固件和FTL可以用作指示相同元件的术语。FTL可以由第二内核220运行。第二内核220可以通过运行FTL来控制非易失性存储器100的固有操作,并且可以向主机20提供装置兼容性。通过运行FTL,主机20可以通过将存储装置10识别为诸如硬盘的常用存储装置来使用存储装置10。
FTL可以存储在非易失性存储器100的***区域(未示出)中。当存储装置10通电时,可以从非易失性存储器100的***区域读取FTL,并将其加载到存储器240的第一区域241上。在实施例中,FTL可以被加载到第二内核220的专用存储器(未示出)上,而不是被加载到存储器240的第一区域241中。
参照图4,在本实施例中,FW可以包括命令处理调度器245。但是,FW中包括的模块不限于命令处理调度器,并且可以包括各种模块,例如写入模块、读取模块、垃圾收集模块、损耗均衡模块、坏块管理模块、电源管理模块和映射模块。FW中包括的模块中的每一个可以利用用于执行特定操作(或功能)的一组源代码来配置。
在本实施例中,命令处理调度器245已被描述为用于执行特定操作(或功能)的一组源代码,但是实施例不限于此。可以使用硬件来实施命令处理调度器245。
命令处理调度器245可以基于在存储器240的命令排队区域243中排队的命令的模式来动态地改变写入命令和/或读取命令的处理调度。例如,命令处理调度器245可以分析与非易失性存储器100中包括的多个存储器芯片中的每一个相对应的命令排队模式,并且可以基于所分析的命令排队模式来动态地改变多个存储器芯片中的每一个的命令处理调度。
在本实施例中,命令排队模式可以包括:命令类型模式,指示在命令排队区域243中排队的命令的类型是否是混合的(例如,当在命令排队区域243中排队的命令的类型包括写入命令和读取命令两者时);以及排队时间模式,指示在命令排队区域243中将写入命令排队之后将读取命令排队的情况下,从写入命令排队的时间到读取命令排队的时间的时间量。命令类型模式可以包括:第一命令类型模式,其中写入命令和读取命令被混合并且在命令排队区域243中排队;以及第二命令类型模式,其中写入命令和读取命令不被混合并且在命令排队区域243中排队。
图5是示出图4的命令排队区域243的示图。
命令排队区域243可以包括多个命令队列CMDQ1至CMDQk。在本实施例中,命令队列CMDQ1至CMDQk的数量可以与非易失性存储器100中包括的存储器芯片的数量相同,但是实施例不限于此。也就是说,命令排队区域243可以包括分别与非易失性存储器100中包括的多个存储器芯片相对应的多个命令队列。
多个命令队列CMDQ1至CMDQk中的每一个可以包括普通命令被排队的普通命令队列NQ和高级命令被排队的高级命令队列HQ。在本实施例中,普通命令可以指示具有比高级命令低的优先级的命令。高级命令可以指示具有比普通命令更高的优先级的命令。
在本实施例中,普通命令可以包括从主机20接收到的主机写入命令Write_H CMD和擦除命令Erase CMD,用于后台操作的后台读取命令Read_B CMD和后台写入命令Write_BCMD等,然而实施例不限于此。此外,高级命令可以包括从主机20接收到的主机读取命令Read_H CMD,但是实施例不限于此。
通常,存储装置10的性能可以由对从主机20接收到的读取命令的响应速度来确定。第二内核220可以将从主机20接收到的主机读取命令排队在每个均具有较高优先级的命令被排队的高级命令队列HQ中,并且可以将剩余的命令排队在每个均具有较低优先级的命令被排队的普通命令队列NQ中。
例如,当主机读取命令在与包括在非易失性存储器100中的第一存储器芯片相对应的命令队列的高级命令队列中排队时,在第一存储器芯片中执行的操作(例如,写入操作)可以被暂停。在执行了与所排队的主机读取命令相对应的读取操作之后,可以恢复所暂停的操作(例如,写入操作)。写入操作可以包括:将待写入的数据从控制器200传输到非易失性存储器100的第一存储器芯片的数据传输操作;以及将数据存储在第一存储器芯片内的存储器单元中的写入执行操作。在实施例中,数据传输操作不能被暂停,并且仅写入执行操作可以被暂停。
因此,当主机读取命令在与第一存储器芯片相对应的命令队列的高级命令队列中排队时,如果对第一存储器芯片正在执行数据传输操作,则只有在完成该数据传输操作的执行之后,才能处理该主机读取命令。因此,对主机读取命令的响应速度可能被延迟。
此外,如果在写入执行操作期间暂停写入执行操作,则由于发生电荷从正在被执行写入操作的存储器单元泄漏而保持性降低,因此数据的可靠性可能降低。
在本实施例中,为了防止对主机读取命令的响应速度的延迟并且提高数据的可靠性,分析了与非易失性存储器100中包括的多个存储器芯片中的每一个相对应的命令排队模式。基于所分析的命令排队模式,动态地改变针对多个存储器芯片中的每一个的写入命令的处理调度。
命令处理调度器245可以根据预设的单位时间来周期性地分析命令队列CMDQ1至CMDQk中的每一个的命令排队模式。例如,命令处理调度器245可以在预设的单位时间期间监控在命令队列CMDQ1至CMDQk中的每一个中排队的命令,并且可以基于监控的结果针对命令队列CMDQ1至CMDQk中的每一个分析命令排队模式,即命令类型模式和排队时间模式。上面已经描述了命令类型模式和排队时间模式,因此这里省略对其的描述。
从存储装置10通电的时间到存储设备10断电的时间,可以包括多个单位时间。命令处理调度器245可以在每个单位时间分析命令队列CMDQ1至CMDQk中的每一个的命令排队模式,并且可以基于在当前单位时间期间所分析的命令排队模式来动态地改变在随后的单位时间期间排队的命令的处理调度。参照图6和图7对此进行详细描述。
图6示出根据实施例的命令处理调度器245动态地改变命令处理调度的示例。图6示出命令在一个命令队列中排队的示例。对于本领域技术人员将显而易见的是,该示例可以相同地应用于多个命令队列中的每一个。在图6中,“W1至W4”指示写入命令,“R1至R3”指示读取命令。在这种情况下,写入命令可以是从主机20接收到的主机写入命令和用于后台操作的后台写入命令中的一个。此外,读取命令可以是从主机20接收到的主机读取命令。
命令处理调度器245可以在第一单位时间期间监控命令是否在命令队列中排队。如图6所示,当第一写入命令W1在命令队列中排队时,因为不存在就在第一单位时间之前的单位时间,为了无延迟地处理所排队的第一写入命令W1,命令处理调度器245可以指示第三内核230以使第一写入命令W1从命令队列中出队,并将出队的第一写入命令W1提供给非易失性存储器100的相应的存储器芯片。也就是说,因为在第一单位时间期间没有可用于分析命令类型模式或排队时间模式的先前的单位时间,所以按到达顺序处理队列中的命令。
随后,当第一读取命令R1在命令队列中排队时,命令处理调度器245可以基于在第一写入命令W1排队之后的第一读取命令R1的排队来分析命令队列的命令类型模式。例如,命令处理调度器245可以确定在命令队列中排队的命令具有第一命令类型模式。如上所述,第一命令类型模式指示写入命令和读取命令被混合并排队的模式。在这种情况下,读取命令可以是与从主机20接收到的主机读取请求相对应的命令。
此外,命令处理调度器245可以基于在命令队列中排队的命令的第一命令类型模式,分析从第一写入命令W1被排队的时间至第一读命令R1被排队的时间的排队时间模式。在图6中,排队时间模式被指示为第一延迟时间TD1。在本实施例中,第一延迟时间TD1可以用作与排队时间模式相同的术语。
命令处理调度器245可以基于在第一单位时间期间的排队时间模式即第一延迟时间TD1,改变在第一单位时间之后的第二单位时间期间排队的写入命令的处理调度。
命令处理调度器245可以确定第一延迟时间TD1是否超过预设的临界延迟时间。在本实施例中,可以将临界延迟时间设置为处理写入命令所必需的时间,即数据传输时间和写入执行时间的总和,但是实施例不特别地限于此。在另一实施例中,临界延迟时间可以被设置为数据传输时间。
当第一单位时间的第一延迟时间TD1超过临界延迟时间时,在第二单位时间期间,命令处理调度器245可以指示第三内核230立即处理在命令队列中排队的第二写入命令W2;在这种情况下,如果在处理第二写入命令W2时发生读取命令,则在某些情况下,可以暂停第二写入命令W2同时处理该读取命令。当第一延迟时间TD1为临界延迟时间或更短时,在第二单位时间期间,命令处理调度器245可以在从第二写入命令W2在命令队列中排队的时间起经过与第一延迟时间TD1相对应的时间之后,指示第三内核230处理第二写入命令W2,并且当在第二写入命令W2在命令队列中排队的时间起的第一延迟时间TD1内第二读取命令R2在命令队列中排队时,命令处理调度器245可以指示第三内核230在第二写入命令W2之前处理第二读取命令R2。可以在第二读取命令R2的处理完成之后处理第二写入命令W2。
此外,命令处理调度器245可以监控在第二单位时间期间在命令队列中排队的命令。如图6所示,当在第二单位时间期间第二写入命令W2和第二读取命令R2在命令队列中依次排队时,命令处理调度器245可以分析排队时间模式,即从第二写入命令W2排队的时间到第二读取命令R2排队的时间的第二延迟时间TD2。命令处理调度器245可以基于第二延迟时间TD2来改变在第二单位时间之后的第三单位时间期间排队的写入命令的处理调度。
如图6所示,在第三单位时间期间第三写入命令W3在命令队列中排队之后,当第三读取命令R3没有在第二延迟时间TD2内排队时,命令处理调度器245可以在从第三写入命令W3排队的时间起经过与第二延迟时间TD2相对应的时间之后,指示第三内核230以处理第三写入命令W3。
此外,命令处理调度器245可以监控在第三单位时间期间在命令队列中排队的命令。如图6所示,当在第三单位时间期间第三写入命令W3和第三读取命令R3在命令队列中依次排队时,命令处理调度器245可以分析排队时间模式,即从第三写入命令W3被排队的时间到第三读取命令R3被排队的时间的第三延迟时间TD3。命令处理调度器245可以基于第三延迟时间TD3来改变在第三单位时间之后的第四单位时间期间排队的写入命令的处理调度。
如上所述,根据本实施例的命令处理调度器245可以基于紧接当前单位时间之前的单位时间期间在命令队列中排队的命令的排队模式,在当前单位时间期间在命令队列中排队的写入命令被排队后立即处理该写入命令,或者可以在将写入命令延迟延迟时间之后处理该写入命令,该延迟时间是基于在紧接当前单位时间之前的单位时间期间的排队模式确定的,或者可以在首先处理读取命令之后处理该写入命令。因此,由于从主机20接收到的读取请求被无延迟地处理,因此可以提高读取性能,并且由于防止了频繁地暂停写入操作,因此可以提高数据的可靠性。
图7是示出根据另一实施例的动态地改变命令处理调度的示例的示图。图7示出了多个写入命令和多个读取命令在一个单位时间期间混合并排队的示例。与上述图6的描述重复的本实施例的内容被省略,并且主要描述了不同之处。
参照图7,第一写入命令W1、第一读取命令R1、第二读取命令R2、第二写入命令W2、第三读取命令R3、第三写入命令W3、第四读取命令R4和第五读取命令R5可以在第一单位时间期间在命令队列中依次排队。命令处理调度器245可以分析从第一写入命令W1排队的时间到第一读取命令R1排队的时间的第一延迟时间TD1,从第二写入命令W2排队的时间到第三读取命令R3排队的时间的第二延迟时间TD2,以及从第三写入命令W3排队的时间到第四读取命令R4排队的时间的第三延迟时间TD3。也就是说,命令处理调度器245可以分析从每个写入命令的排队时间到每个写入命令的紧随其后的读取命令的排队时间的延迟时间。
命令处理调度器245可以计算第一延迟时间TD1、第二延迟时间TD2和第三延迟时间TD3的平均延迟时间TDa,并且可以基于所计算的平均延迟时间TDa来改变在第一单位时间之后的第二单位时间期间排队的写入命令的处理调度。
如上所述,当在一个单位时间期间将多个写入命令和多个读取命令混合并排队时,命令处理调度器245可以基于从多个写入命令被排队的时间到各个写入命令被排队之后的多个读取命令被排队的时间的各个时间量的平均值,立即处理在随后的单位时间期间排队的写入命令,或者可以在将写入命令延迟给定时间后处理该写入命令,或者可以在读取命令的处理完成之后处理写入命令。
图8是示出根据实施例的控制器的操作过程800的流程图。在参照图8描述根据本实施例的控制器的操作过程800时,可以参照图1至图7中的至少一个。
在步骤S810中,存储装置10的控制器200可以分析在第一单位时间期间在命令队列243中排队的命令的模式。例如,控制器200可以通过确定在命令队列243中排队的命令的类型是否是混合的,并且测量从在命令队列243中排队写入命令的时间到在将写入命令排队后将读取命令排队的时间的时间量,来分析命令的模式。
在步骤S820中,控制器200可以基于在步骤S810分析的命令的模式来确定写入命令处理调度。例如,控制器200可以确定测量时间是否是预设的临界时间或更短,并且可以基于确定结果来确定在第二单位时间期间在命令队列中排队的写入命令的处理时间。
在步骤S830中,控制器200可以基于在步骤S820中确定的写入命令处理调度,处理在第一单位时间之后的第二单位时间期间在命令队列243中排队的写入命令。
例如,当所测量的时间是临界时间或更短时,在经过所测量的时间之后,控制器200可以处理在第二单位时间期间在命令队列243中排队的写入命令。在这种情况下,当在所测量的时间内在命令队列243中排队读取命令时,控制器200可以在读取命令的处理完成之后处理写入命令。在实施例中,当所测量的时间是临界时间或更短并且写入命令被排队到仍然保持其他先前排队的命令的命令队列243中时,控制器200可以在该写入命令到达命令队列243的头部并且经过了所测量的时间之后处理该写入命令。
此外,当所测量的时间超过临界时间时,控制器200可以立即处理而不延迟在第二单位时间期间在命令队列243中排队的写入命令。在实施例中,当所测量的时间超过临界时间并且写入命令被排队到仍然保持其他先前排队的命令的命令队列243中时,控制器200可以在该写入命令到达命令队列243的头部之后立即处理该写入命令。
根据本实施例,基于就在当前单位时间之前的单位时间期间在命令队列中排队的命令的排队模式,在排队后立即处理在当前单位时间期间在命令队列中排队的写入命令,或者在延迟了延迟时间之后处理写入命令,或者在首先处理读取命令之后处理写入命令。因此,由于从主机接收到的读取请求被无延迟地处理,因此可以提高读取性能,并且由于防止了频繁地暂停写入操作,因此可以提高数据的可靠性。
图9示出了根据实施例的包括固态驱动器(SSD)的数据处理***2000的示图。数据处理***2000可以包括主机设备2100以及SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250以及电源连接器2260。
控制器2210可以控制SSD 2220的全部操作。控制器2210可以执行被描述为由图1至图3的控制器200执行的功能。
缓冲存储器装置2220可以临时存储待被存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可以临时存储从非易失性存储器装置2231至223n读取的数据。被临时存储在缓冲存储器装置2220中的数据可以根据控制器2210的控制被传送到主机设备2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以通过多个通道CH1至CHn与控制器2210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到一个通道的非易失性存储器装置可以联接到相同的信号总线和相同的数据总线。
电源2240可以将通过电源连接器2260输入的电力PWR提供到SSD2200的内部。电源2240可包括辅助电源2241。辅助电源2241可以供应电力,使得即使在发生突然断电时SSD2200也被正常终止。辅助电源2241可以包括能够对电源PWR充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机设备2100和SSD 2200之间的接口连接方法,信号连接器2250可以由各种类型的连接器来配置。
图10示出了图9的控制器2210。参照图10,控制器2210可以包括主机接口单元2211、控制单元2212、随机存取存储器(RAM)2213、错误校正码(ECC)单元2214和存储器接口2215。
主机接口单元2211可以根据主机设备2100的协议执行主机设备2100和SSD 2200之间的接口连接。例如,主机接口单元2211可以通过安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪存(UFS)协议中的任意一种与主机设备2100通信。主机接口单元2211可以执行主机设备2100将SSD 2200识别为例如硬盘驱动器HDD的通用数据存储设备的磁盘仿真功能。
控制单元2212可以分析和处理从主机设备2100输入的信号SGL。控制单元2212可以根据用于驱动SDD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可以用作用于驱动固件或软件的工作存储器。
ECC单元2214可以生成用于待被传送到非易失性存储器装置2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可以与该数据一起存储在非易失性存储器装置2231至223n中。ECC单元2214可以基于奇偶校验数据检测从非易失性存储器装置2231至223n读取的数据的错误。当检测到的错误在可校正范围内时,ECC单元2214可以校正所检测到的错误。
存储器接口单元2215可以根据控制单元2212的控制向非易失性存储器装置2231至223n提供诸如命令和地址的控制信号。存储器接口单元2215可以根据控制单元2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口单元2215可以将缓冲存储器装置2220中存储的数据提供给非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供给缓冲存储器装置2220。
图11示出了根据实施例的包括数据存储设备3200的数据处理***3000。数据处理***3000可以包括主机设备3100和数据存储设备3200。
主机设备3100可以以诸如印刷电路板(PCB)的板形式配置。尽管未在图11中示出,但是主机设备3100可以包括被配置为执行主机设备3100的功能的内部功能块。
主机设备3100可以包括连接端子3110,诸如插座、插槽或连接器。数据存储设备3200可以安装在连接端子3110上。
数据存储设备3200可以以诸如PCB的板形式配置。数据存储设备3200可以指代存储器模块或存储卡。数据存储设备3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231至3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可以控制数据存储设备3200的整体操作。控制器3210可以被配置为具有与图10所示的控制器2210相同的配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。临时存储在缓冲存储器装置3220中的数据可根据控制器3210的控制被传送到主机设备3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作数据存储设备3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供到数据存储设备3200的内部。PMIC 3240可以根据控制器3210的控制来管理数据存储设备3200的电力。
连接端子3250可以联接到主机设备3100的连接端子3110。可以通过连接端子3250在主机设备3100和数据存储设备3200之间传输诸如命令、地址以及数据的信号和电力。可以根据主机设备3100和数据存储设备3200之间的接口连接方式以各种形式配置连接端子3250。连接端子3250可以布置在数据存储设备3200的任意一侧。
图12示出了根据实施例的包括数据存储设备4200的数据处理***4000。数据处理***4000可以包括主机设备4100和数据存储设备4200。
主机设备4100可以以诸如PCB的板形式配置。尽管未在图12中示出,但是主机设备4100可以包括被配置为执行主机设备4100的功能的内部功能块。
数据存储设备4200可以以表面安装封装形式配置。数据存储设备4200可以通过焊球4250安装在主机设备4100上。数据存储设备4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制数据存储设备4200的全部操作。控制器4210可以被配置为具有与图10所示的控制器2210相同的配置。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以通过控制器4210的控制传输到主机设备4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储设备4200的存储介质。
图13示出了根据实施例的包括数据存储设备的网络***5000。参照图13,网络***5000可以包括通过网络5500联接的服务器***5300和多个客户端***5410到5430。
服务器***5300可以响应于多个客户端***5410至5430的请求来服务数据。例如,服务器***5300可以存储从多个客户端***5410至5430提供的数据。在另一示例中,服务器***5300可以向多个客户端***5410至5430提供数据。
服务器***5300可以包括主机设备5100和数据存储设备5200。数据存储设备5200可以由图1的存储装置10、图9的SSD 2200、图11的数据存储设备3200或图12的数据存储设备4200来配置。
图14示出根据实施例的数据存储设备中包括的非易失性存储器装置。参照图14,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域中的存储器单元MC。
行解码器120可以通过字线WL1到WLm联接到存储器单元阵列110。行解码器120可以通过控制逻辑160的控制进行操作。行解码器120可以对提供自外部设备(未示出)的地址进行解码。行解码器120可以基于解码结果选择并驱动字线WL1至WLm。例如,行解码器120可以将由电压生成器150提供的字线电压提供给字线WL1至WLm。
数据读取/写入块130可以通过位线BL1至BLn联接到存储器单元阵列110。数据读取/写入块130可以包括对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制进行操作。数据读取/写入块130可以根据操作模式用作写入驱动器或读出放大器。例如,数据读取/写入块130可以作为写入驱动器进行操作,该写入驱动器被配置为在写入操作中将从外部设备提供的数据存储在存储器单元阵列110中。在另一示例中,数据读取/写入块130可以作为读出放大器进行操作,该读出放大器被配置为在读取操作中从存储器单元阵列110读取数据。
列解码器140可以通过控制逻辑160的控制来操作。列解码器140可以对从外部设备(未示出)提供的地址进行解码。列解码器140可以基于解码结果联接对应于位线BL1至BLn的数据读取/写入块130的读取/写入电路RW1至RWn和数据输入/输出(I/O)线(或数据I/O缓冲器)。
电压生成器150可以生成用于非易失性存储器装置100的内部操作的电压。通过电压生成器150生成的电压可施加到存储器单元阵列110的存储器单元。例如,在编程操作中生成的编程电压可以施加到待执行编程操作的存储器单元的字线。在另一示例中,可以将擦除操作中生成的擦除电压施加到待执行擦除操作的存储器单元的阱区。在另一示例中,可以将读取操作中生成的读取电压施加到待执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部设备提供的控制信号来控制非易失性存储器装置100的全部操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,例如非易失性存储器装置100的读取操作、写入操作、擦除操作。
虽然上面已经描述了各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅作为示例。因此,本文所描述的存储器控制器、存储设备和操作方法不应基于所描述的实施例而受到限制。
Claims (25)
1.一种控制器,控制非易失性存储器的操作,
其中所述控制器:
通过分析在第一单位时间期间在命令队列中排队的命令的模式来确定写入命令处理调度,在所述第一单位时间期间在所述命令队列中排队的所述命令包括第一写入命令、第一读取命令或两者,并且
基于所确定的写入命令处理调度,处理在所述第一单位时间之后的第二单位时间期间在所述命令队列中排队的第二写入命令,
所述命令的模式包括:命令类型模式,指示在所述命令队列中排队的命令的类型是否已混合;以及排队时间模式,指示从第一命令排队的时间到不同于所述第一命令的类型的第二命令排队的时间的时间量。
2.根据权利要求1所述的控制器,其中所述控制器基于在所述命令队列中排队的命令的类型是否已混合,以及从所述第一写入命令在所述命令队列中排队的时间到所述第一读取命令在所述第一写入命令排队之后排队的时间的时间量,来分析所述命令的模式。
3.根据权利要求2所述的控制器,其中所述控制器:
确定所述时间量是否为临界时间或更短,并且
当所述时间量为临界时间或更短时,在从所述第二写入命令排队的时间起经过所述时间量之后,处理所述第二写入命令。
4.根据权利要求3所述的控制器,其中当在所述第二写入命令在所述命令队列中排队之后,第二读取命令在所述时间量之内在所述命令队列中排队时,所述控制器在所述第二单位时间期间,在首先处理在所述命令队列中排队的所述第二读取命令之后,处理所述第二写入命令。
5.根据权利要求3所述的控制器,其中所述控制器在所述时间量超过所述临界时间时立即处理所述第二写入命令。
6.根据权利要求3所述的控制器,其中所述临界时间对应于处理所述第二写入命令所必需的时间。
7.根据权利要求3所述的控制器,其中所述第二写入命令的处理包括:
数据传输操作,将与所述第二写入命令相对应的写入数据传输到所述非易失性存储器;以及
写入执行操作,将所述写入数据存储在与所述第二写入命令相对应的所述非易失性存储器的区域中。
8.根据权利要求7所述的控制器,其中所述临界时间对应于所述数据传输操作所必需的时间量。
9.根据权利要求7所述的控制器,其中所述临界时间对应于所述数据传输操作所必需的第一时间量和所述写入执行操作所必需的第二时间量之和。
10.根据权利要求2所述的控制器,其中:
所述第一写入命令包括响应于来自主机的写入请求而生成的主机写入命令或由所述控制器在没有所述主机干预的情况下生成的后台写入命令;并且
所述第一读取命令包括响应于来自所述主机的读取请求而生成的主机读取命令。
11.一种控制器的操作方法,所述控制器控制非易失性存储器的操作,所述操作方法包括:
分析在第一单位时间期间在命令队列中排队的命令的模式,在所述第一单位时间期间在所述命令队列中排队的所述命令包括第一写入命令、第一读取命令或两者;
基于所述命令的模式确定写入命令处理调度;并且
基于所确定的写入命令处理调度,处理在所述第一单位时间之后的第二单位时间期间在所述命令队列中排队的第二写入命令,
所述命令的模式包括:命令类型模式,指示在所述命令队列中排队的命令的类型是否已混合;以及排队时间模式,指示从第一命令排队的时间到不同于所述第一命令的类型的第二命令排队的时间的时间量。
12.根据权利要求11所述的操作方法,其中分析所述命令的模式包括:
确定在所述命令队列中排队的命令的类型是否已经混合;并且
测量从所述第一写入命令在所述命令队列中排队的时间到所述第一读取命令在所述第一写入命令排队之后在所述命令队列中排队的时间的时间量。
13.根据权利要求12所述的操作方法,其中确定所述写入命令处理调度包括:
确定所测量的时间量是否为临界时间或更短;并且
基于确定的结果来确定所述第二写入命令的处理时间。
14.根据权利要求13所述的操作方法,其中基于所述写入命令处理调度处理所述第二写入命令包括:当所测量的时间量为所述临界时间或更短时,在从所述第二写入命令排队的时间起经过所测量的时间量之后,处理所述第二写入命令。
15.根据权利要求14所述的操作方法,进一步包括:当在所述第二写入命令在所述命令队列中排队之后的所测量的时间量内,第二读取命令在所述命令队列中排队时,在完全处理所述第二读取命令之后,处理所述第二写入命令。
16.根据权利要求13所述的操作方法,其中基于所述写入命令处理调度处理所述第二写入命令包括:当所测量的时间量超过所述临界时间时,立即处理所述第二写入命令。
17.一种存储装置,包括:
非易失性存储器;以及
控制器,响应于来自主机的请求来控制非易失性存储器的操作,
其中所述控制器:
通过分析在第一单位时间期间在命令排队区域中排队的命令的模式来确定写入命令处理调度,在所述第一单位时间期间在所述命令排队区域中排队的命令包括第一写入命令、第一读取命令或两者,并且
基于所确定的写入命令处理调度,处理在所述第一单位时间之后的第二单位时间期间在所述命令排队区域中排队的第二写入命令,
所述命令的模式包括:命令类型模式,指示在所述命令排队区域中排队的命令的类型是否已混合;以及排队时间模式,指示从第一命令排队的时间到不同于所述第一命令的类型的第二命令排队的时间的时间量。
18.根据权利要求17所述的存储装置,其中:
所述非易失性存储器包括多个存储器芯片,并且
所述命令排队区域包括分别与所述多个存储器芯片相对应的多个命令队列。
19.根据权利要求18所述的存储装置,其中所述控制器通过分析在所述第一单位时间期间在所述多个命令队列的每一个中排队的命令的模式,来确定所述多个存储器芯片中的每一个的写入命令处理调度。
20.根据权利要求18所述的存储装置,其中所述多个命令队列中的每一个包括:
普通命令队列,其中排队具有第一优先级的命令,以及
高级命令队列,其中排队具有高于所述第一优先级的第二优先级的命令。
21.根据权利要求20所述的存储装置,其中:
所述普通命令队列将与从所述主机接收到的写入请求相对应的主机写入命令、以及各自与在没有所述主机干预的情况下在所述存储装置内执行的后台操作相关的后台写入命令和后台读取命令进行排队,并且
所述高级命令队列将与从所述主机接收到的读取请求相对应的主机读取命令进行排队。
22.根据权利要求21所述的存储装置,其中所述控制器:基于在所述命令队列中是否混合并排队了一种或多种类型的命令以及从所述主机写入命令或所述后台写入命令在所述命令队列的所述普通命令队列中排队的时间到所述主机读取命令在所述主机写入命令或所述后台写入命令排队之后在所述命令队列的所述高级命令队列中排队的时间的时间量,针对所述多个命令队列中的每一个分析所述命令各自的模式。
23.根据权利要求22所述的存储装置,其中所述控制器:
确定所述多个命令队列中的第一命令队列的所述时间量是否为临界时间或更短,所述第一命令队列是所述第二写入命令被排队的命令队列,并且
当所述第一命令队列的所述时间量为所述临界时间或更短时,在经过所述第一命令队列的所述时间量后处理所述第二写入命令。
24.根据权利要求23所述的存储装置,其中所述控制器:当在所述第二写入命令被排队之后的所述第一命令队列的所述时间量内,第二读取命令被排队到所述第一命令队列中时,在首先处理所述第二读取命令之后,处理所述第二写入命令。
25.根据权利要求23所述的存储装置,其中所述控制器在所述第一命令队列的所述时间量超过所述临界时间时,立即处理所述第二写入命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200012602A KR20210098717A (ko) | 2020-02-03 | 2020-02-03 | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 |
KR10-2020-0012602 | 2020-02-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220220A CN113220220A (zh) | 2021-08-06 |
CN113220220B true CN113220220B (zh) | 2024-04-12 |
Family
ID=76853906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010888820.4A Active CN113220220B (zh) | 2020-02-03 | 2020-08-28 | 控制器、控制器的操作方法及包括该控制器的存储装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11288014B2 (zh) |
JP (1) | JP2021125248A (zh) |
KR (1) | KR20210098717A (zh) |
CN (1) | CN113220220B (zh) |
DE (1) | DE102020211544A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220004337A1 (en) * | 2020-07-06 | 2022-01-06 | Micron Technology, Inc. | Command prioritization in a command queue |
US11693596B2 (en) * | 2020-08-13 | 2023-07-04 | Seagate Technology Llc | Pre-emptive storage strategies to reduce host command collisions |
KR20220049842A (ko) * | 2020-10-15 | 2022-04-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11768629B2 (en) * | 2021-04-28 | 2023-09-26 | Micron Technology, Inc. | Techniques for memory system configuration using queue refill time |
CN117609152A (zh) * | 2023-10-27 | 2024-02-27 | 广州致远仪器有限公司 | 一种数据回读方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958907A (zh) * | 2017-05-19 | 2018-12-07 | 西部数据技术公司 | 用于数据存储***的上下文感知动态命令调度 |
CN109992201A (zh) * | 2018-01-03 | 2019-07-09 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0177777B1 (ko) | 1995-07-26 | 1999-04-15 | 김광호 | 반도체 메모리 장치의 입출력 드라이버 |
US6687765B2 (en) * | 2001-01-16 | 2004-02-03 | International Business Machines Corporation | System, method, and computer program for explicitly tunable I/O device controller |
US7155562B2 (en) | 2003-05-08 | 2006-12-26 | Micron Technology, Inc. | Method for reading while writing to a single partition flash memory |
US7996599B2 (en) * | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US8996782B2 (en) * | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
US9977487B2 (en) * | 2015-09-22 | 2018-05-22 | Samsung Electronics Co., Ltd. | Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives |
KR20180050862A (ko) | 2016-11-07 | 2018-05-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10528268B2 (en) * | 2017-09-12 | 2020-01-07 | Toshiba Memory Corporation | System and method for channel time management in solid state memory drives |
KR20200012602A (ko) | 2018-07-27 | 2020-02-05 | 주식회사 한빛구조이엔지 | 개량된 매립형 흙막이 띠장 프리스트레스 공법 |
-
2020
- 2020-02-03 KR KR1020200012602A patent/KR20210098717A/ko not_active Application Discontinuation
- 2020-07-07 US US16/922,790 patent/US11288014B2/en active Active
- 2020-08-28 CN CN202010888820.4A patent/CN113220220B/zh active Active
- 2020-09-15 DE DE102020211544.3A patent/DE102020211544A1/de active Pending
- 2020-12-23 JP JP2020213090A patent/JP2021125248A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958907A (zh) * | 2017-05-19 | 2018-12-07 | 西部数据技术公司 | 用于数据存储***的上下文感知动态命令调度 |
CN109992201A (zh) * | 2018-01-03 | 2019-07-09 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11288014B2 (en) | 2022-03-29 |
US20210240391A1 (en) | 2021-08-05 |
CN113220220A (zh) | 2021-08-06 |
KR20210098717A (ko) | 2021-08-11 |
DE102020211544A1 (de) | 2021-08-05 |
JP2021125248A (ja) | 2021-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220220B (zh) | 控制器、控制器的操作方法及包括该控制器的存储装置 | |
US10878924B2 (en) | Data storage device intergrating host read commands and method of operating the same | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
CN111916140B (zh) | 控制器及其操作方法以及包括控制器的存储器*** | |
CN111414313B (zh) | 数据存储装置及数据存储装置的操作方法 | |
KR20170099618A (ko) | 데이터 저장 장치 | |
KR102592796B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11526439B2 (en) | Storage device and operating method thereof | |
US20200310956A1 (en) | Data storage device and operating method thereof | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
US11748025B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN112988045A (zh) | 数据存储装置及其操作方法 | |
KR102469098B1 (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치 | |
US11409473B2 (en) | Data storage device and operating method thereof | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
US11194512B2 (en) | Data storage device which selectively performs a cache read or a normal read operation depending on work load and operating method thereof | |
CN114385070A (zh) | 主机、数据存储装置、数据处理***以及数据处理方法 | |
CN111324302B (zh) | 数据存储装置及其操作方法 | |
US11314461B2 (en) | Data storage device and operating method of checking success of garbage collection operation | |
US11450394B2 (en) | Controller and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |