Streaming information appliance with buffer read and write synchronization
First Claim
1. An information appliance for receiving streaming information, the information appliance comprising:
- a buffer having a plurality of storage locations, a logical head, a logical tail and a valid data area between the logical head and the logical tail, wherein the logical head and the logical tail move sequentially through the plurality of storage locations in a first logical direction;
a writer module having a write position at the logical head of the buffer, wherein the writer module receives the streaming information and writes the streaming information to the buffer at write position;
a first reader module which is coupled to the buffer and has a first read position which is temporally movable with respect to the write position; and
a synchronizer coupled to the writer module and the reader module which maintains the first read position within the valid data area.
2 Assignments
0 Petitions
Accused Products
Abstract
An information appliance receives streaming information and includes a buffer, a writer module, a reader module and a synchronizer. The buffer has a plurality of storage locations, a logical head, a logical tail and a valid data area between the logical head and the logical tail. The logical head and the logical tail move sequentially through the plurality of storage locations in a first logical direction. The writer module has a write position at the logical head of the buffer. The writer module receives the streaming information and writes the streaming information to the buffer at the write position. The reader module is coupled to the buffer and has a first read position which is temporally movable with respect to the write position. The synchronizer is coupled to the writer module and the reader module and maintains the first read position within the valid data area.
-
Citations
24 Claims
-
1. An information appliance for receiving streaming information, the information appliance comprising:
-
a buffer having a plurality of storage locations, a logical head, a logical tail and a valid data area between the logical head and the logical tail, wherein the logical head and the logical tail move sequentially through the plurality of storage locations in a first logical direction;
a writer module having a write position at the logical head of the buffer, wherein the writer module receives the streaming information and writes the streaming information to the buffer at write position;
a first reader module which is coupled to the buffer and has a first read position which is temporally movable with respect to the write position; and
a synchronizer coupled to the writer module and the reader module which maintains the first read position within the valid data area. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
a second reader module which is coupled to the buffer and has a second read position which is temporally movable with respect to the write position and the first read position.
-
-
5. The information appliance of claim 1 wherein the buffer is a circular buffer in which the logical head and the logical tail move circularly through the plurality of storage locations in the first logical direction.
-
6. The information appliance of claim 1 wherein:
-
the writer module comprises means for writing a first block of the streaming information to a first sequence of successive ones of the storage locations; and
the synchronizer comprises means for temporarily blocking the means for writing the first block if the first read position is currently within the first sequence.
-
-
7. The information appliance of claim 6 wherein the synchronizer further comprises:
means for unblocking the means for writing the first block when the first read position advances past the first sequence relative to the first logical direction.
-
8. The information appliance of claim 7 wherein the synchronizer further comprises:
means for advancing the first read position in the first logical direction when the means for writing is blocked by the synchronizer.
-
9. The information appliance of claim 6 wherein the synchronizer further comprises:
-
means for advancing the logical tail of the buffer to an end of the first sequence of the successive ones of the storage locations prior to writing the first block of the streaming information; and
means for temporarily blocking the means for writing if the first read position is behind the logical tail relative to the first logical direction.
-
-
10. The information appliance of claim 9 wherein:
-
reader module comprises means for reading a second block of the streaming information from a second sequence of successive ones of the storage locations while advancing the first read position through the second sequence; and
the synchronizer further comprises means for unblocking the means for writing the first block after the means for reading advances the first read position if the first read position is ahead of the logical tail relative to the first logical direction.
-
-
11. The information appliance of claim 1 wherein:
-
the reader module comprises means for reading a first block of the streaming information from a first sequence of successive ones of the storage locations; and
the synchronizer comprises means for temporarily blocking the means for reading the first block if an end of the first sequence is ahead of the logical head relative to the first logical direction and therefore outside the valid data area.
-
-
12. The information appliance of claim 11 wherein:
-
the writer module comprises means for writing a second block of the streaming information to a second sequence of successive ones of the storage locations; and
the synchronizer further comprises;
means for advancing the logical head of the buffer to an end of the second sequence after the means for writing writes the second block; and
means for unblocking the means for reading the first block after the step of the synchronizer advances the logical head if the end of the first sequence is behind the logical head relative to the first logical direction.
-
-
13. The information appliance of claim 1 wherein:
-
the reader module comprises means for reading a block of the streaming information from a first sequence of successive ones of the storage locations; and
the synchronizer comprises means for failing the means for reading the block if a beginning of the first sequence is behind the logical tail relative to the first logical direction and therefore outside the valid data area.
-
-
14. A computer readable medium including instructions readable by an information appliance having a buffer with a fixed number of storage locations which, when implemented, cause the information appliance to handle streaming information by performing steps comprising:
-
defining a logical head and tail in the buffer and a valid data area between the logical head and tail which comprises a portion of the storage locations;
writing streaming information to the logical head of the buffer with a writer module;
moving the logical head and tail through the storage locations in a first logical direction while writing the streaming information;
reading the streaming information from a first read position within the valid data area with a first reader module, wherein the first read position is temporally movable with respect to the logical head and tail; and
synchronizing the steps of writing the streaming information and reading the streaming information. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
the step of writing comprises writing a first block of the streaming information to a first sequence of successive ones of the storage locations; and
the step of synchronizing comprises temporarily blocking the step of writing the first block of the streaming information if the first reader module is currently reading from one of the storage locations within the sequence.
-
-
16. The computer readable medium of claim 15 wherein the step of synchronizing further comprises:
unblocking the step of writing a block of the streaming information when the first read position advances past the first sequence relative to the first logical direction.
-
17. The computer readable medium of claim 16 wherein the step of synchronizing further comprises:
increasing a rate at which the reader module accesses the buffer until the first read position advances past the first sequence relative to the first logical direction.
-
18. The computer readable medium of claim 15 wherein the step of synchronizing further comprises:
-
advancing the logical tail of the buffer to an end of the first sequence of the successive ones of the storage locations prior to performing the step of writing the first block of the streaming information; and
temporarily blocking the step of writing a block if the first read position is behind the logical tail relative to the first logical direction.
-
-
19. The computer readable medium of claim 18 wherein:
-
the step of reading comprises reading a second block of the streaming information from a second sequence of successive ones of the storage locations while advancing the first read position through the second sequence; and
the step of synchronizing further comprises unblocking the step of writing the first block of the streaming information after advancing the read position if the first read position is ahead of the logical tail relative to the first logical direction.
-
-
20. The computer readable medium of claim 14 wherein:
-
the step of reading comprises reading a first block of the streaming information from a first sequence of successive ones of the storage locations; and
the step of synchronizing comprises temporarily blocking the step of reading the first block of the streaming information if an end of the first sequence is ahead of the logical head relative to the first logical direction and therefore outside the valid data area.
-
-
21. The computer readable medium of claim 20 wherein:
-
the step of writing comprises writing a second block of the streaming information to a second sequence of successive ones of the storage locations; and
the step of synchronizing further comprises;
advancing the logical head of the buffer to an end of the second sequence after writing the second block; and
unblocking the step of reading a first block of the streaming information after the step of advancing if the end of the first sequence is behind the logical head relative to the first logical direction.
-
-
22. The computer readable medium of claim 14 wherein:
-
the step of reading comprises reading a block of the streaming information from a first sequence of successive ones of the storage locations; and
the step of synchronizing comprises failing the step of reading the block of the streaming information if a beginning of the first sequence is behind the logical tail relative to the first logical direction and therefore outside the valid data area.
-
-
23. The computer readable medium of claim 14 wherein the step of moving the logical head and tail comprises moving the logical head and tail circularly through the storage locations in the first logical direction.
-
24. The computer readable medium of claim 14 and further comprising:
reading the streaming information from a second read position within the valid data area with a second reader module, wherein the second read position is temporally movable with respect to the logical head and tail and with respect to the first read position.
Specification