17.01.2013 Views

MIPS R10000 Microprocessor User's Manual - SGI TechPubs Library

MIPS R10000 Microprocessor User's Manual - SGI TechPubs Library

MIPS R10000 Microprocessor User's Manual - SGI TechPubs Library

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Coprocessor 0 299<br />

14.36 TLBWI Instruction<br />

TLBWI<br />

31 26 25 24<br />

Format: TLBWI<br />

Description:<br />

Operation:<br />

Exceptions:<br />

The G bit of the TLB is written with the logical AND of the G bits in the EntryLo0 and<br />

EntryLo1 registers.<br />

The TLB entry pointed at by the contents of the TLB Index register is loaded with the<br />

contents of the EntryHi and EntryLo registers.<br />

The operation is invalid (and the results are unspecified) if the contents of the TLB<br />

Index register are greater than the number of TLB entries in the processor.<br />

In the R4400, this instruction had to be executed in unmapped spaces, and in the<br />

<strong>R10000</strong> processor it can be executed in unmapped spaces without any hazard.<br />

There is no hazard to executing a TLB write in mapped space unless the write affects<br />

those instructions that have been fetched and buffered by the processor. If necessary,<br />

a flush to the instruction-fetch pipeline, such as execution of a jump register<br />

instruction, after a TLB write can avoid this hazard.<br />

In the R4400 processor, a TLB write instruction is used to write the whole page frame<br />

number from the EntryLo registers to the TLB entry. Depending on the page size<br />

specified in the corresponding PageMask register, the lower bits of PFN may not be<br />

used for address translation. In the <strong>R10000</strong> processor, the lower bits not used for<br />

address translation are forced to zeroes during a TLB write. This does not affect TLB<br />

address translation, however a TLB read may not retrieve what was originally written.<br />

Coprocessor unusable exception<br />

Write Indexed TLB Entry<br />

<strong>MIPS</strong> <strong>R10000</strong> <strong>Microprocessor</strong> <strong>User's</strong> <strong>Manual</strong> Version 2.0 of January 29, 1997<br />

TLBWI<br />

COP0<br />

0 1 0 0 0 0<br />

CO<br />

1<br />

0<br />

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br />

TLBWI<br />

0 0 0 0 1 0<br />

6<br />

1<br />

19<br />

6<br />

32, 64T: TLB[Index5...0 ] ←<br />

PageMask || (EntryHi and not PageMask) || EntryLo1 || EntryLo0<br />

6 5<br />

0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!