开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情
1、写在前面
大家好,今天文章的内容是:
- 计算机系统概论
2、内容
2.1、计算机系统简介
📗软件与硬件
- 计算机硬件
计算机硬件指的是计算机系统中,由电子、机械和光电元件等组成的各种物理装置的总称。硬件(主机和外部设备等)为计算机软件的运行提供了物质基础。简单的说,硬件的主要功能是输入信息并存储程序和数据,以及计算数据并保存或输出运算结果。
- 计算机软件
计算机软件指的是计算机系统中具有各类特殊功能的程序。通常将这些程序存放在计算机的主存或辅存内。软件是用户与硬件之间的接口界面,一般通过软件与计算机进行交流,软件是计算机系统设计的重要依据。
- 概括的讲:
计算机性能的好坏取决于 “软” “硬” 件功能的总和。
📘计算机系统的层次结构
现代计算机的解题过程如下:
- 但是,最早的程序员编写的代码都是
0和1,也就是机器语言程序。 - 像这种机器语言程序是可以直接在计算机上直接运行。
- 直接运行机器语言的计算机我们称之为实际机器(如下图所示)
- 由于程序员必须通过编写二进制代码来设计程序进而操作计算机,这样操作的难度较大,也容易出错;
- 后来,就衍生出了汇编语言;
- 汇编语言指的是符号式的程序设计语言,比如用
ADD来表示加法操作,而不是一串二进制代码; - 为了让计算机认识由汇编语言设计出的程序,必须要有一个翻译过程;
- 也就是将汇编语言程序转化为机器语言程序,使计算机能直接执行;
- 而这,就是计算机系统的第二级层次结构:具有翻译功能的汇编语言机器;
- 我们将这种机器称为虚拟机器。(如下图所示)
- 由于汇编语言从本质上仍然是面向实际机器的程序语言;
- 这要求程序员必须对实际机器的内部组成和指令系统非常熟悉,才能使用汇编语言编写程序;
- 另外,汇编语言不够通用,也就是每台机器都必须有一种与其对应的汇编语言;
- 上述的难题,都将解决方法指向了一个方面:需要有高级程序设计语言;
- 因此,高级语言逐渐被开发出来了(比如
C、BASIC、Pascal等); - 这样,就构成了计算机系统的第三级层次结构:高级语言机器(如下所示);
- 将高级语言程序翻译成机器语言程序的软件,我们称之为翻译程序,其主要包括编译程序和解释程序;
- 程序的最初形式称为源程序或者源代码;
- 翻译后的形式被称为目标程序或者目标代码;
- 任何一种高级程序都有一个与之对应的编译器来完成对源程序的翻译;
事实上,常见的计算机系统层次结构分为五级(如下所示);
- 可以看到,与之前不同的是,多了操作系统机器和微程序机器;
- 操作系统(OS)是用于管理计算机硬件与软件资源的计算机程序;
- 刚开始发展的操作系统属于简单控制循环体,后来逐步演变成分布式操作系统;
- 在计算机系统中,微程序设计技术是利用软件方法来设计硬件的一门技术 ;
- 优点在于:规整性、灵活性、可维护性;
- 微程序机器将每一条机器指令翻译成一组微指令,即构成一个微程序;
- 一条机器指令往往分成几步执行,将每一步操作所需的若干位命令以代码形式编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。
📙计算机的体系结构与计算机组成
我们必须区分好计算机组成和计算机体系结构这两个概念,定义如下:
举个例子,指令系统属于计算机的常见属性之一,也就是计算机体系结构的问题,但是指令系统的具体实现方式属于计算机组成的问题,比如,如何取指令、分析指令、取操作数并运算等。因此,当两台计算机的指令系统相同时,只能说明体系结构是一样的,而组成方式可能不同。
2.2、计算机基本组成
📗冯·诺依曼计算机
冯·诺伊曼结构是一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构。根据冯·诺伊曼结构设计出的计算机称做冯.诺依曼计算机,又称存储程序计算机。
随着计算机体系结构的发展,逐渐出现了非冯计算机,如光子计算机,量子计算机等。
📘计算机的硬件框图
现代计算机一般由五部分组成:
运算器:完成算术运算和逻辑运算,其结果暂存在运算器内;控制器:控制、指挥程序和数据的输入、运行以及处理运算结果;主存储器:用于存放数据和程序;输入设备:比如键盘,鼠标等,用于将信息转换为计算机能识别的形式;输出设备:比如显示器,用于将计算机运算结果转换为人们熟悉的信息形式。
冯·诺依曼计算机是以运算器为中心的,其硬件框图如下所示:
计算机的常见硬件框图如下所示:
📙计算机的工作流程
利用计算机解决实际问题一般分为两步:
- 上机前的准备,即建立数学模型、确定计算方法和编写解题程序
- 运行解题程序
为了能更好的理解计算机的工作过程,我们先来简单介绍计算机的四大组成部分。
一、主存储器
- 主存由存储体、逻辑部件、控制电路组成,简称主存或内存;
- 每个存储体由若干存储单元组成;
- 每个存储单元则由若干存储元件组成;
- 每个存储元件存放0或1,这样存储单元就能够表示一串二进制代码;
- 我们称这一串串二进制代码为存储字,存储字的位数称为存储字长;
- 存储字可以表示字符、数值或指令;
- 主存就是根据每个存储单元的地址号来实现对存储字的读写操作;
- 这种读写操作称为按地址存取方式,即访存;
- 为了实现按地址访存,主存必须配置MAR寄存器和MDR寄存器;
- MAR寄存器用于存放将要访问的存储单元的地址,并且MAR寄存器的位数表示存储单元的个数,如10位MAR寄存器有1024个存储单元,记为1K;
- MDR寄存器用于存放从存储体中的某存储单元的取出的代码或者存放即将存入到某存储单元里的代码,MDR寄存器的位数和存储字长相等;
- 早期的指令字长和数据字长都是由存储字长决定,但由于我们希望这二者的长度是可变的,因此将长度的标准改由字节的个数来定义;
- 1个字节(Byte)就是8位(bit)二进制代码组成。比如两个字节构成的指令长度为16;
二、运算器
- 运算器是计算机中处理数据的功能部件;
- 其组成一般是算术逻辑单元(
ALU)、累加器(ACC)、乘商寄存器(MQ)和操作数寄存器(X)等;- 不同机器的运算器结构是不同的;
- 计算机运行时,运算器的操作和操作类型由控制器决定;
- 运算器处理的数据来自存储器;
- 处理后的结果数据通常送回存储器,或暂时寄存在运算器中。
三、控制器
- 控制器是发布命令的
决策机构,即完成协调和指挥整个计算机系统的操作;- 控制器在完成一段指令需要经过取指、分析和执行3个阶段;
- 控制器一般由程序计数器(
PC)、指令寄存器(IR)、控制单元(CU)组成;- PC用于存放即将执行的指令的地址,并且可以自动加一,也就是自动形成下一条指令的地址;
- IR用于存放当前的指令,其中指令的操作码被送到控制单元,操作数的地址被送到存储器中的地址寄存器;
- CU用于分析当前指令所需完成的操作,并发出各种微操作命令序列控制所有操作对象。
四、I / O设备
- I / O机理包含各种IO设备及其接口;
- 每一种IO设备都由IO接口与主机联系并接收控制单元发出的各种命令,完成各种操作;
下面举例计算机的工作流程:
- 启动计算机;
- 控制器将
PC中的指令地址送到主存里的MAR,接着命令存储器进行读操作; - 此时主存单元里的指令内容便被存放到
MDR内; - 接着由
MDR将指令内容传到控制器中的IR内; - 然后
IR将操作码送至CU,经CU分析该指令的具体内容,比如是取数指令; - 那么
CU就将IR中的地址码送到MAR中,接着命令存储器进行读操作; - 此时地址单元中的操作数就被存放到
MDR内,再由MDR传到运算器中的ACC中; - 同时,
PC完成自动加1的操作,形成下一条指令的地址; - 与之前一样,控制器将
PC中的指令地址送给MAR,接着命令存储器进行读操作; - 然后
PC第二条指令存放到MDR中,再由MDR传到控制器中的IR; - 然后
IR将操作码送至CU,经CU分析该指令的具体内容,比如是乘法指令; - 那么
CU就将IR中的地址码送到MAR中,接着命令存储器进行读操作; - 取出地址码中的操作数存放到
MDR中,经MDR传到运算器中的MQ; - 接着
CU向运算器发出乘法操作命令,完成乘法指令的执行; - 然后
PC又一次自增形成下一条指令的地址,以此类推; - 就是这样,计算机按照存储器中存放的指令顺序,依次完成取指令、分析指令、执行指令的操作;
- 当执行到停机指令时,机器便自动停止工作。
2.3、计算机硬件的主要技术指标
📗机器字长
📘存储容量
📙运算速度
3、写在最后
好了,今天的笔记就记录到这里。
备注:
- 本篇笔记参考书:《计算机组成原理》--- 第3版