User Data Cache And Instruction Data Cache Patents (Class 711/123)
  • Patent number: 6865645
    Abstract: A method of supporting programs that include instructions that modify subsequent instructions in a multi-processor system with a central processing unit including an execution unit, and instruction unit and a plurality of caches including a separate instruction and operand cache.
    Type: Grant
    Filed: October 2, 2000
    Date of Patent: March 8, 2005
    Assignee: International Business Machines Corporation
    Inventors: Chung-Lung Kevin Shum, Dean G. Bair, Charles F. Webb, Mark A. Check, John S. Liptay
  • Patent number: 6862675
    Abstract: A main memory and a higher-speed local memory are externally connected to a microprocessor. The entire load module is developed in the main memory. A part or all of the instruction codes in the load module developed in the main memory are stored in the local memory. A memory management unit for data converts a logical address of the entire load module into a physical address of the main memory. A memory management unit for instructions converts a logical address of the instruction code stored in the local memory into a physical address of the local memory. A CPU core gains the instruction code from the local memory at the time of execution of the instruction.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: March 1, 2005
    Assignee: Fujitsu Limited
    Inventor: Yasuhiro Wakimoto
  • Patent number: 6848024
    Abstract: A cache may be programmed to disable one or more entries from allocation for storing memory data (e.g. in response to a memory transaction which misses the cache). Furthermore, the cache may be programmed to select which entries of the cache are disabled from allocation. Since the disabled entries are not allocated to store memory data, the data stored in the entries at the time the cache is programmed to disable the entries may remain in the cache. In one specific implementation, the cache also provides for direct access to entries in response to direct access transactions.
    Type: Grant
    Filed: August 7, 2000
    Date of Patent: January 25, 2005
    Assignee: Broadcom Corporation
    Inventors: Joseph B. Rowlands, James B. Keller
  • Patent number: 6848035
    Abstract: A semiconductor device is designed to hide refresh operations even when the data width of a cache line differs from that of the external data bus in a memory that uses a cache memory and a DRAM with a plurality of banks. The semiconductor device includes a plurality of memory banks BANK0 to BANK127, each having a plurality of memory cells, as well as a cache memory CACHEMEM used to retain information read from the plurality of memory banks. The cache memory CACHEMEM includes a plurality of entries, each having a data memory DATAMEM and a tag memory TAGMEM. The data memory DATAMEM has a plurality of sub lines DATA0 to DATA3 and the tag memory TAGMEM has a plurality of valid bits V0 to V3 and a plurality of dirty bits D0 to D3.
    Type: Grant
    Filed: June 10, 2002
    Date of Patent: January 25, 2005
    Assignee: Renesas Technology Corp.
    Inventors: Satoru Akiyama, Yusuke Kanno, Takao Watanabe
  • Patent number: 6836828
    Abstract: The present invention provides an instruction cache apparatus and method using the instruction read buffer. The apparatus comprises an instruction hit analysis unit, an instruction read buffer, a first cache instruction word memory, a second cache instruction word memory, a first multiplexer and a second multiplexer. The instruction hit analysis unit receives a programmable counter output signal, compares this with a plurality of tags, and after the analysis, outputs the instruction hit signal of the instruction read buffer and the instruction hit signal of the first cache instruction word memory. The second multiplexer reads the expected instruction word from one of either the first cache instruction word memory, the second cache instruction word memory or the first multiplexer according to the instruction hit signal of the instruction read buffer and the instruction hit signal of the first cache instruction word memory.
    Type: Grant
    Filed: April 3, 2002
    Date of Patent: December 28, 2004
    Assignee: Faraday Technology Corp.
    Inventor: Min-Cheng Kao
  • Patent number: 6832296
    Abstract: A microprocessor that executes a repeat prefetch instruction (REP PREFETCH). The REP PREFETCH prefetches multiple cache lines, wherein the number of cache lines is specifiable in the instruction. The instruction is specified by the Pentium III PREFETCH opcode preceded by the REP string instruction prefix. The programmer specifies the count of cache lines to be prefetched in the ECX register, similarly to the repeat count of a REP string instruction. The effective address of the first cache line is specified similar to the conventional PREFETCH instruction. The REP PREFETCH instruction stops if the address of the current prefetch cache line misses in the TLB, or if the current processor level changes. Additionally, a line is prefetched only if the number of free response buffers is above a programmable threshold. The prefetches are performed at a lower priority than other activities needing access to the cache or TLB.
    Type: Grant
    Filed: April 9, 2002
    Date of Patent: December 14, 2004
    Assignee: IP-First, LLC
    Inventor: Rodney E. Hooker
  • Patent number: 6829698
    Abstract: A data processing system includes a global promotion facility and a plurality of processors coupled by an interconnect. In response to execution of an acquisition instruction by a first processor among the plurality of processors, the first processor transmits an address-only operation on the interconnect to acquire a promotion bit field within the global promotion facility exclusive of at least a second processor among the plurality of processors. In response to receipt of a combined response for the address-only operation representing a collective response of others of the plurality of processors to the address-only operation, the first processor determines whether or not acquisition of the promotion bit field was successful by reference to the combined response.
    Type: Grant
    Filed: October 10, 2002
    Date of Patent: December 7, 2004
    Assignee: International Business Machines Corporation
    Inventors: Ravi Kumar Arimilli, Derek Edward Williams
  • Patent number: 6816943
    Abstract: A processing system is disclosed. The processing system includes at least one cache and at least one scratch pad memory. The system also includes a processor for accessing the at least one cache and at least one scratch pad memory. The at least one scratch pad memory is smaller in size than the at least one cache. The processor accesses the data in the at least one scratch pad memory before accessing the at least one cache to determine if the appropriate data is therein. There are two important features of the present invention. The first feature is that an instruction can be utilized to fill a scratch pad memory with the appropriate data in an efficient manner. The second feature is that once the scratch pad has the appropriate data, it can be accessed more efficiently to retrieve this data within the cache and memory space not needed for this data.
    Type: Grant
    Filed: May 6, 2003
    Date of Patent: November 9, 2004
    Assignee: Arm Limited
    Inventor: Hong-Yi Hubert Chen
  • Patent number: 6810472
    Abstract: In a multithreaded processor, the efficiency of instruction processing may be improved by suspending an executing thread during the translation of a virtual memory address to a physical memory address when the address translation data must be retrieved from storage external to the processor. The suspension of an executing thread allows an address translation to be performed for an instruction in another thread while the address translation data needed for the first thread is retrieved.
    Type: Grant
    Filed: June 24, 2002
    Date of Patent: October 26, 2004
    Assignee: Intel Corporation
    Inventor: K. S Venkatraman
  • Patent number: 6804799
    Abstract: A microprocessor configured to store victimized instruction and data bytes is disclosed. In one embodiment, the microprocessor includes a predecode unit, and instruction cache, a data cache, and a level two cache. The predecode unit receives instruction bytes and generates corresponding predecode information that is stored in the instruction cache with the instruction bytes. The data cache receives and stores data bytes. The level two cache is configured to receive and store victimized instruction bytes from the instruction cache along with parity information and predecode information, and victimized data bytes from the data cache along with error correction code bits. Indicator bits may be stored on a cache line basis to indicate the type of data is stored therein.
    Type: Grant
    Filed: June 26, 2001
    Date of Patent: October 12, 2004
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Gerald D. Zuraski, Jr.
  • Publication number: 20040168027
    Abstract: Systems and methods are provided for caching dynamic arrays. According to one aspect, a cache memory device is provided for caching dynamic arrays or dynamic overlays. According to one embodiment, the device includes a plurality of memory cells and at least one register for storing access information to access at least one array stored in the plurality of memory cells. According to another aspect, an electronic system is provided that includes a main memory, a dynamic array cache memory device, a general cache memory device, and a processor. The dynamic array cache memory device is coupled to the main memory and adapted for caching array data. The general cache memory device is coupled to the main memory and is adapted for caching regular data. The processor is coupled to and adapted for communication with the main memory, the general cache memory device, and the dynamic array cache memory device.
    Type: Application
    Filed: February 24, 2004
    Publication date: August 26, 2004
    Applicant: Micron Technology, Inc.
    Inventors: Shane C. Hu, Keith R. Slavin
  • Patent number: 6779102
    Abstract: A data processor formed on a LSI chip has an instruction address generator, an instruction cache memory having entries each storing an instruction address and an instruction corresponding to the instruction address, an instruction decoder decoding an instruction from said cache memory corresponding to an instruction address from said instruction address generator, an operand address generator generating an operand address in response to an output signal of said instruction decoder, and an operand cache memory having entries each storing an operand address and operand data corresponding to the operand address in its entry. The data processor executes an instruction that makes entries in both of said instruction cache memory and said operand cache memory ineffective.
    Type: Grant
    Filed: June 22, 2001
    Date of Patent: August 17, 2004
    Assignee: Hitachi, Ltd.
    Inventors: Tadahiko Nishimukai, Atsushi Hasegawa, Kunio Uchiyama, Ikuya Kawasaki, Makoto Hanawa
  • Patent number: 6751704
    Abstract: A method for providing a memory scheme in computer architectures in an efficient and cost effective manner. A processor is configured with access to dual-L2 caches, preferably configured to cache program instructions and data in one cache and shared data in another cache. In one embodiment of the present invention, one L2 cache is accessible to networking interface devices. Optionally, the cache accessible by the networking interface devices is configured as networking buffers, providing cache for packet data being sent within a network. By use of this invention, the packet forwarding speeds in a conventional computer architecture may be increased.
    Type: Grant
    Filed: December 7, 2000
    Date of Patent: June 15, 2004
    Assignee: International Business Machines Corporation
    Inventor: Alvan Wing Ng
  • Publication number: 20040103253
    Abstract: A CPU includes a bus interface, a control unit, an instruction cache, a data cache, a secondary cache, an instruction decoder, an arithmetic unit, and registers. When operations can be performed only with the cache, the CPU inhibits access to external memory and stops power supply to the external memory. With this arrangement, by performing operations in the CPU without using the external memory, it is possible to realize a speedy processing and to stop power supply to the external memory, thus allowing for reduction in power consumption.
    Type: Application
    Filed: November 21, 2003
    Publication date: May 27, 2004
    Inventors: Naoyuki Kamei, Sohichi Yoshimura, Michiaki Nishimura, Yoshio Mizuyama, Hiroki Kinoshita, Takahiro Minami
  • Patent number: 6738884
    Abstract: A processor having a limited amount of local memory for storing code and/or data utilizes a program stored in external memory. The program stored in external memory is configured into blocks which can be loaded individually into the local memory for execution. Queuing the individual blocks of code allows the program to be executed by the processor and also facilitates loading of the subsequent code to be executed. A semaphore system can be utilized to indicate which blocks of local memory are available/unavailable. The system can support the interaction of multiple independent programs in external memory.
    Type: Grant
    Filed: October 2, 2000
    Date of Patent: May 18, 2004
    Assignee: Genesis Microchip Inc.
    Inventor: Richard K. Greicar
  • Patent number: 6735681
    Abstract: A next address computing section contains a selector and is connected to an instruction cache. The instruction cache maintains a predecode result of a branch instruction or predefined settings for a field in this branch instruction. Based on this information maintained in the instruction cache, the selector determines whether the compiler performed a branch prediction about the branch instruction or could not perform that branch prediction. When the compiler could not perform the branch prediction, the selector selects an output from a conditional branch prediction device (saturation counter section). When the compiler performed the branch prediction, the selector selects a prediction result by the compiler for a prediction in Agree mode. These selection results are used for setting a value of a register holding the next address. Based on this next-address register value, an instruction is fetched from the cache then inserted into a pipeline.
    Type: Grant
    Filed: February 28, 2001
    Date of Patent: May 11, 2004
    Assignee: Kabushiki Kaisha Toshiba
    Inventors: Shigehiro Asano, Takashi Yoshikawa
  • Publication number: 20040088487
    Abstract: A chip-multiprocessing system with scalable architecture, including on a single chip: a plurality of processor cores; a two-level cache hierarchy; an intra-chip switch; one or more memory controllers; a cache coherence protocol; one or more coherence protocol engines; and an interconnect subsystem. The two-level cache hierarchy includes first level and second level caches. In particular, the first level caches include a pair of instruction and data caches for, and private to, each processor core. The second level cache has a relaxed inclusion property, the second-level cache being logically shared by the plurality of processor cores. Each of the plurality of processor cores is capable of executing an instruction set of the ALPHA™ processing core. The scalable architecture of the chip-multiprocessing system is targeted at parallel commercial workloads.
    Type: Application
    Filed: October 24, 2003
    Publication date: May 6, 2004
    Inventors: Luiz Andre Barroso, Kourosh Gharachorloo, Andreas Nowatzyk
  • Patent number: 6718426
    Abstract: A cache memory apparatus is provided with a cache memory for storing thereinto at least one of information about an instruction group related to a system control and information about a data group, an address managment table for managing both an address and a range with respect to the cache memory into which the information is stored, and a selection circuit for selecting the cache memory in response to an access to the address management table. As a result, information related to a system control is stored into the cache memory apparatus.
    Type: Grant
    Filed: February 26, 2001
    Date of Patent: April 6, 2004
    Assignee: Hitachi, Ltd.
    Inventors: Hidemitsu Naya, Hideyuki Okamoto, Koji Kawaki, Yuji Sugaya, Yuichiro Morita, Yoshitaka Takahashi
  • Patent number: 6701412
    Abstract: One embodiment of the present invention provides a system that facilitates sampling a cache in a computer system, wherein the computer system has multiple central processing units (CPUs), including a measured CPU containing the cache to be sampled, and a sampling CPU that gathers the sample. During operation, the measured CPU receives an interrupt generated by the sampling CPU, wherein the interrupt identifies a portion of the cache to be sampled. In response to receiving this interrupt, the measured CPU copies data from the identified portion of the cache into a shared memory buffer that is accessible by both the measured CPU and the sampling CPU. Next, the measured CPU notifies the sampling CPU that the shared memory buffer contains the data, thereby allowing the sampling CPU to gather and process the data.
    Type: Grant
    Filed: January 27, 2003
    Date of Patent: March 2, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Richard J. McDougall, Denis J. Sheahan
  • Publication number: 20040034739
    Abstract: An apparatus having a core processor and a plurality of cache memory banks is disclosed. The cache memory banks are connected to the core processor in such a way as to provide substantially simultaneous data accesses for said core processor.
    Type: Application
    Filed: August 11, 2003
    Publication date: February 19, 2004
    Applicants: Intel Corporation a Delaware corporation, Analog Devices, Inc. a Delaware corporation
    Inventors: Hebbalalu S. Ramagopal, Michael Allen, Jose Fridman, Marc Hoffman
  • Patent number: 6678807
    Abstract: The present invention relates to the use of multiple store buffer forwarding in a microprocessor system with a restrictive memory model. In accordance with an embodiment of the present invention, the system and method allow load operations that are completely covered by two or more store operations to receive data via store buffer forwarding in such a manner as to retain the side effects of the restrictive memory model thereby increasing processor performance without violating the restrictive memory model.
    Type: Grant
    Filed: December 21, 2000
    Date of Patent: January 13, 2004
    Assignee: Intel Corporation
    Inventors: Bryan D. Boatright, Rajesh Patel, Larry Edward Thatcher
  • Publication number: 20030236962
    Abstract: In a multithreaded processor, the efficiency of instruction processing may be improved by suspending an executing thread during the translation of a virtual memory address to a physical memory address when the address translation data must be retrieved from storage external to the processor. The suspension of an executing thread allows an address translation to be performed for an instruction in another thread while the address translation data needed for the first thread is retrieved.
    Type: Application
    Filed: June 24, 2002
    Publication date: December 25, 2003
    Inventor: K. S. Venkatraman
  • Patent number: 6643736
    Abstract: A processing system is disclosed. The processing system includes at least one cache and at least one scratch pad memory. The system also includes a processor for accessing the at least one cache and at least one scratch pad memory. The at least one scratch pad memory is smaller in size than the at least one cache. The processor accesses the data in the at least one scratch pad memory before accessing the at least one cache to determine if the appropriate data is therein. There are two important features of the present invention. The first feature is that an instruction can be utilized to fill a scratch pad memory with the appropriate data in an efficient manner. The second feature is that once the scratch pad has the appropriate data, it can be accessed more efficiently to retrieve this data within the cache and memory space not needed for this data.
    Type: Grant
    Filed: August 29, 2000
    Date of Patent: November 4, 2003
    Assignee: Arm Limited
    Inventor: Hong-Yi Hubert Chen
  • Publication number: 20030196039
    Abstract: A processing system is disclosed. The processing system includes at least one cache and at least one scratch pad memory. The system also includes a processor for accessing the at least one cache and at least one scratch pad memory. The at least one scratch pad memory is smaller in size than the at least one cache. The processor accesses the data in the at least one scratch pad memory before accessing the at least one cache to determine if the appropriate data is therein. There are two important features of the present invention. The first feature is that an instruction can be utilized to fill a scratch pad memory with the appropriate data in an efficient manner. The second feature is that once the scratch pad has the appropriate data, it can be accessed more efficiently to retrieve this data within the cache and memory space not needed for this data.
    Type: Application
    Filed: May 6, 2003
    Publication date: October 16, 2003
    Applicant: ARM Limited
    Inventor: Hong-Yi Hubert Chen
  • Patent number: 6629210
    Abstract: In addition to an address tag, a coherency state and an LRU position, each cache directory entry includes historical processor access information for the corresponding cache line. The historical processor access information includes different subentries for each different processor which has accessed the corresponding cache line, with subentries being “pushed” along the stack when a new processor accesses the subject cache line. Each subentries contains the processor identifier for the corresponding processor which accessed the cache line, one or more opcodes identifying the operations which were performed by the processor, and timestamps associated with each opcode.
    Type: Grant
    Filed: October 26, 2000
    Date of Patent: September 30, 2003
    Assignee: International Business Machines Corporation
    Inventors: Ravi K. Arimilli, John Steven Dodson, James Stephen Fields, Jr., Guy Lynn Guthrie
  • Patent number: 6629206
    Abstract: A Harvard-architecture computer system includes a processor, an instruction cache, a data cache, and a write buffer. The caches are both set-associative in that they each have plural memories; both caches perform parallel reads by default. In a parallel read, all cache-memory locations of the selected cache corresponding to the set ID and word position bits of a requested read address are accessed in parallel while it is determined whether or not one of these locations has a tag matching the tag portion of the requested read address. If there is a “hit” (match), then an output multiplexer selects the appropriate cache memory for providing its data to the processor. The parallel read thus achieves faster reads, but expends extra power in accessing non-matching sets. A cache receiving a read request while the processor is waited performs a serial read instead of a parallel read. In a serial read, the tag match is performed before the data is accessed.
    Type: Grant
    Filed: December 31, 1999
    Date of Patent: September 30, 2003
    Assignee: Koninklijke Philips Electronics N.V.
    Inventor: Mark W. Johnson
  • Patent number: 6622207
    Abstract: A cache memory is updated with audio samples in a manner which minimizes system bus bandwidth and cache size requirements. The end of a loop is used to truncate a normal cache request to exactly what is needed. A channel with a loopEnd in a request will be given higher priority in a two-stage priority scheme. The requested data is conformed by trimming to the minimum data block size of the bus, such a doubleword for a PCI bus. The audio data written into the cache can be shifted on a byte-wise basis, and unneeded bytes can be blocked and not written. Request data for which a bus request has been issued can be preempted by request data attaining a higher priority before a bus grant is received.
    Type: Grant
    Filed: September 5, 2000
    Date of Patent: September 16, 2003
    Assignee: Creative Technology Ltd.
    Inventor: David P. Rossum
  • Patent number: 6611898
    Abstract: The present invention is directed toward a system and method for caching data for multiple processes. The system utilizes a data storage device, and has at least one process adapted to utilize data stored in that data storage device. A component is used, which includes a basic set of instructions for creating and utilizing a memory map file in the data storage device. The memory map file stores data used by the process. A caching object is then built with the component. The caching object generates and manages the caching of data for the process in the memory map file. Also included in the present invention is a method for adding data caching ability to a process.
    Type: Grant
    Filed: April 25, 2001
    Date of Patent: August 26, 2003
    Assignee: Convergys Customer Management Group, Inc.
    Inventors: Doug Slattery, Jason Jump
  • Patent number: 6594711
    Abstract: A data processing apparatus includes a data processor core having integral cache memory and local memory, and external memory interface and a direct memory access unit. The direct memory access unit is connected to a single data interchange port of the data processor core and to an internal data interchange port of the external memory interface. The direct memory access unit transports data according to commands received from the data processor core to or from devices external to the data processing unit via the external memory interface. As an extension of this invention, a single direct memory access unit may serve a multiprocessing environment including plural data processor cores. The data processor core, external memory interface and direct memory access unit are preferably embodied in a single integrated circuit. The data processor core preferably includes an instruction cache for temporarily storing program instructions and a data cache for temporarily storing data.
    Type: Grant
    Filed: June 26, 2000
    Date of Patent: July 15, 2003
    Assignee: Texas Instruments Incorporated
    Inventors: Timothy D. Anderson, Sanjive Agarwala, Charles L. Fuoco, David A. Comisky
  • Patent number: 6591344
    Abstract: A method for maintaining an instruction in a pipelined processor using inuse fields. The method involves receiving a read request for an instruction, sending the instruction in response to the read request and setting an inuse field associated with the instruction to inuse. Alternate embodiments of the method involve transmitting the instruction in response to the read request, receiving a notification of instruction retirement and resetting the inuse field in the ITLB. The method can also be used in the ICACHE in which inuse fields are associated with each instruction stored in the ICACHE. Other embodiments of the method can be used concurrently in the ITLB and the ICACHE as a resource tracking mechanism to maintain resources.
    Type: Grant
    Filed: August 15, 2002
    Date of Patent: July 8, 2003
    Assignee: Intel Corporation
    Inventors: Alan B. Kyker, Darrell D. Boggs
  • Patent number: 6574711
    Abstract: It is an object of the present invention to provide a semiconductor integrated circuit having a chip layout that reduces line length to achieve faster processing. A cache comprises a TAG memory module and a cache data memory module. The cache data memory module is divided into first and second cache data memory modules which are disposed on both sides of the TAG memory module, and input/output circuits of a data TLB are opposed to the input/output circuit of the TAG memory module and the input/output circuits of the first and second cache data memory modules across a bus area to reduce the line length to achieve faster processing.
    Type: Grant
    Filed: December 22, 2000
    Date of Patent: June 3, 2003
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventor: Masaya Sumita
  • Patent number: 6567863
    Abstract: A coupler for a programmable logic controller connecting to an Ethernet network under the TCP/IP protocol in order to communicate with various equipment. The coupler uses two disk partitions in a flash memory, one acting as a disk for the real time operating system and the other acting as a user disk. The two disks are accessed through the FTP protocol on TCP/IP, and the user disk space is managed by an HTTP server.
    Type: Grant
    Filed: August 7, 2000
    Date of Patent: May 20, 2003
    Assignee: Schneider Electric Industries SA
    Inventors: Alain Lafuite, Jean-Jacques Genin
  • Patent number: 6553473
    Abstract: An apparatus and method within a pipeline microprocessor are provided for allocating a cache line within an internal data cache upon a write miss to the data cache. The that apparatus and method allow data to be written to the allocated cache line before fill data for the allocated cache line is received from external memory over a system bus. The apparatus includes write allocate logic and a write buffer. The write allocate logic allocates the cache line within the data cache, it stores data corresponding to the write miss within the allocated cache line, and queues a speculative write command directing an external bus to store said the data to the external memory in the event that transfer of the fill data is interrupted. The speculative write command is stored in the write buffer and, in the event of an interruption such as a bus snoop to the allocated cache line, the write buffer issues the speculative write command to the system bus, thereby writing the data to external memory.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: April 22, 2003
    Assignee: IP-First, LLC
    Inventors: Darius D. Gaskins, Rodney E. Hooker
  • Publication number: 20030074532
    Abstract: Embodiments are provided in which a first and second instructions are executed in parallel. A first and a second address are generated according to the first and second instructions, respectively. The first address is used to select a data cache line of a data cache RAM and a first data bank from the data cache line. The second address is used to select a second data bank from the data cache. The first and second data banks are outputted in parallel from the data cache RAM. An instruction pair testing circuit tests the probability of the first and second instructions accessing a same data cache line of the data cache RAM. If it is unlikely that the two instructions will access a same data cache line, the second instruction is refetched and re-executed, and the second data bank is not used.
    Type: Application
    Filed: October 11, 2001
    Publication date: April 17, 2003
    Applicant: International Business Machines Corporation
    Inventor: David Arnold Luick
  • Patent number: 6549985
    Abstract: A data cache in an in-order single-issue microprocessor that detects cache misses generated by instructions behind a stalled instruction in the microprocessor pipeline and issues memory requests on the processor bus for the missing data so as to overlap with resolution of the stalled instruction, which may also be a cache miss, is provided. The data cache has pipeline stages that parallel portions of the main pipeline in the microprocessor. The data cache employs replay buffers to save the state, i.e., instructions and associated data addresses, of the parallel data cache stages so that instructions above the stalled instruction can continue to proceed down through the data cache and access the cache memory to generate cache misses. The data cache restores the data cache pipeline stages upon detection that stall will terminate. The data cache also detects TLB misses generated by instructions subsequent to the stalled instruction and overlaps page table walks with the stall resolution.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: April 15, 2003
    Assignee: I P - First, LLC
    Inventors: Darius D. Gaskins, G. Glenn Henry, Rodney E. Hooker
  • Patent number: 6546467
    Abstract: A computer system has a processor, a cache and a main memory. A cache coherency mechanism ensures that the contents of the cache are coherent with respect to main memory by the provision of cache coherency instructions which each specify: 1) an operation to be executed on the contents of a location in the cache; and 2) an address in main memory. The operation is executed for the contents of the location in the cache which could be filled by an access to that address in main memory if the executing process normally has access to that address in main memory, regardless of whether or not the contents of the specified address in main memory are held at that location in the cache. This provides an extra degree of freedom because it is not necessary for the cache coherency operation to be requested in respect of a particular address stored in the cache. The instruction can specify any address which would map onto that cache location.
    Type: Grant
    Filed: March 2, 1998
    Date of Patent: April 8, 2003
    Assignee: SGS-Thomson Microelectronics Limited
    Inventors: Glenn Farrall, Bruno Fel, Catherine Barnaby
  • Patent number: 6542963
    Abstract: An arithmetic device having a cache for performing arithmetic operations is provided. The cache stores previously performed resultant data and operand for an arithmetic operation and upon receiving a same operand to be operated upon, the corresponding stored resultant data is output, bypassing the arithmetic processing and operation by the processor. The device having the cache is also configured for outputting a partial resultant output for a partially matched operand.
    Type: Grant
    Filed: January 10, 2001
    Date of Patent: April 1, 2003
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Hoi-Jin Lee
  • Patent number: 6532520
    Abstract: A method and apparatus are provided for managing cache allocation for a plurality of data types in a unified cache having dynamically allocable lines for first type data and for second type data. Cache allocation is managed by counting misses to first type data and misses to second type data in the unified cache, and by determining when a difference between a number of first type data misses and a number of second type data misses crosses a preselected threshold. A replacement algorithm of the unified cache then is adjusted in response to the detected crossing of the preselected threshold, the adjusting step including increasing a replacement priority of the first type data lines in the cache. The replacement algorithm preferably is an LRU algorithm wherein the adjusting step includes incrementing an age indication of the first type data lines.
    Type: Grant
    Filed: September 10, 1999
    Date of Patent: March 11, 2003
    Assignee: International Business Machines Corporation
    Inventors: Alvar A. Dean, Marc R. Faucher, John W. Goetz, Kenneth J. Goodnow, Paul T. Gutwin, Stephen W. Mahin, Wilbur D. Pricer
  • Patent number: 6523109
    Abstract: A processor includes a store queue configured to detect a hit on a store queue entry for a load being executed by the processor, and to forward data from the store queue entry to provide a result for the load. The store queue data is provided to the data cache, along with an indication of how much data is being provided (e.g. byte enables). The data cache may then fill in any additional data accessed by the load from cache data, and provide a load result. Additionally, the store queue is configured to detect if more than one store queue entry is hit (i.e. that more than one store within the store queue updates at least one byte accessed by the load), referred to as a multimatch. If a multimatch is detected, the store queue retries the load. Subsequently, the load may be reexecuted and may not multimatch (as entries are deleted upon completion of the corresponding stores). The load may complete when it does not multimatch.
    Type: Grant
    Filed: October 25, 1999
    Date of Patent: February 18, 2003
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Stephan G. Meier
  • Patent number: 6523090
    Abstract: The present invention provides a shared instruction cache for multiple processors. In one embodiment, an apparatus for a microprocessor includes a shared instruction cache for a first processor and a second processor, and a first register index base for the first processor and a second register index base for the second processor. The apparatus also includes a first memory address base for the first processor and a second memory address base for the second processor. This embodiment allows for segmentation of register files and main memory based on which processor is executing a particular instruction (e.g., an instruction that involves a register access and a memory access).
    Type: Grant
    Filed: March 18, 2002
    Date of Patent: February 18, 2003
    Assignee: Sun Microsystems, Inc.
    Inventor: Marc Tremblay
  • Patent number: 6516387
    Abstract: A set-associative cache having a selectively configurable split/unified mode. The cache may comprise a memory and control logic. The memory may be configured for storing data buffered by the cache. The control logic may be configured for controlling the writing and reading of data to and from the memory. The control logic may organise the memory as a plurality of storage sets, each set being mapped to a respective plurality of external addresses such that data from any of said respective external addresses maps to that set. The control logic may comprise allocation logic for associating a plurality of ways uniquely with each set, the plurality of ways representing respective plural locations for storing data mapped to that set. In the unified mode, the control logic may assign a first plurality of ways to each set to define a single cache region.
    Type: Grant
    Filed: July 30, 2001
    Date of Patent: February 4, 2003
    Assignee: LSI Logic Corporation
    Inventor: Stefan Auracher
  • Publication number: 20020174300
    Abstract: In a data processor for processing instruction data composed of an advanced instruction part and a part of data to be operated, efficiency of cache memory control is attained. A predecoder predecodes the advanced instruction part of instruction data before the instruction data is processed. A cache memory controller loads instruction codes required for processing into an instruction cache memory from an instruction code memory based on the predecoding results.
    Type: Application
    Filed: May 21, 2002
    Publication date: November 21, 2002
    Applicant: Matsushita Electric Industrial Co., Ltd.
    Inventors: Atsushi Kotani, Yoshiteru Mino, Tetsuji Kishi
  • Patent number: 6473833
    Abstract: A method of operating a multi-level memory hierarchy of a computer system and an apparatus embodying the method, wherein multiple levels of storage subsystems are used to improve the performance of the computer system, each next higher level generally having a faster access time, but a smaller amount of storage. Values within a level are indexed by a directory that provides an indexing of information relating the values in that level to the next lower level. In a preferred embodiment of the invention, the directories for the various levels of storage are contained within the next higher level, providing a faster access to the directory information. Cache memories used as the highest levels of storage, and one or more sets are allocated out of that cache memory for containing a directory of the next lower level of storage.
    Type: Grant
    Filed: July 30, 1999
    Date of Patent: October 29, 2002
    Assignee: International Business Machines Corporation
    Inventors: Ravi Kumar Arimilli, Leo James Clark, James Stephen Fields, Jr., Lakshminarayana Baba Arimilli
  • Patent number: 6473832
    Abstract: A processor has pre-cache and post-cache buffers. The pre-cache (or LS1) buffer stores memory operations which have not yet probed the data cache. The post-cache (or LS2) buffer stores the memory operations which have probed the data cache. As a memory operation probes the data cache, it is moved from the LS1 buffer to the LS2 buffer. Since misses and stores which have probed the data cache do not reside in the LS1 buffer, the scan logic for selecting memory operations from the LS1 buffer to probe the data cache may be simple and low latency, allowing for the load latency to the data cache for load hits to be relatively low. Furthermore, since the memory operations which have probed the data cache have been removed from the LS1 buffer, the simple scan logic may support high performance features such as allowing hits to proceed under misses, etc.
    Type: Grant
    Filed: May 18, 1999
    Date of Patent: October 29, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Hebbalalu S. Ramagopal, William Kurt Lewchuk, William Alexander Hughes
  • Patent number: 6470442
    Abstract: A processor includes execution resources, data storage, and an instruction sequencing unit, coupled to the execution resources and the data storage, that supplies instructions within the data storage to the execution resources. At least one of the execution resources, the data storage, and the instruction sequencing unit is implemented with a plurality of hardware partitions of like function for processing data. The data processed by each hardware partition is assigned according to a selectable hash of addresses associated as with the data. In a preferred embodiment, the selectable hash can be altered dynamically during the operation of the processor, for example, in response to detection of an error or a load imbalance between the hardware partitions.
    Type: Grant
    Filed: July 30, 1999
    Date of Patent: October 22, 2002
    Assignee: International Business Machines Corporation
    Inventors: Ravi Kumar Arimilli, Leo James Clark, John Steve Dodson, Guy Lynn Guthrie, Jerry Don Lewis
  • Patent number: 6460116
    Abstract: A microprocessor configured to rapidly decode variable-length instructions is disclosed. The microprocessor is configured with a predecoder and an instruction cache. The predecoder is configured to expand variable-length instructions to create fixed-length instructions by padding instruction fields within each variable-length instruction with constants until each field reaches a predetermined maximum width. The fixed-width instructions are then stored within the instruction cache and output for execution when a corresponding requested address is received. The instruction cache may store both variable- and fixed-width instructions, or just fixed-width instructions. An array of pointers may be used to access particular fixed-length instructions. The fixed-length instructions may be configured to all have the same fields and the same lengths, or they may be divided into groups, wherein instructions within each group have the same fields and the same lengths.
    Type: Grant
    Filed: September 21, 1998
    Date of Patent: October 1, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Rupaka Mahalingaiah
  • Patent number: 6457120
    Abstract: A superscalar processor and method are disclosed for improving the accuracy of predictions of a destination of a branch instruction utilizing a cache. The cache is established including multiple entries. Each of multiple branch instructions are associated with one of the entries of the cache. One of the entries of the cache includes a stored predicted destination for the branch instruction associated with this entry of the cache. The predicted destination is a destination the branch instruction is of predicted to branch to upon execution of the branch instruction. The stored predicted destination is updated in the one of the entries of the cache only in response to two consecutive mispredictions of the destination of the branch instruction, wherein the two consecutive mispredictions were made utilizing the one of the entries of the cache.
    Type: Grant
    Filed: November 1, 1999
    Date of Patent: September 24, 2002
    Assignee: International Business Machines Corporation
    Inventor: Balaram Sinharoy
  • Publication number: 20020129208
    Abstract: In a chip multiprocessor system, the coherence protocol is split into two cooperating protocols implemented by different hardware modules. One protocol is responsible for cache coherence management within the chip, and is implemented by a second-level cache controller. The other protocol is responsible for cache coherence management across chip multiprocessor nodes, and is implemented by separate cache coherence protocol engines. The cache controller and the protocol engine within each node communicate and synchronize memory transactions involving multiple nodes to maintain cache coherence within and across the nodes. The present invention addresses race conditions that arise during this communication and synchronization.
    Type: Application
    Filed: January 7, 2002
    Publication date: September 12, 2002
    Applicant: Compaq Information Technologies, Group, L.P.
    Inventors: Luiz A. Barroso, Kourosh Gharachorloo, Andreas Nowatzyk, Robert J. Stets, Mosur K. Ravishankar
  • Patent number: 6449693
    Abstract: A processor system is provided that comprises a plurality of L0 caches, a processor having a plurality of execution units, and an L1 cache for caching any data and instructions used by the processor. A portion of the execution units provided are configured so that each execution unit within the portion accesses one of the L0 caches. Each of the L0 caches is accessible by only one of the portion of the execution units, and each L0 cache caches a subset of any data used by the processor which is not cacheable by any of the other L0 caches. The processor system preferably comprises an instruction dispatcher that dispatches instructions executable by the processor and that selectively designates data as cacheable by only one of the L0 caches, preferably at dispatch time.
    Type: Grant
    Filed: April 5, 1999
    Date of Patent: September 10, 2002
    Assignee: International Business Machines Corporation
    Inventors: John W. Goetz, Paul T. Gutwin, Stephen W. Mahin, Wilbur D. Pricer
  • Patent number: 6446164
    Abstract: A circuit and method for reading and writing to a microprocessor's internal cache memory during a test mode of operation. During write accesses, an external data bus transmits to an internal data bus an address, cache tags and data in accordance with an external clock. During read accesses, the external data bus transmits an address and receives from the internal data bus data and cache tags. In one embodiment, during a write access, the external data bus is time-multiplexed to transmit an address, cache tags and data in two clock periods of the external clock the external data bus is time-multiplexed to transmit to the internal data bus an address in the first clock period of the external clock signal and to receive tag and data in the next successive clock periods of the external clock signal. In this embodiment, reserved pins are used to specify a cache access mode, including a test mode of operation.
    Type: Grant
    Filed: March 14, 1997
    Date of Patent: September 3, 2002
    Assignee: Integrated Device Technology, Inc.
    Inventors: De H. Nguyen, Raymond M. Chu