ITMI20072178A1 - PROCEDURE FOR THE FUNCTIONING OF A CALCULATION UNIT - Google Patents

PROCEDURE FOR THE FUNCTIONING OF A CALCULATION UNIT Download PDF

Info

Publication number
ITMI20072178A1
ITMI20072178A1 ITMI20072178A ITMI20072178A1 IT MI20072178 A1 ITMI20072178 A1 IT MI20072178A1 IT MI20072178 A ITMI20072178 A IT MI20072178A IT MI20072178 A1 ITMI20072178 A1 IT MI20072178A1
Authority
IT
Italy
Prior art keywords
program
computing unit
volatile memories
memory
program parts
Prior art date
Application number
Other languages
Italian (it)
Inventor
Martin Hilliges
Martin Lunt
Original Assignee
Bosch Gmbh Robert
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 Bosch Gmbh Robert filed Critical Bosch Gmbh Robert
Publication of ITMI20072178A1 publication Critical patent/ITMI20072178A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

DESCRIZIONE DESCRIPTION

Il trovato ha ad oggetto un proced per il funzionamento di un'unità di calcolo, un'unità di calcolo, un programma informatico ed un prodotto di un programma informatico. The invention relates to a procedure for the operation of a computing unit, a computing unit, a computer program and a product of a computer program.

Nel caso di autoveicoli, si è soliti utilizzare parti di programma o codici di programma per un'unità dì calcolo, vale a dire per un dispositivo e, rispettivamente, un sistema a microprocessore, fabbricati da diversi produttori. Questi vengono in seguito assemblati da un integratore di sistema in un software globale in grado dì funzionare. Un simile sistema a microprocessore può ad esempio essere previsto per il comando del motore di un autoveicolo. Il software globale viene in seguito caricato sulle memorie in gran parte non volatili o permanenti del sistema a microprocessore ed eseguito. Le partì di programma dei diversi produttori comunicano fra di loro mediante interfacce anteriormente definite in maniera vincolante, al fine di rendere disponibile la funzionalità totale prevista del dispositivo a microprocessore. Dette partì di programma risultano, in base allo stato della tecnica, salvate in una memoria flash e non possono essere modificate. In the case of motor vehicles, it is customary to use program parts or program codes for a computing unit, ie for a device and, respectively, a microprocessor system, manufactured by different manufacturers. These are then assembled by a system integrator into a global software capable of functioning. Such a microprocessor system can for example be provided for controlling the engine of a motor vehicle. The global software is then loaded onto the largely non-volatile or permanent memories of the microprocessor system and executed. The program parts of the various manufacturers communicate with each other by means of interfaces previously defined in a binding manner, in order to make available the total expected functionality of the microprocessor device. According to the state of the art, said program parts are saved in a flash memory and cannot be modified.

Con dei modelli di cooperazione, come ad esempio i progetti ASAM (Association for Standardization of Automation and Measuring Systems), MSR (Manufacturer Supplier Relationship) o AUTOSAR (Automotive Open System Architecture), è prevista una cooperazione dì produttori e fornitori nel settore automobilistico. I progetti sopra elencati in via meramente esemplificativa hanno fra l'altro l'obiettivo di stabilire interfacce standardizzate per funzionalità software, in maniera tale che per mezzo di simili standard, un produttore di automobili possa trattare le cosiddette componenti software di diverse aziende di fornitura, anche fra loro concorrenti, e possa integrarle in un sistema globale senza oneri in termini di adattamento. Nell'ambito di questi progetti, c'è da attendersi che tra le diverse parti di programma dei diversi produttori si verifichino delle reciproche influenze non intenzionali. With cooperation models, such as the ASAM (Association for Standardization of Automation and Measuring Systems), MSR (Manufacturer Supplier Relationship) or AUTOSAR (Automotive Open System Architecture) projects, cooperation between manufacturers and suppliers in the automotive sector is envisaged. The projects listed above purely by way of example have, among other things, the objective of establishing standardized interfaces for software functionality, in such a way that by means of similar standards, an automobile manufacturer can process the so-called software components of different supply companies, even among their competitors, and can integrate them into a global system without burdens in terms of adaptation. In the context of these projects, it is to be expected that unintentional reciprocal influences will occur between the different parts of the programs of the different producers.

Negli attuali dispositivi a microprocessore, le diverse parti di programma si trovano tuttavia nella condizione, accanto alle interfacce definite in via ufficiale, di influenzare, in maniera voluta o meno, lo svolgimento del programma di altre partì di programma desiderate, di conseguenza, anche di influenzare le parti di programma di altri produttori. L'industria automobilistica tenta pertanto, fra le altre cose, anche di evitare tali influenze reciproche non intenzionali, attraverso direttive di codificazione standard, ad esempio il cosiddetto standard MISRA. In current microprocessor-based devices, the various program parts are nevertheless in the condition, alongside the interfaces defined in an official way, to influence, in a deliberate or unwanted manner, the execution of the program of other desired program parts, consequently also of influence program parts of other manufacturers. The automotive industry therefore also tries, among other things, to avoid such unintentional mutual influences by means of standard coding guidelines, for example the so-called MISRA standard.

L'integratore del sistema di un sistema software realizzato in questo modo non si trova, in ragione di motivi legati alla tutela della proprietà intellettuale e per ragioni di tempo, nella condizione di poter eseguire un test funzionale completo dell'intero sistema. Allo stesso modo, per ragioni legate alla tutela della proprietà intellettuale, i fornitori mettono a disposizione soltanto componenti di software a cui può essere data esecuzione, senza tuttavia fornire il testo sorgente. L'integratore del sistema, dunque, di regola non sa se egli sarà in grado di eseguire o meno integralmente il test di funzionamento. Ciò comporta, ad esempio, che egli non potrà dimostrare se ha verificato tutte le diramazioni del codice di programma fornito in relazione alla loro condotta nel contesto complessivo. Non può pertanto essere realizzata una copertura di verifica pari al 100%. The system integrator of a software system created in this way is not, for reasons related to the protection of intellectual property and for reasons of time, in the condition of being able to perform a complete functional test of the entire system. Likewise, for reasons related to the protection of intellectual property, suppliers only make available software components that can be executed, without however providing the source text. The system integrator, therefore, as a rule does not know whether he will be able to carry out the function test in full or not. This means, for example, that he will not be able to prove whether he has verified all branches of the program code provided in relation to their conduct in the overall context. Therefore, 100% verification coverage cannot be achieved.

Anche nel caso in cui tutti i fornitori mettessero a disposizione il codice sorgente per le proprie componenti software, una copertura totale di verifica non sarebbe comunque in ultima istanza possibile per via della scalabìlìtà (o adattamento ai cambiamenti di scala), dal momento che per il software od i sistemi software attuali di questo tipo esistono molteplici possibilità di combinazione, tanto che un test completo potrebbe essere realizzato solo con un dispendio di tempo estremamente elevato. Anche limitandosi ad un'unica configurazione software, ad esempio per i valori in entrata (input) nel sistema, in particolare considerando anche gli aspetti temporali di processo, il numero delle possibilità di comunicazione da sottoporre a verifica è ad esempio molto elevato. Even if all vendors made source code available for their software components, full verification coverage would not ultimately be possible due to scalability (or adaptation to changes in scale), since for the software or current software systems of this type, there are many combination possibilities, so much so that a complete test could only be carried out with an extremely high expenditure of time. Even limiting itself to a single software configuration, for example for the input values into the system, in particular also considering the temporal aspects of the process, the number of communication possibilities to be checked is for example very high.

Anche un test di funzionamento molto dettagliato che sia già stato effettuato presso il fornitore, comporta il rischio che una funzione già sottoposta a verifica assuma un comportamento diverso a seguito della integrazione nel software globale presso un integratore di sistema diverso rispetto al fornitore. Ciò può ad esempio comportare che le conseguenze di un eventuale malfunzionamento non siano le medesime che si verificano nell'intero sistema. Può anche essere che le configurazioni sottoposte a verifica presso il fornitore non mostrino alcun malfunzionamento, ma che tuttavia risulti erronea una configurazione nel sistema globale applicata dall'integratore del sistema. Even a very detailed function test that has already been carried out at the supplier carries the risk that a function that has already been tested will behave differently following integration into the global software at a different system integrator than the supplier. For example, this may mean that the consequences of a possible malfunction are not the same as those occurring in the entire system. It may also be that the configurations verified by the vendor do not show any malfunctions, but that a configuration in the global system applied by the system integrator is nevertheless erroneous.

In base a quanto detto, risulta ipotizzabile un malfunzionamento di una prima componente software di un primo fornitore che sì verifichi in conseguenza di un malfunzionamento di una seconda componente software di un secondo fornitore e ciò può portare, in caso di incidente da ciò provocato, a danni alle persone. On the basis of the foregoing, it is conceivable that a first software component from a first supplier will malfunction as a result of a second software component from a second supplier malfunction and this can lead, in the event of an accident caused by this, to damage to people.

Come esempio applicativo, è previsto che in un apparecchio di comando del motore siano integrate due realizzazioni concrete di componenti software, in cui una prima componente software ha ad oggetto il comando dell'alzacristalli ed una seconda componente software ha ad oggetto il calcolo, all'interno del motore, di una quantità di iniezione necessaria per il momento richiesto. Può in questo caso avvenire che si verifichi un malfunzionamento nella componente software per il comando dell'alzacristalli . Inoltre, nella configurazione delle componenti software descritta, un calcolo delle quantità di iniezione può essere modificato in maniera tale che, in ragione di una variazione involontaria della posizione dei finestrini, si abbia un aumento involontario del momento, per cui l'autoveicolo subisce un'accelerazione che può portare ad un incidente. As an application example, it is envisaged that two concrete embodiments of software components are integrated in an engine control device, in which a first software component has as its object the control of the window lift and a second software component has as its object the calculation, at the inside the engine, of a quantity of injection necessary for the required moment. In this case it may happen that a malfunction occurs in the software component for controlling the power windows. Furthermore, in the configuration of the software components described, a calculation of the injection quantities can be modified in such a way that, due to an involuntary variation of the position of the windows, there is an involuntary increase of the moment, for which the motor vehicle undergoes a acceleration which can lead to an accident.

Detta ipotesi di guasto o errore non è da escludersi nemmeno nel caso in cui vengano osservate tutte le misure in precedenza descritte. Proprio il calcolo erroneo dì un indice di campo può generare un pointer erroneo, che è riferito soltanto a detti punti della memoria, ad esempio all'area della quantità dell'iniezione, e può in detta sede portare ad accessi di scrittura. La direttiva di codificazione MISRA non può escludere un simile malfunzionamento, dal momento che i campi dati risultano di frequente necessari nella fase di programmazione. This hypothesis of failure or error cannot be excluded even if all the measures described above are observed. Precisely the erroneous calculation of a field index can generate an erroneous pointer, which refers only to said points of the memory, for example to the area of the injection quantity, and can lead to write accesses there. The MISRA coding directive cannot exclude such a malfunction, since data fields are frequently needed in the programming phase.

In proposito, ci si pone, ad esempio sotto il profilo giuridico, la questione se in questo caso l'integratore del sistema o il fornitore debbano essere ritenuti responsabili per i danni verificatisi, in applicazione delle norme sulla responsabilità del produttore o da prodotto difettoso. Sul punto, va considerato che l'integratore del sistema non si trova nella condizione di verificare integralmente il sistema. Il fornitore, la cui componente ha conteggiato un aumento erroneo della quantità (di iniezione), è in grado di premunirsi dall'esterno contro tali ipotesi di guasto solo con estrema difficoltà. Inoltre, il fornitore la cui componente ha realizzato la modificazione involontaria, non è in grado di sapere in quale sistema globale la sua componente sia stata in concreto inserita. In this regard, the question arises, for example from a legal point of view, whether in this case the system integrator or the supplier should be held liable for the damage that has occurred, in application of the regulations on the liability of the manufacturer or from a defective product. On this point, it should be considered that the system integrator is not in a position to fully verify the system. The supplier, whose component has counted an erroneous increase in the quantity (of injection), is able to protect itself from the outside against such hypotheses of failure only with extreme difficulty. Furthermore, the supplier whose component has made the involuntary modification is not able to know in which global system its component has actually been inserted.

Dal punto di vista tecnico, ci si pone la questione relativa a come un simile malfunzionamento temporaneo possa essere in via di principio dimostrato e comprovato. Di regola, i guasti concreti si verificano solo in maniera temporalmente limitata ed essi, al massimo al disinserimento dell'apparecchio di comando, non risultano più presenti. Al fine di dimostrare in assenza dì dubbi la presenza di un guasto, lo stato integrale dell'apparecchio di comando dovrebbe essere congelato. Anche una riproduzione di un guasto analogo è estremamente difficile. Anche qualora la riproduzione dovesse riuscire, con ciò risulta dimostrato solo che un sìmile guasto risulta possibile. Non risulta tuttavia dimostrato che il guasto riprodotto ha altresì effettivamente costituito la causa dell'incidente. Negli attuali sistemi operativi, per l'area server-desktop ma anche per l'area delle applicazioni ad incasso (enbedded), risultano noti dei meccanismi di protezione della memoria studiati per esse. Grazie a tali meccanismi, la modificazione di aree ad accesso non consentito risulta preclusa a priori. I meccanismi di protezione della memoria sono attuati in maniera differente a seconda del sistema operativo e del supporto hardware presenti. Per esempio, con l'ausilio di una Memory Mapping Unit (MMU) disponibile su di un processore hardware, il codice a cui dare esecuzione può essere copiato e, rispettivamente, mappato su un'area di memoria virtuale protetta. From a technical point of view, the question arises as to how such a temporary malfunction can in principle be demonstrated and proven. As a rule, concrete faults only occur in a limited time and they are no longer present, at the latest when the control unit is switched off. In order to clearly demonstrate the presence of a fault, the integral state of the switchgear should be frozen. Reproduction of a similar fault is also extremely difficult. Even if the reproduction were to succeed, this only proves that such a fault is possible. However, it is not proven that the failure reproduced also actually constituted the cause of the accident. In current operating systems, for the server-desktop area but also for the embedded applications area (enbedded), memory protection mechanisms designed for them are known. Thanks to these mechanisms, the modification of areas with unauthorized access is precluded a priori. Memory protection mechanisms are implemented differently depending on the operating system and hardware support present. For example, with the aid of a Memory Mapping Unit (MMU) available on a hardware processor, the code to be executed can be copied and, respectively, mapped onto a protected virtual memory area.

In alcuni sistemi operativi, le aree di memoria di diversi processi e task vengono reciprocamente sbarrate con diversi diritti di accesso, mediante l'impiego di modi operativi con lo stesso supporto hardware. Nel caso di un tentativo di accesso del codice da eseguire all'esterno dell'area assegnata, si ha un messaggio di sistema di contenuto corrispondente, come ad esempio "violazione della protezione dì scrittura all'interno del modulo X". L'utente ha dunque la possibilità di terminare del tutto il processo già arrestatosi mediante l'inserimento di un apposito comando, ad esempio "OK". In some operating systems, the memory areas of different processes and tasks are mutually barred with different access rights by using operating modes with the same hardware support. In the case of an attempt to access the code to be executed outside the assigned area, there is a corresponding content system message, such as "violation of the write protection inside module X". The user therefore has the possibility to completely terminate the process which has already stopped by entering a specific command, for example "OK".

Tale comunicazione tra diversi processi o interprocessuale è in via di principio possibile solo tramite funzioni del sistema operativo. Ciò comporta che i dati provenienti da un processo A vengono messi a disposizione di un altro processo B ad esempio mediante un salvataggio provvisorio. L'incapsulamento richiede tuttavia, in presenza di elevate quantità di dati, un elevato dispendio di risorse, dal momento che non deve essere più volte reso disponibile soltanto lo spazio dì memoria, ma anche la potenza di calcolo necessaria per copiare i dati dal A a B. Such interprocess or interprocess communication is in principle only possible via functions of the operating system. This means that data from one process A is made available to another process B, for example by means of a temporary backup. However, in the presence of large amounts of data, encapsulation requires a high expenditure of resources, since not only the memory space must be made available several times, but also the computing power necessary to copy the data from A to B.

Un cambio fra due processi, ad esempio in sistemi operativi desktop, o tra due task, in particolare nell'area ad incasso o rispettivamente embedded, viene definito quale cambiamento di contesto. Un simile cambiamento di contesto richiede dì regola una dispendiosa garanzia in ordine a tutti i contenuti di registro delle stacks di programma o memorie a catasta di programma ed alle informazioni di programma. A seconda del supporto hardware, le operazioni di detto tipo richiedono intervalli temporali nell'ordine dì millisecondi. Qualora l'utente intenda cambiare tra i tasks, questo cambiamento di contesto, ad esempio in un sistema operativo Windows, non risulta affatto percettibile all'utente, per via della sua durata pari a pochi millisecondi. A change between two processes, for example in desktop operating systems, or between two tasks, in particular in the built-in or respectively embedded area, is defined as a change of context. Such a change of context usually requires an expensive guarantee as to all register contents of program stacks or program stack memories and program information. Depending on the hardware support, operations of this type require time intervals in the order of milliseconds. If the user intends to change between tasks, this context change, for example in a Windows operating system, is not at all perceptible to the user, due to its duration equal to a few milliseconds.

In una lavatrice, un distributore automatico di bibite, ma anche in impianti industriali di dimensioni maggiori, dette tempistiche legate al cambiamento di contesto non risultano allo stesso modo problematiche nella misura in cui i sistemi di comando e di regolazione operano nell'ordine dei centesimi di secondo. Nel caso siano necessarie soluzioni più rapide, a tal fine vengono per lo più adottate soluzioni specifiche in ragione di numeri di pezzi inferiori e di varianza complessiva. In a washing machine, a vending machine for soft drinks, but also in larger industrial plants, these times linked to the change of context are not in the same way problematic to the extent that the control and regulation systems operate in the order of hundredths of a according to. If faster solutions are required, specific solutions are mostly adopted for this purpose due to lower number of pieces and overall variance.

Il settore automobilistico risulta, a differenza degli esempi descritti, connotato da un più elevato numero di pezzi e da una concorrenza che diviene dì giorno in giorno maggiore, il che comporta l'insorgere di un'elevata pressione dei costi. Ciò comporta che i sistemi di comando elettronici per tale mercato possono essere impiegati solo nel caso in cui essi possano essere approntati con il minor impiego possibile di risorse, il che in particolare va inteso con riguardo ad una memoria RAM o flash e ad una potenza di calcolo. Un apparecchio di comando per sistemi di comando di motori presenta, attualmente, una memoria flash non volatile con 2MB di spazio di memoria ed una RAM con 64 KB di spazio dì memoria, nonché 32 calcolatori a sistema binario a 44 MHz di frequenza ciclica. Unlike the examples described, the automotive sector is characterized by a higher number of parts and by a competition that becomes greater day by day, which entails the onset of high cost pressure. This means that electronic control systems for this market can be used only if they can be prepared with the least possible use of resources, which in particular must be understood with regard to a RAM or flash memory and a power of calculation. A control device for motor control systems currently has a non-volatile flash memory with 2MB of memory space and a RAM with 64 KB of memory space, as well as 32 binary system computers at 44 MHz of cyclic frequency.

Inoltre un'individualizzazione all'interno del mercato automobilistico richiede, contestualmente ad elevati requisiti in termini di comfort, potenza e rispetto delle norme in materia di emissioni, una molteplicità di varianti sempre maggiore. Per il software, ciò comporta un crescente diradamento delle componenti software in presenza comunque di una complessità crescente. Furthermore, an individualization within the automotive market requires, at the same time as high requirements in terms of comfort, power and compliance with emission standards, an ever-increasing multiplicity of variants. For software, this involves an increasing thinning of the software components in the presence of increasing complexity.

In un apparecchio di comando del motore operano attualmente da 10 fino a 30 fasica, sui quali si possono distribuire, nel caso di sistemi e dispositivi per autoveicoli in area embedded, fino a 1000 processi. Per effetto di tali processi, sono fra l'altro implementati dei sistemi di comando e regolazione i cui tempi di reazione si collocano nell'area di grandezza dei millisecondi. Entrambi i requisiti descritti non ammettono tuttavìa soluzioni per i sistemi operativi che risultano noti dai domini server o desktop, e nemmeno per gli standard basati sulle aree embedded nella applicazioni in autoveicoli. Gli attuali sistemi operativi per le applicazioni in autoveicoli sono realizzati in maniera piuttosto veloce e agile anche con riferimento alle funzioni di scheduling e soddisfano un proprio standard OSEK. Le proprietà di sincronismo {detto altresì "tempo reale") desiderate vengono in questo caso realizzate mediante uno scheduling statico, determinato con riferimento al momento della trasmissione. La comunicazione interprocessuale viene realizzata legando i singoli codici in oggetto con l'ausilio di variabili globali, in maniera da ottimizzare le risorse. Le informazioni vengono dunque copiate solo quando ciò risulti necessario per ragioni legate alla consistenza dei dati. In questo caso, non vengono di regola tenuti in considerazione i processi di protezione della memoria . 10 to 30 phases currently operate in an engine control unit, on which up to 1000 processes can be deployed in the case of systems and devices for motor vehicles in the embedded area. As a result of these processes, among other things, control and regulation systems are implemented whose reaction times are located in the range of milliseconds. However, both the requirements described do not allow solutions for operating systems that are known from server or desktop domains, nor for standards based on embedded areas in automotive applications. The current operating systems for automotive applications are made in a rather fast and agile way also with reference to the scheduling functions and meet their own OSEK standard. The desired synchronism properties (also called "real time") are realized in this case by means of a static scheduling, determined with reference to the time of transmission. Interprocess communication is achieved by linking the individual codes in question with the aid of global variables, in order to optimize resources. The information is therefore copied only when this is necessary for reasons related to the consistency of the data. In this case, memory protection processes are generally not taken into account.

Un procedimento di priorizzazione di trasduttori di informazioni risulta descritto nel documento DE 103 34 535 Al. Il procedimento di priorizzazione serve al comando coordinato della linea di trasmissione per un autoveicolo. Con l'attuazione del procedimento di priorizzazione, viene stilata una lista con i richiedenti ordinati in modo crescente o decrescente, in base alla priorità. La lista stilata viene in seguito elaborata in modalità sequenziale, iniziando dal richiedente con priorità più elevata. L'elaborazione della lista viene annullata non appena un richiedente mostri l'intenzione dì formulare la richiesta, per aver modo di poter selezionare detta intenzione di richiesta . A method of prioritizing information transducers is described in document DE 103 34 535 A1. The prioritizing method is used for coordinated control of the transmission line for a motor vehicle. With the implementation of the prioritization procedure, a list is drawn up with the applicants sorted in ascending or descending order, based on priority. The list drawn up is then processed sequentially, starting with the applicant with the highest priority. The processing of the list is canceled as soon as an applicant shows his intention to formulate the request, in order to be able to select said intention of request.

