Simultaneous Parallel Fetching Or Executing Of Both Branch And Fall-through Path Patents (Class 712/235)
-
Patent number: 6385719Abstract: A transfer tag is generated by the Instruction Fetch Unit and passed to the decode unit in the instruction pipeline with each group of instructions fetched during a branch prediction by a fetcher. Individual instructions within the fetched group for the branch pipeline are assigned a concatenated version (group tag concatenated with instruction lane) of the transfer tag which is used to match on requests to flush any newer instructions. All potential instruction or Internal Operation latches in the decode pipeline must perform a match and if a match is encountered, all valid bits associated with newer instructions or internal operations upstream from the match are cleared. The transfer tag representing the next instruction to be processed in the branch pipeline is passed to the Instruction Dispatch Unit. The Instruction Dispatch Unit queries the branch pipeline to compare its transfer tag with transfer tags of instructions in the branch pipeline.Type: GrantFiled: June 30, 1999Date of Patent: May 7, 2002Assignee: International Business Machines CorporationInventors: John Edward Derrick, Brian R. Konigsburg, Lee Evan Eisen, David Stephen Levitan
-
Patent number: 6381689Abstract: 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: GrantFiled: March 13, 2001Date of Patent: April 30, 2002Assignee: Advanced Micro Devices, Inc.Inventors: David B. Witt, Thang M. Tran
-
Patent number: 6370639Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.Type: GrantFiled: October 10, 1998Date of Patent: April 9, 2002Assignee: Institute for the Development of Emerging Architectures L.L.C.Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi, Guillermo Juan Rozas
-
Patent number: 6367004Abstract: 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: GrantFiled: December 31, 1998Date of Patent: April 2, 2002Assignee: Intel CorporationInventors: Edward T. Grochowski, Hans J. Mulder, Vincent E. Hummel
-
Patent number: 6334184Abstract: 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: GrantFiled: March 24, 1998Date of Patent: December 25, 2001Assignee: International Business Machines CorporationInventors: Sang Hoo Dhong, Joel Abraham Silberman
-
Patent number: 6321328Abstract: Computer apparatus includes an execution unit for executing a sequence of instructions which may include a speculative load instruction, a memory for storing data required by the instructions for execution, a low latency data cache for holding data accessed in the memory in response to the instructions, a low latency data buffer for holding speculative data accessed in the memory in response to the speculative load instruction, and a controller. The controller loads the speculative data from the memory into the data buffer in response to the speculative load instruction when the speculative data is not present in the data cache or the data buffer, and loads the speculative data from the data buffer into the execution unit. The speculative data may be loaded from the data buffer into the execution unit when the speculative load instruction is executed or when the speculative load instruction is committed.Type: GrantFiled: March 22, 1999Date of Patent: November 20, 2001Assignee: Hewlett-Packard CompanyInventors: Alan H. Karp, Rajiv Gupta
-
Publication number: 20010037447Abstract: A pipelined, simultaneous and redundantly threaded (“SRT”) processor configured to detect transient faults during program execution by executing instructions in at least two redundant copies of a program thread and wherein misspeculation caused by incorrectly predicting the outcomes of branch instructions in a second program thread is avoided by using the actual outcomes of branch instructions in a first program thread to correctly predict the outcome of branch instructions in the second program thread. The SRT processor comprises a branch predictor for speculating the outcomes of branch instructions in the first program thread and a branch outcome queue for storing the actual outcomes of branch instructions in the first program thread. The processor uses the branch outcome queue and not the branch predictor to predict the outcomes of branch instructions in the second program thread.Type: ApplicationFiled: April 19, 2001Publication date: November 1, 2001Inventors: Shubhendu S. Mukherjee, Steven K. Reinhardt
-
Patent number: 6298436Abstract: A method and system for atomic memory accesses in a processor system, wherein the processor system is able to issue and execute multiple instructions out of order with respect to a particular program order. A first reservation instruction is speculatively issued to an execution unit of the processor system. Upon issuance, instructions queued for the execution unit which occur after the first reservation instruction in the program order are flushed from the execution unit, in response to detecting any previously executed reservation instructions in the execution unit which occur after the first reservation instruction in the program order.Type: GrantFiled: June 8, 1999Date of Patent: October 2, 2001Assignee: International Business Machines CorporationInventors: James Allan Kahle, Hung Qui Le, Larry Edward Thatcher, David James Shippy
-
Patent number: 6289442Abstract: A method and circuit is disclosed for tagging and invalidating speculatively executed instructions. The method includes fetching a first plurality of instructions which includes a conditional branch instruction which identifies a target address if the branch is taken. The conditional branch instruction is detected and in response thereto first and second instruction tags are generated. At least a first instruction is tagged with the first instruction tag wherein the first instruction is included in the first plurality of instructions and wherein the first instruction sequentially follows the first conditional branch instruction in program order. Thereafter, a second plurality of instructions are fetched wherein the second plurality of instructions corresponds to the target address of the conditional branch instruction. At least one of these second plurality of instructions is tagged with the second instruction tag. Thereafter, the conditional branch instruction is executed and resolved.Type: GrantFiled: October 5, 1998Date of Patent: September 11, 2001Assignee: Advanced Micro Devices, Inc.Inventor: Creigton Asato
-
Patent number: 6289445Abstract: A circuit and method is provided which allows a microprocessor to implement speculative load instructions with implicit exception checking. In one embodiment of the method, exception information is generated in response to a memory access exception caused by a speculative load instruction for loading one of a plurality of first registers with data from memory. The exception information, once generated, is stored within one of a plurality of second registers. Each of the second registers corresponds to at least one of the plurality of first registers and is configured to store exception information. Thereafter, an instruction for operating on data stored in a first register is received and decoded by the microprocessor. In response, a second register corresponding to the first register is accessed. If this second register contains exception information, then the microprocessor initiates the exception routine.Type: GrantFiled: July 21, 1998Date of Patent: September 11, 2001Assignee: LSI Logic CorporationInventor: Hartvig Ekner
-
Publication number: 20010014941Abstract: In one embodiment of the invention, a processor includes an execution pipeline to concurrently execute at least portions of threads, wherein at least one of the threads is dependent on at least another one of the threads. The processor also includes detection circuitry to detect speculation errors in the execution of the threads. In another embodiment, the processor includes thread management logic to control dynamic creation of threads from a program.Type: ApplicationFiled: December 29, 2000Publication date: August 16, 2001Inventors: Haitham Akkary, Kingsum Chow
-
Patent number: 6269439Abstract: A signal processor for pipeline processing which can effectively avoid deterioration of the processing efficiency caused by branch instructions and methods thereof: wherein when obtaining a result that an instruction decoded in an ID module is a branch instruction, determination is made as to branch existence in an EX module in the next cycle, and an instruction in a branch destination and an instruction in a non-branch destination are fetched simultaneously in an IF module; consequently, in the next cycle, in response to the result of the branch existence, one of the fetched instructions of the branch destination or the non-branch destination is selected and is then decoded in an ID module.Type: GrantFiled: June 12, 1998Date of Patent: July 31, 2001Assignee: Sony CorporationInventor: Hirokazu Hanaki
-
Patent number: 6256727Abstract: A system and method for fetching noncontiguous blocks of instructions in a data processing system is disclosed. The system comprises an instruction cache means for providing a first plurality of instructions and branch logic means for receiving the first plurality of instructions and for providing branch history information about the first plurality of instructions. The system further includes an auxiliary cache means for receiving a second plurality of instructions based upon the branch history information. The auxiliary cache means overlays at least one of the second plurality of instructions if there is a branch in the first plurality of instructions and the branch is to the second plurality of instructions.Type: GrantFiled: May 12, 1998Date of Patent: July 3, 2001Assignee: International Business Machines CorporationInventor: Robert Greg McDonald
-
Patent number: 6247117Abstract: The use of checking instructions to detect special and exceptional cases of a defined data format in a microprocessor is disclosed. Generally speaking, a checking instruction is included with the microcode of floating-point instructions to detect special and exceptional cases of operand values for the floating-point instructions. A checking instruction is configured to set one or more flags in a flags register if it detects a special or exceptional case for an operand value. A checking instruction may also set the result or results of a floating-point instruction to a result value if a special or exceptional case is detected. In addition, a checking instruction may be configured to set one or more bits in status register if a special or exceptional case is detected. After a checking instruction completes execution, a subsequent microcode instruction can be executed to determine if one or more flags were set by the checking instruction.Type: GrantFiled: March 8, 1999Date of Patent: June 12, 2001Assignee: Advanced Micro Devices, Inc.Inventor: Norbert Juffa
-
Patent number: 6243805Abstract: 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: GrantFiled: August 11, 1998Date of Patent: June 5, 2001Assignee: Advanced Micro Devices, Inc.Inventor: Eric W. Mahurin
-
Patent number: 6219784Abstract: 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: GrantFiled: November 16, 1998Date of Patent: April 17, 2001Assignee: Advanced Micro Devices, Inc.Inventor: David B. Witt
-
Patent number: 6195740Abstract: A processor for decoding and executing an instruction includes: an instruction register 10 for storing an instruction; a format decoder 21 for decoding a format code located in the P0.0 field 11 of the instruction stored in the instruction register 10; a constant storage unit including a storage region; a constant register control unit 32 which, when the format decoder 21 has referred to the format code and decoded that an operation field includes a constant to be stored in the constant register 36, transfers the constant from the instruction register 10 to the constant storage unit 36; and a constant register output unit 41 which, when the format decoder 21 has referred to the format code and decoded that an operation field includes an operation code showing an operation that should be executed and a piece of an operand that should be used for the operation, links the constant stored in the constant register 36 with the piece of the operand.Type: GrantFiled: July 29, 1998Date of Patent: February 27, 2001Assignee: Matsushita Electric Industrial Co., Ltd.Inventors: Taketo Heishi, Nobuo Higaki, Akira Tanaka, Tetsuya Tanaka, Shuichi Takayama, Kensuke Odani, Shinya Miyaji
-
Patent number: 6192461Abstract: One aspect of the invention relates to an apparatus for processing a store instruction on a superscalar processor that employs in-order completion of instructions, the processor having an instruction dispatch unit, an architected register file, a rename register file, a load store unit, a completion unit and cache memory. In one embodiment of the invention, the apparatus includes a pointer queue having an entry corresponding to the store instruction, the entry containing a pointer to the entries in the architected and rename register files that contain data required by the store instruction; and a multiplexer coupled to read ports on the architected and rename register files so that data can be passed from one of the register files into an entry in a data queue, the data queue being coupled to the cache memory.Type: GrantFiled: January 30, 1998Date of Patent: February 20, 2001Assignee: International Business Machines CorporationInventors: Barry D. Williamson, Jim E. Phillips, Dq Nguyen
-
Patent number: 6185668Abstract: An apparatus and method are described for implementing handling of exceptions caused by speculated instructions in a CPU having speculative execution capabilities. A CPU implementing speculative execution contains a speculative bit register file. Each speculative bit in the speculative bit register file is logically associated with a particular general purpose register, while remaining physically separate. This is accomplished through the use of a physically separate register file (the speculative bit register file) and register selection circuitry allowing simultaneous access to the two register files. The present invention provides instruction execution hardware supporting speculative execution with minimal impact on computational and structural complexity.Type: GrantFiled: December 21, 1995Date of Patent: February 6, 2001Assignee: Intergraph CorporationInventor: Siamak Arya
-
Patent number: 6182210Abstract: In one embodiment of the invention, a processor includes an execution pipeline to concurrently execute at least portions of threads, wherein at least one of the threads is dependent on at least another one of the threads. The processor also includes detection circuitry to detect speculation errors in the execution of the threads. In another embodiment, the processor includes thread management logic to control dynamic creation of threads from a program.Type: GrantFiled: December 16, 1997Date of Patent: January 30, 2001Assignee: Intel CorporationInventors: Haitham Akkary, Kingsum Chow
-
Patent number: 6167506Abstract: The processor is configured to predecode instruction bytes prior to their storage within an instruction cache. During the predecoding, relative branch instructions are detected. The displacement included within the relative branch instruction is added to the address corresponding to the relative branch instruction, thereby generating the target address. The processor replaces the displacement field of the relative branch instruction with an encoding of the target address, and stores the modified relative branch instruction in the instruction cache. The branch prediction mechanism may select the target address from the displacement field of the relative branch instruction instead of performing an addition to generate the target address. In one embodiment, relative branch instructions having eight bit and 32-bit displacement fields are included in the instruction set executed by the processor.Type: GrantFiled: April 23, 1998Date of Patent: December 26, 2000Assignee: Advanced Micro Devices, Inc.Inventor: David B. Witt
-
Patent number: 6167510Abstract: 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: GrantFiled: April 23, 1998Date of Patent: December 26, 2000Assignee: Advanced Micro Devices, Inc.Inventor: Thang M. Tran
-
Patent number: 6161174Abstract: A pipelined processor for simultaneously performs one of a plurality of successive operations on each of a plurality of successive instructions within the pipeline, the successive operations including at least an instruction fetch stage, an operand address stage, an operand fetch stage, an execution stage and a result handling stage. The processor also maintains a plurality of indicators which are selectively updated during the result handling stage for a given instruction to reflect the results obtained during the execution stage thereof. When the second instruction of first and second successively fetched instructions is a conditional transfer, a determination is made as to which indicators may be affected by the execution of the first instruction, and a determination is also made as to which indicator the conditional transfer is to test to decide whether there is a GO or a NOGO condition.Type: GrantFiled: November 5, 1998Date of Patent: December 12, 2000Inventor: John E. Wilhite
-
Patent number: 6131154Abstract: 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: GrantFiled: July 23, 1997Date of Patent: October 10, 2000Assignees: 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: 6119220Abstract: An apparatus for supplying instructions to a processor has an instruction cache (1) and a branch target buffer (33). The branch target buffer stores instructions in order of execution achievable if a branch instruction is taken. The instructions in the branch target buffer are arranged before a branch predictor (35) makes a prediction whether or not the branch instruction is taken. If the prediction tells that the branch instruction will be taken, the instructions in the branch target buffer are supplied to an instruction decoder (9). If the prediction tells that the branch instruction will not be taken, instructions in the instruction cache are supplied to the instruction decoder.Type: GrantFiled: January 29, 1998Date of Patent: September 12, 2000Assignee: Kabushiki Kaisha ToshibaInventor: Toshinori Sato
-
Patent number: 6112300Abstract: 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: GrantFiled: June 3, 1998Date of Patent: August 29, 2000Assignee: International Business Machines CorporationInventors: Thomas E. Cook, Yu-Chung C. Liao, Peter A. Sandon
-
Patent number: 6112296Abstract: A floating point unit capable of executing multiple instructions in a single clock cycle using a central window and a register map is disclosed. The floating point unit comprises: a plurality of translation units, a future file, a central window, a plurality of functional units, a result queue, and a plurality of physical registers. The floating point unit receives speculative instructions, decodes them, and then stores them in the central window. Speculative top of stack values are generated for each instruction during decoding. Top of stack relative operands are computed to physical registers using a register map. Register stack exchange operations are performed during decoding. Instructions are then stored in the central window, which selects the oldest stored instructions to be issued to each functional pipeline and issues them. Conversion units convert the instruction's operands to an internal format, and normalization units detect and normalize any denormal operands.Type: GrantFiled: December 18, 1997Date of Patent: August 29, 2000Assignee: Advanced Micro Devices, Inc.Inventors: David B. Witt, Derrick R. Meyer
-
Patent number: 6092188Abstract: 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: GrantFiled: July 7, 1999Date of Patent: July 18, 2000Assignee: Intel CorporationInventors: Michael P. Corwin, Tse-Yu Yeh, Mircea Poplingher, Carl C. Scafidi
-
Patent number: 6092186Abstract: The present invention minimizes unneeded memory accesses by providing a digital processor having control circuit for terminating on-going memory accesses, and by a data transfer circuit that allow jump instructions to be detected sooner in the decode unit. The digital processor includes a decode unit, fetch unit and a memory controller. When the decode unit of the present invention processor determines that a discontinuity must occur in the instruction fetch sequence, it asserts a "jump taken" signal to the fetch unit to indicate that any pre-fetched instruction codes are to be discarded and that fetching is to resume at a new fetch program counter (FPC) value. If the fetch unit is currently stalled because of an outstanding request to the memory controller unit, then the fetch unit asserts an "abort" signal to the memory controller.Type: GrantFiled: May 7, 1996Date of Patent: July 18, 2000Assignee: Lucent Technologies Inc.Inventors: Michael Richard Betker, Trevor Edward Little
-
Patent number: 6067616Abstract: 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: GrantFiled: April 26, 1996Date of Patent: May 23, 2000Assignee: Advanced Micro Devices, Inc.Inventors: David R. Stiles, John G. Favor, Korbin S. Van Dyke
-
Patent number: 6065115Abstract: 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: GrantFiled: April 10, 1998Date of Patent: May 16, 2000Assignee: Intel CorporationInventors: Harshvardhan P. Sharangpani, Gary N. Hammond, Hans J. Mulder, Judge K. Arora
-
Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
Patent number: 6055628Abstract: A microprocessor 1 has an instruction fetch/decode unit 10a-c, a plurality of execution units, including an arithmetic and load/store unit D1, a multiplier M1, an ALU/shifter unit S1, an arithmetic logic unit ("ALU") L1, a shared multiport register file 20a from which data are read and to which data are written, and a memory 22. These units form an instruction execution pipeline that operates without interlocks so that nestable delayed branch instructions are provided. The control circuitry for the instruction execution pipeline is operable to begin processing a second branch instruction having a second target address on a pipeline phase immediately after beginning processing of a first branch instruction having a first target address.Type: GrantFiled: January 23, 1998Date of Patent: April 25, 2000Assignee: Texas Instruments IncorporatedInventors: Natarajan Seshan, Laurence R. Simar, Jr. -
Patent number: 6052776Abstract: A method of effecting a branch operation without the need of instruction fetching is carried out according to the taken/untaken branch with respect to a program containing plural branch instructions, and the method is performed by an apparatus information processing. By detecting a branch instruction stored in an instruction buffer, determining its branch distance and branch condition, and if the branch distance is less than a predetermined positive distance, by then providing that branch condition as an execution condition for the instruction located within said predetermined distance to store in an instruction register, a series of instructions succeeding that branch instruction can be processed into a conditional instruction in the apparatus. The instructions may be continuously executed without refetching instructions, in both cases that a branch condition is taken and untaken. Also, the penalty of miss-prediction of a branch will be minimized.Type: GrantFiled: October 16, 1997Date of Patent: April 18, 2000Assignee: Hitachi, Ltd.Inventors: Yoshio Miki, Kentaro Shimada, Makoto Hanawa
-
Patent number: 6038658Abstract: The invention comprises in several embodiments a pipeline and a method of operating the pipeline. The pipeline comprises first and second stages each having an output. The first stage is located earlier in the pipeline than the second stage. A first isolation device has an input coupled to the output of the first stage. The first isolation device is for storing data received from the first stage. A second isolation device has an input coupled to the output of the second stage. The second isolation device is for storing data received from the second stage. A stall control is for sending a signal to the first and second isolation devices. The signal is to stall the isolation devices. At least one delay element is connected between the stall control and the second isolation device and is to delay receipt of the signal by the second isolation device.Type: GrantFiled: November 3, 1997Date of Patent: March 14, 2000Assignee: Intel CorporationInventor: Michael Y. Chow
-
Patent number: 6035392Abstract: 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, thType: GrantFiled: February 20, 1998Date of Patent: March 7, 2000Assignee: International Business Machines CorporationInventors: John Stephen Liptay, Mark Anthony Check, Barry Watson Krumm, Jennifer Almoradie Navarro, Charles Franklin Webb
-
Patent number: 6035391Abstract: A system for processing a floating point instruction includes a stack, virtual registers, a stack pointer pointing to one of the virtual registers as top of stack, physical registers, and a reference table mapping the virtual registers to the physical registers, entries of the reference table pointing to physical register locations. An instruction unit generates a plurality of instructions, and a decode unit having a plurality of decoders receives the plurality of instructions from the instruction unit, respectively. The decode unit decodes the plurality of instructions and determines whether any one of the instructions contains a floating point instruction including a floating point exchange instruction. A logic unit is coupled to the reference table and includes a plurality of logic devices coupled to the plurality of decoders in the decode unit, respectively.Type: GrantFiled: February 23, 1999Date of Patent: March 7, 2000Assignee: STMicroelectronics, Inc.Inventor: David L. Isaman
-
Patent number: 6026488Abstract: 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, thType: GrantFiled: February 20, 1998Date of Patent: February 15, 2000Assignee: International Business Machines CorporationInventors: John Stephen Liptay, Mark Anthony Check, Barry Watson Krumm, Jennifer Almoradie Navarro, Charles Franklin Webb
-
Patent number: 6026477Abstract: 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: GrantFiled: December 31, 1997Date of Patent: February 15, 2000Assignee: Intel CorporationInventors: Alan B. Kyker, Darrell D. Boggs
-
Patent number: 6021489Abstract: 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: GrantFiled: June 30, 1997Date of Patent: February 1, 2000Assignee: Intel CorporationInventor: Mircea Poplingher
-
Patent number: 6021487Abstract: A method and apparatus to divide a signed integer by a constant power of two using conditionally-executed instructions to choose between a first result in the event that the dividend is a negative signed integer and a second result in the event that the dividend is a positive signed integer, wherein values associated with the first result and the second result are generated simultaneously.Type: GrantFiled: December 16, 1996Date of Patent: February 1, 2000Assignee: Intel CorporationInventor: Richard L. Maliszewski
-
Patent number: 6018798Abstract: A floating point unit capable of executing multiple instructions in a single clock cycle using a central window and a register map is disclosed. The floating point unit comprises: a plurality of translation units, a future file, a central window, a plurality of functional units, a result queue, and a plurality of physical registers. The floating point unit receives speculative instructions, decodes them, and then stores them in the central window. Speculative top of stack values are generated for each instruction during decoding. Top of stack relative operands are computed to physical registers using a register map. Register stack exchange operations are performed during decoding. Instructions are then stored in the central window, which selects the oldest stored instructions to be issued to each functional pipeline and issues them. Conversion units convert the instruction's operands to an internal format, and normalization units detect and normalize any denormal operands.Type: GrantFiled: December 18, 1997Date of Patent: January 25, 2000Assignee: Advanced Micro Devices, Inc.Inventors: David B. Witt, Derrick R. Meyer
-
Patent number: 5991872Abstract: 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: GrantFiled: October 9, 1997Date of Patent: November 23, 1999Assignee: Kabushiki Kaisha ToshibaInventors: Mikio Shiraishi, Masaki Saitou, Yuji Okuda
-
Patent number: 5961632Abstract: A processor processes a plurality of instructions according to a disclosed method. First, the method receives (32) an instruction from the plurality of instructions. Second, the method determines (34) whether the received instruction is preceded by an instruction path leading code. Third, the method passes (36 or 38) the received instruction along at least one instruction path in a plurality of instruction paths. Fourth, in response to determining that the received instruction is preceded by an instruction path leading code, the method executes a machine word corresponding to the received instruction and selected from one of the plurality of instruction paths. Specifically, the selected instruction path is selected in response to the instruction path leading code.Type: GrantFiled: July 25, 1997Date of Patent: October 5, 1999Assignee: Texas Instruments IncorporatedInventors: Jonathan H. Shiell, Donald E. Steiss
-
Patent number: 5961637Abstract: A computer system for executing branch instructions and a method of executing branch instructions are described. Tow instruction fetchers respectively fetch a sequence of instructions from memory for execution and a sequence of instructions commencing from a target location identified by a set branch instruction in a sequence of instructions being executed. When an effect branch signal is generated, the target instructions are next executed, and the fetcher which was fetching the instructions for execution commences fetching of the target instructions. The effect branch signal is generated separately from the set branch instruction. In another aspect, the effect branch signal is generated on execution of a conditional effect branch instruction, located at the point in the instruction sequence where the branch is to be taken.Type: GrantFiled: June 21, 1995Date of Patent: October 5, 1999Assignee: SGS-Thomson Microelectronics LimitedInventors: Andrew C. Sturges, Nathan M. Sidwell
-
Patent number: 5928357Abstract: The pipeline architecture minimizes delays incurred during execution of branch instructions. While a first instruction is executing, a second instruction is fetched and is ready for execution at the beginning of the next clock cycle. Control logic examines the fetched instruction during the first clock cycle to determine whether the instruction is a branch instruction which may indicate that the address of the next instruction is not the next sequential address. Flags which indicate the state of the system are examined to determine if the address of the instruction is the next sequential address or the address indicated in the branch instruction. As this is performed during the fetch clock cycle of the branch instruction, during execution of the branch instruction, the instruction at the address selected is fetched and is ready for execution without delay.Type: GrantFiled: June 19, 1997Date of Patent: July 27, 1999Assignee: Intel CorporationInventors: Keith Frederick Underwood, Richard Joseph Durante