570 likes | 672 Views
计算机组成与结构. 第一章 计算机概念和技术 张锦. 1.1 概述. 信息产业是一个蓬勃发展的产业,其创新速度惊人 交通业发展如果也是如此,用几美分可以在 1 秒内穿越大洋 缩短了时间和空间,其意义不言而喻 计算机引发了继农业和工业革命后的第三次革命:信息革命 每次计算机革命都使计算成本降低 10 倍,原来不可行的想法变得实际起来 自动柜员机、车载计算机、笔记本电脑、人类基因组计划、万维网 未来社会将很有可能成为具有普适计算特征的社会 计算机将进入生活的方方面面. 1.1 计算机应用的类型及特征. 在计算机的应用中,虽然形态各异,但大致可以归入如下三类:
E N D
计算机组成与结构 第一章 计算机概念和技术 张锦
1.1 概述 • 信息产业是一个蓬勃发展的产业,其创新速度惊人 • 交通业发展如果也是如此,用几美分可以在1秒内穿越大洋 • 缩短了时间和空间,其意义不言而喻 • 计算机引发了继农业和工业革命后的第三次革命:信息革命 • 每次计算机革命都使计算成本降低10倍,原来不可行的想法变得实际起来 • 自动柜员机、车载计算机、笔记本电脑、人类基因组计划、万维网 • 未来社会将很有可能成为具有普适计算特征的社会 • 计算机将进入生活的方方面面
1.1 计算机应用的类型及特征 • 在计算机的应用中,虽然形态各异,但大致可以归入如下三类: • 桌面电脑:强调以较小的代价为单一用户提供较高的性能、广泛的应用需求 • 服务器:主机、小型计算机、巨型计算机等形式 • 一般只能通过网络访问 • 需要有扩展性、强的计算能力和输入/输出、高可靠性 • 之间的性能和价格差异较大 • 嵌入式计算机:应用最为广泛,无所不在,但是要在成本和功耗方面严格控制,而可靠性则要求很高 • 通过“简化”达到可靠的目的,强调只完成一个功能 • 大型嵌入式系统中,也采用服务器中常用的冗余技术
1.1.1 不同类型计算机的市场 Millions of Computers
1.1.2 我们关注的目标 • 程序员关注程序的性能,良好的软件需要快速向用户返回计算结果 • 在20世纪60和70年代,内存是制约因素,如何用更少的内存得到更高的性能是关注的焦点 • 计算机的发展已经使得内存更加复杂化,如:层次结构、处理器并行处理等 • 因此,如果要编写系统级软件,如:编译器、操作系统、数据库软件,甚至是一般应用程序,程序设计人员必须具有坚实的计算机组成和结构方面的知识
续 • 通过本课程,我们将关注如下问题: • 高级语言是如何翻译为硬件语言的,硬件又是如何执行程序的。 • 这些问题是理解软硬件如何影响程序性能的基础。 • 软硬件的接口是什么?软件是如何命令硬件完成指定功能的? • 什么决定了程序的性能?如何改进程序性能? • 取决于多方面因素,源程序、编译器、执行程序的硬件效率 • 硬件设计人员可以使用什么技术提高性能? • 对这个问题可以参考《计算机系统结构-量化研究方法》
续 • 程序性能的影响因素有很多:算法、程序、编译器、指令执行效率、I/O操作效率等 • 本书涉及的内容对程序性能的影响简要说明如下:
1.2 程序的表象之下 • 我们最经常接触到的是各种应用软件,如文字处理软件、媒体播放软件、游戏软件等 • 但从复杂的应用软件到硬件能够执行的简单指令,这中间需要多层软件 • 在应用软件和硬件之间是各种系统软件,并以层次化的结构进行组织 • 最重要的两类系统软件是:编译器和操作系统 • 操作系统是用户程序和硬件的接口,提供多种服务和管理功能 • 处理基本输入和输出操作、分配存储空间及内存、为多个程序同时使用计算机提供支持 • 编译器的核心功能:将用高级语言编写的程序翻译成硬件能执行的指令
续 • 这些软件仍然是人能够理解的形式,只不过难易程度不同而已 • 但机器确无法理解这些!电子器件能理解只有开和关、高和低、有和无等 • 这种两类的语言是计算机能够理解的“语言”,这类语言只有两个字母“0”和“1” • 其中每个字母为一个二进制数位或“位” • 计算机能够执行的命令称为“指令”,它是计算机可以理解的位的集合
续 • 直接使用二进制与计算机交流对程序员而言过于枯燥,进而发明了一种新的符号表示法:汇编语言 • 进而,人们又认识到用功能更强大的语言编写程序,然后将其翻译为机器指令也是可行的 • 这最终使得“高级程序设计语言”出现,而将用高级语言编写的程序翻译为机器指令的就是编译器 • 高级语言具有几个显著的优点: • 允许程序员更自然的语言思考和解决问题 • 提高了程序员的生产力 • 使得程序能够独立于开发它的计算机
1.3 打开计算机的机箱 • 对于非专业用户而言,软件很虚,因为它不像硬件那么真实可见 • 任何计算机的底层硬件都执行如下基本功能:输入数据、输入数据、处理数据和存储数据 • 而计算机的五个基本部件将协同完成上述功能,本课程也是围绕计算机如何更快更高效地完成上述任务而展开的。 • 五大基本部件:输入、输出、存储器、数据通路和控制器。 • 数据通路和控制器又合称为中央处理器 • 在其他书中出现的“运算器”也就是这里的 “数据通路”
存储器 输入设备 运算器 输出设备 控制器 冯·诺依曼计算机硬件框图 存放数据 和程序 将结果转换成 人们熟悉的形式 算术运算 逻辑运算 将信息转换成机 器能识别的形式 指挥程序 运行
计算机的结构 • 除了冯-诺依曼结构之外,还有“哈佛结构” • 都能用前面的结构来实现,但是不同在于: • 冯.诺依曼结构允许指令和数据混合存储在同一块存储模块中 • 哈佛结构使用独立的存储模块分别存储指令和数据 • 现代计算机主要采用冯.诺依曼结构,但是也使用哈佛结构的一些属性 • 奔腾+WinNT架构的个人电脑具有冯.诺依曼结构,但是OS将存储区分块(将其分配给指令或数据均可),这不是哈佛结构(要求将某一存储模块分配给二者中同一个) • 在Cache存储器中采用了哈佛结构,cache分为指令存储器和数据存储器
冯·诺依曼计算机的特点 • 1. 计算机由五大部件组成 • 2. 指令和数据以同等地位存于存储器,可按地址寻访 • 3. 指令和数据用二进制表示 • 4. 指令由操作码和地址码组成 • 5. 存储程序 • 6. 以运算器为中心
Typical Motherboard (Pentium III) Power Conn. Floppy Conn. S. Bridge BIOS ROM IDE Disk Conn. Memory AGP Processor PCI Cards N. Bridge Rear Panel Conn.
Under the Hood: Apple iPod Source: EE Times, www.eetimes.com
Application Application Programs Operating System Software Compiler Instruction Set Architecture Interface between SW & HW Processor I/O System Logic - gates, state machines, etc. Hardware Circuit - transistors, etc. Layout - mask patterns, etc. Instruction Set Architecture (ISA) - The Hardware-Software Interface • The most important abstraction of computer design
操作系统 虚拟机器 计算机系统的层次结构 高级语言 虚拟机器 M3 汇编语言 虚拟机器 M2 机器语言 实际机器 M1 微指令系统 微程序机器 M0
虚拟机器 M4 虚拟机器 M3 虚拟机器 M2 实际机器 M1 微程序机器 M0 用编译程序翻译 成汇编语言程序 用汇编程序翻译 成机器语言程序 软 件 用机器语言解释操作系统 硬 件 用微指令解释机器指令 由硬件直接执行微指令
续:Instruction Set Architecture (ISA) • ISA: An abstract interface between the hardware and the lowest level software of a machine that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access, I/O, and so on. • ABI (application binary interface,应用程序二进制接口): 基本指令集和操作系统提供给应用程序开发人员的接口合称为ABI • 重点:硬件和软件都包含分层的层次,每一个较低层次对上一层掩盖细节。抽象的层次之间一个关键接口是“指令集系统结构”—底层软件和硬件的接口,这个抽象接口使很多不同成本和性能的实现能运行相同的软件。
续:ISA Type Sales Millions of Processor
Registers R0 - R31 PC HI LO 例子:MIPS R3000 Instruction Set Architecture • Instruction Categories • Load/Store • Computational • Jump and Branch • Floating Point • coprocessor • Memory Management • Special 3 Instruction Formats: all 32 bits wide OP rs rd sa funct rt OP rs rt immediate OP jump target
几个关键部件的技术发展 • 输入:鼠标 • 输出:显示器 • 中央处理器:CPU • 存储:内存、硬盘、光盘、软盘、磁带 • 网络
续:Moore’s Law • In 1965, Gordon Moore predicted that the number of transistors(晶体管)that can be integrated on a die would double every 18 to 24 months (i.e., grow exponentially with time). • Amazingly visionary – million transistor/chip barrier was crossed in the 1980’s. • 2300 transistors, 1 MHz clock (Intel 4004) - 1971 • 16 Million transistors (Ultra Sparc III) • 42 Million transistors, 2 GHz clock (Intel Xeon) – 2001 • 55 Million transistors, 3 GHz, 130nm technology, 250mm2 die (Intel Pentium 4) - 2004 • 140 Million transistor (HP PA-8500)
Processor Implementation • Basic implementation • Single-Cycle • Multicycle • Pipelined implementation • Advanced techniques
Memory Systems • Memory Technology Overview • Memory Hierarchy • Cache Memories - making access faster • Virtual Memory - making memory larger using disk Processor Disk Memory Registers Cache
Input/Output • I/O Overview • Impact of I/O on Performance • Buses • Interfacing Image Source:Seagate Technolgy LLCwww.seagate.com
续:Processor Performance Increase Intel Pentium 4/3000 DEC Alpha 21264A/667 DEC Alpha 21264/600 Intel Xeon/2000 DEC Alpha 5/500 DEC Alpha 4/266 DEC Alpha 5/300 DEC AXP/500 IBM POWER 100 HP 9000/750 IBM RS6000 MIPS M2000 SUN-4/260 MIPS M/120
续:DRAM Capacity Growth 512M 256M 128M 64M 16M 4M 1M 256K 64K 16K
续:Example Machine Organization • Workstation design target • 25% of cost on processor • 25% of cost on memory (minimum memory size) • Rest on I/O devices, power supplies, box Computer CPU Memory Devices Control Input Datapath Output
计算机 体系结构 计算机 组成 区别:计算机体系结构和计算机组成 有无乘法指令 程序员所见到的计算机系统的属性 概念性的结构与功能特性 (指令系统、数据类型、寻址技术、I/O机理) 实现计算机体系结构所体现的属性 (具体指令的实现) 如何实现乘法指令
高级语 目标 结果 翻译 运行 言程序 程序 计算机 1.4 计算机的解题过程
控制器 数据 计算 输入设备 输出设备 存储器 程序 结果 运算器 以存储器为中心的计算机硬件框图
x3 x5 x7 x9 … sin x = x - + - + - 3 5 7 9 ! ! ! ! 1 x … ( yn ) ( n = 0, 1, 2, ) x + = √ yn 2 计算机的工作步骤 1.上机前的准备 • 建立数学模型 • 确定计算方法 • 编制解题程序 程序 — 运算的 全部步骤 指令 — 每 一个步骤
编程举例 计算 ax2 + bx + c = (ax + b)x + c 取x至运算器中 取x至运算器中 乘以x在运算器中 乘以a 在运算器中 乘以a 在运算器中 加b 在运算器中 存ax2 在存储器中 乘以x在运算器中 取b 至运算器中 加c 在运算器中 乘以x在运算器中 加ax2在运算器中 加c 在运算器中
操作码 地址码 [ACC] β 指令格式举例 取数 α [α] ACC 000001 0000001000 存数 β 加 γ [ACC]+[γ] ACC [ACC]×[δ] ACC 乘 δ 打印 [] 打印机 停机
ACC MQ ALU 乘积高位 乘积低位 X 运算器 (1)运算器(数据通路)的基本组成及操作过程 乘数和商 被加数 加法 加数 和 被减数 减数 减法 差 乘数 乘法 被乘数 被除数 除法 商 除数 余数
加 M 指令 ACC ACC ACC MQ 初态 ACC 被加数 ALU ALU [M] X [ACC]+[X] ACC X X 运算器 ① 加法操作过程
减 M 指令 ACC ACC ACC MQ 初态 ACC 被减数 ALU ALU [M] X [ACC]-[X] ACC X X 运算器 ② 减法操作过程
乘 M 指令 0 ACC ACC ACC ACC MQ MQ MQ 初态 ACC 被乘数 ALU ALU [M] MQ [ACC] X X X 0 ACC 运算器 ACC∥MQ [X]×[MQ] ③ 乘法操作过程
除 M 指令 MQ ACC ACC ACC MQ 初态 ACC 被除数 ALU ALU [M] X [ACC]÷[X] MQ X X 余数在ACC中 运算器 ④ 除法操作过程
存储体 MAR MDR 主存储器 (2)存储器的基本组成 存储体 – 存储单元 – 存储元件 (0/1) 大楼 – 房间 – 床位 (无人/有人) 存储单元 存放一串二进制代码 存储字 存储单元中二进制代码的组合 存储字长 存储单元中二进制代码的位数 每个存储单元赋予一个地址号 按地址寻访