1、计算机导论计算思维和应用技术,计算机,6.1.3 集群分布式计算Hadoop,6.1.4 网格分布式计算BOINC,6.1.5 新型计算机系统研究,6.1.1 冯.诺依曼计算机结构,6.1.2 大型计算机集群结构,6.1.1 冯.诺依曼计算机结构,1、冯诺伊曼计算机设计原则和结构模型冯诺依曼计算机设计原则: 存储程序:程序存储在内存中,顺序执行,控制计算机的运行。 计算机结构:输入、输出、存储器、控制器、运算器五大部分。冯诺依曼没有用图形表示计算机系统结构,导致了各种计算机结构图。 常见冯诺伊曼计算机结构如图6-1所示。,6.1.1 冯.诺依曼计算机结构,(1)运算器 算术运算和逻辑运算的基本
2、部件。 算术运算:加、减、乘、除等; 逻辑运算:比较、移位、与、或、非、异或等。(2)控制器 控制程序和部件的运行。(3)存储器 存放运行的程序和数据。 基本操作:写入或读出数据(内存访问)。 存储单元编号称为“内存地址” 向存储单元存入数据称为“写入”(新数据覆盖原旧数据); 从存储单元取出数据称为“读出”(不破坏原数据)。,6.1.1 冯.诺依曼计算机结构,(4)输入设备 将输入信息转换为二进制编码; 用户对计算机进行操作控制。(5)输出设备 将处理结果转换为用户熟悉的形式; 如,数字、文字、图形、声音、视频等。,6.1.1 冯.诺依曼计算机结构,2存储程序思想的重要性(1)存储程序的思想
3、 人类计算案例: 心算2位数加法毫不费力; 心算20个2位数加法很费力; 如果有草稿纸,也能很快算出来。没有内存的计算机无法进行复杂计算。“存储程序”的重要性: 符号化计算的基础; 便于程序控制计算机; 提高计算机运算效率; 导致程序员职业化等。,6.1.1 冯.诺依曼计算机结构,(2)早期计算机的程序运行 早期人们认为程序与数据完全不同。 早期数据存放在存储器中; 而程序作为控制器的一部分,用外部设备输入; 每执行一个程序,都要对控制器进行设置。 如,在ENIAC中运行小程序时,需要在40多块电路板上,插上几千个导线插头。,6.1.1 冯.诺依曼计算机结构,(3)程序控制计算机 冯诺依曼将程
4、序与数据同等看待,是计算机的一场革命。 早期计算机由硬件(控制器)控制整个系统; 存储程序导致了由程序(操作系统)控制计算机。 由程序控制计算机实现了巴贝奇对计算机的设计思想。(4)提高运算效率 计算机从存储器中依次取指令执行,大大提高了运行效率。(5)程序员职业的独立 存储程序导致了硬件与软件的分离; 直接催生了程序员这个职业。,6.1.1 冯.诺依曼计算机结构,3、冯诺伊曼计算机结构的进化(1)早期计算机的局限性 计算机存储单元小; 如,冯诺依曼设计的EDVAC计算机内存只能存储1 000个44位的字。程序的功能也不强大; 如,主要用于数值计算。没有操作系统的出现; 如,1956年才出现第
5、一个操作系统:GM-NAA I/O。早期控制器是整个计算机的控制核心。,6.1.1 冯.诺依曼计算机结构,(2)目前的计算机结构 基本遵循冯诺依曼的设计思想。 但是结构上有一些变化: 如,连接线路变成了总线; 如,运算器变成了CPU; 如,控制器部件由操作系统取代。目前计算机系统由程序进行控制。 如,进程管理(处理器管理); 如,存储管理; 如,设备管理; 如,文件管理等。程序控制计算机是存储程序设计思想的必然结果。,6.1.1 冯.诺依曼计算机结构,目前冯诺依曼计算机结构如图6-2所示。,6.1.1 冯.诺依曼计算机结构,4、维纳计算机设计五原则维纳(Norbert Wiener)在阿塔纳索
6、夫和冯诺依曼的理论基础上,提出了计算机设计五个基本原则。 (1)加法和乘法装置采用数字式,而不是基于模拟量。 (2)开关部件由电子管实现,而不要采用机械开关。 (3)采用二进位制比十进位制更为经济。 (4) 全部运算在机器上自动进行,一切逻辑判断由机器自身作出。 (5)机器中包含储存数据的装置。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1 计算机的发展,6.1.2 大型计算机集群结构,1、计算机集群系统的发展1994年,托马斯斯特林(Thomas Sterling)构建了第一个Beowulf计算机集群系统。利用多台PC机组成一台超级计算机比设计超级计算机便宜很多。世界500强计
7、算机中,有90以上的超级计算机采用集群结构。计算机集群系统是将2台以上的PC机,通过软件和网络,组成一个超级计算机群,协同完成大型计算任务。,6.1.2 大型计算机集群结构,【案例】第一个计算机集群系统:贝奥武夫(Beowulf)。,6.1.2 大型计算机集群结构,【扩展】集群系统组成。 硬件:PC服务器 网络:高速以太网 软件:Linux+并行编程库 应用:并行计算,2核CPU,8路CPU/主板,128主板/机柜,64个机柜群,6.1.2 大型计算机集群结构,【扩展】计算机集群系统结构。,6.1.2 大型计算机集群结构,【扩展】计算机集群网络结构。,6.1.2 大型计算机集群结构,2、计算机
8、集群系统的类型集群系统类型:高可用集群,负载均衡集群、高性能集群。(1)高可用集群 HA(高可用)集群主要用于不间断服务。 HA集群具有容错和备份机制; 主节点失效后,备份节点能立即接管计算资源,继续提供服务。 HA集群典型结构是双机热备系统。HA集群应用: 网络服务,如Web服务等, 数据库系统,如Oracle等, 关键业务系统,如银行业务等。,6.1.2 大型计算机集群结构,【案例】京东商城网站高可用集群系统结构。,6.1.2 大型计算机集群结构,【案例】Web网站高可用集群系统结构。,6.1.2 大型计算机集群结构,【案例】数据中心高可用集群及容灾方案。,6.1.2 大型计算机集群结构,
9、(2)负载均衡集群 LBC(负载均衡集群)主要用于高负载业务。 如, 网站Web服务LBC由多个计算节点提供高负载服务,保证服务的均衡响应。负载均衡集群将业务平均分摊到集群中不同计算机处理。 如,Google搜索引擎的查询服务,6.1.2 大型计算机集群结构,【案例】LBC负载均衡集群系统基本结构。,6.1.2 大型计算机集群结构,【案例】网络负载均衡集群系统。,6.1.2 大型计算机集群结构,(3)高性能计算集群 HPC(高性能计算)集群主要研究超级计算机,并行算法和相关软件。HPC集群主要用于大规模数值计算。 如,科学计算,天气预报,石油勘探,分子模拟,生物计算等。HPC工作原理: 集群运
10、行并行计算程序,把计算数据分配到集群中多台计算机中,利用所有计算机的共同资源来完成计算任务。,6.1.2 大型计算机集群结构,【案例】HPC高性能计算机集群系统。,6.1.2 大型计算机集群结构,【案例】 HPC高性能计算机集群系统。,6.1.2 大型计算机集群结构,3集群系统的硬件和软件(1)集群系统硬件设备 服务器主机(PC服务器) 网络设备(以太网交换机) 磁盘冗余阵列(RAID) HBA卡(主机总线适配器) 光纤交换机等。(2)集群系统软件 商业集群软件:Rose HA,IBM HACMP等; 开源集群软件:Heartbeat,RHCS等。 如,Linux下的Heartbeat(心跳服
11、务)软件提供了高可靠集群所有基本功能,如:心跳检测,资源接管,系统监测,共享地址转移等,Linux自带了Heartbeat套件。,6.1.2 大型计算机集群结构,(3)集群系统网络 网络的带宽和性能影响集群系统的高性能计算。 缩短节点间的通信延迟和提高吞吐量很重要。(4)集群系统节点类型 用户节点,控制节点,管理节点,存储节点,安装节点,计算节点等。 节点类型由集群软件和计算机硬件配置决定。 小型集群系统往往将多种节点类型集成在一起。,6.1.2 大型计算机集群结构,【案例】基于Windows的OA集群系统结构。,6.1.2 大型计算机集群结构,4、双机热备集群系统结构(1)双机热备系统结构
12、双机热备是典型的高可用计算机集群系统。 系统组成: 主服务器(主机); 备份服务器(备机); 共享磁盘阵列; 心跳连接线等。,6.1.2 大型计算机集群结构,【案例】双机热备是高可用集群的一个子集。,6.1.2 大型计算机集群结构,(2)双机热备工作原理 核心技术是心跳监测网络和集群资源管理模块。工作原理: 心跳监测通过串口网络实现。 2台或多台服务器通过网络相互发送心跳信号; 心跳信号包括:系统软件和硬件运行状态,网络和应用程序运行状态等。 备机在指定时间内未收到主机信号,就认为主机运行不正常; 备机立即启动主机上的应用程序,接管主机程序和资源; 保持程序在备机上继续运行。,6.1.2 大型
13、计算机集群结构,5、高性能大型集群系统结构典型应用:Google公司数据中心。 Google自己设计制造的服务器; 每台服务器主板有2个CPU,2个硬盘,有8个内存插槽; 服务器采用AMD和英特尔x86处理器(4核)。,6.1.2 大型计算机集群结构,Google数据中心以集装箱为单位; 一个集装箱有多个机架; 每个机架可安装80台服务器; 每个机架连接2台1 000M以太网交换机; 一个集装箱可容纳15个机架; 每个集装箱大致可装1 160台服务器; 每个数据中心有众多集装箱。 如Google俄勒冈州数据中心有15万台服务器。,6.1.2 大型计算机集群结构,【案例】 HPC高性能计算机集群
14、系统结构。,6.1.2 大型计算机集群结构,【案例】集装箱数据中心。,6.1.2 大型计算机集群结构,6、计算机集群系统的关键技术(1)存储网络 存储系统采用磁盘阵列(RAID),通过高速光纤通道互连。(2)高速通信网络 大多采用10Gbit/s或更高速率的以太网作为内部数据传输网络。(3)集群调度和容错 集群系统中,各种意外事故随时可能发生; 集群系统必须进行任务备份和错误处理。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1 计算机的发展,6.1.3 集群分布式计算Hadoop,1、分布式计算的基本特征分布式计算技术: 如,中间件技术、网格技术、移动Agent技术、P2P技术,
15、Hadoop技术等。目前流行的分布式计算系统: 基于计算机集群的Hadoop分布式计算平台 基于网格计算的BOINC开放式网络计算平台。不同的实现技术: Hadoop利用大型数据中心的计算机集群实现计算; BOINC利用互联网中普通用户计算机实现计算; Hadoop的数据传输主要利用高速局域网; BOINC的数据传输利用互联网。,6.1.3 集群分布式计算Hadoop,2、Hadoop基本特征Hadoop(海杜普,一个玩具大象的虚构名字)是一个分布式系统计算框架。Hadoop核心技术: HDFS(海杜普分布式文件系统)为海量数据提供分布式文件管理; MapReduce(映射/聚合)为海量数据提
16、供分布式计算方法。Hadoop技术应用: 国外: Google、Facebook、Twitter、Amazon、eBay、IBM、Intel等, 国内:淘宝、华为、百度、腾讯等。,6.1.3 集群分布式计算Hadoop,3、Hadoop的优点Hadoop平台可处理海量数据(PB级)的应用程序。 应用程序运行在由数万台机器组成的大型计算机集群系统上。Hadoop维护多个数据副本,并自动将失败的任务重新分配。 Hadoop并行工作,能在计算节点之间动态分配数据。Hadoop是开源平台,它的开发成本低。,6.1.3 集群分布式计算Hadoop,4、Hadoop的基本结构Hadoop分布式计算平台基本
17、结构如图6-5所示。,6.1.3 集群分布式计算Hadoop,HDFS是分布式文件系统。 HDFS的功能是管理名称节点和数据节点。 HBase是NoSQL(非结构化查询语言)数据库。 MapReduce是分布式计算框架。 Pig是数据流编程语言。 Hive提供数据归纳、查询和分析等功能。 Sqoop是数据转换和数据传输工具。 Zookeeper功能包括:配置维护、名称服务、分布式同步等。 Avro是数据序列化格式与传输工具。 Ambari是管理工具,可以监控、部署、管理Hadoop系统。,6.1.3 集群分布式计算Hadoop,5、MapReduce工作原理MapReduce思想:将问题的解决
18、方法抽象成Map(映射)和Reduce(聚合)两个过程。MapReduce工作流程: 作业提交(输入)Map任务分配和执行(映射)Reduce任务分配和执行(聚合)作业完成。,6.1.3 集群分布式计算Hadoop,Hadoop分布式计算平台工作流程,6.1.3 集群分布式计算Hadoop,【案例】Hadoop体系结构。,6.1.3 集群分布式计算Hadoop,(1)作业提交 作业提交前,要把所有东西都配置好; 用户主要工作:写好Map和Reduce程序代码。(2)Map任务分配 客户端将作业提交到服务器; 服务器把输入文件切分为M块(64MB/块); 每块有多个副本存储在不同机器上(默认值3
19、); 系统生成若干个Map任务; 将用户进程拷贝到集群机器运行。,6.1.3 集群分布式计算Hadoop,(3)Map任务执行 名字节点:负责文件元数据操作和客户端对文件的访问。 数据节点:负责处理文件内容,如读写、存储、校验等。 数据节点周期性向名字节点上报数据块信息。 心跳信号3秒钟一次,数据节点超过10分钟没有回应,则认为节点故障; 名字节点重新将数据块分配到另外一个数据节点处理。(4)Reduce任务分配与执行 给空闲的Reduce节点分配任务; 任务完成则拷贝其输出。 Reduce会对Map的输出进行归并排序处理。(5)作业完成 任务都完成后,数据写到分布式文件系统。,6.1.3 集
20、群分布式计算Hadoop,【案例】Hadoop MapReduce工作流程。,6.1.3 集群分布式计算Hadoop,【扩展】淘宝网站“双11”数据处理系统结构。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1 计算机的发展,61.4 网格分布式计算BOINC,1、BOINC分布式计算平台的发展BOINC(伯克利开放式网络计算平台)是世界最大的分布式计算平台。 “开放”的含义: BOINC客户端软件源代码开放; 用户来自世界各地,可以自由参加或退出; 计算项目的结果免费公开。截至2013年8月,BOINC在球有63万台主机; 提供约7.054PetaFLOPS(千万亿次浮点运算/秒
21、)计算能力。,61.4 网格分布式计算BOINC,2、BOINC工作原理BOINC系统组成:客户端软件和项目服务器。客户端工作: 在计算机闲置时,使用CPU或GPU进行运算; 自动与项目服务器连接; 服务器向志愿者计算机提供计算任务; 运算完成后,将计算结果上传至项目服务器。项目服务器工作: 发送计算任务,接收计算结果,核对计算结果等。 服务器会把同一任务传送至多个志愿者,并比较各个志愿者的计算结果。,61.4 网格分布式计算BOINC,【案例】 BOINC系统结构。,61.4 网格分布式计算BOINC,【案例】BOINC客户端计算平台。,61.4 网格分布式计算BOINC,3、BOINC服务
22、器的任务分配客户端通过互联网发送请求到BOINC服务器。 BOINC服务器的回复中包含了一组新的任务。服务器任务分配的理想方法: 服务器扫描整个任务列表; 发送针对该客户端的 “最佳”任务; 然而这在现实中不可行,因为数据库的开销将高得惊人。服务器任务分配的实际方法: 服务器在内存中维持1 000个任务缓冲区; 通过“供给器”程序从数据库中提取任务; 服务器对缓冲区的任务周期性的进行补充。,61.4 网格分布式计算BOINC,任务选择策略: 对任务缓冲区扫描; 针对每个任务请求做可行性检查; 如,检查客户端内存与硬盘空间等。 如果通过了检查,就锁定它; 检查数据库,选择计算任务。服务器任务大小
23、设置: 任务太大,慢客户端将无法在规定期限内完成任务; 任务太小,服务器会被众多小任务调度而超出负荷; 服务器在特定时间间隔(如1天)内,向志愿者计算机发送任务。,61.4 网格分布式计算BOINC,【案例】BOINC客户端计算任务。,61.4 网格分布式计算BOINC,4、客户端诸多问题的解决计算错误: 志愿者计算机发生故障; 少数恶意志愿者试图破坏项目; 少数志愿者为获得积分而不进行实际运算。解决方法: 服务器对计算结果进行验证; 服务器把计算任务发送给两个不同的客户端; 如果两者运算结果一致,计算结果被认为正确; 否则,服务器发送计算任务到其他客户端,以期获得一致的计算结果。,61.4
24、网格分布式计算BOINC,客户端计算能力评估: 客户端软件定期(1周左右)在志愿者计算机上运行基准测试程序; 对志愿者计算机的运算能力做出评估; 客户端完成计算任务后,会记录完成该任务所耗费的CPU时间; 在向服务器上报计算结果的同时,提交客户端的积分申请。,61.4 网格分布式计算BOINC,客户端的运算效率: 不同计算机有不同的错误率,大多数计算机错误率接近于0; 冗余校验计算是必要的,但它会使计算变得低效。提高运算效率的方法: 服务器对客户端进行动态错误率E(H)评估; 如果错误率E(H)K,对这个客户端所有任务都进行冗余校验计算; 如果错误率E(H)K,那么对任务做随机的冗余校验计算;
25、 当错误率E(H)接近0时,冗余校验也趋于0; 以上策略不能排除计算错误的可能性,但可以使错误降低到可接受水平。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1 计算机的发展,6.1.5 新型计算机系统研究,目前计算机存在的问题: 能耗导致集成电路芯片发热; 发热影响芯片集成度,限制了运行速度。硅芯片技术的理论限制: 集成电路采用硅芯片光刻技术; 目前CPU内部制程线宽达到了12纳米; 制程线宽达到7纳米时,会使集成电路无法正常工作。这些制约因素激励科学家必须进行新型计算机的研究。,6.1.5 新型计算机系统研究,1、量子计算机量子计算机由存储元件和逻辑门元件构成。量子位存储: 量
26、子计算机中,数据采用量子位存储。 一个量子位可以是0或l,也可以既存储0又存储; 一个量子位可以存储2位二进制数据。量子计算机优点: 能实现并行计算,加快计算速度; 大大提高了数据存储能力; 可对物理系统进行高效率模拟; 能实现发热量极小的计算机。,6.1.5 新型计算机系统研究,【扩展】量子纠缠 两个来自同一系统的粒子(如电子或光子)被分开时,它们会纠缠成量子状态,即使距离遥远,任何一方状态发生变化时,另一方也会即刻发生相应变化。量子纠缠就像是心灵感应一样不可思念,因而爱因斯坦将量子纠缠称为“鬼魅似的远距作用”。,激光束照射硼酸钡晶体时,会在两个圆锥面交集的两条直线之处,制备出很多偏振相互垂
27、直的纠缠光子对。,6.1.5 新型计算机系统研究,【扩展】由未通过拍摄目标的光子拍摄的镂空猫图案。 奥地利物理学家无需光与拍摄目标相互作用,利用量子效应拍出了猫图案照片。 猫照片证明了粒子能同时处于两种状态(量子纠缠)。论文发表在自然杂志。,6.1.5 新型计算机系统研究,【案例】2007年,加拿大D-Wave System公司研制成功了世界上第一台16 qubits(量子位)的量子计算机样机。,6.1.5 新型计算机系统研究,【案例】 D-Wave公司量子计算机处理器(CPU)位宽发展。,6.1.5 新型计算机系统研究,D-Wave量子计算机目前能够快速求解的问题。 最大切割问题; 俄罗斯方
28、块、数独问题; 图着色问题; 可满足性问题; 子集问题; 旅行商问题; 共计3000多个问题。量子计算机存在的困难: 在环境作用下,量子不能长时间保持纠缠态; 目前水平只能够让一两个量子比特,相互纠缠几微秒的时间; 量子比特运行状态不稳定,需要反复验算保证结果的准确; 量子比特芯片需要在接近绝对零度(-273.13摄氏度)的环境下运行; 量子编码纠错复杂,效率不高。,6.1.5 新型计算机系统研究,2、超导计算机超导现象: 导体在接近绝对零度(-273.15)时,电流在某些介质中传输时所受阻力为0的现象。 约瑟夫逊元件: 由超导体绝缘体超导体组成的器件,当对两端施加电压时,电子会像通过隧道一样
29、无阻挡地从绝缘介质中穿过,形成微小电流,而器件两端电压为0。 用约瑟夫逊器件制造的计算机称为超导计算机。优点: 耗电为半导体器件的几千分之一; 执行一个指令只需几个皮秒,比半导体元件快10倍。困难: 超导现象只有在超低温状态下才能发生。,6.1.5 新型计算机系统研究,【案例】光控超导芯片原理。 通过合并超导开关,从超导谐振腔中捕捉光子,并将其释放进去;通过控制开关,在光子通行的密封腔穴和道路之间打开或关闭通道。,6.1.5 新型计算机系统研究,3、光子计算机光子计算机是以光子代替电子,光互连代替导线互连。优点: 光子传输不需要导线,在光线相交情况下,也不会相互影响; 只需要一小部分能量就能驱
30、动,大大减少芯片的热量; 并行处理能力强,具有超高速运算速度。 能在高温下工作。困难: 要求有更强光源; 光线严格要求对准,元件和装配精度要达到纳米级; 必须研制具有完备功能的基础元件开关。,6.1.5 新型计算机系统研究,【扩展】硅光子技术。,6.1.5 新型计算机系统研究,4、生物计算机生物计算机运算过程是蛋白质分子与周围物理化学介质的相互作用过程。 计算机的转换开关由酶来充当。优点: 信息存储量大,能模拟人脑思维; 计算时间为10ps(皮秒)级; 有自我修复的功能。困难: 蛋白质受环境干扰大,干燥时不工作,冷冻时会凝固,加热会使工作不稳定; 高能射线可能会打断化学键,从而分解分子机器;
31、DNA(脱氧核糖核酸)分子容易丢失和不易操作。,6.1.5 新型计算机系统研究,【案例】光激活的DNA逻辑门晶体管原理图。,计算机导论计算思维和应用技术,计算机,6.2.3 数据传输,6.2.4 数据计算,6.2.5 指令系统,6.2.1 信息编码,6.2.2 数据存储,6.2.1 信息编码,计算机工作原理: 将各种信息转换为二进制代码(信息编码); 保存在计算机存储器中(数据存储); 运算器对数据进行处理(数据计算); 数据从一个部件传送到另一个部件(数据传输); 数据转换成人类能理解的形式(数据解码); 以上工作过程由机器命令控制(指令系统)。计算机本质上是一台由程序控制的二进制符号处理机
32、器。,6.2.1 信息编码,1、信息的编码转换语言文字是一种信息编码系统。2、二进制编码的理论依据香农(C. E. Shannon)指出:通信的基本信息单元是符号,而最基本的信息符号是二值符号。最典型的二值符号是二进制数。 如,多个开关的组合可以产生1与0的特殊模式。文字、数据、照片,音乐或电影,都可以编码为二进制数据; 将信息转换为二进制编码称为“信息数字化”。,6.2.1 信息编码,3、二进制编码的优点计算机采用十进制和二进制的比较:由以上比较可以看出: 用二进制设计计算机结构简单,但信息存储量和计算量大大增加; 这符合图灵对计算机设计的思想:机械的、有限的计算。,6.2.1 信息编码,4
33、、计算机中二进制编码的含义计算机并不能“理解”二进制符号的含义。 如,二进制数“0100 0010”在计算机内的含义是什么? 如果是采用原码编码的数值,则表示十进制的+65; 如果采用BCD编码,则表示十进制的42; 如果采用ASCII编码,则表示字符A; 另外还可能是图形数据,视频数据,运算指令,或其他含义。二进制数据的具体含义取决于程序对它的解释。,6.2.1 信息编码,5、计算机编码的基本原则(1)对应性 编码应当与信息建立对应关系。 如,英文符号与ASCII编码的对应关系等。(2)适应性 编码要适应计算机处理的需要。 如,逻辑运算的“真”和“假”可以用二进制“0”和“1”表示。(3)冗
34、余度 编码应尽量减少数据冗余度。 如,压缩后的音频信号减小了数据冗余度。,6.2.1 信息编码,(4)可靠性 数据传输和存储时,都会发生信号失真,使信息遭到损坏。 通信系统和存储系统必须采用检错和纠错编码。 常见检错编码: 奇偶校验码; 循环冗余校验码(CRC); 海明码等。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1 计算机的发展,6.2.2 数据存储,1、存储器类型存储器类型:内部存储器(内存)、外部存储器(外存)。 内存通过总线与CPU相连,用来存放正在执行的程序和数据; 外存需要通过接口电路与主机相连,用来存放暂时不执行的程序和数据。(1)内存 内存是用CMOS(互补金
35、属氧化物半导体)工艺制作的半导体存储芯片; 内存断电后,程序和数据都会丢失。 内存类型:随机存储器(RAM)和只读存储器(ROM); ROM使用不方便,性能极低,目前已淘汰。,6.2.2 数据存储,DRAM: 利用电容保存数据,结构简单,成本低; 由于电容漏电,数据容易丢失,必须定时充电(内存动态刷新)。 SRAM: 利用晶体管保存数据,速度快,不需要刷新; 结构复杂,用在CPU内部作为高速缓存(Cache)。,6.2.2 数据存储,(2)外存 外存要求: 能够保存大量数据; 价格便宜; 断电后数据不丢失。外存材料: 半导体材料的闪存,如,电子硬盘、U盘、存储卡等; 磁介质材料的硬盘,如,硬盘
36、(软盘和磁带机已淘汰); 光介质材料的光盘,如,CD-ROM、DVD-ROM、BD-ROM等。,6.2.2 数据存储,(3)存储容量单位 最小存储单位是字节(Byte); 1个字节可存放8位(bit)二进制数据。实际应用存储单位: 1Byte=8bit, 1KB=1024B, 1MB=1024KB, 1GB=1024MB, 1TB=1024GB, 1PB=1024TB, 1EB=1024PB。,6.2.2 数据存储,(4)存储器性能 存取时间,一次存储操作需要的全部时间; 如,内存存取时间为纳秒级(ns); 如,硬盘存取时间为毫秒级(ms)。存取周期,连续2次存储操作的最小时间间隔; 如,寄存
37、器为1个存取周期; 如,DDR3-1600内存为30个存取周期。传输带宽,单位时间内存储器达到的最大数据存取量; 串行传输带宽单位为bit/s(位/秒); 并行传输单位为B/s(字节/秒)。,6.2.2 数据存储,【扩展】各种存储器性能比较。,CPU SRAM,内存 DRAM,闪存 SSD,硬盘HDD,光盘DVD,6.2.2 数据存储,2、存储器层次结构用户要求: 存储容量大,停电后数据不丢失,设备移动性好,价格便宜; 对数据读写延时不敏感,秒级即可满足要求。CPU要求: 存储容量不大,不要求停电保存数据,对移动性没要求; CPU对数据传送速度要求极高。为了解决以上矛盾,数据在计算机中分层次进
38、行存储。,6.2.2 数据存储,【案例】存储器层次结构。,6.2.2 数据存储,3、存储器数据查找(1)内存数据查找 程序和数据以字节为单位存放在内存中; 每个内存单元都有一个地址。 按内存地址查找程序或数据的称为寻址。 寻址由操作系统控制,由硬件设备(CPU、内存、总线)执行。寻址空间: 早期8086计算机采用20位地址,寻址空间为220=1 048 576(1MB)。 目前CPU为64位,寻址空间为:264=16EB; 但是,32位的Windows操作系统寻址空间为:232=4GB; 采用32位操作系统时,内存寻址空间小于4GB(大约3.7GB,系统核心占用了一部分)。,6.2.2 数据存
39、储,【案例】内存数据的寻址。,6.2.2 数据存储,(2)外存数据查找 程序运行时,CPU不直接对外存的程序和数据寻址; 而是在操作系统控制下,将程序和数据复制到内存; CPU只在内存中读取程序和数据。外存以“块”为单位进行数据存储和传输。 如,硬盘数据块称为“扇区”; 如,U盘数据按“块”进行查找; 如,光盘数据按“扇区”查找,但扇区结构与硬盘不同; 如,网络数据在接收缓冲区查找。外存数据的地址编码方式与内存不同 如,Windows按“簇”(1簇=4KB)进行数据寻址; 外存寻址不需要地址线,而是将地址信息放在数据包中,利用线路进行串行传输。,6.2.2 数据存储,【案例】硬盘数据的寻址。,
40、6.2.2 数据存储,【扩展】CPU内存外存之间的关系。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1 计算机的发展,6.2.3 数据传输,1、模拟信号与数字信号信号形式有数字信号和模拟信号。 模拟信号是连续变化的电磁波或光波; 数字信号是电压或光波脉冲序列。,6.2.3 数据传输,【案例】实测数字信号(上)和模拟信号(下)。,6.2.3 数据传输,数字信号的优点: 传输速率高,传输成本低,对噪声不敏感。 数字信号的缺点: 信号容易衰减,不利于长距离传输。信号传输方式: 单向传输(单工)如,计算机向打印机、音箱等设备传输数据; 双向传输(全双工)如,内存与CPU、计算机网络等;
41、半双向传输(半双工),一方传输完成后,另外一方才能进行数据传输;如,SATA 2.0接口的硬盘、USB 2.0接口的U盘等。,6.2.3 数据传输,2、数据并行传输数据以成组方式(1至多个字节)在线路上同时传输。并行传输中,每位占一条线路,32位(4字节)传输就需要32条线路;并行传输适用短距离(2米以下)设备之间的数据传输。并行传输应用: CPU与内存之间的数据传输; PCI总线设备与主板芯片组之间的数据传输等。,6.2.3 数据传输,【案例】数据的并行传输。,6.2.3 数据传输,【案例】数据的并行传输。,6.2.3 数据传输,3、数据串行传输数据在传输线路(信道)上一位一位按顺序传送。
42、优点 物理线路最少; 适合信号远距离传输。,6.2.3 数据传输,【扩展】字符串行传输(上)和网络数据帧串行传输(下)。,6.2.3 数据传输,4、并行传输与串行传输的比较从理论上看,并行传输的带宽大大高于串行传输。提高并行传输速率的困难: 时钟频率在200MHz以下,时钟频率过高,会导致信号之间相互干扰; 高频(100MHz以上)并行传输时,信号的同步控制成本很高; 目前并行传输(64位总线)最高带宽为12GB/s。串行传输的优势: 传输时钟频率在1GHz以上; 如,USB 3.0传输时钟频率为5GHz; 如,光纤传输时钟频率达到了6.4THz以上,以字节计算,大致为640GB/s。 信号同
43、步简单,抗干扰能力强,线路少,占用空间小,通信成本低; 串行传输带宽大大高于并行传输。,6.2.3 数据传输,【扩展】并行传输的时序较为复杂。,6.2.3 数据传输,【扩展】串行传输的时序简单。,6.2.3 数据传输,并行传输发展趋势: 集成电路芯片内部电路一般采用并行传输; 内存与CPU之间采用并行传输,因为串行传输技术成本过高; PCI总线采用并行传输,但目前趋于淘汰。串行传输发展趋势: 计算机越来越多采用串行传输技术。 如,显卡数据传输采用PCI-E串行总线; 如,硬盘采用SATA串行接口; 如,外部数据采用USB串行总线等。,计算机导论计算思维和应用技术 第6章 系统结构,1.1.1
44、计算机的发展,6.2.4 数据计算,1、加法器部件狭义计算:如,加、减、乘、除等; 广义计算:如,通过算法对问题进行求解。计算机的计算建立在算术四则运算的基础上。 四则运算中最基本的运算是加法。 进行二进制数加法运算的部件称为加法器; CPU内部有ALU(算术逻辑运算单元)和FPU(浮点运算单元); ALU功能:整数四则运算和逻辑运算; FPU功能:小数运算和矢量运算。 如,Intel Core i7 CPU中,有4个CPU内核,每个内核有5个64位ALU单元和3个128位的FPU单元。,6.2.4 数据计算,【扩展】Intel 8086 CPU内部结构示意图。,6.2.4 数据计算,【扩展】
45、Intel Core CPU内部结构示意图。,6.2.4 数据计算,2、计算机指令执行过程一条程序指令的执行可能包含许多操作,但主要由“取指令、指令译码、指令执行、结果写回”四种基本操作构成,这个过程不断重复进行,如图6-16所示。,6.2.4 数据计算,(1)取指令(IF) CPU内部的指令寄存器(IP)保存当前指令的内存地址; 控制单元在指令寄存器中取出指令的内存地址; 通过地址总线,找到指令内存单元(寻址); 通过总线将指令传送到高速缓存。,6.2.4 数据计算,(2)指令译码(ID) 译码单元解释指令的类型与内容; 判定指令的操作对象(操作数); 将操作数从内存单元读入CPU高速缓存中
46、。 译码就是将二进制指令代码翻译成为特定的CPU微操作。,6.2.4 数据计算,(3)指令执行(IE) 执行单元由ALU和FPU组成。 译码后的指令送入处理单元; 如果操作是整数运算、逻辑运算、内存存取、控制指令等,则送入ALU处理; 如果操作对象是浮点数据(即小数),则送入FPU处理。 如果需要数据,则从高速缓存中读取; 如果高速缓存中没有需要的数据,则从内存中获取数据。,6.2.4 数据计算,(4)结果写回(WB) 运算完成后,ALU(或FPU)将运算结果写回到高速缓存或内存中。 执行完一条指令后,控制单元从内存读取下一条指令 以上过程不断重复执行。,计算机导论计算思维和应用技术 第6章
47、系统结构,1.1.1 计算机的发展,6.2.5 指令系统,1、指令的基本组成指令是计算机能够识别并执行的二进制代码。 指令的类型与数量由CPU决定。 机器指令组成:操作码+操作数【例】8086汇编语言指令的格式。,6.2.5 指令系统,2、指令系统不同类型的计算机,指令系统不同。 不同指令系统的计算机,它们的软件不能通用。 例如,台式计算机采用x86指令系统,智能手机采用ARM指令系统,它们的软件不能相互通用。指令类型: (1)数据传送指令:将数据在内存与CPU之间传送; (2)数据处理指令:数据进行算术、逻辑或关系运算; (3)程序控制指令:如条件转移、无条件转移、调用子程序、返回、停机等;
48、 (4)输入/输出指令:外部设备与主机之间的数据传输; (5)其他指令:对计算机的硬件和软件进行管理等。,6.2.5 指令系统,3、CISC与RISC指令系统(1)CISC指令系统 CISC(复杂指令集计算机)指令:数量多,功能复杂,长度不一。 x86系列计算机是典型的CISC指令系统。 为了兼容以前的软件,x86指令系统越来越复杂。(2)RISC指令系统 RISC(精简指令集计算机)指令:数量少,功能简单,长度固定; 所有指令在一个周期内完成; 指令采用流水线执行技术等。 ARM(安媒)CPU采用RISC指令系统; 智能手机和平板电脑大多采用RISC指令系统。,6.2.5 指令系统,4、x8
49、6基本指令集Intel公司1978年发布8086指令集。 x86指令长度为115字节不等 大部分指令在5个字节以下。 从Pentium CPU开始,长度不同的x86指令,在CPU内部译码成长度固定的RISC指令,这种方法称为微指令或微操作指令。x86指令集的发展:,6.2.5 指令系统,【扩展】微指令技术。 微指令是CPU利用软件实现硬件功能的技术。 微指令概念的引入使大型复杂数字系统的设计发生了革命性变化; 因为微指令技术可代替硬件电路控制技术; 即由门电路组成的硬件电路可被微指令所取代。 优点: 简化了CPU的逻辑电路; 用微程序代替逻辑电路; 指令系统升级灵活方便; CPU内核测试、维护方便。缺点: 降低了CPU执行效率。,6.2.5 指令系统,【扩展】微指令技术。微指令的特征: 一条机器指令对应一个微程序; 一个微程序由若干条微指令组成; 一条微指令包含若干个并行执行地微操作; 一条微指令的执行时间为一个时钟周期。微指令执行过程: CPU内部ROM中存放了机器指令对应的微程序; 执行机器指令时,CPU电路会在ROM中寻找对应的微程序; 取出微程序后,执行各个微操作,完成机器指令的功能。,