Intel_X86_CPU系列的寄存器
X32,X64,X86是什么意思
x86是对基于intel处理器的系统的标准缩写。X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指令集合,由于早期intel的CPU编号都是如8086,80286来编号,由于这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的指令集合如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家族.这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。 64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。 要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。目前,在64位处理器方面,Intel和AMD两大处理器厂商都发布了多个系列多种规格的64位处理器;而在操作系统和应用软件方面,目前的情况不容乐观。因为真正适合于个人使用的64位操作系统现在就只有Windows XP X64,而Windows XP X64本身也只是一个过渡性质的64位操作系统,在Windows Vista发布以后就将被淘汰,而且Windows XP X64本身也不太完善,易用性不高,一个明显的例子就是各种硬件设备的驱动程序很不完善,而且现在64位的应用软件还基本上没有,确实硬件厂商和软件厂商也不愿意去为一个过渡性质的操作系统编写驱动程序和应用软件。所以要想实现真正的64位计算,恐怕还得等到Windows Vista普及一段时间之后才行。 目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。 AMD64位技术 AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容
CPU架构讲解 X86、ARM、RISC、MIPS
CPU架构讲解X86、ARM、RISC、MIPS
一、当前CPU的主流架构:
1.X86架构
采用CISC指令集(复杂指令集计算机),程序的各条指令是按顺序串行执行的,每
条指令中的各个操作也是按顺序串行执行的。
2.ARM架构
是一个32位的精简指令集(RISC)架构。
3.RISC-V架构
是基于精简指令集计算(RISC)原理建立的开放指令集架构。
4.MIPS架构
是一种采取精简指令集(RISC)的处理器架构,可支持高级语言的优化执行。
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,是区分不同类型
CPU的重要标示。
二、目前市面上的CPU分类主要分有两大阵营:
1.intel、AMD为首的复杂指令集CPU;
2.IBM、ARM为首的精简指令集CPU。
两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM的CPU是PowerPC架构,ARM是ARM架构。
三、四大主流CPU架构详解(X86、ARM、RISC、MIPS)
1.X86架构
X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编
号缩写,也标识一套通用的计算机指令集合。1978年6月8日,Intel 发布了新款
16位微处理器8086,也同时开创了一个新时代:X86架构诞生了。
X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM 1981年推出
的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。
采用CISC(Complex Instruction Set Computer,复杂指令集计算机)架构。与采用
x86的控制寄存器CR0,CR1,CR2,CR3
x86的控制寄存器CR0,CR1,CR2,CR3
状态和控制寄存器组除了EFLAGS、EIP ,还有四个32位的控制寄存器,它们是CR0,CR1,CR2和CR3。
这⼏个寄存器中保存全局性和任务⽆关的机器状态。
CR0中包含了6个预定义标志,0位是保护允许位PE(Protedted Enable),⽤于启动保护模式,如果PE位置1,则保护模式启动,如果
PE=0,则在实模式下运⾏。1位是监控协处理位MP(Moniter coprocessor),它与第3位⼀起决定:当TS=1时操作码WAIT是否产⽣⼀个“协处理器不能使⽤”的出错信号。第3位是任务转换位(Task Switch),当⼀个任务转换完成之后,⾃动将它置1。随着TS=1,就不能使⽤协处理器。CR0的第2位是模拟协处理器位 EM (Emulate coprocessor),如果EM=1,则不能使⽤协处理器,如果EM=0,则允许使⽤协处理器。第4位是微处理器的扩展类型位ET(Processor Extension Type),其内保存着处理器扩展类型的信息,如果ET=0,则标识系统使⽤的是287协处理器,如果 ET=1,则表⽰系统使⽤的是387浮点协处理器。CR0的第31位是分页允许位(Paging Enable),它表⽰芯⽚上的分页部件是否允许⼯作。
CR1是未定义的控制寄存器,供将来的处理器使⽤。
CR2是页故障线性地址寄存器,保存最后⼀次出现页故障的全32位线性地址。
CR3是页⽬录基址寄存器,保存页⽬录表的物理地址,页⽬录表总是放在以4K字节为单位的存储器边界上,因此,它的地址的低12位总为0,不起作⽤,即使写上内容,也不会被理会。
【X86】---关于Intel芯片架构的发展史
【X86】---关于Intel芯⽚架构的发展史
---恢复内容开始---
当你真正的深⼊去⾏⾛在底层的道路上,你就会接触⼤量的⼀些貌似懂的概念性名词,⽐如Intel公司的x86架构,x64等等,⼜或者是当年的386,486等等,唉,有的时候真的是很⿇烦啊,经常看到,但是不指导,甚⾄曾经有过⼀个疑问,为何64bit计算酒称之为x64,但是32bit的就叫做x86,为何不叫x32呢(虽然我指导仅仅就是⼀个名字⽽已,但是我仍然想知道其中原因),看的多了,因此今天得地整理了以下Intel公司发展史,也算是学习了。
本⽂节选⾃⽹络,由作者编辑整理⽽成!
谈到处理器,就应该知道著名的摩尔定律(到⽬前为⽌,还是对的)。
摩尔定律:
1965年⼽登·摩尔在《电⼦学》杂志(Electronics Magazine)第114页发表了影响科技业⾄今的摩尔定律:
1、集成电路芯⽚上所集成的电路的数⽬,每隔18个⽉就翻⼀番。
2、微处理器的性能每隔18个⽉提⾼⼀倍,⽽价格下降⼆分之⼀。
3、⽤⼀个美元所能买到的电脑性能,每隔18个⽉翻两番。
钟摆理论:
在奇数年,英特尔将会推出新的⼯艺;⽽在偶数年,英特尔则会推出新的架构。简单的说,就是奇数⼯艺年和偶数架构年的概念。英特尔的钟摆策略,能够体现英特尔技术变化⽅向。当有英特尔钟摆往左摆的时候,tick这个策略会更新⼯艺,往右摆的时候,tock会更新处理器微架构。举个例⼦,05年说tick,英特尔更新从90纳⽶⾛向65纳⽶;06年是tock,⽤英特尔推出酷睿架构,07年⾛向45纳⽶。值得注意的是,⾸先它不会在⼀年内两个技术同时出现。每⼀年都可以在上个技术上再提升⼀个规模。钟摆策略发展趋势⼀般是今年架构、明年⼯艺,是让⼤家循序渐进,⽽且实⾏钟摆策略也是带着整个⾏业按着这个钟摆形成⼀种共同的结构往前⾛。
x86和arm的区别
X86与ARM的区别
X86由英特尔公司开发,并且统治了几十年。X86反应快,在PC 应用广泛。
X86与ARM最大不同在于指令集上,X86硬件有优势.但是带来的功耗大。ARM构架指令,执行起来快功耗也低.。现在智能手机和平板很火,平板电脑要求便携和续航能力.ARM构架具有低功耗,使之有了市场.那么为什么没有得到普及?原因主要有2点:在执行大的指令ARM很困难.当下软件都是基于X86构架下开发的,ARM是不能兼容的.软件必须改写代码才能用在ARM构架。ARM的资源少也是一个重要原因
AMD公司会大力度开发ARM构架.但是完全放弃X86还为时过早,毕竟在PC领域还是x86的天下。
WIN8系统支持ARM与X86两种构架
一、背景知识:
指令的强弱是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分。相应的,微处理随着微指令的复杂度也可分为CISC及RISC这两类。CISC是一种为了便于编程和提高记忆体访问效率的晶片设计体系。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系──包括Intel的80x86
和Motorola的68K系列等。即通常所说的X86架构就是属于CISC 体系的。RISC是为了提高处理器运行的速度而设计的晶片体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在晶片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU。像HOLTEK MCU 系列等。ARM (Advanced RISC Machines ),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。而ARM体系结构目前被公认为是业界领先的32 位嵌入式RISC 微处理器结构。所有ARM处理器共享这一体系结构。因此我们可以从其所属体系比较入手,来进行X86指令集与ARM 指令集的比较。
i386的寄存器的简介
1、i386的寄存器
1.1 通用寄存器
i386有8个通用寄存器
EAX:一般用作累加器
EBX:一般用作基址寄存器(Base)
ECX:一般用来记数
EDX:一般用来存放数据
ESP:一般用作堆栈指针(STACK POINTER)
EBP:一般用作基址指针(BASE POINTER)
ESI:一般用作源变址(SOURCE INDEX)
EDI:一般用作目标变址(DESTINATION INDEX)
2、段寄存器
4个16位段寄存器:CS、DS、SS、ES,分别用作存放可执行代码的代码段、数据段、堆栈段和其他段的基地址。
3、状态和控制寄存器
由标志寄存器(EFLAGS)、指令指针(EIP)和4个控制寄存器组成。
3.1EIP中存放下一条将要执行指令的偏移量(OFFSET),这个偏移量加上当前代码段的基地址,
就形成下一条指令的地址。
3.2EFLAGS存放有关处理器的控制标志。
第0位:进位标志
第2位:奇偶标志
第4位:辅助进位
第6位:零标志
第7位:符号标志
第8位:自陷标志
第9位:允许中断标志
第10位:定向标志
第11位:溢出标志
第12、13位(2位):I/O特权
第14位:嵌套方式
第16位:恢复方式
第17位:虚拟方式
寄存器中的第1、3、5、15、8~31位没有定义
3.3 4个控制寄存器是CR0、CR1、CR2、CR3
CR0的第0位:保护允许位PE(PROTECT ENABLE),第1位:监控协处理位MP(MONITER COPRPCESSOR),第2位:模拟协处理位EM(EMULATE COPROCESSOR),第3位:任务转换位(TASK SWITCH),第4位:微处理器的扩展类型位ET(PROCESSOR EXTENSION TYPE),第31位:分页允许位PG(PAGING ENABLE)
单片机或者cpu是多少位的,指的是地址总线还是数据总线(比如32位和64位的cpu)
单⽚机或者cpu是多少位的,指的是地址总线还是数据总线(⽐
如32位和64位的cpu)
⼀般来说,CPU的位宽指的是数据总线的宽度。
这个你可以这么推想:
CPU的地址总线宽度决定了寻址范围,数据总线决定了单次能取出的数据的长度。
决定CPU的性能的话,数据总线和地址总线谁更能决定这个性能呢?
当然是数据总线嘛,你64位数据总线⼀次就能取出64bit的数据,8位数据总线的CPU⼀次只能取出8bit的数据,在相同频率的情况下,8位数据总线的CPU就得连续取8次数据,数据量才能和64位数据总线⼀次取出的数据量相同,是不是性能差8倍呢。这⾥还不关⼼取到数据后处理数据的性能问题,但就说取数据的性能问题,就差8倍。
地址总线宽度不是直接影响到性能的参数。给个例⼦:
假如说有个36位地址总线宽度、32位数据总线宽度的A型号的CPU,
假如还有个32位地址总线宽度、32位数据总线宽度的B型号的CPU。
你觉得这两个型号的CPU性能上能差到哪吗?只不过B型号的CPU地址超过了32位可能就不⾏能,也可能需要⽤其他的⽅式组合出更长位宽的地址来,总之不如A型号直接、⾼效。但是,只要不是这样的情况,A和B的其他因素相同,你觉得A和B两个CPU的性能差到哪吗。
其实,intel的x86CPU就刚好有这样的情况,36位地址总线宽度、32位数据总线宽度,寄存器是32位的,你会想,那寄存器放不下36位的地址,那怎么办呢,其实它是⽤某种⽅法组合出来的36位地址,段地址32位向⾼位偏移4位后加上偏移地址,就出来36位的地址。
⼀般,寄存器的宽度和数据总线宽度是⼀致的,地址总线可以通过某种⽅式组合出来,所以可以不⼀致。毕竟寄存器绝⼤部分时间是要存储和处理数据的,不是吗,地址作为数据使⽤的情况在整个程序运⾏中占的时间是很少数的。
X86CPU的寄存器和主存储器
4)一个存储单元中存放的信息称为该存 储单元的内容。(0004H)=78H
5)一个字数据占用两个相邻的存储单元。 采用“低对低、高对高”的原则。低字 节所在存储单元的地址作为该字数据的 单元地址。双字、4字单元的存放方法与 此类似。
00000H
主存
10000H
12H
10001H
34H
10002H
• SP:用于存放当前堆栈段中栈顶单 元的偏移地址;
• BP:用于存放堆栈段中某一存储单 元的偏移地址。
• 80386及后继机型:
32位的通用寄存器:EAX、EBX、ECX、EDX、ESP、 EBP、ESI、EDI;
• 可以用来存放不同宽度的数据; • 所有32位寄存器既可以存放数据,也可以存
放地址; • 每个寄存器的专用特性与8086/8088的对应寄
取指令后,自动修改IP的值,使IP内容 为下一条指令起始字节所在单元的偏移 量。
返回本节
指令队列
• 按先进先出的原则,存放从主存中读取 的指令。当EU执行指令时,从指令队 列中取最先进入队列的指令给以执行。
• 8086:6个字节的指令队列(空出2个字 节且无其它总线请求)
• 8088:4个字节的指令队列(空出1个字 节且无其它总线请求)
(3)浮点寄存器组
•一般应用程序中只能访问(1)和(3),
(2)只能由系统程序访问,并且它的特权
x86各个寄存器的二进制编码
x86是一种常见的CPU架构,它广泛应用于个人计算机和服务器领域。在x86架构中,寄存器扮演着重要的角色,它们用于存储指令、数据
和位置区域。x86架构中有多个寄存器,每个寄存器都有自己的特定
作用和用途。在本文中,将详细介绍x86架构中各个寄存器的二进制
编码,以帮助读者更好地理解这一CPU架构的内部工作原理。
一、通用寄存器
x86架构中有6个通用寄存器,它们分别是EAX、EBX、ECX、EDX、ESI和EDI。这些寄存器在x86架构中具有广泛的用途,它们可以存储数据、指针和计算结果等。下面是这些通用寄存器的二进制编码示例:
1. EAX寄存器
EAX寄存器是累加器,它用于存储算术和逻辑运算的操作数和结果。
二进制编码: 000
2. EBX寄存器
EBX寄存器是基址寄存器,它用于存储数据的位置区域。
二进制编码: 011
3. ECX寄存器
ECX寄存器是计数寄存器,它用于循环计数和位操作。
二进制编码: 001
4. EDX寄存器
EDX寄存器是数据寄存器,它用于存储整数乘法和除法的结果。
二进制编码: 010
5. ESI寄存器
ESI寄存器是源索引寄存器,它用于存储源操作数的位置区域。
二进制编码: 110
6. EDI寄存器
EDI寄存器是目的索引寄存器,它用于存储目的操作数的位置区域。二进制编码: 111
二、段寄存器
x86架构中有4个段寄存器,它们分别是CS、DS、SS和ES。这些段寄存器用于存储代码、数据和堆栈等不同类型的内存段位置区域。下面是这些段寄存器的二进制编码示例:
1. CS寄存器
CS寄存器是代码段寄存器,它用于存储代码段的起始位置区域。
第4章 INTEL80X86系列微处理器习题参考答案
第4章Intel80X86系列微处理器习题解答
4.1 8086/8088内部寄存器有哪些?哪些属于通用寄存器?哪些用于存放段地址?标志寄存器的含义是什么?
答:
8086/8088内部有14个16位的寄存器。8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。4个16位的段寄存器CS、DS、SS、ES,用于存放段地址。标志寄存器FLAGS用于存放指令执行结果的特征和CPU 工作方式,其内容通常称为处理器状态字PSW。
4.2 对于8086/8088CPU,确定以下运算的结果与标志位。
(1)5439H+456AH (2)2345H+5219H (3)54E3H-27A0H
(4)3881H+3597H (5)5432H-6543H (6)9876H+1234H
略。
4.3 8086/8088为什么要对存储器采用分段管理?一个段最多包含多少存储单元?
答:
8086/8088内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大只能达64KB。为了实现对1MB单元的寻址,8086/8088系统采用了存储器分段技术。一个段最多包含64K 个存储单元。
4.4 8086/8088CPU内部共有多少个段?分别称为什么段?段地址存放在哪些寄存器中?
答:
8086/8088 CPU内部共有4个段。分别称为代码段、数据段、堆栈段和附加段。段地址存放在4个16位的段寄存器,CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器、ES附加段寄存器中。
4.5 简述物理地址、逻辑地址、段基地址和偏移量的含义及其相互关系。
Intel80386CPU
Intel80386CPU
⼀、80386 概述
80386处理器被⼴泛应⽤在1980年代中期到1990年代中期的IBM PC相容机中。这些PC机称为「80386电脑」或「386电脑」,有时也简称「80386」或「386」。80386的⼴泛应⽤,将PC机从16位时代带⼊了32位时代。80386的强⼤运算能⼒也使PC机的应⽤领域得到巨⼤扩展,商业办公、科学计算、⼯程设计、多媒体处理等应⽤得到迅速发展。它的数据总线和地址总线都是32位,直接寻址的内存空间4GB,虚拟地址空间为64TB。芯⽚上集成了27.5万个晶体管,主频16-33MHz。它是X86第⼀个真正的32位CPU,它能提供真正的多任务处理和建⽴虚拟系统的能⼒。
⼆、80386的引脚及功能
80386 DX有132根引脚,采⽤PGA(Pin Grid Array,引脚⽹格阵列)封装,采⽤这种封装⼯艺单根引脚所占⽤的⾯积较双列直插时⼩,因此引脚数⽬可以多⼀些,不必再采⽤引脚复⽤技术。因此,在80386中数据线和地址线是分开设置的,控制信号和状态信号也不再复⽤引脚。其中34 条地址线(A31~A2、BE3~BE0),32 条数据线(D31~D0),3 条中断线,1条时钟线,13 条控制线,20 条电源线VCC,21条地线VSS,还有8 条为空。
与8086/8088 相⽐,需要说明以下⼏点:
1)时钟( CLK2): 80386 的基本定时信号由CLK2 提供。CLK2 的频率是80386 内部时钟信号频率的两倍,输⼊该信号与82384 时钟信号同步,经80386 内部2 分频之后得到80386 的⼯作基准频率信号。
英特尔--x86架构微处理器光辉编年史
英特尔--x86架构微处理器光辉编年史
2003-08-01 17:34
相关链接“AMD CPU 编年史(多图)”“CPU来这里集合(图)”
CPU,Central processing unit.是现代计算机的核心部件,又称为“微处理器(Microprocessor)”。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。今年是intel x86架构25周年,而x86架构的CPU对我们大多数人的工作、生活影响颇为深远,太平洋科技新闻组将详细介绍x86 CPU的发展史,希望能让各位读者在了解CPU的历史进程的同时,能更好的理解信息科学发展的内在规律,从而更好的买好电脑、用好电脑。
在开始intel x86神奇时光之旅前面,我们需要弄清楚历史上几件很重要的事件,计算机的始祖到底是谁?是ENIAC吗?
第一部电子计算机ENIAC
教科书里面的答案是ENIAC。这个答案不算正确,但也没完全错。ENIAC是美国宾州大学研制的第一台电子计算机,也是世界上第一台电子计算机。准确一点说:ENIAC是世界上第一台通用型计算机。ENIAC是Electronic Numerical Integrator And Computer的缩写,它于1946年2月15日诞生;当时的资助者是美国军方,目的是计算弹道的各种非常复杂的
非线性方程组。众所周知,这些方程组是没有办法求出准确解的,因此只能用数值方法近似地进行计算,因此研究一种快捷准确计算的办法很有必要。
四十年代的编程是这样的
美国军方花费了48万美元经费在ENIAC项目上,这在当时可是一笔巨款,要不是为了二次世界大战,谁能舍得出这么大的钱?事实上ENIAC也是美国陆军军械部和宾州大学莫尔学院联合发布的,而非书本上所提的只有宾州大学。
CPU基本组成及关键技术介绍
CPU基本组成及关键技术
介绍
CPU 按产品市场可分为 x86 系列和非 x86 系列。x86 系列 CPU 生产厂商只有 Intel、AMD、VIA 三家公司,x86 系列 CPU 在操作系统一级相互兼容,产品覆盖了 90%以上的桌面计算机市场。非 x86 系列 CPU 生产厂商有 IBM、Sun、HP、ARM、MIPS、日立、三星、现代、中国科学院计算研究所等企业和单位。非 x86 系列 CPU 主要用于大型服务器和嵌入式系统,这些产品大多互不兼容,在桌面计算机市场中占有份额极小。
Intel 与 AMD 公司的 CPU 虽然在性能和软件兼容性方面不相
上下,但配套的硬件平台并不能相互完全兼容。例如,它们需要不同的主板进行产品配套。CPU制造工艺的逐步提升和硬件纠错是工艺步进提升的原因。通常来说,新步进的CPU超频能力更强,发热也会略低。如果两颗 CPU 型号相同,但工艺步进不同,从 CPU 超频角度看,CPU 升级步进工艺的同时,一般也会提高 CPU 的超频能力。
大部分 CPU 采用 LGA 或 FC-PGA 封装形式。FC-PGA 封装是将CPU 核心封装在基板上,这样可以缩短连线,并有利于散热。LGA 采用无针脚触点封装形式。CPU 由半导体硅芯片、基板、针脚或无针脚触点、导热材料、金属外壳等部件组成。
(1)外壳(IHS)。CPU 金属外壳采用镀镍铜板,它的作用是保护 CPU 核心不受外力的损坏。外壳表面非常平整光滑,这有利于与CPU 散热片的良好接触。
(2)导热材料(TIM)。在金属外壳内部与复合陶瓷之间,填充了一层导热材料,导热材料一般采用导热膏,它具有良好的绝缘性和极佳的导热性能,它的功能是将 CPU 内核发出的热量传导到金属外壳上。
IntelX86CPU系列的寄存器
这是一个数据结构, 一个任务的所有信 息存储在这各字段 内.这些字段分为 两类:第一: 处理器 只读其中信息的静 态字段集;第二:每 次任务切换时,处 理器将会更新的动 态字段集.
FiguInrteelX186:CP3U2系-B列i的t寄T存as器k[1-]State Segment (TSS)
该位
EM;该位表明是否需要仿真协处理器的功能
MP:协处理器监视标志位
PE: 保护模式使能,当设置有效位,CPU工作在保护模式.反之,实模式. IntelX86CPU系列的寄存器[1]
寄存器分类介绍(6)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
CR3: PCD:控制当前页目录表的缓冲,当设置清空时,缓冲.置位时,缓冲无效.与 CR0中的CD或PG一同使用
寄存器分类介绍(19)
----内存管理寄存器 TSS---任务状态段
我们在上图中看到,TSS是一种特殊的数据结构.提 供一种有效的、受保护的多任务机制.
TSS可以出落在线性空间的任何位置,和其它段一样, 它是使用段描述符来定义的.访问TSS描述符会导致 任务间的切换.我们可以将描述符的DPL字段设置为 0(最高优先级).只允许可信任的软件执行任务的切 换.TSS的描述符只能放在全局描述符表GDT中.
15
0
chapter2 Intel 80x86 系列微处理器简介
第2章 IA-32结构微处理器
奔腾 II和奔腾 III
Intel Pentium II 处理器把 MMX 技术加至 P6 系列处理器,并具 有新的包装和若干硬件增强。第一级数据和指令 caches 每个扩展至 16 K 字节,支持二级 cache 的尺寸为 256 K 字节、512 K 字节和1 M 字节。
9 9
第2章 IA-32结构微处理器
Intel486 处理器把 Intel386 处理器的指令译码和执行单元扩展为五个 流水线段,增加了更多的并行执行能力,其中每个段(当需要时)与其 它的并行操作最多可在不同段上同时执行五条指令。每个段以能在一个 时钟周期内执行一条指令的方式工作,所以,Intel486 处理器能在每 个时钟周期执行一条指令。 微机的流水线操作技术,实质上是多条指令同时执行各自的操作,在微 机的流水线操作技术中,时间也是一项非常重要的“资源”。为了充分 利用时间这一“资源”,而使多条指令“重叠”执行,有效地消除了在 非流水线操作情况下,一条指令在按部就班地执行各操作步骤时,其他 指令只能眼睁睁地看着、盼着执行而白白浪费时间“资源”的现象。
分支转移预测技术(branch prediction),是Pentium CPU动态执 行的一项技术,在ID(Instruction Decode)段进行预测,由于这项技 术的出现,有效地减少了由于程序中出现了转移而导致的流水线操作的 效率损失,从而节省了Pentium的执行时间,提高了微机的整体性能 。
x86、i386、i486、i586和i686等名词的解释
关于x86、i386、i486、i586和i686等名词的解释
一、x86与i386、i486、i586、i686等
x86或80x86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称。
该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如Pentium。现时Intel把x86-32称为IA-32,全名为Intel Architecture, 32-bit。不过由于x86包括16位的处理器,这样的命名也出现麻烦。
x86架构于1978年]推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。
其它公司也有制造x86架构的处理器,计有Cyrix(现为VIA 所收购)、NEC集团、IBM、IDT以及Transmeta。Intel以外最成功的制造商为AMD,其Athlon系列处理器的市场仅次于Pentium。
8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64(有时也被称作x86-64,x64或EM64T),推出了 Opteron处理器家族,开创了x86的64位时代。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
寄存器分类介绍(15)
----内存管理寄存器
全局段描述符表寄存器(GDTR)
BASE — Segment base address(段基址) DPL — Descriptor privilege level(段描述符特权级) LIMIT — Segment Limit (段限) P — Segment present (段存在位)
寄存器分类介绍(16)
-------内存管理寄存器
任务管理
系统中,一个任务由两部分组成:任务的运行空间和任务状态段 (TSS).任务的运行空间包括一个代码段、一个堆栈段、若干数据 段.TSS指明了任务的运行空间和任务的状态.在多任务系统中,TSS 还提供了连接任务的机制.
Figure . Structure of a Task
屏蔽掉INTR中断;对于陷阱门,在转移过程中保持IF位不变,即如果 IF位原来是1,那么通过陷阱门转移到处理程序之后仍允许INTR中 断。).
寄存器分类介绍(12) ---中断和异常管理寄存器
IDT DESCRIPTORS
任务门描述符 中断们描述符 陷阱门描述符
寄存器分类介绍(13) ---内存管理寄存器
寄存器分类介绍(20)
---内存管理寄存器
任务寄存器
作用:支持多任务运行 任务描述符
通过指向TSS来确定当前执行的任务.有16位可见部分和 16位不可见部分.可见部分的选择符用于在GDT表中选择 一个TSS描述符.不可见部分来存放描述符中的基地址和 段限长值. 提供对TSS间接、受保护引用的任务门描述符.这种描述 符是在一般段描述符格式的基地址位15:0字段中存放的是 一个TSS描述符的选择符.
DR7: L0—L3:局部断点使能标志位 G0--G3: 全局断点使能标志位 LE AND GE:置位,表明处理器可以监测导致数据断点的指令.推荐 置位为1. GD:通用监测使能标志位.表明是否开启调试寄存器保护. LEN0 through LEN3 : 用来表明相应断点地址寄存器内存位置的大 小. R/W0 through R/W3: 相应断点的状态
在操作系统上用到的寄存器
举一些例子:
从实模式到保护模式的转换(CR0) 二级页式内存管理(CR3、CR4) 中断处理(IDT、IDT descriptor) 任务调度(TSS)
寄存器分类介绍(17)
------内存管理寄存器
TSS---任务状态段
Task State 段寄存器:指明了当前任务运行空间 (CS, DS, SS, ES, FS, and GS). 通用寄存器的状态 EFLAGS寄存器的状态、EIP寄存器的状态、CR3寄存器的状 态、任务寄存器的状态、LDTR寄存器的状态. I/O映射基地址和I/O地址 、指向特权0, 1, and 2的堆栈的堆栈指 针、指向先前的运行任务.
中断门和陷阱门都是间接的指向一个过程,该过程将在当 前执行任务上下文中执行.门描述符中的段选择符指向 GDT或当前LDT中的一个可执行段的描述符.门描述符的 偏移字段值指向中断或者异常处理过程的开始处. 中断的执行或者异常处理过程的方式与CALL指令调用过 程相似.只是在堆栈的使用上略有不同(call调用使用的是 CS与IP,还有返回地址;中断需要保存的上下文要多一 些). 中断门和陷阱门的区别在于对中断允许标志位IF的影响 (对于中断门,在转移过程中把IF置为0,使得在处理程序执行期间
CR0: 控制系统的工作模式和处理器的状态 CR1: 保留 CR2 :保留出错的线性地址 CR3:页目录基址的物理地址和PCD和PWT标志位(和CACHE有关) CR4:一些结构的扩展.表明对于特定的处理器和操作系统执行支持.
由实模式转换到保护模式、二级页面映射机制的建立、中断处理等等,会用到这 些寄存器,.
在开发底层系统时,会用到这些寄存器.
寄存器分类介绍(8)
调试寄存器
设置标志位 集中在DR7
寄存器分类介绍(9)
调试寄存器 DR0-DR3:保留32位断点的线性地址. DR6
B0—B3:断点状态的监测 BD:调试寄存器访问监测.置位,表明在指令流中,下一条指令将访问其中 的一个调试寄存器 BS:单步执行标志位 BT:任务转换标志位
在Intel X86 CPU系列的寻址模式一讲中,实模式下的段寄存器在保 护模式下不是传统意义上的代表地址的概念,而变成了指向段描述 符的一个索引.因此我们看到的六个寄存器都变成了segment selector.
Figure1: segment selector
Figure2: segment registers
置标志位的有效位 看你具体要做什么, 对应的位置置有效的 标志位
Figure : System Flags in the EFLAGS Register
寄存器分类介绍(3)
控制寄存器((CR0, CR1, CR2, CR3, and CR4)
作用:控制寄存器决定处理器的操作模式和当前执行任务的一些特 征 种类:
数据寄存器
堆栈指针
指针寄存器
通用寄存器
基址指针 源地址
变址寄存器 如果前面带由大写字母E, 代表32位寄存器
目的地址
寄存器分类介绍(2)
标志寄存器(EFLAGS register) ----only one
作用: 控制任务状态和模式切换、中断处理、指令追踪和访问权限 控制.寄存器中的标志位需要特权指令代码才可以修改(特权指令:运 行在内核态下的代码)
寄存器分类介绍(10) ---中断和异常管理寄存器
中断描述符表(IDT)
中断描述符和每一个中断和异常向量的门描述符有关.而门描述符 就是每一个中断或异常处理程序的入口地址.
Figure : Relationship of the IDTR and IDT
寄存器分类介绍(11)
---中断和异常管理寄存器
掌握系统软件设计
汇编嵌入在C语言中的编写 Boot loader的设计(BSP)
理解Intel CPU的发展趋势 深刻理解平台的体系结构 编写更高质量的代码 编译器底层的优化
32位CPU系统级寄存器和数据结构(1)
1 3 4
2
2
3
大家在这张图中,注意寄 存器类别之间的关系.
32位CPU系统级寄存器和数据结构(2)
寄存器分类介绍(4)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
在这些寄存器中, 设置标志位的主要 集中在CR0与CR4.
寄存器分类介绍(5)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
CR0 PG:分页有效时,置位为1,清空时为0.与PE一同使用.该指令表明是否 使用页表将线性地址转换成物理地址 CD: cache 缺失设置位 NW:直写无效(直写:高速缓存中的数据始终保持与主存储器中数据匹配 ) AM: 对齐功能屏蔽(与EFLAGS寄存器中 AC标志位一同使用) WP:写保护 NE: 数字错误标志位(与浮点协处理器共同使用) ET: 扩展类型.设置有效位时,支持 ntel 387 DX 数学协处理器指令. TS: 每当任务切换时就设置该位,并且在解释协处理器指令之前测试 该位 EM;该位表明是否需要仿真协处理器的功能 MP:协处理器监视标志位 PE: 保护模式使能,当设置有效位,CPU工作在保护模式.反之,实模式.
15 0 31 0
逻辑地址
选择符
描述符表 段描述符 31 基地址
偏移量
+
22 21 12 11 页表项 页表 页内偏移值 页框 0
线性地址
页目录 页目录表
页目录项 CR3
页表项
物理地址
逻辑地址 线性地址物理地址转换图
寄存器分类介绍(1) -------通用寄存器
AX BX CX DX SP BP SI DI
寄存器分类介绍(6)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
CR3:
PCD:控制当前页目录表的缓冲,当设置清空时,缓冲.置位时,缓冲无效.与 CR0中的CD或PG一同使用
PWT:控制cache采取直写还是回写的策略.当设置清空时,回写有效.当置位时,直写有 效. VME:虚地址模式.当清空时,无效. PVI:保护模式虚中断,当清空时,无效 TSD:时间戳允许标志位.当清空时,允许RDTSC指令执行在任务特权级上.当置位时, 只允许工作在特权级0. DE:调试扩展.置位,表明DR4与DR5将产生没有定义的异常 PSE:当置位,使用4M的页面;清空,使用4K的页面 PAE:置位,使用36物理内存的分页机制.清空时,使用32位分页机制 MCE:置位,使用机器检查异常机制. PGE:置位,启动全局页面.当写CR3时,也不会被替换. PCE:置位,表明使RDPMC指令工作在任何保护级别.
系统软件开发指南系列
---Intel X86 CPU系列的寄存器
主要内容
学习寄存器知识的意义 32位CPU系统寄存器和数据结构 寄存器分类介绍
通用寄存器 标志寄存器 控制寄存器 调试寄存器 中断和异常管理寄存器 内存管理寄存器
在操作系统上用到的寄存器
学习寄存器知识的意义
GDTR:全局段描述符表寄存器 LDTR: 局部段描述符表寄存器 IDTR: 中断描述符表寄存器,指向中断向量表(前面已讲) Task register: 任务寄存器,指向处理器当前所需当前任务 的信息.
寄存器分类介绍(14)
-------内存管理寄存器
全局段描述符表寄存器(GDTR)
CR4:
ቤተ መጻሕፍቲ ባይዱ
OSFXSR:置位.表明操作系统支持FXSAVE and FXRSTOR指令 OSXMMEXCPT:置位.表明操作系统支持不可屏蔽的SIMD浮点异常.
寄存器分类介绍(7)
调试寄存器
作用:调试寄存器主要作用是调试应用代码、系统代码、 开发多任务操作系统.来监视代码的运行和处理器的性 能. DR0---DR3:调试地址寄存器 DR4—DR5:保留.还没有定义 DR6: 调试状态寄存器 DR7: 调试控制寄存器
这是一个数据结构, 一个任务的所有信 息存储在这各字段 内.这些字段分为 两类:第一: 处理器 只读其中信息的静 态字段集;第二:每 次任务切换时,处 理器将会更新的动 态字段集.
Figure 1: 32-Bit Task-State Segment (TSS)
寄存器分类介绍(19)
----内存管理寄存器
TSS---任务状态段
我们在上图中看到,TSS是一种特殊的数据结构.提 供一种有效的、受保护的多任务机制. TSS可以出落在线性空间的任何位置,和其它段一样, 它是使用段描述符来定义的.访问TSS描述符会导致 任务间的切换.我们可以将描述符的DPL字段设置为 0(最高优先级).只允许可信任的软件执行任务的切 换.TSS的描述符只能放在全局描述符表GDT中.