小言_互联网的博客

【微型计算机原理与接口技术】80X86微处理器发展与内部结构

312人阅读  评论(0)

Intel微处理器发展概况

微处理有关的常用术语

  • 字长(数据宽度)
    字长是微处理器一次可以直接处理的二进制数码的位数,它通常取决于微处理器内部通用寄存器的位数和数据总线的宽度。微处理器的字长有4位、8位、16位、32位和64位等。
  • 寻址能力
    指CPU能直接存取数据的内存地址的范围,它由CPU的地址总线的数目决定。
  • 主频
    主频也叫时钟频率,用来表示微处理器的运行速度,主频越高,表明微处理器运行越快,主频的单位是 MHz、GHz。
  • MIPS
    MIPS 是 Millions of Instruction Per Second 的缩写,用来表示微处理器的性能—运算速度,用每秒钟能执行多少百万条指令表示。
  • 微处理器的集成度
    指微处理器芯片上集成的晶体管的密度。
    最早 Intel 4004 的集成度为2250个晶体管,PentiumIII 的集成度已经达到750万个晶体管以上,集成度提高了3000多倍。

微处理器发展概况图


32位微处理器内部结构

486微处理器内部结构寄存器

486内部寄存器分为4类:

  • 基本结构寄存器
  • 浮点寄存器
  • 系统级寄存器
  • 调试测试寄存器

应用程序只能访问基本结构寄存器和浮点寄存器。(我们只学习基本结构寄存器

486内部基本结构寄存器




32位微处理器地址空间

存储空间

物理空间(物理存储器地址空间):程序的运行空间,即主存空间。

486有32条地址线,内存最大容量4G。这4G字节称为物理存储器,每一单元的地址称为物理地址,其地址范围:0000,0000H~FFFF,FFFFH为物理存储空间。

虚拟空间(虚拟存储器地址空间):编程空间。

  • 虚拟存储器是一项硬件和软件结合的技术。
  • CPU内部的存储管理部件把主存(物理存储器)和辅存(磁盘)看作是一个整体,即虚拟存储器。
  • 允许编程空间为 246=64T,程序员可在此地址范围内编程,大大超过物理空间。该空间对应的地址称为虚拟地址逻辑地址
  • 程序运行时,操作系统从虚拟空间取一部分程序代码载入物理空间运行。
  • 当程序运行需要调用的程序和要访问的数据不在物理存储器时,操作系统再把那一部分调入物理存储器.……数据的交换极快,程序察觉不到。

线性空间

  • 当程序从虚拟空间调入物理空间时,要进行地址转换。
  • 分段部件首先把虚拟地址(编程地址)转换为线性地址
  • 如果不分页的话,线性地址就是物理地址;
  • 如果分页的话,则由分页部件把线性地址转换为物理地址


实模式:存储空间仅分段,而不分页;
保护模式:存储空间先分段,再分页。

I/O 空间

  • 486利用低16位地址线访问IVO端口,所以IVO端口最多有216=64K,I/O地址空间为0000H~FFFFH
  • I/O地址空间不分段;
  • I/O地址空间与存储空间不重叠。CPU有一条控制线M/ I O \overline{IO} ,在硬件设计上用M/ I O \overline{IO} =1,参与存储器寻址,用M/ I O \overline{IO} =0参与I/O寻址。
  • 从PC/XT~Pentium,基于Intel微处理器的系统机,实际上只使用低10位地址线,寻址210=1024个I/O端口。

32位微处理器工作模式

实地址模式(实模式)

①加电、复位之后,486自动工作在实模式,系统在DOS管理下;

②在实模式下,486只能访问第一个 1M 内存(00000H~FFFFFH);

③存储管理部件对存储器只进行分段管理,没有分页功能,每一逻辑段的最大容量为64K;

④在实模式下,段寄存器中存放段基址

保护虚拟地址模式(保护模式)

①在保护模式下,486支持多任务操作系统;

②在保护模式下,486可以访问4G物理存储空间,存储器用虚拟地址空间、线性地址空间和物理地址空间三种方式来进行描述,虚拟地址就是逻辑地址。寻址机构不同于8086,通过一种称为描述符表的数据结构来实现对内存单元的访问,该描述符由存放在段寄存器中的选择符来确定;

③CPU 内部的存储管理部件对存储器采用分段和分页管理。可以将磁盘等存储设备有效映射到内存,使逻辑地址空间大大超过实际的物理地址空间,这样,使主存储器容量很大;

④既能进行16位运算,也能进行32位运算。

486工作在保护模式下,才能真正发挥它的设计能力。

关于保护机制:
高级别的程序可以访问同级或低级的数据段,反之则不行。

虚拟86模式

虚拟86模式是保护模式下的一种特殊工作模式,可运行实模式程序。

在操作系统管理下,486可以分时地运行多个实模式程序。

不能从实模式直接进入虚拟86模式,也不能从虚拟86模式直接回到实模式。

32位微处理器实模式下20位物理地址的形成

实地址模式下的物理地址与逻辑地址

  • 物理空间对应的物理地址
    物理地址是指1MB 存贮区域中的某一单元地址,地址信息是20位的二进制代码,以16进制表示是 00000H~FFFFFH 中的一个单元。
    CPU 访问存贮器时,地址总线上送出的是:20位物理地址。
  • 编程空间(虚拟空间)对应的逻辑地址
    编制程序应采用逻辑地址。程序是分段的,逻辑地址由段基址和偏移地址组成,书写成:
    段基址:偏移地址
  • 在一个逻辑段中,各单元的段地址是相同的,偏移地址是该单元相对于段首的地址偏移量
  • 所有段都是起始于16字节的边界,段起始物理地址为XXXX0H
  • 物理地址为12345H的单元,逻辑地址可能为 1000H:2345H ,也有可能是1200H:345H1230H:45H

  • 实模式下,把1M字节的存储器分为任意数量的段,其中每一段最大长度为64K(216) 字节。
  • 段的起始地址的高16位地址称为该段的段基址。段内再由16位二进制数寻址,段内寻址的16位二进制数地址是存储单元到段起始地址的距离,称为偏移地址

实地址模式CPU20位物理地址的形成


注:物理地址是唯一的,不同的逻辑地址可以得到相同的物理地址,如:

  • 1000H:2345H —— 12345H
  • 1200H:0345H —— 12345H

逻辑地址需由程序员在编程时给出,这是由于编程在逻辑空间进行,还没有定位到存储器。
所以:段基址,指明由哪个段寄存器给出即可;偏移地址,由程序员在程序中给出具体值;

实地址模式下各逻辑段物理地址的形成

以16位寻址为例,段寄存器中存放段机制:

  • 代码段:CS*24 + IP = 指令单元的物理地址;
    一条指令的一个字节取出后,IP自动加1,指向下一字节。
  • 堆栈段:SS*24 + SP = 栈顶单元的物理地址;
  • 数据段:DS*24 + 偏移地址 = 数据单元的物理地址;
  • CS、IP的初值:由操作系统赋值
  • SS、SP的初值:
    ①由程序员赋值
    ②由操作系统自动赋值
  • DS/ES/FS/GS的初值:由程序员赋值。
  • BX/SI/DI/BP的初值:由程序员赋值。

转载:https://blog.csdn.net/weixin_43734095/article/details/101703567
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场