JP2008146697A - Data processor and method for detecting residual data amount of buffer - Google Patents

Data processor and method for detecting residual data amount of buffer Download PDF

Info

Publication number
JP2008146697A
JP2008146697A JP2006329744A JP2006329744A JP2008146697A JP 2008146697 A JP2008146697 A JP 2008146697A JP 2006329744 A JP2006329744 A JP 2006329744A JP 2006329744 A JP2006329744 A JP 2006329744A JP 2008146697 A JP2008146697 A JP 2008146697A
Authority
JP
Japan
Prior art keywords
data
command
buffer
control command
control
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
JP2006329744A
Other languages
Japanese (ja)
Inventor
Kenichi Takamiya
健一 高宮
Yuji Kajikawa
雄司 梶川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2006329744A priority Critical patent/JP2008146697A/en
Publication of JP2008146697A publication Critical patent/JP2008146697A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processor free from incorrect detection of buffer underrun by detecting exact residual amount of buffer data, and to provide a detection method of residual data amount in the buffer. <P>SOLUTION: The data processor which generates and outputs data for recording in an optical disk based on the data transmitted from a computer device has a command storage section 20 which stores a plurality of control commands which process data stored in a buffer 10 by predetermined area, and detects residual data amounts which can be output based on the sum total value in a field of iteration number of control commands stored in the command storage section 20, the number of data in which a control command is not generated although transmitted from the computer device, and the remaining number of iteration of control command under processing among control commands stored in the command storage section 20. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、バッファのデータ残量検出を行うデータ処理装置及びバッファのデータ残量検出方法に関するものである。   The present invention relates to a data processing device for detecting the remaining amount of data in a buffer and a method for detecting the remaining amount of data in a buffer.

従来から、CD(Compact Disc)やDVD(Digital Versatile Disk)などの光ディスクに、データ発生源であるコンピュータ装置から転送されるデータを書き込む光ディスク記録装置が知られている。   2. Description of the Related Art Conventionally, an optical disk recording apparatus that writes data transferred from a computer device that is a data generation source to an optical disk such as a CD (Compact Disc) or a DVD (Digital Versatile Disk) is known.

このような光ディスク記録装置は、外部のコンピュータ装置(以下、「ホスト」とする。)から転送されるデータの速度と光ディスクにデータを記録する速度との相違を調整するために、その内部に、コンピュータ装置から転送されるデータを一時的に格納する記憶用バッファを設けている。   In order to adjust the difference between the speed of data transferred from an external computer device (hereinafter referred to as “host”) and the speed of recording data on the optical disc, A storage buffer is provided for temporarily storing data transferred from the computer device.

ところで、光ディスク記録装置において、コンピュータ装置から転送されるデータの速度が遅くなったような場合には、記憶用バッファに格納されるデータの残量が不足するバッファアンダーランという現象が生じる場合がある。   By the way, in the optical disk recording device, when the speed of data transferred from the computer device is slow, a phenomenon of buffer underrun in which the remaining amount of data stored in the storage buffer is insufficient may occur. .

光ディスク記録装置は、このような現象が生じると光ディスクへの書込を中断して待機し、記憶用バッファにデータが所定量以上格納されたときに中断を解除して再度書き込みを行う、いわゆるバーンプルーフ機能が動作する(例えば、特許文献1参照。)が、このパーンプルーフ機能が動作することによって、データ記録装置のパフォーマンスが低下していた。   When such a phenomenon occurs, the optical disk recording device interrupts writing to the optical disk and waits, and when data of a predetermined amount or more is stored in the storage buffer, the interruption is canceled and writing is performed again. Although the proof function operates (see, for example, Patent Document 1), the performance of the data recording apparatus has been degraded by the operation of the proof function.

ここで、従来の光ディスク記録装置について図面を参照して具体的に説明する。   Here, a conventional optical disk recording apparatus will be specifically described with reference to the drawings.

光ディスクに記録するデータは、ホストから転送される第1データと、ホストからは転送されず光ディスク記録装置内のLSI(Large Scale Integration)で構成されるデータ処理装置の機能により生成する第2データの2種類に分類される。これらのデータを効率よく管理するため、従来のデータ処理装置では内部のSDRAM(Synchronous DRAM)を所定エリア単位に分割し、各エリアにはデータ処理コマンド、データ処理後に用いられるポインタ制御コマンド、及び一定量のデータなどを収める形式を取る(図7参照)。ここで、「一定量」とは、CDでは2352ByteのデータとSubcodeのデータ、DVDではIDからEDCまでの2064Byteのデータである。   The data to be recorded on the optical disc includes the first data transferred from the host and the second data generated by the function of the data processing device constituted by LSI (Large Scale Integration) in the optical disc recording device without being transferred from the host. There are two types. In order to manage these data efficiently, the conventional data processing apparatus divides an internal SDRAM (Synchronous DRAM) into predetermined area units, and each area has a data processing command, a pointer control command used after the data processing, and a fixed amount. It takes a form that contains quantity data (see FIG. 7). Here, the “fixed amount” is 2352 bytes of data and subcode data for CD, and 2064 bytes of data from ID to EDC for DVD.

そして、データ処理装置においては、ホストから転送されるデータを格納する連続したエリアを第1のバッファであるメインリングバッファ(以下、「WMRB」とする。)とし、それ以外のデータを格納する連続したエリアを第2のバッファであるサブリングバッファ(以下、「WSRB」とする。)、リニアバッファ(以下、「WLB」とする。)とするバッファの構成が採用される。WSRB、WLBには光ディスクへの書き込み前にデータ処理装置におけるファームウェア(以下、「F/W」とする。)で必要なデータを準備することになる。ここで、WMRB、WSRBはリングバッファ構造、WLBはリニアバッファ構造が採用される。   In the data processing apparatus, a continuous area for storing data transferred from the host is a main ring buffer (hereinafter referred to as “WMRB”) as a first buffer, and a continuous area for storing other data. A buffer configuration is adopted in which the area is a sub-ring buffer (hereinafter referred to as “WSRB”), which is a second buffer, and a linear buffer (hereinafter referred to as “WLB”). In the WSRB and WLB, necessary data is prepared by firmware (hereinafter referred to as “F / W”) in the data processing apparatus before writing to the optical disk. Here, a ring buffer structure is used for WMRB and WSRB, and a linear buffer structure is used for WLB.

ホストから転送されるデータを書き込む位置を示すポインタをPHST、コマンドに従って実際にデータ処理を行うデータの書き込み位置を示すポインタをPFMT、PFMT2とすると、これらのポインタとバッファ構成との関係は図8のようになる。なお、PFMTは常にWMRB上のデータ処理を行っている位置を示し、PFMT2はWSRB、WLB上のデータ処理を行っている位置を示す。   Assuming that the pointer indicating the position for writing data transferred from the host is PHST, and the pointer indicating the data writing position for actually performing data processing according to the command is PFMT, PFMT2, the relationship between these pointers and the buffer configuration is shown in FIG. It becomes like this. Note that PFMT indicates a position where data processing is always performed on the WMRB, and PFMT2 indicates a position where data processing is performed on the WSRB and WLB.

WMRB上のデータの処理が行われているとき、PFMTでデータ処理位置が判明するため、PFMT2は無効となる。WSRB、WLB上のデータが処理されているとき、PFMTは次にWMRB上のデータ処理が行われる位置を示し、PFMT2は実際にデータ処理が行われている位置を示すことになる。   When data on the WMRB is being processed, the data processing position is determined by the PFMT, so the PFMT2 is invalid. When data on WSRB and WLB is being processed, PFMT indicates a position where data processing on WMRB is performed next, and PFMT2 indicates a position where data processing is actually performed.

従来のデータ処理装置では、このようなバッファ構成において既にデータの準備が終わっているがまだ処理が行われていないエリア数(以下、「データ残量」とする。)を計算し、データ残量が規定値より少なく、バッファアンダーランとなったとき、データ処理装置のハードウェア(以下、「H/W」とする。)は割り込みのアサートや必要な処理を行い、またF/Wも割り込みを受けて各種アンダーラン対策処理などを行うようなバッファアンダーラン対策を行っていた。   In a conventional data processing apparatus, the number of areas (hereinafter referred to as “data remaining amount”) for which data preparation has been completed but processing has not yet been performed in such a buffer configuration is calculated, and the data remaining amount is calculated. Is less than the specified value and a buffer underrun occurs, the data processor hardware (hereinafter referred to as “H / W”) performs interrupt assertion and necessary processing, and the F / W also interrupts. In response to this, buffer underrun countermeasures such as various underrun countermeasure processing were taken.

ここで、図9に示す例では、PHSTはエリア6、PFMTはエリア1を指しており、この状態でPHSTが動かないとしたときに、PFMTはエリア1〜エリア3を処理した後、WLBにジャンプしてエリア8〜エリア12まで処理を行ってから再びWMRBに戻りエリア4、エリア5の処理を行うことになる。このことからこの時の本来のデータ残量は、リングバッファ構造を考慮した上でポインタPHSTとPFMTとの差分値(以降、PHST−PFMT)にWLBのエリア数を足したものになる。
特開2003−77131号公報
Here, in the example shown in FIG. 9, PHST points to area 6 and PFMT points to area 1. When PHST does not move in this state, PFMT processes area 1 to area 3 and then changes to WLB. After jumping and performing processing from area 8 to area 12, returning to WMRB again, processing of area 4 and area 5 is performed. Therefore, the original remaining data at this time is obtained by adding the number of WLB areas to the difference value between the pointers PHST and PFMT (hereinafter, PHST-PFMT) in consideration of the ring buffer structure.
JP 2003-77131 A

しかし、上記従来のデータ処理装置では、各エリアにポインタ制御コマンドが格納されるため、H/WでPFMTがいつジャンプを行うか判定するにはPHSTとPFMT間の全てのエリアのポインタ制御コマンドを事前に読まなければならなかった。このような制御コマンドの先読み処理はパフォーマンスを悪化させて処理のリアルタイム性を損なうため、バッファアンダーランのようにリアルタイム制御が必要なケースでは致命的となる。そこで、従来のデータ処理装置では第1のバッファであるWMRBのデータ残量のみを使用、つまり第2のバッファであるWSRB、WLBのデータ残量は考慮せず単にPHST−PFMTの値のみを用いてバッファアンダーランを判定していた。   However, in the above conventional data processing device, pointer control commands are stored in each area. Therefore, in order to determine when the PFMT jumps in H / W, pointer control commands for all areas between PHST and PFMT are used. I had to read it in advance. Such control command prefetch processing deteriorates performance and impairs real-time processing, and is fatal in the case where real-time control is necessary, such as buffer underrun. Therefore, the conventional data processing apparatus uses only the remaining data of WMRB, which is the first buffer, that is, uses only the value of PHST-PFMT without considering the remaining data of WSRB, WLB, which is the second buffer. Was determining a buffer underrun.

この判定方法を用いた場合、例えば、上記図9に示す例では、本来のデータ残量は10であるのに対して、PHST−PFMTが5であることからデータ残量を5としてバッファアンダーラン判定を行ってしまう。従って、例えば、バッファアンダーラン判定の閾値を7とした場合、本来はバッファアンダーランではないにもかかわらずバッファアンダーランと検出されることになる。   When this determination method is used, for example, in the example shown in FIG. 9 above, the original data remaining amount is 10, whereas PHST-PFMT is 5, so that the data remaining amount is 5 and the buffer underrun. Judgment is made. Therefore, for example, if the buffer underrun determination threshold is set to 7, a buffer underrun is detected even though it is not originally a buffer underrun.

このようなバッファアンダーラン誤検出が生じると、H/W及びF/Wが不要なバッファアンダーラン対応処理を行ってしまい、パフォーマンスが低下する。   When such a buffer underrun erroneous detection occurs, a buffer underrun handling process that does not require H / W and F / W is performed, and the performance deteriorates.

また、このような問題を避けるためにWSRB、WLBなどの第2のバッファも考慮したデータ残量を計算しようとすると、PHSTからPFMTまでの全てのエリアのポインタ制御コマンドを読む必要が生じる。この動作はリアルタイムで行えないため、リアルタイム性を求めるシステムでは実現不可能である。また、リアルタイム性を求めないシステムでもSDRAMとのデータ送受信の増加を招いてしまう。   In order to avoid such a problem, if it is attempted to calculate the remaining amount of data in consideration of the second buffer such as WSRB and WLB, it is necessary to read pointer control commands for all areas from PHST to PFMT. Since this operation cannot be performed in real time, it cannot be realized in a system that requires real-time performance. Further, even in a system that does not require real-time characteristics, data transmission / reception with the SDRAM is increased.

そこで、本発明は、正確なバッファのデータ残量を検出することによって、バッファアンダーラン誤検出のないデータ処理装置及びデータの残量検出方法を提供することを目的とする。   SUMMARY OF THE INVENTION An object of the present invention is to provide a data processing apparatus and a data remaining amount detection method that are free from erroneous detection of buffer underrun by detecting an accurate remaining amount of data in a buffer.

上記目的を達成するために、請求項1に記載の発明は、コンピュータ装置から転送されるデータに基づいて、記録媒体に記録するためのデータを生成して出力するデータ処理装置において、コンピュータ装置から転送されるデータを所定エリア単位で順次格納する第1のバッファと、前記記録媒体への記録処理内容に応じて生成されるデータを所定エリア単位で順次格納する第2のバッファと、前記各バッファに所定エリア単位で格納されているデータを処理するために用いられ、繰り返し処理すべきデータのエリア数を示す繰り返し数フィールドを有する制御コマンドを複数格納するコマンド記憶部と、前記コマンド記憶部に格納した制御コマンドに基づいて前記各バッファのデータに所定の処理を施して出力するデータ制御部とを備え、前記コマンド記憶部に格納されている制御コマンドの繰り返し数フィールドの値の総和と、前記コンピュータ装置から転送されているが制御コマンドが生成されていないデータの数と、前記コマンド記憶部に格納されている制御コマンドのうち処理中である制御コマンドの残りの繰り返し回数とに基づいて、前記第1のバッファ及び前記第2のバッファのデータ残量を検出することを特徴とする。   In order to achieve the above object, an invention according to claim 1 is a data processing device for generating and outputting data to be recorded on a recording medium based on data transferred from a computer device. A first buffer for sequentially storing data to be transferred in units of predetermined areas; a second buffer for sequentially storing data generated in accordance with the recording processing content to the recording medium in units of predetermined areas; A command storage unit for storing a plurality of control commands having a repetition number field indicating the number of areas of data to be repeatedly processed, which is used for processing data stored in a predetermined area unit, and stored in the command storage unit A data control unit that performs predetermined processing on the data of each buffer based on the control command and outputs the data, The total number of control command repetition number fields stored in the command storage unit, the number of data transferred from the computer device but for which no control command has been generated, and stored in the command storage unit The remaining amount of data in the first buffer and the second buffer is detected based on the remaining number of repetitions of the control command being processed among the control commands being processed.

また、請求項2に記載の発明は、請求項1に記載の発明において、前記コマンド記憶部から取り出して転送された制御コマンドの繰り返し数フィールドの値からこの制御コマンドによって処理したデータのエリア数を減算した値を格納する実行カウンタレジスタを備え、前記実行カウンタレジスタに基づいて、前記コマンド記憶部に格納されている制御コマンドのうち処理中の制御コマンドの残りの繰り返し回数を検出することを特徴とする。   According to a second aspect of the present invention, in the first aspect of the present invention, the number of areas of data processed by the control command is determined from the value of the repeat number field of the control command extracted from the command storage unit and transferred. An execution counter register for storing a subtracted value is provided. Based on the execution counter register, the remaining number of repetitions of the control command being processed among the control commands stored in the command storage unit is detected. To do.

また、請求項3に記載の発明は、請求項1又は請求項2に記載の発明において、前記コンピュータ装置から転送されるデータを所定のパケットサイズで書き込みを行うときに、前記コンピュータ装置から転送されたデータのうちパケットサイズに対する端数の値を格納する転送データカウンタレジスタを備え、前記転送データカウンタレジスタに基づいて、前記コンピュータ装置から転送されているが制御コマンドが生成されていないデータ数を検出することを特徴とする。   The invention according to claim 3 is transferred from the computer apparatus when writing data transferred from the computer apparatus in a predetermined packet size in the invention according to claim 1 or claim 2. A transfer data counter register for storing a fractional value for the packet size among the received data, and detecting the number of data transferred from the computer device but for which no control command is generated based on the transfer data counter register It is characterized by that.

また、請求項4に記載の発明は、コンピュータ装置から転送されるデータに基づいて、記録媒体に記録するためのデータを生成して出力するデータ処理装置における出力可能なデータ残量を検出するデータ残量検出方法において、コンピュータ装置から転送されるデータを所定エリア単位で順次第1のバッファに格納するステップと、前記記録媒体への記録処理内容に応じて生成されるデータを所定エリア単位で順次第2のバッファに格納するステップと、前記各バッファに所定エリア単位で格納されているデータを処理するために用いられ、繰り返し処理すべきデータのエリア数を示す繰り返し数フィールドを有する制御コマンドを、前記コンピュータ装置から転送されるデータに応じて順次生成してコマンド記憶部に格納するステップと、前記コマンド記憶部に格納した制御コマンドに基づいて前記各バッファのデータに所定の処理を施して出力するステップと、前記コマンド記憶部に格納されている制御コマンドの繰り返し数フィールドの値の総和と、前記コンピュータ装置から転送されているが制御コマンドが生成されていないデータの数と、前記コマンド記憶部に格納されている制御コマンドのうち処理中の制御コマンドの残りの繰り返し回数とに基づいて、前記第1のバッファ及び前記第2のバッファのデータ残量を検出するステップとを有することを特徴とする。   According to a fourth aspect of the present invention, there is provided data for detecting a remaining amount of data that can be output in a data processing device that generates and outputs data to be recorded on a recording medium based on data transferred from a computer device. In the remaining amount detection method, the step of sequentially storing the data transferred from the computer device in a predetermined area unit in the first buffer, and the data generated in accordance with the recording processing contents on the recording medium are sequentially performed in the predetermined area unit. A step of storing in the second buffer; and a control command having a repetition number field indicating the number of areas of data to be repeatedly processed, which is used for processing data stored in each buffer in a predetermined area unit. Generating sequentially according to data transferred from the computer device and storing it in the command storage unit; A step of performing a predetermined process on the data of each buffer based on a control command stored in the command storage unit and outputting the data; a sum of values in a repetition number field of the control command stored in the command storage unit; Based on the number of data transferred from the computer device but for which no control command is generated, and the remaining number of repetitions of the control command being processed among the control commands stored in the command storage unit, And detecting the remaining amount of data in the first buffer and the second buffer.

本発明によれば、コマンド記憶部に格納されている制御コマンドの繰り返し数フィールドの値の総和と、コンピュータ装置から転送されているが制御コマンドが生成されていないデータの数と、コマンド記憶部に格納されている制御コマンドのうち処理中である制御コマンドの残りの繰り返し回数とに基づいて、第1のバッファ及び第2のバッファのデータ残量を検出するので、正確なバッファのデータ残量を検出することができ、バッファアンダーランの誤検出を回避することができる。   According to the present invention, the sum of the values in the number of repetitions field of the control command stored in the command storage unit, the number of data transferred from the computer device but for which no control command is generated, and the command storage unit Since the remaining amount of data in the first buffer and the second buffer is detected based on the remaining number of repetitions of the control command being processed among the stored control commands, an accurate remaining data amount in the buffer is obtained. It can be detected, and erroneous detection of buffer underrun can be avoided.

本実施形態におけるデータ処理装置は、外部のコンピュータ装置であるホストとCDやDVDなどの光ディスク(記録媒体の一例に相当)への記録を行う光ディスク記録部との間に設けられるものであり、ホストから転送されるデータに基づいて、光ディスクに記録するためのデータを生成して光ディスク記録部へ出力する装置であり、光ディスクにデータを格納する光ディスク装置などに用いられるものである。なお、このデータ処理装置は、LSI(半導体集積回路)などによって構成される。   The data processing apparatus in the present embodiment is provided between a host that is an external computer apparatus and an optical disk recording unit that performs recording on an optical disk (e.g., an example of a recording medium) such as a CD or a DVD. Is a device that generates data to be recorded on an optical disk based on data transferred from the optical disk and outputs the data to an optical disk recording unit, and is used for an optical disk device that stores data on an optical disk. The data processing apparatus is configured by an LSI (semiconductor integrated circuit) or the like.

そして、データ処理装置は、ホストから転送されるデータを所定エリア単位で順次格納する第1のバッファと、光ディスクへの記録処理内容に応じて生成されるデータを所定エリア単位で順次格納する第2のバッファと、各バッファに所定エリア単位で格納されているデータを処理するために用いられ、繰り返し処理すべきデータのエリア数を示す繰り返し数フィールドを有する制御コマンドを複数格納するコマンド記憶部と、コマンド記憶部に格納した制御コマンドに基づいて各バッファのデータに所定の処理を施して出力するデータ制御部とを備えている。   The data processing apparatus stores a first buffer for sequentially storing data transferred from the host in units of predetermined areas, and a second buffer for sequentially storing data generated in accordance with the contents of recording processing on the optical disk in units of predetermined areas. And a command storage unit for storing a plurality of control commands having a repetition number field indicating the number of areas of data to be repeatedly processed, used for processing data stored in units of predetermined areas in each buffer, A data control unit that performs predetermined processing on the data in each buffer based on a control command stored in the command storage unit and outputs the data.

さらに、データ処理装置は、コマンド記憶部に格納されている制御コマンドの繰り返し数フィールドの値の総和と、ホストから転送されているが制御コマンドが生成されていないデータの数と、コマンド記憶部に格納されている制御コマンドのうち処理中である制御コマンドの残りの繰り返し回数とに基づいて、第1のバッファ及び第2のバッファのデータ残量を検出するようにしている。   Further, the data processing device includes the sum of the values in the control command repetition count field stored in the command storage unit, the number of data transferred from the host but for which no control command has been generated, and the command storage unit. The remaining amount of data in the first buffer and the second buffer is detected based on the remaining number of repetitions of the control command being processed among the stored control commands.

このように構成しているため、第1バッファと第2バッファの正確なデータ残量を検出することができ、従って、バッファアンダーランの誤検出を回避することができる。   Since it is configured in this way, it is possible to detect the correct remaining amount of data in the first buffer and the second buffer, and therefore it is possible to avoid erroneous detection of buffer underrun.

また、このように従来であれば、各バッファに格納していた制御コマンドをコマンド記憶部に格納するようにしているため、生成された制御コマンドで処理すべきデータのエリア数を容易に検出することができる。   In addition, as described above, since the control command stored in each buffer is stored in the command storage unit in the prior art, the number of areas of data to be processed with the generated control command can be easily detected. be able to.

さらに、コマンド記憶部から取り出して転送された制御コマンドの繰り返し数フィールドの値からこの制御コマンドによって処理したデータのエリア数を減算した値を格納する実行カウンタレジスタを備え、実行カウンタレジスタに基づいて、コマンド記憶部に格納されている制御コマンドのうち処理中の制御コマンドの残りの繰り返し回数を検出するので、H/Wによってリアルタイムで残りの繰り返し回数を検出することができる。   Furthermore, an execution counter register for storing a value obtained by subtracting the number of areas of data processed by the control command from the value of the control command repetition number field taken out from the command storage unit and transferred, based on the execution counter register, Since the remaining number of repetitions of the control command being processed among the control commands stored in the command storage unit is detected, the remaining number of repetitions can be detected in real time by H / W.

さらに、ホストから転送されるデータを所定のパケットサイズで書き込みを行うときに、ホストから転送されたデータのうちパケットサイズに対する端数の値を格納する転送データカウンタレジスタを備え、転送データカウンタレジスタに基づいて、ホストから転送されているが制御コマンドが生成されていないデータ数を検出するようにしているので、H/Wによってリアルタイムで制御コマンドが生成されていないデータ数を検出することができる。   In addition, when data transferred from the host is written with a predetermined packet size, a transfer data counter register is provided for storing a fractional value for the packet size of the data transferred from the host. Based on the transfer data counter register Since the number of data transferred from the host but for which no control command is generated is detected, the number of data for which no control command is generated in real time can be detected by H / W.

以下、本実施形態におけるデータ処理装置について図面を参照しながら具体的に説明する。図1は本実施形態におけるデータ処理装置1のブロック図である。   Hereinafter, the data processing apparatus according to the present embodiment will be specifically described with reference to the drawings. FIG. 1 is a block diagram of a data processing apparatus 1 in the present embodiment.

本実施形態におけるデータ処理装置1は、ホストから転送されるデータ(以下、「受信データ」とする。)及び光ディスクへの記録内容に従って生成したデータ(以下、「生成データ」とする。)を一時的にバッファに格納した後、光ディスクへの記録内容に従ってバッファからデータを取り出し、光ディスク記録部のエンコーダに送信する装置である。   The data processing apparatus 1 according to the present embodiment temporarily stores data transferred from the host (hereinafter referred to as “received data”) and data generated according to the contents recorded on the optical disc (hereinafter referred to as “generated data”). After the data is stored in the buffer, the data is taken out from the buffer according to the contents recorded on the optical disk and transmitted to the encoder of the optical disk recording unit.

図1に示すように、データ処理装置1は、受信データ及び生成データを所定エリア単位で一時的に格納するデータ記憶部10と、このデータ記憶部10の各バッファに所定エリア単位で格納されているデータを処理するために用いられる制御コマンドを一時的に格納するコマンド記憶部20と、データ記憶部10とデータの送受信を行うデータアクセス部30と、コマンド記憶部20と制御コマンドの送受信を行うコマンドアクセス部40と、受信データや生成データに関する制御を行うデータ制御部50と、制御コマンドに関する制御を行うコマンド制御部60と、データ処理装置1全体を制御するCPU70とを有している。また、データ制御部50は、エンコーダに出力可能なデータ残量が所定以下の場合にバッファアンダーランであると判定し、バーンプルーフ機能を動作させる。   As shown in FIG. 1, the data processing device 1 includes a data storage unit 10 that temporarily stores received data and generated data in units of predetermined areas, and each buffer of the data storage unit 10 stores the data in units of predetermined areas. A command storage unit 20 that temporarily stores control commands used to process data, a data access unit 30 that transmits / receives data to / from the data storage unit 10, and transmission / reception of control commands to / from the command storage unit 20 A command access unit 40, a data control unit 50 that performs control related to received data and generated data, a command control unit 60 that performs control related to a control command, and a CPU 70 that controls the entire data processing apparatus 1 are included. Further, the data control unit 50 determines that the buffer underrun occurs when the remaining amount of data that can be output to the encoder is equal to or less than a predetermined value, and operates the burn-proof function.

データ記憶部10は、記憶領域を所定エリア単位に分割したSDRAMから構成されており、ホストから転送されるデータである受信データをエリア単位で順次格納するための第1のバッファであるWMRB(メインディングバッファ)と、光ディスクへの記録処理内容に従って後述のCPU70で生成されるデータを所定エリア単位で順次格納するための第2のバッファであるWSRB(サブリングバッファ)及びWLB(リニアバッファ)とを有している。これらのバッファは、従来技術の欄で説明したように、PHST、PFMT、PFMT2などのポインタに基づいてデータの書込み及び読み出しが行われる(図8,図9参照)。   The data storage unit 10 is composed of an SDRAM in which a storage area is divided into predetermined area units, and a WMRB (main buffer) that is a first buffer for sequentially storing received data, which is data transferred from a host, in area units. And a second buffer WSRB (sub-ring buffer) and WLB (linear buffer) for sequentially storing data generated by a CPU 70, which will be described later, in predetermined area units in accordance with the recording processing contents on the optical disk. Have. As described in the section of the prior art, these buffers write and read data based on pointers such as PHST, PFMT, and PFMT2 (see FIGS. 8 and 9).

なお、光ディスクへの記録処理内容に従って生成されるデータとして、リンクデータやポーズデータなどがある。また、第2のバッファは、2つに限られず、又一つであってもよい。データ記憶部10としてSDRAMが使用されるが、これに限られない。各エリアには、それぞれ一定容量のデータが格納可能である。   Note that data generated in accordance with the content of recording processing on the optical disc includes link data and pause data. Further, the number of second buffers is not limited to two and may be one. An SDRAM is used as the data storage unit 10, but is not limited thereto. Each area can store a certain amount of data.

コマンド記憶部20は、制御コマンドを一時的に格納する装置であり、システム要求、コスト、処理の複雑さに応じて、フリップフロップ、SRAM、SDRAMなどの記憶素子を使用することができる。   The command storage unit 20 is a device that temporarily stores control commands, and can use storage elements such as flip-flops, SRAMs, and SDRAMs according to system requirements, costs, and processing complexity.

また、制御コマンドは、図2に示すように、繰り返し数フィールド、ポインタ制御フィールド、データ処理フィールドから構成される。   Further, as shown in FIG. 2, the control command includes a repetition number field, a pointer control field, and a data processing field.

繰り返し数フィールドには、その制御コマンドによって同一バッファ上のデータに対する処理を繰り返す回数が設定される。このフィールドが設けられることによって、CPU70は、同一のデータ処理内容の制御コマンドをコマンド記憶部20へ複数回書き込む必要がなくなり、CPU70の負荷低減と共にコマンド記憶部20のメモリエリアの低減が可能となる。この繰り返し回数フィールドに指定された回数の実行が終わると次の制御コマンドがフェッチされ実行される。制御コマンドの繰り返し数フィールドに0が指定されている場合、書き込み終了を意味する。   In the repeat number field, the number of times the process for data on the same buffer is repeated by the control command is set. By providing this field, the CPU 70 does not need to write the control command having the same data processing content to the command storage unit 20 a plurality of times, and the memory area of the command storage unit 20 can be reduced along with the load reduction of the CPU 70. . When the number of executions specified in the repetition number field is completed, the next control command is fetched and executed. When 0 is specified in the repeat number field of the control command, it means that the writing is finished.

この繰り返しフィールドの追加により、制御コマンドが共通なエリアに対しては1つの制御コマンドで複数のエリアの処理を行うことが可能となる。このように、従来であれば各エリアに格納されていた同一の制御コマンドを共通化でき、SDRAMの領域を軽減することが可能となる。   By adding this repeated field, it becomes possible to process a plurality of areas with one control command for an area having a common control command. As described above, the same control command stored in each area in the prior art can be shared, and the SDRAM area can be reduced.

コマンド記憶部20の例を図3に示す。コマンド記憶部20は、リングコマンドバッファ(以下、「WRCB」とする。)とリニアコマンドバッファ(以下、「WLCB」とする。)の2種類から構成される。WRCBはリングバッファ構造、WLCBはリニアバッファ構造を取る。WRCBはホストから転送されるデータである受信データを処理する制御コマンド(以下、「受信データ処理コマンド」とする。)を格納し、WLCBはデータ処理装置1内部で生成するデータである生成データを処理する制御コマンド(以下、「生成データ処理コマンド」とする。)を格納するのに用いる。また、制御コマンドを格納する書き込み位置を示すポインタをPCMDと定義し、制御コマンドを取得する読み出し位置を示すポインタをGCMDと定義する。GCMDはWRCBとWLCB間を移動することが可能である。   An example of the command storage unit 20 is shown in FIG. The command storage unit 20 includes two types of a ring command buffer (hereinafter referred to as “WRCB”) and a linear command buffer (hereinafter referred to as “WLCB”). WRCB has a ring buffer structure and WLCB has a linear buffer structure. The WRCB stores a control command for processing received data that is data transferred from the host (hereinafter referred to as “received data processing command”), and the WLCB stores generated data that is generated inside the data processing apparatus 1. Used to store control commands to be processed (hereinafter referred to as “generated data processing commands”). In addition, a pointer indicating a writing position for storing a control command is defined as PCMD, and a pointer indicating a reading position for acquiring a control command is defined as GCMD. GCMD can move between WRCB and WLCB.

ポインタ制御フィールドには、各バッファの次に読み出すべきデータの位置を示すリードポインタであるPFMTを制御するポインタ制御コマンドが格納される。すなわち、ポインタ制御フィールドは、PFMTが指すエリアをデータ処理コマンドに従って処理した後、PFMTをどのように制御するかが設定される。そして、その設定内容に従って、PFMTをインクリメントし、又PFMTを指定エリアに移動させる等の制御が行われる。   The pointer control field stores a pointer control command for controlling the PFMT, which is a read pointer indicating the position of data to be read next in each buffer. That is, in the pointer control field, how the PFMT is controlled after the area pointed to by the PFMT is processed according to the data processing command is set. Then, in accordance with the setting contents, control such as incrementing the PFMT and moving the PFMT to the designated area is performed.

また、繰り返しフィールドにて、繰り返し回数が2以上設定されている場合、最後の繰り返し前までは、PFMTのインクリメントを行い、最後の繰り返しのときにPFMTを指定エリアに移動させるようにポインタ制御コマンドを設定できる。   If the number of repetitions is set to 2 or more in the repetition field, the PFMT is incremented until the last repetition, and a pointer control command is issued so that the PFMT is moved to the designated area at the last repetition. Can be set.

さらに、制御コマンドで第2のバッファ(WSRB、WLB)の処理を行うときに、バッファの一つのエリアを繰り返し処理するために、PFMTを移動させないようにポインタ制御フィールドを設定できる。   Furthermore, when processing the second buffer (WSRB, WLB) with a control command, the pointer control field can be set so as not to move the PFMT in order to repeatedly process one area of the buffer.

なお、WMRBに関し、未使用位置の先頭位置を示すライトポインタであるPHSTがあり、このPHSTは、PFMTと共にバッファ制御部52で管理される。ここで、例えば、PHSTとPFMTが図8に示す格納位置を示している場合、WMRBのエリア1,2にデータが格納されていることになる。このPHSTとPFMTの差分がWMRBに格納されているデータのエリア数となり、図8の場合は、エリア数2となる。   Regarding WMRB, there is a PHST which is a write pointer indicating the head position of an unused position, and this PHST is managed by the buffer control unit 52 together with the PFMT. Here, for example, when PHST and PFMT indicate the storage positions shown in FIG. 8, data is stored in areas 1 and 2 of WMRB. The difference between PHST and PFMT is the number of areas of data stored in WMRB. In the case of FIG.

データ処理フィールドには、データ記憶部10に格納されている所定エリア単位の各データをどのように処理するかを示す情報が設定される。   In the data processing field, information indicating how to process each data in a predetermined area stored in the data storage unit 10 is set.

この処理内容は、光ディスクのフォーマットに従ったデータ生成に関するものである。例えば、CDの場合、記録時にSYNC(同期信号)を生成する、HEADERを生成するなどである。   This processing content relates to data generation according to the format of the optical disc. For example, in the case of a CD, SYNC (synchronization signal) is generated at the time of recording, and HEADER is generated.

図2で示したコマンド形態を用いてバッファ残量を計算する方法の一例を説明する。上述のように、光ディスクにデータを記録する際にはSDRAMを所定エリア単位に分割し、そこにWMRB、WSRB、WLBなどのバッファ領域を確保している。WMRB上のデータは外部ホストから任意のタイミングで送られ、WSRB,WLB上のデータは事前にCPU70によって準備される。WMRB以外のデータに関しては事前にCPU70で必ず準備するという制約があるため、WMRBの処理が終わりWMRB以外の制御コマンドが処理可能になった時点で、WMRB以外の制御コマンドは繰り返し数に設定された回数分確実に実行できることになる。   An example of a method for calculating the remaining buffer capacity using the command form shown in FIG. 2 will be described. As described above, when data is recorded on the optical disk, the SDRAM is divided into predetermined area units, and buffer areas such as WMRB, WSRB, and WLB are secured therein. The data on the WMRB is sent from the external host at an arbitrary timing, and the data on the WSRB and WLB is prepared by the CPU 70 in advance. Since there is a restriction that data other than WMRB must be prepared in advance by the CPU 70, the control command other than WMRB is set to the number of repetitions when the WMRB processing is completed and the control command other than WMRB can be processed. It will be possible to execute as many times as possible.

ここで、CDパケットライトする場合の制御コマンドを用いて正しいデータ残量を計算してみる。CDのパケットライトとはホストから送られるデータをパケット単位に分け、パケット毎にリンク用のデータを生成して付加する記録方法である。パケットサイズを16エリア、リンク用のデータを7エリア、ホストから転送されるデータ数を48エリアとした場合、コマンド記憶部20に格納される制御コマンドは図4のようになり、以下のフローにより処理が行われる。
1)WLB1(Link−Runin)を5エリア処理した後、WMRBに戻る。
2)WMRBを16エリア処理した後、WLBにジャンプする。
3)WLBで7エリア処理した後、WMRBに戻る。
4)WMRBを16エリア処理した後、WLBにジャンプする。
5)WLBを7エリア処理した後、WMRBに戻る。
6)WMRBを16エリア処理した後、WLB2にジャンプする。
7)WLB2(Runout−Link)を3エリア処理する。
8)処理を終了する。
Here, the correct remaining data amount is calculated using a control command for writing a CD packet. CD packet write is a recording method in which data sent from a host is divided into packets, and link data is generated and added for each packet. When the packet size is 16 areas, the link data is 7 areas, and the number of data transferred from the host is 48 areas, the control commands stored in the command storage unit 20 are as shown in FIG. Processing is performed.
1) After processing 5 areas of WLB1 (Link-Runin), return to WMRB.
2) After processing WMRB for 16 areas, jump to WLB.
3) After processing 7 areas with WLB, return to WMRB.
4) After 16 areas of WMRB are processed, jump to WLB.
5) After processing 7 areas of WLB, return to WMRB.
6) After 16 areas of WMRB are processed, jump to WLB2.
7) Process 3 areas of WLB2 (Runout-Link).
8) End the process.

この時、ホストからのデータ転送に従いPHSTは増加するが、フォーマット処理は起動されてないため、PFMTが変化しない。このようなケースではWMRB上のデータ残量「PHST−PFMT」の値を使ってWLBも考慮したデータ残量を以下のように計算することができる。
a)[PHST−PFMT]<16 の場合
上記1)のWLBへの5エリアの処理が確定するため、
データ残量=[PHST−PFMT]+5
b)16≦[PHST−PFMT]<32 の場合
上記2)のWLBへのジャンプと7エリアの処理が確定するため、
データ残量=[PHST−PFMT]+12
c)32≦[PHST−PFMT]<48 の場合
上記2)に加えて、上記4)のWLBへのジャンプも確定するため、
データ残量=[PHST−PFMT]+19
d)48≦[PHST−PFMT] の場合
上記1)から上記7)までの全ての処理が行えることが確定するため、
データ残量=70
この計算方法を用いれば、PHST−PFMTの値を調べることで第1のバッファであるWMRB以外の第2のバッファのデータも含めた正しいデータ残量を計算することができる。しかし、この計算方法が成立するのはPFMTが変化しないケースにおいてのみであり、データ処理を開始し、PFMTが変化している状況下では、上記の計算方法を使用することができない。
At this time, PHST increases in accordance with the data transfer from the host, but the PFMT does not change because the formatting process is not activated. In such a case, the remaining amount of data in consideration of WLB can be calculated using the value of the remaining amount of data “PHST-PFMT” on WMRB as follows.
a) When [PHST-PFMT] <16 Since the processing of 5 areas to the WLB in 1) above is confirmed,
Remaining data = [PHST−PFMT] +5
b) When 16 ≦ [PHST−PFMT] <32 Since the jump to WLB and the processing of 7 areas in 2) above are confirmed,
Remaining data = [PHST−PFMT] +12
c) When 32 ≦ [PHST−PFMT] <48 In addition to 2) above, the jump to WLB in 4) above is also determined.
Remaining data = [PHST-PFMT] +19
d) When 48 ≦ [PHST-PFMT] Since it is determined that all the processes from 1) to 7) can be performed,
Remaining data = 70
By using this calculation method, it is possible to calculate the correct remaining data amount including the data of the second buffer other than the WMRB that is the first buffer by examining the value of PHST-PFMT. However, this calculation method is valid only in a case where the PFMT does not change, and the above calculation method cannot be used in a situation where data processing is started and the PFMT is changing.

例えば、PHST−PFMT=18の場合、転送データが2つのリンクデータにまたがる場合はデータ残量が32となるが、1つのリンクデータしかまたがらない場合は25ということになる。つまり、データ残量は、ホストからのデータ転送の状況とデータ処理の状況によって変化する。   For example, in the case of PHST-PFMT = 18, the remaining data amount is 32 when the transfer data spans two link data, but 25 when only one link data spans. That is, the remaining amount of data changes depending on the status of data transfer from the host and the status of data processing.

ホストからのデータ転送の状況とデータ処理の状況をリアルタイムで検出する処理をCPU70で行うことも可能であるが、光ディスクへのデータ記録スピードが高倍速になった場合、処理が間に合わずデータをエンコーダに送れない状況が発生する可能性がある。その時、不必要な記録中断が発生してしまい、データ処理装置としてのパフォーマンス低下を招いてしまう。   Although it is possible for the CPU 70 to perform processing for detecting the status of data transfer from the host and the status of data processing in real time, if the data recording speed to the optical disk becomes high, the processing is not in time and the data is not encoded. There is a possibility that a situation that cannot be sent to At that time, unnecessary recording interruption occurs, leading to performance degradation as a data processing apparatus.

そこで、本実施形態におけるデータ処理装置1においては、データ処理を開始し、PFMTが変化している状況下においても、図2で示したコマンド形態を用いてバッファ残量を計算する構成をH/Wを用いて行うことができるようにしている。   Therefore, the data processing apparatus 1 according to the present embodiment has a configuration in which the remaining buffer capacity is calculated using the command form shown in FIG. 2 even when data processing is started and the PFMT is changing. It can be performed using W.

また、第1のバッファであるWMRBを使用しないデータ記録の場合、CPU70が各データ内容と記録サイズを把握しているため、光ディスクへの記録前に全てのデータと制御コマンドを指定エリアに格納しておくことが可能である。そのため、高倍速記録が対象になった場合でも問題なく記録することが可能である。しかし、第1のバッファであるWMRBを使用するデータ記録の場合、ホストから転送されるデータ量が光ディスクへの記録前に分からないため、ホストからデータが転送された後に転送数をカウントして、コマンド記憶部20に制御コマンドを格納する必要がある。つまり、リアルタイムに制御コマンドを格納しなくてはならない。   In the case of data recording without using the first buffer WMRB, since the CPU 70 knows the contents of each data and the recording size, all data and control commands are stored in the designated area before recording on the optical disk. It is possible to keep. Therefore, even when high-speed recording is targeted, it is possible to record without any problem. However, in the case of data recording using the WMRB as the first buffer, the amount of data transferred from the host is not known before recording on the optical disc, so the number of transfers is counted after the data is transferred from the host, It is necessary to store control commands in the command storage unit 20. That is, the control command must be stored in real time.

上述のCDパケットライトの場合では、ホストから転送されてくるデータ数をカウントし、パケットサイズである16エリア分カウントした時点でコマンド記憶部20にパケット用の制御コマンドを格納する必要がある。また、リンク用の制御コマンドについては、パケット用の制御コマンドを格納した後、ホストから1エリア分のデータが転送された時点(リンクデータが確定された時点)で格納しなくてはならない。   In the case of the above-described CD packet write, it is necessary to count the number of data transferred from the host and store the packet control command in the command storage unit 20 when the packet size is counted for 16 areas. The link control command must be stored at the time when data for one area is transferred from the host (when link data is determined) after the packet control command is stored.

リアルタイムに制御コマンドを格納する処理をCPUで行うことも可能であるが、光ディスクへのデータ記録スピードが高倍速になった場合、処理が間に合わずデータを後段のエンコーダに送れない状況が発生する可能性がある。その時、不必要な記録中断が発生してしまい、データ処理装置としてのパフォーマンス低下を招いてしまう。   The process of storing control commands in real time can be performed by the CPU, but when the data recording speed to the optical disc becomes high, the situation may occur that the processing cannot be done in time and the data cannot be sent to the subsequent encoder. There is sex. At that time, unnecessary recording interruption occurs, leading to performance degradation as a data processing apparatus.

そこで、本実施形態におけるデータ処理装置1においては、ホストからのデータ転送時に必要な制御コマンドをH/Wにより自動で格納する構成をH/Wで行うようにしている。   In view of this, in the data processing apparatus 1 according to the present embodiment, a configuration in which a control command necessary for data transfer from the host is automatically stored in H / W is performed in H / W.

データアクセス部30は、データ制御部50からの命令により、データ記憶部10へアクセスして、データ記憶部10の各データの書き込みや読み出しを行う。CPU70からアクセスする際はデータ制御部50を経由する。データアクセス部30は、データ制御部50から、バッファのエリア番号と、バッファへの書き込み(以下、「ライトアクセス」とする。)か、バッファからの読み込み(以下、「リードアクセス」とする。)かを示す判別信号とを受信し、受信した信号に従ってデータ記憶部10へのアクセスを行う。また、データ記憶部10における各エリアのデータにフィールドを設ける場合、データ制御部50からフィールドの識別信号などを受け取り、受け取った識別信号に従ってデータ記憶部10へのアクセスを行う。   The data access unit 30 accesses the data storage unit 10 according to an instruction from the data control unit 50 and writes or reads each data in the data storage unit 10. When accessing from the CPU 70, it goes through the data control unit 50. The data access unit 30 receives the buffer area number from the data control unit 50 and writes to the buffer (hereinafter referred to as “write access”) or reads from the buffer (hereinafter referred to as “read access”). The data storage unit 10 is accessed according to the received signal. In addition, when providing a field for data in each area in the data storage unit 10, a field identification signal is received from the data control unit 50, and the data storage unit 10 is accessed according to the received identification signal.

コマンドアクセス部40は、コマンド制御部60からコマンド記憶部20に格納された制御コマンドにアクセスする際に用いられる。CPU70からアクセスする際はコマンド制御部60を経由して行われる。コマンドアクセス部40は、コマンド制御部60から、コマンド番号、リードアクセスかライトアクセスかの判別信号などを受け取り、受け取った信号に従って制御コマンドの送受信を行う。   The command access unit 40 is used when accessing a control command stored in the command storage unit 20 from the command control unit 60. Access from the CPU 70 is performed via the command control unit 60. The command access unit 40 receives a command number, a read access / write access determination signal, and the like from the command control unit 60 and transmits / receives a control command according to the received signal.

データ制御部50は、内部にフォーマット処理部51及びバッファ制御部52を有している。フォーマット処理部51は、制御コマンドに従ってフォーマット処理を行う装置である。すなわち、フォーマット処理部51は、データアクセス部30を介して該当するエリアのデータを取得し、コマンド制御部60から取得した制御コマンドに従ってフォーマット処理を行う。また、バッファ制御部52は、データ記憶部10におけるポインタの管理などを行う装置である。   The data control unit 50 includes a format processing unit 51 and a buffer control unit 52 therein. The format processing unit 51 is a device that performs format processing in accordance with a control command. That is, the format processing unit 51 acquires data of the corresponding area via the data access unit 30 and performs format processing according to the control command acquired from the command control unit 60. The buffer control unit 52 is a device that manages pointers in the data storage unit 10.

コマンド制御部60は、バッファ制御部61を有する。このバッファ制御部61は、コマンド記憶部20における各ポインタの管理、バッファデータ残量の管理等を行う。図5にコマンド制御部60が有する内部レジスタを示す。なお、これらの内部レジスタは、データ処理装置1における初期化段階でCPU70によって初期化される。   The command control unit 60 has a buffer control unit 61. The buffer control unit 61 manages each pointer in the command storage unit 20, manages the remaining buffer data, and the like. FIG. 5 shows an internal register included in the command control unit 60. Note that these internal registers are initialized by the CPU 70 at the initialization stage in the data processing apparatus 1.

図5に示すように、コマンド制御部60は、実行コマンド転送部62と制御コマンド転送部63とを備えている。   As shown in FIG. 5, the command control unit 60 includes an execution command transfer unit 62 and a control command transfer unit 63.

実行コマンド転送部62は、ホストから送られてくるデータに合わせて制御コマンドを格納する機能を有しており、内部レジスタとして、制御コマンドレジスタ81、実行カウンタレジスタ82などを備えている。   The execution command transfer unit 62 has a function of storing a control command in accordance with data sent from the host, and includes a control command register 81, an execution counter register 82, and the like as internal registers.

制御コマンドレジスタ81は、コマンド記憶部20から取得した制御コマンドが格納されるレジスタである。この制御コマンドレジスタ81に格納されている制御コマンドが実行コマンド転送部62によってデータ制御部50へ転送される。   The control command register 81 is a register that stores a control command acquired from the command storage unit 20. The control command stored in the control command register 81 is transferred to the data control unit 50 by the execution command transfer unit 62.

実行カウンタレジスタ82は、データ制御部50に転送した制御コマンドをあと何回(何エリア分)実行する必要があるかを示す値が格納されるレジスタである。実行カウンタレジスタ82には、制御コマンドを取得したタイミングで制御コマンドの繰り返しフィールドの値が格納され、データ制御部50のフォーマット処理部51においてフォーマット処理が行われる毎に格納した値が実行コマンド転送部62によって1ずつ減算される。すなわち、実行カウンタレジスタ82には、コマンド記憶部20から取り出して転送された制御コマンドの繰り返し数フィールドの値からこの制御コマンドによって処理したデータのエリア数を減算した値が格納されることになる。実行カウンタレジスタ82の値が0になったタイミングで実行コマンド転送部62はコマンド記憶部20から新規の制御コマンドを取得し、データ制御部50に転送する。   The execution counter register 82 is a register that stores a value indicating how many times (for how many areas) the control command transferred to the data control unit 50 needs to be executed. The execution counter register 82 stores the value of the repeat field of the control command at the timing when the control command is acquired, and the value stored each time the format processing is performed in the format processing unit 51 of the data control unit 50 is the execution command transfer unit. One is subtracted by 62. That is, the execution counter register 82 stores a value obtained by subtracting the number of areas of data processed by this control command from the value of the control command repetition number field fetched from the command storage unit 20 and transferred. At the timing when the value of the execution counter register 82 becomes 0, the execution command transfer unit 62 acquires a new control command from the command storage unit 20 and transfers it to the data control unit 50.

制御コマンド転送部63は、データ制御部50に通知する機能を有しており、内部レジスタとして、パケットデータ用制御コマンドレジスタ91、リンクデータ用制御コマンドレジスタ92、パディングデータ用制御コマンドレジスタ93、転送終了用制御コマンドレジスタ94、パディング先エリアレジスタ95、転送終了先エリアレジスタ96、パケットサイズ(格納閾値)レジスタ97、転送データカウンタレジスタ98などを有している。   The control command transfer unit 63 has a function of notifying the data control unit 50, and as internal registers, a packet data control command register 91, a link data control command register 92, a padding data control command register 93, and a transfer It has an end control command register 94, a padding destination area register 95, a transfer end destination area register 96, a packet size (storage threshold) register 97, a transfer data counter register 98, and the like.

パケットデータ用制御コマンドレジスタ91は、ホストから転送されるデータを処理するための制御コマンドを格納するレジスタである。このパケットデータ用制御コマンドレジスタ91には、初期化時にCPU70によりホストから転送されるデータを処理するための制御コマンドが格納される。この制御コマンドにおける繰り返し数フィールドの値はパケットサイズとなり、パケットサイズ(格納閾値)レジスタ値と一致していなければならない。また、DVDの場合はECCサイズである16を指定する必要がある。   The packet data control command register 91 is a register for storing a control command for processing data transferred from the host. The packet data control command register 91 stores a control command for processing data transferred from the host by the CPU 70 during initialization. The value of the repetition number field in this control command is the packet size and must match the packet size (storage threshold) register value. In the case of a DVD, it is necessary to specify 16, which is the ECC size.

リンクデータ用制御コマンドレジスタ92は、リンクデータを処理するための制御コマンドを格納するレジスタである。このリンクデータ用制御コマンドレジスタ92には、初期化時にCPU70によりリンクデータを処理するための制御コマンドが格納される。この制御コマンドにおける繰り返し数フィールドの値はCDの規格により7でなければならない。また、DVDの場合はリンクデータが存在しないため、このレジスタは使用しない。   The link data control command register 92 is a register for storing a control command for processing link data. The link data control command register 92 stores a control command for processing link data by the CPU 70 at the time of initialization. The value of the repetition number field in this control command must be 7 according to the CD standard. In the case of DVD, since there is no link data, this register is not used.

パディングデータ用制御コマンドレジスタ93は、パディングデータを処理するための制御コマンドを格納するレジスタである。パディングデータ用制御コマンドレジスタ93には、初期化時にCPU70によりパディングデータを処理するための制御コマンドが格納される。この制御コマンドにおける繰り返し数フィールドの値はホストから転送されるデータ数によって変化するため、データ転送終了時(Sync Cache発行時)に演算することとなる。   The padding data control command register 93 is a register for storing a control command for processing padding data. The padding data control command register 93 stores a control command for processing padding data by the CPU 70 at initialization. Since the value of the repetition number field in this control command varies depending on the number of data transferred from the host, it is calculated at the end of data transfer (when Sync Cache is issued).

転送終了用制御コマンドレジスタ94は、転送終了データ(CD:Runout−Link)を処理するための制御コマンドを格納するレジスタである。この転送終了用制御コマンドレジスタ94には、初期化時にCPU70により転送終了データを処理するための制御コマンドが格納される。この制御コマンドにおける繰り返し数フィールドの値は、CDの規格により3でなければならない。また、DVDの場合は終了時のデータが存在しないため、このレジスタは使用しない。   The transfer end control command register 94 is a register for storing a control command for processing transfer end data (CD: Runout-Link). The transfer end control command register 94 stores a control command for processing transfer end data by the CPU 70 at initialization. The value of the repetition number field in this control command must be 3 according to the CD standard. In the case of a DVD, there is no data at the end, so this register is not used.

パディング先エリアレジスタ95は、データ記憶部10の内部でパディング先エリアとして確保したエリアの先頭エリア番号を格納するレジスタである。このパディング先エリアレジスタ95は、パディング処理が必要な場合であって、制御コマンドのポインタ制御フィールドの値を変更する場合に使用されるレジスタである。   The padding destination area register 95 is a register for storing the head area number of an area secured as a padding destination area in the data storage unit 10. The padding destination area register 95 is a register that is used when padding processing is required and the value of the pointer control field of the control command is changed.

転送終了先エリアレジスタ96は、データ記憶部10の内部で転送終了エリア(CD:Runout−Link)として確保したエリアの先頭エリア番号を格納するレジスタである。このパディング先エリアレジスタ95は、転送終了エリアの処理を行う場合であって、制御コマンドのポインタ制御フィールドの値を変更する場合に使用する。また、DVDの場合は終了時のデータが存在しないため、このレジスタは使用しない。   The transfer end area register 96 is a register for storing the head area number of an area secured as a transfer end area (CD: Runout-Link) in the data storage unit 10. This padding destination area register 95 is used when processing the transfer end area and changing the value of the pointer control field of the control command. In the case of a DVD, there is no data at the end, so this register is not used.

パケットサイズ(格納閾値)レジスタ97は、パケットデータ用制御コマンドを格納するかどうかを判定する閾値を格納するレジスタである。このレジスタ97には、初期化時にCPU70により上記閾値が格納される。なお、パケットサイズは書き込み前にホストからコマンドで通知される。また、DVDの場合はECCサイズである16を指定する必要がある。   The packet size (storage threshold) register 97 is a register that stores a threshold for determining whether or not to store a packet data control command. The threshold value is stored in the register 97 by the CPU 70 at the time of initialization. The packet size is notified by a command from the host before writing. In the case of a DVD, it is necessary to specify 16, which is the ECC size.

転送データカウンタレジスタ98は、ホストから転送されたデータのうちパケットサイズに対する端数の値が格納されるレジスタである。パケットサイズが16の場合、この転送データカウンタレジスタ98の値は必ず16以下となる。また、転送データカウンタレジスタ98の値は、初期化時にCPUで0クリアを行う必要がある。   The transfer data counter register 98 is a register that stores a fractional value with respect to the packet size among the data transferred from the host. When the packet size is 16, the value of the transfer data counter register 98 is always 16 or less. The value of the transfer data counter register 98 must be cleared to 0 by the CPU at the time of initialization.

CPU70は、F/Wに従って各装置の初期設定、起動、バッファアンダーラン等の割り込みに応じた処理やデータアクセス部30を通じたデータへのアクセス、コマンドアクセス部40を通じた制御コマンドへのアクセスなどの様々な処理を行う。   The CPU 70 performs initial processing of each device according to F / W, activation, processing in response to an interrupt such as buffer underrun, access to data through the data access unit 30, access to a control command through the command access unit 40, and the like. Perform various processes.

以上のように構成されたデータ処理装置1の動作を、コマンド制御部60の動作を主として図6のフローチャートを参照して具体的に説明する。なお、PCMDがWRCB上の最終制御コマンドを指しているときにPCMDに1加算した場合は、PCMDはWRCBの先頭制御コマンドを指すことになる(WRCB上をループする)。   The operation of the data processing apparatus 1 configured as described above will be specifically described with reference to the flowchart of FIG. Note that when 1 is added to PCMD when PCMD indicates the final control command on WRCB, PCMD indicates the head control command of WRCB (loops on WRCB).

まず、CPU70は、データ記憶部10、コマンド記憶部20、データ制御部50、コマンド制御部60などの各部の初期設定を行う(ステップS1)。コマンド制御部60の内部レジスタの初期化処理やデータ記憶部10上に準備しておく必要があるデータ(パディングデータ、Runout−Linkデータ等)についてもこのタイミングで処理が行われる。   First, the CPU 70 performs initial setting of each unit such as the data storage unit 10, the command storage unit 20, the data control unit 50, and the command control unit 60 (step S1). The initialization processing of the internal register of the command control unit 60 and data (padding data, Runout-Link data, etc.) that need to be prepared on the data storage unit 10 are also processed at this timing.

データ制御部50は、その後、ホストからの転送データを受信すると、転送データを受信した旨の通知(転送通知)をコマンド制御部60に通知する。また、ホストからのデータ転送が全て終了してSync Cacheコマンドをホストから受信すると、コマンド制御部60にその旨の通知(Sync Cache通知)を行う。   Thereafter, when receiving the transfer data from the host, the data control unit 50 notifies the command control unit 60 of a notification (transfer notification) that the transfer data has been received. Further, when the data transfer from the host is completed and the Sync Cache command is received from the host, the command control unit 60 is notified (Sync Cache notification).

コマンド制御部60は、データ制御部50から転送通知又はSync Cache通知を受信したか否かを判定する(ステップS2)。   The command control unit 60 determines whether a transfer notification or a sync cache notification is received from the data control unit 50 (step S2).

この処理において、コマンド制御部60は、データ制御部50から転送通知を受信したと判定すると(ステップS2:転送通知有)、転送データカウンタレジスタ98の値を1だけインクリメントして(ステップS3)、処理をステップS4に移行する。   In this process, if the command control unit 60 determines that a transfer notification has been received from the data control unit 50 (step S2: transfer notification present), the command control unit 60 increments the value of the transfer data counter register 98 by 1 (step S3), The process proceeds to step S4.

ステップS4において、コマンド制御部60は、転送データカウンタレジスタ98の値がパケットサイズ(格納閾値)レジスタ97の値と一致しているかを判定する。   In step S 4, the command control unit 60 determines whether the value of the transfer data counter register 98 matches the value of the packet size (storage threshold) register 97.

この処理において、転送データカウンタレジスタ98の値がパケットサイズ(格納閾値)レジスタ97の値と一致していないと判定すると(ステップS4:No)、コマンド制御部60は、ステップS2〜S4までの処理を、転送データカウンタレジスタ98の値とパケットサイズ(格納閾値)レジスタ97の値とが一致するまで繰り返し行う。   In this process, if it is determined that the value of the transfer data counter register 98 does not match the value of the packet size (storage threshold) register 97 (step S4: No), the command control unit 60 performs the processes from step S2 to S4. Are repeated until the value of the transfer data counter register 98 matches the value of the packet size (storage threshold) register 97.

一方、転送データカウンタレジスタ98の値とパケットサイズ(格納閾値)レジスタ97の値とが一致していると判定すると(ステップS4:Yes)、コマンド制御部60は、PCMDが示すコマンド記憶部20の格納位置にパケットデータ用の制御コマンドを格納し(ステップS5)、PCMDの値を1だけインクリメントして(ステップS6)、処理をステップS7に移行する。   On the other hand, if it is determined that the value of the transfer data counter register 98 matches the value of the packet size (storage threshold) register 97 (step S4: Yes), the command control unit 60 stores the command storage unit 20 indicated by the PCMD. A control command for packet data is stored at the storage position (step S5), the value of PCMD is incremented by 1 (step S6), and the process proceeds to step S7.

ステップS7において、コマンド制御部60は、転送データカウンタレジスタ98の値を0にリセットする。   In step S7, the command control unit 60 resets the value of the transfer data counter register 98 to zero.

データ制御部50は、その後、ホストからデータがホストからの転送データを受信すると、転送通知をコマンド制御部60に通知する。この段階で7エリア分のリンクデータが確定することになる。また、Sync Cacheコマンドをホストから受信すると、コマンド制御部60にその旨の通知(Sync Cache通知)を行う。   Thereafter, when the data received from the host receives the transfer data from the host, the data control unit 50 notifies the command control unit 60 of a transfer notification. At this stage, the link data for seven areas is determined. In addition, when a Sync Cache command is received from the host, the command control unit 60 is notified to that effect (Sync Cache notification).

コマンド制御部60は、ステップS3と同様に、データ制御部50から転送通知又はSync Cache通知を受信したか否かを判定する(ステップS8)。   Similarly to step S3, the command control unit 60 determines whether a transfer notification or a sync cache notification is received from the data control unit 50 (step S8).

この処理において、データ制御部50から転送通知又はSync Cache通知を受信していないと判定すると(ステップS8:No)、コマンド制御部60は、転送通知又はSync Cache通知を受信するまで、ステップS8の判定を繰り返し行う。   In this process, if it is determined that the transfer notification or the sync cache notification is not received from the data control unit 50 (step S8: No), the command control unit 60 proceeds to step S8 until the transfer notification or the sync cache notification is received. Repeat the determination.

一方、転送通知又はSync Cache通知を受信したと判定すると(ステップS8:転送通知有)、コマンド制御部60は、転送データカウンタレジスタ98の値を1だけインクリメントし(ステップS9)、PCMDが示すコマンド記憶部20の格納位置にリンクデータ用の制御コマンドを格納して(ステップS10)、さらに、PCMDの値を1だけインクリメントして(ステップS11)、処理をステップS2に戻す。   On the other hand, when determining that the transfer notification or the sync cache notification is received (step S8: transfer notification present), the command control unit 60 increments the value of the transfer data counter register 98 by 1 (step S9), and the command indicated by the PCMD A control command for link data is stored in the storage position of the storage unit 20 (step S10), the value of PCMD is incremented by 1 (step S11), and the process returns to step S2.

コマンド制御部60は、データ制御部50においてホストからの転送データを受信している間、ステップS2〜S11の処理を繰り返すことになる。   The command control unit 60 repeats the processes in steps S2 to S11 while the data control unit 50 receives the transfer data from the host.

ステップS2又はステップS8において、データ制御部50からSync Cache通知を受信したと判定すると(ステップS2,S8:Sync Cache有)、コマンド制御部60は、パディング処理を行うか否かを判定する。   If it is determined in step S2 or step S8 that the Sync Cache notification has been received from the data control unit 50 (steps S2 and S8: with Sync Cache), the command control unit 60 determines whether to perform padding processing.

パディング処理は、ホストから転送されたデータのデータ数がパケットサイズの倍数でない場合、つまり端数が存在する場合に必要になる処理である。すなわち、ホストから転送されたデータは、必ずパケット単位で終了する必要があり、CD/DVDの規格により定められている。転送データの端数は転送データカウンタレジスタ98に格納される。この時、パディング数を演算する必要があるが、以下の処理によりで演算することが可能である。   The padding process is necessary when the number of data transferred from the host is not a multiple of the packet size, that is, when there is a fraction. That is, the data transferred from the host must be terminated in units of packets and is defined by the CD / DVD standard. The fraction of the transfer data is stored in the transfer data counter register 98. At this time, the number of padding needs to be calculated, but can be calculated by the following processing.

すなわち、ホストからコマンドで通知されるパケットサイズ(格納閾値)の値はパケットサイズ(格納閾値)レジスタ97に格納されており、この値から転送データカウンタレジスタ98の値を減算して、パディングサイズ(PADSIZE)を算出する(ステップS12)。例えば、CDのパケットサイズが16で転送データカウンタが9の場合は、パディングサイズは7となる。   That is, the packet size (storage threshold) value notified by the command from the host is stored in the packet size (storage threshold) register 97, and the value of the transfer data counter register 98 is subtracted from this value to obtain the padding size ( PADSIZE) is calculated (step S12). For example, if the CD packet size is 16 and the transfer data counter is 9, the padding size is 7.

その後、コマンド制御部60は、最終パケットサイズが16であるか否かを判定する(ステップS13)。パケットサイズが16であるか否かは、ステップS12において算出したパディングサイズが0であるか否かで判定する。この処理において、パケットサイズが16ではないと判定されると(ステップS13:Yes)、コマンド制御部60は、パディング処理が必要と判定し、ステップS12において算出されたパディングサイズの値をパディングデータ用制御コマンドレジスタ93の繰り返し数フィールドの値とし、以下のステップS14〜S17のパディング処理を開始する。   Thereafter, the command control unit 60 determines whether or not the final packet size is 16 (step S13). Whether or not the packet size is 16 is determined by whether or not the padding size calculated in step S12 is 0. In this process, when it is determined that the packet size is not 16 (step S13: Yes), the command control unit 60 determines that the padding process is necessary, and uses the padding size value calculated in step S12 for padding data. The value of the repetition number field of the control command register 93 is set, and the following padding processing in steps S14 to S17 is started.

ステップS14において、コマンド制御部60は、パケットデータ用制御コマンドレジスタ91からパケットデータ用の制御コマンドを取り出して、PCMDが示すコマンド記憶部20の格納位置にパケットデータ用の制御コマンドを格納し(ステップS14)、PCMDの値を1だけインクリメントして(ステップS15)、処理をステップS16に移行する。   In step S14, the command control unit 60 retrieves the packet data control command from the packet data control command register 91, and stores the packet data control command in the storage location of the command storage unit 20 indicated by the PCMD (step S14). S14) The value of PCMD is incremented by 1 (step S15), and the process proceeds to step S16.

ステップS16において、コマンド制御部60は、パディングデータ用の制御コマンドの繰り返し数は、ステップS12において算出したパディングサイズの値として、パディングデータ用制御コマンドレジスタ93からパディングデータ用の制御コマンドを取り出して、PCMDが示すコマンド記憶部20の格納位置にパディングデータ用の制御コマンドを格納し(ステップS16)、PCMDの値を1だけインクリメントして(ステップS17)、処理をステップS18に移行する。   In step S16, the command control unit 60 extracts the padding data control command from the padding data control command register 93 as the padding size value calculated in step S12 as the number of padding data control command repetitions. The control command for padding data is stored in the storage position of the command storage unit 20 indicated by PCMD (step S16), the value of PCMD is incremented by 1 (step S17), and the process proceeds to step S18.

このように、転送データが端数の場合に、コマンド記憶部20に格納する制御コマンドとして、ホストから転送された端数分のデータを処理するパケットデータ用の制御コマンド、パディングデータを処理するパディングデータ用の制御コマンドの順番で制御コマンドを格納することによって、パディング処理を実現している。   As described above, when the transfer data is a fraction, as a control command to be stored in the command storage unit 20, a control command for packet data that processes data for the fraction transferred from the host, and for padding data that processes padding data By storing the control commands in the order of the control commands, padding processing is realized.

ステップS17の処理が終了したとき、或いはステップS13においてパケットサイズが16であると判定されたとき(ステップS13:No)、コマンド制御部60は、転送終了用制御コマンドレジスタ94から転送終了用データを処理するための制御コマンドを取り出して、PCMDが示すコマンド記憶部20の格納位置に格納する(ステップS18)。転送終了用データはRunout−Linkのデータであり、サイズは3と規格で定められている。この処理を終了することで一連の書き込み処理を完了する。   When the process of step S17 is completed, or when it is determined in step S13 that the packet size is 16 (step S13: No), the command control unit 60 transfers the transfer end data from the transfer end control command register 94. A control command for processing is taken out and stored in the storage position of the command storage unit 20 indicated by PCMD (step S18). The transfer end data is Runout-Link data, and the size is 3 and is defined by the standard. By ending this process, a series of writing processes is completed.

次に、データ記憶部10に格納されているデータに対してフォーマット処理を行う一連のシーケンスについて説明する。この処理は、ホストから転送されたデータをデータ記憶部10に格納する上述の処理と並行して行われる処理である。   Next, a series of sequences for performing format processing on the data stored in the data storage unit 10 will be described. This process is a process performed in parallel with the above-described process of storing data transferred from the host in the data storage unit 10.

(1)まず、コマンド制御部60は、コマンド記憶部20のGCMDが示す位置の制御コマンドを取得し、制御コマンドレジスタ81に格納する。同時に取得した制御コマンドの繰り返し数フィールドに格納されている繰り返し数の値を実行カウンタレジスタ82にコピーして格納する。その後、GCMDの値を1だけインクリメントする。   (1) First, the command control unit 60 acquires a control command at a position indicated by GCMD in the command storage unit 20 and stores it in the control command register 81. The value of the repetition number stored in the repetition number field of the control command acquired at the same time is copied and stored in the execution counter register 82. Thereafter, the value of GCMD is incremented by 1.

(2)次に、コマンド制御部60は、コマンド記憶部20から取得した制御コマンドをデータ制御部50に転送する。データ制御部50は、コマンド制御部60から制御コマンドを受信すると、エリア単位でPFMTが示す位置のデータを取得する。   (2) Next, the command control unit 60 transfers the control command acquired from the command storage unit 20 to the data control unit 50. When the data control unit 50 receives a control command from the command control unit 60, the data control unit 50 acquires data at a position indicated by the PFMT in area units.

(3)データ制御部50は、取得したデータに対し、コマンド制御部60から受信した制御コマンドに従ってフォーマット処理を行う。フォーマット処理が1エリア分終了すると、データ制御部50は、フォーマット終了済みデータをエンコーダブロックに転送する。同時にデータ処理が終了したことをコマンド制御部60に通知する。   (3) The data control unit 50 performs format processing on the acquired data according to the control command received from the command control unit 60. When the formatting process is completed for one area, the data control unit 50 transfers the formatted data to the encoder block. At the same time, the command control unit 60 is notified that the data processing has been completed.

(4)コマンド制御部60は、データ制御部50からデータ処理が終了した通知を受けると、実行カウンタレジスタ82の値を1だけデクリメントする。その後、コマンド制御部60は、実行カウンタレジスタ82の値が0になったと判定すると、処理を上記(1)に移行する。一方、実行カウンタレジスタ82の値が0ではないと判定すると、処理を上記(3)に移行する。以上の手順でフォーマット処理が行われる。   (4) When the command control unit 60 receives a notification that the data processing is completed from the data control unit 50, the command control unit 60 decrements the value of the execution counter register 82 by one. Thereafter, when the command control unit 60 determines that the value of the execution counter register 82 has become 0, the process proceeds to (1) above. On the other hand, if it is determined that the value of the execution counter register 82 is not 0, the process proceeds to (3) above. Format processing is performed according to the above procedure.

このように構成されたデータ処理装置1において、第1のバッファであるWMRB、第2のバッファであるWSRB,WLBのデータ残量をコマンド制御部60によって次のように検出している。   In the data processing apparatus 1 configured as described above, the command control unit 60 detects the remaining amount of data in the WMRB that is the first buffer and the WSRB and WLB that are the second buffers as follows.

すなわち、コマンド制御部60は、コマンド記憶部20に格納されている制御コマンドの繰り返し数フィールドの値の総和と、コマンド制御部60の転送データカウンタレジスタ98の値と、コマンド制御部60の実行カウンタレジスタ82の値とに基づいて、それぞれコマンド記憶部20に格納されている制御コマンドによって未処理のデータのエリア数と、ホストからデータ自体は転送されているが制御コマンドに格納していないデータのエリア数と、コマンド記憶部20に格納されている制御コマンドのうち処理中である制御コマンドの残りの繰り返し回数とを検出し、これらを加算することで、バッファデータ残量の正確な値を算出する。   That is, the command control unit 60 includes the sum of the values in the control command repetition count field stored in the command storage unit 20, the value of the transfer data counter register 98 of the command control unit 60, and the execution counter of the command control unit 60. Based on the value of the register 82, the number of areas of unprocessed data by the control command stored in the command storage unit 20 and the data that has been transferred from the host but not stored in the control command. Detecting the number of areas and the remaining number of repetitions of the control command being processed among the control commands stored in the command storage unit 20, and adding them together, calculates the exact value of the remaining buffer data To do.

このようにコマンド制御部60によって、コマンド記憶部20に格納されている制御コマンドの繰り返し数フィールドの値の総和と、コマンド制御部60の転送データカウンタレジスタ98の値と、コマンド制御部60の実行カウンタレジスタ82の値とを加算することにより、ホストから転送され、バッファに格納された未処理のデータのエリア数と、処理が確定しているリンクデータ数(エリア数)とを加算した結果と同じ結果を導き出すことができ、これによりバッファデータ残量の正確な値を算出することができる。   In this way, the command control unit 60 performs the sum of the values in the control command repetition count field stored in the command storage unit 20, the value of the transfer data counter register 98 of the command control unit 60, and the execution of the command control unit 60. By adding the value of the counter register 82, the result of adding the number of areas of unprocessed data transferred from the host and stored in the buffer and the number of link data (number of areas) for which processing has been established The same result can be derived, whereby an accurate value of the remaining buffer data can be calculated.

なお、本実施形態においては、CDパケットライトにおける例を説明したが、DVDの記録に対しても対応が可能である。DVDの記録時にはパケットサイズを16にする必要がある。これはECCの概念でECC=16となるからである。また、CDのパケットライトではパケット間にリンクデータが必要となるが、DVDではECCの境界にリンクデータは必要ないため、図6におけるフローチャートにおいてリンクデータの付加に関する機能部分はOFFにする必要がある。そこで、コマンド制御部60にCD/DVD等を選択する内部レジスタを準備し、光ディスクの種類によってリンク処理に関連する機能をON/OFFで切り替えるようにする。   In the present embodiment, an example of CD packet writing has been described, but it is also possible to deal with DVD recording. The packet size needs to be 16 when recording a DVD. This is because ECC = 16 in the concept of ECC. Further, in CD packet writing, link data is required between packets. In DVD, however, link data is not required at the ECC boundary. Therefore, in the flowchart shown in FIG. . Therefore, an internal register for selecting CD / DVD or the like is prepared in the command control unit 60, and the function related to link processing is switched ON / OFF depending on the type of the optical disk.

以上のように本実施形態におけるデータ処理装置によれば、第2のバッファであるWSRB、WLBも考慮した正しいデータ残量をパフォーマンス低下などの悪影響を少なく、もしくは悪影響を及ぼさずに計算することができる。従って、正しいデータ残量を使ってバッファアンダーラン検出を行うことができ、従来技術の問題点であったバッファアンダーラン誤検出が回避できる。バッファアンダーラン誤検出が回避できることにより、不必要なバッファアンダーラン対応処理を行わなくて済み、不要な処理によるパフォーマンスの悪化を防ぐことができる。   As described above, according to the data processing apparatus of the present embodiment, the correct remaining data amount in consideration of the second buffers WSRB and WLB can be calculated with little or no adverse effect such as performance degradation. it can. Therefore, buffer underrun detection can be performed using the correct remaining data amount, and erroneous detection of buffer underrun, which was a problem of the prior art, can be avoided. By avoiding erroneous detection of buffer underrun, unnecessary buffer underrun handling processing can be omitted, and performance deterioration due to unnecessary processing can be prevented.

また、従来においては同じ制御コマンドを複数回SDRAM上に書く必要があったが、本実施形態におけるデータ処理装置では、SDRAM中に制御コマンドを書く場合でも同じコマンドは1回だけ書けばよく、SDRAMの使用量が削減できる。   In the past, the same control command had to be written on the SDRAM a plurality of times. However, in the data processing apparatus according to the present embodiment, even when the control command is written in the SDRAM, the same command only needs to be written once. Can be reduced.

また、従来においては制御コマンドを変更する場合、全ての対象エリアの制御コマンドを書き換える必要があり、複数のエリアの制御コマンドを書き換える場合、複数のエリアにアクセスする必要が生じるため、書き換のためのSDRAMへのアクセスが記録パフォーマンスを低下させることがあった。本実施形態におけるデータ処理装置では、同じ制御コマンドを複数回書く必要がなくなったため、仮にSDRAMに制御コマンドを置く場合でもSDRAMへのアクセス量が減少する。また、制御コマンドをSRAM、フリップフロップなどに保存する場合は制御コマンド書き換えによるSDRAMへのアクセスは必要なくなる。SDRAMへのアクセスの削減によって制御コマンドを修正して記録を再開するときの処理パフォーマンスが向上する。   Also, in the past, when changing a control command, it is necessary to rewrite the control command for all target areas. When rewriting a control command for multiple areas, it is necessary to access multiple areas. In some cases, access to the SDRAM may degrade the recording performance. In the data processing apparatus according to the present embodiment, since it is no longer necessary to write the same control command multiple times, the amount of access to the SDRAM is reduced even if the control command is placed in the SDRAM. Further, when the control command is stored in the SRAM, flip-flop, etc., it is not necessary to access the SDRAM by rewriting the control command. By reducing the access to the SDRAM, the processing performance is improved when the control command is corrected and recording is resumed.

また、従来においては、各エリアのデータを処理する場合、制御コマンド受信、データ受信、データ処理、ポインタ処理を繰り返すことで処理を行っていたが、本実施形態におけるデータ処理装置では、制御コマンドが共通なエリアに対しては制御コマンドを一旦受信した後、各エリアはデータ受信、データ処理、ポインタ処理を繰り返すことで処理を行うことができ、制御コマンド受信処理回数を削減でき記録処理のパフォーマンスが向上する。   Conventionally, when processing data in each area, processing is performed by repeating control command reception, data reception, data processing, and pointer processing. However, in the data processing apparatus according to the present embodiment, the control command is Once a control command is received for a common area, each area can be processed by repeating data reception, data processing, and pointer processing, reducing the number of control command reception processing and reducing recording processing performance. improves.

また、本実施形態におけるデータ処理装置では、ホストからの転送データをリアルタイムでカウントし、H/Wにより自動で制御コマンドを格納することにより、高倍速記録時においても問題なく記録が可能となる。また、CPUリソースが必要な箇所をH/W化することによって、低いCPUリソースでも高倍速対応が可能となる。   In the data processing apparatus according to the present embodiment, the transfer data from the host is counted in real time, and the control command is automatically stored by H / W, so that recording can be performed without any problem even during high-speed recording. In addition, by using H / W at a place where CPU resources are required, it is possible to cope with high speed even with low CPU resources.

本発明の一実施形態に係るデータ処理装置のブロック図である。It is a block diagram of a data processor concerning one embodiment of the present invention. 図1におけるデータ処理装置の制御コマンドの構成を示す図である。It is a figure which shows the structure of the control command of the data processor in FIG. 図1におけるデータ処理装置のコマンド記憶部の構成を示す図である。It is a figure which shows the structure of the command memory | storage part of the data processor in FIG. 図3のコマンド記憶部に格納される制御コマンドの例を示す図である。It is a figure which shows the example of the control command stored in the command memory | storage part of FIG. 図3のコマンド記憶部の内部レジスタを説明するための図である。It is a figure for demonstrating the internal register of the command memory | storage part of FIG. 図1のデータ処理装置1の動作を説明するためのフローチャートである。3 is a flowchart for explaining the operation of the data processing apparatus 1 of FIG. 1. 従来のデータフォーマットを示す図である。It is a figure which shows the conventional data format. ポインタとバッファ構成との関係を説明するための図である。It is a figure for demonstrating the relationship between a pointer and a buffer structure. ポインタとバッファ構成との関係を説明するための図である。It is a figure for demonstrating the relationship between a pointer and a buffer structure.

符号の説明Explanation of symbols

1 データ処理装置
10 データ記憶部
20 コマンド記憶部
30 データアクセス部
40 コマンドアクセス部
50 データ制御部
51 フォーマット処理部
52 データ制御部のバッファ制御部
60 コマンド制御部
61 コマンド制御部のバッファ制御部
70 CPU
81 制御コマンドレジスタ
82 実行カウンタレジスタ
91 パケットデータ用制御コマンドレジスタ
92 リンクデータ用制御コマンドレジスタ
93 パディングデータ用制御コマンドレジスタ
94 転送終了用制御コマンドレジスタ
95 パディング先エリアレジスタ
96 転送終了先エリアレジスタ
97 パケットサイズ(格納閾値)レジスタ
98 転送データカウンタレジスタ
DESCRIPTION OF SYMBOLS 1 Data processing apparatus 10 Data storage part 20 Command storage part 30 Data access part 40 Command access part 50 Data control part 51 Format processing part 52 Buffer control part of a data control part 60 Command control part 61 Buffer control part of a command control part 70 CPU
81 control command register 82 execution counter register 91 packet data control command register 92 link data control command register 93 padding data control command register 94 transfer end control command register 95 padding destination area register 96 transfer end destination area register 97 packet size (Storage threshold) register 98 Transfer data counter register

Claims (4)

コンピュータ装置から転送されるデータに基づいて、記録媒体に記録するためのデータを生成して出力するデータ処理装置において、
コンピュータ装置から転送されるデータを所定エリア単位で順次格納する第1のバッファと、
前記記録媒体への記録処理内容に応じて生成されるデータを所定エリア単位で順次格納する第2のバッファと、
前記各バッファに所定エリア単位で格納されているデータを処理するために用いられ、繰り返し処理すべきデータのエリア数を示す繰り返し数フィールドを有する制御コマンドを複数格納するコマンド記憶部と、
前記コマンド記憶部に格納した制御コマンドに基づいて前記各バッファのデータに所定の処理を施して出力するデータ制御部と、を備え、
前記コマンド記憶部に格納されている制御コマンドの繰り返し数フィールドの値の総和と、前記コンピュータ装置から転送されているが制御コマンドが生成されていないデータの数と、前記コマンド記憶部に格納されている制御コマンドのうち処理中である制御コマンドの残りの繰り返し回数とに基づいて、前記第1のバッファ及び前記第2のバッファのデータ残量を検出する
ことを特徴とするデータ処理装置。
In a data processing device that generates and outputs data for recording on a recording medium based on data transferred from a computer device,
A first buffer for sequentially storing data transferred from the computer device in units of predetermined areas;
A second buffer for sequentially storing data generated according to the content of recording processing on the recording medium in units of predetermined areas;
A command storage unit for storing a plurality of control commands having a repetition number field indicating the number of areas of data to be repeatedly processed, which is used for processing data stored in each buffer in a predetermined area unit;
A data control unit that performs a predetermined process on the data of each buffer based on a control command stored in the command storage unit, and outputs the data.
The total number of control command repetition count fields stored in the command storage unit, the number of data transferred from the computer device but for which no control command has been generated, and stored in the command storage unit A data processing device, comprising: detecting a remaining data amount of the first buffer and the second buffer based on a remaining number of repetitions of a control command being processed among the control commands being processed.
前記コマンド記憶部から取り出して転送された制御コマンドの繰り返し数フィールドの値からこの制御コマンドによって処理したデータのエリア数を減算した値を格納する実行カウンタレジスタを備え、
前記実行カウンタレジスタに基づいて、前記コマンド記憶部に格納されている制御コマンドのうち処理中の制御コマンドの残りの繰り返し回数を検出する
ことを特徴とする請求項1に記載のデータ処理装置。
An execution counter register for storing a value obtained by subtracting the number of areas of data processed by the control command from the value of the repetition number field of the control command taken out from the command storage unit and transferred;
The data processing apparatus according to claim 1, wherein a remaining number of repetitions of a control command being processed among the control commands stored in the command storage unit is detected based on the execution counter register.
前記コンピュータ装置から転送されるデータを所定のパケットサイズで書き込みを行うときに、前記コンピュータ装置から転送されたデータのうちパケットサイズに対する端数の値を格納する転送データカウンタレジスタを備え、
前記転送データカウンタレジスタに基づいて、前記コンピュータ装置から転送されているが制御コマンドが生成されていないデータ数を検出する
ことを特徴とする請求項1又は請求項2に記載のデータ処理装置。
A transfer data counter register for storing a fractional value for the packet size among the data transferred from the computer device when writing the data transferred from the computer device with a predetermined packet size;
The data processing apparatus according to claim 1, wherein the number of data transferred from the computer apparatus but not generated with a control command is detected based on the transfer data counter register.
コンピュータ装置から転送されるデータに基づいて、記録媒体に記録するためのデータを生成して出力するデータ処理装置における出力可能なデータ残量を検出するデータ残量検出方法において、
コンピュータ装置から転送されるデータを所定エリア単位で順次第1のバッファに記憶するステップと、
前記記録媒体への記録処理内容に応じて生成されるデータを所定エリア単位で順次第2のバッファに格納するステップと、
前記各バッファに所定エリア単位で格納されているデータを処理するために用いられ、繰り返し処理すべきデータのエリア数を示す繰り返し数フィールドを有する制御コマンドを、前記コンピュータ装置から転送されるデータに応じて順次生成してコマンド記憶部に格納するステップと、
前記コマンド記憶部に格納した制御コマンドに基づいて前記各バッファのデータに所定の処理を施して出力するステップと、
前記コマンド記憶部に格納されている制御コマンドの繰り返し数フィールドの値の総和と、前記コンピュータ装置から転送されているが制御コマンドが生成されていないデータの数と、前記コマンド記憶部に格納されている制御コマンドのうち処理中の制御コマンドの残りの繰り返し回数とに基づいて、前記第1のバッファ及び前記第2のバッファのデータ残量を検出するステップと、
を有するデータ残量検出方法。
In a data remaining amount detection method for detecting a remaining amount of data that can be output in a data processing device that generates and outputs data for recording on a recording medium based on data transferred from a computer device,
Sequentially storing data transferred from the computer device in a predetermined area unit in a first buffer;
Sequentially storing data generated according to the recording processing content on the recording medium in a second buffer in units of a predetermined area;
A control command having a repetition number field indicating the number of areas of data to be repeatedly processed is used according to the data transferred from the computer device. Sequentially generating and storing in the command storage unit,
Applying predetermined processing to the data of each buffer based on the control command stored in the command storage unit and outputting the data;
The total number of control command repetition count fields stored in the command storage unit, the number of data transferred from the computer device but for which no control command has been generated, and stored in the command storage unit Detecting the remaining amount of data in the first buffer and the second buffer based on the remaining number of repetitions of the control command being processed among the control commands being processed;
A method for detecting the remaining amount of data.
JP2006329744A 2006-12-06 2006-12-06 Data processor and method for detecting residual data amount of buffer Pending JP2008146697A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006329744A JP2008146697A (en) 2006-12-06 2006-12-06 Data processor and method for detecting residual data amount of buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006329744A JP2008146697A (en) 2006-12-06 2006-12-06 Data processor and method for detecting residual data amount of buffer

Publications (1)

Publication Number Publication Date
JP2008146697A true JP2008146697A (en) 2008-06-26

Family

ID=39606704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006329744A Pending JP2008146697A (en) 2006-12-06 2006-12-06 Data processor and method for detecting residual data amount of buffer

Country Status (1)

Country Link
JP (1) JP2008146697A (en)

Similar Documents

Publication Publication Date Title
JP2007133986A (en) Semiconductor memory
US5946708A (en) Automated cache manager for storage devices
US6216201B1 (en) Data processing apparatus using paged buffer memory for efficiently processing data of a compact digital disk
JP7038656B2 (en) Access to cache
US8181075B2 (en) Error correction device and recording and reproducing device
JP2008146697A (en) Data processor and method for detecting residual data amount of buffer
JP4285404B2 (en) Data control apparatus and buffer data remaining amount detection method
US7941574B2 (en) CKD partial record handling
JP2010218485A (en) Storage unit, data write method and data write program
KR100530549B1 (en) Data relay control apparatus
JP3300376B2 (en) Optical disk signal processing method
CN111045961A (en) Data processing method and storage controller using the same
JPH11120690A (en) Disk device and buffer control method
US8533565B2 (en) Cache controller and cache controlling method
JP4040557B2 (en) Memory copy controller
US9589624B2 (en) Semiconductor device, memory access control method, and semiconductor device system
JP3178445B2 (en) Counter device
JP2005196591A (en) Memory management method, and memory management device
US20060031604A1 (en) DMA transfer apparatus and method of controlling data transfer
JP2010054396A (en) Timing data transfer circuit
JP2007334463A (en) Auxiliary storage device and data transferring method
JP2007179084A (en) Disk device, and method of transferring data written in disk
JP3154414B2 (en) Semiconductor integrated circuit for signal processing of write-once optical disc
JP4715493B2 (en) Memory control device and memory control method
JP2006260710A (en) Data recording method, data recording control circuit and data recorder