DE102014002840A1 - Vorrichtung und Verfahren für die Bindung von Speicherinformationen - Google Patents
Vorrichtung und Verfahren für die Bindung von Speicherinformationen Download PDFInfo
- 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
Links
- 230000027455 binding Effects 0.000 title claims abstract description 40
- 238000009739 binding Methods 0.000 title claims abstract description 40
- 238000003860 storage Methods 0.000 title claims description 19
- 238000000034 method Methods 0.000 title description 11
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 6
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
Abstract
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 Prozessor100 , der gemäß einer Ausführungsform der Erfindung ausgelegt ist. Der Prozessor100 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 Busschnittstelleneinheit102 , die mit einer Befehlsausleseeinheit (Instruction-Fetch-Einheit)104 verbunden ist. Die Instruction-Fetch-Einheit104 liest Befehle aus einem Instruction-Cache110 aus. Die Speicherverwaltungseinheit (Memory Management Unit)108 stellt für die Instruction-Fetch-Einheit104 Übersetzungen virtueller Adressen in physische Adressen bereit. Die Speicherverwaltungseinheit108 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 Decoder112 greift auf die Befehlspuffer106 zu. Der Decoder112 ist für die Realisierung der dynamischen speicheroperativen Bindung ausgelegt. Der Decoder112 gibt einen decodierten Befehl an eine Funktionseinheit, wie einen Coprozessor114 , eine Gleitkommaeinheit (FPU)116 , eine arithmetisch-logische Einheit (ALU)118 oder eine Speicherpipe120 , die Load- und Store-Adressen für den Zugriff auf einen Datencache122 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 Speicherpipe120 einen 64-Bit-Kanal für den Zugriff auf Datencache122 verwenden. Alternativ kann die Speicherpipe120 einen gepipelineten Speicherzugriff auf Datencache122 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 Prozessor100 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)
- 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.
- Prozessor nach Anspruch 1, wobei der geänderte Speicherzugriffsplan einen Datenkanal benutzt, der breiter ist als der vom Speicherzugriffsplan genutzte Datenkanal.
- Prozessor nach Anspruch 1, wobei der geänderte Speicherzugriffsplan einen gepipelineten Speicherzugriff benutzt.
- Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium benachbarte Load- oder Storebefehle spezifiziert.
- Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium einen gemeinsamen Speichertyp für zwei Speicheroperationen spezifiziert.
- Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium ein gemeinsames Basisadressregister für zwei Speicheroperationen spezifiziert.
- Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium aufeinanderfolgende Speicherstellen spezifiziert.
- Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium eine je nach Zugriffsumfang abweichende Verschiebung spezifiziert.
- 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.
- Prozessor nach Anspruch 1, wobei das speicheroperative Bindungskriterium eine ausgerichtete Adresse nach Bindung spezifiziert.
- 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.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei der geänderte Speicherzugriffsplan einen Datenkanal benutzt, der breiter ist als der vom Speicherzugriffsplan genutzte Datenkanal.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei der geänderte Speicherzugriffsplan einen gepipelineten Speicherzugriff benutzt.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium benachbarte Load- oder Store-Befehle spezifiziert.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium einen gemeinsamen Speichertyp für zwei Speicheroperationen spezifiziert.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium ein gemeinsames Basisadressregister für zwei Speicheroperationen spezifiziert.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium aufeinanderfolgende Speicherstellen spezifiziert.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium eine je nach Zugriffsumfang abweichende Verschiebung spezifiziert.
- 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.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei das speicheroperative Bindungskriterium eine ausgerichtete Adresse nach Bindung spezifiziert.
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)
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)
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)
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 |
-
2013
- 2013-03-07 US US13/789,394 patent/US20140258667A1/en not_active Abandoned
-
2014
- 2014-02-18 GB GB1402832.8A patent/GB2512472B/en not_active Expired - Fee Related
- 2014-02-25 DE DE102014002840.2A patent/DE102014002840A1/de not_active Withdrawn
- 2014-03-06 RU RU2014108851/08A patent/RU2583744C2/ru not_active IP Right Cessation
- 2014-03-07 CN CN201410082072.5A patent/CN104035895B/zh not_active Expired - Fee Related
Cited By (2)
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 |