JP2022191516A - 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出 - Google Patents

車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出 Download PDF

Info

Publication number
JP2022191516A
JP2022191516A JP2022172935A JP2022172935A JP2022191516A JP 2022191516 A JP2022191516 A JP 2022191516A JP 2022172935 A JP2022172935 A JP 2022172935A JP 2022172935 A JP2022172935 A JP 2022172935A JP 2022191516 A JP2022191516 A JP 2022191516A
Authority
JP
Japan
Prior art keywords
ecu
software
controller
delta file
vehicle
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2022172935A
Other languages
English (en)
Other versions
JP7407261B2 (ja
Inventor
フォックス ゾハール
Fox Zohar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aurora Labs Ltd
Original Assignee
Aurora Labs Ltd
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 Aurora Labs Ltd filed Critical Aurora Labs Ltd
Publication of JP2022191516A publication Critical patent/JP2022191516A/ja
Priority to JP2023212870A priority Critical patent/JP2024020663A/ja
Application granted granted Critical
Publication of JP7407261B2 publication Critical patent/JP7407261B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0225Failure correction strategy
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • B60W50/045Monitoring control system parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/4401Bootstrapping
    • 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/445Program loading or initiating
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • B60W2050/021Means for detecting failure or malfunction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】車両ECUソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出の提供。【解決手段】開示される実施形態は、車両内の電子制御ユニット(ECU)上のソフトウェアを更新するための更新パッケージを生成するステップに関する。動作は、車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスするステップと、車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスするステップと、複数の属性と対応する複数の属性を比較するステップと、比較において決定された複数の属性と対応する複数の属性との間の差異を表すデルタファイルを生成するステップと、デルタファイルをECUに提供するステップであってデルタファイルはデルタファイルが車両内のECU内で実行することを有効にするECU内のスタートアップコードによって処理されるように構成されるステップとを含む。【選択図】なし

Description

(関連出願の相互参照)
本願は、両方とも、参照することによってその全体として本明細書に組み込まれる、2017年7月25日に出願された、米国仮特許出願第62/536,767号および2017年9月19日に出願された、米国仮特許出願第62/560,224号の優先権を主張する。
現代の車両は、多くの電子制御ユニット(ECU)を利用して、エンジン、パワートレイン、トランスミッション、ブレーキ、サスペンション、オンボードエンターテインメントシステム、通信システム、および同等物等のコンポーネントの動作を制御する。ECUは、パワーステアリングから、制動、加速まで、現代の車両の基本動作を制御する。加えて、ECUは、車両内の多数の付加装置および分析特徴を制御する。例えば、いくつかの車は、保険料を決定するために保険企業に提供され得る、運転データを収集および分析するように構成される、ECUを装備し得る。いくつかの車は、運転体験を向上させるように構成される、ECUを装備し得、いくつかの車は、高度な(または自動化された)運転補助を提供するように構成される、ECUを装備し得る。
ECUが、複雑性および精巧さを継続して増加させるにつれて、ECU上におけるソフトウェア性能の管理、アップグレード、およびバグ修正が、課題となっている。現在、平均的車内には、約60~70のECUが存在する(高級車では、約180のECU)。これらのECUは、数千万本ものコードに対応する。コードの維持は、ますます困難になっている。さらに、高度に精巧なソフトウェアは、ソフトウェアバグ、グリッチ、および較正問題等の脆弱性をより受けやすい傾向にある。ECUの製造業者または開発者は、これらの脆弱性が発見されるとすぐに、それらを速やかに修正することを所望し得る。
ECU内のさらなるタイプの脆弱性は、ECUエラーまたは故障に関する。ECUエラーは、例えば、ランタイムエラー、スタックオーバーフロー、スタックアンダーフロー等であり得る。ECU故障は、例えば、ECUの正常または予期される動作における逸脱であり得る(例えば、時間間隔あたりある回数だけ機能を実施するが、次いで、突然または経時的にゆっくりとのいずれかにおいて、異なる回数だけ機能を実施することに「ドリフト」する)。ECUソフトウェアの実行におけるゆっくりと実装されるドリフトは、ECUの動作への変更の任意の明白な兆候の所与の欠如を直ちに検出することが難しいため、特に困難な問題となり得る。
影響される車両におけるこれらの脆弱性に対処するための1つのアプローチは、リコールを発行することである。しかしながら、リコールは、時間がかかり得、それらは、影響される車両がタイムリーな様式において修正されるであろうことのいかなる保証も提供しない。代替として、製造業者または開発者は、オンボード診断(OBD)ポートを通して、または無線通信を経由して(例えば、種々のタイプの無線通信技法を使用して)、修正を影響される車両に提供するように試み得る。それにもかかわらず、OBDポート自体が、車両に対する攻撃可能面となり、無線通信を経由した修正は、典型的には、非効率的で、車両所有者にとって不便であって、さらなる付加的バグを導入しやすい。
さらに、OBDおよび無線通信を経由した更新技法の現在の試みは、依然として、時間および空間効率の観点から限界を有する。例えば、無線通信を経由した更新技法の現在の試みは、製造業者が、ECUソフトウェア全体の新しいバージョンを置換パッケージとして影響される車両に配布することを要求する。置換パッケージが、影響される車両によって受信されると、影響される車両は、置換パッケージをスペアメモリ空間(すなわち、ECUによって使用されていないメモリ空間)の中に記憶し、ECUソフトウェアの現在のバージョンをECUによって使用されるメモリ空間から消去し、置換パッケージをスペアメモリ空間からECUによって使用されるメモリ空間の中にコピーし、ECUを再起動することを要求され、したがって、ECUソフトウェアの新しいバージョンをロードすることができる。これは、有意な記憶空間限界およびECUの機能の中断に起因して、ECUにおいては事実上不可能である。ECUは、既存のソフトウェアおよびデータですでにほぼ満杯であって、新しいソフトウェアまたはデータのための非常に限定された利用可能な記憶空間を有する。さらに、新しいソフトウェアをECUに提供することと関連付けられた有意なコスト限界が存在する。さらに、ECUの処理フローの中断は、ECUの役割および車両の条件に応じて、不便または非常に危険であり得る。
したがって、前述の欠点を伴わずに、ソフトウェアを更新するための更新パッケージを生成し、ECU上で受信および処理するための技術的ソリューションの必要性が存在する。特に、無線を経由して、専用クライアントをECU上に伴わずに、ソフトウェアモジュールまたはパッケージ全体ではなく、差分ソフトウェアを用いて車両を更新するためのソリューションの必要がある。さらに、ソリューションは、有意な付加的メモリ使用量またはECU自体の任意の休止時間の要件を有するべきではない。加えて、そのようなソリューションは、ECUのメモリを再プログラムすることを要求すべきではない。さらに、そのようなソリューションは、ソフトウェアモジュール全体をダウンロードする必要なく、メモリを再プログラム(高価であって、時間がかかり、および破壊的であり得る)せずに、再び、有意なメモリ要件またはECUの任意の休止時間を伴わずに、ECU上のソフトウェアバージョンを以前のバージョンにロールバックすることを可能にすべきである。
また、記憶または伝送するために大量のデータスループットを消費しないであろう、異常検出のためのデータを生成するための技術的ソリューションの必要性が存在する。そのような技法は、それが必要とする全てのそのリソースを用いて、付加的要求されるリソースを伴わずに、ECU上の主要なアプリケーションを起動させたまま保つための限られた実行性能を提供すべきである。さらに、アクションのためのコールのみを応答性アクションを実施するための制御センタまたはサーバに送信する(例えば、機械学習を通した異常検出に基づいて)、分散型車両アーキテクチャソリューションを利用することが有利であろう。
さらに、車両内のECU間の依存性に基づいて生じる問題のための技術的ソリューションの必要がある。例えば、1つのECU上のソフトウェアが、更新されると、ECUが車両内の他のECUと通信することを不可能にさせ得る。これは、例えば、ECUへの更新が、そのネットワークアドレス、着信または発信通信ポリシ、データ通信のフォーマットまたはペイロード、通信のタイミング、通信のプロトコル、またはその機能性の種々の他の属性に影響を及ぼすときに生じ得る。したがって、ECUへのソフトウェア更新が、更新によって影響され得る全てのECU上で協調および実施され得るように、ECU間の依存性を管理することが可能であることが有利であろう。
開示される実施形態は、車両内の電子制御ユニット(ECU)上のソフトウェアを更新するための更新パッケージを生成するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、ソフトウェアを更新するための更新パッケージを生成するための動作を車両内のECU上で実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスするステップと、車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスするステップと、複数の属性と対応する複数の属性を比較するステップと、比較において決定された複数の属性と対応する複数の属性との間の差異を表すデルタファイルを生成するステップと、デルタファイルをECUに提供するステップであって、デルタファイルは、デルタファイルが車両内のECU内で実行することを有効にする、ECU内のスタートアップコードによって処理されるように構成される、ステップとを含んでもよい。
開示される実施形態によると、スタートアップコードは、デルタファイルの中に統合される。
開示される実施形態によると、スタートアップコードは、デルタファイルがECUによって受信される前に、ECU上にインストールされる。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態によると、スタートアップコードは、ECUのプログラムカウンタを更新し、デルタファイル内に含有される命令を実行するように構成される。
開示される実施形態によると、デルタファイルは、ソフトウェア更新によって参照される変数の値を表す、変数データを備える。
開示される実施形態によると、スタートアップコードは、変数データをデルタファイルから抽出し、変数データをECUにアクセス可能なメモリの中に設置するように構成される。
開示される実施形態によると、デルタファイルは、ECU内のメモリアドレスを更新するためのコードを備える。
開示される実施形態によると、スタートアップコードは、メモリアドレスを更新するためのコードを抽出し、ECU内のメモリアドレスを更新するように構成される。
開示される実施形態によると、ECU上のソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECU上に記憶されるべきソフトウェア更新の複数の属性は、VFSによって管理される複数の機能ユニットのうちの少なくとも1つを備える。
開示される実施形態によると、命令はさらに、第1のグリッドをソフトウェア更新に適用するステップと、第2のグリッドをECU上に記憶される現在のソフトウェアに適用するステップと、第1および第2のグリッドの比較に基づいて、複数の属性および対応する複数の属性を識別するステップとを含む。
開示される実施形態によると、第1のグリッドは、ソフトウェア更新と関連付けられたバイナリデータと、ソフトウェア更新と関連付けられたソース属性と、ソフトウェア更新と関連付けられたマップファイルとのうちの少なくとも1つを含む1つ以上の次元におけるソフトウェア更新を表す。
開示される実施形態によると、複数の属性は、少なくとも部分的に、ソフトウェア更新を開発するために使用されるプログラミング言語に基づいて識別される。
開示される実施形態によると、複数の属性は、少なくとも部分的に、ソフトウェア更新のバイナリファイル分解能に基づいて識別される。
開示される実施形態によると、複数の属性は、少なくとも部分的に、ソフトウェア更新と関連付けられたマップファイルに基づいて識別される。
開示される実施形態によると、ソフトウェア更新は、モノリシックファイルである。
開示される実施形態によると、ソフトウェア更新は、他のファイルに相互依存するファイルである。
開示される実施形態によると、動作は、デルタファイルをECUに提供する前に、ECUのために提供されているデルタファイルに基づいて、任意の相互依存ECUが更新されるべきであるかどうかを決定するために依存性システムをチェックするステップを含む。
開示される実施形態によると、動作はさらに、付加的デルタファイルを相互依存ECUに自動的に提供し、相互依存ECUに関するソフトウェア更新を実施するステップを含む。
開示される実施形態によると、ソフトウェアを更新するためのシステムが、車両内のECU上に実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスするステップと、車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスするステップと、複数の属性と対応する複数の属性を比較するステップと、比較において決定された複数の属性と対応する複数の属性との間の差異を表すデルタファイルを生成するステップと、デルタファイルをECUに提供するステップであって、デルタファイルは、デルタファイルが車両内のECU内で実行することを有効にする、ECU内のスタートアップコードによって処理されるように構成される、ステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態によると、ソフトウェアを更新するための方法が、車両内のECU上に実装されてもよい。本方法は、車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスするステップと、車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスするステップと、複数の属性と対応する複数の属性を比較するステップと、比較において決定された複数の属性と対応する複数の属性との間の差異を表すデルタファイルを生成するステップと、デルタファイルをECUに提供するステップであって、デルタファイルは、デルタファイルが車両内のECU内で実行することを有効にする、ECU内のスタートアップコードによって処理されるように構成される、ステップとを含んでもよい。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態は、車両内でデルタファイルを受信および統合するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、車両内でデルタファイルを受信および統合するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、車両内の電子制御ユニット(ECU)において、デルタファイルを受信するステップであって、デルタファイルは、ECU上のソフトウェアのためのソフトウェア更新に対応する複数のデルタおよびデルタファイルをECU内で実行するためのスタートアップコードを備える、ステップと、スタートアップコードに基づいて、デルタファイルをECU内で実行するステップと、ECU内のメモリアドレスを更新し、デルタファイルからの複数のデルタに対応させるステップとを含んでもよい。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態によると、デルタファイルは、ECUによって実行されるべき位置独立実行可能コードセグメントを備える。
開示される実施形態によると、スタートアップコードは、ECUのプログラムカウンタを更新し、デルタファイル内に含有される命令を実行するように構成される。
開示される実施形態によると、スタートアップコードは、ECU上への記憶のために、データをデルタファイルから抽出するように構成される。
開示される実施形態によると、スタートアップコードは、デルタファイルをデルタファイルと関連付けられた仮想ファイルシステム内の具体的機能にリンクさせるように構成される。
開示される実施形態によると、デルタファイルは、ECU内のメモリアドレスを更新するためのコードを備える。
開示される実施形態によると、スタートアップコードは、メモリアドレスを更新するためのコードを抽出し、ECU内のメモリアドレスを更新するように構成される。
開示される実施形態によると、デルタファイルは、ECUと関連付けられたフラッシュメモリに書き込まれる。
開示される実施形態によると、デルタファイルは、フラッシュメモリからECUと関連付けられたランダムアクセスメモリにブートストラップされる。
開示される実施形態によると、デルタファイルは、ECUの継続される動作に影響を及ぼさずに、ECUによって実行可能である。
開示される実施形態によると、デルタファイルは、ECUをリブートせずに実行可能である。
開示される実施形態によると、デルタファイルを車両内のECUの中に受信および統合するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、車両内のECUにおいて、デルタファイルを受信するステップであって、デルタファイルは、ECU上のソフトウェアのためのソフトウェア更新に対応する複数のデルタおよびECU内でデルタファイルを実行するためのスタートアップコードを備える、ステップと、スタートアップコードに基づいて、デルタファイルをECU内で実行するステップと、ECU内のメモリアドレスを更新し、デルタファイルからの複数のデルタに対応するステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態によると、デルタファイルは、車両のECUによって実行されるべき位置独立実行可能コードセグメントを備える。
開示される実施形態によると、デルタファイルは、ECU内のメモリのコンテンツを削除すべきであるかどうかを決定するためのコードを備える。
開示される実施形態によると、スタートアップコードは、ECUに、ECU内のメモリの特定のコンテンツを削除するように命令するように構成される。
開示される実施形態によると、ECU上のソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、デルタファイルは、ECUの継続される動作に影響を及ぼさずに実行可能である。
開示される実施形態によると、デルタファイルを車両内のECUの中に受信および統合するための方法が、実装される。本方法は、車両内のECUにおいて、デルタファイルを受信するステップであって、デルタファイルは、ECU上のソフトウェアのためのソフトウェア更新に対応する複数のデルタおよびデルタファイルをECU内で実行するためのスタートアップコードを備える、ステップと、スタートアップコードに基づいて、デルタファイルをECU内で実行するステップと、ECU内のメモリアドレスを更新し、デルタファイルからの複数のデルタに対応させるステップとを含んでもよい。
開示される実施形態は、車両のECUが動作している間、電子制御ユニット(ECU)ソフトウェアへの更新を実施するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、車両のECUが動作している間、ECUソフトウェアへの更新を実施するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、車両のECUが動作している間、車両において、ECUソフトウェアのためのソフトウェア更新ファイルを受信するステップと、ECUが動作している間、ソフトウェア更新ファイルをECUのメモリ内の第1のメモリ場所の中に書き込むと同時に、ECUのメモリ内の第2のメモリ場所内で既存のコードのコードセグメントを実行するステップと、ソフトウェア更新ファイルに基づいて、ECUのメモリ内の第2のメモリ場所内で現在実行されているコードセグメントの実行を中断せずに、ECUのメモリと関連付けられた複数のメモリアドレスを更新するステップとを含んでもよい。
開示される実施形態によると、ECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUのメモリと関連付けられた複数のメモリアドレスを更新するステップは、VFSを通して管理される複数の機能ユニットの複数のメモリアドレスを更新するステップを含む。
開示される実施形態によると、ソフトウェア更新ファイルは、デルタファイルである。
開示される実施形態によると、デルタファイルは、デルタファイルの中に統合され、デルタファイルをECU内で実行するために構成される、スタートアップコードを備える。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態によると、命令はさらに、ソフトウェア更新ファイルをECUの第1のメモリ場所の中に書き込む前に、ランタイムライブラリを初期化するステップを含んでもよい。
開示される実施形態によると、スタートアップコードは、ECUのプログラムカウンタを更新し、デルタファイル内に含有される命令を実行するように構成される。
開示される実施形態によると、デルタファイルは、ソフトウェア更新によって参照される変数の値を表す、変数データを備える。
開示される実施形態によると、スタートアップコードは、変数データをデルタファイルから抽出し、変数データをECUにアクセス可能なランダムアクセスメモリの中に設置するように構成される。
開示される実施形態によると、命令はさらに、ソフトウェア更新によって参照される変数の前の値を表すデータを削除するステップを含んでもよい。
開示される実施形態によると、デルタファイルは、ECUのメモリ内のメモリアドレスを更新するためのコードを備える。
開示される実施形態によると、スタートアップコードは、メモリアドレスを更新するためのコードを抽出し、ECUのメモリ内のメモリアドレスを更新するように構成される。
開示される実施形態によると、命令はさらに、ソフトウェア更新を完了した後、ECUのメモリをデフラグメントするステップを含んでもよい。
開示される実施形態によると、車両のECUが動作している間、ECUソフトウェアへの更新を実施するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、車両のECUが動作している間、車両において、ECUソフトウェアのためのソフトウェア更新ファイルを受信するステップと、ECUが動作している間、ソフトウェア更新ファイルをECUのメモリ内の第1のメモリ場所の中に書き込むと同時に、ECUのメモリ内の第2のメモリ場所内の既存のコードのコードセグメントを実行するステップと、ソフトウェア更新ファイルに基づいて、ECUのメモリ内の第2のメモリ場所内で現在実行されているコードセグメントの実行を中断せずに、ECUのメモリと関連付けられた複数のメモリアドレスを更新するステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、ECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUのメモリと関連付けられた複数のメモリアドレスを更新するステップは、VFSを通して管理される複数の機能ユニットの複数のメモリアドレスを更新するステップを含む。
開示される実施形態によると、車両のECUが動作している間、ECUソフトウェアへの更新を実施するための方法が、実装されてもよい。本方法は、車両のECUが動作している間、車両において、ECUソフトウェアのためのソフトウェア更新ファイルを受信するステップと、ECUが動作している間、ソフトウェア更新ファイルをECUのメモリ内の第1のメモリ場所の中に書き込むと同時に、ECUのメモリ内の第2のメモリ場所内の既存のコードのコードセグメントを実行するステップと、ソフトウェア更新ファイルに基づいて、ECUのメモリ内の第2のメモリ場所内で現在実行されているコードセグメントの実行を中断せずに、ECUのメモリと関連付けられた複数のメモリアドレスを更新するステップとを含んでもよい。
開示される実施形態によると、ECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUのメモリと関連付けられた複数のメモリアドレスを更新するステップは、VFSを通して管理される複数の機能ユニットの複数のメモリアドレスを更新するステップを含む。
開示される実施形態は、車両電子制御ユニット(ECU)ソフトウェアバージョンを調節するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、車両電子制御ユニット(ECU)ソフトウェアバージョンを調節するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行に車両のECUを調節するためのプロンプトを受信するステップと、プロンプトに応答して、ECUソフトウェアの第2のバージョンに対応するデルタファイルに基づいて、車両内のECU上のECUソフトウェアの第2のバージョンを実行のために構成するステップと、プロンプトに応答して、車両内のECU上のECUソフトウェアの第1のバージョンを実行不可能となるように構成するステップとを含んでもよい。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに続いて展開される。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに先立って展開される。
開示される実施形態によると、ECU上のECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUソフトウェアの第1のバージョンを実行不可能になるように構成するステップはさらに、VFSによって管理される1つ以上の機能ユニットに対応するECU内のメモリアドレスを更新するステップを含む。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、VFSによって無効にされる1つ以上の機能ユニットを有する、ECUソフトウェアの第1のバージョンである。
開示される実施形態によると、ECUソフトウェアの第2のバージョンに対応するデルタファイルは、ECU上に記憶される。
開示される実施形態によると、デルタファイルは、デルタファイルの中に統合され、デルタファイルをECU内で実行するために構成される、スタートアップコードを備える。
開示される実施形態によると、スタートアップコードは、デルタファイルのランタイムライブラリを初期化するように構成される。
開示される実施形態によると、命令はさらに、プロンプトの受信に応じて、ECUソフトウェアの第2のバージョンに対応するデルタファイル内に含まれるスタートアップコードを実行し、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するステップを含む。
開示される実施形態によると、命令はさらに、ECUのメモリの利用量が閾値を上回ることを決定するステップと、削除のためのECUのメモリの具体的コンテンツを識別するステップとを含む。
開示される実施形態によると、命令はさらに、削除を完了した後、ECUのメモリをデフラグメントするステップを含む。
開示される実施形態によると、車両ECUソフトウェアバージョンを調節するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行に車両のECUを調節するためのプロンプトを受信するステップと、プロンプトに応答して、ECUソフトウェアの第2のバージョンに対応するデルタファイルに基づいて、車両内のECU上のECUソフトウェアの第2のバージョンを実行のために構成するステップと、プロンプトに応答して、車両内のECU上のECUソフトウェアの第1のバージョンを実行不可能となるように構成するステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに続いて展開される。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに先立って展開される。
開示される実施形態によると、ECU上のECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUソフトウェアの第1のバージョンを実行不可能になるように構成するステップは、VFSによって管理される1つ以上の機能ユニットに対応するECU内のメモリアドレスを更新するステップを含んでもよい。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、VFSによって無効にされる1つ以上の機能ユニットを有する、ECUソフトウェアの第1のバージョンである。
開示される実施形態によると、ECUソフトウェアの第2のバージョンに対応するデルタファイルは、ECU上に記憶される。
開示される実施形態によると、車両ECUソフトウェアバージョンを調節するための方法が、実装されてもよい。本方法は、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行に車両のECUを調節するためのプロンプトを受信するステップと、プロンプトに応答して、ECUソフトウェアの第2のバージョンに対応するデルタファイルに基づいて、車両内のECU上のECUソフトウェアの第2のバージョンを実行のために構成するステップと、プロンプトに応答して、車両内のECU上のECUソフトウェアの第1のバージョンを実行不可能となるように構成するステップとを含んでもよい。
開示される実施形態は、車両内の電子制御ユニット(ECU)異常を識別するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、車両内のECU異常を識別するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、車両内において、ECUのリアルタイム処理アクティビティを表すデータを監視するステップと、車両内において、ECUの処理アクティビティに関連する履歴データにアクセスするステップであって、履歴データは、ECUの予期される処理アクティビティを表す、ステップと、車両内において、リアルタイム処理アクティビティデータと履歴データを比較し、ECUのリアルタイム処理アクティビティ内の少なくとも1つの異常を識別するステップと、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装するステップとを含んでもよい。
開示される実施形態によると、制御アクションは、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するためのプロンプトを発行するステップを含む。
開示される実施形態によると、ECU上のソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するステップは、ECUソフトウェアの第2のバージョンに対応するデルタファイルに基づいて、VFSによって管理される1つ以上の機能ユニットのメモリアドレスを更新するステップを含む。
開示される実施形態によると、命令はさらに、ECUの動作を監視し、履歴データを生成するステップを含む。
開示される実施形態によると、監視、アクセス、比較、および実装は、車両内のオーケストレータ内で生じ、オーケストレータは、ECUと別個である。
開示される実施形態によると、オーケストレータは、車両内の複数のECUのための監視、アクセス、比較、および実装を実施するように構成される。
開示される実施形態によると、少なくとも1つの異常は、ECUによって使用される具体的メモリ場所に対応する。
開示される実施形態によると、少なくとも1つの異常は、ECUによって使用されるメモリ場所の具体的シーケンスに対応する。
開示される実施形態によると、少なくとも1つの異常は、ECU内外のデータフロー内の少なくとも1つのピークに対応する。
開示される実施形態によると、少なくとも1つの異常は、ECUのプロセッサによるデータ処理内の少なくとも1つのピークに対応する。
開示される実施形態によると、少なくとも1つの異常は、ECUの電力消費における少なくとも1つの異常に対応する。
開示される実施形態によると、制御アクションは、ECUと関連付けられたアラートを送信するステップを含む。
開示される実施形態によると、制御アクションは、ECUから送信される命令をブロックするステップを含む。
開示される実施形態によると、制御アクションは、ECU上で起動するECUソフトウェアのバージョンのECUソフトウェアの以前のバージョンへのロールバックを含む。
開示される実施形態によると、車両内のECU異常を識別するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、車両内において、ECUのリアルタイム処理アクティビティを表すデータを監視するステップと、車両内において、ECUの処理アクティビティに関連する履歴データにアクセスするステップであって、履歴データは、ECUの予期される処理アクティビティを表す、ステップと、車両内において、リアルタイム処理アクティビティデータと履歴データを比較し、ECUのリアルタイム処理アクティビティ内の少なくとも1つの異常を識別するステップと、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装するステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、制御アクションは、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するためのプロンプトを発行するステップを含む。
開示される実施形態によると、監視、アクセス、比較、および実装は、車両内のオーケストレータ内で生じ、オーケストレータは、ECUと別個である。
開示される実施形態によると、オーケストレータは、車両内の複数のECUのための監視、アクセス、比較、および実装を実施するように構成される。
開示される実施形態によると、車両内のECU異常を識別するための方法が、実装されてもよい。本方法は、車両内において、ECUのリアルタイム処理アクティビティを表すデータを監視するステップと、車両内において、ECUの処理アクティビティに関連する履歴データにアクセスするステップであって、履歴データは、ECUの予期される処理アクティビティを表す、ステップと、車両内において、リアルタイム処理アクティビティデータと履歴データを比較し、ECUのリアルタイム処理アクティビティ内の少なくとも1つの異常を識別するステップと、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装するステップとを含んでもよい。
開示される実施形態は、車両内の電子制御ユニット(ECU)異常を識別するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、車両内のECU異常を識別するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、ECUのリアルタイム処理アクティビティを表すデータを監視するステップと、機能性がECUに匹敵すると見なされる少なくとも1つの他のECUの処理アクティビティに関連する匹敵するデータを受信するステップと、リアルタイム処理アクティビティデータと匹敵するデータを比較し、ECUのリアルタイム処理アクティビティ内の少なくとも1つの異常を識別するステップと、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装するステップとを含んでもよい。
開示される実施形態によると、制御アクションは、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するためのプロンプトを発行するステップを含む。
開示される実施形態によると、ECU上のソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するステップは、ECUソフトウェアの第2のバージョンに対応するデルタファイルに基づいて、VFSによって管理される1つ以上の機能ユニットのメモリアドレスを更新するステップを含む。
開示される実施形態によると、匹敵するデータは、ECUに匹敵すると見なされる複数の他のECUの処理アクティビティに関連するリアルタイムで取得されるデータを備える。
開示される実施形態によると、匹敵するデータは、ECUに匹敵すると見なされる複数の他のECUの処理アクティビティに関連する以前に集められたデータを備える。
開示される実施形態によると、匹敵するデータを受信するステップはさらに、ECU上で起動するECUソフトウェアと関連付けられたルールに基づいて、匹敵するデータを取得するステップを含む。
開示される実施形態によると、匹敵するデータを受信するステップはさらに、ECU上で起動するECUソフトウェアの実行の既知の有効シーケンスに基づいて、匹敵するデータを取得するステップを含む。
開示される実施形態によると、匹敵するデータを受信するステップはさらに、ECU上で起動するECUソフトウェアの実行の既知の潜在的に悪意のあるシーケンスに基づいて、匹敵するデータを取得するステップを含む。
開示される実施形態によると、匹敵するデータを受信するステップはさらに、ECU上のECUソフトウェアと関連付けられたマップファイルに基づいて、匹敵するデータを取得するステップを含む。
開示される実施形態によると、匹敵するデータを受信するステップはさらに、観察データを他の車両から受信するステップと、観察データに基づいて、匹敵するデータを取得するステップとを含む。
開示される実施形態によると、少なくとも1つの異常は、ECUによって使用される具体的メモリ場所に対応する。
開示される実施形態によると、少なくとも1つの異常は、ECUによって使用されるメモリ場所の具体的シーケンスに対応する。
開示される実施形態によると、少なくとも1つの異常は、ECU内外のデータフロー内の少なくとも1つのピークに対応する。
開示される実施形態によると、少なくとも1つの異常は、ECUのプロセッサによるデータ処理内の少なくとも1つのピークに対応する。
開示される実施形態によると、少なくとも1つの異常は、ECUの電力消費における少なくとも1つの異常に対応する。
開示される実施形態によると、制御アクションは、ECUと関連付けられたアラートを送信するステップ、ECUから送信される命令をブロックするステップ、またはECU上で起動するソフトウェアのバージョンをソフトウェアの以前のバージョンにロールバックするステップのうちの少なくとも1つを含む。
開示される実施形態によると、車両内のECU異常を識別するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、ECUのリアルタイム処理アクティビティを表すデータを監視するステップと、機能性がECUに匹敵すると見なされる少なくとも1つの他のECUの処理アクティビティに関連する匹敵するデータを受信するステップと、リアルタイム処理アクティビティデータと匹敵するデータを比較し、ECUのリアルタイム処理アクティビティ内の少なくとも1つの異常を識別するステップと、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装するステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、制御アクションは、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するためのプロンプトを発行するステップを含む。
開示される実施形態によると、車両内のECU異常を識別するための方法が、実装されてもよい。本方法は、ECUのリアルタイム処理アクティビティを表すデータを監視するステップと、機能性がECUに匹敵すると見なされる少なくとも1つの他のECUの処理アクティビティに関連する匹敵するデータを受信するステップと、リアルタイム処理アクティビティデータと匹敵するデータを比較し、ECUのリアルタイム処理アクティビティ内の少なくとも1つの異常を識別するステップと、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装するステップとを含んでもよい。
開示される実施形態は、車両内の電子制御ユニット(ECU)ソフトウェアを好機をねらって更新するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、車両内の電子制御ユニット(ECU)ソフトウェアを好機をねらって更新するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、車両内のコントローラにおいて、車両内の少なくとも1つのECU上で起動するソフトウェアを更新する必要性を示す無線伝送を受信するステップと、車両の動作ステータスを監視し、車両がECUソフトウェア更新が禁止される第1の動作モードにあるかどうかを決定するステップと、動作ステータスが禁止されるとき、ECUソフトウェア更新を遅延させるステップと、車両の動作ステータスの監視を継続し、車両がECUソフトウェア更新が許可される第2の動作モードにあるかどうかを決定するステップと、車両が第2の動作モードにあると決定されると、遅延されたECUソフトウェア更新を用いて、少なくとも1つのECUの更新を有効にするステップとを含んでもよい。
開示される実施形態によると、車両の動作ステータスの監視を継続するステップは、事前に確立された間隔に従って、車両の動作ステータスを繰り返し監視するステップを含む。
開示される実施形態によると、命令はさらに、車両が第1の動作モードにあるとき、遅延された更新のために、ECUソフトウェア更新を車両上に位置するメモリ内に記憶するステップを含む。
開示される実施形態によると、遅延されたソフトウェア更新は、車両が第1の動作モードにあるとき、車両から遠隔のサーバ上に維持され、命令はさらに、車両が第2の動作モードにあるとき、メッセージを遠隔サーバに送信するステップと、メッセージに応答して、ECUソフトウェア更新を受信するステップと、車両が第2の動作モードにあるとき、車両内の少なくとも1つのECUに関するECUソフトウェア更新をインストールするステップとを含んでもよい。
開示される実施形態によると、第2の動作モードは、複数の所定の安全動作条件のうちの1つを備える。
開示される実施形態によると、第2の動作モードは、車両のパワーダウンステータスを備える。
開示される実施形態によると、第2の動作モードは、車両のアイドリングステータスを備える。
開示される実施形態によると、第2の動作モードは、強度の閾値を上回る無線通信強度の周期を備える。
開示される実施形態によると、第2の動作モードは、車両の事前に選択された環境条件を備える。
開示される実施形態によると、第2の動作モードは、閾値を下回るエラーレートを伴うネットワーク接続を備える。
開示される実施形態によると、ソフトウェアを更新する必要性を示す無線伝送は、更新がオーバライドステータスを伴うかどうかのインジケーションを備える。
開示される実施形態によると、命令はさらに、更新がオーバライドステータスとともに受信されるとき、車両が第1の動作モードにあるかどうかにかかわらず、ECUソフトウェアを更新するステップを含む。
開示される実施形態によると、ECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、車両内のECUソフトウェアを好機をねらって更新するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、車両内のコントローラにおいて、車両内の少なくとも1つのECU上で起動するソフトウェアを更新する必要性を示す無線伝送を受信するステップと、車両の動作ステータスを監視し、車両がECUソフトウェア更新が禁止される第1の動作モードにあるかどうかを決定するステップと、動作ステータスが禁止されるとき、ECUソフトウェア更新を遅延させるステップと、車両の動作ステータスの監視を継続し、車両がECUソフトウェア更新が許可される第2の動作モードにあるかどうかを決定するステップと、車両が第2の動作モードにあると決定されると、遅延されたECUソフトウェア更新を用いて、少なくとも1つのECUの更新を有効にするステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、車両の動作ステータスの監視を継続するステップは、事前に確立された間隔に従って、車両の動作ステータスを繰り返し監視するステップを含む。
開示される実施形態によると、ソフトウェアを更新する必要性を示す無線伝送は、更新がオーバライドステータスを伴うかどうかのインジケーションを備える。
開示される実施形態によると、1つ以上のプロセッサはさらに、更新がオーバライドステータスとともに受信されるとき、車両が第1の動作モードにあるかどうかにかかわらず、ECUソフトウェアを更新するステップの動作を実施するように構成される。
開示される実施形態によると、車両内のECUソフトウェアを好機をねらって更新するための方法が、実装されてもよい。本方法は、車両内のコントローラにおいて、車両内の少なくとも1つのECU上で起動するソフトウェアを更新する必要性を示す無線伝送を受信するステップと、車両の動作ステータスを監視し、車両がECUソフトウェア更新が禁止される第1の動作モードにあるかどうかを決定するステップと、動作ステータスが禁止されるとき、ECUソフトウェア更新を遅延させるステップと、車両の動作ステータスの監視を継続し、車両がECUソフトウェア更新が許可される第2の動作モードにあるかどうかを決定するステップと、車両が第2の動作モードにあると決定されると、遅延されたECUソフトウェア更新を用いて、少なくとも1つのECUの更新を有効にするステップとを含んでもよい。
開示される実施形態によると、車両の動作ステータスの監視を継続するステップは、事前に確立された間隔に従って、車両の動作ステータスを繰り返し監視するステップを含む。
開示される実施形態によると、ソフトウェアを更新する必要性を示す無線伝送は、更新がオーバライドステータスを伴うかどうかのインジケーションを備え、本方法はさらに、更新がオーバライドステータスとともに受信されるとき、車両が第1の動作モードにあるかどうかにかかわらず、ECUソフトウェアを更新するステップを含んでもよい。
開示される実施形態は、更新を少なくとも1つの車両に自動的に提供するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、更新を少なくとも1つの車両に自動的に提供するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、少なくとも1つの車両から遠隔のサーバにおいて、電子制御ユニット(ECU)アクティビティデータを少なくとも1つの車両から受信するステップであって、ECUアクティビティデータは、少なくとも1つの車両内のECUの実際の動作に対応するステップと、サーバにおいて、ECUアクティビティデータに基づいて、少なくとも1つの車両に影響を及ぼすソフトウェア脆弱性を決定するステップであって、ソフトウェア脆弱性は、受信されたECUアクティビティデータと予期されるECUアクティビティデータとの間の逸脱に基づいて決定される、ステップと、サーバにおいて、決定されたソフトウェア脆弱性に基づいて、ECUソフトウェア更新を識別するステップと、サーバから、識別されたECUソフトウェア更新に対応するソフトウェア更新を用いてECU上のソフトウェアを更新するように構成される、デルタファイルを送信するステップとを含んでもよい。
開示される実施形態によると、少なくとも1つの車両は、グループとして監視されている複数の車両を含む。
開示される実施形態によると、複数の車両は、共通ECUタイプを有する、第1のセットの車両を含む。
開示される実施形態によると、ソフトウェア脆弱性を決定するステップは、第1のセットの車両に影響を及ぼすソフトウェア脆弱性を決定するステップを含む。
開示される実施形態によると、ソフトウェア脆弱性を決定するステップはさらに、ECUアクティビティデータに基づいて、ソフトウェア脆弱性によって潜在的に影響される第2のセットの複数の車両を決定するステップを含む。
開示される実施形態によると、ソフトウェア更新を用いてECU上のソフトウェアを更新するように構成される、デルタファイルを送信するステップは、複数のデルタファイルを第1のセットおよび第2のセットの車両に送信するステップを含む。
開示される実施形態によると、ECUソフトウェア更新は、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節するためのプロンプトを備える。
開示される実施形態によると、命令はさらに、プロンプトに応答して、ECUソフトウェアの第2のバージョンに対応するデルタファイルに基づいて、ECU上のECUソフトウェアの第2のバージョンを実行のために構成するステップと、プロンプトに応答して、ECU上のECUソフトウェアの第1のバージョンを実行不可能になるように構成するステップとを含む。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに続いて展開される。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに先立って展開される。
開示される実施形態によると、ECU上のソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、VFSによって無効にされる1つ以上の機能ユニットを有する、ECUソフトウェアの第1のバージョンである。
開示される実施形態によると、デルタファイルは、デルタファイルの中に統合され、デルタファイルをECU内で実行するために構成される、スタートアップコードを備える。
開示される実施形態によると、ECUソフトウェア更新は、ECUに関するECUソフトウェア更新をインストールするためのインストールエージェントを備える。
開示される実施形態によると、ECUソフトウェア更新は、複数の車両内のECUを再較正するように構成される。
開示される実施形態によると、命令はさらに、ECUソフトウェア更新に応答して、少なくとも1つの車両のECUに、リブートするように命令するステップを含む。
開示される実施形態によると、更新を少なくとも1つの車両に自動的に提供するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、少なくとも1つの車両から遠隔のサーバにおいて、電子制御ユニット(ECU)アクティビティデータを少なくとも1つの車両から受信するステップであって、ECUアクティビティデータは、少なくとも1つの車両内のECUの実際の動作に対応するステップと、サーバにおいて、ECUアクティビティデータに基づいて、少なくとも1つの車両に影響を及ぼすソフトウェア脆弱性を決定するステップであって、ソフトウェア脆弱性は、受信されたECUアクティビティデータと予期されるECUアクティビティデータとの間の逸脱に基づいて決定される、ステップと、サーバにおいて、決定されたソフトウェア脆弱性に基づいて、ECUソフトウェア更新を識別するステップと、サーバから、識別されたECUソフトウェア更新に対応するソフトウェア更新を用いてECU上のソフトウェアを更新するように構成される、デルタファイルを送信するステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、少なくとも1つの車両は、共通ECUタイプを有する、第1のセットの車両を含み、1つ以上のプロセッサはさらに、第1のセットの車両に影響を及ぼすソフトウェア脆弱性を決定するステップと、ECUアクティビティデータに基づいて、ソフトウェア脆弱性によって潜在的に影響される第2のセットの車両を決定するステップとの動作を実施するように構成される。
開示される実施形態によると、1つ以上のプロセッサはさらに、ECUソフトウェア更新を第1のセットおよび第2のセットの車両に送信するステップの動作を実施するように構成される。
開示される実施形態によると、更新を少なくとも1つの車両に自動的に提供するための方法が、実装されてもよい。本方法は、少なくとも1つの車両から遠隔のサーバにおいて、電子制御ユニット(ECU)アクティビティデータを少なくとも1つの車両から受信するステップであって、ECUアクティビティデータは、少なくとも1つの車両内のECUの実際の動作に対応するステップと、サーバにおいて、ECUアクティビティデータに基づいて、少なくとも1つの車両に影響を及ぼすソフトウェア脆弱性を決定するステップであって、ソフトウェア脆弱性は、受信されたECUアクティビティデータと予期されるECUアクティビティデータとの間の逸脱に基づいて決定される、ステップと、サーバにおいて、ソフトウェア脆弱性に基づいて、ECUソフトウェア更新を識別するステップと、サーバから、識別されたECUソフトウェア更新に対応するソフトウェア更新を用いてECU上のソフトウェアを更新するように構成される、デルタファイルを送信するステップとを含んでもよい。
開示される実施形態は、電子制御ユニット(ECU)エラーまたは故障を遠隔監視サーバに報告するための非一過性コンピュータ可読媒体および方法を説明する。例えば、例示的実施形態では、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、ECUエラーまたは故障を遠隔監視サーバに報告するための動作を実施させる、命令を含む、非一過性コンピュータ可読媒体が、存在してもよい。動作は、車両の通信ネットワーク内のプロセッサにおいて、動作データを車両内の複数のECUから受信するステップであって、動作データは、複数のECUの複数のランタイム属性を示す、ステップと、機械学習プロセスを通して、動作データの統計的モデルを生成するステップであって、機械学習プロセスは、複数のランタイム属性に基づく、ステップと、ライブランタイム更新を車両の通信ネットワーク内の複数のECUから受信するステップと、ライブランタイム更新に基づいて、車両の通信ネットワーク内のECUと関連付けられたECUエラーを識別するステップであって、ECUエラーは、ライブランタイム更新と動作データの統計的モデルの比較によって決定され、動作データからの少なくとも1つの逸脱を識別する、ステップと、ライブランタイム更新に基づいて、車両からの報告を遠隔監視サーバに無線で送信するステップであって、報告は、ECUおよび識別されたECUエラーを識別する、ステップとを含んでもよい。
開示される実施形態によると、動作は、正しいECU動作を示す、ECUが行い得る1つ以上の正しい応答メッセージが存在することに応答して、要求メッセージをECUに送信するステップを含む。
開示される実施形態によると、ECUエラーは、ECUが要求メッセージに応答することに失敗することに基づいて、識別される。
開示される実施形態によると、ECUエラーは、ECUが要求メッセージに正しくなく応答することに基づいて、識別される。
開示される実施形態によると、ECUエラーは、ECU内の検出されたスタックオーバーフローに基づいて、識別される。
開示される実施形態によると、遠隔監視サーバは、多層モデルに従って動作し、階層のうちの1つは、車両から、遠隔監視サーバにおけるさらなる分析のために、ライブランタイム更新のサンプルを受信するステップを含む。
開示される実施形態によると、遠隔監視サーバは、多層モデルに従って動作し、階層のうちの1つは、車両から、ECU内の使用中のデルタファイルの識別を受信するステップを含む。
開示される実施形態によると、遠隔監視サーバは、多層モデルに従って動作し、階層のうちの1つは、ECUのソフトウェアバージョンを以前のソフトウェアバージョンにロールバックすることを決定するステップを含む。
開示される実施形態によると、遠隔監視サーバは、多層モデルに従って動作し、階層のうちの1つは、ECUのための安全モードを実装することを決定するステップを含む。
開示される実施形態によると、動作はさらに、識別されたECUエラーがECUに有害であるかどうかを決定するステップを含む。
開示される実施形態によると、機械学習プロセスは、ECUによるメモリ使用量のパターンに基づく。
開示される実施形態によると、機械学習プロセスは、ECU上のソフトウェアの実行のパターンに基づく。
開示される実施形態によると、ECU上のECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(VFS)を利用して、複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される。
開示される実施形態によると、動作はさらに、VFSを通して管理される複数の機能ユニットのうちの1つ以上のもののメモリアドレスを更新するステップを含む、ECU上のECUソフトウェアの第2のバージョンを実行のために構成するステップを含む。
開示される実施形態によると、ECUソフトウェアの第2のバージョンは、VFSによって無効にされる1つ以上の機能ユニットを有する、ECUソフトウェアの前のバージョンである。
開示される実施形態によると、動作データは、複数のECUの識別子を含む。
開示される実施形態によると、動作データは、複数のECUの最後の既知のポーリングを示すデータを含む。
開示される実施形態によると、命令はさらに、動作データおよびライブランタイム更新に基づいて、複数のECUに関する休止時間の確率を決定するステップを含む。
開示される実施形態によると、ECUエラーまたは故障を遠隔監視サーバに報告するためのシステムが、実装されてもよい。本システムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、車両の通信ネットワーク内のプロセッサにおいて、動作データを車両内の複数のECUから受信するステップであって、動作データは、複数のECUの複数のランタイム属性を示す、ステップと、機械学習プロセスを通して、動作データの統計的モデルを生成するステップであって、機械学習プロセスは、複数のランタイム属性に基づく、ステップと、ライブランタイム更新を車両の通信ネットワーク内の複数のECUから受信するステップと、ライブランタイム更新に基づいて、車両の通信ネットワーク内のECUと関連付けられたECUエラーを識別するステップであって、ECUエラーは、ライブランタイム更新と動作データの統計的モデルの比較によって決定され、動作データからの少なくとも1つの逸脱を識別する、ステップと、ライブランタイム更新に基づいて、車両からの報告を遠隔監視サーバに無線で送信するステップであって、報告は、ECUおよび識別されたECUエラーを識別する、ステップとの動作を実施させる、命令を有する、1つ以上のメモリとを備えてもよい。
開示される実施形態によると、ECUエラーまたは故障を遠隔監視サーバに報告するための方法が、実装されてもよい。本方法は、車両の通信ネットワーク内のプロセッサにおいて、動作データを車両内の複数のECUから受信するステップであって、動作データは、複数のECUの複数のランタイム属性を示す、ステップと、機械学習プロセスを通して、動作データの統計的モデルを生成するステップであって、機械学習プロセスは、複数のランタイム属性に基づく、ステップと、ライブランタイム更新を車両の通信ネットワーク内の複数のECUから受信するステップと、ライブランタイム更新に基づいて、車両の通信ネットワーク内のECUと関連付けられたECUエラーを識別するステップであって、ECUエラーは、ライブランタイム更新と動作データの統計的モデルの比較によって決定され、動作データからの少なくとも1つの逸脱を識別する、ステップと、ライブランタイム更新に基づいて、車両からの報告を遠隔監視サーバに無線で送信するステップであって、報告は、ECUおよび識別されたECUエラーを識別する、ステップとを含んでもよい。
開示される実施形態の側面は、1つ以上のプロセッサによって実行されると、開示される実施形態と一致する方法、動作、および同等物のうちの1つ以上のものを実施および実行することが可能となるために構成される、ソフトウェア命令を記憶する、有形コンピュータ可読媒体を含んでもよい。また、開示される実施形態の側面は、実行されると、開示される実施形態と一致する1つ以上の動作を実施する、論理および命令でプログラムされる、ソフトウェア命令に基づく、特殊目的プロセッサとして構成される、1つ以上のプロセッサによって実施されてもよい。
前述の一般的説明および以下の詳細な説明は両方とも、例示的および説明的にすぎず、請求されるような開示される実施形態の制限ではないことを理解されたい。
例えば、本願は以下の項目を提供する。
(項目1)
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、命令を含み、前記命令は、少なくとも1つのプロセッサよって実行されると、前記少なくとも1つのプロセッサに、車両内の電子制御ユニット(ECU)上のソフトウェアを更新するための更新パッケージを生成するための動作を実施させ、前記動作は、
前記車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスすることと、
前記車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスすることと、
前記複数の属性と前記対応する複数の属性を比較することと、
前記比較において決定された前記複数の属性と前記対応する複数の属性との間の差異を表すデルタファイルを生成することと、
前記デルタファイルを前記ECUに提供することであって、前記デルタファイルは、前記デルタファイルが前記車両内のECU内で実行することを有効にする前記ECU内のスタートアップコードによって処理されるように構成される、ことと
を含む、非一過性コンピュータ可読媒体。
(項目2)
前記スタートアップコードは、前記デルタファイルの中に統合される、項目1に記載の非一過性コンピュータ可読媒体。
(項目3)
前記スタートアップコードは、前記デルタファイルが前記ECUによって受信される前に、前記ECU上にインストールされる、項目1に記載の非一過性コンピュータ可読媒体。
(項目4)
前記スタートアップコードは、前記デルタファイルのランタイムライブラリを初期化するように構成される、項目1に記載の非一過性コンピュータ可読媒体。
(項目5)
前記スタートアップコードは、前記ECUのプログラムカウンタを更新し、前記デルタファイル内に含有される命令を実行するように構成される、項目1に記載の非一過性コンピュータ可読媒体。
(項目6)
前記デルタファイルは、前記ソフトウェア更新によって参照される変数の値を表す変数データを備える、項目1に記載の非一過性コンピュータ可読媒体。
(項目7)
前記スタートアップコードは、前記変数データを前記デルタファイルから抽出し、前記変数データを前記ECUにアクセス可能なメモリの中に設置するように構成される、項目6に記載の非一過性コンピュータ可読媒体。
(項目8)
前記デルタファイルは、前記ECU内のメモリアドレスを更新するためのコードを備える、項目1に記載の非一過性コンピュータ可読媒体。
(項目9)
前記スタートアップコードは、メモリアドレスを更新するためのコードを抽出し、前記ECU内のメモリアドレスを更新するように構成される、項目8に記載の非一過性コンピュータ可読媒体。
(項目10)
前記ECU上のソフトウェアは、複数の機能ユニットにマッピングされ、前記ECUは、仮想ファイルシステム(VFS)を利用して、前記複数の機能ユニットのそれぞれの1つ以上のバージョンを管理および追跡するように構成される、項目1に記載の非一過性コンピュータ可読媒体。
(項目11)
前記ECU上に記憶されるべき前記ソフトウェア更新の複数の属性は、前記VFSによって管理される前記複数の機能ユニットのうちの少なくとも1つを備える、項目10に記載の非一過性コンピュータ可読媒体。
(項目12)
前記命令はさらに、
第1のグリッドを前記ソフトウェア更新に適用することと、
第2のグリッドを前記ECU上に記憶される現在のソフトウェアに適用することと、
前記第1および第2のグリッドの比較に基づいて、前記複数の属性および前記対応する複数の属性を識別することと
を含む、項目1に記載の非一過性コンピュータ可読媒体。
(項目13)
前記第1のグリッドは、
前記ソフトウェア更新と関連付けられたバイナリデータと、
前記ソフトウェア更新と関連付けられたソース属性と、
前記ソフトウェア更新と関連付けられたマップファイルと
のうちの少なくとも1つを含む1つ以上の次元における前記ソフトウェア更新を表す、項目12に記載の非一過性コンピュータ可読媒体。
(項目14)
前記複数の属性は、少なくとも部分的に、前記ソフトウェア更新を開発するために使用されるプログラミング言語に基づいて識別される、項目1に記載の非一過性コンピュータ可読媒体。
(項目15)
前記複数の属性は、少なくとも部分的に、前記ソフトウェア更新のバイナリファイル分解能に基づいて識別される、項目1に記載の非一過性コンピュータ可読媒体。
(項目16)
前記複数の属性は、少なくとも部分的に、前記ソフトウェア更新と関連付けられたマップファイルに基づいて識別される、項目1に記載の非一過性コンピュータ可読媒体。
(項目17)
前記ソフトウェア更新は、モノリシックファイルである、項目1に記載の非一過性コンピュータ可読媒体。
(項目18)
前記ソフトウェア更新は、他のファイルに相互依存するファイルである、項目1に記載の非一過性コンピュータ可読媒体。
(項目19)
前記動作は、前記デルタファイルを前記ECUに提供する前に、依存性システムをチェックし、前記ECUのために提供されている前記デルタファイルに基づいて、任意の相互依存ECUが更新されるべきであるかどうかを決定することを含む、項目1に記載の非一過性コンピュータ可読媒体。
(項目20)
前記動作はさらに、付加的デルタファイルを前記相互依存ECUに自動的に提供し、前記相互依存ECUに関するソフトウェア更新を実施することを含む、項目19に記載の非一過性コンピュータ可読媒体。
(項目21)
車両内の電子制御ユニット(ECU)上のソフトウェアを更新するための更新パッケージを生成するためのシステムであって、前記システムは、
1つ以上のプロセッサと、
1つ以上のメモリであって、前記1つ以上のメモリは、命令を有し、前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
前記車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスする動作と、
前記車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスする動作と、
前記複数の属性と前記対応する複数の属性を比較する動作と、
前記比較において決定された前記複数の属性と前記対応する複数の属性との間の差異を表すデルタファイルを生成する動作と、
前記デルタファイルを前記ECUに提供する動作であって、前記デルタファイルは、前記デルタファイルが前記車両内のECU内で実行することを有効にする前記ECU内のスタートアップコードによって処理されるように構成される、動作と
を実施させる、1つ以上のメモリと
を備える、システム。
(項目22)
前記スタートアップコードは、前記デルタファイルのランタイムライブラリを初期化するように構成される、項目21に記載のシステム。
(項目23)
車両内の電子制御ユニット(ECU)上のソフトウェアを更新するための更新パッケージを生成するためのコンピュータ実装方法であって、前記方法は、
前記車両内のECU上に記憶されるべきソフトウェア更新の複数の属性にアクセスすることと、
前記車両内のECU上に記憶される現在のソフトウェアの対応する複数の属性にアクセスすることと、
前記複数の属性と前記対応する複数の属性を比較することと、
前記比較において決定された前記複数の属性と前記対応する複数の属性との間の差異を表すデルタファイルを生成することと、
前記デルタファイルを前記ECUに提供することであって、前記デルタファイルは、前記デルタファイルが前記車両内のECU内で実行することを有効にする前記ECU内のスタートアップコードによって処理されるように構成される、ことと
を含む、方法。
(項目24)
前記スタートアップコードは、前記デルタファイルのランタイムライブラリを初期化するように構成される、項目23に記載の方法。
本明細書内に組み込まれ、その一部を構成する、付随の図面は、開示される実施形態を図示し、説明とともに、開示される実施形態を説明する役割を果たす。
図1Aは、開示される実施形態による、例示的システムのブロック図である。
図1Bは、開示される実施形態による、デルタファイルが作成および展開され得、ECU動作が監視され得る、システム環境の例証である。
図1Cは、開示される実施形態による、車両通信ネットワークの例証である。
図2は、開示される実施形態による、例示的ECUソフトウェア更新プロセスを描写する、例証である。
図3は、開示される実施形態による、デルタファイルを生成するための例示的プロセスを描写する、例証である。
図4は、開示される実施形態による、ECUのプログラムカウンタを更新するように構成される、スタートアップコードを描写する、例証である。
図5は、開示される実施形態による、コードの異なるセグメントへのコード変更を含む、デルタファイルを描写する、例証である。
図6は、開示される実施形態による、更新のためにECUに利用可能となるデルタファイルを描写する、例証である。
図7は、開示される実施形態による、更新のためにECUに利用可能となるデルタファイルを描写する、別の例証である。
図8は、開示される実施形態による、更新のためにECUに利用可能となるデルタファイルを描写する、さらなる例証である。
図9は、開示される実施形態による、ECUに利用可能となるソフトウェア更新のタイムライン図を描写する、例証である。
図10は、開示される実施形態による、車両内のECU上のソフトウェアを更新するための更新パッケージを生成するためのプロセスを示す、例示的フローチャートである。
図11は、開示される実施形態による、デルタファイルを車両内で受信および統合するためのプロセスを示す、例示的フローチャートである。
図12は、開示される実施形態による、車両のECUが動作している間、更新をECUソフトウェアに実施するためのプロセスを示す、例示的フローチャートである。
図13は、開示される実施形態による、車両ECUソフトウェアバージョンを調節するためのプロセスを示す、例示的フローチャートである。
図14は、開示される実施形態による、車両内のECU異常を識別するためのプロセスを示す、例示的フローチャートである。
図15は、開示される実施形態による、車両内のECU異常を識別するためのプロセスを示す、例示的フローチャートである。
図16は、開示される実施形態による、車両内のECUソフトウェアを好機をねらって更新するためのプロセスを示す、例示的フローチャートである。
図17は、開示される実施形態による、更新を1つ以上の車両に自動的に提供するためのプロセスを示す、例示的フローチャートである。
図18は、開示される実施形態による、ECUエラーを遠隔監視サーバに報告するためのプロセスを示す、例示的フローチャートである。
以下の詳細な説明では、多数の具体的詳細が、開示される例示的実施形態の完全な理解を提供するために記載される。しかしながら、当業者によって、例示的実施形態の原理は、全ての具体的詳細を伴わずに実践されてもよいことが理解されるであろう。周知の方法、プロシージャ、およびコンポーネントは、例示的実施形態の原理を曖昧にしないように、詳細に説明されていない。明示的に述べられない限り、本明細書に説明される例示的方法およびプロセスは、特定の順序またはシーケンスに制約されない、または特定のシステム構成に制約されない。加えて、説明される実施形態またはその要素のうちのいくつかは、同時に、同一時点において、または並行して、生じる、または実施され得る。
ここで、開示される実施形態が詳細に参照され、その実施例は、付随の図面に図示される。
図1Aは、開示される実施形態による、例示的システム100のブロック図である。示されるように、システム100は、通信チャネル106を経由して1つ以上の車両104と通信するように構成される、1つ以上のサーバ(またはコンピュータ)102を含む。通信チャネル106は、バス、ケーブル、無線通信チャネル、無線ベースの通信チャネル、インターネット、ローカルエリアネットワーク(LAN)、無線ローカルエリアネットワーク(WLAN)、広域ネットワーク(WAN)、セルラー通信ネットワーク、または任意のインターネットプロトコル(IP)ベースの通信ネットワーク、および同等物を含んでもよい。いくつかの実施形態では、通信チャネル106は、パブリッククラウドインフラストラクチャ、プライベートクラウドインフラストラクチャ、ハイブリッドパブリック/プライベートクラウドインフラストラクチャ、またはクラウドを使用しないインフラストラクチャに基づいてもよい。そのような異なる実施形態では、サーバ102および車両104はそれぞれ、同一または異なるネットワークまたはネットワークセグメント内にあってもよい。いくつかの実施形態では、車両104は、通信チャネル106を介したサーバ102との通信をサポートするように構成される、1つ以上の互換性がある受信機を装備してもよい。受信機は、例証的簡略化のために図1Aに示されない。
サーバ102は、少なくとも1つのプロセッサ108を含んでもよい。複数のサーバ(例えば、サーバファーム)を伴う実施形態では、プロセッサ108は、1つ以上の専用処理ユニット、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGAS)、またはプロセッサ実行可能コードを記憶するために構成される少なくとも1つの非一過性プロセッサ可読メモリ110と結合される、種々の他のタイプのプロセッサまたは処理ユニットを含んでもよい。プロセッサ実行可能コードが、プロセッサ108によって実行されると、プロセッサ108は、種々の異なる命令を行ってもよい(例えば、1つ以上の車両104内にインストールされる1つ以上のECUが更新される必要があるかどうかを決定する等のため)。プロセッサ108はまた、1つ以上の車両104内にインストールされる1つ以上のECUが更新される必要があると決定されると、ECUのための更新パッケージを生成する命令を行ってもよい。下記に議論されるように、プロセッサ108はまた、種々の他の機能を実施してもよい。
サーバ102は、種々のタイプのユーザにサービス提供するように構成されてもよいことが検討される。例えば、自動車製造業者は、サーバ102を利用して、ソフトウェア更新を生成し、自動車製造業者によって製造された車両上にインストールされるECUにロールアウトしてもよい。別の実施例では、部品製造業者(例えば、ECU開発者またはその製品がECUを使用する製造業者)は、サーバ102を利用して、ソフトウェア更新を生成し、その部品製造業者によって生産または維持されるECUにロールアウトしてもよい。なおも別の実施例では、サービスプロバイダ(例えば、販売業者またはサービスセンタ)は、サーバ102を利用して、サービスプロバイダにおいて点検されている、車両上にインストールされるECUを更新してもよい。1つのみのサーバ102が、図1Aに描写されるが、そのような描写は、単に、例示的であって、限定を意味するものではないことを理解されたい。本開示の精神および範囲から逸脱することなく、1つを上回るサーバ102が、利用されてもよく、異なるユーザが、異なるサーバ102を利用して、ソフトウェア更新を生成し、ECUにロールアウトしてもよいことが検討される。
図1Bは、デルタファイルおよびソフトウェア更新が生成および監視され得る、システム環境の例示的例証である。図示されるように、生産ツールチェーン122は、車両ECU(例えば、ECU112)上で起動するソフトウェアを開発および配布するためのプログラミングシステムまたはツールのグループであってもよい。生産ツールチェーン122は、ソフトウェアを車両ECU上に開発および実装するためのソフトウェアコンポーネント(例えば、コンパイラ、リンカ、ライブラリ等)を含んでもよい。さらに下記に議論されるように、本開示の実施形態は、ソフトウェア更新のためのデルタファイルを生成するステップに関し、生産ツールチェーン122からの情報に基づいて生成されてもよい。例えば、下記に議論されるように、デルタファイルを構築するために使用されるマップファイル、ソース、およびバイナリデータ要素(例えば、図3に関連して)は、生産ツールチェーン122から生じてもよい。ソフトウェア更新は、デルタファイル124として開発されてもよく、これは、図1Aに関連してさらに議論されるように、無線を経由して車両に送達されてもよい。
図1Bはまた、依存性管理システム126と、故障分析システム128と、更新管理システム130と、報告システム132とを図示する。下記に議論される種々の実施形態では、ソフトウェアバージョン間の依存性は、ソフトウェア内の機能とエンティティとの間の関係および依存性、ソフトウェアのサイズ、具体的メモリアドレス、メモリ場所に対応する具体的機能またはコマンド等を定義する、マップファイルとして表され得る。さらに、依存性管理システム126は、ECU間の依存性を識別してもよい。例えば、ソフトウェア更新が、1つのECUのために実施されるとき、更新は、ECUが1つ以上の他のECUと通信することを不可能にさせ得る(または正しくなく通信する)。これは、例えば、ソフトウェア更新が、ECUのネットワークアドレス、ECUが使用するであろう通信のプロトコル、ECUの着信または発信通信ポリシ、ECUからの通信のヘッダまたはペイロード、ECUからの通信のタイミング、またはECUの機能性の種々の他の属性に影響を及ぼす場合に生じ得る。ソフトウェア更新がECU上で実施され、他の相互依存ECUが影響されるときに生じる、競合を防止するために、依存性管理システム126は、ECU間の依存性のリストまたはマッピングを維持するように構成されてもよい。リストまたはマッピングは、相互依存ECUを識別してもよく、また、その相互依存性に関する理由(例えば、予期または要求されるデータ通信の特定のフォーマット、特定のネットワークアドレス、特定の通信タイミング要件等)をさらに規定してもよい。本情報は、依存性管理システム126によって維持されてもよく、周期的に更新されてもよい(例えば、サーバ102から)。
さらに、下記に議論されるように、種々の異常、エラー、および故障が、ECUの動作時に検出され得る。そのようなデータおよびそのようなイベントを検出するためのアルゴリズムは、故障分析システム128によって管理されてもよい。更新管理システム130は、ECUソフトウェア更新が開発または伝送されるべきとき、更新を受信すべき車両または具体的ECU、および種々の他のタイプの情報を決定するステップに関与してもよい。報告システム132は、更新を車両(例えば、ECUの観察されるアクティビティ)から受信する、または(例えば、実施するための更新に関する)報告を車両に送達するように構成されてもよい。いくつかの実施形態では、依存性管理システム126、故障分析システム128、更新管理システム130、および報告システム132は、サーバ102内で、または別個に、実装されてもよい。
図1Cは、(例えば、車両104-a、104-b、104-c、104-d、または104-e内の)車両通信ネットワーク内のアーキテクチャの例証である。例えば、テレマティック制御ユニット(TCU)134が、ネットワークの中に統合され、車両のための種々の追跡特徴を実施してもよい。いくつかの実施形態では、TCU134は、統合または別個の電気通信送受信機(例えば、セルラー、WiFi、衛星等)、全地球測位システム(GPS)送受信機、および車両通信ネットワークの他のコンポーネントとインターフェースをとるためのコントローラを含んでもよい。ネットワークはまた、外部ネットワーク(例えば、サーバ102)および車両の内部ネットワークとの通信の中心点であり得る、ゲートウェイ136を含んでもよい。いくつかの実施形態では、ゲートウェイ136は、オーケストレータ(下記にさらに議論される)とインターフェースをとってもよく、これは、車両内のECU112の1つ以上の動作を制御する。ネットワークはさらに、オンボード診断ポート138を含んでもよく、これは、診断、保守、および他の機能のために、車両ネットワークへの有線接続を可能にする、物理的ポートであってもよい。加えて、車両ネットワークは、ECU112、112a、112b、112c、およびその他等の種々のECUを含んでもよい。図示されるように、ECU112は、他の動作の中でもとりわけ、故障検出および休止時間予測140、ECUソフトウェアの以前のバージョンへの統合されたロールバック142、および統合された診断サービス(UDS)更新144のためのソフトウェア命令で構成されてもよい。これらの機能はさらに、下記に議論される。
図2は、例示的ECU112のソフトウェアを更新するためにサーバ102によって行われる例示的ECUソフトウェア更新プロセスを描写する、例証である。いくつかの実施形態では、プロセスは、サーバ102においてではなく、車両内でローカルで実施されてもよい(例えば、ECU118を管理する、車両内のオーケストレータを通して)。図2に示されるように、サーバ102は、ECU112によって使用されるべきECUソフトウェアの新しいバージョン(ソフトウェア更新202と称され得る)およびECU112によって使用されるECUソフトウェアの現在のバージョン(現在のソフトウェア204と称され得る)の両方に関する情報にアクセスしてもよい。サーバ102は、種々の様式において、ソフトウェア更新202に関する情報にアクセスしてもよい。いくつかの実施形態では、ECUソフトウェアを開発または維持することに関与する自動車製造業者または部品製造業者は、ローカルで記憶されるべきソフトウェア更新202のコピーをサーバ102上に提供してもよい。いくつかの実施形態では、ソフトウェア更新202を開発するために使用されるワークステーションが、サーバ102としての役割を果たすように構成されてもよい。いくつかの実施形態では、自動車製造業者または部品製造業者はまた、ソフトウェア更新202のコピーをサーバ102にアクセス可能な1つ以上のネットワーク記憶デバイス内に記憶してもよい。いくつかの実施形態では、ソフトウェア更新202は、モノリシックファイルとして提供されてもよい。いくつかの実施形態では、ソフトウェア更新202は、他のファイルに相互依存するファイルとして提供されてもよい。
サーバ102は、種々の様式において、ECU112によって使用される現在のソフトウェア204に関する情報にアクセスしてもよい。いくつかの実施形態では、サーバ102は、そのソフトウェアバージョン番号に関して、ECU112にクエリしてもよい(例えば、通信チャネル106を介して)。いくつかの実施形態では、サーバ102は、ECU112によって使用される現在のソフトウェア204が記憶される、メモリデバイス(例えば、フラッシュメモリ、RAM、ROM等)120への直接アクセスを要求してもよい。いくつかの実施形態では、サーバ102は、ECUに展開されるソフトウェアバージョンを記録し、記録を使用して、ECU112によって使用される現在のソフトウェア204のバージョンを決定してもよい。具体的実装は、サーバ102がソフトウェア更新202および現在のソフトウェア204の両方に関する情報にアクセスすることができる限り、変動し得るが、サーバ102は、さらに下記に議論されるように、ソフトウェア更新202および現在のソフトウェア204の両方の属性を比較し、ソフトウェア更新202の属性と現在のソフトウェア204の対応する属性との間の差異を表す、デルタファイルを生成することができることが検討される。
図3は、そのようなデルタファイルを生成するためにサーバ102によって行われる例示的プロセスを描写する、例証である。図3に示されるように、サーバ102は、ソフトウェア更新202のソース、バイナリコード、およびマップファイルを含む、属性と、現在のソフトウェア204のその対応する属性を比較してもよい。上記に議論されるように、これらの属性は、直接、生産ツールチェーン122から取得されてもよい(例えば、ソフトウェアを構築および展開するプロセスの一部として、またはそれに続いて)。ソース属性は、例えば、ソースコード言語、バージョン、ソースコードがフラットであるかどうか、ソースコード内で参照されるオブジェクトの数またはタイプ、および他の属性を識別してもよい。バイナリ属性は、実行可能かつリンク可能なフォーマット(ELF)コード(例えば、プログラムヘッダ、セクションヘッダ、データ等を伴う)として、純粋なバイナリとして、または他の形態において表され得る。マップファイルは、ソフトウェア202および/または204内の機能とエンティティとの間の関係および依存性、ソフトウェアのサイズ、具体的メモリアドレス、メモリ場所に対応する具体的機能またはコマンド等を説明してもよい。
ソフトウェア更新202および現在のソフトウェア204をそのソース、バイナリコード、およびマップファイル属性の観点から表すことは、「グリッド」表現と称され得、ソフトウェア更新202を表すグリッドと現在のソフトウェア204を表すグリッドとの間の比較は、多次元(例えば、3次元差分(または3Diff)比較)と称され得る。いくつかの実施形態では、より少ないまたは付加的次元も、同様に使用されてもよい。そのような3Diff比較または他の多次元比較は、ECU112のバイナリおよび/またはソースコード210に行われる変更、ECU112によって使用される1つ以上の変数212に行われる変更、およびECU112によって参照されるメモリアドレス214に行われる変更を表すデータを含み得る、デルタファイル206を生産するために利用されてもよい。着目すべきこととして、そのような3Diffファイルは、現在のソフトウェア204が、ソフトウェア更新202自体全体ではなく、3Diffファイルのみを受信することによって、ソフトウェア更新202にアップグレードされ得るように、ソフトウェア更新202と現在のソフトウェア204との間の差異を表してもよい。
また、図3に示されるのは、スタートアップコード208であって、これは、3Diffまたはデルタファイル206の中に統合されてもよい。代替として、スタートアップコード208は、現在のソフトウェア204の一部であって、デルタファイル206の一部ではなくてもよい。例えば、そのような実施形態では、スタートアップコード208は、ECUおよびそのソフトウェアと関連付けられた既存のスタートアップまたは初期化コードであってもよい。
いくつかの実施形態では、サーバ102は、スタートアップコード208をデルタファイル206のランタイムライブラリを初期化するように構成してもよい。いくつかの実施形態では、例えば、サーバ102は、スタートアップコード208を、ECU112のプログラムカウンタを更新し、現在のソフトウェア204内に含有されるあるコードをスキップし、代わりに、デルタファイル206内に含有されるあるコードを実行するように構成してもよい。例えば、図4に示されるように、スタートアップコード208は、ECU112が、現在のソフトウェア204内に含有されるコードのセグメントをスキップし(図4では、プログラムカウンタ更新「1」として描写される)、代わりに、デルタファイル206内に含有されるコードのセグメントを実行し得るように(図4では、プログラムカウンタ更新「2」として描写される)、ECU112のプログラムカウンタを更新するように構成されてもよい。サーバ102はまた、デルタファイル206内に含有されるコードのセグメントの実行後、プログラムカウンタが、現在のソフトウェア204内に含有されるコードにリンクバックし得るように(図4では、プログラムカウンタ更新「3」として描写される)、スタートアップコード208をECU112のプログラムカウンタを更新するように構成してもよい。このように、デルタファイル206内に含有されるコードのセグメントは、メモリ120内の任意の場所に設置されることができ、ECU112のプログラムカウンタは、ECU112の実行のために、コードのそのセグメントをメモリ(例えば、フラッシュ、RAM等)の中にロードするために使用されることができる。言い換えると、デルタファイル206内に含有されるコードは、位置独立的であり得、ECU112がメモリ120の任意の既存のコンテンツを消去することを要求せずに、メモリ120内に設置されることができる。さらに、スタートアップコード208は、デルタデータを3Diffまたはデルタファイル206から抽出し、それをECU112のメモリ(例えば、フラッシュ、RAM、ROM等)上に記憶するように構成されてもよい。データは、ソフトウェア202/204のランタイムの間に使用されるデータを含んでもよい。スタートアップコードはまた、ECU112内のメモリの古いコンテンツが消去される必要があるかどうかを決定してもよい(例えば、記憶空間がほぼ満杯であるため)。
ECU112のプログラムカウンタを使用して、デルタファイル206内に含有されるコードをECU112のメモリの中にロードするステップは、単に、実施例として提示され、限定を意味するものではないことを理解されたい。いくつかの実施形態では、ブートストラップローダ(例えば、ECU112のメモリ内に常駐するプログラム)が、代わりに、または併せて、デルタファイル206内に含有されるコードをECU112のメモリの中にロードするために使用されてもよい。他の技法もまた、本開示の精神および範囲から逸脱することなく、実行のために、デルタファイル206内に含有されるコードをECU112のメモリの中にロードするために使用されてもよいことを理解されたい。
また、図4は、ECU112のプログラムカウンタを現在のソフトウェア204内に含有されるコードの1つのセグメントからデルタファイル206内に含有されるコードの別のセグメントにリダイレクトするステップを描写するが、そのような描写は、単に、例示的であることを理解されたい。デルタファイル206内に含有されるコード変更210は、現在のソフトウェア204内に含有されるコードの1つを上回るセグメントに行われる変更を表し得ることが検討される。例えば、図5に示されるように、デルタファイル206は、「シンボル1」、「シンボル2」、および「シンボル3」と称される、コードの3つの異なるセグメントへのコード変更を含んでもよい。これらのコード変更は、上記に説明されるものに類似する様式においてハンドリングされ得ることが検討される。すなわち、デルタファイル206内(または、代替として、現在のソフトウェア204内)に含有されるスタートアップコードは、ECU112のプログラムカウンタを更新し、ECU112の現在のソフトウェア204内に含有されるコードのあるセグメント(すなわち、シンボル)をスキップし、代わりに、実行のために、デルタファイル206内に含有されるコードの対応するセグメント(すなわち、対応するシンボル)をECU112のメモリ(例えば、フラッシュ、RAM等)の中にロードしてもよい。
いくつかの実施形態では、ECU112は、仮想ファイルシステム(VFS)230を利用して、シンボルを管理してもよい。本明細書に議論されるように、VFS230は、種々の異なるタイプの仮想ファイルシステム、データベース、またはリストであってもよい。VFS230は、ソフトウェア202/204の要約を提供してもよく、3Diffファイルの要素(例えば、ソース、バイナリ、およびマップファイル属性)を表してもよい。いくつかの実施形態では、ECU112は、VFS230を利用して、異なるバージョンのシンボルを追跡してもよい。例えば、図6に示されるように、第2のデルタファイル216(第2のソフトウェア更新において行われる変更を表す)が、ECU112に利用可能になる場合、かつ第2のデルタファイル216が、シンボル1およびシンボル2に行われるコード変更のバージョン2を含有する場合、ECU112は、VFS230を利用して、異なるバージョンのシンボルを追跡し、実行のために使用されるべき正しいバージョンを決定してもよい。第3のデルタファイル226(第3のソフトウェア更新に行われる変更を表す)が、ECU112に利用可能になる場合、かつ第3のデルタファイル226が、シンボル1に行われるコード変更のバージョン3を含有する場合、ECU112はまた、図7に示されるように、VFS230を利用して、シンボル1のバージョン3を追跡してもよい。
いくつかの実施形態では、ECU112は、VFS230を利用して、必要とされる場合、ECU112のソフトウェアへのある変更をロールバックしてもよい。例えば、ECU112の性能におけるある異常(その詳細は、後で説明されるであろう)の検出に応じて、サーバ102は、シンボル1のバージョン3が、実行不可能にされる(または無効にされる)べきであって、ECUソフトウェアが、前のバージョン(例えば、第2のソフトウェア更新)に戻されるべきであることを決定してもよい。サーバ102は、ECU112に第2のソフトウェア更新にロールバックするようにプロンプトすることによって、これを達成し得、ECU112は、ひいては、図8に示されるように、VFS230を利用して、これらのシンボルに対応するECU112内のメモリアドレスを更新することによって、シンボル1、バージョン2を復元させてもよい(かつシンボル1、バージョン3を無効にする)。事実上、シンボル1のバージョン3は、ECU112のメモリ(例えば、フラッシュ、RAM等)から除去され得、シンボル1のバージョン2は、代わりに、実行のために、ECU112のメモリの中にロードされ得る。しかしながら、着目すべきこととして、シンボル1のバージョン3を削除し、シンボル1のバージョン2のコピー全体をダウンロードする必要がない。代わりに、さらに下記に議論されるように、ECU112は、単に、デルタファイル206を受信し、更新される必要がある(ソース、バイナリ、およびマップファイル属性に基づいて)ECU112のメモリへの更新を識別し、シンボル1のバージョン2への復元を遂行し得る。本技法を使用して、帯域幅は、ECU112への伝送において低減され、ECU112内のメモリ空間もまた、節約される。本技法は、下記にさらに議論される。
ここで、図3に戻って参照する。コード変更をハンドリングすることに加え、サーバ102はまた、スタートアップコード208を、ECU112によって使用される変数に行われる変更およびECU112によって参照されるメモリアドレスに行われる変更をハンドリングするように構成してもよいことに留意されたい。具体的には、いくつかの実施形態では、サーバ102は、スタートアップコード208を、変数変更データ212をデルタファイル206から抽出し、抽出された変数データ(該当する場合)をECU112のメモリ(例えば、フラッシュ、RAM等)の中に設置するように構成してもよい。上記に述べられたように、スタートアップコード208は、デルタファイル206自体または現在のソフトウェア204内に位置してもよい。サーバ102はまた、スタートアップコード208を、古い(陳腐化した)変数データをECU112のメモリから削除する命令を含むように構成してもよい。サーバ102はさらに、スタートアップコード208を、メモリアドレス変更データ214(該当する場合)をデルタファイル206から抽出し、適宜、ECU112内のメモリアドレスを更新するように構成してもよい。このように、サーバ102は、単に、任意の変更を現在のソフトウェア204に行う必要なく、デルタファイル206をメモリ120の中に設置し、ECU112にデルタファイル206または現在のソフトウェア204内に含有されるスタートアップコード208を実行させ、現在のソフトウェア204およびデルタファイル206をともにリンクさせ、ECU112をリブートする必要なく、ソフトウェア更新202の機能均等物を形成し得る。
いくつかの実施形態では、デルタファイル206は、標準的16進数またはバイナリファイル(またはS Record、Motorola(登録商標)、およびその他等の他のタイプ)として実装されてもよく、これは、ECU112によって容易に処理されることができる。いくつかの実施形態では、ECU112は、デルタファイル206がメモリ120の中に設置されるにつれて、その動作を継続してもよい(例えば、現在のソフトウェア204内に含有されるコードの実行を継続する)。いくつかの実施形態では、ECU112は、上記に説明される更新プロセスを完了した後、メモリ120をデフラグメントしてもよい。しかしながら、メモリ120をデフラグメントするステップは、ソフトウェア更新毎にではなく、低頻度でのみ必要とされ得ることが検討される。
更新プロセスは、後続ソフトウェア更新が利用可能になるにつれて、数回、繰り返されてもよい。図9に図示されるように、時間T1において、第1のソフトウェア更新が、利用可能になり、サーバ102が、デルタファイル206を生成し、デルタファイル206をECU112に提供したとする。いったんデルタファイル206が、ECU112において受信される(かつメモリ120の中に記憶される)と、ECU112は、上記に説明されるように、その中に含有されるスタートアップコードに基づいて、デルタファイル206を実行し、デルタファイル206をECU112のソフトウェア204にリンクさせてもよい。時間T2において、第2のソフトウェア更新が利用可能になり、第1のソフトウェア更新に取って代わる場合、サーバ102は、上記に説明されるプロセスを繰り返してもよい(例えば、第2のソフトウェア更新とECU112のソフトウェア204を比較し、第2のデルタファイル216を生成し、第2のデルタファイル216をECU112に提供する)。いったん第2のデルタファイル216が、ECU112において受信される(かつメモリ120の中に記憶される)と、ECU112は、その中に含有されるスタートアップコードに基づいて、第2のデルタファイル216を実行し、第2のデルタファイル216をECU112のソフトウェア204にリンクさせてもよい。同様に、時間T3において、第3のソフトウェア更新が利用可能になる場合、サーバ102は、第3のデルタファイル226をECU112に提供してもよく、ECU112は、適宜、第3のデルタファイル226をECU112のソフトウェア204にリンクさせてもよい。
また、図9に図示されるのは、サーバ102が特定のソフトウェア更新にロールバックする能力である。例えば、時間T4におけるある異常(その詳細は、後で説明されるであろう)の検出に応じて、サーバ102は、第3のソフトウェア更新が、実行不可能にされるべきであって、ECUソフトウェアが、前のバージョン(例えば、第2のソフトウェア更新)に戻されるべきことを決定してもよい。サーバ102は、図9に示されるように、ECU112に第3のデルタファイル226とECU112のソフトウェア204との間のリンクを除去する(例えば、図8を参照して前述のように、デルタファイル226内に含有されるコード変更を実行不可能にする)、第2のデルタファイル216内に含有されるスタートアップコードを再実行し、第2のデルタファイル216とECU112のソフトウェア204との間のリンクを再確立するようにプロンプトすることによって、これを達成し得る。
いくつかの実施形態では、ECU112は、ロールバック動作後、第3のデルタファイル226をメモリ120内に保つように構成されてもよい。第3のデルタファイル226をメモリ120内に保つことは、ECU112が、必要とされる場合、第3のソフトウェア更新を後で再アクティブ化することを可能にし得る。
いくつかの実施形態では、サーバ102は、ECU112を将来的更新のために備えるための方法として、意図的に、第3のデルタファイル226をメモリ120の中にプッシュ配信してもよい。サーバ102は、例えば、第3のデルタファイル226がメモリ120の中にプッシュ配信されると、ECU112に、第3のデルタファイル226内に含有されるスタートアップコードを一時的にバイパスするように命令してもよい。第2のデルタファイル216とECU112のソフトウェア204との間のリンクは、したがって、サーバ102が、ECU112に、次いで、第3のデルタファイル226をECU112のソフトウェア204にリンクさせ、第3のソフトウェア更新の展開を完了させ得る、第3のデルタファイル226(または現在のソフトウェア204)内に含有されるスタートアップコードを実行するように命令するときのような時間まで、定位置に留まり得る。そのような動作は、ロールフォワードと称され得、これは、ECUソフトウェア更新のロールアウトを協調させるための技法として利用されてもよいことが検討される。
しかしながら、メモリ120内に記憶されることができるデルタファイルの数は、その記憶容量に起因して限定され得ることに留意されたい。したがって、いくつかの実施形態では、ECU112は、ECU112が、メモリ120の利用量が閾値を上回る(例えば、75%または90%満杯)ことを決定すると、削除のためのメモリ120内に記憶される具体的コンテンツを識別するように構成されてもよい。いくつかの実施形態では、ECU112は、その対応する作成日、バージョン番号、ファイルサイズ、または同等物に基づいて、削除のためのコンテンツを識別してもよい。例えば、長期間にわたって使用されていない古いデルタファイルは、削除のための良好な候補であり得る。いくつかの実施形態では、ECU112はまた、そのメモリコンテンツを全体的に置換することを選定してもよい。例えば、そのオリジナルソフトウェアに加え、過去数年にわたって受信された複数のデルタファイルを保つ代わりに、ECU112は、メモリ120のコンテンツ全体を消去し、それを直近のECUソフトウェアのクリーンコピーと置換することを決定してもよい。ECU112は、将来的更新のために、上記に説明されるデルタファイルベースの更新プロセスの使用を継続してもよい。
ここで、概して、図1Aを参照する。上記の説明は、サーバ102が、通信チャネル106を介して、ソフトウェア更新を車両104に提供するための効率的技法を図示する、種々の実施例を提供したが、車両104もまた、通信チャネル106を利用して、情報をサーバ102に提供し、ソフトウェア更新プロセスをさらに向上させてもよいことに留意されたい。
例えば、いくつかの実施形態では、車両104-bは、プロセッサ実行可能コードを記憶するために構成される少なくとも1つの非一過性プロセッサ可読メモリ116と結合される、少なくとも1つのプロセッサ114を含んでもよい。プロセッサ実行可能コードが、プロセッサ114によって実行されると、プロセッサ114は、ECU112のリアルタイム処理アクティビティを監視し、ECU異常を識別する命令を行ってもよい。いくつかの実施形態では、プロセッサ114は、ECU異常に関する情報をサーバ102および/または他の車両104に提供してもよい。
例証目的のために、ECU112のリアルタイム処理アクティビティを監視し、ECU異常に関する情報をサーバ102および/または他の車両104に提供するように構成される、プロセッサ114は、オーケストレータ114と称され得る。いくつかの実施形態では、オーケストレータ114は、ECU112から分離されるユニットとして実装されてもよい。しかしながら、オーケストレータ114およびECU112は、本開示の精神および範囲から逸脱することなく、あるハードウェアコンポーネントを共有してもよいことが検討される。付加的実施形態では、オーケストレータ114は、さらに下記に議論されるように、機械学習または人工知能機能を実施するように構成されてもよい(例えば、ECUから、車両の車隊内のECUから等のデータに基づいて)。
いくつかの実施形態では、オーケストレータ114は、ECU112の処理アクティビティに関連する履歴データにアクセスするように構成されてもよい。いくつかの実施形態では、履歴データは、事前にECU112またはオーケストレータ114によってメモリ116内にログ付けされてもよい。履歴データは、ECU112の予期される処理アクティビティを表してもよい。オーケストレータ114は、リアルタイム処理アクティビティデータと履歴データを比較し、ECU112のリアルタイム処理アクティビティ内の1つ以上の異常を識別してもよい。いくつかの実施形態では、オーケストレータ114は、種々のタイプの統計的モデルを実装し、比較を行ってもよい。いくつかの実施形態では、オーケストレータ114は、異常を識別するために、機械学習技法を含む、種々のタイプのデータ処理技法を実装してもよい。
いくつかの実施形態では、オーケストレータ114は、その発見をサーバ102に報告するように構成されてもよい(例えば、通信チャネル106を介して)。代替として、または加えて、いくつかの実施形態では、オーケストレータ114は、1つ以上の異常を識別すると、ECU112のための1つ以上の制御アクションを実装してもよい。制御アクションは、例えば、ECU112と関連付けられたアラートを発行するステップ、ECU112から送信される命令をブロックするステップ、またはプロンプトをECU112に発行し、ECU112に、ECUソフトウェアの1つのバージョンから別のバージョンに実行を調節する(例えば、ECU上で起動するECUソフトウェアのバージョンからECUソフトウェアの以前のバージョンにロールバックする)ように要求するステップを含んでもよい。
開示される実施形態に従って構成されるオーケストレータ114は、種々のタイプの異常を検出することが可能であり得ることが検討される。例えば、いくつかの実施形態では、検出された異常は、ECU112によって使用される具体的メモリ場所に対応してもよい。ECU112が、具体的メモリ場所外のメモリ場所にアクセスするように試みる場合、オーケストレータ114は、そのようなアクティビティを異常として識別してもよい。いくつかの実施形態では、検出された異常は、ECU112によって使用されるメモリ場所の具体的シーケンスに対応してもよい。ECU112が、具体的シーケンスと互換性がない順序でメモリ場所にアクセスするように試みる場合、オーケストレータ114は、そのようなアクティビティを異常として識別してもよい。いくつかの実施形態では、検出された異常は、ECU112の内外のデータフロー内の少なくとも1つのピークに対応してもよい。ECU112の内外にフローするデータが、異常に高い場合、オーケストレータ114は、異常を報告してもよい。いくつかの実施形態では、検出された異常は、ECU112の1つ以上のプロセッサによるデータ処理内の少なくとも1つのピークに対応してもよい。ECU112の1つ以上のプロセッサによるデータ処理が、異常に高い場合、オーケストレータ114は、異常を報告してもよい。いくつかの実施形態では、検出された異常は、ECU112の電力消費における少なくとも1つの異常に対応してもよい。ECU112の電力消費が、異常に高い場合、オーケストレータ114は、異常を報告してもよい。
いくつかの実施形態では、オーケストレータ114は、ECU112に加え、他のECUを監視するように構成されてもよい。いくつかの実施形態では、オーケストレータ114は、車両104-b内の複数のECUのリアルタイム処理アクティビティを監視するように構成されてもよい。例えば、いくつかの実施形態では、オーケストレータ114は、ECU112に匹敵すると見なされる少なくとも1つの他のECU118の処理アクティビティに関連する匹敵するデータを受信するように構成されてもよい。
ECU118およびECU112は、その製造業者または開発者によって、匹敵すると見なされ得ることが検討される。ECU118およびECU112はまた、ECU118およびECU112上で起動するECUソフトウェアと関連付けられたその制御機能および/またはルールに基づいて、匹敵すると見なされ得る。例えば、ECU118およびECU112が、その対応する実行のシーケンスが十分に類似することを確立している場合、ECU118およびECU112は、匹敵すると見なされ得る。別の実施例では、ECU118およびECU112の両方が、類似の悪意のある実行のシーケンスに悩まされる場合、ECU118およびECU112は、匹敵すると見なされ得る。さらに別の実施例では、ECU118およびECU112のマップファイルが、十分に類似する場合、ECU118およびECU112は、匹敵すると見なされ得る。なおも別の実施例では、オーケストレータ114は、他の車両104上に位置するプロセッサと通信し(例えば、通信チャネル106を介して)、他の車両104が匹敵すると見なし得るECUを観察してもよい。オーケストレータ114は、次いで、他の車両104のその観察に基づいて、匹敵すると見なされ得る車両104-bに位置するECUを決定してもよい。
いくつかの実施形態では、オーケストレータ114は、ECU112から受信されたリアルタイム処理アクティビティデータとECU118から受信された匹敵するデータを比較し、ECU112のリアルタイム処理アクティビティ内の1つ以上の異常を識別するように構成されてもよい。いくつかの実施形態では、ECU118から受信された匹敵するデータは、ECU118から受信されたリアルタイム処理アクティビティデータを表してもよい。代替として、または加えて、いくつかの実施形態では、ECU118から受信された匹敵するデータは、ECU118から取得される以前に記録されたアクティビティデータを含んでもよい。
いくつかの実施形態では、オーケストレータ114は、種々のタイプの統計的モデルを実装し、ECU112から受信されたリアルタイム処理アクティビティデータとECU118から受信された匹敵するデータとの間の比較を行ってもよい。いくつかの実施形態では、オーケストレータ114は、異常を識別するために、機械学習技法を含む、種々のタイプのデータ処理技法を実装してもよい。いくつかの実施形態では、オーケストレータ114は、その発見をサーバ102に報告するように構成されてもよい。代替として、または加えて、いくつかの実施形態では、オーケストレータ114は、1つ以上の異常を識別すると、ECU112のための1つ以上の制御アクションを実装してもよい。
いくつかの実施形態では、オーケストレータ114は、車両104-b内のECUに電子的にポーリングし、ECUがポーリングに適切に応答するかどうかを決定するように構成されてもよい。オーケストレータ114は、次いで、車両104-b内の1つ以上のECUと関連付けられた1つ以上のECUエラーまたは故障を識別してもよい。故障の実施例は、ECUが予期または許可されるものと異なる時間間隔あたりの回数で動作を実施することであり得る。ECUエラーまたは故障が、識別される場合、オーケストレータ114はまた、ECUの動作に関連するデータおよび識別されたECUエラーを収集してもよい。オーケストレータ114は、ECUおよび識別されたECUエラーを識別する報告を車両104-bからサーバ102に送信してもよい。サーバ102は、エラーの識別およびバグ修正の開発を含む、種々の目的のために、報告を利用してもよい。
用語「オーケストレータ」が、上記の実施例では使用されるが、用語は、限定することを意味するものではないことを理解されたい。オーケストレータは、車両内のECUに電子的にポーリングし、ECUがポーリングに適切に応答するかどうかを決定するように構成されてもよいことが検討される。加えて、オーケストレータ114は、機械学習または人工知能技法を利用して、ECUが適切に動作している(例えば、容認可能または予期される挙動エンベロープ内で動作している)かどうかを決定してもよい。例えば、オーケストレータ114は、ECU(または複数のECU)内の上位機能性(例えば、上位10または100の機能性)を監視し、観察される機能性のモデルまたはマップを開発するように構成されてもよい。本モデルまたはマップからの逸脱が、検出されると、異常が、宣言されてもよい。いくつかの実施形態では、オーケストレータ114は、特定のECU(例えば、図1におけるECU112)として実装されてもよい一方、他のECUは、データをオーケストレータ114ECUに報告するように構成される(例えば、プッシュ配信またはプル配信を介して)。このように、オーケストレータ114ECUは、他のECUの観察および予期される機能性に関する機械学習または人工知能内で使用されるためのデータを集めてもよい。
いくつかの実施形態では、オーケストレータ114は、車両内のECUのための予測保守または自己回復プロセスに関与してもよい。そのようなアプローチは、分散型人工免疫システム(AIS)フレームワークに基づいてもよい。特に、車両全体を通したECUは、機械学習および人工知能のために、その動作および機能性に関するデータをオーケストレータ114(または別のAIS構成ECU)に報告するように構成されてもよい(例えば、プッシュ配信またはプル配信を介して)。オーケストレータ114(または別のAIS構成ECU)は、アルゴリズムを受信されたデータ上で実施し、ソフトウェア異常、エラー(例えば、ランタイムエラー)、および故障(例えば、ドリフト)を検出してもよい。そのようなアーキテクチャは、ECU報告を多くのECU間に広く分散させ、依然として、ECU性能の多くの異なるパラメータを追跡することが可能であるため、効率的かつ低影響であり得る。さらに、オーケストレータ114(または別のAIS構成ECU)は、分析を自律的および適応的に実施し、車両内のECU動作の持続的に変化する性質を反映させてもよい。オーケストレータ114(または別のAIS構成ECU)の機械学習または人工知的機能に基づいて、推奨される変更が、車両のECUの健康を維持するために、提案または自動的に実装されてもよい(例えば、ソフトウェアロールバックを実施する、ソフトウェア更新を実施する等)。いくつかの実施形態では、機械学習または人工知能機能は、サーバ(例えば、サーバ102)で実施され、車両の車隊全体(例えば、類似ECU、類似ソフトウェアバージョン等を共有するもの)のための推奨される変更を提供してもよい。
オーケストレータ114(または別のAIS構成ECU)のためのシステムアーキテクチャは、多層化されてもよい。いくつかの実施形態では、オーケストレータ114またはサーバ102は、中心ノードとしての役割を果たし、動作または機能データをそれに報告する個々のECUは、子またはエッジノードである。第1の階層(例えば、階層1)は、ECUの挙動のロープロファイル監視を実施してもよい。例えば、これは、機械学習モデルまたは人工知能アルゴリズムを適用し、個々のECUまたはECUのグループのアクティビティを分析するステップを伴ってもよい。これは、ECUメモリ占有面積、CPU処理アクティビティ、コールされた機能、コールされた機能のシーケンス等を考慮し得る。第2の階層(例えば、階層2)は、オンデマンドベースで作用してもよい。例えば、機械学習または人工知能階層が、ECUの動作挙動内に潜在的異常を検出する場合、階層2に到達してもよく、これは、当該ECUのさらなる分析(例えば、メモリスタック分析、ECU異常に関する情報をオーケストレータ114またはサーバ102に報告する等)を伴ってもよい。同様に、第3の階層の動作(例えば、階層3)では、ECU動作のサンプル(例えば、コールされているメモリ場所、ソフトウェアバージョン、デルタファイルバージョン、ソフトウェアのコピー等)が、さらなる分析のために、オーケストレータ114またはサーバ102に返信されてもよい。第4の階層の動作(例えば、階層4)では、決定が、当該ECUまたはECUのグループのための制御アクションを実施するように行われてもよい。これは、例えば、ソフトウェアを以前のバージョンにロールバックするステップ(例えば、以前のバージョンのためのデルタファイルに基づいて)、ECUのための安全モードをアクティブ化する(例えば、ネットワーク通信をブロックする、機能性を調整する等)、またECUのための他の形態の制御を含んでもよい。
オーケストレータ114は、車両104-bに位置する1つ以上のプロセッサ114を利用して実装されてもよいことを理解されたい。いくつかの実施形態では、オーケストレータは、車両内のプロセッサ114または別個のプロセッサ上で実装されてもよい。いくつかの実施形態では、オーケストレータは、遠隔で実装されてもよい(例えば、サーバ102を介して)。例証的簡略化のために、下記の説明は、車両内のECUに電子的にポーリングし、ECUがポーリングに適切に応答するかどうかを決定する、または機械学習または人工知能機能をオーケストレータとして実施するように構成される、プロセッサを参照するであろう。
いくつかの実施形態では、オーケストレータは、要求メッセージをECUに送信し、ECUが1つ以上の応答メッセージを提供することを待機することによって、車両104-b内のECUにポーリングしてもよい。オーケストレータは、例えば、プログラムが継続して起動しているかどうかを検出する、プロセッサ(例えば、ECUプロセッサ)内の統合されたハードウェアカウンタまたはモニタを指し得る。オーケストレータは、ECUがポーリングに応答することの失敗が検出されると、エラーまたは故障を実施または発生させたことを決定してもよい。上記に議論されるように、エラーおよび故障は、ランタイムエラー、スタックオーバーフローエラー、アプリケーション実行プロファイルの「ドリフト」(例えば、より低速になる、より高速になる、またはより長いまたはより短い周期にわたって生じる)等を含んでもよい。
いくつかの実施形態では、オーケストレータは、車両104-b内の複数のECUにポーリングし、ECUが車両104-bの1つ以上のハードウェアコンポーネントに潜在的に影響を及ぼし得るECUソフトウェアを実行するかどうかを決定してもよい。例えば、ECU112を更新した後、トランスミッションと相互作用する複数のECUが、誤った挙動を呈し始める場合、オーケストレータは、ECU112のためのソフトウェア更新が、車両104-bのトランスミッションに潜在的に影響を及ぼすことを決定してもよい。オーケストレータはまた、種々のECUからの報告データ(例えば、ECU識別子および/またはECUの最後の既知のポーリングを示すデータを含む)および車両104-bの種々のハードウェアコンポーネントからの報告データ(例えば、トランスミッションを含む)を収集してもよい。オーケストレータはまた、さらに下記に議論されるように、報告されるデータに基づいて、統計的分析、機械学習、または人工知能機能を実施してもよい。
いくつかの実施形態では、オーケストレータは、ECU内の潜在的影響または異常が有害であるかどうかを決定してもよい。例えば、オーケストレータが報告されるデータに基づいて、通常動作の間のトランスミッションの平均温度が、数度増加していること、を決定する場合、オーケストレータは、トランスミッションへの潜在的影響が有害であることを決定してもよい。代替として、または加えて、いくつかの実施形態では、オーケストレータは、報告されるデータをサーバ102に提供し、サーバ102(またはそのユーザ)に、潜在的影響が有害であるかどうかを決定させるように構成されてもよい。
いくつかの実施形態では、オーケストレータは、報告されるデータに基づいて、ECUに関する休止時間の確率を決定してもよい。オーケストレータは、下記に議論される機械学習および人工知能技法を含む、統計的モデルまたは過去の挙動に基づいて、本決定を行なってもよい。いくつかの実施形態では、オーケストレータは、その決定をサーバ102に報告するように構成されてもよい。さらなる実施形態では、下記に議論されるように、オーケストレータは、潜在的影響が有害であることが決定されると、または休止時間の確率がある閾値を超えると、ECU112のための1つ以上の制御アクションを実装してもよい。
ここで、概して、図1Aに示される車両ネットワーク100を参照する。上記に説明されるオーケストレータによって提供される機能性のうちのいくつかは、車両104上に位置するプロセッサ114によって行われることに加え(またはその代わりに)、ネットワーク106を経由して行われてもよいことが検討される。例えば、いくつかの実施形態では、サーバ102は、通信チャネル106を介して、ECUアクティビティデータを1つ以上の報告車両104から受信するように構成されてもよい。いくつかの実施形態では、報告車両104は、グループとして監視されている車両を含んでもよい。いくつかの実施形態では、報告車両は、共通タイプのECU(例えば、車両104-a、104-b、および104-cが全て、同一タイプのECUを有する場合、車両104-a、104-b、および104-cは、グループとして監視されてもよい)または共通ソフトウェアバージョンを有する、車両のセットを含んでもよい。
いくつかの実施形態では、ECUアクティビティデータは、車両のグループ(例えば、上記の実施例では、車両104-a、104-b、および104-c)において動作する1つ以上のECUの実際の動作に対応してもよい。いくつかの実施形態では、サーバ102は、ECUアクティビティデータに基づいて、車両104-a、104-b、および104-cに影響を及ぼすソフトウェア脆弱性を決定するように構成されてもよい。いくつかの実施形態では、サーバ102は、種々のタイプの統計的モデルを実装し、ECUアクティビティデータに基づいて、ソフトウェア脆弱性を決定してもよい。例えば、いくつかの実施形態では、サーバ102は、受信されたECUアクティビティデータと予期される(または履歴)ECUアクティビティデータとの間の逸脱に基づいて、ソフトウェア脆弱性を決定してもよい。いくつかの実施形態では、サーバ102は、機械学習技法を含む、種々の他のタイプのデータ処理技法を実装し、ソフトウェア脆弱性を決定してもよい。
いくつかの実施形態では、サーバ102は、車両104-a、104-b、および104-cに影響を及ぼすソフトウェア脆弱性が存在することが決定される場合、ECUソフトウェア更新を識別するように構成されてもよい。サーバ102はまた、影響される車両104-a、104-b、および104-cのECU上のソフトウェアを更新するように構成される、デルタファイルを生成および送信してもよい。サーバ102は、上記に説明されるプロセスに従ってデルタファイルを生成してもよいことが検討される。また、車両104-a、104-b、および104-cは、上記に説明されるように、デルタファイルを処理し、ECUソフトウェア更新プロセスを実施してもよいことが検討される。
いくつかの実施形態では、サーバ102はまた、上記で識別されたソフトウェア脆弱性によって潜在的に影響される第2のセットの車両を決定するように構成されてもよい。第2のセットの車両は、ECUアクティビティデータをサーバ102に最初に報告した車両のグループの一部ではない(例えば、車両104-dおよび104-eは、先の時間にサーバ102に接続することが不可能であった可能性がある)が、それにもかかわらず、更新されるべきECUを含有し得る、車両104-dおよび104-eを含んでもよい。サーバ102は、展開されたECUバージョン番号の記録に基づいて、またはこれらの車両に行われた照会に基づいて、そのような車両を識別してもよい(例えば、サーバ102は、全ての車両104に、そのECUソフトウェアバージョン番号、3Diffバージョン、または他の識別子を報告するように求めてもよい)。いくつかの実施形態では、サーバ102は、デルタファイルを、更新されるべきECUを使用している全ての車両に送信するように構成されてもよい。いくつかの実施形態では、サーバ102は、車両104内にインストールされるECUを再較正する方法として、デルタファイルを全ての車両104にプッシュ配信するように構成されてもよい。
車両104上に位置する1つ以上のプロセッサ114は、サーバ102からのデルタファイルの受信に応じて、デルタファイルを対応するECUのメモリデバイスの中に設置し、ECUの動作を中断せずに、更新を実施してもよいことが検討される。しかしながら、また、ある状況では、車両104上に位置する1つ以上のプロセッサ114は、好機をねらって更新を実施することを決定してもよいことが検討される。
例えば、いくつかの実施形態では、車両104-b上に位置するプロセッサ114は、車両104-b内のECU112上で起動するソフトウェアを更新する必要性を示す、無線伝送を受信してもよい。プロセッサ114は、車両104-bの動作ステータスを監視し、車両104-bが、ECUソフトウェア更新が禁止される、第1の動作モードにあるかどうかを決定してもよい。車両104-bは、車両104-bがサーバ102と安定接続を確立することができないとき、第1の動作モードにあり得る。車両104-bはまた、無線通信強度が閾値レベルを下回るとき、第1の動作モードにあり得る。さらに、車両104-bは、車両が制限されたエリア内にある、またはある動作を実施している(例えば、閾値を上回る速さで進行している)とき、第1の動作モードにあり得る。上記に提示される実施例は、例証的目的のためのものであって、限定を意味するものではないことを理解されたい。車両104-bは、本開示の精神および範囲から逸脱することなく、種々の他の理由に起因して、第1の動作モードにあり得ることが検討される。
いくつかの実施形態では、プロセッサ114が、車両104-bが第1の動作モードにあることを決定する場合、プロセッサ114は、ECUソフトウェア更新プロセスを遅延させるように選定してもよい。いくつかの実施形態では、プロセッサ114は、受信されたデルタファイルをメモリ116内に記憶してもよい。いくつかの実施形態では、プロセッサ114は、デルタファイルを破棄してもよい(プロセッサ114がECUソフトウェア更新をインストールする準備ができた後に要求され得る)。
プロセッサ114は、車両104-bの動作ステータスの監視を継続し、車両104-bがECUソフトウェア更新が許可される第2の動作モードに遷移するかどうかを決定してもよい。いくつかの実施形態では、プロセッサ114は、事前に確立された間隔に従って(例えば、10分毎に)繰り返し、車両104-bの動作ステータスの監視を継続してもよい。プロセッサ114は、例えば、車両104-bが、閾値レベルを下回る速さで進行する、低電力またはパワーダウンステータスで動作する、事前に選択された環境条件で動作する、アイドリング、または同等物等の所定の安全動作条件のうちの1つに入ると、車両104-bが第2の動作モードにあることを決定してもよい。プロセッサ114はまた、車両104-bがサーバ102と安定接続を確立し得ると、車両104-bが第2の動作モードにあることを決定してもよい。例えば、プロセッサ114は、無線通信強度が強度の閾値を上回ると、またはサーバ102とのネットワーク接続が閾値を下回るエラーレートを有すると、車両104-bが第2の動作モードにあることを決定してもよい。
いったんプロセッサ114が、車両104-bが第2の動作モードにあることを決定すると、プロセッサ114は、ECUソフトウェア更新プロセスを有効にしてもよく、これは、上記に説明されるように、進められてもよい。ECUソフトウェア更新プロセスを遅延させるように決定されるとき、プロセッサ114が、受信されたデルタファイルのコピーをメモリ116内に記憶した場合、プロセッサ114は、受信されたデルタファイルのコピーをメモリ116から読み出し、デルタファイルをECU112のメモリ120の中に書き込んでもよい。ECUソフトウェア更新プロセスを遅延させるように決定されるとき、プロセッサ114が、デルタファイルを破棄した場合、プロセッサ114は、メッセージをサーバ102に送信し、デルタファイルの別のコピーを要求してもよい。プロセッサ114は、デルタファイルをサーバ102からの返信メッセージ内で受信し、デルタファイルをECU112のメモリ120の中に書き込み、上記に説明されるように、更新プロセスを実施してもよい。
プロセッサ114は、ECUソフトウェア更新プロセスの遅延に関するある程度の裁量を有してもよいが、そのような裁量は、いくつかの実施形態では、絶対ではない場合があることを理解されたい。例えば、いくつかの実施形態では、プロセッサ114は、ECUソフトウェア更新がオーバライドステータスを伴って実施されるべきであることを示す、無線伝送をサーバ102から受信し得る。ECUソフトウェア更新が、オーバライド状態を伴って受信される場合、プロセッサ114は、その裁量を行使することが不可能であり得、車両104-bが第1の動作モードにあるかどうかにかかわらず、ECUソフトウェアを更新する必要があり得る。オーバライドステータスを伴うそのような更新は、重要なECU更新を遅延なく直ちに展開するために利用されてもよいことが検討される。
同様に、前述のように、開示される実施形態に従って構成されるデルタファイルを利用する、ECUソフトウェア更新プロセスは、リブートする必要なく、ECUが更新されることを可能にし得る。しかしながら、いくつかの実施形態では、サーバ102は、必須リブートを伴って所与のECUソフトウェア更新が実施されるべきであることを示し得る。ECUソフトウェア更新が、リブートするための要求とともに受信される場合、プロセッサ114は、ECUに、上記に説明されるような更新後、必須リブートを実施するように命令してもよい。
上記の説明から、開示される実施形態に従って構成されるデルタファイルを利用することは、ECU更新プロセスの効率を改良し得ることを理解されたい。これらのデルタファイルは、それらがECUソフトウェア全体を含む必要がないため、サイズがより小さい。これらのデルタファイルはまた、直接、ECUメモリ空間に書き込まれることができ、これは、メモリ空間および電力消費の両方を低減させ得る。これらのデルタファイルはまた、コード変更、変数変更、およびメモリアドレス変更を含む、自己完結型パッケージとして実装されてもよい。これらのデルタファイルはさらに、ECUによって実行され、デルタファイルが位置独立的であることを可能にし、ECUが、そのオリジナルソフトウェアを変更する、またはその現在の動作を中断する必要なく、更新を行うことを可能にし得る、スタートアップコードを含有してもよい。
開示される実施形態に従って構成される仮想ファイルシステム(VFS)もまた、ECU更新プロセスの効率を改良し得る。VFSは、ECUソフトウェアの異なるバージョンを管理および追跡するために利用されてもよく、上記に説明される更新およびロールバック動作をサポートしてもよい。さらに、開示される実施形態に従って構成されるVFSを使用して、ECUソフトウェアの異なるバージョンを管理および追跡することは、バージョン間の差異(デルタ)のみが、追跡される必要があって、複製されたコードが、記録される必要がないため、非常にわずかな空間オーバーヘッドを要求し得ることに留意されたい。
さらに、開示される実施形態に従って構成されるVFSによって管理されるデルタファイルを利用することは、更新後、ECUを再起動する必要性を排除し得ることに留意されたい。具体的には、開示される実施形態に従って構成されるデルタファイルは、コード変更、変数変更、およびメモリアドレス変更を全て一度に実装し、オリジナルECUソフトウェアおよびデルタファイルをともに効果的にリンクさせ、リブートの必要なく、更新されたECUソフトウェアの機能均等物を形成し得る。
開示される実施形態に従って構成されるECUソフトウェア更新プロセスはまた、仮想ECUを更新するために利用されてもよいことが検討される。仮想ECUは、仮想機械上に実装されるECUまたは共有ハードウェアリソース上に常駐するハイパーバイザを指し得る。実質的に同一ECUソフトウェア更新プロセスは、本開示の精神および範囲から逸脱することなく、仮想ECUソフトウェアを更新するために利用されてもよいことが検討される。
ここで図10を参照すると、車両内のECU上でソフトウェアを更新するための更新パッケージを生成するためのプロセス1000を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1000は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1000は、サーバ102によって実施されてもよい。上記に議論されるように、更新パッケージ(例えば、ソース、マップ、バイナリ等のソフトウェア属性に基づいて)は、生産ツールチェーン122から取得されてもよい。さらに、更新パッケージを生成するステップに関連して、依存性管理システム126が参照され得る。特に、依存性管理システム126は、新しい更新パッケージが車両内の他のECUと相互依存するECUと関連付けられるかどうかと、該当する場合、ソフトウェア更新がまた相互依存ECUのためにも実施されるべきであるかどうかとを決定するようにチェックされてもよい。上記に議論されるように、依存性管理システム126は、ECU間の相互依存性がソフトウェア更新が実施される前に確認され得るように、ECUのリストまたはマッピングを維持してもよい。いくつかの実施形態では、リストまたはマッピングもまた、生産ツールチェーン122に基づく。
ステップ1002では、プロセス1000は、車両内のECU(例えば、車両104-b内のECU112)上に記憶されるべきソフトウェア更新(例えば、図2に示されるソフトウェア更新202)の複数の属性にアクセスしてもよい。ステップ1004では、プロセス1000は、車両内のECU上に記憶される現在のソフトウェア(例えば、車両104-b内のECU112上に記憶される現在のソフトウェア204)の複数の対応する属性にアクセスしてもよい。ステップ1006では、プロセス1000は、ソフトウェア更新の属性と現在のソフトウェアの対応する属性を比較してもよい。ステップ1008では、プロセス1000は、ソフトウェア更新の属性と現在のソフトウェアの対応する属性との間の差異を表す、デルタファイルを生成してもよい。ステップ1010では、プロセス1000は、スタートアップコードをデルタファイルの中に統合してもよい。いくつかの実施形態では、スタートアップコードは、デルタファイルが車両内のECU内で自己実行することを有効にしてもよい。
いくつかの実施形態では、ステップ1006において、プロセス1000は、ソフトウェア更新のソース、バイナリコード、およびマップファイルを含む、属性と、現在のソフトウェアのその対応する属性を比較してもよい。上記に議論されるように、ソフトウェア更新および現在のソフトウェアをそのソース、バイナリコード、およびマップファイル属性の観点から表すことは、「グリッド」表現と称され得、ソフトウェア更新を表すグリッドと現在のソフトウェアを表すグリッドとの間の比較は、3次元差分(または3Diff)比較と称され得る。いくつかの実施形態では、比較されている属性は、少なくとも部分的に、ソフトウェア更新を開発するために使用されるプログラミング言語に基づいて、少なくとも部分的に、ソフトウェア更新のバイナリファイル分解能に基づいて、または少なくとも部分的に、ソフトウェア更新と関連付けられたマップファイルに基づいて、識別されてもよい。
いくつかの実施形態では、ステップ1008において、プロセス1000は、そのような3Diff比較を利用して、ECUのバイナリおよび/またはソースコードに行われる変更、ECUによって使用される1つ以上の変数に行われる変更、およびECUによって参照されるメモリアドレスに行われる変更を表すデータを含み得る、デルタファイルを生産してもよい。例えば、いくつかの実施形態では、ステップ1008-1において、プロセス1000は、第1のグリッドをソフトウェア更新に適用してもよく、ステップ1008-2では、プロセス1000は、第2のグリッドをECU上に記憶される現在のソフトウェアに適用してもよい。第1のグリッドは、ソフトウェア更新と関連付けられたバイナリデータ、ソフトウェア更新と関連付けられたソース属性、および/またはソフトウェア更新と関連付けられたマップファイルを含む1つ以上の次元におけるソフトウェア更新を表してもよい。ステップ1008-3では、プロセス1000は、第1および第2のグリッドの比較に基づいて、ソフトウェア更新の属性と現在のソフトウェアの対応する属性を識別してもよい。
いくつかの実施形態では、ステップ1010において、プロセス1000は、デルタファイルのランタイムライブラリを初期化するように構成される、スタートアップコードを統合してもよい。いくつかの実施形態では、プロセス1000は、スタートアップコードを、ECUのプログラムカウンタを更新し、現在のソフトウェア内に含有されるあるコードをスキップし、代わりに、デルタファイル内に含有されるあるコードを実行するように構成してもよい。スタートアップコードは、ECU内のメモリの古いコンテンツが消去される必要があるかどうかを決定してもよい。さらに、スタートアップコードは、変数データをデルタファイルから抽出し、変数データをECUにアクセス可能なランダムアクセスメモリの中に設置してもよい。いくつかの実施形態では、スタートアップコードは、メモリアドレスを更新し、ECU内のメモリアドレスを更新するためのコードを抽出してもよい。
ここで図11を参照すると、車両内でデルタファイルを受信および統合するためのプロセス1100を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1100は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1100は、車両104-b内のECU112によって実施されてもよい。
ステップ1102では、プロセス1100は、ECU(例えば、ECU112)上のソフトウェアのためのソフトウェア更新およびデルタファイルをECU内で実行するためのスタートアップコード(例えば、スタートアップコード208)に対応する複数のデルタ(または変更)を含むデルタファイル(例えば、デルタファイル206)を受信してもよい。ステップ1104では、プロセス1100は、スタートアップコードに基づいて、デルタファイルをECU内で実行してもよい。いくつかの実施形態では、スタートアップコードは、上記の実施形態に従って構成されてもよく、ステップ1106では、プロセス1100は、ECU内のメモリアドレスを更新し、デルタファイルからの複数のデルタに対応させてもよい。
いくつかの実施形態では、デルタファイルは、ECUと関連付けられたメモリデバイス(例えば、図1Aに描写されるようなメモリデバイス120)に書き込まれてもよい。いくつかの実施形態では、デルタファイルは、メモリデバイスからECUと関連付けられたランダムアクセスメモリにブートストラップされてもよい。さらに、デルタファイルは、ECUの継続される動作に影響を及ぼすことなく、またはECUをリブートせずに、ECUによって実行可能であってもよい。
いくつかの実施形態では、デルタファイルは、ECUによって実行されるべき位置独立実行可能コードセグメント(例えば、図4に描写されるようなコード変更210)を含んでもよい。スタートアップコードは、図4に描写されるように、ECUのプログラムカウンタを更新し、デルタファイル内に含有される命令を実行するように構成されてもよい。
いくつかの実施形態では、ECU上のソフトウェアは、複数の機能ユニットにマッピングされてもよく、ECUは、図5-8に描写されるように、仮想ファイルシステム(例えば、図5-8に描写されるようなVFS230)を利用して、これらの機能ユニットの1つ以上のバージョンを管理および追跡するように構成されてもよい。スタートアップコードは、図5-8に描写されるように、デルタファイルをデルタファイルと関連付けられたVFS内の具体的機能にリンクさせるように構成されてもよい。
ここで図12を参照すると、車両のECUが動作している間、ECUソフトウェアへの更新を実施するためのプロセス1200を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1200は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1200は、車両104-b内のECU112によって実施されてもよい。
ステップ1202では、プロセス1200は、車両のECU(例えば、車両104-bのECU112)が動作している間、ECUソフトウェアのためのソフトウェア更新ファイル(例えば、デルタファイル206)を受信してもよい。ステップ1204では、ECUが依然として動作している間、プロセス1200は、ソフトウェア更新ファイルをECUのメモリ(例えば、メモリ120)内の第1のメモリ場所(例えば、図4におけるデルタファイル206が記憶されるメモリ場所)の中に書き込むと同時に、ECUのメモリ内の第2のメモリ場所(例えば、図4における現在のソフトウェア204が記憶されるメモリ場所)内の既存のコードのコードセグメントを実行してもよい。ステップ1206では、プロセス1200は、ソフトウェア更新ファイルに基づいて、ECUのメモリ内の第2のメモリ場所において現在実行されているコードセグメントの実行を中断せずに、ECUのメモリと関連付けられた複数のメモリアドレスを更新してもよい。
いくつかの実施形態では、ECUソフトウェアのためのソフトウェア更新ファイルは、上記に説明されるように、統合されたスタートアップコードを伴うデルタファイルを含んでもよい。プロセス1200は、例えば、ソフトウェア更新ファイルをECUの第1のメモリ場所の中に書き込む前に、ランタイムライブラリを初期化してもよい。いくつかの実施形態では、プロセス1200は、ステップ1208において、ソフトウェア更新の完了に応じて、ECUによって参照される変数の陳腐化された値を表すデータを削除するように構成されてもよい。さらに、プロセス1200はさらに、ステップ1210において、ソフトウェア更新を完了後、またはソフトウェア更新から独立して(例えば、周期的に、または必要に応じて)、ECUのメモリ(例えば、メモリ120)をデフラグメントするように構成されてもよい。
ここで図13を参照すると、車両ECUソフトウェアバージョンを調節するためのプロセス1300を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1300は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1300は、車両104-b内のECU112によって実施されてもよい。
ステップ1302では、プロセス1300は、車両のECU(例えば、車両104-bのECU112)をECUソフトウェアの第1のバージョン(例えば、図5に描写されるバージョン0)からECUソフトウェアの第2のバージョン(例えば、図5に描写されるバージョン1)に実行を調節するためのプロンプトを受信してもよい。ステップ1304では、プロセス1300は、プロンプトに応答して、ECUソフトウェアの第2のバージョンに対応するデルタファイル(例えば、図5に描写されるデルタファイル206)に基づいて、車両内のECU上のECUソフトウェアの第2のバージョンを実行のために構成してもよい。ステップ1306では、プロセス1300はさらに、プロンプトに応答して、車両内のECU上のECUソフトウェアの第1のバージョンを実行不可能になるように構成してもよい。
いくつかの実施形態では、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに続いて展開されてもよい(例えば、図5-7、および図9、T1-T3に描写されるように)。代替として、ECUソフトウェアの第2のバージョンは、ECUソフトウェアの第1のバージョンに先立って展開されてもよい(例えば、図8および図9、T4に描写されるように)。
いくつかの実施形態では、ECU上のECUソフトウェアは、複数の機能ユニットにマッピングされ、ECUは、仮想ファイルシステム(例えば、VFS230)を利用して、これらの機能ユニットの1つ以上のバージョンを管理および追跡するように構成される。ステップ1306では、プロセス1300は、VFSによって管理される1つ以上の機能ユニットに対応するECU内のメモリアドレスを更新し、ECUソフトウェアの第1のバージョンを実行不可能にしてもよい。さらに、ECUソフトウェアの第2のバージョンは、VFSによって無効にされる1つ以上の機能ユニットを有する、ECUソフトウェアの第1のバージョンであってもよい。
いくつかの実施形態では、プロセス1300は、ステップ1308において、ECUのメモリ(例えば、メモリ120)の利用量が、閾値を上回る(例えば、75%または90%満杯)ことを決定してもよい。プロセス1300はまた、ステップ1310において、削除のためのECUのメモリの具体的コンテンツを識別してもよい。加えて、プロセス1300は、その対応する作成日、バージョン数、ファイルサイズ、または同等物に基づいて、削除のためのコンテンツを識別してもよい。例えば、長時間(例えば、閾値時間量)にわたって使用されていない古いデルタファイルは、削除のための良好な候補であり得る。いくつかの実施形態では、プロセス1300はまた、ECUのメモリのコンテンツ全体を置換するように選定してもよい。例えば、オリジナルソフトウェアに加え、過去数年にわたって受信された複数のデルタファイルを保つ代わりに、プロセス1300は、ステップ1312において、メモリのコンテンツ全体を消去し、それを直近のECUソフトウェアのクリーンコピーと置換することを決定してもよい。プロセス1300は、将来的更新のために、上記に説明されるデルタファイルベースの更新プロセスの使用を継続してもよい。
ここで図14を参照すると、車両内のECU異常を識別するためのプロセス1400を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1400は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1400は、車両内のコントローラ(例えば、車両104-b内のプロセッサ114)によって実施されてもよい。
ステップ1402では、プロセス1400は、ECU(例えば、ECU112)のリアルタイム処理アクティビティを表すデータを監視してもよい。ステップ1404では、プロセス1400は、ECUの処理アクティビティに関連する履歴データにアクセスしてもよい。いくつかの実施形態では、履歴データは、ECUの予期される処理アクティビティを表し得る。さらに、プロセス1400は、ECUの動作を監視し、履歴データを生成してもよい。
ステップ1406では、プロセス1400は、リアルタイム処理アクティビティデータと履歴データを比較し、ECUのリアルタイム処理アクティビティ内の1つ以上の異常を識別してもよい。いくつかの実施形態では、異常は、ECUによって使用される具体的メモリ場所に対応してもよい。さらに、異常は、ECUによって使用されるメモリ場所の具体的シーケンスに対応してもよい。異常は、ECUの内外のデータフロー内の少なくとも1つのピークに対応してもよい。さらに、異常は、ECUのプロセッサによるデータ処理内の少なくとも1つのピークに対応してもよい。加えて、異常は、ECUの電力消費における少なくとも1つの異常に対応してもよい。
ステップ1408では、プロセス1400は、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装してもよい。いくつかの実施形態では、制御アクションは、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節する(例えば、ECU上で起動するECUソフトウェアのバージョンをECUソフトウェアの以前のバージョンにロールバックする)ためのプロンプトを発行するステップを含んでもよい。制御アクションはまた、ECUと関連付けられたアラートを送信するステップを含んでもよい。さらに、制御アクションは、ECUから送信される命令をブロックするステップを含んでもよい。
いくつかの実施形態では、プロセス1400は、車両内のオーケストレータ(例えば、上記に説明されるようなオーケストレータ114)によって行われてもよい。いくつかの実施形態では、オーケストレータは、ECUと別個の処理ユニットであってもよい。オーケストレータは、車両内の複数のECU(例えば、ECU112およびECU118の両方)のための監視、アクセス、比較、および実装を実施するように構成されてもよい。
ここで図15を参照すると、車両内のECU異常を識別するためのプロセス1500を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1500は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1500は、車両内のコントローラ(例えば、車両104-b内のプロセッサ114)によって実施されてもよい。
ステップ1502では、プロセス1500は、ECU(例えば、ECU112)のリアルタイム処理アクティビティを表すデータを監視してもよい。ステップ1504では、プロセス1500は、ECUと機能性が匹敵すると見なされる少なくとも1つの他のECUの処理アクティビティに関連する匹敵するデータを受信してもよい。前述のように、いくつかの実施形態では、匹敵するデータは、ECU(例えば、ECU112)に匹敵すると見なされる他のECU(例えば、ECU118)の処理アクティビティに関連するリアルタイムで取得されるデータを含んでもよい。匹敵するデータは、ECUに匹敵すると見なされる他のECUの処理アクティビティに関連する事前に集められたデータを含んでもよい。いくつかの実施形態では、匹敵するデータは、ECU上で起動するECUソフトウェアと関連付けられたルールに基づいて、取得されてもよい。さらに、匹敵するデータは、ECU上で起動するECUソフトウェアの実行の既知の有効シーケンスに基づいて、取得されてもよい。いくつかの実施形態では、匹敵するデータは、ECU上で起動するECUソフトウェアの実行の既知の潜在的に悪意のあるシーケンスに基づいて、取得されてもよい。いくつかの実施形態では、匹敵するデータは、ECU上のECUソフトウェアと関連付けられたマップファイルに基づいて、取得されてもよい。匹敵するデータはまた、他の車両から受信された観察データに基づいて、取得されてもよい。
ステップ1504では、プロセス1500は、リアルタイム処理アクティビティデータと匹敵するデータを比較し、ECUのリアルタイム処理アクティビティ内の1つ以上の異常を識別してもよい。いくつかの実施形態では、異常は、ECUによって使用される具体的メモリ場所に対応してもよい。いくつかの実施形態では、異常は、ECUによって使用されるメモリ場所の具体的シーケンスに対応してもよい。いくつかの実施形態では、異常は、ECUの内外のデータフロー内の少なくとも1つのピークに対応してもよい。異常は、ECUのプロセッサによるデータ処理内の少なくとも1つのピークに対応してもよい。異常はまた、ECUの電力消費における少なくとも1つの異常に対応してもよい。
ステップ1506では、プロセス1500は、少なくとも1つの異常が識別されると、ECUのための制御アクションを実装してもよい。いくつかの実施形態では、制御アクションは、ECUソフトウェアの第1のバージョンからECUソフトウェアの第2のバージョンの実行にECUを調節する(例えば、ECU上で起動するECUソフトウェアのバージョンをECUソフトウェアの以前のバージョンにロールバックする)ためのプロンプトを発行するステップを含んでもよい。制御アクションはまた、ECUと関連付けられたアラートを送信するステップを含んでもよい。さらに、制御アクションは、ECUから送信される命令をブロックするステップを含んでもよい。
ここで図16を参照すると、車両内のECUソフトウェアを好機をねらって更新するためのプロセス1600を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1600は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1600は、車両内のコントローラ(例えば、車両104-b内のプロセッサ114)によって実施されてもよい。
ステップ1602では、プロセス1600は、ECU(例えば、ECU112)上で起動するソフトウェアを更新する必要性を示す、無線伝送を受信するステップを含んでもよい。ステップ1604では、プロセス1600は、車両の動作ステータスを監視し、車両が、ECUソフトウェア更新が禁止される、第1の動作モードにあるかどうかを決定してもよい。
ステップ1606では、プロセス1600は、動作ステータスが禁止されるとき、ECUソフトウェア更新を遅延させてもよい。プロセス1600は、車両が第1の動作モードにあるとき、更新を遅延されるために、ECUソフトウェア更新を車両上に位置するメモリ内に記憶してもよい。代替として、いくつかの実施形態では、プロセス1600は、車両が第1の動作モードにあるとき、ECUソフトウェア更新を破棄してもよい(プロセス1600は、ECUソフトウェア更新を後の時間に要求し得る)。
ステップ1608では、プロセス1600は、車両の動作ステータスの監視を継続し、車両がECUソフトウェア更新が許可される第2の動作モードにあるかどうかを決定してもよい。プロセス1600は、事前に確立された間隔に従って、車両の動作ステータスを繰り返し監視してもよい。いくつかの実施形態では、車両は、車両が所定の安全動作条件で動作するとき、第2の動作モードにあると決定されてもよい。いくつかの実施形態では、車両は、車両がパワーダウンまたはアイドリングステータスにあるとき、第2の動作モードにあると決定されてもよい。車両は、車両が強度の閾値を上回る無線通信強度の周期を有するとき、第2の動作モードにあると決定されてもよい。いくつかの実施形態では、車両は、車両が事前に選択された環境条件で動作するとき、第2の動作モードにあると決定されてもよい。いくつかの実施形態では、車両は、車両が閾値を下回るエラーレートを伴うネットワーク接続を有するとき、第2の動作モードにあると決定されてもよい。
ステップ1610では、プロセス1600は、車両が第2の動作モードにあることが決定されると、遅延されたECUソフトウェア更新を伴うECUの更新を有効にしてもよい。プロセス1600が、ECUソフトウェア更新のコピーを車両上に位置するメモリ内に記憶した場合、プロセス1600は、ECUソフトウェア更新のコピーをメモリから読み出し、更新プロセスを進めてもよい。プロセス1600が、車両が第1の動作モードにあるとき、ECUソフトウェア更新を破棄した場合、プロセス116は、メッセージをECUソフトウェア更新のコピーを提供し得る遠隔サーバに送信し、ECUソフトウェア更新を返信内で受信し、車両が第2の動作モードにあるとき、ECUに関するECUソフトウェア更新をインストールしてもよい。
いくつかの実施形態では、プロセス1600は、ステップ1612において、ソフトウェアを更新する必要性を示す無線伝送が、更新がオーバライドステータスを伴うことのインジケーションを含むかどうかを決定してもよい。無線伝送が、更新がオーバライドステータスを伴うことのインジケーションを含む場合、プロセス1600は、ステップ1614において、車両が第1の動作モードにあるかどうかにかかわらず、ECUソフトウェアを直ちに更新してもよい。
ここで図17を参照すると、更新を1つ以上の車両に自動的に提供するためのプロセス1700を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1700は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1700は、サーバ102によって実施されてもよい。
ステップ1702では、プロセス1700は、ECUアクティビティデータ(例えば、車両104-b内のECU112のアクティビティデータ)を車両から受信してもよい。いくつかの実施形態では、ECUアクティビティデータは、車両内のECUの実際の動作に対応してもよい。
ステップ1704では、プロセス1700は、ECUアクティビティデータに基づいて、車両に影響を及ぼすソフトウェア脆弱性を決定してもよい。いくつかの実施形態では、ソフトウェア脆弱性は、受信されたECUアクティビティデータと予期されるECUアクティビティデータとの間の逸脱に基づいて決定されてもよい。
ステップ1706では、プロセス1700は、決定されたソフトウェア脆弱性に基づいて、ECUソフトウェア更新を識別してもよい。ステップ1708では、プロセス1700は、識別されたECUソフトウェア更新に対応するソフトウェア更新を用いてECU上のソフトウェアを更新するように構成される、デルタファイルを送信してもよい。
いくつかの実施形態では、プロセス1700は、車両のグループ上で実施されてもよい。いくつかの実施形態では、車両のグループは、共通ECUタイプを有する、第1のセットの車両(例えば、車両104-a、104-b、および104-c)を含んでもよい。いくつかの実施形態では、プロセス1700は、第1のセットの車両に影響を及ぼすソフトウェア脆弱性を決定することによって、ソフトウェア脆弱性を決定してもよい。
いくつかの実施形態では、プロセス1700は、ステップ1710において、ソフトウェア脆弱性によって潜在的に影響される第2のセットの車両を決定してもよい。いくつかの実施形態では、プロセス1700は、ステップ1712において、デルタファイルを第1のセットおよび第2のセットの車両の両方に送信してもよい。さらに、デルタファイルは、ECUに関するECUソフトウェア更新をインストールするためのインストールエージェント(例えば、前述のようなスタートアップコード)を含んでもよい。加えて、デルタファイルは、複数の車両内のECUを再較正するように構成されてもよい。プロセス1700はまた、車両のECUに、ECUソフトウェア更新に応答して、リブートするように命令するステップを含んでもよい。
ここで図18を参照すると、ECUエラーを遠隔監視サーバに報告するためのプロセス1800を示す、例示的フローチャートが、示される。上記の実施形態によると、プロセス1800は、図1Aに描写されるシステム100内に実装されてもよい。例えば、プロセス1800は、車両の通信ネットワーク内のプロセッサ(例えば、車両104-b内のプロセッサ114)またはサーバ102によって実施されてもよい。
ステップ1802では、プロセス1800は、データを車両内のオーケストレータから受信してもよい。オーケストレータは、車両内の複数のECU(例えば、車両104-b内のECU112および118)に電子的にポーリングし、それらがポーリングに適切に応答するかどうかを決定するように構成されてもよい。いくつかの実施形態では、データは、直接、ECUから受信されてもよい(すなわち、別個のオーケストレータを伴わずに)。さらに、上記に議論されるように、オーケストレータは、1つ以上の機械学習または人工知能機能をECUから報告されるデータに実施し、ECUが動作属性(例えば、CPU処理、メモリコンテンツ、メモリアクセスパターン、運転者挙動属性等)の許可または予期されるエンベロープ内で動作しているかどうかを決定するように構成されてもよい。
ステップ1804では、プロセス1800は、1つ以上のランタイム属性に基づいて、動作データの統計的モデルを生成するステップを伴う。上記に議論されるように、これは、ECUのための多層モデルの第1の階層の一部であってもよい。統計的モデルは、多変量または一変量時系列分析に基づいてもよく、CPUまたはメモリ使用量、アクセスされているメモリシーケンス、キャッシュコンテンツまたはアクセス履歴、ページ故障等の属性を考慮してもよい。統計的モデルはさらに、離散時間スライスにおけるメモリの占有面積における起動プロセスの相関に基づいてもよい。加えて、統計的モデルは、ECU上で起動するソフトウェアの周波数または実行経路(例えば、VFSに基づいて)に基づいてもよい。さらに、統計的モデルは、運転者挙動属性(例えば、急ブレーキまたはソフトブレーキ、加速、または方向転換、または制動、加速、または方向転換の頻度等)に基づいてもよい。加えて、統計的モデルは、OBDエラーメッセージ等のOBDメッセージを考慮してもよい。
ステップ1806では、プロセス1800は、ライブランタイム更新を監視されている1つ以上のECUから受信するステップを伴う。上記に議論されるように、これは、プッシュ配信またはプル配信機能に基づいてもよい。ECUからのデータは、車両内のオーケストレータまたは遠隔サーバ(例えば、サーバ102)によって取得されてもよい。
ステップ1808では、プロセス1800は、受信されたデータに基づいて、ECUと関連付けられたECUエラーを識別するステップを伴ってもよい。いくつかの実施形態では、ECUエラーは、統計的モデル(上記に説明されるように)とECUからのライブランタイム更新を比較することによって決定される。いくつかの実施形態では、収集されたデータは、ECUの識別子を含んでもよい。収集されたデータは、ECUの最後の既知のポーリングを示すデータを含んでもよい。いくつかの実施形態では、プロセス1800は、収集されたデータに基づいて、ECUに関する休止時間の確率を決定してもよい。ステップ1808では、プロセス1800は、収集されたデータに基づいて、報告(ECUおよび識別されたECUエラーを識別する)を車両から遠隔監視サーバ(例えば、サーバ102)に無線で送信してもよい。
いくつかの実施形態では、プロセス1800は、要求メッセージをECUに送信し、ECUがポーリングに適切に応答しているかどうかを決定することによって、ECUにポーリングしてもよい。いくつかの実施形態では、プロセス1800は、ECUがポーリングに応答することに失敗することに基づいて、ECUエラーを識別してもよい。プロセス1800はまた、ECUがポーリングに正しくなく応答することに基づいて、ECUエラーを識別してもよい。いくつかの実施形態では、プロセス1800は、ECU内の検出されたスタックオーバーフローに基づいて、ECUエラーを識別してもよい。
いくつかの実施形態では、プロセス1800は、ECUにポーリングし、ECUが車両の1つ以上のハードウェアコンポーネントに潜在的に影響を及ぼすECUソフトウェアを実行するかどうかを決定してもよい。プロセス1800は、車両の1つ以上のハードウェアコンポーネントによって報告されるデータ上で実施される1つ以上の統計的分析に基づいて、ECUが潜在的に影響を及ぼすECUソフトウェアを実行するかどうかを決定してもよい。
ステップ1810では、プロセス1800はさらに、検出されたECUおよびECUエラーを識別する報告を車両からサーバ(例えば、サーバ102)に無線で送信するステップを伴ってもよい。続いて、サーバ102は、さらなる分析をECUおよび識別されたエラー上で実施してもよい。いくつかの実施形態では、サーバ102はさらに、ECUから収集されたランタイムデータのサンプル、ECUにおいて起動しているデルタファイルの識別、ECUのソフトウェアバージョン、またはECUメモリの実際のコンテンツ等を受信してもよい。
プロセス1800はまた、ステップ1812において、潜在的影響が有害であるかどうかを決定してもよい。そのような状況では、ステップ18134において、制御アクションが、ECUのために実装されてもよい。例えば、ECUは、上記に説明されるデルタ-ファイルベースのソフトウェア更新プロセスを使用して、調節されてもよい。さらに、ECUは、ECUソフトウェアの以前のバージョンへのロールバックを実施する、またはECUソフトウェアの新しいバージョンへの更新を実施するように命令されてもよい。加えて、いくつかの実施形態では、制御アクションは、ECUをある機能(例えば、ネットワーク通信、メモリ修正等)が限定される安全動作モードに設定するステップを含んでもよい。
開示される実施形態は、必ずしも、その用途において、以下の説明に記載され、および/または図面および/または実施例に図示される、コンポーネントおよび/または方法の構造および配列の詳細に限定されないことを理解されたい。開示される実施形態は、変形例または種々の方法において実践される、または行われることが可能である。
開示される実施形態は、システム、方法、および/またはコンピュータプログラム製品において実装されてもよい。コンピュータプログラム製品は、プロセッサに本開示の側面を行わせるためのコンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を留保および記憶し得る、有形デバイスであることができる。コンピュータ可読記憶媒体は、例えば、限定ではないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の好適な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的実施例の非包括的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能なプログラム可能読取専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読取専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、その上に記録される命令を有する、パンチカードまたは溝内の隆起構造等の機械的にエンコードされたデバイス、および前述の任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用されるように、それ自体では、無線波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を通して伝搬する、電磁波(例えば、光ファイバケーブルを通して通過する、光パルス)、またはワイヤを通して伝送される、電気信号等の一過性信号であるとして解釈されるべきではない。
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から個別のコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、および/または無線ネットワークを介して、外部コンピュータまたは外部記憶デバイスにダウンロードされることができる。ネットワークは、銅伝送ケーブル、光学伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを備えてもよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、個別のコンピューティング/処理デバイスの中のコンピュータ可読記憶媒体内への記憶のために、コンピュータ可読プログラム命令を転送する。
本開示の動作を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++、または同等物等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似プログラミング言語等の従来の手続型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書き込まれるソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、独立型ソフトウェアパッケージとして、部分的にユーザのコンピュータ上および部分的に遠隔コンピュータ上で、または遠隔コンピュータまたはサーバ上で完全に実行されてもよい。後者のシナリオでは、遠隔コンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通して、ユーザのコンピュータに接続されてもよい、または接続は、外部コンピュータに行われてもよい(例えば、インターネットサービスプロバイダを使用して、インターネットを通して)。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む、電子回路が、本開示の側面を実施するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路を個人化することによって、コンピュータ可読プログラム命令を実行してもよい。
本開示の側面は、本開示の実施形態による、方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して本明細書に説明される。フローチャート図および/またはブロック図の各ブロックおよびフローチャート図および/またはブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることを理解されたい。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックに規定される機能/行為を実装するための手段を作成するような機械を生産するために、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、その中に記憶される命令を有する、コンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックに規定される機能/行為の側面を実装する、命令を含む、製造品を構成するように、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに、特定の様式において機能するように指示し得る、コンピュータ可読記憶媒体内に記憶されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される、命令が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックに規定される機能/行為を実装するように、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードされ、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実施させ、コンピュータ実装プロセスを生産させてもよい。
図中のフローチャートおよびブロック図は、本開示の種々の実施形態による、システム、方法、およびコンピュータプログラム製品の可能性として考えられる実装のアーキテクチャ、機能性、および動作を図示する。この点において、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つ以上の実行可能命令を備える、ソフトウェアプログラム、セグメント、またはコードの一部を表してもよい。また、いくつかの代替実装では、ブロック内に記載される機能は、図に記載の順序から外れて生じ得ることに留意されたい。例えば、連続して示される2つのブロックは、実際は、実質的に並行して実行されてもよい、またはブロックは、関わる機能性に応じて、時として、逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロックおよびブロック図および/またはフローチャート図内のブロックの組み合わせは、規定された機能または行為を実施する、特殊目的のハードウェアベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実装されることができることに留意されたい。
本開示の種々の実施形態の説明は、例証目的のために提示されたが、包括的である、または開示される実施形態に限定されることを意図するものではない。多くの修正および変形例が、説明される実施形態の範囲および精神から逸脱することなく、当業者に明白となるであろう。本明細書で使用される専門用語は、実施形態の原理、市場に見出される技術に優る実践的用途または技術的改良を最良に説明する、または当業者が本明細書に開示される実施形態を理解することを可能にするように選定された。
本願からの特許権の存続期間が満期になるまでの間、多くの関連仮想化プラットフォーム、仮想化プラットフォーム環境、信頼クラウドプラットフォームリソース、クラウドベースのアセット、プロトコル、通信ネットワーク、セキュリティトークン、および認証証明書が、開発されるであろうことが予期され、これらの用語の範囲は、全てのそのような新しい技術を先験的に含むように意図される。
明確にするために別個の実施形態のコンテキストに説明される、本開示のある特徴はまた、単一実施形態における組み合わせを提供されてもよいことを理解されたい。逆に言えば、簡潔にするために単一実施形態のコンテキストに説明される、本開示の種々の特徴はまた、別個に、または任意の好適な副次的組み合わせにおいて、または本開示の任意の他の説明される実施形態において好適なものとして、提供されてもよい。種々の実施形態のコンテキストに説明される、ある特徴は、実施形態がそれらの要素を伴わずに動作不能ではない限り、それらの実施形態の不可欠な特徴と見なされるべきではない。
本開示は、その具体的実施形態と併せて説明されたが、多くの代替、修正、および変形例が、当業者に明白となるであろうことが明白である。故に、添付の請求項の精神および広義の範囲内にある、全てのそのような代替、修正、および変形例を包含するように意図される。

Claims (20)

  1. 非一過性のコンピュータ読み取り可能な媒体であって、前記非一過性のコンピュータ読み取り可能な媒体は、命令を含み、前記命令は、少なくとも1つのプロセッサよって実行されると、コントローラ上のソフトウェアを更新するための更新パッケージを生成するための動作を実行することを前記少なくとも1つのプロセッサに行わせ、
    前記動作は、
    前記コントローラ上で実行されるべきソフトウェア更新の第1の属性にアクセスすることと、
    前記コントローラ上に記憶されている現在のソフトウェアの第2の属性にアクセスすることと、
    前記第1の属性と前記第2の属性とを比較することと、
    前記比較において決定された前記第1の属性と前記第2の属性との間の差異に基づいてデルタファイルを生成することと、
    前記デルタファイルを前記コントローラに提供することであって、前記デルタファイルは、前記コントローラ内で実行されるように構成されており、前記コントローラ内のスタートアップコードは、前記コントローラのプログラムカウンタを更新することにより、前記現在のソフトウェア内に含まれているコードのセグメントをスキップし、その代わりに前記デルタファイル内に含まれているコードのセグメントを実行するように構成されている、ことと
    を含む、非一過性のコンピュータ読み取り可能な媒体。
  2. 前記スタートアップコードは、前記デルタファイルの中に統合されている、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  3. 前記スタートアップコードは、前記デルタファイルが前記コントローラによって受信される前に、前記コントローラ上にインストールされている、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  4. 前記スタートアップコードは、前記デルタファイル内に含まれる少なくとも1つの命令の実行を前記コントローラ上に記憶されている前記現在のソフトウェアに含まれるコードにリンクさせるように構成されている、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  5. 前記現在のソフトウェアと前記デルタファイル内に含まれる少なくとも1つの命令との前記リンクされた実行は、前記コントローラをリブートする前に機能しているソフトウェア更新の機能均等物を形成する、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  6. 前記デルタファイルは、容認可能な動作エンベロープからの前記コントローラの挙動の検出された逸脱に応答して、前記コントローラに提供される、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  7. 前記容認可能な動作エンベロープは、前記コントローラの観察される機能性のモデルまたはマップによって表される、請求項6に記載の非一過性のコンピュータ読み取り可能な媒体。
  8. 前記デルタファイルは、位置独立コードを含む、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  9. 前記コントローラは、第1のコントローラであり、
    前記動作は、
    相互依存性マッピングを使用して、前記第1のコントローラと第2のコントローラとの間の関係を決定することと、
    前記第1のコントローラと前記第2のコントローラとの間の関係に基づいて、前記第2のコントローラにおいてソフトウェア変更をプロンプトすることと
    をさらに含む、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  10. 前記相互依存性マッピングは、予期または要求されているデータ通信の予期されたフォーマット、特定のネットワークアドレス、または、特定の通信のタイミング要求のうちの少なくとも1つに基づいている、請求項9に記載の非一過性のコンピュータ読み取り可能な媒体。
  11. 前記第1の属性および前記第2の属性のそれぞれは、ソースコード次元、バイナリコード次元、または、マップファイル次元のうちの少なくとも1つを含む、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  12. 前記第1の属性は、前記ソフトウェア更新の複数の互いに異なるソフトウェア表現であり、
    前記第2の属性は、前記現在のソフトウェアの複数の互いに異なるソフトウェア表現である、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  13. 前記デルタファイルが、前記コントローラが動作している間に、前記コントローラの単一のメモリの第1の場所に記憶される一方で、前記単一のメモリの第2の場所に記憶されている現在のコントローラのソフトウェアのコードセグメントを同時に実行する、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  14. 前記第1の属性と前記第2の属性とを比較することは、ソースコード言語を識別するソース属性、ソースコードのバージョン、ソースコードがフラットであるかどうか、ソースコード内で参照されるオブジェクトの数、または、ソースコード内で参照されるオブジェクトのタイプのうちの少なくとも1つに基づいている、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  15. 前記第1の属性と前記第2の属性とを比較することは、現在のコントローラのソフトウェアまたは現在のソフトウェア更新内の機能とエンティティとの間の関係、前記現在のコントローラのソフトウェアまたは前記現在のソフトウェア更新のサイズ、具体的メモリアドレス、メモリ場所に対応する具体的機能、または、メモリ場所に対応するコマンドのうちの少なくとも1つを説明するマップファイルに基づいている、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  16. 前記コントローラは、仮想ファイルシステム(VFS)を使用して、前記コントローラに関連付けられた異なるコードのセグメントの異なるバージョンを追跡するように構成されている、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  17. 前記デルタファイルは、バイナリファイルまたは16進数ファイルである、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  18. 前記デルタファイルは、第1のデルタファイルであり、
    前記第1のデルタファイルが前記コントローラに提供されるとき、前記コントローラは、第2のデルタファイルを記憶する、請求項1に記載の非一過性のコンピュータ読み取り可能な媒体。
  19. コントローラ上のソフトウェアを更新するための更新パッケージを生成するシステムであって、前記システムは、
    1つ以上のプロセッサと、
    1つ以上のメモリと
    を備え、
    前記1つ以上のメモリは、命令を有し、前記命令は、前記少なくとも1つのプロセッサよって実行されると、
    前記コントローラ上で実行されるべきソフトウェア更新の第1の属性にアクセスすることと、
    前記コントローラ上に記憶されている現在のソフトウェアの第2の属性にアクセスすることと、
    前記第1の属性と前記第2の属性とを比較することと、
    前記比較において決定された前記第1の属性と前記第2の属性との間の差異に基づいてデルタファイルを生成することと、
    前記デルタファイルを前記コントローラに提供することであって、前記デルタファイルは、前記コントローラ内で実行されるように構成されており、前記コントローラ内のスタートアップコードは、前記コントローラのプログラムカウンタを更新することにより、前記現在のソフトウェア内に含まれているコードのセグメントをスキップし、その代わりに前記デルタファイル内に含まれているコードのセグメントを実行するように構成されている、ことと
    を含む動作を実行することを前記少なくとも1つのプロセッサに行わせる、システム。
  20. コントローラ上のソフトウェアを更新するための更新パッケージを生成するためのコンピュータ実装方法であって、前記方法は、
    前記コントローラ上で実行されるべきソフトウェア更新の第1の属性にアクセスすることと、
    前記コントローラ上に記憶されている現在のソフトウェアの第2の属性にアクセスすることと、
    前記第1の属性と前記第2の属性とを比較することと、
    前記比較において決定された前記第1の属性と前記第2の属性との間の差異に基づいてデルタファイルを生成することと、
    前記デルタファイルを前記コントローラに提供することであって、前記デルタファイルは、前記コントローラ内で実行されるように構成されており、前記コントローラ内のスタートアップコードは、前記コントローラのプログラムカウンタを更新することにより、前記現在のソフトウェア内に含まれているコードのセグメントをスキップし、その代わりに前記デルタファイル内に含まれているコードのセグメントを実行するように構成されている、ことと
    を含む、方法。
JP2022172935A 2017-07-25 2022-10-28 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出 Active JP7407261B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023212870A JP2024020663A (ja) 2017-07-25 2023-12-18 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762536767P 2017-07-25 2017-07-25
US62/536,767 2017-07-25
US201762560224P 2017-09-19 2017-09-19
US62/560,224 2017-09-19
PCT/IB2018/001034 WO2019021064A1 (en) 2017-07-25 2018-07-24 CONSTRUCTION OF SOFTWARE DELTA UPDATES FOR VEHICLE ECU SOFTWARE AND TOOL-BASED ANOMALY DETECTION
JP2020504213A JP7169340B2 (ja) 2017-07-25 2018-07-24 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020504213A Division JP7169340B2 (ja) 2017-07-25 2018-07-24 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023212870A Division JP2024020663A (ja) 2017-07-25 2023-12-18 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Publications (2)

Publication Number Publication Date
JP2022191516A true JP2022191516A (ja) 2022-12-27
JP7407261B2 JP7407261B2 (ja) 2023-12-28

Family

ID=65037881

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2020504213A Active JP7169340B2 (ja) 2017-07-25 2018-07-24 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出
JP2022172935A Active JP7407261B2 (ja) 2017-07-25 2022-10-28 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出
JP2023212870A Pending JP2024020663A (ja) 2017-07-25 2023-12-18 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020504213A Active JP7169340B2 (ja) 2017-07-25 2018-07-24 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023212870A Pending JP2024020663A (ja) 2017-07-25 2023-12-18 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Country Status (5)

