Prefetching Patents (Class 712/207)
-
Patent number: 6877068Abstract: Disclosed are a method and device (100) for prefetching referenced resources (105) from servers (102, 103, 104). A first resource (106) is scanned for unfetched references (107), which are weighted and prefetched in the order of their weight. The computation of the weight is based on the number of times the resource referenced by the reference has been fetched previously, and on the number of times one or more further resources have been fetched previously from a server that serves the resource referenced by the reference. The device (100) can be realized as a computer program product.Type: GrantFiled: October 19, 2001Date of Patent: April 5, 2005Assignee: Koninklijke Philips Electronics N.V.Inventor: Simon Blanchard
-
Patent number: 6874067Abstract: A multiprocessor computer system employs a number of levels of cache memories with each processor. A cache controller for a lower level cache memory receives a memory block pre-fetch request which requests a particular memory block. The cache controller determines a likelihood that the particular memory block will be invalidated prior to use of the memory block by a processor which issued the pre-fetch request. Based on that determination, the cache controller determines whether to honor the pre-fetch request.Type: GrantFiled: April 11, 2002Date of Patent: March 29, 2005Assignee: International Business Machines CorporationInventor: Farnaz Toussi
-
Patent number: 6871273Abstract: A processor implementing an improved method for executing load instructions includes execution circuitry, a plurality of registers, and instruction processing circuitry. The instruction processing circuitry fetches a load instruction and a preceding instruction that precedes the load instruction in program order, and in response to detecting the load instruction, translates the load instruction into separately executable prefetch and register operations. The execution circuitry performs at least the prefetch operation out-of-order with respect to the preceding instruction to prefetch data into the processor and subsequently separately executes the register operation to place the data into a register specified by the load instruction. In an embodiment in which the processor is an in-order machine, the register operation is performed in-order with respect to the preceding instruction.Type: GrantFiled: June 22, 2000Date of Patent: March 22, 2005Assignee: International Business Machines CorporationInventor: Charles Robert Moore
-
Patent number: 6871247Abstract: For use in a processor having separate instruction and data buses, separate instruction and data memories and separate instruction and data units, a mechanism for, and method of, supporting self-modifying code and a digital signal processor incorporating the mechanism or the method. In one embodiment, the mechanism includes: (1) a crosstie bus coupling the instruction bus and the data unit and (2) a request arbiter, coupled between the instruction and data units, that arbitrates requests therefrom for access to the instruction memory.Type: GrantFiled: November 8, 2001Date of Patent: March 22, 2005Assignee: LSI Logic CorporationInventors: Hung T. Nguyen, Troy N. Hicks
-
Patent number: 6862680Abstract: A microprocessor avoids loss of instructions in a pre-fetch procedure when a branch instruction is received. When a new branch instruction that specifies a branch end is received by a queue buffer, all the instructions preceding the specified branch end are processed as an operand of the branch instruction. Moreover, the instruction word length of the branch instruction including the instruction that has been processed as the operand is output to a program counter, so the queue buffer is not flushed.Type: GrantFiled: September 21, 2001Date of Patent: March 1, 2005Assignee: Renesas Technology Corp.Inventor: Yoshiyuki Haraguchi
-
Patent number: 6848029Abstract: Computer systems are typically designed with multiple levels of memory hierarchy. Prefetching has been employed to overcome the latency of fetching data or instructions from or to memory. Prefetching works well for data structures with regular memory access patterns, but less so for data structures such as trees, hash tables, and other structures in which the datum that will be used is not known a priori. The present invention significantly increases the cache hit rates of many important data structure traversals, and thereby the potential throughput of the computer system and application in which it is employed. The invention is applicable to those data structure accesses in which the traversal path is dynamically determined. The invention does this by aggregating traversal requests and then pipelining the traversal of aggregated requests on the data structure.Type: GrantFiled: January 3, 2001Date of Patent: January 25, 2005Inventor: Dirk Coldewey
-
Patent number: 6848030Abstract: A processing system has a processor, a cache, and a fetch unit. If there is a miss in the cache, the fetch unit generates a fetch address for the miss in the cache for the purpose of retrieving the requested data from external memory and providing the data to the processor and loading the data in a location in a line in the cache. The fetch unit also generates additional prefetch addresses for addresses consecutive with the fetch address. The prefetch addresses continue to be generated for all of the locations in the line in the cache that are consecutive with the fetch address. The generation of prefetch addresses will be stopped if another requests arrives that is not part of the already generated prefetched addresses. Further, the outstanding prefetches will be terminated if the external memory can handle such termination.Type: GrantFiled: July 20, 2001Date of Patent: January 25, 2005Assignee: Freescale Semiconductor, Inc.Inventors: Yakov Tokar, Amit Gur, Jacob Efrat, Doron Schupper
-
Patent number: 6842846Abstract: An architecture of method for fetching microprocessor's instructions is provided to pre-fetch and pre-decode a next instruction. If the instruction pre-decoded is found a conditional branch instruction, an instruction reading-amount register is set for reading two instructions next to the current instruction in the program memory, or one is read instead if the next instruction is found an instruction other than the conditional branch one so as to waive reading of unnecessary program memory and thereby reduce power consumption.Type: GrantFiled: December 18, 2001Date of Patent: January 11, 2005Assignee: National Chiao Tung UniversityInventors: Pao-Lung Chen, Chen-Yi Lee
-
Patent number: 6823406Abstract: A microprocessor includes a register and a comparator. The register stores an address area, the address area requiring a guarantee of an access order. The comparator compares an address of the address area held in said register with an address of an address area indicated in an access request from CPU, and outputs a signal to execute an access request succeeding the access request from the CPU after executing an access request preceding the access request from the CPU when the address area indicated in the access request from the CPU matches the address area held in said register.Type: GrantFiled: March 13, 2002Date of Patent: November 23, 2004Assignee: Fujitsu LimitedInventors: Hitoshi Yoda, Hiroyuki Utsumi, Yasuhiro Yamazaki
-
Patent number: 6823444Abstract: A branch control apparatus in a microprocessor. The branch control apparatus includes an instruction buffer having a plurality of stages that buffer cache lines of instruction bytes received from an instruction cache. A multiplexer selects one of the bottom three stages in the instruction buffer to provide to instruction format logic. The multiplexer selects a stage based on a branch indicator, an instruction wrap indicator, and a carry indicator. The branch indicator indicates whether the processor previously branched to a target address provided by a branch target address cache. The branch indicator and target address are previously stored in association with the stage containing the branch instruction for which the target address is cached. The wrap indicator indicates whether the currently formatted instruction wraps across two cache lines. The carry indicator indicates whether the current instruction being formatted occupies the last byte of the currently formatted instruction buffer stage.Type: GrantFiled: July 3, 2001Date of Patent: November 23, 2004Assignee: IP-First, LLCInventors: G. Glenn Henry, Thomas C. McDonald
-
Patent number: 6820194Abstract: In one disclosed embodiment an instruction loop having at least one instruction is identified. For example, each instruction can be a VLIW packet comprised of several individual instructions. The instructions of the instruction loop are fetched from a program memory. The instructions are then stored in a register queue. For example, the register queue can be implemented with a head pointer which is adjusted to select a register in which to write each instruction that is fetched. It is then determined whether the processor requires execution of the instruction loop, for example, by checking a program counter (PC) value corresponding to each instruction. When the processor requires execution of the instruction loop, the instructions are output from the register queue. For example, the register queue can be implemented with an access pointer which is adjusted to select a register from which to output each instruction that is required.Type: GrantFiled: April 10, 2001Date of Patent: November 16, 2004Assignee: Mindspeed Technologies, Inc.Inventors: Sameer I. Bidichandani, Moataz A. Mohamed
-
Publication number: 20040225866Abstract: A data processing system incorporates an instruction prefetch unit 8 including a static branch predictor 12. A static branch prediction cache 30, 32, 34 is provided for storing a most recently encountered static branch prediction such that a subsequent request to fetch the already encountered branch instruction can be identified before the opcode before that branch instruction is returned. The cached static branch prediction can thus redirect the prefetching to the branch target address sooner than the static predictor 12.Type: ApplicationFiled: May 6, 2003Publication date: November 11, 2004Inventor: David James Williamson
-
Publication number: 20040216097Abstract: Methods and apparatus are disclosed to prefetch memory objects. An example method includes identifying program states associated with an executing program; associating memory profiles with respective ones of the program states; identifying at least one next probable state; and prefetching memory objects associated with the at least one memory profile corresponding to the at least one next probable state.Type: ApplicationFiled: June 27, 2003Publication date: October 28, 2004Inventor: Mingqiu Sun
-
Publication number: 20040215935Abstract: A simple instruction set processor preferably utilizes six primary components: a fetch unit, and instruction and address register, a controller/decoder, an arithmetic logic unit, an address multiplexer, and a storage multiplexer. The processor utilizes a data stream containing within it the address for a subsequent instruction to be executed by the processor, thereby avoiding the need for registers of the type utilized in prior art processors. As a result, the processor utilizes a minimal number of registers to perform its operations. The processor utilizes an instruction set in which every instruction contains a JUMP to the next instruction. By utilizing JUMPs in every instruction and providing the address to which the processor is to JUMP, there is no need for address counters and register pointers. Also, extremely fast state changes are facilitated the contents of only one register identifying a next address must be saved or restored.Type: ApplicationFiled: May 14, 2004Publication date: October 28, 2004Inventor: Dean A. Klein
-
Publication number: 20040193843Abstract: A system and method of early branch prediction in a processor to evaluate, typically before a full branch prediction is made, ways in a branch target buffer to determine if any of said ways corresponds to a valid unconditional branch, and upon such determination, to generate a signal to prevent a read of a next sequential chunk.Type: ApplicationFiled: March 31, 2003Publication date: September 30, 2004Inventors: Eran Altshuler, Oded Lempel, Robert Valentine, Nicolas Kacevas
-
Patent number: 6799264Abstract: A memory accelerator module buffers program instructions and/or data for high speed access using a deterministic access protocol. The program memory is logically partitioned into ‘stripes’, or ‘cyclically sequential’ partitions, and the memory accelerator module includes a latch that is associated with each partition. When a particular partition is accessed, it is loaded into its corresponding latch, and the instructions in the next sequential partition are automatically pre-fetched into their corresponding latch. In this manner, the performance of a sequential-access process will have a known response, because the pre-fetched instructions from the next partition will be in the latch when the program sequences to these instructions. Previously accessed blocks remain in their corresponding latches until the pre-fetch process ‘cycles around’ and overwrites the contents of each sequentially-accessed latch.Type: GrantFiled: February 20, 2001Date of Patent: September 28, 2004Assignee: Koninklijke Philips Electronics N.V.Inventors: Gregory K Goodhue, Ata R Khan, John H. Wharton, Robert Michael Kallal
-
Patent number: 6799263Abstract: A method for prefetching instructions into cache memory using a prefetch instruction. The prefetch instruction contains a target field, a count field, a cache level field, a flush field, and a trace field. The target field specifies the address at which prefetching begins. The count field specifies the number of instructions to prefetch. The flush field indicates whether earlier prefetches should be discarded and whether in-progress prefetches should be aborted. The level field specifies the level of the cache into which the instructions should be prefetched. The trace field establishes a trace vector that can be used to determine whether the prefetching operation specified by the operation should be aborted. The prefetch instruction may be used in conjunction with a branch predict instruction to prefetch a branch of instructions that is not predicted.Type: GrantFiled: October 28, 1999Date of Patent: September 28, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventors: Dale C. Morris, James R. Callister, Stephen R. Undy
-
Patent number: 6795876Abstract: An amount of data to be pre-fetched during read operations is adaptively modified based upon the experience of previous reads. If previous reads were terminated before all the data desired was obtained, subsequent read amounts may be increased. The initial amount of pre-fetched data may be pre-set or modified dynamically.Type: GrantFiled: March 27, 2001Date of Patent: September 21, 2004Assignee: Intel CorporationInventor: Gary A. Solomon
-
Patent number: 6795899Abstract: In some embodiments, the invention includes a system having a memory controller, a bus, and first and second memory devices. The memory controller requests read and write operations and operates with a burst length. The first and second memory devices are coupled to the memory controller through the bus, the first and second memory devices each having a prefetch length that is greater than the burst length, but performing the requested read and write operations with the burst length. Other embodiments are described and claimed.Type: GrantFiled: March 22, 2002Date of Patent: September 21, 2004Assignee: Intel CorporationInventors: James M. Dodd, Howard S. David
-
Patent number: 6792496Abstract: Prefetching data includes issuing a first request to prefetch data from a memory, receiving a response to the first request from the memory, obtaining a measure of latency between the first request and the response, and controlling issuance of a subsequent request to prefetch other data from the memory based on the measure.Type: GrantFiled: August 2, 2001Date of Patent: September 14, 2004Assignee: Intel CorporationInventors: Nagi Aboulenein, Randy B. Osborne
-
Publication number: 20040172518Abstract: Provided is an information processing unit including: a prefetch buffer for fetching an instruction through a bus with its width being twice or more as large as an instruction length, to store the prefetched instruction; a decoder for decoding the instruction stored in the prefetch buffer; and an arithmetic unit for executing the decoded instruction. An instruction request control circuit performs a prefetch request to prefetch a branch target instruction when a branch instruction is decoded, otherwise the instruction request control circuit performs the prefetch request sequentially to prefetch the instructions. A prefetch control circuit fetches the branch target instruction to the prefetch buffer when the branch is ensured to occur by executing the branch instruction, while the prefetch control circuit ignores the branch target instruction when a branch does not occur.Type: ApplicationFiled: October 17, 2003Publication date: September 2, 2004Applicant: FUJITSU LIMITEDInventors: Toshiaki Saruwatari, Seiji Suetake
-
Patent number: 6785772Abstract: A data processing system (20) is able to perform parameter-selectable prefetch instructions to prefetch data for a cache (38). When attempting to be backward compatible with previously written code, sometimes performing this instruction can result in attempting to prefetch redundant data by prefetching the same data twice. In order to prevent this, the parameters of the instruction are analyzed to determine if such redundant data will be prefetched. If so, then the parameters are altered to avoid prefetching redundant data. In some of the possibilities for the parameters of the instruction, the altering of the parameters requires significant circuitry so that an alternative approach is used. This alternative but slower approach, which can be used in the same system with the first approach, detects if the line of the cache that is currently being requested is the same as the previous request. If so, the current request is not executed.Type: GrantFiled: April 26, 2002Date of Patent: August 31, 2004Assignee: Freescale Semiconductor, Inc.Inventors: Suresh Venkumahanti, Michael Dean Snyder
-
Patent number: 6785796Abstract: A method and apparatus for altering code to effectively hide main memory latency using software prefetching with non-faulting loads prefetches data from main memory into local cache memory at some point prior to the time when the data is requested by the CPU during code execution. The CPU then retrieves its requested data from local cache instead of directly seeing the memory latency. The non-faulting loads allow for safety and more flexibility in executing the prefetch operation earlier because they alleviate the concern of incurring a segmentation fault, particularly when dealing with linked data structures. Accordingly, the memory access latency that the CPU sees is essentially the cache memory access latency. Since this latency is much less than the memory latency resulting from a cache miss, the overall system performance is improved.Type: GrantFiled: August 1, 2000Date of Patent: August 31, 2004Assignee: Sun Microsystems, Inc.Inventors: Peter Damron, Nicolai Kosche
-
Publication number: 20040168042Abstract: pipelined CPU includes a pre-fetch (PF) stage for performing branch prediction, and an instruction fetch (IF) stage for fetching instructions that are to be later processed by an execution (EX) stage. The PF stage has a PF address (PFA) register for storing the address of an instruction being processed by the PF stage, and the IF stage has an IF address (IFA) register for storing the address of an instruction to be fetched for later execution. The CPU also includes address register control (ARC) circuitry for setting the contents of the PFA and the IFA. The ARC accepts branch-prediction results from the PF stage to determine the subsequent contents of the PFA and the IFA. If the PF stage predicts no branching, then the ARC sets a next address of the PFA to be sequentially after a current address of the PFA, and sets a next address of the IFA be the current address of the PFA.Type: ApplicationFiled: February 16, 2003Publication date: August 26, 2004Inventor: Hung-Yu Lin
-
Publication number: 20040168043Abstract: A line predictor caches alignment information for instructions. In response to each fetch address, the line predictor provides alignment information for the instruction beginning at the fetch address, as well as one or more additional instructions subsequent to that instruction. The alignment information may be, for example, instruction pointers, each of which directly locates a corresponding instruction within a plurality of instruction bytes fetched in response to the fetch address. The line predictor may include a memory having multiple entries, each entry storing up to a predefined maximum number of instruction pointers and a fetch address corresponding to the instruction identified by a first one of the instruction pointers. Fetch addresses may be searched against the fetch addresses stored in the multiple entries, and if a match is detected the corresponding instruction pointers may be used.Type: ApplicationFiled: February 20, 2004Publication date: August 26, 2004Applicant: Advanced Micro Devices, Inc.Inventors: James B. Keller, Puneet Sharma, Keith R. Schakel, Francis M. Matus
-
Publication number: 20040153628Abstract: The present invention relates to an instruction control device, and more particularly to an instruction control device which has achieved a high speed operational processing, such as a reduction in the amount of components, so as to enable an out-of-order instruction execution to thereby execute an instruction processing at high speed in an information processor.Type: ApplicationFiled: December 30, 2003Publication date: August 5, 2004Applicant: FUJITSU LIMITEDInventor: Takeo Asakawa
-
Publication number: 20040153629Abstract: The present invention relates to an instruction control device, and more particularly to an instruction control device which has achieved a high speed operational processing, such as a reduction in the amount of components, so as to enable an out-of-order instruction execution to thereby execute an instruction processing at high speed in an information processor.Type: ApplicationFiled: December 30, 2003Publication date: August 5, 2004Applicant: FUJITSU LIMITEDInventor: Takeo Asakawa
-
Publication number: 20040153622Abstract: The present invention relates to an instruction control device, and more particularly to an instruction control device which has achieved a high speed operational processing, such as a reduction in the amount of components, so as to enable an out-of-order instruction execution to thereby execute an instruction processing at high speed in an information processor.Type: ApplicationFiled: December 30, 2003Publication date: August 5, 2004Applicant: FUJITSU LIMITEDInventor: Takeo Asakawa
-
Patent number: 6772237Abstract: The present invention relates to a method and circuit for prefetching direct memory access descriptors from memory of a computer system, and storing the prefetched direct memory access descriptors within a unified descriptor memory for subsequent access by direct memory access controllers. The descriptors are generated by a central processing unit of the computer system while executing software applications. The descriptors define data transfer operations between memory of the computer system and input/output devices via direct memory access controllers. The direct memory access controllers generate requests for descriptors. Upon generation of a request, the unified descriptor memory is checked to determine whether the requested descriptor is contained therein. If the requested descriptor is contained within the unified descriptor memory, the request descriptor is provided to the requesting direct memory access controller.Type: GrantFiled: November 21, 2001Date of Patent: August 3, 2004Assignee: Sun Microsystems, Inc.Inventor: Josh David Collier
-
Patent number: 6772179Abstract: The present invention provides a prefetch system for use with a cache memory associated with a database employing indices. In one embodiment, the prefetch system includes a search subsystem configured to prefetch cache lines containing an index of a node of a tree structure associated with the database. Additionally, the prefetch system also includes a scan subsystem configured to prefetch cache lines based on an index prefetch distance between first and second leaf nodes of the tree structure.Type: GrantFiled: December 28, 2001Date of Patent: August 3, 2004Assignee: Lucent Technologies Inc.Inventors: Shimin Chen, Phillip B. Gibbons, Todd C. Mowry
-
Patent number: 6766441Abstract: In a first aspect of the present invention, a method for prefetching instructions in a superscalar processor is disclosed. The method comprises the steps of fetching a set of instructions along a predicted path and prefetching a predetermined number of instructions if a low confidence branch is fetched and storing the predetermined number of instructions in a prefetch buffer. In a second aspect of the present invention, a system for prefetching instructions in a superscalar processor is disclosed. The system comprises a cache for fetching a set of instructions along a predicted path, a prefetching mechanism coupled to the cache for prefetching a predetermined number of instructions if a low confidence branch is fetched and a prefetch buffer coupled to the prefetching mechanism for storing the predetermined number of instructions. Through the use of the method and system in accordance with the present invention, existing prefetching algorithms are improved with minimal additional hardware cost.Type: GrantFiled: January 19, 2001Date of Patent: July 20, 2004Assignee: International Business Machines CorporationInventor: Balaram Sinharoy
-
Publication number: 20040133769Abstract: One embodiment of the present invention provides a system that generates prefetches by speculatively executing code during stalls through a technique known as “hardware scout threading.” The system starts by executing code within a processor. Upon encountering a stall, the system speculatively executes the code from the point of the stall, without committing results of the speculative execution to the architectural state of the processor. If the system encounters a memory reference during this speculative execution, the system determines if a target address for the memory reference can be resolved. If so, the system issues a prefetch for the memory reference to load a cache line for the memory reference into a cache within the processor.Type: ApplicationFiled: December 19, 2003Publication date: July 8, 2004Inventors: Shailender Chaudhry, Marc Tremblay
-
Patent number: 6760818Abstract: As microprocessor speeds increase, performance is more affected by data access operations. A combined solution of hardware and software directed pre-fetching limits additional instructions in a program stream, and minimizes additional hardware resources. In the current invention, the hardware and software directed pre-fetching technique is performed without explicit pre-fetch instructions utilized within the program stream and occupies a minimal amount of additional chip area. To minimize instruction bandwidth of the processor, the software and hardware directed pre-fetching approach uses additional registers located at an architectural level of the processor to specify pre-fetch regions, and a respective stride used for each of the regions. The impact to the instruction bandwidth of processing of instructions by the processor is limited to those additional instructions contained within the application that are required to set these registers.Type: GrantFiled: May 1, 2002Date of Patent: July 6, 2004Assignee: Koninklijke Philips Electronics N.V.Inventor: Jan-Willem van de Waerdt
-
Patent number: 6760816Abstract: A prefetch engine is responsible for prefetching critical data. The prefetch engine operates when a cache miss occurs accessing critical data requested by a processor. The prefetch engine requests cache lines surrounding the cache line satisfying the data request be loaded into the cache.Type: GrantFiled: September 29, 2000Date of Patent: July 6, 2004Assignee: Intel CorporationInventors: Dz-ching Ju, Srikanth T. Srinivasan, Christopher B. Wilkerson
-
Publication number: 20040128477Abstract: An apparatus and method are provide for precluding stalls in a microprocessor pipeline due to microcode ROM access delay. The apparatus includes a micro instruction queue and early access logic. The micro instruction queue provides a plurality of queue entries to register logic. Each of the plurality of queue entries includes first micro instructions and a microcode entry point. All of the first micro instructions correspond to an instruction. The microcode entry point is coupled to the first micro instructions. The microcode entry point is configured to point to second micro instructions stored within a microcode ROM. The early access logic is coupled to the micro instruction queue.Type: ApplicationFiled: December 15, 2003Publication date: July 1, 2004Applicant: IP-First, LLCInventors: G. Glenn Henry, Dinesh K. Jain, Terry Parks
-
Publication number: 20040128448Abstract: Processor architectures, and in particular, processor architectures with a cache-like structure to enable memory communication during runahead execution. In accordance with an embodiment of the present invention, a system including a memory; and an out-of-order processor coupled to the memory. The out-of-order processor including at least one execution unit, at least one cache coupled to the at least one execution unit; at least one address source coupled to the at least one cache; and a runahead cache coupled to the at least one address source.Type: ApplicationFiled: December 31, 2002Publication date: July 1, 2004Applicant: INTEL CORPORATIONInventors: Jared W. Stark, Chris B. Wilkerson, Onur Mutlu
-
Patent number: 6757816Abstract: A system and method for recovering from mispredicted paths in pipelined computer architectures. Targets within an instruction window exhibit spatial locality. To exploit this property, a mechanism detects the branch target within the instruction window. A second process eliminates the need for full renaming and re-execution of mispredicted paths by handling a dependency chain of instructions.Type: GrantFiled: December 30, 1999Date of Patent: June 29, 2004Assignee: Intel CorporationInventors: Adi Yoaz, Gregory Pribush, Freddy Gabby, Mattan Erez, Ronny Ronen
-
Publication number: 20040123075Abstract: Extended loop prediction techniques. One embodiment of an apparatus utilizing disclosed techniques includes at least one execution unit and a prefetcher utilizing a variable length loop detector to fetch a control sequence for the execution unit. The variable length loop detector is capable of predicting branches for loops having changing iterations counts.Type: ApplicationFiled: December 19, 2002Publication date: June 24, 2004Inventor: Yoav Almog
-
Patent number: 6751708Abstract: A method is disclosed for instructing a computing system to ensure that a line is present in an instruction cache that includes selecting a line-touch instruction, recognizing the line-touch instruction as a type of branch instruction where the branch is not taken, executing the line-touch instruction to fetch a target line from a target address into the instruction cache, and interlocking the execution of the line-touch instruction with the completion of the fetch of the target line in order to prevent execution of the instruction following the line-touch instruction until after the target line has reached the cache.Type: GrantFiled: January 9, 2002Date of Patent: June 15, 2004Assignee: International Business Machines CorporationInventors: John S. Liptay, Mark A. Check, Mark S. Farrell, Bruce C. Giamei, Charles F. Webb
-
Patent number: 6751709Abstract: One embodiment of the present invention provides a system that uses references within a first object to prefetch a second object into a cache memory. During operation, the system receives a first cache line containing at least a portion of the first object. Next, the system locates a reference to the second object within the first cache line, and uses the reference to perform a prefetching operation for the second object. In a variation on this embodiment, while performing the prefetching operation for the second object, the system examines the cache memory to determine if the second object is already present within the cache memory. If not, the system performs the prefetching operation for the second object.Type: GrantFiled: May 15, 2002Date of Patent: June 15, 2004Assignee: Sun Microsystems, Inc.Inventors: Matthew L. Seidl, Gregory M. Wright, Mario I. Wolczko
-
Patent number: 6748521Abstract: A data processing system is provided with a digital signal processor which has an instruction for saturating multiple fields of a selected set of source operands and storing the separate saturated results in a selected destination register. A first 32-bit operand (600) and a second 32-bit operand (602) are treated as four 16-bit fields and the sixteen bits in each field are saturated separately. Multi-field saturation circuitry is operable to treat a source operand as a number of fields, such that a multi-field saturated (610) result is produced that includes a number of saturated results each corresponding to each field. One instruction is provided which treats an operand pair as having two packed fields, and another instruction is provided that treats the operand pair has having four packed fields. Saturation circuitry is operable to selectively treat a field as either a signed value or an unsigned value.Type: GrantFiled: October 31, 2000Date of Patent: June 8, 2004Assignee: Texas Instruments IncorporatedInventor: David Hoyle
-
Patent number: 6742108Abstract: A load is executed speculatively as a dismissible load instruction, which does not take exceptions, and a check instruction, which is in the same format as the dismissible load, that when executed determines whether an exception should be taken on the dismissible load. In this manner, a load may be executed speculatively while ensuring that an exception occurs at the same time it would have occurred had the load been executed non-speculatively.Type: GrantFiled: September 14, 1998Date of Patent: May 25, 2004Assignee: Intel CorporationInventor: Kent G. Fielden
-
Patent number: 6738867Abstract: A dedicated register is provided in an external access controller such that read ahead of operand data is performed. Using a store instruction, a program initiates read ahead by writing the read ahead address to the dedicated register. The read ahead controller stores read ahead data in the dedicated register. When the program issues a load instruction, the read ahead data is transmitted.Type: GrantFiled: June 2, 2000Date of Patent: May 18, 2004Assignee: Hitachi, Ltd.Inventor: Hiroki Kanai
-
Patent number: 6732260Abstract: An instruction prefetch apparatus includes a branch target buffer (BTB), a presbyopic target buffer (PTB) and a prefetch stream buffer (PSB). The BTB includes records that map branch addresses to branch target addresses, and the PTB includes records that map branch target addresses to subsequent branch target addresses. When a branch instruction is encountered, the BTB can predict the dynamically adjacent subsequent block entry location as the branch target address in the record that also includes the branch instruction address. The PTB can predict multiple subsequent blocks by mapping the branch target address to subsequent dynamic blocks. The PSB holds instructions prefetched from subsequent blocks predicted by the PTB.Type: GrantFiled: March 6, 2000Date of Patent: May 4, 2004Assignee: Intel CorporationInventors: Hong Wang, Ralph Kling, Edward T. Grochowski, Kalpana Ramakrishnan
-
Patent number: 6728839Abstract: An enhanced prefetching technique enables control of internal activities of a cache memory by a processor without relying on conventional algorithms. The cache memory is contained within a processor complex of a programmable arrayed processing engine used to efficiently process data within an intermediate network station of a computer network. The cache may further assume various functions while providing an interface to an external memory of the station via a memory controller. That is, the cache may function as a read buffer, a write buffer and/or a buffer for pending atomic commands, each of which is merged into a single memory bank that can be partitioned in any manner to enable efficient utilization.Type: GrantFiled: October 28, 1998Date of Patent: April 27, 2004Assignee: Cisco Technology, Inc.Inventor: John William Marshall
-
Patent number: 6728840Abstract: Mechanisms and techniques allow a host computer system to control caching operations within a data storage system. In a typical implementation, the system of the invention operates within a host computer system to intercept requests for access to data stored within a data storage system that originate from applications, programs or other processes that perform (e.g., execute) on the host computer system or another computer system. Once intercepted, the host computer can examine such a request for access to data to determine if the request matches any prefetch criteria defined within a prefetch database provided by the system of the invention. As an example, prefetch criteria defined in a prefetch database can specify various requestors (e.g., applications, programs, processes, users, or the like) that can access data (e.g., specific files, databases, volumes, data types or the like) stored within the data storage system according to various data access techniques (e.g.Type: GrantFiled: October 20, 2000Date of Patent: April 27, 2004Assignee: EMC CorporationInventors: Arod Shatil, Edith L. Epstein, Stephen A. Ludlum
-
Patent number: 6728873Abstract: Disclosed is a method of operation within a processor, that enhances speculative branch processing. A speculative execution path contains an instruction sequence that includes a barrier instruction followed by a load instruction. While a barrier operation associated with the barrier instruction is pending, a load request associated with the load instruction is speculatively issued to memory. A flag is set for the load request when it is speculatively issued and reset when an acknowledgment is received for the barrier operation. Data which is returned by the speculatively issued load request is temporarily held and forwarded to a register or execution unit of the data processing system after the acknowledgment is received. All process results, including data returned by the speculatively issued load instructions are discarded when the speculative execution path is determined to be incorrect.Type: GrantFiled: June 6, 2000Date of Patent: April 27, 2004Assignee: International Business Machines CorporationInventors: Guy Lynn Guthrie, Ravi Kumar Arimilli, John Steven Dodson, Derek Edward Williams
-
Patent number: 6718460Abstract: In one aspect, a method for managing program flow in a computer system having a processor having a prefetch mechanism and an instruction pipeline includes providing a set of program instructions having a conditional branch instruction and an system fault-causing instruction, prefetching at least one instruction into the instruction pipeline, the instruction including at least a conditional branch instruction, predicting the outcome of the conditional branch instruction; and prefetching instructions into the instruction queue based upon the result of the predicting step. The branch instruction is configured to direct program flow into or beyond the system fault instruction depending on the result of a predetermined condition.Type: GrantFiled: September 5, 2000Date of Patent: April 6, 2004Assignee: Sun Microsystems, Inc.Inventor: Raj Prakash
-
Method and apparatus for performing addressing operations in a superscalar, superpipelined processor
Patent number: 6718458Abstract: A method and apparatus for improving the performance of a superscalar, superpipelined processor by identifying and processing instructions for performing addressing operations is provided. The invention heuristically determines instructions likely to perform addressing operations and assigns those instructions to specialized pipes in a pipeline structure. The invention can assign such instructions to both an execute pipe and a load/store pipe to avoid the occurrence of “bubbles” in the event execution of the instruction requires the calculation capability of the execute pipe. The invention can also examine a sequence of instructions to identify an instruction for performing a calculation where the result of the calculation is used by a succeeding load or store instruction. In this case, the invention controls the pipeline to assure the result of the calculation is available for the succeeding load or store instruction even if both instructions are being processed concurrently.Type: GrantFiled: March 27, 2003Date of Patent: April 6, 2004Assignee: Broadcom CorporationInventors: Dan Dobberpuhl, Robert Stepanian -
Patent number: 6711668Abstract: A prefetch buffer is described which supports a computer system having a plurality of different instruction modes. The number of storage locations which are read out of the prefetch buffer during each machine cycle is controlled in dependence on the instruction mode. Thus the prefetch buffer allows a number of different instruction modes to be support and hides memory access latency.Type: GrantFiled: May 2, 2000Date of Patent: March 23, 2004Assignee: STMicroelectronics S.A.Inventors: Laurent Wojcieszak, Andrew Cofler