KR20020091584A - Method for processing ipc between processor using asynchronous shared memory - Google Patents

Method for processing ipc between processor using asynchronous shared memory Download PDF

Info

Publication number
KR20020091584A
KR20020091584A KR1020010030390A KR20010030390A KR20020091584A KR 20020091584 A KR20020091584 A KR 20020091584A KR 1020010030390 A KR1020010030390 A KR 1020010030390A KR 20010030390 A KR20010030390 A KR 20010030390A KR 20020091584 A KR20020091584 A KR 20020091584A
Authority
KR
South Korea
Prior art keywords
shared memory
asynchronous
processor
data
value
Prior art date
Application number
KR1020010030390A
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 KR1020010030390A priority Critical patent/KR20020091584A/en
Publication of KR20020091584A publication Critical patent/KR20020091584A/en

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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]

Landscapes

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

Abstract

PURPOSE: A method for processing an IPC(Interprocess Communication) between processors using an asynchronous shared memory is provided to make a storage of asynchronous data possible and make an asynchronous rapid processor communication possible to one-way through an asynchronous shared memory having a circular queue function. CONSTITUTION: In an IPC processing device among a plurality of processors having many processors and a shared memory capable of performing a data communication between each processor, the shared memory comprises an asynchronous shared memory having a circular queue structure capable of performing an asynchronous accessing process. The first processor judges whether an empty memory area of an asynchronous shared memory exists. If an empty memory area exists, data are stored asynchronously(S10). The second processor judges whether data of the asynchronous shared memory exist. If data exist, data are read asynchronously(S20).

Description

비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법{METHOD FOR PROCESSING IPC BETWEEN PROCESSOR USING ASYNCHRONOUS SHARED MEMORY}Process of processing between processors using asynchronous shared memory {METHOD FOR PROCESSING IPC BETWEEN PROCESSOR USING ASYNCHRONOUS SHARED MEMORY}

본 발명은 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법에 관한 것으로, 더욱 상세하게는 사이클러 큐(Circlular Queue) 형식으로 구현된 비동기 공유 메모리를 통해 프로세서간 IPC(Interprocess Communication; 이하 "IPC"라 칭함.)를 수행하는 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법에 관한 것이다.The present invention relates to an interprocessor IPC processing method using an asynchronous shared memory, and more specifically, to an interprocessor interprocess communication (IPC) through an asynchronous shared memory implemented in the form of a circular queue. It relates to an interprocessor IPC processing method using asynchronous shared memory that performs.).

일반적으로, IPC는 프로그래머가 하나의 운영체제에서 동시에 수행될 개별 프로그램을 생성하고 다룰 수 있도록 해주는 프로그래밍 인터페이스(Interface) 집합으로서, 하나의 프로그램이 동시에 많은 사용자의 요구를 처리할 수 있도록 한다. 단일 사용자의 요구가 운영체계에서 여러 프로세스를 수행시키는 결과를 가져올 수 있기 때문에, 이러한 사용자를 위해 프로세스간 통신이 필요하게 되는데 IPC 인터페이스가 이를 가능케 한다. 모든 IPC 방법들은 각각 장점 및 한계점이 있어서 한 프로그램에서 모든 IPC 방법을 사용하는 예는 드물며 IPC 방법은 메시지 큐잉(Message Queueing), 세마포어(Semaphores), 공유 메모리(Shared Memory), 소켓(Sockets)을 사용한다.In general, IPC is a set of programming interfaces that allow programmers to create and manipulate individual programs to be run simultaneously on one operating system, allowing one program to handle the needs of many users at the same time. Since the needs of a single user can result in running multiple processes in the operating system, interprocess communication is required for these users, which is made possible by the IPC interface. Each IPC method has its advantages and limitations, so there are few examples of using all IPC methods in one program, and IPC methods use message queuing, semaphores, shared memory, and sockets. do.

