Claims
- 1. A technique for increasing performance in a read-only memory (ROM) having at least one input/output (I/O) block, wherein each memory location is addressable by a row address and a column address, said method comprising the steps of:providing a predetermined data map to be programmed into said ROM; analyzing the number of binary 0's and 1's in a select portion of said ROM under normal addressing; interchanging a portion of said row address with a portion of said column address to generate scrambled addresses; re-distributing said binary 0's and 1's of said data map using said scrambled addresses and re-analyzing the number of binary 0's and 1's under scrambled addressing; and selecting one of said normal addressing and said scrambled addressing for programming said ROM depending on which one results in a better distribution of said binary 0's and 1's.
- 2. The technique for increasing performance in a ROM having at least one input/output (I/O) block, as set forth in claim 1, further comprising the steps of:continuing to scramble said row and column addresses by interchanging different portions of said row and columns addresses; and selecting a particular addressing scheme for programming said ROM by comparing different distributions of said binary 0's and 1's.
- 3. The technique for increasing performance in a ROM having at least one input/output (I/O) block, as set forth in claim 1, wherein each of said row and column addresses comprises a plurality of bits, and further wherein said ROM comprises a compilable ROM.
- 4. A read-only memory (ROM) for storing a data map, comprising:an array of memory locations organized into at least one input/output (I/O) block having a select number of bitlines, said memory locations being addressable by a row address space and a column address space; and said memory locations having data programmed therein based on a scrambled address scheme, wherein a portion of said row address space is interchanged with a portion of said column address space.
- 5. The ROM for storing a data map as set forth in claim 4, wherein each of said portions comprises a single address bit.
- 6. The ROM for storing a data map as set forth in claim 4, wherein each of said portions comprises at least two address bits.
- 7. A computer-implemented process for optimizing performance in a read-only memory (ROM) device wherein each memory location is addressable by a row address and a column address, said ROM device operating to contain a data map, comprising the steps of:analyzing said data map's distribution of binary 0's and binary 1's in a select portion of said ROM device to determine if said distribution is imbalanced in a normal addressing scheme; and if said distribution is determined to be imbalanced, scrambling said row address and said column address for memory locations in said select portion to generate scrambled addresses, wherein when said ROM device is programmed in a software environment with said scrambled addresses, said distribution of binary 0's and binary 1's becomes more balanced.
- 8. The computer-implemented process for optimizing performance in a ROM device as set forth in claim 7, wherein said row address and said column address of said memory locations are scrambled by interchanging a portion of said row address with a portion of said column address.
- 9. The computer-implemented process for optimizing performance in a ROM device as set forth in claim 8, wherein each of said portions of said row address and said column address comprises at least a single address bit.
- 10. The computer-implemented process for optimizing performance in a ROM device as set forth in claim 7, wherein said select portion comprises an I/O block and said distribution of binary 0's and binary 1's in said I/O block is determined to be balanced when each bitline in said I/O block has a substantially equal number of binary 0's and binary 1's.
- 11. The computer-implemented process for optimizing performance in a ROM device as set forth in claim 7, wherein said step of analyzing said data map's distribution of binary 0's and binary 1's in a select portion and said step of scrambling said row and column addresses are iteratively repeated until a predetermined distribution of binary 0's and binary 1's is achieved.
- 12. A computer program product having a set of computer-executable instructions for optimizing performance in a read-only memory (ROM) device wherein each memory location is addressable by a row address and a column address, said ROM device operating to contain a data map, comprising:program code for analyzing said data map's distribution of binary 0's and binary 1's in a select portion of said ROM device to determine if said distribution is imbalanced in a normal addressing scheme; and program code for scrambling said row address and said column address for memory locations in said select portion to generate scrambled addresses if said distribution is determined to be imbalanced, wherein when said ROM device is programmed in a software environment with said scrambled addresses, said distribution of binary 0's and binary 1's becomes more balanced.
- 13. The computer program product having a set of computer-executable instructions for optimizing performance in a ROM device as set forth in claim 12, wherein said program code for scrambling is operable such that said row address and said column address of said memory locations are scrambled by interchanging a portion of said row address with a portion of said column address.
- 14. The computer program product having a set of computer-executable instructions for optimizing performance in a ROM device as set forth in claim 13, wherein each of said portions of said row address and said column address comprises at least a single address bit.
- 15. The computer program product having a set of computer-executable instructions for optimizing performance in a ROM device as set forth in claim 12, wherein said select portion comprises an I/O block and said distribution of binary 0's and binary 1's in said I/O block is determined to be balanced when each bitline in said I/O block has a substantially equal number of binary 0's and binary 1's.
- 16. The computer program product having a set of computer-executable instructions for optimizing performance in a ROM device as set forth in claim 12, further including program code for iteratively repeating said step of analyzing said data map's distribution of binary 0's and binary 1's in a select portion and said step of scrambling said row and column addresses until a predetermined distribution of binary 0's and binary 1's is achieved.
- 17. A system for optimizing performance in a read-only memory (ROM) device wherein each memory location is addressable by a row address and a column address, said ROM device operating to contain a data map, comprising:means for analyzing said data map's distribution of binary 0's and binary 1's in a select portion of said ROM device to determine if said distribution is imbalanced in a normal addressing scheme; and means for scrambling said row address and said column address for memory locations in said select portion to generate scrambled addresses if said distribution is determined to be imbalanced, wherein when said ROM device is programmed in a software environment with said scrambled addresses, said distribution of binary 0's and binary 1's becomes more balanced.
- 18. The system for optimizing performance in a ROM device as set forth in claim 17, wherein said means for scrambling is operable such that said row address and said column address of said memory locations are scrambled by interchanging a portion of said row address with a portion of said column address.
- 19. The system for optimizing performance in a ROM device as set forth in claim 18, wherein each of said portions of said row address and said column address comprises at least a single address bit.
- 20. The system for optimizing performance in a ROM device as set forth in claim 17, wherein said select portion comprises an I/O block and said distribution of binary 0's and binary 1's in said I/O block is determined to be balanced when each bitline in said I/O block has a substantially equal number of binary 0's and binary 1's.
- 21. The system for optimizing performance in a ROM device as set forth in claim 17, further including means for iteratively repeating said function of analyzing said data map's distribution of binary 0's and binary 1's in a select portion and said function of scrambling said row and column addresses until a predetermined distribution of binary 0's and binary 1's is achieved.
CROSS-REFERENCE TO RELATED APPLICATION
This application is a divisional of the following co-pending patent application: “System and Method for Increasing Performance in a Compilable Read-Only Memory (ROM),” filed Dec. 28, 2000, Ser. No. 09/750,949, now U.S. Pat. No. 6,424,556 issued on Jul. 23, 2002, in the names of Adam Aleksan Kablanian and Deepak Sabharwal, which is hereby incorporated by reference for all purposes.
US Referenced Citations (3)
Number |
Name |
Date |
Kind |
5268861 |
Hotta |
Dec 1993 |
A |
5852570 |
Hotta et al. |
Dec 1998 |
A |
5982669 |
Kalnitsky et al. |
Nov 1999 |
A |