DE102013104328A1 - Aufgabenzuteilung in großen und kleinen Kernen - Google Patents

Aufgabenzuteilung in großen und kleinen Kernen Download PDF

Info

Publication number
DE102013104328A1
DE102013104328A1 DE102013104328.3A DE102013104328A DE102013104328A1 DE 102013104328 A1 DE102013104328 A1 DE 102013104328A1 DE 102013104328 A DE102013104328 A DE 102013104328A DE 102013104328 A1 DE102013104328 A1 DE 102013104328A1
Authority
DE
Germany
Prior art keywords
task
core
cores
signature
appropriate
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.)
Granted
Application number
DE102013104328.3A
Other languages
English (en)
Other versions
DE102013104328B4 (de
Inventor
Mark Charles Davis
Daryl Cromer
Howard Locker
Scott Edwards Kelso
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.)
Lenovo PC International Ltd
Original Assignee
Lenovo Singapore Pte 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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Publication of DE102013104328A1 publication Critical patent/DE102013104328A1/de
Application granted granted Critical
Publication of DE102013104328B4 publication Critical patent/DE102013104328B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

Ein Aspekt stellt ein Verfahren bereit, umfassend: Identifizieren einer Aufgabe, die zuzuteilen ist zur Durchführung auf einem Informationsverarbeitungsgerät, das zwei oder mehr Kerne von unterschiedlicher Größe aufweist; Bestimmen eines geeigneten Zuteilens der Aufgabe zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; Ausrichten der Aufgabe an einen geeigneten Kern zur Durchführung basierend auf dem geeigneten vorbestimmten Zuteilen, und Durchführen der Aufgabe auf dem Kern. Andere Aspekte werden in den Ansprüchen beschrieben.