Il documento DE 10334 536 Al descrive un sistema informatico con almeno un processore ed almeno una memoria per il comando coordinato della linea di trasmissione di un autoveicolo. Il sistema informatico presenta un'architettura del software con diverse componenti. In questo caso, una prima componente risulta realizzata come sistema operativo con un sistema operativo e servizi specifici, quale base per tutti gli altri elementi ed applicazioni. Una seconda componente è realizzata quale funzionalità base per l'attuazione di richieste universali. Come terza componente, è previsto uno strato per il coordinamento degli ordini per le funzioni della funzionalità dì base e per il collegamento o inserimento di plug-in, che costituiscono la quarta componente. Almeno un plug-in serve ad un'attuazione degli ordini e delle funzioni concrete, che provengono tramite le funzioni della funzionalità di base e vengono coordinate dallo strato. In questo caso, i plug-in risultano sostituibili secondo modalità modulare. Document DE 10334 536 A1 describes a computer system with at least one processor and at least one memory for coordinated control of the transmission line of a motor vehicle. The computer system has a software architecture with different components. In this case, a first component is realized as an operating system with a specific operating system and services, as a basis for all the other elements and applications. A second component is implemented as a basic functionality for the implementation of universal requests. As a third component, a layer is provided for the coordination of the orders for the functions of the basic functionality and for the connection or insertion of plug-ins, which constitute the fourth component. At least one plug-in serves for the implementation of specific orders and functions, which originate via the functions of the basic functionality and are coordinated by the layer. In this case, the plug-ins are replaceable in a modular way.

Il trovato ha ad oggetto un procedimento per il funzionamento di un'unità di calcolo, realizzata per il controllo dì almeno un apparecchio dì comando, in cui sull'unità di calcolo, tra le parti di programma in memorie volatili di diversa origine, vengono definiti reciproci diritti di accesso. The invention relates to a method for the operation of a computing unit, realized for the control of at least one command apparatus, in which on the computing unit, among the program parts in volatile memories of different origin, are defined mutual access rights.

Nel caso dì una memoria volatile, e quindi modificabile, per una parte di programma o, rispettivamente, un codice di programma, si tratta ad esempio di un'area dati realizzata in forma di RAM, nella quale può essere salvata la parte di programma. Nel settore degli autoveicoli, le descritte parti di programma sono realizzate in forma di codici, a cui può essere data esecuzione da un processore. In the case of a volatile memory, and therefore modifiable, for a program part or, respectively, a program code, it is for example a data area realized in the form of RAM, in which the program part can be saved. In the automotive sector, the described program parts are made in the form of codes, which can be executed by a processor.

Nel caso del procedimento, nella realizzazione, delle parti di programma raggruppate, accumulate, raccolte in gruppi e/o fissate tramite interfacce mediante i diritti di accesso all'interno di memorie volatili di diversa origine vengono collegate fra loro. In questo procedimento, le parti di programma possono essere accoppiate e, rispettivamente, reciprocamente configurate nelle memorie volatili. Un simile raggruppamento (clustering), accumulo o raccolta può ad esempio essere previsto in particolare per le variabili statiche delle partì di programma all'interno delle memorie volatili. Un controllo dell'almeno un apparecchio di comando da parte dell'unità di calcolo comprende la possibilità che l'unità dì calcolo regoli o comandi 1'almeno un apparecchio di comando. In the case of the procedure, in the realization, the parts of the program grouped, accumulated, collected in groups and / or fixed through interfaces by means of the access rights inside volatile memories of different origins are connected to each other. In this method, the program parts can be coupled and, respectively, mutually configured in the volatile memories. Such a clustering, accumulation or collection can for example be provided in particular for the static variables of the program parts within the volatile memories. A control of the at least one control apparatus by the computing unit comprises the possibility of the computing unit regulating or controlling the at least one control apparatus.

I diritti di accesso possono essere suddivisi in una pluralità di blocchi globali. Ciò può comportare che soltanto le parti di programma nelle memorie volatili, ovvero le parti di programma della stessa origine, possano accedere, a fini di lettura, scrittura e di conseguenza manipolazione, alle rispettive memorie e, quindi, alle aree dati. Per le parti di programma in memorie volatili con diversa origine, possono essere determinati in modo idoneo i diritti di accesso. Ciò comporta che a prescindere dalla origine, due parti dì programma in due memorie volatili sono titolari reciprocamente dei diritti di accesso differenti. Pertanto, una prima parte di programma in una prima memoria volatile può accedere a fini di scrittura e lettura solo ad un'area dati, mentre la seconda parte di programma in una seconda memoria volatile non sarà al contrario titolare di alcun diritto di accesso ali'area dati. Access rights can be divided into a plurality of global blocks. This may imply that only the program parts in the volatile memories, or the program parts of the same origin, can access, for the purposes of reading, writing and consequently manipulation, to the respective memories and, therefore, to the data areas. For program parts in volatile memories with different origins, the access rights can be determined accordingly. This implies that regardless of the origin, two parts of the program in two volatile memories mutually hold different access rights. Therefore, a first part of the program in a first volatile memory can access for writing and reading purposes only to a data area, while the second part of the program in a second volatile memory will not, on the contrary, be the holder of any right of access to the data. data area.

Pertanto, le parti di programma nelle memorie volatili possono essere identificate sulla base della loro orìgine e, quindi, in particolare della loro provenienza. Ciò comporta di regola che le parti di programma nelle memorie volatili di diversa origine provengono da diversi produttori e le parti di programma nelle memorie volatili con la medesima origine provengono dallo stesso produttore. Per le parti di programma nelle memorie volatili della medesima origine, i diritti di accesso reciproci sono di regola definiti da parte del produttore. Therefore, the program parts in volatile memories can be identified on the basis of their origin and, therefore, in particular of their provenance. As a rule, this means that the program parts in volatile memories of different origins come from different manufacturers and the program parts in volatile memories with the same origin come from the same manufacturer. For program parts in volatile memories of the same origin, reciprocal access rights are usually defined by the manufacturer.

Una forma di realizzazione del trovato porta ad un layout di scheduling di processo con le proprietà che si ottengono da un clustering e da un raggruppamento di tutti ì processi delle ditte dì produzione e, quindi, di tutti i processi aventi la medesima origine. In questo caso può ad esempio avvenire una suddivisione del cluster in tre gruppi globali di processo di informazione e, eventualmente, si opererà una ulteriore ripartizione dei gruppi dei cluster sulla base di un'analisi delle relazioni send - receive. Grazie a tali tre blocchi globali, vengono stabiliti diversi diritti di accesso. An embodiment of the invention leads to a process scheduling layout with the properties obtained from a clustering and grouping of all the processes of the production companies and, therefore, of all the processes having the same origin. In this case, for example, a subdivision of the cluster into three global information processing groups can take place and, possibly, a further division of the cluster groups will take place on the basis of an analysis of the send - receive relationships. Thanks to these three global blocks, different access rights are established.

In una variante del trovato è previsto che le parti di programma nelle memorie volatili siano fissate in maniera statica all'interno del software generale. In a variant of the invention it is provided that the program parts in the volatile memories are statically fixed within the general software.

Grazie ad un diritto di accesso, un accesso di una prima parte di programma in una prima memoria volatile può essere regolato, almeno in maniera unilaterale, su una seconda parte di programma in una seconda memoria volatile. Con una regolazione reciproca le parti di programma nelle memorie volatili possono essere protette da reciproche influenze involontarie. Thanks to an access right, an access of a first program part in a first volatile memory can be regulated, at least unilaterally, on a second program part in a second volatile memory. With mutual adjustment, the program parts in the volatile memories can be protected from unwanted mutual influences.

In una ulteriore realizzazione del procedimento, un'appartenenza di almeno una componente software di una parte di programma in una memoria volatile viene definita e descritta con riferimento ad un meta-dato e, di conseguenza, genera almeno un avviso relativo ad un collegamento fra le parti di programma nelle memorie volatili di diversa origine. In questo caso, l'almeno un meta-dato può essere predisposto per le funzioni di configurazione ad un momento di trasmissione, attraverso il quale viene configurata una tabella oraria e/o viene generata una strategia di ottimizzazione . In a further embodiment of the method, a membership of at least one software component of a program part in a volatile memory is defined and described with reference to a meta-data and, consequently, generates at least a warning relating to a connection between the parts of programs in volatile memories of different origins. In this case, the at least one meta-data can be set up for the configuration functions at a transmission time, through which a time table is configured and / or an optimization strategy is generated.

Le parti di programma nelle memorie volatili possono essere realizzate sulla unità di calcolo ed in particolare all'interno di un software globale statico dell'unità di calcolo. Di conseguenza, nell'unità di calcolo possono essere integrate più applicazioni di parti dì programma in memorie volatili dì diversa origine. The program parts in volatile memories can be implemented on the computing unit and in particular within a static global software of the computing unit. Consequently, several applications of program parts in volatile memories of different origins can be integrated in the computing unit.

In una realizzazione del trovato, le funzioni del sistema operativo dell'almeno una unità di calcolo possono essere considerate con riferimento al tempo di funzionamento. In an embodiment of the invention, the functions of the operating system of the at least one computing unit can be considered with reference to the operating time.

Inoltre, in un'altra variante del procedimento, per la modifica della parte di programma nella memoria volatile, può essere di regola autorizzato solo un settore dì memoria esclusivo ed idoneo dell'unità di calcolo, in cui detto settore di memoria risulta ad esempio realizzato in modo dipendente . Furthermore, in another variant of the method, for the modification of the program part in the volatile memory, only an exclusive and suitable memory sector of the computing unit can be authorized, in which said memory sector is realized for example in an addictive way.

In questo caso, a fini di sicurezza, può essere predisposta una memoria ombra, ad esempio un'area d'ombra, dell'area di memoria per la realizzazione di una strategia possibile per dare attuazione al trovato . In this case, for security purposes, a shadow memory, for example a shadow area, of the memory area can be provided for the realization of a possible strategy for implementing the invention.

Secondo una realizzazione del trovato, in un'area di memoria comune può avvenire un accesso ad uri messaggio tramite il richiamo del sistema operativo. In alternativa o a completamento di ciò, può in particolare verificarsi un accesso comune tramite aree di memoria separate. According to an embodiment of the invention, a message can be accessed in a common memory area by calling up the operating system. Alternatively or to supplement this, joint access via separate memory areas can in particular occur.

In una ulteriore realizzazione, possono essere predisposte o applicate, da parte delle componenti delle parti di programma nelle memorie volatili e, rispettivamente, delle componenti software, copie delle memorie volatili e di conseguenza delle aree dati volatili. In a further embodiment, copies of the volatile memories and consequently of the volatile data areas can be prepared or applied by the components of the program parts in the volatile memories and, respectively, of the software components.