종래의 공유 메모리를 이용한 프로세서간 IPC 방법은 세마포어를 사용하여 프로세서가 공유 메모리에 접근할 때 세마포어 값을 확인한 후에 접근하며, 이 때, 어떤 프로세서가 공유 메모리에 접근하고 있을 경우 다른 프로세서는 대기 상태로 있다가 먼저 접근한 프로세서의 동작이 끝나면 공유 메모리에 접근이 가능한 접근 방식을 통해 프로세서간 빠른 통신을 위해 사용하였다.The conventional interprocessor IPC method using shared memory accesses the semaphore value after the processor checks the semaphore value when the processor accesses the shared memory. At this time, if one processor is accessing the shared memory, the other processor is placed in the standby state. After the operation of the first accessed processor, the shared memory was used for fast communication between processors.

그러나, 상술한 종래 공유 메모리를 이용한 프로세서간 IPC 방법은 반드시 동기화가 필요할 뿐만 아니라, 만약 구현하기 어려운 세미포어를 사용하여 동기화를 시키더라도 공유 메모리 접근 방식이 프로세서이어서 빠른 데이터 전송이 어려운 문제점이 있었다.However, the aforementioned interprocessor IPC method using the shared memory is not only required to synchronize, but even if the synchronization is performed using semi-forwards that are difficult to implement, the shared memory approach is a processor, which makes fast data transfer difficult.

따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 사이클러 큐 기능을 갖는 비동기 공유 메모리를 통해 비동기 데이터 저장이 가능해 질 뿐만 아니라 이로 인해 단방향으로 비동기적인 빠른 프로세서 통신이 가능하도록 해주기 위한 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법을 제공하는 데 있다.Accordingly, the present invention has been made to solve the above-mentioned conventional problems, and an object of the present invention is not only to enable asynchronous data storage through an asynchronous shared memory having a cycle queue function, but also to achieve a fast processor that is asynchronous in one direction. An object of the present invention is to provide an interprocessor IPC processing method using an asynchronous shared memory to enable communication.

상기 목적을 달성하기 위하여 본 발명 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 장치는 다수개의 프로세서, 및 그 각 프로세서간 데이터 통신이 가능하도록 해주는 공유 메모리를 구비한 다수개의 프로세서간 IPC 처리 장치에 있어서,In order to achieve the above object, an interprocessor IPC processing apparatus using the asynchronous shared memory of the present invention includes a plurality of processors and a plurality of interprocessor IPC processing apparatuses having a shared memory for enabling data communication between the processors.

상기 공유 메모리는, 비동기적인 액세스 처리가 가능한 사이클러 큐 구조를 갖는 비동기 공유 메모리로 구성된 것을 특징으로 한다.The shared memory may be configured as an asynchronous shared memory having a cycle queue structure capable of asynchronous access processing.

상기 목적을 달성하기 위하여 본 발명 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법은 비동기 공유 메모리를 이용한 프로세서간 IPC 데이터 전송 방법에 있어서,In order to achieve the above object, the present invention provides an interprocessor IPC data processing method using an asynchronous shared memory.

제 1 프로세서가 상기 비동기 공유 메모리에 비동기적으로 데이터를 저장(저장)하는 제 10 단계; 및A tenth step in which a first processor asynchronously stores (stores) data in the asynchronous shared memory; And

제 2 프로세서가 상기 비동기 공유 메모리에 데이터의 존재를 판단하여 존재하면 데이터를 비동기적으로 리딩하는 제 20 단계로 이루어진 것을 특징으로 한다.And a second step in which the second processor determines the existence of the data in the asynchronous shared memory, and if so, reads the data asynchronously.

도 1은 본 발명의 일 실시예에 따른 비동기 공유 메모리를 이용한 프로세서간 IPC 장치의 구성을 나타낸 기능블록도,1 is a functional block diagram illustrating a configuration of an interprocessor IPC device using an asynchronous shared memory according to an embodiment of the present invention;

