之前,我们给出了计算机系统模型,它并不特别针对某一种具体的计算机系统,只是为读者快速搭建一个深入计算机系统底层的框架。并且,在上一章中,着重介绍的是整个计算机系统的基本组成以及它的工作原理。由于CPU是计算机系统中的核心部件,机器指令的执行是由它来完成的,因此,细化理解CPU的基本结构以及它的工作原理成为学习指令系统的基础。本章将针对8086/8088CPU芯片,介绍其基本构成与工作原理,为学习下一章的80868088CPU指令系统做好准备。读者应当注意,这一章的内容组织与之前所学习的不同,一方面,它着重介CPU这一个功能模块的结构和原理,而不是整个计算机系统;另一方面,它针对的是特定型号的CPU芯片,而不是一般化的模型。

CPU

8086、8088两种CPU芯片的区别主要在于数据引脚的数量,也即它们所连接的数据总线宽度。8086能够连接16位数据总线,一次总线操作最多可以读取一个字(在80868088中为16位)的数据量,而8088只能连接8位数据总线,一次总线操作最多只能读取一个字节(8位)。但这两种CPU芯片的内部结构几乎是完全一致的,CPU内部能够并行处理的最大二进制位数都是一个字。接下来我们将了解8086/8088CPU芯片的基本结构与它们的工作原理。想要知道芯片的基本结构即工作原理,我们需要知道以下六点。1.基本的流水线结构从图4.1.1可以看到,CPU内部结构分为BIU和EU两个功能模块。其中BIU的全称为 Bus Interface Unit,即总线接口单元,其主要功能是实现CPU与系统总线的信号连接、数据交换。所有与总线操作相关的时序过程都由BIU模块执行,其中最频繁的是内存单元、端口的数据读写操作;所有有关物理地址的计算机过程也由BIU完成。EU的全称为Execute Unit,即执行单元,它的主要功能为解释并执行指令。将CPU分为两个功能模块的目的在于读取指令与执行指令这两个步骤能够在时间上重叠,从而基本实现流水线结构。

2.指令队列

指令队列这一部件位于BIU模块,它具有多个字节的存储单元。每次BU模块启动读取下一条指令的操作后,将所读取到的指令(字节数随不同指令而变化)暂存在指令队列中。只要总线出现空闲,BIU模块就会自动启动读取指令的时序操作,直到指令队列填充满为止。位于EU中的控制器会将指令队列中的机器指令操作码字段读取出来,并译码生成相应控制信号,从而执行指令。指令队列中的机器指令被读取的顺序按照先进先出FIFO的队列结构原则,最先由BIU保存在指令队列中的指令,最先被EU读出执行。应当注意,读取指令这一时序过程与执行指令无关,它是由BIU自动启动的,因而指令队列与我们后面将要介绍的寄存器组不同,它们不能被机器指令访问。换言之,我们在设计汇编语言程序时,不能操作指令队列,它是由CPU自动管理的。

3.控制器控制器位于CPU的EU模块,它是CPU的控制中心,无论是作用于CPU内部的控信号,还是CPU发送到系统总线的控制信号,几乎全部在这里产生,而产生控制信号的依据则来源于对机器指令操作码字段的译码。由于本教材只说明CPU工作的基本原理,因此指令译码器的原理与设计方法请读者参阅《计算机组成原理》相关教材。控制器按照机器指令规定的时序产生控制信号,如果控制信号需要发送到控制总线,则控制器将这些控制信号传送到BU模块的总线控制逻辑这一部件,由总线控制逻辑将控制信号传递到控制总线。4.地址加法器地址加法器位于BIU模块,它的功能是由逻辑地址计算物理地址,并最终由该器件将物理地址传送到BIU的总线控制逻辑,再由总线控制逻辑将物理地址传送到地址总线。在说明地址加法器的运算原理前,我们将先说明逻輯地址的概念,以及CPU对内部存储器的分段管理方式。我们已经说明了8086/8088CPU能支持的地址总线宽度以及物理地址范围,8086/8088CPU能支持的地址总线宽度为20位,对于内部存储器而言,其寻址范围为1M字节,而访问端口时仅使用地址总线的低16位,因而端口寻址范围为64K字节。在CPU内部,所有寄存器的二进制位数最大为16位,因此,没有哪一个寄存器能够存放20位的物理地址。那么,我们如何在CPU内部表达外部存储单元的物理地址呢?为了协调CPU内外地址位数的差异,8086/8088CPU采用了对存储器的分段管理方式,并使用逻辑地址为CPU内部的物理地址表达形式。首先,解释段的概念,一个段是指位于内部存储器中的一块连续存储空间,它由物理地址连续的多个字节单元构成。那么,何谓逻辑地址?它与物理地址的关系又是怎样的呢?逻辑地址由两个16位的地址分量构成,其中一个为段基址,另一个为偏移量,两个分量均为无符号数编码。逻辑地址转换为物理地址运算过程可表示:

段基址=段基值 * 16

物理地址=段基址+偏移量

首先,16位的段基址左移4位,低位补充4个0,相当于乘以24,得到20位的段基址。段基址为20位,已经可以理解为物理地址,但它仅是一个段的起始地址,要使CPU能够定位段内的所有内存单元,那么必须在段基址的基础上加上偏移量。偏移量的含义为距离段基址的偏移字节数。偏移量指定不同,那么所访问的内存单元也就不同。应当注意,20位的段基址与16位的偏移量相加,是低位对齐的加法,加法结果即为20位物理地址。我们还应当注意,任意指定一个确定的逻辑地址,那么经过式(4.1.1)转换后得到的物理地址是唯一的,换言之,给定一个逻辑地址,就能唯一地定位一个内存单元。但是相反的转换过程并不能得到唯一的结果,给定一个物理地址,我们并不能得到唯一的段基址、偏移量分解,好在这种逆转换在系统内是没有用途的,地址加法器也只实施由逻辑地址到物理地址的转换那么,既然在CPU内部使用的是逻辑地址,相应地,我们在进行汇编语言程序设计时所使用的内存单元地址也就是逻辑地址,而非物理地址。物理地址仅在CPU执行总线操作时出现,换言之,物理地址存在于程序的执行阶段,而非程序的设计阶段。对端口地址而言,由于其仅使用地址总线的低16位,因此,逻辑地址等同于物理地址,我们不去区分它们地址加法器所完成的操作就是将逻辑地址转换为物理地址后,提交给总线控制逻辑。这样的地址转换可能发生在BU读取指令时,也可能发生在EU执行指令时,还可能发生在其他的时序过程中。最后,读者也许会问:段基值与偏移量分别保存在CPU的什么位置呢,它们是怎样计算得到的呢?CPU中提供了一个段寄存器组,段基值就是由这一组16位段寄存器提供的。而偏移量的获取方式则丰富得多,也复杂得多,它们既可以来自于机器指令中的位移量字段,也可以来自于指令指针寄存器,或者有几种分量相加而得到。有关偏移量的获取方式,我们将在以后分析寻址方式时详细讨论。

地址

5.运算器运算器位于CPU的EU模块,用于完成机器指令要求的算术运算、逻辑运算功能,是CPU内的运算中心,最大支持双操作数运算,例如两个操作数相加或相减等,它除了完成机器指令指定的数据运算外,还可用于生成逻辑地址中的偏移量分量。若为数据运算,其操作数可能来源于数据寄存器、内存单元、指令中的立即数;若为偏移量运算,其操作数均解释为偏移量分量,来源于地址指针寄存器、指令中的位移量。如果机器指令有这样的要求,运算器会将运算过程和运算结果的某些性质按照标志位的形式保存到标志寄存器。有关运算器的详细原理,我们将在第5章学习基本指令系统时体会到6.总线控制逻辑总线控制逻辑位于BIU模块,用于控制在适当的时刻向总线传递相应信号,或从总线上接受相应信号,CPU只能通过总线控制逻辑才能与系统总线实现信号交互。由于总线控制逻辑是CPU自动进行管理的,我们的指令没办法直接操作该器件,因此在这里不详述其原理,读者可参阅《计算机组成原理》相关教材。

这就是CPU的基本原理及其运行的原理

举报/反馈

简述8086计算机工作原理,8086/8088CPU的基本结构与其工作原理相关推荐

  1. 2 计算机控制器的组成,组合逻辑控制器组成结构及工作原理解析

    组合逻辑控制器组成结构及工作原理解析 按照控制信号产生的方式不同,控制器分为微程序控制器和组合逻辑控制器两类 微程序控制器是将全部控制信号存贮在控制存储器中. 优点:控制信号的逻辑设计.实现及改动都较 ...

  2. 车用计算机内部结构图,汽车电脑的基本结构和工作原理

    汽车电脑控制系统所用的计算机通常为微型计算机.基于大规模集成电路的 这样以微处理器为核心,加上存储器.i/o接口电路和外部设备,通过系统总线(地址总线.数据总线和控制总线)所组成的汽车使用计算机称为汽 ...

  3. 计算机播放音乐原理,电脑声卡的基本结构和工作原理

    从最早的"声霸卡"到现在开始流行的7.1声道多媒体声卡,以及精确到192kHz/24bit的专业多声道录音卡,声卡的硬件结构有很大的差异,采用的控制芯片和AD/DA芯片更是千差万别 ...

  4. 计算机系统组成及工作原理PPT,第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示....

    Presentation on theme: "第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示."- Presen ...

  5. 微机原理8086/8088——指令系统与寻址方式

    微机原理8086/8088概念系列 微机原理8086/8088--微型计算机组成 微机原理8086/8088--微处理器功能结构 微机原理8086/8088--内部寄存器 微机原理8086/8088- ...

  6. 简述使用计算机对会计工作的影响,简述使用计算机对会计工作的影响。

    简述使用计算机对会计工作的影响. 更多相关问题 [多选] 创新战略的层面有(). [单选] ()是对现有产品.流程.方法的所做的渐进式改善,使得现有产品或功能有进一步的改善.更方便或更为便宜. [单选 ...

  7. 计算机原理说课教案,《计算机系统及工作原理说课稿》

    <<计算机系统及工作原理>说课稿.doc>由会员分享,可免费在线阅读全文,更多与<<计算机系统及工作原理>说课稿>相关文档资源请在帮帮文库(www.wo ...

  8. 微机原理——8086中断类型以及中断向量表、中断响应、中断返回

    博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问. 目录 先验知识回顾 控制 ...

  9. 计算机工作原理 课件,计算机的基本结构和工作原理ppt课件.ppt

    文档介绍: 第二章计算机的基本结构和工作原理计算机的体系结构精简指令集计算机与复杂指令集计算机 计算机的并行技术 指令流水线技术 计算机系统的性能测评Date1计算机体系结构是程序员所看到的计算机的属 ...

最新文章

  1. ascii码值为负数_作为2020年的程序员,你还在为编码问题困惑?
  2. 读取CSV内容,根据不同的图片标签放到指定文件夹
  3. 产品经理专业知识50篇(五)-用户成长体系设计方案
  4. Jupyter notebook应用总结
  5. Android中用OpenGL ES Tracer分析绘制过程
  6. 【linux】——FTP出现500 OOPS: cannot change directory的解决方法
  7. 2017年国家公务员考试行测错题集(省级)
  8. 科学技术法-正则表达式-QT
  9. 仿真软件测试基尔霍夫定律,基尔霍夫定律的仿真验证.ppt
  10. 记录Nacos下载安装和使用
  11. 2.1、函数的返回值
  12. HTML5期末大作业:校园网站设计——云南艺术学院文化学院(3页) HTML+CSS+JavaScript web前端开发技术 web课程设计 网页规划与设计
  13. okhttp的应用详解与源码解析--android网络请求框架发展史
  14. C/CPP基础练习题(二)简单循环(2 + 22 + 222…;斐波那契数列)
  15. 学习笔记-Java并发(一)
  16. 解决 Windows Defender might be impacting your build performance. PyCharm checked the following directo
  17. 操作系统(程序员必学简化版)
  18. KM算法解决二分图最大权分配问题
  19. python中list线程安全问题
  20. SPSS Modeller破解版安装

热门文章

  1. 金仓数据库 KingbaseES 客户端登录方式
  2. 利用postman完成JSON串的发送功能(springboot)
  3. OSChina 周五乱弹 ——程序员的年龄天花板到底是多少岁?
  4. c语言 json数组长度,js 获取json数组里面数组的长度
  5. 21 JS数组的基本操作——数组长度
  6. 我们需要什么样的机器人
  7. 如何使用cad转换器进行图纸文件的版本转换操作?
  8. 为什么唱吧iOS 6.0选择了Mantle
  9. 基于SSH的中学学生学籍信息管理系统
  10. 安卓手机不能开机 怎么备份 联系人 短信 通话记录