KR101081881B1 - 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 - Google Patents

프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 Download PDF

Info

Publication number
KR101081881B1
KR101081881B1 KR1020100019666A KR20100019666A KR101081881B1 KR 101081881 B1 KR101081881 B1 KR 101081881B1 KR 1020100019666 A KR1020100019666 A KR 1020100019666A KR 20100019666 A KR20100019666 A KR 20100019666A KR 101081881 B1 KR101081881 B1 KR 101081881B1
Authority
KR
South Korea
Prior art keywords
channel
layer
hardware
manager
api
Prior art date
Application number
KR1020100019666A
Other languages
English (en)
Other versions
KR20100100685A (ko
Inventor
김창제
Original Assignee
주식회사 코아로직
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코아로직 filed Critical 주식회사 코아로직
Publication of KR20100100685A publication Critical patent/KR20100100685A/ko
Application granted granted Critical
Publication of KR101081881B1 publication Critical patent/KR101081881B1/ko

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

Landscapes

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

Abstract

프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템이 개시되어 있다. 프로세서 간의 통신을 위한 인터페이스 장치는, 상대 프로세서와의 통신을 위하여 프로세서에 구비되는 인터페이스 장치로서, 상위 쓰래드와 인터페이스 장치를 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층과, 제 1 계층의 하위 계층으로서, 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상대 프로세서와의 데이터 송수신을 처리하는 제 2 계층 및 그 제 2 계층의 하위 계층으로서, 제 2 계층에 의한 제어를 기반으로 상기 인터페이스 장치와 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함한다. 따라서, 프로세서 간의 통신을 위한 인터페이스 모듈을 계층적으로 분류하고 대칭적이고 표준화된 구성을 제공할 수 있다.

Description

프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 {Interface Apparatus for Communication Between Processors and Communication System}
본 발명은 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템에 관한 것으로서, 좀더 상세하게는, 프로세서 간에 통신을 수행하기 위한 인터페이스 모듈의 구조를 대칭적이고 표준화할 수 있는 인터페이스 구성 기술에 관한 것이다.
최근 들어, 유무선 통신 인프라가 구축되고 이를 기반으로 한 다양한 서비스들이 제공되면서 디바이스 내에 구비되는 연산 처리 시스템의 연산 처리량 역시 대폭 증가되고 있다. 따라서 연산 처리 시스템은 그 처리 속도 및 처리 능력을 향상시키기 위하여 다수 개의 프로세서를 구비하는 추세이다. 예컨대 연산 처리 시스템은 주 기능을 수행하기 위한 호스트 프로세서 및 다수 개의 서브 프로세서를 포함할 수 있다.
호스트 프로세서와 서브 프로세서는 특정한 기능을 수행하기 위하여 상호 통신한다. 이러한 통신을 위해서 각각의 프로세서는 하드웨어적으로 구현된 인터페이스와 소프트웨어적으로 구현된 인터페이스를 구비하여야 한다.
통상, 상기 소프트웨어적으로 구현된 인터페이스의 경우, 호스트 프로세서와 서브 프로세서는 하드웨어 구조가 다르므로 하드웨어에 의존적으로 설계된다. 따라서 호스트 프로세서와 서브 프로세서의 인터페이스 구성은 서로 비대칭적이며 표준화되어 있지 않다.
예컨대, 호스트 프로세서와 서브 프로세서와의 통신을 위하여 호스트 프로세서에는 소프트웨어 드라이버로서 호스트 인터페이스가 구비된다. 상기 호스트 인터페이스는 서브 프로세서와의 인터페이스 프로세서를 기술한 코드의 형태로 구현된다. 호스트 프로세서에서 의하여 생성되는 어플리케이션 쓰래드들은 서브 프로세서와의 통신을 위해 상기 코드를 로딩하여 사용한다. 즉, 호스트 프로세서의 어플리케이션 쓰래드들은 코드 형태의 호스트 인터페이스를 공유 자원으로 사용할 수 있다. 서브 프로세서는 호스트 인터페이스의 요청에 따라 동작하고 응답 정보를 송신할 수 있다.
그런데, 이러한 경우 프로세서에 의해 생성되는 다수 개의 어플리케이션이 쓰래드들이 호스트 인터페이스를 코드 형태로 공유하기 때문에, 코드 관리가 어렵고 시스템의 혼잡도가 증가하는 문제점이 있다.
뿐만 아니라, 앞서도 언급한 바와 같이 종래에는 호스트 프로세서와 서브 프로세서의 소프트웨어적인 인터페이스가 비대칭적이며 표준화되어 있지 않기 때문에 프로그래밍이 난해하여 개발이 까다로우며 유지 보수도 어려운 문제점이 있다. 또한 하드웨어에 의존성이 높아 다른 프로세서로의 이식 가능성이 떨어지는 문제점도 내포하고 있다.
따라서, 프로세서들 간, 예컨대 호스트 프로세서 및 서브 프로세서 간에 통신을 위한 소프트웨어 인터페이스 구조에 있어서, 유연하고 대칭적이며 표준화된 인터페이스를 구성할 수 있는 새로운 기술의 개발이 시급히 요구되고 있다.
본 발명은 이러한 배경에서 창안된 것으로서, 프로세서 간, 예컨대 호스트 프로세서 및 서브 프로세서 간에 통신을 위하여, 유연하고 대칭적이며 표준화된 인터페이스 구성을 제공할 수 있는 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템을 제공하는데 그 기술적 과제가 있다.
이러한 목적을 달성하기 위하여 본 발명은 일 측면(Aspect)에서 프로세서 간의 통신을 위한 인터페이스 장치를 제공한다. 상기 프로세서 간의 통신을 위한 인터페이스 장치는, 상대 프로세서와의 통신을 위하여 프로세서에 구비되는 인터페이스 장치로서, 상위 쓰래드와 상기 인터페이스 장치를 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층과; 상기 제 1 계층의 하위 계층으로서, 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 상대 프로세서와의 데이터 송수신을 처리하는 제 2 계층; 및 상기 제 2 계층의 하위 계층으로서, 상기 제 2 계층에 의한 제어를 기반으로 상기 인터페이스 장치와 상기 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함한다.
상기 제 1 계층의 상기 적어도 하나의 API는, 상기 상위 쓰래드로부터 상기 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및 상기 제 2 계층으로부터 상기 상대 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 상위 쓰래드로 송신하는 수신 API를 포함할 수 있다.
상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청할 수 있다. 상기 제 1 계층은, 상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함할 수도 있다.
상기 제 2 계층은, 상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저와; 상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및 상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저 등을 포함할 수 있다.
상기 채널 매니저에 구비되는 상기 다수 개의 API는 상기 제 1 계층 또는 상기 상대 프로세서로부터의 요청에 따라 데이터를 송신 또는 수신하기 위하여, 상기 하드웨어 채널에 대한 예약을 채널 전송 매니저로 요청하는 요청 API와; 예약된 상기 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 요청을 상기 채널 전송매니저로 전송하는 취소 API와; 상기 하드웨어 채널을 오픈할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 오픈 API와; 오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로 데이터를 송신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 라이트 API와; 오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로부터 데이터를 수신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 리드 API; 및 오픈된 상기 하드웨어 채널을 닫을 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 클로즈 API를 포함할 수 있다.
상기 논리적인 채널 상태는, 상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태와; 상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및 상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함할 수 있다. 상기 채널 매니저는 상기 하드웨어 채널의 논리적인 채널 상태를 모니터링면서 상기 채널 상태 매니저로 보고할 수 있다.
상기 제 2 계층은, 상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저를 더 포함할 수도 있다.
상기 제 2 계층은, 상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및 상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함할 수도 있다. 상기 헤더는 제어 정보, 송신 완료 정보 및 수신 완료 정보 중 어느 하나를 포함할 수도 있다.
한편, 상술한 기술적 과제를 해결하기 위하여 본 발명은 다른 측면에서 통신 시스템을 제공한다. 상기 통신 시스템은, 제 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 계층을 포함할 수 있다. 상기 제 2 인터페이스 모듈은 상기 제 1 인터페이스 모듈에 상응하는 구성을 가질 수 있다.
상기 제 1 계층의 상기 적어도 하나의 API는, 상기 어플리케이션 쓰래드로부터 상기 제 2 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및 상기 제 2 계층으로부터 상기 제 2 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 어플리케이션 쓰래드로 송신하는 수신 API를 포함할 수 있다.
상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청할 수 있다. 상기 제 1 계층은, 상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함할 수도 있다.
상기 제 2 계층은, 상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저와; 상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및 상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저를 포함할 수 있다.
상기 논리적인 채널 상태는, 상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태와; 상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및 상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함할 수 있다.
상기 제 2 계층은, 상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저와; 상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및 상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함할 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면 프로세서 간의 통신을 위한 인터페이스 모듈을 계층적으로 분류하고 대칭적이고 표준화된 구성을 제공할 수 있는 장점이 있다.
도 1은 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치를 구비하는 통신 시스템의 구성을 도시하는 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치의 구성을 도시하는 블록도이다.
도 3은 도 2에 도시된 인터페이스 장치의 동작 원리를 설명하기 위한 예시도이다.
도 4는 호스트 프로세서와 멀티미디어 프로세서의 인터페이스 관련 하드웨어 구조를 나타내는 블록도이다.
도 5는 헤더 생성자에 의하여 생성되는 헤더에 삽입되는 정보들을 설명하기 위한 테이블들을 도시하는 예시도이다.
도 6은 커맨드 타입이 'Control'인 헤더의 구조를 도시하는 예시도이다
도 7은 커맨드 타입이 'Ack'인 헤더의 구조를 도시하는 예시도이다.
도 8은 커맨드 타입이 'Data'인 헤더의 구조를 도시하는 예시도이다.
이하, 본 발명이 속하는 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사항을 용이하게 이해할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 이하에 설명할 본 발명의 바람직한 실시예에서는 내용의 명료성을 위하여 특정한 기술 용어를 사용한다. 하지만 본 발명은 그 선택된 특정 용어에 한정되지는 않으며, 각각의 특정 용어가 유사한 목적을 달성하기 위하여 유사한 방식으로 동작하는 모든 기술적 동의어를 포함함을 미리 밝혀둔다.
도 1은 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치를 구비하는 통신 시스템의 구성을 도시하는 블록도이다.
도 1에 도시된 바와 같이, 제 1 프로세서, 예컨대 호스트 프로세서(HP)와 제2 프로세서, 예컨대 멀티미디어 프로세서(MP)는 서로 통신할 수 있다. 상기 멀티미디어 프로세서(MP)는 호스트 프로세서(HP)와 연동하는 서브 프로세서로서 이는 실시의 한 예일 뿐 한정된 사항은 아님은 물론이다.
호스트 프로세서(HP)는 호스트의 기능을 수행하기 위한 어플리케이션 쓰래드(Application Thread)(1) 및 멀티미디어 프로세서(MP)와 통신하기 위한 제 1 인터페이스 모듈(2)을 구비할 수 있다. 멀티미디어 프로세서(MP)는 메인 프로세서인 호스트 프로세서(HP)의 명령을 기반으로 멀티미디어 기능을 수행하기 위한 어플리케이션 쓰래드(4) 및 호스트 프로세서(HP)와 통신하기 위한 제 2 인터페이스 모듈(3)을 구비할 수 있다.
제 1 인터페이스 모듈(2)은, 계층(Layer)적인 관점에서, 호스트 프로세서(HP)의 어플리케이션 쓰래드(1)와 하드웨어 사이에 위치할 수 있으며, 예컨대 호스트 프로세서(HP)에 의하여 수행되는 쓰래드일 수 있다. 이러한 제 1 인터페이스 모듈(2)은 상위 계층인 호스트 프로세서(HP)의 어플리케이션 쓰래드(1)와 하위 계층인 호스트 프로세서(HP)의 하드웨어와 연동하면서, 멀티미디어 프로세서(MP)와의 데이터 송수신을 처리할 수 있다.
제 2 인터페이스 모듈(3)은, 계층(Layer)적인 관점에서, 멀티미디어 프로세서(MP)의 어플리케이션 쓰래드(4)와 하드웨어 사이에 위치할 수 있으며, 예컨대 멀티미디어 프로세서(MP)에 의하여 수행되는 쓰래드일 수 있다. 이러한 제 2 인터페이스 모듈(3)은 상위 계층인 멀티미디어 프로세서(MP)의 어플리케이션 쓰래드(4)와 하위 계층인 멀티미디어 프로세서(MP)의 하드웨어와 연동하면서, 호스트 프로세서(HP)와의 데이터 송수신을 처리할 수 있다.
상기 제 1 인터페이스 모듈(2)과 제 2 인터페이스 모듈(3)은 동일한 구성을 가질 수 있다. 즉, 호스트 프로세서(HP)와 그 서브프로세서인 멀티미디어 프로세서(MP)의 통신을 위한 소프트웨어적인 인터페이스 구성은 양자가 동일하며 대칭적이며, 표준화된 구성을 갖는다.
이하에서는 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치의 상세한 구성 및 동작을 설명하기로 한다. 이하에서 설명하는 인터페이스 장치는 상기 제 1 인터페이스 모듈(2) 및 상기 제 2 인터페이스 모듈(3)에 동일하게 적용될 수 있다.
도 2는 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치의 구성을 도시하는 블록도이다. 또한 도 3은 도 2에 도시된 인터페이스 장치의 동작 원리를 설명하기 위한 예시도이다.
도 2 내지 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 프로세서 간의 통신을 위한 인터페이스 장치(이하, 인터페이스 장치로 약칭)(10)는 상위 쓰래드(5), 예컨대 어플리케이션 쓰래드와 하위 계층인 하드웨어 사이에서 수행되는 쓰래드의 형태로 구현될 수 있다. 상기 인터페이스 장치(10)는 제 1 계층(L1), 제 2 계층(L2) 및 제 3 계층(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) 등을 구비할 수 있다.
상기 전송 API(22)는 상위 쓰래드(5)로부터 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 하드웨어 채널의 논리적인 채널 상태에 따라 요청된 데이터 송신이 가능한지의 여부를 판단한 후, 그 판단 결과에 따라 제 2 계층(L2)으로 요청된 데이터 송신의 수행을 요청하거나 또는 데이터 전송 관련 정보를 임시 저장할 것을 요청할 수 있다.
예를 들어, 상기 전송 API(22)는 상위 쓰래드(5)로부터 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지가 수신한 후, 상기 제 2 계층(L2)의 채널 상태 매니저(60)에게 요청된 데이터를 송신할 하드웨어 채널의 논리적인 채널 상태를 질의하여 응답을 수신한 후, 그 응답을 기반으로 하여 요청된 데이터 송신의 수행이 가능한지의 여부를 판단할 수 있다.
상기 하드웨어 채널의 논리적인 채널 상태는 스탠바이(Standby) 상태, 액티브(Active) 상태, 슬립(Sleep) 상태 중 어느 하나일 수 있다. 상기 스탠바이 상태는 하드웨어 채널이 이미 예약되어 있음을 나타내는 상태이며, 상기 액티브 상태는 상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 상태이다. 또한, 상기 슬립 상태는 하드웨어 채널이 예약되거나 사용되고 있지 않음을 나타내는 상태이다.
상기 전송 API(22)는 채널 상태 매니저(60)로부터 수신된 응답에서 현재 하드웨어 채널의 논리적인 채널 상태가 슬립 상태일 경우 요청된 데이터 송신이 가능한 것으로 판단할 수 있으며, 반면 현재 하드웨어 채널의 논리적인 상태가 스탠바이 상태 또는 액티브 상태일 경우 요청된 데이터 송신이 현재에는 불가능한 것으로 판단할 수 있다.
이러한 판단 결과, 요청된 데이터 송신이 사용이 현재 가능할 경우, 전송 API(22)는 제 2 계층(L2)의 채널 매니저(40)로 요청된 데이터 송신을 수행할 것을 나타내는 요청을 전송할 수 있다. 반면 요청된 데이터 송신이 현재 불가능할 경우, 전송 API(22)는 제 2 계층(L2)의 버퍼 매니저(30)로 상기 요청된 데이터 송신과 관련된 정보를 임시 저장할 것을 요청할 수 있다.
상기 재전송 API(24)는 상기 전송 API(22)가 상기 요청된 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하였을 경우, 논리적인 채널 상태가 데이터 송신이 가능한 상태로 변하거나 또는 미리 설정된 시간이 경과한 후 수행하지 못한 데이터 송신을 제 2 계층(L2)의 채널 매니저(40)에게 다시 요청하는 기능을 수행할 수 있다.
예를 들면, 재전송 API(24)는 상기 전송 API(22)가 상기 요청된 데이터 송신과 관련된 정보를 임시 저장할 것을 버퍼 매니저(30)에게 요청한 후, 채널 상태 매니저(60)로부터 하드웨어 채널의 논리적인 채널 상태가 데이터 송신이 가능한 채널 상태, 예컨대 슬립 상태로 바뀌었음을 나타내는 정보를 수신하거나 또는 미리 설정된 시간이 경과되면, 채널 매니저(40)에게 버퍼 매니저(30)에 임시로 저장된 데이터 전송 관련 정보에 따라 데이터 송신을 수행하라는 요청을 송신할 수 있다.
수신 API(26)은 제 2 계층(L2)으로부터 상대 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 이를 상위 쓰래드(5)에 알리는 기능을 수행할 수 있다. 예를 들면, 수신 API(26)는 제 2 계층의 채널 매니저(40)로부터 상대 프로세서의 데이터가 수신되었음을 알리는 정보를 수신할 수 있으며, 수신된 데이터의 관련 정보를 상위 쓰래드(5)로 송신할 수 있다.
한편, 제 2 계층(L2)은 제 1 계층(L1)의 하위 계층인 논리 계층(Logical Layer)일 수 있다. 상기 제 2 계층(L2)는 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 상대 프로세서와의 데이터 송수신을 처리하는 기능을 수행할 수 있다.
이러한 제 2 계층(L2)은 버퍼 매니저(Buffer Manager)(30), 채널 매니저(Channel Manager)(40), 채널 전송 매니저(Channel Transfer Manager)(50), 채널 상태 매니저(Channel Status Manager)(60), 헤더 생성자(Header Maker)(70), 헤더 파서(Header Parser)(80) 등을 구비할 수 있다.
상기 버퍼 매니저(30)는 제 1 계층(L1)의 전송 API(22)의 요청에 따라 데이터 송신 관련 정보를 저장하는 기능을 수행할 수 있다. 상기 버퍼 매니저(30)는 데이터를 저장할 수 있는 큐(Queue)(32)를 구비할 수 있다. 이러한 버퍼 매니저(30)는 전송 API(22)로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청이 수신되면, 상기 데이터 송신과 관련된 정보를 내부의 큐(32)에 저장할 수 있다. 저장된 데이터 송신 관련 정보는 재전송 시에 사용될 수 있다.
채널 매니저(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) 내에서 사용되며 각기 고유한 기능을 수행할 수 있다.
상기 요청 API(41)은 제 1 계층(L1)의 전송 API(22), 재전송 API(24) 또는 상대 프로세서로부터의 요청에 따라 데이터를 송신 또는 수신하기 위하여, 하드웨어 채널을 예약하라는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 취소 API(42)는 예약된 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 오픈 API(43)는 하드웨어 채널을 오픈할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 라이트 API(44)는 오픈된 하드웨어 채널을 통하여 상대 프로세서로 데이터를 송신할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 리드 API(45) 오픈된 하드웨어 채널을 통하여 상대 프로세서로부터 데이터를 수신할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다. 상기 클로즈 API(46)는 오픈된 하드웨어 채널을 닫을 것을 요청하는 요청을 채널 전송 매니저(50)로 전송하는 기능을 수행할 수 있다.
한편 채널 매니저(40)는 하드웨어 채널을 논리적으로 관리하면서, 하드웨어 채널의 논리적인 채널 상태를 모니터링하고 이를 채널 상태 매니저(60)에게 보고할 수 있다. 상기 하드웨어 채널의 논리적인 채널 상태는 스탠바이 상태, 액티브 상태, 슬립 상태 중 어느 하나일 수 있다. 앞서도 언급한 바 있듯이, 스탠바이 상태는 하드웨어 채널이 이미 예약되어 있음을 나타내는 상태이며, 액티브 상태는 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 상태이고, 슬립 상태는 하드웨어 채널이 예약되거나 사용되고 있지 않음을 나타내는 상태를 의미할 수 있다.
이러한 채널 매니저(40)의 동작을 채널 매니저(40)의 API들의 동작과 연계시켜 설명한다. 하드웨어 채널이 슬립 상태인 상태에서, 제 1 계층(L1)으로부터 데이터 송신을 요청하는 요청이 수신되면, 채널 매니저(40)의 요청 API(41)는 채널 전송 매니저(50)로 하드웨어 채널을 예약할 것을 요청할 수 있다. 이에 응답하여 하드웨어 채널이 예약되면, 하드웨어 채널은 스탠바이 상태로 천이한다. 이때 채널 매니저(40)는 하드웨어 채널이 스탠바이 상태로 천이하였음을 채널 상태 매니저(60)에게 보고한다.
이어서, 채널 매니저(40)의 오픈 API(43)은 예약된 하드웨어 채널을 오픈할 것을 요청하는 요청을 채널 전송 매니저(50)로 전송할 수 있다. 하드웨어 채널이 오픈되면, 하드웨어 채널은 액티브 상태로 천이한다. 이때 채널 매니저(40)는 하드웨어 채널이 액티브 상태로 천이하였음을 채널 상태 매니저(60)에게 보고한다. 다음으로, 채널 매니저(40)의 라이트 API(44)는 채널 전송 매니저(50)로 데이터를 송신할 것을 요청할 수 있다.
데이터의 송신이 완료되면, 채널 매니저(40)의 클로즈 API(46)은 채널 전송 매니저(50)에게 하드웨어 채널을 닫을 것을 요청할 수 있다. 이에 따라서 하드웨어 채널이 닫히면, 하드웨어 채널은 슬립 상태로 천이한다. 이때 채널 매니저(40)는 하드웨어 채널이 슬립 상태로 천이하였음을 채널 상태 매니저(60)에게 보고한다.
한편, 만약, 하드웨어 채널이 예약된 후, 장애 등으로 인하여 요청된 데이터 송신이 정상적으로 이루어지지 못한다는 정보가 외부로부터 수신될 경우, 채널 매니저(40)의 취소 API(42)는 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 메시지를 채널 전송 매니저(50)에게 송신할 수 있다. 하드웨어 채널의 예약이 취소되면, 채널 매니저(40)는 하드웨어 채널이 슬립 상태로 천이하였음을 채널 상태 매니저(60)에게 보고할 수 있다.
채널 전송 매니저(50)는 채널 매니저(50)로부터의 요청에 따라 하드웨어 채널의 동작을 제어하기 위한 메시지를 제 3 계층(L3)으로 송신하는 기능을 수행할 수 있다. 즉, 채널 전송 매니저(50)은 실질적으로 하드웨어 채널의 동작을 제어하는 기능을 수행할 수 있다. 예컨대 채널 전송 매니저(50)는 하드웨어 채널에 대한 접속, 해제, 데이터 전송, 수신 등을 제어할 수 있다.
이러한 채널 전송 매니저(50)는 제 1 모드 및 제 2 모드의 하드웨어 채널을 통한 전송 방식을 지원할 수 있다. 상기 제 1 모드는 레지스터의 설정을 통하여 상대 프로세서의 메모리로 직접 접근하여 데이터를 라이트 또는 리드할 수 있는 하드웨어 채널을 통하여 데이터는 송수신하는, 예컨대 마스터 모드(Master Mode)를 의미할 수 있다. 상기 제 2 모드는 송신 프로세서의 인터페이스 포트에 구비된 FIFO(First In First Out)를 사용하는 하드웨어 채널을 통하여 데이터를 송수신하는, 예컨대 FIFO 모드를 의미할 수 있다.
도 4는 호스트 프로세서와 멀티미디어 프로세서의 인터페이스 관련 하드웨어 구조를 나타내는 블록도로서, 채널 전송 매니저(50)에서 지원하는 제 1 모드 및 제 2 모드의 예를 설명하기 위한 것이다.
도 4를 참조하면, 멀티미디어 프로세서(MP)는 호스트 프로세서(HP)와 접속하기 위한 인터페이스 포트(6)을 하드웨어로서 구비할 수 있다. 상기 인터페이스 포트(6)는 송수신 포트(7), 레지스터부(8) 및 FIFO(9) 등을 구비할 수 있다.
제 1 모드에서, 호스트 프로세서(HP)는 멀티미디어 프로세서(MP)의 레지스터부(8)의 레지스터들을 설정함으로써 멀티미디어 프로세서(MP) 내부의 메모리, 예컨대 SDRAM(10)에 접근하여 데이터를 리드 또는 라이트할 수 있다. 반면 제 2 모드에서는 FIFO를 활용한다. 예를 들면, 멀티미디어 프로세서(MP)는 데이터 송신을 위하여 FIFO(9) 내에 송신할 데이터를 적재하고 데이터를 송신함을 알리는 이벤트를 호스트 프로세서(HP)로 전송한다. 그러면, 호스트 프로세서(HP)는 FIFO(9)로 접근하여 FIFO(9)에 적재된 데이터를 가져간다.
채널 전송 매니저(50)는 하드웨어 채널의 물리적인 상태를 모니터링하고 이를 채널 상태 매니저(60)로 보고할 수 있다. 상기 하드웨어 채널의 물리적인 상태는, 예컨대 오픈(Open) 상태, 클로즈(Close) 상태, 마스터 송신(Master Transfer) 상태, 마스터 수신(Master Receive) 상태, FIFO 송신(FIFO Transfer) 상태, FIFO 수신(FIFO Receive) 상태 등을 포함할 수 있다.
상기 오픈 상태는 통신을 위한 하드웨어 채널이 물리적으로 오픈되었음을 나타낼 수 있다. 상기 클로즈 상태는 하드웨어 채널이 물리적으로 닫혔음을 나타낼 수 있다. 상기 마스터 송신 상태는 제 1 모드의 하드웨어 채널에서 데이터를 송신함을 나타낼 수 있다. 마스터 수신 상태는 제 1 모드의 하드웨어 채널에서 데이터를 수신함을 나타낼 수 있다. 상기 FIFO 송신 상태는 제 2 모드의 하드웨어 채널에서 데이터를 송신함을 나타낼 수 있다. 상기 FIFO 수신 상태는 제 2 모드의 하드웨어 채널에서 데이터를 수신함을 나타낼 수 있다.
한편, 채널 상태 매니저(60)는 채널 매니저(40) 및 채널 전송 매니저(50)와 연동하여 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리할 수 있다. 예를 들면, 채널 상태 매니저(60)는 채널 매니저(40)로부터 하드웨어 채널의 논리적인 채널 상태를 수신한 후 그 정보를 관리한다. 또한 채널 상태 매니저(60)는 채널 전송 매니저(50)로부터 하드웨어 채널의 물리적인 상태를 수신한 후 그 정보를 관리할 수 있다. 이러한 채널 상태 매니저(60)는 외부로부터의 요청, 예컨대 제 1 계층(L1)의 전송 API(22) 또는 재전송 API(24) 등으로부터의 요청에 따라 논리적인 채널 정보 등을 제공할 수도 있다.
헤더 생성자는 데이터를 송신할 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행할 수 있다. 헤더 파서는 수신되는 데이터에서 헤더 등을 파싱하여 정보를 분석하는 기능을 수행할 수 있다.
도 5는 헤더 생성자에 의하여 생성되는 헤더에 삽입되는 정보들을 설명하기 위한 테이블들을 도시하는 예시도이다.
도 5에 도시된 바와 같이, 헤더 생성자에 의하여 생성되는 헤더에는 커맨드 타입(Command Type), 채널 넘버(Channel Number), ARQ 요청(ARQ 요청), 옵션(Option) 등의 정보가 삽입될 수 있다.
상기 커맨드 타입은 해당 커맨드의 종류를 구분하기 위한 정보로서, 도 5의 테이블1(T1)에 도시된 바와 같이, 'Control', 'Data', 'Ack'등으로 설정될 수 있다. 상기 'Control'은 제어 커맨드임을 나타내며, 'Data'는 전송 완료를 알리는 커맨드를 의미하며, 'Ack'는 송신 측으로부터 커맨드를 정상적으로 수신하였음을 알리는 커맨드를 의미할 수 있다.
상기 채널 넘버는 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)와 같이 에러 코드나 채널 상태 등을 전달하기 위한 정보들로 설정될 수 있다.
도 6, 도 7 및 도 8은 커맨드 타입이 'Control'인 헤더의 구조, 커맨드 타입이 'Ack'인 헤더의 구조 및 커맨드 타입 'Data'인 헤더의 구조를 각각 도시하는 예시도이다.
도 6에 도시된 바와 같이, 커맨드 타입이 'Control'인 헤더는, 예컨대 1비트의 ARQ 요청을 삽입할 수 있는 1비트의 필드, 시리얼 넘버(S/N)를 삽입할 수 있는 5비트의 필드, 채널 넘버를 삽입할 수 있는 2비트의 필드, 제어 커맨드를 삽입할 수 있는 6비트의 필드 등을 포함할 수 있다. 상기 시리얼 넘버는 커맨드를 송신할 때마다 순차적인 고유 번호를 부여하기 위한 것으로서, 예컨대 커맨드가 송신할 때마다 특정한 수(예컨대, '1'등)씩 증가하는 정보일 수 있다.
도 7을 참조하면, 커맨드 타입이 'Ack'인 헤더는, 예컨대 1비트의 ARQ 요청을 삽입할 수 있는 1비트의 필드, 시리얼 넘버를 삽입할 수 있는 5비트의 필드, 옵션을 삽입할 수 있는 필드 등을 포함할 수 있다. 한편, 도 8을 참조하면, 커맨드 타입이 'Data'인 헤더는, 예컨대 1비트의 ARQ 요청을 삽입할 수 있는 1비트의 필드, 시리얼 넘버(S/N)를 삽입할 수 있는 5비트의 필드, 채널 넘버를 삽입할 수 있는 2비트의 필드 등을 포함할 수 있다.
한편, 제 3 계층(L3)은 제 2 계층(L2)의 하위 계층으로서, 제 2 계층(L2)에 의한 제어를 기반으로 인터페이스 모듈(10)과 프로세서의 하드웨어 자원을 연동시키는 기능을 수행할 수 있다. 이러한 제 3 계층(L3)는 하드웨어 인터페이스부(90)을 포함할 수 있다. 하드웨어 인터페이스부(90)는 하드웨어 자원에 접근하기 위한 다수 개의 하드웨어 인터페이스 API들을 포함할 수 있다.
이상 본 발명에 대하여 그 바람직한 실시예를 예시하여 설명하였지만 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 기술적 사항 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
L1 : 제 1 계층
L2 : 제 2 계층
L3 : 제 3 계층
10 : 인터페이스 모듈
22 : 전송 API(Application Program Interface)
24 : 재전송 API
26 : 수신 API
30 : 버퍼 매니저
40 : 채널 매니저
50 : 채널 전송 매니저
60 : 채널 상태 매니저
70 : 헤더 생성자
80 : 헤더 파서
90 : 하드웨어 인터페이스부

