PC XT、AT、286、386微机的系统板和CPU 1994-01-07 (一)PC、XT、AT、286、386微机系统板结构分析 IBM PC XT,AT,386及其兼容机都采用母板结构。母板即系统板,它包括处理器模块,基本存贮器模块,基本I/O接口,中断控制器,DMA控制器以及联接这些部件和外部设备的总线,可见系统板既可作为最基本的系统,又可作为系统的总线联接器。总线是由总线驱动器驱动和隔离的,每族总线又分地址总线、数据总线和控制总线(或称命令总线)。只有主设备(处理器或DMA控制器)才能产生地址总线和控制总线。地址总线需要锁存,通常选用八位三态锁存器作为地址总线驱动器(8088级微机选用LS373,286/386级微机选用ALS573)。控制总线由总控制器(8088级微机选用8288,286,386级微机选用82288)提供,控制总线驱动器选用三态总线收发器(8088级微机选LS245,286/386级微机选用ALS245)。任何操作总是以地址为先导,然后在控制信号作用下经数据总线完成数据写入或读出。所以地址总线、数据总线和控制总线三者保持平行性也就是说掌握数据总线和数据的流程就意味着掌握了地址总线和控制总线的流程。因此由数据总线画出8088/286/386级微机的结构大致可以反映系统内各部件的工作原理以及各部件与总线联接关系,同时为寻找和分析故障提供了规律。下面分别介绍IBM PC/XT、AT、386及其兼容机常见的几种系统板总线结构: 一、IBM PC/XT微机系统板的总线结构 总线分为三层,第一层为CPU总线AD7-0,联接CPU;图中8284是8088CPU的时钟发生器/驱动器,8288是8088CPU的总线控制器。第二层为系统总线D7-0,由总线驱动器U2(LS245)驱动。第三层有存贮器总线MD7-0和扩充总线XD7-0,其中存贮器总线MD7-0由总线驱动器U9(LS245)驱动,连接存贮器DRAM;扩充总线XD7-0由总线驱动器U15(LS245)驱动,联接板上的所有I/O片和只读存贮器EPROM。其中8253是定时器,8 237是DMA控制器,8255是并行输入、输出接口。8259是中断控制器,外部设备通过各自的适配器插入系统总线。由于IBM PC/XT微机把系统板上所有属性和控制方法相似的I/O芯片联接到扩充总线,所以IBM PC/XT总线结构比IBM PC总线结构合理。 二、IBM PC/AT及其兼容机系统板的总线结构 IBM PC/AT微机系统的总线结构是在IBM PC/XT机基础上发展的,保持了IBM PC /XT机的三层总线结构,增加了高低位节总线驱动器U102(ALS245)转换逻辑,并增加了高位字节系统总线。此外把系统板上所有属性和控制方法相似的存贮器DRAM和只读存贮器EPROM芯片都联接到存贮器总线MD15-0。所以IBM PC/AT总线结构又比IBM PC/XT总线结构更合理。图中82284是80286 CPU的时钟发生器/驱动器,82288是80286 CPU的总线控制器。MC146818是日历时钟/CMOS RAM芯片,8254是定时器,8237是DMA控制器,共二个,8259是中断控制器,共二个,8024是八位单片微处理器,作为键盘接口,IBM XT/286总线结构与IBM PC/AT总线结构相似。 三、PC 386及其兼容机系统板的总线结构 1.386微机已逐步取代XT、AT机,另外,Intel公司不再独家拥有和出售386机,因此下面详细分析了有关AST386C、ASE386SX、SUN386微机系统板的结构。AST386微机系统板的总线结构是在IBM PC/AT机的基础上发展的,保持了IBM PC/AT机的三层总线结构。在CPU和主内存贮器之间增加了超高速静态存贮器20ns-35ns 64KB SRAM及其CACHE高速缓存控制器82385,和主存贮器部件(80ns DRAM及其控制器)一起由AST P/386专用的内存接口槽联接到局部总线D31-D0上。AST386专用的内存板支持存贮器使用一个、二个或四个32位存贮体的结构配置,每个存贮体由四个独立的直接插入式存贮器模块(SIMMS)组成。可以使用四块256KB或四块IMB构成一个容量为1MB或4MB的存贮体。采用高速缓存部件使CPU接近零等待存取存贮器。只读存贮器EPROM联接到存贮器总线MD15-MD0上,单向驱动送入系统总线。在系统板中使用了大量的逻辑阵列(PAL)芯片。打印机、异步通讯和软盘控制器接口芯片均安装在系统板上,其中软盘控制器接口芯片WD37C65直接联接到系统总线上,打印机接口芯片联接到扩充总线上。AST 386系统板上提供两个8位PC/XT I/O通道扩展槽和四个8/16位 PC/AT I/O通道扩展槽。在四个8/16位 PC/AT I/O通道扩展槽中有三个特殊的SMART扩展槽。SMART扩展槽是在PC/AT扩展槽的短槽是增加上8芯,以增加IBM PC/AT和386 I/O通道槽,使成为多主控总线,供带微处理器的外部适配器(例如AST先进磁盘控制器ADC)控制系统总线。SMART扩展槽与8位PC/XT扩展槽和8/16位PC/AT扩展槽兼容,8位或16位外部适配器亦可以插入SMART扩展槽中。 2.AST 386SX微机是准32位微机,CPU采用80386SX微处理器,具有内部32位总线和外部16位数据总线的结构。此外,在系统板中增加了硬盘控制器接口的扩充总线驱动器U96、U97及其联接器。 3.是SUN 386微机CHIPS系统板的总线结构中图中82C301总线控制器具有如下功能: 1)时钟发生和复位控制; 2)CPU总线机器状态。 3)AT总线机器状态。 4)端口寄存器PORT B和NMI逻辑。 5)总线仲裁和刷新逻辑。 82C302页式交叉存贮器控制器具有如下功能: 1)DRAM访问的仲裁。 2)DRAM访问周期的控制。 3)DRAM刷新。 4)存贮器映象。 82A303高位地址缓冲器具有如下功能: 1)产生供其它CHIPS芯片使用的地址译码号。作为局部X和系统地址总线之间的接口。82A304低位地址缓冲器具有如下功能:1)为局部A,X,MA和系统SA地址总线的地址位11-00提供驱动和缓冲,2)外围设备译码。3)AT地址总线SA11-SA00接口。4)向SA总线产生刷新行地址。 82A305数据总线缓冲器具有如下功能:1)为局部D31-D04、内存MD31-MD04和ATSD15-SD04接口。2)数据宽度转换。 82A306控制缓冲器具有如下功能:1)字节使能锁存。2)奇偶校验。3)AT总线控制信号。在这五个CHIPS门阵列控制芯片中,82C301和82C302采用低功耗CMOS技术,82A303、82A304、82A305和82A306采用低功耗肖特基LS技术,其中82C301和82C302为84脚方型封装,82A303、82A304、82A305和82A306为68脚方型封装。 由图可见82A305主要作系统和存贮器数据总线缓冲器(16位),共二个。系统板上所有的存贮器RAM芯片联接到存贮器总线上。采用CHIPS门阵列控制芯片P82C206替代146818、8254、8237和8259芯片,并和8042芯片一起联接到扩充总线上,由总线驱动器U55驱动。外部设备通过各自的适配器插入系统总线。82C302是存贮器控制器,根据HLDAL和REF的输入控制DRAM执行CPU、DMA或刷新操作,产生RAS和CAS信号,以及ROMCS信号。82C302支持存贮器使用一个、二个或四个32位存贮体的结构配置,可以使用四块256KB或四块1MB构成一个容量为1MB或4MB的存贮体,每个存贮体提供一个页寄存器,一页有512字节×4=2KB字节。单个存贮体按非交叉存取。二个或四个存贮体交叉存取时,行地址为A21-A12,列地址为A10-A2和A22。A21和A11用来控制RAS3-RAS0。82A303和82A304分别作高位和低位地址总线缓冲器以及I/O芯片译码。82C301和82A306一起作系统控制器,其中82C301产生时钟同步信号,82A306作总线控 制信号缓冲器。 (二)CPU的性能指标 1.CPU速度(兆赫) CPU时钟通常“嘀嗒”超过每秒100万次。那种每秒准确振动100万次的时钟就被称作一兆赫的时钟,缩写为1MHZ。AppleⅡ使用2MHZ时钟。普通的PC和XT用一个4.77MHZ时钟。AT通常用一个6MHZ时钟,后来IBM提供一种改进型以8MHZ运行。一些制造商提供给计算机以速度超过33MHZ的时钟。所有其它事情都是相等的,一个更快的时钟意味着更快的执行和更好的执行。表1列出了一些真的Blue型的时钟频率。 2.字长 任何计算机能被编程去处理任意长的数字,但数字越大,花费的时间越长。在某种操作中计算机能处理的最大数字是由它的字长决定的。这就是或者8位,16位或32位。这样考虑:如果我问你,“5×6是多少”,你可能立即回答“30”__你在一条运算中做了它。如果我问你,“55×66是多少?”你可能要做一系列运算才得出结果。55比你的字长大。所以你把一个复杂的问题__55×66__分解成简单的子问题__50×60,50×6,5×60,5×6__再把结果相加。 计算机也是这样做的。虽然一个16位计算机不能直接操作任何大于216或65536的数,但只要把一个大于216或65536的数分解成若干个小于216或65536的数。一个16位的计算机一样能处理它。一台32位计算机比一台16位计算机更大的优点是它能处理所有都在字节组内的更大的数字__对一台32位计算机来说可以高达40亿的数字,更大的字意味着更少的子操作和更快的吞吐率(系统执行的工作量)。那就是为什么有32位寄存器的386更快的原因。 3.数据道路 不管计算机的字长有多大,数据必须被输入进计算机。这就是计算机的数据带宽。它以是8,16或32位。很明显,数据带宽越大,在相同时间内输入的数据越多。 例如,考虑,一台8MHZ8088与8MHZ的8086作对比。8088和8086的仅有的区别是8088有一个8位数据通路,8086有一个16位数据通路。现在,8088和8086都有16位寄存器,因此程序员可以发同样命令去装16位数给任意一个。“MOV AX,0200”的命令将把一个16进制数200放进一个被称作AX的寄存器中。但在8088上要花近两倍8086上的时间,因为8086可以在一个操作中做完,而8088要花两个操作。 当8086刚被推出时(1977),它是首先具有16位数据道路的微处理器之一。当时几乎每台计算机使用的都是8位数据宽度的CPU。因为CPU都希望在读入数据时是8位,当写数据时都提供8位,所以那些年代的计算机主板含有足够的电路去转换8位。 现在,8086是一块看上去整洁的芯片,因为它的16位正好是建造更强微机的基础。但考虑一下8086在主板必须包含足够的电路去转换16位数据,因此其价格可能是某些8位主板的两倍。这就是8086在经济方面的缺陷。(现在看起来这似乎是个小问题,但在70年代后期,硬件是很昂贵的,一块8086主板要比一块8位的主板贵很多)。 因此Intel公司就自问,“我们怎样才能提供8086的功能而且保持主板价格不致上升呢?”在8086推出了一年以后,他们做了8086。在机器内部,8088与8086是一致的。唯一的区别在于它的“数据带宽”,因为它也仅8位宽,因此主板设计者可以轻而易举地采用已存在的设计到新芯片上。结果8088在1979-1981年获得了巨大的成功。当然,当IBM在1981年推出基于8088的PC机后,“适度”的最终变成了“惊人”的 在1988年历史在80386SX上又重演了这一幕。最初的80386是在1985年被引入的__Intel公司的有32位数据通路的“下一代”芯片。386芯片做得相当好相当快,但对Intel公司来说并不是足够快,286卖得也相当好,但286有一个Intel公司也已意识到的问题:Intel公司没有拥有286芯片。当Intel公司发明了286时,他发许可证允许了几个开发商做286,如此多的286在市场上出售便使Advanced Micro Devices,Fairchild,Siemens,和许多别的芯片制造商赚不到更多的钱。Intel公司想从386身上获取所有的利润。因此他们拒绝发386许可证给任何别的公司。 286并不仅是一个廉价芯片,而且它也是一个16位芯片。那就意味着286PC机可以在16位主板上建造。32位的主板正好很昂贵。因此,PC286要比PC386便宜很多,所以286系列要比386系列容易销售得多。Intel公司不喜欢这种局面发生。因此他们展开了一场芯片大战。他们展开了一场巨大的宣传战,劝告人们放弃286,而去买386。他们也回答了制造商所关心的通过提供80386SX而制造32位主板的价格问题。 80386SX与80386有一个区别:它的数据带宽是16位的,而非32位的。开发商喜欢这样因为他们可以采用旧的286主板,而仅需修改一点设计。他们可以提供“386技术”。一年以后,很明显原来的80386需要一个名字,它就是“80386DX”。 4.内存地址空间 关于兆字节的话题总是使一些人感到困惑,因此让我们偏题一下。一兆字节是一个存贮大小的单位,正相当于存贮一百万字符所需要的空间数量。我们用它来谈论第一内存和RAM的大小,这种内存处于扩展板上,并且如果你有一张大的内存分配表,Lotus能用完它;第二内存即外存,是在磁盘驱动器上。 但磁盘和内存都用兆字节来衡量常使人们感到困惑。我会说,“我用的386有4兆内存”,那么他们会想,“那有什么好?在我的XT机上我有20兆。”我正在谈论的是第一内存__4兆的RAM。我根本没有说我有多少硬盘空间那件事儿。他们正在讨论硬盘空间而没告诉我他们的XT机有多少内存。(很可能640K,比一兆字节的一半多一点儿) 言归正传。你不能无限地给你的PC增加内存。一块具体的芯片仅能寻址一定量的内存。对最老的芯片而言,这个数量是65536字节__64K内存。最初的PC的CPU可以寻址1024K,或1兆字节。另外更新的芯片可以寻址更多。80386和80486可能寻址千兆字节(数十亿字节)。 (三)、PC XT、AT、286、386微机的CPU 1.概况 由于处理器是个人电脑的关键工作部件,所以要想理解PC,必须理解处理器的功能。PC系列机是基于Intel86系列处理器。用在PC机中的有8086、8088、80286、80386、80386SX、80386SL、80486、80486SX、80486SL和Pentinum(早些时候也称为80586)。 下面列出CPU的发展简史: Intel86系列处理器按年代次序表 ┏━━━━┯━━━━┯━━━━━━┯━━━━━━┯━━━━━━┓ ┃推出时间│处理器 │最大速度(m) │数据通道(位)│内存地址(m) ┃ ┠────┼────┼──────┼──────┼──────┨ ┃Jun1978 │8086 │8 │16 │1 ┃ ┃Jun1979 │8088 │8 │8 │1 ┃ ┃Jun1982 │80286 │20 │16 │16 ┃ ┃Jun1982 │80186 │16 │16 │1 ┃ ┃Mar1982 │80188 │16 │16 │1 ┃ ┃Oet1985 │80386DX │40 │32 │4096 ┃ ┃Jun1988 │80386SX │25 │16 │16 ┃ ┃Apr1989 │80486DX │50 │32 │4096 ┃ ┃Oct1990 │80386SLC│20 │16 │16 ┃ ┃apr1991 │80486SX │25 │32 │4096 ┃ ┃Mar1992 │80486DX2│66 │32 │4096 ┃ ┃Nov1992 │80486SLC│33 │32 │16 ┃ ┃Mar1993 │Pentium │ │ │ ┃ ┗━━━━┷━━━━┷━━━━━━┷━━━━━━┷━━━━━━┛ 可以发现,所有处理器名字都以80打头。事实上,86系列还有几位祖先,而且除了一个都以80打头。它们从老到新有:4004,8008,8080和8085。 沿袭了这个传统,86系列的成员分别被称为8086,80186,80188,80286,80386和80486。 通常这些名字英文发音分成两到三个不同数字。如80386就念作“eighty three,eightysix”。近年来除了8086和8086,80已从其他芯片名字前去掉,这就成了8086,8088,186,188,286,386和486。例如80386变成386,英文就念作“three,eighty-six”。 2.8086、8088、80186、80188的特性 8086和8088在芯片内部均用16位工作,所以都称为16位处理器,但8086每次传送和接收16位数据,而8088一次只传送和接收8位。 这就是说,两 者内部用16位工作,但在与外界联系时却分别用16位(8086)和8位(8088),这表明基于8086的机器使用一次传送16位的芯片和磁盘驱动器等设备。 但在制造最早的PC机时,大部分设备和芯片是8位的,它们都是为原来的慢机器设计的。为了驾驭这个市场,Intel设计了与8086功能相同,只是一次传送8位数据的8088。这表现在基于8088的微机具有8086的特征,却仍可使用那时容易得到而且也便宜的8位的部件。8088虽然比8086新,实际上功能却不如8086强。 现在看来,8086对最初的PC机也许会是更好的一种选择。但是当时IBM的设计人员未料到PC会如此受欢迎并不久就成了国际标准。事实上,PC当时并未作为一种特别重要的机器,IBM公司所要的只是一台为其用户提供输入的小计算机。 因此,为了利用现有的较经济的8位设备,8088处理器引入到了PC机中。8088不仅是PC机的核心,也是许多机器(像PC XT,PC Convertable),PCjr和一些早期的clones机的核心。8086被遗弃了,只有IBM把它用在PS/2机的两个低档机:25型和30型。与8088和8086能直接互换的两种芯片是日本电器公司(NEC)的V20和V30。尽管NEC芯片使用与Intel芯片相同的命令集,但它们却不完全一样。大部分微代码是不相同的,而且NEC芯片因采用隐视技术而效率很高。用V20置换8088和用V30置换8086后,总的效率提高约30%。在8086和8088问世不久,Intel公司就着手改进。那时,所有的处理器,也包括这两种,依赖于其他芯片的支持。不过,Intel的设计人员考虑到用分离的芯片完成这些支持的功能有很大的缺陷。如果将其中许多功能集成在一块芯片上组成一更强的处理器速度将更快,而且使用较少的芯片也会降低总的费用。 这样,186和188问世了,它产主要特征是将几个支持功能做到了处理器上。它们还有其他新的功能,不过那是次要的。从型号上读者可能已猜到,两者内部均以16位工作,186与8086类似,一次通信用16位,而188与8088类似,一次接收和发送8位数据。 8088主要用在大多数XT家族的机器中,它源出于被称作40插脚的DIP密装装置,这意味着一个有两行,每行20插脚的矩形塑料盒。DIP代表双排的密封壳(见图12)。更早的8088S被称作8088_1,因为他们仅能以低速运行(5兆HZ或更低)。Tubro PC/XT系列可以以6.66、7.16或8MHZ运行。为了做到这些,他们使用8088_2,它的频率可以高达8MHZ。8088等效于大约29000支晶体管。 3.80286 尽管186和188是86系列中重要(即使很少用)的扩展,但它们比原有的处理器并没有显著的改进,因此Intel公司下大力气完成了那时它最值得夸耀的成就_286。 IBM将这种芯片用在先进技术微机即AT。这种机器问世后几个月中,比IBM的其他机器受到用户更多的青睐和期望,造成很大的轰动。 286在四个方面比它的前辈们有显著的改进。 (1)更多的内存。8086、8088、186和188使用最多1MB内存,而286却能达到16MB (2)具有虚存。这使得处理器使用外存(像磁盘存储器)模拟大量实际的内存。尽管286只有最多16MB的实内存地址,但却能利用外存模拟多达1千兆(GB)的虚拟存储器。存储器用法的改进__增加实内存以及大量的虚拟内存__大大地扩大了286能胜任的工作范围。 (3)同时运行多个任务。多任务是通过多任务硬件机构使处理器在各种任务间来回快速而方便地切换来完成。 例如,屏幕上可以有几个窗口,其中每个窗口有一个程序在里面。尽管所有的程序看来都同时在运行,但处理器却以令人眼花缭乱的速度在各程序之间切换。原来的处理器也曾试图完成多任务,但没有硬件支持,所以不完全可靠,而不得不依靠中断来实现。 (4)处理速度。最早PC速度是4MHz;第一台基于286的PC AT是6MHz,不过,很快就提高到8MHz并成了标准。clones机制造商则自行提高速度,他们使286达到了10M,12.5M,16M甚至20MHz的速度。处理器时钟越快意味着计算速度越快,这种优越的芯片能以5倍于最早PC的速度运行,确实意味着性能上有重大的进步。 IBM公司在1984年8月把286引入了PC AT。从那以后,其他公司生产了大量AT clones机。IBM最终是在七种不同的计算机上使用286处理器,其中有PC AT,5种PS/2型机,PS/1。事实上,直到最近,大部分IBM兼容机基本上都是PC AT的改进版。现在,由于许多新处理器提供更多的功能而且价格也大幅度下降了,286的微机市场上已很少,已没有必要再买一台功能相对较少的286微机了。 不幸的是,尽管286有不少先进的特点,但几乎没多少用户利用它们,这是因为大部分人都用DOS作为操作系统,而DOS却是以原有8088体系结构为基础的。也可以说在大部分场合,286微机只是原有机器较快速度的一种改进版本,就象当初按186设计的一样。 但286确实与原来总以同一方式工作的微机不同,它有两种独立的特性:实模式和保护模式工作。 在实模式下,286与8086一样,DOS和绝大部分现有硬件完全兼容。但在它自己独有的保护模式下,286提供了虚存、多任务硬件及大量存储空间。之所以称为保护模式,是因为处理器在处理多任务时,每个程序各自分开,在自己的空间运行。实模式下,一个瞎跑的程序会使整个系统崩溃,而在保护模式下,一个程序最坏也就是损坏自己。 80286是Intel公司1981年设计的。它的封装是一块被称作PGA的正方形包装。PGA是pinGridArray的缩写(见图12)。它也是源自于一块被作PLCC的更便宜的封装,PLCC是Plastic Leadless Chip Carrier的缩写。PGA封装有一块内部和外部固体插脚方块。PLCC在它的周围排列着薄的锡箔状的插脚。286比8088在一小块封装上包含了更强的功能:在同样体积内8088有29000支晶体管,而80286有大约130000支晶体管。正因为如此,80286运行起来更快,并且需要特别的散热装置,如散热孔,小金属帽或安装在芯片顶端的散热片,使得芯片能更好散发它产生的热量。 4.80386、80386SX和80386SL (1)86系列下一个成员是386。与286一样,它也通过提供模拟8086的实模式来保护向下兼容,而且它扩充了286保护模式。386是一个很有意义的成就--将32位包括32位I/O和32位寻址都带给了台式微机。这种加倍的内部寻址能力,意味着386能使用4千兆的实内存(2^23=4294967296字节)和多达64万亿字节(TB)的虚存。(64万亿是这样一个概念,世界上每个男女老幼的名字和代号都能存放下。) 然而更重要的是,386增加了一个虚86模式的操作模式,这使得多个DOS程序同时运行,每个就像在自己的8086机器中运行一样。事实上,这是因为有特殊的控制程序,像Microsoft Windows那样能同时运行相互隔开的多个DOS程序。因为DOS不能在保护模式下运行,因而对286来说很难做到这点。 386在内部一次能处理32位(是286、8086和8088的两倍),并在外部一次用32位进行通信(是286和8086的两倍,8088和4倍)。但是在386问世时,可得到的芯片和设备大部分是16位的,因此无法充分利用这个优点。 (2)Intel公司认识到这点后就推出一个使用16位进行通信的386,这种处理器的优点是小而且便宜,这样386SX微机也就比386微机便宜些。386SX芯片与386芯片内部完全一样,唯有前者使用16位而不是32数据线并且较为廉价。但在486和Pentium芯片推出后,32位的386芯片也变得便宜了,因此现在的386SX也没什么优点了。 为了区分386的两种类型,新的叫386SX,原来的叫386DX,S表示Sigle(单),D表示Double(双)。作个类比,可将386DX对应于186和8086,而将386SX对应于188和8088。由于旧的习惯根深蒂固,386DX仍被大部分人简称为386。 (3)与286芯片比早期处理器以较快时钟速度运行一样,386也是设计成以286标准极限速度运行。第一台386的速度是12.5MHz和16MHz。但与同领域内的其他机器相比较,这种芯片用得却不多,不久,20MHz和25MHz的芯片就问世了,而且33MHz的标准也最终建立了。尽管有的制造商生产一些能以40MHz和50MHz运行的特殊芯片,但它们却因为33MHz是386可靠运行的上限而不很流行。另外486有更快的运行速度,这自然是渴望高速的386用户升级的道路。 (4)386的另一个改进就是有一个16位的预先读取的高速缓冲存储器,这种位于系统板上的存储器寄存了后面几条将要执行的指令。这使得386运行起来更加流畅,而无须在接收从系统内存传来的代码时等待。 (5)386处理器的另一变种是386SL,Intel研制SL的目的是为很小的微机着想,特别是那些用电池的,例如膝上机。这种处理器很小,只要可能随时都可以节约电池能量,而且它能执行在一般PC机上要其他芯片完成的功能。 386SL芯片系列是基于可兼容80386DX的微处理器。一些型号的386SL由于有一个双重的内部电源板,既能用3V也能用5V工作,这使得这种芯片既可以在电池供电的386机器上运行,也可以在一般的台式微机上使用。尽管SL芯片设计最初目的是延长便携机的电池的工作时间,但为了遵守环境保护机构(EPA)的能量之星计划,制造商也开始将SL芯片用在台式微机中。SL芯片不仅比一般芯片耗电少,而且有一电源管理电路在处理器不工作时,将它的电源切断。为了遵守EPA的总则(当机器不用时,最多有60瓦的能量浪费掉了),更多的处理器应采用此办法,而使用SL芯片是个良好的开端。SL CPU还将包括特殊的控制电路来管理微机其他部分的电源。(Intel公司称之为系统管理中断SMI,这是一个不可屏蔽的中断,它经常与一个辅助的重新恢复[RSM]指令一道使用)。 到目前为止,Intel公司提供以下四种386SL芯片。 ·5V,20/25MHz,有高速缓存 ·5V,16/20/25MHz,无高速缓存 ·3.3V,20MHz,有高速缓存 ·3.3V,16/20MHz,无高速缓存 除了低功耗和能源管理等特点外,SL芯片还可以使用一可选的Flash存储盘(Intel术语,为非易失的RAM使用)。虽然Flash存储器比一般RAM速度慢而且需要特殊的界面,但是,SL芯片能建立多达16MB的Flash内存,由一标准ISA数据总线驱动。 设计人员用SL芯片降低功耗的另一个办法是,在进行一个不需要很快时钟速度的操作时放慢系统时钟速度。一个芯片运行速度越快,功耗也越大,因此放慢系统时钟能减小功耗。例如在从键盘输入时,系统时钟可降为原来的1/2,1/4或1/8,而当要计算或更快速度的I/O操作时,SL又回到正常速度。 SL系列还有几个电池警告输入端,在电池快没电时用于关闭系统;这些输入也可使扬声器发出警报声,让用户知道系统因电池要用完而将其关闭。 386中还有来自IBM公司有意思的成员--386SLC。它是IBM在研究原有的80386芯片及其在上面运行的程序基础上研制出来的。80386SLC与Intel80386CPU在管脚上完全兼容,它由IBM公司设计并由Intel公司生产的。IBM宣称这种芯片的一些特点用于某些应用程序,可比一般386芯片性能提高88%。 386SLC基本上是一低功耗的386SX配上一个与80486芯片中类似的高速缓冲存储器, 而且还包括了全部80486SX的指令集,SLC还优化了现在许多应用程序调用的通用指令,因而能使用比一般386小的时钟周期执行。 80386或正如Intel公司正式宣布的那样,80386DX是iapx86家族功能更强的一员,在1985年被引入,80386源自于PGA封装并且等效于250000支晶体管。它体现了大量编程特性,包括在管理程序帮助下可以多任务地执行DOS程序,象Desq View/386或VMV386。它的32位数据通路加速 了数据存取,虽然对于数据来说,除了存贮板以外的很少的扩展板和一些LAA和磁盘控制器才用这所有的32位的能力。 5.80486处理器 Intel486比386又进了一步。它把其他两处重要的部件:数学协处理器和管理高速内存的高速缓存控制器加到386电路中去。它比386要快,而且与386完全兼容。所以原来的程序都不必修改,但是运行速度提高了。 (1)与386一样,也有一种486SX。486SX与一般486(Intel公司称为486DX)的差别并不和386SX与386的差别一样。486SX与486的不同之处仅仅是因为它没有数学协处理器。 尽管486的性能并没有比386高出一头,但其设计思想却意义非凡。例如486采用了流水线设计技术,这种先进设计使得486减少了大部分指令的时钟周期,它们只在一个时钟内就可完成。 486芯片是高集成度的超大规模集成电路(VLSI),它上面集成了120万个晶体管。这么高的集成度使得486设计很先进并且有很快的速度。 使486性能提高的一个特征是使用本身很小的电路元件。标准486芯片使用的元件只有1μm厚,50MHz的486使用只有0.8μm厚的元件,这么小的设计足以使时钟频率扩大到100MHz。 (2)486内部的协处理器在功能上与独立的80387完全一样。但在486中,协处理是主处理器的一部分,距离近多了,它做数学运算速度是80387的两倍。内部高速缓存缩短了处理器等待慢速DRAM(动态随机存储器)的时间。在处理器工作期间,高速缓存装满了最近使用内存空间中的信息和数据。当处理器从主存读信息时,先检查缓存,这样,在其中找到它所需信息的可能性很大。因为缓存就在片内,操作时比系统RAM要快多了。 (3)不同型号的486,其运行速度也不同。现在的最高速度是50MHz(DX2芯片可达60MHz),但它的设计可支持100MHz的操作,甚至更快。芯片的运行速度与其时钟速度成正比。例如:可以认为50MHz的486速度是25MHz的两倍,66MHz的486比50MHz的快30%。最新的486芯片--50MH z的486DX2和66MHz的486DX2设计成能直接插在原有33MHz的486DX插槽中,这些升级芯片在其内部以两倍于标准的速度运行,但为了与现有的电路兼容,与外界通信时仍使用33MHz的标准速度。 许多用户认为486SX是386DX合理而且经济的替代产品。486SX虽然稍贵一点,但按照Intel公司的说法,如果两种处理器以相同的系统速度运行,它的运行速度要比386DX快一倍。这使得在大多数应用中,对许多相对低档机器而言,486SX比386DX是更好的选择。而且,如果用户开始有了一台基于486SX的机器,而后又想使用协处理器,还可以再安装487SX。 (4)486芯片也有一个SL型,最初是为膝上机和其他便携机设计的。与386SL一样,这种芯片也使用3.3V而不是5V电源,并且也有内部切断电路,使处理器和其他一些可选择的部件在不工作时,处于休眠状态。486SL在执行可低速运行的任务时,像键盘输入,也可降低速度。 IBM公司也有自己的486--SLC2型,下面是这种型号的一些有意义的特征: ·只有0.7μm厚 ·有时钟加倍电路(类似Intel的DX2芯片) ·使用3.3V,低功耗电源(类似Intel486SL) ·高速缓存是386SLC的两倍,达到16MB IBM保证将来增强型的SLC芯片要通过加快速度,扩大总线和高速缓存来提高性能。它也正计划电压更低、功耗更小的设计并着手制定一个包括SLC技术的处理器升级策略。同时,Intel公司也公布了将SL处理器特征与486结合的集成低功耗芯片。这一举动实质上不用两个分开的芯片,将标准486做成功耗低的。Intel对新的Pentium芯片(本文后将讨论)也采取了同样的策略。因此简化生产线、增加产品的连续性并降低功耗是一个合乎逻辑的措施。 这一举动没有牵涉到新产品或新型号。电源管理电路(Intel称之为系统管理模式或SMM)仅被加入到现有的486DX,486SX和486DX2芯片中,有一种新的486DX2在内部以40MHz运行,它采用了这种方法。它真正意义是仅需要3.3V电压,从而减少了总的功耗。它可作为现有膝上机等便携机使用486SL的替代产品。 486系列产生线中一个有意义的成员,时钟加倍芯片或说DX2。这对Intel公司和许多有低级486机器并想更新的用户是很有意义的一步。我想再过几年随着芯片技术的发展,人们回顾时也许会说:“记得那可变的DX2设计吗?”和“我们为什么要它呢?”。但DX2却使用户能不扔掉任何东西而使其微机升级。 假如一台微机是按这种升级方式设计的,那么,用DX2芯片使现有486微机速度加倍有两种方法:可以简单地将原来的486CPU拨出来并插入DX2就行了;或者如果该机器有一个驱动插槽,可以将过驱动芯片插到插槽中。DX2芯片便接管系统,在其内部以两倍系统时钟速度运行,但仍以原有的时钟速度与外界通信。 因此,如果将一个50MHz的DX2芯片插到25MHz的机器上,CPU以50Hz速度运行并以25MHz速度执行I/O操作。66MHz的DX2插入到33HMz的机器上,内部以66MHz工作,但却仍以原来33MHz速度与其他部件联系。 6.再谈SX芯片的内部细节 如前所述,Intel公司几种处理器都生产两种类型:一种全功能的和另一种基本相似但只是外部数据通信位不同。例如,8088与8086类似,除了一次用8位而不是16位进行通信,188与186也是如此。同样,386SX一次用16位通信而一般的386有32位。为了能更好区分它们,Intel公司的把386称为386DX。 386SX经济上的重要性在于它比386DX便宜,对制造商来说投资较少,可生产较便宜的微机。(当然,由于更高级芯片(像486和Pentium)的推出,386SX和这一系列其他机器的价格都下降了)。 在486销售了一年后,Intel又推出了486SX,像386SX一样,这种处理器比它兄弟便宜,也降低了机器的价格。但与386SX(以及8088和80188)不同的是,486SX实际上就是486--两者完全相同--只是486SX的协处理器没被激活。 那么与486SX相匹配的协处理器487SX是什么呢?它就是一般的486,提供全部数学功能。当用户在微机中要插一片487,实际上是插了一片486,同时,原来的486SX就搁置在一边了。 用户会问:“为何要出售部分不能用的芯片呢?”这有两个原因。首先,Intel把处理器外部测试作为制造过程的一部分,任何有缺陷的芯片都被扔掉。对486来说,如果只是协处理器部分有问题而其他功能完好,那就可能当作486SX来销售。 第二个原因是与市场有关。PC制造商想给不同的市场提供不同的机器。Intel销售的两种486芯片使得制造商能销售两种486微机--一种针对需要最强功能的用户(486),另一种针对把经济作为首要考虑的用户(486SX)。 但用户买了一台486SX微机而后又想486,这种升级是比较昂贵的。因为487就是一个拥有全部功能的486。7.Pentium Intel486系列微处理器十分受欢迎。在谈论它的一位最新成员之前,先来看看下面这件事,如果读过某本计算机刊物,或看过某些受欢迎的电视节目,那读者也许知道新的Pentium处理器已经在用户、推销商、研究人员甚至新闻媒介中引起了极大的兴趣 。 (1)Pentium特性 ①与32位处理器一样,Pentium能在保护模式和实模式下运行。另外,这种64位芯片还有系统管理模式(SMM),这首先是386SL系列芯片引入的。但它对基本的电源管理还有些扩充。通过使用Pentium适当管脚上的信号,程序员能用SMM来控制系统其他部分的操作。例如SMM能管理一硬盘驱动器的电源,在未激活的扩展周期里关闭电源,并在接收到一数据请求时又将它打开。 Pentium采用与486一样的陶瓷封装,但要大得多。如果将Pentium与386和486的芯片放在一起作比较,很容易观察到486比386稍微大一点,而Pentium却明显地比486大,不过,这种芯片在大约一平方英寸的地方有3100万个晶体管,这确实是工程上一个惊人的技术,它内部元件的线宽只有0.8μm,大约只有一根头发丝的1/100。 Pentium是3100万个开关组成的CPU,只占有一平方英寸的小地方。但实际芯片要比一平方英寸大,因为要把它插到系统板上,而且要有273个引脚。 ②Pentium的指令集完全包括了Intel486的指令集,虽然还有些是专门供Pentium用的,所以在386或486编写的软件也能在Pentium上运行。Pentium有两个速度60MHz和66MHz。Intel宣称66MHz的机型要比较慢的机型运行速度快10%。 假如Pentium运行的程序充分利用了这种64位芯片的特征,它会比其先辈们快得多。而且,如果有为Pentium设计的硬件,即使运行基于486的软件也会快得多。 ③然而,Pentium不仅仅是具有一个宽的数据通道。它还有许多其他能帮助提高性能的特征,例如,一种双重流水线布局使处理器能同时执行两条指令:运行时,一边将流水线中的一条指令部分地译码,另一方面检查紧接着的下一条指令能否并行执行。如果可以,两条指令都放入流水线中同时执行。这是由一个能预知一条指令执行后分支走向的小高速缓存(分支目标缓冲区)来实现的。Intel公司宣称这种预计准确率超过90%。如果预知正确,就立即执行。这是由两个能在指令执行前获取代码的预取缓冲区来实现的。 与486一样,Pentium也有自己的协处理器。然而,其中的浮点单元完全重新设计,使得执行加、乘、取一般操作比486快了10倍。 ④片内高速缓存是总体上改进处理器的一种方法,而且现代化的芯片采用这种方法已有一段时间了。Pentium有两个8KB的高速缓冲存储器,一个存放程序代码,一个存放数据。这种将高速缓存分开的做法减少了冲突,提高了性能。很明显,如果处理器知道去哪找数据,比在运行时将程序代码和数据分开可快多了。Intel公司宣称,采用这种双高速缓存使任何给定程序所需的数据和代码在95%的时间内都可在高速缓存中找到。这样,更有理由认为Pentium具有卓越的性能。 (2)Pentium处理器框图 精确地讲解每个部件的功能超出了本附录的范围,但读者可在图13中找到感兴趣的东西,并了解各部分是如何互相联接的。 这个图也很好地说明了地址和数据总线如何独立工作。与其前辈一样Pentium也使用32位地址总线,使之能寻址4GB(2^32=4294967296)内存。显然,这比可能装在母板上的内存要多得多,但当真正的多任务和分布式处理可以使用时,几千兆字节的内存就不会再吓人了。 另一个值得一提的问题是,Intel公司从一开始就计划用Pentium处理器升级现有的基于486的系统。最初,把Pentium加到486机箱后,有发热的问题,但用最新的驱动芯片插在按Pentium升级思想设计的系统中便可以很好地工作,这避免了已有系统随着技术进步而被废弃。 (3)Pentium的内部细节 ①流水线技术是当今芯片的一个非常重要的特征,这是一种在执行前一条指令的同时提取下一条指令的能力。流水线技术在早期的一些处理器上就用过,如6502,它是一种十分流行的高速8位芯片,比设计IBM PC还早。Intel 486也使用流水线技术。 Pentium采用了流水线技术,不过它是一个提供最佳吞吐量的有效的设计。它的效率部分归功于它的高级设计。它能同时并行地执行两条指令,因为两条流水线都需要预取指令。这种并行执行或配对,在单一时钟周期里能在每条流水线上处理完整的指令。 除了两条流水线不相同的情况,指令配对将使处理器速度加倍。U流水线部件能执行386指令集中所有的命令,而V流水线部件只能执行“简单”指令,即那些设计成能与其他指令配对的指令。每个流水线部件依次由五个执行阶段组成:预取,指令译码,产生地址,执行写回。 两条指令欲要同时执行,都必须尽可能简单,即实现指令的整个硬件线路在处理器里而,因此,不需任何微代码控制。这些简单指令能在一个时钟周期完成。如果用户是一个对优化代码感兴趣的程序员,应仔细研究Intel配对指令表,在设计程序时尽可能将它们放在一起。对大多数人来说,了解并行执行非常有趣,但它远非听起来那么简单。 分支预知是Pentium另一有趣和超前的特征。尽管Pentium的分支目标缓冲器(BTB)不能正确地预知每一分支,但能做到大部分正确。这使得大部分的分支能在一个时钟内执行并与其他完整的指令并行。 这对某些操作可能意味着速度上有极大的提高。例如,一个循环程序(如计算质数)包括移动、比较、加法和跳转,在486上可能要六个时钟周期。但在Pentium上,移动指令和比较指令是配对的,比较和跳转指令也是配对的,因此采用分支预知技术,只要两个时钟周期就够了。 这实际上虽未节省多少时间,但在一个需要成百上千个这样循环的程序中,总的速度显著地提高了。 再来看看在Pentium内的16KB内部高速缓存,它分成两个各8KB的模块,一个负责数据,另一个负责程序代码。记住高速缓存是用来存放未被调用过的数据和指令,但是高速缓存控制逻辑认为它们不久就要用到。 这是高速缓存为Pentium运行的程序所做的事情。而且,按照Intel公司的说法,控制逻辑在决定哪些数据和程序代码应放在高速缓存,其中95%都是正确的。两个高速缓存能同时寻址,而且调用程序在一个时钟周期内能得到32字节源代码和两个数据参考。 ②最后,考察一下Pentium的一个新的标准芯片特征,这个也适合标准的486,即系统管理模式(SMM),SMM使系统设计人员能实现十分高级的功能,其中包括电源管理以及对操作系统和正在运行的程序提供透明的安全性。 SMM与保护模式一样,属于Pentium的一个主要特征,也是Pentium的一种操作模式。但SMM不是为应用软件访问设计的,这个模式的特征是由植入机器内部的固件(装有系统级程序代码的ROM)来控制的。 这种两者之间转换的实现是借助于Pentium中一个名为SMRAM(系统管理随机存储器)的特殊存储空间。它用来保存SMM程序指令及被中断程序寄存器的状态。同时,由操作系统或应用软件控制的正常中断均失效,使SMM程序能完全控制系统。 在SMM代码执行完后,所有一切都恢复到SMM中断发生前的状态。应用或系统软件在被中断的地方继续执行,而不会认为被挂起一段时间。 SMM最显著的应用就是电源管理。SMM可以使处理器和系统外围部件休眠一定时间,然后在有一键被按下或鼠标被移动时唤醒它们,并使之继续工作。然而,SMM并不仅仅限于这个特征,它能完全控制整个系统,包括输入输出和全部4GB的RAM。因此,一个微机开发人员可以用SMM来实现特定的产品。