Patents by Inventor Sorin Iacobovici
Sorin Iacobovici has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7325101Abstract: Cache lines stored in an on-chip cache memory are associated with one or more state bits that indicate whether data stored in the cache lines was sourced from an off-chip cache memory or a main memory. By keeping track of the source of cache lines in the on-chip cache memory and by designing the replacement algorithm of the on-chip cache memory such that only one line in a given set maps into an off-cache memory cache line, the frequency of off-chip cache memory accesses may be greatly reduced, thereby improving performance and efficiency.Type: GrantFiled: May 31, 2005Date of Patent: January 29, 2008Assignee: Sun Microsystems, Inc.Inventors: Sorin Iacobovici, Paul N. Loewenstein
-
Patent number: 7219218Abstract: The present application describes a method and a system for executing instructions while reducing the logic required for execution in a processor. Instructions (e.g., atomic, integer-multiply, integer-divide, move on integer registers, graphics, floating point calculations or the like) are expanded into helper instructions before execution (e.g., in the integer, floating point, graphics and memory units or the like). Such instructions are treated as complex instructions. The functionality of a complex instruction is shared among multiple helpers so that by executing the helpers representing the complex instruction, the functionality of complex instruction is achieved. The expansion of complex instructions into helper instructions reduces the amount of hardware and complexity involved in supporting these individual complex instructions in various units in the processor.Type: GrantFiled: March 31, 2003Date of Patent: May 15, 2007Assignee: Sun Microsystems, Inc.Inventors: Chandra M. R. Thimmannagari, Sorin Iacobovici, Rabin Sugumar
-
Patent number: 7191316Abstract: A system for handling a plurality of single precision floating point instructions and a plurality of double precision floating point instructions that both index a same set of registers is provided. The system comprises a decode unit arranged to decode, stall, and forward at least one of the plurality of single precision and at least one of the plurality of double precision floating point instructions in a fetch group. The decode unit includes a first counter arranged to increment for each of the plurality of single precision floating point instructions forwarded down a pipeline; a second counter arranged to increment for each of the plurality of double precision floating point instructions forwarded down the pipeline; a first mask register and a second mask register. The first mask register is updated by each of the single precision floating point instructions forwarded and the second mask register is updated by each of the double precision floating point instructions forwarded.Type: GrantFiled: January 29, 2003Date of Patent: March 13, 2007Assignee: Sun Microsystems, Inc.Inventors: Rabin A. Sugumar, Sorin Iacobovici, Robert Nuckolls, Chandra M. R. Thimmannagari
-
Publication number: 20070043796Abstract: Errors in a shift result can be detected with a residue-based mechanism, instead of with duplication of an entire shifter. The commutative property of residue computation over a bit string allows the residue of a value to be independent of the actual bit positions when the divisor is a Merrill number. Without a duplicated shifter, an operand that is the subject of a shift operation is formatted to become a multiple of k, where divisor=2k?1, and the divisor is used for computation of residues. The shift operation is translated to a single position shift or a zero position shift. The translated shift is applied to the formatted operand to generate a shift check value. Despite different values, the residues of the shift result and the shift check value will be the same as long as bit groups are consistent between the two. An error(s) is detected by comparing the residue of the shift check value with the residue of the shift result.Type: ApplicationFiled: August 22, 2005Publication date: February 22, 2007Inventor: Sorin Iacobovici
-
Patent number: 7124284Abstract: A method and apparatus to determine readiness of a complex instruction for retirement includes decoding a complex instruction into a plurality of helper instructions; executing the plurality of helper instructions using an execution unit; indicating the plurality of helper instructions that are alive using a live instruction register; and maintaining a complex instruction identification for the complex instruction using a complex instruction identification register.Type: GrantFiled: January 6, 2003Date of Patent: October 17, 2006Assignee: Sun Microsystems, Inc.Inventors: Rabin A. Sugumar, Sorin Iacobovici, Chandra M. R. Thimmannagari
-
Patent number: 7080237Abstract: A technique for flattening architectural register windows into flattened space depending on a current window pointer to a register window is provided. The technique involves converting an n-bit value of a particular register in a register window to an x-bit value dependent on the current window pointer, where x is greater than n, and where the x-bit value is used for register dependency checking among a plurality of instructions.Type: GrantFiled: May 24, 2002Date of Patent: July 18, 2006Assignee: Sun Microsystems, Inc.Inventors: Chandra M. R. Thimmannagari, Sorin Iacobovici, Rabin A. Sugumar, Robert Nuckolls
-
Method for handling condition code modifiers in an out-of-order multi-issue multi-stranded processor
Patent number: 7065635Abstract: A technique for handling a condition code modifying instruction in an out-of-order multi-stranded processor involves providing a condition code architectural register file for each strand, providing a condition code working register file, and assigning condition code architectural register file identification information (CARF_ID) and condition code working register file identification information (CWRF_ID) to the condition code modifying instruction. CARF_ID is used to index a location in a condition code rename table to which the CWRF_ID is stored. Thereafter, upon an exception-free execution of the condition code modifying instruction, a result of the execution is copied from the condition code working register file to the condition code architectural register file dependent on CARF_ID, CWRF_ID, register type information, and strand identification information.Type: GrantFiled: December 17, 2003Date of Patent: June 20, 2006Assignee: Sun Microsystems, Inc.Inventors: Rabin A. Sugumar, Sorin Iacobovici, Chandra M. R. Thimmannagari -
Patent number: 7043609Abstract: A method for protecting reliability of data associated with a data array is provided. The method initiates with defining state information associated with the data array. Then, crucial state information is identified from the state information. Next, a copy of the crucial state information is generated. Then, the state information and the copy of the crucial state information are protected. Next, a worst case state associated with non-crucial information is defined. In response to detecting an error associated with the non-crucial information, the method includes defaulting to the worst case state. A computer readable media and a shared memory multiprocessor chip are also provided.Type: GrantFiled: February 3, 2003Date of Patent: May 9, 2006Assignee: Sun Microsystems, Inc.Inventors: Victor Melamed, Sorin Iacobovici
-
Patent number: 7035999Abstract: A register window fill technique for a retirement window having an entry size less than a number of fill instructions used in a fill condition is provided. The technique uses modified fill instructions that allow the retirement window to retire a portion of the fill instructions without having to determine whether a remaining portion of the fill instructions will execute without exceptions.Type: GrantFiled: June 7, 2002Date of Patent: April 25, 2006Assignee: Sun Microsystems, Inc.Inventors: Chandra Thimmanagari, Sorin Iacobovici, Rabin Sugumar, Robert Nuckolls
-
Patent number: 7024541Abstract: A register window spill technique for an retirement window having an entry size less than a number of spill instructions used in a spill condition is provided. The technique uses modified spill instructions that allow the retirement window to retire a portion of the spill instructions without having to determine whether a remaining portion of the spill instructions will execute without exceptions.Type: GrantFiled: June 7, 2002Date of Patent: April 4, 2006Assignee: Sun Microsystems, Inc.Inventors: Chandra Thimmanagari, Sorin Iacobovici, Rabin Sugumar, Robert Nuckolls
-
Patent number: 6820086Abstract: A linked list structure in a computing system includes a first entry and additional entries. Each additional entry includes a link reference to a prior entry in the linked list. The link reference for each additional entry all are stored within a content addressable memory. Each additional entry is accessible by performing a content search using the link reference to the prior entry. The linked list is traversed by accessing the first entry in the linked list. A second entry in the linked list is accessed by searching the content addressable memory with an index of the first entry. A third entry in the linked list is accessed by searching the content addressable memory with an index of the second entry.Type: GrantFiled: June 18, 1999Date of Patent: November 16, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventors: Sorin Iacobovici, William R. Bryg, Joseph H. Hassoun
-
Publication number: 20040215941Abstract: A technique for handling window-fill and/or window-spill operations that improves the performance of a processor over traditional techniques is presented. The window-fill and window-spill operations can be handled in hardware using helper instructions (helpers) prior to the generation of a trap (exception). Fetched instructions are examined prior to forwarding for execution to detect a potential register window boundary condition necessitating, for example, a window-fill or window-spill operation. Vectors are generated for a helper storage within the processor to retrieve helpers for resolving the condition. The helpers are forwarded for execution prior to the instruction that would cause the condition. In some embodiments, to improve the processing, individual helper storages are implemented for every condition. The use of helpers to resolve a register window boundary condition eliminates the generation of a trap and the use of trap handler code.Type: ApplicationFiled: April 24, 2003Publication date: October 28, 2004Applicant: Sun Microsystems, Inc.Inventors: Chandra M.R. Thimmannagari, Sorin Iacobovici, Rabin Sugumar
-
Publication number: 20040199749Abstract: A method for limiting a number of register file read ports used to process a store instruction includes decoding the store instruction, where the decoding generates a decoded store instruction, identifying a store data register and source operand registers included in the decoded store instruction, and appending a set of attribute fields to the decoded store instruction. Further, dependent on a value of at least one of the attribute fields, source values corresponding to the source operand registers are read using the register file read ports at a time that the store instruction is issued, and a store data value corresponding to the store data register is read using one of the register file read ports at a time that the store instruction is committed.Type: ApplicationFiled: April 3, 2003Publication date: October 7, 2004Inventors: Robert Golla, Chandra M. R. Thimmannagari, Sorin Iacobovici, Rabin A. Sugumar, Robert Nuckolls
-
Publication number: 20040199753Abstract: The present application describes a method and a system for executing instructions while reducing the logic required for execution in a processor. Instructions (e.g., atomic, integer-multiply, integer-divide, move on integer registers, graphics, floating point calculations or the like) are expanded into helper instructions before execution (e.g., in the integer, floating point, graphics and memory units or the like). Such instructions are treated as complex instructions. The functionality of a complex instruction is shared among multiple helpers so that by executing the helpers representing the complex instruction, the functionality of complex instruction is achieved. The expansion of complex instructions into helper instructions reduces the amount of hardware and complexity involved in supporting these individual complex instructions in various units in the processor.Type: ApplicationFiled: March 31, 2003Publication date: October 7, 2004Applicant: Sun Microsystems, Inc.Inventors: Chandra M.R. Thimmannagari, Sorin Iacobovici, Rabin Sugumar
-
Publication number: 20040193845Abstract: The present application describes a method and a system for facilitating atomicity of complex instructions in processor execution of helper instruction. Atomic complex instructions are handled by stalling the fetching of instruction upon recognizing atomic instruction in a group of fetched instructions. Complex atomic instructions are expanded into helper instructions before execution (e.g., in the integer, floating point, graphics and memory units or the like). Stalling the fetching facilitates the execution and completion of corresponding helper instructions and maintains the atomicity of the complex instruction.Type: ApplicationFiled: March 24, 2003Publication date: September 30, 2004Applicant: Sun Microsystems, Inc.Inventors: Chandra M.R. Thimmannagari, Sorin Iacobovici, Rabin A. Sugumar
-
Publication number: 20040193844Abstract: The present application describes a method and a system for facilitating the execution of helper sets corresponding to atomic complex instructions. The atomicity of complex instructions is maintained by emptying load and/or store queues and locking the addressed location. Complex atomic instructions are expanded into helper instructions before execution (e.g., in the integer, floating point, graphics and memory units or the like). Emptying the load and/or store queues before processing the helper load/store prevents any potential deadlock condition (or competition among other load/store) for corresponding memory locations and facilitates in maintaining atomicity of the complex instruction.Type: ApplicationFiled: March 24, 2003Publication date: September 30, 2004Applicant: Sun Microsystems, Inc.Inventors: Chandra M.R. Thimmannagari, Sorin Iacobovici, Rabin A. Sugumar
-
Publication number: 20040162972Abstract: A method for handling a control transfer instruction couple includes fetching a plurality of instructions. The plurality of instructions include a control transfer instruction couple (or CTI couple), which includes a first branch instruction and a second branch instruction, leading instructions that precede the first branch instruction, trailing instructions that follow the second branch instruction, and buffered instructions that follow the trailing instructions. The method further includes decoding the CTI couple, forwarding the leading instructions and the first branch instruction for processing, freezing the trailing instructions and the delay slot to obtain frozen instructions, buffering the buffered instructions fetched after the freezing, and initiating an instruction refetch cycle dependent on a prediction of an execution of the first branch instruction.Type: ApplicationFiled: February 18, 2003Publication date: August 19, 2004Inventors: Sorin Iacobovici, Rabin A. Sugumar, Chandra M. R. Thimmannagari, Robert Nuckolls, Suresh Thirumalaiswamy
-
Publication number: 20040153631Abstract: A method for handling instructions that use non-windowed registers in an out-of-order microprocessor with windowed registers is provided. When an instruction with a non-windowed destination register is detected, the computed result of the instruction is stored in a temporary storage register instead of the non-windowed register designated as the instruction's destination. When the instruction is ready for retirement, the result is transferred from the temporary storage register into the non-windowed register designated as the instruction's destination. When another instruction's source register is a non-windowed register, the microprocessor determines whether the instruction should use data from the designated non-windowed register or from a temporary storage register, to prevent the other instruction from using incorrect data.Type: ApplicationFiled: January 30, 2003Publication date: August 5, 2004Inventors: Chandra M. R. Thimmannagari, Sorin Iacobovici, Rabin A. Sugumar
-
Publication number: 20040153609Abstract: A method for protecting reliability of data associated with a data array is provided. The method initiates with defining state information associated with the data array. Then, crucial state information is identified from the state information. Next, a copy of the crucial state information is generated. Then, the state information and the copy of the crucial state information are protected. Next, a worst case state associated with non-crucial information is defined. In response to detecting an error associated with the non-crucial information, the method includes defaulting to the worst case state. A computer readable media and a shared memory multiprocessor chip are also provided.Type: ApplicationFiled: February 3, 2003Publication date: August 5, 2004Applicant: Sun Microsystems, Inc.Inventors: Victor Melamed, Sorin Iacobovici
-
Publication number: 20040148492Abstract: A system for handling a plurality of single precision floating point instructions and a plurality of double precision floating point instructions that both index a same set of registers is provided. The system comprises a decode unit arranged to decode, stall, and forward at least one of the plurality of single precision and at least one of the plurality of double precision floating point instructions in a fetch group. The decode unit includes a first counter arranged to increment for each of the plurality of single precision floating point instructions forwarded down a pipeline; a second counter arranged to increment for each of the plurality of double precision floating point instructions forwarded down the pipeline; a first mask register and a second mask register. The first mask register is updated by each of the single precision floating point instructions forwarded and the second mask register is updated by each of the double precision floating point instructions forwarded.Type: ApplicationFiled: January 29, 2003Publication date: July 29, 2004Inventors: Rabin A. Sugumar, Sorin Iacobovici, Robert Nuckolls, Chandra M. R. Thimmannagari