Claims (16)

  1. 상대 프로세서와의 통신을 위하여 프로세서에 구비되는 인터페이스 장치로서,
    상위 쓰래드와 상기 인터페이스 장치를 연동시키는 적어도 하나의 API(Application Program Interface)를 구비하는 제 1 계층;
    상기 제 1 계층의 하위 계층으로서, 상대 프로세서와의 통신을 위한 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하고, 상기 논리적인 채널 상태 및 물리적인 채널 상태를 기반으로 상기 상대 프로세서와의 데이터 송수신을 처리하는 제 2 계층; 및
    상기 제 2 계층의 하위 계층으로서, 상기 제 2 계층에 의한 제어를 기반으로 상기 인터페이스 장치와 상기 프로세서의 하드웨어를 연동시키는 적어도 하나의 하드웨어 인터페이스 API를 구비하는 제 3 계층을 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  2. 제 1 항에 있어서, 상기 제 1 계층의 상기 적어도 하나의 API는,
    상기 상위 쓰래드로부터 상기 상대 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및
    상기 제 2 계층으로부터 상기 상대 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 상위 쓰래드로 송신하는 수신 API를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  3. 제 2 항에 있어서, 상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하고,
    상기 제 1 계층은,
    상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  4. 제 1 항에 있어서, 상기 제 2 계층은,
    상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저;
    상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및
    상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  5. 제 4 항에 있어서, 상기 채널 매니저에 구비되는 상기 다수 개의 API는
    상기 제 1 계층 또는 상기 상대 프로세서로부터의 요청에 따라 데이터를 송신 또는 수신하기 위하여, 상기 하드웨어 채널에 대한 예약을 채널 전송 매니저로 요청하는 요청 API;
    예약된 상기 하드웨어 채널에 대한 예약을 취소할 것을 요청하는 요청을 상기 채널 전송매니저로 전송하는 취소 API;
    상기 하드웨어 채널을 오픈할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 오픈 API;
    오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로 데이터를 송신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 라이트 API;
    오픈된 상기 하드웨어 채널을 통하여 상기 상대 프로세서로부터 데이터를 수신할 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 리드 API; 및
    오픈된 상기 하드웨어 채널을 닫을 것을 요청하는 요청을 상기 채널 전송 매니저로 전송하는 클로즈 API를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  6. 제 4 항에 있어서, 상기 논리적인 채널 상태는,
    상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태;
    상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및
    상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  7. 제 6 항에 있어서, 상기 채널 매니저는 상기 하드웨어 채널의 논리적인 채널 상태를 모니터링면서 상기 채널 상태 매니저로 보고하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  8. 제 4 항에 있어서, 상기 제 2 계층은,
    상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저를 더 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  9. 제 4 항에 있어서, 상기 제 2 계층은,
    상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및
    상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함하고,
    상기 헤더는 제어 정보, 송신 완료 정보 및 수신 완료 정보 중 어느 하나를 포함하는 것을 특징으로 하는 프로세서 간의 통신을 위한 인터페이스 장치.
  10. 제 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 계층을 포함하는 것을 특징으로 하는 통신 시스템.
  11. 제 10 항에 있어서, 상기 제 2 인터페이스 모듈은 상기 제 1 인터페이스 모듈에 상응하는 구성을 가지는 것을 특징으로 하는 통신 시스템.
  12. 제 10 항에 있어서, 상기 제 1 계층의 상기 적어도 하나의 API는,
    상기 어플리케이션 쓰래드로부터 상기 제 2 프로세서로의 데이터 송신을 요청하는 송신 요청 메시지를 수신하고, 상기 제 2 계층에 의하여 관리되는 상기 논리적인 채널 상태를 기반으로 현재 상기 요청된 데이터 송신이 가능한지의 여부를 판단하여, 현재 상기 요청된 데이터 송신이 가능할 경우 상기 제 2 계층으로 상기 요청된 데이터 송신을 수행할 것을 요청하는 전송 API; 및
    상기 제 2 계층으로부터 상기 제 2 프로세서의 데이터가 수신되었음을 알리는 정보가 수신되면, 상기 수신된 데이터의 정보를 상기 어플리케이션 쓰래드로 송신하는 수신 API를 포함하는 것을 특징으로 하는 통신 시스템.
  13. 제 12 항에 있어서, 상기 전송 API는 현재 상기 요청된 데이터 송신이 불가능할 경우 상기 제 2 계층으로 상기 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하고,
    상기 제 1 계층은,
    상기 임시 저장할 것을 요청한 후, 상기 논리적인 채널 상태를 근거로 상기 요청된 데이터 송신이 가능한 채널 상태가 되거나 또는 미리 설정된 시간이 경과하면, 상기 제 2 계층으로 상기 임시 저장된 데이터 송신과 관련된 정보에 따라 상기 데이터 송신을 수행할 것을 요청하는 재전송 API를 더 포함하는 것을 특징으로 하는 통신 시스템.
  14. 제 10 항에 있어서, 상기 제 2 계층은,
    상기 하드웨어 채널을 논리적으로 관리하며, 상기 하드웨어 채널에 대한 요청(Request), 취소(Cancel), 오픈(Open), 라이트(Write), 리드(Read) 및 클로즈(Close)를 요청하기 위한 다수 개의 API를 구비하는 채널 매니저;
    상기 채널 매니저로부터의 요청에 따라 상기 하드웨어 채널의 동작을 제어하기 위한 메시지를 상기 제 3 계층으로 송신하는 채널 전송 매니저; 및
    상기 채널 매니저 및 상기 채널 전송 매니저와 연동하여 상기 하드웨어 채널의 논리적인 채널 상태 및 물리적인 채널 상태를 관리하는 채널 상태 매니저를 포함하는 것을 특징으로 하는 통신 시스템.
  15. 제 14 항에 있어서, 상기 논리적인 채널 상태는,
    상기 하드웨어 채널이 예약되어 있음을 나타내는 스탠바이(Standby) 상태;
    상기 하드웨어 채널을 통하여 데이터가 송신 또는 수신되고 있음을 나타내는 액티브(Active) 상태; 및
    상기 하드웨어 채널의 사용이 가능함을 나타내는 슬립(Sleep) 상태를 포함하는 것을 특징으로 하는 통신 시스템.
  16. 제 14 항에 있어서, 상기 제 2 계층은,
    상기 제 1 계층으로부터 데이터 송신과 관련된 정보를 임시 저장할 것을 요청하는 요청을 수신하면, 상기 데이터 송신과 관련된 정보를 내부의 큐에 저장하는 버퍼 매니저;
    상기 하드웨어 채널을 설정하기 위한 커맨드를 정보를 포함하는 정해진 규격의 헤더를 생성하여 데이터에 부가하는 기능을 수행하는 헤더 생성자; 및
    상기 하드웨어 채널로부터 수신되는 데이터의 헤더를 파싱하여 상기 채널 매니저로 전송하는 헤더 파서를 더 포함하는 것을 특징으로 하는 통신 시스템.
