DE10133595A1 - Pufferschaltung, Speicherzugriffsverfahren, Speicherbauelement und Reed-Solomon-Decoder - Google Patents

Pufferschaltung, Speicherzugriffsverfahren, Speicherbauelement und Reed-Solomon-Decoder

Info

Publication number
DE10133595A1
DE10133595A1 DE10133595A DE10133595A DE10133595A1 DE 10133595 A1 DE10133595 A1 DE 10133595A1 DE 10133595 A DE10133595 A DE 10133595A DE 10133595 A DE10133595 A DE 10133595A DE 10133595 A1 DE10133595 A1 DE 10133595A1
Authority
DE
Germany
Prior art keywords
bank
double
ram
during
frame period
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.)
Granted
Application number
DE10133595A
Other languages
English (en)
Other versions
DE10133595B4 (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

Abstract

Die Erfindung bezieht sich auf eine Pufferschaltung zum gleichzeitigen Schreiben und Lesen von Daten während jeweiliger, aufeinanderfolgender Rahmenperioden, ein Verfahren zum Zugreifen auf mehrere Doppelbank-Speicher und auf einen zugehörigen Reed-Solomon-Decoder vom Pipelinetyp. DOLLAR A Erfindungsgemäß beinhaltet die Pufferschaltung bzw. das Speicherbauelement (180) für den Reed-Solomon-Decoder mehrere Doppelbank-RAMs (310, 320, 330), um gleichzeitige Schreib/Lese-Vorgänge zu ermöglichen. Eine Speichersteuerung (300) gibt das Schreiben in und das Lesen aus den Doppelbank-RAMs während der jeweils aufeinanderfolgenden Rahmenperioden derart frei, dass aus jeder Bank des Doppelbank-RAMs in Abständen einer gegebenen Anzahl von Rahmenperioden gelesen und in denselben Abständen in selbige geschrieben wird, wobei jeweils diejenige Bank, aus der gelesen wird, in einem anderen Doppelbank-RAM enthalten ist als diejenige Bank, in die gleichzeitig geschrieben wird. DOLLAR A Verwendung z. B. in digitalen Datenkommunikations- und Datenspeichersystemen.

Description

Die Erfindung bezieht sich auf eine Pufferschaltung zum gleichzeitigen Schreiben und Lesen von Daten während einer jeweiligen von aufeinan­ derfolgenden Datenrahmenperioden, auf ein zugehöriges Speicherzugriffs­ verfahren, auf einen Reed-Solomon-Decoder mit Pipelinebetrieb und auf ein entsprechendes Speicherbauelement.
Beim Übertragen und Speichern großer digitaler Datenmengen treten un­ vermeidlich Fehler in den Datenkanälen und Übertragungsmedien auf. Es sind eine Vielzahl von Techniken bekannt, mit denen versucht wird, derar­ tige Fehler zu identifizieren und die Daten wiederzugewinnen, soweit mög­ lich. Von diesen Techniken hat die Reed-Solomon-Codierung breite An­ wendung gefunden. Reed-Solomon-Codes sind blockbasierte Fehlerkor­ rekturcodes, die ausgezeichnete Fehlerkorrekturfähigkeiten sowie effizien­ te 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 An­ zahl 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 be­ sitzt 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 Spei­ cherung 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 Feh­ lersymbole in jedem Codewort korrigiert werden können.
Allgemein kann der Reed-Solomon-Decodierprozess in acht hauptsächli­ che 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 je­ doch bekannt ist. Ein "Fehler" liegt vor, wenn keine Information bezüglich eines unrichtigen Symbols bekannt ist. Die Berechnungsschritte der Feh­ ler- 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 eingegebe­ nen 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 Fehlerbestimmungs­ polynom unter Verwendung der modifizierten Syndromwerte und des Ir­ rungs-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 empfange­ ne 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 Codier­ prozess, und es ist oftmals schwierig, Decoder zu realisieren, die ausrei­ chend hohe Verarbeitungsgeschwindigkeiten haben. Dies kann speziell im Hinblick auf den gegenwärtigen Bedarf nach digitalen Datenverarbeitungs­ systemen mit höherer Geschwindigkeit zu Problemen führen.
Im Bemühen, die Geschwindigkeiten zu steigern, ist das Ausführen der Be­ rechnungen des Reed-Solomon-Decoders im Pipelinebetrieb eine mögli­ che 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ängs­ ten Latenz begrenzt ist. Außerdem erzeugt, selbst wenn Latenzen der Ver­ arbeitungsblöcke auf einen einzelnen Rahmen mit einer Anzahl n von Zyk­ len, 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 ab­ zurufen.
Der Erfindung liegt als technisches Problem die Bereitstellung einer Puffer­ schaltung, eines Speicherzugriffsverfahrens, eines Reed-Solomon- Decoders und eines Speicherbauelementes 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 Puffer­ schaltung mit den Merkmalen des Anspruchs 1, eines Speicherzugriffsver­ fahrens mit den Merkmalen des Anspruchs 7 oder 29, eines Reed- Solomon-Decoders mit den Merkmalen des Anspruchs 13 oder 20 sowie eines Speicherbauelementes mit den Merkmalen des Anspruchs 25.
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:
Fig. 1 ein Blockschaltbild eines auf Blockpipelinebetrieb hoher Ge­ schwindigkeit ausgelegten Reed-Solomon-Decoders,
Fig. 2 ein Blockdiagramm zur Veranschaulichung der Latenzen der Ver­ arbeitungsblöcke des Reed-Solomon-Decoders von Fig. 1,
Fig. 3 ein Blockdiagramm eines 3-RAM-Doppelbankbauelementes,
Fig. 4 ein Flussdiagramm eines Verfahrens zum Zugreifen auf das 3- RAM-Doppelbankbauelement von Fig. 3,
Fig. 5 und 6 Blockdiagramme zur Veranschaulichung der Auswahl von Bänken während Schreib/Lese-Vorgängen im 3-RAM-Doppel­ bankbauelement von Fig. 3 und
Fig. 7 ein Ablaufdiagramm zur Veranschaulichung des Pipelinebetriebs des Reed-Solomon-Decoders von Fig. 1.
Fig. 1 veranschaulicht einen Reed-Solomon-Decoder, der für einen Block­ pipelinebetrieb mit hoher Geschwindigkeit ausgelegt ist. Dabei ist er so­ wohl 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 Fig. 1 die innerhalb der gestrichelten Linie 110 enthaltenen Elemente, so dass dann nur vier Pipelinestufen benötigt werden.
Der Reed-Solomon-Decoder von Fig. 1 besitzt ein 3-RAM-Doppelbank­ bauelement 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 Steuerme­ chanismus 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 aus­ gewähltes der drei RAMs und liest Daten aus einer Bank eines der ande­ ren RAMs aus. Die Struktur und Betriebsweise des 3-RAM- Doppelbankbauelements 180 wird unten in Verbindung mit Fig. 3 genauer erläutert.
Wie weiter aus Fig. 1 ersichtlich, beinhaltet der Reed-Solomon-Decoder zur Fehler- und Irrungskorrektur des weiteren einen Syndromgenerator 100, einen Merker-Zähler und -Puffer 120, einen Irrungslokalisierpolynom­ generator 130, einen Syndrommodifizierer 140, einen Polynomkoeffizien­ tengenerator 150, eine Fehlerwertbestimmungseinheit 160, eine Fehlerpo­ sitionssucheinheit 170 und einen Fehlerkorrektor 190. Wie vorstehend er­ wä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 Einga­ bedaten DIN zugeführt werden und puffert die Irrungsmerker Era_Flag. Wenn keine Irrungsmerker Era_Flag vorliegen oder die Anzahl an einge­ gebenen Irrungsmerkern Era_Flag außerhalb eines erlaubten Korrekturbe­ reichs liegt, wird nur eine Fehlerkorrektur durchgeführt. Dabei kann der er­ laubte Korrekturbereich so definiert werden, dass nur eine Fehlerkorrektur durchgeführt wird, wenn mehr lrrungsmerker Era_Flag als die Anzahl an Irrungsmerkern des erlaubten Korrekturbereichs eingegeben werden. Wie gesagt, braucht der Reed-Solomon-Decoder den Merker-Zähler und Mer­ ker-Puffer 120 zur bloßen Fehlerkorrektur nicht zu enthalten.
In der Stufe S2 modifiziert der Syndrommodifizierer 140 das vom Syn­ dromgenerator 100 generierte Syndrom S(x) mit den gepufferten Irrungs­ merkern und gibt ein modifiziertes Syndrom T(x) ab. Im Fall einer bloßen Fehlerkorrektur wird das Syndrom S(x) nicht modifiziert, und der Syn­ drommodifizierer 140 entfällt. Der Irrungslokalisierpolynomgenerator 130 erzeugt ein Irrungslokalisierpolynom unter Verwendung der gepufferten Irrungsmerker. Wie oben erwähnt, wird nur eine Fehlerkorrektur durchge­ fü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 Konstant­ wert, z. B. den Wert eins, anstelle eines Irrungslokalisierpolynoms.
In der Stufe S3 erzeugt der Polynomkoeffizientengenerator 150 die Koeffi­ zienten eines Fehlerlokalisierpolynoms σ(x) zur Fehlerpositionssuche und ein Fehlerbestimmungspolynom e(x) zur Fehlerbestimmung unter Verwen­ dung 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 Fehlerkor­ rektur die im Block 110 enthaltenen Elemente entfallen können, so dass dann die Koeffizienten des Fehlerlokalisierpolynoms σ(x) und des Fehler­ bestimmungspolynoms e(x) unter Verwendung des unmodifizierten Syn­ droms S(x) und des Konstantwertes, z. B. des Wertes 1, erzeugt werden.
In der Stufe S4 berechnet die Fehlerwertbestimmungseinheit 160 Fehler­ werte, 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 ver­ wendet 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 Fehlerpositionssuch­ einheit 170 und die Fehlerwertbestimmungseinheit 160 gemeinsam als ei­ ne Fehlerpositions- und Fehlerwert-Bestimmungseinheit bezeichnet wer­ den.
In der Stufe S5 greift der Fehlerkorrektor 190 von Fig. 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 Bezug­ nahme auf die durch die Fehlerpositionssucheinheit 170 identifizierten Feh­ lerpositionen und unter Bezugnahme auf die von der Fehlerwertbestim­ mungseinheit 160 berechneten Fehlerwerte korrigiert. Insbesondere korri­ giert der Fehlerkorrektor 190 die Fehler, die in den Eingabedaten DIN, die aus dem 3-RAM-Doppelbankbauelement 180 wiedergewonnen wur­ den, 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-Verarbeitungs­ block des Reed-Solomon-Decoders von Fig. 1 die zugehörigen Berech­ nungen in den Stufen S1 bis S5 in Abhängigkeit von einem Systemtaktsig­ nal durch.
Fig. 2 veranschaulicht die Latenz der Stufen S1 bis S5 des Reed-Solomon- Decoders von Fig. 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 Co­ dewort 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üg­ lichen 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 Polynomkoeffizien­ tenerzeugung bezieht, auf n Zyklen beschrieben ist.
Somit ist gemäß Fig. 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 Kor­ rektur 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 wiederzugewin­ nen. 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 Fig. 1 ist in Fig. 3 dargestellt. Wie daraus ersichtlich, umfasst dieses 3- RAM-Doppelbankbauelement 180 eine zirkulare Puftersteuereinheit 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-Doppelbank­ bauelements 180 ist ein paralleles 8-Bit-Signal MOUT[7 : 0], das dem in Fig. 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 Adress­ signal ADDR[7 : 0] zwecks Auswahl einer der beiden Bänke des jeweiligen RAMs 310, 320, 330 addiert. Beispielsweise wird, wenn das Bankauswahl­ signal 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 Daten­ rahmens, d. h. eines Codeworts, und das Lesen eines anderen Datenrah­ mens in jedem von aufeinanderfolgenden Speicherzyklen gleichzeitig durchgeführt werden.
Spezieller legt die zirkulare Puffersteuereinheit 300 in jedem Speicherzyk­ lus das Freigabesignal ENABLE an zwei der RAMs 310, 320, 330 syn­ chron mit dem Taktsignal CLK an, um diese beiden RAMs freizugeben. Des weiteren legt sie einen Lesebefehl RE an eines der beiden freigege­ benen RAMs und einen Schreibbefehl WR an das andere der beiden frei­ gegebenen RAMs an. Zudem fügt sie die 1-Bit-Bankauswahlsignale BK SEL zu den Adresssignalen ADDR[7 : 0] hinzu, die an jedes der freige­ gebenen 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 wer­ den daher eine Bank eines RAMs zum Schreiben und eine Bank eines da­ von 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 Fig. 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) vor­ liegt, wobei n die Länge, d. h. Anzahl an Symbolen bzw. Bytes, eines Co­ dewortes, 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 bezeich­ nen.
Tabelle 1
Hierbei ist die Speicheradressbreite als ein Wert definiert, der dadurch er­ halten wird, dass der Wert 1 zum Minimum einer ganzen Zahl P addiert wird, welche die Bedingung Log2n ≦ 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 de­ taillierter unter Bezugnahme auf die Fig. 3 und 4 erläutert, wobei Fig. 4 ein Flussdiagramm zeigt, das ein Verfahren zum Zugreifen auf das 3-RAM- Doppelbankbauelement 180 veranschaulicht, wie es oben in Verbindung mit Fig. 3 diskutiert wurde.
Beim Zugreifen auf das 3-RAM-Doppelbankbauelement 180 wird der Be­ triebsmodus des Reed-Solomon-Decoders festgestellt, d. h. ob sowohl Feh­ ler- als auch Irrungskorrektur oder nur Fehlerkorrektur durchzuführen ist. Wie aus Fig. 4 ersichtlich, ist das Setzen des Schreib-Bankzeigers und des Lese-Bankzeigers für Fehler- und Irrungskorrektur (Schritt 400) verschie­ den vom Fall der bloßen Fehlerkorrektur (Schritt 410).
Speziell wird im Schritt 402 festgestellt, ob sowohl Fehler- als auch Ir­ rungskorrektur ausgeführt werden sollen. Wie oben erläutert, erfolgt dies durch Überprüfen der Anzahl von lrrungsmerkern Era_Flag, die synchron mit den Eingabedaten DIN eingegeben werden. Wenn es einen oder meh­ rere lrrungsmerker 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 Ir­ rungskorrektur durchzuführen ist, wird ein Schritt 404 ausgeführt, in wel­ chem 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 Fig. 5 deutlicher ersichtlich. In einem ersten Rahmen T50 des Beispiels von Fig. 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 Fig. 5 dargestellt, in je­ dem 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 Rah­ men erfolgt. Wird beispielsweise die BANK 4 des dritten RAMs von Fig. 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 da­ her 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 Fig. 4 im Schritt 402 stattdessen festge­ stellt 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 Korrekturbe­ reichs liegt. Der Versatz von drei Bänken zwischen dem Schreib- Bankzeiger und dem Lese-Bankzeiger wird nun detaillierter unter Bezug­ nahme auf Fig. 6 erläutert. In einem ersten Rahmen T60 des Beispiels von Fig. 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 be­ trägt somit drei Bänke. Der Lese- und der Schreibzeiger werden dann in jedem der in Fig. 6 gezeigten, aufeinanderfolgenden Rahmen inkremen­ tiert, 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 Fig. 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 Fig. 4 im Schritt 420 ein Schreibbefehl angelegt wurde, werden die Eingabedaten DIN in diejenige Bank geschrie­ ben, 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 be­ schrieben.
Wie in Fig. 4 dargestellt, wird das Schreiben und Lesen von Daten gleich­ zeitig durchgeführt. Wenn im Schritt 470 keine Codierung ausgeführt wor­ den 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 Fig. 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 Speicher­ zugriffssequenz 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 Speicher­ zugriffszyklen, 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
Wie aus Tabelle 2 ersichtlich, ist unter der nicht beschränkenden Annah­ me, 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 Verwen­ dung 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 Datenein­ gabetaktrate erhöht werden. Im Gegensatz dazu kann bei der erfindungs­ gemäßen Verwendung von drei RAMs eine Systemtaktrate verwendet werden, die gleich groß wie die Dateneingabetaktrate ist. Als Resultat hier­ von kann das Schreiben und Lesen von Daten mit einem niedriger getakte­ ten Systemtaktsignal erfolgen.
Die nachstehende Tabelle 3 zeigt einen Vergleich hinsichtlich Größe und Betriebsgeschwindigkeit zwischen einem herkömmlichen RAM-Einzelspei­ cher und dem erfindungsgemäßen 3-RAM-Doppelbanklbauelement für den Fall, dass SRAMs für 256-Byte-Codeworte verwendet werden.
Tabelle 3
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 Be­ trachtung des Reed-Solomon-Decoders als Ganzes der prozentuale An­ stieg seiner Größe als Folge der Verwendung der drei SRAMs unter Be­ rücksichtigung der erhöhten Betriebsgeschwindigkeiten vernachlässigbar.
Fig. 7 ist ein Zeitablaufdiagramm des Decodierprozesses des im Blockpi­ pelinebetrieb arbeitenden Reed-Solomon-Decoders in einer erfindungsge­ mäßen Realisierung. Wie aus Fig. 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öge­ rung T70 abgegeben. Sobald im fünften und sechsten Rahmen ein voll­ stä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ängen Zyklen beträgt. In Fig. 7 repräsentiert T75 ein Durchsatzverzögerungsintervall in der aktuellen Verarbeitungspro­ zedur und kein Latenzverzögerungsintervall.
Das erfindungsgemäße 3-RAM-Doppelbankbauelement und der dieses verwendende, erfindungsgemäße Reed-Solomon-Decoder besitzen einen breiten Anwendungsbereich einschließlich, um Beispiele zu nennen, opti­ sche Plattensysteme, wie digitale Mehrzweckplatten hoher Auflösung (HD- DVD), HDTV, Satellitenkommunikation, drahtlose Kommunikationsausrüs­ tungen, wie IMT, Netzwerksysteme, wie Giga-Ethernet, und Ultrahochge­ schwindigkeitssysteme.
Im erfindungsgemäßen 3-RAM-Doppelbankelement kann der Dateneinga­ betakt für das Zugreifen auf Speicher als Systemtakt verwendet werden, was die Herstellung des Halbleiterbauelementes vereinfacht, den Strom­ verbrauch 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-Doppel­ bankbauelement 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, gekennzeichnet durch
eine Mehrzahl von Dualbank-RAMs (310, 320, 330) und
einen Speichersteuerschaltkreis (300), der mit den mehreren Dop­ pelbank-RAMs gekoppelt ist und das Schreiben in und das Lesen aus den mehreren Doppelbank-RAMs während einer jeweiligen Rahmenperiode derart freigibt, dass aus jeder Bank der Doppelbank-RAMs in Abständen einer gegebenen Anzahl von Rahmenperioden gelesen und in selbige mit demselben Abstand geschrieben wird und in der jeweiligen Rahmenperio­ de eine Bank, aus der gelesen wird, in einem anderen von den mehreren Doppelbank-RAMs enthalten ist als eine Bank, in die geschrieben wird.
2. Pufferschaltung nach Anspruch 1, weiter dadurch gekennzeichnet, dass ein erstes, ein zweites und ein drittes Doppelbank-RAM mit einer ers­ ten und zweiten, dritten und vierten bzw. fünften und sechsten Bank vorge­ sehen 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 vorstehen ist, so dass aus einer jeweiligen Bank, in die wäh­ rend einer Rahmenperiode a geschrieben wurde, in einer späteren Rah­ menperiode 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äh­ rend einer Rahmenperiode a geschrieben wurde, in einer späteren Rah­ menperiode a+3 gelesen wird, wobei a eine ganze Zahl ist.
5. Pufferschaltung nach Anspruch 2 oder 3, weiter dadurch gekenn­ zeichnet, 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 ent­ halten ist, wobei a eine ganze Zahl ist,
der Speichersteuerschaltkreis während einer (a+1)-ten Rahmenperi­ ode 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 Rahmenperi­ ode das Lesen aus der dritten Bank, die im zweiten Doppelbank-RAM ent­ halten ist, und das Schreiben in die erste Bank des ersten Doppelbank- RAMs freigibt,
der Speichersteuerschaltkreis während einer (a+3)-ten Rahmenperi­ ode das Lesen aus der vierten Bank, die im zweiten Doppelbank-RAM ent­ halten ist, und das Schreiben in die zweite Bank des ersten Doppelbank- RAMs freigibt,
der Speichersteuerschaltkreis während einer (a+4)-ten Rahmenperi­ ode das Lesen aus der fünften Bank, die im dritten Doppelbank-RAM ent­ halten 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 Rahmenperi­ ode 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 gekenn­ zeichnet, 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 ent­ halten ist, wobei a eine ganze Zahl ist,
der Speichersteuerschaltkreis während einer (a+1)-ten Rahmenperi­ ode 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 Rahmenperi­ ode das Lesen aus der dritten Bank, die im zweiten Doppelbank-RAM ent­ halten ist, und das Schreiben in die sechste Bank freigibt, die im dritten Doppelbank-RAM enthalten ist,
der Speichersteuerschaltkreis während einer (a+3)-ten Rahmenperi­ ode das Lesen aus der vierten Bank, die im zweiten Doppelbank-RAM ent­ halten ist, und das Schreiben in die erste Bank des ersten Doppelbank- RAMs freigibt,
der Speichersteuerschaltkreis während einer (a+4)-ten Rahmenperi­ ode das Lesen aus der fünften Bank, die im dritten Doppelbank-RAM ent­ halten ist, und das Schreiben in die zweite Bank des ersten Doppelbank- RAMs freigibt und
der Speichersteuerschaltkreis während einer (a+5)-ten Rahmenperi­ ode 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. Verfahren zum Zugreifen auf eine Mehrzahl von Doppelbank-Speichern, dadurch gekennzeichnet, dass das Schreiben in und das Lesen aus den mehreren Dolppelbank-Speichern während einer jeden von aufeinanderfolgenden Rahmenperioden derart freigegeben wird, dass jede Bank der Doppelbank-Speicher jeweils im Ab­ stand einer gegebenen Anzahl von Rahmenperioden gelesen und in selbi­ ge mit demselben Abstand geschrieben wird, wobei dlie jeweils gelesene Bank in einem anderen der mehreren Doppelbank-Speicher enthalten ist als diejenige Bank, in die während der jeweiligen Rahmenperiode ge­ schrieben wird.
8. Verfahren nach Anspruch 7 zum Zugreifen auf ein Speicherbauele­ ment mit drei Doppelbank-RAMs, die eine erste und zweite Bank, eine drit­ te 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.
9. Verfahren nach Anspruch 8, 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 freige­ geben 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.
10. Verfahren nach Anspruch 8, 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 derjeni­ gen 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.
11. Verfahren nach Anspruch 8, 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.
12. Verfahren nach Anspruch 8, 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.
13. Reed-Solomon-Decoder vom Pipelinetyp mit
einer Mehrzahl von im Pipelinebetrieb arbeitenden Verarbeitungs­ einheiten, die eingegebene Reed-Solomon-Codeworte empfangen und Be­ rechnungen 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 6 zum tempo­ rären Speichern der eingegebenen Codeworte während der Ausführung der Berechnungen durch die mehreren, im Pipelinebetrieb arbeitenden Verarbeitungseinheiten.
14. Reed-Solomon-Decoder nach Anspruch 13, weiter dadurch gekenn­ zeichnet, dass die mehreren im Pipelinebetrieb arbeitenden Verarbei­ tungseinheiten 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 Rah­ menperiode a geschrieben wurde, wobei a eine ganze Zahl ist.
15. Reed-Solomon-Decoder nach Anspruch 13, weiter dadurch gekenn­ zeichnet, dass die mehreren, im Pipelinebetrieb arbeitenden Verarbei­ tungseinheiten aus vier Pipeline-Verarbeitungsstufen bestehen, wobei ein Versatz zwischen einer Bank, für die das Lesen freigegeben wird, und ei­ ner Bank, für die das Schreiben freigegeben wird, von drei Bänken vorge­ sehen 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.
16. Reed-Solomon-Decoder nach einem der Ansprüche 13 bis 15, weiter dadurch gekennzeichnet, dass
die mehreren, im Pipelinebetrieb arbeitenden Verarbeitungseinheiten in einem ersten Modus, in welchem eine Fehler- und Irrungskorrektur aus­ gefü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 ei­ ner Bank, für die das Schreiben freigegeben wird, von vier Bänken vorge­ sehen ist, so dass bei sechs vorhandenen Bänken aus einer jeweiligen Bank während einer Rahmenperiode a+4 gelesen wird, in die während ei­ ner 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 ei­ ner Bank, für die das Schreiben freigegeben wird, von drei Bänken vorge­ sehen ist, so dass aus einer jeweiligen Bank während einer Rahmenperio­ de a+3 gelesen wird, in die während einer Rahmenperiode a geschrieben wurde.
17. Reed-Solomon-Decoder nach einem der Ansprüche 13 bis 16, weiter dadurch gekennzeichnet, dass die mehreren Pipeline-Verarbeitungsein­ heiten und die Pufferschaltung in Abhängigkeit von derselben Taktsignalra­ te betreibbar sind.
18. Reed-Solomon-Decoder nach einem der Ansprüche 13 bis 17, 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 posi­ tive ganze Zahl ist.
19. Reed-Solomon-Decoder nach einem der Ansprüche 13 bis 18, 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.
20. Reed-Solomon-Decoder vom Blockpipelinetyp hoher Geschwindig­ keit mit
einer Mehrzahl von Blöcken zum Decodieren von Daten, die von au­ ßen empfangen werden, und Korrigieren von Fehlern, gekennzeichnet durch
einen Syndromgenerator (100) zum Erzeugen eines Syndroms aus den empfangenen Daten, ein Speicherbauelement (180) mit mehreren Speichern, von denen jeder Doppelbänke aufweist, wobei die empfangenen Daten in die eine Bank eines der Speicher geschrieben und in eine Bank eines der anderen Speicher geschriebene Daten gelesen werden,
einen Polynomkoeffizientengenerator (150) zum Erzeugen der Koef­ fizienten eines Fehlerlokalisierpolynoms und eines Fehlerbestimmungspo­ lynoms 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 Feh­ lerpositionssuch- und Fehlerwertbestimmungsstufe abgegebenen Fehler­ positionen und Fehlerwerte.
21. Reed-Solomon-Decoder nach Anspruch 20, weiter dadurch gekenn­ zeichnet, 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.
22. Reed-Solomon-Decoder nach Anspruch 20 oder 21, 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 aus­ zuwählen.
23. Reed-Solomon-Decoder nach einem der Ansprüche 20 bis 22, weiter gekennzeichnet durch:
einen Merkerzähler und Merkerpuffer zum Zählen von Irrungsmer­ kern, 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 Syn­ dromgenerator erzeugten Syndroms mit den gepufferten Irrungsmerkern und Zuführen des modifizierten Syndroms zum Polynomkoeffizientengene­ rator, der die Koeffizienten des Fehlerlokalisierpolynoms und Fehlerbe­ stimmungspolynoms unter Verwendung des Irrungslokalisierpolynoms und des modifizierten Syndroms berechnet.
24. Reed-Solomon-Decoder nach einem der Ansprüche 20 bis 23, weiter dadurch gekennzeichnet, dass ein Dateneingabetaktsignal, das zum Schreiben von Daten in das Speicherbauelement verwendet wird, und ein Systemtaktsignal, das zum Betrieb jedes Blocks dies Reed-Solomon- Decoders verwendet wird, gleich sind.
25. Speicherbauelement, das in einem Reed-Solomon-Decoder vom Blockpipelinetyp hoher Geschwindigkeit zur Korrektur von Fehlern durch Decodieren der von außen empfangenen Daten verwendbar ist und in das hierzu die empfangenen Daten geschrieben und aus ihm wieder ausgele­ sen werden, gekennzeichnet durch
eine Mehrzahl von Speichern mit Doppelbänken, wobei die Speicher durch einen Schreib/Lese-Befehl und ein Freigabesignal aktiviert werden, und
eine zirkulare Puffersteuereinheit (300) zum Abgeben des Schreib/Lese-Befehls und des Freigabesignals zwecks Auswählen eines entsprechenden der mehreren Speicher und Festlegen eines Schreib- Bankzeigers und eines Lese-Bankzeigers derart, dass Bänke zum Schrei­ ben und Lesen eines jeweiligen Datenrahmens aus verschiedenen Spei­ chern mit einem vorgegeben Versatz ausgewählt werden.
26. Speicherbauelement nach Anspruch 25, weiter dadurch gekenn­ zeichnet, dass die mehreren Speicher drei Speicher mit wahlfreiem Zugriff (RAMs) mit je zwei Bänken aufweisen, wobei jede Bank einen Datenrah­ men speichert.
27. Speicherbauelement nach Anspruch 25 oder 26, weiter dadurch ge­ kennzeichnet, 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 Irrungskorrek­ turen durchführt.
28. Speicherbauelement nach Anspruch 25 oder 26, weiter dadurch ge­ kennzeichnet, 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.
29. Verfahren zum Zugreifen auf mehrere Speicher mit Doppelbänken, wobei die Speicher für einen Reed-Solomon-Decoder vom Blockpipeline­ typ hoher Geschwindigkeit zum Decodieren der von außen empfangenen Daten und Korrigieren von Fehlern verwendet werden, gekennzeichnet durch folgende Schritte:
  • 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 Feh­ lerkorrekturmodus, 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 freigege­ benen 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 frei­ gegebenen Speicher und Lesen von in die ausgewählte Bank geschriebe­ nen Daten und
  • e) Wiederholen der Schritte b bis d, bis das Decodieren der Daten ab­ geschlossen ist, wobei die Schritte c und d gleichzeitig ausgeführt werden.
30. Verfahren nach Anspruch 29, weiter dadurch gekennzeichnet, dass der Schritt a folgende Teilschritte umfasst:
  • 1. Feststellen, ob sowohl Fehler- als auch Irrungskorrekturen durchzu­ führen sind,
  • 2. Festlegen des Schreib-Bankzeigers und des Lese-Bankzeigers mit einem Versatz von vier Bänken, wenn festgestellt wird, dass sowohl Fehler- als auch Irrungkorrekturen durchzuführen sind,
  • 3. Feststellen, ob nur eine Fehlerkorrektur durchzuführen ist, wenn festgestellt wird, dass nicht sowohl Fehler- als auch Irrungskorrekturen durchzuführen sind, und
  • 4. Festlegen des Schreib-Bankzeigers und des Lese-Bankzeigers mit einem Versatz von drei Bänken, wenn festgestellt wird, dass nur eine Feh­ lerkorrektur durchzuführen ist.
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 true DE10133595A1 (de) 2002-05-29
DE10133595B4 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 (94)

* 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
US7206992B2 (en) * 2003-03-04 2007-04-17 Broadcom Corporation Decoding a received BCH encoded signal
US7237183B2 (en) * 2003-03-04 2007-06-26 Broadcom Corporation Parallel decoding of a BCH encoded signal
KR100553691B1 (ko) * 2003-06-17 2006-02-24 윈텍 주식회사 영상처리장치 및 그 방법
US7840859B2 (en) * 2005-02-14 2010-11-23 Koninklijke Philips Electronics N.V. Block interleaving with memory table of reduced size
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
US8443242B2 (en) 2007-10-25 2013-05-14 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
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
US8335977B2 (en) 2007-12-05 2012-12-18 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
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
US20090157946A1 (en) * 2007-12-12 2009-06-18 Siamak Arya Memory having improved read capability
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
US8359516B2 (en) 2007-12-12 2013-01-22 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 김영운 상판 접이식 테이블
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8305812B2 (en) 2009-08-26 2012-11-06 Densbits Technologies 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
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
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
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
US9104610B2 (en) 2010-04-06 2015-08-11 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
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
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
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
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. 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
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
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
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
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
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 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
US11962327B2 (en) * 2022-01-13 2024-04-16 Micron Technology, Inc. Iterative decoding technique for correcting DRAM device failures

