计算机组成原理的基本知识
计算机的分类
- 个人计算机(personal computer)
用于个人使用的计算机,通常包含图形显示器,键盘和鼠标等 - 服务器(server)
用于为多用户运行大型程序的计算机,通常由多个用户并行使用,并且一般通过网络访问 - 嵌入式计算机(embedded computer)
嵌入到其他设备中的计算机,一般运行预定义的一个或者一组应用程序
软件的层次结构
- 系统软件
提供常用的服务软件,包括操作系统、编译程序、加载程序和汇编程序等。 - 操作系统
用户程序和硬件之间的接口,为用户提供各种服务和监控功能,主要的作用如下:
- 处理基本的输入和输出操作
- 分配外存和内存
- 为多个应用程序提供共享计算机资源的服务
程序概念
- 高级编程语言
如C, C++, Java, Visual Basic等可移植的语言,由一些单词和代数符号组成,可转换为汇编语言
- 汇编语言
以助记符形式表示的机器指令 - 机器语言
以二进制元形式表示的机器指令 - 程序经过编译、汇编转换成机器语言
- 汇编语言
计算机系统结构中的8个伟大思想
面向摩尔定律的设计
摩尔定律指出单芯片上的集成度每18-24个月翻一番。计算机设计者必须预测其设计完成时候的工艺水平使用抽象简化设计
使用抽象技术来表示不同的设计层次,在高层次中看不到低层次的细节,只能看到一个简化的模型加速大概率事件
加速大概率事件(common case fast)远比优化小概率事件更能够提高性能
大概率事件通常比小概率事件简单,从而易于提高。
大概率事件规则意味着设计者需要知道什么事件是经常发生的,这只有通过仔细的实验与评估才能够得出通过并行提高性能
通过并行执行操作来提高性能通过流水线提高性能
通过预测提高性能
通过猜测的方式提前开始某些操作,通常适用于从误预测恢复执行的代价不高且预测的准确率相对较高的情况存储器层次
存储器的速度通常影响性能,存储器的容量限制了解题的规模。当今计算机系统中存储器的代价占据了主要部分,存储器层次中顶层存取速度快,容量小,底层速度慢,容量大,价格低通过冗余提高可靠性
计算机不但需要速度快,而且需要工作可靠。 由于任何一个物理器件都可能失效,因此可以通过冗余部件的方式提高系统的可靠性(dependable),冗余部件可以替代失效部件并可以帮助检测错误。
计算机的五个模块
- 输入
- 输出
- 存储器
- 控制器
- 数据通路
处理器从存储器中得到指令和数据,输入部件将数据写入存储器, 输出部件从内存中读出数据,控制器向数据通路、存储器、输入和输出部件发出命令信号。
指令集
指令集是软硬件的接口
- 指令集的分类:
- 复杂指令集(complex instruction set):如windows系统所用的指令集
- 精简指令集(reduced instruction set):unix,linux,macos等
- 指令执行过程
- 从存储器取指令并计算下一条指令的地址
- 对指令进行译码
- 取操作数
- 对操作数进行运算
- 送运算结果到存储器或寄存器保存
计算机性能指标
- 衡量性能的两个指标:
- 响应时间(response time):指从开始一个任务到该任务完成的时间(单个任务)
- 吞吐量(throughput):即带宽,便是单位时间内完成的任务数量(流水)
一般的,响应时间和吞吐量之间会相互影响。
计算机系统的性能评价主要考虑CPU性能。CPU性能主要指用户CPU时间,即CPU运行用户程序的时间。
- 时钟周期和时钟频率
CPU产生同步时钟定时信号,也就是CPU的主脉冲信号,其宽度称为时钟周期。时钟周期是CPU时钟频率的倒数。 - CPI
CPI(Cycles Per Instruction)表示CPU执行一条指令所需的时钟周期数。 - 程序执行时间
用户CPU时间 = 程序总时钟周期数 / 时钟频率 = 程序总时钟周期数 x 时钟周期
程序总时钟周期数 = 程序总指令条数 x CPI
CMOS功耗
占统治地位的集成电路技术是CMOS,其主要的能耗来源是动态能耗,即在晶体管开关过程中产生的能耗。
- 能耗公式:
能耗∝负载电容×电压×电压 (频率决定负载电容的大小) - CPU主频难以往上提的原因:主频往上提,功耗太大,热量来不及散去就会把芯片烧毁
- 手机内部芯片电压低的原因:电压越低,能耗越低
计算机组织的新思想
在程序中开发并行性
开发存储器层次结构的访问局部性