A method for writing data on an optical storage medium in an optical storage device includes transferring data by a direct memory access process from a host buffer allocated in a memory of a host device to a local write buffer associated with the optical storage device. The data is then written from the write buffer to the optical storage medium.

Patent
   6651113
Priority
Dec 22 1999
Filed
Dec 22 1999
Issued
Nov 18 2003
Expiry
Dec 22 2019
Assg.orig
Entity
Large
20
10
all paid
1. A method for writing data on an optical storage medium in an optical storage device, comprising:
designating an address in the a main memory of a host device as a host buffer for the optical storage device;
continuously pulling data by a circular direct memory access process from the host buffer;
delivering the data in an uninterrupted stream from the host buffer to a local write buffer associated with the optical storage device such that the write buffer is not underrun while the optical storage medium is completely written without interruption.
13. An article comprising a computer-readable medium that stores computer-executable instructions for writing an optical medium in an optical device, the instructions causing a computer to:
(a) transfer data to a host buffer allocated in the memory of a host device; and
(b) activate the direct memory access controller to continuously transfer data by a circular direct memory access process from the host buffer to a local write buffer associated with the optical storage device,
wherein data in the host buffer is available to the write buffer such that the write buffer is not underrun while the data storage medium is completely written without interruption.
19. An electronic device, comprising:
a recordable optical storage device; and
a host device comprising a main memory, a device driver interfaced with the optical storage device, and a direct memory access controller interfaced with the optical storage device, wherein the device driver is programmed to execute the following steps to write the optical storage device:
(a) allocate a portion of the main memory as a host buffer;
(b) transfer data FIFO, using the direct memory access controller, between the host buffer and a write buffer in the optical device; wherein data in the host buffer is available to the write buffer such that the write buffer is not underrun while the data storage medium is completely written without interruption.
8. An electronic device comprising:
a memory in a host device,
a direct memory access controller,
a data storage medium in an optical storage device, and
a driver for the optical storage device, wherein the driver is programmed to execute the following instructions to write the medium:
transfer data to a host buffer allocated in the memory of the host device; and
activate the direct memory access controller to continuously pull data by a circular direct memory access process from the host buffer to a local write buffer associated with the optical storage device such that the local write buffer is adequately filled with data to prevent underrun in the write buffer while the data storage medium is completely written without interruption.
17. An optical data storage system comprising:
an optical device having a data storage medium, and
an article comprising a computer-readable medium that stores computer-executable instructions for writing the optical medium, the instructions causing a computer to:
(a) allocate an array of memory regions in the main memory of a host device as a host buffer for the optical storage device;
(b) transfer data to the host buffer from a mass storage device;
(c) address the host buffer to transfer data, using a circular direct memory access process, to continuously transfer data between the host buffer and a write buffer on the optical storage device; and
(d) repeat step (c) such that the write buffer is not underrun until the optical device is completely written without interruption.
14. An article comprising a computer-readable medium that stores computer-executable instructions for writing an optical medium in an optical device, the instructions causing a computer to:
(a) allocate a memory region in a host device as a host buffer for the optical storage device;
(b) establish a link for direct memory access transfer of data using a direct memory access controller from the host buffer to a write buffer on the optical storage device, wherein the controller includes a scatter/gather list with entries that point to the host buffer, and wherein the scatter/gather list includes a flag that points the controller to the beginning of another list; and
(c) repeating the scatter/gather list until a sufficient amount of data is transferred from the host buffer to the optical device to write the device,
wherein data in the host buffer is available to the write buffer such that the write buffer is not underrun while the optical medium is completely written without interruption.
12. An electronic device comprising:
a recordable optical storage device with a data storage medium; and
a host device comprising a main memory, a device driver interfaced with the optical storage device, and a direct memory access controller interfaced with the optical storage device, wherein the device driver is programmed to execute the following steps to write the medium:
(a) allocate a region in the main memory as a host buffer;
(b) provide a scatter/gather list for the direct memory access controller, wherein the scatter/gather list includes entries that point to the host buffer;
(c) execute the scatter/gather list to transfer data with the direct memory access controller between the host buffer and a write buffer on the optical device;
(d) write the medium in the optical device with the data in the write buffer; and
(e) repeating the scatter/gather list until a sufficient amount of data is transferred from the host buffer to the optical device to write the device,
wherein data in the host buffer is available to the write buffer such that the write buffer is not underrun while the optical medium is completely written without interruption.
2. The method of claim 1, wherein the data is transferred to the host buffer from a data source.
3. The method of claim 2, wherein the data source is selected from the group consisting of a hard disk drive, an internet connection, a satellite receiver or an optical storage device.
4. The method of claim 1, wherein a host direct memory access controller interfaced with the optical storage device conducts the direct memory access process.
5. The method of claim 2, wherein data is transferred to the host buffer at a first rate, data is transferred to the write buffer at a second rate, and the first rate exceeds the second rate until the optical storage medium is completely written.
6. The method of claim 1, wherein the write buffer has a data storage capacity of less than about 256 kB.
7. The method of claim 1, wherein the write buffer has a data storage capacity of about 32 kB.
9. The device of claim 8, wherein the data is transferred to the host buffer from a data source selected from the group consisting of a hard disk drive, an internet connection, a satellite receiver or an optical storage device.
10. The device of claim 8, wherein the write buffer has a data storage capacity of less than about 256 kB.
11. The device of claim 8, wherein the write buffer has a data storage capacity of about 32 kB.
15. The electronic device as claimed in claim 12, wherein the write buffer has a data storage capacity of less than about 256 kB.
16. The electronic device as claimed in claim 15, wherein the write buffer has a data storage capacity of about 32 kB.
18. The system of claim 17, wherein the repeating step (d) comprises:
querying the progress of a write process in the optical recorder; and, if the write process is not complete, querying a level of data remaining in the host buffer, and
(i) if sufficient data remains in the host buffer to provide a continuous write, returning to step (c); and
(ii) if insufficient data remains in the host buffer to provide a continuous write, returning to step (b).

