About: Task state segment is a research topic. Over the lifetime, 7 publications have been published within this topic receiving 194 citations. The topic is also known as: TSS.
TL;DR: In this article, the authors propose a method for allowing a protected mode kernel to service, in virtual 8086 mode, hardware interrupts which occur during execution of ring 0 protected mode code.
Abstract: A method for allowing a protected mode kernel to service, in virtual 8086 mode, hardware interrupts which occur during execution of ring 0 protected mode code. When an interrupt occurs during execution of ring 0 code, the microprocessor copies the state of the last virtual 8086 environment on the top of the ring 0 stack and modifies this state to begin execution of the appropriate interrupt service routine in virtual 8086 mode. The kernel utilizes a secondary stack to keep track of the last virtual 8086 environment saved on the ring 0 stack and updates the ring 0 stack pointer in the respective task's task state segment to the new beginning of the ring 0 stack each time a ring transition occurs from ring 3 V86 mode to ring 0 protected mode. By manipulating the ring 0 stack and utilizing the secondary stack to keep track of interrupted V86 environments, the kernel can allow interrupts to be nested down multiple levels.
TL;DR: In this article, a microprocessor and a system incorporating the same is disclosed, in which branch prediction is effected in response to the type of program in which branching instructions are contained, in this way, each task may maintain its own branch pattern history-based prediction information when microprocessor (10) is operated in a multitasking environment.
Abstract: A microprocessor (10) and a system (300) incorporating the same is disclosed, in which branch prediction is effected in response to the type of program in which branching instructions are contained. A fetch unit (26) includes a branch target buffer (56) and a plurality of pattern history tables (53). Select logic (80) receives signals indicating, for each branching instruction, the type of program containing the instruction, and selects one of the pattern history tables (53) for use in generating a prediction code in response to a portion of a branch history field (BH) in an entry (63) of the branch target buffer (56) corresponding to the instruction address. Disclosed examples of the signals used in selecting the pattern history table (53) include an indication (U/S) of the privilege level (e.g., user-level or supervisor-level) of the instruction. In the event of a task switch, the contents of one or more of the pattern history tables (53) may be stored in the task state segment (90) corresponding to an interrupted task, with the pattern history tables (53) loaded with entries from the task state segment (90) of the new task. In this way, each task may maintain its own branch pattern history-based prediction information when microprocessor (10) is operated in a multitasking environment.
TL;DR: In this article, a processor, apparatus and method for storing segment descriptors of different sizes in a segment descriptor table are disclosed, where the segment descriptor tables are used to provide virtual addresses (e.g. base addresses or offsets) having more the 32 bits.
Abstract: A processor, apparatus and method for storing segment descriptors of different sizes in a segment descriptor table are disclosed. Smaller segment descriptors may be segment descriptors similar to the x86 architecture definition, and larger segment descriptors may be used to provide virtual addresses (e.g. base addresses or offsets) having more the 32 bits. By providing a segment descriptor table that stores different sized segment descriptors, maintaining multiple segment descriptor tables for different operating modes may be avoidable while providing support for segment descriptors having addresses greater than 32 bits. In one embodiment, the larger segment descriptors may be twice the size of the smaller segment descriptors. The segment descriptor table may comprise entries, each capable of storing the smaller segment descriptor, and a larger segment descriptor may occupy two entries of the table. The larger segment descriptor may be a call gate descriptor, a local descriptor table descriptor or a task state segment descriptor.
TL;DR: In this paper, a microprocessor and a system incorporating the same is disclosed, in which branch prediction is effected in response to the type of program in which branching instructions are contained.
Abstract: A microprocessor and a system incorporating the same is disclosed, in which branch prediction is effected in response to the type of program in which branching instructions are contained. A fetch unit (26) includes a branch target buffer (56) and a plurality of pattern history tables (53). Select logic (80) receives signals indicating, for each branching instruction, the type of program containing the instruction, and selects one of the pattern history tables (53) for use in generating a prediction code in response to a portion of a branch history field (BH) in an entry of the branch target buffer (56) corresponding to the instruction address. Disclosed examples of the signals used in selecting the pattern history table (53) include an indication (U/S) of the privilege level (e.g., user-level or supervisor-level) of the instruction. In the event of a task switch, the contents of one or more of the pattern history tables (53) may be stored in the task state segment (90) corresponding to an interrupted task, with the pattern history tables (53) loaded with entries from the task state segment of the new task. In this way, each task may maintain its own branch pattern history-based prediction information when microprocessor is operated in a multitasking environment.
TL;DR: In this article, a processor with a memory protection extension can load a logical address including a segment base, effective limit, and effective address and generate a linear address as a function of the logical address with the effective limit as a mask.
Abstract: Technologies for memory management with memory protection extension include a computing device having a processor with one or more protection extensions. The processor may load a logical address including a segment base, effective limit, and effective address and generate a linear address as a function of the logical address with the effective limit as a mask. The processor may switch to a new task described by a task state segment extension. The task state extension may specify a low-latency segmentation mode. The processor may prohibit access to a descriptor in a local descriptor table with a descriptor privilege level lower than the current privilege level of the processor. The computing device may load a secure enclave using secure enclave support of the processor. The secure enclave may load an unsandbox and a sandboxed application in a user privilege level of the processor. Other embodiments are described and claimed.