计算机系统概述

计算机系统概述

系统结构图:
在这里插入图片描述

系统硬件结构图:
在这里插入图片描述
上图取自《深入理解计算机系统》p42

1. 处理器
中央处理单元(CPU),主要由控制器,运算单元,寄存器组组成,现代处理器还集成了高速缓存存储器(cache)

  • 控制器:控制器是整个CPU的指挥控制中心,由程序计数器PC、指令寄存器IR、指令译码器ID和操作控制器OC等组成。
  • 运算器:主要负责各种运算,包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。
  • 寄存器组:寄存器组分为专用寄存器和通用寄存器,这部分在微机原理里有详细描述。它们主要负责存储数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。
  • 高速缓存存储器:又称CPU片内缓存。因为寄存器的容量很少,所以加入了容量较寄存器大很多倍的cache,它主要存储CPU近期需要的数据,访问它的速度比访问寄存器慢,但较CPU访问主存的速度快很多。通过访问高速缓冲里存放可能经常访问的数据,大部分的内存操作都能在快速的高速缓存中完成。

2 . 主存
主存又常被称作内存,是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。从物理上来说,主存是一组动态随机存取存储器(DRAM)芯片组成的;从逻辑上来说,存储器是一个线性的数组,每个字节都有其唯一的地址。

3. I/O设备
I/O(输入输出)设备是系统与外部通信的通道。上图中示例包括四个I/O设备:分别是作为用户输入的键盘与鼠标,作为输出的显示器,以及长期用于存储数据和程序的磁盘。

CPU的运行原理:
下面以一个hello.c程序的执行过程例子说明CPU的运行原理:

#include<stdio.h>
int main()
{
	printf("hello world!\n")
	return 0;
}

先说明一下程序生成可执行目标程序的过程:
hello.c源程序经过预处理,编译,汇编,链接后最终生成可执行的目标程序(二进制)。
运行原理:
当程序执行前,程序的目标代码和数据会先从磁盘被加载到内存中。一旦开始执行,CPU从程序计数器PC所指向的内存地址处读取机器指令到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,CPU会把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,然后命令运算单元对数据进行处理加工。当条指令执行完后,PC指向下一条指令,如此反复,一直到程序执行完成。
简言之就是以下四步:

  1. 取指令:CPU的控制器从内存读取一条指令并放入指令寄存器;
  2. 指令译码:指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址);
  3. 执行指令:分两个阶段“取操作数”和“进行运算”;
  4. 修改程序计数器,决定下一条指令的地址。

为什么要在CPU中加入高速缓存存储器

从上面我们可以看到,hello程序的执行先要将可执行目标程序从磁盘复制到内存,然后再将机器指令一条一条复制到指令寄存器中。程序执行完后,需要输出的内容(hello world!\n)先也是在磁盘上,然后被复制到内存,然后从主存复制到寄存器,再从寄存器复制到显示设备,最终显示在屏幕上。
这个实例揭示了一个重要的问题,即系统发费了大量的时间把信息从一个地方复制到另一个地方。

所以为了减少时间开销,要么加快内存的存储速度,要么加快处理器的运行速度,而加快处理器的运行速度比加快主存的运行速度容易和便宜得多,所以就提出了在CPU中加入高速缓存存储器(cache),这样就能将处理器近期需要的信息存放在其中,减少了CPU访问内存的次数。通常位于处理器芯片上的高速缓存存储器容量高达几万字节,它采用静态随机访问存储器(SRAM)的硬件技术实现的。它与CPU的关系如下图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值