This invention relates to writing data on an optical storage medium.

When data is written to a recordable optical device, one common recording scheme requires that the data be continuously written at the recording rate of the optical device without interruption until the recording medium in the device is completely recorded. During writing, the data is transferred from, e.g., a main memory of a host computer, a hard drive, a tape, or another optical disk; to a temporary memory location (referred to as the write buffer) on the drive of the optical device and is pulled out of the write buffer in a first-in-first-out (FIFO) basis as needed for writing on the disk. If the write buffer is empty when the recorder requests data at any point during the recording process, the recording process aborts and the CD-R is typically ruined. The emptying of the write buffer while the recorder still needs data is referred to as buffer underrun.

As CD-R recording rates increase to 2×, 10× and even 40×, even small interruptions in data transfer to the write buffer can produce buffer underrun. To reduce the chance of buffer underrun, conventional recordable optical devices include a write buffer with a large data storage capacity. Thus, there is a tradeoff between increasing the recording rate and avoiding the high cost associated with larger write buffer memories.

In one embodiment, the invention is a method for writing data on an optical storage medium in an optical storage device. The method includes transferring data by a direct memory access process from a host buffer allocated in a memory of a host device to a local write buffer associated with the optical storage device. The data is then written from the write buffer to the optical storage medium.

In another embodiment, the invention is an electronic device that includes a memory, a direct memory access controller, a data storage medium in an optical storage. device, and a driver for the optical storage device. The driver is programmed to execute instructions to write the medium, including transfer of data to a host buffer allocated in the memory of the device, and activation of the direct memory access controller to transfer data by a direct memory access process from the host buffer to a local write buffer associated with the optical storage device.

In a third embodiment, the invention is an article comprising a computer-readable medium that stores computer-executable instructions for writing an optical medium in an optical device. The instructions cause a computer to transfer data to a host buffer allocated in the memory of the device and activate the direct memory access controller to transfer data by a direct memory access process from the host buffer to a local write buffer associated with the optical storage device. Data in the host buffer are available to the write buffer such that the write buffer is not underrun while the data storage medium is completely written without interruption.

In a fourth embodiment, the invention is a recordable optical device having a write buffer with a data storage capacity of less than about 256 kB, preferably about 32 kB.

A fifth embodiment of the invention is an optical data storage system including an optical device having a data storage medium, and an article comprising a computer-readable medium that stores computer-executable instructions for writing the optical medium. The instructions cause a computer to transfer data to a host buffer allocated in the memory of the device; and activate the direct memory access controller to transfer data by a direct memory access process from the host buffer to a local write buffer associated with the optical storage device. The data in the host buffer are available to the write buffer such that the write buffer is not underrun while the data storage medium is completely written without interruption.

A sixth embodiment of the invention is an electronic device that includes a recordable optical storage device and a host device with a main memory. A device driver is interfaced with the optical storage device, and a direct memory access controller is interfaced with the optical storage device. The device driver is programmed to execute steps to write the optical storage device, including allocating a portion of the main memory as a host buffer, and transferring data FIFO, using the direct memory access controller, between the host buffer and a write buffer in the optical device. Data in the host buffer is available to the write buffer such that the write buffer is not underrun while the data storage medium is completely written without interruption.

Among the advantages of the invention are one or more of the following. The write buffer on the recordable optical device requires less storage capacity to avoid buffer underrun. The rate specific data transfer steps minimize the effect of software latency on the recording process for the optical device, and require only a modest write buffer on the recordable optical device to absorb hardware latencies. The cost of an optical storage device is reduced without adding significant new infrastructure on the host or requiring extensive modification to existing host hardware. Existing legacy host DMA engines can be used to deliver the capabilities necessary to reduce recordable optical device buffering requirements.

FIG. 1 is a schematic representation of hardware infrastructure that may be used to execute the data transfer processes of the invention.

FIG. 2 is a flow chart of the program steps in the software of the invention.

FIG. 3 is a schematic representation of the program steps in software of the invention.

FIG. 4 is a schematic representation of the program steps in software of the invention.

Referring to FIG. 1, in one implementation of the invention, a hardware system 10 includes a host device 12, a data source 14 and a recordable optical storage device 16. The host device 12 includes a processor 18, a main host memory 20, and a direct memory access (DMA) controller 22. The DMA controller 22 is a facility for moving/copying data to/from a host memory to the I/O bus. The DMA controller 22 controls data transfers between the main host memory 20 and an input/output (I/O) subsystem such as the mass storage device 14 and the recordable optical storage device 16.

The DMA controller 22 is connected to the first input/output (I/O) port 26. A data bus 28 is connected to the I/O port 26 and allows a first driver 24 to interface with the data source 14. The data source 14 may be any known data storage device, such as a hard disk, a tape drive, another optical storage device, an internet connection, a satellite receiver, and the like.

The DMA controller 22 is also connected to the second I/O port 30. A data bus 32 is connected to the I/O port 28 and allows a second driver 25 to interface with the recordable optical device 16.

The recordable optical device 16 includes a recording medium 33 and a drive 34. A typical recordable optical device 16 is a recordable compact disk (CD), referred to as a CD-R. To write data on the recording medium, a laser in the drive alters the surface of the recording medium according to the data. If a heating system is used to perform the write process, the altered or "burned" area becomes opaque (absorptive at the laser read wavelength) when heated beyond a critical temperature, and subsequently reflects less light than areas that have not been heated by the laser. Once a location on the recording medium is written with data, the change in the medium is permanent, so the burned areas of the medium cannot be erased or re-written.

During the write process, the drive 34 for the optical device is designed to maintain a constant rate of data transfer to the laser. An internal temporary memory area on the drive 34, referred to herein as the write buffer 35, controls data transfer to the laser by using an oscillator to clock the data out of the buffer at a specific rate during recording. The recording medium 33 in the optical device 16 rotates at a constant velocity underneath the laser during the writing process. Throughout the writing process the laser must receive the data it needs in a constant, smooth flow from the write buffer 35. The faster the drive 34 spins the disk-shaped medium 33 during the write process, the more data flow is required. The medium 33 cannot be stopped during the write process, so the laser cannot wait for the data if it is delayed, and the entire medium must be written in one continuous operation. Any significant interruptions in data flow during the write procedure will deplete the write buffer 35 and abort the recording procedure, an event referred to as buffer underrun.

Conventional CD-Rs have a data storage capacity of about 670 Mb, so a large amount of data must be transferred to the drive 34 and written on the medium 33 during the write process. The write buffer 34 on the optical storage device 16 has a data storage capacity sufficient to provide elasticity as data is transferred to the optical device 16 during the write process. A designated portion 36 of the main memory 20 in the host device 12 assumes the role of the optical device buffer, so the write buffer 34 does not require significant data storage capacity. The use of the main memory 20 as an optical device buffer allows the memory capacity of the optical device buffer to be reduced from the conventional 2 MB to less than about 512 kB, more preferably less than about 256 kB, most preferably about 32 kB. This reduced buffering requirement substantially reduces the cost and complexity of the drive for the optical device.

One embodiment of the invention is a method for writing data on an optical storage medium. As illustrated schematically in FIG. 2, a write command is issued in block 100 by a software application to write data onto the optical device. In block 102 the device driver 25 for the optical storage device designates an address in the main memory 20 of the host device 12 as a host buffer 36 for the optical device 16. In response to the write command, in block 104, the driver 24 for the data source transfers data from data source 14 to the host buffer 36. According to the software application, data are continuously pushed into the host buffer 36 until the write procedure is completed.

In block 106 the driver 25 requests use of the host DMA controller 22 to establish a DMA loop or chain to continuously transfer the data from the host buffer 36 to the write buffer 35. In this step the scatter/gather list for the DMA controller 22 includes entries designated to point to the address in the host's main memory that serves as the host buffer 36. In block 108 the data are transferred, using a DMA process, from the host buffer 36 to the write buffer 35. In block 110 the drive 34 takes these data from the write buffer 35 and writes them on the optical medium 33.

During the write procedure data is constantly pushed into the host buffer 36 by the software application issuing the write command. To ensure a supply of a substantially uninterrupted stream of data to the write buffer 35, the host buffer 36 must be filled with data ahead of the DMA transfers from the host buffer 36 to the write buffer 35. The device driver 25 periodically queries the progress of the write procedure as shown in block 112 by evaluating the amount of data remaining in the host buffer 36. If no data remains in the host buffer 36, or if the amount of data in the host buffer 36 has fallen below a predetermined level, the media 33 in the optical device is completely written. The write procedure ends in block 114, and the DMA link is aborted and re-set. If data remains in the host buffer 36, the DMA controller 22 is again activated at 116 to address the host buffer 36 and transfer data from the host buffer 36 to the write buffer 35.

In step 116 the DMA controller 22 repeatedly addresses the host buffer 36 multiple times as necessary to continuously pull data in a first-in-first-out (FIFO) process from the host buffer 36 and deliver the data in an uninterrupted data stream to the write buffer 35. This repeated address operates the DMA engine circularly to keep the smaller write buffer 35 adequately filled with data to prevent underrun in the write buffer 35 during the write process.

This circular operation of the DMA controller 22 may be accomplished in a number of ways. For example, referring to FIG. 3, the DMA engine 22 in the host 12 is programmed with a scatter/gather list 200 that includes entries designated to point at 202 to the main memory address designated as the host buffer 36. The entries in the scatter/gather list 200 pointing to the host buffer 36 may be repeated a number of times as necessary to accommodate the maximum recording capacity of the medium 33 in the optical storage device 16 so that the device may be completely written without interruption. In this process the DMA engine 22 operates circularly to provide an uninterrupted data stream to the write buffer 35 until the write process is complete. In an alternative procedure illustrated in FIG. 4, the DMA scatter/gather list 210 may once again include an address at 212 pointing to the main memory region designated as the host buffer 36. An end of the scatter/gather list 21Q includes a flag or marker 214. The flag 214 provides explicit circular support that points the DMA controller at 215 back to another scatter/gather list 218. The scatter/gather list 218 could, for example, point back to the beginning of the same list 210 to continuously address the host buffer 36 at 216 and transfer data in an uninterrupted stream to the write buffer 35 until the medium in the optical device is completely written.

The procedures described above may be implemented by a software package supplied with the optical device 16. The software will typically be recorded on a computer readable data storage medium such as a floppy disk, a CD-ROM or the like. The software in the package contains program code that may be loaded into the device driver 25 and recognized by the driver 25. The device driver 25 then executes instructions to implement the processes shown in FIGS. 1-4. With the exception of the embodiment that relies upon explicit DMA flag support (FIG. 4), no new hardware infrastructure need be added on the host device to implement the processes of this invention, so existing legacy host DMA controllers may be used to complete the data transfers necessary to reduce the buffering requirements on the optical device.

Other embodiments are within the scope of the following claims.

Grimsrud, Knut

Patent Priority Assignee Title
10642496, Apr 01 2016 SanDisk Technologies LLC Out of order read transfer with host memory buffer
11379595, Jan 16 2020 EMC IP HOLDING COMPANY LLC Zero-knowledge protection for side channels in data protection to the cloud
6810443, Dec 31 2002 Micron Technology, Inc Optical storage transfer performance
6901461, Dec 31 2002 Intel Corporation Hardware assisted ATA command queuing
7016417, Dec 23 1998 MUSICQUBED INNOVATIONS, LLC General purpose compression for video images (RHN)
7191462, Nov 08 1999 OL SECURITY LIMITED LIABILITY COMPANY System for transmitting video images over a computer network to a remote receiver
7225326, Dec 31 2002 Intel Corporation Hardware assisted ATA command queuing
7257158, May 18 1998 SECURE CAM, LLC System for transmitting video images over a computer network to a remote receiver
7671864, Jan 14 2000 MUSICQUBED INNOVATIONS, LLC Faster image processing
7836146, Jun 27 2005 NOVARC L L C System and method for concurrently downloading digital content and recording to removable media
7991052, Dec 21 1998 MUSICQUBED INNOVATIONS, LLC Variable general purpose compression for video images (ZLN)
8004572, May 17 1999 SECURE CAM, LLC System for transmitting a video stream over a computer network to a remote receiver
8068544, Dec 21 1998 MUSICQUBED INNOVATIONS, LLC Compression with doppler enhancement
8170095, Jan 10 2001 MUSICQUBED INNOVATIONS, LLC Faster image processing
8290034, Dec 21 1998 MUSICQUBED INNOVATIONS, LLC Video transmission and display including bit-wise sub-sampling video compression
8416847, Dec 21 1998 MUSICQUBED INNOVATIONS, LLC Separate plane compression using plurality of compression methods including ZLN and ZLD methods
8537898, Dec 21 1998 MUSICQUBED INNOVATIONS, LLC Compression with doppler enhancement
8780168, Dec 16 2011 LIFESIZE, INC Performing DMA transfer of audio and video data received over a serial bus
9268649, Jun 23 2011 Western Digital Technologies, INC Disk drive with recent write streams list for data refresh determination
9411043, Mar 18 2013 Fujitsu Limited Radar apparatus and computer-readable storage medium
Patent Priority Assignee Title
4672613, Nov 01 1985 Seagate Removable Storage Solutions LLC System for transferring digital data between a host device and a recording medium
5034914, May 15 1986 COMPUTER UPGRADE CORPORATION Optical disk data storage method and apparatus with buffered interface
5301351, Nov 29 1988 NEC Corporation Data transfer control system between high speed main memory and input/output processor with a data mover
5386524, Apr 16 1992 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P System for accessing information in a data processing system
5586264, Sep 08 1994 International Business Machines Corporation Video optimized media streamer with cache management
5613141, Oct 19 1992 International Business Machines Corporation Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
5828903, Sep 30 1994 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
5875455, Jun 10 1994 Matsushita Electric Industrial Co., Ltd. Information recording and reproducing apparatus merging sequential recording requests into a single recording request, and method of data caching for such apparatus
5917723, May 22 1995 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Method and apparatus for transferring data between two devices with reduced microprocessor overhead
5933653, May 31 1996 EMC Corporation Method and apparatus for mirroring data in a remote data storage system
//
Executed onAssignorAssigneeConveyanceFrameReelDoc
Dec 22 1999Intel Corporation(assignment on the face of the patent)
Mar 20 2000GRIMSRUD, KNUTIntel CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0107120963 pdf
Date Maintenance Fee Events
Sep 27 2005ASPN: Payor Number Assigned.
Sep 27 2005RMPN: Payer Number De-assigned.
May 14 2007M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
May 11 2011M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
May 06 2015M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Nov 18 20064 years fee payment window open
May 18 20076 months grace period start (w surcharge)
Nov 18 2007patent expiry (for year 4)
Nov 18 20092 years to revive unintentionally abandoned end. (for year 4)
Nov 18 20108 years fee payment window open
May 18 20116 months grace period start (w surcharge)
Nov 18 2011patent expiry (for year 8)
Nov 18 20132 years to revive unintentionally abandoned end. (for year 8)
Nov 18 201412 years fee payment window open
May 18 20156 months grace period start (w surcharge)
Nov 18 2015patent expiry (for year 12)
Nov 18 20172 years to revive unintentionally abandoned end. (for year 12)