US4928237A - Computer system having mode independent addressing - Google Patents
Computer system having mode independent addressing Download PDFInfo
- Publication number
- US4928237A US4928237A US07/030,789 US3078987A US4928237A US 4928237 A US4928237 A US 4928237A US 3078987 A US3078987 A US 3078987A US 4928237 A US4928237 A US 4928237A
- Authority
- US
- United States
- Prior art keywords
- memory
- mode
- pointers
- microprocessor
- common data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012546 transfer Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 97
- 230000006870 function Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 20
- 230000000694 effects Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000000051 modifying effect Effects 0.000 claims 2
- 239000013598 vector Substances 0.000 claims 2
- 238000004883 computer application Methods 0.000 claims 1
- 238000012986 modification Methods 0.000 abstract description 3
- 230000004048 modification Effects 0.000 abstract description 3
- 230000002902 bimodal effect Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
Definitions
- Microcomputers personal computers
- Microcomputers are being required to perform more and more complex data processing tasks while not suffering a degradation in response speed.
- additional device drivers, networking programs, host attachment programs, session managing programs, etc. must be loaded into the available memory space.
- the amount of space left for the user's applications programs is thus shrinking, forcing undesirable trade-offs to be made among storage, performance, and function.
- microprocessors have lately become available in which the amount of addressable memory has been greatly expanded.
- the amount of addressable memory is about 1 MB (MegaBytes). while for the newer 80286 CPU. about 16 MB can be addressed.
- the first mode termed the "real" mode, is exactly the same addressing mode employed in the 8088/8086 CPU, and hence programs written for a machine employing the 8088/8086 CPU, such as the vast array of software written for the IBM PC computer and compatibles, can be run in the real mode since the same BIOS (Basic Input-Output System) can be used directly.
- BIOS Basic Input-Output System
- the addressing mode is in fact the same as for the 8086/8088, the amount of addressable memory is still limited to about 1 MB.
- the second mode termed the "protected” mode, employs a different memory addressing scheme, and with this scheme can address up to about 16 MB of memory.
- FIG. 1 shows a memory map of a typical microcomputer application employing an 80286 CPU and showing an example of how the memory may be organized.
- Memory addresses in the range of 0 KB (KiloBytes) to 40 KB are taken up by the BIOS (Basic Input-Output System) and OS (Operating System). the most famous examples being PC DOS and MS DOS marketed by Microsoft Corporation.
- BIOS Basic Input-Output System
- OS Operating System
- the user is allocated the space from 40 KB to 640 KB in both the real and protected mode.
- the video buffers occupy 640 KB to 752 KB, and feature and planar ROMs (Read-Only Memories) 752 KB to 1 MB. This is all the memory that can be addressed in the real mode. In the protected mode though 15 MB of additional addressable memory space is available to the user.
- each 32-bit pointer is composed of a 16-bit offset (bits 0 to 15) and a 16-bit segment (bits 16 to 31).
- the memory is divided into 64 KB segments, and each of the 16-bit segment values of the pointers corresponds directly to one of these 64 KB segments in memory. That is, pointer segment n, multiplied by 2 4 (equivalently, shifted one place in hexadecimal), directly indicates the address of the first eight-bit byte of data in segment n of the memory, namely, the boundary between segments n-1 and n in physical memory.
- the offset indicates a displacement from the boundary between segments n-1 and n.
- the segment value is multiplied by 2 4 and added to the offset value.
- This 20-bit address is applied directly to the memory as an address.
- the BIOS does not use physical memory in the form of segments and offsets. Moreover, the memory is not divided up into 64 KB segments. Instead, "virtual" memory addressing is employed in which the addresses do not correspond directly to distinct locations in physical memory. To allow for more efficient use of the available memory space while still retaining relative ease of addressing, the memory is again divided into segments, but the segments may be of variable lengths. Generation of the actual physical addresses is done internally to the 80286 CPU, out of reach of the user and BIOS.
- the BIOS addresses memory using a 32-bit pointer.
- the lower 16 bits (bits 0 to 15) of the pointer are also referred to as an offset.
- the upper 16-bit portion of the pointer is termed a "selector".
- the selector is used as a pointer to a segment descriptor contained in a segment descriptor table, which is assembled in a predetermined area of the physical memory.
- Each segment descriptor contains a 24-bit value, which indicates the base address (lower boundary address) of the corresponding segment in physical memory.
- the 24-bit segment descriptor value retrieved by the selector is added to the offset.
- the BIOS designed for the 8088/8086 and real mode which uses segments in addressing, cannot operate directly in the protected mode, making it impossible to run in the protected mode programs written to use the BIOS developed for the 8088/8086 and real mode. While such programs can of course be run on the 80286 CPU in the real mode, it is a disadvantage not to also be able to run them in the protected mode.
- a computer system and a method of operating a computer system having mutually incompatible first and second addressing mode wherein, for each addressing mode, a common data area table is assembled containing pointers used to initiate the various data transfer tasks and other basic input/output operations which the operating system or applications programs may need.
- Each pointer in the common data area table for the first mode is equivalent in function to a respective one of the pointers in the common data area table for the second mode.
- the pointers in the two tables are assembled for their respective addressing modes.
- the pointers for the real mode common data area are each composed of a segment and an offset, and those of the protected mode common data area are composed of selectors and offsets.
- the offsets of the pointers in the protected mode table which point to addresses external to the common data area are identical in value to those of corresponding pointers in the real mode table, while the selectors correspond in physical address to the segments of the corresponding pointers.
- FIG. 1 is a memory map of an example of a computer system employing a CPU having real and protected addressing modes.
- FIG. 2 shows a portion of a main memory in the real mode and illustrates how the memory is addressed using offsets and pointers.
- FIG. 3 depicts how segments and offset values are manipulated and added to produce physical memory addresses in the real mode.
- FIG. 4 shows a portion of a main memory in the protected mode and illustrates how the memory is addressed using offsets and pointers.
- FIG. 5 is a diagram showing how the BIOS code is arranged in accordance with the present invention.
- FIG. 6 is a map of a bimodal common data area in accordance with the invention.
- FIGS. 7A and 7B are a flowchart showing in detail how the bimodal common data area illustrated in FIG. 6 is assembled.
- FIG. 8 is a flowchart showing an example of how a device block pointer is obtained for a given logical ID.
- FIG. 9 is a flowchart illustrating how a request is made to the BIOS in the computer system of the invention.
- FIG. 5 there is shown therein a memory map for the BIOS code employed in the computer system of the invention.
- the BIOS code is composed of three parts: POST, CBIOS and ABIOS.
- POST Power-On Self Test
- CBIOS Complement Basic Input-Output System
- ABIOS Advanced Basic Input-Output System
- BIOS contains the BIOS used by applications programs for performing input-output operations in a bimodal (i.e. effective in both real and protected modes), multi-tasking environment, as well as the BIOS routines used by the operating system for constructing tables required for the present bimodal addressing operations.
- the ABIOS is given the capability of operating either in the real mode or the protected mode.
- the way in which this is done is for the ABIOS to assemble bimodal CDAs (Common Data Areas), one for the real mode and one for the protected mode.
- CDAs Common Data Areas
- the entries contained in the two CDAs are identical in function, but in the real mode CDA the pointers are described in terms of segments and offsets, while in the protected mode CDA they are described in terms of selectors and offsets. If the operating system intends to execute BIOS only in the real mode, then only the real mode CDA need be assembled and used, whereby BIOS-controlled data transfers for applications programs take place in the previously known manner for operations in the real mode.
- the protected mode CDA Before the operating system can execute BIOS in the protected mode, however, the protected mode CDA must be assembled.
- the protected mode CDA which may be made to produce addresses identical to those produced via a corresponding section of the real mode CDA, programs initiated in one mode can be continued in the other mode, at the user's option and without requiring mode switching operations for continuation.
- the ABIOS code can be made to operate essentially "transparent" to the mode in which the user has selected to run the CPU. The result is mode-independent addressing for the applications programs.
- FIG. 6 An example of bimodal CDAs is shown in accompanying FIG. 6. The following abbreviations are used in FIG. 6 for simplicity:
- LogicalID (LID)--Each LID corresponds to and identified a requested device or device controller. Each device or device controller available to ABIOS has a LID associated therewith.
- the DB is a working storage area allocated by the operating system which contains hardware port addresses, interrupt levels, and device state information.
- FTT Function Transfer Table
- ABIOS Data Pointer (Data Ptr)--The data pointers supply the ABIOS with addressability to particular portions of memory in the bimodal environment. Examples are the pointers to the video buffers.
- the entries in the two CDAs are entirely identical in function and in their place within the respective tables, the only difference is that the pointers in the real mode CDA are composed of segment and offset values, and the pointers in the protected mode CDA are composed of selectors and offsets.
- the CDA corresponding to the present operating mode of the CPU, so far as the remainder of the BIOS, the operating system, and the applications programs are concerned, all BIOS operations are performed in the identical manner between the two modes. That is, as illustrated in FIG.
- the corresponding DB pointer LID n in the two tables both point to the same DB LID n, the corresponding data pointer 0 in the two tables point to the same identical location in memory, and the same function m pointers point to the same identical function m.
- FIG. 7 is a flowchart describing in detail the manner in which the two CDAs are assembled. The operations to be described next are conducted during system initialization, generally after execution of the POST tests and with the system running in real mode.
- step 20 From the START point, the ABIOS is called to build the systems parameters table in step 20.
- step 21 ABIOS is called to build the initialization table.
- step 22 memory space is allocated for the real mode CDA, including the DBs, FTTs, and data pointers.
- step 23 an initial DB (InitDB) routine is called for initial table entries to build the FTT, DB, etc.
- step 25 memory space is allocated for the protected mode CDA.
- step 26 in accordance with an important aspect of the invention, an offset portion of a DB pointer in the real mode CDA copied directly to the corresponding entry in the protected mode CDA.
- steps 27 and 28 a selector is allocated whose physical address is equal to the segment of the respective pointer in the real mode CDA.
- step 29 the selector is copied to the corresponding position in the protected mode CDA to complete the pointer.
- an FTT pointer is assembled in a slightly different manner than the DB pointers in steps 26 to 29 since the FTT pointers point to other pointers within the CDA rather than addresses external to the CDA.
- a protected mode FTT is allocated and, in step 31, a copy of the, offset of the corresponding real mode FTT pointer is copied to the protected mode FTT pointer.
- a determination is made as to whether the protected mode selector has been allocated. If not, in step 33, a selector is allocated which points to the FTT.
- the selector is copied to the selector portion in the protected mode CDA.
- Step 39 tests to determine if all pointers of the FTT have been completed. Steps 35 to 39 are repeated until all pointers of the FTT have been assembled. Following step 40 tests to determine whether all logical IDs, DB pointers, and FTT pointers have been completed. If not, the process loops back to step 26, and steps 26 to 40 are repeated until all logical IDs, DB pointers, and FTT pointers have been completed.
- step 41 the data pointers (e.g., pointers to the video buffer) are assembled. This is done in the same fashion as above.
- step 41 the offset portion of a data pointer from the real mode CDA is copied to the corresponding entry in the protected mode CDA, and in step 42, a selector is allocated having a physical address equal to the segment in the corresponding real mode CDA entry. The selector is copied into the protected mode CDA in step 43.
- step 44 it is determined if all data pointers have been completed. If not, the process loops back to step 41, whereupon steps 41 to 44 are repeated until all data pointers have been finished. At that time, assembly of both CDAs is completed.
- FIG. 8 is a flowchart showing an example of how a DB pointer is obtained from the bimodal CDA for a given logical ID.
- the "current" CDA anchor pointer and the corresponding logical ID are accessed in steps 60 and 61.
- the DB pointer can be accessed.
- FIG. 9 is a flowchart showing how a program makes a request to the ABIOS.
- step 70 a request block for the specific request at hand is allocated and filled in.
- step 71 the "current" CDA anchor pointer is accessed.
- step 72 and 73 the anchor pointer and the RB pointer are saved in the stack frame using PUSH instructions.
- the appropriate logical ID from the RB is accessed in step 74. (There is of course a one-to-one correspondence between logical IDs and device entries in the CDA.)
- step 75 the logical ID is multiplied by 2 3 to obtain the offset of the DB pointer (four bytes/pointer, two pointers).
- step 76 The respective FTT pointer four bytes beyond the address of the DB pointer is accessed in step 76, and this FTT pointer is saved to the stack frame using a PUSH instruction in step 77.
- step 78 the DB pointer is saved to the stack frame, also using a PUSH instruction.
- step 79 the desired function is called in the FTT.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
Claims (14)
Priority Applications (17)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/030,789 US4928237A (en) | 1987-03-27 | 1987-03-27 | Computer system having mode independent addressing |
FR878716225A FR2613093B1 (en) | 1987-03-27 | 1987-11-18 | CALCULATION SYSTEM WITH OPERATION-DEPENDENT ADDRESSING |
BE8701337A BE1001064A3 (en) | 1987-03-27 | 1987-11-25 | Addressing system independent calculation of operating mode. |
GB8728922A GB2202657B (en) | 1987-03-27 | 1987-12-10 | Computer system having cpu mode independant addressing |
AT87118538T ATE91812T1 (en) | 1987-03-27 | 1987-12-15 | COMPUTER SYSTEM WITH A CPU WITH TWO MUTUALLY INCOMPATIBLE ADDRESSING MODES. |
DE87118538T DE3786660T2 (en) | 1987-03-27 | 1987-12-15 | Computer system with a CPU with two mutually incompatible addressing modes. |
ES87118538T ES2042531T3 (en) | 1987-03-27 | 1987-12-15 | COMPUTER SYSTEM USING A CENTRAL PROCESSING UNIT THAT HAS TWO MUTUALLY INCOMPATIBLE MANAGEMENT MODES. |
EP87118538A EP0288606B1 (en) | 1987-03-27 | 1987-12-15 | Computer system employing a cpu having two mutually incompatible addressing modes |
JP63008599A JPH0731628B2 (en) | 1987-03-27 | 1988-01-20 | Computer system |
CA000558930A CA1293821C (en) | 1987-03-27 | 1988-02-15 | Computer system having mode independent addressing |
DE3808167A DE3808167C2 (en) | 1987-03-27 | 1988-03-11 | Computer system with mode-independent addressing |
NLAANVRAGE8800736,A NL185634C (en) | 1987-03-27 | 1988-03-24 | COMPUTER SYSTEM AND METHOD OF ADDRESSING INDEPENDENT OF THE PROCESSING METHOD OF THE CENTRAL PROCESSING UNIT. |
BR8801388A BR8801388A (en) | 1987-03-27 | 1988-03-25 | COMPUTER SYSTEM AND OPERATING PROCESS |
IT19945/88A IT1217358B (en) | 1987-03-27 | 1988-03-25 | PROCESSOR SYSTEM WITH ADDRESSING INDEPENDENT OF THE ADDRESSING MODE USED BY PROGRAMS |
US07/525,792 US5193161A (en) | 1987-03-27 | 1990-05-18 | Computer system having mode independent addressing |
SG57/92A SG5792G (en) | 1987-03-27 | 1992-01-22 | Computer system having cpu mode independant addressing |
HK339/92A HK33992A (en) | 1987-03-27 | 1992-05-07 | Computer system having cpu mode independant addressing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/030,789 US4928237A (en) | 1987-03-27 | 1987-03-27 | Computer system having mode independent addressing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/525,792 Continuation US5193161A (en) | 1987-03-27 | 1990-05-18 | Computer system having mode independent addressing |
Publications (1)
Publication Number | Publication Date |
---|---|
US4928237A true US4928237A (en) | 1990-05-22 |
Family
ID=21856049
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/030,789 Expired - Fee Related US4928237A (en) | 1987-03-27 | 1987-03-27 | Computer system having mode independent addressing |
US07/525,792 Expired - Fee Related US5193161A (en) | 1987-03-27 | 1990-05-18 | Computer system having mode independent addressing |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/525,792 Expired - Fee Related US5193161A (en) | 1987-03-27 | 1990-05-18 | Computer system having mode independent addressing |
Country Status (15)
Country | Link |
---|---|
US (2) | US4928237A (en) |
EP (1) | EP0288606B1 (en) |
JP (1) | JPH0731628B2 (en) |
AT (1) | ATE91812T1 (en) |
BE (1) | BE1001064A3 (en) |
BR (1) | BR8801388A (en) |
CA (1) | CA1293821C (en) |
DE (2) | DE3786660T2 (en) |
ES (1) | ES2042531T3 (en) |
FR (1) | FR2613093B1 (en) |
GB (1) | GB2202657B (en) |
HK (1) | HK33992A (en) |
IT (1) | IT1217358B (en) |
NL (1) | NL185634C (en) |
SG (1) | SG5792G (en) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5018062A (en) * | 1987-10-23 | 1991-05-21 | A.I. Architects, Inc. | Method and apparatus for overriding a ROM routine in response to a reset |
US5101493A (en) * | 1989-06-19 | 1992-03-31 | Digital Equipment Corporation | Digital computer using data structure including external reference arrangement |
WO1992007319A1 (en) * | 1990-10-17 | 1992-04-30 | Ast Research, Inc. | System for multiple access hard disk partitioning |
US5142626A (en) * | 1990-07-20 | 1992-08-25 | International Business Machines Corp. | Personal computer with removable media identification |
US5193161A (en) * | 1987-03-27 | 1993-03-09 | International Business Machines Corp. | Computer system having mode independent addressing |
US5226122A (en) * | 1987-08-21 | 1993-07-06 | Compaq Computer Corp. | Programmable logic system for filtering commands to a microprocessor |
US5241634A (en) * | 1988-04-26 | 1993-08-31 | Oki Electric Industry Co., Ltd. | Method of handling system calls to an operating system of a computer by system service routines stored as firmware |
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5274776A (en) * | 1990-02-08 | 1993-12-28 | Nec Corporation | Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction |
US5291585A (en) * | 1991-07-29 | 1994-03-01 | Dell Usa, L.P. | Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format |
US5303378A (en) * | 1991-05-21 | 1994-04-12 | Compaq Computer Corporation | Reentrant protected mode kernel using virtual 8086 mode interrupt service routines |
AU651648B2 (en) * | 1990-11-16 | 1994-07-28 | Cal-West Equipment Company, Inc. | Protective coating and method of using such coating |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5487158A (en) * | 1993-04-06 | 1996-01-23 | International Business Machines Corporation | Method and procedure call mechanism for calling 16-bit functions from 32-bit functions |
US5490256A (en) * | 1993-04-06 | 1996-02-06 | International Business Machines Corporation | Method and mechanism for calling 32-bit functions from 16-bit functions |
US5537597A (en) * | 1993-09-27 | 1996-07-16 | Intel Corporation | Method and apparatus for supporting real mode card services clients with a protected mode card services implementation |
US5596755A (en) * | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
US5796988A (en) * | 1994-01-21 | 1998-08-18 | Microsoft Corporation | Method and system using dedicated location to share information between real mode and protected mode drivers |
US5860079A (en) * | 1996-05-10 | 1999-01-12 | Apple Computer, Inc. | Arrangement and method for efficient calculation of memory addresses in a block storage memory system |
US5864698A (en) * | 1994-08-24 | 1999-01-26 | Packard Bell Nec | Disk based bios |
US5951658A (en) * | 1997-09-25 | 1999-09-14 | International Business Machines Corporation | System for dynamic allocation of I/O buffers for VSAM access method based upon intended record access where performance information regarding access is stored in memory |
US5983000A (en) * | 1997-06-05 | 1999-11-09 | Alcatel | Apparatus for patching a control program in a processor |
US6148387A (en) * | 1997-10-09 | 2000-11-14 | Phoenix Technologies, Ltd. | System and method for securely utilizing basic input and output system (BIOS) services |
US6178550B1 (en) * | 1995-01-31 | 2001-01-23 | Dell Usa | Mechanism for optimizing location of machine-dependent code |
US6385718B1 (en) * | 1991-09-23 | 2002-05-07 | Intel Corporation | Computer system and method for executing interrupt instructions in operating modes |
US6438621B1 (en) | 1994-11-14 | 2002-08-20 | Microsoft Corporation | In-memory modification of computer programs |
US6502237B1 (en) | 1996-01-29 | 2002-12-31 | Compaq Information Technologies Group, L.P. | Method and apparatus for performing binary translation method and apparatus for performing binary translation |
US6535903B2 (en) * | 1996-01-29 | 2003-03-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for maintaining translated routine stack in a binary translation environment |
US6785806B1 (en) | 1999-12-30 | 2004-08-31 | Intel Corporation | Bios having macro/effector pairs for hardware initialization |
US20100125754A1 (en) * | 2008-11-19 | 2010-05-20 | Inventec Corporation | Method for accessing a big structure in a 64k operating environment |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604885A (en) * | 1991-02-01 | 1997-02-18 | Texas Instruments Incorporated | Apparatus and method enabling a computer to transfer control between two program segments that call one another but operate in different modes |
US5297282A (en) * | 1991-05-29 | 1994-03-22 | Toshiba America Information Systems, Inc. | Resume processing function for the OS/2 operating system |
US5355490A (en) * | 1991-06-14 | 1994-10-11 | Toshiba America Information Systems, Inc. | System and method for saving the state for advanced microprocessor operating modes |
US5237669A (en) * | 1991-07-15 | 1993-08-17 | Quarterdeck Office Systems, Inc. | Memory management method |
JPH0778106A (en) * | 1993-09-08 | 1995-03-20 | Hitachi Ltd | Data processing system |
US5459869A (en) * | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5564023A (en) * | 1994-06-30 | 1996-10-08 | Adaptec, Inc. | Method for accessing a sequencer control block by a host adapter integrated circuit |
US5625800A (en) * | 1994-06-30 | 1997-04-29 | Adaptec, Inc. | SCB array external to a host adapter integrated circuit |
US5642491A (en) * | 1994-09-21 | 1997-06-24 | International Business Machines Corporation | Method for expanding addressable memory range in real-mode processing to facilitate loading of large programs into high memory |
US5710941A (en) * | 1995-02-28 | 1998-01-20 | Microsoft Corporation | System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation |
US6141722A (en) * | 1995-05-31 | 2000-10-31 | Microsoft Corporation | Method and apparatus for reclaiming memory |
WO1996038784A1 (en) * | 1995-06-02 | 1996-12-05 | Systemsoft Corporation | Digital data processing method and apparatus for peripheral device control |
US5864689A (en) * | 1995-12-05 | 1999-01-26 | Advanced Micro Devices, Inc. | Microprocessor configured to selectively invoke a microcode DSP function or a program subroutine in response to a target address value of branch instruction |
US6321332B1 (en) * | 1998-06-17 | 2001-11-20 | Intel Corporation | Flexible control of access to basic input/output system memory |
GB2396713B (en) | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
GB2396930B (en) * | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
US7738993B2 (en) * | 2003-10-10 | 2010-06-15 | Boston Scientific Scimed, Inc. | Extrusion of articles |
US9015727B2 (en) * | 2008-04-02 | 2015-04-21 | Qualcomm Incorporated | Sharing operating system sub-processes across tasks |
US9898307B2 (en) * | 2015-12-21 | 2018-02-20 | Intel Corporation | Starting application processors of a virtual machine |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4004278A (en) * | 1973-03-19 | 1977-01-18 | Hitachi, Ltd. | System for switching multiple virtual spaces |
US4084224A (en) * | 1973-11-30 | 1978-04-11 | Compagnie Honeywell Bull | System of controlling procedure execution using process control blocks |
US4128875A (en) * | 1976-12-16 | 1978-12-05 | Sperry Rand Corporation | Optional virtual memory system |
US4270167A (en) * | 1978-06-30 | 1981-05-26 | Intel Corporation | Apparatus and method for cooperative and concurrent coprocessing of digital information |
US4296468A (en) * | 1977-09-26 | 1981-10-20 | Hitachi, Ltd. | Address conversion unit for data processing system |
US4315321A (en) * | 1978-06-16 | 1982-02-09 | The Kardios Systems Corporation | Method and apparatus for enhancing the capabilities of a computing system |
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
US4514805A (en) * | 1982-02-22 | 1985-04-30 | Texas Instruments Incorporated | Interrupt operation in systems emulator mode for microcomputer |
EP0197552A2 (en) * | 1985-04-10 | 1986-10-15 | Microsoft Corporation | Method of processing interrupts in a digital computer system |
EP0208429A2 (en) * | 1985-06-28 | 1987-01-14 | Hewlett-Packard Company | Method and apparatus for addressing a number of address spaces |
US4727480A (en) * | 1984-07-09 | 1988-02-23 | Wang Laboratories, Inc. | Emulation of a data processing system |
US4736290A (en) * | 1985-06-18 | 1988-04-05 | International Business Machines Corporation | Microprocessors |
US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
US4825358A (en) * | 1985-04-10 | 1989-04-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4849875A (en) * | 1987-03-03 | 1989-07-18 | Tandon Corporation | Computer address modification system with optional DMA paging |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4787032A (en) * | 1986-09-08 | 1988-11-22 | Compaq Computer Corporation | Priority arbitration circuit for processor access |
US4928237A (en) * | 1987-03-27 | 1990-05-22 | International Business Machines Corp. | Computer system having mode independent addressing |
US5018062A (en) * | 1987-10-23 | 1991-05-21 | A.I. Architects, Inc. | Method and apparatus for overriding a ROM routine in response to a reset |
US4974159A (en) * | 1988-09-13 | 1990-11-27 | Microsoft Corporation | Method of transferring control in a multitasking computer system |
-
1987
- 1987-03-27 US US07/030,789 patent/US4928237A/en not_active Expired - Fee Related
- 1987-11-18 FR FR878716225A patent/FR2613093B1/en not_active Expired - Fee Related
- 1987-11-25 BE BE8701337A patent/BE1001064A3/en not_active IP Right Cessation
- 1987-12-10 GB GB8728922A patent/GB2202657B/en not_active Expired - Fee Related
- 1987-12-15 EP EP87118538A patent/EP0288606B1/en not_active Expired - Lifetime
- 1987-12-15 DE DE87118538T patent/DE3786660T2/en not_active Expired - Fee Related
- 1987-12-15 AT AT87118538T patent/ATE91812T1/en not_active IP Right Cessation
- 1987-12-15 ES ES87118538T patent/ES2042531T3/en not_active Expired - Lifetime
-
1988
- 1988-01-20 JP JP63008599A patent/JPH0731628B2/en not_active Expired - Lifetime
- 1988-02-15 CA CA000558930A patent/CA1293821C/en not_active Expired - Fee Related
- 1988-03-11 DE DE3808167A patent/DE3808167C2/en not_active Expired - Fee Related
- 1988-03-24 NL NLAANVRAGE8800736,A patent/NL185634C/en not_active IP Right Cessation
- 1988-03-25 BR BR8801388A patent/BR8801388A/en not_active Application Discontinuation
- 1988-03-25 IT IT19945/88A patent/IT1217358B/en active
-
1990
- 1990-05-18 US US07/525,792 patent/US5193161A/en not_active Expired - Fee Related
-
1992
- 1992-01-22 SG SG57/92A patent/SG5792G/en unknown
- 1992-05-07 HK HK339/92A patent/HK33992A/en unknown
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4004278A (en) * | 1973-03-19 | 1977-01-18 | Hitachi, Ltd. | System for switching multiple virtual spaces |
US4084224A (en) * | 1973-11-30 | 1978-04-11 | Compagnie Honeywell Bull | System of controlling procedure execution using process control blocks |
US4128875A (en) * | 1976-12-16 | 1978-12-05 | Sperry Rand Corporation | Optional virtual memory system |
US4296468A (en) * | 1977-09-26 | 1981-10-20 | Hitachi, Ltd. | Address conversion unit for data processing system |
US4315321A (en) * | 1978-06-16 | 1982-02-09 | The Kardios Systems Corporation | Method and apparatus for enhancing the capabilities of a computing system |
US4270167A (en) * | 1978-06-30 | 1981-05-26 | Intel Corporation | Apparatus and method for cooperative and concurrent coprocessing of digital information |
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
US4514805A (en) * | 1982-02-22 | 1985-04-30 | Texas Instruments Incorporated | Interrupt operation in systems emulator mode for microcomputer |
US4727480A (en) * | 1984-07-09 | 1988-02-23 | Wang Laboratories, Inc. | Emulation of a data processing system |
EP0197552A2 (en) * | 1985-04-10 | 1986-10-15 | Microsoft Corporation | Method of processing interrupts in a digital computer system |
US4779187A (en) * | 1985-04-10 | 1988-10-18 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4825358A (en) * | 1985-04-10 | 1989-04-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4736290A (en) * | 1985-06-18 | 1988-04-05 | International Business Machines Corporation | Microprocessors |
EP0208429A2 (en) * | 1985-06-28 | 1987-01-14 | Hewlett-Packard Company | Method and apparatus for addressing a number of address spaces |
US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
US4849875A (en) * | 1987-03-03 | 1989-07-18 | Tandon Corporation | Computer address modification system with optional DMA paging |
Non-Patent Citations (6)
Title |
---|
Childs, Jr., et al.; "A Processor Family for Personal Computers"; 1984. |
Childs, Jr., et al.; A Processor Family for Personal Computers ; 1984. * |
Intel iAPX 286 Operating Systems Writer s Guide, Intel Corporation, 1983. * |
Intel iAPX 286 Operating Systems Writer's Guide, Intel Corporation, 1983. |
Intel iAPX 286 Programmer s Reference Manual, Intel Corporation, 1983. * |
Intel iAPX 286 Programmer's Reference Manual, Intel Corporation, 1983. |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193161A (en) * | 1987-03-27 | 1993-03-09 | International Business Machines Corp. | Computer system having mode independent addressing |
US5226122A (en) * | 1987-08-21 | 1993-07-06 | Compaq Computer Corp. | Programmable logic system for filtering commands to a microprocessor |
US5381530A (en) * | 1987-08-21 | 1995-01-10 | Compaq Computer Corporation | Programmable logic system for filtering commands to a microprocessor |
US5018062A (en) * | 1987-10-23 | 1991-05-21 | A.I. Architects, Inc. | Method and apparatus for overriding a ROM routine in response to a reset |
US5241634A (en) * | 1988-04-26 | 1993-08-31 | Oki Electric Industry Co., Ltd. | Method of handling system calls to an operating system of a computer by system service routines stored as firmware |
US5101493A (en) * | 1989-06-19 | 1992-03-31 | Digital Equipment Corporation | Digital computer using data structure including external reference arrangement |
US5274776A (en) * | 1990-02-08 | 1993-12-28 | Nec Corporation | Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction |
US5142626A (en) * | 1990-07-20 | 1992-08-25 | International Business Machines Corp. | Personal computer with removable media identification |
US5136711A (en) * | 1990-10-17 | 1992-08-04 | Ast Research | System for multiple access hard disk partitioning |
WO1992007319A1 (en) * | 1990-10-17 | 1992-04-30 | Ast Research, Inc. | System for multiple access hard disk partitioning |
AU651648B2 (en) * | 1990-11-16 | 1994-07-28 | Cal-West Equipment Company, Inc. | Protective coating and method of using such coating |
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5303378A (en) * | 1991-05-21 | 1994-04-12 | Compaq Computer Corporation | Reentrant protected mode kernel using virtual 8086 mode interrupt service routines |
US5586324A (en) * | 1991-07-29 | 1996-12-17 | Dell U.S.A., L.P. | Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine independent format |
US5291585A (en) * | 1991-07-29 | 1994-03-01 | Dell Usa, L.P. | Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format |
CN100351790C (en) * | 1991-09-23 | 2007-11-28 | 英特尔公司 | Method of implementing software break command using two operating modes and computer system |
US6385718B1 (en) * | 1991-09-23 | 2002-05-07 | Intel Corporation | Computer system and method for executing interrupt instructions in operating modes |
US7010671B2 (en) | 1991-09-23 | 2006-03-07 | Intel Corporation | Computer system and method for executing interrupt instructions in two operating modes |
US20050091480A1 (en) * | 1991-09-23 | 2005-04-28 | Crawford John H. | Computer system and method for executing interrupt instructions in operating modes |
US5596755A (en) * | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
US5694606A (en) * | 1992-11-03 | 1997-12-02 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
US5487158A (en) * | 1993-04-06 | 1996-01-23 | International Business Machines Corporation | Method and procedure call mechanism for calling 16-bit functions from 32-bit functions |
US5490256A (en) * | 1993-04-06 | 1996-02-06 | International Business Machines Corporation | Method and mechanism for calling 32-bit functions from 16-bit functions |
US5537597A (en) * | 1993-09-27 | 1996-07-16 | Intel Corporation | Method and apparatus for supporting real mode card services clients with a protected mode card services implementation |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5796988A (en) * | 1994-01-21 | 1998-08-18 | Microsoft Corporation | Method and system using dedicated location to share information between real mode and protected mode drivers |
US5864698A (en) * | 1994-08-24 | 1999-01-26 | Packard Bell Nec | Disk based bios |
US6438621B1 (en) | 1994-11-14 | 2002-08-20 | Microsoft Corporation | In-memory modification of computer programs |
US6178550B1 (en) * | 1995-01-31 | 2001-01-23 | Dell Usa | Mechanism for optimizing location of machine-dependent code |
US6502237B1 (en) | 1996-01-29 | 2002-12-31 | Compaq Information Technologies Group, L.P. | Method and apparatus for performing binary translation method and apparatus for performing binary translation |
US6535903B2 (en) * | 1996-01-29 | 2003-03-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for maintaining translated routine stack in a binary translation environment |
US5860079A (en) * | 1996-05-10 | 1999-01-12 | Apple Computer, Inc. | Arrangement and method for efficient calculation of memory addresses in a block storage memory system |
US5983000A (en) * | 1997-06-05 | 1999-11-09 | Alcatel | Apparatus for patching a control program in a processor |
US5951658A (en) * | 1997-09-25 | 1999-09-14 | International Business Machines Corporation | System for dynamic allocation of I/O buffers for VSAM access method based upon intended record access where performance information regarding access is stored in memory |
US6148387A (en) * | 1997-10-09 | 2000-11-14 | Phoenix Technologies, Ltd. | System and method for securely utilizing basic input and output system (BIOS) services |
US6892304B1 (en) | 1997-10-09 | 2005-05-10 | Phoenix Technologies Ltd. | System and method for securely utilizing basic input and output system (BIOS) services |
US6785806B1 (en) | 1999-12-30 | 2004-08-31 | Intel Corporation | Bios having macro/effector pairs for hardware initialization |
US20100125754A1 (en) * | 2008-11-19 | 2010-05-20 | Inventec Corporation | Method for accessing a big structure in a 64k operating environment |
Also Published As
Publication number | Publication date |
---|---|
FR2613093B1 (en) | 1990-03-23 |
NL185634C (en) | 1990-06-01 |
US5193161A (en) | 1993-03-09 |
BE1001064A3 (en) | 1989-06-27 |
ATE91812T1 (en) | 1993-08-15 |
CA1293821C (en) | 1991-12-31 |
IT8819945A0 (en) | 1988-03-25 |
JPS63244147A (en) | 1988-10-11 |
EP0288606A3 (en) | 1989-05-03 |
EP0288606B1 (en) | 1993-07-21 |
SG5792G (en) | 1992-03-20 |
DE3786660D1 (en) | 1993-08-26 |
DE3808167A1 (en) | 1988-10-13 |
DE3808167C2 (en) | 1994-03-24 |
GB2202657B (en) | 1991-09-18 |
DE3786660T2 (en) | 1994-02-17 |
FR2613093A1 (en) | 1988-09-30 |
GB8728922D0 (en) | 1988-01-27 |
HK33992A (en) | 1992-05-15 |
ES2042531T3 (en) | 1993-12-16 |
IT1217358B (en) | 1990-03-22 |
NL8800736A (en) | 1988-10-17 |
JPH0731628B2 (en) | 1995-04-10 |
EP0288606A2 (en) | 1988-11-02 |
GB2202657A (en) | 1988-09-28 |
BR8801388A (en) | 1988-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4928237A (en) | Computer system having mode independent addressing | |
US5307497A (en) | Disk operating system loadable from read only memory using installable file system interface | |
US4984149A (en) | Memory access control apparatus | |
JP3268310B2 (en) | Memory management method | |
US6813522B1 (en) | Method of sharing memory in a multi-processor system including a cloning of code and data | |
US5694583A (en) | BIOS emulation parameter preservation across computer bootstrapping | |
US5835760A (en) | Method and arrangement for providing BIOS to a host computer | |
US6421776B1 (en) | Data processor having BIOS packing compression/decompression architecture | |
US5355498A (en) | Method and apparatus for booting a computer system without loading a device driver into memory | |
CA1266532A (en) | Method to share copy on write segment for mapped files | |
US5692190A (en) | Bios emulation of a hard file image as a diskette | |
US5291585A (en) | Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format | |
US5802363A (en) | Bios dynamic emulation of multiple diskettes from a single media | |
US5187792A (en) | Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system | |
US4031517A (en) | Emulation of target system interrupts through the use of counters | |
US5386522A (en) | Dynamic physical address aliasing during program debugging | |
WO1996009584A2 (en) | A microcontroller system for performing operations of multiple microcontrollers | |
JPH06324849A (en) | Method and system for activation of operating system environment | |
JPH05165706A (en) | Memory paging device and method for paging nonvolatile memory device | |
EP1779241A1 (en) | A system and method for simulating real-mode memory access with access to extended memory | |
US5963738A (en) | Computer system for reading/writing system configuration using I/O instruction | |
US5127096A (en) | Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes | |
US5349661A (en) | Installation of an expanded memory manager | |
US5754852A (en) | Apparatus for combining cellular telephone ring signals and PSTN ring signals | |
JPH06332803A (en) | Tlb control method in virtual computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:SOTOMAYOR, GUY G.;WILLIAMS, DONALD D.;VAISKAUCKAS, GARY A.;REEL/FRAME:004686/0968;SIGNING DATES FROM 19870320 TO 19870323 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SOTOMAYOR, GUY G.;WILLIAMS, DONALD D.;VAISKAUCKAS, GARY A.;SIGNING DATES FROM 19870320 TO 19870323;REEL/FRAME:004686/0968 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BEALKOWSKI, RICHARD;DAYAN, RICHARD A.;DORIA, DAVID J.;AND OTHERS;SIGNING DATES FROM 19870320 TO 19870326;REEL/FRAME:004686/0966 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:BEALKOWSKI, RICHARD;DAYAN, RICHARD A.;DORIA, DAVID J.;AND OTHERS;REEL/FRAME:004686/0966;SIGNING DATES FROM 19870320 TO 19870326 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 19980527 |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |