计算机组成与设计 - 硬件/软件接口 - 第一章

今天开始看这本书,后续都是读书笔记。看的是ARM版。

 

第一章的标题是:计算机的抽象与技术

1.1 引言

这部分主要概括了计算机的诞生给人类的发展带来的贡献,并且在农业革命、工业革命之后,促进了人类的第三次革命--信息革命,这次革命影响深远,诞生了很多之前只存在于科学幻想中的产物,如车载计算机,手机,人类基因项目,万维网以及搜索引擎等。

1.1.1 计算机应用的分类和特点

所谓计算机应用的分类,就是按照不同的使用场景,把计算机分为几类。比如个人计算机,服务器,嵌入式计算机等。

个人计算机

  • 为单个用户提供良好性能
  • 价格低廉
  • 运行第三方软件

服务器

  • 通过网络访问
  • 执行大负载任务
  • 运行定制的软件
  • 更强的计算、存储和I/O能力
  • 更可靠
  • 价格高

嵌入式计算机

  • 应用广泛
  • 运行单一应用
  • 软硬件一同交付
  • 低成本
  • 低功耗
  • 高可靠性(简化设计来实现)

1.1.2 后PC时代

出现了和传统PC时代不同的设备,比如PMD(Personal Mobile Device)、云计算(SaSS) 等。

1.1.3 能学到啥

要开发出高性能的应用程序,就需要对计算机的组成原理有所了解。书里会介绍这些内容:

第一章:基本概念和定义,如何理解软硬件、如何评价性能和功耗,介绍集成电路技术,解释多核迁移的原因等;

第二章:编程语言、编译器和体系结构等;

第三章:编程语言、编译器和体系结构等;

第四、五、六章:处理器和存储系统,I/O系统等。

1.2 计算机体系结构中的8大思想

1.2.1 面向摩尔定律设计

计算机体系结构设计师应当预测设计完成时的工艺和技术水平,而不是设计开始时的工艺。

1.2.2 使用抽象简化设计

开发能够提高效率的技术,隐藏底层的细节,向高层呈现简化后的模型。

1.2.3 加速大概率事件

common case fast,优化大概率时间更容易提高性能,不过要能够试验和测量哪些是大概率时间。

1.2.4 通过并行提高性能

并行执行操作可以提高性能。

1.2.5 通过流水线提高性能

并行技术的一种,可以提高性能。

1.2.6 通过预测提高性能

求认准许不如求人原谅,predicition也是一个伟大的思想,如果预测的准确率较高,预测错误后恢复的代价也不大,那么可以猜测的方式提前开始工作。

1.2.7 存储器层次结构

存储器的速度影响性能,容量影响解题的规模,通过层次化架构可以达到均衡。

1.2.8 通过冗余提高可靠性

任何物理器件都会失效,因此增加冗余器件来提高可靠性。

1.3 程序表象之下

表象之下也是抽象。软件的层次结构:应用软件、系统软件、硬件。

系统软件:

  • 操作系统
    • 处理基本的输入和输出
    • 分配内存和外存
    • 提供计算机资源的共享和保护
  • 编译器
    • 把高级语言翻译为机器指令

二进制位,指令 -> 汇编语言 -> 高级语言

 

1.4 硬件包装之下

组成计算机的五个经典部件:

  • 输入设备()
  • 输出设备(显示器,触摸屏)
  • 存储器
  • 数据通路(算数逻辑运算单元)
  • 控制器

最后两个合称处理器。

1.5 存储器和存储器制造技术

1.6 性能

1.6.1 性能的定义

个人计算机:

  • 响应时间 response time(执行时间,execution time)
    • 完成一项任务所需要的总时间
    • 磁盘访问+内存访问+I/O操作+OS开销+CPU执行时间等

数据中心:

  • 吞吐率 throughput(带宽,bandwidth)
    • 单位时间内完成的工作量

本书侧重于响应时间或者执行时间的性能

性能 = 1/执行时间

如果机器X比机器Y性能好N倍,那么Y的执行时间是X的N倍。

1.6.2 性能的度量

CPU执行时间(CPU时间)

  • 用户CPU时间 -- CPU性能
  • 系统CPU时间

时钟周期数

  • 由处理器以恒定速率运行时的时钟决定

时钟周期长度

  • 每个时钟周期的时间长度

1.6.3 CPU的性能及其度量因素

 

1.7 功耗墙

1.8 单处理器和多处理器

1.9 基准测试

1.10 谬误和陷阱

你可能感兴趣的:(体系结构,体系结构)