写在前面:
- 图全都要动手画一遍
1.计算机组成
2.计算机发展
3.计算机硬件
1.冯诺依曼计算机的结构(以运算器为中心)
- 基于存储结构思想所设计的各类计算机为冯诺依曼计算机
- 冯诺依曼计算机主要特点
- 构成程序的指令和数据均采用二进制表示。
- 指令和数据存放在存储器中,按地址访问。
- 指令在存储器中按顺序存放。一般情况下,指令是顺序执行的。
- 指令由操作码和地址码组成:
- 操作码用来表示执行何种操作。
- 地址码用来表示操作数在存储器中的位置。
- 机器以运算器为中心,输入/输出设备与存储器间的数据传送通过运算器完成。
- 计算机硬件由运算器、控制器、存储器、输入设备/输出设备5大部件组成。
2.现代计算机的结构(以存储器为中心)
- 存储器
- 主存储器:用于存放程序和数据,可以直接与CPU交换信息,又称为内存储器,简称内存或主存。
- 辅助存储器:用于帮助主存存储更多的信息,辅存中的信息必须调入主存后,才能被CPU访问,又称外部存储器,简称外存或辅存。
- 运算器:核心为算数逻辑单元ALU,主要功能如下
- 算数运算:加、减、乘、除
- 逻辑运算:与、或、非、异或等
- 控制器:核心为控制单元CU,主要功能如下:
- 用于解释存储器中的指令,并发出各种操作命令来执行指令。
- l/0设备也受CU控制,用于完成相应的输入/输出操作。
4.计算机软件
1.计算机软件的分类
2.计算机语言的发展
- 用机器语言编程
- 使用机器指令的二进制编码编写程序。
- 计算机可以直接识别和执行用机器语言编写的程序(机器语信程序),因此又称为目标程序。
- 缺点:可读性差、易出错、难排错
- 用汇编语言编程
- 用表示机器指令的特殊符号(汇编语言)编写程序。
- 计算机不能识别和执行用汇编语言编写的程序(汇编语言程序),需要将其通过汇编器(汇编程序)翻译成机器语言程序。
- 用高级语言编程
- 用规定好的一套基本符号和编程规则编写程序。
- 计算机不能识别和执行用高级语言编写的程序(高级语言程序),需要将其通过编译器(编译程序)翻译成汇编语言或机器语言。
- 随着硬件和软件的不断发展,人们又创造出了一类程序,称为操作系统(属于系统软件)。
- 操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些基本操作。
- 操作系统负责控制并管理计算机系统全部硬件资源(例如CPU、 内存和外部设备)和软件资源(例如编译程
序、应用程序等)。
- 随着计算机应用领域的逐渐扩大,还相应地出现了其他各类系统软件(例如数据库管理系统、网络系统等)
以及多种多样应用软件。 - 随着软件的进一步发展, 将会出现更高级的计算机语言,其发展方向是标准化、积木化、产品化以及智能化,
最终向自然语言发展,它们能够自动生成程序。
5.计算机系统的层次结构
1.计算机系统的分层思想
- 计算机是一个非常复杂的系统,为了简化对计算机系统的研究和实现,可采用分层思想将计算机系统划分成一
个层次结构的系统。- 系统中的每一层都向其上层提供一个简洁和抽象的接口。
- 每一层的实现细节对其上层而言都是“看不见”的,也就是透明的。
- 计算机解决问题的过程就是层次结构中的各层逐层转换的过程。
- 计算机系统的分层方式,目前并没有统一的标准,本课程介绍一种将计算机系统划分成六个抽象层的层次结构。
第1层:计算机硬件系统的底层,由逻辑门、寄存器等逻辑电路组成。
第2层:将一条机器指令编写成一个微程序。每个微程序包含若干条微指令,每条微指令对应一条或多条微操作。
第3层:定义了某计算机可执行的所有机器指令的集合,规定了对于每条机器指令计算机应执行什么操作,所处理的操作数应存放的位置以及操作数的类型等。
第4层:设计人员不仅要对操作系统的设计理论有比较深入的理解,还需要掌握具体机器的指令集和汇编语言以及适于编写操作系统软件的高级语言。
第5层:使用汇编语言进行编程。由于汇编语言的每条语句都与机器语言的某条语句对应,因此仍要求程序员对实际机器的内部组成和指令系统非常熟悉。
第6层:使用与机器无关的高级语言编程,无需掌握机器的底层技术细节,只要掌握某种高级语言的语法规则以及算法和数据结构等方面的知识进行编程。
2.软件和硬件的逻辑功能等价性
- 在特定条件下,用软件实现的逻辑功能也可以通过硬件电路来实现,反之亦然。
- 对于一些特定的计算或控制任务,可以选择将其使用软件编程来实现,也可以选择设计专用硬件电路来实现,而两者的结果将在功能上等效。
- 软件和硬件的逻辑功能等价性是计算机科学中的一个重要概念,也是计算机体系结构和工程中的基本原则之一。
- 当选择在软件层面实现某些逻辑功能时, 这通常意味着使用通用处理器(例如CPU)来执行程序;
- 而当选择在硬件层面实现这些逻辑功能时,这通常意味着使用专用的硬件电路,例如现场可编程门阵列FPGA或专用集成电路ASIC技术。
6.基本工作原理
本节课相当于课程全部章节的概述
1.计算机硬件组成的细化
1.运算器的相关寄存器
第1步
第2步
ALU 加 减 乘 除 ACC(累加器) 被加数
和
被减数
差
乘积高位 被除数
余数
MQ(乘商寄存器) 乘数
乘积低位
商 X(操作数寄存器) 加数 减数 被乘数 除数
前提1:
- M表示主存储器中某个存储单元的地址,(M)表示地址为M的存储单元中的内容
- ACC表示累加器,(ACC)表示累加器中的内容
- MQ表示乘商寄存器,(MQ)表示乘商寄存器中的内容
- X表示操作数寄存器,(X)表示操作数寄存器中的内容
前提2:
假设累加器ACC中已存有前一时刻的运算结果,并作为下述运算中的一个操作数。
加法操作过程:
(M)-> X 取出存放在主存地址为M的存储单元中的内容(M)(加数)
送到操作数寄存器X中
(ACC)+(X)->ACC 将累加器ACC中的内容(ACC) (被加数)与操作数寄存器X中的内容(X) (加数)相加
结果(和)保留在累加器ACC中
减法操作过程:
(M)-> X 取出存放在主存地址为M的存储单元中的内容(M)(减数)
送到操作数寄存器X中
(ACC)-(X)->ACC 将累加器ACC中的内容(ACC) (被减数)与操作数寄存器X中的内容(X) (减数)相减
结果(差)保留在累加器ACC中乘法操作过程:
(M)-> MQ 取出存放在主存地址为M的存储单元中的内容(M)(乘数)
送到乘商寄存器MQ中
(ACC)->X 将累加器ACC中的内容(ACC) (被乘数)
送到操作数寄存器X中
(X)x(MQ)->ACC//MQ 将操作数寄存器X中的内容(X) (被乘数)与乘商寄存器MQ中的内容(MQ) (乘数)相乘
结果(积)的高位保留在累加器ACC中,低位保留在乘商寄存器MQ中除法操作过程:
(M)-> X 取出存放在主存地址为M的存储单元中的内容(M)(除数)
送到操作数寄存器X中
(ACC)->X 将累加器ACC中的内容(ACC) (被除数)除以操作数寄存器X中的内容(X)(除数),
结果(商)保留在乘商寄存器MQ中,余数保留在累加器ACC中
共同点:取出存放在主存储器中地址为M的存储单元中的内容(M),送到某个寄存器中
2.主存储器的组件
- 存储体由很多个存储单元组成
- 每个存储单元由若干个存储元件组成
- 每个存储元件能存储一位二进制数“0”或“1”
- 一个存储单元可存储一串二进制信息,称这串二进制信息为一个存储字,这串二进制信息的位数称为存储字长(可以是8位、16位或32位等)。
如何找到存储体中的某个存储单元进而实现对其进行访问(读出或写入) ?
- 给每个存储单元都赋予一个编号,称为存储单元的地址。
- 存储器地址寄存器MAR,用来存放欲访问的存储单元的地址。
- MAR的位数(长度)(二进制),决定了存储单元的数量。
若存储字长为16位,则存储体的总容量为多少?
- 存储器数据寄存器MDR,用来存放从存储体的某个存储单元取出的信息或者准备往某个存储单元存入的信息。
- MDR的位数(长度)(二进制),与存储字长相等。
主存(内存)的这种按存储单元的地址来实现对其写入和读取的存取操作,需要在CPU中的控制器的控制下进行。
3.控制器相关寄存器
4.细化框图
5.控制器简单介绍
- 控制器是计算机的神经中枢, 由它指挥各部件自动、协调地工作。
- 控制从主存中读取一条指令,称为取指过程(阶段)。
- 对指令进行分析,指出该指令要完成何种操作,并按寻址特征指明操作数的地址,称为分析过程(阶段)。
- 根据指令的操作码和操作数所在的地址完成某种操作,称为执行过程(阶段)。
- 程序计数器PC用来存放当前欲执行指令的地址
- PC与MAR之间有一条直接通路。
- PC自动形成下一条指令的地址(“自动加1"功能)
- 指令寄存器IR用来存放当前的指令
- IR的内容来自MDR。
- IR中的操作码(用OP(IR)表示) 会送至CU (用OP(IR) →CU表示) ,用来分析指令。
- IR中的地址码(用Ad(IR)表示) 作为操作数的地址送至MAR (用Ad(IR) →MAR表示),用来从内存中取操作数。
- 控制单元CU用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。
6.机器指令简介
举例说明:
给出计算axb+c的机器指令程序,填写注释
答案: