【汇编语言与计算机系统结构笔记04】80x86计算机组织、保护模式、存储器、寄存器、计算机系统结构金字塔
本次笔记内容:
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位。
- 为了新的工作方式和存储管理的需要,増加了一些用于控制的寄存器。
- 数据寄存器:16位80x86处理器原有的4个通用数据寄存器扩展为32位,命名为EAX、EBX、ECX和EDX。仍然可以使用原有的16位和8位寄存器,如AX、BX、CX、DX、AH、AL、BH、BL等,形式如下图。
地址寄存器:原有的4个主要用于内存寻址的通用寄存器同样扩展为32位,命名为ESI、EDI、EBP、ESP。在实地址模式下仍然可以使用原有的16位寄存器SI、DI、BP和SP。
指令指针寄存器扩展为32位,更名为EIP,实地址下仍然可以使用它的低16位IP。
- 在原有的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计算机组织、保护模式、存储器、寄存器、计算机系统结构金字塔相关推荐
- 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码
本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...
- 【OS学习笔记】二十八 保护模式八:任务切换对应的汇编代码之内核代码
本汇编代码对应以下两篇文章对应的内核汇编代码: OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 ...
- 【OS学习笔记】二十五 保护模式七:任务和特权级保护对应的汇编源代码
本汇编代码是以下两篇文章讲解的内容的内核代码; [OS学习笔记]二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念 [OS学习笔记]二十四 保护模式七:调用门与依从的代码段----特权级保护 ...
- 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码
本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...
- 【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务
上一篇文章学习了:OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 本篇文章接着上一篇文章学习中断任务. 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通 ...
- 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门
上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...
- 【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码
本汇编代码对应以下两篇文章对应的用户程序汇编代码: [OS学习笔记]二十六 保护模式八:任务门-任务切换 [OS学习笔记]二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中 ...
- 【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码
本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的内核汇编代码. ;代码清单16-1;文件名 ...
- 【OS学习笔记】二十六 保护模式八:任务门---任务切换
上一篇文章学习了:保护模式七:调用门与依从的代码段----特权级保护 主要学习了以下内容: 描述符特权级(目标对象的特权级)DPL 描述符特权级(目标对象的特权级)DPL 当前特权级CPL 低特权级的 ...
最新文章
- Loader 入门【Webpack Book 翻译】
- shell 使用数组作为函数参数的方法
- 前端学习(2687):重读vue电商网站8之设置弹框提示组件
- python找图里的环_python判断无向图环是否存在的示例
- 自然语言处理实践Task6
- _.findIndex(array, [predicate=_.identity], [fromIndex=0])
- java初学。加载图片
- C语言趣味小游戏——扫雷(详解版)
- MonkeyEye电影售票系统--系统顺序图
- 计算机电源可调电阻,电脑ATX电源改0V-30V可调电源,电流7A
- 下一代CRM是怎么样的?
- 2018ACM-ICPC 焦作站现场赛 F. Honeycomb(BFS求最短路,卡memset)
- Typora、Markdown中的公式,颜色汇总
- ZYNQ RFSoc开发板-usrp软件无线电X410mini开发板-5G评估板
- [墨者学院] 日志文件分析溯源(脱裤的IP地址)
- 蒙特卡罗MCNP学习汇总(二)--几何体基础,构建几何体
- 面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下
- 抖音低俗内容被处罚:账号重新评估,投稿不推荐该怎么办丨国仁网络
- 因为删除 c:\windows\Installer目录下的文件, SQL Server 2014 SP2 打补丁失败
- 手把手教你 SSM 整合(非常非常非常非常非常详细)
热门文章
- 【Hive】Hive的数据类型
- 【Linux】centos7安装bcp报错
- 【Oracle】truncate分区表
- 网络管理与维护作业2
- SSM 生成mapper中xml文件:未能解析映射资源:“文件嵌套异常
- IOS图像拉伸解决方案
- vue父组件引用子组件方法显示undefined问题原因及解决方法
- IntelliJ检查给出“无法解析符号”但仍编译代码
- Win10电脑如何设置环境变量
- boost::bind with ros service,ros中ServiceServer用boost::bind绑定多个参数