DE102016106939B4 - Eingebettetes Rechengerät - Google Patents
Eingebettetes Rechengerät Download PDFInfo
- Publication number
- DE102016106939B4 DE102016106939B4 DE102016106939.6A DE102016106939A DE102016106939B4 DE 102016106939 B4 DE102016106939 B4 DE 102016106939B4 DE 102016106939 A DE102016106939 A DE 102016106939A DE 102016106939 B4 DE102016106939 B4 DE 102016106939B4
- Authority
- DE
- Germany
- Prior art keywords
- processing unit
- address
- information space
- processing
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
Vorrichtung, umfassend:
mindestens eine erste Verarbeitungseinheit (210), konfiguriert zum Ausführen mindestens einer ersten Computerprogrammanwendung (260A, 260B), die in der Lage ist, von mindestens einer Schnittstelle (180) oder einem Gerät, die/das an die erste Verarbeitungseinheit (210) angeschlossen ist, empfangene Signale zu empfangen und zu verarbeiten,
mindestens eine zweite Verarbeitungseinheit (220), konfiguriert zum Ausführen mindestens einer zweiten Computerprogrammanwendung (260C, 260D), die in der Lage ist, mindestens einige Information, die in der ersten Verarbeitungseinheit (210) verarbeitet wurde, weiter zu verarbeiten; wobei
die erste und die zweite Verarbeitungseinheit (220) mit einem gemeinsam benutzten Informationsraum (230) gekoppelt sind, der aus einem externen Speicherraum besteht, konfiguriert, um als logische Speichereinheit (290) zu dienen mit mindestens einem Adressraum, der sowohl auf die erste als auch auf die zweite Verarbeitungseinheit (220) abgebildet ist, wobei eine erste Anwendung, die in der ersten Verarbeitungseinheit (210) ausgeführt wird, konfiguriert ist, um die erste Verarbeitungseinheit (210) in die Lage zu versetzen, aus den verarbeiteten Signalen gewonnene Daten in eine Adresse des Informationsraums (230) einzuschreiben, und eine zweite Anwendung, die in der zweiten Verarbeitungseinheit (220) ausgeführt wird, konfiguriert ist zum Empfangen einer Meldung darüber, dass die Daten in den gemeinsam benutzten Informationsraum (230) eingeschrieben sind,
dadurch gekennzeichnet, dass die Vorrichtung zusätzlich mindestens eine externe Flash-Speichereinheit (290) aufweist, die mit der ersten und der zweiten Verarbeitungseinheit (220) gekoppelt und konfiguriert ist zum Empfangen von Adressdaten, die von der ersten Verarbeitungseinheit (210) geschrieben sind und auf eine Adresse in dem gemeinsam benutzten Informationsraum (230) weisen, und die zweite Verarbeitungseinheit (220) konfiguriert ist zum Lesen der Adresse in der Flash-Speichereinheit (290) und zum Holen der Daten aus dem gemeinsamen benutzten Informationsraum (230) unter der Adresse zwecks weiteren Verarbeitung in der zweiten Verarbeitungseinheit (220).
mindestens eine erste Verarbeitungseinheit (210), konfiguriert zum Ausführen mindestens einer ersten Computerprogrammanwendung (260A, 260B), die in der Lage ist, von mindestens einer Schnittstelle (180) oder einem Gerät, die/das an die erste Verarbeitungseinheit (210) angeschlossen ist, empfangene Signale zu empfangen und zu verarbeiten,
mindestens eine zweite Verarbeitungseinheit (220), konfiguriert zum Ausführen mindestens einer zweiten Computerprogrammanwendung (260C, 260D), die in der Lage ist, mindestens einige Information, die in der ersten Verarbeitungseinheit (210) verarbeitet wurde, weiter zu verarbeiten; wobei
die erste und die zweite Verarbeitungseinheit (220) mit einem gemeinsam benutzten Informationsraum (230) gekoppelt sind, der aus einem externen Speicherraum besteht, konfiguriert, um als logische Speichereinheit (290) zu dienen mit mindestens einem Adressraum, der sowohl auf die erste als auch auf die zweite Verarbeitungseinheit (220) abgebildet ist, wobei eine erste Anwendung, die in der ersten Verarbeitungseinheit (210) ausgeführt wird, konfiguriert ist, um die erste Verarbeitungseinheit (210) in die Lage zu versetzen, aus den verarbeiteten Signalen gewonnene Daten in eine Adresse des Informationsraums (230) einzuschreiben, und eine zweite Anwendung, die in der zweiten Verarbeitungseinheit (220) ausgeführt wird, konfiguriert ist zum Empfangen einer Meldung darüber, dass die Daten in den gemeinsam benutzten Informationsraum (230) eingeschrieben sind,
dadurch gekennzeichnet, dass die Vorrichtung zusätzlich mindestens eine externe Flash-Speichereinheit (290) aufweist, die mit der ersten und der zweiten Verarbeitungseinheit (220) gekoppelt und konfiguriert ist zum Empfangen von Adressdaten, die von der ersten Verarbeitungseinheit (210) geschrieben sind und auf eine Adresse in dem gemeinsam benutzten Informationsraum (230) weisen, und die zweite Verarbeitungseinheit (220) konfiguriert ist zum Lesen der Adresse in der Flash-Speichereinheit (290) und zum Holen der Daten aus dem gemeinsamen benutzten Informationsraum (230) unter der Adresse zwecks weiteren Verarbeitung in der zweiten Verarbeitungseinheit (220).
Description
- GEBIET DER ERFINDUNG
- Die vorliegende Erfindung betrifft allgemein beispielsweise das Implementieren von Mehrkern- oder Mehrchip-Lösungen in Geräten, die von Menschen über Benutzerschnittstellen verwendet werden sollen.
- HINTERGRUND DER ERFINDUNG
- Eingebettete Geräte enthalten im Allgemeinen Objekte, die ein eingebettetes Rechnersystem enthalten, das von dem Objekt umschlossen sein kann. Das eingebettete Computersystem kann im Hinblick auf eine spezifische Verwendung ausgestaltet sein, oder das eingebettete Computersystem kann zumindest teilweise ein Mehrzweckgerät in dem Sinn sein, dass ein Benutzer in die Lage versetzt wird, in ihm Software zu installieren. Ein eingebettetes Computersystem kann auf einem Mikrocontroller oder einer Mikroprozessor-CPU basieren, um ein Beispiel zu geben.
- Eingebettete Geräte können einen oder mehrere Prozessoren, Benutzerschnittstellen und Anzeigen enthalten, so dass ein Benutzer mit dem Gerät über die Benutzerschnittstelle interagieren kann. Die Benutzerschnittstelle kann z. B. Tasten enthalten. Ein eingebettetes Gerät kann eine Verbindungsfunktion aufweisen, konfiguriert zum Kommunizieren mit einem Kommunikationsnetzwerk, z. B. einem Drahtlos-Kommunikationsnetzwerk.
- Komplexere eingebettete Geräte, wie z. B. Mobiltelefone, können es einem Benutzer ermöglichen, in einem Speicher Anwendungen zu installieren, beispielsweise in einem Festkörperspeicher, der sich innerhalb des Geräts befindet. Eingebettete Geräte sind im Vergleich zu Desktop- oder Laptop-Computern häufig in ihren Ressourcen beschränkt. Beispielsweise kann die Speicherkapazität stärker beschränkt sein als in Desktop- oder Laptop-Computern, die Prozessor-Rechenkapazität kann geringer sein und die Energie kann nur aus einer Batterie verfügbar sein. Die Batterie kann zwar klein sein, jedoch wiederaufladbar.
- Ein eingebettetes Gerät kann in der Lage sein, von einem Kommunikationsnetzwerk Information über beispielsweise die laufende Zeit oder die aktuelle Zeitzone zu empfangen. Im Kontext von Mehrfachprozessoren in eingebetteten Geräten wird auch die Kommunikation zwischen Prozessoren und dem Speicher, von dem sie Gebrauch machen, eine Herausforderung. Eine grundlegende Frage beim traditionellen Entwurf von Parallel-Computern besteht darin, eine Auswahl zu treffen zwischen zwei Leitparadigmen von Parallelrechnern:
- Gemeinsam verwendeter Speicher - üblicherweise über Threads, können sämtliche Prozessoren zu jeder Zeit direkt auf den gesamten Speicher zugreifen, und Verteilter Speicher - ein Prozessor kann nur auf seinen eigenen Speicher zugreifen, allerdings können Prozessoren Daten unter Verwendung von Nachrichtenaustausch teilen, so z. B. bei der NUMA-Architektur (Non Uniform Memory Access; ungleichförmiger Speicherzugriff).
- Aus unterschiedlichen Gründen und Entwurfüberlegungen kann ein eingebettetes System mehr als einen Prozessor und/oder Mikrocontroller aufweisen. In Consumer-Geräten kann einer der Prozessoren für spezielle Aufgaben fest zugewiesen sein, so z. B. für eine Digitalsignalverarbeitung (DSP) oder Graphikverarbeitung, oder Prozessoren können mehrere Kerne für Verarbeitungsleistung aufweisen. Allerdings muss bei kleinen Consumer-Geräten, in denen die Einsparung von Batterieleistung eine mit Leistungsanforderungen konkurrierende Aufgabe ist, die Anzahl von Prozessoren üblicherweise möglichst klein und ihre Leistungsaufnahme möglichst niedrig gehalten werden. Da die Entwicklung in Richtung eingebetteter und verteilter Rechenaufgaben geht, die möglicherweise mehrere Sensoren und Verbindungserfordernisse bezüglich weiterer Peripheriegeräte enthalten, ist die traditionelle Einzelprozessor-Vorgehensweise nicht immer möglich. In der Praxis können die Prozessoren zwar eingebettet sein, allerdings eher in Form unabhängiger Computer mit einer Vielfalt von Prozessen und Aufgaben.
- Beispielsweise können an einen Mikrocontroller geringer Leistung, der seine unabhängigen Anwendungen zum Sammeln und Anzeigen grundlegender Information ausführt, mehrere Sensoren angeschlossen sein, oder ein Sensor-Hub, der derartige Sensoren enthält oder unterstützt. Eine Hauptverarbeitungseinheit, die mehrere rechenintensive Anwendungen ausführt, so z. B. Farbanzeigen sowie graphikintensive Software, lässt sich dann lediglich bei Bedarf wecken, um auf diese Weise Energie einzusparen.
- Asynchroner Betrieb geht einher mit Unvorhersehbarkeit von Ereignissen und deren zeitlichem Ablauf. Gleichzeitigkeit kann auftreten, wenn Peripheriegeräte wie z. B. Sensoren, denselben Prozessor gemeinsam benutzen und diesen unterbrechen können, oder wenn mehrere Prozessoren denselben Speicher gemeinsam nutzen. Eine Hauptaufgabe eines Betriebssystems besteht darin, gleichzeitige Operationen und die laufenden Anwendungen zu verwalten. Gleichzeitigkeitssteuerung ist aber auch ein integraler Bestandteil zahlreicher Anwendungen aufgrund von Mehrfach-Thread-Prozessen und deren Speicher-Mehrfachbenutzungsalgorithmen geworden, die mit Speicherpools und -heaps arbeiten.
-
offenbart ein Verfahren zum Übertragen von Nachrichten zwischen einem ersten Prozessor und einem zweiten Prozessor, das den Schritt des Anforderns eines leeren Nachrichtenpuffers von dem ersten Prozessor oder Hauptprozessor umfasst.US 2005 / 0 041 510 A1 offenbart ein Verfahren zur Verwaltung dauerhafter Nachrichten zwischen einem Nachrichtenproduzenten und einem entfernten Nachrichtenkonsumenten in einer Computerumgebung.US 2014 / 0 006 541 A1 offenbart einen Server zum Transportieren von Daten unter Verwendung eines gemeinsam genutzten Speichers, wobei der Server einen gemeinsam genutzten Speicher umfasst, wobei der gemeinsam genutzte Speicher in eine oder mehrere Seiten und eine Vielzahl von Absenderanwendungen unterteilt ist.US 2012 / 0 131 285 A1 offenbart ein Verfahren in einem Datenverarbeitungssystem, das die Durchführung einer Operation an einem gemeinsam genutzten Pufferbereich unter Verwendung einer ersten Vorrichtung in dem Datenverarbeitungssystem, das Schreiben einer Zeigeraktualisierung in einen Signalbenachrichtigungskanal, der einer zweiten Vorrichtung in dem Datenverarbeitungssystem zugeordnet ist, wobei die Zeigeraktualisierung eine Aktualisierung eines Kopfzeigers oder eines Schwanzzeigers des gemeinsam genutzten Pufferbereichs ist, und das Aktualisieren eines in einem lokalen Speicher der zweiten Vorrichtung gespeicherten Zeigers auf der Grundlage der Zeigeraktualisierung umfasst.WO 2007 / 085 522 A2 - Es gibt ein grundlegendes Problem bei der Implementierung einer Kommunikation in eingebetteten Mehrprozessor-Lösungen in Geräten, d. h., wie die Prozessoren und deren auf ihnen ausgeführte Anwendungen in die Lage versetzt werden können, Information untereinander zu senden, gemeinsam zu verwenden und abzurufen, sowohl auf einer Ad-hoc-Basis (asynchron) als auch gleichzeitig. Außerdem gibt es spezielle Probleme bei eingebetteten Geräten geringer Leistung hinsichtlich der Aufteilung von Aufgaben und der Optimierung des Stromverbrauchs der Prozessoren.
- Aufgabe der Erfindung bei mindestens einigen der Ausführungsformen der Erfindung ist es, eine Lösung von Anforderungen bezüglich Interoperabilität und gemeinsamer Datennutzung in Bezug auf eingebettete Systeme zu schaffen. Die erfindungsgemäße Idee basiert auf dem Einsatz einer gemeinsamen Informationsressource, im Folgenden ein Whiteboard, die von verschiedenen Prozessoren, Prozessen und/oder Threads geteilt wird. Die Prozesse können in eingebetteten Geräten selbst ablaufen, oder auf Servern oder im Internet. Das Whiteboard kann gemeinsam von einer Vielzahl derartiger Geräte verwendet werden. Durch Verwalten der Ressourcen eines derartigen Speichers, z. B. mittels Formatier- und Mappingmethoden, Benamung und Namensraum-Konventionen und/oder Schnittstellensegmentierung kann das Whiteboard dazu dienen, die Interoperabilität und die gemeinsame Datennutzung zwischen verschiedenen Prozessoren, wie sie oben angesprochen wurden, ebenso wie die auf ihnen ausgeführten Anwendungen zu verbessern.
- OFFENBARUNG DER ERFINDUNG
- Die Erfindung ist definiert durch die Merkmale der unabhängigen Ansprüche. Einige spezielle Ausführungsformen sind in den abhängigen Ansprüchen definiert.
- Definitionen
- Zum Zweck des korrekten Verständnisses der unterschiedlichen Termini und Komponenten, die in der folgenden Beschreibung verwendet werden, wird hier eine nicht-erschöpfende Definitionsliste angeboten:
- Logische Speichereinheit - ein Speicherraum, der über eine Mapping- oder Übersetzungsfunktion für eine Verarbeitungseinheit zugänglich ist, sie kann zwischen zwei oder mehr Verarbeitungseinheiten geteilt werden
- Sensor-Hub - eine Einheit (z. B. ein Mikrocontroller), der Daten von einer Mehrzahl von Sensoren integriert und verarbeitet
- Whiteboard - ein geteilter, d. h. gemeinsam verwendeter Informationsraum, geteilt zwischen einer beliebigen Anzahl der Verarbeitungseinheiten, die mit ihm gekoppelt sind. Ein Whiteboard fungiert als gemeinsam verwendeter Speicherraum, kann aber für unterschiedliche Prozesse und Anwendungen entsprechend deren Erfordernissen unterschiedlich arbeiten.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung wird eine Vorrichtung geschaffen, welche aufweist: mindestens eine erste Verarbeitungseinheit, konfiguriert zum Ausführen mindestens einer ersten Computerprogrammanwendung, die in der Lage ist, von mindestens einer Schnittstelle oder einem Gerät, die/das an die erste Verarbeitungseinheit angeschlossen ist, empfangene Signale zu empfangen und zu verarbeiten, mindestens eine zweite Verarbeitungseinheit, konfiguriert zum Ausführen mindestens einer zweiten Computerprogrammanwendung, die in der Lage ist, mindestens einige Information, die in der ersten Verarbeitungseinheit verarbeitet wurde, weiter zu verarbeiten; wobei die erste und die zweite Verarbeitungseinheit mit einem gemeinsam benutzten Informationsraum gekoppelt sind, wobei eine erste Anwendung, die in der ersten Verarbeitungseinheit ausgeführt wird, konfiguriert ist, um die erste Verarbeitungseinheit in die Lage zu versetzen, Daten in den Informationsraum einzuschreiben, und eine zweite Anwendung, die in der zweiten Verarbeitungseinheit ausgeführt wird, konfiguriert ist zum Empfangen einer Meldung darüber, dass die Daten in den gemeinsam benutzten Informationsraum eingeschrieben sind, und um die zweite Verarbeitungseinheit in die Lage zu versetzen, von dem Informationsraum Daten, die von der ersten Verarbeitungseinheit eingeschrieben wurden, für eine weitere Verarbeitung abzurufen.
- Verschiedene Ausführungsformen des ersten Aspekts können mindestens ein Merkmal aus der folgenden Liste aufweisen:
- • die erste Verarbeitungseinheit ist elektrisch mit mindestens einer der folgenden Einheiten gekoppelt: eine Benutzerschnittstelle, eine externe Speichereinheit, ein Drahtlos-Kommunikationsport, ein erstes verdrahtetes Kommunikationsport, eine Satellitenortungsschaltung, ein Magnetometer, ein Gyroskop, ein Beschleunigungsmesser und ein Drucksensor;
- • die zweite Verarbeitungseinheit ist elektrisch gekoppelt mit mindestens einer der folgenden Einheiten: eine Anzeige, eine externe Speichereinheit, ein Sensor, eine zellulare Kommunikationsschaltung, eine nicht-zellulare Drahtlos-Kommunikationsschaltung und ein zweites verdrahtetes Kommunikationsport;
- • der gemeinsam verwendete Informationsraum besteht aus mindestens einer Schreib-/Lesespeichereinheit, die mit jeder Verarbeitungseinheit gekoppelt ist, wobei die Speichereinheiten konfiguriert sind zum Kommunizieren untereinander gemäß einem Datenaustauschprotokoll;
- • der gemeinsame Informationsraum besteht aus mindestens einer Schreib-/ Lesespeichereinheit, die mit mindestens der ersten und der zweiten Verarbeitungseinheit gekoppelt ist, wobei die Speichereinheit konfiguriert ist, um als logische Speichereinheit mit mindestens einem Adressraum, der sowohl auf die erste als auch auf die zweite Verarbeitungseinheit abgebildet wird, zu fungieren;
- • die Vorrichtung umfasst zusätzlich mindestens eine Schreib-/Lesespeichereinheit, die mit mindestens der ersten und der zweiten Verarbeitungseinheit gekoppelt ist, wobei der Schreib-/Lesespeicher konfiguriert ist zum Empfangen von Adressdaten, die von der ersten Verarbeitungseinheit geschrieben sind und auf eine Adresse in dem externen Speicherraum zeigen, und der externe Speicherraum konfiguriert ist zum Empfangen von Daten, die von der ersten Verarbeitungseinheit unter jener Adresse gespeichert wurden, wobei die zweite Verarbeitungseinheit konfiguriert ist zum Lesen der geschriebenen Adresse in dem Schreib-/Lesespeicher und zum Holen von Daten aus dem gemeinsam benutzten Informationsraum unter jener Adresse;
- • eine erste Anwendung, die auf der ersten Verarbeitungseinheit ausgeführt wird, ist dazu ausgebildet, einen laufenden Parameterwert wie z. B. eine Zeit, in eine Adresse innerhalb des Informationsraums einzuschreiben, und eine zweite, auf der zweiten Verarbeitungseinheit ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert aus dem Informationsraum abzurufen;
- • eine zweite, auf der zweiten Verarbeitungseinheit ausgeführte Anwendung ist dazu ausgebildet, eine Anforderung für einen in den Informationsraum zu schreibenden Parameterwert zu platzieren, wobei eine erste, auf der ersten Verarbeitungseinheit ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert in eine Adresse innerhalb eines Informationsraums einzuschreiben, wobei die zweite Anwendung dazu ausgebildet ist, den Parameterwert aus der Adresse abzurufen;
- • eine erste, auf der ersten Verarbeitungseinheit ausgeführte Anwendung überschreibt in konstanter und häufiger Weise den vorausgehenden Wert eines Parameters mit einem laufenden Wert in dem Informationsraum;
- • eine erste, in der ersten Verarbeitungseinheit ausgeführte Anwendung schreibt einen Wert eines für eine Zeitspanne gültigen Parameters in eine Adresse des Informationsraums, um für jede Anwendung zugänglich zu sein, die in der Vorrichtung ausgeführt wird und in der Lage ist, die Adresse zu lesen;
- • eine erste, in der ersten Verarbeitungseinheit laufende Anwendung ist weiterhin konfiguriert zum Schreiben eines Steuersignals in den Informationsraum, und um einen zweiten, in der zweiten Verarbeitungseinheit ausgeführten Anwendung das Steuersignal mitzuteilen, wodurch die zweite Anwendung konfiguriert ist zum Holen des Steuersignals aus dem Informationsraum und zum Veranlassen der zweiten Verarbeitungseinheit, in einen Ruhezustand einzutreten;
- • die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit besitzen Kerne, die in derselben integrierten Schaltung enthalten sind.
- • die erste Verarbeitungseinheit ist ein Mikrocontroller, und die zweite Verarbeitungseinheit besitzt einen Mikroprozessor, wobei der Mikrocontroller bezüglich des Mikroprozessors extern ist und der Mikroprozessor bezüglich des Mikrocontrollers extern ist.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren mit folgenden Schritten geschaffen: von einer ersten Verarbeitungseinheit werden von mindestens einer Schnittstelle oder einem Gerät, die bzw. das an die Verarbeitungseinheit angeschlossen ist, Signale empfangen; die empfangenen Signale werden in einer ersten Computerprogrammanwendung verarbeitet, die in der ersten Verarbeitungseinheit ausgeführt wird; die erste Computerprogrammanwendung wird in die Lage versetzt, Daten, die von den verarbeiteten Signalen gewonnen werden, in einen gemeinsam benutzten Informationsraum einzuschreiben, in einer zweiten Computerprogrammanwendung, die in einer zweiten Verarbeitungseinheit ausgeführt wird, wird eine Meldung über die in den gemeinsam verwendeten Informationsraum eingeschriebenen Daten empfangen, die zweite Computerprogrammanwendung wird in die Lage versetzt, die in dem gemeinsam verwendeten Informationsraum gespeicherten Daten zu lesen; diese Daten werden in der zweiten Verarbeitungseinheit weiter verarbeitet.
- Verschiedene Ausführungsformen des zweiten Aspekts können mindestens ein Merkmal aus der nachstehenden Liste enthalten:
- • die erste Verarbeitungseinheit ist gekoppelt mit mindestens einer der folgenden Einheiten: eine Benutzerschnittstelle, eine externe Speichereinheit, ein Drahtlos-Kommunikationsport, eine Satellitenortungsschaltung, ein Magnetometer, ein Gyroskop, ein Beschleunigungsmesser und ein Drucksensor;
- • die zweite Verarbeitungseinheit ist elektrisch gekoppelt mit mindestens einer der folgenden Einheiten: eine Anzeige, eine externe Speichereinheit, eine Zellular-Kommunikationsschaltung, eine nicht-zellulare Drahtlos-Kommunikationsschaltung und ein zweites verdrahtetes Kommunikationsport;
- • der gemeinsam verwendete Informationsraum besteht aus mindestens einer Schreib-/Lesespeichereinheit, die mit jeder Verarbeitungseinheit gekoppelt ist, wobei die Speichereinheiten konfiguriert sind zum Kommunizieren untereinander gemäß einem Datenaustauschprotokoll;
- • der gemeinsame Informationsraum besteht aus mindestens einer Schreib-/ Lesespeichereinheit, die mit mindestens der ersten und der zweiten Verarbeitungseinheit gekoppelt ist, wobei die Speichereinheit konfiguriert ist, um als logische Speichereinheit zu dienen, wobei mindestens ein Adressraum sowohl für die erste als auch für die zweite Verarbeitungseinheit abgebildet wird;
- • der gemeinsame Informationsraum besteht aus einem externen Speicherraum, gekoppelt mit mindestens der ersten und der zweiten Verarbeitungseinheit, wobei der externe Speicherraum konfiguriert ist, um als logische Speichereinheit zu dienen, wobei mindestens ein Adressraum sowohl auf die erste als auch die zweite Verarbeitungseinheit abgebildet ist;
- • mindestens eine Schreib-/Lesespeichereinheit ist mit mindestens der ersten und der zweiten Verarbeitungseinheit gekoppelt,
- • Empfangen von durch die erste Verarbeitungseinheit eingeschriebenen Adressdaten des Schreib-/Lesespeichers, welche auf eine Adresse innerhalb des externen Speicherraums zeigen;
- • in dem externen Speicherraum werden Daten empfangen, die von der ersten Verarbeitungseinheit in die Adresse eingeschrieben wurden;
- • in der zweiten Verarbeitungseinheit wird die in den Schreib-/Lesespeicher eingeschriebene Adresse gelesen;
- • von der zweiten Verarbeitungseinheit werden aus dem gemeinsam benutzten Informationsraum unter der genannten Adresse Daten abgerufen;
- • eine erste, auf der ersten Verarbeitungseinheit ausgeführte Anwendung ist dazu ausgebildet den laufenden Wert eines Parameters, z. B. der Zeit, in eine Adresse innerhalb des Informationsraums einzuschreiben, und eine zweite, in der zweiten Verarbeitungseinheit ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert aus dem Informationsraum zu holen;
- • eine zweite, auf der zweiten Verarbeitungseinheit ausgeführte Anwendung ist dazu ausgebildet, eine Anforderung nach dem in den Informationsraum einzuschreibenden Parameterwert zu stellen, wobei eine erste, in der ersten Verarbeitungseinheit ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert in die Adresse einzuschreiben, und die zweite Anwendung dazu ausgebildet ist, den Parameterwert aus der Adresse zu holen;
- • die erste, auf der ersten Verarbeitungseinheit ausgeführte Anwendung ist dazu ausgebildet, in konstanter und häufiger Weise den vorausgehenden Wert eines Parameters mit einem laufenden Wert in dem Informationsraums zu überschreiben;
- • eine erste, auf der ersten Verarbeitungseinheit ausgeführte Anwendung ist dazu ausgebildet, einen für Zeitspanne gültigen Parameterwert in eine Adresse innerhalb des Informationsraums zu schreiben, damit er für jede Anwendung zugänglich ist, die in der Vorrichtung ausgeführt wird und in der Lage ist, die Adresse zu lesen;
- • eine erste, in der ersten Verarbeitungseinheit ausgeführte Anwendung ist weiterhin konfiguriert, um
- - ein Steuersignal in den Informationsraum einzuschreiben, und
- - einer zweiten, in der zweiten Verarbeitungseinheit ausgeführten Anwendung Mitteilung über das Steuersignal zu machen, und wobei
- Gemäß einem dritten Aspekt der Erfindung wird eine Vorrichtung geschaffen, welche aufweist:
- in einer ersten Verarbeitungseinheit,
- Mittel zum Empfangen und Verarbeiten von Signalen, die von mindestens einer Schnittstelle oder einem Gerät, die bzw. das an die erste Verarbeitungseinheit angeschlossen ist, empfangen werden;
- Mittel, um die erste Verarbeitungseinheit in die Lage zu versetzen, Daten in einen gemeinsam verwendeten Informationsraum einzuschreiben,
- Mittel, um einer zweiten Verarbeitungseinheit mitzuteilen, dass Daten in den gemeinsam verwendeten Informationsraum eingeschrieben wurden,
- in der zweiten Verarbeitungseinheit,
- Mittel, um die zweite Verarbeitungseinheit in die Lage zu versetzen, aus dem gemeinsam verwendeten Informationsraum Daten zu lesen, die von der ersten Verarbeitungseinheit eingeschrieben wurden;
- Mittel, um eine weitere Verarbeitung zumindest einiger Information zu ermöglichen, die aus dem gemeinsam verwendeten Informationsraum gelesen wurde und in der ersten Verarbeitungseinheit verarbeitet wurde; und
- Mittel zum weiteren Verarbeiten der gelesenen Daten in der zweiten Verarbeitungseinheit zwecks Anzeige, Übertragung über eine Kommunikationsverbindung oder zwecks Veranlassung der zweiten Verarbeitungseinheit, in einen Ruhezustand einzutreten.
- Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Computerprogramm geschaffen, konfiguriert um zu veranlassen, dass es bei Ausführung ein Verfahren nach mindestens einem der Verfahrensansprüche ausführt.
- Industrielle Anwendbarkeit
- Mindestens einige Ausführungsformen der vorliegenden Erfindung finden industrielle Anwendung in eingebetteten Mehrchip- oder Mehrkern- und Speichernutzungsoptimierungen.
- Kurze Beschreibung der Zeichnungen
-
-
1 veranschaulicht ein Beispiel eines eingebetteten Geräts mit zwei Prozessoren und einer Anzahl von Peripheriegeräten; -
2 veranschaulicht ein erstes Beispiel einer Vorrichtung, die in der Lage ist, mindestens einige Ausführungsformen der Erfindung zu unterstützen; -
3 veranschaulicht ein zweites Beispiel einer Vorrichtung, die in der Lage ist, zumindest einige Ausführungsformen der Erfindung zu unterstützen. - DETAILLIERTE BESCHREIBUNG BEISPIELHAFTER AUSFÜHRUNGSFORMEN
-
1 veranschaulicht ein Beispiel eines modern eingebetteten Geräts mit zwei Prozessoren 110 und 120, von denen jeder mindestens einen Prozessorkern enthält. 110 entspricht beispielsweise einem weniger leistungsfähigen Prozessor eines Mikrocontrollers, der weniger Leistung aufnimmt, und 120 entspricht beispielsweise einem leistungfähigeren Mikroprozessor, der mehr Leistung aufnimmt. Die Prozessoren haben eine Anzahl von Peripherieeinheiten, so z. B. Benutzerschnittstellen, Sensoren und Anzeigen. Ein Benutzer kann mit dem Gerät über die Benutzerschnittstellen agieren, diese umfassen beispielsweise Tasten. Ein eingebettetes Gerät kann eine Konnektivitätsfunktion aufweisen, konfiguriert für die Kommunikation mit einem Kommunikationsnetzwerk wie z. B. einem Drahtlos-Kommunikationsnetzwerk. Einige Ausführungsformen der Erfindung können ein ähnliches Gerät wie dem einen in1 gezeigten Gerät enthalten, ausgestattet mit Modifikationen gemäß der Erfindung, um den Prozessoren und den in diesen ausgeführten Anwendungen zu ermöglichen, miteinander zu kommunizieren, wie dies im Folgenden erläutert wird. - Die weniger Leistungsfähige oder die mehr Leistungsfähige der Verarbeitungseinheiten kann konfiguriert sein, um zumindest teilweise die andere Verarbeitungseinheit zu steuern. Beispielsweise kann die weniger leistungsfähige Verarbeitungseinheit einen weniger leistungsfähigen Verarbeitungskern enthalten, sie kann in die Lage versetzt werden, die mehr leistungsfähige Verarbeitungseinheit zu veranlassen, einen Übergang in einen und aus einem Ruhezustand zu vollziehen. Diese Übergänge können veranlasst werden durch Signalisierung über eine Zwischen-Verarbeitungseinheiten-Schnittstelle, so z. B. eine Whiteboard-Schnittstelle.
- Die dargestellte Vorrichtung enthält einen Mikrocontroller 110 und einen Mikroprozessor 120. Der Mikrocontroller 110 kann z. B. ein Renesas RL78- oder ein Toshiba TLCS-870-Mikrocontroller oder ein ähnliches Gerät sein. Der Mikroprozessor 120 kann z. B. ein Qualcomm Snapdragon Prozessor oder ein ARM Cortex-based Prozessor sein. Der Mikrocontroller 110 und der Mikroprozessor 120 sind in dem in
1 gezeigten Beispiel kommunikativ gekoppelt mit einer dem Stand der Technik entsprechenden Zwischenverarbeitungsschnittstelle 115, die hier beispielsweise eine serielle oder eine parallele Kommunikationsschnittstelle sein kann. - Jede Verarbeitungseinheit kann einen oder mehrere gleichförmige oder heterogene Prozessorkerne und/ der unterschiedliche flüchtige und nicht-flüchtige Speicher enthalten. Beispielsweise kann das Gerät 110 einen Mikrocontroller mit mindestens einem Verarbeitungskern aufweisen. Es ist auch möglich, die beiden Prozessoren 110 und 120 in dieselbe Verarbeitungseinheit oder dasselbe Chip zu integrieren, funktionell jedoch braucht dies keinen Unterschied zu dem machen, was oben die beiden Prozessoren gesagt wurde.
- Jede der Verarbeitungseinheiten kann in die Lage versetzt werden, eine Anzeige 130 des Geräts zu steuern. Die leistungsfähigere Verarbeitungseinheit 120 kann konfiguriert sein zur Schaffung einer reicheren visuellen Veranschaulichung über die Anzeige. Die weniger leistungsfähige Verarbeitungseinheit 110 kann konfiguriert sein für eine reduzierte visuelle Darstellung über die Anzeige. Ein Beispiel für eine reduzierte visuelle Darstellung ist eine Schwarz-Weiß-Darstellung. Ein Beispiel für eine reichere visuelle Darstellung ist eine solche, die von Farben Gebrauch macht. Farben lassen sich beispielsweise mit 16 Bits oder 24 Bits darstellen.
- Der Mikrocontroller 110 ist im dargestellten Beispiel kommunikativ mit einem Summer 170, einem universellen seriellen Bus, USB, einer Schnittstelle 180, einem Drucksensor 190, einem Beschleunigungssensor 1100, einem Gyroskop 1110, einem Magnetometer 1120, einer Satellitenortungsschaltung 1130, einer Bluetooth-Schnittstelle 1140, Benutzerschnittstellen-Tasten 1150 und einem Tastbildschirm 1160 verbunden. Der Drucksensor 190 kann beispielsweise einen atmosphärischen Drucksensor aufweisen. Weitere Beispiele für Peripheriegeräte, die an den Mikrocontroller 110 koppelbar sein, enthalten einen externen Flash-Speicher 1190, einen Sensor-Hub (nicht dargestellt), der beispielsweise Sensoren enthält oder unterstützt. Solche Sensor-Hubs können Prozessoren zur Bereitstellung einer Funkverbindung über Bluetooth oder GPS/Glonass-Schaltungen (GSNN) enthalten, oder der Hub kann mit den Sensoren verbunden sein, die eingebaute Funk-Anschlussfähigkeit besitzen.
- Der Mikroprozessor 120 ist kommunikativ mit einer optionalen zellulären Schnittstelle 140, einer nicht-zellulären Drahtlos-Schnittstelle 150 und einer USB-Schnittstelle 160 gekoppelt. Der Mikroprozessor 120 ist darüber hinaus kommunikativ über eine Mikroprozessor-Anzeigeschnittstelle 122 mit der Anzeige 130 verbunden. Der Mikrocontroller 110 ist gleichermaßen kommunikativ über eine Mikrocontroller-Anzeigeschnittstelle 122 mit der Anzeige 130 verbunden. Die Mikroprozessor-Anzeigeschnittstelle 122 kann eine Kommunikationsschaltung aufweisen, die in dem Mikroprozessor 120 ausgebildet ist. Die Mikrocontroller-Anzeigeschnittstelle 112 kann eine Kommunikationsschaltung aufweisen, die sich in dem Mikrocontroller 110 befindet.
- Der Mikrocontroller 110 kann konfiguriert sein zum Feststellen, ob ein auslösendes Ereignis stattfindet, wobei ansprechend auf die auslösenden Ereignisse der Mikrocontroller 110 konfiguriert sein kann, um den Mikroprozessor zu veranlassen, in einen und aus einem Ruhezustand zu wechseln, wie oben erläutert wurde. Befindet sich der Mikroprozessor 120 im Ruhezustand (Schlafzustand), kann der Mikrocontroller 110 die Anzeige 130 über die Mikrocontroller-Anzeigeschnittstelle 122 steuern. Der Mikrocontroller 110 kann damit dann, wenn der Mikroprozessor 120 ruht, beispielsweise eine reduzierte Darstellung für einen Benutzer über die Anzeige 130 anbieten.
- Mindestens zwei der in
1 dargestellten Elemente können in derselben integrierten Schaltung integriert sein. Beispielsweise können der Mikroprozessor 120 und der Mikrocontroller 110 als Prozessorkerne innerhalb derselben integrierten Schaltung angeordnet sein. Wenn dies der Fall ist, kann beispielsweise die zellulare Schnittstelle 140 eine zellulare Schnittstelle dieser integrierten Schaltung sein, die in der integrierten Schaltung enthalten ist, wobei die zellulare Schnittstelle 140 von dem Mikroprozessor 120, nicht aber von dem Mikrocontroller 110 steuerbar ist. In anderen Worten: Individuelle Hardware-Merkmale der integrierten Schaltung können entweder von dem Mikrocontroller 110 oder dem Mikroprozessor 120 steuerbar sein, nicht jedoch von beiden. Andererseits können einige Hardware-Merkmale von jeder Verarbeitungseinheit steuerbar sein. Beispielsweise können die USB-Schnittstelle 160 und die USB-Schnittstelle 180 in einer solchen integrierten Ausführungsform ein- und dieselbe USB-Schnittstelle der integrierten Schaltung sein, steuerbar durch jeden Prozessorkern. - Weiterhin sind in
1 ein Speicher 1170 und ein Speicher 1180 dargestellt. Der Speicher 1170 wird von dem Mikroprozessor 120 verwendet und kann auf Schreib-/Lesespeicher-Technik beruhen, so z. B. DDR2 oder DDR3. Der Speicher 1180 wird von dem Mikrocontroller 110 verwendet und kann beispielsweise auf SRAM-Technik basieren. -
2 zeigt ein Beispiel für eine erfindungsgemäße Lösung der Situation, in der eine erste Verarbeitungseinheit 210 konfiguriert ist zum Ausführen von Computerprogrammanwendungen 260A und 260B, und in der Lage ist, Information zu und von einem physischen Whiteboard-Speicher 240 zu empfangen, zu verarbeiten und zu liefern. In gleicher Weise ist eine zweite Bearbeitungseinheit 220 konfiguriert zum Ausführen von Computerprogrammanwendungen 260C-260E, und ist in der Lage, zu und von einem physischen Whiteboard-Speicher 250 Information zu empfangen, zu verarbeiten und zu liefern. Externe Geräte 270A-270D, beispielsweise Benutzerschnittstellen, beispielsweise Benutzerschnittstellen, Sensoren, Messinstrumente oder Zeitgeber, sind in der Lage, Informationen an physische Whiteboard-Speichereinheiten 240 und 250 zu liefern. - Die beiden physischen Whiteboards 240 und 250 bilden gemeinsam ein logisches Zwischengerät-Whiteboard 230, welches einen eindeutig adressierbaren Speicherraum für beide Verarbeitungseinheiten 210 und 220 bildet und aus mindestens den beiden physischen Whiteboards 240 und 250 sowie jeglicher zusätzlich erforderlicher Speicherschaltung (nicht dargestellt) besteht. Ein logisches Whiteboard muss natürlich auf die physischen Einheiten abgebildet werden, aus denen es besteht. Die erste und die zweite Verarbeitungseinheit 210 und 220 sind somit an das logische Whiteboard 230 gekoppelt, um Information, die von einer durch eine der Verarbeitungseinheiten ausgeführte Anwendung geliefert wird, zu einer zweiten Anwendung zu senden, die in der anderen Verarbeitungseinheit läuft.
- Ein Whiteboard lässt sich mithin als ein Mittelding zwischen Prozessoren, die möglicherweise ihre eigenen Betriebssysteme und Anwendungen, jedoch einen gemeinsamen Speicherraum aufweisen, betrachten. Das logische Abbilden (Mapping) eines Whiteboards kann erfolgen, indem separate Namenräume für unterschiedliche Einheiten wie beispielsweise Sensoren etc. reserviert werden. Es kann ein Schnittstellen-Mapping für unterschiedliche Programmierdomänen erforderlich sein, beispielsweise für JavaScript, Java und Objective-C.
- Beispielsweise schreibt ein Sensor oder Datenlieferant 270B Daten A1 (z. B. die jede Sekunde aktualisierte Zeit) in das logische Whiteboard 230, und zwar in eine Adresse, die sich in dem physischen Speicher 240 der ersten Verarbeitungseinheit 210 befindet. Eine in der zweiten Verarbeitungseinheit 220 ausgeführte Verbraucheranwendung 260D holt die Zeitinformation aus dem physischen Speicher 250 bei A2. Die Kommunikation zwischen den physischen Speichern (und sämtlichen weiteren Whiteboard-Speichern) wird gehandhabt durch ein Datenaustausch-(Zwischen-Whiteboard)-Protokoll, welches auf einem Bus 280 ausgeführt werden kann, der von einem Bussteuerprotokoll gesteuert wird, beispielsweise dem I2C-Protokoll. I2C kann dazu verwendet werden, Peripherieeinheiten geringer Geschwindigkeit (Slave-Knoten) mit Verarbeitungseinheiten und Mikrocontrollern (Master-Knoten) in eingebetteten Systemen anzubringen. Der I2C-Bus besitzt zwei Rollen für Knoten: Master und Slave. Der Bus ist ein Mehr-Master-Bus, was bedeutet, dass jede Anzahl von Master-Knoten vorhanden sein kann. Die Rollen von Master und Slave können auch zwischen den Nachrichten wechseln. Die vier möglichen Betriebsarten für einen gegebenen Bus sind:
- • Master-Senden: Der Master-Knoten sendet Daten zu einem Slave
- • Master-Empfangen: Der Master-Knoten empfängt Daten von einem Slave
- • Slave-Senden: Der Slave-Knoten sendet Daten an den Master
- • Slave-Empfangen: Der Slave-Knoten empfängt Daten von dem Master.
- Der Bus 280 oder ein gemeinsamer externer Speicher 290 können ein Mittel darstellen für die erste Verarbeitungseinheit, der zweiten Verarbeitungseinheit mitzuteilen, dass Daten in einen geteilten, d. h. gemeinsam benutzten Informationsraum eingeschrieben wurden. Eine Unterbrechungssignalleitung in dem Bus 280 kann von der ersten Einheit 210 angesteuert werden, um eine derartige Mitteilung zu machen. Die zweite Bearbeitungseinheit 220 kann dann die Daten aus einer vereinbarten Adresse innerhalb des Whiteboards 230 holen. Alternativ kann die Verarbeitungseinheit 210 mit einer Schreib-/Lesespeichereinhiet 290 gekoppelt sein, die auch mit der zweiten Verarbeitungseinheit 220 gekoppelt ist. Eine solche Speichereinheit kann eine externe Flash-Speichereinheit 1190 sein, wie sie in Verbindung mit
1 beschrieben wurde, jetzt aber und entsprechend der Erfindung mit beiden Verarbeitungseinheiten 210 und 220 gekoppelt ist. Die Schreib-/Lesespeichereinheit 290 ist konfiguriert zum Empfangen von Daten, die von der ersten Verarbeitungseinheit 210 geschrieben werden. Die geschriebenen Daten können z. B. einen Zeiger zu einer Adresse innerhalb eines Whiteboards 230 bilden. Das Whiteboard 230 ist konfiguriert zum Empfangen der aktuellen Nutzdaten, die von der ersten Verarbeitungseinheit unter der Zeigeradresse eingeschrieben wurden. Die zweite Verarbeitungseinheit kann dann, nachdem sie über die Verfügbarkeit der Adresse in der Speichereinheit 290 informiert wurde, die Adresse aus der Speichereinheit 290 auslesen und die Nutzdaten aus dem Whiteboard unter der Adresse holen, auf die der Zeiger weist. - Wenn die Verarbeitungseinheiten 210 und 220 sich in separaten Geräten oder Gehäusen befinden, beispielsweise in einem Armband-Computer und einem Hand-Anzeigegerät oder einem fest montierten Anzeigegerät beispielsweise, kann der Bus 280 in drahtloser Weise implementiert werden, indem von einem Drahtlos-Kommunikationsprotokoll Gebrauch gemacht wird. Funk-Sendeempfangseinheiten (Einheiten 150 und 1140 nach
1 ), die funktionell mit ihren jeweiligen Verarbeitungseinheiten verbunden sind, können damit die Funktion des Busses 280 übernehmen. Das Drahtlos-Kommunikationsprotokoll kann ein Protokoll sein, wie es für die Kommunikation zwischen Computern verwendet wird und/oder zwischen beliebigen Fern-Sensoren, beispielsweise Bluetooth LE oder das Marken ANT+-Protokoll. Diese machen Gebrauch von Direktsequenz-Spreizspektrum-(DSSS)-Modulationsverfahren und einer adaptiven isochronen Netzwerkkonfiguration. Erläuternde Beschreibungen der benötigten Hardware für unterschiedliche Implementierungen von Drahtlos-Verbindungen sind beziehbar beispielsweise aus dem Handbuch von Texas Instrument®'s „Wireless Connectivity“, welches IC-Schaltungen und zugehörige Hardware-Konfigurationen für Protokolle enthält, die im Sub-1- und 2.4-GHz-Frequenzband arbeiten, so z. B. ANT™, Bluetooth®, Bluetooth® Low Energy, RFID/NFC, PurePath™ Wireless Audio, ZigBee®, IEEE 802.15.4, ZigBee RF4CE, 6LoWPAN, Wi-Fi®. - Ein weiteres Beispiel ist als Verbraucheranwendung 260C dargestellt, die bei B1 eine Subskription für Daten (z. B. GPS-Daten) an das Whiteboard gibt. Die GPS-Einheit bei 270A liefert die Ortskoordinaten bei B2, und der Anwendung 260C wird die Verfügbarkeit der Daten bei B3 mitgeteilt. Die Mitteilung kann die Daten selbst beinhalten, oder kann einen Zeiger zu einer Stelle beinhalten, wo die Daten aufgefunden werden können, wie oben erläutert wurde. Bei einer weiteren Ausführungsform ist eine in der ersten Verarbeitungseinheit 210 ausgeführte Anwendung 260B konfiguriert zum Schreiben eines Steuersignals an das Whiteboard 230 bei C1, und eine zweite Anwendung 260E, die in der zweiten Verarbeitungseinheit 220 läuft, ist bei C2 konfiguriert zum Lesen des Steuersignals aus dem Whiteboard 230 und zum Veranlassen, dass der Kern der zweiten Verarbeitungseinheit 220 in einen Schlaf- oder Ruhezustand eintritt. Es handelt sich hier um ein Verfahren zur Schaffung einer signifikanten Verringerung der Leistungsaufnahme des Geräts. Beispiele für Situationen, in denen die Verarbeitungseinheit 220 nicht aktiv zu sein braucht und ihr Kern in einen Ruhezustand eintreten kann, sind solche, in denen nur Hintergrundverarbeitung bezüglich Zeitsteuerung und/oder Sensorgeräten erforderlich ist, wobei nur wenig Anzeige- oder Kommunikationsvorgänge erforderlich sind. Das Aktivieren der Verarbeitungseinheit 220 aus einem Ruhezustand, beispielsweise dann, wenn ein Benutzer eine datenintensive Anwendung startet, kann auf mehrere unterschiedliche Weisen erfolgen, die außerhalb des Schutzumfangs der vorliegenden Erfindung liegen.
- Die in das Whiteboard eingeschriebene Information kann resultieren aus automatischen Eingaben von Datenlieferanten, so z. B. Zeit, Herzschlag oder Beschleunigung. Die Information kann in solchen Fällen flüchtig sein, d. h. sie kann konstant mit laufenden Aktualisierungen überschrieben werden. Eine Verbraucheranwendung (z. B. ein Herzschlaggurt) muss dann ggf. die Zeit aus dem Whiteboard holen und Herzschlagmesswerte mit Zeitstempel versehen, beispielsweise zu dem Zweck, Daten für ein über eine Zeit erstrecktes Herzfrequenzdiagramm zu speichern. Alternativ können die Daten auch von einem Kunden angefordert werden, beispielsweise eine Sturmwarnung, das Ablesen eines Kompasses etc. In diesem Fall erhält ein Provider 270 den Auftrag, mit der Arbeit zu beginnen, und die Kundenanwendung 260 holt die Information und zeigt den Alarm oder den Messwert auf einer Anzeige an.
- In
3 ist eine alternative Ausführungsform der erfindungsgemäßen Lösung zum Schaffen eines gemeinsam verwendeten Speichers für mehrere Prozessoren und deren Anwendungen dargestellt. Die Geräte sind hier zur Verdeutlichung unterteilt in Peripherieeinheiten 210, Geräte 320, mobile Anwendungen 330 und eine Cloud-Berechnungsplattform 340. Verschiedene Verarbeitungseinheiten 360 oder „Verbraucher“ sind mit einem Zwischengerät-Whiteboard 350 als gemeinsam benutzte Speicherplattform verbunden, während unterschiedliche Daten-„Provider“ 370, so z. B. in Form von Sensoren sowie Benutzerschnittstellen, in ähnlicher Weise an dasselbe Whiteboard angeschlossen sind. Entsprechend den gleichen Beispielen wie in2 schreibt ein Provider 370 bei A1 die laufende Zeit in das Whiteboard 350. Eine Verbraucheranwendung 360, die in einem Gerät 320 ausgeführt wird, holt die Zeitinformation bei A2 routinemäßig oder in anderer Weise aus dem Whiteboard 350. Die Verwaltung eines derartigen Zwischengerät-Whiteboards kann beispielsweise basieren auf einem System wie dem REST- (Representational State Transfer) Protokoll, bei dem es sich um eine koordinierte Menge von Nebenbedingungen handelt, die auf den Entwurf von Komponenten in verteilten Systemen angewendet werden und in Web-basierten Diensten bekannt sind. - Aus den in den
2 und3 dargestellten Beispielen ist ersichtlich, dass physisch betrachtet ein Whiteboard jede Art von Speicher sein kann, auf den zugegriffen werden kann, d. h. ein Prozessor-spezifischer angeschlossener Speicher, ein gemeinsam benutztes Speicherbauelement oder ein Speicherraum, der in einem Computernetzwerk verfügbar ist, beispielsweise dem Internet. - Bei dem zweiten Beispiel platziert eine mobile Anwendung 330 eine Anforderung nach Daten bei B1, ein aus der Cloud 340 operierender Datenprovider 370 schreibt die geforderten Daten bei B2, und dieselbe Anwendung 330 holt die Information bei B3.
- Es versteht sich, dass die Ausführungsformen der Erfindung, wie sie hier offenbart sind, nicht auf die angegebenen speziellen Strukturen, Prozessschritte oder Werkstoffe beschränkt sind, sondern sich auf deren Äquivalente erstrecken, wie der Fachmann auf dem einschlägigen technischen Gebiet erkennt. Außerdem versteht sich, dass die hier verwendete Terminologie nur zur Beschreibung spezieller Ausführungsformen dient, jedoch nicht beschränkend zu verstehen ist.
- Bezugnahme in der vorliegenden Beschreibung auf „eine (als Zahlwort) Ausführungsform“ bedeutet hier, dass ein spezielles Merkmal, eine spezielle Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der Erfindung enthalten ist. Das Auftauchen der Begriffe „in einer (als Zahlwort) Ausführungsform“ oder in „einer (als unbestimmter Artikel) Ausführungsform“ an verschiedenen Stellen im Rahmen dieser Beschreibung ist nicht notwendigerweise immer auf ein- und dieselbe Ausführungsform beschränkt.
- Mehrere Ausdrücke, Strukturelemente, zusammengesetzte Elemente und/oder Werkstoffe können hier in einer gemeinsamen Liste dargestellt werden. Allerdings sollten diese Listen in einer Weise ausgelegt werden, dass jedes Element der Liste individuell als separates und einzigartiges Element zu verstehen ist. Damit sollte kein individuelles Element einer derartigen Liste interpretiert werden als Äquivalent irgendeines anderen Elementes derselben Liste nur aufgrund der Darstellung innerhalb einer gemeinsamen Gruppe, wenn nicht das Gegenteil angegeben ist. Ferner können verschiedene Ausführungsformen und Beispiele der vorliegenden Erfindung hier in Verbindung mit Alternativen für deren verschiedenen Komponenten angegeben werden. Es versteht sich, dass solche Ausführungsformen, Beispiele und Alternativen nicht als Äquivalente zueinander zu verstehen sind, sondern als getrennte und autonome Darstellungen der vorliegenden Erfindung zu betrachten sind.
- Weiterhin können die beschriebenen Merkmale, Strukturen oder Charakteristika in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden. In der folgenden Beschreibung sind zahlreiche spezifische Details angegeben, so zum Beispiel Längen, Breiten, Formen etc., um ein umfassendes Verständnis der Ausführungsformen der Erfindung zu ermöglichen. Der Fachmann erkennt allerdings, dass die Erfindung auch ohne ein oder mehrere der spezifischen Details in die Praxis umsetzbar ist, ebenso wie durch andere Verfahren, Komponenten, Werkstoffe etc. In anderen Fällen sind an sich bekannte Strukturen, Werkstoffe oder Arbeitsvorgänge nicht im einzelnen dargestellt, um Aspekte der Erfindung nicht zu verdecken.
- Während die obigen Beispiele anschaulich sind für Prinzipien der vorliegenden Erfindung in einer oder mehreren speziellen Anwendungen, ist dem Fachmann ersichtlich, dass zahlreiche Modifikationen in der Form, der Anwendung und in Einzelheiten der Implementierung ohne erfinderisches Zutun möglich sind, ohne dass dabei von den Prinzipien und Konzepten der Erfindung abgewichen wird. Dementsprechend ist nicht beabsichtigt, dass die Erfindung durch etwas anderes als die beigefügten Ansprüche beschränkt ist.
Claims (19)
- Vorrichtung, umfassend: mindestens eine erste Verarbeitungseinheit (210), konfiguriert zum Ausführen mindestens einer ersten Computerprogrammanwendung (260A, 260B), die in der Lage ist, von mindestens einer Schnittstelle (180) oder einem Gerät, die/das an die erste Verarbeitungseinheit (210) angeschlossen ist, empfangene Signale zu empfangen und zu verarbeiten, mindestens eine zweite Verarbeitungseinheit (220), konfiguriert zum Ausführen mindestens einer zweiten Computerprogrammanwendung (260C, 260D), die in der Lage ist, mindestens einige Information, die in der ersten Verarbeitungseinheit (210) verarbeitet wurde, weiter zu verarbeiten; wobei die erste und die zweite Verarbeitungseinheit (220) mit einem gemeinsam benutzten Informationsraum (230) gekoppelt sind, der aus einem externen Speicherraum besteht, konfiguriert, um als logische Speichereinheit (290) zu dienen mit mindestens einem Adressraum, der sowohl auf die erste als auch auf die zweite Verarbeitungseinheit (220) abgebildet ist, wobei eine erste Anwendung, die in der ersten Verarbeitungseinheit (210) ausgeführt wird, konfiguriert ist, um die erste Verarbeitungseinheit (210) in die Lage zu versetzen, aus den verarbeiteten Signalen gewonnene Daten in eine Adresse des Informationsraums (230) einzuschreiben, und eine zweite Anwendung, die in der zweiten Verarbeitungseinheit (220) ausgeführt wird, konfiguriert ist zum Empfangen einer Meldung darüber, dass die Daten in den gemeinsam benutzten Informationsraum (230) eingeschrieben sind, dadurch gekennzeichnet, dass die Vorrichtung zusätzlich mindestens eine externe Flash-Speichereinheit (290) aufweist, die mit der ersten und der zweiten Verarbeitungseinheit (220) gekoppelt und konfiguriert ist zum Empfangen von Adressdaten, die von der ersten Verarbeitungseinheit (210) geschrieben sind und auf eine Adresse in dem gemeinsam benutzten Informationsraum (230) weisen, und die zweite Verarbeitungseinheit (220) konfiguriert ist zum Lesen der Adresse in der Flash-Speichereinheit (290) und zum Holen der Daten aus dem gemeinsamen benutzten Informationsraum (230) unter der Adresse zwecks weiteren Verarbeitung in der zweiten Verarbeitungseinheit (220).
- Vorrichtung nach
Anspruch 1 , bei der die erste Verarbeitungseinheit (210) elektrisch mit mindestens einer der folgenden Einheiten gekoppelt ist: eine Benutzerschnittstelle, eine externe Speichereinheit, ein Drahtlos-Kommunikationsport, ein erstes verdrahtetes Kommunikationsport, eine Satellitenortungsschaltung (1130), ein Magnetometer (1120), ein Gyroskop (1110), ein Beschleunigungsmesser und ein Drucksensor (190). - Vorrichtung nach
Anspruch 1 oder2 , bei der die zweite Verarbeitungseinheit (220) elektrisch mit mindestens einer der folgenden Einheiten gekoppelt ist: eine Anzeige, eine externe Speichereinheit, ein Sensor, eine zellulare Kommunikationsschaltung, eine nicht-zellulare Drahtlos-Kommunikationsschaltung und ein zweites verdrahtetes Kommunikationsport. - Vorrichtung nach einem der
Ansprüche 1 bis3 , bei der der gemeinsam benutzte Informationsraum (230) aus mindestens einer Schreib-/Lesespeichereinheit besteht, die mit jeder Verarbeitungseinheit gekoppelt ist, wobei die Speichereinheiten der ersten (210) und der zweiten Verarbeitungseinheit (220) konfiguriert sind zum Kommunizieren miteinander über ein Datenaustauschprotokoll. - Vorrichtung nach einem der
Ansprüche 1 bis4 , bei der die erste in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung dazu ausgebildet ist, einen laufenden Parameterwert wie z. B. eine Zeit, in eine Adresse innerhalb des Informationsraums (230) einzuschreiben, und die zweite, auf der zweiten Verarbeitungseinheit (220) ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert aus dem Informationsraum (230) abzurufen. - Vorrichtung nach einem der
Ansprüche 1 bis5 , bei der die zweite, auf der zweiten Verarbeitungseinheit (220) ausgeführte Anwendung dazu ausgebildet ist, eine Anforderung für einen in den Informationsraum (230) zu schreibenden Parameterwert zu platzieren, wobei die erste, auf der ersten Verarbeitungseinheit (210) ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert in eine Adresse innerhalb eines Informationsraums (230) einzuschreiben, wobei die zweite Anwendung dazu ausgebildet ist, den Parameterwert aus der Adresse abzurufen. - Vorrichtung nach
Anspruch 5 , bei der die erste, in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung in konstanter und häufiger Weise den vorhergehenden Parameterwert mit einem laufenden Wert in dem Informationsraum (230) überschreibt. - Vorrichtung nach
Anspruch 7 , bei der die erste, in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung einen für eine Zeitspanne gültigen Parameterwert in eine Adresse innerhalb des Informationsraums (230) einschreibt, um zugänglich zu sein für jede Anwendung, die in der Vorrichtung läuft und in der Lage ist, die Adresse zu lesen. - Vorrichtung nach einem der
Ansprüche 1 bis8 , bei der die erste Verarbeitungseinheit (210) und die zweite Verarbeitungseinheit (220) Kerne aufweisen, die in derselben integrierten Schaltung enthalten sind. - Vorrichtung nach einem der
Ansprüche 1 bis8 , bei der die erste Verarbeitungseinheit (210) einen Mikrocontroller (110) aufweist und die zweite Verarbeitungseinheit (220) einen Mikroprozessor (120) enthält, wobei der Mikrocontroller (110) extern bezüglich des Mikroprozessors (120) ist und der Mikroprozessor (120) extern bezüglich des Mikrocontrollers (110) ist. - Verfahren, umfassend: Empfangen, von einer ersten Verarbeitungseinheit (210), von Signalen von mindestens einer Schnittstelle oder einem Gerät, die bzw. das an die Verarbeitungseinheit angeschlossen ist; Verarbeiten der empfangenen Signale in einer ersten Computerprogrammanwendung (260A, 260B), die in der ersten Verarbeitungseinheit (210) ausgeführt wird; Versetzen der ersten Computerprogrammanwendung (260A, 260B) in die Lage, Daten, die von den verarbeiteten Signalen gewonnen werden, in eine Adresse eines gemeinsam benutzten Informationsraums (230) einzuschreiben, der mit der ersten und der zweiten Verarbeitungseinheit (220) gekoppelt ist, wobei der gemeinsam benutzte Informationsraum (230) aus einem externen Speicherraum besteht, konfiguriert, um als logische Speichereinheit mit mindestens einem Adressraum zu fungieren, der sowohl auf die erste als auch auf die zweite Verarbeitungseinheit (220) abgebildet ist, Empfangen einer Meldung über die in den gemeinsam verwendeten Informationsraum (230) eingeschriebenen Daten in einer zweiten Computerprogrammanwendung (260C, 260D), die in der zweiten Verarbeitungseinheit (220) ausgeführt wird, dadurch gekennzeichnet, dass das Verfahren umfasst: Versetzen der ersten Computerprogrammanwendung (260A, 260B) in die Lage, Adressdaten, die auf die Adresse in dem gemeinsam benutzten Informationsraum (230) weisen, in mindestens eine externe Flash-Speichereinheit (290) einzuschreiben, die mit der ersten und der zweiten Verarbeitungseinheit (220) gekoppelt ist; - in der zweiten, in der zweiten Verarbeitungseinheit (220) ausgeführten Computerprogrammanwendung (260C, 260D) - Lesen der Adresse aus der externen Flash-Speichereinheit (290); Versetzen der zweiten Programmanwendung in die Lage, die in dem gemeinsam benutzten Informationsraum (230) gespeicherten Daten unter der Adresse zu holen; weiteres Verarbeiten der Daten in der zweiten Verarbeitungseinheit (220).
- Verfahren nach
Anspruch 11 , bei dem die erste Verarbeitungseinheit (210) mit mindestens einer der folgenden Einheiten gekoppelt ist: eine Benutzerschnittstelle, eine externe Speichereinheit, einem ersten Drahtlos-Kommunikationsport, eine Satellitenortungsschaltung (1130), ein Magnetometer (1120), ein Gyroskop (1110), ein Beschleunigungsmesser und ein Drucksensor (190). - Verfahren nach
Anspruch 11 oder12 , bei dem die zweite Verarbeitungseinheit (220) elektrisch mit mindestens einer der folgenden Einheiten gekoppelt ist: eine Anzeige, eine externe Speichereinheit, ein Sensor, eine Zellular-Kommunikationsschaltung, eine nicht-zellulare Drahtlos-Kommunikationsschaltung und ein zweites verdrahtetes Kommunikationsport. - Verfahren nach einem der
Ansprüche 11 bis13 , bei dem der gemeinsam verwendete Informationsraum(230) aus einer Schreib-/Lesespeichereinheit besteht, die mit jeder Verarbeitungseinheit gekoppelt ist, wobei die Speichereinheiten der ersten (210) und zweiten Verarbeitungseinheit (220) konfiguriert sind zum Kommunizieren miteinander über ein Datenaustauschprotokoll. - Verfahren nach einem der
Ansprüche 11 bis14 , enthaltend den Schritt, dass eine erste, in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung dazu ausgebildet ist, den laufenden Wert eines Parameters, z. B. der Zeit, in eine Adresse innerhalb des Informationsraums (230) einzuschreiben, und eine zweite, in der zweiten Verarbeitungseinheit (220) ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert aus dem Informationsraum (230) zu holen. - Verfahren nach einem der
Ansprüche 11 bis15 , enthaltend den Schritt, dass die zweite, in der zweiten Verarbeitungseinheit (220) ausgeführte Anwendung dazu ausgebildet ist, eine Anforderung nach dem in den Informationsraum (230) einzuschreibenden Parameterwert zu stellen, wobei die erste, in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung dazu ausgebildet ist, den Parameterwert in die Adresse des Informationsraums (230) einzuschreiben, und die zweite Anwendung dazu ausgebildet ist, den Parameterwert aus der Adresse zu holen. - Verfahren nach
Anspruch 15 , bei dem die erste, in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung dazu ausgebildet ist, in konstanter und häufiger Weise den früheren Parameterwert mit einem laufenden Wert in dem Informationsraum (230) zu überschreiben. - Verfahren nach
Anspruch 17 , enthaltend den Schritt, dass die erste, in der ersten Verarbeitungseinheit (210) ausgeführte Anwendung dazu ausgebildet ist, einen für eine Zeitspanne gültigen Parameterwert in eine Adresse innerhalb des Informationsraums (230) einzuschreiben, um für jede in der Vorrichtung ausgeführte Anwendung, die in der Lage ist, die Adresse zu lesen, zugänglich zu sein. - Computerprogramm, konfiguriert, um die erste Verarbeitungseinheit (210) der Vorrichtung nach
Anspruch 1 , wenn es darauf ausgeführt wird, folgende Verfahrensschritte ausführen zu lassen: Empfangen von Signalen von mindestens einer Schnittstelle oder einer Einrichtung, die mit der ersten Verarbeitungseinheit (210) verbunden ist; Verarbeiten der empfangenen Signale in einer ersten Computerprogrammanwendung (260A, 260B), die in der ersten Verarbeitungseinheit (210) ausgeführt wird; Ermöglichen der ersten Computerprogrammanwendung (260A, 260B), aus den verarbeiteten Signalen erhaltene Daten in eine Adresse innerhalb eines gemeinsam benutzten Informationsraums (230) einzuschreiben, der mit der ersten und einer zweiten Verarbeitungseinheit (220) der Vorrichtung nachAnspruch 1 gekoppelt ist, und der aus einem externen Speicherraum besteht, konfiguriert zum Fungieren als logische Speichereinheit mit mindestens einem Adressraum, der sowohl auf die erste als auch die zweite Verarbeitungseinheit abgebildet ist; Ermöglichen der ersten Computerprogrammanwendung (260A, 260B), Adressdaten, die auf die Adresse in dem gemeinsam benutzten Informationsraum weisen, in mindestens eine externe Flash-Speichereinheit (290) einzuschreiben, die mit der ersten und der zweiten Verarbeitungseinrichtung gekoppelt ist; um der zweiten Verarbeitungseinheit (220) bei deren Ausführung zu ermöglichen, folgende Verfahrensschritte auszuführen: Empfangen einer Meldung über die in den gemeinsam benutzten Informationsraum geschriebenen Daten in einer zweiten Computerprogrammanwendung (260C, 260D), die in der zweiten Verarbeitungseinheit (220) läuft; Lesen der Adresse aus dem externen Flash-Speicher (290) in der zweiten Computerprogrammanwendung (260C, 260D), die in der zweiten Verarbeitungseinheit (220) läuft; Ermöglichen der zweiten Computerprogrammanwendung (260C, 260D), die in dem gemeinsam benutzten Informationsraum unter der Adresse gespeicherten Daten zu holen; und Weiterverarbeiten dieser Daten in der zweiten Verarbeitungseinheit (220).
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1506568.3 | 2015-04-17 | ||
| GB1506568.3A GB2537420B (en) | 2015-04-17 | 2015-04-17 | Embedded computing device comprising processing units interfaced with a shared information space |
| FI20155288A FI129845B (en) | 2015-04-17 | 2015-04-17 | Built-in data processing device |
| FI20155288 | 2015-04-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102016106939A1 DE102016106939A1 (de) | 2016-10-20 |
| DE102016106939B4 true DE102016106939B4 (de) | 2024-05-02 |
Family
ID=57043775
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102016106939.6A Active DE102016106939B4 (de) | 2015-04-17 | 2016-04-14 | Eingebettetes Rechengerät |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10417045B2 (de) |
| DE (1) | DE102016106939B4 (de) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021034730A1 (en) * | 2019-08-16 | 2021-02-25 | The Gap, Inc. | Systems and methods for deploying enterprise software updates |
| DE102023201991A1 (de) * | 2023-03-06 | 2024-09-12 | Robert Bosch Gesellschaft mit beschränkter Haftung | Mikromechanische Sensoreinheit |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050041510A1 (en) | 2003-08-19 | 2005-02-24 | Jean Khawand | Method and apparatus for providing interprocessor communications using shared memory |
| WO2007085522A2 (en) | 2006-01-26 | 2007-08-02 | International Business Machines Corporation | Apparatus and method for efficient communication of producer/consumer buffer status |
| US20120131285A1 (en) | 2010-11-16 | 2012-05-24 | Tibco Software Inc. | Locking and signaling for implementing messaging transports with shared memory |
| US20140006541A1 (en) | 2012-06-28 | 2014-01-02 | International Business Machines Corporation | Persistent messaging |
Family Cites Families (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5428760A (en) | 1991-12-12 | 1995-06-27 | Intel Corporation | Circuitry and method for sharing internal microcontroller memory with an external processor |
| JPH0619785A (ja) | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
| GB2284494B (en) | 1993-11-26 | 1998-09-09 | Hitachi Ltd | Distributed shared memory management system |
| US6249893B1 (en) * | 1998-10-30 | 2001-06-19 | Advantest Corp. | Method and structure for testing embedded cores based system-on-a-chip |
| US7231531B2 (en) | 2001-03-16 | 2007-06-12 | Dualcor Technologies, Inc. | Personal electronics device with a dual core processor |
| US7898994B2 (en) | 2002-02-25 | 2011-03-01 | Hewlett-Packard Development Company, L.P. | Power saving in multi-processor device |
| US7451182B2 (en) | 2002-06-28 | 2008-11-11 | Intel Corporation | Coordinating operations of network and host processors |
| JP2005531860A (ja) | 2002-07-03 | 2005-10-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マルチプロセッサコンピュータシステム |
| US7124255B2 (en) | 2003-06-30 | 2006-10-17 | Microsoft Corporation | Message based inter-process for high volume data |
| US20060112226A1 (en) | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
| TW200735846A (en) | 2006-03-31 | 2007-10-01 | Micro Star Intl Co Ltd | Data process electronic device with dual CPU |
| KR100855587B1 (ko) | 2007-01-17 | 2008-09-01 | 삼성전자주식회사 | 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법 |
| US7937532B2 (en) | 2007-03-30 | 2011-05-03 | Intel Corporation | Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine |
| EP2017741B1 (de) | 2007-07-06 | 2017-11-22 | Telefonaktiebolaget LM Ericsson (publ) | System, Prozessor, Vorrichtung und Verfahren zur Kommunikation zwischen Prozessoren |
| US8041854B2 (en) | 2007-09-28 | 2011-10-18 | Intel Corporation | Steering data units to a consumer |
| JP4920015B2 (ja) | 2008-09-03 | 2012-04-18 | 日立オートモティブシステムズ株式会社 | 分散制御用制御ソフトウェアおよび電子制御装置 |
| US8531471B2 (en) | 2008-11-13 | 2013-09-10 | Intel Corporation | Shared virtual memory |
| KR20100133649A (ko) | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 링크 아키텍쳐에서 파워 오프 시 데이터 로스를 방지하는 기능을 갖는 멀티 프로세서 시스템 |
| US8868848B2 (en) | 2009-12-21 | 2014-10-21 | Intel Corporation | Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform |
| CN102103523A (zh) * | 2009-12-22 | 2011-06-22 | 国际商业机器公司 | 锁分配控制的方法和装置 |
| KR101603287B1 (ko) * | 2010-05-17 | 2016-03-14 | 삼성전자주식회사 | 시스템 온 칩 및 그것의 동작 방법 |
| US8671238B2 (en) | 2010-07-13 | 2014-03-11 | Vmware, Inc. | Robust live migration using shared filesystem |
| US20120079501A1 (en) * | 2010-09-27 | 2012-03-29 | Mark Henrik Sandstrom | Application Load Adaptive Processing Resource Allocation |
| GB2483884A (en) | 2010-09-23 | 2012-03-28 | Trinity College Dublin | Parallel processing system using dual port memories to communicate between each processor and the public memory bus |
| US8706172B2 (en) | 2010-10-26 | 2014-04-22 | Miscrosoft Corporation | Energy efficient continuous sensing for communications devices |
| US8566537B2 (en) | 2011-03-29 | 2013-10-22 | Intel Corporation | Method and apparatus to facilitate shared pointers in a heterogeneous platform |
| US20120254878A1 (en) | 2011-04-01 | 2012-10-04 | Lama Nachman | Mechanism for outsourcing context-aware application-related functionalities to a sensor hub |
| US9298670B2 (en) | 2012-06-14 | 2016-03-29 | International Business Machines Corporation | Verification of distributed symmetric multi-processing systems |
| US9135172B2 (en) | 2012-08-02 | 2015-09-15 | Qualcomm Incorporated | Cache data migration in a multicore processing system |
| US9373182B2 (en) | 2012-08-17 | 2016-06-21 | Intel Corporation | Memory sharing via a unified memory architecture |
| US9220586B2 (en) | 2012-09-28 | 2015-12-29 | Covidien Lp | Surgical implant and applicator |
| US20140351617A1 (en) | 2013-05-27 | 2014-11-27 | Motorola Mobility Llc | Method and Electronic Device for Bringing a Primary Processor Out of Sleep Mode |
-
2016
- 2016-04-14 DE DE102016106939.6A patent/DE102016106939B4/de active Active
- 2016-04-18 US US15/131,038 patent/US10417045B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050041510A1 (en) | 2003-08-19 | 2005-02-24 | Jean Khawand | Method and apparatus for providing interprocessor communications using shared memory |
| WO2007085522A2 (en) | 2006-01-26 | 2007-08-02 | International Business Machines Corporation | Apparatus and method for efficient communication of producer/consumer buffer status |
| US20120131285A1 (en) | 2010-11-16 | 2012-05-24 | Tibco Software Inc. | Locking and signaling for implementing messaging transports with shared memory |
| US20140006541A1 (en) | 2012-06-28 | 2014-01-02 | International Business Machines Corporation | Persistent messaging |
Also Published As
| Publication number | Publication date |
|---|---|
| US20160306748A1 (en) | 2016-10-20 |
| DE102016106939A1 (de) | 2016-10-20 |
| US10417045B2 (en) | 2019-09-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0762274B1 (de) | Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks | |
| DE102020102783A1 (de) | Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung | |
| DE202012013405U1 (de) | Cloud-zu Gerät-Nachrichtenübermittlung zur Anwendungsaktivierung und Meldung | |
| DE112017004663T5 (de) | Mehrfachverbinder-unterstützung für usb-c | |
| DE102013114256A1 (de) | Systeme und Verfahren zur Beibehaltung der Informationskohärenz | |
| DE102010025307A1 (de) | Verfahren und Vorrichtung zur Verringerung des Energieverbrauchs | |
| DE102014019531A1 (de) | Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug sowie Steuerungskomponente | |
| DE102013108899B4 (de) | Kontenmanagement für cloudbasierte Applikationen | |
| DE112011102822T5 (de) | Leistungsoptimierte Interrupt-Abgabe | |
| DE102013209643B4 (de) | Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens | |
| DE102017009171A1 (de) | Eingebettete rechenvorrichtung | |
| DE102015102135A1 (de) | Unterbrechbares Exklusivspeichern | |
| DE112007001922T5 (de) | System und Verfahren zur Begrenzung der Prozessorleistung | |
| DE112011105901T5 (de) | Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher | |
| DE102013216237A1 (de) | Verfahren und System zum automatischen Clock-Gating eines Taktgitters bei einer Taktquelle | |
| DE102016106939B4 (de) | Eingebettetes Rechengerät | |
| DE102019101114A1 (de) | System, Vorrichtung und Verfahren zum Bereitstellen einer Fabric für einen Beschleuniger | |
| DE102014002370A1 (de) | Anzeigen eines kritischen batteriestatus in mobilen einrichtungen | |
| DE102017124078A1 (de) | Ordinale modifikation der dienstgüte | |
| DE102016013290B4 (de) | Eingebettete Computervorrichtung | |
| DE112016005989T5 (de) | Zuverlässiges, ausserhalb der reihenfolge liegendes end-to-end-protokoll mit robustem fensterstatusüberlaufmanagement und einem mehrknotensystem durch verwenden desselben | |
| DE102008016180A1 (de) | Darlegen von Systemtopologie für die Ausführungsumgebung | |
| DE112013006292B4 (de) | Verwaltung von Performance-Policies basierend auf der Skalierbarkeit von Workloads | |
| DE202016107380U1 (de) | Systeme zum Speichern und Auslesen von Inhalten | |
| DE112016005816T5 (de) | Verfahren und Vorrichtung zum Bereitstellen von Energiezustandsinformationen mithilfe von Inband-Signalisierung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R082 | Change of representative |
Representative=s name: KLUNKER IP PATENTANWAELTE PARTG MBB, DE |
|
| R081 | Change of applicant/patentee |
Owner name: SUUNTO OY, FI Free format text: FORMER OWNER: SUUNTO OY, VANTAA, FI Owner name: AMER SPORTS DIGITAL SERVICES OY, FI Free format text: FORMER OWNER: SUUNTO OY, VANTAA, FI |
|
| R082 | Change of representative |
Representative=s name: KLUNKER IP PATENTANWAELTE PARTG MBB, DE |
|
| R081 | Change of applicant/patentee |
Owner name: SUUNTO OY, FI Free format text: FORMER OWNER: AMER SPORTS DIGITAL SERVICES OY, VANTAA, FI |
|
| R012 | Request for examination validly filed | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R020 | Patent grant now final |