ENGG1310 P2.1 Intro to CE Computer Systems, Programming & Networking
课程内容笔记,自用,不涉及任何 assignment,exam 答案
Notes for self-use, do not include any assignments or exams
H/W & S/W
H/W : 即 Hardware (硬件),指计算机的有形部件
S/W : 即 Software (软件),指计算机程序
Abstraction
- 抽象 (Abstraction) 是指通过 接口 (Well-defined interface) 将实现细节 (low-level details) 进行 封装 (encapsulated)
- 只需通过接口就能使用模块,无需了解实现细节
Decomposition of Computer System
- 自顶向下 (top-down approach):将系统 Decompose 成若干个子系统 (sub-system)
- 自底向上 (bottom-up approach): 用若干个子系统 Compose 复杂系统
- 子系统组织成一个 hierarchy
Abstraction of Computer System
- 每个子系统可被一个 block 表示:因此系统之间的关系形成了一个 block diagram
- 子系统之间的边界较模糊 (arbitrary)
- 子系统与外界交互有一个清晰并且 well-defined 的接口 (interface)
Computer/Electronic System
- 所有的电脑系统最终都会与外界互动 (interacting with the physical worlds)
- System Component —— 输入 input:外界的物理性质 (physical quantities)转化为易于处理的电信号 (electrical signals),例如电压,电流...
- System Component —— 输出 output:将电信号或内部性质 (internal quantity) 转化为物理性质
- System Component —— 处理 process:执行特定的功能
Computer organization 计算机组成
-
Input devices
从外界获取数据/信息并传入计算机进行处理
Interact with human:键鼠,触摸屏...
Interact with other computers:硬盘 (hard disk),无线路由器 (wireless network router)... -
Output devices
将信息传向 (proceed)外界
Interact with human:屏幕 (monitor),打印机,扬声器...
Interact with other computer:硬盘,无线路由器... -
Central Processing Unit (CPU) 中央处理器
Control the operations of all parts of the computer system
包括 arithmetic operations, decision making
实体 CPU 包含一部分 memory system 与 I/O
-
CPU - Arithmetic and Logic Unit (ALU) 算术逻辑单元
CPU 中的 ALU 负责执行实际的算术运算
例如:四则运算 (\(+,-,\times, \div\)),位运算 (\(\&, \|, <<, >>\)),比较运算 (\(<, >, \neq, \leq, \geq\)) -
Memory
储存 指令 (instruction) 与 数据 (data) (注意,在同一 memory storage 同时储存指令与数据是 Von Neumann Architecture 的特性!)
指令 (instruction):- 指导 CPU 的工作
- 指令由用户的软件程序经过 编译 (compilation) 后产生
数据 (data)
- User input
- Temporary Data
- Computed output
Memory Storage Capability:
任何 Memory Device 都有对应的 Memory Storage Capability,表示其能存储的字节数 (Bytes, \(1\ Byte=8 \ bits\))
-
Memory —— Main Memory 主存
主存包括 RAM (Random Access Memory) 与 ROM (Read-Only Memory),其中的数据一般可直接访问
其中,RAM 存储 user programs,其可与 CPU 直接交换数据,且是 volatile 的 (断电后存储的信息消失)
ROM 存储几乎不会更改的数据:例如操作系统 (operating systems) -
Memory —— Cache Memory 缓存
现代处理系统常拥有多级缓存 (layers of Cache memory): Level 1(L1), Level 2(L2), Level(L3);多级缓存形成了 memory hierarchy
缓存拥有较高的性能:
缓存的作用:临时储存重复使用的数据,从而提高 fast access当CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从 RAM(Main memory)中读取数据
Stored-Program Computers
冯诺依曼 (Von Neumann) 提出 存储程序 (store programe) 设想
不同于传统的数据与程序分离,存储程序计算机将数据与程序一起进行存储;在执行计算时,遵循 memory 中存储的指令
-
Pros of Von Neumanns architecture
控制单元 (Control Unit,例如 CPU) 能以同样的方式由主存中获取数据和指令
类似的,由 memory 或 外部装置中获取的数据可以同样的方式进行处理 -
Cons of Von Neumann
The memory unit is the performance bottleneck of the stored-program architecture since both data and instruction are stored in the same place
CPU 与存储器之间的流量与存储器的容量相比起来相当小,这是限制冯诺伊曼结构效率的重要瓶颈 (performance bottleneck)
The CPU is idle for a certain amount of time while memory is being accessed
同样,CPU 与存储器之间的流量 (或 CPU 的读写效率) 与 CPU 的数据处理性能相比起来相当小,因此 CPU 将会在资料输入或输出存储器时闲置 (idle)
3 Classes of Computers
三种电脑类型:
Desktop Computer (桌上电脑),Server(服务器),Embedded System(嵌入式系统)
-
Desktop Computer
我们最常见的电脑类型
PC,笔记本电脑,智能手机均属该类型 -
Embedded System
嵌入式系统指:某个 Computer system 是组成更大系统的一小部分,那么这个 Computer system 被称为嵌入式系统
一般来说,其为整个系统执行简单或专门 (simple or dedicated)的功能;所以,其处理能力,存储能力均受限
例:汽车上的测速系统 (测速系统为嵌入到整个汽车系统中的一个电脑系统)
现代嵌入式系统的功能更加多样,且拥有更多的资源 -
Server
性能较强,现代服务器通常是高度并行的多处理器 (指有多个 CPU) 系统 (highly parallel multiprocessor systems)
经常只能通过 network 进行访问
Responsible for the most demanding computing needs —— 例如,搜索引擎处理搜索请求等 -
Warehouse scale computer 仓库级计算机
超大规模的计算机,由许多服务器并行组成 (exploit service level parallelism)
WSC 通常作为数据中心 (data centre),以及处理云服务 (cloud-based service) -
Challenge for computer performance: Power Consumption
虽然 higher performance increases power consumption
但是 higher power consumption 通常与 high heat, high cost, Low Reliabiliy 相关
提高计算机算力的重要问题:如何在提升算力的同时,尽量减少能耗
Latest development in computer systems
-
Multicore CPU: parallel processing
与 Multicore CPU 对应的是 sequential CPU
多核 CPU 中有多个 控制单元 (control unit),在同一时刻内可以进行多次运算
对于 sequential processing,同一时间单元内只能执行一次运算,效率很低且需要频繁在 CPU-memory 中交换数据
而 parallel processing 能够在同一时间单元内执行多次运算,代价是需要更多的空间 -
GPU 图像处理器
一个多核 CPU 一般有 2-8 个核 (处理单元),用于读取指令 (read instruction) 或执行特定的命令
CPU 的运行是存储程序 顺序执行 (sequential serial processing) 的,即,它是一步步处理数据的
而 GPU 拥有上千个更小且效率更高的核,它是专门用于并行处理多任务 (handling multitask simultaneously)的结构
GPU 最初的作用在于图像处理,现在我们常说的显卡,其核心就是 GPU
可以看出,CPU 的构造更精细,功能模块多,适合处理复杂的运算环境
而 GPU 的控制系统相对简单,以此为代价换来的是大增的计算速度 -
Edge Computing (EC) 边缘计算
边缘计算是一个来源于云计算 (cloud-based computation) 的概念:其靠近设备侧 (close to user),具备快速反应能力
-
System S/W 系统软件
- 操作系统 Operating System
- 编译器/解释器 Compiler/Interpreter
将高级编程语言 (high-level programming language) 翻译成低级机器语言 (low-level machine language)
Compiler 会将整个程序以 batch mode 的形式翻译,而 Interpreter 则是对程序进行逐行翻译
-
Python Programming
Python 是一种高级解释型语言
首先,interpreter 会将 python 程序逐行进行翻译,得到低级的机器指令 (machine language instruction)
接下来,CPU 将会执行 fetch-decode-execute cycle
-
Computer networking 电脑网络
一个电脑网络通常包括两个及以上的互相连接的电脑系统 (connected computer system),互相连接指的是,数据与资源可在这些电脑系统中共享
在网络中的每个设备拥有独特的网络地址 (network address) (例:192.168.0.100)
局域网 (Local Area Network, LAN) 仅覆盖一定区域内的电脑,例如家庭或者校园 WiFi
广域网 (Wide Area Network, WAN) 允许电脑在相当远的距离上进行连接。互联网 (Internet) 就是一种广域网
而我们平时所熟知的 WLAN 是指 无线局域网 (Wireless Local Area Network, WLAN),其用来传递数据的媒介是电磁波
Summary
记得看 Example Question
其中 RGB 模式中一个像素占 \(24=3\times 8\) 比特,用 \(3\) 个 \(8\) 位的 \(01\) 串代表 R,G,B 的强度 (\(2^8=256\))