CPU内存基本工作原理.ppt

上传人:小飞机 文档编号:6503396 上传时间:2023-11-07 格式:PPT 页数:69 大小:822.50KB
返回 下载 相关 举报
CPU内存基本工作原理.ppt_第1页
第1页 / 共69页
CPU内存基本工作原理.ppt_第2页
第2页 / 共69页
CPU内存基本工作原理.ppt_第3页
第3页 / 共69页
CPU内存基本工作原理.ppt_第4页
第4页 / 共69页
CPU内存基本工作原理.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《CPU内存基本工作原理.ppt》由会员分享,可在线阅读,更多相关《CPU内存基本工作原理.ppt(69页珍藏版)》请在三一办公上搜索。

1、第五讲:第六章CPU/内存基本工作原理,北京大学 信息科学技术学院2013年10月,本讲内容,计算机的数学理论模型图灵机CPU的内部结构和工作原理主存储器及其与CPU之间的信息传输指令系统计算机程序的基本控制结构,计算机的数学理论模型图灵机,可计算性,对于一个问题,如果存在一个机械的过程,当我们给定一个输入,这个过程能够在有限步内终止并给出正确答案,那么,这个问题就称为是可计算的/具有可计算性。,计算机理论的发展历史,图灵 研究了 可计算性提出了 图灵机 和 图灵机能解决的问题类证明了 存在着图灵机无法解决的问题类冯诺伊曼 给出了 现代计算机的设计蓝图提出了 数字计算机的组成原理和体系结构对指

2、令、指令周期、指令系统和存储式程序控制原理都给出了明确的方案库克(Stephen A.Cook)研究了 计算复杂性有一些问题,虽然可计算,但随着问题规模的增加,就连最快的计算机用几百年也不能结束计算,图灵机(Turing Machine),1936年由 英国数学家 阿兰图灵 提出一种抽象的计算模型现代电子计算机的理论基础基本思想:用 机器 来 模拟 人类 用 纸和笔 进行 数学运算的过程人用纸和笔进行数学运算的两种简单动作:在纸上写下或擦除某个符号把注意力从纸的一个位置移动到另一个位置同时,人的下一步动作依赖于两个因素:此人当前所关注的纸上某个位置的符号此人当前的思维状态,图灵机的构成成分(1

3、),1.一条无限长的纸带 TAPE纸带被划分为一个接一个的小方格每个方格存储一个来自一个有限符号集合的符号纸带的两端可以无限延伸,图灵机的符号表,TAPE,图灵机的构成成分(2),2.一个读写头 HEAD能 读出当前位置的方格里的符号能 在当前位置的方格里写入一个符号能 向左、向右移动一次移动一个方格的宽度,HEAD,向左移动,向右移动,图灵机的构成成分(3),3.一个控制器 CONTROL一个状态寄存器 REG记录了图灵机的当前状态一个图灵机具有 有限数量的可能状态一个控制规则表 TABLE规定了图灵机如何在不同的状态之间进行迁移/转换,CONTROL,有限状态控制器,图灵机的运作方式,图灵

4、机的每一步动作取决于四个因素控制器中的当前状态 qi读写头的当前位置(在哪个方格上)当前位置的方格内存储的符号 si控制规则表中的规则,控制器 根据 qi、si、以及控制规则,决定:1.向当前方格内写入的符号2.读写头的移动方向(左移,右移,不动)3.控制器新的当前状态(START,HALT),停机状态,启始状态,控制规则表的结构,每一行存储了一条控制规则,图灵机实例1,CONTROL,当前状态START,符号表:0,1,*状态集合:START/开始,ADD/相加,CARRY/进位,OVERFLOW/溢出,RETURN/返回,HALT/停机,请同学们观察这个图灵机的功能是什么,当前状态STAR

5、T,控制规则表,当前状态ADD,控制规则表,当前状态ADD,控制规则表,当前状态CARRY,控制规则表,当前状态CARRY,控制规则表,当前状态RETURN,控制规则表,当前状态RETURN,控制规则表,当前状态RETURN,控制规则表,当前状态HALT,控制规则表,图灵机实例1,这个图灵机的功能是什么?启示:计算机程序执行的顺序性,f(x)=x+1,CPU的内部结构和工作原理,CPU 中央处理器,Central Processing Unit微型/个人计算机的CPU又被称为:MPU(Micro Processor Unit)微处理器计算机系统中的核心硬件设备主要功能:执行程序与其它部件协同工

6、作,CPU,内存,显卡,CPU的内部结构,算术逻辑运算器,程序控制器,寄存器组,中断处理器,CPU内部总线,CPU的内部结构,算术逻辑运算器,程序控制器,寄存器组,中断处理器,CPU内部总线,CPU的内部结构 寄存器组,由 一组寄存器 组成的 高速存储单元用于 暂时存放 运算数据 或 其它信息整数类型 的 操作数 或 运算结果浮点数类型 的 操作数 或 运算结果指令指令地址各种内部标志信息,存取速度,CPU,寄存器,CPU的内部结构,算术逻辑运算器,程序控制器,寄存器组,中断处理器,CPU内部总线,CPU的内部结构 程序控制器,Program Control Unit,CPU的控制中心分析/解

7、释 指令根据 分析/解释 结果 向 其它部件 发出命令控制CPU的工作进度和工作方式具体而言,当一条指令进入CPU后,程序控制器:分析/解释该指令的编码内容;确定为执行该指令应该完成的动作;确定指令相关的参数;例如:对于一个“加法指令”,需要确定两个被加数的地址将 所需的数据 从 主存储器 读取到 CPU的寄存器中;要求 算术逻辑运算器 进行相关的运算动作;指示 算术逻辑运算器 将 运算结果 放入 寄存器 或 主存储器 中。,CPU的内部结构,算术逻辑运算器,程序控制器,寄存器组,中断处理器,CPU内部总线,CPU的内部结构 算术逻辑运算器,Arithmetic Logical Unit(AL

8、U),主要进行算术运算和逻辑运算加法指令的例子一条加法指令(其中包含了两个被加数/操作数的地址)进入CPU;程序控制器 分析该指令,判断两个操作数是在寄存器内,还是在主存内;如果在主存内,程序控制器 从主存内读入操作数;程序控制器 将 加法运算 提交给 ALU;ALU 进行加法运算;ALU 根据程序控制器 的指示,将运算结果存放到寄存器或主存中。,CPU的内部结构,算术逻辑运算器,程序控制器,寄存器组,中断处理器,CPU内部总线,CPU的内部结构 中断处理器,问题背景:在CPU执行一般程序运算的过程中,如何处理紧急出现的事件?比如:鼠标移动事件发生一个紧急事件 触发一个中断信号中断信号的处理:

9、当发现中断信号后,程序控制器 暂停正在运行的程序,保存该程序的运行现场(CPU内的各种状态信息);程序控制器 根据中断信号的编码,从特定位置启动 中断处理程序(由操作系统提供);中断处理程序 运行完毕后,程序控制器 恢复被暂停的程序。,CPU的内部结构 中断处理器,中断信号的产生:各种软硬件,比如:鼠标、键盘、其它外设中断信号的接收:中断处理器 负责 中断信号的接收,并将中断信号的编码、中断处理程序的起始地址 传给 程序控制器中断信号的检测程序控制器 在每条指令执行完毕后,都会检测 是否出现了新的中断信号,中断的启示,中断设置:应对紧急情况中断处理程序预案与灾难例子:手术过程中出现大出血,处理

10、大出血,继续手术,CPU的主要性能指标,工作主频:CPU内部的时钟频率;1.7GHz3.0GHz运算字长:CPU一次能够处理的二进制位数;32位/64位运算速度:每秒钟执行的指令数;例如:1000MIPS(Million Instructions Per Second),指令系统,2023/11/7,北京大学,39,早期计算器,指令系统,指令(program instruction)组成程序的基本单位。每一条指令:规定了CPU执行指令应该完成的工作(运算、或其它控制动作),控制CPU的相关部件执行微操作,从而完成指令所规定的功能。,指令系统,CPU的指令系统是CPU芯片的硬件与使用它的软件之间

11、的一种严格的协议,反映了CPU能够完成的全部功能。CPU的“指令系统”规定了:它所能执行指令的全部类别,指令的编码方式和每一类指令所涉及的参数等。,指令系统,每一条指令用若干字节的二进制编码表示,包括它要完成的动作及其相关的参数00000001 加法指令的分类:存储访问指令算术运算指令逻辑运算指令条件判断和分支转移指令输入输出指令其他用于系统控制的指令,指令工作周期,程序控制器 按照“读取指令执行指令”的周期循环地工作,读取指令,执行指令,开机,关机,指令工作周期,一个指令周期 一般需要 占用 多个CPU时钟周期/时钟节拍CPU时钟周期/时钟节拍CPU完成一个原子动作的基本时间单位如果 一个C

12、PU的时钟频率是 y GHz,那么这个CPU的时钟周期/时钟节拍 是 1/y 10-9 秒,指令工作周期,一道应用题:一个CPU能够在4个 时钟周期/时钟节拍 内 完成 一个指令周期。如果这个CPU的时钟频率/主频是2GHz,那么,这个CPU在一秒之内能执行多少条指令?这个CPU的运算速度是多少?答:一秒中内可以执行的指令个数为 2 109 Hz 1秒/4=5108 个运算速度为 500 MIPS,进一步理解指令,RISC精简指令集,只包含100多条指令,不同CPU支持的指令数有稍微差异。计算机只有少数的上百条指令,为什么却能够做各种各样的事情?初步理解“函数”的思想,令人吃惊的事实,根据以上

13、三条指令:flip,zero,test我们可以让计算机“间接地”执行什么操作?,试试让计算机比较两个1-bit二进制数是否相等,只用前面提到的运算,如果需要,可以使用辅助的bits.,eq,Equality test(x,y)zero eq;flip eq;/*equality ontest x flip eq;test y flip eq;/*equality on only turn twice,If x=y eq=1Otherwise eq=0,你能将这个操作扩展到,比如,32位内的整数吗?,稍微增加一点操作,计算两个1-bit二进制数的和,add(x,y)1.zero z0;2.zer

14、o z1;3.equality test(x,y);4.test eq goto 75.flip z0;6.exit;7.zero t;8.flip t;9.equality test(x,t);10.test eq flip z1;,如果只允许原来三个基本操作,能完成这个任务吗?,多层次抽象,用一位的加法“间接操作”可以实现普通加法操作;加法操作又可以作为一步操作用在更复杂的“间接操作”中。一步步的“间接操作”,不断的接近我们看到的程序。这些“间接”的设计,类似于程序中的函数设计,主存储器 及其与CPU之间的信息传输,主存储器/内存,由基于大规模集成电路的存储芯片组装而成,存储CPU可直接访

15、问的数据和程序主存储器的工作速度和容量对计算机系统整体性能影响极大一次读写大约在几十纳秒(ns)左右1纳秒=10-9 秒主存储器容量的基本计量单位为字节(Byte),目前常见的计算机标配内存容量多为512MB、1GB和2GB随机访问存储器(RAM Random Access Memory)访问时间不随访问地址的不同而不同也即,读写任意地址的存储单元,其所需时间是一样的顺序访问存储器主要功能:存储数据 和 读写数据,存储空间的管理,为了更有效地进行管理,通常以8个比特(一个字节)为一个存储管理单元(简称:存储单元)每个存储单元都有其特定且唯一的地址,称为:存储地址存储地址为整数编码,可表示为二进

16、制整数由主存储器的所有存储单元的地址构成的集合,称为地址空间表示地址空间所需的二进制位数,称为地址宽度内存容量越大,地址空间也就越大,地址宽度也必须相应加大,主存储器的访问方式,地址访问方式给出想要访问的存储单元的地址,从该地址的存储单元中读数据,或向其中写入数据CPU的字长一般是4个字节 或 8个字节,因此CPU读写内存数据的方式是每次4个或8个字节在一段程序中,变量 和 存储单元 相对应变量名字 对应于 存储单元地址变量内容 对应于 存储单元中的数据指针型变量:专门存放 存储单元地址 的 变量,这真的对我有用么?,主存和CPU之间的信息传输,通过 存储总线 进行信息传输存储总线由三组总线构

17、成数据总线:用于传输数据地址总线:用于传输存储单元地址地址开关控制总线:用于各种控制信息的传递(读、写等)控制开关,CPU,内存,地址总线,数据总线,控制总线,主存和CPU之间的信息传输,CPU从主存中读取数据的过程CPU 把 存储单元地址 写入 地址总线;CPU 通过 控制总线 发出一个“读”信号;主存 收到“读”信号,根据 地址总线 上 的 地址信息,把连续几个存储单元的数据读出,送到 数据总线 上;(需要一定的时间)在等待一段时间后,CPU 从 数据总线 上 获得数据。,主存和CPU之间的信息传输,CPU向主存写入数据的过程CPU 把 存储单元地址 写入 地址总线;CPU 把 数据 写入

18、 数据总线;CPU 通过 控制总线 发出一个“写”信号;主存 收到“写”信号,根据 地址总线 上 的 地址信息,把 数据总线 上 的 数据 写入到 相应的 存储单元 中(需要一定的时间),总线的宽度,一条总线上一次可传输的二进制位数数据总线的宽度 一般 和 CPU的字长 相同目前CPU一般采用32位或64位的数据总线数据总线宽度决定了一次传送数据量的大小CPU的地址总线宽度决定了主存储器地址空间的大小16位地址(64K);32位地址(4G);64位地址(天文数字),计算机程序的基本控制结构,程序的基本控制结构,程序(Program)由若干条指令按照一定的顺序排列组成,是为信息处理任务而预先编制

19、的工作执行方案算法(Algorithm)程序=算法+数据结构为某类处理任务而预先编制的指令的组合方法用于表示问题求解的步骤算法的特点通用性:合理的输入产生正确的输出有效性:有限的指令、可预期的执行结果确定性:每一步动作的下一步都是确定的有穷性:算法的执行应在有限步内结束,三种程序控制结构,顺序结构分支结构循环结构,顺序结构,按 指令 的 排列顺序 依次执行基础结构,顺序结构 C语言示例,#include/我们的程序必须引用的一个头文件int main()/主函数 int age;/定义一个记录年龄的变量 printf(Please input your age:n);/1.提示输入你的年龄 scanf(%d,/3.输出你的年龄,分支结构,根据 分支判断条件 的 取值(真或假),决定程序的后继执行路线,分支结构 C语言示例,#include/我们的程序必须引用的一个头文件int main()/主函数 int age;/定义一个记录年龄的变量 printf(“Please input your age:n”);/1.提示输入你的年龄 scanf(%d,循环结构,循环条件 循环体,循环结构示例:求11000的平方和,三种基本控制结构可相互组合和嵌套使用,形成更为复杂的控制,完成各种复杂的工作。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号