Country Link
US (63) US10496398B2 (ja)
EP (1) EP3590037A4 (ja)
JP (3) JP7169340B2 (ja)
CN (1) CN111133412A (ja)
WO (1) WO2019021064A1 (ja)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108438B2 (en) * 2015-01-28 2018-10-23 Hewlett-Packard Development Company, L.P. Machine readable instructions backward compatibility
GB2551516B (en) * 2016-06-20 2019-03-20 Jaguar Land Rover Ltd Activity monitor
US10191732B2 (en) * 2017-06-09 2019-01-29 Citrix Systems, Inc. Systems and methods for preventing service disruption during software updates
EP3428748B1 (de) * 2017-07-13 2020-08-26 Siemens Aktiengesellschaft Verfahren und anordnung zum betrieb von zwei redundanten systemen
US10496398B2 (en) 2017-07-25 2019-12-03 Aurora Labs Ltd. Hot updates to ECU software using tool chain
US11256494B2 (en) * 2017-10-02 2022-02-22 Red Bend Ltd. ECU and peripherals update using central dispatch unit
JP6915500B2 (ja) * 2017-11-06 2021-08-04 トヨタ自動車株式会社 更新システム、電子制御装置、更新管理装置、及び更新管理方法
CN107797820B (zh) * 2017-11-13 2021-03-23 北京百度网讯科技有限公司 用于生成补丁的方法和装置
US10949329B2 (en) * 2017-12-26 2021-03-16 Oracle International Corporation Machine defect prediction based on a signature
US10988091B2 (en) * 2018-01-08 2021-04-27 Ford Global Technologies, Llc Erase-replace OTA smart power strategy
WO2019157180A2 (en) * 2018-02-07 2019-08-15 HT Research Inc. Workgroup hierarchical core structures for building real-time workgroup systems
US10495691B2 (en) * 2018-02-09 2019-12-03 Nxp Usa, Inc. System architecture method and apparatus for adaptive hardware fault detection with hardware metrics subsystem
JP7010049B2 (ja) * 2018-02-16 2022-01-26 トヨタ自動車株式会社 車両制御装置、プログラムの更新確認方法および更新確認プログラム
US10834207B2 (en) * 2018-02-27 2020-11-10 Excelfore Corporation System and method for updating software in an electronic device
JP7311245B2 (ja) 2018-03-07 2023-07-19 トヨタ自動車株式会社 マスタ装置、マスタ、制御方法、プログラム及び車両
JP7010087B2 (ja) * 2018-03-16 2022-01-26 トヨタ自動車株式会社 プログラム更新管理装置、プログラム更新管理方法、およびプログラム
US20190324858A1 (en) * 2018-04-24 2019-10-24 GM Global Technology Operations LLC Rollback recovery from partial failure in multiple electronic control unit over-the-air updates
US10762444B2 (en) * 2018-09-06 2020-09-01 Quickpath, Inc. Real-time drift detection in machine learning systems and applications
JP6552674B1 (ja) * 2018-04-27 2019-07-31 三菱電機株式会社 検査システム
US11237820B2 (en) * 2018-05-29 2022-02-01 Nordic Semiconductor Asa Delta file with reversing data
JP6718483B2 (ja) * 2018-06-29 2020-07-08 株式会社Subaru 車両
US20200043259A1 (en) * 2018-08-06 2020-02-06 GM Global Technology Operations LLC System and method for enhancing vehicle user experience
JP7031643B2 (ja) * 2018-08-10 2022-03-08 株式会社デンソー 車両情報通信システム
DE102018215011A1 (de) * 2018-09-04 2020-03-05 Audi Ag Verfahren zum Installieren eines Programmcodepakets in ein Gerät sowie Gerät und Kraftfahrzeug
KR102610730B1 (ko) * 2018-09-05 2023-12-07 현대자동차주식회사 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체
US11556326B2 (en) * 2018-09-06 2023-01-17 Arm Limited Methods for performing a rollback-capable software update at a device
US10963239B2 (en) * 2018-10-18 2021-03-30 International Business Machines Corporation Operational file management and storage
US10545850B1 (en) * 2018-10-18 2020-01-28 Denso International America, Inc. System and methods for parallel execution and comparison of related processes for fault protection
KR20200043666A (ko) * 2018-10-18 2020-04-28 현대자동차주식회사 소프트웨어 업데이트 시스템, 소프트웨어 업데이트 방법 및 소프트웨어 업데이트 서버
US10814805B2 (en) * 2018-11-01 2020-10-27 Robert Bosch Gmbh Sensor wiring with parallel bus port configuration
JP7160111B2 (ja) * 2018-11-28 2022-10-25 株式会社オートネットワーク技術研究所 監視装置、監視プログラム及び監視方法
WO2020115818A1 (ja) * 2018-12-04 2020-06-11 三菱電機株式会社 更新管理装置、更新管理システム及び更新管理方法
KR102085899B1 (ko) * 2018-12-10 2020-03-06 현대오트론 주식회사 자동차 전자제어장치의 사용량 모니터링 방법 및 모니터링 유닛
US11840244B2 (en) * 2018-12-21 2023-12-12 Upstream Security, Ltd. System and method for detecting behavioral anomalies among fleets of connected vehicles
US11228884B2 (en) * 2019-01-16 2022-01-18 Ford Global Technologies, Llc Vehicle-to-vehicle file sharing system and method
JP7200708B2 (ja) * 2019-01-31 2023-01-10 富士通株式会社 車載システム及びecu
JP7419658B2 (ja) * 2019-02-25 2024-01-23 株式会社デンソー センター装置、データ配信システム、制限実施プログラム及び制限実施方法
CN109714727A (zh) * 2019-02-27 2019-05-03 同济汽车设计研究院有限公司 一种基于ota技术的无人清扫车优化方法
JP7134903B2 (ja) * 2019-03-05 2022-09-12 株式会社日立製作所 不具合再現支援システム、不具合再現支援方法
EP3713267A1 (en) * 2019-03-19 2020-09-23 Deutsche Telekom AG Communication device and edge server for communication network
JP7392272B2 (ja) * 2019-03-22 2023-12-06 株式会社デンソー センター装置、データ通信システム、配信制御プログラム及び配信制御方法
JP2022527266A (ja) 2019-03-25 2022-06-01 オーロラ ラブズ リミテッド コード行挙動および関係モデルの発生ならびに署名
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
CN111891134B (zh) * 2019-05-06 2022-09-30 北京百度网讯科技有限公司 自动驾驶处理系统和片上系统、监测处理模块的方法
CN110065501B (zh) * 2019-05-14 2022-07-26 上汽通用五菱汽车股份有限公司 电子控制器的软件控制方法、配置设备及可读存储介质
CN110219742B (zh) * 2019-05-16 2020-11-27 上海星融汽车科技有限公司 车辆动力调校方法
EP3742295A1 (en) * 2019-05-23 2020-11-25 NXP USA, Inc. Automatic firmware rollback
JP7363118B2 (ja) * 2019-06-14 2023-10-18 マツダ株式会社 外部環境認識装置
US11206185B2 (en) 2019-06-23 2021-12-21 Juniper Networks, Inc. Rules driven software deployment agent
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
DE102020118563A1 (de) * 2019-07-17 2021-01-21 Steering Solutions Ip Holding Corporation Middleware-system und -verfahren
US20220283798A1 (en) * 2019-08-06 2022-09-08 Nec Corporation Mobility control system, method, and program
US11281522B2 (en) * 2019-08-30 2022-03-22 Microsoft Technology Licensing, Llc Automated detection and classification of dynamic service outages
JP7298427B2 (ja) * 2019-10-07 2023-06-27 トヨタ自動車株式会社 プログラム更新システムおよびプログラム更新方法
US11169795B2 (en) 2019-10-09 2021-11-09 Toyota Motor North America, Inc. Management of transport software updates
WO2021072324A1 (en) * 2019-10-09 2021-04-15 Toyota Motor North America, Inc. Management of transport software updates
US11294662B2 (en) 2019-10-09 2022-04-05 Toyota Motor North America, Inc. Management of transport software updates
US11422792B2 (en) 2019-10-09 2022-08-23 Toyota Motor North America, Inc. Management of transport software updates
EP4045373A4 (en) * 2019-10-16 2023-11-15 LHP, Inc. VEHICLE SECURITY MONITORING SYSTEM
US11194008B2 (en) * 2019-10-25 2021-12-07 Toyota Motor Engineering And Manufacturing North America, Inc. Triangulation and calibration of electronic control units
US20210132937A1 (en) * 2019-10-31 2021-05-06 Toyota Jidosha Kabushiki Kaisha Vehicle control device, program update method, and program update system
US10606585B1 (en) * 2019-11-12 2020-03-31 Capital One Services, Llc Computer-based systems configured for automated roll-forward of software package versions and methods of use thereof
JP7310570B2 (ja) * 2019-11-27 2023-07-19 株式会社オートネットワーク技術研究所 車載更新装置、プログラム及び、プログラムの更新方法
US11604635B2 (en) * 2019-12-06 2023-03-14 Delta Electronics, Inc. Online program updating method
US11537943B2 (en) * 2019-12-13 2022-12-27 Sap Se Data center disaster circuit breaker utilizing machine learning
US11494173B2 (en) 2019-12-23 2022-11-08 Gm Cruise Holdings Llc Vehicle software deployment system
US11281454B2 (en) * 2020-01-31 2022-03-22 Dell Products L.P. Microcode update system
JP7419557B2 (ja) * 2020-02-28 2024-01-22 華為技術有限公司 ソフトウェアバージョンロールバックの方法、装置、およびシステム
FR3108191B1 (fr) * 2020-03-10 2023-05-19 Psa Automobiles Sa Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule
US11521084B2 (en) 2020-03-12 2022-12-06 Nxp B.V. Anomaly detection in a data processing system
CN111221327B (zh) * 2020-03-17 2021-04-20 北京汽车股份有限公司 车辆故障检测方法、装置、存储介质以及车辆
US11989545B2 (en) * 2020-03-26 2024-05-21 EMC IP Holding Company LLC Flexible upgrade of multi-subsystem products
FR3108742B1 (fr) 2020-03-30 2022-02-25 Renault Sas Dispositifs et procédé de contrôle d’unités de commande électroniques d’un véhicule automobile
CN111459772A (zh) * 2020-04-16 2020-07-28 江西科技学院 一种计算机故障报警系统
CN113807075A (zh) * 2020-06-11 2021-12-17 卓品智能科技无锡有限公司 一种使用文件系统增加标定能力的方法
CN111930560B (zh) * 2020-06-29 2023-02-28 东风汽车集团有限公司 一种ecu自学习数据备份方法及系统
US11327456B2 (en) 2020-06-29 2022-05-10 Aurora Labs Ltd. Efficient controller data generation and extraction
JP7419992B2 (ja) * 2020-07-02 2024-01-23 トヨタ自動車株式会社 ソフトウェア更新装置、方法、プログラムおよび車両
KR20220028879A (ko) * 2020-08-31 2022-03-08 현대자동차주식회사 차량의 ecu 업데이트 관리 장치 및 그 방법
CN112286170B (zh) * 2020-10-29 2021-10-22 深圳市元征科技股份有限公司 车辆ecu刷写方法、装置、设备及存储介质
CN112598818B (zh) * 2020-12-11 2023-03-31 合众新能源汽车股份有限公司 一种车辆状态分析系统和分析方法
US11281453B1 (en) * 2021-01-06 2022-03-22 Pensando Systems, Inc. Methods and systems for a hitless rollback mechanism during software upgrade of a network appliance
WO2022154404A1 (ko) * 2021-01-13 2022-07-21 한온시스템 주식회사 인공지능 기반 차량 통합 열 관리 시스템의 제어 시스템 및 그 제어 방법
EP4033314B1 (de) * 2021-01-26 2024-05-15 Siemens Aktiengesellschaft Ereignisbedingte ladebeschränkungen eines servers eines leitsystems einer technischen anlage
US11934531B2 (en) 2021-02-25 2024-03-19 Bank Of America Corporation System and method for automatically identifying software vulnerabilities using named entity recognition
EP4303720A4 (en) * 2021-03-17 2024-04-24 Huawei Tech Co Ltd RADIO UPGRADE METHOD, APPARATUS AND SYSTEM, STORAGE MEDIUM AND PROGRAM
US11271971B1 (en) * 2021-03-19 2022-03-08 King Saud University Device for facilitating managing cyber security health of a connected and autonomous vehicle (CAV)
CN113196230A (zh) * 2021-03-24 2021-07-30 华为技术有限公司 终端升级的方法及装置
JP7406522B2 (ja) * 2021-03-25 2023-12-27 本田技研工業株式会社 制御装置、及び、端末装置
US11363048B1 (en) 2021-03-25 2022-06-14 Bank Of America Corporation Information security system and method for security threat detection in data transmission
JP2022160125A (ja) * 2021-04-06 2022-10-19 トヨタ自動車株式会社 センタ、配信制御方法、及び配信制御プログラム
CN112947975A (zh) * 2021-04-15 2021-06-11 重庆金康赛力斯新能源汽车设计院有限公司 程序刷写的方法、系统、装置、存储介质和计算机设备
US11580094B2 (en) * 2021-05-27 2023-02-14 Capital One Services, Llc Real-time anomaly determination using integrated probabilistic system
FR3123473A1 (fr) * 2021-05-31 2022-12-02 Psa Automobiles Sa Véhicule automobile, système automobile et procédé associé pour la mise à jour d’un calculateur
CN113393592B (zh) * 2021-06-02 2022-11-04 中寰卫星导航通信有限公司黑龙江分公司 基于车载终端的全流程检测方法、装置、设备及介质
US11567672B2 (en) 2021-06-17 2023-01-31 Vmware, Inc. Data and configuration integrity checking post-rollback using backups in virtualized computing environments
US11645158B2 (en) * 2021-06-17 2023-05-09 Vmware, Inc. Automated rollback in virtualized computing environments
CN113342846B (zh) * 2021-06-29 2024-03-19 福州外语外贸学院 基于大数据的预警把控提醒方法、装置及计算机设备
CN113434180B (zh) * 2021-07-13 2022-08-09 上海浦东发展银行股份有限公司 应用的数据处理方法、装置、服务器和存储介质
JP2023019048A (ja) * 2021-07-28 2023-02-09 トヨタ自動車株式会社 センタ、方法、及びプログラム
US11868755B2 (en) 2021-07-30 2024-01-09 Toyota Motor Engineering & Manufacturing North America, Inc. Updating software installed on an electronic unit on a vehicle
CN113428167B (zh) * 2021-08-25 2021-11-26 长沙德壹科技有限公司 一种ecu异常识别方法
DE102021125672A1 (de) 2021-10-04 2023-04-06 Bayerische Motoren Werke Aktiengesellschaft Prozessorsystem für ein Fahrzeug und Verfahren zum Überwachen eines Prozesszustands nach einem Remote-Software-Update
WO2023065154A1 (en) * 2021-10-20 2023-04-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for vehicle application
CN114265382A (zh) * 2021-11-12 2022-04-01 潍柴动力股份有限公司 Ecu刷写故障处理方法、装置、电子设备及存储介质
US20230213901A1 (en) 2022-01-03 2023-07-06 Johnson Controls Tyco IP Holdings LLP Building management system with adaptive edge processing on local servers
US12008355B2 (en) * 2022-01-18 2024-06-11 Dell Products L.P. System and method for generating a specialized upgrade notification based on client intent for an application abstention
US11755304B2 (en) * 2022-02-04 2023-09-12 Toshiba Tec Kabushiki Kaisha Electric device and method for controlling same
CN115346287B (zh) * 2022-07-18 2024-06-07 北京经纬恒润科技股份有限公司 信息配置方法及装置
DE102022118843A1 (de) 2022-07-27 2024-02-01 Audi Aktiengesellschaft Verfahren zum Bereitstellen eines Updates für ein Kraftfahrzeug
CN116088913B (zh) * 2023-04-11 2023-06-13 北京集度科技有限公司 整车升级软件的集成设备、方法和计算机程序产品