도 2는 도 1에 따른 비동기 공유 메모리를 이용한 프로세서간 IPC 장치 중 비동기 공유 메모리의 동작 상태를 나타내는 구성도,FIG. 2 is a diagram illustrating an operation state of an asynchronous shared memory among the interprocessor IPC devices using the asynchronous shared memory according to FIG. 1;

도 3은 도 1에 따른 비동기 공유 메모리를 이용한 프로세서간 IPC 장치 중 비동기 공유 메모리의 상태도,3 is a state diagram of the asynchronous shared memory among the interprocessor IPC device using the asynchronous shared memory according to FIG.

도 4는 본 발명의 일 실시예에 따른 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법을 나타낸 동작플로우차트,4 is an operation flowchart showing an interprocessor IPC processing method using an asynchronous shared memory according to an embodiment of the present invention;

도 5는 도 4에 따른 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법 중 제 10 단계(S10)의 세부 구성을 나타낸 동작플로우차트,5 is an operation flowchart showing the detailed configuration of the tenth step (S10) of the inter-processor IPC processing method using the asynchronous shared memory according to FIG.

도 6은 도 4에 따른 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법 중 제 20 단계(S20)의 세부 구성을 나타낸 동작플로우차트이다.FIG. 6 is an operation flowchart illustrating a detailed configuration of a twentieth step S20 of the interprocessor IPC processing method using the asynchronous shared memory according to FIG. 4.

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

100 : 제 1 프로세서 200 : 제 2 프로세서100: first processor 200: second processor

300 : 비동기 공유 메모리300: asynchronous shared memory

이하, 본 발명의 일 실시예에 의한 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, an interprocessor IPC processing method using an asynchronous shared memory according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 의한 비동기 공유 메모리를 이용한 프로세서간 IPC 장치의 기능블록도로서, 본 발명의 일 실시예에 의한 비동기 공유 메모리를 이용한 프로세서간 IPC 장치는 제 1 프로세서(100), 제 2 프로세서(200), 및 비동기 공유 메모리(300)로 구성되어 있다.1 is a functional block diagram of an interprocessor IPC device using an asynchronous shared memory according to an embodiment of the present invention. The interprocessor IPC device using an asynchronous shared memory according to an embodiment of the present invention may include a first processor 100. , A second processor 200, and asynchronous shared memory 300.

상기 제 1 프로세서(100)는 데이터를 상기 비동기 공유 메모리(300)로 저장하는 역할을 한다. 이 때, 상기 제 1 프로세서(100)는 상기 비동기 공유 메모리(300)에 빈 데이터 영역의 존재 유무를 테일(Tail) 값 및 헤드(Head) 값을 통해 판단한 후 빈 데이터 영역이 존재하면 데이터를 상기 비동기 공유 메모리(300)로 저장한다.The first processor 100 stores data in the asynchronous shared memory 300. In this case, the first processor 100 determines whether an empty data area exists in the asynchronous shared memory 300 through a tail value and a head value, and then stores the data if the empty data area exists. Stored in asynchronous shared memory (300).

또한, 상기 제 2 프로세서(200)는 상기 제 1 프로세서(100)로부터 상기 비동기 공유 메모리(300)에 저장된 데이터를 비동기적으로 리딩하는 역할을 한다. 즉, 상기 제 1 프로세서(100)와 관계없이 상기 비동기 공유 메모리(300)의 데이터 존재 유무를 파악한 후 존재하면 데이터를 리딩한다.In addition, the second processor 200 asynchronously reads data stored in the asynchronous shared memory 300 from the first processor 100. In other words, regardless of the first processor 100, the presence or absence of data in the asynchronous shared memory 300 is determined and the data is read if present.

