1. Field of the Invention
The invention related to multimedia environment and more specifically to recording multimedia data onto a portable optical storage medium.
2. Background
Referring now to
In applications such as on-demand movie rentals and sales, where data on different tracks or segments can be formatted simultaneously and needs to be written quickly to minimize wait time, the current optical media burners/players with one read/write head per layer are inadequate; the problem is due to the fact that the head present a bottleneck.
Other applications such as simultaneous recording of multiple TV programs on a single optical medium are not possible due to the fact that a known optical recording devices can not process multiple streams of data simultaneously.
Additionally, if a read and/or write head of a current optical media burner/player fails, the unit becomes inoperable and there is no means to adjust and/or replace the number of read or write heads after purchase.
Therefore, what is needed is a system and method for transfer of multimedia data at efficient transfer rates in order to allow for quick download of large data files containing multimedia data onto an optical storage medium, including handling multiple streams of data simultaneously, wherein the system is capable of adjusting to a failure in the component handling the transfer of the data onto the optical storage medium.
A system and method are described for transfer of multimedia data at efficient transfer rates in order to allow for quick download of large data files containing multimedia data onto an optical storage medium, including handling multiple streams of data simultaneous, wherein the system is capable of adjusting to a failure in the component handling the transfer of the data onto the optical storage medium.
The system includes a first head capable of receiving a first data stream and writing data to a first layer of the storage medium, a second head capable of receiving a second data stream and writing data to the first layer of the storage medium, control logic in communication with the first head and the second head, the control unit adapted to receive data from the memory location, to generate a stream of data in response thereto, and to partition that stream of data into the first and second data streams for substantially simultaneous transfer thereof from the first and second heads to the storage medium, respectively.
The method includes the steps of partitioning a data stream into a first component and a second component; storing the first and second components in first and second buffer, respectively; and transferring the first component of the data stream to the portable storage device using a first transfer means nearly simultaneous with transferring the second component of the data stream to the portable device using a second transfer means. The method also includes routing a first data stream to a first memory device, routing a second data stream to a second memory device, and transferring the data streams to the portable storage device using a first transfer means and a second transfer means, wherein the first and second transfer means operate independently to nearly simultaneously transfer the first and second data streams to the portable storage device.
These and other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures, wherein:
a and 11b are block diagram representations of a load balancer used in conjunction with a partitioning unit in accordance with the teachings of the present invention; and
Referring now to
In alternative embodiments, the heads 206 are write only heads and in yet another embodiment the heads 206 are a combination of read, write, and read/write heads depending on the relevant application as mentioned in detail below. For example, one head is a read head while at least one other head is a read/write head and at least one other head is a write-only head. Thus, within the scope of the present invention any combination of read, write-only, or read/write heads can be used. Furthermore, the present embodiment is discussed with respect to use of multiple heads to record data onto a portable storage medium, but is not limited thereto. For example, in an alternative embodiment the storage medium is a fixed data storage medium. In yet another embodiment, the heads are used for reading the data from the storage medium in the same manner that data is recorded onto the medium.
Each motor 200 is used to adjust the position of its respective head 206 relative to the medium 210. The heads 206 rely on the spindle motor 204 to spin the medium 210 and in the present embodiment operate concurrently according to control logic to provide accelerated and/or concurrent read/write operations in accordance with the optical medium industry standard specifications. The laser diode 208 could either be a single diode or multiple diodes, each burning to a different layer of the medium 210. Through use of optical actuator logic circuits, the movement of each of the heads 206 is controlled by an electromechanical unit that includes the motor 200 and the arm 202, which are driven by software, as discussed in detail below with respect to recording information onto an optical medium. In the present embodiment, the arm 202 includes a single head on multiple rails.
In an alternative embodiment, the system includes additional housings adapted to receive additional arm assemblies, which include a head and a laser diode as discussed in detail above. Furthermore, the each arm assembly is removable from the specific location and the drive housing will have slots for a certain number of modular read/write heads which may be removable heads.
There are various embodiments discussed herein and, hence, with most embodiments when the drive is powered up, the system runs through a “boot up sequence” logic that detects the existence of heads in the housing and runs a verification program to test if it is operational. Once the verification program is conducted, the system can determine how many of the heads are operational. If there are heads that fail the verification testing phase, then a warning is produced for every non-operational head/component in the housing. The warning is provided to the use and the user can either choose to continue or replace the arm assembly with a new arm assembly. If the user chooses to continue and does not replace the arm assembly that failed the verification testing, then the system will deactivate that arm assembly.
Referring again to
Referring now to
Referring now to
As indicated above, when the system is powered up, it runs a startup sequence that sends signals to each of the heads in the housing. Each head sends an acknowledgment signal to the control circuit, indicating its presence. Each head that responds with an acknowledgement is presumed to be ‘active’ by the control circuitry and operational. Accordingly, the main controller can determine the number of operational heads relative to the total number of in the housing at start up.
Referring now to
Referring now to
It is well known that every data storage medium is divided into a fixed number of ‘writable areas’ or sectors. These sectors can be pictured as blocks of data chained together, spiraling around the center of the medium. The medium also has a maximum capacity for data that can be written to it. Given the maximum size of the medium and the size of each sector, the number of sectors on the medium can be calculated. Similarly given any arbitrary size of data to be written to the medium, and the size of each sector, the number of sectors needed to write that chunk of data can be calculated. Using the number of sectors, the physical radial distance occupied by the chunk on the medium can be calculated.
In one embodiment referred to herein, the system includes a hardware recognition program that includes a software program representing an algorithm used to detect the addition/deletion of arm assemblies or actuators to/from the housing, respectively. When a new head is added to the housing and the drive is started up, the hardware recognition program is executed. The program sends a signal to each of the arms in the housing and waits for a response. A simple binary signal can be used to detect the existence of an optical head in the arm. For example, 1 is used if the arm assembly exists and a 0 is used if it does not exist. In addition to verification of the presence of an arm assembly, the program also verifies that the arm assembly functions properly as set forth herein. The program generates a count of the number of functioning heads and stores the value in memory. Thus, a total number of functioning arm assemblies are identified and the value is used by the data-writing unit when data needs to be written to the medium.
Referring now to
At step 1114, the system assigns each chunk of data along with its starting address to each corresponding head 912a, 912b . . . 912n and stores the corresponding chunk in the corresponding buffer 908a, 908b . . . 908n. This mapping can be specified in a simple data structure like a hash table. The data chunks are read into device buffers 908a, 908b . . . 908n. At step 1116, the system signals all of the heads 912a, 912b . . . 912n to read the data chunks from their respective device buffers 908a, 908b 908n and simultaneously write the assigned chunks at the specified addresses on the same layer 914 of the medium.
Referring now to
The size of the data written by each head 1008a, 1008b . . . 1008n to the same layer 1010 of the medium in this algorithm is determined by the maximum size of the buffers 1004a, 1004b . . . 1004n. For example, if the buffer size is 128 KB and a TV channel does not output data of size 128 KB, that channel is written to medium when the buffer is full or the channel has ended. In alternative embodiments, the system writes the data in the buffers even though the size of the data in the buffer is less than 128 KB.
At step 1112, the system calculates the starting address for each chunk of data (in the buffers) on the medium (as per Step# 4 in the previous algorithm). At step 1114 onwards, the system continues, as indicated above, with the partitioning of the data to the heads. The buffers for each head mentioned in this algorithm could be virtual buffers within one or many physical buffers that are specifically assigned.
The embodiments set forth herein include the ability to add identification information to the file or data stream for the purpose of tracking the origin of the data stored on the medium. For example, if the data is a movie that is being downloaded onto the storage medium, then information that identifies the person that bought the storage medium can be embedded into the data stream or file that is being stored as set forth in U.S. patent application Ser. No. 10/949,542 entitled Method and Apparatus for On-Demand Multimedia Rental and Sales filed on Sep. 23, 2004.
In various embodiments, the data writing component algorithm mentioned above is replaced with a Load Balancing unit that uses a specific algorithm to assign chunks of data to the heads and signals them to begin writing.
Referring now to
At step 1312, the system calculates the starting address for each chunk of data on the medium, as indicated above. At step 1314, the system assigns each chunk of data along with its starting address to each corresponding head 1206a, 1206b . . . 1206n and stores the corresponding chunk in the corresponding buffer. This mapping can be specified in a simple data structure like a hash table. The data chunks are read into device buffers. At step 1316, the system signals all of the heads 1206a, 1206b . . . 1206n to read the data chunks from their respective device buffers and simultaneously write the assigned chunks at the specified addresses on the same layer of the medium 1208.
After each head has written the assigned chunk of data to medium, it sends a feedback signal to the main driver to indicate success or failure. At step 1318 the system determines if there was a failure. If either a failure signal is reported or the expected completion time of the head has passed and no signal is received from the head, then a Load Balancer unit 1200 assumes that the head, which did not sent a success signal or sent a failure signal, is non-functional. At step 1320, the Load Balancer turns on a “head check” routine for the faulty head offline, and initiates or throws a system warning indicating that head needs to be replaced.
Referring now to
Referring now to
The above embodiments may be altered in many ways without departing from the scope of the invention. Further, the invention may be expressed in various aspects of a particular embodiment without regard to other aspects of the same embodiment. Still further, various aspects of different embodiments can be combined together. Accordingly, the scope of the invention should be determined by the following claims and their legal equivalents.
This application is related to Provisional U.S. Patent Application Ser. No. 60/521,413, filed Apr. 21, 2004; entitled Multiple Read/Write Heads for Transferring Data To/From Optical Media, and 60/481,331 both of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60521413 | Apr 2004 | US |