KR19980075620A - How to Process Reassembled Packets in ATM Networks - Google Patents

How to Process Reassembled Packets in ATM Networks Download PDF

Info

Publication number
KR19980075620A
KR19980075620A KR1019970011862A KR19970011862A KR19980075620A KR 19980075620 A KR19980075620 A KR 19980075620A KR 1019970011862 A KR1019970011862 A KR 1019970011862A KR 19970011862 A KR19970011862 A KR 19970011862A KR 19980075620 A KR19980075620 A KR 19980075620A
Authority
KR
South Korea
Prior art keywords
atm
packet
received
atm network
interrupt
Prior art date
Application number
KR1019970011862A
Other languages
Korean (ko)
Inventor
김덕년
Original Assignee
배순훈
대우전자 주식회사
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 배순훈, 대우전자 주식회사 filed Critical 배순훈
Priority to KR1019970011862A priority Critical patent/KR19980075620A/en
Publication of KR19980075620A publication Critical patent/KR19980075620A/en

Links

Abstract

본 발명은, ATM 망접속기(Network Interface Card: NIC)의 수신단에서 수신된 ATM 셀들(Cells)을 재조립하여 형성된 패킷(packet)을 상위계층(upper layer)에 전달하기 위한 방법에 관한 것이다.The present invention relates to a method for delivering a packet formed by reassembling ATM cells received at a receiving end of an ATM network interface card (NIC) to an upper layer.

이러한 본 발명의 방법은 호스트시스템에서 운용되는 응용프로그램의 요구에 따라 ATM 망접속기 드라이버가 ATM 망접속기를 제어하여 데이터를 ATM 통신방식으로 전송하고, ATM 망접속기가 수신된 ATM 셀들을 재조립하여 패킷을 형성한 후 인터럽트를 통해 상기 ATM 망접속기 드라이버에 알리도록 된 ATM 단말기에 있어서, 수신된 ATM 셀을 재조립하여 패킷을 형성한 후 형성된 패킷의 수가 소정수에 도달하거나 첫 번째 패킷이 수신되고 나서 소정시간이 경과되면 인터럽트를 발생하여 상기 ATM 망접속기 드라이버에 처리를 요청하도록 하는 것을 특징으로 한다.According to the method of the present invention, the ATM network connector driver controls the ATM network connector according to the request of an application program operating in the host system, and transmits data in the ATM communication method, and the ATM network connector reassembles the received ATM cells to send the packet. In an ATM terminal configured to notify the ATM network driver driver through an interrupt after forming a packet, the number of packets formed after reassembling a received ATM cell to form a packet reaches a predetermined number or after the first packet is received. When a predetermined time has elapsed, an interrupt is generated to request processing from the ATM network driver.

따라서 본 발명은 호스트에서 운용되는 NIC드라이버에 빈번한 인터럽트처리로 인한 부담을 경감시킬 수 있다.Therefore, the present invention can reduce the burden caused by frequent interrupt processing on the NIC driver operating in the host.

Description

ATM 망접속기에서 재조립된 패킷들을 처리하는 방법How to Process Reassembled Packets in ATM Networks

본 발명은 ATM 망접속기(Network Interface Card: NIC)의 수신단에서 수신된 ATM 셀들(Cells)을 재조립하여 형성된 패킷(packet)을 상위계층(upper layer)에 전달하기 위한 방법에 관한 것이다.The present invention relates to a method for delivering a packet formed by reassembling ATM cells received at a receiving end of an ATM network interface card (NIC) to an upper layer.

일반적으로 ATM 통신방식은 소비자의 다양한 서비스를 하나의 통합된 망(Integrated Network)으로 지원할 수 있도록 계층화된 프로토콜로 구현된다. 즉, 종래의 공중전화망(PSTN)이나 패킷 교환망(PSDN)이 음성 서비스 혹은 데이터 서비스를 제공하기 위한 전용망이었음에 비해 ATM 망은 음성, 데이터, 영상 서비스등을 하나의 통합망으로 제공할 수 있도록 설계된 것으로 'B-ISDN'의 근간을 이루고 있다.In general, ATM communication is implemented as a layered protocol to support various services of consumers as one integrated network. In other words, the conventional public telephone network (PSTN) or packet switched network (PSDN) was a dedicated network for providing voice or data services, whereas the ATM network was designed to provide voice, data, and video services in one integrated network. It is the basis of 'B-ISDN'.

도 1은 ATM 프로토콜 참조 모델(protocol reference model)을 도시한 개념도이다. 여기서, 프로토콜 모델은 관리 평면(management plane)과, 제어 평면(control plane), 및 사용자 평면(user plane)으로 구성되고, 상기 관리 평면은 다시 계층 관리와 평면 관리로 구성되게 된다. 그리고, 평면 관리는 시스템의 전반적인 관리를 의미하고, 계층관리는 자원 및 사용 변수의 관리와 OAM 정보관리를 수행하게 된다.1 is a conceptual diagram illustrating an ATM protocol reference model. Here, the protocol model is composed of a management plane, a control plane, and a user plane, and the management plane is composed of hierarchical management and plane management. In addition, the plane management means the overall management of the system, and the hierarchical management manages resource and usage variables and OAM information management.

또한, 제어 평면에서는 호(call) 제어 및 접속(connection; 혹은 연결이라고도 한다) 제어 정보를 관장하고, 사용자 평면에서는 사용자 정보의 전달을 수행하게 된다. 그리고, 제어 평면과 사용자 평면의 프로토콜은 상위 계층과, ATM 적응(AAL) 계층, ATM 계층, 및 물리 계층으로 구성되게 된다.In addition, the control plane manages call control and connection (also called connection) control information, and the user plane transmits user information. The protocol of the control plane and the user plane is composed of a higher layer, an ATM adaptation (AAL) layer, an ATM layer, and a physical layer.

여기서, ATM 적응계층(ATM Adaptation Layer)은 ATM 계층에서 제공하는 서비스를 상위계층 사용자의 요구사항에 적응시키는 기능을 수행하게 된다. 따라서, ATM 적응계층은 사용자 평면, 제어평면의 상위기능 및 관리평면의 지원을 수행함과 더불어 ATM 통신방식 환경과 비 ATM 통신방식 환경과의 접면을 제공할 수 있어야 한다.Here, the ATM Adaptation Layer performs a function of adapting a service provided by the ATM layer to the requirements of a higher layer user. Therefore, the ATM adaptation layer should be able to provide an interface between the ATM communication environment and the non-ATM communication environment, while supporting the user plane, the higher level control plane and the management plane.

또한, ATM 적응계층(AAL)에서는 상위계층의 프로토콜 데이터 유니트(PDU; protocol data unit)를 ATM 셀의 유료부하 구간에 매핑시킴과 더불어 전송오류를 처리하고, 손실된 셀과 삽입된 셀의 처리 및 흐름제어와 타이밍 제어기능을 제공해야 한다. 이러한 ATM 적응계층은 분할 및 재결합(SAR; segmentation and reassembly) 부계층과 수렴 부계층(CS; convergence sublayer)의 두 부계층으로 더욱 세분된다.In addition, the ATM adaptation layer (AAL) maps a protocol data unit (PDU) of a higher layer to the payload interval of an ATM cell, handles transmission errors, processes lost cells and inserted cells, Flow control and timing control must be provided. The ATM adaptation layer is further subdivided into two sublayers: a segmentation and reassembly (SAR) sublayer and a convergence sublayer (CS).

수렴 부계층(CS)은 특정 서비스에 관련된 기능을 수행하고, 분할 및 재결합(SAR)부계층은 서비스 종류에 관계없는 기능을 처리하여 사용자 정보의 분할과 재결합에 관련된 기능을 처리하게 된다. 따라서, 송신측에서는 상기 수렴 부계층(CS)이 상위계층으로부터 사용자 정보로 인가받아 헤더와 트레일러를 붙여 수렴 부계층 프로토콜 데이터 유니트(CS-PDU)를 형성하여 분할 및 재결합(SAR) 부계층으로 보내고, 이 분할 및 재결합(SAR) 부계층은 이를 ATM 셀의 크기로 절단한 후 헤더와 트레일러를 붙여 분할 및 재결합 프로토콜 데이터 유니트(SAR-PDU)를 형성하여 ATM계층을 통해 전송하게 된다.The convergence sublayer (CS) performs a function related to a specific service, and the segmentation and recombination (SAR) sublayer processes a function related to division and recombination of user information by processing a function irrespective of a service type. Therefore, at the transmitting side, the convergent sublayer (CS) is applied as user information from an upper layer, attaches a header and a trailer, forms a convergent sublayer protocol data unit (CS-PDU), and sends it to a split and recombination (SAR) sublayer. This split and recombine (SAR) sublayer cuts it to the size of an ATM cell, attaches a header and trailer to form a split and recombine protocol data unit (SAR-PDU), and transmits it through the ATM layer.

그리고, 수신측에서는 분할 및 재결합(SAR) 부계층이 ATM 계층을 통해 수신된 분할 및 재결합 프로토콜 데이터 유니트(SAR-PDU) 중 유료부하 구간만을 추출하여 수렴 부계층 프로토콜 데이터 유니트(CS-PDU)를 형성한 후 수렴 부계층(CS)으로 전달하고, 이 수렴 부계층(CS)에서는 수신된 수렴 부계층 프로토콜 데이터 유니트(CS-PDU) 중 상위계층 사용자 정보만 추출하여 상위계층으로 전달하게 된다.In addition, the receiving side extracts only the payload section of the segmentation and recombination protocol data unit (SAR-PDU) received through the ATM layer to form a convergence sublayer protocol data unit (CS-PDU). After that, the information is transferred to the convergence sublayer CS, and the convergence sublayer CS extracts only upper layer user information among the received convergence sublayer protocol data units CS-PDUs and delivers the information to the upper layer.

이때, 송신과정에 있어서 각 부계층을 통과할 때마다 붙는 헤더와 트레일러는 오류처리와 버퍼관리 및 순서보존 등과 관련된 것이고, 수신과정에 있어서는 이들 정보를 분석하여 오류가 없다고 판단되면 사용자 정보를 상위의 계층으로 전달하게 된다.At this time, the header and the trailer attached to each sub-layer in the transmission process are related to error processing, buffer management, and order preservation. Will be passed to the layer.

이러한 비동기 전송모드(ATM) 통신방식은 다음 표 1에서와 같이 계층적인 구조를 이루고, 각각의 계층별로 표준화된 기준을 가지고 있다.This asynchronous transmission mode (ATM) communication method has a hierarchical structure as shown in Table 1 below, and has standardized standards for each layer.

[표 1]TABLE 1

계 층Hierarchy 부 계 층Tier 기 능function 상위계층Upper hierarchy 상위계층기능Higher layer function ATM 적응계층ATM Adaptation Layer 수렴(CS) 부계층Convergence (CS) sublayer 수렴기능Convergence function 절단및 재결합(SAR)Cutting and Recombination (SAR) 절단기능 및 재결합기능Cutting function and recombination function ATM 계층ATM layer 일반흐름제어 및 셀헤더 처 리기능General flow control and cell header processing 물리 계층Physical layer 전송수렴(TC)Transmission Convergence (TC) HEC 신호발생 및 추출기능HEC signal generation and extraction function 물리매체Physical medium 비트시간 정보기능Bit time information function

상기 표 1에서와 같이 비동기 전송모드 통신방식은 물리계층, ATM 계층, ATM 적응계층(AAL: ATM adaptation layer), 상위계층과 같이 수직적인 구조로 구분되고, AAL 계층은 절단 및 재결합 부계층(SAR: segmentation and reassembly sublayer)과 수렴(CS: convergence sublayer) 부계층으로 구분되며, 물리계층은 물리매체(PM)와 전송수렴(TC: transmission convergence) 부계층으로 다시 구분되게 된다.As shown in Table 1, the asynchronous transmission mode communication method is divided into vertical structures such as a physical layer, an ATM layer, an ATM adaptation layer (AAL), and an upper layer, and the AAL layer is a cut and recombination sublayer (SAR). It is divided into segmentation and reassembly sublayer (CS) and convergence sublayer (CS) sublayers, and the physical layer is divided into physical media (PM) and transmission convergence (TC) sublayers.

또한, 비동기 전송모드 통신방식에서 사용자가 요구하는 서비스는 그 특성에 따라 다음 표 2와 같이 분류될 수 있다.In addition, a service required by a user in an asynchronous transmission mode communication method may be classified as shown in Table 2 below according to its characteristics.

[표 2]TABLE 2

서비스의 종류Type of service 종단간의시간관계End-to-end time relationship 비트율Bit rate 연결모드Connection mode 서비스의 예Example of service A종Class A 실시간성Real time 항등Identity 연결성Connectivity 항등율 영상신호Video signal B종Class B 실시간성Real time 가변variable 연결성Connectivity 가변율 영상신호Variable Rate Video Signal C종Class C 비실시간성Non-real-time 가변variable 연결성Connectivity 연결성 데이터Connectivity data D종Class D 비실시간성Non-real-time 가변variable 비연결성Connectionless 비연결성 데이터Connectionless data

상기 서비스에 대응하는 AAL 프로토콜은 다음 표 3과 같이 AAL 1 에서부터 AAL 5까지로 구분되게 된다.The AAL protocol corresponding to the service is divided into AAL 1 to AAL 5 as shown in Table 3 below.

AAL 형태AAL form 대표적인 기능Typical feature AAL 1AAL 1 항등비트율의 A종 서비스를 지원Support class A service of equal bit rate AAL 2AAL 2 실시간성, 가변비트율의 B종 서비스를 지원Support real-time, variable bit rate Class B service AAL 3/4AAL 3/4 가변비트율의 C종 및 D종 서비스를 지원Support class C and D services with variable bit rate AAL 5AAL 5 AAL 3/4 기능을 간소화하여 고속서비스 지원High speed service by simplifying AAL 3/4 function

상기 표 3에 있어서 AAL 계층의 형태(type)는 서비스의 종류에 따라 해당 서비스를 효율적으로 처리해 주기 위해 AAL 1, AAL 2, AAL 3/4, AAL 5와 같이 수평적으로 구분되게 된다.In Table 3, the type of the AAL layer is horizontally divided as AAL 1, AAL 2, AAL 3/4, and AAL 5 to efficiently process the corresponding service according to the type of service.

한편, ATM 망접속기(NIC)를 사용하는 ATM 단말기는 보통 AAL계층, ATM계층, 그리고 물리계층의 기능을 담당하는 ATM 망접속기(NIC)와, ATM망접속기에 대한 제어 및 상위계층의 기능을 수행하는 NIC 드라이버를 구비하고 있다. NIC 드라이버는 패킷을 송수신하기 위해서 메모리를 할당/해제하고, 제어변수들의 값을 갱신하거나 여러 원인으로 발생되는 인터럽트를 처리하는 기능을 수행한다.On the other hand, an ATM terminal using an ATM network connector (NIC) usually performs an ATM network connector (NIC), which is responsible for the functions of the AAL layer, the ATM layer, and the physical layer, controls the ATM network connector, and performs higher layer functions. NIC driver is provided. The NIC driver allocates and frees memory to send and receive packets, updates the values of control variables, and handles interrupts caused by various causes.

그런데 ATM 망접속기의 수신단에서는 ATM 셀을 재조립하여 패킷이 완성되면 인터럽트를 발생시켜 드라이버 루틴에 처리할 것을 알린다. 즉, 종래에는 매 패킷이 수신될 때마다 인터럽트를 발생하였기 때문에 패킷이 연속적으로 수신될 경우, 인터럽트의 발생빈도가 과다하여 NIC 드라이버 루틴이 제대로 처리하지 못하게 되는 경우가 발생하고, 따라서 ATM단말기의 통신관련 동작이 불안정해지게 되는 문제점이 있다.However, the receiving end of the ATM network connector reassembles the ATM cell and generates an interrupt to inform the driver routine when the packet is completed. That is, conventionally, since an interrupt is generated every time a packet is received, when a packet is continuously received, there is a case where the interrupt occurrence frequency is excessive and the NIC driver routine cannot handle it properly, thus communicating with the ATM terminal. There is a problem that the related operation becomes unstable.

이에 본 발명은 상기와 같은 문제점을 해소하기 위하여 제안된 것으로, ATM 망접속기(NIC)의 수신단에서 소정 수의 패킷들이 재조립되었을 때 인터럽트를 발생시키도록하여 망접속기 드라이버 루틴이 여러개의 패킷을 일괄처리할 수 있도록 하는 ATM 망접속기의 수신 패킷 처리방법을 제공하는데 그 목적이 있다.Accordingly, the present invention has been proposed to solve the above problems, and generates a interrupt when a predetermined number of packets are reassembled at the receiving end of an ATM network connector (NIC) so that the network driver driver routine aggregates several packets. An object of the present invention is to provide a method for processing a received packet of an ATM network accessor.

상기와 같은 목적을 달성하기 위하여 본 발명의 ATM 망접속기는, 호스트시스템에서 운용되는 응용프로그램의 요구에 따라 ATM 망접속기 드라이버가 ATM 망접속기를 제어하여 데이터를 ATM 통신방식으로 전송하고, ATM 망접속기가 수신된 ATM 셀들을 재조립하여 패킷을 형성한 후 인터럽트를 통해 상기 ATM 망접속기 드라이버에 알리도록 된 ATM 단말기에 있어서, 수신된 ATM 셀을 재조립하여 패킷을 형성한 후 형성된 패킷의 수가 소정수에 도달하면 인터럽트를 발생하여 상기 ATM 망접속기 드라이버에 처리를 요청하도록 하는 것을 특징으로 한다.In order to achieve the above object, the ATM network connector of the present invention transmits data in an ATM communication method by controlling an ATM network connector according to a request of an application program operating in a host system. The ATM terminal is configured to reassemble the received ATM cells to form a packet and inform the ATM network driver driver through an interrupt, wherein the number of packets formed after reassembling the received ATM cell to form a packet is determined. When it arrives, it generates an interrupt to request processing from the ATM network driver.

