Superscalar Patents (Class 712/23)
  • Patent number: 6092177
    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: February 25, 1999
    Date of Patent: July 18, 2000
    Assignee: Tandem Computers Incorporated
    Inventor: Robert W. Horst
  • Patent number: 6092174
    Abstract: A dynamically reconfigurable distributed integrated circuit processor has at least one two-layer matrix in which a first layer has operative microcomputer modules (1) with local memory (2) grouped in computational clusters (5) and a second layer has a network of global communications connecting buses (7, 8) with packet decoders in coherence with the first layer. All components of the basic operating units are micro programmable and in universal communication selectively throughout separate operative microcomputer modules and throughout the computational clusters. Electrical conductivity of components is variable for select speed, timing and factors. A use method is described.
    Type: Grant
    Filed: June 1, 1998
    Date of Patent: July 18, 2000
    Assignee: Context, Inc.
    Inventor: Vladimir P. Roussakov
  • Patent number: 6092176
    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: February 19, 1999
    Date of Patent: July 18, 2000
    Assignee: Seiko Epson Corporation
    Inventors: Kevin R. Iadonato, Trevor A. Deosaran, Sanjiv Garg
  • Patent number: 6088788
    Abstract: The data processing system includes a plurality of execution units forming a plurality of processing pipelines. The plurality of processing pipelines process instructions and include a storage pipeline. The data processing system further includes an instruction unit and a storage control unit. The instruction unit outputs instructions to the plurality of execution units, and controls execution of multiple threads by the plurality of execution units. If an instruction for a first thread in the storage pipeline experiences a cache miss and the instruction unit decides to switch threads, the instruction unit begins processing a second thread. The instruction unit also issues a data request to the storage control unit to obtain the missing data. During processing of the second thread, unused slots will appear in the storage pipeline because it is not possible to always dispatch instructions to completely keep the pipelines filled.
    Type: Grant
    Filed: December 27, 1996
    Date of Patent: July 11, 2000
    Assignee: International Business Machines Corporation
    Inventors: John M. Borkenhagen, Richard J. Eickemeyer, Sheldon B. Levenstein, Andrew H. Wottreng, Duane A. Averill, James I. Brookhouser
  • Patent number: 6088789
    Abstract: A microprocessor is configured to execute a prefetch instruction specifying a cache line to be transferred into the microprocessor, as well as an access mode for the cache line. The microprocessor includes caches optimized for the access modes. In one embodiment, the microprocessor includes functional units configured to operate upon various data type. Each different type of functional unit may be connected to different caches which are optimized for the various access modes. The prefetch instruction may include a functional unit specification in addition to the access mode. In this manner, data of a particular type may be prefetched into a cache local to a particular functional unit.
    Type: Grant
    Filed: May 13, 1998
    Date of Patent: July 11, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6085306
    Abstract: A 32-bit instruction 50 is composed of a 4-bit format field 51, a 4-bit operation field 52, and two 12-bit operation fields 59 and 60. The 4-bit operation field 52 can only include (1) an operation code "cc" that indicates a branch operation which uses a stored value of the implicitly indicated constant register 36 as the branch address, or (2) a constant "const". The content of the 4-bit operation field 52 is specified by a format code provided in the format field 51.
    Type: Grant
    Filed: June 12, 1998
    Date of Patent: July 4, 2000
    Assignee: Matsushita Electric Industrial Co., Ltd
    Inventors: Shuichi Takayama, Nobuo Higaki
  • Patent number: 6085316
    Abstract: A layered counterflow pipeline structure is described in which sub-tasks performed at each stage in a counterflow pipeline processor are separated into different layers. As words flow through the counterflow pipeline processor, they are divided into partial words which are supplied to the different layers, GET, CHECK and PROCESS, for appropriate handling by that portion of each stage. In the GET layer, partial words passing through each stage are analyzed to determine whether they constitute an encounter pair. In the CHECK layer a determination is made as to whether the word selected by the GET layer requires further modification. Finally, in the PROCESS layer operations are performed on the words themselves based upon control messages from the other layers. The layers of the processor communicate with each other using suitable communication paths such as First In First Out registers.
    Type: Grant
    Filed: July 28, 1998
    Date of Patent: July 4, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ivan E. Sutherland, Charles E. Molnar, deceased, Ian W. Jones, William S. Coates, Jon Lexau
  • Patent number: 6085305
    Abstract: A processor including at least one execution unit generating out-of-order results and out-of-order condition codes. Precise architectural state of the processor is maintained by providing a results buffer having a number of slots and providing a condition code buffer having the same number of slots as the results buffer, each slot in the condition code buffer in one-to-one correspondence with a slot in the results buffer. Each live instruction in the processor is assigned a slot in the results buffer and the condition code buffer. Each speculative result produced by the execution units is stored in the assigned slot in the results buffer. When an instruction is retired, the results for that instruction are transferred to an architectural result register and any condition codes generated by that instruction are transferred to an architectural condition code register.
    Type: Grant
    Filed: June 25, 1997
    Date of Patent: July 4, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Arjun Prabhu
  • Patent number: 6085263
    Abstract: An improved I/O processor (IOP) delivers high I/O performance while maintaining inter-reference ordering among memory reference operations issued by an I/O device as specified by a consistency model in a shared memory multiprocessor system. The IOP comprises a retire controller which imposes inter-reference ordering among the operations based on receipt of a commit signal for each operation, wherein the commit signal for a memory reference operation indicates the apparent completion of the operation rather than actual completion of the operation. In addition, the IOP comprises a prefetch controller coupled to an I/O cache for prefetching data into cache without any ordering constraints (or out-of-order). The ordered retirement functions of the IOP are separated from its prefetching operations, which enables the latter operations to be performed in an arbitrary manner so as to improve the overall performance of the system.
    Type: Grant
    Filed: October 24, 1997
    Date of Patent: July 4, 2000
    Assignee: Compaq Computer Corp.
    Inventors: Madhumitra Sharma, Chester Pawlowski, Kourosh Gharachorloo, Stephen R. Van Doren, Simon C. Steely, Jr.
  • Patent number: 6085314
    Abstract: A CPU or microprocessor which includes a general purpose CPU component, such as an X86 core, and also includes a DSP core. In a first embodiment, the CPU receives general purpose instructions, such as X86 instructions, wherein certain X86 instruction sequences implement DSP functions. The CPU includes a processor mode register which is written with one or more processor mode bits to indicate whether an instruction sequence implements a DSP function. The CPU also includes an intelligent DSP function decoder or preprocessor which examines the processor mode bits and determines if a DSP function is being executed. If a DSP function is being implemented by an instruction sequence, the DSP function decoder converts or maps the opcodes to a DSP macro instruction that is provided to the DSP core. The DSP core executes one or more DSP instructions to implement the desired DSP function in response to the macro instruction.
    Type: Grant
    Filed: November 14, 1997
    Date of Patent: July 4, 2000
    Assignee: Advnced Micro Devices, Inc.
    Inventors: Saf Asghar, Andrew Mills
  • Patent number: 6081883
    Abstract: A scalable computer system has an interconnect bus providing communication links among a host processor and one or more function-specific processors, including a network processor (NP) and a file storage processor (FSP). The host processor provides a single interface to network administrators for maintaining the system. A bi-endian conversion system is provided to minimize a need for translating between big and little endian data types generated by diverse processors. The NP shares a single memory image with other processors and has a buffer memory for buffering requests from the network interfaces. The buffer memory has one or more segments which are dynamically allocatable to different processors. The FSP has a metadata cache for maintaining information on data being cached in the NP buffer memory. The FSP also has a write cache for buffering file write operations directed at disks.
    Type: Grant
    Filed: December 5, 1997
    Date of Patent: June 27, 2000
    Assignee: Auspex Systems, Incorporated
    Inventors: Paul Popelka, Tarun Kumar Tripathy, Richard Allen Walter, Paul Brian Del Fante, Murali Sundaramoorthy Repakula, Lakshman Narayanaswamy, Donald Wayne Sterk, Amod Prabhakar Bodas, Leslie Thomas McCutcheon, Daniel Murray Jones, Peter Kingsley Craft, Clive Mathew Philbrick, David Allan Higgen, Edward John Row
  • Patent number: 6076159
    Abstract: A data processor is disclosed which comprises a first pipeline for decoding and executing data instructions, a second pipeline for decoding and executing address instructions, a unit for issuing multiple instructions to the pipelines, a first set of registers being coupled with the first pipeline, and a second set of registers being coupled with the second pipeline, wherein first and second pipeline process data in parallel.
    Type: Grant
    Filed: September 12, 1997
    Date of Patent: June 13, 2000
    Assignee: Siemens Aktiengesellschaft
    Inventors: Rod G. Fleck, Ole H. Moller, Gigy Baror
  • Patent number: 6076153
    Abstract: The invention, in one embodiment, is a method for committing the results of at least two speculatively executed instructions to an architectural state in a superscalar processor. The method includes determining which of the speculatively executed instructions encountered a problem in execution, and replaying the instruction that encountered the problem in execution while retaining the results of executing the instruction that did not encounter the problem.
    Type: Grant
    Filed: December 24, 1997
    Date of Patent: June 13, 2000
    Assignee: Intel Corporation
    Inventors: Edward T. Grochowski, Derrick C. Lin
  • Patent number: 6076157
    Abstract: A system and method for performing computer processing operations in a data processing system includes a multithreaded processor and thread switch logic. The multithreaded processor is capable of switching between two or more threads of instructions which can be independently executed. Each thread has a corresponding state in a thread state register depending on its execution status. The thread switch logic contains a thread switch control register to store the conditions upon which a thread will occur. The thread switch logic has a time-out register which forces a thread switch when execution of the active thread in the multithreaded processor exceeds a programmable period of time. Thread switch logic also has a forward progress count register to prevent repetitive thread switching between threads in the multithreaded processor. Thread switch logic also is responsive to a software manager capable of changing the priority of the different threads and thus superseding thread switch events.
    Type: Grant
    Filed: October 23, 1997
    Date of Patent: June 13, 2000
    Assignee: International Business Machines Corporation
    Inventors: John Michael Borkenhagen, Richard James Eickemeyer, William Thomas Flynn, Andrew Henry Wottreng
  • Patent number: 6070221
    Abstract: An interrupt controller comprises a plurality of interrupt handling elements that are given different identification numbers for identification to which priorities are assigned. A first priority encoder accepts a plurality of level signals which are given different level numbers respectively representing the priorities assigned to the identification numbers, and then encodes the level number assigned to the highest-priority level signal included among all level signals at a low potential so as to generate an interrupt level number representing the encoded level number.
    Type: Grant
    Filed: August 13, 1998
    Date of Patent: May 30, 2000
    Assignee: Mitsubishi Denki Kabushiki Kaisha
    Inventor: Kazuo Nakamura
  • Patent number: 6070238
    Abstract: One aspect of the invention relates to a super scalar processor having a memory which as addressable with respect to the combination of a page address and a page offset address, and provides a method for detecting an overlap condition between a present instruction and a previously executed instruction, the previously executed instruction being executed prior to execution of the present instruction. In one embodiment, the method comprises the steps of dividing the present instruction into a plurality of aligned memory accesses; determining the page offset for at least one of the aligned accesses; and comparing the page offset and byte count for the present instruction to a page offset and byte count for the previously executed instruction.
    Type: Grant
    Filed: September 11, 1997
    Date of Patent: May 30, 2000
    Assignee: International Business Machines Corporation
    Inventors: Kurt Alan Feiste, John Stephen Muhich, Steven Wayne White
  • Patent number: 6070235
    Abstract: A data processing system includes logic to ensure result data stored in a history buffer is in a correct chronological order and is not overwritten until an appropriate point in time. The logic also ensures that the history buffer is able to capture result data that is produced with unexpected delays. The history buffer entries act as a "backup" for an architected register by storing older result data and rely on unique target identifiers assigned to dispatched instructions to keep the result data in a correct chronological order. Furthermore, a target identifier field of the architected register holds the latest target identifier assigned to a youngest instruction that modifies the architected register. Additionally, previous result data in the register is backed up in an allocated history buffer entry. If the result data is not yet available, the target identifier in the register will be deposited in the target identifier field of the history buffer entry.
    Type: Grant
    Filed: July 14, 1997
    Date of Patent: May 30, 2000
    Assignee: International Business Machines Corporation
    Inventors: Hoichi Cheong, Hung Qui Le
  • Patent number: 6065112
    Abstract: Along with an arithmetic processing unit and an arithmetic execution unit, another arithmetic processing unit is coupled in parallel to an instruction issue unit. Disposed within one of the arithmetic processing units are an address generation unit, an instruction buffer, an instruction decoder, an arithmetic execution unit, a data memory, and a flag register. The instruction decoder decodes an instruction read from the instruction buffer. If the decoded instruction is an iteration start instruction, the instruction decoder extracts a number of times an iterative process is to be executed that is included in the instruction for forwarding to the address generation unit. The address generation unit exerts control as to the execution and termination of iterative processes.
    Type: Grant
    Filed: June 17, 1998
    Date of Patent: May 16, 2000
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Takeshi Kishida, Masaitsu Nakajima
  • Patent number: 6065103
    Abstract: A speculative store buffer is speculatively updated in response to speculative store memory operations buffered by a load/store unit in a microprocessor. Instead of performing dependency checking for load memory operations among the store memory operations buffered by the load/store unit, the load/store unit may perform a lookup in the speculative store buffer. If a hit is detected in the speculative store buffer, the speculative state of the memory location is forwarded from the speculative store buffer. The speculative state corresponds to the most recent speculative store memory operation, even if multiple speculative store memory operations are buffered by the load/store unit. Since dependency checking against the memory operation buffers is not performed, the dependency checking limitations as to the size of these buffers may be eliminated.
    Type: Grant
    Filed: December 16, 1997
    Date of Patent: May 16, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, Rupaka Mahalingaiah
  • Patent number: 6065115
    Abstract: A microprocessor for efficient processing of instructions in a program flow including a conditional program flow control instruction, such as a branch instruction. The conditional program flow control instruction targets a first code section to be processed if the condition is resolved to be met, and a second code section to be processed if the condition is resolved to be not met. A fetch unit fetches instructions to be processed and branch prediction logic coupled to the fetch unit predicts the resolution of the condition. The branch prediction logic of the invention also determines whether resolution of the condition is unlikely to be predicted accurately. Stream management logic responsive to the branch prediction logic directs speculative processing of instructions from both the first and second code sections prior to resolution of the condition if resolution of the condition is unlikely to be predicted accurately.
    Type: Grant
    Filed: April 10, 1998
    Date of Patent: May 16, 2000
    Assignee: Intel Corporation
    Inventors: Harshvardhan P. Sharangpani, Gary N. Hammond, Hans J. Mulder, Judge K. Arora
  • Patent number: 6065105
    Abstract: In a microprocessor, an instruction scheduler 30 includes a dependency matrix 36 and a waiting buffer 34. A dependency determination unit 32 receives instructions to be executed, forwards the instructions to the waiting buffer 34, determines if any dependency exists between the instructions, and forwards the dependency information to the dependency matrix 36 in the form of a dependency vector 40. The dependency matrix 36 periodically determines whether any of the instructions contained in the waiting buffer 34 are ready to be executed, that is, no dependencies exist for that instruction. As each instruction is dispatched for execution from the waiting buffer 34, the dependency vector 40 for all dependent instructions is cleared for subsequent execution. In this manner, an out-of-order processing scheme is implemented that efficiently accounts for data dependency between processed instructions.
    Type: Grant
    Filed: January 8, 1997
    Date of Patent: May 16, 2000
    Assignee: Intel Corporation
    Inventors: Nazar Zaidi, Gary Hammond, Ken Shoemaker, Jeff Baxter
  • Patent number: 6061785
    Abstract: An apparatus for condition register (CR) renaming and methods of using the same are implemented. In a central processing unit (CPU) having a pipelined architecture, logical operations on CR operands may be executed out-of-order using the CR renaming mechanism. Any instruction that updates the CR data has an associated instruction identifier (IID) stored in a register. Subsequent condition register logical (LCR) instructions that use data in the CR use the stored IID to determine when the CR data has been updated by the execution of the instruction corresponding to the stored IID. When an instruction causing a CR data value update finishes executing, the updated data is obtained by snooping the finish bus of the corresponding execution unit. In this way, these instructions can obtain CR data prior to completion of the preceding instructions.
    Type: Grant
    Filed: February 17, 1998
    Date of Patent: May 9, 2000
    Assignee: International Business Machines Corporation
    Inventors: Kevin Arthur Chiarot, A. James Van Norstrand, Jr., David Andrew Schroter
  • Patent number: 6061777
    Abstract: One aspect of the invention relates to a method for operating a processor. In one version of the invention, the method includes the steps of dispatching an instruction; determining a presently architected RMAP entry for the architectural register targeted by the dispatched instruction; selecting the RMAP entries which are associated with physical registers that contain operands for the dispatched instruction; updating a use indicator in the selected RMAP entries; determining whether the dispatched instruction is interruptible; and updating an architectural indicator and a historical indicator in the presently architected RMAP entry if the dispatched instruction is uninterruptible.
    Type: Grant
    Filed: October 28, 1997
    Date of Patent: May 9, 2000
    Assignee: International Business Machines Corporation
    Inventors: Hoichi Cheong, Paul Joseph Jordan, Hung Qui Le, Soummya Mallick
  • Patent number: 6058465
    Abstract: A vector processor architecture provides vector registers of fixed size having data elements of programmable size and type. The type and size for data elements are defined by instructions which manipulate operands associated with the vector registers. The data size defined by an instruction determines the number of the data elements in a vector register and the number of parallel operations performed to complete the instruction. One embodiment of the invention supports 8-bit, 9-bit, 16-bit, and 32-bit data element sizes of integer type for all sizes and floating point data type for the 32-bit data elements.
    Type: Grant
    Filed: August 19, 1996
    Date of Patent: May 2, 2000
    Inventor: Le Trong Nguyen
  • Patent number: 6058466
    Abstract: A system of executing coded instructions in a dynamically configurable multiprocessor having shared execution resources including steps of placing a first processor in an active state upon booting of the multiprocessor. In response to a processor create command, a second processor is placed in an active state. When either the first or second processor encounter a cache miss that has to be serviced by off-chip cache the processor requiring service is placed in nap state in which instruction fetching for that processor is disabled. When either the first or second processor encounter a cache miss that has to be serviced by main memory, the processor requiring services is placed in a sleep state by flushing all instructions from the processor in the sleep state and disabling instruction fetching for the processor in the sleep state.
    Type: Grant
    Filed: June 24, 1997
    Date of Patent: May 2, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Joseph I. Chamdani
  • Patent number: 6049864
    Abstract: A method for scheduling a flag generating instruction and a subsequent instruction. The subsequent instruction has a data dependency on the flag generating instruction. The flag generating instruction is translated into first and second instructions. The subsequent instruction is translated into at least a third instruction. The first instruction, when executed, generates a result and intermediate flag generation data. The second instruction, when executed, generates a plurality of flags. The first instruction is scheduled to execute before the second and third instructions. The second instruction is scheduled to execute before the third instruction if the third instruction has a data dependency on the second instruction, otherwise the third instruction may be scheduled to execute before the second instruction.
    Type: Grant
    Filed: August 20, 1996
    Date of Patent: April 11, 2000
    Assignee: Intel Corporation
    Inventors: Kin-Yip Liu, Ken Shoemaker, Gary Hammond, Anand Pai, Krishna Yellamilli
  • Patent number: 6047367
    Abstract: A system and method for improving microprocessor computer system out of order support via register management with synchronization of multiple pipelines and providing for processing a sequential stream of instructions in a computer system having a first and a second processing element, each of the processing elements having its own state determined by a setting of its own general purpose and control registers. When at any point in the processing of said sequential stream of instructions by said first processing element it becomes beneficial to have the second processing element begin continued processing of the same sequential instruction stream then the first and second processing elements process the sequential stream of instructions and may be executing the very same instruction but only one of said processing elements is permitted to change the overall architectural state of said computer system which is determined by a combination of the states of said first and second processing elements.
    Type: Grant
    Filed: January 20, 1998
    Date of Patent: April 4, 2000
    Assignee: International Business Machines Corporation
    Inventor: Thomas J. Heller, Jr.
  • Patent number: 6047369
    Abstract: A mechanism and method for renaming flags within a register alias table ("RAT") to increase processor parallelism and also providing and using flag masks associated with individual instructions. In order to reduce the amount of data dependencies between instructions that are concurrently processed, the flags used by these instructions are renamed. In general, a RAT unit provides register renaming to provide a larger physical register set than would ordinarily be available within a given macroarchitecture's logical register set (such as the Intel architecture or PowerPC or Alpha designs, for instance) to eliminate false data dependencies between instructions that reduce overall superscalar processing performance for the microprocessor. The renamed flag registers contain several flag bits and various flag bits may be updated or read by different instructions.
    Type: Grant
    Filed: February 28, 1994
    Date of Patent: April 4, 2000
    Assignee: Intel Corporation
    Inventors: Robert P. Colwell, Andrew F. Glew, Atiq A. Bajwa, Glenn J. Hinton, Michael A. Fetterman
  • Patent number: 6044449
    Abstract: A register system for a data processor which operates in a plurality of modes. The register system provides multiple, identical banks of register sets, the data processor controlling access such that instructions and processes need not specify any given bank. An integer register set includes first (RA[23:0]) and second (RA[31:24]) subsets, and a shadow subset (RT[31:24]). While the data processor is in a first mode, instructions access the first and second subsets. While the data processor is in a second mode, instructions may access the first subset, but any attempts to access the second subset are re-routed to the shadow subset instead, transparently to the instructions, allowing system routines to seemingly use the second subset without having to save and restore data which user routines have written to the second subset. A re-typable register set provides integer width data and floating point width data in response to integer instructions and floating point instructions, respectively.
    Type: Grant
    Filed: November 10, 1998
    Date of Patent: March 28, 2000
    Assignee: Seiko Epson Corporation
    Inventors: Sanjiy Garg, Derek J. Lentz, Le Trong Nguyen, Sho Long Chen
  • Patent number: 6038654
    Abstract: A high-performance, superscalar-based computer system with out-of-order instruction execution for enhanced resource utilization and performance throughput. The computer system fetches a plurality of fixed length instructions with a specified, sequential program order (in-order). The computer system includes an instruction execution unit including a register file, a plurality of functional units, and an instruction control unit for examining the instructions and scheduling the instructions for out-of-order execution by the functional units. The register file includes a set of temporary data registers that are utilized by the instruction execution control unit to receive data results generated by the functional units. The data results of each executed instruction are stored in the temporary data registers until all prior instructions have been executed, thereby retiring the executed instructions in-order.
    Type: Grant
    Filed: June 23, 1999
    Date of Patent: March 14, 2000
    Assignee: Seiko Epson Corporation
    Inventors: Le Trong Nguyen, Derek J. Lentz, Yoshiyuki Miyayama, Sanjiv Garg, Yasuaki Hagiwara, Johannes Wang, Te-Li Lau, Sze-Shun Wang, Quang H. Trang
  • Patent number: 6038653
    Abstract: The high-performance, RISC core based microprocessor architecture includes an instruction fetch unit for fetching instruction sets from an instruction store and an execution unit that implements the concurrent execution of a plurality of instructions through a parallel array of functional units. The fetch unit generally maintains a predetermined number of instructions in an instruction buffer. The execution unit includes an instruction selection unit, coupled to the instruction buffer, for selecting instructions for execution, and a plurality of functional units for performing instruction specified functional operations. A unified instruction scheduler, within the instruction selection unit, initiates the processing of instructions through the functional units when instructions are determined to be available for execution and for which at least one of the functional units implementing a necessary computational function is available.
    Type: Grant
    Filed: September 22, 1998
    Date of Patent: March 14, 2000
    Assignee: Seiko Epson Corporation
    Inventors: Le Trong Nguyen, Derek J. Lentz, Yoshiyuki Miyayama, Sanjiv Garg, Yasuaki Hagiwara, Johannes Wang, Te-Li Lau, Sze-Shun Wang, Quang H. Trang
  • Patent number: 6035393
    Abstract: A computer system includes an instruction prefetching mechanism that detects whether an instruction to be prefetched is located in a region of memory that is uncacheable. To perform an instruction prefetch, an instruction fetch unit (IFU) receives an instruction pointer indicating a memory location containing an instruction to be prefetched. The instruction pointer may be provided by a branch target buffer (BTB) as a result of a branch prediction, or by auxiliary branch prediction mechanisms, or actual execution. The IFU accesses an instruction translation look-aside buffer (ITLB) to determine both the physical address corresponding to the linear address of the instruction pointer and to determine an associated memory type stored therein. If the memory type indicates an uncacheable memory location, the IFU waits until all previous executed instructions have completed. The IFU does this by inserting a "permission-to-fetch" instruction, and then stalling.
    Type: Grant
    Filed: May 7, 1998
    Date of Patent: March 7, 2000
    Assignee: Intel Corporation
    Inventors: Andrew F. Glew, Ashwani Gupta
  • Patent number: 6032251
    Abstract: A computer system including a microprocessor employing 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: May 13, 1998
    Date of Patent: February 29, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, David B. Witt
  • Patent number: 6032252
    Abstract: A superscalar microprocessor implements a repeated string instruction by putting the microcode unit in a continuous loop. The microcode sequence that implements the repeated string operation includes a conditional-exit instruction rather than a conditional branch and decrement microcode instruction. A conditional-exit instruction decrements a loop count value and conveys a termination signal to a microcode unit when a termination condition is detected. Because several iterations of the instructions that implement the string instruction may be dispatched before the conditional-exit instruction is evaluated, the additional iterations of the microcode loop are canceled. By eliminating the conditional branch and decrement microcode instruction, a loop iteration may be executed in a single clock cycle by three functional units.
    Type: Grant
    Filed: October 28, 1997
    Date of Patent: February 29, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Anthony M. Petro, Brian D. McMinn
  • Patent number: 6032245
    Abstract: In the system bus controller of a multi-processor system, apparatus is provided for selecting one of the processors to handle an interrupt. A mask is provided for each respective task being executed on each one of the processors. Each mask includes a speculation bit identifying whether the task is speculative. Each mask includes a plurality of class enable bits identifying whether the task can be interrupted by a respective class of interrupts associated with each of the plurality of class enable bits. Control lines in the system bus receive an interrupt having a received interrupt class. A subset of the processors is identified; processors in the subset can be interrupted by the received interrupt based on the received interrupt class and the respective speculation bit and class enable bits assigned to the task being executed on each respective processor. A Boolean AND operation is performed on the mask associated with the respective task executing on each processor.
    Type: Grant
    Filed: August 18, 1997
    Date of Patent: February 29, 2000
    Assignee: International Business Machines Corporation
    Inventors: Christos John Georgiou, Daniel A. Prener
  • Patent number: 6032244
    Abstract: The present invention features a computer with a mechanism for implementing precise interrupts for statically speculated instructions. One or more assumptions are generated, and all instructions in each assumption are tagged identically and statically scheduled on a speculative basis. An instruction is then modified or inserted at one or more decision points prior to the point at which the instruction was speculated. The decision points may be positive ones (the instructions scheduled under that assumption have succeeded) or negative ones (the instructions scheduled under that assumption have failed), or both. A decision point may be positive for one assumption and negative for another assumption. Static speculation may be performed down both sides of branches and may be performed simultaneously for multiple, independent paths. Efficient restart can also be effected.
    Type: Grant
    Filed: January 4, 1993
    Date of Patent: February 29, 2000
    Assignee: Cornell Research Foundation, Inc.
    Inventor: Mayan Moudgill
  • Patent number: 6029240
    Abstract: A digital computer system capable of processing two or more computer instructions in parallel and having a cache storage unit for temporarily storing machine-level computer instructions in their journey from a higher-level storage unit of the computer system to the functional units which process the instructions. The computer system includes an instruction compounding unit located intermediate to the higher-level storage unit and the cache storage unit for analyzing the instructions and generating for to each instruction a compounding information which indicates whether or not that instruction may be processed in parallel with one or more neighboring instructions in the instruction stream. These tagged instructions are then stored in the cache unit with the compounding information. The computer system further includes a plurality of functional instruction processing units which operate in parallel with one another. The instructions supplied to these functional units are obtained from the cache storage unit.
    Type: Grant
    Filed: May 30, 1995
    Date of Patent: February 22, 2000
    Assignee: International Business Machines Corporation
    Inventors: Bartholomew Blaner, Stamatis Vassiliadis
  • Patent number: 6026482
    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: February 16, 1999
    Date of Patent: February 15, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, Thang M. Tran
  • Patent number: 6026486
    Abstract: A 32-bit processor control unit receives from a memory an instruction. The control unit then determines whether the received instruction is intended for a 32-bit processor or for a 16-bit processor. If the received instruction is analyzed to be a 32-bit processor instruction, the control unit controls the 32-bit processor with the aid of two 16-bit instruction control units. If the received instruction is a 16-bit processor instruction, the 32-bit processor control unit sends a 16-bit processor mode signal to each of the 16-bit instruction control units. One of the two 16-bit instruction control units controls one of two 16-bit processors which are divisions of the 32-bit processor while the other 16-bit instruction control unit controls the other 16-bit processor. The present invention makes it possible to have a single, wide bitwidth processor serve as a plurality of narrow bitwidth processors depending upon the type of processing.
    Type: Grant
    Filed: May 20, 1997
    Date of Patent: February 15, 2000
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Hisashi Kodama, Kunitoshi Aono
  • Patent number: 6021489
    Abstract: A microprocessor that includes first and second Instruction Fetch Units (IFU) coupled therebetween is provided. The first IFU implements a first Instruction Set Architecture (ISA). The second IFU implements a second ISA. The microprocessor further includes a shared branch prediction unit coupled to the first and second IFU. The shared branch prediction unit stores prediction-related information. In the same paragraph, the present invention also provides a method of performing branch prediction. According to this method, an instruction pointer is provided to a branch prediction unit that stores information shared by first and second IFU. The instruction pointer is generated by one of the first and second IFU that is active. Determination is made of whether an instruction corresponding to the instruction pointer, provided to the branch prediction unit, is a branch instruction, and if so, it is determined if a branch is predicted taken.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: February 1, 2000
    Assignee: Intel Corporation
    Inventor: Mircea Poplingher
  • Patent number: 6021484
    Abstract: A system and method for executing CISC instructions in a RISC environment are disclosed. A mapper/interface circuit receives CISC instructions which can be from an x86 instruction set, translates them into compatible RISC instructions and forwards them to a RISC microprocessor for execution. The interface circuit is separate from the RISC microprocessor resulting in off-chip hardware translation which improves microprocessor efficiency and simplifies processor and hardware development. The instructions can be translated in groups which are defined by boundaries in the CISC instructions. One group of instructions can be forwarded to the microprocessor for execution while a subsequent group is simultaneously translated. The plug-in mapper/interface circuitry of the invention is plug compatible with an x86 processor such that the circuitry of the invention can be plugged into a standard x86 socket in a standard x86 mother board.
    Type: Grant
    Filed: November 14, 1997
    Date of Patent: February 1, 2000
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Sung Bae Park
  • Patent number: 6021488
    Abstract: An FPSCR (Floating Point Status and Control Register) mechanism supports out-of-order floating point unit instruction execution. The FPSCR mechanism provides appropriate reporting of exceptions to a re-order buffer implemented within a data processing system to allow precise interrupts during out-of-order instruction execution. Additionally, the FPSCR mechanism allows for the retention of the appropriate status and control history information in an FPSCR rename buffer to allow the floating points status and control register to be maintained as though instructions were being executed in order. Additionally, the FPSCR mechanism generates the FPSCR's sticky exception status in concordance with reporting appropriate status to the previously mentioned re-order buffer and saving history into the FPSCR rename buffer.
    Type: Grant
    Filed: September 23, 1997
    Date of Patent: February 1, 2000
    Assignee: International Business Machines Corp.
    Inventors: Susan Elizabeth Eisen, James Edward Phillips
  • Patent number: 6021486
    Abstract: A data processing device having an apparatus to execute operations out-of-order. The apparatus having an execution unit to execute the set of operations out-of-order. The execution unit, upon executing an operation that generates a first exception, continues to execute operations out-of-order, to avoid deadlock, until an operation of a first type is to be executed. The execution unit flushes a pipeline once the operation of the first type is to be executed.
    Type: Grant
    Filed: September 30, 1997
    Date of Patent: February 1, 2000
    Assignee: Intel Corporation
    Inventor: Michael James Morrison
  • Patent number: 6016541
    Abstract: A general-purpose register address output from an instruction register is read and changed to a corresponding register update buffer address in an update table. Additionally, the update reservation instructing bit corresponding to the general-purpose register address is read out from a register update reservation table. If its value is "0", the general-purpose register address is provided to the general-purpose register, and the data stored at that address is input to an arithmetic unit. If the value of the bit is "1", the contents of the corresponding entry in the update table is registered to a reservation station. The reservation station determines the execution order of respective entries, and sequentially provides a register update buffer address to a register update buffer, and inputs the data stored at that address to the arithmetic unit.
    Type: Grant
    Filed: March 17, 1998
    Date of Patent: January 18, 2000
    Assignee: Fujitsu Limited
    Inventors: Kyoko Tashima, Takeo Asakawa, Aiichiro Inoue
  • Patent number: 6016542
    Abstract: An apparatus is provided that operates in conjunction with a processor having registers and associated caches and a memory. A load management module monitors loads that return data to the registers, including bus requests generated in response to loads that miss in one or more of the caches. A cache miss register includes entries, each of which is associated with one of the registers. A mapping module maps a bus request to a register and sets a bit in a cache miss register entry associated with the register when the bus request is directed to a higher level structure in the memory system.
    Type: Grant
    Filed: December 31, 1997
    Date of Patent: January 18, 2000
    Assignee: Intel Corporation
    Inventors: Robert Steven Gottlieb, Michael Paul Corwin
  • Patent number: 6016545
    Abstract: A microprocessor stores cache-line-related data (e.g. branch predictions or predecode data, in the illustrated embodiments) in a storage which includes fewer storage locations than the number of cache lines in the instruction cache. Each storage location in the storage is mappable to multiple cache lines, any one of which can be associated with the data stored in the storage location. The storage may thereby be smaller than a storage which provides an equal number of storage locations as the number of cache lines in the instruction cache. Access time to the storage may be reduced, therefore providing for a higher frequency implementation. Still further, semiconductor substrate area occupied by the storage may be decreased. In one embodiment, the storage is indexed by a subset of the index bits used to index the instruction cache. The subset comprises the least significant bits of the cache index.
    Type: Grant
    Filed: December 16, 1997
    Date of Patent: January 18, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rupaka Mahalingaiah, Andrew McBride, Thang M. Tran
  • Patent number: 6014734
    Abstract: A microprocessor is provided which is configured to predict return addresses for return instructions according to a return stack storage included therein. The return stack storage is a stack structure configured to store return addresses associated with previously detected call instructions. Return addresses may be predicted for return instructions early in the instruction processing pipeline of the microprocessor. In one embodiment, the return stack storage additionally stores a call tag and a return tag with each return address. The call tag and return tag respectively identify call and return instructions associated with the return address. These tags may be compared to a branch tag conveyed to the return prediction unit upon detection of a branch misprediction. The results of the comparisons may be used to adjust the contents of the return stack storage with respect to the misprediction. The microprocessor may continue to predict return addresses correctly following a mispredicted branch instruction.
    Type: Grant
    Filed: September 15, 1998
    Date of Patent: January 11, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, Rupaka Mahalingaiah
  • Patent number: 6009509
    Abstract: A method and system in a superscalar data processing system are disclosed for the temporary designation and utilization of a plurality of physical registers as a stack. For each of the multiple instructions to be processed during a single clock cycle by the data processing system, a determination is made whether each of the instructions is a particular type of instruction. If a determination is made that an instruction is a particular type of instruction, a quantity of physical registers to be temporarily designated as a stack is determined utilizing the instruction. A second plurality of physical registers available to be utilized as a stack are determined whether the second plurality of the quantity. The second plurality of physical registers are then temporarily designated and utilized as a stack.
    Type: Grant
    Filed: October 8, 1997
    Date of Patent: December 28, 1999
    Assignee: International Business Machines Corporation
    Inventors: Wan Lin Leung, Thomas Basilio Genduso
  • Patent number: 6009506
    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: April 10, 1998
    Date of Patent: December 28, 1999
    Assignee: Tandem Computers Incorporated
    Inventors: Robert L. Jardine, Shannon J. Lynch, Philip R. Manela, Robert W. Horst
  • Patent number: 6006300
    Abstract: A multimedia terminal for processing multimedia signals having a host processor, latency, jitter insensitive and latency, jitter sensitive devices, and an isolation device between the latency and jitter insensitive devices and the latency and jitter sensitive devices operative to pass only low bandwidth signals is provided.
    Type: Grant
    Filed: August 1, 1997
    Date of Patent: December 21, 1999
    Assignee: International Business Machines Corporation
    Inventor: Roger P. Toutant