CPU内存基本工作原理.ppt_第1页
CPU内存基本工作原理.ppt_第2页
CPU内存基本工作原理.ppt_第3页
CPU内存基本工作原理.ppt_第4页
CPU内存基本工作原理.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五讲 第六章CPU 内存基本工作原理 北京大学信息科学技术学院2013年10月 本讲内容 计算机的数学理论模型 图灵机CPU的内部结构和工作原理主存储器及其与CPU之间的信息传输指令系统计算机程序的基本控制结构 计算机的数学理论模型 图灵机 可计算性 对于一个问题 如果存在一个机械的过程 当我们给定一个输入 这个过程能够在有限步内终止并给出正确答案 那么 这个问题就称为是可计算的 具有可计算性 计算机理论的发展历史 图灵研究了可计算性提出了图灵机和图灵机能解决的问题类证明了存在着图灵机无法解决的问题类冯 诺伊曼给出了现代计算机的设计蓝图提出了数字计算机的组成原理和体系结构对指令 指令周期 指令系统和存储式程序控制原理都给出了明确的方案库克 StephenA Cook 研究了计算复杂性有一些问题 虽然可计算 但随着问题规模的增加 就连最快的计算机用几百年也不能结束计算 图灵机 TuringMachine 1936年由英国数学家阿兰 图灵提出一种抽象的计算模型现代电子计算机的理论基础基本思想 用机器来模拟人类用纸和笔进行数学运算的过程人用纸和笔进行数学运算的两种简单动作 在纸上写下或擦除某个符号把注意力从纸的一个位置移动到另一个位置同时 人的下一步动作依赖于两个因素 此人当前所关注的纸上某个位置的符号此人当前的思维状态 图灵机的构成成分 1 1 一条无限长的纸带TAPE纸带被划分为一个接一个的小方格每个方格存储一个来自一个有限符号集合的符号纸带的两端可以无限延伸 图灵机的符号表 TAPE 图灵机的构成成分 2 2 一个读写头HEAD能读出当前位置的方格里的符号能在当前位置的方格里写入一个符号能向左 向右移动一次移动一个方格的宽度 HEAD 向左移动 向右移动 图灵机的构成成分 3 3 一个控制器CONTROL一个状态寄存器REG记录了图灵机的当前状态一个图灵机具有有限数量的可能状态一个控制规则表TABLE规定了图灵机如何在不同的状态之间进行迁移 转换 CONTROL 有限状态控制器 图灵机的运作方式 图灵机的每一步动作取决于四个因素控制器中的当前状态qi读写头的当前位置 在哪个方格上 当前位置的方格内存储的符号si控制规则表中的规则 控制器根据qi si 以及控制规则 决定 1 向当前方格内写入的符号2 读写头的移动方向 左移 右移 不动 3 控制器新的当前状态 START HALT 停机状态 启始状态 控制规则表的结构 每一行存储了一条控制规则 图灵机 实例1 CONTROL 当前状态 START 符号表 0 1 状态集合 START 开始 ADD 相加 CARRY 进位 OVERFLOW 溢出 RETURN 返回 HALT 停机 请同学们观察这个图灵机的功能是什么 当前状态 START 控制规则表 当前状态 ADD 控制规则表 当前状态 ADD 控制规则表 当前状态 CARRY 控制规则表 当前状态 CARRY 控制规则表 当前状态 RETURN 控制规则表 当前状态 RETURN 控制规则表 当前状态 RETURN 控制规则表 当前状态 HALT 控制规则表 图灵机 实例1 这个图灵机的功能是什么 启示 计算机程序执行的顺序性 f x x 1 CPU的内部结构和工作原理 CPU 中央处理器 CentralProcessingUnit微型 个人计算机的CPU又被称为 MPU MicroProcessorUnit 微处理器计算机系统中的核心硬件设备主要功能 执行程序与其它部件协同工作 CPU 内存 显卡 CPU的内部结构 算术逻辑运算器 程序控制器 寄存器组 中断处理器 CPU内部总线 CPU的内部结构 算术逻辑运算器 程序控制器 寄存器组 中断处理器 CPU内部总线 CPU的内部结构 寄存器组 由一组寄存器组成的高速存储单元用于暂时存放运算数据或其它信息整数类型的操作数或运算结果浮点数类型的操作数或运算结果指令指令地址各种内部标志信息 存取速度 CPU 寄存器 CPU的内部结构 算术逻辑运算器 程序控制器 寄存器组 中断处理器 CPU内部总线 CPU的内部结构 程序控制器 ProgramControlUnit CPU的控制中心分析 解释指令根据分析 解释结果向其它部件发出命令控制CPU的工作进度和工作方式具体而言 当一条指令进入CPU后 程序控制器 分析 解释该指令的编码内容 确定为执行该指令应该完成的动作 确定指令相关的参数 例如 对于一个 加法指令 需要确定两个被加数的地址将所需的数据从主存储器读取到CPU的寄存器中 要求算术逻辑运算器进行相关的运算动作 指示算术逻辑运算器将运算结果放入寄存器或主存储器中 CPU的内部结构 算术逻辑运算器 程序控制器 寄存器组 中断处理器 CPU内部总线 CPU的内部结构 算术逻辑运算器 ArithmeticLogicalUnit ALU 主要进行算术运算和逻辑运算加法指令的例子一条加法指令 其中包含了两个被加数 操作数的地址 进入CPU 程序控制器分析该指令 判断两个操作数是在寄存器内 还是在主存内 如果在主存内 程序控制器从主存内读入操作数 程序控制器将加法运算提交给ALU ALU进行加法运算 ALU根据程序控制器的指示 将运算结果存放到寄存器或主存中 CPU的内部结构 算术逻辑运算器 程序控制器 寄存器组 中断处理器 CPU内部总线 CPU的内部结构 中断处理器 问题背景 在CPU执行一般程序运算的过程中 如何处理紧急出现的事件 比如 鼠标移动事件发生一个紧急事件 触发一个中断信号中断信号的处理 当发现中断信号后 程序控制器暂停正在运行的程序 保存该程序的运行现场 CPU内的各种状态信息 程序控制器根据中断信号的编码 从特定位置启动中断处理程序 由操作系统提供 中断处理程序运行完毕后 程序控制器恢复被暂停的程序 CPU的内部结构 中断处理器 中断信号的产生 各种软硬件 比如 鼠标 键盘 其它外设 中断信号的接收 中断处理器负责中断信号的接收 并将中断信号的编码 中断处理程序的起始地址传给程序控制器中断信号的检测程序控制器在每条指令执行完毕后 都会检测是否出现了新的中断信号 中断的启示 中断设置 应对紧急情况中断处理程序预案与灾难例子 手术过程中出现大出血 处理大出血 继续手术 CPU的主要性能指标 工作主频 CPU内部的时钟频率 1 7GHz 3 0GHz运算字长 CPU一次能够处理的二进制位数 32位 64位运算速度 每秒钟执行的指令数 例如 1000MIPS MillionInstructionsPerSecond 指令系统 2020 3 27 北京大学 39 早期计算器 指令系统 指令 programinstruction 组成程序的基本单位 每一条指令 规定了CPU执行指令应该完成的工作 运算 或其它控制动作 控制CPU的相关部件执行微操作 从而完成指令所规定的功能 指令系统 CPU的指令系统是CPU芯片的硬件与使用它的软件之间的一种严格的协议 反映了CPU能够完成的全部功能 CPU的 指令系统 规定了 它所能执行指令的全部类别 指令的编码方式和每一类指令所涉及的参数等 指令系统 每一条指令用若干字节的二进制编码表示 包括它要完成的动作及其相关的参数00000001加法指令的分类 存储访问指令算术运算指令逻辑运算指令条件判断和分支转移指令输入输出指令其他用于系统控制的指令 指令工作周期 程序控制器按照 读取指令 执行指令 的周期循环地工作 读取指令 执行指令 开机 关机 指令工作周期 一个指令周期一般需要占用多个CPU时钟周期 时钟节拍CPU时钟周期 时钟节拍CPU完成一个原子动作的基本时间单位如果一个CPU的时钟频率是yGHz 那么这个CPU的时钟周期 时钟节拍是1 y 10 9秒 指令工作周期 一道应用题 一个CPU能够在4个时钟周期 时钟节拍内完成一个指令周期 如果这个CPU的时钟频率 主频是2GHz 那么 这个CPU在一秒之内能执行多少条指令 这个CPU的运算速度是多少 答 一秒中内可以执行的指令个数为2 109Hz 1秒 4 5 108个运算速度为500MIPS 进一步理解指令 RISC精简指令集 只包含100多条指令 不同CPU支持的指令数有稍微差异 计算机只有少数的上百条指令 为什么却能够做各种各样的事情 初步理解 函数 的思想 令人吃惊的事实 根据以上三条指令 flip zero test我们可以让计算机 间接地 执行什么操作 试试让计算机比较两个1 bit二进制数是否相等 只用前面提到的运算 如果需要 可以使用辅助的bits eq Equalitytest x y zeroeq flipeq equalityontestxflipeq testyflipeq equalityononlyturntwice Ifx yeq 1Otherwiseeq 0 你能将这个操作扩展到 比如 32位内的整数吗 稍微增加一点操作 计算两个1 bit二进制数的和 add x y 1 zeroz0 2 zeroz1 3 equalitytest x y 4 testeqgoto75 flipz0 6 exit 7 zerot 8 flipt 9 equalitytest x t 10 testeqflipz1 如果只允许原来三个基本操作 能完成这个任务吗 多层次抽象 用一位的加法 间接操作 可以实现普通加法操作 加法操作又可以作为一步操作用在更复杂的 间接操作 中 一步步的 间接操作 不断的接近我们看到的程序 这些 间接 的设计 类似于程序中的函数设计 主存储器及其与CPU之间的信息传输 主存储器 内存 由基于大规模集成电路的存储芯片组装而成 存储CPU可直接访问的数据和程序主存储器的工作速度和容量对计算机系统整体性能影响极大一次读写大约在几十纳秒 ns 左右1纳秒 10 9秒主存储器容量的基本计量单位为字节 Byte 目前常见的计算机标配内存容量多为512MB 1GB和2GB随机访问存储器 RAM RandomAccessMemory 访问时间不随访问地址的不同而不同也即 读写任意地址的存储单元 其所需时间是一样的顺序访问存储器主要功能 存储数据和读写数据 存储空间的管理 为了更有效地进行管理 通常以8个比特 一个字节 为一个存储管理单元 简称 存储单元 每个存储单元都有其特定且唯一的地址 称为 存储地址存储地址为整数编码 可表示为二进制整数由主存储器的所有存储单元的地址构成的集合 称为地址空间表示地址空间所需的二进制位数 称为地址宽度内存容量越大 地址空间也就越大 地址宽度也必须相应加大 主存储器的访问方式 地址访问方式给出想要访问的存储单元的地址 从该地址的存储单元中读数据 或向其中写入数据CPU的字长一般是4个字节或8个字节 因此CPU读写内存数据的方式是每次4个或8个字节在一段程序中 变量和存储单元相对应变量名字对应于存储单元地址变量内容对应于存储单元中的数据指针型变量 专门存放存储单元地址的变量 这真的对我有用么 主存和CPU之间的信息传输 通过存储总线进行信息传输存储总线由三组总线构成数据总线 用于传输数据地址总线 用于传输存储单元地址地址开关控制总线 用于各种控制信息的传递 读 写等 控制开关 CPU 内存 地址总线 数据总线 控制总线 主存和CPU之间的信息传输 CPU从主存中读取数据的过程CPU把存储单元地址写入地址总线 CPU通过控制总线发出一个 读 信号 主存收到 读 信号 根据地址总线上的地址信息 把连续几个存储单元的数据读出 送到数据总线上 需要一定的时间 在等待一段时间后 CPU从数据总线上获得数据 主存和CPU之间的信息传输 CPU向主存写入数据的过程CPU把存储单元地址写入地址总线 CPU把数据写入数据总线 CPU通过控制总线发出一个 写 信号 主存收到 写 信号 根据地址总线上的地址信息 把数据总线上的数据写入到相应的存储单元中 需要一定的时间 总线的宽度 一条总线上一次可传输的二进制位数数据总线的宽度一般和CPU的字长相同目前CPU一般采用32位或64位的数据总线数据总线宽度决定了一次传送数据量的大小CPU的地址总线宽度决定了主存储器地址空间的大小16位地址 64K 32位地址 4G 64位地址 天文数字 计算机程序的基本控制结构 程序的基本控制结构 程序 Program 由若干条指令按照一定的顺序排列组成 是为信息处理任务而预先编制的工作执行方案算法 Algorithm 程序 算法 数据结构为某类处理任务而预先编制的指令的组合方法用于表示问题求解的步骤算法的特点通用性 合理的输入产生正确的输出有效性 有限的指令 可预期的执行结果确定性 每一步动作的下一步都是确定的有穷性 算法的执行应在有限步内结束 三种程序控制结构 顺序结构分支结构循环结构 顺序结构 按指令的排列顺序依次执行基础结构 顺序结构 C语言示例 include 我们的程序必须引用的一个头文件intmain 主函数 inta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论