Electrical computers and digital processing systems: memory – Address formation – Address mapping
Reexamination Certificate
2000-04-13
2002-08-06
Peikari, B. James (Department: 2186)
Electrical computers and digital processing systems: memory
Address formation
Address mapping
C711S203000, C711S206000, C711S207000, C711S153000
Reexamination Certificate
active
06430667
ABSTRACT:
FIELD OF THE INVENTION
The invention is generally related to computers and computer memory management. More specifically, the invention is generally related to virtual address translation in a single-level store computer.
BACKGROUND OF THE INVENTION
Memory management, i.e., the operations that occur in managing the data stored in a computer, is often a key factor in overall system performance for a computer, particularly in the case of multi-user computers such as servers, midrange computers, mainframe computers, etc., that are accessible by multiple users. Among other tasks, memory management oversees the retrieval and storage of data on a computer, as well as manages certain security tasks for a computer by imposing restrictions on what users and computer programs are permitted to access.
A number of multi-user computers, as well as other computers in general, rely on a memory management technique known as virtual memory management to increase performance and provide greater upgradability of computers and the underlying architectural designs upon which they are premised.
With a virtual memory system, the underlying hardware implementing the memory system of a computer is effectively hidden from the software of the computer. A relatively large virtual memory space, e.g., 64-bits or more in width, is defined for such a computer, with computer programs that execute on the computer accessing the memory system using virtual addresses pointing to locations in the virtual memory space. The physical memory devices in the computer, however, are accessed via “real” addresses that map directly into specific memory locations in the physical memory devices. Hardware and/or software in the computer are provided to perform “address translation” to map the real memory addresses of the physical memory to virtual addresses in the virtual memory space. As such, whenever a computer program on a computer attempts to access memory using a virtual address, the computer automatically translates the virtual address into a corresponding real address so that the access can be made to the appropriate location in the appropriate physical device mapped to the virtual address.
One feature of virtual addressing it that is not necessary for a computer to include storage for the entire virtual memory space in the physical memory devices in the computer's main memory. Instead, lower levels of storage, such as disk drives and other mass storage devices, may be used as supplemental storage, with memory addresses grouped into “pages” (e.g., with each page representing 4096 addresses) that are swapped between the main memory and supplemental storage as needed. Another feature of virtual addressing is that security rules may often be enforced to limit the ability for a computer program to obtain data from unauthorized memory addresses.
Further, some computers, such as the AS/400 midrange computer from International Business Machines Corporation, extend the virtual memory concept by utilizing a single-level store memory management system. Unlike other memory management systems that utilize user-accessible file management systems to directly access data stored on disk drives and other mass storage devices, a single-level store memory management system essentially incorporates all potential sources of memory storage (e.g., main storage, disk drives and other mass storage devices) into the same level of memory. An object (e.g., data, program code or both), once created in a single-level store system, is accessed using a single virtual address, regardless of where the object actually resides. Moreover, any user that requests access to the object receives the same virtual address and accesses the copy of the object. Low level memory management functions handle swapping the object into and out of main storage on an as-needed basis to ensure that the object is in main storage while it is currently in use.
Due to the frequency of access requests in a computer, address translation can have a significant impact on overall system performance. As such, it is desirable to minimize the processing overhead associated with the critical timing path within which address translation is performed.
Address translation in a virtual memory system typically incorporates accessing data structures known as address translation tables that include multiple entries that map virtual addresses to real addresses on a page-by-page basis. Often, due to the large number of memory accesses that constantly occur in a computer, the number of entries required to map all of the virtual addresses in use by a computer can be significant, and require the entries to be stored in main storage, rather than in dedicated memory. To accelerate address translation with such a scheme, a form of cache, known as a translation lookaside buffer (TLB), is typically provided in hardware to cache recently-used entries for quick access by the computer. Ensuring that entries not found in the TLB are loaded quickly into the TLB is therefore critical to the performance of a computer.
In many computers such as the AS/400 computer, loading entries from main storage into the TLB is performed by the actual hardware as part of the virtual address translation. In other computers, software may be used to handle the transfer of entries into the TLB. With a software-based translation mechanism, a short sequence of instructions is executed in a special interrupt handler to supply the missing hardware function, which is usually a simple sequence of comparisons of equality between the virtual address of interest and a limited set of table entries. If no match is found, a page fault-style exception is typically generated to indicate that the TLB cannot be immediately reloaded.
Even with a completely hardware-based translation mechanism, some software may be utilized in address translation. In an AS/400 computer, for example, the hardware-accessible address translation table does not describe the entire contents of main storage. A miss on a TLB results in a hardware-based search of the address translation table in main storage. If found, the appropriate entry is reloaded into the TLB from main storage, and instruction execution resumes without an exception. If not found, however, the hardware generates what it considers to be a “page fault.” Exception handling software is then called in response to the page fault to access additional data structures to determine if the page is actually resident in the main storage. If the page is found in main storage, the hardware-accessible address translation table is updated to swap out an existing entry with a new entry for the currently desired page, and execution continues without an actual page fault, where the page must be swapped into main storage. If the page is not in main storage, a conventional page fault is performed.
In a single-level store computer such as the AS/400 computer, address translation is performed machine-wide. As a result, any job, process, task, etc. that presents a given virtual address will access the same address translation entry, and thus have access to the actual storage mapped to that entry.
One potential security concern presented by a virtual memory system is that of malicious or buggy software simply making up an arbitrary string of binary digits, loading it into a register, and trying to use it as a virtual address. In particular, consider a completely hardware-based virtual address translation mechanism but with no specific security checks, done in hardware. In such a case, the default situation is that a virtual address is authorized if it can be loaded into a register.
To address this potential security risk, computers such as the AS/400 computer utilize a number of security mechanisms that are predominantly implemented outside of the critical path of address translation to minimize adverse performance impact. First, computer programs that execute in non-supervisory states are required to use tagged pointers having a special hardware tag bit. The state of the tag bit is kept in the storage hardware and is
International Business Machines - Corporation
Peikari B. James
Wood Herron & Evans LLP
LandOfFree
Single-level store computer incorporating process-local... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Single-level store computer incorporating process-local..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Single-level store computer incorporating process-local... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2894237