CN104798010B - 至少部分的串行存储协议兼容帧转换 - Google Patents
至少部分的串行存储协议兼容帧转换 Download PDFInfo
- Publication number
- CN104798010B CN104798010B CN201380045730.7A CN201380045730A CN104798010B CN 104798010 B CN104798010 B CN 104798010B CN 201380045730 A CN201380045730 A CN 201380045730A CN 104798010 B CN104798010 B CN 104798010B
- Authority
- CN
- China
- Prior art keywords
- partly
- frame
- protocol
- grouping
- link
- 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/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/0661—Format or protocol conversion 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/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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
实施例可包括电路,所述电路用于(a)将至少一个串行存储协议兼容帧至少部分转换成至少部分与多路输入/输出(I/O)协议兼容的至少一个分组,和/或(b)将所述至少一个分组至少部分转换成至少一个帧。所述至少一个分组可经至少部分与多路I/O协议兼容的物理层传送。所述至少一个分组可包括所述至少一个帧的帧信息结构(FIS)信息。
Description
技术领域
本公开内容涉及至少部分的串行存储协议兼容帧转换。
背景技术
诸如串行高级技术附件(SATA)协议的串行存储协议已已赢得广泛的使用和接受。虽然SATA协议(例如,如2011年7月18日的“串行修订版3.1”,Gold修订版,串行ATA国际组织中所述)提供用于显著的最大允许通信带宽,但该带宽固有地受SATA协议本身的某些参数限制。例如,SATA协议只提供用于单路半双工通信。SATA协议的这些和其它规定固有地限制或降低了能够以别的方式根据SATA协议执行的最大通信带宽。
简单地增大通信通路的数量和/或尝试以全双工进行通信将不是令人满意的解决方案,这是因为此类更改将与当前部署(例如,只能够使用单路半双工通信)的SATA协议驱动器(和/或其它SATA过程)不兼容。相应地,将合意的是在保持与此类当前部署的SATA协议驱动器(和/或其它SATA过程)的兼容性的同时,增大SATA协议通信的通信带宽。
附图说明
实施例的特征和优点随着以下具体实施方式继续,并参照附图(其中,类似的标号示出类似部分)时将变得显而易见,并且其中:
图1示出一***实施例的元素。
图2示出一***实施例的元素。
虽然以下具体实施方式将参照说明性实施例继续,但其许多备选、修改和变化将对于本领域技术人员显而易见。因此,意在广泛地理解要求保护的主题。
具体实施方式
图1示出一***实施例100。***100可包括可经一个或更多个(并且在此实施例中,多个)通信链路和/或通路150、152以通信方式耦合在一起的一个或更多个主机10和/或一个或更多个装置20。一个或更多个主机10和一个或更多个装置20可在地理上至少部分相互远离,或备选地,可至少部分包括在一个或更多个共同外壳和/或机箱(未示出)中。在此实施例中,术语“主机计算机”、“主机”、“服务器”、“节点”和/或“装置”可互换使用,并且例如可表示一个或更多个终端站、智能电话、平板计算机、器具、中间站、网络接口、客户端和/或服务器和/或存储装置和/或大容量存储装置和/或其部分。在此实施例中,“网络”、“通信链路”和/或“通信通路”可互换使用,并且可以是或者包括至少部分允许,促进和/或准许两个或更多个实体以通信方式耦合在一起的任何机制、工具、形态和/或其部分(例如,包括但不限于一个或更多个有线和/或无线网络和/或一个或更多个其部分)。此外,在此实施例中,如果第一实体能够向第二实体传送和/或从第二实体接收一个或更多个命令和/或数据,则第一实体可“以通信方式耦合”到第二实体。在此实施例中,“无线网络”指至少部分允许至少两个实体至少部分以无线通信方式耦合的网络。在此实施例中,“有线网络”指至少部分允许至少两个实体至少部分经非无线部件耦合的网络。在此实施例中,数据可以是或包括一个或更多个命令(例如,一个或更多个程序指令),和/或一个或更多个此类命令可以是或者包括数据。此外,在此实施例中,“指令”可包括数据和/或一个或更多个命令。
在此实施例中,一个或更多个通路150至少部分可以是或者包括一个或更多个(并且在此实施例中,多个)物理层通信通路,这些通路可允许从一个或更多个装置20到一个或更多个主机10的通信。此外,在此实施例中,一个或更多个通路152至少部分可以是或者包括一个或更多个(并且在此实施例中,多个)物理层通信通路,这些通路可允许从一个或更多个主机10到一个或更多个装置20的通信。因此,当结合在一起时,通路150、152可允许在一个或更多个主机10与一个或更多个装置20之间的双向通信。
主机10可包括电路118。电路118例如可包括一个或更多个单核和/或多核主机处理器(HP) 12、一个或更多个芯片集(CS) 15、计算机可读/可写存储器21和/或一个或更多个网络接口控制器(NIC) 110。一个或更多个芯片集(其例如可包括存储器和/或输入/输出控制器电路)15可以通信方式耦合一个或更多个主机处理器12、存储器21和/或NIC 110。备选地或另外,虽然图中未示出,但一些或所有电路118和/或其功能性和组件例如可包括在一个或更多个主机处理器12、一个或更多个芯片集15和/或一个或更多个NIC 110中。许多其它备选是可能的而不脱离此实施例。
一个或更多个机器可读程序指令可存储在计算机可读/可写存储器21中。在一个或更多个主机10的操作中,这些指令可由一个或更多个主机处理器12、一个或更多个芯片集15、一个或更多个NIC 110和/或电路118访问和执行。在这样访问和执行这些指令时,这可至少部分导致一个或更多个协议本72和/或一个或更多个转换过程70(其可至少部分包括在一个或更多个栈72中)至少部分由一个或更多个主机处理器12、一个或更多个芯片集15、一个或更多个NIC 110和/或电路118中执行,和/或至少部分变成驻留在存储器21中。这可导致一个或更多个主机处理器12、一个或更多个芯片集15、一个或更多个NIC 110、电路118、一个或更多个栈72和/或一个或更多个过程70执行本文中所述的操作,如同由***100的这些组件执行一样。
在此实施例中,实体的一部分可包括所有实体或少于所有实体。此外,在此实施例中,栈、过程、程序、驱动器、操作***和/或应用可包括和/或至少部分由一个或更多个程序指令的执行产生。在此实施例中,存储器21可包括一个或更多个以下类型的存储器:半导体固件存储器、可编程存储器、非易失性存储器、大容量存储装置、只读存储器、电可编程存储器、随机存取存储器、闪存存储器、磁盘存储器、光盘存储器和/或其它或以后开发的计算机可读和/或可写存储器。
例如取决于特定实施例,一个或更多个装置20可全部或部分包括相应组件,这些组件至少部分可对应于一个或更多个主机10的上述相应组件。例如,在一个或更多个装置20中的电路118'、一个或更多个主机处理器12'、一个或更多个芯片集15'、存储器21'、一个或更多个栈72'、一个或更多个转换过程70'和/或一个或更多个NIC 110'可至少部分分别对应于一个或更多个主机10中的电路118、一个或更多个主机处理器12、一个或更多个芯片集15、存储器21、一个或更多个栈72、一个或更多个转换过程70和/或一个或更多个NIC110,和/或具有与其类似(或相同)的功能性。然而,备选地或另外,在不脱离此实施例的情况下,一个或更多个装置20可至少部分包括与一个或更多个主机10的相应组件和/或功能性可至少部分不同的相应组件和/或功能性。
在本文中使用时,“电路”例如可单独或以任何组合方式包括模拟电路、数字电路、硬连线电路、可编程电路、协处理器电路、状态机器电路和/或存储器,它们可包括可由可编程电路执行的程序指令。此外,在此实施例中,处理器、处理器核、核和控制器各自可包括能够至少部分执行一个或更多个算术和/或逻辑操作的相应电路,如一个或更多个相应中央处理单元。此外,在此实施例中,芯片集可包括能够至少部分以通信方式耦合一个或更多个主机处理器、存储装置、大容量存储装置、一个或更多个节点和/或存储器的电路。虽然图中未示出,但主机10和/或装置20各自可包括相应图形用户接口***。未示出的相应图形用户接口***例如可包括相应键盘、指点装置和显示***,它们可允许一个或更多个人类用户将命令输入主机10、装置20和/或***100以及监视其操作。虽然本描述将参照至少部分是或包括在一个或更多个存储装置和/或大容量存储装置和/或节点中的一个或更多个装置20进行,但应领会的是,一个或更多个装置20可至少部分是或包括一个或更多个其它和/或另外类型的装置和/或节点。
在操作中,NIC 110和/或芯片集15可根据一个或更多个多路输入/输出(I/O)通信协议经通路150、152与NIC 110'和/或芯片集15'交换数据和/或命令。在此实施例中,多路I/O通信协议可至少部分是、包括和/或促进经和/或使用不止一个通信通路的通信。例如,在此实施例中,此类数据和/或命令可至少部分包括在可经通路150、152进行传递的一个或更多个分组54中和/或由其包含。一个或更多个分组54和/或通路150、152可至少部分符合和/或兼容一个或更多个多路I/O通信协议,如外设组件快速互连(PCIe)协议(例如,如2010年11月10日的PCI-SIG PCIe基础规范修订版3.0中所述),其在下文总称或单称为“PCIe协议”。
在此实施例中,一个或更多个栈54可至少部分包括帧信息结构(FIS)信息56,其可至少部分在一个或更多个帧52中推导、获得和/或以前包括在其中。一个或更多个帧52可至少部分符合和/或兼容SATA协议。在实施例中,术语“帧”和/或“分组”可互换使用,并且可表示一个或更多个符号和/或值。
例如,如图2所示,协议栈72可包括多个栈层和/或过程71、74、70、76、77和/或79。栈72中的层和/或过程71、74、70、76、77和/或79可至少部分分别对应于栈72'中的层和/或过程71'、74'、70'、76'、77'和/或79',和/或具有与其类似(或相同)的功能性。
在此实施例中,SATA命令/应用层和/或过程71和/或SATA传输层和/或过程74可至少部分符合和/或兼容SATA协议。此外,在此实施例中,PCIe传输层和/或过程76、PCIe数据链路层和/或过程77和/或PCIe物理层79可至少部分符合和/或兼容PCIe协议。当然,在此实施例中可采用其它和/或另外的串行存储协议和/或多路I/O通信协议(例如,不同于和/或附加于与SATA协议和/或PCIe协议)。
在此实施例中,栈72可包括可在SATA传输层和/或过程74和PCIe事务层和/或过程76中间(作为栈72的一部分)执行的一个或更多个SATA/PCIe转换层和/或过程70。在栈72的操作中,一个或更多个SATA命令/应用层过程71可生成一个或更多个SATA相符/兼容(至少部分)帧(未示出),其可至少部分包含和/或指示与一个或更多个请求的SATA I/O操作(例如,将至少部分由一个或更多个装置20执行)相关联的数据和/或命令。来自过程71的这些一个或更多个未示出的帧可由一个或更多个SATA传输层过程74封装和/或以其它方式处理,以产生可包括SATA FIS信息56的一个或其它SATA相符/兼容(至少部分)帧59,SATA FIS信息56与这些一个或更多个命令、数据和/或SATA I/O操作相关联和/或包含这些一个或更多个命令、数据和/或SATA I/O操作。
在此实施例中,一个或更多个帧59可至少部分由一个或更多个SATA/PCIe转换层过程70转换成一个或更多个PCIe相符分组57,PCIe相符分组57(和/或包括的信息)至少部分要经PCIe物理层79和/或一个或更多个PCIe物理通路152传送到一个或更多个装置20。一个或更多个分组57可至少部分包括FIS信息56和/或其它信息,在一个或更多个过程70'接收一个或更多个分组57后,这些信息可允许一个或更多个SATA/PCIe转换过程70'将一个或更多个分组57至少部分转换成一个或更多个帧59。
例如,一个或更多个PCIe事务层过程76可封装(和/或以其它方式处理)一个或更多个分组57,并且其结果可传递到可执行另外的封装和/或处理的一个或更多个PCIe数据链路层过程77。另外的封装和/或处理的结果可由PCIe物理层79处理以导致生成可经通路152传送到PCIe物理层79'的一个或更多个分组54。PCIe物理层79'和过程77'与76'可分别去除由PCIe物理层79和过程77与76以前给予的封装和/或处理,以便由此产生一个或更多个分组57。一个或更多个分组57可至少部分由一个或更多个SATA/PCIe转换过程70'转换成一个或更多个帧59。一个或更多个SATA传输层过程74'可去除一个或更多个SATA传输层过程74以前给予的封装和/或处理,并且产生的一个或更多个未示出的分组可由一个或更多个SATA命令/应用层过程71'处理(例如,以导致一个或更多个装置20执行一个或更多个请求的SATA I/O操作)。一个或更多个装置20执行这些一个或更多个请求的SATA I/O操作的结果可由栈72'以经一个或更多个通路150传送到栈72的一个或更多个其它PCIe相符(至少部分)分组(未示出)的形式提供到栈72。栈72'可经与前面所述可由栈72用于生成一个或更多个分组54的那些技术和/或操作类似的技术和/或操作,至少部分生成这些一个或更多个其它PCIe相符分组。在接收这些一个或更多个其它PCIe相符分组后,栈72可使用与前面所述可由栈72'用于处理一个或更多个分组54类似的技术和/或操作处理它们。
在此实施例中,一个或更多个分组54可至少部分是或包括一个或更多个PCIe供应商定义的消息(VDM) 82,VDM 82可至少部分符合和/或兼容2010年11月10日的PCI-SIGPCIe基础规范修订版3.0的第2.2.8.6部分(“Vendor_Defined消息”)。一个或更多个VDM 82可包括一个或更多个数据有效负载80,数据有效负载80可包括FIS(和/或其它)信息56,而信息56可至少部分包括、指示和/或包含一个或更多个请求的SATA I/O操作(和/或其执行的结果)和/或有关数据和/或命令。
一个或更多个过程(和/或其它过程)70可至少部分执行操作以在SATA相符过程/层(例如,过程71和74)与PCIe相符过程/层(例如,过程76、77、物理层79和通路150、152)之间映射和/或协调SATA和PCIe协议操作。这可允许SATA相符过程/层能够至少部分与PCIe相符过程/层和谐地进行互操作,且反之亦然。
例如,一个或更多个过程70(和/或栈72和/或主机10中的其它过程)可至少部分与一个或更多个过程70'(和/或栈72'和/或装置20中的其它过程)根据PCIe协议协商(例如,通路150、152的和/或用于通路150、152的)一个或更多个链路速度LS1...LSN和/或链路宽度LW1...LWN。根据PCIe协议,至少部分可由这些实际协商的链路速度LS1...LSN和/或实际协商的链路宽度LW1...LWN产生的实际通信带宽AB1...ABN可大于SATA协议允许的最大带宽。相应地,为保持与栈72、72'中SATA相符过程的互操作兼容性,过程70和/或70'可至少部分向其相应栈72和/或72'中的一个或更多个相应SATA相符过程71、74和/或71'、74'指示(例如,报告)一个或更多个相应的协商的带宽和/或链路速度(总称和/或单称为NB1...NBN),其可均不同于(例如,小于)相应实际带宽AB1...ABN和/或链路速度LS1...LSN,并且符合SATA协议。可使用SATA协议状况寄存器(SStatus)字段SPD报告协商的带宽和/或链路速度NB1...NBN。例如,在概念上,只要实际带宽AB1...ABN大于最大允许SATA协议带宽,则报告的、协商的带宽和/或链路速度NB1...NBN可对应于最大允许SATA带宽(例如,SATA第三代最大带宽,对应于每秒600兆字节)。取决于特定实际带宽AB1...ABN、实际链路速度LS1...LSN和/或链路带宽LW1...LWN,可由过程70和/或70'报告的特定相应协商的带宽和/或链路速度NB1...NBN可变化,以便保持与其相应栈中SATA相符过程的兼容交互和/或互操作。在此实施例中,带宽条件可至少部分是、包括、涉及、有关、提及、反映、指示和/或暗示带宽的状态、状况、使用和/或消耗。此外,在此实施例中,带宽和通信带宽可互换使用,并且可至少部分是、包括、涉及、有关、提及、反映、指示和/或暗示通信能力、吞吐量、速率和/或通信量。
另外或备选,在此实施例中,一个或更多个过程70(和/或栈72和/或主机10中的其它过程)可至少部分分别与一个或更多个过程70'(和/或栈72'和/或装置20中的其它过程)协商和/或在主机10和/或装置20中管理一个或更多个(并且在此实施例中,多个)物理层链路/通路150、152的一个或更多个(并且在此实施例中,多个)相应状态121。例如,状态121可包括相应链路/通路功率状态PS1...PSN和/或相应通信状态CS1...CSN。过程70和/或70'可至少部分协商和/或管理这些状态121,以便在SATA相符过程/层与PCIe相符过程/层之间保持兼容的交互和/或互操作。
例如,过程70和/或70'可根据下文协调相应物理通路/链路的相应功率和/或通信状态的建立和/或报告(例如,经SATA SStatus寄存器字段DET)。如果PCIe链路训练和状况状态机(LTSSM)状态是“检测”,则报告的SATA状态可对应于“未检测到状态”和/或“未建立物理通信”。相反,如果PCIe LTSSM状态是“轮询”、“配置”或“恢复”和/或功率状态L0、L1、L2等,则报告的SATA状态可以是“检测到装置”和/或“未建立物理通信”。此外,相反,如果PCIeLTSSM状态是L0,则报告的SATA状态可以是“检测到装置”和/或“物理通信已建立”。还相反的是,如果PCIe LTSSM状态是“禁用”和/或“回送”,则报告的SATA状态可以是“物理在脱机模式”(phy in offline mode)。
另外或备选地,过程70和/或70'可相对PCIe活动状态功率管理来映射、管理和/或协调SATA接口功率状态的建立和/或报告,以便在SATA相符过程/层与PCIe相符过程/层之间保持兼容的交互和/或互操作。例如,在PCIe协议中,给定链路的接收和传送侧可能独立于彼此进入和退出功率状态。为便于使此行为与SATA协议兼容,过程70和70'可通过交换一个或更多个包含VDM的分组以请求、启动和/或通知此类功率状态进入和/或退出来协调其相应接收和传送侧链路的进入和/或退出。另外,为保持与SATA协议的兼容性,过程70和70'可确保功率状态退出等待时间不超过10微秒。在PCIe L0功率状态的情况下,在传送侧和接收侧均已进入L0时,可报告SATA部分状态。在PCIe L1状态的情况下,在接收和传送侧均进入L1状态时,可报告SATA睡眠(slumer)状态。
另外或备选,过程70和/或70'可暂时存储(例如,在相应缓冲器69和/或69'中)一个或更多个帧52和/或一个或更多个分组57和/或一个或更多个分组59以便至少部分仿真半双工通信。缓冲器69和/或69'可至少部分分别包括在过程70和/或70'中和/或分别包括在电路118和/或118'中。
例如,PCIe协议是全双工通信协议,同时如上所述,SATA协议是半双工通信协议(例如,一次只允许在一个方向上的实际FIS传送,并且SATA主机要暂停传送以有利于装置启动的传送)。为解决在PCIe协议与SATA协议之间的这些潜在冲突,过程70和/或70'可暂时在接收侧在相应缓冲器69和/或69'中缓冲进入的非数据的包含FIS的分组和/或帧。如果缓冲的分组包含RH2D-FIS,并且装置20具有以前发送的DMAS-FIS,则一个或更多个过程70可缓冲分组,直至对于以前收到的DMAS-FIS完成数据传送。通过执行这些操作,尽管实际情况是SATA是半双工协议并且PCIe是全双工协议,但过程70和/或70'可能可分别在主机10和装置20中在SATA相符过程/层与PCIe相符过程/层之间至少部分保持兼容的交互和/或互操作。
另外或备选,过程70和/或70'可至少部分分别在其相应栈72和72'中管理到相应SATA兼容过程的通信状况通知,以便至少部分保持与SATA协议的兼容性。例如,过程70和/或70'可适当映射PCIe状况的状况报告(例如,用于错误和/或正常操作条件)到SATA状况,并且可向SATA过程71、74和/或71'、74'报告此类SATA状况。例如,如果PCIe链路从L0、L1或L2功率状态退出,或者进入活动链路(例如,L0状态),则可报告SATA“检测到COMWAKE”(COMWAKE Detected)状况。相反,如果PCIe链路从LTSSM轮询转变到LTSSM配置,则可报告SATA“检测到COMINIT”(COMINIT Detected)状况。
另外或备选,通过使用与上面呈现的那些技术(和/或其它技术)类似的技术,过程70和/或70'(和/或其它PCIe过程/层)可实现基于PCIe信用的流控制、等待时间容忍报告和/或直接存储器访问技术,同时保持与SATA过程71、74和/或71'、74'的兼容交互和/或互操作。有利的是,这可允许PCIe协议的这些高级和/或改进的能力在此实施例中实现,同时仍保持与SATA相符过程的后向兼容性。
因此,实施例可包括用于(a)将至少一个串行存储协议兼容帧至少部分转换成至少部分与多路输入/输出(I/O)协议兼容的至少一个分组和/或(b)将所述至少一个分组至少部分转换成至少一个帧的电路。所述至少一个分组可经至少部分与多路I/O协议兼容的物理层传送。所述至少一个分组可包括所述至少一个帧的帧信息结构(FIS)信息。
有利的是,此实施例的特征可允许基于SATA的通信以比根据SATA协议将另外可能的更高速度和/或带宽执行,同时保持与当前部署的SATA协议驱动器(和/或其它SATA过程)的完全以及和谐兼容性。
在不脱离此实施例的情况下,许多备选、修改和/或变化是可能的。例如,在此实施例中,PCIe链路150、152可至少部分经和/或作为可耦合主机10和装置20的布线(未示出)实现。在此布置中,技术可用于至少部分使在SATA协议中采用的扩频(非常见)计时技术与在PCIe协议中采用的常见计时技术相适应、协调和/或兼容。此外,例如除PCIe协议外,其它和/或另外的协议还可用于经链路150、152进行通信。此类其它和/或另外的协议可包括和/或兼容Intel® Thunderbolt™技术、PCI Express基础规范修订版1.0,PCI SIG,2003年10月21日的移动图形低功率附录中所述的协议和/或M-PHY v2.0 MIPI联盟,2011年6月22日中所述的协议。当然,在不脱离此实施例的情况下,其它和/或另外的修改是可能的。
Claims (23)
1.一种用于帧转换的设备,包括:
用于执行以下操作中的至少一项的电路:
将至少一个串行存储协议兼容帧至少部分转换成至少部分与多路输入/输出I/O协议兼容的至少一个分组,所述至少一个分组要经至少部分与所述多路I/O协议兼容的物理层传送,所述至少一个分组包括所述至少一个帧的帧信息结构FIS信息;以及
将所述至少一个分组至少部分转换成所述至少一个帧。
2.如权利要求1所述的设备,其中:
所述至少一个帧与串行高级技术附件SATA协议至少部分兼容;
所述至少一个分组与外设组件快速互连PCIe协议至少部分兼容;
所述电路要执行至少一个转换过程以将所述至少一个帧转换成所述至少一个分组,所述至少一个转换过程作为包括SATA传输层和PCIe事务层的协议栈的一部分执行,所述至少一个转换过程在所述栈的所述SATA传输层和所述PCIe事务层中间执行。
3.如权利要求1所述的设备,其中:
所述至少一个分组与外设组件快速互连PCIe协议至少部分兼容;以及
所述FIS信息至少部分包括在至少一个PCIe供应商定义的消息VDM分组的至少一个有效负载中。
4.如权利要求1所述的设备,其中:
根据所述多路I/O协议,要协商链路速度和链路宽度;
所述电路要执行至少一个过程以至少部分协商所述链路速度和所述链路宽度;以及
所述至少一个过程要向至少一个串行存储协议过程至少部分指示协商的带宽,所述协商的带宽与至少部分由所述链路速度和所述链路宽度产生的实际带宽不同,所述协商的带宽符合所述至少一个帧至少部分兼容的串行存储协议。
5.如权利要求4所述的设备,其中:
所述电路要至少部分管理所述物理层的至少一个链路的至少一个状态以便保持与所述串行存储协议的兼容性;以及
所述至少一个状态包括以下至少之一:
功率状态;以及
通信状态。
6.如权利要求1所述的设备,其中:
所述多路I/O协议采用全双工通信;
所述至少一个帧与采用半双工通信的串行存储协议至少部分兼容;以及
所述电路要至少部分暂时存储所述至少一个帧以至少部分仿真所述半双工通信。
7.如权利要求1所述的设备,其中:
所述电路要至少部分管理到至少一个串行存储过程的通信状况通知,以便至少部分保持与所述至少一个帧至少部分兼容的串行存储协议的兼容性。
8.一种用于帧转换的方法,包括:
以下子段落(a)和(b)至少之一:
(a)由电路将至少一个串行存储协议兼容帧至少部分转换成至少部分与多路输入/输出I/O协议兼容的至少一个分组,所述至少一个分组要经至少部分与所述多路I/O协议兼容的物理层传送,所述至少一个分组包括所述至少一个帧的帧信息结构FIS信息;以及
(b)将所述至少一个分组至少部分转换成所述至少一个帧。
9.如权利要求8所述的方法,其中:
所述至少一个帧与串行高级技术附件SATA协议至少部分兼容;
所述至少一个分组与外设组件快速互连PCIe协议至少部分兼容;
所述方法也包括执行至少一个转换过程以将所述至少一个帧转换成所述至少一个分组,所述至少一个转换过程作为包括SATA传输层和PCIe事务层的协议栈的一部分执行,所述至少一个转换过程在所述栈的所述SATA传输层和所述PCIe事务层中间执行。
10.如权利要求8所述的方法,其中:
所述至少一个分组与外设组件快速互连PCIe协议至少部分兼容;以及
所述FIS信息至少部分包括在至少一个PCIe供应商定义的消息VDM分组的至少一个有效负载中。
11.如权利要求8所述的方法,其中:
根据所述多路I/O协议,要协商链路速度和链路宽度;
所述方法包括执行至少一个过程以至少部分协商所述链路速度和所述链路宽度;以及
所述至少一个过程向至少一个串行存储协议过程至少部分指示协商的带宽,所述协商的带宽与至少部分由所述链路速度和所述链路宽度产生的实际带宽不同,所述协商的带宽符合所述至少一个帧至少部分兼容的串行存储协议。
12.如权利要求11所述的方法,其中:
所述方法包括至少部分管理所述物理层的至少一个链路的至少一个状态以便保持与所述串行存储协议的兼容性;以及
所述至少一个状态包括以下至少之一:
功率状态;以及
通信状态。
13.如权利要求8所述的方法,其中:
所述多路I/O协议采用全双工通信;
所述至少一个帧与采用半双工通信的串行存储协议至少部分兼容;以及
所述方法包括至少部分暂时存储所述至少一个帧以至少部分仿真所述半双工通信。
14.如权利要求8所述的方法,其中:
所述方法包括至少部分管理到至少一个串行存储过程的通信状况通知,以便至少部分保持与所述至少一个帧至少部分兼容的串行存储协议的兼容性。
15.一种用于帧转换的设备,配置成执行权利要求8-14中的任一项所述的方法。
16.一种计算机可读存储器,其存储一个或更多个指令,所述指令在被机器执行时导致执行如权利要求8-14中任一项所述的方法。
17.一种用于帧转换的设备,包括:
以下至少之一:
(a)用于由电路将至少一个串行存储协议兼容帧至少部分转换成至少部分与多路输入/输出I/O协议兼容的至少一个分组的部件,所述至少一个分组要经至少部分与所述多路I/O协议兼容的物理层传送,所述至少一个分组包括所述至少一个帧的帧信息结构FIS信息;以及
(b)用于将所述至少一个分组至少部分转换成所述至少一个帧的部件。
18.如权利要求17所述的设备,其中:
所述至少一个帧与串行高级技术附件SATA协议至少部分兼容;
所述至少一个分组与外设组件快速互连PCIe协议至少部分兼容;
所述设备还包括用于执行至少一个转换过程以将所述至少一个帧转换成所述至少一个分组的部件,所述至少一个转换过程作为包括SATA传输层和PCIe事务层的协议栈的一部分执行,所述至少一个转换过程在所述栈的所述SATA传输层和所述PCIe事务层中间执行。
19.如权利要求17所述的设备,其中:
所述至少一个分组与外设组件快速互连PCIe协议至少部分兼容;以及
所述FIS信息至少部分包括在至少一个PCIe供应商定义的消息VDM分组的至少一个有效负载中。
20.如权利要求17所述的设备,其中:
根据所述多路I/O协议,要协商链路速度和链路宽度;
所述设备包括用于执行至少一个过程以至少部分协商所述链路速度和所述链路宽度的部件;以及
所述至少一个过程向至少一个串行存储协议过程至少部分指示协商的带宽,所述协商的带宽与至少部分由所述链路速度和所述链路宽度产生的实际带宽不同,所述协商的带宽符合所述至少一个帧至少部分兼容的串行存储协议。
21.如权利要求20所述的设备,其中:
所述设备包括用于至少部分管理所述物理层的至少一个链路的至少一个状态以便保持与所述串行存储协议的兼容性的部件;以及
所述至少一个状态包括以下至少之一:
功率状态;以及
通信状态。
22.如权利要求17所述的设备,其中:
所述多路I/O协议采用全双工通信;
所述至少一个帧与采用半双工通信的串行存储协议至少部分兼容;以及
所述设备包括用于至少部分暂时存储所述至少一个帧以至少部分仿真所述半双工通信的部件。
23.如权利要求17所述的设备,其中:
所述设备包括用于至少部分管理到至少一个串行存储过程的通信状况通知,以便至少部分保持与所述至少一个帧至少部分兼容的串行存储协议的兼容性的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/633690 | 2012-10-02 | ||
US13/633,690 US8745296B2 (en) | 2012-10-02 | 2012-10-02 | Serial storage protocol compatible frame conversion, at least in part being compatible with SATA and one packet being compatible with PCIe protocol |
PCT/US2013/046106 WO2014055139A1 (en) | 2012-10-02 | 2013-06-17 | Serial storage protocol compatible frame conversion, at least in part |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104798010A CN104798010A (zh) | 2015-07-22 |
CN104798010B true CN104798010B (zh) | 2018-05-25 |
Family
ID=50386325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380045730.7A Active CN104798010B (zh) | 2012-10-02 | 2013-06-17 | 至少部分的串行存储协议兼容帧转换 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8745296B2 (zh) |
EP (1) | EP2904469A4 (zh) |
CN (1) | CN104798010B (zh) |
WO (1) | WO2014055139A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9086966B2 (en) * | 2013-03-15 | 2015-07-21 | Intel Corporation | Systems, apparatuses, and methods for handling timeouts |
US9396152B2 (en) * | 2013-03-15 | 2016-07-19 | Intel Corporation | Device, system and method for communication with heterogenous physical layers |
US10897506B2 (en) | 2014-07-02 | 2021-01-19 | Hewlett Packard Enterprise Development Lp | Managing port connections |
EP3271799A4 (en) * | 2015-07-31 | 2018-12-05 | Hewlett-Packard Enterprise Development LP | Determining power state support |
US10509759B2 (en) | 2017-03-31 | 2019-12-17 | Intel Corporation | Multiple storage devices implemented using a common connector |
CN107220195A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种支持高密度NVMe存储的多路计算机***架构 |
CN109445696B (zh) * | 2018-10-21 | 2021-10-08 | 山西达鑫核科技有限公司 | 网络聚合存储的信息存储装备 |
US11263164B1 (en) * | 2020-08-28 | 2022-03-01 | Tata Consultancy Services Lmited | Multiple field programmable gate array (FPGA) based multi-legged order transaction processing system and method thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737781A (zh) * | 2004-08-19 | 2006-02-22 | 艾格瑞***有限公司 | 改进数据传送的控制器设备和方法 |
CN101105780A (zh) * | 2006-07-10 | 2008-01-16 | 株式会社日立制作所 | 存储控制***及其控制方法,端口选择器,以及控制器 |
CN102214315A (zh) * | 2010-04-12 | 2011-10-12 | 智多星电子科技有限公司 | 用于差分数据传输的快闪存储卡 |
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3636399B2 (ja) | 1996-05-29 | 2005-04-06 | 富士通株式会社 | プロトコル変換システム及びプロトコル変換方法 |
US6757731B1 (en) | 1999-02-25 | 2004-06-29 | Nortel Networks Limited | Apparatus and method for interfacing multiple protocol stacks in a communication network |
WO2006087773A1 (ja) | 2005-02-15 | 2006-08-24 | Fujitsu Limited | プロトコル変換回路 |
US8165191B2 (en) | 2008-10-17 | 2012-04-24 | Altera Corporation | Multi-protocol channel-aggregated configurable transceiver in an integrated circuit |
US8874820B2 (en) * | 2010-12-28 | 2014-10-28 | Silicon Image, Inc. | Mechanism for facilitating a configurable port-type peripheral component interconnect express/serial advanced technology attachment host controller architecture |
-
2012
- 2012-10-02 US US13/633,690 patent/US8745296B2/en active Active
-
2013
- 2013-06-17 CN CN201380045730.7A patent/CN104798010B/zh active Active
- 2013-06-17 EP EP13844240.5A patent/EP2904469A4/en not_active Ceased
- 2013-06-17 WO PCT/US2013/046106 patent/WO2014055139A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737781A (zh) * | 2004-08-19 | 2006-02-22 | 艾格瑞***有限公司 | 改进数据传送的控制器设备和方法 |
CN101105780A (zh) * | 2006-07-10 | 2008-01-16 | 株式会社日立制作所 | 存储控制***及其控制方法,端口选择器,以及控制器 |
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
CN102214315A (zh) * | 2010-04-12 | 2011-10-12 | 智多星电子科技有限公司 | 用于差分数据传输的快闪存储卡 |
Also Published As
Publication number | Publication date |
---|---|
CN104798010A (zh) | 2015-07-22 |
EP2904469A4 (en) | 2016-05-18 |
US8745296B2 (en) | 2014-06-03 |
US20140095742A1 (en) | 2014-04-03 |
EP2904469A1 (en) | 2015-08-12 |
WO2014055139A1 (en) | 2014-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104798010B (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN105051706B (zh) | 用于具有pcie协议栈的低功率phy的操作的设备、方法和*** | |
CA2733089C (en) | Method and apparatus for connecting usb devices to a remote computer | |
CN104246734B (zh) | 在无线链路上支持usb hub或***设备的多跳树的可扩展wse hub | |
CN103064805B (zh) | Spi控制器及通信方法 | |
CN104253840B (zh) | 用于支持多种类型安全载体之间通信的装置及其通信方法 | |
US20140129741A1 (en) | Pci-express device serving multiple hosts | |
CN109710548A (zh) | 一种dma控制数据传输方法、***及设备 | |
CN108351813A (zh) | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 | |
CN108984465A (zh) | 一种消息传输方法及设备 | |
CN110476156A (zh) | 通用串行总线网络交换机 | |
CN106484549A (zh) | 一种交互方法、NVMe设备、HOST及物理机*** | |
CN110209606A (zh) | 一种基于PCIe的多接口存储设备的控制方法 | |
CN103577469B (zh) | 数据库连接复用方法和装置 | |
CN104915302B (zh) | 数据传输处理方法和数据传输器 | |
CN103645864B (zh) | 一种磁盘阵列双控***及其实现方法 | |
CN107506324A (zh) | 转接设备、远程通信***、数据传输方法及装置 | |
CN107506323A (zh) | 一种热插拔处理方法及装置 | |
CN103914427A (zh) | 基于三根物理互连线的集成电路片上通讯方法及装置 | |
CN103995789B (zh) | 一种直接内存存取的实现***及方法 | |
CN103678244B (zh) | 一种不使用应用处理器的智能设备 | |
CN206021155U (zh) | 一种融合架构服务器 | |
CN102694717B (zh) | 在pcie总线上传输报文的方法、设备和*** | |
CN113110950A (zh) | 处理器及通信方法、存储介质及计算设备 | |
CN101197707A (zh) | 更新双备援机箱管理***的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |