x86架构-预备知识

阅读数:90 评论数:0

跳转到新版页面

分类

硬件/嵌入式

正文

1、位和字节的顺序

Intel 64和IA-32处理器是小端模式(最低有效字节存储在低地址位置)。

2、SIMD指令(single-instruction multiple-data)

单指令多数据,主要由6个扩展实现:

(1)MMX 技术

(2)SSE扩展

(3)SSE2扩展

(4)SSE3扩展

(5)支持流SIMD扩展3

(6)SSE4

每个扩展都包括一组指令。SIMD的整数操作可以使用64位的MMX或128位的XMM寄存器,SIMD浮点操作使用128位的XMM寄存器。

3、Intel的超线程技术

主要用来提高IA-32处理的性能,可以通过共享执行资源来使单处理器同时执行多个线程。在架构上,通过使用逻辑处理器,每个逻辑处理器有自己的data register、segment register、control register、debug register和大部分的MSR,同时还有自己的APIC(Advanced programmable interrupt controller)。

4、cpu模式

IA-32有三个基本的操作模式 :

(1)保护模式

可以保护性的执行实地址模式的8086软件,是一种多任务环境,也称为虚拟8086模式。

(2)实地址模式

(3)系统管理模式(SMM)

处理器会使用一个特殊的地址空间。

Intel 64还有2个子模式:

(1)兼容模式

可以直接执行16位或32位的程序。

(2)64位模式

使用64位的线性址。

5、IA-32中指令的基本执行环境

(1)地址空间

程序可以使用的线性地址最大到4GBytes($2^32 bytes$),物理地址最大可到64GBytes($2^36 bytes$)

(2)基本程序执行寄存器

8个通用寄存器,6个段寄存器,EFLAGS寄存器,EIP(instruction pointer)寄存器。

(3)x87 FPU 寄存器

8个x87 FPU 数据寄存器,x87 FPU控制寄存器,状态寄存器,x87 FPU 指令寄存器,x87 FPU操作数寄存器,x87 FPU tag寄存器,x87 FPU opcode寄存器。

(4)MMX寄存器

8个MMX寄存器

(5)XMM寄存器

8个XMM数据寄存器和MXCSR寄存器

(6)YMM寄存器

(7)Bounds 寄存器

BND0~BND3

(8)BNDCFGU 和BNDSTATUS

(9)Stack

另外还有扩展:

(1)I/O 端口

(2)控制寄存器

5个,从CR0~CR4

(3)内存管理寄存器

GDTR,IDTR,task 寄存器

(4)调试寄存器

DR0~DR7

(5)MTTRs(Memory type range registers)

(6)MSRs(Model-specific registers)

(7)Machine check registers

(8)性能监控计数器

6、内存组织

操作系统通过cpu来访问内存的。

IA-32的内存模型

(1)扁平内存模型(flat)

一个连续地址空间,称为线性地址。

(2)段内存模型

内存被分为一组独立的地址空间,称为段。代码、数据和栈包含在不同的段中。在IA-32中,最多有16383个段,每个段可以有4Gbytes空间大小。段模式可以增强程序和系统的可信性。

(3)真实地址内存模式

最大的线性地址空间是$2^20 bytes$,程序或操作系统使用是由段组成的地址空间,每个段大小为64Kbytes。

分页和虚拟内存

IA-32架构的分页机制,是把线性地址转换成物理地址。

(1)PAE(Physical Address Extension),使定位的物理地址大于4GBytes

(2)PSE(Page Size Extensions),线性地址物理地址时使用4Mbytes页。




相关推荐

Intel提供了CPU的技术手册(EDS),地址如下: <a href="https://www.intel.cn/content/www/cn/

实模式 虚地址到实地址转换,段寄存器左移四位与偏移相加,得到物理地址,寻址空间1MB。 80

一、概念 1、u-boot本质上就是一个单片机程序,所以对应不同的硬件设计和cpu,u-boot必须按需修改。 2、u-boot用来引导启动操作系统。 3、文档地址:https://u-boot.re

一、CPU的设计规范 设计一款CPU,要遵循CPU设计规范,也就是指令集。目前的指令集主要有两种,一种是x86架构,一种是ARM架构,当然非主流的还有MIPS指令集、RISC-V指令集,二者基于RIS