CN114764310A - 使用主机存储缓冲器的处理器和包括该处理器的存储系统 - Google Patents
使用主机存储缓冲器的处理器和包括该处理器的存储系统 Download PDFInfo
- Publication number
- CN114764310A CN114764310A CN202210017105.2A CN202210017105A CN114764310A CN 114764310 A CN114764310 A CN 114764310A CN 202210017105 A CN202210017105 A CN 202210017105A CN 114764310 A CN114764310 A CN 114764310A
- Authority
- CN
- China
- Prior art keywords
- host
- write
- command
- buffer
- write buffer
- 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.)
- Pending
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 186
- 230000015654 memory Effects 0.000 title claims description 159
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100377801 Arabidopsis thaliana ABCG1 gene Proteins 0.000 description 2
- 101150004219 MCR1 gene Proteins 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/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/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/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]
Abstract
一种处理器,被配置为控制存储设备,该处理器包括:至少一个主机写缓冲器,基于存储设备的设备信息生成;以及控制模块,被配置为控制至少一个主机写缓冲器。控制模块还被配置为:在至少一个主机写缓冲器中存储多个写命令,并基于元数据合并多个写命令以生成合并写命令。
Description
相关申请的交叉引用
本申请要求于2021年1月13日在韩国知识产权局提交的韩国专利申请No.10-2021-0004938和于2021年5月20日在韩国知识产权局提交的韩国专利申请No.10-2021-0064637的优先权,其全部公开内容通过引用合并于此。
技术领域
本公开涉及装置和方法,并且更具体地,涉及有效地使用主机中的存储缓冲器的处理器和包括该处理器的存储系统。
背景技术
存储系统通常包括主机和存储设备。主机和存储设备可以通过多种标准接口(例如,通用闪存(UFS)、串行ATA(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)和嵌入式多媒体卡(eMMC))彼此连接。当存储系统用于移动设备时,可能需要主机和存储设备之间的高速操作,并且由于存储设备中用于写缓冲器的空间有限,因此有效地使用主机中的存储缓冲器可能是有益的。
发明内容
本公开的实施例提供了一种存储系统,其中,通过考虑存储设备的特性在主机中生成写缓冲器、合并写命令、以及向存储设备发送合并写命令来提高写性能。
根据本公开的实施例,提供了一种被配置为控制存储设备的处理器,该处理器包括:至少一个主机写缓冲器,基于存储设备的设备信息生成;以及控制模块,被配置为控制至少一个主机写缓冲器。控制模块还被配置为:在至少一个主机写缓冲器中存储多个写命令,并基于元数据合并多个写命令以生成合并写命令。
根据本公开的另一实施例,提供了一种包括主机和存储设备的存储系统,其中,主机包括:至少一个主机写缓冲器,基于存储设备的设备信息生成;以及控制模块,被配置为控制至少一个主机写缓冲器。控制模块还被配置为:在至少一个主机写缓冲器中存储由主机生成的多个写命令,并基于元数据合并多个写命令以生成合并写命令。
根据本公开的另一实施例,提供了一种控制存储设备的方法,该方法包括:基于存储设备的设备信息生成至少一个主机写缓冲器;在至少一个主机写缓冲器中存储由主机生成的多个写命令;以及基于元数据合并多个写命令以生成合并写命令。
附图说明
根据以下结合附图进行的详细描述,将更清楚地理解本公开的实施例,在附图中:
图1是根据本公开的实施例的存储系统的框图;
图2是示出了根据本公开的实施例的存储系统中的写命令合并过程的概念图;
图3A至图3D是示出了根据本公开的实施例的存储系统中的写命令合并过程的概念图;
图4A至图4D是示出了根据本公开的实施例的存储系统中的写命令合并过程的概念图;
图5是示出了根据本公开的实施例的存储系统中根据合并写命令的元数据传输的概念图;
图6是示出了根据本公开的实施例的存储系统中根据合并写命令的元数据传输的概念图;
图7是示出了根据本公开的实施例的存储系统的操作方法的概念图;
图8是示出了根据本公开的实施例的支持多流的存储系统的操作方法的概念图;
图9是示出了根据本公开的实施例的不支持多流的存储系统的操作方法的概念图;
图10是示出了根据本公开的实施例的支持多流的存储系统的操作方法的概念图;
图11是示出了根据本公开的实施例的支持基于区的接口的存储系统的操作方法的概念图;
图12是示出了根据本公开的实施例的存储系统的操作方法的流程图;
图13是示出了应用根据本发明的实施例的存储设备的系统的框图;
图14是示出了根据本公开的实施例的通用闪存(UFS)系统的框图;
图15是根据本公开的实施例的非易失性存储设备的框图;以及
图16是根据本公开的实施例的非易失性存储设备的框图。
具体实施方式
图1示出了根据本公开的实施例的存储系统10。
参照图1,存储系统10可以包括主机20和存储设备30。主机20和存储设备30可以根据通用闪存(UFS)规范中定义的接口协议彼此连接,并且因此,存储设备30可以是UFS存储设备,并且主机20可以是UFS主机。然而,本公开不限于此,并且存储设备30和主机20可以根据各种标准接口彼此连接。
主机20可以控制存储设备30的数据处理操作,例如,数据读操作或数据写操作。主机20可以指代能够处理数据的数据处理设备,例如,中央处理单元(CPU)、处理器、微处理器或应用处理器(AP)。主机20可以执行操作系统(OS)和/或各种应用。在实施例中,存储系统10可以包括在移动设备中,并且主机20可以被实现为应用处理器(AP)。在实施例中,主机20可以被实现为片上系统(SoC),并且因此可以被嵌入到电子设备中。
在本实施例中,示出了包括在主机20和存储设备30中的多个概念性硬件配置。然而,本公开不限于此,并且可以进行其他配置。主机20可以包括作为主机接口的互连部分22、主机控制器24和主机写缓冲器26。互连部分22可以提供主机20和存储设备40之间的接口30。互连部分22可以包括物理层和链路层。互连部分22的物理层可以包括用于与存储设备40交换数据的物理组件,并且可以包括至少一个发送器TX和至少一个接收器RX。主机20的互连部分22可以包括例如四个发送器和四个接收器。互连部分22的链路层可以管理数据传输和/或组合,并且可以管理数据完整性和错误。
主机控制器24可以从存储设备40接收关于存储设备40的信息,以生成主机写缓冲器26。主机控制器24可以在主机写缓冲器26中存储多个写命令,以通过合并由主机20生成的多个写命令来生成合并写命令。
主机写缓冲器26可以是主机20为存储设备40分配的存储器的一部分。主机写缓冲器26可以在主机20的阻挡层或设备驱动器中生成。主机写缓冲器26可以在初始化过程中在主机20和存储设备40之间接收对非易失性存储器36进行优化的写输入/输出(I/O)信息,并且可以被静态地分配和操作。
存储设备40可以包括作为设备接口的互连部分32、存储控制器34和非易失性存储器36。存储控制器34可以响应于来自主机20的写请求来控制非易失性存储器36以将数据写入非易失性存储器36,或者可以响应于来自主机20的读请求来控制非易失性存储器36以读取存储在非易失性存储器36中的数据。
互连部分32可以提供存储设备40和主机20之间的接口30。例如,互连部分32可以包括物理层和链路层。互连部分32的物理层可以包括用于与主机20交换数据的物理组件,并且可以包括至少一个接收器RX和至少一个发送器TX。存储设备40的互连部分32可以包括例如四个接收器和四个发送器。互连部分32的链路层可以管理数据传输和/或组合,并且可以管理数据完整性和错误。
在实施例中,当存储系统10是移动设备时,互连部分22和32的物理层可以由“M-PHY”规范定义,并且互连部分22和32的链路层可以由“UniPro”规范定义。M-PHY和UniPro是由移动工业处理器接口(MIPI)联盟提出的接口协议。互连部分22和32的链路层可以各自包括物理适配层,其可以控制物理层,例如,管理数据符号或管理电源。
主机20的互连部分22中的发送器TX和存储设备40的互连部分32中的接收器RX可以形成一个通道。另外,存储设备40的互连部分32中的发送器TX和主机20的互连部22中的接收器RX也可以形成一个通道。
非易失性存储器36可以包括多个存储器单元。例如,多个存储器单元可以是闪存单元。在实施例中,多个存储器单元可以是NAND闪存单元。然而,本公开不限于此,并且在另一实施例中,多个存储器单元可以是电阻式存储器单元,例如,电阻式RAM(ReRAM)单元、相变RAM(PRAM)单元或磁RAM(MRAM)单元。
在一些实施例中,存储设备40可以被实现为无DRAM设备,其可以指代不包括DRAM缓存的设备。在这种情况下,存储控制器34可以不包括DRAM控制器。例如,存储设备40可以使用非易失性存储器36的一部分作为缓冲存储器。
在一些实施例中,存储设备40可以是嵌入在电子设备中的内部存储器。例如,存储设备40可以包括嵌入式UFS存储设备、eMMC或固态驱动器(SSD)。然而,本公开不限于此,并且存储设备40可以包括非易失性存储器(例如,一次性可编程ROM(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩模式ROM、闪存ROM等)。在一些实施例中,存储设备40可以包括从电子设备可拆卸的外部存储器。例如,存储设备40可以包括UFS存储卡、紧凑型闪存(CF)卡、安全数字(SD)卡、微型SD卡、迷你SD卡、极限数字(xD)卡和记忆棒中的至少一种。
存储系统10可以被实现为电子设备,例如,个人计算机(PC)、膝上型计算机、移动电话、智能手机、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、音频设备、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、MP3播放器、掌上游戏机或电子书。此外,存储系统10可以被实现为各种类型的电子设备,例如,手表或诸如头戴式显示器(HMD)之类的可穿戴设备。
图2示出了根据本公开的实施例的存储系统中的写命令合并过程。
参照图2,存储系统可以包括文件系统(FS)110、主机写缓冲器(HWB)120、数据传输管理器(DTM)130和存储设备140。例如,存储系统可以包括图1的主机和存储设备。例如,图1的主机20可以包括图2的文件系统110、主机写缓冲器120和数据传输管理器130,并且图1的存储设备40可以包括图2的存储设备140。
例如,当第一写命令WC1由文件系统110生成,并由第一接口信号CI_1提供,并储存在主机写缓冲器120中时,主机写缓冲器120可以向文件系统110发送第一响应信号CR_1。当接收到第一响应信号CR_1时,文件系统110可以识别第一写命令WC1已经成功发送,并生成第二写命令WC2。另外,在第一写命令WC1的处理期间,文件系统110可以同时生成预设范围内的第二写命令WC2至第N写命令WC_N而不管第一响应信号CR_1,并且第二写命令WC2至第N写命令WC_N可以由第二接口信号CI_2至第N接口信号CI_N提供,并存储在主机写缓冲器120中。例如,可以根据存储系统支持的主机控制器接口命令队列的数量来确定预设范围。
例如,存储系统可以基于从存储设备140接收到的信息,通过将第一写命令WC1合并到第四写命令WC4来生成第一合并写命令MWC1。数据传输管理器130可以从主机写缓冲器120接收第一合并写命令MWC1,并向主机写缓冲器120提供第一缓冲响应BCR_1。存储设备140可以从数据传输管理器130接收第一合并写命令MWC1,并向数据传输管理器130提供第一合并写命令响应MCR_1。当接收到第一合并写命令响应MCR_1时,存储系统可以发送与存储在主机写缓冲器120中的第一合并写命令MWC1相对应的第一合并数据。存储系统可以发送第一合并数据,并合并由主机的文件系统110生成的新的写命令。
图3A至图3D示出了根据本公开的实施例的存储系统中的写命令合并过程。
参照图3A至图3D,为了有效地合并写命令并执行合并写命令处理,主机写缓冲器200可以是包括第一主机写缓冲器210和第二主机写缓冲器220的双缓冲器。
当生成与主机写缓冲器200的大小一样多的写命令时,一个主机写缓冲器可以处理写命令。然而,当生成大小大于主机写缓冲器200的大小的写命令时,可能需要多个主机写缓冲器。
另外,当分配了多个主机写缓冲器时,第二主机写缓冲器220可以处理由文件系统生成的新的写命令,同时第一主机写缓冲器210处理合并数据。存储系统可以基于存储设备的信息分配至少一个主机写缓冲器。当前,为方便起见,描述了分配一个或两个主机写缓冲器的情况,但主机写缓冲器的数量不限于此。
参照图3A,在存储第一写命令WC1的同时,主机写缓冲器200可以接收并存储由文件系统生成的第二写命令WC2。当存储第二写命令WC2时,主机写缓冲器200可以生成第二写命令响应信号CR2,并向文件系统发送第二写命令响应信号CR2。
例如,第二写命令响应信号CR2可以以与当写命令从文件系统向存储设备发送时接收到的响应信号相同的形式配置。在这种情况下,因为文件系统在向存储设备发送写命令之前直接从主机写缓冲器200接收响应信号,所以可以执行快速写处理。
参照图3B,主机写缓冲器200可以接收并存储由文件系统生成的第三写命令WC3,并且可以生成第三写命令响应信号CR3,并向文件系统发送第三写命令响应信号CR3。
存储系统可以通过合并存储在主机写缓冲器200中的第一写命令WC1、第二写命令WC2和第三写命令WC3来生成第一合并写命令MWC1。存储系统可以通过数据传输管理器向存储设备发送生成的第一合并写命令MWC1。
参照图3C,主机写缓冲器200可以包括第一主机写缓冲器210和第二主机写缓冲器220。当主机写缓冲器200接收到大于第一主机写缓冲器210的剩余空间的第三写命令WC3时,第三_1写命令WC3_1可以存储在第一主机写缓冲器210中,并且第三_2写命令WC3_2可以存储在第二主机写缓冲器220中。在存储第三写命令WC3之后,主机写缓冲器200可以生成第三写命令响应信号CR3,并向文件系统发送第三写命令响应信号CR3。
存储系统可以通过合并存储在第一主机写缓冲器210中的第一写命令WC1、第二写命令WC2和第三_1写命令WC3_1来生成第一合并写命令MWC1。存储系统可以通过数据传输管理器向存储设备发送生成的第一合并写命令MWC1。主机写缓冲器200可以通过使用第一主机写缓冲器210和第二主机写缓冲器220来划分和存储大于剩余空间的写命令。
参照图3D,主机写缓冲器200可以将从文件系统接收到的第四写命令WC4存储在第二主机写缓冲器220中,同时第一主机写缓冲器210执行写命令合并,并发送第一合并写命令MWC1。存储系统可以使用第一主机写缓冲器210和第二主机写缓冲器220,并且发送来自第一主机写缓冲器210的第一合并写命令MWC1,并通过第二主机写缓冲器220同时接收来自文件系统的其他写命令以存储和合并其他写命令。
图4A至图4D示出了根据本公开的实施例的存储系统中的写命令合并过程。
例如,当合并写命令具有连续逻辑块地址时,不需要操作单独的元数据,但是当合并具有非连续逻辑块地址的写命令时,使用用于存储元数据的元缓冲器300。元数据可以包括写命令的逻辑块地址和长度信息。元缓冲器300可以具有与主机写缓冲器200相对应的形式。
参照图4A,主机写缓冲器200可以在存储第一写命令WC1的同时接收和存储由文件系统生成的第二写命令WC2。当存储第二写命令WC2时,主机写缓冲器200可以生成第二写命令响应信号CR2,并向文件系统发送第二写命令响应信号CR2。
当在主机写缓冲器200中接收到第一写命令WC1时,在元缓冲器300中分配用于存储第一元数据MT1的空间,并且第一元数据MT1可以存储在分配的空间中。第一元数据MT1可以包括第一写命令WC1的逻辑块地址和长度信息。当在主机写缓冲器200中接收到第二写命令WC2时,可以在元缓冲器300中分配用于存储第二元数据MT2的空间。
参照图4B,当在主机写缓冲器200中接收到第三写命令WC3时,可以在元缓冲器300中分配存储第三元数据MT3的空间。当存储第三写命令WC3时,主机写缓冲器200可以生成第三写命令响应信号CR3,并向文件系统发送第三写命令响应信号CR3。
存储系统可以通过合并存储在主机写缓冲器200中的第一写命令WC1、第二写命令WC2和第三写命令WC3来生成第一合并写命令MWC1。存储系统可以通过数据传输管理器向存储设备发送生成的第一合并写命令MWC1。
参照图4C,主机写缓冲器200可以包括第一主机写缓冲器210和第二主机写缓冲器220。当主机写缓冲器200接收到大于第一主机写缓冲器210的剩余空间的第三写命令WC3时,第三_1写命令WC3_1可以存储在第一主机写缓冲器210中,并且第三_2写命令WC3_2可以存储在第二主机写缓冲器220中。在存储第三写命令WC3之后,主机写缓冲器200可以生成第三写命令响应信号CR3,并向文件系统发送第三写命令响应信号CR3。
元缓冲器可以被配置为对应于第一主机写缓冲器210和第二主机写缓冲器220。例如,元缓冲器可以包括第一元缓冲器310和第二元缓冲器320。第一元缓冲器310可以存储第一元数据MT1和第二元数据MT2。与第三写命令WC3一样,第三元数据可以被划分并存储在第一元缓冲器310和第二元缓冲器320中。第三_1元数据MT3_1可以存储在第一元缓冲器310中,并且第三_2元数据MT3_2可以存储在第二元缓冲器320中。
存储系统可以通过合并存储在第一主机写缓冲器210中的第一写命令WC1、第二写命令WC2和第三_1写命令WC3_1来生成第一合并写命令MWC1。存储系统可以通过数据传输管理器向存储设备发送生成的第一合并写命令MWC1。主机写缓冲器200可以通过利用第一主机写缓冲器210和第二主机写缓冲器220来划分和存储大于剩余空间的写命令。
参照图4D,主机写缓冲器200可以将从文件系统接收到的第四写命令WC4存储在第二主机写缓冲器220中,同时第一主机写缓冲器210执行写命令合并,并发送第一合并写命令MWC1。存储系统可以使用第一主机写缓冲器210和第二主机写缓冲器220,并且发送来自第一主机写缓冲器210的第一合并写命令MWC1,并通过第二主机写缓冲器220同时接收来自文件系统的其他写命令以存储和合并其他写命令。
在存储系统处理存储在第一元缓冲器310中的第一元数据MT1、第二元数据MT2和第三元数据的同时,存储系统可以接收第四元数据MT4,并将第四元数据MT4存储在第二元缓冲器320中。
图5示出了根据本公开的实施例的存储系统中根据合并写命令的元数据传输。
当发送来自主机写缓冲器120的合并写命令时,存储系统可以提供利用额外报头段(EHS)来发送包括逻辑块地址和长度信息的元数据的接口。EHS将由UFS规范4.0支持,并且在除了固定为32字节的命令报头之外还需要额外报头时可以被使用。
EHS可以包括EHS报头和元。EHS报头具有固定大小,并且可以提供其中可以执行多个操作的可扩展性。元可以取决于主机写缓冲器120中合并的写命令的总数以及要使用的写命令的类型(例如,WRITE10或WRITE 16)而变化。EHS报头可以包括用于存储关于以下信息的字段:是否发送合并写命令、逻辑块地址和长度信息的特性、是否需要元传输、有效的元大小设置、以及主机写缓冲器120中的合并写命令的数量。元可以包括用于存储每个写命令的逻辑块地址和长度信息的字段。
存储系统可以合并主机写缓冲器120中存储的写命令,并通过数据传输管理器130向存储设备140发送第一合并写命令MWC1。与第一合并写命令MWC1相对应的元信息可以通过EHS发送到存储设备140。
图6示出了根据本公开的实施例的存储系统中根据合并写命令的元数据传输。
存储系统可以通过使用单独的供应商命令或UFS的写缓冲命令而不是使用EHS来发送元信息。例如,可以使用第一写缓冲命令WBC1来发送元信息,并且可以发送存储在主机写缓冲器中的第一合并写命令MWC1。在第一合并写命令MWC1之前,存储系统可以首先通过第一写缓冲命令WBC1发送元信息,并且因此,可以首先对逻辑块地址和长度信息执行有效性检查。
图7示出了根据本公开的实施例的存储系统的操作方法。
参照图7,第零写命令WC0和第一写命令WC1可以通过主机写缓冲器520和元缓冲器530发送到存储设备550。第零写命令WC0和第一写命令WC1可以是具有不同大小和地址的写命令。
首先,逻辑块地址为0且长度为4的第零写命令WC0可以由文件系统510生成并存储在主机写缓冲器520中,并且对第零写命令WC0的响应可以发送到文件系统510。第零元信息(逻辑块地址为0且长度为4)可以存储在与主机写缓冲器520相对应的元缓冲器530中。
存储系统可以在主机写缓冲器520中存储逻辑块地址为10且长度为4的第一写命令WC1。因为第一写命令WC1的大小大于主机写缓冲器520中的第一主机写缓冲器的剩余空间,所以第一写命令WC1可以划分为第一_1写命令WC1_1和第一_2写命令WC1_2。与第一_1写命令WC1_1相对应的第一_1元信息MT1_1可以包括逻辑块地址10和长度2,第一_2元信息MT1_2可以包括逻辑块地址12和长度2,并且第一_1元信息MT1_1和第一_2元信息MT1_2可以单独地存储在与主机写缓冲器520相对应的元缓冲器中。
第一合并写命令MWC1可以通过合并存储在第一主机写缓冲器中的第零写命令WC0和第一_1写命令WC1_1来生成。存储在元缓冲器530中与第一合并写命令MWC1相对应的内容可以通过第一合并写命令MWC1的EHS来发送。
当接收到第一合并写命令MWC1时,存储设备550可以通过存储在命令解析器中的EHS中的内容来确认第一合并写命令MWC1是通过合并多个写命令而获得的命令。存储设备550可以划分与第一合并写命令MWC1中的写命令相对应的数据,并将划分的数据存储在非易失性存储器中。
图8示出了根据本公开的实施例的支持多流的存储系统的操作方法。
存储系统可以支持多流,该多流包括通过划分具有相似生命周期模式的属性的相同文件或数据而获得的流。在存储系统中,可以针对每个流分离主机写缓冲器620。存储设备630还可以为每个流划分数据并存储划分的数据。
图9示出了根据本公开的实施例的不支持多流的存储系统的操作方法。
因为文件系统612在不区分第一文件FILE 1和第二文件FILE 2的情况下生成写命令,所以第一文件FILE 1和第二文件FILE 2无区别地存储在存储设备632中。
图10示出了根据本公开的实施例的支持多流的存储系统的操作方法。
因为存储设备720由于资源限制可能不针对每个流来操作主机写缓冲器710,所以主机可以针对每个流来操作主机写缓冲器710并合并每个流的写数据,以向存储设备720发送合并的写数据。在存储系统中,当发送写命令时,可以通过使用流ID作为分隔符来管理每个流的写数据。
例如,第一写命令WC1至第四写命令WC4的流ID可以是A,流ID可以不分配给第五写命令WC5,并且第六写命令WC6的流ID可以是N。
第一主机写缓冲器712可以存储流ID为A的数据,第二主机写缓冲器714可以存储没有分配流ID的数据,并且第N主机写缓冲器716可以存储流ID为N的数据。
当对存储设备720的第一写命令WC1指示快速传输时,存储系统可以直接向存储设备720发送数据而不经过主机写缓冲器710。存储系统可以绕过第二写命令WC2,然后将数据存储在主机写缓冲器710中并合并所存储的数据。
图11示出了根据本公开的实施例的支持基于区的接口的存储系统的操作方法。
主机写缓冲器320可以在区存储系统中使用,该区存储系统支持基于区的接口(包括分区块命令(ZBC))。例如,区存储系统可以在主机中生成主机写缓冲器320以补偿区存储设备330中不足的缓冲空间。
在区域存储系统中,存储设备(例如,非易失性存储器)可以在逻辑上被划分为具有特定大小的区。当从区存储系统的主机文件系统310向区存储设备330提供写命令时,可以针对每个区存储连续逻辑块地址的数据。
可以在区存储系统的区A主机文件系统312中生成用于连续逻辑块地址的写命令。生成的写命令可以由阻挡层的调度器以相反的顺序发送。在这种情况下,区存储系统可以向区A存储设备332发送关于非连续逻辑块地址的元信息以及合并写命令,并且区A存储设备332可以检查元信息,并将非连续逻辑块地址的数据排列成连续逻辑块地址。
图12示出了根据本公开的实施例的存储系统的操作方法。
存储系统可以接收存储设备信息,并生成主机写缓冲器(操作S510)。主机写缓冲器的大小可以基于存储设备的编程方法和用于由若干芯片同时处理从主机接收到的请求的交错处理单元中的至少一个来分配。基于输入/输出调度方法,主机写缓冲器可以包括第一主机写缓冲器和第二主机写缓冲器中的至少一个。存储系统还可以包括用于合并非连续逻辑块地址的写命令的元存储缓冲器。元存储缓冲器可以根据合并到主机写缓冲器中的写命令的数量来动态地分配,并且可以存储包括与写命令中的每一个相对应的数据的逻辑块地址和长度信息中的至少一个的元信息。存储系统可以生成包括元信息的EHS,并向存储设备发送生成的EHS。
存储系统可以在主机写缓冲器中存储多个写命令(操作S520)。存储系统可以通过合并写命令来生成合并写命令(操作S530)。存储系统可以向存储设备发送合并写命令(操作S540)。
图13示出了应用根据本公开的实施例的存储设备的系统1000。图13的系统1000可以基本上包括移动系统,例如,移动电话、智能电话、平板PC、可穿戴设备、医疗保健设备或物联网(IoT)设备。然而,图13的系统1000不限于移动系统,并且还可以包括PC、膝上型计算机、服务器、媒体播放器、或诸如导航设备之类的汽车设备。在下文中,附在附图标记上的下标(例如,1200a中的a和1300a中的a)用于区分具有相同功能的多个电路。
参照图13,系统1000可以包括主处理器1100、存储器1200a和1200b、以及存储设备1300a和1300b,并且可以附加地包括图像捕捉设备1410、用户输入设备1420、传感器1430、通信设备1440、显示器1450、扬声器1460、供电设备1470和连接接口1480中的一个或多个。
主处理器1100可以控制系统1000的整体操作,并且更具体地,可以控制构成系统1000的其他组件的操作。主处理器1100可以由通用处理器、专用处理器、应用处理器等来实现。
主处理器1100可以包括一个或多个CPU核1110,并且还可以包括用于控制存储器1200a和1200b和/或存储设备1300a和1300b的控制器1120。根据实施例,主处理器1100还可以包括加速器块1130,该加速器块1130是用于诸如人工智能(AI)数据计算之类的高速数据计算的专用电路。加速器块1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU),并且可以由物理上独立于其他组件的单独芯片来实现。
存储器1200a和1200b可以用作主存储器设备,并且可以包括诸如静态随机存取存储器(SRAM)和/或动态随机存取存储器(DRAM)之类的易失性存储器,或者可以包括诸如相变随机存取存储器(PRAM)和/或电阻随机存取存储器(RRAM)之类的非易失性存储器。存储器1200a和1200b还可以在与主处理器1100相同的封装中实现。
存储设备1300a和1300b可以用作存储数据的非易失性存储设备,而不管其是否提供电力,并且可以具有比存储器1200a和1200b相对更大的存储容量。存储设备1300a和1300b可以分别包括存储控制器1310a和1310b、以及在存储控制器1310a和1310b的控制下存储数据的非易失性存储设备1320a和1320b。非易失性存储设备1320a和1320b可以包括具有二维(2D)结构或3维(3D)结构的V-NAND闪存,或者可以包括其他类型的非易失性存储器,例如,PRAM和/或RRAM。
存储设备1300a和1300b可以包括在系统1000中,同时与主处理器1100物理分开,或者可以在与主处理器1100相同的封装中实现。另外,存储设备1300a和1300b可以具有诸如存储卡的形式,并且因此可以通过诸如以下描述的连接接口1480之类的接口可拆卸地耦接到系统1000的其他组件。存储设备1300a和1300b可以包括但不限于应用诸如UFS之类的标准规范的设备。
图像捕捉设备1410可以捕捉静止图像或运动图像,并且可以包括相机、便携式摄像机和/或网络摄像头。
用户输入设备1420可以由系统1000的用户接收各种类型的数据输入,并且可以包括触摸板、小键盘、键盘、鼠标和/或麦克风。
传感器1430可以感测可从系统1000外部获得的各种物理量,并且可以将感测到的物理量转换为电信号。传感器1430可以包括温度传感器、压力传感器、亮度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪。
通信设备1440可以根据各种通信协议在系统1000和系统1000外部的其他设备之间执行信号的发送和接收。通信设备1440可以包括天线、收发机和/或调制解调器。
显示器1450和扬声器1460可以用作分别向系统1000的用户输出视觉信息和听觉信息的输出设备。
供电设备1470可以适当地转换由嵌入在系统1000中的电池(未示出)和/或由外部电源供应的电力,从而向系统1000的组件中的每一个供应转换后的电力。
连接接口1480可以提供系统1000和外部设备之间的连接,该外部设备连接到系统1000,并且能够与系统1000交换数据。连接接口1480可以通过各种接口实现,例如,高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、快速PCI(PCIe)、快速非易失性存储器(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS、嵌入式通用闪存(eUFS)和CF卡接口。
图14示出了根据本公开的实施例的UFS系统2000。UFS系统2000(符合联合电子设备工程委员会(JEDEC)公布的UFS标准的系统)可以包括UFS主机2100、UFS设备2200和UFS接口2300。除非与以下关于图14的描述相冲突,图13的系统1000的以上描述也可以应用于图14的UFS系统2000。
参照图14,UFS主机2100和UFS设备2200可以通过UFS接口2300彼此连接。当图13的主处理器1100是应用处理器时,UFS主机2100可以被实现为相应的应用处理器的一部分。UFS主机控制器2110和主机存储器2140可以分别对应于图13的主处理器1100的控制器1120以及存储器1200a和1200b。UFS设备2200可以对应于图13的存储设备1300a和1300b,并且UFS设备控制器2210和非易失性存储设备2220可以分别对应于图13中的存储控制器1310a和1310b以及非易失性存储设备1320a和1320b。
UFS主机2100可以包括UFS主机控制器2110、应用2120、UFS驱动器2130、主机存储器2140和UFS互连(UIC)层2150。UFS设备2200可以包括UFS设备控制器2210、非易失性存储设备2220、存储接口2230、设备存储器2240、UIC层2250和调节器2260。非易失性存储设备2220可以包括多个存储单元2221,并且每个存储单元2221可以包括具有2D结构或3D结构的V-NAND闪存,或者可以包括另一类型的非易失性存储器,例如,PRAM和/或RRAM。UFS设备控制器2210和非易失性存储设备2220可以通过存储接口2230彼此连接。存储接口2230可以被实现为符合诸如TOGGLE或ONFI之类的标准规范。
应用2120可以指代旨在与UFS设备2200通信以使用UFS设备2200的功能的程序。应用2120可以向UFS驱动器2130发送输入输出请求,以执行到UFS设备2200的输入以及从UFS设备2200的输出。输入-输出请求可以指代但不限于数据的读请求、写请求和/或丢弃请求。
UFS驱动器2130可以通过UFS主机控制器接口(HCI)管理UFS主机控制器2110。UFS驱动器2130可以将由应用2120生成的输入输出请求转换为由UFS标准定义的UFS命令,并且可以将所转换的UFS命令传送到UFS主机控制器2110。一个输入输出请求可以被转换为多个UFS命令。虽然UFS命令可以基本上是由SCSI标准定义的命令,但UFS命令也可以是UFS标准专用命令。
UFS主机控制器2110可以通过UIC层2150和UFS接口2300向UFS设备2200的UIC层2250发送由UFS驱动器2130转换的UFS命令。在该过程中,UFS主机控制器2110的UFS主机寄存器2111可以起到命令队列的作用。
UFS主机2100的UIC层2150可以包括MIPI M-PHY 2151和MIPI UniPro 2152,并且UFS设备2200的UIC层2250也可以包括MIPI M-PHY 2251和MIPI UniPro 2252。
UFS接口2300可以包括用于发送参考时钟信号REF_CLK的线、用于发送关于UFS设备2200的硬件复位信号RESET_n的线、用于发送差分输入信号对DIN_T和DIN_C的一对线、以及用于发送差分输出信号对DOUT_T和DOUT_C的一对线。
从UFS主机2100向UFS设备2200提供的参考时钟信号REF_CLK的频率值可以是但不限于19.2MHz、26MHz、38.4MHz和52MHz之一。即使正在操作UFS主机2100时(即,即使正在执行UFS主机2100和UFS设备2200之间的数据发送和接收时),参考时钟信号REF_CLK的频率值也可以改变。UFS设备2200可以通过使用锁相环(PLL)等从UFS主机2100接收到的参考时钟信号REF_CLK生成具有各种频率的时钟信号。另外,UFS主机2100还可以基于参考时钟信号REF_CLK的频率值来设置UFS主机2100和UFS设备2200之间的数据速率的值。即,可以根据参考时钟信号REF_CLK的频率值来确定数据速率的值。
UFS接口2300可以支持多个通道,并且每个通道可以由差分对实现。例如,UFS接口可以包括一个或多个接收通道和一个或多个发送通道。在图14中,用于发送差分输入信号对DIN_T和DIN_C的一对线可以构成接收通道,并且用于发送差分输出信号对DOUT_T和DOUT_C的一对线可以构成发送通道。尽管图14示出了一个发送通道和一个接收通道,但是发送通道和接收通道各自的数量可以改变。
接收通道和发送通道可以以串行通信的方式传送数据,并且由于接收通道与发送通道分开的结构,可以允许UFS主机2100和UFS设备2200之间的全双工类型通信。即,即使在通过接收通道从UFS主机2100接收数据时,UFS设备2200可以通过发送通道向UFS主机2100发送数据。另外,控制数据(例如,从UFS主机2100到UFS设备2200的命令、以及UFS主机2100旨在存储在UFS设备2200的非易失性存储设备2220中或旨在从非易失性存储设备2220读取的用户数据)可以通过同一通道传送。因此,在UFS主机2100和UFS设备2200之间,除了一对接收通道和一对发送通道之外,不需要进一步布置单独的用于数据传送的通道。
UFS设备2200的UFS设备控制器2210可以总体控制UFS设备2200的操作。UFS设备控制器2210可以通过作为逻辑数据存储单元的逻辑单元(LU)2211来管理非易失性存储设备2220。LU 2211的数量可以是但不限于8。UFS设备控制器2210可以包括闪存转换层(FTL),并且通过使用FTL的地址映射信息,可以将从UFS主机2100传送的逻辑数据地址(例如,逻辑块地址(LBA))转换为物理数据地址(例如,物理块地址(PBA))。在UFS系统2000中,用于存储用户数据的逻辑块可以具有特定范围内的大小。例如,逻辑块的最小大小可以被设置为4K字节。
当来自UFS主机2100的命令通过UIC层2250输入到UFS设备2200时,UFS设备控制器2210可以根据输入命令执行操作,并且当操作完成时,UFS设备控制器2210可以向UFS主机2100发送完成响应。
例如,当UFS主机2100旨在将用户数据存储在UFS设备2200中时,UFS主机2100可以向UFS设备2200发送数据存储命令。当从UFS设备2200接收到指示准备接收用户数据的响应时,UFS主机2100可以向UFS设备2200发送用户数据。UFS设备控制器2210可以将接收到的用户数据临时存储在设备存储器2240中,并且基于FTL的地址映射信息,可以将临时存储在设备存储器2240中的用户数据存储在非易失性存储设备2220的选定位置中。
作为另一示例,当UFS主机2100旨在读取存储在UFS设备2200中的用户数据时,UFS主机2100可以向UFS设备2200发送数据读命令。已经接收到数据读命令的UFS设备控制器2210可以基于数据读命令从非易失性存储设备2220读取用户数据,并且可以将读取的用户数据临时存储在设备存储器2240中。在该数据读取过程中,UFS设备控制器2210可以通过使用嵌入式纠错码(ECC)电路(未示出)来检测和校正读取的用户数据中的错误。另外,UFS设备控制器2210可以向UFS主机2100发送临时存储在设备存储器2240中的用户数据。此外,UFS设备控制器2210还可以包括高级加密标准(AES)电路(未示出),并且AES电路可以通过使用对称密钥算法对输入到UFS设备控制器2210的数据进行加密或解密。
UFS主机2100可以根据顺序将要向UFS设备2200发送的命令存储在能够用作命令队列的UFS主机寄存器2111中,并且可以按照顺序向UFS设备2200发送命令。这里,即使在先前发送的命令仍由UFS设备2200处理时(即,即使在UFS主机2100接收到指示UFS设备2200完成了对先前发送的命令的处理的通知之前),UFS主机2100可以向UFS设备2200发送在命令队列中等待的下一个命令,并且因此,即使在处理先前发送的命令时,UFS设备2200也可以从UFS主机2100接收下一个命令。命令队列中能够存储的最大命令数(即,队列深度)可以是例如32。另外,命令队列可以通过循环队列类型来实现,其中,存储在队列中的命令序列的开始和结束分别由头指针和尾指针指示。
多个存储单元2221中的每一个可以包括存储器单元阵列和用于控制存储器单元阵列的操作的控制电路。存储器单元阵列可以包括2D存储器单元阵列或3D存储器单元阵列。存储器单元阵列可以包括多个存储器单元,并且每个存储器单元可以是存储1比特信息的单级单元(SLC),或者可以是存储2比特或更多比特信息的单元,例如,多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。3D存储器单元阵列可以包括竖直取向的竖直NAND串,使得至少一个存储器单元位于另一存储器单元上。
VCC、VCCQ1、VCCQ2等可以作为电源电压输入到UFS设备2200。作为UFS设备2200的主电源电压的VCC可以具有约2.4V至约3.6V的值。作为用于提供低电压范围内电压的电源电压的VCCQ1主要用于UFS设备控制器2210,并且可以具有约1.14V至约1.26V的值。作为用于提供高于VCCQ1并低于VCC范围内电压的电源电压的VCCQ2主要用于诸如MIPI M-PHY2251之类的输入输出接口,并且具有约1.7V至约1.95V的值。上面阐述的电源电压可以通过调节器2260提供给UFS设备2200的各个组件。调节器2260可以通过分别连接到上面阐述的电源电压中的不同电压的单元组调节器组来实现。
图15示出了根据本公开的实施例的非易失性存储设备2220a。
参照图15,非易失性存储设备2220a可以包括存储器设备2224和存储器控制器2222。非易失性存储设备2220a可以支持多个通道CH1至CHm,并且存储器设备2224可以通过多个通道CH1至CHm连接到存储器控制器2222。例如,非易失性存储设备2220a可以被实现为诸如固态驱动器(SSD)的存储设备。
存储器设备2224可以包括多个非易失性存储器设备NVM11至NVMmn。非易失性存储器设备NVM11至NVMmn中的每一个可以通过相应的方式连接到多个通道CH1至CHm之一。例如,非易失性存储器设备NVM11至NVM1n可以分别通过路径W11至W1n连接到第一通道CH1,并且非易失性存储器设备NVM21至NVM2n可以分别通过路径W21至W2n连接到第二通道CH2。在示例实施例中,非易失性存储器设备NVM11至NVMmn中的每一个可以由能够根据来自存储器控制器2222的单独命令进行操作的任何存储器单元来实现。例如,尽管非易失性存储器设备NVM11至NVMmn中的每一个可以由芯片或管芯来实现,但是本公开不限于此。
存储器控制器2222可以通过多个通道CH1至CHm向存储器设备2224发送信号,以及从存储器设备2224接收信号。例如,存储器控制器2222可以通过通道CH1至CHm向存储器设备2224发送命令CMDa至CMDm、地址ADDRa至ADDRm、以及数据DATAa至DATAm,或者可以从存储器设备2224接收数据DATAa至DATAm。
存储器控制器2222可以通过每个通道选择连接到相应通道的非易失性存储器设备之一,并且可以向所选择的非易失性存储器设备发送信号,以及从所选择的非易失性存储器设备接收信号。例如,存储器控制器2222可以从非易失性存储器设备NVM11至NVM1n中选择连接到第一通道CH1的非易失性存储器设备NVM11。存储器控制器2222可以通过第一通道CH1向所选择的非易失性存储器设备NVM11发送命令CMDa、地址ADDRa和数据DATAa,或者可以从所选择的非易失性存储器设备NVM11接收数据DATAa。
存储器控制器2222可以通过不同的通道并行地向存储器设备2224发送信号,以及从存储器设备2224接收信号。例如,在通过第一通道CH1向存储器设备2224发送命令CMDa的同时,存储器控制器2222可以通过第二通道CH2向存储器设备2224发送命令CMDb。例如,在通过第一通道CH1从存储器设备2224接收数据DATAa的同时,存储器控制器2222可以通过第二通道CH2从存储器设备2224接收数据DATAb。
存储器控制器2222可以控制存储器设备2224的整体操作。存储器控制器2222可以通过向通道CH1至CHm发送信号来控制连接到通道CH1至CHm的非易失性存储器设备NVM11至NVMmn中的每一个。例如,存储器控制器2222可以通过向第一通道CH1发送命令CMDa和地址ADDRa来控制从非易失性存储器设备NVM11至NVM1n中选择的一个非易失性存储器设备。
非易失性存储器设备NVM11至NVMmn中的每一个可以根据存储器控制器2222的控制来操作。例如,非易失性存储器设备NVM11可以根据向第一通道CH1提供的命令CMDa、地址ADDRa和数据DATAa对数据DATAa进行编程。例如,非易失性存储器设备NVM21可以根据向第二通道CH2提供的命令CMDb和地址ADDRb来读取数据DATAb,并且可以向存储器控制器2222发送读取的数据DATAb。
虽然图15示出了存储器设备2224通过m个通道与存储器控制器2222进行通信,并且包括与每个通道相对应的n个非易失性存储器设备,但是通道的数量和连接到单个通道的非易失性存储器设备的数量可以进行各种改变。
图16示出了根据本公开的实施例的非易失性存储设备2220b。参照图16,非易失性存储设备2220b可以包括存储器设备2226和存储器控制器800。存储器设备2226可以对应于基于图15中的第一通道CH1至第m通道CHm之一与存储器控制器2222进行通信的非易失性存储器设备NVM11至NVMmn之一。存储器控制器2222可以对应于图15中的存储器控制器2222。
存储器设备2226可以包括第一引脚P11至第八引脚P18、存储器接口电路2310、控制逻辑电路2320和存储器单元阵列2330。
存储器接口电路2310可以通过第一引脚P11从存储器控制器2222接收芯片使能信号nCE。存储器接口电路2310可以根据芯片使能信号nCE通过第二引脚P12至第八引脚P18向存储器控制器2222发送信号,以及从存储器控制器2222接收信号。例如,当芯片使能信号nCE处于使能状态(例如,低电平)时,存储器接口电路2310可以通过第二引脚P12至第八引脚P18向存储器控制器2222发送信号,以及从存储器控制器2222接收信号。
存储器接口电路2310可以通过第二引脚P12至第四引脚P14分别从存储器控制器2222接收命令锁存使能信号CLE、地址锁存使能信号ALE和写使能信号nWE。存储器接口电路2310可以通过第七引脚P17从存储器控制器2222接收数据信号DQ,或者可以向存储器控制器2222发送数据信号DQ。命令CMD、地址ADDR和数据DATA可以通过数据信号DQ传输。例如,数据信号DQ可以通过多条数据信号线传输。在这种情况下,第七引脚P17可以包括与多个数据信号相对应的多个引脚。
存储器接口电路2310可以基于写使能信号nWE的切换时序,从在命令锁存使能信号CLE的使能时间段(例如,高电平状态)内接收到的数据信号DQ获得命令CMD。存储器接口电路2310可以基于写使能信号nWE的切换时序,从在地址锁存使能信号ALE的使能时间段(例如,高电平状态)内接收到的数据信号DQ获得地址ADDR。
在示例实施例中,写使能信号nWE可以维持在静态(例如,高电平或低电平),然后可以在高电平和低电平之间切换。例如,写使能信号nWE可以在发送命令CMD或地址ADDR的时间段内切换。因此,存储器接口电路2310可以基于写使能信号nWE的切换时序来获得命令CMD或地址ADDR。
存储器接口电路2310可以通过第五引脚P15从存储器控制器2222接收读使能信号nRE。存储器接口电路2310可以通过第六引脚P16从存储器控制器2222接收数据选通信号DQS,或者向存储器控制器2222发送数据选通信号DQS。
在存储器设备2226的数据输出操作中,存储器接口电路2310可以在输出数据DATA之前通过第五引脚P15接收切换的读使能信号nRE。存储器接口电路2310可以基于读使能信号nRE的切换而生成切换的数据选通信号DQS。例如,存储器接口电路2310可以生成数据选通信号DQS,该数据选通信号DQS在从读使能信号nRE的切换开始时间开始的预设延迟(例如,tDQSRE)之后开始切换。存储器接口电路2310可以基于数据选通信号DQS的切换时序来发送包括数据DATA的数据信号DQ。因此,数据DATA可以与数据选通信号DQS的切换时序对齐地发送到存储器控制器2222。
在存储器设备2226的数据输入操作中,当从存储器控制器2222接收到包括数据DATA的数据信号DQ时,存储器接口电路2310可以从存储器控制器2222接收切换的数据选通信号DQS以及数据DATA。存储器接口电路2310可以基于数据选通信号DQS的切换时序从数据信号DQ获得数据DATA。例如,存储器接口电路2310可以通过在数据选通信号DQS的上升沿和下降沿处对数据信号DQ进行采样来获得数据DATA。
存储器接口电路2310可以通过第八引脚P18向存储器控制器2222发送就绪/忙碌输出信号nR/B。存储器接口电路2310可以通过就绪/忙碌输出信号nR/B向存储器控制器2222发送存储器设备2226的状态信息。当存储器设备2226处于忙碌状态时(即,当正在执行存储器设备2226的内部操作时),存储器接口电路2310可以向存储器控制器2222发送指示忙碌状态的就绪/忙碌输出信号nR/B。当存储器设备2226处于就绪状态时(即,当未执行或完成存储器设备2226的内部操作时),存储器接口电路2310可以向存储器控制器2222发送指示就绪状态的就绪/忙碌输出信号nR/B。例如,在存储器设备2226响应于页面读命令从存储器单元阵列2330读取数据DATA的同时,存储器接口电路2310可以向存储器控制器2222发送指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B。例如,在存储器设备2226响应于编程命令将数据DATA编程到存储器单元阵列2330中的同时,存储器接口电路2310可以向存储器控制器2222发送指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B。
控制逻辑电路2320通常可以控制存储器设备2226的各种操作。控制逻辑电路2320可以接收从存储器接口电路2310获得的命令CMD/地址ADDR。控制逻辑电路2320可以根据接收到的命令CMD/地址ADDR生成用于控制存储器设备2226的其他组件的控制信号。例如,控制逻辑电路2320可以生成用于将数据DATA编程到存储器单元阵列2330或从存储器单元阵列2330读取数据DATA的各种控制信号。
存储器单元阵列2330可以根据控制逻辑电路2320的控制来存储从存储器接口电路2310获得的数据DATA。存储器单元阵列2330可以根据控制逻辑电路2320的控制将存储的数据DATA输出到控制逻辑电路2320。
存储器单元阵列2330可以包括多个存储器单元。例如,多个存储器单元可以包括闪存单元。然而,本公开不限于此,并且存储器单元可以包括RRAM单元、铁电随机存取存储器(FRAM)单元、PRAM单元、晶闸管随机存取存储器(TRAM)单元、或磁随机存取存储器(MRAM)单元。在下文中,将主要描述本公开的实施例,其中,存储器单元为NAND闪存单元。
存储器控制器2222可以包括第一引脚P21至第八引脚P28和控制器接口电路2410。第一引脚P21至第八引脚P28可以分别对应于存储器设备2226的第一引脚P11至第八引脚P18。
控制器接口电路2410可以通过第一引脚P21向存储器设备2226发送芯片使能信号nCE。控制器接口电路2410可以通过第二引脚P22至第八引脚P28向通过芯片使能信号nCE选择的存储器设备2226发送信号,以及从存储器设备2226接收信号。
控制器接口电路2410可以通过第二引脚P22至第四引脚P24向存储器设备2226发送命令使能信号CLE、地址锁存使能信号ALE和写使能信号nWE。控制器接口电路2410可以通过第七引脚P27向存储器设备2226发送数据信号DQ,或从存储器设备2226接收数据信号DQ。
控制器接口电路2410可以向存储器设备2226发送包括命令CMD或地址ADDR的数据信号DQ以及正在切换的写使能信号nWE。控制器接口电路2410可以根据发送具有使能状态的命令锁存使能信号CLE来发送包括命令CMD的数据信号DQ,并且控制器接口电路2410可以根据具有使能状态的地址锁存使能信号ALE来发送包括地址ADDR的数据信号DQ。
控制器接口电路2410可以通过第五引脚P25向存储器设备2226发送读使能信号nRE。控制器接口电路2410可以通过第六引脚P26从存储器设备2226接收数据选通信号DQS,或者向存储器设备2226发送数据选通信号DQS。
在存储器设备2226的数据输出操作中,控制器接口电路2410可以生成切换的读使能信号nRE,并且可以向存储器设备2226发送读使能信号nRE。例如,控制器接口电路2410在输出数据DATA之前可以生成读使能信号nRE,该读使能信号nRE从静态(例如,高电平或低电平)改变为切换状态。因此,在存储器设备2226中,可以生成基于读使能信号nRE切换的数据选通信号DQS。控制器接口电路2410可以从存储器设备2226接收包括数据DATA的数据信号DQ以及切换的数据选通信号DQS。控制器接口2410可以基于数据选通信号DQS的切换时序从数据信号DQ获得数据DATA。
在存储器设备2226的数据输入操作中,控制器接口电路2410可以生成切换的数据选通信号DQS。例如,控制器接口电路2410可以在发送数据DATA之前生成从静态(例如,高电平或低电平)改变为切换状态的数据选通信号DQS。控制器接口电路2410可以基于数据选通信号DQS的切换时序向存储器设备2226发送包括数据DATA的数据信号DQ。
控制器接口电路2410可以通过第八引脚P28从存储器设备2226接收就绪/忙碌输出信号nR/B。控制器接口电路2410可以基于就绪/忙碌输出信号nR/B来确定存储器设备2226的状态信息。
尽管已经参考本公开的实施例具体示出和描述了本公开,但相关领域普通技术人员将理解,在不脱离所附权利要求的精神和范围的情况下,可以进行形式和细节上的多种改变。
Claims (20)
1.一种处理器,被配置为控制存储设备,所述处理器包括:
至少一个主机写缓冲器,基于所述存储设备的设备信息而生成;以及
控制模块,被配置为控制所述至少一个主机写缓冲器,
其中,所述控制模块还被配置为:在所述至少一个主机写缓冲器中存储多个写命令,并基于元数据合并所述多个写命令以生成合并写命令。
2.根据权利要求1所述的处理器,
其中,所述多个写命令由主机生成,
其中,所述控制模块还被配置为向所述存储设备发送生成的合并写命令。
3.根据权利要求1所述的处理器,其中,所述至少一个主机写缓冲器的大小基于所述存储设备的编程方法和用于响应于从主机接收到的请求由若干芯片同时处理的交错处理单元中的至少一个来分配。
4.根据权利要求1所述的处理器,其中,所述至少一个主机写缓冲器包括基于输入/输出调度方法的第一主机写缓冲器和第二主机写缓冲器中的至少一个。
5.根据权利要求1所述的处理器,还包括:
元存储缓冲器,被配置为合并非连续逻辑块地址的写命令,
其中,所述元存储缓冲器还被配置为:根据合并到所述至少一个主机写缓冲器中的写命令的数量而被动态地分配,并存储包括与所述写命令中的每一个相对应的数据的逻辑块地址和长度信息中的至少一个的元信息。
6.根据权利要求5所述的处理器,其中,所述控制模块还被配置为生成包括所述元信息的额外报头段EHS。
7.根据权利要求5所述的处理器,其中,所述控制模块还被配置为生成包括所述元信息的写缓冲器命令。
8.根据权利要求1所述的处理器,其中,所述控制模块还被配置为:当所述多个写命令中的第一写命令存储在所述至少一个主机写缓冲器中时,向主机发送与所述多个写命令中的所述第一写命令相对应的第一命令响应,并且
当所述多个写命令中的第二写命令存储在所述至少一个主机写缓冲器中时,向所述主机发送与所述多个写命令中的所述第二写命令相对应的第二命令响应。
9.根据权利要求1所述的处理器,其中,以多流模式为每个流分配所述至少一个主机写缓冲器。
10.根据权利要求1所述的处理器,其中,所述存储设备以区为单位被划分和控制,并且所述至少一个主机写缓冲器被配置为对应于所述区。
11.一种存储系统,包括:
主机;以及
存储设备,
其中,所述主机包括:
至少一个主机写缓冲器,基于所述存储设备的设备信息而生成;以及
控制模块,被配置为控制所述至少一个主机写缓冲器,
其中,所述控制模块还被配置为:在所述至少一个主机写缓冲器中存储由所述主机生成的多个写命令,并基于元数据合并所述多个写命令以生成合并写命令。
12.根据权利要求11所述的存储系统,
其中,所述合并写命令包括非连续逻辑块地址的写命令,
其中,所述控制模块还被配置为向所述存储设备发送生成的合并写命令。
13.根据权利要求11所述的存储系统,其中,所述至少一个主机写缓冲器的大小基于所述存储设备的编程方法和用于响应于从所述主机接收到的请求由若干芯片同时处理的交错处理单元中的至少一个来分配。
14.根据权利要求11所述的存储系统,其中,所述至少一个主机写缓冲器包括基于输入/输出调度方法的第一主机写缓冲器和第二主机写缓冲器中的至少一个。
15.根据权利要求11所述的存储系统,还包括:
元存储缓冲器,被配置为合并非连续逻辑块地址的写命令,
其中,所述元存储缓冲器还被配置为:根据合并到所述至少一个主机写缓冲器中的写命令的数量而被动态地分配,并存储包括与所述写命令中的每一个相对应的数据的逻辑块地址和长度信息中的至少一个的元信息。
16.根据权利要求11所述的存储系统,其中,所述控制模块还被配置为:当所述多个写命令中的第一写命令存储在所述至少一个主机写缓冲器中时,向所述主机发送与所述多个写命令中的所述第一写命令相对应的第一命令响应,并且
当所述多个写命令中的第二写命令存储在所述至少一个主机写缓冲器中时,向所述主机发送与所述多个写命令中的所述第二写命令相对应的第二命令响应。
17.根据权利要求11所述的存储系统,其中,以多流模式为每个流分配所述至少一个主机写缓冲器。
18.根据权利要求11所述的存储系统,其中,所述存储设备以区为单位被划分和控制,并且所述至少一个主机写缓冲器被配置为对应于所述区。
19.一种控制存储设备的方法,所述方法包括:
基于所述存储设备的设备信息生成至少一个主机写缓冲器;
在所述至少一个主机写缓冲器中存储由主机生成的多个写命令;以及
基于元数据合并所述多个写命令以生成合并写命令。
20.根据权利要求19所述的方法,其中,在所述至少一个主机写缓冲器中存储包括:
当所述多个写命令中的第一写命令存储在所述至少一个主机写缓冲器中时,向所述主机发送与所述多个写命令中的所述第一写命令相对应的第一命令响应;以及
当所述多个写命令中的第二写命令存储在所述至少一个主机写缓冲器中时,向所述主机发送与所述多个写命令中的所述第二写命令相对应的第二命令响应,
其中,所述合并写命令包括非连续逻辑块地址的写命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0004938 | 2021-01-13 | ||
KR20210004938 | 2021-01-13 | ||
KR10-2021-0064637 | 2021-05-20 | ||
KR1020210064637A KR102547950B1 (ko) | 2021-01-13 | 2021-05-20 | 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114764310A true CN114764310A (zh) | 2022-07-19 |
Family
ID=79316775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210017105.2A Pending CN114764310A (zh) | 2021-01-13 | 2022-01-07 | 使用主机存储缓冲器的处理器和包括该处理器的存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220222011A1 (zh) |
EP (1) | EP4030274A1 (zh) |
CN (1) | CN114764310A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11860811B2 (en) * | 2022-03-23 | 2024-01-02 | Arm Limited | Message protocol for a data processing system |
US20230359391A1 (en) * | 2022-05-05 | 2023-11-09 | Western Digital Technologies, Inc. | Allocation of host memory buffer for sustained sequential writes |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180150220A1 (en) * | 2016-11-25 | 2018-05-31 | Samsung Electronics Co., Ltd. | System and method for improving storage device i/o performance |
KR20190019712A (ko) * | 2017-08-18 | 2019-02-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN110033799A (zh) * | 2018-01-12 | 2019-07-19 | 三星电子株式会社 | 基于屏障命令按顺序存储数据的存储设备 |
-
2022
- 2022-01-07 CN CN202210017105.2A patent/CN114764310A/zh active Pending
- 2022-01-10 EP EP22150727.0A patent/EP4030274A1/en active Pending
- 2022-01-12 US US17/647,745 patent/US20220222011A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220222011A1 (en) | 2022-07-14 |
EP4030274A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170322897A1 (en) | Systems and methods for processing a submission queue | |
US11188251B2 (en) | Partitioned non-volatile memory express protocol for controller memory buffer | |
CN110287133B (zh) | 存储器控制器及具有其的存储器系统 | |
EP4030274A1 (en) | Processor using host memory buffer and storage system including the processor | |
JP2012526324A (ja) | 不揮発性メモリシステムのためのマルチページ準備コマンド | |
CN113326216B (zh) | 存储器子系统控制器及相关方法和存储媒体 | |
US20220100425A1 (en) | Storage device, operating method of storage device, and operating method of computing device including storage device | |
JP2023500823A (ja) | メモリ・サブシステムのための容量拡張 | |
KR102547950B1 (ko) | 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템 | |
CN113284528A (zh) | 存储设备和包括存储设备的存储系统 | |
WO2017189087A1 (en) | Systems and methods for performing direct memory access (dma) operations | |
EP3955102B1 (en) | Storage system performing overwrite, host system controlling storage system, and operating method for storage system | |
CN114115713A (zh) | 用于执行高速链路启动的存储设备和包括其的存储系统 | |
CN114281775A (zh) | 数据处理方法和数据处理装置 | |
KR20230009196A (ko) | 스토리지 장치, 및 이의 동작 방법 | |
KR20220032816A (ko) | 메모리 시스템에서 데이터 통신을 보정하는 장치 및 방법 | |
US20230393749A1 (en) | Method and device of storage data | |
US20230153237A1 (en) | Method and device for storing data | |
US20230244402A1 (en) | Storage device and operating method of storage device | |
EP4220374A1 (en) | Storage device and operating method of storage device | |
EP3982244B1 (en) | Storage controller, storage system and operating methods thereof | |
US11157403B2 (en) | Controller and memory system for receiving a format request and configuring a map table | |
US20240012564A1 (en) | Memory controller and storage device including the same | |
US11461176B2 (en) | Memory device and memory system | |
US20230384936A1 (en) | Storage device, electronic device including storage device, 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 |