[go: up one dir, main page]

DE10133595B4 - Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder - Google Patents

Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder Download PDF

Info

Publication number
DE10133595B4
DE10133595B4 DE10133595A DE10133595A DE10133595B4 DE 10133595 B4 DE10133595 B4 DE 10133595B4 DE 10133595 A DE10133595 A DE 10133595A DE 10133595 A DE10133595 A DE 10133595A DE 10133595 B4 DE10133595 B4 DE 10133595B4
Authority
DE
Germany
Prior art keywords
bank
frame period
ram
double
read
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.)
Expired - Fee Related
Application number
DE10133595A
Other languages
English (en)
Other versions
DE10133595A1 (de
Inventor
Hyung-Joon Kwon
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE10133595A1 publication Critical patent/DE10133595A1/de
Application granted granted Critical
Publication of DE10133595B4 publication Critical patent/DE10133595B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1555Pipelined decoder implementations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

Pufferschaltung zum gleichzeitigen Schreiben und Lesen von Daten während einer jeweiligen von aufeinanderfolgenden Rahmenperioden, mit
– einem Speicherbauelement mit einer Mehrzahl von Dualbank-RAMs (310, 320, 330) oder mit mehreren Speichern, von denen jeder Doppelbänke aufweist, und
– einem Speichersteuerschaltkreis (300), der mit den mehreren Doppelbank-RAMs oder Speichern gekoppelt und dafür eingerichtet ist, in jeder Rahmenperiode das Schreiben in eine Bank und das Lesen aus einer anderen Bank, die in einem anderen von den mehreren Doppelbank-RAMs oder Speichern enthalten ist als die Bank, in die gleichzeitig geschrieben wird, freizugeben und von einer zur nächsten Rahmenperiode das Schreiben und das Lesen von Daten zyklisch für je eine nächste Bank derart freizugeben, dass aus jeder Bank der Doppelbank-RAMs in Abständen einer vorgegebenen Anzahl von Rahmenperioden gelesen und in selbige mit demselben Abstand geschrieben wird.

Description

  • Die Erfindung bezieht sich auf eine Pufferschaltung zum gleichzeitigen Schreiben und Lesen von Daten während einer jeweiligen von aufeinanderfolgenden Datenrahmenperioden, auf ein zugehöriges Speicherzugriffsverfahren und auf einen zugehörigen Reed-Solomon-Decoder mit Pipelinebetrieb.
  • Beim Übertragen und Speichern großer digitaler Datenmengen treten unvermeidlich Fehler in den Datenkanälen und Übertragungsmedien auf. Es sind eine Vielzahl von Techniken bekannt, mit denen versucht wird, derartige Fehler zu identifizieren und die Daten wiederzugewinnen, soweit möglich. Von diesen Techniken hat die Reed-Solomon-Codierung breite Anwendung gefunden. Reed-Solomon-Codes sind blockbasierte Fehlerkorrekturcodes, die ausgezeichnete Fehlerkorrekturfähigkeiten sowie effiziente Codierungs- und Decodierungseigenschaften zeigen und daher eine breite Palette von Anwendungsmöglichkeiten in Einrichtungen zur digitalen Kommunikation und Speicherung besitzen.
  • Allgemein formt ein Reed-Solomon-Codierer ein Codewort, das eine Anzahl n von Symbolen aufweist, z. B. 8-Bit-Bytes, durch Hinzufügen einer Anzahl 2t von Paritätssymbolen in einen Datenblock mit einer Anzahl k von Datensymbolen um, wobei 2t = n – k gilt. Reed-Solomon-Codeworte werden üblicherweise mit den Buchstaben RS(n, k) bezeichnet. Beispielsweise besitzt im Code RS(255, 223) jedes Codewort 255 Codewort-Bytes, die sich auf 223 Daten-Bytes und 32 Paritäts-Bytes aufteilen.
  • Andererseits verarbeitet ein Reed-Solomon-Decoder jedes Codewort mit dem Ziel, Fehler zu korrigieren, die während einer Übertragung oder Speicherung auftreten, und die Originaldaten wiederzugewinnen. Der Decoder ist in der Lage, bis zu t Fehlersymbole in jedem Codewort zu korrigieren. Beispielsweise ist im Code RS(255, 223) n – k = 2t = 32, so dass bis zu 16 Fehlersymbole in jedem Codewort korrigiert werden können.
  • Allgemein kann der Reed-Solomon-Decodierprozess in acht hauptsächliche Berechnungsschritte unterteilt werden, wenn sowohl eine Fehler- als auch eine Irrungs-Korrektur durchgeführt werden. Eine „Irrung" liegt vor, wenn der Wert eines Symbols unrichtig ist, die Position des Symbols jedoch bekannt ist. Ein „Fehler" liegt vor, wenn keine Information bezüglich eines unrichtigen Symbols bekannt ist. Die Berechnungsschritte der Fehler- und Irrungs-Decodierung sind folgende. Im ersten Schritt wird aus dem empfangenen/wiedergewonnenen, eingegebenen Codewort ein Syndrom berechnet, um die Existenz eines Fehlers zu detektieren. In einem zweiten Schritt werden Irrungs-Merker gepuffert, die synchron mit dem eingegebenen Codewort zugeführt werden. In einem dritten Schritt wird das Syndrom unter Verwendung der Irrungs-Merker modifiziert. In einem vierten Schritt wird ein Irrungs-Lokalisierpolynom erzeugt. In einem fünften Schritt werden Koeffizienten des Irrungs-Lokalisierpolynoms und ein Fehlerbestimmungspolynom unter Verwendung der modifizierten Syndromwerte und des Irrungs-Lokalisierpolynoms berechnet. In einem sechsten Schritt werden die Wurzeln des Fehler-Lokalisierpolynoms aufgesucht. In einem siebten Schritt wird die Größe von Fehlerwerten berechnet. In einem achten Schritt werden die Fehler unter Verwendung des im vierten Schritt erhaltenen Wertes und der im dritten Schritt gewonnenen Position korrigiert. Wenn nur eine Fehlerkorrektur und keine Irrungskorrektur durchgeführt wird, entfallen der zweite bis vierte Schritt.
  • Die obigen acht Schritte erfordern Speicherzugriff. So wird das empfangene Codewort im ersten Schritt temporär in einem Speicher gespeichert und später im achten Schritt wieder aus dem Speicher zur Korrektur abgerufen.
  • Die Decodierberechnungen sowie die zugehörige Hardware und/oder Software des Reed-Solomon-Decoders sind komplexer als für den Codierprozess, und es ist oftmals schwierig, Decoder zu realisieren, die ausreichend hohe Verarbeitungsgeschwindigkeiten haben. Dies kann speziell im Hinblick auf den gegenwärtigen Bedarf nach digitalen Datenverarbeitungssystemen mit höherer Geschwindigkeit zu Problemen führen.
  • Im Bemühen, die Geschwindigkeiten zu steigern, ist das Ausführen der Berechnungen des Reed-Solomon-Decoders im Pipelinebetrieb eine mögliche Lösung. Die Berechnungen haben jedoch unterschiedliche Latenzen in Abhängigkeit von der Anzahl an Fehlern und den Längen der Codeworte, so dass der Pipelinebetrieb durch die Einheit oder den Block mit der längsten Latenz begrenzt ist. Außerdem erzeugt, selbst wenn Latenzen der Verarbeitungsblöcke auf einen einzelnen Rahmen mit einer Anzahl n von Zyklen, d. h. ein Codewort, reduziert werden, der Speicher zum temporären Speichern des angegebenen Codeworts vor der Korrektur einen Engpass, da mindestens 2n Zyklen benötigt werden, um zuerst das Codewort zu speichern und dann das Codewort zwecks Korrektur desselben wieder abzurufen.
  • In der Patentschrift US 4.725.987 ist eine Speichervorrichtung zur digitalen Bildspeicherung beschrieben, die einen Speicher mit mehreren DRAM-Speicherbänken und eine zugehörige Pufferschaltung aufweist. Die Pufferschaltung beinhaltet einen Eingabepuffer, der Daten mit hoher Systemrate empfängt und in Einheiten eines jeweiligen Datenwortes parallel mit geringerer Bildspeicherrate in eine jeweils ausgewählte Speicherbank überträgt, und einen Ausgabepuffer, der gleichzeitig Daten mit der niedrigeren Bildspeicherrate von einer anderen ausgewählten Speicherbank empfängt und als jeweiliges Datenwort parallel mit der höheren Systemrate überträgt. Im gleichen Zeitraum führt zudem eine einzelne Widerauffrischschaltung eine Wiederauffrischung von Speicherzellen in wenigstens einer der nicht zum Schreiben oder Lesen ausgewählten Speicherbänke durch. Die Speicherbänke sind alternierend in geradzahlige und ungeradzahlige Bänke gruppiert, wobei die ungeradzahligen Bänke gemeinsam an eine erste und die geradzahligen Bänke gemeinsam an eine zweite Zeilenadressenauswahlleitung angeschlossen sind.
  • In der Patentschrift US 6.081.920 sind ein Verfahren zur Fehlerkorrektur eines Reed-Solomon-Codeworts und einen zugehörige Fehlerkorrekturvorrichtung offenbart, die einen Empfänger zum Empfangen und Speichern des Codeworts, einen Syndromerkenner zum Feststellen der Syndrome des Codeworts, einen speziellen achtstufigen Fehlergrößenbestimmer zum Feststellen der Anzahl an Fehlern im Codewort unter Verwendung der Syndrome, einen Fehlerlokalisierungspolynomerkenner zum Auffinden des Fehlerlokalisierungspolynoms des Codeworts, einen Fehlerlokalisierungserkenner zum Bestimmen der Fehlerpositionen aus dem Inversen der Wurzel des Fehlerlokalisierungspolynoms und einen Fehlerwerterkenner zum Bestimmen des Wertes der Fehler unter Verwendung der Fehlerpositionen und der Syndrome umfasst. Des weiteren kann eine Korrektureinheit zum Korrigieren des gespeicherten Codeworts unter Verwendung der Fehlerpositionen und der Fehlerwerte so wie ein Decoder zum Decodieren des entsprechend modifizierten Codeworts vorgesehen sein.
  • Der Erfindung liegt als technisches Problem die Bereitstellung einer Pufferschaltung, eines Speicherzugriffsverfahrens und eines Reed-Solomon-Decoders der eingangs genannten Art zugrunde, welche die Ausführung von Schreib/Lese-Vorgängen mit hoher Geschwindigkeit ermöglichen und möglichst geringe Speicherzugriffszeiten besitzen.
  • Die Erfindung löst dieses Problem durch die Bereitstellung einer Pufferschaltung mit den Merkmalen des Anspruchs 1, eines Speicherzugriffsverfahrens mit den Merkmalen des Anspruchs 11 und eines Reed-Solomon-Decoders mit den Merkmalen des Anspruchs 19.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • Vorteilhafte Ausführungsformen der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend beschrieben. Hierbei zeigen:
  • 1 ein Blockschaltbild eines auf Blockpipelinebetrieb hoher Geschwindigkeit ausgelegten Reed-Solomon-Decoders,
  • 2 ein Blockdiagramm zur Veranschaulichung der Latenzen der Verarbeitungsblöcke des Reed-Solomon-Decoders von 1,
  • 3 ein Blockdiagramm eines 3-RAM-Doppelbankbauelementes,
  • 4 ein Flussdiagramm eines Verfahrens zum Zugreifen auf das 3-RAM-Doppelbankbauelement von 3,
  • 5 und 6 Blockdiagramme zur Veranschaulichung der Auswahl von Bänken während Schreib/Lese-Vorgängen im 3-RAM-Doppelbankbauelement von 3 und
  • 7 ein Ablaufdiagramm zur Veranschaulichung des Pipelinebetriebs des Reed-Solomon-Decoders von 1.
  • 1 veranschaulicht einen Reed-Solomon-Decoder, der für einen Blockpipelinebetrieb mit hoher Geschwindigkeit ausgelegt ist. Dabei ist er sowohl zur Fehler- als auch zur Irrungskorrektur eingerichtet. Wie gezeigt, sind die Reed-Solomon-Decoderberechnungen im Pipelinebetrieb in fünf Stufen S1 bis S5 aufgeteilt. In einer alternativen, nur auf Fehlerkorrektur ausgelegten Realisierung fehlen verglichen mit der Konfiguration von 1 die innerhalb der gestrichelten Linie 110 enthaltenen Elemente, so dass dann nur vier Pipelinestufen benötigt werden.
  • Der Reed-Solomon-Decoder von 1 besitzt ein 3-RAM-Doppelbankbauelement 180 zum temporären Speichern eingegebener Daten DIN, d. h. eines Codeworts R(x). Dieses Bauelement besteht aus drei Speichern, z. B. drei RAMs, von denen jeder zwei Bänke umfasst. Ein zirkularer Steuermechanismus wird dazu verwendet, Schreib/Lese-Vorgänge in Abhängigkeit von einem Dateneingabetaktsignal CLK auszuführen. Kurz gesagt schreibt das 3-RAM-Doppelbankbauelement 180 die Eingabedaten DIN in ein ausgewähltes der drei RAMs und liest Daten aus einer Bank eines der anderen RAMs aus. Die Struktur und Betriebsweise des 3-RAM-Doppelbankbauelements 180 wird unten in Verbindung mit 3 genauer erläutert.
  • Wie weiter aus 1 ersichtlich, beinhaltet der Reed-Solomon-Decoder zur Fehler- und Irrungskorrektur des weiteren einen Syndromgenerator 100, einen Merker-Zähler und -Puffer 120, einen Irrungslokalisierpolynomgenerator 130, einen Syndrommodifizierer 140, einen Polynomkoeffizientengenerator 150, eine Fehlerwertbestimmungseinheit 160, eine Fehlerpositionssucheinheit 170 und einen Fehlerkorrektor 190. Wie vorstehend erwähnt, sind die von diesen Komponenten durchgeführten Berechnungen in die Stufen S1 bis S5 im Pipelinebetrieb aufgeteilt.
  • In der Stufe S1 berechnet der Syndromgenerator 100 ein Syndrom S(x) aus den Eingabedaten DIN. Außerdem zählt der Merker-Zähler und -Puffer 120 die Anzahl an Irrungsmerkern Era_Flag, die synchron mit den Eingabedaten DIN zugeführt werden und puffert die Irrungsmerker Era_Flag. Wenn keine Irrungsmerker Era_Flag vorliegen oder die Anzahl an eingegebenen Irrungsmerkern Era_Flag außerhalb eines erlaubten Korrekturbereichs liegt, wird nur eine Fehlerkorrektur durchgeführt. Dabei kann der erlaubte Korrekturbereich so definiert werden, dass nur eine Fehlerkorrektur durchgeführt wird, wenn mehr Irrungsmerker Era_Flag als die Anzahl an Irrungsmerkern des erlaubten Korrekturbereichs eingegeben werden. Wie gesagt, braucht der Reed-Solomon-Decoder den Merker-Zähler und Merker-Puffer 120 zur bloßen Fehlerkorrektur nicht zu enthalten.
  • In der Stufe S2 modifiziert der Syndrommodifizierer 140 das vom Syndromgenerator 100 generierte Syndrom S(x) mit den gepufferten Irrungsmerkern und gibt ein modifiziertes Syndrom T(x) ab. Im Fall einer bloßen Fehlerkorrektur wird das Syndrom S(x) nicht modifiziert, und der Syndrommodifizierer 140 entfällt. Der Irrungslokalisierpolynomgenerator 130 erzeugt ein Irrungslokalisierpolynom unter Verwendung der gepufferten Irrungsmerker. Wie oben erwähnt, wird nur eine Fehlerkorrektur durchgeführt, wenn die Anzahl an eingegebenen Irrungsmerkern Era_Flag gleich null ist oder außerhalb eines erlaubten Korrekturbereichs liegt. In diesem Fall generiert der Irrungslokalisierpolynomgenerator 130 einen Konstantwert, z. B. den Wert eins, anstelle eines Irrungslokalisierpolynoms.
  • In der Stufe S3 erzeugt der Polynomkoeffizientengenerator 150 die Koeffizienten eines Fehlerlokalisierpolynoms σ(x) zur Fehlerpositionssuche und ein Fehlerbestimmungspolynom e(x) zur Fehlerbestimmung unter Verwendung des modifizierten Syndroms T(x) und des Irrungslokalisierpolynoms bzw. des Konstantwertes 1. In diesem Ausführungsbeispiel verwendet der Polynomkoeffizientengenerator 150 einen euklidischen Algorithmus. Es versteht sich jedoch, dass genauso gut auch andere bekannte Algorithmen benutzt werden können. Nochmals sei gesagt, dass zur bloßen Fehlerkorrektur die im Block 110 enthaltenen Elemente entfallen können, so dass dann die Koeffizienten des Fehlerlokalisierpolynoms σ(x) und des Fehlerbestimmungspolynoms e(x) unter Verwendung des unmodifizierten Syndroms S(x) und des Konstantwertes, z. B. des Wertes 1, erzeugt werden.
  • In der Stufe S4 berechnet die Fehlerwertbestimmungseinheit 160 Fehlerwerte, und die Fehlerpositionssucheinheit 170 berechnet Fehlerpositionen auf der Basis der Koeffizienten des Fehlerlokalisierpolynoms σ(x) und des Fehlerbestimmungspolynoms e(x). Beispielsweise kann zur Berechnung der Lösung des Fehlerlokalisierpolynoms σ(x) und zur Transformation der erhaltenen Lösung in eine Polynomform ein Chien-Suchalgorithmus verwendet werden. Das transformierte Fehlerlokalisierpolynom, das mit Ω(x) bezeichnet ist, wird zur Berechnung von Fehlerpositionen herangezogen. In gleicher Weise berechnet die Fehlerwertbestimmungseinheit 160 aus den vom Polynomkoeffizientengenerator 150 zugeführten Koeffizienten ein Fehlerbestimmungspolynom E(x). Hierbei können die Fehlerpositionssucheinheit 170 und die Fehlerwertbestimmungseinheit 160 gemeinsam als eine Fehlerpositions- und Fehlerwert-Bestimmungseinheit bezeichnet werden.
  • In der Stufe S5 greift der Fehlerkorrektor 190 von 1 auf das 3-RAM-Dualbankbauelement 180 zu, um die zuvor in dieses geschriebenen Daten DIN zu lesen, wonach er die Fehler der gelesenen Daten unter Bezugnahme auf die durch die Fehlerpositionssucheinheit 170 identifizierten Fehlerpositionen und unter Bezugnahme auf die von der Fehlerwertbestimmungseinheit 160 berechneten Fehlerwerte korrigiert. Insbesondere korrigiert der Fehlerkorrektor 190 die Fehler, die in den Eingabedaten DIN, die aus dem 3-RAM-Doppelbankbauelement 180 wiedergewonnen wurden, enthalten sind, dadurch, dass die Eingabedaten DIN und die berech neten Fehlerwerte summiert werden und auf diese Weise Ausgabedaten DOUT erhalten werden, d. h. korrigierte Daten R'(x).
  • In nicht näher gezeigter Weise führt jeder Pipelinebetrieb-Verarbeitungsblock des Reed-Solomon-Decoders von 1 die zugehörigen Berechnungen in den Stufen S1 bis S5 in Abhängigkeit von einem Systemtaktsignal durch.
  • 2 veranschaulicht die Latenz der Stufen S1 bis S5 des Reed-Solomon-Decoders von 1. Wie daraus ersichtlich, ist die maximale Latenz jedes Verarbeitungsblocks der Stufen S1, S2, S4 und S5 gleich einer Anzahl n an Zyklen, d. h. einem Block, wobei n die Anzahl von Bytes in jedem Codewort ist. Auch im Verarbeitungsblock der Stufe S3 beträgt die maximale Latenz n Zyklen. Es sei an dieser Stelle erwähnt, dass in einer diesbezüglichen US-Patentanmeldung Nr. 09/528.676 mit Anmeldetag 20. März 2000, auf die hierzu verwiesen wird, eine Technik zur Verringerung der maximalen Latenz der dritten Stufe S3, die sich auf die Polynomkoeffizientenerzeugung bezieht, auf n Zyklen beschrieben ist.
  • Somit ist gemäß 2 die maximale Latenz der Reed-Solomon-Berechnungsblöcke gleich n Zyklen. Allgemein ist der Pipelinebetrieb durch die Einheit bzw. den Block mit der höchsten Latenz begrenzt. Auch bei einer maximalen Latenz der Verarbeitungsblöcke von n Zyklen bzw. einem Rahmen erzeugt die Verwendung eines herkömmlichen Reed-Solomon-Decoderspeichers zum temporären Speichern des vor der Korrektur eingegebenen Codeworts einen Engpass. Dies liegt daran, dass der herkömmliche Speicher mindestens 2n Zyklen bzw. zwei Rahmen benötigt, um zuerst während der Stufe S1 das Codewort zu speichern und dann in der Stufe S5 das Codewort zwecks Korrektur desselben wiederzugewinnen. Das erfindungsgemäße 3-RAM-Doppelbankbauelement überwindet, wie unten erläutert, diese Schwierigkeit durch Reduzieren der Latenz der Schreib/Lese-Speichervorgänge auf n Zyklen bzw. 1 Rahmen.
  • Eine bevorzugte Realisierung des 3-RAM-Doppelbankbauelementes 180 von 1 ist in 3 dargestellt. Wie daraus ersichtlich, umfasst dieses 3-RAM-Doppelbankbauelement 180 eine zirkulare Puffersteuereinheit 300, ein erstes Doppelbank-RAM 310, ein zweites Doppelbank-RAM 320 und ein drittes Doppelbank-RAM 330. Das erste Doppelbank-RAM 310 ist in eine BANK 0 und BANK 1, das zweite Doppelbank-RAM 320 in eine BANK 2 und BANK 3 und das dritte Doppelbank-RAM 330 in eine BANK 4 und eine BANK 5 unterteilt. Ein Adresssignal ADDR[7:0] wird einem 8-Bit-Adressbus 340 zugeführt, und die Eingabedaten DIN[7:0] werden einem 8-Bit-Datenbus 350 zugeführt. Das Ausgangssignal des 3-RAM-Doppelbankbauelements 180 ist ein paralleles 8-Bit-Signal MOUT[7:0], das dem in 1 gezeigten Fehlerkorrektor 190 zugeführt wird.
  • Die zirkulare Puffersteuereinheit 300 gibt einen Lese/Schreib-Befehl RE/WR, ein Freigabesignal ENABLE und ein Bankauswahlsignal BK_SEL an jedes der RAMs 310, 320 und 330 ab. Der Lese/Schreib-Befehl RE/WR spezifiziert einen Lese- oder Schreibvorgang für jedes RAM 310, 320, 330, und das Freigabesignal ENABLE gibt selektiv das jeweilige RAM 310, 320, 330 frei. Des weiteren wird das Bankauswahlsignal BK_SEL zum Adresssignal ADDR[7:0] zwecks Auswahl einer der beiden Bänke des jeweiligen RAMs 310, 320, 330 addiert. Beispielsweise wird, wenn das Bankauswahlsignal BK_SEL gleich null ist, eine erste der zwei Bänke eines zugehörigen RAMs ausgewählt, während eine zweite Bank desselben ausgewählt wird, wenn das Bankauswahlsignal BK_SEL gleich eins ist. Auf diese Weise fungieren der Lese/Schreib-Befehl RE/WR, das Freigabesignal ENABLE und das Bankauswahlsignal BK_SEL gemeinsam als ein Schreib-Bankzeiger und/oder ein Lese-Bankzeiger, der das Schreiben bzw. Lesen ausgewählter einzelner Bänke der RAMs 310, 320, 330 spezifiziert.
  • Im Betrieb legt die zirkulare Puffersteuereinheit 300 effektiv sowohl einen Schreib-Bankzeiger als auch einen Lese-Bankzeiger in jedem Speicher zyklus fest. Diese Schreib- und Lese-Bankzeiger werden so festgelegt, dass sich die Schreib-Bank und die Lese-Bank in verschiedenen der RAMs 310, 320, 330 befinden und ein vorgegebener Versatz zwischen der Schreib-Bank und der Lese-Bank von Speicherzyklus zu Speicherzyklus aufrechterhalten wird. Auf diese Weise können das Schreiben eines Datenrahmens, d. h. eines Codeworts, und das Lesen eines anderen Datenrahmens in jedem von aufeinanderfolgenden Speicherzyklen gleichzeitig durchgeführt werden.
  • Spezieller legt die zirkulare Puffersteuereinheit 300 in jedem Speicherzyklus das Freigabesignal ENABLE an zwei der RAMs 310, 320, 330 synchron mit dem Taktsignal CLK an, um diese beiden RAMs freizugeben. Des weiteren legt sie einen Lesebefehl RE an eines der beiden freigegebenen RAMs und einen Schreibbefehl WR an das andere der beiden freigegebenen RAMs an. Zudem fügt sie die 1-Bit-Bankauswahlsignale BK_SEL zu den Adresssignalen ADDR[7:0] hinzu, die an jedes der freigegebenen RAMs angelegt werden, um so eine der beiden Bänke jedes der freigegebenen RAMs auszuwählen, d. h. effektiv wird ein 9-Bit-Adresssignal an jedes der RAMs 310, 320, 330 angelegt. Für jeden Speicherzyklus werden daher eine Bank eines RAMs zum Schreiben und eine Bank eines davon verschiedenen RAMs zum Lesen freigegeben.
  • Jedes der RAMs 310, 320, 330 kann in Form eines statischen Speichers mit wahlfreiem Zugriff implementiert sein, d. h. als SRAM 0, SRAM 1 und SRAM 2. Vorzugsweise reicht die Speicherkapazität jeder Bank dafür aus, einen Rahmen bzw. ein Codewort an Daten zu speichern. Allgemein sollte dazu jede Bank eine Kapazität von n Symbolen bzw. Bytes für den RS(n, k)-Code aufweisen, und jedes RAM sollte eine Kapazität von 2n Symbolen haben. Im Beispiel von 3 kann die Bank jedes Doppelbank-RAMs Daten mit einer maximalen Länge von 256 Byte über ein Galois-Feld GF(28) speichern.
  • Die untenstehende Tabelle 1 zeigt die Größe jedes RAMs und jeder Bank, wenn ein Reed-Solomon(RS)-Code (n, k) über ein Galois-Feld GF(2m) vorliegt, wobei n die Länge, d. h. Anzahl an Symbolen bzw. Bytes, eines Codewortes, k die Länge, d. h. Anzahl von Symbolen oder Bytes, der vor dem Codieren eingegebenen Daten und m die Anzahl an Bits pro Byte bezeichnen. Tabelle 1
    Bankgröße RAM-Größe Datenbreite Adressbreite
    RS(n, k)-Code, GF(2m) n 2n m P + 1, wobei P die kleinste ganze Zahl ist, für die gilt: log2n ≤ P
    Wenn n = 256 und m = 8 256 512 8 8 + 1 = 9
  • Hierbei ist die Speicheradressbreite als ein Wert definiert, der dadurch erhalten wird, dass der Wert 1 zum Minimum einer ganzen Zahl P addiert wird, welche die Bedingung Logen ≤ P erfüllt. Wie zuvor angegeben, ist die Addition des Wertes 1 das Ergebnis der Auswahl einer Bank, welche das MSB der RAM-Adresse verwendet. Wie aus Tabelle 1 ersichtlich, beträgt die Bankgröße 256 Byte, und die RAM-Größe ist 512 Byte, wenn n = 256 und m = 8. Dabei betragen die Datenbreite 8 Bit und die Adressbreite 9 Bit.
  • Die Betriebsweise des 3-RAM-Doppelbankbauelementes 180 wird nun detaillierter unter Bezugnahme auf die 3 und 4 erläutert, wobei 4 ein Flussdiagramm zeigt, das ein Verfahren zum Zugreifen auf das 3-RAM-Doppelbankbauelement 180 veranschaulicht, wie es oben in Verbindung mit 3 diskutiert wurde.
  • Beim Zugreifen auf das 3-RAM-Doppelbankbauelement 180 wird der Betriebsmodus des Reed-Solomon-Decoders festgestellt, d. h. ob sowohl Feh ler- als auch Irrungskorrektur oder nur Fehlerkorrektur durchzuführen ist. Wie aus 4 ersichtlich, ist das Setzen des Schreib-Bankzeigers und des Lese-Bankzeigers für Fehler- und Irrungskorrektur (Schritt 400) verschieden vom Fall der bloßen Fehlerkorrektur (Schritt 410).
  • Speziell wird im Schritt 402 festgestellt, ob sowohl Fehler- als auch Irrungskorrektur ausgeführt werden sollen. Wie oben erläutert, erfolgt dies durch Überprüfen der Anzahl von Irrungsmerkern Era_Flag, die synchron mit den Eingabedaten DIN eingegeben werden. Wenn es einen oder mehrere Irrungsmerker Era_Flag bis zu einem erlaubten Maximum gibt, werden sowohl Fehler- als auch Irrungskorrektur ausgeführt.
  • Wenn im Schritt 402 festgestellt wird, dass sowohl Fehler- als auch Irrungskorrektur durchzuführen ist, wird ein Schritt 404 ausgeführt, in welchem die zirkulare Puffersteuereinheit 300 einen Versatz zwischen einem Schreib-Bankzeiger und einem Lese-Bankzeiger von vier Bänken festlegt. Dieser Versatz zwischen dem Schreib-Bankzeiger und dem Lese-Bankzeiger ist unter Bezugnahme auf 5 deutlicher ersichtlich. In einem ersten Rahmen T50 des Beispiels von 5 wird der Lese-Zeiger auf die Bank 0 des ersten RAMs gesetzt und der Schreib-Zeiger wird auf die BANK 4 des dritten RAMs gesetzt. Der Versatz zwischen dem Lese-Bankzeiger und dem Schreib-Bankzeiger beträgt daher vier Bänke. Der Lese- und der Schreibzeiger werden dann, wie in 5 dargestellt, in jedem von aufeinanderfolgenden Rahmen inkrementiert, wobei der Versatz von vier Bänken zwischen dem Lese-Bankzeiger und dem Schreib-Bankzeiger in jedem Rahmen aufrecht erhalten wird. Wenn der Lese-Bankzeiger mit BANK# bezeichnet wird, lässt sich der Schreib-Bankzeiger als BANK(# + 4) MOD 6 ausdrücken, wobei die Zahl 6 die Gesamtzahl von Bänken bezeichnet.
  • Wenn ohne Beschränkung der Allgemeinheit das Schreiben irgendeiner bestimmten Bank in einem ersten Rahmen auftritt, hat der Versatz von vier Bänken zur Folge, dass das Lesen derselben Bank in einem fünften Rahmen erfolgt. Wird beispielsweise die BANK 4 des dritten RAMs von 5 betrachtet, so wird in diese im ersten Rahmen T50 geschrieben, und im fünften Rahmen wird aus ihr gelesen. Diese Zeitabstimmung entspricht der Anzahl von fünf Stufen der Pipeline-Berechnungsvorgänge im Reed-Solomon-Decoder für sowohl Fehler- als auch Irrungskorrektur. Wenn daher in der ersten Berechnungsstufe die Eingabedaten DIN in die BANK 4 geschrieben werden, können dieselben Daten DIN aus der BANK 4 in der fünften Berechnungsstufe des im Pipelinebetrieb arbeitenden Decoders gelesen werden.
  • Wenn wieder bezugnehmend auf 4 im Schritt 402 stattdessen festgestellt wird, dass nur eine Fehlerkorrektur durchzuführen ist, wird ein Schritt 414 ausgeführt, in welchem die zirkulare Puffersteuereinheit 300 einen Versatz von drei Bänken zwischen einem Schreib-Bankzeiger und einem Lese-Bankzeiger festsetzt. Eine Korrektur von Fehlern erfolgt nur, wenn kein Fehlermerker Era_Flag eingegeben wird oder wenn die Anzahl an eingegebenen Fehlermerkern Era_Flag jenseits des erlaubten Korrekturbereichs liegt. Der Versatz von drei Bänken zwischen dem Schreib-Bankzeiger und dem Lese-Bankzeiger wird nun detaillierter unter Bezugnahme auf 6 erläutert. In einem ersten Rahmen T60 des Beispiels von 6 wird der Lesezeiger auf die BANK 0 des ersten RAMs gesetzt, und der Schreibzeiger wird auf die BANK 3 des zweiten RAMs gesetzt. Der Versatz zwischen dem Lese-Bankzeiger und dem Schreib-Bankzeiger beträgt somit drei Bänke. Der Lese- und der Schreibzeiger werden dann in jedem der in 6 gezeigten, aufeinanderfolgenden Rahmen inkrementiert, wobei der Versatz von drei Bänken zwischen dem Lese-Bankzeiger und dem Schreib-Bankzeiger in jedem Rahmen aufrechterhalten bleibt. Wenn der Lese-Bankzeiger mit BANK# ausgedrückt wird, lässt sich der Schreib-Bankzeiger durch BANK(# + 3) MOD 6 ausdrücken. Wenn ohne Beschränkung der Allgemeinheit das Schreiben in irgendeine bestimmte Bank angenommen in einem ersten Rahmen erfolgt, resultiert der Versatz von drei Bänken darin, dass das Lesen derselben Bank in einem vierten Rahmen erfolgt. Wenn beispielsweise in die BANK 3 des zweiten RAMs von 6 im ersten Rahmen T60 geschrieben wird, wird selbige im vierten Rahmen gelesen. Diese Zeitabstimmung entspricht der Anzahl von vier Stufen der Pipeline-Berechnungen im Reed-Solomon-Decoder im Fall der bloßen Fehlerkorrektur. Wenn daher in der ersten Berechnungsstufe die Eingabedaten DIN in die BANK 3 geschrieben werden, können dieselben Daten DIN aus der BANK 3 in der vierten Berechnungsstufe des Pipeline-Decoders gelesen werden.
  • Wenn wieder bezugnehmend auf 4 im Schritt 420 ein Schreibbefehl angelegt wurde, werden die Eingabedaten DIN in diejenige Bank geschrieben, die vom Schreib-Bankzeiger im Schritt 430 dafür bestimmt wurde. In gleicher Weise werden, wenn im Schritt 440 ein Lesebefehl RE angelegt wurde, die zuvor eingeschriebenen Eingabedaten DIN aus derjenigen Bank gelesen, die hierfür vom Lese-Bankzeiger im Schritt 450 bestimmt wurde. Dann werden im Schritt 460 die so gelesenen Daten DIN bezüglich Korrektur von Fehlern und/oder Irrungen weiterbehandelt, wie oben beschrieben.
  • Wie in 4 dargestellt, wird das Schreiben und Lesen von Daten gleichzeitig durchgeführt. Wenn im Schritt 470 keine Codierung ausgeführt worden ist, setzt sich der Decodierprozess fort, indem zur Ausführung eines nächsten Speicherrahmens zu den Schritten 420 und 440 zurückgekehrt wird.
  • Wie in den 5 und 6 veranschaulicht, wird der Versatz zwischen dem Schreib- und dem Lese-Bankzeiger jeweils so festgelegt, dass Kollisionen, d. h. gleichzeitige Zugriffe, innerhalb desselben RAMs verhindert und Schreib- und Lesevorgänge erlaubt werden, die mit der Zeitsteuerung der Berechnungsstufen des Pipeline-Decoders übereinstimmen. Die Speicherzugriffssequenz kann vordefiniert sein und hängt vom Systemtakt ab. Das Decodieren des Reed-Solomon-Decoders kann daher rasch und ohne Speicherengpässe ausgeführt werden.
  • Die nachstehende Tabelle 2 zeigt im Vergleich die Anzahl an Speicherzugriffszyklen, die für einen Decoder mit einem einzigen zirkularen RAM einerseits und für den erfindungsgemäßen Reed-Solomon-Decoder, der drei zirkulare RAMs verwendet, andererseits erforderlich sind. Tabelle 2
    RS(n, k)-Code Schreibzyklen Lesezyklen Gesamte Lese- und Schreib-Zyklen Benötigte Speicherzugriffszyklen Benötigte Systemtakte relativ zu Dateneingabetakten
    1 RAM n n 2n > 2n > 2x
    3 RAMs n n 2n n 1x
  • Wie aus Tabelle 2 ersichtlich, ist unter der nicht beschränkenden Annahme, dass n einen jeweiligen Zyklus zum Schreiben von Daten in und Lesen von Daten aus den RAMs bezeichnet, die Anzahl an Zyklen, die notwendig ist, um pro Datenrahmen auf Speicher zuzugreifen, im Fall der Verwendung eines einzelnen RAM gleich 2n, während sie für den Fall von 3 RAMs nur gleich n ist. Außerdem muss, wenn nur ein RAM verwendet wird, die Systemtaktrate um das Zweifache oder mehr gegenüber einer Dateneingabetaktrate erhöht werden. Im Gegensatz dazu kann bei der erfindungsgemäßen Verwendung von drei RAMs eine Systemtaktrate verwendet werden, die gleich groß wie die Dateneingabetaktrate ist. Als Resultat hiervon kann das Schreiben und Lesen von Daten mit einem niedriger getakteten Systemtaktsignal erfolgen.
  • Die nachstehende Tabelle 3 zeigt einen Vergleich hinsichtlich Größe und Betriebsgeschwindigkeit zwischen einem herkömmlichen RAM-Einzelspeicher und dem 3-RAM-Doppelbankbauelement für den Fall, dass SRAMs für 256-Byte-Codeworte verwendet werden. Tabelle 3
    Speicher Größe Relative Geschwindigkeit
    Absolut Relativ
    1 RAM (1536 Byte) 10996 0,66x < 0,5x
    3 RAMs (512·3 Byte) 5573·3 1 1
  • Wie aus Tabelle 3 ersichtlich, ist bei einer Codewortlänge von 256 Byte die Größe eines einzelnen 1536-Byte-SRAM um den Faktor 0,66 kleiner als diejenige der erfindungsgemäßen Konfiguration mit drei 512-Byte-SRAMs.
  • Jedoch ist die Betriebsgeschwindigkeit im Fall der drei SRAMs mehr als doppelt so groß wie im Fall des einzelnen SRAMs. Außerdem ist bei Betrachtung des Reed-Solomon-Decoders als Ganzes der prozentuale Anstieg seiner Größe als Folge der Verwendung der drei SRAMs unter Berücksichtigung der erhöhten Betriebsgeschwindigkeiten vernachlässigbar.
  • 7 ist ein Zeitablaufdiagramm des Decodierprozesses des im Blockpipelinebetrieb arbeitenden Reed-Solomon-Decoders in einer erfindungsgemäßen Realisierung. Wie aus 7 ersichtlich, beträgt eine anfängliche Latenzverzögerung T70 4·n Zyklen, und fehlerkorrigierte Daten DOUT, d. h.
  • R'(x), werden jeweils um n Zyklen nach der anfänglichen Latenzverzögerung T70 abgegeben. Sobald im fünften und sechsten Rahmen ein vollständiger Pipelinebetrieb der Vorgänge erreicht ist, kann sowohl das Schreiben von Daten mit der Berechnung von S(x) als auch das Lesen von Daten R'(x) ausgeführt werden, ohne einen Engpass zu erzeugen, da die Latenz der Schreib/Lese-Vorgänge n Zyklen beträgt. In 7 repräsentiert T75 ein Durchsatzverzögerungsintervall in der aktuellen Verarbeitungsprozedur und kein Latenzverzögerungsintervall.
  • Das 3-RAM-Doppelbankbauelement und der dieses verwendende, erfindungsgemäße Reed-Solomon-Decoder besitzen einen breiten Anwendungsbereich einschließlich, um Beispiele zu nennen, optische Plattensysteme, wie digitale Mehrzweckplatten hoher Auflösung (HD-DVD), HDTV, Satellitenkommunikation, drahtlose Kommunikationsausrüstungen, wie IMT, Netzwerksysteme, wie Giga-Ethernet, und Ultrahochgeschwindigkeitssysteme.
  • Im 3-RAM-Doppelbankelement kann der Dateneingabetakt für das Zugreifen auf Speicher als Systemtakt verwendet werden, was die Herstellung des Halbleiterbauelementes vereinfacht, den Stromverbrauch verringert und die Betriebsgeschwindigkeit steigert. Außerdem kann das zeitaufwendige Zugreifen auf Speicher minimiert werden, so dass die Systemtaktrate weniger durch die Speicherzugriffszeit beeinflusst wird, was praktisch den Freiheitsgrad für die Zeitsteuerungstoleranzen zwischen Blöcken im Systemdesign erhöht. Zudem ermöglicht das 3-RAM-Doppelbankbauelement Hochgeschwindigkeitsübertragungen, die besonders für einen im Pipelinebetrieb mit hoher Geschwindigkeit arbeitenden Reed-Solomon-Decoder und für Ultrahochgeschwindigkeitssysteme geeignet sind, die den Reed-Solomon-Decoder einsetzen.

Claims (30)

  1. Pufferschaltung zum gleichzeitigen Schreiben und Lesen von Daten während einer jeweiligen von aufeinanderfolgenden Rahmenperioden, mit – einem Speicherbauelement mit einer Mehrzahl von Dualbank-RAMs (310, 320, 330) oder mit mehreren Speichern, von denen jeder Doppelbänke aufweist, und – einem Speichersteuerschaltkreis (300), der mit den mehreren Doppelbank-RAMs oder Speichern gekoppelt und dafür eingerichtet ist, in jeder Rahmenperiode das Schreiben in eine Bank und das Lesen aus einer anderen Bank, die in einem anderen von den mehreren Doppelbank-RAMs oder Speichern enthalten ist als die Bank, in die gleichzeitig geschrieben wird, freizugeben und von einer zur nächsten Rahmenperiode das Schreiben und das Lesen von Daten zyklisch für je eine nächste Bank derart freizugeben, dass aus jeder Bank der Doppelbank-RAMs in Abständen einer vorgegebenen Anzahl von Rahmenperioden gelesen und in selbige mit demselben Abstand geschrieben wird.
  2. Pufferschaltung nach Anspruch 1, weiter dadurch gekennzeichnet, dass ein erstes, ein zweites und ein drittes Doppelbank-RAM mit einer ersten und zweiten, dritten und vierten bzw. fünften und sechsten Bank vorgesehen sind, wobei der Speichersteuerschaltkreis das Lesen aus und das Schreiben in die erste bis sechste Bank in Abständen von jeweils sechs Rahmenperioden freigibt.
  3. Pufferschaltung nach Anspruch 2, weiter dadurch gekennzeichnet, dass während einer jeweiligen Rahmenperiode ein Versatz zwischen dem Freigeben des Lesens einer Datenbank und dem Schreiben in selbige von vier Bänken vorgesehen ist, so dass aus einer jeweiligen Bank, in die während einer Rahmenperiode a geschrieben wurde, in einer späteren Rahmenperiode a + 4 gelesen wird, wobei a eine ganze Zahl ist.
  4. Pufferschaltung nach Anspruch 2, weiter dadurch gekennzeichnet, dass während einer jeweiligen Rahmenperiode ein Versatz zwischen dem Freigeben des Lesens einer Datenbank und des Schreibens in selbige von drei Bänken vorgesehen ist, so dass aus einer jeweiligen Bank, in die während einer Rahmenperiode a geschrieben wurde, in einer späteren Rahmenperiode a + 3 gelesen wird, wobei a eine ganze Zahl ist.
  5. Pufferschaltung nach Anspruch 2 oder 3, weiter dadurch gekennzeichnet, dass – der Speichersteuerschaltkreis während einer a-ten Rahmenperiode das Lesen aus der ersten Bank des ersten Doppelbank-RAMs und das Schreiben in die fünfte Bank freigibt, die im dritten Doppelbank-RAM enthalten ist, wobei a eine ganze Zahl ist, – der Speichersteuerschaltkreis während einer (a + 1)-ten Rahmenperiode das Lesen aus der zweiten Bank des ersten Doppelbank-RAMs und das Schreiben in die sechste Bank freigibt, die im dritten Doppelbank-RAM enthalten ist, – der Speichersteuerschaltkreis während einer (a + 2)-ten Rahmenperiode das Lesen aus der dritten Bank, die im zweiten Doppelbank-RAM enthalten ist, und das Schreiben in die erste Bank des ersten Doppelbank-RAMs freigibt, – der Speichersteuerschaltkreis während einer (a + 3)-ten Rahmenperiode das Lesen aus der vierten Bank, die im zweiten Doppelbank-RAM enthalten ist, und das Schreiben in die zweite Bank des ersten Doppelbank-RAMs freigibt, – der Speichersteuerschaltkreis während einer (a + 4)-ten Rahmenperiode das Lesen aus der fünften Bank, die im dritten Doppelbank-RAM enthalten ist, und das Schreiben in die dritte Bank freigibt, die im zweiten Doppelbank-RAM enthalten ist, und – der Speichersteuerschaltkreis während einer (a + 5)-ten Rahmenperiode das Lesen aus der sechsten Bank, die im dritten Doppelbank-RAM enthalten ist, und das Schreiben in die vierte Bank freigibt, die im zweiten Doppelbank-RAM enthalten ist.
  6. Pufferschaltung nach Anspruch 2 oder 4, weiter dadurch gekennzeichnet, dass – der Speichersteuerschaltkreis während einer a-ten Rahmenperiode das Lesen aus der ersten Bank des ersten Doppelbank-RAMs und das Schreiben in die vierte Bank freigibt, die im zweiten Doppelbank-RAM enthalten ist, wobei a eine ganze Zahl ist, – der Speichersteuerschaltkreis während einer (a + 1)-ten Rahmenperiode das Lesen aus der zweiten Bank des ersten Doppelbank-RAMs und das Schreiben in die fünfte Bank freigibt, die im dritten Doppelbank-RAM enthalten ist, – der Speichersteuerschaltkreis während einer (a + 2)-ten Rahmenperiode das Lesen aus der dritten Bank, die im zweiten Doppelbank-RAM enthalten ist, und das Schreiben in die sechste Bank freigibt, die im dritten Doppelbank-RAM enthalten ist, – der Speichersteuerschaltkreis während einer (a + 3)-ten Rahmenperiode das Lesen aus der vierten Bank, die im zweiten Doppelbank-RAM enthalten ist, und das Schreiben in die erste Bank des ersten Doppelbank-RAMs freigibt, – der Speichersteuerschaltkreis während einer (a + 4)-ten Rahmenperiode das Lesen aus der fünften Bank, die im dritten Doppelbank-RAM enthalten ist, und das Schreiben in die zweite Bank des ersten Doppelbank-RAMs freigibt und – der Speichersteuerschaltkreis während einer (a + 5)-ten Rahmenperiode das Lesen aus der sechsten Bank, die im dritten Doppelbank-RAM enthalten ist, und das Schreiben in die dritte Bank freigibt, die im zweiten Doppelbank-RAM enthalten ist.
  7. Pufferschaltung nach einem der Ansprüche 1 bis 6 für einen Reed-Solomon-Decoder vom Blockpipelinetyp hoher Geschwindigkeit zur Korrektur von Fehlern durch Decodieren der von außen empfangenen Daten, wobei die empfangenen Daten in das Speicherbauelement geschrieben und aus ihm wieder ausgelesen werden, die Speicher durch einen Schreib/Lese-Befehl und ein Freigabesignal aktiviert werden und der Speichersteuerschaltkreis eine zirkulare Puffersteuereinheit (300) beinhaltet, um den Schreib/Lese-Befehl und das Freigabesignal zwecks Auswählen eines entsprechenden der mehreren Speicher und Festlegen eines Schreib-Bankzeigers und eines Lese-Bankzeigers derart abzugeben, dass Bänke zum Schreiben und Lesen eines jeweiligen Datenrahmens aus verschiedenen Speichern mit einem vorgegebenen Versatz ausgewählt werden.
  8. Pufferschaltung nach einem der Ansprüche 1 bis 7, weiter dadurch gekennzeichnet, dass die mehreren Speicher drei Speicher mit wahlfreiem Zugriff (RAMs) mit je zwei Bänken aufweisen, wobei jede Bank einen Datenrahmen speichert.
  9. Pufferschaltung nach Anspruch 7 oder 8, weiter dadurch gekennzeichnet, dass die zirkulare Puffersteuereinheit den Schreib-Bankzeiger und den Lese-Bankzeiger mit einem Versatz von vier Bänken zwischen dem Schreib-Bankzeiger und dem Lese-Bankzeiger festlegt, wenn der Reed-Solomon-Decoder sowohl Fehler- als auch Irrungskorrekturen durchführt.
  10. Pufferschaltung nach Anspruch 7 oder 8, weiter dadurch gekennzeichnet, dass die zirkulare Puffersteuereinheit den Schreib-Bankzeiger und den Lese-Bankzeiger mit einem Versatz von drei Bänken zwischen dem Schreib-Bankzeiger und dem Lese-Bankzeiger festlegt, wenn der Reed-Solomon-Decoder nur eine Fehlerkorrektur durchführt.
  11. Verfahren zum Zugreifen auf eine Mehrzahl von Doppelbank-Speichern zwecks gleichzeitigem Schreiben und Lesen von Daten während einer jeweiligen von aufeinanderfolgenden Rahmenperioden, dadurch gekennzeichnet, dass in jeder Rahmenperiode das Schreiben in eine Bank und das Lesen aus einer anderen Bank, die in einem anderen der mehreren Doppelbank-Speicher enthalten ist als diejenige Bank, in die gleichzeitig geschrieben wird, freigegeben werden und von einer zur nächsten Rahmenperiode das Schreiben und das Lesen von Daten zyklisch für je eine nächste Bank derart freigegeben werden, dass jede Bank der Doppelbank-Speicher jeweils im Abstand einer vorgegebenen Anzahl von Rahmenperioden gelesen und in selbige mit demselben Abstand geschrieben wird.
  12. Verfahren nach Anspruch 11 zum Zugreifen auf ein Speicherbauelement mit drei Doppelbank-RAMs, die eine erste und zweite Bank, eine dritte und vierte Bank bzw. eine fünfte und sechste Bank beinhalten, dadurch gekennzeichnet, dass – das Lesen aus der ersten bis sechsten Bank nacheinander während aufeinanderfolgender Rahmenperioden derart freigegeben wird, dass jede Bank nach jeweils sechs Rahmenperioden gelesen wird, und – das Schreiben in die erste bis sechste Bank nacheinander während der aufeinanderfolgenden Rahmenperioden derart freigegeben wird, dass in jede Bank nach jeweils sechs Rahmenperioden geschrieben wird, – wobei während einer jeweiligen Rahmenperiode diejenige Bank, für die das Lesen freigegeben wird, in einem anderen der drei Doppelbank-RAMs enthalten ist als diejenige Bank, für die das Schreiben freigegeben wird.
  13. Verfahren nach Anspruch 12, weiter dadurch gekennzeichnet, dass während jeder Rahmenperiode ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und einer Bank, für die das Schreiben freigegeben wird, von vier Bänken vorgesehen ist, so dass aus derjenigen der sechs Bänke, in die während einer Rahmenperiode a geschrieben wurde, in einer späteren Rahmenperiode a + 4 gelesen wird, wobei a eine ganze Zahl ist.
  14. Verfahren nach Anspruch 12, weiter dadurch gekennzeichnet, dass während einer jeden Rahmenperiode ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und einer Bank, für die das Schreiben freigegeben wird, von drei Bänken vorgesehen wird, so dass aus derjenigen der ersten bis sechsten Bank, in die während einer Rahmenperiode a geschrieben wurde, in einer späteren Rahmenperiode a + 3 gelesen wird, wobei a eine ganze Zahl ist.
  15. Verfahren nach Anspruch 12, weiter gekennzeichnet durch folgende Schritte: – während einer a-ten Rahmenperiode Lesen aus der ersten Bank des ersten Doppelbank-RAMs und Schreiben in die fünfte Bank, die im dritten Doppelbank-RAM enthalten ist, wobei a eine ganze Zahl ist, – während einer (a + 1)-ten Rahmenperiode Lesen aus der zweiten Bank des ersten Doppelbank-RAMs und Schreiben in die sechste Bank, die im dritten Doppelbank-RAM enthalten ist, während einer (a + 2)-ten Rahmenperiode Lesen aus der dritten Bank, die im zweiten Doppelbank-RAM enthalten ist, und Schreiben in die erste Bank des ersten Doppelbank-RAMs, – während einer (a + 3)-ten Rahmenperiode Lesen aus der vierten Bank, die im zweiten Doppelbank-RAM enthalten ist, und Schreiben in die zweite Bank des ersten Doppelbank-RAMs, – während einer (a + 4)-ten Rahmenperiode Lesen aus der fünften Bank, die im dritten Doppelbank-RAM enthalten ist, und Schreiben in die dritte Bank, die im zweiten Doppelbank-RAM enthalten ist, und – während einer (a + 5)-ten Rahmenperiode Lesen aus der sechsten Bank, die im dritten Doppelbank-RAM enthalten ist, und Schreiben in die vierte Bank, die im zweiten Doppelbank-RAM enthalten ist.
  16. Verfahren nach Anspruch 12, weiter dadurch gekennzeichnet, dass – während einer a-ten Rahmenperiode aus der ersten Bank des ersten Doppelbank-RAMs gelesen und in die vierte Bank geschrieben wird, die im zweiten Doppelbank-RAM enthalten ist, wobei a eine ganze Zahl ist, – während einer (a + 1)-ten Rahmenperiode aus der zweiten Bank des ersten Doppelbank-RAMs gelesen und in die fünfte Bank geschrieben wird, die im dritten Doppelbank-RAM enthalten ist, – während einer (a + 2)-ten Rahmenperiode aus der dritten Bank, die im zweiten Doppelbank-RAM enthalten ist, gelesen und in die sechste Bank geschrieben wird, die im dritten Doppelbank-RAM enthalten ist, – während einer (a + 3)ten Rahmenperiode aus der vierten Bank, die im zweiten Doppelbank-RAM enthalten ist, gelesen und in die erste Bank des ersten Doppelbank-RAMs geschrieben wird, – während einer (a + 4)-ten Rahmenperiode aus der fünften Bank, die im dritten Doppelbank-RAM enthalten ist, gelesen und in die zweite Bank des ersten Doppelbank-RAMs geschrieben wird und – während einer (a + 5)-ten Rahmenperiode aus der sechsten Bank, die im dritten Doppelbank-RAM enthalten ist, gelesen und in die dritte Bank geschrieben wird, die im zweiten Doppelbank-RAM enthalten ist.
  17. Verfahren nach einem der Ansprüche 11 bis 16, weiter dadurch gekennzeichnet, dass die Speicher für einen Reed-Solomon-Decoder vom Blockpipelinetyp hoher Geschwindigkeit zum Decodieren der von außen empfangenen Daten und Korrigieren von Fehlern verwendet werden und folgende Schritte vorgesehen sind: a) Festlegen eines Schreib-Bankzeigers und eines Lese-Bankzeigers für jeden Datenrahmen mit einem vorgegebenen Versatz zwischen dem Schreib-Bankzeiger und dem Lese-Bankzeiger in Abhängigkeit vom Fehlerkorrekturmodus, wobei die Nummer jedes Schreib- und jedes Lese-Bankzeigers für den jeweiligen Datenrahmen inkrementiert wird, b) Feststellen, ob ein Datenschreibbefehl oder ein Datenlesebefehl an einen der mehreren Speicher angelegt wird, c) Auswählen der durch den Schreib-Bankzeiger angezeigten Bank aus einem mit dem Anwenden des Datenschreibbefehls in Schritt b freigegebenen Speicher und Schreiben von Daten in die ausgewählte Bank, d) Auswählen der durch den Lese-Bankzeiger angezeigten Bank aus einem anderen, mit dem Anwenden des Datenlesebefehls in Schritt b freigegebenen Speicher und Lesen von in die ausgewählte Bank geschriebenen Daten und e) Wiederholen der Schritte b bis d, bis das Decodieren der Daten abgeschlossen ist, wobei die Schritte c und d gleichzeitig ausgeführt werden.
  18. Verfahren nach Anspruch 17, weiter dadurch gekennzeichnet, dass der Schritt a folgende Teilschritte umfasst: a1) Feststellen, ob sowohl Fehler- als auch Irrungskorrekturen durchzuführen sind, a2) Festlegen des Schreib-Bankzeigers und des Lese-Bankzeigers mit einem Versatz von vier Bänken, wenn festgestellt wird, dass sowohl Fehler- als auch Irrungskorrekturen durchzuführen sind, a3) Feststellen, ob nur eine Fehlerkorrektur durchzuführen ist, wenn festgestellt wird, dass nicht sowohl Fehler- als auch Irrungskorrekturen durchzuführen sind, und a4) Festlegen des Schreib-Bankzeigers und des Lese-Bankzeigers mit einem Versatz von drei Bänken, wenn festgestellt wird, dass nur eine Fehlerkorrektur durchzuführen ist.
  19. Reed-Solomon-Decoder vom Pipelinetyp mit – einer Mehrzahl von im Pipelinebetrieb arbeitenden Verarbeitungseinheiten, die eingegebene Reed-Solomon-Codeworte empfangen und Berechnungen zur Identifizierung von Fehlerpositionen und Fehlerwerten durchführen, die in den eingegebenen Codeworten enthalten sind, gekennzeichnet durch – eine Pufferschaltung nach einem der Ansprüche 1 bis 10 zum temporären Speichern der eingegebenen Codeworte während der Ausführung der Berechnungen durch die mehreren, im Pipelinebetrieb arbeitenden Verarbeitungseinheiten.
  20. Reed-Solomon-Decoder nach Anspruch 19, weiter dadurch gekennzeichnet, dass die mehreren im Pipelinebetrieb arbeitenden Verarbeitungseinheiten aus fünf Pipeline-Verarbeitungsstufen bestehen, wobei während einer jeweiligen Rahmenperiode ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und einer Bank, für die das Schreiben freigegeben wird, von vier Bänken vorgesehen ist, so dass bei sechs vorhandenen Bänken das Lesen aus einer jeweiligen Bank während einer Rahmenperiode a + 4 erfolgt, wenn in selbige während einer Rahmenperiode a geschrieben wurde, wobei a eine ganze Zahl ist.
  21. Reed-Solomon-Decoder nach Anspruch 19, weiter dadurch gekennzeichnet, dass die mehreren, im Pipelinebetrieb arbeitenden Verarbeitungseinheiten aus vier Pipeline-Verarbeitungsstufen bestehen, wobei ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und einer Bank, für die das Schreiben freigegeben wird, von drei Bänken vorgesehen ist, so dass bei sechs vorhandenen Bänken aus einer jeweiligen Bank während einer Rahmenperiode a + 3 gelesen wird, wenn in selbige während einer Rahmenperiode a geschrieben wurde, wobei a eine ganze Zahl ist.
  22. Reed-Solomon-Decoder nach einem der Ansprüche 19 bis 21, weiter dadurch gekennzeichnet, dass – die mehreren, im Pipelinebetrieb arbeitenden Verarbeitungseinheiten in einem ersten Modus, in welchem eine Fehler- und Irrungskorrektur ausgeführt wird und fünf Pipeline-Verarbeitungsstufen betrieben werden, und einem zweiten Modus betreibbar sind, in welchem nur eine Fehlerkorrektur ausgeführt wird und vier Pipeline-Verarbeitungsstufen betrieben werden, – wobei im ersten Modus während einer jeweiligen Rahmenperiode ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und einer Bank, für die das Schreiben freigegeben wird, von vier Bänken vorgesehen ist, so dass bei sechs vorhandenen Bänken aus einer jeweiligen Bank während einer Rahmenperiode a + 4 gelesen wird, in die während einer Rahmenperiode a geschrieben wurde, wobei a eine ganze Zahl ist, und – im zweiten Modus während einer jeweiligen Rahmenperiode ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und einer Bank, für die das Schreiben freigegeben wird, von drei Bänken vorgesehen ist, so dass aus einer jeweiligen Bank während einer Rahmenperiode a + 3 gelesen wird, in die während einer Rahmenperiode a geschrieben wurde.
  23. Reed-Solomon-Decoder nach einem der Ansprüche 19 bis 22, weiter dadurch gekennzeichnet, dass die mehreren Pipeline-Verarbeitungseinheiten und die Pufferschaltung in Abhängigkeit von derselben Taktsignalrate betreibbar sind.
  24. Reed-Solomon-Decoder nach einem der Ansprüche 19 bis 23, weiter dadurch gekennzeichnet, dass jedes Codewort n Bytes enthält und jede von sechs Bänken eine Kapazität von n Bytes aufweist, wobei n eine positive ganze Zahl ist.
  25. Reed-Solomon-Decoder nach einem der Ansprüche 19 bis 24, weiter dadurch gekennzeichnet, dass die maximale Latenz jeder der mehreren Pipeline-Verarbeitungseinheiten n Zyklen beträgt und jede Rahmenperiode n Zyklen lang ist, wobei n eine positive ganze Zahl ist.
  26. Reed-Solomon-Decoder nach Anspruch 19 vom Blockpipelinetyp hoher Geschwindigkeit, weiter dadurch gekennzeichnet, dass die Verarbeitungseinheiten folgendes umfassen: – einen Syndromgenerator (100) zum Erzeugen eines Syndroms aus empfangenen Daten, – einen Polynomkoeffizientengenerator (150) zum Erzeugen der Koeffizienten eines Fehlerlokalisierpolynoms und eines Fehlerbestimmungspolynoms unter Verwendung des erzeugten Syndroms, – eine Fehlerpositionssuch- und Fehlerwertbestimmungsstufe (160, 170) zum Ermitteln der Positionen von Fehlern und zum Berechnen von Fehlerwerten unter Verwendung des Fehlerlokalisierpolynoms und des Fehlerbestimmungspolynoms mit den erzeugten Koeffizienten und – einen Fehlerkorrektor (190) zum Korrigieren von Fehlern der vom Speicherbauelement abgegebenen Daten auf der Basis der von der Fehlerpositionssuch- und Fehlerwertbestimmungsstufe abgegebenen Fehlerpositionen und Fehlerwerte.
  27. Reed-Solomon-Decoder nach Anspruch 26, weiter dadurch gekennzeichnet, dass das Speicherbauelement drei Speicher mit wahlfreiem Zugriff (RAMs) mit Doppelbänken aufweist und Bänke verschiedener RAMs zum Schreiben bzw. Lesen während eines jeweiligen Rahmens empfangener Daten freigegeben werden.
  28. Reed-Solomon-Decoder nach Anspruch 26 oder 27, weiter dadurch gekennzeichnet, dass in dem Speicherbauelement ein Schreib-Bankzeiger und ein Lese-Bankzeiger mit einem ersten Versatz zwischen dem Schreib-Bankzeiger und dem Lese-Bankzeiger festgelegt werden, um Bänke zum Schreiben bzw. Lesen des jeweiligen Rahmens empfangener Daten auszuwählen.
  29. Reed-Solomon-Decoder nach einem der Ansprüche 26 bis 28, weiter gekennzeichnet durch: – einen Merkerzähler und Merkerpuffer zum Zählen von Irrungsmerkern, die synchron mit den empfangenen Daten eingegeben werden, und zum Puffern der Irrungsmerker, – einen Irrungslokalisierpolynomgenerator (130) zum Erzeugen eines Irrungslokalisierpolynoms unter Verwendung der gepufferten Irrungsmerker und – einen Syndrommodifizierer (140) zum Modifizieren des vom Syndromgenerator erzeugten Syndroms mit den gepufferten Irrungsmerkern und Zuführen des modifizierten Syndroms zum Polynomkoeffizientengenerator, der die Koeffizienten des Fehlerlokalisierpolynoms und Fehlerbestimmungspolynoms unter Verwendung des Irrungslokalisierpolynoms und des modifizierten Syndroms berechnet.
  30. Reed-Solomon-Decoder nach einem der Ansprüche 26 bis 29, weiter dadurch gekennzeichnet, dass ein Dateneingabetaktsignal, das zum Schreiben von Daten in das Speicherbauelement verwendet wird, und ein Systemtaktsignal, das zum Betrieb jedes Blocks des Reed-Solomon-Decoders verwendet wird, gleich sind.
DE10133595A 2000-10-25 2001-07-02 Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder Expired - Fee Related DE10133595B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2000-0062904A KR100370239B1 (ko) 2000-10-25 2000-10-25 고속 블럭 파이프라인 구조의 리드-솔로몬 디코더에적용하기 위한 메모리 장치와 메모리 액세스 방법 및 그메모리 장치를 구비한 리드-솔로몬 디코더
KR2000-62904 2000-10-25

Publications (2)

Publication Number Publication Date
DE10133595A1 DE10133595A1 (de) 2002-05-29
DE10133595B4 true DE10133595B4 (de) 2009-01-22

Family

ID=19695352

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10133595A Expired - Fee Related DE10133595B4 (de) 2000-10-25 2001-07-02 Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder

Country Status (8)

Country Link
US (1) US6639865B2 (de)
JP (1) JP3862062B2 (de)
KR (1) KR100370239B1 (de)
CN (1) CN1317643C (de)
DE (1) DE10133595B4 (de)
GB (1) GB2369215B (de)
NL (1) NL1018416C2 (de)
TW (1) TW514933B (de)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080282128A1 (en) * 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
KR100403634B1 (ko) * 2001-10-17 2003-10-30 삼성전자주식회사 고속 파이프라인 리드-솔로몬 디코더에 적용하기 위한메모리 장치와 메모리 액세스 방법 및 그 메모리 장치를구비한 리드-솔로몬 디코더
GB2391769B (en) * 2002-07-31 2005-07-06 Hewlett Packard Co Reed-Solomon decoder and decoding method for errors and erasures decoding
US7237183B2 (en) * 2003-03-04 2007-06-26 Broadcom Corporation Parallel decoding of a BCH encoded signal
US7206992B2 (en) * 2003-03-04 2007-04-17 Broadcom Corporation Decoding a received BCH encoded signal
KR100553691B1 (ko) * 2003-06-17 2006-02-24 윈텍 주식회사 영상처리장치 및 그 방법
KR20070102753A (ko) * 2005-02-14 2007-10-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 크기가 축소된 메모리 테이블에 의한 블록 인터리빙
JP2008141276A (ja) * 2006-11-30 2008-06-19 Sanyo Electric Co Ltd Tv信号処理回路
US8732558B1 (en) * 2007-04-25 2014-05-20 Samsung Electronics Co., Ltd. MPE-FEC system capable of selecting an FEC mode, a forward error correcting method performed in the MPE-FEC system, and an FEC mode selecting method performed in the MPE-FEC system
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
WO2009037697A2 (en) 2007-09-20 2009-03-26 Densbits Technologies Ltd. Improved systems and methods for determining logical values of coupled flash memory cells
JP2009100369A (ja) * 2007-10-18 2009-05-07 Toshiba Corp 誤り検出訂正回路、半導体メモリコントローラ、および誤り検出訂正方法
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009053961A2 (en) 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
US8607128B2 (en) * 2007-12-05 2013-12-10 Densbits Technologies Ltd. Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications
WO2009072103A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
WO2009072104A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8276051B2 (en) * 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US20090157946A1 (en) * 2007-12-12 2009-06-18 Siamak Arya Memory having improved read capability
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
WO2009078006A2 (en) 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
KR101008945B1 (ko) * 2008-10-10 2011-01-17 김영운 상판 접이식 테이블
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8305812B2 (en) 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
TWI425519B (zh) * 2009-12-09 2014-02-01 Nat Chip Implementation Ct Nat Applied Res Lab 低複雜度低密度同位元檢查碼解碼器之記憶體配置方法及其解碼器結構
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8700970B2 (en) 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8510639B2 (en) 2010-07-01 2013-08-13 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
JP5622990B2 (ja) * 2011-01-25 2014-11-12 富士通テン株式会社 画像処理装置、画像表示システム及び画像処理方法
JP2012175260A (ja) * 2011-02-18 2012-09-10 Alpine Electronics Inc 多重放送受信機
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8732433B2 (en) * 2011-08-26 2014-05-20 Micron Technology, Inc. Apparatuses and methods for providing data from multiple memories
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
JP2014082574A (ja) * 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
CN106023346B (zh) * 2016-07-06 2018-08-14 福州瑞芯微电子股份有限公司 动态帧率行车记录系统及车辆速度判断装置
CN107766284B (zh) * 2017-09-11 2021-09-07 中国航空工业集团公司洛阳电光设备研究所 一种基于片外缓存的流水统计方法和统计芯片
US10965929B1 (en) * 2019-01-04 2021-03-30 Rockwell Collins, Inc. Depth mapping and parallel distortion correction for mixed reality
CN112835523A (zh) * 2021-02-02 2021-05-25 致真存储(北京)科技有限公司 一种存储系统及其数据存取的方法
US11962327B2 (en) * 2022-01-13 2024-04-16 Micron Technology, Inc. Iterative decoding technique for correcting DRAM device failures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725987A (en) * 1985-10-23 1988-02-16 Eastman Kodak Company Architecture for a fast frame store using dynamic RAMS
US6081920A (en) * 1998-01-08 2000-06-27 Lsi Logic Corporation Method and apparatus for fast decoding of a Reed-Solomon code

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6172327A (ja) 1984-09-17 1986-04-14 Casio Comput Co Ltd 画像メモリのアドレス分配方式
DE3687739T2 (de) * 1985-12-02 1993-08-19 Ibm Speicheranordnung mit mehrfachem lese-schreibzugriff.
CN1009047B (zh) * 1985-12-27 1990-08-01 复旦大学 交叉穿插的里德-所罗门码的高速纠错译码系统
EP0261751A3 (de) * 1986-09-25 1990-07-18 Tektronix, Inc. Simultanes Speicherzugriffssystem
DE3715885A1 (de) 1987-05-13 1988-11-24 Philips Patentverwaltung Vorfeldeinrichtung, insbesondere fuer ein b-isdn-vermittlungssystem
US4845713A (en) 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
US5226134A (en) * 1990-10-01 1993-07-06 International Business Machines Corp. Data processing system including a memory controller for direct or interleave memory accessing
KR940001590B1 (ko) * 1991-07-05 1994-02-25 한국전기통신공사 블럭읽기 및 쓰기에서의 메모리 엑세스 시간 단축장치 및 방법
US5307314A (en) * 1991-07-15 1994-04-26 Micron Technology, Inc. Split read/write dynamic random access memory
US5459742A (en) * 1992-06-11 1995-10-17 Quantum Corporation Solid state disk memory using storage devices with defects
US5615355A (en) * 1992-10-22 1997-03-25 Ampex Corporation Method and apparatus for buffering a user application from the timing requirements of a DRAM
SG47466A1 (en) 1993-11-04 1998-04-17 Cirrus Logic Inc Reed-solomon decoder
DE69430982T2 (de) 1993-12-09 2003-03-13 Sun Microsystems, Inc. Verschachtelung von Bildelementdaten für eine Darstellungspeicherschnittstelle
US5506810A (en) * 1994-08-16 1996-04-09 Cirrus Logic, Inc. Dual bank memory and systems using the same
US6094703A (en) * 1995-02-21 2000-07-25 Micron Technology, Inc. Synchronous SRAM having pipelined memory access enable for a burst of addresses
KR0170723B1 (ko) 1995-12-29 1999-03-30 김광호 단일 ras 신호에 의해 동시 동작이 가능한 이중 뱅크를 갖는 반도체 메모리 장치
US6023745A (en) * 1996-08-08 2000-02-08 Neomagic Corporation Scoreboarding for DRAM access within a multi-array DRAM device using simultaneous activate and read/write accesses
US6031783A (en) * 1996-08-09 2000-02-29 Townsend And Townsend And Crew Llp High speed video frame buffer
US5774648A (en) 1996-10-02 1998-06-30 Mitsubishi Semiconductor Of America, Inc. Address generator for error control system
JP3233860B2 (ja) * 1996-10-25 2001-12-04 松下電器産業株式会社 リードソロモン復号器
US5961660A (en) 1997-03-03 1999-10-05 International Business Machines Corporation Method and apparatus for optimizing ECC memory performance
JP3250032B2 (ja) 1997-04-09 2002-01-28 日本アイ・ビー・エム株式会社 動的バンド幅変更データ転送方法及びシステム
US6044206A (en) * 1997-10-14 2000-03-28 C-Cube Microsystems Out of order instruction processing using dual memory banks
US6137807A (en) * 1997-12-05 2000-10-24 Whittaker Corporation Dual bank queue memory and queue control system
US5969986A (en) 1998-06-23 1999-10-19 Invox Technology High-bandwidth read and write architectures for non-volatile memories
KR100313503B1 (ko) * 1999-02-12 2001-11-07 김영환 멀티-뱅크 메모리 어레이를 갖는 반도체 메모리 장치
US6347389B1 (en) * 1999-03-23 2002-02-12 Storage Technology Corporation Pipelined high speed reed-solomon error/erasure decoder

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725987A (en) * 1985-10-23 1988-02-16 Eastman Kodak Company Architecture for a fast frame store using dynamic RAMS
US6081920A (en) * 1998-01-08 2000-06-27 Lsi Logic Corporation Method and apparatus for fast decoding of a Reed-Solomon code

Also Published As

Publication number Publication date
JP3862062B2 (ja) 2006-12-27
KR100370239B1 (ko) 2003-01-29
KR20020032038A (ko) 2002-05-03
JP2002164792A (ja) 2002-06-07
TW514933B (en) 2002-12-21
NL1018416C2 (nl) 2005-11-15
NL1018416A1 (nl) 2002-05-01
GB2369215B (en) 2003-04-16
US6639865B2 (en) 2003-10-28
CN1317643C (zh) 2007-05-23
CN1350369A (zh) 2002-05-22
GB2369215A (en) 2002-05-22
DE10133595A1 (de) 2002-05-29
US20020075715A1 (en) 2002-06-20
GB0116275D0 (en) 2001-08-29

Similar Documents

Publication Publication Date Title
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE3850192T2 (de) Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten.
DE60001370T2 (de) Verfahren und vorrichtung zur erkennung von doppelbitfehlern und korrektur von fehlern durch bauelementfehler verursacht
DE3486408T2 (de) Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.
DE69932962T2 (de) Kodierungsverfahren und Speicheranordnung
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE69721076T2 (de) Verfahren und vorrichtung zur korrektur von mehrpegel-speicherzellenanordungen unter verwendung von verschachtelung
DE3853206T2 (de) Verfahren und gerät zur byteschreibfehlerkodierung.
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE69220818T2 (de) Verfahren und Einrichtung zur Fehlererkennung in Recherspeichern versehen mit Mehrfach-bit-Ausgängen
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102013020712B4 (de) Techniken zum Speichern von Bits in Speicherzellen mit Hängenbleiben-auf-0-oder-1-Fehlern
DE69929652T2 (de) Datenfehlerkorrektursystem
DE2942825A1 (de) Verfahren und vorrichtung zur verarbeitung sequentiell uebertragender digitaler informationsworte
DE102017129990B4 (de) Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband
EP0545498A2 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE2503107A1 (de) Korrekturcode fuer impulsfehler
DE69317766T2 (de) Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
DE102007007546A1 (de) Fehlerkorrekturcode-Striping
DE4105860A1 (de) Schaltungsanordnung zum erkennen und korrigieren von fehlern in datenworten
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102016102590A1 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE3851651T2 (de) Schaltungsanordnung zur Erzeugung von Adressen.
DE69837784T2 (de) Verbessertes fünf-fehler-korrektursystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20150203