US4926322A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
Assignee: Hewlett Packard Development Co LP
•
Filing: 1987-08-03
•
Granted: 1990-05-15
•
Expires: 2007-08-03
Abstract
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.
Inventors
- 👤 Gary A. Stimac
- 👤 William C. Crosswy
- 👤 Stephen B. Preston
- 👤 James S. Flannigan
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-23 19:48
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/06; G06F12/0615; G06F12/0623
Claims Analysis
Total Claims: 39
Claim 1
Independent Claim
256 words
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.
Claim 2
Independent Claim
256 words
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.
Claim 3
Dependent Claim
23 words
A method according to claim 1 wherein said expanded memory page frame is 64 Kbyte in size and includes four 16 Kbyte windows.
Claim 4
Dependent Claim
36 words
A method according to claim 1 wherein said step of addressing said memory includes a protected addressing mode in said second address mode, the protected addressing mode providing protected address ranges defined in said table entries.
Claim 5
Dependent Claim
32 words
A method according to claim 1 including the step of addressing a virtual disk drive also located in said memory having physical addresses above 1-Mbyte but separate from said extended memory portion.
Claim 6
Dependent Claim
45 words
A method according to claim 1 wherein said step of addressing in said second mode includes adding the contents of a segment register to the contents of an address register to generate an address in said CPU, before translating said address using said table entries.
Claim 7
Dependent Claim
35 words
A method according to claim 5 wherein said step of addressing includes copying a plurality of said table entries to a local store from said memory, and loading said segment register from a segment table.
Claim 8
Dependent Claim
47 words
A method according to claim 1 wherein said CPU executes more than one copy of said operating system by allocating portions of said memory for each said operating system copy using said second address mode and using a set of said table entries for each said copy.
Claim 9
Dependent Claim
32 words
A method according to claim 1 including the step of searching said system memory area to find an unallocated portion of said system memory area to define said expanded memory page frame.
Claim 10
Dependent Claim
187 words
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.
Claim 11
Dependent Claim
187 words
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.
Claim 12
Dependent Claim
24 words
A computer system according to claim 9 wherein said expanded memory page frame is 64 Kbyte in size and includes four 16 Kbyte windows.
Claim 13
Dependent Claim
33 words
A computer system according to claim 9 wherein said addressing means includes a protected addressing mode in said second mode, the protected addressing mode providing protected address ranges defined in said table entries.
Claim 14
Dependent Claim
32 words
A computer system according to claim 9 wherein said memory having a continuous physical address range of greater than 1-Mbyte also includes a virtual disk drive separate from said extended memory portion.
Claim 15
Dependent Claim
48 words
A computer system according to claim 9 wherein said addressing means includes a segment register containing a segment address loaded under control of said operating system, and includes at least one address register, and the CPU address includes the contents of the segment register and said address register.
Claim 16
Independent Claim
157 words
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.
Claim 17
Independent Claim
157 words
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.
Claim 18
Dependent Claim
36 words
A method according to claim 14 wherein said step of addressing said memory includes a protected addressing mode in said address mode, the protected addressing mode providing protected address ranges defined in said page table entries.
Claim 19
Dependent Claim
43 words
A method according to claim 14 including the step of addressing a virtual disk drive also located in said memory having a continuous physical address range of greater than 1-Mbyte, said virtual disk drive having physical addresses separate from said extended memory portion.
Claim 20
Dependent Claim
44 words
A method according to claim 14 wherein said step of addressing includes adding the contents of a segment register to the contents of an address register to generate said virtual address in said CPU, before translating said virtual address using said page table entries.
Claim 21
Dependent Claim
36 words
A method according to claim 14 wherein said user memory area is in a range of about 0 to 640 Kbytes and said system memory area is in a range of about 640 Kbytes to 1-Mbyte.
Claim 22
Dependent Claim
47 words
A method according to claim 14 wherein said CPU executes more than one copy of said operating system by allocating portions of said memory for each said operating system copy using said address mode and using a set of said page table entries for each said copy.
Claim 23
Dependent Claim
27 words
A method according to claim 19 wherein each said copy of said operating system accesses a different extended memory portion using a different expanded memory page frame.
Claim 24
Independent Claim
151 words
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.
Claim 25
Independent Claim
151 words
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.
Claim 26
Dependent Claim
17 words
A method according to claim 21 wherein said new stack contains said current state of said task.
Claim 27
Dependent Claim
29 words
A method according to claim 22 wherein said predefined level is level 3 and said level of greater protection is level zero which is the level of greatest protection.
Claim 28
Independent Claim
169 words
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.
Claim 29
Independent Claim
169 words
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.
Claim 30
Dependent Claim
17 words
A method according to claim 24 wherein said new stack contains said current state of said task.
Claim 31
Dependent Claim
207 words
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.
Claim 32
Dependent Claim
207 words
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.
Claim 33
Dependent Claim
31 words
A system according to claim 26 wherein said level of greater protection is the level of greatest protection and said predefined level of low protection is the level of least protection.
Claim 34
Dependent Claim
226 words
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.
Claim 35
Dependent Claim
226 words
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.
Claim 36
Dependent Claim
26 words
A system according to claim 28 wherein said input/output instructions are selectively trapped on the basis of the input/output address referenced by the instruction being executed.
Claim 37
Dependent Claim
22 words
A system according to claim 28 wherein said level of protection greater than said predefined level is the greatest level of protection.
Claim 38
Independent Claim
69 words
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.
Claim 39
Independent Claim
69 words
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.
References Cited (Backward Citations)
US4279014A
Cited
US4449181A
Cited
US4285040A
Cited
US4449184A
Cited
US4285039A
Cited
US4615006A
Cited
US4403283A
Cited
US4503491A
Cited
US4481570A
Cited
US4439762A
Cited
US4723205A
Cited
US4520453A
Cited
US4545010A
Cited
US4609996A
Cited
US4727480A
Cited
US4601018A
Cited
US4779187A
Cited
US4707803A
Cited
US4777589A
Cited
US4744048A
Cited
US4747040A
Cited
US4727485A
Cited
US4742450A
Cited
US4831522A
Cited
US4849875A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1993-05-14 | 1993-11-13 | 1994-05-15 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1997-05-14 | 1997-11-13 | 1998-05-15 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2001-05-14 | 2001-11-13 | 2002-05-15 | $7700.00 | Window Closed / Lapsed |