Browse Source

Merge pull request #23 from zhangbotong/main

译2.1.2~2.5, 3.1
pull/17/merge
闪客sun 3 years ago
committed by GitHub
parent
commit
66b6ea0c1a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 75
      Intel 手册中文版/卷一:基本架构.md

75
Intel 手册中文版/卷一:基本架构.md

@ -214,11 +214,84 @@ Intel 和 IA-32 处理器都是采用“little endian(小端)”方式存储
8086/8088 向 IA-32 架构引入了段(segmentation)。通过分段, 16 位段寄存器可以指向高达 64 KB 的内存段。同时使用四个段寄存器,8086/8088 处理器能够不在段之间切换的情况下寻址达 256 KB。使用段寄存器和额外的 16 位指针可以形成的 20 位地址提供 1 MB 的总寻址范围。
### 2.1.2 - 2.1.22
### 2.1.2 Intel® 286 处理器(1982)
Intel 286 处理器向 IA-32 架构中引入了保护模式。保护模式使用段寄存器的内容作为选择器(selector)或指针指向描述符表(descriptor table)。描述符(Descriptor)提供 24 位基址,物理内存可达 16 MB,支持基于段交换的虚拟内存管理,以及一些保护机制。这些机制包括:
* 段限制检查
* 只读和只执行段选项
* 四种特权级
### 2.1.3 Intel 386 处理器(1985)
Intel 386 处理器是 IA-32 体系结构家族中的第一个 32 位处理器。它引入了 32 位寄存器用于保存操作数和寻址。每个 32 位 Intel 386 寄存器的低地址保留了早期 16 位寄存器的内容,允许向后兼容。 386 处理器还提供虚拟化 8086 模式,使得在执行 8086/8088 处理器创建的程序时效率更高。
此外,Intel 386 处理器支持以下功能:
* 32 位地址总线,支持多达 4 GB 物理内存
* 段内存模型和一个平面(flat)内存模型
* 分页,使用固定的 4 KB 页面大小为虚拟内存管理提供了一种方法
* 支持并行级
### 2.1.4 Intel 486 处理器(1989)
Intel 486 处理器通过将 Intel 386 处理器的指令解码(decode)和执行(execution)扩展到五个流水线步骤,增加了并行执行能力。在不同的执行阶段,每个阶段与其他阶段并行操作,最多可并行执行 5 条指令。
此外,处理器还增加了:
* 一个 8 KB 芯片一级缓存,增加了在每个时钟上执行指令的数量
* 集成 x87 FPU
* 节能和系统管理能力
### 2.1.5 The Intel® Pentium® 处理器 (1993)
Intel Pentium processor 的引入增加了第二个执行管道(execution pipeline),以实现超量性能(两个管道,称为 u 和 v,一起可以在每个时钟上执行两条指令)。芯片上的一级缓存增加了一倍,其中 8 KB 用于代码,另外 8 KB 用于数据。除了 Intel 486 处理器使用的透写缓存(write-through cache)外,数据缓存使用 MESI 协议来支持更有效的回写缓存(write-back cache)。为了提高循环结构的性能,增加了带有芯片上分支表的分支预测。
此外,处理器还增加了:
* 扩展使虚拟 8086 模式更高效,并允许 4MB 和 4KB 页面大小
* 128 和 256 位的内部数据路径提速到内部数据传输
* 突破性的外部数据总线增加到 64 位
* 支持多处理器系统的 APIC
* 双处理器模式,支持无胶(glueless)双处理器系统
奔腾系列后续引入了 Intel MMX 技术(带 MMX 技术的奔腾处理器)。INTEL MMX 技术使用单指令,多数据(SIMD)执行模型来并行执行 64 位寄存器中的包装(packed)整数数据。
参见 2.2.7 节, “SIMD 指令”。(Todo link)
### 2.1.6 - 2.1.22
[@翻译人:zhangkai803](https://github.com/zhangkai803)
# 第三章 Basic Execution Environment
## 3.1 操作模式
IA-32 架构支持三种基本的运行模式:保护模式、实地址模式和系统管理模式。操作模式决定了哪些指令和架构特性是可用的。
* **保护模式**(Protected mode)--该模式是处理器的本机状态(native state)。保护模式是指能够在受保护的多任务环境中直接执行实地址模式 8086 软件。这个特性被称为**虚拟-8086 模式**,尽管它实际上不是处理器模式。虚拟-8086 模式实际上是保护模式的一个属性,可以被任何任务开启。
* **实地址模式**(Real-address mode)-- 该模式实现了 Intel 8086 处理器的编程环境,具有扩展功能(例如切换到保护模式或系统管理模式的能力)。处理器在通电或复位后被置于实地址模式。
* **系统管理模式** (System management mode,SMM)--该模式为操作系统或执行程序提供透明的机制,实现平台相关特有的功能,如电源管理、系统安全等。当外部 SMM 中断引脚(SMI#--SMM interrupt)被激活或从高级可编程中断控制器(APIC)接收到 SMI 时,处理器进入 SMM。
在 SMM 中,当保存当前运行的程序或任务的基本上下文时,处理器切换到一个单独的地址空间。然后可以透明地执行特定于 SMM 的代码。当从 SMM 返回时,处理器被放置回系统管理中断之前的状态。SMM 是在 Intel386 SL 和 Intel486 SL 处理器中引入的,并成为奔腾处理器家族的标准 IA-32 特性。
### 3.1.1 Intel® 64 架构
Intel 64 架构增加了 IA-32E 模式。IA-32E 模式有两个子模式。他们是:
* 兼容模式(IA-32E 模式的子模式) - 兼容模式允许大多数传统的 16 位和 32 位应用程序在无需重新编译情况下运行在 64 位操作系统。兼容性子模式在 IA-32 架构中简称为兼容模式。兼容模式的执行环境与 3.2 节描述相同。兼容模式还支持 64 位和保护模式支持的所有特权级。以虚拟 8086 模式或使用硬件任务管理的遗留应用程序不能在此模式下工作。
兼容模式是操作系统在代码段的基础上启用的。这意味着单个 64 位操作系统可以支持以 64 位的应用程序以 64 位模式运行,并支持以兼容模式运行的传统的 32 位应用程序(未重新编译为 64 位)。
兼容性模式类似于 32 位保护模式。应用程序只访问线性地址空间的前 4 G。兼容模式使用 16 位和 32 位地址和操作数大小。与保护模式一样,这种模式允许应用程序使用 PAE(Physical Address Extensions)访问大于 4 G 的物理内存。
* 64 位模式(IA 32e 模式的子模式)- 这种模式使 64 位操作系统能够运行访问 64 位地址空间的应用。64 位子模式在 IA-32 架构中简称为 64 位模式。
64 位模式将通用寄存器和 SIMD 扩展寄存器的数量从 8 升到了 16。并且通用寄存器扩展到 64 位。该模式还引入了一个新的操作码前缀(rex)以访问寄存器的扩展位。有关详细说明,请参见第 3.2.1 节。
操作系统以代码段为基础启用 64 位模式。其默认地址大小为 64 位,其默认操作数大小为 32 位。可以使用 REX 操作码前缀和操作数大小覆盖前缀在逐条指令的基础上覆盖默认操作数大小。
REX 前缀允许在 64 位模式下指定 64 位操作数。通过此机制,许多现有指令允许使用 64位寄存器和 64 位地址。
## 3.4 BASIC PROGRAM EXECUTION REGISTERS

Loading…
Cancel
Save