DE112019007386T5 - Verbesserte jtag-register mit gleichzeitigen eingängen - Google Patents

Verbesserte jtag-register mit gleichzeitigen eingängen Download PDF

Info

Publication number
DE112019007386T5
DE112019007386T5 DE112019007386.9T DE112019007386T DE112019007386T5 DE 112019007386 T5 DE112019007386 T5 DE 112019007386T5 DE 112019007386 T DE112019007386 T DE 112019007386T DE 112019007386 T5 DE112019007386 T5 DE 112019007386T5
Authority
DE
Germany
Prior art keywords
data
bits
register
memory
jtag
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
DE112019007386.9T
Other languages
English (en)
Inventor
Alberto Troia
Antonino Mondello
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lodestar Licensing Group LLC
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE112019007386T5 publication Critical patent/DE112019007386T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Die vorliegende Offenbarung betrifft eine Vorrichtung, umfassend:- ein Host-Gerät oder ein System-on-Chip:- eine Speicherkomponente mit einer unabhängigen Struktur und mit mindestens einem Array von Speicherzellen, die in Unterarrays mit zugeordneten Decodier- und Leseschaltungen organisiert sind;- eine JTAG-Schnittstelle in dem mindestens einen Array von Speicherzellen mit einer Boundary-Scan-Architektur;- ein Befehlsregister in der Boundary-Scan-Architektur der JTAG-Schnittstelle, das mindestens ein paar Bits enthält, die das Vorhandensein eines Testdateneingangs-(TDI)-Signals anzeigen.Die Vorrichtung hat eine erweiterte TDI-Funktionalität, die die Daten-IO verwendet, um die Gesamtleistung zu verbessern.Verfahren zum Verbessern der Kommunikation zwischen einem Host oder SoC-Gerät und einer zugehörigen unabhängigen Speicherkomponente, umfassend:

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein Speichervorrichtungen und insbesondere Vorrichtungen und Verfahren zur Verwaltung nichtflüchtigen Speichers. Insbesondere bezieht sich die vorliegende Offenbarung auf eine JTAGbasierte Architektur, die einen Mehrkernbetrieb sowie eine verbesserte Verwaltung der Eingaben in einer nichtflüchtigen Speichervorrichtung ermöglicht.
  • STAND DER TECHNIK
  • Nichtflüchtige Flash-Speicher sind heute einer der grundlegenden Bausteine moderner elektronischer Systeme, insbesondere für Echtzeitbetriebssysteme (RTOS), die eine hohe Parallelität bei der Datenverwaltung erfordern. Im Allgemeinen wird der Betrieb der nichtflüchtigen Flash-Speicher von einem internen Controller verwaltet, der eine eingebettete Firmware umfasst, wobei ein solcher Controller die erforderlichen Schreib-/Lese-/Löschvorgänge durchführt.
  • Die Leistungsfähigkeit 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, beispielsweise für geregelte Märkte, vollständig zu erfüllen. In anderen Fällen kann eine einfache Programmiertechnik die Generierung größerer Bibliotheken mit bereits entwickelten Funktionen erzwingen, wobei diese Bibliotheken in die Hardware heruntergeladen werden, auch wenn sie nicht verwendet werden. Dieser Nachteil treibt die Suche nach mehr Speicherplatz mit Schwierigkeiten bei der Integration eines solchen Speicherplatzes in einen SoC voran.
  • Ein SoC ist ein integrierter Halbleiterschaltkreis, der alle Komponenten eines Computers oder eines anderen elektronischen Systemsintegriert. Diese Komponenten umfassen typischerweise eine zentrale Verarbeitungseinheit (CPU), SoC-Controller, Speicherabschnitte, Eingangs-/Ausgangsports und sekundäre Speicherkomponenten, alle auf einem einzigen Halbleitersubstrat. Ein SoC kann je nach Anwendung digitale, analoge, Mixed-Signal-und häufig Hochfrequenz - Signalverarbeitungsfunktionen enthalten. Da sie auf einem einzigen elektronischen Substratintegriert sind, kann ein SoC-Bauelement viel weniger Strom verbrauchen und viel weniger Fläche beanspruchen als Multi-Chip-Designs mit äquivalenter Funktionalität. SoC-Geräte sind heute im Mobile Computing, in eingebetteten Systemen und im Internet der Dinge (IoT) weit verbreitet.
  • Die in System on Chips eingebetteten nichtflüchtigen Speicherteile, nämlich eFlash, sind immer schwieriger zu verwalten, wenn der Lithographieknoten unter 28 nm liegt. Der steigende Bedarf an On-Board-Speicher in SoC stößt an eine physikalische Grenze und mit den aktuellen Technologien ist es nicht mehr praktisch, eFlash-Komponenten mit einer Größe zu verwenden, die sich dieser physikalischen Grenze nähert.
  • Daher besteht ein Bedarf an der Bereitstellung einer neuen Architektur von Speicherkomponenten und einem entsprechenden Bedarf an der Definition neuer Schnittstellen für die Kommunikation mit einem SoC, die gleichzeitig die Leistungen des nichtflüchtigen Speicherteils verbessern und gleichzeitig eine niedrige Anfangslatenzzeit aufweisen den ersten Zugriff und die Verbesserung des Gesamtdurchsatzes.
  • 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 der Speicherkomponente gemäß der vorliegenden Offenbarung;
    • 3 zeigt eine schematische Ansicht eines Abschnitts der nichtflüchtigen Speicherkomponente von 1, die eine Layoutkonfiguration gemäß der vorliegenden Offenbarung enthält;
    • 3A zeigt eine schematische Ansicht eines Abschnitts der nichtflüchtigen Speicherkomponente von 2, die eine Layoutkonfiguration gemäß der vorliegenden Offenbarung enthält;
    • 3 ist eine schematische Ansicht einer Gruppe von Adressregistern für eine Speicherseite im Speicherabschnitt der vorliegenden Offenbarung;
    • 3C und 3D zeigen schematische Schemata für Zeilendatenpuffer und entsprechende Zeilenadreßpuffer zeigen, die für die Speichervorrichtung der vorliegenden Offenbarung verwendet werden;
    • 4 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 ist eine schematische Ansicht einer Standardstrukturarchitektur, die eine Boundary-Scan-Zelle verwendet, die gemäß dem IEEE-Standard Nr. 1149.1 konfiguriert ist, aber 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 ist eine schematische Ansicht einer Liste von Befehlen basierend auf einer Finite State Machine basierend auf dem JTAG-Protokoll;
    • 10 ist ein Blockdiagramm, das schematisch die Interaktion zwischen dem Host-Gerät von 1 und einem Register der Boundary-Scan-Architektur der vorliegenden Offenbarung zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Unter Bezugnahme auf diese Figuren werden hierin Vorrichtungen und Verfahren offenbart, die eine nichtflüchtige Speichervorrichtung 1 oder Komponente und eine Hostvorrichtung 10 für eine solche Speichervorrichtung beinhalten.
  • Das in 1 nach dem Stand der Technik gezeigte Host-Gerät 10 kann ein System-on-Chip mit einer eingebetteten Speicherkomponente 1 oder ein komplexeres elektronisches Gerät sein, das ein mit einem Speichergerät gekoppeltes System enthält, wie aus der Beschreibung anderer Ausführungsformen der vorliegenden Erfindung hervorgeht Offenbarung unter Bezugnahme auf andere Figuren. In jedem Fall werden das System-on-Chip 10 und die zugehörige Speichervorrichtung 1 auf einem jeweiligen Chip realisiert, der durch einen anderen Lithographieprozess erhalten wurde. Als Alternative kann das System 10 ein externer Controller sein, der mit dem System-on-Chip kommuniziert, aber für die Zwecke der vorliegenden Offenbarung werden wir das Hostgerät oder das SoC als Entitäten in Kommunikation mit der Speicherkomponente bezeichnen.
  • Beispielsweise kann das System 10 eines von mehreren elektronischen Geräten sein, die Speicher für die vorübergehende oder dauerhafte Speicherung von Informationen verwenden können. Ein Host-Gerät kann beispielsweise ein Computergerät, ein Mobiltelefon, ein Tablet oder die Zentraleinheit eines autonomen Fahrzeugs sein.
  • Gemäß Ausführungsformen der vorliegenden Offenbarung wurde die Größe der Speicherkomponente 1 verbessert. Die Speicherkomponente der vorliegenden Offenbarung ist eine nichtflüchtige Speichervorrichtung 1, die als unabhängiger Chip mit einem speziellen Lithographieprozess realisiert wurde, der Herstellung von Flash-Speichervorrichtungen gewidmet ist und mit der Hostvorrichtung 10 oder mit einem Systemon-Chip über einen Kommunikationskanal gekoppelt sein kann.
  • 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 mit ihr verbunden, die eine solche Struktur teilweise überlappt, während der entsprechende Halbleiterbereich der SoC-Struktur für andere Logikschaltungen verwendet wurde und um die teilweise überlappende strukturell unabhängige Speichervorrichtung 1 z.B. durch mehrere Säulen oder andere ähnliche alternative Verbindungen, wie beispielsweise Bumping Balls oder mit einer Flip-Chip-ähnlichen Technologie.
  • 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 verbunden sind. Auf diese Weise ist es möglich, die Anzahl der erforderlichen Verbindungen relativ gering zu halten, beispielsweise im Bereich von 600 bis 650 Pads.
  • Die Speicherkomponente 1 ist als einzelner unabhängiger Chip mit entsprechenden Verbindungspads für einen Kommunikationskanal mit dem SoC strukturiert; jedoch kann die Speicherkomponente als ein Stapel von Speicherchips strukturiert sein, die in einem einzelnen Gerätepaket miteinander verbunden sind, in einem solchen Fall wird eine drahtlose Intra-Dice-Kommunikation bereitgestellt.
  • Genauer gesagt enthält diese nichtflüchtige Speicherkomponente 1 ein Array 90 von Flash-Speicherzellen und eine Schaltung, die um das Speicherarray herum angeordnet ist. Die Kopplung zwischen der SoC-Struktur 10 und der Speicherkomponente 1 erfolgt durch die Verbindung einer Vielzahl von entsprechenden Pads 250 oder Stiftanschlüssen, die einander in einem Schaltungslayout zugewandt sind, das die Ausrichtung der Pads beibehält, selbst wenn die Größe der Speicherkomponente geändert wird.
  • In einer Ausführungsform der vorliegenden Offenbarung wurde die Anordnung der Pads 250 der Speicherkomponente auf einer Oberfläche der Speicherkomponente 1, in der Praxis auf der Oberseite des Arrays, 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. Die schematische Ansicht von 2 stellt die Position und Lage der Pads 250 nicht maßstabsgetreu dar, sondern ist nur ein Hinweis. Darüber hinaus ist nur eine reduzierte Anzahl von Pads 250 dargestellt.
  • Auch eine größere Speicherkomponente kann mit den Pads der SoC-Struktur abgestützt und verbunden werden, wobei die Position und Versetzung der Verbindungspads beibehalten wird.
  • Am Ende wird das Speichergerät 1 nach den Bedürfnissen des Benutzers in einem Wertebereich hergestellt, der je nach verfügbarer Technologie variieren kann, nur als Beispiel einer Implementierung von mindestens 128 Mbit bis 512 Mbit oder sogar mehr ohne Einschränkung für die Rechte des Antragstellers. 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.
  • Die Speichervorrichtung 1 kann eine andere Größe aufweisen, verglichen mit der Größe der SoC-Struktur, der sie zugeordnet ist, eine solche Größe kann kleiner oder größer sein. Mit Bezug auf den zuvor verwendeten Begriff „teilweise überlappend“ ist beabsichtigt, dass die Speichervorrichtung 1 den Bereich der SoC-Struktur teilweise oder nicht vollständig abdeckt oder umgekehrt.
  • Nun wird mit spezifischerer Bezugnahme auf das Beispiel von 1 die Hauptstruktur der Speicherkomponente 1 gemäß einer Ausführungsform der vorliegenden Offenbarung offenbart.
  • Die Speicherkomponente 1 enthält mindestens: eine I/O-Schaltung 5, einen Mikrosequenzer 3, ein Array von Speicherzellen 90, Spannungs- und Stromreferenzgeneratoren 7, Ladungspumpen 2 und Decodierungsschaltungen 8, die sich an der Peripherie des Arrays befinden, Leseverstärker 9 und entsprechende Latches, eine Befehlsbenutzerschnittstelle, beispielsweise einen CUI-(Befehlsbenutzerschnittstellen-)Block 4.
  • Das Array von Speicherzellen 90 enthält nichtflüchtige Flash-Speicherzellen. Flash-Speicher können in Blöcken anstelle von jeweils einem Byte gelöscht werden. Jeder löschbare Speicherblock umfasst eine Vielzahl von nichtflüchtigen Speicherzellen, die in einer Matrix von Zeilen und Spalten angeordnet sind. Jede Zelle ist mit einer Zugangsleitung und/oder einer Datenleitung gekoppelt. Die Zellen werden durch Manipulation der Spannungen und Timing auf dem Zugang und den Datenleitungen programmiert und gelöscht.
  • Um die Speicherzellen des Arrays 90 zu lesen, wird ein dedizierter Schaltungsabschnitt bereitgestellt, der eine optimierte Lese-Finite-State-Maschine enthält, die verwendet wird, um eine hohe Leseleistung sicherzustellen, wie Verzweigungsvorhersage, Fetch/Pre-Fetch, Interrupt-Verwaltung und so weiter.
  • In einer Ausführungsform der vorliegenden Offenbarung, die in 3A schematisch gezeigt ist, ist das Speicherarray 90 als eine Sammlung von Unterarrays 120 aufgebaut. Jedes Unterarray 120 ist innerhalb der Speichervorrichtung 100 unabhängig adressierbar. Jedes Unterarray 120 enthält mehrere Speicherblöcke.
  • Auf diese Weise wird mit kleineren Sektoren im Vergleich zu bekannten Lösungen die Zugriffszeit erheblich reduziert und der gesamte Durchsatz des Speicherbauelements verbessert. Die Reduzierung der anfänglichen Latenzzeit erfolgt auf Blockebene, da die Zeilen- und Spaltenleitungen, die mit dem Lesepfad verbundene Latenz und die externe Kommunikation optimiert wurden.
  • In den hiermit offenbarten Ausführungsbeispielen ist das Speicherarray 90 mit einer Anzahl von Unterarrays 120 entsprechend der Anzahl von Kernen des zugehörigen SoC und daher der Anzahl von entsprechenden Kommunikationskanälen strukturiert. Zum Beispiel werden mindestens vier Speicher-Sub-Arrays 120 bereitgestellt, eines für jeden Kommunikationskanal mit einem entsprechenden Kern des SoC 10.
  • 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.
  • Daher hat in der vorliegenden Implementierung jedes Unterarray 120 Zugriff auf einen entsprechenden Kanal, um mit einem entsprechenden Kern des System-on-Chip 10 zu kommunizieren. 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 und/oder der Erhöhung der Anzahl von Blöcken jedes Unterarrays, d. h. der verfügbaren, niederschlägt Dichte pro Kern.
  • In Ausführungsformen der vorliegenden Offenbarung adressiert jede unabhängig adressierbare Stelle der Blöcke jedes Speicherunterarrays 120 eine erweiterte Seite. Einige erweiterte Seiten werden als „Superseite“ definiert.
  • Die internen Leseverstärker 9 bereiten zwei Seiten von mindestens 168 Bits (d.h. 128 Bits plus die Sicherheitsdaten, insbesondere Adress- und ECC-Bits) vor, und während die erste Seite zum Verschieben bereit ist, wird intern ein weiterer Lesevorgang von eine zweite Seite, die mit derselben Adresse verknüpft ist. 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 Bits vorzubereiten, wenn das System mit zwei Seiten strukturiert ist, wenn das System mit zwei Seiten strukturiert ist, zum Beispiel mit 128 Bits, insbesondere mit 168 Bits, wenn es Sicherheitsdaten enthält.
  • Als nicht einschränkendes Beispiel umfasst diese erweiterte Seite 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 10 plusmindestens eine zweite Gruppe von vierundzwanzig (24) Adressbits und eine letzte oder dritte Gruppe von mindestens sechzehn (16) ECC-Bits. Die vierundzwanzig (24) Adressbits reichen aus, um bis zu 2 GigaBit des verfügbaren Speicherplatzes zu adressieren.
  • Gemäß der vorliegenden Offenbarung bereiten die Ausgänge der Leseverstärker SA jeweils eine doppelt erweiterte Seite vor, d.h. eine Superseite 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 mindestens 168 Bit, die durch die Kombination der obigen drei Gruppen von 128 + 24 + 16 Daten, Adresse und ECC-Bit erhalten werden, und jede Superseite wird durch ein paar erweiterte Seiten gebildet, d.h. eine Gruppe von 168 × 2 Bits.
  • Um nur ein nicht einschränkendes numerisches Beispiel zu geben, enthält jede Zeile eines Speicherblocks 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 120 gebildet, indem die folgende Sequenz kombiniert wird: Datenzellen plus Adresszellen plus ECC-Zellen. In diesem nicht einschränkenden Beispiel würde die Gesamtmenge der Bits 168 Pads pro Kanal umfassen, wie in 3B gezeigt.
  • Der kombinierte String aus Datenzellen + Adresszellen + ECC-Zellen ermöglicht die Implementierung der Sicherheitsabdeckung des Busses gemäß den Standardanforderungen, da der ECC die 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.
  • Die Leseverstärker SA jedes Unterarrays 120 sind mit der Abtastkette der modifizierten JTAG-Zellen 140 verbunden, wodurch alle Ausgänge eines Unterarrays 120 miteinander verbunden werden. Darüber hinaus können die einem Unterarray 120 zugeordneten modifizierten JTAG-Zellen 140 miteinander verbunden werden, um eine einzigartige Kette zum schnellen Prüfen der Integrität der Pad-Verbindungen zu bilden.
  • Dank der Speicherarchitektur der vorliegenden Offenbarung ist es möglich, von einem parallelen Modus zum Abrufen von Daten und Adressen aus den Speicherunterarrays 120 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 und die Daten mithilfe der Scan-Kette auslesen.
  • Es sollte ferner beachtet werden, dass jedes Unterarray 120 Adressregister umfasst, die mit Datenpufferregistern verbunden sind, ähnlich einer Architektur, die in einer DRAM-Speichervorrichtung verwendet wird, d.h. als DDRx in 3DXP oder als LPDDRx.
  • 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. Die ECC-Zellen ermöglichen es dem SoC-Controller zu erkennen, ob der Daten- und Adressinhalt beschädigt ist.
  • Zum Beschreiben und Löschen der Speicherzellen des Arrays 90 ist ein spezieller logischer Schaltungsteil vorgesehen, der einen vereinfachten RISC-Controller (Reduced Instruction Set Computer) oder eine Modify Finite State Machine enthält, d. h. die logische Schaltung zur Handhabung der Programmier- und Löschalgorithmen.
  • In einer Ausführungsform der vorliegenden Offenbarung implementiert die Speicherkomponente 1 einen Speicher vom Typ mit direktem Speicherzugriff, um das eingebettete Speicherarray bekannter SoC-Vorrichtungen zu ersetzen.
  • Darüber hinaus wird eine JTAG-Schnittstelle 210 als reguläre Benutzerschnittstelle verwendet, um das Array zu modifizieren und den Speicherblöcken die Leseadressen bereitzustellen. Die JTAG-Schnittstelle 210 wird auch zum Testen der Speicherkomponente 1 verwendet, was die Wiederverwendung des Testwerkzeugs ermöglicht. Daher umfasst der Speicherbaustein 1 auch eine JTAG-Logik.
  • Die Speicherkomponente 1 verwendet die Verbindungspads 250 und den Logikschaltungsabschnitt, um die Verbindung mit der SoC-Struktur 10 zu ermöglichen.
  • Die endgültige Konfiguration wird ein SoC/Flash-Array mit direkter Verbindung sein, wobei die Leseverstärker 9 mit dem SoC in einer Konfiguration mit direktem Speicherzugriff 1 verbunden sind.
  • Der Direct Memory Access ermöglicht es, die endgültige Latenz, die der SoC beim Lesen der Daten erfahren kann, zu reduzieren. Darüber hinaus wird die endgültige Latenzzeitauch durch den Blockformfaktor, die Verteilung der Leseverstärker zwischen den Blöcken, die Auswahl der Vergleichsschwelle in den Leseverstärkern und den optimierten Pfad reduziert.
  • Zu den Verbindungen gehören auch die JTAG-Schnittstelle 210 und Steuerpins für Tests und andere Zwecke. Der Kern des SoC-Geräts 10 kann unter Verwendung einiger interner Pads 270 auf die JTAG-Schnittstelle 210 zugreifen. Solche Pads sind schnell und haben die Fähigkeit, die maximale Frequenz zu unterstützen. Genauer gesagt werden Hochgeschwindigkeits-Pads 250 im schnellen Lesepfad gegenüber dem SoC verwendet, während ein Niedergeschwindigkeitspfad der Testphase gewidmet ist. Die JTAG-Zellen sind Teil des schnellen Pfads, aber die JTAG-Schnittstelle verwendet den langsameren Pfad.
  • Gemäß der vorliegenden Offenbarung ist die Speicherkomponente 1 mit einem Controller 230 des Flash-Arrays 90 (im Folgenden als Flash-Array-Controller bezeichnet) ausgestattet. Der Flash-Array-Controller 230 weist eine Architektur auf, die es ermöglicht, einige Flash-Array-Ressourcen mit dem SoC-Controller zu verwenden, ohne die Geheimhaltung bestimmter darin gespeicherter Informationen (zum Beispiel Algorithmen, Flash-Array-Spannungen, -Ströme und mehr allgemeiner Prozessinformationen) zu gefährden, und garantiert eventuelle Kundenretourenmanagement. Dies wird durch die Annahme einer speziellen Struktur ermöglicht, bei der der Benutzer in einem ersten Bereich seine eigene Firmware schreiben und in einem zweiten anderen Bereich mit der internen Firmware des Controllers interagieren kann.
  • Darüber hinaus ist eine Boundary-Scan-Architektur 260 zum Testen und zum Verwalten der Speicherarray-Leseregister vorgesehen.
  • Eine Ausführungsform der vorliegenden Offenbarung betrifft eine Vorrichtung, umfassend:
    • - ein Host-Gerät oder ein System-on-Chip:
    • - eine Speicherkomponente mit einer unabhängigen Struktur und mit mindestens einem Array von Speicherzellen, die in Unterarrays mit zugeordneten Decodier- und Leseschaltungen organisiert sind;
    • - eine JTAG-Schnittstelle in dem mindestens einen Array von Speicherzellen mit einer Boundary-Scan-Architektur;
    • - ein Befehlsregister in der Boundary-Scan-Architektur der JTAG-Schnittstelle, das mindestens ein paar Bits enthält, die das Vorhandensein eines Testdateneingangs-(TDI)-Signals anzeigen.
  • Darüber hinaus wird parallel zu diesem Befehlsregister auch mindestens ein Datenregister geladen.
  • Die JTAG-Schnittstelle ist eine endliche State Machine FSM, die die Operationsschritte der Boundary-Scan-Architektur steuert und das in einem einzigen Taktzyklus geladene Befehlsregister enthält.
  • Der Inhalt der vorliegenden Offenbarung bezieht sich auf ein Speicherarray mit mehreren Unterarrays 220 und mehreren Speicherblöcken in jedem Unterarray. Darüber hinaus sind in jedem Block mehrere erweiterte Seiten unabhängig adressierbar, und jede erweiterte Seite enthält eine Gruppe von Daten, Adressen und ECC-Bit. Die erweiterte Seite einschließlich der Gruppe von Daten, Adresse und ECC-Bit umfasst mindestens 168 Bit.
  • Insbesondere kann die Architektur eines Speicherblocks, der jede Stelle des Speicherarrays umfasst, als erweiterte Seite definiert werden. Eine erweiterte Seite enthält 128-Bit-I/O, die für den SoC benötigt werden, und ein 16-Bit-ECC mit 24-Bit-Adressierung (bis zu 2 GB verfügbarer Speicherplatz).
  • Anders gesagt, die atomare Seite von 128 Bit, die in jedem Unterarray 220 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.
  • Jeder Speicherblock enthält mindestens 256 Zeilen und jede Zeile enthält sechzehn erweiterte Seiten der obigen Größe. Jede erweiterte Seite enthält mindestens 168 Bits als Kombination aus Daten-, Adressierungs- und ECC-Bits. Daher kann jede Zeile des Speicherarrays bis zu sechzehn Doppelwörter von jeweils 32 Bits plus die Adress- und ECC-Bits pro Seite enthalten. Wie bereits gesagt 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.
  • Um nur einen numerischen Wert anzugeben, wird eine erweiterte Seite aus 128 + 16 + 24 = 168 Bits gebildet, und sechzehn erweiterte Seiten pro Zeile umfassen 168 * 16 = 2688 Bits.
  • Daher enthält jede Zeile eines Speicherblocks mindestens sechzehn Seiten, die ein Speicherwort plus die entsprechenden Adressbits und die entsprechenden ECC-Bits umfassen. Offensichtlich kann eine andere Größe ausgewählt werden und der berichtete Wert dient nur der Veranschaulichung eines nicht einschränkenden Beispiels. Das Ergebnis der Blöcke wird direkt vom Host-Gerät oder SoC 10 gesteuert, ohne Hochleistungs-Ausgangspuffer der bekannten Lösungen zu verwenden und den Pfad dank der modifizierten und optimierten JTAG-Schnittstelle 210 zu optimieren.
  • Wiederum unter Bezugnahme auf 2 werden die Ausgänge der Leseverstärker SA pro Unterarray 220 durch eine interne Schaltung einer Leseschnittstelle 240 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 erbunden, die später 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 32, 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 Bits vorzubereiten, wenn das System mit zwei Seiten von 128 Bit strukturiert ist.Dies ist der Grund, eine erweiterte Seite von 2x128bitsplus entsprechende Adressen und ECC-Bits gewählt zu haben. 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 load_data [0, 1].... bei Verwendung der erweiterten Seite muss die Adresse nicht inkrementiert werden. Insbesondere ist load_data[1:0] mit einer Adresse verknüpft, die anzeigt, welcher Teil der Daten vom SoC benötigt wird.
  • Unter Bezugnahme auf das Beispiel von 3C Wenn der SoC 10 bis zu 256 Bits gleichzeitig benötigt ohne Berücksichtigung der Adresse und der ECC-Bits, werden die Datenpuffer dupliziert, um sie verschieben zu können, wobei angenommen wird, dass die Adresse 0 des Subarrays 0 verwendet wird:
    • Erster Durchgang der ersten Gruppe von Bits: Data 0_0_H [127:0] + Add Bits + ECC
    • Zweiter Durchgang der zweiten Gruppe von Bits: Data 0_0_L [127:0] + Add Bits + ECC.
  • Diese Auswahl erfolgt unter Verwendung von load_data[1:0] als Selektor der oberen Seite oder der unteren Seite.
  • Die Adresspuffer werden unter Verwendung von JTAG-Zellen hergestellt, wie später beschrieben wird.
  • Gemäß den Standards IEEE 1149 und 1532 bezüglich JTAG wird das Protokoll IEEE 1532 als erweiterter Befehlssatz verwendet, um in jedem Subarray zu arbeiten.
  • Die Notwendigkeit einer sehr geringen Anfangslatenz und eines hohen Durchsatzes treibt die Erzeugung des folgenden Schemas für die Adressierung pro Unterfeld an. 3D zeigt Zeilenadresspuffer und die entsprechenden Zeilendatenpuffer in der Struktur ähnlich dem DRAM, aber hier haben wir die Superseitenadressen und die entsprechenden Daten übernommen, d.h. 168 × 2.
  • Der Satz von Anweisungen zum Adressieren des implementierten Speichers kann von zwei Arten sein:
  • Laden der globalen Adresse: In diesem Fall erhalten alle Sub-Arrays die Adresse in mehreren Schritten mit einem Befehl, d.h. Ioad_global_address_0, load_global_address_1 usw.
  • Laden der lokalen Adresse: In diesem Fall erhält nur das adressierte Register im ausgewählten Subarray die neue Adresse, d.h. local_address_0_0, local_address_0_1, local_global_address_1_3 usw.
  • Jedes Unterarray enthält einen Satz von 4x Datenregistern, beispielsweise 2x (4x (Daten + Adresse + ECC-Register)), die jeweils einem Adressregister entsprechen. 4x Datenregister enthalten eine Superseite, das heißt: data_H + data L, wobei data_H und data_L den oberen bzw. unteren Teil der Daten bezeichnen.. Mit anderen Worten, es sind die Datenabschnitte, die sequentiell geladen werden, z.B. von der ersten erweiterten Seite und der zweiten erweiterten Seite, die beispielsweise zusammen die sogenannte Superseite bilden.
  • Das Adressregister wird mit dem TDI (Test Data In) verbunden, wenn eine globale und eine lokale Adresse unter Verwendung einer geeigneten Jtag-Sequenz richtig zwischengespeichert werden, nämlich: Laden des globalen Adressbefehls in das IR, dann Laden der Sub-Array-Adresse, dann Laden als Befehl den lokalen Adressbefehl, Laden der Adresse der zu lesenden erweiterten Seite, dann Laden des Lesebefehls, gefolgt von Run/Testidle, um das Lesen von der ausgewählten Stelle auszuführen.
  • Gemäß der vorliegenden Erfindung erfolgt das Laden der Register nacheinander, der flexible TDI erhöht die zulässige Anzahl von Bits, abhängig von der Art des Registers: Befehlsregister (jeweils 4 Bit), Adresse (8 Bit), Daten (128 Bits) usw., um die gesamte Datenzeilenbreite zu nutzen. Mit anderen Worten, der flexible TDI ist registerabhängig, wobei die einzige Einschränkung im IR besteht, wo die JTAG-Standards das Minimum von zwei Taktzyklen zum Laden des Befehls vorschreiben. Im Gegenteil, das TDO ist immer ein Bit.
  • Mit einem Global_Address_Loadx-Befehl wird gleichzeitig das Nibble von acht Bits in die entsprechenden Register geladen:
  • Global_Address_Load0 im Befehlsregister erzeugt das Laden von addr0_0. Dieser Befehl kann beispielsweise das Subarray 0 adressieren; ähnlich geschieht dies für die Auswahl der entsprechenden Subarray-Adressregister addr1_0, addr2_0 und addr3_0 unter Verwendung von drei TCK-Zyklen, wenn sich die endliche Zustandsmaschine der JTAG-Schnittstelle im Shift_DR-Zustand befindet.
  • Local_Address_Load0_0 im Befehlsregister erzeugt das Laden von addr0_0 unter Verwendung von drei TCK-Zyklen, wenn sich der endliche Automat im Shift_DR-Zustand befindet. Dieser Befehl adressiert beispielsweise das Register 0 des ausgewählten Subarrays. Dies bedeutet, dass bei Erreichen des ShiftDR das TDI mit dem Eingang dieses Schieberegisters und das TDO mit dem Ausgang verbunden wird, wenn das flexible TDI verwendet wird, benötigen wir nur drei Taktperioden Tck, um die gesamte Adresse innerhalb der ausgewählten Adresse zu haben registrieren, sonst bräuchten wir 24 Taktperioden Tck.
  • Diese Anweisungen (Global_Address_Load0, Global_Address_Load1, Global_Address_Load2, Global_Address_Load3) ermöglichen das Vorladen der Adresse für alle im Flash-Array implementierten Kanäle. Diese vier Befehle werden implementiert, um eines der vier Unterarrays auszuwählen. In einer möglichen Implementierung mit acht Kernen benötigen wir acht Befehle, einen für jeden Kern oder eine Methode, um einen der Kerne mit einem Befehl und einer Sub-Array-Adresse auszuwählen. Daher ermöglicht die Einführung des obigen Befehls, die Kommunikation zwischen der SoC-Struktur 10 und der Speicherkomponente 1 zu optimieren, wodurch die Übertragungsleistung zum Controller verbessert wird
  • Die Anweisungen (Local_Address_Load0_0, ...., Local_Address3_3) ermöglichen die Verwendung eines einzelnen Kerns/Kanals, ohne dass der Controller den gesamten Satz von Kernen verwalten muss, wenn nur einer arbeitet. Diese Anweisungen dienen zum Auswählen eines der Adressregister des ausgewählten Subarrays.
  • Die Abtastketten der JTAG-Zellen am Ausgang jedes Leseverstärkers 9 jedes Unterarrays 220 sind miteinander verbunden, um ein einzigartiges Schieberegister zu bilden, um die oben erwähnten Verbindungen richtig zu testen, wie später ausführlicher offenbart wird.
  • Diese Architektur ist sehr skalierbar, und die Erweiterung bzw. Verringerung der Dichte des endgültigen Geräts erfolgt lediglich durch Spiegelung bzw. Erhöhung der Anzahl der Blöcke jedesSubarrays 220 auf sehr skalierbare Weise.
  • 3 zeigt eine schematische Ansicht der Hauptkomponenten der nichtflüchtigen Speicherkomponente 1 der vorliegenden Offenbarung.
  • Wie wir zuvor gesehen haben, ist jedes Unterarray 220 mit der SoC-Vorrichtung auf eine Weise mit direktem Speicherzugriff gekoppelt. Ein JTAG-TAP ist pro Flash-Array einzigartig und ist Teil der JTAG-Schnittstelle 210, die die Benutzer- und Testmodusschnittstelle des Geräts ist. Eine modifizierte JTAG-Zelle wird verwendet, um den Pfad für das aktive SoC zu reduzieren, wenn der schnelle Ausgang mit dem SoC verwendet wird.
  • Die JTAG-Schnittstelle 210 empfängt als Eingänge Standard-JTAG-Signale: TRST, TCK, TDI sowie Daten von einer Speicherseite von 128 Bit.
  • Gemäß Ausführungsformen der vorliegenden Offenbarung wird ein erweiterter TDI als flexibler TDI verwendet. Die Flexibilität ergibt sich aus der Tatsache, dass die Anzahl der parallelen Bits, die als TDI arbeiten, von den ausgewählten Registern abhängt, z. B. vier Zeilen für das Befehlsregister, acht Zeilen für das Adressregister und 128 Zeilen für das Datenregister, usw.
  • Das Signal TDI stammt also vom JTAG-Protokoll, das TDI als Namen für das zum Füllen der Register verwendete Signal verwendet, aber die vorliegende Offenbarung verwendet ein erweitertes TDI, da das gemeinsame Eingangssignal einer normalen JTAG-Schnittstelle erweitert wurde, um auch weitere Eingabe-/ Ausgangspads für entsprechende Signale: T_Busy, T_Analog, T_TestRun.
  • Die geladenen JTAG-Register erzeugen als Ausgabe Daten, Adressen und Steuersignale, die an die interne Flash-Steuerung 230 übertragen werden, um Modifizierungsoperationen an dem ausgewählten Bereich des Unterarrays 120 durchzuführen. Genauer gesagt steuert der Adressdecoder 320 die Auswahl der Zeile und Spalte, die durch die Ausgabe der Ladungspumpen angesteuert werden, die Ladungspumpen liefern die richtige Spannung, wenn sie benötigt wird, um die verschiedenen Operationen durchzuführen, d.h. Programmieren, Lesen, Löschen in dem ausgewählten Bereich des Unterarrays.
  • Die Aktivität des Decoders wird durch Ladungspumpen 360 ermöglicht, die so strukturiert sind, dass sie die Spannungen und Zeitabläufe zum Verwalten des Arrays geheim halten; diese Merkmale werden von der Firmware des Flash-Controllers 230 gehandhabt und die Pumpen erhalten eine Zielspannung von dem Flash-Controller.
  • Dieser Decoder 320 adressiert den ausgewählten Speicherblock. Der Adressdecoder 320 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 240 sind mit der SoC-Vorrichtung 10 unter Verwendung der modifizierten JTAG-Zellen verbunden. Der Kommunikationskanal zwischen den Flash-Array-Blöcken und dem SoC-Gerät 10 wird durch einen Steuer- und Statusbus 350 repräsentiert.
  • Die Ausgabe der Leseschnittstelle 360 wird durch die Reihe von 168 Bit für jedes Unterarray 220 dargestellt, das zuvor offenbart wurde.
  • Die Implementierung dieser Mechanismen ist eine der Komponenten der durchgeführten Optimierungsaktivitäten an der offenbarten Vorrichtung und hat Auswirkungen auf den hohen Durchsatz, wodurch die Optimierung des Lesevorgangs des Speicherarrays sichergestellt wird.
  • 4 zeigt eine schematische Ansicht einer generischen Spalte des Speicherunterarrays mit mindestens einer Speicherzelle MC, die mit einem Leseverstärker SA gekoppelt ist. Offensichtlich hat die Spalte eine Vielzahl von Zellen, wie MC, und diese Figur zeigt einen generischen Gesamtpfad von der Speicherzelle zum Kerneingang.
  • Die Leseverstärker SA des Speicher-Subarrays sind direkt mit einer modifizierten JTAG-Zelle 500 verbunden, die später unter Bezugnahme auf offengelegt wird, um eine JTAG-Struktur und die Leseverstärker in einem einzigen Schaltungsteil 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 220 sind mit der modifizierten JTAG-Zelle 500 auf die in 4 gezeigte Weise gekoppelt, selbst wenn andere weniger wichtige Schaltungen nicht gezeigt sind.
    PIN: vom Ausgang eines Leseverstärkers (oder vom Ausgangspuffer nach dem Leseverstärker)
    POUT: zum entsprechenden SoC-Korrespondenten Data I/O
    SIN: ist der serielle IN-Eingang, der mit dem SOUT der modifizierten JTAG Zelle verbunden ist.
    SOUT: ist der serielle Ausgang, der mit dem SIN der nächsten JTAG-Zelle verbunden ist
  • Die von den miteinander verbundenen JTAG-Zellen 500 gebildete Scan-Kette 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 Latches zu arbeiten.
  • Der Leseverstärker SA ist mit der Spalte von Speicherzellen als Teil der Leseschaltung verbunden, die verwendet wird, wenn Daten aus dem Speicherarray gelesen werden. Im Allgemeinen wird eine erweiterte Seite von 168 plus 168 Bits als Kombination aus Daten-, Adressierungs- und ECC-Bits in ein paar Taktimpulsen gelesen.
  • 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.
  • Dank der Speicherarchitektur der vorliegenden Offenbarung ist es möglich, von einem parallelen Modus zum Abrufen von Daten und Adressen aus den Speicherteilfeldern 220 in einen seriellen Modus zur Überprüfung der Verbindungen zwischen der Speicherkomponente 1 und dem zugehörigen Host-Gerät 10 überzugehen mit weiterer Analyse des Speicherergebnisses, Auslesen der Daten unter Verwendung der von den modifizierten JTAG-Zellen gebildeten Scan-Kette..
  • Der Übergang vom parallelen zum seriellen Modus wird von der JTAG-Schnittstelle 210 verwaltet. 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.
  • Wie in 5 gezeigt, kann die JTAG-Zelle 500 als ein funktionales Element 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.
  • Die Verwendung der durch die modifizierten JTAG-Zellen gebildeten Scan-Kette wird 256 Bits ausgeben, da eine erste Lesephase abgeschlossen ist, während eine zweite im Hintergrund vorbereitet wird. Bei Einbeziehung der Sicherheitsdaten geben die modifizierten JTAG-Zellen 256 Bits für Daten, 32 Bits für Adresszellen und 48 Bits für ECC-Zellen aus.
  • Durch Verwenden des Zustands „Erfassen“ des FSM- und TAP-Controllers und des Shift-Befehls für den erfassten Inhalt kann ein Testprozess durchgeführt werden, um zu überprüfen, dass 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 Latch 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 von einem Steuersignal ShiftDR angesteuert und hat Ausgänge MO1. Die Zelle 500 hat einen Ausgang MO2, der dem Ausgang des zweiten Multiplexers 552 und dem parallelen Ausgang POUT entspricht.
  • 8 zeigt ein Diagramm, das die Operationen einer Finite State Machine basierend auf dem JTAG-Protokoll berichtet;
  • Dieser Ausgang MO1 ist mit einem ersten Eingang des ersten Latchs oder Flipflops 501 verbunden, der an einem zweiten Eingangsanschluss ein Taktsignal ClockDR empfängt.
  • Der erste Latch 501 ist in Kette mit dem zweiten Latch 502 verbunden, wobei ein erster Ausgang des ersten Latchs 501 mit einem ersten Eingang des zweiten Latchs 502 verbunden ist.
  • Es ist wichtig zu beachten, dass der Ausgang des ersten Latchs 501 auch der serielle Ausgang SOUT der gesamten JTAG-Zelle 500 ist.
  • Ein zweiter Eingangsanschluss des zweiten Latchs 502 empfing ein Signal UpdateDR.
  • Der zweite Latch 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 Latches 521 und 522, die zwischen dem parallelen Eingangspin und dem zweiten Multiplexer 552 bereitgestellt sind. Mit anderen Worten beinhaltet die JTAG-Zelle 500 die Boundary-Scan-Zelle 580 und mindestens die weiteren Latches 521 und 522. Diese Latches 521 und 522 sind sowohl dem direkten Lesen, d.h. den ersten 168 Bits, als auch dem Schattenlesen, d.h. dem zweiten Teil der 2x168-Seite, gewidmet.
  • Wir werden diese weiteren Latch im Folgenden als einen dritten Latch 521 und einen vierten Latch 522 bezeichnen. In anderen Ausführungsformen kann eine längere Kette von Latches verwendet werden und daher hängt die Größe der Superseite (2 × 168 Bits in diesem Beispiel) von der Tiefe der Latches oder Flip-Plops in diesem Pfad ab.
  • Insbesondere sind der dritte Latch 521 und der vierte Latch 522 in einer kleinen Pipeline-Konfiguration verbunden, wobei der dritte Latch 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 Latch 522 empfängt an einem ersten Eingang die Ausgabe des dritten Latch 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 Latchs 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 Latch, des dritten und des vierten Latchs 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 220 gekoppelt ist. Wie üblich stellt das Speicherarray einen Leseverstärker für jede Spalte von Speicherzellen bereit, wie in 4 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 (168) Bits (immer ohne die Adressbits und die ECC-Bits) zum gleichzeitigen Lesen einer kombinierten Speicherseite aus den vier Unterarrays 220.
  • Wie bereits berichtet, kann der Kommunikationskanal zwischen der Speicherkomponente und der SoC-Struktur jedoch bis zu 2x168 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 den ersten oder höheren Teil der 128 Bits der zu lesenden Daten mit dem zweiten oder niedrigeren 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 Latch 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 Latch 521 oder 522 geladen werden, sich der andere Latch im Bereitschaftszustand befindet, aber bereit ist, die Daten zu empfangen nachfolgenden Datenteil.
  • Daher wird der erste Abschnitt mit 168 Bit (ohne Berücksichtigung der Adressbits und der ECC-Bits) 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 Latch 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 Subarrays für jedes Doppelwort). Insbesondere können die gemeinsamen Data_Load[1:0] - Signale mit einer geeigneten Logik als Lesesignale vom SoC verwendet werden, um die gesamten 2x168 Bits einschließlich der Sicherheitsdaten zu empfangen.
  • Die Signalerzeugung wird intern in dem Sinne gesteuert, dass der SoC nur ein Signal oder einen Befehl zum Bereitstellen des zweiten Teils der Superseite bereitstellt, während das interne Lesen von der gelesenen Finite-State-Maschine im Flash-Array unter Verwendung einer 168-Bit-Parallelität verarbeitet wird.
  • In dieser Speicherarchitektur kann jeder Puffer die gesamte Superseite enthalten, so dass der Leseverstärker frei bleibt, um in einem anderen Speicherplatz zu lesen.
  • Das Vorhandensein der modifizierten JTAG-Zelle 500 ist als Ausgabe der Leseverstärker besonders wichtig, da sie Folgendes ermöglicht:
    1. a. Verwenden des Boundary-Scans als Verfahren zum Überprüfen der Verbindung zwischen dem SoC 10 und der Flash-Array-Komponente 1;
    2. b. Implementieren des den direkten Speicherzugriffs, durch direkte Verbindung des Leseverstärkers mit dem Controller;
    3. c. durch den Leseverstärker die zweite 256 Bit breite Seite plus die Adresse plus die ECC vorbereiten und in die Nähe der Seite schreiben.
  • Es ist ferner möglich, eine Boundary-Scan-Testarchitektur nach dem IEEE 1149-Standard zu verwenden, die jedoch modifizierte JTAG-Zellen 500 enthält, wodurch eine neue und besondere Boundary-Scan-Testarchitektur wie die in der schematischen Darstellung in gezeigte entsteht. Für diesen Test wird nur ein getriebener Ausgang benötigt. Dies erfolgt unter Verwendung des TCK-Signals und der in den Zellen gespeicherten Daten. Der Scan-Ketten-Test erfordert wie berichtet, 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 Latch enthält und jedem Pin oder Pad auf dem Gerät zugeordnet ist.
  • 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.
  • Diese Boundary-Scan-Zellen wurden als Mittel zum Anwenden von Tests auf einzelne Halbleiterbauelemente gemäß den Ergebnissen der internationalen Arbeitsgruppe, bekannt als Joint Test Action Group (JTAG), eingeführt.
  • 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 gesamte erforderliche digitale Logik ist im Boundary-Scan-Register enthalten; jedoch interagiert die interne JTAG-FSM des Flash-Controllers mit den Zellen über das JTAG-Protokoll, das von der JTAG-Logik gesteuert wird: d.h. durch shiftDR, shiftIR, UpdateDR usw.
  • 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 210 kann als eine spezielle Schnittstelle betrachtet werden, die dem Flash-Array hinzugefügt wurde, da gemäß der vorliegenden Offenbarung zwei oder mehr Pins hinzugefügt wurden, die es dieser JTAG-Schnittstelle 210 ermöglichen, die JTAG-Register parallel zu handhaben. Mit anderen Worten, die hinzugefügten Pins erweitern nicht die JTAG-Funktionalität, sondern bieten einen flexiblen TDI, der parallele Eingänge zu den seriellen JTAG-Registern bereitstellt, um die Leistung zu optimieren
  • 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 synchron in den Reset-Zustand geschaltet wird, indem das TMS verwendet wird, das beispielsweise fünfmal abtastet, und einmal den FSM-TAP in den Reset-Zustand der Testlogik bringt. 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; da jedoch ein flexibler TDI bereitgestellt wird, ändert dies die Verfügbarkeit der Datenleitung zu einem parallelen Protokoll. 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 ist der TCK, der abhängig vom TAP-Zustand und der Registerauswahl selektiv an jedes Register gesendet wird.
  • Das Befehlsregister (IR) 620 enthält n-Bit (mit n 2) und ist zum Halten jedes aktuellen Befehls implementiert.
  • Die Architektur umfasst auch ein 1-Bit-Bypass-Register 640 (Bypass); 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 (zB 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).
  • Wie später unter Bezugnahme auf 8 erläutert, wird ein paralleler Ladevorgang 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. Die Erfassungsoperation verwendet den parallelen Eingang, um den Wert in jeder Zelle des ausgewählten Registers zu erfassen.
  • 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. Die Aktualisierungsoperation friert den Inhalt des Schieberegisters ein, um ihn stabil zu halten.
  • Abhängig von der Natur der Eingangsscanzellen werden bereits in den Eingangsscanzellen vorhandene Signalwerte in die Kernlogik geleitet.
  • In einer Ausführungsform der vorliegenden Offenbarung wird die Boundary-Scan-Architektur 600 durch ein weiteres oder zusätzliches Register 780 vervollständigt, das speziell zur Verwaltung der Speicherkomponente 1 vorgesehen ist. Dieses zusätzliche Register 780 ist ebenfalls vom Benutzer über das IEEE1532-Protokoll als Systemprogrammierstandard definierbar.
  • 7 zeigt die Boundary-Scan-Architektur 700 , die der Boundary-Scan-Architektur 600 von 6 oder der Boundary-Scan-Architektur 260 in 2 entspricht. Die schematische Darstellung von 7 zeigt nur die obligatorischen Register gemäß IEEE1149 und führt die proprietären Register des Benutzers ein, die in die Boundary-Scan-Architektur 600 der vorliegenden Offenbarung integriert sind; andere Komponenten fehlen, die für die vorliegende Offenbarung nicht relevant sind.
  • In dieser 7 ist das Boundary-Scan-Schieberegister 750, das dem Boundary-Scan-Register 650 aus 6 entspricht, im seriellen Modus mit dem TDI-Pin gekoppelt und liefert über den Multiplexer 760 einen Ausgang an den TDO-Ausgangs-Pin.
  • 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. Zum Programmieren des Speichers ist beispielsweise mindestens ein Datenregister mit einer Größe entsprechend der minimal zu programmierenden Seite im Speicherarray erforderlich, eine Datenadresse, die enthält, welche Adresse geladen werden kann, optional kann auch ein Maskenregister erforderlich sein, um zu vermeiden, dass ein Teil der Daten berührt wird.
  • Die durch den TAP-Controller 670 oder 770 repräsentierte Befehlsbenutzerschnittstelle basiert auf den Standards IEEE1149 und IEEE1532 (unter Verwendung der Schnittstelle IEEE 1149), die eine Schnittstelle mit geringer Signalanzahl implementieren, d. h. TMS, TCK, TDI, TDO, TRST (optional) mit der Fähigkeit, den internen Inhalt des zugehörigen Speicher-Subarrays 220 zu ändern.
  • Wie in 8 gezeigt, basiert der Standard IEEE 1149.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 ShiftIR 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 mehrerer Taktimpulse an TCK erreichen wir den Run/Idle-Zustand 820.
  • Wählt man nun eine „1“ aus dem Zustand 820, der für zwei Taktzyklen beibehalten wird, geht man zur Auswahl eines Datenregisterscans 840 und zu einem Befehlsregisterscan 845 über. Mit anderen Worten, TMS = „1“ wird zweimal abgetastet. 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; diese Erfassungsphase erfasst den Wert der Signale, die mit dem ausgewählten Register verknüpft sind. Insbesondere im Fall des Befehlsregisters sind die Werte 1 und 0 hartcodiert, also mit nichts verbunden.
  • Eine weitere „0“ führt zum Shift IR, der es ermöglicht, den Eingangswert TDI an den Ausgangs-TDO zu übergeben; gemäß einer JTAG-Implementierung erscheint der TDI-Wert am Eingang nach einer Anzahl von Takten gleich der Registergröße. Bei Verwendung des flexiblen TDI würde nur ein Taktzyklus ausreichen, mit Ausnahme des IR, der mindestens zwei Taktzyklen betragen muss.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 ShiftIR 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 Softwareals 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 zum Beispiel auf das Beispiel von 9 Bezug nehmen, 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 9 die TAP-Übergänge, die durch das TMS-Signal gesteuert werden (auch wenn nicht gezeigt). Wenn der Zustand ShiftDR oder ShiftIR erreicht wird; die Figur zeigt zwei Fälle von flexiblem TDI, ein Datenregister mit Bit und ein weiteres Datenregister mit 128 Bit oder 168 Bit, wenn die Sicherheitsdatenadresse und ECC-Bits eingeschlossen sind.
  • Data0 kann als Standard verwendet werden, aber für den Fall, dass das SoC 10 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 der Kanal0 auf DATA0 adressiert ist, wenn Kanal1 auf Data1 usw.
  • Der Data0 kann bei gleichzeitiger Programmierung alle Sub-Array-Leseregister parallel laden.
  • Die IEEE 1149 definiert ein serielles Protokoll. Das Befehlsregister 720 mit mindestens zwei Bits wird auch als Erkennungsverfahren verwendet.
  • Unter Bezugnahme auf das schematische Beispiel von 10 wird eine Beziehung zwischen dem Host-Gerät oder System-on-Chip 10, angezeigt mit der Nummer 1000 in 10, und dem Befehlsregister 1020, das dem Befehlsregister 720 von 7 entspricht, gezeigt.
  • Der Host 1000 kann die Schnittstellen aller an die Scan-Kette angeschlossenen Geräte in den ShiftIR-Modus versetzen und dann mit dem Einschieben eines bekannten Codeworts beginnen, wenn die gesamte serielle Kette übergeben wird, erscheint das Codewort im TDO des Hosts. Es ist anzumerken, dass TMS, TCK und TRST gemeinsame Signale sind, wobei die serielle Verbindung das TDO eines Geräts mit dem TDO eines benachbarten Geräts in der Scan-Kette verkürzt. Außerdem ist das TDI des Hosts mit dem ersten TDI der Scan-Kette verbunden, während das vom Host empfangene TDO das TDO des letzten Gerätes in der Scan-Kette ist.
  • Der Host kann die links in 10 gezeigte Kombination „10“ zählen und erhält folgende Informationen:
    • Anzahl der Geräte in der Kette; und/oder
    • Länge des Befehlsregisters jedes Geräts.
  • Der flexible TDI soll die Leistung bestimmter Operationen verbessern, d.h. ein Datenregister mit 168 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, kann die Implementierung des Flash-Arrays eine Kommunikation mit zwei Taktzyklen vorhersagen, um die Sequenz zu ermöglichen. 1 0" an das nächste Gerät gesendet werden.
  • Die vorgeschlagene Methodik wäre nicht der Standardzustand des Geräts, sondern kann in einem flüchtigen Konfigurationsregisterbit ausgewählt werden, so dass der Benutzer das Gerät so konfigurieren kann, dass es jederzeit in Flexible TDI arbeitet.
  • 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 mehrerer 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 (27)

  1. Vorrichtung, umfassend: - ein Host-Gerät oder ein System-on-Chip: - eine Speicherkomponente mit einer unabhängigen Struktur und mit mindestens einem Array von Speicherzellen, die in Unterarrays mit zugeordneten Decodier- und Leseschaltungen organisiert sind; - eine JTAG-Schnittstelle in dem mindestens einen Array von Speicherzellen mit einer Boundary-Scan-Architektur; - ein Befehlsregister in der Boundary-Scan-Architektur der JTAG-Schnittstelle, das mindestens ein paar Bits enthält, die das Vorhandensein eines Testdateneingangs-(TDI)-Signals anzeigen.
  2. Vorrichtung nach Anspruch 1 wobei die JTAG-Schnittstelle eine endliche State Machine FSM ist, die die Operationsschritte der Boundary-Scan-Architektur steuert und das in einem einzigen Taktzyklus geladene Befehlsregister enthält
  3. Vorrichtung nach Anspruch 2, wobei mindestens ein Datenregister oder dergleichen konfiguriert ist, um parallel zu dem Befehlsregister geladen zu werden.
  4. Vorrichtung nach Anspruch 2, wobei ein Datenregister, das eine vorbestimmte Anzahl von Bits enthält, konfiguriert ist, um unter Verwendung der DATEN-E/A-Fähigkeit eines entsprechenden Unterarrays geladen zu werden.
  5. Vorrichtung nach Anspruch 1, wobei ein weiteres Paar von Bits des Befehlsregisters ein auszuwählendes Datenregister anzeigt.
  6. Vorrichtung nach Anspruch 5, wobei das Befehlsregister so konfiguriert ist, dass es einen flexiblen TDI für gleichzeitige Eingaben in JTAG-Register enthält.
  7. Vorrichtung nach Anspruch 1, wobei das Befehlsregister so konfiguriert ist, dass es einen flexiblen TDI für gleichzeitige Eingaben in JTAG-Register enthält.
  8. Vorrichtung nach Anspruch 1, beinhaltend: - eine Vielzahl von Unterarrays in dem mindestens einen Array; - eine Vielzahl von Speicherblöcken in jedem Unterarray; - Darüber hinaus sind in jedem Block mehrere erweiterte Seiten unabhängig adressierbar, und jede erweiterte Seite enthält eine Gruppe von Daten, Adressen und ECC-Bit.
  9. Vorrichtung nach Anspruch 8, wobei die erweiterte Seite, die die Gruppe von Daten, Adresse und ECC-Bit enthält, mindestens 168 Bits umfasst.
  10. Vorrichtung nach Anspruch 8, wobei die erweiterte Seite, die die Gruppe von Daten, Adresse und ECC-Bit umfasst, mindestens 128 Datenbits, mindestens 24 Adressbits und mindestens 16 ECC-Bits enthält.
  11. Vorrichtung nach Anspruch 8, wobei die jedem Speicherunterfeld zugeordnete Leseschaltung so strukturiert ist, dass sie eine erweiterte Seite in einem einzigen Taktzyklus liest, um einen Kommunikationsbus mit einer entsprechenden Anzahl von parallelen Bits zu versorgen, die als TDI arbeiten und von den ausgewählten Registern abhängen.
  12. Vorrichtung nach Anspruch 11, wobei vier parallele Leitungen für das Befehlsregister, acht Leitungen für das Adressregister und 128 Leitungen für das Datenregister bestimmt sind.
  13. Speichervorrichtung, die als unabhängiger Chip strukturiert ist, um mit einer Hostvorrichtung oder einem SoC gekoppelt zu werden, umfassend: - eine Speicherkomponente mit einer unabhängigen Struktur und mit mindestens einem Array von Speicherzellen, die in Unterarrays mit zugeordneten Decodier- und Leseschaltungen organisiert sind; - eine JTAG-Schnittstelle in dem mindestens einen Array von Speicherzellen mit einer Boundary-Scan-Architektur; - ein Befehlsregister in der Boundary-Scan-Architektur der JTAG-Schnittstelle, das mindestens ein paar Bits enthält, die das Vorhandensein eines Testdateneingangs-(TDI)-Signals anzeigen.
  14. Speichervorrichtung nach Anspruch 13 wobei die JTAG-Schnittstelle eine Finite State Machine FSM ist, die die Operationsschritte der Boundary-Scan-Architektur steuert und das in einem einzigen Taktzyklus geladene Befehlsregister enthält
  15. Speichervorrichtung nach Anspruch 14, wobei mindestens ein Datenregister oder dergleichen konfiguriert ist, um parallel zu dem Befehlsregister geladen zu werden.
  16. Speichervorrichtung nach Anspruch 14, wobei ein Datenregister, das eine vorbestimmte Anzahl von Bits enthält, konfiguriert ist, um unter Verwendung der DATEN-E/A-Fähigkeit eines entsprechenden Unterarrays geladen zu werden.
  17. Speichervorrichtung nach Anspruch 13, wobei ein weiteres Paar von Bits des Befehlsregisters ein auszuwählendes Datenregister anzeigt.
  18. Vorrichtung nach Anspruch 17, wobei das Befehlsregister so konfiguriert ist, dass es einen flexiblen TDI für gleichzeitige Eingaben in JTAG-Register enthält.
  19. Speichervorrichtung nach Anspruch 13, wobei das Befehlsregister so konfiguriert ist, dass es einen flexiblen TDI für gleichzeitige Eingaben in JTAG-Register enthält.
  20. Speichervorrichtung nach Anspruch 13, umfassend: - eine Vielzahl von Unterarrays in dem mindestens einen Array; - eine Vielzahl von Speicherblöcken in jedem Unterarray; - Darüber hinaus sind in jedem Block mehrere erweiterte Seiten unabhängig adressierbar, und jede erweiterte Seite enthält eine Gruppe von Daten, Adressen und ECC-Bit.
  21. Speichervorrichtung nach Anspruch 20, wobei die erweiterte Seite, die die Gruppe von Daten, Adresse und ECC-Bit enthält, mindestens 168 Bits umfasst.
  22. Speichervorrichtung nach Anspruch 20, wobei die erweiterte Seite, die die Gruppe von Daten, Adresse und ECC-Bit umfasst, mindestens 128 Datenbits, mindestens 24 Adressbits und mindestens 16 ECC-Bits enthält.
  23. Speichervorrichtung nach Anspruch 20, wobei die jedem Speicherunterfeld zugeordnete Leseschaltung so strukturiert ist, dass sie eine erweiterte Seite in einem einzigen Taktzyklus liest, um einen Kommunikationsbus mit einer entsprechenden Anzahl von parallelen Bits zu versorgen, die als TDI arbeiten und von den ausgewählten Registern abhängen.
  24. Speichervorrichtung nach Anspruch 23, wobei vier parallele Leitungen für das Befehlsregister, acht Leitungen für das Adressregister und 128 Leitungen für das Datenregister bestimmt sind.
  25. Verfahren zum Verbessern der Kommunikation zwischen einem Host oder SoC-Gerät und einer zugehörigen unabhängigen Speicherkomponente, umfassend: - Bereitstellen einer JTAG-Finite-State-Machine-Schnittstelle oder eines RISC-Controllers in dem Speicherarray; - Auswählen eines Befehlsregisters in einer Boundary-Scan-Architektur der Schnittstelle oder des RISC-Controllers; - Laden mindestens einiger Bits des Befehlsregisters, die das Vorhandensein eines Testdateneingangssignals (TDI) anzeigen, in einem einzigen Taktzyklus und parallel zu Daten der Speicherzellen.
  26. Verfahren nach Anspruch 25, ferner umfassend das Aktivieren eines ShiftIR-Befehls der FSM-Schnittstelle durch den Host oder das SoC-Gerät, um das TDI-Signal abzurufen und zu erhalten: - eine Anzahl der Geräte in der Kette; und/oder - eine Länge des Befehlsregisters der Speichervorrichtung.
  27. Verfahren nach Anspruch 25, das den Befehl bereitstellt, der so konfiguriert ist, dass er einen flexiblen TDI für gleichzeitige Eingaben in JTAG-Registern enthält.
