JP2006004560A - 半導体記憶装置及びその誤り訂正方法 - Google Patents

半導体記憶装置及びその誤り訂正方法 Download PDF

Info

Publication number
JP2006004560A
JP2006004560A JP2004181905A JP2004181905A JP2006004560A JP 2006004560 A JP2006004560 A JP 2006004560A JP 2004181905 A JP2004181905 A JP 2004181905A JP 2004181905 A JP2004181905 A JP 2004181905A JP 2006004560 A JP2006004560 A JP 2006004560A
Authority
JP
Japan
Prior art keywords
code
bit
error correction
bit error
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004181905A
Other languages
English (en)
Inventor
Shigeo Takeuchi
茂雄 武内
Yutaka Ito
伊藤  豊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Memory Japan Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi ULSI Systems Co Ltd
Elpida Memory Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi ULSI Systems Co Ltd, Elpida Memory Inc filed Critical Hitachi ULSI Systems Co Ltd
Priority to JP2004181905A priority Critical patent/JP2006004560A/ja
Priority to TW094117516A priority patent/TWI271741B/zh
Priority to US11/152,386 priority patent/US7373584B2/en
Priority to CN200510078607.2A priority patent/CN1716443B/zh
Publication of JP2006004560A publication Critical patent/JP2006004560A/ja
Priority to US12/081,940 priority patent/US8140938B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Abstract

【課題】 ビット誤りが増加する場合の許容範囲を拡大し、リフレッシュ周期を一層長くして更なる低消費電力化を図ることが可能な半導体記憶装置等を提供する。
【解決手段】 データ領域と検査コード領域を有するメモリアレイと、データ保持状態において所定周期のリフレッシュ動作を制御するリフレッシュ制御手段と、データの所定のビット列を処理単位B1、B2として符号化演算を行って検査コードを生成するとともに、検査コードを用いた復号化演算を行ってデータの誤り検出訂正を行う演算手段と、メモリアレイの互いに直交するX方向とY方向に対して生成された第1コードと第2コードを検査コード領域に書き込むように制御するエンコード制御手段と、第1コードに基づく第1のビット誤り訂正と第2コードに基づく第2のビット誤り訂正とを演算手段に交互に実行させ、それぞれを少なくとも2回以上実行させるように制御するデコード制御手段とを備えている。
【選択図】 図7

Description

