用于网络技术的多流交织的制作方法

文档序号:15742754发布日期:2018-10-23 22:34阅读:166来源:国知局
用于网络技术的多流交织的制作方法

本申请要求于2016年3月9日递交的、名称为“Multi-Stream Interleaving for Network Technologies”的美国临时申请第62/305,662号的优先权的利益,其整个内容以引用方式被并入本文。



背景技术:

较新的汽车模型一般被装备有多个最终用户电子设备。这些电子设备可以包括但不限于,压缩光盘(CD)播放器、数字多功能光盘(DVD)播放器、MP3播放器、无线电装置、扬声器、全球定位系统(GPS)或导航系统、调制解调器、远程信息处理模块、周边传感器和/或照相机、显示屏和巡航控制系统。诸如以太网之类的网络可以被用来将控制该最终用户设备的软件或应用与该最终用户设备本身连接起来。应用可以输出数据流,然后其被分组化(即,转换成数据分组)并且通过该网络被发送给适当的最终用户设备。

针对该最终用户设备或应用可以有某些服务质量(QoS)、延迟或其它性能或优先级要求。例如,导航系统可以具有某些分组传送速率要求,使得该系统可以显示精确的定位信息。以太网音频视频桥接(AVB)是可以被用来建立QoS的新兴标准和用于处理诸如汽车网络系统之类的计算网络中的数据流的互操作性标准。



技术实现要素:

各个实施例包括在分组化设备上实现的用于向来自计算网络中的数据流的分组添加时间戳的方法。各个实施例可以包括接收多个数据流,根据所述多个数据流中的第一数据流构建第一分组,确定用于输出满足所述第一数据流的一个或多个参数的所述第一分组的第一时间戳的值,将所述第一时间戳添加到所述第一分组,以及将所述第一分组移交给所述计算网络中的网络设备。

一些实施例还可以包括将所述第一数据流与所述多个数据流中的第二数据流相组合,根据所组合的数据流构建组合的分组,其中所组合的分组包括来自所述第一数据流和所述第二数据流的数据,确定用于输出满足所述第一数据流和所述第二数据流的一个或多个参数的所组合的分组的第二时间戳的值,将所述第二时间戳添加到所组合的分组,以及将所组合的分组移交给所述网络设备。

在一些实施例中,所述网络设备可以是以太网设备。在一些实施例中,所述多个数据流的每个数据流是由所述计算网络的多个应用中的应用生成的。在一些实施例中,所述一个或多个参数可以包括以下各项中的至少一项:所述第一数据流的服务质量要求、所述第一数据流的延迟要求、所述第一数据流的最小分组传送速率和所述第一数据流的数据类型。在一些实施例中,由所述处理器可访问的共享数据结构可以存储来自所述多个数据流的数据和所述第一数据流的所述一个或多个参数。

各个实施例包括在网络设备上实现的用于在计算网络中输出分组的方法。各个实施例可以包括接收根据第一数据流生成的第一分组,其中,所述第一分组包括满足所述第一数据流的一个或多个参数的第一时间戳,根据多个接收的分组中的每个分组的时间戳对包括所述第一分组的所述多个接收的分组重新排序,以及当所述第一时间戳到期时输出所述第一分组。

在一些实施例中,所述网络设备可以是以太网设备。在一些实施例中,所述一个或多个参数可以包括以下各项中的至少一项:所述第一数据流的服务质量要求、所述第一数据流的延迟要求、所述第一数据流的最小分组传送速率和所述第一数据流的数据类型。在一些实施例中,所述第一分组可以是从所述计算网络中的处理器接收的,并且所述方法还包括:接收包括所述第一数据流的多个数据流,根据所述第一数据流构建所述第一分组,确定用于输出满足所述第一分组的所述一个或多个参数的所述第一分组的所述第一时间戳的值,将所述第一时间戳添加到所述第一分组,以及将所述第一分组移交给所述网络设备。

一些实施例还可以包括将所述第一数据流与所述多个数据流中的第二数据流相组合,根据所组合的数据流构建组合的分组,其中所组合的分组包括来自所述第一数据流和所述第二数据流的数据,确定用于输出满足所述第一数据流和所述第二数据流的一个或多个参数的所组合的分组的第二时间戳的值,将所述第二时间戳添加到所组合的分组,以及将所组合的分组移交给所述网络设备。在一些实施例中,所述多个数据流中的每个数据流可以是由所述计算网络的多个应用中的应用生成的。在一些实施例中,由所述处理器可访问的共享数据结构存储来自所述多个数据流的数据和所述第一数据流的所述一个或多个参数。

另外的实施例包括分组化组件,其包括处理器,所述处理器被配置有处理器可执行指令,以执行上文总结的方法的操作。另外的实施例包括具有被存储在其上的处理器可执行软件指令的非暂时性处理器可读存储介质,所述处理器可执行软件指令被配置为使分组化组件的处理器执行上文总结的方法的操作。另外的实施例包括分组化组件,其包括用于执行上文总结的方法的操作的功能的单元。

附图说明

被并入本文并且构成本说明书的一部分的附图,示出了示例性的实施例,并且与本文给出的一般性描述和具体实施方式一起用来解释权利要求的特征。

图1是用于根据各个实施例使用的计算网络的功能框图。

图2是计算网络中的传统数据流处理的功能框图。

图3是根据各个实施例的计算网络中的基于软件的数据流交织的功能框图。

图4是根据各个实施例的计算网络中的基于软件的数据流交织的另一个功能框图。

图5是根据各个实施例的计算网络中的基于硬件的数据流交织的功能框图。

图6是示出了根据各个实施例的用于在计算网络中对流进行交织的方法的过程流程图。

图7是示出了根据各个实施例的用于在计算网络中向来自数据流的分组添加时间戳的方法的过程流程图。

图8是示出了根据各个实施例的用于在计算网络中输出数据分组的方法的过程流程图。

具体实施方式

将参照附图详细地描述各个实施例。只要有可能,将贯穿附图使用相同的参考标记来指代相同的或相似的部件。对特定示例和实现方式的提及是出于说明性的目的的,并非旨在限制所写描述或权利要求的范围。

如本文使用的,术语“计算网络”指代以下各项中的任一项或全部:汽车设备网络、住宅设备网络、商业设备网络或将各个电子设备和应用连接在一起的其它网络。如本文使用的,术语“最终用户设备”、“计算设备”和“电子设备”指代以下各项中的任一项或全部:CD播放器、DVD播放器、MP3播放器、无线电装置、扬声器、GPS或导航系统、调制解调器、远程信息处理模块、周边传感器和/或照相机、显示屏、巡航控制系统、防抱死制动系统、蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理、台式计算机、膝上型计算机、平板计算机、服务器、智能本、智能手表、掌上型计算机、无线电子邮件接收机、具有多媒体互联网功能的蜂窝电话、无线游戏控制器和可以被并入到计算网络中的类似的个人或企业电子设备。

计算网络(诸如在汽车中发现的那些计算网络)可以使用某个标准(诸如以太网AVB)来维持该计算网络中的应用和最终用户设备的互操作性和QoS标准。该以太网AVB标准的某些简档可以预期数据流分组应该按照精确的间隔来定期地发送以满足QoS要求。例如,A类车辆简档预期按照125微秒的精确的间隔发送的8000分组/秒。很多中央处理单元(CPU)周期可能被浪费用于传送这样的高分组速率。这导致该CPU总是活跃并且可能消耗电池电量并且造成散热问题,尤其是在汽车环境中。

某些网络控制器(诸如以太网控制器)可以包括高级硬件特征,例如,基于定时器的分组发出特征,其允许CPU向网络硬件提交一束具有描述符的分组。该网络硬件可以检查该描述符中的时间戳并且在介质访问控制(MAC)层上发送该分组。但是,这些特征解决了传送单个数据流时的问题并且可能不能在支持多个数据流的系统中提供优势。

概括来讲,各个实施例提供用于在计算网络中对多个数据流进行交织的系统和方法。在基于软件的方法中,计算网络中的一个或多个分组化线程可以从多个应用接收多个数据流并且比较该多个数据流中的每个数据流的一个或多个参数,例如,QoS要求和数据流的数量。该一个或多个分组化线程可以基于该比较来选择该多个数据流中的第一数据流,根据该第一数据流来构建分组,并且将该分组传送给网络设备驱动器。

在基于硬件的方法中,该计算网络中的一个或多个分组化线程可以从多个应用接收多个数据流,根据该多个数据流来构建分组,并且向每个分组添加时间戳。例如,该分组化线程可以为包括时间戳的每个分组创建描述符。该时间戳可以表示用于向适当的最终用户设备发送该数据分组的时间延迟。该一个或多个分组化线程可以将该分组移交给网络设备,该网络设备可以扫描接收到的分组的描述符中的所有描述符并且在它们各自的时间戳到期时输出分组中的每个分组。该基于硬件的交织方法可以简化软件栈,因为该分组化线程不必须执行交织。

图1是适合于实现各个实施例的计算网络100的功能框图。除了其它方面,计算网络100可以是汽车网络系统或住宅或商业网络系统的一部分。计算网络100可以被实现为以太网或另一种网络技术。

计算网络100可以包括一个或多个应用102a-102n。应用102a-102n可以是控制计算网络100中的各个最终用户设备114a-114k的应用。例如,一个应用可以是控制一个或多个扬声器的音频应用。在另一个示例中,一个应用可以是控制导航设备的GPS应用。在一些实施例中,针对每一个最终用户设备114a-114k,可以有一个应用102a-102n。在替代的实施例中,一些应用可以控制一个以上的最终用户设备,或者一个以上的应用可以控制同一最终用户设备。

应用102a-102n可以通过应用编程接口(API)库106与网络软件104交互。该网络软件104可以是,例如以太网AVB软件。网络软件104可以使用分组化线程108a-108n将从应用102a-102n生成的数据格式化成数据分组。例如,该应用102a-102n可以调用API库106中的函数调用以使用缓冲区指针和要被发送的数据的大小来启动该分组化过程。在一些实施例中,针对每个应用102a-102n,可以有一个分组化线程108a-108n。网络软件104可以将该数据分组传递给控制网络设备硬件112的网络设备驱动器110。例如,该网络设备硬件112可以是以太网硬件,并且该网络设备驱动器110可以是以太网驱动器。该网络设备驱动器110可以将由网络软件104生成的数据分组通过该网络设备硬件112移交给最终用户设备114a-114k。应用102a-102n、网络软件104和网络设备驱动器110可以被存储在存储器116中。该存储器116可以是非暂时性计算机可读存储介质,其存储包括应用102a-102n、网络软件104和网络设备驱动器110的处理器可执行指令。计算网络100中的处理器118可以被耦合至存储器116,并且执行被存储在存储器116中的指令和应用。计算网络100可以具有图1中未示出的另外的组件。此外,诸如网络设备驱动器110和/或分组化线程(参见图3)之类的一些组件可以使用专用硬件(例如,专用缓冲器或寄存器,和/或除了计算网络内的另一个处理器之外或代替其的专用处理器)来实现。为了包含这样的实施例,可以对在处理器和/或专用硬件中实现一些操作进行提及。

图2示出了计算网络200中的数据流处理的传统方法的功能框图。计算网络200可以被实现为以太网或另一种网络技术,并且除了其它方面可以是汽车网络系统、住宅网络系统或商业网络系统的一部分。计算网络200可以是图1中示出的计算网络100的子集。

计算网络200可以包括控制计算网络200中的各个最终用户设备的一个或多个应用102a-102n。每个应用102a-102n生成被发送给分组化线程108a-108n的数据流。该数据流可以是随着数据被应用102a-102n生成而变化大小的数据的突发。分组化线程108a-108n可以定期地唤醒以接收每个应用102a-102n的数据流并且根据该数据流创建数据分组202a-202n。例如,应用102a可以具有如在汽车网络系统中是典型的8,000分组/秒的分组数据速率。分组化线程108a可以每125微秒唤醒一次来从应用102a接收数据流的输入以创建分组202a。出于说明的目的,数据分组202a可以包括图2中示出的第一分组1(1)、第二分组1(2)和第三分组1(3)。以类似的方式,分组化线程108b可以从应用102b接收数据流的输入并且创建分组202b,该分组202b可以包括第一分组2(1)和第二分组2(2)。分组化线程108n可以从应用102n接收数据流的输入并且创建分组202n,该分组202n可以包括第一分组n(1)和第二分组n(2)。

由分组化线程108a-108n生成的数据分组202a-202n可以被移交给网络设备驱动器110,该网络设备驱动器110可以生成输出204,该输出204被移交给该网络设备硬件并且依次传递给连接到计算网络200的最终用户设备。输出204可以是随着从分组化线程108a-108n接收到数据分组的该数据分组的序列。分组化线程108a-108n可以独立于彼此地生成数据分组202a-202n,并且因此输出204可以如图2中示出地被随机化。应用102a-102n中的一个或多个应用可以具有某些QoS、延迟或其它性能或优先级要求。例如,应用102a可以具有8,000分组/秒的分组传送速率,而应用102b可以具有4,000分组/秒的分组传送速率。因此,针对输出204中的属于应用102b的每一个数据分组,应该有两个属于应用102a的数据分组。但是,输出204的随机化性质可能不满足应用102a和102b的分组传送速率。

各个实施例包括用于对多流计算网络中的数据分组进行排序以提高该网络内的数据分组的序列化,同时满足每个数据流的各个QoS、延迟、性能或优先级要求的方法。图3示出了根据各个实施例的计算网络300中的基于软件的数据流交织。计算网络300可以被实现为以太网或者另一种网络技术,并且除了其它方面可以是汽车网络系统,或住宅或商业网络系统的一部分。计算网络300可以是图1中示出的计算网络100的子集。

计算网络300可以包括控制计算网络300中的各个最终用户设备的一个或多个应用102a-102n。每个应用102a-102n可以生成数据流302a-302n,数据流302a-302n可以被发送给由计算网络300中的分组化组件执行的分组化线程304。因此,单个分组化线程304可以对来自所有应用102a-102n的数据流进行分组化。分组化线程304可以访问共享数据结构306,该共享数据结构306存储从输入数据流302a-302n接收的数据。共享数据结构306可以根据由分组化线程304本地分配的存储器来创建。分组化线程304还可以访问数据流参数308。数据流参数308可以包括但不限于,数据流的总数、每个数据流的服务质量要求、每个数据流的延迟要求、其分组被移交给该网络设备驱动器的最新数据流、每个数据流的最小分组传送速率和每个数据流的数据类型(例如,音频、视频)。数据流参数308可以被存储在共享数据结构306中。

分组化线程304可以使用数据流参数308来确定用于根据被存储在共享数据结构306中的数据生成数据分组的顺序。例如,分组化线程304可以根据数据流参数308确定输出310应该如图3中示出的包括来自每个应用102a-102n的第一数据分组,并且然后是来自每个应用102a-102n的第二数据分组等等。在另一个示例中,分组化线程304可以根据数据流参数308确定应用102a具有8,000分组/秒的分组传送速率,而应用102b具有4,000分组/秒的分组传送速率,在这种情况下,针对输出310中的属于应用102b的每一个数据分组,应该有两个属于应用102a的数据分组。

分组化线程304还可以向每个数据分组添加描述符。该描述符可以包括关于该数据分组的各种元数据,并且可以包括时间戳。该时间戳可以指示用于将该数据分组移交给最终用户设备的延迟。例如,125微秒的数据分组时间戳指示该网络可以在将该分组发送给该最终用户设备之前保持该数据分组达125微秒。

分组化线程304可以例如使用指向所生成的数据分组的指针来将输出310中的排序后的分组移交给网络设备驱动器110。该网络设备驱动器可以将该分组移交给计算网络硬件,该计算网络硬件可以将该分组发送给适当的最终用户设备。以此方式,分组化线程304通过接收数据流302a-302n作为输入并且通过对数据流的分组进行交织产生排序的输出310来执行多流交织,使得每个数据流302a-302n的各个QoS、延迟、性能、优先级和其它要求被满足。

在一些实施例中,可以有多个分组化线程,其一起工作以执行多流交织。这在图4中示出,图4示出了用于根据各个实施例的计算网络400中的基于软件的数据流交织的另一种方法。计算网络400可以被实现为以太网或另一种网络技术,并且除了其它方面,可以是汽车网络系统或住宅或商业网络系统的一部分。计算网络400可以是图1中示出的计算网络100的子集。

计算网络400可以包括控制计算网络400中的各个最终用户设备的一个或多个应用102a-102n。每个应用102a-102n生成数据流402a-402n,数据流402a-402n被发送给由计算网络400中的分组化组件执行的一个或多个分组化线程404a-404m。一些分组化线程可以执行针对一个应用的分组化;例如,分组化线程404m被示出对来自数据流402n的数据进行分组化。其它分组化线程可以执行针对一个以上的应用的分组化,例如,在分组化线程404a中示出的,其对来自数据流402a和402b的数据进行分组化。在一些实施例中,分组化线程404a可以将来自多个数据流的数据组合成一个分组。例如,应用102a和102b均可以控制同一扬声器,因此分组化线程404a可以组合来自数据流402a和402b的数据。每个分组化线程404a-404m访问共享数据结构406,每个分组化线程404a-404m可以将从它们各自的数据流402a-402n接收的数据存储到共享数据结构406中。

每个分组化线程404a-404m还可以访问数据流参数408。分组化线程404a-404m可以比较来自每个数据流的参数以确定下一个应该被分组化的数据流。分组化线程404a-404m可以按照基于对数据流参数408的比较的某个顺序进行分组化。

例如,分组化线程404a可以确定来自数据流402a和402b的数据应该被组合和分组化(例如,分组1(1)+2(1)),并且然后在输出410a中被移交给网络设备驱动器。然后,分组化线程404m可以确定下一个要被生成的分组应该是来自数据流402n(例如,分组n(1))的。然后,分组化线程404a可以暂停并且分组化线程404m可以将来自数据流402n的分组n(1)生成到输出410m中。

因此,分组化线程404a-404m可以相互抢占以按照通过比较数据流参数408确定的顺序来生成分组。输出410a-410m可以被移交给网络设备驱动器110。网络设备驱动器110可以将来自分组化线程404a-404m的输出410a-410m组合成组合的输出412,该组合的输出412保存如由分组化线程404a-404m生成的分组的顺序。然后,该组合的输出412可以被移交给网络设备硬件并且被依次传递给适当的最终用户设备。

替代地或者除了如由分组化线程304或404a-404m执行的基于软件的多流交织之外,在一些实施例中,该网络硬件可以被配置为在分组被传送给最终用户设备之前对这些分组进行重新排序。这一替代方案在图5中示出,图5示出了根据各个实施例的计算网络500中的基于硬件的数据流交织。计算网络500可以被实现为以太网或另一种网络技术,并且除了其它方面可以是汽车网络系统或住宅或商业网络系统的一部分。计算网络500可以是图1中示出的计算网络100的子集。

计算网络500可以包括控制计算网络500中的各个最终用户设备的一个或多个应用102a-102n。每个应用102a-102n生成被发送给由计算网络500中的分组化组件执行的一个或多个分组化线程108a-108n的数据流。每个分组化线程108a-108n可以独立于其它分组化线程生成数据分组502a-502n。分组化线程108a-108n可以向每个数据分组添加描述符,该描述符可以包括时间戳,该时间戳表示用于向适当的最终用户设备发送该数据分组的时间延迟。该时间戳可以是基于由应用102a生成的数据流的QoS、延迟、性能或优先级要求的。例如,由应用102a生成的数据流可以具有8,000分组/秒的数据传送速率。分组化线程108a可以确定针对根据应用102a的数据流生成的每个分组的满足8.000分组/秒的数据传送速率的时间延迟。这些时间延迟可以作为时间戳被添加到每个分组。例如,分组化线程108a可以向分组化线程108a根据应用102a的数据流创建的每个连续的数据分组的时间戳添加125微秒的增量。

数据分组502a-502n可以被移交给网络设备驱动器110,网络设备驱动器110可以随机输出504排序的数据分组。

网络设备驱动器110的输出504可以被网络设备硬件506接收作为输入。网络设备硬件506可以包括时间戳重新排序电路508。时间戳重新排序电路508可以基于每个数据分组的时间戳对输出504重新排序。时间戳重新排序电路508可以具有用于在数据分组的时间戳尚未到期时存储数据分组的缓存器。例如,分组1(3)可以在分组2(2)之前被移交给网络设备硬件506。但是,分组1(3)可以具有500微秒的时间戳而分组2(2)可以具有250微秒的时间戳。在那种情况下,时间戳重新排序电路508可以保持两个分组直到它们各自的时间戳到期为止。例如,分组2(2)可以被保持达250微秒然后输出,而分组1(3)可以被保持达500微秒并且在分组2(2)之后输出。网络设备硬件506可以发送输出510,该输出510是根据每个数据分组的时间戳对输出504中的数据分组的重新排序。因此,输出510表示类似于由输出310和412表示的基于软件的多流交织的基于硬件的数据流的多流交织。例如,网络设备硬件506并且特别是时间戳重新排序电路508可以执行由图3-4中的分组化线程304和404a-404m执行的交织。图5中的分组化线程108a-108n不必须执行交织并且可以按照任何顺序对数据流进行分组化。

图6示出了根据各个实施例的用于计算网络中基于软件的多流交织的方法600。方法600可以由计算网络中的执行一个或多个分组化线程(例如,分组化线程304、404a-404m)的分组化组件的处理器和/或专用硬件(例如,处理器118)来实现。该计算网络可以被实现为以太网或另一种网络技术,并且除了其它方面可以是汽车网络系统、住宅网络系统或商业网络系统的一部分。

在框602中,该处理器和/或专用硬件可以接收由多个应用生成的多个数据流。这些应用可以控制该计算网络中的最终用户设备。例如,在汽车计算网络中,这些应用可以控制诸如CD播放器、DVD播放器、MP3播放器、无线电装置、扬声器、GPS或导航系统、周边传感器和/或照相机、显示屏、巡航控制系统、防抱死制动系统的设备。每个应用可以生成数据流,该数据流可以被分组化并且通过该计算网络被发送给最终用户设备。这些数据流可以由该计算网络软件中的一个或多个分组化线程来接收。这些数据流中的数据可以被存储在对于所有分组化线程可访问的共享数据结构中。该共享数据结构可以是,例如数组。

在可选框604中,该处理器和/或专用硬件可以使一个或多个分组化线程组合数据流中的一个或多个数据流。例如,当两个应用控制单个最终用户设备时,来自这两个应用的数据流可以被组合成单个分组。

在框606中,该处理器和/或专用硬件可以使该一个或多个分组化线程比较多个数据流中的每个数据流的一个或多个参数。所述参数可以包括但不限于,数据流的总数、每个数据流的服务质量(QoS)要求、每个数据流的延迟要求、其分组被移交给该网络设备驱动器的最新数据流、每个数据流的最小分组传送速率和每个数据流的数据类型(例如,音频、视频)。所述参数可以被存储在对于所有分组化线程可访问的存储器中,例如,被存储在共享数据结构中。

在框608中,该处理器和/或专用硬件可以使一个或多个分组化线程基于对数据流参数的比较在多个数据流中选择一个数据流进行分组化。例如,该一个或多个分组化线程可以确定所选择的数据流分组比其它数据流具有更高的QoS要求,并且因此第一数据流应该接收生成并且移交数据分组的优先级。在另一个示例中,该一个或多个分组化线程可以确定所选择的数据流分组具有8,000分组/秒,或者每125微秒一个数据分组的分组传送速率,在这种情况下,每125微秒该数据流应该接收生成并且移交数据分组的优先级。

在框610中,该处理器和/或专用硬件可以使该一个或多个分组化线程根据所选择的数据流构建分组。在一些实施例中,该一个或多个分组化线程还可以向该分组添加描述符。该描述符可以包括时间戳,该时间戳指示用于将该分组移交给适当的最终用户设备的延迟。

在框612中,该处理器和/或专用硬件可以使该一个或多个分组化线程将该分组移交给网络设备驱动器。例如,指向被存储在存储器中的数据分组的指针可以被发送给网络设备驱动器。该网络设备驱动器可以将该分组转发给网络设备硬件,该网络设备硬件将该分组传送给由该数据分组所属于的应用控制的最终用户设备。该处理器和/或专用硬件可以使该一个或多个分组化线程然后在框606中比较多个数据流中的每个数据流的一个或多个参数,以确定下一个应该被分组化的数据流(因此在框606-612之间的循环中操作)。以此方式,方法600为一个或多个分组化线程提供用于对计算网络中的多个数据流进行交织并分组化以满足每个数据流的各个参数和/或要求的方式。

图7示出了根据各个实施例的可以用软件和/或硬件实现的用于在计算网络中执行多流交织的方法700。方法700可以由计算网络中的执行一个或多个分组化线程(例如,分组化线程304、404a-404m)的分组化组件的通用处理器和/或专用硬件内的处理器(例如,处理器118)来实现。该计算网络可以被实现为以太网或另一种网络技术,并且除了其它方面可以是汽车网络系统、或住宅或商业网络系统的一部分。

在框702中,该处理器和/或专用硬件可以接收由多个应用生成的多个数据流。这些应用可以控制该计算网络中的最终用户设备。例如,在汽车计算网络中,这些应用可以控制诸如CD播放器、DVD播放器、MP3播放器、无线电装置、扬声器、GPS或导航系统、周边传感器和/或照相机、显示屏、巡航控制系统、以及防抱死制动系统的设备。每个应用可以生成数据流,该数据流可以被分组化并且通过该计算网络被发送给最终用户设备。数据流可以由该计算网络软件中的一个或多个分组化线程来接收。数据流中的数据可以被存储在对于所有分组化线程可访问的共享数据结构中。该共享数据结构可以是,例如数组。

在可选框704中,该处理器和/或专用硬件可以使一个或多个分组化线程组合数据流中的一个或多个数据流。例如,当两个应用控制单个最终用户设备时,来自这两个应用的数据流可以被组合成单个分组。

在框706中,该处理器和/或专用硬件可以使该一个或多个分组化线程根据多个数据流中的数据流构建分组。被选择用于分组化的数据流可以是基于该数据流中的数据的到达时间的。例如,首先向该一个或多个分组化线程发送数据的数据流可以被选择用于分组化。

在框708中,该处理器和/或专用硬件可以使该一个或多个分组化线程确定用于输出满足该数据流的一个或多个参数的分组的时间戳的值。该数据流的参数可以包括但不限于,该数据流的QoS、延迟、性能或优先级要求,以及该数据流的各种属性,例如,数据类型和数据大小。例如,数据流可以具有8,000分组/秒的最小数据传送速率。该分组化线程可以确定针对该数据流的每个连续的数据分组的125微秒的时间延迟可以满足该最小数据传送速率。在另一个示例中,来自具有较高QoS或优先级要求的数据流的分组在它们被输出之前可以具有较短的时间戳。在其它示例中,某些分组数据类型(例如,导航数据)可以具有比其它分组数据类型(例如,音频数据)更短的时间戳。如果该数据流已经与其它数据流相组合,则该处理器可以确定满足所有分量数据流的参数的时间戳的值。

在框710中,该处理器和/或专用硬件可以使该一个或多个分组化线程向该分组添加时间戳。该时间戳可以被包括在被添加到该分组的描述符中,该描述符可以包括该分组的各种元数据。

在框712中,该处理器和/或专用硬件可以使该一个或多个分组化线程将该分组移交给网络设备,例如,以太网设备。该分组可以从该一个或多个分组化线程通过网络设备驱动器被移交给该网络设备。该网络设备可以输出所接收的分组,参考图8描述了用于其的方法。以此方式,方法700提供了用于向根据数据流构建的分组添加时间戳以便满足每个数据流的各个参数和/或要求的方式。

图8示出了根据各个实施例的可以在网络硬件中实现的用于在计算网络中输出数据分组的方法800。方法800可以由网络设备(例如,网络设备硬件506)来实现。该计算网络可以被实现为以太网或另一种网络技术,并且可以是例如汽车网络系统、住宅或商业网络系统的一部分。

在框802中,该网络设备可以从计算网络中的分组化组件(例如,处理器118)接收分组。该分组可以是由该分组化组件执行的该计算网络软件中的一个或多个分组化线程根据该计算网络中的数据流生成的,参考图7描述了用于其的方法。该计算网络中的多个应用可以生成多个数据流。该应用可以控制该计算网络中的最终用户设备。例如,在汽车计算网络中,该应用可以控制诸如CD播放器、DVD播放器、MP3播放器、无线电装置、扬声器、GPS或导航系统、周边传感器和/或照相机、显示屏、巡航控制系统、以及防抱死制动系统的设备。每个应用可以生成数据流,该数据流可以被分组化并且通过该计算网络被发送给最终用户设备。

该数据流可以由该计算网络软件中的一个或多个分组化线程来接收,其根据数据流生成分组。该分组化线程可以向每个分组添加时间戳。该时间戳的值可以被确定为满足根据其生成分组的该数据流的一个或多个参数。该数据流的参数可以包括但不限于,该数据流的QoS、延迟、性能或优先级要求,以及该数据流的各种属性,例如,数据类型和数据大小。例如,数据流可以具有8,000分组/秒的最小数据传送速率。该分组化线程可以确定针对该数据流的每个连续的数据分组的125微秒的时间延迟可以满足该最小数据传送速率。在另一个示例中,来自具有较高QoS或优先级要求的数据流的分组在它们被输出之前可以具有较短的时间戳。在其它示例中,某些分组数据类型(例如,导航数据)可以具有比其它分组数据类型(例如,音频数据)更短的时间戳。如果该数据流已经与其它数据流相组合,则时间戳的值可以满足所有分量数据流的参数。

在框804中,该网络设备可以基于每个分组的时间戳对接收的分组重新排序。该网络设备可以包括用于存储从该一个或多个分组化线程接收的分组的缓存器。随着分组被接收并且缓存,该网络设备可以根据每个分组的时间戳对分组重新排序。例如,该分组可以按照时间戳的长度排序,其中最小的时间戳被排序在第一位,因为该分组将首先到期并且将在到期时被输出。

在框806中,该网络设备可以在时间戳到期时输出该分组。该网络设备可以具有用于将接收的数据分组存储在缓存器中、检查输入数据分组的时间戳以及保持该数据分组直到时间戳到期为止的电路。例如,如果分组的时间戳是125微秒,则该网络设备可以保持该分组直到已经过去125微秒为止,并且然后将该分组发送给适当的最终用户设备。该网络设备可以通过重复框802到806中的操作来根据每个分组的时间戳继续接收、重新排序和输出分组。以此方式,方法800为网络硬件提供了用于在计算网络中输出来自数据流的分组以满足每个数据流的各个参数和/或要求的方式。

上述方法描述和过程流程图仅仅作为说明性的示例来提供,并非旨在要求或暗示各个实施例和实现方式的操作必须按照呈现的顺序来执行。如将由本领域技术人员意识到的是,上述实施例和实现方式中的操作的顺序可以按照任何顺序来执行。诸如“其后”、“然后”、“接下来”等的词语不旨在限制操作的顺序;这些词语仅仅被用来引导读者从头到尾阅读方法的描述。此外,任何以单数形式,例如使用冠词“一(a)”、“一个(an)”或“所述(the)”对权利要求要素的提及不被解释为将该要素限制为单数形式。

结合本文公开的实施例和实现方式描述的各种说明性的逻辑框、单元、电路和算法操作可以被实现为电子硬件、计算机软件或这两者的组合。为了清楚地说明硬件和软件的这种可互换性,本文对各种说明性的组件、方框、单元、电路和操作已经围绕其功能进行了总体描述。至于这样的功能是被实现为硬件还是软件,取决于特定的应用和对整个系统施加的设计约束。熟练的技术人员可以针对每个特定的应用,以变通的方式实现所描述的功能,但是,这样的实现决策不应当被解释为导致背离权利要求的范围。

被用来实现结合本文公开的实施例和实现方式描述的各种说明性的逻辑、逻辑框、单元和电路的硬件可以被实现在各种各样的处理器、或处理器、专用硬件和电路的组合中、或由其来执行。可以实现各个实施例的处理器的示例包括被设计为单独地或与专用硬件和电路结合地执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合。通用处理器可以是微处理器,但是在替代方案中,该处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以被实现为计算网络的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP内核的一个或多个微处理器,或者任何其它这样的配置。替代地,一些操作或方法可以由具有专用于给定功能的组件(例如,缓存器、数据总线和/或门阵列)和电路的形式的专用硬件来执行。

在一个或多个示例性实施例和实现方式中,描述的功能可以用硬件、软件、固件,或其任意结合的方式来实现。如果用软件的方式来实现,则功能可以作为一条或多条指令或代码被存储在非暂时性计算机可读存储介质或非暂时性处理器可读存储介质上。本文公开的方法或算法的操作可以被体现在处理器可执行软件单元中,该处理器可执行软件单元可以存在于非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可以被用来存储具有指令或数据结构形式的期望的程序代码并且可以由计算机或处理器存取的任何存储介质。通过示例而非限制的方式,这样的非暂时性计算机可读或处理器可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、闪存、CD-ROM或其它光盘存储,和磁盘存储或其它磁存储设备。如本文使用的,磁盘和光盘包括CD、激光光盘、光盘、DVD、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。本文描述的存储器的组合也被包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可以作为代码和/或指令的一个或任何组合或集合存在于非暂时性处理器可读存储介质和/或计算机可读存储介质上,其可以被并入到计算机程序产品中。

提供前面对各个实施例和实现方式的描述,以使得本领域任何技术人员能够实现或使用本权利要求。对这些实施例的各种修改对于本领域技术人员来说将是显而易见的,并且本文定义的一般性原理可以在不背离本权利要求的范围的情况下被应用于一些实施例。因此,本公开内容不旨在被限制到本文示出的实施例和实现方式,而是要被授予与所附权利要求和本文公开的原理和新颖性特征相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1