12.07.2015 Views

Geode GXLV Processor Series Low Power Integrated x86 Solutions

Geode GXLV Processor Series Low Power Integrated x86 Solutions

Geode GXLV Processor Series Low Power Integrated x86 Solutions

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Geode</strong> <strong>GXLV</strong> <strong>Processor</strong> <strong>Series</strong><strong>Processor</strong> Programming (Continued)3.9.3 Privilege Level TransfersA task’s CPL can be changed only through intersegmentcontrol transfers using gates or task switches to a codesegment with a different privilege level. Control transfersresult from exception and interrupt servicing and fromexecution of the CALL, JMP, INT, IRET and RET instructions.There are five types of control transfers that are summarizedin Table 3-37. Control transfers can be made onlywhen the operation causing the control transfer referencesthe correct descriptor type. Any violation of these descriptorusage rules causes a general protection fault.Any control transfer that changes the CPL within a taskresults in a change of stack. The initial values for the stacksegment (SS) and stack pointer (ESP) for privilege levels0, 1, and 2 are stored in the TSS. During a JMP or CALLcontrol transfer, the SS and ESP are loaded with the newstack pointer and the previous stack pointer is saved onthe new stack. When returning to the original privilegelevel, the RET or IRET instruction restores the SS andESP of the less-privileged stack.Table 3-37. Descriptor Types Used for Control TransferType of Control TransferOperation TypesDescriptorReferencedDescriptorTableIntersegment within the same privilegelevel.Intersegment to the same or a moreprivileged level. Interrupt within task(could change CPL level).JMP, CALL, RET, IRET* Code Segment GDT or LDTCALL Gate Call GDT or LDTInterrupt Instruction, Exception, Trap or Interrupt Gate IDTExternal InterruptIntersegment to a less privileged level RET, IRET* Code Segment GDT or LDT(changes task CPL).Task Switch via TSS CALL, JMP Task State Segment GDTTask Switch via Task Gate CALL, JMP Task Gate GDT or LDTIRET**, Interrupt Instruction,Exception, External InterruptTask GateIDTNote: *NT = 0 (Nested Task bit in EFLAGS, bit 14)**NT =1 (Nested Task bit in EFLAGS, bit 14)www.national.com 92 Revision 1.3

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

Saved successfully!

Ooh no, something went wrong!