KR20100100685A - Interface apparatus for communication between processors and communication system - Google Patents

Interface apparatus for communication between processors and communication system Download PDF

Info

Publication number
KR20100100685A
KR20100100685A KR1020100019666A KR20100019666A KR20100100685A KR 20100100685 A KR20100100685 A KR 20100100685A KR 1020100019666 A KR1020100019666 A KR 1020100019666A KR 20100019666 A KR20100019666 A KR 20100019666A KR 20100100685 A KR20100100685 A KR 20100100685A
Authority
KR
South Korea
Prior art keywords
channel
layer
hardware
manager
api
Prior art date
Application number
KR1020100019666A
Other languages
Korean (ko)
Other versions
KR101081881B1 (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 주식회사 코아로직
Publication of KR20100100685A publication Critical patent/KR20100100685A/en
Application granted granted Critical
Publication of KR101081881B1 publication Critical patent/KR101081881B1/en

Links

Images

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/17356Indirect interconnection networks
    • G06F15/17362Indirect interconnection networks hierarchical topologies
    • 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/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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

Abstract

PURPOSE: An interface device for communication between processors and a communication system are provided to supply a flexible, symmetrical, and standardized interface for communication between a host processor and a sub processor. CONSTITUTION: The second layer(L2) manages a logical channel state and a physical channel state of a hardware channel for communication with a counterpart processor. The second layer transceives data with the counterpart processor based on the logical channel state and physical channel state. The third layer(L3) comprises one or more hardware interface APIs. The hardware interface API connects the interface device with hardware of the processor based on control by the second layer.

Description

프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 {Interface Apparatus for Communication Between Processors and Communication System}Interface Apparatus for Communication Between Processors and Communication System

본 발명은 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템에 관한 것으로서, 좀더 상세하게는, 프로세서 간에 통신을 수행하기 위한 인터페이스 모듈의 구조를 대칭적이고 표준화할 수 있는 인터페이스 구성 기술에 관한 것이다.
The present invention relates to an interface device and a communication system for communication between processors, and more particularly, to an interface configuration technology that can symmetrically standardize the structure of an interface module for performing communication between processors.

최근 들어, 유무선 통신 인프라가 구축되고 이를 기반으로 한 다양한 서비스들이 제공되면서 디바이스 내에 구비되는 연산 처리 시스템의 연산 처리량 역시 대폭 증가되고 있다. 따라서 연산 처리 시스템은 그 처리 속도 및 처리 능력을 향상시키기 위하여 다수 개의 프로세서를 구비하는 추세이다. 예컨대 연산 처리 시스템은 주 기능을 수행하기 위한 호스트 프로세서 및 다수 개의 서브 프로세서를 포함할 수 있다.Recently, as the wired / wireless communication infrastructure is established and various services are provided based thereon, the computational throughput of the computational processing system provided in the device has also increased significantly. Accordingly, arithmetic processing systems tend to include a plurality of processors in order to improve their processing speed and processing power. For example, an arithmetic processing system may include a host processor and a plurality of subprocessors for performing main functions.

호스트 프로세서와 서브 프로세서는 특정한 기능을 수행하기 위하여 상호 통신한다. 이러한 통신을 위해서 각각의 프로세서는 하드웨어적으로 구현된 인터페이스와 소프트웨어적으로 구현된 인터페이스를 구비하여야 한다.The host processor and the subprocessor communicate with each other to perform a specific function. For this communication, each processor must have a hardware implemented interface and a software implemented interface.

통상, 상기 소프트웨어적으로 구현된 인터페이스의 경우, 호스트 프로세서와 서브 프로세서는 하드웨어 구조가 다르므로 하드웨어에 의존적으로 설계된다. 따라서 호스트 프로세서와 서브 프로세서의 인터페이스 구성은 서로 비대칭적이며 표준화되어 있지 않다.In general, in the case of the software-implemented interface, since the host processor and the subprocessor have different hardware structures, they are designed depending on hardware. Therefore, the interface configuration of the host processor and the subprocessor is asymmetric and not standardized.

예컨대, 호스트 프로세서와 서브 프로세서와의 통신을 위하여 호스트 프로세서에는 소프트웨어 드라이버로서 호스트 인터페이스가 구비된다. 상기 호스트 인터페이스는 서브 프로세서와의 인터페이스 프로세서를 기술한 코드의 형태로 구현된다. 호스트 프로세서에서 의하여 생성되는 어플리케이션 쓰래드들은 서브 프로세서와의 통신을 위해 상기 코드를 로딩하여 사용한다. 즉, 호스트 프로세서의 어플리케이션 쓰래드들은 코드 형태의 호스트 인터페이스를 공유 자원으로 사용할 수 있다. 서브 프로세서는 호스트 인터페이스의 요청에 따라 동작하고 응답 정보를 송신할 수 있다.For example, the host processor is provided with a host interface as a software driver for communication between the host processor and the subprocessor. The host interface is implemented in the form of code describing an interface processor with a subprocessor. Application threads generated by the host processor load and use the code for communication with the subprocessor. That is, application threads of the host processor may use the host interface in the form of code as a shared resource. The subprocessor may operate according to a request of the host interface and transmit response information.

그런데, 이러한 경우 프로세서에 의해 생성되는 다수 개의 어플리케이션이 쓰래드들이 호스트 인터페이스를 코드 형태로 공유하기 때문에, 코드 관리가 어렵고 시스템의 혼잡도가 증가하는 문제점이 있다.However, in this case, since a plurality of applications generated by the processor share threads with the host interface in code form, code management is difficult and system congestion increases.

뿐만 아니라, 앞서도 언급한 바와 같이 종래에는 호스트 프로세서와 서브 프로세서의 소프트웨어적인 인터페이스가 비대칭적이며 표준화되어 있지 않기 때문에 프로그래밍이 난해하여 개발이 까다로우며 유지 보수도 어려운 문제점이 있다. 또한 하드웨어에 의존성이 높아 다른 프로세서로의 이식 가능성이 떨어지는 문제점도 내포하고 있다.In addition, as mentioned above, since the software interfaces of the host processor and the subprocessor are asymmetrical and not standardized in the related art, programming is difficult and development is difficult and maintenance is difficult. It also depends on hardware, making it less portable to other processors.

따라서, 프로세서들 간, 예컨대 호스트 프로세서 및 서브 프로세서 간에 통신을 위한 소프트웨어 인터페이스 구조에 있어서, 유연하고 대칭적이며 표준화된 인터페이스를 구성할 수 있는 새로운 기술의 개발이 시급히 요구되고 있다.
Therefore, in the software interface structure for communication between processors, for example, between a host processor and a subprocessor, there is an urgent need for the development of a new technology capable of constructing a flexible, symmetrical and standardized interface.

본 발명은 이러한 배경에서 창안된 것으로서, 프로세서 간, 예컨대 호스트 프로세서 및 서브 프로세서 간에 통신을 위하여, 유연하고 대칭적이며 표준화된 인터페이스 구성을 제공할 수 있는 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템을 제공하는데 그 기술적 과제가 있다.
SUMMARY OF THE INVENTION The present invention, devised in this context, provides an interface device and communication system for communication between processors that can provide a flexible, symmetrical, and standardized interface configuration for communication between processors, such as between a host processor and a subprocessor. There is a technical problem.

이러한 목적을 달성하기 위하여 본 발명은 일 측면(Aspect)에서 프로세서 간의 통신을 위한 인터페이스 장치를 제공한다. 상기 프로세서 간의 통신을 위한 인터페이스 장치는, 상대 프로세서와의 통신을 위하여 프로세서에 구비되는 인터페이스 장치로서, 상위 쓰래드와 상기 인터페이스 장치를 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층과; 상기 제 1 계층의 하위 계층으로서, 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 상대 프로세서와의 데이터 송수신을 처리하는 제 2 계층; 및 상기 제 2 계층의 하위 계층으로서, 상기 제 2 계층에 의한 제어를 기반으로 상기 인터페이스 장치와 상기 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함한다.In order to achieve this object, the present invention provides an interface device for communication between processors in one aspect. The interface device for communication between the processors is an interface device provided in a processor for communication with a counterpart processor, and includes a first layer including at least one application program interface (API) for interworking an upper thread with the interface device; ; As a lower layer of the first layer, a logical channel state and a physical channel state of a hardware channel for communication with a counterpart processor are managed, and based on the logical channel state and the physical channel state, A second layer for processing data transmission and reception; And a third layer as a lower layer of the second layer, the third layer having at least one hardware interface API for interworking the hardware of the interface device and the processor based on the control by the second layer.

상기 제 1 계층의 상기 적어도 하나의 API는, 상기 상위 쓰래드로부터 상기 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및 상기 제 2 계층으로부터 상기 상대 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 상위 쓰래드로 송신하는 수신 API를 포함할 수 있다.The at least one API of the first layer receives a transmission request message requesting data transmission from the upper thread to the counterpart processor and is based on the logical channel state managed by the second layer. A transmission API that determines whether the requested data transmission is possible and requests to perform the requested data transmission to the second layer when the requested data transmission is currently possible; And a reception API for transmitting the information of the received data to the upper thread when the information indicating that the data of the counterpart processor is received from the second layer is received.

상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청할 수 있다. 상기 제 1 계층은, 상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함할 수도 있다.The transmission API may request to temporarily store information related to the data transmission to the second layer when the requested data transmission is currently impossible. The first layer transmits the temporarily stored data to the second layer after the request for the temporary storage, when the requested data transmission becomes a possible channel state or a preset time elapses, based on the logical channel state. The apparatus may further include a retransmission API requesting to perform the data transmission according to the information associated with the.

상기 제 2 계층은, 상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저와; 상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및 상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저 등을 포함할 수 있다.The second layer logically manages the hardware channel, and requests, cancels, opens, writes, reads, and closes the hardware channel. A channel manager having a plurality of APIs for requesting; A channel transfer manager for transmitting a message to the third layer to control an operation of the hardware channel in response to a request from the channel manager; And a channel state manager for managing a logical channel state and a physical channel state of the hardware channel in association with the channel manager and the channel transfer manager.

상기 채널 매니저에 구비되는 상기 다수 개의 API는 상기 제 1 계층 또는 상기 상대 프로세서로부터의 요청에 따라 데이터를 송신 또는 수신하기 위하여, 상기 하드웨어 채널에 대한 예약을 채널 전송 매니저로 요청하는 요청 API와; 예약된 상기 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 요청을 상기 채널 전송매니저로 전송하는 취소 API와; 상기 하드웨어 채널을 오픈할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 오픈 API와; 오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로 데이터를 송신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 라이트 API와; 오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로부터 데이터를 수신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 리드 API; 및 오픈된 상기 하드웨어 채널을 닫을 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 클로즈 API를 포함할 수 있다.The plurality of APIs included in the channel manager may include: a requesting API for requesting a reservation for the hardware channel to a channel transmission manager in order to transmit or receive data according to a request from the first layer or the counterpart processor; A cancellation API for sending a request to the channel transfer manager to request to cancel the reservation for the reserved hardware channel; An open API for sending a request to the channel transfer manager to open the hardware channel; A write API for transmitting a request to the channel transfer manager to transmit data to the counterpart processor through the open hardware channel; A read API for transmitting a request to the channel transfer manager to request to receive data from the counterpart processor through the open hardware channel; And a closed API for transmitting a request for closing the open hardware channel to the channel transfer manager.

상기 논리적인 채널 상태는, 상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태와; 상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및 상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함할 수 있다. 상기 채널 매니저는 상기 하드웨어 채널의 논리적인 채널 상태를 모니터링면서 상기 채널 상태 매니저로 보고할 수 있다.The logical channel state may include a standby state indicating that the hardware channel is reserved; An active state indicating that data is being transmitted or received via the hardware channel; And a sleep state indicating that the hardware channel can be used. The channel manager may report to the channel state manager while monitoring the logical channel state of the hardware channel.

상기 제 2 계층은, 상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저를 더 포함할 수도 있다.The second layer may further include a buffer manager for storing information related to the data transmission in an internal queue when receiving a request for temporarily storing information related to data transmission from the first layer.

상기 제 2 계층은, 상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및 상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함할 수도 있다. 상기 헤더는 제어 정보, 송신 완료 정보 및 수신 완료 정보 중 어느 하나를 포함할 수도 있다.The second layer may include a header generator configured to generate a header of a predetermined standard including information and add a command for setting the hardware channel to data; And a header parser that parses a header of data received from the hardware channel and transmits the header to the channel manager. The header may include any one of control information, transmission completion information, and reception completion information.

한편, 상술한 기술적 과제를 해결하기 위하여 본 발명은 다른 측면에서 통신 시스템을 제공한다. 상기 통신 시스템은, 제 1 프로세서 및 제 2 프로세서를 포함하며, 상기 제 1 프로세서는 하드웨어 채널을 통하여 상기 제 2 프로세서와 통신하기 위한 제 1 인터페이스 모듈을 구비하고, 상기 제 2 프로세서는 상기 하드웨어 채널을 통하여 상기 제 1 프로세서와 통신하기 위한 제 2 인터페이스 모듈을 구비할 수 있다.On the other hand, in order to solve the above technical problem, the present invention provides a communication system in another aspect. The communication system includes a first processor and a second processor, the first processor having a first interface module for communicating with the second processor through a hardware channel, the second processor providing the hardware channel. A second interface module for communicating with the first processor may be provided.

상기 제 1 인터페이스 모듈은, 상기 제 1 프로세서의 어플리케이션 쓰래드와 상기 제 1 인터페이스 모듈을 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층과; 상기 제 1 계층의 하위 계층으로서, 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 제 2 프로세서와의 데이터 송수신을 처리하는 제 2 계층; 및 상기 제 2 계층의 하위 계층으로서, 상기 제 2 계층에 의한 제어를 기반으로 상기 제 1 인터페이스 모듈과 상기 제 1 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함할 수 있다. 상기 제 2 인터페이스 모듈은 상기 제 1 인터페이스 모듈에 상응하는 구성을 가질 수 있다.The first interface module includes: a first layer including at least one application program interface (API) for interworking an application thread of the first processor and the first interface module; As a lower layer of the first layer, the logical channel state and the physical channel state of the hardware channel is managed, and the data transmission and reception with the second processor based on the logical channel state and the physical channel state Second layer; And a third layer as a lower layer of the second layer, the third layer including at least one hardware interface API for interworking hardware of the first interface module and the first processor based on control by the second layer. Can be. The second interface module may have a configuration corresponding to the first interface module.

상기 제 1 계층의 상기 적어도 하나의 API는, 상기 어플리케이션 쓰래드로부터 상기 제 2 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및 상기 제 2 계층으로부터 상기 제 2 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 어플리케이션 쓰래드로 송신하는 수신 API를 포함할 수 있다.The at least one API of the first layer receives a transmission request message requesting data transmission from the application thread to the second processor and based on the logical channel state managed by the second layer. A transmission API that determines whether the requested data transmission is currently possible, and requests to perform the requested data transmission to the second layer if the requested data transmission is currently possible; And a reception API for transmitting the information of the received data to the application thread when the information indicating that the data of the second processor has been received from the second layer is received.

상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청할 수 있다. 상기 제 1 계층은, 상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함할 수도 있다.The transmission API may request to temporarily store information related to the data transmission to the second layer when the requested data transmission is currently impossible. The first layer transmits the temporarily stored data to the second layer after the request for the temporary storage, when the requested data transmission becomes a possible channel state or a preset time elapses, based on the logical channel state. The apparatus may further include a retransmission API requesting to perform the data transmission according to the information associated with the.

상기 제 2 계층은, 상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저와; 상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및 상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저를 포함할 수 있다.The second layer logically manages the hardware channel, and requests, cancels, opens, writes, reads, and closes the hardware channel. A channel manager having a plurality of APIs for requesting; A channel transfer manager for transmitting a message to the third layer to control an operation of the hardware channel in response to a request from the channel manager; And a channel state manager managing the logical channel state and the physical channel state of the hardware channel in association with the channel manager and the channel transfer manager.

상기 논리적인 채널 상태는, 상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태와; 상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및 상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함할 수 있다.The logical channel state may include a standby state indicating that the hardware channel is reserved; An active state indicating that data is being transmitted or received via the hardware channel; And a sleep state indicating that the hardware channel can be used.

상기 제 2 계층은, 상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저와; 상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및 상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함할 수 있다.
The second layer may include: a buffer manager configured to store information related to the data transmission in an internal queue when receiving a request for temporarily storing information related to data transmission from the first layer; A header generator for generating a header of a predetermined standard including information and adding a command for setting the hardware channel to data; And a header parser that parses a header of data received from the hardware channel and transmits the header to the channel manager.

이상 설명한 바와 같이, 본 발명에 따르면 프로세서 간의 통신을 위한 인터페이스 모듈을 계층적으로 분류하고 대칭적이고 표준화된 구성을 제공할 수 있는 장점이 있다.
As described above, according to the present invention, an interface module for inter-processor communication can be classified hierarchically and a symmetrical and standardized configuration can be provided.

도 1은 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치를 구비하는 통신 시스템의 구성을 도시하는 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치의 구성을 도시하는 블록도이다.
도 3은 도 2에 도시된 인터페이스 장치의 동작 원리를 설명하기 위한 예시도이다.
도 4는 호스트 프로세서와 멀티미디어 프로세서의 인터페이스 관련 하드웨어 구조를 나타내는 블록도이다.
도 5는 헤더 생성자에 의하여 생성되는 헤더에 삽입되는 정보들을 설명하기 위한 테이블들을 도시하는 예시도이다.
도 6은 커맨드 타입이 'Control'인 헤더의 구조를 도시하는 예시도이다
도 7은 커맨드 타입이 'Ack'인 헤더의 구조를 도시하는 예시도이다.
도 8은 커맨드 타입이 'Data'인 헤더의 구조를 도시하는 예시도이다.
1 is a block diagram showing a configuration of a communication system including an interface device for communication between processors according to a preferred embodiment of the present invention.
2 is a block diagram illustrating a configuration of an interface device for communication between processors according to a preferred embodiment of the present invention.
3 is an exemplary diagram for describing an operating principle of the interface device shown in FIG. 2.
4 is a block diagram illustrating a hardware structure related to an interface between a host processor and a multimedia processor.
5 is an exemplary diagram illustrating tables for explaining information inserted into a header generated by a header generator.
6 is an exemplary diagram showing the structure of a header whose command type is 'Control'.
7 is an exemplary diagram showing the structure of a header whose command type is 'Ack'.
8 is an exemplary diagram showing the structure of a header whose command type is 'Data'.

이하, 본 발명이 속하는 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사항을 용이하게 이해할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 이하에 설명할 본 발명의 바람직한 실시예에서는 내용의 명료성을 위하여 특정한 기술 용어를 사용한다. 하지만 본 발명은 그 선택된 특정 용어에 한정되지는 않으며, 각각의 특정 용어가 유사한 목적을 달성하기 위하여 유사한 방식으로 동작하는 모든 기술적 동의어를 포함함을 미리 밝혀둔다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily understand the technical matters of the present invention. In the preferred embodiment of the present invention described below, specific technical terms are used for clarity of content. The invention, however, is not limited to the particular term selected, and it is to be understood that each specific term includes all technical synonyms that operate in a similar manner to achieve a similar purpose.

도 1은 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치를 구비하는 통신 시스템의 구성을 도시하는 블록도이다.1 is a block diagram showing a configuration of a communication system including an interface device for communication between processors according to a preferred embodiment of the present invention.

도 1에 도시된 바와 같이, 제 1 프로세서, 예컨대 호스트 프로세서(HP)와 제2 프로세서, 예컨대 멀티미디어 프로세서(MP)는 서로 통신할 수 있다. 상기 멀티미디어 프로세서(MP)는 호스트 프로세서(HP)와 연동하는 서브 프로세서로서 이는 실시의 한 예일 뿐 한정된 사항은 아님은 물론이다.As shown in FIG. 1, a first processor such as a host processor HP and a second processor such as a multimedia processor MP may communicate with each other. The multimedia processor MP is a sub-processor interworking with the host processor HP, which is only an example of the embodiment and is not limited thereto.

호스트 프로세서(HP)는 호스트의 기능을 수행하기 위한 어플리케이션 쓰래드(Application Thread)(1) 및 멀티미디어 프로세서(MP)와 통신하기 위한 제 1 인터페이스 모듈(2)을 구비할 수 있다. 멀티미디어 프로세서(MP)는 메인 프로세서인 호스트 프로세서(HP)의 명령을 기반으로 멀티미디어 기능을 수행하기 위한 어플리케이션 쓰래드(4) 및 호스트 프로세서(HP)와 통신하기 위한 제 2 인터페이스 모듈(3)을 구비할 수 있다.The host processor HP may include an application thread 1 for performing a function of a host and a first interface module 2 for communicating with a multimedia processor MP. The multimedia processor MP may include an application thread 4 for performing multimedia functions and a second interface module 3 for communicating with the host processor HP based on a command of a host processor HP which is a main processor. Can be.

제 1 인터페이스 모듈(2)은, 계층(Layer)적인 관점에서, 호스트 프로세서(HP)의 어플리케이션 쓰래드(1)와 하드웨어 사이에 위치할 수 있으며, 예컨대 호스트 프로세서(HP)에 의하여 수행되는 쓰래드일 수 있다. 이러한 제 1 인터페이스 모듈(2)은 상위 계층인 호스트 프로세서(HP)의 어플리케이션 쓰래드(1)와 하위 계층인 호스트 프로세서(HP)의 하드웨어와 연동하면서, 멀티미디어 프로세서(MP)와의 데이터 송수신을 처리할 수 있다.The first interface module 2 may be located between the application thread 1 of the host processor HP and the hardware from a layer perspective, for example, the number of threads executed by the host processor HP. have. The first interface module 2 may process data transmission and reception with the multimedia processor MP while interworking with the application thread 1 of the upper layer host processor HP and the hardware of the lower layer host processor HP. have.

제 2 인터페이스 모듈(3)은, 계층(Layer)적인 관점에서, 멀티미디어 프로세서(MP)의 어플리케이션 쓰래드(4)와 하드웨어 사이에 위치할 수 있으며, 예컨대 멀티미디어 프로세서(MP)에 의하여 수행되는 쓰래드일 수 있다. 이러한 제 2 인터페이스 모듈(3)은 상위 계층인 멀티미디어 프로세서(MP)의 어플리케이션 쓰래드(4)와 하위 계층인 멀티미디어 프로세서(MP)의 하드웨어와 연동하면서, 호스트 프로세서(HP)와의 데이터 송수신을 처리할 수 있다.The second interface module 3 may be located between the application thread 4 and the hardware of the multimedia processor MP in a hierarchical sense, and may be a thread executed by the multimedia processor MP, for example. have. The second interface module 3 may process data transmission / reception with the host processor HP while interworking with the application thread 4 of the upper layer multimedia processor MP and the hardware of the lower layer multimedia processor MP. have.

상기 제 1 인터페이스 모듈(2)과 제 2 인터페이스 모듈(3)은 동일한 구성을 가질 수 있다. 즉, 호스트 프로세서(HP)와 그 서브프로세서인 멀티미디어 프로세서(MP)의 통신을 위한 소프트웨어적인 인터페이스 구성은 양자가 동일하며 대칭적이며, 표준화된 구성을 갖는다.The first interface module 2 and the second interface module 3 may have the same configuration. That is, the software interface configuration for communication between the host processor HP and its subprocessor, the multimedia processor MP, is identical, symmetrical, and standardized.

이하에서는 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치의 상세한 구성 및 동작을 설명하기로 한다. 이하에서 설명하는 인터페이스 장치는 상기 제 1 인터페이스 모듈(2) 및 상기 제 2 인터페이스 모듈(3)에 동일하게 적용될 수 있다.Hereinafter, a detailed configuration and operation of an interface device for communication between processors according to a preferred embodiment of the present invention will be described. The interface device described below may be equally applied to the first interface module 2 and the second interface module 3.

도 2는 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치의 구성을 도시하는 블록도이다. 또한 도 3은 도 2에 도시된 인터페이스 장치의 동작 원리를 설명하기 위한 예시도이다.2 is a block diagram illustrating a configuration of an interface device for communication between processors according to a preferred embodiment of the present invention. 3 is an exemplary diagram for describing an operating principle of the interface device shown in FIG. 2.

도 2 내지 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치(이하, 인터페이스 장치로 약칭)(10)는 상위 쓰래드(5), 예컨대 어플리케이션 쓰래드와 하위 계층인 하드웨어 사이에서 수행되는 쓰래드의 형태로 구현될 수 있다. 상기 인터페이스 장치(10)는 제 1 계층(L1), 제 2 계층(L2) 및 제 3 계층(L3)를 포함할 수 있다.2 to 3, an interface device (hereinafter, abbreviated as interface device) 10 for communication between processors according to a preferred embodiment of the present invention is a higher thread 5, for example, an application thread and lower layer hardware. It can be implemented in the form of a thread executed in between. The interface device 10 may include a first layer L1, a second layer L2, and a third layer L3.

제 1 계층(L1)은 상위 계층과의 접속을 수행하기 위한 상위 접속 계층(Upper Access Layer)을 의미할 수 있다. 제 1 계층(L1)은 상위 쓰래드(5)와 제 2 계층(L2)를 연동시키기 위한 다수 개의 API(Application Program Interface)를 구비할 수 있다. 상기 API는 인터페이스 장치(10) 내에서 사용되는 전용 API로서 정해진 기능을 수행할 수 있다. 예를 들면, 제 1 계층(L1)은 전송 API(Send API)(22), 재전송 API(Resend API)(24) 및 수신 API(Receive API)(26) 등을 구비할 수 있다.The first layer L1 may mean an upper access layer for performing access to an upper layer. The first layer L1 may include a plurality of application program interfaces (APIs) for interworking the upper thread 5 and the second layer L2. The API may perform a predetermined function as a dedicated API used in the interface apparatus 10. For example, the first layer L1 may include a Send API 22, a Resend API 24, a Receive API 26, and the like.

상기 전송 API(22)는 상위 쓰래드(5)로부터 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 하드웨어 채널의 논리적인 채널 상태에 따라 요청된 데이터 송신이 가능한지의 여부를 판단한 후, 그 판단 결과에 따라 제 2 계층(L2)으로 요청된 데이터 송신의 수행을 요청하거나 또는 데이터 전송 관련 정보를 임시 저장할 것을 요청할 수 있다.The transmission API 22 receives a transmission request message requesting data transmission from the upper thread 5 to the counterpart processor, determines whether or not the requested data transmission is possible according to the logical channel state of the hardware channel. According to the result of the determination, the second layer L2 may request to perform the requested data transmission or request to temporarily store the data transmission related information.

예를 들어, 상기 전송 API(22)는 상위 쓰래드(5)로부터 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지가 수신한 후, 상기 제 2 계층(L2)의 채널 상태 매니저(60)에게 요청된 데이터를 송신할 하드웨어 채널의 논리적인 채널 상태를 질의하여 응답을 수신한 후, 그 응답을 기반으로 하여 요청된 데이터 송신의 수행이 가능한지의 여부를 판단할 수 있다.For example, the transmission API 22 requests the channel state manager 60 of the second layer L2 after receiving a transmission request message for requesting data transmission from the upper thread 5 to the counterpart processor. After receiving a response by querying a logical channel state of a hardware channel to which the data is to be transmitted, it may be determined whether the requested data transmission is possible based on the response.

상기 하드웨어 채널의 논리적인 채널 상태는 스탠바이(Standby) 상태, 액티브(Active) 상태, 슬립(Sleep) 상태 중 어느 하나일 수 있다. 상기 스탠바이 상태는 하드웨어 채널이 이미 예약되어 있음을 나타내는 상태이며, 상기 액티브 상태는 상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 상태이다. 또한, 상기 슬립 상태는 하드웨어 채널이 예약되거나 사용되고 있지 않음을 나타내는 상태이다.The logical channel state of the hardware channel may be any one of a standby state, an active state, and a sleep state. The standby state is a state indicating that a hardware channel is already reserved, and the active state is a state indicating that data is being transmitted or received through the hardware channel. In addition, the sleep state is a state indicating that a hardware channel is not reserved or used.

상기 전송 API(22)는 채널 상태 매니저(60)로부터 수신된 응답에서 현재 하드웨어 채널의 논리적인 채널 상태가 슬립 상태일 경우 요청된 데이터 송신이 가능한 것으로 판단할 수 있으며, 반면 현재 하드웨어 채널의 논리적인 상태가 스탠바이 상태 또는 액티브 상태일 경우 요청된 데이터 송신이 현재에는 불가능한 것으로 판단할 수 있다.The transmission API 22 may determine that the requested data transmission is possible when the logical channel state of the current hardware channel is in the sleep state in the response received from the channel state manager 60, while the logical channel of the current hardware channel is available. If the state is a standby state or an active state, it may be determined that the requested data transmission is currently impossible.

이러한 판단 결과, 요청된 데이터 송신이 사용이 현재 가능할 경우, 전송 API(22)는 제 2 계층(L2)의 채널 매니저(40)로 요청된 데이터 송신을 수행할 것을 나타내는 요청을 전송할 수 있다. 반면 요청된 데이터 송신이 현재 불가능할 경우, 전송 API(22)는 제 2 계층(L2)의 버퍼 매니저(30)로 상기 요청된 데이터 송신과 관련된 정보를 임시 저장할 것을 요청할 수 있다.As a result of this determination, if the requested data transmission is currently available, the transmission API 22 may send a request indicating to perform the requested data transmission to the channel manager 40 of the second layer L2. On the other hand, if the requested data transmission is currently impossible, the transmission API 22 may request the buffer manager 30 of the second layer L2 to temporarily store the information related to the requested data transmission.

상기 재전송 API(24)는 상기 전송 API(22)가 상기 요청된 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하였을 경우, 논리적인 채널 상태가 데이터 송신이 가능한 상태로 변하거나 또는 미리 설정된 시간이 경과한 후 수행하지 못한 데이터 송신을 제 2 계층(L2)의 채널 매니저(40)에게 다시 요청하는 기능을 수행할 수 있다.When the retransmission API 24 requests the transmission API 22 to temporarily store information related to the requested data transmission, the logical channel state is changed to a state in which data transmission is possible or a predetermined time has elapsed. It may perform a function of requesting again to the channel manager 40 of the second layer (L2) that has not been performed.

예를 들면, 재전송 API(24)는 상기 전송 API(22)가 상기 요청된 데이터 송신과 관련된 정보를 임시 저장할 것을 버퍼 매니저(30)에게 요청한 후, 채널 상태 매니저(60)로부터 하드웨어 채널의 논리적인 채널 상태가 데이터 송신이 가능한 채널 상태, 예컨대 슬립 상태로 바뀌었음을 나타내는 정보를 수신하거나 또는 미리 설정된 시간이 경과되면, 채널 매니저(40)에게 버퍼 매니저(30)에 임시로 저장된 데이터 전송 관련 정보에 따라 데이터 송신을 수행하라는 요청을 송신할 수 있다.For example, the retransmission API 24 requests the buffer manager 30 to temporarily store the information related to the requested data transmission after the transmission API 22 requests the logical state of the hardware channel from the channel state manager 60. When the channel state receives information indicating that the channel state has changed to a state in which data can be transmitted, for example, a sleep state, or when a predetermined time elapses, the channel manager 40 transmits the information related to the data transmission related information temporarily stored in the buffer manager 30. Accordingly, a request may be sent to perform data transmission.

수신 API(26)은 제 2 계층(L2)으로부터 상대 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 이를 상위 쓰래드(5)에 알리는 기능을 수행할 수 있다. 예를 들면, 수신 API(26)는 제 2 계층의 채널 매니저(40)로부터 상대 프로세서의 데이터가 수신되었음을 알리는 정보를 수신할 수 있으며, 수신된 데이터의 관련 정보를 상위 쓰래드(5)로 송신할 수 있다.The reception API 26 may perform a function of notifying the upper thread 5 when the information indicating that the data of the counterpart processor is received from the second layer L2 is received. For example, the reception API 26 may receive information indicating that the data of the counterpart processor has been received from the channel manager 40 of the second layer, and transmit the related information of the received data to the upper thread 5. Can be.

한편, 제 2 계층(L2)은 제 1 계층(L1)의 하위 계층인 논리 계층(Logical Layer)일 수 있다. 상기 제 2 계층(L2)는 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 상대 프로세서와의 데이터 송수신을 처리하는 기능을 수행할 수 있다.Meanwhile, the second layer L2 may be a logical layer that is a lower layer of the first layer L1. The second layer (L2) manages the logical channel state and the physical channel state of the hardware channel for communication with the counterpart processor, and the data with the counterpart processor based on the logical channel state and the physical channel state. Function to handle transmission and reception.

이러한 제 2 계층(L2)은 버퍼 매니저(Buffer Manager)(30), 채널 매니저(Channel Manager)(40), 채널 전송 매니저(Channel Transfer Manager)(50), 채널 상태 매니저(Channel Status Manager)(60), 헤더 생성자(Header Maker)(70), 헤더 파서(Header Parser)(80) 등을 구비할 수 있다.The second layer L2 includes a buffer manager 30, a channel manager 40, a channel transfer manager 50, and a channel status manager 60. ), A header maker 70, a header parser 80, and the like.

상기 버퍼 매니저(30)는 제 1 계층(L1)의 전송 API(22)의 요청에 따라 데이터 송신 관련 정보를 저장하는 기능을 수행할 수 있다. 상기 버퍼 매니저(30)는 데이터를 저장할 수 있는 큐(Queue)(32)를 구비할 수 있다. 이러한 버퍼 매니저(30)는 전송 API(22)로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청이 수신되면, 상기 데이터 송신과 관련된 정보를 내부의 큐(32)에 저장할 수 있다. 저장된 데이터 송신 관련 정보는 재전송 시에 사용될 수 있다.The buffer manager 30 may perform a function of storing data transmission related information according to a request of the transport API 22 of the first layer L1. The buffer manager 30 may include a queue 32 for storing data. When the buffer manager 30 receives a request for temporarily storing information related to data transmission from the transmission API 22, the buffer manager 30 may store the information related to the data transmission in an internal queue 32. Stored data transmission related information may be used in retransmission.

채널 매니저(40)는 하드웨어 채널을 논리적으로 관리하며, 그 하드웨어 채널의 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close) 등을 채널 전송 매니저에게 요청하는 기능을 수행할 수 있다. 이러한 채널 매니저(40)는, 예컨대 요청 API(Request API)(41), 취소 API(Cancel API)(42), 오픈 API(Open API)(43), 라이트 API(Write API)(44), 리드 API(Read API)(45), 클로즈 API(Close API) 등을 포함할 수 있다. 상기 API들은 인터페이스 모듈(10) 내에서 사용되며 각기 고유한 기능을 수행할 수 있다.The channel manager 40 logically manages hardware channels, and requests, cancels, opens, writes, reads, and closes the hardware channels. It can perform a function of requesting a transmission manager. Such a channel manager 40 is, for example, a request API (Request API) 41, a Cancel API (Cancel API) 42, an Open API 43, a Write API 44, a lead. Read API (API) 45, Close API (Close API) and the like. The APIs are used in the interface module 10 and may each perform unique functions.

