Low-latency interrupt handling during memory access delay...

Electrical computers and digital processing systems: processing – Processing control – Branching

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S260000

Reexamination Certificate

active

06721878

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This disclosure relates to computer processor operation, and more particularly to handling of exceptions such as an interrupt request during a period in which the processor is waiting for completion of a memory access.
2. Description of the Related Art
Microprocessors determine the speed and power of personal computers, and a growing number of other computational devices (such as appliances, telephones or personal digital assistants) by handling most of the data processing in the device. Microprocessors typically include at least three functional groups: the external interface unit, the control unit, and the arithmetic logic unit (ALU). The control and the ALU units combine to form the central processing unit (CPU). The microprocessor also includes memory to store program instructions to be executed. The CPU fetches instructions from the memory and proceeds to decode and execute them. Within the CPU, the ALU handles the mathematical computations and logical operations that are performed by the microprocessor, and the control unit controls the operation of the microprocessor by fetching instructions from the external interface unit and translating the instructions into a form that can be understood by the ALU. In addition, the control unit keeps track of which step within the instruction is being executed.
Most modern microprocessors employ various design methods to improve the processing speed for executing a set of instructions. These include pipelining, speculative and out-of-order execution, and multiple instruction fetch. Pipelining is a key design technique employed to improve processing speed and employs multiple instructions overlapped in execution. Thus, pipelining increases the CPU instruction throughput but it does not reduce the execution time of an individual instruction. Practically all microprocessors today employ some level of pipelining to improve processing speed. A pipeline consists of sequential stages, wherein each stage completes a part of an execution of an instruction passing through the pipeline. Thus, different stages in the pipeline are completing parts of different instructions in parallel. Each of these stages is commonly referred to as a pipe stage. These pipe stages are connected sequentially to form a pipe, where instructions enter at one end., proceed through the pipe stages, and exit at the other end.
There are many factors influencing a microprocessor system's operational speed. One of these factors is exception handling. Exceptions arise in a microprocessor system whenever there is a need for the normal flow of program execution to be broken. For example, this flow may be broken so that the microprocessor can be diverted to handle an interrupt from an external I/O device. An interrupt causes a microprocessor to suspend execution of the current task being performed by the CPU in order to execute a specific software routine, known as an interrupt service routine (ISR). This routine comprises a set of software instructions typically unrelated to the instructions being executed by the microprocessor at the time the interrupt is signaled. An interrupt request is often initiated, for example, by an external I/O device to signal that the I/O device is ready for a data transfer.
In a typical interrupt sequence, the I/O device, or “peripheral”, first sends an interrupt request signal to the microprocessor requesting a data transfer service. In the case of a pipelined processor, a “breakpoint” is typically established in the pipeline, at which point the sequence of instructions in the pipeline can be interrupted relatively conveniently. Instructions scheduled for execution after this breakpoint are discarded from the pipeline, and instructions scheduled for execution before this breakpoint are allowed to complete during subsequent execution of the pipeline. In the case of a non-pipelined microprocessor, the microprocessor typically finishes the instruction currently being processed prior to handling the interrupt request. Either before execution of or as a part of the ISR, the contents of critical registers may be stored into pre-assigned memory locations for use in resumption of the main program subsequent to servicing the interrupt request. The processor also stores the contents of the program counter prior to the ISR. The program counter allows the processor to track which location in program memory the processor may go to fetch the instruction and typically contains the address of the next instruction to be fetched. After the above-described preparatory actions are done, the microprocessor proceeds to execute the ISR. Service of the interrupt may therefore include these preparatory actions such as discarding instructions from the pipeline as well as execution of the ISR. After completion of the ISR (or sometimes as part of the routine), data from the stored critical registers and program counter are reloaded back into their respective memory locations such that the microprocessor is then restored back to its “pre-interrupt” status and proceeds to resume execution of the main program.
The time (typically measured in clock cycles) between when the initial interrupt request occurs and the execution of the ISR is started may be defined as the overall latency associated with handling an interrupt. This overall latency includes any latency associated with establishing a breakpoint and clearing pipeline instructions (described herein as “interrupt pipeline latency”). Another component of the overall latency may include, for example, any latency associated with disabling service of the interrupt for a period of time to allow execution of critical instructions to complete unperturbed.
In addition to the latency components described above, additional contributions to the overall latency can be incurred in situations for which the processor is waiting for completion of an instruction that was executing when the interrupt was received. For example, in an instruction calling for a memory access, the memory access may not be able to be completed in the current clock cycle, and the microprocessor is forced to simply wait until the memory access can be completed in a subsequent clock cycle. In other words, the microprocessor may not be able to perform other tasks or execute further instructions due to this delay in the memory access. This latency, defined herein as interrupt memory delay latency, measures the time it takes for the microprocessor to perform the memory access before beginning interrupt service. Depending on memory configurations used in the microprocessor system, this latency can be quite long. Such latency can be present, for example, in multi-microprocessor systems in which the microprocessors interface with a pooled memory system, or in a microprocessor system for which some memories have slow access times compared to the speed of the microprocessor.
Ideally, the overall interrupt latency should be as low as possible to increase overall microprocessor system performance. Long overall interrupt latencies of I/O devices can detrimentally affect the overall speed of the program being executed, particularly when the program calls for real-time data transfer between I/O devices and the microprocessor. For example, in a streaming video application which requires a minimum data transfer rate to sustain the amount of data required to provide smooth and seamless motion-video, long interrupt latencies between the microprocessor and the video graphics system can cause many frames of the video to be dropped during playback.
It would therefore be desirable to provide a method and system for handling exceptions such as an interrupt request with low overall latency to improve microprocessor system performance.
SUMMARY OF THE INVENTION
The issues described above are in large part addressed by a method and processor for handling an exception received by the processor, where service of the exception is initiated while waiting for completion of a memory access attempt by the processor. In an embodiment, th

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Low-latency interrupt handling during memory access delay... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Low-latency interrupt handling during memory access delay..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Low-latency interrupt handling during memory access delay... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3223761

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.