CN101008934B - 用于经由遵循协议的通信链路传送非协议消息的通信装置 - Google Patents
用于经由遵循协议的通信链路传送非协议消息的通信装置 Download PDFInfo
- Publication number
- CN101008934B CN101008934B CN2006101711805A CN200610171180A CN101008934B CN 101008934 B CN101008934 B CN 101008934B CN 2006101711805 A CN2006101711805 A CN 2006101711805A CN 200610171180 A CN200610171180 A CN 200610171180A CN 101008934 B CN101008934 B CN 101008934B
- Authority
- CN
- China
- Prior art keywords
- sata
- message
- communicator
- link
- supplemental messages
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 69
- 230000000153 supplemental effect Effects 0.000 claims abstract description 65
- 230000004044 response Effects 0.000 claims description 66
- 238000005314 correlation function Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000005516 engineering process Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 claims 3
- 238000000034 method Methods 0.000 abstract description 5
- 239000013589 supplement Substances 0.000 abstract description 2
- 101100095028 Arabidopsis thaliana SAT3 gene Proteins 0.000 description 416
- 230000006870 function Effects 0.000 description 26
- 239000003999 initiator Substances 0.000 description 19
- 238000011144 upstream manufacturing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000002708 enhancing effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000005728 strengthening Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/22—Arrangements for preventing the taking of data from a data transmission channel without authorisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
公开了用于在遵循协议的链路中建立隐蔽通信信道的通信装置、SATA通信设备、系统、增强型端口倍增器和方法等。在一个实施例中,一种通信装置包括链路接口和补充消息接口。链路接口被配置成将该通信装置通信地耦合到链路以便访问根据标准化的协议通过链路的数据流。补充消息接口被配置成在数据流内交换补充消息以在链路中建立隐蔽通信信道。补充消息在不触犯协议的情况下补充标准化的协议。
Description
相关申请的交叉引用
本申请通过引用包含于2005年8月25日提交的名为“Smart Scalable StorageSwitch Architecture(智能可缩放存储切换体系结构)”的美国临时专利申请第60/711,863号,其代理人案号为SILI-013/00US。
技术领域
本发明一般涉及存储设备,尤其涉及用于在诸如串行高级技术附件(“SATA”)链路的链路中为存储设备的系统建立隐蔽通信信道的装置。
背景技术
存储系统体系结构一般至少部分地靠使用标准化通信协议来最小化开发存储产品所需的技术上的专业知识和资本支出。标准化的通信协议也为设定性能和质量的基准提供载体。但当改进不被标准化协议所支持时,严格遵守呆板的协议标准可能延迟革新。为了说明,考虑开发了用于标准化往来于一个或多个存储设备(例如一个或多个硬盘)的数据传输的串行高级技术附件(“SATA”)规范。SATA规范向用户提供增强的性能和可靠性,以及用于容易地升级存储设备的技术。此外,SATA规范定义了端口倍增器的使用,使得单个SATA端口可与多个驱动器通信。而在功能上,SATA规范没有提供在主机计算机与存储设备系统内诸如端口倍增器的任何点之间建立通信以便执行不被SATA规范支持的存储相关功能的灵活性。在没有通信信道将命令传入存储设备系统内以便执行存储相关功能的情况下,要求主机计算机实现这些存储相关功能。因此,主机计算机不能受益于由SATA提供的增强的性能或可靠性特征。
考虑到前述,可能期望提供能最小化诸如SATA协议的标准化通信协议的缺点的通信装置、SATA通信设备、系统、增强型端口倍增器和方法。
发明内容
公开了用于在遵循协议的链路中建立隐蔽通信信道等的通信装置、SATA通信设备、系统、增强型端口倍增器和方法等。在一个实施例中,一种通信装置包括链路接口和补充消息接口。链路接口被配置成将该通信装置通信地耦合到链路以便访问根据标准化的协议通过该链路的数据流。补充消息接口被配置成与数据流交换补充消息以在链路中建立隐蔽通信信道。补充消息在不触犯协议的情况下补充标准化的协议。
有利地,隐蔽通信信道在不影响或干扰遵循协议的链路及其在包括主机计算设备和任何存储设备的端点设备之间传送遵循协议的消息的能力的情况下传输补充消息。因此,不必对遵循协议的设备进行修改就可形成隐蔽通信信道。而且,隐蔽通信信道有利地允许由存储设备系统而不是主机计算设备来执行增强的存储相关功能。这样做不仅保存了主机计算设备的计算资源,也消除了对主机计算设备包含用于执行增强的存储相关的功能的专门程序的需要。具体地,无需特别的操作系统或设备驱动器就可实现增强的存储相关功能(即,标准的、非专有用户应用程序就足够)。在一个实施例中,补充消息可将补充命令传送到主机计算设备下游的任何点,以执行增强的存储相关功能,诸如条带化存储(striping)功能、镜像(mirroring)功能、级联(concatenating)功能、组件管理(enclosure management)功能、固件升级功能、管理策略(administrative policy)功能和任何其它类似的存储相关功能。
也公开了一种用于经由主机与存储设备之间的SATA链路传输非SATA消息的SATA通信设备。SATA通信设备包括SATA收发器,它被配置成至少从与第一遵循SATA的命令相关联的SATA消息中检索非SATA消息。SATA收发器也可将非SATA消息插入到与第二遵循SATA的命令相关联的SATA消息内。在一个实施例中,SATA收发器通过在遵循SATA的消息内编码非SATA消息来发送非SATA消息。由此,SATA收发器可形成用于在SATA通信设备和主机之间传送非SATA消息的隐蔽通信信道。有利地,隐蔽通信信道被配置成经由SATA链路与至少一条遵循SATA的消息同时地运送至少一条非SATA消息而不触犯SATA规范。
还公开了一种为遵循SATA的存储设备的系统执行增强的存储相关功能的增强型端口倍增器。该增强型端口倍增器包括被配置成形成隐蔽通信信道的SATA收发器。该信道在增强型端口倍增器与主机之间传送非SATA消息。该增强型端口倍增器也包括被配置成执行非SATA消息中的非SATA命令的非SATA消息执行单元。由此,该增强型端口倍增器可在遵循SATA的存储设备的系统内执行增强的存储相关功能。在各个实施例中,增强型端口倍增器也可与其它增强型端口倍增器通信以及加密非SATA消息。
附图说明
结合附图,根据以下详细描述,本发明被更完全地理解,附图中:
图1是根据本发明的至少一个特定实施例,用于建立隐蔽通信信道的通信装置的框图;
图2是根据本发明的实施例,示出图1的补充消息接口的特定实现的示意图;
图3是根据本发明的实施例,示出用于在遵循串行高级技术附件(“SATA”)规范的链路中建立隐蔽通信信道的SATA收发器的示意图;
图4是根据本发明的特定实施例,描绘用于建立隐蔽通信信道的下行链路的SATA下行链路接收器的功能示意图;
图5是根据本发明的特定实施例,描绘用于建立隐蔽通信信道的上行链路的SATA上行链路发送器的功能示意图;
图6是根据本发明的至少一个特定实施例,为遵循SATA的存储设备的系统执行增强的存储相关功能的增强型端口倍增器的框图;
图7根据本发明的一个实施例描述了SATA主机收发器为隐蔽通信信道在计算设备处建立另一终端;
图8是根据本发明的一个或多个实施例,描绘作为SATA包的发起方或者SATA包的目标或此两者操作的双模SATA收发器的框图;以及
图9是根据本发明的实施例,描绘在发起方-目标分层结构中双模SATA收发器的示例性实现的框图。
相同的参考标号指的是所有附图的若干视图中相应的部分。注意,大多数参考标号的最左侧的一位或两位数字一般标识首先引入该参考标号的附图。
具体实施方式
图1是根据本发明的至少一个特定实施例,用于建立隐蔽通信信道的通信装置的框图100。概念上,通信装置130建立用于经由遵循协议的链路106在主机计算设备(“主机”)102的主机总线适配器(未示出)与存储设备140的系统120(“存储设备系统”)内的任何点之间传送补充消息(“Supp.Msg.”)110的隐蔽通信信道104。补充消息110是支撑遵循协议的链路106的协议未定义的非遵循消息。例如,补充消息110可具有协议未定义的格式、传输模式或功能。由此,补充消息110“补充”或扩充特定协议来提供增强的功能。从而,如此处所使用的,术语“隐蔽的”可指的是为在遵循协议的设备之间传送非遵循消息而叠加在遵循协议的链路106上的通信信道。
有利地,隐蔽的通信信道104在不影响或干扰遵循协议的链路106及其在可包括主机计算设备102和存储设备140中的任何一个的端点设备之间传送遵循协议的消息的能力的情况下传输补充消息110。因此,不需要对遵循协议的设备进行修改即可形成隐蔽通信信道104。而且,隐蔽通信信道104有利地启用存储设备的系统120而不是主机计算设备102来执行增强的存储相关功能。这样做不仅保存了主机计算设备102的计算资源,而且排除了对主机计算设备102包含用于执行增强的存储相关功能的专用程序的需要。具体地,不需要任何特殊操作系统或设备驱动程序来实现增强的存储相关功能(即,标准的、非专有用户应用程序就足够)。在一个实施例中,补充消息110可将补充命令传送给在主机计算设备102下游的任何点以便执行存储相关功能。这样的消息也可被转发给使用相同或不同协议的其它设备。增强的存储相关功能的示例包括条带化存储(striping)功能、镜像(mirroring)功能、级联(concatenating)功能、组件管理(enclosure management)功能、固件升级功能、管理策略(administrative policy)功能和任何其它类似的存储相关功能。
如图1中所示,遵循协议链路106将主机计算设备102耦合至存储设备140以执行由协议定义的标准存储功能。存储设备140的示例包括一个或多个硬盘驱动器和其中使用机械、磁、电或光手段存储数据的任何介质。示意图100示出形成隐蔽通信信道104的终端的通信装置130。通信装置130包括链路接口(“L.I.”)132和补充消息接口134。链路接口132通信地将通信装置130耦合至遵循协议的链路106以便接入通过根据标准化协议的遵循协议的链路106的数据流。补充消息接口134可用于与数据流交换一个或多个补充消息110以便在遵循协议的链路106中建立隐蔽通信信道104。注意到,隐蔽通信信道104以使遵循协议的链路106仍遵循相关联的标准化协议的方式将补充消息110嵌入到数据流中。在一个实施例中,遵循协议的链路106是串行链路。而在某些实施例中,通信装置130可被安置在主机计算设备102的背板(未示出)上,根据本发明的其它实施例,通信装置130可位于存储设备140的系统120内的任何位置处。在本发明的各个实施例中,主机计算设备102包括在通信装置130与主机计算设备102之间形成单向或双向数据流中任一种的另一补充消息接口134(或其等效物)。
图2是根据本发明的实施例,示出图1的补充消息接口134的特定实现的示意图200。示意图200示出被配置成与遵循协议的链路206中的数据流207交换补充消息(或其部分)的补充消息接口234。在此说明中,补充消息接口234可用于对数据流207进行观察或“窃听”以相对于遵循协议的消息部分208和210标识出补充消息部分209。补充消息接口234然后可获取补充消息部分209作为经标识的补充下行链路消息220(或其部分)。补充消息接口234也可用于在遵循协议的消息部分208和210之间置入补充上行链路消息222(或其部分)以形成补充消息部分209。注意,遵循协议的消息部分208和210可以是相同或不同的遵循协议的消息。在各个实施例中,补充消息接口234对补充消息的获取不影响遵循协议的链路206。数据流207从而可在没有更改且不触犯遵循协议的链路206的特定协议的情况下通过或经过补充消息接口234。
在至少一个实施例中,遵循协议的链路206实现具有读、写和/或标识语义的协议。在这样的协议中,读命令被用于从存储设备中读取数据,并且读命令指定例如磁盘地址、长度及其它信息。写命令被用于将数据存储在存储设备上,并且写命令可指定磁盘地址、长度和将要存储的数据。标识命令被用于标识存储设备的详细信息,并且标识信息可向存储设备查询其序列号、型号、类型、能力和其它类似信息。
补充消息接口234包括补充消息观察器250和补充消息置入器260。补充消息观察器250包括下行链路接收器(“Rx”)252和消息组成缓冲区254。下行链路接收器252被配置成观察或窃听数据流207以检测补充消息部分209。注意,下行链路接收器252可监视数据流207并然后可获取补充消息部分209(例如,其副本)而无需修改或干扰数据流207。数据流207由此在没有触犯遵循协议的链路206的协议的情况下未经更改地传入下游设备。在特定实施例中,下行链路接收器252被用于检测数据流207中的一种类型的遵循协议的消息。一旦检测到这一种类型,下行链路接收器252就扫描数据流207以标识补充消息部分209,在此之后,可获取经标识的补充下行链路消息220。在一个实施例中,这一种类型的遵循协议的消息是一般用于从存储设备中读取信息的“读”命令。读命令在传输补充消息时尤其有用,因为包含这样的命令的遵循协议的消息不会更改下游存储设备。消息组成缓冲区254被耦合至下行链路接收器252以获取经标识的补充下行链路消息220中它可从其组成整条补充消息的各个部分。
补充消息置入器260包括上行链路发送器(“Tx”)260和消息回复缓冲区264。消息回复缓冲区264维护包括所请求的由遵循另一类型的协议的消息生成的数据的补充响应消息(或其部分)。上行链路发送器262可用于在遵循协议的消息部分208和210之间置入作为补充上行链路消息222的补充响应消息的一部分以便形成补充消息部分209。具体地,上行链路发送器262从消息回复缓冲区264中取出补充上行链路消息222,并将其发送给例如主机计算设备。在特定实施例中,上行链路发送器262响应于遵循该另一类型的协议的消息而操作。在一个实施例中,遵循该另一类型的协议的消息是返回响应消息的非写命令。一种这样的非写命令是标识设备命令。
图3是根据本发明的实施例,示出用于在遵循SATA规范的链路中建立隐蔽通信信道的串行高级技术附件(“SATA”)收发器的示意图300。示意图300描述了用于经由SATA链路306在主机计算设备与存储设备(均未示出)之间传输非SATA消息的SATA收发器350。具体地,SATA收发器350包括SATA下行链路接收器(“Rx”)360和SATA上行链路发送器(“Tx”)370。SATA下行链路接收器360被配置成从与第一遵循SATA的命令相关联的SATA消息302中检索非SATA消息。与此相反,SATA上行链路发送器370被配置成将非SATA消息插入到与第二遵循SATA的命令相关联的SATA消息304中。从而,SATA收发器350可形成用于在SATA收发器350或SATA通信设备的任一个与主机计算设备(未示出)之间传送非SATA消息的隐蔽通信信道。该隐蔽通信信道因此可经由SATA链路306与SATA消息302和304的至少其中之一同时地传输至少一条非SATA消息(或其部分)。例如,非SATA消息316(或其部分)可与SATA消息302同时通过链路306,而非SATA消息326(或其部分)可与SATA消息304同时通过链路306。SATA消息302和SATA消息304分别是来自主机计算设备的下行链路消息和去往该主机计算设备的上行链路消息。注意,术语“SATA”指的是由俄勒冈州波特兰市的串行ATA国际组织(“SATA-IO”)在SATA规范中阐述的协议。
如图3中所示,SATA下行链路接收器360包括用于生成非SATA消息380的非SATA消息组成缓冲区362和非SATA消息确认单元364。在一个实施例中,上述第一遵循SATA的命令是读命令,而上述第二遵循SATA的命令是标识设备命令。此外,SATA消息302可由一个或多个SATA包310组成,它们中的每一个包括如由SATA规范所述的多个字段314。操作中,SATA下行链路接收器360用于在命令字段312中检测作为读命令的第一遵循SATA的命令。然后,SATA下行链路接收器360从SATA包310中检索消息字段314的至少一部分316。在特定实施例中,消息字段314的部分316可以是例如逻辑块地址(“LBA”)的一部分。非SATA消息组成缓冲区被配置成累积消息字段314的各部分316来组成整条非SATA消息380。非SATA消息确认单元364被配置成确认非SATA消息380有效。在某些实施例中,术语SATA包310一般指的是帧信息结构(“FIS”)。
进一步参考图3,SATA上行链路发送器370包括上行链路插入器372和非SATA消息回复缓冲区374,它们均用于将非SATA响应消息引入链路306内。SATA消息304可以由一个或多个SATA包320组成,其中每一个包括按SATA规范定义的多个字段324。操作中,SATA上行链路发送器370在命令字段312中检测作为标识设备命令的遵循SATA的命令的接收。然后,SATA上行链路发送器370通过将非SATA响应消息390的至少一部分插入到消息字段326内来响应。在特定实施例中,消息字段326(或其部分)可以是例如厂商专用字段。非SATA消息回复缓冲区374被配置成维护非SATA响应消息390的至少一部分。非SATA消息回复缓冲区374响应于SATA收发器350接收包括标识设备命令的另一SATA消息将非SATA响应消息390的该部分释放到上行链路插入器372。例如,另一SATA消息的接收可生成标识设备(“IDENT”)接收指示信号352,它激活上行链路插入器372。注意,SATA规范本身固有地限制了SATA上行链路发送器370,使得它不能异步地发送非SATA响应消息390。由此,主机通过在SATA消息302中发送标识设备命令来“请求”非SATA响应消息390。一旦在SATA收发器350处接收到,标识设备(“IDENT”)接收指示信号352就被触发来启动非SATA响应消息390的部分的置入。
图4是根据本发明的特定实施例,描绘SATA下行链路接收器为隐蔽通信信道建立下行链路的功能的功能示意图400。具体地,SATA下行链路接收器(“Rx”)410通过从SATA链路获取非SATA消息形成从主机计算设备到SATA收发器(未示出)的单向链路。在所示示例中,SATA下行链路接收器410“窃听”SATA包以便在SATA包402a到402n的每一个的命令字段404中检测读(“RD”)命令。在此实例中,SATA FIS被原封不动(即,没有修改遵循协议的消息)地传递给一个或多个下游设备,诸如存储设备。然后,SATA下行链路接收器410从例如消息字段405中的部分406a到406n获取(即捕捉或复制)非SATA消息的各个部分,而不影响SATA包402a到402n从主机计算设备(未示出)到其目的地(即,到存储设备)的传输。在一个实施例中,消息字段405是指定磁盘上从中读取数据的区域的逻辑块地址(“LBA”)。注意,消息字段405可包含由SATA规范支持的各种大小的逻辑块地址。
在一个实例中,消息字段405包含48位的LBA,其中两个字节(即,16位)用于指定非SATA消息的512字节的消息正文的一部分。来自消息字段405的另一单个字节(即,8位)可指定用于在消息组成缓冲区420内定位这两个字节的从0到255的偏移量。在一个实施例中,SATA下行链路接收器410用于将来自SATA包402a到402n中的任何一个的部分412中的16位标识为数据414。它也标识部分412的8位为相关联的偏移量416。因此,主机计算设备(未示出)可通过在每一读命令向下游发送到存储设备的系统期间发送任何任意非SATA消息的小片段(例如,一个或两个字节)来将此非SATA消息传输给SATA下行链路接收器410。具体地,非SATA消息可被编码为逻辑块地址即LBA。为了说明,考虑SATA下行链路接收器410获取部分406c作为部分412。此外,考虑偏移量416为“2”。因此,SATA下行链路接收器410可将数据414存放在消息组成缓冲区420的位置422处。尽管SATA下行链路接收器410可按照任何顺序通过使用偏移量来填充消息组成缓冲区420以组成非SATA消息,但是在一个实施例中,每当组成缓冲区的最后一个字节被写入时就形成了非SATA消息。
在消息组成缓冲区420满(或者满足某个其它准则)之后,SATA下行链路接收器410然后在424解析缓冲区以实现非SATA消息430和可任选的验证值(“CRC”)432。由于来自其它SATA包的读命令可在传递期间与SATA包402a到402n混合,因此来自主机的读请求的随机序列可能会无意地生成可执行但不正确的非SATA消息430。尽管不正确的非SATA消息430在执行时可能会破坏磁盘,但是这样的消息也可导致不那么严重的结果。例如,不正确消息在执行时可能会执行不适当的动作,诸如创建错误的存储设备配置或设定坏的策略。非SATA消息确认单元440操作来使不正确的非SATA消息430无效。在所示实例中,验证值432是在传输前在主机处由循环冗余检验(“CRC”)算法生成的CRC值。作为验证值432的CRC值确认消息430的完整性以确保不使用不正确的非SATA消息430。非SATA消息确认单元440可用于从非SATA消息430计算CRC,并将结果与CRC 432进行比较,其中这两者之间的匹配指示有效发送的消息430。在特定实施例中,使用32位的CRC来减少随机的一组读请求产生错误但看似有效到不大可能被认为对特定应用而言不可能的包的可能性。
在另一实施例中,无意中创建产生不正确的有效消息的读请求序列的可能性可通过采用质询响应技术来降低。在这种情况中,SATA下行接收器410包括质询上行链路(未示出)。当SATA下行链路接收器410形成有效的非SATA消息430时,它在指示非SATA消息430的成功接收的诸如图3的非SATA响应消息中置入质询令牌。主机然后以带有对该质询令牌的已知响应的另一非SATA消息430来响应,从而确认了原始非SATA消息430。
注意,计算CRC 420在某些应用中可能会消耗不期望的时间量。在一个实施例中,非SATA消息430包括供非SATA消息确认单元440检测的特定签名。如果该签名的确且值未提供,则CRC 432不必计算,从而节省本来用于为无效消息计算CRC的时间。注意在至少一个实施例中,消息组成缓冲区420在非SATA消息430的处理期间被锁定,使得传入的读请求不会盖写非SATA消息430。一旦处理了非SATA消息主体,就清空消息组成缓冲区420,使得可从已知状态组成新消息。在替换实施例中,消息组成缓冲区420包括包含各自具有类似结构和/或功能的任意数量的消息组成缓冲区420(未示出)的队列。当消息组成缓冲区420之一被一有效消息填满时,它可在另一消息组成缓冲区420被填充的同时被处理。队列深度是根据应用而定的,它确定未解决的消息的最大数目。例如,一个或二个这种缓冲区的队列深度通常对存储相关应用已足够。
图5是根据本发明的特定实施例,描绘用于建立隐蔽通信信道的上行链路的SATA上行链路发送器的功能的功能示意图500。具体地,SATA上行链路发送器(“Tx”)550通过将非SATA消息插入SATA链路502来形成从SATA上行链路发送器550(和/或存储设备)到主机计算设备的单向链路。在所示实施例中,SATA上行链路发送器550不是异步发送非SATA响应消息。相反,SATA上行链路发送器550的上行链路插入器552响应于接收标识设备命令指示信号530插入非SATA响应消息(或其部分)。注意,该信号是响应于在引起形成该非SATA响应消息的先前的标识设备命令之后的标识设备命令的接收。在一个实施例中,SATA收发器或SATA下行链路接收器中任一个中的逻辑可生成信号530。为接收响应(即,非SATA响应消息),主机生成包括标识设备命令的SATA消息,它一般用于查询诸如存储设备的端点设备的特性和能力。对标识设备命令的响应是在将其传播给主机之前由上行链路插入器552修改(或合成)以包括一非SATA响应消息(或其部分)的SATA响应消息(“遵循协议的消息”)504。
操作中,SATA收发器将非SATA响应消息(或其部分)532加载到多个消息回复缓冲区554之一。但由于SATA上行链路发送器与标识设备命令的接收同步,因此非SATA响应消息留在缓冲区中直到接收到标识设备命令。一旦接收之后,上行链路插入器552就取出消息回复缓冲区554中的下一非SATA响应。在一个实施例中,在消息回复缓冲区554中指定了“顶”缓冲区和“底”缓冲区,并且上行链路插入器552以“循环”方式(即,从顶到底,再返回至顶)从缓冲区中取出数据。以这种方式,主机可通过重复发送带有标识设备命令的SATA包来收集非SATA响应消息的全部或其部分(以及SATA消息504中的状态信息)。在特定实施例中,上行链路插入器552将非SATA响应消息或其部分插入SATA包510的可用字段512内。SATA包510可构成跟随在标识设备命令的执行之后的SATA响应消息。可用字段512可以是用于包括厂商专用字段数据520的字段,数据520又可包括状态信息和非SATA响应消息(或其部分)528。可包含在响应消息中的信息的示例包括源地址(“Src地址”)522、长度524、序号(“No.”)526、以及其它状态信息,诸如厂商专用字段数据520所包括的类型的信息、修改信息、环境数据(例如,存储设备的周围温度)、虚拟驱动器配置、物理驱动器配置、性能统计数据、来自在隐蔽信道上通信的下游设备的响应消息等。在特定实施例中,SATA包510是512字节的包,而可用字段512是一般为厂商专用信息保留的62字节的字段。在一个实施例中,厂商专用字段数据520被称为“状态页”,用于帮助实现增强的存储相关功能和/或主机的虚拟化下游。
图6是根据本发明的至少一个特定实施例,执行遵循串行高级技术附件(“SATA”)的存储设备系统的增强的存储相关功能的增强型端口倍增器的框图600。概念上,SATA收发器632建立隐蔽通信信道606,它用于经由遵循SATA的链路608在主机计算设备602的主机总线适配器(“HBA”)604与在存储设备的系统(“存储设备系统”)内增强型端口倍增器630驻留的任何点之间传送非SATA消息(“非SATA Msg.”)610。非SATA消息610是“补充”或扩充SATA功能的非遵循消息。非遵循消息是SATA协议未定义的消息。在某些实施例中,主机总线适配器604可以是用于适配主计算设备的内部总线和与一个或多个存储设备相关联的总线或链路之间的数据传输的任何输入/输出(“I/O”)设备。
增强型端口倍增器630包括端口倍增器631,它是允许主机计算设备602的一个SATA端口连接至多个SATA驱动器的扇出设备。增强型端口倍增器630对存储设备650和652透明,它允许这些设备如同被直接连接至主机总线适配器604一般工作。端口倍增器631的一般功能和结构是已知的,不必进一步讨论。增强型端口倍增器630也包括SATA收发器632、可任选SATA命令处理器634、执行单元636、可任选虚拟化单元638以及可任选加密器/解密器639。执行单元被配置成执行由SATA收发器632标识的非SATA命令以在遵循SATA存储设备的系统620内执行增强的存储相关功能。有利地,执行单元636去除了由主机计算设备602执行系统存储器中的指令以对存储设备650和652的虚拟表示执行诸如条带化存储功能、镜像功能、级联功能等增强的存储相关功能的需要。
增强型端口倍增器630可包括用于提供遵循SATA存储设备的系统620的虚拟表示使得主机计算设备被配置成与系统620的虚拟表示交互以执行增强的存储相关功能的虚拟化单元638。例如,考虑增强型端口倍增器630执行级联各存储驱动器650以在系统620的虚拟表示中表现为单个硬盘驱动器的非SATA命令。如果主机计算设备发送读命令来从作为虚拟地址的地址中读取数据,则虚拟化单元638和/或执行单元会将该虚拟地址映射到特定存储设备的物理地址以检索所请求的数据。在一个实施例中,增强型端口倍增器630可整体或部分如于2005年8月25日提交的名为“Smart Scalable Storage Switch Architecture(智能可缩放存储切换体系结构)”的美国临时专利申请第60/711,863号中所公开的方式操作,对该申请的公开通过引用其整体被包含。
在一个实施例中,加密器/解密器639被配置成实现已知的加密技术以保护隐蔽通信信道606上的数据传输。例如,加密器/解密器639可实现公共密钥加密,其中一开始进行标准公共密钥交换,并创建共用会话密钥。然后,加密器/解密器639可使用该会话密钥加密和解密非SATA消息(或其部分)或与该非SATA消息相关联的整个SATA包。在某些实施例中,增强型端口倍增器630包括单片基板690,在其上形成增强型端口倍增器630来产生单芯片增强型端口倍增器基板。
在各个实施例中,隐蔽通信信道606是双向信道或单向信道中的任一个,其中单向信道可以是从主机计算设备602到增强型端口倍增器630的下行链路或从增强型端口倍增器630到主机计算设备602的上行链路中的任一个。注意,当仅存在上行链路时,不需要任何流控制。增强型端口倍增器630以主机进行请求的速率对主机计算设备602响应。当仅存在下行链路时,主机计算设备潜在地可能以快于增强型端口倍增器630可处理消息的速度发送消息。因此当执行盲配置操作(即,不提供关于消息传递是否成功的反馈)时,消息中的某些可能难以管理。由此,增强型端口倍增器630可选择性地定义它可维持的最大请求速率,主机计算设备可按照给定速率定量供应其请求以确保不丢失任何请求。当上行链路和下行链路均存在时,可实现主机与代理之间的同步的流控制。每一消息主体可包括诸如图5的字段526中的序号。当增强型端口倍增器630接收和执行非SATA消息时,它组成报告对带有给定序号的非SATA消息的处理完成的SATA响应消息。主机计算设备然后可读取随后的SATA响应消息,直到它确定非SATA消息被成功执行或超时。如果超时,则主机计算设备602可重新发送该消息。如果增强型端口倍增器630接收带有重复序号的SATA消息,则它可简单地丢弃非SATA响应消息(例如,从图5的字段528中丢弃),并在图5的SATA响应消息510中对此指示。
在特定实施例中,SATA命令处理器634被用于将增强型端口倍增器630与多个存储设备640之中被多路复用的另一增强型端口倍增器640连接。从而,增强型端口倍增器630和640及其各相应的存储设备650和652均可经由主机计算设备602上的单个端口访问。尽管增强型端口倍增器630和640均可配置成监听相同的“读”命令,并组成相同的消息,但这可使其每一个采取重复的动作。这在某些情况中是合乎期望的,诸如在将同样的配置设定下载到每一增强型端口倍增器的情况中。然而,可能会期望增强型端口倍增器630和640被不同地配置。为了解决这种情况,消息主体包括唯一指定增强型端口倍增器630或增强型端口倍增器640中任一个的标识符。每一增强型端口倍增器在处理消息之前验证该消息包括其标识符(或广播指示符)。标识符可以是任何唯一的信息,诸如SATA序列号。SATA响应消息可用于返回增强型端口倍增器的唯一标识符以及其它下游增强型端口倍增器的任何其它标识符。有利地,安置于消息主体中的标识符防止主机计算设备602无意中向未知增强型端口倍增器发送消息。
在操作中,SATA命令处理器634可路由消息往来于任何增强型端口倍增器或任何其它设备。例如,一旦一个增强型端口倍增器确定它接收了另一增强型端口倍增器的有效消息之后,它可将该消息转发给所有其下游链路(使用适当的一组读命令),或它可维护路由表并经由一条特定下游链路向下转发该消息。SATA命令处理器634被配置成发出其自己的标识设备命令(或其它相当的遵循协议的命令),以使得诸如增强型端口倍增器640的一个或多个下游设备将响应消息向上传递给请求者,诸如主机计算设备602。例如,考虑主机计算设备602发出了用于将非SATA消息610发送给增强型端口倍增器640的多个基于读命令的SATA包,增强型端口倍增器640然后处理非SATA消息610以执行增强的存储相关功能。对非SATA消息610的处理可涉及一组存储设备652中的任何存储设备。接着,考虑增强型端口倍增器640生成用于经由增强型端口倍增器630发送到主机计算设备602的非SATA响应消息。为此,SATA命令处理器634发出足够数量的标识设备命令以使非SATA响应消息从增强型端口倍增器640向上传输至SATA收发器632。主机计算设备602进而发出足够数量的标识设备命令,以使得非SATA响应消息从增强型端口倍增器640向上传输至主机计算设备602。注意,SATA收发器632可在例如由SATA收发器632生成的非SATA响应消息被向上发送主机计算设备602之后将非SATA响应消息接收到其消息回复缓冲区中。在一个实施例中,SATA命令处理器634被配置成监视并跟踪从增强型端口倍增器640接收的标识设备响应的内容,以便确定它为确保非SATA响应消息被向上传送到SATA收发器632应发出的标识设备命令的数目。例如,可使用标记标志来指示非SATA响应消息的第一和/或最后一部分。注意,主机计算设备602和SATA收发器632可协作来以任何方式实现任何数量的遵循协议的消息以沿着沿隐蔽段699延伸的隐蔽通信信道606发送非SATA消息。
图7根据本发明的一个实施例,描绘了SATA主机收发器为隐蔽通信信道在主机计算设备处建立终端。主机总线适配器702包括用于与可驻留在增强型端口倍增器(未示出)处的SATA收发器720建立隐蔽通信信道的SATA主机收发器704。SATA主机收发器704对主机计算设备的操作系统和主机处理器(未示出)透明。尽管SATA主机收发器704以类似于SATA收发器720的方式操作,但SATA主机收发器704包括主机上行链路接收器(“Rx”)710和主机下行链路发送器(“Tx”)712。它也包括用于响应于例如主机计算设备的操作系统和/或应用程序的请求启动沿隐蔽通信信道向下的非SATA消息传输的非SATA消息控制器714。在一个实施例中,SATA消息控制器714可将非SATA消息分割成数个部分,并使每一部分与一偏移量关联以便由SATA收发器720接收。注意,尽管图7示出了SATA主机收发器704在主机总线适配器702中实现,但在各个其它实施例中SATA主机收发器704可在主机计算设备内的任何地方实现,诸如在应用程序中或在硬盘控制器芯片中。由此,SATA主机收发器704的结构和/或功能可以软件或硬件或其组合实现。类似地,SATA收发器720可以软件或硬件或其组合实现。
主机下行链路发送器712可用于通过实现不更改下游存储设备(未示出)的命令来至少形成遵循协议的链路722的下行链路。如上所述,读命令是主机下行链路发送器712可用来使用遵循协议的SATA包730发送非SATA消息的这样的一个命令。注意,主机下行链路发送器712用于将非SATA消息(或其部分)插入到包含读命令740的SATA 730包的地址字段内。在一个实施例中,主机下行链路发送器712将非SATA消息的一部分和偏移量插入到SATA包730的LBA(未示出)内。LBA是任何非特权应用程序可使用的字段。由于读命令本身是非破坏性的,因此携带非SATA消息的SATA包730的内容将不会影响存储设备的内容。
主机下行链路发送器712也用于生成标识设备(“IDENT”)命令750使得主机上行链路接收器(“Rx”)710可从可置于增强型端口倍增器或任何下游设备中的SATA收发器720接收SATA响应消息。如上所述,SATA响应消息可由SATA收发器720的上行链路插入器(未示出)修改(或合成)以包括非SATA消息(或其部分)。主机上行链路接收器710也可包括类似于图4的消息组成缓冲区420的结构和/或功能以累积和重新创建从增强型端口倍增器或下游设备发送的非SATA响应消息。
在各个实施例中,主机下行链路发送器712可实现其它类型的SATA命令以代替读命令740和标识设备命令750来建立隐蔽通信信道722。例如,读命令752或具体地,对读命令的SATA响应可代替标识设备命令750使用。SATA收发器720的上行链路发送器(未示出)由此可被配置成检测读响应消息,并将非SATA消息插入到数据流内供主机上行链路接收器710接收。用于向目标请求非SATA响应消息的SATA读命令可与“正常”SATA命令区分。在某些实施例中使用的技术是以下所述的“高LBA”技术。此外,其它SATA命令可要求安全措施以避免对盘上数据的破坏。例如,只要有足够的安全措施就位,诸如磁盘锁,主机下行链路发送器712就可实现写命令742作为读命令的替代以沿着下行链路传送非SATA消息。这样的锁可防止写命令742被存储设备误导或曲解,引起对存储设备无意的写。写命令742然后可以读命令使用的相同方式使用。即,增强型端口倍增器或下游设备可窃听LBA以获取非SATA消息数据。
可按照各种方式使用写命令。例如,写命令742可根据“高LBA”技术使用,其中写命令742以超出存储设备支持的范围的地址发送。在这种情况中,SATA收发器720或下游设备可窃听以检测超出磁盘末端的任何高地址。尽管该地址被存储设备认为“无效”,但伴随该写命令的数据可构成有效负荷,即非SATA消息的一部分。但由于不是所有的主机都将这些类型的命令传递给驱动器,因此主机计算设备需要修改才能传递这种类型的命令。因此,根据一个实施例,主机计算设备可被配置成传递包括高LBA的SATA包。在另一示例中,可根据“不存在目标”技术使用写命令742,其中写命令742被发送给假的或虚幻的存储设备。SATA收发器720或任何其它设备然后窃听包以检测已知为虚幻驱动器的那些磁盘驱动器的标识符。但由于假驱动器对最终用户而言看上去像正常驱动器,因此主机计算设备应隐藏虚幻驱动器。在一个实施例中,主机计算设备用于向最终用户隐藏虚幻驱动器。
图8是根据本发明的一个或多个实施例,描绘作为SATA包的发起方或目标或此两者操作的双模SATA收发器的框图。在第一模式中,双模SATA收发器800被配置成作为用于向目标发送SATA包的数据流的SATA发起方操作。目标可以是另一SATA收发器或任何遵循SATA的设备,诸如存储设备。目标一般位于双模SATA收发器800的下游。在第二模式中,双模SATA收发器800被配置成作为用于从发起方接收SATA包的SATA目标操作。发起方可以是另一SATA收发器或SATA始发器(未示出)。如此处所使用的,术语“SATA始发器”一般指的是位于双模SATA收发器800上游的主机计算设备或任何其它设备。
双模SATA收发器800包括用于经由消息端口860与执行单元(未示出)或非SATA消息的任何消费者/生产者分别传输非SATA消息820和非SATA响应消息822的SATA下行链路接收器(“Rx”)810和SATA上行链路(“Tx”)814。此外,双模SATA收发器800可包括SATA命令处理器812,它可执行各种应用程序专用功能。在至少一个实施例中,SATA命令处理器812被配置成生成基于标识设备命令的消息并将其发送给遵循SATA的目标以请求对该基于标识设备命令的消息的响应。这些响应一般可包括非SATA响应消息。反馈信号821被馈送到SATA命令处理器812内以监视和跟踪从SATA目标接收到的标识设备响应的内容以便向上游发送。这有助于SATA命令处理器812确定为接收非SATA响应消息而要发出的一组合适的标识设备命令。
SATA命令处理器812也可执行其它功能,诸如以下描述的应用程序专用功能。如果双模SATA收发器800是增强型端口倍增器的一部分,则SATA命令处理器812可被配置成将来自虚拟目标的SATA命令映射到物理目标。为了说明,考虑虚拟目标提供成镜像组的两个物理目标的虚拟表示。在这种情况下,当SATA命令处理器812接收写命令时,它将该命令复制到这两个物理设备。但如果虚拟目标表示三个物理目标的级联,则SATA命令处理器812然后可基于地址和长度选择由特定SATA命令引用的合适的物理目标。SATA命令处理器812通过向物理目标发出经修改的命令以遵循这种选择。
考虑一个示例,其中SATA命令处理器812是简单的端口倍增器的一部分。在这种情况中,SATA命令处理器812可基于SATA寻址位选择特定的物理目标,并将该命令转发给合适的目标,如由串行ATA国际组织所维护的SATA端口倍增器规范中所定义。在另一示例中考虑SATA命令处理器812是SATA分析器的一部分,后者基于隐蔽信道上所指定的模式记录SATA通信量。因此,SATA命令处理器812可用于简单地将SATA命令传递给合适的下游物理目标而不进行任何解释(即,不进行任何处理)。在又一示例中,考虑SATA命令处理器812是增强型磁盘控制器的一部分。在这种情况中,SATA命令处理器812可解释SATA命令并与目标接口830交互以直接操纵特定的目标设备(例如,通过移动头部以访问SATA命令中所指定的在物理介质上的位置)。
双模SATA收发器800也包括SATA接收器物理层接口(“SATA RX PHY”)813和SATA发送器物理层接口(“SATA TX PHY”)815,它们两者均用于通过接口连接SATA下行链路接收器810和SATA上行链路发送器814,以便与SATA链路的上游部分(“上游SATA链路”)802a交换SATA消息。特别地,SATA接收器物理层接口813与SATA链路的上游部分802a通过接口连接以从SATA发起方(未示出)接收信号801,而SATA发送器物理层接口815与SATA链路802a通过接口连接以向SATA发起方发送遵循SATA的物理信号803。注意,另一对的SATA接收器物理层接口813和SATA发送器物理层接口815可经由目标端口870与SATA链路的下游部分(“下游SATA链路”)802b通过接口连接,后者向目标发送遵循SATA的信号807并从目标接收遵循SATA的信号805。
此外,双模SATA收发器800包括多路复用器817和819。如果在双模SATA收发器800之间不存在其它的居间的SATA收发器,则多路复用器817可用于沿示为主机物理层接口(“PHY”)811与SATA下行链路接收器810、SATA命令处理器812和SATA上行链路发送器814中的任一个之间的虚线的路径交换SATA包(或FIS)。或者,如果在主机与双模SATA收发器800之间存在居间上游SATA发起方,则多路复用器817可用于沿示为SATA接收器813和SATA发送器物理层接口815两者与SATA下行链路接收器810、SATA命令处理器812和SATA上行链路发送器814中的任一个之间的实线的路径交换SATA包(或FIS)。在这些情况中,双模SATA收发器800以作为SATA目标的第二模式操作。
多路复用器819以类似的方式操作以允许双模SATA收发器800以第一模式作为SATA发起方操作。例如,多路复用器819可用于经由目标物理层接口(“PHY”)832沿示为虚线的路径交换SATA包(或FIS)。如果双模SATA收发器800与目标设备(未示出)之间不存在其它居间SATA目标,则这些路径在目标设备(未示出)与SATA下行链路接收器810、SATA命令处理器812和SATA上行链路发送器814中的任一个之间延伸。主机物理层接口811被配制成与诸如PCI Express的总线协议通信以便与主机处理器/操作系统(未示出)交换SATA包中的信息。目标物理层接口832被配制成与诸如存储驱动器的特定目标传输SATA包中的信息。
双模SATA收发器800包括用于以第一模式作为SATA发起方操作的目标接口830。在某些情况中,目标接口830配置目标物理层接口832来从最终目标设备接收非SATA响应消息,然后将它们转发给SATA上行链路发送器814以便再向上游传输。如此处所使用的,术语“最终目标”在某些实施例中用于描述驻留在发起方-目标分层结构中的最低层的目标。目标存储设备或其它类似的遵循SATA的设备驻留在最低层。目标接口830被配制成从执行单元(未示出)接收非SATA消息825,并生成控制信号823来控制目标设备。例如,控制信号823可升级硬件驱动器控制器的固件版本,或它可改变存储相关的策略。
在至少一个实施例中,双模SATA收发器800包括用于相应于主机总线接口上的命令控制非SATA消息的生成的消息控制器880。用于实现消息控制器880的合适的消息控制器是图7中所示的类似地命名的组件(即,非SATA消息控制器714)。在某些实施例中,双模SATA收发器800包括双模SATA收发器控制器882,它可支持对多个目标驱动器的虚拟化。例如,双模SATA收发器控制器882可维护将虚拟目标链接到一个或多个物理目标的映射表。
图9是根据本发明的实施例,描绘发起方-目标分层结构中双模SATA收发器的示例性实现的框图900。此处,SATA始发器902(作为发起方)被耦合至增强型端口倍增器910(作为目标)。根据至少一个实施例,用于实现SATA始发器902的合适的始发器是图7的SATA主机收发器704。此外对图9的发起方-目标配置,增强型端口倍增器910和增强型端口倍增器912分别是目标增强型端口倍增器912和磁盘驱动器920的发起方。由此,隐蔽路线段950在SATA始发器950与磁盘驱动器920之间延伸以形成隐蔽的通信信道。如图所示,增强型端口倍增器910和912中的每一个具有双模(“DM”)SATA收发器800,磁盘驱动器920也一样。磁盘驱动器920被认为是所示分层结构中的“最终目标”。然而,增强型端口倍增器910和912两者中的双模SATA收发器800均经由消息端口860与执行单元912通信。相反,磁盘驱动器920中的双模SATA收发器800经由目标端口870在存储设备级通信。使用图9中所示的配置,SATA始发器902可经由隐蔽通信信道将诸如磁盘驱动器控制器922所使用的专有存储指令和数据的非SATA消息传递给磁盘驱动器控制器922等。在一个实施例中,磁盘驱动器920中的双模SATA收发器800在磁盘驱动器920内部,而在某些实例中,它可形成为磁盘驱动器控制器922的一部分。在其它实施例中,双模SATA收发器800可形成在单芯片增强型端口倍增器或单芯片磁盘驱动器控制器内。
前述描述为说明起见使用了特定的术语以提供对本发明的彻底的理解。然而,对本领域的技术人员显然,特定的细节不是实现本发明所必需的。事实上,该描述不应理解为将本发明的任何特征或方面限于任何实施例;相反,一个实施例的特征和方面可容易地与其它实施例互换。尽管各个实施例的以上描述涉及SATA协议和存储设备,但此讨论可应用于需要协议未提供的附加通信信道的任何类型的通信协议。此外,上行链路和下行链路可单独使用并各自隔离。此外,尽管各个实施例说明了地址和厂商专用字段的使用,但只要对任何其它字段的使用不干扰SATA协议(或可忽略地干扰,但没有触犯协议),即可使用这些其它字段。
因此,本发明的特定实施例的前述描述为说明和描述的目的提供。它们不旨在将本发明穷尽或限定于所公开的精确形式;显然,考虑到以上教导,众多修改和变化是可能的。选择并描述实施例以便于最好地解释本发明地原理及其实际应用;它们从而允许本领域中地其他技术人员以适于所构想地特定使用的各种修改最好地利用本发明和各个实施例。注意,不是此处描述的每个好处需要由本发明的每一实施例实现;相反,任何特定实施例可提供上述优点中的一个或多个。以下权利要求书及其等效实施方式旨在定义本发明的范围。
Claims (18)
1.一种用于经由主机与存储设备的系统内的任何点之间的链路传送补充消息的通信装置,所述通信装置包括:
链路接口,它被配置成将所述通信装置通信地耦合到所述链路以便访问根据标准化协议通过所述链路的数据流;以及
补充消息接口,它被配置成与所述数据流交换补充消息以在所述链路中建立隐蔽通信信道,所述补充消息接口包括补充消息观察器和补充消息置入器,所述补充消息观察器包括下行链路接收器和补充消息组成缓冲区,其中:
所述补充消息观察器被配置成标识所述数据流中的补充下行链路消息;
所述下行链路接收器被配置成:基于遵循所述标准化协议的第一消息标识所述补充下行链路消息的一部分,所述下行链路接收器响应于遵循所述标准化协议的第一消息;以及获取所述补充下行链路消息的所述部分;
所述补充消息组成缓冲区被配置成从所述补充下行链路消息的多个部分组成所述补充下行链路消息;
所述补充消息置入器被配置成将补充上行链路消息置入所述数据流内、将所述补充上行链路消息的部分插入在所述数据流的部分中,所述补充消息置入器包括上行链路发送器,它被配置成发送补充上行链路消息的一部分;并且
其中所述补充消息补充所述标准化协议。
2.如权利要求1所述的通信装置,其特征在于,所述隐蔽通信信道将所述补充消息引入到所述数据流中使得所述链路保持与所述标准化协议的一致性。
3.如权利要求2所述的通信装置,其特征在于,所述隐蔽通信信道将所述补充消息嵌入到所述数据流中而不更改所述数据流中遵循所述标准化协议的数据或不访问所述存储设备的系统以更改其中存储的数据或既不更改所述数据流中遵循所述标准化协议的数据也不访问所述存储设备的系统以更改其中存储的数据。
4.如权利要求1所述的通信装置,其特征在于,所述补充下行链路消息包括被配置成在所述存储设备的系统内的任何点处执行存储相关功能,从而在所述主机下游执行所述存储相关功能的补充命令。
5.如权利要求1所述的通信装置,其特征在于,所述链路是串行链路。
6.如权利要求1所述的通信装置,其特征在于,所述补充消息接口还包括补充消息确认单元,所述补充消息确认单元确认从所述补充下行链路消息的多个部分组成的所述补充下行链路消息是否为有效消息。
7.如权利要求6所述的通信装置,其特征在于,所述补充消息确认单元使用所述补充下行链路消息中包含的循环冗余检验(CRC)值来确认所述补充下行链路消息。
8.如权利要求6所述的通信装置,其特征在于,所述上行链路发送器响应于遵循所述标准化协议的第二消息。
9.如权利要求8所述的通信装置,其特征在于,遵循所述标准化协议的第二消息包括返回响应消息的非写命令。
10.如权利要求9所述的通信装置,其特征在于,遵循所述标准化协议的第二消息包括标识设备命令。
11.如权利要求1所述的通信装置,其特征在于,遵循所述标准化协议的第一消息包括读命令。
12.如权利要求1所述的通信装置,其特征在于,还包括:
消息控制器,它被配置成格式化所述标准化协议未定义的消息以生成经由所述链路传输的所述补充下行链路消息;以及
主机下行链路发送器,它被配置成将所述补充下行链路消息集成到所述数据流内,从而建立所述隐蔽通信信道的至少一部分。
13.如权利要求12所述的通信装置,其特征在于,所述消息控制器还被配置成:
将所述标准化协议未定义的所述消息分解成所述标准化协议未定义的所述消息的部分;
确定所述标准化协议未定义的所述消息的所述部分中每一部分的偏移量,其中所述标准化协议未定义的所述消息的所述部分和所述部分的偏移量构成所述补充下行链路消息;以及
在所述隐蔽通信信道的所述部分的包中包括一个部分和一个偏移量。
14.如权利要求13所述的通信装置,其特征在于,每一个所述包还包括遵循所述标准化协议的读命令。
15.如权利要求12所述的通信装置,其特征在于,还包括主机上行链路接收器,它被配置成获取所述补充上行链路消息,从而建立所述隐蔽通信信道的至少另一部分。
16.如权利要求15所述的通信装置,其特征在于,所述消息控制器还被配置成:
从所述补充消息置入器检测所述补充上行链路消息的其它包;以及
从所述补充上行链路消息的所述包重构第二消息。
17.如权利要求16所述的通信装置,其特征在于,每一包还包括对遵循所述标准化协议的标识设备命令的响应。
18.如权利要求1-17中任一项所述的通信装置,其特征在于,所述标准化协议是串行高级技术附件(“SATA”)协议。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/314,162 US7571269B2 (en) | 2005-08-25 | 2005-12-20 | Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices |
US11/314,162 | 2005-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101008934A CN101008934A (zh) | 2007-08-01 |
CN101008934B true CN101008934B (zh) | 2010-11-17 |
Family
ID=37907726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101711805A Active CN101008934B (zh) | 2005-12-20 | 2006-12-19 | 用于经由遵循协议的通信链路传送非协议消息的通信装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7571269B2 (zh) |
EP (1) | EP1811396B1 (zh) |
JP (2) | JP5376756B2 (zh) |
KR (2) | KR101409927B1 (zh) |
CN (1) | CN101008934B (zh) |
TW (1) | TWI352908B (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595434B2 (en) | 2005-08-25 | 2013-11-26 | Silicon Image, Inc. | Smart scalable storage switch architecture |
US7571269B2 (en) * | 2005-08-25 | 2009-08-04 | Silicon Image, Inc. | Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices |
KR100827170B1 (ko) * | 2005-11-30 | 2008-05-02 | 재단법인서울대학교산학협력재단 | 인증서 검증방법과 선택적 추적이 가능한 익명 신용장시스템 |
US8717910B2 (en) * | 2007-04-26 | 2014-05-06 | Cisco Technology, Inc. | Field modulation for transfer and measurement of flow statistics |
US20090006657A1 (en) * | 2007-06-26 | 2009-01-01 | Asad Azam | Enabling consecutive command message transmission to different devices |
US7979589B2 (en) * | 2008-03-14 | 2011-07-12 | Silicon Image, Inc. | Method, apparatus, and system for port multiplier enhancement |
US7904566B2 (en) * | 2008-03-14 | 2011-03-08 | Silicon Image, Inc. | Method, apparatus, and system for employing an enhanced port multiplier |
JP5033041B2 (ja) * | 2008-04-14 | 2012-09-26 | 株式会社日立製作所 | ストレージシステム |
CN102112970B (zh) | 2008-07-29 | 2015-03-11 | 惠普发展公司,有限责任合伙企业 | 用隐藏存储子系统详情的控制设备来将该存储子系统与电子设备连接 |
TWI494756B (zh) * | 2009-08-26 | 2015-08-01 | Phison Electronics Corp | 下達讀取指令的方法、快閃記憶體控制器與快閃記憶體儲存系統 |
US8521963B1 (en) * | 2009-09-21 | 2013-08-27 | Tilera Corporation | Managing cache coherence |
US9063655B2 (en) * | 2010-05-12 | 2015-06-23 | Silicon Image, Inc. | Multi-level port expansion for port multipliers |
US9237126B2 (en) * | 2010-09-09 | 2016-01-12 | Gerald R. McEvoy | One-way bus bridge |
TW201217979A (en) * | 2010-10-18 | 2012-05-01 | Sunix Co Ltd | employing single PCI slot on computer motherboard to be expanded with multiple PCI devices |
JP5209096B2 (ja) | 2011-09-07 | 2013-06-12 | 株式会社東芝 | リモートアクセスシステム、電子機器およびリモートアクセス処理方法 |
US8640007B1 (en) | 2011-09-29 | 2014-01-28 | Western Digital Technologies, Inc. | Method and apparatus for transmitting diagnostic data for a storage device |
US9588762B2 (en) * | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
WO2014071497A1 (en) * | 2012-11-09 | 2014-05-15 | Mosaid Technologies Incorporated | Method and apparatus for pll locking control in daisy chained memory system |
US9122806B2 (en) | 2012-11-28 | 2015-09-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | SATA data appliance for providing SATA hosts with access to a configurable number of SATA drives residing in a SAS topology |
US10420072B2 (en) | 2013-03-14 | 2019-09-17 | Everactive, Inc. | Methods and apparatus for low power wireless communication |
US11044009B2 (en) | 2013-03-14 | 2021-06-22 | Everactive, Inc. | Methods and apparatus for networking using a proxy device and backchannel communication |
EP2974090B1 (en) | 2013-03-14 | 2019-05-08 | Psikick, Inc. | Methods and apparatus for wireless communication via a predefined sequence of a change of a characteristic of a wireless signal |
WO2015111206A1 (ja) * | 2014-01-27 | 2015-07-30 | 株式会社日立製作所 | 計算機システム、サーバモジュール及びストレージモジュール |
US10063569B2 (en) | 2015-03-24 | 2018-08-28 | Intel Corporation | Custom protection against side channel attacks |
US9904543B2 (en) | 2015-10-26 | 2018-02-27 | Hewlett-Packard Development Company, L.P. | Setting a build indicator to enable or disable a feature |
TWI721319B (zh) * | 2016-06-10 | 2021-03-11 | 美商利魁得股份有限公司 | 資料儲存系統中的多埠中介件架構 |
US10152091B2 (en) * | 2016-11-09 | 2018-12-11 | Seagate Technology Llc | Form factor compatible laptop PC raid array |
US10776298B2 (en) * | 2016-12-22 | 2020-09-15 | Seagate Technology, Llc | Multi-device data storage module |
TWI638313B (zh) * | 2017-11-07 | 2018-10-11 | 瑞昱半導體股份有限公司 | 浮點數運算電路及方法 |
US11188497B2 (en) | 2018-11-21 | 2021-11-30 | SambaNova Systems, Inc. | Configuration unload of a reconfigurable data processor |
US10831507B2 (en) | 2018-11-21 | 2020-11-10 | SambaNova Systems, Inc. | Configuration load of a reconfigurable data processor |
US10698853B1 (en) * | 2019-01-03 | 2020-06-30 | SambaNova Systems, Inc. | Virtualization of a reconfigurable data processor |
US11386038B2 (en) | 2019-05-09 | 2022-07-12 | SambaNova Systems, Inc. | Control flow barrier and reconfigurable data processor |
US11055141B2 (en) | 2019-07-08 | 2021-07-06 | SambaNova Systems, Inc. | Quiesce reconfigurable data processor |
US11146299B2 (en) | 2019-09-09 | 2021-10-12 | Everactive, Inc. | Wireless receiver apparatus and method |
US11758480B2 (en) | 2020-02-14 | 2023-09-12 | Everactive Inc. | Method and system for low power and secure wake-up radio |
US11809908B2 (en) | 2020-07-07 | 2023-11-07 | SambaNova Systems, Inc. | Runtime virtualization of reconfigurable data flow resources |
US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
US11409540B1 (en) | 2021-07-16 | 2022-08-09 | SambaNova Systems, Inc. | Routing circuits for defect repair for a reconfigurable data processor |
US11556494B1 (en) | 2021-07-16 | 2023-01-17 | SambaNova Systems, Inc. | Defect repair for a reconfigurable data processor for homogeneous subarrays |
US11327771B1 (en) | 2021-07-16 | 2022-05-10 | SambaNova Systems, Inc. | Defect repair circuits for a reconfigurable data processor |
KR20230036819A (ko) | 2021-09-08 | 2023-03-15 | 한국전자통신연구원 | 무선 통신 은닉 채널 검출 방법 및 장치 |
US11899945B2 (en) | 2021-10-03 | 2024-02-13 | Silicon Motion, Inc. | Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium |
US11487694B1 (en) | 2021-12-17 | 2022-11-01 | SambaNova Systems, Inc. | Hot-plug events in a pool of reconfigurable data flow resources |
TWI796211B (zh) * | 2022-04-29 | 2023-03-11 | 神雲科技股份有限公司 | 連接埠的設定方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895455B1 (en) * | 2002-06-26 | 2005-05-17 | Western Digital Technologies, Inc. | Disk drive and method for implementing nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5140592A (en) | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
JPH05242002A (ja) * | 1992-02-28 | 1993-09-21 | Kawasaki Steel Corp | 補助記憶装置 |
JP3546741B2 (ja) * | 1999-03-03 | 2004-07-28 | 日本電気株式会社 | ハードディスクユニット及びそれに用いるユーザ領域設定方法並びにその制御プログラムを記録した記録媒体 |
JP3387041B2 (ja) * | 1999-09-30 | 2003-03-17 | 富士通株式会社 | プロトコル変換装置、通信装置、通信プログラム記憶媒体、および通信システム |
DE60135654D1 (de) * | 2000-05-23 | 2008-10-16 | Sepaton Inc | Verfahren und vorrichtung zur datenvervielfachung durch verwendung von scsi ber tcp/ip |
EP1320035A1 (en) * | 2001-12-11 | 2003-06-18 | Thomson Licensing S.A. | Storage device cache management |
US6735650B1 (en) * | 2002-08-30 | 2004-05-11 | Western Digital Technologies, Inc. | Disk drive and method for data transfer initiated by nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands |
US6952794B2 (en) | 2002-10-10 | 2005-10-04 | Ching-Hung Lu | Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data |
US20040177218A1 (en) | 2002-11-06 | 2004-09-09 | Meehan Thomas F. | Multiple level raid architecture |
US7206989B2 (en) | 2002-11-20 | 2007-04-17 | Intel Corporation | Integrated circuit having multiple modes of operation |
US7167929B2 (en) * | 2003-01-13 | 2007-01-23 | Sierra Logic | Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays, and a storage-shelf-interface tunneling method and system |
US8301809B2 (en) | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
US20050114464A1 (en) | 2003-10-27 | 2005-05-26 | Shai Amir | Virtualization switch and method for performing virtualization in the data-path |
US7337273B2 (en) * | 2004-03-31 | 2008-02-26 | Microsoft Corporation | Strategies for reading information from a mass storage medium using a cache memory |
JP2006134208A (ja) | 2004-11-09 | 2006-05-25 | Fujitsu Ltd | ストレージ仮想化装置 |
US7743178B2 (en) * | 2005-04-11 | 2010-06-22 | Emulex Design & Manufacturing Corporation | Method and apparatus for SATA tunneling over fibre channel |
US7853741B2 (en) * | 2005-04-11 | 2010-12-14 | Emulex Design & Manufacturing Corporation | Tunneling SATA targets through fibre channel |
US8595434B2 (en) * | 2005-08-25 | 2013-11-26 | Silicon Image, Inc. | Smart scalable storage switch architecture |
US7571269B2 (en) * | 2005-08-25 | 2009-08-04 | Silicon Image, Inc. | Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices |
-
2005
- 2005-12-20 US US11/314,162 patent/US7571269B2/en active Active
-
2006
- 2006-11-30 TW TW095144511A patent/TWI352908B/zh not_active IP Right Cessation
- 2006-12-01 JP JP2006357024A patent/JP5376756B2/ja active Active
- 2006-12-19 CN CN2006101711805A patent/CN101008934B/zh active Active
- 2006-12-20 EP EP06256470.3A patent/EP1811396B1/en active Active
- 2006-12-20 KR KR1020060131148A patent/KR101409927B1/ko active IP Right Grant
-
2012
- 2012-09-03 JP JP2012207477A patent/JP5581360B2/ja active Active
-
2013
- 2013-08-19 KR KR1020130097850A patent/KR101421480B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895455B1 (en) * | 2002-06-26 | 2005-05-17 | Western Digital Technologies, Inc. | Disk drive and method for implementing nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands |
Non-Patent Citations (1)
Title |
---|
全文. |
Also Published As
Publication number | Publication date |
---|---|
TWI352908B (en) | 2011-11-21 |
EP1811396B1 (en) | 2017-08-30 |
JP5376756B2 (ja) | 2013-12-25 |
JP5581360B2 (ja) | 2014-08-27 |
TW200801964A (en) | 2008-01-01 |
EP1811396A3 (en) | 2009-07-29 |
KR101409927B1 (ko) | 2014-06-19 |
JP2013020635A (ja) | 2013-01-31 |
US20070180172A1 (en) | 2007-08-02 |
KR101421480B1 (ko) | 2014-07-23 |
CN101008934A (zh) | 2007-08-01 |
KR20130100250A (ko) | 2013-09-10 |
EP1811396A2 (en) | 2007-07-25 |
KR20070065846A (ko) | 2007-06-25 |
JP2007179549A (ja) | 2007-07-12 |
US7571269B2 (en) | 2009-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101008934B (zh) | 用于经由遵循协议的通信链路传送非协议消息的通信装置 | |
CN104704491B (zh) | 用于集群内通信的硬件消息队列 | |
CN104247327B (zh) | 使用密钥加密密钥的密码发射系统 | |
US7480799B2 (en) | Traffic manager for distributed computing environments | |
CN104380652B (zh) | 用于nfc使能设备的多发行商安全元件分区架构 | |
US7337976B2 (en) | Semiconductor memory | |
CN100462947C (zh) | 用于实现卸载发起方功能的方法和系统 | |
CN110392888A (zh) | 用于在安全环境中执行智能合约的方法和系统 | |
US9237126B2 (en) | One-way bus bridge | |
CN102782732A (zh) | 全球平台兼容智能卡的保护模式 | |
CN110430057A (zh) | 数据传输系统和传输方法 | |
Watson | Chapter 2. Distributed system architecture model | |
CN101490700A (zh) | 智能卡终端侧数据和管理框架 | |
CN1783881B (zh) | 绑定结构化数据协议至提供字节流协议的机制 | |
TW200945210A (en) | Electronic tag system and control method of electronic tag | |
JPH07507892A (ja) | プロセス制御コンピュータ用透過型インターフェース | |
CN113158203B (zh) | 一种soc芯片、电路和soc芯片的外部数据读写方法 | |
CN108390757A (zh) | 通信数据处理方法、装置、电子设备、程序和介质 | |
CN101523352A (zh) | 用于并发控制的持久锁/资源 | |
US9935770B1 (en) | Security alerting system with dynamic buffer size adaptation | |
CN116070295B (zh) | 数据处理系统 | |
CN113973104B (zh) | 基于事件的二进制通讯协议的交易系统及方法 | |
Cole | Design alternatives for computer network security | |
US20030093578A1 (en) | Method for indicating completion status of asynchronous events | |
KR20220078254A (ko) | 트랜잭션을 처리하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151225 Address after: oregon Patentee after: LATTICE SEMICONDUCTOR CORPORATION Address before: American California Patentee before: Silicon Image Inc. A. Delaware C. |