상기 요청 API(41)은 제 1 계층(L1)의 전송 API(22), 재전송 API(24) 또는 상대 프로세서로부터의 요청에 따라 데이터를 송신 또는 수신하기 위하여, 하드웨어 채널을 예약하라는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 취소 API(42)는 예약된 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 오픈 API(43)는 하드웨어 채널을 오픈할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 라이트 API(44)는 오픈된 하드웨어 채널을 통하여 상대 프로세서로 데이터를 송신할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 리드 API(45) 오픈된 하드웨어 채널을 통하여 상대 프로세서로부터 데이터를 수신할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 클로즈 API(46)는 오픈된 하드웨어 채널을 닫을 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다.The request API 41 channel-transmits a request to reserve a hardware channel in order to transmit or receive data according to a request from the transport API 22, the retransmission API 24, or the counterpart processor of the first layer L1. A function of transmitting to the manager 50 may be performed. The cancellation API 42 may transmit a request for canceling a reservation for a reserved hardware channel to the channel transmission manager 50. The open API 43 may perform a function of transmitting a request for opening a hardware channel to the channel transfer manager 50. The write API 44 may perform a function of transmitting a request to the channel transmission manager 50 to transmit data to the counterpart processor through an open hardware channel. The read API 45 may transmit a request to the channel transfer manager 50 to request to receive data from the counterpart processor through the opened hardware channel. The close API 46 may perform a function of transmitting a request to the channel transfer manager 50 to close the open hardware channel.

한편 채널 매니저(40)는 하드웨어 채널을 논리적으로 관리하면서, 하드웨어 채널의 논리적인 채널 상태를 모니터링하고 이를 채널 상태 매니저(60)에게 보고할 수 있다. 상기 하드웨어 채널의 논리적인 채널 상태는 스탠바이 상태, 액티브 상태, 슬립 상태 중 어느 하나일 수 있다. 앞서도 언급한 바 있듯이, 스탠바이 상태는 하드웨어 채널이 이미 예약되어 있음을 나타내는 상태이며, 액티브 상태는 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 상태이고, 슬립 상태는 하드웨어 채널이 예약되거나 사용되고 있지 않음을 나타내는 상태를 의미할 수 있다.Meanwhile, the channel manager 40 may logically manage the hardware channel, monitor the logical channel state of the hardware channel, and report it to the channel state manager 60. The logical channel state of the hardware channel may be any one of a standby state, an active state, and a sleep state. As mentioned earlier, the standby state indicates that the hardware channel is already reserved, the active state indicates that data is being sent or received through the hardware channel, and the sleep state indicates that the hardware channel is not reserved or in use. It may mean a state indicating no.

이러한 채널 매니저(40)의 동작을 채널 매니저(40)의 API들의 동작과 연계시켜 설명한다. 하드웨어 채널이 슬립 상태인 상태에서, 제 1 계층(L1)으로부터 데이터 송신을 요청하는 요청이 수신되면, 채널 매니저(40)의 요청 API(41)는 채널 전송 매니저(50)로 하드웨어 채널을 예약할 것을 요청할 수 있다. 이에 응답하여 하드웨어 채널이 예약되면, 하드웨어 채널은 스탠바이 상태로 천이한다. 이때 채널 매니저(40)는 하드웨어 채널이 스탠바이 상태로 천이하였음을 채널 상태 매니저(60)에게 보고한다.The operation of the channel manager 40 will be described in connection with the operation of APIs of the channel manager 40. When the hardware channel is in the sleep state, when a request for requesting data transmission is received from the first layer L1, the request API 41 of the channel manager 40 reserves a hardware channel with the channel transmission manager 50. You can ask. In response, if the hardware channel is reserved, the hardware channel transitions to the standby state. At this time, the channel manager 40 reports to the channel state manager 60 that the hardware channel has transitioned to the standby state.

