Computers known as PC-XT and PC-XT that dominated the market a few years ago, today are totally obsolete, but some of their limitations, as an inheritance, to preserve the compatibility of written programs for them have reached the following computers.
As indicated in the last issue of Elhuyar, the memory between 0 and 640 Kb is called Conventional Memory. The next section of 384 kilobytes on it is known as Upper Memory and is between 640 Kb and 1024 Kb. (See figure 1).
The reason for these magic numbers 640 Kb and 1024 Kb comes from the internal design of the 8088 chip used for the old IBM PC personal computer.
The Address Bus that has the Intel micro 8088 consists of 20 threads. Since at any given time a bit is transmitted per cable, a maximum of 220 = 1,048,576 different or resting addresses can be directed.
Memori has an 8-bit length (one byte) and one address defines a single stack by definition. Therefore, the memory capacity can be 220 = 1.048.576 inerted = 1.048.576 bytes = 1.024 Kb = 1 Mb.
To direct those 1024 Kb of the mentioned memory you need 20 bits. Due to the architecture of this microprocessor, the Data Bus is 16 bits and recalls that the addresses are transported from the Memori Table to the Control Unit via the Data Bus (Elhuyar 70).
So how can you get a 20-bit address by 16-bit? For this purpose a segmented addressing has been invented: 20 bit real address indicating two 16-bit numbers [base segment and offset]. The 8088 microprocessor, taking the segment/offset pair, calculates the actual physical address by applying the following algorithm:
10h * segment + displacement
From the hardware point of view, if the heart of PC XT was 8088 micro, from the software point of view it was opted for the DOS Operating System. And programs running under DOS use Ordinary Memory.
The interface of modern application programs (communication between the operator and the computer) has been greatly simplified, since it is based on an extensive graph, windows, menus, mice, etc., but the memory that requires all these functions is very large and as can be seen in figure 1, the space left for the user application is very reduced due to the shortage of Simple Memory. In this sense, and in 8088 computers, the message translated by some application that tries to run is the usual one of “Insufficient memory in the system”.
The most direct way to know the memory of a computer is by running the transient CHKDSK command of the DOS Operating System (Figure 2). The CHKDSK command shows the full memory size and what is free at that time. Please note that for more information and with version 4.0 or later of the DOS Operating System, you can use the NOM command (Figure 3).
It was thought that the 640 Kb memory was enough in a while, but in a few years it has remained very small. Therefore, instead of overcoming this limitation, two ways have been addressed:
To understand one way or another, we will analyze the memori map based on the microprocessor (see figure 4).
Ordinary Memory shall be understood as exposed and shall not proceed further.
The 384 Kb of superior memory is divided into six 64Kb segments. The distribution of the higher memory may vary from computer to computer, but in general it may seem:
With this last segment we reach 1024 Kb and from now on the memory is called Extended Memory. It is clear that 8088 computers do not have them and that the only option left to exceed 640 Kbytes is that of Extended Memory.
If the MS-DOS Operating System has remained as standard to date, it has been thanks to Extended Memory. Extended Memory allows you to break the 640 Kb limit and run larger programs.
First of all, it must be said that Extended Memory is a trap devised by programmers. If the Extended Memory is greater than 1 Mb, the Extended Memory has no fixed address and is a trick proposed by a group of companies.
Lotus-Intel-Microsoft companies made the LIM EMS or EMS (Expanded Memory Specification) specification for DOS Operating System programs to exceed 640 Kb.
Extended Memory is located on a card to be added to the computer from outside. Below are, for example, the features of Extended Memory EMS version 4.0:
Extended memory width:
32MbLogical page
width:
16 Kbps More logical
pages:
2,048 logical pages
As the entire Extended Memory is divided into logical pages of 16 Kb, there will be 2,048 logical pages.
32 * 1.048.576 (bytes)16
* 1.024 (bytes/pages)= 2.048
logical pages
Since Extended Memory is an attached memory, Operating System DOS will not be able to domicile the existing one, since the last address with meaning for it is 1024 Kb. That is, the addresses that DOS can use are those that can be physically defined through the Address Bus, starting with 0 Kb up to 1024 Kb.
When high memory appears it has been observed that some segments were empty, and there is one reserved for something specific: Segment D, called Page Frame.
This segment D offers the possibility to link the microprocessor to Extended Memory. When an application needs something found in Extended Memory, an MMU memory manager (MMU: Memory Management Unit) copies the logical page corresponding to this data to segment D. The EMS specification is only an exchange of memory banks. Somehow, from the narrow page window you can get a very wide view. (See figure 5).
There are different Extended Memories on the market. The most important are: LIM EMS, IBM XMA and AST EEMS.
XMA Extended Memory is a specification of the IBM home and only supports IBM cards, is not widely used and the XMA2EMS.SYS controller offered by the DOS 4.0 Operating System transforms Extended XMA Memory into Extended EMS.
The name of the EEMS Extended Memory, Enhanced Expanded Memory Specification, indicates that EMS is improved and announces a promising future.
The LIM EMS Extended Memory is from the Lotus-Intel-Microsoft trio and certainly the most common. It is so present in the market that when someone speaks of Extended Memory, if it does not add precision it can be said that it refers to this LIM EMS mentioned.
Extended Memory is the RAM of 80286//80386/80486 computers, with a position exceeding 1024 Kb.
The microprocessor must be protected in order to use the Extended Memory. The segment/offset pair indicated above is used to indicate 20-bit addresses but not for 24-bit (80286) or 32-bit (80386) address buses. Therefore a pair of selectors/offset is used. The selector is the index of a physical address table.
As said, there are many application programs running in Extended Memory. In order to use Extended Memory, programs must take into account the protected mode of the microprocessor and must be written specifically for Extended Memory, examples of this are UNIX and OS/2 Operating Systems.
There are some executable application programs on the market in Extended Memory, but there are few. As from the programmer's point of view Extended Memory is simpler, virtually all programs on the market accept it, with the drawback of having to add a special card.
In short, the situation would be as follows: the most common computers currently on sale in the store are 80286, 80386 and 80486, with a huge Extended Memory, but without a suitable application program.
The solution is to configure the Extended Memory they contain as an Extended Memory without adding any cards, that is, that the Extended Memory simulates the Extended Memory. It is necessary to install a special device driver in the CONFIG.SYS configuration file. For example:
DEVICE = EMS4.SYSDEVICE
= EMM386.SYSDEVICE =
XMSAEM.SYS
All three convert Extended Memory into Extended Memory. The EMS4 driver simulates the LIM-EMS 4.0 Extended Memory. Suitable for PC-AT and 80286 computers. Returns the Extended Memory to version 4.05 of LIM-EMS through the EMM386 file, special for 80386 computers. The XMSAEM controller passes the Extended Memory to the Extended Memory type XMA, normally this XMSAEM.SYS is used along with another file (XMA2EMS.SYS), so that it is accessed from the IBM Extended XMA Memory to the LIM-EMS Extended Memory.
In the last three articles on the memory of computers a new battery of words has appeared and for the steps forward in the normalization of the Basque language, there must be an absolute consensus in the fixation of terminology. The above are the views of the author. Here are the dubious terms in the original language and the proposed translations:
MemoryConvent>MemoryUpper |
Memory |
If any of them were not correct, we would be willing to immediately accept the substitutes that were most suitable.
Note: To see the images well go to the pdf.