KR100204586B1 - Received packet detecting method in communication board with fifo buffer - Google Patents

Received packet detecting method in communication board with fifo buffer Download PDF

Info

Publication number
KR100204586B1
KR100204586B1 KR1019960040479A KR19960040479A KR100204586B1 KR 100204586 B1 KR100204586 B1 KR 100204586B1 KR 1019960040479 A KR1019960040479 A KR 1019960040479A KR 19960040479 A KR19960040479 A KR 19960040479A KR 100204586 B1 KR100204586 B1 KR 100204586B1
Authority
KR
South Korea
Prior art keywords
packet
value
checksum
result
transmission
Prior art date
Application number
KR1019960040479A
Other languages
Korean (ko)
Other versions
KR19980021577A (en
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 KR1019960040479A priority Critical patent/KR100204586B1/en
Publication of KR19980021577A publication Critical patent/KR19980021577A/en
Application granted granted Critical
Publication of KR100204586B1 publication Critical patent/KR100204586B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법에 관한 것으로, 외부 선입선출 버퍼(FIFO)에서 발생하는 패킷 에러를 감지하기 위해 소프트웨어 첵섬(checksum)을 고안하고 첵섬으로 인한 통신 처리 속상의 부하를 최소화하기 위해 데이터의 중요도에 따라 송신단에서 선택적으로 소프트웨어 첵섬을 운용한다. 수신단에서는 이에 대한 검증을 수행하여 첵섬 결과에 의해 패킷 파손이 탐지될 경우 파손된 패킷을 버리고 파손된 패킷에 대한 복구는 종단 시스템간에 적용되는 종래의 에러 제어 기법을 적용함으로써 데이터의 신뢰성을 보장받을 수 있게 한다. 따라서 외부 선입선출 버퍼를 메모리 소자로 채택하는 임베디드(embedded) 통신 시스템이 실시간으로 통신을 원할 경우 송신할 모든 패킷들에 전 영역 첵섬으로 인해 야기되는 통신 처리 속도 부하를 최소화하기 위해 데이터 중요도에 따라 선택적으로 소프트웨어 첵섬을 운용하므로써 통신 처리 속도상의 성능 저하없이 완벽한 에러 제어 기능을 제공할 수 있다.The present invention relates to a method for detecting and recovering a packet from a received packet in an embedded communication board having a first-in, first-out buffer, and to design and check a software checksum to detect a packet error occurring in an external first-in, first-out buffer (FIFO). In order to minimize the load on the communication process caused by the data transmission, the software checksum is selectively operated by the transmitter according to the importance of the data. The receiver performs verification and discards the damaged packet when the packet is detected as a result of checksum, and recovers the damaged packet by guaranteeing the reliability of data by applying the conventional error control technique applied between end systems. To be. Therefore, when an embedded communication system adopting an external first-in, first-out buffer as a memory element is desired for communication in real time, it is optional according to the data importance to minimize the communication throughput load caused by full area checksum on all packets to be transmitted. By using software checksums, the system can provide complete error control without compromising performance on communication throughput.

Description

선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법Damage Detection and Recovery Method for Receive Packets in the Embedded Communication Board

본 발명은 외부 선입선출 버퍼를 내장하는 통신 보드의 수신부에서 수행되는 수신 패킷의 파손 검출 및 복구 방법에 관한 것으로, 특히 종단간 프로토콜을 적용하는 고수준 데이터 연결 제어(High level Data Link Control : 이하 HDLC라 함) 기반의 실시간 동기식 통신 방식에서 프로세서간 통신시 높은 신뢰성을 보장할 수 있는 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법에 관한 것이다.The present invention relates to a method for detecting and recovering a packet of a broken packet, which is performed by a receiver of a communication board having an external first-in, first-out buffer. In particular, the present invention relates to a high level data link control (HDLC) applying an end-to-end protocol. The present invention relates to a method for detecting and repairing a packet corruption in a built-in communication board having a first-in, first-out buffer that can guarantee high reliability in inter-processor communication in a real-time synchronous communication method.

종래의 X.25같은 전형적인 패킷 통신의 에러 제어 기법은 계층 3인 네트워크 계층과 계층 2인 데이터 링크 계층의 수신단의 직렬 입출 력 제어기에서 검출하는 각종 에러들에 대한 상태와 일련의 패킷 및 프레임 순서 번호에 의해 손실된 패킷을 검출하고 송신단에 유실된 패킷들에 대해 재전송을 요구하는 방식을 택하고 있다. X.25같은 패킷 통신의 경우 직렬 입출력 제어기의 에러 탐지 기능에 의해 정상적인 프레임으로 간주되어 외부 선입선출 버퍼(First In First Out : 이하 FIFO라함)와 직접 메모리 접근 제어기를 통과한 수신 패킷들은 최종 수신단에서 프레임 헤더 및 패킷 헤더내의 순서 번호만 일치하면 패킷 데이터의 내용의 파손과 무관하게 정상으로 처리된다.Conventional packet communication error control schemes, such as X.25, have a state and sequence of packet and frame sequence numbers for various errors detected by serial I / O controllers at the receive end of the network layer at layer 3 and at the data link layer at layer 2. Detect the packet lost by the packet and request a retransmission for the lost packets. In case of packet communication such as X.25, received packets that pass through external first-in-first-out buffer (First In First Out (FIFO)) and direct memory access controller are regarded as normal frames by error detection function of serial I / O controller. If only the sequence number in the frame header and the packet header match, it is processed normally regardless of the contents of the packet data.

그러나 외부 FIFO를 장착한 보드상에서 FIFO에서 파손된 패킷을 단순히 순서 번호에만 의존하여 유실 유무를 판정하는 것은 완전하지 않다. 왜냐하면 직렬 입출력 제어기를 각종 에러없이 통과하였을 경우 적어도 송신단에서 망을 통해 수신단의 직렬 입출력 제어기까지 전송된 패킷은 이상이 없다는 사실이 보장된다. 그러나 직접 메모리 접근 제어기는 자체의 오동작 탐지 기능 이외에는 직렬 입출력 제어기처럼 패킷 자체의 파손 유무를 알 수 있는 기능이 없다. 따라서 이들 사이에 존재하는 메모리 소자인 하드웨어 FIFO를 직접 메모리 접근 제어기가 읽어내는 과정에서 패킷이 깨질 경우 문제는 심각해진다. 파손의 가능성은 통신 보드의 다양한 인터럽트들에 의한 간섭 현상, 직렬 입출력 제어기와 직접 메모리 접근 장치간의 속도 차이, FIFO 자체의 읽기/쓰기 포인터 불일치 현상으로 인해 야기될 수 있다.However, on a board equipped with an external FIFO, it is not perfect to determine whether a packet is lost in the FIFO by simply relying on the sequence number. If the serial I / O controller passes without any error, it is guaranteed that at least the packet transmitted from the transmitting end to the serial I / O controller of the receiving end is not abnormal. However, the direct memory access controller has no function of detecting the packet itself like the serial I / O controller except the malfunction detection function. Therefore, the problem becomes serious when a packet is broken while the memory access controller reads a hardware FIFO, which is a memory device between them, directly. The possibility of breakage can be caused by interference caused by various interrupts on the communication board, speed differences between the serial I / O controller and the direct memory access device, and read / write pointer mismatches in the FIFO itself.

패킷 파손의 종류는 크게 두가지로 분류되는데, 첫째는 순서 번호를 포함하는 패킷 헤더 부분의 파손과 둘째는 사용자 데이터 부분의 손상을 들 수 있다. 외부 FIFO에서 순서 번호를 포함하는 패킷 헤더 부분이 손상된다면 이로인해 잘못된 프로토콜 처리 과정을 수행한다. 사용자 데이터의 손상은 데이터의 내용이 중요할수록 파급 효과는 커진다.There are two types of packet corruptions: first, packet header part including sequence number, and second, user data part. If the header part of the packet containing the sequence number is damaged in the external FIFO, this causes the wrong protocol processing. The damage of user data is more important as the contents of the data become more important.

따라서, 본 발명에서는 외부 수신 FIFO의 요인으로 인해 발생하는 문제를 해결하기 위한 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법을 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide a method for detecting and recovering a damaged packet of a received packet in an embedded communication board having a first-in, first-out buffer to solve a problem caused by a factor of an external receive FIFO.

상술한 목적을 달성하기 위한 본 발명에 따른 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법은 송신측 프로세서의 송신 처리 구동기에서 송신한 패킷을 고속 셀프-루팅망을 통해 외부 선입선출 버퍼가 내장된 수신측 프로세서의 수신 처리 구동기에서 수신하는 패킷 송수신 시스템에 있어서, 상기 송신 처리 구동기가 패킷 송신 요구 대기 상태에서 응용 프로그램의 패킷 전송 요구 호출문을 수신하여 송신 윈도우의 송신 변수와 마지막 수신 변수의 차를 시스템 파라미터와 비교하는 단계와, 상기 비교 결과에 따라 송신 변수와 마지막 수신 변수의 차가 시스템 파라미터보다 작을 경우 패킷 헤더를 생성하고 송신 변수를 증가시키는 단계와, 상기 패킷 헤더 생성이 끝난 후 첵섬 생성 절차를 호출하는 단계와, 상기 첵섬 생성 절차에 의해 첵섬 생성이 끝난 패킷에서 송신 윈도우의 재전송 큐에 송신할 패킷을 저장한 후 해당 패킷을 직접 메모리 접근 제어기와 직렬 입출력 제어기를 통해 송신하고 패킷 송신 대기 상태를 유지하는 단계와, 상기 비교 결과에 따라 송신 변수와 마지막 수신 변수의 차가 시스템 파라미터보다 크거나 같을 경우 송신 처리 구동기의 상태를 패킷 송신 대기 상태로 천이하는 단계로 이루어진 것을 특징으로 한다.In the embedded communication board having a first-in, first-out buffer in accordance with the present invention for achieving the above object, the method for detecting and repairing a received packet is externally transmitted through a high-speed self-routing network. In a packet transmission / reception system received by a reception processing driver of a receiving processor having a first-in, first-out buffer, the transmission processing driver receives a packet transmission request call from an application program in a waiting state for packet transmission request and transmits a transmission variable of a transmission window to a transmission variable. Comparing the difference of the last received variable with the system parameter, generating a packet header and increasing the transmission variable when the difference between the transmission variable and the last received variable is smaller than the system parameter according to the comparison result; Invoking the checksum creation procedure after it is finished; Storing the packet to be transmitted in the retransmission queue of the transmission window in the packet having been created by the checksum generation procedure and transmitting the packet directly through the memory access controller and the serial input / output controller and maintaining a packet transmission standby state; And translating the state of the transmission processing driver to the packet transmission standby state when the difference between the transmission variable and the last reception variable is greater than or equal to the system parameter according to the comparison result.

또한, 상술한 목적을 달성하기 위한 본 발명에 따른 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법은 송신측 프로세서의 송신 처리 구동기에서 송신한 패킷을 고속 셀프-루팅 망을 통해 외부 선입선출 버퍼가 내장된 수신측 프로세서의 수신 처리 구동기에서 수신하는 패킷 송수신 시스템에 있어서, 상기 수신 처리 구동기는 수신 대기 상태에서 외부 망으로부터 패킷 수신에 대한 이벤트를 수신하여 수신부 버퍼의 처리 시작 포인터를 결정하고 이로부터 패킷의 수신 상태 플래그가 0인가를 검사하는 단계와, 상기 수신 상태 플래그의 값이 0이 아닌 양수 값일 경우 직접 메모리 접근 제어기나 직렬 입출력 제어기의 에러 발생을 검사하는 단계와, 상기 에러 발생의 검사 결과에 따라 직렬 입출력 제어기의 상태 레지스터 또는 직접 메모리 접근 제어기가 에러 값을 가질 경우 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 에러 발생의 검사 결과에 따라 에러가 없을 경우 첵섬 비교 절차를 호출하고, 이로 인해 생성된 복귀 값을 가지고 검증된 결과가 0인가를 검사하는 단계와, 상기 검출된 결과가 0이 아닌 경우 에러 카운터를 증가시키고 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 검증된 결과가 0일 경우 현재 패킷의 패킷 유형 식별자를 검사하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 따라 데이터 패킷일 경우 송신측 프로세서 제어 블럭의 수신 변수 값과 패킷 송신 번호가 동일한지를 검사하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 상기 수신 변수 값과 패킷 송신 번호가 동일할 경우 수신된 패킷을 접수하고 수신 버퍼 포인터를 증가시킨후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 수신 변수 값과 패킷 송신 번호가 동일하지 않을 경우 수신측에서 프로세서 제어 블록으로 재전송을 요구한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 재전송 패킷일 경우 재전송 패킷에 대한 수신측 프로세서의 수신 처리 구동기에서 마지막 수신 변수 값부터(수신 변수-1)까지의 송신 윈도우상에 등록된 모든 패킷을 재전송하고 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 따라 패킷 유형이 데이터나 재전송 패킷이 아닐 경우 패킷 유형에 해당하는 처리 절차를 수행하는 단계와, 상기 수신 상태 플래그의 검사 결과에 따라 수신 상태 플래그 값이 0일 경우 수신부 버퍼 포인터를 저장한 후 수신 대기 상태로 복귀하는 단계로 이루어진 것을 특징으로 한다.In addition, in order to achieve the above object, a method of detecting and repairing a packet received by a transmission processing driver in a built-in communication board having a first-in, first-out buffer according to the present invention provides a high-speed self-routing network. In a packet transmission / reception system receiving a first-in-first-out buffer by a reception processing driver of a receiving side processor, the reception processing driver receives an event for receiving a packet from an external network in a reception standby state, thereby processing a processing start pointer of the reception buffer. Determining whether the received state flag of the packet is 0, and checking an error occurrence of the direct memory access controller or the serial input / output controller when the value of the received state flag is a non-zero positive value, and Status register of the serial I / O controller according to the test result of error occurrence If the master or direct memory access controller has an error value, after discarding the received packet, transitioning to increasing the receive buffer pointer and checking whether the reception status flag of the packet is zero, and checking the occurrence of the error. If there is no error, calling the checksum comparison procedure, checking whether the verified result is zero with the return value generated thereby, incrementing an error counter if the detected result is not zero, and Discarding the packet, incrementing the reception buffer pointer and transitioning to checking whether the reception status flag of the packet is zero, examining the packet type identifier of the current packet if the verified result is zero, and According to the result of checking the packet type identifier, in case of a data packet, the received variable value and packet transmission of the sender processor control block Checking whether the call is the same, and if the received variable value and the packet transmission number are the same according to the result of checking the received variable value and the packet transmission number, receiving the received packet, increasing the receiving buffer pointer, and then receiving the packet. Transitioning to the step of checking whether the flag is 0, and if the reception variable value and the packet transmission number are not the same according to the result of the check of the reception variable value and the packet transmission number, the receiving side requests retransmission to the processor control block. Incrementing the receive buffer pointer and transitioning to checking whether the reception status flag of the packet is 0, and if the retransmission packet is a result of the check of the packet type identifier, All packets registered on the transmission window from the reception variable value (reception variable-1) Transmitting and increasing the receiving buffer pointer and checking whether the packet's reception status flag is 0, and if the packet type is not data or retransmission packet according to the result of checking the packet type identifier, Performing a processing procedure; and if the reception state flag value is 0 according to the check result of the reception state flag, storing the receiver buffer pointer and returning to the reception standby state.

제1도는 본 발명이 적용되는 패킷 송수신 하드웨어의 구성도.1 is a block diagram of a packet transmission and reception hardware to which the present invention is applied.

제2도는 본 발명이 적용되는 패킷의 구성도.2 is a block diagram of a packet to which the present invention is applied.

제3도는 본 발명에 따른 송신측 프로세서의 송신 처리 구동기에서 수신측 프로세서로 패킷을 송신하는 과정을 도시한 흐름도.3 is a flowchart illustrating a process of transmitting a packet from a transmission processing driver of a transmitting processor to a receiving processor according to the present invention.

제4도는 본 발명에 따른 송신 처리 구동기에서 소프트웨어 첵섬 생성 과정을 도시한 흐름도.4 is a flow chart showing a software checksum generation process in a transmission processing driver according to the present invention.

제5도는 본 발명에 따른 수신측 프로세서의 수신 처리 구동기에서 패킷 수신 과정을 도시한 흐름도.5 is a flowchart illustrating a packet receiving process in a receiving processing driver of a receiving processor according to the present invention.

제6도는 본 발명에 따른 수신 처리 구동기에서 삽입된 헤더 첵섬과 데이터 첵섬 검증 과정을 도시한 흐름도.6 is a flow chart showing a header checksum and data checksum verification process inserted in the reception processing driver according to the present invention.

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

101 : 중앙 처리 장치 102 : 송신 처리 구동기101: central processing unit 102: transmission processing driver

103 : 수신 처리 구동기 104, 118 : 프로세서 제어 블럭103: reception processing driver 104, 118: processor control block

105 : 송신변수 106 : 재전송 큐105: transmission variable 106: retransmission queue

107 : 마지막 수신 확인 변수 108 : 패킷107: last acknowledgment variable 108: packet

109 : 재전송 프레임 110 : 직접 메모리 접근 제어기109: retransmission frame 110: direct memory access controller

111, 112 : 패킷 통신망의노드 113 : 직렬 입출력 제어기111, 112: Node 113 of a packet communication network: serial input / output controller

114 : 송신 FIFO 115 : 수신부 버퍼114: transmit FIFO 115: receiver buffer

116 : 상태 레지스터 117 : 수신 FIFO116: Status register 117: Receive FIFO

119 : self-royting 망119: self-royting net

120 : 순서 전달 보장 및 에러 제어를 위한 변수120: variable for order delivery guarantee and error control

이하, 첨부된 도면을 참조하면 본 발명을 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.

제1도는 본 발명이 적용되는 패킷 송수신 하드웨어의 구성도이다. 패킷 통신망(119)은 셀프 루팅(self-routing)의 원리에 따라 패킷의 주소 영역 값을 참조하여 목적지 프로세서로 패킷을 전송한다. 따라서 종단 프로세서에는 복잡한 루팅 절차가 필요 없으며 실시간 통신이 가능하다. 여기서 셀프 루팅 기능은 수신 프로세서의 루팅 주소에 따라 망이 루팅 기능을 수행하여 해당 목적지 프로세서로 메시지를 전달하는 기능이다. 송신측 프로세서는 전형적인 통신 보드의 유형이며 수신측 프로세서는 본 발명이 해결하고자 하는 문제의 수신 FIFO(117)를 장착한 통신 보드이다. 프로세서는 고속 셀프 루팅망의 노드(111)(112)와 정합하기 위해 직접 메모리 접근 제어기(110)와 직렬 입출력 제어기(113)를 장착하고 있으며, 패킷 송수신은 이들과 중앙 처리 장치(101)와의 상호 작용에 수행된다. 각 프로세서에는 흐름 제어, 순서 전달, 에러 제어에 요구되는 프로토콜 제어 정보들을 저장하는 프로세서 제어 블럭(104)(118)이라는 자료 구조가 존재한다. 송신측 프로세서는 흐름 제어를 위해 목적지 프로세서에 대한 프로세서 제어 블럭(104)을 갖고 있으며, 수신측 프로세서는 순서 전달 및 에러 제어를 위해 송신측 프로세서에 대한 프로세서 제어 블럭(118)를 갖고 있다. 송신측 프로세서의 수신측은 중앙 처리 장치(101)와 직접 접근 메모리 제어기(110)와의 완충 역할울 수행하는 순환 구조의 수신부 버퍼(115)가 존재한다. 통신 메시지인 패킷(108)은 송신인 경우 수신측에 의한 확인 패킷(패킷 유형 식별자가 데이터, 수신 준비, 수신 미준비, 거부인 경우 P[R]값)이 도달되기 전까지 재전송 큐(106)에 저장된다. 패킷의 순서 전달을 보장하기 위해 해당 송신 윈도우에는 송신 변수 V[S](105)와 마지막 수신 확인 변수 P[R](107)을 유지하고 있다. 송신 변수 V[S](105)는 패킷이 송신될 때마다 1씩 증가하며 마지막 수신 확인 변수P[R](107)은 송신된 패킷들에 대해 상대측 프로세서에 의해 수신 확인된 패킷의 최종 순서 번호이다. 수신측 프로세서에는 송신측 프로세서에서 전송한 패킷들의 순서 전달 보장 및 에러 제어를 위한 변수 V[R](120)을 갖고 있으며 그 값은 항상 다음에 수신할 패킷 순서 번호를 나타낸다. 수신측 프로세서에는 직접 메모리 접근 제어기(110)와 직렬 입출력 제어기(113)간의 속도 조정 및 성능 향상을 위해 고안된 송신 FIFO(114) 및 수신 FIFO(117)가 존재하며, HDLC 프레임 에러들을 검출하였을 경우 에러 상태를 표시하는 상태 레지스터(116)가 존재한다. 직렬 입출력 제어기(113)에 의해 검출된 에러들의 상태값은 수신부 버퍼(115)내의 DMA/SIO(직접 메모리 접근 제어기/직렬 입출력 제어기) 영역에 저장하고 중앙 처리 장치(101)가 에러 유무를 판단한다.1 is a block diagram of a packet transmission and reception hardware to which the present invention is applied. The packet communication network 119 transmits the packet to the destination processor by referring to the address area value of the packet according to the principle of self-routing. This eliminates the need for complex routing procedures for end processors and allows for real-time communication. In this case, the self-routing function performs a network routing function according to the routing address of the receiving processor to deliver a message to the corresponding destination processor. The transmitting processor is a type of a typical communication board and the receiving processor is a communication board equipped with a receiving FIFO 117 of the problem to be solved by the present invention. The processor is equipped with a direct memory access controller 110 and a serial input / output controller 113 to match the nodes 111 and 112 of the high-speed self-routing network, and packet transmission and reception are mutually performed with the central processing unit 101. Performed on the action. Each processor has a data structure called processor control blocks 104 and 118 that store protocol control information required for flow control, order transfer, and error control. The sending processor has a processor control block 104 for the destination processor for flow control, and the receiving processor has a processor control block 118 for the sending processor for order transfer and error control. The receiving side of the transmitting processor has a receiving buffer 115 of a circular structure that serves as a buffer between the central processing unit 101 and the direct access memory controller 110. The packet 108, which is a communication message, is sent to the retransmission queue 106 until an acknowledgment packet (P [R] value if the packet type identifier is data, ready to receive, not ready, or rejected) is received by the receiving side in case of transmission. Stored. The transmission variable V [S] 105 and the last acknowledgment variable P [R] 107 are maintained in the corresponding transmission window to ensure the forwarding of packets. The transmission variable V [S] 105 is incremented by 1 each time a packet is transmitted and the last acknowledgment variable P [R] 107 is the final sequence number of the packet acknowledged by the counterpart processor for the transmitted packets. to be. The receiving processor has a variable V [R] 120 for guaranteeing the order delivery and error control of the packets transmitted from the transmitting processor, and the value always indicates the next packet sequence number to be received. The receiving processor includes a transmitting FIFO 114 and a receiving FIFO 117 designed for speed adjustment and performance improvement between the direct memory access controller 110 and the serial input / output controller 113, and when an HDLC frame error is detected, an error occurs. There is a status register 116 indicating the status. The state values of the errors detected by the serial input / output controller 113 are stored in a DMA / SIO (direct memory access controller / serial input / output controller) area in the receiver buffer 115, and the central processing unit 101 determines whether there is an error. .

제2도는 본 발명이 적용되는 패킷의 구성도로서, 수신 프로세서 루팅 주소(201)와 송신 프로세서 루팅 주소(202), 패킷 유형 식별자(203), 서비스 품질 영역(QoS : Quality of Service)(204), 패킷 길이(205), 헤더 첵섬(checksum)(206), 패킷 데이터(207), DMA/SIO 에러(208) 및 수신 상태 플래그(209)로 구성되어 있다. 본 발명에서 헤더 첵섬(206)은 4 옥텟 단위로 구성하고 나머지 사용자 데이터 영역은 데이터 구성상 4의 배수로 정렬시키는 것이 어려우므로 2 옥텟 단위로 구성하며 패킷 데이터는 256 옥텟 단위로 구성한다. 패킷 유형 식별자(203)와 서비스 품질 영역(204)은 각각 1 옥텟씩 하나의 영역에 구성된다. 패킷 유형 식별자(203)는 8 비트 2 옥텟으로 구성되는데 상부의 1 옥텟은 처음 3 비트가 마지막 수신 확인 변수 P[R], 다음 1 비트가 0, 그다음 3 비트가 패킷의 송신 번호 P[S], 마지막 비트가 0일 때 데이터를 나타내는 영역이다. 또한, 하부의 8 비트는 처음의 3 비트가 마지막 수신 확인 변수 P[R], 마지막 비트가 1, 그리고 나머지 비트가 0일 때 수신준비를 나타내며, 처음의 3비트가 마지막 수신 확인 변수 P[R], 여섯 번째 비트와 마지막 비트가 1, 그리고 나머지 비트가 0일 때 수신 미준비, 처음의 3 비트가 마지막 수신 확인 변수 P[R], 다섯 번째 비트와 마지막 비트가 1, 그리고 나머지 비트가 0일 때 거부를 나타낸다. 서비스 품질 영역(203)은 외부 FIFO를 창작한 통신 보드에서 발생할 수 있는 두가지 문제를 해결하기 위해 본 발명에 따라 지정한 것으로 사용자가 패킷을 송신할 때 시스템 호출문을 통해 서비스 품질 값을 정의하게 한다. 서비스 품질 영역(203)은 여러가지 목적을 위해 정의되는데 여기서는 소프트 웨어 첵섬의 적용 범위만을 가지고 있다고 가정한다. 8 비트 2 옥텟으로 구성된 서비스 품질 영역(204)은 일곱 번째 비트와 여덟 번째 비트가 0일 때 헤더 첵섬을 나타내고, 일곱 번째 비트가 0이고 여덟 번째 비트가 1일 때 헤더/데이터 첵섬을 나타낸다. 사용자는 데이터의 중요도에 따라 첵섬 값을 패킷 헤더 부분만 적용하던지 아니면 헤더 부분과 사용자 데이터 영역 모두 적용할 수 있다. 따라서 기본 값은 패킷 헤더에 첵섬을 적용하는 경우가 되며 사용자가 전송하는 패킷들은 이들 두가지 형태가 통신 경로 상에서 혼재하는 형태가 된다. 그리고 서비스 품질 영역을 선택적으로 사용할 수 있게 하므로써 첵섬 값 계산으로 야기될 수 있는 중앙 처리 장치의 부하를 최소로 하면서 원하는 목적을 달성하게 한다. 소프트웨어 첵섬은 직접 메모리 접근 제어기와 외부 수신 FIFO의 상호 작용에서 발생하는 오류들을 검출하기 위해 고안된 방법이므로 오류 검출 이후 오류 패킷을 복구할 수 있는 방법이 고안되어야 하는데 본 발명에서 종래의 에러 제어 기법을 그대로 적용한다.2 is a block diagram of a packet to which the present invention is applied, and includes a receiving processor routing address 201, a sending processor routing address 202, a packet type identifier 203, and a quality of service (QoS) 204. Packet length 205, header checksum 206, packet data 207, DMA / SIO error 208, and reception status flag 209. In the present invention, since the header checksum 206 is configured in units of 4 octets and the remaining user data areas are difficult to align in multiples of 4 due to the data configuration, the header checksums 206 are configured in units of 2 octets and packet data is configured in units of 256 octets. The packet type identifier 203 and the quality of service region 204 are configured in one region, one octet each. The packet type identifier 203 consists of two 8-bit two octets, where the first one octet is the first three bits of the last acknowledgment variable P [R], the next one is zero, and the next three bits is the transmission number P [S] of the packet. When the last bit is 0, this area represents data. In addition, the lower eight bits indicate readiness when the first three bits are the last acknowledgment variable P [R], the last bit is one, and the remaining bits are zero, and the first three bits are the last acknowledgment variable P [R. ], Not ready when the sixth and last bit is 1, and the remaining bits are 0, the first 3 bits are the last acknowledgment variable P [R], the fifth and last bit is 1, and the remaining bits are 0 Indicates rejection. The quality of service area 203 is specified according to the present invention to solve two problems that may occur in a communication board that created an external FIFO, and allows a user to define a quality of service value through a system call when transmitting a packet. The quality of service area 203 is defined for various purposes, where it is assumed that it only has a coverage of software checksums. The quality of service region 204, consisting of 8 bits and 2 octets, represents a header checksum when the seventh and eighth bits are zero and a header / data checksum when the seventh bit is zero and the eighth bit is one. The user can apply the checksum value only to the packet header part or to both the header part and the user data area, depending on the importance of the data. Therefore, the default value is the case of applying the summation to the packet header, and the packets transmitted by the user are in the form of mixing these two types on the communication path. By selectively using the quality of service area, it is possible to achieve the desired purpose while minimizing the load on the central processing unit that may be caused by the checksum value calculation. Since the software checksum is designed to detect errors occurring in the interaction between the direct memory access controller and the external receiving FIFO, a method for recovering the error packet after the error detection should be devised. Apply.

제3도는 본 발명에 따른 송신측 프로세서의 송신 처리 구동기가 수신측 프로세서로 패킷을 송신하는 과정을 도시한 흐름도이다. 송신 처리 구동기는 항상 응용 프로그램으로부터의 패킷 송신 요구를 대기하는 상태(301)에 있다. 만약 응용 프로그램이 서비스 품질, 패킷 길이, 수신 프로세서 루팅 주소, 메시지 블럭 포인터 등을 매개 변수로 패킷 전송 요구 호출문을 수행할 경우(302) 송신 처리 구동기는 수신 프로세서에 대한 프로세서 제어 블럭을 검색한다. 먼저 송신 가능한지를 판단하기 위해 송신 윈도우의 두 변수인 V[S]와 마지막 수신 P[R] 변수를 이용한다. 이 두 변수의 차를 이전 패킷의 정상 수신 여부에 관계없이 최대로 보낼 수 있는 패킷 수인 시스템 파라미터 k와 비교하여(303) k보다 작을 경우 상대측에 패킷을 전송할 수 있다. 송신 처리 구동기는 응용 프로그램에 의해 주어진 정보와 송신 윈도우의 정보를 이용하여 패킷 헤더를 생성하고 송신 변수 V[S]를 증가시킨다(304). 패킷 헤더 생성이 끝난후 송신 처리 구동기는 첵섬 생성 절차를 호출한다(305). 첵섬 생성이 끝난 패킷은 발생할 지도 모를 통신 경로 상의 에러로 인한 수신측의 재전송 요구에 대비하여 송신 윈도우의 재전송 큐에 현재 송신할 패킷을 저장한다(306). 재전송 큐에 등록하는 작업이 종료된 후 해당 패킷은 통신 소자들인 직접 메모리 접근 제어기와 직렬 입출력 제어기를 통해 전송된다(307). 만약 송신 윈도우의 두 변수의 차가 시스템 매개 변수 k보다 크거나 같을 경우 패킷 전송은 더이상 진행될 수 없다. 이 경우 송신 처리 구동기의 상태는 다시 패킷 송신 대기 상태로 천이한다(301).3 is a flowchart illustrating a process of transmitting a packet to a receiving processor by the transmitting processing driver of the transmitting processor according to the present invention. The transmission processing driver is always in a state 301 waiting for a packet transmission request from an application program. If the application program performs a packet transfer request call with parameters of quality of service, packet length, receiving processor routing address, message block pointer, etc., the transmission processing driver retrieves a processor control block for the receiving processor. First, we use the two variables V [S] and the last received P [R] in the transmission window to determine if we can transmit. If the difference between these two variables is smaller than k compared with the system parameter k, which is the maximum number of packets that can be sent regardless of whether the previous packet is normally received (303), the packet can be transmitted to the other side. The transmission processing driver generates a packet header using the information given by the application program and the information of the transmission window, and increments the transmission variable V [S] (304). After generating the packet header, the transmission processing driver invokes the checksum generation procedure (305). The checksum generated packet stores the packet to be transmitted currently in the retransmission queue of the transmission window in preparation for a retransmission request of the receiver due to an error in the communication path that may occur. After the operation of registering the retransmission queue is completed, the packet is transmitted through the direct memory access controller and the serial input / output controller, which are communication elements (307). If the difference between two variables in the transmission window is greater than or equal to the system parameter k, the packet transmission can no longer proceed. In this case, the state of the transmission processing driver transitions back to the packet transmission waiting state (301).

제4도는 본 발명에 따른 송신 처리 구동기에서 소프트웨어 첵섬 생성 과정을 순서적으로 도시한 흐름도이다. 송신 처리 구동기는 먼저 계산될 첵섬 값을 초기화 시키고 패킷 헤더에 대한 첵섬을 구해서 그 값을 헤더 첵섬 영역에 저장한 후(401) 서비스 품질 영역의 값이 0인가를 검사한다(402). 만약 서비스 품질 영역의 값이 0일 경우 데이터 영역에 대한 첵섬은 구하지 않고 송신 처리 구동기로 복귀한다(408). 만약 서비스 품질 영역이 0이 아닐 경우 데이터 영역에 대한 첵섬 값을 구한다. 데이터 영역 첵섬은 2의 배수 단위로 계산되므로 패킷 길이를 2의 배수가 되게 조정한 후 첵섬 절차가 수행될 데이터 영역으로 포인터를 이동시킨다(403). 상기한 준비 단계 완료 후 패킷 길이가 0보다 큰가를 검사한다(404). 만약 패킷 길이가 0보다 크면 현재 첵섬 값에 현재 데이터 영역의 내용을 더한다(405). 그 후 패킷 길이를 감소시키고 데이터 영역 포인터를 증가시킨다(406). 상기 과정은 패킷 길이가 0보다 작거나 같을 때보다 반복된다. 패킷 길이가 0보다 작을 경우 현재 데이터 영역에 계산된 첵섬 값을 저장한다(407). 첵섬이 계산된 패킷 포인터는 송신 처리 구동기로 복귀된다(408).4 is a flowchart sequentially illustrating a software checksum generation process in a transmission processing driver according to the present invention. The transmission process driver first initializes the checksum value to be calculated, obtains the checksum for the packet header, stores the value in the header checksum region (401), and checks whether the value of the quality of service region is 0 (402). If the value of the quality of service area is 0, the flow returns to the transmission processing driver without obtaining a checksum for the data area (408). If the quality of service area is not 0, the checksum value for the data area is obtained. Since the data region checksum is calculated in multiples of two, the packet length is adjusted to a multiple of two and the pointer is moved to the data region where the checksum procedure is to be performed (403). After completion of the preparation step, it is checked whether the packet length is greater than zero (404). If the packet length is greater than zero, the content of the current data area is added to the current checksum value (405). The packet length is then reduced and the data area pointer is increased (406). The process is repeated than when the packet length is less than or equal to zero. If the packet length is less than zero, the calculated sumsum value is stored in the current data area (407). The packet pointer from which the sum is computed is returned to the transmission processing driver (408).

제5도는 본 발명에 따른 수신측 프로세서에서 수신 처리 구동기의 처리 과정을 순서적으로 도시한 흐름도이다. 수신 처리 구동기는 항상 수신 대기 상태(501)에서 외부 망으로부터 패킷 수신에 대한 이벤트가 발생하기를 기다리고 있다. 만약 망의 노드로부터 직렬 입출력 제어기와 직접 메모리 접근 제어기를 통해 패킷이 수신부 버퍼로 들어오면 직접 메모리 접근 제어기로부터 수신 처리 구동기로 이벤트가 발생한다(502). 수신 처리 구동기는 수신부 버퍼로 수신된 패킷들을 처리하기 위해 수신부 버퍼의 처리 시작 포인터를 결정한다(503). 수신 처리 구동기는 이 포인터로부터 직접 메모리 접근 제어기에 의해 수신된 N개의 패킷들을 모두 처리하기 위해 패킷의 수신 상태 플래그가 0인가를 조사하게 된다(504). 이 값이 0보다 큰 양수 값이면 이 패킷은 정상 혹은 에러 프레임 중 하나를 나타냄과 동시에 수신 처리 구동기에 의해 처리되어야 할 패킷임을 나타낸다. 이 값이 0이 아닌 양수 값이면 직접 메모리 접근 제어기(DMA)나 직렬 입출력 제어기(SIO)의 에러를 검사하게 된다(505). 검사 결과 직렬 입출력 제어기의 상태 레지스터가 에러 값을 가지거나 직접 메모리 접근 제어기가 에러 값을 가지면 이 패킷을 파기(509)하고 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 검사 결과 에러가 없으면 수신 FIFO에서의 패킷 파손 여부를 조사하기 위해 각 송신부 구동기에서 패킷에 삽입시킨 첵섬 값을 검증하기 위해 첵섭 비교(compare cheksum) 절차를 호출한다(506). 이 절차의 복귀 값을 가지고 검증된 결과가 0인가를 검사한다(507). 만약 검사 결과가 0이 아니면 이 패킷은 수신 FIFO에서 파손된 패킷이므로 에러 카운터를 증가(508)시킨 다음 패킷을 파기(509)하고 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 단계 (507)의 검사 결과 0이면 수신 FIFO에서의 패킷 파손은 없으므로 현재 패킷의 유형 식별자를 검사한다(510). 검사 결과 데이터 패킷이면 송신측 프로세서 제어 블럭의 V[R] 값과 패키의 송신 번호 P[S]가 동일한지 검사한다(513). 이 검사 결과가 같으면 송신단에서 보낸 패킷이 수신단에 의해 정확히 수신되었으므로 이 패킷을 응용 프로그램이 처리할 수 있게 패킷을 접수(515)하고 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 만약 비교 결과 같지 않으면 수신측은 프로세서 제어 블럭에 해당하는 프로세서로 재전송을 요구하고(514) 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 한편 수신측 프로세서의 수신 처리 구동기에서 재전송 요구 패킷을 전송하였을 경우 재전송 패킷은 해당 망의 노드와 직렬 입출력 제어기 및 직접 메모리 접근 제어기를 통해 해당 송신측 프로세서의 수신부 버퍼로 수신된다. 수신측 프로세서의 수신 처리 구동기의 동작은 상기 과정을 반복하며 현재 패킷 유형이 재전송 패킷임을 안다. 재전송 패킷에 대한 수신측 프로세서의 수신 처리 구동기는 P[R] 값부터 V[S]-1까지의 송신 윈도우상에 등록된 모든 패킷을 재전송한다(512). 재전송 처리 절차 종료후에는 다음 패킷을 처리하기 위한 작업을 수행한다(516). 현재 패킷 유형이 데이터나 재전송 패킷이 아닌 경우 해당 처리 절차를 수행한다(511). 상기 과정은 수신부 버퍼의 수신 상태 플래그 값이 0이 아닐 경우 반복되며 그 값이 0이면 다음 수신 처리 이벤트 발생시 처리를 위해 그때의 수신부 버퍼 포인터를 저장한 후(517) 다시 수신 대기 상태로 복귀한다(501).5 is a flowchart sequentially illustrating a process of a reception processing driver in a receiving processor according to the present invention. The reception processing driver is always waiting for an event for packet reception from the external network in the reception waiting state 501. If a packet enters the receiver buffer from the node of the network through the serial input / output controller and the direct memory access controller, an event occurs from the direct memory access controller to the receive processing driver (502). The reception processing driver determines a processing start pointer of the reception buffer to process the packets received in the reception buffer (503). The receive processing driver checks 504 if the receive status flag of the packet is zero to process all N packets received by the memory access controller directly from this pointer. A positive value greater than zero indicates that this packet is a packet to be processed by the reception processing driver while indicating either a normal or error frame. If the value is a non-zero positive value, an error of the direct memory access controller (DMA) or the serial input / output controller (SIO) is checked (505). If the result of the check is that the status register of the serial I / O controller has an error value or the direct memory access controller has an error value, the packet is discarded (509), the receive buffer pointer is increased (516) to process the next packet, and then the packet is returned. Repeat step 504 to check if the reception status flag is zero. If there is no error as a result of the check, a compare cheksum procedure is called (506) to verify a checksum value inserted into the packet by each transmitter driver in order to check whether a packet is broken in the reception FIFO. The return value of this procedure is checked to see if the verified result is zero (507). If the result of the check is non-zero, the packet is a broken packet in the receive FIFO, so the error counter is incremented (508), then the packet is discarded (509), and the receive buffer pointer is incremented (516) to process the next packet. From step 504, it is checked whether the received state flag of the packet is zero. If the result of the check in step 507 is 0, there is no packet corruption in the received FIFO, so the type identifier of the current packet is checked (510). If the result of the check is a data packet, it is checked whether the V [R] value of the transmitting processor control block and the transmission number P [S] of the packet are the same (513). If these checks are the same, the packet sent by the sender was correctly received by the receiver, so the packet is accepted (515) for the application to process, and the receive buffer pointer is incremented (516) to process the next packet, and then again. From step 504, it is checked whether the received state flag of the packet is zero. If the comparison result is not the same, the receiver requests retransmission to the processor corresponding to the processor control block (514), increments (516) the reception buffer pointer to process the next packet, and checks again whether the reception status flag of the packet is 0. Repeat from step 504. On the other hand, when the retransmission request packet is transmitted from the receiving processor driver of the receiving processor, the retransmitting packet is received through the node of the network, the serial input / output controller, and the direct memory access controller to the receiving buffer of the transmitting processor. The operation of the receive processing driver of the receiving processor repeats the above process and knows that the current packet type is a retransmission packet. The reception processing driver of the receiving side processor for the retransmission packet retransmits all the packets registered on the transmission window from the value of P [R] to V [S] -1 (512). After completion of the retransmission process, an operation for processing the next packet is performed (516). If the current packet type is not data or a retransmission packet, a corresponding processing procedure is performed (511). The above process is repeated when the reception state flag value of the receiver buffer is not 0. If the value is 0, the receiver buffer pointer is stored for processing when the next reception process event occurs (517), and the process returns to the reception standby state again. 501).

제6도는 본 발명에 따른 수신 처리 구동기에서 패킷에 삽입된 헤더 첵섬과 데이터 첵섬 검증 절차를 나타낸 흐름도로서, 수신 처리 구동기가 현재 패킷의 첵섬을 검증하기 위해 첵섬 비교 절차를 호출하여 수행된다. 먼저 첵섬 값을 초기화하고 현재 패킷의 헤더부에 대한 첵섬 값을 계산한다(601). 이 결과와 헤더부의 헤더 첵섬 값과 비교한다(602). 헤더부에서 첵섬 에러가 발생하면 에러 값 1을 복귀한다(603). 헤더부에 첵섬 에러가 없으면 서비스 품질 영역 값이 0인가를 검사한다(604). 서비스 품질 영역 값이 0이면 패킷내에 데이터 첵섬 값이 없고 헤더부에 첵섬 에러가 없으므로 0 값을 복귀한다(605). 서비스 품질 영역이 0이 아니면 데이터 첵섬에 대한 검증을 수행한다. 먼저 이전에 헤더에 대해 계산된 첵섬 값을 초기화 시킨 다음 패킷 길이를 2의 배수로 정렬시키고 데이터 첵섬을 계산하기 위해 포인터를 데이터 포인터로 이동시킨다(606). 상기한 패킷 길이가 0보다 큰가를 검사한다(607). 검사 결과 패킷 길이가 0보다 크면 패킷 길이만큼에 대해서 2의 배수 단위로 첵섬을 계산한 후 포인터를 증가시키고 패킷 길이를 1만큼 감소시킨다(611). 상기 과정을 패킷 길이가 0이 될 때까지 반복한 후 0이면 계산된 첵섬 값과 패킷 길이 다음에 있는 삽입된 데이터 첵섬 값과 비교한다(608). 이 값이 같으면 패킷은 파손되지 않고 정확히 수신된 것이므로 0 값을 복귀하고(609), 같지 않을 경우 1 값을 복귀한다(610).6 is a flowchart illustrating a header checksum and a data checksum verification procedure inserted into a packet in the reception processing driver according to the present invention, which is performed by the reception processing driver calling a checksum comparison procedure to verify the checksum of the current packet. First, the checksum value is initialized and the checksum value for the header portion of the current packet is calculated (601). This result is compared with the header checksum value of the header portion (602). If a checksum error occurs in the header, error value 1 is returned (603). If there is no checksum error in the header part, it is checked whether the quality of service area value is 0 (604). If the quality of service area value is 0, since there is no data checksum value in the packet and there is no checksum error in the header, a value of 0 is returned (605). If the quality of service area is not 0, verify the data checksum. First, the checksum value previously calculated for the header is initialized, then the packet length is aligned in multiples of two and the pointer is moved to the data pointer to calculate the data checksum (606). It is checked if the packet length is greater than zero (607). If the packet length is greater than zero, the checksum is calculated in multiples of two for the packet length, the pointer is increased, and the packet length is decreased by one (611). The process is repeated until the packet length becomes zero, and then compares the calculated match sum value with the inserted data match sum value following the packet length (608). If this value is the same, the packet is not damaged and is correctly received, and thus the value 0 is returned (609). If the value is not equal, the value 1 is returned (610).

상술한 바와 같이 본 발명에 의하면 데이터의 신뢰성을 보장받을 수 있는 특징으로 갖고 있으며, 외부 FIFO라는 메모리 소자를 채택하는 임베디드(embedded) 통신 시스템이 실시간으로 통신을 원할 경우 송신할 모든 패킷들에 전 영역 첵섬으로 인해 야기되는 통신 처리 속도 부하를 최소화하기 위해 데이터 중요도에 따라 선택적으로 소프트웨어 첵섬을 운용하므로써 통신 처리 속도상의 성능 저하없이 완벽한 에러 제어 기능을 제공할 수 있는 탁월한 효과가 있다.As described above, according to the present invention, the reliability of data is guaranteed, and when an embedded communication system adopting an external FIFO memory element wants to communicate in real time, all the packets are to be transmitted. By selectively operating software checksums based on data importance to minimize communication throughput loads caused by checksums, there is an excellent effect of providing complete error control without compromising performance.

Claims (4)

송신측 프로세서의 송신 처리 구동기에서 송신한 패킷을 고속 셀프-루팅망을 통해 외부 선입선출 버퍼가 내장된 수신측 프로세서의 수신 처리 구동기에서 수신하는 패킷 송수신 시스템에 있어서, 상기 송신 처리 구동기가 패킷 송신 요구 대기 상태에서 응용 프로그램의 패킷 전송 요구 호출문을 수신하여 송신 윈도우의 송신 변수와 마지막 수신 변수의 차를 시스템 파라미터와 비교하는 단계와, 상기 비교 결과에 따라 송신 변수와 마지막 수신 변수의 차가 시스템 파라미터보다 작을 경우 패킷 헤더를 생성하고 송신 변수를 증가시키는 단계와, 상기 패킷 헤더 생성이 끝난 후 첵섬 생성 절차를 호출하는 단계와, 상기 첵섬 생성 절차에 의해 책섬 생성이 끝난 패킷에서 송신 윈도우의 재전송 큐에 송신할 패킷을 저장한 후 해당 패킷을 직접 메모리 접근 제어기와 직렬 입출력 제어기를 통해 송신하고 패킷 송신 대기 상태를 유지하는 단계와, 상기 비교 결과에 따라 송신 변수와 마지막 수신 변수의 차가 시스템 파라미터보다 크거나 같은 경우 송신 처리 구동기의 상태를 패킷 송신 대기 상태로 천이하는 단계로 이루어진 것을 특징으로 하는 선입선출 버퍼를 가지는 내장형 통신 보드에서의 패킷의 파손 검출 및 복구 방법.A packet transmission / reception system for receiving a packet transmitted by a transmission processing driver of a transmitting processor through a high speed self-routing network in a receiving processing driver of a receiving processor having an external first-in first-out buffer. Receiving a packet transmission request call statement of an application program in a standby state and comparing a difference between a transmission variable and a last reception variable of a transmission window with a system parameter, and the difference between the transmission variable and the last reception variable is greater than the system parameter according to the comparison result. Generating a packet header and increasing a transmission variable if small, invoking a checksum generation procedure after the packet header generation is finished, and transmitting the packet to the retransmission queue of the transmission window in the packet generated after the checksum generation procedure. Store the packet to be stored and then attach the packet directly to memory Transmitting through the controller and the serial I / O controller and maintaining a packet transmission standby state, and if the difference between the transmission variable and the last reception variable is greater than or equal to the system parameter according to the comparison result, the state of the transmission processing driver to the packet transmission standby state. Method for detecting and repairing packet corruption in a built-in communication board having a first-in, first-out buffer, characterized in that the transition step. 제1항에 이어서, 상기 첵섬 생성을 호출하는 단계는 송신 처리 구동기에서 첵섬값을 초기화시킨 후 패킷 헤더에 대한 첵섬을 헤더 첵섬 영역에 저장하고 서비스 품질 영역의 값이 0인가를 검사하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역 값이 0일 경우 데이터 영역에 대한 첵섬은 구하지 않고 송신 처리 구동기로 복귀하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역의 값이 0이 아닐 경우 패킷 길이를 2의 배수로 조정하고 첵섬 절차가 수행될 데이터 영역으로 포인터를 이동시킨 후 패킷 길이가 0보다 큰가를 검사하는 단계와, 상기 패킷 길이의 검사 결과에 따라 패킷 길이가 0보다 클 경우 현재 첵섬 값에 현재 데이터 영역의 내용을 더한 후 패킷 길이를 감소시키고 데이터 영역 포인터를 증가시킨 후 패킷 길이가 0보다 큰가를 검사하는 단계로 천이하는 단계와, 상기 패킷 길이의 검사 결과에 따라 패킷 길이가 0보다 작을 경우 현재 데이터 영역에 계산된 첵섬 값을 저장한 후 첵섬이 계산된 패킷 포인터를 송신 처리 구동기로 복귀시키는 단계로 이루어진 것을 특징으로 하는 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법.The method of claim 1, wherein the invoking the checksum generation comprises: initializing the checksum value in the transmission processing driver, storing the checksum for the packet header in the header checksum region and checking whether the value of the quality of service region is zero; If the quality of service area value is 0 according to the result of the inspection of the quality of service area value, returning to the transmission processing driver without obtaining the checksum for the data area; and the value of the quality of service area according to the result of inspection of the quality of service area value If not 0, adjust the packet length to a multiple of 2, move the pointer to the data area where the checksum procedure is to be performed, and check whether the packet length is greater than zero, and if the packet length is zero according to the result of the packet length check. If greater than, adds the contents of the current data area to the current match value, then reduces the packet length and increments the data area pointer. Transitioning to a step of checking whether the packet length is greater than zero after adding it, and if the packet length is smaller than zero according to the result of the packet length checking, storing the calculated sum value in the current data area and then calculating the sum sum. A method for detecting and repairing a broken packet of a received packet in an embedded communication board having a first-in, first-out buffer comprising returning a packet pointer to a transmission processing driver. 송신측 프로세서의 송신 처리 구동기에서 송신한 패킷을 고속 셀프-루팅 망을 통해 외부 선입선출 버퍼가 내장된 수신측 프로세서의 수신 처리 구동기에서 수신하는 패킷 송수신 시스템에 있어서, 상기 수신 처리 구동기는 수신 대기 상태에서 외부 망으로부터 패킷 수신에 대한 이벤트를 수신하여 수신부 버퍼의 처리 시작 포인터를 결정하고 이로부터 패킷의 수신 상태 플래그가 0인가를 검사하는 단계와, 상기 수신 상태 플래그의 값이 0이 아닌 값일 경우 직접 메모리 접근 제어기나 직렬 입출력 제어기의 에러 발생을 검사하는 단계와, 상기 에러 발생의 검사 결과에 따라 직렬 입출력 제어기의 상태 레지스터 또는 직접 메모리 접근 제어기가 에러 값을 가질 경우 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 에러 발생의 검사 결과에 따라 에러가 없을 경우 첵섬 비교 절차를 호출하고, 이로 인해 생성된 복귀 값을 가지고 검증된 결과가 0인가를 검사하는 단계와, 상기 검증된 결과가 0이 아닐 경우 에러 카운터를 증가시키고 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 검증된 결과가 0일 경우 현재 패킷의 유형 식별자를 검사하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 따라 데이터 패킷일 경우 송신측 프로세서 제어 블럭의 수신 변수 값과 패킷 송신 번호가 동일한지를 검사하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 상기 수신 변수 값과 패킷 송신 번호가 동일할 경우 수신된 패킷을 접수하고 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 수신 변수 값과 패킷 송신 번호가 동일하지 않을 경우 수신측에서 프로세서 제어 블록으로 재전송을 요구한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 재전송 패킷일 경우 재전송 패킷에 대한 수신측 프로세서의 수신 처리 구동기에서 마지막 수신 변수 값부터 (수신 변수-1)까지의 송신 윈도우상에 등록된 모든 패킷을 재전송하고 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 따라 패킷 유형이 데이터나 재전송 패킷이 아닐 경우 패킷 유형에 해당하는 처리 절차를 수행하는 단계와, 상기 수신 상태 플래그의 검사 결과에 따라 수신 상태 플래그 값이 0일 경우 수신부 버퍼 포인터를 저장한 후 수신 대기 상태로 복귀하는 단계로 이루어진 것을 특징으로 하는 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법.A packet transmission / reception system for receiving a packet transmitted by a transmission processing driver of a transmitting processor through a high speed self-routing network in a receiving processing driver of a receiving processor having an external first-in, first-out buffer, wherein the receiving processing driver is in a waiting state for reception. Receiving an event on packet reception from an external network, determining a processing start pointer of a receiver buffer, and checking whether the reception status flag of the packet is 0 from the packet; and if the reception status flag is nonzero, Checking an error occurrence of a memory access controller or a serial input / output controller, and discarding the received packet if the status register of the serial input / output controller or the direct memory access controller has an error value according to a result of the check of the error occurrence; Increment the buffer pointer and display the packet's receive status Transitioning to a step of checking whether 0 is 0, and if there is no error according to the result of the check of the occurrence of the error, calling a checksum comparison procedure, and checking whether the verified result is 0 with the return value generated thereby. And if the verified result is not zero, incrementing an error counter, discarding the received packet, incrementing a receive buffer pointer, and checking whether the received status flag of the packet is zero; If the result is 0, checking the type identifier of the current packet; if the data packet is a data packet according to the check result of the packet type identifier, checking whether the received variable value and the packet transmission number of the transmitting processor control block are the same; And when the received variable value and the packet transmission number are the same according to a result of checking the received variable value and the packet transmission number Accepting the received packet, incrementing the reception buffer pointer, and transitioning to checking whether the reception status flag of the packet is 0, and receiving the reception variable value and the packet transmission number according to the result of the check of the reception variable value and the packet transmission number. If is not the same, the receiving side requests retransmission to the processor control block, and then increments the receiving buffer pointer and transitions to checking whether the reception status flag of the packet is 0, and retransmitting to the check result of the packet type identifier. If the packet is a packet, the receiving processor of the receiving processor about the retransmitting packet retransmits all the registered packets on the transmission window from the last receiving variable value to the receiving variable-1, increases the receiving buffer pointer, and then receives the packet. Transitioning to checking whether the flag is 0, and checking the packet type identifier If the packet type is not a data or retransmission packet, performing a processing procedure corresponding to the packet type, and if the reception state flag value is 0 according to the check result of the reception state flag, the receiver buffer pointer is received after storing A method for detecting and recovering a broken packet of a received packet in an embedded communication board having a first-in, first-out buffer, the method comprising returning to a standby state. 제3항에 있어서, 상기 첵섬 비교 절차를 수행하는 단계는 첵섬 값을 초기화하고 현재 패킷의 헤더부에 대한 첵섬 값을 계산하는 단계와, 상기 패킷의 헤더부에 대한 첵섬 값과 헤더부의 헤더 첵섬 값을 비교하여 에러가 발생했는지를 검사하는 단계와, 상기 비교 결과에 따라 헤더부에서 첵섬 에러가 발생할 경우 에러 값 1을 복귀하는 단계와, 상기 비교 결과에 따라 헤더부에 첵섬 에러가 발생하지 않을 경우 서비스 품질 영역 값이 0인가를 검사하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역 값이 0일 경우 0 값을 복귀하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역 값이 0이 아닐 경우 이전의 헤더에 대해 계산된 첵섬 값을 초기화시킨 후 패킷 길이를 2의 배수로 정렬시키고 포인터를 데이터 포인터로 이동시키는 단계와, 상기 2의 배수로 정렬시킨 패킷 길이가 0보다 큰가를 검사하는 단계와, 상기 패킷 길이의 검사 결과에 따라 패킷 길이가 0보다 클 경우 패킷 길이에 대해서 2의 배수 단위로 첵섬을 계산하고 포인터를 증가시킨 후 패킷 길이를 1만큼 감소시키는 단계와, 상기 패킷 길이를 1만큼 감소시킨 후 패킷 길이가 0보다 큰가를 검사하는 단계로 천이하는 단계와, 상기 패킷길이의 검사 결과 패킷 길이가 0일 경우 계산된 첵섬 값과 삽입된 데이터 첵섬 값을 비교하는 단계와, 상기 비교 결과 첵섬 값과 삽입된 데이터 첵섬 값이 같을 경우 0 값을 복귀하는 단계와, 상기 비교 결과 첵섬 값과 삽입된 데이터 첵섬 값이 같지 않을 경우 1 값을 복귀하는 단계로 이루어진 것을 특징으로 하는 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법.4. The method of claim 3, wherein performing the checksum comparison procedure comprises: initializing a checksum value and calculating a checksum value for a header portion of a current packet, a checksum value for the header portion of the packet, and a header checksum value for the header portion of the packet; Comparing the result of the step of checking whether an error has occurred, returning an error value 1 if a checksum error occurs in the header part according to the comparison result, and if no checksum error occurs in the header part according to the comparison result. Checking whether the quality of service area value is 0, returning a value of 0 when the quality of service area value is 0 according to the result of the inspection of the quality of service area value, and servicing the service according to the result of inspection of the quality of service area value If the quality domain value is nonzero, initialize the checksum value calculated for the previous header, then align the packet length in multiples of 2 and place the pointer on the data. Moving to an interleaver; checking whether the packet length aligned in multiples of two is greater than zero; and checking the packet length in multiples of two for a packet length if the packet length is greater than zero according to a result of the inspection of the packet length. Calculating and increasing the pointer and decreasing the packet length by 1, and then transitioning to reducing the packet length by 1 and checking whether the packet length is greater than 0, and checking the packet length of the packet. Comparing the computed checksum value and the inserted data checksum value when the length is zero; and returning a zero value when the checksum value and the inserted data checksum value are equal to each other as a result of the comparison; The number of built-in communication boards having a first-in-first-out buffer, characterized in that the step of returning a value of 1 if the data data sum value is not the same. Damage detection and repair method of the packet.
KR1019960040479A 1996-09-18 1996-09-18 Received packet detecting method in communication board with fifo buffer KR100204586B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960040479A KR100204586B1 (en) 1996-09-18 1996-09-18 Received packet detecting method in communication board with fifo buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960040479A KR100204586B1 (en) 1996-09-18 1996-09-18 Received packet detecting method in communication board with fifo buffer

Publications (2)

Publication Number Publication Date
KR19980021577A KR19980021577A (en) 1998-06-25
KR100204586B1 true KR100204586B1 (en) 1999-06-15

Family

ID=19474131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960040479A KR100204586B1 (en) 1996-09-18 1996-09-18 Received packet detecting method in communication board with fifo buffer

Country Status (1)

Country Link
KR (1) KR100204586B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100452640B1 (en) * 2002-11-11 2004-10-14 한국전자통신연구원 Apparatus for receiving data packet and method thereof
KR100710081B1 (en) * 2005-08-22 2007-04-23 삼성전자주식회사 Display apparatus and control method thereof
KR100679820B1 (en) * 2005-09-06 2007-02-06 엘지전자 주식회사 Method for scheduling data packet retransmission on wireless communication network

Also Published As

Publication number Publication date
KR19980021577A (en) 1998-06-25

Similar Documents

Publication Publication Date Title
US5301186A (en) High speed transmission line interface
US5115432A (en) Communication architecture for high speed networking
EP0823165B1 (en) Asynchronous packet switching
US6952419B1 (en) High performance transmission link and interconnect
US6065052A (en) System for maintaining strongly sequentially ordered packet flow in a ring network system with busy and failed nodes
US6421803B1 (en) System and method for implementing hybrid automatic repeat request using parity check combining
US20080195912A1 (en) Method of communicatoin
US4566098A (en) Control mechanism for a ring communication system
KR20100003227A (en) Transmitting/receiving circuit, transmitting circuit, and transmitting/receiving method
US6401127B1 (en) Adaptive timer for LLC type 2 reliable transport in a computer network
WO2011046056A1 (en) Transmission control method for packet communication and packet communication system
US7567570B2 (en) Reliable transport of TDM data streams over packet networks
US5864677A (en) System for preserving sequential ordering and supporting nonidempotent commands in a ring network with busy nodes
US6597665B1 (en) System for dynamic ordering support in a ringlet serial interconnect
KR100204586B1 (en) Received packet detecting method in communication board with fifo buffer
WO2010027064A1 (en) Data transmission method, data transmission system, data transmission device, data reception device, and control program
KR20000040467A (en) Method for controlling data communication of network
EP0161825A2 (en) A control mechanism for a ring communication system
JP2000059347A (en) Method and device for radio communication
JP2001333048A (en) Data transfer system
Fantacci Mean packet delay analysis for the selective repeat automatic repeat request protocol with correlated arrivals and deterministic and nondeterministic acknowledgement delays
JPH03196739A (en) Cell transfer system and communication controller according to the system
CN115412197A (en) Data transmission method and equipment
KR100521801B1 (en) Spam mail prevention system and method on network
Creech Black Channel Communication: What Is It and How Does It Work?

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080307

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee