Nothing Special   »   [go: up one dir, main page]

DE102012106830A1 - Datenverarbeitungssystem und Verfahren zum Schalten zwischen heterogenen Beschleunigern - Google Patents

Datenverarbeitungssystem und Verfahren zum Schalten zwischen heterogenen Beschleunigern Download PDF

Info

Publication number
DE102012106830A1
DE102012106830A1 DE102012106830A DE102012106830A DE102012106830A1 DE 102012106830 A1 DE102012106830 A1 DE 102012106830A1 DE 102012106830 A DE102012106830 A DE 102012106830A DE 102012106830 A DE102012106830 A DE 102012106830A DE 102012106830 A1 DE102012106830 A1 DE 102012106830A1
Authority
DE
Germany
Prior art keywords
accelerator
cpu
software
hardware
control module
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.)
Pending
Application number
DE102012106830A
Other languages
English (en)
Inventor
Boo-Jin Kim
Je Myoung Ko
Taek Kyun Shin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102012106830A1 publication Critical patent/DE102012106830A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Ein Verfahren zum Betreiben eines Ein-Chip-Systems (10) enthält das Empfangen (S110) eines Beschleunigungsanforderungssignals, das beim Ausführen eines Anwendungsprogramms erzeugt wird, das Vergleichen (S112) einer gegenwärtigen Auslastung eines Hauptprozessors (CPU) mit einem Schwellwert zum Erzeugen eines Vergleichssignals als Antwort auf den Empfang des Beschleunigungsanforderungssignals, und Durchführen (S114) von Umschalten zwischen heterogenen Beschleunigern zum Beschleunigen (S116) einer von dem Anwendungsprogramm ausgeführten Funktion als Antwort auf das Vergleichssignal.

Description

  • 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
    • KR 1020110087411 [0001]

