1.1细看处理器与主存储器我们已经了解到所有计算机有类似的能力且能执行相同的功能,尽管一些可能比其他的快。我们知道电脑系统有输入、输出、仓储、加工的元件,还知道处理器是计算机系统的“智能”部分,并且知道一个简单的计算机系统可以有几个处理器。我们已经讨论了在电脑系统中数据以被称作位的电子状态来表示。我们现在准备阐释计算机系统核心的内部活动——处理器。电脑的内部操作很有趣,但真的没有什么奥秘的事。这种神秘性存在于那些道听途说和相信科幻作家的人心中。计算机是不会思考的电子设备,它必须插入电源,就像一台烤面包机或一盏灯。毫不夸张地讲,市场上有几百种不同类型的计算机在销售。每种类型可能都很复杂,但每个处理器,有时被称为中央处理器或者说CPU,只有两个基本部分:控制单元,算术和逻辑单元。主存储器在处理器的内部发挥着重要作用。这三个——主存、控制单元,算术和逻辑单元——一起工作。让我们来看看他们之间的功能和联系。与磁辅助存储设备,如磁带、磁盘相比,主存没有移动部件。没有机械的运动,数据可以以电子的速度被存取访问,接近光速。今天大多数电脑的主存使用DRAM(动态随机访问存储器)技术。先进的DRAM芯片大约有1/8邮票那么大,大约可以储存256,000万位或多于25,600,000字符的数据。主存储器,或者主存,提供给处理器的程序和数据暂时的存储。在可执行程序或数据可以被处理之前,所有的程序和数据必须被从输入设备(如VDT)或从辅助存储(如磁盘)转移到主存储器。主要的存储空间总是很少;因此,在一个程序被执行后,它占领的储藏空间会被重新分配给另一个等待执行的程序。图1-1说明了所有的输入/输出(I/O)“读”或“用”主要的存储。图中(输入)探讨是在VDT上。消息被查询的形式,是通过一个渠道到主存储器(如同轴电缆)。消息被解释,处理机从辅助存储设备取出所需的程序和数据。程序和数据被“装好”,或移动,从辅助存储器到主存储器。这是一个无损阅读过程。也就是说,程序和数据被从主要存储器(暂时的)和辅助存储器(永久)中读取。数据根据程序指令被操作,报告被从主存储器写入到打印机。一个程序指令或一块数据保存在的特定的主存单元被称为地址。地址允许程序指令和数据被存储,访问和加工。每一个地址的内容随着不同程序的执行和新的数据的处理是不断变化的。主存储器的另一个名字是随机存取存储器,或RAM。一种特殊类型的主存储器,称为只读存储器(ROM),不能被程序员改写。ROM的内容被制造商作为“只读”所固化(设计在芯片的逻辑上)。当你打开微机系统,一个ROM中的程序自动启动计算机系统。然后ROM程序初步显示屏幕提示。ROM的一种变种是可编程的只读存储器(PROM)。RPOM是让用户能装载“只读”的程序和数据的ROM。一旦一个程序被加载到PROM,它简直从不改变。然而,如果你需要能够修改内容的PROM,有EPROM,可擦写的PROM。在写操作之前,所有的储存单元必须被删除到同样的初始状态。一个更具有吸引力的形式的主读存储器是电可擦可编程只读存储器(EEPROM)。在任何时候都可以写入,不需擦除原先内容,且只是更新寻址到的字节或多个字节。EEPROM把非易失性优点和可更新、需更新的地方的灵活性结合起来,修改时使用普通的总线控制线、地址线和数据线。另一种形式的半导体内存是闪存(这样命名因为速度)。闪存在耗费和功能上介于EPROM和EEPROM之间。和EEPROM一样,闪存使用的是电擦除技术。整个闪存在一个或几秒钟内可以被消除,这比只读存储器快得多。另外,可能消除只是块的内存,而不是整个晶片。然而,闪存不提供字节级的擦除。与EPROM一样,闪存每位只使用一个晶体管,所以能达到EPROM的高密度。高速缓冲存储器程序和数据从辅助存储装载到RAM,因为从RAM访问一个程式指令或者一段数据所需要的时间远远低于从辅助存储器。从磁盘存储器上存取单个数据所花的时间,可以从RAM中存取几千条指令或数据]。RAM实质上是一种数据和程序的高速起降缓冲区。事实上,没有什么真正发生在计算机系统中,直到程序指令和数据转移到处理器。这转移到处理器的指令和数据可能是费时的,即使在微秒级速度。为了促进指令和数据更快的转移,大多数电脑到处理器被设计通过高速缓冲存储器。高速缓冲存储器主要被电脑设计师用于增加吞吐量(计算机系统的工作速率)。像RAM一样,高速缓存是一项高速起降缓冲区程序数据和指令。然而,缓存存储器使用静态存储器(静态的内存)技术,大约有RAM的10倍速度和100倍的花费。只有RAM一小部分的内存容量,高速缓存只保持下一步可能需要由处理器处理的程序和数据。两种类型的高速缓冲存储器广泛应用于电脑。第一个被称为内部缓存和建在中央处理器的芯片。第二个,外部高速缓存,位于靠近CPU的地方。计算机可以有几个不同层次的高速缓冲存储器。一级缓存几乎总是建成芯片。二级缓存曾经是外部高速缓存,但现在通常像一级缓存一样也建到CPU。1.2总线互连总线是连接两个或多个设备的通信通路。总线的关键特征是,它是一条共享传输介质。多个设备连接到总线上,任一个设备发出的信号可以为其他所有连接到总线上的设备所接收。如果两个设备同时传送,它们的信号将会重叠,引起混淆。因此,一次只能有一个设备成功地(利用总线)发送数据。典型的情况是,总线由多条通信通路或线路组成,每条线(路)能够传送代表二进制1和0的信号。一段时间里,一条线能传送一串二进制数字。总线的几条线放在一起能同时并行传送二进制数字。例如,一个8位的数据能在8条总线线上传送。计算机系统包含有多种不同的总线,它们在计算机系统层次结构的各个层次提供部件之间的通路。连接主要计算机部件(处理机,存储器,I/O)的总线称为系统总线。系统总线通常由50~100条分立的(导)线组成。每条线被赋予一个特定的含义或功能。虽然有许多不同的总线设计,但任何总线上的线都可以分成三个功能组:数据线、地址线和控制线。此外可能还有为连接的模块提供电源的电源线。数据线提供系统模块间传送数据的路径,这些线组合在一起称为数据总线。典型的数据总线包含8、16或32根线,线的数量称为数据总线的宽度。因为每条线每次传送1位,所以线的数目决定了每次能同时传送多少位。数据总线的宽度是决定系统总体性能的关键因素。地址线用于指定数据总线上数据的来源和去向。例如,如果处理机希望从存储器中读一个字的数据,它将所需要字的地址放在地址线上。显然,地址总线的宽度决定了系统最大可能的存储器容量。控制线用来控制对数据线和地址线的访问和使用。由于数据线和地址线被所有部件共享,因此必须用一种方法来控制它们的使用。控制信号在系统模块之间传送命令和定时信息。定时信息指定了数据和地址信息的有效性,命令信号指定了要执行的操作。大多数计算机系统使用多总线,这些总线通常设计成层次结构。图1.3显示了一个典型的高性能体系结构。一条局部总线把处理机连接到高速缓存控制器,而高速缓存控制器又连接到支持主存储器的系统总线上。高速缓存控制器集成到连接高速总线的桥中。这一总线支持连接到:高速LAN、视频和图形工作站控制器,以及包括SCSI和FireWire的局部外设总线的接口控制器。低速设备仍然由分开的扩充总线支持,用一个接口来缓冲该扩充总线和高速总线之间的通信流量。快速外设部件互连提升性能在过去的十年里,PCI总线一直是PC机和服务器的主流I/O架构。PCI传送由微处理器、网卡、图形卡和与它相连的其他子系统所产生的数据。然而,随着计算元件的速度和性能的提高,PCI的带宽限制和并行效率低下逐渐成为系统性能的瓶颈。PCI是一种有多个适配器的单向平行总线体系结构,必须争夺可利用的总线带宽。虽然PCI接口的性能几年来不断得到改进,但信号偏离(数据位到达目的地太晚),信号路由以及无法降低电压或提高频率等问题,无不表明该架构走到了尽头。额外的努力去提高它的性能将会花费很大而且不切实际,一些卖主,包括业内一些最大最成功的系统开发商,发起了一项被称为PCIExpress的I/O架构(最初被称为第三代I/O,或3GIO)。PCIExpress是点对点的切换体系结构,创造了高速、CPU和系I/O统之间的双向链接(开关是由主桥连接到CPU上)。每一个这些链接都有一个或多个包含四条线的线缆——两条用来传送数据两条用来接收数据。这些线缆的设计能使其在低电压下的使用(导致低力量的使用),减少电磁排放,消除信号偏离,降低成本自然也提高了性能。在最初的设计实现中,PCIExpress可以得到在每条线路上的每个方向以2.5Gbit/秒的速度转移。相比之下,PCI-X1.0版本的PCI架构,是如今最常见的,提供1Gbit/秒的吞吐量。PCIExpress卡的吞吐量可在四或八线配置(称为x4和x8),x4PCIExpress卡所能提供的吞吐量高达20Gbit/秒,而x8PCIExpress卡所能提供的吞吐量高达40Gbit/秒。早期尝试创建一个新的PCI架构失败了,这在一定程度上是因为他们需要太多的变化到系统和应用软件。驱动程序,实用程序和管理应用均需要被改写。PCIExpress的开发人员消除了对新操作系统支持的依赖,让PCI兼容的驱动程序和应用程序无需改变就能在PCIExpress硬件上运行。未来总线开发人员正在提高PCIExpress的可扩展性.当前服务器和桌面系统支持PCIExpress适配器和图形卡高达8通道,这种体系结构在将来能够支持多达32个通道。第一个光纤通道主机数据适配器被设计来支持四通道而不是八通道,部分原因是由于服务器开发商已经将他们的系统设置成了四通道插槽,。甚至更大的带宽是必须的,执行一条八通道道设计能够将性能提高一倍,假如系统中没有其他瓶颈。这种可伸缩性加上每个通道的速度有望加倍,达到5Gb/s(兆位/秒),将保持PCIExpress在可预见的未来仍然是设计师课实施的方案。PCIExpress是PCI上重大的提高,并且,在它的发展路上正逐步形成对PC机,服务器的更多的新的标准。它不仅可以降低成本,提高可靠性,但是它也大大提高了性能。应用程序如音乐、视频流、视频点播、网络电话和数据存储将受益于这些改进。2.4外部接口:SCSI和火线I/O模块到外设的接口必须按该外设的性质和操作来设计改制。接口的一个主要特性是串行还是并行。在并行接口中,连接I/O模块和外设的线有多根,同时传送多位,就象在数据总线上同时传送一个字的所有位。在串行接口中,只有一条线用于传送数据,每次传送一位。通常,并行接口用于高速外设,诸如磁盘和磁带。串行接口更常用于打印机和终端。什么是USB?在计算机周围呆过2到3年以上的人都知道USB试图解决的问题——在过去,把储设备连接到计算机一直是头痛问题!打印机连接到并行打印机端口,而大多数计算机只有一个。Zip驱动器那些设备需要一个计算机的高速连接也将使用并行端口,经常很少成功且速度不快。调制解调器使用串口端口。大多数计算机最多有两个串行端口,并且在大多数情况下,它们是很慢的。需要更快连接的设备有它们自己的卡,这些卡必须插入计算机机箱内相符合的卡槽口。遗憾的是,卡槽口的数目有限,并且你需要一个博士生为某些卡安装软件。USB的目标是结束所有这些头痛问题。通用串行总线给你一个单一的、标准的、容易用的方法,把多达127个设备连接到一台计算机上。把一台USB设备连接到计算机是简单的——你只要在你的机器背后或正面找到USB插头插入即可。如果它是一个新设备,操作系统自动检测到它,并要求该设备的驱动程序盘。如果该设备已经安装,计算机就激活它并开始与它通话。USB设备可以在任何时间连接和断开。一根USB电缆有两根线用于电源(+5伏和地线),一根双扭线传送数据,低功率设备(为鼠标)能够直接从USB总线获得它们的电源。高功率设备(为打印机)有它们自己的电源并从总线获得极小的电源,单根USB电缆能延伸5米长;用几个集线器,设备可以离主机30米(6根电缆)。许多USB设备有它们自己的内部电缆,且该电缆有一个“A”连接。如果没有内部电缆的话,那么该“A”插口上行接向计算机“B”插口下