本発明は、DRAM(Dynamic Random Access Memory)等の半導体記憶装置に関し、特に、記憶領域の行方向と列方向に対し、それぞれ検査コードを生成して記憶し、検査コードを用いて誤り検出訂正を行うように構成された半導体記憶装置及びその誤り訂正方法の技術分野に関するものである。
従来から、DRAMのデータ保持状態における一層の低消費電力化を実現するため、通常動作時よりも長い周期でリフレッシュ動作を制御することが求められている。そのため、DRAMにECC回路等による誤り訂正機能を搭載し、リフレッシュ動作の長周期化によって増加するビット誤りを訂正可能な構成が提案されている。例えば、この種の構成として、特許文献1に開示されている半導体集積回路装置が挙げられる。
特許文献1に開示された半導体集積回路装置は、誤り検出訂正用の検査ビットを保持する手段と、複数のデータから検査ビットを生成する手段と、検査ビットを用いて誤りビットを訂正する手段を備え、データ保持状態に移行する際に検査ビットを生成して記憶する構成を備えている。このような構成により、リフレッシュ動作の長周期化が可能となり、データ保持状態における低消費電力化を図ることができる。
特開2002−56671号公報
しかしながら、上記従来の構成によれば、ビット誤りが許容範囲を超えて増加した場合、誤り訂正が困難な誤りパターンとなる場合も少なくない。例えば、DRAMに採用される一般的な誤り訂正回路によれば、行方向又は列方向のビット列中に1ビットのみの誤りが発生した場合は訂正できるが、行方向又は列方向に2ビット以上の誤りが発生する場合は訂正できなくなる。一方、誤り訂正回路としてビット列中に2ビット以上の誤りがある場合に訂正可能な構成を採用するのは、回路規模が増大してコスト上昇を招く。よって、上記従来の構成では、誤り発生率を訂正可能な範囲に抑えるべく、リフレッシュ周期を制限する必要があり、低消費電力化を妨げることが問題であった。
そこで、本発明はこれらの問題を解決するためになされたものであり、一般的な誤り訂正回路を組み込んだDRAMにおいて、ビット誤りが増加する場合の許容範囲を拡大し、リフレッシュ周期の一層の長期化を実現して、更なる低消費電力化を図ることが可能な半導体記憶装置等を提供することを目的とする。
上記課題を解決するために、本発明の半導体記憶装置は、データを記憶するデータ領域と前記データの誤り検出訂正用の検査コードを記憶する検査コード領域を有するメモリアレイと、データ保持状態において前記メモリアレイに対する所定周期のリフレッシュ動作を制御するリフレッシュ制御手段と、前記データ領域の所定のビット列を処理単位とする符号化演算を行って前記検査コードを生成するとともに、前記検査コードを用いた復号化演算を行って前記データに対する誤り検出訂正を行う演算手段と、前記データ保持状態に移行する際のエンコード処理として、前記メモリアレイの互いに直交する第1の方向と第2の方向に対し、前記第1の方向のビット列に基づき前記演算手段により生成された第1コードと、前記第2の方向のビット列に基づき前記演算手段により生成された第2コードをそれぞれ区別可能に前記検査コード領域に書き込むように制御するエンコード制御手段と、前記データ保持状態を終了する際のデコード処理として、前記第1の方向に対する前記第1コードに基づく第1のビット誤り訂正と、前記第2の方向に対する前記第2コードに基づく第2のビット誤り訂正とを、前記演算手段に交互に実行させ、少なくとも前記第1のビット誤り訂正と前記第2のビット誤り訂正をそれぞれ2回以上実行させるように制御するデコード制御手段とを備えることを特徴とする。
このように構成された本発明によれば、半導体記憶装置のリフレッシュ動作を伴うデータ保持状態に移行するときにエンコード処理が実行されるとともに、データ保持状態を終了するときにデコード処理が実行される。そして、エンコード処理では、互いに方向が直交するビット列を符号化演算の単位とし、デコード処理では、直交する2方向について交互にビット誤り訂正を行うようにしたので、1ビットのみ訂正可能な符号化アルゴリズムであっても、演算回数を増やすことにより次第にビット誤りが訂正されていく。よって、複雑な符号化アルゴリズムを用いることなくビット誤りを減らすことにより、リフレッシュ周期を長くすることができ、半導体記憶装置の消費電力の低減を図ることができる。
本発明の半導体記憶装置において、前記演算手段が、前記復号化演算の対象となるビット列中に1ビット以上の誤りが発生したことを示す第1の信号と、前記ビット列中に1ビットのみのビット誤りが発生したビット位置を示す第2の信号をそれぞれ出力するようにしてもよい。
本発明の半導体記憶装置において、前記デコード制御手段が、前記第2のビット誤り訂正の際、前記演算手段から前記第1の信号が出力されるとともに前記第2の信号が出力されない場合。復号化対象のビット列中に訂正不能なビット誤りが存在すると判定するようにしてもよい。
本発明の半導体記憶装置において、前記デコード制御手段が、前記復号化対象のビット列中に訂正不能なビット誤りが存在すると判定したとき、当該ビット列の位置情報を保持し、後続の前記第2のビット誤り訂正時に前記保持される位置情報のビット列に対してのみ前記第2のビット誤り訂正を行うように制御してもよい。
本発明の半導体記憶装置において、前記デコード制御手段が、前記第1のビット誤り訂正及び前記第2のビット誤り訂正について、予め設定された繰り返し回数をそれぞれ実行するように制御してもよい。
本発明の半導体記憶装置において、前記第1の方向を前記メモリアレイの行方向とし、前記第2の方向を前記メモリアレイの列方向としてもよい。
本発明の半導体記憶装置において、通常時の動作を制御する通常動作モードと、前記データ保持状態における消費電力を低減するように動作を制御する低消費電力モードを切り替え制御する動作制御手段を更に備え、前記リフレッシュ制御手段が、前記低消費電力モードにおいて長周期のリフレッシュ動作を制御するようにしてもよい。
また、本発明の半導体記憶装置の誤り訂正方法は、データを記憶するデータ領域と前記データの誤り検出訂正用の検査コードを記憶する検査コード領域とからなる記憶領域を有する半導体記憶装置の誤り訂正方法であって、前記データの所定のビット列を処理単位として符号化演算を行って前記検査コードを生成するとともに、前記検査コードを用いた復号化演算を行って前記データの誤り検出訂正を行う演算手段を制御し、前記記憶領域の互いに直交する第1の方向と第2の方向に対し、前記第1の方向のビット列に基づき前記演算手段により生成された第1コードと、前記第2の方向のビット列に基づき前記演算手段により生成された第2コードをそれぞれ区別可能に前記検査コード領域に書き込むエンコード処理と、前記第1の方向に対する前記第1コードに基づく第1のビット誤り訂正と、前記第2の方向に対する前記第2コードに基づく第2のビット誤り訂正とを、前記演算手段に交互に実行させ、少なくとも前記第1のビット誤り訂正と前記第2のビット誤り訂正をそれぞれ2回以上実行させるデコード処理とを含むことを特徴とする。
本発明の半導体装置の誤り訂正方法において、前記復号化対象のビット列中に訂正不能なビット誤りが存在する場合、当該ビット列の位置情報を保持し、後続の前記第2のビット誤り訂正時に前記保持される位置情報のビット列に対してのみ前記第2のビット誤り訂正を行うようにしてもよい。
本発明の半導体装置の誤り訂正方法において、前記第1のビット誤り訂正及び前記第2のビット誤り訂正について、予め設定された繰り返し回数をそれぞれ実行してもよい。
本発明によれば、エンコード処理時にメモリアレイの2方向について第1コード、第2コードを生成し、デコード処理時に第1コードと第2コードを用いたビット誤り訂正を交互に行うようにしたので、一般的な誤り訂正機能を用いて処理手順の工夫により、ビット誤りが増加する場合の許容範囲を広げ、リフレッシュ周期の一層の長期化を実現して半導体記憶装置の低消費電力化を図ることが可能となる。
以下、本発明の実施形態について図面を参照しながら説明する。本実施形態においては、低消費電力化を実現するために、誤り訂正機能を担う回路を内蔵し、長周期のリフレッシュ動作を制御するように構成されたダイナミック形RAM(DRAM)に対して本発明を適用する場合を説明する。
図1は、本実施形態に係るDRAMの全体構成を示すブロック図である。ここでは、4バンク構成で記憶容量64MビットのDRAMを例にとって説明する。図1に示すDRAMは、4つのバンク0〜バンク3に対応する4つのメモリアレイ10と、各々のメモリアレイ10の周辺に設けられた行デコーダ11、ワードドライバ12、センスアンプ13、I/Oゲート14、列デコーダ15、コーデック16とを備え、さらに制御回路20と、I/Oバッファ21を備えて構成されている。
以上の構成において、各々のメモリアレイ10は、行方向と列方向にマトリクス配置されデータを記憶するデータ領域と、このデータ領域に対応する検査ビット列(検査コード)を記憶する検査コード領域を備えている。なお、検査コードに基づく誤り訂正機能については後述する。なお、4つのバンク0〜3に対応する4つのメモリアレイ10は、いずれも同一の構成を備え、その周辺の行デコーダ11、ワードドライバ12、センスアンプ13、I/Oゲート14、列デコーダ15、コーデック16についても、4つのバンク0〜3について同一の構成となっている。
メモリアレイ10に対しては、動作を指令するメモリ制御コマンドに基づき、アクセスすべき所望の行アドレス及び列アドレスが指定される。行デコーダ11は、指定される行アドレスに対応する1本のワード線(不図示)を選択する。そして、ワードドライバ11は、行デコーダ11により選択されたワード線を選択レベルに駆動する。
一方、センスアンプ13は、選択レベルに駆動されるワード線とそれに接続するメモリアレイ10からの読み出しデータに対応して相補データ線に生じる電位差を増幅し、I/Oゲート14に出力する。列デコーダ15は、上述のように指定された列アドレスに対応する列を選択し、I/Oゲート14のデータのうち選択された行のデータがI/Oバッファ21に送られる。I/Oバッファ21は、メモリアレイ10に対するアクセス時に、外部とI/Oゲート14の間で16ビットのデータD<0:15>の入力又は出力を行うバッファとして機能する。
ここで、図2に示すように、4つのバンク0〜3に対応するメモリアレイ10は、それぞれ16個のマット100により構成されている。すなわち、図2の奥行き方向に重ねて示すように、16個のマット100(0)〜100(15)からなる。そして、所定のメモリアレイ10にアクセスする際、16個のマット100(0)〜100(15)に対して同時に読み出し又は書き込みが行われる。各々のマット100は、1024×1024ビット構成のデータ領域と、32×1024ビット構成の検査コード領域とからなる。この検査コード領域は、誤り訂正符号としての検査コードが記憶され、データ領域とは異なるアドレス空間として認識される。
なお、検査コード領域に記憶される検査コードは、コーデック16によって生成及びそれを用いた誤り訂正が行われるが、具体的な動作については後述する。
図2の構成において、4つのバンク0〜3はいずれも共通の構成を備えるため、データ領域に関しては各バンクについて1M×16=16Mビットの記憶容量を持ち、DRAM全体では16Mビット×4=64Mビットの記憶容量を持つ。なお、図2の4つのバンク0〜3は、2ビットのバンク選択信号に基づき、いずれかを選択可能に構成されている。
次に図1に戻って、制御回路20は、本実施形態に係るDRAMの各種動作を制御し、図1の各構成要素における内部タイミングを制御する。この制御回路20は、DRAMに対するメモリ制御コマンドを判別するコマンド制御部31と、DRAMの動作状態の切り替え制御を行う状態制御部32と、メモリアレイ10に対して上述の検査コードを用いた誤り訂正機能を制御するECC(Error Correcting Code)制御部33が含まれる。
制御回路20に対しては、外部からの制御信号として、行アドレスストローブ信号(/RAS)、列アドレスストローブ信号(/CAS)、ライトイネーブル信号(/WE)、クロックイネーブル信号CKE、クロック信号CLKが供給される(なお、記号/は、ローレベルの時に信号がアクティブとなることを意味する)。また、制御回路20に対しては、10ビットのアドレス信号A<0:9>及び2ビットのバンク選択信号B<0:1>が入力される。
制御回路20のコマンド制御部31は、外部から入力される制御信号の組合せパターンにより定められたメモリ制御コマンドを判別し、必要な制御信号を出力する。図3は、本実施形態における主要なメモリ制御コマンドの種類を示す図である。なお、図3に示す制御コマンドのうち、Entryコマンド及びExitコマンドに関しては、後述の状態制御部32により判別される。
ACTコマンドは、バンク選択信号によって指定される所定のバンクを選択するとともに、アドレス信号に基づく所定の行アドレスを選択してアクティブ状態にする。RDコマンドは、選択された行アドレスにおいてアドレス信号に基づく所定の列アドレスを選択し、メモリアレイ10に記憶されたデータを読み出す。WTコマンドは、選択された行アドレスにおいてアドレス信号に基づく所定の列アドレスを選択し、メモリセル10に対しデータを書き込む。REFコマンドは、メモリセル10のキャパシタに蓄積された電荷を保持するためのリフレッシュ動作を実行する。PREコマンドは、選択された行アドレスのデータを読み出した後に選択されたバンクをプリチャージする。
次に、制御回路20の状態制御部32は、本実施形態において設けられた2つのモードの切り替えに先立って、上述のEntryコマンドとExitコマンドを図3の制御信号の組み合せパターンに基づき判別する。すなわち、本実施形態では、通常時の動作を制御する通常動作モードと、DRAMのデータ保持状態における消費電力を低減するように動作を制御する低消費電力モードの2つのモードが設けられている。図3に示すように、Entryコマンドは、通常動作モードで動作しているDRAMの動作状態を低消費電力モードに遷移させるとともに、Exitコマンドは、低消費電力モードで動作しているDRAMの動作状態を通常動作モードに遷移させる。この低消費電力モードは、本実施形態に係るDRAMに対し、誤り訂正を行いつつ長周期のリフレッシュ動作を行って低消費電力を実現するものである。
ここで、図4及び図5を用いて上述のDRAMにおける動作状態について説明する。図4は、DRAMの複数の動作状態の関係と機能を説明する図であり、図5は、図4の状態遷移図に対応する概略のタイミングフロー図である。図4において、DRAMの動作状態は通常動作モードと低消費電力モードの2つに分かれ、低消費電力モードには、エンコード処理、パワーオフ状態、バーストリフレッシュ処理、デコード処理の4つの状態(処理)が含まれる。
通常動作モード時に上述のEntryコマンドが入力されると、低消費電力モードにおけるエンコード処理に遷移する。このとき、図5に示すように、通常動作モードにおいて、図3のEntryコマンドの組合せパターンに基づき制御信号が変化し、そのタイミングで低消費電力モードに切り替わる。図5の例では、最初にエンコード処理(Enc)を行った後、パワーオフ状態(Poff)とバーストリフレッシュ(Bref)を交互に繰り返し、最後にデコード処理(Dec)を行うことがわかる。また、詳細は省くが、バーストリフレッシュ(Bref)及びデコード処理(Dec)はパワーオンした後に行う。
エンコード処理は、メモリアレイ10における各行のビット列に基づく行方向の検査コード(第1コード)と各列のビット列に基づく列方向の検査コード(第2コード)を生成する符号化演算を実行し、検査コード領域に書き込む。エンコード処理による検査コードの生成が終了すると、パワーオフ状態に遷移し、DRAMの各部に供給される電源のうち不要な電源を全て停止する。そして、所定時間経過後に、バーストリフレッシュ処理に遷移する。
このバーストリフレッシュ処理においては、メモリセル10の全てのデータ領域及び検査コード領域に対する連続的なリフレッシュ動作を行う。リフレッシュ動作に際しては、リフレッシュカウンタ(不図示)がメモリセル10の行アドレスを発生して順次カウントアップする。
バーストリフレッシュ処理に続いて、再びパワーオフ状態に遷移し、所定時間経過後に再びバーストリフレッシュ処理に遷移する。そして、これ以降はバーストリフレッシュ処理とパワーオフ状態を交互に繰り返す。この場合、低消費電力モードにおいては、隣接するバーストリフレッシュ処理の間隔(周期)が予め設定され、例えば1秒程度と長周期に設定されている。
一方、パワーオフ状態又はバーストリフレッシュ処理に際し、上述のExitコマンドが入力されるとデコード処理に遷移する。このとき、図3のExitコマンドの組合せパターンに基づき制御信号が変化し、そのタイミングでデコード処理が開始される。このデコード処理は、エンコード処理により生成された検査コードに基づき、メモリアレイ10のデータと検査コードを用いた復号化演算を実行し、メモリセル10の行方向又は列方向に生じた1ビットのエラーを訂正する。
デコード処理が終了すると、通常動作モードに自動遷移し、再びEntryコマンドが入力されるまで通常動作モードを継続する。なお、低消費電力モードを継続する時間は、DRAMの制御に応じた任意の時間を設定することができる。低消費電力モードにおいては、相対的にパワーオフ状態の時間がバーストリフレッシュ処理に要する時間より長いため、通常動作モードに比べて大幅に消費電力を低減することができる。
次に図6は、制御回路20のECC制御部33の構成を示すブロック図である。図6に示すように、制御回路20には、低消費電力モードにおける動作を全体的に制御する低消費電力モード制御部41と、エンコード処理を制御するエンコード制御部42と、デコード処理を制御するデコード制御部43と、バーストリフレッシュ処理を制御するBREF制御部44と、バーストリフレッシュ処理の周期を制御するBREF周期制御部45と、外部に出力すべき信号を選択的に切り替えるマルチプレクサ46、47が含まれる。
低消費電力モード制御部41には、上記の状態制御部32からEntryコマンドとExitコマンドの判別信号が入力され、これらの各コマンドに従って制御を行う。低消費電力モード制御部41は、エンコード制御部42、デコード制御部43、BREF制御部43に対し、その制御開始タイミングに際し、それぞれ信号enc_start、dec_start、bref_startを供給するとともに、制御終了タイミングに際し、それぞれから出力される信号enc_end、dec_end、bref_endを受け取る。また、低消費電力モードを終了するときに、信号end_of_exitを外部に出力する。
エンコード制御部42は、エンコード処理を実行する際に各メモリセル10に付随するコーデック16による符号化演算を制御する。また、デコード制御部43は、デコード処理を実行する際に上述のコーデック16による復号化演算を制御する。一方、BREF制御部44は、バーストリフレッシュ処理を制御する際に各メモリセル10の動作を制御する。このとき、バーストリフレッシュ処理では、予め設定された周期を計時するタイマとしてのBREF周期制御部45により制御される。
エンコード制御部42、デコード制御部43、BREF制御部43からそれぞれ出力される制御信号は、2つのマルチプレクサ46、47に入力される。マルチプレクサ46には、メモリセル10の動作を制御する信号が入力され、それらを選択的に切り替えてメモリ制御信号として出力する。マルチプレクサ47には、コーデック16の動作を制御する信号が入力され、それらを選択的に切り替えてコーデック制御信号として出力する。
次に図7は、エンコード処理において生成される検査コードの構成を示す図である。図7においては、メモリアレイ10を構成する一のマット100を示している。マット100のデータ領域では、(X、Y)でビット位置を特定し、X、Yがいずれも0〜1023の範囲で変化する1024×1024ビットのマトリクス状となっている。また、マット100の検査コードは、X方向の1024ビットを処理単位として分割する第1コード体系と、Y方向の1024ビットを処理単位として分割する第2コード体系に分けて示している。
第1コード体系に基づき生成された検査コード(第1コード)は、第1コード領域に書き込まれる。一方、第2コード体系に基づき生成された検査コード(第2コード)は、第2コード領域に書き込まれる。これら第1コード領域と第2コード領域は、図7に示すように、いずれも一のマット100に対し16×1024ビットの記憶容量を有し、その両者を併せて32×1024ビットの検査コード領域を構成する。ただし、上記第1コード及び第2コードは両者を区別可能に保持できる限り、検査コード領域における配置は自由である。
なお、データ領域はビット位置を(X、Y)で表しているが、それと区別するため、第1コード領域はビット位置を(X1、Y1)で表し、第2コード領域はビット位置を(X2、Y2)で表している。
図7に示すように、マット100のデータ領域において、X方向に沿って第1ボックスB1を定義している。この第1ボックスB1は、第1コード体系によって分割される1024ビットのビット列からなり、マット100のデータ領域に対するX方向のエンコード処理の単位となる。図7においては、Y=0の位置における1つの第1ボックスB1を示しているが、実際にはエンコード処理に従って、Y=0からY=1023までの1024個の第1ボックスB1が順次設定される。そして、Y=nの位置の第1ボックスB1に対して生成された検査コードは、第1コード領域におけるY1=nの位置の16ビット(X1=0〜15)に書き込まれることになる。
また、図7に示すように、マット100のデータ領域に対し、Y方向に沿って第2ボックスB2を定義している。この第2ボックスB2は、第2コード体系によって分割された1024ビットからなり、マット100のデータ領域に対するY方向のエンコード処理の単位となる。図7においては、X=0の位置における1つの第2ボックスB2を示しているが、実際にはエンコード処理に従って、X=0からX=1023までの1024個の第2ボックスB2が順次設定される。この場合、X=nの位置の第2ボックスB2に対して生成された検査コードは、第2コード領域におけるX2=nの位置の16ビット(Y2=0〜15)に書き込まれることになる。
次に、本発明の演算手段として機能するコーデック16(図1)の構成及び動作について説明する。図8は、コーデック16の回路構成の一例を示す図である。図8においては、巡回ハミング符号化に基づき、生成多項式G(x)=X16+X12+X+1
を演算するコーデック16の例を示している。コーデック16には、16段のシフトレジスタ及び周辺の論理回路が含まれる。16段のシフトレジスタは、順進・逆進機能付きであり、順進用クロックfwd_clkが入力されると図8の右から左に(順方向)データを順次転送し、逆進用クロックbwd_clkが入力されると図8の左から右に(逆方向)にデータを順次転送する。
ここで、図8の構成を備えるコーデック16における演算処理の具体例について、図9を用いて説明する。図9(a)には、コーデック16のエンコード処理における検査コード生成の具体例を示している。検査コードを生成する際、1024ビットのデータが1ビットずつシフトレジスタに読み込まれる。シフトレジスタは順方向にシフトされ、全てのビットの読み込みが終了したときに16段のシフトレジスタには検査コードが生成される。図9(a)の例では、先頭が1でそれ以降が全て0のデータを入力する場合の検査コードが示されている。なお、このように生成された検査コードが上述のメモリアレイ10の検査コード領域において、第1コード体系又は第2コード体系に従って所定位置に書き込まれる。
次に、図9(b)には、コーデック16のデコード処理においてビット誤りがない場合の具体例を示している。デコード処理に際しては、1024ビット及び検査コードの16ビットの計1040ビットが1ビットずつシフトレジスタに読み込まれる。シフトレジスタは順方向にシフトされ、読み込みが終了したときに16段のシフトレジスタが全てゼロになる。このとき、コーデック16から出力されるerror信号が0となる。
一方、図9(c)には、コーデック16のデコード処理においてビット誤りが生じた場合の具体例を示している。図9(b)の場合と同様、データ及び検査コードの計1040ビットが1ビットずつシフトレジスタに読み込まれる。この場合、読み込みが終了したときに16段のシフトレジスタはゼロだけでなく、1となるビットが含まれる。このとき、コーデック16から出力されるerror信号は1となる。そして、1ビットのビット誤りが生じた場合、コーデック16のシフトレジストを逆方向にシフトさせることにより、誤りがあるビット位置にてlocation信号が1に変化する。
図9(c)の右下にコーデック16を逆進させたときの出力パターンの変化の一例を示している。ビット位置1023に対応するシフトレジスタの出力において1となるビットが生じているので、ビット1023に誤りがあることを判別することができる。ただし、1024ビットのうち1ビットの誤りがある場合は検出できるが、2ビット以上の誤りがあるときは、シフトレジスタを逆方向にシフトさせても、誤りビットの位置を検出することはできない。
次に、コーデック16の動作制御に用いるコーデック制御コマンドについて説明する。図10は、コーデック制御コマンドの種類を示す図である。これらのコーデック制御コマンドは、コーデック16に入力される制御信号の組合せパターンによって定められ、主にECC制御部33のエンコード制御部42及びデコード制御部43からコーデック16に対して出力される。
図10において、GEN_CODEコマンドは、データ領域から読み出されたビットを符号化演算の対象としてコーデック16に入力するコマンドである。WT_CODEコマンドは、コーデック16にて生成された検査コードを1ビットずつメモリセル10に転送するコマンドである。REVERSEコマンドは、逆進用クロックbwd_clkを1とし、コーデック16のシフトレジスタの逆方向へのシフトを開始させるコマンドである。CORRECTコマンドは、コーデック16において誤りを生じたビットを反転し、誤りを訂正して出力するコマンドである。
以下、本実施形態のDRAMにおけるエンコード処理及びデコード処理の具体的な制御手順について説明する。まず、図11〜図13を参照して、エンコード処理の制御手順について説明する。このエンコード処理は、主にエンコード制御部42(図6)によって制御される処理である。図11及び図12は、エンコード処理の制御フローを示す図であり、図13は、図11及び図12の制御フローに対応するタイミングチャートを示す図である。
図11は、エンコード処理のうち、第1コード体系に基づく処理を示す制御フローである。図11に示す制御が開始されると、最初にデータ領域の列アドレスYと第1コード領域の列アドレスY1にそれぞれ0をセットする(ステップS11)。続いて、データ領域の行アドレスXに0をセットする(ステップS12)。なお、本実施形態では1024×1024ビットのマット100を想定しているので、後述するようにXとYを0〜1023の範囲でカウントアップすることにより、データ領域の全てのビット位置にアクセスすることができる。
次に、メモリ制御コマンドACT(X)を実行し(ステップS13)、行アドレスXを選択してアクティブ状態にする。続いて、メモリ制御コマンドRD(Y)を実行し(ステップS14)、データ領域の位置(X、Y)のビットを読み出す。一方、RD(Y)の実行とともに、コーデック制御コマンドGEN_CODEを実行する(ステップS15)。これにより、データ領域の位置(X、Y)のビットがコーデック16に演算対象として入力されることになる。
そして、Xをインクリメントし(ステップS16)、Xの値が1024に達するまでの間(ステップS17)、ステップS13〜S17の制御を繰り返す。その結果、第1ボックスB1に含まれる1024ビットを用いた符号化演算が完了する。この時点で、コーデック16のシフトレジスタには、第1ボックスB1に対応する16ビットの検査コードが生成された状態になっている。
次に、第1コード領域の行アドレスX1に0をセットする(ステップS18)。そして、メモリ制御コマンドACT(X1)を実行し(ステップS19)、行アドレスX1を選択してアクティブ状態にする。続いて、コーデック制御コマンドWT_CODEを実行し(ステップS20)、コーデック16にて生成された所定の検査ビットをメモリセル10に転送する。そして、制御コマンドWT(Y1)を実行し(ステップS21)、第1コード領域の位置(X1、Y1)に第1コード体系に基づく検査ビットを書き込む。
そして、X1をインクリメントし(ステップS22)、Xの値が16に達するまでの間(ステップS23)、ステップS19〜S23の制御を繰り返す。その結果、第1コード体系に基づく16ビットの検査コードの第1コード領域への書き込みが完了する。
次いで、データ領域及び第1コード領域における列アドレスを更新すべくY及びY1をインクリメントする(ステップS24)。そして、Yの値が1024に達するまでの間(ステップS25)、ステップS12〜S25の制御を繰り返す。なお、ステップS25は、Y1に対する判断であっても同様になる。これにより、Yの値が0〜1023の範囲で1024行の第1ボックスB1に対し、同様のエンコード処理が繰り返されることになる。この時点で、データ領域に対する全てのデータについて第1コード体系に基づく検査コードの生成・書き込みが完了する。
ここで、図13(a)には、データ領域においてY=N、Y1=Nとなる任意の一行に関し、図11の制御フローに対応するタイミングチャートを示している。図13(a)において、第1ボックスB1の読み出し動作は、上述のステップS12〜S17に対応し、データ領域の行アドレスXを順次カウントアップしつつ上述の各コマンドが1024回繰り返し実行される。また、検査コードの書き込み動作は、上述のステップS18〜S23に対応し、第1コード領域の行アドレスX1を順次カウントアップしつつ上述の各コマンドが16回繰り返し実行される。
次に図12は、エンコード処理のうち、第2コード体系に基づく処理を示す制御フローである。本実施形態のエンコード処理においては、第1コード体系に基づく処理に続いて、第2コード体系に基づく処理に移行する。図12に示す制御が開始されると、最初にデータ領域の行アドレスXと第2コード領域の行アドレスX2にそれぞれ0をセットする(ステップS31)。
次に、メモリ制御コマンドACT(X)を実行し(ステップS32)、行アドレスXを選択してアクティブ状態にする。続いて、データ領域の列アドレスYに0をセットする(ステップS33)。このように、第2コード体系の制御フローでは、列アドレスYのセットに先立ってACT(X)を実行する点で、図11の第1コード体系の制御フローとは手順が異なっている。
この状態で、メモリ制御コマンドRD(Y)を実行し(ステップS34)、データ領域の位置(X、Y)のビットを読み出す。一方、RD(Y)の実行とともにコーデック制御コマンドGEN_CODEを実行し(ステップS35)、データ領域の位置(X、Y)のビットをコーデック16に演算対象として入力する。
そして、Yをインクリメントし(ステップS36)、Yの値が1024に達するまでの間(ステップS37)、ステップS34〜S37の制御を繰り返す。その結果、第2ボックスB2に含まれる1024ビットを用いた符号化演算が完了する。この時点で、コーデック16のシフトレジスタには、第2ボックスB2に対応する16ビットの検査コードが生成された状態になっている。
次に、メモリ制御コマンドACT(X2)を実行し(ステップS38)、行アドレスX2を選択してアクティブ状態にする。続いて、第2コード領域の列アドレスY2に0をセットする(ステップS39)。そして、メモリ制御コマンドWT_CODEを実行し(ステップS40)、さらにメモリ制御コマンドWT(Y2)を実行する(ステップS41)。これにより、コーデック16にて生成された所定の検査ビットがメモリセル10に転送された後に、第2コード領域の位置(X2、Y2)に、第2コード体系に基づく検査ビットが書き込まれることになる。
そして、Y2をインクリメントし(ステップS42)、Y2の値が16に達するまでの間(ステップS43)、ステップS40〜S43の制御を繰り返す。その結果、第2コード体系に基づく16ビットの検査コードの第2コード領域への書き込みが完了する。
次いで、データ領域及び第2コード領域における行アドレスを更新すべくX及びX2をインクリメントする(ステップS44)。そして、Xの値が1024に達するまでの間(ステップS45)、ステップS32〜S45の制御を繰り返す。なお、ステップS45は、X2に対する判断であっても同様になる。これにより、Xの値が0〜1023の範囲で1024列の第2ボックスB2に対し、同様のエンコード処理が繰り返されることになる。この時点で、データ領域に対する全てのデータについて第2コード体系に基づく検査コードの生成・書き込みが完了する。
ここで、図13(b)には、データ領域においてX=N、X2=Nとなる任意の一列に関し、図12の制御フローに対応するタイミングチャートを示している。図13(b)において、第2ボックスB2の読み出し動作は、上述のステップS32〜S37に対応し、データ領域の列アドレスYを順次カウントアップしつつ上述の各コマンドが1024回繰り返し実行される。また、検査コードの書き込み動作は、上述のステップS38〜S43に対応し、第2コード領域の列アドレスY2を順次カウントアップしつつ上述の各コマンドが16回繰り返し実行される。
次に、図14〜図22を参照して、本実施形態に係るデコード処理の制御手順について説明する。図14は、デコード処理の概略の制御フローを示す図であり、図15〜図19は、図14に対応する詳細な制御フローを示す図である。また、図20及び図21は、図15及び図17各制御フローに対応するタイミングチャートを示す図である。また、図22は、デコード処理を主に制御するデコード制御部43の構成を示すブロック図である。
図14の概略の制御フローに示されるように、本実施形態に係るデコード処理は、制御内容に応じた複数のデコードシーケンスSQ1〜SQ7から構成されている。ビット誤り訂正を行うデコードシーケンスSQ1は、第1コード体系に基づく第1ボックスB1のビット誤り訂正を制御するデコードシーケンスSQ1Aと、第2コード体系に基づく第2ボックスB2のビット誤り訂正を制御するデコードシーケンスSQ1Bが含まれる。
図14の制御フローの全体は、ECC制御回路33に含まれるデコード制御部43により制御される。図22に示すように、デコード制御部43は、デコードシーケンスSQ1〜SQ7の全体を制御するボックス制御部51と、処理対象である1つの第1ボックスB1又は第2ボックスB2(以下、対象ボックスと呼ぶ)のデコード処理時にメモリセル10とコーデック16を制御するメモリ・コーデック制御部52と、対象ボックスのデコード処理のステージ(実行サイクル)をカウントするステージカウンタ53と、後述のデコードシーケンスSQ3における繰り返し回数をカウントする繰り返しカウンタ54と、処理すべき対象ボックスの番号をカウントするボックスアドレスカウンタ55と、訂正不能なビット誤りが存在する第2ボックスB2の番号を保持するボックスアドレスレジスタ56と、処理すべき対象ボックスの番号を選択するセレクタ57を含んで構成されている。
図15は、デコードシーケンスSQ1Aの詳細な制御フローを示す図である。図15に示す制御が開始されると、最初にデータ領域の列アドレスYと第1コード領域の列アドレスY1にそれぞれ0をセットする(ステップS101)。続いて、データ領域の行アドレスXに0をセットする(ステップS102)。
次に、メモリ制御コマンドACT(X)を実行し(ステップS103)、続いてメモリ制御コマンドRD(Y)を実行する(ステップS104)。これにより、データ領域の位置(X、Y)のビットが読み出される。一方、ビットの読み出しとともにコーデック制御コマンドGEN_CODEを実行し(ステップS105)、読み出したビットをコーデック16に入力する。
そして、Xをインクリメントし(ステップS106)、Xの値が1024に達するまでの間(ステップS107)、ステップS103〜S107の制御を繰り返す。その結果、第1ボックスB1に含まれる1024ビットを用いて、コーデック16の復号化演算が実行されることになる。
続くステップS108〜S113では、上述のステップS102〜S107のデータ領域に対する制御と同様の手順で、第1コード領域に対する制御を実行する。この場合、行アドレスXをX1に、列アドレスYをY1に置き換えるとともに、その変化範囲を0〜15に置き換えて考えればよい。
ステップS113の判断結果がNOとなった時点で、コーデック16では、所定の第1ボックスB1とこれに対応する検査コードの計1040ビットを用いた復号化演算が完了した状態になる。よって、コーデック16の演算の結果、ビット誤りが生じたか否かをerror信号に基づき判別する(ステップS114)。
コーデック16から出力されるerror信号が1となり、ビット誤りが生じている場合は、演算対象の第1ボックスB1に対するビット誤り訂正を実行する(ステップS115)。ここで、ステップS115で実行されるビット誤り訂正の制御フローを図16に示す。まず、図16に示すように、処理対象の第1ボックスB1及び第1コード領域の列アドレスY及びY1が既にセットされている状態で、第1コード領域の行アドレスX1に15をセットする(ステップS201)。
次いで、コーデック制御コマンドREVERSEを実行し(ステップS202)、16段のシフトレジスタを逆進させた状態でコーデック16から出力されるlocation信号に基づき、ビット誤りが生じた位置を判別する(ステップS203)。その結果、location信号が1となる場合は、メモリ制御コマンドACT(X1)を実行し(ステップS204)、続いてメモリ制御コマンドRD(Y1)を実行し(ステップS205)、第1コード領域の位置(X1、Y1)の検査ビットを読み出す。
続いて、制御コマンドCORRECTを実行し(ステップS206)、誤りを生じたビットを訂正する。すなわち、図8からわかるように、コーデック16では、rd_data(ステップS205で読み出したビット)とlocation信号のEOR演算出力をセレクタにより選択的に出力するので、誤りを生じたビットが反転されて信号wt_dataとして出力されることになる。
そして、メモリ制御コマンドWT(Y1)を実行し(ステップS207)、コーデック16にて誤りを訂正されたビットを、第1コード領域の位置(X1、Y1)に書き込む。次いで、X1をデクリメントし(ステップS208)、X1の値が0に達するまでの間(ステップS209)、ステップS203〜S209の制御を繰り返す。ステップS209の判断結果がNOになると、データ領域に対する制御に移る。
まず、データ領域の行アドレスXに1023をセットする(ステップS210)。続くステップS211〜S218では、上述のステップS201〜S209の第1コード領域に対する制御と同様の手順で、データ領域に対する制御を実行する。この場合、行アドレスX1をXに、列アドレスY1をYに置き換えるとともに、その変化範囲を1023〜0に置き換えて考えればよい。
なお、ステップS203、S212においてlocation=1となるのは、マット100の一列において1ビットの誤りが存在する場合に限られ、2ビット以上の誤りが存在する場合は、コーデック16の回路構成ではlocation信号が立たない。このような場合に行うべき制御については後述する。
ステップS218の判断結果がNOとなった時点で、誤りが検出されたビットが訂正された状態になり、図16の制御フローを終える。
図15に戻って、図16の制御フローに対応するステップS115に続き、データ領域及び第1コード領域における列アドレスを更新すべくY及びY1をインクリメントする(ステップS116)。そして、Yの値が1024に達するまでの間(ステップS117)、ステップS102〜S117の制御を繰り返す。ステップS117の判断結果がNOとなった時点でデコードシーケンスSQ1Aを終える。
ここで、図20には、データ領域及び第1コード領域においてY=N、Y1=Nとなる任意の一列に関し、デコードシーケンスSQ1Aの制御フローに対応するタイミングチャートを示している。図20において、第1コード体系に基づく検査コードの読み出し動作は、上述のステップS102〜S107に対応し、データ領域の行アドレスXを順次カウントアップしつつ上述の各コマンドが1024回繰り返し実行される。検査コードの読み出し動作は、上述のステップS108〜S113に対応し、第1コード領域の行アドレスX1を順次カウントアップしつつ上述の各コマンドが16回繰り返し実行される。また、第1コード体系に基づく検査コード及び第1ボックスB1に対するビット誤り検出・訂正動作は、error信号とlocation信号に応じて異なる制御がされることがわかる。
次に図17は、デコードシーケンスSQ1B(図14)の詳細な制御フローを示す図である。図17に示す制御が開始されると、最初にデータ領域の行アドレスXと第2コード領域の行アドレスX2にそれぞれ0をセットする(ステップS151)。
次に、メモリ制御コマンドACT(X)を実行する(ステップS152)。続いて、データ領域の列アドレスYに0をセットする(ステップS153)。この状態で、メモリ制御コマンドRD(Y)を実行し(ステップS154)、データ領域の位置(X、Y)のビットを読み出す。一方、ビットの読み出しとともにコーデック制御コマンドGEN_CODEを実行し(ステップS155)、読み出したビットをコーデック16に入力する。
続いて、Yをインクリメントし(ステップS156)、Yの値が1024に達するまでの間(ステップS157)、ステップS154〜157の制御を繰り返す。その結果、第2ボックスB2に含まれる1024ビットを用いて、コーデック16の復号化演算が実行されることになる。
続くステップS158〜S163では、上述のステップS152〜S157のデータ領域に対する制御と同様の手順で、第2コード領域に対する制御を実行する。この場合、行アドレスXをX2に、列アドレスYをY2に置き換えるとともに、その変化範囲を0〜15に置き換えて考えればよい。
ステップS163の判断結果がNOとなった時点で、コーデック16では、所定の第2ボックスB2とこれに対応する検査コードの計1040ビットを用いた復号化演算が完了した状態になる。よって、コーデック16の演算の結果、ビット誤りが生じたか否かをerror信号に基づき判別する(ステップS164)。
コーデック16から出力されるerror信号が1となり、ビット誤りが生じている場合は、演算対象の第2ボックスB2に対するビット誤り訂正を実行する(ステップS165)。ここで、ステップS165で実行されるビット誤り訂正の制御フローを図18に示す。
図18のステップS251〜S268に示す制御フローでは、基本的な制御手順としては、図16のステップS201〜S218に示す制御フローと共通であり、図16のX1、Xをそれぞれ図18のY2、Yに置き換えて考えればよい。最後のステップS268の判断結果がNOとなった時点で、誤りが検出されたビットが訂正された状態になり、図18の制御フローを終える。
図17に戻って、図18の制御フローに対応するステップS165に続き、データ領域及び第1コード領域における行アドレスを更新すべくX及びX2をインクリメントする(ステップS166)。そして、Xの値が1024に達するまでの間(ステップS167)、ステップS152〜S167の制御を繰り返す。ステップS167の判断結果がNOとなった時点でデコードシーケンスSQ1Bを終える。
ここで、図21には、データ領域及び第2コード領域においてX=N、X2=Nとなる任意の一行に関し、デコードシーケンスSQ1Bの制御フローに対応するタイミングチャートを示している。図21において、第2コード体系に基づく検査コードの読み出し動作は、上述のステップS152〜S157に対応し、データ領域の列アドレスYを順次カウントアップしつつ上述の各コマンドが1024回繰り返し実行される。検査コードの読み出し動作は、上述のステップS158〜S163に対応し、第2コード領域の列アドレスY2を順次カウントアップしつつ上述の各コマンドが16回繰り返し実行される。また、第2コード体系に基づく検査コード及び第2ボックスB2に対するビット誤り検出・訂正動作は、error信号とlocation信号に応じて異なる制御がされる点は、図20の場合と同様である。
以上の2つのデコードシーケンスSQ1A、SQ1Bにおいて、図22のデコード制御部43では、ボックス制御部51が各々の対象ボックスの処理タイミングを認識する。そして、対象ボックスの処理開始タイミングを示すボックススタート信号sg1と、対象ボックスの番号(アドレス)を示すボックスアドレス信号sg2をメモリ・コーデック制御部52に出力する。このメモリ・コーデック制御部52では、対象ボックスのデコード処理に必要となるメモリ制御信号とコーデック制御信号を生成して出力する。そして、対象ボックスの処理完了タイミングを示すボックスエンド信号sg3をボックス制御部51に出力する。
また、対象ボックスの番号はボックスアドレスカウンタ55により生成される。ボックス制御部51は、制御信号sg8によりボックスアドレスカウンタ55を制御し、ボックスアドレスカウンタ55からは、そのカウンタ値をボックス番号カウント信号sg9として出力する。
さらに、対象ボックスの処理に際し、メモリ・コーデック制御部52は、ステージカウンタ53に対しカウンタ制御信号sg4を供給し、コーデック16のシフトレジスタの順進・逆進の方向に応じた制御を行う。ステージカウンタ53は、コーデック16の順進演算時にはインクリメントされ、コーデック16の逆進演算時にはデクリメントされるように制御される。メモリ・コーデック制御部52は、ステージカウンタ53のカウント値を示すカウント信号sg5を受け、これにより実行すべきサイクルを認識する。
次に、図14に示すように、デコードシーケンスSQ1A、SQ1Bに後続するデコードシーケンスSQ2では、デコードシーケンスSQ1A又はデコードシーケンスSQ1Bにおいて、訂正不能なビット誤りが存在するか否かを判定する。すなわち、本実施形態の誤り訂正方式では、対象ボックスにおいて1ビットの誤りが存在する場合にのみ訂正可能であり、2ビット以上の誤りが存在する場合は訂正ができない。コーデック16の回路構成においては、error=1になった場合でも、2ビット以上の誤りの存在時にlocation=1にならないため、このような状態をデコードシーケンスSQ2において検知するものである。
図22において、コーデック16から出力されるerror信号及びlocation信号は、ボックス制御部51及びメモリ・コーデック制御部52に入力される。ボックス制御部51は、error=1、location=1となる場合、ビット誤りの存在とそのビットが訂正されたことを認識し、メモリ・コーデック部52の制御によるビット誤り訂正が実行される。一方、ボックス制御部51は、error=1であってlocation=1にならない場合、訂正不能なビット誤りの発生を認識する。
本実施形態では、第2ボックスB2に訂正不能なビットがあると認識される場合、その第2ボックスB2の番号(行アドレスX)が保持される。具体的には、ボックス制御部51からボックスアドレスレジスタ56にホールド信号sg13を1として供給した状態で、ボックスアドレスカウンタ55から、該当する第2ボックスB2の番号がボックスアドレス信号sg9としてボックスアドレスレジスタ56に送られる。なお、ボックスアドレスレジスタ56には、訂正不能な第2ボックスB2がN個ある場合、それらの番号に加えて個数Nも保持される。
なお、ボックスアドレスレジスタ56の読み出し信号sg10は、セレクタ57に送られる。このセレクタ57は、ボックスアドレスカウンタ55からのボックス番号カウント信号sg9とボックスレジスタ56からの読み出し信号sg10を選択的に切り替え、選択信号sg11をボックス制御部51に出力する。
図14において、デコードシーケンスSQ2で訂正不能なビット誤りが存在しないと判定された場合は、それ以降の誤り訂正は不要となるので、図14のデコード処理は完了する。一方、デコードシーケンスSQ2で訂正不能なビット誤りが存在すると判定された場合、続いてデコードシーケンスSQ3を実行する。
デコードシーケンスSQ3では、デコードシーケンスSQ1を予め設定されている繰り返し回数だけ完了したか否かを判定する。すなわち、本実施形態では行方向と列方向の誤り訂正を交互に繰り返すことにより、ビット誤りを減少させるようにしているため、繰り返し回数を増やせば、それだけビット誤りが訂正される可能性が大きくなる。よって、予め適切な繰り返し回数を設定できるようにしたものである。
図22のデコード制御部43では、繰り返しカウンタ54によりデコードシーケンスSQ1、SQ2の繰り返し回数がカウントされる。ボックス制御部51は、デコードシーケンスSQ1、SQ2を実行する度にデクリメント信号を繰り返しカウンタ54に送り、そのカウント値をカウント信号sg6としてボックス制御部51に出力する。これにより、ボックス制御部51が予め設定された繰り返し回数に達したことを認識できる。
デコードシーケンスSQ3において所定回数繰り返したと判定されると、続いてデコードシーケンスSQ4に移行する。このデコードシーケンスSQ4では、デコードシーケンスSQ1Aと同様、第1ボックスB1のビット誤り訂正を行うものであり、複数回繰り返す場合の最終の処理となる。そして、続くデコードシーケンスSQ5では、デコードシーケンスSQ2と同様の判定を行う。
また、デコードシーケンスSQ5で訂正不能なビット誤りが存在すると判定された場合、続いてデコードシーケンスSQ6に移行する。このデコードシーケンスSQ6では、第2ボックスB2のビット誤り訂正を行うものであり、この場合も複数回繰り返す場合の最終の処理となる。ここで、デコードシーケンスSQ6の処理は、デコードシーケンスSQ1Bの処理と異なる点があるため、以下で説明する。
図19は、デコードシーケンスSQ6の詳細な制御フローを示す図である。このデコードシーケンスSQ6の基本的な制御は、図17のデコードシーケンスSQ1Bと共通するが、行アドレスXの設定手順が異なっている。すなわち、図19に示すように、まずカウンタiに0をセットし(ステップS301)、上述のボックスアドレスレジスタ56に保持されるi番目の値であるBOX_ADR_REG(i)をXの値としてセットする(ステップS302)。同様にBOX_ADR_REG(i)をX2の値としてもセットする(ステップS309)そして、そのX、X2について、ステップS303〜S317の制御を実行した後、iをインクリメントし(ステップS318)、iがボックスアドレスレジスタに保持される値Nに達するまで(ステップS319)、ステップS303〜S319の処理を繰り返し実行する。
このように、デコードシーケンスSQ6においては、既に第2ボックスB2について実行済みのビット誤り訂正を行った際、訂正不能なビットが存在する第2ボックスB2についてのみ、新たなビット誤り訂正を行うように制御している。これにより、不要な処理を回避して、処理全体の実行時間の低減を図ることができる。なお、デコードシーケンスSQ3において所定回数が1回に設定されている場合は、第1ボックスB1と第2ボックスB2について交互に少なくとも2回ずつのビット誤り訂正が実行されることになる。
最後に、デコードシーケンスSQ7では、デコードシーケンスSQ2、SQ5と同様の判定を行う。そして、デコードシーケンスSQ7で訂正不能なビット誤りが存在しないと判定された場合は、図14のデコード処理は完了する。一方、デコードシーケンスSQ7で訂正不能なビット誤りが存在すると判定された場合、所定の訂正不可信号を発生する。この訂正不可信号を参照することによりDRAMの異常を検知することができる。
次に、図23を用いて、本実施形態の誤り訂正方法の具体例を説明する。図23においては、簡単のため10×10のサイズのデータ領域を例に取って考える。図23(a)に示すように、データ領域に6ビットの誤りが存在する状態で(図中×印で示す)、X方向のビット列に対しデコードシーケンスSQ1Aを実行する。この場合、ビット誤りがある3つの列には、いずれも2ビットの誤りが存在するため、ビット誤りは訂正できない。
次に、図23(b)に示すように、Y方向のビット列に対しデコードシーケンスSQ1Bを実行する。この場合、2ビットの誤りが存在する2行の誤りは訂正できないが、1ビットの誤りが存在する他の2行の誤りは訂正される。このとき、訂正不能の行を示す位置情報Xe(1)、Xe(2)を保持する。
次に、図23(c)に示すように、X方向のビット列に対しデコードシーケンスSQ4を実行する(デコードシーケンスSQ3の繰り返し数は1とする)。この場合、図23(a)の誤りパターンが変化しているので、1ビットの誤りが存在する2列の誤りは訂正される。そして、2ビットの誤りが存在する1列が残った状態になる。
最後に、図23(d)に示すように、Y方向のビット列に対しデコードシーケンスSQ6を実行する。このとき、保持される位置情報Xe(1)、Xe(2)についてのみ誤り訂正が実行され、その2行に残存する誤りビットeb1、eb2がいずれも訂正される。この結果、データ領域における全てのビット誤りが訂正される状態になる。より複雑な誤りパターンであっても、繰り返し回数を増やすことにより、全てのビット誤りが訂正される可能性を高めることができる。
なお、上述の繰り返し回数を増やしたとしても、誤りパターンによってはビット誤りを訂正できない場合がある。例えば、方形状の2×2の領域に含まれる4ビットの誤りが存在する場合である。この場合、X方向、Y方向に誤り訂正を繰り返しても常に誤りが残存する状態になる。このような状態を回避するには、所定形状の領域で常にビット誤りを訂正不能な状態が続く場合、その領域内で全てのビットが誤っていると判定し、それらのビットを反転するように制御を行えばよい。
以上説明した本実施形態のDRAMにより、従来では訂正不可能である誤りパターンに対する誤り訂正が可能となり、許容されるビットエラー率を高くすることができる。具体的には、上述の誤り訂正方法を採用することにより、従来の許容ビットエラー率を0.01%から0.02%程度に高くすることができる。また、許容ビットエラー率を高くできるため、リフレッシュ周期を長く設定でき、これによりデータ保持状態での消費電力を低減することができる。具体的には、温度85℃において、リフレッシュ周期を従来の約2倍に伸ばすことが可能である。
以上、本実施形態に基づき本発明について具体的に説明したが、本発明は上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の変更を施すことができる。例えば、メモリアレイ10の構成や容量は、上述の具体例に限られることなく、多様なメモリ手段に対して本発明を広く適用することができる。
本実施形態に係るDRAMの全体構成を示すブロック図である。 メモリアレイのバンク構成及びマット構成を示す図である。 本実施形態における主要なメモリ制御コマンドの種類を示す図である。 DRAMにおける複数の動作状態の関係と機能を示す状態遷移図である。 図4の状態遷移図に対応する概略のタイミングフロー図である。 制御回路のECC制御部の構成を示すブロック図である。 エンコード処理において生成される検査コードの構成を示す図である。 コーデックの回路構成の一例を示す図である。 図8の構成を備えるコーデックにおける演算処理の具体例について説明する図である。 コーデックの動作制御に用いるコーデック制御コマンドの種類を示す図である。 エンコード処理のうち、第1コード体系に基づく制御フローを示す図である。 エンコード処理のうち、第2コード体系に基づく制御フローを示す図である。 図11及び図12の制御フローに対応するタイミングチャートを示す図である。 デコード処理の概略の制御フローを示す図である。 図14のデコードシーケンスSQ1Aに対応する詳細な制御フローを示す図である。 図15のステップS115で実行されるビット誤り訂正の制御フローを示す図である。 図14のデコードシーケンスSQ1Bに対応する詳細な制御フローを示す図である。 図17のステップS165で実行されるビット誤り訂正の制御フローを示す図である。 図14のデコードシーケンスSQ6の詳細な制御フローを示す図である。 図15の制御フローに対応するタイミングチャートを示す図である。 図17の制御フローに対応するタイミングチャートを示す図である。 デコード処理を主に制御するデコード制御部の構成を示すブロック図である。 本実施形態の誤り訂正方法の具体例を説明する図である。
符号の説明
10…メモリアレイ
11…行デコーダ
12…ワードドライバ
13…センスアンプ
14…I/Oゲート
15…列デコーダ
16…コーデック
20…制御回路
21…I/Oバッファ
31…コマンド制御部
32…状態制御部
33…ECC制御部
41…低消費電力モード制御部
42…エンコード制御部
43…デコード制御部
44…BREF制御部
45…BREF周期制御部
46、46…マルチプレクサ
51…ボックス制御部
52…メモリ・コーデック制御部
53…ステージカウンタ
54…繰り返しカウンタ
55…ボックスアドレスカウンタ
56…ボックスアドレスレジスタ
57…セレクタ
100…マット

Claims (10)

  1. データを記憶するデータ領域と前記データの誤り検出訂正用の検査コードを記憶する検査コード領域を有するメモリアレイと、
    データ保持状態において前記メモリアレイに対する所定周期のリフレッシュ動作を制御するリフレッシュ制御手段と、
    前記データ領域の所定のビット列を処理単位とする符号化演算を行って前記検査コードを生成するとともに、前記検査コードを用いた復号化演算を行って前記データに対する誤り検出訂正を行う演算手段と、
    前記データ保持状態に移行する際のエンコード処理として、前記メモリアレイの互いに直交する第1の方向と第2の方向に対し、前記第1の方向のビット列に基づき前記演算手段により生成された第1コードと、前記第2の方向のビット列に基づき前記演算手段により生成された第2コードをそれぞれ区別可能に前記検査コード領域に書き込むように制御するエンコード制御手段と、
    前記データ保持状態を終了する際のデコード処理として、前記第1の方向に対する前記第1コードに基づく第1のビット誤り訂正と、前記第2の方向に対する前記第2コードに基づく第2のビット誤り訂正とを、前記演算手段に交互に実行させ、少なくとも前記第1のビット誤り訂正と前記第2のビット誤り訂正をそれぞれ2回以上実行させるように制御するデコード制御手段と、
    を備えることを特徴とする半導体記憶装置。
  2. 前記演算手段は、前記復号化演算の対象となるビット列中に1ビット以上の誤りが発生したことを示す第1の信号と、前記ビット列中に1ビットのみのビット誤りが発生したビット位置を示す第2の信号をそれぞれ出力することを特徴とする請求項1に記載の半導体記憶装置。
  3. 前記デコード制御手段は、前記第2のビット誤り訂正の際、前記演算手段から前記第1の信号が出力されるとともに前記第2の信号が出力されない場合。復号化対象のビット列中に訂正不能なビット誤りが存在すると判定することを特徴とする請求項2に記載の半導体記憶装置。
  4. 前記デコード制御手段は、前記復号化対象のビット列中に訂正不能なビット誤りが存在すると判定したとき、当該ビット列の位置情報を保持し、後続の前記第2のビット誤り訂正時に前記保持される位置情報のビット列に対してのみ前記第2のビット誤り訂正を行うように制御することを特徴とする請求項3に記載の半導体記憶装置。
  5. 前記デコード制御手段は、前記第1のビット誤り訂正及び前記第2のビット誤り訂正について、予め設定された繰り返し回数をそれぞれ実行するように制御することを特徴とする請求項1に記載の半導体記憶装置。
  6. 前記第1の方向は前記メモリアレイの行方向であり、前記第2の方向は前記メモリアレイの列方向であることを特徴とする請求項1から5のいずれかに記載の半導体記憶装置。
  7. 通常時の動作を制御する通常動作モードと、前記データ保持状態における消費電力を低減するように動作を制御する低消費電力モードを切り替え制御する動作制御手段を更に備え、前記リフレッシュ制御手段は、前記低消費電力モードにおいて長周期のリフレッシュ動作を制御することを特徴とする請求項1から6のいずれかに記載の半導体記憶装置。
  8. データを記憶するデータ領域と前記データの誤り検出訂正用の検査コードを記憶する検査コード領域とからなる記憶領域を有する半導体記憶装置の誤り訂正方法であって、
    前記データの所定のビット列を処理単位として符号化演算を行って前記検査コードを生成するとともに、前記検査コードを用いた復号化演算を行って前記データの誤り検出訂正を行う演算手段を制御し、
    前記記憶領域の互いに直交する第1の方向と第2の方向に対し、前記第1の方向のビット列に基づき前記演算手段により生成された第1コードと、前記第2の方向のビット列に基づき前記演算手段により生成された第2コードをそれぞれ区別可能に前記検査コード領域に書き込むエンコード処理と、
    前記第1の方向に対する前記第1コードに基づく第1のビット誤り訂正と、前記第2の方向に対する前記第2コードに基づく第2のビット誤り訂正とを、前記演算手段に交互に実行させ、少なくとも前記第1のビット誤り訂正と前記第2のビット誤り訂正をそれぞれ2回以上実行させるデコード処理と、
    を含むことを特徴とする半導体記憶装置の誤り訂正方法。
  9. 前記復号化対象のビット列中に訂正不能なビット誤りが存在する場合、当該ビット列の位置情報を保持し、後続の前記第2のビット誤り訂正時に前記保持される位置情報のビット列に対してのみ前記第2のビット誤り訂正を行うことを特徴とする請求項8に記載の半導体記憶装置の誤り訂正方法。
  10. 前記第1のビット誤り訂正及び前記第2のビット誤り訂正について、予め設定された繰り返し回数をそれぞれ実行することを特徴とする請求項8に記載の半導体記憶装置の誤り訂正方法。
JP2004181905A 2004-06-18 2004-06-18 半導体記憶装置及びその誤り訂正方法 Pending JP2006004560A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004181905A JP2006004560A (ja) 2004-06-18 2004-06-18 半導体記憶装置及びその誤り訂正方法
TW094117516A TWI271741B (en) 2004-06-18 2005-05-27 Semiconductor memory device and error correction method thereof
US11/152,386 US7373584B2 (en) 2004-06-18 2005-06-15 Semiconductor memory device and error correction method thereof
CN200510078607.2A CN1716443B (zh) 2004-06-18 2005-06-20 半导体存储装置及其误码修正方法
US12/081,940 US8140938B2 (en) 2004-06-18 2008-04-23 Semiconductor memory device and error correction method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004181905A JP2006004560A (ja) 2004-06-18 2004-06-18 半導体記憶装置及びその誤り訂正方法

Publications (1)

Publication Number Publication Date
JP2006004560A true JP2006004560A (ja) 2006-01-05

Family

ID=35481994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004181905A Pending JP2006004560A (ja) 2004-06-18 2004-06-18 半導体記憶装置及びその誤り訂正方法

Country Status (4)

Country Link
US (2) US7373584B2 (ja)
JP (1) JP2006004560A (ja)
CN (1) CN1716443B (ja)
TW (1) TWI271741B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008021390A (ja) * 2006-07-14 2008-01-31 Toshiba Corp 半導体記憶装置
US8225171B2 (en) 2007-02-16 2012-07-17 Samsung Electronics Co., Ltd. Semiconductor memory device having an error correction function and associated method
CN112289365A (zh) * 2019-07-24 2021-01-29 华邦电子股份有限公司 半导体存储器装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4745169B2 (ja) * 2005-09-16 2011-08-10 株式会社東芝 半導体記憶装置
US7539926B1 (en) * 2006-02-14 2009-05-26 Xilinx, Inc. Method of correcting errors stored in a memory array
US7774684B2 (en) * 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
KR100801083B1 (ko) * 2006-12-28 2008-02-05 삼성전자주식회사 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법
TW200834597A (en) * 2007-02-15 2008-08-16 Wedotek Technology Inc Data storage device
JP5216244B2 (ja) * 2007-05-31 2013-06-19 株式会社東芝 データリフレッシュ装置、及びデータリフレッシュ方法
US8005995B2 (en) * 2007-08-16 2011-08-23 Micron Technology, Inc. Command interface systems and methods
US8117519B2 (en) * 2008-01-15 2012-02-14 Micron Technology, Inc. Memory apparatus and method using erasure error correction to reduce power consumption
US8627163B2 (en) 2008-03-25 2014-01-07 Micron Technology, Inc. Error-correction forced mode with M-sequence
US7973556B1 (en) * 2009-03-05 2011-07-05 Xilinx, Inc. System and method for using reconfiguration ports for power management in integrated circuits
US8327225B2 (en) 2010-01-04 2012-12-04 Micron Technology, Inc. Error correction in a stacked memory
KR101751506B1 (ko) * 2011-03-28 2017-06-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법
US8615690B2 (en) * 2011-05-05 2013-12-24 Mediatek Inc. Controller of memory device and method for operating the same
US9880900B2 (en) 2015-12-08 2018-01-30 Nvidia Corporation Method for scrubbing and correcting DRAM memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state
US9823964B2 (en) 2015-12-08 2017-11-21 Nvidia Corporation Method for memory scrub of DRAM with internal error correcting code (ECC) bits during either memory activate and/or precharge operation
US10049006B2 (en) 2015-12-08 2018-08-14 Nvidia Corporation Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands
CN109347490A (zh) * 2018-12-09 2019-02-15 江苏华存电子科技有限公司 一种用于数据纠错ecc译码核主控装置
KR20200088701A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 커맨드 생성 방법 및 이를 이용한 반도체장치
CN110309374A (zh) * 2019-05-22 2019-10-08 深圳市金泰克半导体有限公司 一种解析方法、系统、终端设备及计算机可读存储介质
US11385962B2 (en) * 2020-11-05 2022-07-12 Sage Microelectronics Corporation Method and apparatus for error correction encoding compressed data

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6235708A (ja) 1985-08-08 1987-02-16 Nec Corp シユミツト回路
DE69024086T2 (de) * 1989-04-13 1996-06-20 Sundisk Corp EEprom-System mit Blocklöschung
JP3109087B2 (ja) * 1990-08-24 2000-11-13 ソニー株式会社 符号化装置及び復号化装置
AU700070B2 (en) * 1995-05-16 1998-12-17 Sony Corporation Data recording/reproducing apparatus and method corresponding to a plurality of data formats, and data recording medium
JP3562544B2 (ja) * 1996-08-13 2004-09-08 ソニー株式会社 復号化装置および復号化方法
JP3863252B2 (ja) * 1996-11-15 2006-12-27 富士通株式会社 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法
JP3430193B2 (ja) * 1997-01-20 2003-07-28 株式会社日立製作所 ディジタル信号再生装置及びディジタル信号再生方法
DE69837123T2 (de) * 1997-04-02 2007-11-29 Matsushita Electric Industrial Co., Ltd., Kadoma Hochgeschwindigkeits-Daten-Ein/Ausgangsgerät zur Übertragung der Daten in den internen Speicher, Behandlungsausführung auf den Daten und Ausgabe der Daten
JPH1198462A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd データ再生装置
JP3813337B2 (ja) 1997-12-01 2006-08-23 日本テキサス・インスツルメンツ株式会社 消失誤り訂正方法とその装置
WO1999038170A1 (fr) * 1998-01-21 1999-07-29 Sony Corporation Procede de codage et dispositif de memoire
JP3177207B2 (ja) * 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
CN1897512B (zh) * 1998-02-25 2010-08-11 松下电器产业株式会社 纠错装置
JP3450756B2 (ja) * 1999-09-08 2003-09-29 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
JP2002056671A (ja) 2000-08-14 2002-02-22 Hitachi Ltd ダイナミック型ramのデータ保持方法と半導体集積回路装置
US6792567B2 (en) * 2001-04-30 2004-09-14 Stmicroelectronics, Inc. System and method for correcting soft errors in random access memory devices
JP2003068076A (ja) * 2001-08-27 2003-03-07 Elpida Memory Inc 半導体記憶装置の電力制御方法及び半導体記憶装置
US7171605B2 (en) * 2002-02-01 2007-01-30 International Business Machines Corporation Check bit free error correction for sleep mode data retention
US7203886B2 (en) * 2002-03-27 2007-04-10 Intel Corporation Detecting and correcting corrupted memory cells in a memory
US7277368B2 (en) * 2002-11-11 2007-10-02 Matsushita Electric Industrial Co., Ltd. Playback method, playback control circuit and playback apparatus for a recording medium
JP4256198B2 (ja) * 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US6704230B1 (en) * 2003-06-12 2004-03-09 International Business Machines Corporation Error detection and correction method and apparatus in a magnetoresistive random access memory
JP4041076B2 (ja) * 2004-02-27 2008-01-30 株式会社東芝 データ記憶システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008021390A (ja) * 2006-07-14 2008-01-31 Toshiba Corp 半導体記憶装置
US8225171B2 (en) 2007-02-16 2012-07-17 Samsung Electronics Co., Ltd. Semiconductor memory device having an error correction function and associated method
CN112289365A (zh) * 2019-07-24 2021-01-29 华邦电子股份有限公司 半导体存储器装置
CN112289365B (zh) * 2019-07-24 2024-02-23 华邦电子股份有限公司 半导体存储器装置

Also Published As

Publication number Publication date
CN1716443B (zh) 2010-06-09
TWI271741B (en) 2007-01-21
US7373584B2 (en) 2008-05-13
US20050283704A1 (en) 2005-12-22
CN1716443A (zh) 2006-01-04
US20080282098A1 (en) 2008-11-13
US8140938B2 (en) 2012-03-20
TW200601335A (en) 2006-01-01

Similar Documents

Publication Publication Date Title
JP2006004560A (ja) 半導体記憶装置及びその誤り訂正方法
KR100632952B1 (ko) 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US10803971B2 (en) Device for supporting error correction code and test method thereof
KR102014624B1 (ko) 오류 정정 코딩이 있는 메모리 연산을 파이프라이닝하기 위한 방법 및 장치
JP2006190425A (ja) 半導体記憶装置
US20140032992A1 (en) Memory controller, semiconductor memory system, and memory control method
CN104051024A (zh) 用于内建错误更正的储存装置及其操作方法
CN107025948B (zh) 具有标志位指示数据长度的纠错功能的存储器和纠错方法
JP2005285270A (ja) 半導体装置及び試験方法
JP2008021390A (ja) 半導体記憶装置
JP2009282923A (ja) 半導体記憶装置及び不揮発性メモリ
JP2008299926A (ja) 半導体記憶装置
JP5101123B2 (ja) 半導体メモリ装置のバースト読み出し回路及びバーストデータ出力方法
KR100566162B1 (ko) 버스트 동작에 의해 데이터 및 패리티 데이터를입출력하는 반도체 기억 장치
JP4470161B2 (ja) リフレッシュカウンタ回路及びリフレッシュ動作の制御方法
KR20190072144A (ko) 에러정정방법 및 이를 이용한 반도체장치
US20060236206A1 (en) Semiconductor memory device
JP4889343B2 (ja) 半導体記憶装置
KR20140018095A (ko) 에러 검출 정정 회로 및 메모리 장치
JP5617776B2 (ja) メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2008165879A (ja) 半導体記憶装置
JP5117593B2 (ja) 符号化・復号化装置、データ記憶装置、及び方法
TW201921245A (zh) 用於支持錯誤更正碼的裝置及其測試方法
JP4921216B2 (ja) メモリ制御回路、記憶システム、情報処理装置、および、メモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060224

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20071128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090310