The present invention relates to digital computers, memory interfaces, methods of executing a program, methods of programming a digital computer, and methods of operating a memory interface.
Digital computers are utilized in an ever-increasing number of applications and devices. The advantages obtainable with the use of digital computers are well known. Improvements in hardware and software continue to enhance the performance of digital computers. The desire to provide faster computers at lower costs has often presented numerous design challenges. In numerous applications, available hardware is limited and further design obstacles are presented. In other configurations, minimizing power consumption is of great importance due to limited available power resources.
Typical computer systems include memory operable to store program code tailored for the specific application of the digital computer. Additionally, a processor configured to execute the stored code is also provided. The memory can be configured to store a predetermined number of bits within individual address locations (e.g., memory having a width of eight bits is operable to store eight bits in one address location). The number of bits stored in individual address locations can be less than the number of bits of an individual instruction (e.g., thirty-two bits). Some applications dictate the use of memory having address locations which are smaller than a single executable instruction. Accordingly, plural read operations are required of the memory to provide a single, complete instruction which may be executed by the processor.
Processors of conventional digital computers typically operate at rates which are faster than the associated memory. Therefore, wait states are often inserted during the read operations as the processor waits to receive the requested instructions. Insertion of wait states has the drawbacks of decreasing performance of the digital computer and increasing power consumption.
Therefore, there exists a need to improve execution of software in digital computers to improve performance and reduce power consumption.