그리고, 상기 비동기 공유 메모리(300)는 상기 제 1 프로세서(100)로부터 비동기적으로 저장되는 데이터를 체크하기 위한 테일 값, 상기 제 2 프로세서(200)로 비동기적으로 리딩되는 데이터를 체크하기 위한 헤드 값, 및 리스트의 맨 끝 노드가 리스트의 첫 노드를 가리키는 연결 리스트의 원형 연결 리스트인 사이클러 큐 형식의 메모리 역할을 한다. 이 때, 상기 비동기 공유 메모리(300)는 도 2에 도시된 바와 같이 테일 값과 헤드 값을 FIFO의 형태로 저장 및 리딩되며, 도 3에 도시된 바와 같이 사이클러 큐 형식의 메모리의 형태로 구현된다.The asynchronous shared memory 300 may include a tail value for checking data asynchronously stored from the first processor 100 and a head for checking data asynchronously read to the second processor 200. The value, and the last node of the list, serves as a memory in the form of a cycle queue, which is a circular linked list of linked lists pointing to the first node of the list. In this case, the asynchronous shared memory 300 stores and reads the tail value and the head value in the form of a FIFO as shown in FIG. 2, and implements it in the form of a cycle queue type memory as shown in FIG. 3. do.

그러면, 상기와 같은 구성을 가지는 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법의 동작과정에 대해 도 4를 참조하여 설명하기로 한다.Next, an operation process of the interprocessor IPC processing method using the asynchronous shared memory having the above configuration will be described with reference to FIG. 4.

먼저, 상기 제 1 프로세서(100)는 상기 비동기 공유 메모리(300)의 빈 메모리 영역이 존재하는지의 여부를 판단한 후 빈 메모리 영역이 존재하면 데이터를 비동기적으로 저장한다(S10).First, the first processor 100 determines whether an empty memory area of the asynchronous shared memory 300 exists, and if there is an empty memory area, stores the data asynchronously (S10).

이하, 하기에서는 상술한 제 10 단계(S10)의 세부 동작과정에 대해 도 5을 참조하여 좀 더 상세히 설명하기로 한다.Hereinafter, a detailed operation process of the above-described tenth step S10 will be described in more detail with reference to FIG. 5.

먼저, 상기 제 1 프로세서(100)는 상기 비동기 공유 메모리(300)의 테일 값과 헤드 값을 통한 결과 값으로 빈 데이터 영역이 존재하는지의 여부를 판단한다(S11). 이를 좀 더 자세히 설명하면, 상기 제 1 프로세서(100)는 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 양(+)의 값인지 음(-)의 값인지의 여부를 판단한다.First, the first processor 100 determines whether an empty data area exists as a tail value and a head value of the asynchronous shared memory 300 (S11). In more detail, the first processor 100 determines whether a result of subtracting a tail value of the asynchronous shared memory 300 by a head value is a positive value or a negative value. To judge.

이 때, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 양(+)의 값이면, 상기 제 1 프로세서(100)는 그 양(+)의 결과 값과 슬롯(SLOT)의 최대 값(Max) - 2 보다 작거나 같은지의 여부를 판단한다.At this time, if the result value obtained by subtracting the tail value of the asynchronous shared memory 300 by the head value is a positive value, the first processor 100 generates the positive result value and the slot SLOT. Determines whether the maximum value (Max) of 2 is less than or equal to 2.

반면에, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 음(-)의 값이면, 상기 제 1 프로세서(100)는 그 음(-)의 결과 값 + 슬롯(SLOT)의 최대 값(Max)과 슬롯(SLOT)의 최대 값(Max) - 2 보다 작거나 같은지의 여부를 판단한다.On the other hand, if a result of subtracting a tail value of the asynchronous shared memory 300 by a head value is a negative value, the first processor 100 may generate a negative result value + a slot. It is determined whether the maximum value Max and the maximum value Slot of the slot (SLOT) are less than or equal to 2.

이어서, 상기 제 11 단계(S11)에서 빈 데이터 영역이 존재하지 않으면(NO)다시 상기 제 11 단계(S11)로 진행하는 한편, 빈 데이터 영역이 존재하면(YES) 상기 제 1 프로세서(100)는 데이터를 상기 비동기 공유 메모리(300)로 저장한다(S12). 이를 좀 더 자세히 설명하면, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 슬롯(SLOT)의 최대 값(Max) - 2 보다 크면, 다시 상기 제 11 단계(S11)로 진행하는 한편, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 슬롯(SLOT)의 최대 값(Max) - 2 보다 작거나 같으면, 상기 제 1 프로세서(100)는 데이터를 상기 비동기 공유 메모리(300)로 저장한다.Subsequently, if the empty data area does not exist (NO) in the eleventh step S11, the process proceeds to the eleventh step S11 again. If the empty data area exists (YES), the first processor 100 Data is stored in the asynchronous shared memory 300 (S12). In more detail, if the result of subtracting the tail value of the asynchronous shared memory 300 by the head value is greater than the maximum value Max-2 of the slot SLOT, the process proceeds to the eleventh step S11 again. On the other hand, if the result of subtracting the tail value of the asynchronous shared memory 300 by the head value is less than or equal to the maximum value (Max)-2 of the slot (SLOT), the first processor (100) is the data asynchronous The shared memory 300 is stored.

한편, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 음(-)의 값 + 슬롯(SLOT)의 최대 값(Max)과 슬롯(SLOT)의 최대 값(Max) - 2 보다 크면, 다시 상기 제 11 단계(S11)로 진행하는 한편, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 음(-)의 값 + 슬롯(SLOT)의 최대 값(Max)과 슬롯(SLOT)의 최대 값(Max) - 2 보다 작거나 같으면, 상기 제 1 프로세서(100)는 데이터를 상기 비동기 공유 메모리(300)로 저장한다.On the other hand, the result of subtracting the tail value of the asynchronous shared memory 300 by the head value is a negative value + the maximum value of the slot (SLOT) and the maximum value of the slot (SLOT)-2 If greater than, the process proceeds to the eleventh step S11 again, while the result of subtracting the tail value of the asynchronous shared memory 300 by the head value is a negative value + a maximum value of the slot SLOT. ) And less than or equal to the maximum value Max of the slot SLOT-2, the first processor 100 stores data in the asynchronous shared memory 300.

그리고, 상기 제 1 프로세서(100)는 상기 비동기 공유 메모리(300)의 테일 값을 1 증가시킨다(S13).In addition, the first processor 100 increases the tail value of the asynchronous shared memory 300 by one (S13).

한편, 상기 제 2 프로세서(200)는 상기 비동기 공유 메모리(300)의 데이터존재 유무를 판단한 후 데이터가 존재하면 데이터를 비동기적으로 리딩한다(S20).Meanwhile, the second processor 200 determines whether data exists in the asynchronous shared memory 300, and if data exists, reads the data asynchronously (S20).

이하, 하기에서는 상술한 제 20 단계(S20)의 세부 동작과정에 대해 도 6을 참조하여 좀 더 상세히 설명하기로 한다.Hereinafter, a detailed operation process of the above-described twentieth step S20 will be described in more detail with reference to FIG. 6.

먼저, 상기 제 2 프로세서(200)는 상기 비동기 공유 메모리(300)의 테일 값과 헤드 값을 통한 결과 값으로 데이터가 존재하는지의 여부를 판단한다(S21). 이를 좀 더 자세히 설명하면, 상기 제 2 프로세서(200)는 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 양(+)의 값인지 음(-)의 값인지의 여부를 판단한다.First, the second processor 200 determines whether data exists as a result value through a tail value and a head value of the asynchronous shared memory 300 (S21). In more detail, the second processor 200 determines whether a result value obtained by subtracting a tail value of the asynchronous shared memory 300 by a head value is a positive value or a negative value. To judge.

이 때, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 양(+)의 값이면, 상기 제 2 프로세서(200)는 그 양(+)의 결과 값이 0부터 슬롯(SLOT)의 최대 값(Max) - 1 사이에 존재하는지의 여부를 판단한다.At this time, if the result value obtained by subtracting the tail value of the asynchronous shared memory 300 by the head value is a positive value, the second processor 200 determines that the result value of the positive value is 0 to the slot ( SLOT) is determined to exist between Max-1.

반면에, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 음(-)의 값이면, 상기 제 2 프로세서(200)는 그 음(-)의 결과 값 + 슬롯(SLOT)의 최대 값(Max)과 슬롯(SLOT)의 최대 값(Max) - 1 사이에 존재하는지의 여부를 판단한다.On the other hand, if a result of subtracting a tail value of the asynchronous shared memory 300 by a head value is a negative value, the second processor 200 generates a negative result value + a slot. It is determined whether there exists between the maximum value Max and the maximum value Slot-1 of the slot SLOT.

이 때, 상기 제 21 단계(S21)에서 데이터가 존재하지 않으면(NO) 다시 상기 제 21 단계(S21)로 진행하는 한편, 데이터가 존재하면(YES) 상기 제 2 프로세서(200)는 상기 비동기 공유 메모리(300)에 저장된 데이터를 리딩한다(S22).이를 좀 더 자세히 설명하면, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 그 양(+)의 결과 값이 0부터 슬롯(SLOT)의 최대 값(Max) - 1 사이에 존재하지 않으면, 다시 상기 제 21 단계(S21)로 진행하는 한편, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 그 양(+)의 결과 값이 0부터 슬롯(SLOT)의 최대 값(Max) - 1 사이에 존재하면, 상기 제 2 프로세서(200)는 데이터를 상기 비동기 공유 메모리(300)로부터 리딩한다.At this time, if there is no data in the twenty-first step S21 (NO), the process proceeds to the twenty-first step S21 again, and if there is data (YES), the second processor 200 shares the asynchronous sharing. The data stored in the memory 300 is read (S22). In more detail, the result of subtracting the tail value of the asynchronous shared memory 300 by the head value is a slot (SLOT) from 0. If it is not between the maximum value Max-1, the process returns to the twenty-first step S21, while the result of the positive value obtained by subtracting the tail value of the asynchronous shared memory 300 by the head value. If the value is between 0 and the maximum value Max-1 of the slot SLOT, the second processor 200 reads data from the asynchronous shared memory 300.

반면에, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 음(-)의 값 + 슬롯(SLOT)의 최대 값(Max)과 슬롯(SLOT)의 최대 값(Max) - 1 사이에 존재하지 않으면, 다시 상기 제 11 단계(S11)로 진행하는 한편, 상기 비동기 공유 메모리(300)의 테일 값을 헤드 값으로 뺀 결과 값이 음(-)의 값 + 슬롯(SLOT)의 최대 값(Max)과 슬롯(SLOT)의 최대 값(Max) - 1 사이에 존재하면, 상기 제 2 프로세서(200)는 데이터를 상기 비동기 공유 메모리(300)로 저장한다.On the other hand, the result of subtracting the tail value of the asynchronous shared memory 300 by the head value is a negative value + the maximum value of the slot (SLOT) and the maximum value of the slot (SLOT) − If not present between 1, the process proceeds to the eleventh step S11 again, while the tail value of the asynchronous shared memory 300 is obtained by subtracting the head value from the head value to a negative value + a slot value. If present between the maximum value Max and the maximum value Max-1 of the slot SLOT, the second processor 200 stores data in the asynchronous shared memory 300.

이어서, 상기 제 2 프로세서(200)는 상기 비동기 공유 메모리(300)의 헤드 값을 1 증가시킨다(S23).Subsequently, the second processor 200 increases the head value of the asynchronous shared memory 300 by one (S23).