Il trovato ha inoltre ad oggetto un'unità di calcolo che risulta realizzata per il controllo dì almeno un apparecchio di comando. In questo caso, l'unità di calcolo risulta a tal fine prevista per definire dei reciproci diritti d'accesso fra parti di programma nelle memorie volatili di diversa origine . The invention also relates to a computing unit which is made for the control of at least one command apparatus. In this case, the computing unit is provided for this purpose to define reciprocal access rights between program parts in volatile memories of different origins.

Detta unità di calcolo può essere realizzata quale componente di un apparecchio di comando o, quanto meno, interagire con almeno un apparecchio di comando. In questo caso, l'unità di calcolo è prevista ad esempio per il controllo di almeno un apparecchio di comando nel settore degli autoveicoli . Said computing unit can be realized as a component of a command apparatus or, at least, interact with at least one command apparatus. In this case, the computing unit is provided, for example, for controlling at least one control unit in the motor vehicle sector.

L'unità di calcolo conforme al trovato è realizzata per l'attuazione di almeno una fase del procedimento conforme al trovato. The computing unit according to the invention is made for carrying out at least one step of the method according to the invention.

Il trovato ha inoltre ad oggetto un programma informatico con mezzi di codice di programmazione al fine di realizzare tutte le fasi del procedimento conforme al trovato nel caso in cui il programma informatico sìa eseguito su un computer o su una corrispondente unità di calcolo, in particolare su un'unità di calcolo conforme al trovato . The invention furthermore relates to a computer program with programming code means in order to carry out all the steps of the method according to the invention in the event that the computer program is executed on a computer or on a corresponding calculation unit, in particular on a computing unit according to the invention.

Il prodotto costituito da un programma informatico conforme al trovato con mezzi di codice programma che sono salvati in un supporto dati leggìbile dal computer, è realizzato per l'attuazione di tutte le fasi del procedimento conforme al trovato nel caso in cui il programma informatico sia eseguito su un computer od una corrispondente unità di calcolo, in particolare su di un'unità di calcolo conforme al trovato. The product consisting of a computer program conforming to the invention with program code means which are saved in a data carrier that can be read by the computer, is designed for carrying out all the steps of the method according to the invention in the event that the computer program is executed. on a computer or a corresponding computing unit, in particular on a computing unit according to the invention.

Grazie al trovato, in una realizzazione risulta possibile predisporre una protezione della memoria, in considerazione delle parti dei produttori e dei fornitori da parte dei quali sono di regola realizzate le parti di programma nelle memorie volatili e mediante i quali risultano pertanto stabilite le origini delle parti di programma nelle memorie volatili, nei sistemi in tempo reale e, in particolare, nei sistemi di software in tempo reale. Thanks to the invention, in one embodiment it is possible to provide a memory protection, in consideration of the parts of the producers and suppliers on whose part the program parts are usually realized in the volatile memories and by means of which the origins of the parts are therefore established. in volatile memories, in real-time systems and, in particular, in real-time software systems.

Con il trovato illustrato è possibile, fra l'altro, garantire che le diverse partì di programma eseguibili nelle memorie volatili di diversi produttori, che risultano indipendenti l'uno dall'altro, possano essere eseguite su di un'unità di calcolo o un processore, senza che si influenzino involontariamente fra loro. Il trovato può inoltre avere ad oggetto, secondo un'altra realizzazione, anche architetture di software o sistemi software in cui diverse parti di programma in diverse memorie volatili devono essere utilizzate almeno in parte in una sequenza definita di svolgimento, al fine di attuare un cosiddetto piano di scheduling statico o di svolgimento. E' questo ad esempio il caso degli apparecchi di comando nel settore degli autoveicoli . With the illustrated invention it is possible, among other things, to ensure that the various program parts that can be executed in the volatile memories of different manufacturers, which are independent of each other, can be executed on a computing unit or a processor. , without involuntarily influencing each other. The invention may furthermore relate, according to another embodiment, also to software architectures or software systems in which different program parts in different volatile memories must be used at least in part in a defined sequence of execution, in order to implement a so-called static or development scheduling plan. This is the case, for example, with control devices in the motor vehicle sector.

In questo modo, il trovato offre una protezione da un reciproco accesso esterno delle aree dati volatili delle parti di programma nelle memorie volatili di diversa orìgine e, di conseguenza, di produttori indipendenti e diversi gli uni dagli altri, nel caso in cui alle parti di programma nelle memorie volatili sia stata data esecuzione all'interno di un software generale installato in maniera statica su un dispositivo a microprocessore o in un corrispondente sistema a microprocessore , In this way, the invention offers protection from mutual external access of the volatile data areas of the program parts in the volatile memories of different origins and, consequently, of independent producers different from each other, in the event that the parts of program in volatile memories has been executed within general software installed statically on a microprocessor device or in a corresponding microprocessor system,

Per effetto di ciò, nella realizzazione si ottiene che lo scheduling statico o configurato in maniera automatica con riferimento ad un dato momento di trasmissione, al momento della esecuzione, non necessita pressoché di alcuna funzione di calcolo per il disbrigo delle incombenze amministrative. Inoltre, una comunicazione interprocessuale, sulla base delle attuali strategie di ottimizzazione poste in essere nel momento del trasferimento, non necessita che di scarse risorse in più, sotto forma di una memoria RAM e/o di una funzione o prestazione di calcolo. Con il trovato è altresì possibile evitare che si verifichi un ulteriore cambiamento di contesto critico sotto il profilo del funzionamento. Inoltre, in una forma di realizzazione risulta possibile che nel caso di una violazione dell'accesso, possano essere predisposte delle strategie di soluzione che conducano ad una reazione dì sistema sicura all'interno del software globale. As a result of this, in the implementation it is obtained that the static or automatically configured scheduling with reference to a given moment of transmission, at the time of execution, does not require almost any calculation function for the handling of administrative tasks. Furthermore, an interprocessual communication, on the basis of the current optimization strategies put in place at the moment of transfer, only requires scarce additional resources, in the form of a RAM memory and / or a calculation function or performance. With the invention it is also possible to avoid a further change of critical context from the point of view of operation. Furthermore, in one embodiment it is possible that in the event of an access violation, solution strategies can be prepared which lead to a secure system reaction within the overall software.

Una ulteriore realizzazione del trovato si basa sulla interazione di funzioni in tre livelli, più precisamente, l'approntamento di meta-dati per le funzioni di configurazione al momento della trasmissione, delle funzioni del sistema operativo realizzate al momento di funzionamento e dell''hardware e quindi dell<f>unità di calcolo. A further embodiment of the invention is based on the interaction of functions in three levels, more precisely, the provision of meta-data for the configuration functions at the time of transmission, of the operating system functions implemented at the time of operation and of the hardware and therefore of the <f> calculation unit.

In una ipotetica applicazione, per i modelli di interfacce e configurazione attualmente esìstenti di AUTOSAR, ASAM o MSR, vengono predisposti diversi meta-dati in forma di file XML. Ciò riguarda informazioni di scheduling per processi e task, nonché la loro dichiarazione. Come meta-dati possono inoltre essere predisposti rapporti di invio e ricezione dì cosiddetti messaggi, nonché rapporti di appartenenza di variabili, messaggi, parametri dì regolazione, processi, ecc., con riferimento alle parti di programma nelle memorie volatili e, rispettivamente, alle loro componenti software. Inoltre, in alternativa o a completamento, possono essere predisposti dei rapporti di appartenenza delle componenti software delle parti di programma nelle memorie volatili alle loro ditte di produzione. In a hypothetical application, various meta-data in the form of XML files are prepared for the currently existing interface and configuration models of AUTOSAR, ASAM or MSR. This concerns scheduling information for processes and tasks, as well as their declaration. As meta-data, reports of sending and receiving of so-called messages, as well as membership reports of variables, messages, regulation parameters, processes, etc., can also be prepared, with reference to the program parts in the volatile memories and, respectively, to their software components. In addition, as an alternative or to supplement, it is possible to set up relationships of belonging of the software components of the program parts in the volatile memories to their production companies.

Nel caso di un cosiddetto messaggio (message) che può essere effettuato in una ulteriore realizzazione del trovato, si tratta di una variabile globale che viene utilizzata per la comunicazione interprocessuale . Viene in questo modo assicurato che nel caso di una possibile inconsistenza dei dati, dovuta ad un accesso temporalmente sfasato a tale variabile, in caso di interruzioni del task, i contenuti delle variabili siano tamponati mediante copie, in maniera tale che tutti i processi in fase di accesso presentino sempre i medesimi contenuti dati per la durata dell'esecuzione del task. In the case of a so-called message which can be carried out in a further embodiment of the invention, it is a global variable which is used for interprocess communication. In this way it is ensured that in the event of a possible data inconsistency, due to a temporally out of phase access to this variable, in the event of a task interruption, the contents of the variables are buffered by means of copies, so that all processes in phase always have the same data contents for the duration of the task execution.

Nell'ambito del trovato può essere realizzato almeno uno di diversi diritti di accesso. Di regola, tre diversi diritti di accesso sono raggruppati (clustered) in tre blocchi globali. L'unità di calcolo presenta di regola più aree di memoria o RAM, in cui è prevista un'area di memoria e quindi una memoria volatile per una parte di programma di un'origine. Within the scope of the invention, at least one of different access rights can be realized. As a rule, three different access rights are clustered into three global blocks. The computing unit usually has several memory or RAM areas, in which a memory area and therefore a volatile memory is provided for a part of the program of a source.

In questo caso, un primo diritto di accesso comprende un raggruppamento o cluster di tutte le variabili statiche delle ditte di produzione in ciascuna area RAM, ad esempio mediante "SectionCompany [x].private con x = 0...n-1", sicché la rispettiva area RAM può essere utilizzata solo ed esclusivamente dalla ditta produttrice. Pertanto, solo la ditta produttrice ha un accesso, ivi compresa lettura, scrittura, modificazione delle parti di programma nelle memorie volatili, alle aree dati volatili che trovano la propria origine in questa ditta produttrice . In this case, a first access right includes a grouping or cluster of all the static variables of the production companies in each RAM area, for example via "SectionCompany [x] .private with x = 0 ... n-1", so that the respective RAM area can be used only and exclusively by the manufacturer. Therefore, only the manufacturing company has access, including reading, writing, modification of program parts in volatile memories, to the volatile data areas that have their origin in this manufacturing company.

Un secondo diritto di accesso comprende un raggruppamento di tutte le variabili statiche delle ditte di fabbricazione in ciascuna area RAM, in cui vale "SectionCompany[x].public.read con x = 0... n-1". Ciò comporta che solo la ditta produttrice x delle parti dì programma nelle memorie volatili può modificare e quindi scrivere in tali parti di programma nelle citate memorie volatili. Alle altre ditte produttrici o partner di sviluppo sarà concesso esclusivamente un diritto di accesso a fini di sola lettura. A second access right includes a grouping of all the static variables of the manufacturing companies in each RAM area, where "SectionCompany [x] .public.read with x = 0 ... n-1" holds. This implies that only the manufacturer x of the program parts in the volatile memories can modify and therefore write in these program parts in the aforementioned volatile memories. Other manufacturing companies or development partners will only be granted a read-only access right.

