KR100968376B1 - 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템 - Google Patents

이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템 Download PDF

Info

Publication number
KR100968376B1
KR100968376B1 KR1020090002709A KR20090002709A KR100968376B1 KR 100968376 B1 KR100968376 B1 KR 100968376B1 KR 1020090002709 A KR1020090002709 A KR 1020090002709A KR 20090002709 A KR20090002709 A KR 20090002709A KR 100968376 B1 KR100968376 B1 KR 100968376B1
Authority
KR
South Korea
Prior art keywords
application
command
payload
host
module
Prior art date
Application number
KR1020090002709A
Other languages
English (en)
Inventor
허석
Original Assignee
주식회사 코아로직
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코아로직 filed Critical 주식회사 코아로직
Priority to KR1020090002709A priority Critical patent/KR100968376B1/ko
Application granted granted Critical
Publication of KR100968376B1 publication Critical patent/KR100968376B1/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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

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

Abstract

본 발명은 HIF의 상태를 고려하지 않고 ASM 모듈만을 이용하여 응용 프로그램의 등록/해제와 실행, 그리고 응용 프로그램 실행을 위한 이벤트, 데이터 및 명령을 전달할 수 있는 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 AP 통신 시스템을 제공한다. 그 응용 프로그램 처리장치는 호스트(Host) 및 AP(Application Processor)에서 사용되는 복수 개의 API(Application Program Interface)를 구비한 API부; 상기 호스트 및 AP 상에서 각각 동작하며, 응용 프로그램의 등록과 실행을 위한 동작을 수행하는 ASM(Application Session Manager) 모듈; 및 상기 ASM 모듈로부터 상기 응용 프로그램의 실행을 위한 명령, 데이터 및 이벤트에 대한 페이로드(payload)를 호스트 인터페이스(HIF: Host Interface)로 전달하거나 상기 HIF로부터 상기 페이로드를 상기 ASM 모듈로 전달하는 UEDM(User Event/Data Manager) 모듈을 포함하고, 상기 HIF 상태를 고려하지 않고 상기 호스트 및 AP 사이에서 상기 ASM 모듈만을 이용하여 상기 응용 프로그램을 처리한다.
API: Application Program Interface, MAP: Multimedia Application Processor, ASM: Application Session Manager, HIF: Host Interface

Description

이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 AP 통신 시스템{Device and method for processing application between different processor, and application processor(AP) communication system comprising the same device}
본 발명의 응용 프로그램 처리장치와 처리방법에 관한 것으로, 특히 이종 프로세서 사이에서 응용 프로그램을 처리하는 장치 및 방법에 관한 것이다.
일반적으로, 프로세서들은 상위 응용 프로그램을 처리하기 위하여, 상위 응용 프로그램 패키지를 ASIC(Application Specific Integrated Circuit)이나 네트워크 프로세서(NP : Network Processor) 등의 하드웨어에 의존적인 하위 계층 소프트웨어 패키지에 연동시키게 된다. 따라서, 원활한 시스템 구동을 위해서는 상위 응용 프로그램과 하위 계층의 프로그램을 연동시키는 것이 매우 중요하다. 일반적으로, 프로토콜 기능을 지원하는 상위 응용 프로그램은 하드웨어와 무관하게 독자적인 형태로 구동되며, 하위 계층 프로그램의 응용 프로그램 인터페이스(API: Application Program Interface)를 이용할 수 있도록 빈 함수를 정의해 놓거나, 가상의 하드웨어를 가정하여 함수를 설계하기도 한다. 따라서, 하드웨어 블록이 존재 하는 경우에는 이 함수를 현재 사용중인 하드웨어 블록에 맞는 소프트웨어 패키지와 연동해야 한다.
복수의 계층으로 구성된 프로그램들을 연동하기 위해서 사용되는 종래의 방법을 살펴보면, 상위 응용 프로그램에서 하위 계층 프로그램의 API를 직접 호출하는 방법을 사용할 수 있다. 그러나, 상위 응용 프로그램은 일반적으로 프로토콜 별로 하나의 태스크(task)를 구성하기 때문에, 여러 개의 태스크(task)로 나뉘어져 있다. 따라서, 모든 태스크에서 하위 계층 프로그램의 API를 직접 호출할 경우에는, 모든 상위 응용 프로그램의 태스크가 하위 계층 프로그램을 포함해야 하는 문제가 있다.
한편, 일반적으로 응용 프로세서들, 즉 상위 응용 프로그램들을 처리하는 프로세서들 간의 데이터 전달을 위해 호스트 인터페이스(HIF: Host Interface) 포트를 이용하게 되는데, 현재 이종 프로세서들 간의 응용 프로그램을 처리하기 위해서는 HIF 상태를 고려하여 설정된 HIF를 통해서만 응용 프로그램 실행을 위한 이벤트, 데이터 및 명령 전달할 수밖에 없고 그에 따라 이종 프로세서들 간의 응용 프로그램을 처리가 매우 느리다는 문제점이 있다.
본 발명이 해결하고자 하는 과제는 이종 프로세서들 간의 응용 프로그램을 처리하는데 있어서, HIF의 상태를 고려하지 않고 ASM 모듈만을 이용하여 응용 프로그램의 등록/해제와 실행, 그리고 응용 프로그램 실행을 위한 이벤트, 데이터 및 명령을 전달할 수 있는 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 AP 통신 시스템을 제공하는 데에 있다.
상기 과제를 달성하기 위하여, 본 발명은 호스트(Host) 및 AP(Application Processor)에서 사용되는 복수 개의 API(Application Program Interface)를 구비한 API부; 상기 호스트 및 AP 상에서 각각 동작하며, 응용 프로그램의 등록과 실행을 위한 동작을 수행하는 ASM(Application Session Manager) 모듈; 및 상기 ASM 모듈로부터 상기 응용 프로그램의 실행을 위한 명령, 데이터 및 이벤트에 대한 페이로드(payload)를 호스트 인터페이스(HIF: Host Interface)로 전달하거나 상기 HIF로부터 상기 페이로드를 상기 ASM 모듈로 전달하는 UEDM(User Event/Data Manager); 모듈을 포함하고, 상기 HIF 상태를 고려하지 않고 상기 호스트 및 AP 사이에서 상기 ASM 모듈만을 이용하여 상기 응용 프로그램을 처리하는 이종 프로세서 간의 응용 프로그램 처리장치를 제공한다.
본 발명에 있어서, 상기 ASM 모듈은, 상기 응용 프로그램을 등록 및 해제하는 등록 및 해제부; 상기 페이로드를 생성 및 파싱하는 페이로드 생성 및 파싱부; 상기 페이로드를 상기 UEDM 모듈로 전달하거나 내부 명령을 실행하는 세션 바인더(Session Binder); 및 등록된 상기 응용 프로그램 및 실행할 상기 응용 프로그램의 핸들을 검색하는 검색부;를 포함할 수 있다. 또한, 상기 ASM 모듈은 이벤트 페이로드, 데이터 페이로드, 및 ASM 내부 명령 페이로드를 통해 정보를 주고 받을 수 있다.
한편, 상기 API부는 상기 호스트에서 사용하는 7개의 제어(Control) API, 상기 AP에서 사용하는 2개의 제어 API, 및 상기 호스트와 AP에서 공통으로 사용하는 4개의 API를 포함할 수 있다. 예컨대, 상기 호스트에서 사용하는 7개의 상기 제어 API는 응용 프로그램의 검색(query), 응용 프로그램 실행을 위한 자원 생성과 동작, 및 응용 프로그램 종료를 위한 삭제 명령에 대한 API와 채널 오픈, 채널 오픈 확인, 채널 클로즈 명령에 대한 API이고, 상기 AP에서 사용하는 2개의 상기 제어 API는 응용 프로그램 등록 및 해제에 대한 API이며, 상기 호스트 및 AP에서 공통으로 사용하는 4개의 상기 API는 이벤트의 수신과 송신 및 데이터의 수신과 송신에 대한 API일 수 있다.
본 발명은 또한 상기 과제를 달성하기 위하여, 호스트(host); 복수 개의 어플리케이션 프로세서(AP: Application processor)를 구비한 AP부; 상기 호스트 및 AP에서 각각 동작하며, 응용 프로그램의 등록과 실행을 위한 동작을 수행하는 ASM 모듈, 및 상기 ASM 모듈에 연결되어 상기 호스트와 AP들 사이에 명령, 데이터 및 이벤트에 대한 페이로드를 전달하는 UEDM 모듈을 구비한 데이터 전송장치; 및 상기 AP들과 하드웨어 간의 인터페이스를 담당하는 디바이스 드라이버;를 포함하는 AP 통신 시스템을 제공한다.
더 나아가 본 발명은 상기 과제를 달성하기 위하여, 시스템 초기화 과정에서 ASM 모듈을 이용하여 응용 프로그램을 등록하는 단계; 상기 ASM 모듈을 이용하여 상기 응용 프로그램 실행을 위해 요구되는 자원(instance)을 AP 상에 생성(create)하는 단계; 상기 ASM 모듈을 이용하여 상기 응용 프로그램을 동작(run)시키며, 이벤트 및 데이터 송수신을 통해 상기 응용 프로그램을 실행하는 단계; 및 상기 응용 프로그램의 실행이 완료되면, 상기 ASM 모듈을 이용하여 상기 AP 상의 생성된 자원을 삭제(delete)하는 단계;를 포함하고, 호스트 및 AP 사이에서 상기 ASM 모듈만을 이용하여 상기 응용 프로그램을 처리하는 이종 프로세서 간의 응용 프로그램 처리방법을 제공한다.
본 발명에 있어서, 상기 AP로부터 상기 호스트로 이벤트 및 데이터를 전달하는 경우, 상기 응용 프로그램을 실행하는 단계는 상기 AP 상의 상기 ASM 모듈의 API가 상기 AP 상의 응용 프로그램으로부터 이벤트 및 데이트를 전달받는 단계; 상기 ASM 모듈의 페이로드 생성부에서 이벤트 페이로드 및 데이터 페이로드를 생성하는 단계; 및 상기 AP 상의 UEDM 모듈의 API을 호출하여 상기 이벤트 페이로드 및 데이터 페이로드를 상기 호스트로 전달하는 단계;를 포함할 수 있다.
또한, 상기 호스트로부터 상기 AP로 이벤트 및 데이터를 전달하는 경우, 상기 응용 프로그램을 실행하는 단계는 상기 호스트 상의 상기 ASM 모듈의 API가 상기 호스트 상의 응용 프로그램으로부터 페이로드를 전달받는 단계; 상기 ASM 모듈의 페이로드 파싱부에서 상기 페이로드가 이벤트 페이로드 또는 데이터 페이로드인 가를 판단하는 단계; 및 상기 호스트 상의 UEDM 모듈의 API를 호출하여 상기 AP의 해당 응용 프로그램 API으로 상기 이벤트 페이로드 또는 데이터 페이로드를 전달하는 단계;를 포함할 수 있다.
한편, 상기 데이터를 채널을 통해 전송하는 경우에는, 상기 생성하는 단계에서 채널을 오픈 및 확인하고, 상기 응용 프로그램을 실행하는 단계에서 오픈된 채널을 통한 데이터 전송을 수행하며, 상기 삭제단계에서 오픈된 상기 채널을 클로즈할 수 있다. 또한, 상기 응용 프로그램에 대한 명령을 처리하는 경우에는, 상기 호스트 상의 ASM 모듈이 상기 호스트의 API로부터 상기 명령을 전달받아 상기 AP로 전달하는 단계; 상기 AP 상의 ASM 모듈이 상기 명령에 대한 결과값(response)을 생성하는 단계; 및 상기 호스트 상의 ASM 모듈이 응답으로서 상기 결과값을 상기 호스트의 API으로 리턴하는 단계;를 통해 상기 명령을 처리하며, 상기 명령은 상기 생성하는 단계에서는 검색 명령, 생성 명령, 채널 오픈, 및 채널 오픈 확인 명령을, 실행 단계에서는 동작 명령을, 그리고 상기 삭제하는 단계에서는 삭제 명령, 및 채널 클로즈 명령을 포함할 수 있다.
본 발명에 따른 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 AP 통신 시스템은, 호스트와 AP에서 동작하는 응용 프로그램이 프로세서의 차이를 고려하지 않고 API 및 ASM 모듈만을 이용하여 등록/해제와 실행, 그리고 명령, 이벤트 및 데이터를 전달할 수 있도록 한다.
또한, 여러 개의 응용 프로그램이 동시에 동작하는 경우에도 HIF의 상태를 고려하지 않고 ASM 모듈을 통해서 명령, 이벤트 및 데이터를 원하는 응용 프로그램으로 전달할 수 있으며, 복수 개의 동일한 응용 프로그램을 동시에 수행할 수도 있다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 이하의 설명에서 어떤 구성 요소가 다른 구성 요소에 연결된다고 기술될 때, 이는 다른 구성 요소와 바로 연결될 수도 있지만, 그 사이에 제3의 구성 요소가 개재될 수도 있다. 또한, 도면에서 각 구성 요소의 구조나 크기는 설명의 편의 및 명확성을 위하여 과장되거나 설명과 관계없는 부분은 생략되었다. 도면상에서 동일 부호는 동일한 요소를 지칭한다. 한편, 사용되는 용어들은 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.
도 1은 본 발명의 일 실시예에 따른 이종 프로세서 간의 응용 프로그램 처리장치의 구조를 개략적으로 보여주는 구조도이다.
도 1을 참조하면, 본 실시예의 응용 프로그램 처리장치는 복수 개의 API부(300, 300a), ASM(Application Session Manager) 모듈(100, 100a), 및 UEDM(User Event/Data Manager) 모듈(200, 200a)을 포함한다.
API부(300, 300a)은 호스트(host) 측 및 AP(Application processor) 측에 각각 존재하여 응용 프로그램 처리를 위한 복수 개의 API를 포함한다. 여기서, AP는 모바일 폰에서 멀티미디어 서비스를 위한 MAP(Multimedia Application processor)일 수 있다. 이러한 API부(300, 300a)는 호스트에서 사용하는 7개의 제어(Control) API, AP에서 사용하는 2개의 제어 API 그리고 호스트와 AP에서 공통으로 사용하는 4개의 API를 포함할 수 있다. 여기서, 호스트에서 사용하는 7개의 제어 API는 응용 프로그램의 검색(query), 응용 프로그램 실행을 위한 자원 생성(create)과 동작(run), 및 응용 프로그램 종료를 위한 삭제(delete) 명령에 대한 API와 채널 오픈, 채널 오픈 확인, 채널 클로즈 명령에 대한 API이고, AP에서 사용하는 2개의 제어 API는 응용 프로그램 등록 및 해제에 대한 API이며, 호스트 및 AP에서 공통으로 사용하는 4개의 API는 이벤트의 수신과 송신 및 데이터의 수신과 송신에 대한 API일 수 있다.
ASM 모듈(100, 100a) 역시 호스트 측 및 AP 측에 각각 동작하며, 응용 프로그램의 등록과 실행을 위한 동작을 수행한다. ASM 모듈(100, 100a)에 대한 좀더 상세한 설명은 도 2 이하에서 기술한다.
UEDM 모듈(200, 200a) 또한 호스트 측 및 AP 측에 각각 동작하며, 응용 프로그램의 실행을 위한 명령(command), 데이터(data) 및 이벤트(event)에 대한 페이로드(payload)를 호스트 인터페이스(400, HIF: Host Interface)로 전달하거나 HIF로부터 페이로드를 ASM 모듈로 전달하는 기능을 한다.
본 실시예의 응용 프로그램 처리장치는 도시한 바와 같은 구조를 가지고, 응용 프로그램 처리 시에 호스트나 AP의 프로세서 차이나 HIF 상태를 고려하지 않고 응용 프로그램을 등록/해제, 실행, 그리고 응용 프로그램 실행을 위한 명령, 데이터 및 이벤트를 호스트 및 AP 사이에 자유로이 전달할 수 있다. 앞서, AP로 MAP를 예시하였으나 이에 한정되지 않고 호스트와 다른 응용 프로세서(AP) 사이에도 동일한 구조를 가지고 ASM 모듈을 통해 응용 프로그램을 처리할 수 있다. 또한, 여러 개의 응용 프로그램을 동시에 동작시키는 경우에도 명령, 데이터 및 이벤트를 원하는 응용 프로그램으로 전달할 수 있으며, 복수 개의 동일한 응용 프로그램을 함께 실행시킬 수도 있다.
도 2는 도 1의 응용 프로그램 처리장치의 ASM 모듈을 상세히 보여주는 구조도이다.
도 2를 참조하면, 본 실시예의 ASM 모듈(100, 100a)은 세션 바인더(120, Session Binder), 응용 프로그램 테이블 및 검색부(140), 페이로드 생성 및 파싱부(160), 및 응용 프로그램 등록 및 해제부(180)를 포함한다.
응용 프로그램 등록 및 해제부(180)는 응용 프로그램을 등록하는 응용 프로그램 등록부(182) 및 응용 프로그램을 등록 해제하는 응용 프로그램 해제부(184)를 포함한다. 페이로드 생성 및 파싱부(160)는 명령(command), 데이터(data) 및 이벤트(event)에 대한 페이로드를 생성하는 페이로드 생성부(162) 및 페이로드가 명령, 데이터 또는 이벤트에 대한 페이로드인가를 파싱하여 구분하는 페이로드 파싱부(164)를 포함한다. 페이로드 생성부(162)를 통해 생성된 명령, 데이터 또는 이벤트에 대한 페이로드의 데이터 구조에 대해서는 도 3의 설명부분에서 기술한다.
응용 프로그램 테이블 및 검색부(140)는 테이블부(142) 및 검색부(144)를 포함하는데, 테이블부(142)는 시스템 초기화 과정 시에 등록된 응용 프로그램에 대한 등록 AP 테이블(142a), 및 실행될 응용 프로그램의 핸들이 등록된 핸들 테이 블(142b)을 포함하며, 검색부(144)는 등록 AP 테이블(142a)을 검색하는 AP 검색부(144a) 및 핸들 테이블(142b)을 검색하는 핸들 검색부(144b)를 포함한다.
세션 바인더(120)는 페이로드를 호스트 측 또는 AP 측의 UEDM 모듈(200, 200a)로 전달하거나 내부 명령을 실행하는 기능을 한다. 이러한 세션 바인더(120)는 이벤트 세션 바인더, 데이터 세션 바인더 및 명령 세션 바인더로 구분될 수 있는데, 명령 세션 바인더의 경우에는 호스트 측 ASM 모듈의 세션 바인더에만 존재한다.
이벤트 세션 바인더와 데이터 세션 바인더의 경우, 검색부(144)를 통해 테이블부(142)에서 등록된 응용 프로그램 및 응용 프로그램의 핸들을 찾게 되면, 호스트 또는 AP의 해당 응용 프로그램으로 이벤트(Event) 페이로드 또는 데이터(Data) 페이로드를 전달한다. 보다 구체적으로, 이벤트 페이로드 또는 데이터 페이로드는 페이로드 파싱부(164)를 통해 파싱된 후에 해당 응용 프로그램으로 전달된다.
한편, 명령 세션 바인더는 검색부(144)를 통해 테이블부(142)에 해당 응용 프로그램이 등록되어 있지는 확인(query)하고, 응용 프로그램에 대한 생성(create), 삭제(delete), 및 동작(run) 함수를 호출한 후, 결과값을 리턴받아 핸들 테이블을 업데이트한다. 또한, 명령 세션 바인더는 데이터 전송을 위한 채널이 요구되는 경우에 채널 오픈(open channel), 채널 오픈 확인(ask channel) 및 채널 클로즈(close channel) 함수를 호출함으로써, 채널을 통해 데이터 페이로드를 전달하도록 한다. 채널 오픈의 경우에는 오픈된 채널에 대한 메모리를 할당하는 기능을 수행하게 된다. ASM 모듈(100, 100a)을 이용한 응용 프로그램 처리 과정은 도 7 및 8 부분에서 좀더 상세히 기술된다.
도 3은 ASM 모듈을 통해 전송되는 페이로드들의 구조를 보여주는 데이터 구조도이다.
도 3을 참조하면, 본 실시예의 ASM 모듈(100)은 세 가지 페이로드 형태, 즉 (a)이벤트 페이로드, (b)데이터 페이로드 및 (c)ASM 내부 명령 페이로드를 통해 응용 프로그램 실행을 위한 정보를 주고 받는다.
이벤트 페이로드는 응용 프로그램으로부터 전달된 이벤트를 전달하기 위한 데이터 구조를 가지며, 어플리케이션 핸들(application handle)을 통해 해당 응용 프로그램을 구분한다. 데이터 페이로드는 응용 프로그램으로부터 전달된 데이터를 전달하기 위한 구조를 가지며, 역시 어플리케이션 핸들을 통해 해당 응용 프로그램을 구분한다. 한편, 데이터 페이로드는 어플리케이션 핸들 필드 이외에 전체 섹션의 개수(Total Section Num), 현재 섹션의 번호(Cur Section Num), 전체 데이터의 크기(Total Data Size), 해당 페이로드에서 전달되는 크기(Partial Size), 채널의 넘버(Data Ch Num), 현재 페이로드의 크기(Payload Size) 필드를 포함한다.
ASM 내부 명령 페이로드는 ASM 모듈의 내부 명령을 전달하기 위한 구조를 가지며, 내부 명령을 위한 정보들이 저장된 복수 개의 파라미터 필드를 포함한다. 이러한 파라미터 필드로는 내부 명령 수행을 위해 필요한 정보들이 저장된다. 예컨대, 호스트의 초기 상태 정보, 검색을 위한 응용 프로그램의 키값(key) 정보, 생성과 동작을 위한 응용 프로그램의 핸들 정보, 채널이 요구되는 경우에 채널 사이즈 및 채널 번호의 정보 등을 포함할 수 있다.
도 4는 ASM 모듈을 통해 이벤트, 데이터 및 명령이 전송되는 과정을 보여주는 구조도로서, API와 UEDM 사이에서의 전송 과정을 보여주는데, 이러한 전송 과정은 호스트 측 또는 AP 측에서 일어나게 된다.
도 4를 참조하면, 먼저 호스트 또는 AP의 API(300, 300a)로부터 UEDM(200, 200a)으로 이벤트, 데이터 및 명령을 전송하는 경우(왼쪽 부분), ASM 모듈(100, 100a)의 API(150)가 AP(300, 300a)로부터 전송한 송신 이벤트 및 송신 데이터를 전송받는다. 그 후, ASM 모듈(100, 100a)의 페이로드 생성부(162)가 전송받은 송신 이벤트 및 송신 데이터를 이벤트 페이로드 및 데이터 페이로드로 구성한다. 한편, 명령을 전송받은 경우에는 명령에 대해서도 ASM 내부 명령 페이로드를 생성할 수 있다. 도면상 API를 통해 명령을 전송받는 모습이 도시되지 않은 것은 명령의 경우 호스트 측에서만 전송되는 일 방향성을 갖기 때문이다. 즉, 이벤트와 데이터의 경우는 호스트와 AP 사이에서 양 방향성을 가지고 서로 주고 받게 되나, 명령의 경우는 호스트에서 AP로 전달되고 AP로부터 명령에 대한 응답이 호스트로 전달되는 단 방향성을 갖는다.
페이로드가 생성된 후, UEDM의 API를 호출하여 생성된 페이로드를 전달한다. 여기서, UEDM은 호스트 측 UEDM 또는 AP 측 UEDM일 수 있다. 즉, 호스트에서 AP로 이벤트 및 데이터를 전송하는 경우는 UEDM은 호스트 측 UEDM이 되며, AP에서 호스트로 이벤트 및 데이터를 전송하는 경우는 UEDM은 AP 측의 UEDM이 된다. 이러한 구조는 도 1을 참조하면 쉽게 이해할 수 있다. 이러한 호스트 측 또는 AP 측 UEDM은 HIF를 통해 대응하는 AP 측 또는 호스트 측 UEDM으로 페이로드를 넘겨주게 된다. 한편, 명령의 경우는 전술한 바와 같이 일 방향성을 갖기 때문에 호스트 측 UEDM이 호출되어 전송되게 된다.
다음, 호스트 또는 AP의 API(300, 300a)가 UEDM(200, 200a)으로부터 이벤트, 데이터 및 명령을 전송받는 경우(오른쪽 부분), ASM 모듈(100, 100a)의 API(150)가 UEDM(200, 200a)으로부터 페이로드를 전달받고, ASM 모듈(100, 100a)의 페이로드 파싱부(164)가 전달받은 페이로드를 파싱한다. 즉, 전달받은 페이로드가 이벤트 페이로드인지, 데이터 페이로드인지, 또는 ASM 내부 명령 페이로드인지를 파싱을 통해 판단한다. 페이로드 파싱부(164)에서 페이로드를 파싱하게 되면, 해당 세션 바인더로 데이터, 이벤트 및 명령이 전달된다. 즉, 이벤트 페이로드의 경우는 이벤트 세션 바인더로 이벤트가 전달되고, 데이터 페이로드 경우는 데이터 세션 바인더로 데이터가 전달되며, ASM 내부 명령 페이로드는 명령 세션 바인더로 명령이 전달되게 된다.
이렇게 세션 바인더로 전달된 이벤트 및 데이터는 호스트 측 또는 AP 측 상의 API를 호출하여 해당 응용 프로그램으로 전달되게 된다. 한편, 명령의 경우는 해당 명령이 실행된 후 그 응답이 호스트의 API로 전달되게 된다.
도 5는 본 발명의 일 실시예에 따른 도 1의 응용 프로그램 처리장치를 포함하는 AP 통신 시스템에 대한 구조도이다.
도 5를 참조하면, 본 실시예의 AP 통신 시스템은 호스트(2000), 어플리케이션 프로세서부(3000), ASM 모듈(100)을 구비한 응용 프로그램 처리장치(1000), 및 디바이스 드라이버(4000)를 포함한다. 어플리케이션 프로세서부(3000)는 다수의 어 플리케이션 프로세서(AP)들을 포함하는데, 예컨대, UI 서비스, 멀티미디어를 위한 서비스, 증명 서비스 등을 위한 어플리케이션 프로세서 등이 될 수 있다. 또한, 모바일 디바이스 등에 전형적인 MAP을 포함할 수 있다.
한편, 응용 프로그램 처리장치(1000)는 ASM 모듈(100), UDEM(200), 시스템 서비스 모듈(200) 및 HIF(300)를 포함하는데, 응용 프로그램 처리장치(1000)의 기능은 도 1에서 설명한 것과 같이 호스트(2000) 및 AP부(3000)의 각 AP에서 동작하면서 해당 응용 프로그램의 등록, 실행, 명령, 데이터의 전달을 담당한다. 응용 프로그램 처리장치(1000)에 대해서는 도 1 ~ 4에 대한 설명부분에서 기술했으므로 그에 대한 상세한 설명은 생략한다. 한편, 응용 프로그램 처리장치(1000) 내에 ASM 모듈(100)만을 도시하고 있으나, ASM 모듈(100)과 대응하게 AP들의 동작을 지원하기 위한 Debugger, Displayer Manager, File System 등을 포함할 수 있다.
디바이스 드라이버(4000)는 어플리케이션 프로세서와 하드웨어 간의 물리적인 인터페이스를 담당하게 되는데, 도시한 바와 같이 API 레이어, 하드웨어 컨트롤 레이어, 하드웨어 의존 레이어 등을 포함할 수 있다.
본 실시예의 AP 통신 시스템은 응용 프로그램 처리장치(1000) 내로 도 1의 구성을 갖는 ASM 모듈(100)을 포함함으로써, 호스트와 AP에서 동작하는 응용 프로그램이 프로세서의 차이를 고려하지 않고 API 및 ASM 모듈만을 이용하여 등록/해제와 실행, 그리고 명령, 이벤트 및 데이터를 전달할 수 있도록 한다.
도 6은 본 발명의 일 실시예에 따른 이종 프로세서 간의 응용 프로그램 처리방법을 보여주는 흐름도이다.
도 6을 참조하면, 먼저, 시스템 초기화 과정에서 응용 프로그램을 등록한다(S100). 이러한 응용 프로그램 등록은 AP 상의 등록을 제어하는 API 및 ASM 모듈(100a) 상의 응용 프로그램 등록부를 통해 이루어지고, ASM 모듈의 응용 프로그램 등록 테이블에 등록된다. 다음 호스트가 AP의 응용 프로그램이 등록되었는지 확인하고, 확인된 응용 프로그램 실행을 위해 요구되는 자원(instance)을 AP 상에 생성(create)한다(S120). 이러한 자원 생성 과정은 호스트로부터 생성 명령을 ASM 모듈이 실행함으로써, 이루어지게 된다. 생성 명령이 수행되면 그 결과에 따라 응용 프로그램의 핸들 테이블이 업데이트된다.
AP 상에 자원 생성 후, 해당 응용 프로그램을 동작(run)시키며, 또한 이벤트 송신(put event), 이벤트 수신(get event), 데이터 송신(put event), 및 데이터 수신(get data)을 통해 해당 응용 프로그램을 실행한다. 한편, 채널을 통해 데이터 송수신의 경우에는 채널 오픈, 채널 확인 및 채널 클로즈 명령을 통해, 채널을 오픈하면서 메모리 할당하고, 오픈된 채널을 통해 데이터를 전송하며, 데이터 전송이 끝나면 오픈된 채널을 클로즈한다. 이러한 채널 오픈 등에 관련된 명령은 호스트의 채널 오픈에 관계된 3개의 제어 API 및 ASM 모듈을 통해 이루어지게 된다.
위와 같은 과정을 통해 응용 프로그램이 실행되고, 그러한 응용 프로그램의 실행이 완료되면, AP 상의 생성된 자원을 삭제(delete)한다(S160). 자원 삭제는 호스트의 삭제 명령을 통해 이루어지며, 이러한 삭제 명령은 호스트의 삭제 API 및 ASM 모듈을 통해 이루어지게 된다. 삭제 명령이 수행된 경우에도 그 결과에 따라 응용 프로그램의 핸들 테이블이 업데이트된다. 한편, 응용 프로그램이 더 이상 실 행될 필요가 없는 경우에는 AP 상의 등록 해제 API를 통해 해당 응용 프로그램을 등록 해제할 수도 있다.
본 실시예의 응용 프로그램 처리방법은 호스트 및 AP 사이에서 프로세서의 차이, HIF의 상태를 고려하지 않고 API 및 ASM 모듈만을 이용하여 응용 프로그램의 등록/해제와 실행, 그리고 명령, 이벤트 및 데이터를 전달할 수 있도록 한다. 또한, 여러 개의 응용 프로그램이 동시에 동작하는 경우에도 HIF의 상태를 고려하지 않고 ASM 모듈을 통해서 명령, 이벤트 및 데이터를 원하는 응용 프로그램으로 전달할 수 있으며, 복수 개의 동일한 응용 프로그램을 동시에 수행할 수도 있도록 할 수 있다. 이하에서는 호스트 측 및 AP 측 상에서 ASM 모듈을 통해 데이터, 이벤트, 및 명령이 전달되는 과정을 상세히 기술한다.
도 7은 호스트 측에서 ASM 모듈을 통해 이벤트, 데이터 및 명령이 전송되는 과정을 보여주는 구조도이다.
도 7을 참조하면, 호스트 측에는 응용 프로그램 실행을 위해 명령 제어를 위한 7개의 API와 데이터 및 이벤트 송수신을 위한 4개의 API가 동작한다. 즉, 7개의 API는 응용 프로그램이 등록되었는지를 검색하는 검색 API, 응용 프로그램 실행 위해 요구되는 자원(instance)을 AP 상에 할당하는 자원 생성(create) API, 응용 프로그램을 동작시키는 동작(run) API, 응용 프로그램 실행이 끝나면 생성된 자원을 삭제하는 삭제(delete) API와, 채널을 통해 데이터 전송이 이루어지는 경우에 채널을 오픈하여 메모리를 할당하는 채널 오픈(open channel) API, 채널이 오픈되어 있는지 확인하는 채널 확인(ask channel) API, 및 데이터 전송 완료 후 채널을 클로 즈하는 채널 클로즈(close channel) API이다. 한편, 송수신을 위한 4개의 API는 이벤트 송신 API, 데이터 송신 API, 이벤트 수신 API 및 데이터 수신 API이다.
먼저, 호스트 측에서 이벤트나 데이터를 전달받는 경우에는 호스트 측 UEDM의 API가 페이로드를 전달받고, ASM 모듈의 페이로드 파싱부가 전달받은 페이로드를 파싱한다, 파싱 후 페이로드가 어떤 타입인지를 판단한다. 페이로드가 이벤트나 데이터에 대한 페이로드인 경우에는 이벤트 세션 바인더나 데이터 세션 바인더로 이벤트나 데이터가 전달되고, 이벤트 세션 바인더나 데이터 세션 바인더는 호스트의 이벤트 수신 API나 데이터 수신 API로 이벤트나 데이터를 전달하게 된다.
다음 호스트 측에서 이벤트나 데이터를 전달하는 경우에는 호스트의 이벤트 전송 API나 데이터 전송 API가 이벤트나 데이터를 ASM 모듈로 전송하면, ASM 모듈의 페이로드 생성부에서 이벤트 페이로드나 데이터 페이로드를 생성하고, UEDM API를 호출하여 이벤트 페이로드나 데이터 페이로드를 HIF를 통해 AP 측으로 전달한다.
한편, 명령의 경우는 단 방향성으로서, AP 측을 함께 고려하여 그 전달 과정을 이해해야 한다. 즉, 호스트 측의 명령에 관련된 API가 호출되어 어떤 명령이 ㅅ상기 ASM 모듈로 전달되게 되면, ASM 모듈의 명령요구모듈이 명령을 확인하고, API를 호출한 쓰레드(thread)를 중지(suspend)시킨다. 여기서 쓰레드는 프로세스(process)보다는 작은 개념으로서, 프로세스에서 파생되어 나온 실행단위이며, 독자적인 ID를 가지지 않고 하나의 함수(function)과 같은 역할을 수행한다. 예컨대, MS-Windows 환경의 경우, 웹 브라우저(Web browser)를 여러 개 실행시키는 경 우 여러 개의 독자적인 프로세스가 수행되는 경우가 아니라 하나의 프로세스 하에 각 쓰레드가 수행되어 화면처리, 캐쉬 처리 등을 수행하는 방법을 통해 여러 개의 응용 프로그램이 작동하는 것과 같이 동작한다. 따라서, 쓰레드가 중지되는 경우에는 호스트 상의 프로세서의 동작이 잠시 중단되게 된다.
쓰레드 중지 후, 해당 명령은 ASM 모듈의 페이로드 생성부에서 ASM 내부 명령 페이로드로 구성되고, UEDM의 API 호출을 통해 AP 측으로 전달되게 된다. ASM 내부 명령이 AP 측 상에서 수행되고 그 응답(response)이 다시 호스트 측으로 전달되게 된다. 응답이 호스트 측으로 전달된 부분으로 시작하면, 먼저, 호스트 측의 UEDM의 API가 페이로드로서 응답을 전달받게 된다. 즉 응답에 대한 ASM 내부 명령 페이로드를 전달받는다. 그 후, ASM 모듈의 파싱부가 그 응답에 대한 ASM 내부 명령 페이로드를 파싱하고, 응답에 대한 ASM 내부 명령 페이로드로 판단되면, ASM 모듈의 명령응답모듈이 그 응답을 확인하고, 쓰레드가 중지된 경우에는 쓰레드를 복구시키고 응답을 해당 호스트의 API로 전달한다.
한편, 앞서에서 언급한 바와 같이 쓰레드를 중지하게 되면 프로세서 동작의 효율성 면에서 불리하다. 따라서, 프로세서 동작 중지를 해결하기 위해 콜백(call-back) 함수를 등록하여 명령을 전달하는 방법도 구현될 수 있다. 즉, 콜백 함수가 등록된 경우에는 명령요구모듈에서 쓰레들을 중지시키지 않는다. 따라서 프로세서는 계속해서 동작하게 되어 다른 쓰레드에 대한 동작이 진행된다. 한편, AP 측으로부터 응답이 온 경우에 명령응답모듈이 등록된 콜백함수를 호출하여 응답을 호스트의 해당 API로 전달하게 된다.
도 8은 AP 측에서 ASM 모듈을 통해 이벤트, 데이터 및 명령이 전송되는 과정을 보여주는 구조도이다.
도 8을 참조하면, AP 측에는 응용 프로그램 등록 및 해제를 위한 2개의 API 와 데이터 및 이벤트 송수신을 위한 4개의 API가 동작한다. 즉, 2개의 API는 응용 프로그램이 등록시키는 응용 프로그램 등록 API, 및 응용 프로그램에 대한 등록을 해제하는 응용 프로그램 해제 API이다. 송수신을 위한 4개의 API는 호스트 측과 동일하게 이벤트 송신 API, 데이터 송신 API, 이벤트 수신 API 및 데이터 수신 API이다.
먼저, 이벤트나 데이터를 송수신하는 과정은 앞서 호스트 측과 동일한 과정을 통해 수행된다.
다음, 명령에 대한 처리과정의 경우는 AP 상의 UEDM의 API가 ASM 내부 명령 페이로드를 전달받게 되고, ASM 모듈의 페이로드 파싱부에서 페이로드 파싱된 후 ASM 내부 명령 페이로드로 판단되고, 다시 명령이 어떤 명령인지가 판단된다. 명령은 앞서 호스트의 명령에 대한 API에 대응되게 검색, 생성, 동작, 삭제 명령 등으로 구분된다. 또한 데이터 전송을 위해 채널이 이용되는 경우에는 채널 오픈, 채널 확인, 채널 클로즈 명령이 더 있을 수 있다. 전술한 바와 같이 검색 명령은 등록된 응용 프로그램을 검색하며, 생성 명령은 자원을 할당하며, 동작 명령은 응용 프로그램을 동작시키며, 삭제 명령은 할당된 자원을 삭제한다. 또한, 채널 오픈 명령은 메모리를 할당하여 채널을 새롭게 오픈하고, 채널 확인 명령은 채널이 오픈되었는지 확인하며, 채널 클로즈 명령은 채널을 클로즈한다. 이와 같은 명령이 수행되면, 그 응답이 결과값으로서 생성되면, 그 응답이 페이로드 생성부에서 ASM 내부 명령페이로드로서 구성된다. 이와 같이 구성된 응답에 대한 ASM 내부 명령 페이로드는 UEDM의 API의 호출을 통해 호스트 측으로 전달된다.
지금까지, 본 발명을 도면에 표시된 실시예를 참고로 설명하였으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 이종 프로세서 간의 응용 프로그램 처리장치의 구조를 개략적으로 보여주는 구조도이다.
도 2는 도 1의 응용 프로그램 처리장치의 ASM 모듈을 상세히 보여주는 구조도이다.
도 3은 ASM 모듈을 통해 전송되는 페이로드들의 구조를 보여주는 데이터 구조도이다.
도 4는 ASM 모듈을 통해 이벤트, 데이터 및 명령이 전송되는 과정을 보여주는 구조도이다.
도 5는 본 발명의 일 실시예에 따른 도 1의 응용 프로그램 처리장치를 포함하는 AP 통신 시스템에 대한 구조도이다.
도 6은 본 발명의 일 실시예에 따른 이종 프로세서 간의 응용 프로그램 처리방법을 보여주는 흐름도이다.
도 7은 호스트 측에서 ASM 모듈을 통해 이벤트, 데이터 및 명령이 전송되는 과정을 보여주는 구조도이다.
도 8은 AP 측에서 ASM 모듈을 통해 이벤트, 데이터 및 명령이 전송되는 과정을 보여주는 구조도이다.

Claims (23)

  1. 호스트(Host)에서 사용하는 응용 프로그램 동작을 위한 API(Application Program Interface)와 채널 동작을 위한 API, AP(Application Processor)에서 사용하는 응용 프로그램 등록 및 해제를 위한 API, 및 상기 호스트 및 AP에서 공통으로 사용하는 이벤트와 데이터 송수신을 위한 API를 구비한 API부;
    상기 호스트 및 AP 상에서 각각 동작하며, 상기 응용 프로그램의 등록과 실행을 위한 동작을 수행하는 ASM(Application Session Manager) 모듈; 및
    상기 ASM 모듈로부터 상기 응용 프로그램의 실행을 위한 명령, 데이터 및 이벤트에 대한 페이로드(payload)를 호스트 인터페이스(HIF: Host Interface)로 전달하거나 상기 HIF로부터 상기 페이로드를 상기 ASM 모듈로 전달하는 UEDM(User Event/Data Manager) 모듈을 포함하고,
    상기 HIF 상태를 고려하지 않고 상기 호스트 및 AP 사이에서 상기 ASM 모듈만을 이용하여 상기 응용 프로그램을 처리하는 이종 프로세서 간의 응용 프로그램 처리장치.
  2. 제1 항에 있어서,
    상기 ASM 모듈은,
    상기 응용 프로그램을 등록 및 해제하는 등록 및 해제부;
    상기 페이로드를 생성 및 파싱하는 페이로드 생성 및 파싱부;
    상기 페이로드를 상기 UEDM 모듈로 전달하거나 내부 명령을 실행하는 세션 바인더(Session Binder); 및
    등록된 상기 응용 프로그램 및 실행할 상기 응용 프로그램의 핸들을 검색하는 검색부;를 포함하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  3. 제2 항에 있어서,
    상기 ASM 모듈은 상기 응용 프로그램이 등록된 응용 프로그램 테이블 및 실행할 상기 응용 프로그램의 핸들이 등록된 핸들 테이블을 포함하고,
    상기 검색부는 상기 응용 프로그램 테이블을 검색하는 응용 프로그램 검색부, 및 상기 핸들 테이블을 검색하는 핸들 검색부를 포함하며,
    상기 세션 바인더는 이벤트(Event) 페이로드의 전달을 담당하는 이벤트 세션 바인더, 데이터(Data) 페이로드의 전달을 담당하는 데이터 세션 바인더 및 ASM 내부 명령(ASM Internal Command) 수행을 위한 명령 세션 바인더를 포함하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  4. 제3 항에 있어서,
    상기 이벤트 또는 데이터 세션 바인더는 상기 검색부를 통해 등록된 응용 프로그램 및 응용 프로그램의 핸들을 찾게 되면, 해당 응용 프로그램으로 이벤트 페이로드 또는 데이터 페이로드를 전달하며,
    상기 명령 세션 바인더는 상기 검색부를 통해 상기 응용 프로그램이 등록되어 있지는 확인(query)하고, 상기 응용 프로그램에 대한 생성(create), 삭 제(delete), 및 동작(run) 함수를 호출한 후, 결과값을 리턴받아 상기 핸들 테이블을 업데이트하며,
    상기 명령 세션 바인더는 데이터 전송을 위한 채널이 요구되는 경우에 채널 오픈(open channel), 채널 오픈 확인(ask channel) 및 채널 클로즈(close channel) 함수를 호출함으로써, 채널을 통해 상기 데이터 페이로드를 전송하도록 하는 것을 특징으로 이종 프로세서 간의 응용 프로그램 처리장치.
  5. 제1 항에 있어서,
    상기 명령, 데이터 및 이벤트에 대한 페이로드는 이벤트 페이로드, 데이터 페이로드, 및 내부 명령 페이로드이고,
    상기 이벤트 페이로드는 및 상기 데이터 페이로드는 헤더 부분과 데이터 부분으로 구성되고, 어플리케이션 핸들(application handle)을 통해 각 응용 프로그램이 구분되며,
    상기 ASM 내부 명령 페이로드는 헤더 부분과 복수 개의 파라미터를 포함하는 파라미터 부분으로 구성되고, 상기 내부 명령을 위한 정보들이 상기 파라미터로서 저장되는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  6. 제5 항에 있어서,
    상기 내부 명령은 등록된 응용 프로그램의 검색(query), 응용 프로그램 실행을 위한 자원 생성(create)과 동작(run), 및 응용 프로그램 종료를 위한 자원 삭 제(delete) 함수 호출과 채널 오픈(open channel), 채널 클로즈(close channel), 및 채널 오픈 확인(ask channel) 함수 호출을 포함하며,
    상기 파라미터는 상기 호스트의 초기 상태 정보, 상기 검색을 위한 응용 프로그램의 키값(key) 정보, 상기 생성과 동작을 위한 응용 프로그램의 핸들(handle) 정보, 및 채널이 요구되는 경우에 채널 사이즈 및 채널 번호의 정보를 포함하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  7. 제1 항에 있어서,
    상기 응용 프로그램 동작을 위한 API는 응용 프로그램의 검색(query), 응용 프로그램 실행을 위한 자원 생성과 동작, 및 응용 프로그램 종료를 위한 삭제 명령을 수행하기 위한 API이고,
    상기 채널 동작을 위한 API는 채널 오픈, 채널 오픈 확인, 및 채널 클로즈 명령을 수행하기 위한 제어 API인 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  8. 제1 항에 있어서,
    상기 호스트는 상기 AP에서 응용 프로그램의 동작을 제어하는 명령을 상기 ASM 모듈로 전달하며,
    상기 ASM 모듈은 전달된 상기 명령을 확인하는 명령요구모듈(CmdRequester), 및 상기 명령이 상기 AP에서 수행되었는지를 확인하는 명령응답모듈(CmdResponser)을 포함하며,
    상기 명령에 대한 제어 API가 호출되면, 상기 명령요구모듈에서 상기 명령을 확인하고 상기 제어 API를 호출한 쓰레드(thread)를 중지(suspend)시키며, 상기 AP에서 응답이 오게 되면 상기 명령응답모듈이 상기 응답을 확인하여 리턴하면서 중지된 상기 쓰레드를 복구하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  9. 제8 항에 있어서,
    콜백 함수가 등록되어 있는 경우에는 상기 쓰레드를 중지시키지 않고 진행시키며, 상기 AP에서 응답이 오게 되면 상기 명령응답모듈이 상기 응답을 확인하고 등록된 상기 콜백 함수를 호출하여 리턴하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리장치.
  10. 호스트(host);
    복수 개의 어플리케이션 프로세서(AP: Application processor)를 구비한 AP부;
    상기 호스트 및 AP에서 각각 동작하며, 응용 프로그램의 등록과 실행을 위한 동작을 수행하는 ASM 모듈, 및 상기 ASM 모듈에 연결되어 상기 호스트와 AP들 사이에 명령, 데이터 및 이벤트에 대한 페이로드를 전달하는 UEDM 모듈을 구비한 데이터 전송장치; 및
    상기 AP들과 하드웨어 간의 인터페이스를 담당하는 디바이스 드라이버;를 포함하는 AP 통신 시스템.
  11. 제10 항에 있어서,
    상기 호스트 및 AP은 응용 프로그램의 등록과 실행을 위한 복수 개의 API를 구비하며,
    상기 UEDM 모듈은 상기 ASM 모듈로부터 상기 페이로드를 HIF로 전달하거나 상기 HIF로부터 상기 페이로드를 상기 ASM 모듈로 전달하며,
    상기 호스트 및 AP 사이에서 상기 ASM 모듈만을 이용하여 상기 응용 프로그램을 처리하는 AP 통신 시스템.
  12. 제11 항에 있어서,
    상기 ASM 모듈은,
    상기 응용 프로그램을 등록 및 해제하는 등록 및 해제부;
    상기 페이로드를 생성 및 파싱하는 페이로드 생성 및 파싱부;
    상기 페이로드를 상기 UEDM 모듈로 전달하거나 내부 명령을 실행하는 세션 바인더(Session Binder); 및
    등록된 상기 응용 프로그램 및 실행할 상기 응용 프로그램의 핸들을 검색하는 검색부;를 포함하는 것을 특징으로 하는 AP 통신 시스템.
  13. 제11 항에 있어서,
    복수 개의 상기 API는,
    상기 호스트에서 사용하고, 응용 프로그램의 검색(query), 응용 프로그램 실행을 위한 자원 생성과 동작, 및 응용 프로그램 종료를 위한 삭제 명령에 대한 API와 채널 오픈, 채널 오픈 확인, 채널 클로즈 명령에 대한 제어 API,
    상기 AP에서 사용하고, 응용 프로그램 등록 및 해제에 대한 API 제어 API, 및
    상기 호스트 및 AP에서 공통으로 사용하고, 이벤트의 수신과 송신 및 데이터의 수신과 송신에 대한 API를 포함하는 것을 특징으로 하는 AP통신 시스템.
  14. 시스템 초기화 과정에서 ASM 모듈을 이용하여 응용 프로그램을 등록하는 단계;
    상기 ASM 모듈을 이용하여 상기 응용 프로그램 실행을 위해 요구되는 자원(instance)을 AP 상에 생성(create)하는 단계;
    상기 ASM 모듈을 이용하여 상기 응용 프로그램을 동작(run)시키며, 이벤트 및 데이터 송수신을 통해 상기 응용 프로그램을 실행하는 단계; 및
    상기 응용 프로그램의 실행이 완료되면, 상기 ASM 모듈을 이용하여 상기 AP 상의 생성된 자원을 삭제(delete)하는 단계;를 포함하고,
    호스트 및 AP 사이에서 상기 ASM 모듈만을 이용하여 상기 응용 프로그램을 처리하는 이종 프로세서 간의 응용 프로그램 처리방법.
  15. 제14 항에 있어서,
    상기 ASM 모듈은,
    응용 프로그램 등록 및 해제부 통해 상기 응용 프로그램을 등록 및 해제하고, 검색부를 통해 등록된 상기 응용 프로그램 및 실행할 상기 응용 프로그램의 핸들을 검색하며, 페이로드 생성 및 파싱부를 통해 페이로드를 생성 및 파싱하며, 세션 바인더를 통해 상기 페이로드를 호스트 또는 상기 AP로 전달하거나 내부 명령을 실행하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  16. 제14 항에 있어서,
    상기 AP로부터 상기 호스트로 이벤트 및 데이터를 전달하는 경우,
    상기 응용 프로그램을 실행하는 단계는
    상기 AP 상의 상기 ASM 모듈의 API가 상기 AP 상의 응용 프로그램으로부터 이벤트 및 데이터를 전달받는 단계;
    상기 AP 상의 상기 ASM 모듈의 페이로드 생성부에서 이벤트 페이로드 및 데이터 페이로드를 생성하는 단계; 및
    상기 AP 상의 UEDM 모듈의 API을 호출하여 상기 이벤트 페이로드 및 데이터 페이로드를 상기 호스트로 전달하는 단계;를 포함하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  17. 제14 항에 있어서,
    상기 호스트로부터 상기 AP로 이벤트 및 데이터를 전달하는 경우,
    상기 응용 프로그램을 실행하는 단계는
    상기 호스트 상의 상기 ASM 모듈의 API가 상기 호스트 상의 응용 프로그램으로부터 페이로드를 전달받는 단계;
    상기 호스트 상의 상기 ASM 모듈의 페이로드 파싱부에서 상기 페이로드가 이벤트 페이로드 또는 데이터 페이로드인가를 판단하는 단계; 및
    상기 호스트 상의 UEDM 모듈의 API를 호출하여 상기 AP의 해당 응용 프로그램 API으로 상기 이벤트 페이로드 또는 데이터 페이로드를 전달하는 단계;를 포함하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  18. 제16 항 또는 제17 항에 있어서,
    상기 데이터를 채널을 통해 전송하는 경우에는,
    상기 자원을 AP 상에 생성하는 단계에서 채널을 오픈 및 확인하고,
    상기 응용 프로그램을 실행하는 단계에서 오픈된 채널을 통한 데이터 전송을 수행하며,
    상기 자원을 삭제하는 단계에서 오픈된 상기 채널을 클로즈하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  19. 제14 항에 있어서,
    상기 응용 프로그램에 대한 명령을 처리하는 경우에는,
    상기 호스트 상의 ASM 모듈이 상기 호스트의 API로부터 상기 명령을 전달받아 상기 AP로 전달하는 단계;
    상기 AP 상의 ASM 모듈이 상기 명령에 대한 결과값(response)을 생성하는 단계; 및
    상기 호스트 상의 ASM 모듈이 응답으로서 상기 결과값을 상기 호스트의 API으로 리턴하는 단계;를 포함하여 상기 명령을 처리하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  20. 제19 항에 있어서,
    상기 명령에 대한 결과값을 생성하는 단계에서는 검색 명령, 생성 명령, 채널 오픈, 및 채널 오픈 확인 명령이 수행되고,
    상기 응용 프로그램을 실행하는 단계에서는 동작 명령이 수행되며,
    상기 자원을 삭제하는 단계에서는 삭제 명령, 및 채널 클로즈 명령이 수행되는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  21. 제19 항에 있어서,
    상기 명령에 대한 결과값을 생성하는 단계에서,
    검색 명령의 경우, 응용 프로그램이 등록된 응용 프로그램 테이블을 검색하 여 그 결과값을 생성하고,
    응용 프로그램 실행에 대한 명령의 경우는 해당 응용 프로그램에 대한 생성, 동작, 및 삭제 동작을 수행한 후 결과값 생성 및 핸들 테이블을 업데이트하며,
    채널에 대한 명령의 경우, 채널에 대한 오픈, 오픈 확인 및 클로즈를 수행한 후 그 결과값을 생성하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  22. 제19 항에 있어서,
    상기 AP로 전달하는 단계에서,
    상기 호스트 상의 상기 ASM 모듈의 명령요구모듈이 상기 명령을 확인하여 상기 명령에 대한 API를 호출한 쓰레드(thread)를 중지(suspend)시키며,
    상기 결과값을 상기 호스트의 API로 전달하는 단계에서,
    상기 호스트 상의 상기 ASM 모듈의 명령응답모듈은 상기 AP에서 응답(response)을 수신하게 되면 상기 응답을 확인하여 전달하면서 중지된 상기 쓰레드를 복구하는 것을 특징으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
  23. 제22 항에 있어서,
    콜백 함수가 등록되어 있는 경우에는 상기 API를 호출한 쓰레드를 중지시키지 않고 진행시키며, 상기 AP에서 응답이 오게 되면 상기 명령응답모듈이 상기 응답을 확인하고 등록된 상기 콜백 함수를 호출하여 상기 응답을 전달하는 것을 특징 으로 하는 이종 프로세서 간의 응용 프로그램 처리방법.
