KR20180046791A - 전자 장치 및 전자 장치의 데이터 전송 방법 - Google Patents

전자 장치 및 전자 장치의 데이터 전송 방법 Download PDF

Info

Publication number
KR20180046791A
KR20180046791A KR1020160142400A KR20160142400A KR20180046791A KR 20180046791 A KR20180046791 A KR 20180046791A KR 1020160142400 A KR1020160142400 A KR 1020160142400A KR 20160142400 A KR20160142400 A KR 20160142400A KR 20180046791 A KR20180046791 A KR 20180046791A
Authority
KR
South Korea
Prior art keywords
data
electronic device
service
application
destination
Prior art date
Application number
KR1020160142400A
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 KR1020160142400A priority Critical patent/KR20180046791A/ko
Priority to PCT/KR2017/011902 priority patent/WO2018080192A1/en
Priority to US15/794,299 priority patent/US20180121268A1/en
Priority to EP17864256.7A priority patent/EP3516518A4/en
Publication of KR20180046791A publication Critical patent/KR20180046791A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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
    • 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 다양한 실시 예에 따른 전자 장치는, 어플리케이션, 프로세스 간 통신을 지원하는 IPC(inter-process communication) 모듈, 제1 통신 드라이버 및 제2 통신 드라이버를 포함하는 소프트웨어를 저장하는 메모리 및 상기 메모리에 저장된 소프트웨어를 실행하는 프로세서;를 포함하고, 상기 프로세서는, 상기 어플리케이션으로부터 상기 IPC 모듈로 데이터의 전송이 요청되면 상기 IPC 모듈에 의해 상기 데이터의 목적지가 상기 전자 장치의 내부인지 또는 상기 전자 장치의 외부인지 확인하고 상기 데이터의 목적지가 상기 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하고, 상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하도록 설정될 수 있다.

Description

전자 장치 및 전자 장치의 데이터 전송 방법{ELECTRONIC DEVICE AND DATA TRANSFER METHOD THEREOF}
본 발명은 전자 장치가 데이터를 전송하는 방법에 관한 것이다.
디지털 기술의 발달에 힘입어 다양한 유형의 전자 제품들이 개발 및 보급되고 있으며, 통신 기술의 발달에 따라 전자 장치들간에 연동하여 제공할 수 있는 서비스가 증가하고 있다. 특히, IoT(internet of things) 또는 홈네트워크 기술의 발전으로 스마트 폰, TV, 에어컨, 자동차 등 다양한 전자 장치들이 서로 연결되어 데이터를 공유하고 있다.
전자 장치의 기능이 다양해 짐에 따라 프로세스 기반의 플랫폼을 사용하는 전자 장치가 증가하고 있다. 프로세스 기반의 플랫폼은 스레드 기반의 플랫폼과는 달리 각 프로세스의 메모리 공간이 구분되어 있어 프로세스 간에 데이터의 공유가 필요한 경우 IPC(inter-process communication) 기능을 이용하여 데이터를 다른 프로세스로 전송할 수 있다.
동일한 전자 장치에 포함된 프로세스 간에는 IPC를 이용하여 데이터를 전송할 수 있으나 외부 전자 장치에 포함된 프로세스로의 데이터 전송은 불가능하다. 외부 전자 장치로 데이터를 전송하기 위해서는 소켓 통신을 이용할 수 있다. 소켓 통신은 전자 장치 내부 및 외부 통신을 모두 지원하고 있으나 IPC에 비해 전송 속도가 느린 단점이 있다.
본 발명의 다양한 실시예는 IPC를 통해 전자 장치 내부 통신뿐만 아니라 전자 장치 외부 통신을 지원하고 데이터의 전송 속도를 보장할 수 있는 전자 장치 및 전자 장치의 데이터 전송 방법을 제공하고자 한다.
본 발명의 다양한 실시 예에 따른 전자 장치는, 어플리케이션, 프로세스 간 통신을 지원하는 IPC(inter-process communication) 모듈, 제1 통신 드라이버 및 제2 통신 드라이버를 포함하는 소프트웨어를 저장하는 메모리 및 상기 메모리에 저장된 소프트웨어를 실행하는 프로세서;를 포함하고, 상기 프로세서는, 상기 어플리케이션으로부터 상기 IPC 모듈로 데이터의 전송이 요청되면 상기 IPC 모듈에 의해 상기 데이터의 목적지가 상기 전자 장치의 내부인지 또는 상기 전자 장치의 외부인지 확인하고 상기 데이터의 목적지가 상기 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하고, 상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하도록 설정될 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치의 데이터 전송 방법은, 어플리케이션이 IPC(inter-process communication) 모듈로 데이터의 전송을 요청하는 동작, 상기 IPC 모듈이 상기 데이터의 목적지를 확인하는 동작, 상기 데이터의 목적지가 상기 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하는 동작 및 상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하는 동작을 포함할 수 있다.
본 발명의 다양한 실시 예에 따른 컴퓨터 판독 가능 기록매체는, 어플리케이션이 IPC(inter-process communication) 모듈로 데이터의 전송을 요청하는 동작, 상기 IPC 모듈이 상기 데이터의 목적지를 확인하는 동작, 상기 데이터의 목적지가 상기 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하는 동작 및 상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하는 동작을 포함하는 방법을 수행하는 프로그램이 기록될 수 있다.
본 발명의 다양한 실시 예에 따르면, 전자 장치에 설치된 어플리케이션은 기존 코드의 변경 없이 IPC를 이용하여 외부 전자 장치와의 통신을 수행하고, 데이터 처리 우선권 조정 및 TCM을 이용하여 데이터의 전송 속도를 향상시킬 수 있다.
도 1은 본 발명의 다양한 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명의 다양한 실시 예에 따른 소프트웨어의 계층 구조를 나타내는 도면이다.
도 3a 및 도 3b는 본 발명의 다양한 실시 예에 따른 어플리케이션의 서비스 등록 과정을 나타내는 도면이다.
도 4a 및 도 4b는 본 발명의 다양한 실시 예에 따른 데이터 전송 과정을 나타내는 도면이다.
도 5는 본 발명의 다양한 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 6은 본 발명의 다양한 실시 예에 따른 전자 장치의 데이터 전송 방법을 나타내는 흐름도이다.
도 7은 본 발명의 다양한 실시 예에 따른 데이터 전송 방법을 나타내는 흐름도이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
도 1은 본 발명의 다양한 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 1을 참조하면, 전자 장치(100)는 메모리(110), 통신 모듈(120) 및 프로세서(130)를 포함할 수 있다.
일 실시 예에 따르면, 메모리(110)는 전자 장치(100)에 포함된 구성요소들(예: 통신 모듈(120) 및 프로세서(130)))의 동작과 연관된 명령, 정보 또는 데이터를 저장할 수 있다. 예를 들어, 메모리(110)는, 실행 시에, 프로세서(130)가 본 문서에 기재된 다양한 동작을 수행할 수 있도록 하는 명령어(instructions)를 저장할 수 있다. 상기 명령어는, 예를 들어, 소프트웨어(또는, 프로그램)로 구현되어 메모리(110)에 저장되거나 또는 하드웨어에 임베드(embed) 될 수 있다.
도 2는 본 발명의 다양한 실시 예에 따른 소프트웨어의 계층 구조를 나타내는 도면이다.
일 실시 예에 따르면, 소프트웨어(50)의 계층 구조는 어플리케이션, 미들웨어 및 커널을 포함할 수 있다. 일 실시 예에 따르면, 어플리케이션 계층은 적어도 하나의 어플리케이션을 포함할 수 있다. 예를 들어, 어플리케이션 계층은 제1 어플리케이션(11), 제2 어플리케이션(12) 및 제3 어플리케이션(13)을 포함할 수 있다. 일 실시 예에 따르면, 미들웨어 계층은 IPC 모듈(21)(또는, IPC 라이브러리)을 포함할 수 있다. 일 실시 예에 따르면, IPC 모듈(21)은 프로세서(130)에 의해 실행되는 프로세스간 통신을 지원할 수 있다. 본 발명의 다양한 실시 예에 따르면, IPC 모듈(21)은 전자 장치 내부의 프로세스 간 통신뿐만 아니라 외부 전자 장치와의 통신을 지원할 수 있다. 일 실시 예에 따르면, 커널 계층은 제1 통신 드라이버(31) 및 제2 통신 드라이버(32)를 포함할 수 있다. 제1 통신 드라이버(31)는 프로세스간 통신을 위한 IPC 드라이버이고, 제2 통신 드라이버(32)는 외부 전자 장치와의 통신을 위한 소켓 드라이버일 수 있다. 일 실시 예에 따르면, 제1 통신 드라이버(31)는 전자 장치(100)에 등록된 서비스 리스트를 포함할 수 있다. 예를 들어, 제1 통신 드라이버(31)는 전자 장치(100)에 설치된 어플리케이션(또는, 메모리(110)에 저장된 어플리케이션)이 제공하거나 또는 이용할 수 있는 서비스에 대한 정보를 포함하는 서비스 리스트를 관리할 수 있다.
service name connection information
org.tizen.tv -
org.youtube.streaming 112.111.0.21(7171)
... ...
표 1은 서비스 리스트의 일 예를 나타낸다. 표 1을 참조하면 서비스 리스트는 서비스의 이름(service name) 필드 및 연결 정보(connection information) 필드를 포함할 수 있다. 연결 정보는, 예를 들어, 외부 전자 장치의 IP 주소(internet protocol address)(예: 112,111,0.21) 및 서비스의 포트 번호(port number)(예: 7171)를 포함할 수 있다. 연결 정보는 외부 전자 장치와 통신에 필요한 정보이므로 서비스 리스트에 포함된 서비스가 전자 장치(100) 내부에 포함된 어플리케이션이 제공하는 서비스인 경우에는 연결 정보를 포함되지 않을 수 있다. 예를 들어, 표 1의 서비스 리스트에 포함된 첫번째 서비스(예: org.tizen.tv)를 전자 장치(100) 내부에 포함된 어플리케이션이 제공하는 경우 연결 정보를 포함하지 않을 수 있다.
일 실시 예에 따르면, 제1 통신 드라이버(31)는 어플리케이션의 요청에 따라 서비스 리스트를 업데이트할 수 있다. 예를 들어, 제1 통신 드라이버(31)는 서비스 리스트에 새로운 서비스를 추가하거나 서비스 리스트에 포함된 서비스를 삭제할 수 있다. 일 실시 예에 따르면, 서비스 리스트는 IPC 모듈(21)과 공유될 수 있다.
일 실시 예에 따르면, 소프트웨어(50)는 API(application programming interface)를 포함할 수 있다. 일 실시 예에 따르면, API는 어플리케이션이 미들웨어 또는 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 데이터는, 예를 들어, 이미지, 오디오 등의 컨텐츠 뿐만 아니라 특정 동작을 수행하기 위한 명령어를 포함할 수 있다. 상기 소프트웨어(50)는 운영 체제 상에서 구동될 수 있다. 운영 체제는, 예를 들어, Android™ 또는 Tizen™을 포함할 수 있다.
일 실시 예에 따르면, 메모리(110)는 비휘발성 메모리 및 휘발성 메모리를 포함할 수 있다. 예를 들어, 메모리(110)는 비휘발성 메모리인 플래시 메모리 및 휘발성 메모리인 RAM(random access memory)을 포함할 수 있다.
일 실시 예에 따르면, 통신 모듈(120)은 외부 전자 장치와 통신할 수 있다. 예를 들어, 통신 모듈(120)은 스마트 폰, 태블릿 PC, 데스크탑 등과 같은 사용자 단말 장치와 통신할 수 있다. 다른 예를 들어, 통신 모듈(120)은 TV, 오디오, 냉장고, 세탁기, 에어컨 등과 같은 홈 네트워크 장치와 통신할 수 있다. 또 다른 예를 들어, 통신 모듈(120)은 컨텐츠 또는 서비스를 제공하는 서버와 통신할 수 있다.
일 실시 예에 따르면, 통신 모듈(120)은 제2 통신 드라이버를 이용하여 외부 전자 장치와 통신할 수 있다. 예를 들어, 통신 모듈(120)은 제2 통신 드라이버를 이용하여 소켓을 생성하고, 생성된 소켓을 이용하여 외부 전자 장치와 통신할 수 있다.
일 실시 예에 따르면, 통신 모듈(120)은 유선 통신 모듈 및 무선 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈(120)은 HDMI(high definition multimedia interface), DVI(digital video/visual interactive) 또는 USB(universal serial bus) 등의 유선 통신 모듈을 포함할 수 있다. 다른 예를 들어, 통신 모듈(120)은 AP(access point)와 연결되어 인터넷 망에 접속할 수 있는 LAN(local area network) 카드를 포함할 수 있다. 또 다른 예를 들어, 통신 모듈(120)은 블루투스, NFC(near field communication) 또는 Wi-Fi(wireless- fidelity) 등의 무선 통신 모듈을 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 전자 장치(100)에 포함된 적어도 하나의 다른 구성요소들의 제어, 통신에 관한 연산, 및/또는 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(130)는 메모리(130)에 저장되거나 또는 임베드된 소프트웨어를 실행하여 소프트웨어와 관련된 다양한 명령어들을 처리할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(130)는 실행 중인 프로세스(또는, 어플리케이션)으로부터 IPC 모듈로 데이터의 전송이 요청되면 IPC 모듈에 포함된 명령어들을 처리하여 프로세서(130)가 실행 중인 다른 프로세스 또는 외부 전자 장치로 데이터를 전송할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 적어도 하나의 프로세서(130)를 포함할 수 있다. 예를 들어, 전자 장치(100)는 적어도 하나의 기능을 수행할 수 있는 복수의 프로세서(130)를 포함할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 CPU(central processing unit), GPU(graphic processing unit), 메모리 등을 포함하는 SoC(system on chip)으로 구현될 수도 있다.
일 실시 예에 따르면, 어플리케이션은 프로세서(130)에 의해 실행되는 중에 데이터의 전송을 요청할 수 있다. 예를 들어, 어플리케이션은 다른 어플리케이션으로 필요한 데이터를 요청하거나 또는 다른 어플리케이션이 요청한 데이터를 전송할 수 있다.
일 실시 예에 따르면, 어플리케이션은 프로세서(130)에 의해 실행되어 사용자에게 다양한 서비스를 제공할 수 있다. 일 실시 예에 따르면, 어플리케이션은 어플리케이션 자체적으로 서비스를 제공할 수도 있으나 다른 어플리케이션과 연동하여 서비스를 제공할 수도 있다. 예를 들어, 어플리케이션은 전자 장치(100) 또는 외부 전자 장치(예: 서버)에 포함된 다른 어플리케이션으로 필요한 데이터를 요청하고, 다른 어플리케이션으로부터 수신된 데이터에 기초하여 서비스를 제공할 수 있다.
복수의 어플리케이션이 서로 연동하여 동작하기 위해서는 각각의 어플리케이션이 제공하는 서비스에 대한 정보가 공유될 필요성이 있다. 이에 따라, 각각의 어플리케이션은 자신이 제공할 수 있는 서비스(또는, 데이터)에 대한 정보를 다른 어플리케이션과 공유하는 과정을 수행할 수 있다.
도 3a 및 도 3b는 본 발명의 다양한 실시 예에 따른 어플리케이션의 서비스 등록 과정을 나타내는 도면이다.
도 3a는 전자 장치(100)에 포함된 어플리케이션(예: 도 3a의 제1 어플리케이션(11))이 제공하는 서비스를 전자 장치(100)에 등록하는 실시예를 나타내고, 도 3b는 외부 전자 장치(200)에 포함된 어플리케이션(예: 도 3b의 제5 어플리케이션(15))이 제공하는 서비스를 전자 장치(100)에 등록하는 실시예를 나타낸다.
도 3a를 참조하면, 전자 장치(100)는 제1 어플리케이션(11), 제2 어플리케이션(12) 및 제1 통신 드라이버(31)를 포함할 수 있다. 일 실시 예에 따르면, 제1 통신 드라이버(31)는 프로세스간 통신을 위한 IPC 드라이버일 수 있다.
일 실시 예에 따르면, 제1 어플리케이션(11)은, 301 동작에서, 제1 통신 드라이버(31)에 새로운 서비스를 등록할 수 있다. 예를 들어, 제5 어플리케이션(15)은 새로운 서비스가 개시되면 서비스와 관련된 정보를 제1 통신 드라이버(31)로 전송할 수 있다. 제1 통신 드라이버(31)는 서비스와 관련된 정보를 이용하여 제1 어플리케이션(11)이 제공하는 새로운 서비스를 서비스 리스트에 추가할 수 있다.
일 실시 예에 따르면, 제1 통신 드라이버(31)는 새로운 서비스가 등록되면, 303 동작에서, 제2 어플리케이션(12)으로 새로운 서비스가 등록되었음을 알릴 수 있다.
도 3b을 참조하면, 전자 장치(또는, 제1 전자 장치)(100) 및 외부 전자 장치(또는, 제2 전자 장치)(200)가 개시되어 있다. 일 실시 예에 따르면, 전자 장치(100)는 서비스를 이용하는 클라이언트 장치이고 외부 전자 장치(200)는 서비스를 제공하는 서버 장치일 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 제1 어플리케이션(11), 제2 어플리케이션(12), 제3 어플리케이션(13), 제1 통신 드라이버(31) 및 제2 통신 드라이버(32)를 포함할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(200)는 제4 어플리케이션(14), 제5 어플리케이션(15), 제3 통신 드라이버(35) 및 제4 통신 드라이버(36)를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(100)에 포함된 제3 어플리케이션(13) 및 외부 전자 장치(200)에 포함된 제4 어플리케이션(14)은 각각의 전자 장치가 제공하는 서비스에 대한 정보를 공유하기 위한 어플리케이션일 수 있다. 일 실시 예에 따르면, 제1 통신 드라이버(31) 및 제3 통신 드라이버(35)는 프로세스간 통신을 위한 IPC 드라이버이고, 제2 통신 드라이버(32) 및 제4 통신 드라이버(36)는 다른 전자 장치와의 통신을 위한 소켓 드라이버일 수 있다. 일 실시 예에 따르면, 제3 어플리케이션(13)은 제2 통신 드라이버(32)를 이용하여 제4 어플리케이션(14)과 통신하기 위한 소켓을 생성할 수 있으며, 제4 어플리케이션(14)은 제4 통신 드라이버(36)를 이용하여 제3 어플리케이션(13)과 통신하기 위한 소켓을 생성할 수 있다. 제3 어플리케이션(13) 및 제4 어플리케이션(14)은 생성된 소켓을 통해 데이터를 송수신할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(200)의 제5 어플리케이션(15)은, 311 동작에서, 제3 통신 드라이버(35)에 새로운 서비스를 등록할 수 있다. 예를 들어, 제5 어플리케이션(15)은 새로운 서비스가 개시되면 서비스와 관련된 소켓을 생성하고, 서비스와 관련된 정보를 제3 통신 드라이버(35)로 전송할 수 있다. 서비스와 관련된 정보는, 예를 들어, 서비스 이름 및 서비스와 관련하여 생성된 소켓의 연결 정보를 포함할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(200)의 제3 통신 드라이버(35)는 제5 어플리케이션(15)으로부터 새로운 서비스가 등록되면, 313 동작에서, 제4 어플리케이션(14)으로 등록된 서비스와 관련된 정보를 전송할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(200)의 제4 어플리케이션(14)은, 315 동작에서, 소켓을 통해 연결된 장치(예: 전자 장치(100))로 새로운 서비스의 등록을 알릴 수 있다. 예를 들어, 제4 어플리케이션(14)은 전자 장치(100)의 제3 어플리케이션(13)과 연결된 소켓을 통해 제3 어플리케이션(13)으로 서비스와 관련된 정보를 전송할 수 있다.
일 실시 예에 따르면, 제3 어플리케이션(13)은 외부 전자 장치(200)의 제4 어플리케이션(14)으로부터 서비스와 관련된 정보가 수신되면, 317 동작에서, 제1 통신 드라이버(31)에 서비스를 등록할 수 있다. 예를 들어, 제1 통신 드라이버(31)는 서비스와 관련된 정보를 이용하여 제5 어플리케이션(15)이 제공하는 새로운 서비스를 서비스 리스트에 추가할 수 있다.
일 실시 예에 따르면, 제1 통신 드라이버(31)는 새로운 서비스가 등록되면, 319 동작에서, 제1 어플리케이션(11) 및 제2 어플리케이션(12)으로 새로운 서비스가 등록되었음을 알릴 수 있다.
도 4a 및 도 4b는 본 발명의 다양한 실시 예에 따른 데이터 전송 과정을 나타내는 도면이다.
도 4a는 전자 장치(100)에 포함된 어플리케이션(예: 도 4a의 제1 어플리케이션(11))이 전자 장치에 포함된 다른 어플리케이션(예: 도 4a의 제2 어플리케이션(12))으로 데이터를 전송하는 실시예를 나타내고, 도 4b는 전자 장치(100)에 포함된 어플리케이션(예: 도 4a의 제1 어플리케이션(11))이 외부 전자 장치(200)에 포함된 어플리케이션(예: 도 4b의 제5 어플리케이션(15))으로 데이터를 전송하는 실시예를 나타낸다.
도 4a를 참조하면, 전자 장치(100)는 제1 어플리케이션(11), 제2 어플리케이션(12), 제3 어플리케이션(13), IPC 모듈(21), 제1 통신 드라이버(31) 및 제2 통신 드라이버(32)를 포함할 수 있다.
일 실시 예에 따르면, 제1 어플리케이션(11)은, 401 동작에서, IPC 모듈(21)로 데이터의 전송을 요청할 수 있다. 예를 들어, 제1 어플리케이션(11)은 제2 어플리케이션(12)으로 특정 서비스를 요청하거나 또는 제2 어플리케이션(12)이 요청한 서비스에 대한 응답으로 제2 어플리케이션(12)으로 지정된 데이터를 전송할 수 있다. 일 실시 예에 따르면, 제1 어플리케이션(11)의 데이터 전송 요청은 서비스 이름을 포함할 수 있다.
일 실시 예에 따르면, IPC 모듈(21)은 제1 어플리케이션(11)으로부터 데이터의 전송이 요청되면 데이터의 목적지가 전자 장치(100) 내부인지 또는 전자 장치(100) 외부인지 확인할 수 있다. 일 실시 예에 따르면, IPC 모듈(21)은 제1 어플리케이션(11)의 데이터 전송 요청에 포함된 서비스 이름 및 제1 통신 드라이버(21)에 등록된 서비스 리스트에 기초하여 데이터의 목적지를 확인할 수 있다. 예를 들어, IPC 모듈(21)은 서비스 이름 및 서비스 리스트를 비교하여 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하는지 확인할 수 있다. IPC 모듈(21)은 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하지 않으면 데이터의 목적지가 전자 장치(100) 내부라고 판단하고, 서비스 이름에 대응되는 연결 정보가 존재하면 데이터의 목적지가 전자 장치(100) 외부라고 판단할 수 있다. 제1 어플리케이션(11)이 제2 어플리케이션(12)을 목적지로 데이터의 전송을 요청한 경우 IPC 모듈(21)은 서비스 리스트에 제2 어플리케이션(12)의 서비스 이름에 대응되는 연결 정보가 존재하지 않음을 확인하고 데이터의 목적지를 전자 장치(100) 내부라고 판단할 수 있다.
일 실시 예에 따르면, IPC 모듈(21)은 데이터의 목적지가 전자 장치(100) 내부이면, 403 동작에서, 제1 통신 드라이버(31)를 통해 데이터를 전송할 수 있다. 예를 들어, IPC 모듈(21)은 제1 통신 드라이버(31)를 통해 제2 어플리케이션(12)으로 데이터를 전송할 수 있다.
도 4b를 참조하면, 전자 장치(100)는 제1 어플리케이션(11), 제2 어플리케이션(12), 제3 어플리케이션(13), IPC 모듈(21), 제1 통신 드라이버(31) 및 제2 통신 드라이버(32)를 포함할 수 있다. 전자 장치(또는, 제1 전자 장치)(100) 및 외부 전자 장치(또는, 제2 전자 장치)(200)가 개시되어 있다. 일 실시 예에 따르면, 전자 장치(100)는 데이터를 전송하는 장치이고 외부 전자 장치(200)는 데이터를 수신하는 장치일 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 제1 어플리케이션(11), 제2 어플리케이션(12), 제3 어플리케이션(13), IPC 모듈(21), 제1 통신 드라이버(31) 및 제2 통신 드라이버(32)를 포함할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(200)는 제5 어플리케이션(15) 및 제4 통신 드라이버(36)를 포함할 수 있다.
일 실시 예에 따르면, 제1 어플리케이션(11)은, 411 동작에서, IPC 모듈(21)로 데이터의 전송을 요청할 수 있다. 예를 들어, 제1 어플리케이션(11)은 제2 전자 장치(200)에 포함된 제5 어플리케이션(15)으로 특정 서비스를 요청하거나 또는 제5 어플리케이션(15)이 요청한 서비스에 대한 응답으로 제5 어플리케이션(15)으로 지정된 데이터를 전송할 수 있다. 일 실시 예에 따르면, 제1 어플리케이션(11)의 데이터 전송 요청은 서비스 이름을 포함할 수 있다.
일 실시 예에 따르면, IPC 모듈(21)은 제1 어플리케이션(11)으로부터 데이터의 전송이 요청되면 데이터의 목적지가 전자 장치(100) 내부인지 또는 전자 장치(100) 외부인지 확인할 수 있다. 일 실시 예에 따르면, IPC 모듈(21)은 제1 어플리케이션(11)의 데이터 전송 요청에 포함된 서비스 이름 및 제1 통신 드라이버(21)에 등록된 서비스 리스트에 기초하여 데이터의 목적지를 확인할 수 있다. 예를 들어, IPC 모듈(21)은 서비스 이름 및 서비스 리스트를 비교하여 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하는지 확인할 수 있다. IPC 모듈(21)은 서비스 이름에 대응되는 연결 정보가 존재하지 않으면 데이터의 목적지가 전자 장치(100) 내부라고 판단하고, 서비스 이름에 대응되는 연결 정보가 존재하면 데이터의 목적지가 전자 장치(100) 외부라고 판단할 수 있다. 제1 어플리케이션(11)이 제5 어플리케이션(15)을 목적지로 데이터의 전송을 요청한 경우 IPC 모듈(21)은 서비스 리스트에 제2 어플리케이션(12)의 서비스 이름에 대응되는 연결 정보가 존재함을 확인하고 데이터의 목적지를 전자 장치(100) 외부라고 판단할 수 있다.
일 실시 예에 따르면, IPC 모듈(21)은 데이터의 목적지가 전자 장치(100) 외부이면, 413 동작에서, 제2 통신 드라이버(32)를 통해 데이터를 전송할 수 있다. 예를 들어, IPC 모듈(21)은 서비스 이름에 대응되는 연결 정보(예: IP 주소 및 포트 번호)를 이용하여 제2 전자 장치(200)의 제5 어플리케이션(15)으로 데이터를 전송할 수 있다. 일 실시 예에 따르면, 전자 장치(100)의 제2 통신 드라이버(32) 및 외부 전자 장치(200)의 제4 통신 드라이버(36)는 소켓을 통해 서로 연결될 수 있으며, 제2 통신 드라이버(32)는 소켓을 통해 외부 전자 장치(200)로 데이터를 전송할 수 있다.
일 실시 예에 따르면, 제2 통신 드라이버(32)는 IPC 모듈(21)로부터 외부 전자 장치(200)로 데이터의 전송이 요청되면, 외부 전자 장치(200)(예: 제4 통신 드라이버(36))와 데이터를 전송하기 위한 소켓이 연결되어 있는지 확인할 수 있다. 일 실시 예에 따르면, 제2 통신 드라이버(32)는 외부 전자 장치(200)와 데이터를 전송하기 위한 소켓이 연결되어 있지 않으면 소켓을 생성하고 외부 전자 장치(200)와 소켓을 연결할 수 있다.
도 5는 본 발명의 다양한 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 5를 참조하면, 전자 장치(100)는 메모리(110), 및 프로세서(130)를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 코어(131), 캐시(133) 및 TCM(tightly coupled memory)(135)을 포함할 수 있다.
일 실시 예에 따르면, 코어(131)는 전자 장치(100)에 포함된 적어도 하나의 다른 구성요소들의 제어, 통신에 관한 연산, 및/또는 데이터 처리를 실행할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 적어도 하나(예: 두 개 도는 네 개)의 코어를 포함할 수 있다.
일 실시 예에 따르면, 캐시(133)는 코어(131)와 연결되어 코어(131)의, 명령어 또는 데이터의 연산에 필요한 정보를 저장할 수 있다. 예를 들어, 코어(131)는 데이터(또는, 명령어) 또는 데이터의 처리 결과를 캐시(133)에 저장할 수 있다.
일 실시 예에 따르면, TCM(135)은 코어(131)와 연결되어 코어(131)의, 명령어 또는 데이터의 연산에 필요한 정보를 저장할 수 있다. 예를 들어, 코어(131)는 데이터(또는, 명령어) 또는 데이터의 처리 결과를 TCM(135)에 저장할 수 있다.
일 실시 예에 따르면, 코어(131)는 소프트웨어(예: 어플리케이션)의 요청이 있는 경우 TCM(135)에 데이터를 저장할 수 있다.
캐시(133) 및 TCM(135)은 모두 코어(131)와 인접한 위치에 배치되어 프로세서(130)의 성능을 향상시킬 수 있다. 다만, 캐시(133)는 비결정적(non-deteministic) 특성에 따라 데이터(또는, 명령어)의 읽기 또는 쓰기에 걸리는 시간의 예측성이 요구되는 실시간 시스템에 적용하기에는 어려움이 있다. TCM(135)을 이용하는 경우에는 캐시(133)와는 달리 데이터(또는, 명령어)의 읽기 또는 쓰기에 소요되는 시간을 예측할 수 있어 실시간 시스템에 안정적으로 적용할 수 있다.
일 실시 예에 따르면, 어플리케이션은 IPC 모듈로 데이터의 고속 전송을 요청할 수 있다. 예를 들어, 어플리케이션은 데이터의 전송을 요청할 때 고속 전송을 요청하는 플래그를 삽입할 수 있다. 일 실시 예에 따르면, IPC 모듈(예: 도 2의 IPC 모듈(21))은 어플리케이션으로부터 데이터의 고속 전송이 요청되면 고속 전송이 요청된 데이터의 목적지가 전자 장치(100) 내부인지 또는 전자 장치(100) 외부인지 확인할 수 있다. IPC 모듈은 데이터의 목적지가 전자 장치(100) 내부이면 데이터를 TCM(135)에 저장할 수 있다. 예를 들어, 전자 장치(100)에 포함된 제1 어플리케이션이 제2 어플리케이션으로 데이터를 고속으로 전송하는 경우 제1 어플리케이션에 할당된 메모리(110) 영역에서 제2 어플리케이션에 할당된 TCM(135) 영역으로 복사될 수 있다.
일 실시 예에 따르면, IPC 모듈은 고속 전송이 요청된 데이터의 처리 우선권을 지정된 레벨 이상으로 설정할 수 있다. 일 실시 예에 따르면, 코어(131)에 의해 처리되는 데이터(또는, 명령어)는 지정된 우선권 레벨에 따라 처리될 수 있다. 우선권 레벨은, 예를 들어, 코어(131)가 데이터를 처리하는 순서 및 시간의 지분을 나타낼 수 있다. 예를 들어, 우선 순위가 높게 설정된 데이터는 코어(131)에 의해 우선적으로 처리되고 상대적으로 많은 시간을 소모하여 처리될 수 있다. 일 실시 예에 다르면, IPC 모듈은 고속 전송이 요청된 데이터에 대해 처리 우선권을 높게 설정함으로써 컨텍스트 전환 및 대기 지연 시간을 최소화하여 데이터의 처리 속도를 향상시킬 수 있다.
일 실시 예에 따르면, IPC 모듈은 어플리케이션으로부터 데이터의 고속 전송이 요청되면 데이터의 크기를 확인할 수 있다. IPC 모듈은 데이터가 지정된 크기 이상이면 데이터를 TCM(135)에 저장할 수 있다. 지정된 크기는, 예를 들어, TCM(135)의 저장 용량(capacity) 이하로 설정될 수 있다. TCM(135)은 제한된 크기를 가지므로 지정된 크기를 초과하는 데이터는 TCM(135)에 저장될 수 없으므로 IPC 모듈은 데이터의 크기에 따라 TCM(135)에 저장할지 여부를 결정할 수 있다.
도 6은 본 발명의 다양한 실시 예에 따른 전자 장치의 데이터 전송 방법을 나타내는 흐름도이다.
도 6에 도시된 흐름도는 상술한 전자 장치(100)에서 처리되는 동작들로 구성될 수 있다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1 내지 도 5를 참조하여 전자 장치(100)에 관하여 기술된 내용은 도 6에 도시된 흐름도에도 적용될 수 있다.
일 실시 예에 따르면, 610 동작에서, 전자 장치(100)에 포함된 어플리케이션으로부터 IPC 모듈로 데이터 전송이 요청될 수 있다. 일 실시 예에 따르면, 어플리케이션의 데이터 전송 요청은 서비스 이름을 포함할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는, 620 동작에서, 데이터의 목적지가 전자 장치(100) 내부인지 확인할 수 있다. 일 실시 예에 따르면, 전자 장치(100)에 포함된 IPC 모듈은 어플리케이션의 데이터 전송 요청에 포함된 서비스 이름 및 제1 통신 드라이버에 등록된 서비스 리스트에 기초하여 데이터의 목적지를 확인할 수 있다. 예를 들어, IPC 모듈은 의해 서비스 이름 및 서비스 리스트를 비교하여 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하는지 확인할 수 있다. 전자 장치(100)는 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하지 않으면 데이터의 목적지가 전자 장치(100) 내부라고 판단하고, 서비스 이름에 대응되는 연결 정보가 존재하면 데이터의 목적지가 전자 장치(100) 외부라고 판단할 수 있다.
알 실시 예에 따르면, 620 동작에서 데이터의 목적지가 전자 장치(100) 내부라고 확인되면, 전자 장치(100)는, 630 동작에서, 제1 통신 드라이버를 통해 데이터를 전송할 수 있다. 예를 들어, 전자 장치(100)는 전자 장치(100) 내부에 포함된 다른 어플리케이션으로 데이터를 전송할 수 있다.
일 실시 예에 따르면, 620 동작에서 데이터의 목적지가 전자 장치(100) 내부가 아니라고 확인되면(또는, 데이터의 목적지가 외부 전자 장치(200)이면), 전자 장치(100)는, 640 동작에서, 데이터를 전송하기 위해 외부 전자 장치(200)와 연결된 소켓이 존재하는지 확인할 수 있다.
일 실시 예에 따르면, 640 동작에서, 외부 전자 장치(200)와 연결된 소켓이 존재하면, 전자 장치(100)는, 660 동작에서, 소켓을 통해 데이터를 전송할 수 있다. 예를 들어, 전자 장치(100)에 포함된 제2 통신 드라이버는 소켓을 통해 외부 전자 장치와 연결될 수 있으며 전자 장치(100)는 외부 전자 장치와 연결된 소켓을 통해 데이터를 전송할 수 있다.
일 실시 예에 따르면, 일 실시 예에 따르면, 640 동작에서, 외부 전자 장치(200)와 연결된 소켓이 존재하지 않으면, 전자 장치(100)는, 650 동작에서 외부 전자 장치(200)와 데이터를 전송하기 위한 소켓을 연결할 수 있다. 예를 들어, 전자 장치(100)는 제2 통신 드라이버에 의해 소켓을 생성하고 생성된 소켓을 외부 전자 장치와 연결할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 외부 전자 장치(200)와 소켓이 연결되면, 660 동작에서, 연결된 소켓을 통해 데이터를 전송할 수 있다.
도 7은 본 발명의 다양한 실시 예에 따른 데이터 전송 방법을 나타내는 흐름도이다.
도 7에 도시된 흐름도는 상술한 전자 장치(100)에서 처리되는 동작들로 구성될 수 있다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1 내지 도 5를 참조하여 전자 장치(100)에 관하여 기술된 내용은 도 7에 도시된 흐름도에도 적용될 수 있다.
일 실시 예에 따르면, 710 동작에서, 전자 장치(100)에 포함된 어플리케이션으로부터 IPC 모듈로 데이터 전송이 요청될 수 있다. 일 실시 예에 따르면, 어플리케이션의 데이터 전송 요청은 서비스 이름을 포함할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는, 720 동작에서, 데이터의 목적지가 전자 장치(100) 내부인지 확인할 수 있다. 일 실시 예에 따르면, 전자 장치(100)에 포함된 IPC 모듈은 어플리케이션의 데이터 전송 요청에 포함된 서비스 이름 및 제1 통신 드라이버에 등록된 서비스 리스트에 기초하여 데이터의 목적지를 확인할 수 있다. 예를 들어, IPC 모듈은 의해 서비스 이름 및 서비스 리스트를 비교하여 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하는지 확인할 수 있다. 전자 장치(100)는 서비스 리스트에 서비스 이름에 대응되는 연결 정보가 존재하지 않으면 데이터의 목적지가 전자 장치(100) 내부라고 판단하고, 서비스 이름에 대응되는 연결 정보가 존재하면 데이터의 목적지가 전자 장치(100) 외부라고 판단할 수 있다.
일 실시 예에 따르면, 720 동작에서 데이터의 목적지가 전자 장치(100) 외부로 확인되면, 전자 장치(100)는, 740 동작에서, 제2 통신 드라이버를 통해 데이터를 전송할 수 있다.
일 실시 예에 따르면, 720 동작에서 데이터의 목적지가 전자 장치(100) 내부로 확인되면, 전자 장치(100)는, 730 동작에서, 어플리케이션으로부터 데이터의 고속 전송이 요청되었는지 확인할 수 있다. 예를 들어, 전자 장치(100)에 포함된 IPC 모듈은 데이터의 전송 요청에 고속 전송을 요청하는 플래그가 삽입되어 있는지 확인할 수 있다.
일 실시 예에 따르면, 730 동작에서 데이터의 고속 전송이 요청되지 않았다고 확인되면, 전자 장치(100)는, 760 동작에서, 메모리에 데이터를 저장할 수 있다. 예를 들어, 전자 장치(100)에 포함된 제1 어플리케이션이 제2 어플리케이션으로 데이터를 전송하는 경우 제1 통신 드라이버를 통해 제1 어플리케이션에 할당된 메모리(110) 영역에서 제2 어플리케이션에 할당된 메모리(110) 영역으로 데이터가 복사될 수 있다.
일 실시 예에 따르면, 730 동작에서 데이터의 고속 전송이 요청되었다고 확인되면, 전자 장치(100)(예: IPC 모듈)는, 740 동작에서, 데이터의 처리 우선권을 지정된 레벨 이상으로 설정할 수 있다.
일 실시 예에 따르면, 전자 장치(100)(예: IPC 모듈)는, 750 동작에서, 데이터가 지정된 크기 이하인지 확인할 수 있다. 지정된 크기는, 예를 들어, TCM(tightly coupled memory)의 저장 용량(capacity) 이하로 설정될 수 있다.
일 실시 예에 따르면, 750 동작에서 데이터가 지정된 크기를 초과하는 것으로 확인되면, 전자 장치(100)(예: IPC 모듈)는, 760 동작에서, 메모리에 데이터를 저장할 수 있다. 예를 들어, 전자 장치(100)에 포함된 제1 어플리케이션이 제2 어플리케이션으로 데이터를 전송하는 경우 제1 통신 드라이버를 통해 제1 어플리케이션에 할당된 메모리(110) 영역에서 제2 어플리케이션에 할당된 메모리(110) 영역으로 데이터가 복사될 수 있다.
일 실시 예에 따르면, 750 동작에서 데이터가 지정된 크기 이하로 확인되면, 전자 장치(100)(예: IPC 모듈)는, 770 동작에서, TCM에 데이터를 저장할 수 있다. 예를 들어, 전자 장치(100)에 포함된 제1 어플리케이션이 제2 어플리케이션으로 데이터를 고속으로 전송하는 경우 제1 통신 드라이버를 통해 제1 어플리케이션에 할당된 메모리(110) 영역에서 제2 어플리케이션에 할당된 TCM(135) 영역으로 데이터가 복사될 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다.
다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. 그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 문서에서 기재된 기술의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 문서의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    어플리케이션, 프로세스 간 통신을 지원하는 IPC(inter-process communication) 모듈, 제1 통신 드라이버 및 제2 통신 드라이버를 포함하는 소프트웨어를 저장하는 메모리; 및
    상기 메모리에 저장된 소프트웨어를 실행하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 어플리케이션으로부터 상기 IPC 모듈로 데이터의 전송이 요청되면 상기 IPC 모듈에 의해 상기 데이터의 목적지가 상기 전자 장치의 내부인지 또는 상기 전자 장치의 외부인지 확인하고 상기 데이터의 목적지가 상기 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하고, 상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하도록 설정된 전자 장치.
  2. 제1항에 있어서,
    상기 제1 통신 드라이버는 상기 프로세서에 의해 실행되는 프로세스간 통신을 위한 IPC 드라이버이고,
    상기 제2 통신 드라이버는 외부 전자 장치와의 통신을 위한 소켓 드라이버인 전자 장치.
  3. 제1항에 있어서,
    상기 제1 통신 드라이버는 서비스의 이름 및 연결 정보를 포함하는 서비스 리스트를 포함하고,
    상기 프로세서는,
    상기 제2 통신 드라이버를 통해 외부 전자 장치로부터 새로운 서비스의 등록 요청이 수신되면 상기 새로운 서비스의 이름 및 연결 정보를 상기 서비스 리스트에 추가하고 상기 어플리케이션으로 상기 새로운 서비스의 등록을 알리도록 설정된 전자 장치.
  4. 제1항에 있어서,
    상기 제1 통신 드라이버는 서비스의 이름 및 연결 정보를 서비스 리스트를 포함하고,
    상기 프로세서는,
    상기 제1 어플리케이션으로부터 상기 제1 통신 드라이버로 새로운 서비스의 등록이 요청되면 상기 새로운 서비스의 이름을 상기 서비스 리스트에 추가하고 제2 어플리케이션으로 상기 새로운 서비스의 등록을 알리도록 설정된 전자 장치.
  5. 제1항에 있어서,
    상기 제1 통신 드라이버는 서비스의 이름 및 연결 정보를 포함하는 서비스 리스트를 포함하고,
    상기 프로세서는,
    상기 서비스 리스트에 포함된 연결 정보에 기초하여 상기 데이터의 목적지가 상기 전자 장치의 내부인지 또는 외부인지 판단하도록 설정된 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 데이터 전송 요청에 포함된 서비스 이름 및 상기 서비스 리스트를 비교하고, 상기 서비스 리스트에 상기 서비스 이름에 대응되는 연결 정보가 존재하지 않으면 상기 데이터의 목적지가 상기 전자 장치의 내부라고 판단하고, 상기 서비스 리스트에 상기 서비스 이름에 대응되는 연결 정보가 존재하면 상기 데이터의 목적지가 상기 전자 장치의 내부라고 판단하도록 설정된 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 데이터의 목적지가 상기 전자 장치 외부이면 상기 제2 통신 드라이버에 의해 상기 데이터를 전송하기 위해 연결된 소켓이 존재하는지 확인하고, 상기 연결된 소켓이 존재하지 않으면 상기 데이터와 관련된 서비스의 연결 정보를 이용하여 외부 전자 장치와 소켓을 연결하도록 설정된 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는 TCM(tightly-coupled memory)을 포함하고, 상기 데이터의 목적지가 상기 전자 장치 내부이고 상기 어플리케이션으로부터 상기 데이터의 고속 전송이 요청되면 상기 데이터를 상기 TCM에 저장하도록 설정된 전자 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 어플리케이션으로부터 상기 데이터의 고속 전송이 요청되면 상기 IPC 모듈을 이용하여 상기 데이터의 처리 우선권을 지정된 레벨 이상으로 설정한 후 상기 데이터를 상기 TCM에 저장하도록 설정된 전자 장치.
  10. 제8항에 있어서,
    상기 프로세서는,
    상기 데이터의 크기가 지정된 크기 이하이면 상기 데이터를 상기 TCM에 저장하도록 설정된 전자 장치.
  11. 전자 장치의 데이터 전송 방법에 있어서,
    어플리케이션이 IPC(inter-process communication) 모듈로 데이터의 전송을 요청하는 동작;
    상기 IPC 모듈이 상기 데이터의 목적지를 확인하는 동작;
    상기 데이터의 목적지가 상기 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하는 동작; 및
    상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하는 동작;을 포함하는 방법.
  12. 제11항에 있어서,
    상기 제1 통신 드라이버는 프로세서에 의해 실행되는 프로세스간 통신을 위한 IPC 드라이버이고,
    상기 제2 통신 드라이버는 외부 전자 장치와의 통신을 위한 소켓 드라이버인 방법.
  13. 제11항에 있어서,
    제2 통신 드라이버가 외부 전자 장치로부터 새로운 서비스의 등록 요청을 수신하는 동작;
    제1 통신 드라이버가 상기 새로운 서비스의 이름 및 연결 정보를 서비스 리스트에 추가하는 동작; 및
    상기 제1 통신 드라이버가 상기 어플리케이션으로 상기 새로운 서비스의 등록을 알리는 동작;을 더 포함하는 방법.
  14. 제11항에 있어서,
    상기 제1 어플리케이션이 상기 제1 통신 드라이버로 새로운 서비스의 등록을 요청하는 동작;
    상기 제1 통신 드라이버가 상기 새로운 서비스의 이름을 서비스 리스트에 추가하는 동작; 및
    상기 제1 통신 드라이버가 제2 어플리케이션으로 상기 새로운 서비스의 등록을 알리는 동작;을 더 포함하는 방법.
  15. 제14항에 있어서,
    상기 데이터의 목적지를 판단하는 동작은,
    상기 IPC 모듈이 상기 서비스 리스트에 포함된 연결 정보에 기초하여 상기 데이터의 목적지를 판단하는 동작;을 포함하는 방법.
  16. 제15항에 있어서,
    연결 정보에 기초하여 상기 데이터의 목적지를 판단하는 동작은,
    상기 데이터 전송 요청에 포함된 서비스 이름 및 상기 서비스 리스트를 비교하는 동작;
    상기 서비스 리스트에 상기 서비스 이름에 대응되는 연결 정보가 존재하지 않으면 상기 데이터의 목적지가 상기 전자 장치의 내부라고 판단하는 동작; 및
    상기 서비스 리스트에 상기 서비스 이름에 대응되는 연결 정보가 존재하면 상기 데이터의 목적지가 상기 전자 장치의 내부라고 판단하는 동작;을 포함하는 방법.
  17. 제11항에 있어서,
    상기 데이터의 목적지가 상기 전자 장치 외부이면 상기 제2 통신 드라이버가 의해 상기 데이터를 전송하기 위해 연결된 소켓이 존재하는지 확인하는 동작; 및
    상기 연결된 소켓이 존재하지 않으면, 상기 제2 통신 드라이버가 상기 데이터와 관련된 서비스의 연결 정보를 이용하여 외부 전자 장치와 소켓을 연결하는 동작;을 더 포함하는 방법.
  18. 제11항에 있어서,
    상기 데이터의 목적지가 상기 전자 장치 내부이고 상기 어플리케이션으로부터 상기 데이터의 고속 전송이 요청되면 상기 데이터를 TCM(tightly-coupled memory)에 저장하는 동작;을 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 어플리케이션으로부터 상기 데이터의 고속 전송이 요청되면, 상기 IPC 모듈이 상기 데이터의 처리 우선권을 지정된 레벨 이상으로 설정하는 동작; 및
    상기 데이터를 상기 TCM에 저장하는 동작;을 더 포함하는 방법.
  20. 어플리케이션이 IPC(inter-process communication) 모듈로 데이터의 전송을 요청하는 동작;
    상기 IPC 모듈이 상기 데이터의 목적지를 확인하는 동작;
    상기 데이터의 목적지가 전자 장치의 내부이면 제1 통신 드라이버를 통해 상기 데이터를 전송하는 동작; 및
    상기 데이터의 목적지가 상기 전자 장치의 외부이면 제2 통신 드라이버를 통해 상기 데이터를 전송하는 동작;을 포함하는 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
KR1020160142400A 2016-10-28 2016-10-28 전자 장치 및 전자 장치의 데이터 전송 방법 KR20180046791A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160142400A KR20180046791A (ko) 2016-10-28 2016-10-28 전자 장치 및 전자 장치의 데이터 전송 방법
PCT/KR2017/011902 WO2018080192A1 (en) 2016-10-28 2017-10-26 Electronic device and data transfer method thereof
US15/794,299 US20180121268A1 (en) 2016-10-28 2017-10-26 Electronic device and data transfer method thereof
EP17864256.7A EP3516518A4 (en) 2016-10-28 2017-10-26 ELECTRONIC DEVICE AND DATA TRANSMISSION METHOD THEREFOR

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160142400A KR20180046791A (ko) 2016-10-28 2016-10-28 전자 장치 및 전자 장치의 데이터 전송 방법

Publications (1)

Publication Number Publication Date
KR20180046791A true KR20180046791A (ko) 2018-05-09

Family

ID=62021519

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160142400A KR20180046791A (ko) 2016-10-28 2016-10-28 전자 장치 및 전자 장치의 데이터 전송 방법

Country Status (4)

Country Link
US (1) US20180121268A1 (ko)
EP (1) EP3516518A4 (ko)
KR (1) KR20180046791A (ko)
WO (1) WO2018080192A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109612038A (zh) * 2018-11-23 2019-04-12 珠海格力电器股份有限公司 空调参数处理方法、装置、计算机设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5036459A (en) * 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
US5682534A (en) * 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US7051108B1 (en) * 2000-12-21 2006-05-23 Emc Corporation Method and system of interprocess communications
US7934218B2 (en) 2006-03-30 2011-04-26 International Business Machines Corporation Interprocess communication management using a socket layer
US8056089B2 (en) * 2006-11-07 2011-11-08 International Business Machines Corporation Shortcut IP communications between software entities in a single operating system
JP2009093526A (ja) * 2007-10-11 2009-04-30 Sysmex Corp プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム
US8544025B2 (en) * 2010-07-28 2013-09-24 International Business Machines Corporation Efficient data transfer on local network connections using a pseudo socket layer
CN107122168A (zh) * 2010-10-01 2017-09-01 Z124 多操作***
US8533343B1 (en) * 2011-01-13 2013-09-10 Google Inc. Virtual network pairs
EP2541348B1 (de) * 2011-06-28 2017-03-22 Siemens Aktiengesellschaft Verfahren und Programmiersystem zur Programmierung einer Automatisierungskomponente
US9524197B2 (en) * 2012-09-06 2016-12-20 Accedian Networks Inc. Multicasting of event notifications using extended socket for inter-process communication

Also Published As

Publication number Publication date
EP3516518A4 (en) 2019-10-23
US20180121268A1 (en) 2018-05-03
EP3516518A1 (en) 2019-07-31
WO2018080192A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
US8477852B2 (en) Uniform video decoding and display
US7478390B2 (en) Task queue management of virtual devices using a plurality of processors
KR100939398B1 (ko) 광대역 네트워크들을 위한 컴퓨터 아키텍쳐에서의 외부데이터 인터페이스
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
CN110413386A (zh) 多进程处理方法、装置、终端设备及计算机可读存储介质
US20080168443A1 (en) Virtual Devices Using a Plurality of Processors
US10482042B2 (en) Multi-processor system including memory shared by multi-processor and method thereof
KR100662256B1 (ko) 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
US20140359006A1 (en) Dynamic local function binding apparatus and method
US20110004718A1 (en) System, method, and computer program product for ordering a plurality of write commands associated with a storage device
JP2018518777A (ja) 周辺構成要素相互接続(PCI)エクスプレス(PCIe)トランザクションレイヤへのコヒーレンシ駆動型拡張
US11256444B2 (en) Method for processing read/write data, apparatus, and computer readable storage medium thereof
CN114625481A (zh) 数据处理方法、装置、可读介质及电子设备
CN113886019B (zh) 虚拟机创建方法、装置、***、介质和设备
JP2005209206A (ja) マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ
KR20180046791A (ko) 전자 장치 및 전자 장치의 데이터 전송 방법
US10346209B2 (en) Data processing system for effectively managing shared resources
US11252457B2 (en) Multimedia streaming and routing apparatus and operation method of the same
US20140157043A1 (en) Memories utilizing hybrid error correcting code techniques
CN116418848A (zh) 网络节点的配置和访问请求的处理方法、装置
CN111666579B (zh) 计算机设备及其访问控制方法和计算机可读介质
US20180373811A1 (en) Client Cloud Synchronizer
KR20150048028A (ko) 데이터 전송 관리 방법
CN117435532B (zh) 基于视频硬件加速接口的拷贝方法、装置及存储介质
CN117539802B (zh) 一种缓存操作方法、***以及相关装置