이어서, 채널 매니저(40)의 오픈 API(43)은 예약된 하드웨어 채널을 오픈할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송할 수 있다. 하드웨어 채널이 오픈되면, 하드웨어 채널은 액티브 상태로 천이한다. 이때 채널 매니저(40)는 하드웨어 채널이 액티브 상태로 천이하였음을 채널 상태 매니저(60)에게 보고한다. 다음으로, 채널 매니저(40)의 라이트 API(44)는 채널 전송 매니저(50)로 데이터를 송신할 것을 요청할 수 있다.The open API 43 of the channel manager 40 may then send a request to the channel transfer manager 50 to open the reserved hardware channel. When the hardware channel is open, the hardware channel transitions to the active state. At this time, the channel manager 40 reports to the channel state manager 60 that the hardware channel has transitioned to the active state. Next, the write API 44 of the channel manager 40 may request to transmit data to the channel transfer manager 50.

데이터의 송신이 완료되면, 채널 매니저(40)의 클로즈 API(46)은 채널 전송 매니저(50)에게 하드웨어 채널을 닫을 것을 요청할 수 있다. 이에 따라서 하드웨어 채널이 닫히면, 하드웨어 채널은 슬립 상태로 천이한다. 이때 채널 매니저(40)는 하드웨어 채널이 슬립 상태로 천이하였음을 채널 상태 매니저(60)에게 보고한다.When the transmission of data is complete, the close API 46 of the channel manager 40 may request the channel transfer manager 50 to close the hardware channel. Accordingly, when the hardware channel is closed, the hardware channel transitions to the sleep state. At this time, the channel manager 40 reports to the channel state manager 60 that the hardware channel has transitioned to the sleep state.

한편, 만약, 하드웨어 채널이 예약된 후, 장애 등으로 인하여 요청된 데이터 송신이 정상적으로 이루어지지 못한다는 정보가 외부로부터 수신될 경우, 채널 매니저(40)의 취소 API(42)는 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 메시지를 채널 전송 매니저(50)에게 송신할 수 있다. 하드웨어 채널의 예약이 취소되면, 채널 매니저(40)는 하드웨어 채널이 슬립 상태로 천이하였음을 채널 상태 매니저(60)에게 보고할 수 있다.On the other hand, if the hardware channel is reserved, if information is received from the outside that the requested data transmission is not normally performed due to a failure, etc., the cancellation API 42 of the channel manager 40 is reserved for the hardware channel. A message requesting the cancellation of the message may be transmitted to the channel transmission manager 50. If the reservation of the hardware channel is canceled, the channel manager 40 may report to the channel state manager 60 that the hardware channel has transitioned to the sleep state.

채널 전송 매니저(50)는 채널 매니저(50)로부터의 요청에 따라 하드웨어 채널의 동작을 제어하기 위한 메시지를 제 3 계층(L3)으로 송신하는 기능을 수행할 수 있다. 즉, 채널 전송 매니저(50)은 실질적으로 하드웨어 채널의 동작을 제어하는 기능을 수행할 수 있다. 예컨대 채널 전송 매니저(50)는 하드웨어 채널에 대한 접속, 해제, 데이터 전송, 수신 등을 제어할 수 있다.The channel transmission manager 50 may perform a function of transmitting a message for controlling the operation of the hardware channel to the third layer L3 according to a request from the channel manager 50. That is, the channel transfer manager 50 may substantially perform a function of controlling the operation of the hardware channel. For example, the channel transfer manager 50 may control access, release, data transmission, and reception of the hardware channel.

이러한 채널 전송 매니저(50)는 제 1 모드 및 제 2 모드의 하드웨어 채널을 통한 전송 방식을 지원할 수 있다. 상기 제 1 모드는 레지스터의 설정을 통하여 상대 프로세서의 메모리로 직접 접근하여 데이터를 라이트 또는 리드할 수 있는 하드웨어 채널을 통하여 데이터는 송수신하는, 예컨대 마스터 모드(Master Mode)를 의미할 수 있다. 상기 제 2 모드는 송신 프로세서의 인터페이스 포트에 구비된 FIFO(First In First Out)를 사용하는 하드웨어 채널을 통하여 데이터를 송수신하는, 예컨대 FIFO 모드를 의미할 수 있다.The channel transmission manager 50 may support a transmission scheme through hardware channels of the first mode and the second mode. The first mode may mean, for example, a master mode that transmits and receives data through a hardware channel through which a register can be directly accessed to write or read data by directly accessing a memory of a counterpart processor. The second mode may refer to, for example, a FIFO mode for transmitting and receiving data through a hardware channel using a first in first out (FIFO) provided in an interface port of a transmitting processor.

도 4는 호스트 프로세서와 멀티미디어 프로세서의 인터페이스 관련 하드웨어 구조를 나타내는 블록도로서, 채널 전송 매니저(50)에서 지원하는 제 1 모드 및 제 2 모드의 예를 설명하기 위한 것이다.FIG. 4 is a block diagram illustrating a hardware structure related to an interface between a host processor and a multimedia processor, and illustrates an example of a first mode and a second mode supported by the channel transmission manager 50.

도 4를 참조하면, 멀티미디어 프로세서(MP)는 호스트 프로세서(HP)와 접속하기 위한 인터페이스 포트(6)을 하드웨어로서 구비할 수 있다. 상기 인터페이스 포트(6)는 송수신 포트(7), 레지스터부(8) 및 FIFO(9) 등을 구비할 수 있다.Referring to FIG. 4, the multimedia processor MP may include, as hardware, an interface port 6 for connecting with a host processor HP. The interface port 6 may include a transmission / reception port 7, a register 8, a FIFO 9, and the like.

제 1 모드에서, 호스트 프로세서(HP)는 멀티미디어 프로세서(MP)의 레지스터부(8)의 레지스터들을 설정함으로써 멀티미디어 프로세서(MP) 내부의 메모리, 예컨대 SDRAM(10)에 접근하여 데이터를 리드 또는 라이트할 수 있다. 반면 제 2 모드에서는 FIFO를 활용한다. 예를 들면, 멀티미디어 프로세서(MP)는 데이터 송신을 위하여 FIFO(9) 내에 송신할 데이터를 적재하고 데이터를 송신함을 알리는 이벤트를 호스트 프로세서(HP)로 전송한다. 그러면, 호스트 프로세서(HP)는 FIFO(9)로 접근하여 FIFO(9)에 적재된 데이터를 가져간다.In the first mode, the host processor HP may access the memory inside the multimedia processor MP, for example the SDRAM 10, to read or write data by setting the registers of the register section 8 of the multimedia processor MP. Can be. On the other hand, the second mode utilizes the FIFO. For example, the multimedia processor MP loads data to be transmitted in the FIFO 9 for data transmission and transmits an event to the host processor HP indicating that data is to be transmitted. Then, the host processor HP approaches the FIFO 9 and takes the data loaded in the FIFO 9.

채널 전송 매니저(50)는 하드웨어 채널의 물리적인 상태를 모니터링하고 이를 채널 상태 매니저(60)로 보고할 수 있다. 상기 하드웨어 채널의 물리적인 상태는, 예컨대 오픈(Open) 상태, 클로즈(Close) 상태, 마스터 송신(Master Transfer) 상태, 마스터 수신(Master Receive) 상태, FIFO 송신(FIFO Transfer) 상태, FIFO 수신(FIFO Receive) 상태 등을 포함할 수 있다.The channel transfer manager 50 may monitor the physical state of the hardware channel and report it to the channel state manager 60. The physical state of the hardware channel may include, for example, an open state, a closed state, a master transfer state, a master receive state, a FIFO transfer state, and a FIFO reception state. Receive) may be included.

상기 오픈 상태는 통신을 위한 하드웨어 채널이 물리적으로 오픈되었음을 나타낼 수 있다. 상기 클로즈 상태는 하드웨어 채널이 물리적으로 닫혔음을 나타낼 수 있다. 상기 마스터 송신 상태는 제 1 모드의 하드웨어 채널에서 데이터를 송신함을 나타낼 수 있다. 마스터 수신 상태는 제 1 모드의 하드웨어 채널에서 데이터를 수신함을 나타낼 수 있다. 상기 FIFO 송신 상태는 제 2 모드의 하드웨어 채널에서 데이터를 송신함을 나타낼 수 있다. 상기 FIFO 수신 상태는 제 2 모드의 하드웨어 채널에서 데이터를 수신함을 나타낼 수 있다.The open state may indicate that a hardware channel for communication is physically open. The closed state may indicate that the hardware channel is physically closed. The master transmission state may indicate that data is transmitted in a hardware channel of a first mode. The master reception state may indicate that data is received in the hardware channel of the first mode. The FIFO transmission state may indicate that data is transmitted in a hardware channel of a second mode. The FIFO reception state may indicate that data is received in a hardware channel of a second mode.

한편, 채널 상태 매니저(60)는 채널 매니저(40) 및 채널 전송 매니저(50)와 연동하여 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리할 수 있다. 예를 들면, 채널 상태 매니저(60)는 채널 매니저(40)로부터 하드웨어 채널의 논리적인 채널 상태를 수신한 후 그 정보를 관리한다. 또한 채널 상태 매니저(60)는 채널 전송 매니저(50)로부터 하드웨어 채널의 물리적인 상태를 수신한 후 그 정보를 관리할 수 있다. 이러한 채널 상태 매니저(60)는 외부로부터의 요청, 예컨대 제 1 계층(L1)의 전송 API(22) 또는 재전송 API(24) 등으로부터의 요청에 따라 논리적인 채널 정보 등을 제공할 수도 있다.Meanwhile, the channel state manager 60 may manage the logical channel state and the physical channel state of the hardware channel in cooperation with the channel manager 40 and the channel transfer manager 50. For example, the channel state manager 60 receives a logical channel state of a hardware channel from the channel manager 40 and manages the information. In addition, the channel state manager 60 may manage the information after receiving the physical state of the hardware channel from the channel transfer manager 50. The channel state manager 60 may provide logical channel information according to a request from the outside, for example, a request from the transport API 22 or the retransmission API 24 of the first layer L1.

헤더 생성자는 데이터를 송신할 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행할 수 있다. 헤더 파서는 수신되는 데이터에서 헤더 등을 파싱하여 정보를 분석하는 기능을 수행할 수 있다.The header generator may perform a function of generating a header of a predetermined standard including information and a command for setting a hardware channel to transmit data to the data. The header parser may parse a header or the like from the received data and analyze the information.

도 5는 헤더 생성자에 의하여 생성되는 헤더에 삽입되는 정보들을 설명하기 위한 테이블들을 도시하는 예시도이다.5 is an exemplary diagram illustrating tables for explaining information inserted into a header generated by a header generator.

도 5에 도시된 바와 같이, 헤더 생성자에 의하여 생성되는 헤더에는 커맨드 타입(Command Type), 채널 넘버(Channel Number), ARQ 요청(ARQ 요청), 옵션(Option) 등의 정보가 삽입될 수 있다.As shown in FIG. 5, information such as a command type, a channel number, an ARQ request, an option, and the like may be inserted into a header generated by the header generator.

상기 커맨드 타입은 해당 커맨드의 종류를 구분하기 위한 정보로서, 도 5의 테이블1(T1)에 도시된 바와 같이, 'Control', 'Data', 'Ack'등으로 설정될 수 있다. 상기 'Control'은 제어 커맨드임을 나타내며, 'Data'는 전송 완료를 알리는 커맨드를 의미하며, 'Ack'는 송신 측으로부터 커맨드를 정상적으로 수신하였음을 알리는 커맨드를 의미할 수 있다.The command type is information for identifying the type of the command, and may be set to 'Control', 'Data', 'Ack', and the like as shown in Table 1 (T1) of FIG. 5. 'Control' indicates a control command, 'Data' means a command indicating the completion of the transmission, 'Ack' may mean a command indicating that the command has been normally received from the sender.

상기 채널 넘버는 FIFO 채널의 종류를 지정하기 위한 정보로서, 예컨대 도 5의 테이블2(T2)에 도시된 바와 같이, "FIFO 0, FIFO 1, FIFO 2'등으로 설정될 수 있다. 상기 ARQ 요청은 ARQ의 상대 측으로부터의 정상적으로 데이터를 수신하였음을 나타내는 ARQ를 요구할 것인지의 여부를 지정하기 위한 정보로서, 예컨대 도 5의 테이블3(T3)에 도시된 바와 같이, ARQ의 수신하지 않음을 나타내는 'None ARQ' 또는 ARQ을 전송해줄 것을 수신 측에 요청하는 'ARQ Request'등으로 설정될 수 있다. 상기 옵션은 부가적인 내용에 대한 정보로서, 예컨대 도 5의 테이블4(T4)와 같이 에러 코드나 채널 상태 등을 전달하기 위한 정보들로 설정될 수 있다.The channel number is information for designating the type of the FIFO channel, and may be set to "FIFO 0, FIFO 1, FIFO 2 ', etc., for example, as shown in Table 2 (T2) of FIG. Is information for specifying whether to request an ARQ indicating that data has been normally received from the other party of the ARQ. For example, as shown in Table 3 (T3) of FIG. None ARQ 'or' ARQ Request 'to request the receiver to send ARQ, etc. The option is information about additional contents, for example, an error code or the like as Table 4 (T4) of FIG. It may be set to information for conveying channel status and the like.

도 6, 도 7 및 도 8은 커맨드 타입이 'Control'인 헤더의 구조, 커맨드 타입이 'Ack'인 헤더의 구조 및 커맨드 타입 'Data'인 헤더의 구조를 각각 도시하는 예시도이다.6, 7 and 8 are exemplary views showing the structure of a header having a command type of 'Control', a header having a command type of 'Ack' and a header having a command type of 'Data', respectively.

