KR20210139307A - 차량 내 컴퓨팅 시스템을 위한 탄력적 컴퓨팅 - Google Patents

차량 내 컴퓨팅 시스템을 위한 탄력적 컴퓨팅 Download PDF

Info

Publication number
KR20210139307A
KR20210139307A KR1020217031957A KR20217031957A KR20210139307A KR 20210139307 A KR20210139307 A KR 20210139307A KR 1020217031957 A KR1020217031957 A KR 1020217031957A KR 20217031957 A KR20217031957 A KR 20217031957A KR 20210139307 A KR20210139307 A KR 20210139307A
Authority
KR
South Korea
Prior art keywords
computing device
vehicle
processing
computing
elastic
Prior art date
Application number
KR1020217031957A
Other languages
English (en)
Inventor
티모시 레이먼드 반고에템
귄터 크라프트
Original Assignee
하만인터내셔날인더스트리스인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 하만인터내셔날인더스트리스인코포레이티드 filed Critical 하만인터내셔날인더스트리스인코포레이티드
Publication of KR20210139307A publication Critical patent/KR20210139307A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/03Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for
    • B60R16/0315Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for using multiplexing techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Selective Calling Equipment (AREA)
  • User Interface Of Digital Computer (AREA)
  • Navigation (AREA)

Abstract

로컬 및 원격 하드웨어 컴퓨팅 자원들을 할당하는 차량 내 시스템들 및 방법들에 대한 예들이 개시된다. 차량을 제어하기 위한 예시적인 시스템은 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스, 차량으로부터 떨어져 위치된 제2 컴퓨팅 디바이스, 및 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 통신 가능하게 연결되는 탄력적 컴퓨팅 모듈을 포함하며, 탄력적 컴퓨팅 모듈은: 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들을 결정하도록; 차량의 구성요소를 제어하는 것에 대한 소프트웨어 애플리케이션의 소프트웨어 요구들을 결정하도록; 그리고 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들 및 소프트웨어 애플리케이션의 소프트웨어 요구들에 기초하여 제1 컴퓨팅 디바이스 및/또는 제2 컴퓨팅 디바이스에 소프트웨어 애플리케이션의 프로세싱을 동적으로 할당하도록 구성된다.

Description

차량 내 컴퓨팅 시스템을 위한 탄력적 컴퓨팅
관련 출원 교차 참조
본 출원은 2019년 4월 12일자로 출원된 "ELASTIC COMPUTING FOR IN-VEHICLE COMPUTING SYSTEMS(차량 내 컴퓨팅 시스템을 위한 탄력적 컴퓨팅)"라는 명칭의 미국 가 특허 출원 제62/833,598호에 대한 우선권을 주장한다. 위에서 나열된 출원의 전체 내용은 이에 의해 모든 목적을 위해 원용된다.
기술분야
본 개시는 차량 내 인터페이스 시스템 및 관련 제어들에 관한 것이다.
차량은 멀티미디어 및 제어 기능들을 제공할 수 있는 인포테인먼트 시스템을 위한 헤드 유닛과 같은 차량 내 컴퓨팅 시스템을 포함할 수 있다. 예를 들어, 차량 내 컴퓨팅 시스템은 네비게이션, 멀티미디어 재생, 전화, 소셜 미디어 상호 작용, 모바일 디바이스 충전, 및/또는 다른 기능들을 제공할 수 있고, 차량 및 차량 내 컴퓨팅 시스템의 제어 요소들에 대한 사용자 입력을 수신할 수 있다. 이러한 기능을 제공하기 위해, 차량 내 컴퓨팅 시스템들은 운영 체제 및 다양한 애플리케이션들의 실행을 가능하게 하는 복잡하고 비용이 많이 드는 프로세싱 및 메모리 자원을 포함한다.
정교한 멀티미디어 기능 및 차량 제어를 가능하게 하기에 충분한 프로세싱 및 메모리 자원들을 제공하기 위해, 차량은 클라우드 컴퓨팅 자원들과 같은 외부 컴퓨팅 자원들에 통신 가능하게 연결될 수 있다. 그러나, 이러한 원격 프로세싱은 보통 충분한 컴퓨팅 자원들이 로컬로 이용 가능할 때 불필요할 수 있고, 결과적으로 로컬 프로세싱과 원격 프로세싱 사이의 부하가 불균형될 수 있다. 또한, 일부 경우들에서, 추가 컴퓨팅 용량이 필요할 수도 있다. 이러한 한계들을 극복하기 위해, 탄력적 컴퓨팅(elastic computing)은 프로세싱 필요들에 따라 컴퓨팅 자원들을 동적으로 할당할 수 있다.
로컬 및 원격 하드웨어 컴퓨팅 자원들을 할당하는 차량 내 시스템들 및 방법들에 대한 예들이 개시된다. 차량을 제어하기 위한 예시적인 시스템은 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스, 차량으로부터 떨어져 위치된 제2 컴퓨팅 디바이스, 및 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 통신 가능하게 연결되는 탄력적 컴퓨팅 모듈을 포함하며, 탄력적 컴퓨팅 모듈은: 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들을 결정하도록; 차량의 구성요소를 제어하는 것에 대한 소프트웨어 애플리케이션의 소프트웨어 요구들을 결정하도록; 그리고 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들 및 소프트웨어 애플리케이션의 소프트웨어 요구들에 기초하여 제1 컴퓨팅 디바이스 및/또는 제2 컴퓨팅 디바이스에 소프트웨어 애플리케이션의 프로세싱을 동적으로 할당하도록 구성된다.
본 개시 내용은 첨부된 도면들을 참조하여, 비제한적인 실시예들에 대한 이하의 설명을 읽음으로써 더 잘 이해될 수 있으며, 아래 도면들에서:
도 1은 본 개시의 하나 이상의 실시예에 따른, 차량 내 컴퓨팅 시스템 및 모바일 디바이스를 포함하는 차량 객실의 부분도이다;
도 2는 본 개시의 하나 이상의 실시예에 따른, 차량 내 인터페이스 시스템, 및 차량 내 인터페이스 시스템과 통신하는 관련 요소들의 블록도이다;
도 3은 본 개시의 하나 이상의 실시예에 따른, 소프트웨어 프로세싱의 도메인 기반 파티셔닝(partitioning)의 블록도이다;
도 4는 본 개시의 하나 이상의 실시예에 따른, 단일 프로세서를 이용하는 컴퓨팅 클러스터 접근법의 블록도이다;
도 5는 본 개시의 하나 이상의 실시예에 따른, 다수의 프로세서를 이용하는 컴퓨팅 클러스터 접근법의 블록도이다;
도 6은 본 개시의 하나 이상의 실시예에 따른, 네트워크에 의해 연결되는 다수의 프로세서를 이용하는 컴퓨팅 클러스터 접근법의 블록도이다;
도 7은 본 개시의 하나 이상의 실시예에 따른, 차량 내 프로세싱을 위한 탄력적 컴퓨팅 아키텍처의 블록도이다;
도 8은 본 개시의 하나 이상의 실시예에 따른, 별개의 제어기들을 갖는 전자 장치 파티셔닝을 도시하는 블록도이다;
도 9a는 본 개시의 하나 이상의 실시예에 따른, 예시적인 차량에 대한 차량 내 프로세싱을 위한 탄력적 컴퓨팅 아키텍처의 블록도이다;
도 9b는 본 개시의 하나 이상의 실시예에 따른, 예시적인 차량에 대한 차량 내 인터페이스 시스템의 블록도이다;
도 9c는 본 개시의 하나 이상의 실시예에 따른, 예시적인 차량에 대한 소프트웨어 프로세싱의 도메인 기반 파티셔닝을 위한 아키텍처의 블록도이다; 그리고
도 10은 본 개시의 하나 이상의 실시예에 따른, 차량 내 탄력적 컴퓨팅을 위한 방법을 도시한다.
도메인 파티셔닝, 컴퓨팅 클러스터링 접근법들, 탄력적 컴퓨팅, 및 전자 장치 파티셔닝은 본 명세서에서 더 설명될 바에 따라, 차량 내 제어를 위한 모든 정교한 소프트웨어를 제공하는 비용 및 복잡성을 감소시킬 수 있다.
본 명세서에서 사용될 때, "실시예", "일부 실시예들", 또는 "다양한 실시예들"로 지칭되는 용어들은 설명되는 관련 피처들, 구조들, 또는 특성들이 적어도 일부 실시예들에 있지만, 반드시 모든 실시예들에 있는 것은 아니라는 것을 의미한다. 더욱이, 이러한 용어의 다양한 출현들이 반드시 모두 동일한 실시예들을 지칭하는 것은 아니다. 또한, 요소들이 "및/또는" 언어를 사용하여 리스트로 제시되는 용어들은 나열된 요소들의 임의의 조합을 의미한다. 예를 들어, "A, B, 및/또는 C"는 다음: A 단독; B 단독; C 단독; A와 B; A와 C; B와 C; 또는 A, B 및 C 중 어느 하나를 의미할 수 있다.
도 1은 운전자 및/또는 한 명 이상의 탑승자가 앉을 수 있는 차량(102)의 객실(100)의 내부의 예시적인 부분도를 도시한다. 도 1의 차량(102)은 드라이브 휠들(도시되지 않음) 및 내연 기관(104)을 포함하는 모터 차량일 수 있다. 내연 기관(104)은 흡입로를 통해 흡기를 수용하고 배출로를 통해 연기를 배출할 수 있는 하나 이상의 연소실을 포함할 수 있다. 차량(102)은 다른 유형들의 차량들 중에서도, 도로 자동차일 수 있다. 일부 예들에서, 차량(102)은 차량 모션 및/또는 엔진으로부터 에너지를 흡수하고 흡수된 에너지를 에너지 저장 디바이스에 의한 저장에 적합한 에너지 형태로 변환하도록 동작 가능한 에너지 변환 디바이스를 포함하는 하이브리드 추진 시스템을 포함할 수 있다. 차량(102)은 연료 전지들, 태양 에너지 포획 요소들, 및/또는 차량에 전력을 공급하기 위한 다른 에너지 저장 시스템들을 통합하는 완전 전기 차량을 포함할 수 있다.
도시된 바와 같이, 계기 패널(106)은 차량(102)의 운전자가 접근할 수 있는 다양한 디스플레이들 및 제어부들, 이를테면 차량 내 인터페이스 시스템(예를 들어, 인포테인먼트 시스템)의 터치 스크린(108), 오디오 시스템 제어 패널, 및 계기 클러스터(110)를 포함할 수 있다. 도 1에 도시된 예시적인 시스템은 별도의 오디오 시스템 제어 패널 없이 (터치 스크린(108)과 같은) 차량 내 인터페이스 시스템의 사용자 인터페이스를 통해 수행될 수 있는 오디오 시스템 제어부들을 포함하지만, 다른 실시 예들에서, 차량(102)은 라디오, 컴팩트 디스크 플레이어, MP3 플레이어 등과 같은 종래의 차량 오디오 시스템에 대한 제어부들을 포함할 수 있는 오디오 시스템 제어 패널을 포함할 수 있다. 오디오 시스템 제어부들은 차량 스피커 시스템의 하나 이상의 스피커(112)를 통해 오디오 출력의 하나 이상의 양태를 제어하기 위한 피처들을 포함할 수 있다. 예를 들어, 오디오 시스템 제어부들은 오디오 입력의 볼륨, 차량 스피커 시스템의 각 스피커들 사이의 사운드 분포, 오디오 신호들의 이퀄라이제이션, 및/또는 오디오 출력의 임의의 다른 양태를 제어할 수 있다.
계기 클러스터(110)는 연료 게이지, 회전 속도계, 속도계 및 주행계와 같은 다양한 게이지뿐만 아니라, 표시기들 및 경고등들을 포함할 수 있다. 스티어링 휠(114)은 계기 클러스터(110) 아래에 계기 패널(106)로부터 돌출할 수 있다. 선택적으로, 스티어링 휠(114)은 차량 내 인터페이스 시스템의 피처들을 네비게이팅하기 위해 그리고 차량 내 인터페이스 시스템을 제어하기 위해 터치 스크린(108)과 함께 사용될 수 있는 하나 이상의 제어부(116)를 포함할 수 있다. 예시적인 예로서, 제어부들(116)은 차량 내 인터페이스 시스템의 음성 제어를 활성화 또는 개시하는 버튼(117)을 포함할 수 있다. 예를 들어, 버튼(117)이 눌려지는 것에 응답하여 그리고/또는 버튼(117)이 눌려지는 동안, 마이크로폰(126)은 차량의 운전자 또는 다른 탑승자에 의한 하나 이상의 발화를 레코딩할 수 있다. 그 다음, 마이크로폰(126)을 통해 레코딩된 하나 이상의 발화는 하나 이상의 발화가 음성 커맨드를 포함하는 경우 차량 내 인터페이스 시스템의 하나 이상의 피처를 네비게이팅하거나 제어하기 위해 사용될 수 있다.
도 1에 도시된 구성요소들에 더하여, 계기 패널(106)은 도어 및 윈도우 제어부들, 저전압 전원 콘센트로서 또한 사용될 수 있는 시거잭, 도구함, 및/또는 임의의 다른 적합한 요소들과 같은 추가 구성요소들을 포함할 수 있다는 것이 이해될 것이다. 하나 이상의 실시예에서, 터치 스크린(108)을 사용하여 하나 이상의 온도 제어 시스템 벤트(118)를 통한 차량 내 온도의 제어가 수행될 수 있고, 이에 따라 계기 패널(106)에는 어떠한 별개의 온도 제어 인터페이스도 포함되지 않을 수 있다. 그러나, 대안적인 실시예들에서, 별개의 온도 제어 인터페이스가 제공될 수 있다.
객실(100)은 차량, 사용자, 및/또는 환경을 모니터링하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 객실(100)은 사용자의 존재를 결정하기 위해 시트에 가해지는 압력을 측정하도록 구성된 하나 이상의 시트 장착 압력 센서(120)를 포함할 수 있다. 객실(100)은 도어 움직임, 이를테면 도어의 개방 및/또는 폐쇄, 도어의 잠금, 도어 윈도우의 작동, 및/또는 임의의 다른 적합한 도어 움직임 이벤트를 모니터링하도록 구성된 하나 이상의 도어 센서(122)를 포함할 수 있다. 습도 센서(124)는 객실(100)의 습도 함량을 측정하기 위해 포함될 수 있다. 마이크로폰(126)은 사용자가 객실(100)에서 전화 통화를 할 수 있게 하기 위한, 그리고/또는 주변 소음을 측정할 수 있게 하기 위한 음성 커맨드들의 형태로 사용자 입력을 수신할 수 있다. 도 1에 도시된 센서들의 배치는 예시적인 것이고, 하나 이상의 추가적인 또는 대안적인 센서는 엔진실, 차량의 외부 표면, 및/또는 차량의 작동, 차량의 주변 조건들, 차량의 사용자 등에 관한 정보를 제공하기 위한 다른 적합한 위치들에 위치될 수 있다는 것이 이해되어야 한다.
객실(100)은 또한 주행 전, 주행 중 및/또는 주행 후에 차량에 보관되는 모바일 디바이스(128)와 같은 하나 이상의 사용자 객체를 포함할 수 있다. 모바일 디바이스(128)는 스마트폰, 태블릿, 랩탑 컴퓨터, 휴대용 미디어 플레이어, 및/또는 임의의 적합한 모바일 컴퓨팅 디바이스를 포함할 수 있다. 모바일 디바이스(128)는 통신 링크(130)를 통해 차량 내 인터페이스 시스템에 접속될 수 있다. 통신 링크(130)는 유선(예를 들어, 범용 직렬 버스[Universal Serial Bus, USB], 모바일 고선명 링크[Mobile High-Definition Link, MHL], 고화질 멀티미디어 인터페이스[High-Definition Multimedia Interface, HDMI] 등을 통한) 또는 무선(예를 들어, BLUETOOTH, WI-FI, 근거리 통신[Near-Field Communication, NFC] 등을 통한)일 수 있고, 모바일 디바이스(128)와 차량 내 인터페이스 시스템 사이의 양방향 통신을 제공하도록 구성될 수 있다. 예를 들어, 통신 링크(130)는 차량 내 시스템들 및 터치 스크린(108)으로부터 모바일 디바이스(128)로 센서 및/또는 제어 신호들을 제공할 수 있고, 모바일 디바이스(128)로부터 차량 내 시스템들 및 터치 스크린(108)으로 제어 및/또는 디스플레이 신호들을 제공할 수 있다. 또한, 통신 링크(130)는 모바일 디바이스(128)의 내부 배터리를 충전하기 위해 차량 내 전원으로부터 모바일 디바이스(128)에 전력을 제공할 수도 있다.
모바일 디바이스(128)는 차량 내 인터페이스 시스템으로부터 공간적으로 분리되어 있고 실질적으로 외부 통신 링크(예를 들어, 케이블 또는 라디오 주파수 신호)를 통해 접속되는 것으로 도시되지만, 모바일 디바이스들(128)을 특정 위치에 홀딩하기 위해 모바일 디바이스 보관 구조물(132) 또는 다른 보관 구조물이 차량 내의 계기 패널(106) 또는 다른 위치에 형성될 수 있다는 것이 이해되어야 한다. 모바일 디바이스 보관 구조물(132)은 모바일 디바이스(128)와 인터페이스 시스템 사이에 실질적으로 내부 통신 링크를 제공하기 위해 모바일 디바이스(128)가 부착되거나 "도킹될(docked)" 수 있는 일체형 커넥터(134)를 포함할 수 있다.
도 2는 차량 내 인터페이스 시스템(204), 및 차량 내 인터페이스 시스템(204)과 통신하는 관련 요소들의 블록도를 도시한다. 차량 내 인터페이스 시스템(204)은 도 1의 차량(102)과 같은 차량(202) 내에 위치되고/거나 통합될 수 있다. 이에 제한되지는 않지만 CAN(Controller-Area-Network) 버스(206)와 같은 차량 내 인터커넥트를 통해 접속되는 차량 시스템들을 포함하여, 차량 내 인터페이스 시스템(204)은 차량 내의 하나 이상의 요소와 통신할 수 있다. 이에 제한되지는 않지만 CAN 버스들, MOST(Media Oriented Systems Transport) 버스들, 이더넷 기반 인터커넥트들 등을 포함하여, 차량 내 인터페이스 시스템(204)(본 명세서에서 간단히 인터페이스 시스템(204)으로 지칭될 수 있음)과 다양한 차량 내 구성요소들 사이의 통신을 가능하게 하기 위해 임의의 적절한 수 및/또는 조합의 인터커넥트들이 사용될 수 있다는 것이 이해되어야 한다. 인터커넥트들은 차량 내 구성요소들과 직접 통신할 수 있고/거나 이러한 구성요소들과 사이에 오는 프로세서들을 통해 통신할 수 있다. 일부 실시예들에서, 하나 이상의 차량 내 구성요소는 CAN 버스(206)를 통해 인터페이스 시스템(204)과 통신하지 않거나 통신하는 것에 더하여 인터페이스 시스템(204)와 직접 통신할 수 있다.
인터페이스 시스템(204)은 원격 서비스(290)의 메모리(292) 및 프로세서(294)뿐만 아니라 다른 컴퓨팅 자원들을 활용하여 차량(202)의 다양한 차량 내 요소들을 제어하기 위해, CAN 버스(206)로부터의 정보를 무선 네트워크(280)를 통해 차량(202)에 통신 가능하게 연결된 에지 디바이스 또는 클라우드 컴퓨팅 서비스와 같은 외부 원격 서비스(290)로 전달할 수 있다. 일부 실시예들에서, 인터페이스 시스템(204)은 인터페이스 시스템(204)과 원격 서비스(290) 사이의 무선 접속을 가능하게 하는 무선 게이트웨이 및/또는 프로토콜을 포함할 수 있다.
디스플레이(210)는 네비게이션, 미디어 재생, 전화, 차량 시스템 제어(예를 들어, 객실 온도 제어, 크루즈 제어 설정, 주행계 출력/설정, 차량 진단 제어, 차량 동작 모드 제어 등), 및/또는 다른 차량 관련 기능들과 관련된 시각적 피드백을 제공하기 위한 이미지들을 디스플레이할 수 있다. 일부 실시예들에서, 디스플레이(210)는 차량 관련 기능들을 제어하기 위한 사용자 입력이 디스플레이(210)를 통해 수신될 수 있게 하는 터치 스크린, 이를테면 도 1의 터치 스크린(108)을 포함할 수 있다.
원격 서비스(290)는 인터페이스 시스템(204) 및/또는 디스플레이(210)로부터 신호들을 수신하고, 메모리(292) 상에 저장되고 프로세서(294)에 의해 실행되는 비일시적 명령어들에 기초하여 신호들을 프로세싱할 수 있으며, 디스플레이 및/또는 제어 신호들을 디스플레이(210) 및/또는 인터페이스 시스템(204)에 출력할 수 있다. 도 2에서는 하나의 원격 서비스(290)가 도시되지만, 차량(202)은 작동 중에 원격 서비스(290)를 포함하여 하나 이상의 원격 서비스와 통신할 수 있다는 것이 이해되어야 한다.
도시된 바와 같이, 원격 서비스(290)는 차량(202)과 별개이고 차량 내에 통합되지 않는다. 대조적으로, 도 2에서 차량(202) 내에 도시된 다른 시스템들 및 요소들 각각은 차량(202) 내에 통합될 수 있다. 원격 서비스(290)는 차량(202) 내에 통합되는 컴퓨팅 자원들(예를 들어, 도 2의 차량(202) 내에 도시된 구성요소들에 의해 이용되는 컴퓨팅 자원들)과 별개인 컴퓨팅 자원들(예를 들어, 메모리(292) 및 프로세서(294))을 포함할 수 있다.
디스플레이 신호들은 디스플레이(210)의 출력을 제어할 수 있는 한편, 제어 신호들은 인터페이스 시스템(204)과 통신하는 하나 이상의 다른 차량 시스템(216)을 제어할 수 있다. 예를 들어, 차량 시스템(216)은 엔진 및/또는 보조 요소들, 이를테면 윈드쉴드 와이퍼들, 윈도우들, 도어/도어 잠금 장치들, 헤드라이트들, 공조 시스템들 등과 관련된 제어 가능한 요소들을 포함할 수 있다. 또한, 제어 신호들은 차량(202)의 하나 이상의 스피커(218)에서의 오디오 출력을 제어할 수 있다. 예를 들어, 제어 신호들은 볼륨, 이퀄라이제이션, 오디오 이미지(예를 들어, 하나 이상의 획정된 위치들로부터 비롯되는 것으로 사용자에게 보이는 오디오 출력을 생성하기 위한 오디오 신호들의 구성), 스피커들(218) 사이의 오디오 분배 등과 같은 오디오 출력 특성들을 조정할 수 있다.
사용자 입력은 예를 들어, 디스플레이(210)의 선택적인 터치 스크린에 대한 추가적인 또는 대안적인 입력원들로서 하나 이상의 차량 내 제어부(220)를 통해 수용되어 인터페이스 시스템(204) 및/또는 원격 서비스(290)로 송신될 수 있다. 차량 내 제어부들(220)은 이에 제한되지는 않지만, 임의의 수 또는 조합의 버튼들, 슬라이더들, 스위치들, 노브들, 레버들, 조이스틱들, 키 패드들, 페달들 등을 포함하여, 차량 내 및/또는 차량 상의 임의의 적합한 사용자 작동 가능 요소를 포함할 수 있다. 예를 들어, 차량 내 제어부들(220)은 차량(202)의 객실 내의 제어 요소들, 이를테면 스티어링 휠 제어부들(예를 들어, 스티어링 휠 장착 오디오 시스템 제어부들, 크루즈 제어부들, 윈드쉴드 와이퍼 제어부들, 헤드라이트 제어부들, 방향 지시들 제어부들 등), 계기 패널 제어부들, 액셀레이터/브레이크/클러치 페달들, 기어 시프트, 운전자 또는 탑승자 도어에 위치된 도어/윈도우 제어부들, 시트 제어부들, 객실 라이트 제어부들, 오디오 시스템 제어부들, 객실 온도 제어부들 등을 포함할 수 있다. 또한, 차량의 외부에 위치된 제어 요소들(예를 들어, 보안 시스템을 위한 제어부들)이 CAN 버스(206)를 통해 인터페이스 시스템(204)에 접속될 수도 있다. 차량 내 제어부들(220)의 제어 요소들은 사용자 입력을 수신하기 위해 차량 상 및/또는 내에 물리적으로 그리고 영구적으로 위치될 수 있다.
특정 예로서, 차량 내 제어부들(220)은 인터페이스 시스템(204) 및/또는 원격 서비스(290)로 라우팅되는 음성 제어 커맨드들과 같은 사용자 입력을 레코딩하거나 감지하는 차량(202)의 객실 내에 통합되는 마이크로폰을 포함할 수 있다. 또 다른 예로서, 차량 내 제어부들(220)의 스티어링 휠 제어부들 및/또는 계기 패널 제어부들은 음성 제어를 개시하기 위해 도 1에 도시된 버튼(117)을 포함할 수 있으며, 이때 버튼(117)을 누르는 것은 마이크로폰에 의해 감지되는 발화들이 음성 커맨드들을 포함한다는 것을 표시한다. 이러한 방식으로, 차량 요소들의 음성 제어를 위한 것이 아닌 발화들은 차량(202)의 하나 이상의 요소를 제어하기 위한 인터페이스 시스템(204) 및/또는 원격 서비스(290)에 의해 의도치 않게 프로세싱되지 않을 수 있다. 추가적으로, 또는 대안적으로, 사용자는 음성 제어를 위해 호출어(wake word)(예를 들어, 단어, 구절, 톤, 또는 다른 미리 정의된 사운드일 수 있는 특정 음성 데이터 스트링)를 발화함으로써 발화가 음성 제어를 위한 것임을 표시할 수 있다. 예를 들어, 인터페이스 시스템(204) 및/또는 원격 서비스(290)는 마이크로폰에 의해 레코딩된 오디오를 모니터링하고 특히 오디오를 달리 프로세싱하거나 핸들링하지 않고 호출어를 검출하기 위해 오디오를 프로세싱할 수 있고, 차량(202)의 탑승자에 의해 발화되는 호출어를 검출하는 것에 응답하여, 인터페이스 시스템(204) 및/또는 원격 서비스(290)는 마이크로폰에 의해 감지되고 호출어 또는 유발어에 뒤따르는 발화를 프로세싱할 수 있다.
CAN 버스(206)는 차량의 동작 상태들 및/또는 조건들의 표시를 인터페이스 시스템(204)에 제공하기 위해 하나 이상의 차량 센서(222)와 통신할 수 있다. 인터페이스 시스템(204)은 원격 서비스(290)에 차량 및/또는 사용자의 동작 및/또는 환경에 관한 상황 정보를 제공하기 위해 차량 센서들(222)로부터의 센서 신호들을 원격 서비스(290)에 전달할 수 있다. 차량 센서들(222)은 임의의 적합한 센서, 이를테면 본 명세서에서 도 1에 관하여 상술된 객실내 센서들, 차량 작동 상태 센서들(예를 들어, 연료 저장, 엔진 온도, 오일 저장, 엔진 속도, 차량 속도, 변속/기어 설정, 타이어 압력, 트랙션, 진단 정보 등을 모니터링하는 센서들), 및 환경 센서들(예를 들어, 후방 카메라 및/또는 온도, 습도, 압력, 도로 표면/조건들 등과 같은 주변 조건들을 모니터링하는 다른 센서들)을 포함할 수 있다. 원격 서비스(290)에서 사용자 입력 및/또는 센서 신호들을 수신시, 원격 서비스(290)는 차량 시스템들(216)에 대한 디스플레이(210) 및/또는 제어 명령어들에 대한 조정을 결정할 수 있다.
전력 상태들 및/또는 전력 제어 신호들에 관한 정보는 CAN 버스(206) 및 인터페이스 시스템(204)을 통해 전력 모듈(224)과 원격 서비스(290) 사이에서 교환될 수 있다. 예를 들어, 원격 서비스(290)는 전력 모듈(224)로부터 정보를 수신하고 디스플레이(210)를 업데이트하여 하나 이상의 차량 구성요소의 전력 상태에 관한 피드백을 사용자에게 제공할 수 있다. 원격 서비스(290)는 추가적으로 또는 대안적으로, 사용자 입력, 차량 센서들(222)로부터 수신된 정보, 및/또는 전력 모듈(224)로부터 수신된 정보에 기초하여 제어 신호들을 전력 모듈(224)에 제공할 수 있다.
안테나(226)는 인터페이스 시스템(204)에서의 프로세싱을 위해 AM/FM 라디오 신호들을 인터페이스 시스템(204)에 제공할 수 있다. 예를 들어, 인터페이스 시스템(204)은 스피커들(218)을 제어하여 AM/FM 라디오 방송국들에 의한 오디오 방송을 제어할 수 있고, 디스플레이(210)를 제어하여 AM/FM 라디오 방송국들 및/또는 방송되는 콘텐츠에 관련된 정보(예를 들어, 라디오 데이터 시스템을 통해 오디오와 함께 방송되는 정보)를 디스플레이할 수 있다.
상술한 바와 같이 다양한 차량 시스템들과 통신하고 서비스(290)를 제거하기 위해, 인터페이스 시스템(204)은 일부 실시예들에서 상이한 통신 프로토콜들 및 이질적인 시스템들 사이에서 신호들을 전달하면서 일어날 수 있는 다른 이슈들을 해결하기 위한 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 인터페이스 시스템(204)은 디스플레이(210) 상의 디스플레이를 위해 후방 카메라로부터의 비디오 피드를 동기화 및/또는 포맷팅하기 위한 비디오 스위칭 모듈(도시되지 않음)을 포함할 수 있다. 또 다른 예로서, 인터페이스 시스템(204)은 하나의 시스템 및/또는 디바이스로부터 수신된 신호들을 타겟 시스템 또는 디바이스와 호환 가능하거나 또는 그 외 타겟 시스템 또는 디바이스에 의해 해석될 수 있는 포맷으로 변환하기 위한 인코더(도시되지 않음) 및/또는 디코더(미도시)를 포함할 수 있다. 상술된 모듈들 중 하나 이상은 선택적이고, 일부 실시예들에서, 인터페이스 시스템(204)은 수신된 신호들을 조정하지 않고 신호들을 또 다른 시스템 및/또는 디바이스에 전달할 수 있다는 것이 이해되어야 한다.
인터페이스 시스템(204)은 적어도, 본 명세서에서 설명된 기능을 제공하도록 구성된 프로세서(232) 및 메모리(234)를 포함한다. 일부 예들에서, 인터페이스 시스템(204)은 복수의 프로세서들(232) 및 복수의 메모리들(234)을 포함한다. 또한, 인터페이스 시스템(204)은 탄력적 컴퓨팅 모듈(236)을 포함한다.
탄력적 컴퓨팅 모듈(236)은 프로세서(232) 및 메모리(234)의 컴퓨팅 및 메모리 용량, 차량 내 주변 기기들이 접속되는 프로세서(232)의 시스템 온 칩(System-on-Chip, SoC) 아키텍처들, 버스 속도들, 배터리 레벨, 온도 등을 포함하는 차량 내 하드웨어의 파라미터들뿐만 아니라, 원격 서비스의 파라미터들, 이를테면 원격 서비스(290)의 프로세서(294) 및 메모리(292)의 컴퓨팅 및 메모리 용량, 에지-에지 레이턴시, 비용 모델들 등도 평가한다. 탄력적 컴퓨팅 모듈(236)은 또한, 소프트웨어 구성요소들 각각에 대한 필요들, 이를테면 계산 대역폭, 메모리, 인/아웃, 레이턴시 공차, 안전성, 보안 등을 평가한다.
탄력적 컴퓨팅 모듈(236)은 차량(202)에서 실행되는 소프트웨어 및 원격 서비스(290)에서 실행되는 소프트웨어를 결정한다. 탄력적 컴퓨팅 모듈(236)은 또한, 소프트웨어 필요들을 결정론적으로 충족시키고 시스템의 부하 균형을 맞추기 위해 자원들을 동적으로 할당한다.
탄력적 컴퓨팅 모듈(236)은 차량(202)을 작동하는 "게스트" 사용자들이 제한된 액세스로 차량(202)에 액세스하거나 이를 제어할 수 있도록, 차량(202)에서 실행되는 소프트웨어에 대한 게스트 환경들을 확립한다. 탄력적 컴퓨팅 모듈(236)은 또한, 공유 주변 기기들에 대한 액세스를 제어한다.
도 3은 소프트웨어 프로세싱의 도메인 기반 파티셔닝을 위한 예시적인 아키텍처(300)를 도시한 블록도이다. 아키텍처(300)는 객실 모듈(320), 텔레매틱스 모듈(telematics modul)(330), 드라이브 & 어드밴스드 운전자 보조 시스템(Advanced Driver Assistant Systems, ADAS) 모듈(340), 섀시 모듈(chassis module)(350), 및 드라이브트레인 모듈(drivetrain module)(360)에 통신 가능하게 연결된 중앙 게이트웨이(310)를 포함한다. 도 3의 각 구성요소는 별개의 프로세서들, 단일 프로세서 상의 별개의 SoC 아키텍처들, 또는 이들의 조합 상에 구현될 수 있다. 또한, 본 명세서에서 설명된 바와 같은 탄력적 컴퓨팅 모듈(236)은 주어진 모듈의 프로세싱 능력을 확장하기 위해 (원격 서비스(290)와 같은) 클라우드 컴퓨팅 시스템에서의 추가 프로세서들을 동적으로 할당할 수 있다.
객실 모듈(320)은 예시적이고 비제한적인 예들로서, BYOD, 클러스터, 디스플레이들(메인(main), 클러스터(cluster), HUD, RSE), 통신 오디오, DMS/OMS, 도어 제어, 이미러(eMirror), 엔터테인먼트 오디오, HVAC, 인포테인먼트(infotainment), 내부 조명, 잡음 관리, 시트 제어, 사운드 증폭, 서라운드 뷰(surround view)/주차, 차량 사운드(차임 등) 등에 관한 프로세싱을 핸들링할 수 있다.
텔레매틱스 모듈(330)은 예시적이고 비제한적인 예들로서, 4/5G 접속성, 안테나들, 블루투스/BLE, 빔 스티어링, C-V2X, 비상 통화(e-Call), 전자식 요금 수납, 방화벽(들), GNSS, OTA 게이트웨이, Wi-Fi 등에 관한 프로세싱을 핸들링할 수 있다.
드라이브 & ADAS 모듈(340)은 예시적이고 비제한적인 예들로서, 전방 카메라, 단거리/장거리 레이더, 이미러 등뿐만 아니라, DMS/OMS, 자동 주차, 고속도로 파일럿, 회피 스티어링 보조, 지능식 교차로 횡단, 서라운드 뷰/주차 등과 같은 ADAS에 관한 프로세싱을 핸들링할 수 있다.
섀시 모듈(350)은 예시적이고 비제한적인 예들로서, 에어백 제어, 외부 조명, 파워 스티어링, 안정성 제어, 서스펜션, 타이어 압력 모니터링, 방향 지시등들, 와이퍼 제어 등에 관한 프로세싱을 핸들링할 수 있다.
드라이브트레인 모듈(360)은 예시적이고 비제한적인 예들로서, 배터리 및 연료 관리, 제동, 엔진/모터 제어, 트랙션 제어, 및 변속 제어에 관한 프로세싱을 핸들링할 수 있다.
이에 따라, 소프트웨어 프로세싱은 도메인 특정 프로세싱이 상술된 바와 같은 하나 이상의 모듈에 의해 수행되도록 도메인들에 따라 파티셔닝될 수 있다. 모듈들의 배치는 프로세싱 자원들 및 필요들에 따라 동적으로 변경될 수 있다. 또한, 모듈들의 하드웨어 구현은 도 4 내지 도 6에 도시된 바와 같이, 상이한 실시예들에 따라 달라질 수 있다.
특히, 도 4는 본 개시의 하나 이상의 실시예에 따른, 단일 프로세서(430)를 이용하는 컴퓨팅 클러스터 접근법의 블록도(400)이다. 복수의 디스플레이 디바이스들(402), 스피커들(404), 마이크로폰들(406), 센서들(408), 및 액추에이터들(410)은 프로세서(430)에 통신 가능하게 연결될 수 있다. 프로세서(430)는 두 개 이상의 SoC 아키텍처들, 이를테면 SoC(432) 및 SoC(434)를 포함할 수 있다. 도 3과 관련하여 위에서 설명된 하나 이상의 모듈은 SoC(432) 상에 구현될 수 있는 한편, 다른 모듈들은 SoC(434) 상에 구현될 수 있다.
또 다른 예로서, 도 5는 본 개시의 하나 이상의 실시예에 따른, 프로세서(530) 및 프로세서(540)를 포함하는 다수의 프로세서들을 이용하는 컴퓨팅 클러스터 접근법의 블록도(500)이다. 단일 프로세서가 다수의 SoC들을 갖는 것(예를 들어, 프로세서(430)가 SoC들(432 및 434)을 갖는 것)보다는, 프로세서(530)는 하나 이상의 SoC(532)를 포함하는 한편, 프로세서(540)는 하나 이상의 SoC(542)를 포함한다. 프로세서들(530 및 540)은 양자가 예를 들어, 차량(202) 내에 물리적으로 설치될 수 있고, 프로세서들(530 및 540) 사이에 고속 인터페이스를 제공하는 주변 구성요소 인터커넥트 익스프레스(peripheral component interconnect express, PCIe) 또는 유사한 백플레인(550)을 통해 통신 가능하게 연결될 수 있다.
또 다른 예로서, 도 6은 본 개시의 하나 이상의 실시예에 따른, 네트워크(650)에 의해 연결되는 다수의 프로세서들(630 및 640)을 이용하는 컴퓨팅 클러스터 접근법의 블록도(600)이다. 도 5에 도시된 접근법과 유사하게, 프로세서(630)는 하나 이상의 SoC(632)를 포함하는 한편, 프로세서(640)는 하나 이상의 SoC(642)를 포함한다. 네트워크(650)는 멀티 기가비트 이더넷 접속을 포함할 수 있으며, 이에 의해 프로세서들(630 및 640) 사이에 고속 인터페이스를 제공한다.
도 7은 본 개시의 하나 이상의 실시예에 따른, 차량 내 프로세싱을 위한 탄력적 컴퓨팅 아키텍처(700)의 블록도이다. 복수의 소프트웨어 애플리케이션들 및 소프트웨어 서비스들이 소프트웨어 계층(710)에 도시되어 있다. 도 2에 관하여 상술된 탄력적 컴퓨팅 모듈(236)을 포함할 수 있는 탄력적 컴퓨팅 계층(720)은 하드웨어 계층의 하나 이상의 구성요소에 의해 소프트웨어 계층(710)의 소프트웨어 애플리케이션들 및 서비스들의 실행을 가능하게 한다. 하드웨어 계층은 예시적인 예들로서 복수의 CPU 코어들, 복수의 GPU 코어들, 복수 NPU 코어들, 복수의 TEE들, 복수의 DSP 코어들, 및 복수의 메모리들을 포함하는, 차량 내에 물리적으로 설치된 복수의 컴퓨팅 디바이스들(730)을 포함한다. 하드웨어 계층은 디스플레이들, 마이크로폰들, 스피커들, 센서들, 및 액추에이터들과 같은 차량 내에 물리적으로 설치된 복수의 주변 디바이스들(740)을 더 포함한다. 하드웨어 계층은 예시적이고 비제한적인 예들로서, 복수의 CPU 코어들, 복수의 GPU 코어들, 복수의 NPU 코어들, 복수의 메모리들, 및 복수의 콘텐츠를 포함하는 복수의 네트워크 및 클라우드 컴퓨팅 디바이스들(750)을 더 포함한다.
탄력적 컴퓨팅 계층(720)은 차량 내 하드웨어의 파라미터들, 이를테면 컴퓨팅 및 메모리 용량들, 주변 기기들이 접속되는 SoC들, 버스 속도들, 배터리 레벨들, 온도들 등을 이해한다. 탄력적 컴퓨팅 계층(720)은 또한, 에지 및 클라우드 디바이스들의 파라미터들, 이를테면 컴퓨팅 및 메모리 용량들, 에지-에지 레이턴시, 비용 모델들 등을 이해한다. 탄력적 컴퓨팅 계층(720)은 또한, 소프트웨어 계층(710)에서의 소프트웨어 구성요소들 각각의 필요들, 이를테면 컴퓨팅 대역폭, 메모리, I/O, 레이턴시 공차, 안전성, 보안 등을 이해한다.
탄력적 컴퓨팅 계층(720)은 차량에서 컴퓨팅 디바이스들(730) 상에서 무엇이 실행되는지 그리고 클라우드에서 클라우드 컴퓨팅 디바이스들(750) 상에서 무엇이 실행되는지를 결정한다. 탄력적 컴퓨팅 계층(720)은 차량 내 컴퓨팅 디바이스(730)들 및 클라우드 컴퓨팅 디바이스들(750)을 포함하여, 하드웨어 계층의 컴퓨팅 자원들을 동적으로 할당하여, 소프트웨어 계층(710)의 소프트웨어 필요들을 결정론적으로 충족시키고 시스템 전체의 부하 균형을 맞춘다.
탄력적 컴퓨팅 계층(720)은 또한, 차량에서 실행되는 소프트웨어에 대한 게스트 환경들을 확립하고, 공유 주변 기기들(740)에 대한 액세스를 제어한다.
도 8은 본 개시의 하나 이상의 실시예에 따른, 별개의 제어기들을 갖는 전자 장치 파티셔닝을 도시한 블록도(800)이다. 차량은 도 3과 관련하여 상술된 모듈들과 같은 하나 이상의 도메인 제어기(810)를 포함할 수 있다. 도메인 제어기들(810)은 기능적 친화도에 의해 그룹화될 수 있고, 상위 레벨 기능들을 담당한다. 도메인 제어기들은 코어 소프트웨어, 제어들 및 사용자 경험을 통합한다.
뿐만 아니라, 복수의 구역 제어기들(820)은 차량 전체에 걸쳐 분배될 수 있고, 공간 시너지들에 의해 그룹화될 수 있다. 구역 제어기들(820)은 예를 들어, 로컬 센서 관리 및 작동뿐만 아니라, 전력 관리도 담당할 수 있다. 도 8에 도시된 바와 같이 전자 장치들을 파티셔닝하는 것은 하드웨어를 대체하는 소프트웨어를 촉진하고, 케이블 하니스(cable harness), 데이터 공유, 기능적 융합을 최적화하고, 단일 의사 결정 지점을 제공하며, 구성 관리, 계층화(tiering), 및 업그레이드를 단순화한다.
도 9a 내지 도 9c는 본 명세서에서 논의된 바와 같이, 예시적인 차량에 대한 차량 내 프로세싱을 위한 탄력적 컴퓨팅 아키텍처, 예시적인 차량을 위한 차량 내 인터페이스 시스템, 및 예시적인 차량의 소프트웨어 프로세싱의 도메인 기반 파티셔닝을 위한 아키텍처의 다양한 양태들을 도시한다. 도 9a에 기초하여, 차량 내 프로세싱을 위한 탄력적 컴퓨팅 아키텍처(902)는 다양한 실시예들에서 소프트웨어 애플리케이션들의 프로세싱을 로컬 컴퓨팅 자원들 및 원격 컴퓨팅 자원들에 할당할 수 있는 탄력적 컴퓨팅 계층(974)을 포함한다. 도 9b에 기초하여, 차량(904)의 차량 내 인터페이스 시스템(920)은 탄력적 컴퓨팅 계층(974)을 구현할 수 있는 탄력적 컴퓨팅 모듈(926)을 포함할 수 있다. 또한, 도 9c에 기초하여, 탄력적 컴퓨팅 모듈(926)은 도메인들(예를 들어, 소프트웨어 프로세싱의 도메인 기반 파티셔닝을 위한 아키텍처(906)의 도메인들)에 따라 소프트웨어 애플리케이션들을 파티셔닝할 수 있고, 파티션들에 따라 소프트웨어 애플리케이션들의 프로세싱을 할당할 수 있다. (다른 도면들의 요소들과 동일한 명칭들을 갖는 도 9a 내지 도 9c의 요소들은 이들 요소들과 실질적으로 유사할 수 있고, 이러한 방식으로 동작하거나 기능하는 것으로 제한되지 않고, 실질적으로 유사한 방식으로 기능하거나 동작할 수 있다.)
도 9a를 참조하면, 탄력적 컴퓨팅 아키텍처(902)는 소프트웨어 계층, 하드웨어 계층, 및 탄력적 컴퓨팅 계층(974)을 포함한다. 소프트웨어 계층은 하나 이상의 소프트웨어 애플리케이션 및/또는 소프트웨어 서비스(972)(이를테면 제1 소프트웨어 애플리케이션 또는 서비스, 제2 소프트웨어 애플리케이션 및/또는 서비스, 제3 소프트웨어 애플리케이션 및/또는 서비스 등 내지 제N 소프트웨어 애플리케이션 및/또는 서비스)를 포함한다. 하드웨어 계층은 하나 이상의 로컬 컴퓨팅 디바이스(976)(이를테면 제1 컴퓨팅 디바이스 내지 제N 컴퓨팅 디바이스), 하나 이상의 원격 컴퓨팅 디바이스(978)(이를테면 제1 컴퓨팅 디바이스 내지 제N 컴퓨팅 디바이스), 및 하나 이상의 로컬 주변 디바이스(980)(이를테면 제1 주변 디바이스 내지 제N 주변 디바이스)를 포함한다.
로컬 컴퓨팅 디바이스들(976)은 차량(904) 내에 물리적으로 설치되고/거나, 물리적으로 통합되고/거나, 물리적으로 위치된 다양한 컴퓨팅 자원들을 포함할 수 있다. 원격 컴퓨팅 디바이스들(978)은 차량(904) 내에 물리적으로 설치되지 않고/거나, 물리적으로 통합되지 않고/거나, 떨어져 위치된 다양한 컴퓨팅 자원들을 포함할 수 있다.
이에 따라, 탄력적 컴퓨팅 아키텍처(902)의 로컬 컴퓨팅 자원들은 로컬 컴퓨팅 디바이스들(976)을 포함할 수 있는 한편, 탄력적 컴퓨터 아키텍처(902)의 원격 컴퓨팅 자원들은 원격 컴퓨팅 디바이스들(978)을 포함할 수 있다. 탄력적 컴퓨팅 아키텍처(902)의 로컬 컴퓨팅 자원들 및 원격 컴퓨팅 자원들 각각은 예를 들어, 하나 이상의 코어(예를 들어, CPU 코어, GPU 코어, NPU 코어, DSP 코어와 같은 프로세서 코어), TEE, 및/또는 메모리를 포함할 수 있다.
로컬 주변 디바이스들(980)은 차량(904) 내에 물리적으로 설치되고/거나, 물리적으로 통합되고/거나, 물리적으로 위치된 다양한 주변 기기들을 포함할 수 있다. 로컬 주변 디바이스들은 디스플레이들, 마이크로폰들, 스피커들, 센서들, 및/또는 액추에이터들과 같은 다양한 입력 및/또는 출력 디바이스들을 포함할 수 있다.
탄력적 컴퓨팅 계층(974)은 차량(904)에 로컬인 무선 통신 링크들, 또는 유선 통신 링크들을 통해 로컬 컴퓨팅 자원들(예를 들어, 로컬 컴퓨팅 디바이스들(976))에 통신 가능하게 연결될 수 있다. 탄력적 컴퓨팅 계층(974)은 또한 원격 장소들로 연장되는 무선 통신 링크들 및/또는 네트워크들을 통해 원격 컴퓨팅 자원들(예를 들어, 원격 컴퓨팅 디바이스들(978))에 통신 가능하게 연결될 수 있다.
탄력적 컴퓨팅 계층(974)은 컴퓨팅 대역폭, 메모리, I/O, 레이턴시 공차, 안전성, 보안 등과 관련될 수 있는 소프트웨어 애플리케이션들 및/또는 서비스들(972)의 다양한 프로세싱 요구들 및/또는 필요들을 결정 및/또는 이해할 수 있다. 또한, 탄력적 컴퓨팅 계층(974)은 로컬 컴퓨팅 디바이스들(976)의 하나 이상의 파라미터, 이를테면 이들의 컴퓨팅 및 메모리 용량들, 다양한 주변 기기들이 접속되는 SoC들, 버스 속도들, 배터리 레벨들, 온도들 등을 결정하고/거나 이해할 수 있다. 유사하게, 탄력적 컴퓨팅 계층(974)은 원격 컴퓨팅 디바이스들(978)의 하나 이상의 파라미터, 이를테면 이들의 컴퓨팅 및 메모리 용량들, 이들의 에지-에지 레이턴시들, 이들의 비용 모델들 등을 결정하고/거나 이해할 수 있다.
그 다음, 탄력적 컴퓨팅 계층(974)은 하나 이상의 소프트웨어 애플리케이션 및/또는 소프트웨어 서비스(972)의 실행을, 하나 이상의 로컬 컴퓨팅 자원(예를 들어, 로컬 컴퓨팅 디바이스(976)) 및/또는 하나 이상의 원격 컴퓨팅 디바이스(978)(예를 들면, 원격 컴퓨팅 디바이스(978)) 사이에 이들의 프로세싱을 할당함으로써 가능하게 할 수 있다. 할당은 소프트웨어 애플리케이션들 및/또는 소프트웨어 서비스들(972)의 다양한 프로세싱 요구들 및/또는 필요들을 가장 잘 충족시키도록 수행될 수 있다. 또한, 할당은 (예를 들어, 로컬 부하와 원격 부하 사이의) 부하 균형 목적을 가장 잘 충족시키도록 수행될 수 있다. 할당은 동적일 수 있고, 소프트웨어 애플리케이션들 및/또는 서비스들(972)의 프로세싱 요구들의 변화들, 로컬 컴퓨팅 자원들의 파라미터들 및/또는 가용성, 및 원격 컴퓨팅 디바이스 자원들의 파라미터들 및/또는 가용성에 따라 변할 수 있다. 할당은 또한 결정론적일 수 있다.
한편, 도 9b를 참조하면, (차량(904) 내에 위치되고/거나 통합될 수 있는) 차량(904)의 차량 내 인터페이스 시스템(920)은 탄력적 컴퓨팅 모듈(926) 외에, 하나 이상의 프로세서(922) 및 하나 이상의 메모리(924)를 포함한다. 유사하게, (예를 들어, 무선 네트워크를 통해) 차량(904)에 통신 가능하게 연결될 수 있는 하나 이상의 원격 서비스는 하나 이상의 프로세서 및 하나 이상의 메모리를 포함할 수 있다.
이에 따라, 차량 내 인터페이스 시스템(920)의 로컬 컴퓨팅 자원들은 프로세서들(922) 및 메모리들(924)을 포함할 수 있는 한편, 차량 내 인터페이스 시스템(920)의 원격 컴퓨팅 자원들은 원격 서비스들의 프로세서들 및 메모리들을 포함할 수 있다. 원격 서비스들의 각 프로세서(922) 및/또는 프로세서들은 (프로세서(530)와 같은 도 4 내지 도 6의 프로세서들을 갖는 것과 같은) 하나 이상의 SoC를 포함할 수 있다. 다양한 실시예들에서, 차례로 각 SoC는 하나 이상의 프로세서 코어를 가질 수 있다.
탄력적 컴퓨팅 모듈(926)은 차량(904)에 로컬인 유선 통신 링크들 또는 유선 통신 링크들 중 어느 하나를 통해, 차량(904)에 (예를 들어, 프로세서들(922) 및/또는 메모리들(924)의) 로컬 컴퓨팅 자원들에 통신 가능하게 연결될 수 있다. 탄력적 컴퓨팅 계층(974)은 또한 (예를 들어, 무선 네트워크들을 통해) 원격 장소들로 연장되는 무선 통신 링크들을 통해 원격 컴퓨팅 자원들(예를 들어, 원격 서비스들의 프로세서들 및/또는 메모리들)에 통신 가능하게 연결될 수 있다. 일부 실시예들에서, 프로세서들(922) 중 둘 이상은 고속 인터페이스(예를 들어, PCIe, 또는 멀티 기가비트 이더넷 접속)를 통해 서로 통신 가능하게 연결될 수 있다.
탄력적 컴퓨팅 모듈(926)은 컴퓨팅 대역폭, 메모리, I/O, 레이턴시 공차, 안전성, 보안 등과 관련될 수 있는 (예를 들어, 차량 내 인터페이스 시스템(920)의) 소프트웨어 구성요소들의 다양한 프로세싱 요구들 및/또는 필요들을 결정 및/또는 이해할 수 있다. 탄력적 컴퓨팅 모듈(926)은 또한 프로세서들(922) 및 메모리들(924)의 컴퓨팅 및 메모리 용량들, (차량 내 주변 기기들이 접속될 수 있는) 프로세서들(922)의 SoC 아키텍처들, 버스 속도들, 배터리 레벨들, 온도들 등과 같은 로컬 컴퓨팅 자원들에 관련된 다양한 파라미터들을 결정하고/거나 평가할 수 있다. 유사하게, 탄력적 컴퓨팅 모듈(926)은 또한 원격 서비스들의 프로세서들 및 메모리들의 컴퓨팅 및 메모리 용량들, 에지-에지 레이턴시들, 비용 모델들 등과 같은 원격 컴퓨팅 자원들의 다양한 파라미터들을 결정하고/거나 평가할 수 있다.
그 다음, 탄력적 컴퓨팅 모듈(926)은 소프트웨어 구성요소들의 프로세싱을 하나 이상의 로컬 컴퓨팅 자원(예를 들어, 프로세서(922) 및/또는 메모리(924)) 및/또는 하나 이상의 원격 컴퓨팅 자원(예를 들어, 원격 서비스의 프로세서 및/또는 메모리) 사이에 할당할 수 있다. 할당은 소프트웨어 구성요소들의 다양한 프로세싱 요구들 및/또는 필요들을 가장 잘 충족시키도록 수행될 수 있다. 또한, 할당은 (예를 들어, 로컬 부하와 원격 부하 사이의) 부하 균형 목적을 가장 잘 충족시키도록 수행될 수 있다. 할당은 동적일 수 있고, 소프트웨어 구성요소들의 프로세싱 요구들의 변화들, 로컬 컴퓨팅 자원들의 파라미터들 및/또는 가용성, 및 원격 컴퓨팅 디바이스 자원들의 파라미터들 및/또는 가용성에 따라 변할 수 있다. 할당은 또한 결정론적일 수 있다.
도 9c를 참조하면, 소프트웨어 프로세싱의 도메인 기반 파티셔닝을 위한 아키텍처(906)는 중앙 게이트웨이(930) 및 차량(904)을 위한 소프트웨어가 파티셔닝될 수 있는 하나 이상의 도메인(이를테면 제1 도메인(932), 제2 도메인(934), 제3 도메인(936)등 내지 제N 도메인(938))을 포함할 수 있다. 아키텍처(906)의 도메인들은 기능적 친화도 그룹화를 반영할 수 있고/거나, 상위 레벨 기능 책임들을 반영할 수 있고/거나, 차량(904)의 다양한 부분들, 또는 양태들을 반영할 수 있다. 예를 들어, 다양한 도메인들은 도 3의 객실 모듈(320), 텔레매틱스 모듈(330), 드라이브 & ADAS 모듈(340), 섀시 모듈(350), 및/또는 드라이브트레인 모듈(360)의 도메인들과 실질적으로 유사할 수 있다.
또한, 다양한 도메인들에 대한 프로세싱은 다양한 컴퓨팅 자원들에 할당될 수 있다. 도메인들 중 하나 이상에 대한 프로세싱은 단일 프로세서, 프로세서 내의 단일 SoC, 및/또는 프로세서 내의 그리고/또는 SoC 내의 단일 프로세서 코어에 할당될 수 있다. 대안적으로, 하나보다 많은 도메인에 대한 프로세싱은 별개의 프로세서들, 또는 프로세서 내의 별개의 SoC들, 또는 프로세스 내의 그리고/또는 SoC 내의 별개의 코어들에 할당될 수 있다. 다양한 실시예들에서, 다양한 도메인들에 대한 프로세싱은 상기의 다양한 조합들로 할당될 수 있다.
이에 따라, 탄력적 컴퓨팅 모듈(926)은 다양한 도메인들에 따라 차량(904)에 대한 소프트웨어 프로세싱을 파니셔닝할 수 있어서, 도메인 특정 프로세싱이 다양한 컴퓨팅 자원 세트들에 할당된다. 도메인들을 프로세싱하기 위해 할당된 컴퓨팅 자원들은 상이한 실시예들 사이에서 달라질 수 있다. 다양한 실시예들에서, 컴퓨팅 자원들의 할당은 컴퓨팅 대역폭, 메모리, I/O, 레이턴시 공차, 안전성, 보안 등과 같은 소프트웨어의 요구들 및/또는 필요들을 프로세싱하는 것에 관련될 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨팅 자원들의 할당은 소프트웨어 요구 안전 파라미터(예를 들어, 자동차 안전 무결성 수준(Automotive Safety Integrity Level, ASIL) 레벨)에 관련될 수 있다. 일부 실시예들에서, 컴퓨팅 자원들은 (예를 들어, 도 8에 대하여) 본 명세서에서 논의된 바와 같이 도메인 제어기들 및 구역 제어기들에 따라 컴퓨팅 자원들에 할당될 수 있다.
또한, 도메인들의 파티셔닝 및/또는 하지의 컴퓨팅 자원들의 할당은 동적일 수 있고, 소프트웨어 프로세싱 요구들의 변화들, 로컬 컴퓨팅 자원들의 파라미터들 및/또는 가용성, 및 원격 컴퓨팅 디바이스 자원들의 파라미터들 및/또는 가용성에 따라 변할 수 있다. 이에 따라, 다양한 도메인들에 할당되는 프로세싱 능력이 확장될 수 있다.
도 9a 내지 도 9c에 따르면, 탄력적 컴퓨팅 모듈(926)은 컴퓨팅 자원들로부터 컴퓨팅 자원들에 관련된 프로세싱 파라미터들을 수신할 수 있다. 탄력적 컴퓨팅 모듈(926)은 또한 컴퓨팅 자원들에 대한 제어 시그널링을 확립할 수 있다.
일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 소프트웨어 프로세싱을 다수의 코어들을 갖는 단일 SoC에 할당할 수 있다. 일부 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 소프트웨어 프로세싱을 다수의 SoC들(이들 중 어느 하나는 하나 이상의 코어를 가질 수 있음)에 할당할 수 있다. 다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 소프트웨어 프로세싱을 하나 이상의 코어를 갖는 단일 SoC들 및/또는 하나 이상의 코어를 갖는 다수의 SoC들의 다양한 조합들에 할당할 수 있다. 탄력적 컴퓨팅 모듈(926)이 소프트웨어 프로세싱을 다수의 SoC들에 할당하는 실시예들에서, SoC들은 인터커넥트(이는 예를 들어, 캐시-코히어런트 인터커넥트, PCIe 인터커넥트, 이더넷 인터커넥트 등일 수 있음)를 통해 통신 가능하게 연결될 수 있다.
일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 컴퓨팅 자원들에 대한 클록킹 유닛들, 전력 유닛들, 및/또는 열 관리 유닛들에 액세스할 수 있다. 예를 들어, 탄력적 컴퓨팅 모듈(926)은 하나 이상의 프로세싱 코어의 전압의 개별 조정, 전력 게이팅, 클록킹, 및 클록 게이팅을 위한 전용 메커니즘들에 액세스할 수 있다. 또한, 탄력적 컴퓨팅 모듈(926)은 예를 들어, 다양한 컴퓨팅 자원들에 대한 동작 성능점들의 범위와 대응하는 융합된 전압 값들에 액세스할 수 있다. 일부 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 동적 전압 및 주파수 스케일링 및/또는 적응적 전압 스케일링을 지원하는 메커니즘들에 액세스할 수 있다. 다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 하나 이상의 코어로부터의 작업 온도들을 판독하고/거나, 컴퓨팅 엔진에 대한 평균 전류 및/또는 전력 소실을 판독하고/거나, 및 컴퓨팅 엔진에 대한 피크 전류 및/또는 전력 소실을 판독 가능할 수 있다.
다양한 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 하나 이상의 컴퓨팅 엔진(예를 들어, 프로세서, 코어, 및/또는 SoC)에 대한 성능 카운터들 및/또는 부하 카운터들을 판독할 수 있다. 성능 카운터들 및/또는 부하 카운터들은 카운터 메트릭들을 생성하는 소프트웨어(예를 들어, 소스, 애플리케이션, 및/또는 태스크)를 구별할 수 있다. 다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 하나 이상의 인터커넥트에 대한 판독 트래픽 카운터들 및/또는 기입 트래픽 카운터들을 판독할 수 있다. 판독 트래픽 카운터들 및/또는 기입 트래픽 카운터들은 트래픽을 생성하는 소프트웨어(예를 들어, 소스 및 애플리케이션)를 명확하게 구별할 수 있다.
일부 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 (동적 랜덤 액세스 메모리들(DRAM)과 같은) 메모리 컴퓨팅 자원의 동작 성능점을 메모리 대역폭에 대한 시스템 부하 및 소프트웨어 요구와 같은 인자들의 함수로서 동적으로 변경할 수 있다. 일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 (예를 들어, 카운터에 의해 캡처되는 바와 같은) 메모리 온도, 메모리 리프레시 레이트, 및/또는 메모리 스루풋과 같은 파라미터들에 기초하여 현재 이용 가능한 스루풋을 고려할 수 있다.
다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 다양한 작업들(예를 들어, 소프트웨어 프로세싱)을 우선순위화할 수 있고/거나 우선순위에 기초하여 보장된 실행 시간의 명세 또는 정의를 지원할 수 있다. 일부 실시예들에서, 고우선순위 태스크의 실행 시간이 임계적이면, 탄력적 컴퓨팅 모듈(926)은 (예를 들어, 미리 결정된 시간에) 고우선순위 태스크의 실행을 보장하기 위해 (예를 들어, 할당된 컴퓨팅 자원들을 할당 해제함으로써) 보다 저우선순위들을 갖는 태스크들을 인터럽트할 수 있다. 미리 결정된 시간에 고우선순위 태스크를 실행하는 것이 가능하다면, 탄력적 컴퓨팅 모듈(926)은 보다 저우선순위들을 갖는 태스크들을 인터럽트하지 않을 것이다.
다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 컴퓨팅 자원들을 동적으로 할당 및/또는 파티셔닝할 수 있고(예를 들어, 본 명세서에서 논의된 바와 같이), 또한 전용 파티션들 또는 도메인들에 대한 메모리 공간 영역들을 정의할 수 있다. 이는 바람직하게는 도메인 분리(예를 들어, 간섭으로부터의 자유)를 가능하게 하고/거나 보장할 수 있으며, 이는 차례로 예를 들어, 안전과 관련된 소프트웨어 요구들을 가능하게 하고/거나 보장할 수 있다. (상대적으로 높은 ASIL 레벨들에 대한 요구들과 같은) 소프트웨어 안전 요구들을 지원하기 위해, 일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 소프트웨어 애플리케이션에 할당된 컴퓨팅 자원(예를 들어, 프로세싱 코어)을 할당 해제하고, 하나 이상의 온 디바이스 테스트(예를 들어, LBIST(Logic Built-In Self-Test) 테스트 및/또는 다른 테스트들)을 실행하여 컴퓨팅 자원이 임의의 검출 가능한 이슈들을 갖는지 여부, 그리고 그렇지 않다면 컴퓨팅 자원을 소프트웨어 애플리케이션에 재할당할 수 있다.
일부 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 컴퓨팅 자원들의 이용 가능한 시간, 또는 가용성을 나타내는 컴퓨팅 자원들(예를 들어, 프로세싱 코어들)에 대한 카운터들에 액세스할 수 있다. 탄력적 컴퓨팅 모듈(926)은 소프트웨어 프로세싱을 다양한 컴퓨팅 자원들에 할당시 이 데이터를 고려명할 수 있다(예를 들어, 컴퓨팅 자원들 내의 실제 자원 가용성에 기초하여).
일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 SoC 내부의 레이턴시에 관한 그리고/또는 SoC 내의 하나 이상의 경로에 대한 데이터에 액세스할 수 있다(예를 들어, 카운터들 또는 성능 모니터들을 통해). 탄력적 컴퓨팅 모듈(926)은 또한(캐시-코히어런트 인터커넥트 인터페이스들, PCIe 인터페이스들, 이더넷 인터페이스들 등과 같은) 다양한 인터페이스들에서의 레이턴시에 관한 데이터에 대한 액세스할 수 있다(예를 들어, 카운터들 또는 성능 모니터들을 통해).
이에 따라, 다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 다양한 컴퓨팅 자원들 사이에서 소프트웨어 프로세싱을 할당하기 위한 광범위한 데이터 및/또는 제어 메커니즘들에 액세스할 수 있다. 일부 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 신경망을 사용할 수 있으며, 이는 차례로 차량(904)에서 사람들을 인식하고, 운전자 및/또는 한 명 이상의 탑승자의 상태 및/또는 거동을 관찰하며, 기계 학습을 채용하여 다양한 사용자들이 시스템을 어떻게 사용하기를 원하는지를 미리 예측할 수 있다.
도 10은 차량 내 탄력적 컴퓨팅을 위한 예시적인 방법(1000)을 도시한다. 방법(1000)은 제1 결정(1010), 제2 결정(1020), 제1 할당(1030), 및 제2 할당(1040)을 포함할 수 있다. 제1 결정(1010)에서, 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스에 대해 제1 파티션이 결정될 수 있으며, 제1 파티션은 제1 도메인에 대한 것이다. 제2 결정(1020)에서, 제2 컴퓨팅 디바이스에 대해 제2 파티션이 결정될 수 있으며, 제2 파티션은 제2 도메인에 대한 것이다. 제1 할당(1030)에서, 제1 컴퓨팅 디바이스에 제1 도메인과 관련된 제1 소프트웨어 애플리케이션 세트의 프로세싱이 할당될 수 있다. 제2 할당(1040)에서, 제2 컴퓨팅 디바이스에 제2 도메인과 관련된 제2 소프트웨어 애플리케이션 세트의 프로세싱이 할당될 수 있다.
일부 실시예들에서, 제2 컴퓨팅 디바이스는 원격 컴퓨팅 디바이스일 수 있다. 일부 실시예들에 대해, 제1 도메인은 제1 안전 카테고리를 포괄(encompass)할 수 있고, 제2 도메인은 제2 안전 카테고리를 포괄할 수 있다. 일부 실시예들에서, 제1 로컬 컴퓨팅 디바이스는 제1 SoC를 포함할수 있고, 제2 로컬 컴퓨팅 디바이스는 제2 SoC를 포함할 수 있다. 일부 실시예들에 대해, 제1 도메인은 하나 이상의 섀시 성능, 또는 하나 이상의 드라이브트레인 성능, 또는 양자를 포괄할 수 있다. 다양한 실시예들에서, 제1 컴퓨팅 디바이스 및/또는 제2 컴퓨팅 디바이스는 하나 이상의 CPU; 하나 이상의 GPU; 하나 이상의 NPU; 하나 이상의 DSP; 및/또는 하나 이상의 메모리 디바이스를 포함할 수 있다.
다양한 실시예들에서, 소프트웨어 애플리케이션에 대한 프로세싱은 소프트웨어 애플리케이션의 요구 안전 파라미터, 제1 컴퓨팅 디바이스의 하나 이상의 프로세싱 파라미터, 및 제2 컴퓨팅 디바이스의 하나 이상의 프로세싱 파라미터에 기초하여 제1 컴퓨팅 디바이스 또는 제2 컴퓨팅 디바이스 중 어느 하나에 할당될 수 있다. 일부 실시예들에 대해, 제1 프로세싱 파라미터 세트 및/또는 제2 프로세싱 파라미터 세트는 컴퓨팅 용량 및/또는 메모리 용량을 포함할 수 있다.
다양한 실시예들에 대해, 본 명세서에서 개시된 바와 같은 탄력적 컴퓨팅 모듈은 본 명세서에서 개시된 방법(1000) 및/또는 다양한 방법들의 다양한 부분들을 수행하도록 구성될 수 있다. 일부 실시예들에서, 탄력적 컴퓨팅 모듈은 차량의 게스트 오퍼레이터가 제한된 액세스로 소프트웨어 애플리케이션에 액세스하도록 게스트 환경을 확립하도록 구성될 수 있다. 일부 실시예에서, 탄력적 컴퓨팅 모듈은 하나 이상의 주변 디바이스에 대한 액세스를 제어하도록 구성될 수 있다.
다양한 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 본 명세서에서 개시된 다양한 방법들의 일부 또는 전부를 수행하도록 구성 가능할 수 있다. 일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 맞춤 개발된 회로부(예를 들어, 주문형 집적 회로(Application-Specific Integrated Circuit, ASIC) 구성요소 및/또는 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA) 디바이스)를 포함할 수 있다. 일부 실시예들에서, 탄력적 컴퓨팅 모듈(926)은 하나 이상의 프로세서, 및 실행될 때 하나 이상의 프로세서로 하여금 본 명세서에서 개시된 방법들의 일부 또는 전부를 수행하게 할 수 있는 실행 가능 명령어들을 홀딩하기 위한 메모리를 포함할 수 있다. 일부 예시적인 실시예들에 대해, 탄력적 컴퓨팅 모듈(926)은 프로세서들(922) 및/또는 메모리들(924)에 의해 적어도 부분적으로 구현될 수 있다.
본 명세서에서 논의되는 바와 같은 탄력적 컴퓨팅 계층 및/또는 탄력적 컴퓨팅 모듈은 바람직하게는 소프트웨어 프로세싱을 동적이고 적응적인 방식으로 컴퓨팅 자원들 사이에 분산시킬 수 있다. 결과적으로, 이는 시스템 자원들의 통합, 프로세싱의 유연성, 시스템 비용의 감소, 및 상이한 메트릭들(예를 들어, 성능, 에너지 사용량, 구성요소 노화의 최소화 등)에 대한 시스템 출력의 최적화를 유리하게 촉진할 수 있다. 이러한 이점들은 소프트웨어 구현 및/또는 하드웨어 구현의 세부 내용과 독립적일 수 있다.
본 명세서에서 논의된 방법들 및 시스템들에 대한 제1 접근법에서, 차량을 제어하기 위한 시스템의 제1 예는: 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스; 차량으로부터 떨어져 위치된 제2 컴퓨팅 디바이스; 및 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 통신 가능하게 연결되는 탄력적 컴퓨팅 모듈을 포함하며, 탄력적 컴퓨팅 모듈은: 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들을 결정하도록; 차량의 구성요소를 제어하는 것에 대한 소프트웨어 애플리케이션의 소프트웨어 요구들을 결정하도록; 그리고 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들 및 소프트웨어 애플리케이션의 소프트웨어 요구들에 기초하여 제1 컴퓨팅 디바이스 및/또는 제2 컴퓨팅 디바이스에 소프트웨어 애플리케이션의 프로세싱을 동적으로 할당하도록 구성된다. 제1 예를 바탕으로, 시스템의 제2 예에서, 제1 컴퓨팅 디바이스는 복수의 CPU들; 복수의 GPU들; 복수의 NPU들; 복수의 DSP들; 및 복수의 메모리 디바이스들 중 하나 이상을 포함한다. 제2 예를 바탕으로, 시스템의 제3 예에서, 제2 컴퓨팅 디바이스는 제2 복수의 CPU들, 제2 복수의 GPU들, 제2 복수의 NPU들, 및 제2 복수의 메모리 디바이스들 중 하나 이상을 포함한다. 제1 예 내지 제3 예 중 어느 하나를 바탕으로, 시스템의 제4 예에서, 탄력적 컴퓨팅 모듈은 또한, 차량의 게스트 오퍼레이터가 제한된 액세스로 소프트웨어 애플리케이션에 액세스하도록 게스트 환경을 확립하도록 구성된다. 제1 예 내지 제4 예 중 어느 하나를 바탕으로, 시스템의 제5 예는: 복수의 주변 디바이스들을 더 포함하며, 탄력적 컴퓨팅 모듈은 또한, 복수의 주변 디바이스들 중 하나 이상의 주변 디바이스들에 대한 액세스를 제어하도록 구성된다. 제1 예 내지 제5 예 중 어느 하나를 바탕으로, 시스템의 제6 예에서, 소프트웨어 애플리케이션은 복수의 소프트웨어 애플리케이션들을 포함하고; 탄력적 컴퓨팅 모듈은 각 소프트웨어 애플리케이션의 도메인에 따라 복수의 소프트웨어 애플리케이션들을 파티셔닝하며; 탄력적 컴퓨팅 모듈은 복수의 소프트웨어 애플리케이션들의 파티션들에 따라 각 소프트웨어 애플리케이션의 프로세싱을 할당한다.
본 명세서에서 논의된 방법들 및 시스템들에 대한 제2 접근법에서, 차량 내 인터페이스 시스템의 제1 예는: 제1 로컬 컴퓨팅 디바이스에, 제2 로컬 컴퓨팅 디바이스에, 또는 양자에 통신 가능하게 연결하도록 구성된 하나 이상의 통신 링크; 및 제1 로컬 컴퓨팅 디바이스 및 제2 로컬 컴퓨팅 디바이스에 연결하도록 통신 가능하게 구성된 탄력적 컴퓨팅 모듈을 포함하며, 탄력적 컴퓨팅 모듈은: 제1 로컬 컴퓨팅 디바이스의 제1 프로세싱 파라미터 세트 및 제2 로컬 컴퓨팅 디바이스의 제2 프로세싱 파라미터 세트를 결정하도록; 차량에 대한 소프트웨어 애플리케이션의 요구 안전 파라미터를 확립하도록; 그리고 제1 프로세싱 파라미터 세트 및 제2 프로세싱 파라미터 세트에 기초하여, 소프트웨어 애플리케이션의 요구 안전 파라미터를 충족시키도록 제1 로컬 컴퓨팅 디바이스와 제2 로컬 컴퓨팅 디바이스 사이에 소프트웨어 애플리케이션의 프로세싱을 할당하도록 구성된다. 제1 예를 바탕으로, 차량 내 인터페이스 시스템의 제2 예에서, 제1 프로세싱 파라미터 세트 및 제2 프로세싱 파라미터 세트는, 컴퓨팅 용량들, 및 메모리 용량들 중 적어도 하나를 포함한다. 제1 예 또는 제2 예 중 어느 하나를 바탕으로, 차량 내 인터페이스 시스템의 제3 예는: 제1 SoC 및 제2 SoC를 더 포함하며, 제1 로컬 컴퓨팅 디바이스는 제1 SoC를 포함하고; 제2 로컬 컴퓨팅 디바이스는 제2 SoC를 포함한다. 제1 예 내지 제3 예 중 어느 하나를 바탕으로, 차량 내 인터페이스 시스템의 제4 예에서, 시스템의 제1 프로세싱 파티션은 제1 디바이스를 포함하도록 구현되고; 시스템의 제2 프로세싱 파티션은 제2 디바이스를 포함하도록 구현된다. 제4 예를 바탕으로, 차량 내 인터페이스 시스템의 제5 예에서, 제1 프로세싱 파티션은 시스템의 제1 SoC 상에 구현되고; 제2 프로세싱 파티션은 시스템의 제2 SoC 상에 구현된다. 제4 예 또는 제5 예 중 어느 하나를 바탕으로, 차량 내 인터페이스 시스템의 제6 예에서, 제1 프로세싱 파티션은 하나 이상의 섀시 성능, 또는 하나 이상의 드라이브트레인 성능, 또는 양자과 관련된 프로세싱을 핸들링한다. 제6 예를 바탕으로, 제6항의 차량 내 인터페이스 시스템의 제7 예에서, 제1 프로세싱 파티션은 제1 안전 등급과 연관되고; 제2 프로세싱 파티션은 제2 안전 등급과 연관된다. 제1 예 내지 제7 예 중 어느 하나를 바탕으로, 차량 내 인터페이스 시스템의 제8 예에서, 통신 링크는 제1 로컬 컴퓨팅 디바이스에 통신 가능하게 연결하도록 구성되고; 차량 내 인터페이스 시스템은 제2 로컬 컴퓨팅 디바이스에 통신 가능하게 연결하도록 구성된 제2 통신 링크를 더 포함한다. 제1 예 내지 제8 예 중 어느 하나를 바탕으로, 제1항 내지 제8항 중 어느 하나의 차량 내 인터페이스 시스템의 제9 예에서, 차량 내 인터페이스 시스템은 원격 컴퓨팅 디바이스에 통신 가능하게 연결하도록 구성된 추가 통신 링크를 더 포함하고; 탄력적 컴퓨팅 모듈은 또한: 원격 컴퓨팅 디바이스의 제3 프로세싱 파라미터 세트를 결정하도록; 차량에 대한 추가 소프트웨어 애플리케이션의 요구 안전 파라미터를 확립하도록; 그리고 소프트웨어 애플리케이션의 요구 안전 파라미터를 충족시키도록, 제1 프로세싱 파라미터 세트, 제2 프로세싱 파라미터 세트, 및 제3 프로세싱 파라미터 세트에 기초하여, 제1 로컬 컴퓨팅 디바이스, 제2 로컬 컴퓨팅 디바이스, 및 원격 컴퓨팅 디바이스 사이에 소프트웨어 애플리케이션의 프로세싱을 할당하도록 구성된다.
본 명세서에서 논의된 방법들 및 시스템들에 대한 제3 접근법에서, 차량 내 탄력적 컴퓨팅을 위한 방법의 제1 예는: 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스에 대한 제1 파티션을 결정하는 단계 - 제1 파티션은 제1 도메인에 대한 것임 -; 제2 컴퓨팅 디바이스에 대한 제2 파티션을 결정하는 단계 - 제2 파티션은 제2 도메인에 대한 것임 -; 제1 컴퓨팅 디바이스에 제1 도메인과 관련된 제1 소프트웨어 애플리케이션 세트의 프로세싱을 할당하는 단계; 및 제2 컴퓨팅 디바이스에 제2 도메인과 관련된 제2 소프트웨어 애플리케이션 세트의 프로세싱을 할당하는 단계를 포함한다. 제1 예를 바탕으로, 차량 내 탄력적 컴퓨팅을 위한 방법의 제2 예에서, 제2 컴퓨팅 디바이스는 원격 컴퓨팅 디바이스이다. 제1 예 또는 제2 예 중 어느 하나를 바탕으로, 차량 내 탄력적 컴퓨팅을 위한 방법의 제3 예에서, 제1 도메인은 제1 안전 카테고리를 포괄하고, 제2 도메인은 제2 안전 카테고리를 포괄한다. 제1 예 내지 제3 예 중 어느 하나를 바탕으로, 차량 내 탄력적 컴퓨팅을 위한 방법의 제4 예에서, 제1 로컬 컴퓨팅 디바이스는 제1 SoC를 포함하고, 제2 로컬 컴퓨팅 디바이스는 제2 SoC를 포함한다. 제1 예 내지 제4 예 중 어느 하나를 바탕으로, 차량 내 탄력적 컴퓨팅을 위한 방법의 제5 예에서, 제1 도메인은 하나 이상의 섀시 성능, 또는 하나 이상의 드라이브트레인 성능, 또는 양자를 포괄한다.
실시예들에 대한 설명은 예시 및 설명 목적으로 제시되었다. 실시예들에 대한 적합한 수정 및 변형이 상기한 설명을 고려하여 수행될 수 있거나 방법들을 실시함으로써 얻어질 수 있다. 예를 들어, 달리 언급되지 않는 한, 설명된 방법들 중 하나 이상이 도 1 내지 도 9c에 대하여 상술된 차량 시스템들 및 클라우드 컴퓨팅 시스템들과 같은, 적합한 디바이스 및/또는 디바이스들의 조합에 의해 수행될 수 있다. 방법들은 저장 디바이스들, 메모리, 하드웨어 네트워크 인터페이스들/안테나들, 스위치들, 액추에이터들, 클록 회로들 등과 같은, 하나 이상의 하드웨어 요소와 조합하여 하나 이상의 로직 디바이스(예를 들어, 프로세서)로 저장된 명령어들을 실행함으로써 수행될 수 있다. 또한, 설명된 방법들 및 관련 동작들은 본 출원에서 설명된 순서 외에 다양한 순서들로, 병렬적으로, 그리고/또는 동시에 수행될 수도 있다. 설명된 시스템들은 사실상 대표적인 것이고, 추가 요소들을 포함하고/거나 요소들을 생략할 수 있다. 본 개시의 요지는 개시된 다양한 시스템들 및 구성들의 모든 신규하고 자명하지 않은 조합들 및 하위 조합들, 및 다른 피처들, 기능들, 및/또는 속성들을 포함한다.
본 출원에서 사용될 때, 단수로 나열되고 "하나" 또는 "한"이라는 단수 표현 단어로 시작된 요소 또는 단계는 배제가 언급되지 않는 한, 복수의 요소들 또는 단계들을 배제하지 않는 것으로서 이해되어야 한다. 뿐만 아니라, 본 개시의 "일 실시 예" 또는 "일례"의 언급들은 또한 나열된 피처들을 통합하는 추가 실시 예들의 존재를 배제하는 것으로서 해석되는 것으로 의도되지 않는다. "제1", "제2", "제3" 등의 용어들은 단지 라벨들로서 사용되는 것이고, 이들의 대상들에 수치 요건들 또는 특정 위치 순서를 부과하는 것으로 의도되지 않는다. 이하 청구항들은 특히 상기한 개시 내용으로부터 신규하고 자명하지 않은 것으로서 여겨지는 요지를 언급한다.

Claims (20)

  1. 차량을 제어하기 위한 시스템으로서,
    상기 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스;
    상기 차량으로부터 떨어져 위치된 제2 컴퓨팅 디바이스; 및
    상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 통신 가능하게 연결되는 탄력적 컴퓨팅 모듈(elastic computing module)을 포함하며, 상기 탄력적 컴퓨팅 모듈은:
    상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스의 컴퓨팅 및 메모리 용량들을 결정하도록;
    상기 차량의 구성요소를 제어하는 것에 대한 소프트웨어 애플리케이션의 소프트웨어 요구들을 결정하도록; 그리고
    상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스의 상기 컴퓨팅 및 메모리 용량들 및 상기 소프트웨어 애플리케이션의 상기 소프트웨어 요구들에 기초하여 상기 제1 컴퓨팅 디바이스 및/또는 상기 제2 컴퓨팅 디바이스에 상기 소프트웨어 애플리케이션의 프로세싱을 동적으로 할당하도록 구성되는 것인, 시스템.
  2. 제1항에 있어서,
    상기 제1 컴퓨팅 디바이스는, 복수의 중앙 프로세싱 유닛(central processing unit, CPU)들; 복수의 그래픽 프로세싱 유닛(graphics processing unit, GPU)들; 복수의 신경망 프로세싱 유닛(neural processing unit, NPU)들; 복수의 디지털 신호 프로세서(digital signal processor, DSP)들; 및 복수의 메모리 디바이스들 중 하나 이상을 포함하는 것인, 시스템.
  3. 제2항에 있어서,
    상기 제2 컴퓨팅 디바이스는 제2 복수의 CPU들, 제2 복수의 GPU들, 제2 복수의 NPU들, 및 제2 복수의 메모리 디바이스들 중 하나 이상을 포함하는 것인, 시스템.
  4. 제1항에 있어서,
    상기 탄력적 컴퓨팅 모듈은 또한, 상기 차량의 게스트 오퍼레이터가 제한된 액세스로 상기 소프트웨어 애플리케이션에 액세스하도록 게스트 환경을 확립하도록 구성되는 것인, 시스템.
  5. 제1항에 있어서,
    복수의 주변 디바이스들을 더 포함하며,
    상기 탄력적 컴퓨팅 모듈은 또한, 상기 복수의 주변 디바이스들 중 하나 이상의 주변 디바이스들에 대한 액세스를 제어하도록 구성되는 것인, 시스템.
  6. 제1항에 있어서,
    상기 소프트웨어 애플리케이션은 복수의 소프트웨어 애플리케이션들을 포함하고;
    상기 탄력적 컴퓨팅 모듈은 각 소프트웨어 애플리케이션의 도메인에 따라 상기 복수의 소프트웨어 애플리케이션들을 파티셔닝(partitioning)하며;
    상기 탄력적 컴퓨팅 모듈은 상기 복수의 소프트웨어 애플리케이션들의 파티션들에 따라 각 소프트웨어 애플리케이션의 프로세싱을 할당하는 것인, 시스템.
  7. 차량 내 인터페이스 시스템으로서,
    제1 로컬 컴퓨팅 디바이스에, 제2 로컬 컴퓨팅 디바이스에, 또는 양자에 통신 가능하게 연결하도록 구성된 하나 이상의 통신 링크; 및
    상기 제1 로컬 컴퓨팅 디바이스 및 상기 제2 로컬 컴퓨팅 디바이스에 연결하도록 통신 가능하게 구성된 탄력적 컴퓨팅 모듈을 포함하며, 상기 탄력적 컴퓨팅 모듈은:
    상기 제1 로컬 컴퓨팅 디바이스의 제1 프로세싱 파라미터 세트 및 상기 제2 로컬 컴퓨팅 디바이스의 제2 프로세싱 파라미터 세트를 결정하도록;
    상기 차량에 대해 소프트웨어 애플리케이션의 요구 안전 파라미터를 확립하도록; 그리고
    상기 제1 프로세싱 파라미터 세트 및 상기 제2 프로세싱 파라미터 세트에 기초하여, 상기 소프트웨어 애플리케이션의 상기 요구 안전 파라미터를 충족시키도록 상기 제1 로컬 컴퓨팅 디바이스와 상기 제2 로컬 컴퓨팅 디바이스 사이에 상기 소프트웨어 애플리케이션의 프로세싱을 할당하도록 구성되는 것인, 차량 내 인터페이스 시스템.
  8. 제7항에 있어서,
    상기 제1 프로세싱 파라미터 세트 및 상기 제2 프로세싱 파라미터 세트는, 컴퓨팅 용량들, 및 메모리 용량들 중 적어도 하나를 포함하는 것인, 차량 내 인터페이스 시스템.
  9. 제7항에 있어서,
    제1 시스템 온 칩(System-on-Chip, SoC) 및 제2 SoC를 더 포함하며,
    상기 제1 로컬 컴퓨팅 디바이스는 상기 제1 SoC를 포함하고;
    상기 제2 로컬 컴퓨팅 디바이스는 상기 제2 SoC를 포함하는 것인, 차량 내 인터페이스 시스템.
  10. 제7항에 있어서,
    상기 시스템의 제1 프로세싱 파티션은 상기 제1 디바이스를 포함하도록 구현되고;
    상기 시스템의 제2 프로세싱 파티션은 상기 제2 디바이스를 포함하도록 구현되는 것인, 차량 내 인터페이스 시스템.
  11. 제10항에 있어서,
    상기 제1 프로세싱 파티션은 상기 시스템의 제1 시스템 온 칩(SoC) 상에 구현되고;
    상기 제2 프로세싱 파티션은 상기 시스템의 제2 SoC 상에 구현되는 것인, 차량 내 인터페이스 시스템.
  12. 제10항에 있어서,
    상기 제1 프로세싱 파티션은 하나 이상의 섀시 성능(chassis capability), 또는 하나 이상의 드라이브트레인 성능(drivetrain capability), 또는 양자과 관련된 프로세싱을 핸들링하는 것인, 차량 내 인터페이스 시스템.
  13. 제12항에 있어서,
    상기 제1 프로세싱 파티션은 제1 안전 등급과 연관되고;
    상기 제2 프로세싱 파티션은 제2 안전 등급과 연관되는 것인, 차량 내 인터페이스 시스템.
  14. 제7항에 있어서,
    상기 통신 링크는 상기 제1 로컬 컴퓨팅 디바이스에 통신 가능하게 연결하도록 구성되고;
    상기 차량 내 인터페이스 시스템은 상기 제2 로컬 컴퓨팅 디바이스에 통신 가능하게 연결하도록 구성된 제2 통신 링크를 더 포함하는, 차량 내 인터페이스 시스템.
  15. 제7항에 있어서,
    상기 차량 내 인터페이스 시스템은 원격 컴퓨팅 디바이스에 통신 가능하게 연결하도록 구성된 추가 통신 링크를 더 포함하고;
    상기 탄력적 컴퓨팅 모듈은 또한:
    상기 원격 컴퓨팅 디바이스의 제3 프로세싱 파라미터 세트를 결정하도록;
    상기 차량에 대한 추가 소프트웨어 애플리케이션의 요구 안전 파라미터를 확립하도록; 그리고
    상기 소프트웨어 애플리케이션의 상기 요구 안전 파라미터를 충족시키도록, 상기 제1 프로세싱 파라미터 세트, 상기 제2 프로세싱 파라미터 세트, 및 상기 제3 프로세싱 파라미터 세트에 기초하여, 상기 제1 로컬 컴퓨팅 디바이스, 상기 제2 로컬 컴퓨팅 디바이스, 및 상기 원격 컴퓨팅 디바이스 사이에 상기 소프트웨어 애플리케이션의 프로세싱을 할당하도록 구성되는 것인, 차량 내 인터페이스 시스템.
  16. 차량 내 탄력적 컴퓨팅을 위한 방법으로서,
    상기 차량 내에 물리적으로 위치된 제1 컴퓨팅 디바이스에 대한 제1 파티션을 결정하는 단계 - 상기 제1 파티션은 제1 도메인에 대한 것임 -;
    제2 컴퓨팅 디바이스에 대한 제2 파티션을 결정하는 단계 - 상기 제2 파티션은 제2 도메인에 대한 것임 -;
    상기 제1 컴퓨팅 디바이스에 상기 제1 도메인과 관련된 제1 소프트웨어 애플리케이션 세트의 프로세싱을 할당하는 단계; 및
    상기 제2 컴퓨팅 디바이스에 상기 제2 도메인과 관련된 제2 소프트웨어 애플리케이션 세트의 프로세싱을 할당하는 단계를 포함하는, 방법.
  17. 제16항에 있어서,
    상기 제2 컴퓨팅 디바이스는 원격 컴퓨팅 디바이스인 것인, 방법.
  18. 제16항에 있어서,
    상기 제1 도메인은 제1 안전 카테고리를 포괄(encompass)하고;
    상기 제2 도메인은 제2 안전 카테고리를 포괄하는 것인, 방법.
  19. 제16항에 있어서,
    상기 제1 컴퓨팅 디바이스는 제1 시스템 온 칩(SoC)을 포함하고;
    상기 제2 로컬 컴퓨팅 디바이스는 제2 SoC를 포함하는 것인, 방법.
  20. 제16항에 있어서,
    상기 제1 도메인은 하나 이상의 섀시 성능, 또는 하나 이상의 드라이브트레인 성능, 또는 양자를 포괄하는 것인, 방법.
