1.28k likes | 1.42k Views
微机接口技术. 主讲:尚凤军 Email:shangfj@cqupt.edu.cn. 课程的性质与任务. 本课程的任务是使学生从微机系统的角度出发,在理论和实践上掌握系统的基本组成、工作原理、接口电路及硬件的连接,从而具有微机应用系统硬件开发的能力。 本课程是介绍作为信息或控制系统的核心的微型计算机与外界进行联系(广义输入/输出)的基本原理和方法,也是微型计算机硬件与软件衔接而构成系统的一个重要领域。. 使用教材及主要参考书. 1.微型计算机接口技术 邓亚平 陈昌志 编著 清华大学出版社 2005年 2.微型计算机接口技术及应用
E N D
微机接口技术 主讲:尚凤军 Email:shangfj@cqupt.edu.cn
课程的性质与任务 • 本课程的任务是使学生从微机系统的角度出发,在理论和实践上掌握系统的基本组成、工作原理、接口电路及硬件的连接,从而具有微机应用系统硬件开发的能力。 • 本课程是介绍作为信息或控制系统的核心的微型计算机与外界进行联系(广义输入/输出)的基本原理和方法,也是微型计算机硬件与软件衔接而构成系统的一个重要领域。
使用教材及主要参考书 • 1.微型计算机接口技术 • 邓亚平 陈昌志 编著 • 清华大学出版社 2005年 • 2.微型计算机接口技术及应用 • 刘乐善 欧阳星明 刘学清 编著 • 华中科技大学出版社 2000年 • 3.80X86/Pentium处理器硬件、软件及接口技术教程 • (美)WALTER A.TRIEBEL 著 王克义等译 • 清华大学出版社 1998年
教学基本要求 • 1.了解接口的功能,掌握分析与设计接口电路的基本方法。 • 2.了解I/O端口地址分配,掌握I/O端口的寻址方法和地址译码技术。 • 3.了解总线的数据传输方式,掌握PC总线、ISA总线、EISA总线、PCI总线和通用串行总线的特性。 • 4.了解存储器的分类及特性,掌握存储器芯片与CPU的连接方法和扩充技术。
5.掌握8253/8254定时/计数器的基本逻辑结构及外部特性,掌握该芯片与CPU的连接和应用技术。了解实时钟电路MC146818的外部特性及工作原理。5.掌握8253/8254定时/计数器的基本逻辑结构及外部特性,掌握该芯片与CPU的连接和应用技术。了解实时钟电路MC146818的外部特性及工作原理。 • 6.掌握中断方式及中断处理过程。掌握8259可编程中断控制器的基本逻辑结构和外部特性,以及在微机系统中的应用。 • 7.掌握DMA系统的工作原理。掌握8237DMA控制器的基本逻辑结构和外部特性,以及在微机系统中的应用。 • 8.了解并行接口的特点。掌握8255可编程并行接口的基本逻辑结构和外部特性,以及在微机和控制系统中的应用。了解打印机接口。
9.了解编码键盘和非编码键盘的接口。掌握LED和LCD显示器结构及其接口。掌握MDA、CGA、EGA、VGA和SVGA的工作方式和原理。掌握CD-ROM的记录格式及其标准。9.了解编码键盘和非编码键盘的接口。掌握LED和LCD显示器结构及其接口。掌握MDA、CGA、EGA、VGA和SVGA的工作方式和原理。掌握CD-ROM的记录格式及其标准。 • 10.了解串行通信的基础知识,熟悉串行通信协议和串行接口标准,掌握8251和8250的基本逻辑结构及外部特性,掌握这两个接口芯片与CPU的连接和应用技术。了解BIOS INT 14H的功能调用。 • 11.了解软盘和硬盘的数据记录格式,掌握磁盘容量和格式化容量的计算方法。了解FDD和FDC的主要功能。掌握硬盘的IDE接口系列和SCSI接口系列的特性。
学时及学分 • 本课程共48学时,其中:理论教学42学时,实验6学时。 • 本课程共3学分。
考试 • 方式:通常采用闭卷方式 • 构成:卷面成绩70% • 平时成绩30%:考勤、作业
第一章 绪论 • 1.1 微处理器的发展 • 微处理器诞生于20世纪70年代初,是大规模集成电路发展的产物。在这以前,计算机的发展经历了电子管,晶体管,中小规模集成电路计算机时代。大规模集成电路于1970年研制成功,开创了微处理器计算机时代。 • 第一个微处理器是1971年底美国Intel公司生产的4004。Intel 4004主要用来处理算术运算,它集成了2300个晶体管,具有4位带宽,工作频率为108KHz,寻址空间只有640B。 • 经过30多年的发展,随着集成电路技术的飞速发展和大量新技术的涌现,微处理器取得了惊人的发展,从4位、8位、16位到32位机,目前已经研制开发出了64位的微处理器。
1.1.1 从8086到Pentium • 1978年6月,8086 :是真正16位CPU,其内部集成了29000个晶体管,主频速率5MHz/8MHz/10MHz,数据线16条,地址线20条,寻址空间达到了1MB,40个引脚,共133条指令。 • 1979年6月,8088:是8086的一个简化版本,时钟频率为4.77MHz,它将8位数据总线独立出来,减少了管脚,因此成本也较低。 • 1980年,IBM公司采用Intel的8086与8088作为其个人计算机IBM PC的CPU,微型计算机从此诞生。
1982年2月1日,80286:性能更完善和功能更强的高档16位微处理器,13万4千个晶体管,时钟频率由最初的8MHz逐步提高到20MHz,地址总线为24位,指令集有143条,芯片引脚68根。1982年2月1日,80286:性能更完善和功能更强的高档16位微处理器,13万4千个晶体管,时钟频率由最初的8MHz逐步提高到20MHz,地址总线为24位,指令集有143条,芯片引脚68根。 • 80286和8086都是16位的微处理器,但是80286有明显的改进 : • (1) 它首次提出了实方式和保护方式。这两种对CPU不同的操作方式。保护方式的提出使得80286突破了8086/8088受20位地址总线制约而不能遍访1MB以上的存储空间这一关键约束,而80286的24位地址总线使得它可以访问到16MB地址空间。
(2) 由于引进了段描述符表的概念,80286可以访问1GB的虚拟地址空间,它可以将1GB虚拟空间中的任务映射到16MB空间中去,从而使多任务并行处理成为可能。这对后来的多任务操作系统的普及是至关重要的。 • (3)80286是第一款“100%完全向下兼容”的Intel微处理器。
1985年10月,80386 DX:27.5万个晶体管,32位微处理器,时钟频率最初为12.5MHz,后很快提高到20MHz、25 MHz和33 MHz,数据总线和地址总线均为32位,具有4GB的物理寻址能力,有154条指令,132根引脚。 • 80386提供了一种叫做“虚拟8086”的工作方式,使得芯片能够同时模拟多个8086处理器,以同时运行多个8086应用程序,从而保证了多任务处理能够向下兼容。 • 80386还成功地推出了协处理器80387(也称浮点运算部件)。80386的成功为日后80486及Pentium的研制奠定了技术基础。
1989年4月,80486:采用1微米制造工艺,120万管,时钟频率从25MHz到50MHz和100MHz,数据总线和地址总线为32位,指令集有160条,芯片引脚数168根。1989年4月,80486:采用1微米制造工艺,120万管,时钟频率从25MHz到50MHz和100MHz,数据总线和地址总线为32位,指令集有160条,芯片引脚数168根。 • 它不仅把浮点运算部件集成进芯片之内,同时还把一个其规模大小为8KB的一级高速缓冲存储器(Cache)也集成进了CPU芯片内。这种集成极大地加快了CPU处理指令的速度,使指令平均执行时间从80386的约4.5个周期降至80486的约1.8个周期。首次采用了RISC技术,可以在一个时钟周期内执行一条指令。此外,80486引进了时钟倍频技术(即用一种特殊的电路使得大多数内部部件以输入时钟的倍频运行,因而能使装在cache中程序的运行速度快一倍。但其内部总线仍以外部时钟的频率工作,使得80486DX可以和低速器件相连),从而使主频超过100MHz变成可能。
80486 DX2采用了时钟倍频技术,其芯片内部的运行速度是外部总线运行速度的2倍。内部时钟频率主要有40MHz、50MHz以及66MHz三种。 • 80486 DX4是80486系列芯片中最快的一种,它采用了0.6微米的制造工艺和时钟倍频技术,芯片内部的运行速度是外部总线运行速度的3倍,芯片内部的超高速缓冲存储器扩大到16KB,芯片的时钟频率为100MHz。其运行速度比80486 DX2/66MHz快40%。
1993年3月,Pentium:Pentium是拉丁文“五”(Pente)和元素周期表的公用后缀--IUM组合而成,意指Pentium为Intel公司的第五代微处理器(P5),310万个晶体管,指令有165条,有60/66/75/90/100/120/133/150/166/200MHz等时钟频率,芯片内部数据总线为32位,外部数据总线位64位,地址总线32位,引脚数为273条(PGA封装)。Pentium CPU 内部配置了大小为16KB的一级Cache,指令和数据各占8KB,这使得Pentium微处理器的能力更加强大。
Pentium在80486基础上作了很大的改进,从而把Pentium的性能提到了一个新的高度,Pentium新型的设计可以归结为以下4点:Pentium在80486基础上作了很大的改进,从而把Pentium的性能提到了一个新的高度,Pentium新型的设计可以归结为以下4点: • (1)超标量结构:就是微处理器内有多个指令执行单元,多条指令执行流水线,可在单个时钟周期内执行两条简单指令,比相同时钟频率的80486DX性能提高了一倍。 • (2)代码高速缓存与数据高速缓存独立:这种结构可以减少高速缓冲存储器发生的争用,并且两组存储器在需要时可随时提供服务,充分改善了处理器的性能。
(3)分支预测:Pentium内部提供了一个分支目标缓冲器来动态地预测程序的分支,从而加快了循环的速度。(3)分支预测:Pentium内部提供了一个分支目标缓冲器来动态地预测程序的分支,从而加快了循环的速度。 • (4)高性能的浮点运算:Pentium的浮点运算单元分为8级流水线,使每个时钟周期可完成一个浮点运算。对常用指令(MUL和LOAD)采用了新的算法,并用硬件实现,因此,其运行速度明显提高。
代号为P5的Pentium CPU由于在推出后发现在浮点运算方面存在某些缺陷,Intel公司很快推出了它的改进产品,用P54C取代了Pentium。 • P54C集成了330万个晶体管,工作电压3.3V。主频在75MHz,90MHz,100MHz和120MHz以内的,采用0.6微米工艺;主频为133MHz、150MHz、166MHz和200MHz的,采用了0.35微米工艺,芯片引脚数为296。 • 美国Cyrix公司和AMD公司也推出了与P54C兼容的系列微处理器。Cyrix的6X86系列和AMD的K5系列性能与P54C相当,但价格便宜近1/4。
1996年10月,Pentium MMX(Multi Media eXtension,多媒体扩展结构)P55C:450万个管,一级高速缓存32KB。其主要特点有: • (1) 增加了57条MMX新指令,用于高效地处理图形视频和音频数据。一条指令可并行执行8个8位数据、4个16位数据或两个32位数据的运算,具有积和运算能力,特别适合向量运算和矩阵运算;具有饱和运算,把溢出值作为定值。 • (2) CPU内部的L1 Cache 由原来的16KB提高到32KB。 • (3)优化了CPU的核心结构。 • (4)将核心电压与I/O电压分开。CPU工作电压:2.5~3.1V,随CPU的主频不同而不同。
1.1.2 从Pentium Pro到Pentium 4 • 1995年底,Pentium Pro代号为P6:550万管,L2 Cache 1550万管,两块芯片同时封装有387个引脚。三路超标量结构和14级流水线结构,有5个并行处理单元:2个整数单元、1个存储单元、1个装载单元和1个浮点处理单元;Pentium Pro比奔腾处理器增加了9条指令,不具备MMX功能,CPU工作电压为2.9V,采用socket 9插座。Pentium Pro最引人注目的地方是,它采用了独特的动态执行技术,将多分支转移分流预测机制、数据流分析和推测执行这三项技术有机结合起来,提高了CPU的执行效率和响应速度。
1997年5月,Pentium II:Pentium Pro与MMX技术相结合的新型P6;0.35微米或0.28微米工艺,750万管,工作电压为2.8V;Pentium II采用了双重独立总线结构,即一个独立的64位系统总线(FSB)负责与主存通信,另一个独立的64位总线(BSB)连接“片上L2 Cache”,使多重并行传输成为可能;采用SEC(Single Edge Contact)封装技术,与主板特殊设计的Slot1插槽相配。
Pentium II有一系列不同档次的产品,其主要产品有:Klamath、Deschutes、Xeon等。 • 旧款赛扬(Celeron):CPU中没有集成L2 Cache,266MHz、300MHz和Slot1; • 新款赛扬( Celeron ):集成了128KB L2 Cache,时钟频率分别为300、333、366和400MHz,CPU插槽Slot1/Socket370,超频能力强。
1999年2月,Pentium III代号为Katmai :主要是为了配合商业多媒体、通信和浏览Internet而开发的新一代微处理器,950万管,时钟频率从450/500MHz开始,地址总线有36条,制造工艺0.25微米,FSB 100MHz,新功能主要表现如下几个方面: • (1) 采用新的SIMD浮点指令集(SSE:Streaming SIMD Extension),新增加的70条指令大大提高了多媒体性能。 • (2) 采用了内存流体系结构,提高了CPU的指令执行速度。 • (3)内置处理器序列号为处理器的识别提供了方便,可提供安全性和管理性方面的应用。
2000年6月,Pentium 4代号为Willamette :4200万管,时钟频率1400/1500MHz,0.18微米工艺,FSB 400MHz,当时只支持Rambus内存,引脚数为423,Pentium 4对P6的架构进行了如下几方面的改造: • (1) 不同运行速度的单元构成处理器的非对称内核。 • (2) 改进了指令执行的超标量体系架构机制。 • (3)全新的Cache来追踪指令的执行情况。 • (4)改进多媒体单元和浮点处理单元的性能。 • (5) 采用了超级流水线技术,它的指令流水线深度达到了20级。是P6结构的2倍。 • (6)增加了SSE2指令集。
1.2 微处理器的性能评测标准 • 至今没有一个世界公认的权威性测试软件能够评定各种CPU的性能。 • 当前,CPU基准测试软件很多,其中比较有权威的要算WinBench 97和ZD实验室开发的Winstone测试软件。 • 除此之外,用户还常使用SPECint,SPECfp这样的测试基准对CPU的性能进行测试。 • SPEC是System Performance Evaluation Cooperative的缩写,即系统性能评价协作标准。SPEC负责研究如何对计算机系统性能进行有效的描述,由此建立的一套测试程序称为SPEC。由于其评价标准比较客观公正,因而成为计算机系统评测的公认标准。
目前使用的版本是SPEC92,它由20个基准程序组成(6个整数,14个浮点数)。目前使用的版本是SPEC92,它由20个基准程序组成(6个整数,14个浮点数)。 • 其评价指标有SPEC参考时间、SPEC比率和SPECmark。SPEC参考时间是指在DEC VAX11/780上运行SPEC92基准程序所花的时间;SPEC比率是该基准程序参考时间与被测机器上运行时间的比值,被测机器运行越快,SPEC比率就越大;SPECmark为该机器20个SPEC比率的几何平均值。 • 目前,根据上述测试标准来建立的衡量微处理器的性能指标主要有两个,一个是由Intel公司制定的iCOMP,另一个是由IBM、AMD与Cyrix等公司联合制定的P-Rating指数。
1.2.1 iCOMP指数 • iCOMP(intel Comparative Microprocessor Performance):是Intel公司为一般用户提供的一个理解和比较Intel微处理器性能相对差异的易用工具。 • iCOMP指数用来度量Intel 32位以上的微处理器系列各种CPU之间的相对性能,以帮助用户掌握各类CPU之间的性能差异。 • 1992, iCOMP指数1.0版以486SX-25作为比较基准,再用下面的公式计算CPU的iCOMP值:
iCOMP=100×{ P1+ P2 +……+ Pn} 其中,Base_BMj代表486SX-25在第j个指标下的基准测试值,BMj代表被测CPU在第j个指标下的基准测试值。Pj为第j个指标的权值,计算结果即为被测CPU的iCOMP值。 iCOMP指数1.0版使用的测试基准及权重见表1-1 :
iCOMP=100×{ P1+ P2 +……+ P5} 1996年,Intel公司公布了第二代iCOMP指数2.0版,iCOMP Index 2.0由4个工业标准的32位测试基准和一个Intel自行开发的Media Benchmark组成。 iCOMP Index 2.0以Pentium 120(主频120MHz,外频60MHz)为性能测试的基准,即它的iCOMP值为100。计算公式如下:
iCOMP=100×{ P1+ P2 +……+ P6} • 1999年初Intel公司公布了iCOMP Index 3.0性能评价体系。将PC应用明确划分成4大领域:多媒体、3D、Internet和生产率(Productivity)。其中, Productivity是指除去前三项之外的所有PC应用,典型的是各种电子表格,数据库和字处理软件。 iCOMP Index 3.0以Pentium II-350为性能测试的基准,并且其iCOMP指数为1000。故iCOMP指数计算公式为:
1.2.2 P-Rating指数 • 随着厂家各自CPU新品的推出,单从时钟频率上来区分芯片性能已不太全面了,不同结构的CPU会因时钟频率不同而造成误解,而且使用iCOMP来测评不同厂家生产的CPU会有失公正。 • 为此,IBM、AMD、Cyrix等公司合作建立了一套新的微处理器性能评测标准:P-Rating,即额定性能。
P-Rating是以WINSTONE 96为测试依据,将AMD 5x86,Cyrix 5x86/6x86等非Intel公司的CPU与Pentium系列CPU比较来评定其性能,而无需关心其本身名称和主频。 • WINSTONE 96是基于实际应用的测试软件,它测试了十几个当今最流行的应用软件,并结合权重给出最终得分,它是公认的基于Windows的测试标准 。 • P-Rating指数作为一种实用的性能评价指标给用户提供了一个当量级的概念,为选用CPU提供了一种简易的比较方案 。
P-Rating存在一定的局限性,其原因是WINSTONE 96测试软件的浮点运算很少,而对3D应用来讲,浮点运算相当重要。虽说兼容芯片很多性能与同级Pentium系列并不逊色,但其浮点运算性能一般不如Pentium速度快。此外,Winstone 96是基于单Windows 95环境的测试标准,并不能完全代表其它环境下的性能;而且Winstone中不可能包含所有典型的应用程序。 • 用户不能仅仅根据iCOMP指数或P-Rating指数来选购PC系统,这两个指数仅代表了CPU在某一方面的性能,而不同的主板,内存子系统,显示子系统,硬盘及I/O子系统会使整机性能相差很远,因此,选择综合性能良好的系统才是最重要的。
1.3 Pentium处理器 • Pentium处理器是Intel公司于1993年3月推出的586级的CPU,从此以来,Pentium系列的处理器的发展取得了长足的进步,并一直领导着微处理器发展的潮流。
1.3.1 Pentium的内部结构 • Pentium处理器包含486的全部特性并予以增强,还增加了许多功能。Pentium采用了多项先进技术,如超标量流水线结构、哈佛结构的CACHE、流水线式高性能浮点部件以及数据整合与出错检测、增强的调试与测试功能等。Pentium处理器有两条独立的指令执行流水线,分别叫做U流水线和V流水线(U和V只是两条流水线的名称,别无其它意义)。
1.总线接口 • 总线接口是Pentium处理器与系统其余部分相互通信的物理界面。它的主要功能有: • ⑴ 地址驱动和接收 • ⑵ 数据驱动和接收 • ⑶ 总线周期控制 • ⑷ 总线仲裁及中断控制 • ⑸ L2 Cache控制及L1 Cache监听控制 • ⑹ 奇偶校验生成与检测
2.片内哈佛结构的Cache • 3.指令预取缓冲器与分支目标缓冲器 • 4.指令译码 • 5.执行 • 6.写回 • 7.浮点运算器
8.控制单元 • Pentium的大多数简单指令执行都已是以硬连线逻辑来实现的,但少数复杂指令(只能出现在U流水线中)的执行是以微程序逻辑实现。控制单元负责将这样的复杂指令转换成一组微代码序列,去控制指令的执行。另外,它还负责控制整数流水线和浮点流水线的顺序,以及处理例外、断点和中断。
1.3.2 Pentium的寄存器结构 • Pentium微处理器的寄存器组按功能可分为四类—基本寄存器、系统级寄存器、调试和测试寄存器以及浮点寄存器。 • PC系列微机的寄存器总体上可分为程序可见和不可见两类。在程序设计期间要使用的并可由指令来指定它们的寄存器称为程序可见寄存器。在应用程序设计期间,不能直接寻址的寄存器称为程序不可见寄存器,但系统程序设计期间可以被间接引用。只有80286及其以上的微处理器包含程序不可见寄存器,用于控制和操作保护模式存储器系统。
1.基本寄存器 • 基本寄存器都是程序可见寄存器。80286之前的CPU采用16位内部结构,80386之后则采用32位的内部结构。80X86结构完全向上兼容。 • 基本寄存器可分为通用寄存器和专用寄存器。通用寄存器包括EAX、EBX、ECX、EDX、EBP、EDI和ESI。用于存储逻辑和算术运算中的操作数,或保存地址运算中的操作数(通常为32位的地址)。专用寄存器包括:指令指针寄存器EIP,堆栈指针ESP,标志寄存器EFLAGS,段寄存器CS、DS、ES、SS、FS和GS。
由图1.4可见,基本寄存器又可分为8位、16位和32位寄存器。由图1.4可见,基本寄存器又可分为8位、16位和32位寄存器。 • 16位寄存器有AX、BX、CX、DX、SP、BP、DI、SI、IP、FLAGS、CS、DS、ES、SS、FS和GS。 • 其中AX、BX、CX和DX可拆分为8位寄存器AH、AL,BH、BL,CH、CL,DH和DL。16位寄存器主要用于8086到80286的16位微处理器和实地址方式。 • 32位扩展寄存器是EAX、EBX、ECX、EDX、ESP、EBP、EDI、ESI、EIP和EFLAGS。这些32位扩展寄存器和16位寄存器FS与GS只用于80386及更高型号的微处理器中。
⑴ 通用寄存器 • ① EAX(累加器):可作为32位寄存器(EAX)、16位寄存器(AX)或8位寄存器(AH或AL)引用。累加器用于如乘法、除法及一些调整指令,对于这些指令,累加器常表现为隐含形式。在80386及更高型号的微处理器中,EAX寄存器也可以保存访问存储单元的偏移地址。 • ② EBX(基址):可作为EBX、BX、BH或BL寻址。在所有型号的微处理器中,EBX常用来作地址指针,用于保存访问存储单元的偏移地址。 • ③ ECX(计数):经常作计数器,用于保存许多指令的计数值。在80386及更高型号的微处理器中,ECX寄存器也可保存访问存储器数据的偏移地址。用于计数的指令重复的串指令、移位、循环指令。移位指令用CL计数,重复的串指令用CX计数,循环指令用CX或ECX计数。
④ EDX(数据):常与EAX配合,用于保存乘法形成的部分结果,或者除法之前部分被除数。对于80386及更高型号的微处理器,这个寄存器也可寻址存储器数据。 • ⑤ EBP(基指针):可作为BP或者EBP寻址,EBP可指向所有型号微处理器的存储位置,常用于堆栈的操作。 • ⑥ EDI(目标间址):常用于寻址串指令的目标数据串,它的另一个功能是作为32位(EDI)或者16位(DI)通用寄存器使用。 • ⑦ ESI(源间址):既可作为ESI,也可作为SI来使用。ESI为串指令寻址源数据串。如同EDI一样,ESI也作为通用寄存器使用。作为16位寄存器,由SI寻址;作为32位寄存器,由ESI寻址。