DE112019007374T5 - Direkter speicherzugriff mit jtag-zelladresse - Google Patents

Direkter speicherzugriff mit jtag-zelladresse Download PDF

Info

Publication number
DE112019007374T5
DE112019007374T5 DE112019007374.5T DE112019007374T DE112019007374T5 DE 112019007374 T5 DE112019007374 T5 DE 112019007374T5 DE 112019007374 T DE112019007374 T DE 112019007374T DE 112019007374 T5 DE112019007374 T5 DE 112019007374T5
Authority
DE
Germany
Prior art keywords
memory
cells
output
bits
flash memory
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
DE112019007374.5T
Other languages
English (en)
Inventor
Alberto Troia
Antonino Mondello
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.)
Lodestar Licensing Group LLC
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE112019007374T5 publication Critical patent/DE112019007374T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • 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/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/065Differential amplifiers of latching type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain

Abstract

Die vorliegende Offenbarung bezieht sich auf eine Flash-Speicherkomponente, die eine strukturell unabhängige Struktur aufweist und über eine Vielzahl von Verbindungspads mit einem System-on-Chip gekoppelt ist, umfassend:- ein Speicherarray mit mehreren unabhängig adressierbaren Unterarrays;- Leseverstärker, die mit entsprechenden Ausgängen der Unterarrays verbunden sind und mit einem Kommunikationskanal des System-on-Chip verbunden sind;- eine Abtastkette, die modifizierte JTAG-Zellen umfasst, die parallel zwischen den Ausgang der Leseverstärker und den Kommunikationskanal geschaltet sind, um die Durchführung von Leseoperationen in einem Direktspeicherzugriff zu ermöglichen.Ein Verfahren zum Abrufen von Daten aus der Speicherkomponente wird ebenfalls offenbart.

