Instruction Alignment Patents (Class 712/204)
  • Publication number: 20030084270
    Abstract: A system and method for extracting complex, variable length computer instructions from a stream of complex instructions each subdivided into a variable number of instructions bytes, and aligning instruction bytes of individual ones of the complex instructions. The system receives a portion of the stream of complex instructions and extracts a first set of instruction bytes starting with the first instruction bytes, using an extract shifter. The set of instruction bytes are then passed to an align latch where they are aligned and output to a next instruction detector. The next instruction detector determines the end of the first instruction based on said set of instruction bytes. An extract shifter is used to extract and provide the next set of instruction bytes to an align shifter which aligns and outputs the next instruction. The process is then repeated for the remaining instruction bytes in the stream of complex instructions.
    Type: Application
    Filed: February 4, 2002
    Publication date: May 1, 2003
    Applicant: Transmeta Corp.
    Inventors: Brett Coon, Yoshiyuki Miyayama, Le Trong Nguyen, Johannes Wang
  • Patent number: 6546478
    Abstract: A line predictor caches alignment information for instructions. In response to each fetch address, the line predictor provides alignment information for the instruction beginning at the fetch address, as well as one or more additional instructions subsequent to that instruction. The alignment information may be, for example, instruction pointers, each of which directly locates a corresponding instruction within a plurality of instruction bytes fetched in response to the fetch address. The line predictor may include a memory having multiple entries, each entry storing up to a predefined maximum number of instruction pointers and a fetch address corresponding to the instruction identified by a first one of the instruction pointers. Furthermore, each entry may store additional information regarding the terminating instruction within the entry. In one embodiment, the additional information includes an indication of the branch displacement when the terminating instruction is a branch instruction.
    Type: Grant
    Filed: October 14, 1999
    Date of Patent: April 8, 2003
    Assignee: Advanced Micro Devices, Inc.
    Inventors: James B. Keller, Puneet Sharma, Keith R. Schakel, Francis M. Matus
  • Patent number: 6542862
    Abstract: An apparatus and method for determining register dependency in multiple architecture system. The system includes a microprocessor emulating an emulated instruction set using a native instruction set where the microprocessor contains at least one register. An execution engine provides the native instructions where each native instruction contains at least one register identifier. Flags are provided to each native instruction where each flag indicates whether a register identifier is valid. A bundler checks for dependency among the valid register identifiers in the native instructions.
    Type: Grant
    Filed: February 18, 2000
    Date of Patent: April 1, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Kevin David Safford, Patrick Knebel, Joel D Lamb
  • Patent number: 6539469
    Abstract: A processor comprises an instruction cache that stores a cache line of instructions and an execution engine for executing the instructions, along with a buffer to store a plurality of entries. A first logic circuit divides the cache line into instruction bundles, each of which gets written into an entry of the buffer. A second logic circuit reads out a number of consecutive instruction bundles from the buffer for dispersal to the execution engine to optimize speculative fetching and maximizing instruction supply to the execution resources of the processor.
    Type: Grant
    Filed: October 12, 1999
    Date of Patent: March 25, 2003
    Assignee: Intel Corporation
    Inventor: Jesse Pan
  • Patent number: 6530013
    Abstract: In an instruction control apparatus that enables a plurality of instructions of different instruction lengths to be selected simultaneously from an instruction buffer, the amount of circuitry is reduced while achieving high speed processing. The instruction control apparatus includes a selection circuit and a pointer that points to the beginning of the next instruction word, within the instruction sequence fetched in a holding means, to be loaded into an execution stage. The selection circuit first selects a portion of the instruction sequence, starting from the beginning pointed to by the pointer and extending until reaching a maximum length of instructions that can be loaded into the execution stage, then simultaneously examines the lengths of instructions contained in the selected portion on the basis of a minimum instruction length unit, and selects the plurality of instructions to be loaded into the execution stage, based on the combination of the instruction lengths.
    Type: Grant
    Filed: December 16, 1999
    Date of Patent: March 4, 2003
    Assignee: Fujitsu Limited
    Inventors: Michiharu Hara, Aiichiro Inoue
  • Patent number: 6502179
    Abstract: A processor for performing calculations based on an instruction code, the number of bits of which is not an integer multiple of a byte. The instruction code is divided into higher order bits and lower order bits. The number of the lower order bits is an integer multiple of one byte. A memory stores the lower order bits in a lower order bit storage section and the higher order bits in a higher order bit storage section. The lower order bits and the corresponding higher order bits are read from the memory in the same cycle when generating the instruction code.
    Type: Grant
    Filed: January 25, 2001
    Date of Patent: December 31, 2002
    Assignee: Fujitsu Limited
    Inventors: Teruyoshi Kondo, Masayuki Takeshige, Sumitaka Hibino, Hayato Isobe, Yukisato Miyazaki, Kunihiro Ohara, Kazuya Taniguchi, Hiroshi Naritomi
  • Patent number: 6499097
    Abstract: The present invention provides an instruction fetch unit aligner. In one embodiment, an apparatus for an instruction fetch unit aligner includes selection logic for selecting a non-power of two size instruction from power of two size instruction data, and control logic for controlling the selection logic.
    Type: Grant
    Filed: May 31, 2001
    Date of Patent: December 24, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Graham R. Murphy, Frank C. Chiu
  • Publication number: 20020169944
    Abstract: A method and apparatus for solving the output dependence problem in an explicit parallelism architecture microprocessor with consideration for implementation of the precise exception. In case of an output dependence hazard, the issue into bypass of a result of the earlier issued operation having an output hazard is cancelled. Latencies of short instructions are aligned by including additional stages on the way of writing the results into the register file in shorter executive units, which allows to save the issue order while writing the results into the register file. For long and unpredictable latencies of the instructions, writing of the result of the earlier issued operation having an output dependence hazard into the register file is cancelled after checking for no precise exception condition. All additional stages are connected to the bypass not to increase the result access time in case of this result use in the following operations.
    Type: Application
    Filed: December 11, 2001
    Publication date: November 14, 2002
    Applicant: Elbrus International
    Inventors: Boris A. Babaian, Valeri G. Gorokhov, Feodor A. Gruzdov, Vladimir V. Rudometov, Yuli K. Sakhin, Vladimir Y. Volkonsky
  • Patent number: 6477699
    Abstract: Method for implementing electronic circuit designs that are adaptable to different binary data formats. Separate packages are provided for the different binary data formats. The names of the constants and subtypes are identical as between the packages, and the values associated with the constants and subtypes in each of the packages are particular to the associated data format. A selected one of the packages is imported into the. design, and selected references in the design to binary data are made using the names of the constants and subtypes set forth in the packages. The circuit design is then implemented by synthesizing and mapping the design to the selected device.
    Type: Grant
    Filed: June 19, 2001
    Date of Patent: November 5, 2002
    Assignee: Xilinx, Inc.
    Inventor: Goran Bilski
  • Publication number: 20020156996
    Abstract: A method, cache controller, and computer processor provide a parallel mapping system whereby a plurality of mappers processes several inputs simultaneously. The plurality of mappers are disposed in a pipelined processor upstream from a multiplexor. Mapping, tag comparison, and selection by the multiplexor all occur in a single pipeline stage. Data does not wait idly to be selected by the multiplexor. Instead, each instruction of a first instruction set is read in parallel into a corresponding one of the plurality of mappers. This parallel mapping system implementation reduces processor cycle time and results in improved processor efficiency.
    Type: Application
    Filed: April 18, 2001
    Publication date: October 24, 2002
    Applicant: MIPS Technologies, Inc.
    Inventors: Ryan C. Kinter, David A. Courtright
  • Patent number: 6457117
    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: November 7, 2000
    Date of Patent: September 24, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6456891
    Abstract: A system and method for transparent handling of extended register states. A set of additional registers, or an extended register file, is added to the base architecture of a microprocessor. The extended register file includes two dedicated registers and a plurality of general-use registers. The extended register file is mapped to a region in main memory. One dedicated register of the extended register file stores the physical base address of the memory region. Another dedicated register of the extended register file is used to store bits to indicate the status of the extended register file. A set of extended instructions is implemented for transferring data to and from the extended register file.
    Type: Grant
    Filed: October 27, 1999
    Date of Patent: September 24, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Uwe Kranich, David S. Christie
  • Patent number: 6442701
    Abstract: A method of optimizing assembly code of a VLIW processor (10) or other processor that uses multiple-instruction words (20), each of which comprise instructions to be executed on different functional units (11d and 11e) of the processor (10). The instruction words (20) are modified, such that NOPs instructions are aligned in the same slot from one instruction to the next for a series of instructions. This modification permits memory access to be disabled so that those instructions are not fetched.
    Type: Grant
    Filed: October 8, 1999
    Date of Patent: August 27, 2002
    Assignee: Texas Instruments Incorporated
    Inventor: Linda L. Hurd
  • Patent number: 6434693
    Abstract: The present invention provides a system and method for managing load and store operations necessary for reading from and writing to memory or I/O in a superscalar RISC architecture environment. To perform this task, a load store unit is provided whose main purpose is to make load requests out of order whenever possible to get the load data back for use by an instruction execution unit as quickly as possible. A load operation can only be performed out of order if there are no address-collisions and no write pendings. An address collision occurs when a read is requested at a memory location where an older instruction will be writing. Write pending refers to the case where an older instruction requests a store operation, but the store address has not yet been calculated. The data cache unit returns 8 bytes of unaligned data. The load/store unit aligns this data properly before it is returned to the instruction execution unit.
    Type: Grant
    Filed: November 12, 1999
    Date of Patent: August 13, 2002
    Assignee: Seiko Epson Corporation
    Inventors: Cheryl D. Senter, Johannes Wang
  • Patent number: 6418527
    Abstract: A system for instructing a data processor, the system including an instruction root having an operation selection field for selecting an operation to be performed by said data processor and an instruction prefix. The instruction prefix has a field selected from the group of a conditional execution field for selecting a condition under which a data processor will perform said selected operation, an operand length modification field for modifying the selected operation so as to be performed on an operand having a different length, an instruction group field for selecting a length of an instruction group that includes the instruction root, and a prefix length selection field for selecting a length of said instruction prefix. A data processor system responsive to this instruction system is also disclosed. An instruction system for statically grouping instructions without using an instruction prefix is also disclosed.
    Type: Grant
    Filed: October 13, 1998
    Date of Patent: July 9, 2002
    Assignee: Motorola, Inc.
    Inventors: Zvika Rozenshein, Jacob Tokar, Uri Dayan, Joe Paul Gergen
  • Publication number: 20020087830
    Abstract: There is disclosed bundle alignment and dispersal circuitry for use in a data processor.
    Type: Application
    Filed: December 29, 2000
    Publication date: July 4, 2002
    Inventors: Paolo Faraboschi, Anthony X. Jarvis, Mark Owen Homewood, Geoffrey M. Brown, Gary L. Vondran
  • Patent number: 6415376
    Abstract: An apparatus and method for issue grouping of instructions in a VLIW processor is disclosed. There can be one, two, or three issue groups (but no greater than three issue groups) in each VLIW packet. In one embodiment, a template in the VLIW packet comprises two issue group end markers where each issue group end marker comprises three bits. The three bits in the first issue group end marker identifies the instruction which is the last instruction in the first issue group. Likewise, the three bits in the second issue group end marker identifies the instruction which is the last instruction in the second issue group. Any instructions in the VLIW packet falling outside the two expressly defined first and second issue groups are placed in a third issue group. As such, three issue groups can be identified by use of the two issue group end markers. In one embodiment, the template of the VLIW packet includes a chaining bit.
    Type: Grant
    Filed: June 16, 2000
    Date of Patent: July 2, 2002
    Assignee: Conexant Sytems, Inc.
    Inventors: Moataz A Mohamed, Chien-Wei Li, John R. Spence
  • Publication number: 20020083301
    Abstract: Embodiments of the present invention provide a pre-decoder in a front-end system provided between an instruction cache and a decoder. The front-end system may toggle between two modes of operation. In a first mode, called the “fast mode” the front-end system retrieves pre-decoded instructions from the instruction cache and decodes them directly. In a second mode, called the “marking mode,” the front-end system retrieves data from the instruction cache and synchronizes to them prior to decoding. Synchronization results may be stored back in the instruction cache for later use.
    Type: Application
    Filed: December 22, 2000
    Publication date: June 27, 2002
    Inventors: Stephan J. Jourdan, Alan Kyker
  • Patent number: 6405303
    Abstract: A microprocessor configured to decode a plurality of instruction bytes in parallel is disclosed. The microprocessor may comprise a plurality of single-byte decoder/execution units that are configured to receive instruction bytes and cross-talk to determine instruction boundaries and instruction field boundaries. Once and instruction has been identified, a determination is made as to whether or not the instruction is a simple instruction. Simple instructions are executed within the decoder/execution units, while complex instructions are forwarded to full-fledged functional units. A computer system and method for predecoding instructions are also disclosed.
    Type: Grant
    Filed: August 31, 1999
    Date of Patent: June 11, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Paul K. Miller, Gerald D. Zuraski, Jr.
  • Publication number: 20020069339
    Abstract: A digital system is provided with a memory (506) shared by several initiator resources (540-550), wherein a portion of the initiator resources are big endian and another portion of the initiator resources are little endian. The memory is segregated into a set of regions by a memory management unit (MMU) (500-510) and an endianism attribute bit is defined for each region. For each memory request to the memory, the endianism attribute bit for the selected region is provided by the MMU. Each memory transaction request is completed in accordance with the endianism attribute of the selected region. Depending on the capability of a given initiator resource, the memory request address is adjusted to agree with the endianism attribute of the selected region, or an access fault is generated (530) if the endianism of the initiating resource does not match the endianism attribute of the selected memory region.
    Type: Application
    Filed: August 17, 2001
    Publication date: June 6, 2002
    Inventors: Serge Lasserre, Gerard Chauvel, Dominique D'Inverno
  • Patent number: 6393549
    Abstract: An instruction alignment unit is provided which is capable of routing variable byte length instructions simultaneously to a plurality of decode units which form fixed issue positions within a superscalar microprocessor. The instruction alignment unit may be implemented with a relatively small number of cascaded levels of logic gates, thus accomodating very high frequencies of operation. In one embodiment, the superscalar microprocessor includes an instruction cache for storing a plurality of variable byte-length instructions and a predecode unit for generating predecode tags which identify the location of the start byte of each variable byte-length instruction. An instruction alignment unit is configured to channel a plurality of the variable byte-length instructions simultaneously to predetermined issue positions depending upon the locations of their corresponding start bytes in a cache line.
    Type: Grant
    Filed: December 21, 1999
    Date of Patent: May 21, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Thang Tran, David B. Witt
  • Patent number: 6370636
    Abstract: A data access circuit for a CPU that individually extracts and processes variable length data or commands from a memory in one clock period provides high speed processing. The circuit includes a program counter for increasing a previous address by a currently decoded command length to compute the next address. The program counter outputs the next address to a data storing unit and a data alignment unit. The data storing unit can include two memories with two decoders and outputs a prescribed length of data corresponding to the next address from the program counter. The data alignment unit aligns the prescribed amount of data output from the data storing unit using the next address. A command decoding unit decodes the aligned data in order to determine a next command and its variable command length, which is used to reset the currently extracted command length used by the program counter. A command execution unit executes the next command received from the command decoding unit.
    Type: Grant
    Filed: November 27, 2000
    Date of Patent: April 9, 2002
    Assignee: Hyundai Electronics Industries Co., Ltd.
    Inventor: Soung-Hwi Park
  • Patent number: 6351806
    Abstract: A RISC processor using a fixed length standard instruction word (32-bit) consisting of a fixed-length (6-bit) operation code and two register fields, uses one of the register fields to give certain operation codes multiple meanings. For most operations, the register codes refer to general purpose registers as such. However, for certain operations, including move and add, register codes 30 and 31 in the source register code field of the instruction word indicate that the next instruction word contains immediate data for that operation instead of the operand being located in the specified register itself. Further, for load, store and jump operations, the source register codes 30 and 31 in the source register code field indicates that those registers are to be used as base or index registers for indexed addressing, with an offset in the following instruction word added to the general purpose register 30 or 31 contents to form the address.
    Type: Grant
    Filed: October 5, 2000
    Date of Patent: February 26, 2002
    Assignee: Cradle Technologies
    Inventor: David C. Wyland
  • Publication number: 20020016906
    Abstract: The present invention provides an instruction fetch unit aligner. In one embodiment, an apparatus for an instruction fetch unit aligner includes selection logic for selecting a non-power of two size instruction from power of two size instruction data, and control logic for controlling the selection logic.
    Type: Application
    Filed: May 31, 2001
    Publication date: February 7, 2002
    Inventors: Marc Tremblay, Graham R. Murphy, Frank C. Chiu
  • Patent number: 6341345
    Abstract: A conventional bi-endian computer system is enhanced to include mixed-endian mechanisms that allows the computer system to dynamically change its endian mode. The mixed-endian computer system can change endian mode on a task by task basis if necessary. The mixed-endian mechanisms automatically format the data in the form expected by the running task, regardless of whether the task expects the data to be in big endian format or in little endian format. The mixed-endian mechanisms also format big and little endian instructions such that they can execute on the same computer system. The mixed-endian mechanisms also include two memory management mechanisms, a single aliased memory management mechanism and a double aliased memory management mechanism. Each memory management mechanism provides cross-endian data sharing.
    Type: Grant
    Filed: June 7, 1995
    Date of Patent: January 22, 2002
    Assignee: International Business Machines Corporation
    Inventors: Marc Alan Auslander, Larry Wayne Loen
  • Patent number: 6336182
    Abstract: A method and system for aligning internal operations (IOPs) for dispatch are disclosed. The method and system comprise conditionally asserting a predecode based on a particular dispatch slot that an instruction is going to be placed. The method and system further include using the information related to the predecode to expand an instruction into at least one dummy operation and an IOP operation whenever the instruction would not be supported in the particular dispatch slot.
    Type: Grant
    Filed: March 5, 1999
    Date of Patent: January 1, 2002
    Assignee: International Business Machines Corporation
    Inventors: John Edward Derrick, Lee Evan Eisen, Paul Joseph Jordan, Robert William Hay
  • Patent number: 6332188
    Abstract: A digital signal processor includes a computation block with an arithmetic logic unit, a multiplier, a shifter and a register file. The computation block includes a plurality of registers for storing instructions and operands in a bit format as a continuous bit stream, and utilizes a bit transfer mechanism for transferring in a single cycle a bit field of an arbitrary bit length between the plurality of registers and the shifter. The plurality of registers may be general purpose registers located in the register file. The register file may further include at least one control information register for storing control information used by the bit transfer mechanism.
    Type: Grant
    Filed: November 6, 1998
    Date of Patent: December 18, 2001
    Assignee: Analog Devices, Inc.
    Inventors: Douglas Garde, Alexei Zatsman, Aryeh Lezerovitz, Zvi Greenfield, David R. Levine, Jose Fridman
  • Patent number: 6321325
    Abstract: The present invention provides dual in-line buffers for an instruction fetch unit. In one embodiment, an apparatus for a microprocessor includes an instruction cache unit that stores power of two size instruction cache lines, and dual in-line buffers of an instruction fetch unit connected to the instruction cache unit, in which the dual in-line buffers store power of two size instruction cache lines fetched from the instruction cache unit, and the fetched instruction cache lines include a non-power of two size instruction.
    Type: Grant
    Filed: December 3, 1998
    Date of Patent: November 20, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Graham R. Murphy
  • Patent number: 6314509
    Abstract: The present invention provides an efficient method for fetching instructions having a non-power of two size. In one embodiment, a method for fetching instructions having a non-power of two size includes fetching a first instruction cache line having a power of two size for storage in a first line buffer of an instruction fetch unit of a microprocessor, fetching a second instruction cache line having a power of two size for storage in a second line buffer of the instruction fetch unit, and extracting and aligning instruction data stored in the first line buffer and the second line buffer to provide an instruction having a non-power of two size.
    Type: Grant
    Filed: December 3, 1998
    Date of Patent: November 6, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Graham R. Murphy
  • 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: 6301652
    Abstract: A compiler system and method is provided that can 1) generate a second instruction stream from a first instruction stream, 2) read in and process predetermined external information regarding the basic blocks that makes up the second instruction stream and 3) place certain of the basic blocks on cache line boundaries based on predicted execution frequencies. In particular, the compiler system and method utilize profile information containing predicted block execution or edge-weight execution frequencies to determine which of the basic blocks to align on cache line boundaries. One method for obtaining profile information includes precompiling the source code, creating an executable program, executing the program with test inputs, and outputting a profile containing execution frequency information. Once the profile information is obtained, the source code can then be recompiled using the profile information. The compiler can then selectively cache align those blocks identified as important.
    Type: Grant
    Filed: January 31, 1996
    Date of Patent: October 9, 2001
    Assignee: International Business Machines Corporation
    Inventors: Edward Curtis Prosser, Robert Ralph Roediger, William Jon Schmidt
  • Patent number: 6301654
    Abstract: In a load/store unit within a microprocessor, load and store instructions are executed out of order. The load and store instructions are assigned tags in a predetermined manner, and then assigned to load and store reorder queues for keeping track of the program order of the load and store instructions. Then when new load or store instructions are issued, the new load or store instructions are compared to entries within the load and store reorder queues to detect out of order problems.
    Type: Grant
    Filed: December 16, 1998
    Date of Patent: October 9, 2001
    Assignee: International Business Machines Corporation
    Inventors: Bruce Joseph Ronchetti, Dave Shippy, Larry Edward Thatcher
  • Patent number: 6292882
    Abstract: In one aspect, the invention includes an apparatus for filtering instructions within a digital system that eliminates the need to physically switch the valid instructions onto consecutive data lines of a buffer. The apparatus includes a filter for filtering instructions within a digital system. The filter includes an address generator capable of generating at least two addresses in response to receiving at least two micro-operations. The filter also includes a logic circuit coupled to the address generator. The logic circuit filters addresses corresponding to valid micro-operations in response to assessing the state of a portion of each of the micro-operations. In a second aspect, the invention includes a method for filtering instructions within a digital system that eliminates the need to physically switch the valid instructions onto consecutive data lines of a buffer. The method includes, generating at least two addresses in response to receiving at least two micro-operations.
    Type: Grant
    Filed: December 10, 1998
    Date of Patent: September 18, 2001
    Assignee: Intel Corporation
    Inventors: Nazar A. Zaidi, Umair A. Khan
  • Patent number: 6292845
    Abstract: An instruction fetching unit is described for loading instructions from a memory processed by a data processing device. The instruction code can be of at least two different lengths, and each instruction contains at least a single bit indicating said instruction sizes. An instruction buffer coupled with an instruction size evaluation unit for determining the instruction size upon said at least single bit of said instruction is provided.
    Type: Grant
    Filed: August 26, 1998
    Date of Patent: September 18, 2001
    Assignee: Infineon Technologies North America Corp.
    Inventors: Rod G. Fleck, Bruce Holmer, Ole H. Møller, Roger D. Arnold, Balraj Singh
  • Patent number: 6289428
    Abstract: A superscalar processor and method are disclosed for efficiently recovering from misaligned data addresses. The processor includes a memory device partitioned into a plurality of addressable memory units. Each of the plurality of addressable memory units has a width of a first plurality of bytes. A determination is made regarding whether a data address included within a memory access instruction is misaligned. The data address is misaligned if it includes a first data segment located in a first addressable memory unit and a second data segment located in a second addressable memory unit where the first and second data segments are separated by an addressable memory unit boundary. In response to a determination that the data address is misaligned, a first internal instruction is executed which accesses the first memory unit and obtains the first data segment. A second internal instruction is executed which accesses the second memory unit and obtains the second data segment.
    Type: Grant
    Filed: August 3, 1999
    Date of Patent: September 11, 2001
    Assignee: International Business Machines Corporation
    Inventors: John Edward Derrick, Hung Qui Le, David James Shippy, Larry Edward Thatcher
  • Patent number: 6263423
    Abstract: A system and method for extracting complex, variable length computer instructions from a stream of complex instructions each subdivided into a variable number of instructions bytes, and aligning instruction bytes of individual ones of the complex instructions. The system receives a portion of the stream of complex instructions and extracts a first set of instruction bytes starting with the first instruction bytes, using an extract shifter. The set of instruction bytes are then passed to an align latch where they are aligned and output to a next instruction detector. The next instruction detector determines the end of the first instruction based on said set of instruction bytes. An extract shifter is used to extract and provide the next set of instruction bytes to an align shifter which aligns and outputs the next instruction. The process is then repeated for the remaining instruction bytes in the stream of complex instructions.
    Type: Grant
    Filed: September 22, 1999
    Date of Patent: July 17, 2001
    Assignee: Seiko Epson Corporation
    Inventors: Brett Coon, Yoshiyuki Miyayama, Le Trong Nguyen, Johannes Wang
  • 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: 6249861
    Abstract: The present invention provides an instruction fetch unit aligner. In one embodiment, an apparatus for an instruction fetch unit aligner includes selection logic for selecting a non-power of two size instruction from power of two size instruction data, and control logic for controlling the selection logic.
    Type: Grant
    Filed: December 3, 1998
    Date of Patent: June 19, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Graham R. Murphy, Frank C. Chiu
  • Patent number: 6243803
    Abstract: A method and apparatus for computing a Packed Absolute Differences. According to one such method and apparatus, a third packed data having a third plurality of elements and the plurality of sign bits is produced, each of the third plurality of elements and the plurality of sign bits being computed by subtracting one of a first plurality of elements of a first packed data from a corresponding one of a second plurality of elements of a second packed data. The third plurality of elements and the plurality of sign bits are stored.
    Type: Grant
    Filed: March 31, 1998
    Date of Patent: June 5, 2001
    Assignee: Intel Corporation
    Inventors: Mohammad A. Abdallah, Vladimir Pentkovski
  • Patent number: 6233642
    Abstract: Each bitslice multiplexing structure of a rotator circuit is configured as a plurality of first stage 8:1 multiplexers each receiving eight of the rotator circuits as inputs and one second-stage 8:1 multiplexer receiving the outputs of the first-stage multiplexers are inputs. To achieve the desired functionality with a single set of shift input signals, the rotator inputs to the first-stage multiplexers are changed for different bitslice multiplexing structures within the rotator, and the connection of the first-stage multiplexer outputs to the second-stage multiplexer inputs are changed for different groups of bitslice multiplexing structures. The first-stage multiplexers are positioned between two input buses running across the entire width of the rotator circuit.
    Type: Grant
    Filed: January 14, 1999
    Date of Patent: May 15, 2001
    Assignee: International Business Machines Corporation
    Inventors: Elan Tsvi Yaniv, David James Martens
  • Patent number: 6230238
    Abstract: A method and apparatus for performing mis-aligned read and write operations to a stack involves providing a memory array (110). The memory array is split into a high byte memory array (116) and a low byte memory array (112). Each memory array (112 and 116) has its own bus interface unit (114 and 118) respectively. The high byte bus interface unit (118) increments the address bits to the high byte memory array (116) on every access to compensate for mis-aligned data. However, the low byte bus interface unit (114) does not increment the address value before accessing the memory array (112). By doing so, memory is read from the memory arrays (112 and 116) in either 8 bit sizes or 16 bit sizes regardless of whether the stack structure implemented in memory array (112 and/or 116) contains aligned data or mis-aligned data.
    Type: Grant
    Filed: March 2, 1999
    Date of Patent: May 8, 2001
    Assignee: Motorola, Inc.
    Inventors: John A. Langan, Bruce L. Morton
  • Patent number: 6212542
    Abstract: A multiscalar processor and method of executing a multiscalar program within a multiscalar processor having a plurality of processing elements and a thread scheduler are provided. The multiscalar program includes a plurality of threads that are each composed of one or more instructions of a selected instruction set architecture. Each of the plurality of threads has a single entry point and a plurality of possible exit points. The multiscalar program further comprises thread code including a plurality of data structures that are each associated with a respective one of the plurality of threads. According to the method, a third data structure among the plurality of data structures is supplied to the thread scheduler. The third data structure, which is associated with a third thread among the plurality of threads, specifies a first data structure associated with a first possible exit point of the third thread and a second data structure associated with a second possible exit point of the third thread.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: April 3, 2001
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald, Edward L. Swarthout
  • Patent number: 6202142
    Abstract: An instruction scanning unit for a superscalar microprocessor is disclosed. The instruction scanning unit processes start, end, and functional byte information (or predecode data) associated with a plurality of contiguous instruction bytes. The processing of start byte information and end byte information is performed independently and in parallel, and the instruction scanning unit produces a plurality of scan values which identify valid instructions within the plurality of contiguous instruction bytes. Additionally, the instruction scanning unit is scaleable. Multiple instruction scanning units may be operated in parallel to process a larger plurality of contiguous instruction bytes. Furthermore, the instruction scanning unit detects error conditions in the predecode data in parallel with scanning to locate instructions. Moreover, in parallel with the error checking and scanning to locate instructions, MROM instructions are located for dispatch to an MROM unit.
    Type: Grant
    Filed: June 1, 1999
    Date of Patent: March 13, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rammohan Narayan, Shane A. Southard, Thang M. Tran
  • Patent number: 6189090
    Abstract: A digital signal processor which supports an instruction set including both 16-bit instructions and 32-bit instructions, so that particular portions of a program requiring only 16-bit instructions may be encoded in a 16-bit mode, thus reducing the program memory needed to store these portions. The digital signal processor switches between the 16- and 32-bit modes only in response to flow control instructions such as JUMP, CALL or RETURN instructions. JUMP and CALL instructions are coded to indicate the processor mode applicable to the instructions to which the JUMP or CALL instruction goes to, so that the processor may change modes as needed when executing the JUMP or CALL instruction. When a CALL is executed the current processor mode is stored on the processor's stack, so that in response to a RETURN instruction the processor can return to this mode by retrieving the stored mode from the stack.
    Type: Grant
    Filed: June 9, 1998
    Date of Patent: February 13, 2001
    Assignees: Sony Corporation, Sony Electronics Inc.
    Inventors: Yew-Koon Tan, Shuichi Maeda
  • Patent number: 6178493
    Abstract: In a multiprocessor system, when a store request has stalled, a signal is generated and sent to all processors indicating such a stalled store situation. In response, all processors will postpone the sending of load, or read, requests to memory until the stalled store request has completed.
    Type: Grant
    Filed: February 19, 1998
    Date of Patent: January 23, 2001
    Assignee: International Business Machines Corporation
    Inventors: Peter Steven Lenk, Michael J. Mayfield, Robert James Reese, Michael Thomas Vaden
  • 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: 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: 6161172
    Abstract: A method of instruction dispatch is provided in which a directly-decoded instruction and a microcode instruction are concurrently dispatched ("packed"). The instruction which is second in program order is retained until the succeeding clock cycle. During the succeeding clock cycle, a microcode unit determines if the microcode instruction and the directly-decoded instruction, when taken together, occupy less than or equal to the total number of issue positions available in the microprocessor. If the microcode unit determines that less than or equal to the total number of issue positions are occupied, then the packing is successful. If the microcode unit determines that greater than the total number of issue positions are occupied, then the packing is unsuccessful and the retained instruction is redispatched. Additionally, instruction dispatch selection is performed in two phases. First, a number of instructions are selected as potentially dispatchable instructions.
    Type: Grant
    Filed: November 23, 1998
    Date of Patent: December 12, 2000
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rammohan Narayan, Rupaka Mahalingaiah, Paul K. Miller