• 1.1 引言
    • 1.1.1 计算应用得分类及其特性
      • 个人计算机
      • 服务器
        • terabyte:一般写作TB,原始定义为2^40字节,但是有些通信和辅助存储系统将其重新定义为10^12字节。为了避免混淆,使用术语tabibyte(TiB)表示2^40字节,而terabyte表示10^12字节
      • 嵌入式计算机
    • 1.1.2 后PC时代
      • 个人移动设备替代PC
      • 云计算替代传统服务器
        • 云计算:在网络上提供服务的大服务器集群,一些运营商根据应用需求出租不同数量的服务器。
    • 1.1.3 能从本书中学到什么
      • 用C或Java等高级语言编写程序如何翻译成硬件之间的语言
      • 软硬件之间的接口是什么
      • 哪些因素决定了程序的性能
      • 什么技术可供硬件设计者用于改进性能
      • 硬件设计者可使用哪些技术提高性能
      • 为什么串行处理进来发展为并行处理
      • 自1951年第一台商用计算机开始,计算机架构师们提出的哪些伟大的思想构成了现代计算机的基础
  • 1.2 计算机系统结构中的8个伟大思想
    • 1.2.1 面向摩尔定律的设计
      • 摩尔定律:单芯片上的集成度每18~24个月翻一番
    • 1.2.2 使用抽象简化设计
      • 使用抽象来表示不同的设计层次,高层次中看不到低层次的细节,只能看到一个简化的模型
    • 1.2.3 加速大概率事件
    • 1.2.4 通过并行提高性能
    • 1.2.5 通过流水线提高性能
    • 1.2.6 通过预测提高性能
    • 1.2.7 存储器层次
      • 存储器的素的通常影响性能、存储器的容量限制了解题的规模、当今计算系统中存储的代价占了主要部分
      • 设计师们发现可以通过存储器层次来解决这些问题
      • 在存储器中,速度最快、容量最小并且每位价格最昂贵的存储器处于顶层
    •  1.2.8 通过冗余提高可靠性
      • 由于任何一个物理器件都有可能失效,因此可以通过冗余部件的方式提高系统的可靠性,冗余部件可以替代失效部件并可以帮助检测错误
  • 1.3 程序概念入门
    • 从复杂的应用程序到简单的指令需要经过几个软件层次来将复杂的高层次操作逐步解释或翻译成简单的计算机指令,这可以作为抽象的一个例子
    • 操作系统为用户提供各种服务和监控功能
    • 高级语言程序编译成为汇编语言程序,最后汇编成为二进制机器语言程序
  • 1.4 硬件概念入门
    • 组成计算机的5个经典部件是输入、输出、存储器、数据通路(运算器)和控制器。数据通路和控制器合称为处理器。
    • 处理器从存储器中得到指令和数据,输入部件将数据写入存储器,输出部件从内存中读出数据,控制器向数据通路、存储器、输入和输出部件发出命令信号
    • 1.4.1 显示器
      • 大多数人的移动设备都采用液晶显示(Liquid Crystal Display, LCD)来获取轻巧、低功耗的显示效果。
      • LCD并非光源,而是控制光的传输。
      • 今天,大多数的LCD显示屏采用动态矩阵显示(active matrix display)技术,其每个像素(pixel)都由一个晶体管精确地控制电流,使图像更清晰。
      • 在彩色动态矩阵LCD中,哈有一个红—绿—蓝屏决定三种演撒分量的强度,每个点需要三个晶体开关。
    • 1.4.2 触摸屏
      • 许多平板电脑采用电容感应实现触控(支持多点触控)。
    • 1.4.3 打开机箱
      • 集成电路:也叫芯片,一种将几十个至几百万个晶体管连接起来的设备。
      • 中央处理器单元:也称为处理器,处理器是计算机中最活跃的部分
      • 数据通路负责完成算术运算
      • 控制器负责指导数据通路
      • 内存:程序运行时的存储空间,同时还存储程序运行时所需的数据
        • DRAM:动态随机访问内存。集成电路形式的存储器,可随机访问任何地址的内存。
      • 在处理器内部使用的是另外一种储存器——缓存。
      • 缓存(cache memory)时一种小而快的存储器,一般作为DRAM的缓冲
      • 缓存采用的是另一种存储技术,称为静态随机访问存储器(SRAM)
      • 其速度更快而且不那么密集,因此价格比DRAM更贵
      • SARM与DRAM是存储器层次中的两层
      • 指令集体系结构:是低层次软件和硬件之间的抽象接口。
      • 应用二进制接口:用户部分的指令加上应用程序员调用的操作系统接口,定义了二进制层次可移植的计算机标准。
    • 1.4.4 数据安全
      • 计算机中的内存是易失性存储器(volatile memory),仅在加电时保存数据
      • 非易失性存储器:掉电仍可保持数据的存储器
      • 易失性存储器为主存储器,非易失性为二级存储器(辅助储存器)
      • 移动设备多使用闪存作为第二级存储器
      • 闪存:一种非易失性半导体内存,单位价格和速度均低于DRAM,但单位价格比磁盘高,速度比磁盘快。
    • 1.4.5 与其他计算机通信
      • 通信:在计算机之间高速交换信息
      • 资源共享:有些I/O设备可以由网络上的计算机共享。不必每台计算机都配备
      • 远距离访问。
      • 最为普遍的网络类型是以太网,它的传输距离可达到1000km,传输速率可以达到40Gbps。
      • 局域网:一种在一定地理区域使用的传输数据的网络
      • 广域网:一种可将取余范围扩大到几百千米范围的网络
  • 1.5 处理器和存储器制造技术
    • 晶体管:一种受电流控制的开关
    • 集成电路(IC):由成千上万个晶体管组成的芯片
    • 超大规模集成电路(VLSI):由数十万到数百万的晶体管组成的电路
  • 1.6 性能
    • 1.6.1 性能的定义(性能的好坏是相对的)
      • 响应时间:也叫执行时间,是计算机完成某任务所需的总时间,包括硬盘访问、内存访问、I/O活动、操作系统开销和CPU执行时间等。
      • 吞吐率:也叫带宽,性能的另一种度量参数,表示单位时间内完成的任务数量。
      • 在讨论计算机设计时,经常要定量地比较两台不同的计算机的性能,我们将使用“x时y的n倍快”的表达方式,即
      • 性能x/性能y=执行时间y/执行时间x=n
    • 1.6.2 性能的度量
      • CPU执行时间:简称CPU时间,执行某一任务在CPU上花的时间。
      • 用户CPU时间:在程序本身所花费的时间
      • 系统CPU时间:为执行程序而花费在操作系统上的时间
      • 为了一致性,我们使用术语系统性能(system performance)表示空载系统的响应时间,
      • 并用术语CPU性能表示用户CPU时间
      • 几乎所有的计算机都用时钟来驱动硬件中发生的各种事情。
      • 时种间隔的时间称为时钟周期,它的倒数为时钟频率
    • 1.6.3 CPU性能及其因素
      • 一个程序的CPU执行时间=一个程序的CPU时钟周期数 X 时钟周期时间
      • 一个程序的CPU执行时间=一个程序的CPU时钟周期数 / 时钟频率
    • 1.6.4 指令的性能
      • CPU时钟周期数=程序的指令数 X 每条指令的平均时钟周期数
      • CPI:每条指令所需的时钟周期数的平均值
    • 1.6.5 经典的CPU公式
      • CPU时间=指令数 X CPI X 时钟周期时间
      • 或 CPU时间=指令数 X CPI / 时钟频率
  • 1.7 功耗墙
    • 占统治地位的集成电路技术是CMOS(互补型金属氧化半导体),其主要的能耗来源是动态能耗,即在晶体管开关过程中产生的能耗。
    • 动态能耗取决于每个晶体管的负载电容和工作电压:
      • 能耗 正相关于 负载电容*电压^2
    • 一个晶体管消耗的能量为 
      • 能耗 正相关于 1/2 * 负载电容 * 电压^2
    • 每个晶体管需要的功耗是一个翻转需要的能耗和开关频率的乘积:
      • 功耗 正相关于 1/2 * 负载电容 * 电压^2 * 开关频率
    • 开关频率是时钟频率的函数,负载电容是连接到输出上的晶体管数量(称为扇出)和工艺的函数,该函数决定了导线和晶体管的电容。
  • 1.8 单核到多核
  • 1.9 Intel Core i7
    • 1.9.1 SPEC CPU基准测试程序
      • 所运行的一组程序集构成了工作负载
      • 大多数用户评价计算机系统的测量方法是使用一组专门用于测量性能的基准测试程序(用于比较计算机性能的程序)
    • 1.9.2 SPEC功耗基准测试程序
      • SPEC采用单个的数字来进行归纳,称为overall ssj_ops per watt
      • overall ssj_ops per watt = (∑ssj_ops _i)/(Σpower_i) i从整数0到10
  • 1.10 谬误与陷阱
    • 陷阱:
      • 在改进计算机的某个方面时期望其总性能的提高于改进大小成正比
    • Amdahl定律:
      • 改进后的执行时间=受改进影响的执行时间/改进量+不受影响的执行时间
    • 谬误:
      • 利用率低的计算机功耗低

发表评论

邮箱地址不会被公开。 必填项已用*标注