Description

  • Die vorliegende Offenbarung bezieht sich allgemein auf Speichervorrichtungen und insbesondere auf Vorrichtungen und Verfahren zur Verwaltung nichtflüchtiger Speicher. Insbesondere bezieht sich die vorliegende Offenbarung im Allgemeinen auf ein Verfahren zum Optimieren von Systemen mit direktem Speicherzugriff und insbesondere auf einen direkten Speicherzugriff unter Verwendung einer JTAG-Zellenadressierung.
  • STAND DER TECHNIK
  • Ein nichtflüchtiger Speicher kann persistente Daten bereitstellen, indem er gespeicherte Daten beibehält, wenn er nicht mit Strom versorgt wird, und kann unterschiedliche Topologien von Speicherkomponenten umfassen. Zum Beispiel können NAND-Flash-Speicher und NOR-Flash-Speicher als äquivalente Schaltungen in Bezug auf Zellenverbindungen und Lesestruktur betrachtet werden, selbst wenn ihre Leistungen unterschiedlich sind.
  • Eine Speicherschaltung mit einer NAND- oder NOR-Konfiguration kann unter Verwendung verschiedener Technologien realisiert werden, zum Beispiel: Floating Gate (FG), Charge-Trapping (CT), Phasenwechsel-Direktzugriffsspeicher (PCRAM), selbstselektierendes Chalkogenid- basierte Speicher, resistiver Direktzugriffsspeicher (RRAM), 3D-XPoint-Speicher (3DXP) und magnetoresistiver Direktzugriffsspeicher (MRAM).
  • Nichtflüchtige Flash-Speicher sind heute einer der grundlegenden Bausteine in modernen elektronischen Systemen, insbesondere für Echtzeitbetriebssysteme (RTOS), da sie Code, Firmware, Betriebssysteme, Anwendungen und andere Software speichern. Der Betrieb von nichtflüchtigen Flash-Speichern wird von einem internen Controller verwaltet, der eine eingebettete Firmware enthält, wobei ein solcher Controller die erforderlichen Schreib-/Lese-/Löschvorgänge durch Manipulieren der Spannungen und des Timings auf den Zugriffs- und Datenleitungen durchführt.
  • Die Leistungen von Flash-Speichern in Bezug auf Geschwindigkeit, Verbrauch, Veränderbarkeit, Nichtflüchtigkeit und die zunehmende Bedeutung der Rekonfigurierbarkeit von Systemen haben ihre Integration in System-on-Chip (SoC)-Geräte vorangetrieben. Es gibt jedoch mehrere nichtflüchtige Technologien, die in SoC verwendet werden, aber die Programmiermethoden erfordern mehr Platz und die Software ist im Vergleich zur Vergangenheit kompliziert, um neue Vorschriften zu erfüllen. Dieser Nachteil treibt die Suche nach mehr Speicherplatz mit Schwierigkeiten bei der Integration eines solchen Speicherplatzes in einen SoC voran.
  • Darüber hinaus ist es immer schwieriger, eingebetteten Speicher in System on Chips zu verwalten, wenn der Lithographieknoten unter 28 nm liegt.
  • Daher besteht ein Bedarf an der Bereitstellung einer neuen Schnittstellenarchitektur, die leicht in einen SoC integriert werden kann und die Leistung des nichtflüchtigen Speicherabschnitts verbessert, während sie eine niedrige Anfangslatenz beim ersten Zugriff aufweist und den Gesamtdurchsatz verbessert.
  • Die vorliegende Offenbarung schlägt eine Lösung zum Verbessern der Verwaltung einer Flash-Speicherkomponente vor, die einem SoC-Bauelement zuzuordnen ist, wodurch die Ertragszuverlässigkeit und Leistung des Speichers verbessert werden, während die Kosten und der Energieverbrauch reduziert werden.
  • Figurenliste
    • 1 zeigt eine schematische Ansicht einer Speicherkomponente mit einem Flash-Speicherabschnitt gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 2 ist eine schematische Ansicht des internen Layouts eines Speicherabschnitts von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 3 ist eine schematische Ansicht eines Speicherblocks, der durch eine Vielzahl von Zeilen eines Speicherarrays gemäß einer Ausführungsform der vorliegenden Offenbarung gebildet wird;
    • 4 zeigt eine schematische Ansicht des Inhalts eines Datenpuffers für die Speicherblockarchitektur der vorliegenden Offenbarung;
    • 5B ist eine schematische Ansicht der Verbindungen zwischen einer generischen Speicherzelle und einem entsprechenden Leseverstärker unter Einbeziehung der modifizierten JTAG-Zelle gemäß der vorliegenden Offenbarung;
    • 6 ist eine schematische Ansicht einer Boundary-Scan-Basiszellen-Unterarray-Architektur gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 7 ist ist eine schematische Ansicht eines Datenpuffers, der modifizierte JTAG-(Joint Test Action Group)-Zellen gemäß der vorliegenden Offenbarung;
    • 8 ist eine schematische Ansicht einer Gruppe von Adressregistern für eine Speicherseite im Speicherabschnitt der vorliegenden Offenbarung;
  • DETAILLIERTE BESCHREIBUNG
  • Die hierin beschriebenen Ausführungsformen und die verschiedenen Merkmale und vorteilhaften Details werden unter Bezugnahme auf die nicht beschränkenden Ausführungsformen, die in den beigefügten Zeichnungen dargestellt und in der folgenden Beschreibung detailliert beschrieben sind, ausführlicher erläutert.
  • Beschreibungen bekannter Komponenten und Verarbeitungstechniken werden weggelassen, um die Ausführungsformen hierin nicht unnötig zu verschleiern. Die hierin verwendeten Beispiele sollen lediglich ein Verständnis von Wegen erleichtern, auf denen die Ausführungsformen hierin praktiziert werden können, und es dem Fachmann ferner ermöglichen, die Ausführungsformen hierin zu praktizieren. Dementsprechend sollten die Beispiele nicht so ausgelegt werden, dass sie den Umfang der Ausführungsformen hierin einschränken.
  • Unter Bezugnahme auf diese Figuren werden hier Geräte und Verfahren mit einer nichtflüchtigen Speichervorrichtung 1 oder Komponente und einer Host-Vorrichtung 10 für eine solche Speichervorrichtung offengelegt.
  • Bei der Host-Vorrichtung 10 kann es sich um ein System-on-Chip mit einer eingebetteten Speicherkomponente 1 oder um eine komplexere elektronische Vorrichtung handeln, die ein mit einer Speichervorrichtung gekoppeltes System enthält, wie aus der Beschreibung anderer Ausführungsformen der vorliegenden Offenlegung hervorgeht, die unter Bezugnahme auf andere Figuren erfolgt.
  • Die vorliegende Offenbarung schlägt vor, die Speichergröße zu verbessern, indem eine strukturell unabhängige Speicherkomponente 1 bereitgestellt wird, die mit der Host-Vorrichtung 10 oder dem System-on-Chip gekoppelt ist. Die Speicherkomponente 1 ist als eigenständige Vorrichtung strukturiert, die in einem einzigen Chip mit einer Technologie realisiert wird, die speziell für die Herstellung von Flash-Speichervorrichtungen bestimmt ist.
  • Diese nichtflüchtige Speicherkomponente 1 enthält ein Array 25 von Flash-Speicherzellen und eine Schaltung, die um das Speicherarray herum und näher an einer Vielzahl von peripheren Pads angeordnet ist, wie später offenbart wird. Genauer gesagt ermöglicht die vorgeschlagene externe Architektur die Überschreitung der Grenzen der derzeitigen eFlash-Technologie (d.h. eingebettete Flash-Technologie), was die Integration eines größeren Speichers ermöglicht, da dieser je nach Speichertechnologie und Technologieknoten 512Mbit und/oder 1Gbit und/oder mehr betragen kann.
  • Insbesondere beinhaltet die Flash-Speicherkomponente 1 eine I/O-Schaltung 5, einen Mikrosequenzer 3 mit einer Steuerung und JTAG-Logik und Leseverstärkern 9.
  • Die Flash-Speicherkomponente 1 enthält ferner eine Befehlsbenutzerschnittstelle CUI 4, Spannungs- und Stromreferenzgeneratoren 7, Ladungspumpen 2 und eine Decodierungsschaltung 8, die sich an der Peripherie des Arrays befindet.
  • Wie zuvor berichtet, ist der Speicherabschnitt 1 eine unabhängige Struktur, aber er ist strikt mit der SoC-Struktur 10 verbunden. Die Art und Weise, in der der Speicherteil mit dem System-on-Chip gekoppelt ist, ist jedoch eigenartig und wird in den folgenden Abschnitten deutlich.
  • Obwohl sie in vielerlei Hinsicht vorteilhaft sind, können die System-on-Chips mit großen Speicherarrays unter vielen Nachteilen leiden, da der Speicherabschnitt mit einem Prozess realisiert wird, der nicht speziell für Speicher ausgelegt ist und mögliche Defekte der Speicherarrays die Lebensdauer oder die Funktion der gesamten SoC-Struktur beeinträchtigen können.
  • Im Gegenteil, um die Leistung der gesamten SoC-Struktur zu verbessern, wurde der Speicherteil 1 als unabhängiger Speicherbaustein mit einer Technologie realisiert, die speziell für die Herstellung von Flash-Speicherbausteinen geeignet ist. Diese neue Speicherkomponente 1 ist der SoC-Struktur zugeordnet und mit ihr verbunden, die eine solche Struktur teilweise überlappt, während der entsprechende Halbleiterbereich der SoC-Struktur für andere Logikschaltungen verwendet wurde und um den überlappenden strukturell unabhängigen Speicherabschnitt 1 zu unterstützen.
  • Der auf der Ebene des System-on-Chip gewonnene Freiraum an Halbleiterfläche wurde für die Integration zusätzlicher Nutzerfunktionen genutzt.
  • Die Speicherkomponente 1 wird als eine unabhängige Struktur erhalten, aber sie ist strikt dem Host-Gerät oder der SoC-Struktur zugeordnet. Insbesondere ist die Speichervorrichtung 1 mit der SoC-Struktur verbunden und verknüpft, die eine solche Struktur teilweise überlappt, während der entsprechende Halbleiterbereich der SoC-Struktur für andere logische Schaltungen und zur Unterstützung der teilweise überlappenden, strukturell unabhängigen Speichervorrichtung 1 verwendet wurde, beispielsweise durch eine Vielzahl von Pfeilern, durch Silizium-Durchkontaktierungen (TSV) oder andere ähnliche alternative Verbindungen, wie z. B. Kugel auf Gitter oder mit einer Flip-Chip-ähnlichen Technologie.
  • Die Säulen werden im Halbleiterbereich realisiert, der zuvor einem eingebetteten Speicherbereich auf derselben Ebene des System-on-Chip gewidmet war und mit dem Flash-Speicherchip verbunden ist.
  • In einer Ausführungsform der vorliegenden Offenbarung ist die Anordnung der Pads der Speicherkomponente 1 auf einer Oberfläche der Speicherkomponente an der Peripherie der strukturell unabhängigen Flash-Vorrichtung realisiert. Genauer gesagt wurde die Vielzahl von Pads um das Array herum realisiert, so dass, wenn die Speicherkomponente 1 umgedreht wird, ihre Pads den entsprechenden Pads der SoC-Struktur 10 gegenüberliegen. Der Halbleiterbereich, der in bekannten System-on-Chip-Bauelementen von einem eingebetteten nichtflüchtigen Speicherteil belegt war, wird nun für die Unterbringung der Verbindungspads verwendet, die den Pads des Speicherbauteils 1 entsprechen. Der Fachmann weiß, dass auch andere Kopplungsmethoden angewandt werden können, z. B. Pads über Logiktechnologie. Die Pads sind auf der Logik aufgebaut, ähnlich wie beim 3DN, und implementieren die Schaltung unter dem Array (CUA-Technologie).
  • Allgemein gesagt weist die Speicherkomponente 1 eine andere Größe im Vergleich zu der Größe der SoC-Struktur 10 auf, eine solche Größe kann kleiner oder größer sein. Mit dem Begriff „teilweise überlappend“ ist gemeint, dass das Speicherbauelement 1 die Fläche der SoC-Struktur 10 teilweise oder nicht vollständig abdeckt oder umgekehrt.
  • Die Kopplung zwischen der SoC-Struktur 10 und der Speicherkomponente 1 wird durch die Verbindung einer Vielzahl von entsprechenden Pads oder Stiftanschlüssen realisiert, die einander in einem Schaltungslayout gegenüberliegen, das die Ausrichtung der überlappenden Pads beibehält, selbst wenn die Größe der Speicherkomponente 1 geändert werden sollte.
  • Daher kann auch eine Speicherkomponente 1 von größerer Größe getragen und mit den Pads der SoC-Struktur 10 verbunden werden, wobei die Position und Versetzung der Verbindungspads beibehalten wird.
  • Der Vollständigkeit halber sei angemerkt, dass die Speicherkomponente 1 mit einer Flip-Chip-Technologie oder anderen äquivalenten Kopplungstechniken an die SoC-Struktur 10 gekoppelt werden kann.
  • Die endgültige Konfiguration wird eine Face-to-Face-Verbindung SoC/Flash Array sein, bei der die Leseverstärker mit dem SoC in einer Direktspeicherzugriffskonfiguration für Benutzermodi mit Hochfrequenzzugriffen verbunden sind.
  • Zum Lesen der Speicherzellen des Arrays 25 ist ein spezieller Schaltungsteil vorgesehen, der eine optimierte Read Finite State Machine enthält, die für eine hohe Leseleistung sorgt, wie z.B.: Verzweigungsvorhersage, Fetch/Pre-Fetch, Interrupt-Management. Die Fehlerkorrektur wird dem SoC 10 überlassen; dem Speicher-Controller werden zusätzliche Bits zur Verfügung gestellt, um ein mögliches ECC-Syndrom im Zusammenhang mit der Seite zu speichern. Der ECC ermöglicht es dem Host auch, die empfangenen Daten zu korrigieren. Der Host ist dafür verantwortlich, die Daten im Speicher basierend auf der in den empfangenen Datenzellen vorgenommenen Korrektur zu fixieren.
  • Insgesamt umfasst die Flash-Speicherkomponente 1 der vorliegenden Offenbarung: das Speicherarray, einen Mikrosequenzer, eine Steuer- und JTAG-Logik, Leseverstärker und entsprechende Latches.
  • Diese Flash-Speicher-Komponente 1 verwendet die Verbindungspads des Array- und Logikschaltungsteils, um die Verbindung mit der Host- oder SoC-Struktur 10 zu ermöglichen.
  • Die endgültige Konfiguration ist ein SoC/Flash-Array mit Face-to-Face-Verbindung, bei dem die Leseverstärker 9 der Speicherkomponente 1 in einer Direktspeicherzugriffskonfiguration für den Hochfrequenzzugriff im Benutzermodus mit dem SoC verbunden sind.
  • Der Direct Memory Access ermöglicht es, die endgültige Latenz, die der SoC beim Lesen der Daten erfahren kann, zu reduzieren. Darüber hinaus wird die endgültige Latenzzeitauch durch den Blockformfaktor, die Verteilung der Leseverstärker zwischen den Blöcken, die Auswahl der Vergleichsschwelle in den Leseverstärkern und den optimierten Pfad reduziert.
  • Unter genauerer Bezugnahme auf das Beispiel von 2 ist in einer Ausführungsform der vorliegenden Offenbarung das Speicherarray 25 als eine Sammlung von Unterarrays 20 aufgebaut. Auf diese Weise wird mit kleineren Sektoren im Vergleich zu bekannten Lösungen die Zugriffszeit erheblich reduziert und der gesamte Durchsatz des Speicherbauelements verbessert.
  • Der Vorteil dieser Architektur ist, dass sie sehr skalierbar ist und eine Erweiterung bzw. Verringerung der Dichte des Endgeräts nur durch Spiegelung eines Teilarrays und Herstellung der Verbindung erfolgt.
  • Das Host-Gerät oder das System-on-Chip 10 umfasst normalerweise mehr als einen Kern, und jeder Kern ist mit einem entsprechenden Bus oder Kanal zum Empfang und zur Übertragung von Daten an die Speicherkomponente 1 verbunden. Jedes Unterarray 20 hat Zugang zu einem entsprechenden Kanal, um mit einem entsprechenden Kern des System-on-Chip zu kommunizieren.
  • Der Kern des Host-Geräts kann über einige interne Pads Zugang zur JTAG-Schnittstelle haben. Solche Pads sind schnell und haben die Fähigkeit, die maximale Frequenz zu unterstützen. Solche Pads können jedoch keine analoge Spannung außerhalb des Flash-Arrays verwalten.
  • In Ausführungsformen der vorliegenden Offenlegung ermöglicht ein direkter Speicherzugriff (DMA) eine Verringerung der endgültigen Latenz, die der SoC beim Lesen der Daten erfahren kann.
  • Um die Probleme von in System-on-Chips eingebetteten Flash-Speicherbauelementen zu überwinden und eine sehr niedrige Anfangslatenz und einen hohen Durchsatz zu erzielen, wurde eine skalierbare, kostengünstige, effektive und zuverlässige Speichervorrichtung und ein Verfahren entwickelt, das den Abschluss des Lesevorgangs mit Daten, Adresse und ECC durch DMA-Flash-Array, wodurch sichergestellt wird, dass die Daten von genau demselben Speicherort gelesen werden müssen, den der Controller verlangt.
  • 3 ist eine schematische Ansicht eines Speicherblocks, der durch eine Vielzahl von Zeilen eines Speicherarrays gemäß einer Ausführungsform der vorliegenden Offenbarung gebildet wird. In einer Ausführungsform der vorliegenden Offenbarung ist jedes Speicherunterarray 20 in Speicherblöcken 40 strukturiert. Die Architektur eines Speicherblocks 40, der jede Stelle des Speicherarrays umfasst, kann als Superseite definiert werden. Eine Superpage ist 128-Bit-I/O, die für den SoC benötigt wird, und ein 16-Bit-ECC mit 24-Bit-Adressierung (bis zu 2 GB verfügbarer Speicherplatz).
  • Anders gesagt, die atomare Seite von 128 Bit, die in jedem Unterarray 20 verwendet wird, um den Kommunikationskanal mit der SoC-Vorrichtung zu füllen, wurde in der vorliegenden Implementierung vergrößert, um die gespeicherte Adresse und den ECC zu enthalten. Mit anderen Worten, die Flash-Speicherkomponente ist konfiguriert, um einen Kommunikationskanal mit einer vergrößerten Speicherseite zu füllen, die Daten, entsprechende Adressbits und ECC-Bits jedes Unterarrays der mehreren Unterarrays enthält.
  • Jeder Speicherblock enthält mindestens 256 Zeilen und jede Zeile enthält sechzehn Superseiten der obigen Größe. Jede Superseite enthält mindestens 168 Bits als Kombination aus Daten-, Adressierungs- und ECC-Bits. Daher kann jede Zeile des Speicherarrays bis zu sechzehn Doppelwörter von jeweils 32 Bits plus die Adress- und ECC-Syndrom-Ersatzbits pro Seite enthalten.
  • Um nur einen numerischen Wert anzugeben, wird eine Superseite aus 128 + 16 + 24 = 168 Bits gebildet und sechzehn Superseiten pro Zeile umfassen 168 * 16 = 2688 Bits.
  • Daher enthält jede Zeile 50 eines Speicherblocks 40 mindestens sechzehn Seiten, die ein Speicherwort plus die entsprechenden Adressbits und die entsprechenden ECC-Bits umfassen. Offensichtlich kann eine andere Größe ausgewählt werden und der berichtete Wert dient nur der Veranschaulichung eines nicht einschränkenden Beispiels. Das Ergebnis der Blöcke wird direkt vom Host-Gerät oder SoC 10 gesteuert, ohne Hochleistungs-Ausgangspuffer der bekannten Lösungen zu verwenden und den Pfad dank einer modifizierten und optimierten JTAG-Schnittstelle zu optimieren.
  • Die Ausgänge der Leseverstärker SA pro Unterarray 20 werden durch eine interne Schaltung einer Leseschnittstelle zwischengespeichert. Die Speicherstruktur kann erweitert werden, um das Lesen mehrerer Seiten zu ermöglichen, wobei die bereits gelesene Seite ausgelagert wird.
  • Die Leseverstärker SA sind direkt mit modifizierten JTAG-Zellen verbunden, die später ausführlicher offenbart werden, um eine JTAG-Struktur und die Leseverstärker in einem einzigen Schaltungsabschnitt zu integrieren. Dies ermöglicht es, die Verzögerung bei der Weitergabe der Ausgabe des Speicherarrays an den SoC so weit wie möglich zu reduzieren.
  • Wie bereits erwähnt, bereiten die internen Leseverstärker 9 zwei Seiten mit mindestens 128 Bits vor, und während die erste Seite zum Verschieben bereit ist, wird intern ein weiterer Lesevorgang einer zweiten Seite mit derselben Adresse durchgeführt. Dies ermöglicht die Vorbereitung von fünf bis acht Doppelworten, die für die RTOS-Anwendung typisch sind, wodurch die Leseverstärker eine weitere interne Leseoperation ausführen können, um das zweite Nibble oder die Gruppe von 128 Bit vorzubereiten, wenn das System mit zwei Seiten von 128 Bits strukturiert ist.Aus diesem Grund hat man sich für eine Doppelseite von 2x128bitplus entsprechende Adressen und ECC-Bits entschieden. Dieser zweite Teil von vier Doppelwörtern wird an den Ausgang des Flash-Arrays 25 übertragen, wobei ein zusätzliches Freigabesignal (d. h. ein internes Taktsignal oder ein ADV-Signal) verwendet wird, das den auf Leseverstärkerebene gelesenen Inhalt an das Host-Gerät oder SoC-Gerät 10 überträgt. Die Signalnamen sind load_data [0, 1].... bei Verwendung der Superpage ist eine Adresserhöhung nicht erforderlich.
  • Der kombinierte String aus Datenzellen + Adresszellen + ECC-Zellen ermöglicht die Umsetzung der gesamten Sicherheitsabdeckung des Kommunikationskanals gemäß den Standardanforderungen der Norm ISO26262, da die ECC die gesamte Buskommunikation (Datenzellen + Adresszellen) abdeckt, während das Vorhandensein der Adresszellen die Sicherheit bietet, dass die Daten genau von der adressierten Stelle des Controllers kommen, d. h. wenn ADD == ADD0.
  • Zum besseren Verständnis des Prinzips der vorliegenden Offenlegung sei darauf hingewiesen, dass ein direkter Speicherzugriff ein Merkmal von Computersystemen ist, das es bestimmten Hardware-Subsystemen ermöglicht, unabhängig von der CPU (Central Processing Unit) auf den Hauptspeicher des Systems zuzugreifen (im Allgemeinen ein flüchtiger Speicher wie z. B. ein Speicher mit wahlfreiem Zugriff).
  • Genauer gesagt wird DMA verwendet, wenn die CPU Speicher verwendet, und es wird typischerweise für einen gewissen Taktzyklus der Lese- oder Schreiboperation belegt. Somit dauert es immer dann, wenn die E/A-Geräte auf den Speicher zugreifen, viel Zeit, um die Daten in den und/oder aus dem Speicher zu bekommen.
  • Die E/A-Geräte leiten zuerst die Übertragung mit dem DMA-Controller ein, geben die Kontrolle über die Busse von der CPU ab, und dann führt die CPU andere Operationen aus, während die Übertragung läuft, und empfängt schließlich einen Interrupt vom DMA-Controller, wenn die Operation abgeschlossen ist, daher können von ihm jetzt Adress- oder Datenbusse für seine internen Operationen verwendet werden. Diese Funktion ist jederzeit nützlich, wenn die CPU mit der Datenübertragungsrate nicht Schritt halten kann oder wenn die CPU Arbeit ausführen muss, während sie auf eine relativ langsame E/A-Datenübertragung (Eingabe oder Ausgabe) wartet. Viele Hardwaresysteme verwenden DMA, einschließlich Festplattencontroller, Grafikkarten, Netzwerkkarten und Soundkarten.
  • DMA wird gemäß der vorliegenden Offenbarung für die Intra-Chip-Datenübertragung in Mehrkernprozessoren verwendet. Die Kerne mit DMA-Kanälen können Daten mit viel weniger CPU-Overhead zu und von den Speicherkomponenten übertragen als Kerne ohne DMA-Kanäle. In ähnlicher Weise kann ein Verarbeitungselement innerhalb eines Mehrkernprozessors Daten zu und von seinem lokalen Speicher übertragen, ohne seine Prozessorzeit zu belegen, wodurch Berechnung und Datenübertragung parallel ablaufen können.
  • Der direkte Speicherzugriff der vorliegenden Offenbarung verwendet Boundary-Scan-Zellen und Leseverstärker als ein System und Verfahren zum Adressieren des direkten Speicherzugriffsvorgangs und zum Lokalisieren der Speicheradresse zu einem spezifischen DMA-Flash-Array. Dabei wird eine modifizierte JTAG-Zellenstruktur implementiert, um eine Vergrößerung der bei einem Direktzugriff zu lesenden Speicherseiten zu ermöglichen.
  • 2 ist eine schematische Ansicht des internen Layouts eines Speicherabschnitts von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung; Wie im Beispiel von 2 gezeigt, umfasst eine einem Leseverstärker zugeordnete Boundary-Scan-Zelle 200 zwei Eingänge und zwei Ausgänge. Die beiden Eingänge sind SIN (Serieller Eingang) und PIN (Paralleleingang) und die beiden Ausgänge sind SOUT (Serieller Ausgang) und POUT (Parallelausgang). Die Boundary-Scan-Zelle 200 ist als Ausgang der Leseverstärker SA zugeordnet.
  • DMA kann implementiert werden, indem der Leseverstärker direkt mit dem Controller verbunden wird. Der Hauptnachteil, der mit diesen DMA-Technologien für den Zugriff auf den DMA-Speicher und das Lokalisieren der Speicheradresse zu einem bestimmten und/oder dem gesamten DMA-Flash-Array verbunden ist, besteht jedoch darin, dass die Datenpuffer in dem DMA-Flash-Array, das eine Leseoperation durchführt, nicht mit Daten abgeschlossen werden. Adresse und ECC (Error Correction Codes), die zu einer Nichtübereinstimmung der Daten führen können.
  • Die vorliegende Erfindung überwindet und adressiert die obigen Probleme, indem sie Direktspeicherzugriffstechnologien offenbart, die ein Verfahren verwenden, das ein System von modifizierten Boundary-Scan-Zellen und Leseverstärkern verwendet, um eine Direktspeicherzugriffsoperation zu adressieren und die Speicheradresse zu einem spezifischen DMA-Flash-Array zu lokalisieren.
  • Eine Ausführungsform der vorliegenden Offenbarung betrifft eine Speicherkomponente, die eine strukturell unabhängige Struktur aufweist und über eine Vielzahl von Verbindungspads an ein System-on-Chip gekoppelt ist, umfassend:
    • - ein Speicherarray mit mehreren unabhängig adressierbaren Unterarrays;
    • - Leseverstärker, die mit entsprechenden Ausgängen der Unterarrays verbunden sind und mit einem Kommunikationskanal des System-on-Chip verbunden sind;
    • - eine Abtastkette, die modifizierte JTAG-Zellen umfasst, die parallel zwischen den Ausgang der Leseverstärker und den Kommunikationskanal geschaltet sind, um die Durchführung von Leseoperationen in einem Direktspeicherzugriff zu ermöglichen.
  • So zeigt das schematische Beispiel in 5 eine generische Speicherzelle MC, die sich am Schnittpunkt einer Reihe von Speicherzellen und einer Spalte von Speicherzellen in einem Zellenfeld eines generischen Unterfeldes 20 befindet, so dass die Zelle MC entsprechend adressiert werden kann.
  • Ein Leseverstärker SA ist mit der Spalte von Speicherzellen als Teil der Leseschaltung verbunden, die verwendet wird, wenn Daten aus dem Speicherarray gelesen werden. Andere herkömmliche Komponenten oder Schaltungen, die zwischen der Zelle und dem Ausgang des Leseverstärkers SA eingefügt sind, wurden weggelassen. Allgemein gesagt wird eine Seite, die ein Wort von 128 Bits plus Adressbits plus ECC-Bits (d.h. mindestens 168 Bits) enthält, in der vorliegenden Implementierung gleichzeitig gelesen, selbst wenn jede Zeile des Speicherunterarrays breiter ist, wie zuvor berichtet. Genauer gesagt enthält ein Datenpuffer gemäß einer Ausführungsform der vorliegenden Offenbarung nicht nur Daten, sondern auch entsprechende Adressbits und ECC-Bits, wie in 4 dargestellt, die eine schematische Ansicht des Inhalts eines Datenpuffers für die Speicherblockarchitektur der vorliegenden Offenbarung.
  • Wie allgemein bekannt ist, besteht die Rolle des Leseverstärkers SA darin, die Niedrigleistungssignale von der Array-Reihe zu erfassen. Die niedrigen Spannungswerte, die das in der Speicherzelle MC gespeicherte Logikdatenbit (1 oder 0, je nach verwendeter Konvention) darstellen, werden auf einen erkennbaren Logikpegel verstärkt, so dass die Daten von Logikschaltungsabschnitten außerhalb des Speichers richtig interpretiert werden können.
  • In dem hiermit offenbarten Beispiel ist der Ausgang jedes Leseverstärkers SA mit der modifizierten JTAG-Zelle 200 gekoppelt, um eine JTAG-Struktur und den Leseverstärker zu integrieren.
  • In dem hiermit offenbarten nicht einschränkenden Beispiel ist ein Ausgangsverstärker OA zwischen dem Leseverstärker SA und der JTAG-Zelle 200 eingefügt.
  • In einer Ausführungsform der vorliegenden Offenbarung sind alle JTAG-Zellen 200, die mit den Leseverstärkern eines Speicher-Unterarrays gekoppelt sind, als Datenpuffer zu betrachten, der eine Datenseite enthält, die in diesem Beispiel mindestens einhundertachtundzwanzig (128) Bits umfasst, und entsprechende Adressbits und ECC-Bits (wie auch in 4 dargestellt, die eine schematische Ansicht des Inhalts eines Datenpuffers für die Speicherblockarchitektur der vorliegenden Offenbarung in einigen Ausführungsformen zeigt) für das Lesen einer kombinierten Speicherseite zu einer Zeit von den vier Unteranordnungen 20.
  • Wie zuvor berichtet, kann der Kommunikationskanal zwischen der Speicherkomponente und der SoC-Struktur jedoch aus zwei kombinierten Speicherwörtern bestehen, und die JTAG-Zelle 200 wurde modifiziert, nur um die internen Latches zu duplizieren, um den ersten oder höheren Teil der 168 Bits verschieben zu können der zu lesenden Daten + Adresse + ECC mit dem zweiten oder unteren Teil der zu lesenden Daten. Offensichtlich bedeutet in diesem Wettbewerb „höher“ den Datenteil, der vorher geladen wird, während „niedriger“ den Datenteil bedeutet, der nachher geladen wird.
  • Ein Fachmann wird verstehen, dass die Anzahl der internen Zwischenspeicher der modifizierten JTAG-Zelle im Bedarfsfall erhöht werden kann, um die Anzahl von Bits zu verbessern, die über den Kommunikationskanal an die SoC-Struktur zu übertragen sind. Die obige Struktur kann beispielsweise entsprechend der Seitengröße erweitert werden, die für die jeweilige Implementierung des Controllers des Speichergeräts erforderlich ist.
  • Die Boundary-Scan-Zellen sind modifizierte JTAG-Zellen. Daher wird eine modifizierte Speicherarray-Implementierung offenbart, bei der jeder Datenpuffer 128 modifizierte JTAG-(Joint Test Action Group)-Zellen und die gemeinsamen Datenladesignale enthält, die erzeugt werden, um die gesamten 168x2 Bits zu erfassen.
  • Die Signalerzeugung wird intern von einem Speichercontroller durchgeführt, wenn die Leseoperation im spezifischen Datenpuffer durchgeführt wird, während es SoC-Controller (System on Chip) gibt, die den Lesemechanismus unter Verwendung der 128-Parallelität ermöglichen. Der Hauptvorteil dieser Datenpuffer besteht darin, dass jeder Datenpuffer den Leseverstärker freigeben kann, um an einer anderen Speicherstelle zu lesen.
  • Wie wir gesehen haben, ist das Speicherarray 25 als eine Sammlung von Unterarrays 20 aufgebaut, die unabhängig adressierbare Speichereinheiten umfassen, und jedes Unterarray ist mit einem Kanal des SoC gekoppelt, wie in 6 gezeigt.
  • Die Unterarray-Leseverstärker 9 sind mit einer Abtastkette 30 verbunden, die den Ausgang des Unterarrays 20 miteinander verbindet. Jede Unterarray-Abtastkette 30 kann verbunden sein, um eine eindeutige Kette mit dem anderen Unterarray zu bilden, oder kann als separates Scan-Kettenregister behandelt werden. Die Verwendung dieser Boundary-Scan-Zellverbindungsstruktur ist wichtig, da sie Boundary-Scan als Verfahren zum Überprüfen der Verbindung zwischen dem SoC und dem DMA-Flash-Array ermöglicht und auch die Implementierung des direkten Speicherzugriffs ermöglicht, der den Leseverstärker 9 direkt mit dem Kern des SoC verbindet .
  • Darüber hinaus erlauben es die Boundary-Scan-Zellen 200 dank ihrer internen Struktur, den Leseverstärker SA zu verlassen, um die zweite 168 × 2 Bit breite Seite mit dem ECC und der nahe an die Seite geschriebenen Adresse vorzubereiten. Die JTAG-Zelle (Joint Test Action Group) ist so angeschlossen, dass PIN der Ausgang eines Leseverstärkers ist, POUT der Ausgang der Zelle zum Kommunikationskanal mit dem SoC ist, SIN der serielle Eingang ist, der mit dem seriellen Ausgang verbunden ist des vorherigen Verstärkers SA und SOUT ist der serielle Ausgang, der mit dem SIN des nächsten Leseverstärkers SA verbunden ist. Während die ersten 168 Bits bereit sind, an den SoC-korrespondierenden Dateneingang oder -ausgang ausgegeben zu werden, kann der interne Leseverstärker das Lesen des anderen Abschnitts der 168 Bits auslösen.
  • Scan-Ketten, die Boundary-Scan-Zellen 200 umfassen, können miteinander verbunden werden, um ein einziges Schieberegister 30 zu bilden und die Verbindungen zu testen. Der Testdateneingang (TDI) und die Testdatenausgänge (TDO) sind die Pins, die für Testzwecke unter Verwendung der Boundary-Scan-Zellen 200 verwendet werden. Das Eingangssignal wird am TDI-Pin ausgegeben und die Daten am TDO-Pin auf ihre Gültigkeit überprüft. Der Vorteil dieser Architektur ist, dass sie sehr skalierbar ist und bei der Erweiterung und/oder Reduzierung der Dichte des endgültigen Geräts hilft, indem sie lediglich ein Unterarray spiegelt und die Verbindungen erzeugt.
  • Der direkte Speicherzugriff ermöglicht es, die endgültige Latenzzeit zu reduzieren, die der SoC beim Lesen der Daten erfahren kann. Der Ausgang des Leseverstärkers muss zunächst von einer internen Schaltung verriegelt werden, damit der Leseverstärker eine weitere interne Leseoperation durchführen kann, um das zweite Nibble von 128 Bits vorzubereiten. Dieses zweite Halbbyte wird an den Ausgang des Flash-Arrays übertragen, wobei ein zusätzliches Signal verwendet wird, das den auf Leseverstärkerebene gelesenen Inhalt an den SoC überträgt.
  • In Ausführungsformen der vorliegenden Offenbarung wird auf eine JTAG (Joint Test Action Group)-Boundary-Scan-Zelle 200 Bezug genommen, die das Implementieren des direkten Speicherzugriffs ermöglicht, der den Leseverstärker direkt mit dem Controller verbindet und den Leseverstärker frei lässt, um die zweite Gruppe von Bits vorzubereiten um eine 168x2 Bit breite Seite mit dem ECC und der nahe an die Seite geschriebenen Adresse zu bilden.
  • 7 zeigt eine detailliertere schematische Ansicht der internen Struktur einer solchen modifizierten JTAG-Zelle 200 der Speicherarchitektur der vorliegenden Offenbarung. Die modifizierte JTAG-Zelle von 7 ist nur ein Implementierungsbeispiel, da es leicht wäre, die Anzahl der Flipflops in der JTAG-Zelle zu erhöhen, wodurch das Abruf-/Vorabruf-Schema und die Arbeitsweise der Zelle vergrößert werden.
  • Jeder einem Leseverstärker zugeordnete Datenpuffer enthält mindestens 168 modifizierte JTAG-Zellen und die gemeinsamen Datenladesignale, die erzeugt werden, um die gesamten 168 × 2 Bits zu erfassen. Die Signalerzeugung erfolgt intern durch einen Controller, wenn der Lesevorgang im spezifischen Datenpuffer durchgeführt wird, während es SoC-Kerne gibt, die den Lesemechanismus unter Verwendung der 128 Parallelität ermöglichen.
  • So muss beispielsweise der Ausgang des Leseverstärkers von einer internen Schaltung festgehalten werden, damit der Leseverstärker eine weitere interne Leseoperation durchführen kann, um das zweite Nibble von 168 Bits vorzubereiten. Dieses zweite Halbbyte wird an den Ausgang des Flash-Arrays übertragen, wobei ein zusätzliches Signal verwendet wird, das den auf Leseverstärkerebene gelesenen Inhalt an den SoC überträgt.
  • Es sind zwei Multiplexer vorgesehen, in denen ein Multiplexer eine serielle Eingabe an die JTAG-Zelle zu einer bestimmten Taktzeit liefert, die wiederum das erste Bit verarbeitet und es zu einer bestimmten Taktzeit an die zweite JTAG-Zelle aktualisiert. Nach der Aktualisierung wird die Ausgabe als Eingabe an den zweiten Multiplexer übergeben, der wiederum mit Hilfe des Modussteuersignals entscheidet, ob die Datenausgabe vom seriellen oder parallelen Kanal erfolgt, und auf diese Weise können 128 JTAG-Zellen in einem Datenpuffer insgesamt 168x2 Bits als Ausgabe an den SOC verarbeiten.
  • Dank des seriellen Ein- und Ausgangs kann ein Testverfahren durchgeführt werden, um zu prüfen, ob eine fehlerfreie Verbindung zwischen dem Speicherteil 1 und dem zugehörigen System-on-Chip besteht. Dank des parallelen Ein- und Ausgangs wird dieselbe JTAG-Zelle als Datenpuffer für die Vervollständigung der Lesephase durch die Leseverstärker verwendet.
  • Die JTAG-Zelle 200 umfasst eine Boundary-Scan-Basiszelle 280 mit einem Paar Zwischenspeicher 201 und 202 und einem Paar Multiplexern 251 und 252. Ein erster Eingangsmultiplexer 251 und ein zweiter Ausgangsmultiplexer 252.
  • Die Boundary-Scan-Basiszelle 280 wird durch den gestrichelten Kasten in 7 angezeigt und ist eine Zelle mit zwei Eingängen, mit einem seriellen Eingang entsprechend SIN und einem parallelen Eingang entsprechend PIN, und einer Zelle mit zwei Ausgängen mit einem seriellen Ausgang entsprechend SOUT und einem parallelen Ausgang entsprechend POUT.
  • Der erste Multiplexer 251 empfängt an einem ersten Eingang „0“ ein paralleles Eingangssignal Pin vom ersten parallelen Eingangsanschluss PIN und an einem zweiten Eingang „1“ ein serielles Eingangssignal Sin vom ersten seriellen Eingangsanschluss SIN.
  • Dieser erste Multiplexer 251 wird von einem Steuersignal ShiftDR des FSM einer JTAG-Schnittstelle angesteuert und weist einen Ausgang MO1 auf. Die Zelle 280 hat mindestens zwei gemultiplexte Ausgänge, beispielsweise MO1 und MO2. Ein JTAG-Taktsignal ClockDR steuert den Ausgang vom seriellen Ausgang SOUT
  • Die Operationen einer Finite State Machine basierend auf dem JTAG-Protokoll, das Signale wie das Taktsignal und das oben angegebene ShiftDR liefert, werden in dieser Beschreibung nicht offenbart, nur um die gesamte Beschreibung zu vereinfachen.
  • Der erste Multiplexerausgang MO1 ist mit einem ersten Eingang des ersten Zwischenspeichers 201 verbunden, der an einem zweiten Eingangsanschluss ein Taktsignal ClockDR empfängt.
  • Die erste Verriegelung 201 ist mit der zweiten Verriegelung 202 verkettet, wobei ein erster Ausgang der ersten Verriegelung 201 mit einem ersten Eingang der zweiten Verriegelung 202 verbunden ist.
  • Es ist wichtig zu beachten, dass der Ausgang des ersten Zwischenspeichers 201 auch der serielle Ausgang SOUT der gesamten JTAG-Zelle 200 ist.
  • Ein zweiter Eingangsanschluss des zweiten Zwischenspeichers 202 empfing ein Signal UpdateDR.
  • Der zweite Zwischenspeicher 202 hat einen Ausgang, der mit einem Eingang des zweiten Multiplexers 252 verbunden ist, insbesondere mit seinem zweiten Eingang.
  • Dieser zweite Multiplexer 252 wird durch ein Modussteuersignal gesteuert, das es ermöglicht, die gesamte JTAG-Zelle 200 von einem seriellen in einen parallelen Modus und umgekehrt umzuschalten.
  • In einer Ausführungsform der vorliegenden Offenbarung umfasst die JTAG-Zelle 200 ferner ein weiteres Paar von Latches 221 und 222, die zwischen dem parallelen Eingang Pin und dem zweiten Multiplexer 252 vorgesehen sind. Diese weiteren Latches 221 und 222 sind das Latchen des direkten Lesens, d.h. der ersten 128 Bits, und des Schattens, d.h. des zweiten Teils der 168x2 Bits. Mit anderen Worten, die JTAG-Zelle 200 umfasst die Boundary-Scan-Zelle 280 und mindestens die weiteren Latches 221 und 222, wodurch eine modifizierte JTAG-Zelle 200 entsteht.
  • Diese weiteren Verriegelungen werden im Folgenden als dritte Verriegelung 221 und vierte Verriegelung 222 bezeichnet. In anderen Ausführungsformen kann eine längere Kette von Zwischenspeichern verwendet werden. Diese Zwischenspeicher werden im schnellen Pfad verwendet, um sicherzustellen, dass die Daten von der SA zwischengespeichert werden und dem Controller zur Verfügung stehen, während die SA erneut innerhalb des Unterarrays liest.
  • Insbesondere sind der dritte Latch 221 und der vierte Latch 222 in einer kleinen Pipeline-Konfiguration verbunden, wobei der dritte Latch 221 an einem ersten Eingang das parallele Eingangssignal Pin vom ersten parallelen Eingangsanschluss PIN empfängt und an einem zweiten Eingang ein Signal Data_Load[0] empfängt, das einer ersten Datenlast entspricht. Somit entspricht das Erhöhen der Seitentiefe mehr Signalen Data_Load[x].
  • Der vierte Zwischenspeicher 222 empfängt an einem ersten Eingang den Ausgang des dritten Zwischenspeichers 221 und empfängt an einem zweiten Eingang ein Signal Data_Load[1], das einer nachfolgenden Datenladung entspricht.
  • Der Ausgang des vierten Zwischenspeichers 222 ist mit dem ersten Eingang „0“ des zweiten Multiplexers 252 verbunden, der an seinem Ausgangsanschluss MO2 das Ausgangssignal für den parallelen Ausgangsanschluss POUT erzeugt.
  • Im Vergleich zu einer herkömmlichen JTAG-Zelle kann die JTAG-Zelle 200 der vorliegenden Offenbarung als modifizierte JTAG-Zelle betrachtet werden, da sie neben der Boundary-Scan-Zelle 280 zwei zusätzliche Latches, den dritten und vierten Latch 221 und 222, aufweist.
  • Die von den miteinander verbundenen modifizierten JTAG-Zellen 200 gebildete Scan-Kette, die den seriellen Ein- und Ausgang verwendet, bietet eine Reihe von Vorteilen, wie z. B. die Möglichkeit, die erfolgreiche Verbindung zwischen dem SoC und dem DMA-Speicher zu testen, die weitere Implementierung des digitalen Tests der Leseverstärker, da die Zelle als Programmlast arbeiten kann, um die Daten innerhalb der Matrix zu speichern, und die Fähigkeit, als zweite Ebene von Latches zu arbeiten.
  • Nur um die Art und Weise zu erklären, wie Daten in den Datenpuffer übertragen werden, müssen wir uns vorstellen, dass, wenn Daten in einen der beiden Zwischenspeicher 221 oder 222 geladen werden, sich der andere Zwischenspeicher im Bereitschaftszustand befindet, aber bereit ist, die Daten zu empfangen nachfolgenden Datenteil.
  • Daher wird der erste Abschnitt, der 168 Bit umfasst, an die SoC-Struktur für eine erste Datenverarbeitung übertragen, während die Lesephase nicht gestoppt wird, da der andere Teil der 168 Bits darauf vorbereitet ist, mit dem nachfolgenden Taktsignal in die Latches geladen zu werden.
  • Jeder Datenpuffer enthält 168 modifizierte JTAG-Zellen 200, und die gemeinsamen Data_Load[1:0]-Signale werden so generiert, dass die gesamten 168x2 Bits erfasst werden können, d.h. acht Doppelwörter DWs gemäß der vorgeschlagenen Implementierung.
  • Die Signalerzeugung wird intern gesteuert, wenn die Leseoperation in einem spezifischen Datenpuffer durchgeführt wird, und die Signale werden durch die SoC-Struktur gesteuert, um die Durchführung der Lesephase unter Verwendung einer 128-Bit-Parallelität zu ermöglichen.
  • Der Hauptvorteil dieser Speicherarchitektur besteht darin, dass jeder Puffer die gesamten Doppelworte DWs enthalten kann, wodurch der Leseverstärker zum Lesen an einer anderen Speicherstelle frei bleibt.
  • Die niedrige Latenzzeit der Speicherkomponente der vorliegenden Offenbarung ist auf die richtige Größe der Unterarray-Blöcke und auf die Optimierung des Datenpfads zurückzuführen, d.h. der internen Gates, die das Array mit den Ausgangspads verbinden.
  • Unter Bezugnahme auf 8 wird nun ein Unterarray-Adressierungsschema offenbart, das einen Satz von Befehlen umfasst, die auf zwei Arten implementiert sind, nämlich: Laden globaler Adressen und Laden lokaler Adressen.
  • Die Notwendigkeit einer sehr geringen Anfangslatenz und eines hohen Durchsatzes treibt die Erzeugung des folgenden Schemas für die Adressierung pro Unterarray an. 8 zeigt Zeilenadresspuffer und die entsprechenden Zeilendatenpuffer in der Struktur ähnlich dem DRAM, aber hier haben wir die Superseitenadressen und die entsprechenden Daten übernommen, d.h. 168 × 2.
  • Der implementierte Befehlssatz zum Adressieren des implementierten Speicherarrays kann von zwei Arten oder zwei Adressebenen sein; mit anderen Worten: Ein globaler Befehl wählt das Unterarray aus, während ein lokaler Befehl eines der Adressregister (zum Beispiel eines der vier) auswählt, die dem ausgewählten Unterarray zugeordnet sind.
  • Laden der globalen Adresse: In diesem Fall erhalten alle Unterarrays die Adresse in mehreren Schritten mit einem Befehl, d.h. load_global_address_0, load_global_address_1 usw.
  • Laden der lokalen Adresse: In diesem Fall erhält nur das adressierte Register im ausgewählten Unterarray die neue Adresse, d.h. local_address_0_0, local_address_0_1, local_global_address_1_3 usw.
  • Jedes Unterarray enthält einen Satz von 4x Datenregistern, beispielsweise 4x (Daten + Adresse + ECC-Zellen), die jeweils einem Adressregister entsprechen. 4x Datenregister enthalten eine Superseite, das heißt: data_H + data_L (nachdem die Verknüpfung zu der spezifischen Adresse entfernt wurde).
  • Die Adressregister sind mit dem Adressdecoder verbunden, wenn die Lese- oder Modifizierungsoperation das Array adressiert. Die Verbindung wird vom Flash-Controller in der Modifizierungsphase angesteuert, während die Lese-Finite-State-Maschine sie verbindet, wenn das Lesen getriggert wird. Das Adressregister wird unter Verwendung einer JTAG-Finite-State-Maschine geladen, wenn der entsprechende Befehl Load_Address erkannt wird und sich der Shift_DR-Zustand im JTAG-Tap befindet, dann wird der TDI mit dem Adressregister verbunden.
  • Mit einem Global_Address_Loadx-Befehl wird gleichzeitig das Nibble von acht Bits in die entsprechenden Register geladen:
  • Global_Address_Load0 im Befehlsregister erzeugt das Laden von addr0_0. Dieser Befehl kann beispielsweise das Unterarray 0 adressieren; ähnlich geschieht dies für die Auswahl der entsprechenden Unterarray-Adressregister addr1_0, addr2_0 und addr3_0 unter Verwendung von drei TCK-Zyklen, wenn sich die endliche Zustandsmaschine der JTAG-Schnittstelle im Shift_DR-Zustand befindet.
  • Local_Address_Load0_0 im Befehlsregister erzeugt das Laden von addr0_0 unter Verwendung von drei TCK-Zyklen, wenn sich der endliche Automat im Shift_DR-Zustand befindet. Dieser Befehl adressiert beispielsweise das Register 0 des ausgewählten Unterarrays. Dies bedeutet, dass bei Erreichen des ShiftDR das TDI mit dem Eingang dieses Schieberegisters und das TDO mit dem Ausgang verbunden wird, wenn das flexible TDI verwendet wird, benötigen wir nur drei Taktperioden Tck, um die gesamte Adresse innerhalb der ausgewählten Adresse zu haben registrieren, sonst bräuchten wir 24 Taktperioden Tck.
  • Diese Anweisungen (Global_Address_Load0, Global_Address_Load1, Global_Address_Load2, Global_Address_Load3) ermöglichen das Vorladen der Adresse für alle im Flash-Array implementierten Kanäle. Diese vier Befehle werden implementiert, um eines der vier Unterarrays auszuwählen. In einer möglichen Implementierung mit acht Kernen benötigen wir acht Befehle, einen für jeden Kern oder eine Methode, um einen der Kerne mit einem Befehl und einer Unterarray-Adresse auszuwählen. Daher ermöglicht die Einführung des obigen Befehls, die Kommunikation zwischen der SoC-Struktur 10 und der Speicherkomponente 1 zu optimieren, wodurch die Übertragungsleistung zum Controller verbessert wird
  • Die Anweisungen (Local_Address_Load0_0, ...., Local_Address3_3) ermöglichen die Verwendung eines einzelnen Kerns/Kanals, ohne dass der Controller den gesamten Satz von Kernen verwalten muss, wenn nur einer arbeitet; die Kerne sind unabhängig und können bei Bedarf ihren eigenen Kanal verwenden. Diese Anweisungen dienen zum Auswählen eines der Adressregister des ausgewählten Unterarrays.
  • Die Umsetzung dieses letztgenannten Mechanismus gewährleistet die Optimierung des Lesevorgangs des Speichers.
  • Ein Verfahren zum Abrufen von Daten aus einer Speicherkomponente, die mit einer Host-Vorrichtung oder einem System-on-Chip verbunden ist und mindestens ein Array von Speicherzellen mit zugehöriger Decodier- und Leseschaltung enthält, wird ebenfalls offenbart. Das Verfahren kann in einem SoC ausgeführt werden, das eine strukturell unabhängige Speicherkomponente umfasst, beispielsweise auch gemäß der Beschreibung unter Bezugnahme auf die 1 - 8 oben.
  • Das Verfahren kann einen Schritt des Strukturierens des Speicherarrays in eine Vielzahl von unabhängig adressierbaren Unterarrays umfassen. Die unabhängigen adressierbaren Unterarrays können in einigen Ausführungsformen Unterarrays 20 sein, die in 4 dargestellt sind.
  • Das Verfahren kann einen Schritt des Bereitstellens von Leseverstärkern umfassen, die mit entsprechenden Ausgängen der Unterarrays verbunden und mit einem Kommunikationskanal des System-on-Chip verbunden sind. Leseverstärker, zum Beispiel SA in den 2 und/oder 4, können mit einem Kommunikationskanal zwischen einer strukturell unabhängigen nichtflüchtigen Komponente 1 und einem Host oder einem System-on-Chip (SoC) 10 verbunden sein, wie zum Beispiel in 1 dargestellt.
  • Das Verfahren kann einen Schritt des Bereitstellens einer Abtastkette umfassen, die durch modifizierte JTAG-Zellen gebildet wird, die parallel zwischen den Ausgang der Leseverstärker und den Kommunikationskanal gekoppelt sind, um Leseoperationen in einem Direktspeicherzugriff durchzuführen. Die Scan-Kette und die modifizierten JTAG-Zellen können in einigen Beispielen die in den 2 und 4 - 8 dargestellten sein. In einigen Fällen umfassen die modifizierten JTAG-Zellen Boundary-Scan-Zellen, die mindestens ein paar weitere Zwischenspeicher zwischen einem parallelen Eingang und einem parallelen Ausgang enthalten.
  • Außerdem kann das Verfahren einen Schritt des mehrseitigen Lesens umfassen, wobei das mehrseitige Lesen; ein solcher Schritt kann das Zwischenspeichern von Bits einer ersten Speicherseite, das Darstellen der Bits der ersten Speicherseite am Ausgang der Leseschaltung nach dem Zwischenspeichern und das Ausführen einer weiteren Leseoperation umfassen, um Bits von mindestens einer zweiten Speicherseite zumindest teilweise vorzubereiten, während Zwischenspeichern und/oder Darstellen der Bits der ersten Speicherseite.
  • In mehreren der oben beschriebenen Ausführungsformen kann das Verfahren das Bereitstellen von Datenzellen und entsprechenden Adress- und ECC-Zellenbits umfassen. Zum Beispiel kann eine erweiterte Seite, wie oben unter Bezugnahme auf dieFiguren 3 und 4 beschrieben, Datenzellen und entsprechende Adress- und ECC-Zellen für eine verbesserte Sicherheit umfassen. Bei der Ausführung des Verfahrens können zusätzliche oder weniger Schritte ausgeführt werden, und die Reihenfolge, in der die Schritte ausgeführt werden, kann sich in einigen Ausführungsformen ändern.
  • Aus dem Vorhergehenden ist ersichtlich, dass hierin zum Zwecke der Veranschaulichung spezifische Ausführungsformen der Erfindung beschrieben wurden, dass jedoch verschiedene Modifikationen vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen. Dementsprechend ist die Erfindung außer durch die beigefügten Ansprüche nicht beschränkt.
  • Es versteht sich jedoch, dass, obwohl in der vorstehenden Beschreibung zahlreiche Merkmale und Vorteile der vorliegenden Erfindung zusammen mit Einzelheiten des Aufbaus und der Funktion der Erfindung dargelegt wurden, die Offenbarung nur veranschaulichend ist. Änderungen in den Details, insbesondere in Form, Größe und Anordnung von Teilen, können innerhalb der Prinzipien der Erfindung im vollen Umfang vorgenommen werden, der durch die breite allgemeine Bedeutung der Begriffe angegeben wird, in denen die beigefügten Ansprüche ausgedrückt sind.

Claims (29)

  1. Flash-Speicherarchitektur, die mit einem Host-Gerät oder einem System-on-Chip gekoppelt werden soll und mindestens ein Array von Speicherzellen mit zugehöriger Decodier- und Leseschaltung umfasst, umfassend: - eine Vielzahl von Unerarrays, die innerhalb der Speicherarchitektur unabhängig adressierbar sind; - Leseverstärker, die mit einem entsprechenden Unterarray gekoppelt sind, um einen Kommunikationskanal mit dem Host-Gerät oder System-on-Chip zu bedienen; - eine Scan-Kette, die den Ausgang des Unterarrays miteinander verbindet; - wobei die Scan-Kette modifizierte JTAG-Zellen enthält, die parallel mit dem Kommunikationskanal verbunden sind.
  2. Flash-Speicherarchitektur nach Anspruch 1, wobei die modifizierten JTAG-Zellen Boundary-Scan-Zellen umfassen, die mindestens ein paar weitere Zwischenspeicher zwischen einem parallelen Eingang und einem parallelen Ausgang enthalten.
  3. Flash-Speicherarchitektur nach Anspruch 1, wobei die modifizierten JTAG-Zellen in der Scan-Kette seriell verbunden sind.
  4. Flash-Speicherarchitektur nach Anspruch 2, wobei die Boundary-Scan-Zellen einen Eingangs-Multiplexer und einen Ausgangs-Multiplexer umfassen und wobei die mindestens ein paar weitere Zwischenspeicher zwischen den Eingangs-Multiplexer und den Ausgangs-Multiplexer geschaltet sind.
  5. Flash-Speicherarchitektur nach Anspruch 2, wobei das Paar weiterer Zwischenspeicher in einer Pipeline zwischen einem parallelen Eingang und einem parallelen Ausgang jeder Zelle verbunden ist.
  6. Flash-Speicherarchitektur nach Anspruch 1, wobei jedes Speicherunterarray in Speicherblöcken strukturiert ist, die jeweils mindestens 256 Reihen umfassen und jede Reihe mindestens sechzehn Seiten umfasst, die ein Speicherwort, entsprechende Adressbits und entsprechende ECC-Bits umfassen.
  7. Flash-Speicherarchitektur nach Anspruch 1, wobei ein Ausgang von Leseverstärkern konfiguriert ist, um Datenzellen , Adresszellen und ECC-Zellen zu kombinieren.
  8. Flash-Bauelement-Architektur nach Anspruch 1, die so konfiguriert ist, dass sie einen Kommunikationskanal mit einer vergrößerten Speicherseite füllt, die Daten, entsprechende Adressbits und ECC-Bits jedes Unterarrays der mehreren Unterarrays enthält.
  9. Flash-Bauelementarchitektur nach Anspruch 1, wobei die Größe einer Speicherseite jedes Unterarrays mindestens 168 Bits umfasst.
  10. Flash-Speicherkomponente, die eine strukturell unabhängige Struktur aufweist und über eine Vielzahl von Verbindungspads an ein System-on-Chip gekoppelt ist, umfassend: - ein Speicherarray mit mehreren unabhängig adressierbaren Unterarrays; - Leseverstärker, die mit entsprechenden Ausgängen der Unterarrays verbunden sind und mit einem Kommunikationskanal des System-on-Chip verbunden sind; - eine Abtastkette, die modifizierte JTAG-Zellen umfasst, die parallel zwischen den Ausgang der Leseverstärker und den Kommunikationskanal geschaltet sind, der so konfiguriert ist, dass er Leseoperationen in einem direkten Speicherzugriff durchführt.
  11. Flash-Speicherkomponente nach Anspruch 10, wobei die modifizierten JTAG-Zellen Boundary-Scan-Zellen mit mindestens einem Paar weiterer Latches zwischen einem parallelen Eingang und einem parallelen Ausgang umfassen.
  12. Flash-Speicherarchitektur nach Anspruch 10, wobei die modifizierten JTAG-Zellen in der Scan-Kette seriell verbunden sind.
  13. Flash-Speicherarchitektur nach Anspruch 11, wobei die Boundary-Scan-Zellen einen Eingangsmultiplexer und einen Ausgangsmultiplexer umfassen, wobei das mindestens eine Paar weiterer Latches zwischen dem Eingangsmultiplexer und dem Ausgangsmultiplexer gekoppelt ist.
  14. Flash-Speicherarchitektur nach Anspruch 11, wobei das mindestens eine Paar weiterer Latches in einer Pipeline zwischen einem parallelen Eingang und einem parallelen Ausgang jeder Zelle angeschlossen ist.
  15. Flash-Speicherkomponente nach Anspruch 10, wobei jedes SpeicherUnterarray in Speicherblöcken strukturiert ist, die jeweils mindestens 256 Zeilen umfassen, und jede Zeile mindestens sechzehn Seiten enthält, die ein Speicherwort, die entsprechenden Adressbits und die entsprechenden ECC-Bits umfassen.
  16. Flash-Speicherarchitektur nach Anspruch 10, wobei ein Ausgang von Leseverstärkern konfiguriert ist, um Datenzellen , Adresszellen und ECC-Zellen zu kombinieren.
  17. Flash-Speicherarchitektur nach Anspruch 10, die so konfiguriert ist, dass sie einen Kommunikationskanal mit einer vergrößerten Speicherseite füllt, die Daten, entsprechende Adressbits und ECC-Bits jedes Unterarrays der mehreren Unterarrays enthält.
  18. Flash-Speicherarchitektur nach Anspruch 10, die konfiguriert ist, um den direkten Speicherzugriff für die Intra-Chip-Datenübertragung in der Mehrkernkommunikation zwischen der Speicherkomponente und dem System-on-Chip anzuwenden.
  19. Flashspeicherarchitektur nach Anspruch 10, wobei der Direktspeicherzugriff die modifizierten JTAG-Zellen und die Leseverstärker zum direkten Adressieren einer Stelle des Flashspeicherarrays umfasst.
  20. Integrierte Schaltung, die eine System-on-Chip (SoC)-Vorrichtung und eine nichtflüchtige Speichervorrichtung umfasst, die als unabhängige Chips mit entsprechenden Herstellungstechnologien erhalten und gekoppelt sind, indem sie jeweilige Verbindungsstifte verbinden, und umfassend: - ein Speicherarray in der Speichervorrichtung mit mehreren unabhängig adressierbaren Unterarrays; - Leseverstärker, die mit entsprechenden Ausgängen der Unterarrays verbunden sind und mit einem Kommunikationskanal des System-on-Chip verbunden sind; - eine Abtastkette, die modifizierte JTAG-Zellen umfasst, die parallel zwischen den Ausgang der Leseverstärker und den Kommunikationskanal geschaltet sind, um die Durchführung von Leseoperationen in einem Direktspeicherzugriff zu ermöglichen.
  21. Integrierte Schaltung nach Anspruch 20, wobei ein Leseverstärker konfiguriert ist, um Datenzellen, Adresszellen und ECC-Zellen auszugeben.
  22. Integrierte Schaltung nach Anspruch 20, die so konfiguriert ist, dass sie einen Kommunikationskanal mit einer vergrößerten Speicherseite füllt, die Daten, entsprechende Adressbits und ECC-Bits jedes Unterfelds der Vielzahl von Unterfeldern enthält.
  23. Integrierte Schaltung nach Anspruch 20, wobei die modifizierten JTAG-Zellen Boundary-Scan-Zellen mit mindestens einem Paar weiterer Latches zwischen einem parallelen Eingang und einem parallelen Ausgang umfassen.
  24. Integrierte Schaltung nach Anspruch 20, wobei die modifizierten JTAG-Zellen in der Scan-Kette seriell verbunden sind.
  25. Integrierte Schaltung nach Anspruch 20, wobei jedes SpeicherUnterarray in Speicherblöcken strukturiert ist, die jeweils mindestens 256 Zeilen umfassen, und jede Zeile mindestens sechzehn Seiten enthält, die ein Speicherwort plus die entsprechenden Adressbits und die entsprechenden ECC-Bits umfassen.
  26. Verfahren zum Abrufen von Daten aus einer Speicherkomponente, die mit einer Host-Vorrichtung oder einem System-on-Chip gekoppelt ist und mindestens ein Array von Speicherzellen mit zugehöriger Dekodier- und Erfassungsschaltung enthält, umfassend: - Strukturieren des Speicherarrays in mehrere unabhängig adressierbare Unterarrays; - Bereitstellung von Leseverstärkern, die mit den entsprechenden Ausgängen der Unterarrays und mit einem Kommunikationskanal des System-on-Chip gekoppelt sind; - Bereitstellung einer Abtastkette, die durch modifizierte JTAG-Zellen gebildet wird, die parallel zwischen den Ausgang der Leseverstärker und den Kommunikationskanal geschaltet sind, um Leseoperationen in einem direkten Speicherzugriff durchzuführen.
  27. Verfahren nach Anspruch 26, wobei die modifizierten JTAG-Zellen Boundary-Scan-Zellen mit mindestens einem Paar weiterer Latches zwischen einem parallelen Eingang und einem parallelen Ausgang umfassen.
  28. Verfahren nach Anspruch 26, ferner umfassend ein mehrseitiges Lesen, wobei das mehrseitige Lesen beinhaltet: Zwischenspeichern von Bits einer ersten Speicherseite, Präsentieren der Bits der ersten Speicherseite am Ausgang der Leseschaltung nach dem Zwischenspeichern, Ausführen einer weiteren Leseoperation, um Bits von zumindest einer zweiten Speicherseite zumindest teilweise vorzubereiten, während die Bits der ersten Speicherseite zwischengespeichert und/oder präsentiert werden.
  29. Verfahren nach Anspruch 26, wobei das Strukturieren des Speicherarrays das Bereitstellen von Datenzellen und entsprechenden Adress- und ECC-Zellen umfasst.
DE112019007374.5T 2019-05-31 2019-05-31 Direkter speicherzugriff mit jtag-zelladresse Pending DE112019007374T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/000466 WO2020240228A1 (en) 2019-05-31 2019-05-31 Direct memory access using jtag cell addressing

Publications (1)

Publication Number Publication Date
DE112019007374T5 true DE112019007374T5 (de) 2022-02-17

Family

ID=67003545

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007374.5T Pending DE112019007374T5 (de) 2019-05-31 2019-05-31 Direkter speicherzugriff mit jtag-zelladresse

Country Status (4)

Country Link
US (1) US11309049B2 (de)
CN (1) CN113994434B (de)
DE (1) DE112019007374T5 (de)
WO (1) WO2020240228A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113906512A (zh) 2019-05-31 2022-01-07 美光科技公司 耦合到单片系统的存储器装置架构
US11875044B2 (en) * 2019-05-31 2024-01-16 Lodestar Licensing Group, Llc Direct memory access using joint test action group (JTAG) cells addressing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341382A (en) * 1991-06-19 1994-08-23 Sun Microsystems, Inc. Method and apparatus for improving fault coverage of system logic of an integrated circuit with embedded memory arrays
US6102963A (en) * 1997-12-29 2000-08-15 Vantis Corporation Electrically erasable and reprogrammable, nonvolatile integrated storage device with in-system programming and verification (ISPAV) capabilities for supporting in-system reconfiguring of PLD's
US6535963B1 (en) * 1999-06-30 2003-03-18 Cisco Technology, Inc. Memory apparatus and method for multicast devices
JP2001084787A (ja) * 1999-09-09 2001-03-30 Oki Electric Ind Co Ltd 不揮発性記憶装置の書き換え回路,不揮発性記憶装置の書き換え方法およびスキャンレジスタ
US6961884B1 (en) * 2000-06-12 2005-11-01 Altera Corporation JTAG mirroring circuitry and methods
DE10244757B3 (de) * 2002-09-25 2004-07-29 Siemens Ag Programmierung eines Speicherbausteins über ein Boundary Scan-Register
US7882405B2 (en) * 2007-02-16 2011-02-01 Atmel Corporation Embedded architecture with serial interface for testing flash memories
KR20100103145A (ko) * 2009-03-13 2010-09-27 주식회사 하이닉스반도체 반도체 메모리 장치의 초기화 회로
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US9324453B2 (en) * 2014-03-21 2016-04-26 Taiwan Semiconductor Manufacturing Company, Ltd. Memory unit and method of testing the same
KR102408858B1 (ko) * 2017-12-19 2022-06-14 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법

Also Published As

Publication number Publication date
WO2020240228A1 (en) 2020-12-03
US20210335438A1 (en) 2021-10-28
CN113994434B (zh) 2022-12-20
CN113994434A (zh) 2022-01-28
US11309049B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
DE112019007371T5 (de) Eine mit einem system-on-chip gekoppelte speichergerätearchitektur
DE4137515C2 (de) Integrierte Halbleiterschaltungsvorrichtung
DE69914864T2 (de) Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente
DE60130437T2 (de) Simultane mehrbankoperation für flash-speicher
DE19740695C2 (de) Datenspeicher mit Mehrebenenhierarchie
DE60212982T2 (de) Dynamische spaltenblockauswahl
DE60308202T2 (de) Hochkompakter nichtflüchtiger speicher mit platz sparenden datenregistern und dessen betriebsverfahren
DE4134192A1 (de) Integrierter schaltkreis mit verarbeitung im speicher
DE10392692T5 (de) Effizientes Lese-Schreibverfahren für Pipeline-Speicher
DE2617408B2 (de) Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie
DE102011053359A1 (de) Latch-basierte Speichervorrichtung
DE10160092A1 (de) Integrierte Halbleiterschaltungsvorrichtung
DE102006001492A1 (de) Halbleiterspeicheranordnung und Verfahren zum Betreiben einer Halbleiterspeicheranordnung
DE102009040241A1 (de) Verfahren und System für den Speicherzugriff
DE112011105670B4 (de) Verschiebbarer Speicher, der Ringregister verwendet
DE102020106356A1 (de) Speichervorrichtung für eine Verarbeitungsoperation, dieselbe umfassendes Datenverarbeitungssystem und Verfahren zum Betreiben der Speichervorrichtung
DE112019007374T5 (de) Direkter speicherzugriff mit jtag-zelladresse
DE112019007388T5 (de) Jtag-basierte architektur, die den multi-core-betrieb ermöglicht
DE60218009T2 (de) Halbleiterspeichervorrichtung
DE112019007386T5 (de) Verbesserte jtag-register mit gleichzeitigen eingängen
DE60221607T2 (de) Nichtflüchtiger Halbleiterspeicher und Informationsgerät
DE112019007385T5 (de) Verbesserte sicherheit und korrektheit beim lesen und programmieren von daten in einem nichtflüchtigen speichergerät
DE112007003117T5 (de) Neue Implementierung der Spaltenredundanz für einen Flash-Speicher mit einem hohen Schreibparallelismus
DE112004002973B4 (de) Halbleiterbauelement und Verfahren zum Schreiben von Daten
DE112019007429T5 (de) Verbesserte sicherheit und korrektheit beim lesen von daten in nichtflüchtigen speichergeräten

Legal Events

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

Owner name: LODESTAR LICENSING GROUP, LLC, EVANSTON, US

Free format text: FORMER OWNER: MICRON TECHNOLOGY, INC., BOISE, ID, US