80386

1985年10月,Intel公司发布了其第一片32位微处理器80386。80386是一种与80286相兼容的高性能的全32位微处理器,它是为需要高性能的应用领域和多用户、多任务操作系统而设计的。

在80386芯片内部集成了存储器管理部件和硬件保护机构,内部寄存器的结构及操作系统全都是32位的。它的地址线为32位,可寻址的物理存储空间为4GB(232),80386支持的虚拟地址空间(逻辑地址空间)可以达到64TB(Tera Byte)。

80386提供32位外部总线接口,最大数据传输速率为32MB/s,具有自动切换数据总线宽度的功能。CPU读/写数据的宽度可以在32位~16位之间自由进行切换,与8086/8088、80286相兼容。它支持8位、16位或32位数据类型,有8个通用的32位寄存器,分别命名为EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP,它们的低16位可以单独使用。具有三种工作方式:实地址方式、保护方式和虚拟8086方式。实地址方式和虚拟8086方式与8086相同,已有的8088/8086软件不加修改就能在80386的这两种方式下运行;保护方式可支持虚拟存储、保护和多任务,包括了80286的保护方式功能。

片内集成存储器管理部件(MMU),可支持虚拟存储和特权保护,虚拟存储器空间可达64TB(246B)。存储器按段组织,每段最长4GB,因此64TB虚拟存储空间允许每个任务可拥有多达16384个段。存储保护机构采用四级特权层,可选择片内分页单元。内部具有多任务机构,能快速完成任务的切换。

80386的指令采用了比8086更先进的流水线结构,能高效、并行地完成取指、译码、执行和存储管理功能。它具有增强的指令预取队列,指令队列从8086的6B增加到16B。为了加快访问速度,系统中还设置高速缓冲存储器(Cache),构成完整的Cache、主存、辅存的3级存储体系。

80386微处理器内部结构

80386是一种与80286相兼容的第一个高性能全32位微处理器,132条引脚线用网格阵列式封装在陶瓷片内

特点:
1、80386芯片在硬件结构上由6个逻辑单元组成,它们按流水线方式工作。
2、三种工作方式:实模式、保护模式、V86模式(虚拟86模式)
3、硬件支持段式管理、页式管理,易于实现虚拟存储系统
4、硬件支持多任务,一条指令就可以完成任务切换
5、特权级保护机制:0、1、2、3、级

1、总线接口部件(BIU)
2、指令预取部件(CPU)
3、指令译码部件(IDU)
4、执行部件(EU)
5、段管理部件(SU)
6、页管理部件(PU)

寄存器结构:


80386有7类寄存器:
1、通用寄存器(8个32位寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP)
2、段寄存器(80386增加FS和GS两个数据段寄存器,段寄存器里存放的不再是段基址的高16位,而是选择器)
3、指令指针和标志寄存器(EIP和EFLAGS)
4、控制寄存器(CR0、CR1、CR2、CR3)
5、系统地址寄存器(GDTR-全局描述符表寄存器、IDTR-中断描述符表寄存器、LDTR-局部描述符表寄存器、TR-任务寄存器)
6、调试寄存器(DR0–DR7)
7、测试寄存器(TR0–TR7)

详细信息参考:https://blog.csdn.net/qq_42856154/article/details/89668124

三种工作模式

1、实地址模式(Real Address Mode)
当刚加电启动或复位时,操作系统自动控制进入实模式,用于初始化系统,为保护模式所需要的数据结构做好各种配置和准备,实模式下,80386类似于8086体系结构,兼容8086。
2、保护虚拟地址模式(Protected Virtual Address Mode)
实模式结束后进入保护模式,提供了多任务环境中的各种复杂功能以及对复杂存储器组织的管理机制
例如:多用户、多任务、虚拟存储空间、保护机制。
3、虚拟8086模式(Virtual Address 8086 Mode)
1、使80386可以快速的执行多个8086应用程序
2、段寄存器的用法和实模式时相同
3、存储器寻址空间1MB,可以使用分页机制,支持多任务
4、该模式运行在3级,80386中一些特权级指令不能使用

详细信息参考:https://blog.csdn.net/qq_42856154/article/details/89743391

存储器管理

80386利用片内的存储管理单元(MMU)来实现对存储器系统的两级管理:分段管理(逻辑地址-线性地址)和分页管理(线性地址-物理地址)

详细信息参考:https://blog.csdn.net/qq_42856154/article/details/89740362

保护机制

详细信息参考:https://blog.csdn.net/qq_42856154/article/details/89765200

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 的工作基准频率信号。

2)数据总线(D31~D0):为80386 和其他设备之间提供数据通路,32 位数据总线,双向三态,一次可传送8 位、16 位或32 位数据,由输入信号(BE3~BE0)和BE16确定。在任何写操作周期(包括暂停周期和停机周期),80386 总是驱动数据总线的所有32 位信号,而不管当前总线的实际宽度。

3)地址总线(A31~A2,BE3~BE0):

  • A31~A2:地址总线,输出三态,和BE3~BE0相结合起到32位地址的作用。80386地址总线包含A2~A31地址线和字节选通线BE3~BE0。BE3~BE0线的功能与8086和80286系统的A0和BHE非常相似,它们是内部地址信号A0和A1的译码。由于80386有一个32位数据总线,所以内存可以建立4B宽的存储体。BE3~BE0信号是用来选通这4B个存储体。这些单独选通可以使80386 的内存传送或者接收字节、字或者双字。

  • BE3~BE0:字节选通信号。用于选通在当前的传送操作要涉及4B数据中的哪几个字节。BE0对应于D0~D7,BE1对应于D8~D15,BE2对应于D16~D23,BE3对应于D24~D31。

4)总线周期定义信号(M/IO,W/R,D/C,LOCK,三态,输出,用来定义正在进行的总线周期类型):

  • M/IO:存储器/输入输出选择信号,输出信号。高电平时访问存储器,低电平时访问I/O 端口。80386 直接I/O 端口简单地把8086 和80286 端口结构扩充成32 位端口。32 位I/O 端口可以通过并联8 位I/O 端口设备(如8255A)来构成。80386 可以使用所有8 位端口地址的IN 或OUT 指令来编址256 个8 位端口、128 个16 位端口、64 个32 位端口。使用DX 寄存器存放16 位端口地址,80386 可以编址64K 个8 位端口、32K 个16 位端口或8K 个32 位端口。

  • W/R:读/写控制输出信号,高电平时写入,低电平时读出。

  • D/C:数据/指令控制信号,输出。高电平时传送数据,低电平时传送指令代码,D/C指示总线操作是一个数据读/写还是控制字传输(如取一个操作码)。

  • LOCK:总线周期封锁信号,低电平有效。

5)总线控制信号(ADS,READY,NA,BE16):

这组信号用来表示总线周期何时开始,以及数据总线的宽度和总线周期的终结。

  • ADS:地址选通信号,三态输出,低电平有效。当有效时,表示总线周期中地址信号有效。当有效地址、BE信号和总线周期定义信号均在总线上时,ADS信号将被设置。因为80386 地址总线是不可复用的,所以8086 类型的ALE 信号是不需要的。但是,在某些80386 系统中,ADS信号用于一种称为地址流水线的模式,将地址传送到外部锁存器。地址流水线的原理:如果一个地址保持在外部锁存器的输出端,80386 就可以把地址引脚上的“老”地址清除,并在总线周期的前期输出下一个操作的地址。外部控制芯片通过设置下一个地址信号来通知80386 何时为下一个操作输出地址。对一个有SRAM 高速缓冲的系统,流水线地址模式通常不是必需的,因为SRAM 高速缓冲已足够快了,不需要等待状态。

  • READY:准备就绪,输入信号,低电平有效。READY有效时表示当前总线周期已完成。信号用来在总线周期中根据低速的内存或I/O 设备接口的需要插入等待状态。

  • NA:下一个地址请求信号,输入信号,低电平有效。允许地址流水线操作,当其有效时,表示当前执行中的周期结束之后,下一个总线周期的地址和状态信号可变为有效。

  • BE16:输入信号,低电平有效,指定16 位数据总线。BE16输入端允许80386以16位和/或32位数据总线工作。如果设置了BE16,那么80386只将数据传送到32位数据总线的低16位上。如果设置了BE16并且要从16位宽内存中读一个32位的操作数,那么80386将自动产生一个第二总线周期来读第二个字。对于未调整的传输,如果设置了BE16,那么80386 也产生所需数目的总线周期。

