Evaluation Of Multiple Conditions Or Multiway Branching Patents (Class 712/236)
  • Publication number: 20020184479
    Abstract: A circuit arrangement and method facilitate the execution of switch instructions such as Java lookupswitch and tableswitch instructions in hardware through emulation of such instructions using a plurality of conditional branch instructions from the same instruction set as the switch instructions, and which are capable of being directly implemented in hardware. The conditional branch instructions are typically generated by switch instruction handling logic and passed to execution logic capable of natively executing the conditional branch instructions. By emulating a complex switch instruction in switch instruction handling logic using a plurality of conditional branch instructions from the same instruction set, often the amount of custom circuitry needed to fully support a complex switch instruction is substantially reduced from what would be required to natively support the switch instruction in the execution logic of a hardware processor.
    Type: Application
    Filed: March 9, 2001
    Publication date: December 5, 2002
    Applicant: Koninklijke Philips Electronics N.V.
    Inventors: Bonnie C. Sexton, Loren B. Reiss
  • Patent number: 6457120
    Abstract: A superscalar processor and method are disclosed for improving the accuracy of predictions of a destination of a branch instruction utilizing a cache. The cache is established including multiple entries. Each of multiple branch instructions are associated with one of the entries of the cache. One of the entries of the cache includes a stored predicted destination for the branch instruction associated with this entry of the cache. The predicted destination is a destination the branch instruction is of predicted to branch to upon execution of the branch instruction. The stored predicted destination is updated in the one of the entries of the cache only in response to two consecutive mispredictions of the destination of the branch instruction, wherein the two consecutive mispredictions were made utilizing the one of the entries of the cache.
    Type: Grant
    Filed: November 1, 1999
    Date of Patent: September 24, 2002
    Assignee: International Business Machines Corporation
    Inventor: Balaram Sinharoy
  • Patent number: 6449714
    Abstract: Each of plural rows in an aligned Instruction cache (AIC) contains a plurality of aligned sectors, each sector having space for a block of sequentially-addressed instructions in an executing program. A “fetch history table” (FHT) contains FHT sets of FHT entries for specifying execution sequences of the sectors in associated AIC rows. Each FHT entry in a FHT set specifies an AIC row and a sector sequence arrangement to be outputted from that row. In this manner, each FHT entry can associate itself with any row in the AIC and is capable of specifying any output order among the sectors in its associated row. Unique fields are selected in each instruction address for locating an associated FHT set, and for associating the instruction address with an AIC sector through a unique “sector distribution table” (SDT) to locate the sector which starts with the instruction having this instruction address.
    Type: Grant
    Filed: August 16, 1999
    Date of Patent: September 10, 2002
    Assignee: International Business Machines Corporation
    Inventor: Balaram Sinharoy
  • Patent number: 6446196
    Abstract: A method, apparatus and computer program product are provided including one-of and one-of-and-jump instructions for use with processing data communications in a communications system. A one-of instruction is evaluated. Responsive to the one-of instruction control, a next instruction pointer is generated. A one-of-and-jump instruction is evaluated. Responsive to the one-of-and-jump instruction control, a first next instruction pointer and a second next instruction pointer are generated. The second next instruction pointer is a destination instruction pointer for the one-of-and-jump instruction.
    Type: Grant
    Filed: February 17, 1999
    Date of Patent: September 3, 2002
    Assignee: International Business Machines Corporation
    Inventor: Albert Alfonse Slane
  • Publication number: 20020112149
    Abstract: A data processor executes an instruction (JAVASW) to implement efficient interpreter functionality by combining the tasks of table jumps and thread or task switching which is controlled by a running value such as a counter or a timer. Execution of the instruction always requires a change of flow to be taken. In one form, the instruction may cause a hardware accelerator to be signaled to complete instruction execution. Additionally, a memory table containing emulation code correlated to specific byte codes may be compressed for a large number of identified byte codes by the use of separate storage. Further, use of a same portion of the memory table may occur in connection with execution of different bytecodes. While discussed in the context of Java bytecodes, the instruction is applicable to any programming language and processor architecture.
    Type: Application
    Filed: February 9, 2001
    Publication date: August 15, 2002
    Inventor: William C. Moyer
  • Patent number: 6427206
    Abstract: A microprocessor is disclosed. The microprocessor includes a branch prediction table that has at least one branch entry. The at least one branch entry includes a prediction field to indicate whether a branch is predicted taken. The at least one branch entry also includes a history register that stores history information. Moreover, the branch prediction table includes a prediction update logic that updates the prediction field and the history register except when a branch is strongly predicted statically.
    Type: Grant
    Filed: May 3, 1999
    Date of Patent: July 30, 2002
    Assignee: Intel Corporation
    Inventors: Tse-Yu Yeh, Mitchell Alexander Poplingher, Monis Rahman
  • Publication number: 20020083311
    Abstract: A method and computer program for extracting and combining arithmetic flags utilized in the processing multiple data items in a single instruction multiple data (SIMD) capable processor. In a SIMD processor several pieces of data may be manipulated by the same instruction at any given moment. However, the results for the execution of this instruction vary according to the data being manipulated. The method and computer program allows a simple mechanism in which these arithmetic flags maybe extracted and combined so as to maximize processor efficiency while saving space, reducing power requirements and heat generated by the processor.
    Type: Application
    Filed: December 27, 2000
    Publication date: June 27, 2002
    Inventor: Nigel C. Paver
  • Patent number: 6381691
    Abstract: A method is provided for scheduling instructions for execution along multiple paths in a Computer processing system implementing out-of-order execution. The method includes the step of selecting and moving a next instruction from its current position in a sequence of instructions to an earlier position. It is determined whether the selected instruction may reference a memory location for read-access. It is determined whether the selected instruction was previously moved over a non-selected instruction which may ambiguously reference the memory location, when the selected instruction may reference the memory location for read-access. It is determined whether the selected instruction was previously moved over a branch instruction, when the selected instruction was previously moved over the non-selected instruction. A record of the selected instruction is stored for future reference, when the selected instruction was previously moved over the branch instruction.
    Type: Grant
    Filed: August 13, 1999
    Date of Patent: April 30, 2002
    Assignee: International Business Machines Corporation
    Inventors: Erik Altman, Michael K. Gschwind
  • Patent number: 6378066
    Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide a development tool that enables computer programmers to design and develop a data flow program for execution in a multiprocessor computer system. The tool displays an interface that enables the programmer to define a region divided into multiple blocks, wherein each block is formed of a set of values associated with a function, and to define sets of the blocks, each block in a set having a state reflected by a designated portion of the program that when executed transforms the values forming the block based on the function. The interface also records any dependencies among the blocks, each dependency indicating a relationship between two blocks and requiring the portion of the program associated with a first block of the relationship to be executed before the portion of the program associated with a second block of the relationship.
    Type: Grant
    Filed: February 4, 1999
    Date of Patent: April 23, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Bradley Lewis
  • Patent number: 6367004
    Abstract: In one method, a predicted predicate value may be determined. A predicated instruction is then conditionally executed depending on the predicted predicate value. For example, in accordance with one embodiment of the present invention, a predicate table stores historical information corresponding to a predicate. A pipeline coupled to the table receives a predicted predicate value calculated from the historical information. The pipeline may use this predicted predicate value to conditionally execute a predicated instruction. The actual predicate value is provided back to the predicate table from the pipeline.
    Type: Grant
    Filed: December 31, 1998
    Date of Patent: April 2, 2002
    Assignee: Intel Corporation
    Inventors: Edward T. Grochowski, Hans J. Mulder, Vincent E. Hummel
  • Patent number: 6356918
    Abstract: A method and a system in a data processing system for managing registers in a register array wherein the data processing system has M architected registers and the register array has greater than M registers. A first physical register address is selected from a group of available physical register addresses in a renamed table in response to dispatching a register-modifying instruction that specifies an architected target register address. The architected target register address is then associated with the first physical register address, and a result of executing the register-modifying instruction is stored in a physical register pointed to by the first physical register address. In response to completing the register-modifying instruction, the first physical address in the rename table is exchanged with a second physical address in a completion renamed table, wherein the second physical address is located in the completion rename table at a location pointed to by the architected target register address.
    Type: Grant
    Filed: July 26, 1995
    Date of Patent: March 12, 2002
    Assignee: International Business Machines Corporation
    Inventors: Chiao-Mei Chuang, Hung Qui Le
  • Patent number: 6351796
    Abstract: Methods and apparatus for storing data in a multi-level memory hierarchy having at least a lower level cache and a higher level cache. Relevancy information is maintained for various data values stored in the lower level cache, the relevancy information indicating whether the various data values stored in the lower level cache, if lost, could only be generated from corresponding data stored in the higher level cache. If one of the various data values stored in the lower level cache is to be updated, a determination as to whether corresponding data should be stored in the higher level cache is based at least in part on 1) the status of the relevancy information corresponding to the one of the various data values stored in the lower level cache which is to be updated, and 2) whether the updated value which is to be written into the lower level cache matches one or more select data value patterns.
    Type: Grant
    Filed: February 22, 2000
    Date of Patent: February 26, 2002
    Assignee: Hewlett-Packard Company
    Inventors: James E McCormick, Jr., Steven Kenneth Saunders
  • Patent number: 6334184
    Abstract: A processor and method of fetching an instruction from a memory are disclosed. According to the method of the present invention, a plurality of target addresses are determined utilizing a plurality of previously fetched instructions, and a sequential address is determined utilizing a last of the plurality of previously fetched instructions. Concurrently with the determination of the target addresses and the sequential address, a select signal specifying one of the plurality of target addresses or the sequential address is generated. The select signal is used to select one of the plurality of target addresses or the sequential address as a memory request address. The memory request address is then transmitted from the processor to the memory so that the memory will supply at least one instruction to the processor. By generating the target addresses and sequential address concurrently with the generation of the selection signal, instruction fetch latency is reduced.
    Type: Grant
    Filed: March 24, 1998
    Date of Patent: December 25, 2001
    Assignee: International Business Machines Corporation
    Inventors: Sang Hoo Dhong, Joel Abraham Silberman
  • Patent number: 6330692
    Abstract: A method of determining a route to be tested in the testing of a load module which includes a multiplicity of routes (route patterns) from the start to the end of the program, each route pattern being composed of a multiplicity of route paths. The method comprises the steps of: (1) testing an untested route pattern and managing the current state of the testing of all the route patterns with the untested route pattern changed to a tested route pattern; (2) managing the current state of the testing of all the route paths with the route paths constituting the untested route pattern changed to tested route paths; and (3) determining an untested route pattern which is constituted by the largest number of untested route paths to be the route pattern to be tested next. These steps are repeated until there exists no untested route path in the load module test.
    Type: Grant
    Filed: July 14, 1998
    Date of Patent: December 11, 2001
    Assignee: Fujitsu Limited
    Inventors: Shingo Kamuro, Ikunori Moriya, Ikuko Kubota, Yoriko Yoshitomi, Tetsuro Imamura, Hirotoshi Yamada, Hideki Tosaka
  • Patent number: 6330662
    Abstract: An instruction fetch unit for fetching instructions from an instruction cache of a processor. The fetch unit includes a next fetch address mechanism generating predicted next fetch addresses, the next fetch address mechanism generating a next fetch address for a fetch bundle over at least two cycles of the processor. The next fetch address mechanism determines the next fetch address based on whether a control transfer instruction from an intermediate set of fetched instructions is taken.
    Type: Grant
    Filed: February 23, 1999
    Date of Patent: December 11, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Sanjay Patel, Adam Talcott, Rajasekhar Cherabuddi
  • Patent number: 6304960
    Abstract: A system for validating branch predictions for clusters of branch instructions includes an address validation module and a condition validation module. The address validation module determines target addresses for the branches in the cluster. One of the determined target addresses is selected, using predicted branch directions. The selected target address is compared with a predicted target address, and resolved branch directions are compared with predicted branch directions. A misprediction is indicated if either comparison fails.
    Type: Grant
    Filed: August 6, 1998
    Date of Patent: October 16, 2001
    Assignee: Intel Corporation
    Inventors: Tse-Yu Yeh, Michael Paul Corwin, Judge K. Arora, Sujat Jamil, Sailesh Kottapalli
  • Patent number: 6282663
    Abstract: A method for reducing power consumption within a processor, having branch prediction circuitry, requires detecting the occurrence of a trigger event and then suppressing speculative execution of an instruction within the processor in response to the detection of the trigger event. The trigger event is the transcendence of a predetermined thermal threshold by the operating temperature of the processor.
    Type: Grant
    Filed: January 22, 1997
    Date of Patent: August 28, 2001
    Assignee: Intel Corporation
    Inventor: Jonathan Khazam
  • Patent number: 6279107
    Abstract: A branch prediction unit stores a set of branch selectors corresponding to each of a group of contiguous instruction bytes stored in an instruction cache. Each branch selector identifies the branch prediction to be selected if a fetch address corresponding to that branch selector is presented. In order to minimize the number of branch selectors stored for a group of contiguous instruction bytes, the group is divided into multiple byte ranges. The largest byte range may include a number of bytes comprising the shortest branch instruction in the instruction set (exclusive of the return instruction). For example, the shortest branch instruction may be two bytes in one embodiment. Therefore, the largest byte range is two bytes in the example. Since the branch selectors as a group change value (i.e. indicate a different branch instruction) only at the end byte of a predicted-taken branch instruction, fewer branch selectors may be stored than the number of bytes within the group.
    Type: Grant
    Filed: September 2, 2000
    Date of Patent: August 21, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thang M. Tran
  • Patent number: 6263427
    Abstract: A branch prediction mechanism for predicting the outcome and the branch target address of the next possible branch instruction of a current instruction. Each of the entry of the branch target buffer (“BTB”) of the present invention provides a next possible branch instruction address, and the corresponding branch target address. By checking the TAG portion of each entry of the BTB with the current instruction address, the branch prediction mechanism can predict the next possible branch instruction and the corresponding branch target address.
    Type: Grant
    Filed: September 4, 1998
    Date of Patent: July 17, 2001
    Assignee: Rise Technology Company
    Inventors: Sean P. Cummins, Kenneth K. Munson
  • Patent number: 6256728
    Abstract: A processor is configured to detect a branch instruction have a forward branch target address within a predetermined range of the branch fetch address of the branch instruction. If the branch instruction is predicted taken, instead of canceling subsequent instructions and fetching the branch target address, the processor allows sequential fetching to continue and selectively cancels the sequential instructions which are not part of the predicted instruction sequence (i.e. the instructions between the predicted taken branch instruction and the target instruction identified by the forward branch target address). Instructions within the predicted instruction sequence which may already have been fetched prior to predicting the branch instruction taken may be retained within the pipeline of the processor, and yet subsequent instructions may be fetched.
    Type: Grant
    Filed: July 6, 1998
    Date of Patent: July 3, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, William M. Johnson
  • Patent number: 6247146
    Abstract: A method and system for verifying the accuracy of trace data generated by execution of a program on a computer under test, one embodiment of the method comprising scanning the trace data to locate bitmap data corresponding to series of consecutive conditional branches and comparing the number of bits representative of these branches to the number of consecutive conditional branches in the instruction sequence. The trace data includes address entries and bitmap entries. The trace data is scanned in reverse chronological order beginning with the most recent entry to locate an address entry preceding one or more bitmaps which represent a most recent series of conditional branches. Beginning with the instruction at the address contained in the address entry, the program instructions are scanned in program order until a conditional branch is encountered. The branch is counted and the trace data is examined to determine whether the branch was taken and scanning is resumed.
    Type: Grant
    Filed: August 17, 1998
    Date of Patent: June 12, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Travis Wheatley, Michael Wisor, Christopher Gray
  • Patent number: 6243805
    Abstract: A microprocessor for executing exact branch targeting is disclosed. A microprocessor contains a fetch stage for fetching and receiving instructions from memory at a memory address specified by a program counter. The instructions received by the fetch state include conditional branch instructions and conditional branch calculation instructions. The conditional branch calculation instructions underlie the conditional branch instructions in that the conditional branch is taken or not depending upon the results of the conditional branch calculation instructions. An execution stage within the microprocessor executes the conditional branch calculation instructions once decoded by a decode stage. Once executed, the execution stage writes the results thereof into a branch FIFO buffer contained within a branch target circuit coupled to the fetch stage. Subsequent thereto, the fetch stage receives a conditional branch instruction.
    Type: Grant
    Filed: August 11, 1998
    Date of Patent: June 5, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Eric W. Mahurin
  • Patent number: 6240510
    Abstract: A system is provided for processing concurrently one or more branch instructions in an instruction bundle. The system includes multiple branch execution pipelines, each capable of executing a branch instruction to determine a branch direction, target address, and any side effects. Linking logic receives the resolved branch information and identifies a first branch instruction in execution order for which the branch direction is taken.
    Type: Grant
    Filed: August 6, 1998
    Date of Patent: May 29, 2001
    Assignee: Intel Corporation
    Inventors: Tse-Yu Yeh, Harshvardhan Sharangpani, Michael Paul Corwin, Sujat Jamil
  • Patent number: 6219778
    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: December 20, 1999
    Date of Patent: April 17, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ramesh Panwar, Arjun Prabhu
  • Patent number: 6219071
    Abstract: The invention provides for a system and method for minimizing space requirements and increasing speed in a geometry accelerator for a computer graphics system. In architecture, the system is implemented as follows. The geometry accelerator includes a plurality of processing elements (e.g., an arithmetic logic unit, a multiplier, a divider, a compare mechanism, a clamp mechanism, etc.) and a plurality of control units (e.g., a transform mechanism, a decomposition mechanism, a clip mechanism, a bow-tie mechanism, a light mechanism, a classify mechanism, a plane equation mechanism, a fog mechanism, etc.) that utilize the processing elements for performing data manipulations upon image data. In accordance with the invention, the control units are implemented in a read-only memory (ROM) via microcode. A next address field is associated with each of the microcode instructions and defines a location in the ROM of a next instruction to be executed.
    Type: Grant
    Filed: October 6, 1998
    Date of Patent: April 17, 2001
    Assignee: Hewlett-Packard Company
    Inventors: Alan S. Krech, Jr., Theodore G. Rossin, Edmundo Rojas, Michael S McGrath, Ted Rakel, Glenn W Strunk, Jon L Ashburn, S Paul Tucker
  • Patent number: 6173395
    Abstract: A method and system for determining the sequence of execution of instructions in a computer under test using trace data generated upon execution of certain ones of the instructions. In one embodiment, the method comprises locating an initial entry in the trace data and scanning the instructions in program order beginning with an instruction indicated by the initial entry. When a branch instruction is encountered, the trace data is examined to determine the subsequently executed instruction. If the branch is unconditional, a corresponding address entry in the trace data indicates the address of the next instruction. If the branch is conditional, a corresponding bitmap entry in the trace data contains a bit which indicates whether the branch was taken. From this bit and the instructions themselves, the next instruction is determined.
    Type: Grant
    Filed: August 17, 1998
    Date of Patent: January 9, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Michael Wisor, Travis Wheatley, Dan S. Mudgett
  • Patent number: 6170052
    Abstract: Systems, apparatus, and methods are disclosed for generating pairs of conditional instructions corresponding to special predicate sequences from single instructions having a predicate. These pairs of conditional instructions update a destination register regardless of the truth or falsity of the predicate. The destination register is renamed to a new physical location. In this manner, register renaming can be used with predicate sequences to gain performance efficiencies and to overcome limitations of the prior attempted approaches.
    Type: Grant
    Filed: December 31, 1997
    Date of Patent: January 2, 2001
    Assignee: Intel Corporation
    Inventor: Michael J. Morrison
  • Patent number: 6167510
    Abstract: An apparatus including a banked instruction cache and a branch prediction unit is provided. The banked instruction cache allows multiple instruction fetch addresses (comprising consecutive instruction blocks from the predicted instruction stream being executed by the microprocessor) to be fetched concurrently. The instruction cache provides an instruction block corresponding to one of the multiple fetch addresses to the instruction processing pipeline of the microprocessor during each consecutive clock cycle, while additional instruction fetch addresses from the predicted instruction stream are fetched. Preferably, the instruction cache includes at least a number of banks equal to the number of clock cycles consumed by an instruction cache access. In this manner, instructions may be provided during each consecutive clock cycle even though instruction cache access time is greater than the clock cycle time of the microprocessor.
    Type: Grant
    Filed: April 23, 1998
    Date of Patent: December 26, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thang M. Tran
  • Patent number: 6131154
    Abstract: Herein disclosed is a microcomputer MCU adopting the general purpose register method. The microcomputer is enabled to have a small program capacity or a high program memory using efficiency and a low system cost, while enjoying the advantage of simplification of the instruction decoding as in the RISC machine having a fixed length instruction format of the prior art, by adopting a fixed length instruction format having a power of 2 but a smaller bit number than that of the maximum data word length fed to instruction execution means. And, the control of the coded division is executed by noting the code bits.
    Type: Grant
    Filed: July 23, 1997
    Date of Patent: October 10, 2000
    Assignees: Hitachi, Ltd., Hitachi VLSI Engineering Corp., Hitachi Microcomputer System, Ltd.
    Inventors: Shumpei Kawasaki, Eiji Sakakibara, Kaoru Fukada, Takanaga Yamazaki, Yasushi Akao, Shiro Baba, Toshimasa Kihara, Keiichi Kurakazu, Takashi Tsukamoto, Shigeki Masumura, Yasuhiro Tawara, Yugo Kashiwagi, Shuya Fujita, Katsuhiko Ishida, Noriko Sawa, Yoichi Asano, Hideaki Chaki, Tadahiko Sugawara, Masahiro Kainaga, Kouki Noguchi, Mitsuru Watabe
  • Patent number: 6119221
    Abstract: The present invention intends to provide an instruction prefetching apparatus capable of reducing a delay caused by branch prediction error by prefetching instruction based on a condition of a conditional branch instruction if the condition is already determined at the prefetching of the branch instruction. In the apparatus, a first decoding unit judges whether or not a processed instruction is a conditional branch instruction or not and whether or not the instruction is a condition generate instruction which determines branch condition. A condition determination signal generating means compares an address of a condition generate instruction with the content of a program counter to judge whether the condition is already determined or not, and according to the judgment, outputs a condition determination signal to a condition determination judging unit.
    Type: Grant
    Filed: October 28, 1997
    Date of Patent: September 12, 2000
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Koji Zaiki, Tetsuya Tanaka
  • Patent number: 6115777
    Abstract: A method for returning from an interrupting context to an interrupted context in a processor is disclosed. The processor executes a programmed flow of instructions. The processor includes a register stack (RS) and a register stack engine (RSE) to exchange information between the RS and the storage area. The method includes the following steps: (a.) A first pointer (PTR) is generated. The pointer (PTR) points to a location in the storage area where dirty registers (previously unsaved) of an interrupted context are stored; (b.) It is determined whether a mathematical relation is valid between the first pointer and the second pointer (BSPLOAD) to a location in the storage area from where the RSE is configured to load dirty register values into the RS; (c) The second pointer is caused to point to a next location in the storage area if the relation is valid; and (d) A register of the RS is loaded with a content of the next location in the storage area until the mathematical relation becomes invalid.
    Type: Grant
    Filed: April 21, 1998
    Date of Patent: September 5, 2000
    Assignee: Idea Corporation
    Inventors: Achmed Rumi Zahir, Jonathan K. Ross
  • Patent number: 6115810
    Abstract: One embodiment of the present invention provides a system for predicting an address of an instruction following a branch instruction in a computer instruction stream. This system receives a current address specifying an address of a current instruction. It uses this current address (or possibly a preceding address) to generate a first select signal, which is used to select a first predicted address of an instruction following the current instruction in the computer instruction stream. At the same time the system generates a second select signal, which takes more time to generate than the first select signal but achieves a more accurate selection for a predicted address of the instruction following the current instruction. The system assumes that the first predicted address is correct and proceeds with a subsequent instruction fetch operation using the first predicted address. Next, the system compares the first select signal with the second select signal.
    Type: Grant
    Filed: September 16, 1998
    Date of Patent: September 5, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Sanjay Patel, Adam R. Talcott, Rajasekhar Cherabuddi
  • Patent number: 6112300
    Abstract: Multi-way branching is implemented via a single instruction by providing a computer system with a hardware token-to-address table, loading the table with branch target data correlating to the multi-way branch instruction, including software for execution with at least one multi-way branch instruction executing that branch instruction by accessing the table. The computer system is conventionally supplied with branch logic and general purpose register stack with a multi-ported output interface. The hardware resource added implementing the multi-way branch operation includes the table in the form of addressable storage comprising a plurality of multi-byte locations with a write data input and a read data output. A decoder is connected between one port of the general purpose register interface with an output to select one of the multi-byte locations for an input or output operation. The write data input of the addressable storage or table is connected to another port of the general purpose register interface.
    Type: Grant
    Filed: June 3, 1998
    Date of Patent: August 29, 2000
    Assignee: International Business Machines Corporation
    Inventors: Thomas E. Cook, Yu-Chung C. Liao, Peter A. Sandon
  • Patent number: 6112299
    Abstract: In a computer capable of executing a superscalar and a very long instruction word instruction wherein the computer has compiled a number of primitive operations that can be executed in parallel into a single instruction having multiple parcels and each of the parcels correspond to an operation, the invention is an improved instruction cache to store all potential subsequent instructions and a method to select the subsequent instruction when several possible branches of execution are probable and must be evaluated. All branch conditions and all addresses of potential subsequent instructions of an instruction are replicated and stored in the instruction cache. All potential subsequent instructions are stored in the same block of the instruction cache having the same next address; individual instructions are identified by the replicated offset addresses. Further the instruction cache is divided into minicaches, each minicache to store one parcel, which allows rapid autonomous execution of each parcel.
    Type: Grant
    Filed: December 31, 1997
    Date of Patent: August 29, 2000
    Assignee: International Business Machines Corporation
    Inventors: Kemal Ebcioglu, Kenneth J. Kiefer, David Arnold Luick, Gabriel Mauricio Silberman, Philip Braun Winterfield
  • Patent number: 6092188
    Abstract: A processor architecture with an instruction set having a predict instruction, the predict instruction providing static prediction information and a statically predicted target address to the processor for a branch instruction. The processor decodes a predict instruction to obtain an associated pair of addresses comprising a predicted target address and a referenced instruction address, and fetches a predicted target instruction having an instruction address matching the predicted target address when a fetched and decoded branch instruction has an instruction address matching the referenced instruction address.
    Type: Grant
    Filed: July 7, 1999
    Date of Patent: July 18, 2000
    Assignee: Intel Corporation
    Inventors: Michael P. Corwin, Tse-Yu Yeh, Mircea Poplingher, Carl C. Scafidi
  • Patent number: 6085308
    Abstract: Protocol processor intended to be associated with at least one main processor of a system with a view to the execution of tasks to which the main processor is not suited. The protocol processor comprises a program part (30) including an incrementation register (31), a program memory (33) connected to the incrementation register (31) in order to receive addresses thereof, a decoding part (35) intended to receive instructions from the program memory (33) of the program part (30) with a view to executing an instruction in two cycles, and a data part (36) for executing the instruction.
    Type: Grant
    Filed: December 12, 1997
    Date of Patent: July 4, 2000
    Assignee: Texas Instruments Incorporated
    Inventors: Gerard Chauvel, Francis Aussedat, Pierre Calippe
  • Patent number: 6067633
    Abstract: A multi-processor system and methodology optimize overhead costs associated with manufacturing large integrated circuit devices having multiple data processors and processing elements thereon by effectively disabling processing elements that are not functional. Disabling the processing elements is performed through segmented power distribution on an integrated circuit first-level package or by providing inhibit signals in pre-selected logic states based on the functionality of the multi-processing system. The functionality of the multiprocessing system is determined during an initial testing procedure, including wafer-level testing.
    Type: Grant
    Filed: March 31, 1998
    Date of Patent: May 23, 2000
    Assignees: International Business Machines Corp, Motorola, Inc.
    Inventors: Gordon J. Robbins, David Ray Bearden
  • Patent number: 6067616
    Abstract: An improved branch prediction cache (BPC) scheme that utilizes a hybrid cache structure. The BPC provides two levels of branch information caching. The fully associative first level BPC is a shallow but wide structure (36 32-byte entries), which caches full prediction information for a limited number of branch instructions. The second direct mapped level BPC is a deep but narrow structure (256 2-byte entries), which caches only partial prediction information, but does so for a much larger number of branch instructions. As each branch instruction is fetched and decoded, its address is used to perform parallel look-ups in the two branch prediction caches.
    Type: Grant
    Filed: April 26, 1996
    Date of Patent: May 23, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David R. Stiles, John G. Favor, Korbin S. Van Dyke
  • 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: 6047371
    Abstract: To provide a signal processor for performing processing in fewer cycles by selecting one of the two different operations in accordance with a flag signal and performing the selected operation without the use of a conditional branch instruction, the signal processor is provided with an instruction decoder, a control selecting circuit, a selecting circuit and an arithmetic unit. The instruction decoder decodes an instruction to output two control signals. The control selecting circuit is connected to the instruction decoder and selects one of the control signals in accordance with a flag signal stored in a flag holding circuit to output the selected signal. The selecting circuit selects one of a plurality of input data in accordance with the control signal outputted by the control selecting circuit and outputs the selected data. The arithmetic unit performs an operation on the data outputted by the selecting circuit.
    Type: Grant
    Filed: August 11, 1997
    Date of Patent: April 4, 2000
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Jiro Miyake, Miki Urano, Genichiro Inoue
  • Patent number: 6035392
    Abstract: A computer for executing programs and having a structure for fetching instructions and/or operands along a path which may not be taken by a process being executed by a computer processor having a hierarchical memory structure with data being loaded into cache lines of a cache in the structure, and having block line fetch signal selection logic and computational logic with hedge selection logic for generating line fetch block signals for control of hedging by fetching instructions and/or operands along a path which may not be taken by a process being executed and making selected hedge fetches sensitive to whether the data is in the cache so as to gain the best performance advantage with a selected hedge fetch signal which accompanies each fetch request to the cache to identify whether a line should be loaded if it misses the cache to indicate a selected hedge fetch when this signal is ON, and rejecting a fetch request in the event the selected hedge fetch signal is turned ON if the data is not in the cache, th
    Type: Grant
    Filed: February 20, 1998
    Date of Patent: March 7, 2000
    Assignee: International Business Machines Corporation
    Inventors: John Stephen Liptay, Mark Anthony Check, Barry Watson Krumm, Jennifer Almoradie Navarro, Charles Franklin Webb
  • Patent number: 6035383
    Abstract: A data processing system having a processor core 4, a memory management unit 6 and a cache memory 8 uses the memory management unit 6 to produce a confirm signal C that indicates that a memory access request will be processed no further, i.e. the outcome is fully determined. The next memory access request is initiated prior to this confirm signal C being available and accordingly if the confirm signal C indicates a result different to that predicted, then a stall of the system is required until the non-confirmed memory access request can be dealt with.
    Type: Grant
    Filed: November 3, 1997
    Date of Patent: March 7, 2000
    Assignee: Arm Limited
    Inventor: David James Seal
  • Patent number: 6026477
    Abstract: An improved branch recovery mechanism includes an instruction fetch unit, an instruction decode stage, a branch prediction unit coupled to the decode stage for predicting whether the branch instruction will be taken, and an instruction pool for receiving and storing micro-ops. After a mispredicted branch is detected, micro-ops corresponding to a correct path are loaded into the instruction pool without waiting for the mispredicted branch instruction to be retired. By immediately loading the correct path into the instruction pool, Front End stall time can be reduced. Micro-ops in the instruction pool are distinguished based on path information for each micro-op stored in the instruction pool. The micro-ops corresponding to the mispredicted path are deleted as quickly as possible without committing their execution results to architectural state.
    Type: Grant
    Filed: December 31, 1997
    Date of Patent: February 15, 2000
    Assignee: Intel Corporation
    Inventors: Alan B. Kyker, Darrell D. Boggs
  • Patent number: 6026488
    Abstract: A computer for executing programs and having a structure for fetching instructions and/or operands along a path which may not be taken by a process being executed by a computer processor having a hierarchical memory structure with data being loaded into cache lines of a cache in the structure, and having block line fetch signal selection logic and computational logic with hedge selection logic for generating line fetch block signals for control of hedging by fetching instructions and/or operands along a path which may not be taken by a process being executed and making selected hedge fetches sensitive to whether the data is in the cache so as to gain the best performance advantage with a selected hedge fetch signal which accompanies each fetch request to the cache to identify whether a line should be loaded if it misses the cache to indicate a selected hedge fetch when this signal is ON, and rejecting a fetch request in the event the selected hedge fetch signal is turned ON if the data is not in the cache, th
    Type: Grant
    Filed: February 20, 1998
    Date of Patent: February 15, 2000
    Assignee: International Business Machines Corporation
    Inventors: John Stephen Liptay, Mark Anthony Check, Barry Watson Krumm, Jennifer Almoradie Navarro, Charles Franklin Webb
  • Patent number: 6014742
    Abstract: A trace branch prediction unit includes a trace branch target buffer connected to a trace cache. The trace cache stores traces of micro-ops, with the micro-ops being stored non-sequentially. The trace branch target buffer generally reads a buffer entry corresponding to a particular trace line one clock cycle before the trace line is read to a processor. Using the entry, the trace branch target buffer predicts whether the trace cache should follow the existing trace or leave the trace. If the trace branch target buffer predicts that the trace cache should leave a trace, the trace branch target buffer provides a target address for a new trace. The trace branch target buffer also predicts when a trace is ending and provides a target address for the next trace.
    Type: Grant
    Filed: December 31, 1997
    Date of Patent: January 11, 2000
    Assignee: Intel Corporation
    Inventors: Robert Franklin Krick, Chan Woo Lee, Reynold Viriato D'Sa
  • Patent number: 6009514
    Abstract: In a computerized method, performance data collected while a computer system executed instructions of a program are analyzed. The method collects performance data while executing the program. The performance data includes sample counts of instructions executed. The program is analyzed to determine classes of instructions. Instructions of the same equivalence class all execute the identical number of times. The execution frequencies for each instructions of each equivalence class is estimated. The estimated execution frequencies can then be used to determine the average number of cycles required to issue each instruction of each equivalence class. The average number of cycles can be compared with the minimum number of cycles to determine the number of dynamic stall cycles incurred by the instructions. Furthermore, reasons for the dynamic stall cycles can be inferred.
    Type: Grant
    Filed: October 30, 1998
    Date of Patent: December 28, 1999
    Assignee: Digital Equipment Corporation
    Inventors: Monika Hildegard Henzinger, Shun-Tak Albert Leung, Richard L. Sites, Mark T. Vandevoorde, William Edward Weihl
  • Patent number: 6005590
    Abstract: The apparatus comprises an input memory 102 for storing data necessary for geometrical operations, such as coordinate transformation, luminance calculation, and clipping operation of graphics; a global bus connected to the input memory; a plurality of floating process memories connected to the global bus, for receiving data necessary for geometrical operations; a sequencer for transmitting data necessary for geometrical operations, stored in the input memory, to the plurality of floating process memories; and a plurality of floating processing units each connected to a respective one of the plurality of floating process memories, for independently executing geometrical operations, using data transmitted from the floating process memories.
    Type: Grant
    Filed: November 5, 1996
    Date of Patent: December 21, 1999
    Assignee: Mitsubishi Denki Kabushiki Kaisha
    Inventors: Hiroyasu Negishi, Masatoshi Kameyama, Yoshitsugu Inoue, Hiroyuki Kawai
  • Patent number: 5996070
    Abstract: A 3-bit condition execution field in an condition execution instruction stores an encoded value obtained by encoding a condition stored in an general purpose flag indicating to execute the condition execution instruction. A microprocessor has an instruction decode unit 2 comprising a condition execution decode section 401 for decoding a value in the condition execution field and a condition execution judgement section 402 for judging whether or not the decoded result from the condition execution decode section 401 is equal to a condition stored in general purpose flags, and outputting the indication to execute the condition execution instruction when both are equal.
    Type: Grant
    Filed: January 16, 1997
    Date of Patent: November 30, 1999
    Assignee: Mitsubishi Denki Kabushiki Kaisha
    Inventors: Akira Yamada, Toyohiko Yoshida, Toru Kengaku
  • Patent number: 5991872
    Abstract: Microprocessors use a conditional branch instruction so as to change processing in accordance with conditions. According to the prior art, a NOP instruction, which causes no operation, is used when a condition is satisfied, and the use of the NOP instruction inevitably lengthens the processing time. According to the present invention, a conditional transfer instruction is included in the instruction set of a microprocessor, and a flag decoder is additionally employed. The flag decoder determines whether a condition is satisfied or not, and outputs a control signal on the basis of the determination. The control signal is supplied to the instruction decoder of the processor to make a data transfer operation effective or ineffective. Accordingly, it is not necessary to use a NOP instruction, and the processing time can be as short as possible.
    Type: Grant
    Filed: October 9, 1997
    Date of Patent: November 23, 1999
    Assignee: Kabushiki Kaisha Toshiba
    Inventors: Mikio Shiraishi, Masaki Saitou, Yuji Okuda
  • Patent number: 5991874
    Abstract: An apparatus for use in a computer system comprises a first storage area and a circuit, coupled to the first storage area, configured to perform a comparison of a data element A with a data element B. In response to a single instruction, the circuit performs the comparison and outputs a condition field of at least one bits when the comparison of A and B is TRUE, or else the circuit outputs the ones-complement of the condition field when the comparison of A and B is FALSE. The circuit may be used in conjunction with a sequence of instructions to select bits from a first data element and bits from a second data element using the one or more condition field bits.
    Type: Grant
    Filed: June 6, 1996
    Date of Patent: November 23, 1999
    Assignee: Intel Corporation
    Inventors: Jack D. Mills, Donald Alpert