KR1020100019666A 2009-03-05 2010-03-05 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템 KR101081881B1 (ko)

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 KR20100100685A (ko) 2010-09-15
KR101081881B1 true KR101081881B1 (ko) 2011-11-09

Family

ID=43006663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100019666A KR101081881B1 (ko) 2009-03-05 2010-03-05 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템

Country Status (1)

Country Link
KR (1) KR101081881B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102544420B1 (ko) 2018-04-19 2023-06-16 에이치디현대일렉트릭 주식회사 상위 플랫폼 및 하위 디바이스 간 인터페이스 장치
KR102105534B1 (ko) 2019-02-12 2020-04-29 현대일렉트릭앤에너지시스템(주) 상위 클라우드 플랫폼 및 하위 기자재 간 인터페이스 장치
CN113419712A (zh) * 2021-06-30 2021-09-21 京东方科技集团股份有限公司 跨平台的应用生成方法、跨平台应用调用方法、开发装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100186929B1 (ko) 1993-07-28 1999-05-15 마크 마이클 다중네트워크 어드레스를 구비한 네트워크 스테이션
WO2008091952A2 (en) 2007-01-23 2008-07-31 Qualcomm Incorporated Application programming interface (api) for a receiver in a wireless communications device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100186929B1 (ko) 1993-07-28 1999-05-15 마크 마이클 다중네트워크 어드레스를 구비한 네트워크 스테이션
WO2008091952A2 (en) 2007-01-23 2008-07-31 Qualcomm Incorporated Application programming interface (api) for a receiver in a wireless communications device

Also Published As

Publication number Publication date
KR20100100685A (ko) 2010-09-15

Similar Documents

Publication Publication Date Title
WO2018035856A1 (zh) 实现硬件加速处理的方法、设备和***
CN100458757C (zh) 嵌入式实时操作***中多核处理器的核间通信方法及装置
US20020091826A1 (en) Method and apparatus for interprocessor communication and peripheral sharing
AU2011370439B2 (en) Method and apparatus for rapid data distribution
KR20110114264A (ko) 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법
US7640549B2 (en) System and method for efficiently exchanging data among processes
CN103999063B (zh) 处理器的存储器共享
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
JP2019512193A (ja) ネットワークバーチャル化シナリオにおけるリソース配置制御
TW201135469A (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
KR101081881B1 (ko) 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템
EP2845110B1 (en) Reflective memory bridge for external computing nodes
US10318362B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
US20120191946A1 (en) Fast remote communication and computation between processors
US9195625B2 (en) Interconnect controller for a data processing device with transaction tag locking and method therefor
CN101681345B (zh) 处理装置、处理***、数据共享处理方法及数据共享处理用集成电路
US10581748B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
CN104657225B (zh) 基于OKL4的嵌入式虚拟化平台跨Cell数据传输***
CN105264494A (zh) 鉴权处理装置和方法
US20020083135A1 (en) Memory management for optimal storage of data of any size in memory
KR101148364B1 (ko) 사이버 물리 시스템에서 이질적 미들웨어 간의 동적 통합과 제어장치를 위한 메모리 관리 시스템 그 방법
WO2024037629A1 (zh) 区块链的数据整合方法、装置、计算机设备及存储介质
US20230049198A1 (en) Internet of things system
RU2714219C1 (ru) Способ и система для планирования передачи операций ввода/вывода
CN114153756A (zh) 面向多核处理器目录协议的可配置微操作机制

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