Generating Prefetch, Look-ahead, Jump, Or Predictive Address Patents (Class 711/213)
  • Patent number: 7010626
    Abstract: A method and an apparatus are provided for prefetching data from a system memory to a cache for a direct memory access (DMA) mechanism in a computer system. A DMA mechanism is set up for a processor. A load access pattern of the DMA mechanism is detected. At least one potential load of data is predicted based on the load access pattern. In response to the prediction, the data is prefetched from a system memory to a cache before a DMA command requests the data.
    Type: Grant
    Filed: February 14, 2005
    Date of Patent: March 7, 2006
    Assignee: International Business Machines Corporation
    Inventor: James Allan Kahle
  • Patent number: 7000077
    Abstract: A system including a data requester and a storage system. The storage system determines which prefetch data to include with demand data, without the data requester specifying the prefetch data, and provides information enabling the data requestor to discern the demand data from the prefetch data. The data requestor can be a disk drive driver which copies the demand data in fulfilling an operating system request, and then caches the prefetch data. The storage system can be a disk drive.
    Type: Grant
    Filed: March 14, 2002
    Date of Patent: February 14, 2006
    Assignee: Intel Corporation
    Inventors: Knut S. Grimsrud, Amber D. Huffman
  • Patent number: 6993633
    Abstract: A cache data control system and method for a computer system in which in a memory read processing, a coherent controller issues an advanced speculative read request for (speculatively) reading data from a cache data section in advance to a cache data controller, before reading a cache tag from a cache tag section and conducting cache hit check. If a cache hit has occurred, the cache data controller returns the data subjected to speculative reading as response data, at the time when the cache data controller has received a read request issued by the coherent controller.
    Type: Grant
    Filed: July 28, 2000
    Date of Patent: January 31, 2006
    Assignee: Hitachi, Ltd.
    Inventors: Tadayuki Sakakibara, Isao Ohara, Hideya Akashi, Yuji Tsushima, Satoshi Muraoka
  • Patent number: 6986018
    Abstract: A cache server includes a media serving engine that is capable of distributing media content. A cache engine is coupled to the media serving engine and capable of caching media content. A set of cache policies is accessible by the cache engine to define the operation of the cache engine. The cache server can be configured to operate as either a cache server or an origin server. The cache server also includes a data communication interface coupled to the cache engine and the media serving engine to allow the cache engine to receive media content across a network and to allow the media serving engine to distribute media content across the network. The cache policies include policies for distributing media content from the media server, policies for handling cache misses, and policies for prefetching media content.
    Type: Grant
    Filed: June 26, 2001
    Date of Patent: January 10, 2006
    Assignee: Microsoft Corporation
    Inventors: Bret P. O'Rourke, Dawson F. Dean, Chih-Kan Wang, Mark D. Van Antwerp, David J. Roth, Chadd B. Knowlton
  • Patent number: 6983356
    Abstract: A method of prefetching from a memory device includes determining a prefetch buffer hit rate (PBHR) and a memory bandwidth utilization (MBU) rate. Prefetches are inserted aggressively if the memory bandwidth utilization (MBU) rate is above a MBU threshold level and the prefetch buffer hit rate (PBHR) is above a PBHR threshold level. Prefetches are inserted conservatively if the memory bandwidth utilization (MBU) rate is above the MBU threshold level and the prefetch buffer hit rate (PBHR) is below the PBHR threshold level.
    Type: Grant
    Filed: December 19, 2002
    Date of Patent: January 3, 2006
    Assignee: Intel Corporation
    Inventors: Hemant G. Rotithor, Randy B. Osborne, Donald W. McCauley
  • Patent number: 6981126
    Abstract: A system is described which uses a burst access memory and a memory controller to anticipate the memory address to be used in future data read operations as requested by a microprocessor. Either the memory controller or the memory device initiates a burst read operation starting at a memory address generated thereby. The microprocessor can, therefore, wait to initiate a data read without suffering a time delay.
    Type: Grant
    Filed: July 8, 2003
    Date of Patent: December 27, 2005
    Assignee: Micron Technology, Inc.
    Inventor: Greg A. Blodgett
  • Patent number: 6981017
    Abstract: The invention provides a method for predicting which network objects are likely to be requested by a web user from a web server, such as that used in conjunction with an internetworking environment. A request made by a web user for a web object is parsed and dynamic values contained therein normalized. A prediction is made based on the normalized request, statistical measures, and other factors about what other web objects the web user is likely to request. The predictive information is then made available to the web server and the predicted net objects are pre-downloaded to the Web client. A pre-download statistics server may be used to record and provide statistics to assist in the prediction process. Examples described herein relate to web pages, but the invention is broadly applicable to many different types of requests for information (such as, for example, database queries and other libraries of information.
    Type: Grant
    Filed: December 11, 2000
    Date of Patent: December 27, 2005
    Assignee: Digital River, Inc.
    Inventors: Stephane Kasriel, Xavier Casanova, Walter Mann
  • Patent number: 6965983
    Abstract: A 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 a branch, then the ARC sets the next address of the PFA to be sequentially after a predicted branch address, and simultaneously sets the next address of the IFA to be the predicted branch address.
    Type: Grant
    Filed: February 16, 2003
    Date of Patent: November 15, 2005
    Assignee: Faraday Technology Corp.
    Inventor: Hung-Yu Lin
  • Patent number: 6963954
    Abstract: Address based prefetch logic varies prefetching according to address values in read requests. The address based prefetch logic can vary how much data is initially read into a prefetch buffer or when a prefetch buffer is refilled to an initial prefetch amount. One advantage of the address based prefetch logic is that prefetching and prefetch buffer refill rates are tuned for particular application. This is important since the system controller ordinarily does not know how much data the master is requesting beyond the first data phase. The requested read address is used as a hint to determine how much prefetching needs to occur. Over prefetching wastes memory bandwidth, and potentially adds latency to other masters sharing common busses. Under prefetching may cause the system controller that is acting as a PCI target to terminate the master's read request, thus wasting PCI bandwidth, adding latency.
    Type: Grant
    Filed: September 19, 2001
    Date of Patent: November 8, 2005
    Assignee: Cisco Technology, Inc.
    Inventors: Eric Trehus, Kuan-Yuh Ko
  • Patent number: 6961837
    Abstract: An end of a queue or a page-crossing within a queue is detected. A virtual memory address for the head of the queue or for the next queue page is pre-translated into a physical memory address while the last entry in the queue or in the current queue page is being serviced.
    Type: Grant
    Filed: March 25, 2003
    Date of Patent: November 1, 2005
    Assignee: Intel Corporation
    Inventors: Ken C. Haren, Lee Albion, Brian M. Leitner, Dominic J. Gasbarro
  • Patent number: 6961823
    Abstract: An apparatus and method for prefetching cache data in response to data requests. The prefetching uses the memory addresses of requested data to search for other data, from a related address, in a cache. This, or other data, may then be prefetched based on the result of the search.
    Type: Grant
    Filed: July 29, 2003
    Date of Patent: November 1, 2005
    Assignee: Intel Corporation
    Inventors: Herbert Hing-Jing Hum, Zohar Bogin
  • Patent number: 6959374
    Abstract: A system including a memory controller conf figured to perform pre-fetch operations including dynamic pre-fetch control. The system includes a memory coupled to a memory controller. The memory controller may be configured to fetch data from the memory in response to memory read requests. Further, the memory controller may be configured to dynamically adjust pre-fetching of data from the system memory dependent upon a bandwidth utilization of the memory.
    Type: Grant
    Filed: January 29, 2003
    Date of Patent: October 25, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Jurgen Schulz
  • Patent number: 6957304
    Abstract: A method and apparatus are described for protecting cache lines allocated to a cache by a run-ahead prefetcher from premature eviction, preventing thrashing. The invention also prevents premature eviction of cache lines still in use, such as lines allocated by the run-ahead prefetcher but not yet referenced by normal execution. A protection bit indicates whether its associated cache line has protected status in the cache or whether it may be evicted.
    Type: Grant
    Filed: December 20, 2000
    Date of Patent: October 18, 2005
    Assignee: Intel Corporation
    Inventor: Christopher B. Wilkerson
  • Patent number: 6954836
    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: July 11, 2002
    Date of Patent: October 11, 2005
    Assignee: Micron Technology, Inc.
    Inventor: Dean A. Klein
  • Patent number: 6951015
    Abstract: Method and apparatus for inserting prefetch instructions in an executable computer program. Profile data are generated for executed load instructions and store instructions. The profile data include instruction addresses, target addresses, data loaded and stored, and execution counts. From the profile data, recurring patterns of instructions resulting in cache-miss conditions are identified. Prefetch instructions are inserted prior to the instructions that result in cache-miss conditions for patterns of instructions recurring more than a selected frequency.
    Type: Grant
    Filed: May 30, 2002
    Date of Patent: September 27, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Carol L. Thompson
  • Patent number: 6941545
    Abstract: A computer. An instruction pipeline and memory access unit execute instructions in a logical address space of a memory of the computer. An address translation circuit translates address references generated by the program from the program's logical address space to the computer's physical address space. Profile circuitry is cooperatively interconnected with the instruction pipeline and configured to detect, without compiler assistance for execution profiling, occurrence of profilable events occurring in the instruction pipeline, and is cooperatively interconnected with the memory access unit to record profile information describing physical memory addresses referenced during an execution interval of the program.
    Type: Grant
    Filed: May 28, 1999
    Date of Patent: September 6, 2005
    Assignee: ATI International SRL
    Inventors: David L. Reese, John S. Yates, Jr., Paul H. Hohensee, Korbin S. Van Dyke, T. R. Ramesh, Shalesh Thusoo, Gurjeet Singh Saund, Niteen Aravind Patkar
  • Patent number: 6938146
    Abstract: A system and method for improving memory performance and decreasing memory power requirements is described. To accomplish the improvements, a prefetch buffer is added to a memory controller with accompanying prefetch logic. The memory controller first attempts to satisfy memory requests from the prefetch buffer allowing the main memory to stay in a reduced power state until accessing it is required. If the memory controller is unable to satisfy a memory request from the prefetch buffer, the main memory is changed to an active power state and the prefetch logic is invoked. The prefetch logic loads the requested memory, returns the request memory to the requester, and loads memory likely to be requested in the near future into the prefetch buffer. Concurrent with the execution of the prefetch logic, the memory controller returns the requested data.
    Type: Grant
    Filed: December 19, 2002
    Date of Patent: August 30, 2005
    Assignee: International Business Machines Corporation
    Inventors: Hazim Shafi, Sivakumar Velusamy
  • Patent number: 6938125
    Abstract: A disk storage system has a control unit having a plurality of external ports connectable to a mirrored disk including two disks to which write data is written. When the control unit receives two read requests issued from a processor to the disk unit group, a first read operation is performed to read data requested by the first read request from one of the disks and a second read operation is performed to read data requested by the second read request from the other one of the disks. Also, a first transferring operation is performed to transfer data read by the first read operation to one external port of the control unit and a second transferring operation is performed to transfer data read by the second read operation to another external port of the control unit. Further, the data read by the two read operations is transferred to the processor via the external ports.
    Type: Grant
    Filed: August 6, 2003
    Date of Patent: August 30, 2005
    Assignee: Hitachi, Ltd.
    Inventors: Akira Yamamoto, Takao Satoh, Shigeo Honma, Yoshihiro Asaka, Yoshiaki Kuwahara, Hiroyuki Kitajima
  • Patent number: 6934828
    Abstract: A technique is described to reduce the complexity of floating point linear address (FLA) maintenance in a superscalar processor by coupling FLA updates when floating point data is stored instead of when floating point addresses are stored.
    Type: Grant
    Filed: September 17, 2002
    Date of Patent: August 23, 2005
    Assignee: Intel Corporation
    Inventors: Rajesh S. Parthasarathy, Aravindh Bakthavathsalu
  • Patent number: 6931509
    Abstract: There is disclosed a method and apparatus for mapping between logical and physical addresses in a solid state data storage device, particularly but not exclusively a magnetic random access solid state data storage device, in which a list of mappings between ranges of logical addresses and ranges of physical addresses are stored in a data table, the mappings being operated on to look up a physical address from a logical address and vice versa, and being operated on by a data processor, to amend the data mappings by introduction of new ranges of logical and physical addresses, upon ranges of individual physical memory elements becoming defective.
    Type: Grant
    Filed: December 15, 2003
    Date of Patent: August 16, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Kevin Lloyd-Jones
  • Patent number: 6928530
    Abstract: A memory implementing an incremental address counter is sequentially read. An address jump includes detecting an address jump signal, incrementing the incremental address counter, and reading the content of the memory at the incremented address. The content read at the incremented address is transferred into the incremental address counter, and the content of the memory is read at the address contained in the incremental address counter.
    Type: Grant
    Filed: February 22, 2002
    Date of Patent: August 9, 2005
    Assignee: STMicroelectronics SA
    Inventor: Yvon Bahout
  • Patent number: 6925591
    Abstract: A method and apparatus for providing full accessibility to on-chip instruction cache and microcode ROM are described. A dummy tag and a dummy instruction are written into a cache tag array and an instruction array, respectively, during a test mode. The dummy tag is concatenated with a predetermined set number and a predetermined word address to form a dummy address having a dummy tag field, a set field and a word address field. An instruction fetch is invoked using the dummy address. The instruction cache is accessed with the dummy address, and a cache miss is forced to occur. The dummy tag field of the dummy address is written into the tag array at a row specified by the predetermined set number, and the dummy instruction is written into the instruction array at the same row. Execution of the dummy instruction is suppressed. A read operation is performed in a similar manner, except in that case an instruction cache hit is forced to occur to cause data to be read from the instruction cache.
    Type: Grant
    Filed: May 21, 2004
    Date of Patent: August 2, 2005
    Assignee: Intel Corporation
    Inventors: Chandrashekhar S. Patwardhan, James Earl White, Richard Brunner, Yan Xu, Kenneth Griesser
  • Patent number: 6922767
    Abstract: A computational circuit for generating a predicted address value includes an instruction field that contains an instruction value. A value immediate field is associated with the instruction field and includes a offset value and a first subset of lower-order bits. An effective address cache stores a plurality of higher-order bits of a plurality of recently-accessed memory addresses and reads out a value corresponding to a second subset of higher-order bits of a memory address that corresponds to the first subset of lower-order bits. A circuit concatenates the second subset, the first subset and the offset value, thereby generating the predicted address value.
    Type: Grant
    Filed: October 29, 2002
    Date of Patent: July 26, 2005
    Assignee: International Business Machines Corporation
    Inventors: David A. Luick, Richard J. Eickemeyer
  • Patent number: 6918009
    Abstract: In the case that at the time of generation of a pre-fetch request following a read request from one of the processors the data stored in other cache devices cannot be read unless its state tag is changed, a cache controller carries out weak read operation for causing failure in the pre-fetch request as a fetch protocol. Alternatively, the cache controller reads pre-fetch data without changing state tags of other cache devices, sets a weak read state (W), and stores the data. The data in the weak read state (W) is invalided by synchronization operation of memory consistency by software. Furthermore, the pre-fetch data is stored in a passive preservation mode in the present cache device. Even if the pre-fetch data corresponds to a read request from some other cache device, the preservation of the data is not informed to the other cache device.
    Type: Grant
    Filed: December 18, 1998
    Date of Patent: July 12, 2005
    Assignee: Fujitsu Limited
    Inventors: Mitsuru Sato, Kouichi Kumon
  • Patent number: 6915404
    Abstract: A computer system includes a read ahead engine that receives a sequence of read requests and performs read ahead operations in accordance with various patterns detected within the sequence of read requests. The prefetch engine may implement the method of storing a first run value indicative of the run size of a first plurality of sequential read requests, and storing a first skip value indicative of a non-sequential skip associated with a subsequent read request. The method may further include determining whether a second run value indicative of the sequential run size of a second plurality of read requests equals the first run value, and whether a second skip value indicative of another non-sequential skip associated with an additional read request equals the first skip value. If the first run value equals the second run value, and the first skip value equals the second skip value, a stride pattern is indicated, and one or more read ahead operations according to the detected stride pattern may be initiated.
    Type: Grant
    Filed: July 1, 2004
    Date of Patent: July 5, 2005
    Assignee: VERITAS Operating Corporation
    Inventors: Samir Desai, John Colgrove, Ganesh Varadarajan
  • Patent number: 6907511
    Abstract: An instruction-set-aware method for reducing transitions on an irredundant address bus comprises receiving a first address for communication to a memory on an irredundant address bus. The method retrieves an instruction from a memory location indicated by the first address, transmits the instruction on a data bus, and determines a category of the instruction. The method predicts a second address based, at least in part, on the first address, the instruction, and the category of the instruction.
    Type: Grant
    Filed: January 14, 2003
    Date of Patent: June 14, 2005
    Assignees: Fujitsu Limited, University of Southern California
    Inventors: Farzan Fallah, Yazdan Aghaghiri, Massoud Pedram
  • Patent number: 6907505
    Abstract: A hybrid LUN copy operation that ultimately produces a full LUN copy, but involves a transient snapshot-copy-like intermediate stage. In one embodiment, a statically pre-allocated copy LUN is initialized with references pointing back to the primary LUN. Over time, the sectors, blocks, or other data-storage units of the primary LUN are copied to the copy LUN, so that, in the end, a full copy LUN in completed. In a second, alternative embodiment, both the primary LUN and copy LUN are READ and WRITE accessible immediately following the nearly instantaneous initialization of the copy LUN. In both embodiments, the copy LUN may be statically allocated. The immediate-full-LUN-copy operations provided by the present invention further enable rotatable copy-LUN groups, each copy LUN within a copy-LUN group representing a full, robust copy LUN.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: June 14, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Robert A. Cochran, Titus E. Davis
  • Patent number: 6901500
    Abstract: A system for prefetching information from a computer storage includes a central processing unit operable to transmit to a transfer bus a memory transfer request containing a desired memory address. The system also includes a system controller operable to receive the memory transfer request from the transfer bus and to retrieve a prefetch block of data from the computer storage in response to determining that a stream buffer local to the system controller does not contain a copy of data stored at the desired memory address. The system controller is further operable to retrieve the data from the stream buffer and communicate the data to the central processing unit in response to determining that the stream buffer contains a copy of the data stored at the desired memory address.
    Type: Grant
    Filed: July 28, 2000
    Date of Patent: May 31, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Zahid S. Hussain, Tim J. Millet
  • Patent number: 6898694
    Abstract: The present invention provides a mechanism for supporting high bandwidth instruction fetching in a multi-threaded processor. A multi-threaded processor includes an instruction cache (I-cache) and a temporary instruction cache (TIC). In response to an instruction pointer (IP) of a first thread hitting in the I-cache, a first block of instructions for the thread is provided to an instruction buffer and a second block of instructions for the thread are provided to the TIC. On a subsequent clock interval, the second block of instructions is provided to the instruction buffer, and first and second blocks of instructions from a second thread are loaded into a second instruction buffer and the TIC, respectively.
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: May 24, 2005
    Assignee: Intel Corporation
    Inventors: Sailesh Kottapalli, James S. Burns, Kenneth D. Shoemaker
  • Patent number: 6898671
    Abstract: The data processor has a set-associative cache memory capable of performing associative operation using tag information for an indexed cache line. The cache memory includes way prediction part for performing a selection of a way based on the prediction in parallel with the associative operation, generation part for generating way selection determining information based on the associative operation using the subsequent access address during a penalty cycle caused by a prediction miss of the way prediction part, and control part for making a way selected for the subsequent access address after the penalty cycle on the basis of the way selection determining information. Since a way to be hit at the subsequent cache access can be predetermined during the preceding penalty cycle, the cumulative number of penalty cycles can be reduced.
    Type: Grant
    Filed: February 27, 2002
    Date of Patent: May 24, 2005
    Assignee: Renesas Technology Corporation
    Inventors: Masayuki Ito, Junichi Nishimoto
  • Patent number: 6895429
    Abstract: A technique enables a server, such as a filer, configured with a plurality of virtual servers, such as virtual filers (vfilers), to participate in a plurality of private network address spaces having potentially overlapping network addresses. The technique also enables selection of an appropriate vfiler to service requests within a private address space in a manner that is secure and distinct from other private address spaces supported by the filer. An IPspace refers to each distinct address space in which the filer and its storage operating system participate. An IPspace identifier is applied to translation procedures that enable the selection of a correct vfiler for processing an incoming request and an appropriate routing table for processing an outgoing request.
    Type: Grant
    Filed: December 28, 2001
    Date of Patent: May 17, 2005
    Assignee: Network Appliance, Inc.
    Inventors: Gaurav Banga, Mark Smith, Mark Muhlestein
  • Patent number: 6883077
    Abstract: In an information processsing unit with key controlled protection, since it takes a long time to fetch a storage key from key storage, an instruction and computation unit of a CPU receives data from a memory control unit of the CPU before a key is received, and then the transferred storage key is checked.
    Type: Grant
    Filed: February 27, 2002
    Date of Patent: April 19, 2005
    Assignee: Fujitsu Limited
    Inventors: Hiroaki Kimura, Yuji Shirahige, Iwao Yamazaki
  • Patent number: 6880063
    Abstract: A memory cache bank prediction unit is provided for use in a processor having a plurality of memory cache banks. The memory cache bank prediction unit has an input port that receives an instruction. The memory cache bank prediction unit also has an evaluation unit, coupled to the input port, that predicts which of the plurality of memory cache banks is associated with the instruction.
    Type: Grant
    Filed: January 9, 2004
    Date of Patent: April 12, 2005
    Assignee: Intel Corporation
    Inventors: Adi Yoaz, Ronny Ronen, Lihu Rappoport, Mattan Erez, Stephan J. Jourdan, Bob Valentine
  • Patent number: 6877069
    Abstract: An address translation logic and method for generating an instruction's operand address. The address generation logic includes an address generation circuit having adders that perform partial sum additions of the instruction operand's base register value with a displacement value in the instruction. The address generation logic also includes a carry prediction history block associated with the instruction that provides predicted carry-in values to the adders during the partial sum addition operation. In a related embodiment, the carry prediction history block that, in an advantageous embodiment, is appended to the instruction includes a predicted row access select (RAS) carry-in value, a predicted column access select (CAS) carry-in value and a confirmation flag that indicates whether the previous carry-in predictions for the previous predicted RAS and CAS carry-in values for the instruction were correct.
    Type: Grant
    Filed: March 28, 2002
    Date of Patent: April 5, 2005
    Assignee: International Business Machines Corporation
    Inventor: David Arnold Luick
  • Patent number: 6877070
    Abstract: A method and apparatus are provided for implementing command queue ordering with benefit determination of a prefetch operation. For each command in a hard disk drive command queue, a rotational position optimization (RPO) score is calculated. A prefetch benefit is calculated for each command in the hard disk drive command queue within a working partition. The RPO score is modified utilizing the calculated prefetch benefit for the commands in the hard disk drive command queue within the working partition. A best RPO score is identified to select a next command in the hard disk drive command queue to execute.
    Type: Grant
    Filed: July 23, 2002
    Date of Patent: April 5, 2005
    Assignee: Hitachi Global Storage Technologies Netherlands, B.V.
    Inventors: Adam Michael Espeseth, David Robison Hall
  • Patent number: 6874067
    Abstract: 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: Grant
    Filed: April 11, 2002
    Date of Patent: March 29, 2005
    Assignee: International Business Machines Corporation
    Inventor: Farnaz Toussi
  • Patent number: 6871218
    Abstract: A method for a first computer to request documents from a second computer inacludes steps of sending a first request for a first document to the second computer responsive to a first user action, receiving the first document sent by the second computer responsive to the first request; identifying all references to second documents in the received first document; independently of any user action, automatically sending a second request for at least one of the second documents referred to by the identified references; receiving the second document(s) requested by the second request and storing the received second document(s) in a storage that is local to the first computer, and responsive to a user request for one or more of the second documents, attempting first to service the user request from the local storage and sending a third request to the second computer for second document(s) only when the second document(s) is not stored in the local storage.
    Type: Grant
    Filed: November 7, 2001
    Date of Patent: March 22, 2005
    Assignee: Oracle International Corporation
    Inventors: Sachin Desai, Kiran Gurudutt Bellare, Max Schireson
  • Patent number: 6862657
    Abstract: Data is read from a storage medium in response to a command and stored in a region of memory. An interrupt is issued after a predetermined portion of the data has been stored in memory. A database, such as a scatter/gather list, may be consulted to determine when to issue the interrupt. A host processing device may read data from a first location on the storage medium in response to a command requesting data at a second location on the storage medium, and may read data from the second location on the storage medium in response to the command. The first location precedes the second location in a direction of movement of the storage medium during reading.
    Type: Grant
    Filed: December 21, 1999
    Date of Patent: March 1, 2005
    Assignee: Intel Corporation
    Inventors: Knut S. Grimsrud, Amber D. Huffman
  • Patent number: 6851038
    Abstract: A computer system is provided with a memory management unit (MMU) utilizing a translation look-aside buffer (TLB) arrangement. The computer system includes a bus, a unified cache memory, a main memory, a processor, and a memory controller. The TLB is configured for storing code and/or data. The main memory is coupled to the bus. The main memory contains descriptor tables for mapping virtual-to-physical address translations within a virtual memory system. The processor is coupled to the bus and the unified cache memory. The processor is configured to communicate and sequentially move through the main memory to retrieve a line of information from the main memory for storage in the unified cache memory. The cache is configured for storing the most recently retrieved code and data from main memory. The memory controller is coupled between the bus and the main memory.
    Type: Grant
    Filed: May 26, 2000
    Date of Patent: February 1, 2005
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Duane F. Krolski, James J. Jirgal
  • Patent number: 6851033
    Abstract: The present invention relates to techniques for predicting memory access in a data processing apparatus and particular to a technique for determining whether a data item to be accessed crosses an address boundary and will hence require multiple memory accesses. An earlier indication can be provided that at least two memory accesses may be required to access a data item by performing a prediction based upon one or more operands generated from a memory instruction instead of waiting for a memory access generation stage to generate the memory access. Prediction logic can generate a prediction signal to prevent the memory access generation stage from receiving signals from a preceding pipeline stage while at least two memory accesses are being generated.
    Type: Grant
    Filed: October 1, 2002
    Date of Patent: February 1, 2005
    Assignee: Arm Limited
    Inventor: Richard Roy Grisenthwaite
  • Patent number: 6848029
    Abstract: 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: Grant
    Filed: January 3, 2001
    Date of Patent: January 25, 2005
    Inventor: Dirk Coldewey
  • Patent number: 6845501
    Abstract: A method for reducing cache memory misses in a computer that performs context switches between at least a first context and a second context. A First logic identifies a first prefetch region in a first memory element and a second logic identifies critical memory references within the first prefetch region during compilation of a computer program. The critical memory references within the first prefetch region correspond to data in cache memory if a context switch occurs from a process or thread associated with the second context to a process or thread associated with the first context during program execution. Third logic prefetches data associated with the identified critical memory references and stores the prefetched data in cache memory prior to a process or thread associated with the first context being resumed when a switch from the second context to the first context occurs during program execution.
    Type: Grant
    Filed: July 27, 2001
    Date of Patent: January 18, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Carol L. Thompson, Michael L. Zi gler, Jerome C. Huck, Lawrence D. K. B. Dwyer
  • Publication number: 20040268085
    Abstract: Each prefetch buffer has a tag register for storing a branch address and a data register for storing instruction data. Each of the prefetch buffers is assigned to either a first prefetch buffer rewritable during a normal operation period and a second prefetch buffer to be disabled for rewrite during the normal operation period. The second prefetch buffer can thus be prevented from being rewritten even if a central processor outputs branch addresses frequently. This realizes an improvement in the instruction fetch efficiency of the central processor and an improvement in the entire system performance. The fetch efficiency can be improved particularly in such systems that branch addresses occur frequently and some of them occur repeatedly.
    Type: Application
    Filed: March 11, 2004
    Publication date: December 30, 2004
    Applicant: FUJITSU LIMITED
    Inventors: Akio Hara, Masaaki Tani, Kenji Furuya
  • Publication number: 20040260884
    Abstract: A reconfigurable processor that includes a computational unit and a data prefetch unit coupled to the computational unit, where the data prefetch unit retrieves data from a memory and supplies the data to the computational unit through memory and a data access unit, and where the data prefetch unit, memory, and data access unit is configured by a program. Also, a reconfigurable hardware system that includes a common memory; and one or more reconfigurable processors coupled to the common memory, where at least one of the reconfigurable processors includes a data prefetch unit to read and write data between the unit and the common memory, and where the data prefetch unit is configured by a program executed on the system. In addition, a method of transferring data that includes transferring data between a memory and a data prefetch unit in a reconfigurable processor; and transferring the data between a computational unit and the data prefetch unit.
    Type: Application
    Filed: June 16, 2004
    Publication date: December 23, 2004
    Inventors: Daniel Poznanovic, David E. Caliga, Jeffrey Hammes
  • Publication number: 20040260909
    Abstract: A memory module includes a memory hub coupled to several memory devices. The memory hub includes history logic that predicts on the basis of read memory requests which addresses in the memory devices from which date are likely to be subsequently read. The history logic applies prefetch suggestions corresponding to the predicted addresses to a memory sequencer, which uses the prefetch suggestions to generate prefetch requests that are coupled to the memory devices. Data read from the memory devices responsive to the prefetch suggestions are stored in a prefetch buffer. Tag logic stores prefetch addresses corresponding to addresses from which data have been prefetched. The tag logic compares the memory request addresses to the prefetch addresses to determine if the requested read data are stored in the prefetch buffer. If so, the requested data are read from the prefetch buffer. Otherwise, the requested data are read from the memory devices.
    Type: Application
    Filed: June 20, 2003
    Publication date: December 23, 2004
    Inventors: Terry R. Lee, Joseph Jeddeloh
  • Publication number: 20040260908
    Abstract: A memory controller and method thereof configures a prefetch buffer dynamically for interfacing between multiple bus masters of different burst support and multiple memories having different characteristics. A line size of at least a portion of the prefetch buffer is modified based upon the memory controller receiving a read request from one of the bus masters. An adaptive method to optimally replace prefetch buffer lines uses prioritized status field information to determine which buffer line to replace.
    Type: Application
    Filed: June 20, 2003
    Publication date: December 23, 2004
    Inventors: Afzal M. Malik, William C. Moyer
  • Patent number: 6834325
    Abstract: A client-directed pre-stage operation of a cache memory used to access data blocks from a mass data storage device attached to a host computer through a channel control processor is provided by a method and apparatus comprising a channel control processor for retrieving data blocks from the mass storage device to be pre-staged within the cache memory, a channel interface coupled between the channel control processor and the host computer, a mass storage device interface coupled between the channel control processor and the mass storage device, and a cache memory coupled between the channel interface and the mass storage interface; the cache memory is further coupled to the cache control processor to provide the cache control processor access to data stored within the cache memory. The cache control processor receives a cache bitmap from the host computer to specify the data blocks from the mass storage device to be pre-staged into the cache memory.
    Type: Grant
    Filed: July 16, 1999
    Date of Patent: December 21, 2004
    Assignee: Storage Technology Corporation
    Inventors: Michael S. Milillo, Christopher J. West
  • Patent number: 6832296
    Abstract: 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: Grant
    Filed: April 9, 2002
    Date of Patent: December 14, 2004
    Assignee: IP-First, LLC
    Inventor: Rodney E. Hooker
  • Patent number: 6832288
    Abstract: A disk device having a read/write processing device to improve the efficiency of operations between write commands that have overlapping data, and to prevent delays in execution processing of starting commands. A read command advance processor unit that processes in advance the read commands for which there are unprocessed write commands in the command queue and a write command overlap data processor overwrites the existing write command write data overlap part when the new write command write data overlaps the write data from an existing write command.
    Type: Grant
    Filed: January 29, 2001
    Date of Patent: December 14, 2004
    Assignee: Fujitsu Limited
    Inventors: Yoshiyuki Ohta, Katsuhiko Nishikawa
  • Publication number: 20040243786
    Abstract: A microprocessor includes a processing unit, an address bus connected to an addressable memory space, and executes instructions from an instruction set for accessing the addressable memory space. The addressable memory space is for a lower memory area and an extended memory area. The instruction set includes a first instruction group for accessing the lower memory area, and a second instruction group that is distinct from the first instruction group for accessing the extended memory area.
    Type: Application
    Filed: March 31, 2004
    Publication date: December 2, 2004
    Applicant: STMicroelectronics SA
    Inventors: Franck Roche, Philippe Basset