《计算机组成原理》 计算机与通信学院 谢鹏寿 2973903 xiepsh@lut.cn
计算机是由硬件、软件组成的复杂的、能自动地高速的对各种信息进行处理的电子设备。 也就是说,完整的计算机应包括配套的硬件和软件系统。
课程内容 计算机系统概论 运算方法和运算器 存储系统 指令系统 中央处理器 总线系统 外围设备 输入输出系统
实验内容 运算器实验 微程序控制器实验 主存储器扩展实验 并行接口电路I/O实验 由于该课程涉及的知识面广、内容多、难度大,因此,提几点建议和要求: 1.课前要认真预习,课堂上要集中精力听课,记好笔记,课后要温习,做好作业和习题; 2.要重视实验,锻炼动手能力; 3.尽可能多看一些参考书籍; 4.加强交流,互帮互学 总之,我们要把这门课程学好。
第一章 计算机系统概论 计算机的分类与应用 计算机的硬件 计算机的软件 计算机系统的层次结构 第一章 计算机系统概论 计算机的分类与应用 计算机的硬件 计算机的软件 计算机系统的层次结构 现在开始学习第一章——《计算机系统概论》,主要学习:计算机的分类与应用、计算机的硬件、软件和计算机系统的层次结构。
计算机的分类 电子模拟计算机 数值由连续量来表示,运算过程也是连续的。 电子数字计算机 按位运算,并且不连续地跳动计算。 主要区别(见P.1 表1.1)
数字计算机的分类 根据计算机的效率、速度、价格、运行的经济性和适应性,将数字计算机分为: 专用计算机 通用计算机
通用计算机的分类 低 高 巨型机 大型机 中型机 小型机 微型机 单片机 低 高 体积 功率损耗 性能指标 数据存储容量 指令系统规模 机器价格 简易性 低 高
数字计算机的应用 科学计算 自动控制 测量和测试 信息处理 教育和卫生 家用电器 人工智能 计算机的生命力在于它的广泛应用,应用的范围几乎涉及人类社会的所有领域。归纳起来,在科学计算、自动控制和测量、信息处理、商务处理、管理应用、教育和卫生、家用电器、人工智能等领域的应用成就最为突出。 人工智能 人类的许多脑力劳动,诸如证明数学定理、进行常识性推理、理解自然语言、诊断疾病、下棋游戏、破译密码等都需要“智能”。人工智能是将人脑进行的演绎推理过程、规则和所采取的策略、技术等编成计算机的程序,在计算机中存储一些公理和推理规则,然后让机器去自动探索解题的方法,这种程序不同于计算机的一般应用程序。主要有: (1)模式识别。 计算机对某些感兴趣的客体(如图像、文字等,统称为模式)作定量或结构的描述,并自动地分配到一定的模式类别中去。如指纹识别、手写体的计算机输入系统。 (2)语言识别和语言翻译。 语言识别是利用计算机对人的语言特征进行分析对比找出所需要的重要信息,这些在情报部门都发挥了重要的作用。语言翻译是利用计算机将不同的语言进行互译,也是人工智能的一个重要研究领域。 (3)专家系统。 指用计算机来模拟专家的行为并做出决策,而且还可以通过“再学习”提高决策的可靠性。 (4)机器人。 使用计算机来模仿人的思维和逻辑推理的机器人是人工智能研究的又一成果。目前世界上有大量的工业机器人在生产线或各种有害环境中替代人工作业。 (5)虚拟现实。 虚拟现实是利用计算机生成的一种模拟环境,通过多种传感设备使用户“投入”该环境中实现用户与环境直接交互的目的。如赛车游戏,飞机驾驶模拟训练软件,战场作战模拟环境等。 电子商务 凡是以电子形式在信息网上进行的商品交易活动和服务都可以归结为电子商务。电子商务以其公平、快捷、方便、效率高、成本低、中间环节少、无国籍和全天候等优点在短短的几年内得到突飞猛进的发展。
计算机系统的组成 运算器 控制器 主存贮器 主机 硬件系统 外存贮器 计 输入设备 外部设备 算 输出设备 机 系 统 操作系统 系统软件 语言处理程序 数据库管理系统 系统软件 软件必须在硬件的支持下才能运行。软件的作用在计算机系统中越来越重要。我们把没有软件的计算机称为“裸机”。 硬件是计算机系统的物质基础是计算机的躯体,软件是计算机的头脑和灵魂,只有将两者有效地结合起来,计算机系统才能有生命力,整个计算机系统的好坏,取决于软硬件功能的总和。 软件系统 应用软件 专用应用软件 通用应用软件
计算机的硬件 冯·诺依曼型计算机的工作原理是存储程序,按地址访问并顺序执行,这也是计算机自动化工作的关键。 存储器 CPU 系统总线 运算器 控制器 适配器 冯·诺依曼型计算机的工作原理是存储程序,按地址访问并顺序执行,这也是计算机自动化工作的关键。它由以下部件组成:存储器、运算器、控制器(运算器与控制器组成CPU)、适配器,与适配器相连的有输入输出设备,各部件之间通过系统总线相连。 输入 设备 输出 设备
外设 存储器 输入设备 输出设备 辅助存储器 主机 主存储器 运算器 控制器 CPU 控制 数据 地址或指令
运算器 运算器是计算机中用于信息加工的部件,又称执行部件。对数据进行算术运算和逻辑运算。 计算机中通常采用二进制数。 注:运算器一次运算二进制数的位数越多速度越快,成本也越高。目前计算机的运算器长度一般是8位、16位、32位或64位。
运算器结构示意图
存储器 00011001 存储器是计算机的记忆部件,用于存放程序和数据。 11001110 2000H 2001H 存储单元:在存储器中保存一个数的16个触发器,称为一个存储单元。 2002H 存储器是由许多存储单元组成,在存储器中保存一个数的16个触发器,称为一个存储单元,每个存储单元的编号,称为地址。 地址:存储器是由许多存储单元组成,每个存储单元的编号,称为地址。 2FFEH 2FFFH
单位:“KB”、“MB”等,如64KB,128MB。 1KB=1024B=8192bit 内存储器(内存)是半导体存储器。 存储容量:存储器所有存储单元的总数。 单位:“KB”、“MB”等,如64KB,128MB。 1KB=1024B=8192bit 内存储器(内存)是半导体存储器。 外存储器包括存储容量更大的磁盘存储器、光盘存储器、磁带存储器等。 存储器的大小用存储容量来衡量,即存储器所有存储单元的总数。通常用单位“KB、MB”表示,如64KB,128MB。存储容量越大,表示计算机记忆储存的信息就越多。计算机存储器的最小单位为比特(bit),1KB=1024B=8192bit。 计算机系统中的存储系统是指内存储器和外存储器。内存储器(简称内存)是半导体存储器,有主存储器和高速缓冲存储器;外存储器包括存储容量更大的磁盘存储器、光盘存储器、磁带存储器等。
控制器 控制器是计算机中发号施令的部件,它控制计算机的各部件有条不紊地进行工作。 具体的讲,控制器的任务是从内存中取出解题步骤加以分析,然后执行某种操作。
(1) 计算程序 计算机所能执行的每一个基本操作就叫做一条指令,而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。 计算机所能执行的每一个基本操作就叫做一条指令,而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。 计算 y=ax+b-c 的整个步骤≡程序 每一步 操作≡指令 按地址存放数据和程序,顺序执行指令 运算器只能完成加、减、乘、除四则运算及其他一些辅助操作。对于比较复杂的算题,计算机在运算前必须化成一步一步简单的加、减、乘、除等基本操作来做。
(2) 指令的形式 操作码 地址码 地址码:表示参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元。 操作码 地址码 地址码:表示参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元。 操作码:指出指令所进行的操作,如加、减、乘、除、取数、存数等等。
(3) 控制器的基本任务 控制器的基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。接着从存储器取出第二条指令,再执行这第二条指令。依次类推。 控制器的基本任务,就是按照计算程序所排的指令序列, 交替地取出指令加以分析并执行指令。
通常把取指令的一段时间叫做取指周期,而把执行指令的一段时间叫做执行周期。 指令在存储器中顺序存放。
(4) 指令流和数据流 “位”(bit)、“字节”(B,Byte)和“字”(W,Word); 通常把组成一个字的二进制位数叫做字长。 指令字——计算机字为一条指令; 数据字——计算机字代表要处理的数据。 计算机字既可以代表指令,也可以代表数据。代表数据的计算机字,称为数据字;代表指令的计算机字,称为指令字。
一般来讲,在取指周期中从内存读出的信息是指令流,它流向控制器;而执行周期中从内存读出的信息流是数据流,它由内存流向运算器。
适配器与输入输出设备 输入设备的作用是把人们所熟悉的某种信息形式变换为机器内部所能接收和识别的二进制信息形式。 常用的输入设备有键盘、鼠标、数字扫描仪、数码相机等。
输出设备的作用是把计算机处理的结果变换为人或其他机器所能接收和识别的信息形式。 常用的输出设备有激光打印机、绘图仪、显示器、音箱等。
适配器又称接口,或接口板。 适配器的作用相当于一个转换器,它可以保证外围设备用计算机所要求的形式发送或接受信息。 常用的适配器有声卡、显卡、视频卡、网卡等。
总线(BUS) 系统总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。 借助系统总线,计算机在各系统部件之间实现传送地址、数据和控制信息的操作。
冯·诺依曼计算机系统的特点 采用“存储程序控制”的工作方式; 采用二进制形式表示数据和指令; 程序由指令序列构成; 计算机以CPU为中心。
外围设备 输入 设备 输出 设备 辅助存储器 主 机 存储器 CPU 运算器 控制器
不同对象观察到的计算机硬件系统 一般用户观察到的计算机硬件系统
专业用户观察到的计算机硬件系统
计算机设计者观察到的计算机硬件系统
请同学们 打开计算机主机箱,仔细观察以下零部件: 内存、硬盘、软驱、光驱 显卡、声卡、网卡、主板、CPU
计算机系统结构的发展历史 1946年第一台电子数字计算机ENIAC(Electronic Numerical Integrator And Computer, 电子数字积分和计算机)在美国宾夕法尼亚大学诞生后,经历了五代(使用器件的角度) 1949年,第一台程序内存的计算机EDSAC诞生 1959年,中国研制的第一台电子管数字计算机诞生 1965年,中国研制的第一台晶体管数字计算机诞生 美国的“硅谷”位于加利福尼亚州,是二十世纪六七十年代出现的,主要从事微电子工业,也是微处理机的发源地。 对计算机的产生有重要影响的人物有: 查尔斯·巴贝奇 艾兰·图灵 冯·诺依曼 来布尼兹 布尔 目前,大多数集成电路生产中,所采用的基本材料为单晶硅。 2000年,超级计算机浮点最高运算速度达到10000亿次/秒。中国的神威号计算机的运算速度达到3480亿次/秒,使中国成为美国、日本之后世界上第三个拥有高速计算机的国家。
ENIAC的特点: ENIAC的特点: 占地170平方米 重30 吨 用开关手动编程 耗电140 KW 20 个10位的累加器 18,000个电子管 5,000次/秒加法运算 采用十进制
第一代电子管计算机(1946年~1957年) 继电器存储器,程序计数器和累加器 特点:体积大,速度慢(104/S每秒钟运算次数,下同),功耗大,存储器容量小,定点运算。 典型产品:ENIAC、IAS、IBM701。 1949年,第一台程序内存的计算机EDSAC诞生 第一代计算机为电子管计算机(1946~1957)。它是将电子管和继电器存储器用绝缘导线互连在一起,由单个CPU组成; CPU用程序计数器和累加器完成定点运算,采用机器语言或汇编语言,用CPU程序控制I/O设备。软件一词尚未出现。
第二代晶体管计算机(1958年~1964年) 特点:体积小,速度快(105/S),功耗低,可靠性高,定点、浮点运算。 变址、中断、I/O处理 典型产品:IBM7094、CDC1604、DEC公司的PDP-1计算机。 1959年,中国研制的第一台电子管数字计算机诞生 第二代计算机为晶体管计算机(1958~1964)。它采用晶体管组成更复杂的算术逻辑部件和控制单元,存储器由磁芯构成; 实现了浮点运算,并且提出了变址、中断、I/O处理等新概念; 软件也得到了发展,出现了高级语言编程,为计算机提供了系统软件;
第三代SSI、MSI计算机(1965年~1971年) 晶体管、电阻、电容,分立元件 特点:① 开始采用微程序控制、流水线、高速缓存、虚拟存储器、先行处理技术等。② 软件采用多道程序设计和分时操作系统。 典型产品:IBM的System/386和DEC公司的PDP-8等。 1965年,中国研制的第一台晶体管数字计算机诞生 第三代计算机为小、中规模集成电路计算机(1965~1971)。单个封装的晶体管称分立元件,分立元件分开制造,封装在自己的容器中,然后再焊接到电路板上。第二代早期计算机大约包含10 000个晶体管,后来达数十万。集成电路制造技术是利用光刻技术把晶体管、电阻、电容等构成的单个电路制作在一块芯片上。 使用集成电路制造的电子计算机称集成电路计算机。 这期间,因受半导体制造技术的限制,集成电路的规模较小,被称为小规模集成电路SSI(small scale integration)、中规模集成MSI (middle scale integration)。
第四代大规模、超大规模集成电路计算机 1971年开始大规模集成电路计算机 1986年开始巨大规模集成电路计算机 大规模LSI (large scale integration)、超大规模SLSI (super large scale integration)、极大规模ULSI (ultra large scale integration)和巨大规模VLSI (very large scale integration)集成电路成为计算机的主要部件。 并行处理技术,巨型机,计算机网络,分布式和群集式计算,嵌入式系统,多进程和多线程编程,软件工程 计算机的运行速度越来越快,并行处理技术的研究与应用以及众多巨型机产生是这个阶段的一大特点。 另一个特点就是计算机网络的发展及广泛应用,20世纪90年代计算机与通信技术的高速发展与密切结合,掀起了网络热。大量计算机通过互联网相联,这就大大地扩展和加速了信息的流通,增强了社会的协调与合作能力,使计算机的应用方式由个人计算方式向分布式和群集式计算发展。 另外,随着后PC时代的到来,消费电子、计算机、通信(consumption、computer、communications,简称3C)一体化趋势日趋明显,数字化社会的呼声使嵌入式系统(embedded System)日益受到市场和厂家的关注,嵌入式设备越来越普及。 软件技术也得到了极大发展,高级程序编程、网络操作系统、个人计算机操作系统、网络数据库技术都得到了极大发展。多进程和多线程编程以及软件工程越来越受到人们的重视。
新一代电子计算机 新一代计算机正寻求速度更快,功能更强的全新元器件,如神经元、生物芯片、超导材料、量子芯片等。 计算机的基本结构试图突破冯·诺依曼结构体系,以自然语言为计算机的逻辑推理语言,使其更具有智能化。 将进入以通信为中心的体系结构。 不仅用多处理机技术来实现并行计算机,而且会出现计算机的动态结构。 多媒体技术将有重大突破和发展。 目前计算机技术仍然使用硅组成的半导体器件,计算机的基本结构仍然遵循冯·诺依曼(John Von Neumann)结构体系。必须根据一定的算法编写程序,并以文件的形式存储程序,然后通过执行程序来完成对信息的处理和加工。这种指令驱动的串行计算机,对现实世界中的大量并行处理具有先天不足。
计算机软件的组成和分类 凡是用于一台计算机的各种程序,统称为这台计算机的程序或软件系统。 计算机软件一般分为两大类: 系统程序(软件) 应用程序(软件)
系统程序(软件)包括以下四类: 各种服务性程序 如诊断程序、排错程序、练习程序等 语言类程序 如汇编程序、编译程序、解释程序等 操作系统 数据库管理系统
应用程序(软件)包括: 工程设计程序 数据处理程序 自动控制程序 企业管理程序 情报检索程序 科学计算程序
计算机软件的发展演变 数据库管理系统 操作系统 源程序 汇编程序 目的程序
源程序处理的2种方法:编译和解释 编译程序 运行系统 编译系统 解释系统 编译程序——用机器语言编写的程序,能把源程序翻译成目的程序。运行系统——运行目的程序的辅助软件。 编译系统——负责将高级语言的源程序翻译成目标程序的软件。由编译程序和运行系统组成。 解释系统——对解释型的源程序语句逐个解释、立即执行并得出计算结果的系统。
操作系统 操作系统——用来管理计算机资源(如处理器、内存、外部设备和各种编译、应用程序)和自动调度用户的作业程序的软件。 根据不同使用环境要求,操作系统大致分为: 批处理操作系统 分时操作系统 网络操作系统 实时操作系统
数据库管理系统 数据库——是实现有组织地、动态地存储大量相关数据,方便多用户访问的计算机软、硬件资源组成的系统。 数据库管理系统=数据库+数据库管理软件
计算机的多级层次结构 现代计算机系统是一个硬件与软件组成的综合体,我们可以把它看成是按功能划分的多级层次结构。 现代计算机系统是一个硬件与软件组成的综合体,我们可以把它看成是按功能划分的多级层次结构。 硬件是计算机系统的物质基础,软件是计算机系统的灵魂。硬件和软件是相辅相成的,不可分割的整体。 当前计算机的硬件和软件正朝着互相渗透,互相融合的方向发展,在计算机系统中没有一条明确的硬件与软件的分界线。硬件和软件之间的界面是浮动的,对于程序设计人员来说,硬件和软件在逻辑上是等价的。
应用语言级 采用符号语言编写程序。 高级语言级 汇编语言级 操作系统级 采用二进制数字化语言编写程序。 一般机器级 微程序设计级 5级 采用符号语言编写程序。 应用程序 高级语言级 4级 虚拟机器级(软件) 编译程序 汇编语言级 3级 汇编程序 操作系统级 2级 采用二进制数字化语言编写程序。 操作系统 现代计算机系统是由硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。也就是说,下层是上层的基础,上层是下层的扩展。 1-3级编写程序采用的语言,基本是二进制数字化语言,机器执行和解释容易;4-5级编写程序所采用的语言是符号语言,用英文字母和符号来表示程序,适合于对硬件不太了解的程序员。 采用这种分级观点,对于了解计算机如何组成提供了一种好的结构和体制,而且对保证产生一个良好的系统结构很有帮助。 一般机器级 硬件 1级 微程序 微程序设计级 0级 固件 微程序直接由硬件执行
软件与硬件的逻辑等价性 硬件软化:原来由硬件实现的操作改由软件来实现。它可以增强系统的功能和适应性。 硬件软化:原来由硬件实现的操作改由软件来实现。它可以增强系统的功能和适应性。 软件硬化:原来由软件实现的操作改由硬件来实现。它可以显著降低软件在时间上的开销。 硬件是计算机系统的物质基础,软件是计算机系统的灵魂。硬件和软件是相辅相成的,不可分割的整体。 当前计算机的硬件和软件正朝着互相渗透,互相融合的方向发展,在计算机系统中没有一条明确的硬件与软件的分界线。硬件和软件之间的界面是浮动的,对于程序设计人员来说,硬件和软件在逻辑上是等价的。
固件是指那些存储在能永久保存信息的器件(如ROM)中的程序,是具有软件功能的硬件。 固件的性能指标介于硬件与软件之间,吸收了软、硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软、硬件结合的产物,计算机功能的固件化将成为计算机发展中的一个趋势。
在一片硅单晶芯片上制作复杂的逻辑电路的实际可行性为扩大指令的功能提供了物质基础。 对于某一机器功能采用硬件方案还是软件方案,取决于器件价格、速度、可靠性、存储容量、变更周期等因素。