JP2009048713A - デスクランブル回路及びエラー検出コード計算回路 - Google Patents

デスクランブル回路及びエラー検出コード計算回路 Download PDF

Info

Publication number
JP2009048713A
JP2009048713A JP2007215049A JP2007215049A JP2009048713A JP 2009048713 A JP2009048713 A JP 2009048713A JP 2007215049 A JP2007215049 A JP 2007215049A JP 2007215049 A JP2007215049 A JP 2007215049A JP 2009048713 A JP2009048713 A JP 2009048713A
Authority
JP
Japan
Prior art keywords
eor
data
scramble value
scramble
partial block
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
JP2007215049A
Other languages
English (en)
Inventor
Kunihiko Kodama
玉 邦 彦 児
Tomoyuki Maekawa
川 智 之 前
Makoto Takita
北 誠 田
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.)
Toshiba Corp
Toshiba Electronic Device Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Microelectronics Corp
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 Toshiba Corp, Toshiba Microelectronics Corp filed Critical Toshiba Corp
Priority to JP2007215049A priority Critical patent/JP2009048713A/ja
Priority to US12/195,582 priority patent/US20090052658A1/en
Publication of JP2009048713A publication Critical patent/JP2009048713A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】デスクランブル処理またはEDC計算処理を高速に行い、計算処理の回路規模を小型化する。
【解決手段】デスクランブル回路10は、×αの計算を行うスクランブル値生成部21、×α140の計算を行うスクランブル値生成部22、×α160の計算を行うスクランブル値生成部23、×α20の計算を行うスクランブル値生成部24、×α32の計算を行うスクランブル値生成部25、スイッチSW1〜SW4、FF26,27、EOR演算器28とを有する。EDC計算回路は、次数差X1の累積加算を行う第1の累積加算器、第1の累積加算器の出力を一時的に格納するFF、次数差X1376の累積加算を行う第2の累積加算器、第2の累積加算器の出力を一時的に格納するFF、次数差X256またはX96の累積加算を行う第3の累積加算器、セクタごとに累積加算値を一時的に格納するFF、セクタ選択器とを有する。
【選択図】図11

Description

