Intel-8088/8086微处理器

8086微处理器也被称为x86,开创了X86架构时代,同时也成就了英特尔、AMD、微软等国际企业。

简介

前言历史

1972年4月,由霍夫与费金研制的世界上最早的8位微处理器英特尔8008(8位)芯片问世。在13.8平方毫米的芯片上做出了能执行45种指令的中央处理器,它能同时对8个二进制数字进行传送和运算。

1973年8月,霍夫等人又研制出英特尔8080型微处理器,它的运算速度比4004型要快20倍。研制8080型芯片最初只是为了对8008型芯片进行改进,但当时速度较快的新型MOS金属氧化物半导体电路出现了,霍夫和费金把MOS电路应用到8080型芯片上,一举成功,成为第二代微处理器,它是有史以来最为成功的微处理器之一。

8080(8位)的华服之下,更是金玉其中:集成6000只晶体管,几乎是4004的三倍,每秒运算29万次,拥有16位地址总线和八位数据总线,包含7个八位寄存器,支持16位内存,同时它也包含一些输入输出端口,这也是一个相当成功的设计,有效解决了外部设备在内存寻址能力不足的问题。

与第一代微处理器相比,集成度提高了1~4倍,运算速度提高了近20倍,指令系统相对比较完善,已具备典型的计算机体系结构及中断、直接存储器存取等功能。

摩尔/钟摆定律

1、摩尔定律,听起来应该是一个叫“摩尔”的人提出来的理论。摩尔,这个名字听起有些耳熟,没错,这个摩尔就是戈登·摩尔,英特尔公司创始人之一。
1965年戈登·摩尔在《电子学》杂志(Electronics Magazine)第114页发表了影响科技业至今的摩尔定律:

  • 1、集成电路芯片上所集成的电路的数目,每隔18个月就翻一番。
  • 2、微处理器的性能每隔18个月提高一倍,而价格下降二分之一。
  • 3、用一个美元所能买到的电脑性能,每隔18个月翻两番。

2、与摩尔定律齐名的,还有著名的英特尔钟摆策略:

  • 在奇数年,英特尔将会推出新的工艺;(制程工艺:芯片制造工艺在1995年以后,从500纳米、350纳米、250纳米、180纳米、150纳米、130纳米、90纳米、65纳米、45纳米、32纳米、28纳米、22纳米、14纳米、10纳米、7纳米,一直发展到未来的5纳米。)
  • 在偶数年,英特尔则会推出新的架构(处理器架构:是CPU厂商给属于同一系列的CPU产品定的一个规范,目的是为了区分不同类型CPU的重要标示。Intel系列CPU产品常见的架构有Socket 423、Socket 478、Socket 775、Socket1366、Socket1156、Socket1155、Socket1150和Socket2011)。

英特尔钟摆策略Tick-Tock(工艺年-构架年)是英特尔的芯片技术发展的战略模式。这样在制造工艺和核心架构的两条提升道路上,总是交替进行,一方面避免了同时革新可能带来的失败风险,同时持续的发展也可以降低研发的周期,并可以对市场造成持续的刺激,并最终提升产品的竞争力。Tick指每隔两年的奇数年推出更小、更先进工艺的处理器;Tock指每隔两年的偶数年推出新架构的处理器。

X86

x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是微处理器执行的计算机语言指令集,指一个 Intel 通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。简单地说,x86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序。

x86的历史

1971 年,英特尔为一家日本计算器厂商制造了英特尔历史上的第一块处理器——4位的4004。很快,在1975年,英特尔又推出了8位处理器8008和8080。
3年以后,16位的8086初次登场。在上世纪80年代初,IBM选择了8086的衍生产品8088作为IBM PC的处理器。

x86或80x86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称。该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如Pentium。现时Intel把x86-32称为IA-32,全名为“Intel Architecture, 32-bit”。

“X86”是Intel和其他几家公司处理器所支持的一组机器指令集,它大致确定了芯片的使用规范。从8086到80186、80286、80386、80486,再到后来的奔腾系列以及现在的多核技术,都是使用一脉相承的x86指令集,既不断扩展又向后兼容。

8086

微型计算机组成结构图
在这里插入图片描述