KR1020090002709A 2009-01-13 2009-01-13 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템 KR100968376B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090002709A KR100968376B1 (ko) 2009-01-13 2009-01-13 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090002709A KR100968376B1 (ko) 2009-01-13 2009-01-13 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템

Publications (1)

Publication Number Publication Date
KR100968376B1 true KR100968376B1 (ko) 2010-07-09

Family

ID=42645250

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090002709A KR100968376B1 (ko) 2009-01-13 2009-01-13 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템

Country Status (1)

Country Link
KR (1) KR100968376B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001519953A (ja) * 1997-06-25 2001-10-23 トランスメタ・コーポレーション マイクロプロセッサの改良
US20040098718A1 (en) 2002-11-19 2004-05-20 Kenichiro Yoshii Task allocation method in multiprocessor system, task allocation program product, and multiprocessor system
KR100642045B1 (ko) 2005-08-09 2006-11-10 (주)씨앤에스 테크놀로지 호스트 프로세서로부터 멀티미디어 프로세서로 멀티미디어프로그램을 다운로드하는 시스템 및 방법
KR100710626B1 (ko) 2005-12-27 2007-04-24 엠텍비젼 주식회사 데이터 버스 확장 구조를 갖는 디지털 처리 장치 및 그방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001519953A (ja) * 1997-06-25 2001-10-23 トランスメタ・コーポレーション マイクロプロセッサの改良
US20040098718A1 (en) 2002-11-19 2004-05-20 Kenichiro Yoshii Task allocation method in multiprocessor system, task allocation program product, and multiprocessor system
KR100642045B1 (ko) 2005-08-09 2006-11-10 (주)씨앤에스 테크놀로지 호스트 프로세서로부터 멀티미디어 프로세서로 멀티미디어프로그램을 다운로드하는 시스템 및 방법
KR100710626B1 (ko) 2005-12-27 2007-04-24 엠텍비젼 주식회사 데이터 버스 확장 구조를 갖는 디지털 처리 장치 및 그방법