Family Cites Families (29)

* 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 画像メモリのアドレス分配方式
US4725987A (en) 1985-10-23 1988-02-16 Eastman Kodak Company Architecture for a fast frame store using dynamic RAMS
EP0224691B1 (de) * 1985-12-02 1993-02-10 International Business Machines Corporation 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
DE69424877T2 (de) 1993-11-04 2001-01-04 Cirrus Logic Inc Reed-solomon-dekoder
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
US6081920A (en) 1998-01-08 2000-06-27 Lsi Logic Corporation Method and apparatus for fast decoding of a Reed-Solomon code
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10133595A1 (de) Pufferschaltung, Speicherzugriffsverfahren, Speicherbauelement und Reed-Solomon-Decoder
DE2916710C2 (de)
DE2942825A1 (de) Verfahren und vorrichtung zur verarbeitung sequentiell uebertragender digitaler informationsworte
DE69929652T2 (de) Datenfehlerkorrektursystem
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2657826A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage
DE2834963A1 (de) Verfahren und einrichtung zur fehlerkorrektur von uebertragenen daten
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE1474040C3 (de) Einrichtung zur Bildung von Speicheradressen
DE2503107A1 (de) Korrekturcode fuer impulsfehler
DE2217935C3 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE4105860C2 (de) Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
DE69837784T2 (de) Verbessertes fünf-fehler-korrektursystem
DE19607710A1 (de) Verfahren und Vorrichtung zur Korrektur von Fehlern unter Verwendung mehrfacher Schätzungen
DE10010238C2 (de) Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer
EP0439649B1 (de) Einrichtung zur Fehlermustergenerierung bei Soft-Decision-Decodierung von Blockcodes
DE102013016694B4 (de) Codieren und Decodieren redundanter Bits zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE3104762C2 (de)
DE102017107431B4 (de) Verfahren und Vorrichtungen zur Fehlerkorrekturcodierung beruhend auf hochratigen verallgemeinerten verketteten Codes
DE102005018248B4 (de) Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
EP1109320B1 (de) Einrichtung zur Datenumsetzung für einen Reed-Solomon Dekodierer
DE102009032640B4 (de) Datenkorrektur-Vorrichtung, Datenkorrektur-Verfahren und maschinenlesbares Medium
DE3543976C2 (de)

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