Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Emulation of an Expanded Memory Adapter Using a Microprocessor

IP.com Disclosure Number: IPCOM000035244D
Original Publication Date: 1989-Jun-01
Included in the Prior Art Database: 2005-Jan-28
Document File: 3 page(s) / 66K

Publishing Venue

IBM

Related People

Wilson, JN: AUTHOR

Abstract

This article describes a technique which uses features of an Intel* 80386 microprocessor to emulate an expanded memory adapter (XMA).

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 3

Emulation of an Expanded Memory Adapter Using a Microprocessor

This article describes a technique which uses features of an Intel* 80386 microprocessor to emulate an expanded memory adapter (XMA).

The XMA card contains circuitry that makes a large amount of memory available for running personal computer disk operating system (PCDOS) applications. It does this via a paging mechanism that switches a large amount of memory in and out of the one megabyte ad dress space used by PCDOS. It uses the concept of a "Processor ID" to improve performance. The performance improvement comes because the mapping of logical addresses to physical addresses is performed by a translate table whose 256 entries are individually set via OUTs to the card. The XMA card contains 16 translate tables so that an entire translate table does not have to be remapped in order to switch to another process or application program. Switching the translate tables (e.g., for multitasking) takes a single OUT to set the current Process ID which, in turn, identifies the correct translate table to use. The XMA card also has the ability to allow direct memory access (DMA) I/O to continue to take place for a process after changing the current Process ID. This is done by capturing the current Process ID when a starting DMA address is sent to the DMA controller. The captured Process ID is then used to select the correct translate table for memory references by that DMA channel until a new starting address is programmed.

The paging mechanism on the XMA card is not necessary on a computer using the 80386 microprocessor. The Intel Virtual 8086 mode of the processor provides the ability to switch pages in and out of the 1 megabyte PCDOS address space. It also provides the ability to intercept INs and OUTs to an emulated XMA card.

The technique disclosed herein uses memory above the first megabyte of real memory (extended memory) to emulate an XMA card. It continues to support the move block interface to extended memory by using the 80386 ability to intercept interrupts. A user may reserve part of the real extended memory for use via the move block mechanism. This support may be faster than usual since there is no need to switch in and out of protected mode to do the move. (A virtual 8086 system is always in protect mode).

Seventeen page tables are set up for the first megabyte of virtual memory. One represents the mapping of memory when the emulated XMA card is disabled. The other sixteen represent the 16 translate tables on a real XMA c...