도 6에 도시된 바와 같이, 커맨드 타입이 'Control'인 헤더는, 예컨대 1비트의 ARQ 요청을 삽입할 수 있는 1비트의 필드, 시리얼 넘버(S/N)를 삽입할 수 있는 5비트의 필드, 채널 넘버를 삽입할 수 있는 2비트의 필드, 제어 커맨드를 삽입할 수 있는 6비트의 필드 등을 포함할 수 있다. 상기 시리얼 넘버는 커맨드를 송신할 때마다 순차적인 고유 번호를 부여하기 위한 것으로서, 예컨대 커맨드가 송신할 때마다 특정한 수(예컨대, '1'등)씩 증가하는 정보일 수 있다.As shown in FIG. 6, a header having a command type of 'Control' may be, for example, a 1-bit field into which 1-bit ARQ request can be inserted and a 5-bit field into which a serial number S / N can be inserted. , A 2-bit field into which a channel number can be inserted, and a 6-bit field into which a control command can be inserted. The serial number is for assigning a sequential unique number each time a command is transmitted. For example, the serial number may be information that increases by a specific number (eg, '1') each time the command is transmitted.

도 7을 참조하면, 커맨드 타입이 'Ack'인 헤더는, 예컨대 1비트의 ARQ 요청을 삽입할 수 있는 1비트의 필드, 시리얼 넘버를 삽입할 수 있는 5비트의 필드, 옵션을 삽입할 수 있는 필드 등을 포함할 수 있다. 한편, 도 8을 참조하면, 커맨드 타입이 'Data'인 헤더는, 예컨대 1비트의 ARQ 요청을 삽입할 수 있는 1비트의 필드, 시리얼 넘버(S/N)를 삽입할 수 있는 5비트의 필드, 채널 넘버를 삽입할 수 있는 2비트의 필드 등을 포함할 수 있다.Referring to FIG. 7, a header having a command type of 'Ack' may include, for example, a 1-bit field into which a 1-bit ARQ request can be inserted, a 5-bit field into which a serial number can be inserted, and an option into which a header can be inserted. Field and the like. Meanwhile, referring to FIG. 8, a header having a command type of 'Data' may be, for example, a 1-bit field into which a 1-bit ARQ request may be inserted and a 5-bit field into which a serial number S / N may be inserted. , A 2-bit field into which a channel number can be inserted.

한편, 제 3 계층(L3)은 제 2 계층(L2)의 하위 계층으로서, 제 2 계층(L2)에 의한 제어를 기반으로 인터페이스 모듈(10)과 프로세서의 하드웨어 자원을 연동시키는 기능을 수행할 수 있다. 이러한 제 3 계층(L3)는 하드웨어 인터페이스부(90)을 포함할 수 있다. 하드웨어 인터페이스부(90)는 하드웨어 자원에 접근하기 위한 다수 개의 하드웨어 인터페이스 API들을 포함할 수 있다.Meanwhile, the third layer L3 is a lower layer of the second layer L2 and may perform a function of interworking the hardware resources of the interface module 10 and the processor based on the control by the second layer L2. have. The third layer L3 may include a hardware interface unit 90. The hardware interface unit 90 may include a plurality of hardware interface APIs for accessing hardware resources.

이상 본 발명에 대하여 그 바람직한 실시예를 예시하여 설명하였지만 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 기술적 사항 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
While the present invention has been described above by way of example thereof, those skilled in the art will variously modify and change the present invention without departing from the technical matters and scope of the present invention as set forth in the claims below. It will be understood that it can be done. Accordingly, modifications to future embodiments of the present invention will not depart from the technology of the present invention.

L1 : 제 1 계층
L2 : 제 2 계층
L3 : 제 3 계층
10 : 인터페이스 모듈
22 : 전송 API(Application Program Interface)
24 : 재전송 API
26 : 수신 API
30 : 버퍼 매니저
40 : 채널 매니저
50 : 채널 전송 매니저
60 : 채널 상태 매니저
70 : 헤더 생성자
80 : 헤더 파서
90 : 하드웨어 인터페이스부
L1: first layer
L2: second layer
L3: third tier
10: interface module
22: transfer API (Application Program Interface)
24: Retransmission API
26: Receive API
30: buffer manager
40: channel manager
50: channel transfer manager
60: channel status manager
70: header constructor
80: header parser
90: hardware interface unit

Claims (16)

