DEVICE FOR STORING AUDIO/VIDEO DATA AND NON AUDIO/VIDEO DATA

Abstract: A media storage device (62) utilizes a dynamic partitioning method in order to store data on media (80) within the media storage device. The media storage device (62) stores a first type or group of data (116-120) on the media (80) to increasing addresses beginning at the lowest address within the partition. A first pointer is maintained at a location above which there is none of the first type of data stored on the media (80). A second type or group of data (102-112) is stored on the media (80) to decreasing addresses beginning at the highest address within the partition. A second pointer is maintained at a location below which there is none of the second type of data of the first and second types stored on the media (80). The locations of the first and second pointers dynamically change as data is stored on the media (80). A partition pointer is maintained between the first and second pointers. Preferably, the first type of data is audio/video data and the second type of data is non audio/video data. The audio/video data is preferably stored in contiguous addresses. The media storage device (62) is also preferably coupled to an IEEE 1394-1995 serial bus structure (72). The media storage device (62) is preferably a stand-alone device, but alternatively is resident within another device. As files or tracks of the first type of data are deleted, the media storage device generates secondary partitions within the areas from which data has been deleted. Within the secondary partitions, both types of data can be stored, and secondary partition pointers are also maintained.

Description: DEVICE FOR STORING AUDIO/VIDEO DATA AND NON AUDIO/VIDEO DATA RELATED APPLICATIONS: This application claims priority under 35 U.S. C. § 119(e) of the co-pending U.S. provisional application Serial Number 60/164,784 filed on November 10, 1999 and entitled "Dynamic Partitioning In AV-Hard Disk Drives. " The provisional application Serial Number 60/164,784 filed on November 10, 1999 and entitled "Dynamic Partitioning In AN-Hard Disk Drives" is also hereby incorporated by reference. FIELD OF THE INVENTION: The present invention relates to the field of writing data to and reading data from a media storage device. More particularly, the present invention relates to the field of writing multiple types of data each having different properties to a media storage device. BACKGROUND OF THE INVENTION: The IEEE 1394-1995 standard, " 1394 Standard For A High Performance Serial Bus, " is an international standard for implementing an inexpensive high-speed serial bus architecture which supports both asynchronous and isochronous format data transfers. In addition, the IEEE 1394-1995 bus has a universal clock called the cycle timer. This clock is synchronized on all nodes. Isochronous data transfers are real-time transfers which take place based on the universal clock such that the time intervals between significant instances have the same duration at both the transmitting and receiving applications. Each packet of data transferred isochronously is transferred in its own time period. An example of an ideal application for the transfer of data isochronously would be from a video recorder to a television set. The video recorder records images and sounds and saves the data in discrete chunks or packets. The video recorder then transfers each packet, representing the image and sound recorded over a limited time period, during that time period, for display by the television set. The IEEE 1394-1995 standard bus architecture provides multiple independent channels for isochronous data transfer between applications. A six bit channel number is broadcast with the data to ensure reception by the appropriate application. This allows multiple applications to simultaneously transmit isochronous data across the bus structure. Asynchronous transfers are traditional reliable data transfer operations which take place as soon as arbitration is won and transfer a maximum amount of data from a source to a destination. The IEEE 1394-1995 standard provides a high-speed serial bus for interconnecting digital devices thereby providing a universal I/O connection. The IEEE 1394-1995 standard defines a digital interface for the applications thereby eliminating the need for an application to convert digital data to analog data before it is transmitted across the bus. Correspondingly, a receiving application will receive digital data from the bus, not analog data, and will therefore not be required to convert analog data to digital data. The cable required by the IEEE 1394-1995 standard is very thin in size compared to other bulkier cables used to connect such devices in other connection schemes. Devices can be added and removed from an IEEE 1394-1995 bus while the bus is operational. If a device is so added or removed the bus will then automatically reconfigure itself for transmitting data between the then existing nodes. A node is considered a logical entity with a unique address on the bus structure. Each node provides in a standard address space, an identification ROM, a standardized set of control registers and in addition, its own address space. The IEEE 1394-1995 standard defines a protocol as illustrated in Figure 1. This protocol includes a serial bus management block 10 coupled to a transaction layer 12, a link layer 14 and a physical layer 16. The physical layer 16 provides the electrical and mechanical connection between a device and the IEEE 1394-1995 cable. The physical layer 16 also provides arbitration to ensure that all devices coupled to the IEEE 1394-1995 bus have arbitrated access to the bus as well as actual data transmission and reception. The link layer 14 provides data packet delivery service for both asynchronous and isochronous data packet transport. This supports both asynchronous data transport, using an acknowledgement protocol, and isochronous data transport, providing an unacknowledged real-time guaranteed bandwidth protocol for just- in-time data delivery. The transaction layer 12 supports the commands necessary to complete asynchronous data transfers, including read, write and lock. The serial bus management block 10 contains an isochronous resource manager for managing isochronous data transfers. The serial bus management block 10 also provides overall configuration control of the serial bus in the form of optimizing arbitration timing, guarantee of adequate electrical power for all devices on the bus, assignment of the cycle master, assignment of isochronous channel and bandwidth resources and basic notification of errors. A hard disk drive including an IEEE 1394-1995 serial bus interface is illustrated in Figure 2. The hard disk drive 20 includes the IEEE 1394-1995 serial bus interface circuit 22 for interfacing to an IEEE 1394-1995 serial bus network. The interface circuit 22 is coupled to a buffer controller 24. The buffer controller 24 is coupled to a random access memory (RAM) 26 and to a read/ write channel circuit 28. The read/ write channel circuit 28 is coupled to the media 30 on which data is stored within the hard disk drive 20. The read/write channel circuit 28 controls the storage operations on the media 30, including reading data from the media 30 and writing data to the media 30. During a write operation to the hard disk drive 20, a stream of data is received from a device coupled to the IEEE 1394-1995 serial bus structure by the IEEE 1394-1995 interface circuit 22. This stream of data is forwarded from the IEEE 1394-1995 interface circuit 22 to the buffer controller 24. The buffer controller 24 then stores this data temporarily in a buffer in the RAM 26. When the read/ write channel circuit 28 is available, the buffer controller 24 reads the data from the RAM 26 and forwards it to the read/write channel circuit 28. The read/write channel circuit 28 then writes the data onto the media 30. During a read operation from the hard disk drive 20, a stream of data is read from the media 30 by the read/ write channel circuit 28. This stream of data is forwarded by the read/ write channel circuit 28 to the buffer controller 24. The buffer controller 24 then stores this data temporarily in a buffer in the RAM 26. When the IEEE 1394-1995 serial bus interface circuit 22 is available, the buffer controller 24 reads the data from the RAM 26 and forwards it to the interface circuit 22. The IEEE 1394-1995 serial bus interface circuit 22 then formats the data according to the requirements of the IEEE 1394-1995 standard and transmits this data to the appropriate device or devices over the IEEE 1394- 1995 serial bus. A traditional hard disk drive 20, as described, records data and plays it back according to commands received from an external controller using a protocol such as the serial bus protocol (SBP). The external controller provides command data structures to the hard disk drive 20 which inform the hard disk drive 20 where on the media 30 the data is to be written, in the case of a write operation, or read from, in the case of a read operation. The function of the hard disk drive 20 during a read operation is to recreate the original, unmodified stream of data which was previously written on the media 30. With the growing use of the IEEE 1394-1995 serial bus, personal computers are now being coupled together in IEEE 1394-1995 networks with devices which have not traditionally been coupled to personal computers. Examples of such devices are consumer electronic devices such as video cassette recorders, video camcorders, digital video disk players and compact disk players. The properties of the data necessary for the personal computer are different than the properties of the data utilized by these other devices. The audio/video data utilized by such devices as video cassette recorders, video camcorders, digital video disk players and compact disk players is typically time-based data and must be reproduced in a manner which recognizes the associated time constraints of this type of data. Traditional computer data or non audio/ video data does not typically have any such associated time constraints. Use of a media storage device, such as a hard disk drive, for storing streams of audio and video data is taught in U.S. Patent Application Serial Number 09/022,926, filed on February 12, 1998 and entitled "MEDIA STORAGE DEVICE WITH EMBEDDED DATA FILTER FOR DYNAMICALLY PROCESSING DATA DURING READ AND WRITE OPERATIONS," which is hereby incorporated by reference. There are other types of media storage devices which are utilized to store audio/ video data. However, traditionally, these media storage devices do not store both audio/video data and non audio/video data within the same device. SUMMARY OF THE INVENTION: A media storage device utilizes a dynamic partitioning method in order to store data on media within the media storage device. The media storage device stores a first type or group of data on the media to increasing addresses beginning at the lowest address within the partition. A first pointer is maintained at a location above which there is none of the first type of data stored on the media. A second type or group of data is stored on the media to decreasing addresses beginning at the highest address within the partition. A second pointer is maintained at a location below which there is none of the second type of data of the first and second types stored on the media. The locations of the first and second pointers dynamically change as data is stored on the media. A partition pointer is maintained between the first and second pointers. Preferably, the first type of data is audio/ video data and the second type of data is non audio/ video data. The audio/ video data is preferably stored in contiguous addresses. The media storage device is also preferably coupled to an IEEE 1394-1995 serial bus structure. The media storage device is preferably a stand-alone device, but alternatively is resident within another device. As files or tracks of the first type of data are deleted, the media storage device generates secondary partitions within the areas from which data has been deleted. Within the secondary partitions, both types of data can be stored, and secondary partition pointers are also maintained. In one aspect of the present invention, a method of partitioning media within a media storage device comprises storing a first type of data at increasing addresses beginning at a lowest available address within a partition and storing a second type of data at decreasing addresses beginning at a highest available address within the partition. The method further comprises receiving data to be recorded and determining if the data is of the first type. The method further comprises maintaining a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. The first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. The method further comprises determining if data of the first type is deleted and maintaining a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. The first and second types of data are stored on a media within a media storage device. The media storage device is preferably coupled to a network of devices which substantially complies with a version of an IEEE 1394 standard. Preferably, the first type of data is audio/ video data and the second type of data is non audio/video data. Alternatively, the first type of data is time-based data and the second type of data is non time-based data. The audio/video data is preferably stored contiguously. The non audio/video data is preferably stored using dynamic allocation. In another aspect of the present invention, a method of recording data within a media storage device comprises receiving data to be recorded, determining if the data is of a first type, recording the data at increasing addresses beginning at a lowest available address, if the data is of the first type and recording the data at decreasing addresses within a memory space beginning at a highest available address, if the data is not of the first type. The method further comprises maintaining a first pointer representing a first boundary of the first type of data and a second pointer representing a secondary boundary of the second type of data. The first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. The method further comprises determining if data of the first type is deleted and maintaining a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. The first and second types of data are stored on a media within a media storage device. Preferably, the first type of data is audio/ video data and the second type of data is non audio/video data. Alternatively, the first type of data is time-based data and the second type of data is non time-based data. The data is preferably received from a bus structure which substantially complies with a version of an IEEE 1394 standard. In yet another aspect of the present invention, a media storage device comprises means for receiving data to be stored and means for storing data coupled to the means for receiving for storing the data at increasing addresses beginning at a lowest available address when the data is of a first type and for storing the data at decreasing addresses beginning at a highest available address when the data is of a second type. The media storage device further comprises a means for determining coupled to the means for receiving and to the means for storing for determining if the data is of the first type and of the second type. The means for receiving data is coupled to a network of devices. The network of devices preferably substantially complies with a version of an IEEE 1394 standard. The means for storing data includes media on which the data is stored. The media storage device further comprises a read/write channel circuit coupled to the means for interfacing and to the media for controlling read and write operations from and to the media. Preferably, the first type of data is audio/ video data and the second type of data is non audio/ video data. Alternatively, the first type of data is time-based data and the second type of data is non time-based data. The audio/ video data is preferably stored contiguously. The non audio/ video data is preferably stored using dynamic allocation. The means for storing maintains a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. The first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. The means for storing further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. In still yet another aspect of the present invention, a media storage device comprises an interface circuit configured to receive data to be stored and a storage circuit coupled to the interface circuit to receive the data, to store the data at increasing addresses beginning at a lowest available address when the data is of a first type and to store the data at decreasing addresses beginning at a highest available address when the data is of a second type. The media storage device further comprises a control circuit coupled to the interface circuit and to the storage circuit to determine if the data is of the first type and of the second type. The interface circuit is coupled to a network of devices. The network of devices preferably substantially complies with a version of an IEEE 1394 standard. The storage circuit includes media on which the data is stored. The media storage device further comprises a read/write channel circuit coupled to the interface circuit and to the media to control read and write operations from and to the media. Preferably, the first type of data is audio/ video data and the second type of data is non audio/ video data. Alternatively, the first type of data is time-based data and the second type of data is non time-based data. The audio/ video data is preferably stored contiguously. The non audio/ video data is preferably stored using dynamic allocation. The storage circuit maintains a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. The first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. The storage circuit further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. In another aspect of the present invention, a media storage device comprises an interface circuit configured to receive data to be stored, a media on which the data is stored, wherein the media is dynamically partitioned to store data of different types and a control circuit coupled to the interface circuit and to the media to control the storage of the data at increasing addresses beginning at a lowest available address when the data is of a first type and to store the data at decreasing addresses beginning at a highest available address when the data is of a second type, wherein a first pointer is maintained representing a first boundary of the first type of data on the media and a second pointer is maintained representing a second boundary of the second type of data on the media. The first boundary changes as data of the first type is stored on the media and the second boundary changes as data of the second type is stored on the media. The control circuit further determines if the data is of the first type and of the second type. The interface circuit is configured to couple to a network of devices. The network of devices preferably substantially complies with a version of an IEEE 1394 standard. Preferably, the first type of data is audio/ video data and the second type of data is non audio/ video data. Alternatively, the first type of data is time-based data and the second type of data is non time-based data. The control circuit further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. In yet another aspect of the present invention, a network of devices comprises one or more source devices for generating and transmitting data and a media storage device coupled to the one or more source devices for receiving and storing the data, the media storage device which includes an interface circuit configured to receive the data to be stored and a storage circuit coupled to the interface circuit to receive the data, to store the data at increasing addresses beginning at a lowest available address when the data is of a first type and to store the data at decreasing addresses beginning at a highest available address when the data is of a second type. The media storage device further comprises a control circuit coupled to the interface circuit and to the storage circuit to determine if the data is of the first type and of the second type. The network of devices preferably substantially complies with a version of an IEEE 1394 standard. The storage circuit includes media on which the data is stored. Preferably, the first type of data is audio/ video data and the second type of data is non audio/ video data. Alternatively, the first type of data is time-based data and the second type of data is non time-based data. The storage circuit maintains a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. The first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. The storage circuit further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. BRIEF DESCRIPTION OF THE DRAWINGS: Figure 1 illustrates a protocol stack defined by the IEEE 1394-1995 standard. Figure 2 illustrates a block diagram of a media storage device of the prior art. Figure 3 illustrates an exemplary IEEE 1394-1995 serial bus network of devices including a video camera, a video cassette recorder, a settop box, a television, a computer system and an audio/ video hard disk drive of the present invention. Figure 4 illustrates a block diagram of a media storage device of the preferred embodiment of the present invention. Figure 5 illustrates a dynamic partitioning scheme within a media storage device according to the preferred embodiment of the present invention. Figure 6 illustrates a secondary partition within the dynamic partitioning scheme in a media storage device according to the preferred embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT: A media storage device utilizes a dynamic partitioning method in order to store data on media within the media storage device. The media storage device stores a first type or group of data on the media to increasing addresses beginning at the lowest address within the partition. A first pointer is maintained at a location above which there is none of the first type of data stored on the media. As data of the first type is stored on the media, the location of the first pointer dynamically changes. A second type or group of data is stored on the media to decreasing addresses beginning at the highest address within the partition. A second pointer is maintained at a location below which there is none of the second type of data stored on the media. As data of the second type is stored on the media, the location of the second pointer dynamically changes. A partition pointer is maintained between the first and second pointers. The media storage device knows that the media is full for the first type of data when the first pointer, the second pointer and the partition pointer all represent the same location. Preferably, the first type of data is audio/video data and the second type of data is non audio/video data. The audio/video data is preferably stored in contiguous addresses. The media storage device is also preferably coupled to an IEEE 1394-1995 serial bus structure including other devices. The media storage device is preferably a stand-alone device, but alternatively is resident within another device. As files or tracks of the first type of data are deleted, the media storage device generates secondary partitions within the area designated for the first type of data. Within the secondary partitions, both the first type of data and the second type of data can be stored. Further, within the secondary partition, secondary partition pointers are also maintained, representing the boundary of the first type of data, the boundary of the second type of data and the partition boundary between the first and second types of data within the secondary partition. Figure 3 illustrates an exemplary network of devices including a video camera 46, a video cassette recorder (VCR) 48, a settop box 54, a computer system 60 with an associated display 58, and a media storage device 62 connected together by IEEE 1394- 1995 cables 40, 42, 44, 50 and 52. The IEEE 1394-1995 cable 50 couples the video camera 46 to the VCR 48, allowing the video camera 46 to send data, commands and parameters to the VCR 48 for recording. The IEEE 1394-1995 cable 44 couples the VCR 48 to the computer system 60. The IEEE 1394-1995 cable 42 couples the computer system 60 to the media storage device 62. The IEEE 1394-1995 cable 40 couples the computer system 60 to the television 56. The IEEE 1394-1995 cable 52 couples the television 56 to the settop box 54. The configuration illustrated in Figure 3 is exemplary only. It should be apparent that a network could include many different combinations of components. The devices within such an IEEE 1394-1995 network are autonomous devices, meaning that in an IEEE 1394-1995 network, as the one illustrated in Figure 3, in which a computer system is one of the devices, there is not a true "master-slave" relationship between the computer system and the other devices. In many IEEE 1394-1995 network configurations, a computer system may not be present. Even in such configurations, the devices within the network are fully capable of interacting with each other on a peer basis. It should be recognized that data, commands and parameters can be sent between all of the devices within the IEEE 1394-1995 network, as appropriate. A block diagram of a hardware system resident in the media storage device of the preferred embodiment of the present invention is illustrated in Figure 4. The media storage device 62 preferably includes an IEEE 1394-1995 serial bus interface circuit 72 for interfacing to the IEEE 1394-1995 serial bus network. The interface circuit 72 is coupled to a buffer controller 74. The buffer controller 74 is coupled to a random access memory (RAM) 76 and to a read/ write channel circuit 78. The read/write channel circuit 78 is coupled to the media 80 on which data is stored within the media storage device 62. The read/write channel circuit 78 controls the storage operations on the media 80, including reading data from the media 80 and writing data to the media 80 utilizing the dynamic partitioning method of the present invention. Within the preferred embodiment of the present invention, the media storage device 62 is a stand-alone device within a network of devices. However, as should be apparent to those skilled in the art, the media storage device 62 of the present invention alternatively is resident within another device such as the computer system 60. In one embodiment of the present invention, when storing multiple types of data having different properties, such as audio/video data and non audio/video data, the media storage device is partitioned into multiple fixed spaces, one for each different type of data. Then each type of data is saved in its corresponding space within the media storage device according to an appropriate allocation method. For example, when saving audio/ video data, it is beneficial to save the audio/ video data using contiguous allocation, such that the data is saved in the appropriate order and in contiguous locations within the media storage device. The contiguous locations can be according to either physical block addresses or logical block addresses, according to the addressing scheme implemented by the particular media storage device. Saving the audio/video data in contiguous memory locations preserves the time component of the data and allows the data to be easily retrieved in the appropriate order and in a manner which allows the integrity of the data to be preserved during playback. When saving other non time-based data, such as traditional computer data, it is not necessary to save the data in contiguous locations. For this type of data, dynamic allocation is generally more efficient, allowing the data to be saved wherever memory space is available within the corresponding space. While partitioning the media storage device into fixed spaces for different types of data is one way to save multiple types of data having different properties within a media storage device, this method is not preferred because potentially large amounts of disk space can go unused. Once the initial partition is generated and the memory spaces fixed, if the media storage device is not used to save a particular type of data, the memory space allocated to that type of data will go unused, while the space allocated to another type of data may get filled. For example, if a media storage device is partitioned for audio/ video data and non audio/ video data, the space allocated to the audio/ video data may fill up while the space allocated to the non audio/video data may stay close to empty. In this example, the media storage device could not be used to store any more audio/ video data even though there was space available within the media storage device. A dynamic partitioning scheme, as described herein, is used in the media storage device of the preferred embodiment. This dynamic partitioning scheme starts to fill the media 80 within the media storage device 62 from one end for the first type of data, such as audio/ video data, and from the other end for the second type of data, such as non audio/video data. A partition boundary is maintained between the two types of data, however, this boundary dynamically changes, as appropriate, to adapt to the data that is actually stored within the media storage device 62. A dynamic partitioning scheme within the media storage device 62 of the preferred embodiment of the present invention is illustrated in Figure 5. Within Figure 5, the media 80 is shown in a table representation to illustrate how the data is stored within the media storage device 62. Audio/ video data is stored in a contiguous fashion, as described above, to increasing addresses beginning at the lowest address space of the media 80. In the example shown in Figure 5, the group 120 of audio/video data was stored first beginning at the lowest address space of the media 80. Next, the group 118 of audio/video data was stored beginning at the next available lowest address space of the media 80. Then, the group 116 of audio/video data was stored beginning at the next available lowest address space of the media 80. The audio/video pointer pWR-AV is used to mark the boundary of audio/video data on the media 80 and represents the lowest address space above which there is no audio/video data. Since a contiguous allocation method is used for storing the audio/video data, unless data is deleted, as will be discussed below, there are no empty spaces for addresses less than the address represented by the audio/video pointer pWR- AV. Non audio/video data is preferably stored using dynamic allocation, to decreasing addresses beginning at the highest address space of the media 80. Any appropriate method of dynamic allocation can be used to store the non audio/video data within the media storage device 62 of the present invention including, first fit, best fit and worst fit algorithms. Accordingly, there is always the possibility that there will be available empty spaces within the non audio/video data space of the media 80 as files stored within this space are deleted or edited. In the example shown in Figure 5, the group 102 of non audio/video data was stored beginning at the highest address space of the media 80. The groups 106, 108 and 112 were also stored as non audio/video data within the media storage device 62. The empty spaces 104 and 110 resulted either from data being deleted, edited or otherwise removed. These empty spaces 104 and 110 can be used, as appropriate, to store additional non audio/ video data. The non audio/ video pointer PWR- nAV is used to mark the boundary of non audio/video data on the media 80 and represents the highest address space below which there is no non audio/video data. The available space 114 within the media 80 is available for storing both audio/video data and non audio/video data. As additional audio/video data is stored on the media 80, the media storage device 62 stores this data contiguously beginning at the location represented by the audio/video pointer pWR-AV. As additional audio/video data is stored on the media 80, the location represented by the audio/ video pointer pWR-AV will dynamically change to represent the boundary of the audio/video data. As additional non audio/ video data is stored on the media 80, the media storage device 62 stores this data within the non audio/ video space of the media 80. If additional space is needed for the non audio/ video data, then the media storage device 62 stores this data beginning at the location represented by the non audio/video pointer pWR-nAV. As additional non audio/ video data is stored on the media 80, the location represented by the non audio/video pointer pWR-nAV will dynamically change to represent the boundary of the non audio/video data. Since the pointers pWR-AV and pWR-nAV keep dynamically moving as data is stored within the media storage device 62, to reflect the boundaries of the corresponding data, the partition boundary on the media 80 of the preferred embodiment of the present invention changes dynamically to allow the media storage device 62 to adapt and efficiently store whichever type of data it receives. The thick arrows within Figure 5 illustrate the direction in which the data is preferably written on the media 80. The audio/ video data is written contiguously to increasing addresses beginning from the lowest address on the media 80. The non audio/video data is written to decreasing addresses beginning from the highest address on the media 80. As described above, the audio/video pointer pWR-AV marks the boundary of the audio/video data and the non audio/video pointer pWR-nAV marks the boundary of the non audio/video data. The partition pointer pPART represents a location between the boundaries of the audio/ video data and the non audio/video data. When the location represented by the audio/video pointer pWR-AV is equal to the location represented by the non audio/video pointer pWR-nAV, then the media storage device 62 knows that the media 80 is full with respect to the storage of audio/video data. When this condition occurs, non audio/video data can still be stored within the non audio/video space, depending on the size of the data to be stored and the available empty spaces within the media 80. The media storage device 62 keeps track of the location of the audio/video pointer pWR-AV and the location of the non audio/video pointer pWR-nAV to determine when the media 80 is full. When the media storage device 62 determines that the media 80 is full, the media storage device 62 then warns an application attempting to store audio/video data within the media storage device 62. If a simultaneous write of audio/video data and non audio/video data is performed by the media storage device 62 which results in the media 80 becoming full, the media storage device 80 then will be unable to store the remaining data on the media 80. The dynamic partitioning scheme of the present invention also utilizes secondary partitions to fill and efficiently use large portions of the media 80 which become empty due to the deletion of a file or files. A dynamic partitioning scheme within the media storage device 62 of the preferred embodiment of the present invention utilizing a secondary partition is illustrated in Figure 6. In the example illustrated in Figure 6, the media 80 is full for audio/video data because the location represented by the audio/video pointer pWR-AN is equal to the location represented by the non audio/ video pointer pWR- nAV. Because the media 80 has been filled, the location of the partition pointer pPART is also equal to the location represented by the pointers pWR-AV and pWR-nAV. In the example illustrated in Figure 6, the audio/ video file or track represented by the reference numeral 216 has been deleted within the portion of the media 80 in which audio/ video data is stored, thereby opening up this space. The media storage device 62 then generates a secondary partition within this empty space 216 and can then store additional data within this space, in the same manner as discussed above. Accordingly, audio/video data can be stored to increasing addresses beginning at the lowest address within this secondary partition and non audio/video data can be stored to decreasing addresses beginning at the highest address within this secondary partition. In the example illustrated in Figure 6, the non audio/ video data group 222 is stored within the highest addresses of the space 216. Within the secondary partition, the pointers pWR-AVj, pWR-nAV ! and pPARTj are maintained. The partition audio/ video pointer pWR-AV j is used to mark the boundary of audio/video data within the secondary partition and represents the lowest address space above which there is no audio/video data within the secondary partition. The partition non audio/ video pointer pWR-nAVj is used to mark the boundary of audio/ video data within the secondary partition and represents the highest address space below which there is no non audio/video data within the secondary partition. The partition pointer pPART] represents a location between the boundaries of the audio/video data and the non audio/ video data within the secondary partition. As additional audio/ video data is stored on the media 80, the location represented by the partition audio/ video pointer pWR-AVj will dynamically change to represent the boundary of the audio/video data within the secondary partition. Correspondingly, as additional non audio/video data is stored on the media 80, the location represented by the partition non audio/ video pointer pWR-nAV ! will dynamically change to represent the boundary of the non audio/video data within the secondary partition. In this manner, multiple secondary partitions can be maintained on the media 80, within the media storage device 62 of the present invention. As described above, preferably, the non audio/video data is stored in decreasing addresses from the highest address on the media 80, using dynamic allocation. Depending on the granularity of the media storage device 62, this scheme may require some hardware changes within existing media storage devices. If the granularity is on the level of sectors on the media 80, then the implementation of writing to decreasing addresses can be done in software, thereby utilizing decreasing physical addresses of sectors while the data within a particular sector is written on the media 80 to increasing addresses. Alternatively, the audio/video portion could be written to decreasing addresses starting at the highest address on the media 80 and the non audio/video portion written to increasing addresses beginning at the lowest address on the media 80. This alternative embodiment would allow the non audio/video data to be written to the media 80 in a conventional manner with increasing addresses. In this embodiment, the decreasing address scheme would then be implemented for the audio/video data which is written contiguously. It should be apparent to those skilled in the art that while the examples discussed herein utilize audio/ video and non audio/ video data, the principles of the media storage device and the dynamic partitioning method of the present invention could also be used with other types of data. Further, the dynamic partitioning method of the present invention could also be used for media storage devices that are conventionally partitioned, even if those devices are not utilized to store audio/ video or time-based data. The dynamic partitioning method of the present invention would eliminate the need for the correct estimation of the usage of each partition when the media is initialized and therefore eliminate the space potentially wasted by under usage of a certain type of data or region of the media. In operation, the media storage device 62 of the present invention stores data on the media 80. The media storage device 62 preferably maintains an audio/video pointer pWR-AV which marks the boundary of the audio/ video data. The audio/video pointer pWR-AV has a starting location corresponding to the lowest address within the partition to be filled on the media. As audio/video data is written on the media to increasing contiguous addresses, the location represented by the audio/ video pointer pWR-AV correspondingly increases. The media storage device 62 also preferably maintains a non audio/video pointer pWR-nAV which marks the boundary of the non audio/video data. The non audio/ video pointer pWR-nAV has a starting location corresponding to the highest address within the partition to be filled on the media. As non audio/video data is written on the media to decreasing addresses, the location represented by the non audio/video pointer pWR-nAV correspondingly decreases. As tracks or files of audio/ video data are deleted from the media 80, the media storage device 62 preferably implements secondary partitions within which both audio/video data and non audio/video data can be written, as described herein. According to the method and apparatus of the present invention, different types of data can be stored on the same media within a media storage device. The media storage device preferably implements a dynamic partitioning scheme, which allows the media storage device to fully and efficiently utilize the space available on the media, as the different types of data are stored within the media storage device. The partition or boundary between the different types of data dynamically moves as data of one or both types are stored on the media. In this manner, the media storage device of the present invention minimizes the unused space on the media and maximizes the space used, based on the type of data that it receives. The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of principles of construction and operation of the invention. Such reference herein to specific embodiments and details thereof is not intended to limit the scope of the claims appended hereto. It will be apparent to those skilled in the art that modifications may be made in the embodiment chosen for illustration without departing from the spirit and scope of the invention. Specifically, it will be apparent to those skilled in the art that while the preferred embodiment of the present invention is used with an IEEE 1394-1995 serial bus structure, the present invention could also be implemented on any other appropriate bus structures.

Claims: C L A I M S I Claim: 1. A method of partitioning media within a media storage device comprising: a. storing a first type of data at increasing addresses beginning at a lowest available address within a partition; and b. storing a second type of data at decreasing addresses beginning at a highest available address within the partition. 2. The method as claimed in claim 1 further comprising receiving data to be recorded and determining if the data is of the first type. 3. The method as claimed in claim 1 further comprising maintaining a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. 4. The method as claimed in claim 3 wherein the first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. 5. The method as claimed in claim 1 further comprising: a. determining if data of the first type is deleted; and b. maintaining a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. 6. The method as claimed in claim 1 wherein the first and second types of data are stored on a media within a media storage device. 7. The method as claimed in claim 6 wherein the media storage device is coupled to a network of devices which substantially complies with a version of an IEEE 1394 standard. 8. The method as claimed in claim 7 wherein the first type of data is time- based data and the second type of data is non time-based data. 9. The method as claimed in claim 7 wherein the first type of data is audio/ video data and the second type of data is non audio/ video data. 10. The method as claimed in claim 9 wherein the audio/ video data is stored contiguously. 11. The method as claimed in claim 10 wherein the non audio/ video data is stored using dynamic allocation. 12. A method of recording data within a media storage device comprising: a. receiving data to be recorded; b. determining if the data is of a first type; c. recording the data at increasing addresses beginning at a lowest available address, if the data is of the first type; and d. recording the data at decreasing addresses within a memory space beginning at a highest available address, if the data is not of the first type. 13. The method as claimed in claim 12 further comprising maintaining a first pointer representing a first boundary of the first type of data and a second pointer representing a secondary boundary of the second type of data. 14. The method as claimed in claim 13 wherein the first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. 15. The method as claimed in claim 12 further comprising: a. determining if data of the first type is deleted; and b. maintaining a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. 16. The method as claimed in claim 12 wherein the first and second types of data are stored on a media within a media storage device. 17. The method as claimed in claim 12 wherein the first type of data is time- based data and the second type of data is non time-based data. 18. The method as claimed in claim 12 wherein the first type of data is audio/ video data and the second type of data is non audio/ video data. 19. The method as claimed in claim 12 wherein the data is received from a bus structure which substantially complies with a version of an IEEE 1394 standard. 20. A media storage device comprising: a. means for receiving data to be stored; and b. means for storing data coupled to the means for receiving for storing the data at increasing addresses beginning at a lowest available address when the data is of a first type and for storing the data at decreasing addresses beginning at a highest available address when the data is of a second type. 21. The media storage device as claimed in claim 20 further comprising a means for determining coupled to the means for receiving and to the means for storing for determining if the data is of the first type and of the second type. 22. The media storage device as claimed in claim 20 wherein the means for receiving data is coupled to a network of devices. 23. The media storage device as claimed in claim 22 wherein the network of devices substantially complies with a version of an IEEE 1394 standard. 24. The media storage device as claimed in claim 20 wherein the means for storing data includes media on which the data is stored. 25. The media storage device as claimed in claim 24 further comprising a read/write channel circuit coupled to the means for interfacing and to the media for controlling read and write operations from and to the media. 26. The media storage device as claimed in claim 20 wherein the first type of data is time-based data and the second type of data is non time-based data. 27. The media storage device as claimed in claim 20 wherein the first type of data is audio/ video data and the second type of data is non audio/ video data. 28. The media storage device as claimed in claim 27 wherein the audio/video data is stored contiguously. 29. The media storage device as claimed in claim 28 wherein the non audio/video data is stored using dynamic allocation. 30. The media storage device as claimed in claim 20 wherein the means for storing maintains a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. 31. The media storage device as claimed in claim 30 wherein the first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. 32. The media storage device as claimed in claim 20 wherein the means for storing further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. 33. A media storage device comprising: a. an interface circuit configured to receive data to be stored; and b. a storage circuit coupled to the interface circuit to receive the data, to store the data at increasing addresses beginning at a lowest available address when the data is of a first type and to store the data at decreasing addresses beginning at a highest available address when the data is of a second type. 34. The media storage device as claimed in claim 33 further comprising a control circuit coupled to the interface circuit and to the storage circuit to determine if the data is of the first type and of the second type. 35. The media storage device as claimed in claim 33 wherein the interface circuit is coupled to a network of devices. 36. The media storage device as claimed in claim 35 wherein the network of devices substantially complies with a version of an IEEE 1394 standard. 37. The media storage device as claimed in claim 33 wherein the storage circuit includes media on which the data is stored. 38. The media storage device as claimed in claim 37 further comprising a read/write channel circuit coupled to the interface circuit and to the media to control read and write operations from and to the media. 39. The media storage device as claimed in claim 33 wherein the first type of data is time-based data and the second type of data is non time-based data. 40. The media storage device as claimed in claim 33 wherein the first type of data is audio/video data and the second type of data is non audio/video data. 41. The media storage device as claimed in claim 40 wherein the audio/video data is stored contiguously. 42. The media storage device as claimed in claim 41 wherein the non audio/ video data is stored using dynamic allocation. 43. The media storage device as claimed in claim 33 wherein the storage circuit maintains a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. 44. The media storage device as claimed in claim 43 wherein the first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. 45. The media storage device as claimed in claim 33 wherein the storage circuit further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. 6. A media storage device comprising: a. an interface circuit configured to receive data to be stored; b. a media on which the data is stored, wherein the media is dynamically partitioned to store data of different types; and c. a control circuit coupled to the interface circuit and to the media to control the storage of the data at increasing addresses beginning at a lowest available address when the data is of a first type and to store the data at decreasing addresses beginning at a highest available address when the data is of a second type, wherein a first pointer is maintained representing a first boundary of the first type of data on the media and a second pointer is maintained representing a second boundary of the second type of data on the media. 47. The media storage device as claimed in claim 46 wherein the first boundary changes as data of the first type is stored on the media and the second boundary changes as data of the second type is stored on the media. 48. The media storage device as claimed in claim 46 wherein the control circuit further determines if the data is of the first type and of the second type. 49. The media storage device as claimed in claim 46 wherein the interface circuit is configured to couple to a network of devices. 50. The media storage device as claimed in claim 49 wherein the network of devices substantially complies with a version of an IEEE 1394 standard. 51. The media storage device as claimed in claim 46 wherein the first type of data is time-based data and the second type of data is non time-based data. 52. The media storage device as claimed in claim 46 wherein the first type of data is audio/ video data and the second type of data is non audio/ video data. 53. The media storage device as claimed in claim 46 wherein the control circuit further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition. 54. A network of devices comprising: a. one or more source devices for generating and transmitting data; and b. a media storage device coupled to the one or more source devices for receiving and storing the data, the media storage device including: i. an interface circuit configured to receive the data to be stored; and ii. a storage circuit coupled to the interface circuit to receive the data, to store the data at increasing addresses beginning at a lowest available address when the data is of a first type and to store the data at decreasing addresses beginning at a highest available address when the data is of a second type. 55. The network of devices as claimed in claim 54 wherein the media storage device further comprises a control circuit coupled to the interface circuit and to the storage circuit to determine if the data is of the first type and of the second type. 56. The network of devices as claimed in claim 54 wherein the network of devices substantially complies with a version of an IEEE 1394 standard. 57. The network of devices as claimed in claim 54 wherein the storage circuit includes media on which the data is stored. 58. The network of devices as claimed in claim 54 wherein the first type of data is time-based data and the second type of data is non time-based data. 59. The network of devices as claimed in claim 54 wherein the first type of data is audio/ video data and the second type of data is non audio/ video data. 60. The network of devices as claimed in claim 54 wherein the storage circuit maintains a first pointer representing a first boundary of the first type of data and a second pointer representing a second boundary of the second type of data. 61. The network of devices as claimed in claim 60 wherein the first boundary changes as additional data of the first type is stored and the second boundary changes as additional data of the second type is stored. 62. The network of devices as claimed in claim 54 wherein the storage circuit further determines if data of the first type is deleted and maintains a secondary partition in an available location from which data of the first type has been deleted, wherein data of the first type is stored at increasing addresses within the secondary partition beginning at a lowest available address within the secondary partition and data of the second type is stored at decreasing addresses within the secondary partition beginning at a highest available address within the secondary partition.

Inventors: DURUOZ IBRAHIM C, DURUOZ, IBRAHIM, C.
Applicants: SONY ELECTRONICS INC, SONY ELECTRONICS INC.
Application year: 2000
Main classification: G06F13
IPC codes: G06F3, G06F12, G06F13, G11B20, G11B27, H04N5