基本概念
- IA32、x86-64是机器码的标准
- x86-64是IA32的扩展
编译系统
preprocessor, compiler, assembler, linker
典型系统的硬件组织
总线,在各组件中传递固定大小的字节块(words)
Cache
cache-memory:由于处理器访问处理器内部存储空间(如寄存器)比访问内存要快得多,所以处理器增加暂存区域存储计算机近期可能需要访问的数据。
L1 cache 包括几万字节,访问速度与访问寄存器速度相差无几
L2 cache 包含十万到百万字节,通过特殊的总线与处理器相连,比L1慢5倍,但仍然比访问内存要快5到10倍
L1 L2使用SRAM(static random access memory)
一些计算机系统也有L3 cache
存储体系
操作系统
操作系统的目的
(1) 保护硬件,避免软件不安全的直接操作硬件
(2) 将硬件资源抽象,提供统一接口服务给上层应用
操作系统通过进程、线程、虚拟内存、文件系统等设施管理硬件
context switching:上下文切换,指单CPU运行多个程序时,程序切换过程。多核CPU可以在每个核同时运行程序
内存映像
virtual address space:每个进程有同样的内存视图,进程视自己独占所有的资源
程序代码和数据:所有的程序代码有同样的固定起始地址
堆:heap,程序运行期间动态分配的空间
共享库:动态链接
栈:stack,编译器用来实现函数调用而动态使用的空间
内核虚拟镜像:应用程序不可以访问修改
不同系统通信
通过网络可以屏蔽不同系统的实现差异
并发实现
并发:concurrency,表示一个系统具有同时存在多个活动的能力的通用概念
并行:parallelism,使用并发使得系统运行更快
1,线程级并发
即多进程,多线程,包括软件和硬件级别的实现
multiprocessor system:多处理器系统,单系统内核控制多个处理器
multi-core:单处理器多个核心
hyperthreading:超线程,也称同时多线程( simultaneous multi-threading),单CPU执行多个控制流。CPU的一些硬件组件有多份(如PC指针、寄存器),其他部件只有一份(如浮点运算单元),超线程处理器自行决定本轮时间执行哪个线程;
举例:四核八线程,即CPU有四个核心,每个核心可以同时执行两个线程
2,指令级并行
一个时钟周期执行多条指令,采用流水线技术(pipelining),这种处理器称为超标量体系结构处理器(superscalar processors)
3,单指令,多数据结构并行
SIMD(single-insruction,mltiple-data),即一条指令可以并行执行多个操作(比如一条指令同时对4对单精度浮点数加操作),多用于加速处理图像、声音、视频数据等。
抽象概念
将计算机的操作、硬件抽象出来,则可以不用考虑不同的软硬件实现,使用统一的接口来处理。