80x86微处理器结构及其工作模式

80X86是一系列微处理器

微处理器又称为中央处理单元,即CPU,是一块集成电路芯片。它是微型计算机的核心组成部分。

既然微处理器是微型计算机的核心,那么我们有必要先来简单地讨论一下微型计算机。

微型计算机:

微型计算机是指以微处理器为核心,配上存储器、输入/输出接口电路等所组成的计算机(又称为主机)。

微型计算机系统是指以微型计算机为中心,配以相应的外围设备、电源和辅助电路(统称硬件)以及指挥电路工作的系统软件所构成的系统。即,与一般的计算机系统一样,微型计算机系统也是由硬件和软件两部分组成的。

下面,我将介绍一些微型计算机系统中所涉及的基本概念,可能每个概念之间暂时没有很明显的关联,但是,本着不用就不提的原则,尽量将所提到的知识点都串起来形成一个易于理解的简单知识框架。

就像大脑控制着人工作一样,

CPU控制着整个计算机的运作并进行运算。要想让一个CPU工作就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存(以下如果没做特别声明,所提到的存储器就是指内存)。磁盘不同于内存,如果磁盘上面的数据或程序不被读入内存,就无法被CPU使用。

指令和数据是应用上的概念,指令和数据没有任何区别,都是二进制信息。 CPU在工作时把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的含义。

存储单元:存储器被划分成若干个存储单元,一个存储单元存储一个字节的信息,也就是8个二进制位。

有以下单位换算:

1B = 8个二进制位
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

每个存储单元从0开始顺序编号,这些编号可以看作存储单元在内存中的地址。如下图是一个拥有128个存储单元的存储器:

CPU工作时经常要从内存中读取数据或者向内存中写入数据,这个过程需要CPU和存储器之间进行地址信息、数据信息和控制信息交互。

那么,CPU是通过什么将这三种信息传到存储器芯片中的呢?电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。

在计算机中有专门连接CPU和其他芯片的导线,通常称为总线。总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为地址总线、控制总线和数据总线三类。

总线可以是带状的扁平电缆线,也可以是印刷板上一层极薄的金属连线。

CPU从内存单元读取数据的过程如下图:

(1)CPU通过地址线将地址信息3发出

(2)CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据。

(3)存储器将3号单元中的数据08通过数据线送入CPU。

写操作与读操作类似!如向3号单元写入数据2,则步骤为:

(1)CPU通过地址线将地址信息3发出。

(2)CPU通过控制总线发出内存写命令,选中存储器芯片,并通知它,要向里面写数据。

(3)CPU通过数据总线将数据2送入内存的3号单元中。

下面我们来简单介绍一下这三种总线,

地址总线AB:在对存储器或I/O端口进行访问时,传送由CPU提供的要访问的存储单元或I/O端口的地址信息。AB是单向总线。

一个CPU有N根地址线,则可以说这个CPU的地址总线宽度为N,这样的CPU可以寻找2的N次方个内存单元。

数据总线DB:CPU与内存或其他器件之间的数据传送是通过数据总线来完成的,数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可传送一个字节。8088CPU的数据总线宽度为8,8086CPU的数据总线宽度为16。

例如,CPU想向内存中写入数据89D8。

因为8088一次只能传送一个字节的数据也就是8位,所以它要分两次传送,第一次传送D8,第二次传送89。但是8086有16根数据总线,可以传送两个字节的数据,所以可一次性将数据89D8传入内存。DB是双向总线

控制总线CB:控制总线是一些不同的控制线的集合。有多少根控制总线就意味着CPU提供了对外部器件的多少种控制,控制总线的宽度决定了CPU对外部器件的控制能力。

我们知道,CPU由运算器(ALU)、控制器(CU)和内部寄存器(R)三部分组成。

控制器:

控制器是全机的指挥中心,它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以完成程序所要求的功能。控制器包括以下几个部分:

a.指令寄存器IR:用来存放从存储器取出的将要执行的指令码。

当执行一条指令时,先把它从内存取到数据缓冲寄存器DR中,然后再传送到指令寄存器IR中。

b.指令译码器ID:对指令寄存器IR中的指令操作码字段进行译码,以确定该指令执行什么操作。

需要说明的是,指令通常由操作码和操作数两部分组成。操作码表示该指令完成的操作,操作数表示参加操作的数本身或操作数所在地址。

c.可编程逻辑阵列PLA:用于产生取指令和执行指令所需要的各种微操作控制信号,并经过控制总线CB送往有关部件,使计算机完成相应的操作。

内部寄存器:

1)程序计数器PC:程序计数器有时也被称为指令指针(IP),IP一般都是由CPU自动修改加一,使其总是存放下一条要执行的指令所在存储单元的地址。但当遇到跳转等改变程序执行顺序的指令时,PC(IP)将从指令寄存器IR

中的地址字段得到。

2)地址寄存器AR:用来存放正要取出的指令的地址或操作数的地址。

3)数据缓冲寄存器DR:用来暂时存放指令或数据。它是CPU和内存、外部设备之间信息传送的中转站,用来补偿CPU和内存、外围设备之间在操作速度上存在的差异。

4)累加器:用来暂时存放ALU运算结果。

5)标志寄存器FLAGS:有时也称为程序状态字(PSW)。编写程序时,可以通过测试有关标志位的状态(1或0)来决定程序的流向。

6)寄存器阵列:寄存器阵列实际上就相当于CPU内部的RAM,可避免CPU频繁的访问存储器,提高机器的运行速度。不同类型的CPU的寄存器阵列规模大小会有所不同。

CPU还有一个组成部分是运算器(算数逻辑单元ALU),运算器的主要作用就是运算嘛,参加运算的两个操作数一个来自累加器A,一个来自内部数据总线,可以是缓冲寄存器中的内容,也可以是寄存器阵列中某个寄存器中的内容。

在这里我们对内存的描述就只是在需要用到某个概念的时候就简单介绍一下,由于它所含信息量过多,这儿不做详细的说明。

在每个PC机中,都有一个主板。主板上有核心器件和一些主要器件,这些器件通过总线相连。这些器件有CPU、存储器、外围芯片组、扩展插槽等。扩展插槽上一般插有RAM内存条和各类接卡口。

CPU对外部设备都不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展槽上的接卡口。扩展槽通过总线和CPU相连,所以接卡口也通过总线和 CPU相连。CPU通过总线向接卡口发送命令,接卡口根据命令控制外设工作。

好了,对于微型计算机的硬件我们就先简单介绍到这里,主要描述了主机上的CPU所涉及到的一些硬件概念。对于系统中的其他硬件例如,外围设备,以及主机上的存储器、I/O接口与输入输出设备等。

同时,软件也是微型计算机系统不可缺少的组成部分,软件包括系统软件和用户(应用软件)。系统软件是不需要干预的,为其他程序的开发、调试以及运行等建立一个良好环境的程序。它主要包括操作系统和系统应用程序。

微型计算机的工作过程:

1) 把第一条指令所在存储单元的地址赋给程序计数器PC。

2)取址,得到指令

3)对指令的操作码字段进行译码,发出执行指令的微操作控制信号。

4)执行指令,完成指令所规定的操作。

对微型计算机系统做了一些简单的了解以后,我们对微处理器的工作情景也就更为熟悉,让我们先来看一幅处理器内部寄存器的轮廓图。

这块儿说明一下,做图片的时候由于考虑不周,图片比例没调好,显示出来特别小,可以把缩放率调大一点再看图,例如,Ctrl + 四下,哈哈!!

我们注意到上述多次提到段地址、段寄存器,这两个名词中包含者“段”这个概念,下面我们就来简单说明一下,什么是段。

8086CPU用 基础地址(段地址×16)+偏移地址 = 物理地址 的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。

为了防止不理解,我这里再重申一遍。也就是说,实际内存中并没有分段,段的划分来自于CPU,只是CPU自己用段地址和偏移地址来表示物理地址而已。

以后,在编程时可以根据需要,将若干地址连续的内存单元看作一个段。这里的编程指的是汇编语言编程。需要注意的是,由于段地址×16必然是16的倍数,所以一个段的起始地址也一定是16的倍数。偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB。

那么,基础地址为什么一定要是 段地址×16不是乘其他数呢?由于地址总线是20位的,所以CPU在对内存访问时,必须提供一个20位的地址信息给地址总线。又因为段地址存放在16位的段寄存器中,所以必须×16(10H),即左移四位才能使之变成20位的基础地址,再加上偏移量就能定位到具体的物理内存单元了。

本来想着用一篇博客的内容就把8086微处理器大致介绍完,但是写着写着才发现牵扯的内容实在太多,一不小心就跑远了。下面我以从功能上划分8086微处理器为结尾,暂时先把简单概念介绍到这里,至于具体的堆栈操作以及中断和工作模式等概念和它们所用到的一些基础的汇编语言指令,只好在下篇再作介绍。

CPU从功能上可分为两大部分:

1.总线接口单元BIU:

总线接口单元BIU的功能是负责完成CPU与存储器或I/O设备之间的数据传送。

