Instruction Issuing Patents (Class 712/214)
  • Patent number: 7330962
    Abstract: A list scheduler in a compiler can select from a plurality of alternative instruction sequences for one or more computation performed within an application. A scheduler can initially identify and track one or more computations for which multiple alternative instruction sequences exist. An available instruction list can be populated with the alternative instruction sequences. The list scheduler can access the available instruction list during scheduling of the application. The list scheduler can perform a cost analysis while scheduling the instructions by performing a look ahead. The list scheduler may select alternate instruction sequences for similar computations occurring in different portions of the application based on the cost benefit analysis.
    Type: Grant
    Filed: November 14, 2005
    Date of Patent: February 12, 2008
    Assignee: NVIDIA Corporation
    Inventors: Michael G. Ludwig, Jayant B. Kolhe
  • Patent number: 7328330
    Abstract: A method, an apparatus and a computer program product are provided for the managing of SIMD instructions and GP instructions within an instruction pipeline of a processor. The SIMD instructions and the GP instructions share the same “front-end” pipelines within an Instruction Unit. Within the shared pipelines the Instruction Unit checks the GP instructions for dependencies and resolves these dependencies. At the dispatch point within the pipelines the Instruction Unit sends valid GP instructions to the GP Unit and SIMD instructions to an SIMD issue queue. In the SIMD issue queue the Instruction Unit checks the SIMD instructions for dependencies and resolves these dependencies. Then the SIMD issue queue dispatches the SIMD instructions to the SIMD Unit. Accordingly, dependencies involving SIMD instructions do not affect GP instructions because the SIMD dependencies are checked and resolved independently.
    Type: Grant
    Filed: August 16, 2005
    Date of Patent: February 5, 2008
    Assignee: International Business Machines Corporation
    Inventors: Christopher Michael Abernathy, Jonathan James DeMent, Ronald Hall, David Shippy
  • Patent number: 7328329
    Abstract: A device (1) to control processing of data elements (data_i), in which a thread is assigned to each data element (data_i), comprises a first unit (CS), which, during a first cycle, fetches an instruction (cs_ir_s) that is entered in the context of the thread assigned to the incoming data element (data_i), a second unit (IF), which, during a second cycle, fetches an instruction (if_ir_s) that succeeds a stipulated instruction in a stipulated thread, and a third unit (ID), which, during the second cycle, decodes the instruction prescribed for processing of the data element (data_i) and generates a data element processing signal (dec_o).
    Type: Grant
    Filed: November 21, 2003
    Date of Patent: February 5, 2008
    Assignee: Infineon Technologies AG
    Inventors: Lorenzo Di Gregorio, Xiaoning Nie, Thomas Wahl
  • Patent number: 7320063
    Abstract: A processor employing synchronization primitives for flexible scheduling of functional unit operations. In one embodiment, a processor may include a number of functional units, each configured to retrieve operations for processing from an operation storage, and where each functional unit is configured to process retrieved operations independently of each other functional unit. The processor may further include instruction fetch logic configured to issue instructions for execution by the processor, where a subset of the instructions are executable to store operations for processing by the functional units into the operation storage. The operations stored by the subset of the instructions may include synchronization operations configured to coordinate processing of other ones of the operations by the plurality of functional units. In one particular implementation of the processor, the synchronization operations may include a suspend operation and a resume operation.
    Type: Grant
    Filed: February 4, 2005
    Date of Patent: January 15, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Gregory F. Grohoski, Christopher H. Olson
  • Publication number: 20080005535
    Abstract: Apparatus, systems and methods for speculative scheduling of uops after allocation are disclosed including an apparatus having logic to schedule a micro-operation (uop) for execution before source data of the uop is ready. The apparatus further includes logic to cancel dispatching of the uop for execution if the source data is invalid. Other implementations are disclosed.
    Type: Application
    Filed: June 30, 2006
    Publication date: January 3, 2008
    Inventors: Avinash Sodani, Rahul Kulkarni, David K. Li
  • Patent number: 7315935
    Abstract: A microprocessor is configured to provide port arbitration in a register file. The microprocessor includes a plurality of functional units configured to collectively operate on a maximum number of operands in a given execution cycle, and a register file providing a number of read ports that is insufficient to provide the maximum number of operands to the plurality of functional units in the given execution cycle. The microprocessor also includes an arbitration logic coupled to allocate the read ports of the register file for use by selected functional units during the given execution cycle.
    Type: Grant
    Filed: October 6, 2003
    Date of Patent: January 1, 2008
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mitchell Alsup, Brian D. McMinn, Benjamin T. Sander, David E. Kroesche
  • Patent number: 7313673
    Abstract: The present invention provides a method, a computer program product, and an apparatus for blocking a thread at dispatch in a multi-thread processor for fine-grained control of thread performance. Multiple threads share a pipeline within a processor. Therefore, a long latency condition for an instruction on one thread can stall all of the threads that share the pipeline. A dispatch-block signaling instruction blocks the thread containing the long latency condition at dispatch. The length of the block matches the length of the latency, so the pipeline can dispatch instructions from the blocked thread after the long latency condition is resolved. In one embodiment the dispatch-block signaling instruction is a modified OR instruction and in another embodiment it is a Nop instruction. By blocking one thread at dispatch, the processor can dispatch instructions from the other threads during the block.
    Type: Grant
    Filed: June 16, 2005
    Date of Patent: December 25, 2007
    Assignee: International Business Machines Corporation
    Inventors: Christopher Michael Abernathy, Jonathan James Dement, Albert James Van Norstrand, Jr., David Shippy
  • Publication number: 20070294516
    Abstract: Systems and methods for switch prefetch in multicore computer chips can allow a programmer to tailor operations of a computer program to available data. Control-flow decisions can be made by the program based on the availability of data in a cache. For example, a new instruction in a processor instruction set can receive a list comprising pairs of data addresses and code addresses. The processor can look for data items corresponding to the listed data addresses, and find the first available data item in the cache. When a cached data item is found, control is transferred to the code address supplied in the table. If no data is in the cache, then the processor can stall until the most quickly fetched data item is available.
    Type: Application
    Filed: June 16, 2006
    Publication date: December 20, 2007
    Applicant: Microsoft Corporation
    Inventor: Paul R. Barham
  • Patent number: 7310722
    Abstract: Instruction dispatch in a multithreaded microprocessor such as a graphics processor is not constrained by an order among the threads. Instructions are fetched into an instruction buffer that is configured to store an instruction from each of the threads. A dispatch circuit determines which instructions in the buffer are ready to execute and may issue any ready instruction for execution. An instruction from one thread may be issued prior to an instruction from another thread regardless of which instruction was fetched into the buffer first. Once an instruction from a particular thread has issued, the fetch circuit fills the available buffer location with the following instruction from that thread.
    Type: Grant
    Filed: December 18, 2003
    Date of Patent: December 18, 2007
    Assignee: NVIDIA Corporation
    Inventors: Simon S. Moy, John Erik Lindholm
  • Patent number: 7308563
    Abstract: A method and apparatus for dual-target register allocation is described, intended to enable the efficient mapping/renaming of registers associated with instructions within a pipelined microprocessor architecture.
    Type: Grant
    Filed: September 28, 2001
    Date of Patent: December 11, 2007
    Assignee: Intel Corporation
    Inventor: Nicholas Samra
  • Patent number: 7308562
    Abstract: A system and method for improved branch performance in pipelined computer architectures is presented. Priority bits are set during code execution that corresponds to an upcoming branch instruction. A priority bit may be associated with a register, a resource, or a microsequencer. An instruction selector compares one or more priority bits with each of a plurality of instructions in order to identify particular instructions to execute that make registers and resources available for an upcoming branch instruction. The instruction selector then prioritizes the identified instructions and the pipeline executes in instructions in the prioritized order.
    Type: Grant
    Filed: May 22, 2003
    Date of Patent: December 11, 2007
    Assignee: International Business Machines Corporation
    Inventor: Julianne Frances Haugh
  • Patent number: 7302553
    Abstract: An apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue of a processor are provided. Particularly, instructions are stored, one at a time at a clock cycle, in the non-moving queue. At every clock cycle, a present status of the instructions in the queue is recorded. Using the present status of the instructions in the queue in conjunction with previously recorded statuses of the instructions, the oldest instruction in the queue is determined. The status of the instructions in the queue includes whether or not the instruction has been issued for execution as well as whether or not it is known that the issued instruction has been accepted for execution.
    Type: Grant
    Filed: January 23, 2003
    Date of Patent: November 27, 2007
    Assignee: International Business Machines Corporation
    Inventors: Sam Gat-Shang Chu, Hung Qui Le, Dung Quoc Nguyen
  • Patent number: 7302554
    Abstract: A processor is provided which has a modular organization including at least one local store operable to store data and instructions for execution, at least one functional unit operable to execute instructions on data provided from the local store, and at least one issue logic unit operable to convert instructions provided from the local store into operations of the functional unit for executing the instructions. The at least one issue logic unit may be operable to decode a unitary instruction provided from the local store to simultaneously operate all of the functional units according to the unitary instruction. Each issue logic unit may be operable to decode multiple instructions to separately operate first and second subsets of the plurality of functional units according to respective ones of the multiple instructions.
    Type: Grant
    Filed: April 19, 2005
    Date of Patent: November 27, 2007
    Assignee: Sony Computer Entertainment Inc.
    Inventor: Takeshi Yamazaki
  • Patent number: 7293163
    Abstract: One embodiment of the present invention provides a system that dynamically adjusts the aggressiveness of an execute-ahead processor. If a data-dependent stall condition is encountered during program execution, the system enters an execute-ahead mode, wherein instructions that cannot be executed because of the unresolved data dependency are deferred, and other non-deferred instructions are executed in program order. If a non-data-dependent stall condition is encountered during execute-ahead mode, the system enters a scout mode, wherein instructions are speculatively executed to prefetch future loads, but results are not committed to the architectural state of the execute-ahead processor. On the other hand, if an unresolved data dependency is resolved during the execute-ahead mode, enters a deferred mode and executes deferred instructions. During this deferred mode, if some instructions are deferred again, the system determines whether to resume execution in the execute-ahead mode.
    Type: Grant
    Filed: March 22, 2004
    Date of Patent: November 6, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul Caprioli, Sherman H. Yip
  • Patent number: 7293177
    Abstract: A method of preventing an electronic file containing a computer virus from infecting a computer system using the Symbian™ operating system, the method comprising the steps of scanning files using an anti-virus application, and if an infected file is identified, maintaining the file in an open non-sharing state, whereby other applications running on the computer system may not operate on an infected file.
    Type: Grant
    Filed: August 8, 2002
    Date of Patent: November 6, 2007
    Assignee: F-Secure OYJ
    Inventors: Pasi Lahti, Sino Huopio, Ismo Bergroth
  • Patent number: 7293160
    Abstract: One embodiment of the present invention provides a system which facilitates eliminating a restart penalty when reissuing deferred instructions in a processor that supports speculative-execution. During a normal execution mode, the system issues instructions for execution in program order, wherein issuing the instructions involves decoding the instructions. Upon encountering an unresolved data dependency during execution of an instruction, the processor performs a checkpointing operation and executes subsequent instructions in an execute-ahead mode, wherein instructions that cannot be executed because of the unresolved data dependency are deferred, and wherein other non-deferred instructions are executed in program order. When an unresolved data dependency is resolved during execute-ahead mode, the processor begins to execute the deferred instructions in a deferred mode. In doing so, the processor initially issues deferred instructions, which have already been decoded, from a deferred queue.
    Type: Grant
    Filed: February 14, 2005
    Date of Patent: November 6, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Marc Tremblay
  • Patent number: 7281121
    Abstract: At an MA stage, data, such as a header address of an interrupt processing routine, is loaded via a data bus and immediately supplied to a program counter via multiplexers without the intervention of an instruction decode stage in accordance with a setting address outputted from an EXE/MA buffer to an address bus. Thus, at the next processing timing at which the header address of the interrupt processing routine is loaded, the loaded header address is set in the program counter and fetching of a header instruction of the interrupt processing routine so that the interrupt processing routine can be immediately started.
    Type: Grant
    Filed: May 27, 2004
    Date of Patent: October 9, 2007
    Assignee: DENSO CORPORATION
    Inventor: Takayuki Matsuda
  • Patent number: 7269713
    Abstract: A method and apparatus for controlling issue rate of instructions for an instruction thread to be executed by a processor is provided. The rate at which instructions are to be executed for an instruction thread are stored (46) and requests are issued (44) to cause instructions to execute in response to the stored rate. The rate at which instruction requests are issued is reduced in response to instruction executions and is increased in the absence of instruction executions. In a multi-threaded processor, instruction rate is controlled by storing the average rate at which each thread should execute instructions (48). A value representative of the number of instructions available and not yet issued is monitored and is decreased in response to instruction executions (42). Execution of instructions is prevented on a thread if the number of instructions available but not yet issued falls below a defined value.
    Type: Grant
    Filed: February 19, 2002
    Date of Patent: September 11, 2007
    Assignee: Imagination Technologies Limited
    Inventors: Adrian John Anderson, Martin John Woodhead
  • Patent number: 7269717
    Abstract: One embodiment of the present invention supports execution of a start transactional execution (STE) instruction, which marks the beginning of a block of instructions to be executed transactionally. Upon encountering the STE instruction during execution of a program, the system commences transactional execution of the block of instructions following the STE instruction. Changes made during this transactional execution are not committed to the architectural state of the processor until the transactional execution successfully completes.
    Type: Grant
    Filed: August 8, 2003
    Date of Patent: September 11, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Shailender Chaudhry, Quinn A. Jacobson
  • Patent number: 7269714
    Abstract: A processor is described which includes a first pipeline, a second pipeline, and a control circuit. The first pipeline includes a first stage at which instruction results are committed to architected state. The first stage is separated from an issue stage of the first pipeline by a first number of stages. The second pipeline includes a second stage at which an exception is reportable, wherein the second stage is separated from the issue stage of the second pipeline by a second number of stages which is greater than the first number. The control circuit is configured to inhibit co-issuance of a first instruction to the first pipeline and a second instruction to the second pipeline if the first instruction is subsequent to the second instruction in program order.
    Type: Grant
    Filed: February 4, 2002
    Date of Patent: September 11, 2007
    Assignee: Broadcom Corporation
    Inventors: Tse-Yu Yeh, David A. Kruckemyer, Robert Rogenmoser
  • Patent number: 7266675
    Abstract: A processor including a register file and method for computing flush masks in a multi-threaded processing system provides fast and low-logic-overhead computation of a flush result in response to multiple flush request sources. A flush mask register file is implemented by multiple cells in an array where cells are absent from the diagonal where the column index is equal to the row index. Each cell has a vertical write enable and a horizontal write enable. When a row is written to validate that row's tag value, the column having an index equal to the row selector is automatically reset (excepting the absent cell mentioned above) . On a read of a row, a wired-AND circuit provided at each column provides a bit field corresponding to other rows that have been written since a last reset of the row, which is a flush mask indicating newer tags and the selected tag.
    Type: Grant
    Filed: January 3, 2006
    Date of Patent: September 4, 2007
    Assignee: International Business Machines Corporation
    Inventors: William Elton Burky, Peter Juergen Klim
  • Publication number: 20070204136
    Abstract: A memory device stores entries waiting to be processed. Row numbers of matrix information correspond to storage positions within the memory device, column numbers correspond to positions within the order of the entries, and every matrix element corresponding to the storage position and the position within the order of the entry stored in this storage position has a predetermined value. An operation between the first vector information indicating storage positions of processable entries and each column of the matrix information is performed and the second vector information indicating positions within the order of the processable entries is generated. Then, a position to be processed is selected from among the positions of processable entries indicated by the second vector information, an element having the predetermined value in the column corresponding to the selected position is obtained, and an entry in the storage position corresponding to the element is processed.
    Type: Application
    Filed: June 16, 2006
    Publication date: August 30, 2007
    Applicant: FUJITSU LIMITED
    Inventors: Takuji Takahashi, Masahiro Kuramoto
  • Patent number: 7254689
    Abstract: In an embodiment of the present invention, the computational efficiency of decoding of block-sorted compressed data is improved by ensuring that more than one set of operations corresponding to a plurality of paths through a mapping array T are being handled by a processor. This sequence of operations, including instructions from the plurality of sets of operations, ensures that there is another operation in the pipeline if a cache miss on any given lookup operation in the mapping array results in a slower main memory access. In this way, the processor utilization is improved. While the sets of operations in the sequence of operations are independent of another other, there will be an overlap of a plurality of the main memory access operations due to the long time required for main memory access.
    Type: Grant
    Filed: July 15, 2004
    Date of Patent: August 7, 2007
    Assignee: Google Inc.
    Inventors: Sean M. Dorward, Sean Quinlan, Michael Burrows
  • Patent number: 7243214
    Abstract: According to some embodiments, a method determining a number of stages associated with an instruction to be executed via a processor pipeline, determining a number of stages associated with a subsequent instruction, and stalling the pipeline based on the number of stages associated with the instruction to be executed and the number of stages associated with the subsequent instruction is provided.
    Type: Grant
    Filed: April 21, 2003
    Date of Patent: July 10, 2007
    Assignee: Intel Corporation
    Inventors: Niall D. McDonnell, John Wishneusky
  • Patent number: 7240186
    Abstract: A multi-threaded processor is configured to detect excepted instructions from a first program, and to stop fetching younger instructions from that same program, to thereby conserve system resources that can be used by other programs. Each fetched program instruction has an associated status bit, which is set if the instruction excepts. Each excepting instruction is logged in an exception logging unit, which causes the associated status bit to be set. Each program has an associated in-flight vector table that tracks the instructions that have been fetched for that program. The status bits are compared with the in-flight vector table to identify the program that is associated with an excepted instruction. That program is then disabled, thereby preventing further fetching of instructions for that program until the excepted instruction clears.
    Type: Grant
    Filed: July 16, 2001
    Date of Patent: July 3, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Shane L. Bell, Matthew C. Mattina
  • Patent number: 7237095
    Abstract: A method and mechanism for managing shifts in a shifting queue. A reservation station in a processing device includes a queue of shifting entries. On a given cycle, zero, one, or two instructions may be dispatched and stored in the queue. Depending upon the dispatch conditions and the state of the queue, existing entries within the queue may be shifted to make room for the newly dispatched instruction(s) at the top of the queue. Shift vectors are generated which identify entries of the queue which are to be shifted and by how much. A queue management approach is adopted in which three rules are generally followed: (i) Only shift entries that must shift due to dispatch pressure from above; (ii) If an entry must be shifted elsewhere, shift it as far down the array as the particular implementation allows; and (iii) Don't allow the previous conditions to force additional entries to shift that are not required to shift by dispatch pressure.
    Type: Grant
    Filed: August 4, 2005
    Date of Patent: June 26, 2007
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Daniel B. Hopper
  • Patent number: 7222227
    Abstract: A device and method for implementing prediction verification control and recovery control in speculative instruction execution when a prediction error occurs with simple hardware configuration are disclosed. This device includes a branch instruction insertion unit that dynamically inserts a branch instruction subsequent to a target instruction for prediction in a group of instructions consisting of the target instruction for prediction for which a value is to be predicted and a subsequent instruction. An instruction issuing unit speculatively issues a subsequent instruction to an execution unit without waiting for the execution result of the target instruction for prediction and an execution unit executes the issued instructions.
    Type: Grant
    Filed: February 24, 2003
    Date of Patent: May 22, 2007
    Assignee: Kabushiki Kaisha Toshiba
    Inventors: Yasuhiro Katayama, Masashi Sasahara
  • Patent number: 7213130
    Abstract: An instruction rollback processor system according to the present invention is provided. The instruction rollback processor system includes: an instruction window buffer storing a plurality of instructions not yet executed and are arranged in a predetermined order; a multiplexer receiving an output of the instruction window buffer; and a rollback unit connected between the output side of the multiplexer and another input of the multiplexer.
    Type: Grant
    Filed: June 2, 2003
    Date of Patent: May 1, 2007
    Assignee: Kabushiki Kaisha Toshiba
    Inventor: Tatsuo Teruyama
  • Patent number: 7200739
    Abstract: A command processing device has a decoding unit, an executing unit and a providing unit. The decoding unit decodes a system command. The executing unit executes the system command and generates an address designation signal. The providing unit provides the system command. The providing unit includes a memory circuit, a generating circuit, a register and a decoder. The memory circuit stores an original command including an original data in response to the address designation signal. The generating circuit receives the original data end and a feedback data, and generates a new command including feedback data in response to a control signal. The register receives the new command and outputs the feedback data to the generating circuit. The decoder decodes the new command from the register and outputs the decoded command as the system command.
    Type: Grant
    Filed: May 7, 2004
    Date of Patent: April 3, 2007
    Assignee: Oki Electric Industry Co., Ltd.
    Inventor: Tomomi Miyano
  • Patent number: 7185179
    Abstract: A computer system provides distributed memory computer architecture achieving extremely high speed parallel processing, and includes: a CPU modules, a plurality of memory modules, each module having a processor and RAM core, and a plurality of sets of buses making connections between the CPU and the memory modules and/or connections among memory modules, so the various memory modules operate on an instruction given by the CPU. A series of data having a stipulated relationship is given a space ID and each memory module manages a table containing at least the space ID, the logical address of the portion of the series of data managed, the size of the portion and the size of the series of data, and, the processor of each memory module determines if the portion of the series of data managed is involved in a received instruction and performs processing on data stored in the RAM core.
    Type: Grant
    Filed: September 1, 2000
    Date of Patent: February 27, 2007
    Assignee: Turbo Data Laboratories, Inc.
    Inventor: Shinji Furusho
  • Patent number: 7181598
    Abstract: In a processing core, a newly received load instruction may be dependent upon a previously received store instruction. The core may include a predictor to predict such dependencies and provide an identification of a colliding store instruction. The load instruction may be stored in a scheduler with a dependency marker. Thereafter, the load instruction may be prevented from executing until after execution of the colliding store. Upon execution of the load, the accuracy of the prediction is confirmed. Upon retirement of the load instruction, new prediction results may be provided to the predictor.
    Type: Grant
    Filed: May 17, 2002
    Date of Patent: February 20, 2007
    Assignee: Intel Corporation
    Inventors: Stephan J. Jourdan, Darrell D. Boggs, John Alan Miller, Ronak Singhal
  • Patent number: 7181597
    Abstract: A system and method of managing processor instructions provides enhanced performance. The system and method provide for decoding a first instruction into a plurality of operations with a decoder. A first copy of the operations is passed from the decoder to a build engine associated with a trace cache. The system and method further provide for passing a second copy of the operation from the decoder directly to a back end allocation module such that the operations bypass the build engine and the allocation module is in a decoder reading state.
    Type: Grant
    Filed: August 31, 2005
    Date of Patent: February 20, 2007
    Assignee: Intel Corporation
    Inventors: John Alan Miller, Stephan Jourdan
  • Patent number: 7178046
    Abstract: A microprocessor includes a first cache memory, a first instruction fetch unit, a first instruction decoder, a first processing unit and a first latch that holds a control signal outputted from the first instruction decoder. When the first instruction fetch unit receives a first instruction performed by the first processing unit it outputs the first instruction to the first instruction decoder. When the first instruction fetch unit receives a second instruction which is not performed by the first processing unit, it outputs a specific instruction to the first instruction decoder, after which the supply of clock pulses to other latch circuits In the first processing unit is halted based on the control signal.
    Type: Grant
    Filed: April 1, 2005
    Date of Patent: February 13, 2007
    Assignee: Renesas Technology Corp.
    Inventors: Tetsuya Yamada, Tomoichi Hayashi, Sadaki Nakano, Takanobu Tsunoda, Osamu Nishii
  • Patent number: 7162617
    Abstract: A program counter having an independent context for each virtual processor is provided, and a non-native instruction fetched from a main memory based on address information generated by the program counter is classified by property by an instruction classifying unit. Then an instruction merge information memory is read out utilizing address information prescribed for each classified group as reference address, and native execution control information is merged and executed. Selection and switching of the virtual processor is performed through selectively switching the instruction classifying unit and an active portion of the instruction merge information memory, and the switching timing is appropriately adjusted by synchronizing with a switching enabling signal output from the instruction merge information memory.
    Type: Grant
    Filed: February 14, 2003
    Date of Patent: January 9, 2007
    Assignee: Fine Arc Incorporated
    Inventors: Ken Ota, Toshiyuki Kochi
  • Patent number: 7159098
    Abstract: A branch control apparatus in a microprocessor. The branch control apparatus includes an instruction buffer having a plurality of stages that buffer cache lines of instruction bytes received from an instruction cache. A multiplexer selects one of the bottom three stages in the instruction buffer to provide to instruction format logic. The multiplexer selects a stage based on a branch indicator, an instruction wrap indicator, and a carry indicator. The branch indicator indicates whether the processor previously branched to a target address provided by a branch target address cache. The branch indicator and target address are previously stored in association with the stage containing the branch instruction for which the target address is cached. The wrap indicator indicates whether the currently formatted instruction wraps across two cache lines. The carry indicator indicates whether the current instruction being formatted occupies the last byte of the currently formatted instruction buffer stage.
    Type: Grant
    Filed: August 17, 2004
    Date of Patent: January 2, 2007
    Assignee: IP-First, LLC.
    Inventors: G. Glenn Henry, Thomas C. McDonald
  • Patent number: 7149880
    Abstract: A system and method for a simultaneous multithreaded processor that reduces the number of hardware components necessary as well as the complexity of design over current systems is disclosed. As opposed to requiring individual storage elements for saving instruction pointer information for each re-steer logic component within a processor pipeline, the present invention allows for instruction pointer information of an inactive thread to be stored in a single, ‘inactive thread’ storage element until the thread becomes active again.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: December 12, 2006
    Assignee: Intel Corporation
    Inventor: Sailesh Kottapalli
  • Patent number: 7143269
    Abstract: An apparatus for killing an instruction after it has already been loaded into an instruction queue of a microprocessor is disclosed. The apparatus includes control logic that detects a condition in which the instruction must not be executed, such as a branch instruction misprediction; however, the control logic determines the condition too late to prevent the instruction from being loaded into the instruction queue. The control logic generates a kill signal indicating the instruction must not be executed. A kill queue receives the kill signal and stores its value. The kill queue maintains its entries in parallel with the instruction queue entries so that when the instruction queue subsequently outputs the instruction, the kill queue also outputs the value of the kill signal associated with the, instruction. If the kill signal value output from the kill queue is true, then the microprocessor invalidates the instruction and does not execute it.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: November 28, 2006
    Assignee: IP-First, LLC
    Inventor: Thomas McDonald
  • Patent number: 7130990
    Abstract: A method and apparatus are provided for providing ready information to a scheduler. Dependence information is maintained in a relatively small map table, with potential loss of information when dependence information exceeds available space in the map table. Ready instructions are maintained, as space allows, in a select queue. Tags for scheduled instructions are maintained in a lookup queue, and dependency information for the scheduled instruction is maintained in an update queue, as space allows. Ready information for instructions in a scheduling window is updated based upon the information in the update queue. Loss of instruction information may occur, due to space limitations, at the map table, lookup queue, update queue, and/or select queue. Scheduling of lost instructions is handled by a lossy instruction handler.
    Type: Grant
    Filed: December 31, 2002
    Date of Patent: October 31, 2006
    Assignee: Intel Corporation
    Inventors: Edward A. Brekelbaum, Bryan P. Black, Jeffrey P. Rupley, II
  • Patent number: 7127530
    Abstract: In order to reduce load placed on a CPU (central processing unit) in providing SBP-2 (serial bus protocol 2) initiator capability, provided are a sequence control circuit activated by the CPU for controlling a command issue sequence, a packet processing circuit for assembling operation request blocks (ORB) into a transmission packet and extracting a status from a received packet; buffer for storing a command ORB provided by the CPU; a buffer for storing a management ORB provided by the CPU; a buffer for storing a status received for an issued management ORB and providing the status to the CPU; and a buffer for command for storing a status received for an issued command ORB and providing the status to the CPU.
    Type: Grant
    Filed: April 18, 2002
    Date of Patent: October 24, 2006
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Isamu Ishimura, Yoshihiro Tabira
  • Patent number: 7103754
    Abstract: A computer architecture that provides the definition of a 20 bit signed displacement value used to form the operand storage address.
    Type: Grant
    Filed: March 28, 2003
    Date of Patent: September 5, 2006
    Assignee: International Business Machines Corporation
    Inventors: Mark A. Check, Brian B. Moore, Timothy J. Slegel
  • Patent number: 7103755
    Abstract: An apparatus for efficient parallel executing instruction avoiding the usage of cross bypasses, the apparatus including an instruction buffer for storing instructions, of decoders for decoding, in parallel, the instructions which simultaneously issue from the instruction buffer, executing units for executing the instructions decoded in the decoders, and an instruction-issuing controlling means for controlling the issuing of the instructions in such a way that, when the instructions are executed, one of the plural executing units executes instructions more frequently than the rest of the plural executing units. The apparatus is preferably incorporated in an information processor to superscalar or out-of-order instruction execution.
    Type: Grant
    Filed: January 10, 2003
    Date of Patent: September 5, 2006
    Assignee: Fujitsu Limited
    Inventors: Susumu Akiu, Masaki Ukai, Toshio Yoshida
  • Patent number: 7093105
    Abstract: A method and apparatus to allow program steps in an issue queue to be sent to the execution queue in a non program order provides reduced stall by allowing out of program order steps to be executed as needed resources become available. The method uses a modulus operation to preassign locations in the execution queues, and keep the entries in proper program order. The method employs an additional bit to represent the modules result (value) and may also utilize a load store number mapping memory to increase execution speed. With such an arrangement a computer system may decrease the lost performance due to waiting for required resource (i.e., memory or bus) availability for the current instruction, by issuing instructions for which the memory or bus resource is available even though the instruction is not the next one in the original program order. Thus the present invention allows memory reference instructions to issue as resources are available.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: August 15, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: David Arthur James Webb, Jr., James Keller, Derrick R. Meyer
  • Patent number: 7085917
    Abstract: In a computer system, a method and apparatus for dispatching and executing multi-cycle and complex instructions. The method results in maximum performance for such without impacting other areas in the processor such as decode, grouping or dispatch units. This invention allows multi-cycle and complex instructions to be dispatched to one port but executed in multiple execution pipes without cracking the instruction and without limiting it to a single execution pipe. Some control signals are generated in the dispatch unit and dispatched with the instruction to the Fixed Point Unit (FXU). The FXU logic then execute these instructions on the available FXU pipes. This method results in optimum performance with little or no other complications. The presented technique places the flexibility of how these instructions will be executed in the FXU, where the actual execution takes place, instead of in the instruction decode or dispatch units or cracking by the compiler.
    Type: Grant
    Filed: May 12, 2003
    Date of Patent: August 1, 2006
    Assignee: International Business Machines Corporation
    Inventors: Fadi Y. Busaba, Steven R. Carlough, Christopher A. Krygowski, John G. Rell, Jr., Timothy J. Slegel
  • Patent number: 7082285
    Abstract: In wireless communications such as in the Bluetooth communication system, an execution unit sequentially receives software instructions for execution. Prior to completing each instruction, the execution unit issues an interrupt indicating the upcoming completion of the instruction execution and awaits receipt of the next instruction. A Link Manager issues limited instructions, and a Link Controller includes a hardware execution unit for executing the limited instructions. A processing unit in the Link Manager performs remaining functions under control of a software program.
    Type: Grant
    Filed: March 18, 2002
    Date of Patent: July 25, 2006
    Assignee: Broadcom Corporation
    Inventor: Joakim Linde
  • Patent number: 7082517
    Abstract: In a computer system for use as a symetrical multiprocessor, a superscalar microprocessor apparatus allows dispatching and executing multi-cycle and complex instructions Some control signals are generated in the dispatch unit and dispatched with the instruction to the Fixed Point Unit (FXU). Multiple execution pipes correspond to the instruction dispatch ports and the execution unit is a Fixed Point Unit (FXU) which contains three execution dataflow pipes (X, Y and Z) and one control pipe (R). The FXU logic then execute these instructions on the available FXU pipes. This results in optimum performance with little or no other complications. The presented technique places the flexibility of how these instructions will be executed in the FXU, where the actual execution takes place, instead of in the instruction decode or dispatch units or cracking by the compiler.
    Type: Grant
    Filed: May 12, 2003
    Date of Patent: July 25, 2006
    Assignee: International Business Machines Corporation
    Inventors: Fadi Y. Busaba, Klaus J. Getzlaff, Christopher A. Krygowski, Timothy J. Slegel
  • Patent number: 7080170
    Abstract: An apparatus comprises a buffer comprising a plurality of entries, a plurality of age vectors, and a control circuit coupled to the buffer. Each of the age vectors corresponds to one or more of the entries. Responsive to data being provided to the buffer to be written to at least a first entry, the control circuit is configured to generate a first age vector. The first age vector corresponds to the first entry, and is indicative of which of the plurality of entries contain data that is older than the data being written to the first entry. The control circuit is configured to select an entry for reading responsive to the plurality of age vectors. The selected entry has an attribute used to select the selected entry, and other entries indicated as storing older data in the age vector corresponding to the selected entry do not have the attribute.
    Type: Grant
    Filed: September 3, 2003
    Date of Patent: July 18, 2006
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Gerald D. Zuraski, Jr., Brian D. McMinn, Michael K. Ciraula
  • Patent number: 7080231
    Abstract: A processor includes a tagging buffer for storing information that advises the processor of potential memory collisions caused by program instruction pairs that refer to the same memory address. In one method for avoiding memory collisions, a program having tagging code identifying program instruction pairs of the program that refer to a same memory address is compiled. The program instruction pairs in the compiled program code are processed while verifying an order in which the program instruction pairs are to be executed using the compiled tagging code, which is loaded into a tagging buffer. In another method, a program that does not include tagging code is compiled. When a trap occurs in the processing of a program instruction pair, program counters that cause the instructions to be executed in a desired order are added to a tagging buffer. A computer system including the processor also is described.
    Type: Grant
    Filed: October 18, 2002
    Date of Patent: July 18, 2006
    Assignee: Sun Microsystems, Inc.
    Inventor: Jan Civlin
  • Patent number: 7076638
    Abstract: In order to overcome the problem that conditionally executed instructions are executed as no-operation instructions if their condition is not fulfilled, leading to poor utilization efficiency of the hardware and lowering the effective performance, the processor decodes a number of instructions that is greater than the number of provided computing units and judges their execution conditions with an instruction issue control portion before the execution stage, Instructions for which the condition is false are invalidated, and subsequent valid instructions are assigned so that the computing units (hardware) is used efficiently. A compiler performs scheduling such that the number of instructions whose execution condition is true does not exceed the upper limit of the degree of parallelism of the hardware. The number of instructions arranged in parallel at each cycle may exceed the degree of parallelism of the hardware.
    Type: Grant
    Filed: September 19, 2002
    Date of Patent: July 11, 2006
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Taketo Heishi, Shuichi Takayama, Tetsuya Tanaka, Hajime Ogawa, Nobuo Higaki
  • 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: 7032101
    Abstract: An apparatus and method in a high performance processor for issuing instructions, comprising; a classification logic for sorting instructions in a number of priority categories, a plurality of instruction queues storing the instruction of differing priorities, and a issue logic selecting from which queue to dispatch instructions for execution. This apparatus and method can be implemented in both in-order, and out-of-order execution processor architectures. The invention also involves instruction cloning, and use of various predictive techniques.
    Type: Grant
    Filed: February 26, 2002
    Date of Patent: April 18, 2006
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Valentina Salapura