Generating Prefetch, Look-ahead, Jump, Or Predictive Address Patents (Class 711/213)
  • Patent number: 7269663
    Abstract: Apparatus and methods are provided for a Network Address Translation (NAT)-aware unified cache. According to one embodiment, multiple packet-processing applications distributed among one or more processors of a network device share one or more unified caches without requiring a cache synchronization protocol. When a packet is received at the network device, a first packet-processing application, such as NAT or another application that modifies part of the packet header upon which a cache lookup key is based, tags the packet with a cache lookup key based upon the original contents of the packet header. Then, other packet-processing applications attempting to access the cache entry from the unified cache subsequent to the tagging by the first packet-processing application use the tag (the cache lookup key generated by the first packet-processing application) rather than determining the cache lookup key based upon the current contents of the packet header.
    Type: Grant
    Filed: September 28, 2001
    Date of Patent: September 11, 2007
    Assignee: Intel Corporation
    Inventors: Niels Beier, Jacob M. Christensen, Kjeld B. Egevang
  • Patent number: 7260704
    Abstract: A content prefetcher having a prefetch chain reinforcement mechanism. In response to a prefetch hit at a cache line within a prefetch chain, a request depth of the hit cache line is promoted and the hit cache line is scanned for candidate virtual addresses in order to reinforce the prefetch chain.
    Type: Grant
    Filed: June 5, 2002
    Date of Patent: August 21, 2007
    Assignee: Intel Corporation
    Inventors: Robert N. Cooksey, Stephan J. Jourdan
  • Patent number: 7257651
    Abstract: A method of detecting sequential data transfer requests, includes determining whether a first data transfer request crosses a boundary address, and, if it does, determining if the first data transfer request may be indicated as combinable with subsequent data transfer requests. The method may also include determining whether a previous data transfer request has been indicated as combinable, and if it has been indicated as combinable, determining that a new data transfer request is addressed adjacent to the previous data transfer request.
    Type: Grant
    Filed: March 11, 2004
    Date of Patent: August 14, 2007
    Assignee: Intel Corporation
    Inventors: Joseph S. Cavallo, Stephen J. Ippolito
  • Patent number: 7249222
    Abstract: A memory controller can perform prefetching, in a way which increases the efficiency with which data can be read from an external memory. More specifically, the memory controller operates such that it performs prefetching only under certain conditions, which are chosen such that there is a high probability that the data requested in the prefetching operation will be the data which is next required. The memory controller may be implemented in a programmable logic device (PLD), and be optimized for retrieving data from an external flash or SRAM memory device, which is used for storing configuration data for the PLD. By examining a read request, it is possible to determine whether a prefetching operation can be performed, with a high probability that it will be the required data which is prefetched.
    Type: Grant
    Filed: May 5, 2004
    Date of Patent: July 24, 2007
    Assignee: Altera Corporation
    Inventors: Andrew Bellis, Andrew Draper
  • Patent number: 7240162
    Abstract: A technique for predictive streaming involves receiving a request for a block associated with a streaming application and serving data associated with the block. A block request database is checked to predict what block is likely to be requested next based upon prior block request data. The predicted block may be identified when serving the data associated with the requested block. A system developed according to the technique includes a streaming server, a block request database, and a prediction engine that uses the block request database to predict block requests. The streaming server provides data associated with the predicted block request.
    Type: Grant
    Filed: November 12, 2004
    Date of Patent: July 3, 2007
    Assignee: Stream Theory, Inc.
    Inventor: Jeffrey de Vries
  • Patent number: 7238218
    Abstract: Prefetching data and instructions from a hierarchical memory based upon trajectories and patterns of prior memory fetches. Portions of the data are stored in a slower main memory and are transferred to faster intermediate memory between a requester and the slower main memory. The selected data items are retrieved from the slower main memory into a prefetch read buffer as an intermediate memory prior to any request from the requester for the particular selected and prefetched data. The address and size of the prefetched data is derived from the history, pattern, or trajectory of prior memory reads.
    Type: Grant
    Filed: April 6, 2004
    Date of Patent: July 3, 2007
    Assignee: International Business Machines Corporation
    Inventors: David Frank Hepner, Andrew Moy, Andrew Dale Wall
  • Patent number: 7240161
    Abstract: A disk drive control system comprising a micro-controller, a micro-controller cache system adapted to store micro-controller data for access by the micro-controller, a buffer manager adapted to provide the micro-controller cache system with micro-controller requested data stored in a remote memory, and a cache demand circuit adapted to: a) receive a memory address and a memory access signal, and b) cause the micro-controller cache system to fetch data from the remote memory via the buffer manager based on the received memory address and memory access signal prior to a micro-controller request.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: July 3, 2007
    Assignee: Western Digital Technologies, Inc.
    Inventor: William B. Boyle
  • Patent number: 7240149
    Abstract: Multiple branch operations using one or more associative memories are performed, which may be of particular use for, but is not limited to implementing security classification and access control lists. One embodiment generates a first lookup value including a first branch search level indication. A first lookup operation is performed on a set of associative memory entries based on the first lookup value to identify a first associative memory result, with each of associative memory entries including a branch level indication. The associative memory result is used to identify an adjunct memory result associated with a second branch level indication. A second lookup value is derived based on the second branch level indication. A second lookup operation is then performed on the associative memory entries based on the second lookup value to identify a second associative memory result.
    Type: Grant
    Filed: November 6, 2003
    Date of Patent: July 3, 2007
    Assignee: Cisco Technology, Inc.
    Inventors: Ashwath Nagaraj, Thomas Jeffrey Enderwick, Henry Kin-Chuen Kwok, Surya Prakash Jonnavithula, Jiing-Yang Twu
  • Patent number: 7240163
    Abstract: An apparatus in a microprocessor for selectively retiring a prefetched cache line is disclosed. In a first embodiment, a first count of the number of accesses to the prefetched cache line and N second counts of the number of accesses to N lines of a replacement candidate set of the cache selected by the prefetched cache line address are maintained. When another prefetch is requested, if the first count is greater than the smaller of the N second counts, the candidate prefetched cache line is retired into the cache; otherwise the prefetched cache line is discarded. In a second embodiment, a count of accesses to the replacement candidate line is maintained. When another prefetch is requested, if the count is greater than a programmable threshold value, the candidate prefetched cache line is retired into the cache; otherwise the prefetched cache line is discarded.
    Type: Grant
    Filed: August 8, 2005
    Date of Patent: July 3, 2007
    Assignee: IP-First, LLC
    Inventors: Glenn Henry, Rodney Hooker
  • Patent number: 7234025
    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: November 3, 2004
    Date of Patent: June 19, 2007
    Assignee: IP-First, LLC
    Inventor: Rodney E. Hooker
  • Patent number: 7234040
    Abstract: Data are prefetched into a cache from a prefetch region of memory, based on a program instruction reference and on compile-time information that indicates the bounds of the prefetch region, a size of a prefetch block, and a location of the prefetch block. If the program reference address lies with the prefetch region, an offset distance is used to determine the address of the prefetch block. Prefetching is performed either from a continuous one-dimensional prefetch region, or an embedded multi-dimensional prefetch region. The prefetch block address is respectively determined in one dimension or multiple dimensions. Program-directed prefetching is implemented by a media processor or by a separate processing component in communication with the media processor. The primary components include a program-directed prefetch controller, a cache, a function unit, and a memory. Preferably, region registers store the compile-time information, and the prefetched data are stored in a cache prefetch buffer.
    Type: Grant
    Filed: July 20, 2004
    Date of Patent: June 19, 2007
    Assignee: University of Washington
    Inventors: Stefan G. Berg, Donglok Kim, Yongmin Kim
  • Patent number: 7228387
    Abstract: A method and apparatus for adaptive multiple line prefetching. In one embodiment, the method includes the identification of a prefetch depth. As described herein, a prefetch depth may refer to a number of memory lines to be prefetched to temporary (cache) memory. Once the prefetch depth is identified, prefetching is performed according to the identified prefetch depth. During the prefetching, the prefetching is adjusted as changes in the prefetch depth are detected. Accordingly, the dynamic adaptive multi-line prefetching mechanism described herein promotes higher system performance by the use of a more efficient prefetching mechanism.
    Type: Grant
    Filed: June 30, 2003
    Date of Patent: June 5, 2007
    Assignee: Intel Corporation
    Inventors: Zhong-Ning Cai, William G. Auld, Jeffrey D. Gilbert
  • Patent number: 7225318
    Abstract: In a continuous burst memory read operation, a dynamic prefetch circuit compares a prefetched address with a received address. If the compared addresses are identical, the prefetched address is applied to the memory; else the prefetched address is preempted by the received address, the received address is coupled to the memory, and output data corresponding to the prefetched address is interrupted.
    Type: Grant
    Filed: October 8, 2003
    Date of Patent: May 29, 2007
    Assignee: Intel Corporation
    Inventors: Wayne Tran, Henry Wong
  • Patent number: 7222219
    Abstract: A signal generator detects a stage in which a central processing unit (CPU) reads an interrupt vector number from an instruction controller based on an address on an address bus and generates an address of a ROM to which the CPU makes access subsequently. The generated address is defined as a pre-reading address and this pre-reading address is supplied to the ROM via a selector before the CPU starts accessing to the ROM. In this case, an output buffer is turned off. Thereafter, when the CPU starts accessing to the ROM, the selector is switched and the output buffer is simultaneously turned on so that the address on the address bus is supplied to the ROM.
    Type: Grant
    Filed: June 8, 2004
    Date of Patent: May 22, 2007
    Assignee: DENSO Corporation
    Inventor: Takayuki Matsuda
  • Patent number: 7210020
    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: November 2, 2005
    Date of Patent: April 24, 2007
    Assignee: Micron Technology, Inc.
    Inventor: Greg A. Blodgett
  • Patent number: 7206918
    Abstract: Apparatus and methods for addressing predicting useful in high-performance computing systems. The present invention provides novel correlation prediction tables. In one embodiment, correlation prediction tables of the present invention contain an entered key for each successor value entered into the correlation table. In a second embodiment, correlation prediction tables of the present invention utilize address offsets for both the entered keys and entered successor values.
    Type: Grant
    Filed: August 12, 2004
    Date of Patent: April 17, 2007
    Assignee: Intel Corporation
    Inventors: Wayne A. Wong, Christopher B. Wilkerson
  • Patent number: 7200719
    Abstract: In one embodiment, a data processing system (10) includes a first master, storage circuitry (35) coupled to the first master (12) for use by the first master (12), a first control storage circuit (38) which stores a first prefetch limit (60), a prefetch buffer (42), and prefetch circuitry (40) coupled to the first control storage circuit, to the prefetch buffer, and to the storage circuitry. In one embodiment, the prefetch circuitry (40) selectively prefetches a predetermined number of lines from the storage circuitry into the prefetch buffer (42) based on whether or not a prefetch counter, initially set to a value indicated by the first prefetch limit, has expired. In one embodiment, the first prefetch limit may therefore be used to control how many prefetches occur between misses in the prefetch buffer.
    Type: Grant
    Filed: September 9, 2004
    Date of Patent: April 3, 2007
    Assignee: Freescale Semiconductor, Inc.
    Inventors: William C. Moyer, Lea Hwang Lee, Afzal M. Malik
  • Patent number: 7191308
    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: March 30, 2004
    Date of Patent: March 13, 2007
    Assignee: Renesas Technology Corp.
    Inventors: Fumio Hara, Shigemasa Shiota, Hiroyuki Goto, Hirofumi Shibuya
  • Patent number: 7181574
    Abstract: A method and apparatus that provides informed prefetching and enhanced memory utilization in a server cluster to improve failover and startup time of a resource group executed by a server cluster. When starting up or failing over a resource group on a given server, the method identifies information for prefetching, informs a file system executed by the server cluster of the identified information, accesses the identified information using the file system, and stores the identified information in main memory for use by the server in the server cluster in advance of when the server actually will need the identified information to failover or initiate resources. To enhance memory utilization the method also identifies pages in cache memory that are not needed for current services provided by a server. Generally these pages contain prefetched information that was already used at start up or failover of a resource group.
    Type: Grant
    Filed: January 30, 2003
    Date of Patent: February 20, 2007
    Assignee: Veritas Operating Corporation
    Inventor: Abhijeet A. Lele
  • Patent number: 7177985
    Abstract: A microprocessor with multiple stream prefetch engines each executing a stream prefetch instruction to prefetch a complex data stream specified by the instruction in a manner synchronized with program execution of loads from the stream is provided. The stream prefetch engine stays at least a fetch-ahead distance (specified in the instruction) ahead of the program loads, which may randomly access the stream. The instruction specifies a level in the cache hierarchy to prefetch into, a locality indicator to specify the urgency and ephemerality of the stream, a stream prefetch priority, a TLB miss policy, a page fault miss policy, a protection violation policy, and a hysteresis value, specifying a minimum number of bytes to prefetch when the stream prefetch engine resumes prefetching. The memory subsystem includes a separate TLB for stream prefetches; or a joint TLB backing the stream prefetch TLB and load/store TLB; or a separate TLB for each prefetch engine.
    Type: Grant
    Filed: May 30, 2003
    Date of Patent: February 13, 2007
    Assignee: MIPS Technologies, Inc.
    Inventor: Keith E. Diefendorff
  • Patent number: 7174442
    Abstract: A method of carrying out a data fetch operation for a data-parallel processor such as a SIMD processor is described. The operation is specifically involving the use of a plurality of non-sequential data addresses. The method comprises constructing a linear address vector from the non-sequential addresses, and using the address vector in a block fetch command to a data store.
    Type: Grant
    Filed: November 21, 2001
    Date of Patent: February 6, 2007
    Assignee: Aspex Technology Limited
    Inventors: John Lancaster, Martin Whitaker
  • Patent number: 7162588
    Abstract: Memory pages within a memory subsystem are typically accessed using an off chip memory controller coupled to an external bus. Data elements, in the form of a cache line, propagate along the external bus to the processor. Cache line pre-fetching provides a cache line from the memory subsystem to fulfill the processor request. Unfortunately, when the memory subsystem is being accessed by a fetch operation, a subsequent fetch request cannot access the memory subsystem until the previous transaction has completed. Thus subsequent transactions must wait until the previous transaction is completed. This waiting typically results in processor stall cycles, where the processor is stalled in waiting for the memory subsystem to become available. This is especially evident in multi-processor systems, where the addition of another processor does not cause the processing bandwidth to increase substantially. Especially when the processors are waiting for each other's memory subsystem transactions to complete.
    Type: Grant
    Filed: August 23, 2002
    Date of Patent: January 9, 2007
    Assignee: Koninklijke Philips Electronics N.V.
    Inventor: Jan-Willem van de Waerdt
  • Patent number: 7146467
    Abstract: Exemplary systems, methods, and devices employ receiving an operational parameter characteristic of a storage device, and adapting a read cache pre-fetch depth based in part on the operational parameter. An exemplary device includes a read cache memory and a read cache pre-fetch adaptation module operable to generate an operational parameter and vary read cache pre-fetch depth in response to the operational parameter.
    Type: Grant
    Filed: April 14, 2003
    Date of Patent: December 5, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Brian S. Bearden, David K. Umberger, Guillermo Navarro
  • Patent number: 7143264
    Abstract: An apparatus and method for performing data access in accordance with memory access patterns are described. In one embodiment, the method includes the determination, in response to a memory access instruction, of a memory access pattern of data requested by the memory access instruction. Once the memory access pattern is determined, the data requested by the memory access instruction is accessed according to the determined memory access pattern. Finally, once the data is accessed, the data is processed according to the memory access instruction. Accordingly, in this embodiment of the present invention, data is accessed according to memory access patterns including zig-zag patterns scan, Zerotree scan, bit plane extraction, fine granularity scalability or the like.
    Type: Grant
    Filed: October 10, 2002
    Date of Patent: November 28, 2006
    Assignee: Intel Corporation
    Inventors: Eric Debes, Yen-Kuang Chen, Matthew J. Holliman, Minerva M. Yeung
  • Patent number: 7139874
    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: November 9, 2004
    Date of Patent: November 21, 2006
    Assignee: Storage Technology Corporation
    Inventors: Michael S. Milillo, Christopher J. West
  • Patent number: 7127586
    Abstract: A processor capable of executing prefetching instructions containing hint fields is provided. The hint fields contain a first portion which enables the selection of a destination indicator for refill operations, and a second portion which identifies a destination.
    Type: Grant
    Filed: March 12, 2001
    Date of Patent: October 24, 2006
    Assignee: MIPS Technologies, Inc.
    Inventor: Todd C. Mowry
  • Patent number: 7123620
    Abstract: A global path identifier is assigned to each explicit route through a data communication network. The global path identifier is inserted into each packet as the packet enters a network and is used in selecting the next hop. When encountering a new selected path, an ingress router sends an explicit object to downstream nodes of the path to set up explicit routes by caching the next hop in an Explicit Forwarding Information Base (“EFIB”) table. Ingress routers maintain an Explicit Route Table (“ERT”) that tracks the global path identifier associated with each flow through the network. Multiple flows using the same path can be implemented by sharing the same global path identifier. In case of sudden network load changes, rerouting can be performed by changing the global path identifier associated with those flows that need to be rerouted and by then transmitting a new path object to downstream nodes.
    Type: Grant
    Filed: April 25, 2000
    Date of Patent: October 17, 2006
    Assignee: Cisco Technology, Inc.
    Inventor: Qingming Ma
  • Patent number: 7124277
    Abstract: A method and apparatus for a trace end predictor for a trace cache is disclosed. In one embodiment, the trace end predictor may have one or more buffers to contain a head address for a subsequent trace. The head address may include the way number and set number of the next head, along with partial stew data to support additional execution predictors. The buffers may also include tag data of the current trace's tail address, and may additionally include control bits for determining whether to replace the buffer's contents with information from another trace's tail. Reading the next head address from the trace end predictor, as opposed to reading it from the trace cache array, may reduce certain execution time delays.
    Type: Grant
    Filed: August 22, 2003
    Date of Patent: October 17, 2006
    Assignee: Intel Corporation
    Inventors: Subramaniam Maiyuran, Peter J. Smith, Niranjan L. Cooray, Asim Nisar
  • Patent number: 7120753
    Abstract: A system and method for dynamically altering a Virtual Memory Manager (VMM) Sequential-Access Read Ahead settings based upon current system memory conditions is provided. Normal VMM operations are performed using the Sequential-Access Read Ahead values set by the user. When low memory is detected, the system either turns off Sequential-Access Read Ahead operations or decreases the maximum page ahead (maxpgahead) value based upon whether the amount of free space is simply low or has reached a critically low level. The altered VMM Sequential-Access Read Ahead state remains in effect until enough free space is available so that normal VMM Sequential-Access Read Ahead operations can be performed (at which point the altered Sequential-Access Read Ahead values are reset to their original levels).
    Type: Grant
    Filed: April 20, 2004
    Date of Patent: October 10, 2006
    Assignee: International Business Machines Corporation
    Inventors: Jos Manuel Accapadi, Andrew Dunshea, Li Li, Grover Herbert Neuman, Mysore Sathyanarayana Srinivas, David Alan Hepkin
  • Patent number: 7117309
    Abstract: Exemplary systems and methods analyze cache data to detect a sequential workload to facilitate pre-fetching effectiveness. An exemplary address analysis module for sequential workload detection generates one or more addresses related to a host address. If the cache memory contains data corresponding to one or more of the related addresses, a sequential workload may be occurring, and a read pre-fetch operation may be triggered. An indexing module may be used to map host and related addresses to corresponding indices in cache memory.
    Type: Grant
    Filed: April 14, 2003
    Date of Patent: October 3, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Brian S. Bearden
  • Patent number: 7110373
    Abstract: An apparatus and a method for controlling memory in a base station modem supporting multi-users including a memory divided into logical blocks for supporting the multi-users, and a controller for allocating the memory blocks dynamically in hardware. This allows non-continuous memory allocation and the size of memory can be increased or reduced during operation through the dynamic allocation structure of the memory.
    Type: Grant
    Filed: December 23, 2002
    Date of Patent: September 19, 2006
    Assignee: LG Electronics Inc.
    Inventor: Dong-Sun Lee
  • Patent number: 7103724
    Abstract: Briefly, in accordance with an embodiment of the invention, a method to generate cache data is provided, wherein the method includes identifying access data transmitted from a storage device during execution of a predetermined software program and generating cache data using the identified access data.
    Type: Grant
    Filed: April 1, 2002
    Date of Patent: September 5, 2006
    Assignee: Intel Corporation
    Inventors: Robert J Royer, Jr., Knut S. Grimsrud
  • Patent number: 7100019
    Abstract: A system and method for calculating memory addresses in a partitioned memory in a processing system having a processing unit, input and output units, a program sequencer and an external interface. An address calculator includes a set of storage elements, such as registers, and an arithmetic unit for calculating a memory address of a vector element dependent upon values stored in the storage elements and the address of a previous vector element. The storage elements hold STRIDE, SKIP and SPAN values and optionally a TYPE value, relating to the spacing between elements in the same partition, the spacing between elements in the consecutive partitions, the number of elements in a partition and the size of a vector element, respectively.
    Type: Grant
    Filed: September 8, 2003
    Date of Patent: August 29, 2006
    Assignee: Motorola, Inc.
    Inventors: James M. Norris, Philip E. May, Kent D. Moat, Raymond B. Essick, IV, Brian G. Lucas
  • Patent number: 7093077
    Abstract: A method and apparatus for issuing one or more next-line prefetch requests from a predicted memory address. The first issued next-line prefetch request corresponds to a cache line having a memory address contiguous with the predicted memory address. Any subsequent next-line prefetch request corresponds to a cache line having a memory address contiguous with a memory address associated with a preceding next-line prefetch request.
    Type: Grant
    Filed: June 5, 2002
    Date of Patent: August 15, 2006
    Assignee: Intel Corporation
    Inventors: Robert N. Cooksey, Stephan J. Jourdan
  • Patent number: 7089399
    Abstract: In an example embodiment, an adaptive method of prefetching data blocks from an input/output device comprises predicting the address of each read operation reading a data block from the input/output device, the prediction based on the address of the immediately preceding read operation from the input/output device; tracking, for each read operation, whether each read operation reads a block data from the same address of the input/output device predicted for the read operation; and prefetching a data block for a read operation from the input/output device in accordance with the state of a state machine, the state of the state machine depending upon whether immediately preceding read operations read a data block from the same address of the input/output device predicted for the read operations.
    Type: Grant
    Filed: September 11, 2003
    Date of Patent: August 8, 2006
    Assignee: Intel Corporation
    Inventor: Raymond S. Tetrick
  • Patent number: 7085912
    Abstract: Methods of operating a memory device comprised of a plurality of arrays of memory cells and peripheral devices for reading and writing information to the memory cells. One method comprises outputting an n-bit word in two ½n bit prefetch steps from a plurality of memory arrays in response to an address bit. Another method comprises prefetching a first portion of a word from a memory array, and prefetching a second portion of the word from the memory array, the first and second portions being determined by an address bit. Another method comprises reading a word from a memory array in at least two prefetch operations, wherein the order of the prefetch operations is controlled by an address bit.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: August 1, 2006
    Assignee: Micron Technology, Inc.
    Inventor: Jeffery W. Janzen
  • Patent number: 7076635
    Abstract: A method and apparatus for reducing instruction ITLB accesses. In one embodiment, the method may comprise generating a next virtual fetch address corresponding to an instruction fetch request and determining whether a current physical address translation is valid for the next virtual fetch address in response to its generation, wherein the determination may comprise detecting a change in the virtual page number of the next virtual fetch address relative to a virtual page number of a current virtual fetch address. The method may further comprise activating an ITLB circuit in response to determining that the current physical address translation is not valid for the next virtual fetch address, and performing the instruction fetch using the current physical address translation without activating the ITLB circuit in response to determining that the current physical address translation is valid for said next virtual fetch address.
    Type: Grant
    Filed: September 4, 2003
    Date of Patent: July 11, 2006
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Michael G. Butler, S. Craig Nelson
  • Patent number: 7073045
    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: Grant
    Filed: March 11, 2004
    Date of Patent: July 4, 2006
    Assignee: Fujitsu Limited
    Inventors: Akio Hara, Masaaki Tani, Kenji Furuya
  • Patent number: 7062632
    Abstract: The present invention is based on the finding that free CPU operation code identifiers of a CPU or CPU operation code identifiers useable for any reason can be used to control supporting means upstream of the CPU, which is able to form, responsive to these operation code identifiers, a new, for example, physical address in relation to a second memory area having a second memory which is larger than the, for example, logic memory size addressable by the CPU. By means of the special operation code identifiers, it is thus possible in the course of an executable machine code to address the supporting means which monitors the data traffic via which the operation codes to be processed or the operation code identifiers are provided to the CPU, from the memory to the CPU, and which can take measures in relation to the new formed address when certain special operation code identifiers occur.
    Type: Grant
    Filed: January 16, 2004
    Date of Patent: June 13, 2006
    Assignee: Infineon Technologies AG
    Inventors: Juergen Freiwald, Dirk Rabe
  • Patent number: 7058760
    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: November 9, 2004
    Date of Patent: June 6, 2006
    Assignee: Fujitsu Limited
    Inventors: Yoshiyuki Ohta, Katsuhiko Nishikawa
  • Patent number: 7055016
    Abstract: A computer system including a memory controller configured to perform pre-fetch operations. A computer system includes a first system memory, a second system memory and a first and a second memory controller which are coupled to the first and second system memories, respectively. Each system memory may include at least one memory module including volatile storage. The first memory controller may be configured read data from the first system memory corresponding to an address of a current memory request. Further the second memory controller may be configured to selectively pre-fetch data from the second system memory depending upon selected address bits of the address of the current memory request.
    Type: Grant
    Filed: April 30, 2003
    Date of Patent: May 30, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Andrew E. Phelps, Anders Landin, Jurgen Schulz
  • Patent number: 7032076
    Abstract: A method and apparatus to detect and filter out redundant cache line addresses in a prefetch input queue, and to adjust the detector window size dynamically according to the number of detector entries in the queue for the cache-to-memory controller bus. Detectors correspond to cache line addresses that may represent cache misses in various levels of cache memory.
    Type: Grant
    Filed: September 16, 2002
    Date of Patent: April 18, 2006
    Assignee: Intel Corporation
    Inventors: Eric A. Sprangle, Anwar Q. Rohillah
  • Patent number: 7028160
    Abstract: An information processing system includes a processing unit which executes a prefetch instruction included as one of a plurality of instructions of a program in a main memory two hierarchical level caches connected to the processing unit and the main memory as arranged so that a primary cache close to the processing unit is a first level cache, and a secondary cache close to the main memory is a second level cache. The prefetch instruction, when executed, causes the processing unit to perform a prefetch operation by transferring operand data to be used in a subsequent load instruction from the main memory to the two hierarchical level data caches, prior to executing the subsequent load instruction. The prefetch instruction includes a plurality of indication bits for specifying cache levels to which the operand data is to be transferred.
    Type: Grant
    Filed: June 19, 2003
    Date of Patent: April 11, 2006
    Assignee: Hitachi, Ltd.
    Inventors: Kenji Matsubara, Toshihiko Kurihara, Hiromitsu Imori
  • Patent number: 7028159
    Abstract: An information processing system which includes a main memory, a processing unit which executes a prefetch instruction included as one of a plurality of instructions of a program in the main memory, an internal cache controlled as a first level cache, and a cache control function which controls an external cache external of the processing unit as a second level cache. The prefetch instruction, when executed, causes the processing unit to selectively perform a prefetch operation by transferring operand data to be used in a subsequent load instruction from the main memory to the first and second level caches or the second level cache only, prior to executing the subsequent load instruction. The prefetch instruction includes a plurality of indication bits for specifying cache levels to which the operand data is to be transferred.
    Type: Grant
    Filed: April 29, 2003
    Date of Patent: April 11, 2006
    Assignee: Hitachi, Ltd.
    Inventors: Kenji Matsubara, Toshihiko Kurihara, Hiromitsu Imori
  • Patent number: 7024663
    Abstract: A method and system are described for generating reference tables in object code which specify the addresses of branches, routines called, and data references used by routines in the code. In a suitably equipped processing system, the reference tables can be passed to a memory management processor which can open the appropriate memory pages to expedite the retrieval of data referenced in the execution pipeline. The disclosed method and system create such reference tables at the beginning of each routine so that the table can be passed to the memory management processor in a suitably equipped processor. Resulting object code also allows processors lacking a suitable memory management processor to skip the reference table, preserving upward compatibility.
    Type: Grant
    Filed: July 10, 2002
    Date of Patent: April 4, 2006
    Assignee: Micron Technology, Inc.
    Inventor: Dean A. Klein
  • Patent number: 7024537
    Abstract: A system may include a memory file and an execution core. The memory file may include an entry configured to store an addressing pattern and a tag. If an addressing pattern of a memory operation matches the addressing pattern stored in the entry, the memory file may be configured to link a data value identified by the tag to a speculative result of the memory operation. The addressing pattern of the memory operation includes an identifier of a logical register, and the memory file may be configured to predict whether the logical register is being specified as a general purpose register or a stack frame pointer register in order to determine whether the addressing pattern of the memory operation matches the addressing pattern stored in the entry. The execution core may be configured to access the speculative result when executing another operation that is dependent on the memory operation.
    Type: Grant
    Filed: January 21, 2003
    Date of Patent: April 4, 2006
    Assignee: Advanced Micro Devices, Inc.
    Inventors: James K. Pickett, Benjamin Thomas Sander, Kevin Michael Lepak
  • Patent number: 7020749
    Abstract: A signal processor including a processor having a cache memory and a process execution unit executing a process by use of information temporarily stored in the cache memory and an external memory provided external to the processor. In the signal processor, the process execution unit automatically returns to a start point of a loop-type data at an end of the loop-type data and sequentially reads out the loop-type data from the external memory to the cache memory.
    Type: Grant
    Filed: June 4, 2003
    Date of Patent: March 28, 2006
    Assignee: Kabushiki Kaisha Toshiba
    Inventor: Tetsuhiko Azuma
  • Patent number: 7017010
    Abstract: The present invention provides a dual data rate (DDR) integrated circuit memory device that is configured to support an N to 2N prefetch-to-burst length mode of operation. The DDR integrated circuit memory device is further configured to support a sequential address increase scheme and an interleave address increase scheme.
    Type: Grant
    Filed: January 8, 2003
    Date of Patent: March 21, 2006
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: One-gyun La
  • Patent number: 7017026
    Abstract: Apparatus and methods to track a register value. A microprocessor can include a first register, a control circuit, and an adder. The first register can store a tracked register value. The control circuit can include an instruction input to receive at least a portion of an instruction and a first output to output an arithmetic operation indication. The adder can include a control input to receive the arithmetic operation indication, a first input to receive an immediate operand of an instruction, and a second input to receive the tracked register value.
    Type: Grant
    Filed: May 18, 2004
    Date of Patent: March 21, 2006
    Assignee: SAE Magnetics (H.K.) Ltd.
    Inventors: Adi Yoaz, Ronny Ronen, Stephan J. Jourdan, Michael Bekerman
  • Patent number: 7010579
    Abstract: A system of data transfer between a first processing device and a second processing device which speeds data transfer by eliminating intermediate storage steps. A plurality of memory storage devices are provided between the first and second processing devices for the purpose of synchronization and alignment. One of the memory storage devices is associated with the second processing device. In accordance with a first embodiment of the present invention, a new instruction is provided to implement a data transfer function for transferring data directly between a first memory storage device and a second memory storage device, without intermediate storage in a processor register. Thereafter, the data is transferred from the second memory storage device to the memory storage device associated with the second processing device.
    Type: Grant
    Filed: September 26, 2000
    Date of Patent: March 7, 2006
    Assignee: Cisco Technology, Inc.
    Inventor: Kenneth W. Batcher