KR20240032069A - 신호 처리 장치 및 이를 구비하는 차량용 통신 장치 - Google Patents

신호 처리 장치 및 이를 구비하는 차량용 통신 장치 Download PDF

Info

Publication number
KR20240032069A
KR20240032069A KR1020247003697A KR20247003697A KR20240032069A KR 20240032069 A KR20240032069 A KR 20240032069A KR 1020247003697 A KR1020247003697 A KR 1020247003697A KR 20247003697 A KR20247003697 A KR 20247003697A KR 20240032069 A KR20240032069 A KR 20240032069A
Authority
KR
South Korea
Prior art keywords
processor
message
data
signal processing
communication
Prior art date
Application number
KR1020247003697A
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 엘지전자 주식회사
Publication of KR20240032069A publication Critical patent/KR20240032069A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices
    • H04W88/10Access point devices adapted for operation in multiple networks, e.g. multi-mode access points
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 개시는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치에 관한 것이다. 본 개시의 일 실시예에 따른 신호 처리 장치는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서와, 제1 프로세서와 제2 프로세서 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리를 포함하고, 제1 프로세서 또는 제2 프로세서는, 인터럽트 신호에 기초하여, 공유 메모리에 저장된 제1 메시지 또는 제2 메시지를 수신한다. 이에 의해, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.

Description

신호 처리 장치 및 이를 구비하는 차량용 통신 장치
본 개시는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치에 관한 것이며, 더욱 상세하게는 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치에 관한 것이다.
차량은 탑승하는 사용자가 원하는 방향으로 이동시키는 장치이다. 대표적으로 자동차를 예를 들 수 있다.
한편, 차량을 이용하는 사용자의 편의를 위해, 차량 내부에 차량용 통신 장치가 탑재되고 있다.
특히, 차량 내부의 복수의 프로세서 사이의 데이터 통신을 위해, 고속 라우터인 게이트웨이가 사용될 수 있다.
한국등록특허번호 제10-1020948호(이하, 선행 문헌이라 함)는, 차량용 네트워크 게이트웨이 및 네트워크 시스템에 관한 것으로서, 차량의 텔레매틱스 모듈을 이용하여 무선랜을 지원하는 이동 단말이 인터넷을 이용하는 내용이 개시된다.
그러나, 선행 문헌에 의하면, 차량용 네트워크 게이트웨이의 통신 방식이, UART, SPI 등으로 낮은 대역폭과 불필요한 메모리 복사로 인해, 실시간 데이터 전송 및 대용량 데이터 전송이 어렵다는 문제가 있다.
본 개시의 목적은, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 다른 목적은, 다른 통신 방식에 기반한 메시지를 신속하게 전송할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 인터럽트 기반하여 프로세서를 효율적으로 사용할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 프로세서의 락 메커니즘 없이 동작할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 프로세서의 클럭 또는 메모리 억세스 성능에 기반하여 데이터 전송 손실을 상당히 저감할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 프로세서 간 통신에서 우선권 높은 데이터 또는 이벤트의 실시간 전송을 보장할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 실시간 데이터와 대용량 데이터를 신속하게 처리할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른 신호 처리 장치 및 이를 구비하는 차량용 통신 장치는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서와, 제1 프로세서와 제2 프로세서 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리를 포함하고, 제1 프로세서 또는 제2 프로세서는, 인터럽트 신호에 기초하여, 공유 메모리에 저장된 제1 메시지 또는 제2 메시지를 수신한다.
한편, 제1 프로세서 또는 제2 프로세서에 인터럽트 신호를 출력하는 인터럽트 라우터를 더 포함할 수 있다.
한편, 인터럽트 라우터는, 제1 프로세서 내의 각 코어 또는 제2 프로세서 내의 각 코어에, 각각 인터럽트 신호를 출력할 수 있다.
한편, 인터럽트 라우터는, 인터럽트의 트리거링 횟수를 동적으로 조절할 수 있다.
한편, 제1 프로세서 또는 제2 프로세서는, 무잠금 큐(lock-free queue)에 기초하여 동작할 수 있다.
한편, 제1 프로세서 또는 제2 프로세서는, 클럭 또는 메모리 억세스 성능에 따라, 다이내믹 대역폭에 기초하여, 제1 메시지 또는 제2 메시지를 전송 또는 수신할 수 있다.
한편, 제1 프로세서는, 제1 클럭에 따른 제1 다이내믹 대역폭에 기초하여, 제1 메시지를 공유 메모리로 전송하며, 제2 프로세서는, 제2 클럭에 따른 제2 다이내믹 대역폭에 기초하여, 제2 메시지를 공유 메모리로 전송할 수 있다.
한편, 제1 프로세서는, 프로세서 간 통신(Inter Processor Communication와, IPC)을 위한 제1 서버와 제1 드라이버를 실행하고, 제2 프로세서는, 프로세서 간 통신을 위한 제2 서버와 제2 드라이버를 실행하고, 제1 서버와 제2 서버 사이에, 인터럽트 신호가 전송되고, 제1 서버 또는 제2 서버는, 공유 메모리로 데이터를 전송하거나 데이터를 수신할 수 있다.
한편, 제2 프로세서 실행되는 어플리케이션이, 공유 메모리에 억세스하여 제1 메시지를 수신할 수 있다.
한편, 제1 프로세서 실행되는 어플리케이션이, 공유 메모리에 억세스하여 제2 메시지를 수신할 수 있다.
한편, 공유 메모리는, 제1 프로세서 또는 제2 프로세서에서 실행되는 어플리케이션 별로 영역을 구분할 수 있다.
한편, 인터럽트 라우터는, 전송되는 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다.
한편, 제1 프로세서는, 전송되는 제1 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 제1 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다.
한편, 제2 프로세서는, 제2 메시지가 업데이트 데이터 또는 리프로그래밍을 위한 데이터를 포함하는 경우, 데이터를 분할하여 복수 횟수로 제1 메모리에 데이터를 전송하도록 제어할 수 있다.
한편, 제1 프로세서는, 복수 채널을 통해 제1 메시지를 수신하고, 공유 메모리를 통해, 제1 메시지를 전송하도록 제어할 수 있다.
한편, 제2 프로세서는, 공유 메모리를 통해 제1 메시지를 수신하고, 제1 메시지를 제2 통식 기반의 데이터로 변환하고, 변환된 데이터를, 외부의 서버로 전송하도록 제어할 수 있다.
한편, 제1 프로세서는, 프로세서 간 통신(Inter Processor Communication와, IPC)을 위한 제1 캐쉬(cache)를 포함하는 제1 매니저를 구비하고, 제2 프로세서는, 프로세서 간 통신을 위한 제2 캐쉬와 타이머를 포함하는 제2 매니저를 구비할 수 있다.
한편, 제1 프로세서는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 프로세서 간 통신을 통해, 제2 프로세서로 제1 메시지를 전송할 수 있다.
한편, 본 개시의 일 실시예에 따른 신호 처리 장치 및 이를 구비하는 차량용 통신 장치는, IPC 채널을 구비하는 제1 메모리와, 차량 속도 데이터를 포함하는 센서 데이터를 저장하는 제2 메모리를 더 구비하고, 공유 메모리는, 제1 메모리 또는 제2 메모리의 가용 사이즈에 기초하여, 제1 메모리 또는 제2 메모리 중에서 선택될 수 있다.
본 개시의 일 실시예에 따른 신호 처리 장치 및 이를 구비하는 차량용 통신 장치는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서와, 제1 프로세서와 제2 프로세서 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리를 포함하고, 제1 프로세서 또는 제2 프로세서는, 인터럽트 신호에 기초하여, 공유 메모리에 저장된 제1 메시지 또는 제2 메시지를 수신한다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 특히, 다른 통신 방식에 기반한 메시지를 신속하게 전송할 수 있게 된다.
한편, 제1 프로세서 또는 제2 프로세서에 인터럽트 신호를 출력하는 인터럽트 라우터를 더 포함할 수 있다.
한편, 인터럽트 라우터는, 제1 프로세서 내의 각 코어 또는 제2 프로세서 내의 각 코어에, 각각 인터럽트 신호를 출력할 수 있다. 이에 따라, 인터럽트 기반하여 프로세서를 효율적으로 사용할 수 있게 된다.
한편, 인터럽트 라우터는, 인터럽트의 트리거링 횟수를 동적으로 조절할 수 있다. 이에 따라, 인터럽트 기반하여 프로세서를 효율적으로 사용할 수 있게 된다.
한편, 제1 프로세서 또는 제2 프로세서는, 무잠금 큐(lock-free queue)에 기초하여 동작할 수 있다. 이에 따라, 프로세서의 락 메커니즘 없이 동작할 수 있게 된다.
한편, 제1 프로세서 또는 제2 프로세서는, 클럭 또는 메모리 억세스 성능에 따라, 다이내믹 대역폭에 기초하여, 제1 메시지 또는 제2 메시지를 전송 또는 수신할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 또한, 프로세서의 클럭 또는 메모리 억세스 성능에 기반하여 데이터 전송 손실을 상당히 저감할 수 있게 된다.
한편, 제1 프로세서는, 제1 클럭에 따른 제1 다이내믹 대역폭에 기초하여, 제1 메시지를 공유 메모리로 전송하며, 제2 프로세서는, 제2 클럭에 따른 제2 다이내믹 대역폭에 기초하여, 제2 메시지를 공유 메모리로 전송할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 또한, 프로세서의 클럭 또는 메모리 억세스 성능에 기반하여 데이터 전송 손실을 상당히 저감할 수 있게 된다.
한편, 제1 프로세서는, 프로세서 간 통신(Inter Processor Communication와, IPC)을 위한 제1 서버와 제1 드라이버를 실행하고, 제2 프로세서는, 프로세서 간 통신을 위한 제2 서버와 제2 드라이버를 실행하고, 제1 서버와 제2 서버 사이에, 인터럽트 신호가 전송되고, 제1 서버 또는 제2 서버는, 공유 메모리로 데이터를 전송하거나 데이터를 수신할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서 실행되는 어플리케이션이, 공유 메모리에 억세스하여 제1 메시지를 수신할 수 있다. 이에 따라, 다른 통신 방식에 기반한 메시지를 신속하게 수신할 수 있게 된다.
한편, 제1 프로세서 실행되는 어플리케이션이, 공유 메모리에 억세스하여 제2 메시지를 수신할 수 있다. 이에 따라, 다른 통신 방식에 기반한 메시지를 신속하게 수신할 수 있게 된다.
한편, 공유 메모리는, 제1 프로세서 또는 제2 프로세서에서 실행되는 어플리케이션 별로 영역을 구분할 수 있다. 이에 따라, 공유 메모리를 안정적으로 사용할 수 있게 된다.
한편, 인터럽트 라우터는, 전송되는 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
한편, 제1 프로세서는, 전송되는 제1 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 제1 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
한편, 제2 프로세서는, 제2 메시지가 업데이트 데이터 또는 리프로그래밍을 위한 데이터를 포함하는 경우, 데이터를 분할하여 복수 횟수로 제1 메모리에 데이터를 전송하도록 제어할 수 있다. 이에 따라, 과도한 인터럽트로 인한 성능 저하를 방지할 수 있게 된다.
한편, 제1 프로세서는, 복수 채널을 통해 제1 메시지를 수신하고, 공유 메모리를 통해, 제1 메시지를 전송하도록 제어할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
한편, 제2 프로세서는, 공유 메모리를 통해 제1 메시지를 수신하고, 제1 메시지를 제2 통식 기반의 데이터로 변환하고, 변환된 데이터를, 외부의 서버로 전송하도록 제어할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
한편, 제1 프로세서는, 프로세서 간 통신(Inter Processor Communication와, IPC)을 위한 제1 캐쉬(cache)를 포함하는 제1 매니저를 구비하고, 제2 프로세서는, 프로세서 간 통신을 위한 제2 캐쉬와 타이머를 포함하는 제2 매니저를 구비할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제1 프로세서는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 프로세서 간 통신을 통해, 제2 프로세서로 제1 메시지를 전송할 수 있다. 이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 본 개시의 일 실시예에 따른 신호 처리 장치 및 이를 구비하는 차량용 통신 장치는, IPC 채널을 구비하는 제1 메모리와, 차량 속도 데이터를 포함하는 센서 데이터를 저장하는 제2 메모리를 더 구비하고, 공유 메모리는, 제1 메모리 또는 제2 메모리의 가용 사이즈에 기초하여, 제1 메모리 또는 제2 메모리 중에서 선택될 수 있다. 이에 따라, 공유 메모리를 효율적으로 사용할 수 있게 된다.
도 1은 차량 외부 및 차량 내부의 일예를 도시한 도면이다.
도 2a 내지 도 2c는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 다양한 아키텍쳐를 도시한 도면이다.
도 3은 본 개시의 실시에에 따른 신호 처리 장치의 내부 블록도의 일예이다.
도 4a는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 일예를 도시한 도면이다.
도 4b는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 다른 예를 도시한 도면이다.
도 5는 도 4b의 차량용 디스플레이 장치의 내부 블록도의 일예이다.
도 6a는 본 개시와 관련한 차량용 통신 장치의 내부 블록도의 일예이다.
도 6b는 도 6a의 설명에 참조되는 도면이다.
도 7a는 본 개시의 실시에에 따른 차량용 통신 장치의 내부 블록도의 일예이다.
도 7b는 도 7a의 설명에 참조되는 도면이다.
도 8은 본 개시의 실시에에 따른 차량용 통신 장치의 내부 블록도의 다른 예이다.
도 9a 내지 도 13b는 도 8의 설명에 참조되는 도면이다.
이하에서는 도면을 참조하여 본 개시를 보다 상세하게 설명한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
도 1은 차량 외부 및 차량 내부의 일예를 도시한 도면이다.
도면을 참조하면, 차량(200)은, 동력원에 의해 회전하는 복수의 바퀴(103FR,103FL,103RL,..), 차량(200)의 진행 방향을 조절하기 위한 스티어링휠(150)에 의해 동작한다.
한편, 차량(200)은, 차량 전방의 영상 획득을 위한 카메라(195) 등을 더 구비할 수 있다.
한편, 차량(200)은, 내부에 영상, 정보 등의 표시를 위한 복수의 디스플레이(180a,180b)를 구비할 수 있다.
도 1에서는, 복수의 디스플레이(180a,180b)로, 클러스터 디스플레이(180a), AVN(Audio Video Navigation) 디스플레이(180b)를 예시한다. 그 외, HUD(Head Up Display) 등도 가능하다.
한편, AVN(Audio Video Navigation) 디스플레이(180b)는, 센터 정보 디스플레이(Center Information Dislpay)라 명명할 수도 있다.
한편 본 개시의 실시예에 따르면, 복수의 디스플레이(180a,180b)를 구비하는 차량용 디스플레이 장치(100)에서, 복수의 디스플레이(180a,180b)에서 동일한 영상을 동기화하여 표시할 수 있다.
특히, 차량용 디스플레이 장치(100) 내의 신호 처리 장치(170)는, 복수의 가상화 머신에 동일한 데이터를 동기화하여 전송하며, 복수의 디스플레이에 표시되는 영상은 서로 동일하도록 제어할 수 있다다.
한편, 본 명세서에서 기술되는 차량(200)은, 동력원으로서 엔진을 구비하는 차량, 동력원으로서 엔진과 전기 모터를 구비하는 하이브리드 차량, 동력원으로서 전기 모터를 구비하는 전기 차량 등을 모두 포함하는 개념일 수 있다.
도 2a 내지 도 2c는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 다양한 아키텍쳐를 도시한 도면이다.
먼저, 도 2a는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 제1 아키텍쳐를 도시한 도면이다.
도면을 참조하면, 제1 아키텍쳐(300a)는, 존(zone) 기반의 아키텍체에 대응할 수 있다.
이에 따라, 복수의 존(zone)(Z1~Z4)에, 각각 차량 내부의 센서 장치와 프로세서가 배치될 수 있으며, 복수의 존(zone)(Z1~Z4)의 중앙 영역에, 차량용 통신 게이트웨이(GWDa)를 포함하는 신호 처리 장치(170a)가 배치될 수 있다.
한편, 신호 처리 장치(170a)는, 차량용 통신 게이트웨이(GWDa) 외에, 추가로, 자율 주행 제어 모듈(ACC), 칵핏 제어 모듈(CPG) 등을 더 포함할 수 있다.
이러한, 신호 처리 장치(170a) 내의 차량용 통신 게이트웨이(GWDa)는, HPC(High Performance Computing) 게이트웨이일 수 있다.
즉, 도 2a의 신호 처리 장치(170a)는 통합형 HPC로서, 외부의 통신 모듈(미도시) 또는 복수의 존(zone)(Z1~Z4) 내의 프로세서(미도시)와 데이터를 교환할 수 있다.
도 2b는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 제2 아키텍쳐를 도시한 도면이다.
도면을 참조하면, 제2 아키텍쳐(300b)는, 도메인 통합형 아키텍쳐에 대응할 수 있다.
이에 따라, 게이트웨이(GWDb)에, 바디 샤시 제어 모듈(BSG), 파워 제어 모듈(PTG), ADAS 제어 모듈(ADG), 칵핏 제어 모듈(CPG)가 병렬로 접속되며, 각 모듈(BSG,PTG,ADG,CPG)에, 복수의 프로세서(ECU)가 각각 전기적으로 접속될 수 있다.
한편, 각 프로세서(ECU)는, 게이트웨이(GWDb)에 통합하여 접속될 수 있다.
한편, 도 2b의 게이트웨이(GWDb)를 포함하는 신호 처리 장치(170)는, 도메인 통합형 신호 처리 장치로서 동작하게 된다.
도 2c는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 제3 아키텍쳐를 도시한 도면이다.
도면을 참조하면, 제3 아키텍쳐(300c)는, 분산형 아키텍쳐에 대응할 수 있다.
이에 따라, 게이트웨이(GWDc)에, 바디 샤시 제어 모듈(BSG), 파워 제어 모듈(PTG), ADAS 제어 모듈(ADG), 칵핏 제어 모듈(CPG)이 병렬 접속되며, 특히, 각 제어 모듈 내의 복수의 프로세서(ECU)가, 병렬로 게이트웨이(GWDb)에 접속될 수 있다.
도 2b와 비교하면, 제3 아키텍쳐는, 각 프로세서(ECU)가, 다른 모듈에 접속 없이, 바로 게이트웨이(GWDb)에 접속되는 것에 그 차이가 있다.
한편, 도 2c의 게이트웨이(GWDc)를 포함하는 신호 처리 장치(170)는, 분산형 신호 처리 장치로서 동작하게 된다.
도 3은 본 개시의 실시에에 따른 신호 처리 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시의 실시에에 따른 신호 처리 장치(170)는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서(732a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서(732b)를 포함한다.
이때, 제2 통신 방식은, 제1 통신 방식 보다 통신 속도가 더 빠르거나, 대역폭이 더 클 수 있다.
예를 들어, 제2 통신 방식은, 이더넷 통신 방식이며, 제1 통신 방식은 CAN 통신 방식일 수 있다. 이에 따라, 제1 메시지는 CAN 메시지일 수 있으며, 제2 메시지는 이더넷 메시지일 수 있다.
한편, 본 개시의 실시에에 따른 신호 처리 장치(170)는, IPC 채널을 구비하는 제1 메모리(320)와, 차량 속도 데이터를 포함하는 센서 데이터를 저장하는 제2 메모리(330)를 더 구비한다.
예를 들어, 제1 메모리(320)는, SRAM(Static RAM)일 수 있으며, 제2 메모리(330)는 DDR 메모리일 수 있다. 특히, 제2 메모리(330)는, DDR SDRAM(Double data rate synchronous dynamic random access memory)일 수 있다.
한편, 본 개시의 실시에에 따른 신호 처리 장치(170)는, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리(508)를 포함한다.
이와 같이, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 통신시 공유 메모리(508)를 이용한 프로세서간 통신을 수행함으로써, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 데이터 전송을 수행할 수 있게 된다.
한편, 공유 메모리(508)는, 제1 메모리(320) 내에 구비되는 것이 바람직하다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제1 프로세서(732a)는, 내부에 복수의 프로세서 코어(317o,317a,317b)를 구비할 수 있다.
한편, 제1 프로세서(732a)는, 외부의 차량 센서들로부터 CAN 메시지를 수신하는 인터페이스(319)를 더 구비할 수 있다.
예를 들어, 제1 프로세서(732a) 내의 제1 프로세서 코어(317o)는, 복수의 애플리케이션을 실행하거나, 제1 오토사(AUTomotive Open System Architecture; AUTOSAR)(312)를 실행할 수 있다.
특히, 제1 프로세서 코어(317o)는, 제2 오토사(312)를 실행하여, 프로세서 간 통신 핸들러(IPC Handler)(314)를 실행할 수 있다.
한편, IPC Handler)(314)는, 제1 메모리(320)와 데이터를 교환하거나, 제1 프로세서 코어(317o)에서 실행되는 애플리케이션과 IPC 데이터를 교환할 수 있다.
한편, IPC Handler)(314)는, 제2 프로세서(732b) 내의 IPC 드라이버(348)로, 인터럽트를 교환할 수 있다.
한편, 제1 프로세서(732a) 내의 제2 프로세서 코어(317a)는, IDS를 실행하고, 제2 메모리(330)로부터의 CAN 데이터를 수신할 수 있다.
한편, 제1 프로세서(732a) 내의 제3 프로세서 코어(317b)는, Logging을 실행하여, 인터페이스(319)를 통해 수신되는 CAN 데이터를 제2 메모리(330)에 저장할 수 있다.
한편, 제1 프로세서(732a) 내의 제3 프로세서 코어(317b)는, 프로세서 간 통신(IPC) 모듈(318)을 실행하여, 제1 메모리(320)와 IPC 데이터를 교환할 수 있다.
한편, 제1 프로세서(732a) 내의 제3 프로세서 코어(317b)는, 제2 프로세서(732b) 내의 IPC 드라이버(348)로, 인터럽트를 전송할 수 있다.
제1 메모리(320)는, IPC Handler)(314) 또는 IPC 모듈(318)과 IPC 데이터를 교환할 수 있다.
한편, 제2 프로세서(732b)는, 애플리케이션(343), IPC 핸들러(345), IPC 데몬(daemon)(346), IPC 드라이버(348) 등을 실행할 수 있다.
한편, 제2 프로세서(732b)는, 서비스 지향 아키텍쳐(Service Oriented Architecture; SOA) 어댑터(341), 진단 서버(342), 제2 오토사(347)를 더 실행할 수 있다.
제2 오토사(347)는, 어댑티브 오토사(Adaptive AUTOSAR)일 수 있으며, 제1 오토사(312)는 클래식 오토사(Classic AUTOSAR)일 수 있다.
IPC 데몬(daemon)(346)은, SOA 어댑터(341), 진단 서버(342), IPC 핸들러(345), IPC 드라이버(348) 등과 인터럽트 신호를 교환할 수 있다.
한편, 제1 메모리(320)는, SOA 어댑터(341), 진단 서버(342), IPC 핸들러(345) 등과 IPC 데이터를 교환할 수 있다.
한편, 도 3의 설명에서 기술한 IPC 데이터는, CAN 메시지 또는 이더넷 메시지일 수 있다.
한편, IPC Handler(345)는, 진단, 펌웨어 Upgrade, 시스템 정보 등의 데이터를 제2 오토사(347) 기반으로 제공하는 Service Provider로 동작할 수 있다.
한편, 도 3에는 도시하지 않았지만, 제1 프로세서(732a)는, 메시지 라우터(미도시)를 실행하고, 메시지 라우터는, CAN 메시지와 같은 제1 메시지의 프레임을, 이더넷 메시지와 같은 제2 메시지의 프레임 형식으로 변환하여, 제2 프로세서(732b)로 전송하도록 제어할 수 있다.
한편, 도 3에는 도시하지 않았지만, 제1 프로세서(732a)는, CAN 드라이버(미도시), CAN 인터페이스(미도시)를 더 실행할 수 있다.
예를 들어, CAN 인터페이스(미도시)는, 제1 프로세서(732a) 내의 제4 프로세서 코어(미도시)와 제5 프로세서 코어(미도시)에서 각각 8개의 채널로, 총 16개의 채널로 실행되는 것도 가능하다.
이때, 제4 프로세서 코어(미도시)에서 실행되는 제1 CAN 인터페이스(미도시)는, 프로세서 간 통신시의 제1 큐(PTb)(queue)에 대응하고, 제5 프로세서 코어(미도시)에서 실행되는 제2 CAN 인터페이스(미도시)는, 프로세서 간 통신시의 제1 큐(PTb) 보다 우선권이 높이 제2 큐(PTa)에 대응할 수 있다.
도 4a는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 일예를 도시한 도면이다.
도면을 참조하면, 차량 내부에는, 클러스터 디스플레이(180a), AVN(Audio Video Navigation) 디스플레이(180b), 뒷 좌석 엔터테인먼트(Rear Seat Entertainment) 디스플레이(180c,180d), 룸미러 디스플레이(미도시) 등이 장착될 수 있다.
도 4b는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 다른 예를 도시한 도면이다.
본 개시의 실시예에 따른 차량용 디스플레이 장치(100)는, 복수의 디스플레이(180a~180b), 및 복수의 디스플레이(180a~180b)에 영상, 정보 등을 표시하기 위한 신호 처리를 수행하는 신호 처리 장치(170)를 구비할 수 있다.
복수의 디스플레이(180a~180b) 중 제1 디스플레이(180a)는, 주행 상태, 동작 정보 등의 표시를 위한 클러스터 디스플레이(180a)이고, 제2 디스플레이(180b)는, 챠량 운행 정보, 네비게이션 지도, 다양한 엔테테인먼트 정보 또는 영상의 표시를 위한 AVN(Audio Video Navigation) 디스플레이(180b)일 수 있다.
신호 처리 장치(170)는, 내부에 프로세서(175)를 구비하며, 프로세서(175) 내의 하이퍼바이저(미도시) 상에서, 제1 가상화 머신 내지 제3 가상화 머신(미도시)을 실행할 수 있다.
제2 가상화 머신(미도시)은 제1 디스플레이(180a)를 위해 동작하며, 제3 가상화 머신(미도시)은, 제2 디스플레이(180b)를 위해 동작할 수 있다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로, 동일한 데이터 전송을 위해, 하이퍼바이저(505) 기반의 공유 메모리(508)가 설정되도록 제어할 수 있다. 이에 따라, 차량 내의 제1 디스플레이(180a)와 제2 디스플레이(180b)에 동일한 정보 또는 동일한 영상을 동기화하여 표시할 수 있게 된다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 데이터 분담 처리를 위해, 제2 가상화 머신(미도시)과 제3 가상화 머신(미도시)에 데이터의 적어도 일부를 공유한다. 이에 따라, 차량 내의 복수의 디스플레이를 위한 복수의 가상화 머신에서 데이터를 분담하여 처리할 수 있게 된다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 차량의 휠 속도 센서 데이터를 수신하고, 처리하여, 제2 가상화 머신(미도시) 또는 제3 가상화 머신(미도시) 중 적어도 하나로, 처리된 휠 속도 센서 데이터를 전송할 수 있다. 이에 따라, 차량의 휠 속도 센서 데이터를, 적어도 하나의 가상화 머신 등에 공유할 수 있게 된다.
한편, 본 개시의 실시예에 따른 차량용 디스플레이 장치(100)는, 주행 상태 정보, 간이 네비게이션 정보, 다양한 엔테테인먼트 정보 또는 영상의 표시를 위한 뒷 좌석 엔터네인먼트(Rear Seat Entertainment) 디스플레이(180c)를 더 구비할 수 있다.
신호 처리 장치(170)는, 프로세서(175) 내의 하이퍼바이저(미도시) 상에서, 제1 가상화 머신 내지 제3 가상화 머신(미도시) 외에 추가로 제4 가상화 머신(미도시)를 실행하여, RSE 디스플레이(180c)를 제어할 수 있다.
이에 따라, 하나의 신호 처리 장치(170)를 이용하여, 다양한 디스플레이(180a~180c)를 제어할 수 있게 된다.
한편, 복수의 디스플레이(180a~180c) 중 일부는, 리눅스 OS 기반 하에 동작하며, 다른 일부는 웹 OS 기반 하에 동작할 수 있다.
본 개시의 실시예에 따른 신호 처리 장치(170)는, 다양한 운영 체제(Operating system;OS) 하에 동작하는 디스플레이(180a~180c)에서도, 동일한 정보 또는 동일한 영상을 동기화하여 표시하도록 제어할 수 있다.
한편, 도 4b에서는, 제1 디스플레이(180a)에, 차량 속도 인디케이터(212a), 차량 내부 온도 인디케이터(213a)가 표시되고, 제2 디스플레이(180b)에, 복수의 애플리케이션과 차량 속도 인디케이터(212b)와 차량 내부 온도 인디케이터(213b)를 포함하는 홈 화면(222)이 표시되고, 제3 디스플레이(180c)에, 복수의 애플리케이션과 차량 내부 온도 인디케이터(213c)를 포함하는 제2 홈 화면(222b)이 표시되는 것을 예시한다.
도 5는 도 4b의 차량용 디스플레이 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시의 실시예에 따른 차량용 디스플레이 장치(100)는, 입력부(110), 외부 장치와의 통신을 위한 통신부(120), 내부 통신을 위한 복수의 통신 모듈(EMa~EMd), 메모리(140), 신호 처리 장치(170), 복수의 디스플레이(180a~180c), 오디오 출력부(185), 전원 공급부(190)를 구비할 수 있다.
복수의 통신 모듈(EMa~EMd)은, 예를 들어, 도 2a의 복수의 존(zone)(Z1~Z4)에 각각 배치될 수 있다.
한편, 신호 처리 장치(170)는, 내부에, 각 통신 모듈(EM1~EM4)과의 데이터 통신을 위한 이더넷 스위치(736b)를 구비할 수 있다.
각 통신 모듈(EM1~EM4)은, 복수의 센서 장치(SN) 또는 ECU(770)와 데이터 통신을 수행할 수 있다.
한편, 복수의 센서 장치(SN)는, 카메라(195), 라이더(196), 레이더(197) 또는 위치 센서(198)를 포함할 수 있다.
입력부(110)는, 버튼 입력, 터치 입력 등을 위한 물리적인 버튼, 패드 등을 구비할 수 있다.
한편, 입력부(110)는, 사용자 음성 입력을 위한 마이크(미도시)를 구비할 수 있다.
통신부(120)는, 이동 단말기(800) 또는 서버(900)와 무선(wireless) 방식으로, 데이터를 교환할 수 있다.
특히, 통신부(120)는, 차량 운전자의 이동 단말기와, 무선으로 데이터를 교환할 수 있다. 무선 데이터 통신 방식으로는, 블루투스(Bluetooth), WiFi, WiFi Direct, APiX 등 다양한 데이터 통신 방식이 가능하다.
통신부(120)는, 이동 단말기(800) 또는 서버(900)로부터, 날씨 정보, 도로의 교통 상황 정보, 예를 들어, TPEG(Transport Protocol Expert Group) 정보를 수신할 수 있다. 이를 위해, 통신부(120)는, 이동 통신 모듈(미도시)를 구비할 수 있다.
복수의 통신 모듈(EM1~EM4)은, ECU(770) 또는 센서 장치(SN)로부터, 센서 정보 등을 수신하고, 수신한 정보를 신호 처리 장치(170)로 전송할 수 있다.
여기서, 센서 정보는, 차량 방향 정보, 차량 위치 정보(GPS 정보), 차량 각도 정보, 차량 속도 정보, 차량 가속도 정보, 차량 기울기 정보, 차량 전진/후진 정보, 배터리 정보, 연료 정보, 타이어 정보, 차량 램프 정보, 차량 내부 온도 정보, 차량 내부 습도 정보 중 적어도 하나를 포함할 수 있다.
이러한 센서 정보는, 헤딩 센서(heading sensor), 요 센서(yaw sensor), 자이로 센서(gyro sensor), 포지션 모듈(position module), 차량 전진/후진 센서, 휠 센서(wheel sensor), 차량 속도 센서, 차체 경사 감지센서, 배터리 센서, 연료 센서, 타이어 센서, 핸들 회전에 의한 스티어링 센서, 차량 내부 온도 센서, 차량 내부 습도 센서 등으로부터 획득될 수 있다.
한편, 포지션 모듈은, GPS 정보 수신을 위한 GPS 모듈 또는 위치 센서(198)을 포함할 수 있다.
한편, 복수의 통신 모듈(EM1~EM4) 중 적어도 하나는, GPS 모듈 또는 위치 센서(198)에서 센싱된 위치 정보 데이터를 신호 처리 장치(170)로 전송할 수 있다.
한편, 복수의 통신 모듈(EM1~EM4) 중 적어도 하나는, 카메라(195) 또는 라이더(196) 또는 레이더(197) 등으로부터 차량 전방 영상 데이터, 차량 측방 영상 데이터, 차량 후방 영상 데이터, 차량 주변 장애물 거리 정보 등을 수신하고, 수신한 정보를 신호 처리 장치(170)로 전송할 수 있다.
메모리(140)는, 신호 처리 장치(170)의 처리 또는 제어를 위한 프로그램 등, 차량용 디스플레이 장치(100) 전반의 동작을 위한 다양한 데이터를 저장할 수 있다.
예를 들어, 메모리(140)는, 프로세서(175) 내에서 실행하기 위한, 하이퍼바이저, 제1 가상화 머신 내지 제3 가상화 머신에 관한 데이터를 저장할 수 있다.
오디오 출력부(185)는, 신호 처리 장치(170)로부터의 전기 신호를 오디오 신호로 변환하여 출력한다. 이를 위해, 스피커 등을 구비할 수 있다.
전원 공급부(190)는, 신호 처리 장치(170)의 제어에 의해, 각 구성요소들의 동작에 필요한 전원을 공급할 수 있다. 특히, 전원 공급부(190)는, 차량 내부의 배터리 등으로부터 전원을 공급받을 수 있다.
신호 처리 장치(170)는, 차량용 디스플레이 장치(100) 내의 각 유닛의 전반적인 동작을 제어한다.
예를 들어, 신호 처리 장치(170)는, 차량용 디스플레이(180a,180b)를 위한 신호 처리를 수행하는 프로세서(175)를 포함할 수 있다.
프로세서(175)는, 프로세서(175) 내의 하이퍼바이저(미도시) 상에서, 제1 가상화 머신 내지 제3 가상화 머신(미도시)을 실행할 수 있다.
제1 가상화 머신 내지 제3 가상화 머신(미도시) 중 제1 가상화 머신(미도시)은, 서버 가상화 머신(Server Virtual Maschine)이라 명명할 수 있으며, 제2 가상화 머신 내지 제3 가상화 머신(미도시)은 게스트 가상화 머신(Guest Virtual Maschine)이라 명명할 수 있다.
예를 들어, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 복수의 센서 장치로부터의 센서 데이터, 예를 들어, 차량 센서 데이터, 위치 정보 데이터, 카메라 영상 데이터, 오디오 데이터 또는 터치 입력 데이터를 수신하고, 처리 또는 가공하여 출력할 수 있다.
이와 같이, 제1 가상화 머신(미도시)에서 대부분의 데이터 처리를 수행함으로써, 1:N 방식의 데이터의 공유가 가능하게 된다.
다른 예로, 제1 가상화 머신(미도시)은, 제2 가상화 머신 내지 제3 가상화 머신()을 위해, CAN 데이터, 이더넷 데이터, 오디오 데이터, 라디오 데이터, USB 데이터, 무선 통신 데이터를 직접 수신하고 처리할 수 있다.
그리고, 제1 가상화 머신(미도시)은, 처리된 데이터를 제2 가상화 머신 내지 제3 가상화 머신(530~540)으로 전송할 수 있다.
이에 따라, 제1 가상화 머신 내지 제3 가상화 머신(미도시) 중 제1 가상화 머신(미도시)만, 복수의 센서 장치로부터의 센서 데이터, 통신 데이터, 또는 외부 입력 데이터를 수신하여, 신호 처리를 수행할 수행함으로써, 다른 가상화 머신에서의 신호 처리 부담이 경감되며, 1:N 데이터 통신이 가능하게 되어, 데이터 공유시의 동기화가 가능하게 된다.
한편, 제1 가상화 머신(미도시)은, 데이터를 공유 메모리(508)에 기록하여, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로 동일한 데이터를 공유하도록 제어할 수 있다.
예를 들어, 제1 가상화 머신(미도시)은, 차량 센서 데이터, 상기 위치 정보 데이터, 상기 카메라 영상 데이터, 또는 상기 터치 입력 데이터를 공유 메모리(508)에 기록하여, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로 동일한 데이터를 공유하도록 제어할 수 있다. 이에 따라, 1:N 방식의 데이터의 공유가 가능하게 된다.
결국, 제1 가상화 머신(미도시)에서 대부분의 데이터 처리를 수행함으로써, 1:N 방식의 데이터의 공유가 가능하게 된다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로, 동일한 데이터 전송을 위해, 하이퍼바이저(505) 기반의 공유 메모리(508)가 설정되도록 제어할 수 있다.
한편, 신호 처리 장치(170)는, 오디오 신호, 영상 신호, 데이터 신호 등 다양한 신호를 처리할 수 있다. 이를 위해, 신호 처리 장치(170)는, 시스템 온 칩(System On Chip,SOC)의 형태로 구현될 수 있다.
한편, 도 5의 디스플레이 장치(100) 내의 신호 처리 장치(170)는, 도 7a 등의 차량용 통신 장치(700)의 신호 처리 장치(170)와 동일할 수 있다.
도 6a는 본 개시와 관련한 차량용 통신 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시와 관련한 차량용 통신 장치(600x)는, 제1 통신 게이트웨이(630a), 제2 통신 게이트 웨이(630b)를 구비한다.
제1 통신 게이트웨이(630a)는, 바디 모듈(610), 샤시 모듈(614), CAN 통신 진단 장치(616), 적어도 하나의 CAN 통신 ECU(618) 등과의 CAN 통신에 의한 CAN 신호를 교환하기 위한 CAN 트랜시버(636a)와, CAN 트랜시버(636a)에서 수신되는 CAN 신호를 신호 처리하는 제1 프로세서(632a)를 구비할 수 있다.
한편, 제1 프로세서(632a)는, 제2 통신 게이트 웨이(630b) 내의 제2 프로세서(632b)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(634a)를 구비할 있다.
제2 통신 게이트웨이(630b)는, 텔레메틱스 제어 모듈(620), 헤드 모듈(622), 이더넷 통신 진단 장치(624), 적어도 하나의 이더넷 통신 ECU(626) 등과의 이더넷 통신에 의한 이더넷 메시지를 교환하기 위한 이더넷 스위치(636b)와, 이더넷 스위치(636b)에서 수신되는 이더넷 메시지를 신호 처리하는 제2 프로세서(632b)를 구비할 수 있다.
한편, 제2 프로세서(632b)는, 제1 통신 게이트 웨이(630a) 내의 제1 프로세서(632a)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(634b)를 구비할 있다.
한편, 제1 프로세서(632a) 내의 IPC 매니저(634a)와 제2 프로세서(632b) 내의 IPC 매니저(634b)는, 이더넷 통신에 기반하여, 프로세서 간 통신을 수행할 수 있다.
도 6b는 도 6a의 설명에 참조되는 도면이다.
도면을 참조하면, 제1 프로세서(632a)는, 제2 프로세서(632b)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(634a), 데이터 전송을 위한 디바이스 드라이버(636a), 애플리케이션(638a)을 실행할 수 있다.
디바이스 드라이버(636a)를 통해, CAN ECU(618)로부터의 CAN 신호를 수신할 수 있으며, 디바이스 드라이버(636a)를 통해, 제2 프로세서(632b)와, 프로세서 간 통신으로, UART, SPI, 또는 이더넷(Ethernet) 통신(631)을 수행할 수 있다.
제2 프로세서(632b)는, 제1 프로세서(632a)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(634b), 데이터 전송을 위한 디바이스 드라이버(636b), 애플리케이션(638b)을 실행할 수 있다.
디바이스 드라이버(636b)를 통해, 이더넷 ECU(626)로부터의 이더넷 신호를 수신할 수 있으며, 디바이스 드라이버(636b)를 통해, 제1 프로세서(632a)와, 프로세서 간 통신으로, UART, SPI, 또는 이더넷(Ethernet) 통신(631)을 수행할 수 있다.
이러한 방식에 의하면, 제1 프로세서(632a)와 제2 프로세서(632b) 사이에, 각각 디바이스 드라이버(636a,636b)를 거치게 되므로, 단계 별로 데이터 카피(copy)가 필요하므로, 실시간 또는 고속의 데이터 전송에 한계가 있게 된다.
특히, CAN 데이터를 제1 프로세서(632a)에서 제2 프로세서(632b)로 전송하고, 이를 이더넷 데이터로 변환할 때, 지연(delay)가 발생하게 된다. 특히, 제2 프로세서(632b) 보다 처리 속도가 느린 제1 프로세서(632a)의 처리 지연이 더 문제가 된다.
이에 본 개시에서는, 프로세서 간 통신시 지연 시간(Latency) 저감 및 고속의 데이터 전송을 수행할 수 있는 방안을 제시한다. 이에 대해서는 도 7a 이하를 참조하여 기술한다.
도 7a는 본 개시의 실시에에 따른 차량용 통신 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시의 실시에에 따른 차량용 통신 장치(700)는, 제1 통신 게이트웨이(730a), 제2 통신 게이트 웨이(730b)와 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서(732a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서(732b)와, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리(508)를 포함한다.
도 6a의 통신 장치(600x)와 비교하여, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 프로세서 간 통신(IPC)을 위해, 공유 메모리(508)를 이용함으로써, 프로세서 간 통신시 지연 시간(Latency)이 저감되며, 고속의 데이터 전송을 수행할 수 있게 된다.
또한, 도 6a의 통신 장치(600x)와 비교하여, 제1 프로세서(732a)와 제2 프로세서(732b), 및 공유 메모리(508)를 하나의 칩(Chip)인 하나의 신호 처리 장치(170)으로 구현함으로써, 프로세서 간 통신시 지연 시간(Latency)이 저감되며, 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 통신 방식은, 제1 통신 방식 보다, 대역폭이 더 크며, 전송 속도가 더 빠른 것이 바람직하다.
예를 들어, 제2 통신 방식은, 이더넷 통신 방식이며, 제1 통신 방식은 CAN 통신 방식일 수 있다. 이에 따라, 제1 메시지는 CAN 메시지 또는 CAN 신호일 수 있으며, 제2 메시지는 이더넷 메시지일 수 있다.
한편, 본 개시의 일 실시예에 따른 신호 처리 장치(170) 및 이를 구비하는 차량용 통신 장치(700)는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 제1 메시지를 제1 프로세서(732a)로 전송하는 트랜시버(736a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하여, 제2 메시지를 제2 프로세서(732b)로 전송하는 스위치(736b)를 더 포함할 수 있다. 이에 따라, 제1 신회와 제2 메시지를 각각 안정적으로 제1 프로세서(732a)와 제2 프로세서(732b)로 전달할 수 있게 된다.
제1 프로세서(732a) 또는 트랜시버(736a)는, 바디 모듈(610), 샤시 모듈(614), CAN 통신 진단 장치(616), 적어도 하나의 CAN 통신 ECU(618) 등과의 CAN 통신에 의한 CAN 신호를 교환할 수 있다.
한편, 제1 프로세서(732a)는, 제2 프로세서(732b)와 프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 매니저(734a)를 구비할 수 있다. 제1 매니저(734a)는, IPC 매니저라 명명할 수도 있다.
한편, 제1 매니저(734a)는, 제1 캐쉬(735a)(cache)를 포함할 수 있다.
한편, 제2 프로세서(732b) 또는 스위치(736b)는, 텔레메틱스 제어 모듈(620), 헤드 모듈(622), 이더넷 통신 진단 장치(624), 적어도 하나의 이더넷 통신 ECU(626) 등과의 이더넷 통신에 의한 이더넷 메시지를 교환할 수 있다. 스위치(736b)는, 이더넛 스위치라 명명할 수도 있다.
한편, 제2 프로세서(732b)는, 제1 프로세서(732a)와 프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제2 매니저(734b)를 구비할 수 있다. 제2 매니저(734b)는, IPC 매니저라 명명할 수도 있다.
한편, 제2 매니저(734b)는, 제2 캐쉬(735b)와 타이머(737)를 포함하는 제2 매니저(734b)를 구비할 수 있다.
한편, 제2 프로세서(732b)는, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로부터 제1 메시지의 주기적인 구독 요청을 수신할 수 있다.
이에 따라, 제2 프로세서(732b)는, 제1 메시지의 주기적인 구독 요청을 제1 프로세서(732a)로 전송할 수 있다.
특히, 제2 프로세서(732b)는, 프로세서 간 통신(IPC)을 통해, 구독 요청을 전송할 수 있다. 이에 따라, 프로세서 간 통신을 수행할 수 있게 된다.
한편, 제1 프로세서(732a)는, 적어도 하나의 CAN 통신 ECU(618) 등으로부터 주기적으로 CAN 통신 데이터를 수신한다.
예를 들어, 제1 프로세서(732a)는, CAN 데이터 베이스(DB)에 미리 정의된 제1 메시지를, 적어도 하나의 CAN 통신 ECU(618) 등으로부터 주기적으로 수신한다.
예를 들어, 주기적인 제1 메시지는, 센서 정보로서, 차량 속도 정보 또는 위치 정보 등을 포함할 수 있다.
다른 예로, 주기적인 제1 메시지는, 차량 방향 정보, 차량 위치 정보(GPS 정보), 차량 각도 정보, 차량 가속도 정보, 차량 기울기 정보, 차량 전진/후진 정보, 배터리 정보, 연료 정보, 타이어 정보, 차량 램프 정보, 차량 내부 온도 정보, 차량 내부 습도 정보 중 적어도 하나를 포함할 수 있다.
한편, 제1 프로세서(732a)는, 주기적으로 수신되는 CAN 통신 데이터 또는 제1 메시지 중에서 구독 요청 받은 제1 메시지를 선별하고, 구독 요청 받은 제1 메시지를, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 전송할 수 있다.
한편, 제1 프로세서(732a)는, 주기적으로 수신되는 CAN 통신 데이터 또는 제1 메시지 중에서 구독 요청 받지 않은 제1 메시지를, 내부 동작에 따라 별도로 처리하고, 제2 프로세서(732b)로 전송하지 않는다.
구체적으로, 제1 프로세서(732a)는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬(735a)에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송할 수 있다.
한편, 제1 프로세서(732a)는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬(735a)에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 공유 메모리(508)를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송할 수 있다.
예를 들어, 제1 프로세서(732a)는, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 동일하지 않은 경우에, 공유 메모리(508)를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송할 수 있다.
다른 예로, 제1 프로세서(732a)는, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 동일한 경우에, 제2 프로세서(732b)로 제1 메시지를 전송하지 않을 수 있다.
이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서(732b)는, 제1 메시지의 첫 수신시, 제2 캐쉬(735b)에 저장하고, 제1 메시지의 후속 수신시, 제2 캐쉬(735b)를 업데이트할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서(732b)는, 제1 메시지 수신에 따라 타이머(737)의 쓰레드를 생성하고, 쓰레드의 만료마다 제2 캐쉬(735b)의 값을, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서(732b)는, 프로세서 간 통신이 수행되지 않아 제1 메시지가 수신되지 않는 주기 동안에는, 제2 캐쉬(735b)의 값을, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전달할 수 있다.
즉, 구독한 제1 메시지의 값이 주기 내에 변경되지 않는 경우, 프로세서 간 통신 없이, 제2 프로세서((732b)에 저장된 캐쉬 값이, 이더넷 프로세서(626)로 전달될 수 있다.
이에 따라, FIFO로 운영되는 공유 메모리(508) 내의 IPC 버퍼의 사용을 최소화할 수 있게 된다. 또한, IPC 버퍼의 사용을 최소로 유지함으로써, 제1 메시지 또는 제2 메시지 등의 데이터를, 프로세서 간 통신을 통해, 신속하게 전송할 수 있게 된다.
한편, 제2 프로세서(732b)는, 프로세서 간 통신이 수행되어 제1 메시지가 수신되는 주기 동안에는, 제2 캐쉬(735b)에 업데이트된 값을, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 공유 메모리(508)는, 프로세서 간 통신시, 제1 큐(PTb)(queue)와, 제1 큐(PTb) 보다 우선권이 높이 제2 큐(PTa)를 통해, 데이터를, 제1 프로세서(732a)에서 제2 프로세서(732b) 사이에 전송되도록 할 수 있다.
특히, 공유 메모리(508)는, 프로세서 간 통신을 위한 이벤트가 증가하더라도, 제2 큐(PTa)를 위해 할당된 이벤트에 대응하는 데이터만 제2 큐(PTa)를 통해, 전송되록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
예를 들어, 제1 큐(PTb)는, 노말 순위 큐(Normal Priority Queue)일 수 있으며, 제2 큐(PTa)는 하이 순위 큐(High Priority Queue)일 수 있다.
구체적으로, 공유 메모리(508)는, 프로세서 간 통신시, 제1 큐(PTb)를 통해, 대부분의 데이터를 전송할 수 있다.
다만, 공유 메모리(508)는, 시간에 민감하고 중요한(Time sensitive-critical) 데이터만, 제1 큐(PTb) 보다 우선권이 높이 제2 큐(PTa)를 통해, 지연없이 전송되도록 할 수 있다.
예를 들어, 시간에 민감하고 중요한(Time sensitive-critical) 데이터는, 속도 데이터 또는 위치 정보 데이터 등일 수 있다.
즉, 공유 메모리(508)는, 속도 데이터 또는 위치 정보 데이터를, 제2 큐(PTa)를 통해, 제1 프로세서(732a)와 제2 프로세서(732b) 사이에 전송되도록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 속도 데이터 또는 위치 정보 데이터의 실시간 전송을 보장할 수 있게 된다.
한편, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 제2 큐(PTa)를 이용할 수 있는 어플리케이션을 포함하는 리스트를 관리할 수 있다.
예를 들어, 제2 프로세서(732b)는, 속도 정보 표시를 위한 어플리케이션을, 제2 큐(PTa)를 이용할 수 있는 어플리케이션으로서, 제2 리스트(738b) 내에 포함시켜 관리할 수 있다.
한편, 제2 큐(PTa)를 이용한 실시간 데이터 전송을 위해, 시나리오 또는 애플리케이션이 중복되지 않도록 최소한으로 동작하도록 제어하는 것이 바람직하다.
이와 같이, 시간에 민감하고 중요한 데이터를 제2 큐(PTa)를 이용한 실시간 데이터 전송을 수행함으로써, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
한편, 공유 메모리(508)는, 최소 2개의 큐 할당으로, 프로세서 간 통신에서의 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
도면에서는, 제1 프로세서(732a) 내의 제1 매니저(734a)가 화이트 리스트인 제1 리스트(738a)를 관리하며, 제2 프로세서(732b) 내의 제2 매니저(734b)가 화이트 리스트인 제2 리스트(738b)를 관리하는 것을 예시한다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
도 7b는 도 7a의 설명에 참조되는 도면이다.
도면을 참조하면, 제1 프로세서(732a)는, 제2 프로세서(732b)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(734a)와, 애플리케이션(738a)을 실행할 수 있다. 도 6b와 달리, 제1 프로세서(732a)는, 디바이스 드라이버를 실행하지 않게 된다.
IPC 매니저(734a)를 통해, CAN ECU(618)로부터의 CAN 신호를 수신할 수 있으며, 제1 메모리(320) 또는 제2 메모리(330) 기반의 공유 메모리(508)를 통해, 제2 프로세서(732b)와, 프로세서 간 통신(IPC)을 수행할 수 있다.
제2 프로세서(732b)는, 제1 프로세서(732a)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(734b)와, 애플리케이션(738b)을 실행할 수 있다. 도 6b와 달리, 제2 프로세서(732b)는, 디바이스 드라이버를 실행하지 않게 된다.
IPC 매니저(734b)를 통해, 이더넷 ECU(626)로부터의 이더넷 신호를 수신할 수 있으며, 제1 메모리(320) 또는 제2 메모리(330) 기반의 공유 메모리(508)를 통해, 제1 프로세서(732a)와, 프로세서 간 통신(IPC)을 수행할 수 있다.
이러한 방식에 의하면, 제1 프로세서(732a)와 제2 프로세서(732b) 사이에, 공유 메모리(508)를 이용하여, 데이터를 전송함으로써, 실시간 또는 고속의 데이터 전송이 가능하게 된다.
도 8은 본 개시의 실시에에 따른 차량용 통신 장치의 내부 블록도의 다른 예이다.
도면을 참조하면, 본 개시의 실시에에 따른 차량용 통신 장치(700b)는, 시스템 온 칩(SOC)으로 구현되는 신호 처리 장치(170)를 구비한다.
차량용 통신 장치(700b) 내의 신호 처리 장치(170)는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서(732a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서(732b)와, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리(508)를 포함하는 신호 처리 장치(170)를 구비한다.
제1 프로세서(732a) 또는 제2 프로세서(732b)는, 인터럽트 신호에 기초하여, 공유 메모리(508)에 저장된 제1 메시지 또는 제2 메시지를 수신한다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 특히, 다른 통신 방식에 기반한 메시지를 신속하게 전송할 수 있게 된다.
한편, 제1 프로세서(732a)는, 제1 프로세서 코어(3170)와 제2 프로세서 코어(317a)를 구비할 수 있다.
제1 프로세서 코어(3170)는, IPC 인터페이스를 구비하는 소프트웨어 컴포넌트(Software Component)(738aa)와 IPC 핸들러(314)를 실행할 수 있다.
IPC 핸들러(314)는, 인터럽트 완화기(interrupt mitigator)(IMa), 데이터 쓰로틀링 핸들러(data throttling hanfler)(DTa), QoS 핸들러(Quality of Service hanfler)(QHa)를 실행할 수 있다.
제2 프로세서 코어(317a)는, IPC 인터페이스를 구비하는 소프트웨어 컴포넌트(Software Component)(738ab)와 IPC 핸들러(314b)를 실행할 수 있다.
IPC 핸들러(314b)는, 인터럽트 완화기(IMb), 데이터 쓰로틀링 핸들러(DTb), QoS 핸들러(QHb)를 실행할 수 있다.
한편, 제2 프로세서(732b)는, 복수의 프로세서 코어를 구비할 수 있다. 예를 들어, 제2 프로세서(732b)가 제1 프로세서(732a) 보다 성능이 좋은 경우, 제2 프로세서(732b)의 코어의 개수가, 제1 프로세서(732a)의 코어의 개수 보다 더 많은 것이 바람직하다.
제2 프로세서(732b)는, 인터럽트 신호를 수신하는 인터럽트 완화기(IMC)를 구비하는 IPC 드라이버(348)와, IPC 서비스(345)와, 복수의 애플리케이션(738ba,738bb)를 실행할 수 있다.
IPC 서비스(345)는, 데이터 쓰로틀링 핸들러(DTc), QoS 핸들러(QHc)를 실행할 수 있다.
한편, 복수의 애플리케이션(738ba,738bb)는, 각각 IPC 인터페이스를 구비하여, 제1 메모리(320) 또는 제2 메모리(330)으로부터 데이터를 수신할 수 있다.
한편, 차량용 통신 장치(700b) 내의 신호 처리 장치(170)는, 공유 메모리(508)로 사용되는 제1 메모리(320)와 제2 메모리(330)를 포함할 수 있다.
예를 들어, 제1 메모리(320)는, SRAM(Static RAM)일 수 있으며, 제2 메모리(330)는 DDR 메모리일 수 있다. 특히, 제2 메모리(330)는, DDR SDRAM(Double data rate synchronous dynamic random access memory)일 수 있다.
제1 메모리(320)는, 컨트롤 채널(control channel)과, 복수의 무잠금 큐(lock-free queue)를 저장할 수 있다.
제2 메모리(330)는, 컨트롤 채널과, 복수의 CAN 데이터를 저장할 수 있다.
한편, 제1 메모리(320)는, IPC 채널을 저장할 수 있으며, 제2 메모리(330)는, 차량 속도 데이터를 포함하는 센서 데이터인 CAN 데이터를 저장할 수 있다.
한편, 차량용 통신 장치(700b) 내의 신호 처리 장치(170)는, 제1 프로세서(732a) 또는 제2 프로세서(732b)에 인터럽트 신호를 출력하는 인터럽트 라우터(ROT)를 더 포함할 수 있다.
구체적으로, 인터럽트 라우터(ROT)는, 제1 프로세서(732a) 내의 각 코어(3170,317a) 또는 제2 프로세서(732b) 내의 각 코어(CR0~CR2)에, 각각 인터럽트 신호를 출력할 수 있다. 이에 따라, 인터럽트 기반하여 프로세서를 효율적으로 사용할 수 있게 된다.
그리고, 인터럽트 라우터(ROT)는, 인터럽트의 트리거링 횟수를 동적으로 조절할 수 있다. 이에 따라, 인터럽트 기반하여 프로세서를 효율적으로 사용할 수 있게 된다.
도면을 참조하면, 제2 프로세서 코어(317a)는, 제2 메모리(330)로 제1 메시지인 CAN 데이터를 저장할 수 있으며, 복수의 애플리케이션(738ba,738bb) 중 제1 애플리케이션(738ba)은, 공유 메모리로 동작하는 제2 메모리(330)에 억세스 하여, 제1 메시지인 CAN 데이터를 수신할 수 있다.
한편, 복수의 애플리케이션(738ba,738bb) 중 제2 애플리케이션(738bb)은, 제1 메모리(320) 내의 무잠금 큐(lock-free queue)에 제2 메세지인 이더넷 데이터를 저장할 수 있으며, 제1 프로세서(732a) 실행되는 어플리케이션(738aa)이, 공유 메모리로 동작하는 제1 메모리(320) 내의 무잠금 큐(lock-free queue)에 억세스 하여, 제2 메시지인 이더넷 데이터를 수신할 수 있다.
한편, 제1 메모리(320)로부터 무잠금 큐(lock-free queue)를 이용하는 경우, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 무잠금 큐(lock-free queue)에 기초하여 동작할 수 있다. 이에 따라, 프로세서의 락 메커니즘 없이 동작할 수 있게 된다.
한편, 공유 메모리(508)는, 제1 프로세서(732a) 또는 제2 프로세서(732b)에서 실행되는 어플리케이션 별로 영역을 구분할 수 있다.
도면에서는, 복수의 애플리케이션(738ba,738bb) 중 제2 애플리케이션(738bb)은, 공유 메모리(508) 중 제2 메모리(330)를 사용하고, 제1 애플리케이션(738ba)은, 공유 메모리(508) 중 제1 메모리(320)를 사용하는 것을 예시한다. 이에 따라, 공유 메모리(508)를 안정적으로 사용할 수 있게 된다.
한편, 공유 메모리(508)는, 제1 프로세서(732a) 또는 제2 프로세서(732b)에서 전송되는 메시지의 종류에 따라, 영역을 구분할 수 있다.
예를 들어, 전송하는 메시지가 CAN 데이터인 경우, 공유 메모리(508) 중 제2 메모리(330)를 사용하고, 전송하는 메시지가 이더넷 데이터인 경우, 공유 메모리(508) 중 제1 메모리(320)를 사용할 수 있다. 이에 따라, 공유 메모리(508)를 안정적으로 사용할 수 있게 된다.
한편, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 클럭 또는 메모리 억세스 성능에 따라, 다이내믹 대역폭에 기초하여, 제1 메시지 또는 제2 메시지를 전송 또는 수신할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 또한, 프로세서의 클럭 또는 메모리 억세스 성능에 기반하여 데이터 전송 손실을 상당히 저감할 수 있게 된다.
한편, 제1 프로세서(732a)는, 제1 클럭에 따른 제1 다이내믹 대역폭에 기초하여, 제1 메시지를 공유 메모리(508)로 전송하며, 제2 프로세서(732b)는, 제2 클럭에 따른 제2 다이내믹 대역폭에 기초하여, 제2 메시지를 공유 메모리(508)로 전송할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 또한, 프로세서의 클럭 또는 메모리 억세스 성능에 기반하여 데이터 전송 손실을 상당히 저감할 수 있게 된다.
예를 들어, 제2 프로세서(732b)의 성능이 제1 프로세서(732a) 보다 더 좋은 경우, 제2 프로세서(732b)는, 제1 다이내믹 대역폭 보다 더 큰 제2 다이내믹 대역폭에 기초하여, 제2 메시지를 공유 메모리(508)로 전송할 수 있다. 이에 따라, 대용량의 제2 메시지를 신속하게 전송할 수 있게 된다.
도 9a 내지 도 13b는 도 8의 설명에 참조되는 도면이다.
도 9a는 외부에서 입력되는 CAN 데이터가 이더넷 인터페이스로 전송되는 것을 예시하는 도면이다.
도면을 참조하면, 외부에서 입력되는 CAN 데이터는, 제1 프로세서(732a), 공유 메모리인 제1 메모리(320), 제2 프로세서(732b)를 경유하여, 외부의 이더넷 인터페이스(738b)로 전송될 수 있다.
구체적으로, 외부에서 입력되는 CAN 데이터는, 제1 프로세서(732a) 내의, CAN 메시지를 수신하는 인터페이스(319), IPC 모듈(318)을 경유하고, 제1 메모리(320)를 거쳐, 제2 프로세서(732b)로 입력된다.
한편, 제2 프로세서(732b)는, 내부에서 실행되는 진단 서버 애플리케이션(342)을 통해, CAN 데이터를 외부의 이더넷 인터페이스(738b)로 전송할 수 있다.
예를 들어, CAN 데이터가, 카메라 데이터인 경우, 외부의 이더넷 인터페이스(738b)로 카메라 데이터가 전달될 수 있게 된다. 그리고, 이더넷 인터페이스(738b)에 접속되는 디스플레이(180b)는, 카메라 데이터에 기반한 카메라 영상을 표시할 수 있게 된다.
다른 예로, CAN 데이터가, 차량 속도 데이터인 경우, 외부의 이더넷 인터페이스(738b)로 차량 속도 데이터인가 전달될 수 있게 된다. 그리고, 이더넷 인터페이스(738b)에 접속되는 디스플레이(180b)는, 차량 속도 데이터에 기반한 차량 속도 정보를 표시할 수 있게 된다.
도 9b는 제1 프로세서(732a)와 제2 프로세서(732b)에 인터럽트 신호를 출력하는 것을 예시하는 도면이다.
도면을 참조하면, 제1 프로세서(732a)는, 제1 프로세서 코어(3170)와, 제2 프로세서 코어(317a)를 구비하고, 제2 프로세서(732b)는, 제1 프로세서 코어(CR0)와, 제2 프로세서 코어(CR1)와, 제3 프로세서 코어(CR2)를 구비할 수 있다.
인터럽트 라우터(ROT)는, 제1 프로세서(732a) 내의 각 코어(3170,317a)와, 제2 프로세서(732b) 내의 각 코어(CR0~CR2)에, 각각 인터럽트 신호를 출력하거나, 인터럽트 신호를 수신할 수 있다. 이에 따라, 인터럽트 기반하여 프로세서를 효율적으로 사용할 수 있게 된다.
도 10a 내지 도 10b는 동적 인터럽트 완화(Dynamic Interrupt Mitigation)를 설명하는 도면이다.
먼저, 도 10a는, 동적 인터럽트 완화(Dynamic Interrupt Mitigation)의 일예를 도시한 도면이다.
도면을 참조하면, 제1 프로세서(732a)에서 실행되는 제1 애플리케이션(738aa)에서, 복수 횟수(예를 들어, 5회)의 데이터를 제1 프로세서(732a)에서 실행되는 IPC 서비스(314)에 전송하고(S1010), IPC 서비스(314)가 복수 횟수(예를 들어, 5회)의 인터럽트 신호를 인터럽트 라우터(ROT)로 전송한다(S1015).
인터럽트 라우터(ROT)는, 동적 인터럽트 완화(Dynamic Interrupt Mitigation)에 따라, 복수 횟수 중 일부 횟수(예를 들어 1회)의 제1 인터럽트 신호를 제2 프로세서(732b)에서 실행되는 IPC 서비스(314c)에 전송하고(S1020), IPC 서비스(314c)가, 데이터를 제2 프로세서(732b)에서 실행되는 애플리케이션(738bb)로 전송한다. 이에 따라, 애플리케이션(738bb)이, IPC 서비스(314c)로부터 제1 데이터를 읽고(read)(S1025), 제1 리턴 신호를 전송한다(S1030).
그 이후, 인터럽트 라우터(ROT)는, 제2 인터럽트 신호를 IPC 서비스(314c)에 전송하고(S1032), 애플리케이션(738bb)이, IPC 서비스(314c)로부터 제2 데이터를 읽고(read)(S1034), 제2 리턴 신호를 전송한다(S1036).
그 이후, 인터럽트 라우터(ROT)는, 제3 인터럽트 신호를 IPC 서비스(314c)에 전송하고(S1042), 애플리케이션(738bb)이, IPC 서비스(314c)로부터 제3 데이터를 읽고(read)(S1044), 제3 리턴 신호를 전송한다(S1046).
그 이후, 인터럽트 라우터(ROT)는, 제4 인터럽트 신호를 IPC 서비스(314c)에 전송하고(S1052), 애플리케이션(738bb)이, IPC 서비스(314c)로부터 제4 데이터를 읽고(read)(S1054), 제4 리턴 신호를 전송한다(S1056).
그 이후, 인터럽트 라우터(ROT)는, 제4 인터럽트 신호를 IPC 서비스(314c)에 전송하고(S1062), 애플리케이션(738bb)이, IPC 서비스(314c)로부터 제4 데이터를 읽고(read)(S1064), 제4 리턴 신호를 전송한다(S1066).
다음, 도 10b는, 동적 인터럽트 완화(Dynamic Interrupt Mitigation)의 다른 예를 도시한 도면이다.
도면을 참조하면, 프로세서(732a)에서 실행되는 제1 애플리케이션(738aa)에서, 복수 횟수(예를 들어, 5회)의 데이터를 제1 프로세서(732a)에서 실행되는 IPC 서비스(314)에 전송하고(S1010b), IPC 서비스(314)가 복수 횟수(예를 들어, 5회)의 인터럽트 신호를 인터럽트 라우터(ROT)로 전송한다(S1015b).
인터럽트 라우터(ROT)는, 동적 인터럽트 완화(Dynamic Interrupt Mitigation)에 따라, 복수 횟수 중 일부 횟수(예를 들어 1회)의 제1 인터럽트 신호를 제2 프로세서(732b)에서 실행되는 IPC 서비스(314c)에 전송하고(S1020b), PC 서비스(314c)는, 공유 메모리(508)에 읽기용 데이터를 체크하고(S1070), 남아있는 읽기용 데이터에 대한 결과를 수신한다(S1072).
예를 들어, 읽기용 데이터에 대한 결과가 데이터 읽기의 불가능에 대응하는 경우, IPC 서비스(314c)는, 인터럽트 라우터(ROT)로 디스에이블 인터럽트 신호를 출력한다(S1074).
다른 예로, 읽기용 데이터에 대한 결과가 데이터 읽기의 가능에 대응하는 경우, IPC 서비스(314c)는, 인터럽트 라우터(ROT)로 클리어 인터럽트 신호를 출력한다(S1076).
그 이후, IPC 서비스(314c)는, 복수 횟수의 데이터를 일시에 제2 프로세서(732b)에서 실행되는 애플리케이션(738bb)로 전송한다. 이에 따라, 애플리케이션(738bb)이, IPC 서비스(314c)로부터 제1 내지 제5의 데이터를 읽고(read)(S1078), 리턴 신호를 전송한다(S1080).
그 이후, IPC 서비스(314c)는, 인터럽트 라우터(ROT)로 인에이블 인터럽트 신호를 전송한다(S1082).
도 10b의 방식이 도 10a의 방식에 비해, 동적 인터럽트에 기반한, 효율적인 데이터 전송이 가능하게 된다.
도 10c는 데이터 쓰로틀링의 설명에 참조되는 도면이다.
도면을 참조하면, 제2 메시지를 제2 프로세서(732b)에서 제1 프로세서(732a)로 전송하는 경우, 제2 프로세서(732b)에서 실행되는 애플리케이션이 제2 메시지에 대응하는 데이터를 전송하고(S1110), 제2 프로세서(732b)에서 실행되는 IPC 서비스(734b)가 수신된 데이터를 공유 메모리(508)에 기록한다(S1115).
한편, 제1 프로세서(732a)에서 실행되는 애플리케이션은, 공유 메모리(508)에 기록된 데이터를 읽을 수 있다(S1118).
이때, 제2 프로세서(732b)에서 실행되는 IPC 서비스(734b)가, 제1 프로세서(732a)에서 실행되는 IPC 서비스(734a)로 인터럽트 신호를 출력하며(S1120), IPC 서비스(734a)는, 읽기 성능을 체크한다(S1120).
이에 대응하여, 제2 프로세서(732b)에서 실행되는 IPC 서비스(734b)도 쓰기 성능을 체크한다(S1122).
한편, 제1 메시지를 제1 프로세서(732a)에서 제2 프로세서(732b)로 전송하는 경우, 제1 프로세서(732a)에서 실행되는 애플리케이션이 제1 메시지에 대응하는 데이터를 전송하고(S1125), 제1 프로세서(732a)에서 실행되는 IPC 서비스(734a)가 수신된 데이터를 공유 메모리(508)에 기록한다(S1127).
한편, 제2 프로세서(732b)에서 실행되는 애플리케이션은, 공유 메모리(508)에 기록된 데이터를 읽을 수 있다(S1129).
이때, 제1 프로세서(732a)에서 실행되는 IPC 서비스(734a)가, 제2 프로세서(732b)에서 실행되는 IPC 서비스(734b)로 인터럽트 신호를 출력하며(S1132), IPC 서비스(734b)는, 읽기 성능을 체크한다(S1136).
이에 대응하여, 제1 프로세서(732a)에서 실행되는 IPC 서비스(734a)도 쓰기 성능을 체크한다(S1134).
도 10c와 관련하여, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 무잠금 큐(lock-free queue)에 기초하여 동작할 수 있다. 이에 따라, 프로세서의 락 메커니즘 없이 동작할 수 있게 된다.
한편, 도 10c와 관련하여, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 클럭 또는 메모리 억세스 성능에 따라, 다이내믹 대역폭에 기초하여, 제1 메시지 또는 제2 메시지를 전송 또는 수신할 수 있다.
예를 들어, 제1 프로세서(732a)는, 제1 클럭에 따른 제1 다이내믹 대역폭에 기초하여, 제1 메시지를 공유 메모리(508)로 전송하며, 제2 프로세서(732b)는, 제2 클럭에 따른 제2 다이내믹 대역폭에 기초하여, 제2 메시지를 공유 메모리(508)로 전송할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 또한, 프로세서의 클럭 또는 메모리 억세스 성능에 기반하여 데이터 전송 손실을 상당히 저감할 수 있게 된다.
도 11a 및 도 11b는 제로 카피(zero copy)의 설명에 참조되는 도면이다.
먼저, 도 11a는 제1 메시지가 공유 메모리(508)의 제1 영역(MMb)에 저장되고, 제2 메시지가 공유 메모리(508)의 제2 영역(MMa)에 저장되는 것을 예시한다.
도면을 참조하면, 제1 프로세서(732a)는, 프로세서 간 통신(Inter Processor Communication와, IPC)을 위한 제1 서버(1152)와 제1 드라이버(1154)를 실행한다.
한편, 제1 프로세서(732a)는, 시스템 매니저(1156)와, 오토사(312), 라우터(1158)를 더 실행할 수 있다.
한편, 제2 프로세서(732b)는, 프로세서 간 통신을 위한 제2 서버(1162)와 제2 드라이버(348)를 실행한다.
한편, 제2 프로세서(732b)는, 시스템 매니저(1164)와 VDS(1168)를 더 실행할 수 있다.
한편, 제1 서버(1152)와 제2 서버(1162) 사이에, 인터럽트 신호가 전송되고, 제1 서버(1152) 또는 제2 서버(1162)는, 공유 메모리(508)로 데이터를 전송하거나 데이터를 수신할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
제1 프로세서(732a)에서 제2 프로세서(732b)로 제1 메시지를 전송하는 경우, 제1 드라이버(1154)는, 제2 드라이버(348)로 인터럽트 신호를 전송할 수 있다.
이때, 제1 프로세서(732a) 내의 시스템 매니저(1156)에서 전송되는 제1 메시지에 대응하는 데이터는, 제1 서버(1152), 공유 메모리(508)의 제1 영역(MMb)을 거쳐, 재2 프로세서(732b)에서 실행되는 시스템 매니저(1164) 또는 VDS(1168)의 IP 인터페이스(1165, 1169)로 전송될 수 있다.
한편, 제2 프로세서(732b)에서 제1 프로세서(732a)로 제2 메시지를 전송하는 경우, 제2 드라이버(348)는, 제1 드라이버(1154)로 인터럽트 신호를 전송할 수 있다.
이때, 제2 프로세서(732b) 내의 시스템 매니저(1164) 또는 VDS(1168)의 IP 인터페이스(1165, 1169)에서 전송되는 제2 메시지에 대응하는 데이터는, 공유 메모리(508)의 제2 영역(MMa)을 거쳐, 제1 프로세서(732a) 내의 시스템 매니저(1156)로 전송될 수 있다.
도 10a에 따르면, 불필요한 메모리 복사 동작을 제거하고, 각 프로세서(732a,732b)에서 동작하는 애플리케이션이, 제로 카피 성능으로, 직접 공유 메모리(508)에 접근 가능하게 된다. 이때, 각 애플리케이션 별로 공유 메모리(508)의 영역윽 구분하므로, 메모리 영역이 침해에 대한 문제가 발생하지 않으며, 따라서, 공유 메모리(508)를 안정적으로 사용할 수 있게 된다.
도 11b는, 도 11a와 유사하게, 제1 메시지와 제2 메시지가 전송되는 것을 예시하나, 추가로 제2 메시지의 일종인 분석 데이터가 제2 프로세서(732b)에서 제1 프로세서(732a)로 전송되는 것에 그 차이가 있다. 이하에서는 그 차이를 중심으로 기술한다.
도면을 참조하면, 제2 프로세서(732b) 내의 분석 서비스(1170)의 IP 인터페이스(1172)에서 전송되는 분석 데이터는, 공유 메모리(508)의 제2 영역(MMa) 중 제2 메시지의 데이터가 저장되지 않은 영역(1182)에 저장되고, 공유 메모리(508)를 거쳐, 제1 프로세서(732a)에서 실행되는 제1 서버(1152)로 전송될 수 있다.
한편, 제1 서버(1152)는, 분석 데이터를 라우터(1158)를 거쳐, 분석 애플리케이션(1159)로 전송할 수 있다.
한편, 제1 서버(1152)는, 분석 데이터를, 공유 메모리(508)의 제2 영역(MMM) 중 제1 메시지의 데이터가 저장되지 않은 영역(1184)에 저정하고, 공유 메모리(508)를 거쳐, 제2 프로세서(732b) 내의 분석 서비스(1170)로 전송할 수 있다.
도 1ba에 따르면, 각 애플리케이션 별로 공유 메모리(508)의 영역윽 구분하므로, 메모리 영역이 침해에 대한 문제가 발생하지 않으며, 따라서, 공유 메모리(508)를 안정적으로 사용할 수 있게 된다.
도 12는 인터럽트의 다양한 모드를 설명하기 위해 참조되는 도면이다.
도면을 참조하면, 제1 프로세서(732a) 또는 제2 프로세서(732b)가 부트 업되고(S1410), IPC 성능(configuration)을 체크한다(S1415).
예를 들어, 제1 프로세서(732a) 또는 제2 프로세서(732b)에서 전송하는 데이터가 이벤트 데이터인지 여부를 판단하고(S1420), 해당하는 경우, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 인터럽트 드리븐 모드(Interrupt driven mode)로 동작하도록 제어하고(S1425), 해당하지 않는 경우 폴링 모드(Polling mode)로 동작하도록 제어한다(S1430).
이에 따라, 인터럽트 라우터(ROT)는, 전송되는 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
예를 들어, 제1 프로세서(732a)는, 전송되는 제1 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 제1 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
다른 예로, 제2 프로세서(732b)는, 전송되는 제2 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고, 전송되는 제2 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
이와 같이, 전송하는 데이터 특성에 따라, 인터럽트 모드가 선택 가능하므로, 효율적으로 데이터를 전송할 수 있게 된다.
한편, 제2 프로세서(732b)는, 제2 메시지가 업데이트 데이터 또는 리프로그래밍을 위한 데이터를 포함하는 경우, 데이터를 분할하여 복수 횟수로 제1 메모리(320)에 데이터를 전송하도록 제어할 수 있다. 이에 따라, 과도한 인터럽트로 인한 성능 저하를 방지할 수 있게 된다.
한편, 제1 프로세서(732a)는, 복수 채널을 통해 제1 메시지를 수신하고, 공유 메모리(508)를 통해, 제1 메시지를 전송하도록 제어할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
한편, 제2 프로세서(732b)는, 공유 메모리(508)를 통해 제1 메시지를 수신하고, 제1 메시지를 제2 통식 기반의 데이터로 변환하고, 변환된 데이터를, 외부의 서버(900)로 전송하도록 제어할 수 있다. 이에 따라, 효율적으로 메시지를 전송할 수 있게 된다.
도 13a 내지 도 13b는 도 12의 설명에 참조되는 도면이다.
도 13a는 인터럽트 드리븐 모드(Interrupt driven mode)를 설명하는 도면이다.
도면을 참조하면, 제2 프로세서(732a) 내에서 실행되는 IPC 서비스(734b)는 IPC 성능(configuration)을 체크한다(S1310).
유사하게, 제1 프로세서(732a) 내에서 실행되는 IPC 서비스(734a)는 IPC 성능(configuration)을 체크한다(S1312).
체크 결과, 제1 프로세서(732a)와 제2 프로세서(732b)는, 인터럽트 드리븐 모드(Interrupt driven mode)로 동작할 수 있다. 관련하여, 인터럽트 라우터(ROT)는, 인터럽트 드리븐 모드로 동작할 수 있다.
이에 따라, 제2 프로세서(732b)에서 실행되는 애플리케이션(738b)은 IPC 서비스(734b)로 데이터를 전송하고(S1325), IPC 서비스(734b)는, 공유 메모리(508)에 데이터를 기록하고(S1327), 인터럽트 신호를 제1 프로세서(732a) 내에서 실행되는 IPC 서비스(734a)로 전송한다(S1329).
이에 따라, 제1 프로세서(732a)에서 실행되는 애플리케이션(738a)은 공유 메모리(508)에 기록된 데이터를 독출한다(S1322).
도 13b는 폴링 모드(Polling mode)를 설명하는 도면이다.
도면을 참조하면, 제2 프로세서(732a) 내에서 실행되는 IPC 서비스(734b)는 IPC 성능(configuration)을 체크한다(S1310b).
유사하게, 제1 프로세서(732a) 내에서 실행되는 IPC 서비스(734a)는 IPC 성능(configuration)을 체크한다(S1312b).
체크 결과, 제1 프로세서(732a)와 제2 프로세서(732b)는, 폴링 모드(Polling mode)로 동작할 수 있다. 관련하여, 인터럽트 라우터(ROT)는, 폴링 모드(Polling mode)로 동작할 수 있다.
이에 따라, 제1 프로세서(732a)에서 실행되는 애플리케이션(738a)은 IPC 서비스(734a)에서 데이터 읽기를 수행하고(S1315), IPC 서비스(734a)는, 공유 메모리(508)에 억세스 하여, 데이터를 체크한다(S1316). 이때 읽을 데이터가 없는 경우 애플리케이션(738a)은 에러를 수신한다(S1317).
제2 프로세서(732b)에서 실행되는 애플리케이션(738b)은 IPC 서비스(734b)로 제1 데이터를 전송하고(S1325b), IPC 서비스(734b)는, 공유 메모리(508)에 제1 데이터를 기록하고(S1327b), 애플리케이션(738b)은 IPC 서비스(734b)로 제2 데이터를 전송하고(S1326b), IPC 서비스(734b)는, 공유 메모리(508)에 제3 데이터를 기록한다(S1328b).
한편, 제1 프로세서(732a)에서 실행되는 애플리케이션(738a)은 IPC 서비스(734a)에서 데이터 읽기를 수행하고(S1342), IPC 서비스(734a)는, 공유 메모리(508)에 억세스 하여, 데이터를 체크한다(S1346). 이때 읽을 데이터가 있는 경우 애플리케이션(738a)은 공유 메모리(508)로부터의 데이터를 수신한다(S1348).
한편, 이상에서는 본 개시의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (20)

  1. 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서;
    제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 상기 제2 메시지의 신호 처리를 수행하는 제2 프로세서;
    상기 제1 프로세서와 상기 제2 프로세서 사이의 상기 제1 메시지 또는 상기 제2 메시지 전송을 위해 동작하는 공유 메모리;를 포함하고,
    상기 제1 프로세서 또는 상기 제2 프로세서는,
    인터럽트 신호에 기초하여, 상기 공유 메모리에 저장된 상기 제1 메시지 또는 상기 제2 메시지를 수신하는 신호 처리 장치.
  2. 제1항에 있어서,
    상기 제1 프로세서 또는 상기 제2 프로세서에 인터럽트 신호를 출력하는 인터럽트 라우터;를 더 포함하는 것인 신호 처리 장치.
  3. 제2항에 있어서,
    상기 인터럽트 라우터는,
    상기 제1 프로세서 내의 각 코어 또는 상기 제2 프로세서 내의 각 코어에, 각각 인터럽트 신호를 출력하는 것인 신호 처리 장치.
  4. 제2항에 있어서,
    상기 인터럽트 라우터는,
    상기 인터럽트의 트리거링 횟수를 동적으로 조절하는 것인 신호 처리 장치.
  5. 제1항에 있어서,
    상기 제1 프로세서 또는 상기 제2 프로세서는,
    무잠금 큐(lock-free queue)에 기초하여 동작하는 것인 신호 처리 장치.
  6. 제1항에 있어서,
    상기 제1 프로세서 또는 상기 제2 프로세서는,
    클럭 또는 메모리 억세스 성능에 따라, 다이내믹 대역폭에 기초하여, 상기 제1 메시지 또는 상기 제2 메시지를 전송 또는 수신하는 것인 신호 처리 장치.
  7. 제1항에 있어서,
    상기 제1 프로세서는,
    제1 클럭에 따른 제1 다이내믹 대역폭에 기초하여, 상기 제1 메시지를 상기 공유 메모리로 전송하며,
    상기 제2 프로세서는,
    제2 클럭에 따른 제2 다이내믹 대역폭에 기초하여, 상기 제2 메시지를 상기 공유 메모리로 전송하는 것인 신호 처리 장치.
  8. 제1항에 있어서,
    상기 제1 프로세서는,
    프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 서버와 제1 드라이버를 실행하고,
    상기 제2 프로세서는,
    상기 프로세서 간 통신을 위한 제2 서버와 제2 드라이버를 실행하고,
    상기 제1 서버와 상기 제2 서버 사이에, 상기 인터럽트 신호가 전송되고,
    상기 제1 서버 또는 상기 제2 서버는,
    상기 공유 메모리로 데이터를 전송하거나 데이터를 수신하는 것인 신호 처리 장치.
  9. 제1항에 있어서,
    상기 제2 프로세서 실행되는 어플리케이션이,
    상기 공유 메모리에 억세스하여 상기 제1 메시지를 수신하는 것인 신호 처리 장치.
  10. 제1항에 있어서,
    상기 제1 프로세서 실행되는 어플리케이션이,
    상기 공유 메모리에 억세스하여 상기 제2 메시지를 수신하는 것인 신호 처리 장치.
  11. 제1항에 있어서,
    상기 공유 메모리는,
    상기 제1 프로세서 또는 상기 제2 프로세서에서 실행되는 어플리케이션 별로 영역을 구분하는 것인 신호 처리 장치.
  12. 제2항에 있어서,
    상기 인터럽트 라우터는,
    전송되는 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고,
    상기 전송되는 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작하는 것인 신호 처리 장치.
  13. 제1항에 있어서,
    상기 제1 프로세서는,
    전송되는 상기 제1 메시지가 이벤트 기반 데이터인 경우, 인터럽트 드리븐 모드로 동작하고,
    상기 전송되는 상기 제1 메시지가 주기적인 데이터인 경우, 폴링 모드로 동작하는 것인 신호 처리 장치.
  14. 제1항에 있어서,
    상기 제2 프로세서는,
    상기 제2 메시지가 업데이트 데이터 또는 리프로그래밍을 위한 데이터를 포함하는 경우, 상기 데이터를 분할하여 복수 횟수로 상기 제1 메모리에 상기 데이터를 전송하도록 제어하는 것인 신호 처리 장치.
  15. 제1항에 있어서,
    상기 제1 프로세서는,
    복수 채널을 통해 상기 제1 메시지를 수신하고, 상기 공유 메모리를 통해, 상기 제1 메시지를 전송하도록 제어하는 것인 신호 처리 장치.
  16. 제1항에 있어서,
    상기 제2 프로세서는,
    상기 공유 메모리를 통해 상기 제1 메시지를 수신하고, 상기 제1 메시지를 상기 제2 통식 기반의 데이터로 변환하고, 상기 변환된 데이터를, 외부의 서버로 전송하도록 제어하는 것인 신호 처리 장치.
  17. 제1항에 있어서,
    상기 제1 프로세서는,
    프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 캐쉬(cache)를 포함하는 제1 매니저;를 구비하고,
    상기 제2 프로세서는,
    상기 프로세서 간 통신을 위한 제2 캐쉬와 타이머를 포함하는 제2 매니저;를 구비하는 것인 신호 처리 장치.
  18. 제17항에 있어서,
    상기 제1 프로세서는,
    구독 요청 받은 상기 제1 메시지 수신시 상기 제1 캐쉬에 저장 또는 관리하고, 상기 제1 메시지 수신시, 상기 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 상기 프로세서 간 통신을 통해, 상기 제2 프로세서로 상기 제1 메시지를 전송하는 것인 신호 처리 장치.
  19. 제1항에 있어서,
    IPC 채널을 구비하는 제1 메모리;
    차량 속도 데이터를 포함하는 상기 센서 데이터를 저장하는 제2 메모리;를 더 구비하고,
    상기 공유 메모리는,
    상기 제1 메모리 또는 상기 제2 메모리의 가용 사이즈에 기초하여, 상기 제1 메모리 또는 상기 제2 메모리 중에서 선택되는 것인 신호 처리 장치.
  20. 제1항 내지 제19항 중 어느 한 항의 신호 처리 장치를 포함하는 것을 특징으로 하는 차량용 통신 장치.
KR1020247003697A 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치 KR20240032069A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020210086549 2021-07-01
KR20210086549 2021-07-01
PCT/KR2022/009478 WO2023277637A1 (ko) 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Publications (1)

Publication Number Publication Date
KR20240032069A true KR20240032069A (ko) 2024-03-08

Family

ID=84691867

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020247003697A KR20240032069A (ko) 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
KR1020247003696A KR20240032068A (ko) 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
KR1020247003695A KR20240032067A (ko) 2021-07-01 2022-06-30 차량용 통신 장치 및 이를 구비하는 차량

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020247003696A KR20240032068A (ko) 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
KR1020247003695A KR20240032067A (ko) 2021-07-01 2022-06-30 차량용 통신 장치 및 이를 구비하는 차량

Country Status (3)

Country Link
EP (4) EP4366246A1 (ko)
KR (3) KR20240032069A (ko)
WO (4) WO2023277631A1 (ko)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463823B1 (ko) * 2002-11-11 2004-12-29 에스케이 텔레콤주식회사 리거시 시스템 및 콘텐츠 프로바이더(cp) 연동용soap 기반 통신 게이트웨이 시스템 및 이를 이용한프로토콜 변환 방법
US20050216770A1 (en) * 2003-01-24 2005-09-29 Mistletoe Technologies, Inc. Intrusion detection system
US8335909B2 (en) * 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US8589338B2 (en) * 2008-01-24 2013-11-19 Oracle International Corporation Service-oriented architecture (SOA) management of data repository
KR20090092370A (ko) * 2008-02-27 2009-09-01 삼성전자주식회사 프로세서들 간의 데이터 이동 이벤트를 감소시키는멀티포트 반도체 메모리 장치 및 그를 채용한 멀티프로세서 시스템과 멀티포트 반도체 메모리 장치의구동방법
KR101020948B1 (ko) 2008-04-22 2011-03-09 현대자동차주식회사 차량용 네트워크 게이트웨이 및 네트워크 시스템
KR101100336B1 (ko) * 2009-04-06 2011-12-30 동의대학교 산학협력단 지능형 통합 게이트웨이를 갖는 차량 네트워크 시스템 및 그의 데이터 처리 방법
KR101206894B1 (ko) * 2009-11-24 2012-11-30 한국전자통신연구원 이더넷-캔 프레임 변환 전송 장치 및 방법
KR101250024B1 (ko) * 2011-09-21 2013-04-03 엘에스산전 주식회사 네트워크 시스템 및 네트워크 경로 설정방법
KR101280910B1 (ko) * 2011-12-15 2013-07-02 한국전자통신연구원 고속 패킷 처리를 위한 네트워크 프로세서 기반 2단계 침입탐지장치 및 방법
KR101446525B1 (ko) * 2013-09-27 2014-10-06 주식회사 유라코퍼레이션 차량 해킹 방지 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 판독 가능한 프로그램을 기록한 매체
KR101612825B1 (ko) * 2014-11-20 2016-04-15 현대자동차주식회사 Can 컨트롤러, 차량 내부 통신을 위한 게이트웨이 및 그 제어 방법
US10116528B2 (en) * 2015-10-02 2018-10-30 Keysight Technologies Singapore (Holdings) Ptd Ltd Direct network traffic monitoring within VM platforms in virtual processing environments
JP6566400B2 (ja) * 2015-12-14 2019-08-28 パナソニックIpマネジメント株式会社 電子制御装置、ゲートウェイ装置、及び検知プログラム
KR20170099701A (ko) * 2016-02-24 2017-09-01 (주)제이엔디 차량 간 정보 수집 및 공유 시스템
KR102605987B1 (ko) 2017-01-05 2023-11-23 가드녹스 사이버 테크놀로지스 엘티디. 서비스 지향 아키텍처에 기초하는 집중식 서비스 ecu를구현하도록 구성된 관련 디바이스들을 갖는 특별히 프로그래밍된 컴퓨팅 시스템들 및 그 사용 방법들
KR102524290B1 (ko) * 2017-12-26 2023-04-21 현대자동차주식회사 이더넷 스위치, 차량 내 네트워크 구성 방법 및 차량
KR102244569B1 (ko) * 2018-11-26 2021-04-26 한국전자통신연구원 오토모티브 이더넷에 기초하여 차량 내부 네트워크에서 차량 내 디바이스간 통신 방법 및 장치
US10904167B2 (en) 2019-04-25 2021-01-26 Red Hat, Inc. Incoming packet processing for a computer system
KR20200140542A (ko) * 2019-06-07 2020-12-16 현대자동차주식회사 Can에 기반한 파셜 네트워크 장치 및 그의 동작 방법과 그를 포함하는 차량
US11797333B2 (en) * 2019-12-11 2023-10-24 Intel Corporation Efficient receive interrupt signaling

Also Published As

Publication number Publication date
EP4366248A1 (en) 2024-05-08
WO2023277631A1 (ko) 2023-01-05
EP4366247A1 (en) 2024-05-08
EP4366249A1 (en) 2024-05-08
EP4366246A1 (en) 2024-05-08
WO2023277632A1 (ko) 2023-01-05
WO2023277637A1 (ko) 2023-01-05
WO2023277634A1 (ko) 2023-01-05
KR20240032068A (ko) 2024-03-08
KR20240032067A (ko) 2024-03-08

Similar Documents

Publication Publication Date Title
EP3488579A1 (en) Efficient communications amongst computing nodes for operating autonomous vehicles
US10409746B2 (en) Memory access control device and control method of memory access
US11018986B2 (en) Communication apparatus, communication method, and computer program product
JP2023519405A (ja) ハードウェアアクセラレータをスケジューリングするための方法およびタスクスケジューラ
CN109474919B (zh) 蓝牙音频基于角色的调度
EP4075272A1 (en) Signal processing device, and vehicle display device comprising same
US8386719B2 (en) Method and apparatus for controlling shared memory and method of accessing shared memory
KR20240032069A (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
EP4339778A1 (en) Signal processing apparatus and communication apparatus for vehicle, comprising same
US20190141159A1 (en) Communication method, in-vehicle communication device, computer-readable medium, and in-vehicle communication system
KR20220113528A (ko) 컨텍스트 정보 공유를 위한 빌보드
CN113791843A (zh) 一种执行方法、装置、设备及存储介质
US10872174B2 (en) Information processing device, information processing method, and computer program product
CN110876074B (zh) 显示移动装置内容的方法及其设备
EP4300302A1 (en) Display device for vehicle
US20240140334A1 (en) Vehicle communication device and display apparatus for vehicle including the same
EP4245615A1 (en) Signal processing device and vehicle display device having same
EP4329317A1 (en) Signal processing device and vehicle display device having same
KR102647127B1 (ko) 차량용 디스플레이 장치
US20240217342A1 (en) Vehicle display apparatus
US20240231881A9 (en) Display apparatus for vehicle
KR20240093724A (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
JP2014211842A (ja) ネットワーク装置
WO2023077018A1 (en) Data flow management for computational loads
CN118264707A (en) Communication system, method and vehicle