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

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

Info

Publication number
WO2023277637A1
WO2023277637A1 PCT/KR2022/009478 KR2022009478W WO2023277637A1 WO 2023277637 A1 WO2023277637 A1 WO 2023277637A1 KR 2022009478 W KR2022009478 W KR 2022009478W WO 2023277637 A1 WO2023277637 A1 WO 2023277637A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
message
data
communication
signal processing
Prior art date
Application number
PCT/KR2022/009478
Other languages
English (en)
French (fr)
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 EP22833690.5A priority Critical patent/EP4366249A1/en
Priority to KR1020247003697A priority patent/KR20240032069A/ko
Publication of WO2023277637A1 publication Critical patent/WO2023277637A1/ko

Links

Images

Classifications

    • 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
    • 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
    • H04L12/40013Details regarding a bus controller
    • 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
    • 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/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

Definitions

  • the present disclosure relates to a signal processing device and a vehicle communication device including the same, and more particularly, to a signal processing device capable of reducing delay time and performing high-speed data transmission during communication between processors and a vehicle communication device including the same. will be.
  • a vehicle is a device that allows a user to move in a desired direction.
  • a typical example is a car.
  • a vehicle communication device is mounted inside the vehicle.
  • a gateway that is a high-speed router may be used.
  • Korean Patent Registration No. 10-1020948 (hereinafter referred to as prior literature) relates to a network gateway and network system for vehicles, and discloses a mobile terminal supporting a wireless LAN using the Internet using a telematics module of a vehicle. do.
  • the communication method of the vehicle network gateway has a problem in that real-time data transmission and large-capacity data transmission are difficult due to low bandwidth and unnecessary memory copying using UART, SPI, and the like.
  • An object of the present disclosure is to provide a signal processing device capable of reducing delay time and performing high-speed data transmission during communication between processors and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of rapidly transmitting a message based on a different communication method and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of efficiently using a processor based on an interrupt and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of operating without a lock mechanism of a processor and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of significantly reducing data transmission loss based on clock or memory access performance of a processor and a vehicle communication device including the same.
  • another object of the present disclosure is to provide a signal processing device capable of guaranteeing real-time transmission of high-priority data or events in inter-processor communication and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of quickly processing real-time data and large-capacity data, and a vehicle communication device having the same.
  • a signal processing device receives a first message including a sensor signal in a vehicle based on a first communication method, and process the signal.
  • a first processor that performs signal processing for receiving a second message including a communication message received from the outside based on a second communication method, and performing signal processing on the received second message; and a shared memory operable to transmit a first message or a second message between a processor and a second processor, wherein the first processor or the second processor transmits the first message or the second message stored in the shared memory based on an interrupt signal.
  • an interrupt router outputting an interrupt signal to the first processor or the second processor may be further included.
  • the interrupt router may output an interrupt signal to each core in the first processor or each core in the second processor.
  • the interrupt router may dynamically adjust the number of triggering interrupts.
  • the first processor or the second processor may operate based on a lock-free queue.
  • the first processor or the second processor may transmit or receive the first message or the second message based on a dynamic bandwidth according to clock or memory access performance.
  • the first processor transmits the first message to the shared memory based on the first dynamic bandwidth according to the first clock
  • the second processor transmits the second message based on the second dynamic bandwidth according to the second clock. Messages can be sent to shared memory.
  • the first processor executes a first server and a first driver for Inter Processor Communication (IPC)
  • the second processor executes a second server and a second driver for Inter Processor Communication.
  • an interrupt signal is transmitted between the first server and the second server, and the first server or the second server may transmit data to the shared memory or receive data.
  • an application executed by the second processor may receive the first message by accessing the shared memory.
  • an application executed by the first processor may receive a second message by accessing the shared memory.
  • the shared memory may be divided into areas for each application executed in the first processor or the second processor.
  • the interrupt router may operate in an interrupt driven mode when the message to be transmitted is event-based data, and operate in a polling mode when the message to be transmitted is periodic data.
  • the first processor may operate in an interrupt driven mode when the first message to be transmitted is event-based data, and operate in a polling mode when the first message to be transmitted is periodic data.
  • the second processor may divide the data and transmit the data to the first memory a plurality of times.
  • the first processor may receive a first message through a plurality of channels and transmit the first message through a shared memory.
  • the second processor may control to receive a first message through the shared memory, convert the first message into second communication-based data, and transmit the converted data to an external server.
  • the first processor includes a first manager including a first cache for inter-processor communication (Inter Processor Communication and IPC), and the second processor includes a second cache for inter-processor communication and A second manager including a timer may be provided.
  • the first processor stores or manages the first message received in the first cache when receiving the subscription request, and compares the value stored in the first cache when receiving the first message, and when the difference is greater than or equal to a predetermined value, the processor Through inter-communication, the first message may be transmitted to the second processor.
  • a signal processing device and a vehicle communication device including the same further include a first memory having an IPC channel and a second memory storing sensor data including vehicle speed data, , the shared memory may be selected from either the first memory or the second memory based on the available size of the first memory or the second memory.
  • a signal processing device and a vehicle communication device including the same include a first processor receiving a first message including a sensor signal in a vehicle and performing signal processing based on a first communication method. and a second processor that receives a second message including a communication message received from the outside based on the second communication method and performs signal processing on the received second message, and between the first processor and the second processor and a shared memory operating for transmission of a first message or a second message of, and the first processor or the second processor receives the first message or the second message stored in the shared memory based on an interrupt signal. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In particular, it is possible to rapidly transmit messages based on other communication methods.
  • an interrupt router outputting an interrupt signal to the first processor or the second processor may be further included.
  • the interrupt router may output an interrupt signal to each core in the first processor or each core in the second processor. Accordingly, it is possible to efficiently use the processor based on the interrupt.
  • the interrupt router may dynamically adjust the number of triggering interrupts. Accordingly, it is possible to efficiently use the processor based on the interrupt.
  • the first processor or the second processor may operate based on a lock-free queue. Accordingly, it is possible to operate without a lock mechanism of the processor.
  • the first processor or the second processor may transmit or receive the first message or the second message based on a dynamic bandwidth according to clock or memory access performance. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In addition, data transmission loss can be significantly reduced based on the clock or memory access performance of the processor.
  • the first processor transmits the first message to the shared memory based on the first dynamic bandwidth according to the first clock
  • the second processor transmits the second message based on the second dynamic bandwidth according to the second clock.
  • Messages can be sent to shared memory. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In addition, data transmission loss can be significantly reduced based on the clock or memory access performance of the processor.
  • the first processor executes a first server and a first driver for Inter Processor Communication (IPC)
  • the second processor executes a second server and a second driver for Inter Processor Communication.
  • an interrupt signal is transmitted between the first server and the second server, and the first server or the second server may transmit data to the shared memory or receive data. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • an application executed by the second processor may receive the first message by accessing the shared memory. Accordingly, it is possible to quickly receive messages based on other communication methods.
  • an application executed by the first processor may receive a second message by accessing the shared memory. Accordingly, it is possible to quickly receive messages based on other communication methods.
  • the shared memory may be divided into areas for each application executed in the first processor or the second processor. Accordingly, it is possible to stably use the shared memory.
  • the interrupt router may operate in an interrupt driven mode when the message to be transmitted is event-based data, and operate in a polling mode when the message to be transmitted is periodic data. Accordingly, it is possible to efficiently transmit a message.
  • the first processor may operate in an interrupt driven mode when the first message to be transmitted is event-based data, and operate in a polling mode when the first message to be transmitted is periodic data. Accordingly, it is possible to efficiently transmit a message.
  • the second processor may divide the data and transmit the data to the first memory a plurality of times. Accordingly, it is possible to prevent performance degradation due to excessive interrupts.
  • the first processor may receive a first message through a plurality of channels and transmit the first message through a shared memory. Accordingly, it is possible to efficiently transmit a message.
  • the second processor may control to receive a first message through the shared memory, convert the first message into second communication-based data, and transmit the converted data to an external server. Accordingly, it is possible to efficiently transmit a message.
  • the first processor includes a first manager including a first cache for inter-processor communication (Inter Processor Communication and IPC), and the second processor includes a second cache for inter-processor communication and A second manager including a timer may be provided. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the first processor stores or manages the first message received in the first cache when receiving the subscription request, and compares the value stored in the first cache when receiving the first message, and when the difference is greater than or equal to a predetermined value, the processor Through inter-communication, the first message may be transmitted to the second processor. Accordingly, by minimizing the cache occupancy or buffer occupancy of the same data, it is possible to reduce delay time and perform high-speed data transmission during communication between processors.
  • a signal processing device and a vehicle communication device including the same further include a first memory having an IPC channel and a second memory storing sensor data including vehicle speed data, , the shared memory may be selected from either the first memory or the second memory based on the available size of the first memory or the second memory. Accordingly, it is possible to efficiently use the shared memory.
  • FIG. 1 is a view showing an example of a vehicle exterior and a vehicle interior.
  • FIGS. 2a to 2c are diagrams illustrating various architectures of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • FIG. 3 is an example of an internal block diagram of a signal processing device according to an embodiment of the present disclosure.
  • FIG. 4A is a diagram illustrating an example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • 4B is a diagram illustrating another example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • FIG. 5 is an example of an internal block diagram of the vehicle display device of FIG. 4B.
  • 6A is an example of an internal block diagram of a communication device for a vehicle related to the present disclosure.
  • FIG. 6B is a diagram referred to in the description of FIG. 6A.
  • FIG. 7A is an example of an internal block diagram of a vehicle communication device according to an embodiment of the present disclosure.
  • FIG. 7B is a diagram referred to in the description of FIG. 7A.
  • FIG. 8 is another example of an internal block diagram of a vehicle communication device according to an embodiment of the present disclosure.
  • 9A to 13B are diagrams referred to in the description of FIG. 8 .
  • module and “unit” for the components used in the following description are simply given in consideration of ease of writing this specification, and do not themselves give a particularly important meaning or role. Accordingly, the “module” and “unit” may be used interchangeably.
  • FIG. 1 is a view showing an example of a vehicle exterior and a vehicle interior.
  • the vehicle 200 is operated by a plurality of wheels 103FR, 103FL, 103RL, .. rotated by a power source, and a steering wheel 150 for adjusting the traveling direction of the vehicle 200. .
  • the vehicle 200 may further include a camera 195 for obtaining an image of the front of the vehicle.
  • the vehicle 200 may include a plurality of displays 180a and 180b for displaying images and information therein.
  • FIG. 1 illustrates a cluster display 180a and an audio video navigation (AVN) display 180b as the plurality of displays 180a and 180b.
  • APN audio video navigation
  • HUD Head Up Display
  • the AVN (Audio Video Navigation) display 180b may also be named a center information display (Center Information Dislpay).
  • the same image may be synchronized and displayed on the plurality of displays 180a and 180b.
  • the signal processing device 170 in the vehicle display device 100 synchronizes and transmits the same data to a plurality of virtual machines, and controls images displayed on the plurality of displays to be the same.
  • the vehicle 200 described in this specification may be a concept that includes all of a vehicle including an engine as a power source, a hybrid vehicle including an engine and an electric motor as a power source, and an electric vehicle including an electric motor as a power source. there is.
  • FIGS. 2a to 2c are diagrams illustrating various architectures of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • FIG. 2A is a diagram illustrating a first architecture of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • the first architecture 300a may correspond to a zone-based architecture.
  • sensor devices and processors inside the vehicle may be disposed in the plurality of zones Z1 to Z4, respectively, and in the central area of the plurality of zones Z1 to Z4, the vehicle communication gateway ( A signal processing device 170a including GWDa) may be disposed.
  • the signal processing device 170a may further include an autonomous driving control module (ACC), a cockpit control module (CPG), and the like, in addition to the vehicle communication gateway (GWDa).
  • ACC autonomous driving control module
  • CPG cockpit control module
  • GWDa vehicle communication gateway
  • the vehicle communication gateway GWDa in the signal processing device 170a may be a High Performance Computing (HPC) gateway.
  • HPC High Performance Computing
  • the signal processing device 170a of FIG. 2A is an integrated HPC and may exchange data with an external communication module (not shown) or a processor (not shown) within a plurality of zones Z1 to Z4.
  • 2B is a diagram illustrating a second architecture of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • the second architecture 300b may correspond to a domain integrated architecture.
  • the body chassis control module (BSG), power control module (PTG), ADAS control module (ADG), and cockpit control module (CPG) are connected in parallel to the gateway (GWDb), and each module (BSG, PTG, ADG and CPG), a plurality of processors (ECUs) may be electrically connected to each other.
  • BSG body chassis control module
  • PTG power control module
  • ADG ADAS control module
  • CPG cockpit control module
  • each processor (ECU) may be integrally connected to the gateway (GWDb).
  • the signal processing device 170 including the gateway GWDb of FIG. 2B operates as a domain integrated signal processing device.
  • 2C is a diagram illustrating a third architecture of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • the third architecture 300c may correspond to a distributed architecture.
  • the body chassis control module (BSG), the power control module (PTG), the ADAS control module (ADG), and the cockpit control module (CPG) are connected in parallel to the gateway (GWDc).
  • the processor ECU may be connected to the gateway GWDb in parallel.
  • the third architecture has a difference in that each processor (ECU) is directly connected to the gateway (GWDb) without being connected to other modules.
  • the signal processing device 170 including the gateway GWDc of FIG. 2C operates as a distributed signal processing device.
  • FIG. 3 is an example of an internal block diagram of a signal processing device according to an embodiment of the present disclosure.
  • a signal processing device 170 includes a first processor that receives a first message including a sensor signal in a vehicle and performs signal processing based on a first communication method. 732a and a second processor 732b that receives a second message including a communication message received from the outside based on the second communication method and performs signal processing on the received second message.
  • the second communication method may have a higher communication speed or a larger bandwidth than the first communication method.
  • the second communication method may be an Ethernet communication method
  • the first communication method may be a CAN communication method
  • the first message may be a CAN message
  • the second message may be an Ethernet message
  • the signal processing apparatus 170 further includes a first memory 320 having an IPC channel and a second memory 330 storing sensor data including vehicle speed data. do.
  • the first memory 320 may be a static RAM (SRAM), and the second memory 330 may be a DDR memory.
  • the second memory 330 may be a double data rate synchronous dynamic random access memory (DDR SDRAM).
  • the signal processing apparatus 170 includes a shared memory 508 operating to transmit a first message or a second message between a first processor 732a and a second processor 732b.
  • the shared memory 508 is preferably provided in the first memory 320 . Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the first processor 732a may include a plurality of processor cores 317o, 317a, and 317b therein.
  • the first processor 732a may further include an interface 319 for receiving CAN messages from external vehicle sensors.
  • the first processor core 317o in the first processor 732a may execute a plurality of applications or execute the first AUTOSAR (AUTomotive Open System Architecture) 312 .
  • AUTOSAR AUTomotive Open System Architecture
  • the first processor core 317o may execute the second autosar 312 to execute the interprocessor communication handler (IPC Handler) 314 .
  • IPC Handler interprocessor communication handler
  • the IPC Handler 314 may exchange data with the first memory 320 or exchange IPC data with an application executed in the first processor core 317o.
  • the IPC Handler 314 may exchange interrupts with the IPC driver 348 in the second processor 732b.
  • the second processor core 317a in the first processor 732a may execute the IDS and receive CAN data from the second memory 330 .
  • the third processor core 317b in the first processor 732a may execute logging and store CAN data received through the interface 319 in the second memory 330 .
  • the third processor core 317b in the first processor 732a may execute an inter-processor communication (IPC) module 318 to exchange IPC data with the first memory 320 .
  • IPC inter-processor communication
  • the third processor core 317b in the first processor 732a may transmit an interrupt to the IPC driver 348 in the second processor 732b.
  • the first memory 320 may exchange IPC data with the IPC Handler 314 or the IPC module 318 .
  • the second processor 732b may execute an application 343, an IPC handler 345, an IPC daemon 346, an IPC driver 348, and the like.
  • the second processor 732b may further execute a service oriented architecture (SOA) adapter 341, a diagnosis server 342, and a second autosar 347.
  • SOA service oriented architecture
  • the second autosar 347 may be an adaptive autosar, and the first autosar 312 may be a classic autosar.
  • the IPC daemon 346 may exchange interrupt signals with the SOA adapter 341, the diagnosis server 342, the IPC handler 345, the IPC driver 348, and the like.
  • the first memory 320 may exchange IPC data with the SOA adapter 341, the diagnosis server 342, the IPC handler 345, and the like.
  • the IPC data described in the description of FIG. 3 may be a CAN message or an Ethernet message.
  • the IPC Handler 345 may operate as a service provider that provides data such as diagnosis, firmware upgrade, and system information based on the second autosa 347.
  • the first processor 732a executes a message router (not shown), and the message router transmits a frame of a first message such as a CAN message to a frame of a second message such as an Ethernet message. It can be converted into a frame format and transmitted to the second processor 732b.
  • the first processor 732a may further execute a CAN driver (not shown) and a CAN interface (not shown).
  • the CAN interface (not shown) is implemented with a total of 16 channels, each with 8 channels in the 4th processor core (not shown) and the 5th processor core (not shown) in the first processor 732a. It is also possible.
  • the first CAN interface (not shown) executed in the fourth processor core (not shown) corresponds to the first queue PTb (queue) during inter-processor communication
  • the second CAN interface (not shown) to be executed may correspond to the second queue PTa having a higher priority than the first queue PTb during inter-processor communication.
  • FIG. 4A is a diagram illustrating an example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • a cluster display 180a inside the vehicle, a cluster display 180a, an AVN (Audio Video Navigation) display 180b, rear seat entertainment displays 180c and 180d, a room mirror display (not shown), and the like are provided.
  • AVN Audio Video Navigation
  • rear seat entertainment displays 180c and 180d a room mirror display (not shown), and the like are provided.
  • 4B is a diagram illustrating another example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • a vehicle display apparatus 100 is a signal processing device that performs signal processing for displaying images and information on a plurality of displays 180a to 180b and the plurality of displays 180a to 180b. (170) may be provided.
  • the first display 180a is a cluster display 180a for displaying driving conditions and operation information
  • the second display 180b displays vehicle driving information, navigation maps, and various other information. It may be an AVN (Audio Video Navigation) display 180b for displaying entertainment information or images.
  • AVN Audio Video Navigation
  • the signal processing device 170 includes a processor 175 therein, and may execute a first virtual machine to a third virtual machine (not shown) on a hypervisor (not shown) in the processor 175 .
  • a second virtual machine (not shown) may operate for the first display 180a, and a third virtual machine (not shown) may operate for the second display 180b.
  • the first virtual machine (not shown) in the processor 175 is shared based on the hypervisor 505 for the same data transmission to the second virtual machine (not shown) and the third virtual machine (not shown).
  • the memory 508 can be controlled to be set. Accordingly, the same information or the same image can be synchronized and displayed on the first display 180a and the second display 180b in the vehicle.
  • the first virtualization machine (not shown) in the processor 175 shares at least a portion of data with the second virtualization machine (not shown) and the third virtualization machine (not shown) for data sharing processing. Accordingly, it is possible to divide and process data in a plurality of virtual machines for a plurality of displays in the vehicle.
  • the first virtualization machine (not shown) in the processor 175 receives and processes the wheel speed sensor data of the vehicle, and converts it into at least one of a second virtualization machine (not shown) and a third virtualization machine (not shown). , the processed wheel speed sensor data can be transmitted. Accordingly, wheel speed sensor data of the vehicle can be shared with at least one virtual machine or the like.
  • the vehicle display device 100 further includes a rear seat entertainment display 180c for displaying driving state information, simple navigation information, various entertainment information, or images.
  • a rear seat entertainment display 180c for displaying driving state information, simple navigation information, various entertainment information, or images.
  • the signal processing device 170 executes a fourth virtual machine (not shown) in addition to the first virtual machine to the third virtual machine (not shown) on a hypervisor (not shown) in the processor 175 to perform RSE.
  • the display 180c may be controlled.
  • some of the plurality of displays 180a to 180c may operate based on a Linux OS, and some may operate based on a web OS.
  • the signal processing device 170 can control displays 180a to 180c operating under various operating systems (OS) to synchronize and display the same information or the same image.
  • OS operating systems
  • the vehicle speed indicator 212a and the vehicle internal temperature indicator 213a are displayed on the first display 180a, and a plurality of applications and the vehicle speed indicator 212b are displayed on the second display 180b. and the vehicle interior temperature indicator 213b are displayed, and a second home screen 222b including a plurality of applications and the vehicle interior temperature indicator 213c is displayed on the third display 180c. Illustrate what is displayed.
  • FIG. 5 is an example of an internal block diagram of the vehicle display device of FIG. 4B.
  • a vehicle display device 100 includes an input unit 110, a communication unit 120 for communication with an external device, and a plurality of communication modules EMa to EMd for internal communication. , a memory 140, a signal processing device 170, a plurality of displays 180a to 180c, an audio output unit 185, and a power supply unit 190.
  • the plurality of communication modules EMa to EMd may be respectively disposed in a plurality of zones Z1 to Z4 of FIG. 2A .
  • the signal processing device 170 may include an Ethernet switch 736b for data communication with each of the communication modules EM1 to EM4.
  • Each of the communication modules EM1 to EM4 may perform data communication with a plurality of sensor devices SN or ECU 770 .
  • the plurality of sensor devices SN may include a camera 195 , a lidar 196 , a radar 197 , or a position sensor 198 .
  • the input unit 110 may include a physical button or pad for button input or touch input.
  • the input unit 110 may include a microphone (not shown) for user voice input.
  • the communication unit 120 may exchange data with the mobile terminal 800 or the server 900 in a wireless manner.
  • the communication unit 120 may wirelessly exchange data with the vehicle driver's mobile terminal.
  • various data communication methods such as Bluetooth, WiFi, WiFi Direct, and APiX are possible.
  • the communication unit 120 may receive weather information and road traffic condition information, eg, Transport Protocol Expert Group (TPEG) information, from the mobile terminal 800 or the server 900 . To this end, the communication unit 120 may include a mobile communication module (not shown).
  • TPEG Transport Protocol Expert Group
  • the plurality of communication modules EM1 to EM4 may receive sensor information and the like from the ECU 770 or the sensor device SN and transmit the received information to the signal processing device 170 .
  • the sensor information includes vehicle direction information, vehicle location information (GPS information), vehicle angle information, vehicle speed information, vehicle acceleration information, vehicle tilt information, vehicle forward/reverse information, battery information, fuel information, tire information, vehicle It may include at least one of lamp information, vehicle internal temperature information, and vehicle internal humidity information.
  • Such sensor information includes heading sensor, yaw sensor, gyro sensor, position module, vehicle forward/backward sensor, wheel sensor, vehicle speed sensor, It may be obtained from a vehicle body tilt detection sensor, a battery sensor, a fuel sensor, a tire sensor, a steering sensor by steering wheel rotation, a vehicle internal temperature sensor, a vehicle internal humidity sensor, and the like.
  • the position module may include a GPS module or a location sensor 198 for receiving GPS information.
  • At least one of the plurality of communication modules EM1 to EM4 may transmit location information data sensed by the GPS module or the location sensor 198 to the signal processing device 170 .
  • At least one of the plurality of communication modules EM1 to EM4 includes image data from the front of the vehicle, image data from the side of the vehicle, image data from the rear of the vehicle, and obstacles around the vehicle from the camera 195, lidar 196, or radar 197. Distance information may be received, and the received information may be transmitted to the signal processing device 170 .
  • the memory 140 may store various data for overall operation of the vehicle display device 100, such as a program for processing or controlling the signal processing device 170.
  • the memory 140 may store data related to a hypervisor and first to third virtual machines to be executed in the processor 175 .
  • the audio output unit 185 converts the electrical signal from the signal processing device 170 into an audio signal and outputs it. To this end, a speaker or the like may be provided.
  • the power supply 190 may supply power required for operation of each component under the control of the signal processing device 170 .
  • the power supply unit 190 may receive power from a battery inside the vehicle.
  • the signal processing device 170 controls the overall operation of each unit in the vehicle display device 100 .
  • the signal processing device 170 may include a processor 175 that performs signal processing for the vehicle displays 180a and 180b.
  • the processor 175 may execute a first virtual machine to a third virtual machine (not shown) on a hypervisor (not shown) in the processor 175 .
  • the first virtual machine (not shown) may be referred to as a server virtual machine, and the second virtual machine to the third virtual machine (not shown). ) may be named a guest virtual machine.
  • sensor data from a plurality of sensor devices, for example, vehicle sensor data, location information data, camera image data, audio data or touch input data It can be received, processed or processed and output.
  • the first virtual machine directly receives and processes CAN data, Ethernet data, audio data, radio data, USB data, and wireless communication data for the second to third virtual machines ( ). can do.
  • the first virtual machine may transmit the processed data to the second virtual machine to the third virtual machine 530 to 540 .
  • the first virtual machine (not shown) among the first to third virtual machines (not shown) receives sensor data, communication data, or external input data from a plurality of sensor devices to perform signal processing.
  • the burden of signal processing on other virtual machines is reduced, 1:N data communication is possible, and synchronization in data sharing is possible.
  • the first virtual machine may record data in the shared memory 508 and control the second virtual machine (not shown) and the third virtual machine (not shown) to share the same data. .
  • the first virtual machine (not shown) records the vehicle sensor data, the location information data, the camera image data, or the touch input data in the shared memory 508, and the second virtual machine (not shown) ) and a third virtual machine (not shown) to share the same data. Accordingly, it is possible to share data in a 1:N manner.
  • the first virtual machine (not shown) in the processor 175 is shared based on the hypervisor 505 for the same data transmission to the second virtual machine (not shown) and the third virtual machine (not shown).
  • the memory 508 can be controlled to be set.
  • the signal processing device 170 may process various signals such as audio signals, video signals, and data signals.
  • the signal processing device 170 may be implemented in the form of a System On Chip (SOC).
  • SOC System On Chip
  • the signal processing device 170 in the display device 100 of FIG. 5 may be the same as the signal processing device 170 of the vehicle communication device 700 of FIG. 7A or the like.
  • 6A is an example of an internal block diagram of a communication device for a vehicle related to the present disclosure.
  • a vehicle communication device 600x related to the present disclosure includes a first communication gateway 630a and a second communication gateway 630b.
  • the first communication gateway 630a is for exchanging CAN signals by CAN communication with the body module 610, the chassis module 614, the CAN communication diagnosis device 616, and at least one CAN communication ECU 618.
  • a CAN transceiver 636a and a first processor 632a for signal processing the CAN signal received by the CAN transceiver 636a may be provided.
  • the first processor 632a may include an IPC manager 634a for performing inter-processor communication with the second processor 632b in the second communication gateway 630b.
  • the second communication gateway 630b exchanges Ethernet messages through Ethernet communication with the telematics control module 620, the head module 622, the Ethernet communication diagnosis device 624, and at least one Ethernet communication ECU 626.
  • An Ethernet switch 636b for processing and a second processor 632b for signal processing the Ethernet message received from the Ethernet switch 636b may be provided.
  • the second processor 632b may include an IPC manager 634b for performing inter-processor communication with the first processor 632a in the first communication gateway 630a.
  • the IPC manager 634a in the first processor 632a and the IPC manager 634b in the second processor 632b may perform inter-processor communication based on Ethernet communication.
  • FIG. 6B is a diagram referred to in the description of FIG. 6A.
  • a first processor 632a may execute an IPC manager 634a for inter-processor communication with a second processor 632b, a device driver 636a for data transmission, and an application 638a. there is.
  • the device driver 636a it is possible to receive a CAN signal from the CAN ECU 618, and through the device driver 636a, the second processor 632b and inter-processor communication, UART, SPI, or Ethernet (Ethernet) communication 631 may be performed.
  • the second processor 632b may execute the IPC manager 634b for inter-processor communication with the first processor 632a, the device driver 636b for data transmission, and the application 638b.
  • the device driver 636b it is possible to receive an Ethernet signal from the Ethernet ECU 626, and through the device driver 636b, the first processor 632a and inter-processor communication, UART, SPI, or Ethernet (Ethernet) communication 631 may be performed.
  • the present disclosure proposes a method capable of reducing latency and performing high-speed data transmission during communication between processors. This will be described with reference to FIG. 7A below.
  • FIG. 7A is an example of an internal block diagram of a vehicle communication device according to an embodiment of the present disclosure.
  • a vehicle communication device 700 transmits sensor signals in a vehicle based on a first communication gateway 730a and a second communication gateway 730b and a first communication method.
  • a first processor 732a that receives a first message including a first message and performs signal processing, and receives a second message including a communication message received from the outside based on a second communication method, and receives a second message received from the outside. It includes a second processor 732b that performs signal processing of messages, and a shared memory 508 that operates to transmit a first message or a second message between the first processor 732a and the second processor 732b.
  • the shared memory 508 is used for inter-processor communication (IPC) between the first processor 732a and the second processor 732b, thereby delaying inter-processor communication. Latency is reduced, and high-speed data transmission can be performed.
  • IPC inter-processor communication
  • the first processor 732a, the second processor 732b, and the shared memory 508 are integrated into a single chip, a single signal processing device 170. By implementing this, latency is reduced during communication between processors, and high-speed data transmission can be performed.
  • the second communication method preferably has a larger bandwidth and a higher transmission speed than the first communication method.
  • the second communication method may be an Ethernet communication method
  • the first communication method may be a CAN communication method
  • the first message may be a CAN message or a CAN signal
  • the second message may be an Ethernet message
  • the signal processing device 170 receives a first message including a sensor signal in the vehicle based on a first communication method
  • the transceiver 736a transmits the first message to the first processor 732a
  • the second message including the communication message received from the outside is received based on the second communication method
  • the second message is transmitted to the second processor 736a.
  • a switch 736b transmitting to 732b may be further included. Accordingly, it is possible to stably transfer the first message and the second message to the first processor 732a and the second processor 732b, respectively.
  • the first processor 732a or the transceiver 736a transmits a CAN signal through CAN communication with the body module 610, the chassis module 614, the CAN communication diagnosis device 616, and at least one CAN communication ECU 618. can be exchanged.
  • the first processor 732a may include a first manager 734a for Inter Processor Communication (IPC) with the second processor 732b.
  • the first manager 734a may also be referred to as an IPC manager.
  • the first manager 734a may include a first cache 735a (cache).
  • the second processor 732b or the switch 736b is used for Ethernet communication with the telematics control module 620, the head module 622, the Ethernet communication diagnosis device 624, and at least one Ethernet communication ECU 626. Ethernet messages can be exchanged by The switch 736b may also be referred to as an Ethernet switch.
  • the second processor 732b may include a second manager 734b for Inter Processor Communication (IPC) with the first processor 732a.
  • the second manager 734b may also be referred to as an IPC manager.
  • the second manager 734b may include a second manager 734b including a second cache 735b and a timer 737 .
  • the second processor 732b may receive a periodic subscription request of the first message from the Ethernet processor or the Ethernet communication ECU 626 .
  • the second processor 732b may transmit a periodic subscription request of the first message to the first processor 732a.
  • the second processor 732b may transmit a subscription request through inter-processor communication (IPC). Accordingly, inter-processor communication can be performed.
  • IPC inter-processor communication
  • the first processor 732a periodically receives CAN communication data from at least one CAN communication ECU 618 or the like.
  • the first processor 732a periodically receives a first message predefined in the CAN database (DB) from at least one CAN communication ECU 618 or the like.
  • DB CAN database
  • the periodic first message may include vehicle speed information or location information as sensor information.
  • the periodic first message may include vehicle direction information, vehicle location information (GPS information), vehicle angle information, vehicle acceleration information, vehicle tilt information, vehicle forward/backward information, battery information, fuel information, tire information, vehicle It may include at least one of lamp information, vehicle internal temperature information, and vehicle internal humidity information.
  • the first processor 732a selects a first message received with a subscription request from CAN communication data or first messages received periodically, and transmits the first message received with a subscription request through inter-processor communication to a second processor ( 732b).
  • the first processor 732a separately processes, according to an internal operation, a first message that has not received a subscription request among CAN communication data or first messages received periodically and does not transmit it to the second processor 732b.
  • the first processor 732a stores or manages in the first cache 735a when receiving the first message received with the subscription request, and compares the value stored in the first cache 735a when receiving the first message, When the difference is greater than or equal to a predetermined value, a first message may be transmitted to the second processor 732b through inter-processor communication.
  • the first processor 732a stores or manages in the first cache 735a when receiving the first message received with the subscription request, and compares the value stored in the first cache 735a when receiving the first message, When the difference is greater than or equal to a predetermined value, a first message may be transmitted to the second processor 732b through inter-processor communication using the shared memory 508 .
  • the first processor 732a compares the value stored in the first cache 735a and, if not identical, performs inter-processor communication using the shared memory 508. Through this, the first message may be transmitted to the second processor 732b.
  • the first processor 732a when receiving the first message, compares the value stored in the first cache 735a, and may not transmit the first message to the second processor 732b when the value is the same. .
  • the second processor 732b may store the first message in the second cache 735b when the first message is first received, and update the second cache 735b when the first message is subsequently received. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor 732b generates a thread of the timer 737 according to reception of the first message, and the value of the second cache 735b is transferred to the Ethernet processor or the Ethernet communication ECU 626 whenever the thread expires. can be conveyed Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor 732b may transmit the value of the second cache 735b to the Ethernet processor or the Ethernet communication ECU 626 during a period in which the first message is not received because inter-processor communication is not performed.
  • the cached value stored in the second processor (732b) may be transferred to the Ethernet processor 626 without inter-processor communication.
  • the second processor 732b may transmit a value updated in the second cache 735b to the Ethernet processor or the Ethernet communication ECU 626 during a period in which inter-processor communication is performed and the first message is received. . Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the shared memory 508 transmits data to the first processor through a first queue (PTb) and a second queue (PTa) having a higher priority than the first queue (PTb) during inter-processor communication. In 732a, it can be transmitted between the second processor 732b.
  • the shared memory 508 may allow only data corresponding to an event allocated for the second queue PTa to be transmitted through the second queue PTa even if an event for inter-processor communication increases. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • the first queue PTb may be a normal priority queue
  • the second queue PTa may be a high priority queue
  • the shared memory 508 may transmit most of the data through the first queue PTb during inter-processor communication.
  • the shared memory 508 may transmit only time sensitive-critical data without delay through the second queue PTa having higher priority than the first queue PTb.
  • time sensitive-critical data may be speed data or location information data.
  • the shared memory 508 may transmit speed data or location information data between the first processor 732a and the second processor 732b through the second queue PTa. Accordingly, it is possible to guarantee real-time transmission of high-priority speed data or location information data in inter-processor communication.
  • the first processor 732a or the second processor 732b may manage a list including applications that can use the second queue PTa.
  • the second processor 732b may include and manage an application for displaying speed information as an application capable of using the second queue PTa in the second list 738b.
  • the shared memory 508 can reduce delay time and perform high-speed data transmission in inter-processor communication by assigning at least two queues.
  • the first manager 734a in the first processor 732a manages the first list 738a as a white list
  • the second manager 734b in the second processor 732b manages the second list as a white list. Illustrates managing 738b. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • FIG. 7B is a diagram referred to in the description of FIG. 7A.
  • a first processor 732a may execute an IPC manager 734a and an application 738a for inter-processor communication with a second processor 732b. Unlike FIG. 6B , the first processor 732a does not execute a device driver.
  • IPC manager 734a it is possible to receive a CAN signal from the CAN ECU 618, and through the shared memory 508 based on the first memory 320 or the second memory 330, the second processor ( 732b), and inter-processor communication (IPC) may be performed.
  • the second processor 732b may execute an IPC manager 734b and an application 738b for inter-processor communication with the first processor 732a. Unlike FIG. 6B, the second processor 732b does not execute a device driver.
  • An Ethernet signal from the Ethernet ECU 626 may be received through the IPC manager 734b, and through the shared memory 508 based on the first memory 320 or the second memory 330, the first processor ( 732a), and inter-processor communication (IPC) may be performed.
  • IPC inter-processor communication
  • data is transmitted between the first processor 732a and the second processor 732b using the shared memory 508, thereby enabling real-time or high-speed data transmission.
  • FIG. 8 is another example of an internal block diagram of a vehicle communication device according to an embodiment of the present disclosure.
  • a vehicle communication device 700b includes a signal processing device 170 implemented as a system on chip (SOC).
  • SOC system on chip
  • the signal processing device 170 in the vehicle communication device 700b includes a first processor 732a that receives a first message including an in-vehicle sensor signal based on a first communication method and performs signal processing; Based on the second communication method, a second processor 732b receiving a second message including a communication message received from the outside and performing signal processing on the received second message; and a first processor 732a; A signal processing device 170 including a shared memory 508 operating to transmit a first message or a second message between the second processors 732b is provided.
  • the first processor 732a or the second processor 732b receives the first message or the second message stored in the shared memory 508 based on the interrupt signal. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In particular, it is possible to rapidly transmit messages based on other communication methods.
  • the first processor 732a may include a first processor core 3170 and a second processor core 317a.
  • the first processor core 3170 may execute a software component 738aa having an IPC interface and an IPC handler 314 .
  • the IPC handler 314 may execute an interrupt mitigator (IMa), a data throttling handler (DTa), and a Quality of Service handler (QHa).
  • IMa interrupt mitigator
  • DTa data throttling handler
  • QHa Quality of Service handler
  • the second processor core 317a may execute a software component 738ab having an IPC interface and an IPC handler 314b.
  • the IPC handler 314b may execute an interrupt softener (IMb), a data throttling handler (DTb), and a QoS handler (QHb).
  • IMb interrupt softener
  • DTb data throttling handler
  • QHb QoS handler
  • the second processor 732b may include a plurality of processor cores.
  • the number of cores of the second processor 732b is preferably greater than the number of cores of the first processor 732a.
  • the second processor 732b may execute an IPC driver 348 including an interrupt reliever (IMC) receiving an interrupt signal, an IPC service 345, and a plurality of applications 738ba and 738bb.
  • IMC interrupt reliever
  • the IPC service 345 may execute a data throttling handler (DTc) and a QoS handler (QHc).
  • DTc data throttling handler
  • QHc QoS handler
  • each of the plurality of applications 738ba and 738bb may have an IPC interface to receive data from the first memory 320 or the second memory 330 .
  • the signal processing device 170 in the vehicle communication device 700b may include a first memory 320 and a second memory 330 used as the shared memory 508 .
  • the first memory 320 may be a static RAM (SRAM), and the second memory 330 may be a DDR memory.
  • the second memory 330 may be a double data rate synchronous dynamic random access memory (DDR SDRAM).
  • the first memory 320 may store a control channel and a plurality of lock-free queues.
  • the second memory 330 may store a control channel and a plurality of CAN data.
  • the first memory 320 may store an IPC channel
  • the second memory 330 may store CAN data that is sensor data including vehicle speed data.
  • the signal processing device 170 in the vehicle communication device 700b may further include an interrupt router (ROT) outputting an interrupt signal to the first processor 732a or the second processor 732b.
  • ROT interrupt router
  • the interrupt router may output an interrupt signal to each of the cores 3170 and 317a in the first processor 732a or each of the cores CR0 to CR2 in the second processor 732b. Accordingly, it is possible to efficiently use the processor based on the interrupt.
  • the interrupt router can dynamically adjust the number of triggering interrupts. Accordingly, it is possible to efficiently use the processor based on the interrupt.
  • the second processor core 317a may store CAN data, which is a first message, into the second memory 330, and the first application 738ba among the plurality of applications 738ba and 738bb shares By accessing the second memory 330 operating as a memory, it is possible to receive CAN data as a first message.
  • the second application 738bb may store the second message, Ethernet data, in a lock-free queue in the first memory 320, and the first processor (732a)
  • the executed application 738aa may access a lock-free queue in the first memory 320 operating as a shared memory and receive the second message, Ethernet data.
  • the first processor 732a or the second processor 732b operates based on the lock-free queue. can do. Accordingly, it is possible to operate without a lock mechanism of the processor.
  • the shared memory 508 may divide areas for each application executed in the first processor 732a or the second processor 732b.
  • the second application 738bb among the plurality of applications 738ba and 738bb uses the second memory 330 among the shared memories 508, and the first application 738ba uses the shared memory 508.
  • the use of the first memory 320 is exemplified. Accordingly, the shared memory 508 can be stably used.
  • the shared memory 508 may divide areas according to the type of message transmitted from the first processor 732a or the second processor 732b.
  • the shared memory 508 can be stably used.
  • the first processor 732a or the second processor 732b may transmit or receive the first message or the second message based on dynamic bandwidth according to clock or memory access performance. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In addition, data transmission loss can be significantly reduced based on the clock or memory access performance of the processor.
  • the first processor 732a transmits the first message to the shared memory 508 based on the first dynamic bandwidth according to the first clock
  • the second processor 732b transmits the first message according to the second clock. 2
  • the second message can be sent to the shared memory 508. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In addition, data transmission loss can be significantly reduced based on the clock or memory access performance of the processor.
  • the second processor 732b when the performance of the second processor 732b is better than that of the first processor 732a, the second processor 732b sends a second message based on a second dynamic bandwidth greater than the first dynamic bandwidth. to the shared memory 508. Accordingly, it is possible to quickly transmit a large-capacity second message.
  • 9A to 13B are diagrams referred to in the description of FIG. 8 .
  • 9A is a diagram illustrating that CAN data input from the outside is transmitted through an Ethernet interface.
  • CAN data input from the outside is transmitted to an external Ethernet interface 738b via a first processor 732a, a first memory 320 as a shared memory, and a second processor 732b.
  • the CAN data input from the outside passes through the interface 319 for receiving the CAN message and the IPC module 318 in the first processor 732a, through the first memory 320, and then through the second processor. It is entered as 732b.
  • the second processor 732b may transmit CAN data to an external Ethernet interface 738b through the diagnostic server application 342 executed therein.
  • the camera data can be transferred to the external Ethernet interface 738b.
  • the display 180b connected to the Ethernet interface 738b can display the camera image based on the camera data.
  • vehicle speed data may be transmitted through an external Ethernet interface 738b.
  • the display 180b connected to the Ethernet interface 738b can display vehicle speed information based on the vehicle speed data.
  • 9B is a diagram illustrating outputting an interrupt signal to the first processor 732a and the second processor 732b.
  • the first processor 732a includes a first processor core 3170 and a second processor core 317a
  • the second processor 732b includes a first processor core CR0
  • a second processor core CR1 and a third processor core CR2 may be provided.
  • the interrupt router outputs an interrupt signal to each of the cores 3170 and 317a in the first processor 732a and each of the cores CR0 to CR2 in the second processor 732b, respectively, or receives an interrupt signal. can do. Accordingly, it is possible to efficiently use the processor based on the interrupt.
  • 10A and 10B are diagrams illustrating dynamic interrupt mitigation.
  • FIG. 10A is a diagram illustrating an example of dynamic interrupt mitigation.
  • the interrupt router sends the first interrupt signal some number of times (for example, once) among a plurality of times to the IPC service 314c executed in the second processor 732b. (S1020), and the IPC service 314c transmits the data to the application 738bb executed on the second processor 732b. Accordingly, the application 738bb reads the first data from the IPC service 314c (S1025) and transmits a first return signal (S1030).
  • the interrupt router transmits a second interrupt signal to the IPC service 314c (S1032), and the application 738bb reads second data from the IPC service 314c (S1034). , transmits a second return signal (S1036).
  • the interrupt router transmits a third interrupt signal to the IPC service 314c (S1042), and the application 738bb reads third data from the IPC service 314c (S1044). , and transmits a third return signal (S1046).
  • the interrupt router transmits a fourth interrupt signal to the IPC service 314c (S1052), and the application 738bb reads fourth data from the IPC service 314c (S1054) , and transmits a fourth return signal (S1056).
  • the interrupt router transmits a fourth interrupt signal to the IPC service 314c (S1062), and the application 738bb reads fourth data from the IPC service 314c (S1064). , and transmits a fourth return signal (S1066).
  • FIG. 10B is a diagram illustrating another example of dynamic interrupt mitigation.
  • a plurality of times (eg, 5 times) data is transmitted to the IPC service 314 executed on the first processor 732a, (S1010b), the IPC service 314 transmits an interrupt signal a plurality of times (eg, 5 times) to the interrupt router (ROT) (S1015b).
  • the interrupt router ROT
  • the interrupt router sends the first interrupt signal some number of times (for example, once) among a plurality of times to the IPC service 314c executed in the second processor 732b.
  • the PC service 314c checks the data for reading in the shared memory 508 (S1070), and receives the result for the remaining data for reading (S1072).
  • the IPC service 314c when the result of the data for reading corresponds to impossibility of reading the data, the IPC service 314c outputs a disable interrupt signal to the interrupt router (ROT) (S1074).
  • ROT interrupt router
  • the IPC service 314c when the result of the data for reading corresponds to the possibility of reading data, the IPC service 314c outputs a clear interrupt signal to the interrupt router (ROT) (S1076).
  • ROT interrupt router
  • the IPC service 314c transmits data of a plurality of times to the application 738bb executed on the second processor 732b at once. Accordingly, the application 738bb reads the first to fifth data from the IPC service 314c (S1078) and transmits a return signal (S1080).
  • the IPC service 314c transmits an enable interrupt signal to the interrupt router (ROT) (S1082).
  • the method of FIG. 10B enables efficient data transfer based on dynamic interrupts.
  • 10C is a diagram referenced for description of data throttling.
  • the application running on the second processor 732b transmits data corresponding to the second message (S1110).
  • the IPC service 734b executed in the second processor 732b records the received data in the shared memory 508 (S1115).
  • an application executed in the first processor 732a may read data recorded in the shared memory 508 (S1118).
  • the IPC service 734b executed in the second processor 732b outputs an interrupt signal to the IPC service 734a executed in the first processor 732a (S1120), and the IPC service 734a reads Performance is checked (S1120).
  • the IPC service 734b executed in the second processor 732b also checks the write performance (S1122).
  • the application running on the second processor 732b may read data recorded in the shared memory 508 (S1129).
  • the IPC service 734a executed in the first processor 732a outputs an interrupt signal to the IPC service 734b executed in the second processor 732b (S1132), and the IPC service 734b performs read Performance is checked (S1136).
  • the IPC service 734a executed in the first processor 732a also checks the write performance (S1134).
  • the first processor 732a or the second processor 732b may operate based on a lock-free queue. Accordingly, it is possible to operate without a lock mechanism of the processor.
  • the first processor 732a or the second processor 732b may transmit or receive a first message or a second message based on a dynamic bandwidth according to clock or memory access performance. there is.
  • the first processor 732a transmits the first message to the shared memory 508 based on the first dynamic bandwidth according to the first clock
  • the second processor 732b transmits the first message to the second clock.
  • a second message may be transmitted to the shared memory 508 . Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. In addition, data transmission loss can be significantly reduced based on the clock or memory access performance of the processor.
  • 11A and 11B are diagrams referenced for explanation of zero copy.
  • FIG. 11A illustrates that a first message is stored in a first area (MMb) of the shared memory 508 and a second message is stored in a second area (MMa) of the shared memory 508 .
  • a first processor 732a executes a first server 1152 and a first driver 1154 for Inter Processor Communication (IPC).
  • IPC Inter Processor Communication
  • the first processor 732a may further execute the system manager 1156, the autosar 312, and the router 1158.
  • the second processor 732b executes the second server 1162 and the second driver 348 for inter-processor communication.
  • the second processor 732b may further execute the system manager 1164 and the VDS 1168.
  • an interrupt signal is transmitted between the first server 1152 and the second server 1162, and the first server 1152 or the second server 1162 transmits data to the shared memory 508 or data can receive Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the first driver 1154 may transmit an interrupt signal to the second driver 348.
  • the data corresponding to the first message transmitted from the system manager 1156 in the first processor 732a passes through the first server 1152 and the first area MMb of the shared memory 508 to It can be transmitted to the IP interfaces 1165 and 1169 of the system manager 1164 or VDS 1168 running on the processor 732b.
  • the second driver 348 may transmit an interrupt signal to the first driver 1154.
  • data corresponding to the second message transmitted from the IP interfaces 1165 and 1169 of the system manager 1164 in the second processor 732b or the VDS 1168 is stored in the second area MMa of the shared memory 508. ), and may be transmitted to the system manager 1156 in the first processor 732a.
  • an unnecessary memory copy operation is eliminated, and an application running on each of the processors 732a and 732b can directly access the shared memory 508 with zero copy performance.
  • an application running on each of the processors 732a and 732b can directly access the shared memory 508 with zero copy performance.
  • the shared memory 508 since the area of the shared memory 508 is divided for each application, there is no problem of infringement of the memory area, and thus the shared memory 508 can be stably used.
  • FIG. 11B illustrates that a first message and a second message are transmitted, similar to FIG. 11A, but additionally, analysis data, which is a kind of second message, is transmitted from the second processor 732b to the first processor 732a.
  • analysis data which is a kind of second message
  • the analysis data transmitted from the IP interface 1172 of the analysis service 1170 in the second processor 732b stores the data of the second message in the second area MMa of the shared memory 508. It may be stored in the non-recorded area 1182 and transmitted to the first server 1152 executed in the first processor 732a through the shared memory 508 .
  • the first server 1152 may transmit the analysis data to the analysis application 1159 via the router 1158 .
  • the first server 1152 stores the analysis data in an area 1184 in which data of the first message is not stored among the second area MMM of the shared memory 508, and stores the shared memory 508. After passing through, it can be transmitted to the analysis service 1170 in the second processor 732b.
  • 12 is a diagram referenced to describe various modes of an interrupt.
  • the first processor 732a or the second processor 732b boots up (S1410) and checks IPC performance (configuration) (S1415).
  • the first processor 732a or the second processor 732b determines whether the data transmitted from the first processor 732a or the second processor 732b is event data (S1420), and if applicable, the first processor 732a or the second processor 732b controls to operate in an interrupt driven mode (S1425), and controls to operate in a polling mode if not applicable (S1430).
  • the interrupt router may operate in an interrupt driven mode when the transmitted message is event-based data, and operate in a polling mode when the transmitted message is periodic data. Accordingly, it is possible to efficiently transmit a message.
  • the first processor 732a may operate in an interrupt driven mode when the first message to be transmitted is event-based data, and operate in a polling mode when the first message to be transmitted is periodic data. . Accordingly, it is possible to efficiently transmit a message.
  • the second processor 732b may operate in an interrupt driven mode when the transmitted second message is event-based data, and operate in a polling mode when the transmitted second message is periodic data. Accordingly, it is possible to efficiently transmit a message.
  • the second processor 732b may divide the data and transmit the data to the first memory 320 a plurality of times. Accordingly, it is possible to prevent performance degradation due to excessive interrupts.
  • the first processor 732a may receive a first message through multiple channels and transmit the first message through the shared memory 508 . Accordingly, it is possible to efficiently transmit a message.
  • the second processor 732b receives a first message through the shared memory 508, converts the first message into second communication-based data, and transfers the converted data to the external server 900. transmission can be controlled. Accordingly, it is possible to efficiently transmit a message.
  • FIG. 13A and 13B are diagrams referred to in the description of FIG. 12 .
  • 13A is a diagram illustrating an interrupt driven mode.
  • the IPC service 734b executed in the second processor 732a checks the IPC performance (configuration) (S1310).
  • the IPC service 734a executed in the first processor 732a checks the IPC performance (configuration) (S1312).
  • the first processor 732a and the second processor 732b may operate in an interrupt driven mode.
  • the interrupt router may operate in an interrupt driven mode.
  • the application 738b executed in the second processor 732b transmits data to the IPC service 734b (S1325), and the IPC service 734b writes the data to the shared memory 508 (S1327). ), the interrupt signal is transmitted to the IPC service 734a executed in the first processor 732a (S1329).
  • the application 738a executed in the first processor 732a reads the data recorded in the shared memory 508 (S1322).
  • 13B is a diagram illustrating a polling mode.
  • the IPC service 734b executed in the second processor 732a checks the IPC performance (configuration) (S1310b).
  • the IPC service 734a executed in the first processor 732a checks the IPC performance (configuration) (S1312b).
  • the first processor 732a and the second processor 732b may operate in a polling mode.
  • the interrupt router (ROT) may operate in a polling mode.
  • the application 738a executed in the first processor 732a reads data from the IPC service 734a (S1315), and the IPC service 734a accesses the shared memory 508 to read the data. Check (S1316). At this time, if there is no data to read, the application 738a receives an error (S1317).
  • the application 738b executed on the second processor 732b transmits first data to the IPC service 734b (S1325b), and the IPC service 734b writes the first data to the shared memory 508 (S1325b). S1327b), the application 738b transmits the second data to the IPC service 734b (S1326b), and the IPC service 734b writes the third data to the shared memory 508 (S1328b).
  • the application 738a running on the first processor 732a reads data from the IPC service 734a (S1342), and the IPC service 734a accesses the shared memory 508 and checks the data. It does (S1346). At this time, if there is data to be read, the application 738a receives data from the shared memory 508 (S1348).

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항 중 어느 한 항의 신호 처리 장치를 포함하는 것을 특징으로 하는 차량용 통신 장치.
PCT/KR2022/009478 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치 WO2023277637A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22833690.5A EP4366249A1 (en) 2021-07-01 2022-06-30 Signal processing apparatus and communication apparatus for vehicle, comprising same
KR1020247003697A KR20240032069A (ko) 2021-07-01 2022-06-30 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210086549 2021-07-01
KR10-2021-0086549 2021-07-01

Publications (1)

Publication Number Publication Date
WO2023277637A1 true WO2023277637A1 (ko) 2023-01-05

Family

ID=84691867

Family Applications (4)

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

Family Applications Before (1)

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

Family Applications After (2)

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

Country Status (3)

Country Link
EP (4) EP4366246A1 (ko)
KR (3) KR20240032068A (ko)
WO (4) WO2023277632A1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090092370A (ko) * 2008-02-27 2009-09-01 삼성전자주식회사 프로세서들 간의 데이터 이동 이벤트를 감소시키는멀티포트 반도체 메모리 장치 및 그를 채용한 멀티프로세서 시스템과 멀티포트 반도체 메모리 장치의구동방법
KR101020948B1 (ko) 2008-04-22 2011-03-09 현대자동차주식회사 차량용 네트워크 게이트웨이 및 네트워크 시스템
KR101159377B1 (ko) * 2004-04-15 2012-06-27 레이던 컴퍼니 고성능 컴퓨팅 시스템 및 방법
KR101612825B1 (ko) * 2014-11-20 2016-04-15 현대자동차주식회사 Can 컨트롤러, 차량 내부 통신을 위한 게이트웨이 및 그 제어 방법
KR20170099701A (ko) * 2016-02-24 2017-09-01 (주)제이엔디 차량 간 정보 수집 및 공유 시스템
US20200183732A1 (en) * 2019-12-11 2020-06-11 Linden Cornett Efficient receive interrupt signaling
KR102244569B1 (ko) * 2018-11-26 2021-04-26 한국전자통신연구원 오토모티브 이더넷에 기초하여 차량 내부 네트워크에서 차량 내 디바이스간 통신 방법 및 장치

Family Cites Families (14)

* 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
US8589338B2 (en) * 2008-01-24 2013-11-19 Oracle International Corporation Service-oriented architecture (SOA) management of data repository
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 주식회사 유라코퍼레이션 차량 해킹 방지 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 판독 가능한 프로그램을 기록한 매체
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マネジメント株式会社 電子制御装置、ゲートウェイ装置、及び検知プログラム
CN114465719A (zh) 2017-01-05 2022-05-10 伽德诺克斯信息技术有限公司 被配置成基于面向服务的体系结构实施集中式服务ecu的专门编程的计算系统及其方法
KR102524290B1 (ko) * 2017-12-26 2023-04-21 현대자동차주식회사 이더넷 스위치, 차량 내 네트워크 구성 방법 및 차량
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에 기반한 파셜 네트워크 장치 및 그의 동작 방법과 그를 포함하는 차량

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101159377B1 (ko) * 2004-04-15 2012-06-27 레이던 컴퍼니 고성능 컴퓨팅 시스템 및 방법
KR20090092370A (ko) * 2008-02-27 2009-09-01 삼성전자주식회사 프로세서들 간의 데이터 이동 이벤트를 감소시키는멀티포트 반도체 메모리 장치 및 그를 채용한 멀티프로세서 시스템과 멀티포트 반도체 메모리 장치의구동방법
KR101020948B1 (ko) 2008-04-22 2011-03-09 현대자동차주식회사 차량용 네트워크 게이트웨이 및 네트워크 시스템
KR101612825B1 (ko) * 2014-11-20 2016-04-15 현대자동차주식회사 Can 컨트롤러, 차량 내부 통신을 위한 게이트웨이 및 그 제어 방법
KR20170099701A (ko) * 2016-02-24 2017-09-01 (주)제이엔디 차량 간 정보 수집 및 공유 시스템
KR102244569B1 (ko) * 2018-11-26 2021-04-26 한국전자통신연구원 오토모티브 이더넷에 기초하여 차량 내부 네트워크에서 차량 내 디바이스간 통신 방법 및 장치
US20200183732A1 (en) * 2019-12-11 2020-06-11 Linden Cornett Efficient receive interrupt signaling

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2019132344A1 (en) Method for controlling earpiece and electronic device for supporting the same
WO2013058423A1 (ko) 전자기기 및 전자기기의 동작 방법
WO2022182103A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023277637A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
WO2019194428A1 (ko) 외부 전자 장치의 키를 공유하는 전자 장치 및 전자 장치의 동작 방법
WO2019225979A1 (en) Camera and terminal including the same
WO2022240217A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
WO2023239009A1 (ko) 차량의 신호 처리 장치 및 이를 구비하는 차량용 통신 장치용 통신 장치
WO2024111709A1 (ko) 차량의 신호 처리 시스템 및 이를 구비하는 차량
WO2024053802A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
WO2024034709A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023195559A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023113079A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2024034708A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2024085283A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023136373A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023101070A1 (ko) 차량용 통신 장치 및 이를 구비하는 차량용 디스플레이 장치
WO2023136376A1 (ko) 차량용 디스플레이 장치
WO2024071942A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 디스플레이 장치
WO2023113078A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023136369A1 (ko) 차량용 디스플레이 장치
WO2023136374A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023191195A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2022103093A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2024034752A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 증강현실 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22833690

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20247003697

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2022833690

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022833690

Country of ref document: EP

Effective date: 20240201