DE102014002840A1 - Vorrichtung und Verfahren für die Bindung von Speicherinformationen - Google Patents

Vorrichtung und Verfahren für die Bindung von Speicherinformationen Download PDF

Info

Publication number
DE102014002840A1
DE102014002840A1 DE102014002840.2A DE102014002840A DE102014002840A1 DE 102014002840 A1 DE102014002840 A1 DE 102014002840A1 DE 102014002840 A DE102014002840 A DE 102014002840A DE 102014002840 A1 DE102014002840 A1 DE 102014002840A1
Authority
DE
Germany
Prior art keywords
memory
binding
processor
operations
transitory computer
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.)
Withdrawn
Application number
DE102014002840.2A
Other languages
English (en)
Inventor
Ranganathan Sudhakar
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.)
MIPS Tech LLC
Original Assignee
MIPS Technologies Inc
MIPS Tech LLC
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 MIPS Technologies Inc, MIPS Tech LLC filed Critical MIPS Technologies Inc
Publication of DE102014002840A1 publication Critical patent/DE102014002840A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • 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
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30181Instruction operation extension or modification
    • 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Abstract

Ein Prozessor ist so ausgelegt, dass er Kriterien zur Bindung von Speicheroperationen auswertet, um im Rahmen eines Speicherzugriffsplans speicheroperative Bindungsmöglichkeiten selektiv zu erkennen. Speicheroperationen werden in Reaktion auf die speicheroperativen Bindungsmöglichkeiten kombiniert, um einen geänderten Speicherzugriffsplan mit beschleunigtem Speicherzugriff zu bilden.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht Priorität an der am 7. März 2013 eingereichten US-Patentanmeldung Nr. 13/789394, deren Inhalt hier durch Bezug aufgenommen wird.
  • GEBIET DER ERFINDUNG
  • Diese Erfindung richtet sich allgemein auf Computerarchitekturen. Spezieller richtet sich diese Erfindung auf Prozessorarchitekturen mit Bindung von Speicheroperationen.
  • HINTERGRUND DER ERFINDUNG
  • Hochleistungsprozessoren müssen pro Taktzyklus typischerweise mehr als einen Load- oder Store-Befehl ausgeben. Das erfordert viele hardwareseitige Ressourcen wie Befehlsscheduler, Datenpuffer, Übersetzungspuffer (Translation Lookaside Buffers, kurz TLB) und replizierte Tag-/Datenspeicher im Datencache, was den Leistungsverbrauch und Flächenbedarf in die Höhe treibt und somit problematisch ist. Dieses Problem besteht in jedem Mikroprozessor, aber insbesondere in leistungsbeschränkten Anwendungen wie eingebetteten Prozessoren oder Server-Maschinen.
  • Die meisten superskalaren Prozessoren weisen drei oder vier Verarbeitungskanäle auf, d. h. sie können drei oder vier Befehle je Zyklus abarbeiten. Etwa 40% der Befehle können Speicheroperationen sein. Die Optimierung von Speicheroperationen auf mehrere Verarbeitungskanäle kann somit zu beachtlichen Wirkungsgraden führen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Prozessor ist so ausgelegt, dass er Kriterien zur Bindung von Speicheroperationen auswertet, um im Rahmen eines Speicherzugriffsplans speicheroperative Bindungs- bzw. Zusammenfassungsmöglichkeiten (engl. bonding opportunities) selektiv zu erkennen. In Reaktion auf die speicheroperativen Bindungsmöglichkeiten werden kombinierte Speicheroperationen erzeugt, die einen geänderten bzw. revidierten Speicherzugriffsplan mit beschleunigtem Speicherzugriff bilden.
  • Ein nichtflüchtiger computerlesbarer Prozessor umfasst ausführbare Befehle zur Festlegung eines Prozessors, der so ausgelegt ist, dass er Kriterien zur Bindung von Speicheroperationen auswertet, um im Rahmen eines Speicherzugriffsplans speicheroperative Bindungsmöglichkeiten selektiv zu erkennen. In Reaktion auf die speicheroperativen Bindungsmöglichkeiten werden kombinierte Speicheroperationen erzeugt, die einen geänderten Speicherzugriffsplan mit beschleunigtem Speicherzugriff bilden.
  • KURZBESCHREIBUNG DER FIGUREN
  • Die Erfindung wird im Zusammenhang mit der nachfolgenden detaillierten Beschreibung in Verbindung mit den Begleitzeichnungen umfassender ersichtlich, wobei:
  • 1 einen Prozessor veranschaulicht, der gemäß einer Ausführungsform der Erfindung ausgelegt ist.
  • Entsprechende Bezugszeichen zeigen in den unterschiedlichen figürlichen Ansichten entsprechende Teile an.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • 1 veranschaulicht einen Prozessor 100, der gemäß einer Ausführungsform der Erfindung ausgelegt ist. Der Prozessor 100 realisiert hier beschriebene Speicherbindungsoperationen. Der Prozessor realisiert insbesondere eine Laufzeitbindung benachbarter Speicheroperationen zur wirksamen Bildung eines Single-Instruction-Multiple-Data(SIMD)-Befehls aus einem Nicht-SIMD-Befehlssatz. Das begünstigt breitere und weniger Speicherzugriffe.
  • Der Prozessor 100 umfasst eine Busschnittstelleneinheit 102, die mit einer Befehlsausleseeinheit (Instruction-Fetch-Einheit) 104 verbunden ist. Die Instruction-Fetch-Einheit 104 liest Befehle aus einem Instruction-Cache 110 aus. Die Speicherverwaltungseinheit (Memory Management Unit) 108 stellt für die Instruction-Fetch-Einheit 104 Übersetzungen virtueller Adressen in physische Adressen bereit. Die Speicherverwaltungseinheit 108 stellt auch Übersetzungen von Load- und Store-Datenreferenzen für die Speicherpipe (Load-Store-Einheit) 120 bereit.
  • Ausgelesene bzw. geholte Befehle werden an die Befehlspuffer 106 gegeben. Der Decoder 112 greift auf die Befehlspuffer 106 zu. Der Decoder 112 ist für die Realisierung der dynamischen speicheroperativen Bindung ausgelegt. Der Decoder 112 gibt einen decodierten Befehl an eine Funktionseinheit, wie einen Coprozessor 114, eine Gleitkommaeinheit (FPU) 116, eine arithmetisch-logische Einheit (ALU) 118 oder eine Speicherpipe 120, die Load- und Store-Adressen für den Zugriff auf einen Datencache 122 abarbeitet.
  • Der Decoder 112 ist so ausgelegt, dass mehrere Speicheroperationen (zu benachbarten Stellen) nach Befehlsdecodierung ”gebondet” bzw. ”verbunden” oder zusammengekoppelt werden. Die verbundenen Speicheroperationen laufen während ihrer Lebensdauer im Maschinenkern als eine Ausführungseinheit. Beispielsweise können zwei 32-Bit-Load-Vorgänge zu einem einzigen 64-Bit-Load-Vorgang zusammengefasst werden. Die verbundene Operation erfordert breitere Datenwege (z. B. 64 Bit statt 32 Bit), die bereits in der Maschine resident sein können. Auch wenn ein breiterer Kanal nicht verfügbar ist, haben 32-Bit-Speicherpipelines einen viel geringeren Flächen- und Leistungsbedarf als eine 64-Bit-Operation. Die Erfindung bildet somit einen geänderten Speicherzugriffsplan mit beschleunigtem Speicherzugriff. Der beschleunigte Zugriff kann daraus resultieren, dass ein gegenüber dem ursprünglichen Speicherzugriffsplan breiterer Kanal genutzt wird. Alternativ kann der beschleunigte Zugriff aus einem gepipelineten Speicherzugriff herrühren. Beispielsweise kann die Speicherpipe 120 einen 64-Bit-Kanal für den Zugriff auf Datencache 122 verwenden. Alternativ kann die Speicherpipe 120 einen gepipelineten Speicherzugriff auf Datencache 122 einsetzen.
  • Die Erfindung ermöglicht also die Schaffung von Hochleistungsmaschinen, die im Vergleich zum bekannten Stand der Technik dennoch sehr effizient sind. In gewissem Sinne kann man sich diese Zusammenfassung bzw. Verbindung mehrerer Speicheroperationen zu einer breiteren Operation so vorstellen, dass SIMD-Befehle dynamisch aus einem Nicht-SIMD-Befehlsstrom erzeugt werden. Mit anderen Worten: die SIMD-Funktionalität wird nicht vom Befehlssatz oder von der Computerarchitektur erfasst. Stattdessen erfolgt eine Erkennung SIMD-artiger Möglichkeiten in einer Codebank, die keine SIMD-Befehle aufweist und keine anderweitige SIMD-Funktionalität erfasst.
  • Wie oben angegeben, können Speicheroperationen etwa 40% der Befehle ausmachen. Das bedeutet für einen Prozessor mit vier Kanälen, dass gegebenenfalls etwa 1,2 bis 1,6 Load/Store-Befehle pro Taktzyklus aufgenommen werden müssen. Die Speicherbindungsoperationen der Erfindung lassen sich somit auf breiter Basis nutzen. Ferner benötigen viele gemeinsame Unterprogramme, wie Memory Copy, Byte Zero oder Stringvergleiche, eine hohe Load/Store-Zugriffsrate auf den First-Level-Datencache, was zusätzliche Möglichkeiten zur Ausnutzung der erfindungsgemäßen Techniken bietet.
  • Die Bereitstellung von mehr als einem Load/Store-Port zum Cache ist ein sehr aufwändiger Vorschlag- und erfordert ein Mehr an Scheduler-Ressourcen, Registerfile-Schreib- und Leseports, Adressgeneratoren, Tag-Arrays, Tag-Komparatoren, Übersetzungspuffern, Datenarrays, Speicherpuffern, Speicherweiterleitung und Disambiguierungslogik. In vielen Situationen, bei denen man mehr als einen Load-Vorgang (oder Store-Vorgang) pro Zyklus ausführen muss, stellt man jedoch fest, dass die Daten, auf die zugegriffen wird, im Speicher direkt beieinander liegen und der Zugriff auch durch benachbarte Befehle im Programmspeicher (Codestream) erfolgt. Der Prozessor 100 ist so ausgelegt, dass er dies erkennt und ausnutzt, indem er die Mehrheit dieser kritischen Back-to-Back-Speicherzugriffe in weniger, aber breitere Zugriffe umwandelt, die dank minimaler zusätzlicher Hardware mit minimalem Flächen- oder Leistungsverbrauch laufen können. Im Ergebnis begünstigt der Prozessor 100 erhebliche Performancesteigerungen (50% bis 100%) bei zentralen Routinen.
  • Man betrachte den folgende Code:
    LW r5, Offset_1(r20) //32-Bit-Load-Vorgang aus Register 5 zu einer
    //ersten Position in Register 20
    LW r6, Offset_2(r20) //Benachbarter 32-Bit-Load-Vorgang aus
    //Register 6 zu einer zweiten Position in Register 20
  • Dieser Code stellt einen Speicherzugriffsplan dar. Im vorliegenden Sprachgebrauch ist ein Speicherzugriffsplan eine Vorgabe bzw. Spezifikation von Speicherzugriffsvorgängen. Der Speicherzugriffsplan erfasst einen einzelnen Speicherzugriffskanal. Dieser Code wird dynamisch ausgewertet, um eine verbundene/parallelisierte Speicheroperation zu erzeugen. Das heißt, es werden Kriterien zur Bindung von Speicheroperationen ausgewertet, um im Rahmen des Speicherzugriffsplans speicheroperative Bindungsmöglichkeiten selektiv zu erkennen. Falls eine speicheroperative Bindungsmöglichkeit vorliegt, werden kombinierte Speicheroperationen erzeugt, die einen geänderten Speicherzugriffsplan mit beschleunigtem Speicherzugriff einrichten. Im vorliegenden Beispiel ist der geänderte Seicherzuriffsplan wie folgt codiert:
    LW2 (r5, r6), Offset_1(r20) //Verbundener 64-Bit-Load-Vorgang aus
    //Register 5 und Register 6 zu einer ersten
    //Position in Register 20
  • In diesem Beispiel wird jedes benachbarte Paar von 32-Bit-Speicherbefehlen zu einer 64-Bit-Operation zusammengefasst. Die meisten 32-Bit-Prozessoren verfügen bereits über 64-Bit-Datenpfade zum Datencache, da sie 64-Bit-Gleitkomma-Load- und -Store-Vorgänge unterstützen müssen. Es ist jedoch eine relativ triviale Sache, die Speicher-Pipeline von 64-Bit auf 32-Bit für diejenigen 32-Bit-Prozessoren zu verbreitern, die nicht schon von Haus aus über 64-Bit-Datenwege zum/aus dem Cache verfügen.
  • Allgemein ist das Verfahren nicht auf das Verbinden von jeweils zwei 32-Bit-Operationen zu 64-Bit-Operationen beschränkt. Es lässt sich ebenso gut für die Kopplung von zwei 64-Bit-Operation zu einer einzelnen 128-Bit-Operation oder von vier 32-Bit-Speicheroperationen zu einer 128-Bit-Operation mit entsprechenden Performance-, Flächen- und Leistungsvorteilen anwenden.
  • Es können verschiedene speicheroperative Bindungskriterien spezifiziert werden. Speicheroperative Bindungskriterien können beispielsweise umfassen: benachbarte Load- oder Store-Befehle, gleichen Speichertyp für zwei Speicheroperationen, gleiches Basisadressregister für zwei Speicheroperationen, aufeinanderfolgende Speicherstellen, abweichendes Verschieben je nach Zugriffsumfang und im Falle von Load-Vorgängen ist das Ziel der ersten Operation keine Quelle für die zweite Operation. Eine andere Bedingung kann sein, dass nach dem Verbinden eine ausgerichtete Adresse notwendig ist.
  • Hardwareseitige Lösungen für das Problem der Skalierung der Speicherausgabebreite ohne kostspielige Flächen-/Leistungsverbräuche sind illusorisch. Softwareseitige Lösungsansätze für das Problem erfordern neue Befehle, so dass bestehender Code die Vorteile nicht nutzen kann. Dies erfordert auch Änderungen am Software-Ökosystem; solche Änderungen sind schwierig umzusetzen. Eine potenzielle Software-Lösung könnte dazu führen, dass die Hardware falsch ausgerichtete Speicherzugriffe ausführen muss, da die Software nicht die Ausrichtung aller Vorgänge zum Compile-Zeitpunkt kennen kann. Das Bindungsverfahren kann in Verbindung mit einem Bonding-Prädiktor verwendet werden, um sicherzustellen, dass alle verbundenen Zugriffe ausgerichtet sind, was ein wichtiges und gewünschtes Merkmal reiner RISC-Architekturen ist. Ein solches Schema kann somit bei Laufzeit gut arbeiten, wenn die Hardware die von den Speicheroperationen generierten tatsächlichen Adressen sehen kann. Prozessoren, die falsch ausgerichtete Adressen in der Hardware durchaus bearbeiten, können dieses Verfahren dennoch verwenden und größere Performancegewinne erzielen.
  • Wie für den Fachmann ersichtlich, ist die Erfindung eine elegante Lösung für ein vertracktes Problem der Prozessorgestaltung und hat eine breite Anwendbarkeit für jeden Universalprozessor ungeachtet von Ausgabebreite, Pipeline-Tiefe oder Grad der spekulativen Ausführung. Vorteilhafterweise erfordern die Verfahren der Erfindung keine Änderung des Befehlssatzes. Infolge dessen sind die Verfahren auf alle bestehenden Binaries anwendbar.
  • Obwohl verschiedene Ausführungsformen der Erfindung oben beschrieben wurden, versteht es sich, dass diese beispielhaft und nicht einschränkend dargelegt wurden. Einschlägigen Fachleuten auf diesem computertechnischen Gebiet wird ersichtlich, dass verschiedene Änderungen in Form und Detail vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen. Zusätzlich zur Verwendung von Hardware (z. B. in oder gekoppelt mit einem Hauptprozessor (Central Processing Unit – ”CPU”), einem Mikroprozessor, Mikrocontroller, Digitalsignalprozessor, Prozessorkern, Ein-Chip-System (System an Chip – ”SOC”) oder einer anderen Vorrichtung) können beispielsweise auch in der Software Implementierungen realisiert werden (z. B. computerlesbarer Code, Programmcode und/oder veranlasste Befehle in jeglicher Form wie Quell-, Objekt- oder Maschinensprache), die zum Beispiel in einem computernutzbaren (z. B. computerlesbaren) Medium angeordnet werden, das auf die Speicherung der Software ausgelegt ist. Diese Software kann beispielsweise die Funktion, Fertigung, Modellierung, Simulation, Beschreibung und/oder Prüfung der hier beschriebenen Vorrichtung und Verfahren ermöglichen. Das lässt sich beispielsweise durch Verwendung von allgemeinen Programmiersprachen (z. B. C, C++), Hardwarebeschreibungssprachen (HDL) einschließlich Verilog HDL, VHDL und so weiter, oder anderen verfügbaren Programmen bewerkstelligen. Diese Software kann in einem beliebigen bekannten nichtflüchtigen computernutzbaren Medium wie einem Halbleiter, magnetischen Plattenspeicher oder optischen Plattenspeicher (z. B. CD-ROM, DVD-ROM usw.) angeordnet sein. Es versteht sich, dass zur Ermöglichung einer in der Software spezifizierten Funktionalität ein Hauptprozessor (CPU), Prozessorkern, Mikrocontroller oder sonstiges elektronisches Hardware-Element verwendet werden kann.
  • Es versteht sich, dass die hier beschriebene Vorrichtung und das hier beschriebene Verfahren in einem IP-Core (Semiconductor Intellectual Property Core) wie einem Mikroprozessorkern (z. B. eingebettet in HDL) enthalten sein und bei der Herstellung von integrierten Schaltungen in Hardware transformiert werden können. Zudem können die hier beschriebene Vorrichtung und das Verfahren als eine Kombination von Hardware und Software ausgeführt werden. Die vorliegende Erfindung soll also durch keine der oben beschriebenen exemplarischen Ausführungsformen beschränkt, sondern ausschließlich entsprechend den folgenden Ansprüchen und deren Äquivalenten bestimmt werden.

Claims (20)

  1. Prozessor ausgelegt zum: Auswerten von Kriterien zur Bindung von Speicheroperationen, um im Rahmen eines Speicherzugriffsplans speicheroperative Bindungsmöglichkeiten selektiv zu erkennen; und Erzeugen kombinierter Speicheroperationen in Reaktion auf die speicheroperativen Bindungsmöglichkeiten, um einen geänderten Speicherzugriffsplan mit beschleunigtem Speicherzugriff zu bilden.
  2. Prozessor nach Anspruch 1, wobei der geänderte Speicherzugriffsplan einen Datenkanal benutzt, der breiter ist als der vom Speicherzugriffsplan genutzte Datenkanal.
  3. Prozessor nach Anspruch 1, wobei der geänderte Speicherzugriffsplan einen gepipelineten Speicherzugriff benutzt.
  4. Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium benachbarte Load- oder Storebefehle spezifiziert.
  5. Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium einen gemeinsamen Speichertyp für zwei Speicheroperationen spezifiziert.
  6. Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium ein gemeinsames Basisadressregister für zwei Speicheroperationen spezifiziert.
  7. Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium aufeinanderfolgende Speicherstellen spezifiziert.
  8. Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium eine je nach Zugriffsumfang abweichende Verschiebung spezifiziert.
  9. Prozessor nach Anspruch 8, wobei das speicheroperative Bindungskriterium spezifiziert, dass im Falle von Load-Vorgängen das Ziel der ersten Speicheroperation keine Quelle für die zweite Speicheroperation ist.
  10. Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium eine ausgerichtete Adresse nach Bindung spezifiziert.
  11. Nichtflüchtiges computerlesbares Speichermedium, das ausführbare Befehle zum Festlegen eines Prozessors umfasst, der ausgelegt ist zum: Auswerten von Kriterien zur Bindung von Speicheroperationen, um im Rahmen eines Speicherzugriffsplans speicheroperative Bindungsmöglichkeiten selektiv zu erkennen; und Erzeugen kombinierter Speicheroperationen in Reaktion auf die speicheroperativen Bindungsmöglichkeiten, um einen geänderten Speicherzugriffsplan mit beschleunigtem Speicherzugriff zu bilden.
  12. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei der geänderte Speicherzugriffsplan einen Datenkanal benutzt, der breiter ist als der vom Speicherzugriffsplan genutzte Datenkanal.
  13. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei der geänderte Speicherzugriffsplan einen gepipelineten Speicherzugriff benutzt.
  14. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium benachbarte Load- oder Store-Befehle spezifiziert.
  15. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium einen gemeinsamen Speichertyp für zwei Speicheroperationen spezifiziert.
  16. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium ein gemeinsames Basisadressregister für zwei Speicheroperationen spezifiziert.
  17. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium aufeinanderfolgende Speicherstellen spezifiziert.
  18. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium eine je nach Zugriffsumfang abweichende Verschiebung spezifiziert.
  19. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 18, wobei das speicheroperative Bindungskriterium spezifiziert, dass im Falle von Load-Vorgängen das Ziel der ersten Speicheroperation keine Quelle für die zweite Speicheroperation ist.
  20. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium eine ausgerichtete Adresse nach Bindung spezifiziert.
