CN110032332A - 存储设备和包括存储设备的电子设备 - Google Patents
存储设备和包括存储设备的电子设备 Download PDFInfo
- Publication number
- CN110032332A CN110032332A CN201811439438.4A CN201811439438A CN110032332A CN 110032332 A CN110032332 A CN 110032332A CN 201811439438 A CN201811439438 A CN 201811439438A CN 110032332 A CN110032332 A CN 110032332A
- Authority
- CN
- China
- Prior art keywords
- party device
- storage equipment
- storage
- queue
- equipment
- 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 claims abstract description 154
- 230000015654 memory Effects 0.000 claims description 68
- 238000004891 communication Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 6
- 238000000151 deposition Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 23
- 238000007726 management method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 208000033999 Device damage Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/53—Network services using third party service providers
Abstract
一种电子设备包括:存储设备,存储设备包括多个门铃寄存器;主机,被配置为使用由所述多个门铃寄存器中的第一门铃寄存器管理的第一命令队列来执行与存储设备的第一接口操作;以及第三方设备,被配置为在没有主机干预的情况下,使用由所述多个门铃寄存器中的第二门铃寄存器管理的第二命令队列来执行与存储设备的第二接口操作,其中,至少该第二门铃寄存器被分配为仅用于第三方设备的操作的一个或多个专用寄存器中的一个。
Description
相关申请的交叉引用
本申请要求于2017年11月30日在韩国知识产权局递交的韩国专利申请No.10-2017-0163369的优先权,其全部内容通过引用合并于此。
技术领域
本发明构思的至少一些示例实施例涉及电子设备,更具体地,涉及包括存储设备的电子设备的接口操作。
背景技术
固态驱动器(SSD)作为基于闪速存储器设备的数据存储设备的代表性示例而存在。与诸如SSD的数据存储设备一起使用的示例接口包括串行高级技术附件(SATA)、外围组件互连快速(PCIe)、串行连接SCSI(SAS)等。SSD的性能逐渐提高,同时所处理的数据量逐渐增加。然而,由于诸如SATA之类的接口不是专用于诸如SSD的数据存储设备的接口,因此其具有基本的限制。
最近,已将NVM快速(NVMe)创建为能够应用于SSD的标准化接口。NVMe为通过外围组件互连快速(PCIe)总线连接的存储设备提供直接存储器存取功能。
发明内容
根据本发明构思的至少一些示例实施例,一种电子设备包括:存储设备,存储设备包括多个门铃寄存器;主机,被配置为使用由所述多个门铃寄存器中的第一门铃寄存器管理的第一命令队列来执行与存储设备的第一接口操作;以及第三方设备,被配置为在没有主机干预的情况下,使用由所述多个门铃寄存器中的第二门铃寄存器管理的第二命令队列来执行与存储设备的第二接口操作,其中,至少该第二门铃寄存器被分配为仅用于第三方设备的操作的一个或多个专用寄存器中的一个。
根据本发明构思的至少一些示例实施例,一种被配置为与主机和第三方设备通信的存储设备包括:非易失性存储器;以及控制器,被配置为管理将数据写入非易失性存储器的操作或从非易失性存储器读取数据的操作,其中,控制器包括多个门铃寄存器,所述多个门铃寄存器中的至少一个门铃寄存器被分配用于与第三方设备的接口操作,并且在没有主机干预的情况下,基于由所述至少一个门铃寄存器管理的命令队列来执行与第三方设备的接口操作。
根据本发明构思的至少一些示例实施例,一种被配置为与主机和第三方设备通信的存储设备包括:缓冲存储器;非易失性存储器;以及控制器,被配置为管理将数据写入非易失性存储器的操作或从非易失性存储器读取数据的操作,其中,控制器包括至少一个门铃寄存器,所述至少一个门铃寄存器被配置为管理用于与第三方设备通信的提交队列和完成队列,其中,控制器被配置为从非易失性存储器读取第三方设备请求的数据,并响应于从第三方设备接收的命令,将读取的数据存储在缓冲存储器中。
附图说明
通过参考附图详细描述本发明构思的示例实施例,本发明构思的示例实施例的以上以及其他特征和优点将变得更加清楚。附图旨在描述本发明构思的示例实施例,并且不应该被解释为限制权利要求的预期范围。除非明确指出,否则附图不应被视为按比例绘制。
图1是示出根据本发明构思的至少一个示例实施例的电子设备的框图。
图2是用于描述根据本发明构思的至少一个示例实施例的基于命令队列的接口操作的视图。
图3是示出根据本发明构思的至少一个示例实施例的电子设备的框图。
图4是示出根据本发明构思的至少一个示例实施例的电子设备的框图。
图5是示出根据本发明构思的至少一个示例实施例的独立应用于每个接口操作的管理策略的概念图。
图6是用于描述根据本发明构思的至少一个示例实施例的电子设备的加载数据的操作的视图。
图7是示出根据本发明构思的至少一个示例实施例的包括电子设备的电子系统的配置的框图。
具体实施方式
如在本发明构思的领域中常见的,在功能块、单元和/或模块方面描述并在附图中示出实施例。本领域技术人员将理解,这些块、单元和/或模块通过诸如逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等的电子(或光学)电路物理地实现,电子(或光学)电路可以使用基于半导体的制造技术或其他制备技术来形成。在块、单元和/或模块由微处理器或类似物实现的情况下,可以使用软件(例如,微代码)对它们进行编程以执行本文中所讨论的各种功能,并且可以可选地由固件和/或软件对它们进行驱动。备选地,每个块、单元和/或模块可以由专用硬件实现或实现为执行一些功能的专用硬件和执行其他功能的处理器(例如,一个或多个可编程的微处理器和相关电路)的组合。此外,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可以物理地分成两个或更多个交互和分立的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可以物理地组合成更复杂的块、单元和/或模块。
图1是示出根据本发明构思的至少一个示例实施例的电子设备的框图。
电子设备1000可以存储和管理数据以向用户提供必要的信息。电子设备1000可以是移动电子设备,例如个人计算机、笔记本计算机、移动电话、个人数字助理或相机,但是不限于此。
电子设备1000可以包括主机1200、第三方设备1400和存储设备1600。主机1200、第三方设备1400和存储设备1600可以通过总线900彼此连接。总线900可以是使用外围组件互连快速(PCIe)模式的PCIe总线。PCIe是被设计为取代外围组件互连(PCI)、外围组件互连扩展(PCI-X)和加速图形端口(AGP)总线标准的高速串行计算机扩展总线标准。
主机1200、第三方设备1400和存储设备1600可以使用基于命令队列的接口(例如,NVMe协议)彼此通信。以下将对此进行详细描述。
主机1200可以根据一个或多个电子电路、芯片和设备的操作向主机1200的用户提供各种服务。根据本发明构思的至少一个示例实施例的主机1200可以执行各种操作,以处理从主机1200的用户接收的指令,并且可以向主机1200的用户提供操作的结果。根据本发明构思的至少一个示例实施例的主机1200可以包括操作系统和应用。根据本发明构思的至少一个示例实施例的主机1200可以包括NVMe驱动器以支持NVMe协议。根据本发明构思的至少一个示例实施例的主机1200可以包括操作处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)和应用处理器(AP)),操作处理器包括专用逻辑电路(例如,现场可编程门阵列(FPGA)和专用集成电路(ASIC)),但是不限于此。
根据本发明构思的至少一个示例实施例的主机1200可以包括在具有第三方设备1400和存储设备1600的单个电子设备中。在该示例中,主机1200可以是操作处理器本身。
存储设备1600可以存储数据。存储设备1600可以包括控制器1640和存储器1660。例如,存储设备1600可以是用于支持NVMe协议的固态驱动器(SSD)。
控制器1640可以控制存储设备1600的整体操作。例如,控制器1640可以调度存储器1660的操作,或者可以对在存储设备1600中处理的信号/数据进行编码和解码。例如,控制器1640可以控制存储器1660以允许存储器1660存储或输出数据。
控制器1640可以从主机1200或第三方设备1400接收命令,并且可以响应于所接收的命令执行各种操作。该命令可以是基于NVMe协议的命令。
控制器1640可以通过多个通道连接到存储器1660。控制器1640可以包括硬件和软件(未示出),用于响应于来自主机1200或第三方设备1400的各种请求而执行操作。根据本发明构思的至少一个示例实施例的控制器1640可以包括易失性存储器,例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和同步DRAM(SDRAM)。
控制器1640可以包括一个或多个硬件组件(例如,模拟电路、逻辑电路等),其被配置为执行上述和下述的功能。附加地或备选地,控制器1640可以包括一个或多个处理器核。上述和下述的控制器1640的功能可以以软件和/或固件的程序代码来实现,并且控制器1640的处理器核可以执行程序代码的指令集。控制器1640的处理器核可以处理用于执行指令集的各种类型的算术计算和/或逻辑运算。
存储器1660可以包括一个或多个非易失性存储器。例如,存储器1660可以包括多个闪速存储器。例如,存储器1660可以包括不同类型的非易失性存储器,所述不同类型的非易失性存储器的示例包括但不限于相变随机存取存储器(PRAM)、磁阻式随机存取存储器(MRAM)和铁电随机存取存储器(FRAM)。存储器1660可以按每个存储器单元存储一位数据或两位或更多位数据。另外,存储器1660的非易失性存储器配置可以包括具有三维结构的存储器单元阵列。
第三方设备1400可以是能够在没有主机1200干预的情况下,以直接存储器存取方法将数据写入存储设备1600或从存储设备1600读取数据的任何设备。
根据本发明构思的至少一个示例实施例,第三方设备1400可以执行与存储设备1600的对等通信(peer-to-peer communication)。例如,可以使用直接存储器存取方法通过PCIe总线900执行第三方设备1400和存储设备1600之间的对等通信。在这种情况下,第三方设备1400和存储设备1600中的每一个可以是对等方。当可以执行第三方设备1400和存储设备1600之间的对等通信时,第三方设备1400和存储设备1600可以分别作为客户端和服务器进行操作。
根据本发明构思的至少一个示例实施例,第三方设备1400可以是使用直接存储器存取方法从存储设备1600获得输入数据的GPU。备选地,第三方设备1400可以包括能够通过执行CPU卸载来加速操作的硬件加速器。
再次对存储设备1600进行描述,存储设备1600可以通过诸如NVMe协议的基于命令队列的接口(在下文中称为基于命令队列的接口)来与主机1200或第三方设备1400通信。可以基于队列对来执行基于命令队列的接口的操作,队列对包括用于输入所请求的命令的提交队列(SQ)和用于记录命令的处理结果的完成队列(CQ)。在本公开中,还可以将包括提交队列和完成队列的队列对称为命令队列。
当主机1200包括多个核时,多个核中的每一个可以基于包括一个提交队列和一个完成队列的一个队列对来执行与存储设备1600的接口操作。另外,当提供多个第三方设备1400时,多个第三方设备1400中的每一个可以基于包括一个提交队列和一个完成队列的一个队列对来执行与存储设备1600的接口操作。
存储设备1600可以包括门铃寄存器(doorbell register)1620,用于执行基于命令队列的接口操作。为了便于解释,门铃寄存器1620被示出为与控制器1640分离,然而根据本发明构思的至少一个示例实施例,门铃寄存器1620可以被包括在控制器1640内的处理器核中。
门铃寄存器1620中的每一个是用于管理或控制由主机1200或第三方设备1400生成的队列对的寄存器。门铃寄存器1620中的每一个可以对应于一个队列对。例如,门铃寄存器1620中的每一个可以存储指示提交队列的尾部的指针和指示完成队列的头部的指针。存储设备1600可以访问与门铃寄存器1620中的每一个相对应的队列对,以执行与主机1200或第三方设备1400的接口操作。
图2是用于描述根据本发明构思的至少一个示例实施例的基于命令队列的接口操作的视图。参考图2,主机1200可以生成提交队列2220和完成队列2240。当主机1200包括多个核时,提交队列2220和完成队列2240可以是对应于多个核中的一个核而生成的队列对。根据本发明构思的至少一个示例实施例,可以在主机1200上的存储器中生成队列对。
门铃寄存器2622可以是图1中示出的门铃寄存器1620中的一个门铃寄存器。门铃寄存器2622是所分配的用来管理提交队列2220和完成队列2240的寄存器。例如,存储设备1600可以通过门铃寄存器2622访问提交队列2220和完成队列2240,以执行与主机1200的基于命令队列的接口操作。
根据本发明构思的至少一个示例实施例的主机1200可以请求存储设备1600执行命令(例如,读取和写入数据)。主机1200可以将命令提交(或输入)到提交队列2220(S1)。对提交队列2220的尾指针进行更新,并且主机1200可以将更新的提交队列尾指针发送到存储设备1600(S2)。例如,可以将更新的提交队列尾指针写入存储设备1600的门铃寄存器2622。
存储设备1600可以从提交队列2220提取命令(S3)。存储设备1600可以处理(或执行)提取的命令(S4)。在处理了命令之后,存储设备1600可以向完成队列2240写入:对命令的处理完成(S5)。存储设备1600可以将完成队列条目写入完成队列2240。此时,完成队列2240的头指针可以增加。存储设备1600(例如,控制器1640)可以生成中断信号(S6)。中断信号可以是基于引脚的信号或基于消息信号的中断信号。
主机1200可以处理命令完成(S7)。主机1200可以将更新的完成队列头指针发送到存储设备1600。例如,可以将更新的完成队列头指针写入存储设备1600的门铃寄存器2622。
因此,提交队列2220包括与主机1200发出的命令相对应的条目,完成队列2240包括与已经完成的命令相对应的条目(例如,已经由存储设备1600完成的主机1200的命令)。
尽管参考图2描述了主机1200的一个核与存储设备1600之间的基于命令队列的接口操作,但是可以以相同的方法执行第三方设备1400与存储设备1600之间的接口操作。
再次参考图1,当主机1200包括多个核时,主机1200可以生成与多个核中的每一个相对应的队列对,并且可以请求存储设备1600分配门铃寄存器,用于管理所生成的队列对。例如,在主机1200上的操作系统(例如,Linux)中提供的NVMe驱动器可以请求存储设备1600分配与操作系统中监控的核的数量一样多的门铃寄存器。
当主机1200的核的数量大于门铃寄存器1620的数量时,可以将所有门铃寄存器1620分配用于与主机1200的基于命令队列的接口操作。在这种情况下,不存在为第三方设备1400和存储设备1600之间的基于命令队列的接口操作所分配的门铃寄存器。因此,可以不执行第三方设备1400和存储设备1600之间的使用直接存储器存取方法的基于命令队列的接口操作。第三方设备1400和存储设备1600之间的基于命令队列的接口操作可能需要主机1200的干预。
图3是示出根据本发明构思的至少一个示例实施例的电子设备的框图。
图3中示出的电子设备3000表示图1中示出的电子设备1000的一个实施例。因此,对图1中示出的电子设备1000的以上描述也可以应用于图3中示出的电子设备3000。例如,图3中示出的主机3200、第三方设备3400和存储设备3600可以分别对应于图1中示出的主机1200、第三方设备1400和存储设备1600。
可以为与第三方设备3400的基于命令队列的接口分配门铃寄存器3620中的至少一个门铃寄存器。例如,为与主机3200的基于命令队列的接口分配门铃寄存器3622,为与第三方设备3400的基于命令队列的接口分配门铃寄存器3624。
门铃寄存器3624是仅为与第三方设备3400的基于命令队列的接口操作所分配的专用寄存器。例如,可以将门铃寄存器3624中的每一个分配为仅用于与第三方设备3400的接口操作(而不是主机3200的操作)的专用寄存器。因此,可以不将门铃寄存器3624用于主机3200与存储设备3600之间的基于命令队列的接口操作。存储设备3600可以通过门铃寄存器3624执行与第三方设备3400的基于命令队列的接口操作。
根据本发明构思的至少一个示例实施例,可以将主机3200请求分配给存储设备3600的门铃寄存器的数量确定为小于可以在存储设备3600中生成的门铃寄存器的最大数量。针对该配置,可以对主机3200的驱动器(例如,NVMe驱动器)进行修改。然而,当主机3200通过修改主机3200的驱动器而请求分配给存储设备3600的门铃寄存器的数量是固定的时,电子设备3000的整体接口操作的性能可能退化。例如,当不需要存储设备3600和第三方设备3400之间的基于命令队列的接口操作时(例如,当第三方设备3400不使用与存储设备3600的对等通信时),在主机3200和存储设备3600之间执行的接口操作的性能可能退化。
根据本发明构思的至少一个示例实施例,存储设备3600可以从外部源接收用于分配门铃寄存器3620的使能信号(或初始化命令)。例如,控制器3640可以接收使能信号(在图3中示出为“使能信号”)。根据本发明构思的至少一个示例实施例的存储设备3600可以从主机3200、第三方设备3400和其他外部设备(未示出)中的至少一个接收使能信号以分配门铃寄存器3620。例如,存储设备3600可以从第三方设备3400接收使能信号,以确定要为与第三方设备3400的基于命令队列的接口操作所分配的门铃寄存器的数量。接收使能信号的存储设备3600可以为与第三方设备3400的基于命令队列的接口操作分配门铃寄存器3620中的至少一个。例如,在图3中示出的示例中,存储设备3600接收的使能信号包括指示存储设备3600分配两个门铃寄存器作为仅用于与第三方设备3400的接口操作的专用寄存器的信息,并且存储设备3600通过将门铃寄存器3620中的两个(即,门铃寄存器3624)分配为专用寄存器来响应该使能信号。因此,存储设备3600可以基于使能信号确定要分配为仅用于与第三方设备3400的接口操作的专用寄存器的门铃寄存器的数量。
根据本发明构思的至少一个示例实施例,存储设备3600可以包括控制寄存器,用于管理为与第三方设备3400的基于命令队列的接口操作所分配的一个或多个门铃寄存器的数量。例如,控制器3640可以包括控制寄存器(未示出)。存储设备3600可以基于控制寄存器中记录的数量信息来确定为与第三方设备3400的基于命令队列的接口操作所分配的一个或多个寄存器的数量。
根据本发明构思的至少一个示例实施例,主机3200和第三方设备3400可以访问存储器3660的相同区域(例如,相同的逻辑块地址(LBA))。存储器3660可以包括至少一个非易失性存储器。例如,当第三方设备3400是GPU并且主机3200是使用GPU执行应用(例如,图形处理单元上的通用计算(GPGPU)应用)的CPU时,存储设备3600可以从CPU接收要输入到GPU的文件,并可以将文件存储在存储器3660中。存储设备3600可以响应于来自GPU的请求而将存储的文件从存储器3660输出到GPU。
然而,当主机3200和第三方设备3400可以同时访问存储器3660上的相同区域时,数据的一致性可能被破坏。例如,当CPU请求将数据写入存储器3660上具有地址LBAO的区域,并且第三方设备3400同时请求读取相同区域或将数据写入相同区域(地址:LBA0)时,存储器3660中存储的数据的一致性可能无法保证。
在这种情况下,存储设备3600可以向主机3200和/或第三方设备3400通知数据已损坏。存储设备3600可以确定数据的一致性是否被破坏,并且可以将确定的结果发送到主机3200或第三方设备3400。例如,控制器3640可以检查在一段时间内接收或执行的请求以确定数据是否被破坏,并且可以将确定的结果发送到主机3200或第三方设备3400。可以在处理了命令之后将执行命令的完成写入完成队列的步骤(图2中示出的S5)中,或在处理了命令之后生成中断信号的步骤(图2中示出的S6)中,将关于数据是否被破坏的确定结果发送到主机3200或第三方设备3400,但是不限于此。
图4是示出根据本发明构思的至少一个示例实施例的电子设备的框图。
可以不同地调整存储设备4600的门铃寄存器4620中为与第三方设备4400的基于命令队列的接口操作所分配的门铃寄存器的数量。
根据本发明构思的至少一个示例实施例,可以将存储设备4600的所有门铃寄存器4620分配用于与主机4200的基于命令队列的接口操作。当不需要存储设备4600和第三方设备4400之间的基于命令队列的接口操作时(例如,当第三方设备4400不使用与存储设备4600的对等通信时),这种配置可能是有用的。
根据本发明构思的至少一个示例实施例,可以将存储设备4600的所有门铃寄存器4620分配用于与第三方设备4400的基于命令队列的接口操作。当不需要存储设备4600和主机4200之间的接口操作时,这种配置可能是有用的。
根据本发明构思的至少一个示例实施例,例如,根据以上参考图3所讨论的门铃寄存器分配方案,可以将存储设备4600的门铃寄存器4620中的一些分配用于与主机4200的基于命令队列的接口操作,并且可以将剩余的门铃寄存器分配用于与第三方设备4400的基于命令队列的接口操作。
也可以将上述的门铃寄存器4620的分配操作应用于一个主机4200内的多个应用或操作的接口操作。例如,可以将存储设备4600的门铃寄存器4620中的一些分配用于执行主机4200的一般应用的基于命令队列的接口操作,并且可以将剩余的门铃寄存器分配用于执行主机4200的特殊应用的基于命令队列的接口操作。例如,特殊应用可以指代使用特殊命令或需要参考QoS(服务质量)的应用。因此,当不需要存储设备4600和第三方设备4400之间的基于命令队列的接口操作时,可以根据主机4600内的多个应用或操作将门铃寄存器4620管理为多个组。
图5是示出根据本发明构思的至少一个示例实施例的独立应用于每个接口操作的管理策略的概念图。
电子设备5000可以包括主机5200(主机5200包括多个核)、多个第三方设备5400和存储设备5600,存储设备5600通过基于命令队列的接口与主机5200和多个第三方设备5400通信。
可以将门铃寄存器5800中的门铃寄存器5840分配用于与主机5200的基于命令队列的接口操作,并且可以将门铃寄存器5800中的门铃寄存器5860分配用于与第三方设备5400的基于命令队列的接口操作。
存储设备5600可以通过门铃寄存器5840执行从主机5200的多个核请求的命令。例如,门铃寄存器5841可以管理从核#1生成的队列对,门铃寄存器5842可以管理从核#2生成的队列对。
存储设备5600可以通过门铃寄存器5860执行从多个第三方设备5400请求的命令。例如,门铃寄存器5861可以管理从第三方设备#1生成的队列对,门铃寄存器5862可以管理从第三方设备#2生成的队列对。
电子设备5000可以将不同的管理策略应用于存储设备5600与主机5200之间的基于命令队列的接口操作以及存储设备5600与多个第三方设备5400之间的基于命令队列的接口操作。
管理策略被称为用于确定从主设备(例如,主机5200的核或多个第三方设备5400)提取和处理命令的顺序的方法。备选地,管理策略被称为应用于基于命令队列的接口操作的限制性条件。
根据本发明构思的至少一个示例实施例,可以独立地确定存储设备5600从主机5200的多个核(核#1、核#2、......、核#n)提取和处理命令的顺序以及存储设备5600从多个第三方设备(第三方设备#1、第三方设备#2、......、第三方设备#n)提取和处理命令的顺序。
例如,可以基于轮询方法确定存储设备5600从由主机5200的多个核(核#1、核#2、......、核#n)生成的队列对中提取和处理命令的顺序。
然而,可以基于多个第三方设备5400中的每一个的优先级或特性来确定存储设备5600从由多个第三方设备5400生成的队列对中提取和处理命令的顺序。备选地,可以基于期望的或者备选地预先确定的特定模式来确定存储设备5600从由多个第三方设备5400生成的队列对中提取和处理命令的顺序。
根据本发明构思的至少一个示例实施例,为了命令处理的效率,可以将不同的限制性条件应用于存储设备5600与主机5200之间的基于命令队列的接口操作以及存储设备5600与多个第三方设备5400之间的基于命令队列的接口操作。
例如,当执行存储设备5600与多个第三方设备5400之间的基于命令队列的接口操作时可以发送的数据的大小可以大于当执行存储设备5600与主机5200之间的基于命令队列的接口操作时可以发送的数据的大小。也就是说,对于存储设备5600与多个第三方设备5400之间的基于命令队列的接口操作,可以允许传输大量数据(例如,大的最大数据传输大小)。
另外,与存储设备5600和多个第三方设备5400之间的基于命令队列的接口操作一起使用的物理区域页(PRP)和分散/聚合表(SGL)可以不同于与存储设备5600和主机5200之间的基于命令队列的接口操作一起使用的PRP和SGL。
图6是用于描述根据本发明构思的至少一个示例实施例的电子设备的加载数据的操作的视图。
如以上参考图1至图5所述,存储设备6600可以通过PCIe总线900连接到主机6200和第三方设备6400。第三方设备6400可以在没有主机6200干预的情况下,使用基于命令队列的接口方法(例如,NVMe协议)直接访问存储设备6600的非易失性存储器6660。针对该配置,如上所述,可以为与第三方设备6400的基于命令队列的接口分配存储设备6600的多个门铃寄存器中的至少一个门铃寄存器。
根据本发明构思的至少一个示例实施例的存储设备6600可以从第三方设备6400接收命令(在下文中,其被称为加载命令)以将数据加载到存储设备6600的缓冲存储器6640中。当第三方设备6400中用于存储数据的空间非常小时,加载命令可以允许将必要的数据加载到第三方设备6400可访问(例如,存储器寻址)的外部区域中。因此,第三方设备6400可以访问外部区域以处理数据。
根据本发明构思的至少一个示例实施例的缓冲存储器6640可以包括动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、磁性随机存取存储器(MRAM)和相变随机存取存储器(PRAM),但不限于此。例如,存储设备6600的控制器(未示出)可以包括缓冲存储器6640。
接收加载命令的存储设备6600可以从非易失性存储器6660读取所请求的数据,并将读取的数据加载到缓冲存储器6640中。也就是说,接收加载命令的存储设备6600可以从非易失性存储器6660读取所请求的数据,并将数据存储在缓冲存储器6640的部分区域6644中,而不是将数据发送到第三方设备6400。
如以上参考图2所述,可以基于包括用于提交(或输入)加载命令的提交队列和用于记录加载命令的处理结果的完成队列在内的队列对来执行加载命令。为与第三方设备6400的接口所分配的至少一个门铃寄存器(未示出)可以被配置为管理执行加载命令的提交队列和完成队列。例如,门铃寄存器可以被配置为管理提交队列的尾指针和完成队列的头指针。第三方设备6400和存储设备6600执行加载命令的操作与参考图2所描述的相同。
根据本发明构思的至少一个示例实施例的存储设备6600可以确定存储数据的部分区域6644。可以通过将数据存储在部分区域6644中并将部分区域6644的地址信息发送到第三方设备6400来完成加载命令的处理。根据本发明构思的至少一个示例实施例,可以在执行基于命令队列的接口操作的同时,将部分区域6644的地址信息发送到第三方设备6400。
例如,在存储设备6600处理了加载命令之后将对执行命令的完成加以指示的完成队列条目(例如,通过存储设备6600的控制器)写入完成队列的步骤(图2中示出的S5)中,该完成队列条目可以包括部分区域6644的地址信息。
例如,在存储设备6600处理了加载命令之后生成中断信号的步骤(图2中示出的S6)中,中断信号可以包括部分区域6644的地址信息。
例如,可以将在提交加载命令时所使用的物理区域页(PRP)和分散/聚合表(SGL)中最终存储数据的位置写入缓冲存储器6640。
根据本发明构思的至少一个示例实施例,存储设备6600可以将非易失性存储器6660上存储数据的区域的物理地址转换为逻辑地址,并将转换的逻辑地址发送到第三方设备6400,而不是将第三方设备6400请求的数据加载到缓冲存储器6640中。
为了将物理地址转换为逻辑地址,可以使用指示物理地址和逻辑地址之间的对应关系的映射信息。例如,可以在存储设备6600的控制器(未示出)中管理映射信息。
图7是示出根据本发明构思的至少一个示例实施例的包括电子设备的电子系统的配置的框图。
电子系统10000可以包括主处理器11010、第三方处理器11500、工作存储器12000、存储设备13000、通信块14000、用户接口15000和总线16000。根据本发明构思的至少一些示例实施例,电子系统10000可以是以下电子设备中的一种:例如,台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴设备、视频游戏控制台、工作站、服务器和电动汽车。
根据本发明构思的至少一个示例实施例的电子系统10000可以包括图1至图6中示出的电子设备之一。例如,电子系统10000可以包括图3中示出的电子设备3000,其不限于此。
主处理器11010可以控制电子系统10000的整体操作。主处理器11010可以处理各种类型的算术计算和/或逻辑运算。主处理器11010可以包括专用电路(例如,现场可编程门阵列(FPGA)和专用集成电路(ASIC))。例如,主处理器11010可以包括一个或多个处理器核,并且可以被实现为通用处理器、专用微处理器或应用处理器。主处理器11010可以通过基于命令队列的接口(例如,NVMe协议)与存储设备13000通信。
第三方处理器11500可以基于直接存储器存取方法将数据写入存储设备13000或者从存储设备13000读取数据。因此,当第三方处理器11500访问存储设备13000时,不需要主处理器的干预或干扰。根据本发明构思的至少一个示例实施例,第三方处理器11500可以执行与存储设备13000的对等通信。例如,可以在第三方处理器11500和存储设备13000之间执行基于PCIe总线的对等通信。
例如,第三方处理器11500可以是使用直接存储器存取方法从存储设备13000获得输入数据的GPU,或者可以是能够通过使用CPU卸载来加速操作的硬件加速器。第三方处理器11500可以通过基于命令队列的接口(例如,NVMe协议)与存储设备13000通信。
工作存储器12000可以存储在电子系统10000的操作中使用的数据。例如,工作存储器12000可以临时存储由主处理器11010处理或将要处理的数据。工作存储器12000可以包括易失性存储器(例如动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)等)和/或非易失性存储器(例如相变随机存取存储器(PRAM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)、铁电随机存取存储器(FRAM)等)。
存储设备13000可以包括至少一个存储器设备和控制器。存储设备13000的存储器设备可以存储数据而不管电源如何。例如,存储设备13000可以包括非易失性存储器,例如闪速存储器、PRAM、MRAM、ReRAM、FRAM等。例如,存储设备13000可以包括存储介质,例如固态驱动器(SSD)、可移动存储器、嵌入式存储器等。
存储设备13000可以通过基于命令队列的接口(例如,NVMe协议)与主处理器11010或第三方处理器11500通信。存储设备13000可以包括多个门铃寄存器,用于管理由主处理器11010或第三方处理器11500生成的命令队列。可以将门铃寄存器中的至少一个门铃寄存器分配用于与第三方处理器11500的基于命令队列的接口操作。
通信块14000可以与电子系统10000的外部设备/系统进行通信。例如,通信块14000可以支持各种无线通信协议中的至少一种(例如长期演进(LTE)、全球微波接入互操作性(WIMAX)、全球移动通信系统(GSM)、码分多址(CDMA)、蓝牙、近场通信(NFC)、无线保真(Wi-Fi)、射频识别(RFID)等)和/或各种有线通信协议中的至少一种(例如传输控制协议/互联网协议(TCP/IP)、通用串行总线(USB)、火线等)。
用户接口15000可以仲裁用户和电子系统10000之间的通信。例如,用户接口15000可以包括输入接口,例如键盘、鼠标、键区、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、触觉传感器等。例如,用户接口15000可以包括输出接口,诸如液晶显示器(LCD)设备、发光二极管(LED)显示设备、有机LED(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、扬声器、电机等。
总线16000可以提供电子系统10000的组件之间的通信路径。电子系统10000的组件可以基于总线16000的总线格式彼此交换数据。例如,总线格式可以包括各种接口协议中的一种或多种,例如USB、小型计算机系统接口(SCSI)、外围组件互连快速(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行连接SCSI(SAS)、集成驱动电子设备(IDE)、增强型IDE(EIDE)、非易失性存储器快速(NVMe)、通用闪速存储(UFS)等。
已经由此描述了本发明构思的示例实施例,显然可以以多种方式对其进行修改。不应将这些变化视为脱离本发明构思的示例实施例的预期的精神和范围,并且对于本领域技术人员显而易见的所有这些修改旨在包括在所附权利要求的范围内。
Claims (20)
1.一种电子设备,包括:
存储设备,包括多个门铃寄存器;
主机,被配置为使用由所述多个门铃寄存器中的第一门铃寄存器管理的第一命令队列来执行与所述存储设备的第一接口操作;以及
第三方设备,被配置为在没有所述主机干预的情况下,使用由所述多个门铃寄存器中的第二门铃寄存器管理的第二命令队列来执行与所述存储设备的第二接口操作,
其中,至少所述第二门铃寄存器被分配为用于仅在所述第三方设备的操作使用的一个或多个专用寄存器中的一个。
2.根据权利要求1所述的电子设备,其中,所述存储设备被配置为:
接收使能信号,以及
基于所述使能信号确定所述多个门铃寄存器中要分配为所述一个或多个专用寄存器的数量。
3.根据权利要求1所述的电子设备,其中,所述第三方设备被配置为基于对等通信将数据写入所述存储设备或从所述存储设备读取数据。
4.根据权利要求1所述的电子设备,其中,所述第一命令队列和所述第二命令队列中的每一个是包括提交队列和完成队列的队列对。
5.根据权利要求4所述的电子设备,其中,所述多个门铃寄存器中的每一个被配置为存储指示所述提交队列的尾部的指针和指示所述完成队列的头部的指针。
6.根据权利要求1所述的电子设备,其中,所述第三方设备是所述电子设备中包括的多个第三方设备中的第一第三方设备,除了所述第一第三方设备之外,所述多个第三方设备还包括至少第二第三方设备,
其中,所述第二第三方设备被配置为在没有所述主机干预的情况下,执行与所述存储设备的基于命令队列的接口操作,以及
其中,基于所述第一第三方设备和所述第二第三方设备中的每一个的优先级或特性,来确定所述存储设备从连接到所述存储设备的所述第一第三方设备和所述第二第三方设备提取和处理命令的顺序。
7.根据权利要求1所述的电子设备,其中,将与应用于所述第一接口操作的限制性条件不同的限制性条件应用于所述第二接口操作。
8.根据权利要求1所述的电子设备,其中,所述存储设备还包括:
非易失性存储器;以及
缓冲存储器,并且
其中,所述存储设备被配置为从所述非易失性存储器读取所述第三方设备请求的数据,并将读取的数据存储在所述缓冲存储器中。
9.根据权利要求8所述的电子设备,其中,所述存储设备被配置为将所述缓冲存储器的存储有所读取的数据的部分区域的地址信息发送到所述第三方设备。
10.根据权利要求1所述的电子设备,其中,基于NVM快速NVMe协议来执行所述第一接口操作和所述第二接口操作。
11.一种存储设备,被配置为与主机和第三方设备通信,所述存储设备包括:
非易失性存储器;以及
控制器,被配置为管理将数据写入所述非易失性存储器的操作或者从所述非易失性存储器读取数据的操作,
其中,所述控制器包括多个门铃寄存器,所述多个门铃寄存器中的至少一个门铃寄存器被分配用于与所述第三方设备的接口操作,并且在没有所述主机干预的情况下,基于由所述至少一个门铃寄存器管理的命令队列来执行与所述第三方设备的所述接口操作。
12.根据权利要求11所述的存储设备,其中,所述控制器被配置为:
接收使能信号,以及
基于所述使能信号确定所述多个门铃寄存器中要分配为一个或多个专用寄存器的数量,所述一个或多个专用寄存器用于仅在所述第三方设备的操作使用。
13.根据权利要求12所述的存储设备,其中,所述控制器还包括控制寄存器,所述控制寄存器被配置为管理所述多个门铃寄存器中要分配为所述一个或多个专用寄存器的数量。
14.根据权利要求11所述的存储设备,
其中,所述存储设备还包括缓冲存储器,并且从所述非易失性存储器读取所述第三方设备请求的数据并将读取的数据存储在所述缓冲存储器中。
15.根据权利要求14所述的存储设备,其中,所述存储设备被配置为将所述缓冲存储器的存储有所请求的数据的部分区域的地址信息发送到所述第三方设备。
16.根据权利要求11所述的存储设备,其中,所述第三方设备是图形处理单元GPU,
其中,所述主机是中央处理单元CPU,所述CPU执行图形处理单元上的通用计算GPGPU应用,并且
其中,所述存储设备被配置为:从所述CPU接收要输入到所述GPU的文件,将接收的文件存储在所述非易失性存储器中,并响应于来自所述GPU的请求,将所述非易失性存储器中存储的文件从所述非易失性存储器输出到所述GPU。
17.根据权利要求11所述的存储设备,其中,所述存储设备被配置为使得基于NVMe协议来执行与所述第三方设备的所述接口操作。
18.一种存储设备,被配置为与主机和第三方设备通信,所述存储设备包括:
缓冲存储器;
非易失性存储器;以及
控制器,被配置为管理将数据写入所述非易失性存储器的操作或者从所述非易失性存储器读取数据的操作,
其中,所述控制器包括至少一个门铃寄存器,所述至少一个门铃寄存器被配置为管理用于与所述第三方设备通信的提交队列和完成队列,并且
其中,所述控制器被配置为:从所述非易失性存储器读取所述第三方设备请求的数据,并响应于从所述第三方设备接收的命令,将读取的数据存储在所述缓冲存储器中。
19.根据权利要求18所述的存储设备,其中,所述控制器被配置为使得在所述命令被处理之后由所述控制器写入所述完成队列中的完成队列条目包括所述缓冲存储器的存储有所请求的数据的部分区域的地址信息。
20.根据权利要求18所述的存储设备,其中,所述控制器被配置为使得在所述命令被处理之后由所述控制器生成的中断信号包括所述缓冲存储器的存储有所请求的数据的部分区域的地址信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0163369 | 2017-11-30 | ||
KR1020170163369A KR102446733B1 (ko) | 2017-11-30 | 2017-11-30 | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032332A true CN110032332A (zh) | 2019-07-19 |
CN110032332B CN110032332B (zh) | 2024-02-02 |
Family
ID=66634612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811439438.4A Active CN110032332B (zh) | 2017-11-30 | 2018-11-28 | 存储设备和包括存储设备的电子设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10742737B2 (zh) |
KR (1) | KR102446733B1 (zh) |
CN (1) | CN110032332B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221476A (zh) * | 2020-01-08 | 2020-06-02 | 深圳忆联信息系统有限公司 | 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 |
CN114968856A (zh) * | 2021-02-18 | 2022-08-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901733B1 (en) | 2019-07-01 | 2021-01-26 | Western Digital Technologies, Inc. | Open channel vector command execution |
US10901624B1 (en) | 2019-07-01 | 2021-01-26 | Western Digital Technologies, Inc. | Dummy host command generation for supporting higher maximum data transfer sizes (MDTS) |
CN110659122A (zh) * | 2019-07-31 | 2020-01-07 | 杭州阿姆科技有限公司 | 一种ssd中断实现方法及装置 |
US20210042255A1 (en) | 2019-08-09 | 2021-02-11 | Sony Interactive Entertainment LLC | Methods for Using High-Speed Data Communication Fabric to Enable Cross-System Command Buffer Writing for Data Retrieval in Cloud Gaming |
US11789634B2 (en) | 2020-07-28 | 2023-10-17 | Samsung Electronics Co., Ltd. | Systems and methods for processing copy commands |
US11733918B2 (en) * | 2020-07-28 | 2023-08-22 | Samsung Electronics Co., Ltd. | Systems and methods for processing commands for storage devices |
WO2022021372A1 (zh) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | 一种处理器、ufs控制方法及计算机系统 |
KR20220045342A (ko) | 2020-10-05 | 2022-04-12 | 에스케이하이닉스 주식회사 | 호스트 장치, 데이터 저장 장치, 데이터 처리 시스템 및 데이터 처리 방법 |
US11461052B1 (en) * | 2021-04-08 | 2022-10-04 | Western Digital Technologies, Inc. | Storage system with dual submission queue doorbell registers and method for use in a multi-tenant system |
US11934684B2 (en) | 2021-12-14 | 2024-03-19 | Western Digital Technologies, Inc. | Maximum data transfer size per tenant and command type |
KR102560109B1 (ko) | 2023-03-20 | 2023-07-27 | 메티스엑스 주식회사 | 바이트 어드레서블 장치 및 이를 포함하는 컴퓨팅 시스템 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172207A1 (en) * | 2002-03-06 | 2003-09-11 | Takasugi Robin Alexis | Automated multiple data unit transfers between a host device and a storage medium |
US20100095080A1 (en) * | 2008-10-15 | 2010-04-15 | International Business Machines Corporation | Data Communications Through A Host Fibre Channel Adapter |
JP2011008760A (ja) * | 2009-05-22 | 2011-01-13 | Renesas Electronics Corp | マイクロコンピュータ |
US20120079234A1 (en) * | 2010-09-28 | 2012-03-29 | Microsoft Corporation | Performing computations in a distributed infrastructure |
US20150012687A1 (en) * | 2013-07-02 | 2015-01-08 | Phison Electronics Corp. | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus |
CN104281413A (zh) * | 2013-07-10 | 2015-01-14 | 群联电子股份有限公司 | 命令队列管理方法、存储器控制器及存储器储存装置 |
CN104798063A (zh) * | 2012-10-30 | 2015-07-22 | 株式会社东芝 | 存储设备和主机设备 |
CN105068953A (zh) * | 2014-05-07 | 2015-11-18 | Hgst荷兰公司 | 用于对等高速外围组件互联存储传输的系统和方法 |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
US20160291878A1 (en) * | 2015-04-03 | 2016-10-06 | SK Hynix Inc. | Memory controller including host command queue and method of operating the same |
US20170177541A1 (en) * | 2015-12-21 | 2017-06-22 | Microsemi Storage Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706942B2 (en) | 2004-12-29 | 2014-04-22 | Intel Corporation | Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices |
US7302512B1 (en) | 2005-12-09 | 2007-11-27 | Nvidia Corporation | Interrupt steering in computing devices to effectuate peer-to-peer communications between device controllers and coprocessors |
KR101042423B1 (ko) * | 2009-02-20 | 2011-06-16 | 한국태양유전(주) | 트랜스포머의 소음개선구조 |
KR101466592B1 (ko) | 2010-06-18 | 2014-12-01 | 엘에스아이 코포레이션 | 스케일러블 스토리지 디바이스들 |
US8588228B1 (en) * | 2010-08-16 | 2013-11-19 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner |
KR101184828B1 (ko) * | 2011-01-04 | 2012-09-20 | 현대모비스 주식회사 | 다이오드 모듈 |
CN104094244B (zh) | 2011-09-30 | 2017-05-31 | 英特尔公司 | 用于对于系统协处理器的直接i/o访问的方法和装置 |
IN2013KN03842A (zh) | 2012-10-27 | 2015-05-01 | Huawei Tech Co Ltd | |
KR102403489B1 (ko) | 2015-07-10 | 2022-05-27 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 |
KR20170032502A (ko) * | 2015-09-14 | 2017-03-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 인터럽트 발생 방법 |
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US11194735B2 (en) * | 2017-09-29 | 2021-12-07 | Intel Corporation | Technologies for flexible virtual function queue assignment |
-
2017
- 2017-11-30 KR KR1020170163369A patent/KR102446733B1/ko active IP Right Grant
-
2018
- 2018-07-06 US US16/028,791 patent/US10742737B2/en active Active
- 2018-11-28 CN CN201811439438.4A patent/CN110032332B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172207A1 (en) * | 2002-03-06 | 2003-09-11 | Takasugi Robin Alexis | Automated multiple data unit transfers between a host device and a storage medium |
US20100095080A1 (en) * | 2008-10-15 | 2010-04-15 | International Business Machines Corporation | Data Communications Through A Host Fibre Channel Adapter |
JP2011008760A (ja) * | 2009-05-22 | 2011-01-13 | Renesas Electronics Corp | マイクロコンピュータ |
US20120079234A1 (en) * | 2010-09-28 | 2012-03-29 | Microsoft Corporation | Performing computations in a distributed infrastructure |
CN104798063A (zh) * | 2012-10-30 | 2015-07-22 | 株式会社东芝 | 存储设备和主机设备 |
US20150012687A1 (en) * | 2013-07-02 | 2015-01-08 | Phison Electronics Corp. | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus |
CN104281413A (zh) * | 2013-07-10 | 2015-01-14 | 群联电子股份有限公司 | 命令队列管理方法、存储器控制器及存储器储存装置 |
CN105068953A (zh) * | 2014-05-07 | 2015-11-18 | Hgst荷兰公司 | 用于对等高速外围组件互联存储传输的系统和方法 |
US20160210062A1 (en) * | 2014-05-07 | 2016-07-21 | HGST Netherlands B.V. | SYSTEM AND METHOD FOR PEER-TO-PEER PCIe STORAGE TRANSFERS |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
US20160291878A1 (en) * | 2015-04-03 | 2016-10-06 | SK Hynix Inc. | Memory controller including host command queue and method of operating the same |
US20170177541A1 (en) * | 2015-12-21 | 2017-06-22 | Microsemi Storage Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221476A (zh) * | 2020-01-08 | 2020-06-02 | 深圳忆联信息系统有限公司 | 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 |
CN111221476B (zh) * | 2020-01-08 | 2022-03-29 | 深圳忆联信息系统有限公司 | 提升ssd性能的前端命令处理方法、装置、计算机设备及存储介质 |
CN114968856A (zh) * | 2021-02-18 | 2022-08-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190166201A1 (en) | 2019-05-30 |
KR20190064083A (ko) | 2019-06-10 |
CN110032332B (zh) | 2024-02-02 |
KR102446733B1 (ko) | 2022-09-23 |
US10742737B2 (en) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032332A (zh) | 存储设备和包括存储设备的电子设备 | |
CN108345545B (zh) | 在逻辑地址与物理地址之间执行散列式转译的存储装置 | |
CN105549898A (zh) | 操作数据存储装置和主机及移动计算装置的方法 | |
US20190171392A1 (en) | Method of operating storage device capable of reducing write latency | |
US20180059987A1 (en) | Method for reducing read buffer size requirements in nvme based solid state drives | |
US10572402B2 (en) | Storage device communicating with host according to multicast communication protocol and communication method of host | |
KR102395477B1 (ko) | 호스트 메모리에 대한 메모리 액세스를 스케쥴링하는 장치 컨트롤러, 및 이를 포함하는 저장 장치 | |
US10635349B2 (en) | Storage device previously managing physical address to be allocated for write data | |
US9632953B2 (en) | Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers | |
CN109783405A (zh) | 存储设备和存储设备的操作方法 | |
US20210232499A1 (en) | Storage device for mapping virtual streams onto physical streams and method thereof | |
US11762590B2 (en) | Memory system and data processing system including multi-core controller for classified commands | |
CN104011689A (zh) | 非易失性存储器损耗管理 | |
CN111684431A (zh) | 数据存储装置空闲时间处理 | |
TW202036296A (zh) | 記憶體系統及記憶體系統之控制方法 | |
KR20180126656A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10783033B2 (en) | Device and method for accessing in-band memory using data protection | |
US9971549B2 (en) | Method of operating a memory device | |
CN113282234A (zh) | 存储装置、存储系统、及其操作方法 | |
US20230101305A1 (en) | Storage device for mapping virtual streams onto physical streams and method thereof | |
CN115481066A (zh) | 计算设备、总线矩阵及计算设备的操作方法 | |
US10922239B2 (en) | Device for performing iterator operation in database | |
US11662947B2 (en) | Memory system and data processing system performing operation on commands before fetching of commands | |
US20220137998A1 (en) | Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same | |
US11321254B2 (en) | Computing system for transmitting completion early between serially connected electronic devices |
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 |