KR1020217031957A 2019-04-12 2020-04-10 차량 내 컴퓨팅 시스템을 위한 탄력적 컴퓨팅 KR20210139307A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962833598P 2019-04-12 2019-04-12
US62/833,598 2019-04-12
PCT/US2020/027808 WO2020210729A1 (en) 2019-04-12 2020-04-10 Elastic computing for in-vehicle computing systems

Publications (1)

Publication Number Publication Date
KR20210139307A true KR20210139307A (ko) 2021-11-22

Family

ID=72750911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217031957A KR20210139307A (ko) 2019-04-12 2020-04-10 차량 내 컴퓨팅 시스템을 위한 탄력적 컴퓨팅

Country Status (6)

Country Link
US (1) US20220161744A1 (ko)
EP (1) EP3953814A4 (ko)
JP (1) JP2022526178A (ko)
KR (1) KR20210139307A (ko)
CN (1) CN113678103A (ko)
WO (1) WO2020210729A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314495B2 (en) 2020-03-30 2022-04-26 Amazon Technologies, Inc. In-vehicle synthetic sensor orchestration and remote synthetic sensor service
US11930514B2 (en) * 2020-06-26 2024-03-12 Qualcomm Incorporated Position-aware resource allocation for a wireless in-vehicle network
WO2022136734A1 (en) * 2020-12-22 2022-06-30 Sensible 4 Oy Distributed data processing task allocation systems and methods for autonomous vehicles
US20220198839A1 (en) * 2020-12-22 2022-06-23 Sensible 4 Oy Distributed data processing task allocation systems and methods for autonomous vehicles
US11743334B2 (en) * 2021-03-31 2023-08-29 Amazon Technologies, Inc. In-vehicle distributed computing environment
US11974253B2 (en) * 2021-04-26 2024-04-30 Qualcomm Incorporated Smart resource management for low latency use case
DE102022200754A1 (de) * 2022-01-24 2023-07-27 Continental Automotive Technologies GmbH Verfahren zum Erzeugen eines Fähigkeitenprofils einer Recheneinheit

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
KR20100041309A (ko) * 2008-10-14 2010-04-22 삼성전자주식회사 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템
US9142004B2 (en) * 2012-12-20 2015-09-22 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines
JP6142008B2 (ja) * 2013-03-15 2017-06-07 インテル コーポレイション モバイル・コンピューティング・デバイス技術、並びに同技術を用いるシステム及び方法
US9226115B2 (en) * 2013-06-20 2015-12-29 Wipro Limited Context-aware in-vehicle dashboard
EP3092560B1 (en) * 2014-01-06 2019-05-08 Johnson Controls Technology Company Vehicle with multiple user interface operating domains
US20160328254A1 (en) * 2014-01-06 2016-11-10 Johnson Controls Technology Company Vehicle with multiple user interface operating domains
WO2018193439A1 (en) * 2017-04-19 2018-10-25 Osr Enterprises Ag Device, system and method for processing data
US10708846B2 (en) * 2015-11-11 2020-07-07 Nokia Solutions And Networks Oy Mechanism for optimizing communication network setting for moving communication elements
US10232709B2 (en) * 2016-02-19 2019-03-19 Xevo Inc. Dynamic application execution for automobile and cloud hybrid environments
US9813542B1 (en) * 2016-05-19 2017-11-07 GM Global Technology Operations LLC Adaptive virtualization of a networked-resource between a vehicle and a peripheral device
US10108459B2 (en) * 2016-09-12 2018-10-23 Bmc Software, Inc. System and method to dynamically allocate varying processing capacity entitlements based on workload importance
US10332320B2 (en) * 2017-04-17 2019-06-25 Intel Corporation Autonomous vehicle advanced sensing and response
US10410115B2 (en) * 2017-04-28 2019-09-10 Intel Corporation Autonomous machines through cloud, error corrections, and predictions
US10885781B2 (en) * 2017-09-25 2021-01-05 Blackberry Limited Method and system for a proxy vehicular intelligent transportation system station
US10956211B2 (en) * 2019-02-25 2021-03-23 GM Global Technology Operations LLC Method and apparatus of allocating automotive computing tasks to networked devices with heterogeneous capabilities
US10992752B2 (en) * 2019-03-28 2021-04-27 Intel Corporation Sensor network configuration mechanisms
US11171831B2 (en) * 2019-03-30 2021-11-09 Intel Corporation Technologies for autonomous edge compute instance optimization and auto-healing using local hardware platform QoS services

