Ces caches sont а йcritures simultanйes et а correspondances directes, physiquement adressйs et testйs. Leur capacitй est variable de 4 а 64 Ko chacun. Ils ont tous deux une taille de 8 Ko et sont а correspondances directes. Un second niveau de cache, externe au composant, sert au stockage des donnйes flottantes. Ce cache est adressй virtuellement. Il met en oeuvre un mйcanisme original lors des йcritures.
|Published (Last):||12 February 2004|
|PDF File Size:||12.20 Mb|
|ePub File Size:||14.41 Mb|
|Price:||Free* [*Free Regsitration Required]|
Since MIPS I is a bit architecture, loading quantities fewer than 32 bits requires the datum to be either signed- or zero-extended to 32 bits. The load instructions suffixed by "unsigned" perform zero extension; otherwise sign extension is performed.
All load and store instructions compute the memory address by summing the base with the sign-extended bit immediate. MIPS I requires all memory accesses to be aligned to their natural word boundaries, otherwise an exception is signaled. All load instructions are followed by a load delay slot.
The instruction in the load delay slot cannot use the data loaded by the load instruction. The load delay slot can be filled with an instruction that is not dependent on the load; a nop is substituted if such an instruction cannot be found. MIPS I has instructions to perform addition and subtraction. Alternatively, addition can source one of the operands from a bit immediate which is sign-extended to 32 bits.
The instructions for addition and subtraction have two variants: by default, an exception is signaled if the result overflows; instructions with the "unsigned" suffix do not signal an exception. The Set on relation instructions write one or zero to the destination register if the specified relation is true or false. By default, the operands are interpreted as signed integers. The variants of these instructions that are suffixed with "unsigned" interpret the operands as unsigned integers even those that source an operand from the sign-extended bit immediate.
It is used in conjunction with the Or Immediate instruction to load a bit immediate into a register. MIPS I has instructions to perform left and right logical shifts and right arithmetic shifts. The shift distance is obtained from either a GPR rs or a 5-bit "shift amount" the "sa" field. MIPS I has instructions for signed and unsigned integer multiplication and division.
These instructions source their operands from two GPRs and write their results to a pair of bit registers called HI and LO, since they may execute separately from and concurrently with the other CPU instructions. For multiplication, the high- and low-order halves of the bit product is written to HI and LO respectively. For division, the quotient is written to LO and the remainder to HI.
These instructions are used to restore HI and LO to their original state after exception handling. Unless the branch delay slot is filled by an instruction performing useful work, an nop is substituted. Control is transferred to the address computed by shifting the bit offset left by two bits, sign-extending the bit result, and adding the bit sign-extended result to the sum of the program counter instruction address and Jumps have two versions: absolute and register-indirect.
Register-indirect jumps transfer control to the instruction at the address sourced from a GPR rs. The address sourced from the GPR must be word-aligned, else an exception is signaled after the instruction in the branch delay slot is executed.
Both instructions have a bit Code field that can contain operating environment-specific information for the exception handler. MIPS has 32 floating-point registers. Two registers are paired for double precision numbers.
Single precision is denoted by the. A set of Trap-on-Condition instructions were added. These instructions caused an exception if the evaluated condition is true. All existing branch instructions were given branch-likely versions that executed the instruction in the branch delay slot only if the branch is taken. Consistent with other memory access instructions, these loads and stores required the doubleword to be naturally aligned.
The instruction set for the floating point coprocessor also had several instructions added to it. An IEEE compliant floating-point square root instruction was added. It supported both single- and double-precision operands. A set of instructions that converted single- and double-precision floating-point numbers to bit words were added.
These complemented the existing conversion instructions by allowing the IEEE rounding mode to be specified by the instruction instead of the Floating Point Control and Status Register. Existing instructions originally defined to operate on bit words were redefined, where necessary, to sign-extend the bit results to permit words and doublewords to be treated identically by most instructions.
Among those instructions redefined was Load Word. To complement Load Word, a version that zero-extends was added. The first version is a bit version of the original shift instructions, used to specify constant shift distances of 0—31 bits.
The third version obtains the shift distance from the six low-order bits of a GPR. This feature only affected the implementation-defined System Control Processor Coprocessor 0. The remaining coprocessors gained instructions to move doublewords between coprocessor registers and the GPRs. The floating general registers FGRs were extended to 64 bits and the requirement for instructions to use even-numbered register only was removed.
The floating-point control registers were not extended for compatibility. The only new floating-point instructions added were those to copy doublewords between the CPU and FPU convert single- and double-precision floating-point numbers into doubleword integers and vice versa. To alleviate the bottleneck caused by a single condition bit, seven condition code bits were added to the floating-point control and status register, bringing the total to eight.
FP comparison and branch instructions were redefined so they could specify which condition bit was written or read respectively ; and the delay slot in between an FP branch that read the condition bit written to by a prior FP comparison was removed.
Support for partial predication was added in the form of conditional move instructions for both GPRs and FPRs; and an implementation could choose between having precise or imprecise exceptions for IEEE traps. The FP fused-multiply add or subtract instructions perform either one or two roundings it is implementation-defined , to exceed or meet IEEE accuracy requirements respectively.
The FP reciprocal and reciprocal square-root instructions do not comply with IEEE accuracy requirements, and produce results that differ from the required accuracy by one or two units of last place it is implementation defined. These instructions serve applications where instruction latency is more important than accuracy. Variants of existing floating-point instructions for arithmetic, compare and conditional move were added to operate on this data type in a SIMD fashion.
New instructions were added for loading, rearranging and converting PS data. BGTUC or a register against zero e. BGTZC , full set of branch-and-link which compare a register against zero e. PC-relative load instructions, as well as address generation with large PC-relative offsets. Removed infrequently used instructions: branch likely instructions deprecated in previous releases. A disadvantage of MIPS16e is that it requires a mode switch before any of its bit instructions can be processed.
This allows programs to intermix and bit instructions without having to switch modes. Application-specific extensions[ edit ] The base MIPS32 and MIPS64 architectures can be supplemented with a number of optional architectural extensions, which are collectively referred to as application-specific extensions ASEs. These ASEs provide features that improve the efficiency and performance of certain workloads, such as digital signal processing.
Separate priority and vector generation Supports up to interrupts in EIC External Interrupt Controller mode and eight hardware interrupt pins Provides bit vector offset address Pre-fetching of the interrupt exception vector Automated Interrupt Prologue — adds hardware to save and update system status before the interrupt handling routine Automated Interrupt Epilogue — restores the system state previously stored in the stack for returning from the interrupt.
Interrupt Chaining — supports the service of pending interrupts without the need to exit the initial interrupt routine, saving the cycles required to store and restore multiple active interrupts Supports speculative pre-fetching of the interrupt vector address. Release 6 replaced it with microMIPS. The DSP module comprises a set of instructions and state in the integer pipeline and requires minimal additional logic to implement in MIPS processor cores.
Revision 2 of the ASE was introduced in the second half of This revision adds extra instructions to the original ASE, but is otherwise backwards-compatible with it. Its main novel features vs original MIPS32 :  Saturating arithmetic when a calculation overflows, deliver the representable number closest to the non-overflowed answer.
SIMD operations are basic arithmetic, shifts and some multiply-accumulate type operations. However, since each VPE includes a complete copy of the processor state as seen by the software system, each VPE appears as a complete standalone processor to an SMP Linux operating system. The TCs share a common execution unit but each has its own program counter and core register files so that each can handle a thread from the software.
This enables two prioritization mechanisms that determine the flow of information across the bus. The first mechanism allows the user to prioritize one thread over another.
The second mechanism is used to allocate a specified ratio of the cycles to specific threads over time.
The combined use of both mechanisms allows effective allocation of bandwidth to the set of threads, and better control of latencies. In real-time systems, system-level determinism is very critical, and the QoS block facilitates improvement of the predictability of a system.
Hardware designers of advanced systems may replace the standard QoS block provided by MIPS Technologies with one that is specifically tuned for their application.