상술한 바와 같이 본 발명에 의한 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법에 의하면, 사이클러 큐 기능을 갖는 비동기 공유 메모리를 통해 비동기 데이터 저장이 가능해질 뿐만 아니라 이로 인해 단방향으로 비동기적인 빠른 프로세서 통신이 가능하게 해주는 뛰어난 효과가 있다.As described above, according to the interprocessor IPC processing method using the asynchronous shared memory according to the present invention, not only asynchronous data storage is possible through the asynchronous shared memory having a cycle queue function, but also asynchronous fast processor communication in one direction is achieved. There is an excellent effect that makes it possible.

Claims (4)

다수개의 프로세서, 및 그 각 프로세서간 데이터 통신이 가능하도록 해주는 공유 메모리를 구비한 다수개의 프로세서간 IPC 처리 장치에 있어서,An apparatus for processing IPC between a plurality of processors having a plurality of processors and shared memory for enabling data communication between the processors, 상기 공유 메모리는, 비동기적인 액세스 처리가 가능한 사이클러 큐 구조를 갖는 비동기 공유 메모리로 구성된 것을 특징으로 하는 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 장치.The shared memory is an interprocessor IPC processing apparatus using asynchronous shared memory, characterized in that the asynchronous shared memory having a cycle queue structure capable of asynchronous access processing. 비동기 공유 메모리를 이용한 다수개의 프로세서간 IPC 처리 방법에 있어서,In the IPC processing method between a plurality of processors using asynchronous shared memory, 임의의 제 1 프로세서가 상기 비동기 공유 메모리의 비어있는 메모리 영역이 존재하는지의 여부를 판단한 후 빈 메모리 영역이 존재하면 데이터를 비동기적으로 저장하는 제 10 단계; 및A tenth step in which any first processor determines whether an empty memory area of the asynchronous shared memory exists and then stores data asynchronously if the empty memory area exists; And 임의의 제 2 프로세서가 상기 비동기 공유 메모리의 데이터 존재 유무를 판단한 후 데이터가 존재하면 데이터를 비동기적으로 리딩하는 제 20 단계로 이루어진 것을 특징으로 하는 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법.And a twentieth step of determining whether data exists in the asynchronous shared memory by any second processor and then asynchronously reading data if there is data. 제 2항에 있어서,The method of claim 2, 상기 제 10 단계는, 상기 제 1 프로세서가 상기 비동기 공유 메모리의 테일값과 헤드 값을 통한 결과 값으로 빈 데이터 영역이 존재하는지의 여부를 판단하는 제 11 단계;The tenth step may include: an eleventh step of determining, by the first processor, whether an empty data area exists as a result value of a tail value and a head value of the asynchronous shared memory; 상기 제 11 단계에서 빈 데이터 영역이 존재하지 않으면 다시 상기 제 11 단계로 진행하는 한편, 빈 데이터 영역이 존재하면 상기 제 1 프로세서가 데이터를 상기 비동기 공유 메모리로 저장하는 제 12 단계; 및A twelfth step of, if the empty data area does not exist in the eleventh step, proceeds to the eleventh step again; if the empty data area exists, the first processor stores data in the asynchronous shared memory; And 상기 제 1 프로세서가 상기 비동기 공유 메모리의 테일 값을 1 증가시키는 제 13 단계로 이루어진 것을 특징으로 하는 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법.And a thirteenth step in which the first processor increases the tail value of the asynchronous shared memory by one. 제 2항에 있어서,The method of claim 2, 상기 제 20 단계는, 상기 제 2 프로세서가 상기 비동기 공유 메모리의 테일 값과 헤드 값을 통한 결과 값으로 데이터가 존재하는지의 여부를 판단하는 제 21 단계;The twenty-second step may include: a twenty-first step of determining, by the second processor, whether data exists as a tail value and a head value of the asynchronous shared memory; 상기 제 21 단계에서 데이터가 존재하지 않으면 다시 상기 제 21 단계로 진행하는 한편, 데이터가 존재하면 상기 제 2 프로세서가 상기 비동기 공유 메모리에 저장된 데이터를 리딩하는 제 22 단계; 및A twenty-second step of, if there is no data in the twenty-first step, proceeds to the twenty-first step; if the data is present, the second processor reads the data stored in the asynchronous shared memory; And 상기 제 2 프로세서가 상기 비동기 공유 메모리의 헤드 값을 1 증가시키는 제 23 단계로 이루어진 것을 특징으로 하는 비동기 공유 메모리를 이용한 프로세서간 IPC 처리 방법.And a twenty-third step in which the second processor increments the head value of the asynchronous shared memory by one.
KR1020010030390A 2001-05-31 2001-05-31 Method for processing ipc between processor using asynchronous shared memory KR20020091584A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010030390A KR20020091584A (en) 2001-05-31 2001-05-31 Method for processing ipc between processor using asynchronous shared memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010030390A KR20020091584A (en) 2001-05-31 2001-05-31 Method for processing ipc between processor using asynchronous shared memory

