【计算机组成原理】第一篇 概论 第一章 计算机系统概论


纯干货、无废话、很完美。

内容:计算机系统简介、计算机的基本组成、计算机硬件的主要技术指标

干货开始

1.1 计算机系统简介
一、计算机的软硬件概念

计算机系统由“硬件”和“软件”两大部分组成

硬件:计算机的实体部分,它是由看得见摸得着的各种电子元器件,各类光、电、机设备的事物组成,如主机、外部设备等

软件:看不见摸不着,由人们事先编制的具有各类特殊功能的程序组成

计算机的性能的好坏取决于“软”、“硬”件功能的总和

计算机的软件通常又可分为两大类:系统软件和应用软件

系统软件:又称为系统程序,主要用来管理整个计算机系统,监事服务,使系统资源得到合理调用,高效运行。

系统软件包括:标准程序库、语言处理程序(如将汇编语言翻译成机器语言的汇编程序或将高级语言翻译成机器语言的编译程序)、操作系统(如批处理系统、分时系统、实时系统)、服务程序(如诊断程序、调试程序、连接程序等)、数据库管理系统、网络软件等。

应用软件:又称为应用程序,它是用户根据任务需要所编制的各种程序,如科学计算程序、数据处理程序、过程控制程序、事务管理程序等

二、计算机系统的层次结构

计算机的解题过程:通常由用户用高级语言编写程序(称为源程序),然后将它和数据一起送入计算机内,再由计算机将其翻译成机器能识别的机器语言程序(称为目标程序),机器自动运行该机器语言程序,并将计算结果输出

四级层次结构的计算机系统:

✔第三层 虚拟机器(高级语言机器) 用编译程序翻译成汇编语言程序或其他中间语言程序

✔第二层 虚拟机器(汇编语言机器) 用汇编程序翻译成机器语言程序

✔第一层 传统机器(机器语言机器) 用微程序解释机器指令

✔第零层 微程序机器(微指令系统) 由硬件直接执行微指令

多级层次结构的计算机系统:

虚拟机器(高级语言机器) 用编译程序翻译成汇编语言程序

虚拟机器(汇编语言机器) 用汇编程序翻译成机器语言程序

虚拟机器(操作系统机器) 用机器语言解释操作系统

传统机器(机器语言机器) 用微程序解释机器指令

微程序机器(微指令系统) 由硬件直接执行微指令

三、计算机组成和计算机体系结构

计算机体系结构:指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性

计算机系统的属性:通常指用机器语言编程的程序员(也包括汇编语言程序设计者和汇编程序设计者)所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等,大都属于抽象的属性。

由于计算机系统具有多级层次结构,因此,站在不同层次上编程的程序员所看到的计算机属性也是各不相同的。

计算机组成:指如何实现计算机体系结果所体现的属性,它包含了许多对程序员来说是透明的硬件细节。

当两台机器指令系统相同时,只能认为他们具有相同的结构。至于这两台机器如何实现其指令的功能,完全可以不同,则它们的组成方式是不同的。

区分计算机结构与计算机组成这两个概念是是十分重要的。

1.2 计算机的基本组成
一、冯 · 诺依曼计算机的特点

冯 · 诺依曼机特点:

✔计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成

✔指令和数据以同等地位存放于存储器内,并可按地址寻访。

✔指令和数据均用二进制数表示

✔指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置

✔指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序

✔机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。

二、计算机的硬件框图

典型的冯 · 诺依曼计算机是以运算器为中心的。

现代的计算机已转化为以存储器为中心的。

计算机的五大部件:

运算器 用来完成算术和逻辑运算,并将运算的中间结果暂存在运算器内

存储器 用来存放数据和程序

控制器 用来控制、指挥程序和数据的输入、运行以及处理运算结果

输入设备 用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。

输出设备 可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。

*处理器(Central Processing Unit,CPU):由于运算器和控制器在逻辑关系和电路结果上联系十分紧密,尤其在大规模集成电路制作工艺出现后,这两大部件往往集成在同一芯片上,因此,通常将它们合起来统称为*处理器

I/O设备(Input/Output Equipment):把输入设备和输出设备简称为 I/O设备

现代计算机可认为由三大部分组成:CPU、I/O设备及主存储器(Main Memory,MM)

主机:CPU与主存储器合起来又可称为主机

外部设备:I/O设备又可称为外部设备

CPU的核心部件是 ALU 和 CU

算术逻辑单元(Arithmetic Logic Unit,ALU):简称算逻部件,用来完成算术逻辑运算。

控制单元(Control Unit,CU):用来解释存储器中的指令,并发出各种操作命令来执行指令。

计算机有条不紊地自动工作都是在控制器统一指挥下完成的

三、计算机的工作步骤

用计算机解决一个实际问题通常包含两大步骤:上机前的各种准备、上机运行

1)上机前的各种准备

上机前的各种准备工作可归纳为:建立数学模型、确定计算方法和编制解题

建立数学模型:有许多科技问题很难直接用物理模型来模拟被研究对象的变化规律,如地球大气环流等。不过,通过大量的实验和分析,总能找到一系列反应研究对象变化规律的数学方程组。通常,将这类方程组称为被研究对象变化规律的数学模型。

确定计算方法:由于数学模型中的数学方程式往往是很复杂的,欲将其变成适合计算机的加、减、乘、除四则运算,还必须确定对应的计算方法

编制解题程序:程序是适合于机器运算的全部步骤,编制解题程序就是将运算步骤用一一对应的机器指令描述

2)上机运行

说上机运行前得先说说几个部件

· 主存储器(简称主存或内存):包含存储体 、各种逻辑部件及控制电路等。

存储体:存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码“0”或“1”。

可见,一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。

每一个存储单元都需要有一个地址编号,称为存储单元的地址号

按地址存取方式:主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出)。这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)。

为了实现按地址访问的方式,主存中还必须配置两个寄存器 MAR 和 MDR。

MAR(Memory Address Register):存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数

MDR(Memory Data Register):存储器数据寄存器,用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等。

· 运算器:运算去最少包括3个寄存器(现代计算机内部往往设有通用寄存器组)和一个算术逻辑单元(ALU)。

三个寄存器分别是:ACC、MQ、X

ACC(Accumulator):累加器

MQ(Multiplier-Quotient Register):乘商寄存器

X:操作数寄存器

加法操作过程:

[M] ->X

[ACC]+[X]->ACC

减法操作过程:

[M]->X

[ACC]-[X]->ACC

乘法操作过程:

[M]->MQ

[ACC]->X

0->ACC

[X]*[MQ]->ACC//MQ

除法操作过程:

[M]->X

[ACC]/[X]->[MQ]

余数R在ACC中

· 控制器

控制器:控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。

通常所说的完成一条指令操作的取指、分析和执行三个阶段。

取指过程(也称取指阶段):控制器首先要命令存储器读出一条指令,称为取指过程。

分析过程(也称分析阶段):控制器要对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程

执行过程(也称执行阶段):根据操作数所在的地址以及指令的操作码完成某种操作,称为执行过程。

控制器由程序计数器(Program Counter,PC)、指令寄存器(Instruction Register,IR)以及控制单元(CU)组成。

PC:用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址。

IR:用来存放当前的指令,IR的内容来自主存的MDR。

CU:用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。

I/O

I/O子系统包括各种 I/O 设备及其相应的接口。

每一种 I/O 设备都由 I/O 接口与主机联系,它接受 CU 发出的各种控制命令,并完成相应的操作

1.3 计算机硬件的主要技术指标
衡量一台计算机性能的优劣势根据多项技术指标综合确定的。既包含硬件的各种性能指标,又包含软件的各种功能。

一、机器字长

机器字长:指CPU 一次能处理数据的位数,通常与 CPU 的寄存器位数有关。

字长越长,数的表示范围越大,精度也越高。

二、存储容量

存储器的容量应该包括主存容量和辅存容量。即 存储容量 = 存储单元个数 * 存储字长

MAR 的位数反映了存储单元

三、运算速度

计算机的运算速度与许多因素有关,如机器的主频、执行什么样的操作、主存本身的速度(主存速度快,取指、取数就快)等都有关。

怎么样,都记住了吗?


上一篇:动手深度学习11- 多层感知机pytorch简洁实现


下一篇:Python深度学习之搭建小型卷积神经网络(Kaggle网站Dogs-vs-Cats数据集)