KR19990079650A - 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법 - Google Patents

두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법 Download PDF

Info

Publication number
KR19990079650A
KR19990079650A KR1019980012346A KR19980012346A KR19990079650A KR 19990079650 A KR19990079650 A KR 19990079650A KR 1019980012346 A KR1019980012346 A KR 1019980012346A KR 19980012346 A KR19980012346 A KR 19980012346A KR 19990079650 A KR19990079650 A KR 19990079650A
Authority
KR
South Korea
Prior art keywords
data
packet
packets
length
transmission
Prior art date
Application number
KR1019980012346A
Other languages
English (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 KR1019980012346A priority Critical patent/KR19990079650A/ko
Publication of KR19990079650A publication Critical patent/KR19990079650A/ko

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 고정길이의 패킷을 사용한 가변 길이로 데이터를 처리하여 두 프로세서간 통신시 시스템의 성능향상 및 자원 이용도를 높일 수 있도록 하는 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법에 관한 것으로, 이는 송신시에는 송신 데이터를 구성하고, 이의 길이를 계산하여 송신 데이터 첫 부분에 삽입하는 단계와, 길이 값을 사용하여 송신할 패킷의 수를 계산하는 단계와, 패킷의 수만큼 송신 플래그 영역을 검사하여 패킷이 "풀" 상태인지를 확인하는 단계와, 패킷이 "풀" 상태일 때에는 에러 리턴하고, 패킷이 "풀"이 아니면 송신 데이터 영역에 데이터를 복사하고, 송신 플래그 영역에 패킷 수만큼 "1"로 채우는 단계를 수행하고; 수신시에는 수신할 위치의 플래그를 검사하여 패킷이 빈 공간인가를 확인하는 단계와, 패킷이 빈 공간이면 에러 리턴하고, 패킷이 빈 공간이 아니면 수신할 위치의 데이터 영역에서 길이를 읽어내는 단계와, 수신 데이터 영역에서 길이만큼 데이터를 복사하는 단계와, 길이를 이용하여 패킷의 수를 계산하여 수신 플래그 영역에 패킷 수만큼 "0"으로 채우는 단계를 수행함을 특징으로 한다.

Description

두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법
본 발명은 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법에 관한 것으로서, 더욱 상세하게는 고정길이의 패킷을 사용한 가변 길이로 데이터를 처리하여 두 프로세서간 통신시 시스템의 성능향상 및 자원 이용도를 높일 수 있도록 하는 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법에 관한 것이다.
종래에는 도 1에서와 같이, 두 프로세서간 데이터 통신시 하나의 데이터를 처리하는 데, 길이가 큰 고정길이의 패킷을 사용하여 시스템이 처리할 수 있는 최대길이를 패킷의 길이로 사용하고 있으나, 대부분의 데이터는 이보다 휠씬 짧기 때문에 많은 자원이 낭비되며, 처리속도가 저하된다.
즉, 처리속도를 높이기 위하여 DMA(Direct Memory Access)를 사용하는 데, DMA의 성능을 최대한 사용하기 위해서는 한꺼번에 읽거나 쓰는 양이 많을수록 성능을 높일 수 있다. 그래서 도 2와 도 3에서와 같이, 데이터를 한꺼번에 복사하는 방법을 사용한다. 두 개의 프로세서는 각각 송신위치(TxPtr)와 수신위치(TxPtr)를 유지하여 다음에 쓰고 읽을 위치를 유지하여야 한다.
먼저, 송신할 때에는 송신할 패킷의 개수를 계산하게 된다(S21). 그리고, 송신 플래그 영역에서 송신위치(TxPtr)로부터 패킷의 개수만큼 플래그를 검사(S22)하여 패킷이 풀(Full)상태인지를 확인(S23)하게 된다.
이때 플래그가 "0"이면 패킷이 비어있는 것이고, 플래그가 "1"이면 패킷의 여분이 없는 것이다. 따라서, 패킷의 개수만큼 "0"이면 송신 데이터 영역에 송신위치(TxPtr)로부터 패킷을 개수만큼 복사한다(S24). 그리고 송신 영역에 패킷 개수만큼 "1"로 채운다(S25). 이때 송신위치(TxPtr)의 뒷부분을 먼저 채우고, 마지막에 송신위치(TxPtr)의 플래그를 "1"로 채운다.
하지만, 플래그가 "1" 이면, 에러를 리턴한다(S26).
다음은 수신할 때에는 수신 플래그 영역에서 수신위치(RxPtr)로부터 플래그를 검사하는데, 이때 플래그가 "0"이면, 패킷이 비어있는 것이고, 플래그가 "1"이면 유효한 패킷이 있는 것이다. 그래서, 수신위치(RxPtr)로부터 몇 개의 "1"이 있는지 검사하여 읽을 패킷의 개수를 계산(S31)하여 패킷이 비어있는지를 확인하게 된다(S32).
그 결과 개수가 "0"이면 에러를 리턴한(S35) 후 상기한 과정을 반복하지만, 읽을 패킷이 있으면 수신 데이터 영역에서 수신위치(RxPtr)로부터 패킷의 개수만큼 복사한다(S33). 그리고, 수신 플래그 영역에 패킷 개수만큼 "0"으로 채운다(S34).
위와 같이 DMA의 효과를 높이기 위하여 데이터를 패킷의 수만큼 동시에 복사하기 때문에 실제 데이터의 크기보다 훨씬 많은 양을 복사되어 처리속도가 늦어지는 결점이 있다. 또한, 실제 복사하는 것을 패킷의 전체이고 실제 데이터는 작기 때문에 자원의 낭비가 심하게 되며, 패킷의 크기보다 큰 데이터는 처리가 불가능하다는 결점이 있다. 이는 더 나아가서 패킷의 크기를 크게 설정하여야 하므로 자원의 낭비가 심해지는 원인이 된다.
본 발명은 상기한 바와 같은 결점을 해결하기 위해서 안출된 것으로, 작은 크기의 고정길이 패킷을 사용한 가변길이 데이터, 즉 하나의 데이터를 작은 여러 개의 고정길이 패킷으로 구성함으로써, 자원낭비를 줄이고, 처리속도를 향상시키는 한편 데이터 길이에 관계없이 모든 데이터를 처리할 수 있도록 하는 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법을 제공하고자 하는데 그 목적이 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명은 송신시에는 송신 데이터를 구성하고, 이의 길이를 계산하여 송신 데이터 첫 부분에 삽입하는 단계와, 길이 값을 사용하여 송신할 패킷의 수를 계산하는 단계와, 패킷의 수만큼 송신 플래그 영역을 검사하여 패킷이 "풀" 상태인지를 확인하는 단계와, 패킷이 "풀" 상태일 때에는 에러 리턴하고, 패킷이 "풀" 이 아니면 송신 데이터 영역에 데이터를 복사하고, 송신 플래그 영역에 패킷 수만큼 "1"로 채우는 단계를 수행하고; 수신시에는 수신할 위치의 플래그를 검사하여 패킷이 빈 공간인가를 확인하는 단계와, 패킷이 빈 공간이면 에러 리턴하고, 패킷이 빈 공간이 아니면 수신할 위치의 데이터 영역에서 길이를 읽어내는 단계와, 수신 데이터 영역에서 길이만큼 데이터를 복사하는 단계와, 길이를 이용하여 패킷의 수를 계산하여 수신 플래그 영역에 패킷 수만큼 "0"으로 채우는 단계를 수행함을 특징으로 한다.
도 1은 종래 데이터 처리장치를 도시한 구성도.
도 2는 종래 데이터 처리방법을 보인 흐름도.
도 3은 종래 데이터 처리방법을 보인 흐름도.
도 4는 본 발명에 의한 데이터 처리장치를 도시한 구성도.
도 5는 본 발명에 의한 데이터 처리방법을 보인 흐름도.
도 6은 본 발명에 의한 데이터 처리방법을 보인 흐름도이다.
이하, 첨부된 도면을 참고하여 본 발명에 의한 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법을 달성하기 위한 구성과 동작을 상세히 설명한다.
도 4는 본 발명에 의한 두 프로세서 간 통신을 위한 플래그 영역, 데이터 영역의 구성내용을 보이고 있다.
여기서, 통신영역을 송신/수신 플래그 영역, 송/수신 데이터 영역으로 나눠서 정의한다. 플래그 수는 최대 정의할 수 있는 데이터 패킷의 수와 같거나, 커야 한다. 데이터 패킷의 크기는 되도록 작을수록 수록자원의 낭비를 줄일 수 있으나, 너무 작으면 플래그 영역을 많이 잡아야 함으로 가장 적당한 크기로 선정한다.
이러한 통신에서 송신 절차는 도 5에서와 같이, 먼저 송신 데이터를 구성한 후 송신 데이터의 길이 값을 계산하여 송신 데이터의 첫 부분에 데이터의 길이 값을 넣는다(S51).
그리고 길이 값을 이용하여 송신할 패킷의 수를 계산한다(S52). 그리고 송신 플래그 영역에서 송신위치(TxPtr)로부터 패킷의 개수만큼 플래그를 검사(S53)하여 패킷이 "풀" 상태인지를 확인하게 된다(S54). 이때 플래그가 "0"이면 패킷이 비어있는 것이고, 플래그가 "1" 이면 패킷의 여분이 없는 것이다. 이에 따라 패킷의 개수만큼 "0"이면 송신 데이터 영역에 송신위치(TxPtr)로부터 송신 데이터를 길이만큼 복사한다(S55). 그리고 송신 플래그 영역에 패킷 개수만큼 "1"로 채운다(S56), 이때는 송신위치(TxPtr)의 뒷부분을 먼저 채우고, 마지막으로 송신위치(TxPtr)의 플래그를 "1"로 채운다.
하지만, 플래그가 "1"이면, 에러 리턴(S57)한다.
그리고, 수신절차는 도 6에서와 같이, 수신 플래그 영역에서 수신위치(RxPtr)로부터 플래그를 검사(S61)하여 패킷이 빈 공간인지를 확인하게 된다(S62). 여기서, 플래그가 "0"이면 패킷이 비어있는 것이고, "1"이면 유효한 패킷이 있는 것이다.
이에 따라 플래그가 "0"이면 에러 리턴하고(S67), 위의 과정을 반복해서 수행하지만, 플래그가 "1"이면 수신 데이터 영역에서 수신위치(RxPtr)로부터 수신위치(RxPtr)의 첫 부분에 있는 길이 값만큼 데이터를 복사한다(S63)(S64).
그리고, 길이 값을 이용하여 이 데이터가 몇 개의 패킷을 차지하는지를 계산하게 된다(S65). 이어서, 수신 플래그 영역에 수신위치(RxPtr)로부터 패킷의 개수만큼 "0"을 채운다(S66).
이상에서와 같이 본 발명은 고정길이의 패킷을 사용한 통신으로 인하여 발생하는 자원낭비, 처리속도 저하 및 큰 데이터 처리불가를 해결하기 위하여 작은 크기의 고정길이 패킷을 사용한 가변길이 데이터 처리방법을 사용하게 됨으로써, 자원낭비를 줄이고, 처리속도를 향상시키는 한편, 데이터 길이에 관계없이 모든 데이터를 처리할 수 있는 것이다.

Claims (3)

  1. 송신 데이터를 구성하고, 이의 길이를 계산하여 송신 데이터 첫 부분에 삽입하는 단계와;
    길이 값을 사용하여 송신할 패킷의 수를 계산하는 단계;
    패킷의 수만큼 송신 플래그 영역을 검사하여 패킷이 "풀" 상태인지를 확인하는 단계;
    패킷이 "풀" 상태일 때에는 에러 리턴하고, 패킷이 "풀" 이 아니면 송신 데이터 영역에 데이터를 복사하고, 송신 플래그 영역에 패킷 수만큼 "1"로 채우는 단계를 수행함을 특징으로 하는 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법.
  2. 제 1항에 있어서, 송신 플래그 영역에 패킷 수만큼 "1"을 채우되, 송신위치의 뒤부분을 먼저 채우고, 마지막으로 송신위치의 플래그를 "1"로 채우도록 함을 특징으로 하는 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법.
  3. 수신할 위치의 플래그를 검사하여 패킷이 빈 공간인가를 확인하는 단계와;
    패킷이 빈 공간이면 에러 리턴하고, 패킷이 빈 공간이 아니면 수신할 위치의 데이터 영역에서 길이를 읽어내는 단계;
    수신 데이터 영역에서 길이만큼 데이터를 복사하는 단계;
    길이를 이용하여 패킷의 수를 계산하여 수신 플래그 영역에 패킷 수만큼 "0"으로 채우는 단계를 수행함을 특징으로 하는 두 프로세서간 데이터 통신시 패킷을 사용한 가변길이 데이터 처리방법.
KR1019980012346A 1998-04-08 1998-04-08 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법 KR19990079650A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980012346A KR19990079650A (ko) 1998-04-08 1998-04-08 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980012346A KR19990079650A (ko) 1998-04-08 1998-04-08 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법

Publications (1)

Publication Number Publication Date
KR19990079650A true KR19990079650A (ko) 1999-11-05

Family

ID=65860778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012346A KR19990079650A (ko) 1998-04-08 1998-04-08 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법

Country Status (1)

Country Link
KR (1) KR19990079650A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464195B1 (ko) * 2001-01-11 2005-01-03 인터내셔널 비지네스 머신즈 코포레이션 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464195B1 (ko) * 2001-01-11 2005-01-03 인터내셔널 비지네스 머신즈 코포레이션 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치

Similar Documents

Publication Publication Date Title
US6700894B1 (en) Method and apparatus for shared buffer packet switching
US4692859A (en) Multiple byte serial data transfer protocol
AU756264B2 (en) Message processing device and method thereof and storage medium storing message processing control program
US7733892B2 (en) Buffer management method based on a bitmap table
US20030074502A1 (en) Communication between two embedded processors
KR950703766A (ko) 호스트 지시 조합을 구비하는 장치(a device with host indication combination)
EP0167563A1 (en) Time-slot interchanger for fast circuit switching
CN104407809A (zh) 多通道fifo缓冲器及其控制方法
CN101286942B (zh) 管理无限带宽通信链路的发送机、接收机和方法
EP0217955B1 (en) Transmitting data processing system
CN107633102A (zh) 一种读取元数据的方法、装置、系统及设备
CN112787955B (zh) Mac层数据报文的处理方法、设备和存储介质
US20010043567A1 (en) Efficient full duplex simultaneous message transfer
KR19990079650A (ko) 두 프로세서 간 데이터 통신시 패킷을 사용한 가변길이 데이터처리방법
KR20010053612A (ko) 기억 장치 및 상기 기억 장치를 동작시키기 위한 방법
CN106657097B (zh) 一种数据发送方法及装置
US5461720A (en) System for increasing the efficiency of communications between controller and plurality of host computers by prohibiting retransmission of the same message for predetermined period of time
US20050038939A1 (en) Data interfacing apparatus and method of a network electronic device
CN114245241A (zh) 一种延时自适应的bmp映射实现方法及系统
CN106407307A (zh) 一种分布式数据库节点数据交互方法及装置
US6876664B1 (en) Asynchronous data buffer and a method of use thereof
CN111126584A (zh) 数据回写系统
CN111654886A (zh) 一种限制用户带宽的方法和装置
US7116659B2 (en) Data transmission memory
US11645222B1 (en) Real time generation of differential serial bus traffic

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination