




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 计算机工作原理的通俗理解 计算机的基本思路计算机的基本组成原理计算机基本概念 本章重点 学习目标 了解计算机的基本组成 了解计算机软硬件划分的原则 知识点 1 如何理解程序 2 如何理解指令 3 如何理解存储 4 冯诺依曼体系是如何工作的 5 如何区分 硬件 和 软件 重点 理解计算机为什么会出现冯 诺依曼体系 2 1关于计算问题 关于计算问题是一个困扰了人类长达几千年的问题 其中一个重要的问题就是 到底什么是计算 人类还有一个梦想 能否让计算自动进行 这些问题直到20世纪初才有了答案 可计算性 可计算理论 通过建立计算的数学模型 区分哪些是可计算的 哪些是不可计算的 计算的过程就是执行算法的过程 可计算性 calculability 是指一个实际问题是否可以使用计算机来解决 一个可以使用计算机解决的问题是 可以在有限步骤内被解决的问题 分析某个问题的可计算性意义重大 它使得人们不必浪费时间在不可能解决的问题上 可计算性 例2 1 若m和n是两个正整数 并且m n 求m和n的最大公因子的欧几里得算法可表示为 E1 求余数 以n除m得余数r E2 余数为0吗 若r 0 计算结束 n即为答案 否则转到步骤E3 E3 互换 把m的值变为n n的值变为r 重复上述步骤 我们发现 1 计算过程是有穷的 有限性 2 计算的每一步都是能够机械实现的 机械性 可以在有限步内机械地完成 例2 2 求sin x 的值常用的方法是泰勒级数展开 可计算性 我们看到 1 泰勒级数可以无穷展开 但实际应用中在一定精度范围内步骤即变为有限步 2 每一项的算法步骤基本一致 只是个别地方数字的变化 3 将求正弦函数值的问题转化成了四则运算 基本计算 这给我们一个思路 是否可以将一些复杂的计算转换为简单的 基本的计算 四则运算 答案是肯定的 可计算性 假设要设计这样一台机器 具备加减法运算能力 可以按照泰勒级数的公式自动计算正弦函数值 显然存在几个问题 1 x是一个变量 每次计算时会给定一个确定的值 例如 3 其它的数都是常数 1 2 3 4 5 6 7 8 9 很显然这些数包含整数 小数 还有一个无限不循环小数 机器如何认识这些数 2 虽然简化运算为四则运算 机器如何知道什么时候用加法 什么时候做减法 换句话说 机器如何认识 x 呢 3 公式中含有括号 就是说运算过程中存在着运算的顺序 先算括号内的 后算括号外的 而且加减乘除本身也有先算乘除后算加减的顺序 机器如何按照数学要求的顺序执行呢 人的计算步骤 算8 9得到72 先记在纸上 计算x x得到一个值 1 0955 再记在纸上 计算1 0955 72 得到一个值0 0152 再记在纸上 计算1 0 0152得到0 9848 记在纸上 按同样的方法和步骤计算出的值 记录在纸上 将该值按照公式乘以0 9848 用1减去 5 得到的值 这给我们一个思路 如果设计一台机器用于计算 每一个时刻都只需要进行加减乘除四则运算中的一种机器如何获得该数据呢 每一种运算显然都需要有参与运算的数据 人类是通过感觉器官获得的数据 眼睛看 耳朵听 手摸 机器如何获得这些规则 获得了数据 显然需要运算 我们知道1 2 3 6 7 42 而这些是我们非常熟悉的公式 数学运算都需要按照上述公式计算 换句话讲 机器如果想计算 必须也知道这些运算规则 机器如何记录计算的中间结果 假设机器能获得运算数据 也知道运算规则 从人类的计算步骤看 都有一个 记 下中间运行结果的过程 该中间结果可能参与后面的计算 那机器如何记录中间结果 又如何能够将中间结果告知人类 或者参与下面的计算呢 关于运算器 加法器 有两个输入和一个和两个输入 加数 被加数 一个输出 和 先不考虑进位与借位问题 关于运算器 加法器的实现 十进制如何实现 X二进制呢 二进制加法运算规则 0 0 0 1 0 1 0 1 1 1 1 10 最低位为0 1为进位位 不考虑进位的情况下二进制加法运算规则为 0 0 0 1 0 1 0 1 1 1 1 0 进位位被丢掉 考虑逻辑运算的异或运算 关于运算器 加法器在不考虑进位的情况下等价于异或门所以 可以用 异或 电路实现无进位加法运算 考虑进位的加法运算 考虑进位的加法运算 一位二进制加法运算器的逻辑图 3个输入 两个输出两个加数 输入 来自其它位的进位位 输入 和 输出 往上位的进位位 输出 四位加法运算逻辑 加法器分析 通过加法器内容的分析我们解决了几个问题 1 数据的识别问题 用二进制表示数据 而二进制的每一位可以用物理的 5V或0V来表示 数据问题转换为了电压问题 2 加法规则利用了数字逻辑的与或非门电路实现 将加法规则融入到了电路中 但是 如何 记录 所得到的结果 到目前为止 是用电压形式表示 加法器分析 假设我们已经用数字电路分别实现了加减乘除运算器 也就是说四则运算已经可以分别进行了 这里的加法器是用数字电路实现的如果要变化需要重新设计新的数字电路 属于 硬件 加法器分析 要计算正弦值需要做以下的工作 选择一个乘法器 实现8 9 得到一个结果y1 选择一个乘法器 实现x x 得到一个结果y2 选择一个除法器 实现y1 y2 加 减 乘 除四则运算器已经用硬件实现了 但要实现不同的计算 还需要 参与运算的数据 运算的顺序 这两项如果用硬件实现 那么就只能进行一个算法 要想固定的硬件可以实现多种运算 上述两个过程就必须可变 此部分需要用 软件 实现 加法器分析 硬件 加法器 减法器 乘法器 除法器 参与运算的数据运算顺序 运算规则嵌入硬件 参与运算的数据和运算顺序是可变的应该由人来改变 我们的理想目标 人告诉机器执行的步骤 由机器自动按照人类设定好的步骤自动执行那么我们就要思考下列几个问题 1 谁来选择乘除法器 2 得到的结果y1 y2 如何 记录 是记在纸上 还是记录在什么地方 3 既然已经有了一个算法流程 能不能让流程自行运转 4 如果能够运转 如何表述该流程 5 流程如果可以表述 不同的计算显然流程不同 参与运算的数据也不相同 实现的机器能否接受由人来改写流程 从而实现不同的计算呢 关于指令 程序和存储 vonNeumann和Burks Goldstine说出了这样一段话 用形式逻辑的方法可以很容易看到 在理论上存在着某种 指令集 足以控制任何的操作序列并使之执行 从当前的观点出发 在选择一个 指令集 时 真正的决定性因素是要更多地考虑其实际性质 指令集 要求的设备简单性 它的应用对于解决实际重要问题的明确性以及它解决该类问题的处理速度 关于指令 指令集 指令集到底是什么 机器如何识别指令集 操作序列又如何可以自动执行呢 假设存储器 假设已经找到了一个办法 生产出一种东西 可以存储二进制 可以往该设备中写入任意的8个二进制位 该设备可以保留其信息 8位二进制位 想要用这个信息 可以从该设备中读出此信息 关于指令 指令集 假设有三个 存储器 给三个存储器三个名字 A B C A放加数 B放被加数 C用来存放和 要实现8 7 我们需要做几件事 1 将数字8放在A存储器中 2 将数字7放在存储器B中 3 选择加法器 4 从A中读出数字8放在加法器的加数端 5 从A中读出数字7放在加法器的被加数端 6 加法器自动按规则计算出和值与进位位 7 将和15放在存储器C中 这是计算加法的算法流程 也是一个分为7步的操作序列 关于指令 指令集 用一个英文的缩写将上述流程重新写一遍 MOVA 8 数字8放在A存储器中 MOVB 7 将数字7放在B存储器中 ADDC A B 选择加法器 从A中读出 数字8放在加法器的加数端 从A中读出数字7放在加法器的 被加数端 加法器自动按规则 计算出和值与进位位 将和15 放在存储器C中 三条指令 有先后顺序 三条指令完成一个加法运算 关于指令 指令集 MOVA 8MOVB 7ADDC A B 三步完成一个运算这三步由人来设定机器按照设定好的顺序依次执行将运算结果保存在C中 程序 或指令序列 问题又出现了 1 机器如何识别 指令 或者说 机器如何能看懂 指令 2 假设机器可以识别 指令 那么是否要存储程序 如果需要 机器又如何存储程序 3 机器如果能够存储程序 机器如何找到每一条指令 或者说通过什么手段 或方法 找到每一条指令 4 指令的顺序是不可变的 是否意味着存储程序需要按照某种顺序存储 顺序又是什么呢 指令的识别与存储 那么如何存储 我们先来看一个程序是什么样的 以一个加法程序为例 将被加数放在一个存储器中 X1 将加数放在另一个存储器中 X2 实现加法运算 将和存在某一个存储器中 Y 结束程序 用简化的语言描述如下 MOVX1 23MOVX2 56ADDY X1 X2HALT 指令的识别与存储 这里存储的只是数据 而不是指令 那指令该如何存储呢 到目前为止 我们所说的指令 都是人可以看懂的 而机器如何看懂指令 还是一个问题 指令是完成某一个功能的 例如 存数 加法 减法 逻辑运算 等 那么这些功能是不是数量有限的呢 这可以利用数学和逻辑学的原理推导 结论是有限的 也就是说 指令的个数是有限的 指令集是有限的 既然是有限的 是否可以用编码方式来区分每一个指令呢 例如 000代表存数 001代表加法 010代表减法 指令用二进制编码 采用二进制进行编码 000X1 23000X2 56001Y X1 X2011 用简化的语言描述如下 MOVX1 23MOVX2 56ADDY X1 X2HALT 采用二进制进行编码 0000002300000156001010000001011 X1 X2 Y也用数字来代表 000代表X1 001代表X2 010代表Y 指令用二进制编码 采用二进制进行编码 0000002300000156001010000001011 机器看到的指令序列 存储形式 设定存储的形式 包含 地址 地址按顺序排列 存储内容如果已知指令序列的首地址 10 如果指令顺序存储 11 12 13 14 通过地址 1 可以依次访问指令序列 地址 存储内容 指令序列首地址 指令格式 每一条指令由两部分内容 操作码 operator 操作数或操作数地址 NumberORAddress 图2 8指令格式图 指令的可能格式 指令的自动执行 假定存在如下的一个汇编语言的指令序列 MOVAX 1234HB83412ADDAX 2345H054523 指令序列存储第一个地址为 2000H 2000H 存的是第一条指令的操作码 2000H PC B8H 指令意思 指令的操作码部分 将后两个地址的数据移动到AX寄存器中 2001H PC 34H 指令意思 指令的数据部分 第一个字节 2002H PC 12H 指令意思 指令的数据部分 第二个字节 2002H PC 05H 指令意思 第二条指令的操作码 2002H PC 45H 指令意思 第二条指令的操作数 2002H PC 23H 指令意思 第二条指令的操作数 程序自动执行的设计 PC ProgramCounter 寄存器PC具备自动加一的能力程序可以自动执行 一 CPU执行的指令 机器指令 命令机器做某种操作的一条语句称为一个机器指令 ADDAX 5 8086CPU的一条指令让计算机完成一个加法运算 加数为5 被加数存储在AX寄存器中 和存储在AX中指令系统 全部机器指令的集合称为指令系统 CPU工作原理 指令系统示例 CPU要完成什么功能 Fetchinstruction Theprocessorreadsaninstructionfrommemory register cache mainmemory Interpretinstruction Theinstructionisecodedtodeterminewhatactionisrequired Fetchdata TheexecutionofaninstructionmayrequirereadingdatafrommemoryoranI Omodule Processdata Theexecutionofaninstructionmayrequireperformingsomearithmeticorlogicaloperationondata Writedata TheresultsofanexecutionmayrequirewritingdatatomemoryoranI Omodule CPU需要什么 需要 一个存储指令地址的寄存器 知道下一条指令到那里去取 加数 被加数 和都需要存储 我们需要一些临时存储的内部寄存器 需要能进行数学运算的单元 加法运算逻辑运算需要能控制指令 数据流动的单元 从哪里取指令 送到哪里去 控制哪个单元何时工作 通用CPU组成 运算器 Algrithm 控制器 Controller 寄存器组 Register 加法运算逻辑运算 控制指令 数据 地址信息的流向 存储参与运算的数据 地址等中间结果的存储 CPU的基本操作 1 取指令2 读数据3 写数据 CPU的基本结构和操作 1 PC地址 地址寄存器 地址总线2 控制单元 读信号3 数据总线 数据缓冲寄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物资储备仓库消防安全知识测试题目
- 2025年美容美发技术实操模拟题及参考答案
- 七颗钻教学课件
- 中国功夫音乐教学课件
- 2025年物资储备仓库管理信息化应用技能测试题库及解析
- 2025年中级操作工考试必-备知识点炼油工艺原理及设备结构
- 2025年特岗教师招聘考试初中地理重点知识点解析与练习
- 2025年初级电工电路基础知识和实操模拟题及答案
- 2025年焊接工艺面试通关秘籍模拟题及答案解析
- 企业级SOA实施方法论的研究与探讨
- 考研英语长难句分析技巧及实战70例
- 安全保卫工作会议记录6篇
- 学校食堂及校内小卖部食品安全专项检查表
- DBJ∕T15-232-2021 混凝土氯离子控制标准
- 刑事报案材料模板(涉嫌诈骗罪)
- 乳制品配送服务质量保障方案
- 高血压防治指南解读课件
- 2024在役立式圆筒形钢制焊接储罐安全附件检验技术规范
- 托管老师培训课件
- 大客户营销管理策略下的客户激励与忠诚度提升
- 管道改造管道吹扫安全方案
评论
0/150
提交评论