DE102019103114A1 - Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung - Google Patents

Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung Download PDF

Info

Publication number
DE102019103114A1
DE102019103114A1 DE102019103114.1A DE102019103114A DE102019103114A1 DE 102019103114 A1 DE102019103114 A1 DE 102019103114A1 DE 102019103114 A DE102019103114 A DE 102019103114A DE 102019103114 A1 DE102019103114 A1 DE 102019103114A1
Authority
DE
Germany
Prior art keywords
address translation
memory
address
resource utilization
memory controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019103114.1A
Other languages
English (en)
Inventor
Hyun-Joon Kang
Tae-hun Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102019103114A1 publication Critical patent/DE102019103114A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es werden eine Speichersteuereinrichtung (100) und ein Anwendungsprozessor (AP) zum Steuern einer Auslastung und Leistung einer Eingabe/Ausgabe(I/O)-Vorrichtung und ein Verfahren zum Betätigen der Speichersteuereinrichtung (100) angegeben. Die Speichersteuereinrichtung (100) weist auf: einen Adressenübersetzer (110), der dafür ausgelegt ist, auf Basis eines Adressenübersetzungsschemas, das auf Basis einer Speicherressourcenauslastung (RUV) aus einer Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) ausgewählt wird, eine erste Adresse (SA), die aus einem Host-Prozessor (300) empfangen wird, in eine zweite Adresse (MA) zu übersetzen, die eine Speicheradresse angibt; und ein Auswertungsmodul (120), das dafür ausgelegt ist, die Speicherressourcenauslastung von jedem der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) auf Basis einer Mehrzahl von Speicheradressen (MA1, MA2, MA3), die von jedem von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) erzeugt werden, auszuwerten.

Description

  • HINTERGRUND
  • Ausführungsbeispiele von erfinderischen Ideen betreffen eine Speichersteuereinrichtung und/oder einen Anwendungsprozessor. Zum Beispiel betreffen zumindest manche Ausführungsformen eine Speichersteuereinrichtung zum Steuern einer Auslastung und einer Leistung einer Eingabe/Ausgabe(I/O)-Vorrichtung, einen Anwendungsprozessor (AP), der eine Speichersteuereinrichtung aufweist, und/oder ein Verfahren zur Betätigung der Speichersteuereinrichtung.
  • Eine Speichersteuereinrichtung oder ein AP können in einem elektronischen System, wie etwa einem Datenverarbeitungssystem, verwendet werden und können verschiedene Signale mit verschiedenen peripheren Vorrichtungen austauschen. Zum Beispiel kann die Speichersteuereinrichtung eine flüchtige Speichervorrichtung, wie etwa einen dynamischen Speicher mit wahlfreiem Zugriff (Dynamic Random Access Memory, DRAM), oder eine nichtflüchtige Speichervorrichtung, wie etwa einen Flash-Memory oder einen auf Widerstand basierenden Speicher, steuern und kann eine Systemadresse, die von einem Host-Prozessor empfangen wird, der Zugriff auf die Speichervorrichtung verlangt, in eine Speicheradresse übersetzen, die für die Speichervorrichtung geeignet ist. Die Speichersteuereinrichtung kann ein Adressenübersetzungsschema nutzen, um die Systemadresse in die Speicheradresse zu übersetzen.
  • KURZFASSUNG
  • Ausführungsbeispiele der erfinderischen Ideen geben eine Speichersteuereinrichtung, mit der die Auslastung und die Leistung einer Speichervorrichtung und anderer Eingabe/Ausgabe-Vorrichtungen gesteigert werden können, einen Anwendungsprozessor, der die Speichersteuereinrichtung aufweist, und/oder ein Verfahren zur Betätigung der Speichersteuereinrichtung an.
  • Gemäß manchen Ausführungsbeispielen der erfinderischen Ideen wird eine Speichersteuereinrichtung zum Steuern einer Speichervorrichtung angegeben. Die Speichersteuereinrichtung weist eine Verarbeitungsschaltung auf, die dafür ausgelegt ist, auf Basis eines Adressenübersetzungsschemas eine erste Adresse, die aus einem Host-Prozessor empfangen wird, in eine zweite Adresse zu übersetzen, die mit der Speichervorrichtung assoziiert ist, wobei das Adressenübersetzungsschema auf Basis einer Speicherressourcenauslastung aus einer Mehrzahl von Adressenübersetzungsschemata ausgewählt wird, und die Speicherressourcenauslastung von jedem von der Mehrzahl von Adressenübersetzungsschemata auf Basis einer Mehrzahl von Speicheradressen, die unter Verwendung der Mehrzahl von Adressenübersetzungsschemata erzeugt werden, auszuwerten.
  • Gemäß anderen Ausführungsbeispielen der erfinderischen Ideen wird ein Anwendungsprozessor angegeben, der aufweist: einen Host-Prozessor, der dafür ausgelegt ist, eine Zugriffsanfrage und eine erste Adresse bereitzustellen; und eine Speichersteuereinrichtung, die dafür ausgelegt ist, eine Adressenübersetzung durchzuführen, um auf Basis eines ersten Adressenübersetzungsschemas, das aus einer Mehrzahl von Adressenübersetzungsschemata ausgewählt wird, die erste Adresse in eine zweite Adresse zu übersetzen, die mit einer Speicheradresse assoziiert ist, während eines ersten Zeitraums eine Ressourcenauslastungsbewertung zu berechnen, die für jedes von der Mehrzahl von Adressenübersetzungsschemata eine Speicherressourcenauslastung angibt, während sie die Adressenübersetzung auf Basis des ersten Adressenübersetzungsschemas durchführt, und während eines zweiten Zeitraums die erste Adresse auf Basis eines zweiten Adressenübersetzungsschemas in die zweite Adresse zu übersetzen, weil die Speicherressourcenauslastung des zweiten Adressenübersetzungsschemas unter der Mehrzahl von Adressenübersetzungsschemata während des ersten Zeitraums am größten gewesen ist, wobei der zweite Zeitraum nach dem ersten Zeitraum kommt.
  • Gemäß einem noch anderen Ausführungsbeispiel der erfinderischen Ideen wird ein Verfahren zur Betätigung einer Speichervorrichtung angegeben, um eine Systemadresse in eine Speicheradresse zu übersetzen, die mit einer Speichervorrichtung assoziiert ist. In manchen Ausführungsbeispielen beinhaltet das Verfahren das Übersetzen der Systemadresse in die Speicheradresse auf Basis eines Adressenübersetzungsschemas, das aus einer Mehrzahl von in Frage kommenden Übersetzungsschemakandidaten ausgewählt wird; das Berechnen von Ressourcenauslastungsbewertungen für die Mehrzahl von in Frage kommenden Übersetzungsschemakandidaten; das Auswählen eines nächsten Adressenübersetzungsschemas, das eine höchste Ressourcenauslastung aufweist, aus der Mehrzahl von in Frage kommenden Übersetzungsschemakandidaten auf Basis der Ressourcenauslastungsbewertungen; das Ändern des Adressenübersetzungsschemas in das nächste Übersetzungsschema; und das Übersetzen der Systemadresse in die Speicheradresse auf Basis des nächsten Übersetzungsschemas.
  • Gemäß noch anderen Ausführungsbeispielen der erfinderischen Ideen wird ein Datenverarbeitungssystem angegeben, das aufweist: mindestens einen eigentumsrechtlich geschützten (IP-) Block; eine Eingabe/Ausgabe-Vorrichtung, die dafür ausgelegt ist, auf den mindestens einen IP-Block zuzugreifen; und eine Steuereinrichtung, die dafür ausgelegt ist, durch Durchführen von maschinellem Lernen auf Basis von Systemadressen, die aus dem mindestens einen IP-Block empfangen werden, zeitlich nacheinander eine Mehrzahl von Adressenübersetzungsschemata und eine Ressourcenauslastungsbewertung für jedes von der Mehrzahl von Adressenübersetzungsschemata abzuleiten und auf Basis eines Adressenübersetzungsschemas, das auf Basis der Ressourcenauslastungsbewertung aus der Mehrzahl von Adressenübersetzungsschemata ausgewählt wird, die aus dem mindestens einen IP-Block empfangenen Systemadressen in eine Vorrichtungsadresse für die Eingabe/Ausgabe-Vorrichtung zu übersetzen.
  • Figurenliste
  • Ausführungsbeispiele der erfinderischen Ideen werden aus der folgenden ausführlichen Beschreibung in Zusammenschau mit den begleitenden Zeichnungen besser verständlich werden:
    • 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, das eine Speichersteuereinrichtung aufweist, gemäß einem Ausführungsbeispiel der erfinderischen Ideen;
    • 2 ist ein Diagramm, das ein Beispiel für ein Adressenübersetzungsschema erläutert;
    • 3A und 3B sind Diagramme zur Erläuterung eines Beispiels für eine Speichervorrichtung von 1;
    • 4 ist ein Blockdiagramm einer Speichersteuereinrichtung gemäß einem Ausführungsbeispiel der erfinderischen Ideen;
    • 5 ist ein Blockdiagramm eines ersten Zählerblocks von 4;
    • 6 ist ein Ablaufschema eines Verfahrens zur Betätigung einer Speichersteuereinrichtung gemäß einem Ausführungsbeispiel der erfinderischen Ideen;
    • 7 ist ein Ablaufschema eines Verfahrens zur Berechnung einer Ressourcenauslastungsbewertung in 6;
    • 8 ist ein Diagramm zur Erläuterung von Auswertungskriterien für die Berechnung einer Ressourcenauslastungsbewertung und eines Verfahrens zur Berechnung von Werten der Auswertungskriterien in einem konkreten Beispiel;
    • 9A und 9B sind Diagramme von Verfahren zur Aktualisierung einer Ressourcenauslastungsbewertung gemäß Ausführungsbeispielen;
    • 10A bis 10E sind Diagramme zur Erläuterung eines Verfahrens zur dynamischen Änderung eines Adressenübersetzungsschemas, das ein Verwendungsmuster widerspiegelt, unter Verwendung einer Speichersteuereinrichtung gemäß einem Ausführungsbeispiel der erfinderischen Ideen;
    • 11 ist ein Graph, der eine Speicherlatenz in Bezug auf einen Memory-Page-Status zeigt;
    • 12 ist ein Blockdiagramm einer Speichersteuereinrichtung gemäß manchen Ausführungsbeispielen der erfinderischen Ideen;
    • 13 ist ein Blockdiagramm einer Speichersteuereinrichtung gemäß manchen Ausführungsbeispielen der erfinderischen Ideen;
    • 14 ist ein Diagramm eines Beispiels für ein Verfahren zur Einstellung eines Adressenübersetzungsschemas auf Basis von maschinellem Lernen; und
    • 15 ist ein Blockdiagramm eines Anwendungsprozessors gemäß einem Ausführungsbeispiel der erfinderischen Ideen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, das eine Speichersteuereinrichtung aufweist, gemäß einem Ausführungsbeispiel der erfinderischen Ideen.
  • Wie in 1 gezeigt ist, kann ein Datenverarbeitungssystem 1000 in verschiedenen Arten von elektronischen Vorrichtungen verbaut sein, wie etwa in einem Laptop-Computer, einem Smartphone, einem Tablet-Personal-Computer (PC), einer Drohne, einem persönlichen digitalen Assistenten (Personal Digital Assistant, PDA), einem digitalen Assistenten für Unternehmen (Enterprise Digital Assistant, EDA), einer Digitalkamera, einem tragbaren Multimedia-Wiedergabegerät (PMP), einer Handheld-Spielekonsole, einer mobilen Internet-Vorrichtung, einer Multimedia-Vorrichtung, einem am Körper zu tragenden Computer, einer Vorrichtung, die dem Internet der Dinge (Internet of Things, IoT) dient, einer Vorrichtung, die dem Internet von Allem (Internet of Everything, IoE) dient, einem E-Book, einem Smart-Home-Gerät, einer medizinischen Vorrichtung und einer Vorrichtung, die dem Fahren eines Fahrzeugs dient.
  • Das Datenverarbeitungssystem 1000 kann eine Speichersteuereinrichtung 100, eine Speichervorrichtung 200 und einen Prozessor 300 aufweisen. Das Datenverarbeitungssystem 1000 kann auch verschiedene Arten von Eingabe/Ausgabe(I/O)-Vorrichtungen und urheberrechtlich geschützte Produkte (IPs) (oder IP-Blöcke) aufweisen. In manchen Ausführungsbeispielen können die Speichersteuereinrichtung 100 und der Prozessor 300 in einem einzigen Halbleiterchip integriert sein. Zum Beispiel können die Speichersteuereinrichtung 100 und der Prozessor 300 einen Anwendungsprozessor (AP) bilden, der als System-on-Chip (SoC) implementiert ist.
  • Der Prozessor 300 ist ein IP, der einen Zugriff auf die Speichervorrichtung 200 verlangt. Der Prozessor 300 kann beispielsweise eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU) und eine Anzeigesteuereinrichtung aufweisen und kann als Master-IP bezeichnet werden. Der Prozessor 300 kann eine Zugriffsanfrage RQ (z.B. eine Schreibanfrage oder eine Leseanfrage für Daten DATA) und eine Systemadresse SA über einen Systembus an die Speichersteuereinrichtung 100 senden.
  • Die Speichervorrichtung 200 kann einen flüchtigen Speicher und/oder einen nichtflüchtigen Speicher beinhalten. Wenn die Speichervorrichtung 200 einen flüchtigen Speicher beinhaltet, kann die Speichervorrichtung 200 einen Speicher wie etwa einen Double Data Rate (DDR) Synchronous Dynamic Random Access Memory (SDRAM), einen Niedrigenergie-DDR(LPDDR)-SDRAM, einen Grafik-DDR(GDDR)-SDRAM und einen Rambus-DRAM (RDRAM) beinhalten. Ausführungsbeispiele der erfinderischen Ideen sind aber nicht darauf beschränkt. Zum Beispiel kann die Speichervorrichtung 200 einen nichtflüchtigen Speicher wie etwa einen Flash-Speicher, einen magnetischen RAM (MRAM), einen ferroelektrischen RAM (FRAM), einen Phasenänderungs-RAM (PRAM) und einen auf Widerstand basierenden RAM (ReRAM) einschließen.
  • Die Speichervorrichtung 200 kann eine Mehrzahl von Speichern M1 bis Mm aufweisen. Jeder von den Speichern M1 bis Mm bezeichnet eine physisch und logisch klassifizierte Speicherressource. Jeder von den Speichern M1 bis Mm kann einen Speicher-Rank, eine Speicherbank, eine Speicher-Row bzw. -Reihe (oder Page) und eine Speicher-Column bzw. -Spalte aufweisen, die im Folgenden als Rank, Bank, Reihe und Spalte bezeichnet werden, oder kann logisch klassifizierte Regionen einschließen.
  • Die Speichervorrichtung 200 kann ein Halbleiter-Package, das mindestens einen Speicherchip aufweist, oder ein Speichermodul, in dem eine Mehrzahl von Speicherchips auf einer Modulplatine montiert sind, sein. Die Speichervorrichtung 200 kann in einem SoC eingebettet sein.
  • Die Speichersteuereinrichtung 100 ist eine Schnittstelle, die einen Zugriff auf die Speichervorrichtung 200 gemäß der Art der Speichervorrichtung 200 (z.B. Flash-Speicher oder DRAM) steuert. Die Speichersteuereinrichtung 100 kann die Speichervorrichtung 200 so steuern, dass Daten DATA als Reaktion auf eine Schreibanfrage, die aus dem Prozessor 300 empfangen wird, in die Speichervorrichtung 200 geschrieben werden oder als Reaktion auf eine Leseanfrage, die aus dem Prozessor 300 empfangen wird, aus der Speichervorrichtung 200 gelesen werden. Gemäß der Zugriffsanfrage RQ und der Systemadresse SA des Prozessors 300 erzeugt die Speichersteuereinrichtung 100 verschiedene Signale, z.B. einen Befehl CMD und eine Speicheradresse MA zum Steuern der Speichervorrichtung 200, und stellt die verschiedenen Signale an der Speichervorrichtung 200 bereit.
  • Die Speichersteuereinrichtung 100 kann die aus dem Prozessor 300 empfangene Systemadresse SA in die Speicheradresse MA übersetzen, die der Speichervorrichtung 200 entspricht. Mit Systemadresse SA wird eine Adressenstruktur bezeichnet, die vom Prozessor 300 erkannt wird, und mit Speicheradresse MA wird eine Adressenstruktur, wie ein Rank, eine Bank, eine Reihe oder eine Spalte, bezeichnet, die von der Speichervorrichtung 200 erkannt wird. Die Speichersteuereinrichtung 100 kann die Systemadresse SA auf Basis eines Adressenübersetzungsschemas, das eingestellt worden ist, in die Speicheradresse MA übersetzen. Ein Adressenübersetzungsschema wird unter Bezugnahme auf 2 beschrieben.
  • 2 ist ein Diagramm, das ein Beispiel für ein Adressenübersetzungsschema erläutert.
  • Wie in 2 gezeigt ist, können die Systemadresse SA und die Speicheradresse MA eine Mehrzahl von Bits beinhalten. Hierbei bezeichnet MSB ein höchstwertiges Bit und LSB bezeichnet ein niedrigstwertiges Bit. Als nichtbeschränkendes Beispiel kann die Systemadresse SA als Hexadezimalcode (z.B. 0X80000000) ausgedrückt werden, der acht Code-Werte aufweist und der 32 Bits enthalten kann. 32 Bits der Systemadresse SA können auf ein Rank-Signal RK, ein Banksignal BK, ein Reihensignal R und ein Spaltensignal C der Speicheradresse MA aufgeteilt sein. Ein Rank, eine Bank, eine Reihe und eine Spalte, die der Speicheradresse MA entsprechen, können in der Speichervorrichtung 200 gemäß dem Rank-Signal RK, dem Banksignal BK, dem Reihensignal R und dem Spaltensignal C der Speicheradresse MA ausgewählt werden.
  • Das Adressenübersetzungsschema kann ein Verfahren der Zuordnung von Bits, die in der Systemadresse SA enthalten sind, zum Rank-Signal RK, zum Banksignal BK, zum Reihensignal R und zum Spaltensignal C bezeichnen. Wie in 2 gezeigt ist, können beispielsweise manche Bits oder kann ein Bit von den Bits der Systemadresse SA einem Signal vom Rank-Signal RK, Banksignal BK, Reihensignal R und Spaltensignal C zugeordnet werden oder kann bzw. können mit anderen Bits einer Operation (z.B. einer exklusiven OR-Operation) unterzogen werden, und das Ergebnis der Operation kann einem Signal vom Rank-Signal RK, Banksignal BK, Reihensignal R und Spaltensignal C zugeordnet werden. Das Adressenübersetzungsschema kann mit einer Position eines Bits, das einem Signal vom Rank-Signal RK, Banksignal BK, Reihensignal R und Spaltensignal C zugeordnet ist, und einer Hash-Funktion, die das Bit verwendet, dargestellt werden. Das Adressenübersetzungsschema kann mit einer Auswahl der Bitposition und der Hash-Funktion variieren.
  • Es wird erneut auf 1 Bezug genommen, wo gezeigt ist, dass die Speichersteuereinrichtung 100 eine Verarbeitungsschaltung und einen Speicher aufweisen kann.
  • Die Verarbeitungsschaltung kann unter anderem ein Prozessor, eine zentrale Verarbeitungseinheit (CPU), eine Steuereinrichtung, eine arithmetisch-logische Einheit (ALU), einen digitalen Signalprozessor, einen Mikrocomputer, eine im Feld programmierbare Gatteranordnung (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), ein System-on-Chip (SoC), eine programmierbare logische Einheit, ein Mikroprozessor oder irgendeine Vorrichtung sein, die in der Lage ist, Operationen auf definierte Weise durchzuführen.
  • Die Verarbeitungsschaltung kann über ein Layout-Design oder die Ausführung von computerlesbaren Befehlen, die in einem Speicher (nicht gezeigt) gespeichert sind, als zweckgebundener Computer konfiguriert sein, um die Funktionen eines Adressenübersetzers 110 und eines Auswertungsmoduls 120 zu implementieren.
  • Der Adressenübersetzer 110 kann eine Mehrzahl von Adressenübersetzungsmodulen aufweisen, z.B. ein erstes Adressenübersetzungsmodul MD1, ein zweites Adressenübersetzungsmodul MD2 und ein drittes Adressenübersetzungsmodul MD3, die gemäß unterschiedlicher Adressenübersetzungsschemata (oder Adressenabbildungsschemata) implementiert werden. Adressenübersetzungsschemata des ersten bis dritten Adressenübersetzungsmoduls MD1 bis MD3 können jeweils eingestellt (oder alternativ dazu vorgegeben) werden, und das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 können durch Hardware implementiert werden. Ausführungsbeispiele der erfinderischen Ideen sind aber nicht darauf beschränkt. In manchen Ausführungsbeispielen können das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 durch eine Verarbeitungsschaltung implementiert werden, die Software ausführt, um den Prozessor in einen zweckgebundenen Prozessor zu transformieren, und Adressenübersetzungsschemata können während des Betriebs des Datenverarbeitungssystems 1000 entworfen werden.
  • Auch wenn der Adressenübersetzer 110 in 1 das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 aufweist, sind Ausführungsbeispiele der erfinderischen Ideen nicht darauf beschränkt. Der Adressenübersetzer 110 kann mindestens zwei Adressenübersetzungsmodule aufweisen.
  • Jedes vom ersten bis dritten Adressenübersetzungsmodule MD1 bis MD3 kann eine Adressenübersetzung an der Systemadresse SA durchführen und die Speicheradresse MA erzeugen. Jedoch kann die Speicheradresse MA, die von einem Adressenübersetzungsmodul ausgegeben wird, das aus dem ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 ausgewählt wird, an die Speichervorrichtung 200 gesendet werden. Anders ausgedrückt können das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 Übersetzungsmodule sein, die als Adressenübersetzungsmodul, das auf die Speichervorrichtung 200 angewendet wird, in Frage kommen, und eines, das aus dem ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 ausgewählt wird, kann eine Adressenübersetzung tatsächlich durchführen. Wenn beispielsweise das erste Adressenübersetzungsmodul MD1 ausgewählt wird, würde nur die Speicheradresse MA, die vom ersten Adressenübersetzungsmodul MD1 ausgegeben wird, an die Speichervorrichtung 200 gesendet. Anders ausgedrückt können Adressenübersetzungsoperationen des zweiten und des dritten Adressenübersetzungsmoduls MD2 und MD3 Hintergrundoperationen sein.
  • Das Auswertungsmodul 120 kann eine Speicherressourcenauslastung von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 in Echtzeit auswerten. Im Einzelnen kann das Auswertungsmodul 120 die Speicheradressen MA, die von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 ausgegeben werden, analysieren und die Speicherressourcenauslastung von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 auswerten. Zum Beispiel kann das Auswertungsmodul 120 auf Basis von mindestens zwei von einem Rank, einer Bank und einer Reihe, die von der vom ersten Adressenübersetzungsmodul MD1 ausgegebenen Speicheradresse MA ausgewählt werden, eine Ressourcenauslastungsbewertung berechnen, mit der die Speicherressourcenauslastung des ersten Adressenübersetzungsmoduls MD1 angegeben wird. In manchen Ausführungsbeispielen kann das Auswertungsmodul 120 die Ressourcenauslastungsbewertung auf Basis eines Rank, einer Bank und einer Reihe berechnen. Das Auswertungsmodul 120 kann Ressourcenauslastungsbewertungen des zweiten und des dritten Adressenübersetzungsmoduls MD2 und MD3 jeweils auf die gleiche Weise berechnen wie oben beschrieben, und daher kann das Auswertungsmodul 120 die Speicherressourcenauslastung von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 auswerten. Eine Ressourcenauslastungsbewertung kann in Echtzeit berechnet und aktualisiert werden. Ein Verfahren zum Berechnen einer Ressourcenauslastungsbewertung wird nachstehend unter Bezugnahme auf 8 bis 10E beschrieben.
  • Die Speichersteuereinrichtung 100 kann auf Basis eines aktuellsten Ergebnisses einer Auswertung der Speicherressourcenauslastung in Bezug auf jedes vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 während eines Systemneustarts oder eines Ruhezeitraums aus dem ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 ein Adressenübersetzungsmodul mit der höchsten Speicherressourcenauslastung auswählen und kann das ausgewählte Adressenübersetzungsmodul als Adressenübersetzungsmodul des Adressenübersetzers 110 verwenden. Zum Beispiel kann das erste Adressenübersetzungsmodul MD1 eine Adressenübersetzung durchführen, und gleichzeitig kann die Speicherressourcenauslastung des ersten bis dritten Adressenübersetzungsmoduls MD1 bis MD3 ausgewertet werden. Wenn das Auswertungsergebnis bis zu einem Systemneustart angibt, das die Speicherressourcenauslastung des zweiten Adressenübersetzungsmoduls MD2 am höchsten ist, kann ein Adressenübersetzungsmodul, das im Adressenübersetzer 110 verwendet wird, während des Systemneustarts vom ersten Adressenübersetzungsmoduls MD1 in das zweite Adressenübersetzungsmodul MD2 geändert werden. Ab dem Abschluss des Systemneustarts kann das zweite Adressenübersetzungsmodul MD2 die Adressenübersetzung durchführen. Dieser Ablauf kann wiederholt werden.
  • Da die Speichervorrichtung 200 eine Mehrzahl der Speicher M1 bis Mm aufweist, können eine Page-Konfliktrate (oder Page-Hit-Rate) und eine Speicherauslastung der Speichervorrichtung 200 je nach dem Adressenübersetzungsschema, das in der Speichersteuereinrichtung 100 verwendet wird, variieren, d.h. je nachdem, auf welchen von den Speichern M1 bis Mm die Systemadresse SA abgebildet wird. Auch wenn ein Adressenübersetzungsschema, das unter verschiedenen Bedingungen die Speicherauslastung maximieren kann, durch viele Leistungsprüfungen während der Herstellung der Speichersteuereinrichtung 100 ausgewählt wird, kann es sein, dass das standardisierte Adressenübersetzungsschema nicht zu Verwendungsmustern verschiedener Nutzer passt. Gemäß einem Verwendungsmuster eines Nutzers, d.h. der Art der Anwendungen von den Anwendungen, die im Datenverarbeitungssystem 1000 zur Verfügung stehen, die vom Nutzer üblicherweise ausgeführt werden, kann das Muster der Systemadresse SA, die aus dem Prozessor 300 empfangen wird, d.h. können Positionen von Bits, die unter allen Bits, die in der Systemadresse SA enthalten sind, häufig geschaltet werden, geändert werden.
  • Indessen kann das Ergebnis der Auswertung der Speicherressourcenauslastung in Bezug auf eine Mehrzahl von Adressenübersetzungsschemata in der Speichersteuereinrichtung 100 mit dem Muster der Systemadresse SA variieren. Demgemäß kann in einem oder mehreren Ausführungsbeispielen die Speichersteuereinrichtung 100 durch Auswerten der Speicherressourcenauslastung in Echtzeit in Bezug auf eine Mehrzahl von Adressenübersetzungsschemata und durch dynamisches Ändern eines Adressenübersetzungsschemas auf Basis des Auswertungsergebnisses ein Adressenübersetzungsschema gemäß dem Muster der Systemadresse SA adaptiv betreiben. Infolgedessen können die Auslastung und die Leistung der Speichervorrichtung 200 erhöht werden.
  • 3A und 3B sind Diagramme zur Erläuterung eines Beispiels für eine Speichervorrichtung von 1.
  • Wie in 3A gezeigt ist, kann eine Speichervorrichtung 200a einen ersten bis 16. Speicher M1 bis M16 aufweisen. Der erste bis achte Speicher M1 bis M8 können einen ersten Rank RK0 bilden, und der neunte bis 16. Speicher M9 bis M16 können einen zweiten Rank RK1 bilden. Ein Befehls- und Adressensignal C/A kann von der Speichersteuereinrichtung 100 zur Speichervorrichtung 200a gesendet werden. Die Speicheradresse MA, die im Befehls- und Adressensignal C/A enthalten ist, kann ein Rank-Signal, ein Banksignal, ein Reihensignal und ein Spaltensignal enthalten, wie oben beschrieben. Die Speichersteuereinrichtung 100 kann mit der Speichervorrichtung 200a über einen Datenbus (oder einen Datenkanal) 20 Daten austauschen, die eine Mehrzahl von Bits enthalten, z.B. Daten[63:0], die 64 Bits enthalten. Im Folgenden wird davon ausgegangen, dass ein Schreibbefehl von der Speichersteuereinrichtung 100 empfangen wird.
  • Daten[63:0] können durch acht Bits an den ersten bis achten Speicher M1 bis M8 und an den neunten bis 16. Speicher M9 bis M16 gesendet werden. Einer vom ersten und zweiten Rank RK0 und RK1 kann gemäß einem Rank-Signal der Speicheradresse MA ausgewählt werden, und Daten[63:0] können an den ausgewählten Rank gesendet werden.
  • Der erste Speicher M1 von 3A wird unter Bezugnahme auf 3B beschrieben. Der erste Speicher M1 kann eine erste bis achte Bank BK0 bis BK7 aufweisen. Daten[7:0] können über einen Selektor MUX an eine ausgewählte Bank gesendet werden. Der Selektor MUX kann auf Basis einer Bank der Speicheradresse MA betätigt werden. Eine von der ersten bis achten Bank BK0 bis BK7 kann gemäß einem Banksignal der Speicheradresse MA ausgewählt werden, und Daten[7:0] können an die ausgewählte Bank gesendet werden.
  • Jede von der ersten bis achten Bank BK0 bis BK7 kann ein Speicherzellenfeld 21, einen Reihendecoder 22, eine Schreib/Lese-Schaltung 23 und einen Spaltendecoder 24 aufweisen. Das Speicherzellenfeld 21 kann eine erste bis achte Reihe R0 bis R7 und eine erste bis achte Spalte C0 bis C7 aufweisen. Der Reihendecoder 22 und der Spaltendecoder 24 können gemäß einer Reihe und einer Spalte der Speicheradresse MA eine Region (z.B. eine Page) im Speicherzellenfeld 21 auswählen, in die Daten[7:0] geschrieben werden sollen. Die Schreib/Lese-Schaltung 23 kann Daten[7:0] in die ausgewählte Region schreiben.
  • Eine Zeit, während der Daten zwischen der Speichersteuereinrichtung 100 und der Speichervorrichtung 200 gesendet und empfangen werden, und eine Zeit, die es braucht, bis Daten in einen Rank, eine Bank und eine Reihe, die von der Speicheradresse MA ausgewählt werden, geschrieben werden, kann sich auf die Speicherlatenz auswirken. Wenn nacheinander empfangene Speicheradressen MA unterschiedliche Ranks oder unterschiedliche Bänke auswählen, kann ein Schreiben in die Ranks und Bänke parallel durchgeführt werden. Wenn die nacheinander empfangenen Speicheradressen MA den gleichen Rank, die gleiche Bank und die gleiche Reihe auswählen, kann außerdem eine Zeit im Vergleich zu dann verkürzt werden, wenn die nacheinander empfangenen Speicheradressen MA den gleichen Rank und die gleiche Bank, aber unterschiedliche Reihen auswählen. Wie oben angegeben, kann dann, wenn die Speicheradressen MA unterschiedliche Ranks oder Bänke oder denselben Rank, dieselbe Bank und dieselbe Reihe auswählen, eine Speicherauslastung erhöht werden und die Latenz kann verringert werden.
  • Somit kann die Speichersteuereinrichtung 100 durch Echtzeit-Auswertung einer Speicherressourcenauslastung mit Bezug auf eine Mehrzahl von Adressenübersetzungsschemata auf Basis von mindestens zwei von einem Rank, einer Bank und einer Reihe, die von der gemäß den Adressenübersetzungsschemata ausgegebenen Speicheradresse MA ausgewählt werden, und durch dynamische Verwendung eines Adressenübersetzungsschemas, das die höchste Speicherressourcenauslastung aufweist, die Speicherauslastung erhöhen.
  • 4 ist ein Blockdiagramm einer Speichersteuereinrichtung gemäß einem Ausführungsbeispiel der erfinderischen Ideen.
  • Wie in 4 gezeigt ist, kann eine Speichersteuereinrichtung 100a den Adressenübersetzer 110, das Auswertungsmodul 120 und eine Anfragewarteschlange 130 aufweisen.
  • Ein Warteschlangenindex QI kann in der Anfragewarteschlange 130 eingestellt werden. Zugriffsanfragen, die aus dem Prozessor 300 (von 1) empfangen werden, können gemäß der Reihenfolge, in der sie aus dem Prozessor 300 empfangen werden, in die Warteschlange gestellt werden. Die Art der Zugriffsanfrage QC (z.B. Q_1 und Q_2) und die Systemadresse SA (z.B. SA_1 und SA_2), die den einzelnen Zugriffsanfragen entspricht, die aus dem Prozessor 300 empfangen werden, können in die Warteschlange gestellt werden. Zum Beispiel kann die Art der Zugriffsanfrage QC eine Schreibanfrage oder eine Leseanfrage beinhalten. Die in die Warteschlange gestellten Anfragen können gemäß ihrer Stellung in der Warteschlange nacheinander oder nicht nacheinander verarbeitet werden. Wie oben unter Bezugnahme auf 1 beschrieben wurde, kann der Adressenübersetzer 110 eine Mehrzahl von Adressenübersetzungsmodulen, z.B. das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3, aufweisen. Das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 können jeweils auf Basis ein und derselben Systemadresse SA erste bis dritte Speicheradressen MA1, MA2 und MA3 erzeugen, die sich voneinander unterscheiden. Die ersten bis dritten Speicheradressen MA1 bis MA3 können am Auswertungsmodul 120 und an einem Selektor 115 bereitgestellt werden.
  • Der Selektor 115 kann die Speicheradresse MA gemäß einem Auswahlsignal SEL aus den ersten bis dritten Speicheradressen MA1 bis MA3 auswählen und kann die Speicheradresse MA an die Speichervorrichtung 200 (von 1) ausgeben. Dabei kann das Auswahlsignal SEL angeben, welches vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 aktuell als Adressenübersetzungsmodul des Adressenübersetzers 110 ausgewählt ist.
  • Das Auswertungsmodul 120 kann die Zahl von Zugriffsanfragen, die aus dem Prozessor 300 empfangen werden, d.h. eine Anzahl N von Zugriffsanfragen (wobei N eine ganze Zahl von mindestens 2 ist) als Fenstergröße einstellen und kann eine Speicherressourcenauslastung von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 pro N Zugriffsanfragen auswerten. In manchen Ausführungsbeispielen kann das Auswertungsmodul 120 einen Durchschnitt von Ranks, die vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 jeweils ausgewählt werden, die Zahl ausgewählter Bänke und einen Durchschnitt von Reihen, die in demselben Rank und derselben Bank ausgewählt werden, als ersten Auswertungswert, zweiten Auswertungswert bzw. dritten Auswertungswert berechnen und kann eine Ressourcenauslastungsbewertung auf Basis des ersten bis dritten Auswertungswerts berechnen.
  • Wenn die Fenstergröße beispielsweise auf 16 eingestellt ist, kann das Auswertungsmodul 120 jedes Mal, wenn die Zahl der Zugriffsanfragen in der Anfragewarteschlange 130 16 erreicht, die Zahl der Ranks, die Zahl der Bänke und die Zahl der Reihen zählen und kann eine Ressourcenauslastungsbewertung auf Basis der Zahl der Ranks, der Zahl der Bänke und der Zahl der Reihen berechnen und aktualisieren. Dies wird weiter unten ausführlich unter Bezugnahme auf 8 bis 9B beschrieben.
  • Das Auswertungsmodul 120 kann eine Mehrzahl von Zählerblöcken, z.B. einen ersten bis dritten Zählerblock CB1, CB2 und CB3, und eine Logikschaltung LC aufweisen. Der erste bis dritte Zählerblock CB1 bis CB3 können jeweils die ersten bis dritten Speicheradressen MA1 bis MA3 empfangen, die jeweils vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 ausgegeben werden. Der erste Zählerblock CB1 wird als Beispiel unter Bezugnahme auf 5 beschrieben.
  • 5 ist ein Blockdiagramm eines ersten Zählerblocks von 4.
  • Wie in 5 gezeigt ist, kann der erste Zählerblock B1 einen Rank-Zähler 121, einen Bankzähler 122 und einen Reihenzähler 123 aufweisen. Der Rank-Zähler 121, der Bankzähler 122 und der Reihenzähler 123 können Ranks, Bänke bzw. Reihen, die von ersten Speicheradressen MA1 ausgewählt werden, pro eingestellter Fenstergröße zählen. Wenn die Fenstergröße beispielsweise auf 16 eingestellt ist, dann können die Zahlen der Ranks, Bänke bzw. Reihen, die von 16 ersten Speicheradressen MA1 angegeben werden, jedes Mal gezählt werden, wenn die Zahl von Posten in der Anfragewarteschlange 130 16 erreicht.
  • Der Rank-Zähler 121 kann die Zahl der Ranks zählen, die von Rank-Signalen RK einer Mehrzahl von ersten Speicheradressen MA1 angegeben werden, und einen Rank-Zählwert CV_RK erzeugen. Der Rank-Zählwert CV_RK kann einen Zählwert für jeden der Ranks, z.B. einen ersten Rank und einen zweiten Rank, beinhalten.
  • Der Bankzähler 122 kann die Zahl der Bänke zählen, die von den Rank-Signalen RK und den Banksignalen BK einer Mehrzahl von ersten Speicheradressen MA1 angegeben werden, und einen Bankzählwert CV_BK erzeugen. Wenn eine Speichervorrichtung beispielsweise zwei Ranks und in jedem der Ranks acht Bänke aufweist, dann kann der Bankzählwert CV_BK einen Zählwert für jede der Bänke beinhalten, die aus insgesamt 16 Bänken ausgewählt wird, d.h. für die erste bis achte Bank des ersten Rank und die erste bis achte Bank des zweiten Rank.
  • Der Reihenzähler 123 kann die Zahl der Reihen zählen, die von den Rank-Signalen RK, den Banksignalen BK und von Reihensignalen R einer Mehrzahl von ersten Speicheradressen MA1 angegeben werden, und einen Reihenzählwert CV_R erzeugen. Wenn beispielsweise acht Reihen in einer Bank innerhalb eines Rank enthalten sind, dann kann der Reihenzählwert CV_R einen Zählwert für jede der Reihen beinhalten, die aus 128 Reihen ausgewählt werden, d.h. für acht Reihen in jeder der 16 Bänke.
  • Die Funktionsweise des zweiten und des dritten Zählerblocks CB2 und CB3 ist der des ersten Zählerblocks CB1 ähnlich. Somit wird auf eine wiederholte Beschreibung verzichtet.
  • Es wird erneut auf 4 Bezug genommen, wo gezeigt ist, dass die Logikschaltung LC eine Ressourcenauslastungsbewertung für jedes vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 auf Basis von Zählerwerten berechnen kann, die aus dem ersten bis dritten Zählerblock CB1 bis CB3 empfangen werden. In manchen Ausführungsbeispielen kann die Logikschaltung LC ein Adressenübersetzungsmodul mit einer höchsten Ressourcenauslastungsbewertung aus dem ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 auswählen. In einem Ausführungsbeispiel kann der Prozessor 300 (oder eine CPU eines Datenverarbeitungssystems, das mit einer Speichersteuereinrichtung ausgestattet ist) eine Ressourcenauslastung zwischen dem ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 vergleichen und gemäß dem Vergleichsergebnis ein Adressenübersetzungsmodul mit einer höchsten Ressourcenauslastungsbewertung auswählen.
  • 6 ist ein Ablaufschema eines Verfahrens zur Betätigung einer Speichersteuereinrichtung gemäß einem Ausführungsbeispiel der erfinderischen Ideen. Im Einzelnen zeigt 6 ein Verfahren zur Einstellung eines Adressenübersetzungsschemas unter Verwendung einer Speichersteuereinrichtung. Das in 6 gezeigte Verfahren kann in der Speichersteuereinrichtung 100 von 1 und in der Speichersteuereinrichtung 100a von 4 durchgeführt werden. Demgemäß können die unter Bezugnahme auf 1 und 4 abgegebenen Beschreibungen auf das hierin erörterte Verfahren angewendet werden.
  • Wie in 6 gezeigt ist, kann die Speichersteuereinrichtung 100, 100a in einer Operation bzw. einem Arbeitsschritt S110 eine Adressenübersetzung auf Basis eines voreingestellten Adressenübersetzungsschemas von einer Mehrzahl von Adressenübersetzungsschemata durchführen. Die Mehrzahl von Adressenübersetzungsschemata kann ausgewählt (z.B. vorab) und in der Speichersteuereinrichtung oder auf einem externen Datenträger gespeichert werden. In manchen Ausführungsbeispielen kann die Mehrzahl von Adressenübersetzungsschemata durch Hardware, Software oder eine Kombination davon implementiert werden. Ein Voreinstellungswert kann so eingestellt werden, dass beim ersten Systemstart eines der Adressenübersetzungsschemata für die Adressenübersetzung verwendet wird. Demgemäß kann beim ersten Systemstart die Speichersteuereinrichtung 100, 100a eine Adressenübersetzung auf Basis des voreingestellten Adressenübersetzungsschemas durchführen.
  • Im Arbeitsschritt S120 kann die Speichersteuereinrichtung 100, 100a eine Ressourcenauslastungsbewertung für jedes der Adressenübersetzungsschemata berechnen. Die Ressourcenauslastungsbewertung für jedes der Adressenübersetzungsschemata kann pro eingestellter Fenstergröße berechnet und aktualisiert werden. Die Speichersteuereinrichtung 100, 100a kann die Arbeitsschritte S110 und S120 gleichzeitig durchführen. Ferner kann die Speichersteuereinrichtung 100, 100a in manchen Ausführungsbeispielen den Arbeitsschritt S12 als Hintergrundoperation durchführen.
  • Der Arbeitsschritt S120 wird ausführlich unter Bezugnahme auf 7 beschrieben.
  • 7 ist ein Ablaufschema eines Verfahrens zur Berechnung einer Ressourcenauslastungsbewertung in 6.
  • Wie in 7 gezeigt ist, kann die Speichersteuereinrichtung 100, 100a im Arbeitsschritt S121 ein Rank-Signal, ein Banksignal und/oder ein Reihensignal zählen, die von jedem einer Mehrzahl von Adressenübersetzungsmodulen unter Verwendung der Adressenübersetzungsschemata ausgegeben werden.
  • Im Arbeitsschritt S122 kann die Speichersteuereinrichtung 100, 100a einen ersten bis dritten Auswertungswert auf Basis von Zählwerten berechnen. Der erste Auswertungswert kann eine Rank-Auswahl betreffen, der zweite Auswertungswert kann eine Bankauswahl betreffen und der dritte Auswertungswert kann eine Reihenauswahl betreffen. Zum Beispiel kann der erste Auswertungswert einen Durchschnitt ausgewählter Ranks in der Fenstergröße angeben, der zweite Auswertungswert gibt die Zahl der ausgewählten Bänke an und der dritte Auswertungswert gibt einen Durchschnitt von ausgewählten Reihen in denselben Ranks und denselben Bänken an.
  • Im Arbeitsschritt S123 kann die Speichersteuereinrichtung 100, 100a jeden vom ersten bis dritten Auswertungswert gewichten. Bei der Berechnung einer Ressourcenauslastungsbewertung müssen die Bedeutungsgrade des ersten bis dritten Auswertungswerts nicht gleich sein. Somit kann einem Auswertungswert, für den ein höherer Bedeutungsgrad bestimmt wurde, höher gewichtet werden.
  • Im Arbeitsschritt S124 kann die Speichersteuereinrichtung 100, 100a die Ressourcenauslastungsbewertung auf Basis gewichteter Werte berechnen. Zum Beispiel kann die Speichersteuereinrichtung eine arithmetische Operation an den gewichteten Werten durchführen, um die Ressourcenauslastungsbewertung zu berechnen. Das Verfahren wird ausführlich unter Bezugnahme auf 8 beschrieben.
  • Es wird erneut auf 6 Bezug genommen, wo gezeigt ist, dass die Speichersteuereinrichtung 100, 100a im Arbeitsschritt S130 ein Adressenübersetzungsschema auswählen kann. Zum Beispiel kann die Speichersteuereinrichtung 100, 100a das Adressenübersetzungsschema mit der höchsten Ressourcenauslastungsbewertung unter der Mehrzahl von Adressenübersetzungsschemata auswählen. In manchen Ausführungsbeispielen kann abgesehen von der Speichersteuereinrichtung 100, 100a ein anderer Prozessor in einem Datenverarbeitungssystem, das mit der Speichersteuereinrichtung 100, 100a ausgestattet ist, z.B. ein Hauptprozessor, das Adressenübersetzungsschema mit der höchsten Ressourcenauslastungsbewertung auswählen. Informationen über das ausgewählte Adressenübersetzungsschema können an einem Speicherort, z.B. einem Register, innerhalb der Speichersteuereinrichtung 100, 100a oder einem nichtflüchtigen Speicher (oder Datenträger) außerhalb der Speichersteuereinrichtung 100, 100a gespeichert und aktualisiert werden. Wenn das Datenverarbeitungssystem beispielsweise in einen Ruhezeitraum kommt, können die Informationen über das ausgewählte Adressenübersetzungsschema im nichtflüchtigen Speicher oder an dem Speicherort innerhalb der Speichersteuereinrichtung 100, 100a gespeichert und aktualisiert werden.
  • Danach kann die Speichersteuereinrichtung 100, 100a im Arbeitsschritt S140 eine Adressenübersetzung auf Basis des ausgewählten Adressenübersetzungsschemas durchführen. Anders ausgedrückt kann das Adressenübersetzungsschema geändert werden.
  • Wenn das Adressenübersetzungsschema während einer Systemlaufzeit geändert wird, können Daten, die in der Speichervorrichtung 200 gespeichert sind, an eine Position bewegt werden, die gemäß dem geänderten Adressenübersetzungsschema bestimmt wird. Diese Datenverlagerung kann erhebliche Zeit in Anspruch nehmen, und daher kann das Adressenübersetzungsschema geändert werden, wenn eine geschätzte Zeit, die das Datenverarbeitungssystem braucht, um in den Ruhezeitraum zu kommen und dort zu bleiben, länger ist als eine Zeit, die für die Datenverlagerung benötigt wird.
  • Alternativ dazu kann das Adressenübersetzungsschema beim Systemneustart in ein ausgewähltes Adressenübersetzungsschema geändert werden. Beim Systemneustart wendet ein Bootloader bzw. Startprogramm das aktualisierte Adressenübersetzungsschema im nichtflüchtigen Speicher an, wenn er das System ansteuert, und daher kann die Speichersteuereinrichtung 100, 100a eine Adressenübersetzung auf Basis des geänderten Adressenübersetzungsschemas durchführen, das von dem Adressenübersetzungsschema, das vor dem Systemneustart verwendet wurde, verschieden ist.
  • Indessen kann die Speichersteuereinrichtung 100, 100a Arbeitsschritte S120 bis S140 wiederholt durchführen. Demgemäß kann die Speichersteuereinrichtung 100, 100a eine Adressenübersetzung auf Basis eines Adressenübersetzungsschemas durchführen, das auf Basis eines Verwendungsmusters eines Nutzers ausgewählt wird.
  • 8 ist ein Diagramm zur Erläuterung von Auswertungskriterien für die Berechnung einer Ressourcenauslastungsbewertung und eines Verfahrens zur Berechnung von Werten der Auswertungskriterien in einem konkreten Beispiel.
  • 8 zeigt Bewertungen der Auswertungskriterien zur Berechnung einer Ressourcenauslastungsbewertung des ersten Adressenübersetzungsmoduls MD1 auf Basis der ersten Speicheradresse MA1, die vom ersten Adressenübersetzungsmodul MD1 ausgegeben wird. Es wird davon ausgegangen, dass eine Fenstergröße 16 ist, die Zahl der Ranks in einer Speichervorrichtung 2 ist, die Zahl der Bänke in jedem Rank 8 ist und die Zahl der Reihen in jeder Bank 8 ist. Es wird außerdem davon ausgegangen, dass das erste Adressenübersetzungsmodul MD1 (genauer jede erste Speicheradresse, die vom ersten Adressenübersetzungsmodul MD1 ausgegeben wird) als Reaktion auf die einzelnen Systemadressen, die zusammen mit Zugriffsanfragen empfangen werden, die Warteschlangenindizes QI von 1 bis 16 zugeordnet sind, wie in 8 gezeigt, einen Rank, eine Bank und eine Reihe auswählt.
  • Wie in 8 gezeigt ist, können die Auswertungskriterien einen ersten Auswertungswert EV1, der einer Rank-Auswahl einer Speicheradresse entspricht, einen zweiten Auswertungswert EV2, der einer Bankauswahl der Speicheradresse entspricht, und einen dritten Auswertungswert EV3, der einer Reihenauswahl der Speicheradresse entspricht, beinhalten. Wie oben beschrieben gibt der erste Auswertungswert EV1 einen Durchschnitt von Ranks an, die vom ersten Adressenübersetzungsmodul MD1 ausgewählt (oder verwendet) werden, gibt der zweite Auswertungswert EV2 die Zahl von Bänken an, die vom ersten Adressenübersetzungsmodul MD1 ausgewählt werden, und gibt der dritte Auswertungswert EV3 einen Durchschnitt von Reihen an, die vom ersten Adressenübersetzungsmodul MD1 in denselben Ranks und denselben Bänken ausgewählt werden.
  • Mit Bezug auf den ersten Auswertungswert EV1 kann die Verteilung des Rank 0 und des Rank 1 analysiert werden, und es kann berechnet werden, wie viele Ranks im Durchschnitt innerhalb der Fenstergröße ausgewählt wurden. Wenn beispielsweise nur Rank 0 oder Rank 1 ausgewählt wird, dann kann man sehen, dass im Durchschnitt nur ein Rank ausgewählt wird, und 1 kann ein kleinster Wert des ersten Auswertungswerts EV1 sein. Wenn im Gegensatz dazu sowohl Rank 0 als auch Rank 1 achtmal ausgewählt werden, dann kann man sehen, dass im Durchschnitt zwei Ranks ausgewählt werden, und 2 kann ein größter Wert des ersten Auswertungswerts EV1 sein. Wenn Rank 0 13-mal ausgewählt wird, wie in 8 gezeigt ist, und Rank 1 dreimal ausgewählt wird, oder umgekehrt, kann errechnet werden, dass im Durchschnitt 1,38 Ranks ausgewählt werden. Je näher der erste Auswertungswert EV1 am höchsten Wert 2 liegt, desto mehr kann die Speicherauslastung steigen.
  • Der erste Auswertungswert EV1 kann konkret als Gleichung 1 definiert werden: EV1 = 2 * ( 1 ( Max ( PR 0, PR 1 ) 0,5 ) ) ,
    Figure DE102019103114A1_0001
    wobei PR0 ein Verhältnis der Auswahl des Rank 0 zur Gesamtzahl der Auswahlereignisse (z.B. 16) ist und PR1 ein Verhältnis der Auswahl des Rank 1 zur Gesamtzahl der Auswahlereignisse ist. Max(PR0,PR1) bedeutet einen höchsten Wert zwischen PR0 und PR1. Indessen ist die Gleichung 1 nur eine Beispielsformel für die Berechnung des ersten Auswertungswerts EV1 und kann auf verschiedene Weise geändert werden.
  • Was den zweiten Auswertungswert EV2 betrifft, so kann die Zahl der Bänke, die innerhalb der Fenstergröße ausgewählt werden, auf Basis des Ergebnisses der Analyse von Bänken, die sowohl im Rank 0 als auch im Rank 1 ausgewählt werden, berechnet werden. Da beispielsweise acht Bänke in jedem Rank enthalten sind und die Fenstergröße 16 ist, kann der höchsten Wert des zweiten Auswertungswerts EV2 16 sein und sein niedrigster Wert kann 1 sein. Je näher der zweite Auswertungswert EV2 am höchsten Wert liegt, desto mehr kann die Speicherauslastung steigen.
  • Wie in 8 gezeigt ist, werden die Bank 1, die Bank 3 und die Bank 7 im Rank 0 ausgewählt und die Bank 0 wird im Rank 1 ausgewählt, und daher kann der zweite Auswertungswert EV2 4 sein.
  • Was den dritten Auswertungswert EV3 betrifft, so kann ein Durchschnitt von Reihen berechnet werden, die in denselben Ranks und denselben Bänken enthalten sind. Der kleinste Wert des dritten Auswertungswerts EV3 kann 1 sein (wenn eine Reihe 16-mal im selben Rank und in derselben Bank ausgewählt wird). Da die Fenstergröße 16 ist, kann der höchsten Wert des dritten Auswertungswerts EV3 16 sein. Je näher der dritte Auswertungswert EV3 am kleinsten Wert liegt, desto mehr kann die Speicherauslastung steigen.
  • Wie in 8 gezeigt ist, ist die Zahl der Reihen, die im Rank 0 und in der Bank 1 ausgewählt werden, 2, ist die Zahl der Reihen, die im Rank 0 und in der Bank 3 ausgewählt werden, 5, ist die Zahl der Reihen, die im Rank 0 und in der Bank 7 ausgewählt werden, 6 und ist die Zahl der Reihen, die im Rank 1 und in der Bank 0 ausgewählt werden, 3. Demgemäß kann der dritte Auswertungswert EV3 4 sein.
  • Der erste Auswertungswert EV1, der zweite Auswertungswert EV2 und der dritte Auswertungswert EV3 können berechnet werden wie oben beschrieben. Indessen kann im Hinblick auf die Erhöhung der Speicherauslastung der erste Auswertungswert EV1 den höchsten Bedeutungsgrad aufweisen und der dritte Auswertungswert EV3 kann den niedrigsten Bedeutungsgrad aufweisen. Demgemäß können bei der Berechnung einer Ressourcenauslastungsbewertung auf Basis eines ersten bis dritten Auswertungswerts EV1 bis EV3 der erste bis dritte Auswertungswert EV1 bis EV3 jeweils unterschiedlich gewichtet werden. Dabei kann der erste Auswertungswert EV1 am höchsten gewichtet werden und der dritte Auswertungswert EV3 kann am niedrigsten gewichtet werden.
  • Wie oben beschrieben, kann die Speicherauslastung umso mehr steigen, je näher der erste und der zweite Auswertungswert EV1 und EV2 an den höchsten Werten liegen und je näher der dritte Auswertungswert EV3 am kleinsten Wert liegt. Eine Nähe zum entsprechenden höchsten Wert kann in Bezug auf sowohl den ersten als auch den zweiten Auswertungswert EV1 und EV2 berechnet werden, und eine Nähe zum kleinsten Wert kann in Bezug auf den dritten Auswertungswert EV3 berechnet werden. Ein Gewicht, das für jedes Auswertungskriterium anders eingestellt wird, kann jeweils mit der errechneten Nähe multipliziert werden, und die Multiplikationsergebnisse können addiert werden, um die Ressourcenauslastungsbewertung zu berechnen.
  • Zum Beispiel kann eine Nähe PXY1 zu einem höchsten Wert Max_EV1 des ersten Auswertungswerts EV1 definiert werden wie in Gleichung 2: PXY 1 = 1 ( Max _ EV 1 EV 1 ) / ( Max _ EV 1 Min _ EV 1 ) .
    Figure DE102019103114A1_0002
    wo Min_EV1 ein kleinster Wert des ersten Auswertungswerts EV1 ist.
  • Eine Nähe PXY2 zu einem höchsten Wert Max_EV2 des zweiten Auswertungswerts EV2 wird ähnlich wie in Gleichung 2 definiert und kann somit von Gleichung 2 abgeleitet werden.
  • Eine Nähe PXY3 zu einem kleinsten Wert Min_Ev3 des dritten Auswertungswerts EV3 kann definiert werden wie in Gleichung 3: PXY3 = ( Max _ EV3 EV3 ) / ( Max _ EV3 Min _ EV3 ) .
    Figure DE102019103114A1_0003
  • Zum Beispiel kann in 8 die Nähe PXY1 des ersten Auswertungswerts EV1 als 0,38 berechnet werden, kann die Nähe PXY2 des zweiten Auswertungswerts EV2 als 0,2 berechnet werden und kann die Nähe PXY3 des dritten Auswertungswerts EV3 als 0,8 berechnet werden.
  • Wenn ein erstes Gewicht für den ersten Auswertungswert EV1 auf 0,50 eingestellt wird, ein zweites Gewicht für den zweiten Auswertungswert EV2 auf 0,29 eingestellt wird und ein drittes Gewicht für den dritten Auswertungswert EV3 auf 0,21 eingestellt wird, kann eine Ressourcenauslastungsbewertung RUV des ersten Adressenübersetzungsmoduls MD1 als (0.38*0.5+0.2*0.29+0.8*0.21)*100=41.6 berechnet werden.
  • Das Verfahren zur Berechnung des ersten bis dritten Auswertungswerts EV1 bis EV3 und das Verfahren zur Berechnung der Ressourcenauslastungsbewertung RUV auf Basis des ersten bis dritten Auswertungswerts EV1 bis EV3 wurden unter Bezugnahme auf 8 beschrieben, aber Ausführungsbeispiele der erfinderischen Ideen sind nicht darauf beschränkt. Das Verfahren zur Berechnung des ersten bis dritten Auswertungswerts EV1 bis EV3, das Verfahren zur Berechnung der Ressourcenauslastungsbewertung RUV und spezifische Zahlen können auf verschiedene Weise geändert werden. Zum Beispiel wird die Speicherressourcenauslastung auf Basis von mindestens zwei Auswertungswerten berechnet.
  • 9A und 9B sind Diagramme von Verfahren zur Aktualisierung einer Ressourcenauslastungsbewertung gemäß Ausführungsbeispielen.
  • Wie in 9A und 9B gezeigt ist, kann das erste Adressenübersetzungsmodul MD1 eine Adressenübersetzung während eines Zeitraums T1 ab einem Zeitpunkt t1 durchführen. Ein Systemneustart oder ein Ruhezeitraum können zu einem Zeitpunkt t2 beginnen. Wie oben beschrieben kann eine Ressourcenauslastungsbewertung pro eingestellter Fenstergröße berechnet werden. Wenn die Fenstergröße auf 16 eingestellt wurde, kann eine Ressourcenauslastungsbewertung jedes Mal berechnet werden, wenn 16 Zugriffsanfragen (z.B. Q1_1 bis Q16_1, Q1_2 bis Q16_2, Q1_3 bis Q16 3 oder Q1_4 bis Q16 4) empfangen wurden. Zum Beispiel können vier Ressourcenauslastungsbewertungen, d.h. eine erste Ressourcenauslastungsbewertung RUV1, eine zweite Ressourcenauslastungsbewertung RUV2, eine dritte Ressourcenauslastungsbewertung RUV3 und eine vierte Ressourcenauslastungsbewertung RUV4, berechnet werden.
  • Wie in 9A gezeigt ist, kann die letzte Ressourcenauslastungsbewertung RUV, die berücksichtigt wird, wenn ein Adressenübersetzungsschema geändert wird, ein Durchschnitt der ersten bis vierten Ressourcenauslastungsbewertung RUV1 bis RUV4 sein. Anders ausgedrückt kann jedes Mal, wenn eine Ressourcenauslastungsbewertung erzeugt wird, ein Durchschnitt einer neuen Ressourcenauslastungsbewertung und einer alten Ressourcenauslastungsbewertung als Ressourcenauslastungsbewertung gespeichert werden. Somit kann ein Verwendungsmuster eines Nutzers akkumuliert und in der Ressourcenauslastungsbewertung widergespiegelt werden.
  • Wie in 9B gezeigt ist, kann die Speichersteuereinrichtung 100, 100a in manchen anderen Ausführungsbeispielen einen gleitenden Durchschnitt nutzen, um die Ressourcenauslastungsbewertung zu bestimmen. Zum Beispiel kann ein Durchschnitt einer gewünschten (oder alternativ dazu einer vorgegebenen) Zahl jüngster Ressourcenauslastungsbewertungen unter einer Mehrzahl von Ressourcenauslastungsbewertungen, die während des Zeitraums T1 berechnet wurden, als letzte Ressourcenauslastungsbewertung RUV gespeichert werden. Ein Durchschnitt von mindestens zwei Ressourcenauslastungsbewertungen wird in 9B als letzte Ressourcenauslastungsbewertung RUV gespeichert, aber Ausführungsbeispiele der erfinderischen Ideen sind nicht darauf beschränkt. Die Zahl der Ressourcenauslastungsbewertungen, die in der letzten Ressourcenauslastungsbewertung RUV widergespiegelt werden, kann geändert werden. Somit kann ein Verwendungsmuster eines Nutzers innerhalb eines begrenzten Zeitraums in einer Ressourcenauslastungsbewertung widergespiegelt werden.
  • 10A bis 10E sind Diagramme zur Erläuterung eines Verfahrens zur dynamischen Änderung eines Adressenübersetzungsschemas, das ein Verwendungsmuster widerspiegelt, unter Verwendung einer Speichersteuereinrichtung gemäß einem Ausführungsbeispiel der erfinderischen Ideen.
  • Wie in 10A gezeigt ist, sind Positionen von Bits, die Ranks zugeordnet sind, und eine Hash-Funktion zwischen dem ersten bis dritten Adressenübersetzungsmodul MD 1 bis MD3 verschieden. Anders ausgedrückt werden auf das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 jeweils andere Adressenübersetzungsschemata angewendet. Zum Beispiel kann ein Rank-Bestimmungsschema Rank intlv, das eine Position des Bits von den Bits der Systemadresse SA angibt, das der Bank zugeordnet ist, und ein Bankbestimmungsschema Bank intlv, das eine Hash-Funktion angibt, für jedes vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 eingestellt werden. Hierbei bezeichnet BW eine Bitbreite der Systemadresse SA.
  • Die Adressenübersetzungsschemata für das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 können ausgewählt und in einem nichtflüchtigen Datenträger gespeichert werden. Zum Beispiel kann das Datenverarbeitungssystem 1000 von 1 auch einen nichtflüchtigen Speicher (oder Datenträger) aufweisen, und die Adressenübersetzungsschemata für das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 können vor einem Systemstart im nichtflüchtigen Speicher gespeichert werden.
  • Wie in 10B gezeigt ist, kann das erste Adressenübersetzungsmodul MD1 beim ersten Systemstart per Voreinstellung ausgewählt werden, und das erste Adressenübersetzungsmodul MD1 kann eine Adressenübersetzung durchführen. Dabei kann die Ressourcenauslastungsbewertung RUV von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 in Echtzeit auf Basis der eingestellten Fenstergröße berechnet werden. Die Ressourcenauslastungsbewertung RUV des zweiten Adressenübersetzungsmoduls MD2 ist 67,13 und somit am höchsten. Somit kann ein Symbol, das angibt, dass die Ressourcenauslastungsbewertung RUV des zweiten Adressenübersetzungsmoduls MD2 die höchste ist, während eines Ruhezeitraums aktualisiert und im nichtflüchtigen Speicher gespeichert werden. Danach kann das zweite Adressenübersetzungsmodul MD2 eine Adressenübersetzung durchführen, wenn das System neu gestartet wird.
  • Wie in 10C gezeigt ist, kann das zweite Adressenübersetzungsmodul MD2, wenn das System ein zweites Mal gestartet wird, eine Adressenübersetzung durchführen. Dabei kann die Ressourcenauslastungsbewertung RUV von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 in Echtzeit auf Basis der Fenstergröße berechnet werden. Die Ressourcenauslastungsbewertung RUV des dritten Adressenübersetzungsmoduls MD3 ist 64,99 und somit am höchsten. Somit kann ein Symbol, das angibt, dass die Ressourcenauslastungsbewertung RUV des dritten Adressenübersetzungsmoduls MD3 die höchste ist, während eines Ruhezeitraums aktualisiert und im nichtflüchtigen Speicher gespeichert werden. Danach kann das dritte Adressenübersetzungsmodul MD3 eine Adressenübersetzung durchführen, wenn das System neu gestartet wird.
  • Wie in 10D gezeigt ist, kann das dritte Adressenübersetzungsmodul MD3, wenn das System ein drittes Mal gestartet wird, eine Adressenübersetzung durchführen. Dabei kann die Ressourcenauslastungsbewertung RUV von jedem vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 berechnet werden. Die Ressourcenauslastungsbewertung RUV des dritten Adressenübersetzungsmoduls MD3 ist 81 und somit am höchsten. Somit kann ein Symbol, das angibt, dass die Ressourcenauslastungsbewertung RUV des dritten Adressenübersetzungsmoduls MD3 die höchste ist, während eines Ruhezeitraums aktualisiert und im nichtflüchtigen Speicher gespeichert werden. Wie in 10E gezeigt ist, kann das dritte Adressenübersetzungsmodul MD3 somit eine Adressenübersetzung kontinuierlich durchführen, wenn das System ein viertes Mal gestartet wird.
  • 11 ist ein Graph, der eine Speicherlatenz in Bezug auf einen Memory-Page-Status zeigt.
  • Wie in 11 gezeigt ist, kann eine Speicherlatenz verbessert werden, wenn eine Page-Hit-Rate steigt oder eine Page-Konfliktrate sinkt. Wie in 11 gezeigt ist, beträgt eine Latenzdifferenz zwischen einem Fall, wo jeder Speicherverkehr ein Page-Hit ist und einem Fall, wo jeder Speicherverkehr ein Page-Konflikt ist, höchstens 37,5 Nanosekunden (ns). Wie oben beschrieben kann dann, wenn ein Adressenübersetzungsschema unter Verwendung einer Speichersteuereinrichtung und eines Verfahrens zur Betätigung der Speichersteuereinrichtung verbessert wird, gemäß einem Ausführungsbeispiel der erfinderischen Ideen die Page-Hit-Rate unter Berücksichtigung eines Verwendungsmusters eines Nutzers erhöht (oder alternativ dazu maximiert) werden, so dass die Speicherlatenz verbessert werden kann.
  • 12 ist ein Blockdiagramm einer Speichersteuereinrichtung gemäß manchen Ausführungsbeispielen der erfinderischen Ideen.
  • Wie in 12 gezeigt ist, kann eine Speichersteuereinrichtung 100b einen Adressenübersetzer 110b, einen Nur-Lese-Speicher (ROM) 150, das Auswertungsmodul 120 und die Anfragewarteschlange 130 aufweisen. Die Operationen des Auswertungsmoduls 120 und der Anfragewarteschlange 130 sind die gleichen wie die, die unter Bezugnahme auf 4 beschrieben wurden. Somit wird auf redundante Beschreibungen verzichtet, und Beschreibungen werden auf Unterschiede zwischen der Speichersteuereinrichtung 100a und der Speichersteuereinrichtung 100b abgestellt.
  • Eine Mehrzahl von Adressenübersetzungsmodulen, d.h. das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3, können durch eine Verarbeitungsschaltung implementiert werden, die Software oder Firmware ausführt und die im ROM 150 (oder einer nichtflüchtigen Speicherregion) gespeichert ist. Der Adressenübersetzer 110b kann durch zweckgebundene Hardware zur Ausführung des ersten bis dritten Adressenübersetzungsmoduls MD1 bis MD3 implementiert werden.
  • Wenn ein System gestartet wird, können das erste bis dritte Adressenübersetzungsmodul MD1 bis MD3 vom Adressenübersetzer 110b ausgeführt werden, so dass eine Adressenübersetzung durchgeführt werden kann. Wie oben beschrieben, kann der Adressenübersetzer 110b die Adressenübersetzung auf Basis eines voreingestellten Adressenübersetzungsmoduls, z.B. des ersten Adressenübersetzungsmoduls MD1, das per Voreinstellung ausgewählt wird, durchführen und kann auch das zweite und das dritte Adressenübersetzungsmodul MD2 und MD3 als Hintergrundoperation ausführen. Die erste Speicheradresse MA1, die durch Ausführen des ersten Adressenübersetzungsmoduls MD1 erzeugt wird, kann als Speicheradresse MA an eine Speichervorrichtung ausgegeben werden. Die zweite Speicheradresse MA2 kann erzeugt werden, während das zweite Adressenübersetzungsmodul MD2 ausgeführt wird. Die dritte Speicheradresse MA3 kann erzeugt werden, während das dritte Adressenübersetzungsmodul MD3 ausgeführt wird. In manchen Ausführungsbeispielen können die ersten bis dritten Speicheradressen MA1 bis MA3 zeitlich nacheinander erzeugt werden. Jede von den ersten bis dritten Speicheradressen MA1 bis MA3 kann an einem entsprechenden vom ersten bis dritten Zählerblock CB1 bis CB3 bereitgestellt werden.
  • Das Auswertungsmodul 120 kann eine Ressourcenauslastungsbewertung in Bezug auf jedes vom ersten bis dritten Adressenübersetzungsmodul MD1 bis MD3 berechnen. Informationen über ein Adressenübersetzungsmodul mit einer höchsten Ressourcenauslastungsbewertung können im nichtflüchtigen Speicher oder in einem Register innerhalb des Adressenübersetzers 110b gespeichert und aktualisiert werden.
  • 13 ist ein Blockdiagramm einer Speichersteuereinrichtung gemäß manchen Ausführungsbeispielen der erfinderischen Ideen. 14 ist ein Diagramm eines Beispiels für ein Verfahren zur Einstellung eines Adressenübersetzungsschemas auf Basis von maschinellem Lernen.
  • Wie in 13 gezeigt ist, kann eine Speichersteuereinrichtung 100c einen Adressenübersetzer 110c, eine Maschinenlernlogik 160, ein Auswertungsmodul 120c und die Anfragewarteschlange 130 aufweisen. Das Auswertungsmodul 120c kann einen Zählerblock CB und eine Logikschaltung LC aufweisen. Der Adressenübersetzer 110c kann durch zweckgebundene Hardware implementiert werden und kann eine Adressenübersetzung auf Basis eines per Voreinstellung ausgewählten Adressenübersetzungsschemas durchführen. Auch wenn dies nicht dargestellt ist, kann ein Adressenübersetzungsmodul, welches das Adressenübersetzungsschema verwendet, das per Voreinstellung ausgewählt worden ist, durch eine Verarbeitungsschaltung implementiert werden, die Software ausführt, die im ROM (nicht gezeigt) gespeichert ist, oder kann durch Hardware implementiert werden.
  • Die Systemadresse SA kann für die Maschinenlernlogik 160 ebenso bereitgestellt werden wie der Adressenübersetzer 110c, der die Adressenübersetzung durchführt. Die Maschinenlernlogik 160 kann maschinelles Lernen durchführen und eine Musteränderung der Systemadresse SA analysieren. Außerdem kann die Maschinenlernlogik 160 eine Mehrzahl anderer Adressenübersetzungsschemata zeitlich nacheinander ableiten. Zum Beispiel kann die Maschinenlernlogik 160 ein Änderungsmuster der einzelnen Bits, die in einer großen Menge der Systemadresse SA enthalten sind (z.B. ein Muster, in dem jedes Bit einem Data-Toggling unterzogen wird), analysieren und kann eine Mehrzahl von Adressenübersetzungsschemata aus dem Analyseergebnis ableiten. Auch wenn die Maschinenlernlogik 160 in 13 in der Speichersteuereinrichtung 100c enthalten ist, sind Ausführungsbeispiele der erfinderischen Ideen nicht darauf beschränkt. Die Maschinenlernlogik 160 kann als von der Speichersteuereinrichtung 100c getrennte Komponente implementiert werden und kann in einem Datenverarbeitungssystem (z.B. dem Datenverarbeitungssystem 1000 von 1) enthalten sein.
  • Wie in 14 gezeigt ist, kann der Adressenübersetzer 110c eine Adressenübersetzung auf Basis eines voreingestellten Adressenübersetzungsschemas DTS durchführen. Das Auswertungsmodul 120c kann eine Speicherressourcenauslastung in Bezug auf das voreingestellte Adressenübersetzungsschema DTS auswerten. Zum Beispiel kann das Auswertungsmodul 120c eine Ressourcenauslastungsbewertung berechnen wie oben beschrieben.
  • Indessen kann die Maschinenlernlogik 160 ein Muster der Systemadresse SA analysieren und ein Adressenübersetzungsschema, z.B. ein erstes Adressenübersetzungsschema TS1, auf Basis des Analyseergebnisses in einer Hintergrundoperation ableiten. Während der Adressenübersetzer 110c die Speicheradresse MA durch Durchführen einer Adressenübersetzung auf Basis des voreingestellten Adressenübersetzungsschemas DTS erzeugt, kann er auch eine andere Speicheradresse auf Basis des ersten Adressenübersetzungsschemas TS1 in einer Hintergrundoperation erzeugen. Das Auswertungsmodul 120c kann eine Ressourcenauslastungsbewertung in Bezug auf das erste Adressenübersetzungsschema TS1 auf Basis der Speicheradresse berechnen, die gemäß dem ersten Adressenübersetzungsschema TS1 erzeugt worden ist.
  • Die Maschinenlernlogik 160 kann eine Mehrzahl von Adressenübersetzungsschemata zeitlich nacheinander auf Basis von akkumulierten Daten, z.B. der Systemadresse SA, ableiten, die zum Trainieren verwendet werden. Eine Ressourcenauslastungsbewertung kann in Bezug auf jedes von den Adressenübersetzungsschemata berechnet werden. Dabei kann die Maschinenlernlogik 160 ein Adressenübersetzungsschema nicht nur auf Basis der Systemadresse SA, sondern auch der berechneten Ressourcenauslastungsbewertungen ableiten. Anders ausgedrückt kann die Maschinenlernlogik 160 ein neues Adressenübersetzungsschema, das die Speicherauslastung erhöhen kann, auf Basis von Eingangsdaten, z.B. der Systemadresse SA, und Ausgangsdaten, z.B. Ressourcenauslastungsbewertungen, die in Bezug auf die Systemadresse SA berechnet werden, ableiten.
  • Wenn die Ressourcenauslastungsbewertung eines neu abgeleiteten Adressenübersetzungsschemas höher ist als die eines zuvor abgeleiteten Adressenübersetzungsschemas oder des voreingestellten Adressenübersetzungsschemas DTS, können Informationen über das neu abgeleitete Adressenübersetzungsschema und die Ressourcenauslastungsbewertung gespeichert werden. Die Informationen können in einer nichtflüchtigen Speichervorrichtung gespeichert werden. Wenn beispielsweise eine Ressourcenauslastungsbewertung eines zweiten Adressenübersetzungsschemas TS2 von einer Mehrzahl von Adressenübersetzungsschemata, die von der Maschinenlernlogik 160 abgeleitet werden, höher ist als diejenigen des voreingestellten Adressenübersetzungsschemas DTS und des ersten Adressenübersetzungsschemas TS1, können Informationen über das zweite Adressenübersetzungsschema TS2 und die Ressourcenauslastungsbewertung des zweiten Adressenübersetzungsschemas TS2 gespeichert werden. Wenn eine Ressourcenauslastungsbewertung eines vierten Adressenübersetzungsschemas TS4, das durch die Maschinenlernlogik 160 abgeleitet wird, höher ist als diejenigen des voreingestellten Adressenübersetzungsschemas DTS und der zuvor abgeleiteten Adressenübersetzungsschemata, z.B. des ersten bis dritten Adressenübersetzungsschemas TS1 bis TS3, können dann Informationen über das vierte Adressenübersetzungsschema TS4 und die Ressourcenauslastungsbewertung des vierten Adressenübersetzungsschemas TS4 gespeichert werden. Wenn das System danach zum Zeitpunkt t2 neu gestartet wird oder in einen Ruhezeitraum kommt, kann ein Adressenübersetzungsschema geändert werden. Von Ressourcenauslastungsbewertungen in Bezug auf das erste bis fünfte Adressenübersetzungsschema TS1 bis TS5, d.h. eine Speicherressourcenauslastung, die während des Zeitraums T1 ausgewertet werden, ist die Ressourcenauslastungsbewertung des vierten Adressenübersetzungsschemas TS4 am höchsten. Somit kann nach dem Zeitpunkt t2, d.h. während eines Zeitraums T2, der Adressenübersetzer 110c eine Adressenübersetzung auf Basis des vierten Adressenübersetzungsschemas TS4 durchführen. Während des Zeitraums T2 kann die Maschinenlernlogik 160 auch ein neues Adressenübersetzungsschema durch Training ableiten.
  • Auch wenn die Berechnung der Ressourcenauslastungsbewertung in manchen von den Ausführungsbeispielen vom Auswertungsmodul 120c durchgeführt wird, sind Ausführungsbeispiele der erfinderischen Ideen nicht darauf beschränkt und die Maschinenlernlogik 160 kann die Ressourcenauslastungsbewertungen berechnen. Zum Beispiel kann die Maschinenlernlogik 160 das Auswertungsmodul 120c aufweisen.
  • 15 ist ein Blockdiagramm eines AP gemäß einem Ausführungsbeispiel der erfinderischen Ideen.
  • Wie in 15 gezeigt ist, kann ein AP 2000 mindestens ein IP aufweisen. Zum Beispiel kann der AP 2000 einen Prozessor 210, einen ROM 220, eine neuronale Verarbeitungseinheit (NPU) 230, einen eingebetteten Speicher 240, eine Speichersteuereinrichtung 250, eine Speicherschnittstelle (I/F) 260 und eine Anzeigen-I/F 270 aufweisen, die über einen Systembus 280 miteinander verbunden sind. Der AP 2000 kann auch andere Elemente, z.B. I/O-Vorrichtungen, aufweisen, und manche Elemente, die in 15 gezeigt sind, müssen nicht im AP 2000 enthalten sein.
  • Das hochentwickelte Mikrocontroller-Busarchitektur(AMBA)-Protokoll Advanced RISC Machine (ARM) kann als Standardspezifikation für den Systembus 280 des AP 2000 verwendet werden. Bustypen des AMBA-Protokolls können Advanced Highperformance Bus (AHB), Advanced Peripheral Bus (APB), Advanced Extensible Interface (AXI), AXI4 und AXI Coherency Extensions (ACE) einschließen. Daneben können andere Arten von Protokollen, wie etwa uNetwork, CoreConnect oder Open Core Protocol, die für ein System optimiert sind, verwendet werden.
  • Der Prozessor 210 kann alle Operationen des AP 2000 steuern. Zum Beispiel kann Software für Verwaltungsoperationen für verschiedene IPs im AP 2000 in eine Speichervorrichtung 251, die außerhalb des AP 2000 bereitgestellt ist, und/oder in den einbetteten Speicher 240 geladen werden, und der Prozessor 210 kann verschiedene Verwaltungsoperationen durch Ausführen der geladenen Software durchführen.
  • Ein Bootloader kann im ROM 220 gespeichert sein. Daneben können verschiedene Einstellungswerte in Bezug auf den AP 2000 im ROM 220 gespeichert werden.
  • Die NPU 230 ist eine Operationseinheit, die eine Operation für tiefes Lernen bzw. Deep Learning durchführt (oder ein neuronales Netz). Die NPU 230 kann eine Operation für tiefes Lernen durchführen, wenn eine auf tiefem Lernen basierende Anwendung im AP 2000 ausgeführt wird, wodurch eine Leistung sichergestellt wird. Wenn beispielsweise die Speichersteuereinrichtung 250 ein Adressenübersetzungsschema durch maschinelles Lernen ableitet, wie oben beschrieben, dann kann die NPU 230 eine Operation durchführen.
  • Die Speicher-I/F 260 kann eine Verbindung zwischen dem AP 2000 und einem Datenträger 261 außerhalb des AP 2000 bereitstellen. Der Datenträger 261 kann einen nichtflüchtigen Speicher beinhalten. Der Datenträger 261 kann Zellen wie etwa NAND- oder NOR-Flash-Speicherzellen, die Daten behalten, wenn der Strom unterbrochen wird, oder verschiedene Arten von nichtflüchtigen Speichern, wie etwa MRAM, ReRAM, FRAM oder einen Phasenänderungsspeicher (PCM), einschließen.
  • Die Anzeigen-I/F 270 kann unter der Steuerung des Prozessors 210 oder einer GPU (nicht gezeigt) Bilddaten oder aktualisierte Bilddaten an einem Anzeigemodul 271 bereitstellen.
  • Die Speichervorrichtung 251 kann durch einen flüchtigen Speicher implementiert werden. In manchen Ausführungsbeispielen kann die Speichervorrichtung 251 einen flüchtigen Speicher, wie etwa einen DRAM und/oder einen statischen RAM (SRAM) aufweisen.
  • Wie oben in verschiedenen Ausführungsbeispielen beschrieben wurde, kann die Speichersteuereinrichtung 250 die Speichervorrichtung 251 steuern und eine Adresse, z.B. eine Systemadresse, die zusammen mit einer Zugriffsanfrage eines anderen IP (z.B. des Prozessors 210) empfangen wird, in eine Speicheradresse übersetzen, die der Speichervorrichtung 251 entspricht. Die Speichersteuereinrichtung 250 kann jede Speicheradresse, die einer Adressenübersetzung gemäß einer Mehrzahl von Adressenübersetzungsschemata unterzogen wurde, in Echtzeit in Bezug auf eine Speicherressourcenauslastung auswerten und bewerten und Bewertungen während eines Systembetriebs kontinuierlich aktualisieren. Wenn ein System in einen Ruhezeitraum kommt oder neu gestartet wird, kann die Speichersteuereinrichtung 250 ein Adressenübersetzungsschema ändem (z.B. in ein Adressenübersetzungsschema, das eine höchste Bewertung aufweist), so dass ein Adressenübersetzungsschema, das sich für ein Nutzermuster eignet, verwendet werden kann.
  • Die Speichersteuereinrichtung 250 kann eine Maschinenlernlogik aufweisen und ein Adressenübersetzungsschema, das eine Speicherauslastung erhöht (oder alternativ dazu maximiert), durch maschinelles Lernen auf Basis von Ergebnissen der Auswertung der Speicherauslastung in Bezug auf eingegebene Systemadressen und Adressenübersetzungsschemata ableiten. In manchen alternativen Ausführungsformen kann die Maschinenlernlogik separat von der Speichersteuereinrichtung 250 implementiert werden.
  • Um auf den Datenträger 261 und das Anzeigemodul 271 zuzugreifen, können die Speicher-IF 260 und/oder die Anzeigen-I/F 270 auch eine empfangene Adresse in eine Adressenstruktur übersetzen, die für eine Vorrichtung, auf die zugegriffen werden soll, geeignet ist. Wie oben unter Bezugnahme auf die Speichersteuereinrichtung 250 beschrieben wurde, können die Speicher-I/F 260 und/oder die Anzeigen-I/F 270 in Echtzeit eine Mehrzahl von Adressenübersetzungsschemata (oder Vorrichtungsabbildungsschemata), die vorab ausgewählt wurden, in Bezug auf eine Vorrichtungsauslastung auswerten und bewerten und können ein Adressenübersetzungsschema auf Basis von Bewertungen ändern. Infolgedessen kann ein Adressenübersetzungsschema verwendet werden, das für ein Verwendungsmuster eines individuellen Nutzers verbessert (oder alternativ optimiert) ist. Ein Verfahren zum Auswählen eines Adressenübersetzungsschemas wie eines der oben beschriebenen kann auch auf andere I/O-Vorrichtungen angewendet werden.
  • Gemäß Ausführungsbeispielen der erfinderischen Ideen kann eine Mehrzahl von Vorrichtungsadressen, die auf Basis einer Mehrzahl von Adressenübersetzungsschemata erzeugt worden sind, in Echtzeit ausgewertet und bewertet werden, kann eine Ressourcenauslastung der einzelnen Adressenübersetzungsschemata berechnet werden und kann eine Adressenübersetzung unter Verwendung eines Adressenübersetzungsschemas durchgeführt werden, das eine gewünschte Ressourcenauslastung (oder alternativ eine höchste Ressourcenauslastung) aufweist, so dass ein Adressenübersetzungsschema verwendet werden kann, das für ein Verwendungsmuster eines Nutzers verbessert (oder alternativ optimiert) ist. Infolgedessen können die Auslastung und die Leistung einer Speichervorrichtung und anderer I/O-Vorrichtungen erhöht werden.
  • Gemäß einem oder mehreren Ausführungsbeispielen können die oben beschriebenen Einheiten und/oder Vorrichtungen, einschließlich von Elementen der Speichersteuereinrichtung 100, wie etwa des Adressenübersetzers 110, des Auswertungsmoduls 120 und von Unterelementen davon, wie etwa der Adressenübersetzungsmodule MD1-MD3, der Zählerblöcke CB1-CB3 und der Logikschaltung LC und des Selektors 115, unter Verwendung von Hardware, einer Kombination aus Hardware und Software oder einem nichtflüchtigen Speichermedium, das Software speichert, die ausführbar ist, um die Funktionen derselben durchzuführen, implementiert werden.
  • Hardware kann unter Verwendung einer Verarbeitungsschaltung implementiert werden, wie unter anderem eines oder mehrerer Prozessoren, einer oder mehrerer zentraler Verarbeitungseinheiten (CPUs), einer oder mehrerer Steuereinrichtungen, einer oder mehrerer arithmetischer logischer Einheiten (ALUs), eines oder mehrerer Digitalsignalprozessoren (DSPs), eines oder mehrerer Mikrocomputer, eines oder mehrerer im Feld programmierbarer Gatteranordnungen (FPGAs), eines oder mehrerer System-on-Chips (SoCs), einer oder mehrerer programmierbarer logischer Einheiten (PLUs), eines oder mehrerer Mikroprozessoren, einer oder mehrerer anwendungsspezifischer integrierter Schaltungen (ASICs) oder irgendeiner anderen Vorrichtung oder irgendwelchen anderen Vorrichtungen, die in der Lage sind, auf definierte Weise auf Befehle zu reagieren und diese auszuführen.
  • Software kann ein Computerprogramm, einen Programmcode, Befehle oder irgendeine Kombination davon beinhalten, um eine Hardware-Vorrichtung unabhängig oder kollektiv zu instruieren oder zu konfigurieren, so dass diese wie gewünscht arbeitet. Das Computerprogramm und/oder der Programmcode kann/können ein Programm oder computerlesbare Befehle, Software-Komponenten, Software-Module, Datendateien, Datenstrukturen usw. beinhalten, das/die von einer oder mehreren Hardware-Vorrichtungen, wie etwa einer oder mehreren der oben genannten Hardware-Vorrichtungen, implementiert werden kann/können. Beispiele für Programmcode schließen sowohl einen Maschinencode, der von einem Compiler produziert wird, als auch einen Programmcode einer höheren Ebene ein, der mittels eines Interpreters ausgeführt wird.
  • Wenn eine Hardware-Vorrichtung beispielsweise eine Computer-Verarbeitungsvorrichtung ist (z.B. ein oder mehrere Prozessoren, CPUs, Steuereinrichtungen, ALUs, DSPs, Mikrocomputer, Mikroprozessoren usw.), dann kann die Computer-Verarbeitungsvorrichtung dafür ausgelegt sein, Programmcode durch Durchführen von arithmetischen, logischen und Eingabe/Ausgabe-Operationen gemäß dem Programmcode auszuführen. Sobald der Programmcode in eine Computer-Verarbeitungsvorrichtung geladen wurde, kann die Computer-Verarbeitungsvorrichtung programmiert werden, den Programmcode durchzuführen, wodurch die Computer-Verarbeitungsvorrichtung in eine Computer-Verarbeitungsvorrichtung für einen bestimmten Zweck transformiert wird. In einem konkreteren Beispiel wird ein Prozessor, sobald der Programmcode in den Prozessor geladen wurde, programmiert, um den Programmcode und diesem entsprechende Operationen durchzuführen, wodurch der Prozessor in einen Prozessor für einen bestimmten Zweck transformiert wird. In einem anderen Beispiel kann die Hardware-Vorrichtung eine integrierte Schaltung sein, die so angepasst wurde, dass sie eine Verarbeitungsschaltung für einen bestimmten Zweck (z.B. eine ASIC) ist.
  • Eine Hardware-Vorrichtung, wie etwa eine Computer-Verarbeitungsvorrichtung, kann ein Betriebssystem (OS) und eine oder mehrere Software-Anwendungen, die auf dem OS ausgeführt werden, ausführen. Die Computer-Verarbeitungsvorrichtung kann auch als Reaktion auf die Ausführung der Software auf Daten zugreifen, Daten speichern, bearbeiten, verarbeiten und erzeugen. Der Einfachheit halber kann ein oder können mehrere Ausführungsbeispiele anhand ein und derselben Computer-Verarbeitungsvorrichtung erläutert werden; der Fachmann wird jedoch erkennen, dass eine Hardware-Vorrichtung mehrere Verarbeitungselemente und mehrere Arten von Verarbeitungselementen aufweisen kann. Zum Beispiel kann eine Hardware-Vorrichtung mehrere Prozessoren oder einen Prozessor und eine Steuereinrichtung aufweisen. Außerdem sind auch andere Verarbeitungskonfigurationen möglich, wie etwa parallele Prozessoren.
  • Software und/oder Daten können permanent oder temporär in jeder Art von Speichermedium verkörpert werden, unter anderem in jeder Maschine, Komponente, physischen oder virtuellen Ausrüstung oder in jedem Computerspeichermedium oder -gerät, von der bzw. von dem an einer Hardware-Vorrichtung Befehle oder Daten bereitgestellt werden können oder die von einer solchen interpretiert werden können. Die Software kann auch über mit einem Netz gekoppelte Computersysteme verteilt werden, so dass die Software auf verteilte Weise gespeichert und ausgeführt wird. Insbesondere können beispielsweise Software und Daten von einem oder mehreren computerlesbaren Aufzeichnungsmedien, einschließlich materieller oder nichtflüchtiger computerlesbarer Speichermedien, wie hierin erörtert, gespeichert werden.
  • Speichermedien können auch eine oder mehrere Speichervorrichtungen an Einheiten und/oder Vorrichtungen gemäß einem oder mehreren Ausführungsbeispielen beinhalten. Die eine oder die mehreren Speichervorrichtungen können materielle oder nichtflüchtige computerlesbare Speichermedien sein, wie etwa ein Schreib-Lese-Speicher (RAM), ein Nur-Lese-Speicher (ROM), eine permanente Massenspeichervorrichtung (wie etwa ein Festplattenlaufwerk) und/oder irgendein anderer Datenspeichermechanismus, der in der Lage ist, Daten zu speichern und aufzuzeichnen. Die eine oder die mehreren Speichervorrichtungen können dafür ausgelegt sein, Computerprogramme, Programmcode, Befehle oder irgendeine Kombination davon für ein oder mehrere Betriebssysteme und/oder zur Implementierung der hierin beschriebenen Ausführungsbeispiele zu speichern. Die Computerprogramme, der Programmcode, die Befehle oder irgendeine Kombination davon kann bzw. können auch unter Verwendung eines Ansteuerungsmechanismus von einem separaten computerlesbaren Speichermedium in die eine oder die mehreren Computer-Verarbeitungsvorrichtungen geladen werden. Solch ein separates computerlesbares Speichermedium kann ein Universal-Serial-Bus(USB)-Flash-Laufwerk, einen Speicherstick, ein Blu-ray/DVD/CD-ROM-Laufwerk, eine Speicherkarte und/oder ähnliche computerlesbare Speichermedien beinhalten. Die Computerprogramme, der Programmcode, die Befehle oder irgendeine Kombination davon können statt über ein computerlesbares Speichermedium von einer fernen Datenspeichervorrichtung über eine Netzschnittstelle in die eine oder die mehreren Speichervorrichtungen und/oder die eine oder die mehreren Computer-Verarbeitungsvorrichtungen geladen werden. Außerdem können die Computerprogramme, der Programmcode, die Befehle oder irgendeine Kombination davon von einem fernen Rechensystem, das dafür ausgelegt ist, die Computerprogramme, den Programmcode, die Befehle oder irgendeine Kombination davon zu übertragen und/oder zu verteilen, über ein Netz in die eine oder die mehreren Speichervorrichtungen und/oder den einen oder die mehreren Prozessoren geladen werden. Das ferne Rechensystem kann die Computerprogramme, den Programmcode, die Befehle oder irgendeine Kombination davon über eine verkabelte Schnittstelle, eine Luftschnittstelle und/oder irgendein anderes ähnliches Medium übertragen und/oder verteilen.
  • Die eine oder die mehreren Hardware-Vorrichtungen, die Speichermedien, die Computerprogramme, der Programmcode, die Befehle oder irgendeine Kombination davon kann/können speziell für die Zwecke der Ausführungsbeispiele entworfen und konstruiert werden, oder kann/können bekannte Vorrichtungen sein, die für die Zwecke der Ausführungsbeispiele verändert und/oder modifiziert werden.
  • Auch wenn Ausführungsbeispiele der erfinderischen Ideen konkret unter Bezugnahme auf Ausführungsbeispiele davon gezeigt und beschrieben worden sind, sei klargestellt, dass verschiedene Änderungen an der Form und an Einzelheiten vorgenommen werden können, ohne vom Bereich der folgenden Ansprüche abzuweichen.

