Stack Based Computer Patents (Class 712/202)
  • Publication number: 20030018879
    Abstract: A processor is provided with a address calculation unit so as to generate addresses for elements of object oriented data structures in one processor clock cycle.
    Type: Application
    Filed: May 10, 2002
    Publication date: January 23, 2003
    Inventors: Zohair Sahraoui, Gary Ciambella
  • Patent number: 6502184
    Abstract: A method and apparatus for providing a stack in a processor-based system. In one embodiment, the apparatus comprises a memory for storing instruction sequences by which the processor-based system is processed; and a processor coupled to the memory that executes the stored instruction sequences, where the processor has a plurality of registers. The stored instruction sequences cause the processor to: (a) determine a condition of occupancy of the plurality of registers; and (b) rearrange the contents of each of the plurality of registers in accordance with a predetermined order.
    Type: Grant
    Filed: September 2, 1998
    Date of Patent: December 31, 2002
    Assignee: Phoenix Technologies Ltd.
    Inventors: Weifeng Zhang, Wenbin He
  • Patent number: 6502183
    Abstract: The data processing device maintains two stacks. The length of the basic unit of information is different for each stack. Pops and pushes cause a change in the stack pointer which differs dependent on which stack is used. Instructions refer to different locations on the stack as registers defined by an offset of a number of basic units relative to the top of stack. In an embodiment a reference to registers is normally interpreted as a reference to one of a set of registers (including the top of stack register) without push or pop, but a reference to one register is interpreted as a reference to, top of stack including a push or pop.
    Type: Grant
    Filed: August 3, 1998
    Date of Patent: December 31, 2002
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Marnix C. Vlot, Paul E. R. Lippens
  • Patent number: 6463523
    Abstract: Load/store execution order violations in an out-of-order processor are reduced by determining whether a source address of a load instruction is the same as a destination address of a store instruction on which execution the load instruction depends. If they are the same, then execution of the load instruction is delayed until execution of the store instruction. In an system where virtual registers are mapped to a physical register, the physical registers mapped by the store and load instructions are compared. A table has entries corresponding to instructions in an instruction queue. In each table entry corresponding to a store instruction, the store instruction's destination address offset and physical register reference are saved. A load instruction's source address offset and physical reference are compared with each of the table entries corresponding to store instructions to determine whether a dependency exists.
    Type: Grant
    Filed: July 29, 1999
    Date of Patent: October 8, 2002
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Richard Eugene Kessler, Rahul Razdan, Edward John Mclellan
  • Patent number: 6449709
    Abstract: A processor includes a stack that operates as a circular stack and appears to the address space in the memory of the processor as a single point address location. The stack supports read and write data access functions in addition to CALL (push) and RETURN (pop) programming operations. The processor may be programmed to save the stack in a typical manner with one instruction atomically transferring each element in the stack directly from the stack to a save storage. To restore the stack, the processor may be programmed to individually restore each element. The processor supports a special MOV instruction that transfers a plurality of bytes in a single operation. The special MOV instruction has one argument that identifies the beginning transfer source address, another argument defines the byte count indicating the number of bytes to be transferred, and a beginning transfer destination address.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: September 10, 2002
    Assignee: Adaptec, Inc.
    Inventor: Stillman F. Gates
  • Patent number: 6442673
    Abstract: An apparatus is presented for expediting the execution of address-dependent micro instructions in a pipeline microprocessor having design characteristics-complexity, power, and timing-that are not significantly impacted by the number of stages in the microprocessor's pipeline. The present invention provides a cache for storage of multiple intermediate address operands. The cache is accessed by an address-dependent micro instruction to retrieve a required address operand. The apparatus includes an update forwarding cache, address update logic, and address operand configuration logic. The update forwarding cache stores the intermediate address operands. The address update logic receives the intermediate address operands as they are generated and enters the intermediate address operands into the update forwarding cache. The address operand configuration logic accesses the intermediate address operands to configure and provide an address operand that is required an address-dependent micro instruction.
    Type: Grant
    Filed: November 5, 1999
    Date of Patent: August 27, 2002
    Assignee: I.P. First L.L.C.
    Inventors: Gerard M. Col, Terry Parks
  • Patent number: 6438677
    Abstract: One embodiment of the present invention provides a system that supports space and time dimensional program execution by facilitating accesses to different versions of a memory element. The system supports a head thread that executes program instructions and a speculative thread that executes program instructions in advance of the head thread. The head thread accesses a primary version of the memory element, and the speculative thread accesses a space-time dimensioned version of the memory element. During a reference to the memory element by the head thread, the system accesses the primary version of the memory element. During a reference to the memory element by the speculative thread, the speculative thread accesses a pointer associated with the primary version of the memory element, and accesses a version of the memory element through the pointer. Note that the pointer points to the space-time dimensioned version of the memory element if the space-time dimensioned version of the memory element exists.
    Type: Grant
    Filed: October 20, 1999
    Date of Patent: August 20, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay
  • Patent number: 6438514
    Abstract: A computer is operated to generate electronic data defining a system model by loading into the computer a class definition defining instructions which are processed by the system, the definition including a set of functional methods to which the instruction is subjected by the system and a set of locations for members representing the instruction. A model execution program is then executed on the computer which calls the class definition for each instruction, invokes one of the functional methods and loads the locations of the entry with state information depending on the functional method to create a functional component. The functional component is loaded into memory and the state information of the functional component modified independence on a subsequently invoked functional method by the model execution program.
    Type: Grant
    Filed: November 22, 1999
    Date of Patent: August 20, 2002
    Assignee: STMicroelectronics Limited
    Inventors: Mark Hill, Hendrick-Jan Agterkamp, Andrew Sturges
  • Patent number: 6415377
    Abstract: The data processor contains a memory and a data prefetch unit. The data prefetch unit contains a respective FIFO queue for storing prefetched data from each of a number of address streams respectively. The data prefetch unit uses programmable information to generate addresses from a plurality of address streams and prefetches data from addresses successively addressed by a present address for the data stream in response to progress of execution of a program by the processor. The processor has an instruction which causes the data prefetch unit to extract an oldest data from the FIFO queue for an address stream and which causes the data processor to use the oldest data in the manner of operand data of the instruction.
    Type: Grant
    Filed: June 3, 1999
    Date of Patent: July 2, 2002
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Pieter Van Der Wolf, Kornelis A. Vissers
  • Patent number: 6374350
    Abstract: An instruction pipeline in a microprocessor is provided. The instruction pipeline includes a plurality of pipeline units, each of the plurality of pipeline units processing a plurality of instructions. At least two of the plurality of pipeline units are a source of at least some of the instructions for the pipeline. The pipeline further includes at least two speculative return address stacks, each of the speculative return address stacks coupled is coupled to at least one of the instruction source units. Each of the speculative return return address stacks are capable of storing at least two speculative return addresses.
    Type: Grant
    Filed: June 1, 2000
    Date of Patent: April 16, 2002
    Assignee: Intel Corporation
    Inventors: Reynold V. D'Sa, Rebecca E. Hebda, Stavros Kalafatis, Alan B. Kyker, Robert B. Chaput
  • Patent number: 6363474
    Abstract: In a data processing system that includes a safe store buffer containing valid copies of all registers, processor transitions from a higher security routine to a lower security routine can be performed in fewer cycles by utilizing a plurality of sets of registers maintained in a round-robin system. Whenever a transition is made to a higher security environment, a switch is made to a different set of registers. Then, when a transition is made back to the lower security environment, a switch is made back to the previous set of registers. Writes to memory copies of registers are detected, and only those registers whose memory copies have been modified are restored from the memory copy.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: March 26, 2002
    Assignee: Bull HN Information Systems Inc.
    Inventors: Lowell McCulley, Charles Ryan, Ronald Yoder
  • Patent number: 6363473
    Abstract: A computer system that simulates a memory stack in a non-general purpose register set in the computer's CPU. The computer system can use the simulated memory stack to store a return address before jumping to a subroutine or use the simulated stack to store a data value for subsequent retrieval and use. The non-general purpose register set may include memory type range registers (MTRRs). One of the MTRRs is designated as the stack pointer register and is used to store a pointer index value which identifies which of the other MTRR registers is associated with the top of the simulated memory stack. The computer system preferably includes a non-volatile memory, such as a ROM, which contains executable instructions for implementing the simulated memory stack. The instructions provide for incrementing and decrementing the pointer index value and writing to and reading from the MTRR registers identified by the pointer index as associated with the top of simulated stack.
    Type: Grant
    Filed: April 1, 1999
    Date of Patent: March 26, 2002
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Robert J. Volentine, Rahul G. Patel
  • Patent number: 6349383
    Abstract: An apparatus and method are provided for combining multiple instructions prescribing accesses to a microprocessor stack into a single micro instruction. The apparatus includes a translator and access alignment logic. The translator receives a first stack access instruction and a second stack access instruction from an instruction queue, and decodes them into an associated micro instruction directing the microprocessor to accomplish both accesses prescribed by the stack access instructions during a combined access, wherein the combined access is achieved in a single instruction cycle. The access alignment logic is coupled to the translator and indicates alignment of two data entities within a cache for the combined access. The two stack access instructions are not combined when the access alignment logic indicates that the combination of the data entities is misaligned within the cache.
    Type: Grant
    Filed: September 10, 1998
    Date of Patent: February 19, 2002
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry, Arturo Martin-de-Nicolas
  • Patent number: 6345353
    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: January 30, 2001
    Date of Patent: February 5, 2002
    Assignee: Microchip Technology Incorporated
    Inventors: Stephen Allen, Igor Wojewoda
  • Publication number: 20020010850
    Abstract: One or more embodiments of the invention provide a method, apparatus, and article of manufacture for collaborating application programs executing on a client such as a personal digital assistant (PDA). A shared database on the client is obtained and used as a common launch parameter stack. One or more program entry records are stored in the database and the last program entry record stored is identified as the top of the stack. Each program entry record may include information regarding an application launched on the client. When the last program identified on the stack has completed execution, the last program entry record is popped off of the stack. Thereafter, control is returned to an application that corresponds to the new program entry record on the top of the stack.
    Type: Application
    Filed: February 28, 2001
    Publication date: January 24, 2002
    Applicant: Autodesk, Inc.
    Inventors: Timothy John Nelson, Nemmara Chithambaram, John Ricardo DeAguiar
  • Patent number: 6341344
    Abstract: A method and apparatus for manipulating data from a processor on a stack memory is disclosed. The method and apparatus comprises aligning a stack pointer (104) in the stack memory (110) to a first memory address (126). The method further comprises incrementing the stack pointer (104) to a second memory address (128). The method further comprises saving data from a register (102) into the stack memory (110) at the second memory address (128). The method further comprises aligning the stack pointer (104) to a next even address if at an odd address when the saving step is complete. The method further comprises performing processor operations. The method further comprises unaligning the stack pointer (104) from the even address back to the odd address. The method further comprises restoring data from the stack memory (110) into the register (102). The method further comprises decrementing the stack pointer (104) from the second memory address (128) to the first memory address (126).
    Type: Grant
    Filed: March 18, 1999
    Date of Patent: January 22, 2002
    Assignee: Texas Instruments Incorporated
    Inventors: Alexander Tessarolo, Mahesh Mehendale
  • Publication number: 20020002665
    Abstract: The data processing device maintains two stacks. The length of the basic unit of information is different for each stack. Pops and pushes cause a change in the stack pointer which differs dependent on which stack is used. Instructions refer to different locations on the stack as registers defined by an offset of a number of basic units relative to the top of stack. In an embodiment a reference to registers is normally interpreted as a reference to one of a set of registers (including the top of stack register) without push or pop, but a reference to one register is interpreted as a reference to top of stack including a push or pop.
    Type: Application
    Filed: August 3, 1998
    Publication date: January 3, 2002
    Applicant: Philips Corporation
    Inventors: MARNIX C. VLOT, PAUL E.R. LIPPENS
  • Patent number: 6317872
    Abstract: An improved computer architecture and system advantageously combine the beneficial characteristics of a high level object oriented programming language with an optimized processor for efficient application to real time embedded computing problems. Additionally, an improved method for resolving symbolic references in code generated by compiling source code written in an object oriented programming language to the corresponding logical memory addresses stores look-up information with the object itself after the first encounter of a given symbolic reference, whereby the logical memory address information is available for subsequent encounters of the symbolic reference, and whereby no modification of the program instructions containing the symbolic reference is necessary. In a preferred embodiment, the Java™ programming language is used.
    Type: Grant
    Filed: April 6, 1998
    Date of Patent: November 13, 2001
    Assignee: Rockwell Collins, Inc.
    Inventors: John K. Gee, David A. Greve, David S. Hardin, Raymond A. Kamin, T. Douglas Hiratzka, Allen P. Mass, Michael H. Masters, Nick M. Mykris
  • Patent number: 6314445
    Abstract: A method and system of processing within a Java Virtual Machine on a computer system, a native function call instruction of a dynamic parameter set type and contained in a Java byte code application. The method comprises the steps of; interpreting the byte code representing a native function call instruction of the dynamic parameter set type; storing the parameters of the variable parameter set in an array; using the computer system to process the native function call as a fixed parameter set type using the array as the fixed parameter set. Before the function is called the computer system transfers the parameters from the array to a stack used by the native function.
    Type: Grant
    Filed: August 3, 1998
    Date of Patent: November 6, 2001
    Assignee: International Business Machines Coproration
    Inventor: Stephen Poole
  • Patent number: 6301651
    Abstract: The present invention provides a stack machine for executing a plurality of instructions one by one. The stack machine comprises an operation folder and an execution unit. The operation folder is used for checking if one or more instructions of a predetermined number of instructions following a specific instruction in a predetermined sequence can be folded with the specific instruction according to a POC folding rule. If they are foldable, these instructions will be combined to form a new instruction. The execution unit is used for executing instructions which cannot be folded by the operation folder or new instructions generated by the operation folder one by one. The instructions are folded to enhance operation efficiency of the stack machine.
    Type: Grant
    Filed: June 28, 1999
    Date of Patent: October 9, 2001
    Assignee: Industrial Technology Research Institute
    Inventors: Lung-Chung Chang, Lee-Ren Ton, Min-Fu Kao, Chung-Ping Chung
  • Patent number: 6256725
    Abstract: A processor is configured to include at least two architecturally-distinct storage spaces, such as, for example, a stack for storing control operands associated with one or more instructions, and a register file for storing computational operands associated with one or more instructions. The processor further includes a datapath which is at least partially shared by the stack and register file, a multiplexer operative to select an output of either the stack or the register file for application to an input of the shared datapath, and a demultiplexer operative to select an output of the shared datapath for application to an input of either the stack or the register file.
    Type: Grant
    Filed: December 4, 1998
    Date of Patent: July 3, 2001
    Assignee: Agere Systems Guardian Corp.
    Inventors: Dean Batten, Paul Gerard D'Arcy, C. John Glossner, Sanjay Jinturkar, Jesse Thilo, Kent E. Wires
  • Patent number: 6247114
    Abstract: A microprocessor having an instruction queue capable of out-of-order instruction dispatch and rapidly selecting one or more oldest eligible entries is disclosed. The microprocessor may comprise a plurality of instruction execution pipelines, an instruction cache, and an instruction queue coupled to the instruction cache and execution pipelines. The instruction queue may comprise a plurality of instruction storage locations and may be configured to output up to a predetermined number of non-sequential out of order instructions per clock cycle. The microprocessor may be further configured with high speed control logic coupled to the instruction queue. The control logic may comprise a number of pluralities of multiplexers, wherein the first plurality of multiplexers are configured to select a first subset of the instructions stored in the queue. The second plurality of multiplexers then select a second subset of instructions from the first subset.
    Type: Grant
    Filed: February 19, 1999
    Date of Patent: June 12, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Jeffrey E. Trull
  • Publication number: 20010003201
    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: Application
    Filed: January 30, 2001
    Publication date: June 7, 2001
    Inventors: Stephen Allen, Igor Wojewoda
  • Patent number: 6243800
    Abstract: The invention relates to computer science, in particular, to a computer system comprising a processor, an input-output switch, an instruction loading switch, instruction memory, and a data access unit which uses the dataflow principle of computation. Performance is increased by decreasing the volume of associative memory by means of the introduction of the use of a fragment routine processor to process segments of the program which are better processed by von Neumann principles of computation.
    Type: Grant
    Filed: August 5, 1998
    Date of Patent: June 5, 2001
    Inventors: Vsevolod Sergeevich Burtsev, Igor K. Khailov, Eduard V. Sizko, Vladimir K. Erschov, Lev A. Koslov, Vladimir P. Torchigin, Vjachoslav B. Fyodorov, Julia N. Nikolskaja, Larisa G. Tarasenko
  • Patent number: 6237086
    Abstract: An execution unit for a stack based computing system that can combine instructions into instruction groups for concurrent execution is provided. In accordance with one embodiment, the instructions of the stack based computing system are separated into different instruction types. Certain combinations of instruction types can be combined into instruction groups for concurrent execution. The execution unit includes an instruction folding unit that is configured to determine the instruction type of instructions and combine the instructions into instruction groups, and an instruction pipeline that is configured to process both instructions and instruction groups. In one embodiment, the instruction folding unit includes: an instruction type estimator which estimates the instruction types of various instructions; an instruction selector, which selects the instruction types from the estimated instruction types; and a folding logic circuit which combines the instructions into instruction groups.
    Type: Grant
    Filed: April 22, 1998
    Date of Patent: May 22, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Sailendra Koppala, Ravinandan R. Buchamwandla
  • Patent number: 6223275
    Abstract: A 32-bit RISC processor is disclosed. The bit length of the instruction set is fixed to 16 bits. SLIL and SLIH instructions that cause the address space of 4 Gbytes to be limited to upper 2 Mbytes and that execute a long type register branch instruction are provided. Thus, a register branch instruction can be executed with three instructions rather than five instructions unlike with a related art reference.
    Type: Grant
    Filed: June 12, 1998
    Date of Patent: April 24, 2001
    Assignee: Sony Corporation
    Inventors: Masaru Goto, Hiroaki Miyachi, Yukihiro Sakamoto
  • Patent number: 6205539
    Abstract: A method is provided for controlling a stack memory with a stack pointer. The method is composed of four major steps in a four phase instruction cycle. The first phase of the method decodes an instruction at an address retained by a program counter. The second phase reads a memory location. The third phase executes the operation of the instruction. Finally, the fourth phase writes the result of the executed operation into a memory location. Various alternate embodiments can modify the above-mentioned steps. For example, the second step can be modified so that it includes a call instruction wherein the address retained by the program counter is written into a stack memory during the second phase at a stack pointer address. Additional sub-steps can include the decrementing of a stack pointer address, the selection of the stack pointer address or the decremented stack pointer address, and the provision of return instruction wherein a previously stored program counter address is read from the stack memory.
    Type: Grant
    Filed: July 20, 1999
    Date of Patent: March 20, 2001
    Assignee: Microchip Technology Incorporated
    Inventors: Stephen Allen, Igor Wojewoda
  • Patent number: 6178473
    Abstract: A method and apparatus for selectively incrementing a count number associated with a node which is subject to a compare and swap operation in a concurrent non-blocking queue. A memory stores data in a plurality of nodes residing in at least one queue. The plurality of nodes store both data and references to other nodes within the queue. An address of each node includes a pointer and a count number. A plurality of processors access the memory and operate on the plurality of nodes including performing a compare and swap operation. The count number of a node is selectively incremented only upon a successful compare and swap operation when the node is put in use by removing the node from an available source of free nodes and placing the node on the queue. Otherwise, the count number of the node is preserved.
    Type: Grant
    Filed: October 15, 1998
    Date of Patent: January 23, 2001
    Assignee: Compaq Computer Corporation
    Inventor: Thomas J. Bonola
  • Patent number: 6167504
    Abstract: Apparatus, methods, and computer program products are disclosed that improve the operation of a computer that uses a top-of-stack cache by reducing the number of overflow and underflow traps generated during the execution of a program. The invention maintains a predictor value that controls the number of stack elements that are spilled from, or filled to, the top-of-stack cache in response to an overflow trap or an underflow trap (respectively). The predictor reflects the history of overflow traps and underflow traps.
    Type: Grant
    Filed: July 24, 1998
    Date of Patent: December 26, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Peter C. Damron
  • Patent number: 6157994
    Abstract: A control bit vector storage is provided. The present control bit vector storage (preferably included within a functional unit) stores control bits indicative of a particular instruction. The control bits are divided into multiple control vectors, each vector indicative of one instruction operation. The control bits control dataflow elements within the functional unit to cause the instruction operation to be performed. Additionally, the present control bit vector storage allows complex instructions (or instructions which produce multiple results) to be divided into simpler operations. The hardware included within the functional unit may be reduced to that employed to perform the simpler operations. In one embodiment, the control bit vector storage comprises a plurality of vector storages. Each vector storage comprises a pair of individual vector storages and a shared vector storage. The shared vector storage stores control bits common to both control vectors.
    Type: Grant
    Filed: July 8, 1998
    Date of Patent: December 5, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Marty L. Pflum
  • Patent number: 6151671
    Abstract: An instruction pipeline in a microprocessor is provided. The instruction pipeline includes a plurality of pipeline units, each of the plurality of pipeline units processing a plurality of instructions. At least two of the plurality of pipeline units are a source of at least some of the instructions for the pipeline. The pipeline further includes at least two speculative return address stacks, each of the speculative return address stacks coupled is coupled to at least one of the instruction source units. Each of the speculative return return address stacks are capable of storing at least two speculative return addresses.
    Type: Grant
    Filed: February 20, 1998
    Date of Patent: November 21, 2000
    Assignee: Intel Corporation
    Inventors: Reynold V. D'Sa, Rebecca E. Hebda, Stavros Kalafatis, Alan B. Kyker, Robert B. Chaput
  • Patent number: 6148392
    Abstract: An asynchronous stack apparatus and method is provided that reduces power consumption that maintains a constant response time regardless of the number of stored items. The asynchronous stack apparatus uses a token and control circuits to indicate a current tope of stack and process data input/output. The asynchronous stack apparatus includes a communication device, a plurality of storage units and a token control circuit.
    Type: Grant
    Filed: September 8, 1998
    Date of Patent: November 14, 2000
    Assignees: Hyundai Electronics Industries Co., Ltd., Cogency Technology Incorporated
    Inventor: Jianwei Liu
  • Patent number: 6148391
    Abstract: Embodiments of the present invention provide a stack renaming method and apparatus for stack based processors. Using principles of the present invention, a stack can be accessed simultaneously by one or more functional units in a stack processor. The stack apparatus includes a stack renaming unit capable of renaming a logical stack address to a real stack address. Each logical stack address corresponds to a storage element in the stack renaming unit which stores a real stack address. A circular counter is used in the stack renaming unit to sequentially cycle through each of the logical stack addresses. The real stack addresses corresponding to each of the logical stack addresses can be stored out of order in the stack renaming unit. A stack control unit is coupled to the stack renaming unit and provides one or more control signals to the stack renaming unit and coordinates the operation of the stack renaming unit within the stack apparatus.
    Type: Grant
    Filed: March 26, 1998
    Date of Patent: November 14, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Bruce Petrick
  • Patent number: 6125439
    Abstract: In executing a new method, a hardware processor loads the execution environment on a stack in the background and indicates what portion of the execution environment has been loaded so far, e.g., simple one bit scoreboarding. Thus, the hardware processor tracks the information in the execution environment loaded on the stack. The hardware processor tries to execute the bytecodes of the called method as soon as possible, even though the stack is not completely loaded. If accesses are made to variables already loaded, overlapping of execution with loading of the stack is achieved. Thus, execution and loading continue until information in the execution environment needed for the execution is not on said stack as indicated by said tracking.
    Type: Grant
    Filed: January 23, 1997
    Date of Patent: September 26, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, James Michael O'Connor
  • Patent number: 6120552
    Abstract: The present invention describes a method for a one-pass parsing algorithm for generation of a Polish string that computationally defines the maximal possible parallel execution of a general class of arithmetic expressions using one operator stack and two operand stacks. This invention relaxes the assumption that in a processor, only one operation can be performed at any given time.
    Type: Grant
    Filed: May 27, 1998
    Date of Patent: September 19, 2000
    Assignee: International Business Machines Corporation
    Inventors: Jerome M. Kurtzberg, Menachem Levanoni, John Stephen Lew
  • Patent number: 6112296
    Abstract: A floating point unit capable of executing multiple instructions in a single clock cycle using a central window and a register map is disclosed. The floating point unit comprises: a plurality of translation units, a future file, a central window, a plurality of functional units, a result queue, and a plurality of physical registers. The floating point unit receives speculative instructions, decodes them, and then stores them in the central window. Speculative top of stack values are generated for each instruction during decoding. Top of stack relative operands are computed to physical registers using a register map. Register stack exchange operations are performed during decoding. Instructions are then stored in the central window, which selects the oldest stored instructions to be issued to each functional pipeline and issues them. Conversion units convert the instruction's operands to an internal format, and normalization units detect and normalize any denormal operands.
    Type: Grant
    Filed: December 18, 1997
    Date of Patent: August 29, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, Derrick R. Meyer
  • Patent number: 6108767
    Abstract: Apparatus, methods, and computer program products are disclosed that improve the operation of a computer that uses a top-of-stack cache by reducing the number of overflow and underflow traps generated during the execution of a program. An exception history is maintained that tracks recent occurrences of overflow and underflow exception traps. This exception history is hashed with the address of the computer instruction that caused the exception to generate an index into a set of predictors. Thus, a predictor is used that is responsive to the current exception history of the top-of-stack cache.
    Type: Grant
    Filed: July 30, 1998
    Date of Patent: August 22, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Peter C. Damron
  • Patent number: 6108768
    Abstract: An execution unit that executes multiple instructions as a single instruction group during a single processing cycle is provided. The execution unit handles problem causing instruction groups by trapping the problem causing instruction group using the trap logic of a processing unit. The reissue logic circuits restores the program state of the execution unit prior to issuance of the trapped instruction group. The reissue logic circuit then forces each instruction of the instruction group to be issued as a separate instruction. Specifically, the reissue logic inhibits folding of instructions into instruction groups by an instruction-folding unit. After the instructions of the trapped instruction group are executed, the reissue logic re-enables folding by the instruction-folding unit.
    Type: Grant
    Filed: April 22, 1998
    Date of Patent: August 22, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Sailendra Koppala, Ravinandan R. Buchamwandla
  • Patent number: 6092180
    Abstract: In a method for scheduling instructions executed in a computer system including a processor and a memory subsystem, pipeline latencies and resource utilization are measured by sampling hardware while the instructions are executing. The instructions are then scheduled according to the measured latencies and resource utilizations using an instruction scheduler.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: July 18, 2000
    Assignee: Digital Equipment Corporation
    Inventors: Jennifer-Ann M. Anderson, Jeffrey Dean, James E. Hicks, Jr., Carl A. Waldspurger, William E. Weihl
  • Patent number: 6088787
    Abstract: A central processing unit having at least one memory for storing instructions and data includes a program counter for storing program counter values. An execution unit retrieves and processes instructions located in the memory at addresses corresponding to the contents of the program counter. Multiple stacks independent of the memory are provided for storing program counter values. A multiplexer connects the program counter to each stack. A stack select register connected to a control input of the multiplexer enables the transfer of program counter values between the program counter and one of the stacks indicated by the contents of the stack select register. The central processing unit provides an efficient multi-tasking capability since the program counter state of each task can be stored in one of the multiple stacks.
    Type: Grant
    Filed: March 30, 1998
    Date of Patent: July 11, 2000
    Assignee: Celestica International Inc.
    Inventor: Myke Predko
  • Patent number: 6088786
    Abstract: A microprocessor capable of performing multimedia and non-multimedia operations provided a plurality of stack based instructions is provided. The microprocessor includes a stack processor coupled to a stack capable of storing values, a register processor coupled to a register file capable of storing values, and a copy-unit having a first port coupled to the stack and a second port coupled to the register file being configured to copy data between the register file and the stack. The microprocessor also includes logic coupled to receive the plurality of stack based instructions from memory, cache, or other storage devices coupled to the microprocessor. The logic is configured to determine which of the plurality of stack based instructions are regular stack instructions and which of the plurality of stack based instructions are extended stack instructions.
    Type: Grant
    Filed: June 27, 1997
    Date of Patent: July 11, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Gary Feierbach, Mukesh Patel
  • Patent number: 6065108
    Abstract: An instruction accelerator which includes a processor and an associative memory. The processor is coupled to receive a stream of instructions and a corresponding stream of instruction identifier values. The instructions include at least one non-quick instruction which has a first associated data set which must be accessed prior to executing the non-quick instruction. A memory, which is coupled to the processor, stores one or more instruction identifier values and one or more associated data sets. The memory receives the stream of instruction identifier values. When a current instruction identifier value in the stream of instruction identifier values matches an instruction identifier value stored in the memory, an associated data set is accessed from the memory.
    Type: Grant
    Filed: January 23, 1997
    Date of Patent: May 16, 2000
    Assignee: Sun Microsystems Inc
    Inventors: Marc Tremblay, James Michael O'Connor
  • Patent number: 6026485
    Abstract: An instruction decoder allows the folding away of JAVA virtual machine instructions pushing an operand onto the top of a stack merely as a precursor to a second JAVA virtual machine instruction which operates on the top of stack operand. Such an instruction decoder identifies foldable instruction sequences and supplies an execution unit with a single equivalent folded operation thereby reducing processing cycles otherwise required for execution of multiple operations corresponding to the multiple instructions of the folded instruction sequence. Instruction decoder embodiments described herein provide for folding of two, three, four, or more instruction folding. For example, in one instruction decoder embodiment described herein, two load instructions and a store instruction can be folded into execution of operation corresponding to an instruction appearing therebetween in the instruction sequence.
    Type: Grant
    Filed: January 23, 1997
    Date of Patent: February 15, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: James Michael O'Connor, Marc Tremblay
  • 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: 6016544
    Abstract: An apparatus and method for improving the execution speed of stack segment load operations is provided. Rather than delaying translation of instructions following stack segment loads, until the load is complete, the present invention presumes that no change will be made to the stack address size. Tracking of the stack address size, at the time of translation, is performed by a plurality of SAS bits associated with translated micro instructions, and logic is provided which compares the tracked SAS bits with any change in the stack address size. If no change is made by the stack load operation, the already translated instructions execute immediately. If a change is made by the stack load operation, logic interrupts processing of the translated instructions, and the instructions are retranslated using the new stack address size.
    Type: Grant
    Filed: June 9, 1997
    Date of Patent: January 18, 2000
    Assignee: IP First LLC
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6009509
    Abstract: A method and system in a superscalar data processing system are disclosed for the temporary designation and utilization of a plurality of physical registers as a stack. For each of the multiple instructions to be processed during a single clock cycle by the data processing system, a determination is made whether each of the instructions is a particular type of instruction. If a determination is made that an instruction is a particular type of instruction, a quantity of physical registers to be temporarily designated as a stack is determined utilizing the instruction. A second plurality of physical registers available to be utilized as a stack are determined whether the second plurality of the quantity. The second plurality of physical registers are then temporarily designated and utilized as a stack.
    Type: Grant
    Filed: October 8, 1997
    Date of Patent: December 28, 1999
    Assignee: International Business Machines Corporation
    Inventors: Wan Lin Leung, Thomas Basilio Genduso
  • Patent number: 6006323
    Abstract: A stack management unit for a processing system that manages multiple stacks and corresponding stack pointer data as a frame stack. The stack management unit utilizes a combination of a primary stack and a secondary stack as the frame stack. A background spill/fill detect unit determines when an overflow/underflow of the primary stack occurs. In response to an overflow/underflow condition, the background spill/fill detect unit controls the transfer of a frame portion between the primary stack and the secondary stack without halting the processing system.
    Type: Grant
    Filed: May 20, 1998
    Date of Patent: December 21, 1999
    Assignee: Industrial Technology Research Institute
    Inventors: Ruey-Liang Ma, Shi-Sheng Shang
  • Patent number: 5974531
    Abstract: Methods and systems are disclosed for exploring instruction-level parallelism in superscalar processors by renaming stack entries. In a first embodiment, the stack renaming is implemented in a parallel structure that renames the instructions in parallel. In a second embodiment, the stack renaming is implemented in a serial structure that renames the instructions serially. In a third embodiment, the stack renaming is implemented in a combined parallel-serial structure that renames the instruction partially in parallel and partially in series.
    Type: Grant
    Filed: February 17, 1998
    Date of Patent: October 26, 1999
    Assignee: Industrial Technology Research Institute
    Inventors: Shi-Sheng Shang, Ruey-Liang Ma, Dze-Chaung Wang
  • 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