Generating Prefetch, Look-ahead, Jump, Or Predictive Address Patents (Class 711/213)
-
Publication number: 20110078407Abstract: 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: ApplicationFiled: September 25, 2009Publication date: March 31, 2011Inventor: Russell Lee Lewis
-
Patent number: 7904660Abstract: 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: GrantFiled: August 23, 2007Date of Patent: March 8, 2011Assignee: International Business Machines CorporationInventor: Peter Franaszek
-
Patent number: 7904604Abstract: 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: GrantFiled: July 19, 2004Date of Patent: March 8, 2011Assignee: Seagate Technology LLCInventors: CheeWai Lum, KokChoon See, LingLing Chua
-
Patent number: 7900019Abstract: 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: GrantFiled: May 1, 2006Date of Patent: March 1, 2011Assignee: ARM LimitedInventors: Vladimir Vasekin, Andrew Christopher Rose, David Kevin Hart, Javed Osmany
-
Patent number: 7895399Abstract: 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: GrantFiled: February 13, 2007Date of Patent: February 22, 2011Assignee: Hitachi, Ltd.Inventors: Aki Tomita, Naonobu Sukegawa
-
Patent number: 7890942Abstract: 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: GrantFiled: August 15, 2006Date of Patent: February 15, 2011Assignee: International Business Machines CorporationInventor: Rohini Nair
-
Patent number: 7881320Abstract: 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: GrantFiled: December 12, 2005Date of Patent: February 1, 2011Assignee: Xilinx, Inc.Inventors: Paul R. Schumacher, Kornelis Antonius Vissers
-
Publication number: 20110010347Abstract: 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: ApplicationFiled: July 23, 2010Publication date: January 13, 2011Applicant: Hicamp Systems, Inc.Inventors: David R. Cheriton, Amin Firoozshahian, Alexandre Y. Solomatnikov
-
Publication number: 20110010521Abstract: 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: ApplicationFiled: July 13, 2009Publication date: January 13, 2011Inventors: James Wang, Zongjian Chen
-
Patent number: 7840761Abstract: 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: GrantFiled: April 1, 2005Date of Patent: November 23, 2010Assignee: STMicroelectronics, Inc.Inventors: Osvaldo M. Colavin, Davide Rizzo
-
Patent number: 7831800Abstract: 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: GrantFiled: May 17, 2007Date of Patent: November 9, 2010Inventor: Andrej Kocev
-
Patent number: 7831799Abstract: 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: GrantFiled: November 1, 2004Date of Patent: November 9, 2010Inventor: Richard Belgard
-
Patent number: 7827359Abstract: 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: GrantFiled: December 14, 2007Date of Patent: November 2, 2010Assignee: Spansion LLCInventor: Richard Carmichael
-
Patent number: 7822943Abstract: Systems, methods and computer program products for improving data stream prefetching in a microprocessor are described herein.Type: GrantFiled: August 4, 2008Date of Patent: October 26, 2010Assignee: MIPS Technologies, Inc.Inventor: Keith E. Diefendorff
-
Patent number: 7818514Abstract: 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: GrantFiled: August 22, 2008Date of Patent: October 19, 2010Assignee: International Business Machines CorporationInventors: 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: 7814247Abstract: 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: GrantFiled: July 18, 2008Date of Patent: October 12, 2010Assignee: Hynix Semiconductor Inc.Inventor: Young-Ju Kim
-
Patent number: 7814469Abstract: 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: GrantFiled: April 24, 2003Date of Patent: October 12, 2010Assignee: Intel CorporationInventors: 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: 7774578Abstract: 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: GrantFiled: June 7, 2006Date of Patent: August 10, 2010Assignee: Advanced Micro Devices, Inc.Inventor: Paul S. Keltcher
-
Patent number: 7765360Abstract: 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: GrantFiled: October 1, 2008Date of Patent: July 27, 2010Assignee: International Business Machines CorporationInventors: John Kevin Patrick O'Brien, Kathryn O'Brien
-
Publication number: 20100180099Abstract: 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: ApplicationFiled: April 28, 2009Publication date: July 15, 2010Applicant: VIA TECHNOLOGIES, INC.Inventor: Haihui Xu
-
Patent number: 7739478Abstract: 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: GrantFiled: March 8, 2007Date of Patent: June 15, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Judson E. Veazey, Blaine D. Gaither
-
Patent number: 7739483Abstract: 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: GrantFiled: September 28, 2001Date of Patent: June 15, 2010Assignee: Intel CorporationInventors: Rajesh Patel, James Dundas, Adi Yoaz
-
Patent number: 7725654Abstract: 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: GrantFiled: July 25, 2006Date of Patent: May 25, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Michael B. Jacobson, David R. Eagleton, Douglas L. Hagerman
-
Patent number: 7716418Abstract: 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: GrantFiled: September 20, 2005Date of Patent: May 11, 2010Assignee: Koninklijke Philips Electronics N.V.Inventors: Stephanus Josephus Maria Van Beckhoven, Robert Albertus Brondijk, Pope Ijtsma, Joze Geelen, Hiroki Ohira
-
Patent number: 7689774Abstract: 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: GrantFiled: April 6, 2007Date of Patent: March 30, 2010Assignee: International Business Machines CorporationInventors: Francis Patrick O'Connell, Jeffrey A. Stuecheli
-
Patent number: 7681188Abstract: 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: GrantFiled: April 29, 2005Date of Patent: March 16, 2010Assignee: Sun Microsystems, Inc.Inventors: Partha P. Tirumalai, Spiros Kalogeropulos, Yonghong Song
-
Patent number: 7657880Abstract: 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: GrantFiled: August 1, 2003Date of Patent: February 2, 2010Assignee: Intel CorporationInventors: Hong Wang, Tor Aamodt, Per Hammarlund, John Shen, Xinmin Tian, Milind Girkar, Perry Wang, Steve Shih-wei Liao
-
Patent number: 7657726Abstract: 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: GrantFiled: October 25, 2007Date of Patent: February 2, 2010Assignee: International Business Machines CorporationInventors: Philip George Emma, Allan Mark Hartstein, Brian R. Prasky, Thomas Roberts Puzak, Moinuddin Khalil Ahmed Qureshi, Vijayalakshmi Srinivasan
-
Patent number: 7657723Abstract: 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: GrantFiled: January 28, 2009Date of Patent: February 2, 2010Assignee: Micron Technology, Inc.Inventor: Dean A. Klein
-
Publication number: 20100011170Abstract: 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: ApplicationFiled: June 29, 2009Publication date: January 14, 2010Applicant: NEC Electronics CorporationInventors: Tohru MURAYAMA, Hideyuki Miwa
-
Publication number: 20100005272Abstract: 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: ApplicationFiled: April 19, 2005Publication date: January 7, 2010Inventors: Miljan Vuletic, Laura Pozzi, Paolo Ienne
-
Patent number: 7644253Abstract: 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: GrantFiled: November 1, 2006Date of Patent: January 5, 2010Assignee: Micron Technology, Inc.Inventor: Joseph M. Jeddeloh
-
Patent number: 7640400Abstract: 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: GrantFiled: April 10, 2007Date of Patent: December 29, 2009Assignee: International Business Machines CorporationInventors: William A. Maron, Greg R. Mewhinney, Mysore S. Srinivas, David B. Whitworth
-
Patent number: 7634636Abstract: 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: GrantFiled: June 22, 2006Date of Patent: December 15, 2009Assignee: Intel CorporationInventors: Uri Frank, Ram Kenyagin
-
Publication number: 20090300320Abstract: 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: ApplicationFiled: May 28, 2008Publication date: December 3, 2009Inventor: Jing Zhang
-
Publication number: 20090287903Abstract: 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: ApplicationFiled: May 16, 2008Publication date: November 19, 2009Inventors: Wei Chung Hsu, Yuan C. Chou
-
Patent number: 7617354Abstract: 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: GrantFiled: March 8, 2007Date of Patent: November 10, 2009Assignee: Qimonda North America Corp.Inventor: Jong-Hoon Oh
-
Publication number: 20090254733Abstract: 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: ApplicationFiled: April 4, 2008Publication date: October 8, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Tong Chen, Marc Gonzalez tallada, Zehra N. Sura, Tao Zhang
-
Patent number: 7577956Abstract: 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: GrantFiled: July 14, 2006Date of Patent: August 18, 2009Assignee: International Business Machines CorporationInventors: 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: 7577947Abstract: 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: GrantFiled: December 19, 2003Date of Patent: August 18, 2009Assignee: Intel CorporationInventors: Sreenivas Subramoney, Mauricio J. Serrano, Richard L. Hudson, Ali-Reza Adl-Tabatabai
-
Publication number: 20090198955Abstract: 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: ApplicationFiled: February 1, 2008Publication date: August 6, 2009Inventors: Ravi K. Arimilli, Robert S. Blackmore, Chulho Kim, Balaram Sinharoy, Hanhong Xue
-
Patent number: 7562192Abstract: 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: GrantFiled: November 27, 2006Date of Patent: July 14, 2009Assignee: Centaur TechnologiesInventors: G. Glenn Henry, Rodney E. Hooker
-
Patent number: 7558922Abstract: 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: GrantFiled: December 28, 2005Date of Patent: July 7, 2009Assignee: Hitachi, Ltd.Inventor: Atsushi Murase
-
Patent number: 7555609Abstract: 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: GrantFiled: October 27, 2006Date of Patent: June 30, 2009Assignee: VIA Technologies, Inc.Inventors: Richard Duncan, William V. Miller, Daniel Davis
-
Patent number: 7555747Abstract: 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: GrantFiled: September 26, 2007Date of Patent: June 30, 2009Assignee: VMware, Inc.Inventor: Ole Agesen
-
Patent number: 7552311Abstract: 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: GrantFiled: February 27, 2007Date of Patent: June 23, 2009Assignee: Renesas Technology Corp.Inventors: Fumio Hara, Shigemasa Shiota, Hiroyuki Goto, Hirofumi Shibuya
-
Publication number: 20090158005Abstract: 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: ApplicationFiled: December 14, 2007Publication date: June 18, 2009Applicant: SPANSION LLCInventor: Richard Carmichael
-
Publication number: 20090150646Abstract: 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: ApplicationFiled: December 10, 2007Publication date: June 11, 2009Applicant: SPANSION LLCInventors: Walter Allen, Robert France
-
Patent number: 7539844Abstract: 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 coType: GrantFiled: June 24, 2008Date of Patent: May 26, 2009Assignee: International Business Machines CorporationInventors: Kattamuri Ekanadham, Il Park, Seetharami R. Seelam
-
Publication number: 20090132749Abstract: 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: ApplicationFiled: September 19, 2008Publication date: May 21, 2009Applicant: STMicroelectronics (Research & Development) LimitedInventors: Andrew Michael Jones, Stuart Ryan