Claims (20)

  1. Speichersteuereinrichtung, dafür ausgelegt, eine Speichervorrichtung zu steuern, wobei die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) aufweist: eine Verarbeitungsschaltung, die dafür ausgelegt ist, auf Basis eines Adressenübersetzungsschemas eine erste Adresse (SA), die aus einem Host-Prozessor (300; 210) empfangen wird, in eine zweite Adresse (MA) zu übersetzen, die mit der Speichervorrichtung (200; 200a; 251) assoziiert ist, wobei das Adressenübersetzungsschema auf Basis einer Speicherressourcenauslastung aus einer Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) ausgewählt wird; und die Speicherressourcenauslastung von jedem der Mehrzahl von Adressenübersetzungsschemata(TS1 bis TS5) auf Basis einer Mehrzahl von Speicheradressen (MA1, MA2, MA3), die unter Verwendung der Mehrzahl von Adressenübersetzungsschemata(TS1 bis TS5) erzeugt worden sind, auszuwerten.
  2. Speichersteuereinrichtung nach Anspruch 1, wobei die Verarbeitungsschaltung dafür ausgelegt ist, die Speicherressourcenauslastung auf Basis von mindestens zwei von einem ersten Auswertungswert (EV1), einem zweiten Auswertungswert (EV2) und einem dritten Auswertungswert (EV3) zu berechnen, und wobei der erste Auswertungswert (EV1), der zweite Auswertungswert (EV2) und der dritte Auswertungswert (EV3) auf Basis einer Rank-Auswahl, einer Bankauswahl bzw. einer Reihenauswahl der Mehrzahl von Speicheradressen (MA1, MA2, MA3) in jedem von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) berechnet werden.
  3. Speichersteuereinrichtung nach Anspruch 2, wobei die Verarbeitungsschaltung dafür ausgelegt ist, die Speicherressourcenauslastung (RUV) auf Basis einer Summe eines ersten Werts und eines zweites Werts zu berechnen, wobei der erste Wert durch eine erste Gewichtung des ersten Auswertungswerts (EV1) erhalten wird und der zweite Wert durch eine zweite Gewichtung des zweiten Auswertungswerts (EV2) erhalten wird, wobei die erste Gewichtung höher ist als die zweite Gewichtung.
  4. Speichersteuereinrichtung nach einem der Ansprüche 1 bis 3, wobei die Verarbeitungsschaltung dafür ausgelegt ist, eine Adressenübersetzung auf Basis eines ersten Adressenübersetzungsschemas durchzuführen, die Speicherressourcenauslastung während eines ersten Zeitraums (T1), der mit dem ersten Adressenübersetzungsschema assoziiert ist, auszuwerten, und die Adressenübersetzung auf Basis eines zweiten Adressenübersetzungsschemas während eines zweiten Zeitraums (T2) durchzuführen, wobei das zweite Adressenübersetzungsschema auf Basis der während des ersten Zeitraums errechneten Speicherressourcenauslastung (RUV) ausgewählt wird.
  5. Speichersteuereinrichtung nach Anspruch 4, wobei die Verarbeitungsschaltung dafür ausgelegt ist, als Reaktion auf einen Neustart der Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) nach dem ersten Zeitraum (T1) das Adressenübersetzungsschema vom ersten Adressenübersetzungsschema in das zweite Adressenübersetzungsschema zu ändern.
  6. Speichersteuereinrichtung nach Anspruch 4, wobei die Verarbeitungsschaltung dafür ausgelegt ist, als Reaktion darauf, dass nach dem ersten Zeitraum (T2) ein Ruhezeitraum kommt, das Adressenübersetzungsschema vom ersten Adressenübersetzungsschema in das zweite Adressenübersetzungsschema zu ändern.
  7. Speichersteuereinrichtung nach einem der Ansprüche 1 bis 6, wobei die Verarbeitungsschaltung dafür ausgelegt ist, die Adressenübersetzung unter Verwendung verschiedener Adressenübersetzungsschemata (TS1 bis TS5) durchzuführen, um die Mehrzahl von Speicheradressen (MA1, MA2, MA3) zu erzeugen, durch Zählen von Ranks, Bänken und Reihen, die mit der Mehrzahl von Speicheradressen (MA1, MA2, MA3) assoziiert sind, Zählerwerte (CV_R, CV_BK, CV_RK) zu erzeugen, wobei die Ranks, die Bänke und die Reihen durch die Mehrzahl von Speicheradressen (MA1, MA2, MA3) ausgewählt werden, und auf Basis der Zählerwerte (CV_R, CV BK, CV RK) eine Auslastungsbewertung (RUV) zu berechnen, welche die Speicherressourcenauslastung angibt.
  8. Speichersteuereinrichtung nach Anspruch 7, wobei die Verarbeitungsschaltung dafür ausgelegt ist, die Ranks, die Bänke und die Reihen in Bezug auf N Speicheradressen (MA1, MA2, MA3) zu zählen, wobei N eine ganze Zahl größer oder gleich 2 ist.
  9. Speichersteuereinrichtung nach einem der Ansprüche 1 bis 8, wobei die Verarbeitungsschaltung dafür ausgelegt ist, maschinelles Lernen auf Basis einer Mehrzahl erster Adressen (SA, SA_1, SA_2) durchzuführen, um die Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) zeitlich nacheinander abzuleiten, wobei die Mehrzahl erster Adressen (SA, SA_1, SA_2) aus dem Host-Prozessor (300; 210) empfangen werden.
  10. Speichersteuereinrichtung nach Anspruch 9, wobei die Verarbeitungsschaltung dafür ausgelegt ist, die Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) auf Basis eines Änderungsmusters von Bits, die in der Mehrzahl erster Adressen (SA, SA_1, SA_2) enthalten sind, abzuleiten.
  11. Anwendungsprozessor, aufweisend: einen Host-Prozessor (300; 210), der dafür ausgelegt ist, eine Zugriffsanfrage (RQ; Q1_1 to Q16_1) und eine erste Adresse (SA) bereitzustellen; und eine Speichersteuereinrichtung (100; 100a; 100b; 100c; 250), die dafür ausgelegt ist, eine Adressenübersetzung durchzuführen, um auf Basis eines ersten Adressenübersetzungsschemas, das aus einer Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) ausgewählt wird, die erste Adresse in eine zweite Adresse zu übersetzen, die mit einer Speicheradresse (MA) assoziiert ist, während eines ersten Zeitraums (T1) eine Ressourcenauslastungsbewertung (RUV) zu berechnen, die eine Speicherressourcenauslastung von jedem der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) angibt, während sie die Adressenübersetzung auf Basis des ersten Adressenübersetzungsschemas durchführt, und während eines zweiten Zeitraums (T2) die Adressenübersetzung durchzuführen, um die erste Adresse auf Basis eines zweiten Adressenübersetzungsschemas in die zweite Adresse zu übersetzen, weil die Speicherressourcenauslastung des zweiten Adressenübersetzungsschemas von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) während des ersten Zeitraums (T2) am höchsten gewesen ist, wobei der zweite Zeitraum (T2) nach dem ersten Zeitraum (T2) kommt.
  12. Anwendungsprozessor nach Anspruch 11, wobei die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) dafür ausgelegt ist, eine Ressourcenauslastungsbewertung (RUV) für jedes von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) während des zweiten Zeitraums (T2) neu zu berechnen, und die Adressenübersetzung während eines dritten Zeitraums nach dem zweiten Zeitraum auf Basis eines dritten Adressenübersetzungsschemas durchzuführen, weil die Speicherressourcenauslastung des dritten Adressenübersetzungsschemas von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) während des zweiten Zeitraums (T2) am höchsten gewesen ist, wobei der dritte Zeitraum nach dem zweiten Zeitraum (T2) kommt.
  13. Anwendungsprozessor nach Anspruch 11 oder 12, wobei die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) dafür ausgelegt ist, die Ressourcenauslastungsbewertung (RUV) für die Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) auf Basis einer Mehrzahl von Speicheradressen (MA1, MA2, MA3), die gemäß einem ausgewählten von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) erzeugt worden sind, zu berechnen.
  14. Anwendungsprozessor nach einem der Ansprüche 11 bis 13, wobei die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) dafür ausgelegt ist, die Ressourcenauslastungsbewertung (RUV) auf Basis eines ersten Auswertungswerts (EV1), der gemäß einer Rank-Auswahl berechnet wird, eines zweiten Auswertungswerts (EV2), der gemäß einer Bankauswahl berechnet wird, und eines dritten Auswertungswerts (EV3), der gemäß einer Reihenauswahl berechnet wird, zu berechnen.
  15. Anwendungsprozessor nach einem der Ansprüche 11 bis 14, wobei die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) dafür ausgelegt ist, die Adressenübersetzung unter Verwendung verschiedener von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) durchzuführen, um eine Mehrzahl von Speicheradressen (MA1, MA2, MA3) zu erzeugen, und die Ressourcenauslastungsbewertung (RUV) für jedes von der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) auf Basis der Mehrzahl von Speicheradressen zu berechnen.
  16. Anwendungsprozessor nach Anspruch 15, wobei die Speichersteuereinrichtung dafür ausgelegt ist, Zählerwerte (CV_R, CV_BK, CV_RK) durch Zählen von Ranks, Bänken und Reihen, die auf Basis der Mehrzahl von Speicheradressen (MA1, MA2, MA3) ausgewählt werden, zu erzeugen; und auf Basis der Zählerwerte (CV_R, CV BK, CV RK) die Ressourcenauslastungsbewertung (RUV) zu berechnen.
  17. Anwendungsprozessor nach einem der Ansprüche 11 bis 16, wobei die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) dafür ausgelegt ist, Ressourcenauslastungsbewertungen (RUV), die in Bezug auf die Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) berechnet wurden, zu vergleichen, und das zweite Adressenübersetzungsschema auf Basis der Ressourcenauslastungsbewertungen auszuwählen, so dass die Speicherressourcenauslastung des zweiten Adressenübersetzungsschemas unter der Mehrzahl von Adressenübersetzungsschemata (TS1 bis TS5) am höchsten ist.
  18. Anwendungsprozessor nach einem der Ansprüche 11 bis 17, wobei Informationen, die angeben, dass die Speicherressourcenauslastung (RUV) des zweiten Adressenübersetzungsschemas unter der Mehrzahl von Adressenübersetzungsschemata am höchsten ist, in einer Speichervorrichtung gespeichert werden, und die Speichersteuereinrichtung (100; 100a; 100b; 100c; 250) dafür ausgelegt ist, auf Basis der Informationen, die nach dem ersten Zeitraum (T1) beim erneuten Starten aus der Speichervorrichtung geladen werden, vom ersten Adressenübersetzungsschema auf das zweite Adressenübersetzungsschema zu wechseln.
  19. Verfahren zum Betätigen einer Speichersteuereinrichtung zur Überstzung einer Systemadresse (SA) in eine Speicheradresse (MA), die mit einer Speichervorrichtung (200; 200a; 251) assoziiert ist, wobei das Verfahren umfasst: Übersetzen der Systemadresse (SA) in die Speicheradresse (MA) auf Basis eines Adressenübersetzungsschemas, das aus einer Mehrzahl von in Frage kommenden Übersetzungsschemata (TS1 bis TS5) ausgewählt wird; Berechnen von Ressourcenauslastungsbewertungen für die Mehrzahl von in Frage kommenden Übersetzungsschemata (TS1 bis TS5); Auswählen eines nächsten Adressenübersetzungsschemas mit einer höchsten Ressourcenauslastungsbewertung aus der Mehrzahl von in Frage kommenden Übersetzungsschemata (TS1 bis TS5) auf Basis der Ressourcenauslastungsbewertungen; Ändern des Adressenübersetzungsschemas in das nächste Adressenübersetzungsschema; und Übersetzen der Systemadresse (SA) in die Speicheradresse (MA) auf Basis des nächsten Adressenübersetzungsschemas.
  20. Verfahren nach Anspruch 19, wobei das Berechnen der Ressourcenauslastungsbewertung (RUV) umfasst: Erzeugen einer Mehrzahl von in Frage kommenden Speicheradressen (MA1, MA3, MA3), die einer Mehrzahl von Systemadressen entsprechen, auf Basis von jedem von der Mehrzahl von in Frage kommenden Übersetzungsschemata (TS1 bis TS5); Erzeugen eines Überwachungsergebnisses durch Überwachen einer Änderung an Speicherressourcen, die mit unterschiedlichen von der Mehrzahl von in Frage kommenden Speicheradressen assoziiert sind; und Berechnen der Ressourcenauslastungsbewertung auf Basis des Überwachungsergebnisses.