2.执行单元EU:

执行单元不与系统外部直接相连,它的功能只是负责执行指令。执行的指令从BIU的指令缓冲队列中直接得到。执行指令时若需要从存储器或I/O端口读写操作数,由EU向BIU发出请求,再由BIU对存储器或I/O端口进行访问。

总之就是,BIU负责与系统外部交互,EU负责一心一意的执行指令。

时间: 2024-08-25 00:07:44

80x86微处理器结构及其工作模式的相关文章

epoll的两种工作模式

epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知. 以代码来说明问题: 首先给出server的代码,需要说明的是每次accept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据: Java代码   #include <

自己学Docker:4.開始了解Docker的工作模式

上一章在学习中有2个疑问: 怎样保存我们在容器里的改动? 假设apt-get假设不能安装时,怎样在Docker中安装软件? 关于run创建的容器问题 对于第一个问题.原来每次运行(当非root用户时,须要在命令前加sudo) sudo docker run -i -t docker/whalesay /bin/bash 都会创建一个新的容器,这一点应该是明白的. 可是退出时,创建的容器并没有被删除,还是存在与系统中的.通过, sudo docker ps -a 能够查看. 列表中.第一列CONT

分组密码的工作模式

分组密码工作模式的应用背景:多次使用相同的密钥对多个分组加密,会引发许多安全问题.为了应对不同场合,因而需要开发出不同的工作模式来增强密码算法的安全性. 1.ECB(Electronic Code Book) 特别适合数据较少的情况,对于很长的信息或者具有特定结构的信息,其大量重复的信息或固定的字符开头将给密码分析者提供大量的已知明密文对.若明文不是完整的分组,ECB需要进行填充. 2.CBC(Cipher Block Chaining) 由于加密算法的每次输入和本明文组没有固定的关系,因此就算

4.802.11协议笔记:PCF工作模式

序 在前面我们叙述过,在802.11的MAC层中,分成了两种基本工作模式: DCF(Distributed Coordination Function) PCF(Point Coordination Function) 我们已经介绍过了DCF的工作模式,而PCF模式当前只有协议中进行了规范,而在实际产品中几乎很少见到.所以就像在802.11权威指南和CWNA书本中所述一样,对于PCF的机制仅仅是协议规定,而几乎没有产品,所以纯粹对协议希望有深入了解的话,那么才需要对此进行阅读.这里仅仅是将笔者读

分组加密的工作模式

分组加密算法把数据分成固定长度的分组处理,算法的输入长度为一个分组的长度.为了改善安全性,适应不同的应用环境,分组加密有多种不同的工作模式.最常见的四种工作模式是:ECB,CBC,CFB,OFB. ECB模式, ECB模式是最简单的基本模式.在密钥的控制下,把一个分组长度的输入,转换为一个分组长度的输出.一个分组算法设计出来就是ECB模式的.这一模式用于实际应用加密的问题是,容易遭受字典攻击.ECB模式下,只要密钥确定了,相同明文一定输出相同密文.这一特性如同谍战片里的替换密码本,一字对一字.这

web的工作模式

Web的工作模式是B/S模式的,(Browser/Server结构)结构即浏览器和服务器结构.它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构.在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构.这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO).以目前的技术看,局域网建立B/S结构的网络应用,并通过I

LVS三种工作模式、十种调度算法介绍

工作模式介绍:1.Virtual server via NAT(VS-NAT)优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址.缺点:扩展性有限.当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生.假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的

ARM之工作模式

前言            以下内容是个人学习之后的感悟,转载请注明出处~ ARM工作模式 ARM工作模式根据功能不同,可分为7类: User Mode:用户模式.操作系统的Task一般以这种模式执行.User Mode是ARM唯一的非特权模式,这表示如 果CPU处于这种模式下,很多指令将不能够执行,因此操作系统的资源得以保护. System Mode:这是V4及其以上版本所引入的特权模式. IRQ Mode:中断模式.中断(不包括软中断)处理函数在这种模式下执行. FIQ Mode:快速中断模

嵌入式中 ARM的几种工作模式 以及异常模式的优先级

一.Arm工作模式: Arm微处理器支持7种工作模式,分别为: 1. 用户模式(Usr)            用于正常执行程序 2. 快速中断模式(FIQ)    用于高速数据传输 3. 外部中断模式(IRQ)   用于通常的中断处理 4. 管理模式(SVC)          操作系统使用的保护模式(高权限),复位和软件中断进入 5. 数据访问终止模式(abt)   当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护 6. 系统模式(sys)            运行均有特权的操作