Method and apparatus for processing data associated with a software component for a product
Patent Information
- Application Number
- CN202580016253.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-02-23
- Filing Date
- 2025-02-19
- Publication Date
- 2026-09-22
AI Technical Summary
[0017]一些示例涉及根据本公开的方法和/或根据本公开的装置和/或根据本公开的计算机可读存储介质和/或根据本公开的计算机程序和/或根据本公开的数据载体信号用于以下元素中的至少一个元素的用途:a)例如借助于应用特定信息,注释所述软件组件的至少一部分,或b)为编译器的后端提供例如应用特定信息,或c)提高例如软件组件的安全性。
Smart Images

Figure CN122804216A_ABST
Abstract
Description
Background Technology
[0001] This disclosure relates to a method for processing data associated with software components used in a product.
[0002] This disclosure also relates to an apparatus for processing data associated with software components used in a product. Summary of the Invention
[0003] Some examples relate to a method for processing data associated with a software component for a product, such as a computer-implemented method, comprising: providing first information, the first information characterizing at least one aspect associated with the software component, such as a domain specific to the product, and optionally, supplementing the software component with the first information.
[0004] In some examples, providing first information enables efficient processing of software components, for example, at one or more stages of the development environment. In some examples, a relatively modularly built development environment (e.g., based on an LLVM compiler system) can be used, and setting the first information enables, for example, the modular development process (e.g., based on an LLVM compiler system) to be supplemented with annotations such as those that can be characterized or constituted by the first information, such as forward-looking (nach vorne gerichtet).
[0005] In some examples, annotations that can be interpreted as metadata can supplement the intermediate representation of an LLVM system, for example, by passing domain-specific information to the backend. In some examples, the domain-specific information relates to the automotive (e.g., motor vehicle) domain.
[0006] In some example cases, a software component represents at least one of the following elements: a) source code, for example, written in a high-level language such as C or C++; or b) bytecode, such as virtual bytecode; or c) a platform-independent representation, such as the so-called intermediate representation, according to the LLVM project, see, for example, www.llvm.org; or d) machine code, for example, that can be executed on a computing device.
[0007] In some example cases, the method is specified to include, for example, setting at least a portion of the first information in the form of meta-information for at least one stage of the development process associated with the software component, such as for the backend of a compiler.
[0008] In some example cases, the method is specified to include using the first information for at least one processing step and / or for at least one phase of the development process associated with the software component.
[0009] In some example cases, the use includes passing at least a portion of the first information to a backend of the development environment for the software component, such as a backend of a compiler for the software component.
[0010] In some example cases, the development environment is specified to include at least one compiler having a front-end and a back-end, wherein the method includes at least one of the following elements: a) providing at least a portion of the first information to the front-end of the compiler, or b) providing at least a portion of the first information to the back-end of the compiler.
[0011] In some example cases, the first information is specified to include at least one of the following elements: a) information about non-reactive behavior, such as information associated with at least one integrity objective, such as according to the Automotive Safety Integrity Level (ASIL); or b) information characterizing the integrity objective; or c) information for defending against side-channel attacks; or d) information for generating code for generating profiling information.
[0012] In some example cases, the method is specified to include, for example, generating code for improving resistance to side-channel attacks in a compiler or the backend of the compiler, and optionally using the code for improving resistance to side-channel attacks.
[0013] Some examples relate to an apparatus for performing a method according to this disclosure.
[0014] Some examples relate to a computer-readable storage medium including instructions that, when executed by a computer, cause the computer to perform a method according to the present disclosure.
[0015] Some examples relate to a computer program that includes instructions that, when executed by a computer, cause the computer to perform a method according to this disclosure.
[0016] Some examples involve a data carrier signal that represents and / or transmits a computer program according to this disclosure.
[0017] Some examples relate to the use of methods and / or apparatuses and / or computer-readable storage media and / or computer programs and / or data carrier signals according to this disclosure for at least one of the following: a) annotating at least a portion of the software component, for example by means of application-specific information; or b) providing, for example, the backend of a compiler with application-specific information; or c) improving, for example, the security of the software component. Attached Figure Description
[0018] Other features, applications, and advantages of the invention will emerge from the following description of examples of the invention, illustrated in the accompanying drawings. All features described or illustrated herein, either alone or in any combination, constitute the subject matter of the invention, regardless of their generalization in the claims or their references thereto, or their representation or illustration in the specification or drawings.
[0019] In the attached diagram: Figure 1 A simplified flowchart is shown schematically. Figure 2 A simplified flowchart is shown schematically. Figure 3 A simplified flowchart is shown schematically. Figure 4 A simplified block diagram is shown schematically. Figure 5 A simplified block diagram is shown schematically. Figure 6 A simplified block diagram is shown schematically. Figure 7 A simplified block diagram is shown schematically. Figure 8 A simplified block diagram is shown schematically. Figure 9 An example illustrating the use is shown. Detailed Implementation
[0020] Some examples ( Figure 1 This relates to a software component SW-KOMP used for processing and for use in products 1 and 10. Figure 7 A method for providing associated data, such as a computer-implemented method, the method comprising: providing 100 ( Figure 1 First information I-1, the first information represents at least one domain DOM (see product 1, 10) associated with the software component SW-KOMP. Figure 7 ) aspect ASP-1, and optionally, supplement the software component SW-KOMP with 102 first information I-1. In some example cases, such as in one or more phases of the development environment EU (see below for the specific context of the ASP-1), Figure 6, 8 This enables efficient processing of the software component SW-KOMP.
[0021] In some example cases, the software component SW-KOMP represents at least one of the following elements: a) source code written in a high-level language, such as C or C++; or b) bytecode, such as virtual bytecode; or c) a platform-independent representation, such as a so-called intermediate representation, according to the LLVM Project, see, for example, www.llvm.org; or d) machine code, such as code that can be executed on a computing device.
[0022] In some examples ( Figure 7 In the case of a vehicle, such as motor vehicle 1, or a control device 10 for a vehicle, such as motor vehicle 1, the product is a vehicle.
[0023] In some examples ( Figure 2 In the case of ), the method includes, for example, at least one stage of the development process associated with the software component SW-KOMP, such as for the backend 12b of compiler 12 ( Figure 6 ), and set at least a portion of the first information I-1 in the form of meta-information.
[0024] In some examples ( Figure 2 In the case of ), the method includes: using 120 first information I-1 for at least one processing step and / or for at least one stage of the development process associated with the software component SW-KOMP.
[0025] In some examples ( Figure 2 In the case of ), the use of 120 includes: transmitting at least a portion of the first information I-1 to 120a and then to the backend 12b of the development environment EU for the software component SW-KOMP. Figure 6 For example, the backend 12b of the compiler 12 used for the software component SW-KOMP is passed to it.
[0026] In some examples ( Figure 3 , 6 In the case of the development environment EU, the method includes at least one compiler 12 having a front-end 12a and a back-end 12b, wherein the method includes at least one of the following elements: a) providing at least a portion of 130 first information I-1 to the front-end 12a of the compiler 12, or b) providing at least a portion of 132 first information I-1 to the back-end 12b of the compiler 12.
[0027] In some examples ( Figure 4In the case of the above, the first information I-1 includes at least one of the following elements: a) information I-RWF regarding non-reactive behavior, such as being associated with at least one integrity objective, such as according to the Automotive Safety Integrity Level (ASIL); or b) information I-INT characterizing the integrity objective; or c) information I-SCA for defending against side-channel attacks; or d) information I-PROF for generating code for generating profiling information.
[0028] In some example cases, such as for information I-RWF regarding non-reactive behavior, consider one or more of the following aspects. In some example cases, non-reactive behavior (e.g., freedom from interference) for different integrity objectives (e.g., in accordance with ASIL) can be achieved by means of the first information I-1, for example, to comply with security requirements.
[0029] In some example cases, the first information I-1 may be used, for example, to automatically, i.e., without human interaction, to create a configuration for memory protection measures, for example, against at least one memory protection device.
[0030] In some examples, the first information I-1 can be used, for instance, to automatically achieve non-reactive behavior. In some examples, the configuration of the memory protection measures can optionally be examined, for example, by a human expert.
[0031] In some example cases, such as for information I-INT representing an integrity objective, consider one or more of the following aspects. In some example cases, a relatively high security objective (e.g., ASIL-C / D) is predicated on redundancy, for example, to achieve a required false recognition rate as a means of risk minimization (e.g., 99% single-error recognition in the case of ASIL-D). If the ASIL classification will be known in the backend 12b, for example, redundancy may be implemented specifically, for example, using coded-processing. Therefore, in some example cases, the first information I-1, such as information I-INT representing an integrity objective, can be used to inform the backend 12b of the ASIL classification.
[0032] In some example cases, such as for Information I-SCA used to defend against side-channel attacks, consider one or more of the following aspects.
[0033] In some examples, such as in backend 12b, automatically generated code can improve resistance to side-channel attacks. In other examples, the goal could be to ensure the integrity and / or confidentiality of data or computational steps.
[0034] In some example cases, the software component SW-KOMP ( Figure 7 For example, code may enrich information such as meta-information, which represents at least one of the following elements: • Data does not physically leave the secure area (protection target: confidentiality); • Data integrity can be ensured (protection target: integrity); • For security reasons, computation can be performed redundantly multiple times (protection target: integrity); • Current consumption can be kept constant (preventing SPA / DPA analysis, protection target: confidentiality); • The processing duration of computation steps can be kept constant (protection target: confidentiality); • Computational operations can be performed such that inferences cannot be drawn from electromagnetic radiation (protection target: confidentiality); • Computational operations can be physically distributed across the processor area, for example, making it difficult to target probes (protection target: confidentiality); • Sound analysis should be impossible (protection target: confidentiality). In other words, in some example cases, the first information I-1 may include at least one of the information I-SCA mentioned above as an example, or any combination thereof.
[0035] In some example cases, the first information I-1 may characterize how to respond in the event of an attack (e.g., against a product 1, 10 having or associated with the software component SW-KOMP) (e.g., data integrity is compromised, a glitch attack has been identified, etc.). For example: a) in the event of an identified attack, (e.g., the product) may abort the computation operation and enter a defined error state, or b) (e.g., the product) may repeat the computation operation, or c) (e.g., the product) may repeat the computation operation n times and then abort, or d) (e.g., the product) may repeat the computation on another device (e.g., a "device"), etc. In other words, in some example cases, the first information I-1 may include at least one of the information mentioned above as examples, or any combination thereof, based on which the product may, for example, respond to the attack.
[0036] In some example cases, such as for I-PROF information used to generate code that produces profiling information, consider one or more of the following aspects. For example, this could be given to software components like SW-KOMP ( Figure 7The process enriches at least one annotation, which, for example, generates code in at least one downstream processing step, that generates profiling information. In some example cases, the profiling information may include at least one of the following elements: a) time information, or b) data about function calls, such as statistics, or c) memory consumption, or d) information about caching (such as cache hits / misses), or e) temperature evolution, or f) current consumption, or g) idle cycles, or h) code coverage, etc.
[0037] In some examples ( Figure 5 In the case of ), the method includes, for example, generating 140 code COD-SCA for improving resistance to side-channel attacks in compiler 12 or back-end 12b of compiler 12, and optionally using 142 the code COD-SCA for improving resistance to side-channel attacks.
[0038] Some examples ( Figure 6 This relates to an apparatus 200 for performing the method according to the present disclosure.
[0039] In other examples ( Figure 6 In the case of ), the device 200 includes: a computing device (“computer”) 202 having at least one computing core 202a, and a storage device 204 allocated to the computing device 202 for at least temporarily storing at least one of the following elements: a) data DAT (e.g., data associated with software component SW-KOMP and / or data associated with first information I-1 and / or data associated with development environment EU), b) computer program PRG, for example for performing a method according to the implementation.
[0040] In other examples, storage device 204 includes volatile memory (e.g., working memory (RAM)) 204a, and / or non-volatile (NVM) memory (e.g., flash EEPROM) 204b, or combinations thereof or combinations with other memory types not explicitly mentioned.
[0041] Other examples relate to a computer-readable storage medium SM including instructions PRG that, when executed by computer 202, cause the computer to perform a method according to an embodiment.
[0042] Other examples relate to a computer program PRG that includes instructions that, when executed by computer 202, cause the computer to perform a method according to an embodiment.
[0043] Other examples involve a data carrier signal (DCS) that represents and / or transmits a computer program (PRG) according to an embodiment. The data carrier signal (DCS) can be received, for example, via an optional data interface 206 of device 200.
[0044] Figure 8 A simplified block diagram of aspects of a development environment EU is schematically shown, in which aspects can be used according to examples. Element E12a' symbolically represents one or more front-end aspects, and element 12b' symbolically represents one or more back-end aspects according to some examples.
[0045] Element E1 symbolically represents a frontend, such as the LLVM frontend, which in some examples may be part of a development environment (EU) for software components, such as having an LLVM compiler system. Element E2 symbolically represents other optional frontends, such as types AST or Clang. Element E3a symbolically represents an intermediate representation (e.g., a machine-near intermediate language), such as an intermediate representation IR, such as LLVM IR, which is associated with frontend E1, for example. Element E3b symbolically represents an intermediate representation, such as an intermediate representation IR, such as LLVM IR, which is associated with one or more frontends E2, for example. Elements E4 and E5 symbolically represent the corresponding backend aspects, respectively.
[0046] Element E6 symbolically represents input data for frontend E1, for example, in code form, such as in a programming language used for computers, like C or C++. In a comparable manner, element E7 symbolically represents input data for at least one other frontend E2.
[0047] Element E8 symbolically represents program code, such as machine code, which can be constructed from backend E4 in some example cases, for example, based at least on input data E6.
[0048] Element E9 symbolically represents program code, such as machine code, which in some examples can be constructed by one or more optional backends E5, for example, based at least on input data E7.
[0049] Element I-1' symbolically represents at least a portion of the first information I-1 according to this disclosure, which in some example cases can be used, for example, to annotate at least some of the input data (and / or data derived therefrom, see, for example, blocks E3a, E3b) in the input data E6, E7, and can be used, for example, in later stages E3a, E3b, E4, E5, for example, for evaluation. Thus, in some example cases, at least one domain-specific aspect ASP-1 can be advantageously considered, said domain-specific aspect being related to... Figure 8 It is associated with the SW-KOMP software component for configuration processing.
[0050] Some examples ( Figure 9 The method and / or apparatus 200 according to the present disclosure and / or computer-readable storage medium SM according to the present disclosure and / or computer program PRG according to the present disclosure and / or data carrier signal DCS according to the present disclosure are used for at least one of the following elements 300: a) annotating at least a portion of software component SW-KOMP, for example by means of application-specific information, or b) providing 302, for example, application-specific information to the back-end 12b of compiler 12, or c) improving 303, for example, the security of software component SW-KOMP.
[0051] In some example cases, such as although using, for example, according to Figure 8 The relatively modular configuration, when using the principles of this disclosure, can still reduce the cost of developing software components, such as those for control devices or motor vehicles.
[0052] In some example cases, software development for, for example, the automotive field and / or other fields can be efficiently developed or supported using the principles of this disclosure, where there are relatively high differences, for example, in projects with, for example, a wide variety of computing machines, such as SoCs (System-on-a-Chip).
[0053] In some example cases, it is possible to implement, for example, meet safety requirements according to ISO 26262 by using the principles of this disclosure.
[0054] In some example cases, optimizations can be performed for specific application scenarios when using the principles of this disclosure, such as domain-specific information about the specific application situation can be represented by first information I-1.
[0055] In some example cases, cybersecurity requirements, for example, for the automotive sector, can be implemented and met using the principles of this disclosure.
[0056] In some example cases, the principles of this disclosure can be used, for example, to develop driver assistance applications for motor vehicles. In some example cases, such development may include at least three phases: 1) a concept phase, for example, in the case of using hardware different from the target hardware used for the software component SW-KOMP; 2) an embedding phase, in which the software component SW-KOMP, for example, is placed on the actual target hardware, for example, a SoC; and 3) a batch phase. For example, in the batch phase, in addition to porting the software component SW-KOMP to the target hardware (see, for example, phase: embedding), all safety and / or security requirements are implemented and considered, where the hardware used may vary considerably. By enriching the processing steps with domain-specific features, for example, based on the principles of this disclosure, during the development of the software component, the development of driver assistance applications for motor vehicles can be formulated efficiently and flexibly.
[0057] In some example cases, the principles of this disclosure can be used, for example, to develop software components for central control devices of ADAS (Advanced Driver Assistance Systems) and / or for vehicle computers (e.g., Vehicle-Computers).
[0058] In some example cases, the principles of this disclosure can be advantageously used in target systems implemented using chiplet technology.
Claims
1. A computer-implemented method for processing data associated with a software component (SW-KOMP) for products (1, 10), comprising: Provide (100) first information (I-1), the first information characterizing at least one aspect (ASP-1) of the domain (DOM) specific to the product (10) associated with the software component (SW-KOMP), and supplement the software component (SW-KOMP) with (102) the first information (I-1).
2. The method according to claim 1, wherein the method comprises: For example, for at least one stage of the development process associated with the software component (SW-KOMP), at least a portion of the first information (I-1) is set in the form of meta-information (110).
3. The method according to at least one of the preceding claims, comprising: The first information (I-1) is used for at least one processing step and / or for at least one stage of the development process associated with the software component (SW-KOMP).
4. The method of claim 3, wherein the use (120) comprises: At least a portion of the first information (I-1) is passed (120a) to the backend (12b; 12b') of the development environment (EU) for the software component (SW-KOMP), for example, to the backend of the compiler (12) for the software component (SW-KOMP).
5. The method according to at least one of the preceding claims, wherein the development environment (EU) includes at least one compiler (12) having a front end (12a) and a back end (12b), wherein the method includes at least one of the following elements: a) providing (130) at least a portion of the first information (I-1) to the front end (12a) of the compiler (12), or b) providing (132) at least a portion of the first information (I-1) to the back end (12b) of the compiler (12).
6. The method according to at least one of the preceding claims, wherein the first information (I-1) comprises at least one of the following elements: a) information about non-reactive behavior (I-RWF), for example, associated with at least one integrity objective, such as according to the Automotive Safety Integrity Level ASIL, or b) information characterizing the integrity objective (I-INT), or c) information for defending against side-channel attacks (I-SCA), or d) information for generating code for generating profiling information (I-PROF).
7. The method according to at least one of the preceding claims, comprising: For example, in the compiler (12) or the backend (12b) of the compiler (12), or the backend (12b), code (140) for improving resistance to side-channel attacks is generated, and optionally the code (142) for improving resistance to side-channel attacks is used.
8. An apparatus (200) for performing the method according to at least one of the preceding claims.
9. A computer-readable storage medium (SM) comprising instructions (PRG) that, when executed by a computer (202), cause the computer to perform the method according to at least one of claims 1 to 7.
10. A computer program (PRG) comprising instructions that, when executed by a computer (202), cause the computer to perform the method according to at least one of claims 1 to 7.
11. A data carrier signal (DCS) that represents and / or transmits the computer program (PRG) according to claim 10.
12. A method (300) according to at least one of claims 1 to 7 and / or an apparatus (200) according to claim 8 and / or a computer-readable storage medium (SM) according to claim 9 and / or a computer program (PRG) according to claim 10 and / or a data carrier signal (DCS) according to claim 11 for use (300) of at least one of the following elements: a) annotating (301) at least a portion of the software component (SW-KOMP), for example by means of application-specific information; or b) providing (302) application-specific information, for example, to the back-end (12b) of a compiler (12); or c) improving (303) the security of, for example, the software component (SW-KOMP).