本次笔记内容:
05.80x86计算机组织

文章目录

  • 计算机系统
  • 存储器 / 主存(main memory)
  • 80x86处理器与保护模式
    • 历史
      • 8086 / 8088 微处理器
      • 80186和80286微处理器
      • 80286 CPU基本工作方式
    • 32位80x86微处理器
      • 80386微处理器
      • 80x86的三种工作模式
      • 32位微处理器的寄存器
        • 保护模式下的80x86(段模式)
        • 寄存器与处理器的比较
        • 计算机体系结构金字塔

计算机系统

如上图,CPU与主存间,通过一个bridge(总线)相连。上图还是比较抽象的,当前,CPU的一个趋势是,集成程度越来越高。

CPU中,PC即当前指令的地址,ALU是arithmetic and logic unit即计算路径。目前Memory Control、集成显卡等已经集成到CPU中了。

现在即便集成度(晶体管)提升,但性能并没有提升。因为程序往往是串行的,并行性有限。

上图中,在代码被从Disk中load到主存中,被CPU处理,再把信息投入显示器。

存储器 / 主存(main memory)

存储单元的地址和内容:

  • 存储器以字节(8 bit)为单位存储信息;
  • 每个字节单元有一个地址,从0编号,顺序加1;
  • 地址用二进制数表示(无符号整数,写成十六进制);
  • 一个32位字要占用相继的四个字节,低位字节存入低地址,高位字节存入高地址;
  • 机器以字对齐地址访问(读/写)存储器;
  • 字单元地址用它的低地址来表示。

80x86处理器与保护模式

历史

8086 / 8088 微处理器
  • 8086是由ntel于1978年设计的微处理器;
  • Intel公司在推出8086之后,推出了介于16位与8位之间的准16位微处理器8088;
  • 8088与8086之间的区别主要在于8088对外只有8根数据线引脚,访问16位的操作数需要两个总线周期;
  • 8088的这一特点使它能够十分方便地与8位接口芯片相连接;
  • 1980年,IBM公司使用8088成功地开发了16位微型计算机:IBM-PC。
80186和80286微处理器
  • Intel公司把大型计算机的技术融合到微处理器中,首先研制的80186在技术上并不十分成熟,没有获得广泛的应用;
  • 1982年Inte推出了增强型16微处理器80286,集成度达13万管/片,时钟频率提高到5MHz到25MHz,它的16条数据线和24条地址线相互独立,不再分时使用,可以寻址16M的地址空间;
  • 80286 CPU增加了运行多任务所需要的任务切换、存储管理和多种保护功能。
80286 CPU基本工作方式
  • 实地址方式:和8086一样使用20根地址线寻址1M的内存空间,DOS应用程序占用全部系统资源;
  • 保护方式:80286 CPU具有虚拟内存管理和多任务处理功能,通过硬件控制可以在多任务之间进行快速切换;
  • 80286 CPU的内部组成:总线接口部件BlU、地址单元AU、指令单元IU、总线单元BU、执行部件EU;
  • IBM公司以80286为CPU生产了著名的IBM-PC/AT微型计算机,它的许多技术被沿用至今。

32位80x86微处理器

80386微处理器
  • 1985年,Intel公司推出了第四代微处理器,32位的微处理器80386;
  • 片内集成27.5万个晶体管,时钟频率为16MHz到33MHz。具有32位数据线和32位地址线,32位通用寄存器;
  • 80386内部由中央处理器CPU、存储器管理部件MMU、总线接口部件BIU组成;
  • 80386有3种工作模式:实地址模式、虚地址保护式和虚拟8086模式。
80x86的三种工作模式

实模式: 操作相当于一个可进行32位快速运算的8086;

保护模式: 是80x86设计目标达到的工作模式,通过对程序使用的存储区采用分段、分页的存储管理机制,达到分级使用、互不相互干扰的保护目的。能为每个任务提供一台虚处理器,使每个任务单独执行,快速切换。

虚拟8086模式: 保护模式下同时模拟多个8086处理器。

32位微处理器的寄存器
  • 80x86微处理器由16位升级为32位后,它的寄存器也对应升级为32位。
  • 为了新的工作方式和存储管理的需要,増加了一些用于控制的寄存器。
  1. 数据寄存器:16位80x86处理器原有的4个通用数据寄存器扩展为32位,命名为EAX、EBX、ECX和EDX。仍然可以使用原有的16位和8位寄存器,如AX、BX、CX、DX、AH、AL、BH、BL等,形式如下图。

  1. 地址寄存器:原有的4个主要用于内存寻址的通用寄存器同样扩展为32位,命名为ESI、EDI、EBP、ESP。在实地址模式下仍然可以使用原有的16位寄存器SI、DI、BP和SP。

  2. 指令指针寄存器扩展为32位,更名为EIP,实地址下仍然可以使用它的低16位IP。

  1. 在原有的4个段寄存器(CS DS SS ES)基础上,增加了2个新的段寄存器FS和GS。段存器长度均为16位,其中13位代表内存段的一个编号,称为“段选择器”。
保护模式下的80x86(段模式)
  • 支持多任务处理;
  • 支持虚拟存储器。

在操作系统中有讲过。

**保护模式保护什么?**分清不同程序使用的存储区域,不允许随便使用别人的数据和代码。必要条件为:

  • 要标记每段存储区的所有者或被使用的权限级别;
  • 要标记使用者是谁(权限级别);
  • 中间环节:CPU要去判断此次访问是否合法。

在x86-32体系结构的保护模式下,一个内存地址是由段基地址、偏移地址两个要素构成的。

每个段的描述(即段描述符)由三个要素构成段基地址(32位)、段长度(20位,段长度单位为2^12)、访问权限。段描述符的长度为64位。

出于系统兼容原因,段寄存器只有16位,如何表示64位的段描述符?答:通过描述符表,将段寄存器中的高13位值作为索引来访问该表,从而获得64位的段描述符。

描述符表分为两类:GDT与LDT。

  • GDT是全局描述符表,主要存放操作系统和各任务公用的描述符。公用的数据和代码段描述符、各任务的TSS描述符和LDT描述符;TSS是任务状态段,存放各个任务私有运行状态信息描述符GDT register (GDTR),48 bit;
  • LDT是局部描述符表,主要存放各个任务的私有描述符(一个任务也可能分多个段,而一个段需要一个描述符,因此每个任务要有一个LDT);
  • 段寄存器:高13位用来指示描述符在描述符表中的索引号,低两位是表示使用描述符的特权级别。另外一位(T1)是GDT和LDT的信号量,如果T1=0,则使用GDT,如果T1=1,则使用LDT。

如上图,GDT只存储在GDTR中的。段寄存器记录了本段在GDT上的位置,从而访问,获取相应描述符。

如上图,当T1=1时,首先通过LDTR在GDT上找到LDT的描述符(LDT本身也需要一个描述符),接着,段寄存器再在LDT找到自己索引的的描述符x。

寄存器与处理器的比较
寄存器 存储器
在CPU内部 在CPU外部
访问速度块 访问速度慢
容量小,成本高 容量大,成本低
用名字表示 用地址表示
没有地址 地址可用各种方式形成
计算机体系结构金字塔

如上图,速度与容量(低成本)不可兼得。

缓存,把最近最常使用的数据集放在cache中,效率大大提高。速度、成本、容量居于上下层次间。

可以把塔中每三个层次的中间层视为上下层次间的缓存。

【汇编语言与计算机系统结构笔记04】80x86计算机组织、保护模式、存储器、寄存器、计算机系统结构金字塔相关推荐

  1. 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码

    本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...

  2. 【OS学习笔记】二十八 保护模式八:任务切换对应的汇编代码之内核代码

    本汇编代码对应以下两篇文章对应的内核汇编代码: OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 ...

  3. 【OS学习笔记】二十五 保护模式七:任务和特权级保护对应的汇编源代码

    本汇编代码是以下两篇文章讲解的内容的内核代码; [OS学习笔记]二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念 [OS学习笔记]二十四 保护模式七:调用门与依从的代码段----特权级保护 ...

  4. 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码

    本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...

  5. 【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务

    上一篇文章学习了:OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 本篇文章接着上一篇文章学习中断任务. 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通 ...

  6. 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门

    上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...

  7. 【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码

    本汇编代码对应以下两篇文章对应的用户程序汇编代码: [OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中 ...

  8. 【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码

    本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的内核汇编代码. ;代码清单16-1;文件名 ...

  9. 【OS学习笔记】二十六 保护模式八:任务门---任务切换

    上一篇文章学习了:保护模式七:调用门与依从的代码段----特权级保护 主要学习了以下内容: 描述符特权级(目标对象的特权级)DPL 描述符特权级(目标对象的特权级)DPL 当前特权级CPL 低特权级的 ...

最新文章

  1. Loader 入门【Webpack Book 翻译】
  2. shell 使用数组作为函数参数的方法
  3. 前端学习(2687):重读vue电商网站8之设置弹框提示组件
  4. python找图里的环_python判断无向图环是否存在的示例
  5. 自然语言处理实践Task6
  6. _.findIndex(array, [predicate=_.identity], [fromIndex=0])
  7. java初学。加载图片
  8. C语言趣味小游戏——扫雷(详解版)
  9. MonkeyEye电影售票系统--系统顺序图
  10. 计算机电源可调电阻,电脑ATX电源改0V-30V可调电源,电流7A
  11. 下一代CRM是怎么样的?
  12. 2018ACM-ICPC 焦作站现场赛 F. Honeycomb(BFS求最短路,卡memset)
  13. Typora、Markdown中的公式,颜色汇总
  14. ZYNQ RFSoc开发板-usrp软件无线电X410mini开发板-5G评估板
  15. [墨者学院] 日志文件分析溯源(脱裤的IP地址)
  16. 蒙特卡罗MCNP学习汇总(二)--几何体基础,构建几何体
  17. 面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下
  18. 抖音低俗内容被处罚:账号重新评估,投稿不推荐该怎么办丨国仁网络
  19. 因为删除 c:\windows\Installer目录下的文件, SQL Server 2014 SP2 打补丁失败
  20. 手把手教你 SSM 整合(非常非常非常非常非常详细)

热门文章

  1. 【Hive】Hive的数据类型
  2. 【Linux】centos7安装bcp报错
  3. 【Oracle】truncate分区表
  4. 网络管理与维护作业2
  5. SSM 生成mapper中xml文件:未能解析映射资源:“文件嵌套异常
  6. IOS图像拉伸解决方案
  7. vue父组件引用子组件方法显示undefined问题原因及解决方法
  8. IntelliJ检查给出“无法解析符号”但仍编译代码
  9. Win10电脑如何设置环境变量
  10. boost::bind with ros service,ros中ServiceServer用boost::bind绑定多个参数