Operating system independent virtual memory computer system
First Claim
1. An improved main processing unit operating system independent virtual memory computer system, comprising:
- memory means having an 2n word actual address space for storage of instructions and data for producing by said computer system;
a main processing unit operative to provided a fetching address within an 2m word virtual address space, where m is greater than n, for fetching instructions or data from said memory means and to execute a set of first instructions for processing data in said computer system and for running operating system software; and
a secondary processing unit responsive to said fetching address provided by said main processing unit for executing virtual memory management software, said virtual memory management software comprising a set of second instruction executable independently of said set of first instructions and operative for providing instructions or data to said memory means for accessing by said main processing unit from an actual address in said memory means corresponding to said fetching address, said set of second instructions being executable only on said secondary processing unit,said main processing unit being operative to process data and execute user application or operating system instructions within said virtual address space without executing any of said first instructions for implementing or maintaining virtual memory and said secondary processing unit being incapable of executing any of said first instructions.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved virtual memory computer system comprising a main processing unit for executing application and operating system software without virtual memory code and independently of virtual memory operation. A dedicated second processing unit is provided for maintaining a memory map, which translates addresses in the main processing unit address space into physical memory addressess of a primary memory. A network interface allows pages or segments of data from a secondary memory connected to a communications network to be transferred into the primary memory in a manner transparent to the operation of the main processing unit. A direct memory access (DMA) circuit transfer the header portion of a network-transferred page of data into a separate auxiliary addressable memory for storage of network overhead information, while the useful data portions of the page are stored directly in locations in the primary addressable memory. A requested page of data is then placed directly in a desired location in primary memory without the need for moving or retransferring the data within the primary memory to strip off network header information after a DMA transfer. The system is responsive to detect and correct a page fault condition prior to execution of the main processing unit instruction which generated the page fault, which obviates reexecution of instructions or correction of instruction execution results by the main processing unit.
112 Citations
44 Claims
-
1. An improved main processing unit operating system independent virtual memory computer system, comprising:
-
memory means having an 2n word actual address space for storage of instructions and data for producing by said computer system; a main processing unit operative to provided a fetching address within an 2m word virtual address space, where m is greater than n, for fetching instructions or data from said memory means and to execute a set of first instructions for processing data in said computer system and for running operating system software; and a secondary processing unit responsive to said fetching address provided by said main processing unit for executing virtual memory management software, said virtual memory management software comprising a set of second instruction executable independently of said set of first instructions and operative for providing instructions or data to said memory means for accessing by said main processing unit from an actual address in said memory means corresponding to said fetching address, said set of second instructions being executable only on said secondary processing unit, said main processing unit being operative to process data and execute user application or operating system instructions within said virtual address space without executing any of said first instructions for implementing or maintaining virtual memory and said secondary processing unit being incapable of executing any of said first instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An improved main processing unit operating system independent virtual memory computer system, comprising:
-
memory means having an n word actual address space for storage of instructions and data for processing by said computer system; a main processing unit operative to provide a fetching address within an m word virtual address space, where m is greater than n, for fetching instructions or data from said memory means and to execute a set of first instructions for processing data in said computer system and for running operating system software without virtual memory capability; and virtual memory management means operative independently of said main processing unit and said operating system software in response to said fetching address provided by said main processing unit for temporarily halting operation of said main processing unit, for providing instructions or data to said memory means for accessing by said main processing unit from an actual address in said memory means corresponding to said fetching address, and for subsequently allowing said main processing unit to continue operation, said main processing unit being operative to process data and execute instructions within said virtual address space independently of the operation of said virtual memory management means without execution of any programs or overhead processing by said main processing unit for virtual memory.
-
-
9. An improved virtual memory computer system, comprising:
-
a primary addressable memory having a p-bit primary memory address space corresponding to a predetermined first number 2p of physical addressable locations, where p is an integer; a secondary addressable memory; a third addressable memory; a main processing unit having n address lines, where n is an integer, and capable of addressing a first processor address space corresponding to 2n words of memory; means defining a second address space having m address lines, where m is an integer, and capable of addressing 2m words of memory, said second address space comprising a first portion and a second portion; memory map means for translating input addresses in said first processor address space and said second portion of said second address space to addresses in said primary memory address space; and means for retrieving a page of digital data from said secondary addressable memory and for storing said retrieved page at addresses corresponding to said second addresses corresponding to said second address space, said page retrieving means being responsive to generate addresses in said second address space such that a first page portion of said retrieved page is stored in said third addressable memory at addressable locations corresponding to said first portion of said second address space and a second page portion of said retrieved page is stored in said primary addressable memory at addressable locations corresponding to said second portion of said second address space for accessing by said main processing unit. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. An improved virtual memory computer system, comprising:
-
a primary addressable memory having a primary memory address space corresponding to a predetermined first number 2p of physical addressable locations, where p is an integer; a secondary addressable memory having a predetermined second number of physical addressable locations; a main processing unit having an n-bit address field, where n is an integer, and capable of addressing a first processor address space corresponding to 2n words of memory; a third addressable memory having a third memory address space corresponding to a predetermined third number of physical addressable locations; a second processing unit capable of addressing a second processor address space, said second processor address space comprising a first portion corresponding to addressable locations in said third addressable memory and a a second portion corresponding to addressable locations in another addressable memory; memory map means for translating addresses in said first processor address space and said second portion of said second processor address space to addresses in said primary memory address space; and direct memory access (DMA) means for retrieving a page of digital data from said secondary addressable memory and for storing a retrieved page at addresable locations in said second processor address space, said retrieved page comprising a header portion and a data portion, said DMA means being operative to generate addresses in said second processor address space upon the retrieval of said retrieved page from said secondary addressable memory such that said header portion of said retrieved page is stored at addressable locations corresponding to said first portion of said second processor address space and said data portion of said retrieved page is stored at addressable locations corresponding to said second portion of said second processor address space, whereby said header portion is stored in said third addressable memory and said data portion is stored in said primary addressable memory for accessing by said main processing unit through said memory map means. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. An improved main processing unit operating system independent virtual memory computer system, comprising:
-
a main processing unit having a plurality of operating cycles including an address cycle wherein an address of a primary addressable memory containing data to be retrieved by said main processing unit is provided on an address bus as an output address and data provided to said main processing unit over a data bus in response thereto from said primary addressable memory, and an instruction cycle wherein said main processing unit executes a previously retrieved instruction; and virtual memory means operative independently of operating system software for said main processing unit, comprising; page fault detecting means responsive to an output address provided on said address bus for detecting the occurrence of a page fault condition, said page fault condition occurring if an output address for a particular address cycle corresponds to data not currently resident in said primary addressable memory; page fault correcting means responsive to the occurrence of said page fault condition for suspending said particular address cycle, for retrieving data corresponding to said output address from a secondary addressable memory, for storing retrieved data corresponding to said output address in said primary addressable memory, and for thereafter allowing said main processing unit to compete said particular address cycle and begin a subsequent operating cycle. - View Dependent Claims (33, 34, 35)
-
-
36. A computer system, comprising:
-
a first processing unit having n address lines, wherein n is an integer, and capable of addressing a first processor address space corresponding to 2n words of memory; a second processing unit having m address lines, where m is an integer and capable of addressing a second processor address space corresponding to 2m words of memory; a primary addressable memory having p address lines, where p is an integer, and defining a primary memory address space corresponding to a predetermined number 2p of physical locations for storing data, said primary addressable memory being accessible by said first and said second processing units; and memory map means for translating addresses in said first processor address space and said second processor address space to addresses in said primary memory address space by providing a plurality of map entries, each of said map entries relating an address in said first or said second processor address space to an address in said primary memory address space, said first processor address space including a predetermined portion which does not correspond to addresses in said primary memory address space, said memory map including a plurality of map entries which relate a predetermined set of addresses in said second processor address space corresponding to said predetermined portion of said first processor address space to addresses in said primary addressable memory, so that map entries corresponding to said predetermined portion of said first processor address space are made available for use by said second processing unit. - View Dependent Claims (37, 38, 39)
-
-
40. A virtual memory multi-processor computer system, comprising:
-
a primary addresable memory having p address lines corresponding to a primary memory address space corresponding to a predetermined first number 2p of physical addressable locations, where p is an integer, and having a primary memory data bus; a first processing unit having n address lines and capable of addressing a first processor address space corresponding to 2n words of memory, where n is an integer, said first processing unit having a plurality of operating cycles including an address cycle wherein an address of said primary addressable memory to be accessed for a memory operation is provided on a first address bus as an output address together with a memory request signal, and data provided from or to said first processing unit over a first data bus in response thereto from or to said primary addressable memory, and an instruction cycle wherein said first processing unit executes a previously-retrieved instruction; a second processing unit having m address lines, where m is an integer, and capable of addressing a second processor address space corresponding to 2m words of memory, said second processing unit having a plurality of operating cycles including an address cycle wherein an address of said primary addressable memory to be accessed memory to be accessed for a memory operation is provided on a second address bus as an output address together with a memory request signal, and data provided from or to said second processing unit over a second data bus in response thereto from or to said primary addressable memory, and an instruction cycle wherein said second processing unit executes a previously-retrieved instruction; arbiter means responsive to said memory request signal from a requesting processing unit, said requesting processing unit comprising the particular one of said first or said second processing units first providing said memory request signal, for enabling said requesting processing unit to access said primary addressable memory for said memory operation and for temporarily disabling the nonrequesting one of said first or said second processing units from completing its respective said address cycle until said requesting processing unit has completed said memory operation; address validity detecting means for detecting when an address provided to said primary addressable memory from at least one of said processing units corresponds to data currently resident in said primary addressable memory and for providing a page valid signal in response thereto; trap means responsive to the absence of said page valid signal for temporarily halting said at least one of said processing units from completing its said address cycle and for providing a trap signal to the other one of said processing units, said other processing unit being responsive to said trap signal to retrieve data from a secondary addressable memory corresponding to said address from said at least one of said processing units and to place said data in said primary addressable memory; and address and data multiplexing means for multiplexing said first and said second address buses to said primary addressable memory address lines, and said first and said second data buses to said primary addressable memory data bus. - View Dependent Claims (41, 42)
-
-
43. An improved main processing unit operating system independent virtual memory computer system, comprising:
-
primary memory means having an 2n word actual address space for storage of instructions and data for processing by said computer system; a main processing unit operative to provide a fetching address within an 2m word virtual address space, where m is greater than n, for fetching instructions or data from said memory means and to execute a set of first instructions for processing data in said computer system and for running operating system software, said main processing unit being operative to process data and execute user application or operating system instructions within said virtual address space without executing any of said first instructions for implementing or maintaining virtual memory; a secondary processing unit responsive to said fetching address provided by said main processing unit for executing a set of second instructions independently of said set of first instructions for providing instructions or data to said memory means for accessing by said main processing unit from an actual address in said memory means corresponding to said fetching address; page fault detecting means responsive to said fetching address provided by said main processing unit for detecting the occurrence of a page fault condition, said page fault condition occurring if said fetching address corresponds to data requested by said main processing unit not currently resident in said primary memory means; said secondary processing unit being responsive to the detection of said page fault condition by said page fault detecting means for retrieving said requested data from a second memory means corresponding to said fetching address and for storing said requested data in said primary memory means for accessing by said main processing unit; said primary memory means being operative to provide said data or instructions to said main processing unit in response to said fetching address; said secondary processing unit being operative in response to a page fault condition to retrieve said requested data or instructions from said second memory means and store said requested data or instructions in said primary memory means prior to said primary memory means responding to said fetching address, whereafter said primary memory means provides said requested data or instructions to said main processing unit in response to said fetching address.
-
-
44. An improved main processing unit operating system independent virtual memory computer system, comprising:
-
primary memory means having an 2n word actual address space for storage of instructions and data for processing by said computer system; a main processing unit operative to provide a fetching address within an 2m word virtual address space, where m is grater than n, for fetching instructions or data from said memory means and to execute a set of first instructions for processing data in said computer system and for running operating system software, said main processing unit being operative to process data and execute user application or operating system instructions within said virtual address space without executing any of said first instructions for implementing or maintaining virtual memory, said main processing unit having a plurality of operating cycles including an address cycle wherein said fetching address is provided to said primary memory and an instruction cycle for executing a previously-fetched instruction; page fault detecting means responsive to said fetching address provided by said main processing unit for detecting the occurrence of a page fault condition, said page fault condition occurring if said fetching address corresponds to data requested by said main processing unit not currently resident in said primary memory means; and a secondary processing unit responsive to said fetching address provided by said main processing unit for executing a set of second instructions independently of said set of first instructions for providing instructions or data to said memory means for accessing by said main processing unit from an actual address in said memory means corresponding to said fetching address, said secondary processing unit being responsive to the detection of said page fault condition by said page fault detecting means for retrieving requested data from a second memory means corresponding to said fetching address and for storing said requested data in said primary memory means for accessing by said main processing unit, said secondary processing unit being operative to suspend said address cycle in response to said page fault condition, and to retrieve said requested data or instructions from said second memory means and store said requested data or instructions in said primary memory means, and then allow completion of said address cycle.
-
Specification