DE102014002840.2A 2013-03-07 2014-02-25 Vorrichtung und Verfahren für die Bindung von Speicherinformationen Withdrawn DE102014002840A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/789,394 US20140258667A1 (en) 2013-03-07 2013-03-07 Apparatus and Method for Memory Operation Bonding
US13/789,394 2013-03-07

Publications (1)

Publication Number Publication Date
DE102014002840A1 true DE102014002840A1 (de) 2014-09-11

Family

ID=50440332

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014002840.2A Withdrawn DE102014002840A1 (de) 2013-03-07 2014-02-25 Vorrichtung und Verfahren für die Bindung von Speicherinformationen

Country Status (5)

Country Link
US (1) US20140258667A1 (de)
CN (1) CN104035895B (de)
DE (1) DE102014002840A1 (de)
GB (1) GB2512472B (de)
RU (1) RU2583744C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020005614A1 (en) * 2018-06-29 2020-01-02 Qualcomm Incorporated Combining load or store instructions

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170249144A1 (en) * 2016-02-26 2017-08-31 Qualcomm Incorporated Combining loads or stores in computer processing
US10430115B2 (en) * 2017-06-20 2019-10-01 Reduxio Systems Ltd. System and method for optimizing multiple packaging operations in a storage system
US10459726B2 (en) 2017-11-27 2019-10-29 Advanced Micro Devices, Inc. System and method for store fusion
US10901745B2 (en) 2018-07-10 2021-01-26 International Business Machines Corporation Method and apparatus for processing storage instructions
EP3812892B1 (de) * 2019-10-21 2022-12-07 ARM Limited Vorrichtung und verfahren zur handhabung von speicherladeanfragen
GB2594732B (en) 2020-05-06 2022-06-01 Advanced Risc Mach Ltd Adaptive load coalescing
US20220374237A1 (en) * 2021-05-21 2022-11-24 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for identifying and prioritizing certain instructions in a microprocessor instruction pipeline

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5835972A (en) * 1996-05-28 1998-11-10 Advanced Micro Devices, Inc. Method and apparatus for optimization of data writes
US5956503A (en) * 1997-04-14 1999-09-21 International Business Machines Corporation Method and system for front-end and back-end gathering of store instructions within a data-processing system
US6349383B1 (en) * 1998-09-10 2002-02-19 Ip-First, L.L.C. System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution
US6209082B1 (en) * 1998-11-17 2001-03-27 Ip First, L.L.C. Apparatus and method for optimizing execution of push all/pop all instructions
US6334171B1 (en) * 1999-04-15 2001-12-25 Intel Corporation Write-combining device for uncacheable stores
US6587929B2 (en) * 2001-07-31 2003-07-01 Ip-First, L.L.C. Apparatus and method for performing write-combining in a pipelined microprocessor using tags
US7340495B2 (en) * 2001-10-29 2008-03-04 Intel Corporation Superior misaligned memory load and copy using merge hardware
US7853778B2 (en) * 2001-12-20 2010-12-14 Intel Corporation Load/move and duplicate instructions for a processor
US20040073773A1 (en) * 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
JP4841861B2 (ja) * 2005-05-06 2011-12-21 ルネサスエレクトロニクス株式会社 演算処理装置及びデータ転送処理の実行方法
US8904151B2 (en) * 2006-05-02 2014-12-02 International Business Machines Corporation Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath
US8219786B1 (en) * 2007-03-20 2012-07-10 Nvidia Corporation Request coalescing for instruction streams
CN100507885C (zh) * 2007-09-04 2009-07-01 北京中星微电子有限公司 存储器访问的仲裁方法、系统和设备
US8756374B2 (en) * 2010-11-05 2014-06-17 Oracle International Corporation Store queue supporting ordered and unordered stores
US9292291B2 (en) * 2012-03-28 2016-03-22 International Business Machines Corporation Instruction merging optimization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020005614A1 (en) * 2018-06-29 2020-01-02 Qualcomm Incorporated Combining load or store instructions
US11593117B2 (en) 2018-06-29 2023-02-28 Qualcomm Incorporated Combining load or store instructions

Also Published As

Publication number Publication date
US20140258667A1 (en) 2014-09-11
GB201402832D0 (en) 2014-04-02
CN104035895B (zh) 2018-01-02
RU2583744C2 (ru) 2016-05-10
GB2512472A (en) 2014-10-01
GB2512472B (en) 2015-09-30
RU2014108851A (ru) 2015-09-20
CN104035895A (zh) 2014-09-10

Similar Documents

Publication Publication Date Title
DE102014002840A1 (de) Vorrichtung und Verfahren für die Bindung von Speicherinformationen
DE102018005181B4 (de) Prozessor für einen konfigurierbaren, räumlichen beschleuniger mit leistungs-, richtigkeits- und energiereduktionsmerkmalen
DE102007063809B3 (de) Anweisungen und Logik zur Verarbeitung von Zeichenketten
DE112009000741B4 (de) Vektorbefehle zum Ermöglichen von effizienter Synchronisation und parallelen Reduktionsoperationen
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE102018126650A1 (de) Einrichtung, verfahren und systeme für datenspeicherkonsistenz in einem konfigurierbaren räumlichen beschleuniger
DE102015002383A1 (de) Verfahren und Vorrichtung zum Implementieren einer dynamischen Out-of-order-Prozessorpipeline
DE102015006863A1 (de) Befehle und Logik zum Unterbrechen und Wiederaufnehmen von Paging in Secure Enclaves
DE112013004867T5 (de) Befehl und Logik zum Bereitstellen von Push-Puffer-Kopier- und Speicher-Funktionalität
DE112013004751T5 (de) Prozessor mit mehreren Kernen, gemeinsam genutzter Kernerweiterungslogik und gemeinsam genutzten Kernerweiterungsnutzungsbefehlen
DE112013005372T5 (de) Befehl zum Bestimmen von Histogrammen
DE102015101541A1 (de) Prozessor mit granulärer addier-direktwert-fähigkeit & verfahren
DE112011105121T5 (de) Systeme, Vorrichtungen und Verfahren zum Schrittmustersammeln von Datenelementen und Schrittmusterstreuen von Datenelementen
DE112013001747T5 (de) Optimieren des Verbindens von Anweisungen
DE202019005682U1 (de) Hardwaregestützte Paging-Mechanismen
DE102010053967A1 (de) Bitbereich-Isolierbefehle, Verfahren und Vorrichtung
DE102014119281A1 (de) Prozessor mit virtualisierter befehlssatzstruktur & verfahren
DE102013201767A1 (de) Übersetzungs-Adresse-Zwischenspeicher für einen Mikroprozessor
DE112016004324T5 (de) Heterogene Kompressionsarchitektur für optimiertes Kompressionsverhältnis
DE112013004800T5 (de) Anweisung zur Bitverschiebung nach links mit Ziehen von Einsen in niedrigwertigere Bit
DE112013005239T5 (de) Anweisung zur Beschleunigung des drahtlosen SNOW 3G- Sicherheitsalgorithmus
DE102016006402A1 (de) Persistente commit-prozessoren, verfahren, systeme und befehle
DE112013003735B4 (de) Systeme, Vorrichtungen und Verfahren zum Ausführen von Rotation und XOR als Reaktion auf eine einzige Anweisung
DE112013001735T5 (de) Optimieren des Verbindens von Anweisungen
DE112011105123T5 (de) Systeme, Vorrichtungen und Verfahren für Sprünge unter Verwendung eines Maskenregisters

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: IMAGINATION TECHNOLOGIES, LLC (N.D.GES.D. STAA, US

Free format text: FORMER OWNER: MIPS TECHNOLOGIES, INC., SUNNYVALE, CALIF., US

Owner name: MIPS TECH, LLC (N.D.GES.D.STAATES DELAWARE), S, US

Free format text: FORMER OWNER: MIPS TECHNOLOGIES, INC., SUNNYVALE, CALIF., US

R082 Change of representative

Representative=s name: CMS CAMERON MCKENNA NABARRO OLSWANG LLP, GB

Representative=s name: OLSWANG GERMANY LLP, DE

R081 Change of applicant/patentee

Owner name: MIPS TECH, LLC (N.D.GES.D.STAATES DELAWARE), S, US

Free format text: FORMER OWNER: IMAGINATION TECHNOLOGIES, LLC (N.D.GES.D. STAATES DELAWARE), SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: CMS CAMERON MCKENNA NABARRO OLSWANG LLP, GB

Representative=s name: OLSWANG GERMANY LLP, DE

R082 Change of representative

Representative=s name: CMS CAMERON MCKENNA NABARRO OLSWANG LLP, GB

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee