Simultaneous Issuance Of Multiple Instructions Patents (Class 712/215)
  • Patent number: 6381689
    Abstract: A reorder buffer is configured into multiple lines of storage, wherein a line of storage includes sufficient storage for instruction results regarding a predefined maximum number of concurrently dispatchable instructions. A line of storage is allocated whenever one or more instructions are dispatched. A microprocessor employing the reorder buffer is also configured with fixed, symmetrical issue positions. The symmetrical nature of the issue positions may increase the average number of instructions to be concurrently dispatched and executed by the microprocessor. The average number of unused locations within the line decreases as the average number of concurrently dispatched instructions increases. One particular implementation of the reorder buffer includes a future file. The future file comprises a storage location corresponding to each register within the microprocessor.
    Type: Grant
    Filed: March 13, 2001
    Date of Patent: April 30, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, Thang M. Tran
  • Patent number: 6378061
    Abstract: An instruction decoder that issues new instructions by driving a machine bus (110) with the correct information during each clock cycle. This information is either extracted from the current instruction to be executed, or is recycled from the previous contents (106) of the machine bus when a scoreboarding operation has been performed. Mousetrap multiplexer (104) chooses between several sources of opcode and operand fields and routes them to the machine bus (110) through several translation stages and multiplexers. The decision of which source to use is based on what kind of instruction is currently being looked at by the instruction queue in the instruction fetch unit. The instruction queue notifies the instruction decoder that the next instruction is to be either a RISC operation (including register, memory, and/or branch instructions) or an instruction which is part of a microcode flow. If a complex macroinstruction flow is in progress, its operands can be accessed through alias registers.
    Type: Grant
    Filed: November 12, 1993
    Date of Patent: April 23, 2002
    Assignee: Intel Corporation
    Inventors: Adrian Carbine, Glenn J. Hinton, Frank S. Smith
  • Patent number: 6370637
    Abstract: A microprocessor with a floating point unit configured to efficiently allocate multi-pipeline executable instructions is disclosed. Multi-pipeline executable instructions are instructions that are not forced to execute in a particular type of execution pipe. For example, junk ops are multi-pipeline executable. A junk op is an instruction that is executed at an early stage of the floating point unit's pipeline (e.g., during register rename), but still passes through an execution pipeline for exception checking. Junk ops are not limited to a particular execution pipeline, but instead may pass through any of the microprocessor's execution pipelines in the floating point unit. Multi-pipeline executable instructions are allocated on a per-clock cycle basis using a number of different criteria. For example, the allocation may vary depending upon the number of multi-pipeline executable instructions received by the floating point unit in a single clock cycle.
    Type: Grant
    Filed: August 5, 1999
    Date of Patent: April 9, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Stephan G. Meier, Norbert Juffa, Frederick D. Weber, Stuart F. Oberman
  • Patent number: 6367076
    Abstract: A compiling method, for compiling a source program into an object program for a CPU having multiple functional units that allow for concurrent operations and supporting predicated execution, for generating the object program that can be executed on the CPU at high speed by analyzing the source program and generating intermediate codes, making an analysis of the intermediate codes, generating, based on the analysis, an execution mode set instruction to set an execution mode managed within the CPU, allocating, based on the analysis, instructions such that whether they are to be executed or not to be executed depends on the execution mode set by the execution mode set instruction from the intermediate codes, wherein one or more instructions in which values in their respective specific fields are identical make an block together for every value in the specific field, finding, for each block, an ending part of the block in which its last instruction is allocated, and generating, when the ending part of a certain b
    Type: Grant
    Filed: March 12, 1999
    Date of Patent: April 2, 2002
    Assignee: Kabushiki Kaisha Toshiba
    Inventors: Toru Imai, Hiroko Fujii, Yoshio Masubuchi
  • Patent number: 6363441
    Abstract: An electronic system and method that maintains time dependencies and ordering constraints in an electronic system. A timing controller utilizes a representative bit to track timing dependencies associated with information and ensures the information is communicated and processed in an order that preserves the timing dependencies as the information is converted from parallel to parallel or parallel to serial operations. The present invention tracks the order in which information is loaded in a electronic hardware component and ensures that the information loaded into the electronic hardware component at a particular time is processed without interruption by information loaded at a different time.
    Type: Grant
    Filed: March 5, 1999
    Date of Patent: March 26, 2002
    Assignee: Silicon Graphics, Inc.
    Inventors: Ole Bentz, Ian O'Donnell
  • Patent number: 6360312
    Abstract: A processor that has a plurality of instruction slots each of which stores an instruction to be executed in parallel. One of the plurality of instruction slots is a first instruction slot and another a second instruction slot. A special instruction stored in the first instruction slot is executed by a first functional unit that executes instructions stored in the first instruction slot, and a second functional unit that executes instructions stored in the second instruction slot. An instruction stored in the second instruction slot is executed in parallel by a third functional unit that executes instructions stored in the second instruction slot.
    Type: Grant
    Filed: March 29, 1999
    Date of Patent: March 19, 2002
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventor: Kenichi Kawaguchi
  • Patent number: 6360313
    Abstract: A computing system as described in which individual instructions are executable in parallel by processing pipelines, and instructions to be executed in parallel by different pipelines are supplied to the pipelines simultaneously. The system includes storage for storing an arbitrary number of the instructions to be executed. The instructions to be executed are tagged with pipeline identification tags indicative of the pipeline to which they should be dispatched. The pipeline identification tags are supplied to a system which controls a crossbar switch, enabling the tags to be used to control the switch and supply the appropriate instructions simultaneously to the differing pipelines.
    Type: Grant
    Filed: September 8, 2000
    Date of Patent: March 19, 2002
    Assignee: Intergraph Corporation
    Inventors: Howard G. Sachs, Siamak Arya
  • Patent number: 6360309
    Abstract: A tag monitoring system for assigning tags to instructions. A source supplies instructions to be executed by a functional unit. A register file stores information required for the execution of each instruction. A queue having a plurality of slots containing tags which are used for tagging the instructions. The tags are arranged in the queue in an order specified by the program order of their corresponding instructions. A control unit monitors the completion of executed instructions and advances the tags in the queue upon completion of an executed instruction. The register file stores an instruction's information at a location in the register file defined by the tag assigned to that instruction. The register file also contains a plurality of read address enable ports and corresponding read output ports. Each of the slots from the queue is coupled to a corresponding one of the read address enable ports. Thus, the information for each instruction can be read out of the register file in program order.
    Type: Grant
    Filed: May 19, 2000
    Date of Patent: March 19, 2002
    Assignee: Seiko Epson Corporation
    Inventors: Kevin R. Iadonato, Trevor A. Deosaran, Sanjiv Garg
  • Patent number: 6353881
    Abstract: A system is provided that facilitates space and time dimensional execution of computer programs through selective versioning of memory elements located in a system heap. The system includes a head thread that executes program instructions and a speculative thread that simultaneously executes program instructions in advance of the head thread with respect to the time dimension of sequential execution of the program. The collapsing of the time dimensions is facilitated by expanding the heap into two space-time dimensions, a primary dimension (dimension zero), in which the head thread operates, and a space-time dimension (dimension one), in which the speculative thread operates. In general, each dimension contains its own version of an object and objects created by the thread operating in the dimension. The head thread generally accesses a primary version of a memory element and the speculative thread generally accesses a corresponding space-time dimensioned version of the memory element.
    Type: Grant
    Filed: May 17, 1999
    Date of Patent: March 5, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay
  • Patent number: 6353880
    Abstract: A system and method for efficiently processing instructions in a pipeline architecture for a microcontroller and maintaining a fixed instruction execution per clock cycle rate is disclosed. The pipeline comprises four stages: an instruction fetch stage, an operand fetch stage, an execution stage, and a write back stage. In a first embodiment, an entire clock cycle is dedicated to the instruction fetch stage to the instruction fetch stage to retrieve instruction data from non-volatile memory in a single clock cycle. In a second embodiment, the operand fetch stage preliminarily decodes the instruction data to determine tasks to be performed to allow the execution stage to perform its time-intensive calculations in a single clock cycle. Additionally, the operand fetch stage initiates the performance of tasks determined from the decoding of the instructions to minimize the time required to perform those tasks by the execution stage.
    Type: Grant
    Filed: July 22, 1998
    Date of Patent: March 5, 2002
    Assignee: Scenix Semiconductor, Inc.
    Inventor: Chuck Cheuk-wing Cheng
  • Patent number: 6351802
    Abstract: A method of scheduling instructions in a computer processor. The method comprises fetching instructions to create an in-order instruction buffer, and scheduling instruction from the instruction buffer into instruction slots within instruction vectors in an instruction vector table. Instruction vectors are then dispatched from the instruction vector table to a prescheduled instruction cache, and, in parallel, to an instruction issue unit.
    Type: Grant
    Filed: December 3, 1999
    Date of Patent: February 26, 2002
    Assignee: Intel Corporation
    Inventor: Gad S. Sheaffer
  • Patent number: 6351806
    Abstract: A RISC processor using a fixed length standard instruction word (32-bit) consisting of a fixed-length (6-bit) operation code and two register fields, uses one of the register fields to give certain operation codes multiple meanings. For most operations, the register codes refer to general purpose registers as such. However, for certain operations, including move and add, register codes 30 and 31 in the source register code field of the instruction word indicate that the next instruction word contains immediate data for that operation instead of the operand being located in the specified register itself. Further, for load, store and jump operations, the source register codes 30 and 31 in the source register code field indicates that those registers are to be used as base or index registers for indexed addressing, with an offset in the following instruction word added to the general purpose register 30 or 31 contents to form the address.
    Type: Grant
    Filed: October 5, 2000
    Date of Patent: February 26, 2002
    Assignee: Cradle Technologies
    Inventor: David C. Wyland
  • Patent number: 6351807
    Abstract: A processor (40) in a data processing system simultaneously loads multiple registers (60) with a single value for fast domain switching. A domain switch instruction asserts a register block write signal (112) along with the register write signal (116) when block writing the single value to the set of registers (60). Register address lines (110, 111) are decoded in two sets: a first set of decoded address lines (110) specifying a block of registers; and the second set (111) specifying one register in the block of registers. When the register block write signal (112) is asserted during a register write, the second set of decoded address lines (111) are ignored, and all registers in the block of registers (60) selected by the first set of decoded address lines (110) are simultaneously loaded with a common value. Additional drive requirements are solved either by adding a buffer (226) to each register bit, or by disabling (228) the feedback path (215) in each register bit during block writes.
    Type: Grant
    Filed: September 25, 1998
    Date of Patent: February 26, 2002
    Assignee: Bull HN Information Systems Inc.
    Inventors: Ron W. Yoder, Russell W. Guenthner, William A. Shelly, Eric Earl Conway, Boubaker Shaiek, Claude Rabel
  • Patent number: 6349381
    Abstract: A pipelined instruction dispatch or grouping circuit allows instruction dispatch decisions to be made over multiple processor cycles. In one embodiment, the grouping circuit performs resource allocation and data dependency checks on an instruction group, based on a state vector which includes representation of source and destination registers of instructions within said instruction group and corresponding state vectors for instruction groups of a number of preceding processor cycles.
    Type: Grant
    Filed: July 25, 2000
    Date of Patent: February 19, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Marc Tremblay
  • Patent number: 6345355
    Abstract: A command memory stores commands in memory words. Each command has a label field and an action field. The commands are consolidated to reduce the amount of information stored in the command memory. A control unit interprets the commands and restores the order that was removed by the consolidation. The control unit arranges the action fields as commands in a control word based on information in the label field. When the commands are compressed in the command memory, commands that are not performed in parallel can be stored in the same memory word. Commands that are performed in parallel can be stored in different memory words. The order of the commands in the control word is determined by information in the label field, such as whether the command is performed in parallel with a preceding command.
    Type: Grant
    Filed: May 29, 1998
    Date of Patent: February 5, 2002
    Assignee: Telefonaktiebolaget LM Ericsson (publ)
    Inventors: Claes Hammar, Magnus Jacobsson, Stefan HÃ¥kansson
  • Patent number: 6343359
    Abstract: An apparatus is presented for expediting the execution of dependent micro instructions in a pipeline microprocessor having design characteristics—complexity, power, and timing—that are not significantly impacted by the number of stages in the microprocessor's pipeline. In contrast to conventional result distribution schemes where an intermediate result is distributed to multiple pipeline stages, the present invention provides a cache for storage of multiple intermediate results. The cache is accessed by a dependent micro instruction to retrieve required operands. The apparatus includes a result forwarding cache, result update logic, and operand configuration logic. The result forwarding cache stores the intermediate results. The result update logic receives the intermediate results as they are generated and enters the intermediate results into the result forwarding cache.
    Type: Grant
    Filed: May 18, 1999
    Date of Patent: January 29, 2002
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry
  • Patent number: 6341343
    Abstract: Three parallel instruction processing pipelines of a microprocessor share two data memory ports for obtaining operands and writing back results. Since a significant proportion of the instructions of a typical computer program do not require reading operands from the memory, the probability is high that at least one of any three program instructions to be executed at the same time need not fetch an operand from memory. The two memory ports are thus connected at any given time with the two of the three pipelines which are processing instructions that require memory access, the pipeline without access to the memory processing an instruction that does not need it. To do so, the added third pipeline need not have all the same resources as the other two pipelines, so its stages are made to have a reduced capability in order to save space and reduce power consumption.
    Type: Grant
    Filed: April 26, 2001
    Date of Patent: January 22, 2002
    Assignee: Rise Technology Company
    Inventor: Kenneth K. Munson
  • Publication number: 20010056456
    Abstract: A simultaneous multi-threaded architecture combines OS priority information with thread execution heuristics to provide dynamic priorities for selecting thread instructions for processing. The dynamic priority of a thread is determined by adjusting a heuristic measure of the thread's execution dynamics with a priority-dependent scaling function determined from the OS priority of the thread. An SMT processor includes logic for calculating a scaling function for each thread scheduled on the processor, tracking the threads' heuristics, and combing the scaling function and heuristic information into a dynamic priority for each thread. Instructions are selected for execution from among the scheduled threads according to the threads' dynamic priorities.
    Type: Application
    Filed: July 8, 1997
    Publication date: December 27, 2001
    Inventor: ERIK COTA-ROBLES
  • Publication number: 20010054138
    Abstract: An instruction buffer of the present invention includes a sequence of instructions arranged in an order determined beforehand, and a buffer including entries arranged in a preselected order for storing the sequence of instructions. Any one of the instructions stored in any one of the entries designated by a low entry number is prior, in order, to another instruction stored in another entry designated by a high entry number.
    Type: Application
    Filed: May 23, 2001
    Publication date: December 20, 2001
    Inventor: Mitsuharu Kawaguchi
  • Patent number: 6330657
    Abstract: An apparatus and method are presented for increasing the throughput within a single-channel of a pipeline microprocessor. Back-to-back pairs of micro instructions are evaluated to determine if they can be combined for execution in parallel. If so, then they are combined and issued for concurrent execution. The apparatus includes a micro instruction queue that buffers and orders micro instructions for sequential execution by the pipeline microprocessor. Within the micro instruction queue, a second micro instruction is ordered to execute immediately following execution of a first micro instruction. Pairing logic is coupled to the micro instruction queue. The pairing logic combines the first and second micro instructions so that the first and second micro instructions are executed in parallel by the pipeline microprocessor.
    Type: Grant
    Filed: May 18, 1999
    Date of Patent: December 11, 2001
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry
  • Patent number: 6324640
    Abstract: Within a superscalar processor, multiple groups of instructions are dispatched simultaneously to a plurality of execution units. A renaming mechanism is utilized to permit out-of-order execution of these instructions within the multiple groups. The renaming mechanism includes a rename table allocated for each dispatched group. A delay register is implemented between a portion of the dispatch queue dispatching a second one of the groups of instructions and a second one of the rename tables.
    Type: Grant
    Filed: June 30, 1998
    Date of Patent: November 27, 2001
    Assignee: International Business Machines Corporation
    Inventors: Hung Qui Le, Hoichi Cheong
  • Patent number: 6324639
    Abstract: A processor can decode short instructions with a word length equal to one unit field and long instructions with a word length equal to two unit fields. An opcode of each kind of instruction is arranged into the first unit field assigned to the instruction. The number of instructions to be executed by the processor in parallel is s. When the ratio of short to long instructions is s-1:1, the s-1 short instructions are assigned to the first unit field to the s-1th unit field in the parallel execution code, and the long instruction is assigned to the sth unit field to the (s+k−1)th unit field in the same parallel execution code.
    Type: Grant
    Filed: March 29, 1999
    Date of Patent: November 27, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Taketo Heishi, Tetsuya Tanaka, Nobuo Higaki, Shuishi Takayama, Kensuke Odani
  • Publication number: 20010042192
    Abstract: An apparatus and method for self-initiated instruction issuing are implemented. In a central processing unit (CPU) having a pipelined architecture, instructions are queued for issuing to the execution unit which will execute them. Instructions are issued each cycle, and an instruction should be selectable for issuing as soon as its source operands are available. An instruction in the issue queue having source operands depending on other, target, instructions to determine their value are signaled to the target instruction by a link mask in the queue entry corresponding to the target instruction. A bit in the link mask identifies the queue entry corresponding to the dependent instruction. When the target instruction issues to the execution unit, a bit is set in a predetermined portion of the queue entry containing the dependent instruction. The portion of the queue entry is associated with the source operand depending on the issuing instruction.
    Type: Application
    Filed: July 11, 2001
    Publication date: November 15, 2001
    Inventors: Hung Qui Le, Hoichi Cheong
  • Patent number: 6314471
    Abstract: A method and system in a multithreaded processor for processing events without interrupt notifications. In one aspect of the present invention, an operating system creates a thread to execute on a stream of the processor. During execution of the thread, the thread executes a loop that determines whether an event has occurred and, in response to determining whether an event has occurred, assigns a different thread to process the event so that multiple events can be processed in parallel and so that interrupts are not needed to signal that the event has occurred. Another aspect of the present invention provides a method and system for processing asynchronously occurring events without interrupt notifications. To achieve this processing, a first thread is executed to generate a notification that the event has occurred upon receipt of the asynchronously occurring event.
    Type: Grant
    Filed: November 13, 1998
    Date of Patent: November 6, 2001
    Assignee: Cray Inc.
    Inventors: Gail A. Alverson, Charles David Callahan, II, Susan L. Coatney, Laurence S. Kaplan, Richard D. Korry
  • Patent number: 6311266
    Abstract: A method and system for executing instructions in a computer. Each instruction has a look-ahead code indicating the number of instructions after which may be executed before its own execution is completed. The look-ahead code increments a counter associated with the instruction one past the look-ahead location. The instruction then begins execution. The next instructions will also be cleared to begin execution if they are less than the look-ahead code away from the current instruction. A large number of instructions can thus begin execution and be executing at the same time, thus increasing the speed of the computer operation.
    Type: Grant
    Filed: December 23, 1998
    Date of Patent: October 30, 2001
    Assignee: Cray Inc.
    Inventors: Burton J. Smith, Robert L. Alverson
  • Publication number: 20010034824
    Abstract: A simultaneous and redundantly threaded, pipelined processor executes the same set of instructions simultaneously as two separate threads to provide fault tolerance. One thread is processed ahead of the other thread so that the instructions in one thread are processed through the processor's pipeline ahead of the corresponding instructions from the other thread. The thread, whose instructions are processed earlier, places its committed stores in a store queue. Subsequently, the second thread places its committed stores in the store queue. A compare circuit periodically scans the store queue for matching store instructions. If otherwise matching store instructions differ in any way (address or data), then a fault has occurred in the processing and the compare circuits initiates fault recovery. If comparison of the two instructions reveals they are identical, the compare circuit allows only a single store instruction to pass to the data cache or the system main memory.
    Type: Application
    Filed: April 19, 2001
    Publication date: October 25, 2001
    Inventors: Shubhendu S. Mukherjee, Steven K. Reinhardt
  • Patent number: 6308254
    Abstract: A processor is provided with a datapath and control logic to control the datapath to selectively execute a number of hierarchically organized primitive operations to effectuate execution of user instruction streams constituted with instructions of the ISA. In one embodiment, primitive operations are statically organized into atomic units, which in turn are statically organized into snippets of execution threads. Selected ones of the snippets are logically associated together to form execution threads, which collectively implement the instructions of the ISA.
    Type: Grant
    Filed: November 18, 1999
    Date of Patent: October 23, 2001
    Assignee: Brecis
    Inventor: Donald L. Sollars
  • Patent number: 6308260
    Abstract: An apparatus and method for self-initiated instruction issuing are implemented. In a central processing unit (CPU) having a pipelined architecture, instructions are queued for issuing to the execution unit which will execute them. Instructions are issued each cycle, and an instruction should be selectable for issuing as soon as its source operands are available. An instruction in the issue queue having source operands depending on other, target, instructions to determine their value are signaled to the target instruction by a link mask in the queue entry corresponding to the target instruction. A bit in the link mask identifies the queue entry corresponding to the dependent instruction. When the target instruction issues to the execution unit, a bit is set in a predetermined portion of the queue entry containing the dependent instruction. The portion of the queue entry is associated with the source operand depending on the issuing instruction.
    Type: Grant
    Filed: September 17, 1998
    Date of Patent: October 23, 2001
    Assignee: International Business Machines Corporation
    Inventors: Hung Qui Le, Hoichi Cheong
  • Patent number: 6308259
    Abstract: An instruction queue is physically divided into two (or more) instruction queues. Each instruction queue is configured to store a dependency vector for each instruction operation stored in that instruction queue. The dependency vector is evaluated to determine if the corresponding instruction operation may be scheduled for execution. Instruction scheduling logic in each physical queue may schedule instruction operations based on the instruction operations stored in that physical queue independent of the scheduling logic in other queues. The instruction queues evaluate the dependency vector in portions, during different phases of the clock. During a first phase, a first instruction queue evaluates a first portion of the dependency vectors and generates a set of intermediate scheduling request signals. During a second phase, the first instruction queue evaluates a second portion of the dependency vector and the intermediate scheduling request signal to generate a scheduling request signal.
    Type: Grant
    Filed: July 25, 2000
    Date of Patent: October 23, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6304953
    Abstract: One embodiment of the present invention is a computer processor that includes a first scheduler adapted to dispatch a first type of computer instructions, and a second scheduler coupled to the first scheduler and adapted to dispatch a second type of computer instructions. The first type of instructions all have a first latency and the second type of instructions all have a second latency. The first scheduler is skewed relative to the second scheduler so that when the first scheduler dispatches one of the first type of computer instructions having a first latency, the second scheduler will dispatch one of the second type of computer instructions that is dependent on the first type of computer instruction at a time equal to the first latency.
    Type: Grant
    Filed: July 31, 1998
    Date of Patent: October 16, 2001
    Assignee: Intel Corporation
    Inventors: Alexander Paul Henstrom, David J. Sager
  • Patent number: 6304959
    Abstract: A method and system for assigning unique branch tag (BTAG) values in a decode unit in a processing system are disclosed. The method and system comprise providing at least one BTAG value and incrementing the at least one BTAG value for each fetch group as required. The method includes allowing the decode unit to generate the appropriate BTAG values for all dispatch groups formed by instructions within the same fetch group. In the preferred implementation, the BTAG values comprise a major branch tag and two minor branch tags, a count branch tag, and a link branch tag. The “seed” value for each of the BTAGs is provided each time a branch redirection occurs. Because the branches are passed to the decode unit with little or no processing by the instruction fetch unit, and conditions can cause the branch execution to be delayed, more branches could be decoded and processed than the number of branch entry queues in the instruction fetch unit.
    Type: Grant
    Filed: March 5, 1999
    Date of Patent: October 16, 2001
    Assignee: International Business Machines Corporation
    Inventors: Brian R. Konigsburg, John Edward Derrick, David Stephen Levitan
  • Patent number: 6304954
    Abstract: Three parallel instruction processing pipelines of a microprocessor share two data memory ports for obtaining operands and writing back results. Since a significant proportion of the instructions of a typical computer program do not require reading operands from the memory, the probability is high that at least one of any three program instructions to be executed at the same time need not fetch an operand from memory. The two memory ports are thus connected at any given time with the two of the three pipelines which are processing instructions that require memory access, the pipeline without access to the memory processing an instruction that does not need it. To do so, the added third pipeline need not have all the same resources as the other two pipelines, so its stages are made to have a reduced capability in order to save space and reduce power consumption.
    Type: Grant
    Filed: September 11, 1998
    Date of Patent: October 16, 2001
    Assignee: Rise Technology Company
    Inventor: Kenneth K. Munson
  • Patent number: 6292845
    Abstract: An instruction fetching unit is described for loading instructions from a memory processed by a data processing device. The instruction code can be of at least two different lengths, and each instruction contains at least a single bit indicating said instruction sizes. An instruction buffer coupled with an instruction size evaluation unit for determining the instruction size upon said at least single bit of said instruction is provided.
    Type: Grant
    Filed: August 26, 1998
    Date of Patent: September 18, 2001
    Assignee: Infineon Technologies North America Corp.
    Inventors: Rod G. Fleck, Bruce Holmer, Ole H. Møller, Roger D. Arnold, Balraj Singh
  • Patent number: 6292884
    Abstract: A reorder buffer is provided which stores a last in buffer (LIB) indication corresponding to each instruction. The last in buffer indication indicates whether or not the corresponding instruction is last, in program order, of the instructions within the buffer to update the storage location defined as the destination of that instruction. The LIB indication is included in the dependency checking comparisons. A dependency is indicated for a given source operand and a destination operand within the reorder buffer if the operand specifiers match and the corresponding LIB indication indicates that the instruction corresponding to the destination operand is last to update the corresponding storage location. At most one of the dependency comparisons for a given source operand can indicate dependency. According to one embodiment, the reorder buffer employs a line-oriented configuration.
    Type: Grant
    Filed: December 30, 1999
    Date of Patent: September 18, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, David B. Witt
  • Patent number: 6292882
    Abstract: In one aspect, the invention includes an apparatus for filtering instructions within a digital system that eliminates the need to physically switch the valid instructions onto consecutive data lines of a buffer. The apparatus includes a filter for filtering instructions within a digital system. The filter includes an address generator capable of generating at least two addresses in response to receiving at least two micro-operations. The filter also includes a logic circuit coupled to the address generator. The logic circuit filters addresses corresponding to valid micro-operations in response to assessing the state of a portion of each of the micro-operations. In a second aspect, the invention includes a method for filtering instructions within a digital system that eliminates the need to physically switch the valid instructions onto consecutive data lines of a buffer. The method includes, generating at least two addresses in response to receiving at least two micro-operations.
    Type: Grant
    Filed: December 10, 1998
    Date of Patent: September 18, 2001
    Assignee: Intel Corporation
    Inventors: Nazar A. Zaidi, Umair A. Khan
  • Publication number: 20010021971
    Abstract: The present invention discloses an image processor (224) for executing a computer instruction set (280, 290) in the form of an opcode (281), at least one operand (283-285) which is, or indicates the location of data to be processed. The data to be processed consists of a variable length stream of data and each instruction includes a length field (297) containing data specifying the number of items of data to be processed or, if that number exceeds the size of the length field, a predetermined location of a previously allocated storage area at which that number is stored.
    Type: Application
    Filed: February 18, 1998
    Publication date: September 13, 2001
    Inventors: IAN GIBSON, TIMOTHY MERRICK LONG, CHRISTOPHER AMIES
  • Publication number: 20010021970
    Abstract: The data processor for executing, instructions realized by wired logic, by a pipeline system, includes a plurality of instruction registers, and arithmetic operation units of the same number. A plurality of instructions read in the instruction registers in one machine cycle at a time are processed in parallel by the plurality of arithmetic operation units.
    Type: Application
    Filed: May 14, 2001
    Publication date: September 13, 2001
    Inventors: Takashi Hotta, Shigeya Tanaka, Hideo Maejima
  • Patent number: 6282635
    Abstract: An address translation memory stores a plurality of virtual address tags. The virtual address tags typically designate a portion of the virtual address space corresponding to a page of data stored in an intermediate storage device. A portion of an input virtual address is used to address the translation memory, and the resulting output virtual address tag is compared to a relevant portion of the input virtual address. If they match, then the requested data resides in the intermediate storage device, and an instruction issuing unit allows the instructions to continue issuing to an instruction pipeline as scheduled. However, if the virtual address tag does not match the relevant portion of the input virtual address, then it is assumed that a page fault might occur, and the instruction issuing unit inhibits the issuance of further instructions to the instruction pipeline.
    Type: Grant
    Filed: August 16, 1999
    Date of Patent: August 28, 2001
    Assignee: Intergraph Corporation
    Inventor: Howard G. Sachs
  • Publication number: 20010016900
    Abstract: Three parallel instruction processing pipelines of a microprocessor share two data memory ports for obtaining operands and writing back results. Since a significant proportion of the instructions of a typical computer program do not require reading operands from the memory, the probability is high that at least one of any three program instructions to be executed at the same time need not fetch an operand from memory. The two memory ports are thus connected at any given time with the two of the three pipelines which are processing instructions that require memory access, the pipeline without access to the memory processing an instruction that does not need it. To do so, the added third pipeline need not have all the same resources as the other two pipelines, so its stages are made to have a reduced capability in order to save space and reduce power consumption.
    Type: Application
    Filed: April 26, 2001
    Publication date: August 23, 2001
    Applicant: RISE TECHNOLOGY COMPANY
    Inventor: Kenneth K. Munson
  • Publication number: 20010016899
    Abstract: A data-processing device, in particular a network processor for processing layer 1 to 7 of protocol stacks in applications such as LAN, ATM switches, IP routers or frame relays which are based on DSL, Ethernet or cable modems. The processor has instruction buffers, instruction decoders, and instruction-execution units corresponding to a number of processes to be processed in parallel. A program flow control unit essentially controls the parallel processing.
    Type: Application
    Filed: January 12, 2001
    Publication date: August 23, 2001
    Inventor: Xiaoning Nie
  • Patent number: 6279101
    Abstract: A super-scalar microprocessor performs operations upon a plurality of instructions at each of its fetch, decode, execute, and write-back stages. To support such operations, the super-scalar microprocessor includes a dispatch arrangement including an instruction cache for fetching blocks of instructions including a plurality of instructions and an instruction decoder which decodes and dispatches the instructions to functional units for execution. The instruction decoder applies a dispatch criteria to selected instructions of each block of instructions and dispatches the selected instructions which satisfy the dispatch criteria. The dispatch criteria includes the requirement that the instructions be dispatched speculatively in order, that supporting operands be available for the execution of the instructions, or tagged values substituted that will be available later, and that the functional units required for executing the instructions be available.
    Type: Grant
    Filed: June 7, 1995
    Date of Patent: August 21, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, William M. Johnson
  • Publication number: 20010014940
    Abstract: Three parallel instruction processing pipelines of a microprocessor share two data memory ports for obtaining operands and writing back results. Since a significant proportion of the instructions of a typical computer program do not require reading operands from the memory, the probability is high that at least one of any three program instructions to be executed at the same time need not fetch an operand from memory. The two memory ports are thus connected at any given time with the two of the three pipelines which are processing instructions that require memory access, the pipeline without access to the memory processing an instruction that does not need it. To do so, the added third pipeline need not have all the same resources as the other two pipelines, so its stages are made to have a reduced capability in order to save space and reduce power consumption.
    Type: Application
    Filed: April 26, 2001
    Publication date: August 16, 2001
    Applicant: RISE TECHNOLOGY COMPANY
    Inventor: Kenneth K. Munson
  • Publication number: 20010014939
    Abstract: Three parallel instruction processing pipelines of a microprocessor share two data memory ports for obtaining operands and writing back results. Since a significant proportion of the instructions of a typical computer program do not require reading operands from the memory, the probability is high that at least one of any three program instructions to be executed at the same time need not fetch an operand from memory. The two memory ports are thus connected at any given time with the two of the three pipelines which are processing instructions that require memory access, the pipeline without access to the memory processing an instruction that does not need it. To do so, the added third pipeline need not have all the same resources as the other two pipelines, so its stages are made to have a reduced capability in order to save space and reduce power consumption.
    Type: Application
    Filed: April 26, 2001
    Publication date: August 16, 2001
    Applicant: RISE TECHNOLOGY COMPANY
    Inventor: Kenneth K. Munson
  • Patent number: 6272617
    Abstract: A system and method for performing register renaming of source registers in a processor having a variable advance instruction window for storing a group of instructions to be executed by the processor, wherein a new instruction is added to the variable advance instruction window when a location becomes available. A tag is assigned to each instruction in the variable advance instruction window. The tag of each instruction to leave the window is assigned to the next new instruction to be added to it. The results of instructions executed by the processor are stored in a temp buffer according to their corresponding tags to avoid output and anti-dependencies. The temp buffer therefore permits the processor to execute instructions out of order and in parallel. Data dependency checks for input dependencies are performed only for each new instruction added to the variable advance instruction window and register renaming is performed to avoid input dependencies.
    Type: Grant
    Filed: September 17, 1999
    Date of Patent: August 7, 2001
    Assignee: Seiko Epson Corporation
    Inventors: Trevor A. Deosaran, Sanjiv Garg, Kevin R. Iadonato
  • Patent number: 6272625
    Abstract: A multi-threaded digital versatile disc system which is controlled by a system thread includes an independent counter thread for controlling the counter parameters. Only the counter thread (and not the system thread) increments and decrements the counter parameters based on an input from the system clock. Counter parameters can be attached, or associated, with the counter thread and all associated counter parameters are incremented together by the thread. The counter thread has a semaphore and a queue associated with it and the counter thread remains dormant until woken up by the semaphore. The semaphore queue receives periodic messages from the system clock via a conventional operating system mechanism and periodically increments and decrements its associated counter parameters. Other threads, originating from this system or from another system, can also communicate with the counter thread by means of the queue by directing an event message to the operating system which places the message in the queue.
    Type: Grant
    Filed: October 8, 1997
    Date of Patent: August 7, 2001
    Assignee: Oak Technology, Inc.
    Inventor: Linden A. deCarmo
  • Patent number: 6266745
    Abstract: A method and system in a distributed shared-memory data processing system are disclosed for determining a utilization of each of a plurality of coupled processing nodes by one of a plurality of executed threads. The system includes a single operating system being executing simultaneously by a plurality of processors included within each of the processing nodes. The operating system processes one of the plurality of threads utilizing one of the plurality of nodes. During the processing, for each of the nodes, a quantity of times the one of the plurality of threads accesses a shared-memory included with each of the plurality of nodes is determined.
    Type: Grant
    Filed: September 4, 1998
    Date of Patent: July 24, 2001
    Assignee: International Business Machines Corporation
    Inventors: Philippe L. de Backer, Mark E. Dean, Ronald Lynn Rockhold
  • Patent number: 6266765
    Abstract: A system for issuing a family of instructions during a single clock includes a decoder for decoding the family of instructions and logic, responsive to the decode result, for determining whether resource conflicts would occur if the family were issued during one clock. If no resource conflicts occur, an execution unit executes the family regardless of whether dependencies among the instructions in the family exist.
    Type: Grant
    Filed: July 7, 2000
    Date of Patent: July 24, 2001
    Inventor: Robert W. Horst
  • Patent number: 6260133
    Abstract: An instruction fetch unit 10 issues a normal ALU operating instruction or a wide ALU operating instruction using two operating units to a first pipeline 14. The instruction fetch unit 10 also issues a normal ALU operating instruction to a second pipeline 16. Occasionally, a wide ALU operating instruction using both a first integer unit 20 and a second integer unit 24 to the first pipeline 14 while a normal ALU operating instruction using the second integer unit 24 to the second pipeline 16. In this case, if the normal ALU operating instruction is earlier, then the normal ALU operating instruction is executed preferentially. If the wide ALU operating instruction is earlier, then the wide ALU operating instruction is executed preferentially.
    Type: Grant
    Filed: February 8, 1999
    Date of Patent: July 10, 2001
    Assignee: Kabushiki Kaisha Toshiba
    Inventor: Tatsuo Teruyama
  • Patent number: 6256730
    Abstract: A multi-threaded digital versatile disc system which is controlled by a system thread includes an independent counter thread for controlling the counter parameters. Only the counter thread (and not the system thread) increments and decrements the counter parameters based on an input from the system clock. Counter parameters can be attached, or associated, with the counter thread and all associated counter parameters are incremented together by the thread. The counter thread has a semaphore and a queue associated with it and the counter thread remains dormant until woken up by the semaphore. The semaphore queue receives periodic messages from the system clock via a conventional operating system mechanism and periodically increments and decrements its associated counter parameters. Other threads originating from this system or from another system, can also communicate with the counter thread by means of the queue by directing an event message to the operating system which places the message in the queue.
    Type: Grant
    Filed: October 20, 1999
    Date of Patent: July 3, 2001
    Assignee: Oak Technology, Inc.
    Inventor: Linden A. deCarmo
  • Patent number: 6256726
    Abstract: The data processor for executing, instructions realized by wired logic, by a pipeline system, includes a plurality of instruction registers, and arithmetic operation units of the same number. A plurality of instructions read in the instruction registers in one machine cycle at a time are processed in parallel by the plurality of arithmetic operation units.
    Type: Grant
    Filed: November 20, 1992
    Date of Patent: July 3, 2001
    Assignee: Hitachi, Ltd.
    Inventors: Takashi Hotta, Shigeya Tanaka, Hideo Maejima