深入理解计算机系统一--系统的硬件组成

系统的硬件组成

总线

总线贯穿整个计算机系统,负责在各个部件之间传递数据。通常总线被设计成传送定长的字节块,也就是字(word)。字中的字节数是一个基本的系统参数,现在大多数机器都是8个字节(64)位的了,4个字节(32)位的机器已经很少见了。

I/O设备

I/O(输入/输出)设备是系统和外部连接的通道。下图包括四个I/O设备。分别是

  • 作为用户输入的键盘
  • 作为用户输入的鼠标
  • 作为用户输出的显示器
  • 存储数据和程序的磁盘
    最开始,可执行程序就是存储在磁盘上面的。

每个I/O设备都通过适配器或者控制器和I/O总线相连。控制器和适配器的区别主要在于封装方式上面。控制器是I/O设备本身或者系统的主印制电路板(通常称作主板)上的芯片组。而适配器是一块插在主板插槽上的卡

主存

主存是一个临时存储设备,在处理器执行程序时,用来存放数据。

从物理上来说,主存是一组动态随机存储器(DRAM)芯片组成的。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的地址,这些地址是从零开始的

处理器

中央处理单元(CPU),简称处理器。是解释或执行存储在主存中指令的引擎。处理器的核心是一个大小为一个字的存储设备或寄存器,称为程序计数器(PC)。在任何时刻,PC都指向主存中的某条指令。

从电脑开机开始,PC就指向一条指令,执行指令后执行下一条指令,不断运行。

这样的简单操作不多,都围绕着主存,寄存器文件和算术/逻辑运算单元(ALU)进行。下面是一些简单操作的例子。

  • 加载:从主存复制一个字节到寄存器。
  • 存储:从寄存器复制一个字节到主存。以覆盖原来的值。
  • 操作:把两个寄存器的内容复制到ALU做运算,将结果存在一个寄存器中。
  • 跳转:从指令本身中抽取一个字,并将这个字复制到程序计数器(PC)中,覆盖PC原来的值。

在这里插入图片描述

运行hello程序

程序通过shell进行执行。

./hello

这个时候系统把这个字符通过键盘逐一读入寄存器,然后再放入主存。

当我们按下回车,这个时候系统开始执行hello的内容,把hello world从磁盘读入主存。利用直接存储器存取技术(DMA),可以直接从磁盘读入主存,而不需要经过寄存器。

把程序内容读入主存后,开始执行main函数的内容,把hello world从主存复制到寄存器,最后显示在屏幕上面。

高速缓存

这个运行过程说明程序多次在主存和寄存器之间复制移动代码。这些重复操作如果能变得更快,那么整个程序就能变得更快。这就是高速缓存的作用。

根据机械原理,较大的设备比较小的设备速度慢,而快速设备的造价也远高于低速设备。比如,磁盘的容量可以比主存大1000倍,但是主存的速度可能比磁盘大1000万倍。同样的,寄存器比主存的速度也要更快。

针对这些速度的差异,系统的设计者采用了高速缓存设备,作为暂时的集结区域,存放处理器近期可能会需要的信息。系统有L1,L2,L3三级缓存。L1最快最小,L3最慢最大,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值