Decoding Instruction To Accommodate Variable Length Instruction Or Operand Patents (Class 712/210)
  • Publication number: 20010029577
    Abstract: A microprocessor is configured to fetch a compressed instruction set which comprises a subset of a corresponding non-compressed instruction set. The compressed instruction set is a variable length instruction set including 16-bit and 32-bit instructions. The 32-bit instructions are coded using an extend opcode, which indicates that the instruction being fetched is an extended (e.g. 32 bit) instruction. The compressed instruction set further includes multiple sets of register mappings from the compressed register fields to the decompressed register fields. Certain select instructions are assigned two opcode encodings, one for each of two mappings of the corresponding register fields. The compressed register field is directly copied into a portion of the decompressed register field while the remaining portion of the decompressed register field is created using a small number of logic gates.
    Type: Application
    Filed: April 5, 2001
    Publication date: October 11, 2001
    Applicant: LSI Logic Corporation
    Inventors: Frank Worrell, Hartvig Ekner
  • 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: 6295599
    Abstract: The present invention provides a system and method for improving the performance of general purpose processors by expanding at least one source operand to a width greater than the width of either the general purpose register or the data path width. In addition, the present invention provides several classes of instructions which cannot be performed efficiently if the operands are limited to the width and accessible number of general purpose registers. The present invention provides operands which are substantially larger than the data path width of the processor by using a general purpose register to specify a memory address from which at least more than one, but typically several data path widths of data can be read. The present invention also provides for the efficient usage of a multiplier array that is fully used for high precision arithmetic, but is only partly used for other, lower precision operations.
    Type: Grant
    Filed: August 24, 1999
    Date of Patent: September 25, 2001
    Assignee: MicroUnity Systems Engineering
    Inventors: Craig Hansen, John Moussouris
  • Patent number: 6292881
    Abstract: A microprocessor capable of executing a process instruction having at least one RISC type instruction is constructed to include an instruction decoding section for decoding a microcode including information which indicates transfer contents of input and output data and address information which indicates a storage location of the process instruction, a data reading section for reading input data corresponding to the information which indicates the transfer contents of the input and output data decoded by the instruction decoding section and reading the process instruction corresponding to the address information, and an operation process executing section for implementing one or a plurality of operation unit resources capable of executing an operation process according to the input data read by the data reading section and the process instruction.
    Type: Grant
    Filed: February 25, 1999
    Date of Patent: September 18, 2001
    Assignee: Fujitsu Limited
    Inventors: Ritsuko Tanaka, Yuji Nomura, Toru Tsuruta, Nobuyuki Iwasaki
  • 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: 6282633
    Abstract: A RISC processor implements an instruction set which, in addition to optimizing a relationship between the number of instructions required for execution of a program, clock period and average number of clocks per instruction, also is designed to optimize the equation S=IS * BI, where S is the size of program instructions in bits, IS is the static number of instructions required to represent the program (not the number required by an execution) and BI is the average number of bits per instruction. Compared to conventional RISC architectures, this processor lowers both BI and IS with minimal increases in clock period and average number of clocks per instruction. The processor provides good code density in a fixed-length high-performance encoding based on RISC principles, including a general register with load/store architecture. Further, the processor implements a simple variable-length encoding that maintains high performance.
    Type: Grant
    Filed: November 13, 1998
    Date of Patent: August 28, 2001
    Assignee: Tensilica, Inc.
    Inventors: Earl A. Killian, Ricardo E. Gonzalez, Ashish B. Dixit, Monica Lam, Walter D. Lichtenstein, Christopher Rowen, John C. Ruttenberg, Robert P. Wilson
  • Patent number: 6282634
    Abstract: A floating point unit is provided with a register bank comprising 32 registers that may be used as either vector registers of scalar registers. A data processing instruction includes at least one register specifying field pointing to a register containing a data value to be used in that operation. An increase in the instruction bit space available to encode more opcodes or to allow for more registers is provided by encoding whether a register is to be treated as a vector or a scalar within the register field itself. Further, the register field for one register of the instruction may encode whether another register is a vector or a scalar. The registers can be initially accessed using the values within the register fields of the instruction independently of the opcode allowing for easier decode.
    Type: Grant
    Filed: May 27, 1998
    Date of Patent: August 28, 2001
    Assignee: ARM Limited
    Inventors: Christopher Neal Hinds, David Vivian Jaggar, David Terrence Matheny, David James Seal
  • Publication number: 20010016899
    Abstract: A data-processing device, in particular a network processor for processing layer 1 to 7 of protocol stacks in applications such as LAN, ATM switches, IP routers or frame relays which are based on DSL, Ethernet or cable modems. The processor has instruction buffers, instruction decoders, and instruction-execution units corresponding to a number of processes to be processed in parallel. A program flow control unit essentially controls the parallel processing.
    Type: Application
    Filed: January 12, 2001
    Publication date: August 23, 2001
    Inventor: Xiaoning Nie
  • Patent number: 6275749
    Abstract: Rapid thread processing is performed by associating thread contexts stored in a remote memory with interrupts for controlling the operation of a hardware-accelerated processor. This both minimizes the use of registers in the processor and provides a flexible, remotely accessible storage medium for the thread contexts.
    Type: Grant
    Filed: December 22, 1998
    Date of Patent: August 14, 2001
    Assignee: Philips Electronics North America Corporation
    Inventors: Winthrop L. Saville, Kevin Ross
  • Patent number: 6275926
    Abstract: For use in a processor having a result bus of insufficient width to convey all results of a given multiple-result instruction concurrently, a system for, and method of, writing back the results of the multiple-result instruction. In one embodiment, the system includes: (1) multi-result node creation circuitry that creates a multi-result node having at least first and second results for the multiple-result instruction and (2) node transmission circuitry, coupled to the multi-result node creation circuitry, that transmits the first and second results of said multi-result node sequentially over the result bus.
    Type: Grant
    Filed: April 2, 1999
    Date of Patent: August 14, 2001
    Assignee: VIA-Cyrix, Inc.
    Inventor: Nicholas G. Samra
  • Patent number: 6275921
    Abstract: A data processing device includes an instruction storage memory which stores load instructions by eliminating NOP instructions for insertion into a load module of a VLIW computer. The data processing device also includes a device to expand the compressed load module automatically by a hardware circuit during instruction execution. The data processing device compresses and stores specific instruction code strings in memory with information indicating a form of compression and then restores the instruction code strings to an original format when read from memory according to the compression information. Information indicating an original storage position is attached to each instruction code, instruction code strings are stored in memory without specific instruction codes, and then restored to the original code strings when read from memory according to the storage position information.
    Type: Grant
    Filed: March 20, 1998
    Date of Patent: August 14, 2001
    Assignee: Fujitsu Limited
    Inventors: Yasushi Iwata, Akira Asato
  • Publication number: 20010013093
    Abstract: An instruction code conversion unit, an information processing system provided with the instruction code conversion unit and an instruction code generation method for generating instruction codes which are converted by the instruction code conversion unit are described. The efficiency of coding of the program is improved by making use of an existing processor as selected is used without modification. An instruction code conversion unit performs conversion of the address of a native instruction code to the address of the corresponding compressed instruction code in a program memory by shifting the address of the native instruction code as outputted from the processor to the right by one bit.
    Type: Application
    Filed: February 7, 2001
    Publication date: August 9, 2001
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventors: Moriyasu Banno, Tomoaki Shoda, Hiroshi Itaya, Tomotaka Saito
  • Publication number: 20010010072
    Abstract: The instruction translator includes a translator for reading out a corresponding instruction from the instruction memory in response to the received address to be executed by the processor and translating the instruction in a second instruction architecture into an instruction in a first instruction architecture, an instruction cache for temporarily holding the instruction in the first instruction architecture after the translation by the translator in association with the address in the instruction memory, and a selector for searching the instruction cache in response to the received address of an instruction to be executed by the processor, and based on a determination result of whether or not an instruction corresponding to the instruction of the address is held in the instruction cache, selectively outputting an instruction output by the translator, and the corresponding instruction in the first instruction architecture which has been held in the instruction cache.
    Type: Application
    Filed: January 10, 2001
    Publication date: July 26, 2001
    Applicant: Mitsubishi Denki Kabushiki Kaisha
    Inventor: Toyohiko Yoshida
  • Patent number: 6266768
    Abstract: In a load/store unit within a microprocessor, load instructions are executed out of order. The load instructions are assigned tags in a predetermined manner, and then assigned to a load reorder queue for keeping track of the program order of the load instructions. Then when new load instructions are issued, the new load instructions are compared to entries within the load reorder queues to detect out of order problems.
    Type: Grant
    Filed: December 16, 1998
    Date of Patent: July 24, 2001
    Assignee: International Business Machines Corporation
    Inventors: Marlin Wayne Frederick, Jr., Bruce Joseph Ronchetti, Larry Edward Thatcher
  • Patent number: 6263429
    Abstract: A method of compressing programs, especially those used in embedded systems, is provided which allows greater program compression without significantly degrading system performance. The method provides: first, examining an entire program for sequences of lines of code, which may or may not constitute basic blocks; determining which sequences are identical or are identical except for a variation in a predetermined number of Elements within the sequence; designating and saving one uncompressed version of the identified sequences in memory as a specific microroutine, saving the Elements which differentiate the saved sequence from the various nearly identical sequences; and, assembling a version of the program consisting of original lines of code and microcalls. The microcall is a line of code which instructs a processor to implement a previously saved microroutine and provides an indication as to which Elements in the microroutine are to be replaced and where to find the substitute Elements.
    Type: Grant
    Filed: September 30, 1998
    Date of Patent: July 17, 2001
    Assignee: Conexant Systems, Inc.
    Inventor: Charles P. Siska
  • 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: 6260133
    Abstract: An instruction fetch unit 10 issues a normal ALU operating instruction or a wide ALU operating instruction using two operating units to a first pipeline 14. The instruction fetch unit 10 also issues a normal ALU operating instruction to a second pipeline 16. Occasionally, a wide ALU operating instruction using both a first integer unit 20 and a second integer unit 24 to the first pipeline 14 while a normal ALU operating instruction using the second integer unit 24 to the second pipeline 16. In this case, if the normal ALU operating instruction is earlier, then the normal ALU operating instruction is executed preferentially. If the wide ALU operating instruction is earlier, then the wide ALU operating instruction is executed preferentially.
    Type: Grant
    Filed: February 8, 1999
    Date of Patent: July 10, 2001
    Assignee: Kabushiki Kaisha Toshiba
    Inventor: Tatsuo Teruyama
  • Patent number: 6253305
    Abstract: A microprocessor is provided for supporting reduction of codes in size, wherein instructions are extended in units of 0.5 word from a basic one word code. A word of instruction, fetched from an external memory, is transferred to a decoding register via instruction buffers and a selector both operate in units of half words, then is decoded by a decoder. A storage unit stores a state of an instruction stored in an instruction buffer. A controlling unit controls the selector so that the instructions are transferred from instruction buffers to the decoding register in units of half words based on a direction from the decoder and the states stored in the storage unit.
    Type: Grant
    Filed: January 7, 1999
    Date of Patent: June 26, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Toshimichi Matsuzaki, Masashi Deguchi, Toshifumi Hamaguchi, Yutaka Tanase, Masahiko Matsumoto
  • Patent number: 6253308
    Abstract: A microcomputer CMU adopting the general purpose register method is enabled to have a small program capacity or a high program memory using efficiency and a low system cost, while enjoying the advantage of simplification of the instruction decoding as in the RISC machine having a fixed length instruction format of the prior art, by adopting a fixed length instruction format having a power of 2 but a smaller bit number than that of the maximum data word length fed for instruction execution. And, the control of the coded division is executed by noting the code bits.
    Type: Grant
    Filed: April 2, 1998
    Date of Patent: June 26, 2001
    Assignees: Hitachi, Ltd., Hitachi VLSI Engineering Corp., Hitachi Microcomputer System, Ltd.
    Inventors: Shumpei Kawasaki, Eiji Sakakibara, Kaoru Fukada, Takanaga Yamazaki, Yasushi Akao, Shiro Baba, Toshimasa Kihara, Keiichi Kurakazu, Takashi Tsukamoto, Shigeki Masumura, Yasuhiro Tawara, Yugo Kashiwagi, Shuya Fujita, Katsuhiko Ishida, Noriko Sawa, Yoichi Asano, Hideaki Chaki, Tadahiko Sugawara, Masahiro Kainaga, Kouki Noguchi, Mitsuru Watabe
  • Patent number: 6253287
    Abstract: A microprocessor capable of predecoding variable-length instructions and storing them in a three-dimensional instruction cache is disclosed. The microprocessor may comprise a predecode unit, an instruction cache, and an address translation table. The predecode unit receives variable-length instructions from a main memory subsystem. These instructions are then predecoded by detecting instruction field boundaries within each variable-length instruction. Instructions fields that are not present in a particular instruction may be added by inserting padding constants so that the instruction matches a predetermined format having all instruction fields. The predecoded instruction is stored in the instruction cache, which may be logically and physically structured as a three-dimensional array. Each instruction is stored in the cache so that it has a fixed length in two dimensions. The address translation table maintains address translations for each instruction stored in the instruction cache.
    Type: Grant
    Filed: September 9, 1998
    Date of Patent: June 26, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thomas S. Green
  • Patent number: 6253309
    Abstract: A microprocessor configured to rapidly decode variable-length instructions is disclosed. The microprocessor is configured with a predecoder and an instruction cache. The predecoder is configured to expand variable-length instructions to create fixed-length instructions by padding instruction fields within each variable-length instruction with constants until each field reaches a predetermined maximum width. The fixed-width instructions are then stored within the instruction cache and output for execution when a corresponding requested address is received. The instruction cache may store both variable- and fixed-width instructions, or just fixed-width instructions. An array of pointers may be used to access particular fixed-length instructions. The fixed-length instructions may be configured to all have the same fields and the same lengths, or they may be divided into groups, wherein instructions within each group have the same fields and the same lengths.
    Type: Grant
    Filed: September 21, 1998
    Date of Patent: June 26, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Rupaka Mahalingaiah
  • Patent number: 6253312
    Abstract: An apparatus and method are provided for concurrently loading single-precision operands into registers in a microprocessor floating point register file. The apparatus includes translation logic, data logic, and write back logic. The translation logic receives a load macro instruction prescribing an address, and decodes the load macro instruction into a double load micro instruction. The double load micro instruction directs the microprocessor to retrieve the two single-precision operands from the address and to load the two single-precision operands into the two floating point registers. The data logic, coupled to the translation logic, executes the double load micro instruction and retrieves the two single-precision operands from the address. The write back logic, coupled to the data logic, loads the two single-precision operands into the two floating point registers during a single write cycle.
    Type: Grant
    Filed: August 7, 1998
    Date of Patent: June 26, 2001
    Assignee: IP First, L.L.C.
    Inventors: Timothy A. Elliott, G. Glenn Henry, Terry Parks
  • 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: 6247112
    Abstract: Methods and systems for bit manipulation instructions are disclosed. The instruction srlmsk shifts a value stored in a first register based on a shift value stored in a second register and loads N bits from the shift register to a third register using a single instruction. The instruction concat loads the lower N bits from a first register into the high order bits of a second register and loads a subset of least significant bits of a third register to the low order bits of the second register using a single instruction. These instructions may be used to improve variable length encoding and decoding processes.
    Type: Grant
    Filed: December 30, 1998
    Date of Patent: June 12, 2001
    Assignees: Sony Corporation, Sony Electronics, Inc.
    Inventor: Takahito Seki
  • 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
  • Publication number: 20010002483
    Abstract: A microprocessor configured to reduce variance in the length of variable length instructions by compressing multiple prefix bytes into a single byte is disclosed. The microprocessor is configured with a predecode unit and an instruction cache. The predecode unit is configured to receive variable length instructions, each having a variable number of prefix bytes. The predecode unit is configured to detect the prefix bytes and compress them into one compressed prefix byte for each instruction. The instruction cache is coupled to the predecode unit and is configured to receive and store the instructions and compressed prefix bytes from the predecode unit. The instruction cache may be configured to output one of the instructions and any corresponding compressed prefix bytes in response to receiving a fetch address. A computer system, method, and software program configured to compress prefix bytes are also disclosed.
    Type: Application
    Filed: September 21, 1998
    Publication date: May 31, 2001
    Applicant: ADVANCED-LENGTH INSTRUCTION PREFIX BYTES
    Inventor: JAMES R. ROBERTS
  • Patent number: 6240509
    Abstract: In one embodiment of the invention, a processor includes an execution pipeline to execute instructions, wherein at least some of the instructions are executed speculatively. The processor also includes a trace buffer outside the execution pipeline to hold the instructions, and wherein instructions that are associated with speculation errors are replayed in the execution pipeline from the trace buffer. In another embodiment, the processor includes an execution pipeline to execute instructions, wherein at least some of the instructions are executed speculatively. The processor also includes a trace buffer outside the execution pipeline to hold instructions and results of the execution of the instructions, wherein at least some of the instructions are subject to an initial retirement following execution in the pipeline, but remain in the trace buffer until a final retirement.
    Type: Grant
    Filed: December 16, 1997
    Date of Patent: May 29, 2001
    Assignee: Intel Corporation
    Inventor: Haitham Akkary
  • Patent number: 6240506
    Abstract: A microprocessor configured to predecode instructions with variable address and operand lengths into a uniform format with constant address and operand lengths is disclosed. The microprocessor may comprise a predecode unit configured to receive instruction bytes from a main memory subsystem. The predecode unit is configured to detect instructions having prefix bytes that override default operand and address field lengths. This information, combined with the instruction's default operand and address length, allows the predecode unit to expand addresses and operands that are shorter than the predetermined uniform length. The operands and addresses are expanded by padding them with constants. Once the instructions are padded to a uniform format, they are stored in an instruction cache. An address translation table may be used to translate fetch addresses, thereby compensating for the offset created by the padding constants.
    Type: Grant
    Filed: October 2, 1998
    Date of Patent: May 29, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Paul K. Miller
  • Publication number: 20010001874
    Abstract: A data processor according to the present invention executes instructions described in first and second instruction formats. The first instruction format defines a register-addressing field of a predetermined size, while the second instruction format defines a register-addressing field of a size larger than that of the register-addressing field defined by the first instruction format. The data processor includes: instruction-type identifier, responsive to an instruction, for identifying the received instruction as being described in the first or second instruction format by the instruction itself; a first register file including a plurality of registers; and a second register file also including a plurality of registers, the number of the registers included in the second register file being larger than that of the registers included in the first register file.
    Type: Application
    Filed: January 18, 2001
    Publication date: May 24, 2001
    Applicant: Matsushita Electric Industrial Co., Ltd.
    Inventors: Takeshi Kishida, Masaitsu Nakajima
  • Patent number: 6237074
    Abstract: A pipelined processor in which the decoder can consume a portion of an instruction and hold that portion in sub-field shadow registers while retrieving the remainder of the instruction in a subsequent cycle or cycles. Each byte in a prefetch buffer is individually tagged such that the decoder can clear individual bytes in the prefetch buffer in order to allow additional instruction bytes to be prefetched before the current instruction is completely consumed and decoded by the decode stage. This allows for an optimal buffer size that is less than the maximum possible instruction length but large enough to hold a complete copy of the vast majority of instructions.
    Type: Grant
    Filed: May 26, 1995
    Date of Patent: May 22, 2001
    Assignee: National Semiconductor Corp.
    Inventors: Christopher E. Phillips, Robert J. Divivier, Mario Nemirovsky
  • Patent number: 6237080
    Abstract: A computer having a reduced instruction computer (RISC) architecture has a RISC central processing unit (CPU)(1) coupled to a RAM memory (3) and to a flash ROM memory (4). A set of compressed operating instructions (6,8), including a subset defining a compression method (8), are stored in the flash ROM (4) together with a set of uncompressed instructions (7) defining a compression algorithm. Upon booting of the computer, the uncompressed instructions (7) are read from the ROM (4) by the CPU (1) which then also reads the compressed instructions (6,8), decompresses them according to the decompression process (7), and writes the decompressed instructions (6′,8′) to the RAM (3). The compressed instructions (6,8) can be dynamically altered by the CPU (1), by generating an altered set of uncompressed instructions, compressing these in accordance with the now decompressed compression method (8′), and writing these to the flash ROM (4).
    Type: Grant
    Filed: September 28, 1998
    Date of Patent: May 22, 2001
    Assignee: Nokia Mobile Phones Ltd.
    Inventor: Rauno Mäkinen
  • Patent number: 6233671
    Abstract: A method and apparatus are disclosed for staggering execution of an instruction. According to one embodiment of the invention, a single macro instruction is received wherein the single macro instruction specifies at least two logical registers and wherein the two logical registers respectively store a first and second packed data operands having corresponding data elements. An operation specified by the single macro instruction is then performed independently on a first and second plurality of the corresponding data elements from said first and second packed data operands at different times using the same circuit to independently generate a first and second plurality of resulting data elements. The first and second plurality of resulting data elements are stored in a single logical register as a third packed data operand.
    Type: Grant
    Filed: March 31, 1998
    Date of Patent: May 15, 2001
    Assignee: Intel Corporation
    Inventors: Mohammad Abdallah, James S. Coke, Steve Fischer, Vladmir Pentkovski
  • Patent number: 6230256
    Abstract: A data processing system contains a processor supporting instructions and operands utilizing a Narrow word size. The processor communicates over a bus utilizing a Wide word size with the remainder of the data processing system consisting of industry standard memory and peripheral devices. Narrow word sized instructions are stored on Wide word-sized storage devices. The translation between Narrow and Wide word sizes can be either at a byte/Unicode level, or at a word level.
    Type: Grant
    Filed: March 31, 1999
    Date of Patent: May 8, 2001
    Assignee: Bull HN Information Systems Inc.
    Inventor: Russell W. Guenthner
  • Patent number: 6223254
    Abstract: The present invention utilizes a cache which stores various decoded instructions, or parcels, so that these parcels can be made available to the execution units without having to decode a microprocessor instruction, such as a CISC instruction, or the like. This increases performance by bypassing the fetch/decode pipeline stages on the front end of the microprocessor by using a parcel cache to store previously decoded instructions. The parcel cache is coupled to the microprocessor fetch/decode unit and can be searched during an instruction fetch cycle. This search of the parcel cache will occur in parallel with the search of the microprocessor instruction cache. When parcel(s) corresponding to the complex instruction being fetched are found in the parcel cache a hit occurs and the corresponding micro-ops are then sent to the execution units, bypassing the previous pipeline stages.
    Type: Grant
    Filed: December 4, 1998
    Date of Patent: April 24, 2001
    Assignee: STMicroelectronics, Inc.
    Inventor: Naresh Soni
  • Patent number: 6219779
    Abstract: A processor includes a constant register 36 for storing a constant, a format decoder 21 for decoding a format code located in the P0.0 field of an instruction stored in the instruction register 10, and a constant register control unit 32 which, when the format decoder 21 has decoded that the instruction includes a constant to be stored in the constant register 36, shifts the presently stored value in the constant register 36 and stores the constant into the constant register 36.
    Type: Grant
    Filed: June 12, 1998
    Date of Patent: April 17, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Shuichi Takayama, Nobuo Higaki, Tetsuya Tanaka, Taketo Heishi, Masato Suzuki
  • Patent number: 6212621
    Abstract: A microprocessor configured to allow instructions to be decoded out of order is disclosed. The microprocessor is configured to assign fetch tags to groups of instruction bytes as they are fetched from an instruction cache. The instructions are then aligned and decoded. Multiple decode units may be used in parallel to perform the aligning and decoding. As the groups of instruction bytes are aligned and decoded, a separate instruction counter is maintained for each group. The instruction counters identify the number of instructions decoded within each group. Instruction tags are formed by appending the instruction counter values to the fetch tags. The instruction tags serve to identify the relative position of each decoded instruction in program order. After decoding, the instructions are stored in a reordering storage unit. The reordering storage unit allows the instructions to be reordered for dependency checking. A method for decoding instructions out of order is also disclosed.
    Type: Grant
    Filed: June 24, 1998
    Date of Patent: April 3, 2001
    Inventor: Rupaka Mahalingaiah
  • Patent number: 6212601
    Abstract: In one embodiment, there is a single integrated circuit microprocessor (10). The microprocessor has an instruction pipeline (12) which comprises an execution stage (12a) operable to process an information unit of a first length. The microprocessor further includes a cache circuit (20) comprising a memory (34) operable to store a transfer unit of information of a second length and accessible by the instruction pipeline. The second length corresponding to the capability of the cache circuit is greater than the first length corresponding to the execution stage operability. Lastly, the microprocessor includes a block move circuit (24) coupled to the cache circuit and operable to read/write a transfer unit of information of the first length into the memory of the cache circuit.
    Type: Grant
    Filed: August 29, 1997
    Date of Patent: April 3, 2001
    Assignee: Texas Instruments Incorporated
    Inventor: Jonathan H. Shiell
  • Patent number: 6209079
    Abstract: For a processor having instruction codes of two instruction lengths (16 bits and 32 bits), methods of locating the instruction codes are limited to two types: (1) two 16-bit instruction codes are stored within 32-bit word boundaries, and (2) a single 32-bit instruction code is stored intactly within the 32-bit word boundaries. A branch destination address is specified only on the 32-bit word boundary. The MSB of each instruction code serves as a 1-bit instruction length identifier for controlling the execution sequence of the instruction codes. This provides two transfer paths from an instruction fetch portion to an instruction decode portion within the processor, achieving reduction in code side and in the amount of hardware and, accordingly, the increase in operating speed.
    Type: Grant
    Filed: May 1, 2000
    Date of Patent: March 27, 2001
    Assignee: Mitsubishi Denki Kabushiki Kaisha
    Inventors: Sugako Otani, Shunichi Iwata
  • Patent number: 6205534
    Abstract: In a data processing apparatus, a decoding unit decodes instructions. A calculator operates N-bit data in accordance with the decoded results. A flag storage unit stores a plurality of flag groups which are changed in correspondence to data having different widths, based on the operated results. Selectors select a predetermined flag group in accordance with the direction of a conditional branch instruction. A branch judging unit judges whether a branch is taken or not by referring to the selected flag group.
    Type: Grant
    Filed: September 22, 1999
    Date of Patent: March 20, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Hiroshi Kamiyama, Masato Suzuki, Shinya Miyaji
  • Patent number: 6202143
    Abstract: A data processing system for processing digital data comprises a first program bus for transferring a unit instruction, a second program bus for transferring a multi instruction consisting of unit instructions, a first program memory connected with said first program bus for storing the unit instruction, a second program memory connected with the second program bus for storing the multi instruction, and a process core for executing the unit or multi instruction fetched. The first and second program memories preferably have different bits widths. The process core includes an instruction input interface circuit for adding NOP instructions to a unit instruction fetched from the first program memory so as to form a multi instruction.
    Type: Grant
    Filed: August 18, 1998
    Date of Patent: March 13, 2001
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Min-Joong Rim
  • Patent number: 6199155
    Abstract: A data processor according to the present invention executes instructions described in first and second instruction formats. The first instruction format defines a register-addressing field of a predetermined size, while the second instruction format defines a register-addressing field of a size larger than that of the register-addressing field defined by the first instruction format. The data processor includes: instruction-type identifier, responsive to an instruction, for identifying the received instruction as being described in the first or second instruction format by the instruction itself; a first register file including a plurality of registers; and a second register file also including a plurality of registers, the number of the registers included in the second register file being larger than that of the registers included in the first register file.
    Type: Grant
    Filed: March 11, 1999
    Date of Patent: March 6, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Takeshi Kishida, Masaitsu Nakajima
  • Patent number: 6195746
    Abstract: Dynamically typed registers in a processor are provided by associating a type specifier with a register specifier for each register in the processor, storing the register specifiers and associated type specifiers in a register type table. The type specifier associated with an operand register of an instruction is employed to dispatch the instruction to an appropriate execution unit within the processor. The results of the instruction are stored in a register having an associated type specifier matching the execution unit type. Register specifiers are dynamically allocated to particular execution units within the processor by altering the type specifier associated with the register specifiers. Register values may be either discarded or converted when the register specifier type is altered. A general instruction allows conversion of the value from one type to another without storing the converted value in memory.
    Type: Grant
    Filed: January 31, 1997
    Date of Patent: February 27, 2001
    Assignee: International Business Machines Corporation
    Inventor: Ravindra Kumar Nair
  • Patent number: 6195740
    Abstract: A processor for decoding and executing an instruction includes: an instruction register 10 for storing an instruction; a format decoder 21 for decoding a format code located in the P0.0 field 11 of the instruction stored in the instruction register 10; a constant storage unit including a storage region; a constant register control unit 32 which, when the format decoder 21 has referred to the format code and decoded that an operation field includes a constant to be stored in the constant register 36, transfers the constant from the instruction register 10 to the constant storage unit 36; and a constant register output unit 41 which, when the format decoder 21 has referred to the format code and decoded that an operation field includes an operation code showing an operation that should be executed and a piece of an operand that should be used for the operation, links the constant stored in the constant register 36 with the piece of the operand.
    Type: Grant
    Filed: July 29, 1998
    Date of Patent: February 27, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Taketo Heishi, Nobuo Higaki, Akira Tanaka, Tetsuya Tanaka, Shuichi Takayama, Kensuke Odani, Shinya Miyaji
  • Patent number: 6185671
    Abstract: The present invention discloses a method and apparatus for matching data types of operands in an instruction. A type code of an operand used by the instruction is determined. An attribute value of a storage element which corresponds to the operand is read from a speculative array. This attribute value is then compared with the type code.
    Type: Grant
    Filed: March 31, 1998
    Date of Patent: February 6, 2001
    Assignee: Intel Corporation
    Inventors: Vladimir Pentovski, Gerald Bennett, Stephen A. Fischer, Eric Heit, Glenn J. Hinton, Patrice L. Roussel
  • Patent number: 6182202
    Abstract: A method and apparatus for storing a variable length operand offset in a computer instruction is provided. An operand base is stored in a computer instruction. Also stored in the computer instruction is a variable length operand offset that is associated with the operand base. In addition, an operand offset length is stored within the computer instruction that defines the length of the variable length operand offset. Storing an operand offset length with each variable length operand offset in a computer instruction provides for the reduction of unused space.
    Type: Grant
    Filed: October 31, 1997
    Date of Patent: January 30, 2001
    Assignee: Oracle Corporation
    Inventor: Kannan Muthukkaruppan
  • 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: 6178496
    Abstract: A converter (130) comprises a multiplex-buffer (410) at a bus (120), a decoder (420), an output buffer (430) and a comparator (440). The multiplex-buffer (410) forwards VMAX bits (260) of Huffman coded code portions (222) from the bus (120) to the decoder (410). The VMAX bits (260) can comprise further bits set to logical “1” or “0” at random. On a control output (414), the multiplex-buffer (410) provides a signal K identifying which of the VMAX bits are valid or invalid. The decoder (420) maps the VMAX bits (260) into a preliminary bit cluster (426) and indicates a code length V regardless whether some or all bits are valid or not. The comparator (440) checks V and K and allows the output buffer (430) to copy the preliminary bit cluster (426) into instruction portions (212) only when the code length fits the identification of valid bits.
    Type: Grant
    Filed: February 17, 1999
    Date of Patent: January 23, 2001
    Assignee: Motorola, Inc.
    Inventors: Rami Natan, Alex Miretsky, Vitaly Sukonik
  • 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: 6175907
    Abstract: An apparatus and method for calculating a square root of an operand in a microprocessor are provided. The microprocessor has a plurality of square root instructions, each of which specifies a square root calculation precision. The apparatus includes translation logic and execution logic. The translation logic decodes the square root macro instruction into a plurality of prescribed-precision machine instructions according to the square root calculation precision specified by the plurality of square root instructions. The execution logic, coupled to the translation logic, receives the plurality of prescribed-precision machine instructions and calculates the square root of the operand according to the specified square root calculation precision. At least one of the plurality of square root instructions specifies the square root calculation precision such that less significant bits are calculated in the square root than are provided in the operand.
    Type: Grant
    Filed: July 17, 1998
    Date of Patent: January 16, 2001
    Assignee: IP First, L.L.C
    Inventors: Timothy A. Elliott, G. Glenn Henry
  • Patent number: 6173389
    Abstract: A pipelined data processing unit includes an instruction sequencer and n functional units capable of executing n operations in parallel. The instruction sequencer includes a random access memory for storing very-long-instruction-words (VLIWs) used in operations involving the execution of two or more functional units in parallel. Each VLIW comprises a plurality of short-instruction-words (SIWs) where each SIW corresponds to a unique type of instruction associated with a unique functional unit. VLIWs are composed in the VLIW memory by loading and concatenating SIWs in each address, or entry. VLIWs are executed via the execute-VLIW (XV) instruction. The iVLIWs can be compressed at a VLIW memory address by use of a mask field contained within the XV1 instruction which specifics which functional units are enabled, or disabled, during the execution of the VLIW. The mask can be changed each time the XV1 instruction is executed, effectively modifying the VLIW every time it is executed.
    Type: Grant
    Filed: December 4, 1998
    Date of Patent: January 9, 2001
    Assignee: Billions of Operations Per Second, Inc.
    Inventors: Gerald G. Pechanek, Juan Guillermo Revilla, Edwin F. Barry