US5974520A - Computer address translation system and method for converting effective or logical address to physical address - Google Patents

Computer address translation system and method for converting effective or logical address to physical address Download PDF

Info

Publication number
US5974520A
US5974520A US08/941,088 US94108897A US5974520A US 5974520 A US5974520 A US 5974520A US 94108897 A US94108897 A US 94108897A US 5974520 A US5974520 A US 5974520A
Authority
US
United States
Prior art keywords
address
bits
effective
selector
physical
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 - Lifetime
Application number
US08/941,088
Inventor
Cheng-Yen Huang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
United Microelectronics Corp
Original Assignee
United Microelectronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by United Microelectronics Corp filed Critical United Microelectronics Corp
Assigned to UNITED MICROELECTRONICS CORP. reassignment UNITED MICROELECTRONICS CORP. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HUANG, CHENG-YEN
Application granted granted Critical
Publication of US5974520A publication Critical patent/US5974520A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Definitions

  • the present invention relates to computer architecture in an X-86 system such as a central processing unit (CPU) that can convert an effective address (EA) or logical address into a physical address (PA), and more particularly to a computer address translation system and the translating method.
  • CPU central processing unit
  • PA physical address
  • the X-86 type of computer architecture is now capable of achieving exceptionally high reading and writing speed. Therefore, virtual memory has become an indispensable part of the computer system.
  • the address in a virtual memory is implicitly or explicitly programmed by the user into a word referred to as the effective address, hence the effective address must be translated and mapped into a physical address in an actual memory unit to make the virtual memory system compatible.
  • the amount of mappings in translating from effective address to physical address can be very large.
  • address translation is executed using a high-speed memory unit within the CPU.
  • the high-speed memory unit is known as a translation lookaside buffer (TLB).
  • TLB is a special cache memory for address translation whose input is the effective address and the output is the physical address. Generation of the physical address is largely determined by the result of comparing the linear address (LA) to a tag memory residing within the TLB.
  • the tag memory is a content addressable memory (CAM).
  • FIG. 1 is a block diagram of a conventional computer address translation system.
  • a 32-bit effect address EA is computed by passing through an effective address computational device 10. For example, the base address, offset address and the index address are summed together to obtain an effective address EA within the effective address computational device 10.
  • a selector address SA is input to a segment descriptor cache memory 11, and a 32-bit segment base address Base is output from it.
  • the 32-bit segment base address and the effective address EA are added together to obtain a 32-bit linear address LA.
  • the physical address PA can be determined only after the linear address LA has gone through the inquiries inside a translation lookaside buffer (TLB) 12.
  • TLB translation lookaside buffer
  • the 0-11 bits of the linear address is a segment address
  • the 12-bits of the linear address is page address.
  • the page address is input to a tag memory 13 within the translation lookaside buffer (TLB) 12, and then compared with the linear address LA' there. If there is a hit that corresponds to the page base (PB) of the physical address stored in a data memory 14, the 20-bit physical page address is output and then combined with the original 12-bit segment address to form a physical address PA.
  • the data memory 14 also resides within the translation lookaside buffer (TLB) 12 and can be a random access memory (RAM), for example.
  • a linear address can be obtained only after an effective address is produced, and a physical address can be obtained only after the linear address is released, and hence much processing time is wasted. Because the address stored inside the linear address LA' of the tag memory 13 within the translation lookaside buffer (TLB) 12 is access serially, such processing will generate a critical path, and create a bottleneck in high speed electronic circuit designs.
  • TLB translation lookaside buffer
  • the present invention is directed to provide a parallel processing address translation system and method that can avoid the creation of a bottleneck in the conventional high speed design because the physical address must be generated serially by putting the linear address into a translation lookaside buffer.
  • the invention provides a computer address translation method applicable in CPUs for translating an effective address into a physical address using a translation lookaside buffer that includes a stored first address and a second address.
  • the method comprises the steps of generating a 32-bit effective address and a 4-bit selector address; then, outputting the selector address to a segment descriptor cache memory to generate a 32-bit base address; next, adding the effective address and the base address through an adder to generate a 32-bit linear address and a carry signal; thereafter, combining the 20 high-bits of the effective address with the carry signal to obtain a 20-bit compared effective address; subsequently, translating the selector address, a segment descriptor cache memory modified signal and an invalidity request signal into an invalidity signal; under the control of the invalidity signal, comparing the compared effective address, the selector address with the first and the second addresses to determine whether a 20 high-bits physical address can be output; then, extracting the 12 low-bits of the linear address to obtain a low-bits physical address; finally, combining the high-bits physical address with the low-bits physical address to form the full physical address.
  • the invention provides a computer address translation system applicable in CPUs for translating an effective address into a physical address using a translation lookaside buffer that includes a stored first address and a second address.
  • the system comprises a segment descriptor cache memory, an adder, an incrementor, a translation lookup invalidity controller, a translation lookaside buffer and a wire connector.
  • the segment descriptor cache memory is used for receiving a selector address and generating a base address.
  • the adder is used for receiving the base address and the effective address and outputting a linear address and a carry signal.
  • the incrementor is used for receiving the carry signal and the 20 high-bits of the effective address and outputting a compared effective address.
  • the translation lookup invalidity controller is used for receiving a segment descriptor cache memory modified signal, an invalidity request signal and the selector address, and then sending out an invalidity signal.
  • the translation lookaside buffer is used for receiving compared effective address, the selector address, the invalidity signal and compared with the first and the second addresses to determine whether a match is found, and then outputting the 20 high-bits physical address accordingly.
  • the wire connector is for receiving the 12 low-bits of the linear address and the 20 high-bits of the physical address to form the physical address.
  • FIG. 1 is a block diagram of a conventional computer address translation system
  • FIG. 2 is a block diagram of a computer address translation system according to one preferred embodiment of this invention.
  • FIG. 3 is a block diagram showing the memory transfer of a translation lookaside buffer as shown in FIG. 2.
  • FIG. 2 is a block diagram of a computer address translation system according to one preferred embodiment of this invention.
  • an effective address computational device 20 through the computation performed by an effective address computational device 20, a 32-bit effective address is obtained.
  • the effective address can be generated, for example, by adding together the base address, the offset address or the index address inside the effective address computational device 20.
  • a 4-bit selector address SA coming from a micro-code is input to a segment descriptor cache memory 21, a translation lookaside buffer 22 and an translation lookup invalidity controller (hereinafter "invalidity controller") 23.
  • invalidity controller translation lookup invalidity controller
  • a 32-bit segment base address Base is output from the segment descriptor cache memory 21.
  • the segment base address Base can be, for example, a multiplexer having 16 registers that can each hold a 32-bit segment base address Base. Subsequently, the effective address EA and the base address Base are added together by an adder 24 to obtain a 32-bit linear address LA. The first 12 bits (bits 0-11) are the low-bits of the physical address PAL.
  • the high-bits (12-31) effective address EAH which is also the page address contained in the effective address EA, is input to an incrementor 25.
  • the incrementor includes a multiplexer 251 and some circuit structures.
  • the low-bits (0-11) of the effective address EA and the low-bits (0-11) of the base address Base are added together with the adder 24, and then send out a carry signal to the multiplexer 251 of the incrementor 25 for computing a compared effective address CE.
  • the selector address SA, a segment descriptor cache memory modified signal SM and an invalidity address signal IVQ are input to a translation lookup invalidity controller 23, and then an invalid signal IV is sent to the translation lookaside buffer 22.
  • the translation lookaside buffer 22 receives the selector address SA, the compared effective address CE and the invalidity signal IV, for subsequent comparison.
  • the translation lookaside buffer 22 includes a tag memory 221 and a data memory 222 whose functions are as follows:
  • the tag memory 221 is a type of content addressable memory for storing a pre-assigned address including a selector address SA', an effective address EA' and a valid bit VB, for example, generated by the execution of a previous calculation.
  • the tag memory 221 receives a selector address SA and a compared effective address CE, and then compares these address with the corresponding stored addresses internally to determine if there is a match.
  • the data memory 222 is a random access memory (RAM) for storing a 20-bit page base address PB.
  • the page base address PB is sent out as a high-bit (12-31) physical address PAH.
  • no hit signal will be sent to the data memory 222. Instead, an error signal will be sent to the CPU to refresh the tag memory 221 and the data memory 222 and obtain a correct address.
  • the low-bits of the physical address PAL are combined with the high-bits of the physical address, PAH to form the full physical address through a wire connector 26.
  • a segment descriptor cache memory modified signal SM and an invalidity request signal IVQ will be generated simultaneously and sent to the translation lookup invalid controller 23. Then, the translation lookup invalidity controller 23 will enable the invalidity signal IV so that the common parts between the selector address SA' residing in the tag memory 221 and the selector address SA coming from micro-code are disabled.
  • the above method uses a comparator for comparing the two selector addresses SA and SA'.
  • an invalidity signal IV must be generated by the translation lookup invalidity controller 23 and sent to the translation lookaside buffer 22 to disable the comparison, thus avoiding the transfer of an incorrect address from the translation lookaside buffer 22.
  • FIG. 3 is a block diagram showing the memory transfer of a translation lookaside buffer as shown in FIG. 2.
  • the left block which is enclosed by dash lines designates the tag memory 221
  • the right block which is also enclosed by dashed lines is the data memory 222.
  • the translation lookaside buffer 22 receives a compared effective address CE, a selector address SA and an invalid signal IV.
  • the tag memory 221 and the data memory 222 can have, for example, eight memory segments Set 1 to Set 8, and each memory segment can have, for example, four memory sub-segments Set 1-1 to Set 1-4.
  • the address storage space in a tag memory 221 preferably includes a selector address SA', an effective address EA and a valid bit VB.
  • one of the address storage spaces is shown as a memory sub-segment 30 in the tag memory 221 and a memory sub-segment 34 in data memory 222.
  • it further includes eight detectors 32 for detecting any abnormal circumstances in the memory sub-segments Set 1-1 to Set 8-4.
  • Three bits of the compared effective address input (bits 12-14) are used to pick up one of the eight memory segments Set 1 to Set 8. For example, when all three bits are 0, memory segment Set 1 of the tag memory 221 will be selected for transferring data to the detector 32.
  • any abnormality in the memory sub-segments has to be checked by the detector 32, for example, only one of the four memory sub-segments Set 1-1 to Set 1-4 can generate a hit signal.
  • these three bits will be sent to the data memory 222 corresponding to one of the memory sub-segments Set 1-1 to Set 1-4 where a page address PB is stored.
  • a 4-to-1 multiplexer 36 in the data memory 222 is used to receive the hit signal generated by the aforementioned detector 32 and output the correct address.
  • the address translation function is served.
  • the main characteristic of this invention is the simultaneous input of an effective address and a selector address to the translation lookaside buffer such that address translation and linear address production are parallel processed, thereby effectively speeding up the address translation process.

Abstract

A computer address translation method and system applicable in CPUs for translating an effective address and a selector address into a physical address under the control of an invalidity signal through a translation lookaside buffer having a stored first address and a stored second address. An effective address and a selector address are simultaneously input to the translation lookaside buffer such that address translation and linear address production are parallel processed, thereby effectively speeding up the address translation process.

Description

BACKGROUND OF THE INVENTION
1. Field of Invention
The present invention relates to computer architecture in an X-86 system such as a central processing unit (CPU) that can convert an effective address (EA) or logical address into a physical address (PA), and more particularly to a computer address translation system and the translating method.
2. Description of Related Art
Through the use of virtual memory, the X-86 type of computer architecture is now capable of achieving exceptionally high reading and writing speed. Therefore, virtual memory has become an indispensable part of the computer system. However, the address in a virtual memory is implicitly or explicitly programmed by the user into a word referred to as the effective address, hence the effective address must be translated and mapped into a physical address in an actual memory unit to make the virtual memory system compatible. In general, the amount of mappings in translating from effective address to physical address can be very large. To speed up the translating process, address translation is executed using a high-speed memory unit within the CPU. The high-speed memory unit is known as a translation lookaside buffer (TLB). TLB is a special cache memory for address translation whose input is the effective address and the output is the physical address. Generation of the physical address is largely determined by the result of comparing the linear address (LA) to a tag memory residing within the TLB. The tag memory is a content addressable memory (CAM).
FIG. 1 is a block diagram of a conventional computer address translation system. As shown in FIG. 1, first a 32-bit effect address EA is computed by passing through an effective address computational device 10. For example, the base address, offset address and the index address are summed together to obtain an effective address EA within the effective address computational device 10. Next, a selector address SA is input to a segment descriptor cache memory 11, and a 32-bit segment base address Base is output from it. Subsequently, the 32-bit segment base address and the effective address EA are added together to obtain a 32-bit linear address LA. The physical address PA can be determined only after the linear address LA has gone through the inquiries inside a translation lookaside buffer (TLB) 12. For example, the 0-11 bits of the linear address is a segment address, and the 12-bits of the linear address is page address. The page address is input to a tag memory 13 within the translation lookaside buffer (TLB) 12, and then compared with the linear address LA' there. If there is a hit that corresponds to the page base (PB) of the physical address stored in a data memory 14, the 20-bit physical page address is output and then combined with the original 12-bit segment address to form a physical address PA. The data memory 14 also resides within the translation lookaside buffer (TLB) 12 and can be a random access memory (RAM), for example. In other words, a linear address can be obtained only after an effective address is produced, and a physical address can be obtained only after the linear address is released, and hence much processing time is wasted. Because the address stored inside the linear address LA' of the tag memory 13 within the translation lookaside buffer (TLB) 12 is access serially, such processing will generate a critical path, and create a bottleneck in high speed electronic circuit designs.
In light of the foregoing, there is a need in the art for reducing the bottleneck in a conventional computer address translation system.
SUMMARY OF THE INVENTION
Accordingly, the present invention is directed to provide a parallel processing address translation system and method that can avoid the creation of a bottleneck in the conventional high speed design because the physical address must be generated serially by putting the linear address into a translation lookaside buffer.
To achieve these and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, the invention provides a computer address translation method applicable in CPUs for translating an effective address into a physical address using a translation lookaside buffer that includes a stored first address and a second address. The method comprises the steps of generating a 32-bit effective address and a 4-bit selector address; then, outputting the selector address to a segment descriptor cache memory to generate a 32-bit base address; next, adding the effective address and the base address through an adder to generate a 32-bit linear address and a carry signal; thereafter, combining the 20 high-bits of the effective address with the carry signal to obtain a 20-bit compared effective address; subsequently, translating the selector address, a segment descriptor cache memory modified signal and an invalidity request signal into an invalidity signal; under the control of the invalidity signal, comparing the compared effective address, the selector address with the first and the second addresses to determine whether a 20 high-bits physical address can be output; then, extracting the 12 low-bits of the linear address to obtain a low-bits physical address; finally, combining the high-bits physical address with the low-bits physical address to form the full physical address.
In another aspect, the invention provides a computer address translation system applicable in CPUs for translating an effective address into a physical address using a translation lookaside buffer that includes a stored first address and a second address. The system comprises a segment descriptor cache memory, an adder, an incrementor, a translation lookup invalidity controller, a translation lookaside buffer and a wire connector. The segment descriptor cache memory is used for receiving a selector address and generating a base address. The adder is used for receiving the base address and the effective address and outputting a linear address and a carry signal. The incrementor is used for receiving the carry signal and the 20 high-bits of the effective address and outputting a compared effective address. The translation lookup invalidity controller is used for receiving a segment descriptor cache memory modified signal, an invalidity request signal and the selector address, and then sending out an invalidity signal. The translation lookaside buffer is used for receiving compared effective address, the selector address, the invalidity signal and compared with the first and the second addresses to determine whether a match is found, and then outputting the 20 high-bits physical address accordingly. The wire connector is for receiving the 12 low-bits of the linear address and the 20 high-bits of the physical address to form the physical address.
It is to be understood that both the foregoing general description and the following detailed description are exemplary, and are intended to provide further explanation of the invention as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. In the drawings,
FIG. 1 is a block diagram of a conventional computer address translation system;
FIG. 2 is a block diagram of a computer address translation system according to one preferred embodiment of this invention; and
FIG. 3 is a block diagram showing the memory transfer of a translation lookaside buffer as shown in FIG. 2.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.
FIG. 2 is a block diagram of a computer address translation system according to one preferred embodiment of this invention. As shown in FIG. 2, through the computation performed by an effective address computational device 20, a 32-bit effective address is obtained. The effective address can be generated, for example, by adding together the base address, the offset address or the index address inside the effective address computational device 20. Then, a 4-bit selector address SA coming from a micro-code is input to a segment descriptor cache memory 21, a translation lookaside buffer 22 and an translation lookup invalidity controller (hereinafter "invalidity controller") 23. Thereafter, a 32-bit segment base address Base is output from the segment descriptor cache memory 21. The segment base address Base can be, for example, a multiplexer having 16 registers that can each hold a 32-bit segment base address Base. Subsequently, the effective address EA and the base address Base are added together by an adder 24 to obtain a 32-bit linear address LA. The first 12 bits (bits 0-11) are the low-bits of the physical address PAL.
Simultaneously, the high-bits (12-31) effective address EAH, which is also the page address contained in the effective address EA, is input to an incrementor 25. The incrementor includes a multiplexer 251 and some circuit structures. The low-bits (0-11) of the effective address EA and the low-bits (0-11) of the base address Base are added together with the adder 24, and then send out a carry signal to the multiplexer 251 of the incrementor 25 for computing a compared effective address CE.
The selector address SA, a segment descriptor cache memory modified signal SM and an invalidity address signal IVQ are input to a translation lookup invalidity controller 23, and then an invalid signal IV is sent to the translation lookaside buffer 22.
The translation lookaside buffer 22 receives the selector address SA, the compared effective address CE and the invalidity signal IV, for subsequent comparison. The translation lookaside buffer 22 includes a tag memory 221 and a data memory 222 whose functions are as follows: The tag memory 221 is a type of content addressable memory for storing a pre-assigned address including a selector address SA', an effective address EA' and a valid bit VB, for example, generated by the execution of a previous calculation. The tag memory 221 receives a selector address SA and a compared effective address CE, and then compares these address with the corresponding stored addresses internally to determine if there is a match. When there is a match and the valid bit VB is valid (VB=1), a hit signal is sent out to the data memory 222. The data memory 222 is a random access memory (RAM) for storing a 20-bit page base address PB. When a hit signal is received from the tag memory 221, the page base address PB is sent out as a high-bit (12-31) physical address PAH. When the input compared effective address CE is different from the effective address EA' stored in the tag memory 221, or when the input selector address SA is different from the stored selector address SA' in the tag memory 221, or when the valid bit VB residing in the tag memory 221 is invalid (VB=0), no hit signal will be sent to the data memory 222. Instead, an error signal will be sent to the CPU to refresh the tag memory 221 and the data memory 222 and obtain a correct address.
Finally, the low-bits of the physical address PAL are combined with the high-bits of the physical address, PAH to form the full physical address through a wire connector 26.
In this system, if the data in the segment descriptor cache memory 21 is modified, a segment descriptor cache memory modified signal SM and an invalidity request signal IVQ will be generated simultaneously and sent to the translation lookup invalid controller 23. Then, the translation lookup invalidity controller 23 will enable the invalidity signal IV so that the common parts between the selector address SA' residing in the tag memory 221 and the selector address SA coming from micro-code are disabled. The above method uses a comparator for comparing the two selector addresses SA and SA'. Therefore, when the two selector addresses SA and SA' are the same, an invalidity signal IV must be generated by the translation lookup invalidity controller 23 and sent to the translation lookaside buffer 22 to disable the comparison, thus avoiding the transfer of an incorrect address from the translation lookaside buffer 22.
FIG. 3 is a block diagram showing the memory transfer of a translation lookaside buffer as shown in FIG. 2. As shown in FIG. 3, the left block which is enclosed by dash lines designates the tag memory 221, and the right block which is also enclosed by dashed lines is the data memory 222. As mentioned before, the translation lookaside buffer 22 receives a compared effective address CE, a selector address SA and an invalid signal IV. For 32-bit memory, the tag memory 221 and the data memory 222 can have, for example, eight memory segments Set 1 to Set 8, and each memory segment can have, for example, four memory sub-segments Set 1-1 to Set 1-4. The address storage space in a tag memory 221 preferably includes a selector address SA', an effective address EA and a valid bit VB. For example, one of the address storage spaces is shown as a memory sub-segment 30 in the tag memory 221 and a memory sub-segment 34 in data memory 222. For a tag memory 221 having eight memory segments Set 1 to Set 8, it further includes eight detectors 32 for detecting any abnormal circumstances in the memory sub-segments Set 1-1 to Set 8-4. Three bits of the compared effective address input (bits 12-14) are used to pick up one of the eight memory segments Set 1 to Set 8. For example, when all three bits are 0, memory segment Set 1 of the tag memory 221 will be selected for transferring data to the detector 32. Subsequently, any abnormality in the memory sub-segments has to be checked by the detector 32, for example, only one of the four memory sub-segments Set 1-1 to Set 1-4 can generate a hit signal. Also, when the three bits (12-14) of the compared effective address CE are all 0, these three bits will be sent to the data memory 222 corresponding to one of the memory sub-segments Set 1-1 to Set 1-4 where a page address PB is stored. Finally, a 4-to-1 multiplexer 36 in the data memory 222 is used to receive the hit signal generated by the aforementioned detector 32 and output the correct address. Thus, the address translation function is served.
Therefore, the main characteristic of this invention is the simultaneous input of an effective address and a selector address to the translation lookaside buffer such that address translation and linear address production are parallel processed, thereby effectively speeding up the address translation process.
It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the present invention cover modifications and variations of this invention provided they fall within the scope of the following claims and their equivalents.

Claims (14)

What is claimed is:
1. A computer address translation method applicable in CPUs for translating an effective address into physical address using a translation lookaside buffer having a stored first address and a stored second address, comprising the steps of:
(a) generating the effective address and a selector address;
(b) inputting the selector address into a segment descriptor cache memory for generating a base address;
(c) adding the effective address and the base address to obtain a linear address and a carry signal;
(d) computing a compared effective address using high-bit portions of the effective address and the carry signal;
(e) translating the selector address, a segment descriptor cache memory modified signal and an invalidity request signal into an invalidity signal;
(f) comparing the compared effective address and the selector address with the first address and the second address under the control of the invalidity signal;
(g) outputting a high-bits physical address from the translation lookaside buffer, if said step (f) results in a notch;
(h) extracting the low-bits portions of the linear address to obtain low-bits physical address; and
(i) combining the high-bits physical address and the low-bits physical address to obtain the physical address.
2. The method of claim 1, wherein the first address includes space for holding a pre-assigned effective address, a pre-assigned selector address and a valid bit.
3. The method of claim 1, wherein the selector address is a 4-bit address and the effective address, the base address, the linear address are 32-bit addresses.
4. The method of claim 3, wherein the high-bits of the effective address are the 20 high-bits of the effective address.
5. The method of claim 3, wherein the high-bits of the physical address are the 20 highest bits of the physical address, and the low-bits of the physical address are the 12 lowest bits of the physical address.
6. The method of claim 1, further comprising after step (f) and before step (g), a step (f1) when the result of the comparison is a match, as follows:
(f1) outputting the second address.
7. The method of claim 1, further comprising after step (f) and before step (g), steps (f2) and (f3) when the result of the comparison is a mismatch, as follows:
(f2) renewing the first address and the second address; and
(f3) repeating step (f) again.
8. The method of claim 1, further comprising after step (f) and before step (g), steps (f4) through (f6) when the selector address is renewed, as follows:
(f4) enabling the invalidity signal to invalidate the selector address;
(f5) renewing the first address and the second address; and
(f6) repeating step (f) again.
9. A computer address translation system applicable in CPUs for translating an effective address into a physical address using a translation lookaside buffer having a stored first address and a stored second address, comprising:
a segment descriptor cache memory for receiving a selector address and generating a base address;
an adder for receiving the base address and the effective address and outputting a linear address and a carry signal;
an incrementer for receiving the carry signal and high bits of the effective address and outputting a compared effective address;
a translation invalidity controller for receiving a segment descriptor cache memory modified signal, an invalidity request signal and the selector address and outputting an invalidity signal;
a translation lookaside buffer for receiving the compared effective address, the selector address and the invalidity signal, to determine after a comparison whether there is a match with the first and the second address, and then outputting a high-bits physical address; and
a wire connector for receiving the low bits of the linear address and the high bits of the physical address and outputting the physical address.
10. The system of claim 9, wherein the translation lookaside buffer further includes:
a tag memory for storing the first address and later for comparing the first address with the compared effective address and the selector address to determine if a hit signal should be output; and
a data memory for storing the second address and outputting the high-bits physical address after receiving the hit signal.
11. The system of claim 9, wherein the first address includes a pre-assigned effective address, a pre-assigned selector address and a valid bit.
12. The system of claim 9, wherein the selector address is a 4-bit address, and the effective address, the base address, the linear address are 32-bit addresses.
13. The system of claim 12, wherein the high-bits of the effective address are the 20 highest bits of the effective address.
14. The system of claim 12, wherein the high-bits of the physical address are the 20 highest bits of the physical address, and the low-bits of the physical address are the 12 lowest bits of the physical address.
US08/941,088 1997-08-13 1997-09-30 Computer address translation system and method for converting effective or logical address to physical address Expired - Lifetime US5974520A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW086111595A TW382090B (en) 1997-08-13 1997-08-13 System and method for converting computer addresses
TW86111595 1997-08-13

Publications (1)

Publication Number Publication Date
US5974520A true US5974520A (en) 1999-10-26

Family

ID=21626895

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/941,088 Expired - Lifetime US5974520A (en) 1997-08-13 1997-09-30 Computer address translation system and method for converting effective or logical address to physical address

Country Status (2)

Country Link
US (1) US5974520A (en)
TW (1) TW382090B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349380B1 (en) * 1999-03-12 2002-02-19 Intel Corporation Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
US6374342B1 (en) * 2000-01-31 2002-04-16 Kabushiki Kaisha Toshiba Translation lookaside buffer match detection using carry of lower side bit string of address addition
US20040148491A1 (en) * 2003-01-28 2004-07-29 Sun Microsystems, Inc. Sideband scout thread processor
US20040148489A1 (en) * 2003-01-28 2004-07-29 Sun Microsystems, Inc. Sideband VLIW processor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934588B (en) * 2023-03-10 2023-08-04 长鑫存储技术有限公司 Failure address processing method and device and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233553A (en) * 1991-03-06 1993-08-03 Chips And Technologies, Inc. Apparatus for performing modulo arithmetic with three-port adder
US5255377A (en) * 1989-11-13 1993-10-19 Intel Corporation Interface for arbitrating access to the paging unit of a computer processor
US5517657A (en) * 1994-03-30 1996-05-14 Intel Corporation Segment register file read and write pipeline
US5652872A (en) * 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
US5664159A (en) * 1994-03-08 1997-09-02 Exponential Technology, Inc. Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register
US5701448A (en) * 1995-12-15 1997-12-23 Cyrix Corporation Detecting segment limit violations for branch target when the branch unit does not supply the linear address
US5860154A (en) * 1994-08-02 1999-01-12 Intel Corporation Method and apparatus for calculating effective memory addresses

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255377A (en) * 1989-11-13 1993-10-19 Intel Corporation Interface for arbitrating access to the paging unit of a computer processor
US5233553A (en) * 1991-03-06 1993-08-03 Chips And Technologies, Inc. Apparatus for performing modulo arithmetic with three-port adder
US5652872A (en) * 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
US5664159A (en) * 1994-03-08 1997-09-02 Exponential Technology, Inc. Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register
US5517657A (en) * 1994-03-30 1996-05-14 Intel Corporation Segment register file read and write pipeline
US5860154A (en) * 1994-08-02 1999-01-12 Intel Corporation Method and apparatus for calculating effective memory addresses
US5701448A (en) * 1995-12-15 1997-12-23 Cyrix Corporation Detecting segment limit violations for branch target when the branch unit does not supply the linear address

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349380B1 (en) * 1999-03-12 2002-02-19 Intel Corporation Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
US6374342B1 (en) * 2000-01-31 2002-04-16 Kabushiki Kaisha Toshiba Translation lookaside buffer match detection using carry of lower side bit string of address addition
US20040148491A1 (en) * 2003-01-28 2004-07-29 Sun Microsystems, Inc. Sideband scout thread processor
US20040148489A1 (en) * 2003-01-28 2004-07-29 Sun Microsystems, Inc. Sideband VLIW processor
US7502910B2 (en) 2003-01-28 2009-03-10 Sun Microsystems, Inc. Sideband scout thread processor for reducing latency associated with a main processor

