Predecoding Of Instruction Component Patents (Class 712/213)
  • Patent number: 6671797
    Abstract: A data processing system is provided with a digital signal processor which has an instruction for expanding one bit to form a mask field. In one form of the instruction, a first bit from a two-bit mask in a source operand is replicated and placed in an least significant half word of a destination operand while a second bit from the two-bit mask in the source operand is replicated and placed in a most significant half word of the destination operand. In another form of the instruction, a first bit from a four bit mask in a source operand is replicated and placed in a least significant byte of a destination operand, a second bit from the four-bit mask in the source operand is replicated and placed in a second least significant byte of the destination operand, a third bit from the four-bit mask is replicated and placed in a second most significant byte of the destination operand and a fourth bit form the four-bit mask is replicated and placed in a most significant byte of the destination operand.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: December 30, 2003
    Assignee: Texas Instruments Incorporated
    Inventor: Jeremiah E. Golston
  • Patent number: 6658556
    Abstract: A processor includes execution resources, data storage, and an instruction sequencing unit, coupled to the data storage and the execution resources, that supplies instructions within the data storage to the execution resources. The execution resources include a plurality of load-store units that each process only instructions that access data having associated addresses within a respective one of a plurality of subsets of an address space. The load-store units can have diverse hardware such that a maximum number of instructions that can be concurrently executed is different for different load-store units or such that some of the load-store units are restricted to executing certain classes of instructions.
    Type: Grant
    Filed: July 30, 1999
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: Ravi Kumar Arimilli, Leo James Clark, John Steve Dodson, Guy Lynn Guthrie, Jerry Don Lewis
  • Patent number: 6654873
    Abstract: A processor apparatus which reduces an overhead at the time of switching processing modules and efficiently performs desired processing at a high speed, wherein desired processing is performed by prefetching a series of instructions by a main program prefetcher, pre-decoding the same by a pre-decoder, and supplying the same to a decoder and execution unit via a multiplexer. When an instruction to execute a macro command is detected in the pre-decoder, the instructions of the macro command are prefetched by a macro program prefetcher and pre-decoded in the pre-decoder. As a result, when branching to a macro command, the instructions of the macro command can be immediately supplied to an execution unit only by switching the multiplexer.
    Type: Grant
    Filed: January 7, 2000
    Date of Patent: November 25, 2003
    Assignee: Sony Corporation
    Inventor: Tomohiko Kadowaki
  • Patent number: 6654874
    Abstract: Microcomputer systems include an instruction processor therein that can process both normal length instructions and compressed instructions. The normal length instructions and the compressed instructions are provided from memory to an instruction register and then passed through decoding circuitry to a processor core. The decoding circuitry preferably comprises a demultiplexer having a data input that receives a first multi-bit instruction from the instruction register and a select input that receives a first select signal (SEL1). A compressed instruction decoder is also provided. The compressed instruction decoder has a data input electrically coupled to a first data output of the demultiplexer and a select input that receives a second select signal (SEL2). A multiplexer is also provided.
    Type: Grant
    Filed: March 27, 2000
    Date of Patent: November 25, 2003
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Yun-Tae Lee
  • Patent number: 6633969
    Abstract: An apparatus and method for translating variable-length instructions to fixed-length instructions. The apparatus includes instruction decompression logic and caching logic. The instruction decompression logic receives a first portion of an instruction data block, an output signal produced by the caching logic, and a control signal during a time period. The instruction decompression logic produces a fixed-length instruction during the time period dependent upon the first portion of the instruction data block, the output signal produced by the caching logic, and the control signal. The caching logic includes a storage unit. During the time period, the caching logic receives a second portion of the instruction data block and the control signal. The caching logic stores the second portion of the instruction data block within the storage unit during the time period dependent upon the control signal.
    Type: Grant
    Filed: August 11, 2000
    Date of Patent: October 14, 2003
    Assignee: LSI Logic Corporation
    Inventor: Shuaibin Lin
  • Patent number: 6631459
    Abstract: An apparatus includes an instruction word storage for storing a plurality of general instruction words and extended instruction words, a temporary storage unit including a plurality of buffers for pre-fetching and storing the plurality of instruction words from the instruction word storage, an instruction word search unit for receiving and decoding the plurality of instruction words pre-fetched and outputting a position signal of a general instruction word and the positions of one or more successive extended instruction words stored in the temporary storage a selector for selecting a buffer in which a general instruction word is stored and outputting the general instruction word sequentially, according to the position signal a general instruction word parser for receiving a general instruction word from the selector and outputting a plurality of control signals for executing the general instruction word simultaneously, an extended data parser is provided for performing an operational processing of operands of
    Type: Grant
    Filed: August 24, 2000
    Date of Patent: October 7, 2003
    Assignee: Asia Design Co., Ltd.
    Inventors: Kyung Youn Cho, Jong Yoon Lim, Geun Taek Lee, Hyeong Cheol Oh, Hyun Gyu Kim, Byung Gueon Min, Heui Lee
  • Publication number: 20030182535
    Abstract: A processor apparatus which reduces an overhead at the time of switching processing modules and efficiently performs desired processing at a high speed, wherein desired processing is performed by prefetching a series of instructions by a main program prefetcher, pre-decoding the same by a pre-decoder, and supplying the same to a decoder and execution unit via a multiplexer. When an instruction to execute a macro command is detected in the pre-decoder, the instructions of the macro command are prefetched by a macro program prefetcher and pre-decoded in the pre-decoder. As a result, when branching to a macro command, the instructions of the macro command can be immediately supplied to an execution unit only by switching the multiplexer.
    Type: Application
    Filed: January 7, 2000
    Publication date: September 25, 2003
    Inventor: TOMOHIKO KADOWAKI
  • Patent number: 6609191
    Abstract: An apparatus and method are provided for speculatively pairing micro instructions for parallel execution within a single pipeline of a microprocessor and subsequently splitting the paired micro instructions in the same clock cycle as the pairing if a resource conflict or operand dependency is detected. The apparatus includes multiplexing logic that feeds back a second of a pair of micro instructions stored in an instruction register back into the instruction register for sequential execution after the first micro instruction if a translator detects late in the clock cycle that a resource conflict or operand dependency exists. An instruction pair indicator is provided along with the pair of micro instructions down to the execution stages to inform the execution stages whether the second micro instruction is valid for parallel execution with the first micro instruction. The method may also be used in conjunction with a micro instruction queue.
    Type: Grant
    Filed: March 7, 2000
    Date of Patent: August 19, 2003
    Assignee: IP-First, LLC
    Inventors: Rodney E. Hooker, Dinesh K. Jain, Terry Parks
  • Patent number: 6598154
    Abstract: A method of reducing the branch penalty in a microprocessor includes predecoding the instruction to determine whether an instruction is a branch, the length of the instruction, and prediction marker information for the instruction should it be a branch. The target of the branch is relayed to the align stage of the microprocessor to readjust the read pointer to point to the target of the branch if the instruction is a branch. An apparatus for reducing the branch penalty in a microprocessor includes a branch predecode and taken resolution unit which determines whether an instruction is a predicted taken branch, and relays that information to the align stage of the microprocessor to deliver the target of the branch to the align stage as early as possible.
    Type: Grant
    Filed: December 29, 1998
    Date of Patent: July 22, 2003
    Assignee: Intel Corporation
    Inventors: Kushagra Vaid, Frederick R. Gruner
  • Patent number: 6591343
    Abstract: An apparatus and method are provided for determining initial information about a macro instruction prior to decoding of the macro instruction by translation logic within a pipeline microprocessor. The apparatus includes an instruction cache divided into a number of cache ways, each of the cache ways storing a number of cache lines that have been retrieved from memory. As a linear address within a next instruction pointer is provided to retrieve a the macro instruction from the cache, indexed cache lines from each of the cache ways are predecoded by predecode logic. Predecoding is performed in parallel with translation of the linear address to a physical address by translation lookaside buffer logic. The bytes of the indexed cache lines, along with corresponding predecode information fields, are provided to way selection logic.
    Type: Grant
    Filed: February 22, 2000
    Date of Patent: July 8, 2003
    Assignee: IP-First, LLC
    Inventors: Gerard M. Col, G. Glenn Henry, Terry Parks
  • Patent number: 6578134
    Abstract: A branch resolution logic for an in-order processor is provided which scans the stages of processor pipeline to determine the oldest branch instruction having sufficient condition codes for resolution. The stages are scanned in order from the latter stages to the earlier stages, which allows quick and simple branch resolution. Therefore, because branches are resolved as soon as the necessary condition codes are generated in a specific stage, branch mispredict penalties are minimized.
    Type: Grant
    Filed: November 29, 1999
    Date of Patent: June 10, 2003
    Assignee: ATI International SRL
    Inventors: Korbin Van Dyke, Niteen Patkar, Shalesh Thusoo, TR Ramesh
  • Patent number: 6560694
    Abstract: A processor supports an operating mode in which the default address size is greater than 32 bits and the default operand size is 32 bits. The default address size may be nominally indicated as 64 bits, although various embodiments of the processor may implement any address size which exceeds 32 bits, up to and including 64 bits, in the operating mode. The operating mode may be established by placing an enable indication in a control register into an enabled state and by setting a first operating mode indication and a second operating mode indication in a segment descriptor to predefined states. Additionally, a first instruction prefix may be coded into an instruction to override the default operand size to a first non-default operand size (e.g. 64 bits). Furthermore, a second instruction prefix may be coded into an instruction in addition to the first instruction prefix to override the default operand size to a second non-default operand size (e.g. 16 bits).
    Type: Grant
    Filed: January 14, 2000
    Date of Patent: May 6, 2003
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Kevin J. McGrath, James B. Keller
  • Publication number: 20030079114
    Abstract: Each of registers R0 to R31 is divided into the upper 32-bit area and the lower 32-bit area. A register writing control unit 431 outputs information to the selectors 4321 and 4322 on the registers and the locations (upper and lower areas) in which data is written by the instructions that have issued in one cycle. Each of the selectors 4321 and 4322 selects one out of pieces of data that have been output from first, second, and third arithmetic operation units 44, 45, and 46 and writes the selected data in the upper or lower area in one register. A dependency analysis unit 110 in a compiling apparatus considers the upper and lower registers in one 64-bit register as separate resources, analyzes the data dependency relations between the instructions, and generates a dependency graph that indicates the data dependency relations. A instruction rearrangement unit 111 rearranges the instructions and generates execution codes using the dependency graph.
    Type: Application
    Filed: November 27, 2002
    Publication date: April 24, 2003
    Inventors: Taketo Heishi, Kensuke Odani
  • 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: 6539470
    Abstract: An instruction decode unit is described including circuitry coupled to receive an instruction. The instruction identifies multiple operands, one of which is a destination operand. The circuitry responds to the instruction by producing: (i) operand codes specifying the operands, wherein the operand codes are produced in the order in which the operands are identified within the instruction, and (ii) a destination operand signal identifying the destination operand. In one embodiment, the decode unit responds to the instruction by producing the operand codes, operand address information, control signals, and the destination operand signal. A processor including the instruction decode unit is also described, as is a computer system including the processor. The instruction may include operand information which identifies the operands. The instruction may also include destination operand information which indicates which of the operands is the destination operand.
    Type: Grant
    Filed: November 16, 1999
    Date of Patent: March 25, 2003
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Eric W. Mahurin, Brian D. McMinn
  • Patent number: 6530012
    Abstract: A method of executing instructions in a computer system on operands containing a plurality of packed objects in respective lanes of the operand is described. Each instruction defines an operation and contains a condition setting indicator settable independently of the operation. The status of the condition setting indicator determines whether or not multibit condition codes are set. When they are to be set, they are set depending on the results of carrying out the operation for each lane.
    Type: Grant
    Filed: September 13, 1999
    Date of Patent: March 4, 2003
    Assignee: Broadcom Corporation
    Inventor: Sophie Wilson
  • Patent number: 6519696
    Abstract: An apparatus and method are provided for performing a floating point exchange operation in a pipeline microprocessor in zero effective clock cycles. The present invention exploits the pattern of floating point operations common to most floating point software algorithms where floating point exchange operations appear as every other instruction between floating point computational instructions. The apparatus includes translation logic, that pairs the operations directed by a floating point macro instruction and a floating point exchange macro instruction by generating a micro instruction with an exchange extension. The exchange extension directs the microprocessor to perform the floating point exchange operation in parallel with the operation prescribed by the floating point macro instruction within a single floating point unit.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: February 11, 2003
    Assignee: I.P. First, LLC
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6502185
    Abstract: A processor includes an instruction cache and a predecode cache which is not actively maintained coherent with the instruction cache. The processor fetches instruction bytes from the instruction cache and predecode information from the predecode cache. Instructions are provided to a plurality of decode units based on the predecode information, and the decode units decode the instructions and verify that the predecode information corresponds to the instructions. More particularly, each decode unit may verify that a valid instruction was decoded, and that the instruction succeeds a preceding instruction decoded by another decode unit. Additionally, other units involved in the instruction processing pipeline stages prior to decode may verify portions of the predecode information.
    Type: Grant
    Filed: January 3, 2000
    Date of Patent: December 31, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: James B. Keller, Puneet Sharma, Keith R. Schakel, Francis M. Matus
  • Patent number: 6499098
    Abstract: A processor (100) is provided that is a programmable digital signal processor (DSP) with variable instruction length, offering both high code density and easy programming. Architecture and instruction set are optimized for low power consumption and high efficiency execution of DSP algorithms, such as for wireless telephones, as well as pure control tasks. An instruction (1003) is decoded and accesses a data item in accordance with an address field (1003a). Another instruction (1002) is decoded and accesses a data item in accordance with an address field (1002a); but in a different manner due to an instruction qualifier (1002b). The instruction qualifier is executed in an implicitly parallel manner with the qualified instruction (1002).
    Type: Grant
    Filed: October 1, 1999
    Date of Patent: December 24, 2002
    Assignee: Texas Instruments Incorporated
    Inventor: Gilbert Laurenti
  • Patent number: 6496923
    Abstract: The invention provides a system and method which can be used for pre-decoding one-byte instruction prefixes and branch instruction indicators. A static line detect generates a number of instruction indicators. Further, a prefix and branch decode unit combines at least two of the number of instruction indicators, and a pre-decode unit decodes the combined instruction indicators. Embodiments of the invention decode one byte prefixes without additional cycle penalty and generate one and two byte branch indications early.
    Type: Grant
    Filed: December 17, 1999
    Date of Patent: December 17, 2002
    Assignee: Intel Corporation
    Inventors: Frederick Russell Gruner, Bharat Zaveri
  • Patent number: 6496921
    Abstract: A method of operating a processing unit of a computer system, by issuing an instruction having an explicit prefetch request directly from an instruction sequence unit to a prefetch unit of the processing unit. The invention applies to values that are either operand data or instructions. In a preferred embodiment, two prefetch units are used, the first prefetch unit being hardware independent and dynamically monitoring one or more active streams associated with operations carried out by a core of the processing unit, and the second prefetch unit being aware of the lower level storage subsystem and sending with the prefetch request an indication that a prefetch value is to be loaded into a lower level cache of the processing unit. The invention may advantageously associate each prefetch request with a stream ID of an associated processor stream, or a processor ID of the requesting processing unit (the latter feature is particularly useful for caches which are shared by a processing unit cluster).
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: December 17, 2002
    Assignee: International Business Machines Corporation
    Inventors: Ravi Kumar Arimilli, Lakshminarayana Baba Arimilli, Leo James Clark, John Steven Dodson, Guy Lynn Guthrie, James Stephen Fields, Jr.
  • Publication number: 20020188827
    Abstract: A method for including opcode information in an opcode includes numbering the opcode such that a property of the opcode is represented by at least one bit of the opcode. According to one aspect, the number of data units required to advance to the next opcode is encoded into the opcode value itself. According to another aspect, opcodes are numbered such that opcodes having the same properties have opcode values in the same opcode range.
    Type: Application
    Filed: May 31, 2002
    Publication date: December 12, 2002
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventor: Dean R.E. Long
  • Patent number: 6493819
    Abstract: A microprocessor includes general purpose registers which may be accessed or updated in portions. Dependencies may be created between an instruction which updates only a portion of a destination register and a subsequent instruction which requires a larger portion of that destination register, inclusive of the smaller updated portion, as a source. To resolve such dependencies between instructions, a determination is made upon decode of an instruction whether it updates only a portion of a destination or the entire destination. If only a portion of the destination is updated by the instruction, a read of the destination is done prior to execution of the instruction and the data read from the destination is merged with the results of the instruction execution. The merged data is then conveyed as the results of the instruction execution.
    Type: Grant
    Filed: November 16, 1999
    Date of Patent: December 10, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Eric W. Mahurin, Scott A. White, Michael T. Clark
  • Patent number: 6490673
    Abstract: Each of registers R0 to R31 is divided into the upper 32-bit area and the lower 32-bit area. A register writing control unit 431 outputs information to the selectors 4321 and 4322 on the registers and the locations (upper and lower areas) in which data is written by the instructions that have issued in one cycle. Each of the selectors 4321 and 4322 selects one out of pieces of data that have been output from first, second, and third arithmetic operation units 44, 45, and 46 and writes the selected data in the upper or lower area in one register. A dependency analysis unit 110 in a compiling apparatus considers the upper and lower registers in one 64-bit register as separate resources, analyzes the data dependency relations between the instructions, and generates a dependency graph that indicates the data dependency relations. A instruction rearrangement unit 111 rearranges the instructions and generates execution codes using the dependency graph.
    Type: Grant
    Filed: November 22, 1999
    Date of Patent: December 3, 2002
    Assignee: Matsushita Electric Industrial Co., LTD
    Inventors: Taketo Heishi, Kensuke Odani
  • Patent number: 6463521
    Abstract: A method for including opcode information in an opcode includes numbering the opcode such that a property of the opcode is represented by at least one bit of the opcode. According to one aspect, the number of data units required to advance to the next opcode is encoded into the opcode value itself. According to another aspect, opcodes are numbered such that opcodes having the same properties have opcode values in the same opcode range.
    Type: Grant
    Filed: June 23, 1999
    Date of Patent: October 8, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Dean R. E. Long
  • Patent number: 6460132
    Abstract: A microprocessor configured to predecode variable length instructions in a massively parallel fashion is disclosed. The microprocessor may comprise a prefetch fetch unit configured to read instruction bytes from memory and a plurality of predecode unit configured to receive and predecode the instruction bytes. The predecode units are configured to operate separately and in parallel to generate one or more predecode bits per instruction byte. The microprocessor may further include a predecode bit correction unit configured to receive, verify, and correct the predecode bits from the parallel predecode units. A computer system and method for predecoding instructions are also disclosed.
    Type: Grant
    Filed: August 31, 1999
    Date of Patent: October 1, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Paul K. Miller
  • 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: 6457118
    Abstract: According to the present invention, techniques for setting selected operand fields in pipelined architectures are provided. Methods and systems for efficiently selecting operand fields according to the present invention can be operative on a variety of computer architectures, including RISC architectures.
    Type: Grant
    Filed: October 1, 1999
    Date of Patent: September 24, 2002
    Assignee: Hitachi LTD
    Inventors: Chih-Jui Peng, Glenn Ashley Farrall, Sivaram Krishnan
  • Publication number: 20020133689
    Abstract: A semiconductor device having a main processor and a coprocessor for data processing is disclosed, the device comprising a main program memory for storing main processor instructions and a first portion of coprocessor instructions, a coprocessor program memory for storing a second portion of coprocessor instructions, and a predecoder for predecoding at least one bit of each instruction fetched from the main program memory and for generating an active coprocessor control signal upon predecoding a coprocessor type instruction, wherein the second portion of coprocessor instructions are fetched directly from the coprocessor program memory and the first portion and the second portion of coprocessor instructions are processed by the coprocessor upon receipt of the active coprocessor control signal.
    Type: Application
    Filed: March 14, 2001
    Publication date: September 19, 2002
    Inventors: Sang Hyun Park, Seh-Woong Jeong
  • Patent number: 6442672
    Abstract: The invention is a processing method and a processor architecture which contains multiple processors on the same silicon but which does not make a fixed compromise by statically assigning processing units to the processors but rather dynamically assigns such processing units so that they may be efficiently shared. The invention may provide the same functionality as was obtained with static allocation, and may be implemented on a single chip with much lower area for the same level of performance. The preferred architecture uses a mode bit that may be programatically set for passing control from a general purpose instruction decoder to a finite state machine. The preferred architecture further includes a multiplexer that uses the mode bit as its selection input.
    Type: Grant
    Filed: September 30, 1998
    Date of Patent: August 27, 2002
    Assignee: Conexant Systems, Inc.
    Inventor: Kumar Ganapathy
  • Patent number: 6438680
    Abstract: When a decision circuit (217) incorporated in a control circuit (21) in an instruction decode unit (2) in a microprocessor (1) decides that an integer operation unit (4) can not execute a following sub instruction, the decision circuit (217) controls each of selectors (211, 214, and 215) and an exchange circuit (216) so that a memory access unit (3) that has already executed a preceding sub instruction can execute the following sub instruction.
    Type: Grant
    Filed: June 3, 1999
    Date of Patent: August 20, 2002
    Assignee: Mitsubishi Denki Kabushiki Kaisha
    Inventors: Akira Yamada, Isao Minematsu
  • 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
  • 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.
  • Patent number: 6401144
    Abstract: A method and apparatus for ensuring that information transfers from memory to a peripheral device are complete prior to the peripheral device executing instructions responsive to the content of the information is described. The method includes identifying lines of data to be written, determining a unique start code to be used for that data, and embedding that start code into that data. When the proper number of lines of data have arrived in peripheral device memory, the pending operation is executed.
    Type: Grant
    Filed: February 26, 1999
    Date of Patent: June 4, 2002
    Assignee: Intel Corporation
    Inventor: Morris Jones
  • Patent number: 6397319
    Abstract: A 32-bit instruction 50 is composed of a 4-bit format field 51, a 4-bit operation field 52, and two 12-bit operation fields 59 and 60. The 4-bit operation field 52 can only include (1) an operation code “cc” that indicates a branch operation which uses a stored value of the implicitly indicated constant register 36 as the branch address, or (2) a constant “const”. The content of the 4-bit operation field 52 is specified by a format code provided in the format field 51.
    Type: Grant
    Filed: June 20, 2000
    Date of Patent: May 28, 2002
    Assignee: Matsushita Electric Ind. Co., Ltd.
    Inventors: Shuichi Takayama, Nobuo Higaki
  • Patent number: 6393551
    Abstract: A method and an apparatus for reducing the number of instruction transactions in a microprocessor are disclosed. As a method, the number of issued instructions carried by an issued instruction bus in a computer system are reduced by determining if an instruction fetched by a fetch unit matches a cached instruction tag. When the fetched instruction matches the cached instruction tag, an opcode and an associated instruction corresponding to the cached instruction tag are directly injected to an appropriate function unit. The apparatus includes a plurality of tag PC cache memory devices used to store tag PC entries associated with target instructions injected directly to corresponding function units included microprocessors and the like. The injection reduces the number of instructions fetched from the program memory as well as the number of issued instructions carried by an issued instruction bus.
    Type: Grant
    Filed: May 26, 1999
    Date of Patent: May 21, 2002
    Assignee: Infineon Technologies North America Corp.
    Inventors: Balraj Singh, Eric Chesters, Venkat Mattela, Rod G. Fleck
  • Patent number: 6385720
    Abstract: In branch prediction in accordance with the present invention, in order to reduce the storage capacity for storing branch prediction information and simplify an information retrieval circuit while minimizing reduction in branch prediction accuracy, the position of an instruction is stored in advance and an instruction is decoded for execution, the relative position of the instruction decoded for execution is obtained on the basis of the position of the stored instruction, and when the decoded instruction is a branch instruction the result of branch by the branch instruction is recorded as history information in correspondence with the relative position of the branch instruction.
    Type: Grant
    Filed: July 13, 1998
    Date of Patent: May 7, 2002
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Tetsuya Tanaka, Takao Yamamoto
  • Patent number: 6381689
    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: March 13, 2001
    Date of Patent: April 30, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, Thang M. Tran
  • Patent number: 6378064
    Abstract: A computer system comprising a microprocessor on a single integrated circuit chip having an on-chip CPU which includes: a data processing unit for executing instructions; a data link connected between a memory and the data processing unit for passing instructions to the data processing unit; a watch register for storing an instruction comparison code; and a watch comparator coupled to the data link for comparing the instructions passed on the data link with the instruction comparison code and generating a comparison output signal in dependence on the result of the comparison.
    Type: Grant
    Filed: March 12, 1999
    Date of Patent: April 23, 2002
    Assignee: STMicroelectronics Limited
    Inventors: David Alan Edwards, Glenn Ashley Farrall
  • Patent number: 6360313
    Abstract: A computing system as described in which individual instructions are executable in parallel by processing pipelines, and instructions to be executed in parallel by different pipelines are supplied to the pipelines simultaneously. The system includes storage for storing an arbitrary number of the instructions to be executed. The instructions to be executed are tagged with pipeline identification tags indicative of the pipeline to which they should be dispatched. The pipeline identification tags are supplied to a system which controls a crossbar switch, enabling the tags to be used to control the switch and supply the appropriate instructions simultaneously to the differing pipelines.
    Type: Grant
    Filed: September 8, 2000
    Date of Patent: March 19, 2002
    Assignee: Intergraph Corporation
    Inventors: Howard G. Sachs, Siamak Arya
  • Patent number: 6360317
    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: October 30, 2000
    Date of Patent: March 19, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rupaka Mahalingaiah, Paul K. Miller
  • Patent number: 6351807
    Abstract: A processor (40) in a data processing system simultaneously loads multiple registers (60) with a single value for fast domain switching. A domain switch instruction asserts a register block write signal (112) along with the register write signal (116) when block writing the single value to the set of registers (60). Register address lines (110, 111) are decoded in two sets: a first set of decoded address lines (110) specifying a block of registers; and the second set (111) specifying one register in the block of registers. When the register block write signal (112) is asserted during a register write, the second set of decoded address lines (111) are ignored, and all registers in the block of registers (60) selected by the first set of decoded address lines (110) are simultaneously loaded with a common value. Additional drive requirements are solved either by adding a buffer (226) to each register bit, or by disabling (228) the feedback path (215) in each register bit during block writes.
    Type: Grant
    Filed: September 25, 1998
    Date of Patent: February 26, 2002
    Assignee: Bull HN Information Systems Inc.
    Inventors: Ron W. Yoder, Russell W. Guenthner, William A. Shelly, Eric Earl Conway, Boubaker Shaiek, Claude Rabel
  • Patent number: 6351804
    Abstract: A control bit vector storage is provided. The present control bit vector storage (preferably included within a functional unit) stores control bits indicative of a particular instruction. The control bits are divided into multiple control vectors, each vector indicative of one instruction operation. The control bits control dataflow elements within the functional unit to cause the instruction operation to be performed. Additionally, the present control bit vector storage allows complex instructions (or instructions which produce multiple results) to be divided into simpler operations. The hardware included within the functional unit may be reduced to that employed to perform the simpler operations. In one embodiment, the control bit vector storage comprises a plurality of vector storages. Each vector storage comprises a pair of individual vector storages and a shared vector storage. The shared vector storage stores control bits common to both control vectors.
    Type: Grant
    Filed: October 10, 2000
    Date of Patent: February 26, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Marty L. Pflum
  • Patent number: 6351802
    Abstract: A method of scheduling instructions in a computer processor. The method comprises fetching instructions to create an in-order instruction buffer, and scheduling instruction from the instruction buffer into instruction slots within instruction vectors in an instruction vector table. Instruction vectors are then dispatched from the instruction vector table to a prescheduled instruction cache, and, in parallel, to an instruction issue unit.
    Type: Grant
    Filed: December 3, 1999
    Date of Patent: February 26, 2002
    Assignee: Intel Corporation
    Inventor: Gad S. Sheaffer
  • Patent number: 6349381
    Abstract: A pipelined instruction dispatch or grouping circuit allows instruction dispatch decisions to be made over multiple processor cycles. In one embodiment, the grouping circuit performs resource allocation and data dependency checks on an instruction group, based on a state vector which includes representation of source and destination registers of instructions within said instruction group and corresponding state vectors for instruction groups of a number of preceding processor cycles.
    Type: Grant
    Filed: July 25, 2000
    Date of Patent: February 19, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Marc Tremblay
  • Patent number: 6345354
    Abstract: A method, apparatus, and manufacture to facilitate power-efficient register file access for preparing a register file to be accessed. Efficient operation of a processor is facilitated while still conserving power. Register information can be decoded during the first phase of a clock to make a determination as to which register within a register file should be accessed. Furthermore, a determination can be made using logic modules as to whether the register information will actually be required by an execution unit during a second phase of the clock. Upon a determination that the register should be enabled, the register is enabled to allow the contents of the register to be output. In this fashion, power can be conserved when it is determined that the information stored by a register file is not required. Such a determination might be made, for example, when it is learned that the information in the register should be bypassed as invalid or an exception occurs cancelling the instruction.
    Type: Grant
    Filed: April 29, 1999
    Date of Patent: February 5, 2002
    Assignee: MIPS Technologies, Inc.
    Inventors: Ivan Radivojevic, Inder Bhasin, Per Forssell
  • Patent number: 6339822
    Abstract: A microprocessor configured to cache basic blocks of instructions is disclosed. The microprocessor may comprise decoding logic, a basic block cache, and a branch prediction unit. The decoding logic is coupled to receive and decode variable-length instructions into padded instructions that have one of a predetermined number of predetermined lengths. The decoding logic is further configured to form basic blocks of instructions from the padded and decoded instructions. Basic blocks are natural divisions in instruction streams resulting from branch instructions. The start of a basic block is a target of a branch, and the end is another branch instruction. The basic block cache is configured to store the basic blocks in a plurality of storage locations, wherein each storage location is configured to store an address tag, a link bit, and at least a portion of one basic block. The link bit indicates whether the basic block stored in said storage location extends into another storage location.
    Type: Grant
    Filed: October 2, 1998
    Date of Patent: January 15, 2002
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Paul K. Miller