Prefetching Patents (Class 712/207)
-
Patent number: 7328327Abstract: A processor includes a fetch pipeline, out-of-order (OOO) logic and a strand selector. The fetch pipeline is configured to provide instructions from an instruction store to a fetch buffer responsive to receiving a plurality of fetch requests for a first strand, selected from a plurality of active strands. The OOO logic is coupled to the fetch pipeline and is configured to detect an OOO packet in the fetch pipeline in response to the fetch requests for the first strand. The strand selector is coupled to the OOO logic and the fetch pipeline and selects a second strand for processing in the fetch pipeline, from the active strands, when the OOO logic detects the OOO packet associated with the first strand.Type: GrantFiled: January 11, 2006Date of Patent: February 5, 2008Assignee: Sun Microsystems, Inc.Inventor: Abid Ali
-
Patent number: 7318125Abstract: A control mechanism that allows individual applications to turn hardware prefetch on or off is provided. By preliminary trial run one can determine precisely whether an application will benefit or suffer from hardware prefetch. The selective control of prefetching by individual applications is made possible by associating a status bit with individual processes in the machine status word of each processor. Using this prefetch bit, a process turns prefetching on or off to its own advantage in the processor core immediately after a context switch.Type: GrantFiled: May 20, 2004Date of Patent: January 8, 2008Assignee: International Business Machines CorporationInventors: Men-Chow Chiang, Kaivalya M. Dixit, Sujatha Kashyap
-
Patent number: 7313656Abstract: A pre-fetch method for a data storage system having disk drives and a cache memory. The method generates a history as pages are from the disk drives for storage in the cache memory, such history indicating whether a page previous to the requested page is already in the cache memory. The history generation is used during subsequent requests to determine, when a page is again requested, the number of pages that are to be read from the disk drive into the cache memory, the number of pages to be read being determined from the generated history.Type: GrantFiled: December 27, 2004Date of Patent: December 25, 2007Assignee: EMC CorporationInventor: David W. Harvey
-
Patent number: 7313655Abstract: The present invention provides a pre-fetch controller and a method thereof for efficiently pre-fetching data from a memory device. The method includes initializing a counter value; fetching a data from the memory and subtracting the counter value by a first value when a pre-fetching is activated; adding a second value to the counter value when a cache hit occurs; comparing the counter value with a first threshold value; and when the counter value is smaller than the first threshold value, stopping pre-fetching the data from the memory.Type: GrantFiled: October 6, 2004Date of Patent: December 25, 2007Assignee: VIA Technologies Inc.Inventor: Wenchi Hsu
-
Patent number: 7310722Abstract: Instruction dispatch in a multithreaded microprocessor such as a graphics processor is not constrained by an order among the threads. Instructions are fetched into an instruction buffer that is configured to store an instruction from each of the threads. A dispatch circuit determines which instructions in the buffer are ready to execute and may issue any ready instruction for execution. An instruction from one thread may be issued prior to an instruction from another thread regardless of which instruction was fetched into the buffer first. Once an instruction from a particular thread has issued, the fetch circuit fills the available buffer location with the following instruction from that thread.Type: GrantFiled: December 18, 2003Date of Patent: December 18, 2007Assignee: NVIDIA CorporationInventors: Simon S. Moy, John Erik Lindholm
-
Patent number: 7296140Abstract: A method and apparatus to detect and filter out redundant cache line addresses in a prefetch input queue, and to adjust the detector window size dynamically according to the number of detector entries in the queue for the cache-to-memory controller bus. Detectors correspond to cache line addresses that may represent cache misses in various levels of cache memory.Type: GrantFiled: January 12, 2006Date of Patent: November 13, 2007Assignee: Intel CorporationInventors: Eric A. Sprangle, Anwar Q. Rohillah
-
Patent number: 7290119Abstract: 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: August 20, 2004Date of Patent: October 30, 2007Assignee: NXP B.V.Inventors: Gregory K. Goodhue, Ata R. Khan, John H. Wharton, Robert Michael Kallal
-
Patent number: 7280548Abstract: A system is provided for enabling a non-speculative pre-fetch operation for processing instructions to be performed in the background ahead of immediate packet processing by a packet processor. The system comprises a packet-management unit for accepting data packets and enqueuing them for processing, a processor unit for processing the data packets, a processor core memory for holding context registers and functional units for processing, a memory for holding a plurality of instruction threads and a software-configurable hardware table for relating queues to pointers to beginnings of instruction threads. The packet-management unit selects an available context in the processor core for processing of a data packet, consults the table, and communicates the pointer to the processor, enabling the processor to perform the non-speculative pre-fetch for instructions.Type: GrantFiled: April 6, 2006Date of Patent: October 9, 2007Assignee: MIPS Technologies, Inc.Inventors: Nandakumar Sampath, Enrique Musoll, Stephen Melvin, Mario Nemirovsky
-
Patent number: 7278013Abstract: Briefly, in accordance with one embodiment of the invention, a processor has a loop buffer and a cache that provides requested information to a processor core.Type: GrantFiled: February 27, 2004Date of Patent: October 2, 2007Assignee: Intel CorporationInventor: Lawrence A. Booth
-
Patent number: 7272705Abstract: A programmable processor is adapted to detect exception conditions associated with one or more instructions before the instructions are executed. The detected exception conditions may be stored with the one or more instructions in a prefetch unit. Then, the exception conditions may be issued in parallel with the issuance of the instructions.Type: GrantFiled: May 23, 2005Date of Patent: September 18, 2007Assignee: Analog Devices, Inc.Inventors: Juan G. Revilla, Ravi P. Singh, Charles P. Roth
-
Patent number: 7260704Abstract: A content prefetcher having a prefetch chain reinforcement mechanism. In response to a prefetch hit at a cache line within a prefetch chain, a request depth of the hit cache line is promoted and the hit cache line is scanned for candidate virtual addresses in order to reinforce the prefetch chain.Type: GrantFiled: June 5, 2002Date of Patent: August 21, 2007Assignee: Intel CorporationInventors: Robert N. Cooksey, Stephan J. Jourdan
-
Patent number: 7257810Abstract: One embodiment of the present invention provides a system that generates code to perform anticipatory prefetching for data references. During operation, the system receives code to be executed on a computer system. Next, the system analyzes the code to identify data references to be prefetched. This analysis can involve: using a two-phase marking process in which blocks that are certain to execute are considered before other blocks; and analyzing complex array subscripts. Next, the system inserts prefetch instructions into the code in advance of the identified data references. This insertion can involve: dealing with non-constant or unknown stride values; moving prefetch instructions into preceding basic blocks; and issuing multiple prefetches for the same data reference.Type: GrantFiled: November 2, 2001Date of Patent: August 14, 2007Assignee: Sun Microsystems, Inc.Inventors: Partha P Tirumalai, Spiros Kalogeropulos, Mahadevan Rajagopalan, Yonghong Song, Vikram Rao
-
Patent number: 7240161Abstract: A disk drive control system comprising a micro-controller, a micro-controller cache system adapted to store micro-controller data for access by the micro-controller, a buffer manager adapted to provide the micro-controller cache system with micro-controller requested data stored in a remote memory, and a cache demand circuit adapted to: a) receive a memory address and a memory access signal, and b) cause the micro-controller cache system to fetch data from the remote memory via the buffer manager based on the received memory address and memory access signal prior to a micro-controller request.Type: GrantFiled: July 31, 2003Date of Patent: July 3, 2007Assignee: Western Digital Technologies, Inc.Inventor: William B. Boyle
-
Patent number: 7240163Abstract: An apparatus in a microprocessor for selectively retiring a prefetched cache line is disclosed. In a first embodiment, a first count of the number of accesses to the prefetched cache line and N second counts of the number of accesses to N lines of a replacement candidate set of the cache selected by the prefetched cache line address are maintained. When another prefetch is requested, if the first count is greater than the smaller of the N second counts, the candidate prefetched cache line is retired into the cache; otherwise the prefetched cache line is discarded. In a second embodiment, a count of accesses to the replacement candidate line is maintained. When another prefetch is requested, if the count is greater than a programmable threshold value, the candidate prefetched cache line is retired into the cache; otherwise the prefetched cache line is discarded.Type: GrantFiled: August 8, 2005Date of Patent: July 3, 2007Assignee: IP-First, LLCInventors: Glenn Henry, Rodney Hooker
-
Patent number: 7237068Abstract: Various embodiments of a computer system employing bundled prefetching are disclosed. In one embodiment, a cache memory subsystem implements a method for prefetching data. The method comprises the cache memory subsystem receiving a read request to access a line of data and determining that a cache miss with respect to the line occurred. The method further comprises transmitting a bundled transaction on a system interconnect in response to the cache miss, wherein the bundled transaction combines a request for the line of data and a prefetch request.Type: GrantFiled: January 28, 2004Date of Patent: June 26, 2007Assignee: Sun Microsystems, Inc.Inventors: Dan G. Wallin, Erik E. Hagersten
-
Patent number: 7234136Abstract: One embodiment of the present invention provides a system that generates code to perform anticipatory prefetching for data references. During operation, the system receives code to be executed on a computer system. Next, the system analyzes the code to identify data references to be prefetched. This analysis can involve: using a two-phase marking process in which blocks that are certain to execute are considered before other blocks; and analyzing complex array subscripts. Next, the system inserts prefetch instructions into the code in advance of the identified data references. This insertion can involve: dealing with non-constant or unknown stride values; moving prefetch instructions into preceding basic blocks; and issuing multiple prefetches for the same data reference.Type: GrantFiled: November 2, 2001Date of Patent: June 19, 2007Assignee: Sun Microsystems, Inc.Inventors: Partha P Tirumalai, Spiros Kalogeropulos, Mahadevan Rajagopalan, Yonghong Song, Vikram Rao
-
Patent number: 7234041Abstract: In a method for fetching instructions in an embedded system, a predicted one of a set of the instructions stored in a memory device is fetched and is subsequently stored in an instruction buffer when a system bus is in a data access phase. When a processor generates an access request for the memory device, the predicted one of the instructions stored in the instruction buffer is provided to the system bus for receipt by the processor upon determining that the predicted one of the instructions stored in the instruction buffer hits the access request from the processor. An embedded system with an instruction prefetch device is also disclosed.Type: GrantFiled: June 10, 2003Date of Patent: June 19, 2007Assignee: Mediatek Inc.Inventor: Chang-Fu Lin
-
Patent number: 7234025Abstract: A microprocessor that executes a repeat prefetch instruction (REP PREFETCH). The REP PREFETCH prefetches multiple cache lines, wherein the number of cache lines is specifiable in the instruction. The instruction is specified by the Pentium III PREFETCH opcode preceded by the REP string instruction prefix. The programmer specifies the count of cache lines to be prefetched in the ECX register, similarly to the repeat count of a REP string instruction. The effective address of the first cache line is specified similar to the conventional PREFETCH instruction. The REP PREFETCH instruction stops if the address of the current prefetch cache line misses in the TLB, or if the current processor level changes. Additionally, a line is prefetched only if the number of free response buffers is above a programmable threshold. The prefetches are performed at a lower priority than other activities needing access to the cache or TLB.Type: GrantFiled: November 3, 2004Date of Patent: June 19, 2007Assignee: IP-First, LLCInventor: Rodney E. Hooker
-
Patent number: 7231511Abstract: Methods and apparatus, including computer program products, for a microinstruction pointer stack in a processor. A method executed in a processor includes executing microcode (?code) addressed by pointers stored in an out-of-order microinstruction pointer (?IP) stack, and manipulating the ?IP stack with a set of microinstructions.Type: GrantFiled: December 20, 2001Date of Patent: June 12, 2007Assignee: Intel CorporationInventors: Michael P. Cornaby, Ben Chaffin
-
Patent number: 7225318Abstract: In a continuous burst memory read operation, a dynamic prefetch circuit compares a prefetched address with a received address. If the compared addresses are identical, the prefetched address is applied to the memory; else the prefetched address is preempted by the received address, the received address is coupled to the memory, and output data corresponding to the prefetched address is interrupted.Type: GrantFiled: October 8, 2003Date of Patent: May 29, 2007Assignee: Intel CorporationInventors: Wayne Tran, Henry Wong
-
Patent number: 7206902Abstract: A system, apparatus, and method are disclosed for predicting accesses to memory. In one embodiment, an exemplary apparatus comprises a processor configured to execute program instructions and process program data, a memory including the program instructions and the program data, and a memory processor. The memory processor can include a speculator configured to receive an address containing the program instructions or the program data. Such a speculator can comprise a sequential predictor for generating a configurable number of sequential addresses. The speculator can also include a nonsequential predictor configured to associate a subset of addresses to the address and to predict a group of addresses based on at least one address of the subset, wherein at least one address of the subset is unpatternable to the address.Type: GrantFiled: August 17, 2004Date of Patent: April 17, 2007Assignee: NVIDIA CorporationInventors: Ziyad S. Hakura, Brian Keith Langendorf, Stefano A. Pescador, Radoslav Danilak, Brad W. Simeral
-
Patent number: 7197603Abstract: A pipelined processor includes a branch acceleration technique which is based on an improved branch cache. The improved branch cache minimizes or eliminates delays caused by branch instructions, especially data-dependent unpredictable branches. The improved branch cache avoids stalls by providing data that will be inserted into the pipeline stages that would otherwise have stalled when a branch is taken. Special architectural features and control structures are supplied to minimize the amount of information that must be cached by recognizing that only selected types of branches should be cached and by making use of available cycles that would otherwise be wasted. The improved branch cache supplies the missing information to the pipeline in the place of the discarded instructions, completely eliminating the pipeline stall. This technique accelerates performance, especially in real-time code that must evaluate data-dependent conditions and branch accordingly.Type: GrantFiled: September 25, 2003Date of Patent: March 27, 2007Assignee: Micron Technology, Inc.Inventor: Eric M. Dowling
-
Patent number: 7194605Abstract: A method for compressing a set of instructions in an adaptive computing machine includes identifying frequently executed instructions, inserting an explicit caching instruction associating the identified instructions with an index value in the set of instructions before the identified instructions and replacing at least one instance of the frequently executed instructions subsequent to the explicit caching instruction with a compressed instruction referencing the index value. One or more instructions can be identified for compression, including groups of consecutive or non-consecutive instructions. The explicit caching instruction directs a node in an adaptive computing machine to store instructions in an instruction storage unit in association with an index value. Instructions stored in the storage unit are retrievable with reference to the index value.Type: GrantFiled: July 24, 2003Date of Patent: March 20, 2007Assignee: NVIDIA CorporationInventor: Amit Ramchandran
-
Patent number: 7194604Abstract: Disclosed is a method and apparatus providing a microprocessor the ability to reuse data cache content fetched during runahead execution. Said data is stored and later retrieved based upon the instruction address of an instruction which is accessing the data cache. The reuse mechanism allows the reduction of address generation interlocking scenarios with the ability to self-correct should the stored values be incorrect due to subtleties in the architected state of memory in multiprocessor systems.Type: GrantFiled: August 26, 2004Date of Patent: March 20, 2007Assignee: International Business Machines CorporationInventors: Linda M. Bigelow, Richard E. Bohn, Brian R. Prasky, Charles E. Vitu
-
Patent number: 7194582Abstract: A microprocessor with multiple stream prefetch engines each executing a stream prefetch instruction to prefetch a complex data stream specified by the instruction in a manner synchronized with program execution of loads from the stream is provided. The stream prefetch engine stays at least a fetch-ahead distance (specified in the instruction) ahead of the program loads, which may randomly access the stream. The instruction specifies a level in the cache hierarchy to prefetch into, a locality indicator to specify the urgency and ephemerality of the stream, a stream prefetch priority, a TLB miss policy, a page fault miss policy, a protection violation policy, and a hysteresis value, specifying a minimum number of bytes to prefetch when the stream prefetch engine resumes prefetching. The memory subsystem includes a separate TLB for stream prefetches; or a joint TLB backing the stream prefetch TLB and load/store TLB; or a separate TLB for each prefetch engine.Type: GrantFiled: May 30, 2003Date of Patent: March 20, 2007Assignee: MIPS Technologies, Inc.Inventors: Keith E. Diefendorff, Thomas A. Petersen
-
Patent number: 7181574Abstract: A method and apparatus that provides informed prefetching and enhanced memory utilization in a server cluster to improve failover and startup time of a resource group executed by a server cluster. When starting up or failing over a resource group on a given server, the method identifies information for prefetching, informs a file system executed by the server cluster of the identified information, accesses the identified information using the file system, and stores the identified information in main memory for use by the server in the server cluster in advance of when the server actually will need the identified information to failover or initiate resources. To enhance memory utilization the method also identifies pages in cache memory that are not needed for current services provided by a server. Generally these pages contain prefetched information that was already used at start up or failover of a resource group.Type: GrantFiled: January 30, 2003Date of Patent: February 20, 2007Assignee: Veritas Operating CorporationInventor: Abhijeet A. Lele
-
Patent number: 7177985Abstract: A microprocessor with multiple stream prefetch engines each executing a stream prefetch instruction to prefetch a complex data stream specified by the instruction in a manner synchronized with program execution of loads from the stream is provided. The stream prefetch engine stays at least a fetch-ahead distance (specified in the instruction) ahead of the program loads, which may randomly access the stream. The instruction specifies a level in the cache hierarchy to prefetch into, a locality indicator to specify the urgency and ephemerality of the stream, a stream prefetch priority, a TLB miss policy, a page fault miss policy, a protection violation policy, and a hysteresis value, specifying a minimum number of bytes to prefetch when the stream prefetch engine resumes prefetching. The memory subsystem includes a separate TLB for stream prefetches; or a joint TLB backing the stream prefetch TLB and load/store TLB; or a separate TLB for each prefetch engine.Type: GrantFiled: May 30, 2003Date of Patent: February 13, 2007Assignee: MIPS Technologies, Inc.Inventor: Keith E. Diefendorff
-
Patent number: 7165169Abstract: A branch prediction apparatus having a primary predictor and a secondary predictor that selectively overrides the primary predictor based on the type of branch instruction decoded. A branch target address cache in the primary branch predictor speculatively predicts a branch target address and direction based on an instruction cache fetch address prior to decoding the instruction, and the processor branches to the speculative target address if the speculative direction is predicted taken. Later in the pipeline, decode logic decodes the instruction and determines the branch instruction type, such as whether the branch instruction is a conditional branch, a return instruction, a program counter-relative type branch, an indirect branch, etc. Depending upon the branch type, if the primary and secondary predictions do not match, the processor branches based on the secondary prediction to override the branch taken based on the primary prediction.Type: GrantFiled: May 4, 2001Date of Patent: January 16, 2007Assignee: IP-First, LLCInventors: G. Glenn Henry, Thomas C. McDonald
-
Patent number: 7162588Abstract: Memory pages within a memory subsystem are typically accessed using an off chip memory controller coupled to an external bus. Data elements, in the form of a cache line, propagate along the external bus to the processor. Cache line pre-fetching provides a cache line from the memory subsystem to fulfill the processor request. Unfortunately, when the memory subsystem is being accessed by a fetch operation, a subsequent fetch request cannot access the memory subsystem until the previous transaction has completed. Thus subsequent transactions must wait until the previous transaction is completed. This waiting typically results in processor stall cycles, where the processor is stalled in waiting for the memory subsystem to become available. This is especially evident in multi-processor systems, where the addition of another processor does not cause the processing bandwidth to increase substantially. Especially when the processors are waiting for each other's memory subsystem transactions to complete.Type: GrantFiled: August 23, 2002Date of Patent: January 9, 2007Assignee: Koninklijke Philips Electronics N.V.Inventor: Jan-Willem van de Waerdt
-
Patent number: 7162565Abstract: An improved bridge circuit for connecting a disk drive with an ATA interface to a computer via a USB bus. After the bridge receives the first data from the ATA interface, the bridge makes the assumption that the next read command will probably be for the next sequential data word and the interface issues a read command for the next sequential data word. After an accessing delay, the second data word is received by the bridge. When the bridge does in fact receive the next read command from the host, a check is made to see if the second read command is for the next sequential location from the first read command. If it is, the already fetched data is provided to the host without delay. If it is not, the process is handled as was the first read command.Type: GrantFiled: March 8, 2004Date of Patent: January 9, 2007Assignee: Cypress Semiconductor Corp.Inventors: Stephen Henry Kolokowsky, Mark McCoy
-
Patent number: 7162718Abstract: An asynchronous execution process to allow a compiler or interpreter to recognize code elements that may be executed out of order and to create a light weight thread for execution of the code element. This light weight thread may be executed on another processor in a multiprocessing environment. An “async” keyword is included in a language to indicate that a statement may be executed asynchronously with respect to the other statements at the same nesting level. The “async” keyword may also be used to modify the declaration of a function to indicate that it is safe to run the affected method out of order with other statements in a block. An “async_end” keyword is included in a language to indicate that asynchronous execution of a statement, block of code, or method must be complete before the next statement, block of code, or method may be executed.Type: GrantFiled: December 12, 2000Date of Patent: January 9, 2007Assignee: International Business Machines CorporationInventors: Michael Wayne Brown, Scott E. Garfinkle, Michael A. Paolini, David Mark Wendt
-
Patent number: 7159098Abstract: 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: August 17, 2004Date of Patent: January 2, 2007Assignee: IP-First, LLC.Inventors: G. Glenn Henry, Thomas C. McDonald
-
Patent number: 7155575Abstract: A computer program product determines whether a loop has a high usage count. If the computer program product determines the loop has a high usage count, the computer program product determines whether the loop has an irregularly accessed load. If the loop has an irregularly accessed load, the computer program product inserts pattern recognition code to calculate whether successive iterations of the irregular memory load in the loop have a predictable access pattern. The computer program product implants conditional adaptive prefetch code including a prefetch instruction into the output code.Type: GrantFiled: December 18, 2002Date of Patent: December 26, 2006Assignee: Intel CorporationInventors: Rakesh Krishnaiyer, Wei Li
-
Patent number: 7149840Abstract: An improved USB to ATA bridge circuit that issues a speculative write command upon the completion of an actual write command: The speculative write command assumes that the next write command will write data in a the next sequential data location to that in which data was written by the preceding write command. When the next actual write command is received, the address to which data is to be written is compared to the address used by the speculative write command, if the addresses match, the data is written when the storage device is ready. If the addresses do not match the data transfer is started and immediately stopped.Type: GrantFiled: January 18, 2005Date of Patent: December 12, 2006Assignee: Cypress Semiconductor Corp.Inventor: Stephen Henry Kolokowsky
-
Patent number: 7146489Abstract: An efficient embedded-DRAM processor architecture and associated methods. In one exemplary embodiment, the architecture includes a DRAM array, a set of register files, set of functional units, and a data assembly unit. The data assembly unit includes a set of row-address registers and is responsive to commands to activate and deactivate DRAM rows and to control the movement of data throughout the system. A pipelined data assembly approach allowing the functional units to perform register-to-register operations, and allowing the data assembly unit to perform all load/store operations using wide data busses. Data masking and switching hardware allows individual data words or groups of words to be transferred between the registers and memory. Other aspects of the invention include a memory and logic structure and an associated method to extract data blocks from memory to accelerate, for example, operations related to image compression and decompression.Type: GrantFiled: February 13, 2002Date of Patent: December 5, 2006Assignee: Micron Technology, Inc.Inventor: Eric M. Dowling
-
Patent number: 7146467Abstract: Exemplary systems, methods, and devices employ receiving an operational parameter characteristic of a storage device, and adapting a read cache pre-fetch depth based in part on the operational parameter. An exemplary device includes a read cache memory and a read cache pre-fetch adaptation module operable to generate an operational parameter and vary read cache pre-fetch depth in response to the operational parameter.Type: GrantFiled: April 14, 2003Date of Patent: December 5, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Brian S. Bearden, David K. Umberger, Guillermo Navarro
-
Patent number: 7143267Abstract: A method and multithreaded processor for dynamically reallocating prefetch registers upon the processor switching modes of operation. An execution unit may be coupled to a prefetch engine where the execution unit may be configured to receive prefetch instructions regarding prefetching data. The prefetch engine may comprise a plurality of prefetch registers. The execution unit may further be configured to load the plurality of prefetch registers with information regarding prefetching data obtained from the prefetch instructions. In a single thread mode of operation, the plurality of prefetch registers are allocated to be accessed by either a first or a second thread. In a multithread mode of operation, the plurality of prefetch registers are allocated to be accessed among the first and second threads.Type: GrantFiled: April 28, 2003Date of Patent: November 28, 2006Assignee: International Business Machines CorporationInventors: Eric J. Fluhr, Cathy May, Balaram Sinharoy
-
Patent number: 7137111Abstract: Operations including inserted prefetch operations that correspond to addressing chains may be scheduled above memory access operations that are likely-to-miss, thereby exploiting latency of the “martyred” likely-to-miss operations and improving execution performance of resulting code. More generally, certain pre-executable counterparts of likely-to-stall operations that form dependency chains may be scheduled above operations that are themselves likely-to-stall.Type: GrantFiled: November 28, 2001Date of Patent: November 14, 2006Assignee: Sun Microsystems, Inc.Inventors: Peter C. Damron, Nicolai Kosche
-
Patent number: 7120754Abstract: A synchronous memory device and its method of operation which can be set to operate at a plurality of supported prefetch modes. The prefetch mode may be set by programming a portion of a mode register of the memory device or by setting one or more programmable elements. For read operations, the synchronous memory device internally reads data corresponding to the largest supported prefetch size, and outputs read data corresponding to the current mode. For write operations the synchronous memory accepts write data corresponding to the selected prefetch mode and writes the received data to the array. Data words corresponding to data not received are masked from writing via a write masking circuit.Type: GrantFiled: November 8, 2005Date of Patent: October 10, 2006Assignee: Micron Technology, Inc.Inventors: Kevin J. Ryan, Christopher S. Johnson
-
Patent number: 7117332Abstract: A window-based flash memory storage system and a management and an access method therefor are proposed. The window-based flash memory storage system includes a window-based region and a redundant reserved region; wherein the window-based region is used to store a number of windows, each window being associated with a number of physical blocks. The redundant reserved region includes a dynamic-link area, a window-information area, a dynamic-link information area, and an boot-information area; wherein the dynamic-link area includes a plurality of dynamic allocation blocks, each being allocatable to any window. The window-information area is used to store a specific window-information set that is dedicated to a certain window within a specific range of data storage space. The dynamic-link information area is used to record the status of the allocation of the dynamic allocation blocks to the windows.Type: GrantFiled: July 31, 2003Date of Patent: October 3, 2006Assignee: Solid State System Co., Ltd.Inventors: Chun-Hung Lin, Chih-Hung Wang, Chun-Hao Kuo
-
Patent number: 7103757Abstract: A system, circuit, and method are presented for adjusting a prefetch rate of a prefetch unit from a first rate to a second rate by determining a probability factor associated with a branch instruction. The circuit and method may determine the probability factor based on a type of disparity associated with the branch instruction. The circuit and method may further be adapted to calculate the second rate based on the probability factor. The ability to adjust the prefetch rate of a prefetch unit advantageously decreases the number of memory transactions, thereby decreasing the power consumption of a processing unit.Type: GrantFiled: October 22, 2002Date of Patent: September 5, 2006Assignee: LSI Logic CorporationInventor: Asheesh Kashyap
-
Patent number: 7099995Abstract: A data storage control unit is coupled to one or more host devices and to one or more physical storage units. Data is stored in one of the storage units and, for data integrity, copied to another storage unit. An updated state of the copy process (metadata) is maintained and updated in metadata tracks in a memory of the storage controller and periodically destaged to corresponding metadata tracks of a storage unit. If the copy process is interrupted, such as by a power failure, an error handling routine commences. Track state fields associated with each in-memory metadata track are initialized to an ‘invalid’ state and background staging of metadata tracks from the storage unit to the memory. After a track is staged, the associated track state field is changed to a ‘valid’ state. If a request is received to access a track of copy state data and the track has been staged (as indicated by the state of the associated track state field), the track is accessed.Type: GrantFiled: February 17, 2004Date of Patent: August 29, 2006Assignee: International Business Machines CorporationInventors: James A. Springer, Yu-Cheng Hsu, Gilad Sharaby, Aaron S. Mahar, Angelique R. Budaya
-
Patent number: 7085916Abstract: For use in a processor having an external memory interface, an instruction prefetch mechanism, a method of prefetching instructions and a digital signal processor incorporating the mechanism or the method. In one embodiment, the mechanism includes: (1) a branch predictor that predicts whether a branch is to be taken, (2) prefetch circuitry, coupled to the branch predictor, that prefetches instructions associated with the branch via the external memory interface if the branch is taken and prefetches sequential instructions via the external memory interface if the branch is not taken and (3) a loop recognizer, coupled to the prefetch circuitry, that determines whether a loop is present in fetched instructions and reinstates a validity of instructions in the loop and prevents the prefetch circuitry from prefetching instructions outside of the loop until the loop completes execution.Type: GrantFiled: October 26, 2001Date of Patent: August 1, 2006Assignee: LSI Logic CorporationInventor: Hung T. Nguyen
-
Patent number: 7082516Abstract: In one embodiment, a digital signal processor includes look ahead logic to decrease the number of bubbles inserted in the processing pipeline. The processor receives data containing instructions in a plurality of buffers and decodes the size of a first instruction. The beginning of a second instruction is determined based on the size of the first instruction. The size of the second instruction is decoded and the processor determines whether loading the second instruction will deplete one of the plurality of buffers.Type: GrantFiled: September 28, 2000Date of Patent: July 25, 2006Assignees: Intel Corporation, Analog Devices, Inc.Inventors: Thomas Tomazin, William C. Anderson, Charles P. Roth, Kayla Chalmers, Juan G. Revilla, Ravi P. Singh
-
Patent number: 7082499Abstract: When the cache memory unit reads the last word of a page of the cache memory, the external memory interface reads ahead data of a prescribed number of pages ahead of the relevant page. Thus, data corresponding to the access request to the external main memory is always held in the cache memory. This prevents degradation of parallel processing capability of the data driven type information processing apparatus.Type: GrantFiled: October 3, 2002Date of Patent: July 25, 2006Assignee: Sharp Kabushiki KaishaInventors: Shingo Kamitani, Tsuyoshi Muramatsu
-
Patent number: 7080209Abstract: A processing core using a lock scoreboard mechanism is provided. The lock scoreboard is adapted to manage a load-lock instruction. The load-lock scoreboard includes a plurality of scoreboard entries representing different conditions that must be met before the load-lock instruction can be retired. During execution of the load-lock instruction retirement conditions are speculatively performed, and the scoreboard is updated and checked accordingly. If the scoreboard indicates that one or more retirement conditions are not met, the load-lock instruction is replayed. Otherwise, the load-lock instruction is permitted to retire. Scoreboard management functions routinely update scoreboard contents as retirement conditions are cleared. This enables rapid retirement of load-lock operations.Type: GrantFiled: December 24, 2002Date of Patent: July 18, 2006Assignee: Intel CorporationInventors: Herbert H. Hum, Doug Carmean
-
Patent number: 7080212Abstract: A method, system, and computer program product are disclosed for dynamically determining and adjusting a number of data blocks to be prestaged in a cache included in the storage device. The storage device receives and processes input/output (I/O) requests. Information about the I/O requests and about the processing of the requests by the storage device is accumulated. The information is then used to dynamically adjust a prestaging policy as the storage device receives and processes requests. The prestaging policy defines a current number of data blocks to be prestaged in the cache.Type: GrantFiled: December 29, 2003Date of Patent: July 18, 2006Assignee: Storage Technology CorporationInventors: Shih-Li Hsu, Amar Nath Sinha
-
Patent number: 7065612Abstract: A processor having a cache memory structure which improves an operation speed of the processor and a method of managing cache memory of the processor are provided. The cache memory is divided into a cache memory for normal programs which stores instructions required for running normal programs and a cache memory for exception programs. An instruction register fetches and stores instructions from one of the cache memories according to the type of program currently running. The method includes dividing the cache memory into a cache memory for normal programs and a cache memory for exception programs, storing instructions and/or data for running the normal and exception programs in their respective cache memories, determining a type of a currently running program, fetching instructions from either cache memory according to the type of program currently running, and inputting the fetched instructions to the instruction register.Type: GrantFiled: March 25, 2003Date of Patent: June 20, 2006Inventor: Sung-bae Park
-
Patent number: 7058767Abstract: A method and system for speculatively pre-fetching data from a memory. A memory controller on a data bus “snoops” data requests put on the data bus by a bus control logic. Based on information in the header of the data request, such as transaction type, tag, transaction size, etc., a speculative pre-fetch is made to read data from the memory associated with the memory controller. If the speculative fetch turns out to be correct, then the memory controller makes an assumption that the pre-fetch was too conservative (non-speculative), and a pre-fetch for a next data request is performed at an earlier more speculative time. If the speculative fetch turns out to be incorrect, then the memory controller makes an assumption that the pre-fetch was too speculative (made early), and a pre-fetch for a next data request is performed at a later less speculative time.Type: GrantFiled: April 28, 2003Date of Patent: June 6, 2006Assignee: International Business Machines CorporationInventors: John Steven Dodson, James Stephen Fields, Jr., Sanjeev Ghai, Jeffrey Adam Stuecheli
-
Patent number: 7047399Abstract: A computer system for executing branch instructions and a method of executing branch instructions are described. Two instruction fetchers respectively fetch a sequence of instructions from memory for execution and a sequence of instructions commencing from a target location identified by a set branch instruction in a sequence of instructions being executed. When an effect branch signal is generated, the target instructions are next executed, and the fetcher which was fetching the instructions for execution commences fetching of the target instructions. The effect branch signal is generated separately from the set branch instruction. In another aspect, the effect branch signal is generated on execution of a conditional effect branch instruction, located at the point in the instruction sequence where the branch is to be taken.Type: GrantFiled: April 25, 2001Date of Patent: May 16, 2006Assignee: SGS-Thomson Microelectronics LimitedInventors: Andrew C. Sturges, Nathan M. Sidwell