DE112019007388T5 - Jtag-basierte architektur, die den multi-core-betrieb ermöglicht - Google Patents

Jtag-basierte architektur, die den multi-core-betrieb ermöglicht Download PDF

Info

Publication number
DE112019007388T5
DE112019007388T5 DE112019007388.5T DE112019007388T DE112019007388T5 DE 112019007388 T5 DE112019007388 T5 DE 112019007388T5 DE 112019007388 T DE112019007388 T DE 112019007388T DE 112019007388 T5 DE112019007388 T5 DE 112019007388T5
Authority
DE
Germany
Prior art keywords
memory
data
jtag
array
register
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
DE112019007388.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.)
Micron Technology Inc
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 DE112019007388T5 publication Critical patent/DE112019007388T5/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/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • 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/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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
    • 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
    • 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/44Indication or identification of errors, e.g. for repair
    • 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
    • G11C2029/1802Address decoder

Abstract

Die vorliegende Offenbarung bezieht sich auf eine Vorrichtung mit einer Speicherkomponente mit einer unabhängigen Struktur und mit mindestens einem Array von Speicherzellen mit zugehöriger Decodier- und Leseschaltung, einer Hostvorrichtung, die über mindestens einen Kommunikationskanal mit der Speicherkomponente gekoppelt ist, eine Steuerung und JTAG Schnittstelle in dem mindestens einen Array von Speicherzellen und mindestens ein zusätzliches Register in der Steuer- und JTAG-Schnittstelle zum Handhaben von Daten, Adressen und Steuersignalen, die von der Host-Vorrichtung bereitgestellt werden. Das zusätzliche Register ist konfiguriert, um mindestens eine dem Array von Speicherzellen zugeordnete Seitenadresse zu speichern, die Speicherkomponente ist konfiguriert, die Seitenadresse beim Einschalten der Vorrichtung zu laden, und die Host-Vorrichtung ist konfiguriert, eine Lesesequenz durchzuführen unter der genannten Seitenadresse. Eine entsprechende nichtflüchtige Speichervorrichtung und ein entsprechendes Verfahren werden offenbart.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf Speichervorrichtungen und insbesondere auf Vorrichtungen und Verfahren zur Verwaltung nichtflüchtiger Speicher. Insbesondere betrifft die vorliegende Offenbarung eine JTAG-basierte Architektur, die einen Mehrkernbetrieb in einer nichtflüchtigen Speichervorrichtung ermöglicht.
  • 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), selbstwählende Speicher auf Chalkogenidbasis, resistiver Direktzugriffsspeicher (RRAM), 3D-XPoint-Speicher (3DXP) und magnetoresistiver Direktzugriffsspeicher (MRAM), unter anderem.
  • 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 Speicherteils verbessert, während sie eine niedrige anfängliche Latenz beim ersten Zugriff hat, insbesondere beim Systemstart, und die Verbesserung der Gesamtdurchsatz.
  • Figurenliste
    • 1 zeigt eine schematische Ansicht eines Host-Geräts, beispielsweise eines System-on-Chip, das mit einer nichtflüchtigen Speicherkomponente gemäß Ausführungsformen der vorliegenden Offenbarung gekoppelt ist;
    • 2 ist eine schematische Ansicht des internen Layouts eines Speicherabschnitts von 1 gemäß einer Ausführungsform der vorliegenden Offenbarung ist;
    • 2A ist eine schematische Ansicht eines Speicherblocks, der aus einer Vielzahl von Zeilen eines Speicherarrays gemäß einer Ausführungsform der vorliegenden Offenbarung besteht;
    • 3 zeigt eine schematische Ansicht eines Teils der nichtflüchtigen Speicherkomponente aus 1 mit einer Layout-Konfiguration gemäß der vorliegenden Offenbarung;
    • 4A ist eine schematische Ansicht eines Teils des in 2 gezeigten Speicherteils;
    • 4B 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;
    • 5 ist eine schematische Ansicht einer JTAG-Zelle, die gemäß der vorliegenden Offenbarung modifiziert wurde;
    • 6 zeigt eine schematische Ansicht einer Standardstrukturarchitektur mit Boundary-Scan-Zelle, die nach dem IEEE-Standard Nr. 1149.1 konfiguriert ist, jedoch die modifizierten JTAG-Zellen von 5 enthält;
    • 7 ist ein Diagramm, das schematisch detaillierter die Zusammensetzung von Registern zeigt, die in eine Boundary-Scan-Architektur der vorliegenden Offenbarung integriert sind;
    • 8 zeigt ein Diagramm, das die Operationen einer Finite State Machine basierend auf dem JTAG-Protokoll berichtet;
    • 9 zeigt eine schematische Ansicht von Adressregistern eines Unterarrays gemäß der vorliegenden Offenbarung; und
    • 10 zeigt ein Diagramm eines Verfahrens 1000 gemäß 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.
  • Genauer gesagt umfasst eine beispielhafte Vorrichtung, wie im Folgenden detailliert beschrieben wird, eine Speicherkomponente mit einer unabhängigen Struktur und umfasst mindestens ein Array von Speicherzellen mit zugehöriger Decodier- und Leseschaltung einer Leseschnittstelle, eine Host-Vorrichtung, die mit die Speicherkomponente über mindestens einen Kommunikationskanal, eine JTAG-Schnittstelle in dem mindestens einen Array von Speicherzellen, mindestens ein zusätzliches Register in der JTAG-Schnittstelle zum Hand.h.aben von Daten, Adressen und Steuersignalen, die von der Host-Vorrichtung bereitgestellt werden. Das zusätzliche Register ist konfiguriert, um mindestens eine dem Array von Speicherzellen zugeordnete Seitenadresse zu speichern, die Speicherkomponente ist konfiguriert, die Seitenadresse beim Einschalten der Vorrichtung zu laden, und die Host-Vorrichtung ist konfiguriert, eine Lesesequenz durchzuführen unter der genannten Seitenadresse.
  • Unter Bezugnahme auf diese Figuren werden hier Vorrichtungen 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 90 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 Decodierungsschaltungen 8, die sich an der Peripherie des Arrays befinden.
  • 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. Die Speicherkomponente 1 ist 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 des überlappenden, strukturell unabhängigen Speicherteils 1 verwendet wurde.
  • 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 ist eine unabhängige Struktur, 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 wurde 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 sind die Pads über dem Array angeordnet, so dass, wenn die Speicherkomponente 1 umgekehrt wird, ihre Pads den entsprechenden Pads der SoC-Struktur 10 zugewandt sind. Der Halbleiterbereich der in bekannten System-on-Chip-Vorrichtungen von dem eingebetteten nichtflüchtigen Speicherabschnitt eingenommen wurde, ist dem Gehäuse der Verbindungspads entsprechend den Pads der Speicherkomponente 1 gewidmet. Die Pads sind auf der Logik aufgebaut, ähnlich wie beim 3DN, und implementieren die CMOS-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 erfolgt durch die Verbindung einer Vielzahl von entsprechenden Pads oder Stiftanschlüssen, die einander in einem Schaltungslayout zugewandt sind, das die Ausrichtung der Pads beibehält, selbst wenn die Größe der Speicherkomponente 1 geändert wird.
  • Auch eine größere Speicherkomponente 1 kann mit den Pads der SoC-Struktur 10 abgestützt und 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 ein SoC/Flash-Array mit direkter Verbindung sein, wobei die Leseverstärker mit dem SoC in einer Konfiguration mit direktem Speicherzugriff für Benutzermodi mit hochfrequenten Zugriffen verbunden sind.
  • Um die Speicherzellen des Arrays zu lesen, wird ein dedizierter Schaltungsabschnitt 90 bereitgestellt, der eine optimierte Lese-Finite-State-Maschine enthält, die verwendet wird, um eine hohe Leseleistung sicherzustellen, wie z.B. Verzweigungsvorhersage, Abruf/Vorabruf, Unterbrechungsmanagement. Die Fehlerkorrektur wird als Operation dem SoC 10 überlassen; die zusätzlichen Bits werden dem Controller bereitgestellt, um jedes mögliche ECC-Syndrom zu speichern, das der Seite zugeordnet ist. 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.
  • Die Speicherkomponente 1 verwendet die Verbindungspads und den Logikschaltungsabschnitt, um die Verbindung mit der SoC-Struktur 10 zu ermöglichen.
  • Die endgültige Konfiguration wird wie bereits gezeigt ein SoC/Flash-Array mit direkter Verbindung sein, wobei die Leseverstärker 9 der Speicherkomponente 1 mit dem SoC in einer Konfiguration mit direktem Speicherzugriff wie z.B. Verzweigungsvorhersage, Abruf/Vorabruf, Unterbrechungsmanagement. 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 Latenzzeit auch 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 90 als eine Sammlung von Unterarrays 200 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.
  • Die Host-Vorrichtung oder das System-on-Chip 10 beinhaltet normalerweise mehr als einen Kern und jeder Kern ist an einen entsprechenden Bus oder Kanal zum Empfangen und Übertragen von Daten an die Speicherkomponente 1 gekoppelt. Jedes Unterarray 200 hat Zugang zu einem entsprechenden Kanal zur Kommunikation mit einem entsprechenden Kern des System-on-Chip.
  • 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.
  • Darüber hinaus ist in einer Ausführungsform der vorliegenden Offenbarung jedes Speicherunterarray 200 in Speicherblöcken 260 strukturiert. Die Architektur eines Speicherblocks 260, der jede Stelle des Speicherarrays umfasst, kann als erweiterte Seite oder Superseite 250 definiert werden, wie schematisch in 2A gezeigt.
  • Als nicht einschränkendes Beispiel umfasst diese erweiterte Seite 250 einen String, der eine erste Gruppe von mindestens N Bits umfasst, zum Beispiel einhundertachtundzwanzig (128) Bit für den E/A-Datenaustausch mit dem SoC-Gerät 200 plus bei mindestens eine zweite Gruppe von M Bits, beispielsweise vierundzwanzig (24) Adressbit und eine letzte oder dritte Gruppe von mindestens R Bits, beispielsweise sechzehn (16) ECC-Bit. Das M-Adress-Bit (im Beispiel die 24 Adress-Bits) reichen aus, um bis zu 2 GigaBit verfügbaren Speicherplatzes zu adressieren.
  • Anders gesagt, die herkömmliche atomare Seite von 128 Bit, die in jedem Unterarray 200 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.
  • Gemäß der vorliegenden Offenbarung bereiten die Ausgänge der Leseverstärker SA jeweils eine doppelt erweiterte Seite vor, d.h. eine Superseite 250 mit einer Anzahl von Bits, die durch die doppelte Kombination der oben erwähnten drei Gruppen von Datenbits gegeben sind, Adresse Bits und ECC-Bits, entsprechend der Größe des Speicherarrays.
  • In dem hiermit offenbarten spezifischen, aber nicht einschränkenden Beispiel enthält jede erweiterte Seite 250 mindestens 168 Bit, die durch die Kombination der obigen drei Gruppen von N+M+R = 128 + 24 + 16 Daten, Adresse und ECC-Bit erhalten werden, und jedes Superseite wird durch ein paar erweiterte Seiten gebildet, d.h. eine Gruppe von 168 x 2 Bits.
  • Um nur ein nicht einschränkendes numerisches Beispiel zu geben, enthält jede Zeile eines Speicherblocks 260 sechzehn erweiterte Seiten. Daher enthält die resultierende Zeile 2688 Bit, die aus der Kombination von sechzehn erweiterten Seiten stammen, die unabhängig adressierbar sind und jede davon 168 Bit enthält, oder, anders gesagt, die Kombination von acht Superseiten.
  • In Ausführungsformen der vorliegenden Offenbarung wird die Ausgabe eines generischen Unterarrays gebildet, indem die folgende Sequenz kombiniert wird: N Datenzellen plus M Adresszellen plus R ECC-Zellen. In diesem nicht einschränkenden Beispiel würde die Gesamtmenge der Bits 168 Pads pro Kanal umfassen.
  • Der kombinierte String aus Datenzellen + Adresszellen + ECC-Zellen ermöglicht die Implementierung der Sicherheitsabdeckung des Busses gemäß den Standardanforderungen, da der ECC die gesamte Buskommunikation (Datenzellen + Adresszellen) abdeckt, während das Vorhandensein der Adresszellen gewährleistet die Gewissheit, dass die Daten genau von der adressierten Stelle des Verantwortlichen kommen.
  • Nun wird mit spezifischerer Bezugnahme auf das Beispiel von 3 die Hauptstruktur der Speicherkomponente 310 gemäß einer Ausführungsform der vorliegenden Offenbarung offenbart, wobei die Referenz 310 von 3 der Referenz 90 von 2 entspricht.
  • Die Speicherkomponente 310 umfasst mindestens: eine IO-Schaltung, einen Mikrosequenzer, ein Array von Speicherzellen 320, ein Array-Peripheriegerät, eine Ladungspumpenarchitektur, Adressdecoder, Leseverstärker und entsprechende Zwischenspeicher, eine Dienstlogik zum Verbinden aller Teile des Speichers und eine Befehlsbenutzerschnittstelle, beispielsweise ein CUI-Block.
  • Das Array von Speicherzellen 320 enthält nichtflüchtige Flash-Speicherzellen.
  • In einer Ausführungsform der vorliegenden Offenbarung implementiert die Speicherkomponente 310 einen Speicher vom Typ mit direktem Speicherzugriff, um das eingebettete Speicherarray bekannter SoC-Vorrichtungen zu ersetzen.
  • Darüber hinaus sieht die Offenlegung die Implementierung des Speicherbauelements 310 in einem „Known Good Die“ (KGD)-Formfaktor oder Bare-Die vor, der es erlaubt, die Leseverstärkerausgänge, bis auf eine Zwischenspeicher-Struktur in der Mitte, direkt mit einem Controller der SoC-Struktur.
  • Darüber hinaus wird eine JTAG-Schnittstelle 350 für den Test der Speicherkomponente 310 verwendet, was die Wiederverwendung des Testwerkzeugs ermöglicht. Daher umfasst die Speicherkomponente 310 auch eine JTAG-Logik 350. Diese JTAG-Schnittstelle 350 wird später unter Bezugnahme auf 8 ausführlicher offenbart.
  • Genauer gesagt umfasst jedes Speicherarray mindestens eine JTAG-Schnittstelle 350, die als Eingänge Standard-JTAG-Signale empfängt: TMS, TCK, TDI sowie Daten von einer Speicherseite, wie in 8 gezeigt. Gemäß Ausführungsformen der vorliegenden Offenbarung, und Extended TDI wird als flexibler TDI verwendet. Die Flexibilität beruht auf der Tatsache, dass die Anzahl der parallelen Bits, die als TDI arbeiten, von den ausgewählten Registern abhängt, d.h. K (im Beispiel vier) Zeilen für das Befehlsregister, M Zeilen für das Adressregister, N Zeilen für die Daten Register usw., während TDI vom JTAG-Protokoll stammt, das TDI als Namen für das Signal verwendet, das zum Füllen der Register verwendet wird.
  • Diese JTAG-Schnittstelle 350 erzeugt als Ausgabe Daten, Adressen und Steuersignale, die an einen Speicheradressendecodierer 340 und auch an den internen Flash-Controller 300 übertragen werden, um Modifizierungs-, Test- und Verifizierungsoperationen durchzuführen.
  • Die Aktivität des Decoders 340 wird durch Ladungspumpen 330 zugelassen, die so strukturiert sind, dass sie die Spannungen und Zeitabläufe zum Verwalten des Arrays geheim halten. Die Dekodierungsphase treibt die Datenleitungen an, während die Ladungspumpen die vom Adressdecoder in die ausgewählten Datenleitungen geleitete Hochspannung bereitstellen.
  • Dieser Decoder 340 adressiert den ausgewählten Speicherblock. Der Adressdecoder ist mit dem Array verbunden, um die richtigen Datenleitungen auszuwählen, d.h. Zeile und Spalte für jede Superseite. das Lesen, Modifizieren und alle anderen Operationen verwenden den Adressdecoder, um Bytes im Speicherarrayrichtig zu adressieren.
  • Ein Speicherblock ist mit den Leseverstärkern verbunden und die Leseverstärker der Leseschnittstelle 360 sind mit der SoC-Vorrichtung 200 unter Verwendung modifizierter JTAG-Zellen verbunden. Der Kommunikationskanal zwischen den Flash-Array-Blöcken und dem SoC-Gerät 200 wird durch einen Steuer- und Statusbus repräsentiert.
  • Die Ausgabe der Leseschnittstelle 360 wird durch eine erweiterte Seite dargestellt, die die kombinierte Kette von Datenzellen + Adresszellen + ECC-Zellen enthält. Die Schreiboperation treibt auch die drei Komponenten (Datenzellen + Adresszellen + ECC-Zellen) der erweiterten Seite; der ECC und die Adresszellen dienen als Sicherheitsmechanismus, um die geringe Wahrscheinlichkeit von Fehlern zu gewährleisten.
  • Die Gesamtmenge von Bits würde in dem hiermit offenbarten Beispiel N+M+R Bits umfassen, beispielsweise einhundertachtundsechzig Pads pro Kanal in der hiermit offenbarten Implementierung.
  • Die Speicherkomponente 310 verwendet die Verbindungspads und den Logikschaltungsabschnitt, um die Verbindung mit der SoC-Struktur 200 zu ermöglichen.
  • Die endgültige Konfiguration wird ein SoC/Flash-Array mit direkter Verbindung sein, wobei die Leseverstärker der Speicherkomponente 310 mit dem SoC in einer Konfiguration mit direktem Speicherzugriff verbunden sind Die Verbindungen umfassen auch die JTAG-Schnittstelle und Steuerpins für Test- und andere Zwecke.
  • Auf diese Weise ist es möglich, die Anzahl der erforderlichen Verbindungen relativ gering zu halten, beispielsweise in dieser speziellen Offenbarung im Bereich von 600 bis 650 Pads, aber eine größere oder geringere Anzahl könnte von der Implementierung abhängen.
  • Das Speicherarray 320 der Speicherkomponente 310 ist als eine Sammlung von Unterarrays aufgebaut. Die Abtastketten können verbunden werden, um ein eindeutiges Schieberegister zu bilden, um die Verbindungen richtig zu testen.
  • Der Vorteil dieser Architektur besteht darin, dass sie sehr skalierbar ist, wobei sich das Erweitern und/oder Reduzieren der Dichte des Endgeräts nur in der Spiegelung eines Unterarrays und der Bereitstellung der entsprechenden Verbindungen in einer sehr skalierbaren Weise niederschlägt. Der Speicher kann auch erweitert werden, indem die Speichergröße pro Unterarray erhöht wird, ohne die Anzahl der Kanäle für den SoC zu erhöhen.
  • Der Direct Memory Access ermöglicht es, die endgültige Latenz, die der SoC beim Lesen der Daten erfahren kann, zu reduzieren.
  • Des Weiteren ist die Speicherkomponente 310 mit einem Controller 300 des Flash-Arrays 320 (im Folgenden als Flash-Array-Controller bezeichnet) ausgestattet, wobei der Flash-Array-Controller 300 eine Architektur aufweist, die es ermöglicht, einige Flash-Array-Ressourcen mit dem SoC-Controller zu teilen, ohne die Geheimhaltung bestimmter darin gespeicherter Informationen zu gefährden (z. B. Algorithmen, Blitzarrayspannungen, Ströme und mehr in allgemeinen Prozessinformationen) und garantiert ein eventuelles Kundenretourenmanagement.
  • Das Ergebnis der Speicherblöcke 260 wird direkt von der Host-Vorrichtung oder dem SoC 10 getrieben, 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 200 werden durch eine interne Schaltung einer Leseschnittstelle zwischengespeichert. Die Speicherstruktur kann erweitert werden, um mehrseitiges Lesen zu ermöglichen, während die bereits gelesene Seite herausgeschoben 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 strukturiert ist Bits.Aus diesem Grund hat man sich für eine Doppelseite von 2x128bitplus entsprechende Adressen und ECC-Bits entschieden, d.h. 168 Bit.
  • Dieser zweite Teil von vier Doppelwörtern wird an den Ausgang des Flash-Arrays 90 ü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 1oad-data [0, 1].... bei Verwendung der Superpage ist eine Adresserhöhung nicht erforderlich.
  • 4A zeigt eine schematische Ansicht eines Speicherabschnitts, bei dem die Unterarray 200-Architektur so strukturiert ist, dass sie mindestens einen Kanal der SoC-Struktur 10 bedient, dem die Speicherkomponente 1 zugeordnet ist.
  • Die Leseverstärker SA sind direkt mit modifizierten JTAG-Zellen 500 verbunden, die später mit Referenz auf 5 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.
  • Die Leseverstärker SA jedes Unterarrays 200 sind mit der Abtastkette 400 der modifizierten JTAG-Zellen 500 verbunden, wodurch alle Ausgänge eines Unterarrays 200 miteinander verbunden werden. Darüber hinaus können die Unterarray-Scan-Ketten 400 zu einer einzigen Kette verbunden werden, um die Integrität der Pad-Verbindungen schnell zu überprüfen.
  • Die JTAG-Zelle 500 ist wie in 4B gezeigt wie folgt verbunden:
    • PIN: Ausgang eines Leseverstärkers→
    • POUT: zum SoC-Korrespondenten Data I/O→
    • SIN: ist der serielle IN-Eingang, der mit dem SOUT des vorherigen Leseverstärkers verbunden ist→
    • SOUT: ist der serielle Ausgang, der mit dem SIN des nächsten Leseverstärkers verbunden ist→
  • Die von den miteinander verbundenen JTAG-Zellen 400 gebildete Scan-Kette 500 unter Verwendung der seriellen Ein- und Ausgänge hat einige Vorteile:
    • in der Lage sein, die erfolgreiche Verbindung zwischen dem SoC und dem Direct Memory Access (DMA)-Speicher zu testen;
    • in der Lage sein, einen digitalen Test der Leseverstärker zu implementieren, da die Zelle als Programmlast arbeiten kann, um die Daten innerhalb des Arrays zu speichern;
    • in der Lage sein, als zweite Ebene von Zwischenspeichern zu arbeiten.
  • Wir werden später in der vorliegenden Offenbarung sehen, dass, wenn die erste Gruppe von Datenbits bereit ist, an den parallelen Ausgang POUT des Leseverstärkers übertragen zu werden, ein interner Zwischenspeicher vorhanden ist, der mit dem Leseverstärker gekoppelt ist, der die Lesedaten des nachfolgenden Abschnitts der verbleibenden Datenbits triggert.
  • Unter weiterer Bezugnahme auf die Beispiele der 4A und 4B können wir die Verbindungen jeder JTAG-Zelle 500 betrachten: PIN ist mit dem Ausgang eines Leseverstärkers gekoppelt; POUT ist mit dem entsprechenden Daten-I/O des Host-Geräts 10 (d.h. dem System-on-Chip) gekoppelt; SIN ist der serielle IN-Eingang, der mit dem SOUT des vorherigen Leseverstärkers verbunden ist, während SOUT der serielle Ausgang ist, der mit dem SIN des nächsten Leseverstärkers verbunden ist.
  • Zum Beispiel zeigt das schematische Beispiel von 4B eine schematische und generische Speicherzelle MC, die an der Schnittstelle einer Reihe von Speicherzellen und einer Spalte von Speicherzellen in einer Matrix von Zellen einer generischen Untermatrix angeordnet ist, so dass die Zelle entsprechend adressiert werden kann. Die reale Implementierung kann zusätzliche Schaltungen von der Zelle zum Ausgang des SA enthalten, aber sie werden nicht als für die Zwecke der vorliegenden Offenbarung nicht relevant gezeigt.
  • 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. Allgemein gesprochen wird ein Speicherwort, das die oben erwähnte Superseite 150 enthält, auf einmal gelesen, und im vorliegenden Beispiel beziehen wir uns auf ein Speicherwort, die Daten + Adresse + ECC-Bits enthält.
  • Wie allgemein bekannt ist, besteht die Rolle des Leseverstärkers 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 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 500 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 500 eingefügt.
  • Dank der Speicherarchitektur der vorliegenden Offenbarung ist es möglich, von einem parallelen Modus zum Abrufen von Daten und Adressen aus den Speicherunterarrays 200 in einen seriellen Modus zum Prüfen der Verbindungen zwischen der Speicherkomponente 1 und der zugehörigen SoC-Vorrichtung 10 überzugehen. Darüber hinaus ist der SoC berechtigt, einmal ‚1‘ und einmal ‚0‘ zu lesen, um Tests durchzuführen, und kann auch das Speicherergebnis analysieren, indem er die Daten mit Hilfe der Scan-Kette ausliest.
  • Der Übergang vom parallelen zum seriellen Modus wird von der Steuer- und JTAG-Schnittstelle 300 gesteuert. Die Implementierung dieser Dual-Mode-Operationen wird jedoch durch die spezielle Struktur einer modifizierten JTAG-Zelle 500 ermöglicht, die nachfolgend offenbart wird.
  • Unter Bezugnahme auf das schematische Beispiel von 5 wird eine gemäß der vorliegenden Offenbarung modifizierte JTAG-Zelle 500 gezeigt.
  • Die JTAG-Zelle 500 hat einen ersten parallelen Eingangs-PIN-Anschluss und einen ersten seriellen Eingangs-SIN-Anschluss, der entsprechende Signale Pin und Sin empfängt. Darüber hinaus weist die JTAG-Zelle 500 einen ersten parallelen Ausgangsanschluss POUT und einen ersten seriellen Ausgangsanschluss SOUT auf. Die Scan-Chain 400 ermöglicht die Ausgabe der gesamten 256 Bit, da die erste Gruppe direkt vom Ausgang gelesen wird, während die zweite Gruppe im Hintergrund vorbereitet wird.
  • SOUT ist mit dem JTAG-Zwischenspeicher in der Nähe des Multiplexers verbunden, der das Selektorsignal hat: Mode Controller (seriell/parallel). Grundsätzlich ist der Draht, der an den Eingang ‚1‘ dieses Multiplexers angeschlossen ist, auch der SOUT.
  • Wie in 5 gezeigt, kann die JTAG-Zelle 500 als eine Box mit zwei Eingangsanschlüssen PIN und SIN und zwei Ausgangsanschlüssen POUT und SOUT betrachtet werden. Der Eingangsanschluss PIN ist ein paralleler Eingang, während der Eingangsanschluss SIN ein serieller Eingang ist. In ähnlicher Weise ist der Ausgangsanschluss POUT ein paralleler Ausgang, während der Ausgangsanschluss SOUT ein serieller Ausgang ist.
  • Dank der seriellen Eingabe und Ausgabe kann ein Testprozess durchgeführt werden, um zu überprüfen, ob keine Fehlerverbindung zwischen der Speicherkomponente 1 und dem zugehörigen System-on-Chip 10 vorhanden ist. Dank des parallelen Ein- und Ausgangs wird dieselbe JTAG-Zelle als Datenpuffer für die Beendigung der Lesephase durch die Leseverstärker SA verwendet.
  • Die JTAG-Zelle 500 umfasst eine Boundary-Scan-Basiszelle 580 mit einem Paar Zwischenspeicher 501 und 502 und einem Paar Multiplexern 551 und 552. Ein erster Eingangsmultiplexer 551 und ein zweiter Ausgangsmultiplexer 552.
  • Die Boundary-Scan-Basiszelle 580 wird durch den gestrichelten Kasten in 5 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 551 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 551 wird durch ein Steuersignal ShiftDR gesteuert und hat einen Ausgang MO1. Die Zelle 500 hat zwei parallele Ausgänge, d.h. MO1 und MO2. Wenn der JTAG-Takt ankommt, wird der serielle Ausgang aus dem SOUT getrieben. SOUT ist mit dem JTAG-Zwischenspeicher in der Nähe des Multiplexers verbunden, der ein Selektorsignal empfängt: Mode Controller (seriell/parallel). Grundsätzlich ist der Ausgang des mit dem Eingang ‚1‘ dieses Multiplexers MO2 verbundenen Zwischenspeichers auch der SOUT.
  • Der erste Multiplexerausgang MO1 ist mit einem ersten Eingang des ersten Zwischenspeichers 501 verbunden, der an einem zweiten Eingangsanschluss ein Taktsignal ClockDR empfängt.
  • Der erste Zwischenspeicher 501 ist in Kette mit dem zweiten Zwischenspeicher 502 verbunden, wobei ein erster Ausgang des ersten Zwischenspeichers 501 mit einem ersten Eingang des zweiten Zwischenspeichers 502 verbunden ist.
  • Es ist wichtig zu beachten, dass der Ausgang des ersten Zwischenspeichers 501 auch der serielle Ausgang SOUT der gesamten JTAG-Zelle 500 ist.
  • Ein zweiter Eingangsanschluss des zweiten Zwischenspeichers 502 empfing ein Signal UpdateDR.
  • Der zweite Zwischenspeicher 502 hat einen Ausgang, der mit einem Eingang des zweiten Multiplexers 552 verbunden ist, insbesondere mit seinem zweiten Eingang.
  • Dieser zweite Multiplexer 552 wird durch ein Modussteuersignal gesteuert, das es ermöglicht, die gesamte JTAG-Zelle 500 von einem seriellen in einen parallelen Modus und umgekehrt umzuschalten.
  • In einer Ausführungsform der vorliegenden Offenbarung beinhaltet die JTAG-Zelle 500 ferner ein weiteres Paar von Zwischenspeichern 521 und 522, die zwischen dem parallelen Eingangspin und dem zweiten Multiplexer 552 bereitgestellt sind. Diese zusätzlichen Zwischenspeicher 521 und 522 sind das Zwischenspeichern des direkten Lesens, d.h. der ersten Gruppe von Datenbits, und des Schattens, d.h. der zweiten Gruppe von 128 Datenbits (ohne Berücksichtigung der Adressbits und des ECC). Mit anderen Worten beinhaltet die JTAG-Zelle 500 die Boundary-Scan-Zelle 580 und mindestens die weiteren Zwischenspeicheres 521 und 522.
  • Wir werden diese weiteren Zwischenspeicher im Folgenden als einen dritten Zwischenspeicher 521 und einen vierten Zwischenspeicher 522 bezeichnen. In anderen Ausführungsformen kann eine längere Kette von Zwischenspeichern verwendet werden.
  • Insbesondere sind der dritte Zwischenspeicher 521 und der vierte Zwischenspeicher 522 in einer kleinen Pipeline-Konfiguration verbunden, wobei der dritte Zwischenspeicher 521 an einem ersten Eingang das parallele Eingangssignal Pin von dem ersten parallelen Eingangsanschluss PIN empfängt und an einem zweiten Eingang ein Signal Data_Load‘ empfängt [0] entsprechend dem zuvor erwähnten AVD-Signal und einer ersten Datenladung.
  • Der vierte Zwischenspeicher 522 empfängt an einem ersten Eingang die Ausgabe des dritten Zwischenspeicher 521 und empfängt an einem zweiten Eingang ein Signal Data_Load[1] (immer das AVD-Signal), das einem nachfolgenden Datenladen entspricht.
  • Der Ausgang des vierten Zwischenspeichers 522 ist mit dem ersten Eingang „0“ des zweiten Multiplexers 552 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 500 der vorliegenden Offenbarung aufgrund des Vorhandenseins der zwei zusätzlichen Zwischenspeicher, des dritten und des vierten Zwischenspeichers 521 und 522, neben dem Vorhandensein der Boundary-Scan-Zelle 580 als eine modifizierte JTAG-Zelle betrachtet werden.
  • Nun müssen wir uns vorstellen, dass eine JTAG-Zelle 500 an den Ausgang jedes Leseverstärkers SA des Speicherunterarrays 200 gekoppelt ist. Wie üblich stellt das Speicherarray einen Leseverstärker für jede Spalte von Speicherzellen bereit, wie in 4B gezeigt.
  • In der Ausführungsform der vorliegenden Offenbarung sind alle mit den Leseverstärkern eines Speicherunterarrays gekoppelten JTAG-Zellen 500 als ein Datenpuffer zu betrachten, der eine Datenseite umfasst, einschließlich in diesem Beispiel mindestens einhundertachtundzwanzig (128) Bits (immer ohne die Adressbits und die ECC-Bits) zum gleichzeitigen Lesen einer kombinierten Speicherseite aus den vier Unterarrays 200.
  • Wie zuvor berichtet, kann der Kommunikationskanal zwischen der Speicherkomponente und der SoC-Struktur jedoch bis zu 256 Bits gleichzeitig benötigen (d.h. zwei kombinierte Speicherwörter) und die JTAG-Zelle 500 wurde nur modifiziert, um die internen Latches zu duplizieren, um in der Lage zu sein um den ersten oder höheren Teil der 128 Bits der zu lesenden Daten mit dem zweiten oder unteren Teil der zu lesenden Daten zu verschieben. 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 500 im Bedarfsfall erhöht werden kann, um die Anzahl von Bits zu verbessern, die über den Kommunikationskanal an die SoC-Struktur zu übertragen sind. Zum Beispiel kann die obige Struktur entsprechend der Größe der Seite erweitert werden, die von der speziellen Implementierung des Speichercontrollers benötigt wird.
  • 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 521 oder 522 geladen werden, sich der andere Zwischenspeicher im Bereitschaftszustand befindet, aber bereit ist, den nachfolgenden Datenteil zu empfangen.
  • Daher wird der erste Abschnitt mit 128 Bit für eine erste Datenausarbeitung in die SoC-Struktur übertragen, während die Lesephase nicht gestoppt wird, da der andere Teil von 128 Bits zum Laden in die Zwischenspeicher beim nachfolgenden Taktsignal vorbereitet ist.
  • In diesem Beispiel enthält jeder Datenpuffer 128 modifizierte JTAG-Zellen 500 und das gemeinsame Data_Load[1:0] sind Signale, die erzeugt werden, um die Erfassung der gesamten 256 Bits zu ermöglichen, das heißt: acht Doppelworte DWs gemäß der vorgeschlagenen Implementierung (vier Unterarrays für jedes Doppelwort).
  • 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.
  • Das Vorhandensein der modifizierten JTAG-Zelle 500 ist als Ausgabe der Leseverstärker besonders wichtig, da sie Folgendes ermöglicht:
    • Verwenden des Boundary-Scans als Verfahren zum Überprüfen der Verbindung zwischen dem SoC 10 und der Flash-Array-Komponente 1;
    • Implementieren Sie den direkten Speicherzugriff, indem Sie den Leseverstärker direkt mit dem Controller verbinden;
    • Es ermöglicht, den Leseverstärker zu verlassen, um die zweite 256-Bit-breite Seite plus die Adresse plus den ECC vorzubereiten und dicht an die Seite zu schreiben.
  • Ein weiterer Vorteil ergibt sich aus der Möglichkeit, eine Boundary-Scan-Testarchitektur mit modifizierten JTAG-Zellen 500 zu verwenden, wodurch eine neue und besondere Boundary-Scan-Testarchitektur wie die in der schematischen Ansicht von 6 gezeigte erhalten wird. Dies ist ein weiterer Vorteil, da für diesen Test nur ein getriebener Ausgang benötigt wird, der durch das Signal TCK und die in den Zellen gespeicherten Daten gewonnen wird. Der Scan-Ketten-Test erfordert, dass der SoC 10 die Ausgabe der Scan-Kette testet.
  • Boundary Scan ist in diesem speziellen technischen Gebiet bekannt und umfasst eine Familie von Testmethoden, die darauf abzielen, viele Testprobleme zu lösen: von der Chipebene bis zur Systemebene, von Logikkernen bis hin zu Verbindungen zwischen Kernen und von digitalen Schaltungen bis hin zu Analog- oder Mixed-Mode Schaltungen.
  • Die Boundary-Scan-Testarchitektur 600 stellt ein Mittel zum Testen von Verbindungen zwischen den integrierten Schaltungen 1 und 10 auf einer Platine bereit, ohne physische Testsonden zu verwenden. Es fügt eine Boundary-Scan-Zelle 500, die einen Multiplexer und Latches enthält, zu jedem Pin oder Pad auf dem Gerät hinzu.
  • Mit anderen Worten, jedes primäre Eingangssignal und jedes primäre Ausgangssignal eines komplexen Halbleiterbauelements wie der Speicherkomponente 1 oder des Hostbauelements 10 wird durch ein Mehrzweckspeicherelement ergänzt, das als Boundary-Scan-Zelle bezeichnet wird und insgesamt ein serielles Verschiebungsregister 650 um die Grenze des Geräts bildet.
  • Ursprünglich wurden diese Boundary-Scan-Zellen als Mittel zum Anwenden von Tests auf einzelne Halbleiterbauelemente eingeführt. Die Verwendung von Boundary-Scan-Zellen zum Testen des Vorhandenseins, der Orientierung und des Bondens von Bauelementen an Ort und Stelle auf einer Leiterplatte war die ursprüngliche Motivation für den Einbau in ein Halbleiterbauelement.
  • Gemäß der vorliegenden Offenbarung werden die Boundary-Scan-Zellen 500 auch verwendet, um die Verbindungen zwischen integrierten Schaltkreisen zu testen, die zusammenarbeiten, wie beispielsweise das System-on-Chip 10 mit der zugehörigen Speicherkomponente 1, wie es im Fall der vorliegenden Offenbarung der Fall ist.
  • Die Ansammlung von Boundary-Scan-Zellen ist in einem Parallel-In- oder Parallel-Out-Schieberegister konfiguriert und der Boundary-Scan-Pfad ist unabhängig von der Funktion des Host-Geräts. Die erforderliche digitale Logik ist im Boundary-Scan-Register enthalten. Offensichtlich interagiert eine externe JTAG-FSM mit den Zellen, d.h. shiftDR, shiftIR, UpdateDR usw. werden von der JTAG-Logik 300 angesteuert.
  • Um die Funktionsweise einer Boundary-Scan-Zelle sehr kurz zusammenzufassen, kann gesagt werden, dass jede Zelle 500 zum Erfassen von Daten an ihrem parallelen Eingang PI strukturiert ist; Aktualisieren von Daten auf seinem parallelen Ausgang PO; serielles Abtasten von Daten von seinem seriellen Ausgang SO zum seriellen Eingang SI seines Nachbarn. Darüber hinaus verhält sich jede Zelle transparent in dem Sinne, dass PI an PO übergeht.
  • 6 zeigt eine schematische Ansicht einer Standardstrukturarchitektur unter Verwendung von Boundary-Scan-Zellen, die gemäß dem IEEE-Standard Nr. 1149.1 konfiguriert sind. Gemäß der vorliegenden Offenbarung sind die in der Architektur 600 verwendeten Boundary-Scan-Zellen jedoch die modifizierten JTAG-Zellen 500, die zuvor offenbart wurden.
  • Eine JTAG-Schnittstelle ist eine spezielle Schnittstelle, die einem Chip hinzugefügt wird. Gemäß den vorliegenden Ausführungsformen werden zwei, vier oder fünf Pins hinzugefügt, was es ermöglicht, den JTAG entsprechend dem Bedarf der vorliegenden Implementierung zu erweitern.
  • Die Anschlussstifte sind: TDI (Test Data In); TDO (Testdatenausgang); TCK (Testtakt); TMS (Test Mode Select) und ein optionales TRST (Test Reset).
  • Der TRST-Pin ist ein optionaler Active-Low-Reset für die Testlogik, normalerweise asynchron, aber manchmal synchron, je nach Chip. Wenn der Pin nicht verfügbar ist, kann die Testlogik zurückgesetzt werden, indem mit TCK und TMS synchron in den Reset-Zustand geschaltet wird. Beachten Sie, dass das Zurücksetzen der Testlogik nicht unbedingt das Zurücksetzen von etwas anderem impliziert. Es gibt im Allgemeinen einige prozessorspezifische JTAG-Operationen, die den gesamten oder einen Teil des zu debuggenden Chips zurücksetzen können.
  • Da nur eine Datenleitung zur Verfügung steht, ist das Protokoll seriell. Der Takteingang liegt am TCK-Pin. Bei jeder ansteigenden TCK-Taktflanke wird ein Datenbit vom TDI ein- und aus dem TDO übertragen. Es können verschiedene Anweisungen geladen werden. Anweisungen für typische ICs können die Chip-ID lesen, Eingangspins abtasten, Ausgangspins des Laufwerks (oder Float) lesen, Chipfunktionen manipulieren oder umgehen (TDI an TDO weiterleiten, um Ketten mehrerer Chips logisch zu verkürzen).
  • Wie bei jedem getakteten Signal müssen dem TDI präsentierte Daten für eine bestimmte chipspezifische Setup-Zeit vor und für eine Haltezeit nach der entsprechenden (hier steigenden) Taktflanke gültig sein. TDO-Daten sind für einige chipspezifische Zeit nach der fallenden Flanke von TCK gültig.
  • 6 zeigt einen Satz von vier dedizierten Testpins - Test Data In (TDI), Test Mode Select (TMS), Test Clock (TCK), Test Data Out (TDO) - und einen optionalen Testpin Test Reset (TRST).
  • Diese Pins werden gemeinsam als Test Access Port (TAP) bezeichnet. Die Architektur 600 enthält jedoch eine endliche Zustandsmaschine, die als TAP-Controller 670 bezeichnet wird und als Eingaben drei Signale empfängt: TCK, TMS und TRST. Die TAP-Steuerung 670 ist eine Endzustandsmaschine FSM mit 16 Zuständen, die jeden Schritt der Operationen der Boundary-Scan-Architektur 600 steuert. Jeder von der Boundary-Scan-Architektur 600 auszuführende Befehl wird im Befehlsregister 620 gespeichert.
  • 6 zeigt eine Vielzahl von Boundary-Scan-Zellen 500 an den primären Eingangs- und primären Ausgangspins der Vorrichtung. Die Zellen 500 sind intern verbunden, um ein serielles Boundary-Scan-Register 650 zu bilden. Mit anderen Worten werden die modifizierten JTAG-Zellen 500 als Bausteine der Boundary-Scan-Architektur 600 verwendet.
  • Daten können auch im seriellen Modus um das Boundary-Scan-Schieberegister 650 verschoben werden, beginnend mit einem dedizierten Geräteeingangspin namens „Test Data In“ (TDI) und endend an einem dedizierten Geräteausgangspin namens „Test Data Out“ (TDO). am Ausgang eines Multiplexers 660.
  • Der Testtakt TCK wird selektiv an jedes Register gesendet, abhängig vom TAP-Zustand und der Registerauswahl; die Zuführung des TCK-Signals erfolgt über einen dedizierten Geräteeingangspin und der Betriebsmodus wird durch ein dediziertes serielles „Test Mode Select“ (TMS)-Steuersignal gesteuert.
  • Das Befehlsregister (IR) 620 enthält n-Bit (mit n 2) und ist zum Halten jedes aktuellen Befehls implementiert.
  • Nach dem Standard IEEE 1149 wird die Architektur durch ein 1-Bit-Bypass-Register 640 (Bypass) vervollständigt; ein optionales 32-Bit-Identifikationsregister 630 (Ident), das mit einem permanenten Geräteidentifikationscode geladen werden kann.
  • Zu jeder Zeit kann nur ein Register von TDI zu TDO verbunden werden (z.B. IR, Bypass, Boundary-Scan, Ident oder sogar ein geeignetes internes Register der Kernlogik). Das ausgewählte Register wird durch die dekodierte Ausgabe des IR identifiziert. Bestimmte Befehle sind obligatorisch, wie beispielsweise Extest (Boundary-Scan-Register ausgewählt), während andere optional sind, wie z. B. der Idcode- Befehl (Ident-Register ausgewählt).
  • Ein paralleler Ladevorgang wird als „Capture“-Operation bezeichnet und bewirkt, dass Signalwerte an Geräteeingangsstiften in Eingangszellen und Signalwerte, die von der Kernlogik zu Geräteausgangsstiften gelangen, in Ausgangszellen geladen werden.
  • Eine parallele Entladeoperation wird als „Aktualisierungs“-Operation bezeichnet und bewirkt, dass Signalwerte, die bereits in den Ausgangsabtastzellen vorhanden sind, durch die Geräteausgangspins ausgegeben werden. Darüber hinaus erlaubt ein PAUSE-Befehl, die Daten im Register zu halten, selbst wenn er nicht abgeschlossen ist.
  • Abhängig von der Natur der Eingangsscanzellen werden bereits in den Eingangsscanzellen vorhandene Signalwerte in die Kernlogik geleitet.
  • Nun wird in einer Ausführungsform der vorliegenden Offenbarung die Boundary-Scan-Architektur 600 mit einem weiteren oder mehr als einem zusätzlichen Register 780 vervollständigt, das speziell bereitgestellt wird, um die Speicherkomponente 1 zu verwalten. Dieses zusätzliche Register 780 ist ebenfalls vom Benutzer definierbar. Diese Erweiterung wird durch den IEEE 1532-Standard zugelassen.
  • 7 zeigt detaillierter die Zusammensetzung der Register, die in die Boundary-Scan-Architektur 600 der vorliegenden Offenbarung integriert sind. In dieser 7 ist das Boundary-Scan-Schieberegister 750 mit dem TDI-Pin im seriellen Modus gekoppelt und liefert eine Ausgabe in Richtung des TDO-Ausgangspins über den Multiplexer 740.
  • Der Testtakt TCK wird über noch einen weiteren dedizierten Geräteeingangspin eingespeist und der Betriebsmodus wird durch ein dediziertes serielles „Test Mode Select“ (TMS)-Steuersignal gesteuert, die beide an den TAP-Controller 770 angelegt werden.
  • Die verschiedenen dem Befehl zugeordneten Steuersignale werden dann von einem Decoder 790 bereitgestellt.
  • Das Befehlsregister (IR) 720 enthält n-Bit (mit n 2) und ist zum Halten jedes aktuellen Befehls implementiert. Die Architektur umfasst ein 1-Bit-Bypass-Register (in 7 nicht gezeigt) und das Identifikationsregister 730.
  • Das zusätzliche Register 780 wird als Schiebedatenregister verwendet, um die Interaktion mit dem Kern des Host-Geräts in der Schreib- und/oder Lesephase des Speicherbausteins zu ermöglichen. Das benutzerdefinierbare Register kann sogar unterschiedlich sein. Je nach geladenem Befehl im IR können verschiedene Register kombiniert werden. Um den Speicher zu programmieren, kann es zum Beispiel notwendig sein, über mindestens folgende Register zu verfügen: ein Datenregister mit der Größe der zu programmierenden Mindestseite im Speicherfeld, eine Datenadresse, die enthält, welche Adresse geladen werden kann, und gegebenenfalls ein Maskenregister, um zu vermeiden, dass ein Teil der Daten berührt wird, sowie andere Dinge.
  • Nun basiert die durch den TAP-Controller 670 oder 770 repräsentierte Befehlsbenutzerschnittstelle auf der IEEE 1149, die eine Schnittstelle mit niedriger Signalanzahl implementiert, d.h. TMS, TCK, TDI, TDO, TRST (optional) mit der Fähigkeit, den internen Inhalt der zugeordnetes SpeicherUnterarray 200 zu verändern.
  • Ein weiterer Vorteil ist die Möglichkeit, eine Boundary-Scan-Testarchitektur mit modifizierten JTAG-Zellen 500 zu verwenden, wodurch eine neue und besondere Boundary-Scan-Testarchitektur wie in der schematischen Ansicht von 6 erhalten wird. Darüber hinaus wird für diesen Test nur ein getriebener Ausgang benötigt, und zwar unter Verwendung des TCK und der in den Zellen gespeicherten Daten, z. B. wenn der SoC für den Scan-Ketten-Test den Ausgang der Scan-Kette testen muss.
  • Um die Funktionsweise einer Boundary-Scan-Zelle sehr kurz zusammenzufassen, kann gesagt werden, dass jede Zelle 500 zum Erfassen von Daten an ihrem parallelen Eingang PI strukturiert ist; Aktualisieren von Daten auf seinem parallelen Ausgang PO; serielles Abtasten von Daten von seinem seriellen Ausgang SO zum seriellen Eingang SI seines Nachbarn. Darüber hinaus verhält sich jede Zelle transparent in dem Sinne, dass PI an PO übergeht.
  • Wie in 8 gezeigt, basiert der Standard IEEE1149.1 auf einer TAP-Finite-State-Machine, die sechzehn Zustände umfasst, von denen zwei, d.h. Schiebebefehlsregister (ShiftIR) und Schiebedatenregister (ShiftDR), die Interaktion mit dem System beim Schreiben und/oder Lesen ermöglichen.
  • 8 zeigt schematisch den Testzugriffsport-TAP 800 als eine endliche Zustandsmaschine, die alle Operationen bezüglich des Testens einer integrierten Schaltung wie einer Speichervorrichtung übernimmt.
  • Die an den TMS-Pin angelegte Folge von Logiksignalen „0“ und „1“ steuert den Betrieb der Chiparchitektur durch die Boundary-Scan-Struktur.
  • Beginnen wir mit dem Reset-Zustand der Testlogik, der beim Einschalten der Schaltung mit der Nummer 810 angezeigt wird. In diesem speziellen Zustand befinden sich alle Boundary-Scan-Zellen in einem sogenannten transparenten Zustand, wobei der parallele Eingang PIN intern mit dem parallelen Ausgang POUT verbunden ist und alle Eingangspins mit dem Kern der integrierten Schaltung verbunden sind.
  • Durch Ansteuern einer entsprechenden Folge von logischen Werten „1“ und „0“ als TMS-Signal ist es möglich, den Ausgangsmultiplexer so einzustellen, dass der TDI-Eingang als erster Befehl verschoben wird, um das Ausgangs-TDO zu erhalten.Das TMS-Signal sollte den TAP FSM in den Zustand ShiftDRoder ShiftIR treiben, um das TDI und das TDO mit einem Register zu verbinden.
  • Um eine Anweisung zu verschieben, müssen wir in den Zustand ShiftlR mit der Nummer 830 gehen und um diesen Zustand zu erreichen, müssen wir die folgende Sequenz anwenden: Durch Setzen von 0 als TMS und Ansteuern eines Taktimpulses an TCK erreichen wir den Run/Idle-Zustand 820.
  • Wenn wir nun eine „1“ aus dem Zustand 820 auswählen, gehen wir zu einer Auswahl eines Datenregisterscans 840 und zu einem Befehlsregisterscan 845 über. Mit einer weiteren „0“ auf dem TMS erreichen wir die Capture-Phase des Instruction Register 850.
  • Die Fangphase ermöglicht das Fangen an zwei letzten Bits des Befehlsregisters 720 in 7; wie gesagt, die Erfassungsoperation verwendet die parallele Eingabe.
  • Eine weitere „0“ führt zum Shift IR, der es ermöglicht, den Eingangswert TDI an den Ausgangs-TDO zu übergeben; der TDI-Wert am Eingang erscheint nach einer Anzahl von Takten gleich der Registergröße.
  • Wenn wir das TMS auf „0“ halten, können wir im Shift IR-Zustand 830 bleiben, was es ermöglicht, die am TDI-Pin empfangenen Bits zum Ausgangs-TDO zu verschieben.
  • Es ist möglich, in diesem Zustand 830 für den gesamten Taktzyklus zu bleiben, der benötigt wird, um alle Eingangsbits zu verschieben.
  • Wir bleiben im ShiftIR-Zustand 830 für eine Anzahl von Taktzyklen, die der Anzahl von Bits des IR 720 minus eins entspricht. Am Ende der Sequenz wird der Exit-1-IR-Zustand 855 erreicht.
  • Von diesem Ausgangszustand 855 gehen wir in einen Aktualisierungszustand 860 über, der ein „1“-TMS ansteuert, und dies ist der Moment, in dem der neue Befehl gültig wird. Die Boundary-Scan-Zellen werden in den Testmodus zurückversetzt, wobei die Eingangspins von der Kernschaltung isoliert sind.
  • Es ist jetzt möglich, den Testvektor an die Kernschaltung zu senden, indem der Shift-DR-Zustand 870 erreicht wird.
  • Die Zustände des Datenregisters ähneln den Zuständen der Befehlsregister.
  • Daher können wir mit der Sequenz 1-0-0 den ShiftDR-Zustand 870 erreichen.
  • Beim Durchlaufen des Capture DR 875 wird der erste Multiplexer MO1 der Boundary-Scan-Zelle mit dem parallelen Eingang PIN verbunden und alle Eingangspins des Boundary-Scan-Registers haben ihren Eingangswert erfasst.
  • Geht man nun zum Shift DR 870 über, ändert der Multiplexer seinen Zustand und ermöglicht es, den seriellen Eingang SIN zu erfassen, und der Abtastpfad wird vom TDI-Eingang durch das Boundary-Scan-Register zum Ausgangspin TDO verschoben.
  • Die Schaltung bleibt in diesem Zustand für eine Anzahl von Taktzyklen, die der Anzahl von Boundary-Scan-Zellen minus eins entspricht; offensichtlich ist der Boundary-Scan eines der möglichen Datenregister, die mit einem geeigneten Befehl im IR-Register ausgewählt werden.
  • Der neue Testvektor wird an den Ausgangspins ausgegeben, wenn der Zustand Exit -1 DR 880 passiert und der Zustand Update DR 885 erreicht wird.
  • Die Sequenz wird von der Aktualisierung bis zur Erfassung wiederholt, um zu ermöglichen, dass ein neuer Testvektor in die Schaltung eingeführt wird.
  • Wie wir gesehen haben, umfasst der TAP einen Testdateneingang und einen Testdatenausgang und ein Taktsignal. Insbesondere meldet das Schiebedatenregister ShiftDR einen Zustand, in dem der TDI mit einem Register verbunden ist. In diesem Zustand wird der Registerinhalt in und/oder aus dem Gerät übertragen.
  • In ähnlicher Weise meldet das Schiebebefehlsregister ShiftIR auch einen Zustand, in dem der TDI mit einem Register verbunden ist. Anweisungen werden in diesem Zustand geladen.
  • Der Vollständigkeit halber sei angemerkt, dass die JTAG-Zustandsmaschine verwendet werden kann, um ein Register zurückzusetzen, auf ein Befehlsregister zuzugreifen oder auf die vom Befehlsregister ausgewählten Daten zuzugreifen.
  • Aufgrund der Anforderung, mehrere Kerne innerhalb der Host-Vorrichtung 10 zu haben, muss das interne Register 780 der JTAG-Schnittstelle in der Lage sein, bis zu Adress- und Datenregister zu unterstützen. Insbesondere ist die Erzeugung von vier Adressregistern (eines aus jedem Unterarray 220) vorgesehen, um mit einer anderen Adresse für jedes Unterarray 220 gefüllt zu werden und vier verschiedene Datenausgabe für das Leseregister [0:3] pro Unterarray-Abschnitt zu triggern. Die Kommunikation zum SoC erfolgt, indem das ausgewählte Read Register, d.h. der Ausgang namens POUT [127:0] (direkt mit dem Eingang des Kanals des Host-Geräts oder SoC 10 verbunden wird.
  • Dieser Mechanismus ermöglicht es, die Daten für den Controller vorab zu laden, wodurch die Latenzzeit auf einen sehr niedrigen Wert reduziert wird.
  • Gemäß der vorliegenden Offenbarung wird das zusätzliche Register 780 verwendet, um die anfängliche Datenleselatenz zu reduzieren oder sogar aufzuheben.
  • Insbesondere verwendet das SoC gemäß einer Ausführungsform der vorliegenden Offenbarung die Execution In Place (XiP) als Verfahren zum Abrufen der Daten von der Speicherkomponente; auf diese Weise ist die Anfangsadresse immer fest.
  • Die Speicherkomponente der vorliegenden Erfindung ist vorteilhafterweise so aufgebaut, dass die voreingestellte Anfangsadresse kundenspezifisch vorprogrammiert werden kann. Die Vorprogrammierung erfolgt über einen speziellen Befehlssatz, wie z.B. Default_Address_Load0_0, ..., Default_Address_Load3_3.
  • Gemäß einer vorteilhaften Ausführungsform der vorliegenden Offenbarung werden die Standardanfangsadressen in dem zusätzlichen Register 780 gespeichert. Auf diese Weise wird beim Einschalten des Geräts die vorprogrammierte Vorgabeadresse vom zusätzlichen Register 780 zu den JTAG-Registern übertragen. Kurz nachdem die Standardadresse geladen wurde, wird eine Lesesequenz in jedem Unterarray ausgeführt, um die für jeden Kern benötigten Daten vorzubereiten. Dies vermeidet geeigneterweise die anfängliche Latenz des Systems nach dem Booten.
  • Wie in 9 gezeigt, enthält jedes Unterarray 900 einen Satz von 4 Adressregistern, d.h. 24 Bit breit, und einen Satz von 4 Datenausgangsregistern, d.h. 128 + 16 + 24 breit.
  • Die Adressregister der Unterarrays sind mit Datenpufferregistern verbunden, und wie oben gezeigt, kann die Speichervorrichtung der vorliegenden Offenbarung die Anfangsadresse, die beim Booten des Systems gelesen wird, auf nichtflüchtige Weise speichern. Da XiP-Lesevorgänge beim Booten des Systems durchgeführt werden, wird auf diese Weise die Anfangsadresse des XiP festgelegt und während der Konfiguration des SoC/Flash-Array-Geräts programmiert, wobei eine solche Adresse, die in dem zusätzlichen Register gespeichert ist, die der XiP beim Booten verwendet.
  • Der Vorteil, die Adressen für jedes Unterarray in den Adresspuffern gespeichert zu haben, besteht darin, dass eine Leseoperation ausgelöst werden kann, um die anfängliche Latenzzeit des SoC aufzuheben.
  • Mit anderen Worten, gemäß der vorliegenden Offenbarung ist der Benutzer in der Lage, in dem zusätzlichen Register 780 eine Seitenadresse der Unterarrays zu speichern, so dass beim Einschalten eine automatische Lesesequenz ausgeführt wird, um die gewünschte Seite bei. zu lesen die gespeicherte Adresse und stellen dem Nutzer die entsprechenden Daten (Adresse & ECC) zur sofortigen Verwendung zur Verfügung. Dies ermöglicht eine Zeitersparnis beim Einschalten durch Lesen und Bereitstellen der gewünschten Seite - für jedes Unterarray - deren Adresse im zusätzlichen Register gespeichert ist.
  • Das zusätzliche Register kann ein einzelnes Register sein oder es kann eine Vielzahl von Registern umfassen, eines für jedes Unterarray. Das zusätzliche Register der JTAG-Schnittstelle ist daher konfiguriert, um eine Vielzahl von Seitenadressen zu speichern, die einer Vielzahl von Adressregistern der Unterarrays entsprechen, die zumindest eine entsprechende Vielzahl unterschiedlicher Daten von der Leseschnittstelle auslösen.
  • Die Anfangsadressen können mit JTAG-Befehlen gespeichert werden, d.h. nach einem Ablauf wie:
    • IR verschieben: Initial_Address_Load
    • Shift DR: Adresse + Unterarray + Adresse aus 4
    • RUN_TEST_IDLE:
    • IR verschieben: Program_Flash_Array
    • RUN_TEST_IDLE:
  • 10 zeigt ein Diagramm eines Verfahrens 1000 gemäß der vorliegenden Offenbarung.
  • Insbesondere umfasst das Verfahren einen ersten Schritt 1001 des Bereitstellens einer JTAG-Schnittstelle. Auf diesen Schritt folgt ein zweiter Schritt 1002 des Speicherns in einem zusätzlichen Register in der JTAG-Schnittstelle mindestens einer dem Array von Speicherzellen zugeordneten Seitenadresse und ein Schritt 1003 des Ladens der Seitenadresse beim Einschalten von die Apparatur. Schließlich wird ein Schritt 1004 zum Durchführen einer Lesesequenz an der Seitenadresse bereitgestellt.
  • JTAG-Plattformen fügen der Handvoll, die in der IEEE 1149.1-Spezifikation definiert ist, oft Signale hinzu. Ein System-Reset-Signal (SRST) ist weit verbreitet und ermöglicht es Debuggern, das gesamte System zurückzusetzen, nicht nur die Teile mit JTAG-Unterstützung. Manchmal gibt es Ereignissignale, die verwendet werden, um Aktivitäten durch den Host oder das Gerät zu triggern, das über JTAG überwacht wird; oder vielleicht zusätzliche Steuerleitungen.
  • In JTAG stellen Geräte einen oder mehrere Testzugriffsports (TAPs) bereit.
  • Um JTAG zu verwenden, wird ein Host über einen JTAG-Adapter mit dem SoC mit den JTAG-Signalen des Ziels (TMS, TCK, TDI, TDO usw.) verbunden, die möglicherweise Probleme wie Pegelverschiebung und galvanische Trennung bewältigen müssen. Der Adapter wird über eine Schnittstelle wie USB, PCI, Ethernet usw. mit dem Host verbunden. Gemäß der vorliegenden Offenbarung ist der SoC jedoch auch ohne externe Hilfe in der Lage, den JTAG-TAP im Speicher zu treiben.
  • Das Host-Gerät 10 kommuniziert mit den TAPs durch Manipulation der Signale TMS und TCK (oder auch TRST, falls vorhanden). Das Signal TDI wird nur verwendet, um Registerdaten zu laden und dann die Ergebnisse über TDO (das ist der einzige Host-seitige Standardeingang) zu lesen. TMS/TDI/TCK-Ausgangsübergänge erstellen das grundlegende JTAG-Kommunikationsprimitiv, auf dem Protokolle höherer Schichten aufbauen:
  • Zustandsumschaltung: wobei sich alle TAPs im gleichen Zustand befinden und sich dieser Zustand bei TCK-Übergängen ändert. Alle TAP FSM bewegen sich entsprechend, da das TMS gleichzeitig mit allen JTAG-kompatiblen Geräten verbunden ist, wenn sie im Board vorhanden sind.
  • Wie in 8 gezeigt, ist diese JTAG-Zustandsmaschine Teil der JTAG-Spezifikation und umfasst sechzehn Zustände. Es gibt sechs „stabile Zustände“, bei denen die Stabilität des TMS verhindert, dass sich der Zustand ändert. In allen anderen Zuständen ändert TCK diesen Zustand immer. Außerdem erzwingt das Anlegen des Signals TRST den Eintritt, wodurch der gesamte Inhalt der Register auf den Vorgabewert gebracht wird. Ihr Inhalt ist nicht mehr gültig und sollte etwas schneller in einen dieser stabilen Zustände (Test_Logic_Reset) geladen werden als die Alternative, TMS hoch zu halten und TCK fünfmal zu durchlaufen.
  • Verschiebephase: wobei die meisten Teile der JTAG-Zustandsmaschine zwei stabile Zustände unterstützen, die zum Übertragen von Daten verwendet werden. Jeder TAP hat ein Befehlsregister (IR) und ein Datenregister (DR). Die Größe dieser Register variiert zwischen TAPs, und diese Register werden durch TDI und TDO kombiniert, um ein großes Schieberegister zu bilden. (Die Größe des DR ist eine Funktion des Werts im aktuellen IR dieses TAP und möglicherweise des durch einen SCAN_N-Befehl angegebenen Werts.)
  • Normalerweise gibt es ein optionales Register, um die Größe der Datenregister zu definieren. Die IR wird nach dem Standard überprüft, da die niederwertigen Bits mit 1 und 0 geladen werden. Dies ermöglicht es, die Anzahl der JTAG-Geräte im Netzwerk zu zählen und die Größe jedes TAP-IR zu kennen, die unterschiedlich sein kann.
  • Für dieses Schieberegister sind drei Operationen definiert:
  • Erfassen eines temporären Wertes.
  • Der Eintritt in den stabilen Zustand Shift_IR erfolgt über den Zustand Capture_IR, der das Schieberegister mit einem teilweise festen Wert lädt (nicht die aktuelle Anweisung)
  • Der Eintritt in den stabilen Zustand Shift_DR erfolgt über den Zustand Capture_DR, wobei der Wert des Datenregisters geladen wird, der durch die aktuelle IR des TAP spezifiziert wird.
  • Bitweises Verschieben dieses Wertes in den stabilen Zustand Shift_IR oder Shift_DR; TCK-Übergänge verschieben das Schieberegister um ein Bit von TDI in Richtung TDO, genau wie bei einer SPI-Modus-1-Datenübertragung durch eine Daisy-Chain von Geräten (wobei TMS=0 wie das Chipauswahlsignal wirkt, TDI als MOSI usw.).
  • Aktualisieren von IR oder DR ausgehend von dem eingeschobenen temporären Wert beim Übergang durch den Update_IR- oder Update_DR-Zustand. Der PAUSE-Zustand ist auch als Teil des Standards auf jeder Seite des Shift-Zweigs relevant.
  • Beachten Sie, dass es nicht möglich ist, ein Register zu lesen (zu erfassen), ohne es zu schreiben (zu aktualisieren) und umgekehrt. Ein übliches Idiom fügt Flag-Bits hinzu, um anzugeben, ob die Aktualisierung Nebeneffekte haben soll oder ob die Hardware bereit ist, solche Nebeneffekte auszuführen.
  • Laufender Zustand: wobei ein stabiler Zustand Run_Test/Idle genannt wird. Die Unterscheidung ist TAP-spezifisch. Das Takten von TCK im Idle-Zustand hat keine besondere Nebenwirkung, aber das Takten im Run_Test-Zustand kann den Systemzustand ändern. Einige Kerne unterstützen beispielsweise einen Debugging-Modus, bei dem TCK-Zyklen im Run_Test-Zustand die Befehlspipeline steuern.
  • Grundsätzlich umfasst die Verwendung von JTAG also das Lesen und Schreiben von Befehlen und ihren zugehörigen Datenregistern; und beinhaltet manchmal das Ausführen einer Reihe von Testzyklen. Hinter diesen Registern steht Hardware, die nicht von JTAG spezifiziert ist und ihre eigenen Zustände hat, die von JTAG-Aktivitäten beeinflusst werden.
  • Die JTAG Finite State Machine wird bei der steigenden Flanke des TCK, dem Taktsignal, getriggert und bei der fallenden Flanke ausgegeben. Dies ermöglicht es, das Bypass-Register zu verwenden und keine Taktzyklen in der Scan-Kette zu verlieren.
  • Das TMS-Signal wird geprüft und sein Wert triggert den Zustandsübergang.
  • Die Zustände ShiftDR und ShiftlR adressieren E/A-Register und das TDI-Signal wird verwendet, um Daten seriell in das ausgewählte Register einzufügen
  • Das IR-Register wird verwendet, um das spezifische Datenregister und/oder den zu verwendenden Befehl auszuwählen.
  • Wenn sich die Zustandsmaschine im Run-Test/Idle befindet, wird das IR-Register auf einen Befehl überprüft und mit den Daten eventueller Serviceregister ausgeführt, d.h. ein Programmbefehl kann anhand des Datenregisters und des Adressregisters entscheiden, was und wo die Daten gespeichert werden müssen.
  • Die JTAG-Boundary-Scan-Technologie bietet Zugriff auf viele logische Signale einer komplexen integrierten Schaltung, einschließlich der Gerätepins. Die Signale werden in dem über den TAP zugänglichen Boundary Scan Register (BSR) dargestellt. Dies ermöglicht sowohl das Testen als auch das Steuern der Zustände der Signale zum Testen und Debuggen. Daher können sowohl Software- als auch Hardware-(Fertigungs-)Fehler lokalisiert und ein Betriebsgerät überwacht werden.
  • Die vorliegende Offenbarung erzielt viele Vorteile, über die im Folgenden, nicht in der Reihenfolge ihrer Wichtigkeit berichtet wird. Die zuvor offenbarte Lösung reduziert die Kosten des Siliziums für die Speicherkomponente und verbessert die Gesamtqualitäts- und Zuverlässigkeitsprobleme für die gesamte Vorrichtung einschließlich der Hostvorrichtung und der Speicherkomponente.
  • Die Vorrichtung der vorliegenden Offenbarung bietet eine gute Option zum Realisieren von Real Time Operating Systems (RTOS), insbesondere im Automotive-Segment, die eine geringe anfängliche Latenz beim ersten Zugriff der Speicherkomponente bereitstellt.
  • Darüber hinaus sorgt die zuvor offenbarte Speicherarchitektur für eine sehr hohe Qualität und eine Fehlerrate im Bereich von weniger als 1 Teil pro Million.
  • Schließlich ermöglicht die offenbarte Architektur den Einsatz eines aggressiven Lithographie-Knotens in der Host-Vorrichtung und der neuesten Flash-Speichertechnologie in der Speicherkomponente, wodurch beide Technologien entkoppelt werden, wodurch die beste integrierte Schaltung für beide Vorrichtungen vor Ort realisiert werden kann.
  • Die Speicherkomponente 1 und der Host oder SoC 10 wurden mit einer Schnittstelle unter Verwendung einer sehr hohen Parallelität gekoppelt. Diese Funktion kann auch verwendet werden, um die Leistung zu verbessern, beispielsweise zum Laden des Befehlsregisters und der (generischen) Datenregister.
  • Wenn wir uns beispielsweise auf das Beispiel von 7 beziehen, ist zu erkennen, dass das Befehlsregister 720 in einem einzigen Taktzyklus geladen werden kann, der die DATAx parallel mit den Speicherzellen verbindet. Darüber hinaus zeigt 8 die TAP-Übergänge, die durch das TMS-Signal getrieben werden, wenn der Zustand ShiftDR oder ShiftIR erreicht wird; die Figur zeigt zwei Fälle von flexiblem TDI, ein Datenregister mit 8 Bit und ein weiteres Datenregister mit 128 Bit.
  • Data0 kann als Standard verwendet werden, aber für den Fall, dass das SoC nicht das einzelne DATO für die gesamte Kommunikation verwalten kann, kann ein Mux für jeden Kanal des Controllers hinzugefügt werden, d.h. wenn Kanal0 adressiert ist DATA0, wenn Kanal1 Data1 usw.
  • Der Data0 kann bei gleichzeitiger Programmierung alle Unterarray-Leseregister parallel laden.
  • Die IEEE 1149 definiert ein serielles Protokoll. Das Befehlsregister 720 mit mindestens zwei Bits wird auch als Erkennungsverfahren verwendet.
  • Der Host kann die JTAG FSM in den ShiftIR-Modus versetzen und dann mit dem Einschieben eines bekannten Codeworts beginnen, wenn die gesamte serielle Kette übergeben wird, erscheint das Codewort dem TDI des Hosts. Der Gastgeber kann die Kombination „10“ zählen und sich bewusst sein:
    • # der Geräte in der Kette
    • Länge des Befehlsregisters jedes Geräts
  • Der flexible TDI sollte die Leistung bestimmter Operationen verbessern, d.h. ein Datenregister mit 128 Bits kann unter Verwendung der gesamten DATEN-I/O-Fähigkeit des Unterarrays geladen werden. Der Ausgang wird immer mit dem JTAG kompatibel sein, aber es wird nur ein Bit sein, d.h. das niederwertige Bit des Datenregisters.
  • Das Befehlsregister erfordert besondere Aufmerksamkeit, da es mindestens 2 Bit breit sein muss. Wenn das Befehlsregister also 8 Bit hat, sagt die Implementierung des Flash-Arrays eine Kommunikation mit 2 Taktzyklen voraus, um die Sequenz '10. zu ermöglichen “ an das nächste Gerät gesendet werden.
  • Die vorgeschlagene Methodik ist nicht die Standardeinstellung des Geräts, sondern kann in einem flüchtigen Konfigurationsregisterbit ausgewählt werden, sodass der Benutzer das Gerät jederzeit für den Betrieb in Flexible TDI konfigurieren kann.
  • Obwohl in dieser Schrift konkrete Ausführungsformen veranschaulicht und beschrieben wurden, wird der Durchschnittsfachmann verstehen, dass eine Anordnung, die zum Erreichen der gleichen Ergebnisse ausgelegt ist, an die Stelle der konkreten gezeigten Ausführungsformen treten kann. Diese Offenbarung soll Anpassungen oder Variationen mehrerer Ausführungsformen der vorliegenden Offenbarung abdecken.
  • Es versteht sich, dass die obige Beschreibung veranschaulichend und nicht einschränkend gemacht wurde. Kombinationen der vorstehenden Ausführungsformen und anderer Ausführungsformen, die nicht spezifisch hierin beschrieben sind, werden nach der Lektüre der vorstehenden Beschreibung für den Fachmann auf der Hand liegen. Der Umfang der mehreren Ausführungsformen der vorliegenden Offenbarung beinhaltet andere Anwendungen, in denen die vorstehenden Strukturen und Verfahren verwendet werden. Daher sollte der Umfang von mehreren Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die beigefügten Ansprüche bestimmt werden, gemeinsam mit der vollständigen Spanne an Äquivalenten, zu denen derartige Ansprüche berechtigt sind.

Claims (25)

  1. Vorrichtung, umfassend: - eine Speicherkomponente mit einer unabhängigen Struktur und mit mindestens einem Array von Speicherzellen mit zugehöriger Decodier- und Leseschaltung einer Leseschnittstelle; - eine Host-Vorrichtung, die über mindestens einen Kommunikationskanal mit der Speicherkomponente gekoppelt ist; - eine JTAG-Schnittstelle in dem mindestens einen Array von Speicherzellen; - mindestens ein zusätzliches Register in der JTAG-Schnittstelle zum Hand.h.aben von Daten, Adressen und Steuersignalen, die vom Host-Gerät bereitgestellt werden, wobei das zusätzliche Register konfiguriert ist, um mindestens eine dem Array von Speicherzellen zugeordnete Seitenadresse zu speichern, wobei die Speicherkomponente konfiguriert ist, um die Seitenadresse beim Einschalten der Vorrichtung zu laden, und wobei das Host-Gerät konfiguriert ist, um eine Lesesequenz an der Seitenadresse durchzuführen.
  2. Vorrichtung nach Anspruch 1, wobei die Speicherkomponente eine Vielzahl von Unterarrays mit einer Leseschnittstelle umfasst, die Leseverstärker und einen Datenpuffer umfasst.
  3. Vorrichtung nach Anspruch 2, wobei das zusätzliche Register der JTAG-Schnittstelle konfiguriert ist, um eine Vielzahl von Seitenadressen zu speichern, die einer Vielzahl von Adressregistern der Unterarrays entsprechen, wobei diese Adressregister die zumindest eine entsprechende Vielzahl unterschiedlicher Daten von der Leseschnittstelle auslösen.
  4. Vorrichtung nach Anspruch 2, wobei das zusätzliche Register eine Vielzahl von Registern enthält, wobei jedes Register Daten enthält, die einem jeweiligen Unterarray entsprechen.
  5. Vorrichtung nach Anspruch 2, wobei der Datenpuffer mehrere modifizierte JTAG-Zellen enthält, die mit entsprechenden Ausgängen der Leseverstärker gekoppelt sind.
  6. Vorrichtung nach Anspruch 2, wobei jeder Leseverstärker direkt mit einer modifizierten JTAG-Zelle verbunden ist, um eine JTAG-Struktur und die Leseverstärker in einem einzigen Schaltungsabschnitt zu integrieren.
  7. Vorrichtung nach Anspruch 2, wobei die Speicherkomponente mindestens vier Unterarrays enthält und jede Untermatrix innerhalb der Speicherkomponente unabhängig adressierbar ist.
  8. Vorrichtung nach Anspruch 2, wobei eine Scan-Kette durch serielles Verbinden der JTAG-Zellen des Datenpuffers gebildet wird.
  9. Vorrichtung nach Anspruch 1, wobei die Ausgabe des mindestens einen Arrays von Speicherzellen gebildet wird, indem die Datenzellen, Adresszellen und ECC-Zellen kombiniert werden.
  10. Vorrichtung nach Anspruch 1, wobei die Host-Vorrichtung eine Vielzahl von Kernen umfasst und jeder Kern mit einem Kommunikationskanal zum unabhängigen Empfangen und Übertragen von Daten an die Speicherkomponente gekoppelt ist.
  11. Vorrichtung nach Anspruch 1, wobei die Host-Vorrichtung konfiguriert ist, um die Daten von der Speicherkomponente über Execution In Place (XiP) abzurufen.
  12. Vorrichtung nach Anspruch 2, wobei jedes Unterarray einen Satz von vier Adressregistern und einen Satz von vier Datenausgangsregistern umfasst.
  13. Ein nichtflüchtiges Speichergerät mit: - mindestens ein Speicherarray mit zugehöriger Decodier- und Leseschaltung einer Leseschnittstelle; - eine Vielzahl von Unterarrays in dem Speicherarray, die so strukturiert sind, dass sie über eine Leseschnittstelle mit einem Kommunikationskanal kommunizieren; - eine JTAG-Schnittstelle in dem mindestens einen Speicherarray; - mindestens ein zusätzliches Register in der JTAG-Schnittstelle zum Hand.h.aben von Daten, Adressen und Steuersignalen, die von dem Kommunikationskanal bereitgestellt werden, wobei das zusätzliche Register konfiguriert ist, um mindestens eine dem Array von Speicherzellen zugeordnete Seitenadresse zu speichern, und wobei die Speicherkomponente konfiguriert ist, um die Seitenadresse zum Lesen beim Einschalten der Vorrichtung zu laden,
  14. Nichtflüchtige Speichervorrichtung nach Anspruch 13, wobei die JTAG-Schnittstelle eine JTAG-Zustandsmaschine umfasst, die so strukturiert ist, dass sie ein Befehlsregister zurücksetzt oder darauf zugreift sowie auf durch das Befehlsregister ausgewählte Daten zuzugreifen.
  15. Nichtflüchtige Speichervorrichtung nach Anspruch 13, wobei die JTAG-Schnittstelle als Eingaben Standard-JTAG-Signale empfängt: TMS, TCK, TDI sowie Daten von einer Speicherseite.
  16. Nichtflüchtige Speichervorrichtung nach Anspruch 13, wobei die Steuer- und JTAG-Schnittstelle als Ausgangsdaten Adressen und Steuersignale erzeugt, die an einen Speicheradressendecodierer und an die Speichersteuerung übertragen werden, um Modifizierungsoperationen durchzuführen.
  17. Nichtflüchtige Speichervorrichtung nach Anspruch 13, die eine Vielzahl von Unterarrays mit einer Leseschnittstelle mit Leseverstärkern und einem Datenpuffer umfasst, und wobei das interne Register der JTAG-Schnittstelle strukturiert ist, um mindestens vier Adressregister zu erzeugen, die mit entsprechenden unterschiedlichen Adressen gefüllt sind und Auslösen von mindestens vier verschiedenen Daten von der Leseschnittstelle jedes Unterarrays.
  18. Nichtflüchtige Speichervorrichtung nach Anspruch 13, die mindestens vier Speicher-Unterarrays umfasst und jede Untermatrix innerhalb der Speichervorrichtung unabhängig adressierbar ist.
  19. Nichtflüchtige Speichervorrichtung nach Anspruch 13, wobei der Speicher so strukturiert ist, dass er über entsprechende Kommunikationskanäle mit einer Vielzahl von Kernen einer Host- oder SoC-Vorrichtung in Verbindung steht, und wobei ein ausgewähltes Leseregister der Speichervorrichtung direkt mit dem Eingang verbunden ist eines entsprechenden Kanals des Host-Geräts zum unabhängigen Empfangen und Übertragen von Daten.
  20. Nichtflüchtige Speichervorrichtung nach Anspruch 13, wobei das Speicherarray ein NAND-Flash-Speicherarray ist.
  21. Verfahren zum Booten einer Vorrichtung, die eine Speicherkomponente umfasst, die mindestens ein Array von Speicherzellen umfasst, und eine mit der Speicherkomponente gekoppelte Hostvorrichtung, wobei das Verfahren die Schritte umfasst: - Bereitstellen einer JTAG-Schnittstelle; - Speichern, in einem zusätzlichen Register in der JTAG-Schnittstelle, von mindestens einer Seitenadresse, die dem Array von Speicherzellen zugeordnet ist; - Laden der Seitenadresse beim Einschalten des Geräts; und - Durchführen einer Lesesequenz an der Seitenadresse.
  22. Verfahren nach Anspruch 21, wobei die Seitenadresse in dem zusätzlichen Register unter Verwendung von JTAG-Befehlen gespeichert wird.
  23. Vorrichtung nach Anspruch 21, wobei Execution In Place (XiP) verwendet wird, um die Lesesequenz durchzuführen, wobei die Anfangsadresse des XiP die programmierte und in dem zusätzlichen Register gespeicherte Seitenadresse ist.
  24. Vorrichtung nach Anspruch 21, umfassend das Speichern einer Vielzahl von Seitenadressen entsprechend einer Vielzahl von Adressregistern einer Vielzahl von Unterarrays des Speicherarrays.
  25. Verfahren nach Anspruch 24, wobei beim Einschalten der Schritt des Lesens für jedes Unterfeld der Seite an der entsprechenden Seitenadresse Daten zur sofortigen Verwendung verfügbar macht.
DE112019007388.5T 2019-05-31 2019-05-31 Jtag-basierte architektur, die den multi-core-betrieb ermöglicht Pending DE112019007388T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/000467 WO2020240229A1 (en) 2019-05-31 2019-05-31 Jtag based architecture allowing multi-core operation

Publications (1)

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

Family

ID=66912878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007388.5T Pending DE112019007388T5 (de) 2019-05-31 2019-05-31 Jtag-basierte architektur, die den multi-core-betrieb ermöglicht

Country Status (4)

Country Link
US (2) US11322223B2 (de)
CN (1) CN113950721B (de)
DE (1) DE112019007388T5 (de)
WO (1) WO2020240229A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875044B2 (en) * 2019-05-31 2024-01-16 Lodestar Licensing Group, Llc Direct memory access using joint test action group (JTAG) cells addressing
WO2020240229A1 (en) * 2019-05-31 2020-12-03 Micron Technology, Inc. Jtag based architecture allowing multi-core operation
US20220357394A1 (en) * 2021-05-04 2022-11-10 University Of Florida Research Foundation, Incorporated Reconfigurable jtag architecture for implementation of programmable hardware security features in digital designs

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7707354B2 (en) * 1999-08-04 2010-04-27 Super Talent Electronics, Inc. SRAM cache and flash micro-controller with differential packet interface
US6839821B2 (en) * 1999-11-16 2005-01-04 Lexar Media, Inc. Method and apparatus for memory control circuit
US6651134B1 (en) * 2000-02-14 2003-11-18 Cypress Semiconductor Corp. Memory device with fixed length non interruptible burst
US7313739B2 (en) * 2002-12-31 2007-12-25 Analog Devices, Inc. Method and apparatus for testing embedded cores
US7159091B1 (en) * 2003-12-31 2007-01-02 Intel Corporation Dynamic relocation of execute in place applications
JP4670370B2 (ja) * 2005-01-28 2011-04-13 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
US8621120B2 (en) 2006-04-17 2013-12-31 International Business Machines Corporation Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism
US9881161B2 (en) 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US10453502B2 (en) * 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
WO2018163252A1 (ja) * 2017-03-06 2018-09-13 ゼンテルジャパン株式会社 半導体記憶システム
WO2020240229A1 (en) * 2019-05-31 2020-12-03 Micron Technology, Inc. Jtag based architecture allowing multi-core operation

Also Published As

Publication number Publication date
US20210335444A1 (en) 2021-10-28
CN113950721A (zh) 2022-01-18
WO2020240229A1 (en) 2020-12-03
US20220254438A1 (en) 2022-08-11
CN113950721B (zh) 2022-12-30
US11830563B2 (en) 2023-11-28
US11322223B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
DE69914864T2 (de) Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente
DE102006009224B4 (de) Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE102011053359B4 (de) Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben
DE19952272B4 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
DE10244757B3 (de) Programmierung eines Speicherbausteins über ein Boundary Scan-Register
DE4041897C2 (de) Integrierte Schaltkreiseinrichtung und Abtastpfadsystem
DE602004007503T2 (de) REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs
DE19729163B4 (de) System und Verfahren zur Abtaststeuerung einer programmierbaren Sicherungsschaltung in einer integrierten Schaltung
DE102013114564B4 (de) System zur Reduzierung einer Leistungsspitze während einer Abtastverschiebung auf lokaler Ebene für abtastbasierte Prüfungen
DE60023882T2 (de) System auf einem Chip mit reprogrammierbarem Testgerät, Fehlerbeseitiger und Busüberwachung
DE60309931T2 (de) Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport
DE112019007371T5 (de) Eine mit einem system-on-chip gekoppelte speichergerätearchitektur
DE112019007388T5 (de) Jtag-basierte architektur, die den multi-core-betrieb ermöglicht
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
DE112018004577T5 (de) Multiprozessorkern-vorrichtung mit mbist
DE112008000397T5 (de) Eingebettete Architektur mit serieller Schnittstelle zum Testen von Flashspeichern
DE102013114512B4 (de) Globales Einfangschema mit niedriger Leistung für Kerne
DE69912545T2 (de) Schaltkreis mit einer einheit zum testen von verbindungen und ein verfahren zum testen von verbindungen zwischen einem ersten und zweiten elektronischen schaltkreis
DE112019004344T5 (de) Testsystem zur Ausführung eines integrierten Selbsttests im Einsatz für Fahrzeuganwendungen
DE102016204623A1 (de) Arbitrierung zur speicherdiagnose
DE102004012279B3 (de) Verfahren und Vorrichtung zum Speicherselbsttest von eingebetteten Speichern in Halbleiterchips
DE112019007386T5 (de) Verbesserte jtag-register mit gleichzeitigen eingängen
DE112005003216T5 (de) System und Verfahren für Steuerregister, auf die über private Rechenoperationen zugegriffen wird
DE112019007374T5 (de) Direkter speicherzugriff mit jtag-zelladresse

Legal Events

Date Code Title Description
R012 Request for examination validly filed