8086是16位的微处理器、16位数据线、20位地址线、寻址2^20个字节=1MB
利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;

中断功能强,可处理内部软件中断和外部中断,中断源可达256个;

CPU的内部逻辑结构

1、总线接口部件(BIU)

总线接口部件负责与存储器、输入输出端口传送数据。

组成部分:

  • 专用寄存器组
    段地址寄存器(CS、DS、ES、SS和指令指针寄存器IP均为16位)
  • 地址加法器
    8086在寻址1M字节地址空间是需要20位的地址,地址加法器把两个16位的地址加为一个20位的地址(段地址左移4位+16位IP地址=20位物理地址)
  • 6字节的指令队列
    总线接口部件从内存中取来的指令放在一个缓冲区中,这个缓冲区叫指令队列,执行部件在执行指令过程中从指令队列取指令执行
  • 输入输出控制电路
    将8086CPU的片内总线与系统总线相连,是8086CPU与外部交换数据的必经之路

2、执行段元(EU)

执行部件负责执行指令,通常从指令队列中取得等待执行的指令

组成部分:

  • 算术逻辑单元ALU
    完成各种运算
  • 标志寄存器FR
    用来保存ALU运算结果的一些特征信息
  • 通用寄存器组
    数据寄存器(AX、BX、CX 、DX),寄存器(BP、SP、SI、DI均为16位)
  • 执行部件控制电路

3、寄存器组

如图就是8086的寄存器
在这里插入图片描述

BIU和EU可以并行工作,提高CPU的工作效率
1、BIU监视指令队列,当指令队列中有2个空字节时,就自动把指令取到队列中
2、EU执行指令时,从指令队列头部取指令,然后执行,如需访问存储器,则EU向BIU发出请求,由BIU访问存储器
3、在执行转移、调用、返回指令时,需要改变队列中的指令,要等待新指令装入队列中,EU才继续执行指令

CPU外部结构

8086/8088CPU芯片都是40引脚的双列直插式封装,部分引脚采用分时复用的方式
8086/8088CPU可有两种工作模式:最大模式和最小模式

在这里插入图片描述
1、最小模式

用于由8086单一微处理器构成的小系统。在这种方式下,由8086CPU直接产生小系统所需要的全部控制信号。器系统特点是:总线控制逻辑直接由8086CPU产生和控制。若有CPU以外的其他模块想占用总线,则可以向CPU提出请求,在CPU允许并响应的情况下,该模块才可以获得总线控制权,使用完后,又将总线控制权还给CPU。

2、最大模式

用于实现多处理机系统,其中,8086CPU被称为主处理器,其他处理器被称为协处理器。在这种方式下,8086CPU不直接提供用于存储器或I/O读写的读写命令等控制信号,而是将当前要执行的传送操作类型编码为3个状态位输出,由总线控制器8288对状态信号进行译码产生相应控制信号。最大模式系统的特点是:总线控制逻辑由总线控制器8288产生和控制,即8288将主处理器的状态和信号转换成系统总线命令和控制信号。协处理器只是协助主处理器完成某些辅助工作,即被动的接受并执行来自主处理器的命令。和8086配套使用的协处理器有两个:一个是专用于数值计算的协处理器8087,另一个是专用于输入输出操作的协处理器8089。8087通过硬件实现高精度整数浮点数运算。8089有其自身的一套专门用于输入输出操作的命令系统,还可带局部存储器,可以直接为输入输出设备服务。增加协处理器,使得浮点运算和输入输出操作不再占用8086时间,从而大大提高了系统的运行效率。

8086CPU引脚定义

1、AD15~AD0(addressdatabus):地址/数据总线,双向,三态。

这是一组采用分时的方法传送地址或数据的复用引脚。根据不同时钟周期的要求,决定当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻状态。

2、A19/S6~A16/S3(address/status):地址/状态信号,输出,三态。

这是采用分时的方法传送地址或状态的复用引脚。其中A19~A16为20位地址总线的高4位地址,S6~S3是状态信号。S6表示CPU与总线连接的情况,S5指示当前中断允许标志IF的状态。S4,S3的代码组合用来指明当前正在使用的段寄存器。S4,S3的代码组合及对应段寄存器的情况。

3、BHE(低)/S7(bushighenable/status):允许总线高8位数据传送/状态信号,输出,三态。

为总线高8位数据允许信号,当低电平有效时,表明在高8位数据总线D15~D8上传送1个字节的数据。S7为设备的状态信号。

4、RD/(read):读信号,输出,三态,低电平有效。

信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作。

5、READY(ready):准备就绪信号,输入,高电平有效。

READY信号用来实现CPU与存储器或I/O端口之间的时序匹配。当READY信号高电平有效时,表示CPU要访问的存储器或I/O端口已经作好了输入/输出数据的准备工作,CPU可以进行读/写操作。当READY信号为低电平时,则表示存储器或I/O端口还未准备就绪,CPU需要插入若干个“TW状态”进行等待。

6、INTR(interruptrequest):可屏蔽中断请求信号,输入,高电平有效。

8086CPU在每条指令执行到最后一个时钟周期时,都要检测INTR引脚信号。INTR为高电平时,表明有I/O设备向CPU申请中断,若IF=1,CPU则会响应中断,停止当前的操作,为申请中断的I/O设备服务。

7、TEST/(test):等待测试控制信号,输入,低电平有效。

信号用来支持构成多处理器系统,实现8086CPU与协处理器之间同步协调的功能,只有当CPU执行WAIT指令时才使用。

8、NMI(non-maskableinterrupt):非屏蔽中断请求信号,输入,高电平有效。

当NMI引脚上有一个上升沿有效的触发信号时,表明CPU内部或I/O设备提出了非屏蔽的中断请求,CPU会在结束当前所执行的指令后,立即响应中断请求。

9、RESET(reset):复位信号,输入,高电平有效。

RESET信号有效时,CPU立即结束现行操作,处于复位状态,初始化所有的内部寄存器。复位后各内部寄存器的状态,当RESET信号由高电平变为低电平时,CPU从FFFF0H地址开始重新启动执行程序。

10、CLK(clock):时钟信号,输入。

CLK为CPU提供基本的定时脉冲信号。8086CPU一般使用时钟发生器8284A来产生时钟信号,时钟频率为5MHz~8MHz,占空比为1:3。

11、VCC电源输入引脚。

8086CPU采用单一+5V电源供电。

12、GND:接地引脚。

13、MN/MX/(minimum/maximum):最小/最大模式输入控制信号。

引脚用来设置8086CPU的工作模式。当为高电平(接+5V)时,CPU工作在最小模式;当为低电平(接地)时,CPU工作在最大模式。

  • 最小模式下

CPU工作于最小模式时使用的引脚信号,当引脚接高电平时,CPU工作于最小模式。此时,引脚信号24~31的含义及其功能如下:

1、M/IO/(memoryI/Oselect):存储器、I/O端口选择控制信号。
信号指明当前CPU是选择访问存储器还是访问I/O端口。为高电平时,访问存储器,表示当前要进行CPU与存储器之间的数据传送。为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。

2、WR/(write):写信号,输出,低电平有效。

信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。

3、INTA/(interruptacknowledge):可屏蔽中断响应信号,输出,低电平有效。

CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。

4、ALE(addresslockenable):地址锁存允许信号,输出,高电平有效。

CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。

5、DT/(datatransmitorreceive):数据发送/接收信号,输出,三态。

DT/信号用来控制数据传送的方向。DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。
6、DEN/(dataenable):数据允许控制信号,输出,三态,低电平有效。

信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。

7、HOLD(busholdrequest):总线保持请求信号,输入,高电平有效。

在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。

8、HLDA(holdacknowledge):总线保持响应信号,输出,高电平有效。

HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。

  • 最大模式下

当引脚接低电平时,CPU工作于最大模式。此时,引脚信号24~31的含义及其功能如下:

1、S2,S1,S0(statussignals):总线周期状态信号,输出,低电平有效。

2、RQ/,GT/(request/grant):总线请求允许信号输入/总线请求允许输出信号,双向,低电平有效。

该信号用以取代最小模式时的HOLD/HLDA两个信号的功能,是特意为多处理器系统而设计的。当系统中某一部件要求获得总线控制权时,就通过此信号线向8086CPU发出总线请求信号,若CPU响应总线请求,就通过同一引脚发回响应信号,允许总线请求,表明8086CPU已放弃对总线的控制权,将总线控制权交给提出总线请求的部件使用。RQ/GT0优先级高于RQ/GT1。

3、LOCK/(lock)总线封锁信号,输出,低电平有效。

信号有效时,表示此时8086CPU不允许其他总线部件占用总线。

4、QS1,QS0(queuestatus):指令队列状态信号,输出。

QS1和QS0信号的组合可以指示总线接口部件BIU中指令队列的状态,以便其他处理器监视、跟踪指令队列的状态。

8086系统组成

8086是一种微处理器,再加上必须的支持芯片,如时钟发生器,地址锁存器,总线驱动器,存储器和I/O接口等,才能构成一台完整的微型计算机。根据外部设备的数量和系统复杂程度,8086可以选用两种系统构成模式,最小模式和最大模式。最小模式是单CPU系统,在这种系统中,8086的MN/MX引脚接高电平,系统全部的控制信号都直接由CPU提供。最大模式是多CPU系统,此时MN/MX引脚接低电平,必须通过8288总线控制器对CPU的状态信息进行译码才能产生系统必须的控制信号。

1.地址锁存

8086的AD15AD0是地址/数据复用线,即CPU与存储器进行信息交换时,首先在T1状态,先由CPU送出访问存储单元的地址信息到AD15AD0上,随后又用在些线来传送数据所以在数据送上总线以前,必须先将地址锁存起来。可用8282或74LS373锁存8086的单向地址AD15~~AD0.图7-9中使用三片8282,这是因为8282只具有8位锁存功能,而8086具有20位地址和一根BHE信号。若系统存储器容量较小,使用不到20位地址信息,也可只用2片8282.图中OE端接地,使锁存器永远处于允许输出状态。引脚STB接8086的ALE输出。在总线周期T1状态,ALE上出现正脉冲,它的下降沿将8282输入端的地址信息存入锁存器,并由输出端送入地址总线。

2.双向数据总线驱动器

CPU可以直接将数据发送到数据总线上。而无需锁存。为了增加总线负载能力,CPU数据总线一般要加上驱动器,且要求双向驱动器,一般采用8位双向驱动器8286或74LS245.由于8086数据总线是16位的,所以要用2片8286.8286的Ai引脚接CPU的ADi,其Di引脚接到系统数据总线D1上,并将8086的DT/R接8286的T引脚,当DT/R为高电平時,数据从CPU发送到数据总线上.DT/R为低电平時,CPU从数据总线上接收数据.8286的OE脚接8086的DEN脚。当8086的DEN为低电平时,才允许数据输入或输出。

3.时钟发生器/驱动器

8086所需时钟脉冲CLK由8284提供.8284输出时钟CLK的频率,取决X1,X2跨接石英晶体的频率。除此以外,8284还向8086提供定时和宽度符合要求的RESET复位信号及符合要求的READY信号。

4.存储器部件

8086能直接寻址1MB存储空间。这个存储空间分为两个512KB存储体。一个存储體由奇地址单元组成,用于存储16数据的高字节,另一个存储体由偶地址单元组成,用于存储16位数据低字节。前者称为奇地址存储器,后者称为偶地址存储体。偶地址存储体的8位数据总线接CPU的数据总线D7D0,而奇地址存储体8位数据线接数据总线D15D8.地址线A19~~A1同时接到两个存储体,而A0作为偶地址选中信号即A0=0时,选中偶存储体.BHE作为奇地址片选信号,BHE=0时选中奇存储体。所以两个存储体可以同时读出或写入,也可单独选中一个存储体。

5.I/O端口

一个完整的微机系统必须有I/O设备.I/O设备都有端口地址号.CPU通过地址总线发出端口地址,经过端口地址译码器输出,送到端口的片选引脚而选定指定的端口.8086根据执行命令是访问存储器指令还是输入输出指令,来使M/IO控制信号是高电平或是低电平,以区分地址总线上的地址是访问存储器还是访问外设.

猜你喜欢

转载自blog.csdn.net/qq_42856154/article/details/90519076