《计算机组成与结构》学习笔记

 2021-10-10 18:31  阅读(60)
文章分类:计算机组成原理 文章标签:计算机原理计算机组成原理
©  原文地址:https://zhuanlan.zhihu.com/p/150094409

一、计算机是一种现代化的信息处理工具

更具体地说,电子计算机是一种能对数字化信息进行自动高速运算的通用处理装置。(1)信息。可以是数值、文字、图形、图像、声音、视频等多种不同类型的信息,其表现手段可以采用数字化形式或模拟量形式,但目前绝大部分计算机均为数字计算机,少量为模拟计算机,因此这里仍称数字化信息。随着计算机技术的不断发展和应用领域的不断扩大,信息类型可能会越来越多。(2)运算。主要包括算术运算和逻辑运算。它把现代电子计算机运算的自动和高速与以前的算盘及各类机械式计算器区分开来。(3)处理。除了能计算外,还能进行搜索、识别、变换,甚至联想、思考和推理等。并且,随着计算机软、硬件技术的不断发展,其处理功能会越来越强。

世界上第一台电子计算机是1946年在美国诞生的ENIAC,其设计师是美国宾夕法尼亚大学的莫齐利(Manchly)和他的学生艾克特(Eckert)。ENIAC有5种功能:每秒5000次加法运算;每秒50次乘法运算;平方和立方计算;sin和cos函数数值运算;其他更复杂的计算。当时用它来进行弹道参数计算,60秒射程的弹道计算时间由原来的20分钟一下子缩短到仅需30秒。因此,ENIAC的名声不胫而走。当时,它是个庞然大物,耗资40万美元,含有18000个真空管,重30吨,耗电150千瓦,占地面积约140平方米。该机正式运行到1955年10月2日,十年间共运行了80223小时。它的算术运算量比有史以来人类大脑所有运算量的总和还要大。说到电子计算机的诞生,不得不提到一位计算机领域的先驱,20世纪三四十年代著名的数学家和逻辑学家图灵(A.M.Turing)。他于1936年在权威的数学杂志上发表了“可计算数学及其在判断问题中的应用”一文,提出了一种理想的计算器数学模型(图灵机),现已成为计算机科学中“可计算理论和计算复杂性”的理论基础。他后来还提出了“机器能思考”的构想,因此人们称他为“人工智能之父”。国际计算机协会(ACM)为了纪念他,于1966年专门设立了“图灵奖”,以奖励世界上在计算机领域作出重要贡献的科学家。

二、计算机发展历程

**电子计算机的发展历史表明,计算机硬件的发展受电子开关器件的影响极大。**为此,人们习惯以元器件的更新来作为计算机技术进步划代的主要标志。从20世纪40年代起,计算机已经历了四代发展历程。目前人们正在致力于新一代计算机的研究。

第一代计算机为电子管计算机,其逻辑元件采用电子管,存储器件为声延迟线或磁鼓,典型逻辑结构为定点运算。计算机“软件”一词尚未出现,编制程序所用工具为低级语言。电子管计算机体积大,速度慢(千次或万次运算每秒),存储器容量小。典型机器除上述的ENIAC外,还有EDVAC、EDSAC等。第一台计算机ENIAC没有采用二进制操作和存储程序控制,未具备现代电子计算机的主要特征。1945年3月,冯·诺依曼领导的小组发表了二进制的程序存储方式的电子数字计算机方案EDVAC,宣告了现代计算机结构思想的诞生,但该机直到1951年才告完成。而英国剑桥大学的M.V.Wilkes在EDVAC方案启发下,于1949年制成的EDSAC成为世界上第一台存储程序式的现代计算机。此外,尚有1951年的UMVAC-1和1956年的IBM-704等。

**第二代计算机为晶体管计算机。**1947年,美国贝尔实验室发明的半导体三极管为计算机的发展创造了新的物质基础。该实验室于1954年制成了晶体管计算机TRADIC,而麻省理工学院于1957年完成的TX-2对晶体管机的发展起了重要作用。IBM公司于1955年宣布的全晶体管计算机7070和7090,开始了第二代计算机蓬勃发展的新时期。1959年IBM公司推出的商用机IBM 1401,更以其小巧价廉和面向数据处理而获得广大用户的欢迎,从而也促进了计算机工业的迅速发展。这一代计算机除了逻辑元件采用晶体管以外,其内存储器由磁芯构成,磁鼓与磁带成为外存储器。计算机典型逻辑结构实现了浮点运算,并提出了变址、中断、I/O处理等新概念。这时计算机软件也得到了发展,出现了多种高级语言及其编译程序。和第一代电子管计算机相比,第二代晶体管机体积小、速度快、功耗低、可靠性高。

