Electrical computers and digital processing systems: memory – Address formation – Address mapping
Reexamination Certificate
1998-07-15
2001-04-24
Yoo, Do (Department: 2187)
Electrical computers and digital processing systems: memory
Address formation
Address mapping
C711S102000, C714S719000
Reexamination Certificate
active
06223271
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to a computer and, more particularly, to an apparatus and method for detecting, during computer reset, the size of a contiguous physical memory size residing within one or more memory banks inserted into the computer.
2. Description of the Related Art
Modern microprocessors and/or computers address according to byte granularity. This means memory is generally organized and accessed as a sequence of bytes, and a byte address is used to address memory. Byte addressable memory encompasses what is generally referred to as memory address space.
The memory address space, and therefore processors operating from that space, can be segmented. Segmented addressing supports programs operating from separate and distinct address segments. For example, a program can keep its code (instructions), stack addresses, data and various global or local descriptor tables in separate segments independent from one another. This allows the execution environment within each of the various segments to operate independent of one another to achieve multi-tasking.
The execution environment of each segment can be paged. Paging is a mechanism of memory management which allows the most recently accessed pages to be held in physical memory instead of slower disk space. As such, physical memory herein refers to semiconductor memory involving a rather large contiguous address space which can be written to and read from. Generally speaking, physical memory may refer to random access memory (RAM). A benefit of paging is the ability to swap byte addressable space between physical memory and disk storage, where more recently addressed memory is chosen to reside in RAM rather than disk storage.
The location of pages, often referred to as page frames, reside in physical memory and is contained in a two-system data structure—a page directory and a page table. When coupled with segmentation, paging provides a mechanism for implementing a conventional demand-paged, virtual-memory system where sections of a program's execution environment are mapped into physical memory as needed. As such, paging allows a data structure to partly reside in physical memory and partly within disk storage. To minimize the number of bus cycles required for address translation, the most recently accessed page directory and page table entries can be cached in the processor in devices called translation lookaside buffers (TLBs).
Modern processors support several modes of operation, whereby addressing differs depending on which mode the processor currently resides. For example, a Pentium Pro® processor supports protected mode and real mode addressing schemes. In real mode, the microprocessor can address a limit of 1 Mbyte of real mode memory. However, in protected mode, the addressable memory can be extended to 4 Gbytes. The Pentium Pro® microprocessor resides in real mode following power-up or reset. However, a flag can thereafter be set in the control register of the processor to determine if the processor is to operate in protected mode.
Although protected mode allows the microprocessor to access more than 1 Mbytes of memory, many modern microprocessors such as the Pentium Pro® processor utilize an address bus exceeding 32 bits. This allows the address bus to access, for example, 36 bits of information comparable to 2
36
, or 64 Gbytes. In many server applications, it is desirable to use physical memory exceeding 4 Gbytes. However, to do so, paging is needed to translate from 4 Gbytes to 64 Gbytes. Conventional techniques for performing such translation is both time consumptive and burdensome.
Conventional paging and/or translation between a linear address space seen by a processor and physical address space of actual physical memory and disk storage occurs within page tables and page directories which form a part of, and are derived from, the physical memory. In order to translate between 4 Gbytes and 64 Gbytes, the page translation tables and directories must first be established within RAM, and then the formulated page translation tables will allow translation to the extended (greater than 4 Gbyte) range.
A problem exists, however, whenever the computer is first initialized during reset or boot up. During boot up, the computer must detect or “feel” for physical memory present within the computer. The detection process involves the processor determining physical memory size by writing to an address and reading from that address. The fact that the stored value equals the address read indicates that physical memory is present at least at that address. The concept of writing to and reading from an address proves advantageous over setting jumper wires or dual in-line package (DIP) switches.
If the translation tables are to be established in RAM, then boot up must entail detecting physical memory less than 4 Gbytes and then, from the detected memory space, establishing translation tables within a portion of that detected space. Only at this time can the extended memory range be detected from the translation tables.
The sequential operation of detecting a limited physical address range, then building translation tables within a portion of that range, and then finally detecting the remainder of the physical address space within the extended range exceeding 4 Gbytes adds significant time to the boot-up procedure. Thus, translation tables built within either cache or RAM pose significant limitations against being able to detect the entire 36-bit physical address range during a single boot-up step.
SUMMARY OF THE INVENTION
The problems outlined above are in large part solved by an apparatus and method for detecting an entire extended physical address range using translation tables stores in read only memory (ROM). The ROM can either be configured on a mezzanine bus (i.e., PCI bus) or a more distal bus, such as an ISA or EISA bus. The ROM maintains the translation tables in hardware, and is accessible whenever the processor is initiated during computer boot up or reset. The computer BIOS stored in ROM will load a control register within the processor, and that control register will point to a base address within a page directory pointer table (PDPI). The base address, coupled with a page directory entry and an offset of a linear address will access a physical address within a page equally spaced from other pages across the entire extended 64 Gbyte physical address range.
The combination of a linear address forwarded from the processor and the base address forwarded from a control register within the processor defines at least one address within a page among numerous pages within a sector. There may be numerous sectors evenly spaced across the physical address space so as to allow mapping or translation from a linear address to a physical address residing within a page and, more importantly, to one page within a sector. Separation between adjacent sectors are known as boundary addresses which can be written to and read from in order to test (or detect) physical memory present at that boundary.
Detecting physical memory at only one physical address within a sector, preferably at or near the boundary address, allows for quick determination of the extent (or size) of physical memory present within the entire physical address space, including the extended physical address range (e.g., physical address range extending above 2
36
to 2
36
bytes). By placing the translation tables within ROM, translation to the entire extended range available to the processor address bus can be achieved during boot up. This avoids the limitation of detecting only a portion of the physical memory space, build translation tables, and then detect the remaining, extended physical memory space as in conventional designs.
According to one embodiment, an apparatus is provided for detecting physical memory size within a computer system. The apparatus comprises ROM embodying a page translation table for translating a first address within a first address range to a second address residing possibly at a bo
Compaq Computer Corp.
Conley Rose & Tayon
Daffer Kevin L.
Portka Gary J.
Yoo Do
LandOfFree
System and method for detecting system memory size using ROM... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for detecting system memory size using ROM..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for detecting system memory size using ROM... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2485346