ICS Review
ICS Review
ICS Review
(2-7章,连详)
章节概况
我们对计算机的探索是从学习计算机本身开始的。在2-6章,
我们主要学习程序结构和执行,我们需要方法表示基本数据类型,
然后我们考虑机器级指令如何处理这样的数据,以及编译器如何将
C程序翻译成这样的指令。接下来,我们研究几种实现处理器的方
法,帮助我们更好了解硬件资源如何被用来执行指令。一旦理解了
编译器和机器级代码,我们就能知道如何通过编写C程序以及编译
它们来最大化程序的性能。本部分以存储器子系统的设计作为结束,
这是现代计算机系统最为复杂的部分之一。
第7章我们继续对计算机的探索,学习在系统上运行程序,进
一步讨论一个构建和运行应用程序的系统软件。第七章我们学习链
接器,它把程序的各个部分联合成一个文件,处理器将这个文件加
载到内存,并且执行它。
这一部分的学习,能够帮助我们深入了解如何表示和执行应用
程序。我们在这半个学期的学习中学到了如何写出安全、可靠且充
分利用计算机资源的程序。
知识结构
• 信息的机器级表示 • 四个重要部件
• 数据的机器级表示
• 程序的机器级表示
• 编译器
• 处理器
• 计算机子系统简介
• 处理器系统 • 存储器
• 存储器系统 • 链接器
• 实操:优化算法
• 链接
Ch2.信息的表示与处理
• Class 1 位、字节和整数
• 整数表示
• 整数运算
• Class 2 浮点数
• IEEE浮点表示
• 浮点运算
• 主要学习目标——在位级上理解整数和浮点数的编码,并理解算
术运算的数学特性
Bits Bytes and Integers
• 整数表示
• 计算机用二进制储存信息,基本单元是bit,代表一位0或1,我们通常用
16进制来表示位模式
• 在计算机中,每个C数据类型有着自己固定的大小,它们的基本单位都是
byte,1byte=8bits
• 整数(int)在机器表示中占有四个byte,分为有符号整数和无符号整数,
前者最高位为符号位,表示的最大整数(Tmax)为2147483647,最小整
数(Tmin)为-2147483647-1;
• 有符号数和无符号数之间可以相互转换(显式、隐式)
• 数字的位表示可以拓展或截断。零拓展/符号拓展,补码的截断
• 整数的运算
• 加、减(转化为补码加法)、乘、除
• 位运算
• 与传统运算相比有何不同?溢出问题->运算律是否适用?
Floats !"#
• $%&'()*+,,,-,.
• IEEE浮点数表示法 • 浮点数的计算
+∞ :0 1111 1111 000 0000 0000 0000 0000 0000
-∞ :1 1111 1111 000 0000 0000 0000 0000 0000
! "
(−#) %& ①0'1-.23456789:;<=>?
• /)/&'()*0,,,-,.
NaN :x 1111 1111 xxx xxxx xxxx xxxx xxxx xxxx
!"#$%&'&(
)*+,$%&-./
!"#$%&'()*+,-./01
• 主要学习目标:了解SEQ和PIPE处理器体系结构和工作原理
Processor Architecture I: ISA & Logic Design
• Y86-64指令集体系结构 Application
• 区分于x86-64 Program
• 程序员可见状态:寄存器、条件码、Stat、内存、PC
Compiler OS
• 指令与异常(AOK/HLT/ADR/INS):
• CISC与RISC ISA
• 逻辑设计和硬件控制语言HCL
And Or Not
CPU
C Design
• 逻辑门 a B a MIN3 Min3
out a out
out b
• 组合电路和HCL表达式 b A
out = a && b out = a || b out = !a
Circuit
int Min3 = [ Design
• 存储器和时钟 A < B && A < C : A;
State = x State = y Chip
B < A && B < C : B;
Rising 1 : C; Layout
Input = y Output = x Output =y
x _ clock];
_ y
Processor Architecture II: Sequential
• 将处理组织成阶段 SEQ硬件结构
• F取指、D译码、E执行、M访存、W写回、更新PC
• 写一条指令的SEQ处理情况
• SEQ的硬件实现
Processor Architecture III: Pipelined
• 流水线原理基础
• 目标和方法
• 局限性:1.不一致的划分, 2.流水线过深,收益反而下降, 3.带反馈的流水线
系统
• Y86-64的流水线实现
• SEQàSEQ+——电路重定时
• SEQ+àPIPELINE-
• (1)相应阶段前插入流水线寄存器F、D、E、M、W(流水线化)
• (2)信号的重新排列和标号 非流水线化计算硬件
• (3)预测下一个PC 100 ps 20 ps 100 ps 20 ps 100 ps 20 ps
• PIPELINE-àPIPELINE
• 用暂停来避免数据冒险 Comb. R Comb. R Comb. R
• 用转发来避免数据冒险 Delay = 360 ps
logic e logic e logic e
Throughput = 8.33GIPS
• 特殊考虑的冒险类型 A g B g C g
• 加载/使用数据冒险
• 避免控制冒险(RET)
• 预测错误的分支 Clock
三阶段流水线
• 异常处理
Ch 4 考点 吞吐量:单位时间内完成的指令数
(单位:GIPS,每秒十亿条指令)
延迟:完成一条指令需要的时间
• 流水线处理器 (单位:ps,皮秒)
• 基本必考!
• 主要考流水线的实现原理和方法、吞吐量的计算
• 流水线的实现:将组合逻辑分成阶段,使得阶段最大经历的时间最小
(周期最小)
• 吞吐量(GIPS)=1000/最大周期(ps)(看清单位)
• 2017.4(流水线处理器)
• 2015.三(流水线处理器)
• 2016.三(流水线处理器)
• 2017.三(流水线处理器)
• 2019.二(流水线处理器)
Ch 6 存储器层次结构
• Class 11 层次存储
• 存储技术
• 局部性
• 存储器层次结构
• Class 12 高速缓存
• 高速缓存存储器的组织结构
• 高速缓存对程序性能的影响
• 学习目标:了解计算机的存储技术、速度与成本之间的关系
编写具有良好局部性的程序来显著改进程序运行时间
memory-hierarchy
• 存储技术
• 随机访问寄存器
• SRAM & DRAM
• 内存模块
• 非易失性存储器ROM
• 访问主存(I/O桥)
• 磁盘存储
• 磁盘构造:盘片->表面*2->磁道(柱面)->扇区->字节
• 磁盘容量:记录密度、磁道密度、面密度
• 磁盘操作:计算磁盘访问时间
• 连接I/O设备和访问磁盘
• 固态硬盘——基于闪存,读比写快
• 局部性
• 时间局部性
• 空间局部性
• 存储器层次结构
存储器层次结构 L0:
Regs CPU registers hold words
Smaller, retrieved from the L1 cache.
faster, L1: L1 cache
and (SRAM) L1 cache holds cache lines
costlier retrieved from the L2 cache.
L2: L2 cache
(per byte)
(SRAM)
storage L2 cache holds cache lines
devices retrieved from L3 cache
L3: L3 cache
(SRAM)
L3 cache holds cache lines
retrieved from main memory.
Larger,
slower, L4: Main memory
and (DRAM) Main memory holds
cheaper disk blocks retrieved
(per byte) from local disks.
storage L5: Local secondary storage
devices (local disks)
Local disks hold files
retrieved from disks
on remote servers
L6: Remote secondary storage
(e.g., Web servers)
Cache Memories E = 2e lines per set