什么是计算机体系结构
计算机中有两种“架构” : 指令架构(Instruction Set Architecture/ISA)或架构 微架构(Micro Architecture)
○ 指令架构 : 程序员视角下的计算机硬件界面,主要由 机器指令集定义。它详细规定了处理器应当支持哪些 指令、各指令执行的操作等“处理机行为” 。
○ 微架构 : 用寄存器、内存、运算器等功能部件组织实 现的某种指令架构微处理器的具体的硬件结构
计算机系统多级层次结构
计算机组成:研究硬件系统各组成部分的内部构造和相互联系,以实现机器指令级的各种功能和特性。计算机组成时系统结构得逻辑实现也被称为微架构
计算机实现:研究各部件的物理结构、机器的制造技术和工艺等,着眼于器件技术和微组装技术。
计算机组成(微架构)是计算机系统结构(指令架构)的逻辑实现,计算机实现是计算机组成的物理实现,三者各自包含不同的内容,但又有着紧密的联系。
示例:确定存储器容量——计算机系统结构
采用单体存储器还是多体存储器——计算机组成
使用哪种型号的存储器芯片——计算机实现
常见的性能评测指标:
– CPI: 指令平均时钟周期数。
– 程序的执行时间: 指令数×CPI×时钟周期长。
– MIPS: 每秒百万指令数。
– MFLOPS: 每秒百万浮点运算数。
计算机系统得定量设计原理
-
哈夫曼压缩原理
尽可能加速处理高概率事件远比加速处理概率很低的事件对性能提高要显著。 -
Amdahl原理
-
程序的局部性原理
程序的可移植性(软件兼容性):同一软件可不经修改或只须少量修改即可由一台机器移植到另一台机器上运行,即同一软件可应用于不同环境。
三种解决方法:系列机,模拟与仿真,统一的高级语言
系列机:同一个厂家生产的具有相同系统结构,不同的组成和实现技术的一系列不同型号的机器。
模拟与仿真
由于高级语言是面向题目和算法的,与机器的具体结构关系不大,如果能统一出一种可满足各种应用需要的通用高级语言,那么用这种高级语言编写的应用软件就可以移植于不同机器。(未发展)
不同的用途要求语言的语法、语义结构不同。
人们对语言的基本结构看法不一。
即使同一种高级语言在不同厂家的机器上也不能完全通用。
人们不愿抛弃惯用的语言
采用统一高级语言最好,是努力的目标
系列机是暂时性方法,也是目前最好的方法
仿真的速度低,芯片设计的负担重,目前用于同一系列机内的兼容1/10~1/2的芯片面积用于仿真
并行性定义:同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不同的工作。
包含两重含义:
并发性:两个或多个事件在同一个时间间隔内发生
同时性:两个或多个事件在同一个时刻发生
• 单指令流、单数据流(SISD-Single Instruction Single Data)结构
• 单指令流、多数据流(SIMD-Single Instruction Multiple Data)结构
• 多指令流、单数据流(MISD)结构
• 多指令流、多数据流(MIMD)结构