-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der am 30. August 2011 eingereichten
koreanischen Patentanmeldung KR 10-2011-0087411 , deren Offenbarung hiermit durch Inbezugnahme in ihrer Gesamtheit mit aufgenommen wird.
-
Technisches Gebiet
-
Ausführungsformen der vorliegenden Erfindung beziehen auf eine Technologie zum Auswählen eines Beschleunigers, und insbesondere auf ein Ein-Chip-System zum Auswählen zwischen einem Hardwarebeschleuniger und einem Softwarebeschleuniger sowie ein Verfahren zum Betreiben derselben.
-
Diskussion der verwandten Technik
-
Datenverarbeitungssysteme, die Multimedia einschließlich Grafikdatenverarbeitung, Audio, Video, Animation, Spielen und Text unterstützen, enthalten verschiedene Arten von Beschleunigern wie z. B. einen Audio-Codec, einen Video-Codec, einen zweidimensionalen (2D) Beschleuniger und/oder einen dreidimensionalen (3D) Beschleuniger.
-
Diese Beschleuniger können in Hardware oder in Software implementiert sein. Ein Hardwarebeschleuniger verwendet zugehörige Hardware oder eine zugehörige Hardware-Vorrichtung zum Durchführen verschiedener Funktionen schneller als ein Hauptprozessor (CPU). In anderen Worten kann der Hardwarebeschleuniger das Verarbeiten von verschiedenen Funktionen auf hohe Geschwindigkeiten beschleunigen ohne die Last auf der CPU zu erhöhen. Jedoch benötigt der Hardwarebeschleuniger separate Hardware, welche die Herstellungskosten erhöht.
-
Ein Softwarebeschleuniger kann die Verarbeitung von Funktionen mit geringer Leistungsaufnahme und ohne separate Hardware zu erfordern, erhöhen. Jedoch kann der Softwarebeschleuniger die Betriebsgeschwindigkeit oder die Reaktionsgeschwindigkeit eines Datenverarbeitungssystems, das mit einer großen Last arbeitet, verringern.
-
KURZFASSUNG
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält ein Verfahren zum Betreiben eines Ein-Chip-Systems das Empfangen eines Beschleunigungs anforderungssignals, das bei Ausführung eines Anwendungsprogramms erzeugt wird, Vergleichen einer gegenwärtigen Auslastung eines Hauptprozessors (CPU) mit einem Schwellwert zum Erzeugen eines Vergleichssignals als Antwort auf den Empfang des Beschleunigungsanforderungssignals, und Umschalten zwischen heterogenen Beschleunigern zum Beschleunigen einer von dem Anwendungsprogramm ausgeführten Multimediafunktion als Antwort auf das Vergleichssignal.
-
Die heterogenen Beschleuniger können einen als eine Hardware-Vorrichtung implementierten Hardwarebeschleuniger und einen als einen Programmcode, der zum Ausführen durch die CPU konfiguriert ist, implementierten Softwarebeschleuniger enthalten, und der Softwarebeschleuniger kann von einem Speicher der CPU geladen und dann ausgeführt werden.
-
Das Vergleichen und Erzeugen können stattfinden, wenn der Standard-Beschleuniger für das Anwendungsprogramm der Hardwarebeschleuniger ist und der Hardwarebeschleuniger gegenwärtig arbeitet.
-
Alternativ kann das Vergleichen stattfinden, wenn der Standard-Beschleuniger für das Anwendungsprogramm der Softwarebeschleuniger ist.
-
Die gegenwärtige Auslastung kann eine Leerlaufzeit der CPU sein.
-
Alternativ kann die gegenwärtige Auslastung entweder eine Betriebsspannung der CPU oder eine Betriebsfrequenz der CPU sein.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält ein Verfahren zum Betreiben eines Ein-Chip-Systems: das Empfangen eines Beschleunigungsanforderungssignals, das beim Ausführen eines Anwendungsprogramms erzeugt wird; das Bestimmen, ob ein Standard-Beschleuniger zum Beschleunigen einer von dem Anwendungsprogramm ausgeführten Funktion ein Hardwarebeschleuniger oder ein als ein von einer CPU ausführbares Programm implementierter Softwarebeschleuniger ist, als Antwort auf das Beschleunigungsanforderungssignal; das Vergleichen einer gegenwärtigen Auslastung der CPU mit einem Schwellwert zum Erzeugen eines Vergleichssignals, wenn bestimmt wird, dass der Standard-Beschleuniger der Softwarebeschleuniger ist oder der Hardwarebeschleuniger ist, der gegenwärtige eine andere Funktion beschleunigt; und das Umschalten von dem Standard-Beschleuniger zu dem Nicht-Standard-Beschleuniger auf der Grundlage des Vergleichssignals.
-
Das Bestimmen kann durchgeführt werden auf der Grundlage von in einer Tabelle gespeicherter Beschleunigerinformation.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält ein Ein-Chip-System heterogene Beschleuniger und eine CPU, die konfiguriert ist zum Ausführen eines Beschleuniger-Steuermoduls, das ein Vergleichssignal erzeugt zum Schalten zwischen den heterogenen Beschleunigern zum Beschleunigen einer von einem Anwendungsprogramm ausgeführten Funktion.
-
Das Beschleuniger-Steuermodul kann eine gegenwärtige Auslastung der CPU mit einem Schwellwert zum Ausgeben des Vergleichssignals vergleichen. Die heterogenen Beschleuniger können einen als eine Hardwarevorrichtung implementierten Hardwarebeschleuniger und einen als einen Computerprogrammcode, der zum Ausführen durch die CPU konfiguriert ist, implementierten Softwarebeschleuniger enthalten. Der Softwarebeschleuniger kann von einem Speicher in die CPU geladen und dann ausgeführt werden.
-
Wenn der Hardwarebeschleuniger als ein Standard-Beschleuniger zum Beschleunigen der Funktion festgelegt ist und eine andere Funktion beschleunigt, kann das Beschleuniger-Steuermodul von dem Hardwarebeschleuniger zu dem Softwarebeschleuniger schalten, um die Funktion zu beschleunigen, auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine der gegenwärtigen Auslastung entsprechende Leerlaufzeit der CPU größer ist als der Schwellwert.
-
Wenn der Softwarebeschleuniger als der Standard-Beschleuniger zum Beschleunigen der Funktion festgelegt ist, kann das Beschleuniger-Steuermodul von dem Softwarebeschleuniger zu dem Hardwarebeschleuniger zum Beschleunigen der Funktion schalten, auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn die der gegenwärtigen Auslastung entspreche Leerlaufzeit der CPU geringer ist als der Schwellwert.
-
Wenn alternativ der Hardwarebeschleuniger als der Standard-Beschleuniger zum Beschleunigen der Funktion festgelegt ist und gegenwärtig eine andere Funktion beschleunigt, kann das Beschleuniger-Steuermodul von dem Hardwarebeschleuniger zu dem Softwarebeschleuniger zum Beschleunigen der Funktion schalten auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine der gegenwärtigen Auslastung entsprechende Betriebsfrequenz der CPU geringer ist als der Schwellwert.
-
Wenn alternativ der Softwarebeschleuniger als der Standard-Beschleuniger zum Beschleunigen der Funktion festgelegt ist, kann das Beschleuniger-Steuermodul von dem Softwarebeschleuniger zu dem Hardwarebeschleuniger zum Beschleunigen der Funktion schalten auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine der gegenwärtigen Auslastung entsprechende Betriebsfrequenz der CPU größer ist als der Schwellwert.
-
Die gegenwärtige Auslastung kann eine Leerlaufzeit der CPU oder kann eines von einer Betriebsspannung der CPU und einer Betriebsfrequenz der CPU sein.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält eine tragbare Vorrichtung einen nicht-flüchtigen Speicher, der konfiguriert ist zum Speichern von Multimediadaten, ein Display, heterogene Beschleuniger und eine CPU, die konfiguriert ist zum Ausführen eines Beschleuniger-Steuermoduls, das ein Vergleichssignal zum Schalten zwischen den heterogenen Beschleunigern erzeugt zum Beschleunigen der Verarbeitung von Multimedia, die von einem Anwendungsprogramm ausgeführt wird.
-
Das Beschleuniger-Steuermodul kann eine gegenwärtige Auslastung der CPU vergleichen mit einem Schwellwert zum Ausgeben des Vergleichssignals. Der ausgewählte Beschleuniger zeigt beschleunigte Multimediadaten durch das Display an. Die heterogenen Beschleuniger können einen als eine Hardware-Vorrichtung implementierten Hardwarebeschleuniger und einen als einen Computerprogrammcode, der in der CPU ausgeführt werden kann, implementierten Softwarebeschleuniger enthalten. Der Softwarebeschleuniger kann von einem Speicher in die CPU geladen und dann ausgeführt werden.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält ein Ein-Chip-System einen Hardwarebeschleuniger, einen Speicher, der konfiguriert ist zum Speichern eines Anwendungsprogramms, ein Beschleuniger-Steuermodul und einen Softwarebeschleuniger sowie eine CPU, die konfiguriert ist zum Steuern des Hardwarebeschleunigers und des Speichers und zum Ausführen des Anwendungsprogramms, des Beschleuniger-Steuermoduls und des Softwarebeschleunigers. Nach Empfang eines Beschleunigungsanforderungssignals, das von dem Anwendungsprogramm erzeugt wird, von dem Beschleunigungs-Steuermodul, bestimmt das Beschleunigungs-Steuermodul, ob ein Standard-Beschleuniger zum Beschleunigen einer von dem Anwendungsprogramm ausgeführten Funktion der Hardwarebeschleuniger oder der Softwarebeschleuniger ist. Das Beschleuniger-Steuermodul vergleicht eine gegenwärtige Auslastung der CPU mit einem Schwellwert zum Erzeugen eines Vergleichssignals, wenn bestimmt wird, dass der Standard-Beschleuniger der Softwarebeschleuniger oder der Hardwarebeschleuniger ist, der gegenwärtig eine andere Funktion beschleunigt, und schaltet von dem Standard-Beschleuniger zu einem Nicht-Standard-Beschleuniger gemäß dem Vergleichssignal.
-
Das Beschleuniger-Steuermodul kann den Standard-Beschleuniger bestimmen auf der Grundlage von Beschleuniger-Information über den Standard-Beschleuniger.
-
Das Beschleuniger-Steuermodul kann den Schwellwert einstellen auf der Grundlage von Information, die über eine Benutzereingabeschnittstelle eingegeben wird.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält ein Verfahren zum Betreiben eines Ein-Chip-Systems das Empfangen, bei einem Beschleuniger-Steuermodul, eines Beschleunigungsanforderungssignals, das bei der Ausführung eines Anwendungsprogramms erzeugt wird, das Lesen, bei dem Beschleuniger-Steuermodul, von Beschleuniger-Information aus einer Tabelle als Antwort auf das Beschleunigungsanforderungssignal und selektives Treiben durch das Beschleuniger-Steuermodul von einem von einem als Hardware-Vorrichtung implementierten Hardwarebeschleuniger oder einem als Computerprogrammcode implementierten Softwarebeschleuniger zum Beschleunigen einer von dem Anwendungsprogramm ausgeführten Funktion auf der Grundlage der Beschleuniger-Information. Die Beschleuniger-Information gibt an, welcher von dem Hardwarebeschleuniger und dem Softwarebeschleuniger eine kürzere Beschleunigungszeit aufweist.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts enthält ein Verfahren zum Betreiben eines Ein-Chip-Systems das Empfangen eines Änderungssignals, das Bestimmen, ob das Änderungssignal eine Anweisung zum Auswählen eines Standard-Beschleunigers, der ausgewählt wird auf der Grundlage der Leistungsaufnahme, oder eine Anweisung ist zum Auswählen eines Standard-Beschleunigers, der ausgewählt wird auf der Grundlage von Leistungsfähigkeit, wobei Bezug genommen wird auf in einer Tabelle gespeicherte Beschleuniger-Information auf Grundlage eines Ergebnisses der Bestimmung, und Treiben entweder eines Hardwarebeschleunigers oder eines Softwarebeschleunigers, der festgelegt ist als der Standard-Beschleuniger auf der Grundlage der Beschleuniger-Information, wobei der Hardwarebeschleuniger als Hardware-Vorrichtung implementiert ist und der Softwarebeschleuniger als ein von einer CPU ausführbarer Computerprogrammcode implementiert ist.
-
Das Verfahren kann weiter, wenn das Änderungssignal eine Anweisung zum Auswählen des auf der Grundlage der Leistungsaufnahme ausgewählten Standard-Beschleunigers ist, das Vergleichen einer gegenwärtigen Auslastung der CPU mit einem Schwellwert zum Erzeugen eines Vergleichssignals und das Umschalten von dem Standard-Beschleuniger zu einem Nicht-Standard-Beschleuniger auf der Grundlage des Vergleichssignals enthalten.
-
Ein Ein-Chip-System (SoC) gemäß einem Ausführungsbeispiel des erfinderischen Konzepts enthält einen Bus, eine mit dem Bus verbundene CPU, einen Hardwarebeschleuniger, der mit dem Bus verbunden ist und dafür konfiguriert ist, eine Funktion unter Verwendung von Hardware zu beschleunigen, sowie einen mit dem Bus verbundenen Speicher. Der Speicher enthält einen Softwarebeschleuniger und das Beschleunigersteuermodul. Der Softwarebeschleuniger ist konfiguriert zum Beschleunigen der gleichen Funktion unter Verwendung von Software. Das Beschleunigersteuermodul ist konfiguriert zum Auswählen von entweder dem Hardwarebeschleuniger oder dem Softwarebeschleuniger zum Beschleunigen der Funktion eines Anwendungsprogramms als Antwort auf eine Aufforderung zum Beschleunigen durch das Anwendungsprogramm. Das Beschleunigersteuermodul wählt den Hardwarebeschleuniger aus, wenn ein Standardbeschleuniger innerhalb des SoC auf den Hardwarebeschleuniger festgelegt ist und der Hardwarebeschleuniger gegenwärtig nicht arbeitet, und wählt ansonsten entweder den Hardwarebeschleuniger oder den Softwarebeschleuniger aus auf der Grundlage eines Vergleichs von einem Auslastungsparameter der CPU mit einem Schwellwert.
-
Bei einem Ausführungsbeispiel ist der Auslastungsparameter ein Umfang der Zeit, zu der die CPU im Leerlauf ist. Bei diesem Ausführungsbeispiel wählt das Beschleunigersteuermodul den Hardwarebeschleuniger aus, wenn der Umfang geringer ist als der Schwellwert und wählt ansonsten den Softwarebeschleuniger aus.
-
Bei einem Ausführungsbeispiel ist der Auslastungsparameter eine Betriebsfrequenz der CPU. Bei diesem Ausführungsbeispiel wählt die Beschleuniger-Steuereinheit den Hardwarebeschleuniger aus, wenn die Betriebsfrequenz größer ist als der Schwellwert, und wählt ansonsten den Softwarebeschleuniger aus.
-
Bei einem Ausführungsbeispiel ist der Auslastungsparameter eine Betriebsspannung der CPU. Bei diesem Ausführungsbeispiel wählt die Beschleuniger-Steuereinheit den Hardwarebeschleuniger aus, wenn die Betriebsspannung größer ist als der Schwellwert, und wählt ansonsten den Softwarebeschleuniger aus.
-
KURZE BESCHREIBUNG DER FIGUREN
-
Ausführungsformen des vorliegenden erfinderischen Konzepts werden anschaulicher durch Beschreiben von Ausführungsbeispielen davon im Detail mit Bezug auf die angehängten Figuren, in denen:
-
1 ein Blockdiagramm eines Datenverarbeitungssystems gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist;
-
2 ein Blockdiagramm zum Erklären der Vorgänge des in 1 dargestellten Datenverarbeitungssystems ist;
-
3 ein Konzeptdiagramm zum Erklären des Umschaltens zwischen einem Hardwarebeschleuniger und einem Softwarebeschleuniger gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist;
-
4 ein Flussdiagramm eines Verfahrens zum Auswählen eines Standard-Beschleunigers für ein Anwendungsprogramm auf der Grundlage von Leistungsaufnahme gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist;
-
5 ein Beispiel einer Tabelle mit Auswahlinformation eines Standard-Beschleunigers ist, der für ein Anwendungsprogramm gemäß dem in 4 dargestellten Verfahren festgelegt wird;
-
6 ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist;
-
7 ein Ablaufdiagramm eines Betriebsverfahren des in 1 dargestellten Datenverarbeitungssystems gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist;
-
8 ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist;
-
9 ein Ablaufdiagramm eines Verfahrens zum Auswählen eines Standard-Beschleunigers für ein Anwendungsprogramm auf der Grundlage von Leistungsfähigkeit gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist; und
-
10 ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts ist.
-
DETAILLIERTE BESCHREIBUNG
-
Das vorliegende erfinderische Konzept wird nun im Folgenden genauer mit Bezug auf die begleitenden Figuren beschrieben werden, in denen Ausführungsbeispiele des erfinderischen Konzepts gezeigt sind. Das erfinderische Konzept kann jedoch in vielen verschiedenen Formen ausgebildet sein und sollte nicht als auf die hier ausgeführten Ausführungsbeispiele beschränkt ausgelegt werden. In den Figuren können die Größe und die relativen Größen von Schichten und Bereichen zum Zwecke der Klarheit übertrieben dargestellt sein. Gleiche Bezugszeichen beziehen sich durchgehend auf gleiche Elemente.
-
Es ist selbstverständlich, dass wenn ein Element als „verbunden mit einem anderen” oder „gekoppelt an ein anderes” Element bezeichnet wird, es direkt verbunden mit dem anderen Element oder gekoppelt an das andere Element sein kann oder dazwischen liegende Elemente vorhanden sein können. Wie hier verwendet ist die Singularform „ein/eine/einer” und „der/die/das” so gedacht, dass sie die Pluralformen auch mit einschließen, es sei denn der Kontext zeigt klar anderes an.
-
Ein hier verwendeter Beschleuniger kann irgendeiner von den unten beschriebenen Beschleunigern sein.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein Video-Codec, der als ein Hardwarebeschleuniger oder als ein Softwarebeschleuniger implementiert sein kann, eine Vorrichtung oder eine Software, die ein digitales Video komprimieren und/oder dekomprimieren kann.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein Audio-Codec, der als ein Softwarebeschleuniger implementiert sein kann, ein Computerprogramm, das einen Algorithmus zum Komprimieren und/oder Dekomprimieren von digitalen Audiodaten gemäß einem gegebenem Audiodateiformat oder einem Format für die kontinuierliche Übertragung von Audiodaten realisiert.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein Audio-Codec, der als ein Hardwarebeschleuniger implementiert sein kann, eine Vorrichtung, die analoge Audiosignale in digitale Signale kodieren kann und digitale Signale in analoge Audiosignale dekodieren kann.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein Download-Beschleuniger oder Download-Manager, der als ein Softwarebeschleuniger implementiert sein kann, bestimmte Software zum Downloaden.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet eine Graphikverarbeitungseinheit oder ein Graphik-Beschleuniger, die/der als ein Hardwarebeschleuniger implementiert sein kann, eine bestimmte Graphikabgabevorrichtung. Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein Beschleuniger oder eine Programmbibliothek, die als ein Softwarebeschleuniger implementiert sein kann, eine Programmbibliothek zum Speichern von einer Funktion oder von Programmen für die Graphikverarbeitungseinheit an.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein kryptographischer Beschleuniger, der als ein Hardwarebeschleuniger oder ein Softwarebeschleuniger implementiert sein kann, eine Vorrichtung oder eine Software, die das Entschlüsseln und/oder Verschlüsseln durchführen kann. Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts bezeichnet ein Web-Beschleuniger, der als ein Hardwarebeschleuniger implementiert sein kann, einen Proxy-Server, der schnell auf Webseiten zugreifen kann.
-
Ein MP3-Player oder ein MP4-Player kann als eine Hardware oder Software implementiert sein. Ein zweidimensionaler (2D) Beschleuniger oder ein dreidimensionaler (3D) Beschleuniger kann auch in Hardware oder in Software implementiert sein.
-
Abgesehen von den oben beschriebenen Beschleunigern können Beschleuniger, die das Verarbeiten oder die Anzeige von Multimediadaten beschleunigen können, als Hardware oder Software implementiert sein. Zusätzlich können Beispiele eines Beschleunigers auch einen Audio-Kodierer, einen Audio-Dekodierer, einen Video-Kodierer und einen Video-Dekodierer mit einschließen.
-
Bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts enthält ein Datenverarbeitungssystem heterogene Beschleuniger, z. B. zumindest einen Hardwarebeschleuniger und zumindest einen Softwarebeschleuniger, und schaltet zwischen den heterogenen Beschleunigern um auf der Grundlage eines Vergleichssignals, das ein Ergebnis des Vergleichens einer gegenwärtigen Auslastung einer CPU mit einer Referenzauslastung (z. B. einem Schwellwert) anzeigt. Zum Beispiel, wenn ein Softwarebeschleuniger gegenwärtig verwendet wird zum Verschlüsseln von Daten, kann das System umschalten auf das Verwenden eines Hardwarebeschleunigers zum Verschlüsseln in Abhängigkeit davon wie die gegenwärtige Auslastung sich zu dem Schwellwert verhält.
-
1 ist ein Blockdiagramm eines Datenverarbeitungssystems 1 gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Das Datenverarbeitungssystem 1 kann ein Mobiltelefon, ein Smartphone, ein Tablet-Personal-Computer, ein Persönlicher Digitaler Assistent (PDA), ein Enterprise Digital Assistant (EDA), eine Digitalkamera, eine Digitale Videokamera, ein tragbarer Multimedia-Player (PMP), eine persönliche Navigationsvorrichtung oder tragbare Navigationsvorrichtung (PND), eine Handspielkonsole, ein Handgerät, wie z. B. ein e-Book, ein Personal Computer usw., sein.
-
Das Datenverarbeitungssystem 1 enthält ein Ein-Chip-System (SoC) 10, einen Speicher 21 und ein Display 26. Das SoC 10, der Speicher 21 und das Display 26 können in oder auf einer Platine (PCB) für das System implementiert sein.
-
Das SoC 10 enthält eine CPU 12, einen Festwertspeicher (ROM) 14, einen Direktzugriffsspeicher 16, einen Hardwarebeschleuniger 18, eine Eingabe/Ausgabe(I/O)-Schnittstelle 20, einen Bus 22 und eine Display-Steuereinheit 24.
-
Die CPU 12 kann als ein Prozessor bezeichnet werden und kann Programme und/oder Daten, die in dem ROM 14 oder dem RAM 16 gespeichert sind, verarbeiten oder ausführen. Die CPU 12 kann die Programme und/oder Daten als Antwort auf ein von einem Taktsignalgenerator (nicht dargestellt) ausgegebenes Taktsignal verarbeiten oder ausführen.
-
Die CPU 12 kann implementiert sein als ein Mehrkernprozessor. Der Mehrkernprozessor ist ein einzelnes Rechenbauteil, das im Wesentlichen zwei oder mehrere unabhängige Prozessoren (die als Kerne bezeichnet werden) enthält, von denen jeder Lesen und Programmanweisungen ausführen kann. Der Mehrkernprozessor kann zu einer Zeit eine Mehrzahl von Beschleunigern treiben. Dementsprechend kann ein Datenverarbeitungssystem mit dem Mehrkernprozessor Mehrfachbeschleunigung durchführen.
-
Die Programme und/oder Daten, die in dem ROM 14 oder dem RAM 16 gespeichert sind, können in einen Speicher, z. B. einen Zwischenspeicher, der CPU 12 geladen werden.
-
Der ROM 14 kann permanente Programme und/oder Daten speichern. Der ROM 14 kann als ein löschbarer programmierbarer ROM (EPROM) oder ein elektrisch löschbarer programmierbarer ROM (EEPROM) implementiert sein.
-
Der RAM 16 kann temporär Programme, Daten oder Anweisungen speichern. Zum Beispiel können Programme und/oder Daten, die in dem Speicher 14 oder 21 gespeichert sind, temporär in dem RAM 16 gespeichert werden unter der Steuerung der CPU 12 oder eines in dem ROM 14 gespeicherten Boot-Codes. Der RAM 16 kann durch einen dynamischen RAM (DRAM) oder einen statischen RAM (SRAM) implementiert sein.
-
Der Hardwarebeschleuniger 18 kann eine Hardware-Vorrichtung oder ein Co-Prozessor sein, der die Leistungsfähigkeit des Verarbeitens von Multimedia (oder Multimediadaten) wie z. B. Text, Audio, Standbilder, Animationen, Video, 2D-Daten oder 3D-Daten verbessern kann.
-
Zum Zwecke der Klarheit der Beschreibung ist in 1 nur ein Hardwarebeschleuniger 18 dargestellt, aber das SoC 10 kann ein oder mehrere Hardwarebeschleuniger enthalten. Wenn zum Beispiel mehrere Hardwarebeschleuniger verfügbar sind, kann jedes Anwendungsprogramm von seinem eigenen Hardwarebeschleuniger oder von mehreren Verwendung machen.
-
Das SoC 10 und der Speicher 21 tauschen miteinander Daten über die I/O-Schnittstelle 20 aus. Der Speicher 21 kann Programme, Funktionen und/oder Multimediadaten speichern, die von der CPU 12 verarbeitet werden sollen. Der Speicher 21 kann durch einen nicht-flüchtigen Speicher implementiert sein. Der nicht-flüchtige Speicher kann ein Flash-Speicher oder ein resistiver Speicher sein. Bei einem Ausführungsbeispiel ist die I/O-Schnittstelle 20 als eine Speicher-Steuereinheit implementiert. Die Elemente 12, 14, 16, 18, 20 und 24 des SoC 10 können miteinander durch einen Bus 22 kommunizieren.
-
Die Display-Steuereinheit 24 kann den Betrieb des Displays 26 steuern und kann Multimediadaten anzeigen, die von einem in die CPU 12 geladenen Softwarebeschleuniger oder dem Hardwarebeschleuniger 18 beschleunigt (oder verarbeitet) wurden.
-
2 ist ein Blockdiagramm zum Erläutern des Betriebs des in 1 dargestellten Datenverarbeitungssystems 1. 3 ist ein Konzeptdiagramm zum Erklären des Umschaltens zwischen einem Hardwarebeschleuniger und einem Softwarebeschleuniger gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Bezugnehmend auf die 1 bis 3 steuert ein Betriebssystem (OS) der CPU 12 den Gesamtbetrieb der CPU 12. Wenn zum Beispiel ein Anwendungsprogramm (oder ein Multimedia-Player) 12-1 in einen Speicher der CPU 12 geladen und dann ausgeführt wird, erzeugt das Anwendungsprogramm 12-1 ein Beschleunigungsanforderungssignal ACC_REQ. Bei zumindest einem Ausführungsbeispiel wird das Anwendungsprogramm in den RAM 16 und dann in den Speicher der CPU 12 geladen, wenn das Anwendungsprogramm 12-1 von einem Benutzer ausgeführt oder ausgewählt wird.
-
Programme 12-1 bis 12-6 können von dem Speicher 14 oder 21 in den RAM 16 geladen werden. Ein Beschleuniger-Steuermodul (Beschleuniger-Steuercode) 12-2, der in den RAM 16 geladen wurde, wird in den Speicher der CPU 12 durch den Bus 22 geladen. Eine Tabelle 12-3, die in den RAM 16 geladen wurde, wird in den Speicher der CPU 12 geladen.
-
Als Antwort auf das Beschleunigungs-Anforderungssignal ACC_REQ bestimmt das Beschleuniger-Steuermodul 12-2, ob ein Standardbeschleuniger, der als Standard zum Beschleunigen einer von dem Anwendungsprogramm 12-1 ausgeführten Funktion (z. B. einer Funktion zum Verarbeiten von Multimediadaten, zum Verschlüsseln von Daten, zum Entschlüsseln von Daten, zum Erstellen von Grafiken, zum Beschleunigen von Web-Browsern usw.) der durch eine Hardwarevorrichtung implementierte Hardwarebeschleuniger oder ein als ein von der CPU 12 ausführbares Computerprogramm implementierter Softwarebeschleuniger ist. Bei einem Ausführungsbeispiel bestimmt das Beschleuniger-Steuermodul 12-2 den Standardbeschleuniger mit Bezug auf in der Tabelle 12-3 gespeicherter Beschleunigerinformation.
-
Wenn zum Beispiel der für das Anwendungsprogramm 12-1 festgelegte Standardbeschleuniger gleich der Hardwarebeschleuniger 18 ist, wird ein Hardwarebeschleunigertreiber 12-5, der in den RAM 16 geladen wurde, in die CPU 12 geladen auf der Grundlage einer Steuerung (oder eines Steuersignals) ACC_CTR des Beschleuniger-Steuermoduls 12-2. Der Hardwarebeschleuniger 18 arbeitet gemäß der Steuerung des Hardwarebeschleunigertreibers 12-5. Dementsprechend beschleunigt der Hardwarebeschleuniger 18 die von dem Anwendungsprogramm 12-2 angeforderte (oder ausgeführte) Funktion und überträgt die beschleunigten Daten (z. B. beschleunigten Multimediadaten) zu dem Display 26 durch die Displaysteuereinheit 24.
-
Wenn jedoch der Standardbeschleuniger für das Anwendungsprogramm 12-1 gleich der Softwarebeschleuniger ist, wird ein Softwarebeschleuniger 12-4, der in den RAM 16 geladen wurde, in die CPU 12 geladen auf der Grundlage einer Steuerung ACC_CTR des Beschleuniger-Steuermoduls 12-2. Der in die CPU 12 geladene Softwarebeschleuniger 12-4 wird ausgeführt oder getrieben auf der Grundlage einer Steuerung (oder eines Steuersignals) ACC_CTR des Beschleuniger-Steuermoduls 12-2. Dementsprechend beschleunigt der Softwarebeschleuniger 12-4 die von dem Anwendungsprogramm 12-1 angeforderte (oder ausgeführte) Funktion und überträgt die beschleunigten Daten zu dem Display 26 durch die Displaysteuereinheit 24.
-
4 ist ein Ablaufdiagramm eines Verfahrens zum Auswählen eines Standardbeschleunigers für ein Anwendungsprogramm auf der Grundlage einer Leistungsaufnahme gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. 5 zeigt ein Beispiel der Tabelle 12-3 mit Auswahlinformation eines Standardbeschleunigers, der festgelegt ist für ein Anwendungsprogramm gemäß dem in 4 dargestellten Verfahren.
-
Mit Bezugnahme auf die 4 und 5, wenn das Festlegen des Beschleunigers beginnt, misst (oder schätzt) das in die CPU 12 geladene Beschleunigersteuermodul 12-2 die aufgenommene Leistung Phw, wenn ein für ein erstes Anwendungsprogramm APP1 zugeordneter Hardwarebeschleuniger in Verfahrensschritt S10 ausgeführt wird. Das Beschleunigersteuermodul 12-2 misst (oder schätzt) außerdem die aufgenommene Leistung Psw, wenn ein für das erste Anwendungsprogramm APP1 zugeordneter Softwarebeschleuniger in Verfahrensschritt S20 ausgeführt wird. Bei dem in 4 dargestellten Ausführungsbeispiel wird der Verfahrensschritt S10 vor dem Verfahrensschritt 20 durchgeführt, aber der Verfahrensschritt S20 kann bei anderen Ausführungsbeispielen vor dem Verfahrensschritt S10 ausgeführt werden.
-
Die Leistungsaufnahme eines Hardwarebeschleunigers kann bestimmt werden anhand von Leistungsaufnahmeparametern der in dem Hardwarebeschleuniger verwendeten Hardware und anhand von dem Umfang der Zeit, während der der Hardwarebeschleuniger läuft. Wenn zum Beispiel eine Art eines Hardwarebeschleunigers 1 Watt pro Sekunde verbraucht und typischerweise eine Sekunde lang läuft beim Beschleunigen des ersten Anwendungsprogramms APP1, würde die geschätzte Leistungsaufnahme Phw gleich 1 Watt sein. Bei einem weiteren Ausführungsbeispiel enthält das Computersystem, bei dem der Beschleuniger betrieben wird, einen Sensor, der einen Betrag der von dem Computersystem während einer vorgegebenen Zeitspanne aufgenommenen Leistung erfasst. Wenn zum Beispiel ein Watt an Leistung während einer Zeitspanne von einer Sekunde aufgenommen wird ohne dass ein Beschleuniger läuft, und während einer anschließenden Zeitspanne von einer Sekunde eine Leistung von 1,5 Watt aufgenommen wird mit dem laufenden Beschleuniger, kann abgeleitet werden, dass der Beschleuniger für 0,5 Watte der Leistungsaufnahme verantwortlich ist. Das Beschleuniger-Steuermodul 12-2 kann konfiguriert sein zum Zugreifen auf von dem Sensor aufgezeichneten Daten zum Abschätzen der Leistungsaufnahme. Jedoch sind Ausführungsbeispiele des erfinderischen Konzepts nicht auf ein bestimmtes Verfahren zum Abschätzen der Leistungsaufnahme beschränkt.
-
Das Beschleunigersteuermodul 12-2 vergleicht die Leistungsaufnahme Phw des dem ersten Anwendungsprogramm APP1 zugeordneten Hardwarebeschleunigers mit der Leistungsaufnahme Psw des dem ersten Anwendungsprogramm APP1 zugeordneten Softwarebeschleunigers in Verfahrensschritt S30. Wenn zum Beispiel die Leistungsaufnahme Psw des Softwarebeschleunigers größer ist als die Leistungsaufnahme Phw des Hardwarebeschleunigers in Verfahrensschritt S30, wählt das Beschleunigersteuermodul 12-2 den Hardwarebeschleuniger, d. h. ACChw, für das erste Anwendungsprogramm APP1 als den Standardbeschleuniger, d. h. ACCdef_pow, in Verfahrensschritt S40 aus.
-
Wenn jedoch die Leistungsaufnahme Psw des Softwarebeschleunigers nicht größer ist als die Leistungsaufnahme Phw des Hardwarebeschleunigers in Verfahrensschritt S30, wählt das Beschleunigersteuermodul 12-2 den Softwarebeschleuniger, d. h. ACCsw, für das erste Anwendungsprogramm APP1 als den Standardbeschleuniger ACCdef_pow in Verfahrensschritt S50 aus.
-
In anderen Worten wählt das Beschleunigersteuermodul 12-2 von dem Softwarebeschleuniger und dem Hardwarebeschleuniger einen Beschleuniger als den Standardbeschleuniger für das erste Anwendungsprogramm APP1 aus, der weniger Leistung aufnimmt.
-
Das Beschleunigersteuermodul 12-2 speichert in der Tabelle 12-3 Information SI über den im Verfahrensschritt S40 oder S50 ausgewählten Beschleuniger in Verfahrensschritt S60.
-
Wenn das in 1 dargestellte SoC 10 „n” Anwendungsprogramme (wobei „n” eine natürliche Zahl ist), „n” Hardwarebeschleuniger und „n” Softwarebeschleuniger enthält, kann wie mit Bezug auf 4 beschrieben das Beschleunigersteuermodul 12-2 einen Standardbeschleuniger für jedes der „n” Anwendungsprogramme auswählen auf der Grundlage der Leistungsaufnahme und der Information SI über den ausgewählten Beschleuniger in der Tabelle 12-3.
-
Wie in 5 dargestellt wählt das Beschleunigersteuermodul 12-2 den Hardwarebeschleuniger ACChw als den Standardbeschleuniger für das erste Anwendungsprogramm APP1 aus und speichert die Beschleunigerinformation SI, z. B. 1, in der Tabelle 12-3.
-
Das Beschleunigersteuermodul 12-2 wählt den Hardwarebeschleuniger ACChw als einen Standardbeschleuniger für ein zweites Anwendungsprogramm APP2 und speichert Beschleunigerinformation SI, z. B. 1, in der Tabelle 12-3. Das Beschleunigersteuermodul 12-2 wählt den Softwarebeschleuniger ACCsw als einen Standardbeschleuniger für ein drittes Anwendungsprogramm APP3 und speichert Beschleunigerinformation SI, z. B. 0, in der Tabelle 12-3. Das Beschleunigersteuermodul 12-2 wählt den Softwarebeschleuniger ACCsw als einen Standardbeschleuniger für ein n-tes Anwendungsprogramm APPn aus und speichert Beschleunigerinformation SI, z. B. 0, in der Tabelle 12-3.
-
Die Tabelle 12-3, die die Beschleunigerinformation SI enthält, kann in dem ROM 14 oder in dem Speicher 21 gespeichert werden. Die in dem ROM 14 oder dem Speicher 21 gespeicherte Tabelle 12-3 kann in den RAM 16 jedes Mal geladen werden, wenn das SoC 10 gebootet oder ein bestimmtes Anwendungsprogramm ausgeführt wird, und dann in den Speicher der CPU 12 geladen werden, so dass von dem Beschleunigersteuermodul 12-2 auf die Tabelle 12-3 Bezug genommen werden kann.
-
6 ist ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems 1 gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Das in 6 dargestellte Betriebsverfahren bezieht sich auf das Umschalten von einem Standardbeschleuniger auf einen Nicht-Standardbeschleuniger auf der Grundlage der Leistungsfähigkeit jedes Beschleunigers in einem Zustand, in dem entweder ein Hardwarebeschleuniger oder ein Softwarebeschleuniger als ein Standardbeschleuniger auf der Grundlage von Leistungsaufnahme festgelegt wurde.
-
Wenn Bezugnehmend auf die 1, 2, 5 und 6 das erste Anwendungsprogramm APP1 (d. h. 12-1) ausgeführt wird, empfängt das Beschleunigersteuermodul 12-2 das von dem ersten Anwendungsprogramm 12-1 erzeugte Beschleunigeranforderungssignal ACC_REQ in Verfahrensschritt S110.
-
Das Beschleunigersteuermodul 12-2 liest die Beschleunigerinformation SI des ersten Anwendungsprogramms 12-1 aus der Tabelle 12-3 als Antwort auf das Beschleunigungsanforderungssignal ACC_REQ, und daher erfasst oder bestimmt das Beschleunigersteuermodul 12-2 den Standardbeschleuniger, der eine von dem ersten Anwendungsprogramm 12-1 ausgeführte Funktion beschleunigen kann, auf der Grundlage der Beschleunigerinformation SI.
-
Als Antwort auf das Beschleunigungsanforderungssignal ACC_REQ vergleicht das Beschleunigersteuermodul 12-2 eine gegenwärtige Auslastung (Arbeitsbelastung) der CPU 12 mit einer Referenzauslastung (Arbeitsbelastung) und erzeugt ein Vergleichssignal gemäß einem Vergleichsergebnis in Verfahrensschritt S112. Das Vergleichssignal kann verwendet werden als ein Signal (z. B. ACC_CTR) zum Umschalten zwischen heterogenen Beschleunigern (d. h. zwischen dem Hardwarebeschleuniger 18 und dem Softwarebeschleuniger 12-4).
-
Gemäß dem Vergleichssignal kann das Beschleunigersteuermodul 12-2 von dem als Standard für das erste Anwendungsprogramm 12-1 festgelegten Standardbeschleuniger (z. B. dem Hardwarebeschleuniger ACChw) zu einem Nicht-Standardbeschleuniger (z. B. dem Softwarebeschleuniger ACCsw) für. das erste Anwendungsprogramm 12-1 umschalten in Verfahrensschritt S114 und den Nicht-Standardbeschleuniger in Verfahrensschritt S116 treiben. Dementsprechend beschleunigt der Nicht-Standardbeschleuniger eine Funktion oder die Verarbeitung von Multimediadaten, die dem ersten Anwendungsprogramm 12-1 entspricht bzw. entsprechen.
-
Bei einem weiteren Ausführungsbeispiel empfängt das Beschleunigersteuermodul 12-2, wenn das dritte Anwendungsprogramm APP3 ausgeführt wird, ein von dem dritten Anwendungsprogramm APP3 erzeugtes Anforderungssignal in Verfahrensschritt S110.
-
Als Antwort auf das Beschleunigungsanforderungssignal liest das Beschleunigersteuermodul 12-2 die Beschleunigerinformation SI des dritten Anwendungsprogramms APP3 aus der Tabelle 12-3, und daher erfasst oder bestimmt das Beschleunigersteuermodul 12-2 den Standardbeschleuniger, der eine von dem dritten Anwendungsprogramm APP3 ausgeführte Funktion beschleunigen kann, auf der Grundlage der Beschleunigerinformation SI.
-
Als Antwort auf das Beschleunigungsanforderungssignal vergleicht das Beschleunigersteuermodul 12-2 eine gegenwärtige Auslastung (Arbeitsbelastung) der CPU 12 mit einer Referenzauslastung (Arbeitsbelastung) in Verfahrensschritt S112. Gemäß einem Vergleichsergebnis schaltet das Beschleunigersteuermodul 12-2 von dem als Standard für das dritte Anwendungsprogramm APP3 festgelegten Standardbeschleuniger (z. B. den Softwarebeschleuniger ACCsw) zu einem Nicht-Standardbeschleuniger (z. B. den Hardwarebeschleuniger ACChw) für das dritte Anwendungsprogramm APP3 in Verfahrensschritt S114 um und treibt den Nicht-Standardbeschleuniger in Verfahrensschritt S116. Dementsprechend beschleunigt der Nicht-Standardbeschleuniger die Funktion, die dem dritten Anwendungsprogramm APP3 entspricht. In anderen Worten vergleicht das Beschleunigersteuermodul 12-2 die Beschleuniger 18 und 12-4 miteinander hinsichtlich der Leistungsfähigkeit und schaltet zwischen den heterogenen Beschleunigern 18 und 12-4 um auf der Grundlage des Vergleichsergebnisses in Verfahrensschritt S114.
-
Die gegenwärtige Auslastung und die Referenzauslastung können eine Leerlaufzeit der CPU 12 sein oder können zumindest entweder die Betriebsspannung der CPU 12 und oder die Betriebsfrequenz der CPU 12 sein.
-
Das in 6 dargestellte Betriebsverfahren wird im Detail mit Bezug auf die 7 und 8 beschrieben werden. 7 ist ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems 1 gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Wie oben beschrieben ist der Standardbeschleuniger ACCdef der Beschleuniger, der bestimmt wurde auf der Grundlage eines Ergebnisses des Vergleichens von Leistungsaufnahme eines Hardwarebeschleunigers mit Leistungsaufnahme eines Softwarebeschleunigers.
-
Wenn bezugnehmend auf die 1, 2 und 7 in Verfahrensschritt S210 das Beschleunigersteuermodul 12-2 das von einem Anforderer, z. B. dem ersten Anwendungsprogramm 12-1, erzeugte Beschleunigungsanforderungssignal ACC_REQ empfängt, erfasst das Beschleunigersteuermodul 12-2 in Verfahrensschritt S212, ob der Standardbeschleuniger ACCdef zum Beschleunigen einer von dem ersten Anwendungsprogramm 12-1 ausgeführten Funktion ein Hardwarebeschleuniger ACChw (d. h. der Hardwarebeschleuniger 18) oder ein Softwarebeschleuniger ACCsw (d. h. der Softwarebeschleuniger 12-4) ist auf der Grundlage der in der Tabelle 12-3 gespeicherten Beschleunigerinformation SI.
-
Wenn der Standardbeschleuniger ACCdef der Hardwarebeschleuniger ACChw ist, bestimmt das Beschleunigersteuermodul 12-2 in Verfahrensschritt S214 einen gegenwärtigen Zustand des Hardwarebeschleunigers ACChw, das heißt, ob der Hardwarebeschleuniger ACChw andere Funktionen beschleunigt. Zum Beispiel könnte der Hardwarebeschleuniger ACChw gegenwärtig eine Funktion (z. B. eine Funktion zum Erstellen von Grafiken zum Web-Browsing usw.) für ein anderes Anwendungsprogramm beschleunigen.
-
Wenn der Hardwarebeschleuniger ACChw gegenwärtig nicht in Betrieb ist, treibt das Beschleunigersteuermodul 12-2 den Hardwarebeschleuniger ACChw unter Verwendung des Hardwarebeschleunigertreibers 12-5 in dem Verfahrensschritt S216. Wenn jedoch der Hardwarebeschleuniger ACChw gegenwärtig arbeitet, das heißt wenn der Hardwarebeschleuniger ACChw eine einem anderen Anwendungsprogramm entsprechende Funktion beschleunigt, bestimmt das Beschleunigersteuermodul 12-2 eine gegenwärtige Auslastung der CPU 12 und bestimmt, ob der Hardwarebeschleuniger ACChw oder der Softwarebeschleuniger ACCsw zu benützen ist gemäß dem Bestimmungsergebnis in dem Verfahrensschritt S218.
-
Bei einem Ausführungsbeispiel prüft oder berechnet das Beschleunigersteuermodul 12-2 eine gegenwärtige Leerlaufzeit Idle_cur, die der gegenwärtigen Auslastung der CPU 12 entspricht, in dem Verfahrensschritt S220. Wenn die Leerlaufzeit abnimmt, erhöht sich eine Auslastung der CPU 12.
-
Das Beschleunigersteuermodul 12-2 vergleicht die gegenwärtige Leerlaufzeit Idle_cur mit einem Schwellwert (oder Referenzwert) der Leerlaufzeit Idle_thr, der einer Referenzauslastung entspricht, in dem Verfahrensschritt S222.
-
Wenn die gegenwärtige Leerlaufzeit Idle_cur geringer ist als der Schwellwert der Leerlaufzeit Idle_thr, wartet das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S224 darauf, dass der Betrieb des Hardwarebeschleunigers ACChw abgeschlossen ist, und führt dann den Hardwarebeschleunigertreiber 12-5 aus. In anderen Worten wählt das Beschleunigersteuermodul 12-2 nicht den Softwarebeschleuniger ACCsw aus, sondern wählt den Hardwarebeschleuniger ACChw aus, um eine Überlastung der CPU12 zu vermeiden. Dementsprechend veranlasst der Hardwarebeschleunigertreiber 12-2 in dem Verfahrensschritt S216, dass der Hardwarebeschleuniger ACChw eine Funktion beschleunigt, die dem ersten Anwendungsprogramm 12-1 entspricht.
-
Wenn jedoch in dem Verfahrensschritt S222 die gegenwärtige Leerlaufzeit Idle_cur nicht geringer ist als der Schwellwert der Leerlaufspannung Idle_thr, bestimmt das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S226, ob der Softwarebeschleuniger ACCsw gegenwärtig arbeitet.
-
Wenn bestimmt wird, dass der Softwarebeschleuniger ACCsw gegenwärtig nicht arbeitet, startet das Beschleunigersteuermodul 12-2 den Softwarebeschleuniger ACCsw in dem Verfahrensschritt S228. Wenn jedoch bestimmt wird, dass der Softwarebeschleuniger ACCsw gegenwärtig arbeitet, das heißt wenn der Softwarebeschleuniger eine einem anderen Anwendungsprogramm entsprechende Funktion beschleunigt, wartet das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S230 darauf, dass der Softwarebeschleuniger ACCsw den gegenwärtigen Betrieb abschließt. Danach beschleunigt der Softwarebeschleuniger ACCsw in dem Verfahrensschritt S228 die dem ersten Anwendungsprogramm 12-1 entsprechende Funktion gemäß der Steuerung ACC_CTR des Beschleunigersteuermoduls 12-2.
-
8 ist ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems 1 gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Wie oben beschrieben ist der Standardbeschleuniger ACCdef der Beschleuniger, der ausgewählt wurde gemäß einem Ergebnis des Vergleichens der Leistungsaufnahme eines Hardwarebeschleunigers mit der Leistungsaufnahme eines Softwarebeschleunigers. Wenn bezugnehmend auf die 1, 2 und 8 Leistung (oder Spannung) an den SoC 10 geliefert wird, wird ein dynamisches Spannungs- und Frequenzskalierungs-Programm (DVFS-Programm) 12-6, das in dem Speicher 14 oder 21 gespeichert wurde, in den RAM 16 und dann in den Speicher der CPU 12 geladen. Das DVFS-Programm 12-6 kann eine Betriebspannung und eine Betriebsfrequenz der CPU 12 steuern oder bestimmen, wobei es eine Auslastung (oder Arbeitsbelastung) der CPU 12 berücksichtigt.
-
Wenn das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S310, das von einem Anforderer, z. B. dem ersten Anwendungsprogramm 12-1, erzeugte Beschleunigungsanforderungssignal ACC_REQ empfängt, erfasst oder bestimmt das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S312, ob der Standardbeschleuniger ACCdef für das erste Anwendungsprogramm 12-1 ein Hardwarebeschleuniger ACChw (d. h. der Hardwarebeschleuniger 18) oder ein Softwarebeschleuniger ACCsw (d. h. der Softwarebeschleuniger 12-4) ist, auf der Grundlage der in der Tabelle 12-3 gespeicherten Beschleunigerinformation SI.
-
Wenn der Standardbeschleuniger ACCdef der Hardwarebeschleuniger ACChw 18 ist, bestimmt das Beschleunigersteuermodul 12-2 einen gegenwärtigen Zustand des Hardwarebeschleunigers ACChw, das heißt, ob der Hardwarebeschleuniger ACChw 18 gegenwärtig arbeitet, in dem Verfahrensschritt S314.
-
Wenn der Hardwarebeschleuniger ACChw 18 gegenwärtig nicht arbeitet, treibt das Beschleunigersteuermodul 12-2 den Hardwarebeschleuniger ACChw 18 unter Verwendung des Hardwarebeschleunigertreibers 12-5 in dem Verfahrensschritt S316.
-
Wenn jedoch der Hardwarebeschleuniger ACChw 18 gegenwärtig arbeitet, das heißt, wenn der Hardwarebeschleuniger ACChw 18 eine einem anderen Anwendungsprogramm entsprechende Funktion verarbeitet, bestimmt das Beschleunigersteuermodul 12-2, ob der Hardwarebeschleuniger ACChw oder der Softwarebeschleuniger ACCsw zu benutzen ist, auf der Grundlage eines Ergebnisses des Vergleichens einer gegenwärtigen Auslastung der CPU 12 mit einer Referenzauslastung in dem Verfahrensschritt S318.
-
Die Referenzauslastung kann vorbestimmt und vorher in dem Speicher 14 oder 21 abgespeichert sein. Zusätzlich kann das Beschleunigersteuermodul 12-2 die Referenzauslastung einstellen auf der Grundlage von Information, die über eine Benutzereingabeschnittstelle (nicht dargestellt) eingegeben wird, mit der das Beschleunigersteuermodul 12-2 durch den Bus 22 kommunizieren kann.
-
Bei einem Ausführungsbeispiel bestimmt das Beschleunigersteuermodul 12-2, ob das DVFS-Programm 12-6 ausgeführt wird, in dem Verfahrensschritt S320. Wenn bestimmt wird, dass das DVFS-Programm 12-6 ausgeführt wird, erhält das Beschleuniger-Steuermodul 12-2 Information über eine gegenwärtige Betriebsspannung der CPU 12 und Information über eine gegenwärtige Betriebsfrequenz der CPU 12 von dem DVFS-Programm 12-6 und prüft eine Auslastung der CPU 12.
-
Das Beschleunigersteuermodul 12-2 vergleicht in dem Verfahrensschritt S322 eine einer gegenwärtigen Auslastung der CPU 12 entsprechende Betriebsfrequenz Fre_cur mit einer einer Referenzauslastung entsprechenden Schwellwertfrequenz Fre_thr und gibt ein Vergleichssignal aus.
-
Wenn die Betriebsfrequenz Fre_cur in dem Verfahrensschritt S322 größer ist als die Schwellwertfrequenz Fre_thr, wartet das Beschleunigersteuermodul 12-2 darauf, dass der Hardwarebeschleuniger ACChw den Betrieb abschließt, als Antwort auf das Vergleichssignal in dem Verfahrensschritt S324, und führt dann den Hardwarebeschleunigertreiber 12-5 aus. Mit anderen Worten wählt das Beschleunigersteuermodul 12-2 nicht den Softwarebeschleuniger ACCsw aus, sondern wählt den Hardwarebeschleuniger ACChw aus, um eine Überlastung der CPU 12 zu verringern.
-
Dementsprechend treibt der Hardwarebeschleunigertreiber 12-5 in dem Verfahrensschritt S316 den Hardwarebeschleuniger ACChw zum Beschleunigen von dem ersten Anwendungsprogramm 12-1 entsprechender Multimedia.
-
Wenn jedoch in dem Verfahrensschritt S322 die Betriebsfrequenz Fre_cur nicht größer ist als die Schwellwertfrequenz Fre_thr, bestimmt das Beschleunigersteuermodul 12-2 als Antwort auf das Vergleichssignal einen gegenwärtigen Zustand des Softwarebeschleunigers ACCsw, das heißt, ob der Softwarebeschleuniger ACCsw gegenwärtig arbeitet, in dem Verfahrensschritt S326.
-
Wenn bestimmt wird, dass der Softwarebeschleuniger ACCsw derzeit nicht arbeitet, startet das Beschleunigersteuermodul 12-2 den Softwarebeschleuniger ACCsw oder führt ihn aus in Verfahrensschritt S328. Wenn jedoch bestimmt wird, dass der Softwarebeschleuniger ACCsw derzeit arbeitet, das heißt, wenn der Softwarebeschleuniger ACCsw einem anderen Anwendungsprogramm entsprechende Multimedia verarbeitet, wartet das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S330 darauf, dass der Softwarebeschleuniger ACCsw den gegenwärtigen Betrieb abschließt. Danach beschleunigt der Softwarebeschleuniger ACCsw in dem Verfahrensschritt S328 die dem ersten Anwendungsprogramm 12-1 entsprechende Funktion gemäß der Steuerung (oder dem Steuersignal) ACC_ctr des Beschleunigersteuermoduls 12-2.
-
Wenn in dem Verfahrensschritt S320 bestimmt wird, dass das DVFS-Programm 12-6 nicht ausgeführt wird, prüft das Beschleunigersteuermodul 12-2 eine gegenwärtige Leerlaufzeit Idle_cur der CPU 12 in dem Verfahrensschritt S332. Wenn die Leerlaufzeit abnimmt, nimmt die Auslastung der CPU 12 zu.
-
Das Beschleunigersteuermodul 12-2 vergleicht die gegenwärtige Leerlaufzeit Idle_cur, die einer gegenwärtigen Auslastung der CPU 12 entspricht, mit einer der Referenzauslastung entsprechenden Schwellwertleerlaufzeit Idle_thr in dem Verfahrensschritt S334.
-
Wenn in dem Verfahrensschritt S334 die gegenwärtige Leerlaufzeit Idle_cur geringer ist als die Schwellwertleerlaufzeit Idle_thr, wartet das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S324 darauf, dass der Hardwarebeschleuniger ACChw den Betrieb abschließt, und führt dann den Hardwarebeschleunigertreiber 12-5 aus. Dementsprechend startet oder treibt der Hardwarebeschleunigertreiber 12-5 den Hardwarebeschleuniger ACChw in dem Verfahrensschritt S316 zum Beschleunigen der dem ersten Anwendungsprogramm 12-1 entsprechenden Funktion.
-
Wenn jedoch in dem Verfahrensschritt S334 die gegenwärtige Leerlaufzeit Idle_cur nicht geringer ist als die Schwellwertleerlaufzeit Idle_thr, bestimmt das Beschleunigersteuermodul 12-2, ob der Softwarebeschleuniger ACCsw gegenwärtig in Betrieb ist in dem Verfahrensschritt S326.
-
Wenn bestimmt wird, dass der Softwarebeschleuniger ACCsw gegenwärtig nicht in Betrieb ist, startet das Beschleunigersteuermodul 12-2 den Softwarebeschleuniger ACCsw oder führt ihn aus in dem Verfahrensschritt S328. Wenn jedoch bestimmt wird, dass der Softwarebeschleuniger ACCsw gegenwärtig arbeitet, das heißt wenn der Softwarebeschleuniger ACCsw eine einem anderen Anwendungsprogramm entsprechende Funktion verarbeitet, wartet das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S330 darauf, dass der Softwarebeschleuniger ACCsw den gegenwärtigen Betrieb abschließt. Danach wird der Softwarebeschleuniger ACCsw in dem Verfahrensschritt S328 gemäß der Steuerung ACC_CTR des Beschleunigersteuermoduls 12-2 gestartet zum Beschleunigen der dem ersten Anwendungsprogramm 12-1 entsprechenden Funktion.
-
Wie oben beschrieben kann das Beschleunigersteuermodul 12-2 einen Standardbeschleuniger, der für jedes Anwendungsprogramm auf der Grundlage von Leistungsaufnahme festgelegt wurde, zwischen heterogenen Beschleunigern dynamisch und/oder in Echtzeit umschalten auf der Grundlage eines gegenwärtigen Zustands des Standardbeschleunigers und einer gegenwärtigen Auslastung der CPU 12.
-
In anderen Worten kann das Beschleunigersteuermodul 12-2 einen von heterogenen Beschleunigern als einen Standardbeschleuniger auswählen auf der Grundlage von Leistungsaufnahme als einen Faktor, der die Qualität des Datenverarbeitungssystems 1 oder des SoC 10 bestimmt, dann die Leistungsfähigkeit des Standardbeschleunigers mit der Leistungsfähigkeit eines Nicht-Standardbeschleunigers vergleichen und dann von dem Standardbeschleuniger auf den Nicht-Standardbeschleuniger umschalten oder wechseln gemäß einem Vergleichsergebnis.
-
Wenn zum Beispiel ein MP3-Player und ein Video-Player während einer gegebenen Zeit arbeiten, kann Multi-Beschleunigung durchgeführt werden, das heißt ein MP3-Dekodierer-Beschleuniger für den MP3-Player und ein anderer MP3-Dekodierer-Beschleuniger für das Abspielen von Audio bei der Ausführung des Video-Players können simultan getrieben werden.
-
9 ist ein Ablaufdiagramm eines Verfahrens zum Auswählen eines Standardbeschleunigers für ein Anwendungsprogramm auf der Grundlage von Leistungsfähigkeit gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Bei dem in 9 dargestellten Verfahren wird ein Standardbeschleuniger auf der Grundlage eines Ergebnisses des Vergleichens von Leistungsfähigkeit eines Hardwarebeschleunigers mit Leistungsfähigkeit eines Softwarebeschleunigers bestimmt.
-
Wenn bezugnehmend auf die 1, 2 und 9 das Festlegen eines Beschleunigers beginnt, misst (oder schätzt) das in die CPU 12 geladene Steuermodul 12-2 in dem Verfahrensschritt S410 eine Beschleunigungszeit Thw, die ein einem Anwendungsprogramm zugeordneter Hardwarebeschleuniger ACChw zum Ausführen von Beschleunigung benötigt.
-
Außerdem misst (oder schätzt) das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S420 eine Beschleunigungszeit Tsw, die ein dem Anwendungsprogramm zugeordneter Softwarebeschleuniger ACCsw zum Ausführen der Beschleunigung benötigt. Bei dem in 9 dargestellten Ausführungsbeispiel wird der Verfahrensschritt S410 vor dem Verfahrensschritt S420 durchgeführt, aber der Verfahrensschritt S420 kann bei anderen Ausführungsbeispielen vor dem Verfahrensschritt S410 ausgeführt werden.
-
Wenn zum Beispiel ein Softwarebeschleuniger ACCsw zuvor eine Sekunde und dann zwei Sekunden zum Beschleunigen des Erstellens von zwei verschiedenen Bildern benötigte, könnte die Beschleunigungszeit Tsw auf 1,5 Sekunden geschätzt werden. Das Computersystem, in dem die Beschleuniger betrieben werden, können Laufzeiten des Software- und/oder Hardwarebeschleunigers für jedes Anwendungsprogramm aufzeichnen. Das Beschleunigersteuermodul 12-2 kann konfiguriert sein zum Zugreifen auf diese historischen Daten zum Schätzen der Beschleunigungszeiten. Jedoch ist die Berechnung der Beschleunigungszeiten nicht darauf beschränkt, da verschiedene andere Verfahren verwendet werden können zum Messen oder Schätzen der Beschleunigungszeiten.
-
In dem Verfahrensschritt S430 vergleicht das Beschleunigersteuermodul 12-2 die Beschleunigungszeit Thw des Hardwarebeschleunigers ACChw mit der Beschleunigungszeit Tsw des Softwarebeschleunigers ACCsw. Wenn zum Beispiel die Beschleunigungszeit Thw des Hardwarebeschleunigers ACChw länger ist als die Beschleunigungszeit Tsw des Softwarebeschleunigers ACCsw, wählt das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S440 den Softwarebeschleuniger ACCsw für das Anwendungsprogramm als einen Standardbeschleuniger ACCdef_perf aus.
-
Wenn jedoch die Beschleunigungszeit Thw des Hardwarebeschleunigers ACChw nicht länger ist als die Beschleunigungszeit Tsw des Softwarebeschleunigers ACCsw, wählt das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S420 den Hardwarebeschleuniger ACChw für das Anwendungsprogramm als einen Standardbeschleuniger ACCdef_perf aus. In anderen Worten wählt das Beschleunigersteuermodul 12-2 als einen Standardbeschleuniger für ein Anwendungsprogramm einen Beschleuniger mit einer kürzeren Beschleunigungszeit von einem Softwarebeschleuniger und einem Hardwarebeschleuniger aus.
-
Das Beschleunigersteuermodul 12-2 speichert in dem Verfahrensschritt 460 Information über den in Verfahrensschritt S440 oder S450 ausgewählten Beschleuniger in einer Tabelle. Zum Beispiel kann die Tabelle die Tabelle 12-3 oder eine andere sein. Die Tabelle kann in dem Speicher 14 oder 21 gespeichert werden, dann in den RAM 16 geladen werden und dann in die CPU geladen werden.
-
Wenn zum Beispiel das in 1 dargestellte SoC 10 „n” (wobei „n” eine natürliche Zahl ist) Anwendungsprogramme, „n” Hardwarebeschleuniger und „n” Softwarebeschleuniger enthält, kann das Beschleunigersteuermodul 12-2 einen Standardbeschleuniger für jedes der „n” Anwendungsprogramme auswählen auf der Grundlage von Leistungsfähigkeit (z. B. einer Beschleunigungszeit) und Information über den ausgewählten Beschleuniger in der Tabelle speichern, welche die gleiche Tabelle oder eine andere Tabelle als Tabelle 12-3 ist.
-
Dementsprechend, selbst wenn ein Hardwarebeschleuniger als ein Standardbeschleuniger für das erstes Anwendungsprogramm APP1 festgelegt wurde auf der Grundlage von Leistungsaufnahme, kann der Standardbeschleuniger für das erste Anwendungsprogramm APP1 in einen Softwarebeschleuniger geändert werden auf der Grundlage von Leistungsfähigkeit.
-
10 ist ein Ablaufdiagramm eines Betriebsverfahrens des in 1 dargestellten Datenverarbeitungssystems 1 gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts. Gemäß den 1 bis 10 kann das Beschleunigersteuermodul 12-2 den Standardbeschleuniger, der auf der Grundlage der Leistungsaufnahme in 4 festgelegt wurde, oder den Standardbeschleuniger, der auf der Grundlage der Leistungsfähigkeit in 9 festgelegt wurde, gemäß einem Programm oder einem Anforderungssignal eines Benutzers auswählen.
-
Zum Beispiel empfängt das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S510 ein Änderungssignal ACC_fac. Das Änderungssignal ACC_fac kann ein über eine Benutzerschnittstelle eingegebenes Signal oder ein von der CPU 12 ausgegebenes Signal sein.
-
Das Beschleunigersteuermodul 12-2 bestimmt in dem Verfahrensschritt S520, ob ein Standardbeschleuniger festgelegt wurde auf der Grundlage der Leistungsaufnahme oder der Leistungsfähigkeit als Antwort auf das Änderungssignal ACC_fac.
-
Information darüber, ob der Standardbeschleuniger auf der Grundlage von Leistungsaufnahme oder der Leistungsfähigkeit festgelegt wurde, kann in dem Speicher 14 oder 21 gespeichert werden. Dementsprechend kann beim Booten des Datenverarbeitungssystems 1 oder beim Ausführen eines Anwendungsprogramms das Beschleunigersteuermodul 12-2 in dem Verfahrensschritt S520 unter Bezugnahme auf in dem Speicher 14 oder 21 gespeicherte Information bestimmen, ob der Standardbeschleuniger für das Anwendungsprogramm auf der Grundlage der Leistungsaufnahme oder der Leistungsfähigkeit festgelegt wurde.
-
Wenn zum Beispiel das Änderungssignal ACC_fac in Verfahrensschritt S520 eine Anweisung zum Auswählen des Standardbeschleunigers, der auf der Grundlage der Leistungsaufnahme festgelegt wurde, ist, wählt das Beschleunigersteuermodul 12-2 einen Standardbeschleuniger ACCdef_pow, der auf der Grundlage der Leistungsaufnahme ausgewählt wurde, unter Bezugnahme auf eine Tabelle.
-
Wenn jedoch das Änderungssignal in dem Verfahrensschritt S520 eine Anweisung zum Auswählen des Standardbeschleunigers ist, der auf der Grundlage der Leistungsfähigkeit festgelegt wurde, wählt das Beschleunigersteuermodul 12-2 einen Standardbeschleuniger ACCdef_terf, der auf der Grundlage der Leistungsfähigkeit festgelegt wurde, unter Bezugnahme auf die Tabelle.
-
Wie mit Bezugnahme auf 7 oder 8 beschrieben, kann von dem Standardbeschleuniger ACCdef_pow oder ACCdef_perf auf einen Nicht-Standardbeschleuniger umgeschaltet werden.
-
Gemäß einem Ausführungsbeispiel des vorliegenden erfinderischen Konzepts kann das Beschleunigersteuermodul 12-2 Verfahrensschritte durchführen wie z. B. i) das Auswählen des Standardbeschleunigers ACCdef_pow auf der Grundlage von Leistungsaufnahme, ii) das Auswählen des Standardbeschleunigers ACCdef_perf auf der Grundlage von Leistungsfähigkeit, iii) das Umschalten (oder Ändern) des Standardbeschleunigers ACCdef_pow, der auf der Grundlage der Leistungsaufnahme ausgewählt wurde, und iv) das Umschalten (oder Ändern) des Standardbeschleunigers ACCdef_perf, der auf der Grundlage von Leistungsfähigkeit ausgewählt wurde. Zum Beispiel kann das Modul 12-2 zwischen dem Verwenden eines Hardwarebeschleunigers und eines Softwarebeschleunigers umschalten gemäß der Leistungsfähigkeit des Hardwarebeschleunigers und der Leistungsfähigkeit des Softwarebeschleunigers, und das Modul 12-2 kann umschalten zwischen dem Verwenden eines Hardwarebeschleunigers und eines Softwarebeschleunigers gemäß der Leistungsaufnahme des Hardwarebeschleunigers und der Leistungsaufnahme des Softwarebeschleunigers.
-
Wenn die CPU 12 ein Mehrfachkernprozessor mit einer Mehrzahl von unabhängigen Kernen ist, kann ein Verfahren zum Auswählen zwischen einem Hardwarebeschleuniger und einem Softwarebeschleuniger für jeden der Kerne als einen Standardbeschleuniger bestimmt werden durch die Leistungsaufnahme oder die Leistungsfähigkeit jedes Kerns. Bei diesem Beispiel kann das Beschleunigersteuermodul 12-2 die oben beschriebenen vier Verfahren durchführen.
-
Wie oben beschrieben schaltet ein Verfahren und ein das Verfahren durchführendes SoC bei zumindest einem Ausführungsbeispiel des erfinderischen Konzepts zwischen heterogenen Beschleunigern um zum Beschleunigen von durch ein Anwendungsprogramm ausgeführter Multimedia, wobei ein Beschleunigersteuermodul verwendet wird. Das Umschalten wird ausgeführt auf der Grundlage von Leistungsaufnahme und/oder Leistungsfähigkeit in dem SoC mit den heterogenen Beschleunigern, wodurch die Leistungsaufnahme des SoC verringert wird und die Leistungsfähigkeit davon erhöht wird. Zusätzlich kann das das Verfahren durchführende SoC mehrere heterogene Beschleuniger zu einer Zeit treiben (Multi-Beschleunigungs-Treiben), wodurch die Beschleunigungsleistung erhöht wird.
-
Während das vorliegende erfinderische Konzept insbesondere mit Hinblick auf Ausführungsbeispiele davon gezeigt und beschrieben wurde, ist es für den Durchschnittsfachmann selbstverständlich, dass dabei verschiedene Änderungen in der Form und im Detail gemacht werden können ohne von der Idee und dem Umfang der Offenbarung abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-