KR100421168B1 - 프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법 - Google Patents

프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법 Download PDF

Info

Publication number
KR100421168B1
KR100421168B1 KR10-2001-0054833A KR20010054833A KR100421168B1 KR 100421168 B1 KR100421168 B1 KR 100421168B1 KR 20010054833 A KR20010054833 A KR 20010054833A KR 100421168 B1 KR100421168 B1 KR 100421168B1
Authority
KR
South Korea
Prior art keywords
area
data
processor
queue
stored
Prior art date
Application number
KR10-2001-0054833A
Other languages
English (en)
Other versions
KR20030021532A (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 KR10-2001-0054833A priority Critical patent/KR100421168B1/ko
Publication of KR20030021532A publication Critical patent/KR20030021532A/ko
Application granted granted Critical
Publication of KR100421168B1 publication Critical patent/KR100421168B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

인접하는 두 프로세서간에 송수신되는 데이터를 이중포트램을 이용하여 처리하는 방법이 개시되어 있다. 이러한 본 발명의 실시 예에 따르면, 제1 프로세서와, 상기 제1프로세서에 인접하여 통신하는 제2프로세서와, 복수의 큐 영역들로 구성되는 메모리를 포함하는 데이터 처리시스템에서, 상기 제1 프로세서에서 상기 제2 프로세서로 송신될 데이터를 처리하는 방법을 제안한다. 상기 방법은, 상기 큐 영역들중에서 순차적으로 정해지는 제1 영역에 저장하기 위한 데이터가 존재할 때, 상기 제1 프로세서에서 상기 제1 영역 다음의 제2 영역이 점유된 상태인지 여부를 판단하는 과정과, 상기 제2 영역이 점유된 상태일 때, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역과 같거나 작은지 여부를 상기 제1 프로세서에서 판단하는 과정과, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역보다 작을 때, 상기 제2영역의 점유 상태를 클리어시키는 과정을 포함함을 특징으로 한다.

Description

프로세서들간 데이터 처리 시스템에서 송신 데이터 처리 방법 {METHOD FOR PROCESSING A TRANSMISSION DATA IN A DATA PROCESSING SYSTEM BETWEEN PROCESSORS}
본 발명은 프로세서들간의 데이터 처리에 관한 것으로, 특히 인접하는 두 프로세서간에 송수신되는 데이터를 이중포트램을 이용하여 처리하는 방법에 관한 것이다.
일반적으로 여러 가지 패킷(packet) 형태의 데이터(data)를 처리하는 이동 통신시스템, 광 통신시스템, 사설 교환시스템 등과 같은 통신 처리 시스템의 장비들은 적어도 하나 이상의 고유의 기능을 수행하는 보드(board)들이 셸프(shelf)의 형태로 캐비넷(cabinet)내에 실장된다. 이러한 데이터 처리 시스템에서는 하나의 보드내 또는 백플레인(back plane)을 통하여 연결되는 서로 다른 보드들간에 존재하는 인접 프로세서들간에 데이터를 송/수신하여야 할 경우가 항상 발생한다. 하나의 보드내 또는 서로 다른 보드들간에 존재하는 프로세서들간의 데이터 통신(송수신)에는 주로 이중포트램(DPRAM: Dual Port Random Access Memory) 통신 방식이 사용된다. DPRAM 통신 방식이란 2개의 프로세서들간의 데이터 송수신시 프로세서들이 메모리(DPRAM)를 서로 공유하는 것을 말한다.
도 1은 종래 기술에 따른 프로세서들간 데이터 처리 시스템의 구성을 보여주는 도면이다. 상기 도 1에 도시된 프로세서들은 DPRAM 통신 방식에 따라 데이터를 송수신한다.
상기 도 1을 참조하면, 데이터 처리 시스템은 데이터 송신 프로세서 10과, DPRAM 20과, 데이터 수신 프로세서 30으로 구성된다. 상기 DPRAM 20은 일정한 크기(Size)(예: 250Byte)의 메모리 블록들인 복수의 큐(Queue) 영역(area)들로 구성된다. 상기 데이터 송신 프로세서 10이 첫 번째 큐에서부터 데이터를 순차적으로 라이트(write)해 나가면, 수신측인 상기 데이터 수신 프로세서 30은 첫 번째 큐로부터 차례로 데이터를 리드(Read)한다.
상기 DPRAM 20의 각 큐에는 데이터를 송수신하기 위한 영역 이외에1바이트(Byte)의 플래그(Flag) 영역이 더 구비된다. 상기 데이터 송신 프로세서 10이 데이터를 라이트한 후 상기 플래그 영역을 특정 값(예: 0xFF)으로 라이트하면, 상기 데이터 수신 프로세서 30은 상기 플래그 영역의 값을 주기적으로 읽어 보아 특정 값으로 설정되었을 때 해당 큐의 데이터를 리드한 후 해당하는 플래그를 클리어(Clear)한다. 여기서 플래그를 클리어함에 의해 상기 플래그 영역은 예를 들어 0x00의 값을 갖게 된다. 이에 따라 상기 데이터 송신 프로세서 10은 플래그가 클리어된 큐에 데이터를 라이트할 수 있고, 상기 데이터 수신 프로세서 30은 큐 포인터(Queue Pointer)를 증가시켜 다음 큐의 플래그를 판단하여 수신 데이터의 유무를 판단하게 된다. 이와 같이 상기 데이터 송신 프로세서 10은 상기 DPRAM 20의 큐 영역들중에서 순차적으로 정해지는 영역에 데이터를 저장하고, 상기 데이터 수신 프로세서 30은 상기 DPRAM 20의 큐 영역들에 순차적으로 정해지는 영역에 저장되는 데이터를 수신하여 처리하게 된다. 여기서는 한쪽 방향, 즉 프로세서 10에서 프로세서 30으로의 데이터 송신에 대하여만 설명을 하였으나, 양 방향 통신일 경우 반대 방향의 데이터 송수신도 동일한 형태로 이루어진다.
이러한 DPRAM 통신 방식의 데이터 처리에 있어서, 송신측과 수신측 프로세서들 10,30간에는 성능의 차이가 있고 또 순간적으로 발생되는 복수의 데이터를 버퍼링(Buffering)할 수 있도록 하기 위해 DPRAM의 큐의 갯수는 수십 개 이상을 가지도록 설정되는 것이 일반적이다. 또한 DPRAM의 큐를 지시하는 포인터가 마지막 큐에 다다르면 다시 첫번 큐로 넘어가도록 하여 계속적인 데이터의 송수신이 가능하도록 한다. 상기 DPRAM의 모든 영역의 큐들이 사용중일 때는 "큐 충만(Queue Full)"상태로 정의되며, 이 상태는 송신 프로세서 10이 현재 데이터를 송신하고자 하는 큐의 플래그가 설정(Setting)되어 있는지 여부를 각 큐 영역들에 대해 확인함으로써 판단 가능하다.
상기 데이터 송신 프로세서 10에서 데이터를 특정 큐로 송신한 이후 그 큐의 플래그를 확인한 결과 설정 상태인 경우, 즉 OxFF의 값을 가지는 경우는, 정상적인 경우라면 상기 데이터 수신 프로세서 30에서의 데이터 처리 속도가 늦어 그 큐가 풀(Full)인 상태가 발생한 경우에 해당한다. 그러므로 데이터 송신 프로세서 10은 현재의 데이터 송신과 관련된 큐(Tx Queue)가 비워질 때까지, 즉 현재 송신 큐의 플래그가 클리어될 때까지 기다릴 필요가 있다.
한편, 프로그램의 오류 또는 하드웨어적인 오류 등으로 인하여 큐의 플래그가 지워지지 않은 상태로 되어 점유상태가 잘못된 표기된 큐가 발생하였을 경우에는 연속적으로 DPRAM 통신에 영향을 미치게 되는 문제점이 발생한다. 예를 들어, DPRAM 20의 n번째 큐의 플래그가 0xFF로 잘못 설정된 상태에서 송신측의 포인터(Tx pointer)와 수신측의 포인터(RX pointer)가 모두 (n-1)번째 큐를 지시하고 있다고 가정한다. 이와 같은 상태에서 송신할 데이터가 발생하면, 데이터 송신 프로세서 10은 송신할 데이터를 (n-1)번째 큐의 데이터 영역에 라이트하고 해당 플래그를 0xFF로 라이트한다. 다음에 데이터 송신 프로세서 10은 송신 포인터를 n번째로 큐 영역을 지시하도록 증가시키는데, 이때 이미 n번째 큐의 플래그는 점유상태로 표기되어 있으므로 더 이상 진행하지 못하게 된다.
이와 달리, 데이터 수신 프로세서 30은 (n-1)번째 큐의 플래그 값을 확인함으로써 송신측으로부터 송신된 데이터가 있음을 판단하고 (n-1)번째 큐에 저장된 데이터를 수신 처리한 후 그 큐의 플래그를 클리어한다. 다음에, 상기 데이터 수신 프로세서 30은 수신 포인터를 n으로 증가시킨 후 n번째 큐의 플래그 값을 확인한다. n번째 큐의 플래그 값이 설정된 것으로 확인될 때, 상기 데이터 수신 프로세서 30은 n번째 큐에 저장된 데이터를 수신 처리하고 그 큐의 플래그를 클리어한 후 수신 포인터를 (n+1)로 증가시킨다.
이 때까지의 과정을 살펴보면, 송신 포인터가 n을 지시하고 있는 상태에서 상기 데이터 수신 프로세서 30은 n번째 큐의 데이터인 오류 데이터를 처리하고 수신 포인터를 (n+1)로 증가시키고, 상기 데이터 송신 프로세서 10은 n번째 큐에 데이터를 라이트하고 해당 플래그를 0xFF로 설정한 후 송신 포인터를 (n+1)로 증가시키게 된다. 이에 따라 n번째 큐의 영역에 저장되는 데이터는 다시 오류 데이터로 남게 된다. 왜냐하면, (n-1)번째 큐에 저장된 데이터를 전송한 이후에 n번째 큐에 저장된 데이터가 전송되는 것이 아니라, 상기 n번째 큐에 저장된 데이터는 송신 포인터가 한바퀴 돌고 나서 다시 n번째 큐를 지시하는 경우에 상기 데이터 수신 프로세서 30으로 송신되기 때문이다. 즉, 송신측 프로세서 10에 의해 복수의 큐 영역들에 순차적으로 저장된 데이터가 순차적으로 수신측 프로세서 30으로 송신되어야 함에도 불구하고, 순서에 맞지 않는 데이터가 전송되는 것이다.
전술한 바와 같이, DPRAM 방식의 통신에서 큐의 플래그를 이용하여 데이터 송신측과 수신측에서 데이터의 유무를 지시함에 있어서, 한번의 플래그 지시상에 발생된 오류로 인하여 큐의 전 영역을 반복할 때마다 연속적으로 오류가 발생함을알 수 있다. 따라서 수신측에서 어떤 하나의 큐를 처리하지 않고 지나갔을 경우 또는 플래그를 클리어하였는데 하드웨어적인 오류로 인하여 지워지지 않은 경우 등과 같이 어떠한 오류에 의하여 플래그가 지워지지 않은 큐가 존재하게 되면, 순차적인 데이터의 송신에 있어서 반복적인 오류가 발생한다는 문제점이 있다.
따라서 본 발명의 목적은 DPRAM을 이용하여 프로세서들간의 데이터를 처리하는 시스템에서 송신 데이터 유무를 나타내는 플래그의 오류 발생을 검출하고 이 오류를 정정하기 위한 방법을 제공함에 있다.
본 발명의 다른 목적은 DPRAM을 이용하여 프로세서들간의 데이터를 처리하는 시스템에서 프로그램의 오류 또는 하드웨어적인 오류 등으로 인하여 큐의 플래그가 지워지지 않은 상태로 점유 상태가 잘못 지시된 큐가 발생하였을 경우에 순차적인 데이터 송신에 있어서 반복적인 오류가 발생하는 문제점을 해결하기 위한 송신 데이터 처리 방법을 제공함에 있다.
이러한 목적들을 달성하기 위한 본 발명의 제1 견지(aspect)에 따르면, 제1 프로세서와, 상기 제1프로세서에 인접하여 통신하는 제2프로세서와, 복수의 큐 영역들로 구성되는 메모리를 포함하고, 상기 프로세서들중의 어느 한 프로세서는 송신을 위한 데이터를 상기 큐 영역들중에서 순차적으로 정해지는 영역에 저장하고 다른 한 프로세서는 상기 큐 영역들에 순차적으로 저장된 데이터를 수신하여 처리하는 데이터 처리시스템에서, 상기 제1 프로세서에서 상기 제2 프로세서로 송신될데이터를 처리하는 방법을 제안한다. 상기 송신 데이터 처리 방법은, 상기 큐 영역들중에서 순차적으로 정해지는 제1 영역에 저장하기 위한 데이터가 존재할 때, 상기 제1 프로세서에서 상기 제1 영역 다음의 제2 영역이 점유된 상태인지 여부를 판단하는 과정과, 상기 제2 영역이 점유된 상태일 때, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역과 같거나 작은지 여부를 상기 제1 프로세서에서 판단하는 과정과, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역보다 작을 때, 상기 제2영역의 점유 상태를 클리어시키는 과정을 포함함을 특징으로 한다.
상기 송신 데이터 처리 방법은, 상기 제2 영역이 점유된 상태가 아닐 때, 상기 제1 프로세서에서 상기 존재하는 데이터를 상기 제1 영역에 저장하는 과정을 더 포함함을 특징으로 한다.
상기 송신 데이터 처리 방법은, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역과 같을 때, 상기 제1 프로세서에서 상기 제2 프로세서에 의해 상기 제2 영역에 저장된 데이터가 수신 처리되도록 대기하는 과정을 더 포함함을 특징으로 한다.
본 발명의 제2 견지에 따르면, 제1 프로세서와, 상기 제1프로세서에 인접하여 통신하는 제2프로세서와, 각각이 전송을 위한 데이터를 저장할 수 있고 데이터의 저장 유무를 나타내는 플래그를 저장하는 복수의 큐 영역들로 구성되는 듀얼포트램(DPRAM)을 포함하고, 상기 프로세서들중의 어느 한 프로세서는 송신을 위한 데이터를 상기 큐 영역들중에서 순차적으로 정해지는 영역을 나타내는 송신 포인터에해당하는 영역에 저장하고 다른 한 프로세서는 상기 큐 영역들중에서 순차적으로 정해지는 영역을 나타내는 수신 포인터에 해당하는 영역에 저장된 데이터를 수신하여 처리하는 데이터 처리시스템에서, 상기 제1 프로세서에서 상기 제2 프로세서로 송신될 데이터를 처리하는 방법을 제안한다. 상기 송신 데이터 처리 방법은, 상기 송신 포인터가 상기 큐 영역들중에서 순차적으로 정해지는 제1 영역을 지시할 때, 상기 제1 프로세서에서 상기 제1 영역 다음의 제2 영역의 플래그 값을 판단하는 과정과, 상기 제2 영역의 플래그 값이 설정되었을 때, 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역과 같거나 작은지 여부를 상기 제1 프로세서에서 판단하는 과정과, 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역보다 작을 때, 상기 제1 프로세서에서 상기 제2영역의 플래그 값을 클리어시키는 과정과, 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역과 같을 때, 상기 제2 영역에 저장된 데이터가 상기 제2 프로세서에 의해 수신 처리되도록 상기 제1 프로세서에서 대기하는 과정을 포함함을 특징으로 한다.
상기 송신 데이터 처리 방법은, 상기 제2 영역의 플래그 값이 설정되지 않았을 때, 상기 제1 프로세서에서 송신을 위한 데이터를 상기 제1 영역에 저장하는 과정을 더 포함함을 특징으로 한다. 상기 수신 포인터에 의해 지시되는 영역의 값은 상기 이중포트램의 미리 설정된 주소에 저장되는 것을 특징으로 한다.
도 1은 종래 기술에 따른 프로세서들간 데이터 처리 시스템의 구성을 보여주는 도면.
도 2는 본 발명의 실시 예에 따른 프로세서들간 데이터 처리 시스템의 구성을 보여주는 도면.
도 3은 본 발명의 실시 예에 따른 프로세서들간 데이터 처리 시스템에서 송신 데이터를 처리하는 흐름을 보여주는 도면.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 2는 본 발명의 실시 예에 따른 프로세서들간 데이터 처리 시스템의 구성을 보여주는 도면이다. 이러한 본 발명의 실시 예에 따른 프로세서들간 데이터 처리 시스템은 DPRAM 방식의 통신 시에 수반될 수 있는 오류 발생을 쉽게 검출하고 정정하기 위한 것으로, DPRAM 큐(Queue)의 사용 및 점유 상태 판별 방법을 개선한 것을 특징으로 한다. 특히, 본 발명의 실시 예에서는 수신 프로세서의 수신 포인터(Rx Pointer) 값을 DPRAM 영역의 변수로 설정하고 있는데, 이러한 설정은 데이터 송신 프로세서가 큐의 충만(Full) 상태를 판단하기 위하여 수신 포인터의 위치를 알 필요가 있기 때문이다.
상기 도 2를 참조하면, 데이터 처리 시스템은 제1 프로세서인 데이터 송신 프로세서 10과, 상기 데이터 송신 프로세서 10에 인접하여 통신하는 제2 프로세서인 데이터 수신 프로세서 30간의 송수신 데이터를 처리하기 위한 것으로, 이러한 송수신 데이터를 DPRAM 통신 방식을 통해 처리할 수 있도록 한 메모리인 DPRAM 20을 포함한다. 상기 데이터 수신 프로세서 30은 상기 제1 프로세서 10과 동일한 보드내에 실장될 수도 있고, 서로 다른 보드들에 분리되어 실장될 수도 있다. 상기 DPRAM 20은 복수의 큐(Queue) 영역들로 구성되고, 각 큐들은 전송을 위한 데이터를저장할 전송을 위한 데이터를 저장하기 위한 데이터 영역과, 전송 데이터의 저장 유무를 나타내는 플래그(flag)를 저장하기 위한 플래그 영역으로 구성된다. 상기 각 큐의 영역들은 250바이트(byte)의 크기를 가지도록 설정될 수 있고, 각 큐의 플래그 영역들은 각 큐의 첫 번째 또는 마지막 1바이트의 크기를 가지도록 설정될 수 있다. 예를 들어, 전송 데이터가 저장되어 있는 경우 플래그 영역은 "0xFF"의 값으로 설정되고, 전송 데이터가 저장되어 있지 않거나 플래그가 클리어된 경우 플래그 영역은 "Ox00"의 값으로 설정된다. 상기 데이터 송신 프로세서 10은 상기 DPRAM 20의 큐 영역들중에서 순차적으로 정해지는 영역에 전송을 위한 데이터를 라이트(write)하여 저장하고, 이에 대응하여 상기 데이터 수신 프로세서 30은 상기 DPRAM 20의 큐 영역들에 순차적으로 저장된 데이터를 순차적으로 리드(read)하여 수신 처리한다. 순차적인 데이터 전송을 위해 상기 데이터 송신 프로세서 10은 송신 포인터(Tx Pointer)를 사용하고, 순차적인 데이터 수신을 위해 상기 데이터 수신 프로세서 30은 수신 포인터(Rx Pointer)를 사용한다. 상기 수신 포인터의 값은 상기 DPRAM 20의 영역들중에서 미리 설정된 주소를 가지는 영역에 저장된다. 이에 따라 상기 데이터 송신 프로세서 10은 상기 DPRAM 20의 큐 영역들중에서 상기 수신 포인터에 의해 지시되는 영역이 어떠한 영역인지를 판단할 수 있다.
지금, 상기 데이터 송신 프로세서 10에서 상기 DPRAM 20의 큐 영역들중에서 제1 영역에 저장하기 위한 전송 데이터가 존재한다고 가정할 때, 즉 상기 송신 포인터가 상기 DPRAM 20의 큐 영역들중에서 순차적으로 정해지는 제1 영역을 지시할 때, 상기 데이터 송신 프로세서 10은 상기 제1 영역 다음의 제2 영역의 플래그 값을 판단함으로써 상기 제2 영역이 점유된 상태인지 여부를 판단한다. 예를 들어, 상기 데이터 송신 프로세서 10에서 전송될 데이터가 상기 DPRAM 20의 큐 영역들중에서 (n-1)번째 큐 영역에 저장될 순서라면, 상기 데이터 송신 프로세서 10은 n번째 큐 영역의 플래그 값을 판단한다. 상기 제2 영역이 점유된 상태일 때, 즉 상기 제2 영역의 플래그 값이 전송 데이터가 저장되어있음을 나타내는 "0xFF"의 값으로 설정되었을 때, 상기 데이터 송신 프로세서 10은 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역과 같거나 작은지 여부를 판단한다. 이때 상기 수신 포인터에 의해 지시되는 영역에 대한 판단은 상기 수신 포인터의 값이 상기 DPRAM 20의 미리 설정된 주소에 저장됨으로써 가능하다. 상기 데이터 수신 프로세서 30에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역보다 작을 때, 즉 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역보다 작을 때, 상기 데이터 송신 프로세서 10은 상기 제2 영역의 점유상태를 나타내는 플래그 값을 클리어시킨다. 상기 데이터 수신 프로세서 30에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역과 같을 때, 즉 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역과 같을 때, 상기 데이터 송신 프로세서 10은 상기 제2 영역에 저장된 데이터가 상기 데이터 수신 프로세서 30에 의해 수신 처리되도록 대기한다. 여기서, 상기 제2 영역의 플래그 값이 설정되어 있고 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역보다 작은 경우는, 상기 제2 영역에 데이터가 저장되어 있지 않음에도 불구하고 데이터가 저장되어 있음을 나타내는 오류가 발생한 경우에 해당한다. 상기 제2 영역의 플래그 값이 설정되어 있고 상기 수신 포인터에 의해 지시되는 영역이 상기제2 영역과 같은 경우는, 상기 제2 영역에 데이터가 저장되어 있고 아직 상기 제2 영역에 저장된 데이터가 상기 데이터 수신 프로세서 30에 의해 수신 처리되지 않은 경우에 해당한다. 이와 달리 상기 제2 영역이 점유된 상태가 아닐 때, 즉 상기 제2 영역의 플래그 값이 설정되지 않았을 때, 상기 데이터 송신 프로세서 10은 송신을 위한 데이터를 상기 DPRAM 20의 상기 제1 영역에 저장한다.
다시 도 2를 참조하면, 도시된 바와 같은 데이터 처리 시스템은 DPRAM 통신에서 DPRAM 20의 큐(Queue) 상에 발생된 오류를 쉽게 검출하고 정정하는 동작을 수행하는 것을 특징으로 하는 것으로, 큐 충만(Queue Full)의 상태를 큐의 전 영역이 점유된 상태가 아닌 하나의 큐가 남아있는 상태를 큐 충만 상태로 판단한다. 이러한 동작은 데이터 송신 프로세서 10이 데이터(또는 메시지)를 송신할 때 현재 송신 큐의 플래그 상태를 보지 않고 그 다음 큐의 플래그를 보고 점유 여부를 판별함으로써 프로세서에 부가적인 부담없이 구현 가능하다. 초기화시에는 첫번째 큐에 데이터를 송신하기 위해 2번째 큐의 플래그를 보고, 이 플래그가 클리어 상태이면 1번째 큐에 데이터를 송신하게 된다. 이때 초기화 상태에서는 전 영역의 플래그가 클리어 상태이므로, 1번째 큐의 플래그를 확인하지 않아도 무방하다. 큐 충만 상태는 현재 판단한 큐의 플래그가 점유상태(0xFF)이고, 수신측 프로세서인 데이터 수신 프로세서 30의 수신 포인터(Rx Pointer) 값이 플래그를 판단한 큐를 가리키고 있을 때로 정의된다. 이렇게 정의함으로써 데이터 수신 프로세서 30이 n번째 큐의 데이터를 처리중에 있고 플래그는 여전히 설정되어 있는 상태와 같이 큐 충만 상태가 발생한 경우에도, 데이터 송신 프로세서 10이 (n-1)번째 큐에 데이터를 송신하기 위하여 n번째 플래그를 보고 있는 상태라면, (n-1)번째 큐는 비어 있으므로 큐의 전 영역에서 하나의 큐가 비어 있는 상태가 되는 것이다. 예를 들어, 송신측 프로세서 10이 DPRAM 20의 (n-1)번째 큐에 데이터를 송신하기 위하여 n번째 큐의 플래그를 판단하였을 때 점유상태(0xFF)라면, 수신 포인터의 값을 판단한다. 상기 수신 포인터의 값이 n번째 큐의 위치를 지시하고 있다면 실제 큐 충만 상태로 판단한다. 이 경우에는 수신 포인터의 값이 증가할 때까지 기다렸다가 송신하면 된다. 만약 상기 수신 포인터의 값이 n번째 큐를 지시하지 않는다면, 실제 큐 충만 상태가 아니므로 n번째 큐의 플래그를 클리어시키고 (n-1)번째 큐에 데이터를 송신하면 된다.
도 3은 본 발명의 실시 예에 따른 프로세서들간 데이터 처리 시스템에서 송신 데이터를 처리하는 흐름을 보여주는 도면이다.
상기 도 3을 참조하면, 지금, 상기 DPRAM 20의 큐 영역들중에서 (i)번째 영역에 저장하기 위한 전송 데이터가 존재하는 것으로 판단될 때(101단계), 상기 데이터 송신 프로세서 10은 상기 (i)번째 영역 다음의 (i+1)번째 영역의 플래그 값을 확인함으로써 상기 (i+1)번째 영역이 점유된 상태인지 여부를 판단한다(102단계). 상기 (i+1)번째 영역의 플래그 값이 전송 데이터가 저장되어있음을 나타내는 "0xFF"의 값으로 설정되었을 때(103단계 예), 상기 데이터 송신 프로세서 10은 상기 수신 포인터에 의해 지시되는 영역을 나타내는 수신 포인터의 값을 확인하고(106단계) 상기 (i+1)번째 영역과 같거나 작은지 여부를 판단한다(107단계). 이때 상기 수신 포인터에 의해 지시되는 영역에 대한 판단은 상기 수신 포인터의 값이 상기 DPRAM 20의 미리 설정된 주소에 저장됨으로써 가능하다. 상기 수신 포인터에 의해 지시되는 영역이 상기 (i+1)번째 영역과 같지 않을 때, 상기 데이터 송신 프로세서 10은 상기 (i+1)번째 영역의 점유상태를 나타내는 플래그 값을 클리어시킨다(107단계 아니오). 상기 수신 포인터에 의해 지시되는 영역이 상기 (i+1)번째 영역과 같을 때(107단계 예), 상기 데이터 송신 프로세서 10은 상기 (i+1)번째 영역에 저장된 데이터가 상기 데이터 수신 프로세서 30에 의해 수신 처리되도록 대기한다(108단계). 여기서, 상기 (i+1)번째 영역의 플래그 값이 설정되어 있고 상기 수신 포인터에 의해 지시되는 영역이 상기 (i+1)번째 영역보다 작은 경우는, 상기 (i+1)번째 영역에 데이터가 저장되어 있지 않음에도 불구하고 데이터가 저장되어 있음을 나타내는 오류가 발생한 경우에 해당한다. 상기 (i+1)번째 영역의 플래그 값이 설정되어 있고 상기 수신 포인터에 의해 지시되는 영역이 상기 (i+1)번째 영역과 같은 경우는, 상기 (i+1)번째 영역에 데이터가 저장되어 있고 아직 상기 (i+1)번째 영역에 저장된 데이터가 상기 데이터 수신 프로세서 30에 의해 수신 처리되지 않은 경우에 해당한다.
이와 달리 상기 (i+1)번째 영역의 플래그 값이 설정되지 않았을 때(103단계 아니오), 상기 데이터 송신 프로세서 10은 송신을 위한 데이터를 상기 DPRAM 20의 상기 (i)번째 영역에 저장하고, 상기 (i)번째 영역에 플래그를 설정한다(104단계). 상기 (i)번째 영역에 전송 데이터를 저장시킨 이후에는 송신 포인터의 값을 하나 증가시키고(105단계) 다시 101단계로 진행하여 (i+1)번째 영역에 대해 전술한 바와 같은 동작들을 수행한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 플래그로 큐의 점유 상태를 표기하는 DPRAM 방식에 따라 통신하는 데이터 처리 시스템에서 한번 발생된 오류로 점유상태가 잘못 표기된 큐가 존재하더라도 송신측 프로세서가 이를 감지하여 정정(Clear)하고 지나감으로써 그 오류가 즉시 정정되도록 한다. 이에 따라 오류가 지속적으로 반복되는 것을 방지하는 이점이 있다.

Claims (6)

  1. 제1 프로세서와, 상기 제1프로세서에 인접하여 통신하는 제2프로세서와, 데이터의 점유상태를 나타내는 플래그 영역을 구비하는 복수의 큐 영역들로 구성되는 메모리를 포함하고, 상기 프로세서들 중의 어느 한 프로세서는 송신을 위한 데이터를 상기 큐 영역들중에서 순차적으로 정해지는 영역에 저장하고 다른 한 프로세서는 상기 큐 영역들에 순차적으로 저장된 데이터를 수신하여 처리하는 데이터 처리시스템에서, 상기 제1 프로세서에서 상기 제2 프로세서로 송신될 데이터를 처리하는 방법에 있어서,
    상기 큐 영역들 중에서 순차적으로 정해지는 제1 영역에 저장하기 위한 데이터가 존재할 때, 상기 제1 프로세서에서 상기 제1 영역 다음의 제2 영역에 구비된 플래그 영역으로부터 상기 제2 영역이 점유된 상태인지 여부를 판단하는 과정과,
    상기 제2 영역이 점유된 상태일 때, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역과 같거나 작은지 여부를 상기 제1 프로세서에서 판단하는 과정과,
    상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 큐의 영역이 상기 제2 영역보다 작을 때, 상기 제2 영역에 구비된 플래그 영역의 점유 상태를 클리어시키는 과정을 포함함을 특징으로 하는 상기 방법.
  2. 제1항에 있어서, 상기 제2 영역이 점유된 상태가 아닐 때, 상기 제1 프로세서에서 상기 존재하는 데이터를 상기 제1 영역에 저장하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  3. 제1항에 있어서, 상기 제2 프로세서에 의해 수신 처리될 데이터가 저장된 영역이 상기 제2 영역과 같을 때, 상기 제1 프로세서에서 상기 제2 프로세서에 의해 상기 제2 영역에 저장된 데이터가 수신 처리되도록 대기하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  4. 제1 프로세서와, 상기 제1프로세서에 인접하여 통신하는 제2프로세서와, 각각이 전송을 위한 데이터를 저장할 수 있고 데이터의 저장 유무를 나타내는 플래그를 저장하는 복수의 큐 영역들로 구성되는 듀얼포트램(DPRAM)을 포함하고, 상기 프로세서들중의 어느 한 프로세서는 송신을 위한 데이터를 상기 큐 영역들중에서 순차적으로 정해지는 영역을 나타내는 송신 포인터에 해당하는 영역에 저장하고 다른 한 프로세서는 상기 큐 영역들중에서 순차적으로 정해지는 영역을 나타내는 수신 포인터에 해당하는 영역에 저장된 데이터를 수신하여 처리하는 데이터 처리시스템에서, 상기 제1 프로세서에서 상기 제2 프로세서로 송신될 데이터를 처리하는 방법에 있어서,
    상기 송신 포인터가 상기 큐 영역들중에서 순차적으로 정해지는 제1 영역을 지시할 때, 상기 제1 프로세서에서 상기 제1 영역 다음의 제2 영역의 플래그 값을 판단하는 과정과,
    상기 제2 영역의 플래그 값이 설정되었을 때, 상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역과 같거나 작은지 여부를 상기 제1 프로세서에서 판단하는 과정과,
    상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역보다 작을 때, 상기 제1 프로세서에서 상기 제2 영역의 플래그 값을 클리어시키는 과정과,
    상기 수신 포인터에 의해 지시되는 영역이 상기 제2 영역과 같을 때, 상기 제2 영역에 저장된 데이터가 상기 제2 프로세서에 의해 수신 처리되도록 상기 제1 프로세서에서 대기하는 과정을 포함함을 특징으로 하는 상기 방법.
  5. 제4항에 있어서, 상기 제2 영역의 플래그 값이 설정되지 않았을 때, 상기 제1 프로세서에서 송신을 위한 데이터를 상기 제1 영역에 저장하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  6. 제4항에 있어서, 상기 수신 포인터에 의해 지시되는 영역의 값은 상기 이중포트램의 미리 설정된 주소에 저장되는 것을 특징으로 하는 상기 방법.
KR10-2001-0054833A 2001-09-06 2001-09-06 프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법 KR100421168B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0054833A KR100421168B1 (ko) 2001-09-06 2001-09-06 프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0054833A KR100421168B1 (ko) 2001-09-06 2001-09-06 프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법

Publications (2)

Publication Number Publication Date
KR20030021532A KR20030021532A (ko) 2003-03-15
KR100421168B1 true KR100421168B1 (ko) 2004-03-04

Family

ID=27722847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0054833A KR100421168B1 (ko) 2001-09-06 2001-09-06 프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법

Country Status (1)

Country Link
KR (1) KR100421168B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371506B1 (ko) * 2006-11-28 2014-03-11 삼성전자주식회사 프로세서간 데이터 처리 시스템에서 교착상태 회피 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101702374B1 (ko) * 2010-05-19 2017-02-06 삼성전자주식회사 멀티 프로세서 장치 및 그것의 인터 프로세스 통신 방법
KR20160149853A (ko) 2015-06-19 2016-12-28 부산대학교 산학협력단 퇴행성 뇌질환 예방 또는 치료용 약학 조성물

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000018850A (ko) * 1998-09-05 2000-04-06 윤종용 듀얼포트램의 엑세스장치
KR20010055219A (ko) * 1999-12-10 2001-07-04 오길록 이중포트메모리를 사용한 메시지 버퍼 풀 감지 및 관리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000018850A (ko) * 1998-09-05 2000-04-06 윤종용 듀얼포트램의 엑세스장치
KR20010055219A (ko) * 1999-12-10 2001-07-04 오길록 이중포트메모리를 사용한 메시지 버퍼 풀 감지 및 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371506B1 (ko) * 2006-11-28 2014-03-11 삼성전자주식회사 프로세서간 데이터 처리 시스템에서 교착상태 회피 방법

Also Published As

Publication number Publication date
KR20030021532A (ko) 2003-03-15

Similar Documents

Publication Publication Date Title
EP4123997A2 (en) Multi-path rdma transmission
EP0022170B1 (en) Method of attaining communication of data packets on a local shared bus network and local shared bus network
US9432299B2 (en) System and method for ordering of data transferred over multiple channels
CN101291194A (zh) 报文保序的方法和系统
WO2009107089A2 (en) Apparatus and method for shared buffering between switch ports
US6952739B2 (en) Method and device for parameter independent buffer underrun prevention
EP1124362A2 (en) Apparatus for processing TCP/IP by hardware, and operating method therefor
CN107750358B (zh) 数据处理方法
KR100421168B1 (ko) 프로세서들간 데이터 처리 시스템에서 송신 데이터 처리방법
US20140185629A1 (en) Queue processing method
EP1454242B1 (en) Asynchronous serial data interface
KR20210113560A (ko) 타겟 장치에 의한 명령어 실행 순서를 제어하는 시스템 및 방법
KR101458436B1 (ko) 데이터 전송 방법 및 이를 적용한 주식 체결 시스템
CN115867894A (zh) 用于远程直接存储器访问的设备和方法
US8068508B2 (en) Electronic circuit with processing units coupled via a communication network
KR100648631B1 (ko) 프로그램 가능한 딜레이를 갖는 범용 비동기화 송수신기자동 하프 듀플렉스 방향 제어
JPH0879223A (ja) データ送受信システム
KR100545649B1 (ko) 셀 스케쥴링 장치 및 방법
KR100630038B1 (ko) 이동통신시스템에서 연속되는 단문메세지를 동시에전송하는 방법
KR0179914B1 (ko) 데이타 통신장치
KR100590171B1 (ko) Isdn 메시지 처리 장치 및 방법
JP2001308958A (ja) インタフェース回路
JPH0313038A (ja) 非同期式シリアルデータ伝送装置
CN113852568A (zh) 一种数据传输方法及安全仪表系统
JP2003174475A (ja) 信号処理装置間の通信方法及びパケット交換システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee