计算机组成原理主讲教师:邵雄凯E-mail:shao_xk@ :564257922计算机组成原理计算机组成原理计算机组成原理 计算机组成原理课程介绍课程地位:是计算机类专业本科生的核心专业基础课程教学目的:使学生既能从全局或宏观的角度掌握计算机硬件系统的整体结构和工作原理,又能从局部或微观的角度理解计算机各个部件的工作过程和交互方式计算机组成原理计算机组成原理 计算机组成原理课程介绍与其它课程的先后关系其先导课程有:数字逻辑、汇编语言课程特点:教学内容多……计算机组成原理计算机组成原理主要参考书教材:计算机组成原理 白中英 科学出版社 (第五版) 参考教材: 1.计算机组成原理 唐朔飞 高等教育出版社 2. 计算机组成原理 秦磊华 清华大学出版社 3. 计算机组成与系统结构 袁春风 清华出版社 4. 现代计算机组成原理 潘松 科学出版社计算机组成原理计算机组成原理第1章 计算机系统概论1.1 计算机系统简介1.4 计算机的发展及应用1.3 计算机硬件的主要技术指标1.2 计算机的基本组成计算机组成原理计算机组成原理 1.1 计算机系统简介由具有各类特殊功能 的信息(程序)组成1. 计算机系统计算机系统计算机的实体, 如主机、外设等一、 计算机的软硬件概念硬件软件计算机组成原理计算机组成原理按任务需要编制成的各种程序用来管理整个计算机系统 系统软件应用软件语言处理程序操作系统服务性程序数据库管理系统网络软件软 件1.11.1计算机组成原理计算机组成原理计算机高级语 言程序目标程序结果翻译运行1.11.12. 计算机的解题过程计算机组成原理计算机组成原理翻译程序(Translator)有三类: 1.汇编程序(Assembler):汇编语言源程 序→机器语言目标程序。
2.编译程序(Complier):高级语言源程序 →汇编/机器语言目标程序 3.解释程序(Interpreter ):将高级语言 语句逐条翻译成机器指令并立即执行,不 生成目标文件计算机组成原理计算机组成原理 2. 计算机的解题过程计算机组成原理计算机组成原理… , EXTop=1,ALUSelA=1,ALUSelB=11,ALUop=add, IorD=1,Read,MemtoReg=1,RegWr=1,......temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2)1000 1100 0100 1111 0000 0000 0000 0000 1000 1100 0101 0000 0000 0000 0000 0100 1010 1100 0101 0000 0000 0000 0000 0000 1010 1100 0100 1111 0000 0000 0000 0100软 件硬 件计算机组成原理计算机组成原理用编译程序翻译 成汇编语言程序用汇编程序翻译 成机器语言程序用机器语言解释操作系统用微指令解释机器指令由硬件直接执行微指令软 件硬 件1.11.1 虚拟机器 M4(高级语言 )虚拟机器 M3(汇编语言 )虚拟机器 M2(操作系统 )实际机器 M1(机器语言 )微程序机器 M0(微指令系 统)二、计算机系统的层次结构计算机组成原理计算机组成原理程序员所见到的计算机系统的属性 概念性的结构与功能特性计算机 体系结构计算机 组成实现计算机体系结构所体现的属性有无乘法指令如何实现乘法指令(指令系统、数据类型、寻址技术、I/O机理)(具体指令的实现)1.11.1三、计算机体系结构和计算机组成计算机组成原理计算机组成原理 1.2 计算机的基本组成1. 计算机由五大部件组成3. 指令和数据用二进制表示4. 指令由操作码和地址码组成6. 以运算器为中心2. 指令和数据以同等地位存于存储器,可按地址寻访5. 存储程序一、冯·诺依曼计算机的特点5. 存储程序计算机组成原理计算机组成原理算术运算 逻辑运算存放数据 和程序将信息转换成机 器能识别的形式将结果转换成 人们熟悉的形式指挥程序 运行1.21.21.冯·诺依曼计算机硬件框图存储器输入设备运算器控制器输出设备计算机组成原理计算机组成原理1.21.21.冯·诺依曼计算机硬件框图存储器输入设备运算器控制器输出设备计算机组成原理计算机组成原理一个典型系统的硬件组成PC:程序计数器;ALU:算术/逻辑单元;USB:通用串行总线CPUMMInput/Output计算机组成原理计算机组成原理PC主板CPU插座内存条PCI总线插槽计算机组成原理计算机组成原理1.上机前的准备• 建立数学模型 -+-+-=!x9 !x7 !x5 !x3xx9753sin…• 编制解题程序• 确定计算方法程序 —— 运算的 全部步骤 指令 —— 每 一个步骤1.21.2二、计算机的工作步骤计算机组成原理计算机组成原理取x 至运算器中乘以x 在运算器中乘以a 在运算器中存ax2 在存储器中取b 至运算器中乘以x 在运算器中加ax2 在运算器中加c 在运算器中= (ax + b)x + c 取x 至运算器中乘以a 在运算器中加b 在运算器中乘以x 在运算器中加c 在运算器中计算 ax2 + bx + c1.21.2编程举例计算机组成原理计算机组成原理000001 0000001000打印 停机取数 α[α] ACC存数 β[ACC] β加 γ[ACC]+[γ] ACC乘 δ[ACC]×[δ] ACC指令格式举例1.21.2操作码地址码[ ] 打印机计算机组成原理计算机组成原理指令和数据存于 主存单单元的地址指令注释释操作码码 地址码码00000010000001000取数x至ACC10001000000001001乘a得ax ,存于ACC中20000110000001010加b得ax+b ,存于ACC中30001000000001000乘x得(ax+b)x,存于ACC中40000110000001011加c得ax2 + bx + c ,存于ACC50000100000001100将ax2 + bx +c ,存于主存单单元60001010000001100打印7000110停机8 x原始数据x9 a原始数据a10 b原始数据b11 c原始数据c12存放结结果1.21.2计算 ax2 + bx + c 程序清单计算机组成原理计算机组成原理存储体大楼存储单元 存放一串二进制代码存储字 存储单元中二进制代码的组合存储字长 存储单元中二进制代码的位数每个存储单元赋予一个地址号按地址寻访– 存储单元– 存储元件(0/1)– 教室– 座位(无人/ 有人)(1)存储器的基本组成1.21.2MDR主存储器存储体MAR2.计算机的解题过程计算机组成原理计算机组成原理MARMDR存储单元个数 16存储字长 8设 MAR = 4 位 MDR = 8 位1.21.2存储器地址寄存器 反映存储单元的个数存储器数据寄存器 反映存储字长(1)存储器的基本组成MDR主存储器存储体MAR计算机组成原理计算机组成原理取指令分析指令执行指令PCIRCUPCIRCU取指执行PC 存放当前欲执行指令的地址,具有计数功能(PC)+ 1 PCIR 存放当前欲执行的指令访存访存完成 一条 指令1.21.2(2)控制器的基本组成计算机组成原理计算机组成原理12356 789以取数指令为例4(3)主机完成一条指令的过程1.21.2CU控制单元主存储器MDRMAR存储体CPUPC控制器IR…运算器MQACCALUXI/O设 备计算机组成原理计算机组成原理12356 798以存数指令为例41.21.2(3)主机完成一条指令的过程CU控制单元主存储器MDRMAR存储体CPUPC控制器IR…运算器MQACCALUXI/O设 备计算机组成原理计算机组成原理 (4) ax2 + bx + c 程序的运行过程• 将程序通过输入设备送至计算机• 程序首地址• 打印结果• 分析指令• 取指令…• 停机 • 启动程序运行,(PC )+ 1 PC• 执行指令 1.21.2MARMMDRIRPCCUOP(IR)Ad(IR)MARMMDRACCPC计算机组成原理计算机组成原理 1.3 计算机硬件的主要技术指标1.机器字长一般指 一次参与运算数据的基本长度。
用 二进 制数位的长度来表示一般与 计算机内部 的 寄存器位数、数据 总线、运算器、存储器字长 有关早期的计算机字长一般为16位,现在字 长为32位或64位计算机组成原理计算机组成原理 1.3 计算机硬件的主要技术指标2.运算速度时钟周期:又称为节拍周期或T周期,是时钟频率的倒 数是处理器操作最基本的时间单位例如,主频 为1GHz的CPU的时钟周期为1nsCPI:表示执行每条指令所需要的平均时钟周期数CPI=一个程序的CPU时钟周期数÷程序指令数量计算机组成原理计算机组成原理 1.3 计算机硬件的主要技术指标2.运算速度CPI=一个程序的CPU时钟周期数÷程序指令数量设程序中每类指令的使用频度为Pi,每类指令的CPI 为CPIi,每类指令的条数为ICi,程序中的总指令条数 为IC.则,程序的CPI可用下列公式计算:计算机组成原理计算机组成原理 2.运算速度 CPU执行时间:是指CPU计算某个任务所花费的 时间,不包括I/O访问时的等待时间等 CPU执行时间=CPU时钟周期总数×时钟周期=指令条数×CPI ×时钟周期从上面的公式可以看出CPU的性能与计算机 体系的关系: ⑴时钟频率反映了计算机的实现技术和生产工艺. ⑵CPI反映了计算机的实现技术和指令集结构. ⑶IC反映了计算机指令系统的设计和编译技术.计算机组成原理计算机组成原理 2.运算速度n响应时间:是指计算机完成一个任务所花费 的全部时间,包括存储访问时间、磁盘访问 时间和I/O访问时间等。
它是计算机执行单 个任务时的性能n吞吐量:是指计算机系统在单位时间内完成 的总工作量它表征了计算机系统执行多个 任务时的性能表现计算机组成原理计算机组成原理2.运算速度MIPS :是指CPU每秒可以执行的百万条机器指令数 MIPS=指令数÷(程序执行的时间*106)=时钟频率÷(CPI*106) 以MIPS作为衡量计算机系统性能时要注意以下问题: ⑴该指标没有考虑不同指令在功能和执行速度上的差 异.不能用于不同指令系统计算机之间性能的比较. ⑵同一台计算机,不同类型的指令系统的MIPS也不 一样 ⑶某些情况下, MIPS值可能与计算机的实际性能成 反比计算机组成原理计算机组成原理2.运算速度 MFLOPS :是指CPU每秒可以执行的百万条浮点 操作次数MFLOPS=程序中的浮点操作次数÷(程序执行 的时间*106) 以MFLOPS作为衡量计算机系统性能时要注意以 下问题: ⑴ MFLOPS仅能反映浮点数的运算速度. ⑵ MFLOPS的计算结果与所使用的程序相关计算机组成原理计算机组成原理 3.CPU性能举例例1.1 某程序的目标代码主 要由4类指令组成,他们 在程序中所占比例和各自 的CPI如表所示。
⑴求该程序的CPI. ⑵若该CPU的主频为 400MHz,求该机的MIPS.指令类类型CPI 所占比 例 算术逻辑 运算160%内存读写218%转移412%其它810%计算机组成原理计算机组成原理 3.CPU性能举例解:⑴根据CPI=1*0.6+2*0.18+4*0.12+8*0.1=2.24⑵根据 MIPS= 时钟频率÷(CPI*106)MIPS=400*106 ÷(2.24*。