CN1097911A - 高速分组传输网络的高性能可编程数据通信适配器 - Google Patents
高速分组传输网络的高性能可编程数据通信适配器 Download PDFInfo
- Publication number
- CN1097911A CN1097911A CN94106310A CN94106310A CN1097911A CN 1097911 A CN1097911 A CN 1097911A CN 94106310 A CN94106310 A CN 94106310A CN 94106310 A CN94106310 A CN 94106310A CN 1097911 A CN1097911 A CN 1097911A
- Authority
- CN
- China
- Prior art keywords
- buffer
- pointer
- packet
- field
- data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
高速分组传输网络的高性能数据分组缓存方法
和可编程数据通信适配器。该适配器含接收和发送
数据分组的可编程处理单元。该系统包括:缓存数据
分组的单元;识别缓存单元和缓存单元中数据分组的
单元;在一单个指令中将识别单元在存储单元中排队
的单元;在另一个单个指令中由存储单元将识别单元
出队的单元;释放缓存单元的单元。每一指令包含处
理单元并行处理的三个操作:对识别单元作算术逻辑
操作;对存储单元作存储器操作;排序操作。
Description
本发明是关于一高速网络的分组交换节点的可编程数据通信适配器中的高性能分组缓存系统和方法。
技术市场趋向
电信设施正在全速发展中,近年来已经产生了巨大变化。主要原因就在于通信技术中所取得的惊人的进步:
光导纤维传输技术的成熟。现在已可实现位误差率极低的高速传输速率;
专用和公共电信网络中普遍采用数字技术。
在这些新兴技术方面,公共或专用电信公司的奉献正在促成:
高速传输技术的出现必然引起的宽频带的通信联络;
通信容量的增大带来较吸引人的价格;
通过大量的可选择的联络方案、有效的带宽管理以及新媒体的支持,给用户为他们的发展提供了更大的灵活性;
一经采样和数字编码后,所得的声音、视频和图形数据即可与通用的和透明的传送用的纯数据相混合。
大量廉价通信装置过去因成本关系而无法实现的潜在应用现在成为吸引人的。在这种环境中,用户表达出四个通用要求:
改善早先的应用;
优化通信网络;
进行新的应用。
高性能网络
第一步,T1基本网络主要是采用TDM(时分多路复用)技术通过线路聚集来节省费用。这些系统易于支持主机/终端计算的和64kbpPCM(脉冲码调制)声音通信量的固定带宽要求。
数据传输当今的发展焦点特别集中在应用上,并汇集用户通信量分布中的基本变更方案。随着工作站、局域网(LAN)的连接、工作站与超级计算机之间的分布处理、新的应用以及各种不同的且经常是相互冲突的结构-层次结构与等同组合、广域网(WAN)与局域网(LAN)、声音与数据-的汇集的发展,数据分布成为带宽增大、猝发性、不确定的,并要求更多的联络。由上所述可清楚看到,需要强有力的支持能执行LAN的通信、声音、图形以及附属于主机的通道、商业工作站、工程工作站、终端和中小文件服务器之间的通信的高速框架结构的分布式计算应用。这种通信信息反映出复杂的混合:
目标用户网络协议包括有以太网、令牌环、APPN、FDDI、OSI、ISDN、ATM…;及
实时的(例如声音和图形的稳定数据流通信)和非实时的例如交互式数据的猝发性自然通信)传输。
这种高速且灵活的协议的框架网络的远见,促进了快速分组交换网络结构的出现,其中,数据、声音和图形信息作数字编码、分割成小的分组并经过普通的节点和链路组传输。虽然可以存在有低速链路,但光导纤维链路的实用将会使得用较少的高速链路来代替许多低速链路在成本上更合算。除了高速框架结构外,还存在有主要是访问节点的外围网络。这一外围网络由比较低速度的链路组成,它可以不采用该框架中采用的同样的协议或交换技术。另外,此外围网络还执行将较低速度的目标用户通信多路转换到该高速框架的任务。这样,框架交换节点基本上是处理高速线路。进入每一交换节点的高速链路数较小,但聚集信息量则非常高,达到每秒千兆位的量级。
信息吐吞量
这些新结构的关键要求是要降低终端之间的延迟,以满足声音和图形传输中的实时传送的制约和实现足够大的交接点信息量。通信节点处理速度的对应增长已经不能适应链路速度的增大,而对于高速网络来说,基本的挑战就在于要将每一节点内的分组处理时间减到最小。例如说,为了符合在二终端用户之间传送声音分组的通常的100ms延时的要求:
在该终端进行报文分组和发送功能可能总共需要36ms;
(例如)横跨美国所需的传播延时大约为20ms是无法改变的;
剩下的44ms就是在当该分组在网络内传送时节点内部的处理时间。在一5节点的网络中,每一节点用于进行包括任何排队时间在内的全部处理时间将约为8ms。而在一10节点的网络中,每一节点则具有4ms左右的时间。
考虑到此同一制约条件的另一种方法如图1中所述:举一有效处理速率为1MIPS(百万指令/秒)的节点为例,即使一网络节点每一所处理的分组需执行833000条指令,也可能在一9.6Kbps线路上加载以多个1000字节的分组。对于一64Kbps的线路,该节点能处理每一分组125000条指令。但为加载一OC24链路,此1MIPS节点仅能执行每个分组7条指令。在后面这种情况下,即使有效率为10~30MIPS,也只能允许每个分组70-200条指令。
为了最大限度减少处理时间和充分利用这种高速、低差错率技术的优点,这一新的宽频带网络结构所提供的大部分传输功能均在终端至终端的基础上完成。这包括数据流控制和差错恢复,对声音和图象的报文分组和重新聚集。协议被简化为:
第一,无需转接节点知道个别(终端用户至终端用户)的传输连接;
其次,高性能和高质量的链路不再要求节点至节点的差错恢复,即重新传送。堵塞和流通在存取之际和网络连接的终点设法控制,从而减少对中间节点的了解和功能上的要求。
分组规模
提供作传输的用户数据块的大小具有很大的不同。如果将这些数据块划分成许多短“分组”,则整个数据块通过网络的转送延迟时间将会大大缩短。这是因为在将一数据块分成许多短分组时,每一分组可由网络分开处理,而数据块的最先几个分组可在最后一分组由源方发送之前被目的方接收到。
将所有数据通信量限制到一小的最大长度也具有消除中间节点中排队延迟的效果,从而能得到较之在数据块可为任意长时所可能的要均匀得多的输送延时特性。短分组的另外的优点是,例如,如果已知每一分组均恰好对应于一缓冲器,并且如果这些分组很短且以恒定的、较均匀的速度传送因而使节点缓冲组所需的存储量降到最小的话,易于控制中间节点中的固定长度缓冲存储器组。
但是,采用小分组容量有一个很大的问题。不管分组的长度如何,转接一分组需要一定的时间或指令数,这是传统的分组交换节点的结构特点。这就是说,一个1000字节的信息块需要几乎与转接100字节的信息块相同的交换节点资源。因而如果将一1000字节的分组分解成10个100字节的分组,即是对一中间交换节点上的负载乘以10。当节点非常快而链路却非常慢时,这一作用并不苛刻。今天,当链路非常快而节点则相对较慢时,这种特性就成了网络信息吞吐量的重大限制。
短分组更适用于类似声音或图象信息分组之类实时数据的传送,这些数据必须要以稳定、均匀的速率(同谐方式)传送到接收方。一种良好的解决转送延迟和差错恢复问题的方法是采用非常短的固定长度分组。而且这种技术还使节点交换中所需的交换硬件得以简化(并因此提高其速度)。例如,ATM标准(异步传送方式)采用的数据单元的大小为48字节(一单元为一固定长度的分组),仅需对路由标题(5字节)作有效性检查,而单元内部的数据则留给终端至终端协议处理,就是留给一由应用程序所管理的“较高层”的协议。
另一方面,纯数据的产生是极具突发性和不定的,不过不存在转送延迟问题。这种数据可能被延迟而不一定会降低被送到目的方终端用户的信息质量。分组越长,为通过一定的数据量每秒需要交接的分组数就越少。不过这种通信量的无法预测特点常常要求繁重的缓冲器控制和牺牲响应时间的排队。
为了充分利用不同的数据分组传送系统,通过网络的数据必须以接近与用户分组相同大小的分组进行转送,而不必将他们加工成人为的长度。与单纯的数据网络或者单纯的声音和图象网络不同,此高速网络结构必须支持以可变长度分组操作的大量不同类的传输协议。
联络性
在一高速网络中,节点必须提供完整的联络。这包括附加用户的装置而不管其供应厂商或协议,此及使终端用户与任何其他装置进行通信的能力。通信信息类型包括有数据、声音、图象、传真、图表、图形。节点必须能利用所有的公共载运设施并能适应众多的协议:全部必需的改型对终端用户均必须是自动和透明的。例如,一高速节点必须不依赖于用户网络上任何SNA(系统网络结构)设备的存在。必须能提供SNA环境中与由路由器、专用交换分机(PBX)、局域网……组成的非SNA环境同等水平的服务。
主要要求
在非常高速度的线路上有效地传输混合通信信息流就意味着对网络中每一通信节点在性能方面的一系列要求,这些可总括如下:
非常短的分组处理时间;
非常高的信息传输量;
有效的排队和缓冲器管理;
每一分组中有限的指令数;和
非常大的灵活性以支持大量联络选件。
高带宽决定了必须有特殊的硬件来支持非常快的分组处理和控制协议并满足声音和图象信息的实时传输需要。处理时间是高速网络中的主要瓶颈问题,今天大多数通信节点均是根据高速交换硬件组构的,以便解除处理器的路由分组处理和选定路线功能的负担。
不过,在相等的性能条件下,软件途径是每一节点适应连通性和灵活性要求及优化制造和匹配成本的最合适的解决方案。线路适配器以共用的硬件设计为基础,并以专用的执行点的访问和节点间传送功能的编程组构。适配器支持不同的访问协议和数据流-帧中继(Frame Relay)、HDLC(高级数据链路控制)、CBO(连续位操作)、ATM(异步传送方式)…-的适配性由被称为访问媒介(Access Agents)的逻辑部件提供。这样的逻辑组合适配器/访问媒介(Adapter/Access Agent)由软件设定,以降低的成本获得非常大的灵活性。每一线路适配器在系统初始化时按照适配器的功能和访问协议自动组构。
根据本发明,揭示了一种高性能的分组缓存方法和一可编程数据通信适配器系统。线路适配器包括有可编程处理装置,用于接收和发送固定或可变长度数据分组。这一系统的特点在于它包括有:
用于缓存所述数据分组的装置(132);
用于识别所述缓存装置中的所述数据分组的装置;
用于将单个指令中的所述识别装置在存储装置(131)中排队(图15)的装置;
用于由所述存储装置(131)中将另一单个指令中的所述识别装置出队(图16)的装置;和
用于释放所述缓存装置的装置。
每一指令包括由所述处理装置并行执行的多达三种操作:
对所述识别装置作算术逻辑(ALU)操作;
对所述存储装置的存储器操作;和
排队操作。
图1表明本发明所支持的不同线路通信量的运行中所需的处理时间(或每秒的指令数);
图2表明包括有本发明中所要求的访问和转接节点的高速分组交换网络的一典型模式;
图3描述一按照本发明的高速“路由选定点”;
图4表明一本发明中所要求的可编程高性能适配器;
图5表示按照本发明的适配器中的接收和发送数据流;
图6说明按照本发明的缓冲器、分组和队列结构;
图7说明按照本发明的分组分段机制;
图8表示按照本发明的“缓冲器指针”结构;
图9表示按照本发明的“表指针”的结构;
图10说明按照本发明的“表输入”(List_IN)操作;
图11说明按照本发明的“表输出”(List_OUT)操作;
图12表示按照本发明的“空闲缓冲器表”的结构;
图13表示按照本发明的“处理器”的功能性结构;
图14说明按照本发明的出队机制;
图15说明按照本发明的排队机制;和
图16表明按照本发明的出队周期的简化状态图。
如图2中所示,一典型的通信系统模式由数个用户网络(212)组成,互相间通过一采用专用线路提供服务的载体、或公共数据网络的高性能网络(200)进行通信。每一用户网络可以表述为一组互连许多用作“事业服务器”(213)、采用工作站或连接在LAN(局域网,214)上的个人机的用户团体、应用程序服务器(215)、PBX(专用交换分机,216)或视频图象服务器(217)的大量计算机的通信处理器和链路(211)。这些分散在不同部门的用户网络必须通过广大区域的传输设施相互连接,并可采用不同方法来组织数据传送。某些结构需要在每一网络节点检测数据的完整性,从而使传输速度降低。另外一些则主要是寻求高速数据传输,为此,节点内的传输、寻找路径和交换技术均被加以优化来处理那些以最高可能速度流向它们最终目的的分组。本发明基本上属于后一类型,较具体说是属于下面将详细叙述的快速分组交换网络结构。
高速分组交换网络
图2中的概貌表明一快速分组交换传输系统包含有8个节点(201~208),每一节点均由被称为“干线”(209)的高速通信线路相互连接。用户对此高速网络的访问(210)通过布置于周围的“访问节点”(202~205)实现。这些“访问节点”均包含有一个或多个“端口”,每一“端口”提供一用于接进外部装置的访问点,这些端口支持网络的标准接口,并实现其他外部装置输出或输入的用户数据流经过网络传送所需的改变措施。例如,“访问节点”202分别通过三个“端口”与一PBX(专用交换分机)、一应用程序服务器和一插接中心相接口,并依靠邻接的“转接节点”201、208和205经网络通信。
交换节点
每一网络节点(201~208)均包含有一“路由选定点”,在此,输入数据分组被有选择地导入到朝着相邻“转接节点”的输出“干线”。这样的路由选择根据分组的标题中所包含的信息决定。除此基本的分组路由选择功能外,网络节点还提供有一些辅助服务,例如:
对由该节点始发的分组确定路由通路;
类似检索和更新关于网络用户及资源的信息的查询索引服务;
维护包括链路利用信息在内的实际网络布局的一致状况;和
保留网络访问点的资源。
每一“端口”连接到多个用户处理设备,每一用户设备具有或者一个欲发送往另一用户系统的数字数据源,或者一个为使用由另一用户系统接收到的数字数据的数据接收器,或者一般具有两者。对用户协议的解释、将用户数据变换成按照它们适应于在分组网络(200)传输所格式化的分组以及生成为这些分组确定路径的标题,均由在“端口”中运行的“访问媒介”(Agent)执行。这一标题由“控制”和“路由确定字段”组成:
“路由确定字段”含有为确定分组通过网络(200)去到被寻址的目的“终端节点”的路径所必需的所有信息;
“控制字段”除其他内容外包括有在解释“路由确定字段”中所利用的协议的编码标识符。
路由选定点
图3表明一例如图2所示网络节点(201~208)中所具有的典型“路由选定点”的综合方框图。“路由选定点”包括有一高速分组交换机(302),到达“路由选定点”的分组都被送至此交换机上。这种分组:
在高速传输链路(303)上经由“干线适配器”(304)从其他节点接收;和
经由被称为“端口”(301)的应用程序适配器从用户处接收。
适配器(304、301)利用分组标题中的信息决定哪一分组该由“交换机”(302)向一局部用户网络(307)或向一离开该“节点”的传输链路(303)引导。适配器(301和304)均包括有在分组到达“交换机”(302)之前或之后将它们加以排队的排队电路。
“路径控制器”(305)计算出通过网络(200)的最佳路线以使用于完成一通信路程的网络资源量最小,并为“路由选定点”所产生的分组建立标题。优化的标准包括连接请求的特点、路程中各“干线”的能力大小和利用程度、中间节点的数量……。确定路径所需的关于节点和连接到这些节点的链路的所有信息均保存在“网络布局数据库”(306)中。在稳定状态的条件下,从每一“路由选定点”看网络均是同样的。当新的链路被激活或者网络加入新的节点时,网络布局信息就要被更新。这些信息利用控制消息与所有其他“路径控制器”进行交换以提供路由计算中所需的必须是最新的信息(这些数据库的更新以极为接近于网络的终端用户间的数据分组的分组进行)。通过不断地更新使网络布局在每一节点方向始终保持为当前的状态,就可能对网络进行动态的重新组构而不必中断终端用户的逻辑周期。
进入分组“路由选定点”的传输链路可以是源自局部用户网络(210)中的外部装置的链路,或者是由邻接网络节点(209)来的链路“干线”。不管怎样,“路由选定点”总以同样的方式按照分组标题中信息所指定的接收每一数据分组,并将其再送往另外的“路由选定点”。此快速分组交换网络的操作,除在单一分组期间外,能不使任何传输即节点设施专用于一通信路程中,而能在任何两个终端用户设备间进行通信。采取这种方式,分组网络通信设施的利用得到优化而能承载较之每一通信路程采用专用传输链路所可能实现的要大得多的信息通信量。
端口和干路适配器
适配器功能
高速网络的周边布置许多“端口”。它们使终端设备能通过高速网络交换信息向无需知道所用的具体高速协议。这些“端口”的主要功能有:
由一外部信号源接收外来的协议数据单元并将它们经由网络作为高速分组传送给目的“端口”;和
将这些高速分组复原为外来协议数据单元再发送到目的资源;
控制带宽。
注意:源与目的“端口”可以存在于同一节点中。
“干线”为高速网络节点之间的链路。它们承载高速分组。每一“干线”管理其链路带宽和链路状态。“干线”的一项关键任务是管理通信优先权和内部缓冲器的分配以减少延时和堵塞情况。
另外还有一特定类型的适配器,称为“路径控制器适配器”(305),它
通过“交换机”(302)与其他适配器(301、304)进行通信;
实现“路径控制器”的集中化功能,如布局、路径选择…;
建立、维持和删除终端之间的高速连接。
适配器结构
有多种为得到或多或少的灵活和有效性的传输系统的设计所说的“端口”、“干线”和“路径控制器适配器”的技术。现今大部分适配器均按照所连接的链路的功能和协议以专用硬件为基础组建。
本发明为满足前面列举的连通性和灵活性方面的要求,提出采用基于普通硬件结构的软件解决措施。“端口”和“干线适配器”是相同的结构,它们间的功能差异由特定的编程来实现。但是,即使采用当今市场供应的最有效的通用微处理器,经验表明要达到按每秒交换的分组数量要求所希望水平的性能也是非常困难的,这就是为何每一适配器的控制要由二处理器共同承担的原因。“专用处理器”(SPP,406,412)经优化以适应分组交换处理;“通用处理器”(GPP,409)主要用于处理欲加以交换的分组,这是性能方面的关键处理操作,其次用作适配器管理。
如图4中所示,每一适配器(400)含有下列逻辑部件:
1.“通用处理器”(GPP,409),按照所选择的“端口”或“干线适配器”的功能进行编程。此GPP完成适配器控制操作。
2.“接收适配器”(401),实现以下三种功能:
检验高速分组的标题;
按照每一输入分组标题中指定的路由选择方式鉴别通信量;
利用适当的标题确定输入分组通过交换机(403)的路径。
“接收适配器”包含有:
a.“线路接收器”(407),用于控制“线路接口”(415)和“接收缓冲器存储器”(RBM,405)间数据的流动;
b.“接收缓冲器存储器”(RBM,405),临时存储用户数据分组;
c.“接收专用处理器”(RSPP,406),以含有一“本地存储器”(LM,408)的专用处理器为基础。RSPP对所接收的稳定状态的分组数据流进行处理,并将此控制分组向“通用处理器”(409)发送;
d.“本地存储器”(LM,408)被RSPP(406)用作工作空间;
e.“交换机发送器适配器”(404),用于
在RSPP(406)的控制下处理缓存器RBM(405)所传送的数据流;
将该数据流分段成固定长度单元;和
生成相应的交换路由确定标题。
3.“发送适配器”(402)用于完成下列功能:
由“交换机”(403)接收数据流;
检验单元标题;
分组重新聚集(“端口”);
“干线”功能(“干线适配器”);
确定路由。
此“发送适配器”包括有:
a.“交换机接收器”(410),用于处理来自“交换机”(403)的数据流并将其传送到“缓冲器存储器”进行再聚合;
b.“发送专用处理器”(XSPP,412)与RSPP(406)相同。此XSPP处理稳定状态的数据并将控制数据流送往GPP(409);
c.“线路发送器适配器”(413),用于处理“缓冲器存储器”(411)和“线路接口”(415)间的数据流动。
此适配器一边连接到分组“交换机”,另一边接到“线路接口”:
“线路接口”(415)被用于将“端口”和“干线适配器”的物理接口与相应的介质加以适配;
分组“交换机”(202,403)使“路径控制器”(305)和不同的“端口”(301)、“干线适配器”(304)能进行通信。
数据流控制
“干线适配器”中接收和发送的数据流如图5中所示。在此独有的带有可变长度分组的高速网络中,接收过程包括下列步骤:
1.“线路接收器”、“缓冲器存储器”、“专用处理器”(501)系统:
a.由线路接收分组;
b.检验分组标题,如有差错即放弃该分组;
c.按照路由模式确定处理分组标题中所含的信息;
d.选择控制消息去往“通用处理器”(GPP,502)的路由;
e.将具有特定交换标题的分组封装进目的适配器的功能;和
将分组和GPP(502)控制消息送往“交换机发送器适配器”(504)。
2.“交换机发送器适配器”(504)
a.将分组分段成为适应于“交换机”(503)的固定长度单元;
b.产生一差错检验字段以保持交换标题在这些单元通过“交换机”(503)传送中的完整性。
至于发送过程则包括下列步骤:
1.“交换机接收器适配器”(503)
a.由“交换机”(503)接收信息单元;
b.检验交换标题,如果有差错即废弃该单元。
2.“线路接收器”、“缓冲器存储器”、“专用处理器”(506)系统
a.重新聚集数据分组;
b.将控制分组发往“通用处理器”(502);
c.以路由选择标题封装分组;
d.由GPP(502)接收控制分组;
e.将数据和控制分组在对应队列中进行排队;
f.以给予实时数据(而其后再给予非实时数据)的优先权处理输出分组。
有可能将适配器设计成,或者在具有可变长度分组的独有环境中工作,或者在标准方式中例如具有固定长度的短信息单元的ATM方式中工作,或者在当适宜时在此两种条件下工作。在最后这一情况下,为了性能上的考虑,进到交换机的信息单元与ATM协议中定义的相同或类似,其结果是:
省略掉“交换机发送器”(508)“接收器适配器”(509)中的分组分段和重新聚集的步骤;
简化了“专用处理器”(507,510)中的交换标题处理过程。
适配器功能性的结构
本发明处理“线路接收器/发送器”、缓冲器存储器、“专用处理器”和“交换机适配器”之间的关系,尤其是以一种优化适配器内信息处理量和处理时间的方法来处理数据流。更具体点说,本发明是有关一种对数据缓冲器进行排队和出队的非常高性能的系统。
通信适配器基于下述原则:
“专用处理器”被设计得使管理稳定状态数据流所述的操作数量减到最小;
数据分组和控制数据各自在两个分开的分别为“缓冲器存储器”和“本地存储器”的存储器中加以管理;
数据分组的缓存和排队及出队机制对所有的“端口-干线”和“接收-发送”适配器均相同。
根据这些考虑,将采用下面这些通常的规定来叙述本发明:
“缓冲器存储器”中读的装置和写进“缓冲器存储器”的装置被分别指定为IO1和IO2。这就是说,
在适配器的接收侧,IO1=“交换机发送器”,而IO2=“线路接收器”;
在适配器的发送侧,IO1=“线路发送器”,而IO2=“交换机接收器”。
以同样方式:
输入数据流由交换机或外部线路(IO2)去到“缓冲器存储器”;
输出数据流由“缓冲器存储器”去到交换机或外部线路(IO1)。
而且,“分组”的意义还与应用相关联。例如说,它可以适用于来自一“端口”的SDLC帧信息,适用于来自一“干线”的独有的分组格式,或者适用于由一ATM“干线”接收的信息单元。下面章节中将采用的“分组”一词将并不是指一明确的数据单元格式。
数据结构
缓冲器、分组、队列结构
数据分组存放在“缓冲器存储器”(BM)中,而控制数据则在“本地存储器”(LM)中由“专用处理器”(SPP)直接管理。可被分配给输入装置(“线路/交换机接收器”(IO2))或输出装置(“线路/交换机发送器”(IO1))的存储器基本单元为一固定长度的缓冲器。如图6中所示,每一个这些缓冲器在“本地存储器”中以一称为“缓冲器指针”(B_PTR)的指针提出。指针是用于识别存储在“缓冲器存储器”中的逻辑数据结构(缓冲器、分组、队列等等)的一个通用术语。一个分组的存储需要一个或数个缓冲器。这些缓冲器利用一其自身被一“分组指针”(P_PTR)指出的指针表(B_LIST)链接在一起。由一“队列指针”(D_PTR)指定的“分组指针”(P_LIST)指明数个分组的队列。
表前缀
每一代表一特定分组或一队列结构的表的前面均加有一“前缀”,用于存放与该结构中所含数据有关的任何类型的信息。在“缓冲器表”中,“前缀”(B_BREFIX)含有关于分组路由选择的信息:
分组标题;
分组接收日期;
分组长度。
处理器对分组标题的全部操作均在“本地存储器”(LM)中实现而无需对存储在“缓冲器存储器”(BM)中的数据进行访问。而且在当处理器(SPP)对“本地存储器”进行操作时,也不中断对“缓冲器存储器”的DMA操作。由此就能更有效地进行路由选定处理和存储器管理。
分组分段
为便于存储器管理,分组和队列的表均为固定长度。如图7中所指出的,超出缓冲器表所能容纳的分组被加以分段。这种方法使得这些表(B_LIST)无需作成最大分组的长度。这些分段(B_LIST1,B_LIST2)在分组表(P_LIST)中由不同的分组指针(P_PTR1,P_PTR2)识别。同一分组的各分段之间的相关性通过位于每一分段的最后的“缓冲器指针”(B_PTR)中的特定“状态字段”(SF)来实现。当“表”已装满时,该字段即标出EOS(分段结束)。在输出操作中,
如果发现“状态字段”等于“分段结束”(EOS),分组表(P_LIST)中的下一指针将识别同一数据分组中的另一分段;
如果发现“状态字段”等于“分组结束”(EOP),分组表(P_LIST)中的下一指针将识别另一数据分组。
缓冲器指针
图8描述一“缓冲器指针”(801)的一般格式,缓冲器(800)不必是装满的,数据(DDDDDDDD)可在任何地点开始(A)和结束(B)。例如,可能根据经验将一缓冲器的第一字节保留用于存放标题。数据写和读由位于“缓冲器指针”(801)中的五个字段实现:
“第一单元指针”(FEP):缓冲器(数据可在任何地方开始)中第一数据单元的标识;
“最后单元指针”(LEP):缓冲器(数据可在任何地方结束)中最后的数据单元的标识;
“状态字段”(SF):此字段用于表的最后“缓冲器指针”中指定一EOS或EOP;
“缓冲器识别符”(BID):识别包含有数据的缓冲器;
“当前单元指针”(CEP):识别当前要读或写的数据单元。
采集数据之前一“缓冲器指针”的状态是这样的,即“当前单元指针”(CEP)被设置为等于“第一单元指针”(FEP)(FEP=CEP=A)(802)。每次存入一新的单元,“当前单元指针”(CEP)就增加一。在数据采集结束时“当前单元指针”(CEP)指定最后数据(CEP=B)(803)。随后的处理是,将“当前单元指针”(CEP)值(CEP=B)写进“最后单元指针”(LEP)的地点,并随后将其复位到初始值(CEP=FEP=A)(804)。这种方法使得数据能按其被接收时的顺序传送。
表指针
参看图9,“表指针”由下列三个字段构成:
List IDentifier(LID):表的识别符;
HEAD(表头):识别表的第一指针;
TAIL(表尾):识别附加于表上的下一个指针。
空闲缓冲器表
“缓冲器存储器”由一称之为“空闲缓冲器表”(FBL)的专用表加以管理。此FBL包含“缓冲器指针”的全体,其作用是利用“空闲缓冲器表指针”(P_FBL)的HEAD和TAIL字段来给出存储器的占用状态(图12)。其中
T为“缓冲器存储器”中缓冲器的总数;
HEAD为表的第一空闲缓冲器的识别符。每次一新的缓冲器被装载,HEAD字段即加一;
TAIL为表的下一空闲缓冲器的识别符。每次一新的缓冲器被释放,TAIL字段即增一;
HEAD=TAIL表明“缓冲器存储器”被装满;
递增的TAIL=HEAD表明“缓冲器存储器”为空。
“空闲缓冲器表”(FBL)是在初始化期间生成的,并永远与其他动态地生成的表(“缓冲器”、“分组”或“队列”表)相反。
注意:一般说,如未检测到任何资源(“空闲缓冲器表”为空的),就将不能存进“缓冲器存储器”的分组废弃。
专用处理器结构
“专用处理器(SPP)的功能性结构如图13中所示。
处理器并行处理
“专用处理器”被设计用来并行执行三种操作:
1.对寄存器的ALU(算术逻辑单元,140)操作
2.存储器操作
3.程序操作
这种并行处理性能需要将指令与操作加以区别:
“指令”:是程序编码语言的内容。就汇编程言来说,指令相当于一行编码。所有指令均在一处理器周期内执行;
“操作”:一条指令可能由一个或多个同时执行的操作所组成。
存储器空间
SPP的存储器空间被分成三块:
“指令存储”(130);
“本地存储器”(LM,131),它为程序码的工作空间;
“缓冲器存储器”(BM,132),用作数据分组通过适配器时所用的存储区。
它们都并行操作,“指令存储”(130)受“排序器”(133)的控制,“本地存储器”(131)受处理器程序的控制,而“缓冲器存储器”(132)则受“直接存取存储器”DMA(134)的控制。
寄存器
寄存器被分成两类:
1.“通用寄存器”(GPR)
被安排在“寄存器文件”(RF,135)中,可用作指令操作数。
2.“控制寄存器”(CR)
均为特定功能中采用的硬件寄存器,也可用作指令操作数。但与GPR相比,它们应用中的自由程度则较低。特别是两个这种“控制寄存器”置于“直接存取存储器”(134)中。
CR1=C_PTR1(DMA“指针”IO1),和
CR2=D_PTR2(DMA“指针”IO2)。
DMA“指针”1和2与输入/输出IO1(137)和IO2(138)相关联,并均含有当前的“缓冲器指针”(B_PTR)。
存储器地址发生器(MAG,139)
在所有装载、即存储操作中,对“本地”或“缓冲器存储器”的实际地址均由“缓冲器”或“表指针”的不同字段重新组成,用作操作数。出于性能上的原因,这一操作由一称为“存储器地址发生器(MAG,139)的专用硬件部件来实现。
直接存储器存取控制器(DMA,134)
直接存储器存取控制器”(DMA,134)与处理器结合运用在本技术领域中是公知的。其作用是在IO装置(137,138)与缓存器BM(132)之间迅速传输而无需处理器(SPP)的干予。此DMA组件由两个独立的可编程通道组成。IO装置向控制对缓存器(132)的访问的DMA提出它们的服务请求(SR1,SR2)。所必需的处理器干予仅在于缓冲器和分组的边界。此二IO装置和缓冲器间的数据流与程序码并行处理。BMIO总线上可多路化地进行二个IO操作:一个利用IO1,另一个利用IO2。为此,DMA控制两个仅仅是“缓冲器指针”的DMA指针(D_PTR1和D_PTR2)。
输入输出子系统
“专用处理器”(SPP)被称为“主控者”,由其建立连接。
IO装置和缓存器则或者直接由处理器程序、或者通过DMA加以控制。
在达到缓冲器或分组的边界时,IO装置可通过中断处理来迫使程序进行干予。
数据处理
对缓冲器和“表指针”可作各种处理:
使缓冲器指针增量;
关闭一缓冲器;
访问一表前缀;
将一单元加到一个表上;
从一表解除一单元。
对指针的操作:
对指针的一些操作由处理器程序进行,其他的由DMA进行。
写和读缓冲器指针仅仅是DMA(134)的职能。
在缓存器中的写操作。
在由一IO2接收服务请求(SR2)时,DMA以包含在指针2(D_PTR2,136)中的地址访问缓存器(132)。DMA指针2由处理器(SPP)仅仅作为一缓冲器指针提供。DMA同时指令IO2(138)将一数据单元送到BMIO总线上且缓存器(132)将该数据单元写到由DMA指针中的BID(缓存器识别符)字段所指明的缓冲器中的“当前单元指针”(CEP)位置上。数据装入缓冲器从由程序所选定的地址开始,并在缓冲器的末端结束,其中数据可在任何地点结束的(分组的)最后缓冲器除外。在开始输入操作前,DMA指针中的FEP(第一单元指针)和CEP(当前单元指针)字段均处于第一数据位置。没有任何排列上的限制。每次存储一新数据单元,CEP就被增一。当缓冲器装满时,DMA通过一中断措施(IO2_EOB子程序)由处理器要求一新的缓冲器指针。在IO2检测到一分组的结束时(IO2_EOP子程序),采用类似的处理过程。在数据采集之后,将CEP复位到第一数据位置(CEP=FEP)。
在缓存器中的读操作:
在由一IO1接到服务请求(SR1)时,DMA利用DMA指针1(D_PTR1,136)中所包含的BID字段(缓冲器识别)来对缓存器(132)寻址。处理器(SPP)提供DMA指针1。DMA同时指令缓存器(132)将由DMA指针的BID字段指定的缓冲器中的CEP位置上的数据单元发送到BMIO总线上,同时IO1装置(138)读入这一数据单元。在开始输出操作之前,DMA指针中的FEP和CEP字段均处于第一数据位置。每次传送一新的数据单元,CEP即增一。当CEP值与LEP值相等时,缓冲器即为空载。此时,DMA通过一中断措施(IO1_EOB子程序)由处理器要求一新的缓冲器指针。当DMA检测到一分段或分组结束时(IO1_EOS或IO1_EOP子程序),采用类似的处理过程。在数据传输之后,空闲缓冲器表中的缓冲器指针被释放,分组表和队列表均被相应地更新。
分组和队列指针由处理器程序管理:
如果到达缓冲器或者分组边界,IO装置和DMA即通过中断措施使得程序进行干予。
缓冲器和分组的排队和出队在本地存储器的处理器程序的控制下执行。
中断
实时方式的“中断”机制由SPP支持。一中断是因特殊事件促成的处理器程序的正常顺序的间歇。能造成这种“中断”的事件是与特定情况,例如缓冲器结束、分组结束等相关联的IO装置发出的服务请求。每一特定的中断都对应于一特定的、不能为其他子程序中断的子程序。非常重要的是要使中断子程序尽可能地短以避免超限/负载运行问题。
1.下列中断被“线路和交换发送器”(IO1)所采用。
IO1_EOB:
条件:当服务于一输出IO1时,DMA已卸空一缓冲器(并非分组/分段的最后缓冲器,缓冲器指针未标明为EOS或EOP),DMA指针(D_PTR1)即发出IO1_EOB中断而启动IO1_EOB子程序。
子程序:这一子程序释放空闲缓冲器表中刚卸空的缓冲器的指针。由“输出缓冲器表”(OB_LIST)出队一新指针,并将其传送到DMA指针(D_PTR1)。
IO1_EOP:
条件:当服务于一输出IO1时,DMA已卸空一分组(其指针所含的EOP标志为有效的分组的最后一缓冲器),DMA指针(D_PTR1)发出一IO1_EOP中断,启动一IO1_EOP子程序。
子程序:此子程序释放空闲缓冲器表中输出缓冲器表(OB_LIST)中的当前的和最后一缓冲器指针。
从“输出分组表”(OP_LIST)分离“输出分组指针”(OP_PTR)。
出队下一分组及其OP_LIST中的指针。
IO1_EOS:
条件:在服务于一输出IO1时,DMA已卸空一分段(其指针所含的EOS标志有效而EOP标志无效的分组分段的最后一缓冲器),D_PTR1发出IO1_EOS中断,启动一IO1_EOS子程序。
子程序:此子程序释放FBL中刚被卸空的EOS缓冲器的指针;
分离在输出分组表中刚卸空的分组的指针;
由OP_LIST出队下一单元的指针。
2.下列中断被“线路”和“交换接收器”(IO2)所采用:
IO2_EOB:
条件:在服务于一输入IO2时,DMA已检测到一缓冲器装满的情况(此缓冲器不是一分组的最后缓冲器),D_PTR1提出IO2_EOB中断,启动IO2_EOB子程序。
子程序:此子程序将刚被装满的缓冲器的指针存入一预先安排的“输入缓冲器表”(IB_LIST)中,在此将同一分组的全部缓冲器链接起来;
更新输入缓冲器表的前缀区(IBL_PREFIX);
给DMA指针(D_PTR2)提供新的缓冲器指针以便连续地接收同一分组的数据,空闲缓冲器指针由空闲缓冲器表(FBL)管理;
当用于同一分组时,缓冲器表装满就进行分段。
IO2-EOP:
条件:在服务于一输入IO2时,DMA已完成了一分组的接收(该分组的最后一缓冲器,其指针由硬件标明为EOM),DMA提出一IO2_EOP中断,启动IO2_EOP子程序。为接收新的分组,需要程序的干予以得到新的缓冲器指针。
子程序:此子程序将此最后一被装满的缓冲器的指针存入一预先安排的输入缓冲器表(IB_LIST)中,在此,同一分组的全部缓存器自动地链接起来。一分组的最后一缓冲器指针由DMA指针(D_PTR2)标明为EOP;
更新输入缓冲器表的前缀区(IBL_PREFIX);
输入缓冲器表的分组指针在输入分组表(IP_LISt)中被排队;
给DMA指针(D_PTR2)提供以新的缓冲器指针(B_PTR)以便接收下一分组。
排队和出队操作
连接和分离过程,即本发明的目的,包括有下列操作:
LIN RA,RT:List IN(表输入)
LOUT RA,RT:List OUT(表输出)
LLEH RA,RT:装载表单元头
STLET RA,RB:存储表单元尾
GOTO(COND,)ADDR:取直接地址
对寄存器的ALU操作
1.LIN RA,RT(图10)
LIN(List IN)操作使注明为RA的表指针的TAIL字段增一,并将其结果存入注明为RT的寄存器。如果该表装满,将RA的内容不改变地存进RT。LIN通常与STLET存储器操作联系在一起使用以将一单元加在TAIL位置中的表上。
在这种情况下RT=RA。表装满的指示符(F)按如下更新:
IF INCREMENTED(TAIL)=HEAD then set F=1(表装满)
else set F=0。
对LIN操作检测得的表装满情况不妨碍STLET的执行。不过表的完整性仍不被破坏。
例如一位于地址“001800”上的16单元的表(4字节单元)。它包含6个单元,其HEAD(首)地址为“001820”,其TAIL(尾)地址为“001838”,所以其表指针是“00182038”,具有(例如):
2字节:表识别符(0018)
1字节:HEAD(20)
1字节:TAIL(38)
(0 a 1比特:表容量6位空(0),8 a 23 LID,24 a 27 HEAD,28 a 31 TAIL,LID sur 12位+4位a 0)。设定为保存在R20中。操作LINR20、R20返回“0018203c”。如果执行第二次操作LIN R20,R20(假设同时没有由一LOUT操作分离任何单元),就返回“00182040”。
2.LOUT RT(图11)
LOUT(表输出)操作使注明为RA的表指针的HEAD字段增一,并将其结果存入注明为RT的寄存器。如该表被卸空,就是说如果HEAD字段等于TAIL字段,RA的内容不被改变。此表空指示符(E)按如下更新:
IF TAIL=HEAD then set E=1(表空)
else set E=0
LOUT通常与分离一个表的HEAD单元的LLEH存储器操作相结合应用。
例如以一个位于地址“003400”上的包含5个16单元表为例。其HEAD地址为“003438”而其TAIL地址为“00341C”。因而其表指针是“0034381C”。认为它要被保存在R30中。操作LOUT R30,R30返回“00343C1C”。如果执行了第二次操作LOUT R30,R30(假定此外没有单元被LIN操作加入),将返回“0034401C”。
存储器操作
1.LLEH RA,RT
LLEH(加载表单元表头)操作将HEAD单元从注明为RA的表中传送到RT寄存器。LLEH通常与由一表的HEAD分离一单元(缓冲器或表指针)的LOUT操作相结合应用。在与LOUT相结合应用时,RT必定不等于RA,而RA所指定的寄存器则一定与LOUT中的相同。
例如以一含有5个单元的位于地址“003400”的16单元表为例。其HEAD地址为“003438”,而其TAIL地址为“00341C”。故其表指针为“0034381C”。认为其将被保存于R30中。LLEH R30,R40操作将本地存储器地址单元“003438”的内容送回到R40。
2.STLET RA,RB
STLET(存储表单元表尾)操作将标记为RB的单元存入注明为RA的表的TAIL位置,且RA和RB为表指针。
STLET通常与LIN(表输入)和结合应用以将一单元加到表的TAIL上。
例如以一含有5单元的位于地址“003400”的16单元表为例。其HEAD地址为“003438”,而其TAIL地址为“00341C”。故其表指针即为“0034381C”。认为欲保存于R30中。STLET R30,R40操作将R40的内容写入本地存储器地址单元“00341C”。
注:a.STLET可以不与LIN结合,用来修改一分组的最后一缓冲器的指针。
b.如果将一单元加到一装满的表,这种表满条件(F=1)为LIN操作所检验,不妨碍STLET操作的执行。不过,其存储操作要修改一无效表单元。
排队操作
由LIN和LOUT操作设置的条件指示符有:E List Empty(表卸空)和F List Full(表装满),它们表明处理器的状态,可在同一指令中或稍后由条件排队操作进行测试。
1.GOTO(COND,)ADDR
如果符合测试条件(如果存在的话),就由操作数ADDR给出新的程序地址。如果不符合,程序仍按顺序前进。
标准指令
下列指令促使由一表的HEAD分离一单元(缓冲器或表指针),而由RA给出表指针(图14):
LOUT RA,RA LLEH RA,RB
LOUT(ALU操作140)使得标明为RA的表指针的HEAD增一(寄存器组141)(在下一时钟脉冲信号到达时此RA寄存器以新的HEAD值更新)。同时,存储器操作LLEH将标明为RA的表的单元HEAD由本地存储器(142)传送到寄存器RB(141)。
下列指令使得将RB给定的单元(缓冲器或表指针)加到一个表的TAIL上,表指针由RA给定(图15):
LIN RA,RA STLET RA,RB
LIN(ALU操作150)使标明为RA的表指针的TAIL字段(寄存器组151)增一。(在下一时钟脉冲信号时RA寄存器以新的TAIL值更新)。同时,该标明为RA的表的单元TAIL被存储器操作STLET由寄存器RB传送到本地存储器(152)。
下列指令使得能将一缓冲器(其指针由RB给定)释放到空闲缓冲器表的TAIL,其指针由RA给出:
LIN RA,RA STILET RA,RB。
排队和出队周期
图16表示一经简化的出队周期图形。如前面详述的那样,解除指令需要两个并行处理的操作(LOUT和LLEH)。在同一处理器周期内(160、161),被用作输入操作数的RA寄存器(162)的内容通过U总线(163)被同时送到ALU和本地存储器。ALU使该指针的HEAD字段增一。寄存器RA(162)和RB(165)在时钟信号(166)时分别以新的指针值和单元HEAD更新。排队过程也与此类似。
性能
一通信适配器的信息吞吐量是指一数据分组由输入至输出所需的总的处理时间。但是由于分组的大小是随应用程序而定的,当前采用来评估适配器的性能的两种措施是:
第一,一秒钟内适配器所能处理的固定长度分组数量(分组吞吐量);
第二,在分组长度不固定时每秒钟适配器能发送的比特数量(数据吞吐量)。
性能取决于硬件和处理器的能力,但限制吞吐量的主要因素是分组的处理时间,而这一处理时间则与处理一分组所需的指令数直接相关。对分组的操作可分成两类:
采用中断子程序的缓冲存储处理,这一操作时所有类型适配器均是通用的,这一操作所需的处理时间与分组长度成正比;
采用路径选择操作、装配-分解、分组的格式化、带宽管理、优先权等等的后台(background)处理。这一处理按适配器的功能设计,但在同一应用程序中,此后台处理对所有分组均是相同的,与它们的大小无关。
中断子程序是由处理器支持的实时方式。它们必须尽可能地短以避免输入装置(IO1)越限和输出装置(IO1)负载运行。它们按照数据吞吐量(每秒比特数)支配适配器性能。对于不定长度分组,不出现后台处理,而吞叶量的瓶颈就在于DMA。取决于中断响应时间的DMA响应时间由作为本发明主题的排队和出队操作得到优化。
另一方面,为使分组的吞吐量(适配器每秒能发送的分组数量)最大,后台处理所需的指令数必须降到最低。如前的情况那样,排队和出队操作为本发明所优化(仅仅一个处理器周期或指令)。而且,不同存储器单元间的特殊数据组织结构还提供了对分组的有效操纵。
Claims (22)
1、用于通信网络(200)中分组交换节点(300)的线路适配器(401,402),包含有用来接收(138)和发送(137)固定长度或可变长度数据分组的可编程处理单元(SPP),其特征在于由下列部分组成:
用于缓存所述数据分组的装置(132);
用于识别所述缓存装置中的所述数据分组的装置;
用于在一单一指令中将所述识别装置在存储装置中加以排队(图15)的装置;
用于在另一单一指令中由所述存储装置中出队所述识别装置(图16)的装置;
用于释放所述缓存装置的装置;
每一所述排队和出队指令包含多达三条由所述处理装置并行执行的三个操作:
对所述识别装置作算术逻辑(ALU)操作;
对所述存储装置作存储器操作;
排队操作。
2、按照权利要求1所述的可编程适配器,其特征在于:
所述缓存装置包含有在直接存储器存取组件(134)控制下写和读固定长度缓冲器(800)中的所述数据分组的装置;
所述存储装置包含有在所述处理装置(SPP)控制下分开地存储(131)所述识别装置的装置。
3、按照权利要求2所述的可编程适配器,其特征在于:
缓冲器指针(B_PTR)识别所述缓冲器并被存入一个或多个缓冲器表(B_LIST)中;
分组指针(P_PTR)识别所述缓冲器表(B_LIST)并被存入一个或多个分组表(P_LIST)中;
队列指针(Q_PTR)识另所述分组表(P_LIST)并被存入一个或多个队列表(Q_LIST);
而且其特征在于,每一表均具有一用于存储有关该表所含数据的任何数据的前缀。
4、按照权利要求3所述的可编程适配器,其特征在于所述缓冲器表前缀包含有存在于数据分组标题中的控制和路由选择信息。
5、按照权利要求3中所述的可编程适配器,其特征在于所述分组指针和所述队列指针的每一表指针(表指针是分组指针和队列指针的通用名称)均包含有:
一用于识别一指针表的第一字段(LID);
一用于识别要附加到所述指针表的下一指针的第二字段(TAIL);
一用于识别所述指针表中的第一指针的第三字段(HEAD)。
6、按照权利要求3中所述的可编程适配器,其特征在于每一缓冲器指针包含有:
一用于识别一缓冲器的第一字段(BID);
一用于识别所述缓冲器中的第一数据单元的第二字段(FEP);
一用于识别所述缓冲器中的最后一数据单元的第三字段(LEP);
一用于识别所述缓冲器中的当前数据单元的第四字段(CEP);和
一用作状态指示符的第五字段(SF)。
7、按照权利要求6所述的可编程适配器,其特征在于:
缓冲器表为固定长度;
当欲存入的数据分组大于一单个缓冲器所能容纳的量时可将缓冲器指针存入多个缓冲器表中;
每一缓冲器表的最后一缓冲器指针中的所述状态指示符被设置以实现所述数据分组的不同表之间的相关性。
8、按照权利要求5所述的可编程适配器,其特征在于所述排队指令包含下列措施:
将表指针的TAIL字段加一;
同时存储由LID字段所指定的指针表中TAIL字段所识别的指针;
产生表空(E)或表满(F)指示符。
9、按照权利要求5所述的可编程适配器,其特征在于所述排队指令包含下列措施:
使表指针的HEAD字段增一;
同时读LID所指定的指针表中HEAD字段所识别的指针;
产生表空(E)或表满(F)指示符。
10、按照权利要求8或9所述的可编程适配器,其特征在于所述指令包含有测试所述表空(E)或表满(F)指示符的措施。
11、按照权利要求3所述的可编程适配器,其特征在于对数据分组缓冲措施的管理借助一含有整体缓冲器指针的常设表(空闲缓冲器表)实现。
12、按照权利要求1所述的可编程适配器,其特征在于所述处理装置包含有:
算术逻辑单元;
寄存器组;
排序器;
指令组;
直接存储器存取组件;
物理存储器地址发生器。
13、一种在分组交换节点(300)的线路适配器(401,402)中数据分组排队和出队的方法,所述线路适配器包括有可编程处理装置(SPP),接收(138)和发送(137)固定长度或可变长度数据分组的缓冲(132)和存储装置(131),所述方法的特征在于包括下列步骤:
将所述数据分组缓存进缓存装置(132);
定义识别装置并识别所述缓存装置和所述缓存装置中的所述数据分组;
在一单个指令中将所述识别装置(在存储装置(131)中排队(图15);
在另一单个指令中将所述识别装置从所述存储装置(131)中出队(图16),
每一所述排队和出队指令含有由所述处理装置并行执行的三个操作:
对所述识别装置的算术逻辑(ALU)操作;
对所述存储装置的存储器操作;和
排队操作。
14、按照权利要求13所述的方法,其特征在于:
所述缓存手段包括在直接存储器存取组件(134)的控制下写和读缓冲器(800)中的所述固定长度数据分组的单元;
所述存储手段包括在所述处理器装置(SPP)控制下分开地存储(131)所述识另装置的装置。
15、按照权利要求14所述的方法,其特征在于:
缓冲器指针(B_PTR)识别所述缓冲器并被存入一个或多个缓冲的表(B_LIST);
分组指针(P_PTR)识别所述缓冲器表(B_LIST)并被存入一个或多个分组表(P_LIST);
队列指针(Q_PTR)识别所述分组表(P_LIST)并被存入一个或多个队列表(Q_LIST),
其特征在于每一个表均含有一用于存放与该表所含的数据相关的任何数据的前缀。
16、按照权利要求15所述的方法,其特征在于所述缓冲器表前缀包含有存放在数据分组标题中的控制和路由选择信息。
17、按照权利要求15所述的方法,其特征在于所述分组指针和所述队列指针的每一表指针均包含有:
识别一指针表的第一字段(LID);
识别为附加到所述指针表的下一指针的第二字段(TAIL);
识别所述指针表中第一指针的第三字段(HEAD)。
18、按照权利要求15所述的方法,其特征在于每一缓冲器指针均包含有:
识别一缓冲器的第一字段(BID);
识别所述缓冲器中第一数据单元的第二字段(FEP);
识别所述缓冲器中最后一数据单元的第三字段(LEP);
识别所述缓冲器中当前数据单元的第四字段(CEP);和
用作状态指示符的第五字段(SF)。
19、按照权利要求18所述的方法,其特征在于:
缓冲器表是固定长度的;
当欲存储的数据分组大于单个缓冲器表能所容纳的时,可将缓冲器指针存入多个缓冲器表中;
在每一缓冲器表的最后一缓冲器指针中所述状态指示符被设置,以建立所述数据分组的不同表之间的相关性。
20、按照权利要求17所述的方法,其特征在于所述排队指令包括下列步骤:
将表指针的TAIL字段加一;
同时存储由LID字段所识别的指针表中被TAIL字段识别的指针;
产生表空(E)和表满(F)指示符。
21、按照权利要求17所述的方法,其特征在于所述出队指令包括下列步骤:
将表指针的HEAD字段加一;
同时读取由LID字段所指定的指针表中为HEAD字段所识别的指针;
产生表空(E)和表满(F)指示符。
22、按照权利要求20或21所述的方法,其特征在于所述指令包含为测试所述表空(E)和表满(F)指示符的又一步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP93480087.1 | 1993-05-30 | ||
EP93480087A EP0632625B1 (en) | 1993-06-30 | 1993-06-30 | Programmable high performance data communication adapter for high speed packet transmission networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1097911A true CN1097911A (zh) | 1995-01-25 |
CN1118984C CN1118984C (zh) | 2003-08-20 |
Family
ID=8214838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94106310A Expired - Fee Related CN1118984C (zh) | 1993-06-30 | 1994-05-30 | 高速分组传输网络的可编程线路适配器和数据分组缓存方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US5528587A (zh) |
EP (1) | EP0632625B1 (zh) |
JP (1) | JP2682561B2 (zh) |
KR (1) | KR0121428B1 (zh) |
CN (1) | CN1118984C (zh) |
AT (1) | ATE144870T1 (zh) |
BR (1) | BR9402596A (zh) |
CA (1) | CA2120558C (zh) |
DE (1) | DE69305734T2 (zh) |
TW (1) | TW235388B (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0676878A1 (en) * | 1994-04-07 | 1995-10-11 | International Business Machines Corporation | Efficient point to point and multi point routing mechanism for programmable packet switching nodes in high speed data transmission networks |
US5961614A (en) * | 1995-05-08 | 1999-10-05 | Apple Computer, Inc. | System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal |
US5680589A (en) * | 1995-06-08 | 1997-10-21 | Klingman; Edwin E. | Ring communication system using ISDN |
US5838915A (en) * | 1995-06-21 | 1998-11-17 | Cisco Technology, Inc. | System for buffering data in the network having a linked list for each of said plurality of queues |
US5996018A (en) * | 1995-12-06 | 1999-11-30 | International Business Machines Corporation | Method and apparatus to reduce jitter and end-to-end delay for multimedia data signalling |
US5974466A (en) * | 1995-12-28 | 1999-10-26 | Hitachi, Ltd. | ATM controller and ATM communication control device |
US6201807B1 (en) * | 1996-02-27 | 2001-03-13 | Lucent Technologies | Real-time hardware method and apparatus for reducing queue processing |
JPH09270804A (ja) * | 1996-04-03 | 1997-10-14 | Toshiba Corp | Atm交換機 |
US5935213A (en) * | 1996-05-02 | 1999-08-10 | Fore Systems, Inc. | System and method for generating explicit rate value information for flow control in ATAM network |
US5819113A (en) * | 1996-06-06 | 1998-10-06 | Advanced Micro Devices, Inc. | Method of identifying end of pocket by writing the address of last data into the first location of the memory |
US5995995A (en) * | 1996-09-12 | 1999-11-30 | Cabletron Systems, Inc. | Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory |
US5966546A (en) * | 1996-09-12 | 1999-10-12 | Cabletron Systems, Inc. | Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node |
US5922046A (en) * | 1996-09-12 | 1999-07-13 | Cabletron Systems, Inc. | Method and apparatus for avoiding control reads in a network node |
US5970229A (en) * | 1996-09-12 | 1999-10-19 | Cabletron Systems, Inc. | Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory |
US5941952A (en) * | 1996-09-12 | 1999-08-24 | Cabletron Systems, Inc. | Apparatus and method for transferring data from a transmit buffer memory at a particular rate |
US5909547A (en) * | 1996-10-24 | 1999-06-01 | Lucent Technologies Inc. | Method for shared memory management in network nodes |
US5946318A (en) * | 1997-03-21 | 1999-08-31 | International Business Machines Corporation | Method and apparatus for processing and packetizing data from a data stream |
US5940404A (en) * | 1997-04-30 | 1999-08-17 | International Business Machines Corporation | Method and apparatus for enhanced scatter mode allowing user data to be page aligned |
US6021440A (en) * | 1997-05-08 | 2000-02-01 | International Business Machines Corporation | Method and apparatus for coalescing and packetizing data |
US6487202B1 (en) | 1997-06-30 | 2002-11-26 | Cisco Technology, Inc. | Method and apparatus for maximizing memory throughput |
JPH11145987A (ja) * | 1997-11-12 | 1999-05-28 | Nec Corp | Atmスイッチにおけるセル選択廃棄システム |
US6526060B1 (en) | 1997-12-05 | 2003-02-25 | Cisco Technology, Inc. | Dynamic rate-based, weighted fair scheduler with explicit rate feedback option |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6272140B1 (en) * | 1998-07-02 | 2001-08-07 | Gte Service Corporation | Bandwidth allocation in a wireless personal area network |
US6463078B1 (en) | 1998-07-22 | 2002-10-08 | Microsoft Corporation | Method for switching protocols transparently in multi-user applications |
DE69840947D1 (de) | 1998-09-10 | 2009-08-13 | Ibm | Paketvermittlunganpassungseinrichtung für Datenpaketen mit variabler Länge |
US6266702B1 (en) | 1998-09-28 | 2001-07-24 | Raytheon Company | Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data |
US6374314B1 (en) * | 1998-09-28 | 2002-04-16 | Raytheon Company | Method for managing storage of data by storing buffer pointers of data comprising a sequence of frames in a memory location different from a memory location for pointers of data not comprising a sequence of frames |
US6317415B1 (en) | 1998-09-28 | 2001-11-13 | Raytheon Company | Method and system for communicating information in a network |
US6381647B1 (en) | 1998-09-28 | 2002-04-30 | Raytheon Company | Method and system for scheduling network communication |
US20060242335A1 (en) * | 1998-11-03 | 2006-10-26 | Poisner David I | Race free data transfer algorithm using hardware based polling |
US6614781B1 (en) | 1998-11-20 | 2003-09-02 | Level 3 Communications, Inc. | Voice over data telecommunications network architecture |
US6748421B1 (en) * | 1998-12-23 | 2004-06-08 | Canon Kabushiki Kaisha | Method and system for conveying video messages |
US7328270B1 (en) * | 1999-02-25 | 2008-02-05 | Advanced Micro Devices, Inc. | Communication protocol processor having multiple microprocessor cores connected in series and dynamically reprogrammed during operation via instructions transmitted along the same data paths used to convey communication data |
US6801958B2 (en) * | 1999-12-15 | 2004-10-05 | Texas Instruments Incorporated | Method and system for data transfer |
US6804232B1 (en) | 2000-03-27 | 2004-10-12 | Bbnt Solutions Llc | Personal area network with automatic attachment and detachment |
US7251767B2 (en) | 2000-07-31 | 2007-07-31 | Siemens Aktiengesellschaft | Method for correcting errors in a packet-oriented data transmission |
JP3936550B2 (ja) | 2001-05-14 | 2007-06-27 | 富士通株式会社 | パケットバッファ |
US7194766B2 (en) * | 2001-06-12 | 2007-03-20 | Corrent Corporation | Method and system for high-speed processing IPSec security protocol packets |
US7421257B1 (en) | 2001-11-30 | 2008-09-02 | Stragent, Llc | Receiver scheduling in ad hoc wireless networks |
US20030110233A1 (en) * | 2001-12-10 | 2003-06-12 | Vmic | Reflective memory system and method capable of dynamically sizing data packets |
KR100429897B1 (ko) * | 2001-12-13 | 2004-05-03 | 한국전자통신연구원 | 공유 버퍼형 스위치의 적응 버퍼 배분 방법 및 이에사용되는 스위치 |
US7302692B2 (en) * | 2002-05-31 | 2007-11-27 | International Business Machines Corporation | Locally providing globally consistent information to communications layers |
KR20040046351A (ko) * | 2002-11-27 | 2004-06-05 | (주)텔리언 | 복합 트래픽 처리기능을 갖는 패킷 포워딩 장치 |
US7535895B2 (en) * | 2003-05-29 | 2009-05-19 | Hammerhead Systems, Inc. | Selectively switching data between link interfaces and processing engines in a network switch |
US7076578B2 (en) * | 2003-12-22 | 2006-07-11 | Intel Corporation | Race free data transfer algorithm using hardware based polling |
US20070280223A1 (en) * | 2006-04-14 | 2007-12-06 | Hammerhead Systems, Inc. | Hybrid data switching for efficient packet processing |
JP4509068B2 (ja) * | 2006-07-24 | 2010-07-21 | 富士通株式会社 | パケット処理装置 |
US8139840B1 (en) | 2008-04-10 | 2012-03-20 | Kla-Tencor Corporation | Inspection system and method for high-speed serial data transfer |
JP2011254149A (ja) * | 2010-05-31 | 2011-12-15 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理装置、情報処理方法およびプログラム |
US20120151537A1 (en) * | 2010-12-14 | 2012-06-14 | Samsung Electronics Co., Ltd. | Method and system for asynchronous and isochronous data transmission in a high speed video network |
KR102449231B1 (ko) * | 2020-10-06 | 2022-09-30 | 주식회사 휴먼컴퍼니 | 용기 실링 머신 및 그와 연동된 최저 예상 매출 제공 어플리케이션 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2625392B1 (fr) * | 1987-12-24 | 1993-11-26 | Quinquis Jean Paul | Circuit de gestion de pointeurs d'ecriture de files tampons notamment pour commutateur temporel de paquets auto-acheminables |
JP2736092B2 (ja) * | 1989-01-10 | 1998-04-02 | 株式会社東芝 | バッファ装置 |
EP0433520B1 (en) * | 1989-12-22 | 1996-02-14 | International Business Machines Corporation | Elastic configurable buffer for buffering asynchronous data |
JPH03201846A (ja) * | 1989-12-28 | 1991-09-03 | Fujitsu Ltd | Atm交換機のバッファ制御方式 |
JPH0496546A (ja) * | 1990-08-13 | 1992-03-27 | Fujitsu Ltd | 待ち行列バッファ構成方式 |
-
1993
- 1993-06-30 DE DE69305734T patent/DE69305734T2/de not_active Expired - Lifetime
- 1993-06-30 AT AT93480087T patent/ATE144870T1/de not_active IP Right Cessation
- 1993-06-30 EP EP93480087A patent/EP0632625B1/en not_active Expired - Lifetime
-
1994
- 1994-03-23 TW TW083102551A patent/TW235388B/zh not_active IP Right Cessation
- 1994-04-05 CA CA002120558A patent/CA2120558C/en not_active Expired - Fee Related
- 1994-05-11 JP JP9741694A patent/JP2682561B2/ja not_active Expired - Fee Related
- 1994-05-30 CN CN94106310A patent/CN1118984C/zh not_active Expired - Fee Related
- 1994-05-30 KR KR1019940011970A patent/KR0121428B1/ko not_active IP Right Cessation
- 1994-06-01 US US08/252,299 patent/US5528587A/en not_active Expired - Lifetime
- 1994-06-29 BR BR9402596A patent/BR9402596A/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CA2120558C (en) | 1999-02-16 |
TW235388B (en) | 1994-12-01 |
EP0632625B1 (en) | 1996-10-30 |
DE69305734T2 (de) | 1997-05-15 |
BR9402596A (pt) | 1995-06-13 |
DE69305734D1 (de) | 1996-12-05 |
JPH07147590A (ja) | 1995-06-06 |
CN1118984C (zh) | 2003-08-20 |
ATE144870T1 (de) | 1996-11-15 |
CA2120558A1 (en) | 1994-12-31 |
EP0632625A1 (en) | 1995-01-04 |
JP2682561B2 (ja) | 1997-11-26 |
US5528587A (en) | 1996-06-18 |
KR0121428B1 (ko) | 1997-11-19 |
KR950002300A (ko) | 1995-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1118984C (zh) | 高速分组传输网络的可编程线路适配器和数据分组缓存方法 | |
CN1311377C (zh) | 转寄信息封包的方法 | |
CN1181654C (zh) | 使用网络处理器的网络交换机和方法 | |
CN1239984C (zh) | Vlsi网络处理器和方法 | |
CN1274108C (zh) | 用于atm的交换方法 | |
CN1204509C (zh) | 通信网络装置 | |
CN1204503C (zh) | 用于通信网络的装置、系统及其操作方法 | |
CN1222896C (zh) | 用户简档数据的管理 | |
CN1157989C (zh) | 一种atm交换节点和用于操作atm交换节点的方法 | |
CN1131624C (zh) | 短信元复用atm传送系统及传送方法 | |
CN1611035A (zh) | 数据流处理器中的数据流管理 | |
CN1192098A (zh) | 分布式网络计算系统及该系统用的信息交换装置和方法 | |
CN1135897C (zh) | 在异步传送模式节点处理不同异步传送模式适应层协议的方法 | |
CN1222902C (zh) | 通信网中的方法和设备 | |
CN1711784A (zh) | 用于发送sms以及文本消息的系统和方法 | |
CN1319209A (zh) | 数字通信处理器 | |
CN1695127A (zh) | 网络接口和协议 | |
CN1794729A (zh) | 数据配置管理方法及系统和装置以及程序 | |
CN1319300A (zh) | 移动通信系统中按照无线电链路协议发送可变长度数据的装置和方法 | |
CN1531282A (zh) | 分组中继装置 | |
CN1172239C (zh) | 执行移动对象的方法 | |
CN1132881A (zh) | 交换机适配器、计算机和数据交换方法 | |
CN1135898C (zh) | 处理不同的异步传送模式适应层协议的异步传送模式系统 | |
CN1534504A (zh) | 利用单处理器操作系统的并行处理系统及并行处理程序 | |
CN1181545A (zh) | 信息获取代理系统和信息传送管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030820 Termination date: 20120530 |