Generating Prefetch, Look-ahead, Jump, Or Predictive Address Patents (Class 711/213)
  • Patent number: 7533242
    Abstract: A software agent assembles prefetch hint instructions or prefixes defined in an instruction set architecture, the instructions/prefixes conveying prefetch hint information to a processor enabled to execute instructions according to the instruction set architecture. The prefetch hints are directed to control operation of one or more hardware memory prefetcher units included in the processor, providing for increased efficiency in memory prefetching operations. The hints may optionally provide any combination of parameters describing a memory reference traffic pattern to search for, when to begin searching, when to terminate prefetching, and how aggressively to prefetch. Thus the hardware prefetchers are enabled to make improved traffic prediction, providing more accurate results using reduced hardware resources. The hints may include any combination of specific pattern hints (one/two/N-dimensional strides, indirect, and indirect-stride), modifiers including sparse and region, and a prefetch-stop directive.
    Type: Grant
    Filed: April 15, 2006
    Date of Patent: May 12, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Laurent R. Moll, Jorel D. Hartman, Peter N. Glaskowsky, Seungyoon Peter Song, John Gregory Favor
  • Patent number: 7529895
    Abstract: A low latency memory system access is provided in association with a weakly-ordered multiprocessor system. Each processor in the multiprocessor shares resources, and each shared resource has an associated lock within a locking device that provides support for synchronization between the multiple processors in the multiprocessor and the orderly sharing of the resources. A processor only has permission to access a resource when it owns the lock associated with that resource, and an attempt by a processor to own a lock requires only a single load operation, rather than a traditional atomic load followed by store, such that the processor only performs a read operation and the hardware locking device performs a subsequent write operation rather than the processor. A simple perfecting for non-contiguous data structures is also disclosed.
    Type: Grant
    Filed: December 28, 2006
    Date of Patent: May 5, 2009
    Assignee: International Business Machines Corporation
    Inventors: Matthias A. Blumrich, Dong Chen, Paul W. Coteus, Alan G. Gara, Mark E. Giampapa, Philip Heidelberger, Dirk Hoenicke, Martin Ohmacht, Burkhard D. Steinmacher-Burow, Todd E. Takken, Pavlos M. Vranas
  • Patent number: 7519777
    Abstract: Methods, systems and computer program products for concomitant pair per-fetching. Exemplary embodiments include a method for concomitant pair prefetching, the method including detecting a stride pattern, detecting an indirect access pattern to define an access window, prefetching candidates within the defined access window, wherein the prefetching comprises obtaining prefetch addresses from a history table, updating a miss stream window, selecting a candidate of a concomitant pair from the miss stream window, producing an index from the candidate pair, accessing an aging filter, updating the history table and selecting another concomitant pair candidate from the miss stream window.
    Type: Grant
    Filed: June 11, 2008
    Date of Patent: April 14, 2009
    Assignee: International Business Machines Corporation
    Inventors: Kattamuri Ekanadham, Il Park, Pratap C. Pattnaik
  • Patent number: 7512740
    Abstract: A microprocessor coupled to a system memory by a bus includes an instruction decode unit that decodes an instruction that specifies a data stream in the system memory and a stream prefetch priority. The microprocessor also includes a load/store unit that generates load/store requests to transfer data between the system memory and the microprocessor. The microprocessor also includes a stream prefetch unit that generates a plurality of prefetch requests to prefetch the data stream from the system memory into the microprocessor. The prefetch requests specify the stream prefetch priority. The microprocessor also includes a bus interface unit (BIU) that generates transaction requests on the bus to transfer data between the system memory and the microprocessor in response to the load/store requests and the prefetch requests. The BIU prioritizes the bus transaction requests for the prefetch requests relative to the bus transaction requests for the load/store requests based on the stream prefetch priority.
    Type: Grant
    Filed: August 11, 2006
    Date of Patent: March 31, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 7512770
    Abstract: A read unit in a buffering apparatus writes data in a memory apparatus used as a ring buffer. A determination unit determines whether data is consecutively written in the memory apparatus. When it in determined that data in consecutively written, the determination unit, in response to a request for transfer of data from a central processing unit, directs the read unit to read ahead data that follows the data requested to be transferred. In response to a request to read ahead, the read unit reads ahead the data from a recording medium and writes the data thus read ahead in the memory apparatus. In response to the instruction to read ahead, the read unit reads ahead a predetermined amount of data that follows the data requested to be transferred.
    Type: Grant
    Filed: December 1, 2005
    Date of Patent: March 31, 2009
    Assignee: Sony Computer Entertainment, Inc.
    Inventors: Toshiyuki Kurosaki, Dai Sasaki
  • Patent number: 7509459
    Abstract: A microprocessor has a plurality of stream prefetch engines for prefetching a respective data stream from the system memory into the microprocessor cache memory and an instruction decoder that decodes instructions of the microprocessor instruction set. The instruction set includes a stream prefetch instruction that returns an identifier uniquely associating a data stream specified by the instruction with one of the engines. The instruction set also includes an explicit prefetch-triggering load instruction that specifies a stream identifier returned by a previously executed stream prefetch instruction. When the decoder decodes a conventional load instruction it does not prefetch; however, when it decodes an explicit prefetch-triggering load instruction it commences prefetching the specified data stream. In one embodiment, an indicator of the load instruction may explicitly specify non-prefetch-triggering.
    Type: Grant
    Filed: October 13, 2006
    Date of Patent: March 24, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 7506106
    Abstract: A microprocessor has a data stream prefetch unit for processing a data stream prefetch instruction. The instruction specifies a data stream and a speculative stream hit policy indicator. If a load instruction hits in the data stream, then if the load is non-speculative the stream prefetch unit prefetches a portion of the data stream from system memory into cache memory; however, if the load is speculative the stream prefetch unit selectively prefetches a portion of the data stream from the system memory into the cache memory based on the value of the policy indicator. The load instruction is speculative if it is not guaranteed to complete execution, such as if it follows a predicted branch instruction whose outcome has not yet been finally determined to be correct. In one embodiment, the stream prefetch unit performs a similar function for store instructions that hit in the data stream.
    Type: Grant
    Filed: October 13, 2006
    Date of Patent: March 17, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 7496642
    Abstract: Network latencies are reduced by detecting a metadata access call for filesystem metadata contained in a filesystem node of remotely located filesystem. The metadata corresponding to the metadata access call is fetched when the metadata corresponding to the metadata access call is not contained in a local filesystem cache that has a hierarchical structure corresponding to a hierarchical structure of the remotely located filesystem. Metadata related to the metadata corresponding to the metadata access call from the remotely located filesystem is prefetched when the related metadata is not contained in the local filesystem cache. The metadata related to the metadata corresponding to the access call can be contained in a child node or a parent node of the node containing the metadata corresponding to the access call, or the descendants of such nodes.
    Type: Grant
    Filed: September 29, 2004
    Date of Patent: February 24, 2009
    Assignee: International Business Machines Corporation
    Inventors: Binny Sher Gill, Leo Shyh-Wei Luan
  • Patent number: 7493450
    Abstract: Exemplary systems and methods include pre-fetching data in response to a read cache hit. Various exemplary methods include priming a read cache with initial data, and triggering a read pre-fetch operation in response to a read cache hit upon the initial data in the read cache. Another exemplary implementation includes a storage device having a read cache and a trigger module that causes a pre-fetch of data from a mass storage medium in response to a read cache hit upon data in the read cache.
    Type: Grant
    Filed: April 14, 2003
    Date of Patent: February 17, 2009
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Brian S. Bearden
  • Patent number: 7490210
    Abstract: A system and method are described for a memory management processor which, using a table of reference addresses embedded in the object code, can open the appropriate memory pages to expedite the retrieval of information from memory referenced by instructions in the execution pipeline. A suitable compiler parses the source code and collects references to branch addresses, calls to other routines, or data references, and creates reference tables listing the addresses for these references at the beginning of each routine. These tables are received by the memory management processor as the instructions of the routine are beginning to be loaded into the execution pipeline, so that the memory management processor can begin opening memory pages where the referenced information is stored. Opening the memory pages where the referenced information is located before the instructions reach the instruction processor helps lessen memory latency delays which can greatly impede processing performance.
    Type: Grant
    Filed: September 30, 2005
    Date of Patent: February 10, 2009
    Assignee: Micron Technology, Inc.
    Inventor: Dean A. Klein
  • Patent number: 7484041
    Abstract: Systems and methods for improving the performance of a multiprocessor system by enabling a first processor to initiate the retrieval of data and the storage of the data in the cache memory of a second processor. One embodiment comprises a system having a plurality of processors coupled to a bus, where each processor has a corresponding cache memory. The processors are configured so that a first one of the processors can issue a preload command directing a target processor to load data into the target processor's cache memory. The preload command may be issued in response to a preload instruction in program code, or in response to an event. The first processor may include an explicit identifier of the target processor in the preload command, or the selection of the target processor may be left to another agent, such as an arbitrator coupled to the bus.
    Type: Grant
    Filed: April 4, 2005
    Date of Patent: January 27, 2009
    Assignee: Kabushiki Kaisha Toshiba
    Inventor: Takashi Yoshikawa
  • Patent number: 7484080
    Abstract: One embodiment of the present invention provides a system that facilitates deferring execution of instructions with unresolved data dependencies as they are issued for execution in program order. During a normal execution mode, the system issues instructions for execution in program order. Upon encountering an unresolved data dependency during execution of an instruction, the system generates a checkpoint that can subsequently be used to return execution of the program to the point of the instruction. Next, the system executes the instruction and subsequent instructions in an execute-ahead mode, wherein instructions that cannot be executed because of an unresolved data dependency are deferred, and wherein other non-deferred instructions are executed in program order. Upon encountering a store during the execute-ahead mode, the system determines if the store buffer is full. If so, the system prefetches a cache line for the store, and defers execution of the store.
    Type: Grant
    Filed: April 11, 2005
    Date of Patent: January 27, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay, Paul Caprioli
  • Patent number: 7483430
    Abstract: A method for performing a lookup to support forwarding of IP packets in a router comprising a network processor and a route processor is disclosed. The method includes receiving a packet having an IP address containing a network prefix and dividing available network prefixes into groups. The longest prefix is identified and a lookup is performed using hash tables. The packet is forwarded if a match is found.
    Type: Grant
    Filed: February 28, 2003
    Date of Patent: January 27, 2009
    Assignee: Cisco Technology, Inc.
    Inventors: Felix Yuan, Jian Li
  • Patent number: 7480769
    Abstract: A microprocessor coupled to a system memory includes a load request signal that requests data be loaded from the system memory into the microprocessor in response to a load instruction. The load request signal includes a load virtual page address. The microprocessor also includes a prefetch request signal that requests a cache line be prefetched from the system memory into the microprocessor in response to a prefetch instruction. The prefetch request signal includes a prefetch virtual page address.
    Type: Grant
    Filed: August 11, 2006
    Date of Patent: January 20, 2009
    Assignee: MIPS Technologies, Inc.
    Inventors: Keith E. Diefendorff, Thomas A. Petersen
  • Patent number: 7475167
    Abstract: Input/Output (I/O) protocol operations such as iSCSI protocol operations may be selectively offloaded to an I/O protocol offload device, or retained by a host driver software. In one embodiment, iSCSI data transfer functions are offloaded to an offload device while session and connection establishing and maintenance operations are retained by host driver software. Other features are described and claimed.
    Type: Grant
    Filed: April 15, 2005
    Date of Patent: January 6, 2009
    Assignee: Intel Corporation
    Inventors: Mark W. Wunderlich, Hemal V. Shah, Anshuman Thakur, Daniel A. Manseau
  • Patent number: 7472262
    Abstract: 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 based on calculated entropy values; and prefetching memory objects associated with the at least one memory profile corresponding to the at least one next probable state.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: December 30, 2008
    Assignee: Intel Corporation
    Inventor: Mingqiu Sun
  • Patent number: 7464250
    Abstract: The invention discloses a method for loading data from a disk. The method may comprise comparing a current sequence of disk requests to data indicative of a previous disk request sequence. Responsive to detecting a match between the current disk sequence and the previous disk I/O sequence, a copy of data blocks accessed during the current disk sequence may be stored in a contiguous portion of the disk. Responsive to a subsequent request for data in the disk sequence, the request may be mapped to and serviced from the sequential portion of the disk: The continuous portion of the disk to which the data is copied may be on a different partition of the disk than a disk partition on which the original data is stored. A sequence of disk accesses may be recorded. Responsive to retrieving data from the continuous portion, additional data from the contiguous portion of the disk may be prefetched and may be cached in a buffer.
    Type: Grant
    Filed: March 11, 2004
    Date of Patent: December 9, 2008
    Assignee: International Business Machines Corporation
    Inventors: Richard Alan Dayan, James Franklin Macon, Jr.
  • Patent number: 7464230
    Abstract: A method for memory controlling is disclosed. It includes an embedded address generator and a controlling scheme of burst terminates burst, which could erase the latency caused by bus interface during the access of non-continuous addresses. Moreover, it includes a controlling scheme of anticipative row activating, which could reduce the latency across different rows of memory by data access. The method could improve the access efficiency and power consumption of memory.
    Type: Grant
    Filed: September 8, 2006
    Date of Patent: December 9, 2008
    Inventors: Jiun-In Guo, Chih-Ta Chien, Chia-Jui Huang
  • Publication number: 20080301399
    Abstract: The efficient performance of prefetching of data prior to the reading of the data by a program. A prefetching apparatus, for prefetching data from a file to a buffer before the data is read by a program, includes: a history recorder, for recording a history for a plurality of data readings issued by the program while performing data reading; a prefetching generator, for generating a plurality of prefetchings that correspond to the plurality of data readings recorded in the history; a prefetching process determination unit, for determining, based on the history, the performance order for the plurality of prefetchings; and a prefetching unit, for performing, when following the determination of the performance order the program is executed, the plurality of prefetchings in the performance order.
    Type: Application
    Filed: April 1, 2008
    Publication date: December 4, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Toshiaki Yasue, Hideaki Komatsu
  • Patent number: 7461205
    Abstract: Mechanisms for performing useful computations during a software cache reload operation are provided. With the illustrative embodiments, in order to perform software caching, a compiler takes original source code, and while compiling the source code, inserts explicit cache lookup instructions into appropriate portions of the source code where cacheable variables are referenced. In addition, the compiler inserts a cache miss handler routine that is used to branch execution of the code to a cache miss handler if the cache lookup instructions result in a cache miss. The cache miss handler, prior to performing a wait operation for waiting for the data to be retrieved from the backing store, branches execution to an independent subroutine identified by a compiler. The independent subroutine is executed while the data is being retrieved from the backing store such that useful work is performed.
    Type: Grant
    Filed: June 1, 2006
    Date of Patent: December 2, 2008
    Assignee: International Business Machines Corporation
    Inventors: John Kevin Patrick O'Brien, Kathryn O'Brien
  • Patent number: 7444494
    Abstract: According to a method of data processing, a predictor is maintained that indicates a historical scope of broadcast for one or more previous operations transmitted on an interconnect of a data processing system. A scope of broadcast of a subsequent operation is predictively selected by reference to the predictor.
    Type: Grant
    Filed: May 31, 2005
    Date of Patent: October 28, 2008
    Assignee: International Business Machines Corporation
    Inventors: Benjiman L. Goodman, Guy L. Guthrie, William J. Starke, Jeffrey A. Stuecheli, Derek E. Williams
  • Patent number: 7444471
    Abstract: A method and system for using external storage to amortize CPU cycle utilization, wherein translated instructions are stored in a storage medium and subsequently accessed on a subsequent execution of a non-native application in order to amortize CPU cycles used in generating the translated instructions.
    Type: Grant
    Filed: December 30, 2002
    Date of Patent: October 28, 2008
    Assignee: Transmeta Corporation
    Inventors: Brian O'Clair, Dean Gaudet
  • Patent number: 7434004
    Abstract: Predicting prefetch data sources for runahead execution triggering read operations eliminates the latency penalties of missing read operations that typically are not addressed by runahead execution mechanisms. Read operations that most likely trigger runahead execution are identified. The code unit that includes those triggering read operations is modified so that the code unit branches to a prefetch predictor. The prefetch predictor observes sequence patterns of data sources of triggering read operations and develops prefetch predictions based on the observed data source sequence patterns. After a prefetch prediction gains reliability, the prefetch predictor supplies a predicted data source to a prefetcher coincident with triggering of runahead execution.
    Type: Grant
    Filed: June 17, 2004
    Date of Patent: October 7, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Lawrence A. Spracklen, Santosh G. Abraham, Stevan Vlaovic, Darryl J. Gove
  • Patent number: 7430650
    Abstract: Cache prefetching algorithm uses previously requested address and data patterns to predict future data needs and prefetch such data from memory into cache. A requested address is compared to previously requested addresses and returned data to compute a set of increments, and the set of increments is added to the currently requested address and returned data to generate a set of prefetch candidates. Weight functions are used to prioritize prefetch candidates. The prefetching method requires no changes to application code or operation system (OS) and is transparent to the compiler and the processor. The prefetching method comprises a parallel algorithm well-suited to implementation on an application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA), or to integration into a processor.
    Type: Grant
    Filed: June 13, 2005
    Date of Patent: September 30, 2008
    Inventor: Richard A. Ross
  • Patent number: 7428627
    Abstract: A multi-mode predictor for a processor having a plurality of prediction modes is disclosed. The prediction modes are used to predict non-binary values. The predictor is a multi-mode predictor comprising a per-IP (“PIP”) table and a next value table. The PIP table includes a plurality of PIP information fields and the next value table includes a plurality of fields. The multi-mode predictor also includes a plurality of prediction modes. The processor includes a set of instructions that index the PIP table to provide a valid signal. The processor also includes a set of predicted values for the set of instructions. The set of predicted values is stored in the PIP table and the next value table. According to the valid signal a hit/miss condition in the next value table, a predicted value is selected from the PIP table or the next value table.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: September 23, 2008
    Assignee: Intel Corporation
    Inventors: Stephan J. Jourdan, Michael Bekerman, Ronny Ronen, Lihu Rappoport
  • Patent number: 7424578
    Abstract: A compiler apparatus for a computer system capable of improving the hit rate of a cache memory, which includes a prefetch target extraction device, a thread activation process insertion device, and a thread process creation device. The compiler apparatus creates threads for performing prefetch and prepurge. Prefetch and prepurge threads created by this compiler apparatus perform prefetch and prepurge in parallel with the operation of the main program, by taking into consideration program priorities and the usage ratio of the cache memory.
    Type: Grant
    Filed: July 8, 2004
    Date of Patent: September 9, 2008
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Kiyoshi Nakashima, Taketo Heishi, Shohei Michimoto
  • Patent number: 7421694
    Abstract: Techniques for minimizing coprocessor “starvation,” and for effectively scheduling processing in a coprocessor for greater efficiency and power. A run list is provided allowing a coprocessor to switch from one task to the next, without waiting for CPU intervention. A method called “surface faulting” allows a coprocessor to fault at the beginning of a large task rather than somewhere in the middle of the task. DMA control instructions, namely a “fence,” a “trap” and a “enable/disable context switching,” can be inserted into a processing stream to cause a coprocessor to perform tasks that enhance coprocessor efficiency and power. These instructions can also be used to build high-level synchronization objects. Finally, a “flip” technique is described that can switch a base reference for a display from one location to another, thereby changing the entire display surface.
    Type: Grant
    Filed: January 22, 2004
    Date of Patent: September 2, 2008
    Assignee: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Patent number: 7406581
    Abstract: A method and system for validating speculative load operations. The system identifies speculative load operations that might be executed in a code sequence and after translating the virtual address of the speculative load to a physical address, a speculative load control unit is used to define a plurality of memory regions and has means for checking whether the physical addresses lie within at least one of said defined memory regions. In this way, the control unit allows the mapping of large physical page size to RAM devices and the extra address space is filtered off by the control unit so that speculative loads are not carried out in unknown regions.
    Type: Grant
    Filed: April 23, 2004
    Date of Patent: July 29, 2008
    Assignee: STMicroelectronics Limited
    Inventor: Trevor Southwell
  • Patent number: 7406569
    Abstract: Typical cache architecture provides a single cache way prediction memory for use in predicting a cache way for both sequential and non-sequential instructions contained within a program stream. Unfortunately, one of the drawbacks of the prior art cache way prediction scheme lies in its efficiency when dealing with instructions that vary the PC in a non-sequential manner, such as branch instructions including jump instructions. To facilitate caching of non-sequential instructions an additional cache way prediction memory is provided to deal with the non-sequential instructions. Thus during program execution a decision circuit determines whether to use a sequential cache way prediction array or a non sequential cache way prediction array in dependence upon the type of instruction. Advantageously the improved cache way prediction scheme provides an increased cache hit percentage when used with non-sequential instructions.
    Type: Grant
    Filed: August 12, 2002
    Date of Patent: July 29, 2008
    Assignee: NXP B.V.
    Inventor: Jan-Willem van de Waerdt
  • Patent number: 7395406
    Abstract: A system and method of improved handling of large pages in a virtual memory system. A data memory management unit (DMMU) detects sequential access of a first sub-page and a second sub-page out of a set of sub-pages that comprise a same large page. Then, the DMMU receives a request for the first sub-page and in response to such a request, the DMMU instructs a pre-fetch engine to pre-fetch at least the second sub-page if the number of detected sequential accesses equals or exceeds a predetermined value.
    Type: Grant
    Filed: May 12, 2005
    Date of Patent: July 1, 2008
    Assignee: International Business Machines Corporation
    Inventors: Vaijayanthimala K. Anand, Sandra K. Johnson
  • Publication number: 20080155226
    Abstract: A prefetch mechanism using prefetch attributes is disclosed. In one aspect, an explicit request for data stored in a memory is provided, and a prefetch attribute in a page table entry associated with the explicit request is examined to determine whether to provide one or more prefetch requests based on the prefetch attribute. Another aspect includes determining dynamic prefetch attributes for use in prefetching data, in which prefetch attributes are adjusted based on memory access requests that target next sequential blocks of memory relative to the most recent previous access in a page of memory.
    Type: Application
    Filed: March 11, 2008
    Publication date: June 26, 2008
    Applicant: International Business Machines Corporation
    Inventors: Gordon Taylor DAVIS, Thomas B. Genduso, Harold F. Kossman, Robert W. Todd
  • Patent number: 7389385
    Abstract: Methods and apparatus to insert prefetch instructions based on garbage collector analysis and compiler analysis are disclosed. In an example method, one or more batches of samples associated with cache misses from a performance monitoring unit in a processor system are received. One or more samples from the one or more batches of samples based on delinquent information are selected. A performance impact indicator associated with the one or more samples is generated. Based on the performance indicator, at least one of a garbage collector analysis and a compiler analysis is initiated to identify one or more delinquent paths. Based on the at least one of the garbage collector analysis and the compiler analysis, one or more prefetch points to insert prefetch instructions are identified.
    Type: Grant
    Filed: December 19, 2003
    Date of Patent: June 17, 2008
    Assignee: Intel Corporation
    Inventors: Mauricio J. Serrano, Sreenivas Subramoney, Richard L. Hudson, Ali-Reza Adl-Tabatabai
  • Patent number: 7386675
    Abstract: Systems and methods using an excitement protocol enable prediction of which blocks of a resource to prefetch and store in memory. The system maintains a set of excitement values corresponding to the resource being accessed. The system also maintains a threshold. As blocks of the resource are requested, the system updates the set of excitement values. The system compares the excitement level to the threshold to determine whether to prefetch the corresponding resource block.
    Type: Grant
    Filed: October 21, 2005
    Date of Patent: June 10, 2008
    Assignee: Isilon Systems, Inc.
    Inventor: Neal T. Fachan
  • Patent number: 7386701
    Abstract: A processor capable of executing prefetching instructions containing hint fields is provided. The hint fields contain a first portion which enables the selection of a destination indicator for refill operations, and a second portion which identifies a destination.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: June 10, 2008
    Assignee: MIPS Technology, Inc.
    Inventor: Todd C. Mowry
  • Patent number: 7383417
    Abstract: The efficient performance of prefetching of data prior to the reading of the data by a program. A prefetching apparatus, for prefetching data from a file to a buffer before the data is read by a program, includes: a history recorder, for recording a history for a plurality of data readings issued by the program while performing data reading; a prefetching generator, for generating a plurality of prefetchings that correspond to the plurality of data readings recorded in the history; a prefetching process determination unit, for determining, based on the history, the performance order for the plurality of prefetchings; and a prefetching unit, for performing, when following the determination of the performance order the program is executed, the plurality of prefetchings in the performance order.
    Type: Grant
    Filed: March 15, 2006
    Date of Patent: June 3, 2008
    Assignee: International Business Machines Corporation
    Inventors: Toshiaki Yasue, Hideaki Komatsu
  • Patent number: 7380062
    Abstract: A method and system for maintaining a best-case demand redispatch of an instruction to allow for maximizing the time a rejected thread may execute in lookahead execution mode, while maintaining the smallest L1 cache miss penalty supported by the memory subsystem. In response to a demand miss, a load/store unit sends a fetch request to the next level cache. The cache line of the demand miss is examined to identify the critical sector. Once the critical sector is identified, a best-case data return time is determined based on the fastest time the next level cache is able to return the critical sector of the cache line. The load/store unit then sends a speculative warning to the dispatch unit to coincide with the best-case data return, wherein the speculative warning prepares the dispatch unit to resend the instruction for execution as soon as data is available to the processor core.
    Type: Grant
    Filed: February 11, 2005
    Date of Patent: May 27, 2008
    Assignee: International Business Machines Corporation
    Inventors: Scott Bruce Frommer, Sheldon B. Levenstein, Bruce Joseph Ronchetti, Anthony Saporito
  • Patent number: 7380066
    Abstract: In a microprocessor having a load/store unit and prefetch hardware, the prefetch hardware includes a prefetch queue containing entries indicative of allocated data streams. A prefetch engine receives an address associated with a store instruction executed by the load/store unit. The prefetch engine determines whether to allocate an entry in the prefetch queue corresponding to the store instruction by comparing entries in the queue to a window of addresses encompassing multiple cache blocks, where the window of addresses is derived from the received address. The prefetch engine compares entries in the prefetch queue to a window of 2M contiguous cache blocks. The prefetch engine suppresses allocation of a new entry when any entry in the prefetch queue is within the address window. The prefetch engine further suppresses allocation of a new entry when the data address of the store instruction is equal to an address in a border area of the address window.
    Type: Grant
    Filed: February 10, 2005
    Date of Patent: May 27, 2008
    Assignee: International Business Machines Corporation
    Inventors: John Barry Griswell, Jr., Hung Qui Le, Francis Patrick O'Connell, William J. Starke, Jeffrey Adam Stuecheli, Albert Thomas Williams
  • Patent number: 7373478
    Abstract: In an information processing apparatus (10) that includes a cache memory (560) formed from at least one hierarchy, and a pre-fetch command that speculatively transfers data or a command from a main storage (30) to the cache memory, a cache controller (510) provides control to execute the pre-fetch command such that a virtual address is converted to a physical address using a conversion table, and the virtual address and the physical address are stored as a pair if the conversion succeeds.
    Type: Grant
    Filed: November 12, 2004
    Date of Patent: May 13, 2008
    Assignee: Fujitsu Limited
    Inventor: Iwao Yamazaki
  • Patent number: 7366882
    Abstract: A processor is provided with a address calculation unit so as to generate addresses for elements of object oriented data structures in one processor clock cycle.
    Type: Grant
    Filed: May 10, 2002
    Date of Patent: April 29, 2008
    Inventors: Zohair Sahraoui, Gary Ciambella
  • Patent number: 7360058
    Abstract: Method, system and computer program product for generating effective addresses in a data processing system. A method, in a data processing system, for generating an effective address includes generating a first portion of the effective address by calculating a first plurality of effective address bits of the effective address, and generating a second portion of the effective address by guessing a second plurality of effective address bits of the effective address. By intelligently guessing a plurality of the effective address bits that form the effective address, the effective address can be generated and sent to a translation unit more quickly than in a system in which all the effective address bits of the effective address are calculated. The method and system is particularly suitable for generating effective addresses in a CAM-based effective address translation design in a multi-threaded environment.
    Type: Grant
    Filed: February 9, 2005
    Date of Patent: April 15, 2008
    Assignee: International Business Machines Corporation
    Inventors: Rachel Marie Flood, Scott Bruce Frommer, David Allen Hrusecky, Sheldon B. Levenstein, Michael Thomas Vaden
  • Patent number: 7353339
    Abstract: Provided are techniques for cache management. An incoming request to access a first data block is received. A probability of how likely a second data block may be accessed based on the access of the first data block is determined. Whether the probability exceeds a read ahead threshold is determined. The second data block is prefetched in response to determining that the probability exceeds the read ahead threshold.
    Type: Grant
    Filed: December 24, 2003
    Date of Patent: April 1, 2008
    Assignee: Intel Corporation
    Inventors: Eshwari P. Komarla, Vincent J. Zimmer
  • Patent number: 7343481
    Abstract: 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 for 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: Grant
    Filed: March 19, 2003
    Date of Patent: March 11, 2008
    Assignee: ARM Limited
    Inventor: David James Williamson
  • Patent number: 7340584
    Abstract: A combination of circuits for use in a memory device is comprised of a decode circuit responsive to a first portion of address information for identifying a word to be read or written. The decode circuit is further responsive to a second portion of the address information for identifying an order in which one or more portions of the identified word are to be read or written. An address sequencer routes at least one bit of the address information. A sequencer circuit is responsive to the address sequencer for ordering the plurality of data bits within each portion of the identified word.
    Type: Grant
    Filed: April 20, 2006
    Date of Patent: March 4, 2008
    Assignee: Micron Technology, Inc.
    Inventor: Jeffery W. Janzen
  • Patent number: 7334088
    Abstract: A computer system and a method for enhancing the cache prefetch behavior. A computer system including a processor, a main memory, a prefetch controller, a cache memory, a prefetch buffer, and a main memory, wherein each page in the main memory has associated with it a tag, which is used for controling the prefetching of a variable subset of lines from this page as well as lines from at least one other page. And, coupled to the processor is a prefetch controller, wherein the prefetch controller responds to the processor determining a fault (or miss) occurred to a line of data by fetching a corresponding line of data with the corresponding tag, with the corresponding tag to be stored in the prefetch buffer, and sending the corresponding line of data to the cache memory.
    Type: Grant
    Filed: December 20, 2002
    Date of Patent: February 19, 2008
    Assignee: International Business Machines Corporation
    Inventor: Peter Franaszek
  • Patent number: 7318142
    Abstract: A system and method for dynamically altering a Virtual Memory Manager (VMM) Sequential-Access Read Ahead settings based upon current system memory conditions is provided. Normal VMM operations are performed using the Sequential-Access Read Ahead values set by the user. When low memory is detected, the system either turns off Sequential-Access Read Ahead operations or decreases the maximum page ahead (maxpgahead) value based upon whether the amount of free space is simply low or has reached a critically low level. The altered VMM Sequential-Access Read Ahead state remains in effect until enough free space is available so that normal VMM Sequential-Access Read Ahead operations can be performed (at which point the altered Sequential-Access Read Ahead values are reset to their original levels).
    Type: Grant
    Filed: August 8, 2006
    Date of Patent: January 8, 2008
    Assignee: International Business Machines Corporation
    Inventors: Jos Manuel Accapadi, Andrew Dunshea, Li Li, Grover Herbert Neuman, Mysore Sathyanarayana Srinivas, David Alan Hepkin
  • Patent number: 7313670
    Abstract: A value of the number of prefetch words is preset by a master device 50 in a number of prefetch words setting section 14 of a slave device 10. The number of prefetch words refers to the number of data units sequentially receivable by the master device 50 at a time from the slave device 10. When the slave device 10 receives a read transfer request from the master device 50, a prefetch control section 13 reads from a memory 15 contiguous data units having a quantity equal to the value of the number of prefetch words, and then writes the contiguous data units into a data buffer 12. A bus interface 11 transmits the contiguous data units stored in the data buffer 12 to the master device 50.
    Type: Grant
    Filed: March 8, 2005
    Date of Patent: December 25, 2007
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventor: Kenji Matsushita
  • Publication number: 20070276984
    Abstract: Methods and systems for optimizing storage of data items in a memory of an radio frequency identification tag (RFID) are provided. The data structure for optimized storage includes a packed object having a length section including an indication of a number of identifiers in the packed object, an identifier section including a directory of indices representing an identifier for each data item contained within the packed object and a data section encoding a data portion associated with each data item included in the data section.
    Type: Application
    Filed: May 29, 2007
    Publication date: November 29, 2007
    Applicant: Symbol Technologies, Inc.
    Inventor: Frederick Schuessler
  • Patent number: 7296051
    Abstract: Techniques for predictive predownload of templates with delta caching are used to substantially minimize the time needed to send objects from a server to a client. A template builder generates templates for each web page. A prediction engine maintains a prediction map, responsive to web pages and other objects, the objects including the templates for web pages. The prediction engine selects objects likely to be requested by the client making the particular request, such as a next page or an object referenced by a page. A delta encoder for a page determines a delta between a current version of that page, and a template for that page, and encodes the page for delivery to the client using template information and delta information. The client is able to present the web page in response to the template information (which is likely already present at the client) and the delta information.
    Type: Grant
    Filed: February 19, 2002
    Date of Patent: November 13, 2007
    Assignee: Digital River, Inc.
    Inventor: Stephane Kasriel
  • Patent number: 7296140
    Abstract: 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: Grant
    Filed: January 12, 2006
    Date of Patent: November 13, 2007
    Assignee: Intel Corporation
    Inventors: Eric A. Sprangle, Anwar Q. Rohillah
  • Patent number: 7290253
    Abstract: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the return address after any IL call to a subroutine at a target entry address P, the corresponding OL return address is stored in an array at a location determined by an index calculated as a function of P. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the OL return address was previously stored. A confirm instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site, and a back-up routine is included to handle the cases of incorrect call sites.
    Type: Grant
    Filed: September 30, 2003
    Date of Patent: October 30, 2007
    Assignee: VMWare, Inc.
    Inventor: Ole Agesen