Computer Organization and Architecture 计算机组成和体系结构
2019-2020 学年春季学期期末考试重点
Chapter 1(教材第一章):Introduction
1.3 The Common Measures
Kilo (千)- (K) = 1 thousand = 10^3 and 2^10
Mega (兆)- (M) = 1 million = 10^6 and 2^20
Giga (鲒)- (G) = 1 billion = 10^9 and 2^30
Tera (汰)- (T) = 1 trillion = 10^12 and 2^40
Peta (帕)- § = 1 quadrillion = 10^15 and 2^50
Exa (艾)- (E) = 1 quintillion = 10^18 and 2^60
Zetta (泽)- (Z) = 1 sextillion = 10^21 and 2^70
Milli (毫)- (m) = 1 thousandth = 10^-3
Micro (微)- () = 1 millionth = 10^-6
Nano (纳)- (n) = 1 billionth = 10^-9
Pico (皮)- § = 1 trillionth = 10-12
Femto (飞)- (f) = 1 quadrillionth = 10^-15
Atto (唉)- (a) = 1 quintillionth = 10^-18
Zepto (沢)- (z) = 1 sextillionth = 10^-21
Yocto (妖)- (y) = 1 septillionth = 10^-24
硬盘访问时间 ms
主存读取时间 ns
电路芯片 mm
处理器运行速度 MHz/GHz
RAM的大小 GB
磁盘存储 GB/TB
0
RAM是随机访问存储器:访问任意位置
串行:经过一条或者两条数据线以脉冲方式发送数据
并行:沿至少八条数据线作为单个脉冲发送数据。
USB:通用串行总线,可以自我配置的只能串行接口,支持即插即用。
1.5 Historical Development (Moore’s Law, Rock’s Law)
摩尔定律:集成电路中晶体管的密度每年将增加一倍。
洛克定律:建造半导体的设备成本将每四年翻一番。
为了保持摩尔定律,洛克定律必须倒下,反之亦然。 但是没有人能说会先给出。
1.6 The Computer Level Hierarchy
- Level 6: The User Level (用户层)
- 程序在用户层执行
- 最熟悉
- Level 5: High-Level Language Level (高级语言层)
- 写程序的语言C等
- Level 4: Assembly Language Level (汇编语言层)
- 5层的程序编译得到
- 汇编语言编写得到
- Level 3: System Software Level (系统软件层)
- 控制系统上的执行进程。
- 保护系统资源。
- 汇编语言指令通常不经过修改就通过3级。
- Level 2: Machine Level (机器层)
- 也称为指令集体系结构(ISA)级别。
- 包含特定于机器体系结构的指令。
- 用机器语言编写的程序不需要编译器,解释器或汇编程序
- Level 1: Control Level (控制层)
- 控制单元解码并执行指令并在系统中移动数据。
- 控制单元可以是微程序(microprogram’s)或硬连线(hardwired)(hard接线)。硬接线控制单元具有更好的性能,而微程序控制单元则更适应变化
- microprogram是用低级语言编写的程序 ,放在ROM中
- 硬连线由直接执行机器指令的硬件组成
- Level 0: Digital Logic Level (数字逻辑层)
- 由数字电路组成。
- 数字电路由门和导线组成。
- 这些组件实现所有其他层次的数学逻辑
1.8 The Von Neumann Model
3种硬件
- CPU
- 主存
- IO
冯诺依曼瓶颈:CPU与主存之间的一条数据链路。
CPU=PC程序计数器+寄存器+ALU算数逻辑单元+control unit 控制单元
PC存储下一条指令的地址
Chapter 2(教材第二、三章):Data Representation in Computer Systems & Boolean Algebra and Digital Logic
2.2 Positional Numbering Systems
字:连续的字节。16,32,64位
半字节:4个bit
2.3 Converting Between Bases
进制转换:重复除法,除留余数
2.4 Signed Integer Representation
原码
反码
补码
整数原码=补码。负数补码=原码取反加一
溢出
2.5 Floating-Point Representation
✓ Floating-Point Arithmetic
浮点数:符号1 bit+整数 5 bit+小数6 bit
2.7 Error Detection and Correction
✓ Cyclic Redundancy Check
CRC校验
3.2 Boolean Algebra
布尔代数
3.3 Logic Gates
逻辑门
Chapter 3(教材第四章):MARIE: An Introduction to a Simple Computer
4.2 CPU Basics and Organization
CPU:取指令;解译指令、执行指令。由数据通道与控制单元组成。
数据通道:ALU、寄存器等等,数据总线连接。
数据通道里面的部件是通过控制单元发送响应信号进行执行。
寄存器很容易,随时地被CPU访问。(能够由D触发器实现。D触发器就是一个1位寄存器。)
ALU:执行算数或者逻辑运算,控制单元控制。
控制单元执行的操作是程序计数器(PC)和状态寄存器(SR)完成
4.3 The Bus
✓ Bus Arbitration
- 数据总线:
- CPU通过地址总线共享数据
- 一根线同时传送1 bit
- 点到点(CPU 到 ALU)-多点总线(由于多点总线是一种共享资源,因此对它的访问是通过内置于硬件中的协议来控制的)
- 地址总线:地址线确定数据源或目标的位置。
- 控制总线:当数据线将位从一个设备传送到另一设备时,控制线确定数据流的方向,以及每个设备何时可以访问总线。
总线仲裁方式
- Daisy chain (菊链、串级联):根据优先级决定访问顺序
- Centralized parallel (集中平行):每个设备都直接连接到仲裁电路
- Distributed using self-detection (自选择分配式):设备决定哪个获取总线
- Distributed using collision-detection (冲突检测分配式):任何设备都可以尝试使用总线。 如果其数据与另一台设备的数据冲突,它将再次尝试。
4.4 Clocks
✓ CPU Time
一台计算机至少包含一个用于同步其组件活动的时钟。
执行每个数据移动或计算操作需要固定数量的时钟周期。
以MHz为单位的时钟频率或GHz,确定执行所有操作的速度.
时钟周期是时钟频率的倒数
提高CPU的吞吐量:
- 减少程序中的指令数
- 减少每条指令的周期数
- 减少每个时钟周期的纳秒数
4.6 Memory Organization and Addressing(大题)
计算机内存由类似于寄存器的可寻址存储单元的线性阵列组成。
- 内存可以是字节可寻址的或字可寻址的,其中一个字通常由两个或多个字节组成。
- 内存由RAM芯片构成,通常长度*宽度衡量
- 如果机器的存储字大小为16位,则4M×16 RAM芯片将为我们提供4 MB的16位存储位置
当将内存组织到芯片组中并且地址在芯片间交错时,访问效率更高。
低序交织low-order interleaving,地址的低序位指定哪个内存组包含目标地址。
高阶交织中high-order interleaving,高阶地址位指定存储体(模块)
4.7 Interrupts
✓ The Cause of the Interruption
中断的触发条件
- 高优先级事件出现
- I / O请求
- 算术错误(例如零除)
- 遇到无效指令
4.8 MARIE
✓ Characteristics, Architecture, 7 Registers, and ISA
目标:为初学者介绍计算机系统组成
特点:
- 二进制:二进制补码数据表示。
- 存储的程序,固定的字长数据和指令。
- 可寻址字的主存储器的4K字。
- 16位数据字。
- 16位指令,其中4个用于操作码(4位操作) 编码)和12作为地址。
- 一个16位算术逻辑单元(ALU)
- 七个用于控制和数据移动的寄存器
a) 累加器AC:16 bit。存储CPU正在使用的数据。
b) 存储器地址寄存器MAR:12 bit。保存指令或者操作数的地址。
c) 存储器缓冲寄存器MBR:16 bit。存储即将放入内存/刚从内存中取出去的数据
d) 程序计数器PC:12 bit。存储下一条将要执行的指令的地址
e) 指令寄存器IR:16 bit。存储正在执行的指令的地址。
f) 输入寄存器InREG:8 bit。存储从输入设备读取到的数据。
g) 输出寄存器OutREG:8 bit。存储将送往输出设备的数据。
寄存器经过总线连接。每个总线上的设备有一个独一无二的编号。AC和MBR之间单独的链接。允许数据传输不经过总线。
指令集ISA:
- 指定了其指令的格式以及计算机可执行的原始操作
- ISA是计算机硬件与其软件之间的接口。
- MARIE ISA仅包含13条指令
✓ Register Transfer Notation
寄存器传输语言RTL:指定由一条指令执行的微操作的确切顺序。
M [X]表示存储在存储位置X中的实际数据值
<-表示将字节传输到寄存器或存储器位置
4.9 Instruction Processing
✓ The Fetch–Decode–Execute Cycle
fetch-decode-execute(取指-解码-执行)周期是计算机在运行程序时执行的一系列步骤。
- 从内存取指令,放入IR
- IR解码,决定下一步操作
- 如果指令涉及内存值(操作数),则将其找到并放入MBR中。
- 指令执行
4.10 A Simple Program(大题)
✓ Trace the Program
4.11 Assembler
汇编程序Assemblers:将人类可以理解的指令翻译成计算机可以理解的机器语言
4.12 Extending MARIE Instruction Set
✓ Trace the Program
Chapter 3(教材第五章):A Closer Look at Instruction Set Architectures 指令集架构
5.2 Instruction Formats
指令集特征上的差异:
- 指令长度
- 基于堆栈还是寄存器的
- 每一条指令的显式操作数个数
- 操作数地址
- 操作类型
- 操作数类型与指令集大小
指令集衡量因素:
- 程序执行的时候占用内存空间的大小
- 指令系统的复杂程度
- 指令的长度
- 指令系统中指令的总数目
5.3 Instruction Types
5.4 Addressing
5.5 Instruction Pipelining
✓ Factors involved in the Instruction Set Architecture (ISA) design
指令集设计的时候的考量因素:
- 指令长度
- 操作数数目
- 可寻址寄存器的数目
- 内存组织:字节/字寻址
- 寻址方式:直接,间接,索引
✓ Byte ordering
大端:低位高地址 - 更加自然
- 符号位在最高位
- 不允许在前面的位置读写。
- Adobe PS,JPEG,Microsoft WAV
小端:低位低地址
- 在最低位符号位。
- GIF,Microsoft RTF,Microsoft WAV
✓Stack architecture, accumulator architecture, and general purpose register architecture
指令类型:
- 堆栈体系结构:
- 好处:在隐式存储在堆栈。
- 坏处:不能随机访问
- 有0~1个操作数
- 累加器体系结构
- 操作数在AC寄存器中隐式存储
- 操作数中存在于内存,导致总线流量变大
- 通用寄存器体系结构GPR:很流行
- 寄存器代替了内存
- 比AC架构速度快
- 编译器的实现简单
- 导致长指令(因为所有指令都必须命名)
按照操作数的位置,GPR分为:
- Memory-memory存储器-存储器:操作数都在memory中
- Register-memory寄存器-存储器:至少一个操作数在寄存器中
- Load-store载入-存储;所有操作数都不用在memory
✓ Infix notation and postfix notation (reverse Polish notation) 反向波兰表示法(选择题)
✓ Expanding opcodes扩展操作码(大题):对空间充分利用
✓ Instruction types
指令分类
- 数据传输LOAD, PUSH
- 算术运算ADD, MULT
- 布尔逻辑AND, OR,XOR
- 位操作SHIFT, ROTATE
- I/O操作 INPUT, OUTPUT
- 控制转移(branch,jump,call,return SKIPCOND,)
- 特殊目的(string processing,flag) HALT, CLEAR
✓ Memory addressing modes
- 立即寻址
- 直接寻址
- 寄存器寻址
- 间接寻址
- 寄存器间接寻址
- 变址寻址
- 基址寻址
- 堆栈寻址
✓ Instruction-level pipelining
指令流水线:指令的并行执行。提供指令级并行(ILP)
N指令k流水线的 时间。(k+n-1)tp,tp是时钟周期
加速比
流水线可能刷新或者停止:软硬件都可以解决
- Resource conflicts (资源冲突):e.g., access to the memory
- Data dependencies (数据依赖):e.g., control the same data
- Conditional branching (条件转移语句):e.g., comprising branching or jumping instructions
Chapter 4(教材第六章):Memory 存储器
6.2 Types of Memory
存储器类型:
- 随机存储器RAM
- 动态RAM(DRAM):电容器构成,有充放电的过程。每个一段时间(几个msecond)充电防止数据丢失。由于设计简单->便宜
- 静态RAM(SRAM):类似于D触发器的变种构成。速度很快,不用充电。用来cache/高速缓存。
- 只读存储器ROM:不用充电,类似于D触发器构造。需要一点点电保持memory。ROM用来存储永久性或者半永久性数据,保证断电之后数据也存在,比如BIOS菜单。
6.3 The Memory Hierarchy
存储器的层次架构:
- 目的:根据不同的需求在可控成本下达到最优效率
- 越快的,越贵,离CPU越近(磁盘磁带一般最远),容量越小。
6.4 Cache Memory
✓ Types of Memory
✓ The concepts of hierarchical memory organization
✓ Principle of locality
命中后将复制整个数据块,因为局部性原理告诉我们,一旦访问了一个字节,很可能很快就会需要附近的数据元素。
局部性的三类:
- 时间局部性Temporal locality:刚刚访问的数据及其邻近数据可能被再次访问
- 空间局部性Spatial locality:在存储空间相邻的数据会被访问
- 顺序局部性Sequential locality:指令被顺序执行
Cache的目的:通过存储最近使用或将很快使用的数据来加快访问速度。按照内容寻址的寄存器
✓ Cache mapping schemes(大题)
-
Direct Mapped Cache (直接映射的缓存):便宜。每个块有具体的位置。块可以在cache的任意位置
-
Fully Associative Cache (全相联映射的缓存)
-
Set Associative Cache (组相联映射的缓存)
✓ Replacement policy
最优置换策略optimal replacement policy:未来最长时间不被使用的。时间局部性
最近最少使用算法least recently used (LRU) algorithm:缺点CPU必须维护每个块的访问历史记录
先进先出First-in, first-out (FIFO)。缺点:最早进来的可能多次使用,也会被剔除。
随机选择random replacement policy:没有抖动,但是可能会将未来使用的数据丢失
✓ Effective Access Time (EAT)
Effective Access Time (EAT) (有效存取时间):衡量计算机或者CPU对数据存取的时候消耗的时间。
H是缓存命中率。Access_c是缓存访问时间;Access_MM是主存访问时间。
✓ Cache Write Policies
脏块:缓存中被更新的数据。
直写write through:cache变化,主存立马变化。拖慢CPU速度,拖慢的速度可以被忽略,对数据的访问以读操作为主,写操作相对少得多。
回写write back:要丢弃或者置换的时候才对主存更新。
优点:对主存的访问最小化;
缺点:主存的数据与cache数据不同,多个用户同时使用的时候,可能出错。系统崩溃会让信息丢失。
Chapter 5(教材第七章):I/O Subsystem 输入输出子系统
7.2 Amdahl’s Law
S加速比;f部件工作时间的百分比;k单个组件加速的比例。
阿姆达尔定律为我们提供了一种方便的方法来估算升级系统组件时可以预期的性能改进
I / O子系统包括:
- 专门用于I / O功能的主存块。
- 总线:将数据移入和移出系统的总线(Bus)。
- 控制模块:主机和外围设备中的控制模块
- 接口:键盘和磁盘等外部组件的外部接口
- 电缆:电缆或主机系统与其外围设备之间的通信链接。
7.4 I/O Architecture
✓ Programmed I/O
✓ Interrupt-driven I/O
✓ Memory mapped I/O
- 程序控制的I/O Programmed I/O:每一个I/O设备有一个寄存器。每个寄存器会轮询检测有没有输入输出需求。
- 中断控制的I/O Interrupt-driven I/O:允许计算机做其他的事情,直到I/O被请求
- 取码译码一个周期执行完的时候会检测是否有中断信号。
- 检测一系列地址(中断向量)。
- 先存储系统状态,然后执行ISR(中断服务程序)。
- 内存映射IO Memory mapped I/O:I/O设备与主存储器共享相同的空间
- 主存里面为I/O预留有block。
- 从CPU的角度来说,内存映射I/O就是内存访问
- 数据存取与指令存取架构相同,简化系统设计
- 直接存储器存储(DMA):使用一个专门芯片处理。
- 和CPU共享总线->CPU和DMA是互斥的。
- DMA优先级更高,抢占CPU
- 通道控制的I/O:专用的I/O控制器
- 大型系统使用
- 一个或者多个I/O处理器构成,控制通路
- 一些比较慢的设备复用到一个快速同道中
- 大型机有多路复用通道
总线宽度:数据总线的条数
7.6 Hard Drive Disk
磁盘是随机/直接存储设备:因为可以根据块在磁盘上的位置访问数据块。
访问时间=寻道时间+旋转延迟
寻道时间:arm定位到track上面
旋转延迟:定位到track上的扇区sector(磁盘旋转到sector被磁头读取的时间)。算法上的时间。
平均反应时间:物理上对数据访问的衡量。对转速有关系。
平均失效时间:实验中统计生命周期的平均值
SSD“固态硬盘:
非易失性闪存
MP3,U盘
磨损均衡
规格与指标:
- 不可恢复的误码率UBER:稳定性衡量,错了多少。模仿整个生命周期工作,多少个数据量发生错误。错误/总共的=UBER
- 写入的兆字节TBW:对生命周期衡量。一直重写,多久的时候不再正常工作。
7.7 CD/DVD/Blueray
- CD-ROM只读;
- 从中间开始螺旋track,展开5英里
- 0,1存储。表面的高低凹凸。
- 2层数据校验,容错率较高。
- 逻辑存储格式比磁盘复杂。
- DVD光碟;
- 存储密度是CD的4倍
- 单个17GB
- 波长比CD短。
- 蓝紫光DVD:
- 数据中心比较多,长期存储和恢复。
- 蓝光:单层对多25GB,最多可以6层。
7.9 RAID
✓ RAID-0
- 磁盘跨区
- stipe
- 没有冗余
- 数据写在entire arry上面的block和strip上面。
- 缺点:稳定性比较低,没有检错纠错功能。
✓ RAID-1
- disk mirroring (磁盘镜像)
- strip
- 100%数据冗余,较好performance
- 两个对应的磁盘组存储相同数据
- 缺点:成本高
✓ RAID-2 - 一个set存储数据,另一个存储汉明码。
特点:- bit存储
- 汉明码校验
- 优点:
- 稳定性
- 缺点:
- 不高效
✓ RAID-3
bit存储,奇偶校验
不适合商用,适合私人系统
✓ RAID-4
strip存储,奇偶校验
需要所有块大小相同。
✓ RAID-5
strip分布式,奇偶校验。并行处理
商用系统
✓ RAID-DP
strip重叠,两个奇偶校验。容忍两个磁盘数据丢失,可以找回。
- 不高效
Chapter 6(教材第八章):System Software 系统软件
8.2 Operating System
操作系统的发展与计算机硬件的发展平行。
主存计量单位再以前KB,磁带是唯一的磁存储设备,操作系统就是简单的 常驻监控程序。只能载入,执行,终止任务。
在1960年代,硬件已经变得足够强大,可以容纳多道程序,并发执行多个任务。通过将每个进程分配给定的CPU时间来实现多道程序设计。 交互式多道程序系统称为分时共享系统。
多处理器系统:挑战:处理器的同步方式以及如何防止其活动相互干扰。
紧密耦合多处理器系统(Tightly coupled multiprocessor systems):共享一个内存和一组相同的I / O设备。
松散耦合多处理器系统(Loosely coupled multiprocessor systems):在物理上具有独立的内存。这些系统通常称为分布式系统。另一种类型的分布式系统是联网系统(networking system),它由互连的,协作的工作站组成。
实时操作系统Real time operating systems :控制响应其环境的计算机。硬实时系统具有严格的时序约束(timing Constraints),软实时系统则没有
操作系统的设计:
作为操作系统的核心,内核执行调度(进程调度),同步,内存管理,中断处理,并提供安全性和保护。
微内核系统(Microkernel system)提供最少的功能。大多数服务由外部程序执行
- 优点
- 可移植性高
- 安全性高
- 维护较好
- 缺点:
- 拖慢速度
宏/单内核系统(Monolithic systems):在单个操作系统程序中提供大多数服务
- 拖慢速度
- 速度很快
- 移植性差
混合内核(Hybrid kernel systems):微软使用的。
操作系统提供的服务
- 进程管理:OS的核心任务。操作系统创建进程,安排它们对资源的访问,删除进程以及取消分配在进程执行期间分配的资源。
- 操作系统监视每个进程的活动,以避免在进程使用共享资源时可能发生的同步问题。
- 提供进程间通信
✓ Process scheduling: FCFS, priority first, shortest job first
First-come, first-served (先到先服务):到达序列执行。
Shortest job first (最短作业优先):最短执行的任务优先执行。缺点:无法确定哪个最短。
Round robin scheduling (循环调度):每个任务分配一定量时间。超时之后:上下文切换。
Priority scheduling (优先级调度):优先级,抢占。
8.3 Protected Environment
作为资源管理者和保护者,许多操作系统提供了将进程或进程组彼此隔离的受保护环境。
建立受保护环境的3中方法:
- 虚拟机:是一种受保护的环境,向环境中运行的进程提供自身的映像或完全不同的体系结构的映像。是一个虚假的机器。底层的真实计算机在内核的控制之下。 内核接收并管理从虚拟环境中运行的进程发出的所有资源请求。
- 子系统:它们提供了逻辑上不同的环境,可以独立控制和管理。 它们可以彼此独立地停止和启动。子系统可以具有特殊目的,例如控制I / O或虚拟机。 其他子系统则对大型应用程序系统进行分区(分割),以使其更易于管理。在许多情况下,资源要对子系统可见,然后子系统中运行的进程才能对其进行访问。在超大型计算机中,子系统的作用范围不足以建立受保护的环境。
- 逻辑分区(LPAR)提供了更高的障碍:在逻辑分区中运行的进程无法访问在另一个分区中运行的进程,除非显式建立了它们之间的连接(eg. FTP)
✓ Virtual machine
✓ Subsystem
✓ Logical Partition
8.4 Programming Tools
编程工具在操作系统和硬件环境的限制内执行软件创建任务.
绑定binding:将物理地址分配给程序变量的过程
- 编译时绑定:绝对代码
- 装载时绑定:分配物理地址
- 运行时绑定:需要基址寄存器来执行地址映射
动态链接:当程序在装在或者运行的时候链接。外部模块是从动态链接库(DLL)加载的。
- 加载时动态链接:会降低程序的加载速度,但对DLL的调用会更快。
- 运行时动态链接:发生在首次调用外部模块时,导致执行速度较慢
动态链接使程序模块更小,但存在程序员可能无法控制DLL的风险。
✓ Assembler
汇编器(Assemblers)是所有编程工具中最简单的。 它们将助记符指令转换为机器代码。
大多数汇编器会在源代码上进行两次翻译。
第一遍:部分地汇编代码并构建符号表。
第二遍:通过提供存储在符号表中的值来完成指令创建。
汇编语言:第二代程序设计语言。
编译程序语言:C C++等是第三代。
逐渐像人类一样思考。
Chapter 7(教材第九章):Alternative Architectures 可选体系结构
9.2 RISC and CISC
RISC(精简指令集计算机)机器的基本原理是,当程序仅由几条长度相同且需要相同数量的时钟周期进行解码和执行的指令组成时,该系统可以更好地管理程序执行。 RISC系统仅通过显式的load and store指令访问内存。
CISC(复杂指令集计算机)系统中
- 程序由许多不同类型的指令组成
- 这些指令的长度是可变的
- 并且获取-解码-执行时间是不可预测的。
- 许多指令都可以访问存储器
精简指令集系统可以降低每个指令的时钟周期数量完成CPU time降低。
复杂指令集降低一个程序里面指令的数量。
精简指令集花费时间相比复杂指令集较短。
本质上这两种区别变模糊了。现在精简指令集中的指令可能会比复杂指令集还要复杂。
RISC
- 多个寄存器组
- 每条指令三个操作数
- 通过寄存器窗口传递参数
- 单周期指令
- 硬件控制
- 高度流水线
- 简单的指令,数量很少
- 固定长度的指令
- 编译器复杂
- 仅LOAD / STORE指令访问存储器
- 很少的寻址模式
CISC: - 单寄存器组
- 每条指令一个或两个寄存器操作数
- 通过内存传递的参数
- 多周期指令
- 微编程
- 流水线较少
- 许多复杂的指令
- 可变长度的指令
- 微代码的复杂性
- 许多指令可以访问存储器
- 许多寻址模式
✓ Register window
9.3 Flynn’s taxonomy
- SISD单指令单数据流:经典单处理器系统
- SIMD单指令多数据流:多个数据流上只能执行相同指令。
- MIMD多指令多数据流:现在并行计算的方式
- SMP对称多处理:处理器数量比较少+共同使用主存+存储器上通信
- MPP大量信息并行处理:多个处理器+分布式存储+网络通信
- 分布式处理:
- NOW工作站网络:使用闲置的系统来解决问题
- COW工作站集合:一个工作站协调
- DCPC专用群集式并行计算机:做成一组工作站,没单独工作站协调工作。
- PC机群:群集式,并行计算。异构计算机。
- MISD多指令单数据流:很少使用
- SPMD单程序多数据流:每个处理器单独分配数据集和程序存储。每个node可以对指令分段执行。超级计算机。
富林分类法缺点:
- 不需要MISD机器
- 并行执行不是同构
- 没有区分MIMD类别的体系结构。根据是否共享内存:基于总线连接;基于交换开关链接。
✓ SISD
✓ SIMD
✓ MISD
✓ MIMD
9.4 Parallel Processors
并行处理好处
- 提升通量:同时处理多个任务,多路数据流处理
- 保持较高容错率:并行计算执行的时候如果出现错误不影响整个流程
不足:必须有些任务顺序执行。没有办法100%发挥性能。处理器性能提高n倍,最后通量提升小于n倍。
缓存一致性问题:当更改主内存数据而未改变缓存时
snoopy cache controllers (窥视高速缓存控制器):监视系统的高速缓存。
写策略:
- 写直通:cache和memory的数据同步更新
- 写直通更新协议:消息进行更新就要进行广播,对数据更新.
- 写直通无效协议:消息改变就广播不要用这个数据.
- 回写协议:cache被丢弃才回写到主存中.
分布式系统由非常松耦合的处理单元组成
云服务使用者甚至对硬件位置都不了解
✓ Superscalar
流水线:能够将取码译码分为多个周期进行执行。
理论上每过一个时钟周期,有一个指令就会被执行完。
超流水线:不到一个时钟周期就能完成。单独配备一个系统时钟,频率高于原来的。是超标量的一个实现。
超标量:
- 包含多个执行单元:专用加法乘法器
- 取指单元:同时从主存取出多个指令
- 译码单元:哪些指令可以并行执行。协调作用。
✓ Vector machine
矢量计算机:也叫作超级计算机。同时在一个完整向量和矩阵上操作。能够支持超高流水线技术。根据操作数分类: - RRVP寄存器式Register-register vector processors:所有的操作数都在寄存器中
- MMVP主存式Memory-memory vector processors:数据都在主存中,直接进入AU算数逻辑单元
紧密耦合多处理器/共享存储器的多处理器:使用同一个主存。不一定共享物理内存。每个处理器可以有自己主存,但是要与其他处理器共享。
Chapter 8(教材第十章):Embedded System 嵌入式系统
10.2 Hardware for Embedded Systems
嵌入式系统:
- Off-the-shelf (现成的)
- Configurable (可配置的)
- Fully-Customized (完全定制的)
资源受限
开发者要完全了解硬件功能
✓ Standard processor
微控制器:旧的电脑技术中衍生。几千种。属于现成的(Off-the-shelf)。
微处理器
✓ Watchdog
通过定期检查系统活动性来防止系统挂起(挂起)和无限循环
看门狗定时器并非在所有微控制器中都使用
✓ Reconfigurable hardware
半定制:只要没有合适的现成SOCs(片上系统),就可以制造(半定制)片上系统。
芯片掩膜:使用预先设计的模块创建,以及有知识产权电路创建。
半定制方法的成本很高。 为了节省金钱,首选现成的SOC,即使其功能不完全适合该应用程序。
SOCS:处理器不用共享时钟周期
需要单独的芯片来提供相同的服务。
附加芯片很昂贵,并且消耗功率和空间。
✓ Programmable array logic
PAL, 可编程阵列逻辑:芯片由连接到一组可编程与门与固定或门
✓ Programmable logic array
PLA, 可编程序逻辑阵列:芯片由通过可编程或门连接的可编程与门组成
✓ Field Programmable Gate Array
FPGAs, 现场可编程门阵列,由存储单元和多路复用器(MUX)组成。逻辑门链接:交换设备和复用器,岛屿式分布
10.3 Software for Embedded Systems
软件开发受到难题,受限制的硬件条件:
- 内存限制
- 虚拟内存不适用
存储器共享同样的地址空间。内存泄露问题。
嵌入式系统有区分性的是响应能力。
时序要求
硬实时系统(Hard Real-Time Systems)具有严格的时序约束。
软实时系统(Soft Real-Time Systems),时序很重要,但并不关键
中断延迟时间:是指从发生中断到执行中断服务程序(ISR)的第一条指令之间经过的时间。延迟越短,响应越快。中断嵌套只可能在高质量的系统中。
7. 内存占用:软件本身对于内存使用的情况。最关注的
1. 操作系统占用很多内存,额外的存储空间
2. 存储消耗资源
3. 操作系统越小越好
事务处理是最核心的因素。
大型软件项目通常划分为大块(组块)
事件处理是嵌入式程序员的主要挑战,是嵌入式系统的核心功能。事件异步执行,测试要周全。
硬件定义语言Verilog,VHDL指定了全定制芯片的功能和布局。
硬件代码编码减少了错误并更快地将产品推向市场。
嵌入式操作系统在时序和内存占用方面与通用操作系统有所不同。
嵌入式系统开发需要准确规格和严格开发实践。
Chapter 9(教材第十二章):Network Organization and Architecture 网络组织和体系结构
9.4 Network Protocols I ISO/OSI Reference Model
✓ Seven protocol layers of the OSI RM
7层
- 物理层:将数据链路层的数据编解码。叫做数据帧,物理协议数据单元。
- 链路层:对帧的大小进行限制。数据传输的速率。
- 网络层:将发送端A传输层的数据单元加上寻址单元,发送到B端。网络层建立路由,并确保PDU大小与源和目标之间的所有设备兼容。
- 传输层:端到端的数据传输,错误检查。握手协议。传输层是OSI模型的最低层,在该层上任何人都可以了解网络或其协议。
- 会话层:仲裁会话,关闭会话。半双工,全双工。
- 表示层:提供高水平数据解释。在使用加密和其他数据表示的时候,会调用。
- 应用层:实现目标和任务。
9.5 Network Protocols II TCP/IP Network Architecture
✓ Basic concepts of the three-layer TCP/IP protocol stack
- IP层:负责数据包的传送寻址。
- 控制数据包达到目的地。
- 和网络层/数据链路层功能相同。
- 将TCP包分为数据报,附上路由信息。数据报可以不经人工参与经过路由。
- 现在使用的是IPV4,限制了32位地址,数据报长度限制为65635字节,并且安全措施是可选的。
- 网络地址没有规划,造成路由的速度慢和麻烦。
- ABCDE类
- TCP:传输控制协议。
- 是一个IP服务的消费者。
- 在两个TCP进程间建立链接。
- TCP的服务访问点叫做端口。
- 端口号,主机IP,协议指定名成为了套接字。service access point (SAP)
- 0-1023专用端口.well known
- IPV6
- 本质:对IPV4进行扩展:从32位扩展到128位。取之不尽。
- 设计了GUAF全球地址格式