Lecture 1: Quantitative Approach
1.计算机体系结构与计算机组成原理有什么区别?
计算机的实现包括两个方面:组成和硬件。组成一词包含了计算机设计的高阶内容,例如存储器系统,存储器互连,设计内部处理器 CPU (中央处理器——算术、逻辑、分支和数据传送功能都在内部实现)。有时也用微体系结构一词来代替“组成”。例如AMD Operon和Intel Core I7是两个指令集体系结构相同但组成不一样的处理器。这两种处理器都实现X86指令集,但它们的流水线和缓存组成有很大的不一样。硬件指的是一个计算机的具体实现,包括计算机的详尽逻辑设计和封装技术。程序员
真正的体系结构涵盖了计算机设计的全部三个方面:指令集体系结构、组成或微体系结构、硬件。计算机架构师设计的计算机必须知足功能需求,并达到价格、功耗、性能和可用性指标。web
2.现现在的芯片设计趋势或者现状是怎样的?
功率是现现在使用晶体管的主要限制,经过下降电压能够大幅度下降动态功率和能耗,二十年来,电压已经从最初的5V下降到1V如下,然而若是不能下降电压或提升每一个芯片的功率,那可能就要减缓时钟频率的增加速度,这也是从2003年以来的主要趋势。编程
3.怎样设计出低成本的集成电路?
虽然集成电路的成本以指数形式降低,但基本的硅制造工艺没有变化:仍须要对晶圆进行测试,切割成晶片进行封装。对于计算机设计人员来说,因为制造工艺决定了晶圆的成本、晶圆成品率和单位面积上的缺陷数,设计人员惟一可控的就是晶片面积。缓存
4.如何对计算机的性能进行评估?
使用量化的研究方法,从计算机的响应时间、执行时间、吞吐量来进行综合评估。服务器
主要经过基准测试来对计算机进行性能的测试与度量,包括:桌面基准测试、服务器基准测试。要注意SPEC基准测试集,是一个使用至关普遍的测试集。架构
5.如何理解程序局部性?
局部性原理指的是程序经常重复使用它们最近使用过的数据和指令。有一条普遍使用的经验规律:一个程序90%的执行时间花费在仅10%的代码中。充分利用时间局部性和空间局部性能够优化程序的执行时间。svg
处理器中指令的提取与译码器的使用可能比乘法器要繁琐的多,因此应该优先对其进行优化。性能
6.设计多核芯片的意义何在?
2005年以来,之因此转向一芯多核,并非由于取得了什么重大突破,显著简化了并行编程方式。而是由于ILP(指令级并行)壁垒和功率壁垒的存在存在而别无选择。在一个芯片中设计多个处理器并不能保证功率较低。而的确有可能设计一种消耗更高功率的多核芯片。其潜力仅仅在于可以用几个低时钟频率的高效核心代替高时钟频率的低效核心,从而有可能提升总体效率。所以多核处理器并非万能的。测试
First Microprocessor Intel 4004, 1971优化
7.Amdahl 定理有何做用?
利用Amdahl 定理能够计算出经过改进计算机某一部分而能得到的性能增益。
Lecture 2: Instruction Set Principles
指令集架构(Instruction Set Architecture, ISA)-汇编语言程序员或编译器编写者可见
ISA包括:
1.编程寄存器
2.操做数访问
2.操做数的类型和大小
4.指令集
5.寻址模式
6.指令编码
ISA 是硬件与软件之间的链接点。任何在内存里执行的程序都将经过 ISA 进行解耦从而能在底层架构上执行。
计算机体系结构和抽象层以下:
算术运算指令的执行主要分为如下几种:
Stack type:操做数隐含在栈顶指针
R-R type:操做数都在寄存器中
R-AC type:一个操做数隐含在 AC 计数器中
R-M type:须要访存操做去取操做数