
Intel 架构
Farmwang
博采众长,兼收并蓄!
展开
-
Prefixes前缀
1:Prefixes前缀: 最多四个前缀,每个前缀只有1个字节,前缀间先后顺序无关,可以没有任何前缀 — Lock and repeat prefixes:• F0H—LOCK.• F2H—REPNE/REPNZ (used only with string instructions).• F3H—REP (use only with string instructio原创 2016-07-27 22:37:57 · 844 阅读 · 0 评论 -
Length of a Thread Quantum
Length of a Thread QuantumIn Windows, threads run in units of “quantums”. After a thread completes its quantum, Windows may choose to run another thread based on priority or thread states.This quantum...转载 2018-06-07 21:07:09 · 458 阅读 · 0 评论 -
[Intel汇编-NASM]进入保护模式之前的准备
1. 保护模式下的描述符表的概念: 1) 保护模式相对于实模式最大的不同之处就是对软件的行为做出了很多约束,从而使系统的运行更加安全; 2) 在保护模式下段的使用非常严格,需要用各种信息维护段(比如段界限、可读写性、特权级、最下单位等),而这些信息就用一张描述符表来存放; 3) 描述表的概念: i. 表中的每一项都保存一个描述符(也称为段描述符),用转载 2016-09-11 17:28:16 · 1132 阅读 · 0 评论 -
状态控制标志位
二、状态控制标志位状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。1、追踪标志TF(Trap Flag) 当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。 指令系统中没有专门的指令来改变标志转载 2016-08-27 23:08:27 · 8093 阅读 · 0 评论 -
TR and tss
任务寄存器tr保存 16 位的段选择子、32 位基地址、16 位段界限和当前任务的 TSS属性。它引用 GDT 中的 TSS 描述符。基地址指明 TSS 的第一个字节(字节 0)的线性地址,段界限确定 TSS 的字节个数。TR寄存器包含了当前正在CPU运行的进程的TSSD(任务段描述符)选择符。也包含了两个隐藏的非编程域:TSSD的base 和limit域。通过这种方式处理器就能直接对TSS寻址,转载 2016-08-27 23:05:57 · 812 阅读 · 0 评论 -
DPL,RPL,CPL 之间的联系和区别
CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。RPL说明的是进程对段访问的请求权限(Request Privilege Level),是对于段选择子而言的,每个段选择子有自己的RPL,它说明的是进程对段访问的请求权限,有点像函数参数。ARPL指令改目标数据块选择子的RPL为主调程序的转载 2016-08-27 22:59:48 · 1670 阅读 · 1 评论 -
高速缓冲寄存器
实际上,不管是在实模式还是在保护模式下,CPU都会把一个分段的基地址放在一组隐藏的寄存器中,这组隐藏的寄存器,对程序员是不可见的,程序也是无法直接存取的,但却是实际存在的,这组隐藏的寄存器叫做描述符高速缓存寄存器(Descriptor Cache Registers),当段寄存器的值发生变化时,段的基地址、段的边界以及存取属性(存取权限)都会被重新加载到这个段寄存器对应的高速缓存中,为增强性能,C转载 2016-08-27 22:56:11 · 2384 阅读 · 0 评论 -
保护模式概述
保护模式概述以下内容并不成熟,希望抛砖引玉,大家讨论一下吧:) 称其为概述是因为我希望能给出一个关于保护模式的概貌性的描述,而不是深入每个细节,因为篇幅不允许也没有必要,细节还是应该看相关的文档.第一:实模式下程序的运行回顾. 程序运行的实质是什么?其实很简单,就是指令的执行,显然CPU是指令得以执行的硬件保障,那么CPU如何知道指令在什么地方呢?对了,转载 2016-08-27 22:43:00 · 516 阅读 · 0 评论 -
内存管理相关之分段分页机制
1. 分段,分页机制 不分页: 线性地址 == 物理地址 分页: 线性地址 != 物理地址 线性地址空间也就是所有可能线性地址的范围. 操作系统会在启动的时候测量到实际的内存有多少, 什么范围. 如果支持分页, 线性地址是多少无所谓, 只要最后映射到的物理地址在16M范围内就可以--------虚拟地址是操作系统提供的一种地转载 2016-08-27 22:36:42 · 1541 阅读 · 0 评论 -
内核管理之CPU基本组件
要想弄懂Linux内核的工作原理,就必须懂点基本的硬件知识。这里我们主要介绍Intel 80x86系列CPU保护模式下最核心的部件中几个寄存器的作用,这些寄存器在Linux内核运行时起着至关重要的作用。至于其他那些各式各样的硬件设备,我们在讲解设备驱动时会针对具体的驱动程序来介绍的。首先,大家先看看CPU的主要架构: EU(通用寄存器、运算器和控制器)执行部件:完成指令所要求的功能。S转载 2016-08-27 22:25:52 · 2145 阅读 · 0 评论 -
段选择符 段寄存器
保护模式就是对程序的运行加以保护,所以说保护模式较实模式的增强的最主要体现还不是寻址能力而是对多任务的支持,所提到的保护就是对不同任务间和同一任务内的程序加以保护,使它们的运行不受对方“有意”或“无意”影响,但同时也要对两个任务都要用到的部分代码实现共享。另外一个重要的增强就是对虚拟存储器的支持,从一定意义上说可以使程序设计人员不必考虑物理内存的大小。 有了新的模式,当然要有大量的新增寄转载 2016-08-27 15:57:48 · 14832 阅读 · 3 评论 -
Bit and Byte Order
In illustrations of data structures in memory, smaller addresses appear toward the bottom of thefigure; addresses increase toward the top. Bit positions are numbered from right to left. Thenumeric翻译 2016-07-17 17:23:27 · 379 阅读 · 0 评论 -
未命中缓存的测试结果
最后来看一下大师们总结的未命中缓存的测试结果从CPU到 大约需要的 CPU 周期 大约需要的时间 主存 约60-80纳秒 QPI 总线传输 (between sockets, not drawn) 约20ns L3 cache 约40-45 cycles 约15ns L2 cache 约10 cycles, 约...原创 2018-09-28 20:19:34 · 499 阅读 · 0 评论