计算机组成原理 概述
计算机系统
计算机系统由硬件(Hardware)系统和软件系统两大部分组成。
计算机发展历史:
第一代计算机(1946-1957):电子管时代
第二代计算机(1958-1964):晶体管时代
第三代计算机(1965-1970):集成电路时代
第四代计算机(1871以后):大规模继承电路时代
人物
- 午治·布尔(Boolean George)1847年发表《思维规律研究》创立逻辑代数学,成功地把形式逻辑归结为一种代数,布尔认为,逻辑中的各种命题能够使用数学符号来代表,并能依据规则推导出相应于逻辑问题的适当结论。布尔的逻辑代数理论建立在两种逻辑值“真True”、“假False”和三种逻辑关系“与AND”、“或OR”、“非NOT”。这种理论为数字电子计算机的二进制、形关逻辑元件和逻辑电路的设计辅平了道路。1854年,布尔出版了名著《布尔代数》,并在此基础上,经过许多年的发展,形成了现代计算机的理论基础——娄理逻辑。
- 香农(C.E.Sharnorn)信息论创始人之一,1938年在其一篇硕士论文中指出:能够用二进制系统表达布尔代数中的逻辑关系,用“1”代表“真True”,用“0”代表“假False”,并由此用二进制系统来构筑逻辑运算系统。并指出,以布尔代数为基础,任何一个机械性推理过程,对电子计算机来说,都能像处理普通计算一样容易。香农把布尔代数与计算机二进制联系在了一起。
- 阿兰·图灵(Alan Mathison Turing)“人工智能之父”,被冯·诺依曼认为的“计算机之父”是一位天才人物,1936年在论文《论可计算数及在密码上的应用》中,严格地描述了计算机的逻辑结构,首次提出了计算机的通用模型——“图灵机”,并从理论上证明了这种抽象计算机的可能性。
- 1945年,图灵在英国国家物理研究所开始设计自动计算机,阐述了用子程序实现某些运算而程序员不必知道机器运行细节的思想,为计算机高级语言的诞生奠定了基础。1950年,图灵制成了一台体现他设计思想的计算机模型机“PIOLOT ACE”。同年10月,图灵发表了《计算机器与智能》的论文,设计了著名的图灵测验,通过问答来测试计算机是否具有同人相等的智力,这一思考至今仍是计算机学术界探讨的核心问题之一。该论文引起了计算机学术界的极大震撼,奠定了人工智能理论的基础。
- 约翰·冯·诺依曼(John von Neumann),“博弈论之父”和“计算机之父”,提出了冯诺依曼结构体系。
冯诺依曼结构体系
冯诺依曼计算机是一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构,也称冯·诺伊曼模型或普林斯顿结构。依据冯·诺伊曼结构设计出的计算机称做冯诺依曼计算机,又称存储程序计算机。冯诺依曼计算机由运算器,控制器,存储器,输入设备,输出设备以上五部分组成。
一、基本原理
冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。其主要内容是:
1.计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。
2.程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。
3.控制器根据存放在存储器中地指令序列(程序)进行工作,并由一个程序计数器控制指令地执行。控制器具有判断能力,能根据计算结果选择不同的工作流程。根据冯诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。为了完成上述的功能,计算机必须具备五大基本组成部件,包括:输入数据和程序的输入设备;记忆程序和数据的存储器;完成数据加工处理的运算器;控制程序执行的控制器;输出处理结果的输出设备。
二、冯诺依曼型电脑的五大组成部分
运算器:计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。
控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
运算器和控制器统称中央处理器,也叫做CPU。中央处理器是电脑的心脏。
存储器:存储器分为内存和外存。
(1)内存:内存是电脑的记忆部件,用于存放电脑运行中的原始数据、中间结果以及指示电脑工作的程序。内存可以分为随机访问存储器和只读存储器,前者允许数据的读取与写入,磁盘中的程序必须被调入内存后才能运行,中央处理器可直接访问内存,与内存交换数据。电脑断电后,随机访问存储器里的信息就会丢失。后者的信息只能读出,不能随意写入,即使断电也不会丢失。
(2)外存:外存就像笔记本一样,用来存放一些需要长期保存的程序或数据,断电后也不会丢失,容量比较大,但存取速度慢。当电脑要执行外存里的程序,处理外存中的数据时,需要先把外存里的数据读入内存,然后中央处理器才能进行处理。外存储器包括硬盘、光盘和优盘。
输入设备:输入设备是向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔等都属于输入设备。
(1)键盘:键盘是电脑中不可缺少的输入设备,用户可以通过键盘输入命令和数据,并可通过它控制电脑的运行。常见的键盘大多是101或104键的,一些较为新颖的104键盘往往带有两个Windows键和一个应用程序键,以提高在Win7操作系统上操作电脑的效率。这些键可以分为大键盘区、编辑键区、功能键区和小键盘区。
(2)鼠标:鼠标是电脑中重要的输入设备,它能方便地把鼠标指针准确定位在我们指定的屏幕位置,很方便地完成各种操作。
输出设备:是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机等。
(1)显示器:显示器是电脑基本的输出设备,是整个电脑硬件系统中不可缺少的部分。它可以把电脑的运行结果显示出来。
(2)打印机:打印机也是一种常用的输出设备。因为显示器上显示的内容一旦关机就看不见了,也不方便把显示器搬来搬去给别人阅读,所以我们还是需要用打印机把自己的工作成果打印出来。
三、冯诺依曼体系结构特点
- 计算机处理的数据和指令一律用二进制数表示;
- 指令和数据不加区别混合存储在同一个存储器中;
- 顺序执行程序的每一条指令;
- 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
四、冯诺依曼体系结构的计算机必须具的功能
- 把需要的程序和数据送至计算机中;
- 必须具有长期记忆程序、数据、中间结果及最终运算结果的能力;
- 能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;
- 能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作;
- 能够按照要求将处理结果输出给用户。
冯诺依曼计算机瓶颈
如果说图灵(Alan Turing)奠定的是计算机的理论基础,那么冯·诺依曼(John Von Neumann)则是将图灵的理论物化成为实际的物理实体,成为了计算机体系结构的奠基者。从第一台冯·诺依曼计算机诞生到今天已经过去了将近 70 年,计算机的技术与性能也都发生了巨大的变化,但整个主流体系结构依然是冯·诺依曼结构。
冯·诺依曼体系结构的特点:采用二进制,硬件由 5 个部分组成(运算器、控制器、存储器、输入设备和输出设备),提出了“存储程序”原理,使用同一个存储器,经由同一个总线传输,程序和数据统一存储同时在程序控制下自动工作。特别要指出,它的程序指令存储器和数据存储器是合并在一起的,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。因为程序指令和数据都是用二进制码表示,且程序指令和被操作数据的地址又密切相关,所以早先选择这样的结构是合理的。
但是,随着对计算机处理速度要求的提高和对需要处理数据的种类、量级的增大,这种指令和数据共用一个总线的结构,使得信息流的传输成为限制计算机性能的一个瓶颈,制约了数据处理速度的提高。由此,体现出了冯·诺依曼体系结构的局限性:
目前 CPU 的处理速度和内存容量的成长速率要远大于两者之间的流量,将大量数值从内存搬入搬出的操作占用了 CPU 大部分的执行时间,也造成了总线的瓶颈。
程序指令的执行是串行的,由程序计数器控制,这样使得即使有关数据已经准备好,也必须遵循逐条执行指令序列,影响了系统运行的速度;
存储器是线性编址,按顺序排列的地址访问,这是有利于存储和执行机器语言,适用于数值计算。但高级语言的存储采用的是一组有名字的变量,是按名字调用变量而非按地址访问,且高级语言中的每个操作对于任何数据类型都是通用的,不管采用何种数据结构,多维数组、二叉树还是图,最终在存储器上都必须转换成一维的线性存储模型进行存储。这些因素都导致了机器语言和高级语言之间存在很大的语义差距,这些语义差距之间的映射大部分都要由编译程序来完成,在很大程度上增加了编译程序的工作量。
冯·诺依曼体系结构计算机是为逻辑和数值运算而诞生的,它以 CPU 为中心,I/O 设备与存储器间的数据传送都要经过运算器,在数值处理方面已经达到很高的速度和精度,但对非数值数据的处理效率比较低,需要在体系结构方面有革命性突破。
计算机改良方向
科学家们一直在努力突破传统的冯·诺依曼体系结构框架,对冯·诺依曼计算机进行改良,主要体现在:
将传统计算机只有一个处理器串行执行改成多个处理器并行执行,依靠时间上的重叠来提高处理效率,形成支持多指令流、多数据流的并行算法结构。
改变传统计算机控制流驱动的工作方式,设计数据流驱动的工作方式,只要数据准备好,就可以并行执行相关指令。
跳出采用电信号二进制范畴,选取其他物质作为执行部件和信息载体,如光子、量子或生物分子等。
近几年,在计算机体系结构研究方面也已经有了重大进展,越来越多的非冯计算机相继出现,如光子计算机、量子计算机、神经计算机以及 DNA 计算机等等。
光子计算机(Photonic computer)是一种采用光信号作为物质介质和信息载体,依靠激光束进入反射镜和透镜组成的阵列进行数值运算、逻辑操作和信息的存储和处理。它可以实现对复杂度高、计算量大、实时性强的任务的高效、并行处理,比普通电子计算机快 1000 倍,在图像处理、模式识别和人工智能方面有着非常巨大的应用前景。
神经计算机(Neural computer)是一种可以并行处理多种数据功能的神经网络计算机,它以神经元为处理信息的基本单元,将模仿大脑神经记忆的信息存放在神经元上。神经网络具有自组织、自学习、自适应及自修复功能,可以模仿人脑的判断能力和适应能力。美国科学家研究出的神经计算机可以模拟人的左脑和右脑,能识别语言文字和图形图像,能控制机器人行为,进行智能决策。它的左脑由 100 万个神经元组成,用于存储文字和语法规则,右脑由 1 万多个神经元组成,适用于图形图像识别。这将有可能成为人工智能硬件发展的主攻方向。
量子计算机(Quantum computer)是遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。量子计算机本身的特性,扩充了逻辑和数学理论,通过核自旋、光子、束缚离子和原子等制成的量子位,创造出经典条件下不可能存在的新的逻辑门。与经典的比特位不同,对量子位操作 1 次等同于对经典位操作 2 次,因为量子不像半导体只能记录 0 和 1,它可以同时表示多种状态。这些都为新的算法实现提供了条件,也为人工智能的发展提供了可能的硬件条件。
冯·诺依曼计算机以其技术成熟、价格低廉、软件丰富和大众的使用习惯,可能在今后很长的一段时期里还将为人类的工作和生活发挥着重要作用。当然,为了满足人们对计算机更快速、更高效、更方便的使用要求,为了让计算机能够模拟人脑神经元和脑电信号脉冲这样复杂的结构,就需要突破现有的体系结构框架并寻求新的物质介质作为计算机的信息载体,才能使计算机有质的飞跃。随着非冯计算机的商品化问世,我们将会迎来一个崭新的信息时代