CN100570730C - 误差检测码计算电路、误差检测码计算方法以及记录设备 - Google Patents

误差检测码计算电路、误差检测码计算方法以及记录设备 Download PDF

Info

Publication number
CN100570730C
CN100570730C CNB2006101084599A CN200610108459A CN100570730C CN 100570730 C CN100570730 C CN 100570730C CN B2006101084599 A CNB2006101084599 A CN B2006101084599A CN 200610108459 A CN200610108459 A CN 200610108459A CN 100570730 C CN100570730 C CN 100570730C
Authority
CN
China
Prior art keywords
data
user data
error detection
code
edc
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.)
Active
Application number
CNB2006101084599A
Other languages
English (en)
Other versions
CN1909100A (zh
Inventor
有山刚生
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.)
Renesas Electronics Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of CN1909100A publication Critical patent/CN1909100A/zh
Application granted granted Critical
Publication of CN100570730C publication Critical patent/CN100570730C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • 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/11Error 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 using multiple parity bits
    • 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/17Burst error correction, e.g. error trapping, Fire 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1267Address data
    • G11B2020/1271Address data the address data being stored in a subcode, e.g. in the Q channel of a CD
    • G11B2020/1272Burst indicator subcode [BIS]

Abstract

本发明涉及提高在光盘上记录数据速度的一种误差检测码计算电路、误差检测码计算方法以及记录设备。该记录设备将EDC添加给用户数据并将添加了EDC的数据按不同于编码方向Q的顺序传送到加扰器。虽然该处理数据沿方向Q添加在末端,但是它还按不同顺序插在中间。因此,为了按不同顺序传送添加了EDC的数据,该EDC发生器由偶数扇区的后部分的期望值来计算EDC中间值。接着,该EDC发生器按所述不同的序列接收用户数据并从偶数扇区的前一半和奇数扇区的期望值以及EDC中间值中计算EDC。该期望值为代码串的误差检测值,而该代码串具有与添加了EDC的数据相同的位数,并且沿方向Q顺序的相应位为1,其他位为0。

Description

误差检测码计算电路、误差检测码计算方法以及记录设备
引用编入
2006年3月3日提交的美国专利申请第11/366,629号所公开的内容,其中包括说明书、附图和摘要,在整体上通过参考在此并入本文。
技术领域
本发明涉及提高在光盘上记录数据速度的一种误差检测码计算电路、误差检测码计算方法以及记录设备。
背景技术
已经开发出了如下的光盘:诸如CD、CD-R/RW和CD-ROM的所谓第一代光盘以及诸如数字通用盘(DVD)的第二代光盘,所谓的第三代光盘,即蓝光盘(Blu-ray disc),其具有更短的光源波长405nm(蓝紫光)。除了缩短光源波长以外,还通过将物镜的数值孔径(NA)增加至0.85,以将射束点区域(beam spot area)缩小至DVD的大约五分之一,从而使得该蓝光盘以五倍于DVD的记录密度来读取和写入记录标记。另外,蓝光盘具有相变记录层,该相位变化记录层覆有0.1mm厚的透明覆盖层并被置于盘衬底上,因此降低了由于盘与激光的相对倾角而引起的偏差(参看2003年10月7日的Nikkei Electronics Books中的“Next generation optical disc(下一代光盘)”)。
下面按标准的方式来详细说明蓝光盘的数据结构。图29为描述蓝光盘的数据结构的图示。按照蓝光(Blu-ray)标准,以记录单元块(RUB)302(这里也被称为簇)为单位把记录数据记录到盘301上。该RUB 302由用于数据重写的缓冲字段或间隙字段run-in 303和run-out 305以及被置于这些字段之间的物理簇304构成。该run-in 303由2760个信道位(cbs)组成,该run-out 305由1104个cbs组成。该物理簇由1932cbs*496帧=958272cbs组成。该run-in 303和run-out 305合计达两个帧或记录帧的信道位长度,这将在后面描述。该物理簇304由突发包含用户数据、盘地址信息等的突发(burst)指示符子码(BIS)组成。
该物理簇304由496个记录帧306组成。帧同步(frame sync)被置于每个记录帧306的开始。这样,构成物理簇304的496个帧(记录帧306),以及run-in 303和run-out 305的两个帧,合计498个帧,形成了一个RUB 302。
该记录帧306由1932个cbs组成,并通过1-7PP(奇偶保存/禁止RMTR)码进行调制。接着对其进行解调,并从解调后的数据中删除数字和值(Digital sum value,DSV)控制(dc-控制)位,从而生成ECC簇。
图30是表现ECC簇的图。一个ECC簇401由496个帧构成,其中包括用户数据402,ECC奇偶校验404和BIS 403。提取出用户数据402和ECC奇偶校验404形成了长距离符号(LDC)簇,并且496帧中的64帧形成了ECC奇偶校验404。提取出该BIS 403形成了BIS簇。
该BIS簇包含盘的地址信息。该BIS簇的地址信息(9个字节)被分配给每个具有31帧的地址单元,该地址单元是通过将496个帧的ECC簇分为16个段而形成的。该BIS由3帧9个字节组成,其中每帧3个字节,地址包括在最先的4个字节中。这样,获取每个地址单元的最先2个字节就获得了每个地址单元的地址信息(地址单元号)。当被去交错时,该BIS簇变为被称作BIS块的格式。当被去交错时,该LDC簇也变成被称作LDC块的格式。
图31是表示LDC块501的图。通过对数据进行去交错来生成该LDC块,其中该数据是通过从图30中所示的ECC簇中提取用户数据402和ECC奇偶校验404而得到的,并且在水平方向上具有152个字节(一帧)以及在垂直方向上具有496帧。分两个阶段来进行所述去交错处理。首先,该处理按每2帧3个字节来增加偏移量,并在图中沿右侧方向循环移位(rotation)。该处理接着在奇数帧的每个字节之间插入偶数帧的每个字节,从而生成数据,该数据在水平方向上具有304个字节(一帧),这是去交错之前数据的双倍,并在垂直方向上具有248帧,这是去交错之前的一半。
在图31中,LDC块501中除了ECC奇偶校验503之外的部分为数据块502。一个数据块由Sec 0至Sec 31共32个扇区组成。一个扇区包括2052个字节,其中包括2048个字节的用户数据504和4个字节的误差检测码(EDC)505。如果数据记录顺序的方向是记录帧方向P,并且作为用户数据的方向是用户数据方向Q,则记录帧方向P为图上的水平方向(行方向),用户数据方向Q为图上的垂直方向(列方向)。这样,该数据记录顺序与用户数据顺序不同。
一个扇区具有用户数据列(sequence),每个列包括216个字节,它们按折返结构沿用户数据方向Q排列。这样,在用户数据504中,每个列(216个字节)都沿记录帧方向P排列。因此,一个2052个字节的扇区Sec沿用户数据方向Q具有九个半序列。由于4个字节的EDC505被置于每个扇区Sec中的2048个字节的用户数据504的末端,如果第一扇区的扇区号是0(Sec 0),则偶数扇区中的EDC 505被置于沿用户数据方向Q的一个列的中间。
图32是示出用于从用户数据和地址信息中生成RUB的每个数据的编码顺序的图。LDC簇和BIS簇被单独生成。按照如下方式生成LDC簇D6。首先,步骤SP1把EDC增加到用户数据D1,以生成数据帧D2。对每个扇区Sec执行这种EDC增加,并且通过沿用户数据方向Q顺序地在具有2048个字节的用户数据和4个字节0数据的扇区执行预定的运算来得到增加了EDC的2052个字节的扇区。
接着,步骤SP2对已经增加了EDC的EDC增加数据(数据帧)D2执行加扰(scrambling),以生成加扰数据(加扰数据帧)D3。该加扰对一个具有2052个字节的扇区的数据进行预定的算术运算,该扇区在用户数据方向Q上被增加了EDC。之后,步骤SP3对加扰数据D3的行和列进行重新排列,以生成数据块D4。接着,步骤SP4将ECC奇偶校验增加给数据块D4,以生成LDC块D5。最后,步骤SP5对该LDC块D5进行如上所述的交错,从而生成LDC簇D6。
另一方面,按照如下方式生成BIS簇D11。首先,步骤SP6对用户控制数据D8进行交错,并且步骤SP7把ECC增加到地址单元号D7并对数据进行交错,以从这些数据中生成存取块D9。接着,步骤SP8将BIS ECC增加给存取块D9,以生成BIS块D10。最后,步骤SP9对该BIS块D10进行交错,从而生成BIS簇D11。
之后,步骤SP10将LDC簇D6和BIS簇D11组合在一块,以生成ECC簇D12。步骤SP11把同步信号(帧同步)和DSV控制位增加到该ECC簇D12,以生成物理簇D13。接着,步骤SP12把run-in和run-out增加到该物理簇D13并进行17PP调制,从而生成RUB D14,该RUB D14包括495个记录帧D143,连同run-in D141和run-out D142,它们被置于记录帧的首部和末端。
日本未审专利申请公开No.2004-192749中公开了一种用于蓝光盘的重放设备,其中该蓝光盘按照上述方式被格式化。图33是示出其中描述的传统重放设备的方框图。在记录和重放运算期间,由主轴马达752驱动盘701以恒定线速度(CLV)进行旋转。接着,光学拾取头(光学头)751对盘701上的数据进行记录或重放。
该光学拾取头751包括用作激光源的激光二极管,用于检测反射光的光检测器,以及用作激光输出端的物镜,以生成一个光学系统,该光学系统将激光穿过物镜照射在盘记录表面并引导反射光至光检测器,尽管未示出。该光学拾取头751可以通过螺纹机构753在盘半径方向上移动。该激光二极管输出波长为405nm的蓝激光。光学系统的NA为0.85,并且通过来自激光驱动器763的驱动信号(驱动电流)来控制激光发射。来自盘701的反射光信息被光检测器检测到,并根据检测到的光强度转换为电信号,并接着被提供给矩阵电路754。
该矩阵电路754包括电流-电压转换器和矩阵运算/放大电路,其对应于来自作为光检测器的多个光接收装置的输出电流,并通过矩阵运算生成所需的信号。例如,生成对应于重放数据(重放数据信号)的高频信号、用于伺服控制的焦点误差信号、跟踪误差信号、有关摆动沟槽(wobbling groove)的推挽信号等。
从矩阵电路754输出的重放数据信号被提供给读/写电路(RW电路)755,该焦点误差信号以及跟踪误差信号被提供给伺服电路761,并且表示摆动沟槽的检测信息的推挽信号被提供给摆动电路758。
当盘701为可重写盘时,从矩阵电路754输出有关摆动沟槽的推挽信号,并由摆动电路758对其进行处理。该摆动电路758对表示ADIP信息的推挽信号进行MSK解调和HMW解调,从而将该信号解调为构成ADIP地址的数据流,并将该数据流提供给地址解码器759。该地址解码器759通过使用从摆动电路758提供的摆动信号的PLL处理产生时钟,并将其提供给每个部件,作为例如进行记录的编码时钟。
在记录中,记录数据从AV系统720发出,并被发送至ECC/加扰电路757中的存储器,用于进行缓冲。在这种情况下,该ECC/加扰电路757执行处理,例如添加纠错码,加扰和添加子码,以此对所缓冲的记录数据进行编码。ECC编码和ECC解码为对应于ECC格式的处理,该ECC格式使用Reed Solomon(RS)码,其中RS(248,216,33),码长248,数据216,以及距离33。经ECC编码和加扰之后的数据接着由调制/解调电路756按RLL(1-7)PP体制来调制,并被提供给读/写电路755。在记录期间用作编码处理参考时钟的编码时钟是由上述的摆动信号生成的。
该读/写电路755执行记录补偿处理,例如对于记录层的最佳记录功率的微调,激光的光点形状(spot shape),记录线速度等,以及根据通过编码处理生成的记录数据来调整激光驱动脉冲波形。该记录数据接着被发送至激光驱动器763,作为激光驱动脉冲。该激光驱动器763将激光驱动脉冲施加到光学拾取头751中的激光二极管,以驱动该激光发射。因此在盘701上形成对应于该记录数据的凹坑(相变标记)。
主轴伺服电路762控制主轴马达752进行CLV旋转。该主轴伺服电路762获取通过对摆动信号进行PLL处理而生成的时钟脉冲作为主轴马达752的当前转速信息,并将其与预定的CLV参考速度信息进行比较,从而生成主轴误差信号。
由微机构成的系统控制器760控制上述的伺服系统以及记录和重放系统的运算。该系统控制器760根据来自AV系统720的命令进行各种运算。例如,如果该AV系统720输出一个写命令,则该系统控制器760首先将光学拾取头751移至要待写入数据的地址。接着,该系统控制器760控制该ECC/加扰电路757和调制/解调电路756,从而对从AV系统720传送的数据执行上述的编码处理,其中该数据为各种格式的视频数据,例如MPEG2以及音频数据。接着,来自读/写电路755的激光驱动脉冲被提供给激光驱动器763,从而实施记录。在记录或重放数据中,系统控制器260通过使用由地址解码器759检测到的ADIP或包含在BIS中的地址来控制存取或记录以及重放运算。
在日本未审专利申请公开2004-192749中披露的上述技术的目的就是提供ROM介质等,其中该ROM介质等具有更强的RAM兼容性,并且通过采用与主数据(用户数据)相同的处理对蓝光盘的链接数据(run-in和run-out)进行加扰来利用跟踪伺服。
在具有上述格式的蓝光盘中,在盘上记录数据的方向是所述记录帧方向P,因此需要按照方向P的次序对数据进行调制。这样,就需要至少在调制之前把数据列从用户数据方向Q重新排列至记录帧方向P。
如图31中所示,上述的EDC 505被加在每个扇区的末端。这样,在偶数扇区中,EDC 505被置于用户数据方向Q上具有216个字节的一个数据行的中间。因此,当沿记录帧方向P传送添加有EDC的数据时,例如,该EDC在所有用户数据被传送至偶数扇区之前被传送。特别地,在包括EDC 505例如D431和D107的行之后定位的行的用户数据被传送之前传送需要增加的EDC 505。但是,因为通过对一个扇区的所有用户数据进行预定运算才能得到EDC 505,因此一般情况下不可能在扇区中缺少用户数据的情况下计算EDC 505。
因此,需要沿用户数据方向Q一次读出所有数据并事先确定EDC。但是,该处理要求沿记录顺序输出数据时再次读出该用户数据,而这有碍于高速记录。
上述处理需要存取该数据缓冲器至少两次:一次是用于EDC计算,一次是用于重新排列数据至记录顺序。对于产生误差检测码的数据缓冲器存取会降低存储器对于数据缓冲器的存取的吞吐量。
发明内容
根据本发明的一个方面,提供了一种误差检测码计算电路,该误差检测码计算电路计算一个误差检测码,用于检测具有第一顺序的用户数据代码串中的误差。该电路以数据组为单位来处理数据,其中该数据组中包括两个或更多的含有用户数据代码串的扇区。每个数据组包括一个运算目标扇区,在该运算目标扇区具有这样的结构,当按照所述第一顺序来读取时,该误差检测码出现在用户数据代码串的末端,并且当按照不同于所述第一顺序的顺序来读取时,该误差检测码出现在用户数据代码串的中间。该误差检测码计算电路包括第一运算部分,用于从运算目标扇区的一部分用户数据中计算误差检测码中间值;以及第二运算部分,用于从该运算目标扇区的其余部分的用户数据和该误差检测码中间值中计算误差检测码,其中,该第二运算部分计算要添加至包含在运算目标扇区中的用户数据代码串的误差检测码,所述用户数据代码串按照不同于所述第一顺序的顺序来读取。
一般地,如果待编码的数据具有运算目标部分,其中在按照不同于所述第一顺序的顺序读取数据的中途插入误差检测码(EDC)运算,则当按照该不同的顺序向所述数据添加EDC用于传送时,就需要在传送所有的用户数据代码串之前在运算目标扇区中完成误差检测码的计算。这样,在这种情况下,该处理从所有的用户数据代码串中计算误差检测码,并接着在沿该不同顺序传送该数据时把所计算的误差检测码添加至所述用户数据。
另一方面,在本发明的示例性实施例中,该第一运算部分和第二运算部分分别对运算目标扇区的一部分以及其余部分进行运算。由于在按照所述不同次序读入数据时,该第二运算部分对一部分的误差检测码进行运算,因此该第一运算(部分)不需要对整个代码串进行运算。这样,该第一运算部分仅仅存取一部分代码串,从而减少了对于数据缓冲器的存取。
因此,本发明能够提供一种误差检测码计算电路、误差检测码计算方法以及记录设备,它们能够在计算用于检测用户数据中的误差的误差检测码时减少对于数据缓冲器的存取。
本发明提供一种误差检测码计算电路,误差检测码计算方法,以及记录设备,它们能够在计算用于检测用户数据中的误差的误差检测码时减少对于数据缓冲器的存取。
附图说明
本发明的上述及其他目的、优点和特征将随着下面参照附图的说明而变得更加清晰,其中:
图1为描述蓝光盘中数据块中一个数据顺序的图;
图2为具有扇区See 0-Sec 1的区域的放大图;
图3为示出美国专利申请No.11/366,629中公开的记录设备中用于计算误差检测码的部分的图;
图4为根据该发明第一示例性实施例的盘编码装置的示意图;
图5是用于描述根据本发明示例性实施例的路径S1和路径S2的用户数据的图;
图6为示出数据块中的传送块的图;
图7为示出路径S1和S2中的数据处理时序的图;
图8是描述根据本发明示例性实施例的记录设备中计算EDC时所使用的期望值的图;
图9为描述EDC计算概念的图;
图10为示出生成期望值的方法的流程图;
图11为描述根据本发明示例性实施例的记录设备中的路径1中的处理的图;
图12为示出EDC发生器的细节的一个例子的图,其中该EDC发生器执行根据本发明示例性实施例的记录设备中的路径1中的处理;
图13为示出EDC发生器中EDC期望值发生器的一个例子的图;
图14为示出EDC发生器查阅的EDC表与初始期望值之间的关系的示意图;
图15为描述根据本发明示例性实施例的记录设备中的路径2中的处理的图;
图16为示出EDC发生器的细节的一个例子的图,其中该EDC发生器执行根据本发明示例性实施例的记录设备中的路径2中的处理;
图17为示出路径1中的EDC生成处理的流程图;
图18为示出路径2中的EDC生成处理的流程图;
图19为描述EDC标记和EDC区域标记的图;
图20为示出图18中步骤S31的细节的流程图;
图21为示出图18中步骤S35的细节的流程图;
图22为示出图18中步骤S41的细节的流程图;
图23也是示出图18中步骤S41的细节的流程图;
图24为描述更新EDC表的方法的图;
图25为示出图18中步骤S42的细节的流程图;
图26为描述更新扇区计数器的方法的图;
图27为描述本发明的一个实施例中的优点的图;
图28为示出根据该发明第二示例性实施例的盘编码装置的示意图;
图29为描述蓝光盘的数据结构的图;
图30为示出ECC簇的格式的示意图;
图31为示出LDC块的示意图;
图32为示出用于从用户数据和地址信息生成RUB的每个数据的编码过程的图;以及
图33为示出在日本未审专利申请公开No.2004-192749中描述的重放设备的方框图。
具体实施方式
下面将参照示意性实施例对本发明进行描述。本领域内的技术人员可以理解的是,使用本发明的教导可以完成许多替换实施例,并且本发明不仅仅限于为了解释的目的而说明的实施例。
下面将参照附图对本发明的一个示例性实施例进行详细描述。该示例性实施例将本发明应用于能够在光盘上进行高速记录的编码装置和记录设备上。在使用蓝光盘作为光盘的一个例子,并且如果需要的话根据蓝光标准的物理说明进行编码的情况下给出下面的说明。但是,本发明并不限于此,并且可以被用于具有不同编码次序和解码次序的其他类型的盘的记录设备等。
图1为描述包含在蓝光盘的每个数据块中的以字节为单位来排列数据顺序的图。图2为两个扇区Sec 0和Sec 1的放大图。图1和2中所示的值表示以字节为单位沿用户数据方向Q的顺序。数据块41含有304列和216行。该数据块41包括32个扇区。一个扇区由2052字节数据组成:2048字节的用户数据加上4字节EDC。
每个扇区具有304列的块数据,其中每列排列有216字节数据。如果Row表示行号(0≤Row≤215)并且Column表示列号(0≤Column≤303),在扇区0中,例如,列Column=9具有Q=1944至2051字节数据,其占据行Row=0至107。在列Column=9中行Row=108至215被下一扇区Sec1的第0至第107字节数据占据。按这种方式,数据块41的结构使得奇数扇区和偶数扇区形成一个单元,在这里被称为“区”。这样,数据按相同顺序被重复地排列在每个区的具有19列扇区对的每个区中。
在扇区Sec 0至Sec 31中,沿如图1和2中所示用户数据方向Q对用户数据执行预定运算以添加EDC。该数据被加扰,接着被调制,并被记录在盘上。在被记录时,沿图1中的箭头表示的记录帧方向P的顺序记录所述数据块,该记录帧方向P与列方向或用户数据方向Q垂直。该用户数据方向Q与用于添加误差检测码的处理顺序以及在蓝光盘中进行加扰和编码的处理顺序一致。如在后面所述,可以分别对用户数据和EDC进行加扰,然后将它们集成在一块。
如前面所述,数据沿记录帧方向P被记录在蓝光盘上。这样就需要至少在调制之前把数据顺序从用户数据方向Q(这是用于编码的处理顺序)重新排列至记录帧方向P。如果沿记录帧方向P执行编码,则无法计算EDC。由于在读取偶数扇区中的整个扇区中的所有用户数据之前添加EDC,同时根据如图1中所示的扇区中的全部用户数据确定EDC,因此在这种情况下无法生成添加了EDC的数据。
因此,如果作为用户数据顺序(通常编码序列)的用户数据方向Q以及作为在盘上记录数据顺序的记录帧方向P不同,则一般需要进行一些算术运算来计算EDC等,并事先添加所得到的EDC,接着重新排列添加了EDC的数据,从而为记录作准备。在这种情况下,通常可通过临时地将添加了EDC的数据存储在数据缓冲器中,可以对数据进行重新排列。但是,为了实现高速运算,该数据缓冲器应该由昂贵的SRAM组成,因此不实用。
为解决这个问题,根据以本发明申请人的名字提出的美国专利申请第11/366 629号(日本专利申请第2005-060364号)(下文中被称为“参考文献”),一种记录设备包括替换缓冲器,其存储器容量为每个突发传送(burst transfer)等的传送大小m×304字节×2面(用于写入和读取),ECC缓冲器(9728字节×2面),用于临时存储ECC奇偶校验,EDC缓冲器(4字节×32×2面),用于临时存储EDC代码,以及加扰缓冲器(38字节×2面)。上述参考文献中公开的发明通过临时存储通过沿用户数据方向Q编码而得到的EDC、加扰中间值和ECC的处理(路径S1’)以及把EDC添加给用户数据同时重复地从数据缓冲器突发传送用户数据并进行加扰的处理(路径S2’)就能够高速传送数据至替换缓冲器。
在上述的参考文献中公开的发明中,替换缓冲器由不需要更新的存储器构成,并且能够进行随机存取,从而能够高速地将通过突发传送从数据缓冲器中得到的连续数据重新排列为记录帧方向P上的顺序。在这种情况下,即使替换缓冲器的容量小于数据缓冲器的存储器容量,也可以对被重新排列在记录帧方向P上的数据进行加扰,其中该数据是从使用EDC、加扰中间值以及ECC的运算结果中得到的,而该EDC,加扰中间值以及ECC是在路径S1’中计算的并被存储。
因此,虽然一直无法实现高速编码,除非使用能够高速随机存取的临时存储器,例如昂贵的SRAM作为数据缓冲器,但是参考文献中公开的发明仅仅通过给相对小尺寸的电路添加使用并不适于高速随机存取的SDRAM等作为数据缓冲器,就能够以很低的成本进行高速编码。
需要将两簇的数据读入到用于编码的数据存储器并对其中的一个簇进行重新排列。为了沿记录帧方向P记录数据,需要事先沿用户数据方向Q读取一个簇(2048字节×32扇区)的数据,仅仅是为了EDC编码,而这增加了对于数据缓冲器的绝对存取并增加了功率损耗。
实现高速编码需要在高频时钟下运行的高成本数据缓冲器,而这进一步增加了功率损耗。为了解决这个问题,本发明的一个示例性实施例对偶数扇区中的数据进行如下的运算,其中,当沿用户数据方向Q读取数据时,EDC被添加在扇区的末端,而当沿不同于用户数据方向Q的次序,例如沿记录帧方向P读取扇区数据时,EDC被插在中间。特别地,根据本发明的一个示例性实施例的记录设备包括第一运算部分,用于从一部分偶数扇区中计算EDC中间值,这将在后面描述,以及第二运算部分,用于从其余部分和该EDC中间值中计算EDC,并通过两个运算部分来确定EDC。这就降低了对于数据缓冲器的存取,能够进一步的改进编码规范(encoding specification)和降低功率损耗及成本。用户数据方向Q的顺序对应于第一顺序,记录帧方向P的顺序对应于第二顺序,并且偶数扇区对应于运算目标扇区。
下面的示例性说明描述了一种记录设备,通过如下的处理来描述该记录设备:至少从上述的用户数据生成EDC并将其添加到用户数据,特别是在对蓝光盘上的用户数据进行编码时,可以将记录设备和重放设备组合在一块,以形成记录和重放设备。
为了更容易地理解本发明,这里将对在上述参考文献中公开的计算误差检测码的方法进行描述。
图3为显示在参考文献中公开的记录设备中用于计算误差检测码的部分的图。
在该参考文献中,步骤(路径1’)在根据蓝光说明的处理中确定误差检测码,并且步骤(路径2’)插入误差检测码并输出数据。路径2’中的处理顺序地沿记录帧方向P突发传送具有突发传送大小m并被排列在用户数据方向Q上的数据,添加在路径1’中计算的EDC,并输出添加了EDC的数据。
特别地,根据参考文献中公开的发明,一种记录设备包括用于存储用户数据的数据缓冲器11,缓冲器控制器12,EDC发生器13,EDC缓冲器14,以及集成部分15。在下面的例子中,用户数据按照地址升序的顺序沿用户数据方向Q排列,并从该用户数据的头数据开始被临时存储到数据缓冲器11中。该数据缓冲器11是一个用于存储从主机发送出的用户数据的存储器,并由能够进行突发传送的SDRAM等构成。该缓冲器控制器12包括通道CH1,用于读取将在路径1’中使用的用户数据,以及通道CH2,用于读取将在路径2’中使用的用户数据。
由通道CH1沿用户数据方向Q的顺序从数据缓冲器11中读出的用户数据被发送至EDC发生器13。该EDC发生器13由移位寄存器构成,当沿用户数据方向Q输入2048字节用户数据和4字节0数据(这对应于一个扇区的数据)时生成4字节EDC。所生成的EDC被存储在EDC缓冲器14中。
在路径2’中,由通道CH2,将沿用户数据方向Q从数据缓冲器11中读出的用户数据、以用户数据方向Q的顺序的突发传送大小、沿记录帧方向P顺序地传送至集成部分15。特别地,由32个扇区组成的用户数据(数据块41)、以用户数据方向Q的顺序的突发传送大小、沿记录帧方向P被重复地传送304次。在该实施例中,沿用户数据方向Q上突发传送大小m×304字节的部分被称为传送块。如果突发传送大小m为6,则在重复传送36次该传送块之后,该数据块41的传送结束。
在传送该传送块时,该集成部分15在规定的时刻从EDC 14中读出EDC,将该EDC添加给要被突发传送的用户数据,并输出该添加有EDC的数据。
该添加了EDC的数据接着被加扰和输出作为记录数据。在上面提到的参考文献中描述了该处理的细节。简要地,该处理将添加有EDC的数据存储在缓冲器(替换缓冲器)中,其中该缓冲器的存储器容量为传送块大小或更大,接着沿记录帧方向P读取数据用于输出。接着,对沿记录帧方向P排列的添加有EDC的数据进行加扰并输出加扰后的数据作为记录数据。该加扰使用加扰中间值,其中在路径1’中一块计算该加扰中间值和EDC。
在路径1’中,由集成部分15为其添加了EDC的数据接着被逐字节顺序地沿用户数据方向Q输出至加扰器。在加扰器中,在输入数据Dk的输入定时,从加扰移位寄存器中输出加扰值Sk,并且计算加扰值Sk与输入数据Dk的异或(异OR),以获得加扰后的数据Dk’。在路径1’中,记录设备将加扰移位寄存器的存储值(16位)存储在加扰缓冲器,作为加扰中间值。该16位加扰中间值被用在路径S2中,以计算沿记录帧方向P,而不是沿用户数据方向Q的加扰值,从而使得可以加扰。
进一步,参考文件中公开的发明计算加扰中间值,并接着根据该数据计算ECC。特别地,在路径1’中,除了EDC和加扰中间值以外,还计算ECC,用于路径2’。如将在后面所述,可以对从集成部分15输出的添加有EDC的数据进行加扰,并将加扰后的数据存储在替换缓冲器中,接着沿记录帧方向P输出数据作为记录数据。
根据参考文献中公开的发明,当在路径1’中计算EDC时以及当在路径2’中输出添加了EDC的数据时,该缓冲器控制器12需要从数据缓冲器11中读出一个簇的用户数据(数据块),该用户数据为2084字节×32扇区。因此,需要在路径1’和路径2’中读出全部两个数据块的用户数据。另一方面,在下面描述的本发明的示例性实施例能够减少读取的用户数据的总量,从而减少对于数据缓冲器的存取,即使当实施与参考文献中相同的两个步骤。特别地,该实施例的处理将在第一步骤中使用的用户数据减少至约四分之一。它可以根据大约四分之一的用户数据来计算EDC中间值,并接着根据其余的用户数据(大约四分之三)和该EDC中间值来计算EDC。这使得在第一步骤中对数据缓冲器的存取降至大约四分之一。该实施例因此降低了对于数据缓冲器的数据存取,以进一步改进编码规范和降低功率损耗及成本。
第一实施例
图4为根据该发明第一示例性实施例的记录设备的示意图。如图4中所示,该记录设备1包括数据缓冲器2,缓冲器控制器3,以及编码器4。该数据缓冲器2对从主机(未示出)传送的用户数据进行缓冲。所述主机可以是音频视频(AV)系统、个人计算机(PC)等,主机指示记录设备1来记录用户数据或从盘中读取数据。
该缓冲器控制器3控制从数据缓冲器2读取用户数据。该缓冲器控制器3根据需要读取用户数据并将所读取的数据传送至编码器4。为了计算EDC,该实施例的记录设备并行地执行:这样的处理(下面被称为路径1),用于从偶数扇区后半段中的数据计算EDC中间值,该后半段约为整个数据块中用户数据的四分之一;以及这样的处理(下面被称为路径2),用于从用户数据的其余四分之三及该EDC中间值中计算EDC。该缓冲器控制器3具有通道CH1,用于读取在路径1的处理中使用的用户数据,以及通道CH2,用于读取在路径2的处理中使用的用户数据,这两者都是从数据缓冲器2中读出。
该编码器4将EDC添加给用户数据,并对添加有EDC的用户数据进行加扰。该编码器4接着输出加扰后的数据(下文中被称为记录数据)以及从该记录数据中得到的ECC。该ECC和记录数据接着与BIS代码结合,通过1-7PP调制,并被记录在盘上。
该编码器4包括EDC发生器31、EDC表32以及EDC缓冲器33,用于进行路径1的处理。它进一步包括EDC发生器32,用于计算路径2中的EDC。该EDC发生器31用作第一运算部分,EDC发生器34用作第二运算部分。在路径1的处理中,EDC发生器31通过参照EDC表32和EDC缓冲器33来进行运算。路径1中在EDC发生器31中执行的运算的结果就是EDC中间值,这将在后面描述。该得到的EDC中间值被写回至EDC缓冲器33。在路径2的处理中,该EDC发生器34参照EDC表32和EDC缓冲器33计算EDC,并将得到的EDC写回至EDC缓冲器33。
该编码器4进一步包括集成部分35,用于将存储在EDC缓冲器33中的EDC添加给从通道CH2中读出的用户数据,并输出添加了EDC的数据。它进一步包括加扰器36,用于对从集成部分35输出的添加了EDC的数据进行加扰,以及加扰值发生器37,用于计算加扰器36所需的加扰值,以对数据进行加扰。该编码器4进一步包括替换缓冲器38,用于把被加扰器36加扰后的数据重新排列为沿记录帧方向P的顺序。该集成部分35、加扰器36、加扰值发生器37以及替换缓冲器38构成了加扰处理器,用于从用户数据和EDC中计算记录数据并输出所得到的记录数据。
另外,该编码器4包括ECC发生器39,用于从加扰后的数据中生成ECC,以及ECC缓冲器40,用于缓冲由ECC发生器39生成的ECC。沿记录帧方向P的顺序从替换缓冲器38中读出的数据被输出作为记录数据。该ECC缓冲器40的数据被输出作为ECC奇偶校验。该记录数据以及ECC奇偶校验被输出至未示出的集成部分,其中该记录数据被重新排列行和列,添加ECC并接着被交错(interleave),从而生成ECC簇(参看图32中的D12)。
进一步,用于生成BIS的另一种编码装置(BIS编码装置)从用户控制数据以及地址单元号(参看图32中的D7和D8)中生成存取块(参看图32中的D9),并进一步生成BISECC(参看图32中的D10)。接着,该BIS编码装置把该存取块以及BISECC提供给集成部分,以生成BIS块(参看图32中的D10)。该BIS块被交错成为BIS簇(参看图32中的D11)。接着,该BIS簇与LDC簇被组合在一起生成ECC簇(参看图32中的D12)。该ECC簇被添加上了帧同步和DSV控制位,生成了物理簇(参看图32中的D13)。接着,对该记录帧执行17PP调制并将run-in和run-out添加给它,以生成记录单元块RUB(参看图32中的D14)。之后,通过盘控制器以RUB为记录单位将数据记录到盘上。
下面将对该示例性实施例进行进一步的详细描述。该实施例在读出一个扇区的用户数据之后并没有计算EDC,而是在路径1中从大约四分之一的用户数据中计算EDC中间值,并接着在路径2中通过根据其余用户数据对该EDC中间值进行校正来计算EDC,从而把在路径1中出现的对于数据缓冲器2的存取减少至约四分之一。
图5是用于描述在根据该实施例的路径S1和路径S2中使用的用户数据的图。编码器4中的处理单位,即数据块41具有偶数扇区,其中当沿用户数据方向Q读取数据时EDC被添加在扇区的末端,而当沿不同于用户数据方向Q的顺序读取一个扇区的数据时,它被插入在中间。在该实施例的路径1中,在沿作为第一顺序的用户数据方向Q读出数据块。在路径2中,另一方面,沿作为不同于所述第一顺序的顺序的记录帧方向P上读出沿用户数据Q方向排列的各具有突发传送大小m的用户数据突发。在这种情况下,偶数号扇区是代码串(运算目标扇区),其中在传送如图5中所示的一个扇区中的全部数据之前,EDC被插入至该代码串。这样,路径1中的处理通过对在路径2中用作运算目标扇区的偶数扇区的一部分进行运算来计算EDC中间值,这是添加了EDC之后被读出的偶数扇区的后一部分。之后,路径2中的处理通过对偶数扇区的其余部分以及奇数扇区的整个部分进行运算来计算EDC。所述奇数扇区为扇区是这样的代码串(非运算目标扇区),当沿用户数据方向Q读取数据时,以及当沿作为不同于上述顺序的记录帧方向P读取突发传送大小为m并且沿用户数据方向Q的顺序排列的用户数据时,在扇区的末端添加EDC,并且因此不需要在路径1中计算EDC中间值。
虽然本实施例每次突发传送6个字节的用户数据,但是也可以按不同的顺序,例如沿记录帧方向P每次传送一个字节的用户数据。由于在该实施例中EDC为4个字节,因此偶数扇区中的EDC被置于这样一个位置:行数Row=104至107,列数Column=109。因此需要在路径2中计算被置于行Row=104和列Column=9的EDC的头字节之前对偶数扇区中的所有用户数据完成如下运算(与期望值的异或运算)。由于这个原因,路径1的处理需要对被置于行Row=105至215和列Column=0至8的用户数据进行处理。这与如下情况相同:突发传送大小小于4个字节,或者突发传送字节为4个字节或更大,以及相继地通过两个传送块来传送数据。特别地,该实施例进行路径1的处理,使得在对被置于Row=104和Column=8或Row=212和Column=18的EDC的头字节进行运算之前计算该扇区中所有用户数据的期望值的异或。后面将描述用于在数据缓冲器2中计算和指定头地址以进行突发传送的方法。
在路径1中,缓冲器控制器3的通道CH1按用户数据方向Q的顺序读出被置于偶数扇区的行Row=108至215中的数据,其中该偶数扇区包含在数据块41中作为如图5中所示的运算目标扇区的一部分,并将所读出的数据输出给EDC发生器31。特别地,顺序地传送列Column=0和行Row=108至215中的用户数据,并接着传送列Column=1和行Row=108至215中的用户数据。由于通道CH1只传送偶数扇区的用户数据,在完成传送列Column=8中的数据之后,跳过扇区1并开始传送扇区2中的用户数据,它们位于Column=19至27和Row=108至215中。重复这种传送过程,直到达到最后的偶数扇区30。该EDC发生器31对偶数扇区的后部分进行运算。
另一方面,在路径2中,缓冲器控制器3的通道CH2按照不同于通道CH1的读取顺序读出数据块41中的全部数据。特别地,通道CH2在路径2中按突发传送大小m来突发传送数据。虽然该实施例中的突发传送大小m为6个字节,但它也可以大于或小于6个字节。该突发传送大小m优选地等于或大于EDC的大小。
首先,对于沿记录帧方向P(行方向)的一个数据块,对沿用户数据方向Q(列方向)排列的6字节数据重复传送304次。在该实施例中,通过把沿用户数据方向Q的6个字节在记录帧方向P上传送304次而得到的数据被称为传送块C。图6为示出数据块中41的传送块的图。在每次执行6个字节的突发传送的情况下,为了传送一个数据块要传送36个传送块。该通道CH2将每6个字节的用户数据通过突发传送的方式提供给集成部分35,并且也将其提供给EDC发生器34。该EDC发生器34对除了已经在路径1中由EDC发生器31对其进行了运算偶数扇区的后部分以外的用户数据的其余部分的数据进行运算,运算该部分为偶数扇区的前半部分以及奇数扇区的整个部分。
下面将对根据示例性实施例的记录设备的运算概述进行描述。图7为示出路径S1和S2中的数据处理时序的图。如图7中所示,数据以1RUB为记录单位被记录在盘上。当在路径S1中处理在第t个RUB中包含的用户数据时,在路径S2中处理在第(t-1)个RUB中包含的用户数据(数据块)。由于根据路径S1的处理结果来进行路径S2的处理,因此该记录设备1能够通过并行地处理在第t个RUB和第(t-1)个RUB中包含的用户数据而以流水线的方式对RUB中包含的用户数据进行编码。路径S1的处理沿用户数据方向Q传送用户数据,路径S2的处理输出了被加扰的用户数据,作为沿记录帧方向P的记录数据。
当在路径S2中处理第(t-1)个RUB中包含的用户数据时,在路径S1中处理第t个RUB中包含的用户数据。这样,在路径S2中开始处理在第(t-1)个RUB中包含的用户数据时,已经完成了路径S1中对第(t-1)个RUB中包含的用户数据的处理。因此,在路径S2对数据进行处理之前,路径S1对至少1个RUB的数据进行了处理。
下面将描述在路径1和路径2中进行的EDC计算。路径1和2中的运算通过使用对应于用户数据方向Q顺序的规定值来计算EDC中间值或EDC。首先将描述该运算方法的原理。
在蓝光盘中,2048个字节(16384位)的用户数据加上了4个字节(32位)的误差检测码。可以通过采用下面的生成多项式除以代码串D(x)来得到32位误差检测码,其中该代码串D(x)具有添加了4字节0数据的2048字节用户数据:
G(x)=X32+X31+X4+1
如果2048字节的用户数据为I(x),则可按如下来表示误差检测码EDC(x):
EDC(x)=∑bt*Xt=I(x)modG(x)(∑:t=31至0)
其中I(x)=∑bt*Xt(∑:t=16415至32)
因此,添加了误差检测码EDC(x)的代码串D(x)被表示如下:
D(x)=I(x)+EDC(x)
其中符号“+”表示异或运算。
如图8所示,可以通过将代码串D(x)输入给32位移位寄存器来得到误差检测码EDC(x)。输入了代码串D(x)的全部符号之后的32位移位寄存器的值就是误差检测码EDC(x)(=0)。在该实施例中,沿用户数据方向Q的位顺序是q,其被表示如下:q=b00000,b00001,…,b16415,t=16415-q等。
可以通过计算Xt mod G(x)的异或来得到误差检测码EDC(x),其对应于输入代码串D(x)中具有“1”的位。Xt mod G(x)表示在k=16416位的代码串D(x)中除了第(16415-q)(=t)次位以外的位都被设置为0而得到的代码串d(x)除以G(x)之后的余式。
图9为描述上述思想的图。设k位代码串D(x)是基本代码串D’(x),其中k位都为“1”({111…1})。通过把代码串D’(x)输入至如图8所示的移位寄存器50而得到的32位移位寄存器值就是代码串D’(x)的误差检测码E’(x)。在该实施例中,代码串D’(x)包括k=2052*8=16416位。
如图9所示,基本代码串D’(x)被设置作为k个代码串d(x)t,其在这里被称为期望值计算代码串。每个期望值计算代码串d(x)16415至d(x)0都是对应于q的位为“1”而其他位都为“0”。特别地,q=b00000对应于代码串d(x)16415={100…0},其中只有最高有效位(MSB)为“1”,并且q=b00001对应于代码串d(x)16414={010…0},其中只有第二位为“1”。类似地,q=b16415对应于代码串d(x)0={000…1},其中只有最低有效位(LSB)为“1”。通过输入期望值计算代码串d(x)t给移位寄存器50,得到了32位移位寄存器值XtmodG(x)。
这样,期望值计算代码串d(x)除以作为误差检测值的G(x)之后的余式就是XtmodG(x)。XtmodG(x)在这里被称为期望值。期望值XtmodG(x)表示当只有对应于初始代码串D(x)中位顺序q的位数据为假时的伴随值。
通过将代码串D’(x)输入至移位寄存器而得到的32位移位寄存器值(误差检测串E’(x))等于通过对全部32位移位寄存器值(期望值XtmodG(x)=Rt)进行异或而得到的值,其中该32位移位寄存器值是通过将期望值计算代码串d(x)t输入至移位寄存器而得到的。
这样,就能够得到误差检测码E(x)作为全部期望值XtmodG(x)的异或,其对应于代码串D(x)中具有符号“1”的位顺序q。这样,该实施例的处理就准备了期望值计算代码串d(x),其含有与该代码串相同的位数并且具有与该代码串相同的位顺序,其中,对应于每个位顺序的位为“1”并且其他位为“0”。接着,该处理保持或计算通过将期望值计算代码串d(x)输入至移位寄存器而得到的期望值(伴随值),该处理的重复次数与代码串D(x)的位数相同,在该实施例中是k=16416。使用这些期望值可以获得输入代码串D(x)中具有位“1”的所有期望值的异或(EDC)。这样就不需要将代码串D(x)输入至移位寄存器50。通过这种方式,即使按不同于用户数据方向Q的顺序进行运算,只要对应于代码串D(x)每个位的期望值是已知的,就能够获得该代码串D(x)的误差检测码E(x)
以数据块为单位对数据进行处理。该数据块41具有32个扇区(代码串D(x)),并且为每个代码串D(x)计算误差检测值E(x)。这样,从一个数据块41中得到32个误差检测值E(x)。
下面将详细描述该期望值。如图8所示,被输入至移位寄存器50的代码串D(x)就是X,其中被输入给沿用户数据方向Q第109个字节(Q=D00108)最高有效位(q=b00864)的数据为“1”而其他位上的数据都为“0”,例如。这样,代码串X具有16416位,其中第15552次序数据为“1”(B00864=1)而其他值都为“0”。
在这种情况下,通过对移位寄存器50的值初始化为“00000001h”并对该值移位15552次就能够得到将该代码串X输入至32位移位寄存器50而得到的结果。
为了计算EDC,只需要计算数值的XtmodG(x)的异或,其中该代码串的位数据为“1”。如果得到了XtmodG(x)的异或,则也能够计算误差检测值E(x),其中该误差检测值E(x)是该代码串D(x)的32位移位寄存器值。
图10是示出生成期望值的处理的流程图。如图10所示,该处理首先将移位寄存器50初始化为0(步骤S1)。接着,准备16415位的期望值计算代码串d(x)并将该代码串d(x)输入给移位寄存器50。该处理接着对16416位重复循环移位该移位寄存器50(S3和S4)直到该32位寄存器值达到所希望的期望值(32位)(S5)。
该示例性实施例没有保持所有对应于位数据的期望值,而仅仅保存了对应于由扇区0和1组成的区域Area 0中的Row=0的共计19个期望值。在蓝光盘中,数据块具有常规结构,其中有16个数据集,当从用户数据方向Q的顺序看时,每个数据集具有一对扇区0和1并且包括19列。这样,所有的区域具有沿用户数据方向Q的相同位顺序。在路径1中,运算从Row=108开始。由于Row=108的期望值等于Row=0的期望值上的Column+10的值,可以从Row=0的19个期望值中计算出全部的期望值,而无需存储所有的期望值。因此,通过上述运算从19个期望值计算代码串中计算期望值,其中,Row=0的MSB为“1”并且其他为“0”。在该实施例中,该19个期望值被称为初始期望值。具有一对偶数扇区和奇数扇区的区域中的列号为M(0≤M≤18)。
图11为描述路径1中的处理的图。在路径1中,该EDC发生器31仅仅涉及19个期望值(初始期望值),其对应于行Row=0中的最高有效位(MSB)。这样,该EDC表32读出期望值(初始期望值),其对应于行Row=0和列M=0至18中的最高有效位b00000、…、b14688。该初始期望值被预存在例如未示出的存储器等中。仅仅通过将初始期望值输入至移位寄存器(循环移位电路),这将在后面描述,并对该数据移位一次就能够得到每个列方向(用户数据方向Q)的期望值。
该EDC发生器31生成行Row=108至215的期望值。Row=108中每个列号M的期望值对应于Row=0中每个列号M+10的期望值。这样,该EDC发生器31通过参看EDC表32来读出对应于输入用户数据的M+10的初始期望值。接着由期望值发生器(其将在后面描述)对该初始期望值进行移位运算,因此它就变成了对应于输入用户数据的每位的顺序q的期望值。接着对获得的期望值和用户数据进行异或,从而得到行Row=108至215以及列M=0至8中数据(由图11中阴影所示的数据42)的全部异或作为EDC中间值。
图12是示出EDC发生器31细节的一个例子的图。该EDC发生器31包括列计数器61,用于对输入用户数据的一个区域中的列号M进行计数,以及选择器62,用于根据列计数器61的计数值从EDC表32中选择并读出初始期望值。该EDC发生器31还包括EDC期望值发生器63,用于从初始期望值中生成对应于输入用户数据的位顺序q的期望值,选择器64,用于当用户数据为“1”时输出用户数据以及对应于用户数据的位顺序的期望值,以及XOR电路65,用于计算异或。进一步,该EDC发生器31包括扇区计数器67,用于对用户数据中的扇区进行计数,以及选择器68,用于根据扇区计数器67的计数值将XOR电路65对于每个扇区的运算结果传送给EDC缓冲器33。
图13是示出EDC期望值发生器63的一个例子的图。图14是示出EDC表与初始期望值之间的关系的示意图。该EDC期望值发生器63的结构为循环移位的32位移位寄存器,如图13所示。当从选择器62输入列号M的32位初始期望值时,其对应于从缓冲器控制器3的通道CH1提供的用户数据,该EDC期望值发生器63顺序地对该值进行移位和循环移位,从而生成对应于沿用户数据方向Q的位顺序q的期望值。
该初始期望值对应于行Row=0的最高有效位,并且对应于行Row=108的最高有效位的初始期望值就是通过把10加给行号Row=0的列号M所得到的值。这样,由选择器62读取将10加给列计数器61的计数值的对应于列号M的初始期望值,并提供给EDC期望值发生器63。
获得该EDC中间值作为期望值的异或,其对应于用户数据为“1”的位。只有当从通道CH1提供的用户数据为“1”时,该选择器64输出对应于由EDC期望值发生器63生成的用户数据的位顺序q的期望值,并且当用户数据为“0”时,选择并输出“000h”
在路径1中,EDC缓冲器33存储由EDC发生器31更新的运算结果。这样,在完成路径1的处理时,该EDC缓冲器33保持该EDC中间值。在路径2中,EDC缓冲器33存储由EDC发生器34更新的运算结果并这样最终保持EDC。该EDC缓冲器33具有存储区,用于存储每个扇区的运算结果。该数据块41由32个扇区组成,并且每个运算结果有32位;这样,该EDC缓冲器33具有32位存储区的32个扇区。路径1中,在EDC缓冲器33中,存储在对应于奇数扇区的每个存储区中的值为0。
该选择器68读出对应于由扇区计数器67从EDC缓冲器33中选择的扇区的值,并将该值提供给XOR电路65。该XOR电路65计算选择器64的输出以及选择器68的所选值的异或,并将结果提供给选择器68。该选择器68将该结果写入EDC缓冲器33中相应扇区的存储区。
因此,在完成对扇区0的用户数据的输入时,该EDC缓冲器33存储EDC中间值,该EDC中间值是通过对由图11中阴影表示的扇区0后面部分(Row=108至215以及M=0至8)的用户数据以及相应的期望值进行异或运算而得到的。
这里将描述路径2的处理。图15为描述路径2中的处理的图。如图15所示,在路径2中,缓冲器控制器3的通道CH2顺序地将行Row=0至107和列M=0至18中的用户数据以及行Row=108至215和列M=9至18中的用户数据,也即在路径1中没有处理的用户数据,提供给EDC发生器34。
通道CH2顺序地提供传送块,如上所述,该传送块为用户数据方向Q上的突发传送大小m字节×记录帧方向P上的304字节。32个扇区的用户数据被传送至集成部分35。该EDC发生器34可以只提供运算所需的数据。例如,当传送块为偶数扇区(M=0至9)时,可以提供行Row=0至107中的数据,并且当传送块为奇数扇区(M=9至18)时,可以提供所有的数据。可替换地,可以提供数据块中的所有用户数据,并且只选择运算所需的用户数据。
EDC发生器34基本上具有与EDC发生器31相同的结构。图16是示出EDC发生器34的细节的一个例子的图。如图16中所示,该EDC发生器34包括列计数器71,用于对输入用户数据的一个区域中的列号M进行计数,以及选择器72,用于根据列计数器71的计数值从EDC表32中选择并读出初始期望值。该EDC发生器34还包括EDC期望值发生器73,用于从初始期望值中生成对应于输入用户数据的位顺序q的期望值,选择器74,用于当用户数据为“1”时输出用户数据以及对应于用户数据的位顺序的期望值,以及XOR电路75,用于计算异或。进一步,该EDC发生器34包括扇区计数器77,用于对用户数据中的扇区进行计数,以及选择器78,用于根据扇区计数器77的计数值将XOR电路75对于每个扇区的运算结果传送给EDC缓冲器33。
该EDC发生器34或记录设备1具有一个计数器(下文中被称为基本行计数器),用于对用户数据的行号Row进行计数,以及一个计数器(下文中被称为突发传送行计数器),用于对突发传送大小m中的行号进行计数。在下面的说明中,由基本行计数器计数的行号(计数值)为Row(0≤Row≤215)并且由突发传送计数器计数的行号(计数值)为N(0≤N≤m-1)。该EDC发生器34进一步具有EDC标记,用于根据每个计数器的计数值来检测用户数据方向Q上第2049个字节数据的输入定时,以及EDC区域标记,用于检测从第2049到2052字节的4个字节的输入定时,两者都没有被示出。
在路径2中,在完成了一个传送块的传送之后,该传送块被顺序地传送,直到达到最后块。例如,在第一传送块之后立即被传送的传送块中的用户数据从第Row=N+1行开始。这样,当该下一个传送块被传送时,该EDC表32保持对应于第Row=N+1行的最高有效位的期望值。在生成对应于传输块的最后区域中每列中的最后位的期望值时,该值被顺序地重写在EDC表32上。这样,当完成了对于一个传送块的运算时,该EDC表32就会保持对应于下一传送块第一行的最高有效位的期望值。该选择器72将对应于输入用户数据的列号的值提供给期望值发生器73,从而能够生成下一传送块中的期望值。
然后,该XOR电路75对由路径1中的处理存储在EDC缓冲器33中的EDC中间值以及按照上述方式生成并由选择器74选择和输出的期望值进行异或运算,并将结果写回给EDC缓冲器。因此在完成对于每个扇区中的所有用户数据的异或运算时,计算出对应于每个扇区的EDC。这样,首先计算出偶数扇区中的EDC,接着计算奇数扇区中的EDC。当EDC标记变成“1”时计算EDC。由于在该实施例中突发传送大小m为6,对于被输入在第2047至第2052字节的用户数据,直到第2048字节,如果数据为“1”,如上所述,存储在EDC缓冲器33中的值被XOR电路75更新。当EDC区域标记为“1”时,这是当第2049至2052数据被顺序地沿用户数据方向Q输入的时候,该处理不使用第2049至2052字节的用户数据,而使用4字节的0数据作为输入数据进行运算。由于在这期间数据为全0数据,因此该选择器74只是简单地将0000h提供给XOR电路75,而不更新EDC缓冲器33的值。这样,如果输入第2049字节的数据,则该期望值发生器73只是简单地顺序循环移位该值,并且被存储在EDC缓冲器33中的相应扇区的数据被输出至集成部分35作为EDC。
第2049字节数据对应于该数据块中EDC的头数据的位置。这样,传送了2048字节的用户数据之后,如图4中所示的集成部分35根据通道CH2的传送顺序添加EDC。因此,需要在添加EDC头数据之前计算EDC,或者在输入对应于EDC头数据的第2049字节的数据时计算2048个字节的所有用户数据每位是“1”的期望值的异或(=EDC),以使得可输出EDC。
下面将详细说明路径1和2中的EDC生成处理。首先参照图11、12和17来描述路径1的处理。图17是示出路径1中的EDC生成处理的流程图。如上所述,EDC缓冲器33保持每个扇区的运算结果。在下面的说明中,每个扇区的运算结果都被称为EDCValue[0至31]。
该处理首先初始化EDC缓冲器33的EDCValue[0至31]、各个计数器以及EDC表32。特别地,EDC缓冲器33中的所有EDCValue[0至31]都被设置为0(步骤S11)。进一步,扇区计数器67以及列计数器61的计数值被设置为0(步骤S12和S13)。进一步,EDC表32的表值被设为初始期望值(参见图17中的*1)。*1中所示的值表示初始期望值,该初始期望值被设置到EDC表32的19个存储区。下面,存储在EDC表32中的19个期望值各被表示为EDCTable[M]。“M”表示一个区域中的列号,其范围为0至18。例如,如图*1所示,EDCTable[M]被设置成32位值(期望值)=0x8af08bed,它是通过将其中D0000字节的最高有效位为“1”且其他位为“0”的16416位(一个扇区)的代码串输入至移位寄存器50,即图8中所示的EDC发生器,而得到的。
接着,选择器62读取EDCTable[M+10]的值(S15)。如上所述,该实施例使用Row=0的最高有效位中的19个期望值作为初始期望值,并从这19个期望值中生成所有的期望值。
由于列计数器61的计数值M首先被设为M=0,因此该处理会读取EDCTable[M]的值。接着,从下一通道CH1获得用户数据(步骤S16)。如果一个2052个字节的扇区(包括4字节0数据)沿用户数据方向包括D0000至D2051,则步骤S16的处理顺序地得到沿用户数据方向的108字节数据,D0108+216*N(N=0至8)位于其头部。
在该示例性实施例中,得到的数据按一个字节(8位)为单位来存储,并通过如下的方式被处理。首先,如果得到的数据的MSB为“1”,则选择器64把由期望值发生器63生成的期望值输出至XOR电路65。选择器68选择通过相应的处理从EDCValue[0至31]读出扇区的值,并将所选择的值输出给XOR电路65。该XOR电路65计算它们的异或,并将结果输出给选择器68。该选择器68将结果写回EDC缓冲器33中相应扇区的存储区(步骤S18)。接着,该处理循环移位存储在EDC期望值发生器63中的数据(S19),对8位数据进行移位(S20),以及对8位重复8次步骤S17及其后续步骤(S21)。特别地,在步骤S20中该处理移位1位,并确定存储在MSB位置中的位是否是“1”。如果为“1”,则计算期望值的异或并将结果写回EDCValue[0至31]。
之后,对A字节重复上述的处理,在该实施例中该A字节为突发传送大小m=6(S22)。当完成对第一列中108个字节的处理时,该处理确定列计数器61的计数值M是否为8(S23)。如果计数值M不为8,则计数值加1(S24)。如果计数值为8,这就意味着是扇区边界,则该处理对计数值进行复位(S25),并将扇区计数器67的计数值Sector设为+2。如果S23中的判定结果为否,则意味着9列的处理还没有完成,并在步骤S27中判定还没有完成一个扇区的处理(S27中的否)。这样就重复从步骤S15开始的处理。特别地,该处理将初始期望值读入期望值发生器63,其中该初始期望值为列计数器61的计数值M加10,每次获得1位数据时循环移位该移位寄存器并生成对应于该用户数据的期望值。如果用户数据为“1”,则该处理在EDCValue[0至31]中读出相应扇区的值,计算异或,并将该结果写回。
另一方面,如果S23中的判定结果为“是”,则就意味着9列的处理已经完成(S27中的是)。如果存在后续的偶数扇区,则对其进行该处理(S28中的否)。如果对于最后扇区的处理已经完成,或者当扇区计数器67的计数值为32时,该处理结束。从而就完成了在一个数据块中路径1的处理。
下面将参照图15、16以及18至26来详细描述路径2中的EDC生成处理。图18是示出路径2中的EDC生成处理的流程图。图20、21、22、23和25分别是示出图18中步骤S31、S35、S41、S42的处理细节的流程图。图19是描述EDC标记和EDC区域标记的图。图24为描述更新EDC表的方法的图。图26为描述更新扇区计数器的方法的图。
首先,该处理初始化每个计数器、EDC表格等的值(步骤S31)。接着,获得用户数据(S32)。在路径2中得到的数据就是从数据缓冲器2的通道CH2突发传送(burst-transfer)的数据。
在获得该数据之后,该处理确定是否为EDC头部的数据。由于2048字节用户数据被添加了4字节0数据,因此检测到跟在第2048字节数据之后的数据作为EDC的头部数据。在图15中所示的数据块中,检测到对应于行Row=104以及列M=9的位置的数据输入,作为偶数扇区中EDC的头部,并且检测到对应于行Row=212以及列M=18的位置的数据输入,作为奇数扇区中EDC的头部。可以通过检查表示该数据是否为EDC的头的EDC标记是否表示1来检测(S33)。
如果该EDC标记为“1”,则可以确定该数据为EDC的头,并且用00h来替换得到的数据(S36)。该输入的8位数据因此被检测作为“0”并且选择器74选择0000h用于输出。在XOR电路75中进行8位处理之后,重复该处理的次数等于EDC的字节数,总共是4次(S37至S40)并进至步骤S41。当EDC标记不是“1”而EDC区域标记为“1”时,该处理也进至下一步骤S41(S34中的否)。如果输入的8位数据都为“0”,则该EDC发生器34并不更新EDC缓冲器33的值。因此,在实际中,在完成第2048字节的数据的EDC运算时,存储在EDC缓冲器33的数据就是EDC。该EDC标记以及EDC区域标记将在后面详细描述。
另一方面,如果EDC标记为“0”并且表示其是否位于EDC区域中的EDC区域标记为“0”,则处理进行至步骤S35。在步骤S35中,运算运算就像路径1那样,该处理对路径1中未处理的用户数据(这里也称作目标数据)顺序地计算用户数据为“1”的期望值和存储在EDC缓冲器中的运算结果的异或。首先,该处理进行8位(1个字节)目标数据的运算,并接着进至步骤S41(S35)。
在步骤S41中,该处理更新每个计数器和EDC表32(步骤S41)并进一步根据需要更新扇区计数器77。接着,重复上述的处理,重复次数为突发传送大小的字节数m,在该实施例中字节数为6(S43)。在用户数据方向Q上进行6字节的处理。在进行突发传送大小m(在该实施例中为6字节)的处理之后,该处理接着进行304列的处理(S44)。特别地,在按记录帧方向P的顺序对沿用户数据方向Q排列的6字节数据进行304次检索,并重复该处理216/m次,这在该实施例中为36次(S39),从而完成一个数据块的处理。如果216不能被突发传送大小m除尽,则重复次数是对小数做向上取整后的数字。例如,如果m=16,216/16=13.5。在这种情况下,步骤S46确定是否执行小数向上取整后的次数,这里为14次。这时,EDC缓冲器33存储32扇区的EDC。
下面将进一步详细地描述上述处理。步骤S31中的初始化处理将扇区计数器77、基本行计数器(未示出)、突发传送行计数器(未示出)、列计数器71以及区域计数器(未示出)的计数值复位为“0”(S51至S55),并将Row=0的最高有效位的期望值的初始期望值读入如图20的流程图中所示的EDC表32中(S56)。进一步,该处理将EDC标记和EDC区域标记设置为“0”。
如上所述,该基本行计数器相继地对一个数据块中的全部行进行计数,并且该计数值等于行号Row=0至215。进一步,该突发传送行计数器对在每个突发传送中被传送的数据的行号N=0至5进行计数。该突发传送行计数器被用于对突发传送大小进行计数,并且该基本行计数器被用于对整个数据块的行进行计数。该区域计数器对区域进行计数,每个区域都具有一对偶数扇区和计数扇区。扇区Sec 0和Sec 1形成区域Area 0,并且最后两个扇区Sec 30和Sec 31形成区域Area 15。因此,该区域计数器计数的范围是0至15。这些计数值有助于适当地选择要被读出的初始期望值,并控制时序例如将期望值写回EDC表32并进行复位。
下面将对EDC标记和EDC区域标记进行描述。在计算EDC时,对含有2048字节数据和4字节0数据的2052字节的代码串执行规定的运算。特别地,获得该EDC作为32位移位寄存器值,该32位移位寄存器值是通过顺序地将该代码串输入至图8中所示的移位寄存器50而得到的。在该示例性实施例中,还有,通过计算含有2048字节用户数据和4字节0数据的2052字节的期望值的异或来得到EDC。
该4字节0数据沿用户数据方向Q添加至第2048字节之后的数据。这样,就需要检测对应于EDC0的第2049字节,作为EDC的头数据,并通过用00h替换得到的数据来对2049至2052字节的四个字节进行处理。因此,该EDC发生器34每次检索数据时判定下一个要获得的数据是否就是沿用户数据方向Q的第2049字节数据。
为此目的,该示例性实施例设置一个EDC标记,用于检测数据是否为第2049字节数据。这样,该EDC标记就是当添加EDC时,用于检测用作EDC头数据的数据。在下面的说明中,从头数据到第四字节数据的数据用作EDC,被称为EDC0至EDC3。EDC0至EDC3被放置在数据块中的第2049至2052字节。
只有当输入数据是输入在每个扇区中沿用户数据方向Q的顺序的第2094位置中的数据时,该EDC标记标记“1”。由于EDC的计算要对含有2048字节数据和4字节0数据的2052字节代码串的每个字节上的期望值进行异或,因此把要放置EDC的4字节部分(EDC区域)处理成4字节0数据,而与输入无关。因此,除了通过EDC标记来检测EDC头数据以外,还通过EDC区域标记来检测用户数据方向Q上的第2049至2052字节的EDC区域中数据的输入。只有当偶数扇区中列号为9且行号为104,以及奇数扇区中列号为18且行号为212时,该EDC标记才表示“1”。只有当偶数扇区中列号为9且行号为104至107,以及奇数扇区中列号为18且行号为212至215时,该EDC区域标记才表示“1”。根据基本行计数器、突发传送行计数器、列计数器等的计数值来设置这些标记。
之后,该处理将相应列号(列计数器的计数值)M的初始期望值从EDC表读至期望值发生器73(S59)。例如,当在路径2中处理第一数据时,由于具有列号=0和行号=0的扇区Sec 0的用户数据首先被输入,则读取EDCTable[0]。
这里将描述步骤S35的细节。在步骤S35中,如果基本计数器的计数值Row和行计数值N的和为108或更大,并且列号(列计数器71的列计数值)M为0至8时,这是当在路径1中处理用户数据时输入的,该处理进至下一步骤S41(S61)。当用户数据使得Row+N=0至107或当Row+N=108至215并且0≤列计数值M≤8时,进行步骤S62及其后面步骤中的处理。
特别地,如图21中所示,该处理判定是否满足上述的执行条件(步骤S61),并且如果满足条件,这就意味着所获得的数据就是目标数据,则该处理判定是否所获得的数据的每位都是“1”(S62)。如果为“1”,则选择器78读取EDCValue[Sector]并将其提供给XOR电路75。进一步,该选择器74有选择地输出期望值并将其提供给XOR电路75。该XOR电路75计算这些值的异或并将结果输出给选择器78。选择器78将结果写回EDCValue[Sector](S63)。该处理接着循环移位该期望值发生器73的每个数据以生成期望值,并逐位的获得数据,直到完成8位的处理(S63至S66),从而更新(校正)EDC中间值或存储在EDC缓冲器33中的运算结果。步骤S34的处理也将获得数据的1个字节存储在可循环移位的寄存器等中,并对存储在MSB的位置中的位进行从步骤S63开始的处理,以逐位地进行八位处理,这已经在早些时候描述过。
这里将参照图22和23详细地描述步骤S41的细节。该步骤控制每个计数器以及EDC表32的写回和复位。如图22中所示,该处理判定当前处理是否是对最后区域Area 15执行以及用于对突发传送中的行数进行计数的突发传送行计数器的计数值N是否为m-1(S81)。由于在该示例性实施例中m=6,需要确定是否N=5。换句话说,该处理确定是否已经完成了对于最后区域Area 15的一列中的最后字节的处理。在该例子中,如果确定已经完成了对于最后区域Area 15中的第6字节的处理,则该处理将当前期望值(EDCTmp:参看图24)写入EDC表32中相应列的区域EDCtable[M]。
在从头区域0到最后区域15的处理中,每次处理各个区域的列时,该处理从EDC表32中读出期望值。特别地,在Area 0至Area 15中,相同的EDC表值被用于相同传送块的处理。例如,在路径2的第一处理中,该EDC表32保持初始期望值,并且该初始期望值也被顺序地读入在最后区域Area 15中。另一方面,在完成对最后区域Area 15的运算之后,开始对下一传送块的处理并再一次执行从第一区域Area 0开始的处理。在下一传送块的处理中,不需要初始期望值,而需要对应于该传送块中第一行的最高有效位的19个期望值。这样,当处理前一传送块中的最后区域Area 15时,需要循环移位前一传送块中最后行中最低有效位(LSB)的期望值,以生成对应于头区域中首字节的MSB的期望值,并将该期望值写回至EDC表32,用于在下一传送块中生成期望值。
如上所述,由于对于最后区域Area 15的处理使用了与头区域Area0相同的EDC表32的值,因此不能覆盖相应列中的EDB表,直到完成了对于最后区域Area 15的列的处理。这样,该处理首先判定是否对最后区域Area 15执行当前处理(S81)。如果不是最后区域Area 15,则该处理进至步骤S83。如果是最后区域Area 15的最后字节,则保持在期望值发生器73中的值就是通过对期望值(图24中的EDCTmp1)进行循环移位而得到的值(图24中的EDCTmp2),其中该期望值对应于上述步骤S64中传送块的最后行中第6字节的LSB。这样,该期望值就对应于头区域中突发传送的头字节的MSB。该值被写回至EDC表32。
该处理接着使突发传送行计数器的计数值N加1(S83)。进一步,该处理确定行计数值N是否等于m,而该m在该示例性实施例中为6(S84)。如果m=6,则对该行计数值进行复位(S85)。该处理接着将列计数值M加1(S86)并判定该列计数值M是否为19,也就是说递增的结果是否达到了该区域的首行(S87)。如果列计数值M为19,则对列计数值M进行复位并且使得区域计数器的区域计数值Area加1(S89)。接着,该处理判定当前区域是否就是Area 16=Area 0(参看图6),这是传送块的头区域(S90)。如果区域计数值Area为16,则该处理对该值进行复位(S91)并进而对扇区计数器进行复位(S82)。接着该处理将m加给基本行计数器的计数值(S93)。
在将期望值写回至EDC表32以及对计数器等进行复位之后,期望值发生器从EDC表32中读出该值。首先,该处理判定是否该突发行计数值N=0(S95)。如果N=0,则从EDC表32中读出对应于当前列计数值M的值并将该值设置给期望值发生器(S95)。进一步,判定是否Row+突发传送行计数值N=108且M≥9(S96)。在行数Row=108的边界中,如图5所示包括了偶数扇区的首字节。由于行Row=108为奇数扇区与偶数扇区之间的边界,因此就需要将被写回并在S82中被使用一次的期望值复位为初始期望值。因此,如果检测到了行计数值=108的边界,则如*2所示,该处理将EDC表32设置为初始期望值,并读出列计数值(M-9)的EDCTable[M-9]值(S97)。
该处理接着通过后续步骤S98至S105来设置EDC标记以及EDC区域标记。首先,在步骤S98中,判定接下来将获得的用户数据是否被排列在偶数扇区中EDC的头位置。由于第10列第105行的字节就是偶数扇区中的EDC头数据EDC0,判定是否满足列计数值M=9以及Row+N=104的条件。如果该数据被确定为EDC头数据,则该处理设置EDC标记=1(S100)。如果不是偶数扇区中的EDC头数据,则该处理接着判定它是否就是奇数扇区中的头数据。由于第19列第213上的字节就是奇数扇区中的EDC头数据,因此判定是否满足列计数值M=18以及Row+N=212的条件(S99)。如果该用户数据被确定为EDC头数据,则该处理进至步骤S100以设置EDC标记=1。另一方面,如果该数据既不是偶数扇区的EDC头数据也不是奇数扇区的EDC头数据,则该处理将EDC标记设置为等于零(S101)。
接着,如上述步骤S37至S40所述,对于从第2049字节到第2052字节的EDC头数据,在这些以00h替换的字节数据上执行运算。这样,该EDC发生器34就不进行通常的运算,而在检测到第2049字节中的EDC头数据之后对EDC区域中的数据进行步骤S37至S40的处理,直到达到第2052字节。这样就需要在检测到EDC区域之后,在向EDC区域中输入用户数据期间,对这些用户数据进行屏蔽。
为了确定输入数据是否为偶数扇区中第2049至第2052字节的数据,即EDC区域中的数据,该处理判定是否满足列数M=9以及Row+M=104至107的条件(S102)。如果不满足该条件,则该处理进一步通过判定是否满足列数M=18以及Row+M=212至215的条件来确定该输入数据是否就是奇数扇区中第2049至第2052字节的数据,即EDC区域中的数据(S103)。如果该输入数据被判定为步骤S102或S103中的EDC区域中的数据,则该处理设置EDC区域标记=1(S104)。如果确定不是EDC区域中的数据,则该处理设置EDC区域标记=0(S105)。之后,该处理进至步骤S42。
如果例如突发传送大小m为2,则通过第52突发传送来完成直到第106字节的数据传送,并且通过下一个(第53)突发传送来完成直到第108字节的数据传送。在这种情况下,需要按两次突发传送来传送EDC。这样,就需要在第52突发传送中完成对于第2049字节或第2050字节的运算。换句话说,对于4字节EDC的运算需要在输入EDC头字节或EDC1时实现。在上述的情况下,应该在处理偶数扇区中第2049字节数据时完成对于行Row=106和107的用户数据进行期望值运算。因此,在这种情况下,在路径1中,从偶数扇区的行Row=106和215的用户数据中确定EDC中间值。
当EDC被置于两个相继的传送块时,该处理在第一传送块中的最后EDC运算之前计算全部4字节EDC。在这种情况下,需要在第一EDC0的运算时序之前完成对2048字节的用户数据的期望值运算,并且该处理根据该突发传送大小来调整用户数据,在路径1中为该用户数据计算EDC中间值。
这里将描述步骤S42的处理。该步骤的处理确定扇区边界并更新该扇区计数器。图25是示出步骤S42的处理细节的流程图,图26为描述步骤S42的处理的图。如图25中所示,该处理首先确定是否满足行计数值Row+N<108的条件(S111)。特别地,该处理确定是否满足行计数值Row+N<108以及列计数值M=10的条件,用以判定要被传送的下一用户数据是否为奇数扇区中的用户数据(参看步骤S111以及图26)。即使不满足行计数值Row+N<108以及列计数值M=10的条件,如果Row+N≥108并且M=9,接着要被传送的用户数据就是奇数扇区的数据。这样,如果满足Row+N<108且M=10或者Row+N≥108且M=9的条件,则该处理将扇区计数值设置为区域计数器的区域计数值Area*2+1(参看S113和图26)。
另一方面,如果区域计数值Area不为0并且列计数值M为0,(参看S114以及图26),则可以确定接着要被传送的用户数据就是偶数扇区中的数据,并且该处理将扇区计数值设置为区域计数值Area*2(S115)。在其他情况下,部更新扇区计数器并且该处理进至下一步骤S43。
作为上述处理的结果,在路径1中从偶数扇区后部分的用户数据中计算EDC中间值,在路径2中根据其余的用户数据来校正该EDC中间值,并且根据这些值以及奇数扇区中的全部用户数据计算EDC。通过在路径2中进行部分或全部EDC运算,路径1中对数据缓冲器的存取能够被减至约1/4。在路径1中,当顺序地按照不同于用户数据方向Q的顺序传送路径2中的用户数据(偶数扇区的后半部分)时,只对在添加EDC之前无法被输入的用户数据进行运算,从而减少了在路径1中对数据缓冲器2的存取。
图27为描述本实施例中的优点的图。图3中所示的方法在路径1中计算EDC,并接着通过在路径2中使用计算出的EDC来输出添加了EDC的数据。在该方法中,通过通道CH1从数据缓冲器中读出的用户数据是一个包括2048字节×32扇区的数据块。另一方面,该示例性实施例在路径1中只对偶数扇区中的Row 108之后的行中的用户数据进行处理。这样,从数据缓冲器中读出的用户数据就能够被减至972字节×16扇区。
如图27所示,该实施例的记录设备1将EDC发生器34和EDC表32添加给了图3中所示的记录设备。但是,由于该EDC发生器31和EDC发生器34组合在一块,对一个数据块进行处理以计算EDC,因此额外的功耗也仅仅是被用于EDC表32。该EDC表32进行一个数据块的数据处理,并且在EDC运算中该功耗增加2048*32字节(65536字节)。但是,路径1中的数据传送量为如图3所示处理一整个数据块时的数据量的约1/4。因此,关于数据缓冲器和缓冲器控制器3,该功耗缩减了99968字节((2048*32-972*16)*2)。该实施例的结果就是减少了功耗。当数据缓冲器和缓冲器控制器的运算时钟变高时,功耗的降低效果也变得更显著。
如上所述,由于减少了数据缓冲器存取,这种存取是编码的瓶颈,该实施例的优点就是实现了高速编码以及降低了功耗。对于给定长度的时间,可存取数据缓冲器的数据量是固定的,并且该时间随着速度的增加而减少。这样,数据缓冲器存储就是进行高速编码的瓶颈。减小数据存取的绝对数量能够进行更高速的编码并且能够降低由于数据存储量而引起的功耗。进一步,存取的绝对数量的减小允许使用不太昂贵的缓冲器,该不太昂贵的缓冲器在较慢的时钟下运行,同时还能够实现高速编码。另外,还可以降低用于数据缓冲器和缓冲器控制器的运算时钟频率,使得可以高速编码,从而能够降低功耗,尽管存在附加电路中损耗的额外功率。
现在描述用于从按照上述方式生成的添加了EDC的数据中输出记录数据的示例性运算。由每个电路执行从中间值中计算EDC并输出记录数据的处理,作为路径2中的处理。重新参看图4,从通道CH2突发传送的用户数据除了提供给EDC发生器34还提供给集成部分35。
该数据缓冲器2由需要更新并能够随机存取和突发传送的存储器构成,例如SDRAM。下面的说明描述了使用SDRAM的情况。SDRAM是一种DRAM,当存取连续地址时,其能够比随机存取进行更高速的存取,并且使用突发传送功能能够进行更高速的数据传送。从而与能够高速随机存取的存储器例如SRAM相比,可以降低成本。
缓冲器控制器3的通道CH2沿用户数据方向Q从数据缓冲器2中重复读出一个突发传送大小(m字节)的用户数据,并顺序地传送数据使得添加了EDC的数据沿记录帧方向P排列。因此,沿用户数据方向Q突发传送216字节数据,每次一个突发传送大小(m字节),重复304次,该次数就是沿记录帧方向P的字节数(304字节,304交错)。结果,沿记录帧方向P包含在1个RUB中的用户数据(数据块41)被排列为沿用户数据方向Q的m个字节。沿用户数据方向Q的m字节数据接着被加扰,并存储在替换缓冲器38中,该替换缓冲器38可以是能够进行高速随机存取的SRAM,从而沿记录帧方向P输出记录数据。
该通道CH2或集成部分35具有指定突发传送的头地址或控制从EDC缓冲器33读出EDC的时序的功能。
该加扰器36计算用户数据与对应于用户数据方向Q的顺序的加扰值的异或,作为加扰后的数据。这样,当对数据进行加扰时,可以按照如下表达式所示将8位输入数据Di和由加扰器生成的8位加扰数据Si(加扰值)进行模2加(异或)而得到加扰后的数据SDi:
SDi=Si+Di
其中符号“+”表示异或。
蓝光盘中的加扰器设置初始值给16位移位寄存器,用于进行规定运算,并且每次对该值进行移位时沿用户数据方向Q生成加扰值。因此,如果与该实施例一样沿记录帧方向P每次按6字节输入数据,为了获得对应于下一列的加扰值,就需要在获得6字节加扰值之后将数据移位210次,而这会花费时间。为解决该问题,该实施例的记录设备具有加扰值发生器37,其能够从按照该次序输入的用户数据中计算加扰值。该加扰值发生器37把对应于输入数据的加扰值提供给加扰器36。
该替换缓冲器38由不需要更新并能够随机存取的存储器构成,例如SRAM。虽然下面的例子使用了SRAM,但只要能够进行高速随机存取,该替换缓冲器38就不仅限于SRAM。安置该替换缓冲器38就是为了用记录帧方向P上的数据来替换被加扰的数据,并且它能够在记录帧方向P上高速地传送加扰后的数据。该替换缓冲器38具有两个或更多的区域,用于存储具有上述传送块的大小或更大的数据,并且在从一个数据块输出记录数据的同时将一个传送块写入其他区域。该替换缓冲器38的大小可以显著地小于数据缓冲器2的大小,从而与使用SRAM作为数据缓冲器2的情况相比,能够降低成本同时实现了高速传送。
这里将详细描述路径2中的运算。首先详细描述被传送至替换缓冲器38的用户数据。在蓝光盘中,在一列中,沿用户数据方向Q的数据有216字节。该示例性实施例每次进行6字节的突发传送,216个字节被分为36个部分(突发传送大小m=6字节)。
SDRAM是能够按时钟同步方式进行高速突发传送的一种DRAM。例如,如果SDRAM的存储单元由四块组成,每块都能彼此单独地运行,并且通过使用8次连续突发传送,就能够进行32字节的突发传送。如果指定了要被传送的第一地址,通过突发传送规定数据,SDRAM就能进行高速地数据传送。
沿记录帧方向P的数据就是沿用户数据方向Q上看到的每个216字节的数据。由于在蓝光标准中,一个扇区含有2048字节的用户数据和4字节的EDC,并且从数据缓冲器2传送的数据就是还没有添加上EDC的数据,因此一个扇区具有2048个字节,例如。这样,奇数扇区中的第一列字节,这里被称为奇数扇区首列,与偶数扇区相邻,并且该第一列字节就是每212字节而不是216字节的数据。该奇数扇区首列就是扇区Sec 1中沿记录帧方向P顺序的第9或第10列,并且是沿用户数据方向Q的行Row=0至107中的第10列以及行Row=108至215中的第9列。这样,当沿记录帧方向P对应于奇数扇区首列的数据时,该数据不是每个216字节而是每个212字节。由于突发传送中数据缓冲器2的头地址是不同于扇区边界部分中的216字节以及扇区边界中的212字节,因此该缓冲器控制器3通过使用行计数器、用于对区域中的列数进行计数的列计数器等来检测扇区边界,并根据突发传送大小m来计算和指定数据缓冲器2中突发传送的第一地址(头地址)。特别地,当检测到扇区边界时,该处理设置+212,同时在其他情况下顺序地给头地址加上216,从而适当地指定头地址。
在蓝光盘中,当数据沿用户数据方向Q被排列在行Row=104至107时,接着被添加给偶数扇区中最后数据的EDC被安置在一个数据串的中间。这样,当传送包括该地址的用户数据时,该集成部分35从EDC缓冲器33中读出EDC,将其添加至用户数据,并将该添加了EDC的数据输出给加扰器36。
由于被突发传送的6字节数据沿着数据方向Q,因此该加扰值发生器37能够通过使用常规的加扰器来生成加扰值。在处理一个突发的传送数据时,下一列的用户数据被突发传送。因此,由于使用了常规加扰器,所以最多需要等待210个时钟就能获得加扰值。另一方面,蓝光盘的数据为如图2中所示的沿记录帧方向的每个216或108字节。这样,除了在一次移位运算中将数据沿用户数据方向Q移位1个字节的常规加扰器,还安置了这样的移位寄存器,该移位寄存器能够获得在一次移位运算中被移位216次或108次的值,因此每次突发传送时切换移位寄存器。因此,可以将对应于用户数据方向Q的用户数据的加扰值提供给加扰器36,其中该用户数据是从通道CH2传送的。
该替换缓冲器38具有两个或更多的记录区,每个记录区的大小为突发传送大小m×一个记录帧(304字节)。如早些时候所述,为了在路径2中对对应于1RUB的用户数据(数据块)进行处理,读出被写入在一个记录区中的传送块,同时将一个传送块写至其他记录区。该记录区可以具有两个或更多的面。
因此,在输出作为记录数据的用户数据的处理中,记录设备1并不需要沿用户数据方向Q将EDC添加给用户数据以及对添加了EDC的数据进行加扰,将加扰后的数据写回数据缓冲器,并接着再一次沿记录帧方向P读出数据。这就使得能够高速地传送记录数据,而不使用能够对数据缓冲器2进行高速随机存取的昂贵存储器,例如SRAM。进一步,由于如上所述减少了对发生在路径1上的数据缓冲器2的存取,因此可以提供一种光记录盘编码装置或记录设备,其能够实现高速编码并降低功率损耗。
第二实施例
这里对本发明的第二示例性实施例进行描述。图28是示出根据第二实施例的记录设备的图。在图28中所示第二实施例中,用相同的参考标记来表示与图4中所示的第一实施例中相同的元件并且在这里不再详述。该实施例的记录设备81包括编码器84,代替了图4中所示的编码器4。与图4中的编码器4一样,该编码器84在路径1中对偶数扇区的一部分进行EDC运算,并接着在路径2中计算EDC。虽然根据第一实施例的编码器4中的加扰处理器在将EDC添加给用户数据之后进行加扰,但是根据该实施例的编码器84中的加扰处理器分别对用户数据和EDC进行加扰,并然后将加扰后的EDC添加给加扰后的用户数据。
这样,在路径2中,来自通道CH2的用户数据被提供给EDC发生器34,并且也被提供给加扰器96。该加扰器96从加扰值发生器97接收对应于输入用户数据的加扰值,对该数据进行加扰,并将加扰后的用户数据提供给替换缓冲器99。该加扰后的用户数据也被提供给ECC发生器39。
在EDC发生器34中生成的EDC被提供给在该实施例中增加的加扰器98。该加扰器98对EDC进行加扰。该加扰器98从加扰值发生器97中接收对应于EDC的加扰值,对EDC进行加扰,并接着将加扰后的EDC提供给集成部分95和ECC发生器39。
该替换缓冲器99将接收到的加扰后的用户数据提供给集成部分95。该集成部分95从替换缓冲器99接收加扰后的用户数据,以及从加扰器98接收加扰后的EDC,对这些数据进行集成并输出它们作为记录数据,这与图4中所示编码器4中的集成部分35不同。
该ECC发生器39在添加EDC的适当时候,从替换缓冲器99接收加扰后的用户数据,并且也从加扰器98接收加扰后的EDC,从而生成32扇区的ECC。通过ECC缓冲器40输出该生成的ECC。
与根据上述第一实施例的编码器4一样,该实施例的编码器84接收偶数扇区的后部分的用户数据,在路径1中生成EDC中间值,并接着通过使用偶数扇区的EDC中间值在路径2中生成EDC,同时直接地从用户数据中计算EDC以及用于奇数扇区的期望值。因此与上述的参考文献相比,从数据缓冲器3中读出的用户数据被缩减至大约1/4,这样就具有了与第一实施例相同的优点,降低了对于数据缓冲器的存取。
虽然编码器4对添加了EDC的数据进行加扰,但是在添加EDC之前由加扰器84对数据进行加扰,并接着将加扰后的EDC添加给加扰后的用户数据。这就可以很灵活地对计算和添加EDC进行定时。
本发明不仅限于上述实施例,而且在不脱离本发明的范围的情况下可以通过各种方式进行修改。例如,虽然上述实施例描述了硬件结构,但本发明不限于此,并且可以通过在中央处理单元(CPU)上执行计算机程序来实现给定的处理。在这种情况下,可以通过将该计算机程序记录在记录介质上或者通过互联网或其他传输介质对其进行传输,来提供该计算机程序。
进一步,如上面的第二实施例中所述,添加EDC的时间可以是加扰之前或之后。另外,将数据提供给用于EDC添加的电路(例如集成部分、加扰器、加扰值发生器以及替换缓冲器)的次序或时序不限于上面所述,而是可以通过各种方式被改变。
很明显,本发明不限于上面的实施例,并且在不脱离本发明的保护范围和精神的情况下可以进行修改和改变。

Claims (21)

1.一种误差检测码计算电路,该误差检测码计算电路计算误差检测码,所述误差检测码用于检测具有用户数据的顺序的用户数据代码串中的误差,该电路以数据组为单位来处理数据,其中该数据组中包括两个或更多的含有所述用户数据代码串的扇区,每个数据组包括运算目标扇区,该运算目标扇区具有这样的结构:当按所述用户数据的顺序读取时,该误差检测码出现在所述用户数据代码串的末端,并且当按在盘上的记录数据的顺序读取时,该误差检测码出现在所述用户数据代码串的中间,该误差检测码计算电路包括:
第一运算部分,用于从所述运算目标扇区的一部分用户数据中计算误差检测码中间值,其中,所述运算目标扇区中的所述一部分用户数据包括:所述运算目标扇区中包含的所述用户数据代码串的、当按所述在盘上的记录数据的顺序读取数据组时所述误差检测码被添加之后的用户数据;
第二运算部分,用于由所述运算目标扇区的用户数据的其余部分和所述误差检测码中间值来计算误差检测码,其中,该第二运算部分对要添加给所述用户数据代码串的所述误差检测码进行计算,该用户数据代码串包含在所述运算目标扇区中、并按所述在盘上的记录数据的顺序被读取;
期望值表,用于存储所述初始期望值;以及
缓冲器,用于存储所述误差检测码,
其中,每个数据组包括一个K行×L列的块,其中K和L为整数,该块含有包括在盘上用于记录数据的最小记录单元中的用户数据,所述用户数据的顺序是对应于所述块的列方向的用户数据编码顺序,并且,该块的行方向对应于所述用户数据的记录顺序;
通过对一个k字节的扇区执行规定的运算来得到所述误差检测码,其中所述k字节的扇区由具有用户数据的顺序的用户数据代码串以及与所述误差检测码相同字节数的0数据组成,
通过对具有用户数据的顺序的k字节代码串执行规定的运算,所述第一运算部分计算所述误差检测码中间值,其中对应于该输入用户数据的所述用户数据的顺序的位为1,而其他位为0,以获取一个期望值,并且当输入用户数据为1时顺序地计算该期望值的异或,以及
通过计算所述输入用户数据的所述期望值、并顺序地计算所述误差检测码中间值与其中所述输入用户数据是1的所述期望值的异或,所述第二运算部分计算所述误差检测码;以及
所述第一运算部分和第二运算部分通过参照初始期望值来计算期望值,其中该初始期望值对应于所述块的一行,所述块包括多个区域,每个区域具有一对扇区,并且所述初始期望值是一个区域中的一行的期望值,
所述第一运算部分和第二运算部分通过参看所述期望值表来生成所述期望值、计算异或、以及将该误差检测码中间值和所述误差检测码存储到缓冲器中。
2.根据权利要求1所述的误差检测码计算电路,其中
通过根据按所述在盘上的记录数据的顺序输入的所述用户数据的其余部分对所述误差检测码中间值进行更新,所述第二运算部分计算所述误差检测码。
3.根据权利要求1所述的误差检测码计算电路,其中
所述运算目标扇区中的所述用户数据的其余部分包括:所述运算目标扇区中包含的所述用户数据代码串的、从头数据至紧接在所述误差检测码被添加之前的数据之间的用户数据,其中,该误差检测码是当按所述在盘上的记录数据的顺序读取所述数据组时被添加的。
4.根据权利要求1所述的误差检测码计算电路,其中
所述数据组包括运算目标扇区,其中所述误差检测码被插入在所述块的一列的中间。
5.根据权利要求4所述的误差检测码计算电路,其中所述部分运算目标扇区含有被置于插入了所述运算目标扇区中的所述误差检测码最后字节的行之后的用户数据,其中所述误差检测码被插在所述块中一列的中间。
6.根据权利要求1所述的误差检测码计算电路,其中
所述第二运算部分重复沿着在作为所述在盘上的记录数据的顺序的行方向上按所述用户数据的顺序L次接收m字节的用户数据K/m次,由此接收所述数据组,其中K/m的小数向上取整。
7.根据权利要求6所述的误差检测码计算电路,其中
该用户数据代码串从数据缓冲器突发传送,
所述m字节是突发传送大小,以及
所述误差检测码有m字节或更小。
8.根据权利要求1所述的误差检测码计算电路,其中
所述第一运算部分按所述用户数据的顺序接收数据组,该数据组包括所述运算目标扇区中的所述部分用户数据,以及
所述第二运算部分按所述在盘上的记录数据的顺序接收所述数据组。
9.根据权利要求1所述的误差检测码计算电路,其中
所述第二运算部分按照所述的在盘上的记录数据的顺序对这样的数据进行运算,该数据是在将与误差检测码相同字节数的0数据沿所述用户数据的顺序添加在所述用户数据代码串的末端,并且在对所述0数据的最后字节进行运算之前,所述第二运算部分计算所有的所述误差检测码。
10.根据权利要求1所述的误差检测码计算电路,其中
所述第一运算部分和第二运算部分通过参照初始期望值来计算期望值,其中该初始期望值对应于所述用户数据代码串中的特定位。
11.根据权利要求1所述的误差检测码计算电路,其中:
包括在所述区域中的所述扇区之一是所述运算目标扇区。
12.根据权利要求1所述的误差检测码计算电路,其中:
通过计算非运算目标扇区上的所述输入用户数据的所述期望值、并且当所述输入用户数据为1时顺序地计算所述期望值的异或,所述第二运算部分计算所述误差检测码,其中该非运算目标扇区具有这样的结构:即使当按不同于所述用户数据的顺序的所述在盘上的记录数据的顺序读取时,所述误差检测码被添加在末端。
13.根据权利要求12所述的误差检测码计算电路,其中:
所述第二运算部分按照所述在盘上的记录数据的顺序对这样的数据进行运算,其中该数据是在与所述误差检测码相同字节数的0数据、按所述用户数据的顺序添加在所述用户数据代码串的末端,并且在对所述0数据的最后字节进行运算之前,所述第二运算部分计算所有的所述误差检测码。
14.根据权利要求1所述的误差检测码计算电路,其中:
所述在盘上的记录数据的顺序对应于所述块的行方向。
15.根据权利要求1所述的误差检测码计算电路,其中:
在所述第一运算部分处理第t个数据组的同时,所述第二运算部分处理第(t-1)个数据组。
16.一种误差检测码计算方法,该误差检测码计算方法计算误差检测码,所述误差检测码用于检测具有用户数据的顺序的用户数据代码串中的误差,该方法以数据组为单位来处理数据,其中该数据组中包括两个或更多的含有用户数据代码串的扇区,每个数据组包括一个运算目标扇区,该运算目标扇区具有这样的结构:当该运算目标扇区按所述用户数据的顺序读取时,该误差检测码出现在所述用户数据代码串的末端,并且当按在盘上的记录数据的顺序读取时,该误差检测码出现在所述用户数据代码串的中间,该误差检测码计算方法包括:
通过第一运算部分由所述运算目标扇区的一部分计算误差检测码中间值,其中,所述运算目标扇区中的所述一部分包括:所述运算目标扇区中包含的所述用户数据代码串的、当按所述在盘上的记录数据的顺序读取数据组时所述误差检测码被添加之后的用户数据;以及
通过第二运算部分由该运算目标扇区的用户数据的其余部分和该误差检测码中间值来计算所述误差检测码,其中该误差检测码要被添加到包含在所述运算目标扇区中的按所述在盘上的记录数据的顺序读取的所述用户数据代码串中,
通过期望值表存储所述初始期望值;以及
通过缓冲器存储所述误差检测码,
其中,每个数据组包括一个K行×L列的块,其中K和L为整数,该块含有包括在盘上用于记录数据的最小记录单元中的用户数据,所述用户数据的顺序是对应于所述块的列方向的用户数据编码顺序,并且,该块的行方向对应于所述用户数据的记录顺序;
通过对一个k字节的扇区执行规定的运算来得到所述误差检测码,其中所述k字节的扇区由具有用户数据的顺序的用户数据代码串以及与所述误差检测码相同字节数的0数据组成,
通过对具有用户数据的顺序的k字节代码串执行规定的运算,所述第一运算部分计算所述误差检测码中间值,其中对应于该输入用户数据的所述用户数据的顺序的位为1,而其他位为0,以获取一个期望值,并且当输入用户数据为1时顺序地计算该期望值的异或,以及
通过计算所述输入用户数据的所述期望值、并顺序地计算所述误差检测码中间值与其中所述输入用户数据是1的所述期望值的异或,所述第二运算部分计算所述误差检测码;以及
所述第一运算部分和第二运算部分通过参照初始期望值来计算期望值,其中该初始期望值对应于所述块的一行,所述块包括多个区域,每个区域具有一对扇区,并且所述初始期望值是一个区域中的一行的期望值,
所述第一运算部分和第二运算部分通过参看所述期望值表来生成所述期望值、计算异或、以及将该误差检测码中间值和所述误差检测码存储到缓冲器中。
17.一种记录设备,用于将含有两个或更多的具有用户数据的顺序的用户数据代码串的数据组按照不同于所述用户数据的顺序的、在盘上的记录数据的顺序记录到盘上,该设备以数据组为单位来处理数据,其中该数据组中包括两个或更多的含有所述用户数据代码串的扇区,每个数据组包括一个运算目标扇区,该运算目标扇区具有这样的结构:当该运算目标扇区按所述用户数据的顺序读取时,该误差检测码出现在所述用户数据代码串的末端,并且当按在盘上的记录数据的顺序读取时,该误差检测码出现在所述用户数据代码串的中间,该记录设备包括:
误差检测码计算电路,用于计算误差检测码,该误差检测码用于在具有用户数据的顺序的用户数据代码串中检测误差;以及
加扰处理器,用于根据由所述误差检测码计算电路计算的所述误差检测码和所述用户数据代码串对数据组进行加扰,并输出加扰后的数据组作为记录数据,
其中该误差检测码计算电路包括:
第一运算部分,用于由所述运算目标扇区的一部分用户数据计算误差检测码中间值,其中,所述运算目标扇区中的所述一部分包括:所述运算目标扇区中包含的所述用户数据代码串的、当按所述在盘上的记录数据的顺序读取数据组时所述误差检测码被添加之后的用户数据;
第二运算部分,用于由所述运算目标扇区的用户数据的其余部分和该误差检测码中间值来计算所述误差检测码,其中该第二运算部分计算要被添加给用户数据代码串的所述误差检测码,所述用户数据代码串包含在运算目标扇区中、并按所述在盘上的记录数据的顺序被读取,
期望值表,用于存储所述初始期望值;以及
缓冲器,用于存储所述误差检测码,
其中,每个数据组包括一个K行×L列的块,其中K和L为整数,该块含有包括在盘上用于记录数据的最小记录单元中的用户数据,所述用户数据的顺序是对应于所述块的列方向的用户数据编码顺序,并且,该块的行方向对应于所述用户数据的记录顺序;
通过对一个k字节的扇区执行规定的运算来得到所述误差检测码,其中所述k字节的扇区由具有用户数据的顺序的用户数据代码串以及与所述误差检测码相同字节数的0数据组成,
通过对具有用户数据的顺序的k字节代码串执行规定的运算,所述第一运算部分计算所述误差检测码中间值,其中对应于该输入用户数据的所述用户数据的顺序的位为1,而其他位为0,以获取一个期望值,并且当输入用户数据为1时顺序地计算该期望值的异或,以及
通过计算所述输入用户数据的所述期望值、并顺序地计算所述误差检测码中间值与其中所述输入用户数据是1的所述期望值的异或,所述第二运算部分计算所述误差检测码;以及
所述第一运算部分和第二运算部分通过参照初始期望值来计算期望值,其中该初始期望值对应于所述块的一行,所述块包括多个区域,每个区域具有一对扇区,并且所述初始期望值是一个区域中的一行的期望值,
所述第一运算部分和第二运算部分通过参看所述期望值表来生成所述期望值、计算异或、以及将该误差检测码中间值和所述误差检测码存储到缓冲器中。
18.根据权利要求17所述的记录设备,其中
该加扰处理器包括:
集成部分,用于将由所述误差检测码计算电路计算的所述误差检测码添加给所述用户数据代码串;以及
加扰器,用于通过由所述集成部分集成的所述误差检测码对数据进行加扰。
19.根据权利要求18所述的记录设备,其中
该记录设备进一步包括替换缓冲器,用于按照所述在盘上的记录数据的顺序来输出由所述加扰器加扰后的数据。
20.根据权利要求17所述的记录设备,其中
该加扰处理器包括:
第一加扰器,用于对所述用户数据代码串进行加扰;
第二加扰器,用于对所述误差检测码进行加扰;以及
集成部分,用于将由所述第二加扰器加扰后的所述误差检测码添加给由所述第一加扰器加扰后的所述用户数据代码串。
21.根据权利要求20所述的记录设备,其中
该记录设备进一步包括替换缓冲器,用于按照所述在盘上的记录数据的顺序来输出被所述加扰器加扰后的数据,以及
该集成部分从所述替换缓冲器中按所述在盘上的记录数据的顺序接收加扰后的数据,将该加扰后的误差检测码添加给按所述在盘上的记录数据的顺序接收的加扰后的用户数据代码串,并输出该记录数据。
CNB2006101084599A 2005-08-04 2006-08-04 误差检测码计算电路、误差检测码计算方法以及记录设备 Active CN100570730C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005226705A JP4620541B2 (ja) 2005-08-04 2005-08-04 誤り検出符号算出回路、誤り検出符号算出方法及び記録装置
JP2005226705 2005-08-04

Publications (2)

Publication Number Publication Date
CN1909100A CN1909100A (zh) 2007-02-07
CN100570730C true CN100570730C (zh) 2009-12-16

Family

ID=37398691

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101084599A Active CN100570730C (zh) 2005-08-04 2006-08-04 误差检测码计算电路、误差检测码计算方法以及记录设备

Country Status (5)

Country Link
US (1) US7640483B2 (zh)
EP (1) EP1750264B1 (zh)
JP (1) JP4620541B2 (zh)
CN (1) CN100570730C (zh)
DE (1) DE602006001270D1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI332650B (en) * 2007-01-31 2010-11-01 Realtek Semiconductor Corp Error detection code generating circuit and encoding circuit utilizing which and the method of which
JP4930251B2 (ja) * 2007-07-31 2012-05-16 富士通セミコンダクター株式会社 誤り訂正装置及びデスクランブル回路
JP2009048713A (ja) * 2007-08-21 2009-03-05 Toshiba Microelectronics Corp デスクランブル回路及びエラー検出コード計算回路
JP2009104757A (ja) * 2007-10-02 2009-05-14 Panasonic Corp 半導体記憶装置
JP2010211862A (ja) * 2009-03-10 2010-09-24 Panasonic Corp 符号化装置及び光ディスク記録装置
KR101607307B1 (ko) * 2009-07-09 2016-03-30 삼성전자주식회사 정보 부호화 방법, 정보 복호화 방법, 기록/재생 장치 및 정보 저장 매체
JP5419653B2 (ja) 2009-12-01 2014-02-19 ルネサスエレクトロニクス株式会社 記録装置及び記録方法
JP5365683B2 (ja) * 2011-12-26 2013-12-11 富士通セミコンダクター株式会社 誤り訂正装置
US10236045B2 (en) 2012-09-21 2019-03-19 Samsung Electronics Co., Ltd. Semiconductor memory device having detection clock patterns phase-inverted from each other and detection clock generating method thereof
KR20180082927A (ko) 2017-01-11 2018-07-19 에스케이하이닉스 주식회사 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3257298B2 (ja) * 1994-11-16 2002-02-18 松下電器産業株式会社 Crc符号生成方法
US5878057A (en) * 1995-10-06 1999-03-02 Tektronix, Inc. Highly parallel cyclic redundancy code generator
JP2000305798A (ja) * 1999-04-26 2000-11-02 Matsushita Electric Ind Co Ltd エラー検出コード発生方法および装置
TW508907B (en) * 1999-09-27 2002-11-01 Texas Instruments Inc Method and apparatus for efficient calculation of cyclic redundancy check
JP3306413B2 (ja) * 2000-01-31 2002-07-24 三洋電機株式会社 誤り訂正装置および誤り訂正方法
US6530060B1 (en) * 2000-02-08 2003-03-04 Cirrus Logic, Inc. Sampled amplitude read channel employing a post processor with a boundary error compensator which compensates for boundary error events in a split-field data sector
JP2001285076A (ja) * 2000-03-31 2001-10-12 Ando Electric Co Ltd Crc符号演算回路、及びcrc符号演算方法
US6601216B1 (en) * 2000-03-31 2003-07-29 Microsoft Corporation Differential cyclic redundancy check
US7065702B2 (en) * 2001-04-12 2006-06-20 Siliquent Technologies Ltd. Out-of-order calculation of error detection codes
JP2003242720A (ja) * 2001-12-14 2003-08-29 Hitachi Ltd ディジタルデータ記録再生方法
JP4337341B2 (ja) 2002-12-13 2009-09-30 ソニー株式会社 再生専用記録媒体、再生装置、再生方法、ディスク製造方法
CN1265362C (zh) * 2003-03-11 2006-07-19 威盛电子股份有限公司 错误检测码产生方法和对多个区段产生错误检测码的方法
JP4367627B2 (ja) 2003-07-29 2009-11-18 日本ゼオン株式会社 エチニル置換された環状フルオロオレフィン化合物及びその製造方法
KR20060125692A (ko) * 2003-08-29 2006-12-06 마츠시타 덴끼 산교 가부시키가이샤 오류 검출 장치, 및 오류 검출 방법
US7418645B2 (en) * 2003-09-24 2008-08-26 Hitachi Global Storage Technologies Netherlands B.V. Error correction/detection code adjustment for known data pattern substitution
JP2006155835A (ja) * 2004-12-01 2006-06-15 Nec Electronics Corp 誤り検出符号付加回路、誤り検出回路及び方法、並びにディスク装置
JP4571523B2 (ja) 2005-03-04 2010-10-27 ルネサスエレクトロニクス株式会社 スクランブル回路、エンコード装置、エンコード方法及び記録装置
KR100688574B1 (ko) * 2005-09-16 2007-03-02 삼성전자주식회사 광디스크의 데이터 처리장치 및 처리방법

Also Published As

Publication number Publication date
JP4620541B2 (ja) 2011-01-26
US20070043999A1 (en) 2007-02-22
EP1750264A3 (en) 2007-02-28
US7640483B2 (en) 2009-12-29
DE602006001270D1 (de) 2008-07-03
EP1750264A2 (en) 2007-02-07
EP1750264B1 (en) 2008-05-21
JP2007042234A (ja) 2007-02-15
CN1909100A (zh) 2007-02-07

Similar Documents

Publication Publication Date Title
CN100570730C (zh) 误差检测码计算电路、误差检测码计算方法以及记录设备
CA2304727C (en) Encoding multiword information by wordwise interleaving
AU2002353342B2 (en) Method of encoding and decoding
US7836375B2 (en) Scrambler circuit, encoding device, encoding method and recording apparatus
KR100654110B1 (ko) 에러검출코드 추가 회로, 에러 검출 회로 및 방법, 및디스크 장치
KR100654111B1 (ko) 스크램블러, 디스크램블러 및 방법, 및 디스크 장치
US6931586B1 (en) Error correction method for high density disc
JP2002170333A (ja) 情報記録方法、情報記録装置、情報再生方法及び情報再生装置
US20070124646A1 (en) Recording medium, recording method and apparatus, reproducing method and apparatus, data transmitting method, and data decrypting method
CN105340012A (zh) 光学介质再现装置和光学介质再现方法
WO2006080521A1 (ja) 光ディスク製造方法及び装置、光ディスク並びにその再生方法
US7475324B2 (en) Encoding apparatus for storing data to disk
US7702987B2 (en) Apparatus and method for processing data of an optical disk
US7225385B2 (en) Optical recording method
JP2000323995A (ja) 誤り訂正積符号ブロックを用いるデータ処理方法及び装置及び記録媒体
KR100784740B1 (ko) 에러 검출 코드 산출 회로, 에러 검출 코드 산출 방법, 및 레코딩 장치
JP2005310269A (ja) 固有の識別情報が書き込まれた再生専用の光記録媒体
KR100425294B1 (ko) 광 정보저장매체, 및 그 데이터 기록장치
JP3384402B2 (ja) 情報再生方法及び情報再生装置
KR20030049713A (ko) 광 기록매체에 데이터를 기록하는 방법 및 장치
JP3384325B2 (ja) 情報記録方法及び再生方法
JP2005056464A (ja) 記録媒体、記録装置及び再生装置、記録方法及び再生方法、並びに、記録処理プログラム及び再生処理プログラム
WO2006024984A1 (en) Error correction format for small optical discs.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: RENESAS ELECTRONICS CORPORATION

Free format text: FORMER NAME: NEC CORP.

CP01 Change in the name or title of a patent holder

Address after: Kanagawa, Japan

Patentee after: Renesas Electronics Corporation

Address before: Kanagawa, Japan

Patentee before: NEC Corp.

CP02 Change in the address of a patent holder

Address after: Tokyo, Japan

Patentee after: Renesas Electronics Corporation

Address before: Kanagawa, Japan

Patentee before: Renesas Electronics Corporation

CP02 Change in the address of a patent holder