Also Published As

Publication number Publication date
TW382090B (en) 2000-02-11

Similar Documents

Publication Publication Date Title
KR920005280B1 (en) High speed cache system
KR100190351B1 (en) Apparatus and method for reducing interference in two-level cache memory
US5257361A (en) Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation
US5319763A (en) Data processor with concurrent static and dynamic masking of operand information and method therefor
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US4602368A (en) Dual validity bit arrays
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US4972338A (en) Memory management for microprocessor system
US5371870A (en) Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US5479627A (en) Virtual address to physical address translation cache that supports multiple page sizes
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5018061A (en) Microprocessor with on-chip cache memory with lower power consumption
US6877067B2 (en) Shared cache memory replacement control method and apparatus
US5247645A (en) Dynamic memory mapper which supports interleaving across 2N +1, 2.sup.NN -1 number of banks for reducing contention during nonunit stride accesses
US4241401A (en) Virtual address translator utilizing interrupt level code
CA2057494A1 (en) Translation lookaside buffer
US5305444A (en) Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register
EP0745940B1 (en) An apparatus and method for providing a cache indexing scheme less susceptible to cache collisions
US5974520A (en) Computer address translation system and method for converting effective or logical address to physical address
EP3876103B1 (en) Data processing sytem having a shared cache
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
JP3935871B2 (en) MEMORY SYSTEM FOR COMPUTER CIRCUIT HAVING PIPELINE AND METHOD FOR PROVIDING DATA TO PIPELINE FUNCTIONAL UNIT
US6865590B2 (en) Three input variable subfield comparation for fast matching
US6226707B1 (en) System and method for arranging, accessing and distributing data to achieve zero cycle penalty for access crossing a cache line

Legal Events

Date Code Title Description
AS Assignment

Owner name: UNITED MICROELECTRONICS CORP., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HUANG, CHENG-YEN;REEL/FRAME:008836/0258

Effective date: 19970831

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12