CN109324754A - 与主机接合的储存装置以及操作主机和储存装置的方法 - Google Patents
与主机接合的储存装置以及操作主机和储存装置的方法 Download PDFInfo
- Publication number
- CN109324754A CN109324754A CN201810418379.6A CN201810418379A CN109324754A CN 109324754 A CN109324754 A CN 109324754A CN 201810418379 A CN201810418379 A CN 201810418379A CN 109324754 A CN109324754 A CN 109324754A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- host
- grouping
- storage device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 239000000872 buffer Substances 0.000 claims abstract description 323
- 230000004044 response Effects 0.000 claims abstract description 38
- 230000015654 memory Effects 0.000 claims description 124
- 230000005540 biological transmission Effects 0.000 claims description 44
- 238000013500 data storage Methods 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 15
- 230000003139 buffering effect Effects 0.000 description 6
- 238000005138 cryopreservation Methods 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000000758 substrate Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005621 ferroelectricity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 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/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/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
- 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/16—Memory access
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)
- Information Transfer Systems (AREA)
- Memory System (AREA)
- Communication Control (AREA)
Abstract
提供了一种与主机接合的储存装置以及操作主机和储存装置的方法。操作储存装置的方法包含从主机接收含有缓冲器地址的第一分组,解析来自第一分组中的缓冲器地址,以及响应于第一分组而向主机发送含有缓冲器地址的第二分组,该缓冲器地址指示了从主机中的多个数据缓冲器之中所选择的数据缓冲器的位置。
Description
相关申请的交叉引用
本申请要求于2017年7月31日在韩国知识产权局所提交的韩国专利申请号为No.10-2017-0097133的优先权,其公开内容通过引用整体并入本文中。
技术领域
本公开涉及操作主机和储存装置的方法,并且更特别地,涉及用于与主机接合的储存装置以及操作该主机和储存装置的方法。
背景技术
非易失性存储器装置即使当电力切断时也可以保留储存在其中的数据。近期,包含基于闪存的非易失性存储器的储存装置(诸如嵌入式多媒体卡(eMMC)、通用快闪储存体(UFS)、固态驱动器(SSD)和存储器卡)已经被广泛地使用。储存装置可用于储存或移动大量数据。
包含储存装置的数据处理系统可以被称为储存系统。储存系统可以包含主机和储存装置。主机和储存装置可以通过各种接口标准进行连接,并且在接合期间,需要通过减少数据处理操作(诸如读取操作和写入操作)的开销来在数据处理性能方面进行改善。
发明内容
本公开提供了操作主机和储存装置的方法,以通过减少主机和储存装置之间的数据处理的开销来增加数据处理性能。
根据公开的方面,提供了操作储存装置的方法。该方法包含从主机接收第一分组,该分组包含缓冲器地址,该缓冲器地址指示从主机中的多个数据缓冲器之间所选择的数据缓冲器的位置。缓冲器地址从第一分组进行解析。响应于第一分组,将包含缓冲器地址的第二分组发送到主机。
根据本公开的另一个方面,提供具有存储器核心和储存控制器的储存装置。存储器核心配置为以非易失性的方式储存数据。储存控制器配置为与外侧的主机接口,配置为管理用于包括在主机中的多个数据缓冲器的缓冲器地址,配置为包含指示分组中的至少一个数据缓冲器的位置的缓冲器地址,并且配置为当分组是用于请求对至少一个数据缓冲器的存取时将分组发送到主机。
根据公开的另一个方面,提供了操作主机的方法。该方法包含从储存装置接收第一分组,该第一分组含有第一缓冲器地址,该第一缓冲器地址指示从主机中的多个数据缓冲器之间所选择的数据缓冲器的位置。第一缓冲器地址从第一分组进行解析。并且在由已经被解析的第一缓冲器地址所指示的位置处存取数据缓冲器中的数据。
根据本公开的另一个方面,提供了由主机执行的用于与非易失性存储器装置进行通信的方法。该方法包含从非易失性存储器装置接收第一分组,该第一分组包括用于识别数据缓冲器内的第一地址的第一信息。响应于接收第一分组,使用第一信息来存取第一地址。
附图说明
结合附图,从以下的详细描述中将更清楚地理解本公开的实施例,其中:
图1是根据本公开的实施例的数据处理系统的框图;
图2是图1中示出的根据本公开的实施例的主机的框图;
图3是图1中示出的根据本公开的实施例的储存控制器的框图;
图4是根据本公开的实施例的使用通用快闪储存(universal flash storage,UFS)接口的储存系统的框图;
图5和6是根据本公开的实施例的操作主机的方法的流程图;
图7是根据本公开的实施例的操作储存装置的方法的流程图;
图8以及图9A和9B是根据本公开的实施例的储存在主机存储器和寄存器中的各种信息的框图,该寄存器包含在主机控制器中;
图10以及图11A和11B是根据本公开的实施例的在UFS接口中涉及的数据读取操作和分组的图;
图12和13是根据本公开的实施例的在UFS接口中涉及的数据写入操作和分组的图;
图14是示例的图,其中本公开的实施例应用于限定在UFS接口中的各种类型的分组。
图15是根据本公开的实施例的管理缓冲器地址的储存控制器的框图;
图16是图15中示出的根据本公开的实施例的操作储存控制器的方法的流程图;
图17A到17C是当响应于单个命令UFS协议信息单元(UPIU)来发送多个准备传输的(ready-to-transfer,RTT)UPIU时的储存系统的操作的框图;
图18(a)和18(b)是根据本公开的一些实施例的分组的结构的图;以及
图19到25是根据本公开的一些实施例产生的分组的各种结构的图。
具体实施方式
图1是根据本公开的实施例的数据处理系统的框图。
数据处理系统10可以包含主机100和储存装置200。储存装置200可以包含储存控制器210和存储器核心220。当储存装置200以非易失性的方式储存数据时,存储器核心220可以包含非易失性存储器(NVM)核心。主机100可以包含主机控制器110和主机存储器120。主机存储器120可以包含缓冲器区域121。
数据处理系统(或储存系统)10可以实现为个人计算机(PC)、数据服务器、网络附连储存(network-attached storage,NAS)、物联网(internet of thing,IoT)、或者便携式电子装置。便携式电子装置可以是笔记本计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字照相机、数字摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持式游戏机、电子书或可穿戴装置。
储存装置200可以包含储存介质,其根据来自主机100的请求储存数据。例如,储存装置200可以包含至少一个固态驱动器(SSD)。当储存装置200包含SSD时,储存装置200可以包含以非易失性的方式储存数据的多个闪存芯片(例如,NAND存储器芯片)。
替代地,储存装置200可以是包含至少一个闪存芯片的闪存装置。在一些实施例中,储存装置200可以是储存系统10中的嵌入式存储器。例如,储存装置200可以是嵌入式多媒体卡(eMMC)或者嵌入式通用快闪储存(UFS)存储器装置。在其他实施例中,储存装置200可以是可附连到储存系统10或者从储存系统10可拆卸的外部存储器。例如,储存装置200可以是UFS存储器卡、紧凑型闪速(CF)卡、安全数字(SD)卡、微型SD卡、迷你SD卡、极限数字(extreme digital,xD)卡或记忆棒(memory stick)。
当储存装置200包含闪存时,闪存可以包含二维(2D)NAND存储器阵列或三维(3D)(或垂直的NAND(VNAND))存储器阵列。3D存储器阵列可以单片地形成在存储器单元阵列或者电路的至少一个物理级别处,该存储器单元阵列具有设置在硅基板上的有效区,该电路在存储器单元的操作中被涉及并且形成在基板上或者形成在基板中。术语“单片”意味着阵列的每个级别的层直接沉积在阵列的每个下卧的级别的层上。在一些实施例中,3D存储器阵列包含在垂直方向上布置的垂直的NAND串,使得至少一个存储器单元放置在另一个存储器单元上。至少一个存储器单元可以包含电荷陷阱层。
3D存储器阵列的结构(其中3D存储器阵列包含多个级别以及由级别共享的字线和/或位线)在公开号为7,679,133的美国专利、公开号为8,553,466的美国专利、公开号为8,654,587的美国专利、公开号为8,559,235的美国专利和申请号为2011/0233648的美国专利申请中公开,这些公开通过引用并入本文中。
在另一个示例中,储存装置200可以包含不同类型的非易失性存储器。储存装置200可以使用磁性随机存取存储器(MRAM)、自旋转移力矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻式RAM以及其他不同类型的存储器。
主机100可以使用各种类型的接口与储存装置200进行通信。例如,主机100可以使用标准接口与储存装置200进行连接,该标准接口诸如通用快闪储存(UFS)、串行高级技术附件(SATA)、小型计算机小型接口(SCSI)、串行附连SCSI(SAS)或eMMC。主机100和储存装置200可以根据当前使用的接口的协议来产生和发送分组。图1示出了在主机100中产生并发送到储存装置200的第一分组Packet_H和在储存装置200中产生并发送到主机100的第二分组Packet_S。
主机控制器110可以包含主机控制器接口(未示出)。主机控制器接口可以管理存储器核心220中的缓冲器区域121的储存数据(例如,写入数据)或者缓冲器区域121中的存储器核心220的储存数据(例如,读取数据)的操作。储存控制器210可以包含用于与主机控制器110接合的装置控制器接口(未示出)。
主机控制器110和主机存储器120可以分别实现为分离的半导体芯片。替代地,主机控制器110和主机存储器120可以集成到一个半导体芯片中。主机控制器110可以是包含在应用处理器中的多个模块中的一个。应用处理器可以实现为片上系统(SoC)。主机存储器120可以是放置在应用处理器或存储器装置内侧的嵌入式存储器,或者可以是放置在应用处理器外侧的模块。
主机100还可以包含涉及储存装置200的驱动的各种装置。例如,诸如主机应用或装置驱动器的软件模块(未示出)可以包含在主机100中。软件模块可以被加载到主机存储器120,并且由处理器(未示出)执行。
主机存储器120的缓冲器区域121可以包含多个数据缓冲器。数据缓冲器可以由缓冲器地址ADD_Buf存取。例如,基于主机控制器110的控制,写入的数据可以储存在数据缓冲器中,并且可以从数据缓冲器发送到储存装置200。此外,基于主机控制器110的控制,从储存装置200读取的数据可以储存在数据缓冲器中。
主机控制器110可以包含在第一分组Packet_H中的缓冲器地址ADD_Buf,其响应于请求而指示了从多个数据缓冲器之中所选择的数据缓冲器的位置。例如,当产生请求数据写入的第一分组Packet_H时,主机控制器110可以产生含有缓冲器地址ADD_Buf的第一分组Packet_H,并且可以将第一分组Packet_H发送到储存装置200,该缓冲器地址ADD_Buf指示了在其中已经储存了写入的数据的数据缓冲器的位置。当产生请求数据读取的第一分组Packet_H时,主机控制器110可以产生含有缓冲器地址ADD_Buf的第一分组Packet_H,该缓冲器地址ADD_Buf指示了在其中将储存读取的数据的数据缓冲器的位置。
储存控制器210可以储存并管理从第一分组Packet_H解析的缓冲器地址ADD_Buf和命令。此外,当响应于第一分组Packet_H而产生第二分组Packet_S时,储存控制器210可以包含在第二分组Packet_S中的缓冲器地址ADD_Buf,其已经在储存装置200中储存并管理。
主机100可以从储存控制器210接收含有缓冲器地址ADD_Buf的第二分组Packet_S,并且可以使用从第二分组Packet_S解析的缓冲器地址ADD_Buf来存取缓冲器区域121。换言之,主机100不需要存取其他区域来检查相关信息以便确定数据缓冲器的位置,而是可以仅存取与从第二分组Packet_S解析的缓冲器地址ADD_Buf相对应的数据缓冲器。
根据如上所述的实施例,主机存储器120的附加存取操作对于确定数据缓冲器的位置是不必须的,并且因此可以减少主机控制器110存取主机存储器120的频率。例如,常规地,缓冲器地址分开地储存在主机存储器120内的一个区域中并且分开存取,即需要进行读取缓冲器地址的操作以便确定数据缓冲器的位置,在该数据缓冲器中已经储存了写入的数据或者将储存读取的数据。然而,根据本公开的实施例,可以在没有分开的存取操作的情况下直接存取数据缓冲器。因此,减少数据处理操作的开销,使得数据处理性能增加。
图2是图1中示出的根据本公开的实施例的主机100的框图。图2示出了包含主机控制器的应用处理器(AP)。
参考图2,主机100可以包含AP和主机存储器120。AP可以包含如知识产权(intellectual property)的至少一个模块。例如,AP可以包含主机控制器110、处理器130、调制解调器(modem)140、照相机接口(I/F)150、显示器I/F 160、存储器控制单元171和嵌入式存储器172。
尽管如图2所示,主机存储器120是AP的外部存储器,但是本公开不限于此。例如,AP的嵌入式存储器172可以用作主机存储器。图2中示出的元件仅仅是示例,并且AP还可以包含除了在图2中示出的元件之外的其他元件,或者图2中示出的元件中的一些可能不包含在AP中。
处理器130可以控制AP的全部操作。例如,用于管理储存装置200上的数据写入/读取操作的软件(例如,AP和装置驱动器)可以加载到主机存储器120或者嵌入式存储器172,并且处理器130可以通过执行软件来管理数据写入/读取操作。主机存储器120可以实现为易失性存储器或者非易失性存储器。在一些实施例中,主机存储器120可以包含易失性存储器,诸如动态RAM(DRAM)和/或静态RAM(SRAM)。
AP可以进行照相机控制操作、显示器控制操作和调制解调器操作。如果在AP中包含调制解调器140,则AP可以称为ModAP。
主机控制器110可以将含有缓冲器地址ADD_Buf的分组发送到储存装置200或者从储存装置200接收含有缓冲器地址ADD_Buf的分组,如上所述。主机控制器110可以包含储存至少一个传输请求的寄存器111。基于处理器130的控制,涉及储存装置200上的写入操作和/或读取操作的传输请求可以储存在寄存器111中。基于处理器130的控制,用于对应于传输请求来产生分组的各种种类的信息可以储存在主机存储器120中。例如,包含关于分组的类型的信息和缓冲器地址的表格信息可以储存在主机存储器120中。在数据写入请求的情况下,写入的数据可以基于处理器130的控制储存在主机存储器120中的多个数据缓冲器中。主机控制器110可以检查储存在寄存器111中的传输请求,并且基于传输请求来与储存装置200接口。
如上所述,主机控制器110可以从储存装置200接收含有缓冲器地址ADD_Buf的分组,可以从分组解析缓冲器地址ADD_Buf,并且可以根据缓冲器地址ADD_Buf来确定数据缓冲器的位置。例如,主机控制器110比AP中的其他模块对于主机存储器120可以具有更低的存取优先级。在这种情况下,主机控制器110用于存取主机存储器120所耗费的等待时间可能很高。然而,根据本公开的实施例,主机控制器110存取主机存储器120的频率可以减少,并且可以防止在数据处理操作的开销上的增加。
图3是图1中示出的根据本公开的实施例的储存控制器210的框图。
参考图1-3,储存控制器210可以包含作为处理器的中央处理单元(CPU)211、主机I/F 212和存储器I/F 213。储存控制器210还可以包含闪存转换层(FTL)214、分组管理器215和缓冲器管理器216。储存控制器210还可以包含加载FTL 214的工作存储器(未示出),并且随着CPU 211执行FTL 214,可以控制存储器核心220上的数据写入和读取操作。
主机I/F 212可以将分组发送到主机100或者从主机100接收分组。如上所述,由主机I/F 212发送或者接收的分组可以含有指示主机100内的缓冲器区域121中的数据缓冲器的位置的缓冲器地址ADD_Buf。存储器I/F 213可以通过与存储器核心220接口来进行写入或者读取数据的操作。
分组管理器215可以产生遵从分组管理器215和主机100之间的接口的协议的分组,并且可以从分组解析各种种类的信息。缓冲器管理器216可以管理储存从缓冲器230中的分组所解析的各种种类的信息的操作。例如,缓冲器管理器216可以管理储存已经从分组所解析的命令CMD和缓冲器地址ADD_Buf的操作。缓冲器管理器216还可以管理储存从缓冲器230中的分组所解析的写入的数据的操作以及储存从缓冲器230中的存储器核心220所读取的数据的操作。缓冲器230可以包含在储存控制器210中,或者可以放置在储存控制器210的外侧。尽管在图3中示出的实施例中,缓冲器地址ADD_Buf和数据被储存在一个缓冲器中,但是缓冲器地址ADD_Buf和数据可以分别储存在分离的储存电路中。
如上所述,当储存装置200产生要发送到主机100的分组时,储存装置200可以从缓冲器230读取缓冲器地址ADD_Buf,并且可以包含要发送到主机100的分组中的缓冲器地址ADD_Buf。
例如,在数据写入操作中,写入命令和其对应的第一缓冲器地址可以由从主机100所接收的分组中解析,并且第一缓冲器地址可以储存在储存装置200的缓冲器230中。储存装置200可以响应于写入命令来产生分组,该分组请求以预定大小的单位传输写入的数据。此时,与写入命令相对应的第一缓冲器地址可以包含在分组中,并且主机100可以参考分组中所含有的第一缓冲器地址并且将储存在由第一缓冲器地址所指示的位置处的数据缓冲器中的写入的数据发送到储存装置200。
相似地,在数据读取操作中,读取命令和其对应的第二缓冲器地址可以由从主机100所接收的分组中解析,并且第二缓冲器地址可以储存在储存装置200的缓冲器230中。储存装置200可以响应于读取命令来产生包含读取的数据的分组。对应于读取命令的第二缓冲器地址可以包含在分组中。主机100可以参考在分组中含有的第二缓冲器地址,并且在由第二缓冲器地址所指示的位置处的数据缓冲器中储存读取的数据。
图4是根据本公开的实施例的使用UFS接口的储存系统的框图。
参考图4,UFS主机和UFS储存装置可以根据储存系统300中的UFS接口进行通信。UFS主机可以包含软件模块310和硬件模块,该硬件模块包含UFS主机控制器320和主机存储器330。软件模块310可以包含应用软件和UFS主机控制器驱动器。应用软件可以是在UFS主机中执行的各种应用程序。UFS主机控制器驱动器用于管理连接到UFS主机的外围装置的驱动。诸如储存装置上的数据写入和读取操作的数据管理操作可以通过执行UFS主机控制器驱动器来进行。应用软件和UFS主机控制器驱动器可以加载到图4中示出的主机存储器330或者加载到UFS主机中的另一个操作存储器,并且可以由处理器执行。
UFS主机控制器320可以包含UFS主机控制器接口、UFS传输协议(UTP)引擎和UFS互连层。UFS主机控制器接口可以接收使用UFS主机控制器驱动器所产生的请求,并且将请求发送到UTP引擎。UFS主机控制器接口还可以将来自UTP引擎的数据存取结果发送到UFS主机控制器驱动器。UTP引擎可以为上层(或应用层)提供服务。UTP引擎可以产生分组或者释放分组,并且在其中解析信息。
UFS互连层可以与UFS储存装置340进行通信。UFS互连层可以包含链路层以及物理(PHY)层。链路层可以是移动工业处理器接口(MIPI)UniPro,PHY层可以是MIPI M-PHY。UFS主机可以根据UFS接口为UFS储存装置340提供参考时钟Ref Clock和重设信号Reset。
UFS储存装置340可以包含储存控制器和存储器核心。在图4中所示的实施例中,储存控制器可以包含UFS互连层、UTP引擎以及UFS储存装置接口。存储器核心可以是包含非易失性存储器的核心,即NVM核心。
在UFS主机控制器320与UFS储存装置340进行通信的结构中,可以通过UFS主机控制器接口进行根据来自UFS主机控制器驱动器的请求的发送或接收数据。例如,在数据写入操作中,软件模块310可以在主机存储器330的数据缓冲器中储存写入的数据,UFS主机控制器接口可以存取主机存储器330的数据缓冲器,并且可以将所存取的写入的数据发送到UFS储存装置340。
根据本公开的实施例,指示主机存储器330中的数据缓冲器的位置的缓冲器地址可以包含在从UFS主机发送到UFS储存装置340的第一分组Packet_H和/或从UFS储存装置340发送到UFS主机的第二分组Packet_S中。缓冲器地址可以对应于指示数据缓冲器的位置的物理地址。包含缓冲器地址的表格信息(例如,物理区域描述表格(PRDT))可以储存在主机存储器330中的某一区域中。UFS主机的UTP引擎可以基于PRDT来确定缓冲器地址,并且产生含有缓冲器地址的第一分组Packet_H。UFS储存装置340的UTP引擎可以产生含有缓冲器地址的第二分组Packet_S,该缓冲器地址已经在UFS储存装置340中进行储存和管理。
UFS主机控制器320可以通过端口-映射输入/输出(I/O)与UFS储存装置340进行连接。写入和读取操作可以以多任务模式处理。相应地,UFS储存装置340可以储存和管理从多个分组所解析的多个命令以及对应于命令的缓冲器地址。
如果使用UFS接口,则可以限定各种类型的分组并且本公开的实施例可以应用于这些分组中的至少一些。例如,遵从UFS接口的分组可以限定为UFS协议信息单元(UPIU)。各种类型的分组可以包含用于请求写入或读取的命令UPIU、响应UPIU、包含读取的数据的data_in UPIU、包含写入的数据的data_out UPIU、任务管理(TM)请求UPIU、以及传输就绪(RTT)UPIU。根据本公开的实施例,上述缓冲器地址可以包含在UFS接口中限定的各种类型的分组之中的至少一些类型的分组中。例如,缓冲器地址可以包含在请求存取主机存储器330的数据缓冲器的分组中。
以下,将详细描述根据本公开的一些实施例的主机和储存装置之间的接口的操作。尽管主机和储存装置在这些实施例中使用UFS接口,但是实施例还可以应用除了UFS接口之外的其他类型的接口。
图5和图6是根据本公开的实施例的操作主机的方法的流程图。图5示出了主机发送分组的示例。图6示出了主机接收分组的示例。
参考图5,主机可以包含主机控制器,并且使用主机中的软件模块所产生的各种种类的信息可以储存在主机存储器中。例如,至少一个传输请求可以储存在主机控制器内的寄存器中,并且对应于传输请求的传输请求描述信息可以储存在主机存储器内的某一区域(例如,描述信息区域)中。传输请求描述信息可以用于产生响应UPIU和与PRDT信息一起使用的命令UPIU。诸如命令UPIU或者响应UPIU和PRDT信息的分组相关的信息可以储存在主机存储器内的另一区域中。PRDT信息可以包含指示数据缓冲器的位置的缓冲器地址,在该数据缓冲器中已经储存了写入的数据或者将储存读取的数据。储存在主机存储器中的分组相关信息将称为命令UPIU信息或者响应UPIU信息。
当为数据发送/接收启动主机控制器接口操作时,在操作S11中,主机控制器可以在主机存储器中检查传输请求描述信息,其对应于储存在寄存器中的传输请求。在操作S12中,主机控制器可以检查用于数据写入请求的命令UPIU信息和使用传输请求描述信息的PRDT信息。在操作S13中,主机控制器可以使用PRDT信息来产生含有缓冲器地址的分组(例如,物理地址),其指示了数据缓冲器的位置,在该数据缓冲器中已经储存了写入的数据,并且在操作S14中,主机控制器可以将分组发送到储存装置。
参考图6,在操作S21中,主机可以从储存装置接收分组。分组可以提供给主机内的主机控制器。主机控制器可以解析来自分组的各种种类的信息。如上所述,储存装置可以储存和管理命令和对应于命令的缓冲器地址,该命令和对应于命令的缓冲器地址已经从主机发送,并且缓冲器地址可以包含在从储存装置发送的各种类型的分组中的至少一些中。
在操作S22中,主机控制器可以从分组解析缓冲器地址。在操作S23中,主机控制器还可以使用缓冲器地址来存取主机存储器内的数据缓冲器。当分组对应于请求传输写入的数据的RTT UPIU时,主机控制器可以向储存装置发送储存在与缓冲器地址相对应的位置处的数据缓冲器中的写入的数据,而不分开检查储存在主机存储器中的PRDT信息。当分组对应于包含读取的数据的data_in UPIU时,主机控制器可以储存包含在与缓冲器地址相对应的位置处的数据缓冲器中的分组中的读取的数据,而不分开检查储存在主机存储器中的PRDT信息。
图7是根据本公开的实施例的操作储存装置的方法的流程图。
在操作D31中,储存装置可以从主机接收第一分组。第一分组可以对应于命令UPIU。命令UPIU可以包含用于数据存取的命令,诸如数据写入或者数据读取。如上所述,第一分组可以含有指示数据缓冲器的位置的缓冲器地址,在该数据缓冲器中已经储存了写入的数据或者将储存读取的数据。在操作S32中,储存装置可以从第一分组解析缓冲器地址,并且在操作S33中,可以管理含有在第一分组中的命令和在内部储存装置中的缓冲器地址(例如,命令队列和地址队列)。
储存装置响应于第一分组可以产生第二分组,并且将第二分组发送到主机。在操作S34中,从第一分组所解析的缓冲器地址可以包含在响应于第一分组而产生的第二分组中。例如,在数据写入操作期间,储存装置可以产生指示其准备要接收写入的数据的RTTUPIU作为第二分组,并且缓冲器地址可以包含在RTT UPIU中。在数据读取操作期间,储存装置可以产生包含读取的数据的data_in UPIU作为第二分组,并且缓冲器地址可以包含在data_in UPIU中。在操作S35中,储存装置可以向主机发送含有缓冲器地址的第二分组。
图8以及图9A和图9B是根据本公开的实施例的储存在主机存储器和寄存器中的各种信息的框图,该寄存器包含在主机控制器中。
参考图8,主机400可以包含主机存储器410和寄存器420。可以在主机控制器内侧提供寄存器420,并且主机存储器410可以设置在主机控制器的外侧。在联合电子器件工程委员会(JEDEC)UFS标准中限定的各种种类的命令和参数可以储存在主机存储器410和管理关于储存装置的数据的寄存器420中。UTP传输请求描述信息可以储存在主机存储器410的描述信息区域中,并且UPIU信息以及对应的PRDT信息可以储存在主机存储器410的另一个区域中。基于储存在寄存器420中的UTP传输请求,UTP传输请求描述信息可以在主机存储器410中储存和检查。
写入的数据和读取的数据可以储存在包含在主机存储器410的缓冲器区域中的多个数据缓冲器中。PRDT信息可以含有缓冲器地址,作为数据缓冲器的物理地址。对于一些命令UPIU,可以不储存PRDT信息。例如,对于与对数据缓冲器的存取不相关的命令UPIU,可以不储存PRDT信息。
JEDEC UFS标准中限定的其他各种种类的信息在图8中示出。例如,UTP任务管理请求列表还可以储存在主机存储器410的一个区域中。例如,任务管理请求UPIU和任务管理响应UPIU可以储存在主机存储器410的一个区域中。基于储存在寄存器420中的UTP任务管理请求,任务管理请求列表可以储存在主机存储器410中。此外,在JEDEC UFS标准中限定的其他分量在图8中示出。例如,主机控制器能力、中断和主机状态、UFS互连(UIC)命令、以及供应商专用可以储存在寄存器420中。
本公开的实施例不限于图8中所示的配置。在实施例中,储存在图8中的主机存储器410中的至少一些信息可以储存在寄存器420中。在实施例中,UTP传输请求描述信息、UPIU信息、PRDT信息和UTP任务管理请求列表中的至少一个可以被储存在寄存器420中。此外,在另一实施例中,主机存储器410可以仅包括数据缓冲器,并且剩余的信息可以被储存在寄存器420中。
图9A和9B是将对主机存储器的存取频率在典型情形和本公开的实施例之间进行比较的框图。图9A和图9B示出了主机根据从储存装置所接收的分组进行操作的示例。
图9A示出了处理遵从典型格式的分组的示例。参考图9A,至少一个UTP传输请求可以储存在主机控制器内的寄存器420中。例如,第一传输请求“传输请求0”可以对应于数据写入请求,并且第三传输请求“传输请求2”可以对应于数据读取请求。响应于第一传输请求“传输请求0”,主机控制器可以从储存装置接收RTT UPIU。响应于第三传输请求“传输请求2”,主机控制器还可以从储存装置接收data_in UPIU。
储存标头(header)信息的标头区域可以包含在从储存装置发送的分组中。RTTUPIU的标头信息可以包含关于为数据写入操作而传输的数据的大小和偏移的信息。主机控制器可以使用RTT UPIU的标头信息中的至少一些信息值来进行处理操作。例如,主机控制器参照逻辑单元数量(LUN)和RTT UPIU的标头信息内的标签(即标识符)信息,并且存取主机存储器410以检查对应的UTP传输请求描述信息。主机控制器还存取从主机存储器410中的UTP传输请求描述信息所检测的位置,以检查PRDT信息。主机控制器还可以基于PRDT信息(例如,缓冲器地址)来存取数据缓冲器,并且向储存装置发送储存在数据缓冲器中的数据。
当接收到data_in UPIU时,主机控制器可以存取主机存储器410,以检查对应于data_in UPIU的标头信息的UTP传输请求描述信息①。主机控制器还可以存取主机存储器410,以检查对应的PRDT信息②。包含在data_in UPIU中的读取的数据可以储存在对应于PRDT信息的数据缓冲器中③。
根据上述方法,主机存储器410相对频繁地被数据处理操作进行存取。例如,主机控制器两次存取主机存储器410,以检查传输请求描述信息和PRDT信息,并且主机控制器一次存取主机存储器410,以读取写入的数据来处理RTT UPIU。总共需要对主机存储器410的三次存取。此时,由于主机控制器比主机的其他元件(例如,显示器I/F、照相机I/F和调制解调器)对主机存储器410具有更低的存取优先级,所以数据处理的开销增加。
根据本公开的实施例,如图9B中所示,主机可以向储存装置发送第一传输请求“传输请求0”,并且接收回应于第一传输请求“传输请求0”的RRT UPIU①。主机可以从RTT UPIU解析缓冲器地址,并且可以向储存装置发送储存在由缓冲器地址所指示的数据缓冲器中的数据②。换言之,可以消除由主机控制器所进行的为在接收RTT UPIU时检查PRDT信息的对主机存储器410的存取。
相似地,当主机接收data_in UPIU时,主机控制器不需要为了检查主机存储器410中的PRDT信息以确定数据缓冲器(在其中将储存读取的数据)的位置而进行存取操作。例如,主机控制器可以基于data_in UPIU的标头信息通过检查UTP传输请求描述信息来确定请求的种类①,并且可以将读取的数据储存在由从data_in UPIU解析的缓冲器地址所指示的数据缓冲器中②。
根据上述实施例,对主机存储器410的存取频率减少,并且因此数据吞吐量增加。例如,在数据写入操作中,多个RTT UPIU可以根据储存装置中的数据写入单元,响应于单一命令UPIU而顺序地发送到主机。此时,可以在没有存取主机存储器410以响应于每个RTTUPIU而分开地检查PRDT信息的情况下,进行数据处理。
图10以及图11A和图11B是根据本公开的实施例的在UFS接口中涉及的数据读取操作和分组的图。
参考图10,用于数据读取请求的命令(CMD)UPIU可以从主机发送到储存装置。缓冲器地址(或者数据缓冲器的物理地址(PA))可以包含在用于数据读取请求的CMD UPIP中。储存装置可以响应于用于数据读取请求的CMD UPIU而从存储器核心读取数据,并且可以向主机发送data_in UPIU。此时,data_in UPIU包含从CMD UPIU解析的PA和读取的数据。此外,储存装置可以向主机发送响应UPIU,其指示了对应于CMD UPIU的操作的完成。如上所述,主机可以将读取的数据储存在由从data_in UPIU解析的PA所指示的位置处的数据缓冲器中。
CMD UPIU的分组结构可以如图11A中所示出地实现,data_in UPIU的分组结构可以如图11B中所示出地实现。图11A和11B示出了缓冲器地址被包含在现存的标头区域中的示例。图11A示出了CMD UPIU的结构,以及图11B示出了data_in UPIU的结构。
参考图11A,CMD UPIU的标头区域H可以包含保留区域和缓冲器地址,并且相关信息可以包含在保留区域的部分中。例如,主机存储器缓冲器地址可以包含在保留区域中。指示了缓冲器地址包含在CMD UPIU中的信息CWA和指示了储存缓冲器地址的区域的大小(或者储存缓冲器地址和相关信息的区域的大小)的信息CWA_LENGTH还可以包含在保留区域中。
参考图11B,Data_in UPIU可以包含标头区域H和包含数据的有效载荷区域DATA。标头区域H可以包含保留区域。主机存储器缓冲器地址和相关信息可以包含在保留区域的至少部分中。包含在图11B中示出的保留区域中的信息相同于或相似于图11A中示出的保留区域中的信息。因此,将省略对其的详细描述。
图12和图13是根据本公开的实施例的在UFS接口中涉及的数据写入操作和分组的图。
参考图12,用于数据写入请求的CMD UPIU可以从主机发送到储存装置。指示了主机中的已经储存了写入的数据的数据缓冲器的位置的PA可以包含在CMD UPIU中。储存装置可以响应于用于数据写入请求的CMD UPIU,向主机发送至少一个RTT UPIU,其指示了储存装置已经准备好接收写入的数据。根据写入的数据的大小和储存装置的数据写入单元,多个RTT UPIU可以发送到主机。
例如,第一RTT UPIU(即RTT UPIU_1)可以从储存装置发送到主机。指示了已经储存了要首先传输的写入单元数据的数据缓冲器的位置的第一PA PA_1可以包含在RTTUPIU_1中。主机可以使用从RTT UPIU_1所解析的第一PA PA_1来确定在其内的数据缓冲器的位置,并且可以将储存在数据缓冲器中的数据发送到储存装置作为写入的数据。主机可以向储存装置发送包含写入的数据的data_out UPIU。
此外,储存装置可以向主机发送第二RTT UPIU,即RTT UPIU_2。指示了已经储存了要其次传输的写入单元数据的数据缓冲器的位置的第二PA PA_2可以包含在RTT UPIU_2中。主机可以从RTT UPIU_2解析第二PA PA_2,并且可以向储存装置发送数据,该数据已经储存在由第二PA PA_2所指示的位置处的数据缓冲器中。随着重复这样的操作,可以将请求被写入的数据的全部都发送到储存装置。当完成数据写入时,储存装置可以向主机发送响应UPIU,其指示了对应于CMD UPIU的操作的完成。
图13示出了上述RTT UPIU的分组结构的示例。在该示例中,缓冲器地址被包含在现存的标头区域中。图13示出了在响应于单个CMD UPIU而发送的多个RTT UPIU之中的RTTUPIU_1。其他RTT UPIU的结构可以相同于或相似于图13中示出的结构。
参考图13,RTT UPIU_1的标头区域H可以包含保留区域。指示了已经储存了写入单元数据的数据缓冲器的位置的缓冲器地址可以包含在保留区域的至少部分中。指示了包含缓冲器地址的信息CWA和指示了区域(其中储存了缓冲器地址)的大小的信息CWA_LENGTH还可以包含在保留区域中。在完成RTT UPIU_1的发送后,可以向主机发送下个RTT UPIU(例如,RTT UPIU_2)。此时,数据缓冲器的值(指示了已经储存了写入的数据的数据缓冲器的位置)可以改变。
图14是示例的图,其中本公开的实施例应用于限定在UFS接口中的各种类型的分组。
主机可以向储存装置顺序地发送多个UPIU。在图14中示出的示例中,传输用于写入请求的CMD UPIU(即CMD UPIU 1)、用于读取请求的CMD UPIU(即CMD UPIU 2、CMD UPIU4、CMD UPIU 5和CMD UPIU 6)、以及用于任务管理请求的UPIU(即TMF_REQ UPIU 3)。如上所述,在UFS接口中,在储存装置上的数据写入和读取操作期间,需要对主机中的数据缓冲器进行存取。相应地,缓冲器地址(即PA)可以包含在CMD UPIU中的每一个(即CMD UPIU 1、CMDUPIU 2、CMD UPIU 4、CMD UPIU 5和CMD UPIU 6)中。储存装置可以从CMD UPIU中的每一个(即CMD UPIU1、CMD UPIU 2、CMD UPIU 4、CMD UPIU 5和CMD UPIU 6)解析缓冲器地址(即PA),并且可以储存和管理PA。
储存装置还可以响应于从主机所接收的请求来产生UPIU,并且向主机发送UPIU。一个或多个RTT UPIU(即RTT UPIU(1)_0和RTT UPIU(1)_1)和包含读取的数据的data_inUPIU(即DATA_IN UPIU(2))在图14中示出。由于在响应于RTT UPIU或data_in UPIU的操作期间,在主机中需要对数据缓冲器进行存取,所以PA可以包含在RTT UPIU和data_in UPIU中的每一个中。
主机可以响应于RTT UPIU来向储存装置发送包含写入的数据的UPIU,即DATA_OUTUPIU(1)_0。主机还可以向储存装置发送任务管理请求UPIU,即TMF_REQ UPIU 3。储存装置可以响应于TMF_REQ UPIU 3,在储存于该储存装置中的命令上进行管理操作。储存装置还可以响应于TMF_REQ UPIU3,向主机发送指示命令管理操作的完成的任务管理响应UPIP(即TMF_RESP UPIU(3))。
如上所述,来自主机的data_out UPIU和TMF_REQ UPIU和来自储存装置的TMF_RESP UPIU与存取主机内的数据缓冲器的操作是不相关的。如上所述的这样的缓冲器地址可以不包含在这些UPIU中。相应地,对于通过UFS接口传输的各种类型的分组,一些类型的分组的排除有效载荷之外的大小可以不同于其他类型的分组的排除有效载荷之外的大小。
图15是根据本公开的实施例的管理缓冲器地址的储存控制器的框图。
参考图15,储存控制器500可以包含控制电路510、主机I/F 520、存储器I/F 530、CMD队列541、地址(ADD)队列542和数据缓冲器550。在描述图15中示出的储存控制器500的操作中,将省略对与参考图3所描述的操作相同或相似的操作的描述。数据缓冲器550可以临时地储存写入的数据DATA_W和读取的数据DATA_R。
控制电路510可以包含用于根据UFS接口协议控制存储器核心上的数据写入和读取操作的各种元件。控制单元510可以包含主机控制器511。主机控制器511可以包含分组确定器(determiner)511_1。主机控制器511还可以包含用于UTP处理的UTP引擎(未示出)。主机控制器511可以产生分组或者从接收的分组解析各种种类的信息,如上所述。
可以基于控制电路510的控制,在CMD队列541和ADD队列542中储存和管理所解析的命令和缓冲器地址CMD/ADD_Buf。缓冲器地址ADD_Buf可以从ADD队列542读取且被提供给主机控制器511,并且可以产生含有缓冲器地址ADD_Buf的分组。分组确定器511_1可以确定要发送到主机的分组是否属于需要存取主机存储器的数据缓冲器的类型。根据确定结果,可以选择性地存取ADD队列542。
图16是图15中示出的根据本公开的实施例的操作储存控制器500的方法的流程图。
参考图16,如上所述,储存装置从由主机所发送的分组解析缓冲器地址,并且在操作S41中储存和管理缓冲器地址。
此后,储存装置进行与从主机所发送的多个请求相对应的过程,并且向主机发送由该过程造成的分组。当根据处理结果产生分组时,在操作S42中,储存装置检测要产生的分组的类型,并且在操作S43中,基于该检测结果来确定要产生的分组是否需要对主机中的数据缓冲器进行存取。
当确定了分组不需要对主机中的数据缓冲器进行存取时,可以在不存取储存装置内的地址队列中的信息的情况下产生分组。然而,当确定了分组需要对主机中的数据缓冲器进行存取时,在操作S44中,可以从储存装置内的地址队列读取缓冲器地址,并且在操作S45中,可以产生含有缓冲器地址的分组并且将其发送到主机。
图17A到图17C是当响应于单个命令UPIU而发送多个RTT UPIU时的储存系统的操作的框图。图17A到图17C示出了当响应于单个命令UPIU而发送四个RTT UPIU时的示例。
参考图17A,储存系统600A可以包含主机610A和储存装置620A。主机610A可以包含主机控制器611A。主机控制器611A可以包含地址计算器611A_1。储存装置620A可以包含储存控制器621A和存储器核心622A。
指示了已经储存了写入的数据的数据缓冲器的位置的缓冲器地址ADD_Buf 1可以包含在CMD UPIU中。储存系统600A可以包含四个RTT UPIU(即RTT UPIU_1到RTT UPIU_4)中的每一个中的缓冲器地址ADD_Buf1。相应的数据缓冲器(在其中已经储存了分别对应于四个RTT UPIU(即RTT UPIU_1到RTT UPIU_4)的写入的数据)的位置可以彼此不同,并且地址计算器611A_1可以从缓冲器地址ADD_Buf 1计算缓冲器地址ADD_Buf1_1到ADD_Buf 1_4,其分别指示了对应于四个RTT UPIU(即RTT UPIU_1到RTT UPIU_4)的数据缓冲器。可以使用以上已描述的标头信息与包含在RTT UPIU中的缓冲器地址ADD_Buf 1一起进行该计算。
图17B示出了在储存装置中进行上述地址计算的示例。参考图17B,储存系统600B可以包含主机610B和储存装置620B。主机610B可以包含主机控制器611B。储存装置620B可以包含储存控制器621B和存储器核心622B。储存控制器621B可以包含地址计算器621B_1。
储存控制器621B可以接收含有缓冲器地址ADD_Buf 1的CMD UPIU,并且考虑到写入单元,可以向主机610B顺序地发送四个RTT UPIU(即RTT UPIU_1到RTT UPIU_4)。储存控制器621B中的地址计算器621B_1可以使用写入单元和已经被解析的缓冲器地址ADD_Buf 1的大小来计算缓冲器地址ADD_Buf 1_1到ADD_Buf 1_4。第一缓冲器地址ADD_Buf 1_1可以包含在第一RTT UPIU(即RTT UPIU_1)中,并且第四缓冲器地址ADD_Buf 1_4可以包含在第四RTT UPIU(即RTT UPIU_4)中。
图17C示出了主机向储存装置发送多个缓冲器地址的示例,在该示例中考虑了写入单元的大小。参考图17C,储存系统600C可以包含主机610C和储存装置620C。主机610C可以包含主机控制器611C。储存装置620C可以包含储存控制器621C和存储器核心622C。
考虑到储存装置620C的写入单元的大小,主机610C可以包含单个CMD UPIU中的多个缓冲器地址(即ADD_Buf 1_1到ADD_Buf 1_4)。储存装置620C可以储存和管理已经接收的多个缓冲器地址ADD_Buf 1_1到ADD_Buf1_4。
储存装置620C还可以向主机610C顺序地发送四个RTT UPIU(即RTT UPIU_1到RTTUPIU_4),并且可以在RTT UPIU中的每一个中包含不同缓冲器地址。例如,第一缓冲器地址ADD_Buf 1_1可以包含在第一RTT UPIU(即RTT UPIU_1)中,并且第四缓冲器地址ADD_Buf1_4可以包含在第四RTT UPIU(即RTT UPIU_4)中。
图18(a)和图18(b)是根据本公开的一些实施例的分组的结构的图。图18(a)和图18(b)示出了含有缓冲器地址的第一类型分组以及不含有缓冲器地址的第二类型分组。在此,缓冲器地址包含在额外的标头段EHS中。
参考图18(a),第一类型分组可以包含头H、额外的标头段EHS和有效载荷。各种种类的标头信息可以包含在头H中。与主机存储器中的缓冲器地址的PA相对应的缓冲器地址可以包含在额外的标头段EHS中。除了缓冲器地址之外,用于在储存装置中的数据管理的其他各种种类的信息还可以包含在额外的标头段EHS中。
在UFS接口的情况下,分组的头H可以具有预定的大小。例如,头H可以具有32字节的大小。头H可以包含各种种类的信息的字段,诸如LUN、标签、旗标和命令设定类型。额外的标头段EHS的大小可以变化,并且关于额外的标头段EHS的大小的信息可以包含在头H中的字段中的一个中。在图18(a)中示出的示例中,额外的标头段EHS具有(多个)字节的大小。
额外的标头段EHS不包含在图18(b)中示出的第二类型分组中。相应地,第二类型分组的排除有效载荷之外的大小可以固定为32字节。然而,第一类型分组的排除有效载荷之外的大小可以大于32字节并且可以变化。因此,在本公开的一些实施例中,分组的排除有效载荷之外的大小可以随着分组的类型而变化。
图19到图25是根据本公开的一些实施例产生的分组的各种结构的图。假设缓冲器地址包含在分组的额外的标头段EHS中。统称为EHS字段的各种字段可以包含在额外的标头段EHS中。EHS字段可以包含EHS头字段和EHS数据字段。
图19示出了在本公开的实施例中用于数据写入操作的CMD UPIU。如图19所示,CMDUPIU可以包含标头区域H和额外的标头段EHS。标头区域H可以包含关于总EHS长度的信息,并且还可以包含关于期望的数据传输长度的信息。
额外的标头段EHS可以包含EHS类型信息EHS_TYPE和EHS长度信息EHS_LENGTH。EHS类型信息EHS_TYPE可以设定为变化的值。当EHS类型信息EHS_TYPE设定为特定值(例如,2h)时,其可以指示缓冲器地址已经被包含在额外的标头段EHS中。在图19中示出的实施例中,与数据缓冲器(在其中已经储存了写入的数据)的PA相对应的缓冲器地址是"0x40C0_0000”。
图20A和图20B示出了与在图19中所示出的CMD UPIU相对应的RTT UPIU的示例。图20A示出了第一RTT UPIU,即RTT UPIU_1,并且图20B示出了第二RTT UPIU,即RTT UPIU_2。尽管未示出,但是可以根据写入单元的大小,从储存装置发送更多的RTT UPIU到主机。
参考图20A和图20B,第一和第二RTT UPIU(即RTT UPIU_1和RTT UPIU_2)中的每一个可以包含标头区域H和额外的标头段EHS。标头区域H可以包含数据缓冲器偏移和数据缓冲器计数器信息。相应的第一和第二RTT UPIU(即RTT UPIU_1和RTT UPIU_2)的额外的标头段EHS可以包含相同的值,例如用于缓冲器地址的“0x40C0_0000”。
主机可以使用包含在第一和第二RTT UPIU(即RTT UPIU_1和RTT UPIU_2)中的每一个中的标头区域H和额外的标头段EHS中的信息,来确定储存写入的数据的数据缓冲器的位置。例如,主机可以使用数据缓冲器偏移、数据缓冲器计数器信息和缓冲器地址来确定数据缓冲器的位置,并且可以向储存装置发送对应的写入的数据。
图21A和图21B示出了与在图19中所示出的CMD UPIU相对应的RTT UPIU的其他示例。图21A示出了第一RTT UPIU,即RTT UPIU_1,并且图21B示出了第二RTT UPIU,即RTTUPIU_2。与以上参考图20A和20B所解释的描述相同的冗余描述将被省略。
参考图19以及图21A和图21B,储存装置可以使用在CMD UPIU中含有的缓冲器地址(例如,0x40C0_0000)来计算多个缓冲器地址,并且可以在多个RTT UPIU中分别包含缓冲器地址。具有不同值的缓冲器地址可以包含在多个RTT UPIU中。例如,对应于0x40C0_0000的缓冲器地址可以包含在第一RTT UPIU(即RTT UPIU_1)中,并且对应于0x40C0_8000的缓冲器地址可以包含在第二RTT UPIU(即RTT UPIU_2)中。根据图21A和图21B示出的实施例,主机可以直接存取在由RTT UPIU中含有的缓冲器地址所指示的位置处的数据缓冲器,而不在RTT UPIU中含有的缓冲器地址上进行计算操作。
图22到图25示出了主机包含单个CMD UPIU中的多个缓冲器地址的示例。当请求被写入的多个数据的写入单元连续地或不连续地位于缓冲器区域中时,可以应用图22到图25中示出的实施例。将实施例应用到数据的写入单元连续地或不连续地位于缓冲器区域中的情况将是更有效的。在参考图22到图25所描述的实施例中使用的标头区域的结构和信息相同于或相似于如上所述的结构和信息,并且因此其将不在图22到图25中进行说明。
参考图22,包含在CMD UPIU中的EHS字段可以包含EHS头和EHS数据。EHS头可以包含类型信息EHS_TYPE和长度信息EHS_LENGTH,如上所述。当响应于单个CMD UPIU而将与写入单元的大小相对应的数据从主机四次发送到储存装置时,缓冲器地址(即BUFFERADDRESS1_1到BUFFER ADDRESS1_4,具有写入单元的大小的四个数据分别位于该缓冲器地址处)可以包含在EHS字段中。储存装置可以储存和管理缓冲器地址,即BUFFER ADDRESS1_1到BUFFER ADDRESS1_4。
图23A和图23B示出了由储存装置所发送的RTT UPIU。图23A示出了第一RTT UPIU,即RTT UPIU_1,并且图23B示出了第四RTT UPIU,即RTT UPIU_4。参考图23A,第一RTT UPIU(即RTT UPIU_1)的EHS字段可以含有第一缓冲器地址(即BUFFER ADDRESS1_1)。主机可以从第一RTT UPIU(即RTT UPIU_1)解析第一缓冲器地址(即BUFFER ADDRESS1_1),并且可以向储存装置发送数据,该数据具有写入单元的大小并且对应于第一缓冲器地址(即BUFFERADDRESS1_1)。参考图23B,第四RTT UPIU(即RTT UPIU_4)的EHS字段可以含有第四缓冲器地址(即BUFFER ADDRESS1_4),该第四缓冲器地址具有与第一缓冲器地址(即BUFFERADDRESS1_1)不同的值。主机可以向储存装置发送对应于第四缓冲器地址(即BUFFERADDRESS1_4)的数据。
图24示出了可更改的实施例,其中RTT UPIU含有第一到第四缓冲器地址,即BUFFER ADDRESS1_1到BUFFER ADDRESS1_4。第一到第四缓冲器地址(即BUFFER ADDRESS1_1到BUFFER ADDRESS1_4)的全部可以包含在第一到第四RTT UPIU(即RTT UPIU_1到RTTUPIU_4)中的每一个中。主机可以使用缓冲器地址中的一个,根据头中的信息来选择性地存取数据。
图25示出了data_in UPIU的示例。假设图22中示出的CMD UPIU请求读取操作。
储存装置可以储存和管理在与读取请求相对应的CMD UPIU中含有的多个缓冲器地址,即BUFFER ADDRESS1_1到BUFFER ADDRESS1_4。当发送响应于CMD UPIU的data_inUPIU时,储存装置可以包含data_in UPIU中的缓冲器地址,即BUFFER ADDRESS1_1到BUFFERADDRESS1_4。主机可以使用在data_in UPIU中含有的缓冲器地址(即BUFFER ADDRESS1_1到BUFFER ADDRESS1_4),在主机存储器中的数据缓冲器的对应位置处储存读取的数据。
根据本公开的实施例,指示主机中的数据缓冲器的位置的缓冲器地址在主机和储存装置之间传输,并且因此,可以消除为确定需要被存取的数据缓冲器的位置而由主机存储器所进行的读取操作。因此,主机和储存装置之间的数据处理的开销减少,并且数据处理性能增加。
与本领域的传统相同,实施例以实行所描述的功能或多个功能的块的形式进行描述和示出。这些块(其在本文中可以称为单元或者模块等)通过模拟和/或数字电路(诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬件电路等)进行物理实现,并且可选地由固件和/或软件进行驱动。例如,电路可以实施为一个或多个半导体芯片,或者可以实施在基板支撑物(诸如印刷电路板等)上。构成块的电路可以由专用硬件构成,或者由处理器(例如,一个或多个可编程微处理器和相关电路)构成,或者由进行块的一些功能的专用硬件和进行块的其他功能的处理器的组合构成。在不脱离本公开的范围的情况下,实施例的每个块可以物理分离为两个或更多个相互作用且离散的块。同样地,在不脱离本公开的范围的情况下,实施例的块可以物理组合成更多的复杂的块。
虽然已经参考其实施例具体示出和描述了本公开,但是应该理解,在不脱离所附权利要求的精神和范围的情况下,可以在其中做出形式和细节上的各种改变。
Claims (25)
1.一种操作储存装置的方法,所述方法包括:
从主机接收第一分组,所述第一分组含有缓冲器地址,所述缓冲器地址指示从所述主机中的多个数据缓冲器之中所选择的数据缓冲器的位置;
从所述第一分组解析所述缓冲器地址;以及
响应于所述第一分组,将含有所述缓冲器地址的第二分组发送到所述主机。
2.如权利要求1所述的方法,还包括:
在命令队列中储存从所述第一分组解析的命令,并且在地址队列中储存与所述命令相对应的缓冲器地址,其中
所述储存装置包括所述命令队列和所述地址队列。
3.如权利要求2所述的方法,还包括:
从所述地址队列读取所述缓冲器地址,其中
从所述地址队列读取的所述缓冲器地址含有在所述第二分组中。
4.如权利要求1所述的方法,其中所述第一分组对应于数据写入请求,所述第二分组是用于请求所述主机发送写入的数据的分组,并且所述缓冲器地址指示所述数据缓冲器的位置,其中在所述数据缓冲器中已经储存所述写入的数据。
5.如权利要求1所述的方法,其中所述第一分组对应于数据读取请求,所述第二分组含有来自所述储存装置的读取的数据,并且所述缓冲器地址指示所述数据缓冲器的位置,其中在所述数据缓冲器中已经储存所述读取的数据。
6.如权利要求1所述的方法,还包括:
确定所述第二分组的类型,其中
响应于确定所述第二分组是用于请求对所述多个数据缓冲器之中的至少一个数据缓冲器进行存取的分组,所述缓冲器地址在所述第二分组中选择性地提供。
7.如权利要求1所述的方法,其中所述储存装置配置为根据通用快闪储存(UFS)接口来与所述主机进行通信,并且所述第一分组和所述第二分组中的每一个是UFS协议信息单元(UPIU)。
8.如权利要求7所述的方法,其中所述第一分组是对应于数据写入或读取请求的命令UPIU,并且所述第二分组是data_in UPIU或者传输就绪(RTT)UPIU。
9.如权利要求1所述的方法,其中所述第一分组和所述第二分组中的每一个包括具有预定大小的标头区域和在其中记录了所述缓冲器地址的额外的标头区域。
10.如权利要求9所述的方法,还包括:
接收不包含缓冲器地址的第三分组,其中
在所述第一分组和所述第二分组中的每一个包括的所述标头区域和所述额外的标头区域的大小的求和大于所述第三分组的标头区域的大小。
11.一种操作主机的方法,所述方法包括:
从储存装置接收第一分组,所述第一分组含有第一缓冲器地址,所述第一缓冲器地址指示从所述主机中的多个数据缓冲器之中所选择的数据缓冲器的位置;
从所述第一分组解析所述第一缓冲器地址;以及
在由已经被解析的所述第一缓冲器地址所指示的位置处存取数据缓冲器中的数据。
12.如权利要求11所述的方法,还包括:
向所述储存装置发送第二分组,所述第二分组含有写入的数据,所述写入的数据储存在由所述第一缓冲器地址所指示的位置处的所述数据缓冲器中,其中
所述第一分组是用于请求传输所述写入的数据的分组。
13.如权利要求11所述的方法,还包括:
在由所述第一缓冲器地址所指示的位置处的所述数据缓冲器中储存读取的数据,其中
所述第一分组含有来自所述储存装置的所述读取的数据。
14.如权利要求11所述的方法,还包括:
在所述主机内的主机存储器的第一区域中检查包括关于第二分组的信息的传输请求描述信息;
根据所述传输请求描述信息的检查的结果,在所述主机存储器的第二区域中检测指示要被存取的数据缓冲器的位置的第二缓冲器地址;以及
向所述储存装置发送含有所述第二缓冲器地址的所述第二分组。
15.如权利要求14所述的方法,其中响应于所述第二分组而从所述储存装置接收所述第一分组,并且使用所述储存装置中的所述第二缓冲器地址来产生所述第一缓冲器地址。
16.如权利要求14所述的方法,其中进行所述数据缓冲器中的数据的存取,而不在所述主机存储器的第二区域中进行检测。
17.如权利要求11所述的方法,其中所述主机配置为根据通用快闪储存(UFS)接口来与所述储存装置进行通信,并且所述第一分组是UFS协议信息单元(UPIU)。
18.如权利要求17所述的方法,还包括:
产生包括写入的数据的第二分组,所述写入的数据已经在由所述第一缓冲器地址所指示的位置处的所述数据缓冲器中进行存取;以及
向所述储存装置发送所述第二分组,
其中所述第一分组是传输就绪(RTT)UPIU。
19.如权利要求17所述的方法,其中所述第一分组是包括读取的数据的data_in UPIU,并且所述数据的存取包括储存由所述第一缓冲器地址所指示的位置处的所述数据缓冲器中的读取的数据。
20.如权利要求11所述的方法,其中:
所述主机包括应用处理器和主机存储器,所述应用处理器包括主机控制器接口和至少一个知识产权,所述主机存储器包括所述数据缓冲器;
使用所述主机控制器接口通过存取所述主机存储器进行所述数据的存取;以及
所述主机存储器在所述主机控制器接口和所述至少一个知识产权之间共享。
21.一种储存装置,包括:
存储器核心,配置为以非易失性的方式储存数据;以及
储存控制器,配置为与外侧的主机接口,配置为管理用于包括在所述主机中的多个数据缓冲器的缓冲器地址,配置为包含指示所述数据缓冲器之中的至少一个数据缓冲器的位置的缓冲器地址的分组,并且配置为响应于确定所述分组是用于请求对所述至少一个数据缓冲器进行存取而将所述分组发送到所述主机。
22.如权利要求21所述的储存装置,其中:
所述储存控制器接收包括来自所述主机的所述至少一个数据缓冲器的所述缓冲器地址的分组,并且包括地址队列,所述地址队列配置为储存从所述分组解析的所述缓冲器地址,以及
从所述地址队列读取在发送到所述主机的所述分组中所包含的所述缓冲器地址。
23.如权利要求21所述的储存装置,其中:
所述储存控制器还配置为从所述主机接收含有第一缓冲器地址的第一分组,并且响应于所述第一分组向所述主机顺序地发送每个都含有第二缓冲器地址的多个第二分组,以及
所述储存控制器包括地址计算器,该地址计算器配置为从所述第一缓冲器地址计算具有不同值的多个第二缓冲器地址。
24.如权利要求21所述的储存装置,其中:
所述储存控制器还配置为从所述主机接收第一分组,所述第一分组含有指示多个数据缓冲器的位置的多个第一缓冲器地址;
响应于确定与所述第一分组相响应地向所述主机发送单个第二分组,所述多个第一缓冲器地址包含在所述单个第二分组中;以及
响应于确定与所述第一分组相响应地向所述主机发送多个第二分组,所述多个第一缓冲器地址以分布式的方式包含在所述多个第二分组中。
25.如权利要求21所述的储存装置,其中所述储存装置还配置为根据通用快闪储存(UFS)接口与所述主机进行通信,并且发送到所述主机的所述分组是传输就绪(RTT)UFS协议信息单元(UPIU)或者包括读取的数据的data_in UPIU。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0097133 | 2017-07-31 | ||
KR1020170097133A KR102395190B1 (ko) | 2017-07-31 | 2017-07-31 | 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109324754A true CN109324754A (zh) | 2019-02-12 |
CN109324754B CN109324754B (zh) | 2024-04-02 |
Family
ID=65004349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810418379.6A Active CN109324754B (zh) | 2017-07-31 | 2018-05-04 | 与主机接合的储存装置以及操作主机和储存装置的方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10599591B2 (zh) |
KR (1) | KR102395190B1 (zh) |
CN (1) | CN109324754B (zh) |
DE (1) | DE102018113447A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282231A (zh) * | 2020-02-20 | 2021-08-20 | 慧荣科技股份有限公司 | 存储装置以及相关闪存控制器 |
WO2022193238A1 (zh) * | 2021-03-18 | 2022-09-22 | 华为技术有限公司 | 存储器操作的执行方法和装置 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7048289B2 (ja) * | 2017-12-08 | 2022-04-05 | キオクシア株式会社 | 情報処理装置および方法 |
JP6967959B2 (ja) * | 2017-12-08 | 2021-11-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10664420B2 (en) * | 2018-04-19 | 2020-05-26 | Avago Technologies International Sales Pte. Limited | System and method for port-to-port communications using direct memory access |
US10891078B2 (en) | 2018-06-22 | 2021-01-12 | Western Digital Technologies, Inc. | Storage device with a callback response |
JP7155028B2 (ja) * | 2019-01-29 | 2022-10-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7143232B2 (ja) | 2019-01-29 | 2022-09-28 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10802750B2 (en) * | 2019-02-28 | 2020-10-13 | Silicon Motion Inc. | Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module |
US11275527B1 (en) * | 2019-06-11 | 2022-03-15 | Western Digital Technologies, Inc. | Execution condition embedded in a command or a request to storage device |
KR20210016938A (ko) | 2019-08-06 | 2021-02-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
JP2021111210A (ja) * | 2020-01-14 | 2021-08-02 | キヤノン株式会社 | 情報処理装置、およびその制御方法 |
TWI738359B (zh) * | 2020-05-26 | 2021-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
KR20220070613A (ko) * | 2020-11-23 | 2022-05-31 | 삼성전자주식회사 | 호스트 장치, 메모리 장치의 구동 방법 및 메모리 시스템 |
KR102547950B1 (ko) * | 2021-01-13 | 2023-06-27 | 삼성전자주식회사 | 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템 |
US11941253B2 (en) * | 2021-04-22 | 2024-03-26 | EMC IP Holding Company, LLC | Storage system and method using persistent memory |
CN113467425B (zh) * | 2021-07-05 | 2022-09-09 | 中国兵器装备集团自动化研究所有限公司 | 一种应用于龙芯下位机的自主控制测试方法及系统 |
US11815938B2 (en) | 2021-07-13 | 2023-11-14 | SK Hynix Inc. | Storage device and method of operating the same |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075401A (zh) * | 2011-01-28 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 在pcie总线上传输报文的方法、设备和系统 |
CN102609215A (zh) * | 2012-04-11 | 2012-07-25 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN104007935A (zh) * | 2013-02-27 | 2014-08-27 | 株式会社东芝 | 存储器设备 |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
US20170124209A1 (en) * | 2015-11-04 | 2017-05-04 | International Business Machines Corporation | Mapping data locations using data transmissions |
US20170123722A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564271B2 (en) * | 1999-06-09 | 2003-05-13 | Qlogic Corporation | Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter |
US7472205B2 (en) * | 2002-04-24 | 2008-12-30 | Nec Corporation | Communication control apparatus which has descriptor cache controller that builds list of descriptors |
US7894480B1 (en) * | 2002-08-27 | 2011-02-22 | Hewlett-Packard Company | Computer system and network interface with hardware based rule checking for embedded firewall |
KR100449807B1 (ko) * | 2002-12-20 | 2004-09-22 | 한국전자통신연구원 | 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템 |
US7284075B2 (en) * | 2004-03-23 | 2007-10-16 | Intel Corporation | Inbound packet placement in host memory |
US7469309B1 (en) * | 2005-12-12 | 2008-12-23 | Nvidia Corporation | Peer-to-peer data transfer method and apparatus with request limits |
FR2908195B1 (fr) * | 2006-11-06 | 2009-02-06 | Oberthur Card Syst Sa | Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US20100088232A1 (en) * | 2008-03-21 | 2010-04-08 | Brian Gale | Verification monitor for critical test result delivery systems |
US8255593B2 (en) * | 2009-09-29 | 2012-08-28 | Oracle America, Inc. | Direct memory access with striding across memory |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
EP2566286B1 (en) * | 2010-04-23 | 2017-12-27 | Huawei Device Co., Ltd. | Wireless Internet Access Module, Communication Method for Host and Wireless Internet Access Module, and Data Card |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
US8386644B1 (en) * | 2010-10-11 | 2013-02-26 | Qlogic, Corporation | Systems and methods for efficiently processing large data segments |
WO2013029051A2 (en) | 2011-08-25 | 2013-02-28 | to fuVIRTUSTREAM, INC. | Systems and methods of host-aware resource management involving cluster-based resource pools |
KR101861744B1 (ko) | 2013-02-28 | 2018-05-29 | 삼성전자주식회사 | 데이터 블록 오프셋에 기초하여 버퍼 디스크립터의 타겟 엔트리 어드레스를 계산할 수 있는 집적 회로와 상기 집적 회로를 포함하는 시스템 |
EP2965318B1 (en) * | 2013-03-07 | 2018-05-02 | Charles I. Peddle | High speed flash controllers |
US9460024B2 (en) | 2013-03-15 | 2016-10-04 | Vmware, Inc. | Latency reduction for direct memory access operations involving address translation |
US9069660B2 (en) * | 2013-03-15 | 2015-06-30 | Apple Inc. | Systems and methods for writing to high-capacity memory |
US20140310536A1 (en) | 2013-04-16 | 2014-10-16 | Qualcomm Incorporated | Storage device assisted inline encryption and decryption |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
KR102094902B1 (ko) | 2013-07-08 | 2020-03-30 | 삼성전자주식회사 | 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템 |
US10003675B2 (en) * | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
JP2015186233A (ja) * | 2014-03-26 | 2015-10-22 | 富士通株式会社 | パケット処理装置、及びパケット処理方法 |
US9984007B2 (en) * | 2014-03-28 | 2018-05-29 | Samsung Electronics Co., Ltd. | Storage system and method for performing and authenticating write-protection thereof |
KR102196971B1 (ko) * | 2014-03-28 | 2020-12-31 | 삼성전자주식회사 | 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법 |
US9990313B2 (en) | 2014-06-19 | 2018-06-05 | Hitachi, Ltd. | Storage apparatus and interface apparatus |
US20160011790A1 (en) | 2014-07-14 | 2016-01-14 | Sandisk Technologies Inc. | Systems and methods to enable access to a host memory associated with a unified memory architecture (uma) |
KR102264444B1 (ko) * | 2014-09-04 | 2021-06-15 | 삼성전자주식회사 | 전자 장치에서 기능 실행 방법 및 장치 |
US10146475B2 (en) | 2014-09-09 | 2018-12-04 | Toshiba Memory Corporation | Memory device performing control of discarding packet |
US9720866B2 (en) | 2014-09-11 | 2017-08-01 | Kabushiki Kaisha Toshiba | Interface circuit executing protocol control in compliance with first and second interface standards |
US20160162416A1 (en) | 2014-12-08 | 2016-06-09 | Intel Corporation | Apparatus and Method for Reducing Latency Between Host and a Storage Device |
KR20160148940A (ko) | 2015-06-17 | 2016-12-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US20170031601A1 (en) | 2015-07-30 | 2017-02-02 | Kabushiki Kaisha Toshiba | Memory system and storage system |
US10031670B2 (en) * | 2015-09-04 | 2018-07-24 | Toshiba Memory Corporation | Control unit and control method for controlling writes and background operations of multiple semiconductor storage devices |
US10452556B2 (en) | 2015-09-11 | 2019-10-22 | Toshiba Memory Corporation | Memory device and information processing device |
US10467155B2 (en) * | 2015-10-26 | 2019-11-05 | Micron Technology, Inc. | Command packets for the direct control of non-volatile memory channels within a solid state drive |
US9959227B1 (en) * | 2015-12-16 | 2018-05-01 | Amazon Technologies, Inc. | Reducing input/output latency using a direct memory access (DMA) engine |
KR102532581B1 (ko) * | 2016-03-17 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
US10318334B2 (en) * | 2017-07-07 | 2019-06-11 | Netronome Systems, Inc. | Virtio relay |
US20190044879A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Technologies for reordering network packets on egress |
-
2017
- 2017-07-31 KR KR1020170097133A patent/KR102395190B1/ko active IP Right Grant
-
2018
- 2018-04-25 US US15/961,920 patent/US10599591B2/en active Active
- 2018-05-04 CN CN201810418379.6A patent/CN109324754B/zh active Active
- 2018-06-06 DE DE102018113447.9A patent/DE102018113447A1/de active Pending
-
2020
- 2020-02-26 US US16/801,267 patent/US11080217B2/en active Active
-
2021
- 2021-06-28 US US17/359,864 patent/US11573915B2/en active Active
-
2022
- 2022-12-30 US US18/091,452 patent/US11775455B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075401A (zh) * | 2011-01-28 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 在pcie总线上传输报文的方法、设备和系统 |
US20130103866A1 (en) * | 2011-01-28 | 2013-04-25 | Huawei Technologies Co., Ltd. | Method, Device, and System for Packet Transmission on PCIE Bus |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN102609215A (zh) * | 2012-04-11 | 2012-07-25 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
CN104007935A (zh) * | 2013-02-27 | 2014-08-27 | 株式会社东芝 | 存储器设备 |
US20140244907A1 (en) * | 2013-02-27 | 2014-08-28 | Kabushiki Kaisha Toshiba | Memory device |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
US20170123722A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer |
US20170124209A1 (en) * | 2015-11-04 | 2017-05-04 | International Business Machines Corporation | Mapping data locations using data transmissions |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282231A (zh) * | 2020-02-20 | 2021-08-20 | 慧荣科技股份有限公司 | 存储装置以及相关闪存控制器 |
CN113282231B (zh) * | 2020-02-20 | 2024-03-15 | 慧荣科技股份有限公司 | 存储装置以及相关闪存控制器 |
WO2022193238A1 (zh) * | 2021-03-18 | 2022-09-22 | 华为技术有限公司 | 存储器操作的执行方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102018113447A1 (de) | 2019-01-31 |
CN109324754B (zh) | 2024-04-02 |
US10599591B2 (en) | 2020-03-24 |
US11080217B2 (en) | 2021-08-03 |
US20230144485A1 (en) | 2023-05-11 |
US11573915B2 (en) | 2023-02-07 |
US20190034364A1 (en) | 2019-01-31 |
KR102395190B1 (ko) | 2022-05-06 |
US20210326280A1 (en) | 2021-10-21 |
KR20190013106A (ko) | 2019-02-11 |
US20200192835A1 (en) | 2020-06-18 |
US11775455B2 (en) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324754A (zh) | 与主机接合的储存装置以及操作主机和储存装置的方法 | |
US10642496B2 (en) | Out of order read transfer with host memory buffer | |
US11914531B2 (en) | Host controller interface using multiple circular queue, and operating method thereof | |
CN107111452B (zh) | 应用于计算机系统的数据迁移方法和装置、计算机系统 | |
US10339079B2 (en) | System and method of interleaving data retrieved from first and second buffers | |
US9092426B1 (en) | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing | |
EP4220419B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
CN111128287A (zh) | 操作存储设备的方法、存储设备以及操作存储系统的方法 | |
TW201135462A (en) | Method of dynamically switching partitions, memory card controller and memory card storage system | |
US20240086113A1 (en) | Synchronous write method and device, storage system and electronic device | |
US11182329B2 (en) | Data processing system and operating method thereof | |
KR20210148852A (ko) | 다중 원형 큐를 이용하는 호스트 컨트롤러 인터페이스 및 이의 동작 방법 | |
US11914879B2 (en) | Storage controller and storage system comprising the same | |
US11868270B2 (en) | Storage system and storage device, and operating method thereof | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
KR20190082652A (ko) | 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치 | |
US20230141936A1 (en) | Secure processor, operating method thereof, and storage device including same | |
EP4177758A1 (en) | A storage device and an operating method of a storage controller thereof | |
US20240086110A1 (en) | Data storage method, storage apparatus and host | |
US10977198B2 (en) | Hybrid memory system interface | |
EP4246330A1 (en) | Storage device and operating method thereof | |
US20230144135A1 (en) | Trusted computing device and operating method thereof | |
KR20170012934A (ko) | 객체-지향 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 | |
CN118092782A (zh) | 使用编程中止控制操作存储设备的方法和对应的存储设备 | |
KR20170110808A (ko) | 데이터 저장 장치를 포함하는 데이터 처리 시스템 |
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 |