Multiport Cache Patents (Class 711/131)
  • Patent number: 6317810
    Abstract: A central processing unit of a computer includes a single-ported data cache and a dual-ported prefetch cache. The data cache accommodates a first pipeline and the prefetch cache, which is much smaller than the data cache, accommodates both the first pipeline and a second pipeline. If a data cache miss occurs, a row of data corresponding to the specified address is stored in the data cache and the prefetch cache. Thereafter, if a prefetch cache hit occurs, a row of data corresponding to a prefetch address is loaded into the prefetch cache. The prefetch address may, for instance, be generated by adding a fixed increment to the specified address. This operation frequently results in the prefetch cache storing data soon requested by a computer program. When this condition is achieved, the data corresponding to the subsequent address request is rapidly retrieved from cache memory without incurring memory latencies associated with the external cache, the primary memory, and the secondary memory.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: November 13, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Herbert Lopez-Aguado, Denise Chiacchia, William L. Lynch, Gary Lauterbach
  • Patent number: 6298423
    Abstract: A load/store functional unit and a corresponding data cache of a superscalar microprocessor is disclosed. The load/store functional unit includes a plurality of reservation station entries which are accessed in parallel and which are coupled to the data cache in parallel. The load/store functional unit also includes a store buffer circuit having a plurality of store buffer entries. The store buffer entries are organized to provide a first in first out buffer where the outputs from less significant entries of the buffer are provided as inputs to more significant entries of the buffer.
    Type: Grant
    Filed: August 26, 1996
    Date of Patent: October 2, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: William M. Johnson, David B. Witt, Murali Chinnakonda
  • Patent number: 6289417
    Abstract: A microprocessor system comprising a register bank 6 and an execution unit 8 incorporating a barrel shifter 10 and an ALU 12 is provided. The register bank 6 has X read ports whilst at least some of the program instructions require Y input operands to be read from the register bank 6, where Y is greater than X. A cache register 18 is provided that caches previously read input operands for supply to the barrel shifter 10 and if it is detected that the same register is being read a second or subsequent time then this cached value is supplied to the barrel shifter 10 rather than requiring a further read from the register bank 6. A tag register 20 associated with each cache register 18 draws data indicating from which register within the register bank 6 the cached data value was copied. A valid flag 22 indicates that that cached data value is still current, i.e. at the corresponding register within the register bank 6 has not been overwritten.
    Type: Grant
    Filed: May 18, 1998
    Date of Patent: September 11, 2001
    Assignee: ARM Limited
    Inventor: Guy Larri
  • Patent number: 6279050
    Abstract: A plurality of state machines arranged into three functional units, an Upper Machine, Middle Machine and a Lower Machine facilitate movement of user data between a buffer memory and a Global Memory (GM) in a data transfer interface. The Middle Machine controls all data movement to and from the GM. Although not directly in the data path, it is responsible for coordinating control between elements that comprise data transfer channels. The Middle Machine is interconnected to and provides control and coordination between the Upper and Lower sides of the buffer memory. The Lower Machine connects to a data assembly mechanism of each pipe. The Upper Machine connects to the backplane, which in turn connects to Global Memory. The actual data transfers between the buffer memory and GM are controlled by the Upper Machine, and transfers between the buffer memory and the data assembly mechanism are controlled by the Lower Machine.
    Type: Grant
    Filed: December 18, 1998
    Date of Patent: August 21, 2001
    Assignee: EMC Corporation
    Inventors: Kendell Alan Chilton, Miklos Sandorfi, Man Min Moy (Joshua), Brian K. Campbell
  • Patent number: 6279076
    Abstract: The invention provides a method and apparatus for caching data in a highly efficient fashion during a data reproducing process thereby reducing the access time. In the case where it is determined that the type of a data request is not a sequential data request, the cache memory is divided into a plurality of memory segments and data is stored in a particular memory segment so that the existing data buffered in the cache memory is further kept in the respective segments without being entirely purged even in a mode other than the sequential reading mode. This makes it possible that the data kept in the cache memory (without being purged) is used, for example, in a two-point reading operation performed in response to the following data transfer request. Yet, even in the random reading mode, the data buffered in the past is kept in the divided segments of the cache memory as long as possible so as to maximize the probability that requested data can be found in the cache memory in the future operations.
    Type: Grant
    Filed: November 2, 1998
    Date of Patent: August 21, 2001
    Assignee: Sony Corporation
    Inventors: Yukio Shishido, Shuichi Kobayashi
  • Patent number: 6272597
    Abstract: A novel on-chip cache memory and method of operation are provided which increase microprocessor performance. The on-chip cache memory has two levels. The first level is optimized for low latency and the second level is optimized for capacity. Both levels of cache are pipelined and can support simultaneous dual port accesses. A queuing structure is provided between the first and second level of cache which is used to decouple the faster first level cache from the slower second level cache. The queuing structure is also dual ported. Both levels of cache support non-blocking behavior. When there is a cache miss at one level of cache, both caches can continue to process other cache hits and misses. The first level cache is optimized for integer data. The second level cache can store any data type including floating point. The novel two-level cache system of the present invention provides high performance which emphasizes throughput.
    Type: Grant
    Filed: December 31, 1998
    Date of Patent: August 7, 2001
    Assignee: Intel Corporation
    Inventors: John Wai Cheong Fu, Dean A. Mulla, Gregory S. Mathews, Stuart E. Sailer
  • Patent number: 6263402
    Abstract: A method of dealing with inquiries for data-information within a network is presented. A cache, which includes a number of nodes, acts within the network. Data-information may be stored in any of the cache nodes and may be available for a given period of time. The cache nodes are arranged in a hierarchical node tree structure. This tree structure includes a plurality of object nodes, a plurality of directory nodes, and a root node. The root node constitutes the root of the tree structure and the object nodes are positioned furthest out in the tree structure. All data-information is stored within object nodes. Any intermediate levels between an object node and the root node are comprised of directory nodes. The directory nodes and the root node include a directory that covers all data-information stored within object nodes that are located beneath the node in the tree structure and within which object node respective data-information is stored.
    Type: Grant
    Filed: January 31, 2000
    Date of Patent: July 17, 2001
    Assignee: Telefonaktiebolaget LM Ericsson (publ)
    Inventors: Ulf Mikael Ronström, Sven Patrik Johansson
  • Patent number: 6237066
    Abstract: One embodiment of the present invention provides an apparatus that supports multiple outstanding load and/or store requests from an execution engine to multiple sources of data in a computer system. This apparatus includes a load store unit coupled to the execution engine, a first data source and a second data source. This load store unit includes a load address buffer, which contains addresses for multiple outstanding load requests. The load store unit also includes a controller that coordinates data flow between the load address buffer, a register file, the first data source and the second data source so that multiple load requests can simultaneously be outstanding for both the first data source and the second data source. These load requests return in-order for each of the multiple sources of data in the computer system, except for load requests directed to a data cache which can return out-of-order. Load requests may return out-of-order with respect to load requests from other data sources.
    Type: Grant
    Filed: March 22, 1999
    Date of Patent: May 22, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Bi-Yu Pan, Marc Tremblay
  • Patent number: 6233655
    Abstract: A computer processor has an I-unit (instruction unit) and instruction decoder, an E-unit (execution unit), a Buffer Control Element (BCE) containing a unified two-way interleaved L1 cache and providing write control to said two-way interleaved L1 cache. The processor has Double Word wide execution dataflow. An instruction decoder receiving instruction data from a unified cache before decoding causes, for stores, I-unit logic to initiate a request ahead of execution to tell the buffer control element that stores will be made from the E-unit, and E-unit logic sends a store request to initiate a store after decoding corresponding instruction data which indicates what address in the cache the DoubleWord data is to be stored to.
    Type: Grant
    Filed: April 30, 1998
    Date of Patent: May 15, 2001
    Assignee: International Business Machines Corporation
    Inventors: Chung-Lung Kevin Shum, Wen He Li, Charles Franklin Webb
  • Patent number: 6223260
    Abstract: A data processing system is comprised of: a system bus having a main memory coupled thereto; multiple high level cache memories, each of which has a first port coupled to said system bus and a second port coupled to a respective processor bus; and each processor bus being coupled through respective low level cache memories to respective digital computers. In the high level cache memories, data words are stored with respective tag bits which identify each data word as being stored in one of only four states which are shared, modified, invalid, or exclusive. In the low level cache memories, data words are stored with respective tag bits which identify each data word as being stored in only one of three states which are shared, modified or invalid.
    Type: Grant
    Filed: September 10, 1997
    Date of Patent: April 24, 2001
    Assignee: Unisys Corporation
    Inventors: Manoj Gujral, Brian Joseph Sassone, Laurence Paul Flora, David Edgar Castle
  • Patent number: 6216205
    Abstract: Methods of controlling memory buffers having tri-port cache arrays therein include the steps of reading data from a current read register in the cache memory array to an external peripheral device, and writing data from an external peripheral device to a current write register in the cache memory array. Tri-port controller logic and steering circuitry are also preferably provided for performing efficient read and write arbitration operations to make next-to-read and next-to-write registers always available in the cache memory array. The use of four separate registers in the cache memory array, efficient steering circuitry and the tri-port controller logic essentially eliminates the possibility that gaps or stoppages will occur in the flow of data into and out of the buffer memory device during read and write operations.
    Type: Grant
    Filed: May 21, 1998
    Date of Patent: April 10, 2001
    Assignee: Integrated Device Technology, Inc.
    Inventors: Bruce Lorenz Chin, Robert J. Proebsting
  • Patent number: 6205507
    Abstract: In a method and system for use in connection with performing a processor-to-bus cycle in a multi-processor computer system, the processor-to-bus cycle is interrupted before completion and an operation to save data in memory is performed. Thereafter, the interrupted processor-to-bus cycle is resumed.
    Type: Grant
    Filed: June 13, 1996
    Date of Patent: March 20, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Bassam N. Elkhoury, Scott T. McFarland, Miguel A. Perez
  • Patent number: 6202128
    Abstract: An interleaved data cache array which is divided into two subarrays is provided for utilization within a data processing system. Each subarray includes a plurality of cache lines wherein each cache line includes a selected block of data, a parity field, a content addressable field containing a portion of an effective address (ECAM) for the selected block of data, a second content addressable field contains a real address (RCAM) for the selected block of data and a data status field. Separate effective address ports (EA) and a real address port (RA) permit parallel access to the cache without conflict in separate subarrays and a subarray arbitration logic circuit is provided for attempted simultaneous access of a single subarray by both the effective address port (EA) and the real address port (RA). A normal word line is provided and activated by either the effective address port or the real address port through the subarray arbitration.
    Type: Grant
    Filed: March 11, 1998
    Date of Patent: March 13, 2001
    Assignee: International Business Machines Corporation
    Inventors: Kin Shing Chan, Dwain Alan Hicks, Peichun Peter Liu, Michael John Mayfield, Shih-Hsiung Stephen Tung
  • Patent number: 6202139
    Abstract: A computer system includes a processor having a cache which includes multiple ports, although a storage array included within the cache may employ fewer physical ports than the cache supports. The cache is pipelined and operates at a clock frequency higher than that employed by the remainder of a microprocessor including the cache. In one embodiment, the cache preferably operates at a clock frequency which is at least a multiple of the clock frequency at which the remainder of the microprocessor operates. The multiple is equal to the number of ports provided on the cache (or the ratio of the number of ports provided on the cache to the number of ports provided internally, if more than one port is supported internally). Accordingly, the accesses provided on each port of the cache during a clock cycle of the microprocessor clock can be sequenced into the cache pipeline prior to commencement of the subsequent clock cycle.
    Type: Grant
    Filed: June 19, 1998
    Date of Patent: March 13, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, James K. Pickett
  • Patent number: 6199145
    Abstract: A page closing method and apparatus for multi-port host bridges. According to a method disclosed, a plurality of memory access commands are received from a plurality of command ports. A command is selected from one of the command ports to be the next memory access command executed. A number of pages of memory are closed in response to the command selected as the next memory access command. The number of pages closed is determined at least in part on which command port provides the next memory access command.
    Type: Grant
    Filed: February 27, 1998
    Date of Patent: March 6, 2001
    Assignee: Intel Corporation
    Inventors: Jasmin Ajanovic, Michael W. Williams, Robert N. Murdoch
  • Patent number: 6170041
    Abstract: A two port high speed integrated circuit memory device that includes a bus transceiver, a memory array and a decoder. The present invention provides a processor high speed access to the internal memory array via very low capacitive load address and data buses. The present invention also buffers a secondary bus to provide access to slower-speed local devices. The bus transceiver transfers address, data and control signals between the primary and secondary port and also couples signals to the internal memory array. The bus transceiver includes an input data bus, an output data bus, and an address and control bus. Each of these separate buses include a buffer at the primary and secondary port to minimize capacitive loading. The decoder in the two port memory device decodes memory chip select signals and control signals that define the operational mode of the device.
    Type: Grant
    Filed: September 24, 1998
    Date of Patent: January 2, 2001
    Assignee: Integrated Silicon Soulution, Inc.
    Inventors: Jamie Joseph LeVasseur, Joseph E. Herbst
  • Patent number: 6167487
    Abstract: A memory having a SRAM, a DRAM, and two independent and functionally identical IO ports. Each port may be used as a read-only, a write-only, or a read-write port. One port may perform a read access to the SRAM, whereas the other port may carry out a write access to the SRAM in the same clock cycle. Each and every location of the SRAM may be accessed from any of the ports. Each port comprises a two-stage pipelined data path for providing a read or write access to the SRAM. Stage 1 decodes control and write enable signals, latches address signals and performs the output of read data. Stage 2 supports accesses to SRAM cells for writing and reading data. In a unified-port mode of operation, two 16-bit ports may be combined to produce a single port supporting a 32-bit write or read access to the SRAM. In a data burst mode of operation, each port may be programmed to select individual length of data bursts and individual burst type.
    Type: Grant
    Filed: January 13, 1998
    Date of Patent: December 26, 2000
    Assignee: Mitsubishi Electronics America, Inc.
    Inventors: Stephen Camacho, Rhonda Cassada, William L. Randolph
  • Patent number: 6161166
    Abstract: A multithreaded processor includes a level one instruction cache shared by all threads. The I-cache is accessed with an instruction unit generated effective address, the I-cache directory containing real page numbers of the corresponding cache lines. A separate line fill sequencer exists for each thread. Preferably, the I-cache is N-way set associative, where N is the number of threads, and includes an effective-to-real address table (ERAT), containing pairs of effective and real page numbers. ERAT entries are accessed by hashing the effective address. The ERAT entry is then compared with the effective address of the desired instruction to verify an ERAT hit. The corresponding real page number is compared with a real page number in the directory array to verify a cache hit. Preferably, the line fill sequencer operates in response to a cache miss, where there is an ERAT hit.
    Type: Grant
    Filed: March 10, 1999
    Date of Patent: December 12, 2000
    Assignee: International Business Machines Corporation
    Inventors: Richard William Doing, Ronald Nick Kalla, Stephen Joseph Schwinn
  • Patent number: 6157990
    Abstract: A multi-port RAM (MPRAM) having a SRAM and a DRAM on a single chip. Separate pins are provided on the chip to supply independent chip select signals for the SRAM and the DRAM. When the SRAM chip select signal is at a high level, a clock generator is prevented from producing an internal clock signal for the SRAM. As a result, no SRAM operation is performed in response to a SRAM command. Similarly, when the DRAM chip select signal is high, a clock generator produces no internal clock signal for the DRAM. As a result, DRAM operations are prevented from being performed in response to DRAM commands.
    Type: Grant
    Filed: January 23, 1998
    Date of Patent: December 5, 2000
    Assignee: Mitsubishi Electronics America Inc.
    Inventors: William L. Randolph, Dennis Blankenship, Rhonda Cassada
  • Patent number: 6138212
    Abstract: A central processing unit (CPU) of a computer has a data caching unit which includes a novel dual-ported prefetch cache configured in parallel with a conventional single-ported data cache. If a data cache miss occurs, the requested data is loaded into the data cache and into the prefetch cache. Thereafter, each data request which results in a prefetch cache hit triggers the prefetching of data into the prefetch cache. A data load history tracking circuit maintains a running history of instructions that request data from external memory, and uses the resulting loop heuristics of these instructions to generate a stride. The stride is used to derive a prefetch address which identifies data that is predicted to be soon requested in subsequent instructions. Data corresponding to the prefetch address is then loaded into the prefetch cache.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: October 24, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Denise Chiacchia, Herbert Lopez-Aguado, Gary Lauterbach
  • Patent number: 6138204
    Abstract: The present invention relates to memory and methods for storing/retrieving data in/from the memory that is accessed by at least two distinct data uses of different actual word widths. A memory for storing addressable binary data comprises a data storage organized in rows and columns of bit array cells, row address decoder and driver for addressing a selected row of bit array cells, column drivers for driving selected columns of bit array cells, and a bus switch port for selectively transferring data between the data storage and a first data bus with a first bus word width p and a second data bus with a second bus word width q smaller than the first bus word width p.
    Type: Grant
    Filed: December 17, 1997
    Date of Patent: October 24, 2000
    Assignee: Motorola, Inc.
    Inventors: Yossi Amon, Moshe Tarrab, Eytan Engel
  • Patent number: 6101579
    Abstract: A multi-port RAM (MPRAM) having a SRAM and a DRAM. A global bus is arranged between the DRAM and the SRAM to provide bi-directional transfer of 256-bit data blocks between the SRAM and the DRAM. Two independent input/output ports are coupled to the SRAM to enable a user to write or read data to or from the SRAM and DRAM. Byte masking is provided for each of the ports to mask bytes of data supplied to the MPRAM. A write-per-bit (WPB) mask register is arranged between the ports and the SRAM to prevent unnecessary bits of input data from being written into the SRAM. A byte write enable (BWE) mask register is arranged between the SRAM and the DRAM to prevent unnecessary bytes of data from being transferred from the SRAM to the DRAM. Each of the mask registers may be loaded with mask data from both of the ports concurrently, or from any one of them.
    Type: Grant
    Filed: January 13, 1998
    Date of Patent: August 8, 2000
    Assignee: Mitsubishi Semiconductor America, Inc.
    Inventors: William L. Randolph, Stephen Camacho, Rhonda Cassada
  • Patent number: 6098149
    Abstract: A method of improving storage system performance is provided. The method includes queuing asynchronous requests for data stored in physically disparate storage locations. The queue is then examined in order find those requests for data which has an acceptable level of physical proximity. Those requests having acceptable physical proximity are then bundled and transmitted as a single request a storage controller which activates the storage device and retrieves the data associated with the requests bundled into the single request.
    Type: Grant
    Filed: June 13, 1997
    Date of Patent: August 1, 2000
    Assignee: EMC Corporation
    Inventors: Erez Ofer, John Fitzgerald
  • Patent number: 6085290
    Abstract: An apparatus for and method of enhancing the performance of a multi-port internal cached DRAM (AMPIC DRAM) by providing an internal method of data validation within the AMPIC memories themselves to guarantee that only valid requested data is returned from them, or properly marked invalid data. A modified technique for identifying bad data that has been read out of AMPIC memory devices in the system.
    Type: Grant
    Filed: March 10, 1998
    Date of Patent: July 4, 2000
    Assignee: Nexabit Networks, LLC
    Inventors: Douglas E. Smith, Richard F. Conlin
  • Patent number: 6081873
    Abstract: A data cache unit associated with a processor, the data cache unit including a multi-ported non-blocking cache receiving a data access request from a lower level device in the processor. A memory scheduling window includes at least one row of entries, wherein each entry includes an address field holding an address of the access request. A conflict map field within at least some of the entries is coupled to a conflict checking unit. The conflict checking unit responds to the address fields by setting bits in the conflict map fields to indicate intra-row conflicts between entries. A picker coupled to the memory scheduling window responds to the conflict map fields so as to identify groups of non-conflicting entries to launch in parallel at the multi-ported non-blocking cache.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: June 27, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Sharad Mehrotra, Ramesh Panwar
  • Patent number: 6067601
    Abstract: An apparatus employing a cache memory based approach to instruction execution includes a cache memory and one or more control units. The control units operate the cache memory to directly supply appropriate ones of a plurality of values stored in selected ones of said cache locations for a plurality of variables to one or more arithmetic logic units (ALU) as inputs to arithmetic/logic operations, and/or to directly accept and store results of arithmetic logic operations from the one or more ALU as values of the variables in selected ones of said cache locations. The direct supplying and the direct accepting and storing are performed responsive to instructions specifying said arithmetic/logic operations and logically designating the variables associated with the specified arithmetic/logic operations.
    Type: Grant
    Filed: November 3, 1997
    Date of Patent: May 23, 2000
    Assignee: Brecis Communications
    Inventor: Donald L. Sollars
  • Patent number: 6065077
    Abstract: The system and method for operating a cache-coherent shared-memory multiprocessing system is disclosed. The system includes a number of devices including processors, a main memory, and I/O devices. Each device is connected by means of a dedicated point-to-point connection or channel to a flow control unit (FCU). The FCU controls the exchange of data between each device in the system by providing a communication path between two devices connected to the FCU. The FCU includes a snoop signal path for processing transactions affecting cacheable memory and a network of signal paths that are used to transfer data between devices. Each signal path can operate concurrently thereby providing the system with the capability of processing multiple data transactions simultaneously.
    Type: Grant
    Filed: December 7, 1997
    Date of Patent: May 16, 2000
    Assignee: HotRail, Inc.
    Inventor: Daniel D. Fu
  • Patent number: 6055606
    Abstract: A writeback cache cell and method for operating a writeback cache. In one example, the method includes reading a memory cell of the writeback cache through a first port to determine whether the memory cell stores a first value which indicates that a memory location in the writeback cache has updated data relative to data stored in another memory and writing the first value to the memory cell through a second port if the reading step determined that the memory cell did not store the first value. An example of a writeback cache cell includes a memory cell storing a first value which indicates that a memory location in the writeback cache has updated data relative to data stored in another memory location when the data stored in the another memory location is invalid and includes a first port coupled to the memory cell and a second port coupled to the memory cell.
    Type: Grant
    Filed: September 5, 1997
    Date of Patent: April 25, 2000
    Assignee: SandCraft, Inc.
    Inventor: Vinod Sharma
  • Patent number: 6041369
    Abstract: An improved apparatus and method for monitoring and controlling when a data phase in a burst transmission of data is about to end. The apparatus described interleaves dual adder circuits such that each dual adder circuit has more time to process incoming data. Distribution of the processing allows slower, lower cost components to be used in high speed applications. The described apparatus and method are particularly useful in peripheral component interconnect applications.
    Type: Grant
    Filed: June 9, 1998
    Date of Patent: March 21, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: John Watkins
  • Patent number: 6016531
    Abstract: A system for managing the flow of real time data streams into a data system cache memory is disclosed. The data system includes a central processing unit or micro controller, with a cache memory, which operates at a relatively fast operating speed, near that of the central processing unit. An interrupt controller is provided as well as a quantization timer that disables the interrupts to the CPU during an execution quantization (EQ) period, and allows the interrupts to pass at an EQ boundary. In operation, the quantization timer controls interrupts to occur only when cache load actions are at a specific quantized time, thus ensuring that a given task in the cache will execute or load for a given quantized length of time, and therefore, the possibility of loading a cache randomly only to execute a few instructions is eliminated.
    Type: Grant
    Filed: May 26, 1995
    Date of Patent: January 18, 2000
    Assignee: International Business Machines Corporation
    Inventors: Scott W. Rixner, Clarence R. Ogilvie
  • Patent number: 6000016
    Abstract: A microprocessor includes a register file that contains registers for storing pieces of data for use by execution units that receive the pieces of data through source ports. A bypass cache includes data registers into which pieces of data from the execution units are written. Data can be written to and read from the bypass cache in fewer clocks cycles than it can be written to and read from the register file. A content addressable memory array (CAM) includes address registers into which destination addresses are written which correspond to the pieces of data in the data registers. In the case of a particular piece of data, the particular data register into which the piece of data is written and the particular address register into which the corresponding destination address is written is controlled by the position of a write pointer provided by a rotating write pointer unit. The CAM includes a comparators that compare the destination address with a source address.
    Type: Grant
    Filed: May 2, 1997
    Date of Patent: December 7, 1999
    Assignee: Intel Corporation
    Inventors: Steve Curtis, Robert J. Murray, Helen Opie
  • Patent number: 5983319
    Abstract: An information recording and reproducing apparatus according to the present invention includes a read-ahead history buffer which is used as a ring buffer. A read-ahead operation is performed, every time a reproduction request is made by a host device, so as to maintain the read-ahead data after the last block for which reproduction has been requested at a predetermined value. Data which has already been requested by the host device and has not been overwritten by the read-ahead operation is treated as history data. As a result, data centered around (i.e., preceding and following) the last block for which the host device has requested reproduction is always secured as cache data.
    Type: Grant
    Filed: June 7, 1995
    Date of Patent: November 9, 1999
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventor: Motoshi Ito
  • Patent number: 5982700
    Abstract: Tri-port memory buffers having fast fall-through capability contain a custom tri-port memory array of moderate capacity having nonlinear columns of tri-port cells therein which collectively form four separate registers, and a substantially larger capacity supplemental memory array (e.g., DRAM array) having cells therein with reduced unit cell size. In particular, a preferred tri-port memory array is provided having a read port, a write port and a bidirectional input/output port. The tri-port memory array communicates internally with the supplemental memory array via the bidirectional input/output port and communicates with external devices (e.g., peripheral devices) via the read and write data ports.
    Type: Grant
    Filed: May 21, 1998
    Date of Patent: November 9, 1999
    Assignee: Integrated Device Technology, Inc.
    Inventor: Robert J. Proebsting
  • Patent number: 5956748
    Abstract: A memory system having a dual port first in, first out (FIFO) memory which performs read operations in synchronism with a read clock signal and write operations in synchronism with a write clock signal. The read clock signal is asynchronous with respect to the write clock signal. A synchronizing engine is provided to synchronize a current write address with the read clock signal, thereby creating a synchronized write address. The synchronizing engine further synchronizes a current read address with the write clock signal, thereby creating a synchronized read address. The synchronized write address is compared to the current read address to determine if a FIFO empty condition exists. Similarly, the synchronized read address is compared to the current write address to determine if a FIFO full condition exists.
    Type: Grant
    Filed: January 30, 1997
    Date of Patent: September 21, 1999
    Assignee: Xilinx, Inc.
    Inventor: Bernard J. New
  • Patent number: 5930819
    Abstract: A data cache unit associated with a processor, the data cache unit including a multi-ported non-blocking cache receiving a data access request from a lower level device in the processor. A memory scheduling window includes at least one row of entries, wherein each entry includes an address field holding an address of the access request. A conflict map field within at least some of the entries is coupled to a conflict checking unit. The conflict checking unit responds to the address fields by setting bits in the conflict map fields to indicate intra-row conflicts between entries. A picker coupled to the memory scheduling window responds to the conflict map fields so as to identify groups of non-conflicting entries to launch in parallel at the multi-ported non-blocking cache.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: July 27, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Sharad Mehrotra, Ramesh Panwar
  • Patent number: 5924125
    Abstract: Apparatus and method for enabling substantially simultaneous access to consecutive entries in an addressable translation memory. The addressable translation memory may be either direct mapped or multi-way set associative. An address decoder receives input address signals and generates output select signals. Each input address signal and each output select signal corresponds to one of the registers in the translation memory. The invention includes a plurality of primary select lines, each of which transmits one of the output select signals to its corresponding register. The invention also includes a plurality of secondary select lines, each of which transmits an output select signal corresponding to a particular register to a second register, the particular register and the second register storing consecutive entries in the translation memory. The particular register and the second register receive the output select signal substantially simultaneously.
    Type: Grant
    Filed: August 1, 1995
    Date of Patent: July 13, 1999
    Inventor: Siamak Arya
  • Patent number: 5911149
    Abstract: A computer system having a processor and at least one peripheral has a programmable shared memory system and method that selectively dedicates a first potion of memory to use by the processor and allocates a second portion of memory to shared use by the processor and any peripherals in the system. The programmable memory architecture is implemented using a dual bus architecture having a first-bus connected to the processor and a second bus coupled to the processor by a system controller and to the peripherals by a peripheral controller. The programmable memory architecture additionally has a configuration controller coupled to each configurable memory bank in the system. Each configuration controller is additionally coupled to both the first and second buses. Under programmed control, the each configuration controller couples the associated memory to either the first or second bus, responsive to configuration information stored in the system controller.
    Type: Grant
    Filed: November 1, 1996
    Date of Patent: June 8, 1999
    Assignee: NEC Electronics Inc.
    Inventors: Chung-Chen Luan, Siu-Ming Chong, James H. Wang, John Wong, Gong-Jong Yeh
  • Patent number: 5897654
    Abstract: A method and system in a data processing system for efficiently interfacing with cache memory by allowing a fetcher to read from cache memory while a plurality of data words or instructions are being loaded into the cache. A request is made by a bus interface unit to load a plurality of instructions or data words into a cache. In response to each individual instruction or data word being loaded into the cache by the bus interface unit, there is an indication that the individual one of said plurality of instructions or data words is valid. Once a desired instruction or data word has an indication that it is valid, the fetcher is allowed to complete a fetch operation prior to all of the instructions or data words being loaded into cache. In one embodiment, a group of invalid tag bits may be utilized to indicate to the fetcher that individual ones of a group of instructions or data words are valid in cache after being written into cache by the bus interface unit.
    Type: Grant
    Filed: June 24, 1997
    Date of Patent: April 27, 1999
    Assignees: International Business Machines Corporation, Motorola, Inc.
    Inventors: Lee E. Eisen, Belliappa M. Kuttanna, Soummya Mallick, Rajesh B. Patel
  • Patent number: 5860078
    Abstract: A method and apparatus for implementing a fully associative cache directory that stores X cache tags and responds to N read cache tags simultaneously in a single cache directory access to provide a corresponding cache block index for each of the N read cache tags. The cache directory includes a mini-directory and a main directory. The mini-directory stores M cache tags and corresponding block indexes, wherein M is equal to at least N. The mini-directory is fully associative and simultaneously compares each of the M stored cache tags against each of the N read cache tags. The main directory stores the X cache tags and provides corresponding block indexes. The main directory is fully associative and compares P read cache tags against each of the X cache tags simultaneously, P being less than N. The N read cache tags are initially compared against the mini-directory to provide a block index for each of the N read cache tags that hits in the mini-directory.
    Type: Grant
    Filed: April 9, 1997
    Date of Patent: January 12, 1999
    Assignee: Hewlett-Packard Company
    Inventor: Darel N. Emmot
  • Patent number: 5848432
    Abstract: A data processor has a first cache memory with a large capacity and one port and a second cache memory with a small capacity and two ports disposed between a main memory and an instruction processing section. Data which is frequently used is stored in the first cache memory and data which is less frequently used is stored in the second cache memory under control of a controller responsive to prefetch instructions. One of the cache memories may be a set associative cache memory composed of a plurality of memory chips each having at least two memory banks and an output part to gain access to data sets consecutively and one at a time within the memory banks. On the basis of an address sent from the instruction processing section, a memory bank is selected, and a data set from the selected memory bank is supplied to the processing section.
    Type: Grant
    Filed: July 27, 1994
    Date of Patent: December 8, 1998
    Assignee: Hitachi, Ltd.
    Inventors: Takashi Hotta, Toshihiko Kurihara, Shigeya Tanaka, Hideo Sawamoto, Akiyoshi Osumi, Koji Saito, Kotaro Shimamura
  • Patent number: 5829010
    Abstract: Primary memory access times are improved through an efficient technique of aborting and restarting primary memory accesses. A central processing unit of a computer includes an external cache controller to selectively generate an external cache free signal and an external cache busy signal. The central processing unit also includes a primary memory controller with an abort buffer. The primary memory controller includes circuitry to abort a primary memory access in response to the external cache busy signal. The data segment retrieved prior to aborting the primary memory access is stored in the abort buffer. The primary memory controller restarts the primary memory access in response to the external cache free signal. The restarting operation results in the data segment being passed to the external cache controller. Thereafter, the remaining data associated with the primary memory access is retrieved and sent to the external cache controller.
    Type: Grant
    Filed: May 31, 1996
    Date of Patent: October 27, 1998
    Assignee: Sun Microsystems, Inc.
    Inventor: Rajasekhar Cherabuddi
  • Patent number: 5802561
    Abstract: A cache memory system in a computing system has a first cache module storing data, a second cache module storing data, and a controller writing data simultaneously to both the first and second cache modules. A second controller can be added to also write data simultaneously to both the first and second cache modules. In a single write cycle each controller requests access to both the first and second cache modules. Both cache modules send an acknowledgement of the cache request back to the controllers. Each controller in response to the acknowledgements from both of the cache modules simultaneously sends the same data to both cache modules. Both of the cache modules write the same data into cache in their respective cache modules.
    Type: Grant
    Filed: June 28, 1996
    Date of Patent: September 1, 1998
    Assignee: Digital Equipment Corporation
    Inventors: Thomas F. Fava, Joseph M. Keith, Randy R. Fuller
  • Patent number: 5802567
    Abstract: A cache memory having a mechanism for managing offset and aliasing conditions is disclosed. In accordance with a preferred embodiment of the invention, the cache memory comprises a first directory circuit, a second directory circuit, a multiple number of most recently used bits, and a multiple number of set/reset circuits. The first directory circuit, having multiple caches lines, is utilized to receive partial effective addresses. The second directory circuit is utilized to receive an output from the first directory circuit. A most recently used bit is associated with each cache line within the first directory circuit. The set/reset circuit, coupled to each of the most recently used bits, is utilized to set one of the most recently used bits to a first state while concurrently resetting the rest of the most recently used bits to a second state within a single cycle during an occurrence of an offset or aliasing conditions such that offset or aliasing conditions can be more efficiently managed.
    Type: Grant
    Filed: October 31, 1996
    Date of Patent: September 1, 1998
    Assignee: International Business Machines Corporation
    Inventors: Peichun Peter Liu, Rajinder Paul Singh, Shih-Hsiung Steve Tung
  • Patent number: 5802575
    Abstract: A dual-ported tag array of a cache allows simultaneous access of the tag array by miss data of older LOAD instructions being returned during the same cycle that a new LOAD instruction is accessing the tag array to check for a cache hit. Because a load buffer queues LOAD instructions, the cache tags for older LOAD instructions which missed the cache return later when new LOAD instructions are accessing a tag array to check for cache hits. A method and apparatus for calculating and maintaining a hit bit in a load buffer perform the determination of whether or not a newly dispatched LOAD will hit the cache after it has been queued into the load buffer and waited for all older LOADs to be processed. A load buffer data entry includes the hit bit and all information necessary to process the LOAD instruction and calculate the hit bits for future LOAD instructions which must be buffered.
    Type: Grant
    Filed: October 7, 1997
    Date of Patent: September 1, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Dale Greenley, Leslie Kohn, Ming Yeh, Greg Williams
  • Patent number: 5781924
    Abstract: When cache misses occur simultaneously on two or more ports of a multi-port cache, different replacement sets are selected for different ports. The replacements are performed simultaneously through different write ports. In some embodiments, every set has its own write ports. The tag memory of every set has its own write port. In addition, the tag memory of every set has several read ports, one read port for every port of the cache. For every cache entry, a tree data structure is provided to implement a tree replacement policy (for example, a tree LRU replacement policy). If only one cache miss occurred, the search for the replacement set is started from the root of the tree. If multiple cache misses occurred simultaneously, the search starts at a tree level that has at least as many nodes as the number of cache misses. For each cache miss, a separate node is selected at that tree level, and the search for the respective replacement set starts at the selected node.
    Type: Grant
    Filed: March 7, 1997
    Date of Patent: July 14, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Zinaida Nikolaevna Zaitzeva, Oleg Alexandrovich Konopleff, Michael Victorovich Laptev, Andrey Alexe'evich Vechtomov
  • Patent number: 5761732
    Abstract: A method and apparatus for interfacing a memory card with a system having a smaller bus width while maintaining its interchangeability with other systems having larger bus widths. The host accesses data stored in the memory card using an interleaving scheme, such as a two-way interleaving scheme. The host provides a first enable signal and a second enable signal. In response to the first enable signal, data is accessed from a first section of the addressed memory location, and in response to the second enable signal, data is accessed from a second section of the addressed memory location. The first section of the addressed memory location may store even data bytes and the second section of the addressed memory location may store odd data bytes. The host may only access one section of the selected memory location at a time when using the interleaving scheme.
    Type: Grant
    Filed: June 28, 1996
    Date of Patent: June 2, 1998
    Assignee: Intel Corporation
    Inventors: Tony Shaberman, Sean Casey
  • Patent number: 5761714
    Abstract: An interleaved cache memory having a single-cycle multi-access capability is disclosed. The interleaved cache memory comprises multiple subarrays of memory cells, an arbitration logic circuit for receiving multiple input addresses to those subarrays, and an address input circuit for applying the multiple input addresses to these subarrays. Each of these subarrays includes an even data section and an odd data section and three content-addressable memories to receive the multiple input addresses for comparison with tags stored in these three content-addressable memories. The first one of the three content-addressable memories is associated with the even data section and the second one of the three content-addressable memories is associated with the odd data section. The arbitration logic circuit is then utilized to select one of the multiple input addresses to proceed if more than one input address attempts to access the same data section of the same subarray.
    Type: Grant
    Filed: April 26, 1996
    Date of Patent: June 2, 1998
    Assignee: International Business Machines Corporation
    Inventors: Peichun Peter Liu, Rajinder Paul Singh
  • Patent number: 5752264
    Abstract: A hierarchical cache architecture that reduces traffic on a main memory bus while overcoming the disadvantages of prior systems. The architecture includes a plurality of level one caches that are of the store through type, each level one cache is associated with a processor and may be incorporated into the processor. Subsets (or "clusters") of processors, along with their associated level one caches, are formed and a level two cache is provided for each cluster. Each processor-level one cache pair within a cluster is coupled to the cluster's level two cache through a dedicated bus. By configuring the processors and caches in this manner, not only is the speed advantage normally associated with the use of cache memory realized, but the number of memory bus accesses is reduced without the disadvantages associated with the use of store in type caches at level one and without the disadvantages associated with the use of a shared cache bus.
    Type: Grant
    Filed: August 15, 1996
    Date of Patent: May 12, 1998
    Assignee: International Business Machines Corporation
    Inventors: Michael Andrew Blake, Carl Benjamin Ford, III, Pak-kin Mak
  • Patent number: 5752260
    Abstract: A cache memory for a computer uses content-addressable tag-compare arrays (CAM) to determine if a match occurs. The cache memory is partitioned in four subarrays, i.e., interleaved, providing a wide cache line (word lines) but shallow depth (bit lines). The cache can be accessed by multiple addresses, producing multiple data outputs in a given cycle. Two effective addresses and one real address are applied at one time, and if addresses are matched in different subarrays, or two on the same line in a single subarray, then multiple access is permitted. The two content-addressable memories, or CAMs, are used to select a cache line, and in parallel with this, arbitration logic in each subarray selects a word line (cache line).
    Type: Grant
    Filed: April 29, 1996
    Date of Patent: May 12, 1998
    Assignee: International Business Machines Corporation
    Inventor: Peichun Peter Liu