第一章:计算机系统概述

第一章:计算机系统概述

本章结构
基本概念
计算机硬件系统

Part1:基本概念

1、计算机系统组成

计算机系统

  • 硬件系统

    • 早期冯·诺依曼机结构
    • 现代计算机结构
  • 软件系统

    • 系统软件——管理计算机
    • 应用软件——为执行任务而编制

2、三级计算机语言

  1. 三种语言

    • 机器语言:二进制代码语言,计算机可以直接执行
    • 汇编语言:面向及其的低级语言,其代码符号和及其语言一一对应
    • 高级语言:面向人类的自然语言,其代码需要翻译为机器语言
  2. 翻译过程

    翻译
    非机器语言
    机器语言

    翻译类型

    • 编译:将源代码变为可执行文件
    • 解释:将源代码逐条变为机器语言并且执行

3、计算机的一些指标

  1. 主存容量(MM, Main Memory)

    MAR:Memory Address Register,主存地址寄存器

    MDR:Memory Data Register, 主存数据寄存器

    这两个寄存器的位数决定了主存容量,如果MAR:16bit MDR:32bit。则
    主 存 容 量 = 2 16 ∗ 32 ( b i t ) = 64 k ∗ 4 B = 512 K B 主存容量=2^{16}*32(bit)=64k*4B=512KB =21632(bit)=64k4B=512KB

  2. CPU

    • CPU的时钟周期:CPU中最小的时间单位
    • CPU的主频(Clock Speed):CPU内部时钟频率,单位Hz.(1 Hz = 1秒钟一次,时钟周期=CPU主频的倒数)
    • CPI(Clock Per Instruction):每条指令平均需要使用几个时钟周期
  3. FLOPS

    每秒可以支持的浮点运算数量级

    MFLOPS:可执行106

    GFLOPS:可执行109

    TFLOPS:可执行1012

    PFLOPS:可执行1015

Part2:计算机硬件系统

1、早期冯·诺依曼结构:以运算器为中心

请添加图片描述

冯诺依曼在研究EDVAC时,提出了“存储程序”的概念,即将指令以代码的形式事先输入存储器,从首地址开始按序执行,直到指令结束。在他的《EDVAC报告书的第一份草案》中,为现代计算机结构指明了道路

  • 采用二进制表示数据
  • 像存储数据一样存储程序
  • 计算机由输入、输出、存储器、运算器、控制器5大模块构成

这三个原则被称为“存储程序”工作方式

2、现代计算机结构:以存储器为中心

请添加图片描述

现代计算机常将Control Unit和Arithmetic Unit和Memory中MAR、MDR整合入一个部件,并称之为CPU,如下图所示

请添加图片描述

3、三大硬件基本结构

  1. Memory

请添加图片描述

  1. Arithmetic Unit

    请添加图片描述

    其中ACC(Accumulator):累加器

    MQ:乘商寄存器

    ALU(Arithmetic logical Unit):逻辑运算单元

  2. Control Unit

    请添加图片描述

    其中IR(Instruction Register):存储当前执行指令的寄存器

    PC(Program Counter):存储下一条指令地址的寄存器

    MCU(Micro Control Unit):微控制单元,用于分析指令

4、一个例子

先看如下代码

int main(void){
  int x = 2;
  int a = 3;
  int b = 1;
  int y = 0;
  
  y = a * x + b;
}

将其编译装入后,为这个样子

主存 | 	              指令		            		  |注释
地址 |        操作码(6bit)  |	  地址码(10bit)		  |
--------------------------------------------------------
0	|		   000 001	|    0000 00 0101	       	  |取数x到ACC
1	|		   000 010	| 	 0000 00 0110		   	  |对a和x做乘法,并将结果存放于ACC中
2	|		   000 011	| 	 0000 00 0111		   	  |加上b,将结果存放于ACC中
3	|		   000 100	| 	 0000 00 1000		   	  |将结果放到y所处的主存单元中
4	|		   000 101	| 	 0000 00 0000		   	  |停机
--------------------------------------------------------
以下为主存单元数据
--------------------------------------------------------
5	|		   000 000 0000 00 0010			       	  |x=2
6	|		   000 000 0000 00 0011				   	  |a=3
7	|		   000 000 0000 00 0001				   	  |b=1
8	|		   000 000 0000 00 0000				   	  |y=0

由3可知一个由完整的计算机如下图所示

请添加图片描述

则第一条指令执行过程为:

初始状态:PC=0,指向第一条指令地址

---------------------------------------------------------
step 1   : (PC)->MAR, MAR = 0;							|
step 2,3 : M(MAR)->MDR, MDR=000 001 0000 00 0101;		|取指令阶段
setp 4   : (MDR)->IR;									|
---------------------------------------------------------
step 5	 : op(IR)->MCU MCU分析后得知其为取数指令,pc=pc+1;	| 分析指令阶段
---------------------------------------------------------
step 6	 : Ad(IR)->MAR, (MAR)=0000 00 0101 = 5;		    |
step 7,8 : M(MAR)->MDR, MDR = 000 000 0000 00 0010 = 2; |执行指令阶段
step 9	 : (MDR)->ACC									|
----------------------------------------------------------

(pc)表示pc中的值,->表示数据流动方向,M(MAR)表示主存(Main Memory)中地址为MAR的主存单元的值

op(IR)表示IR中指令的操作码(operator),Ad(IR)表示IR中指令的地址码

Part end:参考文献和一些说明

可以从pc自增的情况来看出计算机的是按照字节编制还是按照字编址。如果计算机指令长度16位,而pc=pc+2。那么说明该计算机按照字节编制。原因是如果计算机按照字编制的话pc=pc+1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值