Generating Prefetch, Look-ahead, Jump, Or Predictive Address Patents (Class 711/213)
  • Publication number: 20110078407
    Abstract: Provided are a method, computer program product and system for determining an end of valid log in a log of write records. Records are written to a log in a storage device in a sequential order, wherein the records include a next pointer addressing a next record in a write order and a far ahead pointer addressing a far ahead record in the write order following the record. The far ahead pointer and the next pointer in a plurality of records are used to determine an end of valid log from which to start writing further records.
    Type: Application
    Filed: September 25, 2009
    Publication date: March 31, 2011
    Inventor: Russell Lee Lewis
  • Patent number: 7904660
    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 controlling 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: August 23, 2007
    Date of Patent: March 8, 2011
    Assignee: International Business Machines Corporation
    Inventor: Peter Franaszek
  • Patent number: 7904604
    Abstract: Method and apparatus for servicing commands such as the type issued by a host device to load an operating system from an associated data storage device. A controller is adapted to, upon receipt of a selected command sequence comprising a first command followed by a second command, determine an elapsed time interval between the first and second commands. The controller further uses the elapsed time interval to subsequently service the first and second commands during a subsequent receipt of the selected command sequence. Preferably, a command history table is generated to list the commands in the command sequence and the associated time intervals, and to use the time intervals to predict when the next command will occur. Readback data are pre-fetched to a buffer to expedite servicing of the commands, and the controller selectively enters one or more reduced power modes between successive commands to reduce power consumption levels.
    Type: Grant
    Filed: July 19, 2004
    Date of Patent: March 8, 2011
    Assignee: Seagate Technology LLC
    Inventors: CheeWai Lum, KokChoon See, LingLing Chua
  • Patent number: 7900019
    Abstract: A data processing apparatus having a plurality of memories is provided in which address generation logic (109) outputs to at least one of the plurality of memories a target memory address corresponding to the data to be accessed. Target memory prediction logic (113) outputs a prediction indicating in which one of the plurality of memories a target data is stored. The target memory prediction logic (113) outputs the prediction in the same processing cycle as the output of the target memory address by the address generation logic (109). An associated method is also provided.
    Type: Grant
    Filed: May 1, 2006
    Date of Patent: March 1, 2011
    Assignee: ARM Limited
    Inventors: Vladimir Vasekin, Andrew Christopher Rose, David Kevin Hart, Javed Osmany
  • Patent number: 7895399
    Abstract: A processor reads a program including a prefetch command and a load command and data from a main memory, and executes the program. The processor includes: a processor core that executes the program; a L2 cache that stores data on the main memory for each predetermined unit of data storage; and a prefetch unit that pre-reads the data into the L2 cache from the main memory on the basis of a request for prefetch from the processor core. The prefetch unit includes: a L2 cache management table including an area in which a storage state is held for each position in the unit of data storage of the L2 cache and an area in which a request for prefetch is reserved; and a prefetch control unit that instructs, the L2 cache to perform the request for prefetch reserved or the request for prefetch from the processor core.
    Type: Grant
    Filed: February 13, 2007
    Date of Patent: February 22, 2011
    Assignee: Hitachi, Ltd.
    Inventors: Aki Tomita, Naonobu Sukegawa
  • Patent number: 7890942
    Abstract: A method and system for substituting array values (i.e., expressions) in a program at compile time. An initialization of an array is identified in a loop. The initialization is an assignment of an expression (i.e., a constant or a function of an induction variable to elements of the array). The expression is stored in a table that associates the expression with the array and indices of the array. An assignment statement is detected that is to assign at least one element of the initialized elements. The expression is retrieved from the table based on the expression being associated with the array and corresponding indices. The expression is substituted for the at least one element so that the expression is to be assigned by the assignment statement. The process of substituting array values is extended to interprocedural analysis.
    Type: Grant
    Filed: August 15, 2006
    Date of Patent: February 15, 2011
    Assignee: International Business Machines Corporation
    Inventor: Rohini Nair
  • Patent number: 7881320
    Abstract: Multiplexing data from bitstreams is described. Data status is determined for data of each of the bitstreams. Stream numbers are assigned respectively to the bitstreams, and the data of each of the bitstreams is controllably stored in respective memory. A memory buffer of the memory buffers is controllably selected. The data obtained from the memory buffer selected is parsed to provide an output. The controllably selecting and the parsing are repeated to obtain and parse the data stored in at least one other memory buffer of the memory buffers to provide the output. The output is multiplexed data from the bitstreams respectively associated with the memory buffer and the at least one other memory buffer.
    Type: Grant
    Filed: December 12, 2005
    Date of Patent: February 1, 2011
    Assignee: Xilinx, Inc.
    Inventors: Paul R. Schumacher, Kornelis Antonius Vissers
  • Publication number: 20110010347
    Abstract: Loading data from a computer memory system is disclosed. A memory system is provided, wherein some or all data stored in the memory system is organized as one or more pointer-linked data structures. One or more iterator registers are provided. A first pointer chain is loaded, having two or more pointers leading to a first element of a selected pointer-linked data structure to a selected iterator register. A second pointer chain is loaded, having two or more pointers leading to a second element of the selected pointer-linked data structure to the selected iterator register. The loading of the second pointer chain reuses portions of the first pointer chain that are common with the second pointer chain. Modifying data stored in a computer memory system is disclosed. A memory system is provided. One or more iterator registers are provided, wherein the iterator registers each include two or more pointer fields for storing two or more pointers that form a pointer chain leading to a data element.
    Type: Application
    Filed: July 23, 2010
    Publication date: January 13, 2011
    Applicant: Hicamp Systems, Inc.
    Inventors: David R. Cheriton, Amin Firoozshahian, Alexandre Y. Solomatnikov
  • Publication number: 20110010521
    Abstract: In an embodiment, a memory management unit (MMU) is configured to retain a block of data that includes multiple page table entries. The MMU is configured to check the block in response to TLB misses, and to supply a translation from the block if the translation is found in the block without generating a memory read for the translation. In some embodiments, the MMU may also maintain a history of the TLB misses that have used translations from the block, and may generate a prefetch of a second block based on the history. For example, the history may be a list of the most recently used Q page table entries, and the history may show a pattern of access that are nearing an end of the block. In another embodiment, the history may comprise a count of the number of page table entries in the block that have been used.
    Type: Application
    Filed: July 13, 2009
    Publication date: January 13, 2011
    Inventors: James Wang, Zongjian Chen
  • Patent number: 7840761
    Abstract: A processor executes one or more prefetch threads and one or more main computing threads. Each prefetch thread executes instructions ahead of a main computing thread to retrieve data for the main computing thread, such as data that the main computing thread may use in the immediate future. Data is retrieved for the prefetch thread and stored in a memory, such as data fetched from an external memory and stored in a buffer. A prefetch controller determines whether the memory is full. If the memory is full, a cache controller stalls at least one prefetch thread. The stall may continue until at least some of the data is transferred from the memory to a cache for use by at least one main computing thread. The stalled prefetch thread or threads are then reactivated.
    Type: Grant
    Filed: April 1, 2005
    Date of Patent: November 23, 2010
    Assignee: STMicroelectronics, Inc.
    Inventors: Osvaldo M. Colavin, Davide Rizzo
  • Patent number: 7831800
    Abstract: A processor system (100) includes a central processing unit (102) and a prefetch engine (110). The prefetch engine (110) is coupled to the central processing unit (102). The prefetch engine (110) is configured to detect, when data associated with the central processing unit (102) is read from a memory (114), a stride pattern in an address stream based upon whether sums of a current stride and a previous stride are equal for a number of consecutive reads. The prefetch engine (110) is also configured to prefetch, for the central processing unit (102), data from the memory (114) based on the detected stride pattern.
    Type: Grant
    Filed: May 17, 2007
    Date of Patent: November 9, 2010
    Inventor: Andrej Kocev
  • Patent number: 7831799
    Abstract: An improved address translation method and mechanism for memory management in a computer system is disclosed. A segmentation mechanism employing segment registers maps virtual addresses into a linear address space. A paging mechanism optionally maps linear addresses into physical or real addresses. Independent protection of address spaces is provided at each level. Information about the state of real memory pages is kept in segment registers or a segment register cache potentially enabling real memory access to occur simultaneously with address calculation, thereby increasing performance of the computer system.
    Type: Grant
    Filed: November 1, 2004
    Date of Patent: November 9, 2010
    Inventor: Richard Belgard
  • Patent number: 7827359
    Abstract: Systems and/or methods that facilitate reading data from a memory component associated with a network are presented. A pre-fetch generation component generates a pre-fetch request based in part on a received read command. To facilitate a reduction in latency associated with transmitting the read command via an interconnect network component to which the memory component is connected, the pre-fetch request is transmitted directly to the memory component bypassing a portion of the interconnect network component. The memory component specified in the pre-fetch request receives the pre-fetch request and reads the data stored therein, and can store the read data in a buffer and/or transmit the read data to the requester via the interconnect network component, even though the read command has not yet reached the memory component. The read data is verified by comparison with the read command at a convergence point.
    Type: Grant
    Filed: December 14, 2007
    Date of Patent: November 2, 2010
    Assignee: Spansion LLC
    Inventor: Richard Carmichael
  • Patent number: 7822943
    Abstract: Systems, methods and computer program products for improving data stream prefetching in a microprocessor are described herein.
    Type: Grant
    Filed: August 4, 2008
    Date of Patent: October 26, 2010
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 7818514
    Abstract: A low latency memory system access is provided in association with a weakly-ordered multiprocessor system. Bach 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 prefetching for non-contiguous data structures is also disclosed.
    Type: Grant
    Filed: August 22, 2008
    Date of Patent: October 19, 2010
    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: 7814247
    Abstract: A pre-fetch circuit of a semiconductor memory apparatus can carry out a high-frequency operating test through a low-frequency channel of a test equipment. The pre-fetch circuit of a semiconductor memory apparatus can includes: a pre-fetch unit for pre-fetching data bits in a first predetermined number; a plurality of registers provided in the first predetermined number, each of which latches a data in order or a data out of order of the pre-fetched data in response to different control signals; and a control unit for selectively activating the different control signals in response to a test mode signal, whereby some of the registers latch the data out of order.
    Type: Grant
    Filed: July 18, 2008
    Date of Patent: October 12, 2010
    Assignee: Hynix Semiconductor Inc.
    Inventor: Young-Ju Kim
  • Patent number: 7814469
    Abstract: The latencies associated with retrieving instruction information for a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform instruction prefetch and/or trace pre-build for the main thread.
    Type: Grant
    Filed: April 24, 2003
    Date of Patent: October 12, 2010
    Assignee: Intel Corporation
    Inventors: Hong Wang, Tor M. Aamodt, Pedro Marcuello, Jared W. Stark, IV, John P. Shen, Antonio González, Per Hammarlund, Gerolf F. Hoflehner, Perry H. Wang, Steve Shih-wei Liao
  • Patent number: 7774578
    Abstract: A device and method is illustrated to prefetch information based on a location of an instruction that resulted in a cache miss during its execution. The prefetch information to be accessed is determined based on previous and current cache miss information. For example, information based on previous cache misses is stored at data records as prefetch information. This prefetch information includes location information based on an instruction that caused a previous cache miss, and is accessed to generate prefetch requests for a current cache miss. The prefetch information is updated based on current cache miss information.
    Type: Grant
    Filed: June 7, 2006
    Date of Patent: August 10, 2010
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Paul S. Keltcher
  • Patent number: 7765360
    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: October 1, 2008
    Date of Patent: July 27, 2010
    Assignee: International Business Machines Corporation
    Inventors: John Kevin Patrick O'Brien, Kathryn O'Brien
  • Publication number: 20100180099
    Abstract: A method for prefetching data in a bus system is provided. First, according to an address signal from a master, a prefetching address generator generates a prefetching address signal and transfers it to a first select circuit. In response to a signal from the master indicates that the address is related to the previous address and the control signal is identical to the previous transfer, or in response to a signal from the master indicates that the address and control signals are unrelated to the previous transfer but is matched to a hit logic, a prefetching controller directs the first select circuit to transfer the prefetching address signal to a slave. And the prefetching controller also directs a second select circuit to transfer the prefetched data which is corresponding to the prefetching address signal from the slave to a master.
    Type: Application
    Filed: April 28, 2009
    Publication date: July 15, 2010
    Applicant: VIA TECHNOLOGIES, INC.
    Inventor: Haihui Xu
  • Patent number: 7739478
    Abstract: A method is provided for pre-fetching data into a cache memory. A first cache-line address of each of a number of data requests from at least one processor is stored. A second cache-line address of a next data request from the processor is compared to the first cache-line addresses. If the second cache-line address is adjacent to one of the first cache-line addresses, data associated with a third cache-line address adjacent to the second cache-line address is pre-fetched into the cache memory, if not already present in the cache memory.
    Type: Grant
    Filed: March 8, 2007
    Date of Patent: June 15, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Judson E. Veazey, Blaine D. Gaither
  • Patent number: 7739483
    Abstract: A method and apparatus for dual-target register allocation is described, intended to enable the efficient mapping/renaming of registers associated with instructions within a pipelined microprocessor architecture.
    Type: Grant
    Filed: September 28, 2001
    Date of Patent: June 15, 2010
    Assignee: Intel Corporation
    Inventors: Rajesh Patel, James Dundas, Adi Yoaz
  • Patent number: 7725654
    Abstract: A storage system includes plural storage units having respective storage controllers and associated caches. A first one of the storage units further includes an internal workload generator to initiate a data operation with respect to at least one destination storage unit, where the data operation is associated with tag information to affect a caching algorithm used by the cache of the at least one destination storage unit. The at least one destination storage unit includes at least one of the plural storage units.
    Type: Grant
    Filed: July 25, 2006
    Date of Patent: May 25, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Michael B. Jacobson, David R. Eagleton, Douglas L. Hagerman
  • Patent number: 7716418
    Abstract: A modified read-ahead (i.e., jump) command, contains a sequential access parameter SAP, JUMPm(X,Y:SAP), for instructing a disc drive to jump to block Y after having read block X. If the SAP parameter has a value indicating that a host, such as a PC, designed to recognize the SAP parameter, deliberately signals a disc drive to jump to a lower address (e.g., Y<X), a disc drive designed in accordance with the present invention will comply. A disc drive not designed to recognize the modified read-ahead command may ignore the SAP parameter. A host not designed to recognize the modified read-ahead command is not capable of setting the SAP parameter.
    Type: Grant
    Filed: September 20, 2005
    Date of Patent: May 11, 2010
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Stephanus Josephus Maria Van Beckhoven, Robert Albertus Brondijk, Pope Ijtsma, Joze Geelen, Hiroki Ohira
  • Patent number: 7689774
    Abstract: A system and method for improving the page crossing performance of a data prefetcher is presented. A prefetch engine tracks times at which a data stream terminates due to a page boundary. When a certain percentage of data streams terminate at page boundaries, the prefetch engine sets an aggressive profile flag. In turn, when the data prefetch engine receives a real address that corresponds to the beginning/end of a new page, and the aggressive profile flag is set, the prefetch engine uses an aggressive startup profile to generate and schedule prefetches on the assumption that the real address is highly likely to be the continuation of a long data stream. As a result, the system and method minimize latency when crossing real page boundaries when a program is predominately accessing long streams.
    Type: Grant
    Filed: April 6, 2007
    Date of Patent: March 30, 2010
    Assignee: International Business Machines Corporation
    Inventors: Francis Patrick O'Connell, Jeffrey A. Stuecheli
  • Patent number: 7681188
    Abstract: One embodiment of the present invention provides a system that facilitates locked prefetch scheduling in general cyclic regions of a computer program. The system operates by first receiving a source code for the computer program and compiling the source code into intermediate code. The system then performs a trace detection on the intermediate code. Next, the system inserts prefetch instructions and corresponding locks into the intermediate code. Finally, the system generates executable code from the intermediate code, wherein a lock for a given prefetch instruction prevents subsequent prefetches from being issued until the data value returns for the given prefetch instruction.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: March 16, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Partha P. Tirumalai, Spiros Kalogeropulos, Yonghong Song
  • Patent number: 7657880
    Abstract: The latencies associated with retrieving instruction information for a main thread are decreased through the use of a simultaneous helper thread. The helper thread is permitted to execute Store instructions. Store blocker logic operates to prevent data associated with a Store instruction in a helper thread from being committed to memory. Dependence blocker logic operates to prevent data associated with a Store instruction in a speculative helper thread from being bypassed to a Load instruction in a non-speculative thread.
    Type: Grant
    Filed: August 1, 2003
    Date of Patent: February 2, 2010
    Assignee: Intel Corporation
    Inventors: Hong Wang, Tor Aamodt, Per Hammarlund, John Shen, Xinmin Tian, Milind Girkar, Perry Wang, Steve Shih-wei Liao
  • Patent number: 7657726
    Abstract: A memory storage structure includes a memory storage device, and a first meta-structure having a first size and operating at a first speed. The first speed is faster than a second speed for storing meta-information based on information stored in a memory. A second meta-structure is hierarchically associated with the first meta-structure. The second meta-structure has a second size larger than the first size and operates at the second speed such that faster and more accurate prefetching is provided by coaction of the first and second meta-structures. A method is provided to assemble the meta-information in the first meta-structure and copy this information to the second meta-structure, and prefetching the stored information from the second meta-structure to the first meta-structure ahead of its use.
    Type: Grant
    Filed: October 25, 2007
    Date of Patent: February 2, 2010
    Assignee: International Business Machines Corporation
    Inventors: Philip George Emma, Allan Mark Hartstein, Brian R. Prasky, Thomas Roberts Puzak, Moinuddin Khalil Ahmed Qureshi, Vijayalakshmi Srinivasan
  • Patent number: 7657723
    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: January 28, 2009
    Date of Patent: February 2, 2010
    Assignee: Micron Technology, Inc.
    Inventor: Dean A. Klein
  • Publication number: 20100011170
    Abstract: A cache memory device includes an address generation unit, a data memory, a tag memory, and a hit judging unit. The address generation unit generates a prefetch index address included in a prefetch address based on an input address supplied from a higher-level device. The tag memory stores a plurality of tag addresses corresponding to a plurality of line data stored in the data memory. Further, the tag memory comprises a memory component that is configured to receive the prefetch index address and an input index address included in the input address in parallel and to output a first tag address in accordance with the input index address and a second tag address in accordance with the prefetch index address in parallel. The hit judging unit performs cache hit judgment of the input address and the prefetch address based on the first tag address and the second tag address.
    Type: Application
    Filed: June 29, 2009
    Publication date: January 14, 2010
    Applicant: NEC Electronics Corporation
    Inventors: Tohru MURAYAMA, Hideyuki Miwa
  • Publication number: 20100005272
    Abstract: Reconfigurable Systems-an-Chip (RSoCs) on the market consist of full-fledged processors and large Field-Programmable Gate Arrays (FPGAs). The latter can be used to implement the system glue logic, various peripherals, and application-specific coprocessors. Using FPGAs for application-specific coprocessors has certain speedup potentials, but it is less present in practice because of the complexity of interfacing the software application with the coprocessor. In the present application, we present a virtualisation layer consisting of an operating system extension and a hardware component. It lowers the complexity of interfacing and increases portability potentials, while it also allows the coprocessor to access the user virtual memory through a virtual memory window. The burden of moving data between processor and coprocessor is shifted from the programmer to the operating system.
    Type: Application
    Filed: April 19, 2005
    Publication date: January 7, 2010
    Inventors: Miljan Vuletic, Laura Pozzi, Paolo Ienne
  • Patent number: 7644253
    Abstract: A computer system includes a memory hub for coupling a processor to a plurality of synchronous dynamic random access memory (“SDRAM”) devices. The memory hub includes a processor interface coupled to the processor and a plurality of memory interfaces coupled to respective SDRAM devices. The processor interface is coupled to the memory interfaces by a switch. Each of the memory interfaces includes a memory controller, a cache memory, and a prediction unit. The cache memory stores data recently read from or written to the respective SDRAM device so that it can be subsequently read by processor with relatively little latency. The prediction unit prefetches data from an address from which a read access is likely based on a previously accessed address.
    Type: Grant
    Filed: November 1, 2006
    Date of Patent: January 5, 2010
    Assignee: Micron Technology, Inc.
    Inventor: Joseph M. Jeddeloh
  • Patent number: 7640400
    Abstract: A method, computer program product, and system are provided for prefetching data into a cache memory. As a program is executed an object identifier is obtained of a first object of the program. A lookup operation is performed on a data structure to determine if the object identifier is present in the data structure. Responsive to the object identifier being present in the data structure, a referenced object identifier is retrieved that is referenced by the object identifier. Then, the data associated with the referenced object identifier is prefetched from main memory into the cache memory.
    Type: Grant
    Filed: April 10, 2007
    Date of Patent: December 29, 2009
    Assignee: International Business Machines Corporation
    Inventors: William A. Maron, Greg R. Mewhinney, Mysore S. Srinivas, David B. Whitworth
  • Patent number: 7634636
    Abstract: Devices, systems and methods of reduced-power memory address generation. For example, an apparatus includes: a carry save adder including at least a first set of adders and a second set of adders, wherein the adders of the first set are able to receive a first number of input bits and to produce a first number of outputs, and wherein adders of the second set are able to receive a second number of input bits and to produce the first number of outputs.
    Type: Grant
    Filed: June 22, 2006
    Date of Patent: December 15, 2009
    Assignee: Intel Corporation
    Inventors: Uri Frank, Ram Kenyagin
  • Publication number: 20090300320
    Abstract: A processing device includes a memory and a processor that generates a plurality of read commands for reading read data from the memory and a plurality of write commands for writing write data to the memory. A prefetch memory interface prefetches prefetch data to a prefetch buffer, retrieves the read data from the prefetch buffer when the read data is included in the prefetch buffer, and retrieves the read data from the memory when the read data is not included in the prefetch buffer, wherein the prefetch buffer is managed via a linked list.
    Type: Application
    Filed: May 28, 2008
    Publication date: December 3, 2009
    Inventor: Jing Zhang
  • Publication number: 20090287903
    Abstract: A computer processor and a method of using the computer processor take advantage of information in the event address register of the computer processor by saving information from the event address register to an event address register history buffer. Thus, the event address register history buffer includes a cluster of events associated with execution of a computer program. The cluster of events is analyzed and the computer program modified, either statically or dynamically, to eliminate or at least ameliorate the effects of such events in further execution of the computer program.
    Type: Application
    Filed: May 16, 2008
    Publication date: November 19, 2009
    Inventors: Wei Chung Hsu, Yuan C. Chou
  • Patent number: 7617354
    Abstract: An integrated circuit having a nominal minimum burst length defined by a nominal data prefetch size transfers data by accepting an abbreviated burst data read request directed to a first bank, prefetching less than the nominal data prefetch size, and providing the data in an abbreviated burst data transfer less than the nominal minimum burst length.
    Type: Grant
    Filed: March 8, 2007
    Date of Patent: November 10, 2009
    Assignee: Qimonda North America Corp.
    Inventor: Jong-Hoon Oh
  • Publication number: 20090254733
    Abstract: Dynamically controlling a prefetching range of a software controlled cache is provided. A compiler analyzes source code to identify at least one of a plurality of loops that contain irregular memory references. For each irregular memory reference in the source code, the compiler determines whether the irregular memory reference is a candidate for optimization. Responsive to identifying an irregular memory reference that may be optimized, the complier determines whether the irregular memory reference is valid for prefetching. If the irregular memory reference is valid for prefetching, a store statement for an address of the irregular memory reference is inserted into the at least one loop. A runtime library call is inserted into a prefetch runtime library to dynamically prefetch the irregular memory references. Data associated with the irregular memory references are dynamically prefetched into the software controlled cache when the runtime library call is invoked.
    Type: Application
    Filed: April 4, 2008
    Publication date: October 8, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Tong Chen, Marc Gonzalez tallada, Zehra N. Sura, Tao Zhang
  • Patent number: 7577956
    Abstract: A plurality of batch lists are maintained by a channel in order to improve the efficiency of the channel in performing messaging between a sender and a receiver. For example, a Next Batch list is used to prefetch messages to be sent to the receiver from the sender; a Current Batch list includes the messages currently being transmitted to the receiver or waiting confirmation; and an Acknowledged Batch List includes the messages confirmed by the receiver. This allows the functions of prefetching messages, sending messages and deleting confirmed messages to be performed in parallel.
    Type: Grant
    Filed: July 14, 2006
    Date of Patent: August 18, 2009
    Assignee: International Business Machines Corporation
    Inventors: Shawfu Chen, Robert O. Dryfoos, Allan Feldman, David Y. Hu, Jason A. Keenaghan, Peter A. Lewis, Peter G. Sutton, Alice M. Williams-Obleton, Mei-Hui Wang
  • Patent number: 7577947
    Abstract: Methods and apparatus to dynamically insert prefetch instructions are disclosed. In an example method, one or more samples associated with cache misses are identified from a performance monitoring unit in a processor system. Based on sample information associated with the one or more samples, delinquent information is generated. To dynamically insert one or more prefetch instructions, a prefetch point is identified based on the delinquent information.
    Type: Grant
    Filed: December 19, 2003
    Date of Patent: August 18, 2009
    Assignee: Intel Corporation
    Inventors: Sreenivas Subramoney, Mauricio J. Serrano, Richard L. Hudson, Ali-Reza Adl-Tabatabai
  • Publication number: 20090198955
    Abstract: A distributed data processing system includes: (1) a first node with a processor, a first memory, and asynchronous memory mover logic; and connection mechanism that connects (2) a second node having a second memory. The processor includes processing logic for completing a cross-node asynchronous memory move (AMM) operation, wherein the processor performs a move of data in virtual address space from a first effective address to a second effective address, and the asynchronous memory mover logic completes a physical move of the data from a first memory location in the first memory having a first real address to a second memory location in the second memory having a second real address. The data is transmitted via the connection mechanism connecting the two nodes independent of the processor.
    Type: Application
    Filed: February 1, 2008
    Publication date: August 6, 2009
    Inventors: Ravi K. Arimilli, Robert S. Blackmore, Chulho Kim, Balaram Sinharoy, Hanhong Xue
  • Patent number: 7562192
    Abstract: An apparatus in a microprocessor for selectively retiring a prefetched cache line is disclosed. The microprocessor includes a prefetch buffer that stores a cache line prefetched from a system memory coupled to the microprocessor. The microprocessor also includes a cache memory, comprising an array of storage elements for storing cache lines, indexed by an index input. One of the storage elements of the array indexed by an index portion of an address of the prefetched cache line stored in the prefetch buffer is storing a replacement candidate line for the prefetched cache line. The microprocessor also includes control logic that determines whether the replacement candidate line in the cache memory is invalid, and if so, replaces the replacement candidate line in the one of the storage elements with the prefetched cache line from the prefetch buffer.
    Type: Grant
    Filed: November 27, 2006
    Date of Patent: July 14, 2009
    Assignee: Centaur Technologies
    Inventors: G. Glenn Henry, Rodney E. Hooker
  • Patent number: 7558922
    Abstract: A storage system includes a client host, a storage device, and a separate data search appliance. The client software executing on the client host composes a query and sends a data search request to the storage device. The storage device passes the received query to the connected data search appliance. The search appliance invokes search process to find search candidates using meta information of the data stored in the storage device. Upon the completion of the search process, the search appliance returns the identified search results to the storage device. Upon receipt of the search results from the search appliance, the storage device passes them to the client. At the same time, the storage device pre-fetches the actual data which corresponds to the search results into its cache memory to ensure fast future retrieval.
    Type: Grant
    Filed: December 28, 2005
    Date of Patent: July 7, 2009
    Assignee: Hitachi, Ltd.
    Inventor: Atsushi Murase
  • Patent number: 7555609
    Abstract: Systems and methods are disclosed herein for retrieving data from memory in a computer system. In one example, a memory controller is coupled to a system bus in a computer system that includes bus masters similarly coupled to the system bus. The memory controller is configured to receive requests to read or write data from memory from bus masters of the computer system. If the memory controller receives an initial request from certain bus masters, the memory controller is further configured to anticipate a future request from certain bus masters and prefetch data on behalf of certain bus masters for rapid delivery following a subsequent request to read data from memory submitted by the certain bus masters.
    Type: Grant
    Filed: October 27, 2006
    Date of Patent: June 30, 2009
    Assignee: VIA Technologies, Inc.
    Inventors: Richard Duncan, William V. Miller, Daniel Davis
  • Patent number: 7555747
    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 26, 2007
    Date of Patent: June 30, 2009
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 7552311
    Abstract: The present invention provides a memory device that can flexibly decide the data to be preread. The memory device according to the present invention includes: a nonvolatile memory; a buffer memory having a higher access speed than the nonvolatile memory; and a control circuit. The control circuit creates a preread data management table that associates a logical address of preread data specified by a preread command inputted from the outside and a buffer memory address for storing the preread data. Moreover, the control circuit reads data specified by the command from the nonvolatile memory and stores it in the buffer memory as preread data. When a logical address specified in a read command inputted from the outside matches a logical address associated by the preread data management table, the control circuit outputs corresponding preread data from the buffer memory.
    Type: Grant
    Filed: February 27, 2007
    Date of Patent: June 23, 2009
    Assignee: Renesas Technology Corp.
    Inventors: Fumio Hara, Shigemasa Shiota, Hiroyuki Goto, Hirofumi Shibuya
  • Publication number: 20090158005
    Abstract: Systems and/or methods that facilitate reading data from a memory component associated with a network are presented. A pre-fetch generation component generates a pre-fetch request based in part on a received read command. To facilitate a reduction in latency associated with transmitting the read command via an interconnect network component to which the memory component is connected, the pre-fetch request is transmitted directly to the memory component bypassing a portion of the interconnect network component. The memory component specified in the pre-fetch request receives the pre-fetch request and reads the data stored therein, and can store the read data in a buffer and/or transmit the read data to the requester via the interconnect network component, even though the read command has not yet reached the memory component. The read data is verified by comparison with the read command at a convergence point.
    Type: Application
    Filed: December 14, 2007
    Publication date: June 18, 2009
    Applicant: SPANSION LLC
    Inventor: Richard Carmichael
  • Publication number: 20090150646
    Abstract: Systems and/or methods that facilitate a search of a memory component(s) to locate a desired logical block address (LBA) associated with a memory location in a memory component are presented. Searches to locate a desired LBA(s) in a memory component(s) associated with a processor component are offloaded and controlled by the memory component(s). A search component searches pages in the memory array to facilitate locating a page of data associated with an LBA stored in the memory component. The search component can retrieve a portion of a page of data in a block in the memory component to facilitate determining whether the page contains an LBA associated with a command based in part on command information. The search component can search pages in the memory component until a desired page is located or a predetermined number of searches is performed without locating the desired page.
    Type: Application
    Filed: December 10, 2007
    Publication date: June 11, 2009
    Applicant: SPANSION LLC
    Inventors: Walter Allen, Robert France
  • Patent number: 7539844
    Abstract: A method for prefetching data from an array, A, the method including: detecting a stride, dB, of a stream of index addresses of an indirect array, B, contents of each index address having information for determining an address of an element of the array A; detecting an access pattern from the indirect array, B, to data in the array, A, wherein the detecting an access pattern includes: using a constant value of an element size, dA; using a domain size k; executing a load instruction to load bi at address, ia, and receiving index data, mbi; multiplying mbi by dA to produce the product mbi*dA; executing another load instruction to load for a column address, j, where 1?j?k, and receiving address aj; recording the difference, aj?mbi*dA; iterating the executing a load instruction, the multiplying, the executing another load instruction, and the recording to produce another difference; incrementing a counter by one if the difference and the another difference are the same; and confirming column address j when the co
    Type: Grant
    Filed: June 24, 2008
    Date of Patent: May 26, 2009
    Assignee: International Business Machines Corporation
    Inventors: Kattamuri Ekanadham, Il Park, Seetharami R. Seelam
  • Publication number: 20090132749
    Abstract: Systems and methods are disclosed for pre-fetching data into a cache memory system. These systems and methods comprise retrieving a portion of data from a system memory and storing a copy of the retrieved portion of data in a cache memory. These systems and methods further comprise monitoring data that has been placed into pre-fetch memory.
    Type: Application
    Filed: September 19, 2008
    Publication date: May 21, 2009
    Applicant: STMicroelectronics (Research & Development) Limited
    Inventors: Andrew Michael Jones, Stuart Ryan