CN1943202A - 数据存储系统中的数据编码和解码 - Google Patents

数据存储系统中的数据编码和解码 Download PDF

Info

Publication number
CN1943202A
CN1943202A CNA2005800108829A CN200580010882A CN1943202A CN 1943202 A CN1943202 A CN 1943202A CN A2005800108829 A CNA2005800108829 A CN A2005800108829A CN 200580010882 A CN200580010882 A CN 200580010882A CN 1943202 A CN1943202 A CN 1943202A
Authority
CN
China
Prior art keywords
data
circuit
decoded
frame
receiving equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800108829A
Other languages
English (en)
Other versions
CN1943202B (zh
Inventor
P·-L·塞托
D·阿塔拉
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1943202A publication Critical patent/CN1943202A/zh
Application granted granted Critical
Publication of CN1943202B publication Critical patent/CN1943202B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

一种依照一个实施例的方法可以包括:从发送设备经由数据存储系统的通信网络向接收设备传输帧,如果接收设备具有能够将编码数据解码为解码数据的解码操作,则启用发送设备的编码操作以便将解码数据编码为编码数据、并经由通信网络在帧中传输该编码数据,而如果接收设备不具有能够将编码数据解码为解码数据的解码操作,则禁用编码操作以及经由通信网络在帧中向接收设备传输解码数据。当然,在不脱离该实施例的情况下可以实现多种替代、变化以及修改。

Description

数据存储系统中的数据编码和解码
技术领域
本公开内容涉及数据存储系统中的数据编码和解码。
背景技术
传统的数据存储系统可以包括一个能够与另一个设备进行双向通信的设备。一个设备可以包括具有主机总线适配器(HBA)的计算机节点。另一个设备可以是大容量存储设备。在数据存储系统中也可以利用例如扩展器、桥接器、路由器和交换机这样的多种中间设备,以促进多个HBA和大容量存储设备之间的耦合和通信。HBA和大容量存储设备可以各自起收发设备的作用,以便使用经由通信网络通过帧传输有效载荷的多种通信协议中的一种或多种彼此交换数据和/或命令。然而,在现有技术实施例中的数据存储系统的收发设备中没有增值编码和解码电路可用。
附图说明
当进行下列详细描述并且参考附图时,请求保护的主题的实施例的特征和优点将变得显而易见,其中相似的数字表示相似的部分并且其中:
图1是示出系统实施例的图示;
图2是更详细地示出图1中的系统实施例中的设备的图示;
图3是更详细地示出图2中设备的集成电路的一个实施例的图示;
图4A-4C是示出由于不同数据解压缩方法而得到的数据传输速率提高的图示;
图5是更详细地示出图2中设备的集成电路的另一个实施例的图示;和
图6是示出依照实施例的操作的流程图。
尽管将参考说明性实施例进行下列详细描述,但是实施例的多种替代、修改和变化对本领域技术人员来说将是显而易见的。因此,意图是应宽泛地考虑请求保护的主题。
具体实施方式
图1示出符合实施例的数据存储系统100,该数据存储系统包括多个能够经由通信网络115的一个或多个通信链路与多个目标设备104、105进行双向通信的启动器设备102、103。启动器设备102、103中的每个可以是不同的计算机服务器,每个计算机服务器具有如在此进一步描述的HBA。目标设备104、105中的每个可以包含大容量存储器。每个大容量存储器可以包括一个或多个大容量存储设备、例如一个或多个独立磁盘冗余阵列(RAID)和/或外围设备。
通信网络115可以包括多个中间设备、例如扩展器、桥接器、路由器和/或交换机。在图1的系统100中,边缘扩展器180可耦合至启动器设备102和103。同样地,另一个边缘扩展器182可耦合至目标设备104和105。最后,扇出扩展器181可耦合至两个边缘扩展器180和182。如在此所使用的那样,“扩展器”可被定义为可便于在多个设备之间通信的设备。为简单的说明,在图1的系统100中仅示出两个启动器设备102、103、两个目标设备104、105和三个扩展器180、181、182。本领域技术人员应认识到,在其他实施例中可利用多个启动器设备、目标设备、扩展器、和/或其他中间设备。
启动器设备102、103和目标设备104、105可充当收发设备以向彼此发送数据和/或命令。这种数据和/或命令可被包含在例如帧190、192的帧中。如在此所使用的“帧”可包含一个或多个符号和值。可以发送和接收大量来自例如启动器设备102、103和目标设备104、105等多种不同设备的帧。
启动器设备102、103和目标设备104、105可以能够使用一种或多种通信协议进行通信。示范性通信协议可包括、但不局限于光纤信道(FC)、串行高级技术附件(S-ATA)、串行连接小型计算机系统接口(SAS)协议、因特网小型计算机系统接口(iSCSI)和/或异步传输模式(ATM)。
如果使用FC协议,则可遵照ANSI标准光纤信道(FC)物理和信令接口-3 X3.303:1998规范中所描述的接口/协议或者与该接口/协议兼容。替代地,如果使用S-ATA协议,则可遵照由串行ATA工作组在2001年8月29日公布的“Serial ATA:High Speed Serialized ATAttachment(串行ATA:高速串行化AT附件)”修订版1.0中所描述的协议或者与该协议兼容。此外替代地,如果使用SAS协议,则可遵照由美国国家标准学会在2003年9月18日公布的“InformationTechnology-Serial Attached SCSI-1.1(SAS)”(信息技术标准(INCITS)T10技术委员会的国际委员会的工作草案美国国家标准,项目T10/1562-D,修订版1)中所述的协议(以下称作“SAS标准”)和/或SAS标准的新近公布的版本、或者与该协议和/或SAS标准的最新公布的版本兼容。此外替代地,如果使用iSCSI协议,则可遵照由因特网工程任务组(ITEF)于2003年1月13日公布的“IP Storage Working Group,Internet Draft,draft-itef-ips-iscsi-20.txt”中所述的协议和/或该协议的新近公布的版本、或者与该协议和/或该协议的新近公布的版本兼容。此外替代地,如果使用ATM协议,则可遵照由ATM论坛批准的多个ATM标准、例如由ATM论坛在2002年4月公布的“ATMUser-Network Interface(UNI)Signaling Specification”或者与该多个ATM标准兼容。
有利地,启动器和目标设备中的一个或多个可具有编码/解码操作,以在这样的设备之间提供增强的通信能力。例,启动器设备102可具有用于提供这种编码/解码操作的编码/解码电路172,目标设备104也可包括用于提供这种编码/解码操作的编码/解码电路174。如在此所使用的那样,“电路”可例如单独地或者以任何组合形式包含硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。同样如在此所使用的那样,“编码”可包含将数据从第一形式转换为第二形式,而“解码”可包含将数据从第二形式转换回第一形式。这种编码操作可包括、但不局限于数据压缩、数据加密和数据分条(stripping)。
当启动器设备102经由通信链路106与目标设备104建立连接时,可以确定目标设备104能够利用由电路174提供的编码/解码操作进行通信。如果启动器设备102正向目标设备104发送数据,如果目标设备104的解码操作能够对帧192中的编码数据进行解码,则启动器设备102然后可以将解码数据编码为编码数据以在帧192中传输到目标设备104。替代地,如果启动器设备102正经由通信链路107向目标设备105发送数据,则它可检测到目标设备不具有能够对它提供的编码数据进行解码的解码操作。因此,启动器设备102于是可以禁用它的编码操作并经由通信链路107在帧190中向目标设备105发送解码数据。因此,启动器设备102可以根据它是否已经与目标设备104或者105建立了通信来启用或者禁用它的编码/解码操作,以便与各种设备有效地通信。
有利地,可以只要求利用这种编码/解码操作的设备102、104了解设备102、104正在利用这种操作进行通信。可以不要求通信网络115的任何中间设备、例如扩展器180、181、182了解由设备102、104执行的任何种类的编码/解码操作。因此,通信网络115便于例如帧190、192的帧的传输,而不考虑可被包含在这种帧中的编码数据的类型。
因此,具有编码操作和/或电路的发送设备、例如设备102应能够检测其何时耦合至具有能够对可由发送设备编码的编码数据进行解码的解码操作和/或电路的接收设备、例如设备104,以便启用或者禁用相关的编码和解码操作。存在可以实现这一点的多种方式。首先,可以通过使用基于任何通信协议、例如FC、SAS、iSCSI的SCSI应用中的厂商独特的小型计算机系统接口(SCSI)模式页面来启用/禁用编码和解码操作。
其次,可以利用每个设备、例如设备102、104的专用管理应用通过带内或者带外通信来启用/禁用编码和解码操作。第三,可以通过利用所接收的帧的帧报头中的预留字段来启用/禁用编码和解码操作,其中该预备字段在一种状态时指示希望启用该操作,而在另一种状态时指示希望禁用该操作。第四,当发送设备、例如设备102向接收设备、例如设备104发送命令时,可基于每个命令启用/禁用编码和解码操作。最后,可按照预定的配置预先配置编码和解码操作,如此每个设备、例如设备102、104将知道可在每个设备中启用某些编码和解码特征。
图2示出图1中系统的启动器设备102的实施例102a。启动器设备102a可包括具有HBA、例如电路卡220的计算机节点。电路卡220可以能够经由通信链路106至少与目标设备104进行双向通信。HBA 220可充当发送与接收来自其他设备、例如设备104的数据和/或命令的收发设备。HBA 220可具有协议引擎电路250以便促进这种通信。协议引擎电路250可通过一个或多个帧、例如帧190、192的发送和接收来与其他设备交换数据和命令。协议引擎电路250可被包括在集成电路(IC)240中。如在此所使用的那样,“集成电路”或者IC意指半导体器件和/或微电子器件、例如半导体集成电路芯片。
目标设备、例如目标设备104也可具有这种协议引擎电路。HBA 220也可提供编码和解码操作。可以利用编码和解码电路172来实现这种操作。在一个实施例中,这种电路172可被包含在协议引擎电路250中。替代地和/或另外地,电路172可位于协议引擎电路250的输入侧。
设备102a可包括主处理器212、总线222、用户接口系统216、芯片组214、系统存储器221、电路卡槽230和能够与目标设备104通信的电路卡220。主处理器212可包括一个或多个本领域中已知的处理器、例如能够在商业上从本申请的受让人得到的IntelPentiumIV处理器。总线222可包括用于传输数据和命令的不同总线类型。例如,总线222可遵照可从PCI特别兴趣组,Portland,Oregon,美国获得的2002年7月22日公布的外围部件互连(PCI)ExpressTM基础规范修订版1.0(以下称为“PCI ExpressTM bus”)。替代地,总线222可遵照可从上述PCI特别兴趣组,Portland,Oregon,美国获得的2002年7月24日公布的PCI-X规范修订版1.0a(以下称为“PCI-X总线”)。
用户接口系统216可包括一个或多个用于用户输入命令和/或数据和/或用于监控该系统的设备、例如键盘、定点设备和/或视频显示器。芯片组214可包括使处理器212、系统存储器221和用户接口系统216彼此耦合以及耦合至总线222的主桥/集线器系统(未示出)。芯片组214可包括一个或多个集成电路芯片、例如那些从在商业上可从本申请的受让人获得的集成电路芯片组中选择的集成电路芯片组(例如图形存储器和I/O控制器集线器芯片组),不过可以同样或替代地使用其他集成电路芯片。处理器212、系统存储器221、芯片组214、总线222和电路卡槽230可以都位于一个电路板232、例如系统主板上。
电路卡220可被构造为允许被插入到电路卡槽230中。当电路卡220被适当地插入到槽230中时,连接器234和237变成彼此电气以及机械耦合。当连接器234和237这样彼此耦合时,卡220变成电气耦合至总线222并可经由总线222和芯片组214与系统存储器221、主处理器212和/或用户接口系统216交换数据和/或命令。
替代地,在不脱离该实施例的情况下,电路卡220的操作电路可被包含在其他的结构、系统和/或设备中。例如,这些其他的结构、系统和/或设备可以例如在主板232上并耦合至总线222。这些其他的结构、系统和/或设备也可以例如被包含在芯片组214中。
图3示出图2的集成电路240的实施例240a的部分。集成电路240a可包括协议引擎电路250、存储器控制电路318和320、存储器322、处理器电路312和处理器总线316。在这个实施例中,编码和解码电路172可以被包含在协议引擎电路250中以提供基于帧的编码和解码。编码和解码电路172可包括与发送路径相关的编码电路314和与接收路径相关的解码电路316。协议引擎电路250此外可包括与发送路径相关的传输层电路322和链路层电路326以及与接收路径相关的传输层电路328和链路层电路330。协议引擎电路250也可包含PHY层电路334。PHY层电路334可包含具有收发机电路的物理PHY,以与可应用的通信链路对接。PHY层电路334可以替代地和/或附加地包含虚拟PHY以与另一个虚拟PHY或者物理PHY对接。
存储器控制电路318可包含直接存储器存取(DMA)电路319。存储器控制电路318可控制从存储器322中检索数据,并且存储器控制电路320可控制数据在存储器322中的存储。存储器控制电路318和320可以至少与处理器电路312、协议引擎电路250和存储器322交换数据和/或命令。存储器322可以包括一个或多个机器可读存储介质、例如随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)、磁盘(例如软盘和硬盘)存储器、光盘(例如CD-ROM)存储器、和/或任何其他可以存储信息的设备。
机器可读的固件程序指令可以被存储在存储器322中。可以由集成电路240来存取和执行这些指令。当由集成电路240执行时,这些指令可导致集成电路240执行在此所描述的如由集成电路240执行的操作。
处理器电路312可包括可具有多个处理器内核的处理器内核电路。如在此所使用的那样,“处理器内核”可包含硬连线电路、可编程电路和/或状态机电路。处理器总线316可允许至少在处理器电路312和协议引擎电路250之间交换数据和/或命令。附加的部件(未示出)也可被耦合至处理器总线316。集成电路240a还可包括附加的部件(未示出)、例如用于桥接处理器总线316和I/O总线的桥接器电路。当电路卡220被耦合至电路卡槽230时,主机接口电路(未示出)可使I/O总线和图2的设备102a的总线222耦合。
在操作中,可经由可以存储信息的任何类型的设备向传输层电路322提供要由协议引擎电路250发送的数据。在一种情况中,这种数据可以通过DMA电路319从存储器322中检索,然后被提供给传输层电路322。如果电路卡220被耦合至电路卡槽230,则输入到发送路径的数据也可能来自图2的设备的系统存储器221。
传输层电路322然后可以接收这种数据以进行传输,并至少将这种数据解析成数据单元。例如,当正利用S-ATA通信协议时,传输层电路322可根据这种数据构造多个帧信息结构(FIS)以进行传输。然后可由软件和/或编码电路314执行的编码操作可以对这种数据单元进行编码。编码数据单元然后可被提供给链路层电路326。然后,链路层电路326可以在编码数据单元周围插入帧包封,以生成将被通信网络115中的任何种类的中间设备接收的用于传输的帧。这种帧包封可包括用于至少定义要传输的帧的边界的不同原语。例如,这种原语可包括帧开始(SOF)和帧结束(EOF)原语。也可以插入帧报头信息和差错校验码信息、例如循环冗余校验(CRC)码。如在此所使用的那样,“原语”可被定义为一组例如表示控制数据的一个或多个符号,用于促进对信息传输的控制和/或用于提供实时状态信息。因此,编码操作可仅仅对所发送的帧的有效载荷进行编码。
在一个实施例中,编码操作可以是数据压缩操作,用于将解压缩数据压缩为压缩数据。这种数据压缩操作可以是任何种类的已知的压缩操作。如在此所使用的那样,“压缩”意指将数据从第一形式转换为第二形式,其中第二形式在尺寸上小于第一形式。也可以使用任何种类的压缩比。在一种情况中,压缩比大约是2∶1的无损压缩操作可以将解压缩数据单元压缩为长度大约是解压缩数据单元的一半的压缩数据单元。
图4A和4B示出可以由图3的集成电路240a执行的基于帧的数据压缩的实例,以示出可以利用这种数据压缩实现的性能增益。为了比较的目的,示出了四个帧402、404、406、408,其中每个帧包含相关的报头信息403、406、409、412和解压缩的有效载荷405、407、411、414。这样的四个帧402、404、406、408的传输被示出为占用规定的时间间隔,其中每个帧都具有解压缩的有效载荷。比较起来,四个帧420、426、428、430的传输时间间隔可以至少部分地依赖于所使用的压缩操作而更快,其中每个帧包含压缩的有效载荷422、425、429、433。
在压缩比大约是2∶1的压缩操作的情况下,压缩的有效载荷可以是解压缩的有效载荷的长度的大约50%。例如,压缩的有效载荷422可以是其解压缩的有效载荷405的长度的大约50%,而压缩的有效载荷425可以是其解压缩的有效载荷407的长度的大约50%。
在压缩操作对由传输层电路322提供的数据单元起作用的情况下,帧420、426、428、430的帧报头部分可保持解压缩,并且因此具有与帧402、404、406、408的帧报头相似的尺寸。因此,即使物理链路接口速度保持相同,实际的数据吞吐量仍将提高。例如,具有压缩的有效载荷422、425、429、433的四个帧420、426、428、430的传输时间可以比具有相似有效载荷数据的解压缩的有效载荷405、407、411、414的、四个帧402、404、406、408的传输时间快得多。因此,包括、但不限于存储器控制电路318、320、存储器322、协议引擎电路250以及压缩和解压缩操作的系统部件可以被设计为利用增加的数据吞吐量。
典型地,帧还可以包含例如循环冗余校验(CRC)的差错校验码,以促进接收数据的正确性的校验。可以存在各种用于处理这种利用基于压缩的帧的CRC校验的方式。首先,可以对解压缩数据计算CRC,并可以在还包括压缩数据的帧的帧报头中传输CRC。在被接收时,有效载荷数据可以被解压缩,并且接收端然后可以将与应用于解压缩的所发送的有效载荷相同的数学计算应用于所接收的解压缩的有效载荷。所得到的CRC然后可以与所接收的CRC相比较以确定接收数据的正确性。
替代地,关于解压缩的有效载荷的初始CRC可以与有效载荷一起被压缩,并且新的压缩的有效载荷CRC将通过压缩操作来产生。于是,解压缩操作将导致初始CRC和解压缩的有效载荷,然后接收端上的适当的CRC电路可以对初始CRC和解压缩的有效载荷进行检查。初始的解压缩的CRC在这种情况下可以可选性地被丢弃或者它可以被保留。
一些通信协议可以将CRC定义为不覆盖报头信息内容。其他的通信协议可以具有单独的用于覆盖报头信息的CRC。接收设备应被设计为考虑这些情况。一些通信协议也可支持帧报头中嵌入的规定有效载荷长度的有效载荷长度字段。因为压缩的有效载荷比解压缩的有效载荷短,所以可更新帧报头中的有效载荷长度字段以反映新的更短的压缩的有效载荷。此外,在这种情况中也可能需要重新计算帧报头CRC。此外,如果有效载荷长度字段被支持,则初始帧有效载荷长度字段可以可选地被嵌入到压缩的有效载荷的最初几个字节中。
在例如报头421、424、427、431的帧报头中没有被压缩的数据可以包括帧报头信息和其他例如EOF和SOF原语的帧原语。为了说明的清楚性,在图4中没有按照比例来绘制报头与有效载荷的比率。例如,对于与FC通信协议兼容的帧来说,帧报头403与有效载荷405的比率大约是24∶2112。对于与例如串行小型计算机系统接口协议(SSP)的SAS协议兼容的帧来说,帧报头与有效载荷、例如报头403与有效载荷405的比率大约是24∶1024。然而,一旦将有效载荷例如压缩为压缩的有效载荷,帧报头与压缩的有效载荷的比率就将下降。解压缩数据与压缩数据的压缩比越大,帧报头与有效载荷的比率就越低。
因此,在另一实施例中,与先前详述的基于帧的层面相反,可以在基于输入/输出(IO)命令的层面上执行帧压缩和解压缩。图5示出集成电路240的另一实施例240b,其中编码/解码电路172位于协议引擎电路250的输入侧。图5的其他部件与图3的那些部件类似,因此为清楚起见在此省略任何重复描述。在一个实施例中,编码/解码电路172可提供数据压缩和解压缩功能。
在操作中,可由存储器控制电路318从存储器322中检索要由协议引擎电路250发送的数据。在检索到数据之后,可以例如由编码电路514来压缩该数据。然后可以向协议引擎电路250的传输层电路322提供压缩数据流。传输层电路322然后可以将这种压缩数据解析为压缩数据单元。因此,传输层电路322将能够产生全尺寸(full sized)的压缩数据单元,并照例将这些全尺寸单元直接传递到链路层电路。例如,在S-ATA中,典型的全尺寸FIS长度可以是8千字节(KB)。在这种情况下,传输层将会把压缩数据解析为8KB的全尺寸数据单元。
图4c示出可以由图5的集成电路240b执行的基于IO命令的数据压缩的实例,以示出可以利用这种数据压缩实现的性能增益。出于比较的目的,图4A示出四个帧402、404、406、408,其中每个帧包含相关的报头信息403、406、409、412和解压缩的有效载荷405、407、411、414。这样的四个帧402、404、406、408的传输被示出为占用规定的时间间隔。为了进一步比较,图4B示出四个帧420、426、428、430的相对较快的传输时间。
假定类似于图4B的50%的压缩比,帧440的有效载荷444可包含帧402和404的有效载荷405和407的压缩的有效载荷。同样地,帧450的有效载荷454可包含帧406和408的有效载荷411和414的压缩的有效载荷。换而言之,帧440和450可包含对应于否则将必须在解压缩数据的四个帧402、404、406、408中被发送的数据的压缩数据。因此,在图4C中示出的该情况中,当帧具有解压缩数据时,基于IO命令的压缩可在相同数量的传输时间内传输多达两倍多的数据。
图4C示出比图4B稍微更快的用于传输相同数量的信息的传输时间间隔。假定50%的相似的压缩比,图4C中示出的基于IO的压缩时间间隔将比图4B的基于帧的压缩时间间隔稍短。这是因为与图4B的四个帧报头421、424、427、431和在四个帧420、426、428、430之间的三个帧间时间间隙相反,仅有两个帧报头442、452和在帧440和450之间的一个帧间时间间隙。
一个帧的在基于IO命令的压缩时的压缩数据在尺寸上可以是可变的,并且在被解压缩时可以大于链路所支持的最大帧尺寸。因此,接收设备的缓冲管理应被设计为考虑到这一点。
在另一个实施例中,根据图3详细描述的编码操作可以是数据加密操作,用于将数据加密成加密数据。这种数据加密操作可以是任何类型的已知的加密操作。也可以利用任何类型的加密算法。解码操作可以是数据解密操作,用于将加密数据解密回解密数据。因此,可以提高通信网络115的传输的安全性。可以独立于较早详述的压缩/解压缩操作来使用加密/解密操作。替代地,可以同时实施加密/解密操作和压缩/解压缩操作。
在又一个实施例中,编码操作可包括数据分条操作,用于跨越多个通信链路提供分条数据以便跨越更高集合带宽的多个链路传播单个数据流。该实施例中的解码操作可包括数据重构操作,以便根据分条数据重构数据。
数据分条可包括用于跨越例如使用SAS通信协议的宽端口的多个通信链路使数据分条的各种数据分条方法。一种数据分条方法可以是基于帧的数据分条。例如,如果宽端口有四个通信链路,则这种基于帧的数据分条可经由链路1发送帧1、经由链路2发送帧2、经由链路4发送帧3、经由链路1发送帧4、经由链路1发送帧5,等等。另一种数据分条方法可以是基于双字的数据分条。利用类似的四个链路实例,这种使数据分条的双字方法可经由链路1发送双字1、经由链路2发送双字2、经由链路3发送双字3、经由链路4发送双字4、经由链路1发送双字5,等等。另一种数据分条方法可以是字节字(byte word)分条,其中可以以规定的模式跨越多个通信链路使字节分条。
只要使用例如经由宽端口的多个通信链路的发送设备和接收设备了解数据如何跨越多个链路被分条,数据就能够利用相同的算法被分条和被重构。
另外,可以与数据分条操作一起使用例如压缩和加密等的其他特征。这为一些例如SAS的目前不允许跨越宽端口内的多个链路进行数据分条的通信协议提供增强的通信能力。
图6是符合实施例的示范性操作600的流程图。操作602可以包括从发送设备经由数据存储系统的通信网络向接收设备传输帧。操作604可以包括:如果接收设备具有能够将编码数据解码为解码数据的解码操作,则启用发送设备的编码操作以便将解码数据编码为编码数据并且经由通信网络在帧中传输该编码数据。最后,操作606可以包括:如果接收设备不具有能够将编码数据解码为解码数据的解码操作,则禁用编码操作并且经由通信网络在帧中向接收设备传输解码数据。
应当理解的是,可以利用硬件、固件、软件或者其组合来实现在此针对所有实施例所描述的功能。如果以软件来实现,则可以利用例如处理元件的机器、例如处理器电路312、主处理器212和一个或多个机器可读存储介质。一个示范性处理元件是由本申请的受让人制造的Pentium系列处理器或者由摩托罗拉制造的系列处理器。机器可读介质包括任何能够存储适合由机器执行的指令的介质。这种介质的一些实例包括、但不局限于只读存储器(ROM)、RAM、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、DRAM、磁盘(例如软盘和硬盘)、光盘(例如CD-ROM)、和任何其它的能够存储信息的设备。此外,处理元件和机器可读存储介质可以是可包含机器可读存储设备通过各种输入/输出(I/O)控制器的不同组合的较大系统的一部分,其中机器可读存储设备可由处理元件访问并且可以能够存储计算机程序指令和数据的组合。
因此,总之,一个实施例可包含一种方法。该方法可包含从发送设备经由数据存储系统的通信网络向接收设备传输帧。该方法还可包括:如果接收设备具有能够将编码数据解码为解码数据的解码操作,则启用发送设备的编码操作以便将解码数据编码为编码数据并经由通信网络在帧中传输该编码数据,而如果接收设备不具有能够将编码数据解码为解码数据的解码操作,则禁用编码操作以及经由通信网络在帧中向接收设备传输解码数据。例如,如果启动器设备102经由帧、例如帧192向目标设备104发送数据,则该启动器设备102可启用它的编码操作。替代地,如果该启动器设备102经由帧、例如帧190向目标设备105发送数据,则设备102可禁用它的编码操作。
有利地,编码和解码操作可包含各种功能、例如数据压缩、加密和数据分条以提供增强的通信能力。在不替换通信网络115的任何部件的情况下,可以大大提高有效的传输率。也可以提高传输的安全性。此外,可以只要求使用这种编码/解码操作的设备102、104了解设备102、104正在使用这种操作进行通信。因此,通信网络115的任何中间设备、例如扩展器180、181、182可以不需要了解由设备102、104执行的任何类型的编码/解码操作。
总之,另一个实施例可包括一种装置。该装置可包含能够将解码数据编码为编码数据的编码电路、和协议引擎电路。协议引擎电路可以能够从该装置经由数据存储系统的通信网络向接收设备传输帧并且能够检测接收设备是否具有能够将编码数据解码为解码数据的解码电路。如果接收设备具有能够将编码数据解码为解码数据的解码电路,则编码电路提供编码数据,而如果接收设备不具有能够将编码数据解码为解码数据的解码电路,则编码电路提供解码数据。
在此所使用的术语和表达被用作为描述的术语而非限制的术语,在使用这样的术语和表达时并不意图排除任何所示和所描述的特征的等同物(或者其部分),并且应认识到,各种修改都可以在权利要求的范围内。也可以实现其它的修改、变化和替代。因此,权利要求意图覆盖所有这样的等同物。

Claims (25)

1.一种方法,包括:
从发送设备经由数据存储系统的通信网络向接收设备传输帧;
如果所述接收设备具有能够将编码数据解码为解码数据的解码操作,则启用所述发送设备的编码操作以便将所述解码数据编码为所述编码数据、并且经由所述通信网络在所述帧中传输所述编码数据;
如果所述接收设备不具有能够将所述编码数据解码为所述解码数据的所述解码操作,则禁用所述编码操作并经由所述通信网络在所述帧中向所述接收设备传输所述解码数据。
2.如权利要求1所述的方法,其中所述编码操作包括数据压缩操作,所述编码数据包括压缩数据,所述解码操作包括数据解压缩操作以及所述解码数据包括解压缩数据。
3.如权利要求2所述的方法,其中由所述发送设备的传输层电路向所述数据压缩操作提供所述解压缩数据,并且所述数据压缩操作的输出被提供给链路层电路,所述链路层电路提供所述帧以便从所述发送设备向所述接收设备传输。
4.如权利要求2所述的方法,其中由所述发送设备的存储器向所述数据压缩操作提供所述解压缩数据,并且所述数据压缩操作的输出被提供给所述发送设备的传输层电路。
5.如权利要求1所述的方法,其中所述编码操作包括数据加密操作,所述编码数据包括加密数据,所述解码操作包括数据解密操作以及所述解码数据包括解密数据。
6.如权利要求1所述的方法,其中所述编码电路包括数据分条电路,所述编码数据包括分条数据,并且所述解码操作包括用于根据所述分条数据重构所述解码数据的数据重构操作。
7.一种装置,包括:
编码电路,能够将解码数据编码为编码数据;和
协议引擎电路,能够从所述装置经由数据存储系统的通信网络向接收设备传输帧,并且能够检测所述接收设备是否具有能够将所述编码数据解码为所述解码数据的解码电路,如果所述接收设备具有能够将所述编码数据解码为所述解码数据的解码电路,则所述编码电路提供所述编码数据,而如果所述接收设备不具有能够将所述编码数据解码为所述解码数据的解码电路,则所述编码电路提供所述解码数据。
8.如权利要求7所述的装置,其中所述编码电路包括数据压缩电路,所述编码数据包括压缩数据,所述解码电路包括数据解压缩电路以及所述解码数据包括解压缩数据。
9.如权利要求8所述的装置,其中所述协议引擎电路包括传输层电路、所述数据压缩电路和链路层电路,所述传输层电路能够构造所述解压缩数据的解压缩单元以用于传输,所述压缩电路能够将所述解压缩数据压缩为压缩数据并向所述链路层电路提供所述压缩数据的压缩单元,所述链路层电路能够接收所述压缩单元并生成所述帧以便向所述接收设备传输,所述帧包括所述压缩单元。
10.如权利要求8所述的装置,其中所述协议引擎电路包括传输层电路和链路层电路,所述数据压缩电路能够从所述装置的存储器接收解压缩数据、将所述解压缩数据压缩为压缩数据、并向所述传输层电路提供所述解压缩数据,所述传输层电路能够构造所述压缩数据的全尺寸单元以用于传输,所述链路层电路能够接收所述全尺寸单元并生成所述帧以便向所述接收设备传输,所述帧包括压缩数据的所述全尺寸单元。
11.如权利要求7所述的装置,其中所述编码电路包括数据加密电路,所述编码数据包括加密数据,所述解码电路包括数据解密电路以及所述解码数据包括解密数据。
12.如权利要求7所述的装置,其中所述编码电路包括数据分条电路,所述编码数据包括分条数据,以及所述解码电路包括用于根据所述分条数据重构所述解码数据的数据重构电路。
13.一种系统,包括:
包括集成电路的电路卡,所述电路卡能够耦合至总线,所述集成电路包括:
编码电路,能够将解码数据编码为编码数据;和
协议引擎电路,能够从所述装置经由数据存储系统的通信网络向接收设备传输帧,并且能够检测所述接收设备是否具有能够将所述编码数据解码为所述解码数据的解码电路,如果所述接收设备具有能够将所述编码数据解码为所述解码数据的解码电路,则所述编码电路提供所述编码数据,而如果所述接收设备不具有能够将所述编码数据解码为所述解码数据的解码电路,则所述编码电路提供所述解码数据。
14.如权利要求13所述的系统,其中所述编码电路包括数据压缩电路,所述编码数据包括压缩数据,所述解码电路包括数据解压缩电路以及所述解码数据包括解压缩数据。
15.如权利要求14所述的系统,其中所述协议引擎电路包括传输层电路、所述数据压缩电路和链路层电路,所述传输层电路能够构造所述解压缩数据的解压缩单元以用于传输,所述压缩电路能够将所述解压缩数据压缩为压缩数据并向所述链路层电路提供所述压缩数据的压缩单元,所述链路层电路能够接收所述压缩单元并生成所述帧以便向所述接收设备传输,所述帧包括所述压缩单元。
16.如权利要求14所述的系统,其中所述协议引擎电路包括传输层电路和链路层电路,所述数据压缩电路能够从所述装置的存储器接收解压缩数据、将所述解压缩数据压缩为压缩数据、并向所述传输层电路提供所述解压缩数据,所述传输层电路能够构造所述压缩数据的全尺寸单元以用于传输,所述链路层电路能够接收所述全尺寸单元并生成所述帧以便向所述接收设备传输,所述帧包括压缩数据的所述全尺寸单元。
17.如权利要求13所述的系统,其中所述编码电路包括数据加密电路,所述编码数据包括加密数据,所述解码电路包括数据解密电路以及所述解码数据包括解密数据。
18.如权利要求13所述的系统,其中所述编码电路包括数据分条电路,所述编码数据包括分条数据,以及所述解码电路包括用于根据所述分条数据重构所述解码数据的数据重构电路。
19.如权利要求13所述的系统,其中所述接收设备包括大容量存储设备。
20.一种产品,包括:
存储介质,该存储介质具有存储在其上的指令,当机器执行该指令时导致:
从发送设备经由数据存储系统的通信网络向接收设备传输帧;
如果所述接收设备具有能够将编码数据解码为解码数据的解码操作,则启用所述发送设备的编码操作以便将所述解码数据编码为所述编码数据、并经由所述通信网络在所述帧中传输所述编码数据;而
如果所述接收设备不具有能够将所述编码数据解码为所述解码数据的解码操作,则禁用所述编码操作并经由所述通信网络在所述帧中向所述接收设备传输所述解码数据。
21.如权利要求20所述的产品,其中所述编码操作包括数据压缩操作,所述编码数据包括压缩数据,所述解码操作包括数据解压缩操作以及所述解码数据包括解压缩数据。
22.如权利要求21所述的产品,其中由所述发送设备的传输层电路向所述数据压缩操作提供所述解压缩数据,并且所述数据压缩操作的输出被提供给链路层电路,所述链路层电路提供所述帧以便从所述发送设备向所述接收设备传输。
23.如权利要求21所述的产品,其中由所述发送设备的存储器向所述数据压缩操作提供所述解压缩数据,并且所述数据压缩操作的输出被提供给所述发送设备的传输层电路。
24.如权利要求20所述的产品,其中所述编码操作包括数据加密操作,所述编码数据包括加密数据,所述解码操作包括数据解密操作以及所述解码数据包括解密数据。
25.如权利要求20所述的产品,其中所述编码电路包括数据分条操作,所述编码数据包括分条数据,以及所述解码操作包括用于根据所述分条数据重构所述解码数据的数据重构操作。
CN2005800108829A 2004-03-31 2005-03-25 数据存储系统中的数据编码和解码 Expired - Fee Related CN1943202B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/815,269 2004-03-31
US10/815,269 US7412540B2 (en) 2004-03-31 2004-03-31 Data encoding and decoding in a data storage system
PCT/US2005/010174 WO2005099226A1 (en) 2004-03-31 2005-03-25 Data encoding and decoding in a data storage system

Publications (2)

Publication Number Publication Date
CN1943202A true CN1943202A (zh) 2007-04-04
CN1943202B CN1943202B (zh) 2010-12-22

Family

ID=34964342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800108829A Expired - Fee Related CN1943202B (zh) 2004-03-31 2005-03-25 数据存储系统中的数据编码和解码

Country Status (6)

Country Link
US (1) US7412540B2 (zh)
EP (1) EP1730931B1 (zh)
CN (1) CN1943202B (zh)
AT (1) ATE474411T1 (zh)
DE (1) DE602005022293D1 (zh)
WO (1) WO2005099226A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124234B2 (en) * 2003-12-22 2006-10-17 Intel Corporation Managing transmissions between devices
US8190983B2 (en) * 2008-06-12 2012-05-29 Lsi Corporation Apparatus and methods for CRC error injection in a storage system
KR101021914B1 (ko) 2008-12-18 2011-03-18 재단법인대구경북과학기술원 플렉스레이 통신 전송/수신 방법 및 장치
US9626318B2 (en) 2012-01-26 2017-04-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for storage protocol compliance testing
US8856404B2 (en) 2012-07-31 2014-10-07 Hewlett-Packard Development Company, L.P. Primitive group data encoding in a data storage fabric
US9026727B2 (en) 2012-09-04 2015-05-05 Avago Technologies General Ip (Singapore) Pte Ltd Enhanced memory savings in routing memory structures of serial attached SCSI expanders

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173398A (ja) 1997-06-03 1999-03-16 Toshiba Corp 分散ネットワークコンピューティングシステム、同システムに用いられる情報交換装置、同システムに用いられるセキュリティ機能を有する情報交換方法、この方法を格納したコンピュータ読取り可能な記憶媒体
EP1158743B1 (en) 2000-05-23 2008-07-09 Hitachi, Ltd. Computing system with remote copy facility
AU2001279021A1 (en) 2000-07-28 2002-02-13 Remote Communications Inc. System and method for serving compressed content over a computer network
US8370525B2 (en) * 2001-03-30 2013-02-05 Intel Corporation Transmitting new data format under existing infrastructure
US7099951B2 (en) * 2001-05-24 2006-08-29 Vixs, Inc. Method and apparatus for multimedia system
US20030105830A1 (en) 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods

Also Published As

Publication number Publication date
ATE474411T1 (de) 2010-07-15
US20050223116A1 (en) 2005-10-06
DE602005022293D1 (de) 2010-08-26
US7412540B2 (en) 2008-08-12
EP1730931B1 (en) 2010-07-14
EP1730931A1 (en) 2006-12-13
WO2005099226A1 (en) 2005-10-20
CN1943202B (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
US7307552B2 (en) Method and apparatus for efficient hardware based deflate
CN101930418B (zh) 用于分组信息的多种压缩技术
US11463102B2 (en) Data compression method, data decompression method, and related apparatus, electronic device, and system
JP6931050B2 (ja) バイナリデータをエンコード及びデコードする方法及び装置
US7636804B2 (en) Data storage and protection apparatus and methods of data storage and protection
WO2015066925A1 (zh) 一种Polar码编码方法、装置
CN1943202B (zh) 数据存储系统中的数据编码和解码
US20190268017A1 (en) Self-checking compression
US9059731B2 (en) Boosting decompression in the presence of reoccurring Huffman trees
US20210089492A1 (en) Rdma data sending and receiving methods, electronic device, and readable storage medium
US11955995B2 (en) Apparatus and method for two-stage lossless data compression, and two-stage lossless data decompression
US10757227B2 (en) Security-oriented compression
CN117240409B (zh) 一种用于智能手机与智能穿戴设备的数据处理方法
WO2023071893A1 (zh) 一种基于三种模式的数据压缩方法和数据解压方法
WO2014029081A1 (zh) 压缩方法及设备
US11243890B2 (en) Compressed data verification
WO2006019853A2 (en) System and method for transferring data using storage controllers
Yan et al. Z-Dedup: A case for deduplicating compressed contents in cloud
WO2023237121A1 (zh) 一种数据处理方法、装置及相关设备
CN104518850A (zh) 将参考模板同步到数据流的方法和信息处理系统
US11636061B2 (en) On-demand packetization for a chip-to-chip interface
CN110995274B (zh) 一种解压缩方法及装置
CN117827775A (zh) 数据压缩方法、装置、计算设备及存储系统
CN118100955A (zh) 一种用于对压缩数据进行并行解压的预处理的方法
CN116737815A (zh) 数据提取方法、装置、电子设备及存储介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101222

Termination date: 20190325