-
Diese Anmeldung beansprucht die Priorität der am 23. August 2011 beim Koreanischen Amt für Geistiges Eigentum eingereichten koreanischen Patentanmeldung
KR 10-2011-0084135 , deren Offenbarung in ihrer Gesamtheit durch In-Bezugnahme hierin mit aufgenommen wird.
-
HINTERGRUND
-
1. Gebiet
-
Vorrichtungen und Verfahren, die konsistent mit Ausführungsbeispielen sind, beziehen sich auf ein Multiport-Speicherelement sowie auf eine Halbleitervorrichtung und ein System mit demselben.
-
2. Beschreibung der verwandten Technik
-
Ein Multiprozessorsystem, das eine Mehrzahl von Prozessoren in einem System verwendet, wird in eine tragbare elektronische Vorrichtung (wie z. B. einen tragbaren Multimedia-Player (PMP), ein Mobiltelefon, ein Smartphone, ein Satellitennavigationssystem (GPS), eine Navigationsvorrichtung, eine digitale Kamera, eine digitale Videokamera, einen persönlichen digitalen Assistenten (PDA) und so weiter) installiert, um die tragbare elektronische Vorrichtung schneller und reibungsloser arbeiten oder laufen zu lassen. Um dem Verlangen der Benutzer nach Zusammenführung gerecht zu werden, kann zum Beispiel ein Mobiltelefon zusätzlich zu einem einfachen Telefonbetrieb einen Musik-, Spiel-, Kamera-, Zahlungs- oder Video-Betrieb aufweisen. Daher kann das Mobiltelefon sowohl einen Kommunikationsprozessor mit einem Kommunikations-Modulations/Demodulations-Betrieb als auch einen Medienprozessor mit einem anderen Anwendungsbetrieb als den Kommunikationsbetrieb verwenden.
-
Ein in einem Multiprozessor-System zum Speichern von Verarbeitungsdaten verwendeter Halbleiterspeicher kann in Bezug auf den Betrieb oder die Funktion variieren. Zum Beispiel kann ein Halbleiterspeicher eine Mehrzahl von Zugriffports aufweisen und gleichzeitig Daten durch die Zugriffsports einlesen und ausgeben. Eine Multiport-Halbleiterspeichervorrichtung verwandter Technologie, wie z. B. der OneDRAM, welcher eine eingetragene Marke von Samsung Electronics ist, ist ein Fusion-Speicherchip, der die Datenverarbeitungsgeschwindigkeit zwischen einem Kommunikationsprozessor und einem Medienprozessor innerhalb einer mobilen Vorrichtung signifikant erhöhen kann. Typischerweise werden zwei Speicher für zwei Prozessoren benötigt. Da jedoch der OneDRAM Daten zwischen einer Mehrzahl von Prozessoren durch einen einzelnen Chip leiten kann, ist eine Mehrzahl von Speichern nicht notwendig.
-
KURZDARSTELLUNG
-
Aspekte von einem oder mehreren Ausführungsbeispielen sehen ein Multiport-Speicherelement mit einer erhöhten Betriebsgeschwindigkeit und einer verbesserten Betriebsleistung.
-
Aspekte von einem oder mehreren Ausführungsbeispielen sehen außerdem eine Halbleitervorrichtung mit dem Multiport-Speicherelement vor.
-
Aspekte von einem oder mehreren Ausführungsbeispielen sehen außerdem ein Halbleitersystem mit der Halbleitervorrichtung vor.
-
Jedoch sind Aspekte von einem oder mehreren Ausführungsbeispielen nicht auf die hier aufgeführten beschränkt. Die obigen und weitere Aspekte werden für einen Durchschnittsfachmann anschaulich durch Bezugnahme auf die detaillierte Beschreibung von unten angegebenen Ausführungsbeispielen.
-
Gemäß einem Aspekt eines Ausführungsbeispiels ist ein Multiport-Speicherelement vorgesehen mit: einem ersten Port; einem zweiten Port, der von dem ersten Port verschieden ist; einem ersten Speicherbereich, auf den von einem mit dem ersten Port verbundenen ersten Prozessor zugegriffen werden kann; einem zweiten Speicherbereich, auf dem von einem mit dem zweiten Port verbundenen zweiten Prozessore zugegriffen werden kann; und einem gemeinsamen Speicherbereich, auf den von sowohl dem ersten Prozessor als auch von dem zweiten Prozessor zugegriffen werden kann und der eine Mehrzahl von Bänken enthält, wobei während der erste Prozessor auf eine erste Bank von der Mehrzahl von Bänken zugreift, der zweite Prozessor auf eine zweite Bank von der Mehrzahl von Bänken zugreift.
-
Gemäß einem Aspekt eines weiteren Ausführungsbeispiels ist eine Halbleitervorrichtung vorgesehen mit: einem oder mehreren nicht-flüchtigen Speicherelementen; einer Speicher-Steuereinheit, die einen Betrieb des einen oder der mehreren nicht-flüchtigen Speicherelemente steuert; und einem Multiport-Speicherelement mit einem ersten Port, einem von dem ersten Port verschiedenen zweiten Port, einem ersten Speicherbereich, auf den von der mit dem ersten Port verbundenen Speicher-Steuereinheit zugegriffen werden kann, einem zweiten Speicherbereich, auf den von einem mit dem zweiten Port verbundenen Prozessor zugegriffen werden kann, und einem gemeinsamen Speicherbereich, auf den sowohl von der Speicher-Steuereinheit als auch von dem Prozessor zugegriffen werden kann, wobei der gemeinsame Speicherbereich eine Mehrzahl von Bänken enthält, und wobei der Prozessor, während die Speicher-Steuereinheit auf eine erste Bank von der Mehrzahl von Bänken zugreift, auf eine zweite Bank von der Mehrzahl von Bänken zugreift.
-
Gemäß einem Aspekt eines weiteren Ausführungsbeispiels ist ein Halbleitersystem vorgesehen mit: einem oder mehreren nicht-flüchtigen Speicherelementen; einer Speicher-Steuereinheit, die einen Betrieb des einen oder der mehreren nicht-flüchtigen Speicherelemente steuert; einem einen Betrieb durchführenden Prozessor; einem Multiport-Speicherelement mit einem ersten Port, einem von dem ersten Port verschiedenen zweiten Port, einem ersten Speicherbereich, auf den von der mit dem ersten Port verbundenen Speicher-Steuereinheit zugegriffen werden kann und der Page-Mapping-Daten über das eine oder die mehreren nichtflüchtigen Speicherelemente speichert, einem zweiten Speicherbereich, auf den der mit dem zweiten Port verbundene Prozessor zugreifen kann und der als ein Systemhauptspeicherbereich verwendet wird, und einem gemeinsamen Speicherbereich, auf den sowohl die Speicher-Steuereinheit als auch der Prozessor zugreifen kann, wobei der gemeinsame Speicherbereich eine Mehrzahl von Bänken enthält und wobei der Prozessor, während die Speicher-Steuereinheit auf eine erste Bank von der Mehrzahl von Bänken zugreift, auf eine zweite Bank von der Mehrzahl von Bänken zugreift.
-
Gemäß einem Aspekt eines weiteren Ausführungsbeispiels ist ein Multiport-Speicherelement vorgesehen mit: einem ersten Port; einem von dem ersten Port verschiedenen zweiten Port; und einem gemeinsamen Speicherbereich, auf den sowohl ein mit dem ersten Port verbundener erster Prozessor als auch ein mit dem zweiten Port verbundener zweiter Prozessor zugreifen kann und der eine Mehrzahl von Bänken enthält, wobei von dem ersten Prozessor auf eine erste Bank von der Mehrzahl von Bänken zugegriffen werden kann, während gleichzeitig von dem zweiten Prozessor auf eine zweite Bank von der Mehrzahl von Bänken zugegriffen werden kann.
-
Gemäß einem Aspekt eines weiteren Ausführungsbeispiels ist ein Verfahren zum Betreiben eines Multiport-Speicherelementes mit einem gemeinsamen Speicherbereich vorgesehen, wobei das Verfahren aufweist: Verbinden eines ersten Prozessors mit einem ersten Port des Multiport-Speicherelementes und eines zweiten Prozessors mit einem von dem ersten Port verschiedenen zweiten Port des Multiport-Speicherelementes; und Zugreifen von dem ersten Prozessor auf eine erste Bank des gemeinsamen Speicherbereichs während gleichzeitig von einem zweiten Prozessor auf eine zweite Bank des gemeinsamen Speicherbereiches zugegriffen wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die obigen und weitere Aspekte und Merkmale werden anschaulich werden durch das Beschreiben von Ausführungsbeispielen im Detail mit Bezug auf die beigefügten Figuren, in denen:
-
1 ein Blockdiagramm eines Speichersystems gemäß einem Ausführungsbeispiel ist;
-
2 ein Blockdiagramm eines in 1 gezeigten gemeinsamen Speicherbereichs ist;
-
3 ein Diagramm ist, das ein Anwendungsbeispiel eines Halbleitersystems gemäß einem Ausführungsbeispiel darstellt;
-
4 und 5 ein Speichermodul darstellen, das die speicherverbundene Architektur (MLA = Memory Linked Architecture) aus 3 implementiert;
-
6 ein Diagramm ist, das ein weiteres Anwendungsbeispiel eines Halbleitersystems gemäß einem Ausführungsbeispiel darstellt;
-
7 und 8 ein Speichermodul darstellen, das eine MLA aus 6 implementiert;
-
9 und 10 stellen eine Stapelpackung dar, welche die MLA aus 6 implementiert.
-
DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
-
Ausführungsbeispiele werden nun im Folgenden genauer mit Bezug auf die begleitenden Figuren beschrieben werden. Ein Ausführungsbeispiel kann jedoch in verschiedenen Formen ausgebildet sein und sollte nicht als auf die im Folgenden ausgeführten Ausführungsbeispiele beschränkt ausgelegt werden. Vielmehr werden diese Ausführungsbeispiele bereitgestellt, so dass diese Offenbarung durchgehend und vollständig sein wird und den Umfang des erfinderischen Konzepts den Fachleuten vollumfänglich vermitteln wird. Die gleichen Bezugszeichen bezeichnen durchgehend durch die Beschreibung die gleichen Komponenten. In den beigefügten Figuren ist die Dicke von Schichten und Bereichen zum Zwecke der Klarheit übertrieben.
-
Die Verwendung der Begriffe „ein/einer/eines” und „der/die/das” sowie ähnlicher Bezugnahmen in dem Kontext des Beschreibens von Ausführungsbeispielen (insbesondere in dem Kontext der folgenden Ansprüche) sind derart auszulegen, dass sie sowohl den Singular als auch den Plural umfassen, es sei denn es ist hierin anders angegeben oder widerspricht klar dem Kontext. Die Begriffe „aufweisen”, „besitzen”, „mit” und „enthalten” sind als offene Begriffe auszulegen (d. h., dass sie „aufweisend, aber nicht beschränkt auf” bedeuten), es sei denn es ist anders angegeben.
-
Sofern nicht anders definiert besitzen alle technischen und wissenschaftlichen Begriffe, die hierin verwendet werden, die gleiche Bedeutung wie sie üblicherweise von einem Durchschnittsfachmann im Gebiet, auf den sich die Erfindung bezieht, verstanden wird. Es sei bemerkt, dass die Verwendung von irgendeinem und allen Beispielen oder beispielhaften Begriffen, die hierin verwendet werden, lediglich zum besseren veranschaulichen von Ausführungsbeispielen dienen sollen und nicht eine Beschränkung des Umfangs der Erfindung darstellen sollen, es sei denn es ist anders spezifiziert. Darüber hinaus sollen alle in allgemein verwendeten Wörterbüchern definierten Begriffe nicht übermäßig interpretiert werden, es sei denn es ist anders definiert.
-
1 ist ein Blockdiagramm eines Halbleitersystems gemäß eines Ausführungsbeispiels.
-
Bezug nehmend auf 1 enthält das Halbleitersystem ein Multiport-Speicherelement 300, eine Speicher-Steuereinheit 100, einen Prozessor 200 und eine Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n.
-
Die Speicher-Steuereinheit 100 kann einen Betrieb der Mehrzahl von Speicherelementen 410_1 bis 410_n steuern. Hierbei kann die Speicher-Steuereinheit 100 einen Prozessor (nicht dargestellt) (z. B. einen ersten Prozessor) enthalten, der für dessen Betrieb verwendet wird. Der Prozessor 200 (z. B. ein zweiter Prozessor) kann als ein Host-Prozessor des Halbleitersystems verwendet werden. Das Multiport-Speicherelement kann ein OneDRAM sein, aber ist nicht darauf beschränkt.
-
Die Speicher-Steuereinheit 100, das Multiport-Speicherelement 300 und die nichtflüchtigen Speicherelemente 410_1 bis 410_n bilden eine speicherverbundene Architektur (MLA = memory linked architecture) 500.
-
Grundsätzlich kann der Prozessor 200 als ein Host-Prozessor funktionieren und arbeiten. Insbesondere kann der Prozessor 200 Operationen durchführen, die zum Treiben eines Betriebssystems (OS) des Halbleitersystems verwendet werden.
-
Die Speicher-Steuereinheit 100 kann Daten (im folgenden als „Rohdaten” bezeichnet), die für einen Betrieb des Prozessors 200 verwendet werden, aus der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n lesen oder kann Daten (im folgenden auch als „Betriebsdaten” bezeichnet), die von dem Betrieb des Prozessors 200 resultieren, in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n schreiben. Jedoch ist es selbstverständlich, dass ein anderes Ausführungsbeispiel nicht darauf beschränkt ist. Zusätzliche Funktionen und Operationen können der Speicher-Steuereinheit 100 und dem Prozessor 200 hinzugefügt werden, wenn es notwendig oder gewünscht ist.
-
Die Speicher-Steuereinheit 100 ist mit dem Multiport-Speicherelement 300 über einen ersten Datenbus B10 verbunden und der Prozessor 200 ist mit dem Multiport-Speicherelement 300 über einen zweiten Datenbus B20 verbunden. Das bedeutet, dass die Speicher-Steuereinheit 100 und der Prozessor 200 das Multiport-Speicherelement 300 teilen. Daher braucht das Halbleitersystem gemäß einem Ausführungsbeispiel nicht zwei Speicherelemente für den Betrieb der Speicher-Steuereinheit 100 und des Prozessors 200 zu verwenden. Dies sichert geringe Systemimplementationskosten und eine kompakte Systemgröße.
-
Die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n sind mit der Speicher-Steuereinheit 100 über einen dritten Datenbus B30 verbunden. Hierbei sind die Bandbreiten (z. B. 10,8 GB/s) des ersten und zweiten Datenbusses B10 und B20 größer als eine Bandbreite (z. B. 3,2 GB/s) des dritten Datenbusses B30. Daher kann die große Menge an Rohdaten, die von der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n ausgelesen werden, dem Prozessor 200 ohne Engpass bereitgestellt werden, und kann die große Menge an Betriebsdaten, die dem Prozessor 200 bereitgestellt werden, in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n ohne Engpass geschrieben werden. Dies erhöht die Betriebsgeschwindigkeit des Halbleitersystems und verbessert die Betriebsleistungsfähigkeit des Halbleitersystems.
-
Die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n können Flash-Speicherelemente sein, aber sie sind nicht darauf beschränkt. Die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n können eine NOR- oder eine NAND-Struktur besitzen. Jedes der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n kann Daten speichern, die nicht gelöscht werden sollen, selbst wenn die Leistungsversorgung abgeschaltet wird, wie z. B. den Boot-Code, Programme, Kommunikationsdaten oder Daten zur Pflege einer Mobilvorrichtung.
-
Das Multiport-Speicherelement 300 arbeitet als ein Hauptspeicher, der für den Betrieb der Speicher-Steuereinheit 100 und des Prozessors 200 verwendet wird. Das Multiport-Speicherelement 300 besitzt einen ersten und einen zweiten Port P1 und P2 sowie eine Mehrzahl von Speicherbereichen 310 bis 330 zum Ermöglichen eines Multiport-Zugriffs.
-
Der erste Port P1 des Multiport-Speicherelementes 300 ist mit der Speicher-Steuereinheit 100 über den ersten Datenbus B10 verbunden, und der zweite Port P2 des Multiport-Speicherelementes 300 ist mit dem Prozessor 200 über den zweiten Datenbus B20 verbunden. Das bedeutet, dass die Speicher-Steuereinheit 100 und der Prozessor 200 auf die Mehrzahl von Speicherbereichen 310 bis 330 des Multiport-Speicherelementes 300 über zwei verschiedene Zugriffspfade zugreifen können.
-
Die Mehrzahl von Speicherbereichen 310 bis 330 können einen ersten Speicherbereich 310, auf den ausschließlich die Speicher-Steuereinheit 100 zugreift, einen zweiten Speicherbereich 320, auf den ausschließlich der Prozessor 200 zugreift, und einen gemeinsamen Speicherbereich 330 enthalten, auf den sowohl die Speicher-Steuereinheit 100 als auch der Prozessor 200 zugreift. Der erste Speicherbereich 310, der zweite Speicherbereich 320 und der gemeinsame Speicherbereich 320 können dynamische Direktzugriffsspeicher (DRAM)-Zellen enthalten.
-
In dem Halbleitersystem gemäß einem Ausführungsbeispiel können Page-Mapping-Daten in dem ersten Speicherbereich 310 gespeichert werden. Die Page-Mapping-Daten können verwendet werden, wenn die Speicher-Steuereinheit 100 Rohdaten aus der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n liest oder Betriebsdaten in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n schreibt. Das bedeutet, dass die Speicher-Steuereinheit 100 Rohdaten aus der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n liest oder Betriebsdaten in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n schreibt durch Bezugnahme auf die in den ersten Speicherbereich 310 gespeicherten Page-Mapping-Daten.
-
Der zweite Speicherbereich 320 kann verwendet werden als ein Hauptspeicherbereich des Halbleitersystems. Das bedeutet, dass der zweite Speicherbereich 320 sich auf Operationen des Prozessors 200 beziehende Daten speichern kann.
-
Der gemeinsame Speicherbereich 330 kann zwei oder mehr Bänke 330_1 und 330_2 enthalten. In 1 enthält der gemeinsame Speicherbereich 330 zwei Bänke 330_1 und 330_2. Jedoch ist es selbstverständlich, dass ein anderes Ausführungsbeispiel nicht darauf beschränkt ist. Das bedeutet, dass der gemeinsame Speicherbereich 330 drei, vier oder irgendeine Anzahl von Bänken enthalten kann, wie sie gemäß einem oder mehreren weiteren Ausführungsbeispielen gewünscht sind. Die Struktur des gemeinsamen Speicherbereichs 330 wird unten im Detail mit Bezug auf 2 beschrieben werden.
-
Während die Speicher-Steuereinheit 100 auf eine erste Bank (z. B. 300_1) von den Bänken 330_1 und 330_2 zugreift, kann der Prozessor 200 auf eine zweite Bank (z. B. 300_2) von den Bänken 330_1 und 330_2 zugreifen. Während zum Beispiel die Speicher-Steuereinheit 100 aus der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n ausgelesene Rohdaten in die erste Bank 330_1 schreibt, kann der Prozessor 200 Rohdaten, die bereits von der Speicher-Steuereinheit 100 geschrieben wurden, aus der zweiten Bank 330_2 lesen.
-
Das bedeutet, dass die Speicher-Steuereinheit 100 und der Prozessor 200 gleichzeitig auf den gemeinsamen Speicherbereich 330 zugreifen können. Dies kann eine Verzögerung bei der Durchführung einer Aufgabe verhindern, die auftreten kann, wenn die Speicher-Steuereinheit 100 mit dem Zugriff auf den gemeinsamen Speicherbereich 330 wartet, während der Prozessor 200 auf den gemeinsamen Speicherbereich 330 zugreift. Daher kann die Betriebsgeschwindigkeit des Halbleitersystems gemäß einem Ausführungsbeispiel erhöht sein.
-
Jedoch greifen die Speicher-Steuereinheit 100 und der Prozessor 200 nicht gleichzeitig auf eine Bank (z. B. 330_1) zu. Zum Beispiel kann der Prozessor 200 auf die erste Bank 330_1 zugreifen, nachdem die Speicher-Steuereinheit 100 auf die erste Bank 330_1 zugegriffen hat.
-
2 ist ein Blockdiagramm des in 1 gezeigten gemeinsamen Speicherbereichs 330.
-
Bezugnehmend auf 2 enthalten die ersten und zweiten Bänke 330_1 und 330_2 des gemeinsamen Speicherbereichs 330 ein Semaphor 356_1 bzw. 356_2, eine erste Mailbox 352_1 bzw. 352_2, eine zweite Mailbox 354_1 bzw. 354_2, einen ersten Puffer 357_1 bzw. 357_2 sowie einen zweiten Puffer 358_1 bzw. 358_2.
-
Information über die Berechtigung, auf den gemeinsamen Speicherbereich 330 zuzugreifen, ist in den Semaphoren 356_1 und 356_2 gespeichert. Nachrichten (wie z. B. Berechtigungsanfragen, Adressen, Datengrößen, Übertragungsdaten, welche eine Adresse eines gemeinsamen Speichers, der Daten speichert, anzeigt, sowie Befehle), die zwischen der Speicher-Steuereinheit 100 und dem Prozessor 200 ausgetauscht werden, werden in die ersten Mailboxen 352_1 und 352_2 sowie in die zweiten Mailboxen 354_1 und 354_2 geschrieben. Zum Beispiel werden Nachrichten, die von der Speicher-Steuereinheit 100 an den Prozessor 200 übertragen werden sollen, in die ersten Mailboxen 352_1 und 352_2 geschrieben. Zusätzlich werden Nachrichten, die von dem Prozessor 200 an die Speicher-Steuereinheit 100 übertragen werden sollen, in die zweiten Mailboxen 354_1 und 354_2 geschrieben. Beispielsweise kann in Semaphoren 365_1 und 365_2 zumindest ein Bit zugeordnet werden, und können jeder von den ersten Mailboxen 352_1 und 352_2 sowie den zweiten Mailboxen 354_1 und 354_2 vier Bytes zugeordnet werden.
-
Die ersten Puffer 357_1 und 357_2 und die zweiten Puffer 358_1 und 358_2 speichern Daten (z. B. Rohdaten oder Betriebsdaten), die zwischen dem Prozessor 200 und der Speicher-Steuereinheit 100 ausgetauscht werden.
-
Wenn eine Datenschnittstelle zwischen der Speicher-Steuereinheit 100 und dem Prozessor 200 durch das Multiport-Speicherelement 300 implementiert wird, können die Speicher-Steuereinheit 100 und der Prozessor 200 Nachrichten, die gegenseitig übertragen werden sollen, in die ersten und zweiten Mailboxen 352_1 und 352_2 bzw. 354_1 und 354_2 schreiben. Eine Empfängerseite, die eine von einer Senderseite geschriebene Nachricht liest, kann eine Operation als Antwort auf die Nachricht durchführen.
-
Insbesondere ein Fall, bei dem die Speicher-Steuereinheit 100 die Berechtigung zum Zugriff auf die erste Bank 330_1 des gemeinsamen Speicherbereichs 330 an den Prozessor 200 überträgt und bei dem der Prozessor 200 die Berechtigung zum Zugreifen auf die zweite Bank 330_2 des gemeinsamen Speicherbereichs 330 an die Speicher-Steuereinheit 100 überträgt, wird als ein Beispiel beschrieben werden.
-
Zunächst schreibt die Speicher-Steuereinheit 100 aus der Mehrzahl von nichtflüchtigen Speicherelementen 410_1 bis 410_n gelesene Rohdaten in die erste Bank 330_1 (z. B. in den ersten Puffer 357_1 und den zweiten Puffer 358_1). Bei dem vorliegenden Ausführungsbeispiel kann der Prozessor 200 Rohdaten von der zweiten Bank 330_2 (z. B. von dem ersten Puffer 357_2 und dem zweiten Puffer 358_2) auslesen, während die Speicher-Steuereinheit 100 die Rohdaten in die erste Bank 330_1 schreibt. Das bedeutet, dass die Speicher-Steuereinheit 100 Rohdaten in die erste Bank 330_1 zur der gleichen Zeit schreiben kann, zu der der Prozessor 200 Rohdaten von der zweiten Bank 330_2 ausliest.
-
Nach dem Schreiben der Rohdaten in die erste Bank 330_1 ändert die Speicher-Steuereinheit 100 Flag-Daten des Semaphor 356_1 und schreibt dann in die erste Mailbox 352_1 eine Nachricht, die die Übertragung der Berechtigung zum Zugriff auf die erste Bank 330_1 mitteilt. Dementsprechend wird die Berechtigung zum Zugriff auf die erste Bank 330_1 an den Prozessor 200 übertragen.
-
Nach dem Lesen der Rohdaten aus der zweiten Bank 330_2 ändert der Prozessor Flag-Daten des Semaphor 356_2 und schreibt dann in die zweite Mailbox 354_2 eine Nachricht, die die Übertragung der Berechtigung zum Zugriff auf die zweite Bank 330_2 mitteilt. Entsprechend wird die Berechtigung zum Zugriff auf die zweite Bank 330_2 an die Speicher-Steuereinheit übertragen.
-
Der Prozessor 200 liest die Nachricht, welche die Übertragung der Berechtigung zum Zugriff auf die erste Bank 330_1 mitteilt, aus der ersten Mailbox 352_1 und identifiziert, ob die Flag-Daten des Semaphor 356_1 geändert wurden. Dann schreibt der Prozessor 200 in die zweite Mailbox 3542 eine Antwort-Nachricht, welche den Empfang der Berechtigung zum Zugriff auf die erste Bank 330_1 mitteilt. Danach besitzt der Prozessor 200 die exklusive Berechtigung zum Zugriff auf die erste Bank 330_1.
-
Derweil liest die Speicher-Steuereinheit 100 die Nachricht, welche die Übertragung der Berechtigung zum Zugriff auf die zweite Bank 330_2 mitteilt, aus der zweiten Mailbox 354_2 und identifiziert, ob die Flag-Daten des Semaphor 356_2 geändert wurden. Dann schreibt die Speicher-Steuereinheit 100 in die erste Mailbox 352_2 eine Antwort Nachricht, welche den Empfang der Berechtigung zum Zugriff auf die zweite Bank 330_2 mitteilt. Danach besitzt die Speicher-Steuereinheit 100 die exklusive Berechtigung zum Zugriff auf die zweite Bank 330_2.
-
Anschließend liest der Prozessor 200 Rohdaten aus der ersten Bank 330_1, während die Speicher-Steuereinheit 100 Rohdaten in die zweite Bank 330_2 schreibt. Wenn diese Lese- und Schreib-Operationen enden, gehen die Speicher-Steuereinheit 100 und der Prozessor 200 den gleichen Berechtigungs-Übertragungsprozess durch.
-
Der Prozess des Speicherns von Operationsdaten die von einem Betrieb des Prozessors 200 resultieren, in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n wird in der zu dem obigen Berechtigungs-Übertragungsprozess umgekehrten Reihenfolge durchgeführt. Das bedeute, dass die Speicher-Steuereinheit 100, während der Prozessor 200 Betriebsdaten in die erste Bank 330_1 schreibt, Rohdaten aus der zweiten Bank 330_2 liest und die ausgelesenen Rohdaten in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n schreibt durch Bezugnahme auf die in dem ersten Speicherbereich 310 gespeicherten Page-Mapping-Daten.
-
Wenn diese Lese- und Schreib-Operationen enden, überträgt der Prozessor 200 die Berechtigung zum Zugriff auf die erste Bank 330_1 an die Speicher-Steuereinheit 100, und die Speicher-Steuereinheit 100 überträgt die Berechtigung zum Zugriff auf die zweite Bank 330_2 an den Prozessor 200. Dann schreibt der Prozessor 200 Betriebsdaten in die zweite Bank 330_2, und die Speicher-Steuereinheit 100 liest Rohdaten aus der ersten Bank 330_1 und schreibt die gelesenen Rohdaten in die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n durch Bezugnahme auf die in dem ersten Speicherbereich 310 gespeicherten Page-Mapping-Daten.
-
Durch die kontinuierliche Wiederholung dieser Lese- und Schreib-Operationen werden die in der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n gespeicherten Rohdaten schnell an den Prozessor 200 geliefert ohne durch die Bandbreite eingeschränkt zu sein, und von einer Operation des Prozessors 200 resultierende Operationsdaten werden schnell in der Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n gespeichert, ohne durch die Bandbreite eingeschränkt zu sein.
-
3 ist ein Diagramm, das ein Anwendungsbeispiel eines Halbleitersystems gemäß einem Ausführungsbeispiel darstellt. Die 4 und 5 stellen ein Speichermodul dar, das die MLA 500 aus 3 implementiert.
-
In dem Anwendungsbeispiel aus 3 wird das Halbleitersystem angewendet auf einen Personal Computer (PC) (genauer auf einen Notebook-PC), obwohl es selbstverständlich ist, dass ein anderes Ausführungsbeispiel nicht darauf beschränkt ist.
-
In dem vorliegenden Beispiel kann eine Ein/Ausgabe (I/O) der Speicher-Steuereinheit 100 bei ×64 arbeiten, und kann ein I/O des Prozessors 200 bei ×64 arbeiten. Daher können vier Multiport-Speicherelemente 300_1 bis 300_4 verwendet werden, wenn ihr I/O gleich ×16 ist, und können zwei Multiport-Speicherelemente verwendet werden, wenn ihr I/O gleich ×32 ist. Das bedeutet, dass die Anzahl von verwendeten Multiport-Speicherelementen gemäß dem I/O jedes Multiport-Speicherelementes variieren kann.
-
Die Speicher-Steuereinheit 100 kann acht Kanäle Ch0 bis Ch7 verwenden. In diesem Fall kann der I/O jedes der Kanäle Ch0 bis Ch7 gleich ×8 sein. Vier nichtflüchtige Speicherelemente 410_1 bis 410_n können mit jedem der Kanäle Ch0 bis Ch7 verbunden sein. Somit können insgesamt 32 nicht-flüchtige Speicherelemente 410_1 bis 410_n verwendet werden.
-
Eine Vorderseite eines Speichermoduls ist in 4 dargestellt, und eine Rückseite des Speichermoduls ist in 5 dargestellt.
-
Die Multiport-Speicherelemente 300_1 bis 300_4, die Speicher-Steuereinheit 100 und die Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n sind an Vorder- und Rückseiten einer Leiterplatte 510 des Speichermoduls angeordnet.
-
Zum Beispiel werden vier Multiport-Speicherelemente 300_1 bis 300_4 und 16 nicht-flüchtige Speicherelemente 410_1 bis 410_n auf der Vorderseite der Leiterplatte 510 des Speichermoduls angeordnet, und werden die Speicher-Steuereinheit 100 und die 16 nicht-flüchtigen Speicherelemente 410_1 bis 410_n auf der Rückseite der Leiterplatte 510 des Speichermoduls angeordnet.
-
6 ist ein Diagramm, das ein weiteres Anwendungsbeispiel eines Halbleitersystems gemäß einem Ausführungsbeispiel darstellt. 7 und 8 stellen ein Speichermodul dar, das die MLA 500 aus 6 implementiert. 9 und 10 stellen eine Stapelpackung dar, die die MLA 500 aus 6 implementiert.
-
In dem Anwendungsbeispiel aus 6 wird das Halbleitersystem in einem ARM-basierenden Server genutzt, obwohl es selbstverständlich ist, dass ein anderes Ausführungsbeispiel nicht darauf beschränkt ist.
-
Bei dem vorliegenden Beispiel kann der I/O der Speicher-Steuereinheit 100 bei ×32 arbeiten, und kann der I/O des Prozessors 200 bei ×64 arbeiten. Hierbei kann ein Multiport-Speicherelement mit einem ersten Port P1, dessen I/O gleich ×16 ist, und mit einem zweiten Port P2, dessen I/O gleich ×32 ist, verwendet werden. Zwei solche Multiport-Speicherelemente 300_1 und 300_2 können verwendet werden.
-
Die Speicher-Steuereinheit 100 kann vier Kanäle Ch0 bis Ch3 verwenden. In diesem Fall kann der I/O jedes der Kanäle Ch0 bis Ch3 gleich ×8 sein. Vier nichtflüchtige Speicherelemente 410_1 bis 410_n können mit jedem der Kanäle Ch0 bis Ch3 verbunden sein. Somit können insgesamt 16 nicht-flüchtige Speicherelemente 410_1 bis 410_n verwendet werden.
-
Eine Vorderseite eines Speichermoduls ist in 7 dargestellt, und eine Rückseite des Speichermoduls ist in 8 dargestellt.
-
Die Multiport-Speicherelemente 300_1 und 300_2, die Speicher-Steuereinheit 100 sowie eine Mehrzahl von nicht-flüchtigen Speicherelementen 410_1 bis 410_n können auf einer Rückseite einer Leiterplatte 510 des Speichermoduls angeordnet sein, und ein oder mehrere Fehlerkorrekturcodes (ECCs) 360 sowie ein oder mehrere flüchtige Speicherelemente 350 können auf einer Vorderseite der Leiterplatte 510 angeordnet sein. Zum Beispiel können ein ECC 360 und vier flüchtige Speicherelemente 350 auf der Vorderseite der Leiterplatte 510 des Speichermoduls angeordnet sein.
-
Bezugnehmend auf die 9 und 10 können die Speicher-Steuereinheit 100, zwei Multiport-Speicherelemente 300_1 und 300_2 sowie 16 nicht-flüchtige Speicherelemente 410_1 bis 410_n auf einer oberen Leiterplatte 550 angeordnet sein, und können vier flüchtige Speicherelemente 350 auf einer unteren Leiterplatte 560 angeordnet sein.
-
Beim Schlussfolgern aus der detaillierten Beschreibung werden die Fachleute anerkennen, dass viele Variationen und Abwandlungen von den oben beschriebenen Ausführungsbeispielen gemacht werden können ohne wesentlich von den Prinzipien der vorliegenden Erfindung abzuweichen. Daher werden die offenbarten Ausführungsbeispiele nur in einem allgemeinen und beschreibenden Sinn und nicht zum Zwecke der Beschränkung verwendet.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- kr 10-2011-0084135 [0001]