Also Published As

Publication number Publication date
WO2020210729A1 (en) 2020-10-15
US20220161744A1 (en) 2022-05-26
EP3953814A1 (en) 2022-02-16
EP3953814A4 (en) 2022-12-14
JP2022526178A (ja) 2022-05-23
CN113678103A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
US20220161744A1 (en) Elastic computing for in-vehicle computing systems
US9868447B2 (en) Controlling vehicle systems with mobile devices
US20160140776A1 (en) Communications based on vehicle diagnostics and indications
US20190356552A1 (en) System and method for generating a global state information for a vehicle based on vehicle operator information and other contextuals
US20120053754A1 (en) Electronic communications and control module
CN106537335B (zh) 操作系统启动加速
TW201904312A (zh) 混合車載資通訊方法及其電子裝置
CN112947235A (zh) 一种基于X9平台和Xen技术的座舱域控制器系统及应用方法
EP4310668A1 (en) Method and apparatus for upgrading terminal
CN115334110A (zh) 用于车辆控制的系统架构、通信方法、车辆、介质及芯片
US20200283004A1 (en) Method and system for overriding vehicle systems based on special conditions
EP3167363B1 (en) Operating system startup acceleration
CN106663009B (zh) 操作系统启动加速
JP7054844B2 (ja) 車両、情報提示システム
CN118269850A (zh) 音频处理装置、车辆、音频处理方法及计算机程序产品
CN117917348A (zh) 用于车辆自主子系统的中间件软件层
WO2023096659A1 (en) Method for power states in vehicles
CN116700077A (zh) 一种车辆的网络拓扑结构及使用该拓扑结构的车辆
CN113165664A (zh) 设置于车辆的装置及其控制方法
CN116552424A (zh) 一种控制系统和车辆

Legal Events

Date Code Title Description
A201 Request for examination