도 1은 일반적인 ATM 프로토콜 참조모델을 도시한 개념도,1 is a conceptual diagram illustrating a general ATM protocol reference model;

도 2는 일반적인 ATM 망접속기를 도시한 구성도,2 is a block diagram illustrating a general ATM network connector;

도 3은 도 2에서 처리되는 데이터 포맷의 예를 도시한 개략도,3 is a schematic diagram showing an example of a data format processed in FIG. 2;

도 4는 패킷이 수신될 때마다 인터럽트를 발생하는 종래기술의 개념을 도시한 도면,4 illustrates a concept of the prior art that generates an interrupt each time a packet is received;

도 5의 (가) 및 (나)는 본 발명에 따라 패킷들이 일정 수 모이거나 일정 시간이 경과되면 인터럽트를 발생하는 개념을 도시한 도면,5A and 5B illustrate a concept of generating an interrupt when a certain number of packets or a predetermined time elapse according to the present invention;

도 6은 본 발명에 따라 수신된 패킷의 수가 일정 수가 되면 인터럽트를 발생하여 재조립된 패킷을 처리하는 흐름을 도시한 도면,6 is a flowchart illustrating a process of processing an reassembled packet by generating an interrupt when the number of received packets is a certain number according to the present invention;

도 7은 본 발명에 따라 수신된 패킷의 수가 일정 수가 되거나 일정 시간이 경과되면 인터럽트를 발생하여 재조립된 패킷을 처리하는 흐름을 도시한 도면이다.FIG. 7 is a flowchart illustrating a process of processing an reassembled packet by generating an interrupt when a predetermined number of received packets or a predetermined time elapse according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

10: 호스트시스템11: 호스트 메모리10: host system 11: host memory

12: 프로세서13: 버스제어기12: processor 13: bus controller

20: ATM 망접속기21: AAL처리부20: ATM network connector 21: AAL processing unit

22: SONET/ATM 라인정합부23: 송수신기22: SONET / ATM line matching unit 23: transceiver

30: 입출력버스30: I / O bus

이하, 본 발명의 바람직한 실시예들을 첨부한 예시도면을 참조하여 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail.

먼저, 본 발명이 적용되기에 적합한 전형적인 ATM 망접속기의 구성 및 동작 예를 설명한 후 본 발명에 따른 수신 패킷 처리방법의 실시예를 설명하기로 한다.First, an example of a configuration and operation example of a typical ATM network connector suitable for applying the present invention will be described, followed by an embodiment of a method for processing a received packet according to the present invention.

도 2는 본 발명이 적용되기에 적합한 ATM 망접속기(NIC)의 예를 도시한 블록도이다. 도 2를 참조하면, 호스트시스템(10)은 ATM 망접속기(20)를 통해 도시되지 않은 ATM 망에 접속되어 상대측 호스트시스템과 ATM방식으로 데이터를 교환하도록 되어 있다.2 is a block diagram showing an example of an ATM network accessor (NIC) suitable for application of the present invention. Referring to FIG. 2, the host system 10 is connected to an ATM network (not shown) through an ATM network connector 20 to exchange data with an opposite host system in an ATM manner.

본 발명의 실시예에서 호스트시스템(10)은 워크스테이션(Workstation)과 같은 컴퓨터로서, 적어도 호스트 메모리(11)와 프로세서(12), 및 버스제어기(13)를 구비하고 있으며 입출력버스(본 발명의 실시예에서는 S버스:30)를 통해 ATM 망접속기(20)와 연결되어 있다. 그리고 호스트시스템(10)에서는 사용자에게 서비스를 제공해주기 위한 응용프로그램(application program)이 최상위에서 수행되고 있고, 응용프로그램의 요구에 따라 ATM 통신기능을 제공해줄 수 있는 ATM 망접속기 드라이버가 설치되어 있다. 따라서 초기화과정에서 ATM 망접속기 드라이버가 ATM통신과 관련된 각종 테이블 및 링(RING)들을 셋업 해주고, 응용 프로그램의 요구에 따라 각종 테이블들의 데이터를 업데이트(update)시켜준다.In an embodiment of the present invention, the host system 10 is a computer, such as a workstation, and includes at least a host memory 11, a processor 12, and a bus controller 13. In the embodiment, the S bus 30 is connected to the ATM network connector 20. In the host system 10, an application program for providing a service to a user is executed at a top level, and an ATM network connector driver is installed to provide an ATM communication function according to a request of the application program. Therefore, during the initialization process, the ATM driver sets up various tables and rings related to ATM communication and updates the data of the various tables according to the request of the application program.

ATM 망접속기(NIC:20)는 NIC 드라이버의 직접적인 제어를 받으면서 응용프로그램의 요구에 따라 송신할 패킷을 ATM 셀로 분할하여 ATM망측으로 송신하고, 수신된 ATM 셀들을 재조립하여 패킷을 형성한 후 응용프로그램측에 전달한다. 이러한 ATM 망접속기(20)는 통상 호스트시스템의 확장슬롯에 실장되도록 되어 있고, 호스트시스템(10)과 입출력버스(30)를 통해 접속되도록 되어 있다.Under the direct control of the NIC driver, the ATM network accessor (NIC: 20) divides a packet to be transmitted into an ATM cell according to a request of an application program and transmits the packet to the ATM network, reassembles the received ATM cells, forms a packet, and then applies the application. Deliver to the program. The ATM network connector 20 is usually mounted in an expansion slot of the host system, and is connected to the host system 10 through the input / output bus 30.

이와 같은 ATM 망접속기(20)는 도 2에 도시된 바와 같이, AAL처리부(21), SONET/ATM 라인 정합부(22), 송수신기(23), 제어램(25), 이피롬(26) 등으로 구성되어 ATM통신방식의 물리계층, ATM 계층, AAL계층의 기능등을 처리한다. 특히, 본 발명의 실시예에서 ATM 망접속기(NIC:20)는 ATM 셀들을 동기식광네트웍(SONET: Synchronous Optical NETwork) STS-3c 프레임 포맷(155.52M bps)으로 매핑한 후 광동기식 전송망을 통해 ATM망에 연결되도록 되어 있다.As shown in FIG. 2, the ATM network connector 20 includes an AAL processing unit 21, a SONET / ATM line matching unit 22, a transceiver 23, a control RAM 25, an pyramid 26, and the like. It handles the functions of physical layer, ATM layer and AAL layer of ATM communication system. In particular, in the embodiment of the present invention, the ATM network connector (NIC) 20 maps ATM cells to a synchronous optical network (SONET) STS-3c frame format (155.52M bps) and then, through the optical synchronization network, the ATM. It is intended to be connected to the network.

도 2를 참조하면, AAL처리부(21)는 로칼 메모리 버스(Local memory bus)를 통해 제어램(25)과 연결되며, 로칼 슬레이브 버스(Local slave bus)를 통해 이피롬(26)과 연결된다. 이때 이피롬(26)은 라인 정합부(22)와도 로칼 버스를 통해 연결된다.Referring to FIG. 2, the AAL processor 21 is connected to the control RAM 25 through a local memory bus and to the pyramid 26 through a local slave bus. In this case, the pyramid 26 is also connected to the line matching unit 22 through the local bus.

그리고 AAL처리부(21)는 입출력버스(30)와 접속되어 호스트시스템의 메모리(11)를 직접 억세스할 수 있음과 아울러 제어 메모리(25)을 리드/라이트할 수 있고, 호스트시스템의 프로세서(12)도 입출력버스를 통해 제어 메모리(25)를 직접 억세스하여 리드/라이트할 수 있도록 되어 있다.In addition, the AAL processor 21 is connected to the input / output bus 30 to directly access the memory 11 of the host system and to read / write the control memory 25. The processor 12 of the host system can be read. In addition, the control memory 25 can be directly accessed and read / written through the I / O bus.

호스트시스템(10)에서 운용되는 응용 프로그램이 ATM관련 서비스를 요청하면, 호스트시스템에서 운용되는 NIC드라이버가 그 요청에 따라 ATM 망접속기(20)를 제어하여 ATM관련 서비스를 응용프로그램에 제공하게 한다. 예컨대, 응용프로그램이 소정의 메시지 데이터를 호스트 메모리(11)에 저장해 놓고 데이터를 전송해주길 요구하면, NIC 드라이버가 입출력버스(30)를 통해 AAL처리부(21)에 데이터 전송을 요구한다.When an application program operating in the host system 10 requests an ATM related service, the NIC driver operating in the host system controls the ATM network connector 20 according to the request to provide the ATM related service to the application program. For example, when an application program stores predetermined message data in the host memory 11 and requests data to be transmitted, the NIC driver requests data transmission to the AAL processing unit 21 through the input / output bus 30.

AAL처리부(21)는 호스트 메모리(11)에 저장된 메시지를 소정 길이(48바이트) 단위로 읽어와 AAL 프로토콜 포맷에 맞춰 ATM 셀을 형성한 후, 물리계층(24)의 라인 정합부(22)로 내려 보낸다. SONET/ATM 라인 정합부(22)는 ATM 셀들을 SONET STS-3c 포맷으로 매핑하고, 송수신기(23)는 STS-3c 포맷의 직렬 데이터를 광신호로 변환하여 광케이블을 통해 ATM망측으로 출력한다.The AAL processing unit 21 reads the message stored in the host memory 11 in units of a predetermined length (48 bytes), forms an ATM cell in accordance with the AAL protocol format, and then sends it to the line matching unit 22 of the physical layer 24. Send it down. The SONET / ATM line matching unit 22 maps the ATM cells to the SONET STS-3c format, and the transceiver 23 converts the serial data of the STS-3c format into an optical signal and outputs the optical signal to the ATM network side through the optical cable.

한편, 송수신기(23)를 통해 수신된 데이터는 라인정합부(22)에서 ATM 셀로 분리 추출된 후 AAL처리부(21)로 입력된다. AAL 처리부(21)는 수신된 ATM셀들에서 헤더와 유료부하(payload)를 분리한 후 유료부하를 다시 재결합하여 메시지(패킷)를 복원하고, 매세지의 재조립이 완료되면 호스트시스템(10)에 인터럽트로 이를 알린다. 그리고 AAL처리부(21)로부터 재조립완료를 나타내는 인터럽트가 수신되면, 호스트시스템의 NIC드라이버가 소정의 처리절차에 따라 수신된 메시지를 응용 프로그램측에 전달한다.On the other hand, the data received through the transceiver 23 is separated from the line matching section 22 to the ATM cell and input to the AAL processing section 21. The AAL processor 21 separates the header and the payload from the received ATM cells, recombines the payload, restores the message (packet), and interrupts the host system 10 when the message reassembly is completed. Inform this. When an interrupt indicating completion of reassembly is received from the AAL processing unit 21, the NIC driver of the host system delivers the received message to the application program side according to a predetermined processing procedure.

이와 같이 AAL 처리부(21)에서는 상위계층으로부터 전달된 메시지를 ATM셀들로 분할하여 상대측으로 전송함과 아울러 수신된 ATM셀들을 재조립하여 메시지를 복원하고, 재조립이 완료되면 인터럽트를 통해 호스트시스템의 NIC 드라이버에 이를 알려준다.As described above, the AAL processor 21 divides the message transmitted from the upper layer into ATM cells, transmits the message to the counterpart, and reassembles the received ATM cells to restore the message. Notify the NIC driver.

이러한 ATM 망접속기에서 상위계층과 AAL처리부 사이에 데이터들이 전달되는 구조를 좀더 자세히 살펴보면 다음과 같다.Looking at the structure of the data transfer between the upper layer and the AAL processing unit in such an ATM network connector in more detail as follows.

호스트시스템(10)과 AAL처리부(20) 사이에 전달되는 데이터 포맷은 도 3에 도시된 바와 같이, 송신과 수신으로 구분되어 호스트 메모리(11)와 제어 메모리(25)에 각각 위치한다. 즉, 호스트 메모리(11)에는 송신시에 사용되는 송신 디스크립터 링(TX discripter ring)과, 송신 완료 링(TX completion ing), 및 데이터 버퍼들이 위치함과 아울러, 수신시에 사용되는 데이터 버퍼, 수신 완료 링(RX completion ring), 2개의 프리 버퍼 링(free buffer ring)이 위치한다. NIC의 제어 램(25)에는 송신시에 이용되는 대역 할당 테이블과 송신 DMA 상태 테이블이 위치하고, 수신시 사용되는 수신 DMA 상태 테이블이 위치한다.The data format transmitted between the host system 10 and the AAL processing unit 20 is divided into a transmission and a reception, as shown in FIG. 3, and located in the host memory 11 and the control memory 25, respectively. That is, the host memory 11 includes a TX descripter ring, TX completion ring, and data buffers used for transmission, and a data buffer and reception used for reception. A completion ring (RX completion ring) and two free buffer rings are located. In the control RAM 25 of the NIC, a band allocation table and a transmission DMA state table used for transmission are located, and a reception DMA state table used for reception is located.

호스트 메모리(11)에 구현되는 송신 디스크립터 링은 255개로 이루어져 255개의 가상채널(Virtual Channel:VC)을 가질 수 있으며, 각 링은 256개의 엔트리를 가지고 있다. 그리고 각 엔트리는 4워드(1워드는 32비트)로 구현되어 송신을 위해 큐잉된 하나의 송신 데이터 버퍼를 가리킨다. 통상적으로, 255개의 모든 송신 디스크립터 링이 사용되지는 않고, 각 링은 필요한 가상채널 수만큼만 사용된다. 예컨대, 제1 송신 디스크립터 링은 음성채널로 사용되고, 제2 송신 디스크립터 링은 비디오 채널로 사용되며, 제3 디스크립터 링은 TCP/IP를 위해 사용될 수 있다.The transmission descriptor ring implemented in the host memory 11 may be composed of 255, and may have 255 virtual channels (VCs), and each ring has 256 entries. Each entry is then implemented in four words (one word is 32 bits) to point to one transmission data buffer queued for transmission. Typically, not all 255 transmit descriptor rings are used, and each ring is only used for the required number of virtual channels. For example, the first transmission descriptor ring may be used as a voice channel, the second transmission descriptor ring may be used as a video channel, and the third descriptor ring may be used for TCP / IP.

이때 송신 디스크립터 링의 각 엔트리는 4 워드로 구성되는데, 워드 3은 AAL5의 테일(tail)을 나타내고, 워드 2는 4 바이트의 ATM 헤더를 나타내며, 워드 1은 송신 데이터 버퍼의 시작 위치를 가리키는 버퍼 포인터이고, 워드 0은 제어필드, 패킷 길이, 및 버퍼길이 등을 나타낸다. 워드 0을 좀더 살펴보면, 워드 0의 비트 31은 오운(OWN)비트로서 송신을 위한 패킷이 큐잉되면 호스트에 의해 셋되어 AAL 처리부가 억세스하도록 하고, 패킷의 송신이 완료되면 리셋되어 호스트가 억세스할 수 있게 한다. 워드 0의 비트 30은 하나의 패킷을 전송하는데 다수개의 버퍼가 사용될 경우에 시작 버퍼를 나타내고, 비트 29는 마지막 버퍼를 나타낸다. 비트 27은 AAL 타입을 나타내고, 비트 26 내지 비트 16은 패킷의 길이를 나타내고, 비트 15 내지 비트 0은 버퍼의 길이를 나타낸다. 이때 버퍼의 최대 크기는 64K 바이트이다. 이와 같이 송신 디스크립터는 전송할 패킷이 있는 호스트 메모리 상의 버퍼들을 나타낸다.Each entry in the transmit descriptor ring consists of 4 words, where word 3 represents the tail of AAL5, word 2 represents the 4-byte ATM header, and word 1 indicates the start of the transmit data buffer. And word 0 represents a control field, a packet length, a buffer length, and the like. Looking further at word 0, bit 31 of word 0 is an OWN bit, which is set by the host when the packet for transmission is queued, to be accessed by the AAL processor, and reset when the packet has been transmitted. To be. Bit 30 of word 0 represents the start buffer when multiple buffers are used to transmit one packet, and bit 29 represents the last buffer. Bit 27 represents the AAL type, bits 26 through 16 represent the length of the packet, and bits 15 through 0 represent the length of the buffer. The maximum size of the buffer is 64K bytes. As such, the transmit descriptors represent the buffers on the host memory where the packets to be transmitted are located.

송신 데이터 버퍼들은 송신할 데이터들을 저장하고 있으며, 송신준비가 완료된 후 AAL처리부(21)에 의해 송신 버퍼에 저장된 데이터들이 읽혀져 전송된다.The transmission data buffers store data to be transmitted, and after the transmission preparation is completed, the data stored in the transmission buffer are read and transmitted by the AAL processing unit 21.

도 3 을 참조하면, 송신 완료 링은 256개의 엔트리를 가지고 있으며, 하나의 엔트리는 하나의 패킷이 송신 완료된 것을 나타내는데, 각 엔트리는 4워드로 구성된다. 그리고 4워드중 워드 0의 비트 31은 오운(OWN)비트로서 1로 셋되어 있으면 AAL처리부(21)에서 사용권이 있고, 0으로 리셋되면 호스트(10)가 사용권이 있는 것을 나타낸다. 워드 0의 비트 30 내지 비트 8은 사용되지 않고, 비트7 내지 비트0은 대역할당 테이블의 인덱스를 나타낸다.Referring to Figure 3, the transmission complete ring has 256 entries, one entry indicating that one packet has been transmitted, each entry consisting of four words. If bit 31 of word 0 of the 4 words is set to 1 as an OWN bit, the bit is used in the AAL processing unit 21, and when the bit is reset to 0, the host 10 is entitled to use. Bits 30 through 8 of word 0 are not used, and bits 7 through 0 represent the index of the band allocation table.

수신 프리 버퍼링은 서로 다른 크기의 프리 버퍼들을 가리키기 위한 2개의 링으로 이루어져 있고, 각 링은 256개의 엔트리로 구성되어 있다. 그리고 호스트시5스템(10)은 비어 있는 버퍼의 포인터를 각 링에 써놓으며, 초기화 과정에서 버퍼의 크기를 결정한다. 예컨대, 2개의 프리 버퍼 링은 라지 제1 프리 버퍼 링과 제2 프리 버퍼 링으로 구분되어 제1 프리 버퍼 링은 TCP/IP에 기초한 응용을 위한 8K 바이트 크기의 버퍼들을 가리키는데 이용되고, 제2 프리 버퍼 링은 CBR 서비스를 위한 48바이트의 버퍼들을 가리키는데 이용될 수 있다. 따라서 CBR응용을 위해 설정된 가상채널은 제2 프리 버퍼 링에 의해 지시되는 버퍼들을 사용하고, TCP/IP 응용을 위해 설정된 가상채널은 제1 프리 버퍼 링에 의해 지시되는 버퍼들을 사용한다.Receive pre-buffering consists of two rings to point to free buffers of different sizes, each ring consisting of 256 entries. The host system 10 writes a pointer to an empty buffer in each ring, and determines the size of the buffer during initialization. For example, two prebuffer rings are divided into a large first prebuffer ring and a second prebuffer ring such that the first prebuffer ring is used to indicate 8K byte sized buffers for TCP / IP based applications. The free buffer ring can be used to point to 48 byte buffers for CBR services. Therefore, the virtual channel set up for the CBR application uses the buffers indicated by the second free buffering ring, and the virtual channel set up for the TCP / IP application uses the buffers indicated by the first free buffering ring.

이때 각 프리 버퍼 링의 엔트리는 4워드로 이루어지는데, 워드 0의 비트31은 오운(OWN)비트로서 각 프리 버퍼 링의 엔트리가 AAL처리부(21)에 의해 소유될 때는 셋되고, 호스트(10)에 의해 소유될 때는 리셋된다. 그리고 비트 30 내지 비트 28은 사용되지 않고, 비트27 내지 비트0은 버퍼의 시작 포인터를 나타낸다. 초기화과정에서 2개의 프리 버퍼 링에 의해 수신 버퍼들은 최소 48바이트의 크기에서 최대 64K 바이트의 길이까지 16바이트 바운더리로 형성되는데, 하나의 프리 버퍼 링에 의해 지시되는 버퍼들의 크기는 동일하다.At this time, the entry of each pre-buffering ring is composed of 4 words, bit 31 of word 0 is an OWN bit, and is set when the entry of each pre-buffering ring is owned by the AAL processing unit 21, and the host 10 It is reset when owned by. And bits 30 through 28 are not used, and bits 27 through 0 represent the start pointer of the buffer. In the initialization process, the receiving buffers are formed into 16-byte boundaries from the minimum size of 48 bytes to the maximum length of 64K bytes. The size of the buffers indicated by one pre-buffering ring is the same.

수신 완료 링은 256개의 엔트리로 구성되고, 각 엔트리는 4워드로 이루어지는데, 워드 0은 제어필드, 패킷 길이 등을 나타내기 위해 사용되고, 워드 1은 28비트의 시작 버퍼의 포인터를 나타내고, 워드 2는 4바이트의 ATM헤더를 나타낸다. 워드0의 비트 31은 오운(OWN)비트로서 셋일 경우에는 AAL처리부(21)에 의해 처리되는 것을 나타내고, 리셋일 경우에는 호스트시스템(10)에 의해 처리되는 것을 나타낸다. 비트30은 패킷 오버 플로워 비트로서 현재 패킷을 처리하는 중에 수신버퍼에 오버 플로워가 발생되는 것을 나타내고, 비트 29는 CRC 조건 비트로서 AAL5 패킷에서 CRC에러가 발생된 것을 호스트에 알린다. 비트 21 내지 비트 11은 혼잡 셀의 수신을 나타내고, 비트10 내지 비트0은 패킷의 길이를 나타낸다.The reception completion ring consists of 256 entries, each entry consisting of four words. Word 0 is used to indicate a control field, packet length, etc., word 1 indicates a pointer to a 28-bit start buffer, and word 2 Indicates a 4-byte ATM header. Bit 31 of word 0 is an OWN bit, and when it is set, it indicates that it is processed by the AAL processing unit 21, and when it is reset, it indicates that it is processed by the host system 10. Bit 30 is a packet overflow bit, which indicates that an overflow occurs in the reception buffer while the current packet is being processed. Bit 29 is a CRC condition bit that informs the host that a CRC error has occurred in an AAL5 packet. Bits 21 through 11 represent the reception of congested cells, and bits 10 through 0 represent the length of the packet.

또한 수신 완료 링은 처리되어야 할 호스트 메모리에 있는 수신된 패킷의 포인터를 포함하고 있고, 호스트시스템(10)은 인터럽트를 수신하면 수신 완료 링을 조사한 후 오운(OWN)비트가 리셋된 엔트리들을 처리한다.The receive complete ring also contains a pointer to the received packet in host memory to be processed, and upon receipt of an interrupt, the host system 10 examines the receive complete ring and processes entries whose OWN bit is reset. .

한편, 제어 메모리에는 도 3에 도시된 바와 같이, 대역 할당 테이블, 송신 DMA 상태 테이블, 수신 DMA 상태 테이블이 있다. 이러한 테이블은 AAL 처리부 및 호스트에 의해 억세스될 수 있다.On the other hand, as shown in Fig. 3, the control memory includes a band allocation table, a transmission DMA state table, and a reception DMA state table. Such a table can be accessed by the AAL processing unit and the host.

대역 할당 테이블은 4800개의 엔트리를 가지고 있는데, 각 엔트리는 1바이트로 이루어진다. 송신 DMA 상태 테이블은 255개의 DMA 엔트리로 구성되고, 각 DMA 엔트리는 8워드로 이루어지며, 수신 DMA 상태 테이블은 수신에 이용되며 1024개의 DMA 엔트리(각 엔트리는 8워드)로 구성된다.The band allocation table has 4800 entries, each entry consisting of 1 byte. The transmit DMA status table consists of 255 DMA entries, each DMA entry consists of eight words, the receive DMA status table is used for reception and consists of 1024 DMA entries (each entry is eight words).

대역 할당 테이블은 각 8비트 엔트리에 0부터 255까지의 인덱스를 각각 할당하므로써 255개의 송신 디스크립터 링에 대해 대역을 할당한다. 이때 0은 무효 셀이 전송되는 것을 나타낸다. 이러한 대역 할당 테이블은 초기화 과정에서 설정된다. 그리고 대역 할당 테이블은 송신 DMA 상태 테이블을 가리키는 포인터가 포함되어 있으며, AAL처리부(21)는 초기화 과정에서 정해진 크기의 테이블을 순차적으로 억세스하여 테이블의 인덱스가 가리키는 송신 디스크립터 링의 데이터를 전송한다.The band allocation table allocates bands for 255 transmit descriptor rings by assigning indices from 0 to 255 for each 8-bit entry. At this time, 0 indicates that an invalid cell is transmitted. This band allocation table is set during initialization. The band allocation table includes a pointer indicating a transmission DMA state table, and the AAL processing unit 21 sequentially accesses a table having a predetermined size and transmits data of a transmission descriptor indicated by an index of the table.

송신 DMA 상태 테이블은 255 개의 대역할당 DMA 엔트리로 이루어지고, 각 DMA 엔트리는 8워드로 구성되어 분할될 송신 버퍼를 나타낸다. DMA 엔트리를 구성하는 8 워드중에서 워드 0, 워드 1, 워드 2, 및 워드 7은 송신 디스크립터 링으로부터 그대로 복사(copy)된 것으로, 워드 0은 제어필드, 패킷길이, 버퍼길이를 나타내고, 워드 1은 현재 버퍼의 포인터를 나타내며, 워드 2는 4바이트 ATM헤더를 나타내고, 워드 7은 AAL5의 테일(tail)을 나타낸다. 워드 3은 호스트에 의해서만 프로그램되는 영역으로서 워드 3의 비트 31은 BWG_ON 비트로서 1이면 대역 할당 테이블에 기초하여 데이터를 전송하고, 0이면 송신 데이터가 전송되지 않고 널(NULL) 셀이 전송된다. 워드 4에서 비트 31 내지 비트 12는 송신 디스크립터 링 포인터로서 해당 송신 디스크립터 링의 현재 엔트리의 위치를 가리키는 DVMA 어드레스이다. 워드 6은 AAL5 패킷의 CRC 계산을 위해 사용되는 부분이다.The transmit DMA status table consists of 255 band allocation DMA entries, each DMA entry consisting of 8 words to indicate the transmit buffer to be split. Word 8, Word 1, Word 2, and Word 7 are copied from the transmit descriptor ring as they are in the 8 words constituting the DMA entry. Word 0 represents the control field, packet length, and buffer length. A pointer to the current buffer, word 2 represents a 4-byte ATM header, and word 7 represents the tail of AAL5. Word 3 is an area programmed only by the host. If bit 31 of word 3 is a BWG_ON bit, if 1, data is transmitted based on a band allocation table. If 0, transmission data is not transmitted and a null cell is transmitted. Bits 31 through 12 in word 4 are the transmission descriptor ring pointers, which are DVMA addresses indicating the location of the current entry of the corresponding transmission descriptor ring. Word 6 is the part used for CRC calculation of the AAL5 packet.

수신 DMA 상태 테이블은 수신을 위해 사용되는 테이블로서 1024개의 수신 DMA 엔트리로 이루어지고, 각 DMA 엔트리는 8워드로 구성된다. 워드0의 비트31은 DMA채널이 활성화될 경우에 셋되고, 비트21 내지 비트11은 Explicit Forward Congestion Notification(EFCN) 셀 카운터로 사용되고, 비트10 내지 비트0은 패킷의 길이를 나타낸다. 워드 1은 현재 버퍼 포인터를 나타내고, 워드 2는 시작 버퍼 포인터를 나타내며, 워드 3은 AAL 패킷 길이를 나타낸다. 워드 4의 VC_ON 비트는 패킷 재조립중에 온되는데, 리셋되어 있으면 AAL처리부(21)는 해당 VC의 수신 셀을 버린다. 버퍼 타입 비트는 해당 버퍼가 제1 프리버퍼 링 혹은 제2 프리버퍼 링에 속하는지를 나타낸다.The Receive DMA Status Table is a table used for reception and consists of 1024 Receive DMA entries, each DMA entry consisting of 8 words. Bit 31 of word 0 is set when the DMA channel is activated, bits 21 through 11 are used as an Explicit Forward Congestion Notification (EFCN) cell counter, and bits 10 through 0 represent the length of the packet. Word 1 represents the current buffer pointer, word 2 represents the starting buffer pointer, and word 3 represents the AAL packet length. The VC_ON bit of word 4 is turned on during packet reassembly. If it is reset, the AAL processor 21 discards the reception cell of the VC. The buffer type bit indicates whether the corresponding buffer belongs to the first prebuffer ring or the second prebuffer ring.

이와 같은 데이터 포맷을 통해 패킷이 송수신되는 것을 구체적으로 설명하면 다음과 같다.In more detail, the transmission and reception of a packet through such a data format will be described below.

송신 버퍼는 호스트 메모리상의 임의의 위치에 형성될 수 있는데, 그 크기는 최대 64K 바이트이다. 호스트로부터 전송될 패킷이 준비되면 ATM망접속기(20)는 순서대로 각 패킷에 포함된 데이터들을 송신한다. 수신된 패킷은 호스트 메모리(11)에 있는 하나의 수신 버퍼에 저장된다. 이때 버퍼의 크기는 두 종류가 있으며 제1 프리버퍼 링 혹은 제2 프리버퍼 링에 의해 지시된다.The transmit buffer can be formed anywhere on the host memory, up to 64K bytes in size. When a packet to be transmitted from the host is prepared, the ATM network connector 20 sequentially transmits data included in each packet. The received packet is stored in one receive buffer in host memory 11. At this time, there are two types of buffers, which are indicated by the first or second prebuffer ring.

먼저, 호스트의 응용 프로그램이 송신할 데이터를 송신 데이터 버퍼에 저장하고, 송신 디스크립터 링에 이 버퍼들의 포인터를 기록하여 송신 디스크립터 링을 설정한다. 패킷에 대한 호스트의 처리가 완료되면 송신 디스크립터 링의 해당 엔트리의 오운(OWN)비트를 셋하여 호스트(10)에서 AAL처리부(21)로 해당 패킷의 처리를 넘긴다.First, the application program of the host stores the data to be transmitted in the transmission data buffer, and sets the transmission descriptor ring by writing a pointer to these buffers in the transmission descriptor ring. When the host processing of the packet is completed, the OWN bit of the corresponding entry of the transmission descriptor ring is set to transfer the processing of the packet from the host 10 to the AAL processing unit 21.

AAL처리부(21)는 대역 할당 테이블을 순차적으로 순환하면서 대역 할당 테이블 엔트리의 인덱스가 가리키는 송신 DMA 상태 테이블에 따라 송신 데이터 버퍼에 저장된 데이터를 처리한다. 이때 송신 DMA 상태 테이블에는 송신 디스크립터 링의 해당 엔트리 데이터가 카피(COPY)되어 있다. 따라서 AAL처리부(21)는 송신 DMA 상태 테이블의 포인터가 지시하는 송신 데이터 버퍼로부터 48바이트씩의 데이터를 읽어와 송신한다.The AAL processing unit 21 sequentially processes the data stored in the transmission data buffer in accordance with the transmission DMA status table indicated by the index of the band allocation table entry while sequentially cycling the band allocation table. At this time, the entry data of the transmission descriptor ring is copied (COPY) in the transmission DMA state table. Therefore, the AAL processing unit 21 reads out 48 bytes of data from the transmission data buffer indicated by the pointer of the transmission DMA status table and transmits it.

이어 48바이트의 유료부하가 송신되면 AAL 처리부(21)는 내부 레지스터를 업데이트(update)한 후 대역 할당 테이블의 다음 엔트리가 지시하는 송신 DMA 상태 테이블의 엔트리를 처리한다. 이와 같이 AAL 처리부(21)는 대역 할당 테이블을 순환하면서 테이블 엔트리의 인덱스에 따라 계속 데이터를 송신하다가 다시 처리중인 송신 DMA 상태 테이블로 돌아오면 이번에는 송신 디스크립터 링을 억세스하지 않고, 송신 DMA 상태 테이블만 억세스하여 처리한다. 이때 송신 DMA 상태 테이블은 다음에 전송할 셀을 가리키는 송신 데이터 버퍼의 포인터로 업데이트되어 있다.Subsequently, when the 48-byte payload is transmitted, the AAL processing unit 21 updates the internal register and processes the entry of the transmission DMA status table indicated by the next entry in the band allocation table. As described above, the AAL processing unit 21 continuously transmits data according to the index of the table entry while circulating the bandwidth allocation table, and then returns to the transmitting DMA state table which is being processed again. This time, the access descriptor ring is not accessed. Only the transmitting DMA state table is accessed. Access and process At this time, the transmission DMA state table is updated with a pointer of a transmission data buffer indicating a cell to be transmitted next.

이와 같이 데이터를 전송하여 하나의 송신 데이터 버퍼에 대한 전송이 완료되면 AAL처리부(21)는 송신 디스크립터 링의 다음 엔트리의 데이터를 송신 DMA 상태 테이블의 엔트리에 복사하여 제2 버퍼에 대해 처리를 계속하게 된다. 즉, 송신 디스크립터 링의 하나의 엔트리는 하나의 송신 데이터 버퍼를 가리키고 있는데, 만일 송신할 패킷이 5개의 버퍼를 요구한다면 해당 패킷을 처리하기 위해서 5개의 송신 디스크립터 링 엔트리가 필요하게 된다. 이때 제1 버퍼가 48바이트 단위로 끝나지 않고 16바이트의 데이터가 남아 있을 경우에는 AAL처리부(21)가 제1 버퍼의 16바이트를 처리한 후 DMA 상태 테이블을 업데이트하여 제2 버퍼로부터 나머지 32바이트의 데이터를 읽어 48바이트단위로 처리한다.When the data is transmitted in this manner and the transmission of one transmission data buffer is completed, the AAL processing unit 21 copies the data of the next entry of the transmission descriptor ring to the entry of the transmission DMA status table to continue processing on the second buffer. do. That is, one entry of the transmission descriptor ring points to one transmission data buffer. If a packet to be transmitted requires five buffers, five transmission descriptor ring entries are required to process the packet. At this time, if the first buffer does not end in 48-byte units and 16 bytes of data remain, the AAL processor 21 processes 16 bytes of the first buffer and updates the DMA state table to store the remaining 32 bytes of data from the second buffer. Read data and process in 48 byte units.

이와 같이 하여 하나의 패킷을 형성하는 마지막 버퍼에 대한 처리가 완료되어 패킷의 전송이 종료되면 엔드오브패킷(EOP) 처리절차를 수행한다. 예컨대, AAL5 타입에 따른 전송일 경우에 EOP 처리절차는 패드를 채우고, AAL5 테일을 형성하는 것이다.In this way, when the processing of the last buffer forming one packet is completed and the transmission of the packet is completed, the end-of-packet (EOP) processing procedure is performed. For example, in the case of transmission according to the AAL5 type, the EOP processing procedure fills the pad and forms the AAL5 tail.

이와 같이 하나의 패킷에 대한 전송이 완료되면 AAL 처리부(21)는 해당 패킷에 할당된 송신 디스크립터 링 엔트리의 오운(OWN)비트를 클리어시키고, 송신 완료 링 엔트리를 형성한 후 호스트(10)에 인터럽트를 발생한다. 이때 송신 완료 링 엔트리에는 오운(OWN)비트와 대역할당 인덱스가 기록되어 있는데, 이 대역할당 인덱스는 호스트가 처리된 패킷의 메모리를 다시 이용할 수 있도록 하는데 사용된다.As such, when the transmission of one packet is completed, the AAL processing unit 21 clears the OWN bit of the transmission descriptor ring entry assigned to the packet, forms an transmission completion ring entry, and interrupts the host 10. Occurs. At this time, the OWN bit and the band allocation index are recorded in the transmission completion ring entry, which is used by the host to reuse the memory of the processed packet.

한편, 수신과정을 살펴보면, 수신된 ATM 셀의 10비트 VCI에 따라 수신 DMA 테이블의 하나의 DMA 엔트리가 할당된다. 그리고 수신 DMA 테이블의 하나의 DMA 엔트리는 2개의 수신 프리 버퍼 링 중의 하나의 엔트리와 각각 일대일로 대응된다.Meanwhile, referring to the reception process, one DMA entry of the reception DMA table is allocated according to the 10-bit VCI of the received ATM cell. One DMA entry of the received DMA table corresponds one-to-one with one of the two received pre-buffering rings, respectively.

만일, 수신된 ATM 셀이 해당 VCI의 첫 번째 셀일 경우 DMA 엔트리는 수신된 셀을 저장하기 위하여 어떤 프리 버퍼가 사용될 것인지를 가리킨다. 예컨대, VCI에 의해 지시된 DMA 엔트리에 할당될 버퍼가 제1 프리버퍼 링 혹은 제2 프리 버퍼링에 속하는지를 판단한 후, 해당 프리버퍼 링의 첫 번째 디스크립터를 억세스하여 프리버퍼의 어드레스를 DMA 엔트리에 복사한다. 이어서 첫 번째 수신된 셀을 해당 DMA 엔트리가 지시하는 버퍼에 저장한다.If the received ATM cell is the first cell of the corresponding VCI, the DMA entry indicates which free buffer will be used to store the received cell. For example, after determining whether the buffer to be allocated to the DMA entry indicated by the VCI belongs to the first prebuffer ring or the second prebuffer ring, the first descriptor of the prebuffer ring is accessed, and the address of the prebuffer is copied to the DMA entry. do. The first received cell is then stored in the buffer indicated by the corresponding DMA entry.

이어 VCI가 동일한 다음 셀이 수신될 경우에는 수신 프리버퍼 링을 억세스하지 않고 DMA 엔트리가 지시하는 버퍼에 48바이트를 저장한다. 이때 DMA 엔트리는 업데이트되어 다음에 저장할 어드레스를 가리키고 있다.When the next cell having the same VCI is received, 48 bytes are stored in the buffer indicated by the DMA entry without accessing the reception prebuffer ring. The DMA entry is then updated to point to the address to be stored next.

만일 수신된 ATM셀의 VCI가 이전 셀의 VCI와 다를 경우에는 해당 DMA 엔트리를 억세스한 다음 수신 프리버퍼 링으로부터 프리버퍼의 시작 어드레스를 구한 후 해당 버퍼에 ATM 셀을 저장한다.If the VCI of the received ATM cell is different from the VCI of the previous cell, the corresponding DMA entry is accessed, the start address of the prebuffer is obtained from the reception prebuffer ring, and the ATM cell is stored in the buffer.

이와 같은 동작이 반복되어 어느 한 패킷에 대한 수신이 종료되면, AAL 처리부(21)는 수신 완료 링에 이를 기록한 후 인터럽트를 발생하여 호스트(10)에 알린다. 이때 수신 디스크립터의 오운(OWN)비트와 수신 완료 링 엔트리의 오운(OWN)비트를 리셋하여 호스트(10)에 권한을 넘긴다.If the above operation is repeated and the reception of any one packet is completed, the AAL processing unit 21 writes it to the reception completion ring and generates an interrupt to notify the host 10. At this time, the right is transferred to the host 10 by resetting the OWN bit of the reception descriptor and the OWN bit of the reception completion ring entry.

이상에서 설명한 ATM 망접속기는 호스트 메모리에 송신 및 수신버퍼를 구현하였으나 이러한 송수신 버퍼는 망접속기 내부의 메모리에 구현될 수도 있고, 송수신 제어를 위한 제어 데이터 포맷도 매우 다양한 형태가 사용될 수 있다.Although the ATM network accessor described above implements a transmission and reception buffer in a host memory, such a transmission / reception buffer may be implemented in a memory inside the network accessor, and a variety of control data formats for transmission and reception control may be used.

한편, 종래의 수신 패킷 처리방법은 도 4에 도시된 바와 같이, 패킷이 수신될 때마다 인터럽트를 발생하여 호스트에 이를 알리고, 호스트의 NIC 드라이버는 매번 인터럽트가 발생될 때마다 수신된 패킷을 처리하였으나 본 발명은 도 5에 도시된 바와 같이 소정 수의 패킷이 수신되거나 첫 번째 패킷이 수신된 후 일정시간이 경과되면 인터럽트를 발생시키므로써 인터럽트 발생 빈도를 줄여 NIC 드라이버에 부담을 줄여줄 수 있다.Meanwhile, as shown in FIG. 4, the conventional method for processing a received packet generates an interrupt every time a packet is received and notifies the host, and the NIC driver of the host processes the received packet every time an interrupt occurs. As shown in FIG. 5, when a predetermined number of packets are received or a predetermined time has elapsed after the first packet is received, an interrupt is generated to reduce the frequency of interrupts, thereby reducing the burden on the NIC driver.

도 5의 (가)는 본 발명에 따라 소정 수의 패킷이 도달하면 인터럽트를 발생하는 개념을 도시한 개념도이고, 도 5의 (나)는 상위계층으로 전달할 첫 번째 패킷이 도달한 후 소정 시간이 경과되면 인터럽트를 발생하는 개념을 도시한 개념도이다.FIG. 5A is a conceptual diagram illustrating a concept of generating an interrupt when a predetermined number of packets arrive, and FIG. 5B shows a predetermined time after the arrival of the first packet to be delivered to a higher layer. It is a conceptual diagram showing the concept of generating an interrupt when elapsed.

도 5의 (가)를 참조하면, K개의 패킷이 도달하면 AAL 처리부(21)가 인터럽트를 발생하여 NIC 드라이버에 패킷들의 처리를 요청하는 것을 알 수 있다. 그런데, 이와 같이 소정 수의 패킷들이 수신되어야만 인터럽트를 발생할 경우, 전송의 마지막 단계에서 일정 수의 패킷이 형성되지 못하면 패킷이 처리되지 못하게 되는 문제점이 있다.Referring to FIG. 5A, it can be seen that when K packets arrive, the AAL processing unit 21 generates an interrupt and requests the NIC driver to process the packets. However, when an interrupt occurs only when a predetermined number of packets are received as described above, there is a problem in that the packet cannot be processed if a predetermined number of packets are not formed at the end of the transmission.

이러한 문제점을 해소하기 위하여 도 5의 (나)에 도시된 바와 같이, 패킷 일괄처리에 시간개념을 도입하여 첫 번째 패킷이 도달되면 타이머를 동작시켜 일정 수의 패킷이 도달되거나 일정시간이 경과되면 인터럽트를 발생한다.In order to solve this problem, as shown in (b) of FIG. 5, a time concept is introduced into a packet batch, and when the first packet is reached, a timer is operated to interrupt an interrupt when a certain number of packets are reached or a predetermined time elapses. Occurs.

도 5의 (나)를 참조하면, 매번 전송할 첫 번째 패킷이 도달되면 타이머를 시작하고, 소정 시간이 되기전에 수신된 패킷의 수가 소정 수(K)가 되면 인터럽트를 발생함과 아울러 타이머를 리셋한다. 그리고 전송할 첫 번째 패킷이 도달되어 타이머를 시작한 후, 소정 시간이 경과되면(tp ≥ Tth) 수신된 패킷의 수에 관계없이 인터럽트를 발생함과 아울러 타이머를 리셋한다.Referring to (b) of FIG. 5, when the first packet to be transmitted each time is reached, a timer is started, and when the number of received packets reaches a predetermined number K before the predetermined time, an interrupt is generated and the timer is reset. . After the first packet to be transmitted arrives and starts the timer, when a predetermined time elapses (tp? Tth), an interrupt is generated and the timer is reset regardless of the number of received packets.

도 6은 본 발명에 따른 제1 실시예를 도시한 흐름도로서, 도 5의 (가)와 같이 일정 수의 패킷이 도달되면 인터럽트를 발생하는 순서를 보여준다.FIG. 6 is a flowchart illustrating a first embodiment according to the present invention, and shows an order in which interrupts are generated when a predetermined number of packets are reached as shown in FIG.