Claims (26)

  1. Verfahren zum Betreiben eines Ein-Chip-Systems, wobei das Verfahren aufweist: Empfangen (S110; S210; S310) eines Beschleunigungsanforderungssignals (ACC_REQ), das bei Ausführung eines Anwendungsprogramms (12-1) erzeugt wird; Vergleichen (S112; S222; S322, S334) einer gegenwärtigen Auslastung eines Hauptprozessors (CPU) (12) mit einem Schwellwert (Idle_thr; Fre_thr) zum Erzeugen eines Vergleichssignals als Antwort auf den Empfang des Beschleunigungsanforderungssignals (ACC_REQ); und Durchführen (S114; S218; S318) von Umschalten zwischen heterogenen Beschleunigern (18, 12-4) zum Beschleunigen einer von dem Anwendungsprogramm (12-1) ausgeführten Funktion als Antwort auf das Vergleichssignal.
  2. Verfahren nach Anspruch 1, wobei die heterogenen Beschleuniger (18, 12-4) einen als eine Hardwarevorrichtung implementierten Hardwarebeschleuniger (18) und einen als einen Programmcode, der dazu konfiguriert ist, von der CPU (12) ausgeführt zu werden, implementierten Softwarebeschleuniger (12-4) umfassen, und wobei der Softwarebeschleuniger (12-4) von einem Speicher in die CPU (12) geladen und dann ausgeführt wird.
  3. Verfahren nach Anspruch 2, wobei das Vergleichen (S112) erfolgt, wenn ein Standardbeschleuniger für das Anwendungsprogramm (12-1) der Hardwarebeschleuniger (18) ist und der Hardwarebeschleuniger (18) derzeit arbeitet.
  4. Verfahren nach Anspruch 2, wobei das Vergleichen (S112) erfolgt, wenn der Standardbeschleuniger für das Anwendungsprogramm (12-1) der Softwarebeschleuniger (12-4) ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die gegenwärtige Auslastung eine Leerlaufzeit der CPU (12) ist.
  6. Verfahren nach einem der Ansprüche 1 bis 4, wobei die gegenwärtige Auslastung entweder eine Betriebsspannung der CPU (12) oder eine Betriebsfrequenz der CPU (12) ist.
  7. Verfahren zum Betreiben eines Ein-Chip-Systems, wobei das Verfahren aufweist: das Empfangen (S210; S310) eines beim Ausführen eines Anwendungsprogramms (12-1) erzeugten Beschleunigungsanforderungssignals (ACC_REQ); Bestimmen (S212; S312), ob ein Standardbeschleuniger zum Beschleunigen einer von dem Anwendungsprogramm (12-1) ausgeführten Funktion ein Hardwarebeschleuniger (18) oder ein Softwarebeschleuniger (12-4) ist, als Antwort auf das Beschleunigungsanforderungssignal (ACC_REQ), wobei der Softwarebeschleuniger (12-4) als ein Computerprogramm implementiert ist, das zum Ausführen durch einen Hauptprozessor (CPU) (12) konfiguriert ist; Vergleichen (S222; S322, S334) einer gegenwärtigen Auslastung der CPU (12) mit einem Schwellwert (Idle_thr; Fre_thr) zum Erzeugen eines Vergleichssignals, wenn bestimmt wird, dass der Standardbeschleuniger der Softwarebeschleuniger (12-4) oder der Hardwarebeschleuniger (18) ist, der gegenwärtig eine andere Funktion beschleunigt; und Umschalten (S218; S318) von dem Standardbeschleuniger auf einen Nicht-Standardbeschleuniger gemäß dem Vergleichssignal.
  8. Verfahren nach Anspruch 7, wobei das Bestimmen (S212; S312) auf der Grundlage von in einer Tabelle (12-3) gespeicherter Beschleunigerinformation durchgeführt wird.
  9. Ein-Chip-System (SoC), das aufweist: heterogene Beschleuniger (18, 12-4); und einen Hauptprozessor (CPU) (12), der konfiguriert ist, zum Ausführen eines Beschleunigersteuermoduls (12-2), das ein Vergleichssignal erzeugt für das Umschalten zwischen heterogenen Beschleunigern (18, 12-4) zur Beschleunigung einer von einem Anwendungsprogramm (12-1) ausgeführten Funktion, wobei das Beschleunigersteuermodul (12-2) eine gegenwärtige Auslastung der CPU (12) mit einem Schwellwert (Idle_thr; Fre_thr) vergleicht zum Ausgeben des Vergleichssignals, wobei die heterogenen Beschleuniger (18, 12-4) einen als eine Hardwarevorrichtung implementierten Hardwarebeschleuniger (18) und einen als einen Computerprogrammcode, der zum Ausführen durch die CPU (12) konfiguriert ist, implementierten Softwarebeschleuniger (12-4) enthält, und wobei der Softwarebeschleuniger (12-4) von einem Speicher in die CPU (12) geladen und dann ausgeführt wird.
  10. Ein-Chip-System nach Anspruch 9, wobei das Beschleunigersteuermodul (12-2), wenn der Hardwarebeschleuniger (18) als ein Standardbeschleuniger zum Beschleunigen der Funktion festgelegt ist und gegenwärtig eine andere Funktion beschleunigt, von dem Hardwarebeschleuniger (18) auf den Softwarebeschleuniger (124) zum Beschleunigen der Funktion umschaltet auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine Leerlaufzeit der CPU (12), die der gegenwärtigen Auslastung entspricht, größer als der Schwellwert (Idle_thr) ist.
  11. Ein-Chip-System nach Anspruch 9 oder 10, wobei das Beschleunigersteuermodul (12-2), wenn der Softwarebeschleuniger (124) als ein Standardbeschleuniger zum Beschleunigen der Funktion festgelegt ist, von dem Softwarebeschleuniger (12-4) auf den Hardwarebeschleuniger (18) zum Beschleunigen der Funktion umschaltet auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine Leerlaufzeit der CPU (12), die der gegenwärtigen Auslastung entspricht, geringer ist als der Schwellwert (Idle_thr).
  12. Ein-Chip-System nach Anspruch 9, wobei das Beschleunigersteuermodul (12-2), wenn der Hardwarebeschleuniger (18) als ein Standardbeschleuniger zum Beschleunigen der Funktion festgelegt ist und gegenwärtig eine andere Funktion beschleunigt, von dem Hardwarebeschleuniger (18) auf den Softwarebeschleuniger (12-4) zum Beschleunigen der Funktion umschaltet auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine Betriebsfrequenz der CPU (12), die der gegenwärtigen Auslastung entspricht, geringer ist als der Schwellwert (Fre_thr).
  13. Ein-Chip-System nach Anspruch 9 oder 12, wobei das Beschleunigersteuermodul (12-2), wenn der Softwarebeschleuniger (12-4) als ein Standardbeschleuniger zum Beschleunigen der Funktion festgelegt ist, von dem Softwarebeschleuniger (12-4) umschaltet auf den Hardwarebeschleuniger (18) zum Beschleunigen der Funktion auf der Grundlage des Vergleichssignals, das erzeugt wird, wenn eine Betriebsfrequenz der CPU (12), die der gegenwärtigen Auslastung entspricht, höher ist als der Schwellwert (Idle_thr; Fre_thr).
  14. Ein-Chip-System nach Anspruch 9, wobei die gegenwärtige Auslastung eine Leerlaufzeit der CPU (12) ist.
  15. Ein-Chip-System nach Anspruch 9, wobei jede der gegenwärtigen Auslastungen entweder eine Betriebsspannung der CPU (12) oder eine Betriebsfrequenz der CPU (12) ist.
  16. Tragbare Vorrichtung, die aufweist: einen nicht-flüchtigen Speicher, der konfiguriert ist zum Speichern von Multimediadaten; ein Display (26); heterogene Beschleuniger (18, 12-4); und einen Hauptprozessor (CPU) (12), der konfiguriert ist zum Ausführen eines Beschleunigersteuermoduls (12-2), das ein Vergleichssignal erzeugt zum Auswählen zwischen heterogenen Beschleunigern (18, 12-4) zum Beschleunigen des Verarbeitens von Multimediadaten, die von einem Anwendungsprogramm (12-1) ausgeführt werden, wobei das Beschleunigersteuermodul (12-2) eine gegenwärtige Auslastung der CPU (12) mit einem Schwellwert (Idle_thr; Fre_thr) vergleicht zum Ausgeben des Vergleichssignals, wobei der ausgewählte Beschleuniger (18, 12-4) beschleunigte Multimediadaten über das Display (26) anzeigt, wobei die heterogenen Beschleuniger (18, 12-4) einen als eine Hardwarevorrichtung implementierten Hardwarebeschleuniger (18) und einen als einen Computerprogrammcode, der dazu konfiguriert ist, von der CPU (12) ausgeführt zu werden, implementierten Softwarebeschleuniger (12-4) enthält, und wobei der Softwarebeschleuniger (12-4) von einem Speicher in die CPU (12) geladen und dann ausgeführt wird.
  17. Ein-Chip-System (SoC), das aufweist: einen Hardwarebeschleuniger (18); einen zum Speichern eines Anwendungsprogramms (12-1), eines Beschleunigersteuermoduls (12-2) und eines Softwarebeschleunigers (12-4) konfigurierten Speicher; und einen Hauptprozessor (CPU) (12), der konfiguriert ist zum Steuern des Hardwarebeschleunigers (18) und des Speichers sowie zum Ausführen des Anwendungsprogramms (12-1), des Beschleunigersteuermoduls (12-2) und des Softwarebeschleunigers (12-4), wobei das Beschleunigersteuermodul (12-2) nach Empfang eines von dem Anwendungsprogramm (12-1) erzeugten Beschleunigungsanfragesignals bestimmt, ob ein Standardbeschleuniger zum Beschleunigen einer von dem Anwendungsprogramm (12-1) ausgeführten Funktion der Hardwarebeschleuniger (18) oder der Softwarebeschleuniger (12-4) ist, als Antwort auf das Beschleunigungsanforderungssignal (ACC_REQ), wobei das Beschleunigersteuermodul (12-2) eine gegenwärtige Auslastung der CPU (12) mit einem Schwellwert (Idle_thr; Fre_thr) vergleicht zum Erzeugen eines Vergleichssignals, wenn bestimmt wird, dass der Standardbeschleuniger der Softwarebeschleuniger (12-4) oder der Hardwarebeschleuniger (18) ist, der gegenwärtig eine andere Funktion beschleunigt, und wobei das Beschleunigersteuermodul (12-2) von dem Standardbeschleuniger auf den Nicht-Standardbeschleuniger umschaltet gemäß dem Vergleichssignal.
  18. Ein-Chip-System nach Anspruch 17, wobei das Beschleunigersteuermodul (12-2) in dem Speicher gespeichert ist und den Standardbeschleuniger bestimmt auf der Grundlage von Beschleunigerinformation über den Standardbeschleuniger.
  19. Ein-Chip-System nach Anspruch 17 oder 18, wobei das Beschleunigersteuermodul (12-2) den Schwellwert (Idle_thr; Fre_thr) gemäß einer von einer Benutzereingabeschnittstelle eingegebenen Information einstellt.
  20. Verfahren zum Betreiben eines Ein-Chip-Systems, wobei das Verfahren aufweist: Empfangen eines Beschleunigungsanforderungssignals (ACC_REQ), das bei Ausführung eines Anwendungsprogramms (12-1) erzeugt wird, durch ein Beschleunigersteuermodul (12-2); Lesen von Beschleunigerinformation aus einer Tabelle (12-3) als Antwort auf das Beschleunigungsanforderungssignal (ACC_REQ) durch das Beschleunigersteuermodul (12-2); und selektives Treiben durch das Beschleunigersteuermodul (12-2) von entweder einem als eine Hardwarevorrichtung implementierten Hardwarebeschleuniger (18) oder einem als ein Computerprogrammcode implementierten Softwarebeschleuniger (12-4) zum Beschleunigen einer Funktion, die von dem Anwendungsprogramm (12-1) ausgeführt wird, auf der Grundlage der Beschleunigerinformation, wobei die Beschleunigerinformation anzeigt, welcher von dem Hardwarebeschleuniger (18) und dem Softwarebeschleuniger (12-4) eine kürzere Beschleunigungszeit hat.
  21. Verfahren zum Betreiben eines Ein-Chip-Systems, wobei das Verfahren aufweist: Empfangen eines Änderungssignals; Bestimmen, ob das Änderungssignal eine Anweisung ist zum Auswählen eines Standardbeschleunigers, der auf der Grundlage von Leistungsaufnahme ausgewählt ist, oder eine Anweisung ist zum Auswählen eines Standardbeschleunigers, der auf der Grundlage von Leistungsfähigkeit ausgewählt ist; Bezugnehmen auf in einer Tabelle (12-3) gespeicherte Beschleunigerinformation auf der Grundlage eines Ergebnisses der Bestimmung; und Treiben von entweder einem Hardwarebeschleuniger (18) oder einem Softwarebeschleuniger (12-4), der festgelegt ist als der Standardbeschleuniger, auf der Grundlage der Beschleunigerinformation, wobei der Hardwarebeschleuniger (18) als eine Hardwarevorrichtung implementiert ist und der Softwarebeschleuniger (12-4) als ein Computerprogrammcode implementiert ist, der von einem Hauptprozessor (CPU) (12) ausführbar ist.
  22. Verfahren nach Anspruch 21, das weiter aufweist: wenn das Änderungssignal eine Anweisung zum Auswählen des Standardbeschleunigers ist, der auf der Grundlage der Leistungsaufnahme ausgewählt ist, Vergleichen einer gegenwärtigen Auslastung der CPU (12) mit einem Schwellwert (Idle_thr; Fre_thr) zum Erzeugen eines Vergleichssignals; und Umschalten von dem Standardbeschleuniger zu einem Nicht-Standardbeschleuniger auf der Grundlage des Vergleichssignals.
  23. Ein-Chip-System (SoC), das aufweist: einen Bus (22); einen Hauptprozessor (CPU) (12), der mit dem Bus (22) verbunden ist; einen Hardwarebeschleuniger (18), der mit dem Bus (22) verbunden ist und dazu konfiguriert ist, eine Funktion unter Verwendung von Hardware zu beschleunigen; und einen Speicher, der mit dem Bus (22) verbunden ist und aufweist: einen Softwarebeschleuniger (12-4), der dazu konfiguriert ist, die gleiche Funktion unter Verwendung von Software zu beschleunigen; und ein Beschleunigersteuermodul (12-2), das dazu konfiguriert ist, entweder den Hardwarebeschleuniger (18) oder den Softwarebeschleuniger (12-4) auszuwählen zum Beschleunigen der Funktion für ein Anwendungsprogramm (12-1) als Antwort auf eine Anforderung zum Beschleunigen durch das Anwendungsprogramm (12-1), wobei das Beschleunigersteuermodul (12-2) den Hardwarebeschleuniger (18) auswählt, wenn ein Standardbeschleuniger innerhalb des Ein-Chip-Systems (10) festgelegt ist auf den Hardwarebeschleuniger (18) und der Hardwarebeschleuniger (18) derzeit nicht arbeitet, und ansonsten entweder den Hardwarebeschleuniger (18) oder den Softwarebeschleuniger (12-4) auswählt auf der Grundlage eines Vergleichs eines Auslastungsparameters der CPU (12) mit einem Schwellwert (Idle_thr; Fre_thr).
  24. Ein-Chip-System nach Anspruch 23, wobei der Auslastungsparameter ein Umfang der Zeit ist, während der die CPU (12) im Leerlauf ist, wobei das Beschleunigersteuermodul (12-2) den Hardwarebeschleuniger (18) auswählt, wenn der Umfang geringer ist als der Schwellwert (Idle_thr) und ansonsten den Softwarebeschleuniger (12-4) auswählt.
  25. Ein-Chip-System nach Anspruch 23, wobei der Auslastungsparameter eine Betriebsfrequenz der CPU (12) ist, wobei das Beschleunigersteuermodul (12-2) den Hardwarebeschleuniger (18) auswählt, wenn die Betriebsfrequenz größer ist als der Schwellwert (Fre_thr) und ansonsten den Softwarebeschleuniger (12-4) auswählt.
  26. Ein-Chip-System nach Anspruch 23, wobei der Auslastungsparameter eine Betriebsspannung der CPU (12) ist, wobei das Beschleunigersteuermodul (12-2) den Hardwarebeschleuniger (18) auswählt, wenn die Betriebsspannung größer ist als der Schwellwert und ansonsten den Softwarebeschleuniger (12-4) auswählt.
DE102012106830A 2011-08-30 2012-07-27 Datenverarbeitungssystem und Verfahren zum Schalten zwischen heterogenen Beschleunigern Pending DE102012106830A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110087411A KR101861742B1 (ko) 2011-08-30 2011-08-30 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
KR10-2011-0087411 2011-08-30

Publications (1)

Publication Number Publication Date
DE102012106830A1 true DE102012106830A1 (de) 2013-02-28

Family

ID=47665337

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012106830A Pending DE102012106830A1 (de) 2011-08-30 2012-07-27 Datenverarbeitungssystem und Verfahren zum Schalten zwischen heterogenen Beschleunigern

Country Status (5)

Country Link
US (1) US9223581B2 (de)
JP (1) JP6207818B2 (de)
KR (1) KR101861742B1 (de)
CN (1) CN103164215B (de)
DE (1) DE102012106830A1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014116206A1 (en) * 2013-01-23 2014-07-31 Empire Technology Development Llc Management of hardware accelerator configurations in a processor chip
US8782265B1 (en) 2013-03-14 2014-07-15 Dmitry Bokotey Network visualization system and method of using same
KR102114388B1 (ko) 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
CN104795072A (zh) * 2015-03-25 2015-07-22 无锡天脉聚源传媒科技有限公司 一种音频数据的编码方法及装置
US9792154B2 (en) * 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US20160378551A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive hardware acceleration based on runtime power efficiency determinations
KR102402672B1 (ko) * 2015-09-01 2022-05-26 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
CN105357258B (zh) 2015-09-28 2020-06-26 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
US9911417B2 (en) * 2016-04-01 2018-03-06 Tai-An Lu Internet of things system with voice-controlled functions and method for processing information of the same
CN107592287A (zh) * 2016-07-07 2018-01-16 深圳市中兴微电子技术有限公司 一种报文加速方法及装置
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10355945B2 (en) 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US10417012B2 (en) * 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
US10740152B2 (en) * 2016-12-06 2020-08-11 Intel Corporation Technologies for dynamic acceleration of general-purpose code using binary translation targeted to hardware accelerators with runtime execution offload
WO2018111224A1 (en) * 2016-12-12 2018-06-21 Hitachi, Ltd. System and method of dynamic allocation of hardware accelerator
KR102034660B1 (ko) * 2017-07-31 2019-10-21 서울대학교산학협력단 이종 시스템의 가속기 제어 방법 및 이를 수행하기 위한 이종 시스템
CN109426529B (zh) * 2017-08-16 2023-03-21 龙芯中科技术股份有限公司 基于x窗口系统图形绘制的方法、装置及终端
EP3707572B1 (de) * 2017-11-10 2023-08-23 Nvidia Corporation Systeme und verfahren für sichere und zuverlässige autonome fahrzeuge
CN111133447B (zh) 2018-02-18 2024-03-19 辉达公司 适于自主驾驶的对象检测和检测置信度的方法和系统
US10997433B2 (en) 2018-02-27 2021-05-04 Nvidia Corporation Real-time detection of lanes and boundaries by autonomous vehicles
WO2019178548A1 (en) 2018-03-15 2019-09-19 Nvidia Corporation Determining drivable free-space for autonomous vehicles
WO2019216797A1 (en) * 2018-05-08 2019-11-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and node for managing a request for hardware acceleration by means of an accelerator device
US11144357B2 (en) * 2018-05-25 2021-10-12 International Business Machines Corporation Selecting hardware accelerators based on score
US10892944B2 (en) 2018-11-29 2021-01-12 International Business Machines Corporation Selecting and using a cloud-based hardware accelerator
US11182916B2 (en) 2018-12-28 2021-11-23 Nvidia Corporation Distance to obstacle detection in autonomous machine applications
CN113811886B (zh) 2019-03-11 2024-03-19 辉达公司 自主机器应用中的路口检测和分类
WO2021042051A1 (en) 2019-08-31 2021-03-04 Nvidia Corporation Map creation and localization for autonomous driving applications
CN114185837A (zh) * 2020-09-15 2022-03-15 阿里巴巴集团控股有限公司 片上系统和调节电压和频率的方法
US11978266B2 (en) 2020-10-21 2024-05-07 Nvidia Corporation Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications
KR102559658B1 (ko) * 2020-12-16 2023-07-26 한국과학기술원 스케줄링 방법 및 장치
CN114860353A (zh) * 2022-05-31 2022-08-05 苏州浪潮智能科技有限公司 一种程序执行方法、系统、设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110087411A (ko) 2010-01-26 2011-08-03 한국원자력연구원 단결정 성장용 앰플 및 이를 포함하는 단결정 성장장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367337A (ja) 1991-06-11 1992-12-18 Raiden:Kk 鋼板コイルの口開き装置
JP4212676B2 (ja) * 1998-02-12 2009-01-21 富士ゼロックス株式会社 情報処理システムおよび情報処理方法
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
KR20000032335A (ko) 1998-11-13 2000-06-15 구자홍 휴대용 컴퓨터의 디스플레이 성능 향상방법
US6925641B1 (en) * 2000-02-04 2005-08-02 Xronix Communications, Inc. Real time DSP load management system
JP4367337B2 (ja) 2004-12-28 2009-11-18 セイコーエプソン株式会社 マルチメディア処理システム及びマルチメディア処理方法
JP2007328461A (ja) * 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
JP2009122925A (ja) 2007-11-14 2009-06-04 Toshiba Corp データ処理プログラム、データ処理方法およびデータ処理システム
US8055872B2 (en) * 2008-02-21 2011-11-08 Arm Limited Data processor with hardware accelerator, accelerator interface and shared memory management unit
US8432405B2 (en) 2008-06-26 2013-04-30 Microsoft Corporation Dynamically transitioning between hardware-accelerated and software rendering
CN101441564B (zh) * 2008-12-04 2011-07-20 浙江大学 为程序定制的可重构加速器实现方法
US8368702B2 (en) 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
US20110249022A1 (en) * 2010-04-08 2011-10-13 Rajesh Poornachandran Techniques for managing power use
US8839256B2 (en) * 2010-06-09 2014-09-16 International Business Machines Corporation Utilization of special purpose accelerators using general purpose processors
WO2012124125A1 (ja) * 2011-03-17 2012-09-20 富士通株式会社 システムおよびスケジューリング方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110087411A (ko) 2010-01-26 2011-08-03 한국원자력연구원 단결정 성장용 앰플 및 이를 포함하는 단결정 성장장치

Also Published As

Publication number Publication date
KR101861742B1 (ko) 2018-05-30
CN103164215B (zh) 2017-08-11
US20130061033A1 (en) 2013-03-07
JP6207818B2 (ja) 2017-10-04
JP2013050953A (ja) 2013-03-14
US9223581B2 (en) 2015-12-29
CN103164215A (zh) 2013-06-19
KR20130024155A (ko) 2013-03-08

Similar Documents

Publication Publication Date Title
DE102012106830A1 (de) Datenverarbeitungssystem und Verfahren zum Schalten zwischen heterogenen Beschleunigern
US20200342322A1 (en) Method and device for training data, storage medium, and electronic device
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
CN103218263B (zh) MapReduce参数的动态确定方法及装置
CA2885995C (en) A hybrid engine for central processing unit and graphics processor
DE112011101725T5 (de) Sub-Puffer-Objekte
DE102014003855A1 (de) QOS-basiertes binäres Übersetzungs- und Anwendungsstreaming
CN110308982B (zh) 一种共享内存复用方法及装置
DE102010001985A1 (de) Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren
DE102018109538A1 (de) Techniken zum umfassenden Synchronisieren einer Ausführung von Threads
CN111078323A (zh) 基于协程的数据处理方法、装置、计算机设备及存储介质
CN103279353A (zh) 一种应用优化策略确定方法、装置及系统
CN109684000B (zh) App数据显示方法、装置、设备及计算机可读存储介质
CN108898229B (zh) 用于构建机器学习建模过程的方法及系统
CN112269536A (zh) 存储软件系统调优方法、装置及计算机可读存储介质
CN113515382A (zh) 云资源的分配方法、装置、电子设备及程序产品
CN114943885A (zh) 一种基于训练任务的同步缓存加速方法及系统
CN113656717B (zh) 一种网页的控件渲染方法、装置、设备及存储介质
CN116483643A (zh) 一种gpu调试方法、装置、设备及存储介质
CN103631571A (zh) 一种进度条的控制方法和装置
CN114116220B (zh) 一种gpu共享控制方法、gpu共享控制装置及存储介质
CN111240829B (zh) 一种基于时间片的多核任务调度方法、装置、存储介质及电子设备
CN115756756A (zh) 基于gpu虚拟化技术的显存资源分配方法、装置和设备
CN115935909A (zh) 一种文件生成方法、装置及电子设备
CN112825197B (zh) Unity中群集动画快速渲染的方法、存储介质

Legal Events

Date Code Title Description
R012 Request for examination validly filed