CN106598480B - 具有接口控制机制的电子系统及其操作方法 - Google Patents
具有接口控制机制的电子系统及其操作方法 Download PDFInfo
- Publication number
- CN106598480B CN106598480B CN201610811479.6A CN201610811479A CN106598480B CN 106598480 B CN106598480 B CN 106598480B CN 201610811479 A CN201610811479 A CN 201610811479A CN 106598480 B CN106598480 B CN 106598480B
- Authority
- CN
- China
- Prior art keywords
- order
- cpu
- interface
- command
- key assignments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- 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/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
公开具有接口控制机制的电子系统及其操作方法,所述电子系统包括:存储装置,被配置为接收接口命令,其中,所述存储装置包括:接口控制单元,第一CPU,连接到接口控制单元,被配置为执行逻辑块地址(LBA)命令,第二CPU,连接到接口控制单元,被配置为执行键值命令,非易失性存储器,连接到易失性存储器、第一CPU和第二CPU,被配置为独立并且同时处理LBA命令和键值命令;其中,第一CPU或者第二CPU被配置为在完成LBA命令或者键值命令之后编译详细状态;接口控制单元连接到装置耦合结构,被配置为通过将详细状态发送到装置驱动器来响应接口命令。
Description
本申请要求于2015年10月14日提交的第62/241,499号美国临时专利申请和于2016年1月25日提交的第15/005,497号美国临时专利申请的权益,所述申请的主题通过引用包含于此。
技术领域
本发明的实施例整体上描述涉及一种电子系统,更具体地讲,涉及一种用于电子系统的数据存储功能的系统。
背景技术
现代固态硬盘(SSD)由于其在数据操作期间的快速响应代表了日益增长的数据存储策略的趋势。与磁盘驱动器相比,大量SSD可以给数据中心提供更大的容量、更低的功耗和更高的性能。随着向SSD迁移的势头增大,一个问题凸显了出来,为什么数据块应该被限制在512字节。从历史上看,512字节块是处理磁介质中的可靠性问题的可行的大小。今天,大多数操作系统都受困于固定的块大小。
操控大数据库的逻辑暴露了操作系统的技术弱点。虽然尝试了一些方法以增加固定的块大小,但是一些存储器制造商借助于通过运行512仿真模式以隐藏内部块大小。这样做可以处理固定块接口传输的低效率并隐藏更大的内部数据块的使用,通常内部块大小是1K到4K字节。但是这些策略涉及困难的错误恢复过程,并且小的单块更新必须被执行为读-修改-写操作,这严重降低了性能。
因此,在集群计算环境中,对于具有接口控制机制的电子系统,仍然存在提高执行可靠性和性能的需求。鉴于不断增加的商业竞争压力,随着日益增长的消费者预期和市场上有意义的产品差异化的机会减少,找到这些问题的答案越来越重要。此外,降低成本的需求、提高效率和性能、满足竞争压力更增加了寻求这些问题的答案的关键必要性的紧迫性。
人们一直在寻找这些问题的解决方案,但是之前的发展中还没有教导或提出任何解决方案,因此,对于这些问题的答案在现有技术中一直被规避。
发明内容
本发明的实施例提供一种电子系统,包括:存储装置,被配置为接收接口命令,所述存储装置包括:接口控制单元;第一CPU,连接到接口控制单元,被配置为执行逻辑块地址(LBA)命令;第二CPU,连接到接口控制单元,被配置为执行键值命令;非易失性存储器,连接到易失性存储器,第一CPU和第二CPU,被配置为独立并且同时执行LBA命令和键值命令;其中,第一CPU或者第二CPU被配置为在完成LBA命令或者键值命令之后编译详细状态;连接到装置耦合结构的接口控制单元被配置为通过将详细状态发送到装置驱动器来响应接口命令。
本发明的实施例提供一种电子系统的操作方法,包括:通过存储装置接收接口命令,接收接口命令的步骤包括:在接口控制单元中分析接口命令,选择用于执行逻辑块地址(LBA)命令的第一CPU,选择用于执行键值命令的第二CPU,独立并且同时处理LBA命令和键值命令以访问非易失性存储器;在完成LBA命令或者键值命令之后,通过第一CPU或者第二CPU编译详细状态;以及通过经由装置耦合结构向装置驱动器发送详细状态来响应接口命令。
除了以上提及的步骤和元件以外,本发明的特定实施例还具有其他步骤和元件,或者本发明的特定实施例还具有替代以上提及的步骤和元件的其他步骤和元件。通过以下结合附图阅读以下具体实施方式,所述步骤或者元件对于本领域技术人员将变得清楚。
附图说明
图1是实施例中具有接口控制机制的电子系统的结构框图。
图2是实施例中存储设备的条件命令的流程图。
图3是在实施例中电子系统的命令解释的流程图。
图4是在本发明的另外的实施例中电子系统的操作方法的流程图。
具体实施方式
各种实施例提供了用于大型数据库的接口控制机制,接口控制机制可简化分布式输入/输出(I/O)接口并通过建立较少负担的I/O架构最大化电子系统的执行效率。接口控制机制可被配置为在运行中不使用I/O存储栈结构来处理在用户程序中使用的数据,或者支持操作系统的固定块结构。接口控制机制的执行可在用户程序级被配置为提供对存储装置的有效访问并提供最大化的程序执行效率。
各种实施例通过允许常规I/O存储栈外部的大规模传输或由操作系统架构提供的标准固定块传输来提供用于大型数据库的接口控制机制。接口控制机制还允许基于分配给数据的键值或者逻辑块地址操纵数据。数据管理机制可在主机中央处理单元(CPU)、系统存储器中操作,而不需要通过操作系统调用I/O。从系统存储器的用户定义空间执行接口控制机制可提供更高优先级的操作,同时管理键值存储装置的操作特征。电子系统还可支持在如今操作系统中流行的固定块架构。这种组合可提高数据管理机制的效率和运行性能。
以下实施例描述足够的细节,以使本领域技术人员可以实现和使用本发明。应理解,其他实施例基于本公开将是明显的,并且在不脱离本发明实施例的范围的情况下,可以进行系统、过程或者机械改变。
在以下描述中给出了许多具体细节,以提供对本发明的全面理解。然而,明显的是,本发明可以在没有这些具体细节的情况下实现。为了避免模糊本发明的实施例,没有详细披露一些公知的电路、系统配置和处理步骤。
示出系统的实施例的附图是半图示的,而不是按比例的,具体地讲,一些尺寸是为了让呈现清晰,并且在附图中被夸大示出。相似地,虽然附图中的示图为了易于描述一般显示相似的方向,但是附图中的这些描绘在大多数情况下是任意的。一般来说,本发明可在任何方向操作。
根据使用术语的上下文,此处提到的术语“模块”可包括本发明实施例的软件、硬件或者它们的组合。例如,软件可以是机器代码、固件、嵌入式代码和应用软件。再例如,硬件可以是电路、处理器、计算机、集成电路、集成电路核、压力传感器、惯性传感器、微机电系统(MEMS)、无源器件或者它们的组合。此外,如果模块被写入装置权利要求部分,则该模块被视为包括用于装置权利要求的目的和范围的硬件电路。
此处提到的术语“单元”是由硬件部件或者用于特定功能的硬件状态机形成的电路。“单元”可用于为关键功能定时并且不必要包括软件功能或者支持。此处提到的术语“常规I/O存储栈”是主机系统存储器中的存储段,用于为操作系统执行的输入/输出(I/O)保持地址指针和中断标志。常规I/O存储栈向I/O插入延迟以将中断指针加载到存储器,从而基于与固定大小的数据块的传输相关的中断来将数据传输到I/O装置或者从I/O装置传输输出。
需要键值存储解决方案的数据解决方案可能具有这样的难题:识别支持改进的存储技术的可用存储装置。另一个难题是:支持键值命令结构的存储装置不能在仅支持逻辑块地址(LBA)架构的传统系统中使用。对于LBA接口存储装置,存在两个支持键值命令的问题。第一个问题是需要两个映射层。所述两个映射层中的一个映射层使用键作为索引检索值位置(逻辑块地址),另一个映射层在发出块IO请求之前使用值位置信息(逻辑块地址)检索值。第二个限制是2层映射系统需要大量的数据传输开销,但是与数据单元是固定大小块(例如,512字节或者4K字节)的事实相混合,如果数据大小和块不一致,则可能造成不必要的数据被传输。
参照图1,示出了本发明构思的实施例中带有接口控制机制的电子系统100的结构框图。电子系统100包括存储装置102,此类装置的例子可包括基于闪存的固态存储装置(SSSD)、磁性随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)和相变存储器(PCM)以及混合硬盘存储装置和键值存储适配器,键值存储适配器通过用于识别文件结构的键值来寻址。存储装置102可以是非易失性数据存储机制,它通过可交换的键值寻址或者LBA寻址来存储和访问用户数据。存储装置102可用于在管理大型数据库以及来自操作系统的正常固定块传输的计算环境下进行数据处理。
装置耦合结构104可以将存储装置102链接到主机处理器106。装置耦合结构104可以是连接在主机处理器106和存储装置102之间的输入/输出接口结构。装置耦合结构104可包括外围部件快速接口(PCI-e)、光纤通道(FC)、小型计算机系统接口(SCSI)或者串行连接SCSI(SAS)和主机存储通道接口。装置耦合结构104可被实现为电子系统100的主机内部应用的存储器总线。装置耦合结构104可提供主机处理器106和存储装置102之间的本地或者远程连接。存储装置102和主机处理器106之间的装置耦合结构104的连接以满足装置耦合结构104的规格的形式被执行。
装置耦合结构104可为LBA传输或键值传输提供与存储装置102的直接耦合和通信。应理解,与LBA传输的通信需要由操作系统提供的I/O调用,并且可使用逻辑块地址(LBA)架构。因为存储装置102可使用LBA架构和基于键值的线性存储架构,所以来自主机处理器106的通信可被简化。
主机处理器106可以是通用计算机、计算机网络、服务器、存储处理器、GPU、ASIC、FPGA、PLD等。主机处理器106可执行键值装置应用程序接口(API)108、LBA API 109和装置驱动器110。
键值装置API 108提供应用程序接口,它允许用户应用程序在不包括存储装置102的操作特征的描述的情况下访问存储装置102。键值装置API 108是将标准应用程序指令翻译成装置驱动器110可识别的形式的程序。键值装置API 108将应用程序需求传送到装置驱动器110,以转换为存储装置102识别的接口命令111。LBA API 109可将应用程序需求传送到装置驱动器110,以转换为存储装置102识别的接口命令111。装置驱动器110可处理支持LBA架构和基于键值的线性存储架构两者的接口命令111。接口命令111可包括条件命令和数据处理命令。
装置驱动器110可通过装置耦合结构104与供应商特定版本的非易失性存储器(NVMe)通信。存储装置102的实施例可具有支持LBA架构的默认配置,并且具有将其部分或全部资源转换为支持键值架构的能力。装置驱动器110可将条件命令111发送到存储装置102,来配置硬件和固件资源以支持LBA架构、键值架构、或者它们的组合。
装置驱动器110可通过装置耦合结构104与存储装置102中的接口控制单元112通信。接口控制单元112可具有命令复用器114,命令复用器114可检测输入命令是否是条件命令111、LBA命令115或者键值命令116。命令复用器114可将进入接口控制单元112的信息导向第一命令处理器117或者第二命令处理器118。存储装置102可配置接口控制单元112的硬件和固件以支持来自装置驱动器110的条件命令111。
在实施例中,接口控制单元112可被实现为包括在处理器上运行的固件的模块,或者被实现为具有专用硬件的单元,所述专用硬件用于对命令结构解码并将解码的命令传送给第一命令处理器117或者第二命令处理器118。任何一种实现都可支持使用电子系统100。
应理解,第一命令处理器117可以是电子系统100中立即可用的任何命令处理单元(CPU)资源。在连续命令序列上,第一命令处理器117可以是不同的CPU。还应理解,第二命令处理器118可以是不执行第一命令处理器117的固件的任何其他可用的CPU资源。在实施例中,第一命令处理器117可以是执行固件以支持LBA命令115的单个CPU配置,第二命令处理器118可以是执行固件以支持键值命令116的相同的单个CPU。
LBA命令115可以是基于扇区的操作系统标准命令,可在主机处理器106和存储装置102之间通过基于寄存器的命令结构传送,所述基于寄存器的命令结构包括编号0-15的16个双字(DWORD)(每个DWORD 32位)。在LBA命令115中,DWORD0是操作代码,DWORD1是系统标识符(NSID)。在LBA命令115中,DWORD2-11是预留的或者用于一般命令信息。DWORD12用于指示将在LBA命令115中被处理的扇区的数目。DWORD13-15与键值命令116有关。LBA命令115仅可按扇区传输数据,并且每个扇区作为逻辑块来计数,其中,逻辑块与逻辑块地址关联。
键值命令116可以是基于寄存器的命令,所述基于寄存器的命令包括编号0-15的16个双字(DWORD)(每个DWORD 32字节)。在键值命令116中,DWORD0是操作代码,DWORD1是系统标识符(NSID)。在键值命令116中,DWORDS2-14是预留的,或者用于一般命令信息。DWORD15是键值命令116中键的大小的具体内容。键值命令116可传输与键(数据文件的标识符)有关的任何数量的数据字节。
在实施例中,第一命令处理器117和第二命令处理器118可具有仅支持LBA命令115的默认配置。来自装置驱动器110的条件命令可使第一命令处理器117和第二命令处理器118中的一个被重新配置为处理键值命令116。如果第一命令处理器117或者第二命令处理器118中仅有一个被重新配置为处理键值命令116,则存储装置102能够同时处理LBA命令115和键值命令116。
应理解,存储装置102的仅支持LBA命令115的默认配置仅是例子。存储装置102的默认配置还可支持LBA命令115和键值命令116的混合,或者默认配置仅支持键值命令116。存储装置102的具体默认配置不仅局限于单个实施例。还应理解,存储装置102可独立并且同时执行LBA命令115和键值命令116,这是因为存储装置102的部分资源被分配为仅执行LBA命令115,并且存储装置102的另外部分资源被分配为仅执行键值命令116。存储装置102可通过专用资源同时执行两种命令类型,或者独立执行其中的一种命令类型。
第一命令处理器117或者第二命令处理器118可接收数据处理命令111(例如,读、写或擦除),并将实际的命令处理分配给多个中央处理单元(CPU)120中的CPU 120,所述多个CPU 120可包括第一CPU 122和第二CPU 124。实施例示出具有四个CPU 120,但是任何数量都是可能的。CPU 120可以是位片式处理器、微处理器、可编程状态机、程序序列装置、微型计算机等。第一命令处理器117或者第二命令处理器118可基于条件命令配置多个CPU120以处理键值命令116或LBA命令115。在执行数据处理命令期间,每个CPU 120可具有分配的特定命令类型,并将仅执行该命令类型、LBA命令115或者键值命令116,直到该CPU 120被重新配置。
作为示例,第一CPU 122可使用易失性存储器126作为临时存储器或者高速缓存,并使用非易失性存储器128作为用于被处理的数据的长期存储机制,来执行LBA命令115。因为第一CPU 122被配置为执行LBA命令115,所以逻辑-物理表可被保持在易失性存储器126中,并可在断电之前被复制到非易失性存储器128的预留位置。逻辑-物理表可保持每个LBA到非易失性存储器128中的物理位置的位置指针,LBA的数据被存储在所述物理位置中。
同时,在作为示例第一CPU 122执行LBA命令115的情况下,第二CPU 124可执行键值命令116。第二CPU 124可使用易失性存储器126作为临时存储器或者高速缓存,并且使用非易失性存储器128作为被处理的数据的长期存储机制。因为第二CPU 124被配置为执行键值命令116,所以键值索引列表可被保持在易失性存储器126中,并可在断电之前被复制到非易失存储器128中的预留位置。键-物理表可保持每个键到非易失性存储器128中的物理位置的位置指针,与键关联的值的数据存储在所述物理位置中。
非易失性存储器128可包括闪存、磁性随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)和相变存储器(PCM)以及混合硬盘存储装置和键值存储适配器。应理解,当非易失性存储器128被显示为物理地在存储装置102上时,这仅是一个实施例,其他实施例也是可能的。在实施例中,非易失性存储器128可以是通过网络或者线缆连接的存储装置,并且多个CPU 120可生成后续命令以存储来自LBA命令115或者键值命令126的数据。
当完成LBA命令115或者键值命令116时,详细状态130可由完成接口命令111的第一CPU 122或者第二CPU 124编译在易失性存储器126中。详细状态130可由将接口命令111分配给多个CPU 120中的一个的第一命令处理器117或者第二命令处理器118通过装置耦合结构104被发送到装置驱动器110。
已发现电子系统100可通过允许在存储装置102中同时执行LBA命令115和键值命令116两者来提高主机处理器106的性能。第一命令处理器117和第二命令处理器118可配置多个CPU 120以保持可适应(accomodate)存储装置102的读/写访问的键值索引列表、逻辑-物理表或者它们的组合。
参照图2,示出了实施例中存储装置的条件命令201的流程图。条件命令201的流程图描述了在方框202中装置驱动器接收配置装置的需求的过程。图1的键值装置API 108和图1的LBA API 109可指示图1的装置驱动器110配置图1中的存储装置102,以便支持图1的主机处理器106的需求。
主机处理器106可在存储装置102上支持图1的LBA命令115和图1的键值命令116的混合。需求可被加载到装置驱动器110,以与存储装置102通信。可通过装置驱动器110执行这一过程,在方框204中装置驱动器110将条件命令发送到存储装置102。装置驱动器110可通过图1的装置耦合结构104将条件命令111发送到接口控制单元112以执行条件命令111。
在方框206中,存储装置102可响应于条件命令改变固件或者硬件配置。图1的第一命令处理器117可接收条件命令111,并对固件、硬件或者它们的组合做出任何配置改变,以满足条件命令111。第一命令处理器117可配置图1的第一CPU 122以辅助存储装置102的重新配置。存储装置102的重新配置可包括针对多个CPU 120映射不同的固件,并配置硬件以隔离LBA命令115和键值命令116之间的存储指针。
应理解,当需要不同的配置时,附加的条件命令可随后发生并且可进行硬件和固件配置改变。条件命令可按照当前系统活动需要的多个CPU 120的任何比例,配置对于LBA命令115和键值命令116的支持的混合。
当重新配置完成时,在方框208中,装置将它的状态返回给装置驱动器。第一CPU122可在易失性存储器126中准备图1的详细状态130,详细状态130指示条件命令111需要的每个配置改变的成功或者失败。第一命令处理器117可通过装置耦合结构104将详细状态130传输到装置驱动器110,以对主机处理器106进行响应。
已发现,存储装置120的实施例可通过在单个条件命令111中处理存储装置的配置来减少装置耦合结构104的拥堵。存储装置102可被配置为支持任何比例的LBA命令115和键值命令116的混合。
参照图3,示出了在实施例中电子系统100的命令解释301的流程图。命令解释301的流程图描述在方框302中装置驱动器构造混合的键值/LBA接口的命令。图1的装置驱动器110可构造图1的数据处理命令111,数据处理命令111包括:“GET”,作为读命令;“PUT”,作为写命令;和“DELETE”,作为擦除。通过使用NVMe寄存器命令集的格式,LBA命令115和键值命令116可映射到相同的命令格式。
流程进行到方框304,在方框304中,装置驱动器110通过装置耦合结构104将接口命令111发送到存储装置102。接口命令111可以是条件命令或者数据处理命令。通过将LBA命令115和键值命令116映射到接口命令111,图1的电子系统100可将传输实际字节计数的接口命令111,不受限于LBA命令115的512字节或者4K字节。
流程进行到方框306,在方框306中,存储装置102接收接口命令111并将其移交给图1的命令复用器114。图1的接口控制单元112可接收接口命令111,并处理与装置耦合结构104关联的传输协议。
流程进行到方框308,在方框308中,命令复用器114分析接口命令111。命令复用器114可解析接口命令111的格式以便确定接口命令111是否是条件命令111、LBA命令115、或者键值命令116。命令复用器114可基于NVMe格式中的DWORD12的低16位的内容,对LBA命令115之间的决定或者键值命令116进行键值化,DWORD12包含LAB命令115的扇区数。如果DWORD12包含零,则命令复用器114可检查NVMe中的DWORD15以识别键值命令116,DWORD15包含按照字节的“键”大小。如果DWORD12和DWORD15两者都包含零,则接口命令111可被识别为条件命令111。
流程进行到方框310,在方框310中,命令复用器114确定接口命令111是否是键值命令116。如果接口命令111不是键值命令116,则流程进行到方框312,在方框312中,命令复用器114路由到块命令处理器,例如,第一命令处理器117。第一命令处理器117还可分析接口命令111以提取命令的需求,并利用执行接口命令111所需的信息设置图1的易失性存储器126。然后,流程进行到方框314。
如果在方框310中,接口命令111被确定为键值命令116,则流程进行到方框316,在方框316中,命令复用器114路由到键值命令处理器,例如,第二命令处理器118。第二命令处理器118还可分析接口命令111以提取命令的需求,并利用执行接口命令111所需的信息设置图1的易失性存储器126。然后,流程进行到方框314。
应理解,在电子系统100的单个处理器环境中,方框310可以在固件中分支到可执行LBA命令或者键值命令的编写的执行串。命令执行的准备可在实际执行数据传输和从命令清除之前配置传输字节数、数据目的地和状态准备。流程进行到方框314以便执行之前在方框312中或者方框316中设置的命令。命令执行的其余部分正常进行。
在方框314中,第一命令处理器117或者第二命令处理器118可识别多个CPU 120中的一个以执行接口命令111。作为示例,如果第一命令处理器117确定接口命令是条件命令111或者LBA命令115,则可选择第一CPU 122来执行接口命令。另一方面,如果第二命令处理器检测到接口命令111是键值命令116,则可选择第二CPU 124来执行接口命令111。
多个CPU 120中的选择的一个CPU可被配置为从易失性存储器126中检测信息以执行接口命令111。如果需要额外的接口交换(例如,对于数据传输),则多个CPU 120中的选择的一个CPU可使选择的第一命令处理器117或者第二命令处理器118执行数据传输。多个CPU120中的选择的一个CPU可在易失性存储器126和非易失性存储器128之间传输数据,以适合于执行接口命令111。也就是说,读命令111将在使选择的第一命令处理器117或者第二命令处理器118执行数据传输之前将数据从非易失性存储器128传输到易失性存储器126。在写命令111的情况下,数据可在传输到非易失性存储器128之前传输到易失性存储器126。在任一种情况下,数据可保持在作为高速缓存的易失性存储器126中,以适合于存储装置102的设置。
流程进行到方框318,在方框318中,存储装置102将完成消息发送到装置驱动器110。选择的一个CPU 120在完成接口命令111时可确定详细状态130,在易失性存储器126中设置完成消息,并使选择的第一命令处理器117或者第二命令处理器118将图1的详细状态130发送到装置驱动器110。在错误的情况下,错误细节可作为详细状态130的一部分被传输。
已发现电子系统100可通过使用多个CPU 120执行接口命令111来减少用户数据的传输延迟,同时,初始分析和解析由用于LBA命令115的第一命令处理器117以及用于键值命令116的第二命令处理器来执行。NVMe命令格式可利用相同的效率处理LBA命令115和键值命令116两者,并且在运行中执行条件命令111的能力使得图1的主机处理器106有能力定制应用于LBA命令115和键值命令116中的每一个的资源量。
参照图4,示出了在本发明的另外的实施例中电子系统100的操作方法400的流程图。操作方法400包括:在方框402中,通过存储装置102接收接口命令111,接收接口命令的步骤包括:在接口控制单元112中通过检查接口命令111的DWORD15的内容来分析接口命令111,如果DWORD15等于零,则选择用于执行逻辑块地址LBA命令115的第一CPU 122,如果DWORD15不等于零,则选择用于执行键值命令116的第二CPU 124,独立并且同时处理LBA命令115和键值命令116以访问非易失性存储器128;在方框404中,在完成LBA命令115或者键值命令116之后,通过第一CPU 122或者第二CPU 124编译详细状态130;并且在方框406中,通过经由装置耦合结构104将详细状态130发送到装置驱动器110来响应接口命令111。
得到的方法、处理、设备、装置、产品和/或系统是简单的、节省成本的、不复杂的、高度灵活的、准确的、灵敏的和有效的,并且可通过调整已知组件来实现,从而迅速、高效、经济的制造、应用和使用。本发明的实施例的另一个重要方面是它有价值地支持和服务于降低成本、简化系统和增加性能的历史趋势。
因此,本发明的实施例的这些和其他有价值的方面促进技术状态至少进入下一级别。
尽管已经结合特定最佳模式描述了本发明,但是应理解,考虑到前面的描述,很多替代、修改和变化对于本领域技术人员将是清楚的。相应地,意图使所有这样的替代、修改和变化落入所包括的权利要求的范围内。这里在附图中阐明或示出的所有内容将以示意性和非限制性意义来解释。
Claims (20)
1.一种电子系统,包括:
存储装置,被配置为接收接口命令,其中,所述存储装置包括:
接口控制单元,
第一CPU,连接到接口控制单元,被配置为执行逻辑块地址LBA命令,
第二CPU,连接到接口控制单元,被配置为执行键值命令,和
非易失性存储器,连接到易失性存储器、第一CPU和第二CPU,被配置为独立并且同时处理LBA命令和键值命令;
其中:
第一CPU或者第二CPU被配置为在完成LBA命令或者键值命令之后编译详细状态;以及
接口控制单元连接到装置耦合结构,被配置为通过将详细状态发送到装置驱动器来响应接口命令。
2.如权利要求1所述的电子系统,其中,接口控制单元包括被配置为分析LBA命令的第一命令处理器。
3.如权利要求1所述的电子系统,其中,接口控制单元包括被配置为分析键值命令的第二命令处理器。
4.如权利要求1所述的电子系统,其中,接口控制单元包括被配置为分析条件命令的第一命令处理器。
5.如权利要求1所述的电子系统,还包括:命令复用器,被配置为基于接口命令的DWORD15分析接口命令并路由到第一命令处理器或者第二命令处理器,其中,DWORD15是接口命令中的编号为15的双字。
6.如权利要求1所述的电子系统,还包括由被配置为执行LBA命令的第一CPU访问的易失性存储器。
7.如权利要求1所述的电子系统,还包括由被配置为执行键值命令的第二CPU访问的易失性存储器。
8.如权利要求1所述的电子系统,其中,接口控制单元被配置为分析接口命令,以从多个CPU中选择第一CPU。
9.如权利要求1所述的电子系统,还包括:第一命令处理器,被配置为执行条件命令,并且将一个或多个CPU重新配置为执行LBA命令、键值命令或者它们的组合。
10.如权利要求1所述的电子系统,其中,接口电路被配置为响应于加载到主机处理器中的键值应用程序接口API或者LBA API,接受由装置驱动器生成的接口命令。
11.一种电子系统的操作方法,包括:
通过存储装置接收接口命令,其中,接收接口命令的步骤包括:
在接口控制单元中分析接口命令,
选择用于执行逻辑块地址LBA命令的第一CPU,
选择用于执行键值命令的第二CPU,和
独立并且同时处理LBA命令和键值命令,以访问非易失性存储器;
在完成LBA命令或者键值命令之后,通过第一CPU或者第二CPU编译详细状态;和
通过经由装置耦合结构将详细状态发送到装置驱动器来响应接口命令。
12.如权利要求11所述的操作方法,还包括:识别LBA命令,其中,识别LBA命令的步骤包括通过由命令复用器选择的第一命令处理器分析接口命令。
13.如权利要求11所述的操作方法,还包括:识别键值命令,其中,识别键值命令的步骤包括通过由命令复用器选择的第二命令处理器分析接口命令。
14.如权利要求11所述的操作方法,还包括:识别条件命令,其中,识别条件命令的步骤包括通过由命令复用器选择的第一命令处理器分析接口命令。
15.如权利要求11所述的操作方法,还包括:基于接口命令的DWORD15分析接口命令并路由到第一命令处理器或者第二命令处理器,其中,DWORD15是接口命令中的编号为15的双字。
16.如权利要求11所述的操作方法,还包括:通过被配置为执行LBA命令的第一CPU访问易失性存储器。
17.如权利要求11所述的操作方法,还包括:通过被配置为执行键值命令的第二CPU访问易失性存储器。
18.如权利要求11所述的操作方法,还包括:分析接口命令,以从多个CPU中选择第一CPU。
19.如权利要求11所述的操作方法,还包括:执行条件命令,其中,执行条件命令的步骤包括将一个或多个CPU重新配置为执行LBA命令、键值命令或者它们的组合。
20.如权利要求11所述的操作方法,还包括:响应于加载到主机处理器中的键值应用程序接口API或者LBA API,接受由装置驱动器生成的接口命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562241499P | 2015-10-14 | 2015-10-14 | |
US62/241,499 | 2015-10-14 | ||
US15/005,497 US9927984B2 (en) | 2015-10-14 | 2016-01-25 | Electronic system with interface control mechanism and method of operation thereof |
US15/005,497 | 2016-01-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598480A CN106598480A (zh) | 2017-04-26 |
CN106598480B true CN106598480B (zh) | 2019-06-18 |
Family
ID=58522978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610811479.6A Active CN106598480B (zh) | 2015-10-14 | 2016-09-08 | 具有接口控制机制的电子系统及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9927984B2 (zh) |
JP (1) | JP6734751B2 (zh) |
KR (1) | KR102358477B1 (zh) |
CN (1) | CN106598480B (zh) |
TW (1) | TWI699696B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423331B2 (en) * | 2016-02-02 | 2019-09-24 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
US11287973B2 (en) | 2016-02-02 | 2022-03-29 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
US11301422B2 (en) * | 2016-02-23 | 2022-04-12 | Samsung Electronics Co., Ltd. | System and methods for providing fast cacheable access to a key-value device through a filesystem interface |
EP3279810B1 (en) * | 2016-06-14 | 2019-09-04 | Huawei Technologies Co., Ltd. | Data access method and related apparatus and system |
US10372351B2 (en) * | 2017-02-23 | 2019-08-06 | Western Digital Technologies, Inc. | Techniques for non-blocking control information and data synchronization by a data storage device |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US20180364937A1 (en) * | 2017-06-20 | 2018-12-20 | Samsung Electronics Co., Ltd. | System and method for managing memory device |
US11182694B2 (en) * | 2018-02-02 | 2021-11-23 | Samsung Electronics Co., Ltd. | Data path for GPU machine learning training with key value SSD |
TWI659359B (zh) | 2018-04-27 | 2019-05-11 | 慧榮科技股份有限公司 | 控制儲存裝置之方法 |
US11580162B2 (en) * | 2019-04-18 | 2023-02-14 | Samsung Electronics Co., Ltd. | Key value append |
US10861490B1 (en) * | 2019-08-12 | 2020-12-08 | Seagate Technology Llc | Multi-controller data storage devices and methods |
KR102660778B1 (ko) | 2021-02-17 | 2024-04-24 | 동의대학교 산학협력단 | 혈당 조절이 가능한 후코이단을 해조류로부터 추출하는 방법 |
US11816349B2 (en) | 2021-11-03 | 2023-11-14 | Western Digital Technologies, Inc. | Reduce command latency using block pre-erase |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US20130086311A1 (en) | 2007-12-10 | 2013-04-04 | Ming Huang | METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS |
US8234426B2 (en) | 2010-06-08 | 2012-07-31 | Innostor Technology Corporation | Switching interface method for a multi-interface storage device |
WO2011162541A2 (ko) | 2010-06-22 | 2011-12-29 | 엘지전자 주식회사 | 상향링크 다중 안테나 전송에 대한 프리코딩 정보를 결정하는 방법 및 장치 |
CN102918509B (zh) * | 2011-05-31 | 2014-06-04 | 华为技术有限公司 | 数据读写方法、装置和存储系统 |
JP5524144B2 (ja) * | 2011-08-08 | 2014-06-18 | 株式会社東芝 | key−valueストア方式を有するメモリシステム |
US8631212B2 (en) * | 2011-09-25 | 2014-01-14 | Advanced Micro Devices, Inc. | Input/output memory management unit with protection mode for preventing memory access by I/O devices |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
KR101254647B1 (ko) | 2012-08-13 | 2013-04-15 | 주식회사 유니테스트 | 솔리드 스테이트 드라이브 테스트장치 |
KR102025341B1 (ko) * | 2012-12-04 | 2019-09-25 | 삼성전자 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
US20140304513A1 (en) | 2013-04-01 | 2014-10-09 | Nexenta Systems, Inc. | Storage drive processing multiple commands from multiple servers |
US20140331001A1 (en) | 2013-05-02 | 2014-11-06 | Lsi Corporation | Command Barrier for a Solid State Drive Controller |
US9779138B2 (en) * | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US9563426B1 (en) * | 2013-12-30 | 2017-02-07 | EMC IP Holding Company LLC | Partitioned key-value store with atomic memory operations |
US9652154B2 (en) | 2014-02-05 | 2017-05-16 | Sandisk Technologies Llc | Storage module and host device for storage module defragmentation |
US9569141B2 (en) | 2014-03-28 | 2017-02-14 | Intel Corporation | Hash map support in a storage device |
CN103902698B (zh) * | 2014-03-31 | 2018-04-13 | 北京皮尔布莱尼软件有限公司 | 一种数据存储系统和存储方法 |
CN104461380B (zh) * | 2014-11-17 | 2017-11-21 | 华为技术有限公司 | 数据存储方法及装置 |
-
2016
- 2016-01-25 US US15/005,497 patent/US9927984B2/en active Active
- 2016-05-20 KR KR1020160062286A patent/KR102358477B1/ko active IP Right Grant
- 2016-06-23 TW TW105119647A patent/TWI699696B/zh active
- 2016-09-08 CN CN201610811479.6A patent/CN106598480B/zh active Active
- 2016-10-12 JP JP2016200749A patent/JP6734751B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
TWI699696B (zh) | 2020-07-21 |
US9927984B2 (en) | 2018-03-27 |
KR20170043993A (ko) | 2017-04-24 |
US20170109041A1 (en) | 2017-04-20 |
TW201714076A (zh) | 2017-04-16 |
JP2017076398A (ja) | 2017-04-20 |
KR102358477B1 (ko) | 2022-02-04 |
JP6734751B2 (ja) | 2020-08-05 |
CN106598480A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598480B (zh) | 具有接口控制机制的电子系统及其操作方法 | |
US8751741B2 (en) | Methods and structure for implementing logical device consistency in a clustered storage system | |
US8972615B2 (en) | Communication with input/output system devices | |
US8516161B2 (en) | Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system | |
US9723080B2 (en) | Storage management computer and method for avoiding conflict by adjusting the task starting time and switching the order of task execution | |
US10747443B2 (en) | Electronic system with storage management mechanism and method of operation thereof | |
JP2011512587A (ja) | 制御装置との通信用に構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作に関する入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法(単一入出力操作内の双方向データ転送) | |
CN102301355A (zh) | 在硬件存储控制器中提供差异化i/o服务 | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US11853234B2 (en) | Techniques for providing access of host-local storage to a programmable network interface component while preventing direct host CPU access | |
TWI333144B (en) | Device, system, method and computer-readable storage medium storing instructions for managing errors on a target storage device | |
CN104471553A (zh) | 用于共享地址装置的聚合的方法、装置和系统 | |
CN110647359A (zh) | 半导体装置、其操作方法和具有其的层叠存储装置 | |
CN106648851A (zh) | 一种多控存储中io管理的方法和装置 | |
US10133492B2 (en) | Electronic system with interface control mechanism and method of operation thereof | |
CN116540952B (zh) | 磁盘访问方法及装置、存储介质、电子设备 | |
US20170163312A1 (en) | Electronic system with network operation mechanism and method of operation thereof | |
US8656059B2 (en) | Methods for exchanging administrative information through a communication interface with limited administrative information exchange features | |
JP5104320B2 (ja) | コンピュータシステム、コンピュータ本体、起動方法、および初期化プログラム | |
US20220137998A1 (en) | Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same | |
US10168943B2 (en) | Determining correct devices to use in a mass volume migration environment | |
CN109388513A (zh) | 数据校验的方法、阵列控制器及硬盘 |
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 |