Predecoding Of Instruction Component Patents (Class 712/213)
  • Patent number: 6338132
    Abstract: An article comprising an instruction stored on a storage medium. The instruction includes opcode field storing an opcode signal and an operand field storing an operand signal. The operand is compressed prior to being stored in the operand field.
    Type: Grant
    Filed: December 30, 1998
    Date of Patent: January 8, 2002
    Assignee: Intel Corporation
    Inventors: Alan B. Kyker, Per Hammarlund, Chan Lee, Robert F. Krick, Hitesh Ahuja, William Alexander, Joseph Rohlman
  • Patent number: 6336178
    Abstract: An internal RISC-type instruction structure furnishes a fixed bit-length template including a plurality of defined bit fields for a plurality of operation (Op) formats. One format includes an instruction-type bit field, two source-operand bit fields and one destination-operand bit field for designating a register-to-register operation. Another format is a load-store format that includes an instruction-type bit field, an identifier of a source or destination register for the respective load or store operation, and bit fields for specifying the segment, base and index parameters of an address.
    Type: Grant
    Filed: September 11, 1998
    Date of Patent: January 1, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventor: John G. Favor
  • Patent number: 6317825
    Abstract: The invention relates to a microprocessor (MP) comprising means to decode (DEC1) a compact instruction (BMV) for the concatenation of at least one bit (bi) of a first binary word (W1) with at least one bit of a second binary word (W2), and means (REGBANK, MUX, BSHIFT) to process this instruction in one clock cycle. Advantages: fast processing of a concatenation operation. Application especially to chip cards.
    Type: Grant
    Filed: May 3, 2000
    Date of Patent: November 13, 2001
    Assignee: Inside Technologies
    Inventor: Sean Commercial
  • Patent number: 6314510
    Abstract: A microprocessor with reduced context switching overhead and a corresponding method is disclosed. The microprocessor comprises a working register file that comprises dirty bit registers and working registers. The working registers including one or more corresponding working registers for each of the dirty bit registers. The microprocessor also comprises a decoder unit that is configured to decode an instruction that has a dirty bit register field specifying a selected dirty bit register of the dirty bit registers. The decoder unit is configured to generate decode signals in response. Furthermore, the working register file is configured to cause the selected dirty bit register to store a new dirty bit in response to the decode signals. The new dirty bit indicates that each operand stored by the one or more corresponding working registers is inactive and no longer needs to be saved to memory if a new context switch occurs.
    Type: Grant
    Filed: April 14, 1999
    Date of Patent: November 6, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ashley Saulsbury, Daniel S. Rice
  • Patent number: 6308257
    Abstract: A method of generating boundary markers, for an instruction stream including variable-length instructions, includes generating a number of sets of potential boundary markers for a predetermined set of bytes within the instruction stream. Each set of potential boundary markers is generated based on a respective assumption regarding a boundary byte position within the predetermined set of bytes. For example, a number of sets of potential boundary markers may be generated based on assumptions that respective byte positions within the predetermined set of bytes include the start byte of an instruction. A further set of potential boundary markers may be generated based on an assumption that none of the byte positions within the predetermined set of bytes includes a start byte of instruction.
    Type: Grant
    Filed: April 20, 1999
    Date of Patent: October 23, 2001
    Assignee: Intel Corporation
    Inventors: Luke S. K. Theogarajan, James W. Dukes, Ken V. Diep
  • Patent number: 6304955
    Abstract: Performing hazard detection in a processor that exhibits register latencies between execution units. The opcode classes of producer and consumer instructions are determined. Using these opcode classes, the register latency between the producer and consumer instructions is determined, and a register status signal is sent.
    Type: Grant
    Filed: December 30, 1998
    Date of Patent: October 16, 2001
    Assignee: Intel Corporation
    Inventor: Judge K. Arora
  • Patent number: 6301650
    Abstract: The control unit of this invention has a microcode control system or systems for special purpose circuit suitable for specific data processing and a microcode control system for general purpose separately. In addition, the control unit has a fetch unit common for the above control systems. Therefore, in the data processing system having the control unit of this invention, the general purpose process and the process using the special purpose circuit, which is different from the general purpose process, are multiply executed, and synchronizing of this multiprocessing is solved in a instruction level.
    Type: Grant
    Filed: April 6, 1999
    Date of Patent: October 9, 2001
    Assignee: Pacific Design, Inc.
    Inventor: Tomoyoshi Satou
  • Patent number: 6292887
    Abstract: An apparatus and method of synchronizing instruction execution in the apparatus with external events. The apparatus may be a processor or microprocessor capable of executing a function specific wait state that is dependant upon a type specified by an instruction field. The processor includes an event counter that maintains an event occurrence count, an instruction parser that strips the instruction type and event count from instructions and passes the stripped information to a comparator. The comparator compares the stripped information against an event count. The instruction types include: a relative type indicating execution at some event occurrence subsequent to the present cycle; a direct type indicating an absolute event occurrence count for execution; and a event range indicating a range of event occurrences wherein execution is valid.
    Type: Grant
    Filed: March 31, 1999
    Date of Patent: September 18, 2001
    Assignee: International Business Machines Corp.
    Inventor: James P. Janniello
  • Patent number: 6286094
    Abstract: A method and system for determining if a dispatch slot is required in a processing system is disclosed. The method and system comprises a plurality of predecode bits to provide routing information and utilizing the predecode bits to allow instructions to be directed to specific decode slots and to obey dispatch constraints without examining the instructions. The purpose of this precode encoding system scheme is to provide the most information possible about the grouping of the instructions without increasing the complexity of the logic which uses this information for decode and group formation. In a preferred embodiment, pre-decode bits for each instruction that may be issued in parallel are analyzed and the multiplexer controls are retained for each of the possible starting positions within the stream of instructions.
    Type: Grant
    Filed: March 5, 1999
    Date of Patent: September 4, 2001
    Assignee: International Business Machines Corporation
    Inventors: John Edward Derrick, Lee Evan Eisen, Hung Qui Le, Brian R. Konigsburg
  • Patent number: 6275927
    Abstract: A microprocessor configured to reduce variance in the length of variable length instructions by compressing multiple prefix bytes into a single byte is disclosed. The microprocessor is configured with a predecode unit and an instruction cache. The predecode unit is configured to receive variable length instructions, each having a variable number of prefix bytes. The predecode unit is configured to detect the prefix bytes and compress them into one compressed prefix byte for each instruction. The instruction cache is coupled to the predecode unit and is configured to receive and store the instructions and compressed prefix bytes from the predecode unit. The instruction cache may be configured to output one of the instructions and any corresponding compressed prefix bytes in response to receiving a fetch address. A computer system, method, and software program configured to compress prefix bytes are also disclosed.
    Type: Grant
    Filed: September 21, 1998
    Date of Patent: August 14, 2001
    Assignee: Advanced Micro Devices.
    Inventor: James S. Roberts
  • Patent number: 6272619
    Abstract: A high-performance, superscalar-based computer system with out-of-order instruction execution for enhanced resource utilization and performance throughput. The computer system fetches a plurality of fixed length instructions with a specified, sequential program order (in-order). The computer system includes an instruction execution unit including a register file, a plurality of functional units, and an instruction control unit for examining the instructions and scheduling the instructions for out-of-order execution by the functional units. The register file includes a set of temporary data registers that are utilized by the instruction execution control unit to receive data results generated by the functional units. The data results of each executed instruction are stored in the temporary data registers until all prior instructions have been executed, thereby retiring the executed instructions in-order.
    Type: Grant
    Filed: November 10, 1999
    Date of Patent: August 7, 2001
    Assignee: Seiko Epson Corporation
    Inventors: Le Trong Nguyen, Derek J. Lentz, Yoshiyuki Miyayama, Sanjiv Garg, Yasuaki Hagiwara, Johannes Wang, Te-Li Lau, Sze-Shun Wang, Quang H. Trang
  • Patent number: 6260134
    Abstract: A predecode unit is configured to predecode a fixed number of instruction bytes of variable length instructions per clock cycle. The predecode unit outputs predecode bits which identify the start byte of an instruction. An instruction alignment unit uses the start bits to dispatch the instructions to a plurality of decode units that form fixed issue positions. In one embodiment, the predecode unit identifies a plurality of length vectors. Each length vector is associated with one of the instruction bytes predecoded in a clock cycle and identifies the length of an instruction if an instruction starts at the instruction byte corresponding to the length vector. A tree circuit determines in which instruction bytes instructions start.
    Type: Grant
    Filed: November 2, 1998
    Date of Patent: July 10, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Gerald D. Zuraski, Jr., Syed F. Ahmed, Paul K. Miller
  • Patent number: 6256726
    Abstract: The data processor for executing, instructions realized by wired logic, by a pipeline system, includes a plurality of instruction registers, and arithmetic operation units of the same number. A plurality of instructions read in the instruction registers in one machine cycle at a time are processed in parallel by the plurality of arithmetic operation units.
    Type: Grant
    Filed: November 20, 1992
    Date of Patent: July 3, 2001
    Assignee: Hitachi, Ltd.
    Inventors: Takashi Hotta, Shigeya Tanaka, Hideo Maejima
  • Patent number: 6253309
    Abstract: A microprocessor configured to rapidly decode variable-length instructions is disclosed. The microprocessor is configured with a predecoder and an instruction cache. The predecoder is configured to expand variable-length instructions to create fixed-length instructions by padding instruction fields within each variable-length instruction with constants until each field reaches a predetermined maximum width. The fixed-width instructions are then stored within the instruction cache and output for execution when a corresponding requested address is received. The instruction cache may store both variable- and fixed-width instructions, or just fixed-width instructions. An array of pointers may be used to access particular fixed-length instructions. The fixed-length instructions may be configured to all have the same fields and the same lengths, or they may be divided into groups, wherein instructions within each group have the same fields and the same lengths.
    Type: Grant
    Filed: September 21, 1998
    Date of Patent: June 26, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Rupaka Mahalingaiah
  • Patent number: 6253276
    Abstract: One embodiment of the present invention provides an apparatus for accessing a computer memory that bypasses decoding delays for memory type information within a memory controller. This apparatus includes a decoding circuit, for decoding a current address received from a processor to produce characteristics of a current memory module that is being accessed by the current address. These characteristics may include the size, type and speed of modules in the computer memory. The apparatus also includes a control signal generation circuit, for generating signals to control a memory access to the current address based upon the characteristics of the current memory module. The apparatus further includes a comparison module for determining whether the current address falls within a previously accessed memory module. The apparatus additionally includes a bypassing circuit.
    Type: Grant
    Filed: June 30, 1998
    Date of Patent: June 26, 2001
    Assignee: Micron Technology, Inc.
    Inventor: Joseph M. Jeddeloh
  • Patent number: 6253287
    Abstract: A microprocessor capable of predecoding variable-length instructions and storing them in a three-dimensional instruction cache is disclosed. The microprocessor may comprise a predecode unit, an instruction cache, and an address translation table. The predecode unit receives variable-length instructions from a main memory subsystem. These instructions are then predecoded by detecting instruction field boundaries within each variable-length instruction. Instructions fields that are not present in a particular instruction may be added by inserting padding constants so that the instruction matches a predetermined format having all instruction fields. The predecoded instruction is stored in the instruction cache, which may be logically and physically structured as a three-dimensional array. Each instruction is stored in the cache so that it has a fixed length in two dimensions. The address translation table maintains address translations for each instruction stored in the instruction cache.
    Type: Grant
    Filed: September 9, 1998
    Date of Patent: June 26, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thomas S. Green
  • Patent number: 6249787
    Abstract: A network browsing system includes a host computer coupled to a client computer by a network. A network browser process implemented on the client computer is capable of establishing a connection with the host computer and of generating a request for desired data from the host computer which is to generate desired images on the display of the client computer. A server process implemented on the host computer services the request for desired data received from the client computer by modifying the desired data into modified data such that no additional connection between the client computer and the host computer is required to receive the entirety of the modified data. The browser process of the client computer can generate the desired images from the modified data to the same extent that it could from the originally requested desired data.
    Type: Grant
    Filed: February 22, 2000
    Date of Patent: June 19, 2001
    Assignee: Cisco Systems, Inc.
    Inventors: Stephen I. Schleimer, John K. Ahlstrom, Paul L. Hickman
  • Publication number: 20010002483
    Abstract: A microprocessor configured to reduce variance in the length of variable length instructions by compressing multiple prefix bytes into a single byte is disclosed. The microprocessor is configured with a predecode unit and an instruction cache. The predecode unit is configured to receive variable length instructions, each having a variable number of prefix bytes. The predecode unit is configured to detect the prefix bytes and compress them into one compressed prefix byte for each instruction. The instruction cache is coupled to the predecode unit and is configured to receive and store the instructions and compressed prefix bytes from the predecode unit. The instruction cache may be configured to output one of the instructions and any corresponding compressed prefix bytes in response to receiving a fetch address. A computer system, method, and software program configured to compress prefix bytes are also disclosed.
    Type: Application
    Filed: September 21, 1998
    Publication date: May 31, 2001
    Applicant: ADVANCED-LENGTH INSTRUCTION PREFIX BYTES
    Inventor: JAMES R. ROBERTS
  • Patent number: 6240506
    Abstract: A microprocessor configured to predecode instructions with variable address and operand lengths into a uniform format with constant address and operand lengths is disclosed. The microprocessor may comprise a predecode unit configured to receive instruction bytes from a main memory subsystem. The predecode unit is configured to detect instructions having prefix bytes that override default operand and address field lengths. This information, combined with the instruction's default operand and address length, allows the predecode unit to expand addresses and operands that are shorter than the predetermined uniform length. The operands and addresses are expanded by padding them with constants. Once the instructions are padded to a uniform format, they are stored in an instruction cache. An address translation table may be used to translate fetch addresses, thereby compensating for the offset created by the padding constants.
    Type: Grant
    Filed: October 2, 1998
    Date of Patent: May 29, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Paul K. Miller
  • Patent number: 6223254
    Abstract: The present invention utilizes a cache which stores various decoded instructions, or parcels, so that these parcels can be made available to the execution units without having to decode a microprocessor instruction, such as a CISC instruction, or the like. This increases performance by bypassing the fetch/decode pipeline stages on the front end of the microprocessor by using a parcel cache to store previously decoded instructions. The parcel cache is coupled to the microprocessor fetch/decode unit and can be searched during an instruction fetch cycle. This search of the parcel cache will occur in parallel with the search of the microprocessor instruction cache. When parcel(s) corresponding to the complex instruction being fetched are found in the parcel cache a hit occurs and the corresponding micro-ops are then sent to the execution units, bypassing the previous pipeline stages.
    Type: Grant
    Filed: December 4, 1998
    Date of Patent: April 24, 2001
    Assignee: STMicroelectronics, Inc.
    Inventor: Naresh Soni
  • Patent number: 6205518
    Abstract: Apparatus and methods are described for reducing power consumption in a processor. The processor includes a source of microcode instructions, a microcode instruction decode circuit, control register latches and a clock gate control circuit that is coupled to the source of microcode instructions. The clock gate control circuit searches and picks groups of clock gate control signals for the latches that are the same value (state) as control signals form a previous cycle.
    Type: Grant
    Filed: August 5, 1998
    Date of Patent: March 20, 2001
    Assignee: International Business Machines Corporation
    Inventors: William P. Moore, Sebastian T. Ventrone
  • Patent number: 6192468
    Abstract: A superscalar microprocessor implements a microcode instruction unit with sequence control fields appended to each microcode line. The sequence control fields indicate whether a subsequent line contains a branch instruction, whether a subsequent line is the last line in a microcode sequence, and other sequence control information. The sequence control information is accessed one cycle before the microcode line. This allows the next address to be calculated in parallel with the accessing of the microcode instruction line. By generating the next address in parallel with accessing the microcode line, the time delay from accessing one microcode line to accessing the next microcode line is reduced. The sequence control field additionally indicates how many microcode instructions are in the last line of the microcode sequence.
    Type: Grant
    Filed: October 27, 1999
    Date of Patent: February 20, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rupaka Mahalingaiah, Paul K. Miller
  • Patent number: 6178491
    Abstract: A compiler system (190) stores a data structure (101, e.g., a program) to a memory (110) of an execution system (100). The data structure (101) comprises, for example, processor instructions coded by compressed portions of variable lengths. The compiler system (190) partitions some or all memory lines (115) of the memory (110) into P≧2 partitions, e.g., &agr; and &bgr;, and writes code portions A to a first partition (e.g., &agr;) and second code portions B to a second partition (e.g., &bgr;) of an adjacent memory line (115). The compiler system (190) also stores addresses for some or all of the code portions in, for example, the memory (110). The addresses (260) have pointers (a and b) which indicate start positions (jA and jB) for portions A and B. Optionally, pointer magnitudes distinguish portion-to-pointer relations without the need for further identification bits.
    Type: Grant
    Filed: March 22, 1999
    Date of Patent: January 23, 2001
    Assignee: Motorola Inc.
    Inventors: Arie Ben-Ephraim, Vitaly Sukonik, Avi Ginsberg, Alexandre Saper, Alex Miretsky
  • Patent number: 6175909
    Abstract: A microprocessor configured to use historical scan information to speed instruction scanning is disclosed. The microprocessor may comprise an instruction cache, a scanning history table, routing logic, and two or more scanning units. The instruction cache is configured to output sequences of stored instruction bytes in response to receiving corresponding fetch addresses. The scanning history table, which may also receive the fetch addresses, is configured to output corresponding stored scan block boundary information. The routing logic, which is coupled between the instruction cache, scanning history table, and scanning units, is configured to route the first N instructions to the first scanning unit, and the second N instructions to the second scanning unit, wherein N is a predetermined integer greater than one. The scanning units are configured to operate independently and in parallel.
    Type: Grant
    Filed: February 2, 1999
    Date of Patent: January 16, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Andrew McBride
  • Patent number: 6175908
    Abstract: A superscalar microprocesor is provided that includes a predecode unit adapted for predecoding variable byte-length instructions. The predecode unit predecodes the instructions prior to their storage within an instruction cache. In one system, a predecode unit is configured to generate a plurality of predecode bits including a start bit, an end bit, and a functional bit for each instruction byte. The plurality of predecode bits associated with each instruction byte are collectively referred to as a predecode tag. An instruction alignment unit then uses the predecode tags to dispatch the variable byte-length instructions to a plurality of decode units within the superscalar microprocessor. The predecode unit is configured such that the meaning of the functional bit of a particular predecode tag is dependent upon the status of the start bit.
    Type: Grant
    Filed: April 30, 1998
    Date of Patent: January 16, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: James K. Pickett
  • Patent number: 6167507
    Abstract: A microprocessor detects a floating point exchange instruction followed by a floating point instruction and dispatches the two instructions to the floating point unit as one combined instruction. The predecode unit marks the two instructions as a single instruction. A start bit is asserted for the first byte of the floating point exchange instruction and an end bit is asserted for the last byte of the floating point instruction. The combined instruction is dispatched into the instruction execution pipeline. A decode unit decodes the opcodes of the two instructions and passes the opcode of the floating point instruction to the floating point unit and passes exchange register information to the floating point unit The exchange register information includes a sufficient number of bits to specify a floating point register and a valid bit.
    Type: Grant
    Filed: March 3, 1999
    Date of Patent: December 26, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rupaka Mahalingaiah, Paul K. Miller
  • Patent number: 6167506
    Abstract: 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: Grant
    Filed: April 23, 1998
    Date of Patent: December 26, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6148393
    Abstract: A valid mask generator comprising a series of mask generation blocks. Each block generates a predetermined number of valid mask bits given a predetermined number of start pointer bits and end bits, wherein said predetermined number of valid mask bits generated by each block is less than the total number of bits in the valid mask. The series of mask generation blocks may be connected in series, wherein each block outputs a carry-out signal, and wherein each block receives the carry-out signal from the node before it as a carry-in signal. A method for generating a valid mask from a start pointer and a plurality of end bits is also contemplated.
    Type: Grant
    Filed: March 12, 1998
    Date of Patent: November 14, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, Rammohan Narayan, Shane Southard
  • Patent number: 6145125
    Abstract: A method for effecting a direct jump in an executable program module to a target address displaced from a source address by a specified distance that is greater than a maximum permitted range. During program linkage the direct jump is split into at least two component direct jumps each no greater than the maximum permitted range, thus allowing the direct jump to be achieved by jumping sequentially from the source address to the target address via each of the component direct jumps. A storage medium for storing data representative of the executable program module contains at least one trampoline for performing the component direct jumps.
    Type: Grant
    Filed: November 12, 1998
    Date of Patent: November 7, 2000
    Assignee: International Business Machines Corporation
    Inventors: Jan Civlin, Gadi Haber, Bilha Mendelson, David Bernstein, Itai Nahshon
  • Patent number: 6141745
    Abstract: A superscalar microprocessor is provided that includes a predecode unit adapted for predecoding variable byte-length instructions. The predecode unit predecodes the instructions prior to their storage within an instruction cache. In one system, a predecode unit is configured to generate a plurality of predecode bits including a start bit, an end bit, and a functional bit for each instruction byte. The plurality of predecode bits associated with each instruction byte are collectively referred to as a predecode tag. An instruction alignment unit then uses the predecode tags to dispatch the variable byte-length instructions to a plurality of decode units within the superscalar microprocessor. The predecode unit is configured such that the meaning of the functional bit of a particular predecode tag is dependent upon the status of the end bit.
    Type: Grant
    Filed: April 30, 1998
    Date of Patent: October 31, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: James K. Pickett
  • Patent number: 6134651
    Abstract: A reorder buffer is configured into multiple lines of storage, wherein a line of storage includes sufficient storage for instruction results regarding a predefined maximum number of concurrently dispatchable instructions. A line of storage is allocated whenever one or more instructions are dispatched. A microprocessor employing the reorder buffer is also configured with fixed, symmetrical issue positions. The symmetrical nature of the issue positions may increase the average number of instructions to be concurrently dispatched and executed by the microprocessor. The average number of unused locations within the line decreases as the average number of concurrently dispatched instructions increases. One particular implementation of the reorder buffer includes a future file. The future file comprises a storage location corresponding to each register within the microprocessor.
    Type: Grant
    Filed: December 10, 1999
    Date of Patent: October 17, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, Thang M. Tran
  • Patent number: 6134648
    Abstract: A method for operating a Reduced Instruction Set Computer (RISC) processor that executes normal RISC instructions and special RISC instructions. The method comprises the step of controlling the RISC processor to perform a single operation, using a single functional unit of the RISC processor, in response to each normal RISC instruction. The method also comprises the step of controlling the RISC processor to perform multiple operations, using multiple functional units of the RISC processor in parallel, in response to each special RISC instruction.
    Type: Grant
    Filed: December 8, 1997
    Date of Patent: October 17, 2000
    Assignee: Micron Technology, Inc.
    Inventors: James Peterson, Glenn C. Poole, Mohammed Sriti
  • Patent number: 6134649
    Abstract: A processor is configured to predecode instruction bytes prior to storing them in an instruction cache. The predecode information generated by the processor includes instruction boundary indications identifying which of the instruction bytes are boundaries of instructions and control transfer indications identifying which of the instructions are control transfer instructions. The combination of the control transfer indications and the instruction boundary indications allows the branch prediction mechanism to locate the branch instructions in a group of instruction bytes fetched from instruction cache by scanning the control transfer and instruction boundary indications. In one embodiment, the branch prediction mechanism attempts to predict up to two branch instructions per clock cycle. Accordingly, the branch prediction mechanism scans the control transfer and instruction boundary indications to locate the first two branch instructions within a group of instruction bytes fetched from the instruction cache.
    Type: Grant
    Filed: April 23, 1998
    Date of Patent: October 17, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6134650
    Abstract: A superscalar microprocessor predecodes instruction data to identify the boundaries of instructions and the type of instruction. When the cache line is scanned for dispatch, the first scanned instruction is predicted to be a microcode instruction and is dispatched to the MROM unit. A microcode scan circuit uses the location of the first scanned instruction and the functional bits of the predecode data to multiplex instruction specific bytes of the first scanned instruction to the MROM unit. If the first scanned instruction is not the first microcode instruction, then in a subsequent clock cycle, the first microcode instruction is dispatched the MROM unit and the mispredicted instruction is canceled.
    Type: Grant
    Filed: December 12, 1997
    Date of Patent: October 17, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Gerald D. Zuraski, Jr., Shane Southard, Mauricio Calle
  • 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: 6125441
    Abstract: An instruction cache having a pattern detector for use in predicting the length of variable length instructions in a microprocessor. The instruction cache comprises an instruction length calculation unit and the pattern detector. The pattern detector is configured with a content addressable memory and update logic. The content addressable memory stores fetch addresses and instruction lengths calculated by the calculation unit. The content addressable memory compares particular fetch addresses that it receives with fetch addresses already stored and outputs corresponding predicted instruction length sequences. The content addressable memory may receive, compare, and store instruction lengths or instruction bytes in addition to, or in lieu of, fetch addresses. A neural network or other type of memory configuration may be used in place of the content addressable memory.
    Type: Grant
    Filed: December 18, 1997
    Date of Patent: September 26, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thomas S. Green
  • Patent number: 6108655
    Abstract: A network browsing system includes a host computer coupled to a client computer by a network. A network browser process implemented on the client computer is capable of establishing a connection with the host computer and of generating a request for desired data from the host computer which is to generate desired images on the display of the client computer. A server process implemented on the host computer services the request for desired data received from the client computer by modifying the desired data into modified data such that no additional connection between the client computer and the host computer is required to receive the entirety of the modified data. The browser process of the client computer can generate the desired images from the modified data to the same extent that it could from the originally requested desired data.
    Type: Grant
    Filed: July 18, 1997
    Date of Patent: August 22, 2000
    Assignee: Cisco Technology, Inc.
    Inventors: Stephen I. Schleimer, John K. Ahlstrom, Paul L. Hickman
  • Patent number: 6105125
    Abstract: A microcode based decoder circuit for microprocessors that uses fast access tables to decode instructions. The pointers to the tables are generated directly from the instruction prefetch buffers. Information bits about the instruction are added to the tables at no extra cost and enable the faster decode of the instruction. The present invention includes the decode of an instruction using an entry ROM, which contains information regarding the instruction that can directly be used in generating the decoder outputs. This information is also used in selecting the correct ROM entry, thus enhancing the flexibility of the decoder, and to dynamically generate a generic microcode entry. Thus, microcode space requirements are reduced. A generic microcode instruction is used for commonly used, similar macroinstructions. This avoids duplication of microcode instructions and thus reduces the required microcode space.
    Type: Grant
    Filed: November 12, 1997
    Date of Patent: August 15, 2000
    Assignee: National Semiconductor Corporation
    Inventors: Mario Nemirovsky, Shailaja Chenumalla
  • Patent number: 6092182
    Abstract: A microprocessor configured to store predecode information that is removed from an instruction cache is disclosed. In one embodiment, the microprocessor comprises a predecode unit and an instruction cache. The predecode unit is configured to receive instruction bytes from a level two cache and generate corresponding predecode information. The instruction cache is coupled to the predecode unit and comprises two pluralities of storage locations, one for storing instruction bytes and a second for storing predecode information corresponding to the instruction bytes. The instruction cache is configured to receive and store the instruction bytes and predecode information from the predecode unit. The instruction cache is also configured to output at least part of the corresponding predecode information for storage in the level two cache when the instruction bytes and corresponding predecode information are replaced in the instruction cache.
    Type: Grant
    Filed: June 24, 1998
    Date of Patent: July 18, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Rupaka Mahalingaiah
  • Patent number: 6085314
    Abstract: A CPU or microprocessor which includes a general purpose CPU component, such as an X86 core, and also includes a DSP core. In a first embodiment, the CPU receives general purpose instructions, such as X86 instructions, wherein certain X86 instruction sequences implement DSP functions. The CPU includes a processor mode register which is written with one or more processor mode bits to indicate whether an instruction sequence implements a DSP function. The CPU also includes an intelligent DSP function decoder or preprocessor which examines the processor mode bits and determines if a DSP function is being executed. If a DSP function is being implemented by an instruction sequence, the DSP function decoder converts or maps the opcodes to a DSP macro instruction that is provided to the DSP core. The DSP core executes one or more DSP instructions to implement the desired DSP function in response to the macro instruction.
    Type: Grant
    Filed: November 14, 1997
    Date of Patent: July 4, 2000
    Assignee: Advnced Micro Devices, Inc.
    Inventors: Saf Asghar, Andrew Mills
  • Patent number: 6081884
    Abstract: A microprocessor optimized to execute two instruction sets in a long instruction word (LIW) format. One instruction set may have variable length instructions. The microprocessor has an alignment unit configured to detect variable length instructions as they are fetched from an instruction cache, and then embed the variable length instructions within a long instruction word. The long instruction words are stored in a central window until they are executed by a number of functional units. A number of the microprocessor's functional units may be configured to execute instructions from both instruction sets. These dual instruction set-capable functional units may be used in conjunction with an MROM unit configured to translate a subset of instructions from one instruction set into less complex instructions in either instruction set. The central window may be configured to shift the order of the long instruction words before they are issued in order to minimize the amount of time the functional units are idle.
    Type: Grant
    Filed: January 5, 1998
    Date of Patent: June 27, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Paul K. Miller
  • Patent number: 6076159
    Abstract: A data processor is disclosed which comprises a first pipeline for decoding and executing data instructions, a second pipeline for decoding and executing address instructions, a unit for issuing multiple instructions to the pipelines, a first set of registers being coupled with the first pipeline, and a second set of registers being coupled with the second pipeline, wherein first and second pipeline process data in parallel.
    Type: Grant
    Filed: September 12, 1997
    Date of Patent: June 13, 2000
    Assignee: Siemens Aktiengesellschaft
    Inventors: Rod G. Fleck, Ole H. Moller, Gigy Baror
  • Patent number: 6061786
    Abstract: A processor employs predecoding to identify instruction boundaries as well as to identify which instructions are branch instructions. In one embodiment, the processor stores a start bit corresponding to each instruction byte in the instruction cache with the instruction bytes. The start bit identifies which instruction bytes are the start of an instruction. Additionally, the processor stores a control transfer bit corresponding to each instruction byte. The control transfer bit corresponding to each instruction byte identified as the start of an instruction is used to indicate whether or not the instruction is a branch instruction. Additionally, the byte identified as the start of the branch instruction via the start bit and control transfer bit is partially decoded upon fetch of the branch instruction from the instruction cache to select the branch target address corresponding to the branch instruction from one of several possible target addresses.
    Type: Grant
    Filed: April 23, 1998
    Date of Patent: May 9, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6055620
    Abstract: A control apparatus and method is provided for controlling operations of functional units in systems. The control apparatus and method implement a set of operations that can include dependencies between the functional units of a system to complete each operation. For example, in an asynchronous digital processor, self-timing and inter-block communication are used to implement a self-timed scheduler. The self-timed scheduler and method implement an instruction set using a plurality of functional units of the asynchronous digital processor. A scheduler can include a scheduler decoder that decodes each instruction to generate functional unit schedule and control information, a communication device and a plurality of scheduler functional unit controllers, wherein each of the scheduler functional unit controllers corresponds to one of the plurality of functional units of a system.
    Type: Grant
    Filed: September 18, 1997
    Date of Patent: April 25, 2000
    Assignees: LG Semicon Co., Ltd., Cogency Technology Incorporated
    Inventors: Nigel C. Paver, Paul Day
  • Patent number: 6049862
    Abstract: A signal processor is disclosed having a program memory which stores compressed program instructions and a decoder device which decodes the compressed program instructions to form decoded program instructions for controlling functions of the signal processor. The decoder device has a programmable decoder and a fixed decoding arrangement, where the fixed decoding arrangement is non-programmable and hardwired for decoding the compressed program instructions using logical operations. The programmable decoder includes a decoder memory, such as a ROM or RAM, having cells for storing the decoded program instructions in an uncompressed form. These cells are addressed for executing programmable decoding functions of the programmable decoder. The compressed program instructions include a first number of bits for determining a category of the compressed program instructions and a second number of bits for determining the address of the cells.
    Type: Grant
    Filed: July 16, 1997
    Date of Patent: April 11, 2000
    Assignee: U.S. Philips Corporation
    Inventors: Harald Bauer, Peter Kempf, Dietmar Lorenz, Peter Meyer
  • Patent number: 6049863
    Abstract: A predecode unit is configured to predecode variable byte-length instructions prior to their storage within an instruction cache of a superscalar microprocessor. The predecode unit generates three predecode bits associated with each byte of instruction code: a "start" bit, an "end" bit, and a "functional" bit. The start bit is set if the associated byte is the first byte of the instruction. Similarly, the end bit is set if the byte is the last byte of the instruction. The functional bits convey information regarding the location of an opcode byte for a particular instruction as well as an indication of whether the instruction can be decoded directly by the decode logic of the processor or whether the instruction is executed by invoking a microcode procedure controlled by an MROM unit. For fast path instructions, the functional bit is set for each prefix byte included in the instruction, and cleared for other bytes.
    Type: Grant
    Filed: June 11, 1997
    Date of Patent: April 11, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang M. Tran, Rammohan Narayan, Andrew McBride, Karthikeyan Muthusamy
  • Patent number: 6044455
    Abstract: A central processing unit includes an adder dedicated to address calculation provided separately from an ALU, a first address data route connected to a program counter and a stack pointer register, a second address data route connected to a prefetch que, a predecoder for determining whether an instruction to be executed calls for an addressing mode whereby a value in the program counter or the SP register is added to an immediate address in an instruction code. With this arrangement, if the addressing mode is called for, address calculation by the adder is performed concurrently with computation using an operand for another instruction, in accordance with a control signal output by the predecoder.
    Type: Grant
    Filed: October 23, 1997
    Date of Patent: March 28, 2000
    Assignee: Ricoh Company, Ltd.
    Inventor: Kazuhiko Hara
  • Patent number: 6044453
    Abstract: A programmable circuit and method for a data processing apparatus is provided that allows an entire instruction or instruction set to be modified. According to the present invention, the instruction can be modified, for example, during initialization or execution. The programmable circuit for a data processing apparatus can include a plurality of functional units, each functional unit performing a set of prescribed operations. A programmable circuit that is capable of modifying an entire instruction. A controller that decodes a current instruction to perform a corresponding instruction task using the plurality of functional units and a communications device coupling the functional units, the programmable circuit and the controller.
    Type: Grant
    Filed: September 30, 1997
    Date of Patent: March 28, 2000
    Assignees: LG Semicon Co., Ltd., Cogency Technology Incorporated
    Inventor: Nigel C. Paver
  • Patent number: 6041405
    Abstract: A microprocessor configured to predict the length of variable length instructions for decoding purposes by detecting patterns of instruction lengths that have been previously decoded. The microprocessor has a cache, an instruction length calculation unit, and a pattern detector. The instruction length calculation unit receives instruction bytes from the cache and generates an instruction length corresponding thereto. The pattern detector stores a plurality of instruction length sequences, each comprising an initial sequence and a final sequence. The pattern detector is configured to receive instruction lengths from the length calculation unit and compare them with the stored initial sequences. If the pattern detector finds a match, it outputs the corresponding final sequence for use as predicted instruction lengths. A method for using instruction length pattern detection for decoding is also disclosed.
    Type: Grant
    Filed: December 18, 1997
    Date of Patent: March 21, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thomas S. Green
  • Patent number: 6029240
    Abstract: A digital computer system capable of processing two or more computer instructions in parallel and having a cache storage unit for temporarily storing machine-level computer instructions in their journey from a higher-level storage unit of the computer system to the functional units which process the instructions. The computer system includes an instruction compounding unit located intermediate to the higher-level storage unit and the cache storage unit for analyzing the instructions and generating for to each instruction a compounding information which indicates whether or not that instruction may be processed in parallel with one or more neighboring instructions in the instruction stream. These tagged instructions are then stored in the cache unit with the compounding information. The computer system further includes a plurality of functional instruction processing units which operate in parallel with one another. The instructions supplied to these functional units are obtained from the cache storage unit.
    Type: Grant
    Filed: May 30, 1995
    Date of Patent: February 22, 2000
    Assignee: International Business Machines Corporation
    Inventors: Bartholomew Blaner, Stamatis Vassiliadis