Publications (1)

Publication Number Publication Date
KR20020091584A true KR20020091584A (en) 2002-12-06

Family

ID=27707288

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010030390A KR20020091584A (en) 2001-05-31 2001-05-31 Method for processing ipc between processor using asynchronous shared memory

Country Status (1)

Country Link
KR (1) KR20020091584A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734826B1 (en) * 2003-12-23 2007-07-03 한국전자통신연구원 Method and system for transfering asynchronous data using a shared file
CN103150220A (en) * 2011-12-07 2013-06-12 腾讯科技(深圳)有限公司 Method and system for interprocess communications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734826B1 (en) * 2003-12-23 2007-07-03 한국전자통신연구원 Method and system for transfering asynchronous data using a shared file
CN103150220A (en) * 2011-12-07 2013-06-12 腾讯科技(深圳)有限公司 Method and system for interprocess communications

Similar Documents

Publication Publication Date Title
Zhang et al. The demikernel datapath os architecture for microsecond-scale datacenter systems
Abadal et al. WiSync: An architecture for fast synchronization through on-chip wireless communication
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
Petrović et al. Leveraging hardware message passing for efficient thread synchronization
Karsten et al. User-level threading: Have your cake and eat it too
Hruby et al. On Sockets and System Calls: Minimizing Context Switches for the Socket {API}
Traff et al. The implementation of MPI-2 one-sided communication for the NEC SX-5
Bal et al. Performance of a high-level parallel language on a high-speed network
CN110569105B (en) Self-adaptive memory consistency protocol of distributed virtual machine, design method thereof and terminal
Cardellini et al. Overlapping communication with computation in MPI applications
Chiola et al. Implementing a low cost, low latency parallel platform
US20050289213A1 (en) Switching between blocking and non-blocking input/output
Bhatt et al. Constant RMR solutions to reader writer synchronization
US20060026214A1 (en) Switching from synchronous to asynchronous processing
KR20020091584A (en) Method for processing ipc between processor using asynchronous shared memory
Ramani et al. Lock-based or lock-less: Which is fresh?
Soller et al. Dfc++ processing framework concept: A novel framework approach for flexible signal processing on embedded systems
Simon et al. High-Performance Match-Action Table Updates from within Programmable Software Data Planes
Beineke et al. Efficient messaging for java applications running in data centers
Deri et al. Exploiting commodity multi-core systems for network traffic analysis
Tanase et al. Network endpoints for clusters of SMPs
Pope et al. Introduction to OpenOnload—building application transparency and protocol conformance into application acceleration middleware
Nothaas et al. A benchmark to evaluate infiniband solutions for java applications
Strøm et al. Hardlock: Real-time multicore locking
Krakowski et al. Neutrino: Efficient infiniband access for java applications

Legal Events

Date Code Title Description
N231 Notification of change of applicant
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination