| US 7,610,433 B2 | ||
| Memory controller interface | ||
| Jerrold R. Randell, Waterloo (Canada); Richard C. Madter, Puslinch (Canada); and Karin Alicia Werder, Kitchener (Canada) | ||
| Assigned to Research In Motion Limited, Waterloo (Canada) | ||
| Filed on Feb. 04, 2005, as Appl. No. 11/51,491. | ||
| Claims priority of provisional application 60/542207, filed on Feb. 05, 2004. | ||
| Prior Publication US 2005/0185472 A1, Aug. 25, 2005 | ||
| Int. Cl. G06F 13/14 (2006.01) | ||
| U.S. Cl. 711—101 [711/103; 711/104; 711/106; 711/125; 711/154; 710/22; 713/1; 714/719] | 18 Claims |

| 1. A memory controller interface for enabling a processor designed to support NOR flash and static random access memory (SRAM)
components to use NAND flash and synchronous dynamic random access memory (SDRAM), the memory controller interface comprising:
a cache controller module for managing the flow of data between the NAND flash and sectors of SDRAM comprising a cache for
storing data read from sectors of the NAND flash;
a read-write buffer in communication with the cache controller module and with interface controllers for the NAND flash and
SDRAM, respectively, for buffering data read or written between the cache and the NAND flash memory;
a cache tag memory for storing at least one tag entry for correlating a sector of cache with a sector of NAND flash, such
that when a processor requests data from the NAND flash, the memory controller interface is capable of accessing the appropriate
data sector from the NAND flash, reading the requested data, and writing the data using the read-write buffer to a sector
of the cache for future processor requests for said data sector;
a register accessible to the processor for storing fetched instructions; and
a register for storing predefined memory boundaries allocated to code execution by the processor,
wherein the memory controller interface is configured, upon detecting a request by the processor for access to a memory address
beyond the predefined memory boundaries, to latch the memory address requested by the processor and to write a non-executable
instruction to the register for storing fetched instructions, such that a software interrupt or undefined instruction trap
is triggered when the processor reads the non-executable instruction.
|