四川大学网络空间安全学院计算机组成和体系结构第一讲

2020-03-01 706浏览

  • 1.计算机组成和体系结构 第一讲 四川大学 网络空间安全学院
  • 2.版权声明 本文中所使用的图片、链接等使用归 原版权人所有。 本文采用创作共用署名-非商用使用相同方式共享 4.0 国际版许可证 (Creative Common AttributionNonCommercial-ShareAlike 4.0 International, CC BY-NC-SA 4.0) 授权。
  • 3.00 / 课程介绍 01 / 绪论1:计算机组成和体系结构概述 目录 02 / 绪论2:计算机发展历史 03 / 绪论3:计算机层次结构与云计算 04 / 绪论4:冯-诺依曼模型与并行计算 计算机组成和体系结构 海纳百川 有容乃大
  • 4.00 计算机组成和体系结构 课程介绍 海纳百川 有容乃大
  • 5.课程信息 • 课程对象:四川大学网络空间安全专业二年级本科生 • 任课教师: • 课序号01:王启旭(qixuwang@scu.edu.cn) • 助教:汪邓喆(2078177077@qq.com) • 课序号02:高凯(kaigao@scu.edu.cn) • 助教:章蕾(zhanglei66@qq.com) • 课序号03:李贝贝(libeibei@scu.edu.cn) • 助教:宋涵(songhan@stu.scu.edu.cn) 计算机组成和体系结构 海纳百川 有容乃大
  • 6.课程特点 • 内容丰富 • 48学时 • 大量的专业术语、 • 偏硬件 • 涉及现代通用计算机各组成部分的工作原理、实现机制以及相互关系 • 要求已经选修过数字电路设计等相关课程 • 与后续课程联系紧密 • 学习内容涉及到操作系统、编译原理、高性能计算、计算机网络等 计算机组成和体系结构 海纳百川 有容乃大
  • 7.课程评分细则 最终成绩=出勤(20%)+ 作业(25%)+ 期中考试(15%)+ 期末考试(40%) 1. 课堂出勤占总成绩的20%,超过3次考勤未到则考勤记为0分; 2. 每周课程对应一个课程作业,课程作业占总成绩的25%;如发现作业抄 袭则双方此次作业直接记为0分,两次抄袭则课程不及格并上报学校; 3. 在期中考试周,课程将进行期中考试(英文考卷,闭卷),考试范围为 前半期学习的内容,占总成绩的15%; 4. 在期末考试周,课程将进行期末考试(英文考卷,闭卷),考试范围为 本半期学习的内容,占总成绩的40%。 5. 考试作弊直接记为不及格并上报学校 计算机组成和体系结构 海纳百川 有容乃大
  • 8.学习目标 • 基本目标:通过课程学习了解现代通用计算机各主要组成部分的 硬件实现以及对应的实现逻辑 知其然 • 进阶目标:通过课程学习初步认识层次化抽象、指令集驱动的硬 件实现、性能-功耗-价格之间的权衡等系统设计思想 知其所以然 计算机组成和体系结构 海纳百川 有容乃大
  • 9.01 计算机组成和体系结构 绪论 1 计算机组成和体系结构概述 海纳百川 有容乃大
  • 10.计算机组成和体系结构的关系 计算机组成(Organization) 计算机体系结构(Architecture) • 计算机系统物理层面的各项组件以 及相互之间的关联方式 • 例如:电子电路设计、控制信号、 内存类型等等 • 通过学习计算机组成,了解计算机 是如何工作的 • 计算机系统实现逻辑层面的各项组件 以及相互之间的关联 • 例如:指令集、指令编码、寻址模式 等等 • 通过学习计算机体系结构,了解如何 设计计算机 参考: Linda Null and Julia Lobur, “The Essentials of Computer Organization and Architecture”, 4th Edition 计算机组成和计算机体系结构密切相关: • CPU设计:集成电路处理器 + 指令集 • 内存:不同类型的内存 + 层次化内存结构、段页式内存管理等 计算机组成和体系结构 海纳百川 有容乃大
  • 11.初识计算机系统 从服务器到移动设备,通用计算机的组成和体系结构是相似的 • CPU • CPU • Intel E5-2600v4 • 2.4 GHz • 3级缓存15MB/25MB/35MB • 内存 • CPU • 麒麟990 • 2.86 GHz • Intel i7-8665U • 1.9 GHz • 缓存8MB • 内存 • ECC DDR4 768G • 内存 • 8G • DDR4 16G • 存储 • 存储 • 存储 • 网卡 • 网卡 • 网卡 • PCIe、USB • 显卡 • 相机 • … • PCIe、USB • 耳机 • … • … 计算机组成和体系结构 海纳百川 有容乃大
  • 12.初识计算机系统 从服务器到移动设备,通用计算机的组成和体系结构是相似的 • CPU • CPU • Intel E5-2600v4 • 2.4 GHz • 3级缓存15MB/25MB/35MB • 内存 • Intel i7-8665U • 1.9 GHz • 缓存8MB • 内存 • ECC DDR4 768G • DDR4 16G • CPU • 麒麟990 • 2.86 GHz • 内存 • 8G • 存储 • 存储 • 存储 • 网卡 • 网卡 • 网卡 • PCIe、USB • … • 相机 • 显卡 1. 解释并执行程序的中央处理器(Central • 耳机 • PCIe、USB Processing Unit, CPU) • … • … 计算机组成和体系结构 海纳百川 有容乃大
  • 13.初识计算机系统 从服务器到移动设备,通用计算机的组成和体系结构是相似的 • CPU • CPU • Intel E5-2600v4 • 2.4 GHz • 3级缓存15MB/25MB/35MB • 内存 • CPU • 麒麟990 • 2.86 GHz • Intel i7-8665U • 1.9 GHz • 缓存8MB • 内存 • ECC DDR4 768G • 内存 • 8G • DDR4 16G • 存储 • 存储 • 存储 • 网卡 • 网卡 • 网卡 • PCIe、USB • … • 显卡 2. 储存程序和数据的内存 计算机组成和体系结构 • 相机 • PCIe、USB • 耳机 • … • … 海纳百川 有容乃大
  • 14.初识计算机系统 从服务器到移动设备,通用计算机的组成和体系结构是相似的 • CPU • CPU • Intel E5-2600v4 • 2.4 GHz • 3级缓存15MB/25MB/35MB • CPU • 麒麟990 • 2.86 GHz • Intel i7-8665U • 1.9 GHz • 缓存8MB 3. 与外界设备进行数据交互的其它组件 • 内存 • 内存 • 内存 • ECC DDR4 768G • 8G • DDR4 16G • 存储 • 存储 • 存储 • 网卡 • 网卡 • 网卡 • PCIe、USB • 显卡 • 相机 • … • PCIe、USB • 耳机 • … • … 计算机组成和体系结构 海纳百川 有容乃大
  • 15.计算机系统的性能 从服务器到移动设备,通用计算机的组成和体系结构是相似的 • CPU • CPU • Intel E5-2600v4 • 2.4 GHz • 3级缓存15MB/25MB/35MB • 内存 • CPU • 麒麟990 • 2.86 GHz • Intel i7-8665U • 1.9 GHz • 缓存8MB • 内存 • ECC DDR4 768G • 内存 • 8G • DDR4 16G • 存储 • 存储 • 存储 • 网卡 • 网卡 • 网卡 • PCIe、USB • … 计算机组成和体系结构 • 显卡 这些数字代表什么意思? • 相机 • PCIe、USB • 耳机 • … • … 海纳百川 有容乃大
  • 16.计算机系统的性能:常见计量单位 • 赫兹(Hertz,Hz) • 物理意义:处理能力计量单位,单位时间时钟周期数 • 常见对象:CPU、GPU等 • 常见取值: GHz (=109 Hz) • 字节(Byte, B) • 物理意义: 存储容量计量单位,存储介质可表示的字节数量 • 常见对象:内存、硬盘等 • 常见取值: GB (=220 Bytes),TB (=230 Bytes) • 每秒传输比特/字节数(Bit-per-second, bps或Byte-per-second, Bps) • 物理意义:传输速率计量单位,单位时间传输的比特数或字节数 • 常见对象:网卡、PCI接口、USB接口等 • 常见取值: Mbps (=106 bps),Gbps (=109 bps),GBps (=GB/s=109 Bps=8*109 bps) • 秒(Second, s) • 物理意义:时间计量单位,某项操作所需时间 • 常见对象:时钟周期、执行时间、传输延迟等 • 常见取值:ms (=10 -3 s),ns (=10 -9 s) 等 计算机组成和体系结构 海纳百川 有容乃大
  • 17.计算机系统的性能:常见计量单位 • 赫兹(Hertz,Hz) • 物理意义:处理能力计量单位,单位时间时钟周期数 • 常见对象:CPU、GPU等 • 常见取值: GHz (=109 Hz) 1 f = 𝑇 ,时钟频率是时钟周期的倒数 • 字节(Byte, B) • 物理意义: 存储容量计量单位,存储介质可表示的字节数量 • 常见对象:内存、硬盘等 𝐷 r = ,传输速率等于传输数据量除以时间 𝑡 • 常见取值: GB (=220 Bytes),TB (=230 Bytes) • 每秒传输比特/字节数(Bit-per-second, bps或Byte-per-second, Bps) • 物理意义:传输速率计量单位,单位时间传输的比特数或字节数 • 常见对象:网卡、PCI接口、USB接口等 • 常见取值: Mbps (=106 bps),Gbps (=109 bps),GBps (=GB/s=109 Bps=8*109 bps) • 秒(Second, s) • 物理意义:时间计量单位,某项操作所需时间 • 常见对象:时钟周期、执行时间、传输延迟等 • 常见取值:ms (=10 -3 s),ns (=10 -9 s) 等 计算机组成和体系结构 海纳百川 有容乃大
  • 18.计算机系统的性能:常见计量单位 • 赫兹(Hertz,Hz) • 物理意义:处理能力计量单位,单位时间时钟周期数 • 常见对象:CPU、GPU等 • 常见取值: GHz (=109 Hz) • 字节(Byte, B) 后续课程中会介绍更多CPU性能指标 • 物理意义: 存储容量计量单位,存储介质可表示的字节数量 • 常见对象:内存、硬盘等 • 常见取值: GB (=220 Bytes),TB (=230 Bytes) • 每秒传输比特/字节数(Bit-per-second, bps或Byte-per-second, Bps) • 物理意义:传输速率计量单位,单位时间传输的比特数或字节数 • 常见对象:网卡、PCI接口、USB接口等 • 常见取值: Mbps (=106 bps),Gbps (=109 bps),GBps (=GB/s=109 Bps=8*109 bps) • 秒(Second, s) • 物理意义:时间计量单位,某项操作所需时间 • 常见对象:时钟周期、执行时间、传输延迟等 • 常见取值:ms (=10 -3 s),ns (=10 -9 s) 等 计算机组成和体系结构 海纳百川 有容乃大
  • 19.计算机系统的性能:前缀乘数 表示容量、速度等的前缀乘数 表示时间、空间的前缀乘数 • Kilo- (K) = 1 thousand = 103 and 210 • Milli- (m) = 1 thousandth = 10 -3 • Mega- (M) = 1 million = 106 and 220 • Micro- () = 1 millionth = 10 -6 • Giga- (G) = 1 billion = 109 and 230 • Nano- (n) = 1 billionth = 10 -9 • Tera- (T) = 1 trillion = 1012 and 240 • Pico- (p) = 1 trillionth = 10 -12 • Peta- (P) = 1 quadrillion = 1015 and 250 • Femto- (f) = 1 quadrillionth = 10 -15 • Exa- (E) = 1 quintillion = 1018 and 260 • Atto- (a) = 1 quintillionth = 10 -18 • Zetta- (Z) = 1 sextillion = 1021 and 270 • Zepto- (z) = 1 sextillionth = 10 -21 • Yotta- (Y) = 1 septillion = 1024 and 280 • Yocto- (y) = 1 septillionth = 10 -24 1998年国际电子工程技术委员会(International Electrotechnical Commission, IEC)正式标准化二进制前缀乘数,“用以消除二进 制和十进制可能存在的表示混淆” 计算机组成和体系结构 海纳百川 有容乃大
  • 20.02 计算机组成和体系结构 绪论 2 计算机发展历史 海纳百川 有容乃大
  • 21.计算机发展:数据视角 图片来源:Karl Rupp “40 Years of Microprocessor Trend Data”https://www.karlrupp.net/2015/06/40years-of-microprocessor-trend-data/计算机组成和体系结构 海纳百川 有容乃大
  • 22.计算机发展:数据视角 图片来源:Anton Shkel and Abraham Grair, UCLA CS 111, Lecture 10 “File System Performance”,http://web.cs.ucla.edu/classes/winter13/cs111/scribe/10c/ 计算机组成和体系结构 海纳百川 有容乃大
  • 23.计算机发展:数据视角 图片来源:http://www.singularity.com/charts/page81.html 计算机组成和体系结构 海纳百川 有容乃大
  • 24.计算机发展 • 通常来说,我们讨论计算机发展历史的时候,主要是按照计算单元的技术飞 跃将现代通用计算机分为四代 • 在现代计算机之前,已经出现了利用机械进行计算的工具 巴比奇差分机(Differential Machine by Charles Babbage)图片来源:https://www.npr.org/templates/story/story.php?storyId=121206408 计算机组成和体系结构 穿孔卡片制表机(Punched Card Tabulator by Herman Hollerith)图片来源:https://www.ibm.com/ibm/history/ibm100/us/en/icons/tabulator/ 海纳百川 有容乃大
  • 25.第一代计算机:电子管(1945-1953) • 阿塔纳索夫-贝瑞计算机(Atanasoff Berry Computer, 1937-1938) • 发明者:爱荷华州立大学的John Atanasoff 和 Clifford Berry • 世界上第一台电子计算机 • 仅用于求解线性方程组 • 电子数字积分计算机(Electronic Numerical Integrator and Computer, ENIAC, 1946) • 发明者:宾夕法尼亚大学大学John Mauchly 和 J. Presper Eckert • 世界上第一台通用(general-purpose)计算机 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition • 103机(中国第一台电子计算机,1958) • 同时间还有其它电子管计算机问世,请查阅参考书 计算机组成和体系结构 海纳百川 有容乃大
  • 26.第二代计算机:晶体管(1954-1965) • TRADIC(贝尔实验室,1955) • 世界上第一台晶体管电子计算机 • IBM 7094 (科学计算)以及1401(商用) •… • 441B(中国第一台晶体管电子计算机,1964) 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 计算机组成和体系结构 海纳百川 有容乃大
  • 27.第三代计算机:集成电路(1965-1980) • IBM System/360(IBM,1964) • 首次采用集成电路 •… 图片来源:https://www.wsj.com/articles/the-chip-that-changed-theworld-1535311622 计算机组成和体系结构 海纳百川 有容乃大
  • 28.第四代计算机:超大规模集成电路(1980-?) • 超大规模集成电路(Very Large-scale Integrated Circuits, VLSI)的出现使得微处理器的发明成为可能 • 按照晶体管集成度分类: • • • • 小规模集成(Small-scale Integration,SSI):10 ~ 102 中等规模集成(Medium-scale Integration, MSI):102 ~ 103 大规模集成(Large-scale Integration,LSI): 103 ~ 104 超大规模集成电路:104 ~ 106 (2010年) • Intel 4004:世界上第一块微处理器 图片来源:https://de.wikipedia.org/wiki/VLSI_Technology 计算机组成和体系结构 海纳百川 有容乃大
  • 29.芯片发展两个著名定律 摩尔定律(Moore’s Law) • 1965年由Intel创始人戈登-摩尔 (Gordon Moore)提出 • 芯片密度每18个月增长一倍 计算机组成和体系结构 罗克定律(Rock’s Law) • 1960年代由Intel财务专家阿瑟-罗克 (Arthur Rock)提出 • 芯片制造的成本每4年增长一倍 海纳百川 有容乃大
  • 30.03 计算机组成和体系结构 绪论 3 计算机层次化结构与云计算 海纳百川 有容乃大
  • 31.计算机层次化结构 现代计算机是一个非常复杂的软硬件系统 • 程序员采用高级编程语言甚至是人机交互界 面表达计算需求 • 底层实现依靠的是数字电路连接和数字信号 处理 分解复杂性的一个重要方法是通过层次化 抽象 • 每一层可以看做一个“虚拟机”(Virtual Machine),具有特定的指令,并且通过调用 底层的“虚拟机”指令来执行特定的控制逻辑 • 其它例子:网络协议栈,软件工具栈 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 32.计算机层次化结构 Level 6:用户层(User) • 直接面向终端用户的应用程序和交 互界面 • 例子:桌面环境,浏览器,Office, IDE,游戏等 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 33.计算机层次化结构 Level 5:高级编程语言(High-level Language) • 提供了数据类型、控制逻辑、内存 管理等抽象的编程语言 • 例子:C/C++/C#,Pascal, Python,Java/Scala/Groovy, Javascript/Typescript, Haskell/F#等等. 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 34.计算机层次化结构 Level 4:汇编语言(Assembly) • 对底层硬件指令的直接翻译 • 例子:x86 assembly 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 35.计算机层次化结构 Level 3:系统软件(System Software) • 对系统资源提供调度和保护 • 例子:Linux,Windows,Unix, MacOS等 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 36.计算机层次化结构 Level 2:机器层/指令集架构层 (Machine level/Instruction Set Architecture Level) • 包含了底层芯片对应的指令集 • 不需要编译器、解释器或汇编器处 理即可直接执行 • 例子:x86,ARM,RISC等 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 37.计算机层次化结构 Level 1:控制层(Control Level) • 处理器通过控制单元进行指令的解 码和执行以及进行数据的移动 • 控制单元可以是硬件直连 (hardwired)或者可以被“微编 程”(Microprogrammed) • 例子:Intel microcode 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 38.计算机层次化结构 Level 0:数字逻辑层(Digital Logic Level) • 由门电路构成的数字电路 • 最终实现了上层所指定的功能 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 39.云计算(Cloud Computing) • 云计算出现的契机 • 网络技术的发展 • 大型数据中心的兴起:冗余计算资源 • 云计算相比购买硬件计算设备的优势 • 硬件成本、维护成本、管理成本大幅下降 • 服务弹性(Elasticity):对于云计算的用户来说,可根据实时的计算需求 快速请求相应的计算资源 • 资源利用率(Utilization):对于云计算的服务提供商来说,多租户共享 资源,减少了计算资源闲置,提高了整体的利用率 计算机组成和体系结构 海纳百川 有容乃大
  • 40.常见的云计算类型 Compute-as-a-service(计算即服务) • Software-as-a-service(软件即服务) • 例子:LAMP/Office 365/Steam/… • Platform-as-a-service(平台即服务) • 例子:Google App Engine/Azure Cloud Service/WeChat小程序等 • Infrastructure-as-a-service(基础设施即服务) • 例子:Amazon EC2 • Function-as-a-service(函数即服务) • 例子:Google Cloud Function、AWS Lambda 计算机组成和体系结构 海纳百川 有容乃大
  • 41.云计算与计算机层次化结构的关系 软件即服务(SaaS) 平台即服务(PaaS) 基础设施即服务(IaaS) 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 42.04 计算机组成和体系结构 绪论 4 冯-诺依曼模型与并行计算 海纳百川 有容乃大
  • 43.冯-诺依曼模型 • 首先由Mauchly和Eckert在ENIAC项目后 提出,由冯-诺依曼最初公开发表 • 改变ENIAC的功能需要手动对电子管进行连线 • 每个特定的硬件配置(连线方式)只能解决一 个特定的问题 • 核心思想:在内存中存储指令 计算机组成和体系结构 海纳百川 有容乃大
  • 44.冯-诺依曼模型 现在的通用计算机通常具有下面一些特征: • 由三部分硬件系统构成 • 中央处理单元(CPU) • 主存 • 输入/输出系统 • 可以执行指令序列 • 在CPU和主存之间有且仅有一个数据通路(也被称为冯-诺依曼 瓶颈) 计算机组成和体系结构 海纳百川 有容乃大
  • 45.冯-诺依曼模型 图中是一个冯-诺依曼模型的计 算机系统 程序的执行过程称为“冯-诺依 曼执行周期”,也被称为“取译码-执行” (Fetch-DecodeExecute)周期 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 46.冯-诺依曼模型 取(Fetch) CPU的控制单元根据程序计数器 (Program Counter,PC)从主 存中读取下一条需要执行的指令 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 47.冯-诺依曼模型 译码(Decode) 获取的指令被译码成为算数逻辑 单元(Arithmetic-Logic Unit, ALU)可以理解的形式 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 48.冯-诺依曼模型 执行(Execute) 根据译码的结果,CPU控制单元 从主存中读取操作数对应的数据, 并存入适当的寄存器(register) 中 为什么这一步不是“取”? 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 49.冯-诺依曼模型 执行(Execute) 根据译码的结果,CPU控制单元 从主存中读取操作数对应的数据, 并存入适当的寄存器中 ALU执行指令之后,将结果写回 寄存器或主存 计算机组成和体系结构 图片来源:Linda Null and Julia Lobur “The Essentials of Computer Organization and Architecture”, 4th Edition 海纳百川 有容乃大
  • 50.总结 • 认识计算机系统 • 主要的系统组件 • 相关性能指标以及符号表示 • 现代通用计算机发展历史 • 四代计算机采用的核心技术 • 电子管、晶体管、集成电路、超大规模集成电路 • 每代计算机的标志性产品和时间 • 摩尔定律和罗克定律 • 现代计算机层次化结构 • 用户层、高级语言层、汇编语言层、系统软件层、机器层、控制层、数字电路层 • 云计算及常见云计算类型 • 冯诺依曼模型 • 冯-诺依曼模型的特征 • 取译码执行的流程 计算机组成和体系结构 海纳百川 有容乃大
  • 51.谢谢!