**第三代计算机为集成电路计算机,其逻辑元件与存储器均由集成电路实现。**这是微电子与计算机技术相结合的一大突破,从而可以廉价构成运算速度快、容量大、可靠性高、体积小、功耗少的各类计算机。这一代计算机的典型代表是IBM公司于1964年4月推出的IBM 360系统,这是计算机发展史上具有重要历史意义的事件。该系统采用了计算机科学技术中一系列新技术,包括微程序控制、高速缓存、虚拟存储器、流水线技术等。IBM公司一次就推出6种机型,相互兼容,既可用于科学计算,又可用于数据处理;软件首先实现了360操作系统,具有资源调度、人机通信和输入/输出控制等功能。IBM 360系列的诞生,对计算机的普及和大规模工业生产产生了重大影响。到1966年底,360系列机的产量已达到每月400台,5年内的总产量超过33000台。这一时期还有另外一个重要特点:大型/巨型机与小型机同时发展。1964年推出的CDC6600及随后的CDC7600和CYBER系列是大型机代表,它们采用多处理机结构。巨型机有CDC STAR-100和64个单元并行操作的ILLIAC IV阵列机等。小型计算机的发展,对计算机的推广使用产生了很大影响,DEC公司的PDP系列是典型代表。

**第三代计算机为集成电路计算机,其逻辑元件与存储器均由集成电路实现。**这是微电子与计算机技术相结合的一大突破,从而可以廉价构成运算速度快、容量大、可靠性高、体积小、功耗少的各类计算机。这一代计算机的典型代表是IBM公司于1964年4月推出的IBM 360系统,这是计算机发展史上具有重要历史意义的事件。该系统采用了计算机科学技术中一系列新技术,包括微程序控制、高速缓存、虚拟存储器、流水线技术等。IBM公司一次就推出6种机型,相互兼容,既可用于科学计算,又可用于数据处理;软件首先实现了360操作系统,具有资源调度、人机通信和输入/输出控制等功能。IBM 360系列的诞生,对计算机的普及和大规模工业生产产生了重大影响。到1966年底,360系列机的产量已达到每月400台,5年内的总产量超过33000台。这一时期还有另外一个重要特点:大型/巨型机与小型机同时发展。1964年推出的CDC6600及随后的CDC7600和CYBER系列是大型机代表,它们采用多处理机结构。巨型机有CDC STAR-100和64个单元并行操作的ILLIAC IV阵列机等。小型计算机的发展,对计算机的推广使用产生了很大影响,DEC公司的PDP系列是典型代表。

① 由于定律预测半导体产品和技术每经过一年半时间将会加倍,因此如果发展速度慢于这个定律的指标,那么公司将有被淘汰的危险。“逆水行舟,不进则退”,这就迫使公司不断地改进技术,提高质量。② 芯片价格的持续下降,一方面迫使公司必须采取正确的价格策略,以提高产品的竞争力,另一方面也为计算机的普及创造了有利条件。③ 定律不仅适用于“硬件”,同时也驱动着软件产业和市场的发展。由于硬件性能的不断改进和提高,软件也必须适应硬件的发展而进行不断的修改与创新,否则也将面临被淘汰的危险。微软公司总裁比尔·盖茨经常以下面一句话来鞭策下属:“微软离破产永远只有一年半时间!”

三、计算机系统的层次结构

计算机系统是包括计算机硬件和软件的一个整体,两者不可分割,但处于不同的层次上。没有计算机软件的“裸机”发挥不了任何作用,等于人只有躯壳,没有灵魂一样。而硬件是软件的物质基础,正是由于硬件的高度进步才为软件的发展提供了舞台。从1.2节叙述中可看到,尽管计算机换代的标志是组成计算机的逻辑元器件,但每次换代,随着新元器件的推出,计算机性能的大幅度提高,计算机的结构得到了不断改进,计算机软件也产生了革命性的变化。这里给出一个计算机系统的层次结构模型,如图1.1所示。底层(0层)为硬件内核;而第1,2层为该机的指令系统及为实现该指令系统所采用的实现技术——组合逻辑技术、微程序控制技术或PLA控制技术;第3,4层为系统软件;第5层为应用软件;第6层是系统分析软件。当然,这种划分也是相对而言的,它们之间会有交叉。

202110101831574791.png202110101831577242.png

四、计算机基本组成

