KR100252084B1 - Method for writing/reading data and data access apparatus in multi-process system - Google Patents

Method for writing/reading data and data access apparatus in multi-process system Download PDF

Info

Publication number
KR100252084B1
KR100252084B1 KR1019970058239A KR19970058239A KR100252084B1 KR 100252084 B1 KR100252084 B1 KR 100252084B1 KR 1019970058239 A KR1019970058239 A KR 1019970058239A KR 19970058239 A KR19970058239 A KR 19970058239A KR 100252084 B1 KR100252084 B1 KR 100252084B1
Authority
KR
South Korea
Prior art keywords
data
target
key
buffer
access
Prior art date
Application number
KR1019970058239A
Other languages
Korean (ko)
Other versions
KR19990038489A (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 KR1019970058239A priority Critical patent/KR100252084B1/en
Publication of KR19990038489A publication Critical patent/KR19990038489A/en
Application granted granted Critical
Publication of KR100252084B1 publication Critical patent/KR100252084B1/en

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • 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/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

PURPOSE: A method for writing/reading data in a multi process system and a data access device are provided to prevent one process from accessing the data of the target in case that the another process takes the key by making a key needed to enable a process to access data of a target. CONSTITUTION: A control unit(260) controls processes(200,210,220) and a buffer unit(230). The buffer unit(230) includes a READ AHEAD buffer(232) and a WRITE AHEAD buffer(234). The READ AHEAD buffer(232) and the WRITE AHEAD buffer(234) perform buffering data before the processes(210,220,230) write/read the data to/from a target(250). A target driving unit(240) includes a RECEIVE buffer(242), an I2C control register(244), an I2S state register(246) and a TRANSMIT buffer(248). The RECEIVE buffer(2420 buffers the data read from the target(250). The TRANSMIT buffer(248) buffers data to be written to the target(250). The I2C state register(246) generates an interrupt under the control of the I2C control register(244).

Description

멀티 프로세스 시스템에서 데이터 라이트/리드 방법 및 데이터 엑세스 장치Data write / read methods and data access devices in multiprocess systems

본 발명은 데이터 엑세스 방법 및 장치에 관한 것으로, 보다 상세하게는 멀티 프로세스 시스템에서 데이터 라이트/리드 방법 및 데이터 엑세스 장치에 관한 것이다.The present invention relates to a data access method and apparatus, and more particularly, to a data write / read method and a data access apparatus in a multi-process system.

일반적으로 디지털 시스템에서 칩간의 통신은 대부분 I2C(I2C) 프로토콜을 사용해왔다. 종전에는 도 1에 도시된 바와 같이, 프로세스(10)와 타겟(Target; 20) - 엑세스하고자 하는 대상 - 간의 인터페이스 형태가, 통상적으로 한 사람이 프로그램을 작성하는 시퀀설(Sequential) 플로우 형태였으므로 I2C 프로그램을 사용하는 데는 그다지 문제가 없었다. 그러나 근래들어서는 프로그램의 규모가 방대해지고 여러 사람이 각각의 파트를 나누어서 프로그램을 작성하는 Parallel 플로우 형태의 멀티 태스킹 프로그램이 필수적으로 되어가고 있다. 따라서, 멀티 태스킹 또는 멀티 프로세스 시스템에서 여러 개의 프로세스가 동시에 타겟의 데이터를 엑세스하는 경우 충돌이 일어날 수 있으므로 이러한 충돌을 방지할 수 있는 방법 및 장치가 요망되어 왔다.In general, the communication between chips in digital systems has mostly used I2C (I 2 C) protocol. Previously, as shown in FIG. 1, since the interface form between the process 10 and the target 20-the object to be accessed is typically a sequential flow in which a person writes a program, I2C There was no problem using the program. However, in recent years, the scale of the program is enormous and a parallel task type multitasking program in which several people write a program by dividing each part becomes essential. Therefore, a collision may occur when several processes simultaneously access data of a target in a multi-tasking or multi-process system, and a method and apparatus for preventing such a collision have been desired.

본 발명의 목적은, 상기와 같은 문제점을 해결하기 위해, 프로세스가 타겟의데이터를 엑세스하는데 필요한 키를 만들어, 어느 하나의 프로세스가 키를 가지고 간 경우에는 다른 프로세스는 타켓의 데이터를 엑세스할 수 없도록 하는 멀티 프로세스 시스템에서 데이터 엑세스 방법 및 장치를 제공하는 것이다.An object of the present invention is to solve the above problems, by making a key required for a process to access the data of the target, so that if one process has a key, the other process can not access the target data. To provide a data access method and apparatus in a multi-process system.

도 1은 종래의, 프로세스가 하나인 시스템에서 데이터 엑세스 장치의 블록도이다.1 is a block diagram of a data access device in a conventional, one-process system.

도 2는 본 발명에 따른 멀티 프로세스 시스템의 데이터 엑세스 장치의 일실시예의 블록도이다.2 is a block diagram of one embodiment of a data access device of a multi-process system in accordance with the present invention.

도 3a 및 도 3b는 본 발명에 따른 멀티 프로세스 시스템의 데이터 엑세스 방법을 설명하기 위한 흐름도이다.3A and 3B are flowcharts illustrating a data access method of a multi-process system according to the present invention.

상기의 목적을 달성하기 위하여 멀티 프로세스 시스템에서 테이터 라이트 방법이 제공된다. 그 방법은 제1단계 내지 제5단계를 포함한다.In order to achieve the above object, a data writing method in a multi-process system is provided. The method includes the first to fifth steps.

제1단계는 상기 멀티 프로세스가 타겟의 데이터를 동시에 라이트하기 위해 필요한 제1 및 제2키를 만드는 단계이다. 제2단계는 어느 하나의 프로세스가 타겟에 데이터를 라이트하고자 하는 경우, 상기 제1단계에서 만든 제1키를 가지고 가서 데이터를 버퍼링한 후 상기 제1키를 반납하는 단계이다. 제3단계는 트랜스미트 인터럽트가 발생되었는지를 판단하여, 발생되었으면 상기 제2키를 가지고 가서 상기 제3단계에서 버퍼링된 데이터를 타겟으로 전송하는 단계이다. 제4단계는 상기 제2단계에서 제1키가 반납된 경우, 트랜스미트 인터럽트가 발생되었는지를 판단하여, 발생되었으면 다른 하나의 프로세스가 타겟에 데이터를 라이트하기 위해 상기 제1키를 가지고 가서 데이터를 버퍼링하는 단계이다. 제5단계는 모든 데이터가 타겟으로 전송되었는지를 판단하여, 전송되었으면 상기 제2키를 반납하는 단계이다.The first step is to create the first and second keys necessary for the multi-process to simultaneously write data of the target. The second step is to take the first key created in the first step, buffer the data, and return the first key when one process wants to write data to the target. The third step is to determine whether the transmit interrupt has occurred, and if so, take the second key and transmit the data buffered in the third step to the target. In the fourth step, when the first key is returned in the second step, it is determined whether a transmission interrupt has occurred, and if so, another process takes the first key and writes the data to write data to the target. Buffering. The fifth step is to determine whether all data has been transmitted to the target, and return the second key if it has been transmitted.

상기의 다른 목적을 달성하기 위하여 멀티 프로세스 시스템에서 데이터 리드 방법이 제공된다. 그 방법은 제1단계 내지 제6단계를 포함한다.In order to achieve the above another object, a data read method in a multi-process system is provided. The method includes the first to sixth steps.

제1단계는 상기 멀티 프로세스가 타겟의 데이터를 동시에 리드하기 위해 필요한 제3 및 제4키를 만드는 단계이다. 제2단계는 리시브 인터럽트가 발생되었는지를 판단하여, 발생되었으면 상기 제3키를 가지고 가서 타겟으로부터 입력된 데이터를 버퍼링하는 단계이다. 제3단계는 상기 제2단계에서 모든 데이터가 버퍼링되었는지를 판단하여, 버퍼링되었으면 상기 제3키를 반납하는 단계이다. 제4단계는 상기 제4키를 가지고 가서 상기 제3단계에서 버퍼링된 데이터를, 리드를 요청한 어느 하나의 프로세스로 전송하는 단계이다. 제5단계는 상기 제3단계에서 제3키가 반납된 경우, 리시브 인터럽트가 발생되었는지를 판단하여, 발생되었으면 다른 하나의 프로세스가 타겟으로부터 데이터를 리드하기 위해 상기 제3키를 가지고 가서 입력된 데이터를 버퍼링하는 단계이다. 제6단계는 모든 데이터가 리드되었는지를 판단하여, 리드되었으면 상기 제4키를 반납하는 단계이다.The first step is to create the third and fourth keys necessary for the multi-process to simultaneously read data of the target. The second step is to determine whether a receive interrupt has occurred, and if so, take the third key and buffer the data input from the target. The third step is to determine whether all data is buffered in the second step, and return the third key if it is buffered. The fourth step is to take the fourth key and transmit the data buffered in the third step to any one of the processes that requested the read. In the fifth step, when the third key is returned in the third step, it is determined whether a receive interrupt has occurred, and if so, another process takes the third key and inputs the data to read data from a target. Buffering. In the sixth step, it is determined whether all data have been read, and if so, returning the fourth key.

상기의 다른 목적을 달성하기 위하여 멀티 프로세스 시스템의 데이터 엑세스 장치가 제공된다. 그 장치는 복수개의 프로세스와, 상기 프로세스의 엑세스 대상인 타겟과, 상기 타겟을 구동하는 타겟 구동부, 버퍼부 및 제어부를 포함한다. 버퍼부는 상기 프로세스들과 상기 타겟 구동부 사이에서 데이터를 버퍼링한다. 제어부는 상기 복수개의 프로세스와 상기 버퍼부를 제어하여, 복수개의 프로세스가 타겟의 데이터를 동시에 엑세스하기 위해 필요한 복수개의 키를 만들도록 하고, 어느 하나의 프로세스가 상기 키 중의 하나를 가지고 가서 타겟의 데이터를 엑세스하도록 하며, 엑세스가 끝난 후에는 가지고 간 키를 반납하도록 하고, 어느 하나의 프로세스가 상기 키 중 하나를 가지고 간 경우 다른 프로세스가 타겟의 데이터를 엑세스하지 못하도록 한다.In order to achieve the above another object, a data access device of a multi-process system is provided. The apparatus includes a plurality of processes, a target to be accessed by the process, a target driver for driving the target, a buffer, and a controller. The buffer unit buffers data between the processes and the target driver. A control unit controls the plurality of processes and the buffer unit to generate a plurality of keys necessary for the plurality of processes to access the data of the target at the same time, and any one process takes one of the keys and retrieves the target data. Access, return the key that was taken after the access is over, and prevent one process from accessing the target's data if one process takes one of the keys.

이어서, 첨부한 도면들을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.Next, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 멀티 프로세스 시스템의 데이터 엑세스 장치의 일실시예의 블록도이다.2 is a block diagram of one embodiment of a data access device of a multi-process system in accordance with the present invention.

도 1에 도시된 장치는 I2C 프로토콜을 사용하여 프로세스와 타겟 간에 인터페이스하며, 제1 내지 제3프로세스(200, 210, 220), 버퍼부(230), 타겟 구동부(240), 타겟(250) 및 제어부(260)를 포함한다. 버퍼부(230)는 프로세스들(200, 210, 220)과 타겟 구동부(240) 사이에서 데이터를 버퍼링한다.The device illustrated in FIG. 1 uses an I2C protocol to interface between a process and a target, and includes first to third processes 200, 210, and 220, a buffer unit 230, a target driver 240, a target 250, and a target. The control unit 260 is included. The buffer unit 230 buffers data between the processes 200, 210, and 220 and the target driver 240.

제어부(260)는 프로세스들((200, 210, 220)과 버퍼부(230)를 제어하여, 프로세스들이 타겟의 데이터를 동시에 엑세스하기 위해 필요한 복수개의 키를 만들도록 하고, 어느 하나의 프로세스가 키 하나를 가지고 가서 타겟의 데이터를 엑세스하도록 한다. 또한 엑세스가 끝난 후에는 가지고 간 키를 반납하도록 하며, 어느 하나의 프로세스가 키를 가지고 간 경우 다른 프로세스가 타겟의 데이터를 엑세스 하지 못하도록 한다. 버퍼부(230)는 READ AHEAD 버퍼(232) 및 WRITE AHEAD 버퍼(234)를 포함한다. READ AHEAD 버퍼(232) 및 WRITE AHEAD 버퍼(234)는 프로세스들(200, 210, 220)이 타겟(250)에 혹은 타겟(250)으로부터 데이터를 라이트 혹은 리드하기 전에 데이터를 버퍼링한다. 타겟 구동부(240)는 RECEIVE 버퍼(242), I2C 제어 레지스터(244), I2C 상태 레지스터(246) 및 TRANSMIT 버퍼(248)를 포함한다. RECEIVE 버퍼(242)는 타겟(250)으로부터 리드된 데이터를 버퍼링한다. TRANSMIT 버퍼(248)는 타겟(250)에 라이트할 데이터를 버퍼링한다. I2C 제어 레지스터(244)는 초기 상태에서 RECEIVE 인터럽트를 온하고, TRANSMIT 인터럽트를 오프시키며, I2C 상태 레지스터(246)로 하여금 RECEIVE 또는 TRANSMIT 인터럽트를 발생하게 한다. I2C 상태 레지스터(246)는 I2C 제어 레지스터(244)의 제어에 따라 인터럽트를 발생한다.The control unit 260 controls the processes (200, 210, 220) and the buffer unit 230 so that the processes generate a plurality of keys necessary for accessing data of the target at the same time, and any one process is the key. Take one to access the target's data, and return the key you have taken after the access is over, and prevent one from accessing the target's data if one process has taken the key. 230 includes a READ AHEAD buffer 232 and a WRITE AHEAD buffer 234. The READ AHEAD buffer 232 and the WRITE AHEAD buffer 234 allow processes 200, 210, and 220 to target 250. Or buffer the data before writing or reading the data from the target 250. The target driver 240 stores the RECEIVE buffer 242, the I2C control register 244, the I2C status register 246, and the TRANSMIT buffer 248. R. ECEIVE buffer 242 buffers the data read from target 250. TRANSMIT buffer 248 buffers the data to be written to target 250. I2C control register 244 turns on the RECEIVE interrupt in its initial state. And turn off the TRANSMIT interrupt, causing the I2C status register 246 to generate a RECEIVE or TRANSMIT interrupt.The I2C status register 246 generates an interrupt under control of the I2C control register 244.

이어서, 도 2에 도시된 장치의 동작을 설명한다.Next, the operation of the apparatus shown in FIG. 2 will be described.

먼저, 프로세서가 타겟(250)에 데이터를 Write하는 경우를 설명한다. 초기상태에서 I2C 제어 레지스터(244)는 RECEIVE 인터럽트를 온하고, TRANSMIT 인터럽트를 OFF시킨다. 이 때 제어부(260)는 프로세서들(200, 210, 220)이 WRITE AHEAD 버퍼(234)에 엑세스할 때 필요한 키들을 만들도록 한다. 라이트시 사용되는 키는 sm1키 및 sm2키이며, 이 때 키는 예컨대 플레그로 구현할 수 있다. 각종 함수들이 키를 가지고 간 상태는 플레그가 "0" 인 상태라 볼 수 있고, 키를 반납한 상태는 플레그가 "1" 인 상태라 볼 수 있다. 물론 그 반대의 경우도 가능하다. 여러 개의 프로세스 중 어느 하나, 예컨대 도 2에서와 같이 제2프로세스(210)가 타겟(250)에 데이터를 라이트하고자 할 때, 함수 I2C Write()는 초기상태에서 만들어 놓은 sm1 키를 가지고 가서 WRITE AHEAD 버퍼(234)에 엑세스한 후 데이터를 트랜스퍼한다. 제2프로세서(210)가 sm1 키를 가지고 간 경우에는 제1 및 제3 프로세스(200, 220) 등은 타겟(250)에 데이터를 라이트하기 위해 WRITE AHEAD 버퍼(234)에 접근할 수 없다. 제2프로세스(210)는 라이트하고자 하는 데이터를 WRITE AHEAD 버퍼(234)에 모두 트랜스퍼한 후 sm1 키를 반납한다. WRITE AHEAD 버퍼(234)에 데이터가 모두 트랜스퍼되면, I2C 제어 레지스터(244)는 I2C 상태 레지스터(246)를 제어하여 초기 상태에서 오프된 TRANSMIT 인터럽트를 온시킨다. 트랜스미트 인터럽트가 온되면, 함수 tx_char()(트랜스미트 인터럽트 서비스 루틴 함수)는 sm2 키를 가지고 가서 WRITE AHEAD 버퍼(234)에 트랜스퍼된 데이터를 TRANSMIT 버퍼(248)에 엑세스한 후 타겟(250)으로 보낸다. 트랜스미트 인터럽트가 발생할 때 마다 WRITE AHEAD 버퍼(234)에 트랜스퍼된 데이터를 타겟(250)으로 보내게 된다. WRITE AHEAD 버퍼(234)에 트랜스퍼된 모든 데이터를 보낸 후에 sm2 키를 반납한다.First, a case in which the processor writes data to the target 250 will be described. In the initial state, I2C control register 244 turns on the RECEIVE interrupt and turns off the TRANSMIT interrupt. In this case, the controller 260 generates the keys necessary for the processors 200, 210, and 220 to access the WRITE AHEAD buffer 234. The keys used at the time of writing are the sm1 key and the sm2 key, and the key may be implemented by, for example, a flag. The state in which the various functions carry the key is a state in which the flag is "0", and the state in which the key is returned is a state in which the flag is "1". Of course the opposite is also true. When one of several processes, for example, the second process 210 wants to write data to the target 250 as shown in FIG. 2, the function I2C Write () takes the sm1 key created in the initial state and writes the WRITE AHEAD The data is transferred after accessing the buffer 234. When the second processor 210 carries the sm1 key, the first and third processes 200 and 220 may not access the WRITE AHEAD buffer 234 to write data to the target 250. The second process 210 transfers all the data to be written to the WRITE AHEAD buffer 234 and returns the sm1 key. When all data is transferred to the WRITE AHEAD buffer 234, the I2C control register 244 controls the I2C status register 246 to turn on the TRANSMIT interrupt turned off from the initial state. When the transmit interrupt is turned on, the function tx_char () (transmit interrupt service routine function) takes the sm2 key and accesses the transferred data in the WRITE AHEAD buffer 234 to the TRANSMIT buffer 248 and then goes to the target 250. send. Whenever a transmission interrupt occurs, the transferred data is sent to the target 250 in the WRITE AHEAD buffer 234. After sending all the transferred data to the WRITE AHEAD buffer 234, the sm2 key is returned.

다음에, 제2프로세스(210)가 타겟(250)으로부터 데이터를 리드하는 경우를 설명한다. 이 경우에도 초기상태에서 I2C 제어 레지스터(244)는 RECEIVE 인터럽트를 온하고 TRANSMIT 인터럽트는 오프시킨다. 이 때 제어부(260)는 프로세서들(200, 210, 220)이 READ AHEAD 버퍼(234; RAB)에 엑세스할 때 필요한 키들을 만든다. 리드시 사용되는 키는 sm3키 및 sm4키이다. RECEIVE 인터럽트가 발생한 경우에 함수 rx_isr()(RECEIVE 인터럽트 서비스 루틴 함수)는 sm3 키를 가지고 가서 타겟(250)으로부터 입력되는 데이터를 READ AHEAD 버퍼(232)에 엑세스한 후 트랜스퍼시키고 sm3 키를 반납한다. READ AHEAD 버퍼(232)에 데이터가 트랜스퍼되면, 함수 I2C Read()는 sm4 키를 가지고 가서 리드를 요구한 제2프로세스(210)에 엑세스한 후 데이터를 트랜스퍼한다. 리드가 요구된 모든 데이터가 제2프로세스(210)로 트랜스퍼되면, sm4 키를 반납한다.Next, the case where the second process 210 reads data from the target 250 will be described. Even in this case, in the initial state, the I2C control register 244 turns on the RECEIVE interrupt and turns off the TRANSMIT interrupt. In this case, the controller 260 generates keys necessary for the processors 200, 210, and 220 to access the READ AHEAD buffer 234 (RAB). The keys used for reading are the sm3 key and the sm4 key. When the RECEIVE interrupt occurs, the function rx_isr () (RECEIVE interrupt service routine function) takes the sm3 key, accesses the data input from the target 250 to the READ AHEAD buffer 232, transfers it, and returns the sm3 key. When data is transferred to the READ AHEAD buffer 232, the function I2C Read () takes the sm4 key, accesses the second process 210 that requested the read, and then transfers the data. When all data required for reading is transferred to the second process 210, the sm4 key is returned.

도 3a 및 도 3b는 본 발명에 따른 멀티 프로세스 시스템의 데이터 엑세스 방법을 설명하기 위한 흐름도이다.3A and 3B are flowcharts illustrating a data access method of a multi-process system according to the present invention.

도 3a 및 도 3b에 도시된 흐름도는 300 내지 332단계를 포함한다. 300-302 단계는 시스템을 초기화시키고, 엑세스에 필요한 키들을 만드는 단계이다. 304-318 단계는 프로세스가 타겟에 데이터를 라이트하는 과정을 나타낸다. 320-332 단계는 프로세스가 타겟의 데이터를 리드하는 과정을 나타낸다.The flowcharts shown in FIGS. 3A and 3B include steps 300 to 332. Step 300-302 is to initialize the system and create keys for access. Steps 304-318 represent the process by which the process writes data to the target. Steps 320-332 represent a process in which the process reads data of the target.

이어서, 도 3a 및 도 3b에 도시된 흐름도를 도 2를 참조하여 설명한다.Next, the flowchart shown in FIG. 3A and FIG. 3B is demonstrated with reference to FIG.

초기상태에서 I2C 제어 레지스터(244)가 RECEIVE 인터럽트를 온하고 TRANSMIT 인터럽트를 오프시킨다.(300단계) 프로세서들(200, 210, 220)이 버퍼부(230)에 엑세스하기 위한 키들(sm1-sm4)을 만든다.(302단계) 데이터를 라이트하는데 필요한 키는 sm1 및 sm2 키이고, 리드하는데 필요한 키는 sm3 및 sm4 키이다. I2C Write 인지를 판단한다.(304단계) I2C는 I2C 프로토콜로 통신한다는 것을 의미한다. 여러 개의 프로세스 중에서 어느 한 프로세스가 타겟(250)에 데이터를 라이트하기 위한 모드인지를 판단하는 것이다. 304단계에서 I2C Write 라고 판단되면, 함수 I2C Write()는 302단계에서 만든 sm1 키를 가지고 가서 WAB(234)에 엑세스한다.(306단계) 라이트하고자 하는 데이터를 WAB(234)에 트랜스퍼한 후 sm1 키를 반납한다.(308단계) TRANSMIT 인터럽트가 발생했는지를 판단한다.(310단계) 데이터가 WAB(234)에 트랜스퍼되면, I2C 제어 레지스터(244)는 초기상태에서 오프되어 있던 TRANSMIT 인터럽트를 온시켜 TRANSMIT 인터럽트 발생여부를 체크한다. 310단계에서 TRANSMIT 인터럽트가 발생되었다고 판단되면, 함수 tx_char()는 sm2 키를 가지고 가서 TRANSMIT 버퍼에 엑세스한다.(312단계) WAB(234)에 트랜스퍼된 데이터를 TRANSMIT 버퍼(248)에 트랜스퍼한 후 타겟(250)으로 전송한다.(314단계) 모든 데이터가 타겟(250)으로 전송되었는지를 판단하여, 전송되었으면 sm2 키를 반납한다.(316-318단계)In the initial state, the I2C control register 244 turns on the RECEIVE interrupt and turns off the TRANSMIT interrupt. (Step 300) Keys sm1-sm4 for the processors 200, 210, and 220 to access the buffer unit 230. (Step 302) The keys required to write data are sm1 and sm2 keys, and the keys required to read are sm3 and sm4 keys. It determines whether it is an I2C write (step 304). It means that I2C communicates through I2C protocol. It is determined whether one of the processes is a mode for writing data to the target 250. If it is determined in step 304 that I2C Write, the function I2C Write () takes the sm1 key created in step 302 and accesses the WAB 234. (step 306) Transfers the data to be written to the WAB 234 and sm1 The key is returned. (Step 308) It is determined whether a TRANSMIT interrupt has occurred. (Step 310) When data is transferred to the WAB 234, the I2C control register 244 turns on the TRANSMIT interrupt that was turned off in the initial state. TRANSMIT Checks if an interrupt has occurred. If it is determined in step 310 that the TRANSMIT interrupt has occurred, the function tx_char () takes the sm2 key and accesses the TRANSMIT buffer (step 312). The data transferred to the WAB 234 is transferred to the TRANSMIT buffer 248 and then the target. (Step 314) It is determined whether all data has been sent to the target 250, and returns the sm2 key if it has been sent (steps 316-318).

304단계에서 I2C Write가 아니라고 판단되면, I2C Read 인지를 판단한다.(320단계) 320단계에서 I2C Read라고 판단되면, RECEIVE 인터럽트 발생여부를 체크하여, RECEIVE 인터럽트가 발생되었다고 판단되면, 함수 rx_isr()는 sm3 키를 가지고 가서 타겟(250)으로부터 입력된 데이터를 RAB(232)에 엑세스한다.(322-324단계) 모든 데이터를 RAB(232)에 트랜스퍼한 후 sm3 키를 반납한다.(326단계) 함수 I2C Read()는 sm4 키를 가지고 가서 리드를 요구한 프로세스(도 2의 경우는 제2프로세스)에 엑세스후 데이터를 트랜스퍼한다.(328-330단계) 모든 데이터가 리드되었는지를 판단하여, 리드되었으면 sm4 키를 반납한다.(332-334단계)If it is determined in step 304 that it is not I2C Write, it is determined whether it is I2C Read. Takes the sm3 key and accesses the data input from the target 250 to the RAB 232 (steps 322 to 324). Transfers all data to the RAB 232 and returns the sm3 key (step 326). The function I2C Read () takes the sm4 key and transfers the post-access data to the process that requested the read (second process in FIG. 2). (Steps 328-330) If so, return the sm4 key (steps 332-334).

본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 사상내에서 당업자에 의한 변형이 가능함은 물론이다. 즉 본 발명에서는 I2C 프로토콜로 통신하는 경우를 예로들어 셜명하였으나, SPI 및 UART 프로토콜로 통신하는 경우에도 당연히 적용할 수 있다.The present invention is not limited to the above-described embodiment, and of course, modifications may be made by those skilled in the art within the spirit of the present invention. In other words, in the present invention, the case of communicating through the I2C protocol is taken as an example, but it can be naturally applied to the case of communicating through the SPI and UART protocols.

본 발명에 따르면, 멀티 프로세스 시스템에서 프로세스가 타겟의 데이터를 동시에 엑세스할 때 충돌을 방지할 수 있다.According to the present invention, a collision can be prevented when a process simultaneously accesses data of a target in a multi-process system.

Claims (5)

멀티 프로세스 시스템에서 프로세스가 타겟(Target)의 데이터를 엑세스하기 위한 방법에 있어서,A method for a process to access data of a target in a multi-process system, 상기 멀티 프로세스가 타겟의 데이터를 동시에 라이트하기 위해 필요한 제1 및 제2키를 만드는 제1단계;A first step of creating first and second keys necessary for the multi-process to simultaneously write data of a target; 어느 하나의 프로세스가 타겟에 데이터를 라이트하고자 하는 경우, 상기 제1단계에서 만든 제1키를 가지고 가서 데이터를 버퍼링한 후 상기 제1키를 반납하는 제2단계;If any one of the processes wants to write data to the target, taking the first key created in the first step, buffering the data, and returning the first key; 트랜스미트 인터럽트가 발생되었는지를 판단하여, 발생되었으면 상기 제2키를 가지고 가서 상기 제3단계에서 버퍼링된 데이터를 타겟으로 전송하는 제3단계;A third step of determining whether a transmission interrupt has occurred, and if so, taking the second key and transmitting data buffered in the third step to a target; 상기 제2단계에서 제1키가 반납된 경우, 트랜스미트 인터럽트가 발생되었는지를 판단하여, 발생되었으면 다른 하나의 프로세스가 타겟에 데이터를 라이트하기 위해 상기 제1키를 가지고 가서 데이터를 버퍼링하는 제4단계; 및When the first key is returned in the second step, it is determined whether a transmission interrupt has occurred, and if so, a fourth process that takes another first process and takes the first key to buffer data to write data to a target. step; And 모든 데이터가 타겟으로 전송되었는지를 판단하여, 전송되었으면 상기 제2키를 반납하는 제5단계를 포함하는 것을 특징으로 하는 멀티 프로세스 시스템에서 데이터 라이트 방법.And a fifth step of determining whether all data has been transmitted to the target, and returning the second key if it has been transmitted. 제1항에 있어서,The method of claim 1, 상기 제1 및 제2키를 가지고 간 상태는 플레그를 "O" 으로 설정하고, 반납한 상태는 플레그를 "1"로 설정하는 것을 특징으로 하는 멀티프로세스 시스템에서 데이터 라이트 방법.And a state in which the first and second keys are taken sets the flag to " O " and the returned state sets the flag to " 1 ". 멀티 프로세스 시스템에서 프로세스가 타겟의 데이터를 엑세스하기 위한 방법에 있어서,A method for a process to access data of a target in a multi-process system, 상기 멀티 프로세스가 타겟의 데이터를 동시에 리드하기 위해 필요한 제3 및 제4키를 만드는 제1단계;A first step of creating third and fourth keys necessary for the multi-process to simultaneously read data of a target; 리시브 인터럽트가 발생되었는지를 판단하여, 발생되었으면 상기 제3키를 가지고 가서 타겟으로부터 입력된 데이터를 버퍼링하는 제2단계;Determining whether a receive interrupt has occurred, and if so, taking the third key and buffering data input from a target; 상기 제2단계에서 모든 데이터가 버퍼링되었는지를 판단하여, 버퍼링되었으면 상기 제3키를 반납하는 제3단계;A third step of determining whether all data is buffered in the second step, and returning the third key if buffered; 상기 제4키를 가지고 가서 상기 제3단계에서 버퍼링된 데이터를, 리드를 요청한 어느 하나의 프로세스로 전송하는 제4단계;A fourth step of taking the fourth key and transmitting the data buffered in the third step to one of the processes requesting read; 상기 제3단계에서 제3키가 반납된 경우, 리시브 인터럽트가 발생되었는지를 판단하여, 발생되었으면 다른 하나의 프로세스가 타겟으로부터 데이터를 리드하기 위해 상기 제3키를 가지고 가서 입력된 데이터를 버퍼링하는 제5단계; 및When the third key is returned in the third step, it is determined whether a receive interrupt has occurred, and if so, another process takes the third key and buffers the input data to read data from a target. Step 5; And 모든 데이터가 리드되었는지를 판단하여, 리드되었으면 상기 제4키를 반납하는 제6단계를 포함하는 것을 특징으로 하는 멀티 프로세스 시스템에서 테이터 리드 방법.And a sixth step of determining whether all the data has been read and returning the fourth key if the read has been performed. 제3항에 있어서,The method of claim 3, 상기 제3 및 제4키를 가지고 간 상태는 플레그를 "O" 으로 설정하고, 반납한 상태는 플레그를 "1"로 설정하는 것을 특징으로 하는 멀티 프로세스 시스템에서 데이터 리드 방법.The state of carrying the third and fourth keys sets the flag to "O", and the returning state sets the flag to "1". 복수개의 프로세스와, 상기 프로세스의 엑세스 대상인 타겟과, 상기 타겟을 구동하는 타겟 구동부를 구비한 멀티 프로세스 시스템의 데이터 엑세스 장치에 있어서,A data access apparatus of a multi-process system having a plurality of processes, a target which is an access target of the process, and a target driver for driving the target, 상기 프로세스들과 상기 타겟 구동부 사이에서 데이터를 버퍼링하는 버퍼부; 및A buffer unit for buffering data between the processes and the target driver; And 상기 복수개의 프로세스와 상기 버퍼부를 제어하여, 복수개의 프로세스가 타겟의 데이터를 동시에 엑세스하기 위해 필요한 복수개의 키를 만들도록 하고, 어느 하나의 프로세스가 상기 키 중의 하나를 가지고 가서 타겟의 데이터를 엑세스하도록 하며, 엑세스가 끝난 후에는 가지고 간 키를 반납하도록 하고, 어느 하나의 프로세스가 상기 키 중 하나를 가지고 간 경우 다른 프로세스가 타겟의 데이터를 엑세스하지 못하도록 하는 제어부를 포함하는 것을 특징으로 하는 멀티 프로세스 시스템의 데이터 엑세스 장치.Control the plurality of processes and the buffer unit to allow a plurality of processes to create a plurality of keys necessary for accessing data of a target at the same time, and to allow any one process to take one of the keys and access the target's data. And a control unit for returning a key taken after the access is finished, and preventing another process from accessing data of a target when any one process carries one of the keys. Data access device.
KR1019970058239A 1997-11-05 1997-11-05 Method for writing/reading data and data access apparatus in multi-process system KR100252084B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970058239A KR100252084B1 (en) 1997-11-05 1997-11-05 Method for writing/reading data and data access apparatus in multi-process system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970058239A KR100252084B1 (en) 1997-11-05 1997-11-05 Method for writing/reading data and data access apparatus in multi-process system

Publications (2)

Publication Number Publication Date
KR19990038489A KR19990038489A (en) 1999-06-05
KR100252084B1 true KR100252084B1 (en) 2000-04-15

Family

ID=19524201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970058239A KR100252084B1 (en) 1997-11-05 1997-11-05 Method for writing/reading data and data access apparatus in multi-process system

Country Status (1)

Country Link
KR (1) KR100252084B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631815B (en) * 2021-03-10 2021-08-17 国能信控互联技术有限公司 Inter-process communication method and system based on COM cross-process calling and shared memory

Also Published As

Publication number Publication date
KR19990038489A (en) 1999-06-05

Similar Documents

Publication Publication Date Title
US5428799A (en) Redirection of interrupts to microprocessors
US4975833A (en) Multiprocessor system which only allows alternately accessing to shared memory upon receiving read and write request signals
US5408627A (en) Configurable multiport memory interface
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
KR100285956B1 (en) Apparatus and method for controlling synchronous and asynchronous devices connected to high speed serial bus
US6112307A (en) Method and apparatus for translating signals between clock domains of different frequencies
KR850007129A (en) Microcomputer system with bus control
US5692137A (en) Master oriented bus bridge
US7340553B2 (en) Data processing device and method for transferring data
JP2591502B2 (en) Information processing system and its bus arbitration system
KR100252084B1 (en) Method for writing/reading data and data access apparatus in multi-process system
KR20020028534A (en) PCI bus controller having DMA interface and HPI of DSP
US5708815A (en) DMA emulation via interrupt muxing
JP2727514B2 (en) Transfer destination ID designating circuit
KR100367084B1 (en) DMA controller for the high speed image processor at real time
JP2505298B2 (en) Variable bus width designation method and variable bus width information reception method in split bus
KR100362061B1 (en) Device for controlling local bus
JPH01191234A (en) Communication system between virtual computers
JP2001167047A (en) Bridge device
KR930006234B1 (en) Data-transceiving system between processors
JP3399776B2 (en) Computer and method for transferring peripheral device control data in computer
JPS61134862A (en) Cpu wait time controlling system
KR100191242B1 (en) Apparatus for transferring data between processors
JPH0488457A (en) Data transfer system
KR960042391A (en) DM controller in high speed medium computer system

Legal Events

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

Payment date: 20071221

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee