当前课程知识点:微机原理与接口技术 >  第1周 微型计算机基础概论 >  第3讲 微型计算机一般工作过程 >  微机的一般工作过程_02

返回《微机原理与接口技术》慕课在线视频课程列表

微机的一般工作过程_02在线视频

微机的一般工作过程_02

下一节:常用计数制及其转换

返回《微机原理与接口技术》慕课在线视频列表

微机的一般工作过程_02课程教案、知识点、字幕

那么

并行的执行是什么呢?

并行的执行是这样

我们三个部件

当然对于第一条指令

一开始三个部件

都是空的 对吧

第一条指令

肯定取指令部件要去取

取完了以后

第一条指令

就会被送去分析

那么这个时候

取指令部件就空闲

那么

我们就可以用它

来去取第二条指令

假设

第二条指令取过来

第一条指令正好分析结束

也就是说

分析部件正好空闲的话

那么

第一条指令就会被执行

分析部件

就可以用来

分析第二条指令

取指令部件

就可以去取第三条指令

依次类推

这样子下去

所以

这样子的方式

如果我们假设

都是这样

衔接的非常好的情况下

那么

我们只有第一条指令

需要这三个部件

就是三块时间

未来每一块时间里

就会有一个

一条指令的执行结果输出

这样子的话

就相当于

我们水管里的水一样的

一旦水龙头打开

它就会源源不断的流下去

这就是所谓的

流水线的一种描述方法

所以我们

还用刚才那个例子来说

这个时候 因为

在每一次

取指令的部件

它都一直在忙碌中

所以 总线

也就在

全程在处于忙碌状态

那么

它们所需要的时间

假设这里每一个部件

所需要的时间

都是一个∆t的话

那么

除了第一条指令

需要三个∆t

之后呢

就每一个∆t

会有一条指令的

执行结果输出

也就是说

n-1个一条指令里

它都只需要一个∆t的时间

这样子的话

当n足够大的时候

我们可以去

对比一下这样两种方式

它们的效率

当n足够大的时候

这个

它们的比值

是会非常的明显的

这种比值

我们叫加速比

用S来表示

S就是表示

顺序执行所需要的时间

与并行执行所需要的时间

它们的比值

比如刚才我们那个例子

假设

顺序执行是3n个∆t

并行执行是

3∆t 加上n-1个 ∆t

那么它们的加速比

就是这样子的一个表达形式

所以

这样子的一个表达形式

如果在n足够大的时候

我们会发现

这个S是非常明显

所以

这就是我们并行流水

和顺序执行

它们之间的一个

比较起来

并行执行所显得的一个优势

当然

这个前提

是刚才

我们的那样子的一个假设

就是说

取指令部件取过来

正好分析指令分析完

取的第二条指令

正好就取过来

然后

执行指令部件

开始执行第一条指令的时候

分析指令部件

也就是说

正好开始分析

第一条指令被执行完

第二条指令的分析

正好就结束

也就是说能够

完全衔接的这么好

这样流水

才是不会断流的

但是实际上

有没有这种可能呢

那绝对不可能

对吧

我们每一条指令

所需要花的时间

都是不一样的

那么 所以

它的取指令

它的分析指令

它的执行指令

所需要的时间

也就是不一样的

况且如果我们

像刚才说

如果我们做的是加法运算

我们只是分析完了

发现加法

那么我们

还需要去取操作数

那么这个时候

取操作数

还是又变成另外一条路要走了

所以这个时候

肯定流水线就断流了

因此

像现在这样

一个简单的模式下

流水线是不可能不断流的

那么

今天计算机中的

流水线技术

是在这种基础上的

不断地完善

也就是说

刚才我们说

取指令部件

有可能是多个部件

在做取指令的工作

那么

你第一条取完了

第二条没分析完

或者是第三条指令

还没取过来

我们用另外一个取指令部件去做

去取也是可以的

再一个

包括分析指令部件

和执行指令部件

也都是有可能是多个

那么也就是说

你没工作完

我这个顶上去去做

这是一种

这是通过硬件的形式

来尽量的减少流水线的断流

那么另外

当然还有很多软件的技术

比如去分析这个程序

是不是因为是循环

那么

我事先取过来的

可能就作废了

等等这些

这些我们到后续

如果遇到这样的情况

我们会简单给大家解释一下

当然这些

更高级的

这种流水线控制技术

不是我们这门课

所应该涉及的内容

所以

如果有兴趣的话

大家可以继续

看别的一些资料或者课程

但是不管怎么样

这种思想

是今天流水线技术的

一个雏形阶段

也就是说

这个我们今天的流水线

也就是在这样的思路的基础上

逐步的完善它的功能

逐步的优化它的技术

最后达到

今天的这样子的一个程度

这是我们指令的

两种不同的执行方式

当然今天的CPU

都是采用的是

流水线的工作方式了

好 第二个问题

我们来解释介绍一下

冯•诺依曼计算机

冯•诺依曼这个人

大家应该都知道了

是我们计算机的

最著名的两大奠基者之一 对吧

我们计算机的理论基础

它的奠基者是图灵

实际上

图灵的计算机结构

应该说

更早于冯•诺依曼结构

但是 因为

他当时做的是一些

加本保密的军方的一些项目

所以

它一直无法公开

但是 最后

我们今天用的计算机

都是在

冯•诺依曼这个计算机体系的

基础上

发展到今天的

也就是说

冯•诺依曼计算机

虽然它诞生于

半个多世纪前

就将近七十年之前了

但是

今天我们计算机

当然

技术已经发展得非常的快

这是我们上个世纪

发展的最快的一项技术

那么

今天的计算机

跟当年冯•诺依曼计算机

从性能

从它的功能

都完全不可同日而语

但是 无论如何

今天的主流计算机体系结构

特别是微型计算机的体系结构

依然是

冯•诺依曼的体系结构

所以我们现在

还是要说一下

冯•诺依曼计算机

也就是

我们今天微型计算机的

基本工作原理

冯•诺依曼计算机的

基本工作原理

我们可以用一句话

简单的描述

概括性的描述

叫存储程序原理

存储程序原理

非常朴素的一个描述

就是把

我们要完成的一个工作

编写成程序

然后按照一定的顺序

存放在内存中

存放在存储器中

然后执行的时候

再一条一条的拿出来执行

这个我们今天

已经想当然的认为

它本来就是应该这样子的

但是之前

问题是在这之前

它不是这样的

所以这个原理

就是冯?诺依曼所提出

和奠基的

那么

冯•诺依曼计算机的体系结构

就从硬件的体系结构上

我们说它是以运算器为核心

也就是说

冯•诺依曼

他首次把这个计算机

描述成了由五个部分来构成

这个我们后边

马上再会给大家讲到

我们下边

先来说一下

冯•诺依曼的存储程序原理

也就是

计算机的一般工作过程

我们刚才说了

我们要让计算机

帮我们完成某一项工作

我们必须要编写成程序

程序实际上就是

指令的序列

假设我们现在

已经不考虑

它不管用哪种语言

在硬盘里放

反正我们已经到内存了

所以现在就是这样的形式

一条一条的指令

按照这样的顺序存下去

好了

到了这样以后

我们就开始

要去执行这个程序了

执行这个程序的时候

我们现在要提出来一个名词

叫 程序计数器

Programme Counter

这个东西

非常的重要

它是一个指挥棒

也就是说

我们把这个程序

装入到内存之后

这样子的一个程序计数器

它属于一个寄存器

它里边的内容

就是表示了

我们现在整个程序中

第一条指令

在内存中的存放地址

也就是说

程序计数器

会指向我们程序的

第一条指令

因为

它指向了第一条指令

所以

下边在取指令的时候

就会到这里去取了

所以

下边CPU

就会把这一条指令取过来

然后按照

我们刚才所描述的过程

去分析这条指令

然后 发现

如果需要的话

我们会到内存里

再去取操作的对象

然后去执行指令

最后把结果送回到内存中

这条指令执行完了以后

我们当然就会去取第二条指令

这就是我们总体的

一个工作过程

好 为了说明

这样一个工作过程

我们下边用一个例子

来说一下

也就是说我们来用

读取一条指令的过程

来描述一下冯•诺依曼计算机

它的工作原理

也就是它的存储程序原理

假设这是

我们的程序在内存里

是这么样放的

现在我们要读取这一条

用十六进制表示

为B1H的这条指令

那么

它的工作过程是什么样呢?

我们刚才说到

首先我们程序计数器PC里边

会是要读取的这条指令的地址

所以

这条指令的地址

会已经在程序计数器PC里了

假设这条地址

是这么样一个值的话

那么

第一步

首先PC会把这个地址

送到它内部的一个寄存器

我们叫指令地址

叫地址寄存器

这个地址寄存器

是不对程序员开放的

所以我们程序员是感觉不到的

送到这的目的是什么呢?

送到这的目的是

它就相当于

把它自己腾出来

腾出来干什么?

做加一的运算

就是说它自己会修改这个值

当然这个加一

不一定就真正是数字的一

它可能是加一加二

因为这要取决于

这条指令

本身占了多少个内存单元

那么为什么加一呢?

就是要去

为取下一条指令

做好准备

也就是说

它已经把这个地址

已经有了 也就是说

准备要取 现在

这个椭圆线括起来的这个指令

那么现在

它修改完了以后

就准备去取下一个

那么

现在这个地址叫

1000FH这个地址

就通过地址寄存器

送上地址总线

指向了内存这个单元

到了内存这个单元以后

就相当于

我们要到别人家里

去借东西一样

我们走到人家家门口了

我们至少要敲门

那么这个敲门

对于内存来讲

CPU就要去发出一个

读取这个数据的命令

在这个命令的控制下

好 这一条指令

就会被拿出来了

就读出来了

读出来

因为指令

它不是地址

对吧

它所以它会通过数据线

然后

送到它内部的数据寄存器里

然后

再去通过

如果它是指令的话

这就去做去送去译码

这就是这条指令

它的一个

读取一条指令

它的一个大致的过程

这个过程

我们也可以用文字

来描述成这样

也就是说 首先

我们由程序计数器

PC

产生的地址

把这个地址

送到了内存的这个门口

送到了地址寄存器

然后由地址寄存器

把这个地址送到内存门口

当然程序计数器

它自己就去做加一的运算

也就是说它自己

去修改地址指针

准备为下一条指令的读取

做好准备

那么

地址送到了内存的门口

然后下边呢?

CPU就会发出

如果是读指令的话

就会去发出读控制命令

然后在这个命令的控制下

这条指令

就会被读出来

如果是数据呢?

就直接去运算了

如果是指令呢?

那么读出来的

就要去通过指令译码

或者说分析指令

看看它到底是干什么工作的

这个过程的一个描述

就是冯•诺依曼原理的

一个描述的过程

也就是说冯•诺依曼计算机

它执行一条指令

大致的过程

去读取一条指令

大致的过程就是这样

因为我们

把指令读取过来了

下边我们就去分析

分析那么CPU

肚子里自己做到了

分析完了以后

如果需要的话

再去读取操作数

读操作数的过程

跟这个是一样的

只是

不一定

它那个操作数的地址

不是由程序计数器给出来的

而是由其他的方法给出来的

这个我们后面学指令的时候

大家就知道

但是

它的总的

读取数据的过程也是这样

存放结果的过程

也是这样子

只是方向不一样而已

所以这个就是

冯·诺依曼计算机的基本原理

那么

刚才我们说到

冯·诺依曼在硬件体系结构上

它是以运算器为核心的

那么

它首次把计算机

在硬件上的部件

认为它是由五个部分来组成的

也就是由

运算器

控制器

存储器

输入设备和输出设备

在这里

这个运算器和控制器

实际上就是CPU内部的东西

就是CPU的组成部分之一

存储器

我们说在这样一个体系结构里

实际上我们特指的是内存储器

那么

输入设备

像比如我们今天的

键盘 鼠标

输出设备

比如我们今天的

显示器

它们和CPU之间

实际上不是这样

直接通过通道去连接的

它们之间一定要有

输入或者输出接口

这个我们在上一讲

其实已经给大家介绍过了

这个就是

冯•诺依曼的结构

冯•诺依曼体系

我们说从46年开始提出来

一直到今天

都七十年了

发展的这么快

但是今天的计算机

依然还是这样处理的

它的主流计算机的体系

还是这样子的一个体系

特别是它的存储原理

依然是冯•诺依曼的原理

但是

这个冯•诺依曼的

这个体系结构

有一些不好的地方

或者说它不足的地方

随着这个技术的发展

越来越发现了它的一些不足

比如

我们刚才讲到

那个指令的执行过程

我们说

取指令

分析指令

执行指令

那么 如果分析完了

需要去取操作数

刚才那个就没有办法了

我们必须要等着

要把数据取过来

而且取数据也好

取指令也好

在传统冯•诺依曼结构里

它都是共用为限

所以

就这一条路

我又要取指令又要取数据

那大家不可能同时做

只能分时做

所以

这个流水线

是不可能不断流的

因此

在传统的冯•诺依曼结构里

它的特点

就是都是程序存储

共享数据

而且是顺序执行的

对于我们今天

就越来越大型的

这种处理数据的需求

传统冯•诺依曼结构

是很难满足的

所以

传统冯•诺依曼结构

它存在这样的一些不足

就是说首先

CPU与存储器之间

它有大量的数据要交互

又去读取指令

又去读取数据

而且每一次都是

我们现去拿指令

现去拿数据

这样子的话

不仅浪费时间

而且对内存要求很高

另外

它对这个通道的这个要求

也就是总线的

这个性能的要求也很高

你像我要去马上要

我这边立等着数据过来

你这边总线

如果很慢的话

我就浪费时间了

我希望你是越快越好 对吧

这是它的第一个步骤

第二个

就是它的程序

都是按顺序执行的

所以

对于大型的任务

它要求事先的这个

执行的算法都要很明确

但是 在今天这个

计算机的功能越来越强

我们要解决的问题

也就越来越庞大

在一些大型问题中间

大型的任务中间

要事先把算法

设计的那么明确

实际上是很有难度的

所以这样的话

用传统冯•诺依曼结构

就实现起来

就非常困难

再一个

是以运算器为核心

它输入输出

都需要通过运算器

这样的话

我们就变成了一个什么情况呢?

变成

我们所需要的

输入的数据

因为我们CPU里

只有寄存器

能够存放数据的空间很小

所以

我们最后处理完了

我们结果一定要到内存

但是

如果要把这个数据输出去呢?

我们必须要把

内存里拿出来

再通过CPU出去

这样也就构成了一个

CPU到内存到接口

这样子的一个三角的关系

而这样的一个三角的关系

必须通过软件去实现

那么

只要需要和软件实现

那么这个速度不会有太快

因为软件和硬件比起来

硬件的速度要快得多

在我们今天

很多高速的外部设备中

我们不能够接收

这样用软件

来实现这样输入输出控制的

这样一个需求

我们希望

能够用硬件来直接到内存里去读取

这样子的话

速度会快的很多

这个我们到后面第六章的时候

我们还会

再会给大家

介绍这样的一个内容

所以这种也是传统冯•诺依曼

以运算器为核心

所不容易解决的

或者说它比较困难的一点

再一个

由程序计数器PC

来控制它的执行顺序

所以

很难真正的做到

这样的并行处理

因为PC只有一个

因为这样子的

等等这样一系列问题

所以今天我们的计算机

我们现在不说大型机

我们就说微型计算机

也不完全是这种传统的

冯•诺依曼结构

也是在冯•诺依曼结构基础上的

一种改进结构

所以我们可以称它为

改进型的冯•诺依曼结构

但是这个人

他是因为哈佛来提出

所以它也叫哈佛结构

这个哈佛结构的

我们用这样一个简单的图来描述

这个哈佛结构

我们用这个图

可以比较清楚的

可以看出来

也就是说

它的程序

就是说它的指令

和它运算的数据

是分开存储的

指令是有

指令专用的通道

数据有数据专用的通道

这样子的话

我们就

不再需要

不再是会因为

我这边指令分析完了

我要才知道

我要去取数据

我又立等去拿数据

这样子的话

就会浪费很多时间

所以这样子的方式

就是CPU和存储器之间的

它们都有这种

指令和数据

都有双通道

大家可以并行的来处理

所以 这种

我们有时候也称为

以数据为中心

或者是以存储器为中心

因为数据在存储器里

好 今天我们就简单的

跟大家解释一下

有关微型计算机的

一般工作过程

或者说

冯•诺依曼计算机的

基本工作过程

总结一下

冯•诺依曼计算机的

基本工作原理

就是存储程序原理

这个原理

依然是今天计算机

它的主流原理

另外

是冯•诺依曼的体系结构

也就是它在硬件上

是以运算器为核心的

而今天在

计算机

在硬件结构上

已经对这个结构

进行了改动

我们不再完全是以

运算器为核心

我们有时候

或者说

我们总体上来讲

我们也认为

它是以数据为核心

或者说数据驱动

因为数据都在内存里

所以我们也称它为

以存储器为核心的

这样一种结构

好这一讲我们就到这

微机原理与接口技术课程列表:

第1周 微型计算机基础概论

-第1讲 关于本课程

--关于本课程

-第2讲 微型计算机系统

--微机系统_01

--微机系统_02

-第3讲 微型计算机一般工作过程

--微机的一般工作过程_01

--微机的一般工作过程_02

-第4讲 数制与编码

--常用计数制及其转换

--计算机中的编码

-第5讲 计算机中数的表示与运算

--数的表示

--符号数的表示

--数的表示与运算

-第6讲 基本逻辑运算与逻辑电路

--基本逻辑运算与逻辑门

--常用逻辑运算及电路

-第7讲 本周小结

--本周小结

-第1周 微型计算机基础概论--第一周单元测验

第2周 8088微处理器

-第8讲 8088微处理器

--8088 CPU_01

--8088 CPU_02

-第9讲 8088 CPU主要引线及机构

--8088 CPU主要引线

--8088 CPU内部结构

--8088 CPU内部寄存器

-第2周 8088微处理器--第二周单元测验

第3周 实模式存储器寻址与总线

-第10讲 实模式存储器寻址

--实模式存储器寻址_01

--实模式存储器寻址_02

--实模式存储器寻址_03

-第11讲 8088系统总线

--8088系统总线

-第12讲 微处理器小结

--微处理器小结

-单元测验--作业

第4周 数据传送指令

-第13讲 指令概述

--指令概述

-第14讲 寻址方式

--寻址方式

-第15讲 通用数据传送指令

--通用数据传送指令_01

--通用数据传送指令_02

--通用数据传送指令_03

-第16讲 地址传送指令

--地址传送指令

-第17讲 输入输出指令

--输入输出指令

-第4周 数据传送指令--第四周单元测验

第5周 算术运算、逻辑运算与移位操作指令

-第18讲 算术运算指令

--加法运算指令

--减法指令

--乘除运算指令

-第19讲 逻辑运算指令

--逻辑运算指令_01

--逻辑运算指令_02

-第20讲 移位操作指令

--移位操作指令

-第5周 算术运算、逻辑运算与移位操作指令--第五周单元测验

第6周 串操作指令

-第21讲 关于串操作指令的说明

--串操作指令说明

-第22讲 串传送与串比较

--串传送与串比较

-第23讲 串扫描指令

--串扫描指令

-第24讲 串装入与串存储指令

--串装入与串存储指令

-第六周单元测验--作业

第7周 程序与处理器控制

-第25讲 程序控制指令说明

--程序控制类指令说明

-第26讲 转移类指令

--无条件转移指令

--条件转移指令

-第27讲 循环控制指令

--循环控制指令

-第28讲 过程调用指令

--过程调用指令

-第29讲 中断指令

--中断指令

-第30讲 处理器控制指令

--处理器控制指令

-第31讲 指令系统小结

--指令系统小结

-第7周 程序与处理器控制--第七周单元测验

-第7周 程序与处理器控制--第七周作业

第8周 汇编语言程序设计

-第32讲 汇编语言源程序

-- 汇编语言源程序_01

-- 汇编语言源程序_02

-第33讲 伪指令

--数据定义伪指令

--符号与段定义伪指令

--汇编语言源程序结构例

--其它伪指令

-第34讲 系统功能调用

--系统功能调用_01

--系统功能调用_02

-第35讲 汇编语言程序设计示例详解

--程序设计示例1

--汇编语言程序设计示例_02

-第36讲 汇编语言程序设计小结

--汇编语言程序设计小结

-第8周 汇编语言程序设计--第八周单元测验

-第8周 汇编语言程序设计--第八周作业

第9周 半导体存储器

-第37讲 半导体存储器概述

--半导体存储器概述

-第38讲 内存单元编址

--存储单元编址

-第39讲 随机存取存储器RAM

-- RAM_01

--RAM_02

-第40讲 只读存储器ROM

--ROM_01

--ROM_02

-第九周单元测验--作业

第10周 半导体存储器扩展技术

-第41讲 半导体存储器扩展

--半导体存储器扩展_1

--存储器扩展_2

--半导体存储器扩展_3

-第42讲 半导体存储器小结

--半导体存储器小结

-第十周单元测验--作业

-第十周作业--作业

第11周 输入输出与中断技术

-第43讲 基本I/O接口

--I/O系统概述_01

--I/O系统概述_02

-第44讲 简单接口芯片

--简单接口芯片

-第45讲 基本输入输出方法

--基本I/O方法

-第46讲 简单I/O控制系统设计

--简单I/O控制系统设计1

--简单I/O控制系统设计2

-第47讲 中断技术

--中断技术1

--中断技术2

-第48讲 输入输出与中断技术小结

--本周小结

-第十一周单元测验--作业

第12周 可编程并行数字接口

-第49讲 可编程定时计数器

--可编程定时计数器8253_01

--可编程定时计数器8253_02

--可编程定时计数器8253_03

-第50讲 可编程并行接口

--可编程并接口8255_01

--可编程并行接口8255_02

--可编程并行接口8255_03

-第51讲 可编程接口小结

--本周小结_01

--本周小结_02

-第十二周单元测验

第13周 模拟量的输入输出

-第52讲 模拟量的输入输出

--模拟量的输入输出

-第53讲 D/A转换器

--D/A转换器_01

--D/A转换器_02

-第54讲 A/D转换器

-- A/D转换器_01

--A/D转换器_02

-第十三周单元测验--作业

第14周 系统综合设计示例详解

-第55讲 I/O接口系统综合设计示例详解I

--综合设计示例详解I_01

--综合设计示例详解I_02

-第56讲 综合设计示例详解II

--综合设计示例详解II_01

--综合设计示例详解II_02

-第57讲 结束语

--结束语

微机的一般工作过程_02笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。