计算机由运算器、存储器、控制器、输入和输出五个部件组成,如图1.2所示。① 运算器。进行算术运算和逻辑运算的部件,运算数据以二进制格式给出,可从存储器取出或来自输入设备,运算结果或写入存储器,或通过输出设备输出。图1.2 计算机基本组成② 控制器。协调整个计算机系统的正常工作。它主要包括指令寄存器、指令译码器及时序控制器等部件,运算器与控制器一般又称为中央处理部件CPU(Central Processing Unit),它是计算机的核心部件。③ 存储器。存放数据和程序的部件,它通过地址线和数据线与其他部件相连。④ 输入/输出部件。包括各类输入/输出设备及相应的输入/输出接口。

202110101831579003.png202110101831580794.png

根据冯·诺依曼的“存储程序工作方式”计算机这一最主要的特点,现实世界中某一问题,只要可以提出解决该问题的相应算法,从而编制有效的计算程序,该问题就可以在计算机中求解。正因为这一特点,也给现代计算机带来了一定的局限性:现实世界中还找不出有效算法或还无明确的计算方法的问题,计算机就显得无能为力了。几十年来,人们一直试图突破冯·诺依曼计算机的这一局限性,使计算机具有自学、推理、联想、思考等能力。一句话,使计算机更智能化、更聪明。

五、存储器的主要性能指标

电子计算机出现至今的几十年内,存储器的介质和特性虽然有了很大变化,但评价其特性的主要标准仍然是大容量、高速度和低价格。(1)存储器的容量指它能存放的二进制位数或字(字节)数。(2)存储器的速度可用访问时间、存取周期或频宽来描述。访问时间一般用读出时间TA及写入时间TW来描述。TA是从存储器接到读命令以后至信息被送到数据总线上所需的时间。TW是将一个字写入存储器所需的时间。存取周期是存储器进行一次完整的读/写操作所需要的全部时间,也就是存储器进行连续读/写操作所允许的最短间隔时间。一般用TM表示,它直接关系到计算机的运算速度。一般有TM>TA,TM>TW式中,TM的单位常采用μs(微秒)或ns(纳秒)。存储器的频宽B表示存储器被连续访问时,可以提供的数据传送速率,通常用每秒传送信息的位数(或字节数)来衡量。(3)存储器的价格可用总价格C或每位价格c来表示,若存储器按位计算的容量为S,则c=C/S总价C中应包括存储单元本身的价格及完成存储器操作所必需的外围电路的价格。

六、CPU内部单总线组织的数据通路

202110101831582105.png202110101831585666.png

图6.1给出了一个CPU内部组成方式。图中将ALU及所有的CPU寄存器通过一条公共总线连接起来,因为此总线是在CPU内部,所以又称内部总线。注意,不应该把它与连接CPU、存储器和I/O设备的外部总线相混淆。图6.1中存储器总线经由存储器数据寄存器MDR和存储器地址寄存器MAR连到CPU。寄存器R0~R(n-1)是供程序员使用的通用寄存器,它的功能及数量都因机器而异,其中一部分可用作专用寄存器,如变址寄存器或堆栈指针等。寄存器Y和Z对程序员而言是透明的,它们仅被CPU用作某些指令执行期间的临时存储。指令寄存器IR和指令译码器是CPU内部控制电路的主要部件。根据指令的执行过程,CPU至少应有以下4种基本功能:●读取某一主存单元的内容,并将其装入某个CPU寄存器;●把一个数据字从某个CPU寄存器存入某个给定的主存单元中;●把一个数据字从某个CPU寄存器送到另一个寄存器或者ALU;●进行一个算术运算或逻辑运算,将结果送入某个CPU寄存器。为了讲清基本概念,下面以图6.1所示的CPU结构来说明以上4种基本功能是如何实现的,这对了解当今高性能处理器的复杂硬件结构很有帮助。

七、 计算机硬件技术的发展

为提高计算机系统(特别是巨型机)的性能所采用的若干并行处理技术,如阵列机、多处理机系统(MPP SMP Cluster)、分布式系统。

新一代计算机的展望:生物计算机、量子计算机、纳米计算机、超导计算机和光计算机。计算机诞生几十年来,科学家们坚持不懈的努力,无非是朝着不断提高计算机速度、增加存储容量和扩充计算机性能等几个方面发展。为了实现以上目标,除了元器件的更新换代导致计算机换代以外,计算机并行处理技术是近年来提高计算机速度和性能的最主要的手段之一。

八、并行处理系统的发展过程

传统意义上的计算机是串行计算机,它顺序取出指令,顺序执行指令,这影响着速度的提高。当然,由于微电子技术的飞速发展,多年来,微处理器性能和速度均有了很大的提高。但是,由于微电子工艺受量子效应等物理规律的限制,半导体器件的开关速度已接近物理极限,提高计算机系统处理能力将主要依靠并行处理技术。为此,并行处理系统成为计算机界最受重视的研究领域之一。并行处理的实现有以下多种技术途径:(1)时间重叠。如第6章中介绍的流水线,多条指令的不同阶段在时间上错开。(2)资源重复。多个相同设备同时工作,将一个任务分成多个相互独立的运算,交由不同设备同时完成。(3)资源共享。采用软件手段让用户按时间片轮流使用同一硬件资源,以提高利用率。并行处理系统可以有4个级别的并行:① 指令内部。指令微操作的并行执行。② 指令级。逐步取出多条指令并行执行。③ 任务或过程级。一个程序分解成多个子任务或子过程,各个子任务可以在一个系统内的不同处理机上同时运行。④ 作业或程序级。多个作业或多个独立程序,在并行处理系统的不同处理机上同时运行。

可以分为三个阶段。(1)萌芽阶段(1964—1975年)。20世纪60年代中期,阵列处理机和向量计算机等并行处理系统陆续从实验室走向市场。CDC 6600是公认的世界上第一台并行处理巨型机,运算速度达1Mflo/s;1974年,ILLIAC IV并行机成为最早的SIMD(单指令多数据)阵列机,有64个处理器。(2)向量机鼎盛阶段(1976—1990年)。1976年Cray公司推出了Cray-1向量机,开始了向量机阶段。随后,Cray,DEC,NEC等公司相继生产了多个系列的向量机。整个20世纪80年代,向量机成为超级并行计算机的主流,并出现了并行向量处理机(PVP)。(3)MPP机蓬勃发展阶段(1990年—至今)。20世纪90年代开始,由于高性能微处理器的发展,大规模并行处理MPP(Massively Parallel Processing)摆脱了多年来徘徊不前的局面,开始了大发展。1996年12月宣布的Option Red(Intel公司),其速度首次超过万亿次浮点运算每秒。Cray,IBM,Intel,TMC,BBN等公司相继推出多种类型的MPP机,MPP成为超级并行计算机的主流。

并行系统还可以从用户角度按计算粒度进行分类:细粒度、中粒度和粗粒度。所谓计算粒度是指并行处理系统中处理机独立执行的基本程序的大小,即并行执行多少条指令。细粒度并行系统一般由大量简单的处理机组成,大多是按同步方式工作的SIMD计算机系统,而中、粗粒度并行系统大多是按异步方式工作的MIMD系统。一般地,粒度越细,并行程度越高,相应的通信与同步开销也越大。并行处理系统广泛应用于大型科学和工程计算及大型事务处理。其典型实例包括数值天气预报、空气动力学计算(如模拟风洞实验)、海洋动力学与天体物理学计算、核反应模拟、石油勘探、基因分析与遗传工程研究、模式识别与人工神经网络计算、VLSI芯片设计及有限元分析等。由工作站或小型机厂家生产的共享存储器的多处理机服务器,也已在金融、商贸、交通、通信、政府和企事业单位管理等方面发挥重要作用。

九、分布式系统

一般认为,集中在同一机框或同一地点的紧密耦合的多处理机系统为并行处理系统,而用局域网或广域网连接起来的多种类型计算机组成的系统为分布式处理系统,其典型物理结构如图10.8所示。用户通过终端、PC机或工作站等透明地使用网络中的各种资源,包括具有大规模高速处理能力的巨型计算机、服务器、大型数据库等。用户只需要向系统提交任务,系统会根据负载情况自动调配各种资源去完成用户提交的任务,用户不必了解系统完成任务的过程与具体细节。

202110101831587077.png![Image 1][]

分布式系统中的计算机组成绝大多数为异构型,包括硬件异构和软件异构,可以是不同类型的计算机,所用操作系统、数据库管理系统也不同。这种异构主要是由用户的要求异构造成的。异构系统可以提高系统性价比,充分发挥每一资源的效率。异构也给系统实现带来了一定困难,其要解决的最关键问题是互操作性,即允许在多种平台间实现数据的通信和程序执行。要解决互操作性问题可以采用以下三种技术来实现。① 采用标准接口。如Internet上众多计算机可以用TCP/IP协议进行通信。② 使用中间件。借助支持平台间相互作用的软件,实现平台间的数据通信和程序执行。③ 使用与平台无关的编程工具。如用Java语言编写的程序可以在不同平台上运行。

