文章目录
- 2.1.3读取内存
- 2.1.4加载并执行程序
- 2.2 32位x86处理器
- 2.2.1操作模式
- 2.3 64位X86-64处理器
2.1.3读取内存
- 从内存读取一个值经
- 将想要读取的值的地址放到地址总线
- 设置处理器RD(读取)引脚(改变RD的值)
- 等待一个时钟周期给存储器芯片进行响应
- 将数据从数据总线复制到目标操作数
- 上述每一步常常只需一个时钟周期
- 1.2GHz意味时钟节拍或振荡为每秒12亿次。
- 因此,4个时钟周期也是非常快的。
- 但与CPU寄存器相比,
- 访问寄存器一般只需要1周期
- CPU设计者很早就指出
- 绝大多数程序都需要访问变量,计算机内存成为了速度瓶颈
- 当CPU开始执行一个程序时,它会预先将后续(比如)一千条指令加载到 cache
开玩笑,能加载这么多条啊??
- 如果这种情况重复发生在一个代码块中,则 cache中就会有相同的指令
- 当处理器能够在 cache存储器中发现想要的数据,则称为 cache命中
- 如果CPU在 cache中没有找到数据,则称为 cache未命中
- x86系列中的cache有两类:
- 一级 cache(主cache)位于CPU上;
- 二级cache速度略慢,通过高速数据总线与CPU相连。
- 这两种 cache以最佳方式工作
- 还有一个原因使得 cache存储器比传统RAM速度快
- cache存储器是由静态RAM的特殊存储器芯片构成
- 贵,不要为了保持其内容不断刷新
- 动态RAM就需要持续刷新。
- 速度慢一些,更便宜
2.1.4加载并执行程序
- 程序执行前,要一种工具程序将其加载到内存,程序加载器( program loader)。
- 加载后,OS必须将CPU指向程序的入ロ,即程序开始执行的地址。
- OS在当前磁盘目录下搜索程序的文件名。
- 找不到,则在预定目录列表(称为路径(path)下搜索文件名。
- OS无法检索到文件名时,它会发出一个出错信息。
- 如果程序文件被找到,OS就访问磁盘目录中的程序文件基本信息,包括文件大小,及其在磁盘驱动器上的物理位置。
- OS确定内存中下一个可使用的位置,将程序文件加载到内存。
- 为该程序分配内存块,并将程序大小和位置信息加入表中(有时称描述符表( descriptor table)。
- 另外,OS可能调整程序内指针的值,使得它们包括程序数据地址。
- OS开始执行程序的第一条机器指令(程序入口)。当程序开始执行后,就成为ー个进程( process)OS为这个进程分配一个标识号(进程ID),用于在执行期间对其追踪。
- 进程自动运行。
- OS的工作是追踪进程的执行,并响应系统资源的请求。
- 资源包括内存、磁盘文件和输人输出设备等。
- 进程结東后,就会从内存中移除。

2.2 32位x86处理器
- 所有x86处理器的基本架构特点
- Intel IA-32系列中的成员和所有32位AMD处理器
2.2.1操作模式
- x86处理器三个主要
- 保护模式、
- 实地址模式
- 系统管理模式;
- 一个子模式:虚拟8086模式
- 这是保护模式的特殊情
- 保护模式是处理器的原生状态
- 所有指令和特性都可用的
- 分配给程序的独立内存区域被称为段,
- 处理器会阻止程序使用自身段范围之外的内存
- 虚拟8086模式
- 保护模式下处理器可以在一个安全环境中直接执行实地址模式软件
- 如MS-DOS程序
- 如果一个程序崩溃了或是试图向系统内存区域写数据,
- 都不会影响到同一时间内执行的其他程序
- 现代OS可同时执行多个独立的虚拟8086会话
- 实地址模式实现的是早期 Intel处理器编程环境
- 但增加了一些其他的特性,如切换到其他模式
- 当程序需要直接访问系统内存和硬件设备时
- 这种模式就很有用
- 系统管理模式(SMM)向OS
- 提供了实现诸如电源管理和系统安全等功能的机制
- 这些功能通常是由计算机制造商实现的,
- 他们为了一个特定的系统设置而定制处理器
2.3 64位X86-64处理器
- 所有使用x86-64指令集的64位处理器的基本架构细节
- Intel 64和AMD64处理器
- 指令集是已讨论的x86指令集64位扩展
- 1)向后兼容x86指令集
- 2)地址长度64位,虚拟地址空间 2 64 2^{64} 264字节
- 按照当前芯片实现情况,只能用地址低48位
- 3)可用64位通用寄存器
- 允许指令有64位整数操作数
- 4)比x86多8个通用寄存器
- 5)物理地址为48位,支持256T RAM