用于装置通信信道包的数据修改的制作方法

文档序号:7991755阅读:259来源:国知局
用于装置通信信道包的数据修改的制作方法
【专利摘要】本发明公开了涉及修改将要在通信链路和/或总线上发送的分组数据的技术。数据可根据一种或多种数据处理算法并且根据目的地装置接收已修改数据的能力来修改。可对数据使用无损压缩算法以便在特定总线或链路上达到更高的有效带宽。可使用加密算法以及数据格式转换算法。计算装置内的通信信道控制器或其它结构的一个或多个处理元件可用于修改分组数据,在一些实施方案中,所述分组数据可呈PCI-Express格式。包前缀或报头可用于存储关于哪种(哪些)算法已被用来修改分组数据的指示,以使得目的地装置可相应地处理包。
【专利说明】用于装置通信信道包的数据修改
[0001]背景【技术领域】
[0002]本公开涉及经由装置通信信道传输数据包,并且更确切地,涉及对那些数据包应用处理算法。
[0003]相关技术描述
[0004]在操作计算装置期间,可在附接至通信链路和/或总线的装置之间发送数据包。计算机处理器可向例如硬盘驱动器或其它存储单元发送(或从其接收)数据。向或从装置发送的数据可根据特定格式来传输,所述特定格式如PC1-Express规范中所定义的TLP (事务层包)。被传送数据可呈原始或未处理形式;即,可能在通信链路和/或总线上发送所述数据之前,尚未对所述数据进行操作以便传输。
[0005]因此,被配置用于传送呈特定格式的数据的总线和通信链路可能限制于针对所述格式所存在的任何缺点。例如,可能在特定通信链路和/或总线上并不可能达到或超过最大带宽,并且就处理分组数据而言,被配置用于发送并接收呈特定格式的包的装置可能并不是性能高效的。
[0006]实施方案概述
[0007]本文公开允许处理元件修改分组数据的方法和结构的各种实施方案。
[0008]在所描述的一个实施方案中公开一种设备,其包括被配置用于联接至通信链路的处理元件,其中所述处理元件被配置用于:为响应接收去往联接至所述通信链路的装置的有效载荷数据,根据一种或多种指定处理算法来修改所接收有效载荷数据,创建一个或多个包,其中所述一个或多个包被编址到所述装置并且包括已修改有效载荷数据和指示所述一种或多种指定处理算法的信息,并且使得经由所述通信链路向所述装置传输所述一个或多个包。
[0009]另一个实施方案包括一种计算机可读存储介质,其中所述介质具有指令存储在其上,所述指令可由计算装置的处理器执行以引起所述计算装置进行以下操作,所述操作包括:接收向联接至所述计算装置的通信链路的外围装置传递应用程序数据的请求,其中所述通信链路被配置用于根据第一通信协议并且基于以下指示来传递包:所述外围装置被配置用于经由所述通信链路来接收根据指定算法处理的数据包;使得根据所述指定算法来修改所述应用程序数据;和使得所述已修改应用程序数据在一个或多个包中经由所述通信链路被发送至所述外围装置,其中所述一个或多个包可与所述第一通信协议兼容。
[0010]又一个实施方案是一种方法,其包括:处理元件为响应接收去往联接至还联接至所述处理单元的通信链路的装置的数据,创建包括已修改有效载荷数据的一个或多个数据包,其中所述已修改有效载荷数据是根据一种或多种指定处理算法来处理所接收数据的结果,其中所述一个或多个包被编址到所述装置;和使得经由所述通信链路向所述装置传输所述一个或多个包和指示所述一种或多种指定处理算法的信息。
[0011]又一个实施方案包括一种永久性计算机可读存储介质,其包括数据结构,所述数据结构可由可在计算机系统上执行的程序使用,以进行建造集成电路的过程的一部分,所述集成电路包括由所述数据结构所描述的回路,以所述数据结构所描述的回路包括被配置用于联接至通信链路的处理元件,其中所述处理元件被配置用于:为响应接收去往联接至所述通信链路的装置的有效载荷数据,根据一种或多种指定处理算法来修改所接收有效载荷数据,创建一个或多个包,其中所述一个或多个包被编址到所述装置并且包括所述已修改有效载荷数据和指示所述一种或多种指定处理算法的信息,并且使得经由所述通信链路向所述装置传输所述一个或多个包。
[0012]附图简述
[0013]图1是示出计算机系统的一个实施方案的框图。
[0014]图2是若干可能数据包的框图。
[0015]图3是示出计算机可读存储介质的框图。
[0016]图4是示出一种方法的一个实施方案的流程图,在所述方法中,创建并向装置发送包括已修改有效载荷数据的一个或多个数据包。
[0017]图5是示出计算机系统的另一个实施方案的框图。
[0018]详述
[0019]本说明书包括对“一种实施方案”或“实施方案”的参考。词组“在一个实施方案中”或“在实施方案中”的出现没有必要是指同一实施方案。可以与本公开一致的任何合适的方式来结合特定特征、 结构或特性。
[0020]术语.以下段落提供用于本公开(包括所附权利要求书)中所发现术语的定义和
/或背景:
[0021]“包括(Comprising) ”或“包括(Including) ”.这些术语是开放式的。如在所附权利要求书中所使用,这些术语并不排除另外的结构或步骤。考虑叙述“一种装置,其包括一个或多个处理元件……”的一项权利要求。这样的权利要求并不排除所述设备包括另外的部件(例如,网络接口单元、图形回路等)。
[0022]“被配置用于可将各种单元、电路或其它部件描述或声称为“被配置用于”进行一项或多项任务。在这些背景下,“被配置用于”通过指示单元/电路/部件包括在操作期间进行这个或这些任务的结构(例如,回路)来暗指结构。因此,可认为单元/电路/部件被配置用于进行任务,即使在指定单元/电路/部件当前并未操作(例如,未打开)时。与“被配置用于”语言一起使用的单元/电路/部件包括硬件——例如,电路、存储可执行以实施操作的程序指令的内存等。叙述单元/电路/部件“被配置用于”进行一项或多项任务清楚地并玉意图针对所述单元/电路/部件引用美国法典第35篇第112条第六段。此外,“被配置用于”可包括通用结构(例如,通用回路),所述通用结构由软件和/或固件(例如,FPGA或通用处理器执行软件)来操纵以便以能够进行待解决的一项(多项)任务的方式来操作。另外,“被配置用于”可包括使制造过程(例如,半导体建造设施)适于建造适于实施或进行一项或多项任务的装置(例如,集成电路)。
[0023]“处理元件”.这个术语具有其普通含义和本领域中公认的含义,并且包括能够执行计算机指令的一个装置(例如,回路)或多个装置的组合。在各个实施方案中,处理元件是指(但并不限于)单核处理器、多核处理器的一个核,或多核处理器的一组两个或更多个核。[0024]“处理器这个术语具有其普通含义和本领域中公认的含义,并且包括以下装置,所述装置包括一个或多个处理元件。处理器可以是指(但不限于)中央处理单元(CPU)、协同处理器、算法处理单元、图形处理单元、数字信号处理器(DSP)等。
[0025]“计算机可读介质如本文中所使用,这个术语是指一种(永久性、有形)介质,其可由计算机或计算机系统读取,并且包括磁性、光学和固态存储介质,如硬盘驱动器、光盘、DVD、易失性或非易失性RAM装置、全息存储器、可编程内存等。在本文中,如应用于计算机可读介质的术语“永久性”仅意图从权利要求范围排除在美国法典第35篇第101章下被认为不适当的任何主题,如短暂性(无形)介质(例如,载波),并且并不意图排除以其它方式被认为是法定的的任何主题。
[0026]* * *
[0027]现在转向图1,示出系统100的一个实施方案。在这个实施方案中,处理器110连接至包括处理元件125和一个或多个数据算法126的通信信道控制器120。如所示的,通信信道控制器120经由总线140连接至装置150。在图1的实施方案中,装置150A包括处理元件152和一个或多个数据算法153。
[0028]注意:在一些实施方案中,通信信道控制器120可被配置用于控制、使用和/或管理一个或多个装置通信信道。如本文中所使用,术语“通信信道”可以是指被配置用于允许两个或更多个装置之间的通信的共享总线,或是指被配置用于允许仅两个(装置)点之间的通信的点到点通信链路。因此,在各个实施方案中,通信信道控制器120可被配置用于控制、使用和/或管理公开共享总线和/或一个或多个非共享(点到点)通信链路。注意:在至少一个实施方案中,通信信道控制器可以是多个装置经由多个通信链路可接取的,尽管所述多个装置彼此可能并不能直接接取。(因此,在各个实施方案中,信道控制器120可被配置用于促进经由相应多个通信链路而连接至所述信道控制器的两个或更多个装置之间的通信。)
[0029]处理器110可以是任何处理器,并且在一个实施方案中,处理器110是如参照图5的处理器系统580所描述的处理器。在各个实施方案中,处理器110可包括一个或多个处理核,并且可支持多个线程的执行。如所示的,处理器110连接至通信信道控制器120。这个连接可以是总线(如140)或任何其它合适的连接。因此,处理器110可被配置用于向通信信道控制器120发送或从其接收数据。在一些实施方案中,由处理器110向通信信道控制器120发送的数据可去往装置150中的一个、任何或所有装置。因此,处理器110可向通信信道控制器120发送数据所去往的特定装置150的指示。在各个实施方案中,这个指示可以是地址信息、中断信息、其它识别信息(例如,逻辑或硬件装置号),或其任何组合。
[0030]可以各种各样的方式并且根据本领域的技术人员可能已知的技术来向通信信道控制器120发送数据。在一个实施方案中,处理器110被配置用于直接向通信信道控制器120发送数据(即,向通信信道控制器120传输已经存储在处理器110中的数据)。在其它实施方案中,替代地,处理器110可使得通过向通信信道控制器120传达数据的位置来发送数据——例如,向所述通信信道控制器发送内存位置或其它指示字。然后,通信信道控制器可使用所述指示字来接取例如存储在系统内存(如RAM)中的数据。实际上,在各个实施方案中,通信信道控制器120可从任何数量的源并且使用任何数量的技术来获得数据。例如,装置(如装置150A)可使用通信信道控制器120的一些或所有功能性、经由通信信道控制器120来向处理器110、向另一个装置150和/或向计算机系统或计算装置内的其它结构发
送数据。
[0031]装置150可以是任何外围装置,如硬盘驱动器、闪存驱动器、存储阵列、SAN、其它存储装置或与其相关的控制器;网络接口装置(例如,到局域网或广域网);DVD-R0M驱动器或其它光驱;或其它装置(例如,图形处理装置、用户接口装置等)。因此,在一些实施方案中,装置150可具有如以下相对于图5所描述的I/O装置550和/或I/O接口 540的任何或所有特征。
[0032]在图1的实施方案中,通信信道控制器120被配置用于接收数据,并且创建一个或多个包以用于经由总线140传输所述数据。具体地,在图1的实施方案中可使用处理元件125来创建数据包。处理元件125可以是单机处理器、多核处理器的一个核或其它硬件逻辑。在一些实施方案中,处理元件125的全部或一部分是可编程硬件(例如,EEPROM等)。在一些实施方案中,处理元件125的全部或一部分可以是定制ASIC芯片。在一些实施方案中,处理元件125还可被配置用于包括算法126,如以下所讨论,并且在这些实施方案中,可被重编或更新成具有新的算法。
[0033]在各个实施方案中,处理元件125被配置用于根据一个或多个通信协议来制定数据包。如图1中所示,处理元件125被配置用于根据2.1版PC1-Express规范来制定数据包。在其它实施方案中,处理元件125被配置用于根据其它版本的PC1-Express规范来制定数据包。在又其它实施方案中,其它通信协议可由处理元件125来使用以对数据进行分组化,并且在一些实施方案中,处理元件125可支持根据两种或更多种不同协议和/或同一协议的两个或更多个版本的数据分组化。可在各个实施方案中使用的协议还包括USB、以太网、显示端口、TCP和UDP,或使用数据的基于包的传输的任何其它通信协议。在各个实施方案中,由处理元件125制定的数据包可包括数据有效载荷,以及任何其它数据包字段或数据包特征,如以下相对于图2所讨论。
[0034]一种或多种数据处理算法126可由处理元件125使用来制定数据包。因此,在一个实施方案中,由处理元件125来对将要传达至联接至总线140 (或未描绘的另一个总线或链路)的装置150的有效载荷数据执行数据处理算法。在一个实施方案中,处理元件125被配置用于基于以下指示来修改分组有效载荷数据:装置150被配置用于处理已经根据算法126中的一种或多种被修改的数据。
[0035]在图1的实施方案中,算法126存储在已经编程到通信信道控制器120中的硬件逻辑中(S卩,可将算法126硬线连接至回路/电路结构中)。在一个实施方案中,算法作为已经编程到处理元件125中的逻辑来存储。因此,在各个实施方案中,一种或多种数据处理算法126的执行可由被配置用于进行组成特定算法的一个或多个操作的回路来完成。在其它实施方案中,算法126可作为计算机可读存储介质上的指令来存储。指令可以是可由处理元件(如125)、处理器(如处理器110)的一个或多个核等来执行的。因此,在一些实施方案中,一种或多种数据处理算法126的执行可由以下指令来完成,所述指令由通用处理元件或其它处理元件(GPU、GPU核、其它协同处理器、定制或专用芯片等)来执行。在一个实施方案中,处理器110的一个或多个核可执行用于算法126的指令。
[0036]数据处理算法126可包括任何数量的算法,所述算法在被执行时,以各种各样的方式来改变数据(例如,对有效载荷数据进行分组)。在一些实施方案中,在算法126中包括用于无损失数据压缩的一种或多种算法。此类无损压缩算法可包括Lempel-Ziv-Welch(LZff)压缩、行程长度编码、字节对编码和/或基于字典的编码方案。在一些实施方案中,可使用基于观测数据的定制无损失压缩方案(例如,基于启发式的方案)。例如,可经验主义地对一个或多个特定环境或计算机装置中的总线流通量进行采样,并且然后可基于此数据来使用一个或多个有利方案(或多个方案的组合)。如果,例如,观测到频繁地传输特定模式的一个或多个值,那么无损失压缩方案可合并那些模式。在各个实施方案中,任何公共域或制造商专有方案可用于无损失压缩,并且可用于压缩数据的编码/解码方案的数量并不限于以上所描述的那些。在一些实施方案中,可使用有损压缩方案(特别是与如以下所讨论的文件格式转换算法有关)。
[0037]在一个实施方案中,所使用的压缩算法的类型可取决于正被压缩的数据的种类的指示。例如,正在总线140上发送的基于文本的文件(Microsoft Word (TM)、纯文本、富文本格式(RTF)等)所具有的应用于所述基于文本的文件的压缩方案或算法可不同于将会应用于正在总线140上传输的基于图形的文件(JPEG、MPEG等)的压缩方案或算法。在一个实施方案中,可由通信信道控制器120之外的结构(例如,由处理器110或一个装置150)来明确地生成或提供将要经由总线传输的数据的类型的指示。在另一个实施方案中,所述指示可由将要被传输的处理元件125检验数据来生成,以确定数据的类型。数据类型指示还可由通信信道控制器120中的一个或多个其它部件(未描绘)来提供。因此,在一个实施方案中,处理元件125被配置用于基于以下指示来修改有效载荷数据:联接至总线140的装置被配置用于根据特定压缩算法来解压数据。
[0038]对将要在总线140 (或另一个总线或链路)上发送的数据包使用压缩的一个优点在于:可以达到更高的有效带宽。例如,给定通信协议(如PC1-Express2.1规范)可针对PC1-Express链路对可达到的通量施加上限。所述可达到的通量可由TLP有效载荷的大小、PC1-Express链路的配置和在所述链路上的传输的一般流通量的组合来限制。然而,如果压缩技术可用于减少正在总线或链路上传递的实际字节的量,那么可在同一时间量内发送更高量的“有用”数据。然而,在各个实施方案中,使用压缩技术来在总线140上发送数据可能要求:装置150或数据包的其它目的地能够解压已压缩数据,以将所述数据恢复成其未修改形式。
[0039]压缩仅是可对分组数据使用的数据处理算法(例如,编码/解码算法)中的一种应用。其它算法126可包括加密和格式转化。在支持对数据包进行加密的一个实施方案中,可根据一种或多种加密方案对分组数据的全部或一部分进行加密。这类方案可包括使用数字签名算法(DSA)、RSA(PKCS#1)、PGP、口令验证密钥协定、椭圆曲线技术或本领域的技术人员可以想到的其它密码技术。因此,在一些实施方案中,通信信道控制器120和/或处理元件125 (或被配置用于对数据进行加密的另一个结构)可被配置用于使用一种或多种特定密钥来对数据进行加密。通信信道控制器120可被配置用于经由总线140与装置150和/或数据的其它目的地交换密钥。在一些实施方案中,使用密码技术来编码分组有效载荷数据可防止所述有效载荷数据在其在总线140 (或另一个数据传送结构)上行进时“被监听”。加密可用于保护机密或密级数据、由数字版权管理(DRM)所保护的媒体文件,或用于任何其它目的。在一些实施方案中,加密策略可用作用于加密分组数据的基础。这样一种策略可指定:一些或所有数据,或一些或所有类型的数据应根据一种或多种算法来加密。在确定数据是否应被加密时,加密策略可将各种因素考虑在内,如登陆至计算机系统上的用户的身份、由源或目的地装置所提供的指令(和/或这类装置的能力)等。然而,如以下所讨论,可使用除加密和压缩之外的又其它算法。
[0040]在一些实施方案中可使用数据格式转化算法来修改将要经由总线140发送的数据。这些算法可以例如从一种文件格式转换成另一种(例如,从GIF图形文件转换成JPEG图形文件;从FlashC FLV)视频格式转换成MPEG视频格式),从一种文档格式(如富文本格式(RTF)或Postscript (PDF))转换成另一种文档格式(如Microsoft Word (TM)),或从一种音频格式转换成另一种。许多类型的数据格式转换是可能的,并且不限于以上实例。在一些实施方案中,格式转换可在低级别下出现,如字节级别或字符级别(例如,数据可在ASCII与EB⑶IC字符编码之间或不同ISO字符编码之间进行转换)。在一个实施方案中,处理元件125可基于以下指示将数据从第一格式转换成第二格式:装置150之一请求呈第二格式的数据(或,例如,处理器110请求呈正在从装置150传递的数据的第二格式的数据)。例如,在处理器110的一个或多个核上运行的应用程序可请求:以特定格式(例如,JPEG图像)从存储装置150 (如硬盘驱动器)检索一个或多个图像文件。装置150内的处理元件可在向请求者(例如,处理器110)发送数据之前将所述数据转化成JPEG格式。因此,在使用数据格式转化算法的一些实施方案中,一个或多个内存缓冲区可用作暂时性存储器以用于转化过程。
[0041]可包括在算法126中的算法不限于以上参照压缩、加密和数据格式转化所描述的那些。在各个实施方案中,还可存在可影响将要经由总线140传输的数据(例如,有效载荷数据)的其它数据处理算法。在一个实施方案中,处理元件125被配置用于:为响应接收去向装置150之一的有效载荷数据,根据算法126中的至少一种来修改所接收有效载荷数据,创建一个或多个包,所述一个或多个包被编址到所述装置并且包括所述已修改有效载荷数据以及指示用于修改所述数据的所述算法126中的至少一种的信息;并且使得经由总线140向所述装置150传输所述一个或多个所创建包。在一些实施方案中,可对给定数据分组有效载荷使用多于一种算法。
[0042]各个实施方案已经在以上相对于如图1中所描绘的处理元件125、算法126和通信信道控制器120来描述,包括对具有在算法上已修改的有效载荷数据的总线封包的创建。然而,在不同实施方案中,处理元件和/或算法可定位在不同结构(例如,除了通信信道控制器120之外的结构)内,并且可影响经由不同总线或链路(例如,除了总线140之外的连接)发送的分组数据。例如,在图1的实施方案中,装置150A还包括处理元件152和一个或多个数据处理算法153。处理元件152可具有以上参照处理元件125的各个实施方案所描述的任何或所有特征,并且同样地,算法153可具有如以上所描述的算法126的任何或所有特征或特性。装置150A可经由总线140向任何其它装置150、经由通信信道控制器120向处理器110或经由总线140 (或未描绘的其它总线或链路)向其它目的地发送数据包。在另一个实施方案中,处理元件(如125)和算法(如126)可定位在内存控制器内,所述内存控制器可被配置用于通过总线140或未描绘的一个或多个其它总线或链路与处理器110、通信信道控制器120和/或装置150进行通信。在一个实施方案中,CPU的处理核可配置成类似或等同于处理元件125,而在另一个实施方案中,图形处理单元(GPU)的处理核可配置成类似或等同于处理元件125。配置成包括这样的处理元件的任何装置、结构或设备还可包括算法126 (或能够接取这类算法)。
[0043]现在转向图2,描绘了若干数据包的框图200。如所示的,图2包括数据包201、211、221和231。在这个实施方案中,这些包分别对应于基本(“常规”)包、已压缩有效载荷数据包、已加密有效载荷数据包和其中有效载荷数据已经转换格式的包。在各个实施方案中,这些包可由处理元件(如125或152)制定并且经由总线(如140)被传输。在一些实施方案中,这些包是遵守PC1-Express规范2.1规则(和/或其它版本的PC1-Express)的事物层包(TLP)。在一些实施方案中,并不是所有所描绘的包字段都可能存在,而在其它实施方案中,可使用未描绘的另外的包字段。在一些实施方案中,某些所描绘的字段可存在于一些包中而不存在其它包中。例如,在一些实施方案中,前缀字段可存在于去向第一装置的第一包中,而在其它、稍后传输的包中被省略。接收装置可能能够根据背景或其它包信息计算出“丢失的”前缀应该是什么。因此,在一些实施方案中可进行前缀和/或报头压缩或省略。根据以上,各个实施方案中的包可包括参照包201、211、221和231所描述的一些或所有字段和特征的任何组合。在一些实施方案中,包字段可以不同于如图2中所示的顺序出现。
[0044]如所示的,包201包括前缀202、报头204、有效载荷206和CRC字段208。在各个实施方案中,前缀202可遵照如2.1版的PC1-Express规范中所规定的TLP前缀,或针对其它通信协议的任何其它前缀规范。在各个实施方案中,报头204可遵照如任何版本的PC1-Express规范中所规定的TLP报头,或针对其它通信协议的任何其它报头规范。在各个实施方案中,前缀202和/或报头204可包括指示数据包所源自的源(装置)、所述数据包所去向的目的地(装置)、所述数据包的通信协议(或格式)、所述包的一个或多个字段的长度(例如,前缀长度、报头长度、有效载荷长度、CRC长度等)、用于所述包的编码的类型的信息;所述包的路由或路径信息;以及其它信息。CRC字段208可包括任何错误校验码,并且在图2的实施方案中,包括对应于包201的全部或其一部分(例如,有效载荷206)的循环冗余校验(CRC)值。这样的值可用于确保无误地传输所述包。在一些实施方案中,可使用不是CRC值的其它错误校验码。
[0045]在一些方面,包211、221和231可与包201不同。然而,包211、221和231的前缀、报头和有效载荷字段可包括以上参照前缀202、报头204和有效载荷206所描述的任何或所有特征,并且包211、221和231也可包括CRC值或其它错误校验码。在各个实施方案中,可代替具有包201的格式的包使用具有包211、221和231的格式的包。具体地,在应用一种或多种指定数据处理算法(如算法126)之后,数据包可具有如211、221、231所呈的形式。
[0046]指示什么算法已经用于修改分组数据的信息可存储在包内在各种各样的位置中。在一些实施方案中,此信息可存储在前缀和/或报头中。在其它实施方案中,此信息可存储在有效载荷数据字段内(尽管所述信息可能并不形成所述有效载荷数据本身的实际部分)。其它包字段或位置也可用于存储指示数据处理算法的信息,并且可随实施方案并且根据总线或链路所使用的特定通信协议而改变。在一些实施方案中,用于TLP有效载荷的算法编码可通过在TLP格式的前缀中设置某些位元来指定。在这些实施方案中,所使用的位元可是“未用”或“保留”位元(未在规范中定义或尚不是TLP协议的一部分的位元),或它们可以是“自定义”或“制造商”位元,所述位元可由终端用户定义或根据TLP或其它协议而为特定制造商保留。在一个实施方案中,指示已经或将要用于修改分组数据的算法的信息可经由除了已修改数据包之外的机制被发送(例如,指示可经由单独的信道或通信路径被发送,或作为未确切地包括在数据包中的控制信息被发送)。
[0047]在图2的实施方案中,包211用于数据压缩。如所示的,包211包括前缀212、报头214、已压缩有效载荷216、有效载荷CRC字段218和包CRC字段219。已压缩有效载荷216表示已经根据至少一种压缩算法被压缩的分组有效载荷数据。因此,已压缩有效载荷216与未压缩有效载荷(如包201的有效载荷206)相比可具有更小的大小(并且包211与包201相比可具有更小的总大小)。用于压缩有效载荷216的算法的指示可存储在包211内的任何位置,包括前缀、报头、有效载荷等。
[0048]包CRC字段219可包括CRC字段208的任何或所有特征。例如,包CRC字段219可包括用于包211的整体或一部分的错误校验码。另一个错误校验字段:有效载荷CRC字段218也可包括在包211中。在图2的实施方案中,字段218可与字段219用于不同的目的。确切地,字段218可以是对应于未修改(未压缩)有效载荷数据的错误校验码。一旦接收了包211,装置就可对字段216中的有效载荷数据进行解压,并且将所述有效载荷数据与字段218中的错误代码值进行比较。因此,有效载荷CRC字段218可由处理元件来创建并且包括对应于未修改有效载荷数据的值,其中字段218中的值可由接收所述包的装置来使用,以确定在根据一种或多种指定算法修改有效载荷数据时是否出现任何错误。包221和231也可具有类似于字段218的有效载荷错误校验字段和类似于字段219的包错误校验字段(尽管图2中未确切地描绘)。
[0049]在图2的实施方案中,包221用于数据加密。如所示的,包221包括前缀222、报头224和已加密有效载荷226。已加密有效载荷226表示已经根据至少一种指定加密算法被加密的分组有效载荷数据。已加密有效载荷226与未修改有效载荷(如有效载荷206)相比可具有更大或更小的大小。用于加密有效载荷226的算法的指示可存储在包221内的任何位置,包括前缀、报头、有效载荷等。被配置用于加密包的处理元件还可被配置用于:交换或利用加密密钥并且使用其它技术来确保接收装置是经授权的和/或能够编码已加密包。
[0050]在图2的实施方案中,包231用于格式转换。如所示的,包231包括前缀232、报头234和格式已转换的有效载荷236。格式已转换的有效载荷236表示已经根据至少一种指定格式转换算法被转换成不同格式(例如,TIFF图像到JPEG图像)的分组有效载荷数据。格式已转换的有效载荷236与未修改有效载荷(如有效载荷206)相比可具有更大或更小的大小。用于转换有效载荷236的算法的指示(例如,原始数据格式和/或新转换的数据格式的指示)可存储在包231内的任何位置,包括前缀、报头、有效载荷等。被配置用于将数据从一种格式转换成另一种格式的处理元件可被配置用于:为响应来自接收装置的请求而这样做。
[0051]现在转向图3,示出计算机可读存储介质300的框图。图3的计算机可读存储介质可包括可由计算机读取以向所述计算机提供指令和/或数据的任何永久性/有形存储介质。例如,计算机可读存储介质可包括存储介质,如磁性或光学介质,例如磁盘(固定的或可移动的)、磁带、CD-ROM或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-Rff或蓝光。存储介质可进一步包括易失性或非易失性内存介质,如RAM(例如,同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3 等)SDRAM、低功率 DDR(LPDDR2 等)SDRAM、Rambus DRAM (RDRAM)、静态RAM(SRAM)等)、ROM、闪存、可经由外围接口如通用串行总线(USB)接口接取的非易失性内存(例如,闪存)等。存储介质可包括微机电系统(MEMS)、全息存储器,以及可经由通信介质如网络和/或无线链路接取的存储介质。
[0052]图3的计算机可读存储介质包括如所示的模块320和340。这些模块可包括任何数量的程序库、源文件、可执行文件、GU1、脚本代码、批处理文件、配置设置和/或配置文件,以及其它文件和/或计算机程序相关的对象。这些代码模块可包括解译自和/或编译自一个或多个不同计算机相关的编程语言,如C、C++、Java、VHDL等。在一些实施方案中,代码模块的多个部分可以是操作系统或其它软件(例如,驱动器、数据格式转化器等)的一部分。此外,注意:在一些实施方案中,模块320的全部或一部分可结合到模块340中,反之亦然。在一些实施方案中,可执行模块320和/或模块340以引起以上参照处理元件如125所描述的任何操作。
[0053]在图3的实施方案中,修改模块320包括以下指令,所述指令可由处理器执行以使得根据一种或多种指定算法(例如,算法126)来修改分组有效载荷数据。因此,在一些实施方案中,修改模块320包括以下指令,所述指令在被执行时,将会根据一种或多种压缩、加密、格式转化和/或其它类型的算法来改变数据。分组操作模块340可包括与以下各项有关的指令:针对一个或多个特定总线或链路通信协议(例如,PC1-Express等),对包进行格式化、发送和/或接收。因此,分组操作模块340可被配置用于:制定用于传输包的一个或多个包字段(如参照图2所讨论的那些);从一个或多个包字段提取信息(例如,提取已修改或未修改有效载荷数据,提取指示什算么法可能已经用于修改数据的信息等);并且创建并发送数据包。
[0054]因此,在一个实施方案中,模块320和/或模块340可由计算装置的处理器来执行,以使得所述计算装置进行以下操作,所述操作包括:接收向联接至所述计算装置的总线的外围装置传递应用程序数据的请求。可从在处理器110的一个或多个核上运行的应用程序或从其它源接收所述请求,并且所述请求可指定将要传递的特定应用程序数据。此应用程序数据可以是图形数据、文本数据等,并且可呈任何数量的格式。应用程序数据可由在处理器上运行的应用程序或由另一个源生成。在各个实施方案中,数据可定位在系统内存(如RAM)和/或一个或多个存储装置内。传递应用程序数据的请求可指定外围装置(如装置150之一)的身份,并且所述外围装置所联接至的总线可被配置用于:根据第一通信协议来传递包。
[0055]在一个实施方案中,模块320和/或模块340可由计算装置的处理器来执行,以使得所述计算装置进行以下操作,所述操作包括:使得根据指定算法来修改应用程序数据,和使得已修改应用程序数据在一个或多个包中经由总线被发送至外围装置。一个或多个包可与一个或多个通信协议兼容(即,可遵循针对所述通信协议的一个或多个规范或标准)。使得修改应用程序数据和使得发送已修改应用程序数据可基于以下指示来进行:外围装置被配置用于经由总线接收根据指定算法被处理的数据包。在一些实施方案中,所述操作可包括向控制器发送应用程序数据,所述控制器被配置用于根据一种或多种指定算法来修改所述应用程序数据。应用程序数据被发送至的控制器可以是通信信道控制器120、内存控制器(例如,包括处理元件如125的一个)或其它类型的数据控制器。
[0056]在一个实施方案中,模块320和/或模块340可由计算装置的处理器来执行,以使得所述计算装置进行以下操作,所述操作包括:向如在上一段中所讨论的那些的控制器发送指示指定数据处理算法的信息。因此,在这个实施方案中,控制器可被配置用于接收这样的信息并且适当地处理有效载荷数据(压缩所述数据、加密所述数据等)。在一些实施方案中,控制器可从处理器110接收指示指定算法的信息,而在其它实施方案中,处理器可从数据包经由总线被发送至的目的地装置接收此信息。例如,计算装置内的硬盘驱动器或其它外围装置可向控制器指示:它能够接收根据一种或多种算法被压缩的有效载荷数据。在这种情况下,控制器可自动地使用压缩来向所述硬盘驱动器发送数据,而没有必要从数据的发送者(如处理器110)接收显式请求(explicit request)。
[0057]在一个实施方案中,向控制器发送应用程序数据可包括:向所述控制器发送其中存储所述应用程序数据的至少一部分的内存位置的指示。例如,不是直接发送应用程序数据,而是控制器或处理元件可接收内存位置和从所述位置检索到的数据的量。
[0058]现在转向图4,示出方法400的一个实施方案的流程图。应注意:在以下所描述方法的各个实施方案中,所描述的元件中的一个或多个可同时、以与所示顺序不同的顺序被执行,或可整体被省略。还可根据需要执行其它另外的元件。此外,在一些实施方案中可仅进行一些方法步骤中的一些部分。在一些实施方案中,方法400的步骤的全部或一部分可由处理元件125和/或通信信道控制器120的任何组合来进行。在其它实施方案中,处理器110或装置150可进行方法400的步骤的全部或一部分,尽管方法400不限于此。
[0059]在步骤410中,仓Il建包括已修改有效载荷数据的一个或多个数据包。这些包可由处理元件如元件125来创建。已修改有效载荷数据可以是根据一种或多种指定处理算法(例如,算法126)来处理所接收数据的结果,并且所述一个或多个包被编址到目的地装置。在步骤420中,处理元件使得经由总线向所述目的地装置传输所述一个或多个所创建包和指示所述一种或多种指定处理算法的信息。指示所述一种或多种指定算法的信息可存储在包前缀中,所述包前缀包括在所述一个或多个数据包中的至少一个中。在其它实施方案中,此信息可独立于所创建的一个或多个数据包被传输或输送。在一个实施方案中,所述一种或多种指定处理算法包括加密算法,并且所述方法进一步包括:基于加密策略来修改有效载荷数据。然而,根据本文中所公开的结构和技术,方法400的许多其它实施方案是可能的,并且可考虑所述许多其它实施方案。
[0060]示例性计算机系统
[0061]现在转向图5,描绘了示例性计算机系统500的一个实施方案。计算机系统500的全部或一部分可用于实施图1中所描绘的系统的任何或所有部分。
[0062]计算机系统500包括处理器子系统580,其经由互连560 (例如,系统总线)联接至系统内存520和/或I/O接口 540。I/O接口 540联接至一个或多个I/O装置550。计算机系统500可以是各种类型的装置中的任何一种,包括但不限于:服务器系统、个人计算机系统(台式电脑、膝上电脑或笔记本电脑)、主机计算机系统(手持式计算机、工作站、网络计算机)、消费装置(如手机、传呼机或个人数据助理(PDA))。计算机系统500还可以是任何类型的网络化外围装置,如存储装置、交换机、调制解调器、路由器等。尽管出于便利而示出单个计算机系统500,但是系统500还可实施为一起操作的两个或更多个计算机系统。
[0063]处理器子系统580可包括一个或多个处理器或处理单元。例如,处理器子系统580可包括联接至一个或多个源控制处理元件的一个或多个处理单元(每个处理单元可具有多个处理元件或处理核)。在计算机系统500的各个实施方案中,处理器子系统580的多个实体可联接至互连560。在各个实施方案中,处理器子系统580 (或580内的每个处理器单元或处理元件)可包括缓存或其它形式的机载内存。
[0064]在各个实施方案中,系统内存520可由处理器子系统580使用,并且包括一个或多个内存元件。系统内存520可使用不同物理内存介质来实施,所述物理内存介质如硬盘存储、软盘存储、可移动磁盘存储、闪存、随机存取存储器(RAM—静态RAM(SRAM)、扩充数据输出(EDO) RAM、同步动态RAM(SDRAM)、双倍数据速率(DDR) SDRAM、RAMBUS RAM等)、只读存储器(ROM—可编程ROM(PROM)、电可擦除可编程ROM (EEPROM)等),诸如此类。计算机系统500中的内存不限于主存储器,如内存520。相反,计算机系统500还可包括其它形式的存储器,如处理器子系统580中的高速缓冲存储器和I/O装置550上的辅助存储器(例如,硬盘驱动器、存储阵列等)。在一些实施方案中,这些其它形式的存储器还可存储可由处理器子系统580执行的程序指令。
[0065]根据各个实施方案,I/O接口 540可以是被配置用于联接至其它装置并与其它装置通信的各种类型的接口中的任何一种。在一个实施方案中,I/o接口 540是从前端总线到一个或多个后端总线的桥接芯片(例如,南桥)。I/O接口 540可经由一个或多个相应总线或其它接口联接至一个或多个I/O装置550。I/O装置的实例包括存储装置(硬盘驱动器、光驱、可移动闪存盘、存储阵列、SAN或它们的相关控制器)、网络接口装置(例如,到局域网或广域网)或其它装置(例如,图形、用户接口装置等)。在一个实施方案中,计算机系统500经由网络接口装置联接至网络。
[0066]由计算机系统(例如,计算机系统500)执行的程序指令可存储在各种形式的计算机可读存储介质上。一般来说,计算机可读存储介质可包括可由计算机读取以向所述计算机提供指令和/或数据的任何永久性/有形存储介质。例如,计算机可读存储介质可包括存储介质,如磁性或光学介质,例如磁盘(固定的或可移动的)、磁带、CD-ROM或DVD-ROM、⑶-R、⑶-RW、DVD-R、DVD-Rff或蓝光。存储介质可进一步包括易失性或非易失性内存介质,如RAM(例如,同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2 等)SDRAM、Rambus DRAM (RDRAM)、静态 RAM(SRAM)等)、ROM、闪存、可经由外围接口如通用串行总线(USB)接口接取的非易失性内存(例如,闪存)等。存储介质可包括微机电系统(MEMS)、全息存储器,以及可经由通信介质如网络和/或无线链路接取的存储介质。
[0067]在一些实施方案中,硬件实施方案可使用硬件生成指令来生成。例如,硬件生成指令可概述一个或多个数据结构,所述结构以高级设计语言(HDL)(如Verilog或VHDL)来描述硬件功能性的行为级或寄存器传送级(RTL)描述。所述描述可由综合工具读取,所述综合工具可综合所述描述以产生网表。网表可包括一组门(例如,定义在综合程序库中),其表示被配置用于实施包修改和/或处理的处理元件(如125和/或152)的功能性。然后可置放或发送网表以产生描述应用于掩模的几何形状的数据组。所述掩模然后可用于各种半导体建造步骤中,以产生对应于一个或多个处理元件和/或控制器(如通信信道控制器120或内存控制器)的一个或多个半导体电路。替代地,根据需要,数据库可以是网表(具有或不具有综合程序库)或数据组。因此,可执行硬件生成指令以使得根据建造领域中的技术人员已知的技术来生成或创建实施上述方法和技术的处理器和/或处理元件。另外,这类硬件生成指令可存储在任何合适的计算机可读介质上。
[0068]因此,在一个实施方案中,公开一种永久性计算机可读存储介质,其包括数据结构,所述数据结构可由可在计算机系统上执行的程序使用,以进行建造集成电路的过程的一部分,所述集成电路包括由所述数据结构所描述的回路,以所述数据结构所描述的回路包括被配置用于联接至总线的处理元件,其中所述处理元件被配置用于:为响应接收去往联接至所述总线的装置的有效载荷数据,根据一种或多种指定处理算法来修改所接收有效载荷数据,创建一个或多个包,其中所述一个或多个包被编址到所述装置并且包括所述已修改有效载荷数据和指示所述一种或多种指定处理算法的信息;并且使得经由所述总线向所述装置传输所述一个或多个包。在再一实施方案中,永久性计算机可读存储介质存储HDUVerilog或⑶SII数据中的至少一种。可在这些实施方案中建造的回路可包括本文所描述的任何或所有特征,并且不限于上一段。
[0069]* * *
[0070]尽管以上已经描述具体实施方案,但是这些实施方案并不意图限制本公开的范围,即使在关于特定特征仅描述单个实施方案的情况下。本公开中所提供的特征的实例意图是说明性而不是限制性的,除非另有说明。以上说明意图涵盖如对受益于本公开的本领域的技术人员来说将会显而易见的此类替代、修改和等效物。
[0071]本公开的范围包括本文(明确地或含蓄地)所公开的任何特征或特征的组合,或其任何概括,不论它是否缓解本文所解决的任何或所有问题。因此,可在本申请(或要求其优先权的申请)的审理过程中,对特征的任何这样的组合制定新的权利要求。具体地,参照所附权利要求书,来自附属权利要求的特征可与独立权利要求的那些特征结合,并且来自相应独立权利要求的特征可以任何适当方式并且并不仅仅以在所附权利要求书中所列举的具体组合的形式来结合。
【权利要求】
1.一种设备,其包括: 处理元件,其被配置用于联接至通信信道; 其中所述处理元件被配置用于:响应于接收去往联接至所述通信信道的装置的有效载荷数据, 根据一种或多种指定处理算法来修改所接收的有效载荷数据; 创建一个或多个包,其中所述一个或多个包被编址到所述装置并且包括所述已修改的有效载荷数据和指示所述一种或多种指定处理算法的信息;并且 使得所述一个或多个包经由所述通信信道被传输至所述装置。
2.如权利要求1所述的设备,其中所述处理元件被配置用于基于以下指示来修改所述有效载荷数据:所述装置被配置用于根据所述一种或多种指定处理算法来处理已修改的数据。
3.如权利要求2所述的设备,其中所述一种或多种指定处理算法包括无损压缩算法,并且其中所述处理元件被配置用于基于以下指示来修改所述有效载荷数据:所述装置被配置用于根据所述无损压缩算法来解压数据。
4.如权利要求2所述的设备,其中所述一种或多种指定处理算法包括加密算法,并且其中所述处理元件被配置用于基于加密策略来加密所述 有效载荷数据。
5.如权利要求1所述的设备,其中所述处理元件被配置用于创建对应于所接收的有效载荷数据的错误校验码,其中所述错误校验码可由所述装置使用,以确定是否无误地修改了所述有效载荷数据。
6.如权利要求1所述的设备,其中对应于所述一个或多个包的包前缀包括所述指示所述一种或多种指定处理算法的信息。
7.如权利要求1所述的设备,其中所述设备是外围装置,其被配置用于通过接取一个或多个计算机可读存储介质来接收所述有效载荷数据。
8.如权利要求1所述的设备,其中所述设备是通信信道控制器,其被配置用于根据第一通信协议通过所述通信信道发送并接收包。
9.如权利要求1所述的设备,其中所述有效载荷数据对应于第一数据格式; 其中所述设备被配置用于:基于所述装置请求呈第二数据格式的数据的指示,根据用于将呈所述第一数据格式的数据转换成呈所述第二数据格式的数据的算法修改所接收的有效载荷数据。
10.如权利要求8所述的设备,其中所述处理元件的至少一部分包括可编程硬件; 其中所述可编程硬件包括用于多种文件格式转换算法的逻辑。
11.一种计算机可读存储介质,其具有存储在其上的指令,所述指令可由计算装置的处理器执行以使得所述计算装置进行包括以下各项的操作: 接收向联接至所述计算装置的通信信道的外围装置传递应用程序数据的请求,其中所述通信信道被配置用于根据第一通信协议来传递包;以及 基于以下指示:所述外围装置被配置用于经由所述通信信道接收根据指定算法所处理的数据包, 使得根据所述指定算法来修改所述应用程序数据;并且 使得所述已修改的应用程序数据在一个或多个包中经由所述通信信道被发送至所述外围装置,其中所述一个或多个包与所述第一通信协议兼容。
12.如权利要求11所述的计算机可读存储介质,其中所述操作进一步包括:向控制器发送所述应用程序数据,所述控制器被配置用于根据所述指定算法来修改所述应用程序数据。
13.如权利要求12所述的计算机可读存储介质,其中所述操作进一步包括:向所述控制器发送指示所述指定算法的信息。
14.如权利要求12所述的计算机可读存储介质,其中向所述控制器发送所述应用程序数据包括:发送关于存储所述应用程序数据的至少一部分的内存位置的指示。
15.如权利要求11所述的计算机可读存储介质,其中所述指定算法是无损压缩算法,并且其中所述第一通信协议是PC1-Express。
16.—种方法,其包括: 处理元件响应于接收去往联接至还联接至所述处理元件的通信信道的装置的数据而: 创建包括已修改有效载荷数据的一个或多个数据包,其中所述已修改有效载荷数据是根据一种或多种指定处理算法来处理所接收的数据的结果,其中所述一个或多个包被编址到所述装置;并且 使得所述一个或多个包和指示所述一种或多种指定处理算法的信息经由所述通信信道被传输至所述装置。
17.如权利要求16所述的方法,其中包括在所述一个或多个数据包的至少一个中的包前缀包括所述指示所述一种 或多种指定数据处理算法的信息。
18.如权利要求16所述的方法,其中所述一种或多种指定处理算法包括加密算法,并且其中所述方法进一步包括基于加密策略来修改所述有效载荷数据。
19.一种永久性计算机可读存储介质,其包括数据结构,所述数据结构可由可在计算机系统上执行的程序使用,以进行建造集成电路的过程的一部分,所述集成电路包括由所述数据结构所描述的回路,以所述数据结构描述的所述回路包括: 处理元件,其被配置用于联接至通信信道; 其中所述处理元件被配置用于:响应于接收去往联接至所述通信信道的装置的有效载荷数据, 根据一种或多种指定处理算法来修改所接收的有效载荷数据; 创建一个或多个包,其中所述一个或多个包被编址到所述装置并且包括所述已修改的有效载荷数据和指示所述一种或多种指定处理算法的信息;并且 使得所述一个或多个包经由所述通信信道被传输至所述装置。
20.如权利要求19所述的永久性计算机可读存储介质,其中所述存储介质存储HDL、Verilog或⑶SII数据中的至少 一种。
【文档编号】H04L12/70GK103765853SQ201280041994
【公开日】2014年4月30日 申请日期:2012年8月28日 优先权日:2011年8月29日
【发明者】史蒂芬·考 申请人:Ati科技无限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1