十、量子计算机

微观世界的某些物理量不能连续变化而且只能取某些分立值,相邻的两分立值之差称为该物理量的一个量子。量子化领域内,牛顿定律不再适用,因此有量子力学之说。以量子力学理论为信息处理理论基础并以量子器件构成的计算机,称为量子计算机。量子计算机与传统计算机相比,有以下两个优点:一是量子计算机能够解决一些传统计算机无法处理的问题;二是量子计算机能够将某些用传统计算处理为指数复杂性的问题降为多项式复杂性。早在20世纪80年代初,美国加州理工学院的物理学家Richard P.Feynman首先提出了量子计算机的的学者概念和初步构想,并从理论上建立了一个抽象的量子计算机模型。其后,英国牛津大学物理学家David Dentsch构造了世界上第一台通用量子计算机。该机不仅能完成图灵机所能完成的计算,而且还能完成某些图灵机所不能完成的计算。这一成果,激发了大家去研究量子计算机的信心。量子位(Qubit)是量子信息理论的基础,它比通常的信息位(bit)复杂得多,1个量子位可以是0,1,或者0和1混合。量子位的简单变换可以构成量子逻辑门,它是构成量子计算机最基本的处理单元。量子逻辑运算一般包括NOT,COPY,AND三个功能。

量子计算机也包括存储器和运算器两部分。氢原子可以用于存储量子信息,当它处于基态时表示“0”,处于激发态时为“1”。如果从氢原子中读取(或者写入)量子信息,可以使用激光脉冲。到目前为止,量子计算机研制的重大进展主要表现在硬件的研制和量子计算方法方面。1995年美国加州理工学院和美国国家标准技术研究所研制成功了部分量子电路。美国公司研制成功了能在室温条件下工作的量子力学效应芯片,其速度比传统芯片高3倍,而体积缩小到原来芯片的1/3。它的问世是量子效应元件从实验室走向实用的一次重大突破。1998年2月美国桑迪亚国家实验室的科学家们制造出了世界上首枚量子晶体管样管,并较好地解决了批量生产的工艺问题。英国剑桥大学的科学家们也提出了一种制造量子效应集成电路的方法。2012年9月,澳大利亚科学家宣布,他们制造出了首个可用于量子计算机的基本单位——量子比特。它能够利用电子的旋转,或者叫“磁定向”进行信息的读/写,这是朝着基于单个原子的硅量子计算机的重大进展。

对量子计算方法的研究也取得了较多成果。1994年,美国AT&T公司贝尔实验室的Peter W.Shor首先提出一种量子计算算法,并用它求解密码学中大数分解问题取得成功,这是用传统计算机几乎无法解决的问题。这一成果,显示了量子计算机在求解一些难解的复杂性问题方面所具有的巨大潜力。此外,在量子程序设计语言方面也有了突破。1996年,计算机学术界出现了两种量子程序设计语言,即Kill的量子伪码和Baker的QgoL。以后又先后出现了QCL,qQCL,QPL和QML等风格各异的量子程序设计语言。从21世纪初开始,我国也对量子计算机和量子程序设计语言进行了深入的研究,并取得了初步进展。自2004年起,南京大学徐家福教授的研究团队进行了有意义的探索,他们自行设计并在现有经典计算机上模拟实现了一种实验性的量子程序设计程言NDQJava(参见《软件学报》第19卷第1期,2008年1月)。

由于激光脉冲控制、解相干及有效纠错方法等方面还存在一些困难,要建造一台实用的量子计算机还需人们若干年的努力。2012年9月,来自南京大学、中国科学技术大学、复旦大学、浙江大学和中国科学院合肥研究院的学者在南京联合举行了“人工微结构与量子调控协同创新中心”组建暨启动仪式。该中心由12位院士领衔,300多位优秀科学家参加,南京大学闵乃本院士任中心主任。该中心将针对后摩尔时代人类信息技术可持续发展的迫切需要,以新型微结构材料中的量子调控科学与技术为核心,推动信息载体和信息处理手段从经典到量子系统的演变,为新一代信息技术革命奠定材料和器件方面的物理基础,使中国成为相关核心技术的主要发源地。该中心计划按照一个中心、若干基地、资源共享、各有侧重、统一规划、协同组织的方针,进行量子信息技术的创新研究和技术开发。我们期待,经过若干年的努力,这些科学家能在量子信息技术领域有所突破,为推动世界量子计算机技术的发展做出我们的贡献。

[Image 1]:

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 《计算机组成与结构》学习笔记

相关推荐