DE112019007386.9T 2019-05-31 2019-05-31 Verbesserte jtag-register mit gleichzeitigen eingängen Pending DE112019007386T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/000434 WO2020240223A1 (en) 2019-05-31 2019-05-31 Improved jtag registers with concurrent inputs

Publications (1)

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

Family

ID=66999857

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007386.9T Pending DE112019007386T5 (de) 2019-05-31 2019-05-31 Verbesserte jtag-register mit gleichzeitigen eingängen

Country Status (4)

Country Link
US (2) US11408935B2 (de)
CN (1) CN113939880B (de)
DE (1) DE112019007386T5 (de)
WO (1) WO2020240223A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809740B1 (en) * 2022-05-18 2023-11-07 Stmicroelectronics S.R.L. Fast and flexible RAM reader and writer
CN116224042B (zh) * 2023-04-28 2023-08-29 北京壁仞科技开发有限公司 生成测试待测器件的测试向量的方法、系统、设备和介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3287539B2 (ja) 1996-11-13 2002-06-04 富士通株式会社 テスト機構を有する処理システム
KR100240662B1 (ko) 1997-09-25 2000-01-15 윤종용 제이태그에 의한 다이나믹램 테스트장치
US6032279A (en) * 1997-11-07 2000-02-29 Atmel Corporation Boundary scan system with address dependent instructions
US6067262A (en) * 1998-12-11 2000-05-23 Lsi Logic Corporation Redundancy analysis for embedded memories with built-in self test and built-in self repair
JP2001084787A (ja) * 1999-09-09 2001-03-30 Oki Electric Ind Co Ltd 不揮発性記憶装置の書き換え回路,不揮発性記憶装置の書き換え方法およびスキャンレジスタ
US6886110B2 (en) * 2000-11-21 2005-04-26 Wind River Systems, Inc. Multiple device scan chain emulation/debugging
US20030163773A1 (en) * 2002-02-26 2003-08-28 O'brien James J. Multi-core controller
US7685380B1 (en) * 2005-06-29 2010-03-23 Xilinx, Inc. Method for using configuration memory for data storage and read operations
US7869293B2 (en) * 2007-09-28 2011-01-11 Advanced Micro Devices, Inc. Memory sense scan circuit and test interface
US7900106B2 (en) * 2008-03-28 2011-03-01 Atmel Corporation Accessing sequential data in a microcontroller
CN101782626B (zh) * 2010-03-11 2012-03-14 苏州国芯科技有限公司 一种jtag端口控制器
CN108693466B (zh) * 2017-04-12 2020-09-11 上海鹏武电子科技有限公司 一种边界扫描器件、装置及控制方法和扫描方法
US10495690B2 (en) * 2017-08-28 2019-12-03 Stmicroelectronics International N.V. Combinatorial serial and parallel test access port selection in a JTAG interface

Also Published As

Publication number Publication date
US11408935B2 (en) 2022-08-09
CN113939880A (zh) 2022-01-14
US20220382485A1 (en) 2022-12-01
WO2020240223A1 (en) 2020-12-03
US20210333323A1 (en) 2021-10-28
CN113939880B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
DE69914864T2 (de) Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente
DE3750236T2 (de) Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung.
DE102006009224B4 (de) Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
DE102013114564B4 (de) System zur Reduzierung einer Leistungsspitze während einer Abtastverschiebung auf lokaler Ebene für abtastbasierte Prüfungen
DE4041897C2 (de) Integrierte Schaltkreiseinrichtung und Abtastpfadsystem
DE69019402T2 (de) Prüfverfahren und -gerät für integrierte Schaltungen.
DE69706271T2 (de) Integrierter Rechner mit Befehlsverfolgung
DE68928613T2 (de) Bidirektionale-Boundary-Scan-Testzelle
DE60128014T2 (de) Intelligenter Prüfadapter
DE69834892T2 (de) Eingebetteter Logikanalysator
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE3886038T2 (de) Speichergerät, das einen zur Ausführung einer Selbstprüfung adaptierten statischen RAM-Speicher enthält und integrierte Schaltung, die als eingebauten statischen RAM-Speicher ein solches Gerät enthält.
DE60100476T2 (de) Unterstützung mehrerer konfigurationszustände eines fpga mittels eines auf dem integrierten schaltkreis dafür vorgesehenen prozessors
DE68928837T2 (de) Prüf-Puffer/Register
DE60309931T2 (de) Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport
DE69705813T2 (de) Diagnosesystem und Verfahren bei einer integrierten Halbleiterschaltung
DE19952272A1 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
DE19831761A1 (de) Prüfung einer integrierten Schaltungsvorrichtung während der Anbringung an einer Leiterplatte
DE102013114512B4 (de) Globales Einfangschema mit niedriger Leistung für Kerne
DE102011053359A1 (de) Latch-basierte Speichervorrichtung
DE112019007388T5 (de) Jtag-basierte architektur, die den multi-core-betrieb ermöglicht
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE112019004344T5 (de) Testsystem zur Ausführung eines integrierten Selbsttests im Einsatz für Fahrzeuganwendungen
DE112019007386T5 (de) Verbesserte jtag-register mit gleichzeitigen eingängen
DE112019007374T5 (de) Direkter speicherzugriff mit jtag-zelladresse

Legal Events

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

Owner name: LODESTAR LICENSING GROUP, LLC (N.D.GES.D.STAAT, US

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