Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
AssigneeAdvanced Micro Devices, Inc.
InventorsDavid B. Witt, Michael D. Goddard
Life of this patent
Estimating the term…
Loading patent…
AssigneeAdvanced Micro Devices, Inc.
InventorsDavid B. Witt, Michael D. Goddard
Estimating the term…
An instruction cache for a superscalar processor having a variable byte-length instruction format, such as the X86 format, is organized as a 16K byte 4-way set-associative cache. An instruction store array is organized as 1024 blocks of 16 predecoded instruction bytes. The instruction bytes are prefetched and predecoded to facilitate the subsequent parallel decoding and mapping of up to four instructions into a sequence of one or more internal RISC-like operations (ROPs), and the parallel dispatch of up to 4 ROPs by an instruction decoder. Predecode bits are assigned to each instruction byte and are stored with the corresponding instruction byte in the instruction store array. The predecode bits include bits for identifying the starting, ending, and opcode bytes, and for specifying the number of ROPs that an instruction maps into. An address tag array is dual-ported and contains 1024 entries, each composed of a 20-bit address tag, a single valid bit for the entire block, and 16 individual byte-valid bits, one for each of the 16 corresponding instruction bytes within the instruction store array. A successor array is dual-ported and contains 1024 entries, each composed of a 14-bit successor index, a successor valid bit which indicates that the successor index stored in the successor array should be used to access the instruction store array or that no branch is predicted taken within the instruction block, and a block branch index which indicates the byte location within the current instruction block of the last instruction byte predicted to be executed.
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
In a super-scalar CISC processor of the type having a variable byte-length instruction format wherein each CISC instruction is mapped to a corresponding sequence of one or more internal RISC-like instructions for execution within a superscalar RISC-like core processor, an instruction cache comprising:
In a super-scalar CISC processor of the type having a variable byte-length instruction format wherein each CISC instruction is mapped to a corresponding sequence of one or more internal RISC-like instructions for execution within a superscalar RISC-like core processor, an instruction cache comprising:
In a super-scalar CISC processor of the type having a variable byte-length instruction format wherein each CISC instruction is mapped to a corresponding sequence of one or more internal RISC-like instructions for execution within a superscalar RISC-like core processor, an instruction cache comprising:
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
An apparatus for processing information comprising:
An apparatus for processing information comprising:
An apparatus for processing information comprising:
In a system for processing information, a method for caching CISC instructions having a variable byte-length instruction format, for delivery of said CISC instructions to an instruction decoder, comprising the steps of:
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
In a super-scalar CISC processor of the type having a variable byte-length instruction format wherein each CISC instruction is mapped to a corresponding sequence of one or more internal RISC-like instructions for execution within a superscalar RISC-like core processor, an instruction cache comprising:
In a system for processing information, a method for caching CISC instructions having a variable byte-length instruction format, for delivery of said CISC instructions to an instruction decoder, comprising the steps of:
An apparatus for caching CISC instructions and for providing said instructions to an instruction decoder for dispatch into a processor core, comprising:
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
An instruction cache for a processor of the type having a variable byte-length instruction format, comprising:
In a super-scalar CISC processor of the type having a variable byte-length instruction format wherein each CISC instruction is mapped to a corresponding sequence of one or more internal RISC-like instructions for execution within a superscalar RISC-like core processor, an instruction cache comprising:
Dependencies are inferred from the claim text.