Stack Cache Patents (Class 711/132)
  • Patent number: 6058457
    Abstract: The present invention provides methods for storing method frames in a multi-stack memory architecture to provide access to multiple portions of the method frame. In one embodiment, a first frame component of a first method frame is stored in a first stack. A second component of the first method frame is stored in a second stack. A first component of a second method frame is stored in the second stack and a second frame component of the second method frame is stored in the first stack. In some embodiments, the first frame components of the first and second stacks are operand stacks, while the second frame components are arguments and local variable areas.
    Type: Grant
    Filed: June 23, 1997
    Date of Patent: May 2, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, James Michael O'Connor
  • Patent number: 6038643
    Abstract: The present invention provides a stack management unit including a stack cache to accelerate data transfers between the stack-based computing system and the stack. In one embodiment, the stack management unit includes a stack cache, a dribble manager unit, and a stack control unit. The dribble manager unit includes a fill control unit and a spill control unit. Since the vast majority of memory accesses to the stack occur at or near the top of the stack, the dribble manager unit maintains the top portion of the stack in the stack cache. Specifically, when the stack-based computing system is pushing data onto the stack and a spill condition occurs, the spill control unit transfers data from the bottom of the stack cache to the stack so that the top portion of the stack remains in the stack cache.
    Type: Grant
    Filed: January 23, 1997
    Date of Patent: March 14, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, James Michael O'Connor
  • Patent number: 6021469
    Abstract: A hardware virtual machine instruction processor directly executes virtual machine instructions that are processor architecture independent. The hardware processor has high performance; is low cost; and exhibits low power consumption. The hardware processor is well suited for portable applications. These applications include, for example, an Internet chip for network appliances, a cellular telephone processor, other telecommunications integrated circuits, or other low-power, low-cost applications such as embedded processors, and portable devices.
    Type: Grant
    Filed: January 23, 1997
    Date of Patent: February 1, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, James Michael O'Connor, William N. Joy
  • Patent number: 6018799
    Abstract: Apparatus, methods and computer program products are disclosed that enable a compiler to generate efficient code to access stack registers on a register stack. The invention operates by transforming a three-operand instruction, within a compiler's intermediate representation, to one or more fewer-than-three-operand instructions. The invention also transforms the instruction's operand addressing from an access to a pseudo-named register to an access to a stack register through stack offset into a register stack. The invention also determines the register stack state at each instruction responsive to register stack permutations and maps the stack offset accordingly for each subsequent access to a stack register.
    Type: Grant
    Filed: July 22, 1998
    Date of Patent: January 25, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: David R. Wallace, David M. Cox, Serguei V. Morosov, David A. Seberger, Serguei L. Wenitsky
  • Patent number: 6012126
    Abstract: A system and method for caching objects of non-uniform size. A caching logic includes a selection logic and an admission control logic. The admission control logic determines whether an object not currently in the cache is accessed may be cached at all. The admission control logic uses an auxiliary LRU stack which contains the identities and time stamps of the objects which have been recently accessed. Thus, the memory required is relatively small. The auxiliary cache serves as a dynamic popularity list and an object may be admitted to the cache if and only if it appears on the popularity list. The selection logic selects one or more of the objects in the cache which have to be purged when a new object enters the cache. The order of removal of the objects is prioritized based both on the size as well as the frequency of access of the object and may be adjusted by a time to obsolescence factor (TTO).
    Type: Grant
    Filed: October 29, 1996
    Date of Patent: January 4, 2000
    Assignee: International Business Machines Corporation
    Inventors: Charu Chandra Aggarwal, Marina Aleksandrovna Epelman, Joel Leonard Wolf, Philip Shi-lung Yu
  • Patent number: 6009499
    Abstract: A stack management unit includes a stack cache to accelerate data retrieval from a stack and data storage into the stack. The stack management unit also includes an address pipeline to transfer multiple data words by a spill control unit and a fill control unit in the stack management unit. The address pipeline contains an incrementor/decrementor circuit, a first address register and a second address register. An address multiplexer drives either the output signal of the incrementor/decrementor or a cache bottom pointer to the first address register. The output terminals of the first address register are coupled to the input terminals of the second address register. A stack cache multiplexer drives either the address in the first address register or the address in the second address register to the stack cache. A memory multiplexer drives either the address in the address multiplexer or in the first address register to a slow memory unit.
    Type: Grant
    Filed: March 31, 1997
    Date of Patent: December 28, 1999
    Assignee: Sun Microsystems, Inc
    Inventor: Sailendra Koppala
  • Patent number: 5983307
    Abstract: In order to allow an external memory space to enter into the memory space of a microprocessor (43) comprising a cache memory (94), an integrated circuit (42) serves as an interface between the microprocessor (43) and a memory unit (8, 9, 12) constituting the external memory space. The integrated circuit (42) comprises a stack (91) sized for containing a data block from the memory unit (8, 9, 12) such that the block from the memory unit (8, 9, 12) is seen as one or more blocks in the cache memory (94), and a register (93) belonging to the memory space of the microprocessor (43) adapted to contain the coordinates for access to the memory unit (8, 9, 12).
    Type: Grant
    Filed: November 3, 1997
    Date of Patent: November 9, 1999
    Assignee: Bull S.A.
    Inventors: Jack Abily, Jean Yujun Qian
  • Patent number: 5958039
    Abstract: The stack pointer is used for generating the next unutilized location in the stack memory device in order to indicate where a current value in the program counter is to be written. The stack pointer also generates a directly preceding location to the next unutilized location in order to read the last value of the program counter that was written to the stack memory device. The stack pointer will select the next unutilized location in the stack memory device for a write operation and the directly preceding location to the next unutilized location in the stack memory device for a read operation. The stack pointer will further perform either a post increment or post decrement operation on the next unutilized location in the stack memory device after execution of a current instruction.
    Type: Grant
    Filed: October 28, 1997
    Date of Patent: September 28, 1999
    Assignee: Microchip Technology Incorporated
    Inventors: Stephen Allen, Igor Wojewoda
  • Patent number: 5953741
    Abstract: A multiple processor circuit arrangement utilizes a master processor which controls the operational state of a slave processor by programming internal control registers on the slave processor. In addition, a stack-based processor utilizes a stack cache for accelerating stack access operations and thereby accelerating the overall performance of the processor. When the stack-based processor is utilized as a slave processor in the aforementioned master/slave multi-processor computer system the slave processor is optimized to process platform-independent program code such as Java bytecodes, thereby permitting fast and efficient execution of both program code native to the master processor as well as platform-independent program code that is in effect native to the slave processor.
    Type: Grant
    Filed: November 27, 1996
    Date of Patent: September 14, 1999
    Assignee: VLSI Technology, Inc.
    Inventors: David Ross Evoy, Paul S. Levy
  • Patent number: 5930820
    Abstract: A data cache and method for manipulating data in a microprocessor are disclosed. The data cache stores stack data within a stack memory separate from a cache line oriented storage used for non-stack data. Data may be pushed, popped, and accessed via an offset from the stack memory without generating main memory addresses. A load/store unit coupled to the data cache may be configured to perform the address generation associated with stack accesses in parallel with performing the access to the stack memory. If the corresponding data is not stored within the stack memory, then an access to the cache line oriented storage may be performed. Therefore, no time penalty is assessed for missing the stack memory. A stack memory is contemplated for use with respect to subroutine parameter passing. The calling routine may perform multiple push commands to place parameters for use by the subroutine onto the stack. The subroutine may then access and modify the parameters upon the stack.
    Type: Grant
    Filed: March 18, 1996
    Date of Patent: July 27, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thomas W. Lynch
  • Patent number: 5903910
    Abstract: A microprocessor including a pair of caches is provided. One of the pair of caches is accessed by stack-relative memory accesses from the decode stage of the instruction processing pipeline. The second of the pair of caches is accessed by memory accesses from the execute stage of the instruction processing pipeline. When a miss is detected in the first of the pair of caches, the stack-relative memory access which misses is conveyed to the execute stage of the instruction processing pipeline. When the stack-relative memory access accesses the second of the pair of caches, the cache line containing the access is transmitted to the first of the pair of caches for storage. The first of the pair of caches selects a victim line for replacement when the data is transferred from the second of the pair of caches. If the victim line has been modified while stored in the first cache, then the victim line is stored in a copyback buffer.
    Type: Grant
    Filed: November 20, 1995
    Date of Patent: May 11, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, Marty L. Pflum, David B. Witt, William M. Johnson
  • Patent number: 5901333
    Abstract: A wavetable cache for an audio synthesizer which synthesizes music signals from voice data in a pooled memory uses a vertical architecture cache to communicate data from the memory to an audio signal processor. The vertical architecture cache includes a substantially limited number of queues, corresponding to only a fraction of the voices stored in the main memory and processed in the audio signal processor. A plurality of samples are transferred in a batch mode from the memory via a system bus to a queue. The samples are subsequently processed and accumulated for the entire plurality of samples by the audio signal processor. The limited number of queues are shared among the different voices in a round-robin fashion.
    Type: Grant
    Filed: July 26, 1996
    Date of Patent: May 4, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Larry Hewitt
  • Patent number: 5893121
    Abstract: A computer system has a CPU, a stack cache and a main memory. The main memory is a conventional untagged memory, where each memory location is a word having a bit size that is an integer power of 2 (e.g., 32, 64 or 128 bits per word). However, at least one stack cache associated with the CPU (and preferably integrated with the CPU on the same semiconductor circuit or in the same chip set) is a tagged memory where each data word of the stack cache has an associated tag. Whenever the stack cache overflows with data, at least a portion of the contents of the stack cache are stored in a previously established location in main memory so as to make room for storing additional data in the stack cache. In this stack cache swap out operation, the data values and tags in N evaluation stack entries of the evaluation stack cache are copied to the previously established main memory location.
    Type: Grant
    Filed: April 23, 1997
    Date of Patent: April 6, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Zahir Ebrahim, Ahmed H. Mohamed
  • Patent number: 5893148
    Abstract: A stack cache memory mechanism and method for managing the mechanism are provided. The mechanism comprises a data array including a plurality of storage elements in which stack data may be stored, and a plurality of individual stack tag sets for identifying beginning and ending locations of a corresponding plurality of individual stacks contained within the data array. Each of the individual stack tag sets comprise (i) a first register for containing an address in the data array corresponding to the top of a stack associated with that individual stack tag set and (ii) a second register for containing an address in the data array corresponding to the bottom of a stack associated with that individual stack tag set. A backward pointer array comprises a plurality of backward pointers which map each of the plurality of stack tag sets to address locations in the data array.
    Type: Grant
    Filed: November 10, 1997
    Date of Patent: April 6, 1999
    Assignee: International Business Machines Corporation
    Inventors: Thomas B. Genduso, Wan L. Leung
  • Patent number: 5848287
    Abstract: A superscalar microprocessor is provided which maintains coherency between a pair of caches accessed from different stages of an instruction processing pipeline. A dependency checking structure is provided within the microprocessor. The dependency checking structure compares memory accesses performed from the execution stage of the instruction processing pipeline to memory accesses performed from the decode stage. The decode stage performs memory accesses to a stack cache, while the execution stage performs its accesses (address for which are formed via indirect addressing) to the stack cache and to a data cache. If a read memory access performed by the execution stage is dependent upon a write memory access performed by the decode stage, the read memory access is stalled until the write memory access completes.
    Type: Grant
    Filed: February 20, 1996
    Date of Patent: December 8, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, David B. Witt, William M. Johnson
  • Patent number: 5835958
    Abstract: A method, apparatus, and software for efficiently allocating discontiguous stack space without requiring compiler changes are described. In one aspect, a method is provided for executing a compiled function that is located in a first computer memory stack chunk such that additional memory is allocated efficiently if a determination is made that such additional memory is necessary for execution of the compiled function. In one embodiment, the method includes calling a stack checking function that includes the compiled function. A determination is made if additional memory is required for executing the compiled function. If no additional memory is required, then the compiled function is called and executed. However, if additional memory is necessary, then additional memory is allocated that is discontiguous with the original memory stack.
    Type: Grant
    Filed: October 29, 1996
    Date of Patent: November 10, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Alan G. Bishop, Nedim Fresko