Claims
- 1. A look-up table configured to store and output data corresponding to an input address comprising:
a plurality of entries for storing said data; and a look-up address circuit configured to receive said input address, wherein said look-up address includes:
a first index function circuit configured to convert a first input address to a primary look-up address that corresponds to said first input address, wherein a primary entry of said plurality of entries is addressed by said primary look-up address; and a second index function circuit configured to convert said first input address to a secondary look-up address that corresponds to said first input address, wherein a secondary entry of said plurality of entries is addressed by said secondary look-up address; wherein said look-up table is configured to store a first datum to said primary entry if said primary entry is available and wherein said look-up table is configured to store said first datum to said secondary entry if said primary entry is unavailable; wherein if said primary entry and said secondary entry are unavailable, said look-up table is configured to move a second datum stored in said primary entry to an alternate entry for said second datum and to store said first datum to said primary entry.
- 2. The look-up table of claim 1 wherein if a said alternate entry for said second datum is unavailable, said look-up table is configured to move a third datum stored in said alternate entry for said second datum to an alternate entry for said third datum, to move said second datum to said alternate entry for said second datum, and to store said first datum to said primary entry.
- 3. The look-up table of claim 1 wherein reading said first datum comprising accessing said primary entry and said secondary entry.
- 4. The look-up table of claim 1 wherein said primary look-up address is a subset of the bits of said first input address.
- 5. The look-up table of claim 2 wherein said secondary look-up address is a bit-wise exclusive-oring of a subset of the bits of said first input address.
- 6. The look-up table of claim 1 wherein said input addresses are global addresses and said data are translations of global addresses to local physical addresses.
- 7. The look-up table of claim 1 further comprising a realignment unit coupled to said look-up address circuit and said plurality of entries, wherein said realignment unit moves said second datum to said alternate entry by:
computing an input address corresponding to said second datum; computing an alternate look-up address of said second datum; and moving said second datum to said alternate entry addressed by said alternate look-up address.
- 8. The look-up table of claim 7 wherein said realignment unit computes said input address corresponding to said second datum by determining which index function was used to generate an original look-up address of said entry and applying an inverse of said index function to said input address corresponding to said second datum.
- 9. The look-up table of claim 8 wherein said realignment unit computes said alternate look-up address of said second datum by applying the index function that was not used to generate said original look-up address of said entry to said input address corresponding to said second datum.
- 10. The look-up table of claim 1 wherein an entry is unavailable if said entry stores a datum that corresponds to another input address.
- 11. A look-up table configured to store and output data corresponding to input addresses comprising:
a plurality of entries for storing said data; and a look-up address circuit configured to receive said input address, wherein said look-up address includes:
a first index function circuit configured to convert a first input address to a primary look-up address that corresponds to said first input address, wherein a primary entry of said plurality of entries is addressed by said primary look-up address; and a second index function circuit configured to convert said first input address to a secondary look-up address that corresponds to said first input address, wherein a secondary entry of said is addressed by said secondary look-up address; wherein said look-up table is configured to store a first datum to said primary entry if said primary entry is available and wherein said look-up table is configured to store said first datum to said secondary entry if said primary entry is unavailable; wherein if said primary entry and said secondary entry are unavailable, said look-up table is configured to move a second datum stored in said secondary entry to an alternate entry for said second datum and to store said first datum to said secondary entry.
- 12. A method of storing and retrieving data in a look-up table wherein the data corresponds to input addresses and each input address corresponds to a primary entry and a secondary entry of said look-up table comprising:
if a primary entry corresponding to a first input address is available, storing a first datum to said primary entry; if said primary entry is unavailable, storing said first datum to a secondary entry corresponding to said first input address; if said primary entry and said secondary entry are unavailable, moving a second datum stored in said primary entry to an alternate entry of said second datum and storing said first datum to said primary entry.
- 13. The method of claim 12 further comprising if said alternate entry for said datum is unavailable, moving a third datum stored in said alternate entry for said second datum to an alternate entry of said third datum, moving said second datum to said alternate entry of said second datum, and storing said first datum to said primary entry.
- 14. The method of claim 12 further comprising reading said first datum by accessing said primary entry associated with said first input address and said secondary entry associated with said first input address.
- 15. The method of claim 12 wherein a first index function generates an address for said primary entry and a second index function generates an address for said secondary entry.
- 16. The method of claim 15 wherein said first index function generates a first look-up address which is a subset of the bits of said first input address and said second index function generates a second look-up address which is a bit-wise exclusive-oring of a subset of the bits of said first input address.
- 17. The method of claim 12 wherein said moving said second datum stored in said primary entry to said alternate entry comprises:
computing an input address corresponding to said second datum; computing an alternate look-up address for said second datum; and moving said second datum to said alternative entry address by said alternate look-up address.
- 18. The method of claim 17 wherein said computing of said input address corresponding to said second datum comprises determining which index function was used to generate an original look-up address of said entry and applying an inverse of said index function to said input address corresponding to said second datum.
- 19. The method of claim 18 wherein computing said alternate look-up address for said second datum comprises using the index function that was not used to generate said original look-up address of said entry to input address corresponding to said second datum.
- 20. The method of claim 12 wherein an entry is unavailable if said entry stores a datum that corresponds to another input address.
- 21. A method of storing and retrieving data in a look-up table wherein the data corresponds to input addresses and each input address corresponds to a primary entry and a secondary entry of said look-up table comprising:
if a primary entry corresponding to a first input address is available, storing a first datum to said primary entry; if said primary entry is unavailable, storing said first datum to a secondary entry corresponding to said first input address; if said primary entry and said secondary entry are unavailable, moving a second datum stored in said secondary entry to an alternate entry of said second datum and storing said first datum to said secondary entry.
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
[0001] This patent application is a continuation-in-part of copending, commonly assigned patent application Ser. No. 08/924,385, “Hierarchical Computer System” by Erik E. Hagersten, filed Sep. 5, 1997, the disclosure of which is incorporated herein by reference in its entirety.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08924385 |
Sep 1997 |
US |
Child |
09148820 |
Sep 1998 |
US |