DE102018123494A1 - Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür - Google Patents

Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür Download PDF

Info

Publication number
DE102018123494A1
DE102018123494A1 DE102018123494.5A DE102018123494A DE102018123494A1 DE 102018123494 A1 DE102018123494 A1 DE 102018123494A1 DE 102018123494 A DE102018123494 A DE 102018123494A DE 102018123494 A1 DE102018123494 A1 DE 102018123494A1
Authority
DE
Germany
Prior art keywords
fpga
memory device
storage device
fpga image
interface
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
DE102018123494.5A
Other languages
English (en)
Inventor
WooSeong Cheong
Seonghoon Woo
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020180079421A external-priority patent/KR20190056952A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018123494A1 publication Critical patent/DE102018123494A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Logic Circuits (AREA)

Abstract

Eine Speichervorrichtung (100) enthält eine Steuereinheit (110) und eine nicht-flüchtige Speichervorrichtung (120). Die Steuereinheit (110) enthält ein feldprogrammierbares Gate-Array (FPGA) (117) und empfängt ein FPGA-Image zum Aktualisieren des FPGA von außerhalb in Reaktion auf einen von außerhalb empfangenen ersten Befehl. Die nicht-flüchtige Speichervorrichtung (120) speichert das FPGA-Image. Die Steuereinheit (110) empfängt das FPGA-Image durch eine Hauptschnittstelle (MI) oder eine Nebenbandschnittstelle (SBI) und führt das FPGA-Image in Reaktion auf einen von außerhalb empfangenen zweiten Befehl aus.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität unter 35 U.S.C. § 119 der koreanischen Patentanmeldungen Nr. 10-2017-0154277 , eingereicht am 17. November 2017, und Nr. 10-2018-0079421 , eingereicht am 9. Juli 2018, beim koreanischen Amt für geistiges Eigentum, deren Offenbarungen hiermit durch Bezugnahme in vollem Umfang in den vorliegenden Text aufgenommen werden.
  • HINTERGRUND
  • Beispielhafte Ausführungsformen betreffen eine Halbleitervorrichtung. Zum Beispiel betreffen mindestens einige beispielhafte Ausführungsformen eine Speichervorrichtung, die dafür ausgestaltet ist, ein FPGA-Image durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle zu empfangen.
  • Halbleiterspeicher können klassifiziert werden in: flüchtige Speichervorrichtungen, die darin gespeicherte Daten verlieren, wenn der Strom abgeschaltet wird, wie zum Beispiel ein statischer Direktzugriffsspeicher (SRAM), ein dynamischer RAM (DRAM) und ein synchroner DRAM (SDRAM), und nicht-flüchtige Speichervorrichtungen, die darin gespeicherte Daten behalten, selbst wenn der Strom abgeschaltet wird, wie zum Beispiel ein Nur-Lese-Speicher (ROM), ein programmierbarer ROM (PROM), eine elektrisch programmierbarer ROM (EPROM), ein elektrisch löschbarer und programmierbarer ROM (EEPROM), eine Flash-Speichervorrichtung, ein Phasenänderungs-RAM (PRAM), ein magnetischer RAM (MRAM), ein ohmscher RAM (RRAM) und ein ferroelektrischer RAM (FRAM).
  • Eine Steuereinheit zum Steuern eines solchen Halbleiterspeichers umfasst allgemein ein Hardware-Modul, einen Funktionsblock, einen Schaltkreis usw. für den Zweck des Ausführens verschiedener Funktionen. Das Hardware-Modul, der Funktionsblock, der Schaltkreis usw. können in der Steuereinheit implementiert werden, und verschiedene Arten elektronischer Bauelemente, die jeweils die Steuereinheit und den Halbleiterspeicher umfassen, werden an einen Endnutzer geliefert. Sobald jedoch eine elektronische Vorrichtung an den Endnutzer ausgeliefert wird, kann es schwierig sein, das Hardware-Modul, den Funktionsblock, den Schaltkreis usw., welche die Steuereinheit bilden, aufzurüsten. Daher kann ein feldprogrammierbares Gate-Array (FPGA) in der Steuereinheit enthalten sein, um eine aufrüstfähige spezielle Funktion zu implementieren.
  • Um die spezielle Funktion der Steuereinheit aufzurüsten, kann das FPGA aktualisiert werden. In diesem Fall wird ein externer Speicher wie zum Beispiel eine Compact Flash (CF)-Karte dafür verwendet, von außerhalb ein FPGA-Image zu empfangen, das mit der Aktualisierung des FPGA verknüpft ist. Jedoch kann ein separater dedizierter Schaltkreis zum Empfangen des FPGA-Image verwendet werden, um den externen Speicher zu lesen, wodurch ein Anstieg der Kosten, eine Vergrößerung des Chips usw. verursacht werden.
  • KURZDARSTELLUNG
  • Beispielhafte Ausführungsformen stellen eine Speichervorrichtung bereit, die ein FPGA-Image durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle empfängt.
  • Gemäß einer beispielhaften Ausführungsform kann eine Speichervorrichtung eine nicht-flüchtige Speichervorrichtung und eine Steuereinheit, die ein feldprogrammierbares Gate-Array (FPGA) umfasst, umfassen, wobei die Steuereinheit dafür ausgestaltet ist, über eine Hauptschnittstelle oder eine Nebenbandschnittstelle ein FPGA-Image von außerhalb der Speichervorrichtung in Reaktion auf einen von außerhalb empfangenen ersten Befehl zu empfangen, das FPGA-Image in der nicht-flüchtigen Speichervorrichtung zu speichern, und das in der nicht-flüchtigen Speichervorrichtung gespeicherte FPGA-Image in Reaktion auf einen von außerhalb empfangenen zweiten Befehl auszuführen, um das FPGA zu aktualisieren.
  • Gemäß einer beispielhaften Ausführungsform kann eine Speichervorrichtung umfassen: eine nicht-flüchtige Speichervorrichtung, und eine Steuereinheit, die einen anwendungsspezifischen integrierten Schaltkreis (ASIC) und ein feldprogrammierbares Gate-Array (FPGA) umfasst, wobei das FPGA dafür ausgestaltet ist, mindestens einen Teil der Funktionen des ASIC auszuführen, wobei die Steuereinheit dafür ausgestaltet, ein FPGA-Image von außerhalb der Speichervorrichtung durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle zu empfangen, das FPGA-Image in der nicht-flüchtigen Speichervorrichtung zu speichern, und das FPGA-Image auszuführen, um die durch das FPGA ausgeführten Funktionen zu aktualisieren.
  • Gemäß einer beispielhaften Ausführungsform wird ein Verfahren zum Betreiben einer Speichervorrichtung bereitgestellt, die eine nicht-flüchtige Speichervorrichtung und eine Steuereinheit zum Steuern der nicht-flüchtigen Speichervorrichtung umfasst und ein feldprogrammierbares Gate-Array (FPGA) umfasst, wobei das Verfahren Folgendes umfasst: Empfangen eines FPGA-Image von außerhalb der Speichervorrichtung durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle in Reaktion auf einen von außerhalb empfangenen ersten Befehl; Speichern des FPGA-Image in der nicht-flüchtigen Speichervorrichtung; Laden des in der nicht-flüchtigen Speichervorrichtung gespeicherten FPGA-Image in Reaktion auf einen von außerhalb empfangenen zweiten Befehl; und Ausführen des aus der nicht-flüchtigen Speichervorrichtung geladenen FPGA-Image in Reaktion auf den zweiten Befehl.
  • Figurenliste
  • Die oben dargelegten sowie weitere Aufgaben und Merkmale der vorliegenden Offenbarung werden anhand der ausführlichen Beschreibung beispielhafter Ausführungsformen mit Bezug auf die beiliegenden Zeichnungen offenbar.
    • 1 ist ein Blockschaubild, das eine Ausgestaltung einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht.
    • 2 ist ein Blockschaubild, das eine beispielhafte Ausgestaltung einer in 1 veranschaulichten Steuereinheit veranschaulicht.
    • 3A, 3B und 3C sind Blockschaubilder, die beispielhafte Ausgestaltungen einer Steuereinheit von 2 veranschaulichen.
    • 4 ist ein Blockschaubild, das einen detaillierten Betrieb einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht.
    • 5 ist ein Flussdiagramm, das einen Betrieb einer in 4 veranschaulichten Speichervorrichtung veranschaulicht.
    • 6 ist ein Schaubild, das Signale veranschaulicht, die von einem Host zu einer Speichervorrichtung übertragen werden, in der beispielhaften Ausführungsform von 4.
    • 7 ist ein Flussdiagramm, das einen Betrieb einer in 4 veranschaulichten Speichervorrichtung veranschaulicht.
    • 8 ist ein Schaubild, das Signale veranschaulicht, die von einem Host zu einer Speichervorrichtung übertragen werden, in der beispielhaften Ausführungsform von 7.
    • 9 ist ein Blockschaubild, das einen detaillierten Betrieb einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht.
    • 10 ist ein Flussdiagramm, das veranschaulicht einen Betrieb einer in 9 veranschaulichten Speichervorrichtung.
    • 11 ist ein Blockschaubild, das eine Ausgestaltung einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht.
    • 12 ist ein Blockschaubild, das eine Ausgestaltung einer in 2 veranschaulichten nicht-flüchtigen Speichervorrichtung veranschaulicht.
    • 13 ist ein Schaltbild, das ein Beispiel eines beliebigen von Speicherblöcken veranschaulicht, die in einem Speicherzellen-Array von 12 enthalten sind.
    • 14 ist ein Blockschaubild, das ein Festkörperlaufwerksystem veranschaulicht, auf das eine nicht-flüchtige Speichervorrichtung gemäß der vorliegenden Offenbarung angewendet wird.
    • 15 ist ein Blockschaubild, das ein Computersystem veranschaulicht, auf das eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung angewendet wird.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden können beispielhafte Ausführungsformen der vorliegenden Offenbarung in einem solchen Umfang im Detail und klar beschrieben werden, dass ein Durchschnittsfachmann auf einfache Weise die vorliegende Offenbarung implementieren kann.
  • Komponenten, die in der detaillierten Beschreibung unter Verwendung von Begriffen wie „Teil“, „Einheit“, „Modul“ usw. und von in den Zeichnungen veranschaulichten Funktionsblöcken beschrieben werden, können mit Software, Hardware oder einer Kombination davon implementiert werden. In einer beispielhaften Ausführungsform kann die Software ein Maschinencode, Firmware, ein eingebetteter Code und Anwendungssoftware sein. Zum Beispiel kann die Hardware eine elektrische Schaltung, eine elektronische Schaltung, einen Prozessor, einen Computer, einen integrierten Schaltkreis, integrierte Schaltkreiskerne, einen Drucksensor, einen Trägheitssensor, ein Mikroelektromechanisches System (MEMS), ein passives Element oder eine Kombination davon umfassen.
  • 1 ist ein Blockschaubild, das eine Ausgestaltung einer Speichervorrichtung 100 gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht.
  • Wie in 1 zu sehen, ist eine beispielhafte Ausführungsform veranschaulicht, bei der die Speichervorrichtung 100 mit einem Host 10 verbunden ist.
  • Der Host 10 kann eine Hauptschnittstellenschaltung 11, eine Nebenbandschnittstellenschaltung 12 und einen Host-Speicher 13 umfassen. Der Host 10 kann einen Dienst für einen Nutzer erbringen, indem er mit der Speichervorrichtung 100 kommuniziert. Zum Beispiel kann der Host 10 die Speichervorrichtung 100 mit Daten versorgen, die in der Speichervorrichtung 100 gespeichert werden sollen, und kann Daten empfangen, die aus der Speichervorrichtung 100 gelesen wurden. Außerdem kann der Host 10 es erlauben, eine Steuereinheit 110 der Speichervorrichtung 100 in Hardware und/oder in Software zu aktualisieren.
  • Der Host-Speicher 13 kann Daten zum Kommunizieren mit der Speichervorrichtung 100 speichern. Zum Beispiel kann der Host-Speicher 13 Schreibdaten speichern, die in der Speichervorrichtung 100 gespeichert werden sollen, und kann Lesedaten speichern, die aus der Speichervorrichtung 100 gelesen wurden. Außerdem kann der Host-Speicher 13 Daten speichern, die dafür verwendet werden, die Speichervorrichtung 100 zu verwalten. Zum Beispiel kann der Host-Speicher 13 ein Image eines feldprogrammierbaren Gate-Arrays (FPGA) speichern, das zum Aktualisieren eines FPGA 117 verwendet wird.
  • Die Speichervorrichtung 100 kann die Steuereinheit 110 und eine nicht-flüchtige Speichervorrichtung 120 umfassen. Die Steuereinheit 110 kann eine Hauptschnittstellenschaltung 111, eine Nebenbandschnittstellenschaltung 112 und das FPGA 117 umfassen.
  • Die Steuereinheit 110 kann den Gesamtbetrieb der Speichervorrichtung 100 steuern. Zum Beispiel kann die Steuereinheit 110 in Reaktion auf einen von dem Host 10 empfangen Befehl eine Leseoperation und/oder eine Schreiboperation ausführen. Zum Beispiel kann die Kommunikation zwischen dem Host 10 und der Speichervorrichtung 100 durch die Hauptschnittstellenschaltungen 11 und 111 ausgeführt werden. Zum Beispiel können die Hauptschnittstellenschaltungen 11 und 111 gemäß einem Peripheral Component Interconnect express (PCIe)-Schnittstellenprotokoll miteinander kommunizieren.
  • Jedoch ist dies ein Beispiel. Eines oder mehrere von verschiedenen Schnittstellenprotokollen wie zum Beispiel USB, Small Computer System Interface (SCSI), mobile PCIe (M-PCIe), Advanced Technology Attachment (ATA), Parallel ATA (PATA), Serial TA (SATA), Serial Attached SCSI (SAS), Integrated Drive Electronics (IDE), enhanced IDE (EIDE), Nonvolatile Memory Express (NVMe) und Universal Flash Storage (UFS) können für die Kommunikation zwischen den Hauptschnittstellenschaltungen 11 und 111 verwendet werden.
  • Die Steuereinheit 110 kann dafür ausgestaltet sein, das FPGA 117, das sich in der Steuereinheit 110 befindet, in Reaktion auf einen von dem Host 10 empfangen Befehl CMD zu aktualisieren. Zum Beispiel kann das FPGA-Image für eine Kommunikation zwischen den Hauptschnittstellenschaltungen 11 und 111 empfangen werden. Der Befehl CMD, der empfangen wird, um das FPGA 117 zu aktualisieren, kann ein Schreibbefehl oder ein anbieterspezifischer Befehl sein. Die Steuereinheit 110 kann das FPGA-Image von dem Host 10 in Reaktion auf den Befehl CMD empfangen. Zusätzlich oder alternativ kann das FPGA-Image für eine Kommunikation zwischen den Nebenbandschnittstellenschaltungen 12 und 112 ausgeführt werden.
  • Die Nebenbandschnittstellenschaltungen 12 und 112 können miteinander gemäß dem Protokoll kommunizieren, das in der Management Component Transport Protocol (MCTP)-Spezifikation oder einer System Management Bus (SMBus)-Spezifikation definiert ist. In diesem Beispiel kann jede der Nebenbandschnittstellenschaltungen 12 und 112 einen Universal Asynchronous Receiver Transmitter (UART), einen Inter-Integrated Circuit (I2C) und/oder eine Serial Programming Interface (SPI) als eine physische Schicht verwenden. Jedoch sollen die Beispiele die vorliegende Offenbarung nicht beschränken. Die Nebenbandschnittstellenschaltungen 12 und 112 können ein oder mehrere verschiedene Nebenbandschnittstellenprotokolle verwenden, um die Hauptschnittstellenschaltungen 11 und 111 zu unterstützen.
  • Die nicht-flüchtige Speichervorrichtung 120 kann mehrere nicht-flüchtige Speicher zum Speichern von Daten umfassen. Zum Beispiel kann für den Fall, dass die nicht-flüchtige Speichervorrichtung 120 Flash-Speicher vom NAND-Typ umfasst, die nicht-flüchtige Speichervorrichtung 120 Speicherzellen-Arrays umfassen, die entlang mehreren Wortleitungen und mehreren Zellen-Strings ausgebildet sind, die mit einer Bitleitung unter mehreren Bitleitungen verbunden sind.
  • Jedoch beschränkt das obige Beispiel nicht die vorliegende Offenbarung. Die nicht-flüchtige Speichervorrichtung 120 kann eine oder mehrere verschiedene nicht-flüchtige Speichervorrichtungen umfassen, wie zum Beispiel einen elektrisch löschbaren und programmierbaren ROM (EEPROM), einen NOR-Flash-Speicher, einen Phasenänderungs-RAM (PRAM), einen ohmschen RAM (ReRAM), einen ferroelektrischen RAM (FRAM), einen Spin-Torque Magnetic RAM (STT-MRAM) usw.
  • Gemäß der oben kurz beschriebenen Ausgestaltung kann das FPGA-Image zum Aktualisieren des FPGA 117 von dem Host 10 durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle empfangen werden. Da ein dedizierter Schaltkreis, der einen äußeren Speicher (zum Beispiel eine CF-Karte) verbinden kann, der dafür verwendet wird, das FPGA-Image zu empfangen, nicht benötigt wird, können im Allgemeinen die Chipgröße und die Herstellungskosten verringert werden. Da eine existierende Hauptschnittstelle und/oder eine existierende Nebenbandschnittstelle verwendet werden, kann darüber hinaus die Effizienz der FPGA-Aktualisierung verbessert werden.
  • 2 ist ein Blockschaubild, das eine beispielhafte Ausgestaltung der in 1 veranschaulichten Steuereinheit 110 veranschaulicht. Die Steuereinheit 110 kann des Weiteren zusätzlich zu der Hauptschnittstellenschaltung 111, der Nebenbandschnittstellenschaltung 112 und dem FPGA 117 einen Prozessor 113, eine nicht-flüchtige Speicherschnittstellenschaltung 114 und eine Puffersteuereinheit 115 umfassen.
  • Die Hauptschnittstellenschaltung 111 und die Nebenbandschnittstellenschaltung 112 können mit dem Host 10 gemäß den oben beschrieben Protokollen kommunizieren.
  • Der Prozessor 113 kann den Gesamtbetrieb der Steuereinheit 110 steuern. Der Prozessor 113 kann verschiedene Firmware/Software ansteuern, um die Steuereinheit 110 anzusteuern oder um die nicht-flüchtige Speichervorrichtung 120 anzusteuern. Zum Beispiel kann der Prozessor 113 eine Flash Translation Layer (FTL) ansteuern, um eine Abbildungstabelle zu verwalten, in der eine Beziehung zwischen logischen Adressen und physischen Adressen der nicht-flüchtigen Speichervorrichtung 120 definiert wird. Der Prozessor 113 kann verschiedene von dem Host 10 empfange Befehle und/oder Instruktionen ausführen. Zum Beispiel kann der Prozessor 113 einen Befehl verarbeiten, der mit einem FPGA-Image verknüpft ist, das durch eine Hauptschnittstelle (MI) oder eine Nebenbandschnittstelle (SBI) empfangen werden soll.
  • Die nicht-flüchtige Speicherschnittstellenschaltung 114 kann eine Verbindung mit der nicht-flüchtigen Speichervorrichtung 120 ausführen. Zum Beispiel kann die nicht-flüchtige Speicherschnittstellenschaltung 114 mit der nicht-flüchtigen Speichervorrichtung 120 durch mehrere Kanäle verbunden sein. Die Puffersteuereinheit 115 kann einen Pufferspeicher 130 verwalten/steuern.
  • Die Hauptschnittstellenschaltung 111, die Nebenbandschnittstellenschaltung 112, der Prozessor 113, die nicht-flüchtige Speicherschnittstellenschaltung 114, die Puffersteuereinheit 115 usw., die oben beschrieben sind, können des Weiteren als ein anwendungsspezifischer integrierten Schaltkreis (ASIC) 116 hergestellt werden. Obgleich nicht in 2 veranschaulicht, kann der ASIC 116 des Weiteren einen ROM, der speichert einen Boot-Code zum Hochfahren der Speichervorrichtung 100 und einen ECC-Schaltkreis umfassen, der einen Fehler von Daten detektiert und korrigiert, die aus der nicht-flüchtigen Speichervorrichtung 120 geladen werden.
  • Das FPGA 117 kann dafür ausgestaltet sein, mindestens einige Funktionen von Hardware-bezogenem geistigem Eigentum (Intellectual Property, IP) zu implementieren, aus dem der ASIC 116 besteht. Wenn zum Beispiel eine Funktion eines speziellen Hardware-IP aktualisiert wird, so kann es schwierig (oder alternativ unmöglich) sein, das spezielle Hardware-IP zu ersetzen. In diesem Fall kann eine Funktion des zu aktualisierenden speziellen Hardware-IP unter Verwendung des FPGA-Image implementiert werden, das durch die Hauptschnittstelle MI oder die Nebenbandschnittstelle SBI von dem Host 10 empfangen wurde.
  • Ein Image-Lader 118 kann das von dem Host 10 empfangene FPGA-Image laden. Zum Beispiel kann das in der nicht-flüchtigen Speichervorrichtung oder in dem Pufferspeicher 130 gespeicherte FPGA-Image 120 in Reaktion auf einen von dem Host 10 empfangenen Befehl geladen und ausgeführt werden.
  • 3A, 3B und 3C sind Blockschaubilder, die beispielhafte Ausgestaltungen einer Steuereinheit von 2 veranschaulichen. Mit Bezug auf 2 beschriebenes Hardware-IP kann auf verschiedene Weise hergestellt werden. Zum Beispiel kann mindestens ein Teil des Hardware-IP, aus dem eine Steuereinheit besteht, mit einem ASIC und/oder einem FPGA implementiert werden. 2 wird für ein besseres Verständnis herangezogen.
  • Wie in 3A zu sehen, kann eine Steuereinheit 110a einen ASIC 116a, einen FPGA 117a und einen Image-Lader 118a umfassen. Der ASIC 116a kann die Hauptschnittstellenschaltung 111, die Nebenbandschnittstellenschaltung 112, den Prozessor 113, die nicht-flüchtige Speicherschnittstellenschaltung 114 und die Puffersteuereinheit 115 umfassen, die jeweils mit einem Hardwaremodul implementiert sind. Das FPGA 117a kann so ausgestaltet sein, dass mindestens ein Teil der Funktionen des ASIC 116a durch ein Programm implementiert wird. Zum Beispiel können der ASIC 116a und das FPGA 117a jeweils auf einer eigenen Platine montiert sein oder können in einer Packageon-Package (PoP)-Form hergestellt werden.
  • Wie in 3B zu sehen, kann eine Steuereinheit 110b einen ASIC 116b, einen FPGA 117b und einen Image-Lader 118b umfassen. Im Gegensatz zu der Ausführungsform von 3A kann das FPGA 117b innerhalb den ASIC 116b implementiert werden. Das heißt, der ASIC 116b und das FPGA 117b können mit einem einzelnen Chip implementiert werden.
  • Wie in 3C zu sehen, kann eine Steuereinheit 110c einen FPGA 117c und einen Image-Lader 118c umfassen. Im Gegensatz zu den oben beschriebenen Ausführungsformen braucht die Steuereinheit 110c keine Hardware-IP von 2 zu umfassen. Stattdessen kann das FPGA 117c dafür ausgestaltet sein, Funktionen des Hardware-IP von 2 zu implementieren.
  • Jedoch ist die vorliegende Offenbarung nicht auf die beispielhaften Ausgestaltungen beschränkt, die mit Bezug auf die 3A bis 3C beschrieben sind. Das heißt, die vorliegende Offenbarung kann auf verschiedene Ausgestaltungen angewendet werden, um das FPGA-Image für eine FPGA-Aktualisierung durch eine Hauptschnittstellenschaltung oder eine Nebenbandschnittstellenschaltung zu empfangen.
  • 4 ist ein Blockschaubild, das einen detaillierten Betrieb einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht. 5 ist ein Flussdiagramm, das einen Betrieb einer in 4 veranschaulichten Speichervorrichtung veranschaulicht. Zum besseren Verständnis erfolgt eine Beschreibung mit Bezug auf die 2, 4 und 5 zusammen.
  • Der Host 10 kann einen Schreibbefehl zum Übertragen des FPGA-Image zu der Speichervorrichtung 100 generieren und kann den Schreibbefehl zu der Speichervorrichtung 100 übertragen. Obgleich in den 4 und 5 nicht veranschaulicht, kann eine Adresse einer nicht-flüchtigen Speichervorrichtung, in der das FPGA-Image gespeichert wird, zusammen mit dem Schreibbefehl übertragen werden.
  • Die Speichervorrichtung 100 kann das FPGA-Image durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle empfangen (S110). Das FPGA-Image kann einen Befehl, einen Programmcode usw. für den Zweck des Aktualisierens mindestens eines Teils von Funktionen des Hardware-IP, aus dem die Steuereinheit 110 besteht, umfassen. Das empfangene FPGA-Image kann in der nicht-flüchtigen Speichervorrichtung 120 gespeichert werden (S120). In einer beispielhaften Ausführungsform kann das FPGA-Image in der nicht-flüchtigen Speichervorrichtung 120 gespeichert werden, nachdem es verschlüsselt wurde. In diesem Fall können des Weiteren ein dedizierter Schaltkreis und/oder dedizierte Software, Firmware usw. zum Verschlüsseln des FPGA bereitgestellt werden.
  • Für den Fall, dass das FPGA-Image vollständig gespeichert wird, kann die Steuereinheit 110 an den Host 10 eine Antwort senden, die angibt, dass das FPGA-Image vollständig gespeichert ist. Der Host 10 kann den anbieterspezifischen Befehl an die Steuereinheit 110 in Reaktion auf die Antwort senden, die von der Steuereinheit 110 kommend empfangen wird. Zum Beispiel kann der anbieterspezifische Befehl zu der Steuereinheit 110 durch die Hauptschnittstellenschaltung 111 oder die Nebenbandschnittstellenschaltung 112 übertragen werden.
  • Die Steuereinheit 110 kann das in der nicht-flüchtigen Speichervorrichtung gespeicherte FPGA-Image 120 in Reaktion auf den anbieterspezifischen Befehl laden (S130). Genauer gesagt kann der Image-Lader 118 das in der nicht-flüchtigen Speichervorrichtung gespeicherte FPGA-Image 120 in den Pufferspeicher 130 laden. Jedoch kann der Image-Lader 118 in einer anderen Ausführungsform das in der nicht-flüchtigen Speichervorrichtung gespeicherte FPGA-Image 120 in den Image-Lader 118 laden. In diesem Fall kann der Image-Lader 118 separaten Speicher zum Speichern des geladenen FPGA-Image umfassen.
  • Die Steuereinheit 110 (genauer gesagt der Prozessor 113) kann das geladene FPGA-Image in Reaktion auf den anbieterspezifischen Befehl ausführen (S135). Anschießend kann eine Power On Reset (POR)-Operation der Speichervorrichtung 100 ausgeführt werden, und einige Funktionen des Hardware-IP, die zur Aktualisierung vorgesehen sind, können aktualisiert werden (S140). Jedoch kann in einer anderen Ausführungsform selbst dann, wenn die Power On Reset-Operation der Speichervorrichtung 100 nicht ausgeführt wird, eine Funktion des Aktualisierens des FPGA 117 sofort ausgeführt werden.
  • 6 ist ein Schaubild, das Signale veranschaulicht, die von dem Host 10A zu der Speichervorrichtung 100 übertragen werden, in der Ausführungsform der 4 und 5. Zum besseren Verständnis erfolgt eine Beschreibung mit Bezug auf die 4 und 5 zusammen.
  • Um das FPGA zu aktualisieren, kann der Host 10 einen Schreibbefehl 80h und eine logische Adresse einer Region generieren, wo das FPGA-Image gespeichert wird, und kann den Befehl 80h und die logische Adresse an die Speichervorrichtung 100 senden. Eine Ausführungsform ist so veranschaulicht, dass die logische Adresse eine Seitenadresse der nicht-flüchtigen Speichervorrichtung 120 ist. Die Adressen C1 und C2 geben eine Spaltenadresse einer Seite an, und die Adressen R1, R2 und R3 geben eine Reihenadresse der Seite an. Obgleich die Ausführungsform als nur die Adressen C1, C2 veranschaulicht ist, werden R1, R2 und R3, die einer einzigen Seite entsprechen, generiert/übertragen. Es können jedoch auch Adressen generiert/übertragen werden, die mehreren Seiten entsprechen.
  • Der Host 10 kann an die Speichervorrichtung 100 Schreibdaten W-DATA senden, die von dem Schreibbefehl 80h begleitet werden. Natürlich können die Schreibdaten W-DATA das FPGA-Image sein.
  • Wenn die Schreibdaten W-DATA vollständig empfangen wurden, so kann die Steuereinheit 110 eine Antwort, die angibt, dass die Schreibdaten W-DATA vollständig empfangen wurden, an die Steuereinheit 110 senden. Der anbieterspezifische Befehl kann ein Befehl zum Ausführen des FPGA-Image sein, so dass das FPGA 117 aktualisiert wird.
  • Des Weiteren kann die Steuereinheit 110 auch eine Sicherheitsvorrichtung umfassen, um zu verhindern, dass das FPGA 117 zusätzlich aktualisiert wird. Zum Beispiel können verschiedene Vorrichtungen oder Elemente (zum Beispiel ein Widerstand) bereitgestellt werden, um einen FPGA-Image-Übertragungspfad zwischen dem FPGA 117 und der nicht-flüchtigen Speichervorrichtung 120 physisch zu blockieren.
  • Außerdem wird in dieser Ausführungsform der Schreibbefehl 80h mit Bezug auf eine Schreiboperation der nicht-flüchtigen Speichervorrichtung 120 erwähnt, aber ein Schreibbefehl ist nicht darauf beschränkt. Das heißt, in anderen Ausführungsformen können verschiedene Arten von Schreibbefehlen mit Bezug auf eine Schreiboperation einer nicht-flüchtigen Speichervorrichtung verwendet werden.
  • 7 ist ein Flussdiagramm, das einen Betrieb einer in 4 veranschaulichten Speichervorrichtung veranschaulicht. Die Ausführungsform von 7 ähnelt in weiten Teilen der oben beschriebenen Ausführungsform von 5. Im Folgenden konzentrieren wir uns auf die Beschreibung der Unterschiede. Ein Pfeil, der anzeigt, dass ein Schreibbefehl in die Schnittstellenschaltungen 111 und 112 eingegeben wird, ist durch eine Strichlinie in 4 veranschaulicht. Dies gibt an, dass in dieser Ausführungsform kein Schreibbefehl verwendet wird. Zum besseren Verständnis erfolgt eine Beschreibung mit Bezug auf die 2, 4 und 7 zusammen.
  • Um das FPGA 117 zu aktualisieren, kann der Host 10 den anbieterspezifischen Befehl generieren und kann den anbieterspezifischen Befehl an die Speichervorrichtung 100 senden. Zum Beispiel kann der anbieterspezifische Befehl mit einer Anweisung zum Speichern des FPGA-Image in der nicht-flüchtigen Speichervorrichtung 120, einer Anweisung zum Laden des gespeicherten FPGA-Image und einer Anweisung zum Ausführen des geladenen FPGA-Image verknüpft sein. Obgleich in 7 nicht veranschaulicht, kann eine logische Adresse einer Region, in der das FPGA-Image gespeichert wird, zusammen generiert/gesendet werden.
  • Die Speichervorrichtung 100 kann das FPGA-Image durch die Hauptschnittstellenschaltung 111 oder die Nebenbandschnittstellenschaltung 112 empfangen (S220). Das empfangene FPGA-Image kann in der nicht-flüchtigen Speichervorrichtung 120 auf der Basis des anbieterspezifischen Befehls gespeichert werden. Anschließend kann die Steuereinheit 110 (genauer gesagt der Image-Lader 118) das FPGA-Image auf der Basis des anbieterspezifischen Befehls laden (S230) und kann das geladene FPGA-Image ausführen (S235). Wenn eine Power On Reset-Operation der Speichervorrichtung 100 ausgeführt wird, so kann eine durch das aktualisierte FPGA auszuführende Funktion auf die Steuereinheit 110 angewendet werden (S240). Jedoch kann in einer anderen Ausführungsform die Aktualisierung auch ohne die Power On Reset-Operation der Speichervorrichtung 100 angewendet werden.
  • 8 ist ein Schaubild, das Signale veranschaulicht, die von dem Host 10A zu der Speichervorrichtung 100 übertragen werden, in der Ausführungsform der 7. Das in 8 veranschaulichte Zeitschaubild ähnelt in weiten Teilen dem in 6 veranschaulichten Zeitschaubild. Daher wird auf eine zusätzliche Beschreibung verzichtet, um Doppelungen zu vermeiden. Zum besseren Verständnis erfolgt eine Beschreibung mit Bezug auf die 4 und 7 zusammen.
  • Um das FPGA zu aktualisieren, kann der Host 10 einen anbieterspezifischen Befehl VSC (Vendor-Specific Command) und eine logische Adresse einer Region, wo das FPGA-Image gespeichert wird, generieren und kann den Befehl VSC und die logische Adresse an die Speichervorrichtung 100 senden. Nachdem der anbieterspezifische Befehl VSC und die logische Adresse vollständig übertragen wurden, kann der Host 10 Schreibdaten W-DATA (d. h. das FPGA-Image) an die Speichervorrichtung 100 senden.
  • Die Steuereinheit 110 kann das in der nicht-flüchtigen Speichervorrichtung gespeicherte FPGA-Image 120 in Reaktion auf den anbieterspezifischen Befehl VSC laden und ausführen. Im Gegensatz zu der Ausführungsform von 5, in der ein separater Schreibbefehl 80h und der anbieterspezifische Befehl generierte/übertragen werden, wird in der Ausführungsform von 8 nur der anbieterspezifische Befehl VSC generiert. Daher kann die Übertragungseffizienz des Hosts 10 und der Speichervorrichtung 100 verbessert werden.
  • 9 ist ein Blockschaubild, das einen detaillierten Betrieb einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht. 10 ist ein Flussdiagramm, das einen Betrieb einer in 9 veranschaulichten Speichervorrichtung veranschaulicht. Zum besseren Verständnis erfolgt eine Beschreibung mit Bezug auf die 2, 9 und 10 zusammen.
  • Der Host 10 kann den anbieterspezifischen Befehl zum Senden des FPGA-Image an die Speichervorrichtung 100 generieren und kann den anbieterspezifischen Befehl an die Speichervorrichtung 100 senden.
  • Die Speichervorrichtung 100 kann das FPGA-Image durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle empfangen (S310), und das empfangene FPGA-Image kann in dem Pufferspeicher 130 gespeichert werden (S320). Wenn das FPGA-Image vollständig gespeichert ist, so kann die Steuereinheit 110 (genauer gesagt der Image-Lader 118) das in dem Pufferspeicher 130 gespeicherte FPGA-Image auf der Basis des anbieterspezifischen Befehls ausführen (S335).
  • Anschließend kann eine Power On Reset (POR)-Operation der Speichervorrichtung 100 ausgeführt werden, und einige Funktionen des Hardware-IP, die zur Aktualisierung vorgesehen sind, können aktualisiert werden (S340). Jedoch kann in einer anderen Ausführungsform selbst dann, wenn die Power On Reset-Operation der Speichervorrichtung 100 nicht ausgeführt wird, eine Funktion des aktualisierten FPGA 117 sofort ausgeführt werden.
  • 11 ist ein Blockschaubild, das eine Ausgestaltung einer Speichervorrichtung 200 gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung veranschaulicht. Die Speichervorrichtung 200 kann eine Steuereinheit 210 und eine nicht-flüchtige Speichervorrichtung 220 umfassen.
  • Die Steuereinheit 210 kann eine Hauptschnittstellenschaltung 211, eine Nebenbandschnittstellenschaltung 212, einen FPGA 217 und einen Redundant Array of Inexpensive Disks (RAID)-Controller 219 umfassen. Die vorliegende Ausführungsform ähnelt in weiten Teilen der oben beschriebenen Ausführungsformen, außer dass die Steuereinheit 210 des Weiteren den RAID-Controller 219 umfasst. Daher wird auf eine zusätzliche Beschreibung verzichtet, um Doppelungen zu vermeiden.
  • Der RAID-Controller 219 kann Teile von RAID-Paritätsdaten auf der Basis des von einem Host empfangenen FPGA-Image generieren. Die Teile von RAID-Paritätsdaten können über mindestens einen Teil von mehreren nicht-flüchtigen Speichern 221 bis 22n, aus denen die nicht-flüchtige Speichervorrichtung 220 besteht, verteilt und darin gespeichert werden. Wenn also das in der nicht-flüchtigen Speichervorrichtung 220 gespeicherte FPGA-Image in Abhängigkeit von einem von dem Host empfangenen Befehl CMD geladen wird, so kann selbst dann, wenn ein Abschnitt der Teile von RAID-Paritätsdaten beschädigt ist, ein ursprüngliches FPGA-Image zurückgewonnen werden.
  • In einer anderen Ausführungsform kann - im Gegensatz zu der vorliegenden Ausführungsform für den Umgang mit einem Ausfall des FPGA-Image unter Verwendung des RAID-Controllers 219 - eine Kopie des FPGA-Image in jedem von mindestens einigen der nicht-flüchtige Speicher 221 bis 22n gespeichert werden. Alternativ kann das FPGA-Image unter Berücksichtigung beispielsweise einer nutzbaren Kapazität der nicht-flüchtigen Speichervorrichtung 220 komprimiert werden. In diesem Fall können eine separate Schaltung zum Komprimieren des FPGA-Image und/oder Firmware oder Software zum Ausführen eines Komprimierungsalgorithmus in der Steuereinheit 210 bereitgestellt/geladen werden.
  • 12 ist ein Blockschaubild, das eine Ausgestaltung der in 2 veranschaulichten nicht-flüchtigen Speichervorrichtung 120 veranschaulicht. Wie in 12 zu sehen, kann die nicht-flüchtige Speichervorrichtung 120 ein Speicherzellen-Array 121, einen Adressendecodierer 122, einen Seitenpuffer 123, eine Eingabe/Ausgabe-Schaltung 124 und eine Steuerungslogik 125 umfassen.
  • Das Speicherzellen-Array 121 kann mehrere Speicherblöcke umfassen. Jeder der Speicherblöcke kann mehrere Zellen-Strings umfassen. Jede der Zellen-Strings umfasst mehrere Speicherzellen. Die mehreren Speicherzellen können mit mehreren Wortleitungen WL verbunden sein. Jede Speicherzelle kann eine Single Level Cell (SLC) sein, die ein einzelnes Bit speichert, oder eine Multi Level Cell (MLC), die mindestens zwei Bits speichert.
  • Der Adressendecodierer 122 ist mit dem Speicherzellen-Array 121 durch die mehreren Wortleitungen WL (Word Lines), String Selection Lines (String-Auswahlleitungen) SSL und Ground Selection Lines (Erdungs-Auswahlleitungen) GSL verbunden. Der Adressendecodierer 122 kann eine Adresse ADDR von außerhalb empfangen, kann die empfangene Adresse ADDR decodieren, und kann die Wortleitungen WL ansteuern. Zum Beispiel kann die Adresse ADD eine physische Adresse des nicht-flüchtigen Speichers 120 sein, die durch Konvertieren einer logischen Adresse erhalten wird. Der oben beschriebene Adressenkonvertierungsvorgang kann durch eine Steuereinheit (zum Beispiel 110 von 1) der vorliegenden Offenbarung oder durch die Flash Translation Layer (FTL), die durch die Steuereinheit 110 angesteuert wird, ausgeführt werden.
  • Der Seitenpuffer 123 ist mit dem Speicherzellen-Array 121 durch mehrere Bitleitungen BL verbunden. Unter der Steuerung der Steuerungslogik 125 kann der Seitenpuffer 123 die Bitleitungen BL so steuern, dass von der Eingabe/Ausgabe-Schaltung 124 empfangene Daten „DATA“ in dem Speicherzellen-Array 121 gespeichert werden. Unter der Steuerung der Steuerungslogik 125 kann der Seitenpuffer 123 gespeicherte Daten in dem Speicherzellen-Array 121 lesen und kann die gelesenen Daten an die Eingabe/Ausgabe-Schaltung 124 übermitteln. In einer beispielhaften Ausführungsform kann der Seitenpuffer 123 Daten von der Eingabe/Ausgabe-Schaltung 124 durch die Seite empfangen oder kann Daten aus dem Speicherzellen-Array 121 durch die Seite lesen.
  • Die Eingabe/Ausgabe-Schaltung 124 kann Daten „DATA“ von einer externen Vorrichtung empfangen und kann die empfangenen Daten an den Seitenpuffer 123 übermitteln.
  • Die Steuerungslogik 125 kann den Adressendecodierer 122, den Seitenpuffer 123 und die Eingabe/Ausgabe-Schaltung 124 in Reaktion auf einen Befehl CMD und ein von außerhalb empfangenes Steuersignal CTRL steuern. Zum Beispiel kann die Steuerungslogik 125 jegliche anderen Komponenten in Reaktion auf den Befehl CMD und das Steuersignal CTRL so steuern, dass Daten „DATA“ in dem Speicherzellen-Array 121 gespeichert werden. Alternativ kann die Steuerungslogik 125 jegliche anderen Komponenten in Reaktion auf den Befehl CMD und das Steuersignal CTRL so steuern, dass in dem Speicherzellen-Array 121 gespeicherte Daten „DATA“ zu der externen Vorrichtung übertragen werden. Das Steuersignal CTRL kann ein Signal sein, das die Steuereinheit 110 für den Zweck des Steuerns des nicht-flüchtigen Speichers 120 bereitstellt.
  • Die Steuerungslogik 125 kann verschiedene Spannungen für den Betrieb des nicht-flüchtigen Speichers 1220 generieren. Zum Beispiel kann die Steuerungslogik 125 verschiedene Spannungen wie zum Beispiel mehrere Programmspannungen, mehrere Durchgangsspannungen, mehrere Auswahllesespannungen, mehrere Nicht-Auswahllesespannungen, mehrere Löschspannungen, mehrere Verifizierungsspannungen und dergleichen generieren. Die Steuerungslogik 125 kann die generierten Spannungen in den Adressendecodierer 122 oder in ein Substrat des Speicherzellen-Arrays 121 einspeisen.
  • 13 ist ein Schaltbild, das ein Beispiel von einem der Speicherblöcke veranschaulicht, die in einem Speicherzellen-Array von 12 enthalten sind. In einer beispielhaften Ausführungsform wird ein Speicherblock BLK mit einer dreidimensionalen Struktur mit Bezug auf 12 zusammen beschrieben.
  • Der Speicherblock BLK kann mehrere Zellen-Strings CS11, CS12, CS21 und CS22 umfassen. Die mehreren Zellen-Strings CS11, CS12, CS21 und CS22 können entlang einer Reihenrichtung und einer Spaltenrichtung angeordnet sein, um Reihen und Spalten zu bilden.
  • Zum Beispiel können die Zellen-Strings CS11 und CS12 mit String-Auswahlleitungen SSL1a und SSL1b verbunden sein, um eine erste Reihe zu bilden. Die Zellen-Strings CS21 und CS22 können mit String-Auswahlleitungen SSL2a und SSL2b verbunden sein, um eine zweite Reihe zu bilden. Zum Beispiel können die Zellen-Strings CS11 und CS21 mit einer ersten Bitleitung BL1 verbunden sein, um eine erste Spalte zu bilden. Die Zellen-Strings CS12 und CS22 können mit einer zweiten Bitleitung BL2 verbunden sein, um eine zweite Spalte zu bilden.
  • Jede der mehreren Zellen-Strings CS11, CS12, CS21 und CS22 enthält mehrere Zellentransistoren. Jede der Zellen-Strings CS11, CS12, CS21 und CS22 kann String-Auswahltransistoren SSTa und SSTb, mehrere Speicherzellen MC1 bis MC8, Erde-Auswahltransistoren GSTa und GSTb und Dummy-Speicherzellen DMC1 und DMC2 umfassen. In einer beispielhaften Ausführungsform kann jede der in den Zellen-Strings CS11, CS12, CS21 und CS22 enthaltenen Speicherzellen eine Charge Trap Flash (CTF)-Speicherzelle sein.
  • Die Speicherzellen MC1 bis MC8 können in Reihe geschaltet sein und können in einer Höhenrichtung gestapelt sein, die eine Richtung senkrecht zu einer Ebene ist, die durch die Reihenrichtung und die Spaltenrichtung definiert wird. In jedem Zellen-String können die String-Auswahltransistoren SSTa und SSTb in Reihe geschaltet sein und können zwischen den Speicherzellen MC1 bis MC8 und der Bitleitung BL1 oder BL2 angeordnet sein. In jedem Zellen-String können die Erde-Auswahltransistoren GSTa und GSTb in Reihe geschaltet sein und können zwischen den Speicherzellen MC1 bis MC8 und einer gemeinsamen Source-Leitung CSL (Common Source Line) angeordnet sein.
  • In einer beispielhaften Ausführungsform kann in jedem Zellen-String die erste Dummy-Speicherzelle DMC1 zwischen den Speicherzellen MC1 bis MC8 und den Erde-Auswahltransistoren GSTa und GSTb angeordnet sein. In einer beispielhaften Ausführungsform kann in jedem Zellen-String die zweite Dummy-Speicherzelle DMC2 zwischen den Speicherzellen MC1 bis MC8 und den String-Auswahltransistoren SSTa und SSTb angeordnet sein.
  • Die Erde-Auswahltransistoren GSTa und GSTb der Zellen-Strings CS11, CS12, CS21 und CS22 können gemeinsam mit einer Erde-Auswahlleitung GSL verbunden sein. In einer beispielhaften Ausführungsform können Erde-Auswahltransistoren in derselben Reihe mit derselben Erde-Auswahlleitung verbunden sein, und Erde-Auswahltransistoren in verschiedenen Reihen können mit einer anderen Erde-Auswahlleitung verbunden sein. Zum Beispiel können die ersten Erde-Auswahltransistoren GSTa der Zellen-Strings CS11 und CS12 in der ersten Reihe mit einer ersten Erde-Auswahlleitung verbunden sein, und die ersten Erde-Auswahltransistoren GSTa der Zellen-Strings CS21 und CS22 in der zweiten Reihe können mit einer zweiten Erde-Auswahlleitung verbunden sein.
  • In einer beispielhaften Ausführungsform können, obgleich nicht in 13 veranschaulicht, Erde-Auswahltransistoren, die, von einem Substrat (nicht veranschaulicht) aus gemessen, auf derselben Höhe angeordnet sind, mit derselben Erde-Auswahlleitung verbunden sein, und Erde-Auswahltransistoren, die auf verschiedenen Höhen angeordnet sind, können mit anderen Erde-Auswahlleitungen verbunden sein. Zum Beispiel können in den Zellen-Strings CS11, CS12, CS21 und CS22 die ersten Erde-Auswahltransistoren GSTa mit der ersten Erde-Auswahlleitung verbunden sein, und die zweiten Erde-Auswahltransistoren GSTb können mit der zweiten Erde-Auswahlleitung verbunden sein.
  • Speicherzellen auf derselben Höhe, von dem Substrat (oder den Erde-Auswahltransistoren GSTa und GSTb) aus gemessen, können gemeinsam mit derselben Wortleitung verbunden sein, und Speicherzellen auf verschiedenen Höhen, von dort aus gemessen, können mit anderen Wortleitungen verbunden sein. Zum Beispiel können die Speicherzellen MC1 bis MC8 der Zellen-Strings CS11, CS12, CS21 und CS22 mit ersten bis achten Wortleitungen WL1 bis WL8 verbunden sein.
  • String-Auswahltransistoren, die zur selben Reihe gehören, unter den ersten String-Auswahltransistoren SSTa auf derselben Höhe können mit derselben String-Auswahlleitung verbunden sein, und String-Auswahltransistoren, die zu verschiedenen Reihen gehören, unter den ersten String-Auswahltransistoren SSTa können mit anderen String-Auswahlleitungen verbunden sein. Zum Beispiel können die ersten String-Auswahltransistoren SSTa der Zellen-Strings CS11 und CS12 in der ersten Reihe gemeinsam mit den String-Auswahlleitungen SL1a verbunden sein, und die ersten String-Auswahltransistoren SSTa der Zellen-Strings CS21 und CS22 in der zweiten Reihe können gemeinsam mit den String-Auswahlleitungen SL2a verbunden sein.
  • Gleichermaßen können String-Auswahltransistoren, die zur selben Reihe gehören, unter den zweiten String-Auswahltransistoren SSTb auf derselben Höhe mit derselben String-Auswahlleitung verbunden sein, und String-Auswahltransistoren, die zu verschiedenen Reihen gehören, unter den zweiten String-Auswahltransistoren SSTb können mit anderen String-Auswahlleitungen verbunden sein. Zum Beispiel können die zweiten String-Auswahltransistoren SSTb der Zellen-Strings CS11 und CS12 in der ersten Reihe gemeinsam mit den String-Auswahlleitungen SL1b verbunden sein, und die zweiten String-Auswahltransistoren SSTb der Zellen-Strings CS21 und CS22 in der zweiten Reihe können gemeinsam mit den String-Auswahlleitungen SL2b verbunden sein.
  • Obgleich in 13 nicht veranschaulicht, können String-Auswahltransistoren von Zellen-Strings in derselben Reihe gemeinsam mit derselben String-Auswahlleitung verbunden sein. Zum Beispiel können die ersten und die zweiten String-Auswahltransistoren SSTa und SSTb der Zellen-Strings CS11 und CS12 in der ersten Reihe gemeinsam mit derselben String-Auswahlleitung verbunden sein. Die ersten und die zweiten String-Auswahltransistoren SSTa und SSTb der Zellen-Strings CS21 und CS22 in der zweiten Reihe können gemeinsam mit derselben String-Auswahlleitung verbunden sein.
  • In einer beispielhaften Ausführungsform sind Dummy-Speicherzellen auf derselben Höhe mit derselben Dummy-Wortleitung verbunden, und Dummy-Speicherzellen auf verschiedenen Höhen sind mit anderen Dummy-Wortleitungen verbunden. Zum Beispiel können die ersten Dummy-Speicherzellen DMC1 mit einer ersten Dummy-Wortleitung DWL1 verbunden sein, und die zweiten Dummy-Speicherzellen DMC2 können mit einer zweiten Dummy-Wortleitung DWL2 verbunden sein.
  • In dem Speicherblock BLK können Lese- und Schreiboperationen in Einheiten von Reihen ausgeführt werden. Zum Beispiel kann eine Reihe des ersten Speicherblocks BLK durch die String-Auswahlleitungen SSL1a, SSL1b, SSL2a und SSL2b ausgewählt werden.
  • Zum Beispiel können die Zellen-Strings CS11 und CS12 in der ersten Reihe jeweils mit den Bitleitungen BL1 und BL2 verbunden werden, wenn eine Einschaltspannung in die String-Auswahlleitungen SSL1a und SSL1b eingespeist wird und eine Ausschaltspannung in die String-Auswahlleitungen SSL2a und SSL2b eingespeist wird. Die Zellen-Strings CS21 und CS22 in der zweiten Reihe können jeweils mit den Bitleitungen BL1 und BL2 verbunden werden, wenn die Einschaltspannung in die String-Auswahlleitungen SSL2a und SSL2b eingespeist wird und die Ausschaltspannung in die String-Auswahlleitungen SSL1a und SSL1b eingespeist wird. Wenn eine Wortleitung angesteuert wird, so können Speicherzellen auf derselben Höhe unter Speicherzellen in Zellen-Strings, die mit der angesteuerten Wortleitung verbunden sind, ausgewählt werden. Die Lese- und Schreiboperationen können an den ausgewählten Speicherzellen ausgeführt werden. Die ausgewählten Speicherzellen können bilden eine physische Seiteneinheit.
  • In dem Speicherblock BLK können Speicherzellen durch den Speicherblock oder durch den Sub-Block gelöscht werden. Wenn eine Löschoperation durch den Speicherblock ausgeführt wird, so können alle Speicherzellen MC in dem Speicherblock BLK in Reaktion auf eine Löschanforderung gleichzeitig gelöscht werden. Wenn die Löschoperation durch den Sub-Block ausgeführt wird, so können einige der Speicherzellen MC in dem Speicherblock BLK in Reaktion auf eine Löschanforderung gleichzeitig gelöscht werden, während die verbliebenen Speicherzellen löschgeschützt werden können. Eine geringe Spannung (zum Beispiel eine Erdungsspannung) kann in eine Wortleitung eingespeist werden, die mit zu löschenden Speicherzellen verbunden ist, und eine Wortleitung, die mit löschgeschützten Speicherzellen verbunden ist, kann gefloated werden.
  • In einer beispielhaften Ausführungsform ist der in 13 veranschaulichte Speicherblock BLK nur ein Beispiel. Die Anzahl von Zellen-Strings kann erhöht oder verringert werden, und die Anzahl von Reihen von Zellen-Strings und die Anzahl von Spalten von Zellen-Strings können in Abhängigkeit von der Anzahl von Zellen-Strings erhöht oder verringert werden. In dem Speicherblock BLK kann die Anzahl von Transistoren (GST, MC, DMC, SST usw.) erhöht oder verringert werden, und eine Höhe des Speicherblocks BLK kann in dem Maße erhöht oder verringert werden, wie die Anzahl von Transistoren (GST, MC, DMC, SST usw.) zunimmt oder abnimmt. Außerdem kann die Anzahl von Leitungen (GSL, WL, DWL, SSL usw.), die mit Zellentransistoren verbunden sind, in dem Maße erhöht oder verringert werden, wie die Anzahl von Zellentransistoren zunimmt oder abnimmt.
  • 14 ist ein Blockschaubild, das ein Festkörperlaufwerk (SSD)-System 1000A veranschaulicht, auf das eine nicht-flüchtige Speichervorrichtung gemäß der vorliegenden Offenbarung angewendet wird. Wie in 14 zu sehen, kann das SSD-System 1000 einen Host 1400 und eine SSD 1200 umfassen.
  • Die SSD 1200 kann Signale SIG mit dem Host 1400 durch einen Signalverbinder 1201 austauschen und kann eine Leistung PWR durch einen Stromverbinder 1202 erhalten. Die SSD 1200 kann eine SSD-Steuereinheit 1210, mehrere Flash-Speicher 1221 bis 122n, einen Hilfsstromversorgung 1230 und einen Pufferspeicher 1240 umfassen.
  • Die SSD-Steuereinheit 1210 kann den Flash-Speicher 1221 bis 122n in Reaktion auf ein von dem Host 1400 empfangenes Signal SIG steuern. Zum Beispiel empfängt die SSD-Steuereinheit 1210 das FPGA-Image durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle auf der Basis der mit Bezug auf die 1 bis 11 beschrieben Ausführungsformen.
  • Die mehreren Flash-Speicher 1221 bis 122n können unter der Steuerung der SSD-Steuereinheit 1210 arbeiten. Die Hilfsstromversorgung 1230 kann mit dem Host 1400A des Stromverbinders 1002 verbunden sein. Die Hilfsstromversorgung 1230 kann durch die Leistung PWR von dem Host 1400 geladen werden. Für den Fall, dass die Leistung PWR nicht gleichmäßig von dem Host 1400 zugeführt wird, kann die Hilfsstromversorgung 1230 die Leistung des SSD-Systems 1200 bereitstellen.
  • 15 ist ein Blockschaubild, das ein Computersystem veranschaulicht, auf das eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung angewendet wird. Zum Beispiel kann ein umfassen 2000 mindestens eine von verschiedenen elektronischen Vorrichtungen enthalten, die mit einer Nebenbandschnittstelle versehen sind, wie zum Beispiel einem Desktop, einem Laptop, einem Ultramobil-PC (UMPC), einem Netbook, einem Tablet, einem Smartphone usw.
  • Wie in 15 zu sehen, kann das Computersystem 2000 umfassen: eine zentrale Verarbeitungseinheit (CPU) 2100, einen Chipsatz 2200, eine Grafikverarbeitungseinheit (GPU) 2300, ein Display 2320, einen Eingabe/Ausgabe (E/A)-Controller 2400, eine E/A-Einheit 2420, ein Netzwerkmodul 2500, einen Speicher 2600 und eine Onboard-SSD 2700. Die Onboard-SSD 1700 kann auf eine Speichervorrichtung zugreifen, in der eine Steuereinheit 2720 und eine nicht-flüchtige Speichervorrichtung 2740 usw., aus denen die Speichervorrichtung besteht, direkt auf einer Platine montiert sind.
  • Die CPU 2100, der Chipsatz 2200, die GPU 2300, der E/A-Controller 2400, das Netzwerkmodul 2500, der Speicher 2600, die Steuereinheit 2720 und der nicht-flüchtige Speicher 2740 können auf einer Platine bereitgestellt werden. Zum Beispiel kann die Platine mindestens eine von verschiedenen Arten von Platinen umfassen, wie zum Beispiel eine gedruckte Leiterplatte (PCB), eine flexible Platine und eine Bandplatine. Die Platine kann eine flexible gedruckte Leiterplatte oder eine starre gedruckte Leiterplatte, in der interne Verdrahtungen ausgebildet sind, oder eine Kombination davon sein.
  • Die CPU 2100 kann ein Betriebsystem BS oder ein Anwendungsprogramm für den Zweck des Betreibens des Computersystems 2000 betreiben.
  • Der Chipsatz 2200 kann verschiedene Komponenten, die in dem Computersystem 2000 enthalten sind, unter der Steuerung der CPU 2100 steuern. Zum Beispiel kann der Chipsatz 2200 den Gesamtbetrieb der GPU 2300, des E/A-Controllers 2400, des Netzwerkmoduls 2500, des Speichers 2600 und der Onboard-SSD 2700 steuern.
  • Die GPU 2300 kann Grafikdaten verarbeiten und kann die verarbeiteten Grafikdaten an das Display 2320 senden. Das Display 2320 kann die durch die GPU 2300 verarbeiteten Grafikdaten anzeigen. Ein Panel des Displays 2320 kann ein Flüssigkristallanzeige (LCD)-Panel, ein elektrophoretisches Anzeigepanel, ein elektronetzendes Anzeigepanel, ein Plasmaanzeigepanel (PDP), ein Organisches-Leuchtdioden (OLED)-Anzeigepanel usw. sein.
  • Der E/A-Controller 2400 kann Informationen verarbeiten, die in das Computersystem 2000A der E/A-Einheit 2420 eingespeist wurden. Zum Beispiel kann die E/A-Einheit 2420 mit dem E/A-Controller 2400 durch einen Personal System 2 (PS2)-Port, einen Peripheral Component Interconnection (PCI)-Slot, einen Dual In-line Memory Module (DIMM)-Slot, einen Universal Serial Bus (USB)-Port, einen Rot/Grün/Blau (RGB)-Port, einen Digital Video Interactive (DVI)-Port, einen High Definition Multimedia Interface (HDMI)-Port usw. verbunden sein.
  • Das Netzwerkmodul 2500 kann eine Verbindung zwischen dem Computersystem 2000 und einem externen System oder einem Netzwerk bereitstellen. Das Netzwerkmodul 2500 kann dafür ausgestaltet sein, das FPGA-Image von einem externem System oder einem Netzwerk durch das oben beschriebene Protokoll zu empfangen. Zum Beispiel kann das Netzwerkmodul 2500 auf der Basis eines Protokolls wie zum Beispiel Wireless-Fidelity (Wi-Fi), Bluetooth, Wireless Metropolitan Area Network (MAN), Long Term Evolution Advanced (LTE-A), Enhanced Data Rates for Global System for Mobile Communications (GSM) Evolution (EDGE), Evolved High-Speed Packet Sccess (HSPA+), Ethernet, Faserkanal, Stromleitungskommunikation usw. arbeiten.
  • Der Speicher 2600 kann als ein Arbeitsspeicher des Computersystems 2000 verwendet werden. Beim Hochfahren können ein BS, eine Anwendung usw., die aus dem Onboard-SSD 2700 gelesen werden, geladen werden. Der Speicher 2600 kann das von außerhalb empfangene FPGA-Image oder das aus der nicht-flüchtigen Speichervorrichtung 2740 gelesene FPGA-Image vorübergehend speichern. Zum Beispiel kann der Speicher 2600 mit einem Speichermodul implementiert werden. In diesem Fall kann das Speichermodul einen flüchtigen Direktzugriffsspeicher wie zum Beispiel einen DRAM, einen SDRAM, einen Doppeldatenraten-DRAM (DDR SDRAM), einen DDR2 SDRAM, einen DDR3 SDRAM, einen LPDDR DRAM, einen LPDDR2 DRAM oder einen LPDDR3 DRAM oder einen nicht-flüchtigen Direktzugriffsspeicher wie zum Beispiel einen PRAM, einen MRAM, einen RRAM oder FRAM umfassen.
  • Das Onboard-SSD 2700 kann die Steuereinheit 2720 umfassen, die ein FPGA 2730 und die nicht-flüchtige Speichervorrichtung 2740 umfasst. Das Onboard-SSD 2700 kann mit einer externen Vorrichtung oder einem externen System durch einen Nebenbandkanal SBI verbunden sein. Zum Beispiel kann die externe Vorrichtung oder das externe System das FPGA-Image zum Aktualisieren des FPGA 2730 bereitstellen.
  • Obgleich in 15 nicht veranschaulicht, kann das Computersystem 2000 des Weiteren einen ROM, in dem ein Basic Input/Output System (BIOS) gespeichert ist, einen Kamerabildprozessor (CIS), eine Batterie usw. umfassen.
  • Gemäß der vorliegenden Offenbarung kann ein separater dedizierter Schaltkreis zum Empfangen des FPGA-Image überflüssig sein, da ein FPGA-Image durch eine Hauptschnittstelle oder eine Nebenbandschnittstelle empfangen wird. Daher können die Kosten gesenkt werden, und eine Speichervorrichtung kann verkleinert werden.
  • Obgleich die vorliegende Offenbarung mit Bezug auf beispielhafte Ausführungsformen beschrieben wurde, leuchtet dem Durchschnittsfachmann ein, dass verschiedene Änderungen und Modifizierungen daran vorgenommen werden können, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung, wie sie in den folgenden Ansprüchen dargelegt sind, abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020170154277 [0001]
    • KR 1020180079421 [0001]

Claims (20)

  1. Speichervorrichtung (100, 100a, 100b, 100c, 200), umfassend: eine nicht-flüchtige Speichervorrichtung (120, 120a, 120b, 120c, 220); und eine Steuereinheit (110, 110a, 110b, 110c, 210), die ein feldprogrammierbares Gate-Array (FPGA) (117, 117a, 117b, 117c, 217) umfasst, wobei die Steuereinheit (110, 110a, 110b, 110c, 210) für Folgendes ausgestaltet ist: Empfangen, über eine Hauptschnittstelle (MI) oder eine Nebenbandschnittstelle (SBI), eines FPGA-Image von außerhalb der Speichervorrichtung (100, 100a, 100b, 100c, 200) in Reaktion auf einen von außerhalb empfangenen ersten Befehl, Speichern des FPGA-Image in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c, 220), und Ausführen des in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c, 220) gespeicherten FPGA-Image in Reaktion auf einen von außerhalb empfangenen zweiten Befehl, um das FPGA zu aktualisieren.
  2. Speichervorrichtung nach Anspruch 1, wobei die Steuereinheit (110, 110a, 110b, 110c, 210) des Weiteren Folgendes umfasst: eine Hauptschnittstellenschaltung (111, 211), die dafür ausgestaltet ist, mit der Außenwelt durch die Hauptschnittstelle (111, 211) zu kommunizieren; und eine Nebenbandschnittstellenschaltung (112, 212), die dafür ausgestaltet ist, mit der Außenwelt durch die Nebenbandschnittstelle (112, 212) zu kommunizieren.
  3. Speichervorrichtung nach Anspruch 2, wobei der erste Befehl ein Schreibbefehl für die nicht-flüchtige Speichervorrichtung (120, 120a, 120b, 120c, 220) ist, und der zweite Befehl ein anbieterspezifischer Befehl zum Laden des in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c, 220) gespeicherten FPGA-Image und Ausführen des geladenen FPGA-Image ist.
  4. Speichervorrichtung nach Anspruch 2, wobei der erste Befehl und der zweite Befehl ein gleicher anbieterspezifischer Befehl zum Speichern des FPGA-Image in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c, 220), zum Laden des in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c, 220) gespeicherten FPGA-Image, und zum Ausführen des geladenen FPGA-Image sind.
  5. Speichervorrichtung nach Anspruch 2, wobei die Steuereinheit (110, 110a, 110b, 110c) des Weiteren Folgendes umfasst: einen Image-Lader (118, 118a, 118b, 118c), der dafür ausgestaltet ist, das in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c) gespeicherte FPGA-Image zu laden.
  6. Speichervorrichtung nach Anspruch 5, des Weiteren umfassend: einen Pufferspeicher (130, 130a, 130b, 130c), der dafür ausgestaltet ist, das in die nicht-flüchtige Speichervorrichtung (120, 120a, 120b, 120c) geladene FPGA-Image vorübergehend zu speichern.
  7. Speichervorrichtung nach Anspruch 1, wobei die Steuereinheit (210) des Weiteren einen Redundant Array of Inexpensive Disks (RAID)-Controller (219) umfasst, wobei der RAID-Controller (219) für Folgendes ausgestaltet ist: Generieren von Teilen von RAID-Paritätsdaten auf der Basis des FPGA-Image, und Verteilen der Teile der RAID-Paritätsdaten in der nicht-flüchtigen Speichervorrichtung (220).
  8. Speichervorrichtung nach Anspruch 1, wobei die Hauptschnittstelle (MI) auf mindestens einem von Folgendem basiert: Peripheral Component Interconnect express (PCIe), Universal Serial Bus (USB), Small Computer System Interface (SCSI), mobile PCIe (M-PCIe), Advanced Technology Attachment (ATA), Parallel ATA (PATA), Serial TA (SATA), Serial Attached SCSI (SAS), Integrated Drive Electronics (IDE), enhanced IDE (EIDE), Nonvolatile Memory Express (NVMe) und Universal Flash Storage (UFS).
  9. Speichervorrichtung nach Anspruch 1, wobei die Nebenbandschnittstelle (SBI) auf mindestens einem von Folgendem basiert: Universal Asynchronous Receiver Transmitter (UART), einen Inter-Integrated Circuit (I2C) und/oder eine Serial Programming Interface (SPI).
  10. Speichervorrichtung nach Anspruch 1, wobei die nicht-flüchtige Speichervorrichtung (120, 120a, 120b, 120c, 220) Folgendes umfasst: ein Speicherzellen-Array (121), das mehrere Speicherzellen (MC1-MC8) umfasst, die senkrecht zu einem Substrat ausgebildet sind, wobei die mehreren Speicherzellen (MC 1-MC8) mit mehreren Wortleitungen (WL1 -WL8) und mehreren Bitleitungen (BL1, BL2) verbunden sind; wobei die mehreren Speicherzellen (MC1-MC8) in mehreren Zellen-Strings angeordnet sind, die jeweilige der mehreren Speicherzellen (MC1-MC8) umfassen, die miteinander in Reihe geschaltet sind und mit einer selben der mehreren Bitleitungen (BL1, BL2) verknüpft sind; und einen Seitenpuffer (123), der dafür ausgestaltet ist, Daten zu speichern, die aus dem Speicherzellen-Array (121) gelesen wurden.
  11. Speichervorrichtung (100, 100a, 100b, 100c), umfassend: eine nicht-flüchtige Speichervorrichtung (120, 120a, 120b, 120c); und eine Steuereinheit (110, 110a, 110b, 110c), die einen anwendungsspezifischen integrierten Schaltkreis (ASIC) (116) und ein feldprogrammierbares Gate-Array (FPGA) (117, 117a, 117b, 117c) umfasst, wobei das FPGA (117, 117a, 117b, 117c) dafür ausgestaltet ist, mindestens einen Teil der Funktionen des ASIC auszuführen (116), wobei die Steuereinheit (110, 110a, 110b, 110c) ausgestaltet ist, um: ein FPGA-Image von außerhalb der Speichervorrichtung (100, 100a, 100b, 100c) durch eine Hauptschnittstelle (MI) oder eine Nebenbandschnittstelle (SBI) zu empfangen, das FPGA-Image in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c) zu speichern, und das FPGA-Image auszuführen, um die durch das FPGA (117, 117a, 117b, 117c) ausgeführten Funktionen zu aktualisieren.
  12. Speichervorrichtung nach Anspruch 11, wobei die Steuereinheit des Weiteren Folgendes umfasst: eine Hauptschnittstellenschaltung (111), die dafür ausgestaltet ist, mit der Außenwelt durch die Hauptschnittstelle (MI) zu kommunizieren; und eine Nebenbandschnittstellenschaltung (112), die dafür ausgestaltet ist, mit der Außenwelt durch die Nebenbandschnittstelle (SBI) zu kommunizieren.
  13. Speichervorrichtung nach Anspruch 12, wobei die Steuereinheit (110, 110a, 110b, 110c) ausgestaltet ist, um das FPGA-Image auf der Basis eines von außerhalb empfangenen Schreibbefehls zu empfangen und das FPGA-Image auf der Basis eines von außerhalb empfangenen anbieterspezifischen Befehl auszuführen.
  14. Speichervorrichtung nach Anspruch 12, wobei die Steuereinheit (110, 110a, 110b, 110c) ausgestaltet ist, um das FPGA-Image zu empfangen und auf der Basis eines von außerhalb empfangenen anbieterspezifischen Befehls auszuführen.
  15. Speichervorrichtung nach Anspruch 11, wobei die Nebenbandschnittstelle (112) auf mindestens einem von Folgendem basiert: Universal Asynchronous Receiver Transmitter (UART), einen Inter-Integrated Circuit (I2C) und/oder eine Serial Programming Interface (SPI).
  16. Verfahren zum Betreiben einer Speichervorrichtung (100, 100a, 100b, 100c), die eine nicht-flüchtige Speichervorrichtung (120, 120a, 120b, 120c) und eine Steuereinheit (110, 110a, 110b, 110c) umfasst, die ein feldprogrammierbares Gate-Array (FPGA) (117, 117a, 117b, 117c) umfasst, wobei das Verfahren Folgendes umfasst: Empfangen eines FPGA-Image von außerhalb der Speichervorrichtung (100, 100a, 100b, 100c) durch eine Hauptschnittstelle (MI) oder eine Nebenbandschnittstelle (SBI) in Reaktion auf einen von außerhalb empfangenen ersten Befehl; Speichern des FPGA-Image in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c); Laden des in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c) gespeicherten FPGA-Image in Reaktion auf einen von außerhalb empfangenen zweiten Befehl; und Ausführen des aus der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c) geladenen FPGA-Image in Reaktion auf den zweiten Befehl.
  17. Verfahren nach Anspruch 16, wobei die Steuereinheit (110, 110a, 110b, 110c) des Weiteren einen Image-Lader (118, 118a, 118b, 118c) umfasst, der dafür ausgestaltet ist, das in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c) gespeicherte FPGA-Image zu laden.
  18. Verfahren nach Anspruch 16, wobei der erste Befehl ein Schreibbefehl zum Speichern des FPGA-Image in der nicht-flüchtigen Speichervorrichtung (120, 120a, 120b, 120c) ist, und der zweite Befehl ein anbieterspezifischer Befehl ist.
  19. Verfahren nach Anspruch 16, wobei der erste Befehl und der zweite Befehl ein selber anbieterspezifischer Befehl sind.
  20. Verfahren nach Anspruch 16, wobei die Hauptschnittstelle (MI) auf mindestens einem von Folgendem basiert: Peripheral Component Interconnect express (PCIe), Universal Serial Bus (USB), Small Computer System Interface (SCSI), mobile PCIe (M-PCIe), Advanced Technology Attachment (ATA), Parallel ATA (PATA), Serial TA (SATA), Serial Attached SCSI (SAS), Integrated Drive Electronics (IDE), enhanced IDE (EIDE), Nonvolatile Memory Express (NVMe) und Universal Flash Storage (UFS), und die Nebenbandschnittstelle (SBI) auf mindestens einem von Folgendem basiert: Universal Asynchronous Receiver Transmitter (UART), einen Inter-Integrated Circuit (I2C) und/oder eine Serial Programming Interface (SPI).
DE102018123494.5A 2017-11-17 2018-09-25 Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür Pending DE102018123494A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2017-0154277 2017-11-17
KR20170154277 2017-11-17
KR1020180079421A KR20190056952A (ko) 2017-11-17 2018-07-09 필드 프로그래머블 게이트 어레이를 업데이트하도록 구성된 스토리지 장치 및 그것의 동작 방법
KR10-2018-0079421 2018-07-09

Publications (1)

Publication Number Publication Date
DE102018123494A1 true DE102018123494A1 (de) 2019-05-23

Family

ID=66336507

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018123494.5A Pending DE102018123494A1 (de) 2017-11-17 2018-09-25 Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür

Country Status (3)

Country Link
US (1) US10754800B2 (de)
CN (1) CN109800187B (de)
DE (1) DE102018123494A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936529B2 (en) * 2019-06-27 2021-03-02 Dell Products L.P. System and method of configuring field programmable logic arrays
US11618592B1 (en) * 2020-09-17 2023-04-04 United States Of America As Represented By The Administrator Of Nasa Modular architecture for an extensible SmallSat (MARES) command and data handling hardware
CN112464593B (zh) * 2020-11-25 2022-09-02 海光信息技术股份有限公司 Rom位映射关系生成方法、装置、处理器芯片及服务器
CN115686164A (zh) * 2021-07-26 2023-02-03 瑞昱半导体股份有限公司 供电端装置、供电系统以及非暂态电脑可读取媒体
CN113687977B (zh) * 2021-09-07 2024-05-28 天津津航计算技术研究所 基于raid控制器以实现计算性能提升的数据处理装置
CN113687978B (zh) * 2021-09-07 2024-05-28 天津津航计算技术研究所 用于存储阵列控制器的数据处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079421A (ko) 2015-11-11 2018-07-10 에프. 호프만-라 로슈 아게 트랜스충전 디바이스

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020035606A (ko) 1999-09-20 2002-05-11 추후 필드 프로그램가능 게이트 어레이 하드 디스크 시스템
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
JP2002342085A (ja) 2001-05-14 2002-11-29 Meidensha Corp コンフィギュレーション方式
US7065560B2 (en) * 2002-03-12 2006-06-20 Hewlett-Packard Development Company, L.P. Verification of computer program versions based on a selected recipe from a recipe table
CN101131648A (zh) * 2006-08-25 2008-02-27 深圳迈瑞生物医疗电子股份有限公司 Usb接口控制面板在线更新方法
US8161227B1 (en) * 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
US8645749B2 (en) * 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
US20100262773A1 (en) 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
JP5617435B2 (ja) * 2010-08-25 2014-11-05 富士通株式会社 伝送装置及び伝送装置制御方法
KR101742790B1 (ko) * 2010-11-16 2017-06-01 삼성전자주식회사 비휘발성 메모리 장치, 그것의 소거 방법, 그리고 그것을 포함하는 메모리 시스템
KR101845290B1 (ko) * 2011-08-25 2018-04-04 엘지전자 주식회사 장치 관리 명령을 통한 펌웨어 갱신 방법 및 장치
BR112014024312B1 (pt) 2012-03-30 2022-04-12 Intel Corporation Sistema e método de implementação de uma matriz de dispositivo programável em um sistema eletrônico
FR2993001A1 (fr) * 2012-07-06 2014-01-10 Alstom Technology Ltd Equilibrage sous vide d'un rotor de turbine.
US9652216B2 (en) * 2012-10-04 2017-05-16 Dell Products L.P. System and method for providing out-of-band software or firmware upgrades for a switching device
US8917111B1 (en) * 2013-03-07 2014-12-23 Xilinx Inc. Configuration of programmable integrated circuits
US9690741B2 (en) * 2013-07-15 2017-06-27 Altera Corporation Configuration via high speed serial link
KR101569001B1 (ko) 2013-09-02 2015-11-17 주식회사 쏠리드 Fpga 데이터 구성 시스템 및 그 방법
KR20150100075A (ko) * 2014-02-24 2015-09-02 삼성전자주식회사 메모리 및 컨트롤러를 포함하는 메모리 장치의 펌웨어를 업데이트하는 방법
US8938704B1 (en) 2014-07-28 2015-01-20 Xilinx, Inc. Circuit module generation for programmable integrated circuits
KR102271462B1 (ko) * 2015-01-13 2021-07-05 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법
JP2017050786A (ja) * 2015-09-03 2017-03-09 株式会社日立製作所 通信装置、通信システム、及びデータ処理装置
JP2017138892A (ja) 2016-02-05 2017-08-10 株式会社日立製作所 情報処理装置、処理装置、及び、データ検索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079421A (ko) 2015-11-11 2018-07-10 에프. 호프만-라 로슈 아게 트랜스충전 디바이스

Also Published As

Publication number Publication date
US20190155767A1 (en) 2019-05-23
CN109800187A (zh) 2019-05-24
US10754800B2 (en) 2020-08-25
CN109800187B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102018106154A1 (de) Faltungsoperationen in datenspeichersystemen mit einzeladressenaktualisierungen
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102012104713A1 (de) Nichtflüchtige Speichervorrichtung und Löschverfahren
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112015003147T5 (de) Selektive Leseverstärkeraktivierung
DE112019000161T5 (de) Speicher-cache-verwaltung
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung
DE112016003416T5 (de) Decodieren von Daten unter Verwendung von Bitleitungsdefektinformationen
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102021130730A1 (de) Speichercontroller und Speicherungsvorrichtung, die jeweils ein Fragmentierungsverhältnis verwenden, und Betriebsverfahren dafür
DE102017120971A1 (de) Pipelineverzögerungsdetektion während des Decodierens durch eine Datenspeichereinrichtung
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE102019127080A1 (de) Speichersystem und Betriebsverfahren dafür
DE112019007666T5 (de) Schreibpuffersteuerung in einem verwalteten Speichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed