To Microinstruction Subroutine Patents (Class 712/243)
  • Patent number: 11675595
    Abstract: An apparatus includes instruction fetching circuitry to read a set of instructions, including a speculative execution instruction and a speculative condition determination instruction; cache the instructions; and read the speculative execution instruction corresponding to the speculative condition of the speculative condition determination instruction. If an execution result of the speculative condition determination instruction indicates the speculative condition is incorrect, clear the instructions cached in the instruction fetching circuitry. Instruction decoding circuitry decodes instructions. Executing circuitry executes instructions, including executing the speculative condition determination instruction to obtain the execution result.
    Type: Grant
    Filed: September 24, 2020
    Date of Patent: June 13, 2023
    Assignee: Alibaba Group Holding Limited
    Inventors: Chang Liu, Ruqin Zhang
  • Patent number: 11366755
    Abstract: The controller that controls the industrial machine comprises a storage area that stores an operation program, a cache memory, a cache control unit, and an analysis unit, the analysis unit pre-reads a command subsequent to a command included in the operation program loaded in the cache memory, in a case where it is determined that an operation load on a CPU in a command included in the operation program is below a prescribed value, adds, to the command, a cache control command for loading of a subprogram into the cache memory in accordance with a predetermined condition, in a case where a subprogram call command is confirmed present, and makes a cache control request to the cache control unit, responsive to the added cache control command, and the cache control unit loads the subprogram in the cache memory, based on the cache control request.
    Type: Grant
    Filed: November 23, 2020
    Date of Patent: June 21, 2022
    Assignee: FANUC CORPORATION
    Inventors: Kazuyuki Mikami, Hideo Ogino, Takenori Ono, Manabu Saitou
  • Patent number: 11055098
    Abstract: A processor includes a branch target buffer (BTB) having a plurality of entries whereby each entry corresponds to an associated instruction pointer value that is predicted to be a branch instruction. Each BTB entry stores a predicted branch target address for the branch instruction, and further stores information indicating whether the next branch in the block of instructions associated with the predicted branch target address is predicted to be a return instruction. In response to the BTB indicating that the next branch is predicted to be a return instruction, the processor initiates an access to a return stack that stores the return address for the predicted return instruction. By initiating access to the return stack responsive to the return prediction stored at the BTB, the processor reduces the delay in identifying the return address, thereby improving processing efficiency.
    Type: Grant
    Filed: July 24, 2018
    Date of Patent: July 6, 2021
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventors: Aparna Thyagarajan, Marius Evers, Arunachalam Annamalai
  • Patent number: 10768937
    Abstract: Overhead associated with verifying function return addresses to protect against security exploits is reduced by taking advantage of branch prediction mechanisms for predicting return addresses. More specifically, returning from a function includes popping a return address from a data stack. Well-known security exploits overwrite the return address on the data stack to hijack control flow. In some processors, a separate data structure referred to as a control stack is used to verify the data stack. When a return instruction is executed, the processor issues an exception if the return addresses on the control stack and the data stack are not identical. This overhead can be avoided by taking advantage of the return address stack, which is a data structure used by the branch predictor to predict return addresses. In most situations, if this prediction is correct, the above check does not need to occur, thus reducing the associated overhead.
    Type: Grant
    Filed: July 26, 2018
    Date of Patent: September 8, 2020
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Marius Evers, David A. Kaplan, Debjit Das Sarma
  • Patent number: 10606771
    Abstract: Methods, circuitries, and systems for real-time protection of a stack are provided. A stack protection circuitry includes interface circuitry and computation circuitry. The interface is circuitry configured to receive a return instruction from a central processing unit (CPU). The computation circuitry is configured to, in response to the return instruction, generate protection data that i) identifies a new topmost return address location that is below a current protected topmost return address location and ii) specifies read only access for the new topmost return address location. The interface circuitry is configured to provide the protection data to a memory protection unit to cause the memory protection unit to enforce a read only access restriction on the new topmost return address location.
    Type: Grant
    Filed: January 22, 2018
    Date of Patent: March 31, 2020
    Assignee: Infineon Technologies AG
    Inventors: Sanjay Trivedi, Ramesh Babu
  • Patent number: 10459735
    Abstract: An integrated circuit (IC) chip and method of booting the IC are disclosed. The method includes determining whether a boot pin configuration has been programmed and responsive to determining that the boot pin configuration has been programmed, performing a boot method indicated in a user-defined boot table. Responsive to determining that the boot pin configuration key has not been programmed, the method performs a boot method selected from a factory-defined boot table.
    Type: Grant
    Filed: June 10, 2016
    Date of Patent: October 29, 2019
    Assignee: TEXAS INSTRUMENTS INCORPORATED
    Inventors: David Peter Foley, Santosh Kumar Athuru
  • Patent number: 10360037
    Abstract: A fetch unit configured to, in response to detecting a subroutine call and link instruction, calculate and store a predicted target address for the corresponding subroutine return instruction in a prediction stack, and if certain conditions are met, also cause to be stored in the prediction stack a predicted target instruction bundle. The fetch unit is also configured to, in response to detecting a subroutine return instruction, use the predicted target address in the prediction stack to determine the address of the next instruction bundle to be fetched, and if certain conditions are met, cause any valid predicted target instruction bundle in the prediction stack to be the next bundle to be decoded.
    Type: Grant
    Filed: September 30, 2016
    Date of Patent: July 23, 2019
    Assignee: MIPS Tech, LLC
    Inventor: Philip Day
  • Patent number: 9804851
    Abstract: A data processing system is provided with processing circuitry as well as a bank of 64-bit registers. An instruction decoder decodes arithmetic instructions and logical instruction specifying arithmetic operations and logical operations to be performed upon operands stored within the 64-bit registers. The instruction decoder is responsive to an operand size field SF within the arithmetic instructions and the logical instructions specifying whether the operands are 64-bit operands or 32-bit operands where all of the operands are 64-bit operands or all of the operands are 32-bit operands. If a switch is made to a lower exception level, then a check is made as to whether or not a register being used was previously subject to a 64-bit write to that register. If such a 64-bit write had previously taken place, then the upper 32-bits are flushed so as to avoid data leakage from the higher exception level.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: October 31, 2017
    Assignee: ARM LIMITED
    Inventors: Richard Roy Grisenthwaite, David James Seal, Philippe Jean-Pierre Raphalen, Lee Douglas Smith
  • Patent number: 9588932
    Abstract: A storage control device comprises a storage control module and a memory module. The storage control module is coupled between a central processing unit and a plurality of hard disk drives. The memory module is coupled with the storage control module and keeps a plurality of configuration files and a firmware for being executed by the storage control module. In one embodiment, the storage control module comprises at least one general-purpose input/output (GPIO) port and selects, according to whether the GPIO port is at a logical high or low electric potential, one of the configuration files to configure the firmware. The selected configuration file is invoked from a memory area of the memory module. In one embodiment, the storage control device further comprises at least one jumper point and selects, according to an open/close status of the jumper point, one of the configuration files to configure the firmware.
    Type: Grant
    Filed: September 2, 2014
    Date of Patent: March 7, 2017
    Assignees: INVENTEC (PUDONG) TECHNOLOGY CORPORATION, INVENTEC CORPORATION
    Inventor: Wei-Guo Zhao
  • Patent number: 9191211
    Abstract: A data security system that includes a first memory device to store message data to be secured, a second memory device to store microcode including an instruction set defining a cryptographic algorithm for use in securing the message data, and a processing unit to execute the microcode to implement the cryptographic algorithm.
    Type: Grant
    Filed: February 27, 2009
    Date of Patent: November 17, 2015
    Assignee: Atmel Corporation
    Inventor: Randall Wayne Melton
  • Patent number: 9092225
    Abstract: In a processing system capable of single and multi-thread execution, a branch prediction unit can be configured to detect hard to predict branches and loop instructions. In a dual-threading (simultaneous multi-threading) configuration, one instruction queues (IQ) is used for each thread and instructions are alternately sent from each IQ to decode units. In single thread mode, the second IQ can be used to store the “not predicted path” of the hard-to-predict branch or the “fall-through” path of the loop. On mis-prediction, the mis-prediction penalty is reduced by getting the instructions from IQ instead of instruction cache.
    Type: Grant
    Filed: January 31, 2012
    Date of Patent: July 28, 2015
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Thang M. Tran, Michael B. Schinzler
  • Patent number: 8832419
    Abstract: Methods and apparatus for enhanced microcode address stack pointer manipulation are described. In some examples, the stacks are invisible to software. A microcode instruction pointer (UIP) and a next address to be accessed in a microcode storage unit may be generated based on an opcode of a microoperation, a marker, and a UIP stack address. The UIP stack address may be generated based on a signal and an immediate field of the microoperation.
    Type: Grant
    Filed: December 24, 2010
    Date of Patent: September 9, 2014
    Assignee: Intel Corporation
    Inventors: Jonathan D. Combs, Kameswar Subramaniam
  • Patent number: 8826261
    Abstract: Methods, systems and devices for remotely updating software installed on a digital signal processor (DSP) without setting the mode select pins on the DSP control card. Firmware configured to suspend operations upon receiving a programming signal is installed on the processor. A controlling computing device send the programming signal, causing the processor to halt execution, erase portions of the firmware, set an update firmware flag, and send control signals to the controlling computing device. The remote computing device sends updated firmware and an application program cyclic redundancy check to the processor. The processor compares a cyclic redundancy check of an on-chip flash memory with the received application program cyclic redundancy check. If the two match, the processor installs the received firmware, unsets the update firmware flag, and restarts itself.
    Type: Grant
    Filed: February 24, 2011
    Date of Patent: September 2, 2014
    Assignee: Bloom Energy Corporation
    Inventors: Vishal Anand AG, Jayanth Moodliar
  • Publication number: 20140122847
    Abstract: An instruction translator receives a conditional load/store instruction that specifies a condition, destination/data register, base register, offset source, and memory addressing mode. The instruction instructs the microprocessor to load data from a memory location into the destination register (conditional load) or store data to the memory location from the data register (conditional store) only if the condition flags satisfy the condition. The offset source specifies whether the offset is an immediate value or a value in an offset register. The addressing mode specifies whether the base register is updated when the condition flags satisfy the condition. The instruction translator translates the conditional load instruction into a number of microinstructions, which varies as a function of the offset source, addressing mode, and whether the conditional instruction is a conditional load or store instruction.
    Type: Application
    Filed: April 6, 2012
    Publication date: May 1, 2014
    Inventors: G. Glenn Henry, Terry Parks, Rodney E. Hooker, Gerard M. Col, Colin Eddy
  • Patent number: 8508782
    Abstract: A method for securing a computer device against malicious code, the method including the steps of: executing a computer program on the computer device, the computer device having a central processing unit, which carries out instructions of the computer program, and wherein at least a portion of the computer program is executed by one or more tasks, each of the one or more tasks having a task stack associated therewith; and managing the central processing unit such that the central processing unit does not execute machine code from the task stacks associated with each of the one or more task so as to secure the computer device against malicious code from the task stack.
    Type: Grant
    Filed: December 23, 2010
    Date of Patent: August 13, 2013
    Assignee: Konica Minolta Laboratory U.S.A., Inc.
    Inventor: Shaun Pinney
  • Patent number: 8447958
    Abstract: A configurable instruction set architecture is provided whereby a single virtual instruction may be used to generate a sequence of instructions. Dynamic parameter substitution may be used to substitute parameters specified by a virtual instruction into instructions within a virtual instruction sequence.
    Type: Grant
    Filed: March 6, 2009
    Date of Patent: May 21, 2013
    Assignee: Bridge Crossing, LLC
    Inventor: Kevin D. Kissell
  • Patent number: 8423968
    Abstract: Method, system and computer program product for template-based vertical microcode instruction trace generation. An exemplary embodiment includes an instruction trace generation method, including generating a testcase for a millicoded instruction in an instruction trace pool, wherein the millicoded instruction is included in a parent instruction trace, processing the testcase to generate a millicode instruction trace snippet, editing the millicode instruction trace snippet to generate a templatized millimode snippet, processing the parent instruction trace, accessing the templatized millimode snippet, updating the templatized millimode snippet with a value from the parent instruction trace, and generating a millicoded instruction trace from the updated templatized millimode snippet.
    Type: Grant
    Filed: February 11, 2008
    Date of Patent: April 16, 2013
    Assignee: International Business Machines Corporation
    Inventors: David S. Hutton, Jane H Bartik
  • Patent number: 8341383
    Abstract: A method for retrieving a return address from a link stack when returning from a procedure in a pipeline processor is disclosed. The method identifies a retrieve instruction operable to retrieve a return address from a software stack. The method further identifies a branch instruction operable to branch to the return address. The method retrieves the return address from the link stack, in response to both the instruction and the branch instruction being identified and fetches instructions using the return address.
    Type: Grant
    Filed: November 2, 2007
    Date of Patent: December 25, 2012
    Assignee: QUALCOMM Incorporated
    Inventors: James Norris Dieffenderfer, Michael William Morrow
  • Patent number: 8171270
    Abstract: Methods and apparatus to perform asynchronous control transfer are described. In one embodiment, upon occurrence of an event (e.g., an architectural event), a service routine data block (SRDB) is accessed via a service routine base pointer (SRDS) and a service routine offset value (SRDBP) to obtain the address of a yield service routine via a service routine instruction pointer (SRIP) and a service routine code segment (SRCS). Other embodiments are also described.
    Type: Grant
    Filed: December 29, 2006
    Date of Patent: May 1, 2012
    Assignee: Intel Corporation
    Inventors: Chris J. Newburn, Dion Rodgers, Robert Knight, Ittai Anati, Aaron N. Levinson, Gautham Chinya
  • Patent number: 8145890
    Abstract: A microprocessor includes a memory that stores instructions of a non-user program to implement a user program instruction of the user-visible instruction set of the microprocessor. The non-user program includes a conditional branch instruction. A first fetch unit fetches instructions of the user program that includes the instruction that is implemented by the non-user program. An instruction decoder decodes the user program instructions and saves a state in response to decoding the user program instruction that is implemented by the non-user program. An execution unit executes the user program instructions fetched by the first fetch unit and executes instructions of the non-user program other than the conditional branch instruction. A second fetch unit fetches the non-user program instructions from the memory and resolves the conditional branch instruction based on the saved state without sending the conditional branch instruction to the execution unit to resolve the conditional branch instruction.
    Type: Grant
    Filed: June 9, 2009
    Date of Patent: March 27, 2012
    Assignee: VIA Technologies, Inc.
    Inventors: G. Glenn Henry, Terry Parks, Brent Bean
  • Patent number: 8127120
    Abstract: A method for executing by a processing unit a program stored in a memory, includes: detecting a piece of information during the execution of the program by the processing unit, and if the information is detected, triggering the execution of a hidden subprogram by the processing unit. The method may be applied to the securization of an integrated circuit.
    Type: Grant
    Filed: April 23, 2008
    Date of Patent: February 28, 2012
    Assignee: STMicroelectronics SA
    Inventor: Philippe Roquelaure
  • Patent number: 8037285
    Abstract: An instruction processing circuit includes a decoder circuit operable to receive a sequence of instructions and to decode the received sequence of instructions into a first type of sequence of operations, and a trace builder circuit operable to receive at least a portion of the sequence of operations of the first type and to generate, based thereon, a second type of sequence of operations, where the at least a portion of the sequence of operations of the first type represents a first portion of the sequence of instructions, where the first portion of the sequence of instructions includes at most one conditional control transfer instruction that, when present, ends the first portion of the sequence of instructions, and where the sequence of operations of the second type also represents the first portion of the sequence of instructions.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: October 11, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar, Matthew William Ashcraft, Ivan Pavle Radivojevic
  • Patent number: 7694110
    Abstract: Various embodiments of methods and systems for implementing a set of microcode operations corresponding to a microcoded instruction as a microcode subroutine are disclosed. In one embodiment, a microprocessor includes a dispatch unit configured to dispatch operations and a scheduler coupled to the dispatch unit and configured to schedule dispatched operations for execution. In response to receiving a microcoded instruction, the dispatch unit is configured to dispatch a microcode subroutine call operation that specifies a tag identifying a microcode subroutine.
    Type: Grant
    Filed: July 8, 2003
    Date of Patent: April 6, 2010
    Assignee: GlobalFoundries Inc.
    Inventors: Mitchell Alsup, Gregory W. Smaus
  • Patent number: 7617388
    Abstract: An extendable instruction set architecture is provided. In an embodiment, a microprocessor includes a memory, a virtual instruction expansion store, and substitution logic. The memory stores at least one virtual instruction that includes an index and at least one parameter. The virtual instruction expansion store includes at least one instruction template and at least one parameter selector. The substitution logic forms a sequence of at least one expanded instruction. In an example, each expanded instruction is based on an instruction template and includes a new parameter for use with the instruction template. The new parameter is generated by performing a logical operation from the parameter selector on one or more parameter of the virtual instruction.
    Type: Grant
    Filed: December 22, 2006
    Date of Patent: November 10, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Patent number: 7613907
    Abstract: Methods and apparatus for identifying a first flow control instruction in an executing program, the first instruction being associated with a first program address at which program execution will continue after execution of the first instruction. A determination is made as to whether the first program address is protected. If the first program address is protected, a first alternate program address is substituted for the first program address such that program execution will continue at the first alternate program address after execution of the first instruction.
    Type: Grant
    Filed: November 9, 2006
    Date of Patent: November 3, 2009
    Assignee: ATMEL Corporation
    Inventors: Majid Kaabouch, Eric Le Cocquen
  • Patent number: 7574587
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. Functionality may be provided in the performance monitoring application for initiating the measurement of secondary metrics with regard to identified instructions, data addresses, ranges of identified instructions, or ranges of identified data addresses, based on counter values for primary metrics. Thus, for example, when a primary metric counter, or a combination of primary metric counters, meets or exceeds a predetermined threshold value, an interrupt may be generated. In response to receiving the interrupt, counters associated with the measuring of secondary metrics of a range of instructions/data addresses may be initiated.
    Type: Grant
    Filed: May 21, 2008
    Date of Patent: August 11, 2009
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Jr., Frank Eliot Levine, Christopher Michael Richardson, Robert John Urquhart
  • Patent number: 7529914
    Abstract: A method and apparatus for executing lock instructions speculatively in an out-of-order processor are disclosed. In one embodiment, a prediction is made whether a given lock instruction will actually be contended. If not, then the lock instruction may be treated as having a normal load micro-operation which may be speculatively executed. Monitor logic may look for indications that the lock instruction is actually contended. If no such indications are found, the speculative load micro-operation and other micro-operations corresponding to the lock instruction may retire. However, if such indications are in fact found, the lock instruction may be restarted, and the prediction mechanism may be updated.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: May 5, 2009
    Assignee: Intel Corporation
    Inventors: Bratin Saha, Matthew C. Merten, Per Hammarlund
  • Patent number: 7526638
    Abstract: Processor logic gates are used to modify microcode instructions, while they are being executed. The results of previous operations are used by the hardware to modify subsequent instructions in a microcode routine. This gives the effect of branching and also reduces the number of instructions that are executed. Different examples and embodiments are also discussed.
    Type: Grant
    Filed: March 16, 2008
    Date of Patent: April 28, 2009
    Assignee: International Business Machines Corporation
    Inventor: Glen H. Handlogten
  • Patent number: 7444501
    Abstract: An apparatus for recognizing a subroutine call is disclosed. The apparatus includes a circuit comprising a first input for receiving contents of a register, a second input for receiving a non-sequential change in program flow, and a third input for receiving the next sequential address after the non-sequential change in program flow. The circuit is configured to compare the next sequential address and the contents of the register to determine whether the non-sequential change in program flow is a subroutine call.
    Type: Grant
    Filed: November 28, 2006
    Date of Patent: October 28, 2008
    Assignee: QUALCOMM Incorporated
    Inventor: Michael William Morrow
  • Patent number: 7412593
    Abstract: A processor for processing a program with commands, which has a mother program with a sub-program jump command and a sub-program, which is to be processed in response to the sub-program jump command. The processor has a command processor, which is adapted in the mother program upon occurrence of the sub-program jump command, to extract back-up information about data required in the mother program after processing the sub-program from the sub-program jump command, to back-up data required in the mother program after execution of the sub-program based on the back-up information, to extract a destination address from the sub-program jump command, which refers to the sub-program, and to effect the continuation of the processing of the program with the sub-program based on the destination address.
    Type: Grant
    Filed: March 28, 2005
    Date of Patent: August 12, 2008
    Assignee: Infineon Technologies AG
    Inventors: Gerd Dirscherl, Berndt Gammel, Michael Smola
  • Patent number: 7398372
    Abstract: Fusing a load micro-operation (uop) together with an arithmetic uop. Intra-instruction fusing can increase cache memory storage efficiency and computer instruction processing bandwidth within a microprocessor without incurring significant computer system cost. Uops are fused, stored in a cache memory, un-fused, executed in parallel, and retired in order to optimized cost and performance.
    Type: Grant
    Filed: June 25, 2002
    Date of Patent: July 8, 2008
    Assignee: Intel Corporation
    Inventors: Nicholas G. Samra, Stephan J. Jourdan, David J. Sager, Glenn J. Hinton
  • Patent number: 7392370
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. Functionality may be provided in the performance monitoring application for initiating the measurement of secondary metrics with regard to identified instructions, data addresses, ranges of identified instructions, or ranges of identified data addresses, based on counter values for primary metrics. Thus, for example, when a primary metric counter, or a combination of primary metric counters, meets or exceeds a predetermined threshold value, an interrupt may be generated. In response to receiving the interrupt, counters associated with the measuring of secondary metrics of a range of instructions/data addresses may be initiated.
    Type: Grant
    Filed: January 14, 2004
    Date of Patent: June 24, 2008
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Jr., Frank Eliot Levine, Christopher Michael Richardson, Robert John Urquhart
  • Patent number: 7383425
    Abstract: This invention is directed to a method and apparatus for providing low, predictable latencies in processing IP packets. The apparatus provides a specialized microprocessor or hardwired circuitry to process IP packets for video communications and control of the video source without an operating system. The method relates to operation of a microprocessor which is suitably arranged to carry out the steps of the method. The method includes details of operation of the specialized microprocessor.
    Type: Grant
    Filed: February 27, 2004
    Date of Patent: June 3, 2008
    Assignee: Pleora Technologies Inc.
    Inventors: Eric Boisvert, Alain Rivard, George Chamberlain
  • Patent number: 7237098
    Abstract: A microprocessor for predicting a target address of a return instruction is disclosed. The microprocessor includes a BTAC and a return stack that each makes a prediction of the target address. Typically the return stack is more accurate. However, if the return stack mispredicts, update logic sets an override flag associated with the return instruction in the BTAC. The next time the return instruction is encountered, if the override flag is set, branch control logic branches the microprocessor to the BTAC prediction. Otherwise, the microprocessor branches to the return stack prediction. If the BTAC mispredicts, then the update logic clears the override flag. In one embodiment, the return stack predicts in response to decode of the return instruction. In another embodiment, the return stack predicts in response to the BTAC predicting the return instruction is present in an instruction cache line. Another embodiment includes a second, BTAC-based return stack.
    Type: Grant
    Filed: October 6, 2003
    Date of Patent: June 26, 2007
    Assignee: IP-First, LLC
    Inventors: G. Glenn Henry, Thomas McDonald
  • Patent number: 7231511
    Abstract: Methods and apparatus, including computer program products, for a microinstruction pointer stack in a processor. A method executed in a processor includes executing microcode (?code) addressed by pointers stored in an out-of-order microinstruction pointer (?IP) stack, and manipulating the ?IP stack with a set of microinstructions.
    Type: Grant
    Filed: December 20, 2001
    Date of Patent: June 12, 2007
    Assignee: Intel Corporation
    Inventors: Michael P. Cornaby, Ben Chaffin
  • Patent number: 7219218
    Abstract: 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: Grant
    Filed: March 31, 2003
    Date of Patent: May 15, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Chandra M. R. Thimmannagari, Sorin Iacobovici, Rabin Sugumar
  • Patent number: 7203826
    Abstract: A processor includes a return stack circuit used for predicting procedure return addresses for instruction pre-fetching, wherein a return stack controller determines the number of return levels associated with a given return instruction, and pops that number of return addresses from the return stack. Popping multiple return addresses from the return stack permits the processor to pre-fetch the return address of the original calling procedure in a chain of successive procedure calls. In one embodiment, the return stack controller reads the number of return levels from a value embedded in the return instruction. A complementary compiler calculates the return level values for given return instructions and embeds those values in them at compile-time. In another embodiment, the return stack circuit dynamically tracks the number of return levels by counting the procedure calls (branches) in a chain of successive procedure calls.
    Type: Grant
    Filed: February 18, 2005
    Date of Patent: April 10, 2007
    Assignee: Qualcomm Incorporated
    Inventors: Rodney Wayne Smith, James Norris Dieffenderfer, Jeffrey Todd Bridges, Thomas Andrew Sartorius
  • Patent number: 7162621
    Abstract: An extendable instruction set architecture is provided. In an embodiment, a microprocessor includes a memory, a virtual instruction expansion store, and substitution logic. The memory stores at least one virtual instruction that includes an index and at least one parameter. The virtual instruction expansion store includes at least one instruction template and at least one parameter selector. The substitution logic forms a sequence of at least one expanded instruction. In a example, the substitution logic sign-extends the at least one parameter to form an immediate value of the at least one expanded instruction in a manner specified by the at least one parameter selector. In another example, the substitution logic concatenates a first parameter and a second parameter of the virtual instruction to form an immediate value of the at least one expanded instruction in a manner specified by the at lest one parameter selector.
    Type: Grant
    Filed: February 21, 2001
    Date of Patent: January 9, 2007
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Patent number: 7127718
    Abstract: There is disclosed an apparatus for controlling a physical layer interface of a network interface card in real time. The apparatus comprises: 1) a first memory for storing a multitasking control program, the multitasking control program comprising a main routine and a plurality of subroutines callable by the main routine; 2) a second memory for storing a plurality of multitasking vectors associated with the multitasking control program; and 3) a microcontroller for executing the multitasking control program, wherein program execution control is transferred from the main routine to a first one of the plurality of subroutines when the first subroutine is called by the main routine and wherein the first subroutine, upon encountering a decision point in the first subroutine that is not yet capable of being decided, updates a first one of the plurality of multitasking vectors associated with the first subroutine with an address of the decision point and transfers program execution control back to the main routine.
    Type: Grant
    Filed: November 15, 2000
    Date of Patent: October 24, 2006
    Assignee: National Semiconductor Corporation
    Inventors: John E. Gavlik, Matthew J. Webb, Ted Chang
  • Patent number: 7069424
    Abstract: A method and apparatus for whacking a ?OP based upon the criticality of that ?OP. Also disclosed are embodiments of a method for determining the criticality of a ?OP.
    Type: Grant
    Filed: January 2, 2002
    Date of Patent: June 27, 2006
    Assignee: Intel Corporation
    Inventors: KS Venkatraman, Aravindh Baktha
  • Patent number: 7055022
    Abstract: A microprocessor apparatus is provided for performing an indirect near jump operation that includes paired operation translation logic, load logic, and execution logic. The paired operation translation logic receives an indirect near jump macro instruction, and generates a load-jump micro instruction, where the load-jump micro instruction directs load logic to retrieve an offset and directs the execution logic to generate a target address. The load logic is coupled to the paired operation translation logic and receives the load-jump micro instruction. The load logic retrieves the offset from memory, where the offset indicates a jump destination that is relative to an instruction address corresponding to the indirect near jump macro instruction. The execution logic is coupled to the load logic. The execution logic receives the offset, and employs the instruction address and the offset to generate the target address specifying the jump destination for the near jump operation.
    Type: Grant
    Filed: October 22, 2002
    Date of Patent: May 30, 2006
    Inventors: Gerard M. Col, G. Glenn Henry, Terry Parks
  • Patent number: 7039793
    Abstract: A method and apparatus are provided for processing repeat string instructions with increased efficiency in a processor pipeline. Rather than explicitly generating an initial count register setup micro instruction each time a repeat (REP) prefix in encountered, the processor includes a shadow ECX register operating in parallel with an architectural ECX count register. This enables the contents of the architectural ECX register, which are also stored in the shadow ECX register, to be immediately transferred to an internal count register from the shadow ECX register upon the first iteration of a repeat string micro code sequence.
    Type: Grant
    Filed: October 21, 2002
    Date of Patent: May 2, 2006
    Assignee: IP-First, LLC
    Inventors: Gerard M. Col, G. Glenn Henry, Terry Parks
  • Patent number: 7035999
    Abstract: 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: Grant
    Filed: June 7, 2002
    Date of Patent: April 25, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Chandra Thimmanagari, Sorin Iacobovici, Rabin Sugumar, Robert Nuckolls
  • Patent number: 7024541
    Abstract: 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: Grant
    Filed: June 7, 2002
    Date of Patent: April 4, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Chandra Thimmanagari, Sorin Iacobovici, Rabin Sugumar, Robert Nuckolls
  • Patent number: 6957319
    Abstract: Integrated circuits having multiple independently accessible microcode ROMs. An integrated circuit may include a microcode unit and a plurality of microcode ROMs fabricated within the same integrated circuit. The microcode unit may be configured to receive a microcoded instruction and to identify a microcode routine that corresponds to the microcoded instruction. The microcode ROMs may collectively store the microcode routines that implement the microcoded instructions of a complex instruction set, and different microcode ROMs may have different access times. At least one of the microcode ROMs may output operations included in the microcode routine in response to the microcode unit identifying the microcode routine. Microcode routines having more performance criticality may be stored in a microcode ROM having a smaller access latency than the access latency of a microcode ROM in which microcode routines having less performance criticality are stored.
    Type: Grant
    Filed: February 19, 2003
    Date of Patent: October 18, 2005
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Brian D. McMinn, James K. Pickett
  • Patent number: 6957322
    Abstract: A microcode instruction unit for a processor may include a microcode memory having entries for storing microcode instructions. A decoder for the microcode memory may decode microcode addresses to select entries of the microcode memory. A microcode entry point generator may receive complex instructions and provide a microcode entry point address to the decoder for each complex instruction. Each microcode entry point address may have a bit-width greater than needed to encode all the entries of the microcode memory. The microcode memory decoder may decode each microcode entry point address to select an entry in the microcode memory storing the beginning of a microcode routine to implement the corresponding complex instruction. The decoder may sparsely decode the microcode address range so that not all entries of said microcode memory are sequentially addressed.
    Type: Grant
    Filed: July 25, 2002
    Date of Patent: October 18, 2005
    Assignee: Advanced Micro Devices, Inc.
    Inventor: James K. Pickett
  • Patent number: 6898699
    Abstract: An apparatus for storing predicted return addresses of instructions being executed by a pipelined processor, the apparatus includes a two part return address buffer that includes a speculative return address buffer and a committed return address buffer, both of which having multiple entries that may include predicted return addresses that have been pushed onto the return buffer.
    Type: Grant
    Filed: December 21, 2001
    Date of Patent: May 24, 2005
    Assignee: Intel Corporation
    Inventors: Stephan J. Jourdan, John Alan Miller, Namratha Jaisimha
  • Patent number: 6865669
    Abstract: Methods for optimizing of memory resources during an initialization routine of a computer system which prepares the computer system for loading of an operating system is disclosed. One exemplary method includes receiving a request from a system BIOS to locate an amount of conventional memory where the amount of conventional memory accommodates at least a decompressed version of data located in an option ROM BIOS. Then the amount of conventional memory requested by the system BIOS is determined. If the amount of conventional memory requested by the system BIOS is not available, the method continues and system BIOS data located within the conventional memory is read where the system BIOS data occupies at least the amount of conventional memory requested by the system BIOS. After the system BIOS data is read, the system BIOS data is written from the conventional memory to an extended memory, and the system BIOS data located in the conventional memory that has been written into the extended memory is deleted.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: March 8, 2005
    Assignee: Adaptec, Inc.
    Inventor: Fadi A. Mahmoud
  • Patent number: 6857063
    Abstract: A data processor executes an instruction (JAVASW) to implement efficient interpreter functionality by combining the tasks of table jumps and thread or task switching which is controlled by a running value such as a counter or a timer. Execution of the instruction always requires a change of flow to be taken. In one form, the instruction may cause a hardware accelerator to be signaled to complete instruction execution. Additionally, a memory table containing emulation code correlated to specific byte codes may be compressed for a large number of identified byte codes by the use of separate storage. Further, use of a same portion of the memory table may occur in connection with execution of different bytecodes. While discussed in the context of Java bytecodes, the instruction is applicable to any programming language and processor architecture.
    Type: Grant
    Filed: February 9, 2001
    Date of Patent: February 15, 2005
    Assignee: Freescale Semiconductor, Inc.
    Inventor: William C. Moyer
  • Patent number: 6842842
    Abstract: A microprocessor includes a first memory to store microcode and a second memory to store predicted micro-operation addresses. Micro-operation addresses are predicted, stored in memory, and retrieved to get the next micro-operations from the microcode memory. Misprediction recovery logic is used to determine if the next predicted address is correct and to determine a recovery address to correct the predicted address if the predicted address is incorrect.
    Type: Grant
    Filed: January 11, 2002
    Date of Patent: January 11, 2005
    Assignee: Intel Corporation
    Inventors: Kjeld Svendsen, John Alan Miller