DE102007059784A1 - Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher in einen statischen wahlfreien Zugriffsspeicher - Google Patents
Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher in einen statischen wahlfreien Zugriffsspeicher Download PDFInfo
- Publication number
- DE102007059784A1 DE102007059784A1 DE102007059784A DE102007059784A DE102007059784A1 DE 102007059784 A1 DE102007059784 A1 DE 102007059784A1 DE 102007059784 A DE102007059784 A DE 102007059784A DE 102007059784 A DE102007059784 A DE 102007059784A DE 102007059784 A1 DE102007059784 A1 DE 102007059784A1
- Authority
- DE
- Germany
- Prior art keywords
- cache
- dram
- logic
- integrated circuit
- precharge
- 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.)
- Ceased
Links
- 230000036316 preload Effects 0.000 title claims abstract description 15
- 230000003068 static effect Effects 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000012546 transfer Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 229910052710 silicon Inorganic materials 0.000 claims description 4
- 239000010703 silicon Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- IERHLVCPSMICTF-XVFCMESISA-N CMP group Chemical group P(=O)(O)(O)OC[C@@H]1[C@H]([C@H]([C@@H](O1)N1C(=O)N=C(N)C=C1)O)O IERHLVCPSMICTF-XVFCMESISA-N 0.000 description 8
- 239000013317 conjugated microporous polymer Substances 0.000 description 8
- 210000003643 myeloid progenitor cell Anatomy 0.000 description 8
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Ausführungsformen der Erfindung betreffen im allgemeinen Systeme, Verfahren und Vorrichtungen zum Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher (DRAM) in einen statischen wahlfreien Zugriffsspeicher (SRAM). In einigen Ausführungsformen empfängt die Vorladelogik einen Vorladehinweis, der mit einem Ladebefehl verbunden ist. Die Vorladelogik kann mindestens teilweise auf der Grundlage des Vorladehinweises zwei oder mehr Cachezeilen von einer offenen Seite in dem DRAM am dem SRAM übertragen.
Description
- TECHNISCHES GEBIET
- Ausführungsformen der Erfindung betreffen im allgemeinen das Gebiet der integrierten Schaltungen und genauer Systeme, Verfahren und Vorrichtungen zum Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher (DRAM) in einen statischen wahlfreien Zugriffsspeicher (SRAM).
- ALLGEMEINER STAND DER TECHNIK
- Industrielle Chipgestaltungen bewegen sich in Richtung Chipmehrfachprozessoren (chip multiprocessors = CMPs). Im Vergleich zu Hochfrequenz-Einfachprozessoren stellen CMPs eine verbesserte Leistungsfähigkeit und einen geringeren Leistungsverbrauch bereit. CMPs benutzen relativ einfache Kerne und stützen sich auf einen Ausführungsstrang-Parallelismus (thread level parallelism = TLP) zur Verbesserung der Leistungsfähigkeit. Anwendungen, die auf CMPs laufen, müssen den TLP erhöhen, um die Kernzählung effizient zu nutzen.
- Eine Erhöhung des TLPs erhöht jedoch auch den Parallelismus auf Speicherebene (memory level parallelism = MLP), indem die Anzahl ausstehender Speicheranfragen pro Takt erhöht wird. Außerdem wächst der Datenarbeitssatz der mehrfädigen Anwendungen wahrscheinlich mit der Anzahl der Ausführungsstränge. Schließlich führt eine Erhöhung des TLPs wahrscheinlich auch zu einer Erhöhung der Zugriffswahlfreiheit auf die gemeinsam genutzten Caches, da Zugriffe von mehreren Ausführungssträngen miteinander verwoben werden. Folglich sollten die Speicherbandbreite und Cachekapazität an die Zahl der Kerne angepaßt sein, um den erhöhten MLP und Datenprofil zu unterstützen.
- In jüngerer Zeit ist das dreidimensionale (3D) Plättchenstapeln als (Die-Stapeln) eine durchführbare Option zum Stapeln eines dichten Speicherplättchens (beispielsweise eines DRAM) auf einem Mikroprozessorplättchen vorgeschlagen worden Das Stapeln ermöglicht die Kombinierung von verschiedenen Si-Technologien in einen Plättchenstapel ohne Rücksichtnahme auf die Technologieintegration in einen einfachen Prozeßfluß. Das Stapeln stellt auch eine Schnittstelle von sehr hoher Bandbreite zwischen dem Plättchen bereit, das Silizium-Durchgänge benutzt. Folglich kann das 3D-Stapeln von Speichereinheiten (wie DRAM) auf CMPs die Speicherhierarchiehürden bei der CMP-Skalierung effektiv überwinden.
- DRAMs halten in der Regel eine offene Reihe aktiviert, bis eine andere Reihe angefordert wird, um die Zugriffslatenz zu senken. Diese Technik wird als Offene-Seite-Regel (open-page policy) bezeichnet und funktioniert am besten, wenn aufeinanderfolgende Zugriffe auf den DRAM auf die gleiche offene Seite stattfinden. Anderenfalls erhöhen Bankschließungen und Vorladestrafzeiten die Gesamtlatenz des Zugreifens auf eine Bank bedeutend. Herkömmlicherweise gibt es in DRAM-Gestaltungen nur eine offene Seite pro Bank.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Ausführungsformen der Erfindung sind in den Figuren der beiliegenden Zeichnungen beispielhaft und nicht einschränkend dargestellt, wobei ähnliche Bezugszeichen ähnliche Elemente bezeichnen.
-
1 ist ein Blockdiagramm, das ausgewählte Aspekte eines Rechensystems zeigt, das gemäß einer Ausführungsform der Erfindung implementiert ist. -
2 ist ein Konzeptdiagramm, das eine Blockübertragung gemäß einer Ausführungsform der Erfindung darstellt. -
3 ist ein Blockdiagramm auf hoher Ebene, das ausgewählte Aspekte eines Rechensystems zeigt, das gemäß einer Ausführungsform der Erfindung implementiert ist. -
4 ist ein Blockdiagramm auf hoher Ebene, das eine Ausführungsform darstellt, in der das L2-Cache gemeinsam benutzt wird. -
5 ist ein Blockdiagramm auf hoher Ebene, das eine Ausführungsform darstellt, in der die Vorladelogik auf unterschiedlichen Stufen innerhalb der Cachehierarchie benutzt wird. -
6 ist ein Flußdiagramm, das ausgewählte Aspekte einer Blockübertragung gemäß einer Ausführungsform der Erfindung darstellt. -
7 ist eine Querschnittsansicht einer Halbleitervorrichtung, die gemäß einer Ausführungsform der Erfindung implementiert ist. - AUSFÜHRLICHE BESCHREIBUNG
- Die Erfahrung hat gezeigt, daß die Lokalität von Zugriffen auf den DRAM tendenziell zufälliger wird, wenn die Anzahl der Ausführungsstränge, die auf den DRAM zugreifen, zunimmt. Da DRAMs eine begrenzte Anzahl von Banken (zum Beispiel 16) aufweisen, kann die Anzahl von Seitenöffnungen mit der Zunahme der Anzahl der Ausführungsstränge dramatisch zunehmen. Folglich könnten die Folgen einer Banküberlastung die Leistungsfähigkeit des Systems bedeutend beeinflussen.
- Ausführungsformen der Erfindung betreffen im allgemeinen Systeme, Verfahren und Vorrichtungen zum Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher (DRAM) in einen statischen wahlfreien Zugriffsspeicher (SRAM). In einigen Ausführungsformen werden zwei oder mehr Cachezeilen von einer offenen Seite in dem DRAM an einen SRAM übertragen. Die Übertragung kann über eine dichte Verbindung wie einen Plättchen-zu-Plättchen-Durchgang bzw. Die-zu-Die-Durchgang erfolgen. Wie nachstehend weiter beschrieben wird, können die Ausführungsformen der Erfindung Speicherressourcen, die für eine CMP-Anpassung geeignet sind, effektiv bereitstellen.
-
1 ist ein Blockdiagramm, das ausgewählte Aspekte eines Rechensystems zeigt, das gemäß einer Ausführungsform der Erfindung implementiert ist. Das Rechensystem100 weist einen Kern oder Kerne102 auf, die mit dem DRAM104 durch einen Interconnect bzw. eine Verbindung106 verbunden sind. Der Kern102 kann nahezu jede beliebige Kernlogik einer integrierten Schaltung sein, einschließlich eines allgemeinen Verarbeitungskerns, eines Grafikkerns und dergleichen. In einigen Ausführungsformen ist der Kern102 einer von mehreren Kernen auf einem Plättchen (zum Beispiel einem CMP). - Der Kern
102 weist eine Befehlsverarbeitungslogik108 , einen Ln-Cache (zum Beispiel einen L2-Cache)110 und eine Vorlade(Prefetch = PF)-Logik112 auf. Die Befehlsverarbeitungslogik108 kann ein oder mehrere Elemente zur Verarbeitung von Befehlen aufweisen, wie einen Befehlszeiger, eine Decodierlogik, Register und einen L1-Cache. In einigen Ausführungsformen kann die Befehlslogik108 auch eine Logik aufweisen, um einen Vorladehinweis (zum Beispiel den Vorladehinweis114 ) zu generieren. Ein Vorladehinweis bezieht sich im allgemeinen auf ein Indiz, daß zwei oder mehr Ladebefehle wahrscheinlich Daten von der gleichen Cacheseite anfordern. In einigen Ausführungsformen kann der Vorladehinweis ein Vertrauenswert sein, der von einem Schritterkennungsmechanismus auf der Grundlage des Befehlszeiger(IP)-Verlaufs generiert wird. In alternativen Ausführungsformen kann ein anderer Mechanismus benutzt werden, um den Vorladehinweis zu generieren. - Der Ln-Cache
110 und die PF-Logik112 sind mit der Befehlsverarbeitungslogik108 durch den Interconnect bzw. die Verbindung116 (zum Beispiel einen L2-Bus) verbunden. Wenn ein L1-Cache-Fehltreffer vorliegt, dann werden in einigen Ausführungsformen der Fehltreffer und der Vorladehinweis114 (direkt oder durch eine oder mehrere Stufen in einer Speicherhierarchie) an den Ln-Cache110 und/oder die Vorladelogik112 weitergeleitet. Die Vorladelogik112 kann bestimmen, ob zwei oder mehr Cachezeilen von einer offenen Seite des DRAMs104 mindestens teilweise auf der Grundlage des Vorladehinweises114 vorab geladen werden. Wenn zum Beispiel der Vorladehinweis114 anzeigt, daß eine hohe Wahrscheinlichkeit besteht, daß eine Anzahl von LOAD-Befehlen ein Streaming-Verhalten aufweisen werden, dann kann die PF-Logik112 eine gesamte offene Datenseite aus dem DRAM104 in den Ln-Cache110 übertragen. - In einigen Ausführungsformen kann die PF-Logik
112 eine Logik zum Drosseln einer Vorladung aufweisen, wenn zum Beispiel der Nutzungsgrad der Verbindung106 zu hoch ist. In solchen Ausführungsformen kann die PF-Logik112 den Vertrauensgrad (zum Beispiel hoch, mittel oder niedrig), der von dem Vorladehinweis114 bereitgestellt wird, mit einer Angabe über den Verbindungsnutzungsgrad vergleichen und bestimmen, ob Daten aus dem DRAM104 vorab geladen werden sollen oder nicht. Der Ausdruck „Daten", wie hier verwendet, bezieht sich im weiten Sinn auf irgendeine Informationsart, einschließlich Befehlen, in irgendeiner für den Kern102 erkennbaren Form. - Der DRAM
104 kann nahezu jede beliebige Form von DRAM sein, einschließlich eines Commodity-DRAMs, DRAMs mit reduzierter Latenz (RLDRAM), magnetischen wahlfreien Zugriffsspeichers (MRAM) und dergleichen. Außerdem kann der DRAM104 nahezu jede beliebige Anzahl von Banken mit fast jeder beliebigen Seitengröße aufweisen. In einigen Ausführungsformen weist der DRAM104 16 Banken auf, wobei jede Seite 4 Kilobyte (KB) beträgt. - Die Verbindung
106 kann jede beliebige eines breiten Spektrums an Plättchen-zu-Plättchen- und/oder Chip-zu-Chip-Verbindungen sein. In einigen Ausführungsformen sind der Kern102 und der DRAM104 vertikal gestapelt, und die Verbindung106 ist ein Plättchen-zu-Plättchen-Durchgang von hoher Dichte. In alternativen Ausführungsformen sind der Kern102 und der DRAM104 zusammen in einem Mehrchipmodul zusammen untergebracht, wobei die Verbindung106 eine Verbindung von hoher Dichte zwischen (mindestens) einigen der Chips in dem Modul bereitstellt. In wieder anderen alternativen Ausführungsformen können der Kern102 und der DRAM104 in getrennten Baugruppen untergebracht sein, wobei die Verbindung106 die Baugruppen verbindet. -
2 ist ein Konzeptdiagramm, das eine Blockübertragung gemäß einer Ausführungsform der Erfindung darstellt. Der DRAM202 ist in eine oder mehreren Cacheseiten204 gegliedert. In einigen Ausführungsformen weist der DRAM202 zu jedem gegebenen Zeitpunkt (sofern die Vorrichtung in Betrieb ist) eine offene Cacheseite auf. Zum Beispiel ist die Cacheseite206 in der dargestellten Ausführungsform offen. Jede Cacheseite besteht aus zwei oder mehr Cachezeilen208 , die jeweils zwei oder mehr Datenbytes aufweisen. In einigen Ausführungsformen überträgt die Vorladelogik (zum Beispiel die Vorladelogik112 , dargestellt in1 ) einen Block von zwei oder mehr Cachezeilen von der offenen DRAM-Cacheseite206 in den SRAM210 . Die Entscheidung zur Übertragung eines Blocks von Cachezeilen kann mindestens teilweise auf einem Vorladehinweis (zum Beispiel dem Vorladehinweis114 , dargestellt in1 ) beruhen. Die Blockübertragungen von Daten aus einem DRAM in einen SRAM werden nachstehend in bezug auf3 bis7 weiter beschrieben. -
3 ist ein Blockdiagramm auf hoher Ebene, das ausgewählte Aspekte eines Rechensystems zeigt, das gemäß einer Ausführungsform der Erfindung implementiert ist. Das System300 weist mehrere Kerne302 auf. Die Kerne302 können beliebige einer großen Vielfalt an Kernen sein, einschließlich allgemeiner Verarbeitungskerne und Grafikkerne. In einigen Ausführungsformen weist jeder Kern einen privaten L1-Cache304 und einen privaten L2-Cache306 auf. Außerdem kann jeder Kern (oder ein untergeordneter Satz von Kernen) eine PF-Logik308 aufweisen. - In einigen Ausführungsformen befindet sich der DRAM-L3-Cache
310 auf einem Plättchen, das mit dem Plättchen, das die Kerne302 enthält, vertikal gestapelt ist. In solchen Ausführungsformen kann der L3-Bus314 eine Plättchen-zu-Plättchen-Verbindung von hoher Dichte sein. Der Groß-DRAM312 stellt Systemspeicher bereit und kann eine Anzahl von Speichervorrichtungen aufweisen, die von den Kernen302 und dem DRAM-L3-Cache310 getrennt sind. - In einigen Ausführungsformen überträgt die PF-Logik
308 zwei oder mehr Cachezeilen aus einer offenen Seite des DRAM-L3-Caches in einen SRAM-L2-Cache. Die Entscheidung zur Übertragung eines Blocks von Cachezeilen kann mindestens teilweise auf einem Vorladehinweis beruhen, welcher der PF-Logik308 von einer Befehlsverarbeitungslogik auf Kern302 (zum Beispiel Befehlsverarbeitungslogik102 , dargestellt in1 ) bereitgestellt wird. Außerdem kann die Entscheidung zur Übertragung eines Blocks von Cachezeilen mindestens teilweise auf dem Nutzungsgrad beruhen, der von dem Bus314 erfahren wird. In manchen Ausführungsformen kann die PF-Logik308 eine ganze Speicherseite aus dem DRAM-L3310 in den SRAM-L2306 übertragen. -
4 ist ein Blockdiagramm auf hoher Ebene, das eine Ausführungsform darstellt, in welcher der L2-Cache gemeinsam benutzt wird. In der dargestellten Ausführungsform weist jeder Kern302 einen privaten L1-Cache auf, wobei die Kerne den L2-Cache402 gemeinsam benutzen. Wenn für den L1-Cache304 ein Fehltreffer vorliegt, können der Fehltreffer und ein Vorladehinweis an den L2-Cache402 und/oder die PF-Logik404 weitergeleitet werden. In einigen Ausführungsformen bestimmt die PF-Logik404 mindestens teilweise auf der Grundlage des Vorladehinweises, ob zwei oder mehr Cachezeilen von einer offenen Seite des DRAM-L3310 übertragen werden sollen. Außerdem kann die Vorladelogik404 die Übertragungsentscheidung auf andere Faktoren begründen, einschließlich des Nutzungsgrads des L3-Busses314 . -
5 ist ein Blockdiagramm auf hoher Ebene, das eine Ausführungsform darstellt, in der die Vorladelogik auf unterschiedlichen Stufen innerhalb der Cachehierarchie benutzt wird. In einigen Ausführungsformen können ein Cachefehltreffer (zum Beispiel sowohl ein L1- als auch ein L2-Cachefehltreffer) und ein Vorladehinweis an den DRAM-L3-Cache502 und/oder die PF-Logik504 weitergeleitet werden. Die PF-Logik504 kann mindestens teilweise auf der Grundlage des Vorladehinweises (und möglicherweise anderer Faktoren wie den Busnutzungsgraden) zwei oder mehr Cachezeilen aus einer offenen Seite des Groß-DRAMs312 in den DRAM-L3-Cache502 übertragen. Die Vorladelogik308 wiederum kann zwei oder mehr Cachezeilen aus einer offenen Seite des DRAM-L3-Caches502 in den SRAM-L2-Cache306 übertragen. Wenngleich die dargestellte Ausführungsform zwei Stufen eines gebündelten Vorladens zeigt, wird man zu verstehen wissen, daß die gebündelte Übertragung eines Blocks von Cachezeilen nahezu jede beliebige Anzahl an Malen über nahezu jede beliebige Anzahl an Cachestufen ausgeführt werden könnte. -
6 ist ein Flußdiagramm, das ausgewählte Aspekte einer Blockübertragung gemäß einer Ausführungsform der Erfindung darstellt. In bezug auf den Prozeßblock602 empfängt die Vorladelogik (zum Beispiel die Vorladelogik112 , dargestellt in1 ) einen Vorladehinweis, der mit einem LOAD-Befehl in Verbindung steht. In einigen Ausführungsformen wird der Vorladehinweis durch einen IP-basierten Schritterkennungsalgorithmus generiert. In solchen Ausführungsformen kann der Vorladehinweis angeben, wie wahrscheinlich es ist, daß nachfolgende LOAD-Befehle einen monoton zunehmenden oder abnehmenden Adreßschritt haben werden. In einigen Ausführungsformen kann der Vorladehinweis jede beliebige einer Anzahl von Werten haben, die einen Vertrauensgrad dahingehend angeben, ob nachfolgende LOAD-Befehle einen monoton zunehmenden oder abnehmenden Adreßschritt haben werden. Zum Beispiel kann der Vorladehinweis einen Vertrauensgrad von hoch, mittel oder niedrig angeben. Als Alternative kann nahezu jedes beliebige Schema benutzt werden, um den Vertrauensgrad anzugeben. - In bezug auf den Prozeßblock
604 kann die PF-Logik die Blockvorladung auf der Grundlage einer oder mehrerer Bedingungen oder Faktoren drosseln. Der Ausdruck "drosseln" kann sich auf eine Anzahl von Verhalten beziehen, einschließlich des Verzögerns einer Übertragung, Abbrechen einer Übertragung, Veränderns der Größe einer Übertragung und dergleichen. Die Bedingungen, welche eine Drosselung der Übertragung auslösen können umfassen: ein Nutzungsgrad der Verbindung, über welche die Übertragung stattfinden soll, ein Vorladehinweis, ein Leistungseinsparungsgrad und dergleichen. Wie durch die gestrichelte Linie angegeben, ist der Drosselmechanismus in einigen Ausführungsformen optional. - In bezug auf den Prozeßblock
606 überträgt die PF-Logik mindestens teilweise auf der Grundlage des Vorladehinweises zwei oder mehr Cachezeilen von einem DRAM an einen SRAM. Wenn der Vorladehinweis zum Beispiel eine hohe Wahrscheinlichkeit angibt, daß eine Anzahl an LOAD-Befehlen einen monoton zunehmenden oder abnehmenden Adreßschritt haben wird, dann kann die PF-Logik einen Block von Cachezeilen in den Cache übertragen, um die Wahrscheinlichkeit zu erhöhen, daß die angeforderten Daten in dem Cache gespeichert werden. Der DRAM kann Teil der Cachehierarchie und/oder ein Element des Großspeichers sein. Außerdem kann sich der SRAM bei nahezu jeder beliebigen Stufe der Cachehierarchie befinden. -
7 zeigt eine Querschnittsansicht einer Halbleitervorrichtung700 gemäß einer Ausführungsform der Erfindung. Die Vorrichtung700 kann ein Gehäuse702 , ein Plättchen728 , ein Plättchen730 und Plättchen-zu-Plättchen-Durchgänge726 aufweisen. Ein oder mehrere Erhebungen704-1 bis704-N (zusammen hierin als „Erhebungen704 " bezeichnet) können ermöglichen, daß elektrische Signale, einschließlich Versorgungs-, Erdungs-, Takt- und/oder Eingabe-/Ausgabe(I/O)-Signalen, zwischen dem Gehäuse702 und dem Plättchen728 übermittelt werden. Das Plättchen728 kann einen oder mehrere Durchgänge706 durch das Plättchen aufweisen, um Signale zwischen den Erhebungen704 und dem Plättchen730 zu übermitteln. Die Vorrichtung700 kann ferner eine Wärmesenke708 aufweisen, um die Abgabe der durch das Plättchen730 und/oder die Vorrichtung700 erzeugten Wärme zu ermöglichen. - Die Plättchen
728 und730 können mehrere Schichten umfassen. Zum Beispiel kann das Plättchen728 eine Bulk-Silizium(SI)-Schicht710 , eine aktive Si-Schicht712 und einen Metallstapel714 aufweisen. Das Plättchen730 kann einen Metallstapel720 , eine aktive Si-Schicht722 und eine Bulk-Si-Schicht724 aufweisen. Wie in2 dargestellt, können die Durchgänge726 mit den Plättchen728 bis730 durch die jeweiligen Metallstapel714 und720 verbunden sein. In einer Ausführungsform kann das Plättchen728 dünner als das Plättchen730 sein. Zum Beispiel kann das Plättchen728 eine Speichervorrichtung (wie eine wahlfreie Zugriffsspeichervorrichtung) aufweisen, und das Plättchen730 kann einen oder mehrere Prozessorkerne und/oder gemeinsam benutzte oder private Caches aufweisen. - Das Plättchen
730 weist einen oder mehrere Beispiele der PF-Logik732 auf. In einigen Ausführungsformen kann die PF-Logik732 zwei oder mehr Cachezeilen aus einem DRAM in dem Plättchen728 in einen SRAM in dem Plättchen730 übertragen. Die Übertragung kann durch Plättchen-zu-Plättchen-Durchgänge726 stattfinden. In einigen Ausführungsformen befähigt die relativ hohe Bandbreite der Plättchen-zu-Plättchen-Durchgänge726 die PF-Logik732 zur Übertragung von Blöcken einer Vielzahl von Cachezeilen ohne eine bedeutende Erhöhung der Latenz. - Die Vorrichtung
700 kann zusätzliche Plättchen, zum Beispiel zum Integrieren anderer Komponenten in die gleiche Vorrichtung oder das gleiche System aufweisen. In solch einer Ausführungsform können die Plättchen-zu-Plättchen-Durchgänge und/oder Durchgänge durch das Plättchen benutzt werden, um Signale zwischen den verschiedenen Plättchen (zum Beispiel wie in bezug auf die Durchgänge726 und706 erläutert) zu übermitteln. - Elemente von Ausführungsformen der vorliegenden Erfindung können auch als ein maschinenlesbares Medium zum Speichern der von einer Maschine ausführbaren Befehle bereitgestellt werden. Das maschinenlesbare Medium kann umfassen, ist jedoch nicht beschränkt auf Flashspeicher, optische Platten, Kompaktplatten-Nur-Lese-Speicher (CD-ROM), digitale vielseitige Videoplatten(DVD)-ROM, wahlfreie Zugriffsspeicher (RAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM), Magnetkarten oder optische Karten, Übertragungsmedien oder andere Arten von maschinenlesbaren Medien, die zum Speichern von elektronischen Befehlen geeignet sind. Zum Beispiel können Ausführungsformen der Erfindung als ein Computerprogramm heruntergeladen werden, das von einem Ferncomputer (zum Beispiel einem Server) auf einen anfragenden Computer (zum Beispiel einen Client) über eine Kommunikationsverbindung (zum Beispiel ein Modem oder eine Netzverbindung) mittels Datensignalen übertragen werden kann, die in einer Trägerwelle oder einem anderen Übertragungsmedium verkörpert sind.
- Man wird zu verstehen wissen, daß jeglicher Bezug in der Spezifikation auf "eine bestimmte Ausführungsform" oder „eine Ausführungsform" bedeutet, daß ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, das oder die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform (der vorliegenden Erfindung) enthalten ist. Folglich wird betont und sollte gewürdigt werden, daß sich zwei oder mehr Bezugnahmen auf „eine (unbestimmte) Ausführungsform" oder „eine Ausführungsform" oder „eine alternative Ausführungsform" in verschiedenen Teilen dieser Spezifikation nicht unbedingt auf die gleiche Ausführungsform beziehen. Darüber hinaus können die bestimmten Merkmale, Strukturen oder Ausprägungen wie geeignet in einer oder mehreren Ausführungsformen der Erfindung kombiniert werden.
- In ähnlicher Weise sollte gewürdigt werden, daß in der vorstehenden Beschreibung von Ausführungsformen der Erfindung verschiedene Merkmale mitunter in einer einzigen Ausführungsform, Figur oder Beschreibung zusammengefaßt worden sind, um die Offenbarung kurz zu fassen und zu einem besseren Verständnis eines oder mehrerer der verschiedenen erfinderischen Aspekte beizutragen. Dieses Offenbarungsverfahren soll jedoch nicht dahingehend interpretiert werden, daß der beanspruchte Gegenstand mehr Merkmale erfordert als diejenigen, die ausdrücklich in jedem Anspruch genannt sind. Vielmehr liegen erfinderische Aspekte, wie die nachfolgenden Ansprüche reflektieren, in weniger als allen Merkmalen einer einzigen vorstehend offenbarten Ausführungsform. Folglich werden die Ansprüche, die der ausführlichen Beschreibung folgen, hiermit ausdrücklich in diese ausführliche Beschreibung aufgenommen.
Claims (27)
- Integrierte Schaltung, die umfaßt: eine Kernlogik zum Bereitstellen eines Vorladehinweises; und eine Vorladelogik, die an die Kernlogik gekoppelt ist, wobei die Vorladelogik auf der Grundlage mindestens teilweise des Vorladehinweises zwei oder mehr Cachezeilen von einer offenen Seite in einem dynamischen wahlfreien Zugriffsspeicher (DRAM) an einen statischen wahlfreien Zugriffsspeicher (SRAM) überträgt.
- Integrierte Schaltung nach Anspruch 1, wobei die zwei oder mehr Cachezeilen eine Speicherseite umfassen.
- Integrierte Schaltung nach Anspruch 1, wobei die Vorladelogik die zwei oder mehr Cachezeilen durch eine Schnittstelle von hoher Dichte übertragen soll.
- Integrierte Schaltung nach Anspruch 3, wobei die Schnittstelle von hoher Dichte ein Die-zu-Die-Durchgang ist.
- Integrierte Schaltung nach Anspruch 3, wobei die Schnittstelle von hoher Dichte ein Durchgang durch Silizium ist.
- Integrierte Schaltung nach Anspruch 1, wobei der DRAM einen Großspeicher umfaßt.
- Integrierte Schaltung nach Anspruch 1, wobei der DRAM eine Cachestufe bereitstellt und der SRAM eine nächsthöhere Cachestufe bereitstellt.
- Integrierte Schaltung nach Anspruch 7, wobei die Cachestufe ein L3-Cache und die nächsthöhere Cachestufe ein L2-Cache ist.
- Integrierte Schaltung nach Anspruch 1, wobei der Vorladehinweis einen Vertrauensgrad angibt, der mit der Übertragung der zwei oder mehr Cachezeilen verbunden ist.
- Integrierte Schaltung nach Anspruch 9, die ferner umfaßt: eine Drossellogik, wobei die Drossellogik die Übertragung der zwei oder mehr Cachezeilen mindestens teilweise auf der Grundlage eines Verbindungsnutzungsgrads und des Vorladehinweises drosseln kann.
- Integrierte Schaltung nach Anspruch 8, wobei die Kernlogik einen von mehreren Prozessorkernen umfaßt.
- Integrierte Schaltung nach Anspruch 8, wobei die Kernlogik einen Grafikkern umfaßt.
- Verfahren, das umfaßt: Empfangen eines Vorladehinweises, der mit einem Ladebefehl in Verbindung steht; und Übertragen von zwei oder mehr Cachezeilen von einer offenen Seite in einem dynamischen wahlfreien Zugriffsspeicher (DRAM) an einen statischen wahlfreien Zugriffsspeicher (SRAM) mindestens teilweise auf der Grundlage des Vorladehinweises.
- Verfahren nach Anspruch 13, wobei der Vorladehinweis einen Vertrauensgrad angibt, der mit der Übertragung der zwei oder mehr Cachezeilen verbunden ist.
- Verfahren nach Anspruch 14, wobei der Vertrauensgrad einer von drei oder mehr Werten ist.
- Verfahren nach Anspruch 15, wobei die drei oder mehr Werte hoch, mittel und niedrig umfassen.
- Verfahren nach Anspruch 13, das ferner umfaßt: Drosseln einer Übertragung der zwei oder mehr Cachezeilen mindestens teilweise auf der Grundlage eines Verbindungsnutzungsgrades und des Vorladehinweises.
- Verfahren nach Anspruch 13, wobei das Übertragen der zwei oder mehr Cachezeilen von der offenen Seite in dem DRAM folgendes umfaßt: Übertragen einer Cacheseite von der offenen Seite in dem DRAM.
- Verfahren nach Anspruch 13, wobei der DRAM einen Großspeicher umfaßt.
- Verfahren nach Anspruch 13, wobei der DRAM eine Cachestufe bereitstellt.
- System, das umfaßt: ein erstes Die, das einen dynamischen wahlfreien Zugriffsspeicher (DRAM) umfaßt; ein zweites Die, das eine Kernlogik umfaßt, um einen Vorladehinweis bereitzustellen, und eine Vorladelogik, die an die Kernlogik gekoppelt ist, wobei die Vorladelogik mindestens teilweise auf der Grundlage des Vorladehinweises zwei oder mehr Cachezeilen von einer offenen Seite in dem DRAM an einen statischen wahlfreien Zugriffsspeicher (SRAM) überträgt; und einen Interconnect, der zwischen dem ersten Die und dem zweiten Die angeschlossen ist.
- System nach Anspruch 21, wobei die zwei oder mehr Cachezeilen eine Speicherseite umfassen.
- System nach Anspruch 21, wobei der Interconnect ein Die-zu-Die-Durchgang ist.
- System nach Anspruch 21, wobei der DRAM eine Cachestufe bereitstellt und der SRAM eine nächsthöhere Cachestufe bereitstellt.
- System nach Anspruch 21, wobei der Vorladehinweis einen Vertrauensgrad angibt, der mit der Übertragung der zwei oder mehr Cachezeilen verbunden ist.
- System nach Anspruch 21, wobei die Kernlogik einen von mehreren Verarbeitungskernen umfaßt.
- Integrierte Schaltung nach Anspruch 21, wobei die Kernlogik einen Grafikkern umfaßt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/644,358 US8032711B2 (en) | 2006-12-22 | 2006-12-22 | Prefetching from dynamic random access memory to a static random access memory |
US11/644,358 | 2006-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102007059784A1 true DE102007059784A1 (de) | 2008-07-17 |
Family
ID=39048406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102007059784A Ceased DE102007059784A1 (de) | 2006-12-22 | 2007-12-12 | Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher in einen statischen wahlfreien Zugriffsspeicher |
Country Status (10)
Country | Link |
---|---|
US (1) | US8032711B2 (de) |
JP (1) | JP4658112B2 (de) |
KR (1) | KR101025398B1 (de) |
CN (1) | CN101241475B (de) |
DE (1) | DE102007059784A1 (de) |
FR (1) | FR2910653B1 (de) |
GB (1) | GB2445262B (de) |
HK (1) | HK1121257A1 (de) |
SG (1) | SG144054A1 (de) |
TW (1) | TWI379312B (de) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7692946B2 (en) | 2007-06-29 | 2010-04-06 | Intel Corporation | Memory array on more than one die |
KR101462604B1 (ko) * | 2008-06-23 | 2014-11-20 | 삼성전자주식회사 | 반도체 장치 및 멀티-칩 패키지 |
US20100140750A1 (en) * | 2008-12-10 | 2010-06-10 | Qualcomm Incorporated | Parallel Plane Memory and Processor Coupling in a 3-D Micro-Architectural System |
US20100200957A1 (en) * | 2009-02-06 | 2010-08-12 | Qualcomm Incorporated | Scribe-Line Through Silicon Vias |
US8364901B2 (en) * | 2009-02-13 | 2013-01-29 | Micron Technology, Inc. | Memory prefetch systems and methods |
US8234450B2 (en) * | 2009-07-10 | 2012-07-31 | Via Technologies, Inc. | Efficient data prefetching in the presence of load hits |
US8335892B1 (en) * | 2009-09-28 | 2012-12-18 | Nvidia Corporation | Cache arbitration between multiple clients |
US8443151B2 (en) * | 2009-11-09 | 2013-05-14 | Intel Corporation | Prefetch optimization in shared resource multi-core systems |
CN101777027B (zh) * | 2010-01-21 | 2012-06-06 | 龙芯中科技术有限公司 | 基于动静态混合调度策略的访存操作管理装置及其方法 |
US9092358B2 (en) * | 2011-03-03 | 2015-07-28 | Qualcomm Incorporated | Memory management unit with pre-filling capability |
WO2012127628A1 (ja) * | 2011-03-22 | 2012-09-27 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
EP2722763A4 (de) * | 2011-06-17 | 2014-12-31 | Fujitsu Ltd | Arithmetische verarbeitungseinheit, informationsverarbeitungsvorrichtung und steuerung einer arithmetischen verarbeitungseinheit |
US8913443B2 (en) | 2011-09-19 | 2014-12-16 | Conversant Intellectual Property Management Inc. | Voltage regulation for 3D packages and method of manufacturing same |
US9431064B2 (en) | 2012-11-02 | 2016-08-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory circuit and cache circuit configuration |
US9053039B2 (en) * | 2012-12-21 | 2015-06-09 | Advanced Micro Devices, Inc. | Installation cache |
KR20150115752A (ko) | 2013-01-31 | 2015-10-14 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 적응성 입도 로우 버퍼 캐시 |
US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
US9442775B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
US9442853B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
CN104811495B (zh) * | 2015-04-27 | 2018-06-08 | 北京交通大学 | 一种用于智慧协同网络的网络组件内容存储方法及模块 |
US9971694B1 (en) * | 2015-06-24 | 2018-05-15 | Apple Inc. | Prefetch circuit for a processor with pointer optimization |
US9904624B1 (en) | 2016-04-07 | 2018-02-27 | Apple Inc. | Prefetch throttling in a multi-core system |
US10180905B1 (en) | 2016-04-07 | 2019-01-15 | Apple Inc. | Unified prefetch circuit for multi-level caches |
US10600780B2 (en) | 2016-10-07 | 2020-03-24 | Xcelsis Corporation | 3D chip sharing data bus circuit |
US10672744B2 (en) | 2016-10-07 | 2020-06-02 | Xcelsis Corporation | 3D compute circuit with high density Z-axis interconnects |
US10672745B2 (en) | 2016-10-07 | 2020-06-02 | Xcelsis Corporation | 3D processor |
US11176450B2 (en) | 2017-08-03 | 2021-11-16 | Xcelsis Corporation | Three dimensional circuit implementing machine trained network |
US10580757B2 (en) | 2016-10-07 | 2020-03-03 | Xcelsis Corporation | Face-to-face mounted IC dies with orthogonal top interconnect layers |
US10580735B2 (en) | 2016-10-07 | 2020-03-03 | Xcelsis Corporation | Stacked IC structure with system level wiring on multiple sides of the IC die |
US10600735B2 (en) | 2016-10-07 | 2020-03-24 | Xcelsis Corporation | 3D chip sharing data bus |
US10586786B2 (en) | 2016-10-07 | 2020-03-10 | Xcelsis Corporation | 3D chip sharing clock interconnect layer |
US10600691B2 (en) | 2016-10-07 | 2020-03-24 | Xcelsis Corporation | 3D chip sharing power interconnect layer |
US10522352B2 (en) | 2016-10-07 | 2019-12-31 | Xcelsis Corporation | Direct-bonded native interconnects and active base die |
US10593667B2 (en) | 2016-10-07 | 2020-03-17 | Xcelsis Corporation | 3D chip with shielded clock lines |
US10672743B2 (en) | 2016-10-07 | 2020-06-02 | Xcelsis Corporation | 3D Compute circuit with high density z-axis interconnects |
US10672663B2 (en) | 2016-10-07 | 2020-06-02 | Xcelsis Corporation | 3D chip sharing power circuit |
US10331567B1 (en) | 2017-02-17 | 2019-06-25 | Apple Inc. | Prefetch circuit with global quality factor to reduce aggressiveness in low power modes |
WO2019089816A2 (en) | 2017-10-31 | 2019-05-09 | Micron Technology, Inc. | System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network |
KR102353859B1 (ko) | 2017-11-01 | 2022-01-19 | 삼성전자주식회사 | 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈 |
US11294810B2 (en) * | 2017-12-12 | 2022-04-05 | Advanced Micro Devices, Inc. | Memory request throttling to constrain memory bandwidth utilization |
US10445241B2 (en) * | 2018-03-06 | 2019-10-15 | Arm Limited | Prefetching using offset data to access a pointer within a current data element for use in prefetching a subsequent data element |
US11513838B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread state monitoring in a system having a multi-threaded, self-scheduling processor |
US11132233B2 (en) | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
US11513840B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor |
US11126587B2 (en) | 2018-05-07 | 2021-09-21 | Micron Technology, Inc. | Event messaging in a system having a self-scheduling processor and a hybrid threading fabric |
US11074078B2 (en) * | 2018-05-07 | 2021-07-27 | Micron Technology, Inc. | Adjustment of load access size by a multi-threaded, self-scheduling processor to manage network congestion |
US11119782B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | Thread commencement using a work descriptor packet in a self-scheduling processor |
US11513839B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Memory request size management in a multi-threaded, self-scheduling processor |
US11157286B2 (en) | 2018-05-07 | 2021-10-26 | Micron Technology, Inc. | Non-cached loads and stores in a system having a multi-threaded, self-scheduling processor |
US11119972B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | Multi-threaded, self-scheduling processor |
US11513837B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread commencement and completion using work descriptor packets in a system having a self-scheduling processor and a hybrid threading fabric |
US11068305B2 (en) | 2018-05-07 | 2021-07-20 | Micron Technology, Inc. | System call management in a user-mode, multi-threaded, self-scheduling processor |
JP7261037B2 (ja) * | 2019-02-21 | 2023-04-19 | 株式会社日立製作所 | データ処理装置、ストレージ装置およびプリフェッチ方法 |
CN112614831B (zh) | 2019-04-15 | 2023-08-08 | 长江存储科技有限责任公司 | 具有处理器和异构存储器的一体化半导体器件及其形成方法 |
CN110731012B (zh) | 2019-04-15 | 2021-01-29 | 长江存储科技有限责任公司 | 具有处理器和异构存储器的一体化半导体器件及其形成方法 |
KR20240045345A (ko) | 2019-04-15 | 2024-04-05 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 프로세서 및 동적 랜덤 액세스 메모리를 갖는 본디드 반도체 장치 및 이를 형성하는 방법 |
EP3891784A4 (de) * | 2019-04-15 | 2022-08-17 | Yangtze Memory Technologies Co., Ltd. | Integration von dreidimensionalen nand-speichervorrichtungen mit mehreren funktionalen chips |
CN110720143B (zh) | 2019-04-30 | 2021-01-29 | 长江存储科技有限责任公司 | 具有处理器和nand闪存的键合半导体器件及其形成方法 |
US11599299B2 (en) | 2019-11-19 | 2023-03-07 | Invensas Llc | 3D memory circuit |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02287828A (ja) * | 1989-04-28 | 1990-11-27 | Fujitsu Ltd | プリフェッチ制御方式 |
US5659713A (en) | 1992-04-24 | 1997-08-19 | Digital Equipment Corporation | Memory stream buffer with variable-size prefetch depending on memory interleaving configuration |
JPH06150031A (ja) * | 1992-10-30 | 1994-05-31 | Nec Corp | Cpuモジュール |
JP2851777B2 (ja) * | 1992-11-13 | 1999-01-27 | 松下電器産業株式会社 | バス制御方法及び情報処理装置 |
JPH06274410A (ja) * | 1993-03-23 | 1994-09-30 | Toshiba Corp | 表示制御システム |
JP3174211B2 (ja) * | 1994-01-25 | 2001-06-11 | 富士通株式会社 | バッファストレイジのムーブイン制御方法 |
US5778436A (en) | 1995-03-06 | 1998-07-07 | Duke University | Predictive caching system and method based on memory access which previously followed a cache miss |
JPH09128325A (ja) * | 1995-11-06 | 1997-05-16 | Mitsubishi Electric Corp | 階層バス制御方式及びバスブリッジ |
JP3519199B2 (ja) * | 1996-02-06 | 2004-04-12 | 株式会社ソニー・コンピュータエンタテインメント | 画像生成装置 |
JP3610661B2 (ja) * | 1996-02-21 | 2005-01-19 | 株式会社日立製作所 | 三次元積層モジュール |
JPH10124383A (ja) * | 1996-10-22 | 1998-05-15 | Nec Corp | メモリアクセス制御方式 |
US6055622A (en) * | 1997-02-03 | 2000-04-25 | Intel Corporation | Global stride prefetching apparatus and method for a high-performance processor |
US6317810B1 (en) * | 1997-06-25 | 2001-11-13 | Sun Microsystems, Inc. | Microprocessor having a prefetch cache |
JP3092557B2 (ja) * | 1997-09-16 | 2000-09-25 | 日本電気株式会社 | 半導体記憶装置 |
US6061073A (en) * | 1997-11-12 | 2000-05-09 | Cirrus Logic, Inc. | Tracking of graphics polygon data from different clock domains in a graphics processor |
NO308149B1 (no) * | 1998-06-02 | 2000-07-31 | Thin Film Electronics Asa | Skalerbar, integrert databehandlingsinnretning |
JP3071752B2 (ja) | 1998-03-24 | 2000-07-31 | 三菱電機株式会社 | ブリッジ方法、バスブリッジ及びマルチプロセッサシステム |
US6446167B1 (en) * | 1999-11-08 | 2002-09-03 | International Business Machines Corporation | Cache prefetching of L2 and L3 |
US6654837B1 (en) * | 1999-12-28 | 2003-11-25 | Intel Corporation | Dynamic priority external transaction system |
JP2002064145A (ja) * | 2000-06-09 | 2002-02-28 | Fujitsu Ltd | 冗長素子を備える集積回路チップ、マルチプロセッサおよびその製法 |
US6820173B1 (en) | 2001-02-23 | 2004-11-16 | Nvidia Corporation | Data prefetcher with predictor capabilities |
US6928645B2 (en) | 2001-03-30 | 2005-08-09 | Intel Corporation | Software-based speculative pre-computation and multithreading |
US20020199179A1 (en) | 2001-06-21 | 2002-12-26 | Lavery Daniel M. | Method and apparatus for compiler-generated triggering of auxiliary codes |
US6810466B2 (en) * | 2001-10-23 | 2004-10-26 | Ip-First, Llc | Microprocessor and method for performing selective prefetch based on bus activity level |
US7260704B2 (en) * | 2001-11-30 | 2007-08-21 | Intel Corporation | Method and apparatus for reinforcing a prefetch chain |
US6690604B2 (en) | 2001-12-18 | 2004-02-10 | Intel Corporation | Register files and caches with digital sub-threshold leakage current calibration |
US7234040B2 (en) * | 2002-01-24 | 2007-06-19 | University Of Washington | Program-directed cache prefetching for media processors |
US6795899B2 (en) | 2002-03-22 | 2004-09-21 | Intel Corporation | Memory system with burst length shorter than prefetch length |
US7133972B2 (en) | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7162588B2 (en) * | 2002-08-23 | 2007-01-09 | Koninklijke Philips Electronics N.V. | Processor prefetch to match memory bus protocol characteristics |
KR100786603B1 (ko) | 2002-11-28 | 2007-12-21 | 가부시끼가이샤 르네사스 테크놀로지 | 메모리 모듈, 메모리시스템 및 정보기기 |
US6983356B2 (en) | 2002-12-19 | 2006-01-03 | Intel Corporation | High performance memory device-state aware chipset prefetcher |
AU2002368524A1 (en) * | 2002-12-20 | 2004-07-22 | International Business Machines Corporation | Three-dimensional device fabrication method |
KR100520219B1 (ko) | 2003-01-03 | 2005-10-11 | 삼성전자주식회사 | 고주파수 동작에 적합한 메모리 모듈장치 |
WO2004102403A2 (en) * | 2003-05-13 | 2004-11-25 | Advanced Micro Devices, Inc. | A system including a host connected to a plurality of memory modules via a serial memory interconnect |
US7177985B1 (en) * | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7228387B2 (en) * | 2003-06-30 | 2007-06-05 | Intel Corporation | Apparatus and method for an adaptive multiple line prefetcher |
US7487296B1 (en) * | 2004-02-19 | 2009-02-03 | Sun Microsystems, Inc. | Multi-stride prefetcher with a recurring prefetch table |
US7213082B2 (en) * | 2004-03-29 | 2007-05-01 | Micron Technology, Inc. | Memory hub and method for providing memory sequencing hints |
KR100899462B1 (ko) | 2004-07-21 | 2009-05-27 | 비치 언리미티드 엘엘씨 | 블록 맵 캐싱 및 vfs 적층 가능 파일 시스템 모듈들에기초한 분산 저장 아키텍처 |
JP4504134B2 (ja) * | 2004-08-16 | 2010-07-14 | 富士通株式会社 | システム制御装置、投機フェッチ方法および情報処理装置 |
US7206902B2 (en) * | 2004-08-17 | 2007-04-17 | Nvidia Corporation | System, apparatus and method for predicting accesses to a memory |
US20060112226A1 (en) | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
US20070005902A1 (en) | 2004-12-07 | 2007-01-04 | Ocz Technology Group, Inc. | Integrated sram cache for a memory module and method therefor |
US20060179236A1 (en) | 2005-01-13 | 2006-08-10 | Hazim Shafi | System and method to improve hardware pre-fetching using translation hints |
US7099215B1 (en) | 2005-02-11 | 2006-08-29 | North Carolina State University | Systems, methods and devices for providing variable-latency write operations in memory devices |
US7506105B2 (en) * | 2005-05-02 | 2009-03-17 | Freescale Semiconductor, Inc. | Prefetching using hashed program counter |
US7533242B1 (en) * | 2005-10-31 | 2009-05-12 | Sun Microsystems, Inc. | Prefetch hardware efficiency via prefetch hint instructions |
US7707359B2 (en) * | 2005-12-09 | 2010-04-27 | Oracle America, Inc. | Method and apparatus for selectively prefetching based on resource availability |
US7616470B2 (en) * | 2006-06-16 | 2009-11-10 | International Business Machines Corporation | Method for achieving very high bandwidth between the levels of a cache hierarchy in 3-dimensional structures, and a 3-dimensional structure resulting therefrom |
US20080098176A1 (en) * | 2006-10-18 | 2008-04-24 | Krishna M V V Anil | Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching |
-
2006
- 2006-12-22 US US11/644,358 patent/US8032711B2/en not_active Expired - Fee Related
-
2007
- 2007-12-10 SG SG200718505-1A patent/SG144054A1/en unknown
- 2007-12-12 DE DE102007059784A patent/DE102007059784A1/de not_active Ceased
- 2007-12-13 TW TW096147645A patent/TWI379312B/zh not_active IP Right Cessation
- 2007-12-19 GB GB0724812A patent/GB2445262B/en not_active Expired - Fee Related
- 2007-12-20 JP JP2007329083A patent/JP4658112B2/ja not_active Expired - Fee Related
- 2007-12-20 FR FR0760146A patent/FR2910653B1/fr not_active Expired - Fee Related
- 2007-12-21 CN CN2007103007962A patent/CN101241475B/zh not_active Expired - Fee Related
- 2007-12-21 KR KR1020070135086A patent/KR101025398B1/ko not_active IP Right Cessation
-
2009
- 2009-01-20 HK HK09100562.9A patent/HK1121257A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
FR2910653A1 (fr) | 2008-06-27 |
JP2008159057A (ja) | 2008-07-10 |
KR101025398B1 (ko) | 2011-03-28 |
GB2445262A (en) | 2008-07-02 |
TW200845035A (en) | 2008-11-16 |
SG144054A1 (en) | 2008-07-29 |
CN101241475A (zh) | 2008-08-13 |
TWI379312B (en) | 2012-12-11 |
US20080155196A1 (en) | 2008-06-26 |
FR2910653B1 (fr) | 2014-02-21 |
GB2445262B (en) | 2009-09-09 |
HK1121257A1 (en) | 2009-04-17 |
KR20080059077A (ko) | 2008-06-26 |
US8032711B2 (en) | 2011-10-04 |
JP4658112B2 (ja) | 2011-03-23 |
GB0724812D0 (en) | 2008-01-30 |
CN101241475B (zh) | 2011-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102007059784A1 (de) | Vorladen aus einem dynamischen wahlfreien Zugriffsspeicher in einen statischen wahlfreien Zugriffsspeicher | |
DE112010004735B4 (de) | Auf einem Computer ausgeführtes Verfahren für das Verarbeiten der Ressourcen-Verwaltung | |
DE102011076895B4 (de) | Cachekohärenzprotokoll für persistente Speicher | |
DE102011076894B9 (de) | Persistenter Speicher für einen Hauptspeicher eines Prozessors | |
DE102020118307A1 (de) | Proaktiver daten-vorabruf mit angewandter quality-of-service | |
DE102019122363A1 (de) | Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte) | |
DE102013016609A1 (de) | Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität | |
DE102022107621A1 (de) | Resourcenauswahl, die zum teil auf der arbeitslast basiert | |
DE102019130450A1 (de) | Bypass-Speicherklasse Lese Cache auf der Grundlage eines Schwellwertes der Warteschlange | |
DE112017001471T5 (de) | Mehrebenen-speichermanagement | |
DE112008001679T5 (de) | Cache-Speicher mit konfigurierbarer Assoziativität | |
DE102020103570A1 (de) | Host-definierte bandbreitenzuweisung für ssd-aufgaben | |
DE102017106713A1 (de) | Rechensystem, nichtflüchtiges Speichermodul und Verfahren zum Betreiben einer Speichervorrichtung | |
DE102019120573A1 (de) | Technologien zur rechnerischen speicherung über ablade-kernel-erweiterungen | |
DE102019102884A1 (de) | Techniken zum Vorabrufen von Daten zu einem ersten Speicherlevel einer hierarchischen Speicheranordnung | |
DE102020119400A1 (de) | Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung | |
DE102020117350A1 (de) | Speichersystem einschliesslich heterogener speicher, computersystem mit dem speichersystem und datenverwaltungsverfahren dafür | |
DE102022119777A1 (de) | VERFAHREN ZUM MINIMIEREN VON MEHRAUFWAND BEI DETEKTION VON HEIßEN/KALTEN SEITEN BEI LAUFENDEN ARBEITSLASTEN | |
DE102022129936A1 (de) | Techniken zur Erweiterung des Systemspeichers durch Nutzung des verfügbaren Gerätespeichers | |
DE102020132767A1 (de) | Verwaltung der Dienstgüte (QoS) eines Speichersystems | |
DE102022104024A1 (de) | Techniken zum konfigurieren von parallelprozessoren für verschiedene anwendungsbereiche | |
DE102022121773A1 (de) | In-memory-assoziativverarbeitungssystem | |
DE102018204931A1 (de) | Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts | |
DE102018106986A1 (de) | Verbesserungen am aktualitätsverfolgungsmechanismus für hochleistungs-caching basierend auf am weitesten zurückliegender verwendung | |
DE19959643A1 (de) | Steuersystem zum Zugreifen auf Daten über Block- und Seitengrenzen hinweg |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |
Effective date: 20130507 |