Similar Documents

Publication Publication Date Title
CN109284197B (zh) 基于智能合约的分布式应用平台及实现方法
US7003777B2 (en) Coordination-centric framework for software design in a distributed environment
US9553944B2 (en) Application server platform for telecom-based applications using an actor container
US8010973B2 (en) Class loader for managing a network
US8347318B2 (en) Application component communication apparatus of SCA-based system and method thereof
US9760583B2 (en) Method for native program to inherit same transaction context when invoked by primary program running in separate environment
EP3837604B1 (en) In situ triggered function as a service within a service mesh
CA2600503C (en) Method and system for executing a container-managed application on a processing device
KR20170094384A (ko) 컴퓨터 시스템
WO2005083984A1 (en) Protocol stack with modification facility
KR20170097070A (ko) 통신 이벤트 달성
KR20130139897A (ko) 컴퓨트 클러스터에서의 디버거 런칭 및 첨부
JP2005518015A (ja) 移動体端末用プラットフォーム・システムのミドルウエア・サービス・レイヤ
JPH0563821B2 (ko)
WO2011147218A1 (zh) 一种实现应用管理的方法及非智能移动终端
CN102591726A (zh) 一种多进程通信方法
CN110971591B (zh) 一种多进程访问可信应用的方法和系统
US6052455A (en) Universal data structure for use with a concurrent state machine space in a telecommunications network
WO2024002299A1 (zh) 应用管理方法、应用订阅方法及相关设备
CN113535362A (zh) 一种分布式调度系统架构和微服务工作流调度方法
Kraemer et al. Aligning UML 2.0 state machines and temporal logic for the efficient execution of services
KR100833494B1 (ko) 임베디드 단말의 OSGi 미들웨어 환경에서 이원화된애플리케이션 관리를 통한 애플리케이션 경량화를 위한장치 및 그 방법
KR100968376B1 (ko) 이종 프로세서 간의 응용 프로그램 처리장치와 처리방법, 및 그 처리장치를 포함하는 ap 통신 시스템
CN114726789A (zh) 流量管理、配置流量管理策略的方法、装置、设备及介质
CN107517259A (zh) 一种简易Web服务器实现方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20130503

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140402

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151207

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160404

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee