A method and apparatus for transferring optical data from a DVD in response
to a request from a host. When a data request is issued, a portion of the
request containing the target ID for the target data block is used by a
comparator circuit to locate the target data block. Another portion of the
request containing the number of data blocks requested is used by a
monitoring circuit to monitor data block transfer from a DVD to a data
buffer once the target data block is located. The monitoring circuit stops
data transfer when all of the requested data blocks have been transferred.
Each data block is transferred into a data buffer containing areas
separated by pointers. In a scratch area of the data buffer, the data
block is error corrected, error checked and descrambled. After error
checking and descrambling, the data portions of the data block are
transferred to a data area in the data buffer, the auxiliary portions of
the data block are transferred to an auxiliary area in the data buffer and
the status of the error checking is latched into registers. Before any
data is transferred from the data buffer to the host through an interface,
the data status in the registers is checked. If no error is found in the
data, then the corresponding data portions of the data block is
transferred to the host.
Une méthode et un appareil pour transférer des données optiques à partir d'un DVD en réponse à une demande d'un centre serveur. Quand une demande de données est publiée, une partie de la demande contenant l'identification de cible pour le bloc de données de cible est employée par un circuit de comparateur pour localiser le bloc de données de cible. Une autre partie de la demande contenant le nombre de blocs de données demandés est employée par un circuit de surveillance pour surveiller le transfert par blocs de données à partir d'un DVD à un amortisseur de données une fois que le bloc de données de cible est localisé. Le circuit de surveillance arrête le transfert de données quand tous les blocs demandés de données ont été transférés. Chaque bloc de données est transféré dans un amortisseur de données contenant des secteurs séparés par des indicateurs. Dans une zone de travail de l'amortisseur de données, le bloc de données est erreur corrigée, erreur vérifiée et descrambled. Après la vérification des erreurs et descrambling, les parties de données du bloc de données sont transférées à un secteur de données dans l'amortisseur de données, les parties auxiliaires du bloc de données sont transférées à un secteur auxiliaire dans l'amortisseur de données et le statut de la vérification des erreurs est verrouillé dans des registres. Avant que n'importe quelles données soient transférées à partir de l'amortisseur de données au centre serveur par une interface, le statut de données dans les registres est vérifié. Si aucune erreur n'est trouvée dans les données, alors les parties correspondantes de données du bloc de données est transférées au centre serveur.