DE102019103114.1A 2018-02-12 2019-02-08 Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung Pending DE102019103114A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0017059 2018-02-12
KR1020180017059A KR102540964B1 (ko) 2018-02-12 2018-02-12 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작

Publications (1)

Publication Number Publication Date
DE102019103114A1 true DE102019103114A1 (de) 2019-08-14

Family

ID=67399862

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019103114.1A Pending DE102019103114A1 (de) 2018-02-12 2019-02-08 Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung

Country Status (6)

Country Link
US (1) US10846233B2 (de)
KR (1) KR102540964B1 (de)
CN (1) CN110162491B (de)
DE (1) DE102019103114A1 (de)
SG (1) SG10201901162PA (de)
TW (1) TWI791765B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042490B2 (en) * 2018-11-15 2021-06-22 Micron Technology, Inc. Address obfuscation for memory
US11036434B2 (en) * 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory systems
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
US11442631B2 (en) * 2019-12-26 2022-09-13 Micron Technology, Inc. Memory operations with consideration for wear leveling
WO2022018466A1 (en) * 2020-07-22 2022-01-27 Citrix Systems, Inc. Determining server utilization using upper bound values
KR20220032808A (ko) 2020-09-08 2022-03-15 삼성전자주식회사 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치
TWI768731B (zh) * 2021-02-25 2022-06-21 威盛電子股份有限公司 電腦系統

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710531B1 (ko) * 1998-11-16 2007-04-23 인피네온 테크놀로지스 아게 범용 리소스 접근 제어기
US6356988B1 (en) 1999-01-07 2002-03-12 Nec Corporation Memory access system, address converter, and address conversion method capable of reducing a memory access time
US6381669B1 (en) 1999-12-27 2002-04-30 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
EP1354484B1 (de) 2001-01-12 2010-12-08 Nxp B.V. Einheit und verfahren zur speicheradressenübersetzung und bildverarbeitungsvorrichtung mit einer solchen einheit
KR100437609B1 (ko) 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
US7562271B2 (en) * 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US8135936B2 (en) 2009-12-23 2012-03-13 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
JP2008112292A (ja) 2006-10-30 2008-05-15 Hitachi Ltd ストレージシステム及びストレージシステムの電源供給制御方法
JP2008242999A (ja) 2007-03-28 2008-10-09 Hitachi Ltd 情報処理装置およびメモリダンプ方法
US7870363B2 (en) 2007-12-28 2011-01-11 Intel Corporation Methods and arrangements to remap non-volatile storage
US8386747B2 (en) 2009-06-11 2013-02-26 Freescale Semiconductor, Inc. Processor and method for dynamic and selective alteration of address translation
US9026767B2 (en) * 2009-12-23 2015-05-05 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
US8799553B2 (en) 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
KR101766833B1 (ko) 2010-08-16 2017-08-09 에스프린팅솔루션 주식회사 화상형성장치 및 가상 메모리 주소를 물리 메모리 주소로 변환하는 방법
US8464023B2 (en) * 2010-08-27 2013-06-11 International Business Machines Corporation Application run-time memory optimizer
WO2012033662A2 (en) * 2010-09-10 2012-03-15 Rambus Inc. Memory controller and method for tuned address mapping
KR101242195B1 (ko) 2011-02-25 2013-03-11 서울대학교산학협력단 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
CN103842975B (zh) * 2011-09-19 2016-12-14 马维尔国际贸易有限公司 用于监视和管理存储器块以改善节电的系统和方法
US9405681B2 (en) 2011-12-28 2016-08-02 Intel Corporation Workload adaptive address mapping
US9256550B2 (en) 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
KR101975029B1 (ko) * 2012-05-17 2019-08-23 삼성전자주식회사 리프레쉬 주기를 조절하는 반도체 메모리 장치, 메모리 시스템 및 그 동작방법
US9218285B2 (en) * 2012-11-26 2015-12-22 Arm Limited Variable mapping of memory accesses to regions within a memory
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
JP6102632B2 (ja) 2013-08-14 2017-03-29 ソニー株式会社 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
US10210096B2 (en) 2013-10-01 2019-02-19 Ampere Computing Llc Multi-stage address translation for a computing device
CN104750614B (zh) * 2013-12-26 2018-04-10 伊姆西公司 用于管理存储器的方法和装置
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US20160062911A1 (en) 2014-08-27 2016-03-03 Advanced Micro Devices, Inc. Routing direct memory access requests in a virtualized computing environment
WO2016085461A1 (en) * 2014-11-25 2016-06-02 Hewlett Packard Enterprise Development Lp Computing resource with memory resource memory management
KR102190125B1 (ko) 2014-12-05 2020-12-11 삼성전자주식회사 어드레스 리매핑을 위한 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 어드레스 리매핑 방법
KR102190403B1 (ko) * 2016-05-20 2020-12-11 삼성전자주식회사 물리적 메모리 크기보다 큰 메모리 용량을 가능하게 하기 위한 방법 및 장치
US10372618B2 (en) * 2016-10-14 2019-08-06 Arm Limited Apparatus and method for maintaining address translation data within an address translation cache
US10552338B2 (en) * 2017-02-21 2020-02-04 Arm Limited Technique for efficient utilisation of an address translation cache

Also Published As

Publication number Publication date
US20190251038A1 (en) 2019-08-15
US10846233B2 (en) 2020-11-24
KR102540964B1 (ko) 2023-06-07
TWI791765B (zh) 2023-02-11
CN110162491A (zh) 2019-08-23
TW201937374A (zh) 2019-09-16
CN110162491B (zh) 2023-08-04
KR20190097528A (ko) 2019-08-21
SG10201901162PA (en) 2019-09-27

Similar Documents

Publication Publication Date Title
DE102019103114A1 (de) Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung
DE102016221811B4 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE102013106154B4 (de) Speichersystem und Ein-Chip-System mit linearer Adress-Remapping-Logik
DE102019106669A1 (de) Verfahren und anordnungen zum verwalten von speicher in kaskadierten neuronalen netzen
DE102018132781A1 (de) Heterogenes Rechensystem, welches konfiguriert ist, um eine Cachekohärenz adaptiv zu steuern
DE102016100902A1 (de) Verfahren zum dynamischen Zuteilen von Ressourcen von konfigurierbaren Datenverarbeitungsressourcen
DE112016004801T5 (de) Arbeitslastzuweisung für computerressourcen
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE102018209205A1 (de) Datenspeicher mit intelligentem Speicher oder Ladeverfahren und -vorrichtung
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102018006015A1 (de) Globale und lokale Zeitschrittbestimmungsschemata für neuronale Netzwerke
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE102013205886A1 (de) Dynamische Bankmodus-Adressierung für Speicherzugriff
DE112018002500T5 (de) Speicherarray für Hybriddaten
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102010044529A1 (de) Autonome Subsystem-Architektur
DE102017120965A1 (de) Prozessor in nichtflüchtigem Ablagespeicher
DE102019102317A1 (de) Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen
DE102013019333A1 (de) Registerzuweisung für als cluster vorliegende mehrebenen-registerdaten
DE102020119205A1 (de) Speichervorrichtung, speichersystem und betriebsverfahren hierfür
DE112017001118T5 (de) Verfahren und Vorrichtung zum Bereitstellen eines zusammenhängend adressierbaren Speicherbereichs durch Neuabbildung eines Adressraums
DE102022124530A1 (de) Speicherpoolmanagement

Legal Events

Date Code Title Description
R012 Request for examination validly filed