Description

  • Hintergrund
  • Konventionelle Mehrkernprozessoren umfassen eine Einzelkomponente oder einen Chip, wobei mehrfach zentrale Verarbeitungseinheiten oder Kerne zum Lesen und Durchführen von Programminstruktionen vorgesehen werden. Typische Mehrkernprozessoren haben Kerne, die in Bezug auf die Verarbeitungsleistung gleich sind.
  • Augenblicklich werden Fortschritte erzielt unter Berücksichtigen der Energieeffizienzanforderungen an batteriebetriebene mobile Geräte mit Bezug auf ein Bereitstellen von Mehrkern-Chips, die Kerne mit unterschiedlicher Größe zur Verfügung stellen. Als nicht begrenzendes Beispiel stellt der ARM CORTEXTM-A7 Prozessor sowohl eine hohe Leistungsfähigkeit als auch eine Leistungsersparnis bereit, zum Beispiel in Bezug auf eine verlängerte Batterielebensdauer. Das Ziel ist es, die Leistungsfähigkeit eines größeren Kerns, für zum Beispiel den ARM CORTEX-A15 MPCORETM Prozessor, mit der Energieeffizienz eines kleineren Kerns, für zum Beispiel den ARM CORTEXTM-A7 Prozessor, zu verbinden. Die Architektur des ARM CORTEXTM-A7 MPCORETM Prozessors und der Merkmalssatz werden mit Bezug auf den Cortex-A15 Prozessor mit einer Mikroarchitektur erhalten, die für ein Bereitstellen einer Energieeffizienz, unter Ermöglichen die zwei Prozessoren in einem Tandem zu betreiben, konfiguriert ist.
  • DETAILLIERTE ZUSAMMENFASSUNG
  • Zusammenfassend stellt ein Aspekt ein Verfahren bereit, umfassend: Identifizieren einer Aufgabe, die zur Durchführung auf einem Informationsverarbeitungsgerät zuzuteilen ist, das zwei oder mehr Kerne von unterschiedlicher Größe aufweist; Bestimmen eines geeigneten Zuteilens der Aufgabe zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; Adressieren der Aufgabe an einen geeigneten Kern zur Durchführung basierend auf dem geeigneten vorbestimmten Zuteilen; und Durchführen der Aufgabe auf dem geeigneten Kern.
  • Ein anderer Aspekt stellt ein Informationsverarbeitungsgerät bereit, umfassend: einen oder mehrere Prozessoren; und einen Speicher in Kommunikation mit dem einem oder mehreren Prozessoren; den Speicher, der Programminstruktionen speichert, die, wenn sie von dem einem oder mehreren Prozessoren durchgeführt werden: eine Aufgabe identifizieren, die zur Durchführung einem Informationsverarbeitungsgerät, das zwei oder mehr Kerne unterschiedlicher Größe aufweist, zuzuteilen ist; Bestimmen eines geeigneten Zuteilens der Aufgabe zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; Adressieren der Aufgabe auf einen geeigneten Kern zur Durchführung, basierend auf dem geeigneten vorbestimmten Zuteilen; und Durchführen die Aufgabe auf dem geeigneten Kern.
  • Ein weiterer Aspekt stellt ein Programmprodukt bereit, umfassend: ein Speichermedium, das einen Programm-Code aufweist, der darin einbettet ist, wobei der Programm-Code umfasst: einen Programm-Code, der konfiguriert ist, um eine Aufgabe zu identifizieren, die zur Durchführung auf einem Informationsverarbeitungsgerät zuzuteilen ist, das zwei oder mehr Kerne unterschiedlicher Größe aufweist; einen Programm-Code, der konfiguriert ist, um ein geeignetes Zuteilen der Aufgabe zu bestimmen zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; einen Programm-Code, der konfiguriert ist, um die Aufgabe auf einen geeigneten Kern zur Durchführung zu adressieren basierend auf dem geeigneten vorbestimmten Zuteilen; und einen Programm-Code, der konfiguriert ist, um die Aufgabe auf dem geeigneten Kern durchzuführen.
  • Das Vorhergehende ist eine Zusammenfassung und kann somit Vereinfachungen, Verallgemeinerungen und ausgelassene Details enthalten; konsequenterweise werden jene, die mit der Technik vertraut sind, verstehen, dass die Zusammenfassung nur darstellend ist und sie nicht beabsichtigt in irgend einer Weise begrenzend zu sein.
  • Zum besseren Verständnis der Ausführungsformen, zusammen mit anderen und weiteren Merkmalen und Vorteilen davon, wird auf die folgende Beschreibung im Zusammenhang mit den begleitenden Zeichnungen Bezug genommen. Der Rahmen der Erfindung wird in den anhängenden Ansprüchen aufgezeigt.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 zeigt ein Beispiel eines Informationsverarbeitungsgeräts.
  • 2 zeigt ein anderes Beispiel eines Informationsverarbeitungsgeräts.
  • 3 zeigt ein Beispiel eines Aufgabenzuteilens.
  • 4 zeigt ein Beispiel einer Festlegung einer Kernsignatur der Aufgaben.
  • 5(A–B) zeigt ein anderes Beispiel des Aufgabenzuteilens.
  • 6 zeigt ein anders Beispiel des Aufgabenzuteilens.
  • DETAILLIERTE BESCHREIBUNG
  • Es ist ohne weiteres verständlich, dass die Komponenten der Ausführungsformen, wie sie hierin allgemein beschrieben und in Figuren dargestellt werden, in einer breiten Variation unterschiedlicher Konfigurationen zusätzlich zu den beschriebenen beispielhaften Ausführungsformen angeordnet und entworfen werden können. Somit ist die nachfolgende detailliertere Beschreibung der beispielhaften Ausführungsformen, die in den Figuren repräsentiert werden, nicht vorgesehen, um den Rahmen der Ausführungsformen, wie sie beansprucht werden, zu begrenzen, sondern ist nur repräsentativ für die beispielhaften Ausführungsformen.
  • Eine Bezugnahme in dieser Beschreibung auf „eine Ausführungsform” oder „Ausführungsformen” (oder ähnliches) bedeutet, dass ein besonderes Merkmal, eine Struktur oder ein Kennzeichen, das in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform enthalten ist. Somit bezieht sich das Auftreten des Ausdrucks „in einer Ausführungsform” oder „in Ausführungsformen” oder ähnliches an unterschiedlichen Stellen dieser Beschreibung nicht notwendigerweise auf ein und dieselbe Ausführungsform.
  • Weiterhin können die beschriebenen Merkmale, Strukturen oder Kennzeichen in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden. In der folgenden Beschreibung wird eine Vielzahl spezifischer Details bereitgestellt, um ein sorgfältiges Verständnis für die Ausführungsformen zu vermitteln. Ein Fachmann der relevanten Technik wird jedoch erkennen, dass unterschiedliche Ausführungsformen ohne einen oder mehrere der spezifischen Details oder mit anderen Verfahren, Komponenten, Materialien usw. praktiziert werden können. Andererseits werden gut bekannte Strukturen, Materialien und Vorgänge nicht im Detail gezeigt oder beschrieben, um Verwirrung zu vermeiden.
  • Ein Erhöhen der Batterielebensdauer ist für den Nutzer von mobilen Geräten wichtig, die manchmal für verlängerte Zeitdauern mit Batterieleistung arbeiten. Prozessorkerne innerhalb von Systemen auf Chip-(SoC)Strukturen verbrauchen mehr Strom, wenn die Leistungsfähigkeit steigt. Dieses ist entweder aufgrund eines Anwachsens der Taktfrequenz und/oder zusätzlicher Logik, die eingesetzt wird, begründet. Beide Näherungen benötigen mehr Leistung, um das System zu betreiben.
  • Konventionelle Mehrkernprozessoren weisen die gleiche Leistungsfähigkeit, Frequenz und Leistung auf. Das Betriebssystem teilt Aufgaben jedem Kern gleichmäßig zu, und wendet ein ähnliches Leistungsmanagement auf jeden Kern an. Mit der Entwicklung von Chips, die Mehrfachkerne von unterschiedlichem Niveau der Leistungsfähigkeit auf einem gemeinsamen Bauteil aufweisen (Kerne von unterschiedlicher Größe), können die Kerne unterschiedlich verwendet werden. Da die kleineren Kerne eine geringere Leistung aufnehmen, aber auch eine geringere Leistungsfähigkeit aufweisen, wird die Batterielebensdauer ansteigen je mehr kleinere Kerne verwendet werden können (vorteilhaft gegenüber einem Verwenden von größeren Kernen), wenn das System größere Kerne abschalten kann, falls diese nicht benutzt werden, um die Batterie zu schonen. Jedoch können die Leistungsfähigkeit und selbst die Leistungseinsparungen vermindert werden, wenn die kleineren Kerne nicht geeignet eingesetzt werden.
  • Dementsprechend bestimmt eine Ausführungsform automatisch, wie die Aufgaben zur Durchführung auf kleinen und großen Kernen zuzuteilen sind, um die Verwendung kleinerer Kerne zu maximieren, wodurch ermöglicht wird, größere Kerne so oft wie möglich abzuschalten. Eine andere Ausführungsform stellt zum Verwalten des Aufgabenzuteilens ein Verwenden von Zeitcompileroptionen im Kontext mit großen und kleinen Kernen bereit. Eine andere Ausführungsform stellt zum Verwalten des Aufgabenzuteilens ein Verwenden von unterbrochenen Verarbeitungsverfahren im Kontext mit großen und kleinen Kernen bereit.
  • Die dargestellten beispielhaften Ausführungsformen können besser durch Bezug auf die Figuren verstanden werden. Die folgende Beschreibung ist nur im Sine eines Beispiels beabsichtigt und illustriert auf einfache Weise bestimmte beispielhafte Ausführungsformen.
  • Während unterschiedliche Schaltkreise, Schaltungen oder Komponenten verwendet werden können, zeigt 1 ein Blockdiagramm eines Beispiels eines Informationsverarbeitungsgeräts, Schaltkreise, Schaltungen und Komponenten. Das Beispiel, das in 1 gezeigt wird, kann einem Computersystem wie einem aus der THINKPAD-Serie der Personalcomputer, die von Lenovo (US) Inc. von Morrisville, NC, verkauft werden, oder anderen Geräten entsprechen. Wie es in der hierin enthaltenen Beschreibung erscheint, können Ausführungsformen andere Merkmale oder nur einige Merkmale des Beispiels, das in 1 dargestellt wird, einschließen.
  • Das Beispiel der 1 umfasst einen sogenanntes Chipsatz 110 (eine Gruppe von integrierten Schaltkreisen oder Chips, die zusammenarbeiten als Chipsätze) mit einer Architektur, die in Abhängigkeit vom Hersteller (zum Beispiel INTEL, AMD, ARM, usw.) variieren kann. Die Architektur des Chipsatzes 110 schließt einen Kern und eine Speichersteuergruppe 120 und einen Ein/Aus-Steuerungsnetzknoten 150 ein, der Informationen (zum Beispiel Daten, Signale, Kommandos, usw.) über eine Direktmanagement-Schnittstelle (DMI) 142 oder ein Verbindungssteuergerät 144 austauscht. In 1 ist die DMI 142 eine Chip-zu-Chip-Schnittstelle (die manchmal auch als eine Verbindung einer „Northbridge” und einer „Southbridge” bezeichnet wird). Der Kern und die Speichersteuergruppe 120 umfassen einen oder mehrere Prozessoren 122 (zum Beispiel, einzeln oder als Mehrkern) und einen Speichersteuernetzknoten 126, der Informationen über einen Frontseiten-Bus (FSB) 124 austauscht; es ist zu beachten, dass diese Komponenten der Gruppe 120 in einen Chip integriert sein können, welcher die konventionelle „Northbridge”-artige Architektur ersetzt.
  • In 1 ist der Speichersteuernetzknoten 126 über Schnittstellen mit dem Speicher 140 verbunden (zum Beispiel, um eine Unterstützung für eine Art RAM bereitzustellen, die als „Systemspeicher” oder „Speicher” bezeichnet werden kann). Der Speichersteuernetzknoten 126 umfasst weiterhin eine LVDS-Schnittstelle 132 für ein Anzeigegerät 192 (zum Beispiel ein CRT, ein Flachbildschirm, ein Touchscreen und so weiter). Ein Block 138 schließt einige Technologien ein, die über LVDS-Schnittstelle 132 unterstützt werden können (zum Beispiel serielles digitales Video, HDMI/DVI, Anzeigenport). Der Speichersteuernetzknoten 126 schließt auch eine PCI-Express-Schnittstelle (PCI-E) 134 ein, die diskrete Graphiken 136 unterstützen kann.
  • In 1 umfasst das Ein/Aus-Netzknotensteuergerät 150 eine SATA-Schnittstelle 151 (zum Beispiel für HDDs, SDDs, 180 und so weiter), eine PCI-E-Schnittstelle 152 (zum Beispiel für drahtlose Verbindungen 182), eine USB-Schnittstelle 153 (zum Beispiel für Geräte 184 wie einen Digitalisierer, einer Tastatur, einer Maus, Kameras, Telefonen, Speicher oder andere damit verbundene Geräte und so weiter), eine Netzwerkschnittstelle 154 (zum Beispiel LAN), eine GPIO-Schnittstelle 155, eine LPC-Schnittstelle 170 (für ASICs 171, eine TPM 172, einen Super-Ein/Aus-Anschluss 173, einen Firmenwaren-Netzknoten 174, eine BIOS-Stütze 175 sowie unterschiedliche Arten von Speichern 176 wie zum Beispiel ROM 177, Flash 178 und NVRAM 179), eine Leistungsmanagementschnittstelle 161, eine Taktgeneratorschnittstelle 162, eine Audioschnittstelle 163 (zum Beispiel für Lautsprecher 194), eine TCO-Schnittstelle 164, einen Systemmanagement-Bus-Schnittstelle 165 und einen SPI-Flash 166, der einen BIOS 168 und einen Boot-Code 190 einschließen kann. Das Ein/Aus-Netzknotensteuergerät 150 kann eine Gigabit Ethernet Stütze einschließen.
  • Sobald das System eingeschaltet ist, kann es konfiguriert sein, um einen Boot-Code 190 für den BIOS 168 auszuführen, wie er innerhalb des SPI-Flash 166 gespeichert ist, und danach kann es Daten verarbeiten unter der Steuerung von einem oder zwei Betriebssystemen und einer Software-Anwendung (zum Beispiel in dem Systemspeicher 140 gespeichert). Ein Betriebssystem kann in irgendeiner Varietät von Standorten gespeichert sein und auf das zum Beispiel gemäß der Instruktionen des BIOS 168 zugegriffen werden kann. Wie hierin beschrieben, kann ein Gerät weniger oder mehr Merkmale, als sie in 1 gezeigt werden, einschließen.
  • Zum Beispiel, unter Bezugnahme auf 2, mit Bezug auf ein batteriebetriebenes Gerät wie ein Smartphone und/oder eine Tabletschaltung 200, umfasst ein Beispiel einen ARM-basierten Systementwurf (System auf einem Chip) mit Software und Prozessoren in einem Chip 210. Interne und ähnliche Busse sind abhängig von unterschiedlichen Händlern, aber im Wesentlichen können alle peripheren Geräte (220) an dem einzigen Chip 210 angeschlossen sein. Im Gegensatz zu der Schaltung, die in 1 gezeigt wird, kombiniert die Tablet-Schaltung 200 den Prozessor, die Speichersteuerung und den Ein/Aus-Steuerungsknoten alle zusammen in einem einzigen Chip 210. Somit benutzen ARM-basierende Systeme 200 nicht typischerweise die SATA oder PCI oder LPC. Gemeinsame Schnittstellen zum Beispiel schließen eine SDIO und eine I2C ein. Es gibt Leistungsmanagement-Chip(s) 320, die eine Leistung verwalten, die zum Beispiel über eine aufladbare Batterie 240 versorgt wird, welche durch eine Verbindung zu einer Leistungsquelle (nicht gezeigt) aufgeladen werden kann, und mindestens in einem Design, wird ein einzelner Chip, so wie 210, verwendet, um BIOS-artige Funktionalitäten und einen DRAM-Speicher zu versorgen.
  • Jedes mobile Gerät, wie die ARM-basierenden Systeme 200, kann typischerweise einen oder mehrere WLAN-Transceiver 250 und einen WLAN-Transceiver 260 zum Verbinden mit unterschiedlichen Netzwerken einschließen, wie mit Telekommunikations-Netzwerken und mit drahtlosen Basisstationen. In ähnlicher Weise wird ein ARM-basierendes System 200 einen Touchscreen 270 zur Dateneingabe und zum Anzeigen einschließen. Die ARM-basierenden Systeme 200 umfassen typischerweise unterschiedliche Speichergeräte, zum Beispiel Flash-Speicher 280 und SDRAM 290.
  • Bezugnehmend auf 3, kann eine Ausführungsform ein vorbestimmtes Lernen verwenden, um zu bestimmen, welche Aufgaben am besten in jedem Kern bearbeitet werden können. Zum Beispiel kann eine Ausführungsform lernen, welche Anwendungen am geeignetsten auf einem kleinen Kern ausgeführt werden. Eine Ausführungsform kann mit dem Lernprozess bei 110 durch Starten „neue” Aufgaben beginnen, das heißt, eine Aufgabe (Anwendungen oder Prozesse), die keine Durchführungserfahrung aufweist, um ein Lernen in den größeren Kernen wie in einem Mechanismus, um eine akzeptable Leistungsfähigkeit zu sichern, zu erleichtern. Alternativ kann eine Ausführungsform diese konservative Näherung in einigen Situationen vermeiden, zum Beispiel, wenn zusammenfassende Zeit- oder Programmierungsoptionen angewandt werden, wie es vorher hierin beschrieben wurde.
  • Eine Ausführungsform kann dann eine oder mehrere Parameter verfolgen, wenn die Aufgabe auf einem dickeren Kern 120 durchgeführt wird, sowie wenn einer oder mehrere Kennzeichen der Aufgabe zu berücksichtigen sind. Zum Beispiel kann ein Verfahren einen Leistungsfähigkeitsparameter (Durchführungsparameter) verfolgen sowie eine prozentuale Verwendung eines großen Kerns oder wie lange die Aufgabe in dem großen Kern dauert. Auch kann eine Ausführungsform eine oder mehrere Anzeichen der Aufgabe berücksichtigen, wie ein Bestimmen, ob die Aufgabe hohe Priorität hat, ob es eine ständig durchgeführte Aufgabe ist, oder zum Beispiel eine Aufgabe, die durchgeführt werden muss, wenn das System immer eingeschaltet ist, oder ein Bestimmen, ob die Aufgabe in einem immer verbundenen Modus durchzuführen ist (Tiefschlafmodus), und so weiter.
  • Im Laufe der Zeit kann eine Ausführungsform somit eine Historie für jede Aufgabe 130 aufbauen, um über die geeignete Kernsignatur für die Aufgabe zu informieren. Somit kann eine Ausführungsform dann eine geeignete Bestimmung einer Zuteilungspolice für eine gegebene Aufgabe bestimmen und für eine Aufgabe eine Kernsignatur für späteren Gebrauch festlegen. Zum Beispiel kann eine Ausführungsform bestimmen, welche Aufgaben zu einem kleineren Kern bewegt werden sollten, basierend auf der Historie für die Aufgaben und die Aufgabenkennzeichen, wie durch die Aufgabenkernsignatur bei 340 gezeigt. Wenn somit zum Beispiel eine Aufgabe bestimmt ist, eine kleine Kernsignatur 340 zu haben, kann sie auf einen kleinen Kern bei 350 auf einen Chip adressiert sein; wobei, wenn eine Aufgabe eine große Signatur aufweist, kann sie zu einem größeren Kern 360 gesandt werden. Einige Bestimmungsbeispiel können durch eine Ausführungsform, die jetzt folgt, durchgeführt werden.
  • Bezugnehmend auf 4, kann eine Ausführungsform verwendet werden, bei der die Aufgaben-Historie und/oder Merkmale bestimmen, ob eine Aufgabe an einen großen oder kleinen Kern adressiert werden sollte. Zum Beispiel kann eine Ausführungsform als ein Kriterium einer Bestimmung oder einer Abschätzung verwenden, ob die Aufgabe in die Aufnahmefähigkeit des kleineren Kerns 410 „passen” kann. Zum Beispiel kann eine Ausführungsform dieses „Passen” berechnen, durch Bestimmen oder durch Zugriff auf das Verhältnis des kleineren zu dem größeren Kern haben (zum Beispiel im Sinne von Verarbeitungsfähigkeit und/oder anderer relevanter Parameter) und unter Konvertieren der prozentualen Nutzung in dem größeren Kern zu dem kleinern Kern. Somit kann eine Ausführungsform die Durchführung der Aufgaben auf den größeren Kern im Sinne der prozentualen Nutzung des größeren Kerns verfolgen und dieses auf die Fähigkeit des kleineren Kerns abbilden. Diese Information kann ein Bilden einer Kernsignatur für die Aufgabe umfassen.
  • Wenn somit die Aufgabe passt, kann die Ausführungsform dann eine Bestimmung vornehmen, ob die Aufgabe zu dem kleineren Kern bewegt werden soll. Das Ergebnis dieser Entscheidung kann von einer Varietät von Faktoren abhängen, zum Beispiel, ob es dort andere Aufgaben gibt, die auch in den kleineren Kern passen, die eine höhere Priorität besitzen, mit höherer Priorität wird eine Varietät von Wegen bestimmt (zum Beispiel Frequenznutzung, Schwierigkeitsgrad, und so weiter).
  • Eine Ausführungsform kann bestimmen, ob die Aufgabe bei 420 als hohe Priorität betrachtet werden soll. Aufgaben mit der höchsten Priorität können auf den kleineren Kern zur Durchführung adressieret werden, zum Beispiel Aufgaben die, wenn das System in einem schweren oder tiefen Schlafmodus ist, ablaufen. Diese Aufgaben sind für den Zustand ”Immer Eingeschaltet”, ”Immer im Verbindungsmodus” („AOAC”-Modus, zum Beispiel, Tiefschlaf) des Gerätes erforderlich. Ein Grund für diese Durchführung ist, um in der Lage zu sein, den größeren Kern in dem Tiefschlafmodus vollständig abzuschalten. Wenn die Aufgabe für beide Kriterien passt (zu dem kleineren Kern passt und eine höhere Priorität hat), kann ein nächster Schritt ein Bestimmen einer totalen CPU-Nutzung über die Zeit 430 umfassen, um sicherzustellen, dass, wenn eine Aufgabe an einem kleinen Kern platziert ist, seine CPU-Nutzung (des kleinen Kerns) angepasst ist, selbst wenn sie auf den kleinen Kern passt und eine hohe Prioritätsaufgabe ist.
  • Somit kann es Fälle geben, in denen ein hohe Prioritätsaufgabe, die auf einem kleineren Kern passt, dennoch auf einen größeren Kern laufen sollte, zum Beispiel, weil es auf die Nutzung von mehr Leistung hinausläuft, die für eine exzessive CPU-Nutzung auf dem kleineren Kern aufgewandt wird, als es der Fall wäre, wenn die Aufgabe eine lange Zeit in Anspruch nimmt, um sie zu vollenden, oder sie wiederholt während eines Zeitrahmens oder in einer Umgebung durchgeführt werden, in der eine Leistungseinsparung nicht ein primäres Problem ist (zum Beispiel, wenn das Gerät in eine Stromversorgung eingesteckt ist und die Batterie geladen wird). Da Aufgaben, die auf einen kleineren Kern passen und während eines AOAC-Modus durchgeführt werden, dahin tendieren, häufiger durchgeführt zu werden (und somit eine höhere Priorität haben), sind diese Aufgaben wahrscheinliche Kandidaten zur Ausführung auf einem kleinen Kern. Unter Verwendung dieses Zuteilens kann eine Ausführungsform die Aufgaben optimieren, die einen kleineren Kern festlegen, wodurch der Systemleistungsverbrauch so stark wie möglich abfällt.
  • Bezugnehmend auf 5(A–B) kann ein Ausführungsform Hinweise bereitstellen, die in die Aufgaben programmiert sind oder in anderer Weise für die Aufgaben (oder Unterkomponenten davon) festgelegt sind, damit mehr Gelegenheiten beim Festlegen der korrekten Kernsignatur für eine Aufgabe oder für eine Aufgabenunterkomponente ermöglicht werden. Weil wieder die kleineren Kerne weniger Leistung verbrauchen, aber auch eine geringere Leistungsfähigkeit haben, wird die Batterielebensdauer ansteigen, umso mehr das System die kleinere Kerne verwenden kann und nicht die größeren Kerne verwendet, so dass das System im Wesentlichen die größeren Kerne abschalten kann, wenn sie nicht benötigt werden. Eine Ausführungsform stellt Hinweise in den Aufgaben selbst bereit, in denen ein Programmierer den besten Kern, der zu benutzen ist, anzeigen kann, wenn er ein Programm schreibt. Somit führt eine Ausführungsform eine Auswahl eines geeigneten Kerns für die Aufgabe durch bei einer effizienteren Laufzeit durch Programmieren einer Kernsignatur oder eines Hinweises in dem Aufgabenprogramm.
  • Ein Bestimmen des geeigneten Kerns, der in einem konventionellen Mehrkern-Chip zu verwenden ist, basiert auf kürzlich durchgeführten laufenden Programmen, ohne das Wissen zukünftiger Bedürfnisse der Programme, was in einigen Situationen ungeeignet sein kann. Weil Programmierer Compiler-Flags und Sprachelemente verwenden können, um bestimmte Laufzeiteigenschaften der Aufgaben, sowie Instruktionseinsetzmerkmale zum Gebrauch und dynamische gegenüber statischen Ladevorgängen anzuzeigen, können diese Merkmale in vorteilhafter Weise im Zusammenhang mit einem Chip, der große und kleine Kernarchitekturen aufweist, verwendet werden.
  • Ein Programmierer kann in einer Position sein, in der er beim Schreiben eines Programms spezifizieren kann, wie am besten der Vorteil aus großen und kleinen Kernen zu ziehen ist, da die Natur des Programms und eine Abschätzung der benötigten Ressourcen zur Verfügung steht. Dementsprechend sieht eine Ausführungsform vor, dass der Programmierer Hinweise für ein Kernzuteilen spezifizieren kann, die Dinge einschließen wie 1) Ablauf dieses Programms auf dem kleinsten verfügbaren Kern; 2) dieses Programm erfordert einen Kern mit hoher Leistungsfähigkeit; 3) dynamisches Festlegen der Aufgabe für Kerne, basierend auf kürzlicher Leistungsfähigkeitshistorie; oder andere Hinweise für das Kernzuteilen.
  • Wie in dem Beispiel der 5A gezeigt, können die Hinweise als Kennzeichnung durch den Programmierer 510A spezifiziert werden. Somit spezifiziert der Programmierer Hinweise 510A in einem Kennzeichen, das, wenn das Programm und das Kennzeichen gesendet werden zu dem Compiler in einer Compilerzeit 520A, der Hinweis geeignet verwendet wird (zum Beispiel für die gesamte Aufgabe/das gesamte Programm) 530A. In dieser Situation ist es möglich, dass der Hinweis statisch auf das gesamte Programm angewandt wird, so dass das Programm an einen Kern adressiert wird, der in dem Kennzeichen 540A angezeigt wird. Das Programm und der Hinweis (die Hinweise) können dann auf dem Bauteil installiert werden, um wie programmiert abzulaufen, das heißt auf einen geeigneten Kern (geeignete Kerne) entsprechend des Hinweises (der Hinweise) 550A adressiert sein. Somit kann die Aufgabe geeignet an einen kleineren oder größeren Kern adressiert sein.
  • Hinweise können auch dynamisch über Sprachelemente angewandt werden, so dass, wenn das Programm 510B abläuft, es den Hinweise abhängig von dem Zustand des Programms ändern kann, wenn der Hinweis in 520B berücksichtigt wird. Diese Hinweise können entweder Compileranweisungen (gültig nur zur Compilerzeit) sein, um den Hinweis für einen Abschnitt des Codes zu kennzeichnen. Alternativ kann ein Systemfunktionsaufruf durch das Programm verwendet werden, um den Hinweis 550B anzupassen, wobei der Hinweis kein statischer (fixierter) Hinweis 530B ist. Zum Beispiel kann das Programm verursachen einen neuen Auftrag zu starten. Der Code in dem neuen Auftrag kann einen Systemaufruf durchführen, um zu spezifizieren, dass dieser Auftrag vollständig auf dem kleinsten verfügbaren Kern mit niedrigster Leistungsfähigkeit ablaufen kann. Wenn alternativ der Hinweis nicht dynamisch aktualisierbar ist, kann der Hinweis auf eine anfänglich programmierte Programmunterkomponente 560B angewandt werden.
  • Eine Ausführungsform kann auch eine Unterbrechungsverarbeitung in einer Aufgabenzuteilungspolice einschließen, um die Verfügbarkeit von großen und kleinen Kernen eines Chips zu beeinflussen. Wie hierin beschrieben, können große und kleine Kernrechner CPU's unterschiedlicher Größe kombinieren und somit eine unterschiedliche Anzahl von Transistoren in dem gleichen Gehäuse oder Chip aufweisen. Diese Groß-Kleinstrukturen können, wenn sie geeignet verarbeitet werden, bedeutende Leistungseinsparungen ergeben, weil die kleineren CPU's wesentlich effizienter für kleine Aufgaben sind. Gemäß einer Ausführungsform ist eine Unterbrechungsverarbeitung konfiguriert, um einen Vorteil der Leistungsersparnisse, die durch eine derartige Ausführungsumgebung erlangt werden, zu erzielen.
  • Konventionell werden in Vielfach-CPU-Systemen Unterbrechungen entweder zufällig oder auf einer spezifischen CPU gesteuert, wie die letztgenannte CPU, um den Gerätetreiber, der mit der Unterbrechung assoziiert ist, zu betreiben. Diese Näherungen ergeben nicht notwendigerweise die beste Leistungsfähigkeit, wenn CPU's mit unterschiedlichen Größen und Leistungsverbrauch (große und kleine Kerne) verwendet werden.
  • Demgemäß können in einer Ausführungsform, die in 6 gezeigt wird, alle Unterbrechungen von CPU's maskiert sein, außer einer CPU mit niedriger Leistung (klein). Zum Beispiel kann bei Fehlern oder beim Booten eine Ausführungsform alle oder nahezu alle Unterbrechungen zu dem kleinen Kern führen. Eine Ausführungsform kann die Unterbrechungen gemäß einer geeigneten Police demaskieren.
  • Zum Beispiel können, als ein Ergebnis einer betriebsbedingten Historie einer Aufgabe, zum Beispiel für eine gegebene Gerätetreibersättigung der Zyklen eines kleinen Kerns, oder durch spezielle Konfiguration oder Police, andere Kerne die Unterbrechungen unmaskiert aufweisen. Somit kann bei einer Unterbrechung die betriebsbedingte Historie der Aufgabe ermittelt werden, um zu bestimmen, ob die Unterbrechung zu einer Police passt, die bei 610 unmaskiert erscheint. Wenn nicht, kann die Unterbrechung an einem kleinen Kern bei 620 erscheinen. Wenn jedoch die Unterbrechung zu einer Police zum Führen der Unterbrechung zu einem großen Kern bei 610 passt, kann die Unterbrechung unmaskiert gemäß der Police bei 630 sein und zu einem großen Kern zur Durchführung bei 640 geführt werden. Einige Beispielsfälle, in denen Unterbrechungen unmaskiert bleiben gemäß einer Police, um sie durch andere (zum Beispiel große) Kerne führen und bearbeiten zu lassen, sind folgende.
  • Wenn in einem ersten Beispiel eine gegebene Unterbrechungsbearbeitung eine Historie aufweist, die alle oder einen wesentlichen Teil der verfügbaren Leistung der kleinen Kern-CPU verbraucht, zum Beispiel, wenn es einige Schwellwerte überschreitet, kann eine derartige Unterbrechung zu einem oder mehreren großen Kernen geführt werden, da diese hochleistungsfähige CPU's sind. Somit werden Energieersparnisse erzielt, selbst wenn die größeren Kerne genutzt werden müssen, aufgrund eines Adressierens von bekannten Unterbrechungen auf ein intensives Durchführen auf geeignet großen Kernen.
  • In einem zweiten Beispiel kann eine Unterbrechungsfrequenz bekannt sein, die derart hoch ist, dass, wenn sie wiederholt auf einen kleinen Kern adressiert ist, die CPU die Unterbrechungen nicht mehr bearbeiten kann. In einer derartigen Situation können die Unterbrechungen für alle kleinen Kern-CPU-Zyklen für eine gegebene Zeitspanne (zum Beispiel 100 Millisekunden) fallengelassen werden. Mehrfach-Unterbrechungen von dieser Art können durch Mehrfach-CPU's geprüft werden, um die Belastung auszugleichen. Unter einem derartigen Umstand kann das Chipumfeld geprüft werden, um zu bestimmen, ob eine geeignete Adressierung der Unterbrechungen zu einem oder mehreren kleinen Kernen oder einem oder mehreren großen Kernen, oder einige geeignete Kombinationen des Vorhergehenden gemäß einer vorbestimmten Police gegeben ist.
  • In einem dritten Beispiel kann ein Entwickler oder Administrator bestimmte Treiber kennen oder eine andere Aufgabe kann eine hochleistungsfähige CPU erfordern. Dementsprechend kann in einer Ausführungsform die Kernroutine konfiguriert sein, um die zugehörige Unterbrechung für eine hochleistungsfähige (große) CPU zum Bearbeiten zu maskieren.
  • Wie hierin beschrieben, können unterschiedliche Ausführungsformen, die für eine Reihe von Aufgabenverarbeitung oder Zuteilungsverfahren, wie eines Groß/Klein-Kern-Umfeldes bereitgestellt werden, optimal genutzt werden. In einer Ausführungsform können vorbestimmte oder dynamische Aufgabezuteilungen verwendet werden oder es können statische Aufgabenverteilungen verwendet werden. In einer Ausführungsform können sowohl vorbestimmte als auch statische Aufgabenverarbeitungen verwendet werden in Abhängigkeit von einem Verarbeitungsumfeld (zum Beispiel Verarbeitungs- oder Ladungszustand des Gerätes), der Natur der Aufgabe, die zuzuteilen ist (zum Beispiel einer Aufgabe, die eine bekannte Historie aufweist, eine Aufgabe, die damit oder darin Hinweise einschließt und so weiter). Es ist anzumerken, dass obgleich spezifische Beispiele der Aufgaben angegeben worden sind (Programme, Unterbrechungen, Anwendungsprogramme für Unterkomponenten oder Aufträge) und spezifische Aufgabenverarbeitungs- oder Zuteilungsverfahren erläutert wurden, diese keine begrenzenden Beispiel sind und die unterschiedlichen Aspekte in jeder geeigneten Weise kombiniert werden können, um ein angepasstes Zuteilen der Aufgaben als Arbeitslast zwischen großen und kleinen Kernen zu erreichen.
  • Ausführungsformen können in einer oder mehreren Informationsverarbeitungsgeräten eingegeben sein, die konfiguriert sind, um geeignete Programminstruktionen durchzuführen, die in der Funktionalität mit Ausführungsformen, die hierin beschreiben sind, übereinstimmen. In Bezug auf 1 und 2 werden nicht eingeschränkte Beispiele derartiger Geräte und Komponenten davon gezeigt. Während mobile Computersysteme, wie Tablet-Computer, Laptop-Computer und Smartphones, speziell als Beispiele erwähnt wurden, können Ausführungsformen unter anderen Systemen und Geräten, wie E-Lesegeräten, Navigationssystemen, Kioske und dergleichen, eingesetzt werden.
  • Darüber hinaus sollte angemerkt werden, dass, obwohl große und kleine Kernbeispiele hierin gegeben wurden, die Prinzipien und Aspekte der unterschiedlichen Ausführungsformen auch auf Geräte ausgedehnt werden können, die drei oder mehr Kerne von unterschiedlicher Größe aufweisen, entsprechend den hierin enthaltenen Lehren.
  • Wie vom Fachmann der Technik erkannt wird, können unterschiedliche Aspekte als ein System, Verfahren oder Geräteprogrammprodukt enthalten sein. Demgemäß können Aspekte die Form einer vollständigen Hardwareausführung oder einer Ausführung einschließlich Software annehmen, auf die alle allgemein hierin als ein „Schaltkreis”, „Modul” oder „System” Bezug genommen werden kann. Weiterhin können Aspekte die Form eines Geräteprogrammproduktes, das in einem oder mehreren gerätelesbaren Medien eingebettet ist, die gerätelesbare Programm-Codes aufweisen, die darin eingebettet sind, annehmen.
  • Jede Kombination von einem oder mehreren Nicht-Signal- gerätelesbaren Medien können verwendet werden. Die Nicht-Signal-Medien können ein Speichermedium sein. Ein Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder Halbleiter-System, eine Vorrichtung oder ein Gerät oder eine geeignete Kombination der Vorhergehenden, sein. Spezifischere Beispiele eines Speichermediums würden Folgendes einschließen: eine tragbare Computerdiskette, eine Festplatte, ein Zufallszugriffsspeicher (RAM, random access memory), ein nur-lesbarer Speicher (ROM, read-only memory), ein löschbarer programmierbarer nur-lesbarer Speicher (EPROM, erasable programmable read-only memory, oder Flash-Speicher), eine optische Faser, eine tragbare Kompaktdiskette als nur-lesbarer Speicher (CD-ROM), ein optisches Speichergerät, ein magnetisches Speichergerät oder jede geeignete Kombination der Vorhergehenden.
  • Programm-Codes, die in einem Speichermedium eingebettet sind, können unter Verwendung irgendeines geeigneten Mediums übertragen werden, einschließlich, aber nicht begrenzt auf drahtlose, optische Faserkabel, RF, und so weiter, oder jede geeignete Kombination der Vorhergehenden.
  • Ein Programm-Code zum Ausführen von Verarbeitungen kann in jeder Kombination von einer oder mehreren Programmsprachen geschrieben sein. Der Programm-Code kann vollständig auf dem Einzelgerät, teilweise auf einem Einzelgerät, wie ein alleinstehendes Softwarepaket, teilweise auf einem Einzelgerät und teilweise auf einem anderen Gerät, oder vollständig auf einem anderen Gerät ausgeführt sein. In einigen Fällen können die Geräte durch jede Art von Verbindung oder Netzwerk verbunden werden, einschließlich einem lokalen Bereichsnetzwerk (LAN, local area network) oder einem weiten Bereichsnetzwerk (WAN, wide area network), oder die Verbindung kann durch andere Geräte hergestellt sein (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstes) oder durch eine Drahtverbindung, wie z. B. über eine USB-Verbindung.
  • Hierin werden Aspekte mit Bezug auf die Figuren beschrieben, die beispielhafte Verfahren, Geräte und Programmprodukte gemäß unterschiedlicher Beispielsausführungsformen zeigen. Es wird verständlich, dass die Aktionen und Funktionalitäten, die gezeigt werden, mindestens teilweise durch Programminstruktionen ausgeführt werden können. Diese Programminstruktionen können durch einen Prozessor bereitgestellt werden als ein Informationsverarbeitungsgerät für einen allgemeinen Zweck, ein Informationsverarbeitungsgerät für einen speziellen Zweck oder andere programmierbare Datenverarbeitungsgeräte oder Informationsverarbeitungsgeräte, um einen Rechner zu produzieren, so dass die Instruktionen, welche über einen Prozessor des Geräts, unter Verwenden der spezifizierten Funktionen/Aktionen ausgeführt werden
  • Die Programminstruktionen können auch in einem gerätelesbaren Medium gespeichert sein, das ein Gerät adressieren kann, um in einer bestimmten Weise zu funktionieren, so dass die Instruktionen, die in dem gerätelesbaren Medium gespeichert sind, einen Gegenstand der Herstellung erzeugen, der die Instruktionen einschließt, welche die spezifizierten Funktionen/Aktionen anwenden.
  • Die Programminstruktionen können auch auf ein Gerät geladen werden, um eine Serie von Verfahrensschritten zu veranlassen, auf dem Gerät durchgeführt zu werden, um einen geräteimplementierten Prozess zu produzieren, so dass die Instruktionen, die auf dem Gerät ausgeführt werden, Prozesse zum Implementieren der spezifizierten Funktionen/Aktionen bereitstellen.
  • Diese Offenbarung wurde präsentiert für Zwecke der Darstellung und Beschreibung, jedoch ist es nicht beabsichtigt, erschöpfend und begrenzend zu sein. Viele Modifikationen und Variationen sind für den Fachmann der Technik nahe liegend. Die beispielhaften Ausführungsformen wurden gewählt und beschrieben, um die Prinzipien und praktischen Anwendungen zu beschreiben und andere Fachleute der Technik in die Lage zu versetzen, die Offenbarung der unterschiedlichen Ausführungsformen mit unterschiedlichen Modifikationen als geeignet für den besonderen betrachteten Gebrauch zu verstehen.
  • Obwohl hiermit die gezeigten beispielhaften Ausführungsformen wurden mit Bezug auf die begleitenden Zeichnungen beschrieben, ist es verständlich, dass diese Beschreibung nicht begrenzend ist und dass verschiedene andere Änderungen und Modifikationen durch einen Fachmann betrachtet werden können, ohne sich von dem Rahmen und dem Geist der Offenbarung zu entfernen.

Claims (21)

  1. Verfahren umfassend: – Identifizieren einer Aufgabe, die zur Durchführung auf einem Informationsverarbeitungsgerät zuzuteilen ist, das zwei oder mehr Kerne von unterschiedlicher Größe aufweist; – Bestimmen eines geeigneten Zuteilens der Aufgabe zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; – Adressieren der Aufgabe an einen geeigneten Kern zur Durchführung basierend auf dem vorbestimmten geeigneten Zuteilen; – Durchführen der Aufgabe auf dem geeigneten Kern.
  2. Verfahren nach Anspruch 1, wobei ein großer Kern der Kerne mit unterschiedlicher Größe eine zentrale Verarbeitungseinheit mit hoher Leistung ist, und wobei weiterhin ein kleiner Kern der Kerne mit unterschiedlicher Größe eine zentrale Verarbeitungseinheit mit niedrigerer Leistung ist in Bezug auf den großen Kern.
  3. Verfahren nach Anspruch 1, wobei die Kernsignatur eine verfolgende Durchführungshistorie umfasst.
  4. Verfahren nach Anspruch 1, wobei die Kernsignatur eine ermittelte Aufgabencharakteristik umfasst.
  5. Verfahren nach Anspruch 4, wobei die ermittelte Aufgabencharakteristik eine Charakteristik umfasst, die anzeigt, dass die Aufgabe eine Aufgabe hoher Priorität ist.
  6. Verfahren nach Anspruch 1, wobei die Kernsignatur für die Aufgabe programmiert ist und einen Hinweis umfasst, der mit der gesamten Aufgabe assoziiert ist.
  7. Verfahren nach Anspruch 1, wobei die Kernsignatur für die Aufgabe programmiert ist und einen Hinweis umfasst, der mit einer Unterkomponente der Aufgabe assoziiert ist.
  8. Verfahren nach Anspruch 1, wobei die Kernsignatur für die Aufgabe programmiert und statisch ist.
  9. Verfahren nach Anspruch 1, wobei die Kernsignatur für die Aufgabe programmiert und dynamisch aktivierbar ist während der Durchführung der Aufgabe.
  10. Verfahren nach Anspruch 1, wobei die Kernsignatur über einen Vorgang bestimmt wird, umfassend: – Bestimmen, ob die Aufgabe auf einen kleinen Kern passt; – Bestimmen, ob die Aufgabe von hoher Priorität ist; und – Bestimmen, ob die Aufgabe auf dem kleinen Kern durchführbar ist, innerhalb einer Schwellwerttoleranz mit Bezug auf die Verwendung des kleinen Kerns.
  11. Informationsverarbeitungsgerät, umfassend: – einen oder mehrere Prozessoren; und – einen Speicher in Kommunikation mit einem oder mehreren Prozessoren; – wobei der Speicher zum Speichern von Programminstruktionen, die, wenn sie von einem oder mehreren Prozessoren durchgeführt werden: – eine Aufgabe identifizieren, die zuzuteilen ist zur Durchführung auf einem Informationsverarbeitungsgerät, das zwei oder mehr Kerne unterschiedlicher Größe aufweist; – ein geeignetes Zuteilen der Aufgabe bestimmen zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; – die Aufgabe an einen geeigneten Kern adressieren zur Durchführung basierend auf dem vorbestimmten geeigneten Zuteilen und – die Aufgabe auf dem geeigneten Kern durchführen.
  12. Verfahren nach Anspruch 11, wobei ein großer Kern der Kerne mit unterschiedlicher Größe eine zentrale Verarbeitungseinheit mit hoher Leistung ist, und wobei weiterhin ein kleiner Kern der Kerne mit unterschiedlicher Größe eine zentrale Verarbeitungseinheit mit niedrigerer Leistung ist in Bezug auf den großen Kern.
  13. Verfahren nach Anspruch 11, wobei die Kernsignatur eine verfolgende Durchführungshistorie umfasst.
  14. Verfahren nach Anspruch 11, wobei die Kernsignatur eine ermittelte Aufgabencharakteristik umfasst.
  15. Verfahren nach Anspruch 14, wobei die ermittelte Aufgabencharakteristik eine Charakteristik umfasst, die anzeigt, dass die Aufgabe eine Aufgabe hoher Priorität ist.
  16. Verfahren nach Anspruch 11, wobei die Kernsignatur für die Aufgabe programmiert ist und einen Hinweis umfasst, der mit der gesamten Aufgabe assoziiert ist.
  17. Verfahren nach Anspruch 11, wobei die Kernsignatur für die Aufgabe programmiert ist und einen Hinweis umfasst, der mit einer Unterkomponente der Aufgabe assoziiert ist.
  18. Verfahren nach Anspruch 11, wobei die Kernsignatur programmiert ist für die Aufgabe und statisch ist.
  19. Verfahren nach Anspruch 11, wobei die Kernsignatur für die Aufgabe programmiert und dynamisch aktivierbar ist während der Durchführung der Aufgabe.
  20. Verfahren nach Anspruch 11, wobei die Kernsignatur über einen Vorgang bestimmt wird, umfassend: – Bestimmen, ob die Aufgabe auf einen kleinen Kern passt; – Bestimmen, ob die Aufgabe von hoher Priorität ist; und – Bestimmen, ob die Aufgabe auf dem kleinen Kern durchführbar ist, innerhalb einer Schwellwerttoleranz mit Bezug auf die Verwendung des kleinen Kerns.
  21. Programmprodukt, umfassend: – ein Speichermedium, das einen Programm-Code einbettet, wobei der Programm-Code umfasst: – einen Programm-Code, der konfiguriert ist, um eine Aufgabe zu identifizieren, die zuzuteilen ist zur Durchführung auf einem Informationsverarbeitungsgerät, das zwei oder mehr Kerne unterschiedlicher Größe aufweist; – einen Programm-Code, der konfiguriert ist, um ein geeignetes Zuteilen der Aufgabe zu bestimmen zur Durchführung auf den zwei oder mehr Kernen unterschiedlicher Größe, wobei das geeignete Zuteilen der Aufgabe über eine Kernsignatur für die Aufgabe bestimmt wird; – einen Programm-Code, der konfiguriert ist, um die Aufgabe an einen geeigneten Kern zur Durchführung zu adressieren basierend auf dem geeigneten vorbestimmten Zuteilen, und – einen Programm-Code, der konfiguriert ist, um die Aufgabe auf dem geeigneten Kern durchzuführen.
DE102013104328.3A 2012-08-21 2013-04-29 Aufgabenzuteilung in großen und kleinen Kernen Active DE102013104328B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/590,467 US9619282B2 (en) 2012-08-21 2012-08-21 Task scheduling in big and little cores
US13/590,467 2012-08-21

Publications (2)

Publication Number Publication Date
DE102013104328A1 true DE102013104328A1 (de) 2014-02-27
DE102013104328B4 DE102013104328B4 (de) 2018-05-24

Family

ID=48746871

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013104328.3A Active DE102013104328B4 (de) 2012-08-21 2013-04-29 Aufgabenzuteilung in großen und kleinen Kernen

Country Status (4)

Country Link
US (2) US9619282B2 (de)
CN (1) CN103631656A (de)
DE (1) DE102013104328B4 (de)
GB (1) GB2505273B (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US9477313B2 (en) 2012-11-20 2016-10-25 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving outward-facing sensor of device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US10423214B2 (en) * 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
KR102082859B1 (ko) * 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US20150084583A1 (en) * 2013-09-24 2015-03-26 Nvidia Corporation Control of wireless battery charging
US9858115B2 (en) 2013-10-30 2018-01-02 Mediatek Inc. Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
US9424092B2 (en) 2014-09-26 2016-08-23 Microsoft Technology Licensing, Llc Heterogeneous thread scheduling
JP2016091137A (ja) * 2014-10-31 2016-05-23 コニカミノルタ株式会社 画像形成装置、特定処理実行方法、およびコンピュータプログラム
WO2016195274A1 (en) * 2015-06-01 2016-12-08 Samsung Electronics Co., Ltd. Method for scheduling entity in multi-core processor system
US9811389B2 (en) * 2015-09-23 2017-11-07 Intel Corporation Task assignment for processor cores based on a statistical power and frequency model
CN105677467A (zh) * 2015-12-31 2016-06-15 中国科学院深圳先进技术研究院 基于量化标签的Yarn资源调度器
KR102501240B1 (ko) 2016-03-18 2023-02-17 삼성전자주식회사 태스크 스케줄링 방법 및 이를 구현한 전자 장치
CN106095544B (zh) * 2016-05-31 2019-10-11 北京小米移动软件有限公司 中央处理器控制方法及装置
US10459760B2 (en) * 2016-07-08 2019-10-29 Sap Se Optimizing job execution in parallel processing with improved job scheduling using job currency hints
US10394604B2 (en) * 2017-03-15 2019-08-27 Samsung Electronics Co., Ltd. Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system
US10459517B2 (en) * 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics
CN107368255B (zh) * 2017-07-25 2019-04-12 Oppo广东移动通信有限公司 解锁方法、移动终端及计算机可读存储介质
EP3662368B1 (de) * 2017-08-16 2022-07-20 Samsung Electronics Co., Ltd. Verfahren und vorrichtung zur verwaltung der planung von diensten während des hochfahrens
CN107608797B (zh) * 2017-09-30 2021-03-02 Oppo广东移动通信有限公司 文件处理方法、装置、存储介质及电子设备
KR102563648B1 (ko) 2018-06-05 2023-08-04 삼성전자주식회사 멀티 프로세서 시스템 및 그 구동 방법
CN110968415B (zh) * 2018-09-29 2022-08-05 Oppo广东移动通信有限公司 多核处理器的调度方法、装置及终端
CN109947569B (zh) * 2019-03-15 2021-04-06 Oppo广东移动通信有限公司 绑定核心的方法、装置、终端及存储介质
CN110347486B (zh) * 2019-07-02 2023-09-15 Oppo广东移动通信有限公司 应用程序的线程分配方法、装置、设备及可读存储介质
US11314558B2 (en) * 2019-07-23 2022-04-26 Netapp, Inc. Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof
KR20210101071A (ko) 2020-02-07 2021-08-18 삼성전자주식회사 이종의 다중-프로세서에 기반하여 스케줄링을 수행하기 위한 전자 장치 및 그의 동작 방법
CN113204425B (zh) * 2021-04-21 2023-04-07 深圳市腾讯网络信息技术有限公司 供进程管理内部线程的方法、装置、电子设备及存储介质
US11789520B1 (en) * 2023-04-24 2023-10-17 RTSync Corp. System and method for activity-based design process framework for discrete event systems chip
CN116737346B (zh) * 2023-08-14 2023-10-24 南京翼辉信息技术有限公司 一种大小核处理器调度配置系统及其实现方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4090908B2 (ja) 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
JP4082706B2 (ja) 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US20080127192A1 (en) 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
JP2008084009A (ja) 2006-09-27 2008-04-10 Toshiba Corp マルチプロセッサシステム
WO2008148625A1 (en) 2007-06-05 2008-12-11 Siemens Aktiengesellschaft Method and device for scheduling a predictable operation of an algorithm on a multi-core processor
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US20090288092A1 (en) 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
CN101354693B (zh) * 2008-09-11 2010-06-09 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
US20100262966A1 (en) 2009-04-14 2010-10-14 International Business Machines Corporation Multiprocessor computing device
US9069553B2 (en) * 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores

Also Published As

Publication number Publication date
CN103631656A (zh) 2014-03-12
DE102013104328B4 (de) 2018-05-24
GB201308857D0 (en) 2013-07-03
US9619282B2 (en) 2017-04-11
GB2505273B (en) 2015-01-07
US9710309B2 (en) 2017-07-18
GB2505273A (en) 2014-02-26
US20150261579A1 (en) 2015-09-17
US20140059558A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE102013104329B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE60110847T2 (de) Rechnersystem mit niedrigem energieverbrauch
DE102014101633B4 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE102009030544B4 (de) Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem
DE112006003575B4 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
US10977092B2 (en) Method for efficient task scheduling in the presence of conflicts
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE102012109956A1 (de) Aktualisieren von Firmware in einer hybriden Computerumgebung
DE112013005278T5 (de) Dynamisches Abgleichen von Leistung über eine Mehrzahl von Prozessordomänen gemäß Leistungsabgleichsteuerungs-BIAS
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE102012100378A1 (de) System und Verfahren für eine beschleunigte Boot-Leistung
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE102011015555A1 (de) Verfahren und vorrichtung für interrupt-power-management
DE102008062692A1 (de) Vorrichtung und Verfahren mit gesteuertem Schaltmodus
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
DE102018004726A1 (de) Dynamisches Ausschalten und Einschalten von Prozessorkernen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: LENOVO PC INTERNATIONAL LIMITED, HK

Free format text: FORMER OWNER: LENOVO (SINGAPORE) PTE. LTD., SINGAPUR, SG

R082 Change of representative

Representative=s name: SCHWEIGER & PARTNERS, DE

R082 Change of representative

Representative=s name: SCHWEIGER, MARTIN, DIPL.-ING. UNIV., DE