6)总线仲裁信号(HOLD,HLDA) :由总线请求主设备来控制该组信号:

  • HOLD:总线请求信号,输入信号,高电平有效。

  • HLDA:总线保持响应信号,输出信号,有效时,CPU 让出总线。

7)协处理器接口信号(PEREQ,BUSY,ERROR) :控制80386 同80287 或80387 之间的通信:

  • PEREQ:来自协处理器的请求信号,输入信号,表示80387 要求80386 控制它们与存储器之间的信息传送。PEREQ 信号是由一个像80387 浮点处理器这样的协处理器输出的,它通知80386 为协处理器取数据字的第一部分,然后协处理器将接管总线并读数据字的其余部分。

  • BUSY:协处理器忙,输入信号,低电平有效。BUSY信号由协处理器使用。以避免80386 在协处理器结束当前指令之前又继续下一条指令。

  • ERROR:协处理器错误信号,输入信号,低电平有效。如果协处理器设置了ERROR 信号,80386 将执行类型为16 的异常中断。

8)中断信号( INTR,NMI,RESET) :用来引起中断或中止80386 正在执行的指令流:

  • INTR:可屏蔽中断请求,输入信号。80386 响应INTR 请求时,完成两个连续的中断响应周期,在整个响应周期,LOCK信号有效。在第二个周期末,D0~D7数据线上送出8位中断类型码,以识别中断源。INTR信号可以由80386的标志寄存器中的IF位屏蔽。

  • NMI:非屏蔽中断请求,输入信号。80386对NMI的处理不运行中断响应周期,而是自动产生一个中断类型2。

  • RESET:复位信号,输入信号,当RESET 有效时,将中止80386 正在执行的一切操作,并置于一个已知的复位状态。
    80386有许多VCC 脚,也有许多标为VSS 的地线,这些引脚均被接到PC板合适的电平上。

IA-32架构

英特尔32位架构(Intel Architecture, 32-bit,缩写为IA-32),常被称为i386、x86-32或是x86,由英特尔公司推出的复杂指令集(CISC)架构,至今英特尔最受欢迎的处理器仍然采用此架构。它是x86架构的32位延伸版本,1985年首次应用在Intel 80386芯片中,用来取代之前的x86 16位架构(x86-16),包括8086、80186、80286芯片。

一个IA32中央处理器(CPU)包含一组8个存储32位值的寄存器.,这些寄存器用来存储整型数据和指针,而在最初的8086中,寄存器是16位的。
上面的386内部结构图就是IA-32架构:

Intel-80386微处理器(IA-32架构)相关推荐

  1. 64位ie加载java失败_java-无法在AMD 64位平台上加载IA 32位.dll

    java-无法在AMD 64位平台上加载IA 32位.dll 我正在尝试通过此页面上的JNI包装器使用Java中的SVMLight: static { System.loadLibrary(" ...

  2. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (17) - 互联环路LLC

    Ring Interconnect and Last Level Cache 片上系统设计提供了一个高带宽的双向环路总线,用于连接IA处理器核与核外的各子系统.在第二代Intel Core处理器2xx ...

  3. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (19) - 系统代理

    System Agent 在Sandy Bridge微架构中实现的系统代理包括了如下的组件: 一个总裁器,用于管理所有的访问请求,并将这些请求路由(即转发)到正确的位置上.访问请求可能来自于环域(ri ...

  4. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (16) - L1数据缓存/存储转发访存消歧存储体冲突

    Store Forwarding 如果读存操作紧跟着写存操作,且要读取的数据包含在要写入的数据中,则数据可能可以从写操作直接转发给读操作.这个过程叫做"存储-读取转发",简称为&q ...

  5. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (15) - L1数据缓存/读写地址转换

    L1 DCache (L1D) L1D指的是一级数据缓存,通过缓存内部的数据结构(即硬件逻辑),管理所有类型的读存与访存请求: 允许投机式,乱序发射读存与写存请求 确保退役的读存与写存指令在退役时具有 ...

  6. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (9) - 流水线前端/微指令队列循环流侦测器LSD

    Micro-op Queue and the Loop Stream Detector (LSD) 微指令队列将流水线前端与乱序引擎解耦合(即隔离开).它位于微指令生成单元与重命名单元之间(参看上图) ...

  7. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (7) - 流水线前端/译码后指令缓存

    Decoded ICache 译码后微指令缓存本质上是对传统的译码流水线的高速缓存加速器.通过缓存微指令,可以提供如下的优势: 减少由于分支预测失败导致的延迟 增加发射微指令到乱序引擎的带宽 降低流水 ...

  8. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (6) - 流水线前端微熔合/宏熔合

    Micro Fusion 微熔合将来自于同一条x86指令的多条微指令熔合成单条复杂的微指令.这条复杂的微指令可以被分发到乱序执行核任意多次,就好象没有进行过微熔合一样(即乱序执行核并不能感知到微熔合机 ...

  9. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (5) - 流水线前端传统译码器

    Legacy Decode Pipeline 传统的译码流水线由下列部件/单元构成:指令地址转换旁查缓冲区ITLB,指令缓存,指令预译码器,指令译码单元(一个复杂译码器/三个简单译码器). Instr ...

  10. linux服务器 32核,Intel换成AMD 32核锐龙 Linux之父体验很好

    Torvalds提到,Intel的至强他之前也考虑过,但计算价格后发现,成本太高了,核心数翻番往往需要花费5倍的价格,AMD就厚道许多,价格便宜了一半多. 去年5月,Linux之父Linus Torv ...

最新文章

  1. EchoesWorks —— 打造下一代技术Blog/Presentation 框架(招兵买马)
  2. Mob统计分析数据模型理解
  3. JAVA遇见HTML——JSP篇(JSP内置对象上)
  4. 国内大学毕业论文LaTeX模板集合
  5. Android 使用PDF.js浏览pdf
  6. ResourceID(frameworks/base/libs/utils/README)
  7. Python dir和vars的区别
  8. 7_23 day26 14min面向对象总结
  9. [react] 你有用过哪些React的UI库?它们的优缺点分别是什么
  10. 解放双手!推荐一款阿里开源的低代码工具,YYDS!
  11. 工作中常用的 6 种设计模式!
  12. mysql 时间序列可视化工具_mysql – 从from到to条目创建时间序列
  13. 成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'express'
  14. 海康Ehome协议的的PS流分析
  15. 文件复制到u盘后文件夹是空的,怎么恢复?
  16. Paypal快速支付接口参数的含义
  17. 使用终端模拟器通过wifi连接eclipse
  18. Python之selenium进阶
  19. MCU简单控制DAC芯片应用(以DAC8550为例)
  20. 某某行政处罚文书网 (请求参数: ciphertext)

热门文章

  1. 计算机配色与人工配色原则,计算机配色的理论与实践研究
  2. CRM各行业解决方案
  3. 网络排查工具MTR介绍
  4. 渗透测试工程师字典介绍
  5. java输入身高体重计算体脂率_追求健康的体脂率,比追求体重数更有意义:一个公式教你计算...
  6. 微信管理软件哪个比较不错
  7. 相比android原生更好看,而且功能齐全的框架,XUI框架的配置和使用?
  8. ToLua 入门06_LuaCoroutine
  9. 全球15个免费卫星遥感数据源
  10. 杭州雄迈拟召回一万个网络摄像头:被指引发美国网络瘫痪