CN109815172A - 设备控制器以及包括其的储存设备 - Google Patents
设备控制器以及包括其的储存设备 Download PDFInfo
- Publication number
- CN109815172A CN109815172A CN201811235057.4A CN201811235057A CN109815172A CN 109815172 A CN109815172 A CN 109815172A CN 201811235057 A CN201811235057 A CN 201811235057A CN 109815172 A CN109815172 A CN 109815172A
- Authority
- CN
- China
- Prior art keywords
- data
- access
- memory
- controller
- data store
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 98
- 230000015654 memory Effects 0.000 claims abstract description 213
- 230000008707 rearrangement Effects 0.000 claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000000605 extraction Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 5
- VHYFNPMBLIVWCW-UHFFFAOYSA-N 4-Dimethylaminopyridine Chemical compound CN(C)C1=CC=NC=C1 VHYFNPMBLIVWCW-UHFFFAOYSA-N 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 229960000549 4-dimethylaminophenol Drugs 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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
- G06F13/1673—Details of memory controller using buffers
-
- 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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering 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/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
- 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)
- Memory System (AREA)
Abstract
包括在储存设备中的设备控制器包括连接到主机存储器的主机控制器;连接到多个非易失性存储器设备的存储器控制器;协议控制器,被配置为控制主机控制器和多个非易失性存储器设备之间的数据传输,并且通过主机控制器对主机存储器的数据区域进行数据存储器访问和对主机存储器的非数据存储器访问进行非数据存储器访问;以及调度器,被配置为重新排序数据存储器访问和非数据存储器访问,使得在对数据块的数据存储器访问完成之后执行对非数据区域的非数据存储器访问,该数据块是被物理区域页面(PRP)分配在数据区域内的连续数据。
Description
相关申请的交叉引用
该美国非临时申请在35U.S.C§119下要求于2017年11月20日在韩国知识产权局(KIPO)提交的韩国专利申请第10-2017-0155116号的优先权,其公开内容通过引用整体并入本文。
技术领域
本发明构思的示例性实施例涉及储存设备,并且更具体地涉及调度对主机存储器的存储器访问的设备控制器,以及包括设备控制器的储存设备。
背景技术
传统的储存设备(诸如串行高级技术附件(serial advanced technologyattachment,SATA)或串行连接的小型计算机***接口(serial-attached small computersystem interface,SAS)固态驱动器(solid state drive,SSD))经由主机总线适配器(host bus adapter,HBA)连接到主机,以便通过HBA接收命令和数据。最近,已经开发出非易失性存储器快速(nonvolatile memory express,NVMe)接口作为对于SSD的更合适的接口。采用NVMe接口的NVMe SSD可以被直接连接到主机总线。因此主机直接访问NVMe SSD。然而,NVMe SSD以导致低于期望的命中率和吞吐效率的方式访问存储器。
发明内容
本发明构思的至少一个示例性实施例提供了一种设备控制器,其调度对主机存储器的存储器访问。
本发明构思的至少一个示例性实施例提供了一种储存设备,包括:设备控制器,其调度对主机存储器的存储器访问。
根据本发明构思的示例性实施例,包括在储存设备中的设备控制器包括:主机控制器,其连接到主机存储器,并被配置为与主机存储器通信;存储器控制器,其连接到多个非易失性存储器设备,并被配置为与多个非易失性存储器设备通信;协议控制器,被配置为控制主机控制器和多个非易失性存储器设备之间的数据传输,并且通过主机控制器执行对主机存储器的数据区域的数据存储器访问以及对主机存储器的非数据区域的非数据存储器;以及调度器,配置为重新排序数据存储器访问和非数据存储器访问,使得在对数据块的数据存储器访问完成之后执行对非数据区域的非数据存储器访问,该数据块是由物理区域页面(physical region page,PRP)在数据区域内分配的连续数据。
根据本发明构思的示例性实施例,包括在储存设备中的设备控制器包括主机控制器,其连接到主机存储器,并被配置为与主机存储器通信;存储器控制器,其连接到多个非易失性存储器设备,并被配置为与多个非易失性存储器设备通信;协议控制器,被配置为控制主机控制器和多个非易失性存储器设备之间的数据传输,并通过主机控制器执行对主机存储器的数据区域的数据存储器访问以及对主机存储器的非数据区域的非数据存储器访问;以及调度器,其被配置为根据未完成命令的数量以及多个非易失性存储器设备的吞吐效率来选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
根据本发明构思的示例性实施例,储存设备包括多个非易失性存储器设备,以及被配置为控制多个非易失性存储器设备的设备控制器。设备控制器包括:主机控制器,其连接到主机存储器,并被配置为与主机存储器通信;存储器控制器,其连接到多个非易失性存储器设备,并被配置为与多个非易失性存储器设备通信;协议控制器,被配置控制主机控制器和多个非易失性存储器设备之间的数据传输,并通过主机控制器执行对主机存储器的数据区域的数据存储器访问和对主机存储器的非数据区域的非数据存储器访问;以及调度器,其被配置为重新排序数据存储器访问和非数据存储器访问,使得在对数据块的数据存储器访问完成之后,执行对非数据区域的非数据存储器访问,该数据块是由物理区域页面(PRP)在数据区域内分配的连续数据。
根据本发明构思的示例性实施例,储存设备包括设备控制器和多个非易失性存储器设备。设备控制器被配置为执行以下操作之一:i)在设备控制器完成访问主机存储器的数据区域中的数据块之前访问主机设备的主机存储器的非数据区域,以及ii)根据条件,在设备控制器访问数据块时访问非数据区域。数据块是由物理页面区域(PRP)在数据区域内分配的连续数据。执行对数据块的访问作为在非易失性存储器设备之一上执行第一命令的一部分。
如上所述,根据本发明构思的至少一个实施例的设备控制器和储存设备重新排序数据存储器访问和非数据存储器访问,使得在对主机存储器的数据区域内的数据块的数据存储器访问完成之后执行对主机存储器的非数据区域的非数据存储器访问,从而提高主机存储器的行缓冲器的命中率。
此外,根据本发明构思的至少一个实施例的设备控制器和储存设备根据未完成命令的数量和/或非易失性存储器件的吞吐效率来选择性地执行对数据存储器访问和非数据存储器访问的重新排序,从而提高了主机存储器的行缓冲器的命中率,同时保持了储存设备的吞吐效率。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的示例性实施例。
图1是示出根据本发明构思的示例性实施例的包括储存设备的计算***的框图。
图2是用于描述根据本发明构思的示例性实施例的包括储存设备的计算***中的命令处理的示例的图。
图3是示出根据本发明构思的示例性实施例的储存设备的设备控制器的框图。
图4是示出根据本发明构思的示例性实施例的设备控制器中包括的调度器的框图。
图5是用于描述根据示例实施例的设备控制器重新排序主机存储器访问的示例的图。
图6是示出根据本发明构思的示例性实施例的储存设备的设备控制器的框图。
图7是根据本发明构思的示例性实施例的设备控制器中包括的调度器的状态图。
图8是示出根据本发明构思的示例性实施例的储存设备的设备控制器的框图。
具体实施方式
图1是示出根据本发明构思的示例性实施例的包括储存设备的计算***的框图。图2是用于描述根据本发明构思的示例性实施例的包括储存设备的计算***中的命令处理的示例的图。
参照图1,计算***100包括生成数据访问(例如,读取和写入)请求的主机110(例如,主机设备),以及响应于数据读取和写入请求执行数据读取和写入操作的储存设备200。数据读取请求是来自主机110的从储存设备200读取数据的请求(例如,读取命令),并且数据写入请求(例如,写入命令)是来自主机110的将数据写入到储存设备200的请求。在一些示例实施例中,计算***100可以是任何电子设备,诸如个人计算机(personal computer,PC)、膝上型计算机、服务器计算机、工作站、蜂窝电话、智能电话、平板计算机、MP3播放器、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portablemultimedia player,PMP)、数字电视机(television,TV)、数码相机或便携式游戏机。
主机110包括主机处理器120和主机存储器130。主机处理器120可以控制主机110或计算***100的总体操作。在示例性实施例中,主机处理器120是中央处理单元(centralprocessing unit,CPU)、微处理器或应用处理器(application processor,AP)。主机处理器120(或由主机处理器120执行的主机软件)可以将请求储存设备200的数据读取和写入操作的命令写入主机存储器130(例如,主机存储器130的非数据区域160)。例如,主机处理器120可以生成写入命令以将数据写入储存设备200,生成读取命令以从储存设备读取数据,以及将读取和/或写入命令存储在非数据区域160中。
主机存储器130可以是计算***100的***存储器,并且可以存储由主机处理器120运行和处理的指令和数据。在一些示例实施例中,主机存储器130可以用(但是不限于)诸如静态随机存取存储器(static random access memory,SRAM)设备或动态随机存取存储器(dynamic random access memory,DRAM)设备的易失性存储器设备。主机存储器130包括存储器单元阵列140和行缓冲器170,存储器单元阵列140包括以矩阵形式(例如,行和列)布置的多个存储器单元,行缓冲器170临时存储从存储器单元阵列140读取的数据或写入到存储器单元阵列140的数据。例如,行缓冲器170可以存储其中一行的数据。存储器单元阵列140的一部分被用作对于储存设备200的数据区域150,并且存储器单元阵列140的另一部分被用作储存设备200的非数据区域160。在示例性实施例中,数据区域150是在主机存储器130内分配的用于存储从储存设备200读取的数据(例如,用户数据)或者存储要被写入储存设备200的数据(例如,用户数据)的区域。在该实施例中,非数据区域160是在主机存储器130内分配的用于存储用于储存设备200的控制信息的另一区域。在一些示例实施例中,非数据区域160可以包括但不限于存储由储存设备200执行的一个或多个命令的提交队列(submission queue,SQ)区域、存储在数据区域150内分配的PRP或数据块的地址信息的物理区域页面(PRP)区域、以及存储指示命令的执行是否完成的完成信息的队列(completionqueue,CQ)区域。SQ和CQ中的每一个可以是环形缓冲器,一个或多个SQ以及一个CQ可以形成一个集合或一对,并且一对或多对SQ和CQ可以被存储在非数据区域160中。SQ区域包括存储将在未来时间执行的命令的队列(例如,命令队列)。在示例性实施例中,数据块是由一个PRP在数据区域内连续分配的数据或数据单元(或数据存储器区域)。例如,数据块是存储在数据区域150的连续位置中的数据。数据块可以被用作在其中存储要从储存设备200读取的数据(例如,用户数据)的区域,或者可以包含要被写入储存设备200的数据(例如,用户数据)。在一个示例中,每个数据块具有大约4KB的大小,但不限于此。在示例性实施例中,非数据区域160还包括由储存设备200使用的主机存储器缓冲器(host memory buffer,HMB)区域。
储存设备200包括多个非易失性储存设备280、以及控制多个非易失性储存设备280的设备控制器210。在示例性实施例中,储存设备200还包括位于设备控制器210内部或外部的缓冲存储器290。在示例性实施例中,储存设备200是固态驱动器(SSD)。在一些示例实施例中,多个非易失性存储器设备280可以是但不限于闪速存储器设备、相变随机存取存储器(phase-change random access memory,PRAM)、磁性随机存取存储器(magneticrandom access memory,MRAM)、电阻式随机存取存储器(resistive random accessmemory,RRAM)、铁电随机存取存储器(ferroelectric random access memory,FRAM)或其组合。设备控制器210可以从主机存储器130读取包括数据读取和写入请求的命令,并且可以响应于从主机存储器130读取的命令来控制储存设备200执行数据读取和写入操作。
设备控制器210可以执行对主机存储器130的非数据区域160的非数据存储器访问,例如,以从主机存储器130读取命令,以从主机存储器130读取数据区域150内的数据块的地址信息,或者将完成信息(例如,指示命令的执行已经完成的信息)写入主机存储器130。此外,设备控制器210可以执行对主机存储器130的数据区域150的数据存储器访问,例如,以从非易失性存储器设备280读取的数据写入数据区域150内的数据块,或者从数据区域150内的数据块读取数据以将读取的数据写入非易失性存储器设备280。根据本发明构思的示例性实施例的设备控制器210重新排序数据存储器访问和非数据存储器访问,使得在对数据块的数据存储器访问完成之后执行对非数据区域160的非数据存储器访问,该数据块是由PRP在数据区域内分配的连续数据。也就是说,设备控制器210可以延迟对非数据区域160的非数据存储器访问,直到对数据块的数据存储器访问完成。例如,如果设备控制器210最初被调度以在时间1处从数据区域150读取数据块的第一部分,在时间2处从非数据区域读取地址,然后在时间3处从数据区域150读取数据块的最后部分,则设备控制器210重新排序这些读数以在时间2处读取数据块的最后部分并在时间3处读取地址。因此,由于数据存储器访问在不中断的情况下连续执行作为连续数据的数据块,所以可以提高充当主机存储器130的高速缓存的行缓冲器170的命中率。在一个实施例中,高速缓存的命中率是在给定时间段内被击中而不是错失的访问的分数。例如,如果主机110试图访问行缓冲器170中的某些数据并且它能够从行缓冲器170检索某些数据,则发生击中,并且如果主机110试图访问行缓冲器170中的某些数据并且它不能够检索某些数据,则发生错失。当发生错失时,某些数据可以存在于储存设备200中。在本发明构思的示例性实施例中,设备控制器210根据存储在SQ区域中的未完成命令的数量和/或非易失性存储器设备280的吞吐效率选择性地执行对数据存储器访问和非数据存储器访问的重新排序。因此,根据示例性实施例的设备控制器210可以提高主机存储器130的行缓冲器170的命中率,同时保持储存设备200的吞吐效率。
在下文中,以下将参考图1和图2描述根据本发明构思的示例性实施例的包括储存设备200的计算***100中的命令处理的示例。
参考图1和图2,主机处理器120(或由主机处理器120执行的主机软件)将请求储存设备200的数据读取操作或数据写入操作的至少一个命令写入主机存储器130(S310)。在示例性实施例中,主机处理器120将对于储存设备200的命令写入主机存储器130的非数据区域160的SQ区域中。
主机处理器120更新储存设备200的SQ门铃以通知储存设备200已经在SQ区域中写入了要处理的命令(S320)。在示例性实施例中,储存设备200的设备控制器210包括SQ尾门铃寄存器,SQ尾门铃寄存器存储指向存储在作为环形缓冲器的SQ中的最后一个命令的指针,并且在主处理器120将至少一个命令附加到SQ中的最后一个命令之后,主处理器120将SQ尾门铃寄存器中的指针更新为指示所附加的命令的值。
储存设备200的设备控制器210从主机存储器130的SQ区域提取命令(S330),并执行所提取的命令(S340)。例如,在所提取的命令是数据读取命令的情况下,设备控制器210从主机存储器130的非数据区域160的PRP区域提取PRP条目(或其中将存储从非易失性存储器设备280读取的数据的数据块的地址信息)(S350),响应于所提取的命令从非易失性存储器设备280读取数据,并将读取的数据写入由PRP条目指示的数据区域150内的数据块(S360)。例如,PRP条目可以指示数据区域150内的数据块的位置。在另一示例中,在所提取的命令是数据写入命令的情况下,设备控制器210从主机存储器130的非数据区域160的PRP区域提取PRP条目(或其中将存储写入非易失性存储器设备280的数据的数据块的地址信息)(S350),响应于所提取的命令从由PRP条目指示的数据区域150内的数据块读取数据,并将从数据块读取的数据写入非易失性存储器设备280(S365)。例如,PRP条目可以指示数据块150内的数据块的位置。
如果对应于所提取的命令的数据读取操作(S360)或数据写入操作(S365)已经完成,则储存设备200的设备控制器210将指示所提取的命令已经完成的完成信息写入主机存储器130的CQ区域(S370)。例如,设备控制器210可以将完成信息写入作为环形缓冲器的CQ内的下一个空闲时隙中。在示例性实施例中,设备控制器210可选地生成中断以向主机110通知已经在CQ中写入新的完成信息(S380)。例如,中断可以包括但不限于消息发信号通知中断(message signaled interrupt,MSI)-X(或多消息MSI)、基于引脚的中断或单一消息MSI。MSI允许设备分配1、2、4、8、16或32个中断。该设备可以被编程有写入(例如,控制寄存器)的地址和16位数据字以识别它。MSI-X准许更大数量(例如,高达2048个)的中断,并将单独的目标地址和数据字给予每个中断。
如果已经将完成信息写入CQ,或者如果在写入完成信息之后接收到中断,则主机处理器120处理(例如,错误处理)完成信息,并更新储存设备200的CQ门铃以向储存设备200通知已经消费了完成信息(S390)。在示例性实施例中,储存设备200的设备控制器210包括CQ头门铃寄存器,该CQ头门铃寄存器存储指向存储在作为环形缓冲器的CQ中的完成信息中的第一个的指针,并且在主机处理器120顺序地处理CQ中的完成信息中的至少一个之后,主处理器120将CQ头门铃寄存器中的指针更新为指示未处理的完成信息中的第一个的值。例如,当主机110消费对应于读取请求的完成信息时,主机110可以断定对应的读取数据位于数据区域150中。例如,当主机110消费对应于写入请求的完成信息时,主机110可以断定已经用对应的写入数据写入了非易失性存储器设备280中的一个或多个。
如果设备控制器210在执行另一命令的SQ提取或CQ更新的同时响应于命令对使用一个PRP在数据区域150内连续分配的数据块执行数据读取操作或数据写入操作,则设备控制器210可能具有更差的命中率。因此,为了完成对于数据块的数据读取操作或数据写入操作,从存储器单元阵列140到行缓冲器170的读取操作或从行缓冲器170到存储器单元阵列140的写入操作被执行多次。然而,根据本发明构思的至少一个实施例的储存设备200重新排序数据存储器访问和非数据存储器访问,使得在对使用一个PRP在数据区域内分配连续的数据的数据块的数据存储器访问完成之后,执行对非数据区域160的非数据存储器访问,从而提高了主机存储器130的行缓冲器170的命中率。此外,在本发明构思的示例性实施例中,设备控制器200根据未执行命令的数量和/或非易失性存储器设备280的吞吐效率,选择性地执行对数据存储器访问和非数据存储器访问的重新排序,从而提高主机存储器130的行缓冲器170的命中率,同时保持储存设备200的吞吐效率。
图3是示出根据本发明构思的示例性实施例的储存设备的设备控制器的框图。图4是示出根据本发明构思的示例性实施例的设备控制器中包括的调度器的框图。图5是用于描述根据本发明构思的示例性实施例的设备控制器重新排序主机存储器访问的示例的图。
参照图3,根据本发明构思的示例性实施例的储存设备的设备控制器210a包括:控制设备控制器210a的总体操作的中央处理单元(central processing unit,CPU)220;连接到主机存储器130的主机控制器230;连接到多个非易失性存储器设备的存储器控制器240;控制主机存储器130和多个非易失性存储器设备之间的数据传输的协议控制器250;以及重新排序对主机存储器130的数据区域150的数据存储器访问和主机存储器130的非数据区域160的非数据存储器访问的调度器260(例如,调度电路)。
主机控制器230与主机存储器130通信。在示例性实施例中,主机控制器230经由主机总线直接(或没有储存设备和主机之间的主机总线适配器(host bus adapter,HBA)的情况下)连接到主机存储器130。在本发明构思的示例性实施例中,主机控制器230是通过PCIe总线连接到主机存储器130的***组件互连快速(peripheral component interconnectexpress,PCIe)控制器。
存储器控制器240与多个非易失性存储器设备通信。在本发明构思的示例性实施例中,多个非易失性存储器设备是闪速存储器设备,并且存储器控制器240是闪存控制器。此外,在本发明构思的示例性实施例中,存储器控制器240通过多个存储器通道连接到多个非易失性存储器设备,并且可以每一存储器通道连接到两个或多个非易失性存储器设备。例如,存储器控制器240可以被连接到八个存储器通道,其中每个存储器通道被连接到八个非易失性存储器设备。然而,存储器通道的数量和非易失性存储器设备的数量不限于此。
协议控制器250允许设备控制器210使用预定协议与主机通信。在本发明构思的示例性实施例中,协议控制器250是非易失性存储器快速(NVMe)控制器,其允许设备控制器210通过主机控制器230(例如,PCIe控制器)以NVMe协议与主机通信。在一个实施例中,协议控制器250执行对主机存储器130的数据区域150的数据存储器访问以及对主机存储器130的非数据区域160的非数据存储器访问。
在本发明构思的示例性实施例中,协议控制器250包括:SQ提取单元251(例如,电路),其执行SQ提取作为非数据存储器访问;CQ更新单元252(例如,电路),其执行CQ更新作为非数据存储器访问;PRP提取单元253(例如,电路),其执行PRP提取作为非数据存储器访问;以及直接存储器访问(DMA)单元255(例如,电路或DMA控制器),其执行数据存储器访问。SQ提取单元251执行从非数据区域160的SQ区域162提取命令的SQ提取。PRP提取单元253执行PRP提取,其从非数据区域160的PRP区域166提取PRP条目、或者在数据区域150内分配的数据块152、154和156中的至少一个的地址信息。DMA单元255执行数据存储器访问,该数据存储器访问响应于所提取的命令将从非易失性存储器设备读取的数据写入数据块152、154和156,或者,响应于所提取的命令从数据块152、154和156读取要写入非易失性存储器设备的数据。例如,在由SQ提取单元251提取的命令是数据读取命令并且由PRP提取单元253提取的PRP条目指示第一数据块152的情况下,DMA单元255将从非易失性存储器设备读取的数据写入到第一数据块152。在另一示例中,在由SQ提取单元251提取的命令是数据写入命令并且由PRP提取单元253提取的PRP条目指示第二数据块154的情况下,DMA单元255从第二数据块154读取要写入非易失性存储器设备的数据。一旦完成所提取的命令的处理,CQ更新单元252执行CQ更新,该CQ更新将指示完成所提取的命令的处理的完成信息写入非数据区域160的CQ区域164。
调度器260调度数据存储器访问和非数据存储器访问(例如,SQ提取、PRP提取和CQ更新)。例如,调度器260重新排序数据存储器访问和非数据存储器访问,使得对由一个PRP在数据区域150内分配的每个数据块152、154和156的数据存储器访问完成之后,执行对非数据区域160的非数据存储器访问。例如,在不执行重新排序的情况下,如图5中的400所示,,在执行对第一数据块152的数据存储器访问的同时执行第一CQ更新和第一SQ提取,在执行对第二数据块154的数据存储器访问的同时执行第二CQ更新和第二SQ提取,在执行对第三数据块156的数据存储器访问的同时执行第三CQ更新和第三SQ获取。然而,根据本发明构思的示例性实施例的设备控制器210a的调度器260重新排序数据存储器访问和非数据存储器访问,使得如图5中的420所示,在对第一数据块152的数据存储器访问完成之后执行第一CQ更新和第一SQ提取,在对第二数据块154的数据存储器访问完成之后执行第二CQ更新和第二SQ提取,在对第三数据块156的数据存储器访问完成之后,执行第三CQ更新和第三SQ提取。
在本发明构思的示例性实施例中,为了重新排序数据存储器访问和非数据存储器访问,如图4所示,调度器260包括数据存储器访问队列262以及非数据存储器访问队列264,该数据存储器访问队列262存储从DMA单元255接收的用于数据存储器访问的数据存储器访问分组DMAP,该非数据存储器访问队列264存储从SQ提取单元251、CQ更新单元252和PRP提取单元253接收的、用于非数据存储器访问的非数据存储器访问分组NDMAP。在示例性实施例中,为了重新排序数据存储器访问和非数据存储器访问,使得在对每个数据块152、154和156的数据存储器访问完成之后执行非数据存储器访问,调度器260停止从非数据存储器访问队列264输出非数据存储器访问分组NDMAP,并仅从数据存储器访问队列262输出数据存储器访问分组DMAP,直到完成对每个数据块152、154和156的数据存储器访问。因此,由于连续地执行对作为连续数据的数据块的数据存储器访问而没有中断,所以可以提高充当主机存储器130的高速缓存的行缓冲器的命中率。
图6是示出根据本发明构思的示例性实施例的储存设备的设备控制器的框图。图7是根据本发明构思的示例性实施例的设备控制器中包括的调度器的状态图。
图6的设备控制器210b具有与图3的设备控制器210a类似的配置和类似的操作。除了设备控制器210b选择性地执行对数据存储器访问和非数据存储器访问的重新排序之外。
参考图6,设备控制器210b的调度器260从协议控制器250接收命令信息,和/或从存储器控制器240接收效率信息。调度器260基于来自协议控制器250的命令信息和/或来自存储器控制器240的效率信息选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
在本发明构思的示例性实施例中,调度器260从协议控制器250接收表示未完成命令的数量的命令信息,并根据未完成命令的数量是否大于或等于命令阈值来选择性地执行对数据存储器访问和非数据存储器访问的重新排序。例如,如果未完成命令的数量小于命令阈值,则调度器260不执行重新排序,并且设备控制器210b可以立即执行非数据存储器访问,从而提高储存设备的吞吐效率。此外,如果未完成命令的数量大于或等于命令阈值,则调度器260执行重新排序,从而提高主机存储器130的行缓冲器的命中率。在实施例中,未完成命令是尚未执行的命令。在本发明构思的示例性实施例中,命令阈值由CPU 220设置。
在本发明构思的示例性实施例中,调度器260从存储器控制器240接收表示多个非易失性存储器设备的吞吐效率的效率信息,并且可以根据多个非易失性存储器设备的吞吐效率是否大于或等于效率阈值来选择性地执行对数据存储器访问和非数据存储器访问的重新排序。在实施例中,多个非易失性存储器设备的吞吐效率是运行的非易失性存储器设备(或执行数据读取/写入操作的非易失性存储器设备)的数量与多个非易失性存储器设备的总数量的比率,或者当前传输的数据量与可以通过存储器控制器240和多个非易失性存储器设备之间的存储器通道传输的最大数据量的比率。例如,如果多个非易失性存储器设备的吞吐效率小于效率阈值,则调度器260不执行重新排序,并且设备控制器210b可以立即执行非数据存储器访问,从而提高储存设备的吞吐效率。此外,如果多个非易失性存储器设备的吞吐效率大于或等于效率阈值,则调度器260执行重新排序,从而提高主机存储器130的行缓冲器的命中率。在本发明构思的示例性实施例中,效率阈值由CPU 220设置。
在本发明构思的示例性实施例中,调度器260从协议控制器250接收命令信息,从存储器控制器240接收效率信息,并基于命令信息和效率信息选择性地执行对数据存储器访问和非数据存储器访问的重新排序。例如,如图7中所示,一旦设备控制器210b在500处通电,CPU 220就可以设置调度器260的命令阈值和效率阈值。在本发明构思的示例性实施例中,在设置命令阈值和效率阈值之后,则调度器260在有序状态520下操作,在有序状态520中调度器260不执行对数据存储器访问和非数据存储器访问的重新排序。在有序状态520下操作的同时,如果未完成命令的数量变得大于或等于命令阈值,或者如果多个非易失性存储器设备的吞吐效率变得大于或等于效率阈值,则调度器260转换到重新排序状态540,在重新排序状态540中调度器260执行对数据存储器访问和非数据存储器访问的重新排序。此外,在重新排序状态540下操作的同时,如果未完成命令的数量变得小于命令阈值,并且如果多个非易失性存储器设备的吞吐效率变得小于效率阈值,则调度器260再次转换到有序状态520。因此,根据本发明构思的至少一个示例性实施例的设备控制器210b提高了主机存储器130的行缓冲器的命中率,同时保持储存设备的吞吐效率。
图8是示出根据本发明构思的示例性实施例的储存设备的设备控制器的框图。
图8的设备控制器210c具有与图3的设备控制器210a和图6的设备控制器210b类似的配置和类似的操作。除了协议控制器250c还包括HMB访问单元254(例如,电路)之外。
参考图8,设备控制器210c的协议控制器250c还包括HMB访问单元254以及SQ提取单元、CQ更新单元和PRP提取单元。HMB访问单元254执行HMB访问作为非数据存储器访问,该HMB访问访问在主机存储器130的非数据区域160内分配的、以供设备控制器210c专用的HMB区域168。例如,设备控制器210c可以管理HMB区域168中的逻辑到物理(logical-to-physica,L2P)映射。在这种情况下,可以在没有缓冲存储器290的情况下实施包括设备控制器210c的储存设备。L2P映射可以包括多个条目,其中每个条目包括非易失性存储器设备内的逻辑地址和对应的物理地址。
本发明构思可以被应用于任何储存设备。例如,本发明构思可以被应用于SSD、NVMe SSD、Z-SSD、Optane SSD、基于多级单元(MLC)的SSD、基于三级单元(TLC)的SSD、或者硬盘驱动器(hard disk drive,HDD)。
前述内容是对本发明构思的示例性实施例的说明,而不应被解释为对其进行限制。尽管已经描述了一些示例性实施例,但是本领域技术人员将容易理解,在示例性实施例中可以进行许多修改而不实质上脱离本发明构思。因此,所有这些修改意图包括在本发明构思的范围。
Claims (20)
1.一种包括在储存设备中的设备控制器,所述设备控制器包括:
主机控制器,被连接到主机存储器,并被配置为与所述主机存储器通信;
存储器控制器,被连接到多个非易失性存储器设备,并被配置为与所述多个非易失性存储器设备通信;
协议控制器,被配置为控制所述主机控制器和所述多个非易失性存储器设备之间的数据传输,并通过所述主机控制器执行对主机存储器的数据区域的数据存储器访问以及对主机存储器的非数据区域的非数据存储器访问;以及
调度器,被配置为重新排序数据存储器访问和非数据存储器访问,使得在对数据块的数据存储器访问完成之后,执行对非数据区域的非数据存储器访问,所述数据块是由物理区域页面PRP分配在数据区域内的连续数据。
2.根据权利要求1所述的设备控制器,其中,所述调度器包括:数据存储器访问队列,被配置为存储用于所述数据存储器访问的数据存储器访问分组;以及非数据存储器访问队列,被配置为存储用于所述非数据存储器访问的非数据存储器访问分组,并且
其中,为了重新排序所述数据存储器访问和所述非数据存储器访问,所述调度器从所述数据存储器访问队列输出所述数据存储器访问分组,并停止从所述非数据存储器访问队列输出所述非数据存储器访问分组,直到对所述数据块的数据存储器访问完成。
3.根据权利要求1所述的设备控制器,其中,所述调度器根据未完成命令的数量,选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
4.根据权利要求1所述的设备控制器,其中,所述调度器根据所述多个非易失性存储器设备的吞吐效率,选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
5.根据权利要求1所述的设备控制器,其中,所述调度器从协议控制器接收关于未完成命令的数量的信息,并从所述存储器控制器接收关于多个非易失性存储器设备的吞吐效率的信息,并且
其中,当未完成命令的数量大于或等于命令阈值时,或者当所述多个非易失性存储器设备的吞吐效率大于或等于效率阈值时,所述调度器执行对数据存储器访问和非数据存储器访问的重新排序。
6.根据权利要求1所述的设备控制器,其中,所述非数据存储器访问包括提交队列SQ提取、PRP提取和完成队列CQ更新中的至少一个。
7.根据权利要求6所述的设备控制器,其中,所述非数据存储器访问还包括主机存储器缓冲器HMB访问。
8.根据权利要求1所述的设备控制器,其中,所述协议控制器包括:
直接存储器访问DMA单元,被配置为执行数据存储器访问;
SQ提取单元,被配置为执行SQ提取作为非数据存储器访问;
PRP提取单元,被配置为执行PRP提取作为非数据存储器访问;以及
CQ更新单元,被配置为执行CQ更新作为非数据存储器访问。
9.根据权利要求8所述的设备控制器,其中,所述协议控制器包括:
HMB访问单元,被配置为执行HMB访问作为非数据存储器访问。
10.根据权利要求1所述的设备控制器,其中,所述协议控制器是非易失性存储器快速NVMe控制器。
11.一种包括在储存设备中的设备控制器,所述设备控制器包括:
主机控制器,被连接到主机存储器,并被配置为与所述主机存储器通信;
存储器控制器,被连接到多个非易失性存储器设备,并被配置为与所述多个非易失性存储器设备通信;
协议控制器,被配置为控制所述主机控制器和所述多个非易失性存储器设备之间的数据传输,并通过所述主机控制器执行对主机存储器的数据区域的数据存储器访问以及对主机存储器的非数据区域的非数据存储器访问;以及
调度器,被配置为根据未完成命令的数量和所述多个非易失性存储器设备的吞吐效率,选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
12.根据权利要求11所述的设备控制器,其中,所述调度器从所述协议控制器接收关于未完成命令的数量的信息,以及
其中,当未完成命令的数量大于或等于命令阈值时,所述调度器执行对数据存储器访问和非数据存储器访问的重新排序。
13.根据权利要求11所述的设备控制器,其中,所述调度器从所述存储器控制器接收关于所述多个非易失性存储器设备的吞吐效率的信息,并且
其中,当所述多个非易失性存储器设备的吞吐效率大于或等于效率阈值时,所述调度器执行对数据存储器访问和非数据存储器访问的重新排序。
14.根据权利要求11所述的设备控制器,其中,所述调度器从所述协议控制器接收关于未完成命令的数量的信息,并且从所述存储器控制器接收关于所述多个非易失性存储器设备的吞吐效率的信息,并且
其中,当未完成命令的数量大于或等于命令阈值时,或者当所述多个非易失性存储器设备的吞吐效率大于或等于效率阈值时,所述调度器执行对数据存储器访问和非数据存储器访问的重新排序。
15.根据权利要求14所述的设备控制器,还包括:
中央处理单元CPU,被配置为控制对所述设备控制器的操作,
其中,所述调度器的命令阈值和效率阈值由CPU设置。
16.根据权利要求11所述的设备控制器,其中,重新排序所述数据存储器访问和所述非数据存储器访问,使得在对数据块的数据存储器访问完成之后,执行对所述非数据区域的非数据存储器访问,并且所述数据块是由物理区域页面分配在数据区域内的连续数据。
17.一种储存设备,包括:
多个非易失性存储器设备;以及
设备控制器,被配置为控制所述多个非易失性存储器设备,
其中,所述设备控制器包括:
主机控制器,被连接到主机存储器,被配置为与所述主机存储器通信;
存储器控制器,被连接到所述多个非易失性存储器设备,并被配置为与所述多个非易失性存储器设备通信;
协议控制器,被配置为控制所述主机控制器和所述多个非易失性存储器设备之间的数据传输,并且通过所述主机控制器执行对所述主机存储器的数据区域的数据存储器访问以及对所述主机存储器的非数据区域的非数据存储器访问;以及
调度器,被配置为重新排序数据存储器访问和非数据存储器访问,
使得在对数据块的数据存储器访问完成之后,执行对非数据区域的非数据存储器访问,所述数据块是由物理区域页面PRP在数据区域内分配的连续数据。
18.根据权利要求17所述的储存设备,其中,所述调度器包括:数据存储器访问队列,被配置为存储用于所述数据存储器访问的数据存储器访问分组;以及非数据存储器访问队列,被配置为存储用于所述非数据存储器访问的非数据存储器访问分组;并且
其中,为了重新排序所述数据存储器访问和所述非数据存储器访问,所述调度器从所述数据存储器访问队列输出所述数据存储器访问分组,并停止从所述非数据存储器访问队列输出所述非数据存储器访问分组,直到对数据块的数据存储器访问完成。
19.根据权利要求17所述的储存设备,其中,所述调度器根据未完成命令的数量,选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
20.根据权利要求17所述的储存设备,其中,所述调度器根据所述多个非易失性存储器设备的吞吐效率,选择性地执行对数据存储器访问和非数据存储器访问的重新排序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0155116 | 2017-11-20 | ||
KR1020170155116A KR102395477B1 (ko) | 2017-11-20 | 2017-11-20 | 호스트 메모리에 대한 메모리 액세스를 스케쥴링하는 장치 컨트롤러, 및 이를 포함하는 저장 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815172A true CN109815172A (zh) | 2019-05-28 |
CN109815172B CN109815172B (zh) | 2024-05-17 |
Family
ID=66532362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811235057.4A Active CN109815172B (zh) | 2017-11-20 | 2018-10-23 | 设备控制器以及包括其的储存设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10782915B2 (zh) |
KR (1) | KR102395477B1 (zh) |
CN (1) | CN109815172B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485643A (zh) * | 2021-07-01 | 2021-10-08 | 成都忆芯科技有限公司 | 用于数据存取的方法及数据写入的控制器 |
TWI820952B (zh) * | 2021-10-28 | 2023-11-01 | 慧榮科技股份有限公司 | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190104924A (ko) | 2019-08-22 | 2019-09-11 | 류승문 | 간섭에 강한 피코캐스트-3 기술 |
KR20200106434A (ko) | 2019-09-24 | 2020-09-14 | 류승문 | 개인 맞춤형 물리계층 사용으로 안전하게 보호되는 통신 및 제어 기술 |
US11321017B2 (en) * | 2020-06-29 | 2022-05-03 | SK Hynix Inc. | Systems and methods for controlling completion rate of commands |
KR102656104B1 (ko) * | 2020-07-23 | 2024-04-11 | 주식회사 멤레이 | 비휘발성 메모리 제어 장치 및 비휘발성 메모리 장치 |
US12014080B2 (en) | 2021-11-10 | 2024-06-18 | Samsung Electronics Co., Ltd. | Memory system using host memory buffer and operation method thereof |
US11656798B1 (en) | 2021-12-03 | 2023-05-23 | Western Digital Technologies, Inc. | Immediate partial host buffer fetching |
US11768606B2 (en) | 2021-12-27 | 2023-09-26 | Western Digital Technologies, Inc. | Maximizing performance through traffic balancing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325384A1 (en) * | 2009-06-23 | 2010-12-23 | Samsung Electronics Co., Ltd. | Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method |
CN103514107A (zh) * | 2012-06-27 | 2014-01-15 | 上海芯豪微电子有限公司 | 高性能数据缓存***和方法 |
US20160026388A1 (en) * | 2014-07-24 | 2016-01-28 | Samsung Electronics Co., Ltd. | Data storage device and method of processing data thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US7802026B2 (en) | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US9413527B2 (en) | 2009-04-30 | 2016-08-09 | HGST Netherlands B.V. | Optimizing signature computation and sampling for fast adaptive similarity detection based on algorithm-specific performance |
KR101662824B1 (ko) | 2009-07-08 | 2016-10-06 | 삼성전자주식회사 | 고체 상태 드라이브 장치 및 그것의 구동 방법 |
EP2695070B1 (en) | 2011-04-08 | 2016-03-09 | Altera Corporation | Systems and methods for using memory commands |
KR101835604B1 (ko) | 2011-06-03 | 2018-03-07 | 삼성전자 주식회사 | 메모리를 위한 스케줄러 |
US20130339583A1 (en) | 2012-06-19 | 2013-12-19 | Marvell World Trade Ltd. | Systems and methods for transferring data out of order in next generation solid state drive controllers |
US9563367B2 (en) | 2014-08-26 | 2017-02-07 | HGST Netherlands B.V. | Latency command processing for solid state drive interface protocol |
US20160162186A1 (en) | 2014-12-09 | 2016-06-09 | San Disk Technologies Inc. | Re-Ordering NAND Flash Commands for Optimal Throughput and Providing a Specified Quality-of-Service |
KR20170032502A (ko) | 2015-09-14 | 2017-03-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 인터럽트 발생 방법 |
US10296249B2 (en) * | 2017-05-03 | 2019-05-21 | Western Digital Technologies, Inc. | System and method for processing non-contiguous submission and completion queues |
-
2017
- 2017-11-20 KR KR1020170155116A patent/KR102395477B1/ko active IP Right Grant
-
2018
- 2018-08-08 US US16/058,197 patent/US10782915B2/en active Active
- 2018-10-23 CN CN201811235057.4A patent/CN109815172B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325384A1 (en) * | 2009-06-23 | 2010-12-23 | Samsung Electronics Co., Ltd. | Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method |
CN103514107A (zh) * | 2012-06-27 | 2014-01-15 | 上海芯豪微电子有限公司 | 高性能数据缓存***和方法 |
US20160026388A1 (en) * | 2014-07-24 | 2016-01-28 | Samsung Electronics Co., Ltd. | Data storage device and method of processing data thereof |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485643A (zh) * | 2021-07-01 | 2021-10-08 | 成都忆芯科技有限公司 | 用于数据存取的方法及数据写入的控制器 |
CN113485643B (zh) * | 2021-07-01 | 2023-10-31 | 成都忆芯科技有限公司 | 用于数据存取的方法及数据写入的控制器 |
TWI820952B (zh) * | 2021-10-28 | 2023-11-01 | 慧榮科技股份有限公司 | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 |
US11977783B2 (en) | 2021-10-28 | 2024-05-07 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
Also Published As
Publication number | Publication date |
---|---|
US20190155545A1 (en) | 2019-05-23 |
KR20190057779A (ko) | 2019-05-29 |
KR102395477B1 (ko) | 2022-05-09 |
US10782915B2 (en) | 2020-09-22 |
CN109815172B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815172A (zh) | 设备控制器以及包括其的储存设备 | |
US11169709B2 (en) | System and method for adaptive command fetch aggregation | |
CN108628777B (zh) | 动态和自适应中断合并的***和方法 | |
CN110088723A (zh) | 用于对提交队列和完成队列进行处理并且做出仲裁的***和方法 | |
CN110088725A (zh) | 用于对提交队列和完成队列进行处理并做出仲裁的***和方法 | |
US11113198B2 (en) | Timed data transfer between a host system and a memory sub-system | |
CN110088724A (zh) | 使用控制器存储器缓冲区进行自适应提前完成发布的***和方法 | |
CN108701081A (zh) | 用于同时存取非易失性存储器的多个分区的设备和方法 | |
US20210271424A1 (en) | Quality of service control for read operations in memory systems | |
CN105683953B (zh) | 支持加速数据库操作的数据存储设备 | |
CN113168374A (zh) | 写入命令在分区命名空间中的保持 | |
CN105528299B (zh) | 读取命令排程方法以及使用该方法的装置 | |
US11294820B2 (en) | Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system | |
CN110032333A (zh) | 存储器***及其操作方法 | |
US11360711B2 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
CN110489056A (zh) | 控制器以及包括该控制器的存储器*** | |
CN110196736A (zh) | 电子设备及其操作方法 | |
WO2020041745A1 (en) | Memory sub-system supporting non-deterministic commands | |
CN108958642A (zh) | 存储器***及其操作方法 | |
CN107229581A (zh) | 数据存储装置及其操作方法 | |
CN106293491B (zh) | 写请求的处理方法和内存控制器 | |
US20180203813A1 (en) | Methods for processing return entities associated with multiple requests in single interrupt service routine thread and apparatuses using the same | |
KR20240043148A (ko) | 메모리 디바이스에서 메모리 액세스 커맨드 큐를 사용하는 개선된 메모리 성능 | |
CN109656471A (zh) | 数据存储设备及其操作方法 | |
CN108984108A (zh) | 用于调度io命令的方法与固态存储设备 |
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 |