CN111045594B - 分区块命令到流命令翻译器及相关方法 - Google Patents

分区块命令到流命令翻译器及相关方法 Download PDF

Info

Publication number
CN111045594B
CN111045594B CN201910826183.5A CN201910826183A CN111045594B CN 111045594 B CN111045594 B CN 111045594B CN 201910826183 A CN201910826183 A CN 201910826183A CN 111045594 B CN111045594 B CN 111045594B
Authority
CN
China
Prior art keywords
command
memory device
type
layer
stream
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
Application number
CN201910826183.5A
Other languages
English (en)
Other versions
CN111045594A (zh
Inventor
D·E·热拉尔
N·E·奥特梅尔
C·拉皮
W·J·沃克尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN111045594A publication Critical patent/CN111045594A/zh
Application granted granted Critical
Publication of CN111045594B publication Critical patent/CN111045594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/02Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
    • G11B5/09Digital recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/012Recording on, or reproducing or erasing from, magnetic disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Sources (AREA)

Abstract

本发明公开了一种用于执行存储器装置的操作的方法,该方法包括:在计算机系统的层处接收命令;确定所接收的命令是否为第一命令类型或第二命令类型中的一者;确定能够在存储器装置中接收并且能够操作存储器装置的命令的类型;比较能够操作存储器装置的命令的类型和在层处接收的命令的类型;以及当在层处接收的命令的类型不同于能够在存储器装置中接收并且能够操作存储器装置的命令的类型时,将在层处接收的命令转换为能够操作存储器装置的命令类型。

Description

分区块命令到流命令翻译器及相关方法
背景技术
技术领域
本公开的实施方案整体涉及计算机部件的翻译。更具体地讲,所公开的方面提供了用以流命令翻译器的分区块命令。
相关技术的描述
分区块命令(“ZBC”)提供了用于最佳使用瓦式磁记录(“SMR”)硬盘驱动器的机制。SMR技术用于硬盘驱动器,但通常不对于固态驱动器实现。一些主计算机系统已经采用ZBC的支持来利用和优化SMR硬盘驱动器的使用。
为了最佳使用固态驱动器,提供了流命令支持。此类流命令支持为主机系统提供了用以分离写入数据(例如,顺序与随机,热与冷)以优化固态驱动器写入放大的机制。最小化固态驱动器写入放大有若干益处,包括减少磨损和改善性能。如果主机系统将写入数据分类到流中,则实现固态驱动器的这些益处。
ZBC和流命令共享一些共同的属性。ZBC和流命令具有类似的管理命令,例如,打开、关闭、以及获取区/流状态命令。各个区和流旨在将类似的写入数据组合在一起。固态驱动器可以将分区块命令用于写入数据分离目的。
通常,主机系统力求最佳利用所有终端设备类型。然后,制造商可以基于已安装的终端设备区分样片。然后,不同的终端设备可以基于性能、容量或其它性能属性来区分相应的主机系统,同时利用通用系统设计的成本。ZBC和流命令支持都将使主机系统能够确保最佳使用SMR硬盘驱动器和固态驱动器两者。
需要提供具有ZBC和流命令支持的主机系统,以实现用户灵活的系统。
进一步需要提供具有ZBC和流命令支持两者的经济的主机系统。
发明内容
本公开整体涉及允许计算机或存储器装置系统的层实现命令的翻译以使得不同类型的存储器装置系统可以与计算机主机系统互换使用的方法和装置。
在第一实施方案中,公开了用于执行存储器装置的操作的方法,该方法包括:在计算机系统的层处接收命令;确定所接收的命令是否为第一命令类型或第二命令类型中的一者;确定能够在存储器装置中接收并且能够在存储器装置中操作的命令的类型;比较能够在存储器装置中操作的命令的类型和在计算机系统的层处接收的命令;以及当在层处接收的命令的类型不同于能够在存储器装置中接收并且能够在存储器装置中操作的命令的类型时,将在层处接收的命令转换为能够操作存储器装置的命令类型。
在另一个示例性实施方案中,公开了为存储器装置创建最佳接口的方法,该方法包括:将存储器装置连接到主机系统;查询存储器装置关于将由存储器装置接受和操作的命令的类型;以及制备在主机系统与存储器装置之间的接口,使得由主机系统提供的命令将被存储器装置接受和操作。
在另一个实施方案中,公开了用于执行存储器装置的操作的方法,该方法包括:在计算机系统的层处接收命令;确定计算机系统的层处的命令是否对应于虚拟分区块设备;以及当计算机系统的层处的命令对应于虚拟分区块设备时,独立地处理计算机系统的层处的命令。
附图说明
因此,通过参考实施方案,能够获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1A是安装在主机系统中的Z流翻译器的组织平面图。
图1B是安装在驱动器层下的主机系统中的Z流翻译器的组织平面图。
图1C是安装在SAS扩展器中的Z流翻译器的组织平面图。
图1D是安装在固态驱动器中的Z流翻译器的组织平面图。
图2是Z流翻译器的部件以及它们在主机命令接口层与终端设备接口层之间的关系的图。
图3是虚拟区表以及支持流的终端设备的相关联值。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开的方面涉及提供ZBC到流翻译器以使主机系统能够将请求翻译成用于所连接设备的最佳命令集。在所公开的实施方案中,ZBC到流翻译器将来自上软件层的本机ZBC命令转换为对于连接的设备类型最佳的命令,并且将这些命令发送到较低软件层。在实施方案中,本机ZBC用于与SMR硬盘驱动器终端设备通信。ZBC到流翻译器将ZBC命令翻译成流命令以便与固态驱动器终端设备通信。
在实施方案中,如图1A中所提供的,ZBC到流翻译器可以放置在应用层与驱动器层之间的主机系统中。在另选实施方案中,如图1B中所提供的,将ZBC到流翻译器放置在驱动器层下方的主机系统内,并且连接到SAS扩展器。在另选实施方案中,ZBC到流翻译器可以被结合到SAS扩展器中,如图1C所示。在另一个示例性实施方案中,如图1D中所提供的,ZBC到流翻译器可以被结合到固态设备中。
相比之下,ZBC和流命令提供类似的功能,但是它们通过不同的接口实现。流命令有助于更加动态和灵活的写入数据分类。然而,ZBC命令在使用中更加静态且有限制性。ZBC与流命令之间的另一个差异在于命令是互相排斥的。例如,ZBC设备必须遵守ZBC政策,而流设备必须遵守流政策。
具体地讲,分区块设备以设备的静态区布局存在于主机系统中。该布局具有用于区访问的特定协议,该协议由设备强制执行。通常提供两种类型的分区块设备。可以提供支持顺序写入优选区的主机感知分区块设备。在另一个实施方案中,提供了支持顺序写入所需区的主机管理分区块设备。在分区块设备的任一实施方案中,可以提供各种分区块设备属性,诸如区类型(常规、顺序写入优选、顺序写入所需)、区状态、写入指针和区访问统计。
对于流设备,可以将流资源呈现给主机系统,其中可以同时使用流资源,而不限于定义的基于逻辑的地址布局。可以提供最小协议强制执行。此外,将需要提供最小的流属性维护。
下表1中提供了ZBC设备和流设备两者的功能方面的列表。
Figure GDA0004138435060000041
表1
在ZBC到流翻译器的实施方案中,翻译器提供了若干高级功能。ZBC到流翻译器检测将受益于流命令使用的终端设备类型的可用性。作为非限制性示例,固态驱动器将受益于此类流命令使用。ZBC到流翻译器可以基于终端设备能力创建虚拟ZBC配置,并将其呈现给主机命令管理层。可以从主机命令管理层拦截ZBC命令并将其转换为流命令。ZBC到流翻译器可以对虚拟区执行区状态管理和写入指针管理,该虚拟区针对终端设备翻译。
参见图2,提供了ZBC到流翻译器200的部件以及它们在主机命令接口层202与终端设备接口层204之间的关系的图。ZBC到流翻译器200设置有Z配置管理器206、Z命令处理程序208、Z状态机210和写入区管理器212。Z配置管理器206负责检测设备流能力并向上层呈现适当的虚拟区支持。Z配置管理器206还负责管理分区块设备特性VPD页面。Z命令处理程序208负责将ZBC命令翻译成流命令以在较低层级处理。Z状态机210管理各种虚拟区状态(空、满、关闭、打开)并且基于基于地址访问的主机逻辑来维护日志区统计。写入区管理器212管理虚拟写入区指针以及用于顺序写入所需和顺序写入优选区的协议规则。
Z配置管理器206的属性和功能职责是变化的。Z配置管理器206检测较低级设备的能力(例如,对ZBC的设备支持,对流命令的设备支持)。Z配置管理器206维护较低级别设备及其能力的映射。此外,Z配置管理器206可以为不支持ZBC的终端设备创建虚拟区表。Z配置管理器206还可被配置为使得虚拟分区块设备基于用户配置输入被配置为主机感知分区块设备或主机管理分区块设备。还可以提供Z配置管理器206以向上层软件呈现设备能力(包括虚拟区能力)。
Z配置管理器206具有用户定义的输入参数。一个参数被定义为虚拟分区块设备类型。虚拟分区块设备类型指定Z配置管理器206应当创建的虚拟分区块设备的类型。典型值可被定义为使得0=主机感知分区块设备并且1=主机管理分区块设备。另一个用户定义的输入参数是虚拟写入区计数。虚拟写入区计数指定虚拟分区设备应当包括的写入区的数量。出于定义的目的,至少为一个写入区提供上限,直到最大流数量。如果在设备级实现ZBC到流翻译器,则可以通过模式页面提供输入参数控制,或者如果在更高层实现Z流翻译器,则可以通过设备管理器提供输入参数控制。
Z配置管理器206的实现细节提供了以下设备枚举,Z流翻译器200检查终端设备的重要产品数据(“VPD”)以确定本机是否支持ZBC或者本机是否支持流命令。在一个非限制性实施方案中,ZBC类型可以通过标准查询数据中的外围设备类型和块设备特性VPD页面中的分区字段的组合来确定。流命令支持可以由块限制VPD页面中的最大流数量来确定。作为非限制性示例,值0指示流命令不被支持。
如果检测到ZBC兼容设备或者检测到不支持ZBC或流的终端设备,则Z流翻译器200进入“直通模式”,其中ZBC命令只是直接传递给设备。如果检测到流兼容设备,则Z配置管理器可以维护和拦截(或覆盖)外围设备类型的查询数据和分区字段以反映用户指定的虚拟分区块设备类型。
Z配置管理器206将虚拟区表配置用于支持流但不支持ZBC的终端设备。使用来自流命令兼容终端设备的块限制扩展VPD的最大数量的流,Z配置管理器206布置包含均匀分布在设备容量空间上的等效数量的虚拟区的虚拟区表。
在示于图3中的一个示例性实施方案中,虚拟区表可以由若干条目组成。提供区类型条目,该区类型条目反映区的类型(常规=1,顺序写入所需=2,顺序写入优选=3)。由虚拟区设备支持的写入区的类型由虚拟分区块设备类型输入参数指定,并且写入区的数量由虚拟写入区计数输入参数指定。在设备检测期间由Z配置管理器206来配置该字段。
在来自图3的虚拟区表示例中还提供了区条件条目。区条件指示当前区状态。该字段由Z配置管理器206初始化为空,并且由Z状态机210维护。
在来自图3的虚拟区表示例中提供了非顺序写入器资源(NSWR)动作条目。该NSWR被提供以指示非顺序写入资源对于该区是否有效。该字段由写入区管理器212维护。
在来自图3的虚拟区表示例中提供了重置写入指针(RWP)推荐实体。RWP实体指示是否对该特定区建议写入指针重置。该字段由写入区管理器212维护。
在示于图3中的虚拟区表示例中进一步提供了起始LBA(基于逻辑的地址)实体。起始LBA实体为该虚拟区指定起始LBA。在设备检测期间由Z配置管理器206来配置该值。
在来自图3的虚拟区表示例中还提供了长度条目。该长度条目为该虚拟区指定区长度。在设备检测期间由Z配置管理器206来配置值。
虚拟区表具有写入指针LBA条目,如图3所示。写入指针LBA为该虚拟区指定写入指针的当前位置。该字段由写入区管理器212维护。
虚拟区表还提供了区统计计数器,如图3所示。区统计计数器为该虚拟区指定区统计,该区统计出于报告目的在分区块设备统计信息日志页面中进行跟踪。这些计数器由Z状态机210维护。
为Z流翻译器200提供Z命令处理程序208。Z命令处理程序部件208负责若干功能。Z命令处理程序208拦截发布给流兼容设备的主机发起的ZBC命令。Z命令处理程序208还将ZBC命令翻译成适用的流命令,并将它们发布给流兼容设备(例如,打开区、关闭区、写入)。Z命令处理程序208还处理适用于虚拟ZBC驱动器的ZBC命令(例如,报告区、重置写入指针、完成区)。在一些实施方案中,Z命令处理程序208对具有区内容的命令(例如,格式化、清理、查询、读取容量)执行特殊处理和覆盖数据。Z命令处理程序208还负责返回对主机发起的ZBC命令的响应。
Z命令处理程序208可以被实现以使用Z配置管理器206部件信息,并且Z命令处理程序208检查以流兼容设备为目的地的命令帧。Z命令处理程序208将任何适用的ZBC命令转换为一个或多个流命令。打开区和关闭区命令可被翻译成流控制命令。写入命令可被发布到特定区,并且可被翻译成写入流命令到对应流ID。Z命令处理程序208可以将流命令发布到流兼容设备,促进相关联的数据传输并等待响应。Z命令处理程序208可以将流兼容设备响应转发到上层主机系统。
Z命令处理程序208可以直接处理适用于虚拟ZBC驱动器的ZBC命令。Z命令处理程序208通过返回由Z配置管理器206部件创建的虚拟区表来执行“报告区”命令。Z命令处理程序208通过从Z状态机210部件请求虚拟区状态转换来执行完成区命令。在一些实施方案中,Z命令处理程序208通过从Z状态机210部件请求虚拟区状态转换,并且通过重置由写入区管理器212部件维护的虚拟写入指针并在虚拟区中执行受影响LBA的内在修整来执行重置写入指针命令。Z命令处理程序208生成命令响应并将命令响应返回到主机。
Z命令处理程序208可以检查对虚拟分区设备有影响的其它设备命令。Z命令处理程序208确保向流兼容设备发布格式化和清理命令,这也可以导致分别对Z状态机210部件和写入区管理器212部件中的虚拟区条件状态表和虚拟写入指针的相关联更新。Z命令处理程序208在标准查询数据和块设备特性VPD页面中的分区字段中覆盖外围设备类型,如Z配置管理器208部件所定义。Z命令处理程序208处理对分区块设备特性页面的查询请求以反映虚拟分区设备的配置。Z命令处理程序208还可以基于读取容量(RC)基础字段更新为读取容量而返回的数据。
如图2中所提供的,提供Z状态机210来执行若干功能。首先,提供Z状态机210以为较低级流兼容设备的所有虚拟区维护非易失性虚拟区条件状态机。还提供Z状态机210,用于支持其它Z流部件所请求的虚拟区条件状态机更新。Z状态机210还可以为每个虚拟区维护日志区统计。
Z状态机210具有若干实现细节。Z状态机210可以为所有虚拟分区设备中的所有区维护虚拟区条件状态的状态。状态列表包括空、隐式打开、显式打开、关闭、满、脱机和只读。
在空状态下,该区中没有有效数据,并且虚拟写入指针被设置为区中的第一LBA。对于隐式打开状态,写入区通过隐式打开而打开以从写入命令到该区中的LBA接收写入数据。对于显式打开状态,写入区通过显式打开区命令而打开以接收写入数据。对关闭命令,写入区不再打开以接收附加写入数据。对于满状态,写入区已满,并且可能无法再打开以接收附加写入数据。对于脱机状态,较低级流兼容设备已进入故障状态并且不再能够接收写入数据。
Z状态机210可以支持来自其它Z流翻译器部件的状态转换请求。Z命令处理程序208部件基于主机命令请求虚拟区条件状态机状态转换。写入区管理器212部件基于对区的读取/写入访问来请求虚拟区条件状态机状态转换。Z状态机210还通过拒绝无效状态转换请求来为虚拟区条件状态机强制执行ZBC协议。
Z状态机210还可以为每个虚拟区维护和记录区统计。这样的统计的示例是维护支持分区块设备日志页面所需的所有区计数器。另外,在区事件发生时,Z状态机210可以使用由写入区管理器212部件提供的区访问信息来更新区统计。Z状态机210还可以在虚拟区条件状态机转换发生时保持其计数器统计。
如图2中所提供的,进一步提供了写入区管理器212。写入区管理器212提供监测对每个区的读取和写入访问以及强制执行区协议访问规则。另外,写入区管理器212为任何较低级流兼容设备的所有虚拟写入区维护虚拟写入指针。
写入区管理器212对主机命令执行LBA查找以确定正在访问哪个虚拟区。写入区管理器212基于正在访问的区类型来强制执行协议规则。写入区管理器212还与Z状态机210部件交互,以查看区状态应当允许还是拒绝主机访问请求。写入区管理器212具有其它功能,诸如对顺序写入所需区强制执行顺序访问规则以及在区边界内强制执行命令对齐规则。写入区管理器212还可被配置为如果命令访问导致虚拟区状态转换(例如,隐式打开、满),则从Z状态机210部件请求状态转换。
写入区管理器212还可以基于虚拟写入区的主机命令访问来更新虚拟写入指针。写入区管理器212可以基于对顺序写入所需区或顺序写入优选区的主机写入命令访问来增加虚拟写入指针。在一些实施方案中,写入区管理器212被配置为当主机写入命令导致虚拟区状态转换到满状态时使虚拟写入指针无效。
图3是包括支持流的终端设备的相关联值的虚拟区表示例。虚拟区表提供了区类型。区类型反映区的类型(常规=1,顺序写入所需=2,顺序写入优选=3)。由虚拟区设备支持的写入区的类型由虚拟分区块设备类型输入参数指定,并且写入区的数量由虚拟写入区计数输入参数指定。在设备检测期间由Z配置管理器来配置该字段。区条件的值表示当前的区状态。该字段由Z配置管理器初始化为空,并且由Z状态机维护。NSWR动作的值指示非顺序写入资源对于该区是否有效。该字段由写入区管理器维护。RWP推荐的值指示是否对该区建议写入指针重置。该字段由写入区管理器维护。起始LBA的值为该虚拟区指定起始LBA。在设备检测期间由Z配置管理器来配置该值。长度的值为该虚拟区指定区长度。这在设备检测期间由Z配置管理器来配置。写入指针LBA的值为该虚拟区指定写入指针的当前位置。该字段由写入区管理器维护。
区统计计数器为虚拟区指定区统计,该区统计出于报告目的在分区块设备统计信息日志页面0×14、子页面0×01中进行跟踪。这些计数器由Z状态机维护。
在所提供的实施方案中,允许设备以对设备最佳的本机功能操作。设备不需要为冗余方法提供或分配资源以提供类似的功能。实施方式允许基于设备能力和主机系统能力展示出最佳使用的自动配置系统。Z流翻译器呈模块化设计,并且能够在系统设计中的不同层处实现。这提供了系统设计灵活性,以最大化现有主机系统与终端设备之间的兼容性。例如,能够将具有流命令支持的SSD安装到具有ZBC支持的主机系统中,并实现流益处。
所提供的实施方案的附加优点包括设备测试能力。由于系统不易出错,因此设备制造商需要运行较少的测试。随着此类问题被最小化,对现有问题的解决会更快。当Z流翻译器200以主机系统级实现时,花费较低的鉴定成本。系统工程师只需要完成以本机功能模式操作的设备的单一鉴定,而不是在两种不同模式下使用的设备的扩展鉴定。
在所提供的实施方案中,层(诸如作为硬件或固件的抽象层)能够自动配置支持ZBC的主计算机系统与支持流命令的设备之间的最佳接口。与传统装置相比,此类实施方案提供了更多种配置和使用能力。还提供了层检测流命令兼容设备的能力,并且基于终端设备的流能力将虚拟块设备(例如,ZBC兼容设备)呈现给主机系统。
在上述实施方案中,向用户提供将层配置为将流兼容终端设备呈现为主机感知分区块设备或主机管理分区块设备的能力。层可将ZBC命令翻译成流命令。
在上述实施方案中,当写入命令将出现在虚拟分区块设备中的虚拟区中时,层可以检测到这些写入命令,并将这些写入命令翻译成写入流命令到对应的流ID,并且将写入流命令发出给有流能力的设备。例如,该层可以拦截仅适用于虚拟块设备的写入命令和其它命令,并且独立地处理这些命令。
在其它实施方案中,该层可以拦截数据并覆盖与具有适用于分区块设备的一些数据的命令相关的某些字段,并且用表示虚拟分区块设备的信息替换该数据。
实施方案还提供层(翻译器)以创建和维护表示流兼容终端设备的虚拟区表。然后可以在其它时间使用虚拟区表进行处理,从而允许更有效的处理。
在第一实施方案中,公开了用于执行存储器装置的操作的方法,该方法包括:在计算机系统的层处接收命令;确定所接收的命令是否为第一命令类型或第二命令类型中的一者;确定能够在存储器装置中接收并且能够在存储器装置中操作的命令的类型;比较能够在存储器装置中操作的命令的类型和在计算机系统的层处接收的命令;以及当在层处接收的命令的类型不同于能够在存储器装置中接收并且能够在存储器装置中操作的命令的类型时,将在层处接收的命令转换为能够操作存储器装置的命令类型。
在另一个示例性实施方案中,可以执行该方法,其中计算机系统的层在主机系统内。
在另一个示例性实施方案中,可以执行该方法,其中计算机系统的层在SAS扩展器内。
在另一个示例性实施方案中,可以执行该方法,其中计算机系统的层在存储器装置中。
在另一个示例性实施方案中,可以执行该方法,其中第一类型是流类型命令。
在另一个示例性实施方案中,可以执行该方法,其中第二类型是分区块命令。
在另一个示例性实施方案中,可以执行该方法,其中存储器装置是固态驱动器。
在另一个示例性实施方案中,该方法还可包括将能够操作存储器装置的命令类型传送到存储器装置。
在另一个示例性实施方案中,该方法还可包括在存储器装置处接收能够操作存储器装置的命令类型。
在另一个示例性实施方案中,公开了为存储器装置创建最佳接口的方法,该方法包括:将存储器装置连接到主机系统;查询存储器装置关于将由存储器装置接受和操作的命令类型;以及制备在主机系统与存储器装置之间的接口,使得由主机系统提供的命令将被存储器装置接受和操作。
在另外的示例性实施方案中,该方法可被配置为其中在主机系统与存储器装置之间的接口提供来自存储器的数据和命令中的至少一者,使得主机系统将能够接受来自存储器的数据并对来自存储器的命令起作用。
在其它另外的示例性实施方案中,可以完成该方法,其中查询存储器装置关于将由存储器装置接受和操作的命令类型检测流兼容设备和分区块兼容设备中的一者。
在另一个示例性实施方案中,可以完成该方法,其中流兼容设备是固态驱动器。
在其它另外的实施方案中,可以执行该方法,其中分区块兼容设备是硬盘驱动器。
在另一个实施方案中,可以执行该方法,其中抽象层将存储器装置的接口呈现给主机系统,作为对于存储器存储与主机系统兼容的设备。
在另一个实施方案中,公开了用于执行存储器装置的操作的方法,该方法包括在计算机系统的层处接收命令;确定计算机系统的层处的命令是否对应于虚拟分区块设备;以及当计算机系统的层处的命令对应于虚拟分区块设备时,独立地处理计算机系统的层处的命令。
在另一个示例性实施方案中,可以完成该方法,其中独立地处理命令发生在存储器装置的部件中。
在另一个示例性实施方案中,可以执行该方法,其中部件是Z流翻译器。
在另一个示例性实施方案中,可以执行该方法,其中存储器装置是固态驱动器。
在另一个示例性实施方案中,该方法还可包括将命令传送到存储器装置。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

Claims (20)

1.一种用于执行存储器装置的操作的方法,包括:
在计算机系统的层处接收命令;
确定所接收的命令是否为第一命令类型或第二命令类型中的一者;
确定能够在所述存储器装置中接收并且能够在所述存储器装置中操作的命令的类型;
比较能够在所述存储器装置中操作的命令的类型和在所述计算机系统的所述层处接收的命令的类型;以及
当在所述层处接收的命令的类型不同于能够在所述存储器装置中接收并且能够在所述存储器装置中操作的命令的类型时,将在所述层处接收的所述命令转换为能够操作所述存储器装置的命令类型,其中所述转换包括将分区块命令转换为流命令。
2.根据权利要求1所述的方法,其中所述计算机系统的所述层在主机系统内。
3.根据权利要求1所述的方法,其中所述计算机系统的所述层在SAS扩展器内。
4.根据权利要求1所述的方法,其中所述计算机系统的所述层在所述存储器装置中。
5.根据权利要求1所述的方法,其中所述第一命令类型是流类型命令。
6.根据权利要求1所述的方法,其中所述第二命令类型是分区块命令。
7.根据权利要求1所述的方法,其中所述存储器装置是固态驱动器。
8.根据权利要求1所述的方法,还包括:
将能够操作所述存储器装置的所述命令类型传送到所述存储器装置。
9.根据权利要求1所述的方法,还包括:
在所述存储器装置处接收能够操作所述存储器装置的所述命令类型。
10.一种为存储器装置创建最佳接口的方法,包括:
将所述存储器装置连接到主机系统;
查询所述存储器装置关于将由所述存储器装置接受和操作的命令的类型;以及
制备在所述主机系统与所述存储器装置之间的接口,使得由所述主机系统提供的命令将被所述存储器装置接受和操作,其中所述接受和操作包括将分区块命令转换为流命令。
11.根据权利要求10所述的方法,其中在所述主机系统与所述存储器装置之间的所述接口提供来自所述存储器的数据和命令中的至少一者,使得所述主机系统将能够接受来自所述存储器的所述数据并对来自所述存储器的所述命令起作用。
12.根据权利要求10所述的方法,其中所述查询所述存储器装置关于将由所述存储器装置接受和操作的所述命令的类型检测流兼容设备和分区块兼容设备中的一者。
13.根据权利要求12所述的方法,其中所述流兼容设备是固态驱动器。
14.根据权利要求12所述的方法,其中所述分区块兼容设备是硬盘驱动器。
15.根据权利要求12所述的方法,其中抽象层将所述存储器装置的所述接口呈现给所述主机系统,作为对于存储器存储与所述主机系统兼容的设备。
16.一种用于执行存储器装置的操作的方法,包括:
在计算机系统的层处接收命令;
确定所述计算机系统的所述层处的所述命令是否对应于虚拟分区块设备;以及
当所述计算机系统的所述层处的所述命令对应于所述虚拟分区块设备时,独立地处理所述计算机系统的所述层处的所述命令,其中所述处理包括将分区块命令转换为流命令。
17.根据权利要求16所述的方法,其中所述独立地处理所述命令发生在存储器装置的部件中。
18.根据权利要求17所述的方法,其中所述部件是ZBC到流翻译器。
19.根据权利要求16所述的方法,其中所述存储器装置是固态驱动器。
20.根据权利要求16所述的方法,还包括:
将所述命令传送到所述存储器装置。
CN201910826183.5A 2018-10-11 2019-09-03 分区块命令到流命令翻译器及相关方法 Active CN111045594B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/157,796 US10726865B2 (en) 2018-10-11 2018-10-11 Zoned block command to stream command translator
US16/157,796 2018-10-11

Publications (2)

Publication Number Publication Date
CN111045594A CN111045594A (zh) 2020-04-21
CN111045594B true CN111045594B (zh) 2023-06-20

Family

ID=69954515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910826183.5A Active CN111045594B (zh) 2018-10-11 2019-09-03 分区块命令到流命令翻译器及相关方法

Country Status (3)

Country Link
US (3) US10726865B2 (zh)
CN (1) CN111045594B (zh)
DE (1) DE102019123728A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249896B2 (en) * 2019-12-20 2022-02-15 Micron Technology, Inc. Logical-to-physical mapping of data groups with data locality
US20220188168A1 (en) * 2020-12-15 2022-06-16 International Business Machines Corporation Adjunct processor command-type filtering
US11487556B2 (en) 2020-12-15 2022-11-01 International Business Machines Corporation Command-type filtering based on per-command filtering indicator
US20220300195A1 (en) * 2021-03-22 2022-09-22 Micron Technology, Inc. Supporting multiple active regions in memory devices
KR20230060163A (ko) * 2021-10-27 2023-05-04 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865663B1 (en) * 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device
CN103858116A (zh) * 2011-08-09 2014-06-11 Lsi公司 I/o设备及计算主机互操作
US8904091B1 (en) * 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3294995B2 (ja) 1996-06-21 2002-06-24 三菱電機株式会社 帳票読取装置
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
WO2012057769A1 (en) * 2010-10-28 2012-05-03 Hewlett-Packard Development Company, L.P. Zoning data to a virtual machine
US9983992B2 (en) * 2013-04-30 2018-05-29 WMware Inc. Trim support for a solid-state drive in a virtualized environment
US10073774B2 (en) * 2016-04-29 2018-09-11 Netapp, Inc. Managing input/output operations for shingled magnetic recording in a storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865663B1 (en) * 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device
CN103858116A (zh) * 2011-08-09 2014-06-11 Lsi公司 I/o设备及计算主机互操作
US8904091B1 (en) * 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems

Also Published As

Publication number Publication date
DE102019123728A1 (de) 2020-04-16
CN111045594A (zh) 2020-04-21
US11615805B2 (en) 2023-03-28
US11195548B2 (en) 2021-12-07
US10726865B2 (en) 2020-07-28
US20200118585A1 (en) 2020-04-16
US20200342898A1 (en) 2020-10-29
US20220076696A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
CN111045594B (zh) 分区块命令到流命令翻译器及相关方法
US8621603B2 (en) Methods and structure for managing visibility of devices in a clustered storage system
US7953942B2 (en) Storage system and operation method of storage system
US7437424B2 (en) Storage system
JP3837953B2 (ja) 計算機システム
US8051262B2 (en) Storage system storing golden image of a server or a physical/virtual machine execution environment
US20060271752A1 (en) Method and apparatus for direct input and output in a virtual machine environment
US8612708B2 (en) Hardware data protection device
US8756355B2 (en) Methods and structure for configuring a Serial Attached SCSI domain via a Universal Serial Bus interface of a Serial Attached SCSI expander
US20060206638A1 (en) Command multiplex number monitoring control scheme and computer system using the command multiplex number monitoring control scheme
JP5549432B2 (ja) ストレージ装置及びアクセス制御プログラム
US7493462B2 (en) Apparatus, system, and method for validating logical volume configuration
US9311195B2 (en) SCSI reservation status information on a SAN disk
US6842810B1 (en) Restricted access devices
US10216433B2 (en) Accessing a virtual volume on a storage array
JP2007072521A (ja) 記憶制御システム及び記憶制御装置
US11971838B2 (en) Apparatuses, systems, and methods for providing communication between memory cards and host devices
WO2022068298A1 (zh) U盘访问方法及u盘
US20090144466A1 (en) Storage apparatus, storage system and path information setting method
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system
JP3897049B2 (ja) 計算機システム
CN109416669B (zh) 计算机、计算机系统及数据量限制方法
US20060101169A1 (en) Device and method for generating a logical path between connection of control device connected to a host device and memory device provided in said control device
US8856481B1 (en) Data processing system having host-controlled provisioning of data storage resources
CN116501663A (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