本発明は、スクランブルされた入力データをデスクランブルするデスクランブル回路と、デスクランブル後の入力データに対応するエラー検出コードを計算するエラー検出コード計算回路とに関する。
DVDには、ECCブロック単位でデータが記録されている。ECCブロックは、行方向に172バイト長のデータを列方向に192個並べて構成したものである。各行ごとにPIパリティと呼ばれるエラー訂正符号が付加され、各列ごとにPOパリティと呼ばれるエラー訂正符号が付加されている。DVDに記録されるデータは、スクランブルがかけられており、後述するセクタごとにエラー訂正コード(EDC:Error Detection Code)が付加されている。
DVDに記録されたデータを再生する場合、DVDからECCブロック単位でデータを読み出し、読み出したECCブロックのデータに対して行単位でPI系列のエラー訂正を行い、次に、ECCブロックのデータを列方向に7個に分割した部分ブロックデータを単位として、PO系列のエラー訂正を行う。このPO系列のエラー訂正と並行して、デスクランブル処理とEDC計算処理が行われる(特許文献1参照)。
しかしながら、部分ブロックデータは、行方向に連続したデータではないため、デスクランブル処理とEDC計算処理を連続的に効率よく行うことはできない。このため、DVDの再生処理に時間がかかるとともに、デスクランブル処理とEDC計算処理を行う回路規模を小型化できないという問題があった。また、データ記録時のスクランブル処理とEDC計算処理についても同様であり、部分ブロックデータが不連続なデータであるために、スクランブル処理とEDC計算処理に時間がかかるという問題があった。
特開平2007−95251号公報
本発明は、デスクランブル処理またはEDC計算処理を高速に行うことができ、デスクランブル処理またはEDC計算処理の回路規模を小型化できるデスクランブル回路及びエラー検出コード計算回路を提供するものである。
本発明の一態様によれば、所定の生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて8ビット単位でそれぞれ異なる回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する3つ以上のスクランブル値生成手段と、
スクランブルされた部分的に不連続の入力データを、前記3つ以上のスクランブル値生成手段により生成されたスクランブル値を用いてデスクランブルするデスクランブル手段と、を備えることを特徴とするデスクランブル回路が提供される。
また、本発明の一態様によれば、第1の入力値にそれぞれ異なる次数を掛け合わせた値と第2の入力値との排他的論理和を次回の前記第1の入力値とする3つ以上の累積加算器と、
デスクランブルされた部分的に不連続の入力データに対して、前記3つ以上の累積加算器を用いてエラー検出コードを計算するEDC計算手段と、を備えることを特徴とするエラー検出コード計算回路が提供される。
本発明によれば、デスクランブル処理またはEDC計算処理を高速に行うことができ、デスクランブル処理またはEDC計算処理の回路規模を小型化できる。
以下、図面を参照しながら、本発明の実施形態について説明する。
まず、DVDの記録フォーマットについて説明する。DVDはセクタ単位でデータを管理している。図1は1セクタのデータフォーマットを示す図である。ロウ方向(横方向)に172バイト、カラム方向(縦方向)に12行で1セクタが構成されている。各セクタの先頭部分には、物理的なアドレスを表す4バイトのIDと、IDに対する2バイトのパリティIEDと、6バイトのコピー管理データCPR_MAIとが設けられ、その後に2048バイトのメインデータが配置されている。各セクタの最後尾には、4バイトのエラー検出コードEDC(Error Detection Code)が付加されている。
図1のようなセクタを16個集めてECCブロックが構成される。ECCブロックは、光ディスクへの書き込みの単位である。図2はECCブロックのデータフォーマットを示す図である。ECCブロックは、16セクタ分のデータ(16セクタ×12行×172バイト)を二次元配列したものであり、172バイト×192行のデータを有する。
ECCブロックの各行には、10バイトのPI符号(RSC(182,172,11))が付加され、各列には16バイトのPO符号(RSC(208,192,17))が付加されている。PI符号は対応する行のエラー訂正を行うために用いられるエラー訂正符号であり、PO符号は対応する列のエラー訂正を行うために用いられるエラー訂正符号である。
実際には、図3に示すように、PO符号は、データ12行に対して1行ずつインターリーブされて配置される。図3に示すインターリーブされたECCブロックの各行データには、所定の同期パターン(Syncパターン)が付加され、各データは8ビットから16ビットに変調されて、物理セクタが形成される。
図4は物理セクタのデータフォーマットを示す図である。図3に示した1行のデータ(172バイト+10バイト=182バイト)は行方向に2分割されて、それぞれに32ビットの同期パターンが付加される。また、分割データ(182/2=91バイト)はそれぞれ8ビットから16ビットに変調されて、91×16=1456ビットになる。物理セクタの最終行(13行目)はPO符号である。同期パターン32ビットと分割データ1456ビットを足し合わせて同期フレーム(Sync frame)が生成される。
図4の物理セクタを光ディスクに記録する場合は、各行を左から右にスキャンして各データを記録する。
(第1の実施形態)
図5は本発明の第1の実施形態に係る光ディスク再生装置の概略構成を示すブロック図である。図5の光ディスク再生装置は、ディスクモータ1と、ピックアップ2と、サーボ処理部3と、システムコントローラ4と、メモリコントローラ5と、メモリ6と、復調部7と、エラー訂正部8と、訂正バッファ9と、デスクランブル回路10と、EDC計算回路11と、ホストI/F部12と、ホストコンピュータ13とを備えている。
システムコントローラ4からの要求に応じて、サーボ処理部3は、ディスクモータ1を制御して光ディスク13を所望の速度で回転させるとともに、ピックアップ2の光ディスク13に対するフォーカス位置とトラック位置を制御する。
ピックアップ2により光ディスク13から読み出された再生信号は、復調部7で復調されて、メモリコントローラ5を介してメモリ6に書き込まれる。メモリ6は例えばDRAMである。
メモリ6に1ECC分の再生データ(以下、1ECCブロックデータ)が格納された後、その1ECCブロックデータ中の先頭行データは、メモリコントローラ5を介して訂正バッファ9に格納される。以下では、1ECCブロックデータが行方向(PI符号方向)にM個(Mは2以上の整数)、列方向(PO符号方向)にN個のデータで構成されているものとする。
エラー訂正部8は、訂正バッファ9に転送したECCブロックデータ中の先頭行から順に、PI系列のエラー訂正を行う。例えば、先頭行のエラー訂正を行う場合は、先頭行に含まれるPI符号を用いてエラー訂正のための計算を行い、エラーがある場合には、訂正バッファ9の先頭行のデータを正しいデータに書き換える。エラー訂正部8がエラー訂正を行っている最中に、メモリコントローラ5は、次の行データをメモリ6から訂正バッファ9に転送する。エラー訂正された行データは訂正バッファ9に上書きされる。
以降、1ECCブロック分のPI系列のエラー訂正が終了するまで、エラー訂正部8によるPI系列のエラー訂正と、メモリ6から訂正バッファ9への行単位のデータ転送とを並列して行う。最終的には、PI系列のエラー訂正済みの1ECCブロックデータが訂正バッファ9に格納される。
次に、エラー訂正部8は、訂正バッファ9内のPI系列エラー訂正済みの1ECCブロックデータの中から、行方向(PI符号方向)にLバイト(ただし、LはM未満の整数)で列方向にK(1以上の整数)個のデータからなる部分ブロックデータに対してPO系列のエラー訂正処理を行う。
図6は部分ブロックデータの一例を示す図である。図6の部分ブロックデータは、L=32または22の場合を示している。より具体的には、1ECCブロックデータ内に6個の部分ブロック(第1〜第6の部分ブロック)が存在し、第1〜第5の部分ブロックはL=32であり、第6の部分ブロックはL=22である。エラー訂正部8は、第1〜第6の部分ブロックデータのそれぞれに対して順にPO系列のエラー訂正を行う。
エラー訂正部8は、一つの部分ブロックデータに対するPO系列のエラー訂正を終えると、まだエラー訂正を行っていない他の部分ブロックデータを訂正バッファ9から読み出してPO系列のエラー訂正を行う。それと同時に、エラー訂正済みの部分ブロックデータはデスクランブル回路10に転送される。
デスクランブル回路10は、スクランブルされているデータを部分ブロックごとにデスクランブルする。続いて、EDC計算回路11は、デスクランブル後のデータを用いて各部分ブロック内の各セクタごとにEDCを計算する。そして、計算されたEDCが各セクタの最後に元々付加されていたEDCと一致するか否かを検出する。
デスクランブル後のデータは、メモリコントローラ5を介してメモリ6に格納される。1ECCブロックデータの全体に対するPO系列のエラー訂正済みのデータがメモリ6に格納されるまで上記の処理が繰り返される。
1ECCブロック分のPO系列のエラー訂正処理とデスクランブル処理が完了すると、その後、所望の転送レートで、メモリ6からメモリコントローラ5を介してデータが読み出されて、ホストI/F部12を介してホストコンピュータ13に転送される。
図7は第1の実施形態におけるエラー訂正の動作タイミング図である。まず、時刻t1〜t2の間に、メモリ6から訂正バッファ9へのデータ転送とPI系列のエラー訂正処理とが並列して行われる。その後、時刻t2〜t3の間に、L×N個のデータからなる部分ブロックデータを単位として、PO系列のエラー訂正、デスクランブル・EDC処理、およびメモリ6への格納が行われる。
メモリ6にDRAMを用いる場合、DRAMのロウ方向を図5の行方向(PI符号方向)に割り当てて、DRAMのカラム方向を図5の列方向(PO符号方向)に割り当てるのが望ましい。DRAMは、同一ロウ上の複数カラムに対する読み出しは、プリチャージを行うことなく連続アクセスが可能なため、DRAMのロウ方向に1ECCブロックのPI符号方向(行方向)のデータを格納しておけば、これらデータを高速に読み出して訂正バッファ9に転送することができる。また、部分ブロックデータを単位としてデスクランブル・EDC処理済みのデータをメモリ6に転送する場合にも、行方向のLバイトのデータは高速に書き込むことができる。すなわち、デスクランブル・EDC処理済みのデータをメモリ6に転送する際は、L個のバーストデータを高速読み出す処理をN回繰り返せばよい。
本実施形態では、PI系列のエラー訂正を行う場合、メモリ6から訂正バッファ9に行単位でデータを転送するため、PO系列のエラー訂正を開始する時点では、訂正バッファ9に1ECCブロック分のデータが格納されている。このため、エラー訂正部8は訂正バッファ9内のデータを用いてPO系列のエラー訂正処理を行うことができ、メモリ6に対するアクセス頻度を軽減できる。特に、訂正バッファ9として高速メモリ6(SRAMなど)を用いれば、よりPO系列のエラー訂正を高速化することができる。
なお、部分ブロックデータを構成するデータのサイズには特に制限はなく、任意に設定可能である。例えば、部分ブロックデータをPI符号方向に26バイト、PO符号方向に208個とすれば、182=26×7より、7個の等しいサイズの部分ブロックデータが得られる。
図8は図7の時刻t2〜t3の間に行われるPO系列のエラー訂正処理の詳細な動作タイミング図である。まず、時刻t21〜t22では、最初の部分ブロックデータに対してPO系列のエラー訂正が行われ、その後、時刻t22〜t23ではエラー訂正済みの部分ブロックデータに対してデスクランブル・EDC処理を行った後にメモリ6への再格納を行う。それと同時に、次の部分ブロックデータに対するPO系列のエラー訂正が行われる。
なお、本実施形態の訂正バッファ9は、1ECCブロックデータを格納可能なメモリ容量を持つため、PO系列のエラー訂正が終了した部分ブロックデータを訂正バッファ9に一時的に保持し、タイミングを遅らせてデスクランブル・EDC処理を行ってもよい。
本実施形態は、デスクランブル回路10とEDC計算回路11の構成に特徴がある。まず、デスクランブル回路10の動作原理について説明する。本実施形態では、図6に示したように、各ECCブロックを6個の部分ブロックに分割している。デスクランブル回路10は、各部分ブロックごとにPO系列のエラー訂正を行うのに並行してデスクランブル処理を行う。
デスクランブル回路10は、スクランブルされたデータにスクランブル値を乗じることによりデスクランブルを行う。スクランブル値は、例えば図9に示すような生成多項式を用いて計算される。図9の生成多項式は、15個のレジスタr0〜r14からなるシフトレジスタを有し、レジスタr10とr14の排他的論理和をレジスタr0に帰還している。レジスタr0〜r14の初期値は、各ECCブロックのIDに応じて定められている。この初期値を与えた段階でのレジスタr0〜r7の値が部分ブロックの先頭バイトのスクランブル値S0になる。
図9の生成多項式は、r0からr14の方向に8ビット単位でシフトされ、シフトするたびに得られたレジスタr0〜r7の値が部分ブロックの2バイト目以降のスクランブル値となる。
スクランブルされた入力データをDk、スクランブル値をSkとすると、スクランブル処理後のデータD'kは、以下の(1)式で表される。ただし、EORは排他的論理和である。
D'k=Dk EOR Sk (k=0〜2047) …(1)
図10は各ECCブロック内の第1〜第6の部分ブロックの詳細構成を示す図である。図10は各部分ブロックの1セクタ分(12行)のデータ構成を示している。
図10に示すように、第1〜第5の部分ブロックは列方向に32バイトを有し、第6の部分ブロックは列方向に12バイトを有する。第1の部分ブロックの先頭部分にはID、IEDおよびCPR_MAIがあるため、第1の部分ブロックの列方向のデータ幅は20バイトである。
デスクランブル回路10は、各部分ブロックについて、行ごとにバイト単位でデスクランブル処理を行う。例えば、第1の部分ブロックについては、先頭行の20バイトをデスクランブルした後、次の行の32バイトをデスクランブルし、以下同様に、最後の行までデスクランブルする。第1の部分ブロックのデスクランブル処理が終了すると、次に、第2の部分ブロックのデスクランブル処理が行われる。
第1〜第6の部分ブロックの各行の最後のバイトデータと次の行の先頭のバイトデータとは、不連続のデータである。したがって、デスクランブル処理を行う場合には、不連続になった時点で、デスクランブル処理で用いるスクランブル値を切り替える必要がある。不連続になった直後のバイトデータに対応するスクランブル値は、不連続になる直前と直後のデータ量(以下、不連続データ量)に依存する。不連続データ量には以下の4種類がある。
(1)第1〜第5の部分ブロックの1行分のデータ(32バイト)についてデスクランブル処理を行った後の不連続データ量は140(=172−32)バイト。
(2)第6の部分ブロックの1行分のデータ(12バイト)についてデスクランブル処理を行った後の不連続データ量は160(=172−12)バイト。
(3)第1の部分ブロックの先頭バイトと第2の部分ブロックの先頭バイトとの間の不連続データ量は20バイト。
(4)第2〜第5の部分ブロックの先頭バイト間の不連続データ量は32バイト。
スクランブル値は、現在のスクランブル値をSk、nバイト先のスクランブル値をSk+nとすると、以下の(2)式で表される。
Sk+n=Sk×α …(2)
部分ブロック内のPI符号方向に連続する32バイトのスクランブル値は、Sk×α処理で求められる。また、部分ブロック内の行の切り替わりの不連続位置でのスクランブル値は、Sk×α140処理か、Sk×α160処理か、Sk×α20処理か、Sk×α32処理にて生成される。
Sk×αのスクランブル値は、図9の生成多項式を1回だけ8ビットシフトさせた後のレジスタr0〜r7にて得られる。同様に、Sk×α140、Sk×α160、Sk×α20、Sk×α32の各スクランブル値はそれぞれ、図9の生成多項式を8ビットずつ140回、160回、20回、32回シフトさせた後のレジスタr0〜r7にて得られる。
スクランブル値を計算するたびに図9の生成多項式を用いて演算するのは時間がかかるため、図9の生成多項式を8ビットずつ1回、140回、160回、20回、32回シフトさせた状態の計算式を予め用意しておくのが高速処理のためには望ましい。これらの計算式は、以下の通りである。
<×αの計算式> …(3)
r'14 = r6
r'13 = r5
r'12 = r4
r'11 = r3
r'10 = r2
r'9 = r1
r'8 = r0
r'7 = r14 EOR r10
r'6 = r13 EOR r9
r'5 = r12 EOR r8
r'4 = r11 EOR r7
r'3 = r10 EOR r6
r'2 = r9 EOR r5
r'1 = r8 EOR r4
r'0 = r7 EOR r3
<×α140の計算式> …(4)
r'14 = r11 EOR r10 EOR r9 EOR r5 EOR r4 EOR r0
r'13 = r14 EOR r9 EOR r8 EOR r4 EOR r3
r'12 = r13 EOR r8 EOR r7 EOR r3 EOR r2
r'11 = r12 EOR r7 EOR r6 EOR r2 EOR r1
r'10 = r11 EOR r6 EOR r5 EOR r1 EOR r0
r'9 = r14 EOR r5 EOR r4 EOR r0
r'8 = r14 EOR r13 EOR r10 EOR r4 EOR r3
r'7 = r13 EOR r12 EOR r9 EOR r3 EOR r2
r'6 = r12 EOR r11 EOR r8 EOR r2 EOR r1
r'5 = r11 EOR r10 EOR r7 EOR r1 EOR r0
r'4 = r14 EOR r9 EOR r6 EOR r0
r'3 = r14 EOR r13 EOR r10 EOR r8 EOR r5
r'2 = r13 EOR r12 EOR r9 EOR r7 EOR r4
r'1 = r12 EOR r11 EOR r8 EOR r6 EOR r3
r'0 = r11 EOR r10 EOR r7 EOR r5 EOR r2
<×α160の計算式> …(5)
r'14 = r11 EOR r10 EOR r9 EOR r7 EOR r6 EOR r2 EOR r1 EOR r0
r'13 = r14 EOR r9 EOR r8 EOR r6 EOR r5 EOR r1 EOR r0
r'12 = r14 EOR r13 EOR r10 EOR r8 EOR r7 EOR r5 EOR r4 EOR r0
r'11 = r14 EOR r13 EOR r12 EOR r10 EOR r9 EOR r7 EOR r6 EOR r4 EOR r3
r'10 = r13 EOR r12 EOR r11 EOR r9 EOR r8 EOR r6 EOR r5 EOR r3 EOR r2
r'9 = r12 EOR r11 EOR r10 EOR r8 EOR r7 EOR r5 EOR r4 EOR r2 EOR r1
r'8 = r11 EOR r10 EOR r9 EOR r7 EOR r6 EOR r4 EOR r3 EOR r1 EOR r0
r'7 = r14 EOR r9 EOR r8 EOR r6 EOR r5 EOR r3 EOR r2 EOR r0
r'6 = r14 EOR r13 EOR r10 EOR r8 EOR r7 EOR r5 EOR r4 EOR r2 EOR r1
r'5 = r13 EOR r12 EOR r9 EOR r7 EOR r6 EOR r4 EOR r3 EOR r1 EOR r0
r'4 = r14 EOR r12 EOR r11 EOR r10 EOR r8 EOR r6 EOR r5 EOR r3 EOR r2 EOR r0
r'3 = r14 EOR r13 EOR r11 EOR r9 EOR r7 EOR r5 EOR r4 EOR r2 EOR r1
r'2 = r13 EOR r12 EOR r10 EOR r8 EOR r6 EOR r4 EOR r3 EOR r1 EOR r0
r'1 = r14 EOR r12 EOR r11 EOR r10 EOR r9 EOR r7 EOR r5 EOR r3 EOR r2 EOR r0
r'0 = r14 EOR r13 EOR r11 EOR r9 EOR r8 EOR r6 EOR r4 EOR r2 EOR r1
<×α20の計算式> …(6)
r'14 = r12 EOR r11 EOR r8 EOR r7 EOR r4 EOR r2 EOR r1
r'13 = r11 EOR r10 EOR r7 EOR r6 EOR r3 EOR r1 EOR r0
r'12 = r14 EOR r9 EOR r6 EOR r5 EOR r2 EOR r0
r'11 = r14 EOR r13 EOR r10 EOR r8 EOR r5 EOR r4 EOR r1
r'10 = r13 EOR r12 EOR r9 EOR r7 EOR r4 EOR r3 EOR r0
r'9 = r14 EOR r12 EOR r11 EOR r10 EOR r8 EOR r6 EOR r3 EOR r2
r'8 = r13 EOR r11 EOR r10 EOR r9 EOR r7 EOR r5 EOR r2 EOR r1
r'7 = r12 EOR r10 EOR r9 EOR r8 EOR r6 EOR r4 EOR r1 EOR r0
r'6 = r14 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r5 EOR r3 EOR r0
r'5 = r14 EOR r13 EOR r9 EOR r8 EOR r7 EOR r6 EOR r4 EOR r2
r'4 = r13 EOR r12 EOR r8 EOR r7 EOR r6 EOR r5 EOR r3 EOR r1
r'3 = r12 EOR r11 EOR r7 EOR r6 EOR r5 EOR r4 EOR r2 EOR r0
r'2 = r14 EOR r11 EOR r6 EOR r5 EOR r4 EOR r3 EOR r1
r'1 = r13 EOR r10 EOR r5 EOR r4 EOR r3 EOR r2 EOR r0
r'0 = r14 EOR r12 EOR r10 EOR r9 EOR r4 EOR r3 EOR r2 EOR r1
<×α32の計算式> …(7)
r'14 = r13 EOR r8 EOR r5 EOR r0
r'13 = r14 EOR r12 EOR r10 EOR r7 EOR r4
r'12 = r13 EOR r11 EOR r9 EOR r6 EOR r3
r'11 = r12 EOR r10 EOR r8 EOR r5 EOR r2
r'10 = r11 EOR r9 EOR r7 EOR r4 EOR r1
r'9 = r10 EOR r8 EOR r6 EOR r3 EOR r0
r'8 = r14 EOR r10 EOR r9 EOR r7 EOR r5 EOR r2
r'7 = r13 EOR r9 EOR r8 EOR r6 EOR r4 EOR r1
r'6 = r12 EOR r8 EOR r7 EOR r5 EOR r3 EOR r0
r'5 = r14 EOR r11 EOR r10 EOR r7 EOR r6 EOR r4 EOR r2
r'4 = r13 EOR r10 EOR r9 EOR r6 EOR r5 EOR r3 EOR r1
r'3 = r12 EOR r9 EOR r8 EOR r5 EOR r4 EOR r2 EOR r0
r'2 = r14 EOR r11 EOR r10 EOR r8 EOR r7 EOR r4 EOR r3 EOR r1
r'1 = r13 EOR r10 EOR r9 EOR r7 EOR r6 EOR r3 EOR r2 EOR r0
r'0 = r14 EOR r12 EOR r10 EOR r9 EOR r8 EOR r6 EOR r5 EOR r2 EOR r1
図11はデスクランブル回路10の内部構成の一例を示すブロック図である。図11のデスクランブル回路10は、上述した×αの計算を行う第1のスクランブル値生成部21と、×α140の計算を行う第2のスクランブル値生成部22と、×α160の計算を行う第3のスクランブル値生成部23と、×α20の計算を行う第4のスクランブル値生成部24と、×α32の計算を行う第5のスクランブル値生成部25と、スイッチSW1〜SW4と、フリップフロップ(FF)26,27と、EOR演算器28とを有する。
第1〜第5のスクランブル値生成部21〜25はそれぞれスクランブル値生成手段に対応する。第1〜第5のスクランブル値生成部21〜25のうちすべてが必須であるわけではなく、使用頻度の低いスクランブル値生成部については、不連続点でのスクランブル値を予め初期値として与えることで、省略可能である。より具体的には、第4および第5のスクランブル値生成部24,25は他のスクランブル値生成部に対して使用頻度が低いため、省略可能である。
一方、第1〜第3のスクランブル値生成部21〜23を仮に省略したとすると、かなりの頻度でスクランブル値の初期値を与えなければならなくなり、初期値を生成する回路の規模が大きくなってしまう。したがって、第1〜第3のスクランブル値生成部21〜23は必須となる。
スイッチSW4は、第1〜第3のスクランブル値生成部21〜23のいずれかの出力データを選択する。スイッチSW3は、スイッチSW4で選択したデータとFF26の出力データのいずれかを選択する。スイッチSW3が選択したデータはFF27に一時的に格納される。FF27に格納されたデータR2は、第1〜第3のスクランブル値生成部21〜23に帰還されるとともに、最終的なスクランブル値SkとしてEOR演算器28に入力される。
EOR演算器28は、スクランブルされた入力データとスクランブル値Skとの排他的論理和を計算する。EOR演算器28の演算結果は、デスクランブル後のデータD'kとなる。
スイッチSW2は、第4および第5のスクランブル値生成部24,25のいずれかの出力データを選択する。スイッチSW1は、スイッチSW2が選択したデータと初期値のいずれかを選択する。スイッチSW1が選択したデータはFF26に一時的に格納される。
スイッチSW1に入力される初期値は、セクタの番地に応じた値である。
図12〜図14は図10のデスクランブル回路10の動作タイミングである。以下、これらの動作タイミング図を用いて図10のデスクランブル回路10の動作を説明する。
図12は第1の部分ブロック内の先頭行と2行目のデスクランブル処理の動作タイミング図である。時刻t1で処理が開始され、時刻t2で初期値が供給される。初期値は、図9の生成多項式に合わせて15ビットのビット列である。この時点でスイッチSW1は初期値を選択し、FF26はクロック1のエッジで初期値をラッチする。
時刻t3になると、FF27に周期的にクロック2が入力され、第1〜第3のスクランブル値生成部21〜23は、上述した×α、×α140、×α160の計算式に従って計算を行う。この時点では、スイッチSW4は第1のスクランブル値生成部21の出力データを選択する。スイッチSW3はスイッチSW4が選択した第1のスクランブル値生成部21の出力データを第1〜第3のスクランブル値生成部21〜23に供給する。
部分ブロックの先頭行の処理が終わるまで(時刻t3〜t4)は、第1のスクランブル値生成部21が選択されて、スクランブル値が生成される。生成されたスクランブル値は、第1〜第3のスクランブル値生成部21〜23に入力されるとともに、EOR演算器28にも入力される。EOR演算器28は、スクランブルされた入力データとスクランブル値との排他的論理和を計算して、デスクランブルを行う。
時刻t4になると、スイッチSW4は第2のスクランブル値生成部22の出力データを選択する。これにより、部分ブロックの2行目のデスクランブル処理が開始される。時刻t5〜t6では、時刻t3〜t4と同様に、第1のスクランブル値生成部21が選択されて、スクランブル値が生成される。
図13は第1の部分ブロックの最終行と第2の部分ブロックの先頭行のデスクランブル処理の動作タイミング図である。時刻t8で第1の部分ブロック内の最終行のデスクランブル処理が開始される。この最終行のデスクランブル処理を行っている最中(時刻t8〜t9)は、第1のスクランブル値生成部21が選択されて、スクランブル値が計算される。時刻t9になると、スイッチSW2,SW3が切り替わって、第4のスクランブル値生成部24の出力データがスイッチSW2を介してFF26でラッチされて、スイッチSW3を介してFF27にラッチされる。この処理は、第1の部分ブロックから第2の部分ブロックに移行するためのものである。
その後、時刻t10になると、第2の部分ブロックの先頭行のデスクランブル処理が開始される。
図14は第5の部分ブロックの最終行と第6の部分ブロック内の最終行のデスクランブル処理の動作タイミング図である。時刻t13で第5の部分ブロック内の最終行のデスクランブル処理が開始される。時刻t13〜t14の間は、第1のスクランブル値生成部21の出力データがスイッチSW4,SW3を介してFF27にラッチされて、スクランブル値が生成される。
時刻t14になると、第5の部分ブロックから第6の部分ブロックに移行するために、第5のスクランブル値生成部25が選択される。
その後、時刻t15〜t16の間は、第1のスクランブル値生成部21の出力データがスイッチSW4,SW3を介してFF27にラッチされて、スクランブル値が生成される。
このように、デスクランブル回路10は、第1〜第5のスクランブル値生成部21〜25を設けて、部分ブロック内のデータ位置により、所望のスクランブル値生成部を選択してスクランブル値を計算するため、部分ブロック内のデータが部分的に不連続であっても、スクランブル値を迅速に計算でき、デスクランブル処理の高速化が図れる。
次に、EDC計算回路11について説明する。図1に示したように、DVDに記録されたECCブロック内の各セクタの最後には4バイトのEDCが付加されている。EDCの値は、セクタの先頭バイトのMSBをb16511、セクタの末尾バイトのLSBをb0とすると、以下の(8)式で表される。
Figure 2009048713
(8)式のI(x)は(9)式で表され、g(x)は(10)式で表される。
Figure 2009048713
EDC計算回路11は、EDCが付加されたデスクランブル後の入力データに対してEDCを計算する。計算されたEDCが元々付加されていたEDCと一致する場合には、EDCの計算結果はゼロになる。したがって、EDCの計算結果がゼロか否かにより、EDCが正しいかどうかを容易に検出できる。
データビットbnが次数の高い方から順に入力される場合、データビットbnを入力するたびに以下の(11)式の演算を繰り返して累積加算することにより、EDCを計算することができる。
{bn×(x1)}mod{g(x)} EOR bn-1 …(11)
図6および図10に示す部分ブロックごとにEDC計算を行うと、各部分ブロックは部分的にデータが不連続になることから、工夫が必要となる。
部分ブロック単位でEDC計算を行う場合に、データが不連続になる場合の(11)式の次数差は以下の3通りとなる。
(1)各部分ブロックの各行の切り替わりでの次数差=x1376
(2)第1と第2、第2と第3、第3と第4、第4と第5の各部分ブロック間の次数差=x256
(3)第5と第6の部分ブロック間の次数差=x96
上記(1)の次数1376は、ECCブロックの1行分のバイト数172×8ビット=1376ビットから得られる。上記(2)の次数256は、第1〜第5の部分ブロックの行幅32バイト×8ビット=256ビットから得られる。上記(3)の次数96は、第6の部分ブロックの行幅12バイト×8ビット=96ビットから得られる。
また、第1〜第6の部分ブロックの次数は、第1の部分ブロックから第6の部分ブロックにかけて次第に次数が小さくなる。さらに、各部分ブロック内の16個のセクタは、1番目のセクタから16番目のセクタにかけて次第に次数が小さくなる。
EDC値は、PI符号方向にバースト転送されるデータを、(11)式に基づいて部分ブロック内の各セクタの行単位で累積加算し、その累積加算値を部分ブロック単位で累積加算して演算される。
入力データの各ビットをr31〜r0とし、出力データの各ビットをr'31〜r'0としたとき、上述したデータ不連続時の(11)式の計算式は、それぞれ以下のようになる。
<次数差=x1の計算式> …(12)
r'31 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15
r'30 = r14
r'29 = r13
r'28 = r12
r'27 = r11
r'26 = r10
r'25 = r9
r'24 = r8
r'23 = r7
r'22 = r6
r'21 = r5
r'20 = r4
r'19 = r31 EOR r3
r'18 = r31 EOR r30 EOR r2
r'17 = r31 EOR r30 EOR r29 EOR r1
r'16 = r31 EOR r30 EOR r29 EOR r28 EOR r0
r'15 = r30 EOR r29 EOR r28 EOR r27
r'14 = r29 EOR r28 EOR r27 EOR r26
r'13 = r28 EOR r27 EOR r26 EOR r25
r'12 = r27 EOR r26 EOR r25 EOR r24
r'11 = r26 EOR r25 EOR r24 EOR r23
r'10 = r25 EOR r24 EOR r23 EOR r22
r'9 = r24 EOR r23 EOR r22 EOR r21
r'8 = r23 EOR r22 EOR r21 EOR r20
r'7 = r22 EOR r21 EOR r20 EOR r19
r'6 = r21 EOR r20 EOR r19 EOR r18
r'5 = r20 EOR r19 EOR r18 EOR r17
r'4 = r19 EOR r18 EOR r17 EOR r16
r'3 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19
r'2 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18
r'1 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17
r'0 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16
<次数差=x96の計算式> …(13)
r'31 = r31 EOR r30 EOR r29 EOR r28 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0
r'30 = r27 EOR r26 EOR r19 EOR r18
r'29 = r26 EOR r25 EOR r18 EOR r17
r'28 = r25 EOR r24 EOR r17 EOR r16
r'27 = r24 EOR r23 EOR r16 EOR r15
r'26 = r23 EOR r22 EOR r15 EOR r14
r'25 = r22 EOR r21 EOR r14 EOR r13
r'24 = r21 EOR r20 EOR r13 EOR r12
r'23 = r20 EOR r19 EOR r12 EOR r11
r'22 = r19 EOR r18 EOR r11 EOR r10
r'21 = r18 EOR r17 EOR r10 EOR r9
r'20 = r17 EOR r16 EOR r9 EOR r8
r'19 = r16 EOR r15 EOR r8 EOR r7
r'18 = r15 EOR r14 EOR r7 EOR r6
r'17 = r14 EOR r13 EOR r6 EOR r5
r'16 = r13 EOR r12 EOR r5 EOR r4
r'15 = r31 EOR r12 EOR r11 EOR r4 EOR r3
r'14 = r30 EOR r11 EOR r10 EOR r3 EOR r2
r'13 = r29 EOR r10 EOR r9 EOR r2 EOR r1
r'12 = r28 EOR r9 EOR r8 EOR r1 EOR r0
r'11 = r31 EOR r27 EOR r8 EOR r7 EOR r0
r'10 = r30 EOR r26 EOR r7 EOR r6
r'9 = r29 EOR r25 EOR r6 EOR r5
r'8 = r28 EOR r24 EOR r5 EOR r4
r'7 = r31 EOR r27 EOR r23 EOR r4 EOR r3
r'6 = r30 EOR r26 EOR r22 EOR r3 EOR r2
r'5 = r29 EOR r25 EOR r21 EOR r2 EOR r1
r'4 = r28 EOR r24 EOR r20 EOR r1 EOR r0
r'3 = r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1
r'2 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0
r'1 = r31 EOR r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0
r'0 = r31 EOR r30 EOR r29 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0
<次数差=x256の計算式> …(14)
r'31 = r31 EOR r30 EOR r28 EOR r26 EOR r25 EOR r24 EOR r23 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7
r'30 = r29 EOR r28 EOR r27 EOR r26 EOR r22 EOR r14 EOR r6
r'29 = r28 EOR r27 EOR r26 EOR r25 EOR r21 EOR r13 EOR r5
r'28 = r27 EOR r26 EOR r25 EOR r24 EOR r20 EOR r12 EOR r4
r'27 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r19 EOR r11 EOR r3
r'26 = r31 EOR r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r18 EOR r10 EOR r2
r'25 = r31 EOR r30 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r17 EOR r9 EOR r1
r'24 = r31 EOR r30 EOR r29 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r16 EOR r8 EOR r0
r'23 = r30 EOR r29 EOR r28 EOR r27 EOR r22 EOR r21 EOR r20 EOR r19 EOR r15 EOR r7
r'22 = r29 EOR r28 EOR r27 EOR r26 EOR r21 EOR r20 EOR r19 EOR r18 EOR r14 EOR r6
r'21 = r28 EOR r27 EOR r26 EOR r25 EOR r20 EOR r19 EOR r18 EOR r17 EOR r13 EOR r5
r'20 = r27 EOR r26 EOR r25 EOR r24 EOR r19 EOR r18 EOR r17 EOR r16 EOR r12 EOR r4
r'19 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r18 EOR r17 EOR r16 EOR r15 EOR r11 EOR r3
r'18 = r31 EOR r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r17 EOR r16 EOR r15 EOR r14 EOR r10 EOR r2
r'17 = r31 EOR r30 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r16 EOR r15 EOR r14 EOR r13 EOR r9 EOR r1
r'16 = r31 EOR r30 EOR r29 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r15 EOR r14 EOR r13 EOR r12 EOR r8 EOR r0
r'15 = r30 EOR r29 EOR r28 EOR r27 EOR r22 EOR r21 EOR r20 EOR r19 EOR r14 EOR r13 EOR r12 EOR r11 EOR r7
r'14 = r29 EOR r28 EOR r27 EOR r26 EOR r21 EOR r20 EOR r19 EOR r18 EOR r13 EOR r12 EOR r11 EOR r10 EOR r6
r'13 = r28 EOR r27 EOR r26 EOR r25 EOR r20 EOR r19 EOR r18 EOR r17 EOR r12 EOR r11 EOR r10 EOR r9 EOR r5
r'12 = r27 EOR r26 EOR r25 EOR r24 EOR r19 EOR r18 EOR r17 EOR r16 EOR r11 EOR r10 EOR r9 EOR r8 EOR r4
r'11 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r18 EOR r17 EOR r16 EOR r15 EOR r10 EOR r9 EOR r8 EOR r7 EOR r3
r'10 = r31 EOR r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r17 EOR r16 EOR r15 EOR r14 EOR r9 EOR r8 EOR r7 EOR r6 EOR r2
r'9 = r31 EOR r30 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r16 EOR r15 EOR r14 EOR r13 EOR r8 EOR r7 EOR r6 EOR r5 EOR r1
r'8 = r31 EOR r30 EOR r29 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r15 EOR r14 EOR r13 EOR r12 EOR r7 EOR r6 EOR r5 EOR r4 EOR r0
r'7 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r22 EOR r21 EOR r20 EOR r19 EOR r14 EOR r13 EOR r12 EOR r11 EOR r6 EOR r5 EOR r4 EOR r3
r'6 = r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r21 EOR r20 EOR r19 EOR r18 EOR r13 EOR r12 EOR r11 EOR r10 EOR r5 EOR r4 EOR r3 EOR r2
r'5 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r20 EOR r19 EOR r18 EOR r17 EOR r12 EOR r11 EOR r10 EOR r9 EOR r4 EOR r3 EOR r2 EOR r1
r'4 = r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r19 EOR r18 EOR r17 EOR r16 EOR r11 EOR r10 EOR r9 EOR r8 EOR r3 EOR r2 EOR r1 EOR r0
r'3 = r30 EOR r29 EOR r28 EOR r27 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r2 EOR r1 EOR r0
r'2 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r1 EOR r0
r'1 = r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r0
r'0 = r31 EOR r29 EOR r27 EOR r26 EOR r25 EOR r24 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8
<次数差=x1376の計算式> …(15)
r'31 = r31 EOR r30 EOR r28 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19
r'30 = r29 EOR r28 EOR r27 EOR r26 EOR r18
r'29 = r28 EOR r27 EOR r26 EOR r25 EOR r17
r'28 = r27 EOR r26 EOR r25 EOR r24 EOR r16
r'27 = r26 EOR r25 EOR r24 EOR r23 EOR r15
r'26 = r25 EOR r24 EOR r23 EOR r22 EOR r14
r'25 = r24 EOR r23 EOR r22 EOR r21 EOR r13
r'24 = r23 EOR r22 EOR r21 EOR r20 EOR r12
r'23 = r22 EOR r21 EOR r20 EOR r19 EOR r11
r'22 = r21 EOR r20 EOR r19 EOR r18 EOR r10
r'21 = r20 EOR r19 EOR r18 EOR r17 EOR r9
r'20 = r19 EOR r18 EOR r17 EOR r16 EOR r8
r'19 = r18 EOR r17 EOR r16 EOR r15 EOR r7
r'18 = r17 EOR r16 EOR r15 EOR r14 EOR r6
r'17 = r16 EOR r15 EOR r14 EOR r13 EOR r5
r'16 = r15 EOR r14 EOR r13 EOR r12 EOR r4
r'15 = r31 EOR r14 EOR r13 EOR r12 EOR r11 EOR r3
r'14 = r31 EOR r30 EOR r13 EOR r12 EOR r11 EOR r10 EOR r2
r'13 = r31 EOR r30 EOR r29 EOR r12 EOR r11 EOR r10 EOR r9 EOR r1
r'12 = r31 EOR r30 EOR r29 EOR r28 EOR r11 EOR r10 EOR r9 EOR r8 EOR r0
r'11 = r30 EOR r29 EOR r28 EOR r27 EOR r10 EOR r9 EOR r8 EOR r7
r'10 = r29 EOR r28 EOR r27 EOR r26 EOR r9 EOR r8 EOR r7 EOR r6
r'9 = r28 EOR r27 EOR r26 EOR r25 EOR r8 EOR r7 EOR r6 EOR r5
r'8 = r27 EOR r26 EOR r25 EOR r24 EOR r7 EOR r6 EOR r5 EOR r4
r'7 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r6 EOR r5 EOR r4 EOR r3
r'6 = r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r5 EOR r4 EOR r3 EOR r2
r'5 = r31 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r4 EOR r3 EOR r2 EOR r1
r'4 = r30 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r3 EOR r2 EOR r1 EOR r0
r'3 = r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r2 EOR r1 EOR r0
r'2 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r1 EOR r0
r'1 = r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r0
r'0 = r31 EOR r29 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20
上述した(12)〜(15)式の計算式を演算する回路を予め用意しておけば、データが入力されるたびに(11)式を用いて計算する必要がなくなり、EDC値を高速に計算することができる。
図15はEDC計算回路11の内部構成の一例を示すブロック図である。図15のEDC計算回路11は、上述した(12)〜(15)式の計算を行う回路を予め用意する点に特徴がある。
図15のEDC計算回路11は、上述した次数差X1の累積加算を行う第1の累積加算器31と、第1の累積加算器31の累積加算値を一時的に格納するフリップフロップ(FF)32と、次数差X1376の累積加算を行う第2の累積加算器33と、第2の累積加算器33の累積加算値を一時的に格納するフリップフロップ(FF)34と、次数差X256またはX96の累積加算を行う第3の累積加算器35と、セクタごとに累積加算値を一時的に格納するフリップフロップ(FF)36と、セクタ選択器37とを有する。
第1の累積加算器31は、上記(12)式の計算を行うX計算器41と、X計算器41の計算結果とデスクランブル後のデータとの排他的論理和を計算するEOR演算器42とを有する。第2の累積加算器33は、上記(15)式の計算を行うX1376計算器43と、X1376計算器43の計算結果と第1の累積加算器31の累積加算値との排他的論理和を計算するEOR演算器44とを有する。
第3の累積加算器35は、上記(13)式の計算を行うX96計算器45と、上記(14)式の計算を行うX256計算器46と、X96計算器45およびX256計算器46の計算結果のいずれか一方を選択するスイッチ47と、このスイッチ47で選択した計算結果と第2の累積加算器33の累積加算値との排他的論理和を演算するEOR演算器48とを有する。
図16〜図20は図15のEDC計算回路11の動作タイミング図である。以下、これらの動作タイミング図を用いて図15のEDC計算回路11の動作を説明する。
図16は第1の部分ブロック内の先頭行と2行目のEDC計算処理の動作タイミング図である。時刻t1で処理が開始され、デスクランブル後の先頭行のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
時刻t2になると、クロック4が第2の累積加算器33に供給されて、第2の累積加算器33が一度だけ累積加算を行う。
その後、第1の部分ブロック内の2行目のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
図17は第1の部分ブロック内の12行目と13行目(第1セクタの最終行と第2セクタの先頭行)のEDC計算処理の動作タイミング図である。時刻t4になった後に、第1の部分ブロック内の12行目のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
時刻t5になると、クロック4が第2の累積加算器33に供給されて、第2の累積加算器33が一度だけ累積加算を行う。
その後、時刻t6になると、クロック5がセクタ1のFF36に供給されて、第2の累積加算器33から出力された今までの累積加算値がセクタ1のFF36に格納される。このFF36には、セクタ1の累積加算値が格納される。
時刻t6〜t7の間は、第1の部分ブロックの13行目、すなわちセクタ2の先頭行のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
図18は第2の部分ブロック内の24行目と25行目(セクタ2の最終行とセクタ3の先頭行)のEDC計算処理の動作タイミング図である。時刻t8〜t9の間は、第1の部分ブロック内の24行目のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
時刻t9になると、クロック4が第2の累積加算器33に供給されて、第2の累積加算器33が一度だけ累積加算を行う。
その後、時刻t10になると、クロック6がセクタ2のFF36に供給されて、第2の累積加算器33から出力された今までの累積加算値がセクタ2のFF36に格納される。このFF36には、セクタ2の累積加算値が格納される。
時刻t10〜t11の間は、第1の部分ブロックの25行目、すなわちセクタ3の先頭行のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
図19は第1の部分ブロック内の192行目(最終行)と第2の部分ブロックの先頭行のEDC計算処理の動作タイミング図である。時刻t12〜t13の間は、第1の部分ブロックの最終行のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
時刻t13になると、クロック4が第2の累積加算器33に供給されて、第2の累積加算器33が一度だけ累積加算を行う。
その後、時刻t14になると、クロック20がセクタ16のFF36に供給されて、第2の累積加算器33から出力された今までの累積加算値がセクタ16のFFに格納される。このFF36には、セクタ16の累積加算値が格納される。
時刻t14〜t15の間は、第2の部分ブロックの先頭行のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
図20は第5の部分ブロック内の最終行と第6の部分ブロックの第1および第2行のEDC計算処理の動作タイミング図である。時刻t16〜t17の間は、第5の部分ブロックの最終行のバイトデータが順にクロック3に同期して第1の累積加算器31に取り込まれて、累積加算値が計算される。
時刻t17になると、クロック4が第2の累積加算器33に供給され、第2の累積加算器33が一度だけ累積加算を行う。
その後、時刻t18になると、クロック20がセクタ16のFFに供給されて、第5の累積加算器から出力された今までの累積加算値がFFに格納される。このFFには、セクタ16の累積加算値が格納される。
その後、時刻t19では、第6の部分ブロックの先頭行の累積加算値を第2の累積加算器33で演算し、時刻t20では、第6の部分ブロックの2行目の累積加算値を第2の累積加算器33で演算する。
図15のEDC計算回路11に入力されるデータは、図1に示すようにセクタごとにEDCを含んでいるため、正常にEDC処理が行われた場合には、図15のEDC計算回路11の出力はゼロになる。したがって、出力がゼロか否かで、EDC計算処理が正常に行われたか否かを迅速に判断できる。
このように、EDC計算回路11は、第1〜第3の累積加算器35を設けて、部分ブロック内のデータ位置により、所望の累積加算器を選択するため、部分ブロック内のデータが部分的に不連続であっても、EDCを迅速に計算でき、EDC計算処理の高速化が図れる。
(第2の実施形態)
上述した第1の実施形態では、DVDに記録されたデータを再生する際のデスクランブル処理とEDC計算処理について説明したが、本発明は、DVDにデータを記録する際のスクランブル処理とEDC計算処理にも適用可能である。
データ記録時のスクランブル処理を行うスクランブル回路は図11と同様の回路で構成され、データ記録時のEDC計算処理を行うEDC計算回路は図15と同様の回路で構成される。より具体的には、スクランブル回路を構成する場合には、図11の回路にスクランブル前のデータを入力する。
データ記録時のスクランブル回路とEDC計算回路は並列動作が可能である。EDC計算回路で計算されたEDCは、スクランブル回路で計算されたスクランブルデータにセクタごとに付加される。
このように、データ記録に用いるスクランブル回路とEDC計算回路においても、不連続データを有する部分ブロック単位でスクランブル処理とEDC計算を高速に行うことができる。
1セクタのデータフォーマットを示す図。 ECCブロックのデータフォーマットを示す図。 PO符号をデータ12行に対して1行ずつインターリーブして配置する例を示す図。 物理セクタのデータフォーマットを示す図。 本発明の第1の実施形態に係る光ディスク再生装置の概略構成を示すブロック図。 部分ブロックデータの一例を示す図。 第1の実施形態におけるエラー訂正の動作タイミング図。 図7の時刻t2〜t3の間に行われるPO系列のエラー訂正処理の詳細な動作タイミング図。 生成多項式の一例を示す図。 各ECCブロック内の第1〜第6の部分ブロックの詳細構成を示す図。 デスクランブル回路10の内部構成の一例を示すブロック図。 第1の部分ブロック内の先頭行と2行目のデスクランブル処理の動作タイミング図。 第1の部分ブロックの最終行と第2の部分ブロックの先頭行のデスクランブル処理の動作タイミング図。 第5の部分ブロックの最終行と第6の部分ブロック内の最終行のデスクランブル処理の動作タイミング図。 EDC計算回路11の内部構成の一例を示すブロック図。 第1の部分ブロック内の先頭行と2行目のEDC計算処理の動作タイミング図。 第1セクタの最終行と第2セクタの先頭行のEDC計算処理の動作タイミング図。 セクタ2の最終行とセクタ3の先頭行のEDC計算処理の動作タイミング図。 第1の部分ブロック内の192行目と第2の部分ブロックの先頭行のEDC計算処理の動作タイミング図。 第5の部分ブロック内の最終行と第6の部分ブロックの第1および第2行のEDC計算処理の動作タイミング図。
符号の説明
1 ディスクモータ
2 ピックアップ
3 サーボ処理部
4 システムコントローラ
5 メモリコントローラ
6 メモリ
7 復調部
8 エラー訂正部
9 訂正バッファ
10 デスクランブル回路
11 EDC計算回路
12 ホストI/F部
13 ホストコンピュータ
21 第1のスクランブル値生成部
22 第2のスクランブル値生成部
23 第3のスクランブル値生成部
24 第4のスクランブル値生成部
25 第5のスクランブル値生成部
26,27,31,34,36 フリップフロップ(FF)
28 EOR演算器
31 第1の累積加算器
33 第2の累積加算器
35 第3の累積加算器
37 セクタ選択器

Claims (5)

  1. 所定の生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて8ビット単位でそれぞれ異なる回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する3つ以上のスクランブル値生成手段と、
    スクランブルされた部分的に不連続の入力データを、前記3つ以上のスクランブル値生成手段により生成されたスクランブル値を用いてデスクランブルするデスクランブル手段と、を備えることを特徴とするデスクランブル回路。
  2. 前記部分的に不連続の入力データは、列方向にL(Lは1以上の整数)バイト行方向にK(Kは1以上の整数)個の部分ブロックを単位として、列方向に複数個の部分ブロックに分類されており、
    前記スクランブル値生成手段は、個々の前記部分ブロックごとに、対応する部分ブロック内の各入力データについて前記スクランブル値を順に生成し、
    前記デスクランブル手段は、個々の前記部分ブロックごとに、前記スクランブル値生成手段で生成された前記スクランブル値を用いて、対応する部分ブロック内の入力データをデスクランブルすることを特徴とする請求項1に記載のデスクランブル回路。
  3. 前記スクランブル値生成手段は、
    前記生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて8ビット単位で1回シフトさせた状態の計算式により新たなスクランブル値を生成する第1のスクランブル値生成部と、
    前記生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて8ビット単位で、前記部分ブロックの1行分に対応する回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する第2のスクランブル値生成部と、
    前記生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて8ビット単位で、隣接する前記部分ブロックに対応する回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する第3のスクランブル値生成部と、を有することを特徴とする請求項2に記載のデスクランブル回路。
  4. 第1の入力値にそれぞれ異なる次数を掛け合わせた値と第2の入力値との排他的論理和を次回の前記第1の入力値とする3つ以上の累積加算器と、
    デスクランブルされた部分的に不連続の入力データに対して、前記3つ以上の累積加算器を用いてエラー検出コードを計算するEDC計算手段と、を備えることを特徴とするエラー検出コード計算回路。
  5. 前記部分的に不連続の入力データは、列方向にL(Lは1以上の整数)バイト行方向にK(Kは1以上の整数)個からなるセクタを列方向にp(pは1以上の整数)個並べた部分ブロックを単位として、列方向に複数個の部分ブロックに分類されており、
    前記EDC計算手段は、個々の前記部分ブロックの行単位で累積加算を行って得られた値を、個々の前記部分ブロック単位で累積加算して、前記セクタ単位で前記エラー検出コードを計算することを特徴とする請求項4に記載のエラー検出コード計算回路。
JP2007215049A 2007-08-21 2007-08-21 デスクランブル回路及びエラー検出コード計算回路 Pending JP2009048713A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007215049A JP2009048713A (ja) 2007-08-21 2007-08-21 デスクランブル回路及びエラー検出コード計算回路
US12/195,582 US20090052658A1 (en) 2007-08-21 2008-08-21 Descrambling circuit, error detection code calculating circuit and scrambling circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007215049A JP2009048713A (ja) 2007-08-21 2007-08-21 デスクランブル回路及びエラー検出コード計算回路

Publications (1)

Publication Number Publication Date
JP2009048713A true JP2009048713A (ja) 2009-03-05

Family

ID=40382167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007215049A Pending JP2009048713A (ja) 2007-08-21 2007-08-21 デスクランブル回路及びエラー検出コード計算回路

Country Status (2)

Country Link
US (1) US20090052658A1 (ja)
JP (1) JP2009048713A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4930251B2 (ja) * 2007-07-31 2012-05-16 富士通セミコンダクター株式会社 誤り訂正装置及びデスクランブル回路
US9336401B2 (en) 2014-01-20 2016-05-10 International Business Machines Corporation Implementing enhanced security with storing data in DRAMs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155836A (ja) * 2004-12-01 2006-06-15 Nec Electronics Corp スクランブル回路、デ・スクランブル回路及び方法、並びにディスク装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901127A (en) * 1995-06-30 1999-05-04 Sony Corporation Data recording method and apparatus, data record medium and data reproducing method and apparatus
JP3566007B2 (ja) * 1996-11-12 2004-09-15 富士通株式会社 デスクランブル回路、スクランブルパターン生成回路及びスクランブルパターン生成方法
US7155015B2 (en) * 2000-08-08 2006-12-26 Hitachi, Ltd. Optical disk apparatus and data randomizing method using for optical disk apparatus
JP4620541B2 (ja) * 2005-08-04 2011-01-26 ルネサスエレクトロニクス株式会社 誤り検出符号算出回路、誤り検出符号算出方法及び記録装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155836A (ja) * 2004-12-01 2006-06-15 Nec Electronics Corp スクランブル回路、デ・スクランブル回路及び方法、並びにディスク装置

Also Published As

Publication number Publication date
US20090052658A1 (en) 2009-02-26

Similar Documents

Publication Publication Date Title
US6003151A (en) Error correction and detection system for mass storage controller
KR930003997B1 (ko) 에러 정정부호의 복호방법 및 복호장치
US7530009B2 (en) Data storage method and data storage device
JP2004348824A (ja) Eccエンコード方法、eccエンコード装置
KR100685360B1 (ko) 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치
JP4620541B2 (ja) 誤り検出符号算出回路、誤り検出符号算出方法及び記録装置
US7607074B2 (en) Error detecting code addition circuit, error detection circuit and method, and disc apparatus
KR100654111B1 (ko) 스크램블러, 디스크램블러 및 방법, 및 디스크 장치
JP2000165259A (ja) データ復号処理装置および方法
CN101256803B (zh) 错误校正设备和记录及再现设备
JP2009037656A (ja) 誤り訂正装置及びデスクランブル回路
JP2009048713A (ja) デスクランブル回路及びエラー検出コード計算回路
JP2004206798A (ja) 光ディスク装置のエンコードデータ符号回路
JP2008146828A (ja) 光ディスク装置のエンコードデータ符号回路
JP2001292066A (ja) 誤り訂正装置および誤り訂正方法
US20050055622A1 (en) Device and method for generating error correction code
JP3773740B2 (ja) 復号装置
US7334180B2 (en) Optical encoding method
JP3774423B2 (ja) メモリ
KR100215807B1 (ko) 디지탈 신호의 에러 정정 장치 및 방법
JP3543577B2 (ja) エラー訂正回路及び電子機器
JP2004310858A (ja) データ記録方法およびデータ記録装置
GB2324445A (en) Optical disc error detection/correction during readout
JPS6187279A (ja) 復号回路
JP2003308654A (ja) 光ディスク装置と、それを用いるデータ記録システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100427