CN101877674A - 用于大量信道的硬件加速 - Google Patents

用于大量信道的硬件加速 Download PDF

Info

Publication number
CN101877674A
CN101877674A CN201010180966XA CN201010180966A CN101877674A CN 101877674 A CN101877674 A CN 101877674A CN 201010180966X A CN201010180966X A CN 201010180966XA CN 201010180966 A CN201010180966 A CN 201010180966A CN 101877674 A CN101877674 A CN 101877674A
Authority
CN
China
Prior art keywords
channel
module
hardware
network
message
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.)
Pending
Application number
CN201010180966XA
Other languages
English (en)
Inventor
詹姆斯·布莱斯德尔
阿德里安·特纳
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.)
Mocana Corp
Original Assignee
Mocana 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 Mocana Corp filed Critical Mocana Corp
Publication of CN101877674A publication Critical patent/CN101877674A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Hardware Redundancy (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及一种维护信道的自由列表的方法,该方法包括:接收信道请求;提供来自该自由列表的第一信道标识符,该自由列表具有起始指针和末端指针;更新该起始指针,以指向该自由列表的下一个信道;接收信道超时提示;将超时信道添加到该自由列表的末端;以及更新该末端指针,以指向该自由列表的末端。本发明还涉及一种处理信道消息的密码操作的方法。

Description

用于大量信道的硬件加速
本申请是申请号为200580033016.1、申请日为2005年7月29日、发明名称为“用于大量信道的硬件加速”的中国专利申请的分案。
技术领域
概括地说,本发明涉及网络通信,具体地说,本发明涉及管理网络中大量的信道,在该网络中,硬件资源用于某些分组。
背景技术
网络可以在有多个设备的情况下运行。这些设备可以是同类型的,也可以是多种不同类型的,可能需要区别对待。通常情况下,多个设备就需要多个相应的信道,每个设备要对应至少一个信道,或者更多的信道。管理这些信道会是一个难题。此外,将网络设备与有关的信道相匹配也可能是一个难题。
网络是实时运行的。因此,当访问一个信道时,必须快速找到该信道。优选情况下,找到信道的时间是可以预测的。当存在大量信道时,访问特定信道上的信息可能会很慢。此外,允许附加的信道也会变得比较困难。因此,针对信道信息提供快速和可预测的访问时间是很有用的。
此外,在某些情况下,硬件加速可以用于处理多个分组。然而,基于中断驱动来管理硬件加速可以造成驱动器将正等待必要硬件(例如密码加速器)的大量分组丢弃。硬件中断是不可预测的,跟分组传输时间或分组延时相比,硬件处理时间往往比较长。
人们期望让驱动器等待硬件资源,并在等待资源期间拒绝到来的分组。或者,驱动器可以对到来的分组使用有限的缓冲器,但这可能在等待硬件资源期间造成溢出,从而导致拒绝到来的分组。因此,不需要驱动器等待硬件中断或互斥的硬件资源管理是很有用处的。
发明内容
本文描述了用于大量信道的硬件加速的方法、装置和系统。
在一个实施例中,本发明是一种维护信道的自由列表的方法,该方法包括:接收信道请求;提供来自该自由列表的第一信道标识符,该自由列表具有起始指针和末端指针;更新该起始指针,以指向该自由列表的下一个信道;接收信道超时提示;将超时信道添加到该自由列表的末端;以及更新该末端指针,以指向该自由列表的末端。
在另一实施例中,本发明是一种处理信道消息的密码操作的方法,该方法包括:接收加密的消息;使用消息长度和类型、消息编码和封装类型、一个或多个资源队列等待时间、资源的状态和资源的容量,确定要应用哪些密码资源;将该消息放在选择的密码资源中:应用该选择的密码资源;以及在信道上传递解密的消息。
将在所述的各种实施例中举例说明本发明,本发明的精神和保护范围仅由所附权利要求书界定。
附图说明
下面将通过各种具体实施例对本发明进行描述,本发明的精神和保护范围仅由所附权利要求书限定。
图1示出了具有轴辐式拓扑结构的网络的实施例;
图2示出了散列表的实施例;
图3示出了在散列表中查找信道项的过程的实施例;
图4示出了在阵列中查找信道的过程的实施例;
图5示出了信道项阵列的实施例;
图6示出了信道信息的数据结构的实施例;
图7示出了由机器组成的网络的实施例;
图8示出了机器或计算机的实施例;
图9示出了蜂窝网络的实施例;
图10示出了维护信道信息阵列的过程的实施例;
图11示出了信道信息扩展阵列的一个实施例;
图12示出了信道信息扩展阵列的替代实施例;
图13示出了维护自由列表的过程的实施例;
图14示出了机器可读介质的实施例;
图15示出了自由列表的实施例;
图16示出了管理信道消息的密码的过程的实施例;
图17示出了可以实现图16的过程的一组部件的实施例;
图18示出了将作业分配给硬件模块的过程的实施例;
图19示出了管理分组的过程的实施例;
图20示出了管理分组的系统堆栈的实施例;
图21示出了包括硬件加速的用于管理分组的系统的实施例;
图22示出了如何表示作业的实施例;
图23示出了信道列表的实施例;
图24示出了如何表示驱动器的实施例;
图25示出了包括分配器和一组驱动器的系统的实施例;
图26示出了作业列表的替代实施例;
图27示出了包括硬件加速的用于管理分组的系统的替代实施例。
在各附图中,相同的附图标记表示相同的元件。
具体实施方式
下面结合不同范围的系统、装置和方法,对本发明进行描述和说明。除了在发明内容部分中描述的本发明的多个方面外,通过参考附图和阅读以下的详细描述,本发明的其它方面也会变得显而易见。本文描述了用于大量信道的硬件加速的方法、装置和系统。
在一个实施例中,本发明是一种方法。该方法包括接收网络中通信信道的信道标识符。该方法还包括检查在信道项阵列中与该信道标识符相对应的项。信道项阵列用通信信道的信道标识符作索引。该方法还包括使用信道信息,操作与该信道标识符相对应的信道,该信道信息来自信道项阵列中与该信道标识符相对应的项。
在另一实施例中,本发明是一种装置。该装置包括一个处理器。该装置还包括与处理器相连的存储器。该装置还包括与处理器相连的网络接口。该处理器用于接收网络中通信信道的信道标识符。该处理器还用于检查在信道项阵列中与该信道标识符相对应的项。信道项阵列用通信信道的信道标识符作索引。该处理器还用于使用信道信息,操作与该信道标识符相对应的信道,该信道信息来自信道项阵列中与该信道标识符相对应的项。
在另一个实施例中,本发明是一种装置。该装置包括接收信道标识符的模块。该装置还包括检查在信道项阵列中与该信道标识符相对应的项的模块。信道项阵列用通信信道的信道标识符作索引。该装置还包括使用信道信息操作与该信道标识符相对应的信道的模块,该信道信息来自信道项阵列中与该信道标识符相对应的项。
在另一个实施例中,本发明是包括指令的机器可读介质。指令可由处理器执行。指令使处理器执行一种方法。该方法包括接收网络中通信信道的信道标识符。该方法还包括检查在信道项阵列中与该信道标识符相对应的项。信道项阵列用通信信道的信道标识符作索引。该方法还包括使用信道信息,操作与该信道标识符相对应的信道,该信道信息来自信道项阵列中与该信道标识符相对应的项。
在另一个实施例中,本发明是一种方法。该方法包括监视入站队列中的硬件作业。该方法还包括检测硬件部件的中断。该方法还包括从入站队列到硬件部件传输作业。该方法还可以包括从硬件部件到出站队列传输完成的作业。该方法还可以包括提供出站队列中的作业的完成的指示。
在另一个实施例中,本发明是一种方法。该方法包括接收一组信道中一个信道上的分组。该方法还包括确定分组由硬件部件进行处理。该方法还包括将分组置于硬件部件的分配器的入站队列中。该方法还可以包括从硬件部件的分配器的出站队列中接收完成的分组。该方法还可以包括确定完成的分组在分配器的出站队列中是可用的。
图1示出了具有轴辐式拓扑结构(hub and spokes topology)的网络的实施例。网络100可以表示多种不同类型的网络。例如,网络100可以表示由工作站(120)和服务器110组成的网络。因此,工作站120b、120c、120d、120e、120g、120h、120j,120k以及120l都耦合到或连接到服务器110,从而实现通过服务器110以及因此通过网络100进行通信。工作站120a、120f和120i都没有和服务器110相连,因此没有集成到网络100中。需要理解的是,每个工作站120均可以通过信道连接或耦合到服务器110。因此,维持每个工作站的信道的状态对网络100的运行是至关重要的。
散列表是可用于维持网络中信道状态的结构的一个例子。图2示出了散列表的实施例。散列表200包括散列桶(hash bucket)210、220、230、240、250、260、270、280和290。每个散列桶包括由多个项组成的列表。为了基于标识符找到一项,计算该标识符相应的散列值,并在散列桶的项列表中寻找对应的项,该散列桶由散列值进行标识。通常,单个的散列值是由很多不同的标识符所产生的,因此它只是项的列表的必要条件。
如图所示,项列表215对应于散列桶210,与此类似,项列表225对应于散列桶220,项列表235对应于散列桶230,项列表245对应于散列桶240,项列表255对应于散列桶250,项列表265对应于散列桶260,项列表275对应于散列桶270,项列表285对应于散列桶280,项列表295对应于散列桶290。列表215、235、245、255、275和295的项均多于三个,如图中的省略号所示。列表225和列表285均只包括两项,而列表265则包括三项。因此,搜寻散列表所需的时间既取决于散列桶列表的长度又取决于期望项在列表中的位置而变化。通常,散列表的搜寻时间是o(logn)。
散列表的搜索过程指明了搜索散列表可能会比较缓慢的原因。虽然在某些应用中o(logn)的时间是所期望的,但对于实时运行来说还是太缓慢了。图3示出了在散列表中查找信道项的过程的实施例。图3所示的过程和所示及所描述的其它过程均包括一组模块,这组模块可以以各种方式来实现,从而能够并行或串行执行。过程300包括:接收标识符;在散列表中找到对应项;找到对应项的信道信息;操作对应的信道。
在模块310中,接收信道的标识符。在模块320中,根据标识符计算散列值。在模块330中,根据散列值搜索到散列表列表。在模块340中,搜索散列表列表中的项。在模块350中,在散列表列表的多项中的一项内搜索到了信道的信道信息。在模块360,根据散列表项的信道信息,对信道进行操作。
相比之下,使用信道项阵列(或信道项的指针)可以在O(1)时间(恒定时间)内对信道信息进行访问。在实时运行中,掌握运行的恒定且因此可预测的时间是特别重要的。图4示出了在阵列中查找信道的过程的实施例。过程400包括:接收标识符;将其索引入阵列中;找到信道信息并对信道进行操作。
在模块410中,接收信道的标识符。在模块425中,使用标识符直接索引信道信息数据结构的阵列。在模块455中,在阵列中找到信道的相关信道信息。在模块465中,对相关的信道进行操作。因此,如果蜂窝电话在网络中通过信道发送信息,则基于由蜂窝电话提供的信道的标识符,网络可以在恒定的时间内找到信道信息数据结构中的控制信息。
图5示出了信道项阵列的实施例。阵列500包括:阵列表510,具有和每个标识符相对应的项;信道信息数据结构520。阵列表510的项可以是信道信息数据结构520的指针,或者阵列表510的项可以是实际的信道信息数据结构520。图6示出了信道信息的数据结构的实施例。数据结构600是可用作数据结构520的数据结构的例子或实施例。在一个实施例中,数据结构600包括信道标识符610、信道状态620、信道计时器630和用户标识符640。如图所示,在数据结构600中还可以包括其它信息。其它实施例可以包括不同的信息,或者以不同的方式组织这些其它的实施例。此外,单一网络中的不同类型的信道可以具有不同的相关数据结构。
下面对图7-8的描述是为了概述适于执行上述和下述本发明方法的计算机硬件和其它操作部件,而不是为了限制应用环境。相似地,计算机硬件和其它操作部件可以适于作为上述本发明的多个装置中的一部分。本发明可用其它计算机系统配置(包括手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC(计算机)、迷你计算机以及大型计算机等待)来实现。本发明亦可实现在分布式计算环境中,在分布式计算环境中,由通过通信网络链接的远程计算设备来执行任务。
图7示出了通过网络705(例如互联网)连接到一起的几个计算机系统。这里所用的术语“互联网”是指由使用某些协议(例如tcp/ip协议)以及其它可能的协议(例如组成万维网(web)的超文本标记语言(html)文件所用的超文本传输协议(HTTP))的多个网络组成的网络。对于本领域普通技术人员来说,互联网的物理连接、互联网的这些协议以及通信过程都是公知的。
通常,由互联网服务供应商(isp)(例如isp 710和715)提供对互联网705的访问。客户端系统(例如客户端计算机系统730、740、750以及760)上的用户通过互联网服务供应商(例如isp 710和715)获得对互联网的访问。对互联网的访问使客户端计算机系统的用户能够交换信息、收发电子邮件以及浏览诸如html之类格式的文件。这些文件往往由web服务器(例如被认为是位于互联网“上”的web服务器720)提供。尽管在计算机系统不是isp的情况下该系统也能建立并连接到互联网,但通常这些web服务器是由isp(例如isp 710)提供的。
Web服务器720通常是至少一个计算机系统,该计算机系统是作为服务器计算机系统,其使用万维网的多个协议工作,并连接到互联网。可选地,web服务器720可以是提供对客户端系统的互联网进行访问的isp的一部分。所示的web服务器720连接到服务器计算机系统725,该服务器计算机系统725自身连接到可被视为一种媒体数据库形式的web内容795。虽然图7中示出了两个计算机系统720和725,但web服务器系统720和服务器计算机系统725也可以是一个计算机系统,该计算机系统具有不同的软件部件,这些软件部件提供web服务器功能和由下面将进一步描述的服务器计算机系统725所提供的服务器功能。
客户端计算机系统730、740、750和760均可以使用适当的web浏览软件来浏览由web服务器720所提供的html页面。Isp 710通过可以被视为客户端计算机系统730一部分的调制解调器(modem)接口735来提供到客户端计算机系统730的互联网连接。客户端计算机系统可以是个人计算机系统、网络计算机、web电视(tv)系统,或其它诸如此类的计算机系统。
相似地,尽管如图7所示,客户端系统740、750和760的连接并不相同,但isp 715提供了这三个计算机系统的互联网连接。客户端计算机系统740通过调制解调器接口745进行连接,而客户端计算机系统750和760是局域网(lan)的一部分。虽然图7所示的接口735和745统称为“调制解调器”,但这些接口均可以是模拟调制解调器、isdn调制解调器、电缆调制解调器、卫星传输接口(例如“直接PC(direct pc)”)或用于把计算机系统连接到其它计算机系统的其它接口。
客户端计算机系统750和760通过网络接口755和765(可以是以太网接口或其它网络接口)连接到lan 770。lan 770也连接到网关计算机系统775,后者提供用于局域网的防火墙和其它互联网相关服务。网关计算机系统775连接到isp 715来提供客户端计算机系统750和760的互联网连接。网关计算机系统775可以是常规的服务器计算机系统。同样,web服务器系统720也可以是常规服务器计算机系统。
或者,服务器计算机系统780可以通过网络接口785直接连接到lan 770,从而向客户端750和760提供文件790和其它服务,而无需通过网关系统775连接到互联网。
图8示出了可用作客户端计算机系统或服务器计算机系统或可用作web服务器系统的常规计算机系统的一个例子。这种计算机系统可以用于执行互联网服务供应商(例如isp 710)的许多功能。计算机系统800通过调制解调器或网络接口820与外部系统相交互。需要注意的是,调制解调器或网络接口820可以被视为计算机系统800的一部分。接口820可以是模拟调制解调器、isdn调制解调器、电缆调制解调器、令牌环接口、卫星传输接口(例如“直接PC(directpc)”)或用于把计算机系统连接到其它计算机系统的其它接口。
计算机系统800包括处理器810,后者可以是诸如英特尔(intel)奔腾(pentium)微处理器或摩托罗拉(motorola)power pc微处理器之类的常规微处理器。存储器840通过总线870连接到处理器810。存储器840可以是动态随机存取存储器(dram)并且也可以包括静态随机存取存储器(sram)。总线870将处理器810连接到存储器840、非易失性存储设备850、显示控制器830以及输入/输出(i/o)控制器860。
显示控制器830以常规方式控制显示设备835(其可以是阴极射线管(crt)或液晶显示器(lcd))上的显示。输入/输出设备855可以包括键盘、磁盘驱动器、打印机、扫描仪和包括鼠标和其它指向设备的其它输入输出设备。显示控制器830和i/o控制器860可以使用常规的公知技术来实现。数字图像输入设备865可以是数码照相机,其连接到i/o控制器860,从而使数码照相机的图像能够输入到计算机系统800中。
非易失性存储设备850通常是磁硬盘、光盘或另一种形式的大容量数据存储设备。在计算机系统800的软件执行过程中,这些数据中的一些数据往往通过直接的存储器访问处理写入存储器840中。本领域普通技术人员可以立即识别出术语“机器可读介质”或“计算机可读介质”包括任何类型的存储设备,该存储设备可由处理器810访问,并包括对数据信号进行编码的载波。
计算机系统800是具有不同结构的多种可能的计算机系统中的一个例子。例如,基于intel处理器的个人计算机往往有多条总线,其中一条总线可以是用于周边设备的输入/输出(i/o)总线,一条总线可以直接连接处理器810和存储器840(往往被称作“存储器总线”)。多个总线通过桥接器部件连接到一起,桥接器部件可以根据不同的总线协议执行任何必要的转换。
网络计算机是可用于本发明的另一类计算机系统。网络计算机通常并不包括硬盘或其它大容量存储设备,而是将由处理器810执行的可执行程序从网络连接加载到存储器840中。本领域公知的web电视系统虽然可能缺少图8所示的某些特征(例如特定的输入或输出设备),但其也被认为是一种根据本发明的计算机系统。典型的计算机系统通常包括至少一个处理器、存储器以及连接存储器和处理器的总线。
另外,计算机系统800由包括文件管理系统的操作系统软件来控制,该文件管理系统可以例如是作为操作系统软件一部分的磁盘操作系统。具有其相关的文件管理系统软件的操作系统软件的一个例子是位于华盛顿州雷德蒙(Redmond)的微软(Microsoft)公司所出品的被称作Windows(视窗)
Figure GSA00000114422000101
的操作系统家族产品及其相关的文件管理系统。具有其相关的文件管理系统软件的操作系统软件的另一个例子是LINUX操作系统及其相关的文件管理系统。文件管理系统通常存储于非易失性存储器850中,并且使处理器810执行操作系统所需的各种动作,以输入输出数据,并将数据存储在存储器中,包括将文件存储在非易失性存储器850中。
详细描述的某些部分将以计算机存储器内数据比特操作的算法和符号表示的方式给出。这些算法描述和表示是数据处理领域普通技术人员很有效地将他们工作的实质传达给本领域中其他技术人员的常用手段。这里所构思的算法通常是能够得出期望结果的由操作构成的自相一致的序列。这些操作需要对物理量进行物理控制。通常情况下,虽然非必要,但这些量是以电或磁信号的形式出现的,可以存储、传输、组合、比较或者控制这些信号。主要由于常用的缘故,有时方便地将这些信号称作比特、值、元素、符号、字符、条目、数字等等。
然而,应注意的是,所有这些术语和相似的术语是与适合的物理量相关联的并且仅是这些量的方便的标记。除非以下论述中特别指出或非常明显,否则应该理解的是,本文中论述所使用的诸如“处理”、“计算”、“运算”、“确定”或“显示”之类的术语是指计算机系统或相似的电子计算设备的动作和处理,计算机系统或相似的电子计算设备控制并将由计算机系统寄存器和存储器内的物理(电子)量表示的数据转换为相似地由计算机系统存储器、寄存器、或其它这种信息存储设备、传输或显示设备内的物理(电子)量表示的其它数据。
在某些实施例中,本发明也涉及用于执行本文操作的装置。该装置可以根据所需的目的而特别构造,或者可以包括通用计算机,通用计算机可由存储于计算机中的计算机程序有选择性地激活或重新配置。这种计算机程序可以存储在计算机可读存储介质中,该计算机可读存储介质例如、但不限于:包括软盘、光盘、cd-rom和磁光盘的任何类型的磁盘,只读存储器(rom),随机读取存储器(ram),eprom,eeprom,磁或光卡,或适于存储电子指令的其它任何类型的介质,这些存储介质均连接到计算机系统总线上。
本文所提供的算法和画面并不内在地关联于任何特定的计算机或其它装置。对根据本发明教义的程序可使用各种通用系统,或也可以构造专用的装置,来更方便地执行所需的方法步骤。下文描述中,将显示各种这些系统的所需结构。另外,本发明并不是结合任何特定的编程语言来进行描述的,因此可以使用多样的编程语言来实施各种实施例。
可以使用诸如图7和8所示的网络和机器之类的各种网络和机器。另一种网络可以是蜂窝网络。图9示出了蜂窝网络的实施例。网络900包括中央网络、基站以及蜂窝设备。中央网络930把呼叫从一个基站910寻径到另一个基站910或寻径到无线网络940。基站910把呼叫寻径到附近蜂窝设备920或对来自附近蜂窝设备920的呼叫进行寻径。因此,蜂窝设备可以与其它蜂窝设备进行通信,或与连接到其它网络上的设备进行通信。
如图所示,基站910a、910b、910c、910d和910e均连接到中央网络930,该中央网络930连接到无线网络940。蜂窝设备920a、920b、920c和920d均连接到基站910e。相似地,蜂窝设备920e和920f连接到基站910d。同样地,蜂窝设备920g和920h连接到基站910c。此外,蜂窝设备920i和920j连接到基站910b。需要注意的是,这种网络中的信道可以特定用于单独的设备,在某些情况下,某些设备可以具有多个通信信道。因此,中央网络930处用于设备920a的信道可以不同于用于设备920b的信道,尽管这两者都连接到基站910e并因此连接到中央网络930。此外,诸如基站910d之类的基站可以有其自己的一组信道,例如,用于设备920e的第一信道和用于设备920f的第二信道。
由于网络的各种通信信道是在恒定或偶发基础上进行使用的,因此维持这些信道的相关信息就变得很必要。图10示出了维护信道信息阵列的过程的实施例。图10的过程1000是围绕着确定信道是否已经超时而进行说明的,但其也可以用于其它形式的维护,例如各种状态参数的更新。该过程:包括检查信道;确定其是否已经超时;将超时的信道移动到自由列表中;移动到下一信道。
在模块1010中,过程起始(或重新起始)于第一信道。在模块1020中,过程检查信道计时器或信道数据结构阵列中的超时信息。这可以使用多种方式来实现,包括:将时间戳和当前时间进行比较;将计时器字段和预定极限进行比较;或者确定最近是否使用了信道。在模块1030中,确定模块1020的检查是否指明了信道已经超时。这可能取决于信道类型而变化,可以标记某些信道使其绝不会超时。如果信道已经超时,则在模块1040中,通过例如将信道加入由末端指针所指向的项的指针,将信道加入自由列表。如果信道没有超时,或者在将超时信道加入自由列表后,在模块1050处,过程移向下一个信道。过程随后在模块1060中检查是否存在下一个信道(或者例如如果刚刚通过了阵列的末端)。如果下一个信道存在,则在模块1020中,检查下一个信道。如果信道不存在,则在模块1010中,过程重新从第一信道起始。
虽然阵列可能允许许多信道(在随机存取存储器介质中)具有恒定访问时间,但其很难扩展。图11示出了信道信息扩展阵列的一个实施例。扩展阵列1100包括阵列项1110和第二阵列项1140。由数据项1110中的项指向数据结构1120。阵列项1110的最后一项的指针1130指向第二阵列项1140。第二阵列项1140的项指向数据结构1150,因此实现了第二(或更多)组信道。
或者,可以通过在存储器中简单地直接扩展阵列,来更好地保留阵列的简单随机存取特性。图12示出了信道信息扩展阵列的替代实施例。阵列1200包括阵列项1210和数据结构1220。部分1260代表阵列1200原始部分的阵列项1210和数据结构1220。部分1270代表阵列1200的扩展部分。因此,部分1260可以对应于诸如阵列500之类的阵列,而部分1270代表容纳附加信道的扩展部分。
虽然可以扩展阵列来容纳信道请求,但在信道从使用中被释放后重新使用阵列项可能会更高效。图13示出了维护自由列表的过程的实施例。过程1300包括根据自由列表提供使用的信道并将未使用的信道加入自由列表中的过程。在模块1310中,接收到了信道请求。在模块1320中,提供了来自自由列表(例如来自起始指针)的第一信道标识符。在模块1330中,更新起始指针,以指向自由列表的下一个信道,并有效地将第一信道从自由列表中移除。从模块1330,过程可以移动到模块1310或模块1340。
在模块1340中,接收到了信道超时指示或通知。在模块1350中,例如,通过将由末端指针指向的数据结构中的索引修改为超时信道的索引,将超时信道加入列表的末端。在模块1360中,随后更新末端指针,来指向自由列表的新末端或最后一个信道。从模块1360起,过程可以移动到模块1340或1310。需要注意的是,可以将该过程视为两个相互关联但独立执行的过程,一个过程包括模块1310、1320和1330,另一个过程包括模块1340、1350和1360。
当使用机器来执行过程时,机器可以从介质中获得指示(其可以执行指令)。图14示出了机器可读介质的实施例;介质1400可以是各种类型的介质,并且可以是单个介质或单个介质的多个分离部分或多个介质。介质1400包括信道维护、自由列表维护、新信道分配、标识符接口和操作接口,以及控制模块。
新信道分配1410可以包括提供信道数据结构的扩展阵列的模块和根据信道自由列表提供新信道的模块这两者中的一个或两个。自由列表维护1450可以包括将超时/过期信道加入自由列表的模块,并且还可以包括根据自由列表提供信道的模块。标识符接口1420能够接收信道的标识符。信道维护模块1430例如通过确定信道是否超时或已经超出容许利用级别,来维护信道。操作接口1440提供了与网络部分的接口,该网络操作由阵列跟踪的信道。控制模块1460控制其它模块和接口的操作(1410、1420、1430、1440和1450)。
如上所述,可以维持可用或可分配信道的自由列表。图15示出了自由列表的实施例。列表1500是数据结构1530的链表,其中每个数据结构包括信道标识符和指向下一个数据结构的指针。起始指针1510指向列表1500的第一结构1530(本实施例中所示的1530a)。因此,起始指针1510可以指明最远的临近使用的信道。末端指针1520指向列表1500的最后结构1530(本实施例中所示的1530n)。如图所示,列表1500中链接了结构1510a、1510b、1510c和1510d。列表随后继续,最终到达结构1530m和1530n。需要注意的是,对于列表的最后结构即结构1530n,在一个实施例中分配给其指针的是Null(空)值。
本文所论述的网络中可以使用各种设备。例如,上面结合网络提及了多种蜂窝电话和计算机。但是,也可以将其它的智能设备或应用用于网络。此外,设备可以是移动的(例如,机动车或建筑机械)或者固定的(例如灯柱或空调设备)。另外,网络可以具有多种拓扑和结构,从而使信道可以表示例如通过网络或直接连接的一条路径。
当操作某些实施例的信道时,密码术可能会造成性能瓶颈。因此,使用所有的可用密码资源来管理密码是有益的。图16示出了管理信道消息的密码的过程的实施例。过程1600包括:接收消息;确定应用什么可用的密码资源;应用密码资源;将消息沿着信道传递。在模块1610中,接收到了消息。在此时,信道往往是已知的,并且正在操作信道。但是,在某些实施例中,信道信息也可以是加密的。
在模块1620中,确定应用什么密码资源。例如,基于硬件的密码引擎可以管理加密和解密,软件模块可以用于例如加密、解密或握手/密钥交换。通常情况下,可以用硬件或软件来实现密码资源。可以基于多种因素,例如消息长度和类型(例如内容类型)、可用资源的队列长度、可用资源的状态(例如可用或禁用)、可用资源的容量和其它因素,来选择使用哪种资源(例如硬件/软件)来用于密码操作。
在模块1630中,基于模块1620的判断结果,消息在选定资源的队列中排队等候。需要注意的是,队列可以是一个消息(将要操作的消息)的队列或多个消息的队列,例如该由多个消息组成的队列可以带有或不带有附加的优先级特征。在模块1640中,所选择的密码资源对消息(到达队列的适合部分的消息)进行操作。操作可以包括加密、解密、密钥交换或查找、或其它密码操作。此外,可以由消息的类型以及与其相关的编码或封装信息来部分地确定操作。在模块1650中,将消息沿着信道传递,从而与整体系统性能保持一致。
可以以多样的方式实现图16的过程1600。图17示出了可以实现图16的过程的一组部件的实施例。系统1700包括硬件和软件密码资源、消息评估模块以及密码判优器,这些都可以与消息交互。
硬件密码加速器1710是密码资源的硬件实现,其能够实现加密、解密和其它密码功能。硬件密码加速器1710包括队列1720(其可以作为传统队列或待处理的单个消息/分组的项来实现)。相似地,软件密码模块1730可以包括加密、解密和其它密码功能。软件密码模块1730可以作为例如一组模块或软件库和功能来实现。队列1740可以是模块1730的单个队列或一组队列(例如,对应于多个不同功能中的每一种功能)。此外,队列1740可以只是一个指向处理数据的指针。
消息评估器1750是评估消息1760的属性(举例)的模块,来确定对消息1760(例如指定了何种格式)和消息1760的其它属性进行何种类型的密码处理。通常情况下,消息1760包括长度参数1770(例如有效载荷长度)。密码判优器1790是从硬件密码加速器1710、软件密码模块1730、消息评估器1750和消息1760接收状态信息的模块。判优器1790随后处理该信息,从而确定应使用什么密码资源来对消息1760进行密码操作。该确定是基于长度1770、队列1720和1740的状态、以及来自加速器1710、模块1730和评估器1750的其它状态信息来进行的。需要注意的是,可由其它资源或图17所示的资源来执行诸如密钥交换或密钥查找等操作。
硬件加速实现方式
在一些实施例中,硬件加速可用于处理某些分组。然而,基于中断驱动来管理硬件加速会使驱动器将等待必要硬件(例如密码加速器)的大量分组丢弃。人们期望驱动器能够等待硬件资源,并在等待资源期间拒绝到来的分组。或者,驱动器可以使用有限的缓冲器来处置到来的分组,但这可能在等待硬件资源期间造成溢出,从而导致拒绝到来的分组。因此,不需要驱动器等待硬件中断或互斥的硬件资源管理是很有用处的。
分配流程或分配模块可用于管理硬件模块的分组或作业,而无需驱动器来特别服务硬件中断。图18示出了将作业分配给硬件模块的过程的实施例。过程1800包括:监视入站作业队列;检查中断;将完成的作业传输到出站作业队列;选择入站作业以进行处理。
模块1810包括监视入站作业队列,例如确定工作是否在等待、当存在多个队列时作业在哪个队列中等待。模块1810可以包括对入站(以及可能的出站)队列进行维护。在模块1820中,确定硬件模块(或部件)是否发出了一个中断。如果没有的话,则过程继续在模块1810中等待。如果有的话,则在1830中,将来自硬件模块的完成的作业置入适合的出站队列中。
在模块1840中,确定作业实际上是否在入站队列中等候。如果不是的话,流程在模块1850中过程监视入站队列,实质上等候入站作业。如果是的话,则在模块1860中,选择硬件模块处理的下一个作业。如果只有一个作业,则假定选择该作业。若有多个队列包括作业,则可以基于优先级考虑或基于所做出的选择的顺序(例如,队列列表中的下一个),来进行选择。将作业提供给硬件部件以进行处理,过程进入模块1810中。
因此,分配器可以向诸如密码加速器之类的硬件部件提供一批作业,其中,到来的作业处于到来队列中,离去的作业处于离去队列中。分配器可以管理由硬件发出的任何中断。此外,分配器不需要知道与作业的类型或硬件部件的类型相关的信息。
驱动器可以以各种方式与分配器交互,该分配器操作图18和图19示出的管理分组的过程的实施例的过程。例如,过程1900代表了驱动器的过程(简化的形式)。过程1900包括:接收分组;确定是否需要硬件加速;如需要则将分组置于分配器队列中;确定是否完成了硬件加速;处理完成的分组。
在模块1910中接收分组。在模块1920中,确定分组是否需要硬件加速(例如密码加速或图形加速)。如果是的话,则在模块1930中,驱动器将分组置于分配器的队列中(分配器的作业的入站队列)。随后,分组可预期得到硬件加速处理,而不考虑到来的分组。
如果无需加速,或在将分组置入队列后,在模块1940中,确定对分组的硬件加速是否完成。需要注意的是,在模块1940中所确定的分组无需和在模块1910中接收的分组相同,例如,前者可以是在模块1910中先前接收的分组。如果对分组的硬件加速已经完成了,则在模块1950中,通过例如将完成的分组传输给周边系统的另一部分,来对完成的分组进行处理。最后,过程返回到模块1910,以等待另一个分组的接收。
需要注意的是,对来自硬件部件的完成的分组的检测可以作为单独过程的一部分而出现。因此,模块1940可以由驱动器分开实现。此外,在检查由硬件加速器完成的分组时,多个分组可以等待驱动器,从而能够对多个分组进行处理。另外,无需硬件加速的分组可以立即被处理,而不用例如检查完成的硬件加速。
各种系统可以采用或执行所述的方法来管理硬件加速。图20示出了管理分组的系统堆栈的实施例。堆栈2000是系统堆栈,后者包括软件和硬件部件(或软件和硬件接口的软件实现)。堆栈200包括tls/ssl部件2005和ssh/ire部件2010,其均可以是例如驱动器。特别的是,部件2005可以是例如插口(socket)驱动器。部件2005和2010覆盖于tcp部件2020上。Tcp部件2020可以是例如传输控制协议部件。
Tcp部件2020覆盖于ip部件2030上,后者可以是例如互联网协议模块。Ip部件2030覆盖于ipsec部件2040(例如ip安全部件)上。在某些实施例中Ipsec部件2040覆盖于ip分段(fragmentation)部件2050上。Ip分段部件2050覆盖于以太网驱动器部件2060上。
以太网驱动器部件2060覆盖于分配器模块2070上,后者可以是例如硬件模块的分配器。在堆栈2000的底部是硬件2080,后者包括密码加速器2085和/或其它硬件加速部件或模块等等。
在某些实施例中可以将堆栈2000理解为占据了系统中三个不同的区域。部件2005、2010和2020是系统的应用空间或用户空间的一部分。部件2030、2040、2050和2060是系统核心空间的一部分。部件2070、2080和2085是系统固件/硬件部分的一部分。此外,需要注意的是,上述的覆盖还可以指各种部件和数据路径指示之间的接口,而不是指例如物理上的覆盖或堆叠。
人们期望诸如驱动器2005之类的驱动器和诸如加速器2085之类的硬件加速器之间的通信,从而无需驱动器2005等待响应。图21示出了包括硬件加速的用于管理分组的系统的实施例。在这些部件之间,当监控到中断时,分配器2070对一个或多个队列进行处理。因此,驱动器2005无需等待硬件中断,当有作业时加速器2085即可接收到作业。
分配器2070包括中断处理机2075,后者监控加速器2085的中断。加速器2085在作业完成或检测到无作业要管理时,发出中断。分配器2070随后从诸如队列2110之类的入站作业队列中检查入站作业。分配器2070例如通过还检查入站作业队列2140,从而在多个队列中检查入站作业。此外,分配器2070可以以各种方式区分来自多个队列中的作业的优先级。
此外,分配器2070可以将完成的作业(或其表征)置于出站作业队列中,例如出站队列2120或2150。将多个入站队列和出站队列予以配对,例如一个驱动器对应着一个入站队列和一个出站队列。从而,将来自入站队列中的作业,在经过处理后,放入对应的出站队列中。例如,提供队列2110和2120来用于和驱动器2005进行通信。
驱动器2005可以检查来自各种信道的到来分组,如信道结构2130所表示的那样。信道结构2130可以是一组信道,例如图11和12所示。因此,当来自多个信道的数据到来时,驱动器2005可以处理该数据,并将数据指示给硬件加速器2085,以按需进行处理。信道结构2130可以具有,例如,自由和活动的列表,这些列表由驱动器2005维护,从而指明所示的信道在当时是否采用由驱动器2005所监视的通信方法。
在一个实施例中,驱动器2005和分配器2070之间的下列规则适用于该系统:
只有驱动器2005可以将作业加入队列2110中。
只有分配器2070可以从队列2110(硬件调度表)中读取作业。
只有分配器2070可以响应于中断处理机2075而使用完成的作业或作业标识符来更新队列2120。
只有驱动器2005可以读取队列2120(硬件完成)。
只有驱动器2005可以访问信道列表/结构2130。
因此,驱动器2005负责扩充队列2110(并避免溢出)。分配器2070负责扩充队列2120。驱动器2005也可以负责防止队列2120的溢出。将分配器2070与作业源自的信道隔开,并将驱动器2005与硬件加速器的硬件中断隔开。此外,需要注意的是,队列2120(和例如队列2150)可以在信息中包括,例如,作业数据或作业的表示(例如cookie),以及可以找到完成的作业数据的有关信息。
传递给分配器的作业可以具有多样的形式。图22示出了作业表示的实施例。将作业2200表示为包括驱动器上下文2220和周边系统上下文2210。因此,系统上下文2210可以是由周边系统提供的包装(wrapper),从而例如使分配器能够进行处理。此外,载荷可以是驱动器上下文2220的一部分,或者作业2200的一个分离(未示出)的部分。分配器可以以已知方式从作业中提取有待进行处理的数据,并基于两个上下文使作业回到合适的目的地。此外,作业的附加处理参数可以包括于这两个上下文中的一个或两个内。驱动器上下文2220也可以包括相关于驱动器的信道信息。
可以使用信道(作业源自其中)列表的各种表示。图23示出了信道列表的实施例。结构2300是信道的列表和相关于该列表的一组指针。信道列表2350包括一组例如可以在图11或12中发现的信道。自由指针2310指向自由信道列表中的第一个信道,例如,可以分配这些自由信道用于通信目的。活动指针2320指向活动信道列表中的第一个信道,这些信道在此时是活动的或正在通信。如图所示,这两个列表都是信道的链表。作为对比,信道列表2350可以是信道阵列。
硬件加速列表2330是指向第一信道的指针,该第一信道正在经历或等待硬件加速。这些就是由于各种原因需要硬件加速的活动信道。例如,这些信道均在分配器的入站作业队列中有相关的一个作业(或多个作业)。如图所示,尽管简单的链表就已经足够了,但此列表是循环队列。而且,在所示的实施例中,硬件加速器指针2340所指向的信道相关于当前正由硬件加速器处理的作业(需要注意的是,此信道并不一定是由指针2330所指向的信道)。基于信道状态,可以在各种列表之间快速地移动信道。
结合通信信道工作的驱动器也可以具有各种结构。图24示出了驱动器的表示的实施例。驱动器2400包括典型的驱动器结构2420(例如,提供的驱动器用于系统或设备)和包裹驱动器的系统结构2410。系统结构2410可以提供驱动器2420和系统其余部分之间的接口。但是,需要理解的是,尽管驱动器2400包括系统特定的部件,但其可以是周边系统中的驱动器。驱动器2400随后可以跟分配器和周边系统的其它部分交互。
例如,多个驱动器可以与分配器交互。图25示出了包括分配器和一组驱动器的系统的实施例。分配系统2500包括带有中断处理机2515的分配器2510。其还包括三个队列(2525,2535和2545),这三个队列均对应于驱动器(相应的2520、2530和2540)。在所示的系统中,驱动器2520是ssl驱动器,驱动器2230是ssh驱动器,驱动器2240是ipsec驱动器。需要注意的是,为了便于说明,图中只示出了出站队列。在各个实例中,可以预料到,还存在相对应的入站队列。
虽然可以用多种方式实现队列,但迄今为止所示的这些队列是简单链表。图26示出了作业列表的替代实施例。缓冲器2600是组织成阵列2610的一组作业,阵列2610可以作用为循环fifo缓冲器或队列。缓冲器2600还包括分配器头指针2620、驱动器尾指针2630和分配器尾指针2640。
在一个实施例中,驱动器尾指针2630指向当前正由硬件加速器处理的作业。相似地,分配器头指针2620指向可以将新作业加入队列的位置。此外,分配器尾指针2640指向将由硬件加速器处理的下一个作业(以及其后的作业)。因此,指针2620、2630和2640可以沿着阵列2610前进,从而实现对入站作业(以及可能还有出站作业)的访问。
如上所说明和描述的那样,使用了单个硬件加速模块。然而,多硬件加速模块可以包括于系统内并在处理分组时使用。图27示出了包括硬件加速的管理分组所用的系统的替代实施例。系统2700包括分配器、一组硬件加速模块和入站以及出站队列。在各种实施例中,加速模块可以包括例如图形加速器、密码加速器、霍夫曼(Huffman)编码译码加速器和其它加速模块。
分配器2710包括中断处理机2715,后者监视加速器2720、2730和2740的中断。当作业完成或检测到无作业可管理时,加速器2720、2730和2740会发出中断。分配器2710随后在如队列2750之类的一个入站作业队列中检查入站作业。分配器2710可以在多个队列中检查入站作业,例如还检查入站作业队列2770。此外,分配器2710可以以多种方式为多个队列中的作业划分优先级。
在某些实施例中,硬件加速器2720、2730和2740均为同样类型的加速器,从而能够为任何作业置换任何加速器——这意味着总可以把下一个加速器安置给下一个作业。在其它实施例中,加速器2720、2730和2740属于多种不同类型。在某些这种实施例中,当硬件加速器可用时,分配器2710可以搜索入站作业队列来寻找适合的作业。在其它这种实施例中,由于在分配器2710队列的末端没有作业,则在这种情况改变之前,都会致使硬件模块处于空闲状态。
分配器2710还可以将完成的作业(或其表示)置于出站作业队列(例如出站队列2760或2780)中。将多个入站和出站队列予以配对,例如一个驱动器对应有一个入站队列和一个出站队列。从而,将来自入站队列中的作业,在经过处理后,置入对应的出站队列中。例如,提供队列2750和2760来用于和单独的驱动器进行通信。
从以上描述可以看出,本文所述的本发明具体实施例仅用于说明的目的,在不背离本发明的精神和保护范围的前提下可以对其进行各式各样的修改。在某些实例中,引用了在不同或某些实施例中可能出现的特征,但这些特征并不限制本发明的精神和保护范围。在说明和描述中,所给出的结构也可以在本发明的精神和保护范围内以其他方式形成或重组。此外,通常来说,一个实施例的特征可用于本文中所提及的其它实施例,只要这些特征并不以某种方式相互排斥即可。
特别的是,各种框图的分离模块表示方法或装置的功能模块,这些各种框图的分离模块并不是指本发明精神和保护范围的操作顺序、或者物理或逻辑上的分离。相似地,所描述和说明的方法是线性过程,但在本发明的精神和保护范围内,也可以用并行方式重排列或实现这些方法的操作。因此,本发明仅由权利要求书界定。

Claims (2)

1.一种维护信道的自由列表的方法,该方法包括:
接收信道请求;
提供来自该自由列表的第一信道标识符,该自由列表具有起始指针和末端指针;
更新该起始指针,以指向该自由列表的下一个信道;
接收信道超时提示;
将超时信道添加到该自由列表的末端;以及
更新该末端指针,以指向该自由列表的末端。
2.一种处理信道消息的密码操作的方法,该方法包括:
接收加密的消息;
使用消息长度和类型、消息编码和封装类型、一个或多个资源队列等待时间、资源的状态和资源的容量,确定要应用哪些密码资源;
将该消息放在选择的密码资源中;
应用该选择的密码资源;以及
在信道上传递解密的消息。
CN201010180966XA 2004-07-30 2005-07-29 用于大量信道的硬件加速 Pending CN101877674A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US59274904P 2004-07-30 2004-07-30
US60/592,749 2004-07-30
US63497304P 2004-12-10 2004-12-10
US60/634,973 2004-12-10
US70331805P 2005-07-27 2005-07-27
US60/703,318 2005-07-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN 200580033016 Division CN101052958A (zh) 2004-07-30 2005-07-29 用于大量信道的硬件加速

Publications (1)

Publication Number Publication Date
CN101877674A true CN101877674A (zh) 2010-11-03

Family

ID=35787849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010180966XA Pending CN101877674A (zh) 2004-07-30 2005-07-29 用于大量信道的硬件加速

Country Status (4)

Country Link
US (1) US20090158282A1 (zh)
CN (1) CN101877674A (zh)
TW (1) TWI276324B (zh)
WO (1) WO2006015181A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309841A (zh) * 2012-03-16 2013-09-18 英飞凌科技股份有限公司 用于进行超时监测的方法和系统
CN106502782A (zh) * 2015-09-04 2017-03-15 联发科技股份有限公司 异构计算系统及其方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008310270A (ja) * 2007-06-18 2008-12-25 Panasonic Corp 暗号装置及び暗号操作方法
US9100937B2 (en) 2009-09-09 2015-08-04 Lg Electronics Inc. Method and apparatus of scanning channels in wireless local area network
EP2491746A4 (en) 2009-10-21 2016-08-10 Lg Electronics Inc METHOD AND DEVICE FOR DETECTING EXISTING NETWORKS IN TVWS
JP5657031B2 (ja) 2010-03-12 2015-01-21 エルジー エレクトロニクス インコーポレイティド 無線通信システムで主なサービスを保護するための方法及び装置
US8583129B2 (en) 2010-03-19 2013-11-12 Lg Electronics Inc. Method and apparatus for acquiring available channel information in a wireless local area network system
WO2011126188A1 (en) 2010-04-07 2011-10-13 Lg Electronics Inc. Method and apparatus for transmitting and receiving a white space map information in a wireless local area network system
WO2011145796A1 (en) 2010-05-18 2011-11-24 Lg Electronics Inc. Method and apparatus for dynamic station enablement procedure in a wireless local area network system
KR101829839B1 (ko) 2010-06-07 2018-02-19 엘지전자 주식회사 Wlan 시스템 내에서 스테이션의 동작 방법 및 장치
TWI609326B (zh) * 2010-11-09 2017-12-21 國立成功大學 控制核心之方法
US9448846B2 (en) 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US9286129B2 (en) * 2013-05-08 2016-03-15 International Business Machines Corporation Termination of requests in a distributed coprocessor system
CN104503728B (zh) 2015-01-04 2017-11-24 华为技术有限公司 一种硬件加速器及芯片

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435755A (en) * 1981-12-28 1984-03-06 International Business Machines Corporation Balanced channel finding method
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
CA2107068C (en) * 1993-09-27 2003-04-15 Brian M. Barry Adaptive parametric data channelizer for acquiring and tracking discrete interleaved signals
US6101255A (en) * 1997-04-30 2000-08-08 Motorola, Inc. Programmable cryptographic processing system and method
US6003041A (en) * 1998-01-05 1999-12-14 Gateway 2000, Inc. Method and managing multiple channel maps from multiple input devices in a multimedia system
US6321350B1 (en) * 1999-02-22 2001-11-20 International Business Machines Corporation Method and apparatus for error detection using a queued direct Input-Output device
US20040105122A1 (en) * 2000-03-20 2004-06-03 Schaeffer Richard J. Printer control and document management system
US6718370B1 (en) * 2000-03-31 2004-04-06 Intel Corporation Completion queue management mechanism and method for checking on multiple completion queues and processing completion events
US20030009694A1 (en) * 2001-02-25 2003-01-09 Storymail, Inc. Hardware architecture, operating system and network transport neutral system, method and computer program product for secure communications and messaging
US7000026B2 (en) * 2000-12-22 2006-02-14 Nortel Networks Limited Multi-channel sharing in a high-capacity network
US20030003953A1 (en) * 2001-06-18 2003-01-02 Comverse Network Systems Ltd. Multi-user chat service in a cellular network
US7113985B2 (en) * 2002-10-15 2006-09-26 Intel Corporation Allocating singles and bursts from a freelist
US6684271B1 (en) * 2002-10-18 2004-01-27 Xilinx, Inc. Method and apparatus for changing context in link channelization
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US7441267B1 (en) * 2003-03-19 2008-10-21 Bbn Technologies Corp. Method and apparatus for controlling the flow of data across a network interface
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7363383B2 (en) * 2003-04-23 2008-04-22 Sun Microsytems, Inc. Running a communication protocol state machine through a packet classifier
US7251815B2 (en) * 2003-04-29 2007-07-31 International Business Machines Corporation Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle
US7644118B2 (en) * 2003-09-11 2010-01-05 International Business Machines Corporation Methods, systems, and media to enhance persistence of a message
US20060112184A1 (en) * 2004-11-22 2006-05-25 International Business Machines Corporation Adapter card for on-demand formatting of data transfers between network devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309841A (zh) * 2012-03-16 2013-09-18 英飞凌科技股份有限公司 用于进行超时监测的方法和系统
CN106502782A (zh) * 2015-09-04 2017-03-15 联发科技股份有限公司 异构计算系统及其方法

Also Published As

Publication number Publication date
TW200629794A (en) 2006-08-16
WO2006015181A2 (en) 2006-02-09
US20090158282A1 (en) 2009-06-18
WO2006015181A3 (en) 2006-09-21
TWI276324B (en) 2007-03-11

Similar Documents

Publication Publication Date Title
CN101877674A (zh) 用于大量信道的硬件加速
JP7060724B2 (ja) タスクスケジューリング方法、リソース共有使用方法、スケジューラ、コンピュータ可読記憶媒体および装置
Yao et al. Fog resource provisioning in reliability-aware IoT networks
US6757730B1 (en) Method, apparatus and articles-of-manufacture for network-based distributed computing
CN106209506B (zh) 一种虚拟化深度包检测流量分析方法及系统
US7246167B2 (en) Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections
KR100383381B1 (ko) 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
EP3556053A1 (en) System and method to handle events using historical data in serverless systems
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
US7627899B1 (en) Method and apparatus for improving user experience for legitimate traffic of a service impacted by denial of service attack
EP1561163A2 (en) A communication method with reduced response time in a distributed data processing system
US20080118065A1 (en) Hardware acceleration for large volumes of channels
KR101950050B1 (ko) 이벤트 데이터 획득을 위한 스케일 아웃 시스템
US7697434B1 (en) Method and apparatus for enforcing resource utilization of a container
US20080320563A1 (en) System and program product for associating event categorization and routing with security authorization roles
US20090132582A1 (en) Processor-server hybrid system for processing data
CN103701587B (zh) 一种多接口密码模块并行调度方法
CN102355422A (zh) 多核并行无锁的qos流量控制方法
US20140040479A1 (en) Method for a self organizing load balance in a cloud file server network
US7675920B1 (en) Method and apparatus for processing network traffic associated with specific protocols
US8539508B2 (en) Message ordering using dynamically updated selectors
US8589605B2 (en) Inbound message rate limit based on maximum queue times
CN101052958A (zh) 用于大量信道的硬件加速
CN113765871A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20101103