Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
First Claim
Patent Images
1. A method of operating a computer system, the computer system including a CPU having an address range of greater than 1-Mbyte, a memory having a continuous physical address range of greater than 1-Mbyte, and addressing means connecting said CPU to said memory, comprising the steps of:
- (a) addressing said memory by said CPU alternatively in;
a first address mode wherein addresses generated in said CPU are directly used as the physical addresses to access said memory, ora second address mode wherein addresses generated within said CPU are translated using table entries to physical addresses used to access said memory;
(b) executing an operating system for said CPU stored in said memory using either said first address mode or said second address mode,said operating system defining a user memory area of 0-to-640 Kbyte and a system memory area of 640 Kbyte to 1-Mbyte,said operating system further defining a protocol permitting said CPU to respond to a bank-switched memory access command generated within said CPU by addressing a bank-switched memory system; and
(c) in response to a said bank-switched memory access command, accessing an extended memory portion of said memory having a continuous physical address range of greater than 1-Mbyte while executing said operating system,said extended memory portion having physical addresses above 1-Mbyte,by operating said addressing means in said second address mode and employing a plurality of said table entries of said addressing means selectively mapped to an expanded memory page frame within said system memory area to access said extended memory portion.
4 Assignments
0 Petitions
Accused Products
Abstract
A virtual DOS monitor uses the paging hardware of a processor such as the Intel 80386 microprocessor in conjunction with its Virtual-8086 mode of operation to emulate expanded memory using extended memory. Support for application programs which access expanded memory is thereby provided without the need for additional memory boards or other hardware.
192 Citations
31 Claims
-
1. A method of operating a computer system, the computer system including a CPU having an address range of greater than 1-Mbyte, a memory having a continuous physical address range of greater than 1-Mbyte, and addressing means connecting said CPU to said memory, comprising the steps of:
-
(a) addressing said memory by said CPU alternatively in; a first address mode wherein addresses generated in said CPU are directly used as the physical addresses to access said memory, or a second address mode wherein addresses generated within said CPU are translated using table entries to physical addresses used to access said memory; (b) executing an operating system for said CPU stored in said memory using either said first address mode or said second address mode, said operating system defining a user memory area of 0-to-640 Kbyte and a system memory area of 640 Kbyte to 1-Mbyte, said operating system further defining a protocol permitting said CPU to respond to a bank-switched memory access command generated within said CPU by addressing a bank-switched memory system; and (c) in response to a said bank-switched memory access command, accessing an extended memory portion of said memory having a continuous physical address range of greater than 1-Mbyte while executing said operating system, said extended memory portion having physical addresses above 1-Mbyte, by operating said addressing means in said second address mode and employing a plurality of said table entries of said addressing means selectively mapped to an expanded memory page frame within said system memory area to access said extended memory portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system comprising:
- p1 (a) a CPU having an address range of greater than 1-Mbyte;
(b) a memory having a continuous physical address range of greater than 1-Mbyte; (c) addressing means connecting said CPU to said memory, said addressing means including a first address mode wherein addresses generated in said CPU are directly used as the physical addresses to access said memory, and including a second address mode wherein addresses generated within said CPU are translated using table entries to provide physical addresses used to access said memory; (d) an operating system for said CPU stored in said memory and defining a user memor area of 0-to-640 -Kbyte and a system memory area of 640 Kbyte to 1-Mbyte; (e) means for accessing an extended portion of said memory while executing said operating system, said extended memory portion having physical addresses above 1-Mbyte, (f) and means for operating said addressing means in said second address mode and for employing a plurality of said table entries of said addressing means to selectively map said extended memory portion to an expanded memory page frame within said system memory area. - View Dependent Claims (10, 11, 12, 13)
- p1 (a) a CPU having an address range of greater than 1-Mbyte;
-
14. A method of emulating expanded memory using a CPU having an address range of greater than 1-Mbyte, a memory having a continuous physical address range of greater than 1-Mbyte, and using an addressing means connecting said CPU to said memory, comprising the steps of:
-
(a) executing an operating system on said CPU defining separate user memory and system memory areas within a range of greater than 1-Mbyte; (b) addressing said memory by said CPU in an address mode wherein virtual addresses generated within said CPU are translated to physical addresses used to access said memory using page table entries; (c) and accessing an extended memory portion of said memory while executing said operating system, said extended memory portion having physical addresses above the address range of 1-Mbyte, employing a plurality of said table entries of said addressing means selectively mapping parts of said extended memory portion to an expanded memory page frame within said system memory area. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A method of operating a computer system of the type having a real mode of operation and a virtual mode of operation, and having a plurality of levels of protection, comprising the steps of:
-
(a) executing a task in said virtual mode at a predefined level of protection; (b) while executing said task, detecting a hardware interrupt and interrupting said task by saving the current state of said task in a stack at a level of greater protection than said predefined level; (c) then executing an interrupt handler at said level of greater protection to create a new stack to simulate an interrupt in said real mode, the new stack containing the entry conditions for a virtual mode interrupt handler; (d) returning to virtual mode and executing a virtual mode interrupt handler using said new stack to provide the same entry conditions as if the interrupt had been in real mode. - View Dependent Claims (22, 23)
-
-
24. A method of operating a computer system of the type having a real mode of operation and a virtual mode of operation, and having a plurality of levels of protection in said virtual mode, comprising the steps of:
-
(a) executing a task in said virtual mode at one of said levels of protection; (b) while executing said task, detecting a software interrupt and interrupting said task by entering a fault routine and saving the current state of said task in a stack at a higher level of protection than said one level; (c) then executing an interrupt handler selected by decoding the instruction causing said software interrupt, at said higher level of protection, to create a new stack to simulate an interrupt in said real mode, the new stack containing the entry conditions for a virtual mode interrupt handler; (d) returning to virtual mode and executing a virtual mode interrupt handler using said stack to provide the same entry conditions as if the interrupt had been in real mode. - View Dependent Claims (25)
-
-
26. A computer system comprising:
-
(a) a CPU having an address range of greater than 1-Mbyte; (b) a memory having a continuous physical address range of greater than 1-Mbyte; (c) addressing means connecting said CPU to said memory;
said addressing means including a virtual address mode wherein addresses generated within said CPU are translated to physical addresses used to accress said memory using table entries, said table entries in said virtual address mode including protection bits providing a plurality of levels of protection;(d) an operating system for said CPU stored in said memory and defining a user memory area and a system memory area in address range of no more than 1-Mbyte; (e) a task stored in said memory for execution using said operating system in said virtual address mode at a predefined level of low protection; (f) and means for detecting hardware interrupts occurring when executing said task and creating a stack containing the state of said task at a level of greater protection than said predefined level, then defining a new stack at said level of greater protection to reflect entry conditions which would have existed had the interrupt been entered at said level of low protection and handling the interrupt using said new stack. - View Dependent Claims (27)
-
-
28. A computer system comprising:
-
(a) a CPU having an address range of greater than about 1-Mbyte; (b) a memory having a continuous physical address range of greater than about 1-Mbyte; (c) addressing means connecting said CPU to said memory;
said addressing means including a real address mode wherein addresses generated in said CPU are directly used as the physical addressees to access said memory, and including a virtual address mode wherein addresses generated within said CPU are translated to physical addresses used to access said memory using table entries, said table entries in said virtual address mode including protection bits providing a plurality of levels of protection;(d) an operating system for said CPU stored in said memory and defining a user memory and a system memory area in an address range of no more than about 1-Mbyte whereby a task stored in said memory for execution uses said operating system in said virtual address mode at a predefined level of low protection; (e) and means for trapping input/output instructions when a task is being executed in said virtual address mode at said predefined level of low protection using said operating system, said means for trapping including means for detecting the execution of an input/output instruction and interrupting the execution thereof to instead execute fault-handler instructions at a level of protection greater than said predefined level. - View Dependent Claims (29, 30)
-
-
31. A method of operating an MS-DOS computer system having a memory address space and an extended-memory address space, wherein said extended memory address space is the address space outside the memory address space which MS-DOS system can access, said method comprising the steps of:
-
(a) detecting an instruction to access an expanded memory address space; (b) accessing said extended memory address space in lieu of carrying out said instruction.
-
Specification