====================================================================
本文用于汇总整理Intel80386对协处理器与多处理器的支持,
参考文献:
- 《INTEL 80386 programmer's reference manual 1986》
本文是系列文章《Intel80386知识总结》的一部分。
===================================================================
协处理器与多处理器都是i386提供的并行计算支持。其中协处理器提供专门领域的辅助并行处理,多处理器机制提供通用的并行计算接口。
1. 协处理器
i386可以使用80287或者80387作为协处理器,自检后,若ET位=1,则处理器正在使用协处理器80387,否则正在使用协处理器80287或者没有协处理器。
1.1 ESC指令和WAIT指令
ESC指令和WAIT指令用以控制处理器与协处理器交互。以11011开头的指令被称作ESC指令,用来向协处理器发送指令。处理器在遇到ESC指令之后会进行以下操作,然后将指令发送给协处理器:
- 检查标志位EM,确定协处理器功能是否由软件模拟。若使用软件模拟协处理器,则在此时触发7号异常,由软件介入模拟。
- 检查标志位TS,确定自上一条ESC指令始到现在,有没有发生过上下文切换。
- 检查ERROR针脚,确定上一条ESC指令有没有发生错误
WAIT指令用以同步处理器与协处理器的协作执行,当处理器遇到WAIT指令时进行如下操作:
- 检查MP(Monitor Coprocesser)标志位是否为1,若为1,则进一步检查TS标志位,若TS=1,则触发7号异常。系统软件可以借此机会,切换协处理器的上下文,来保持当前任务上下文一致。
- 等待,直到协处理器释放BUSY针脚
- 检查ERROR针脚确定是否出错,若出错则触发17号异常
1.2 协处理器异常
共包括3个:
- 7号:协处理器不可用
- 9号:协处理器段用尽
- 16号:协处理器错误
2. 多处理器
多处理器支持的题中之义主要在于多处理器并发访问内存时的同步控制。
2.1 LOCK指令
LOCK是一个指令前缀,用它可以设置处理器的LOCK针脚,LOCK指令的目标操作数所在的内存区域将被锁定,LOCK之后的指令将获得独占修改该区域的权力。LOCK指令必须被用在下列指令之前,否则将会产生undefined-opcode异常:
- Bit test and change: BTS, BTR, BTC.
- Exchange: XCHG.
- Two-operand arithmetic and logical: ADD, ADC, SUB, SBB, AND, OR, XOR.
- One-operand arithmetic and logical: INC, DEC, NOT, and NEG.
2.2 隐式的内存同步访问
在下列情形中,处理器将自动设置LOCK针脚,同步内存访问,而不需要显示的调用LOCK指令:
- 接收中断时:中断发生后,中断处理器需要把中断ID和中断源通过数据总线发送给处理器,此时处理器将会通过LOCK信号保证在此期间不会有其他数据出现在数据总线上。
- 设置TSS的Busy位时:处理器通过设置TSS的Type字段Busy位来保证任务不可重入,在设置和检查Busy的时候,处理器会自动建立LOCK信号。
- 载入段描述符时:载入段描述符到段寄存器时,处理器将通过建立LOCK信号保证在此期间段描述符不会被其他处理器修改。为了避免在修改一个段描述符时处理器对其进行载入操作,系统软件在修改段描述符前应显式的设置标志,即遵循这样三步:1)使用带LOCK的修改指令修改段描述符的access-rights byte,使其处于not-present状态;2)更新段描述符(这一步可能多次访存,在此期间使用LOCK前缀是无效的);3)使用带LOCK的修改指令修改段描述符的access-rights byte,使其再次处于present状态。
- 更新页表的Access位和Dirty位时:更新页表的Access位和Dirty位时将通过建立LOCK信号保证原子性,同时这些更新也会绕过页表缓存
- 执行XCHG指令时:XCHG是由处理器保证的原子指令,该指令的多次访存被保证有原子性。
分享到:
相关推荐
6. **协处理器接口**:ARM架构具备协处理器接口,可扩展16个协处理器,增强处理器功能。 7. **低电压设计**:考虑到在便携式设备中的应用,ARM处理器注重低电压和低功耗设计。 ### ARM指令集版本 ARM指令集经历了...
2) 作为协处理器:与微控制器协同工作,增强处理能力。 ARM处理器家族: 1) ARM7系列:三级流水线,支持Thumb指令集(如ARM7TDMI)。 2) ARM9系列:增强的DSP处理能力(如ARM920T)。 3) ARM/OE:增强的DSP指令集。...
- **最大模式**:适用于多处理器系统,其中8086作为主处理器,其他为协处理器。 - **8086的总线周期**: - **时钟周期**:基本时间单位,由计算机主频决定。 - **总线周期**:分为T1、T2、T3、T4四个阶段,有时...
- **相关产品**:为了提高数学运算能力,Intel还推出了数学协处理器i8087,它与8086兼容并增加了专门的数学计算指令。 ##### 4. Intel 8088 (1979年) - **简介**:8088与8086相似,但其外部数据总线缩小至8位,内部...
5. **协处理器8087及I/O处理器8089** - 协处理器如8087专门用于加速浮点运算,而I/O处理器则负责外部设备的输入输出管理。 6. **引入存储器的保护管理模式** - 为了确保系统的稳定性和安全性,IA-32架构引入了保护...
- **协处理器接口**:ARM架构支持16个协处理器接口,可扩展指令集或进行软件仿真。 - **低电压设计**:针对嵌入式应用,ARM9在设计时注重低电压和低功耗特性。 **3. ARM指令系统版本** ARM指令集经过多次版本迭代,...
ARM指令系统包括数据处理、转移、加载/存储和协处理器指令等,通过寄存器寻址来操作数据。在嵌入式编程中,常使用压栈方法传递参数,异常处理则需要处理器自动更新状态。 6. 嵌入式系统应用: 嵌入式系统广泛应用于...
最大模式则包含多个处理器,适合中大型系统,其中一个为主处理器,其余为协处理器。 I/O结构由数据锁存/缓冲器、状态寄存器、命令寄存器、地址译码器和控制逻辑组成。接口中的端口分为数据端口、状态端口和控制端口...
最大模式则适用于复杂系统,需额外的总线控制器和协处理器来增强系统的控制和扩展能力。 综上所述,计算机原理涵盖了计算机发展的历史背景、微型计算机的结构组成、性能评估以及特定型号(如8086)的详细分析,对于...
总结来说,微型计算机及其接口技术涵盖了从微处理器设计到系统架构,再到存储器组织和通信机制的多个层面,是理解计算机工作原理的基础。掌握这些知识点不仅对学术研究有益,也是实际工程应用中不可或缺的技能。
在嵌入式系统中,FPGA常作为协处理器,加速特定任务。 五、FPGA与ASIC的对比 相比ASIC(Application-Specific Integrated Circuit,专用集成电路),FPGA具有更快的上市时间和更低的风险,因为设计更改可以在后期...
80486是Intel于1989年推出的x86架构系列CPU,拥有集成的数学协处理器,以及更高效的流水线和指令缓存。 - “CSIPF”、“FIPCS”、“IPCSF”可能是不同的CPU指令或指令集合的缩写或编码,但未提供足够信息,无法具体...
MIC平台,如Intel的Xeon Phi协处理器,就是专为高性能计算而设计的多核架构,能够提供比传统CPU更强大的并行处理能力。 移植过程通常包括以下几个关键步骤: 1. **理解源代码结构**:分析串行程序的代码逻辑,识别...
系统支持芯片如8284(时钟发生器)、8288(地址总线控制器)和8087(浮点运算协处理器)等,它们扩展了微处理器的功能,提高了系统性能。锁存器在系统中用于暂时存储数据,确保数据传输的准确性。 总结来说,微型...
它支持多种硬件资源,如CPU、GPU(图形处理器)以及Intel Phi协处理器,这些硬件在高性能计算(HPC)领域中非常常见,尤其是用于科学计算和大数据处理。 在Torque 4.2.4.1这个版本中,我们期望看到的更新可能包括...
- **全软件RAID**:所有的RAID功能均由操作系统和CPU来完成,没有专门的RAID协处理器或I/O芯片参与。这种类型的RAID效率较低,因为所有RAID相关的任务都需要由CPU来处理。 - **半软半硬RAID**:缺乏专用的I/O处理...