상대 프로세서와의 통신을 위하여 프로세서에 구비되는 인터페이스 장치로서,
상위 쓰래드와 상기 인터페이스 장치를 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층;
상기 제 1 계층의 하위 계층으로서, 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 상대 프로세서와의 데이터 송수신을 처리하는 제 2 계층; 및
상기 제 2 계층의 하위 계층으로서, 상기 제 2 계층에 의한 제어를 기반으로 상기 인터페이스 장치와 상기 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
An interface device provided in a processor for communication with a partner processor,
A first layer having at least one API (Application Program Interface) for interworking an upper thread with the interface device;
As a lower layer of the first layer, a logical channel state and a physical channel state of a hardware channel for communication with a counterpart processor are managed, and based on the logical channel state and the physical channel state, A second layer for processing data transmission and reception; And
A lower layer of the second layer, the processor comprising a third layer having at least one hardware interface API for interworking the hardware of the interface device and the processor based on control by the second layer; Interface device for communication between.
상기 제 1 계층의 상기 적어도 하나의 API는,
상기 상위 쓰래드로부터 상기 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및
상기 제 2 계층으로부터 상기 상대 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 상위 쓰래드로 송신하는 수신 API를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The at least one API of the first layer is
Receiving a transmission request message requesting data transmission from the upper thread to the counterpart processor, and determining whether the requested data transmission is currently possible based on the logical channel state managed by the second layer; A transmission API for requesting to perform the requested data transmission to the second layer if the requested data transmission is currently possible; And
And a reception API that transmits the information of the received data to the upper thread when the information indicating that the data of the counterpart processor has been received from the second layer is included.
제 2 항에 있어서, 상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하고,
상기 제 1 계층은,
상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The method of claim 2, wherein the transmission API requests to temporarily store information related to the data transmission to the second layer when the requested data transmission is currently impossible,
The first layer is,
After requesting the temporary storage, when the requested data transmission becomes a possible channel state based on the logical channel state or when a preset time elapses, the temporary storage data is transmitted according to the information related to the temporary stored data transmission to the second layer. And a retransmission API for requesting to perform data transmission.
제 1 항에 있어서, 상기 제 2 계층은,
상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저;
상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및
상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The method of claim 1, wherein the second layer,
A plurality of APIs for logically managing the hardware channel and for requesting, canceling, opening, writing, reading, and closing the hardware channel. A channel manager having a;
A channel transfer manager for transmitting a message to the third layer to control an operation of the hardware channel in response to a request from the channel manager; And
And a channel state manager for managing a logical channel state and a physical channel state of the hardware channel in association with the channel manager and the channel transfer manager.
제 4 항에 있어서, 상기 채널 매니저에 구비되는 상기 다수 개의 API는
상기 제 1 계층 또는 상기 상대 프로세서로부터의 요청에 따라 데이터를 송신 또는 수신하기 위하여, 상기 하드웨어 채널에 대한 예약을 채널 전송 매니저로 요청하는 요청 API;
예약된 상기 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 요청을 상기 채널 전송매니저로 전송하는 취소 API;
상기 하드웨어 채널을 오픈할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 오픈 API;
오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로 데이터를 송신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 라이트 API;
오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로부터 데이터를 수신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 리드 API; 및
오픈된 상기 하드웨어 채널을 닫을 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 클로즈 API를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The method of claim 4, wherein the plurality of APIs provided in the channel manager
A requesting API for requesting a channel transmission manager to make a reservation for the hardware channel in order to transmit or receive data in response to a request from the first layer or the counterpart processor;
A cancellation API for sending a request to the channel transfer manager to request to cancel the reservation for the reserved hardware channel;
An open API for sending a request to the channel transfer manager to request to open the hardware channel;
A write API for transmitting a request to the channel transfer manager requesting to transmit data to the counterpart processor through the opened hardware channel;
A read API for transmitting a request to the channel transfer manager to request to receive data from the counterpart processor through the open hardware channel; And
And a closed API for transmitting a request to the channel transfer manager to close the open hardware channel.
제 4 항에 있어서, 상기 논리적인 채널 상태는,
상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태;
상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및
상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The method of claim 4, wherein the logical channel state,
A standby state indicating that the hardware channel is reserved;
An active state indicating that data is being transmitted or received via the hardware channel; And
And a sleep state indicating that the hardware channel is available for use.
제 6 항에 있어서, 상기 채널 매니저는 상기 하드웨어 채널의 논리적인 채널 상태를 모니터링면서 상기 채널 상태 매니저로 보고하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
7. The interface device of claim 6, wherein the channel manager reports the logical channel state of the hardware channel to the channel state manager.
제 4 항에 있어서, 상기 제 2 계층은,
상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저를 더 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The method of claim 4, wherein the second layer,
And a buffer manager for storing information related to the data transmission in an internal queue when receiving a request for temporarily storing information related to the data transmission from the first layer. Device.
제 4 항에 있어서, 상기 제 2 계층은,
상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및
상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함하고,
상기 헤더는 제어 정보, 송신 완료 정보 및 수신 완료 정보 중 어느 하나를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
The method of claim 4, wherein the second layer,
A header generator for generating a header of a predetermined standard including information and adding a command for setting the hardware channel to data; And
A header parser for parsing a header of data received from the hardware channel and transmitting the header to the channel manager;
And the header includes any one of control information, transmission completion information, and reception completion information.
제 1 프로세서 및 제 2 프로세서를 포함하며,
상기 제 1 프로세서는 하드웨어 채널을 통하여 상기 제 2 프로세서와 통신하기 위한 제 1 인터페이스 모듈을 구비하고, 상기 제 2 프로세서는 상기 하드웨어 채널을 통하여 상기 제 1 프로세서와 통신하기 위한 제 2 인터페이스 모듈을 구비하고,
상기 제 1 인터페이스 모듈은,
상기 제 1 프로세서의 어플리케이션 쓰래드와 상기 제 1 인터페이스 모듈을 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층;
상기 제 1 계층의 하위 계층으로서, 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 제 2 프로세서와의 데이터 송수신을 처리하는 제 2 계층; 및
상기 제 2 계층의 하위 계층으로서, 상기 제 2 계층에 의한 제어를 기반으로 상기 제 1 인터페이스 모듈과 상기 제 1 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함하는 것을 특징으로 하는 통신 시스템.
A first processor and a second processor,
The first processor has a first interface module for communicating with the second processor via a hardware channel, and the second processor has a second interface module for communicating with the first processor via the hardware channel; ,
The first interface module,
A first layer having at least one application program interface (API) for interworking the application thread of the first processor and the first interface module;
As a lower layer of the first layer, the logical channel state and the physical channel state of the hardware channel is managed, and the data transmission and reception with the second processor based on the logical channel state and the physical channel state Second layer; And
A lower layer of the second layer, the third layer having at least one hardware interface API for interworking hardware of the first interface module and the first processor based on control by the second layer; Characterized by a communication system.
제 10 항에 있어서, 상기 제 2 인터페이스 모듈은 상기 제 1 인터페이스 모듈에 상응하는 구성을 가지는 것을 특징으로 하는 통신 시스템.
The communication system of claim 10, wherein the second interface module has a configuration corresponding to the first interface module.
제 10 항에 있어서, 상기 제 1 계층의 상기 적어도 하나의 API는,
상기 어플리케이션 쓰래드로부터 상기 제 2 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및
상기 제 2 계층으로부터 상기 제 2 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 어플리케이션 쓰래드로 송신하는 수신 API를 포함하는 것을 특징으로 하는 통신 시스템.
The method of claim 10, wherein the at least one API of the first layer is
Receives a transmission request message requesting data transmission from the application thread to the second processor, and determines whether the requested data transmission is currently possible based on the logical channel state managed by the second layer. A transmission API for requesting to perform the requested data transmission to the second layer if the requested data transmission is currently possible; And
And a receiving API that transmits the information of the received data to the application thread when the information indicating that the data of the second processor is received from the second layer is received.
제 12 항에 있어서, 상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하고,
상기 제 1 계층은,
상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함하는 것을 특징으로 하는 통신 시스템.
The method of claim 12, wherein the transmission API requests to temporarily store information related to the data transmission to the second layer when the requested data transmission is currently impossible,
The first layer is,
After requesting the temporary storage, when the requested data transmission becomes a possible channel state based on the logical channel state or when a preset time elapses, the temporary storage data is transmitted according to the information related to the temporary stored data transmission to the second layer. And a retransmission API requesting to perform data transmission.
제 10 항에 있어서, 상기 제 2 계층은,
상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저;
상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및
상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저를 포함하는 것을 특징으로 통신 시스템.
The method of claim 10, wherein the second layer,
A plurality of APIs for logically managing the hardware channel and for requesting, canceling, opening, writing, reading, and closing the hardware channel. A channel manager having a;
A channel transfer manager for transmitting a message to the third layer to control an operation of the hardware channel in response to a request from the channel manager; And
And a channel state manager managing the logical channel state and the physical channel state of the hardware channel in association with the channel manager and the channel transfer manager.
제 14 항에 있어서, 상기 논리적인 채널 상태는,
상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태;
상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및
상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
15. The system of claim 14, wherein the logical channel state is:
A standby state indicating that the hardware channel is reserved;
An active state indicating that data is being transmitted or received via the hardware channel; And
And a sleep state indicating that the hardware channel is available for use.
제 14 항에 있어서, 상기 제 2 계층은,
상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저;
상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및
상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함하는 것을 특징으로 하는 통신 시스템.
The method of claim 14, wherein the second layer,
A buffer manager for storing information related to the data transmission in an internal queue when receiving a request for temporarily storing information related to data transmission from the first layer;
A header generator for generating a header of a predetermined standard including information and adding a command for setting the hardware channel to data; And
And a header parser for parsing a header of data received from the hardware channel and transmitting the header to the channel manager.
KR1020100019666A 2009-03-05 2010-03-05 Interface Apparatus for Communication Between Processors and Communication System KR101081881B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090018988 2009-03-05
KR20090018988 2009-03-05

Publications (2)

Publication Number Publication Date
KR20100100685A true KR20100100685A (en) 2010-09-15
KR101081881B1 KR101081881B1 (en) 2011-11-09

Family

ID=43006663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100019666A KR101081881B1 (en) 2009-03-05 2010-03-05 Interface Apparatus for Communication Between Processors and Communication System

Country Status (1)

Country Link
KR (1) KR101081881B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121977A (en) 2018-04-19 2019-10-29 현대일렉트릭앤에너지시스템(주) The interface apparatus that connect high-level platform to low-level device
KR102105534B1 (en) 2019-02-12 2020-04-29 현대일렉트릭앤에너지시스템(주) The interface apparatus that connect high-level cloud platform to low-level tool

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE211564T1 (en) 1993-07-28 2002-01-15 3Com Corp NETWORK STATION WITH MULTIPLE NETWORK ADDRESSES
US20080176546A1 (en) 2007-01-23 2008-07-24 Qualcomm Incorporated Application programming interface (api) for a receiver in a wireless communications device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121977A (en) 2018-04-19 2019-10-29 현대일렉트릭앤에너지시스템(주) The interface apparatus that connect high-level platform to low-level device
KR102105534B1 (en) 2019-02-12 2020-04-29 현대일렉트릭앤에너지시스템(주) The interface apparatus that connect high-level cloud platform to low-level tool

Also Published As

Publication number Publication date
KR101081881B1 (en) 2011-11-09

Similar Documents

Publication Publication Date Title
WO2018035856A1 (en) Method, device and system for implementing hardware acceleration processing
CN100458757C (en) Inter core communication method and apparatus for multi-core processor in embedded real-time operating system
US20020091826A1 (en) Method and apparatus for interprocessor communication and peripheral sharing
US20070277179A1 (en) Information Processing Apparatus, Communication Processing Method, And Computer Program
US8949549B2 (en) Management of ownership control and data movement in shared-memory systems
KR20090095619A (en) Methods, systems, and apparatus for object invocation across protection domain boundaries
US7640549B2 (en) System and method for efficiently exchanging data among processes
CN103999063B (en) The Memory Sharing of processor
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
JP2019512193A (en) Resource Allocation Control in Network Virtualization Scenario
EP2845110B1 (en) Reflective memory bridge for external computing nodes
KR101081881B1 (en) Interface Apparatus for Communication Between Processors and Communication System
US10318362B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
CN103201720A (en) Virtual computer control apparatus, virtual computer control method, virtual computer control program, and integrated circuit
US8799625B2 (en) Fast remote communication and computation between processors using store and load operations on direct core-to-core memory
CN101681345B (en) Processor, processing system, data sharing processing method, and integrated circuit for data sharing processing
US10581748B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
CN104657225B (en) Across the Cell data transmission system of embedded type virtual platform based on OKL4
CN116204487A (en) Remote data access method and device
JP4667299B2 (en) Interprocess communication method
KR100636283B1 (en) Message processing system and method using external storage
KR101148364B1 (en) A dynamic integration among heterogeneous middleware, memory management system and the method for controller in cyber-physical system
US10762011B2 (en) Reflective memory bridge for external computing nodes
JP5477122B2 (en) Computer system, computer system management method, gateway device, and program
US20020083135A1 (en) Memory management for optimal storage of data of any size in memory

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: 20141007

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151204

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee