Network virtual memory for a cable television settop terminal
First Claim
1. A settop terminal for use in a cable TV (CATV) system, having a headend and a plurality of settop terminals, said terminal including:
- cable input means for receiving a CATV signal which includes both TV programming signals and interactive application programming data and instructions;
a CPU processing interactive application programs;
a local cache memory;
a network interface module providing access to a remote memory in the headend via a data transmission link; and
a memory management/address relocation unit (MMARU), including;
means for receiving a program block request from said CPU;
means for determining whether said requested program block is stored within said cache memory;
means for accessing said requested program block stored in said cache memory;
means for monitoring said accessed program block; and
means for fetching new program blocks from said remote memory in said headend;
said fetching means is responsive to said determining means when said requested program block is not stored in said cache memory.
5 Assignments
0 Petitions
Accused Products
Abstract
The present invention comprises a memory management system employed in a settop terminal which utilizes memory available at the headend of a CATV system through a bidirectional CATV network to augment the memory resident within the settop terminal. The system includes a memory management unit that monitors the software application running on the settop terminal microprocessor, pre-fetches blocks of the program from the headend and stores these blocks in resident memory. The memory management unit manages the limited pool of settop terminal memory by dividing it into segments large enough to hold a single program block. Program blocks are fetched from the headend as needed by the microprocessor, and segments of memory containing program blocks not likely to be used are reused. The system provides sufficient read-ahead capability to ensure that the microprocessor has enough executable code to process at all times. The location of the memory is completely transparent to the microprocessor.
-
Citations
36 Claims
-
1. A settop terminal for use in a cable TV (CATV) system, having a headend and a plurality of settop terminals, said terminal including:
-
cable input means for receiving a CATV signal which includes both TV programming signals and interactive application programming data and instructions; a CPU processing interactive application programs; a local cache memory; a network interface module providing access to a remote memory in the headend via a data transmission link; and a memory management/address relocation unit (MMARU), including; means for receiving a program block request from said CPU; means for determining whether said requested program block is stored within said cache memory; means for accessing said requested program block stored in said cache memory; means for monitoring said accessed program block; and means for fetching new program blocks from said remote memory in said headend;
said fetching means is responsive to said determining means when said requested program block is not stored in said cache memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 19)
-
-
9. A method of providing a virtual memory system in a settop terminal for use in an interactive network comprising the steps of:
-
requesting a program block from a cache memory, each block including a logical address; translating the logical address of said requested program block to a corresponding physical address of the program block stored within said cache memory; determining whether said requested program block is stored within said cache memory; accessing said requested program block stored in said cache memory; fetching a new program block from a remote memory over said interactive network when said requested program block is not stored in said cache memory; and storing said new program block in said cache memory. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A settop terminal for use in a cable TV (CATV) system, having a headend and a plurality of settop terminals, including:
-
cable input means for receiving a CATV signal which includes both TV programming signals and interactive application programming data and instructions; a local cache memory; a network interface module providing access to a remote memory located at the headend via a data transmission link; a data bus providing access to said cache memory; a CPU processing interactive application programs, each program comprising a plurality of program blocks; and
,a memory management/address relocation unit (MMARU) including; means for determining whether a particular program block is stored within said cache memory; means for pre-fetching new program blocks, prior to being required by said CPU, from said remote memory and storing said pre-fetched blocks in said cache memory when said particular program block is not stored within said cache memory; and means for accessing said program blocks stored in said cache memory when required by said CPU. - View Dependent Claims (17, 18, 20)
-
-
21. A method for providing a code with program block fetch commands for execution by a microprocessor in a settop terminal of a cable TV system comprising:
-
providing a source code; compiling said source code to obtain a position independent object code; linking said position independent object code with a library of network program block fetch commands, whereby said fetch commands are inserted into said object code, said commands enabling said microprocessor to pre-fetch a required program block from a memory in a headend of said cable TV system prior to said program block being executed by said microprocessor. - View Dependent Claims (22, 23)
-
-
24. A cable TV (CATV) system including a headend and a plurality of settop terminals including:
-
a headend comprising; a computer controlling operation of the CATV system; and a memory unit providing storage of interactive applications for the CATV system; and a plurality of settop terminals, each terminal comprising; cable input means for receiving a CATV signal which includes both TV programming signals and interactive application programming data and instructions; a CPU processing interactive application programs; a local cache memory; a network interface module providing access to said headend memory via a data transmission link; and a memory management/address relocation unit (MMARU), including; means for receiving a program block request from said CPU; means for determining whether said requested program block is stored within said cache memory; means for accessing said requested program block stored in said cache memory; means for monitoring said accessed program block; and means for fetching new program blocks from said headend memory;
said fetching means is responsive to said determining means when said requested program block is not stored in said cache memory. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A settop terminal for use in a cable television (CATV) system, having a headend and a plurality of settop terminals, said terminal comprising:
-
means for receiving a CATV signal which includes both TV programming signals and interactive application programming data and instructions; a CPU processing interactive application programs; a local cache memory; and a memory management/address relocation unit (MMARU), including; means for receiving a program block request from said CPU; means for determining whether said requested program block is stored within said cache memory; means for accessing said requested program block stored in said cache memory; and means for fetching new program blocks from a remote memory in said headend when said determining means determines that said requested program block is not stored in said cache memory.
-
-
34. A settop terminal for use in a cable television (CATV) system, having a headend and a plurality of settop terminals, said settop terminals comprising:
-
an executable code; a software linker inserting block fetch commands into the executable code; a network interface; a memory management/address relocation unit (MMARU); and a central processing unit (CPU) executing said executable code, which includes transmitting commands to the MMARU to fetch blocks of data from a remote memory in the headend by way of the network interface or to fetch blocks of data directly from a cache. - View Dependent Claims (35)
-
-
36. A method of providing a virtual memory system in a settop terminal, including a central processing unit (CPU), a memory management/address relocation unit (MMARU), remote memory, a software linker, a library of program block fetch commands, and a cache memory, for use in an interactive network comprising the steps of:
-
providing a source code; compiling a source code to provide an executable code; searching the executable code for branching instructions; determining from the branching instructions the most efficient manner of segmenting the executable code into blocks capable of being downloaded across said interactive network; inserting instructions from said library of network program block fetch commands into the executable code to request the downloading of blocks when required from the MMARU; and executing the executable code, which comprises the steps of; requesting a program block from a cache memory, each block including a logical address; translating the logical address of said requested program block to a corresponding physical address of the program block stored within said cache memory; determining whether said requested program block is stored within said cache memory; accessing said requested program block stored in said cache memory; fetching a new program block from said remote memory when said requested program block is not stored in said cache memory; and storing said new program block in cache memory.
-
Specification