Un terzo diritto di accesso comprende un raggruppamento di tutte le variabili statiche delle ditte produttrici in ciascuna area di memoria, in base a cui vale "SectionCompany [x].public.write con x = 0... n-1". Pertanto, tutti gli altri partner di sviluppo possono manipolare, vale a dirle leggere e riscrivere, le parti di programma nelle memorie volatili. A third access right includes a grouping of all the static variables of the manufacturers in each memory area, according to which "SectionCompany [x] .public.write with x = 0 ... n-1" is valid. Therefore, all other development partners can manipulate, that is to say, read and rewrite, the program parts in volatile memories.

Nel settore degli autoveicoli, nell'ambito di un layout di scheduling di processo, viene definita quale processo una funzione void-void top-level all'interno di un ordine o task. Una funzione di sistema viene di regola realizzata mediante almeno un processo, in maniera tale che almeno un processo e, quindi, anche una pluralità di processi, possano essere elaborati in diverse task. Grazie a questo concetto dei processi, una memoria a catasta o stack risulta, tra i diversi richiami del processo, costantemente vuota ed i processi non sono così in grado di influenzarsi fra loro grazie alla stack. In caso dì bisogno, può anche essere verificato uno stackpointer tra i richiami del processo. In the automotive sector, as part of a process scheduling layout, a top-level void-void function within an order or task is defined as a process. A system function is usually implemented by means of at least one process, in such a way that at least one process and, therefore, also a plurality of processes, can be processed in different tasks. Thanks to this process concept, a stack or stack memory is constantly empty between the various process calls and the processes are thus unable to influence each other thanks to the stack. If needed, a stackpointer can also be checked between process calls.

La sequenza dei richiami del processo viene di regola determinata attraverso i rapporti dì invio e ricezione o send and receive dei messaggi rispetto ad una comunicazione interprocessuale, nonché attraverso un processo di elaborazione informazioni globale. In questo caso, la realizzazione ha ad oggetto la comunicazione interprocessuale nel settore automobilistico. Attraverso ì processi globali di elaborazione, ì dati sensore vengono rilevati ed elaborati da sensori e, inoltre, vengono emessi dei valori di regolazione per attuatori. The sequence of the process calls is usually determined through the send and receive or send and receive reports of the messages with respect to an interprocessual communication, as well as through a global information processing process. In this case, the realization relates to interprocessual communication in the automotive sector. Through global processing processes, sensor data is collected and processed by sensors and, in addition, set values are output for actuators.

Qualora nel tempo di funzionamento un task raggiunga un simile valore limite di gruppo, per il task e, di conseguenza, per il gruppo immediatamente successivo secondo l'ordine di esecuzione, le aree di sicurezza specifiche in base a origine e produttore vengono autorizzate a lettura e scrittura da parte del sistema operativo, in considerazione di un layout RAM. In una variante del trovato, non si verifica dunque alcun cambiamento di contesto tra le due componenti software, vale a dire che non viene impiegato alcun sistema di amministrazione della memoria (Memory Management Unìt, MMU) e, quindi, nessuna memoria virtuale. Le parti di programma nelle memorie volatili, ed in particolare le componenti software, vengono ad esempio protette le une dalle altre all'interno di un contesto di task. Ne consegue che in una variante del trovato, non sì verifica il problema sopra descritto delle misure di soluzione derivanti da altri domini, come ad esempio un overhead eccessivo del tempo di funzionamento che avviene in relazione ad un MMU per effetto dì una molteplicità di cambiamenti di contesto, né si verificano i problemi di protezione della memoria dei sistemi operativi sino ad oggi impiegati nel settore degli autoveicoli . If a task reaches a similar group limit value during the operating time, for the task and, consequently, for the immediately following group according to the execution order, the specific safety areas based on origin and manufacturer are authorized to read and writing by the operating system, considering a RAM layout. In a variant of the invention, therefore, no change of context occurs between the two software components, that is to say that no memory management system (Memory Management Unit, MMU) is used and, therefore, no virtual memory. The program parts in volatile memories, and in particular the software components, are for example protected from each other within a task context. It follows that in a variant of the invention, the problem described above of the solution measures deriving from other domains does not occur, such as for example an excessive overhead of the operating time that occurs in relation to an MMU due to a multiplicity of changes of context, nor do the memory protection problems of the operating systems used up to now in the automotive sector occur.

Il presente trovato può altresì comprendere un sistema operativo. Un sìmile sistema operativo può generare, in funzione di una relativa realizzazione, un meccanismo per la determinazione delle aree di memoria non assoggettabili a scrittura dalle componenti software e, in particolare, dalle serie dì componenti software e quindi dalle parti di programma nelle memorie volatili. Ciò può avvenire al momento di integrazione dell'unità di calcolo o del sistema, di regola al momento nel corso del quale vengono generate le cosiddette softwareimages o immagini software. Ad un determinato tempo di funzionamento, in cui 1'apparecchio di comando o il sistema nel veicolo sono in funzione, da tale sistema operativo vengono impostate le componenti dell'area di memoria modificabile che si trovano di volta in volta in esecuzione. The present invention can also comprise an operating system. A similar operating system can generate, as a function of a relative embodiment, a mechanism for determining the memory areas not subject to writing by the software components and, in particular, by the series of software components and therefore by the program parts in the volatile memories. This can take place at the time of integration of the computing unit or system, usually at the time at which so-called software images or software images are generated. At a certain operating time, in which the control unit or the system in the vehicle is in operation, the components of the modifiable memory area which are in each case being executed are set from this operating system.

Con il trovato, nel settore degli autoveìcoli risulta possibile attuare diverse strategie per la protezione della memoria dell'unità dì calcolo. In seguito, vengono presentati quattro esempi di tali strategie. Con almeno una prima strategia, si evita l'accesso a fini di scrittura involontario o, rispettivamente, volontario ad un'area dati esclusiva di un'altra componente software. With the invention, in the motor vehicle sector it is possible to implement various strategies for protecting the memory of the computing unit. Below, four examples of such strategies are presented. With at least a first strategy, involuntary or, respectively, voluntary access to an exclusive data area of another software component is avoided.

A tal fine, nel corso della generazione di una sequenza statica di scheduling di un task tra parti di programma nelle memorie volatili e, rispettivamente, tra gruppi di componenti software, vale a dire di una quantità di processi di rispettivi produttori semplicemente dipendenti dal tempo di funzionamento, possono essere inseriti automaticamente richiami del sistema operativo. Di conseguenza, per tali gruppi (cluster) o raggruppamenti di parti di programma in memorie volatili, solo almeno un'area di memoria corrispondentemente esclusiva del produttore viene autorizzata alla modifica, dì regola alla lettura e/o alla scrittura ed un'area di memoria, o le memorie dati complessive restanti, vengono bloccate all'accesso a finì di lettura e scrittura. To this end, during the generation of a static scheduling sequence of a task between program parts in volatile memories and, respectively, between groups of software components, i.e. a quantity of processes of respective manufacturers simply dependent on the time of operation, operating system prompts can be inserted automatically. Consequently, for such groups (clusters) or groupings of program parts in volatile memories, only at least a memory area correspondingly exclusive to the manufacturer is authorized to modify, rule to read and / or write and a memory area , or the remaining overall data memories, are blocked at access to read and write ends.

Un collegamento o un link del software globale o di un sistema eventualmente da prevedersi, che comprenda le partì dì programma nelle memorie volatili, viene realizzato al fine di far sì che tutti i dati statici di un produttore, che dì regola controllano una pluralità di gruppi dì componenti software, si trovino in un'area di memoria o area RAM semplicemente dipendente. In questo caso, nella realizzazione può essere vietata un'associazione o, rispettivamente, allocazione di una memoria dinamica tramite "malloc ()/free() ". A connection or a link of the global software or of a system possibly to be foreseen, which includes the program parts in the volatile memories, is created in order to ensure that all the static data of a producer, which as a rule, control a plurality of groups of software components, are located in a simply dependent memory area or RAM area. In this case, an association or, respectively, allocation of a dynamic memory via "malloc () / free ()" can be prohibited in the implementation.

In aggiunta, la memoria a catasta può essere completamente liberata in corrispondenza di ciascun confine del gruppo (cluster); ciò implica, ad esempio, che lo stackpointer viene posto all'inizio per predisporre misure di sicurezza di più vasto raggio e ridondanti. In addition, the stack memory can be completely freed at each boundary of the group (cluster); this implies, for example, that the stackpointer is placed at the beginning to provide security measures of greater range and redundant.

Con queste strategie, si può garantire che i gruppi di componenti software protetti l'uno dall'altro abbiano un accesso modificato alle aree dati esclusive degli altri gruppi e gruppi di componenti software. With these strategies, it can be ensured that groups of software components protected from each other have modified access to the data areas unique to the other groups and groups of software components.

Inoltre, con almeno una delle strategie può essere evitato un accesso involontario a fini di scrittura anche alle aree di memoria comuni. Nell'ambito del trovato, risultano possibili diversi modi operandi a seconda della strategia che risulti più ragionevole applicare. Le strategie possono in questo caso essere influenzate anche dall'hardware. Furthermore, with at least one of the strategies it is possible to avoid an involuntary access for writing purposes also to the common memory areas. Within the scope of the invention, various operand modes are possible depending on the strategy that is more reasonable to apply. In this case, the strategies can also be influenced by the hardware.

Una prima strategia ha ad oggetto un accesso a fini di lettura o scrittura ad un message che risulta realizzato in forma di dato nell'area di memoria comune. Questa prima strategia viene di regola attuata con un solo richiamo del sistema operativo sulla unità di calcolo. 11 richiamo del sistema operativo accede al dato in un contesto di un utente o user privilegiato, un cosiddetto superuser, che è dotato, in sede di utilizzo del processore, di particolari diritti. L'area di memoria comune può essere scritta solo da questo utente, il che può comprendere anche la variante secondo cui solo il superuser ha accesso all'area di memoria comune. Ne consegue, che tutte le modificazioni involontarie, ad esempio tramite indicatori o pointer guasti, vengono respinte e possono essere attuate le rispettive ulteriori misure, ad esempio l'azionamento di una exception/trap . A first strategy relates to access for reading or writing purposes to a message which is realized in data form in the common memory area. This first strategy is usually implemented with a single call of the operating system on the computing unit. The recall of the operating system accesses the data in a context of a privileged user or user, a so-called superuser, who is endowed with particular rights when using the processor. The common memory area can only be written by this user, which can also include the variant that only the superuser has access to the common memory area. As a result, all unintentional changes, eg via fault indicators or pointers, are rejected and the corresponding further measures can be implemented, eg triggering an exception / trap.

Questa prima strategia può consentire la realizzazione di "input-messages" per componenti software di altri produttori, che di regola sono protette dalle modifiche grazie ai confini dei gruppi . This first strategy can allow the creation of "input-messages" for software components of other manufacturers, which are usually protected from changes thanks to group boundaries.

Nell'ambito dì una seconda strategia, è previsto vi siano diversi moduli dell'area di memoria di regola fra loro separati ed indipendenti, e non vi sia alcuna area di memoria comune. I messages sono in questo caso di volta in volta salvati in un modulo esclusivo dell'area di memoria del gruppo (cluster) parte di programma e componenti software. Di conseguenza, si ottiene, fra l'altro, che non risulta possibile alcuna modifica volontaria e/o involontaria da parte di altri gruppi. In the context of a second strategy, it is envisaged that there are several modules of the memory area, as a rule separate and independent from each other, and there is no common memory area. In this case, the messages are saved from time to time in an exclusive module of the memory area of the group (cluster) part of the program and software components. Consequently, among other things, it is obtained that no voluntary and / or involuntary modification by other groups is possible.

In una terza strategia, può trovare impiego un'idea che tra l'altro consente la realizzazione di input-messages. In questa idea, al tempo di strutturazione o build-time, tutte le componenti software delle parti di programma nelle memorie volatili vengono verificate per vedere se queste contengono messaggi input di una componente di un altro produttore. Qualora ciò avvenga, per almeno una delle componenti da scrivere viene fatta una copia del messaggio, sulla quale 1'almeno una di tali componenti di scrittura può scrivere. Detta componente, nel tempo della propria esecuzione, scrive o sovrascrive la copia del messaggio, che viene a tal fine predisposta dal sistema operativo. In questa terza strategia, può essere considerato che, a sua volta, solo il produttore della componente di scrittura può scrivere all'interno di detta copia, con la conseguenza che sono escluse modifiche da parte di altri produttori. In seguito, il valore della copia viene copiato, ad esempio a livello del confine dì gruppo del sistema operativo, che in questo contesto opera come user privilegiato o superuser, sul messaggio iniziale o originale. In questo meccanismo, risulta opportuno che solo un'altra componente scriva di volta in volta su questo input-message . Ciò può tuttavia essere verificato dai sistema operativo al momento buìld. In a third strategy, an idea can be used which among other things allows the creation of input-messages. In this idea, at build time, all software components of program parts in volatile memories are checked to see if they contain input messages from a component from another manufacturer. If this occurs, a copy of the message is made for at least one of the components to be written, on which at least one of these writing components can write. This component, in the time of its execution, writes or overwrites the copy of the message, which is prepared for this purpose by the operating system. In this third strategy, it can be considered that, in turn, only the producer of the writing component can write within said copy, with the consequence that modifications by other producers are excluded. Subsequently, the value of the copy is copied, for example at the group boundary of the operating system, which in this context acts as a privileged user or superuser, on the initial or original message. In this mechanism, it is desirable for only one other component to write to this input-message from time to time. However, this can be verified by the operating system at the moment.

In una ulteriore variante, una pluralità di componente dì scrittura può allo stesso modo scrivere sull'input-message di una componente. Per ciascuna dì tali componenti di scrittura, dal sistema operativo viene messa a disposizione una copia dell'input-message. Qualora sia ad esempio data esecuzione a quella componente che ha messo a disposizione 1'input-message, è altresì previsto che detta componente comunichi in maniera idonea al sistema operativo come procedere con una pluralità di copie dell'input-message. Ciò può ad esempio· avvenire mediante una cosiddetta funzione callback di una componente. Detta funzione callback può trasmettere e predisporre, dal sistema operativo prima del richiamo dell'effettiva e propria componente, un numero ed una sequenza di scrittura di tutte le copie. Con la funzione callback, la componente può anche accedere in maniera completamente generica ai dati ed eseguire l'elaborazione per essa più appropriata; ciò può ad esempio comportare che viene o vengono considerato/i solo l'ultimo valore, la somma di più valori e/o la media di tutti i valori. In a further variant, a plurality of writing component can likewise write on the input message of a component. For each such writing component, a copy of the input message is made available by the operating system. If, for example, the component that has made the input message available is executed, it is also envisaged that said component communicates in a manner suitable for the operating system how to proceed with a plurality of copies of the input-message. This can be done, for example, by means of a so-called callback function of a component. Said callback function can transmit and prepare, from the operating system before the actual and proper component is called, a number and a sequence of writing all the copies. With the callback function, the component can also access data in a completely generic way and perform the most appropriate processing for it; this may, for example, imply that only the last value, the sum of several values and / or the average of all values is or are considered.

In una quarta strategia, l'area di memoria comune viene scritta e/o letta per ciascun richiamo del sistema operativo senza un user privilegiato. Per sicurezza, in questa quarta strategia è prevista una zona d'ombra o shadow dell'area di memoria comune. Grazie a questa area d'ombra, la consistenza dell'intera area di memoria può essere garantita con un meccanismo ulteriore. In a fourth strategy, the common memory area is written and / or read for each invocation of the operating system without a privileged user. For safety, in this fourth strategy there is a shadow zone or shadow of the common memory area. Thanks to this shadow area, the consistency of the entire memory area can be guaranteed with an additional mechanism.

La quarta strategia può essere realizzata mediante una prima variante. In questa prima variante, a ciascun accesso di lettura e/o scrittura, un dato originale viene di volta in volta comparato con un dato corrispondente o associato nella zona d'ombra. In caso il dato non coincida con il dato originale, risulta possibile reagire con le opportune misure. The fourth strategy can be implemented by means of a first variant. In this first variant, at each read and / or write access, an original datum is each time compared with a corresponding or associated datum in the shadow zone. If the data does not coincide with the original data, it is possible to react with the appropriate measures.

In aggiunta o in alternativa, per la realizzazione della quarta strategia può trovare applicazione una seconda variante. In questa seconda variante, vengono eseguiti degli algoritmi di somma check {o somma di controllo} di ambedue le aree di memoria, che vengono in seguito fra loro comparati. In caso di mancata coincidenza delle somme di controllo, sì reagisce in maniera opportuna. Di regola, nel compimento dell'algoritmo delle somme di controllo, attraverso agli accessi di scrittura e lettura non atomici, vale a dire mediante cosiddetti read-write-locks, possono essere assunte delle misure contro l'inconsistenza dei dati. In addition or alternatively, a second variant can be applied to implement the fourth strategy. In this second variant, check sum algorithms {or checksum} of both memory areas are executed, which are then compared with each other. In case of non-coincidence of the check sums, it reacts in an opportune way. As a rule, in the fulfillment of the checksum algorithm, measures can be taken against data inconsistency through non-atomic read and write accesses, i.e. through so-called read-write-locks.

Poiché, in caso di accessi involontari, entrambe le aree di memoria non vengono mai dì regola modificate in maniera casuale sìncrona, in entrambe le varianti alla quarta strategia vengono identificate le inconsistenze, in maniera tale che sia possibile reagire ad esse. Since, in case of involuntary accesses, both memory areas are never normally modified in a random and synchronous manner, in both variants of the fourth strategy the inconsistencies are identified, in such a way that it is possible to react to them.

La strategia da attuare nella realizzazione in considerazione di una delle due varianti risulta ad esempio applicabile qualora 1'hardware utilizzato non supporti alcuna nozione di utente privilegiato (superuser). The strategy to be implemented in the realization in consideration of one of the two variants is applicable, for example, if the hardware used does not support any notion of privileged user (superuser).

Un esempio di realizzazione del trovato può avere ad oggetto una realizzazione RAM o un layout RAM della memoria di lavoro (RAM). In un gruppo di ricerca e sviluppo con n diversi partner di sviluppo, possono essere generati, mediante le appartenenze di variabili e funzioni software alle componenti software e, di conseguenza, alle rispettive ditte di produzione descritte nei metadati, istruzioni di collegamento o link, che portano al layout RAM con tre diversi diritti di accesso ristretti ed alle proprietà differenti che ne derivano. An example of embodiment of the invention may relate to a RAM embodiment or a RAM layout of the working memory (RAM). In a research and development group with n different development partners, it is possible to generate, by means of the belonging of variables and software functions to the software components and, consequently, to the respective production companies described in the metadata, connection instructions or links, which lead to the RAM layout with three different restricted access rights and the different properties that come with it.

Ulteriori vantaggi e realizzazioni del trovato si ricavano dalla descrizione e dai disegni allegati. Va inteso che le caratteristiche già enunciate e quelle che saranno in seguito illustrate sono utilizzabili non soltanto nella combinazione proposta, ma anche in altre combinazioni o singolarmente, senza che sia abbandonato l'ambito di cui al presente trovato·. Further advantages and embodiments of the invention are derived from the description and the attached drawings. It should be understood that the characteristics already stated and those which will be illustrated hereinafter can be used not only in the proposed combination, but also in other combinations or individually, without abandoning the scope of the present invention.

figura 1 mostra, in una rappresentazione in forma schematica, un'architettura di una memoria dì lavoro di una prima forma di realizzazione dì un unità di calcolo conforme al trovato, Figure 1 shows, in a schematic representation, an architecture of a working memory of a first embodiment of a computing unit according to the invention,

figura 2 mostra in una rappresentazione in forma schematica una modalità di procedere alla manipolazione di parti di programma in memorie volatili nel quadro di una seconda forma di realizzazione del procedimento conforme al trovato. Figure 2 shows a schematic representation of a method of proceeding with the manipulation of program parts in volatile memories within the framework of a second embodiment of the method according to the invention.

figura 3 mostra in una rappresentazione in forma schematica una disposizione del calcolatore con una seconda forma di realizzazione della unità di calcolo conforme al trovato. Figure 3 shows a schematic representation of an arrangement of the computer with a second embodiment of the computing unit according to the invention.

Il trovato, sulla base di diverse forme di realizzazione, è rappresentato in forma schematica nei disegni ed è descritto in seguito nel dettaglio con riferimento ai disegni. The invention, on the basis of various embodiments, is represented schematically in the drawings and is described in detail below with reference to the drawings.

La figura 1 mostra in una rappresentazione in forma schematica un'architettura di una memoria di lavoro di una prima forma di realizzazione della unità di calcolo 2 conforme al trovato. In questa rappresentazione schematica, sono illustrate, una sopra l'altra, una prima parte di programma 4 in una prima memoria volatile 5, qui realizzata come una prima area RAM, una seconda parte di programma 6 in una seconda memoria volatile 7, qui realizzata come una seconda area RAM, nonché una terza parte di programma 8 in una terza memoria volatile 9, qui realizzata come una terza area RAM. E' previsto che tali tre parti di programma 4 , 6, 8 nelle tre memorie volatili 5, 7, 9 siano fornite da diverse ditte produttrici, più precisamente, da una prima ditta produttrice nel caso della prima parte dì programma 4 nella prima memoria volatile 5, da una seconda ditta produttrice nel caso della seconda parte dì programma 6 nella seconda memoria volatile 7 e da una terza ditta produttrice nel caso della terza parte di programma 8 nella terza memoria volatile 9. Ciò comporta che tali tre parti di programma 4, 6, 8 nelle tre memorie volatili 5, 7, 9 hanno diverse origini. Figure 1 shows in a schematic representation an architecture of a working memory of a first embodiment of the computing unit 2 according to the invention. In this schematic representation, a first program part 4 is shown one above the other in a first volatile memory 5, here realized as a first RAM area, a second program part 6 in a second volatile memory 7, realized here as a second RAM area, as well as a third program part 8 in a third volatile memory 9, here realized as a third RAM area. It is envisaged that these three program parts 4, 6, 8 in the three volatile memories 5, 7, 9 are provided by various manufacturing companies, more precisely, by a first manufacturer in the case of the first part of the program 4 in the first volatile memory 5, by a second manufacturer in the case of the second program part 6 in the second volatile memory 7 and by a third manufacturer in the case of the third program part 8 in the third volatile memory 9. This implies that these three program parts 4, 6, 8 in the three volatile memories 5, 7, 9 have different origins.

E' previsto che ciascuna parte di programma 4, 6, 8 in ciascuna delle memorie volatili 5, 7, 9 presenti una prima componente software 10, che nella presente forma di realizzazione è definita anche come- componente software privata 10 ed è quindi protetta dall'accesso di volta in volta da parte dì un'altra parte dì programma 4 , 6, 8 in un'altra memoria volatile 5, 7, 9. Per ciascuna seconda componente software 12 delle tre parti di programma 4 , 6, 8 nelle memorie volatili 5, 7, 9, è stabilito un diritto pubblico di accesso a fini di lettura, il che comporta che anche le partì di programma 4, 6, 8 nelle memorie volatili 5, 7, 9 di diversa origine possono almeno in parte accedere reciprocamente a detta seconda componente software 12. Inoltre, ciascuna parte di programma 4, 6, 8 di volta in volta in una memoria volatile 5, 7, 9 presenta una terza componente software 14. Tali terze componenti software 14 possono essere manipolate a finì di scrittura da tutte le parti di programma nel complesso. It is envisaged that each program part 4, 6, 8 in each of the volatile memories 5, 7, 9 has a first software component 10, which in the present embodiment is also defined as private software component 10 and is therefore protected by access from time to time by another part of the program 4, 6, 8 in another volatile memory 5, 7, 9. For each second software component 12 of the three program parts 4, 6, 8 in the memories volatiles 5, 7, 9, a public right of access for reading purposes is established, which implies that even the program parts 4, 6, 8 in the volatile memories 5, 7, 9 of different origins can at least partially access each other to said second software component 12. Furthermore, each program part 4, 6, 8 each time in a volatile memory 5, 7, 9 has a third software component 14. Such third software components 14 can be manipulated for the purpose of writing from all parts of the program in the comp boiled.

Inoltre, le seconde componenti software 12 presentano aree di lettura 16, per le quali risulta predisposta una consistenza dati mediante un supporto di archiviazione riscrivibile per funzioni di lettura e quindi per tasks. In maniera corrispondente, le terze componenti software 12 presentano delle aree di scrittura 18, per le quali risulta predisposta una consistenza dati mediante un supporto di archiviazione riscrivibile per funzioni di scrittura e quindi per tasks. Furthermore, the second software components 12 have reading areas 16, for which a data consistency is provided by means of a rewritable storage medium for reading functions and therefore for tasks. Correspondingly, the third software components 12 have writing areas 18, for which a data consistency is provided by means of a rewritable storage medium for writing functions and therefore for tasks.

Nella presente forma di realizzazione è previsto che l'unità di calcolo 2 illustrata in forma schematica interagisca con una pluralità di apparecchi di comando non raffigurati e, di conseguenza, che essa controlli tali apparecchi di comando. All'interno della unità di calcolo 2, le diverse parti di programma 4, 6, 8 nelle memorie volatili 5, 7, 9 sono accoppiate reciprocamente all'interno di un software globale in maniera tale che fra le parti di programma 4, 6, 8 nelle memorie volatili 5, 7, 9 di diversa origine siano definiti dei reciproci diritti di accesso. Ciò comporta che le parti di programma 4, 6, 8 nelle memorie volatili 5, 7, 9 possono accedere le une alle altre a fini di lettura o a fini di scrittura o non possono affatto accedere le une alle altre in funzione della componente software e a seconda del diritto di accesso. In the present embodiment it is provided that the computing unit 2 shown in schematic form interacts with a plurality of command apparatuses not shown and, consequently, that it controls these command apparatuses. Inside the computing unit 2, the different program parts 4, 6, 8 in the volatile memories 5, 7, 9 are mutually coupled within a global software in such a way that between the program parts 4, 6, 8 in the volatile memories 5, 7, 9 of different origins, reciprocal access rights are defined. This implies that the program parts 4, 6, 8 in the volatile memories 5, 7, 9 can access each other for reading or writing purposes or cannot access each other at all depending on the software component and depending on the right of access.

Per effetto della definizione dei diritti di accesso, nel corso del funzionamento della unità dì calcolo 2 si evita che le parti di programma 4, 6, 8 nelle memorie volatili 5, 7, 9 si influenzino reciprocamente, in modo voluto o involontario, tanto da provocare un indesiderato malfunzionamento di un rispettivo apparecchio di comando . As a result of the definition of the access rights, during the operation of the computing unit 2 it is avoided that the program parts 4, 6, 8 in the volatile memories 5, 7, 9 influence each other, in a deliberate or involuntary way, so as to cause an undesired malfunction of a respective control device.

La figura 2 mostra in rappresentazione in forma schematica una modalità di procedere alla manipolazione di parti dì programma in memorie volatili nell'ambito dì una forma di realizzazione del procedimento conforme al trovato. In questo caso, nel grafico di cui alla figura 2 sono illustrati un primo task 20 ed un secondo task 22. Il primo task 20 comprende prime sequenze di attuazione del processo 24 di una prima ditta produttrice, seconde sequenze di attuazione del processo 26 di una seconda ditta produttrice, una terza sequenza di attuazione del processo 28 di una terza ditta produttrice, nonché quarte sequenze di attuazione del processo 30 di una quarta ditta produttrice. In maniera simile, il secondo task 22 è ripartito in prime sequenze di attuazione del processo 24 dì una prima ditta produttrice, in seconde sequenze di attuazione del processo 26 di una seconda ditta produttrice, in terze sequenze di attuazione del processo 28 di una terza ditta produttrice e in quarte sequenze di attuazione del processo 30 di una quarta ditta produttrice. Inoltre, nel corso del secondo task 22 sono previsti almeno un primo cambiamento di contesto 32 ed almeno un secondo cambiamento dì contesto 34. Figure 2 shows a schematic representation of a way of proceeding with the manipulation of program parts in volatile memories in the context of an embodiment of the method according to the invention. In this case, the graph of Figure 2 illustrates a first task 20 and a second task 22. The first task 20 comprises first sequences of implementation of process 24 of a first manufacturer, second sequences of implementation of process 26 of a second manufacturing company, a third sequence of carrying out the process 28 of a third manufacturing company, as well as fourth sequences of carrying out the process 30 of a fourth manufacturing company. Similarly, the second task 22 is divided into first sequences of implementation of process 24 of a first manufacturer, in second sequences of implementation of process 26 of a second manufacturer, in third sequences of implementation of process 28 of a third company. producer and in fourth sequences of implementation of process 30 of a fourth manufacturer. Furthermore, during the second task 22 at least a first change of context 32 and at least a second change of context 34 are foreseen.

Con il presente trovato, nella seconda forma di realizzazione risulta possìbile osservare almeno un criterio ulteriore in sede di generazione delle sequenze di processo. Pertanto, risulta possibile identificare, in un gruppo di ricerca e di sviluppo con le ditte produttrici e, quindi, con dei partner di sviluppo, le appartenenze dei processi ai tasks 20, 22. Inoltre, in una creazione o generazione delle sequenze di processo 24, 26, 28, 30, il raggruppamento sulla base delle ditte produttrici per la riduzione al minimo degli over-heads legati al cambiamento di processo si presta quale ulteriore criterio. With the present invention, in the second embodiment it is possible to observe at least one further criterion when generating the process sequences. Therefore, it is possible to identify, in a research and development group with manufacturing companies and, therefore, with development partners, the belonging of processes to tasks 20, 22. Furthermore, in a creation or generation of process sequences 24 , 26, 28, 30, the grouping on the basis of the manufacturing companies for the minimization of the over-heads linked to the process change lends itself as a further criterion.

Con il grafico di cui alla figura 2 viene quindi raffigurato un raggruppamento dei processi in base alle ditte produttrici. In questo caso, tra i cambiamenti di processo all'interno di un gruppo di processi, si verifica il cambiamento di contesto 34. Inoltre, viene compiuto il primo cambiamento di contesto 32, per effetto del quale i diritti di accesso vengono nuovamente attribuiti all'interno di un sistema di gestione della memoria da parte del sistema operativo. The graph in figure 2 therefore shows a grouping of processes according to the manufacturing companies. In this case, between the process changes within a group of processes, the context change 34 occurs. Furthermore, the first context change 32 is made, as a result of which the access rights are re-assigned to the internal memory management system by the operating system.

La figura 3 mostra in una rappresentazione in forma schematica una disposizione del calcolatore 100, che comprende una seconda forma di realizzazione di un'unità dì calcolo conforme al trovato 102. All'interno di un software complessivo o globale 104 dell'unità di calcolo 102, quattro diverse parti di programma 106, 108, 110, 112 in memorie volatili sono qui accoppiate fra loro. Inoltre, l'unità di calcolo 102 e, di conseguenza, anche il dispositivo di calcolatore 100, sono collegati con due apparecchi di comando qui raffigurati 114, 116, in maniera tale che l'unità di calcolo 102 interagisca con tali apparecchi di comando 114, 116, influenzandone il funzionamento e ricevendo dati da detti apparecchi di comando 114, 116. Figure 3 shows in a schematic representation an arrangement of the computer 100, which comprises a second embodiment of a computing unit according to the invention 102. Within an overall or global software 104 of the computing unit 102 , four different program parts 106, 108, 110, 112 in volatile memories are here coupled together. Furthermore, the computing unit 102 and, consequently, also the computer device 100, are connected to two control apparatuses shown here 114, 116, in such a way that the computing unit 102 interacts with these control apparatuses 114 , 116, influencing its operation and receiving data from said command apparatuses 114, 116.

Nel quadro di tale forma di realizzazione è previsto che le parti di programma 106, 108, 110, 112 nelle memorie volatili abbiano diversa orìgine, il che comporta che dette parti di programma 106, 108, 110, 112 nelle memorie volatili sono state predisposte da diversi produttori in maniera indipendente l'una dall'altra e che esse vengono salvate congiuntamente e eseguite contemporaneamente soltanto sul dispositivo di calcolatore 102 all 'interno del software globale 104. In the framework of this embodiment it is provided that the program parts 106, 108, 110, 112 in the volatile memories have a different origin, which implies that said program parts 106, 108, 110, 112 in the volatile memories have been prepared by different manufacturers independently of each other and that they are jointly saved and run simultaneously only on the computer device 102 within the global software 104.

Al fine di evitare un'interazione indesiderata tra dette parti di programma 106, 108, 110, 112 nelle memorie volatili durante l'esecuzione delle parti di programma 106, 108, 110, 112 nelle memorie volatili, tra le parti di programma 106, 108, 110, 112 nelle memorie volatili sono definiti dei diritti di accesso reciproci 118, 120, mediante i quali risulta stabilita una reciproca manipolazione delle parti di programma 106, 108, 110, 112 nelle memorie volatili. In order to avoid unwanted interaction between said program parts 106, 108, 110, 112 in volatile memories during the execution of program parts 106, 108, 110, 112 in volatile memories, between program parts 106, 108 , 110, 112 in the volatile memories are defined reciprocal access rights 118, 120, by means of which a reciprocal manipulation of the program parts 106, 108, 110, 112 in the volatile memories is established.

In questo caso, con le doppie frecce sono raffigurati i diritti dì accesso 118 a fini di lettura e scrittura e con le frecce semplici i diritti di accesso 120 a fini di sola lettura tra le parti di programma 106, 108, 110, 112 nelle memorie volatili. Sulla base di ciò, una prima parte di programma 106 in una prima memoria volatile è pertanto autorizzata ad accedere a fini di lettura e scrittura ad una seconda parte di programma 108 in una seconda memoria volatile e ad accedere a fini di sola lettura ad una quarta parte di programma 112 in una quarta memoria volatile. La seconda parte di programma 108 nella seconda memoria volatile è autorizzata ad accedere alla prima parte di programma 106 nella prima memoria volatile solo a fini di lettura e alla quarta parte di programma 112 nella quarta memoria volatile a fini di lettura e scrittura. Una terza parte di programma 110 in una terza memoria volatile è autorizzata ad accedere alla quarta parte di programma 112 nella quarta memoria volatile a fini di lettura. La quarta parte di programma 112 nella quarta memoria volatile è autorizzata ad accedere a fini dì lettura alla prima parte di programma 106 nella prima memoria volatile ed alla seconda parte di programma 108 nella seconda memoria volatile e, inoltre, la quarta parte di programma 112 nella quarta memoria volatile è autorizzata ad eccedere a fini di lettura e scrittura alla terza parte di programma 110 nella terza memoria volatile. Inoltre, tra la prima parte di programma 106 nella prima memoria volatile e la terza parte di programma 110 nella terza memoria volatile non sono definiti diritti di accesso. Di conseguenza, tra queste due parti di programma 106, 110 nelle rispettive memorie volatili non risulta possibile alcun accesso. In this case, the double arrows show the access rights 118 for reading and writing purposes and with the simple arrows the access rights 120 for read-only purposes between the program parts 106, 108, 110, 112 in the memories birds. On the basis of this, a first program part 106 in a first volatile memory is therefore authorized to access for reading and writing purposes to a second program part 108 in a second volatile memory and to access a fourth for read-only purposes. program part 112 in a fourth volatile memory. The second program part 108 in the second volatile memory is authorized to access the first program part 106 in the first volatile memory for reading purposes only and the fourth program part 112 in the fourth volatile memory for reading and writing purposes. A third program part 110 in a third volatile memory is authorized to access the fourth program part 112 in the fourth volatile memory for reading purposes. The fourth program part 112 in the fourth volatile memory is authorized to access for reading purposes the first program part 106 in the first volatile memory and the second program part 108 in the second volatile memory and, furthermore, the fourth program part 112 in the fourth volatile memory is authorized to exceed the third program part 110 in the third volatile memory for reading and writing purposes. Furthermore, no access rights are defined between the first program part 106 in the first volatile memory and the third program part 110 in the third volatile memory. Consequently, no access is possible between these two program parts 106, 110 in the respective volatile memories.

Claims (12)

Rivendicazioni 1. Procedimento per il funzionamento di un'unità di calcolo (2, 102) che risulta realizzata per il controllo di almeno un apparecchio di comando (114, 116), in cui vengono definiti dei diritti reciproci di accesso (118, 120) all'unità di calcolo (2, 102} tra parti di programma (4, 6, 8, 106, 108, 110, 112) in memorie volatili (5, 7, 9) di diversa origine. Claims 1. Procedure for the operation of a computing unit (2, 102) which is realized for the control of at least one command apparatus (114, 116), in which reciprocal access rights (118, 120) are defined computing unit (2, 102} between program parts (4, 6, 8, 106, 108, 110, 112) in volatile memories (5, 7, 9) of different origin. 2. Procedimento secondo la rivendicazione 1, in cui le parti di programma (4, 6, 8, 106, 108, 110, 112) nelle memorie volatili (5, 7, 9) vengono raggruppate (in cluster) in base alla loro diversa origine. Method according to claim 1, wherein the program parts (4, 6, 8, 106, 108, 110, 112) in the volatile memories (5, 7, 9) are grouped (in clusters) according to their different origin. 3. Procedimento secondo la rivendicazione 1 o 2, in cui viene definita un'appartenenza di almeno una componente software di una parte di programma (4, 6, 8, 106, 108, 110, 112) in una memoria volatile (5, 7, 9) ad almeno un meta-dato e in cui viene generato almeno un ordine per un collegamento tra le parti di programma (4, 6, 8, 106, 108, 110, 112} nelle memorie volatili (5, 7 , 9} di diversa origine. Method according to claim 1 or 2, wherein the membership of at least one software component of a program part (4, 6, 8, 106, 108, 110, 112) in a volatile memory (5, 7) is defined , 9) to at least one meta-data and in which at least one order is generated for a link between program parts (4, 6, 8, 106, 108, 110, 112} in volatile memories (5, 7, 9} of different origin. 4. Procedimento secondo la rivendicazione 3, in cui viene predisposto almeno un meta-dato ad un momento di trasmissione. 4. A method according to claim 3, wherein at least one meta data is set at a transmission time. 5. Procedimento secondo una delle precedenti rivendicazioni, in cui le parti dì programma (4, 6, 8, 106, 108, 110, 112) nelle memorie volatili (5, 7, 9) vengono eseguite all'interno di un software globale (104) sull'unità di calcolo (2, 102) dell'apparecchio di comando (114, 116). Method according to one of the preceding claims, in which the program parts (4, 6, 8, 106, 108, 110, 112) in the volatile memories (5, 7, 9) are executed within a global software ( 104) on the computing unit (2, 102) of the control unit (114, 116). 6. Procedimento secondo una delle precedenti rivendicazioni, in cui le funzioni operative dell'unità di calcolo (2, 102) vengono considerate con riferimento ad un tempo di funzionamento. Method according to one of the preceding claims, in which the operating functions of the computing unit (2, 102) are considered with reference to an operating time. 7. Procedimento secondo una delle precedenti rivendicazioni, in cui, per la modificazione di una parte di programma (4, 6, 8, 106, 108, 110, 112) in una memoria volatile (5, 7, 9), è autorizzato l'accesso ad un'area di memoria dell'unità dì calcolo (2, 102). Method according to one of the preceding claims, in which, for the modification of a program part (4, 6, 8, 106, 108, 110, 112) in a volatile memory (5, 7, 9), the access to a memory area of the computing unit (2, 102). 8. Procedimento secondo la rivendicazione 7, in cui è prevista una memoria ombra dell'area di memoria. Method according to claim 7, wherein a shadow memory of the memory area is provided. 9. Procedimento secondo una delle precedenti rivendicazioni, in cui vengono predisposte delle copie almeno delle componenti delle parti di programma (4, 6, 8, 106, 108, 110, 112) nelle memorie volatili (5, 7, 9). Method according to one of the preceding claims, in which copies are prepared at least of the components of the program parts (4, 6, 8, 106, 108, 110, 112) in the volatile memories (5, 7, 9). 10. Unità dì calcolo per il controllo di almeno un apparecchio di comando (114, 116) realizzata al fine di definire reciproci diritti di accesso (118, 120) tra partì di programma (4, 6, 8, 106, 108, 110, 112) in memorie volatili (5, 7, 9) di diversa origine. 10. Computing unit for the control of at least one command device (114, 116) made in order to define reciprocal access rights (118, 120) between program parts (4, 6, 8, 106, 108, 110, 112) in volatile memories (5, 7, 9) of different origins. 11. Programma informatico con mezzi di codice di programma per effettuare tutte le fasi del procedimento di cui alle rivendicazioni da 1 a 9, nel caso in cui il programma informatico venga eseguito su un computer o su una corrispondente unità di calcolo (2, 102), in particolare su un'unità di calcolo (2, 102) secondo la rivendicazione 10. 11. Computer program with program code means for carrying out all the steps of the procedure referred to in claims 1 to 9, in the event that the computer program is executed on a computer or on a corresponding computing unit (2, 102) , in particular on a computing unit (2, 102) according to claim 10. 12. Programma informatico con mezzi di codice di programma che sono salvati su un supporto dati leggibile dal computer al fine di compiere tutte le fasi del procedimento di cui alle rivendicazioni da 1 a 8, nel caso in cui il programma informatico venga eseguito su un computer o su una corrispondente unità di calcolo (2, 102), in particolare su un'unità di calcolo (2, 102) secondo la rivendicazione 10.12. Computer program with program code means which are saved on a computer-readable data carrier in order to carry out all the steps of the procedure referred to in claims 1 to 8, in the event that the computer program is executed on a computer or on a corresponding computing unit (2, 102), in particular on a computing unit (2, 102) according to claim 10.
ITMI20072178 2006-11-21 2007-11-16 PROCEDURE FOR THE FUNCTIONING OF A CALCULATION UNIT ITMI20072178A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610054705 DE102006054705A1 (en) 2006-11-21 2006-11-21 Method for operating a computing unit

Publications (1)

Publication Number Publication Date
ITMI20072178A1 true ITMI20072178A1 (en) 2008-05-22

Family

ID=39326128

Family Applications (1)

Application Number Title Priority Date Filing Date
ITMI20072178 ITMI20072178A1 (en) 2006-11-21 2007-11-16 PROCEDURE FOR THE FUNCTIONING OF A CALCULATION UNIT

Country Status (3)

Country Link
DE (1) DE102006054705A1 (en)
FR (1) FR2908909A1 (en)
IT (1) ITMI20072178A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017219241A1 (en) 2017-10-26 2019-05-02 Audi Ag Method and semiconductor circuit for protecting an operating system of a security system of a vehicle
RU2750626C2 (en) * 2019-11-27 2021-06-30 Акционерное общество "Лаборатория Касперского" System and method for access control in electronic units of vehicle control
EP3828748A1 (en) * 2019-11-27 2021-06-02 AO Kaspersky Lab System and method for access control in electronic control units of vehicles

Also Published As

Publication number Publication date
DE102006054705A1 (en) 2008-05-29
FR2908909A1 (en) 2008-05-23

Similar Documents

Publication Publication Date Title
US9880927B2 (en) Functionally expandable vehicle control device and method for supplementing the functionality of a vehicle control device
US20150212952A1 (en) Method for the coexistence of software having different safety levels in a multicore processor system
CA2662877C (en) System and method for functionalization in line with demand, for control and regulatory devices
DE102011005209B4 (en) Program instruction-controlled instruction flow control
Schätz et al. Automating design-space exploration: optimal deployment of automotive SW-components in an ISO26262 context
JP2015531521A (en) Method and controller for controlling the separate execution of a plurality of linked program blocks
US9235456B2 (en) Configuration technique for an electronic control unit with intercommunicating applications
US20150160940A1 (en) Method for changing the software in the memory of an electronic control unit
DE102011108077A1 (en) Method of memory management in a multitasking data processing system
WO2019067858A1 (en) Incremental updates in static libraries
ITMI20072178A1 (en) PROCEDURE FOR THE FUNCTIONING OF A CALCULATION UNIT
Bucaioni et al. Modelling multi-criticality vehicular software systems: evolution of an industrial component model
US20080140279A1 (en) Monitoring the Functional Reliability of an Internal Combustion Engine
KR20050103498A (en) Controller and control of a drive unit of a vehicle
Martorell et al. Partial Updates of AUTOSAR Embedded Applications--To What Extent?
Chen et al. Application of software watchdog as a dependability software service for automotive safety relevant systems
US20230244817A1 (en) Expanded integrity monitoring of a container image
KR20140105391A (en) Method for mornitoring a stack memory in an operating system of a control unit of a motor vehicle
US20030140310A1 (en) Automation system and method for producing a documentation
CN112580015A (en) Processing system including trust anchor computing instrument and corresponding method
KR20150010494A (en) Method for program update of electronic control unit
Freund et al. Multi-level system integration of automotive ECUs based on AUTOSAR
Yacoub et al. Rapid prototyping with the controller area network (CAN)
DE102022209628A1 (en) Method for checking data in a computing unit
Wolf et al. Safe Software for Automated Driving