Apparatus and method for detecting and handling...

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

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06405307

ABSTRACT:

BACKGROUND
1. Field
The present invention relates to the field of electronics. More specifically, the invention relates to an apparatus and method for detecting and handling self-modifying code conflicts.
2. General Background
Early microprocessors featured circuitry arranged to successively fetch and execute instructions. More specifically, each instruction pointer (IP), identifying a line of memory in which an instruction is stored, is fetched and placed in an instruction fetch pipeline. The instruction fetch pipeline is comprised of a number of processing stages in which the first few processing stages are referred to as a “front-end pipeline” and remaining processing stages are referred to as a “back-end pipeline”. Since “in-flight” IPs are loaded into the front-end pipeline where instructions associated with these IPs are subsequently executed at the back-end pipeline, the in-flight IPs are subject to self-modifying code (SMC) conflicts.
A “SMC conflict” is a condition where the execution of an instruction of an executable program causes self-modification of that executable program. This self-modification may lead to the execution of “stale” data. In particular, a SMC conflict may occur for a number of reasons including, for example, those instances when a new instruction is created or when data embedded into the instruction of a repeatedly executed program is modified. Thus, various SMC handling techniques have been adopted.
Over the last few years, SMC conflicts have been handled through a variety of techniques. For example, for the i80486™ microprocessor produced by Intel Corporation of Santa Clara, Calif., a branch instruction was coded to follow a write instruction to program memory. This branch instruction caused the entire instruction pipeline to be flushed. Unfortunately, the insertion of branch instructions tends to be extremely inefficient, especially for pipelined processors since a complete pipeline flush would invalidate information stored in several queues.
With respect to the PENTIUM® microprocessor, the branch instruction technique was not utilized; instead, each in-flight instruction associated with a SMC conflict is detected and marked since the pipeline had only a few stages. The marked instruction is passed to an execution stage of the pipeline, at which time, the pipeline and those queues on the pipeline are flushed.
Another technique, utilized by the PENTIUM® PRO microprocessor, requires the use of an instruction victim cache (IVC) in combination with a normal instruction cache (I-cache) to guarantee that all of the instructions in the pipeline would be resident in one of these caches. However, management logic of these caches would unnecessarily complicate the cache architecture of the microprocessor and would provide a less than optimal solution for SMC conflict detection.
Hence, it would be advantageous to provide an apparatus, system and method to detect and clear SMC conflicts associated with the front-end portion of an instruction fetch pipeline and to provide a scheme after the occurrence of the SMC conflict to regain synchronization of the multiple front-end pipelines to each other.
SUMMARY OF THE INVENTION
Briefly, in one embodiment, a method is described for detecting and recovering from self-modifying code conflicts. The method comprises comparing an address with information progressing through a front-end pipeline of an instruction pipeline. If the address compares with information progressing through the front-end pipeline, a selection portion of the information is invalidated.


REFERENCES:
patent: 5265213 (1993-11-01), Weiser et al.
patent: 5377336 (1994-12-01), Eickenmeyer et al.
patent: 5430851 (1995-07-01), Hirata et al.
patent: 5467473 (1995-11-01), Kahle et al.
patent: 5467476 (1995-11-01), Kawasaki
patent: 5692167 (1997-11-01), Grochowski et al.
patent: 5742791 (1998-04-01), Mahallingaiah et al.
patent: 5742804 (1998-04-01), Yeh et al.
patent: 5835949 (1998-11-01), Quattromani et al.
patent: 5860017 (1999-01-01), Sharangpani et al.
patent: 5867701 (1999-02-01), Brown et al.
patent: 5913049 (1999-06-01), Shiell et al.
patent: 5954812 (1999-09-01), Shiell et al.
patent: 6009516 (1999-12-01), Steiss et al.

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

Apparatus and method for detecting and handling... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Apparatus and method for detecting and handling..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for detecting and handling... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2906850

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