도 6을 참조하면, 초기화단계에서 수신된 패킷 수를 나타내는 변수 n을 0으로 초기화하고, 인터럽트를 발생시키기 위한 패킷 수 K를 정의한다. 예컨대, K=5이면 0부터 5까지 6개의 패킷이 수신될 경우에 인터럽트가 발생된다(100).Referring to FIG. 6, the variable n representing the number of packets received in the initialization step is initialized to 0, and the packet number K for generating an interrupt is defined. For example, if K = 5, an interrupt is generated when six packets from 0 to 5 are received (100).

이어서 패킷이 도달하면, 수신된 패킷의 수(n)가 K보다 크거나 같은지를 판단하여 K보다 크거나 같으면 인터럽트를 발생하고, 이어 수신된 패킷의 수(n)를 0으로 클리어시킨다(101,102,104,105).Subsequently, when the packet arrives, it is determined whether the number n of received packets is greater than or equal to K, and an interrupt is generated if the number is greater than or equal to K, and then the number n of received packets is cleared to 0 (101, 102, 104, 105). .

만일, 수신된 패킷의 수(n)가 K보다 작으면 n을 1증가시키고, 다음 패킷의 수신들 대기한다(103).If the number n of received packets is less than K, n is incremented by 1 and waits for the reception of the next packet (103).

도 7은 본 발명에 따른 제2 실시예의 흐름도로서, 도 5의 (나)에 도시된 바와 같이 일정수의 패킷이 수신되거나 첫 번째 패킷이 도달된 후 일정시간이 경과되면 인터럽트를 발생한다.7 is a flowchart of a second embodiment according to the present invention. As shown in (b) of FIG. 5, an interrupt is generated when a certain number of packets are received or a predetermined time elapses after the first packet is reached.

도 7을 참조하면, 초기화단계에서 수신된 패킷의 수를 나타내는 변수 n을 0으로 클리어시키고, 인터럽트를 발생하기 위한 패킷의 수를 나타내는 변수 K를 정의한다. 그리고 타이머가 스타트된 후 시간의 경과는 tp로 표시하고, 인터럽트를 발생하기 위한 기준시간을 나타내는 시간변수 Tth를 정의한다(200).Referring to FIG. 7, the variable n indicating the number of packets received in the initialization step is cleared to 0, and a variable K indicating the number of packets for generating an interrupt is defined. After the timer starts, the elapsed time is represented by tp and a time variable Tth representing a reference time for generating an interrupt is defined (200).

이어서 패킷이 수신되면, 수신된 패킷의 수(n)가 K보다 크거나 같은지를 판단하여 K보다 크거나 같으면 인터럽트를 발생함과 아울러 타이머를 리셋하고, 수신된 패킷의 수(n)을 0으로 클리어시킨다(201,202,203,204,205).Subsequently, when a packet is received, it is determined whether the number of received packets (n) is greater than or equal to K. When the packet is greater than or equal to K, an interrupt is generated, the timer is reset, and the number of received packets (n) is zero. Clear (201, 202, 203, 204, 205).

만일, 수신된 패킷의 수(n)가 K보다 작으면 첫 번째 패킷인지를 판단하여 첫 번째 패킷이면 타이머를 스타트하고, 첫 번째 패킷이 아니면 수신된 패킷의 수를 1증가시킨다(206,207,208).If the number n of received packets is less than K, it is determined whether the first packet is the first packet. If the first packet is n, the timer is started, and if not, the number of received packets is increased by one (206, 207, 208).

이어서 타이머의 경과시간이 기준시간보다 크거나 같은지를 판단하여 크거나 같으면 인터럽트를 발생한 후 n을 0으로 클리어시키고, 타이머를 리셋한다. 타이머경과시간이 기준시간보다 작으면 타이머를 계속 가동시키면서 다음 패킷이 수신되길 대기한다(209,210,211).Subsequently, it is determined whether the elapsed time of the timer is greater than or equal to the reference time, and if greater than or equal, the interrupt is generated, n is cleared to 0, and the timer is reset. If the timer elapsed time is less than the reference time, the timer continues to run and waits for the next packet to be received (209, 210, 211).

이상에서 설명한 바와 같이 본 발명에 의하면, 하나의 패킷이 수신되면 망접속기가 호스트측으로 곧바로 인터럽트를 발생시키기 않고, 일정 수의 패킷이 수신되거나 일정시간이 경과된 후에 인터럽트를 발생시키므로써 호스트에서 운용되는 NIC드라이버에 부담을 경감시킬 수 있다.As described above, according to the present invention, when one packet is received, the network connector does not immediately generate an interrupt to the host side, but generates an interrupt after a certain number of packets are received or a predetermined time elapses. We can reduce burden on NIC driver.

Claims (2)

호스트시스템에서 운용되는 응용프로그램의 요구에 따라 ATM 망접속기 드라이버가 ATM 망접속기를 제어하여 데이터를 ATM 통신방식으로 전송하고, ATM 망접속기가 수신된 ATM 셀들을 재조립하여 패킷을 형성한 후 인터럽트를 통해 상기 ATM 망접속기 드라이버에 알리도록 된 ATM 단말기에 있어서,At the request of the application program running in the host system, the ATM network driver controls the ATM network connector to transmit data through the ATM communication method, and the ATM network connector reassembles the received ATM cells to form a packet and then interrupts. In the ATM terminal to notify the ATM network driver through the 수신된 ATM 셀을 재조립하여 패킷을 형성한 후 형성된 패킷의 수가 소정수에 도달하면 인터럽트를 발생하여 상기 ATM 망접속기 드라이버에 처리를 요청하도록 하는 것을 특징으로 하는 ATM 망접속기에서 재조립된 패킷들을 처리하는 방법.After reassembling the received ATM cell to form a packet, if the number of formed packets reaches a predetermined number, an interrupt is generated to request processing from the ATM network connector driver. How to deal. 제1항에 있어서, 상기 ATM 망접속기에서 재조립된 패킷들을 처리하는 방법은 상위계층으로 전달할 첫 번째 패킷이 재조립된 후 타이머를 스타트하고, 타이머의 시간이 소정시간을 경과하면 인터럽트를 발생하도록 하는 것을 특징으로 하는 ATM 망접속기에서 재조립된 패킷들을 처리하는 방법.The method of claim 1, wherein the method of processing the reassembled packets in the ATM network accessor starts a timer after the first packet to be delivered to a higher layer is reassembled, and generates an interrupt when the timer has passed a predetermined time. A method for processing reassembled packets in an ATM network connector, characterized in that the.
KR1019970011862A 1997-03-31 1997-03-31 How to Process Reassembled Packets in ATM Networks KR19980075620A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970011862A KR19980075620A (en) 1997-03-31 1997-03-31 How to Process Reassembled Packets in ATM Networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970011862A KR19980075620A (en) 1997-03-31 1997-03-31 How to Process Reassembled Packets in ATM Networks

Publications (1)

Publication Number Publication Date
KR19980075620A true KR19980075620A (en) 1998-11-16

Family

ID=65951129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970011862A KR19980075620A (en) 1997-03-31 1997-03-31 How to Process Reassembled Packets in ATM Networks

Country Status (1)

Country Link
KR (1) KR19980075620A (en)

Similar Documents

Publication Publication Date Title
US6466997B1 (en) Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node
US5867480A (en) Method and apparatus for controlling congestion in a network node
US5726985A (en) ATM communication system interconnect/termination unit
US5796735A (en) System and method for transmission rate control in a segmentation and reassembly (SAR) circuit under ATM protocol
US5920561A (en) ATM communication system interconnect/termination unit
US5970229A (en) Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory
EP1131923A1 (en) Multi-protocol conversion assistance method and system for a network accelerator
US5941952A (en) Apparatus and method for transferring data from a transmit buffer memory at a particular rate
US5822612A (en) Apparatus and method for managing schedule table pointers
US5922046A (en) Method and apparatus for avoiding control reads in a network node
US5999980A (en) Apparatus and method for setting a congestion indicate bit in an backwards RM cell on an ATM network
US6115775A (en) Method and apparatus for performing interrupt frequency mitigation in a network node
US5960215A (en) Transmit data FIFO for flow controlled data
US6480499B1 (en) Data transfer
KR100236035B1 (en) Method of scheduling virtual channels by using subtables in an atm nic
US5862206A (en) Method and apparatus for performing raw cell status report frequency mitigation on transmit in a network node
US6661801B1 (en) Data transfer
US6731097B1 (en) Reception of multiple data messages over a transmission medium with conversion into suitable form
US6804698B1 (en) Data transfer
US6970457B1 (en) Data transmission apparatus for transmitting ATM data streams
US5995995A (en) Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory
KR100236036B1 (en) Method of discarding atm cells in an atm nic
KR100236037B1 (en) Method of discarding atm cells in an atm network interface card
US6212567B1 (en) Method and apparatus for performing raw cell status report frequency mitigation on receive in a network node
EP0993222A1 (en) Data transfer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application