Family Cites Families (313)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US201804A (en) * 1878-03-26 Improvement in stereoscopes
US2570367A (en) * 1948-03-25 1951-10-09 Yoder Co Method of and apparatus for continuous flow densifiers
US3715572A (en) * 1971-03-05 1973-02-06 D Bennett Vehicle location and heading computer system
US4138723A (en) * 1977-08-12 1979-02-06 General Motors Corporation Motor vehicle speed control system
US5442553A (en) 1992-11-16 1995-08-15 Motorola Wireless motor vehicle diagnostic and software upgrade system
US5586130A (en) 1994-10-03 1996-12-17 Qualcomm Incorporated Method and apparatus for detecting fault conditions in a vehicle data recording device to detect tampering or unauthorized access
BR9607641A (pt) 1995-03-03 1998-05-26 Qualcomm Inc Método e aparelho para a monitorição de parâmetros de unidades por controle eletrônico para veículo
US9443358B2 (en) * 1995-06-07 2016-09-13 Automotive Vehicular Sciences LLC Vehicle software upgrade techniques
US6393046B1 (en) * 1996-04-25 2002-05-21 Sirf Technology, Inc. Spread spectrum receiver with multi-bit correlator
US5890080A (en) 1996-06-25 1999-03-30 Freightliner Corporation Truck with monitored and resettable electronic control units
JPH113222A (ja) * 1997-06-12 1999-01-06 Matsushita Electric Ind Co Ltd 情報処理装置
AU8397298A (en) * 1997-07-15 1999-02-10 Pocket Soft, Inc. System for finding differences between two computer files and updating the computer files
US5995750A (en) * 1997-12-16 1999-11-30 Micro Motion, Inc. Memory protection system for a multi-tasking system
US7349557B2 (en) * 1998-06-19 2008-03-25 Solidus Networks, Inc. Electronic transaction verification system
US6260157B1 (en) 1999-02-16 2001-07-10 Kurt Schurecht Patching of a read only memory
US6981176B2 (en) * 1999-05-10 2005-12-27 Delphi Technologies, Inc. Secured microcontroller architecture
SE514840C2 (sv) 1999-07-08 2001-04-30 Axis Ab Metod och apparat för uppgradering av fasta program i ett inbyggt system
US7587467B2 (en) * 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6272047B1 (en) * 1999-12-17 2001-08-07 Micron Technology, Inc. Flash memory cell
JP3709769B2 (ja) * 2000-07-27 2005-10-26 株式会社デンソー 異常検出システム
US7092803B2 (en) * 2000-08-18 2006-08-15 Idsc Holdings, Llc Remote monitoring, configuring, programming and diagnostic system and method for vehicles and vehicle components
JP2002108835A (ja) 2000-09-29 2002-04-12 Mitsubishi Electric Corp 車載電子制御装置
US7058941B1 (en) * 2000-11-14 2006-06-06 Microsoft Corporation Minimum delta generator for program binaries
US6795941B2 (en) * 2000-12-21 2004-09-21 Honeywell International Inc. Method for diagnosing a network
CN1529847A (zh) * 2001-07-16 2004-09-15 任宇清 内嵌软件更新系统
US6609051B2 (en) * 2001-09-10 2003-08-19 Daimlerchrysler Ag Method and system for condition monitoring of vehicles
DE10158988A1 (de) * 2001-11-30 2003-06-12 Bosch Gmbh Robert Schnittstellenbaustein in einem Fahrzeug
US9134989B2 (en) * 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
JP2003256228A (ja) * 2002-02-28 2003-09-10 Denso Corp プログラム書換装置
US6894611B2 (en) 2002-09-23 2005-05-17 General Electric Company Method and system for uploading and downloading engine control data
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US7461373B2 (en) * 2002-12-05 2008-12-02 Samsung Electronics Co., Ltd. Apparatus and method for upgrading software of a wireless mobile station
DE10260103A1 (de) * 2002-12-19 2004-07-01 Robert Bosch Gmbh Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät
JP2004206353A (ja) 2002-12-25 2004-07-22 Renesas Technology Corp ソフトウェアのインストール方法
US7149508B2 (en) * 2003-02-05 2006-12-12 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
US7650596B2 (en) * 2003-02-13 2010-01-19 Accurate Technologies Inc. Method for ECU calibration and diagnostics development
US8225293B2 (en) 2003-02-13 2012-07-17 Accurate Technologies Inc. Method for supporting calibration parameters in an ECU
JP4662925B2 (ja) * 2003-04-23 2011-03-30 マックス−プランク−ゲゼルシャフト・ツア・フェルデルング・デア・ヴィッセンシャフテン・エー・ファオ 改善された効率を有する結核ワクチン
US7735057B2 (en) * 2003-05-16 2010-06-08 Symantec Corporation Method and apparatus for packaging and streaming installation software
US7810088B2 (en) * 2003-06-20 2010-10-05 Samsung Electronics Co., Ltd. Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
US7002352B2 (en) * 2003-06-24 2006-02-21 General Motors Corporation Reference voltage diagnostic suitable for use in an automobile controller and method therefor
US7886287B1 (en) * 2003-08-27 2011-02-08 Avaya Inc. Method and apparatus for hot updating of running processes
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7509636B2 (en) * 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US7478381B2 (en) * 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7549148B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
US8677117B2 (en) * 2003-12-31 2014-03-18 International Business Machines Corporation Remote management of boot application
US7904895B1 (en) * 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8539469B2 (en) * 2004-05-11 2013-09-17 Microsoft Corporation Efficient patching
US7890946B2 (en) * 2004-05-11 2011-02-15 Microsoft Corporation Efficient patching
US7366589B2 (en) * 2004-05-13 2008-04-29 General Motors Corporation Method and system for remote reflash
US7676804B2 (en) 2004-05-20 2010-03-09 Caterpillar Inc. Systems and method for remotely modifying software on a work machine
WO2005119432A2 (en) 2004-06-01 2005-12-15 Red Bend Ltd Method and system for in-place updating content stored in a storage device
EP1754322A4 (en) * 2004-06-10 2012-03-07 Samsung Electronics Co Ltd DEVICE AND METHOD FOR EFFICIENTLY PRODUCING DELTA FILES FOR AIR RADIO UPGRADES IN A WIRELESS NETWORK
US7529779B2 (en) * 2004-06-10 2009-05-05 Samsung Electronics Co., Ltd. Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
US20060155576A1 (en) * 2004-06-14 2006-07-13 Ryan Marshall Deluz Configurable particle system representation for biofeedback applications
DE602005019499D1 (de) * 2004-07-15 2010-04-08 Hitachi Ltd Fahrzeugsteuerungsystem
WO2006036811A2 (en) * 2004-09-22 2006-04-06 Xyratex Technnology Limited System and method for configuring memory devices for use in a network
US20060112152A1 (en) * 2004-11-22 2006-05-25 Microsoft Corporation Smart patching by targeting particular prior versions of a file
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060259207A1 (en) * 2005-04-20 2006-11-16 Denso Corporation Electronic control system for automobile
US20060259903A1 (en) * 2005-05-12 2006-11-16 Xerox Corporation Method for creating unique identification for copies of executable code and management thereof
EP1897214A2 (en) * 2005-06-30 2008-03-12 Siemens VDO Automotive Corporation Controller method, apparatus and article suitable for electric drive
EP1755034B1 (en) * 2005-08-18 2017-01-18 Telefonaktiebolaget LM Ericsson (publ) Object code generation for increasing the performance of delta files
EP1755039B1 (en) * 2005-08-18 2008-11-05 Telefonaktiebolaget LM Ericsson (publ) Feedback linker for increased delta performance
DE602005025385D1 (de) * 2005-12-20 2011-01-27 Ericsson Telefon Ab L M Erstellung inkrementeller Programmaktualisierungen
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070143560A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with memory allocation for a directly mapped file storage system
US20070203877A1 (en) * 2006-02-28 2007-08-30 Fujie Qu Intermediate cache utility for file system access
JP2007304954A (ja) * 2006-05-12 2007-11-22 Sharp Corp メモリ保護機能を有するコンピュータシステム
ES2328057T3 (es) * 2006-05-16 2009-11-06 Saab Ab Sistema de control tolerante a fallos.
JP4700562B2 (ja) * 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
US7779401B2 (en) * 2006-06-26 2010-08-17 Research In Motion Limited Method and system for generating a reverse binary patch for undoing a software update
JP4865449B2 (ja) 2006-08-17 2012-02-01 三菱電機株式会社 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム及び差分生成適用システム及び差分生成適用方法
TW200828032A (en) * 2006-08-24 2008-07-01 Chumby Ind Inc Configurable personal audiovisual device for use in networked application-sharing system
KR20080025957A (ko) * 2006-09-19 2008-03-24 삼성전자주식회사 휴대용 단말기에서 소프트웨어를 업그레이드하기 위한 장치및 방법
US8286238B2 (en) * 2006-09-29 2012-10-09 Intel Corporation Method and apparatus for run-time in-memory patching of code from a service processor
US8213321B2 (en) * 2007-02-01 2012-07-03 Deere & Company Controller area network condition monitoring and bus health on in-vehicle communications networks
JP2008198060A (ja) 2007-02-15 2008-08-28 Seiko Epson Corp 情報処理装置、パッチコード実装システム、電子機器及びパッチコードの実装方法
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US7716011B2 (en) 2007-02-28 2010-05-11 Microsoft Corporation Strategies for identifying anomalies in time-series data
KR100857705B1 (ko) * 2007-05-28 2008-09-08 (주)케이티에프테크놀로지스 프로그램 업그레이드 방법 및 이를 수행하기 위한 시스템
WO2009003189A1 (en) * 2007-06-27 2008-12-31 Acresso Software, Inc. A method and system for software virtualization directly from an installation package
US20090113412A1 (en) * 2007-10-29 2009-04-30 Sap Portals Israel Ltd. Method and apparatus for enhanced synchronization protocol
US8397228B2 (en) * 2007-11-14 2013-03-12 Continental Automotive Systems, Inc. Systems and methods for updating device software
US8484752B2 (en) * 2007-11-14 2013-07-09 Caterpillar Inc. Verifying authenticity of electronic control unit code
ATE522861T1 (de) * 2007-12-13 2011-09-15 Ericsson Telefon Ab L M Firmware-aktualisierung bei einem elektronischen gerät
US8630981B1 (en) * 2007-12-21 2014-01-14 Symantec Corporation Techniques for differencing binary installation packages
JP4407752B2 (ja) * 2008-01-10 2010-02-03 トヨタ自動車株式会社 故障箇所検出装置及び通信装置並びに故障箇所検出方法
US8046529B2 (en) * 2008-02-20 2011-10-25 Hewlett-Packard Development Company, L.P. Updating control information in non-volatile memory to control selection of content
CN101978361B (zh) * 2008-02-20 2013-06-05 索尼电脑娱乐公司 存储器控制方法以及装置、存储器访问控制方法
US8631397B2 (en) * 2008-03-31 2014-01-14 Microsoft Corporation Virtualized application image patching
US20090293051A1 (en) * 2008-05-22 2009-11-26 Fortinet, Inc., A Delaware Corporation Monitoring and dynamic tuning of target system performance
US8171277B2 (en) * 2008-07-02 2012-05-01 Apple Inc. Method and apparatus for booting from a flash memory without prior knowledge of flash parameter information
WO2010016062A2 (en) * 2008-08-04 2010-02-11 Red Bend Ltd. Updating content without using a mini operating system
EP2329367B1 (en) * 2008-08-04 2014-06-11 Red Bend Ltd. Performing an in-place update of an operating storage device
US8631488B2 (en) * 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
US8930930B2 (en) * 2008-09-04 2015-01-06 International Business Machines Corporation Updating a computer system
WO2010067417A1 (ja) * 2008-12-09 2010-06-17 トヨタ自動車株式会社 車両の電源システム
US8468516B1 (en) * 2008-12-19 2013-06-18 Juniper Networks, Inc. Creating hot patches for embedded systems
US8190322B2 (en) * 2009-01-13 2012-05-29 GM Global Technology Operations LLC Autonomous vehicle maintenance and repair system
DE102009018761A1 (de) * 2009-04-27 2010-10-28 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Aktualisierung von Softwarekomponenten
US8756195B2 (en) * 2009-08-27 2014-06-17 The Boeing Company Universal delta set management
US8412797B2 (en) * 2009-08-27 2013-04-02 Vmware, Inc. Platform for development and deployment of system administration solutions
US8397301B2 (en) 2009-11-18 2013-03-12 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
US20110130905A1 (en) * 2009-12-01 2011-06-02 Ise Corporation Remote Vehicle Monitoring and Diagnostic System and Method
US20110218948A1 (en) * 2009-12-15 2011-09-08 Fabricio Benevenuto De Souza Methods for detecting spammers and content promoters in online video social networks
KR20110092007A (ko) * 2010-02-08 2011-08-17 주식회사 만도 차량의 소프트웨어 다운로드 시스템 및 방법
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
CN102947135B (zh) * 2010-06-23 2015-07-01 丰田自动车株式会社 程序更新装置
US10665040B2 (en) * 2010-08-27 2020-05-26 Zonar Systems, Inc. Method and apparatus for remote vehicle diagnosis
US8762980B1 (en) * 2010-09-09 2014-06-24 Symantec Corporation Rolling incremental updates
US8806470B2 (en) * 2010-09-29 2014-08-12 Mitsubishi Electric Corporation System, method, and apparatus for software maintenance of sensor and control systems
DE102011086530A1 (de) * 2010-11-19 2012-05-24 Continental Teves Ag & Co. Ohg Mikroprozessorsystem mit fehlertoleranter Architektur
US20120144380A1 (en) * 2010-12-07 2012-06-07 Samsung Electronics Co. Ltd. Method for generating delta file using basic blocks
US8464102B2 (en) * 2010-12-23 2013-06-11 GM Global Technology Operations LLC Methods and systems for diagnosing hardware and software faults using time-stamped events
US8863256B1 (en) * 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
WO2012120578A1 (ja) * 2011-03-10 2012-09-13 三菱電機株式会社 冗長化装置
US20120255014A1 (en) * 2011-03-29 2012-10-04 Mcafee, Inc. System and method for below-operating system repair of related malware-infected threads and resources
JP5939655B2 (ja) * 2011-03-29 2016-06-22 ボルボ ラストバグナー アーベー 安全な修理データパッケージ
US8924025B2 (en) * 2011-04-28 2014-12-30 GM Global Technology Operations LLC Heating, ventilating, and air conditioning module for a vehicle
US8543280B2 (en) * 2011-04-29 2013-09-24 Toyota Motor Engineering & Manufacturing North America, Inc. Collaborative multi-agent vehicle fault diagnostic system and associated methodology
CN102933443B (zh) * 2011-06-07 2015-11-25 大星电机工业株式会社 双控制器系统的错误检测装置和方法
US20130056154A1 (en) * 2011-06-27 2013-03-07 Tokyo Electron Limited Abnormality detecting unit and abnormality detecting method
JP5479408B2 (ja) * 2011-07-06 2014-04-23 日立オートモティブシステムズ株式会社 車載ネットワークシステム
US20130024850A1 (en) * 2011-07-18 2013-01-24 Honeywell International Inc. Systems, methods and apparatus for fast file transfer
US8589363B2 (en) * 2011-07-19 2013-11-19 Exagrid Systems, Inc. Systems and methods for managing delta version chains
US8843218B2 (en) * 2011-07-22 2014-09-23 GM Global Technology Operations LLC Method and system for limited time fault tolerant control of actuators based on pre-computed values
JP5518810B2 (ja) * 2011-08-18 2014-06-11 日立オートモティブシステムズ株式会社 車両制御装置、車両制御システム
US20130060918A1 (en) * 2011-09-06 2013-03-07 David G. Butler Electronic device control using a uniform resource identifier
US10498356B2 (en) * 2011-09-13 2019-12-03 Exagrid Systems, Inc. Systems and methods for version chain clustering
KR101360705B1 (ko) * 2011-09-22 2014-02-07 기아자동차주식회사 차량 업그레이드 시스템 및 그 방법
US9043073B2 (en) * 2011-11-16 2015-05-26 Flextronics Ap, Llc On board vehicle diagnostic module
DE112012004781T5 (de) * 2011-11-16 2014-08-07 Flextronics Ap, Llc Versicherungsverfolgung
US8949823B2 (en) * 2011-11-16 2015-02-03 Flextronics Ap, Llc On board vehicle installation supervisor
US20130173076A1 (en) * 2012-01-02 2013-07-04 Yang Pan Power Management System and Method Using Power Limiter
CN102609328B (zh) 2012-01-29 2015-04-15 华为终端有限公司 系统差分升级方法和装置、移动终端
US8539506B2 (en) * 2012-02-09 2013-09-17 Microsoft Corporation Dynamic injection of code into running process
US8786424B2 (en) * 2012-02-15 2014-07-22 Infineon Technologies Ag Error signal handling unit, device and method for outputting an error condition signal
US8745746B1 (en) 2012-03-07 2014-06-03 Symantec Corporation Systems and methods for addressing security vulnerabilities on computing devices
US20160086391A1 (en) * 2012-03-14 2016-03-24 Autoconnect Holdings Llc Fleetwide vehicle telematics systems and methods
US8452465B1 (en) * 2012-03-30 2013-05-28 GM Global Technology Operations LLC Systems and methods for ECU task reconfiguration
KR101711028B1 (ko) * 2012-05-04 2017-03-13 한국전자통신연구원 클러스터링 기법을 이용한 차량 이상상태 모니터링 장치 및 그 방법
US8819662B2 (en) * 2012-06-11 2014-08-26 Sony Corporation Device and method for time notification for updating software
KR102055328B1 (ko) * 2012-07-18 2019-12-13 삼성디스플레이 주식회사 게이트 드라이버 및 이를 포함하는 표시 장치
US10114831B2 (en) * 2012-08-16 2018-10-30 Exagrid Systems, Inc. Delta version clustering and re-anchoring
JP5708940B2 (ja) * 2012-08-22 2015-04-30 トヨタ自動車株式会社 情報管理装置、情報通信システム
US9087191B2 (en) * 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
KR20140038160A (ko) 2012-09-20 2014-03-28 한국전자통신연구원 Autosar 기반 시스템의 ecu 업데이트 방법 및 ecu 업데이트 장치
US9507586B2 (en) * 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US9128798B2 (en) * 2012-10-17 2015-09-08 Movimento Group Module updating device
US8813061B2 (en) * 2012-10-17 2014-08-19 Movimento Group Module updating device
CA2889175C (en) * 2012-10-26 2021-02-23 Sirius Xm Radio Inc. Systems and methods for cost effective distribution of files to user devices using combination of broadcast and two-way communication paths
JP6056424B2 (ja) * 2012-11-29 2017-01-11 株式会社デンソー 車載プログラム更新装置
US9600266B2 (en) 2012-12-05 2017-03-21 Bendix Commercial Vehicle Systems Llc Methods and apparatus for updating software components in coordination with operational modes of a motor vehicle
CN103853574B (zh) * 2012-12-06 2015-09-16 腾讯科技(深圳)有限公司 一种软件升级的方法及系统
JP6044316B2 (ja) * 2012-12-12 2016-12-14 株式会社デンソー 車載電子制御装置
KR20140077435A (ko) 2012-12-14 2014-06-24 삼성전자주식회사 모바일 단말의 소프트웨어 업데이트 서비스 방법 및 장치
JP6136341B2 (ja) * 2013-02-19 2017-05-31 トヨタ自動車株式会社 内燃機関の異常燃焼検出装置
US9367301B1 (en) 2013-03-06 2016-06-14 Attivio Inc. Dynamic update of a distributed message processing system
US9329854B2 (en) * 2013-03-07 2016-05-03 Telefonaktiebolaget L M Ericsson (Publ) Staging calculation for upgrade campaign generation
WO2014164893A2 (en) 2013-03-13 2014-10-09 Arynga Inc. Remote transfer of electronic images to a vehicle
US9612920B2 (en) 2013-03-15 2017-04-04 Silicon Graphics International Corp. Hierarchical system manager rollback
US20140344323A1 (en) * 2013-03-15 2014-11-20 Reactor8 Inc. State-based configuration management for distributed systems
EP2784682A1 (en) * 2013-03-25 2014-10-01 Dialog Semiconductor B.V. Memory patching circuit
CN103534968B (zh) * 2013-04-01 2016-09-28 华为技术有限公司 一种以太网物理层的编码、解码方法和装置
JP5838998B2 (ja) * 2013-05-24 2016-01-06 株式会社デンソー 異常診断システム
JP5749298B2 (ja) * 2013-07-10 2015-07-15 株式会社スノーピーク 頭部前方照明装置
US10310863B1 (en) * 2013-07-31 2019-06-04 Red Hat, Inc. Patching functions in use on a running computer system
US9424047B2 (en) * 2013-08-05 2016-08-23 Harman International Industries, Incorporated System and methods for an in-vehicle computing system
JP6235270B2 (ja) * 2013-08-23 2017-11-22 株式会社Soken 内燃機関の制御装置および制御方法
US9443359B2 (en) * 2013-08-29 2016-09-13 GM Global Technology Operations LLC Vehicle electronic control unit calibration
GB201315520D0 (en) * 2013-08-30 2013-10-16 Deltaxml Ltd Representation of multiple markup language files that differ in structure and content in one file for the production of new markup language files
JP5864510B2 (ja) * 2013-10-18 2016-02-17 富士通株式会社 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
US9401923B2 (en) 2013-10-23 2016-07-26 Christopher Valasek Electronic system for detecting and preventing compromise of vehicle electrical and control systems
US9672497B1 (en) * 2013-11-04 2017-06-06 Snap-On Incorporated Methods and systems for using natural language processing and machine-learning to produce vehicle-service content
US9529584B2 (en) * 2013-11-06 2016-12-27 General Motors Llc System and method for preparing vehicle for remote reflash event
US8830913B1 (en) 2013-11-13 2014-09-09 Google Inc. Location-based software updates
EP2881858B1 (de) * 2013-12-09 2016-04-06 dSPACE digital signal processing and control engineering GmbH Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes
EP2881857B8 (de) * 2013-12-09 2018-09-12 dSPACE digital signal processing and control engineering GmbH Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes
US9170803B2 (en) * 2013-12-19 2015-10-27 Novell, Inc. Runtime patching of an operating system (OS) without stopping execution
US9164874B1 (en) * 2013-12-20 2015-10-20 Amazon Technologies, Inc. Testing conversion and rendering of digital content
JP5947279B2 (ja) * 2013-12-20 2016-07-06 株式会社デンソー 進路推定装置,及びプログラム
EP3358800B1 (en) 2014-01-06 2021-10-20 Argus Cyber Security Ltd Bus watchman
US9477461B1 (en) * 2014-03-12 2016-10-25 Cloud Linux Zug GmbH Systems and methods for generating and applying operating system live updates
US20170024943A1 (en) * 2014-03-19 2017-01-26 Cummins, Inc. System and Method for Service Assessment
KR20150112537A (ko) * 2014-03-28 2015-10-07 현대자동차주식회사 차량제어용 소프트웨어 코딩 시스템 및 방법
US10025658B2 (en) * 2014-04-01 2018-07-17 Tlv Co., Ltd. Risk evaluation system for process system, risk evaluation program and risk evaluation method
US9304846B2 (en) * 2014-04-29 2016-04-05 Ford Global Technologies, Llc Apparatus and method of error monitoring with a diagnostic module
CN105404521B (zh) * 2014-05-30 2017-05-31 广州市动景计算机科技有限公司 一种增量升级方法及相关装置
CN103984582B (zh) * 2014-06-04 2017-05-31 网易(杭州)网络有限公司 一种热更新方法和装置
US9286057B2 (en) * 2014-06-11 2016-03-15 International Business Machines Corporation Updating software based on utilized functions
WO2015194406A1 (ja) * 2014-06-18 2015-12-23 日立オートモティブシステムズ株式会社 車載プログラム書込み装置
WO2016007563A1 (en) * 2014-07-07 2016-01-14 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US9891907B2 (en) * 2014-07-07 2018-02-13 Harman Connected Services, Inc. Device component status detection and illustration apparatuses, methods, and systems
US20160196132A1 (en) 2014-07-07 2016-07-07 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US20160294605A1 (en) * 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US20160196131A1 (en) * 2014-07-07 2016-07-07 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US9237843B1 (en) * 2014-07-07 2016-01-19 eyeBrain Medical, Inc. System for measuring visual fixation disparity
US9626179B2 (en) * 2014-07-21 2017-04-18 Sandisk Technologies Llc Method and system for using a ROM patch
US9430220B2 (en) * 2014-07-22 2016-08-30 GM Global Technology Operations LLC Method, medium, and apparatus for re-programming flash memory of a computing device
US9619946B2 (en) 2014-07-29 2017-04-11 GM Global Technology Operations LLC Securely providing diagnostic data from a vehicle to a remote server using a diagnostic tool
JP2016033980A (ja) * 2014-07-31 2016-03-10 キヤノン株式会社 撮像デバイス、撮像装置および撮像システム
US20170226842A1 (en) * 2014-08-01 2017-08-10 Schlumberger Technology Corporation Monitoring health of additive systems
US20160041819A1 (en) * 2014-08-06 2016-02-11 Microsoft Corporation Updating service applications
US9686237B2 (en) * 2014-08-19 2017-06-20 International Business Machines Corporation Secure communication channel using a blade server
CN105706067B (zh) * 2014-09-25 2019-04-26 株式会社京都软件研究 内置闪存的微型计算机和向内置于微型计算机的闪存的数据写入方法
EP3412514B1 (en) * 2014-11-12 2019-12-04 Panasonic Intellectual Property Corporation of America Update management method, update management device, and control program
US20170364685A1 (en) * 2014-11-20 2017-12-21 Interdigital Patent Holdings. Inc. Providing security to computing systems
CN107005447B (zh) * 2014-11-20 2020-09-08 国立大学法人名古屋大学 通信控制装置及通信系统
US9471452B2 (en) * 2014-12-01 2016-10-18 Uptake Technologies, Inc. Adaptive handling of operating data
KR101575547B1 (ko) * 2014-12-09 2015-12-22 현대오트론 주식회사 캔 통신 시스템의 에러 분산감지 방법 및 캔 통신 시스템
JP6068427B2 (ja) 2014-12-24 2017-01-25 日鉄住金鋼板株式会社 パネル吊り具
WO2016108963A1 (en) 2014-12-30 2016-07-07 Battelle Memorial Institute Temporal anomaly detection on automotive networks
US11374809B2 (en) * 2015-01-01 2022-06-28 Harman Becker Automotive Systems Gmbh Auxiliary device to enhance native in-vehicle systems by adding interfaces and computational power
JP6434994B2 (ja) 2015-01-26 2018-12-05 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
JP2016170471A (ja) 2015-03-11 2016-09-23 日立オートモティブシステムズ株式会社 電子制御装置
JP6216730B2 (ja) * 2015-03-16 2017-10-18 日立オートモティブシステムズ株式会社 ソフト更新装置、ソフト更新方法
US9882779B2 (en) * 2015-03-18 2018-01-30 International Business Machines Corporation Software version maintenance in a software defined network
US9626277B2 (en) * 2015-04-01 2017-04-18 Microsoft Technology Licensing, Llc Anomaly analysis for software distribution
US10162625B2 (en) * 2015-04-14 2018-12-25 Ford Global Technologies, Llc Vehicle control storage methods and systems
US10929353B2 (en) * 2015-04-29 2021-02-23 Box, Inc. File tree streaming in a virtual file system for cloud-based shared content
CN107660335B (zh) * 2015-05-14 2020-10-09 爱尔比奎特公司 对移动辅助机动车辆软件升级和车辆数据分析的集中管理
EP3101535B1 (en) 2015-06-01 2022-04-13 OpenSynergy GmbH Method for updating a control unit for an automotive vehicle, control unit for an automotive vehicle, and computer program product
JP6009622B1 (ja) 2015-06-12 2016-10-19 三菱電機株式会社 更新マネジャおよびこれを用いた車載ソフトウェア更新システム
US10101992B2 (en) * 2015-06-15 2018-10-16 Lear Corporation Telematics control unit comprising a differential update package
US10127036B2 (en) * 2015-06-15 2018-11-13 Lear Corporation Method for OTA updating vehicle electronic control unit
US9836300B2 (en) * 2015-06-16 2017-12-05 Lear Corporation Method for updating vehicle ECUs using differential update packages
US10042635B2 (en) * 2015-06-16 2018-08-07 Lear Corporation Method for wireless remote updating vehicle software
US10165084B2 (en) * 2015-06-16 2018-12-25 Lear Corporation Method for software updating of vehicle components
KR101696864B1 (ko) * 2015-06-17 2017-01-16 동부대우전자 주식회사 냉장고의 제빙 어셈블리 및 그 조립방법
US10218735B2 (en) * 2015-06-30 2019-02-26 The Mitre Corporation Network attack simulation systems and methods
US9984512B2 (en) * 2015-07-02 2018-05-29 International Business Machines Corporation Cooperative vehicle monitoring and anomaly detection
US9720680B2 (en) * 2015-07-23 2017-08-01 Honda Motor Co., Ltd. Methods and apparatus for wirelessly updating vehicle systems
US10618858B2 (en) * 2015-07-24 2020-04-14 Uop, Llc Ionic liquid reactor with hydrocyclones
WO2017019684A1 (en) * 2015-07-27 2017-02-02 Datagrid Systems, Inc. Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data
US10172776B2 (en) * 2015-07-30 2019-01-08 L'oreal Compositions for altering the color of hair
US10365912B2 (en) * 2015-08-12 2019-07-30 Blackberry Limited Delivery mechanisms for deployment of releases of packages to endpoints
US9779557B2 (en) * 2015-08-18 2017-10-03 Carfit Corp. Automotive activity monitor
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US10250689B2 (en) * 2015-08-25 2019-04-02 Robert Bosch Gmbh Security monitor for a vehicle
JP6723829B2 (ja) * 2015-09-14 2020-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ゲートウェイ装置、ファームウェア更新方法及び制御プログラム
JP6650242B2 (ja) * 2015-10-16 2020-02-19 日立オートモティブシステムズ株式会社 自動運転システム、自動運転制御方法、データecuおよび自動運転ecu
DE102015221330A1 (de) 2015-10-30 2017-05-04 Robert Bosch Gmbh Verfahren und Vorrichtung zum robusten Aktualisieren von Firmware eines Fahrzeuges über eine Luftschnittstelle
JP6698320B2 (ja) * 2015-11-16 2020-05-27 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
CN108139723A (zh) * 2015-11-19 2018-06-08 帝斯贝思数字信号处理和控制工程有限公司 用于运行控制器的方法以及设置用于外部旁路的控制器
DE102016200711A1 (de) 2016-01-20 2017-07-20 Robert Bosch Gmbh Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug
US9824509B2 (en) * 2016-02-02 2017-11-21 Toyota Jidosha Kabushiki Kaisha Automobile modification system providing security and fault tolerance support
US9803576B2 (en) * 2016-02-16 2017-10-31 Robert Bosch Gmbh System and method to predict calibration values based on existing calibrations
US10001988B2 (en) * 2016-02-18 2018-06-19 Toyota Jidosha Kabushiki Kaisha Compatibility module to support an automotive system upgrade
US12001825B2 (en) * 2016-02-19 2024-06-04 Ford Global Technologies, Llc Method and apparatus for vehicle software update installation
JP6609199B2 (ja) * 2016-03-01 2019-11-20 ルネサスエレクトロニクス株式会社 組込み機器
WO2017149821A1 (ja) * 2016-03-02 2017-09-08 住友電気工業株式会社 制御装置、プログラム更新方法、およびコンピュータプログラム
JP2017174111A (ja) * 2016-03-23 2017-09-28 株式会社東芝 車載ゲートウェイ装置、蓄積制御方法およびプログラム
EP3440821B1 (en) * 2016-04-06 2022-08-24 Karamba Security Secure controller operation and malware prevention
EP3823242A1 (en) * 2016-04-06 2021-05-19 Karamba Security Centralized controller management and anomaly detection
KR20170126230A (ko) * 2016-05-09 2017-11-17 한국전자통신연구원 펌웨어 업데이트 장치 및 방법, 그리고 펌웨어 업데이트 시스템
JP6380461B2 (ja) * 2016-06-02 2018-08-29 住友電気工業株式会社 中継装置、プログラム更新システム、およびプログラム更新方法
US10259469B2 (en) * 2016-06-08 2019-04-16 Ford Global Technologies, Llc Methods and apparatus to selectively disable functions of electronic control units
US10223224B1 (en) * 2016-06-27 2019-03-05 EMC IP Holding Company LLC Method and system for automatic disk failure isolation, diagnosis, and remediation
US11113640B2 (en) * 2016-06-29 2021-09-07 Tata Consultancy Services Limited Knowledge-based decision support systems and method for process lifecycle automation
US10002306B2 (en) * 2016-06-30 2018-06-19 Konica Minolta Laboratory U.S.A., Inc. Merging overlapping broken lines of a table
US10346765B2 (en) * 2016-07-15 2019-07-09 Toyota Jidosha Kabushiki Kaisha Subscription-based safety features in car sharing
US10042629B2 (en) * 2016-07-28 2018-08-07 GM Global Technology Operations LLC Remote vehicle update installation scheduling
US10180689B2 (en) * 2016-08-19 2019-01-15 Omega Patents, L.L.C. Vehicle system including security unit providing degradation commands via a vehicle data bus and related methods
KR101827140B1 (ko) * 2016-08-23 2018-02-07 현대자동차주식회사 람다 센서를 이용한 연료 분사량 제어방법 및 차량
US10503581B2 (en) * 2016-08-25 2019-12-10 Intel Corporation Profiling and diagnostics for internet of things
KR101737737B1 (ko) * 2016-09-06 2017-05-18 덴소코리아일렉트로닉스 주식회사 차량용 카메라 hud 통합 클러스터 시스템
CN106383730A (zh) * 2016-09-12 2017-02-08 北京小米移动软件有限公司 处理系统升级的方法及装置
US20180074813A1 (en) * 2016-09-14 2018-03-15 General Motors Llc Installing vehicle updates
JP6697357B2 (ja) * 2016-09-15 2020-05-20 株式会社日立製作所 ソフトウェア更新システム
JP6637398B2 (ja) * 2016-09-23 2020-01-29 ルネサスエレクトロニクス株式会社 判定装置及び判定方法
JP6755158B2 (ja) * 2016-09-30 2020-09-16 株式会社日立製作所 計算機システム、計算機システムによるソフトウェアの更新方法、及び、そのためのプログラム
US20180107473A1 (en) * 2016-10-13 2018-04-19 GM Global Technology Operations LLC Determining whether to install a vehicle system update in a vehicle
US10782955B2 (en) * 2017-01-03 2020-09-22 Ford Global Technologies, Llc Pre-shutdown swap verification
US10108191B2 (en) * 2017-01-06 2018-10-23 Ford Global Technologies, Llc Driver interactive system for semi-autonomous modes of a vehicle
US10268195B2 (en) * 2017-01-06 2019-04-23 Qualcomm Incorporated Managing vehicle driving control entity transitions of an autonomous vehicle based on an evaluation of performance criteria
US10963241B2 (en) * 2017-02-01 2021-03-30 Sumitomo Electric Industries, Ltd. Control apparatus, program update method, and computer program
US10416985B2 (en) * 2017-02-16 2019-09-17 Ford Global Technologies, Llc Method and apparatus for multi cycle vehicle software update compliance handling
US10382466B2 (en) * 2017-03-03 2019-08-13 Hitachi, Ltd. Cooperative cloud-edge vehicle anomaly detection
US10348348B2 (en) * 2017-03-06 2019-07-09 Ford Global Technologies, Llc Method and apparatus for vehicle message routing
CN110402428B (zh) * 2017-03-24 2024-01-30 日立安斯泰莫株式会社 车载控制装置、及程序更新软件
US10831466B2 (en) * 2017-03-29 2020-11-10 International Business Machines Corporation Automatic patch management
US10269192B2 (en) * 2017-04-07 2019-04-23 Airbiquity Inc. Technologies for verifying control system operation
US10316812B2 (en) * 2017-04-20 2019-06-11 Gm Global Technology Operations Llc. Hierarchical fault diagnosis and prognosis of a system
US10489992B2 (en) * 2017-05-08 2019-11-26 Lear Corporation Vehicle communication network
US10528479B2 (en) * 2017-06-02 2020-01-07 Huawei Technologies Co., Ltd. Global variable migration via virtual memory overlay technique for multi-version asynchronous dynamic software update
US10795997B2 (en) * 2017-06-21 2020-10-06 Intel Corporation Hardened safe stack for return oriented programming attack mitigation
US11214273B2 (en) * 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US10496398B2 (en) * 2017-07-25 2019-12-03 Aurora Labs Ltd. Hot updates to ECU software using tool chain
EP3668756B1 (en) * 2017-08-17 2023-08-02 Red Bend Ltd. Systems and methods for disabling a malicious ecu in a controller area network (can) bus
US10719312B2 (en) * 2017-09-13 2020-07-21 Fisher-Rosemount Systems, Inc. Systems and methods for assessing configuration files associated with a process control system
JP6754743B2 (ja) * 2017-09-22 2020-09-16 日立オートモティブシステムズ株式会社 車載電子制御装置およびその異常時処理方法
JP6708596B2 (ja) * 2017-09-27 2020-06-10 日立オートモティブシステムズ株式会社 電子制御装置及び制御プログラム検証方法
US11172010B1 (en) * 2017-12-13 2021-11-09 Amazon Technologies, Inc. Managing encoder updates
IT201800000580A1 (it) * 2018-01-05 2019-07-05 St Microelectronics Srl Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico
CN115834617A (zh) * 2018-01-11 2023-03-21 图森有限公司 用于自主车辆操作的监视系统
EP3741091B1 (en) * 2018-01-16 2022-02-02 C2A-SEC, Ltd. Intrusion anomaly monitoring in a vehicle environment
US10834207B2 (en) * 2018-02-27 2020-11-10 Excelfore Corporation System and method for updating software in an electronic device
JP7049900B2 (ja) * 2018-04-18 2022-04-07 株式会社日立製作所 ソフトウェア管理システム、ゲートウェイ装置、保守装置、サーバ装置、及びソフトウェア管理システムの制御方法
US20190324858A1 (en) * 2018-04-24 2019-10-24 GM Global Technology Operations LLC Rollback recovery from partial failure in multiple electronic control unit over-the-air updates
US11163549B2 (en) * 2018-08-10 2021-11-02 Denso Corporation Vehicle information communication system
KR102644366B1 (ko) * 2018-08-27 2024-03-07 현대자동차주식회사 엔진 가상시험환경 시스템 및 ems 매핑 방법
US11151808B2 (en) * 2018-12-06 2021-10-19 GM Global Technology Operations LLC Vehicle fault root cause diagnosis
JP6832374B2 (ja) * 2019-02-22 2021-02-24 本田技研工業株式会社 ソフトウェア更新装置、車両及びソフトウェア更新方法
US11106519B2 (en) * 2019-04-03 2021-08-31 Micron Technology, Inc. Automotive electronic control unit reliability and safety during power standby mode
JP2020171567A (ja) 2019-04-12 2020-10-22 株式会社三共 遊技機
JP2022538961A (ja) * 2019-06-25 2022-09-07 マーベル アジア ピーティーイー、リミテッド 異常検出付き自動車ネットワークスイッチ
US11169795B2 (en) * 2019-10-09 2021-11-09 Toyota Motor North America, Inc. Management of transport software updates
CN115467752B (zh) * 2021-06-11 2024-05-28 广州汽车集团股份有限公司 汽车发动机失火诊断分析的方法、系统及计算机存储介质
CN114488994A (zh) * 2021-12-23 2022-05-13 浙江吉利控股集团有限公司 一种提升车辆故障诊断鲁棒性的优化方法及装置
CN114925381A (zh) * 2022-05-10 2022-08-19 潍柴动力股份有限公司 一种ecu数据刷写方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20190034192A1 (en) 2019-01-31
US10545814B2 (en) 2020-01-28
US10789121B2 (en) 2020-09-29
US20230221950A1 (en) 2023-07-13
US20210342142A1 (en) 2021-11-04
JP7169340B2 (ja) 2022-11-10
US11099836B2 (en) 2021-08-24
US20200250023A1 (en) 2020-08-06
US20190034185A1 (en) 2019-01-31
US20200034139A1 (en) 2020-01-30
US20210311726A1 (en) 2021-10-07
US10481899B2 (en) 2019-11-19
US20240004643A1 (en) 2024-01-04
US20210255850A1 (en) 2021-08-19
US20230060267A1 (en) 2023-03-02
US11314502B2 (en) 2022-04-26
US11055088B2 (en) 2021-07-06
US11334346B2 (en) 2022-05-17
US20210208870A1 (en) 2021-07-08
US20220206784A1 (en) 2022-06-30
US11068258B2 (en) 2021-07-20
US20200379750A1 (en) 2020-12-03
US20240045668A1 (en) 2024-02-08
US20200226015A1 (en) 2020-07-16
US20190324739A1 (en) 2019-10-24
US10866802B2 (en) 2020-12-15
US10983784B2 (en) 2021-04-20
US20190034256A1 (en) 2019-01-31
US20190303134A1 (en) 2019-10-03
US10261777B2 (en) 2019-04-16
US11416242B2 (en) 2022-08-16
US20220342662A1 (en) 2022-10-27
EP3590037A1 (en) 2020-01-08
US10642679B2 (en) 2020-05-05
JP2024020663A (ja) 2024-02-14
US10394548B2 (en) 2019-08-27
US20190179626A1 (en) 2019-06-13
US20190034194A1 (en) 2019-01-31
US20220137957A1 (en) 2022-05-05
US11829750B2 (en) 2023-11-28
US20210397444A1 (en) 2021-12-23
US11119758B2 (en) 2021-09-14
US10416989B2 (en) 2019-09-17
US20220391197A1 (en) 2022-12-08
US10929123B2 (en) 2021-02-23
US20190034198A1 (en) 2019-01-31
US11029946B2 (en) 2021-06-08
US11467823B2 (en) 2022-10-11
US10678627B1 (en) 2020-06-09
US10838713B2 (en) 2020-11-17
CN111133412A (zh) 2020-05-08
US20220342661A1 (en) 2022-10-27
US20200159604A1 (en) 2020-05-21
US20200050506A1 (en) 2020-02-13
US10691525B2 (en) 2020-06-23
US20210182053A1 (en) 2021-06-17
US11288060B2 (en) 2022-03-29
US20200081760A1 (en) 2020-03-12
US11422793B2 (en) 2022-08-23
US20200073745A1 (en) 2020-03-05
US10496469B2 (en) 2019-12-03
US20200356359A1 (en) 2020-11-12
US10649839B2 (en) 2020-05-12
US20230244473A1 (en) 2023-08-03
US10747604B1 (en) 2020-08-18
US20190310843A1 (en) 2019-10-10
US10496398B2 (en) 2019-12-03
US20210286615A1 (en) 2021-09-16
US10402192B2 (en) 2019-09-03
US20190213001A1 (en) 2019-07-11
US20220382536A1 (en) 2022-12-01
US11442721B2 (en) 2022-09-13
US20220374227A1 (en) 2022-11-24
US20240152354A1 (en) 2024-05-09
US20220058013A1 (en) 2022-02-24
US11526348B2 (en) 2022-12-13
US11455165B2 (en) 2022-09-27
US20230297365A1 (en) 2023-09-21
US10990383B2 (en) 2021-04-27
US11704111B2 (en) 2023-07-18
US20200110649A1 (en) 2020-04-09
US11789720B2 (en) 2023-10-17
US10514976B2 (en) 2019-12-24
US20200278898A1 (en) 2020-09-03
EP3590037A4 (en) 2020-07-08
US11650807B2 (en) 2023-05-16
JP2020528629A (ja) 2020-09-24
US20210263725A1 (en) 2021-08-26
US20210055926A1 (en) 2021-02-25
US20190034184A1 (en) 2019-01-31
US10289404B2 (en) 2019-05-14
US10761924B2 (en) 2020-09-01
US20210064359A1 (en) 2021-03-04
US20190034193A1 (en) 2019-01-31
US20230251850A1 (en) 2023-08-10
US20200226016A1 (en) 2020-07-16
US20190034191A1 (en) 2019-01-31
US10387139B2 (en) 2019-08-20
US20190031203A1 (en) 2019-01-31
US20220413841A1 (en) 2022-12-29
US11036495B2 (en) 2021-06-15
US20220179646A1 (en) 2022-06-09
US10936304B2 (en) 2021-03-02
US20200050507A1 (en) 2020-02-13
US11822917B2 (en) 2023-11-21
US11137997B2 (en) 2021-10-05
US11635955B2 (en) 2023-04-25
US20200334097A1 (en) 2020-10-22
US11422794B2 (en) 2022-08-23
US20210141633A1 (en) 2021-05-13
US20240036857A1 (en) 2024-02-01
US20210365262A1 (en) 2021-11-25
JP7407261B2 (ja) 2023-12-28
US10866853B2 (en) 2020-12-15
US20210026621A1 (en) 2021-01-28
US10585661B2 (en) 2020-03-10
US11900103B2 (en) 2024-02-13
WO2019021064A1 (en) 2019-01-31
US10303460B2 (en) 2019-05-28
US20190220270A1 (en) 2019-07-18
US11256500B2 (en) 2022-02-22
US20210208871A1 (en) 2021-07-08
US11650808B2 (en) 2023-05-16
US20190324740A1 (en) 2019-10-24
US10514906B2 (en) 2019-12-24
US11194570B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
JP7169340B2 (ja) 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231218

R150 Certificate of patent or registration of utility model

Ref document number: 7407261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150