计算机硬件结构概述


layout: port
title: 计算机硬件结构概述
date: 2022-03-29 22:17:24
tags:
categories: 计算机系统
description: 计算机硬件结构概述

一、概述

作为计算机专业的学生,必须知道一个程序在计算机上发生了什么。而想知道发生了什么,就必须了解计算机的硬件组成,知道计算机是由哪些部件组成。就好比警察追踪犯人,如果不知道城市的建筑构造,又怎么能发现犯人的踪迹呢?下图是一个典型系统的硬件组成。但鉴于大家相比于硬件更熟悉软件,我们从观察一个程序生命周期开始,了解计算机硬件结构。

一个典型系统的硬件组成

当我们编写了一个 hello.c 文件后,使用该命令将它转换成可执行文件 hello:

linux> gcc -o hello hello.c

生成的 hello 文件会被存储在磁盘中,磁盘属于存储器层次的一类。

当我们要执行这个程序时,在键盘上输入:

linux> ./hello

shell 程序(linux> 是一个正在运行的 shell 程序)接收到 ./hello 字符后,并将这些字符读入在 CPU 中的寄存器里,然后把 hello 字符(./ 只是表示当前目录,因为 hello 文件存放在当前目录)存放到内存中。

EE6C8AFE2CD29FB41D06925C5E18A4BF

当我们在键盘敲下 enter 键时,shell 程序就知道结束命令的输入,就会将加载 hello 文件,也就是把 hello 文件中的代码(指令)和数据(比如需要输出到屏幕上的"hello World!\n"字符串)复制到内存。内存是也是存储层次中的一类,专门存放程序和程序处理的数据。下图显示的是利用**直接存储器存取(DMA)**方式不经过处理器将数据直接从磁盘负责制到内存。

A7FE520BA92BBAC1900336E7F9A6197D

当 hello 代码和数据被加载到内存,处理器就会立刻执行 hello 程序的机器语言指令。PC 会首先指向第一条指令,然后通过总线将指令复制到处理器中,经过一系列步骤后执行,PC指向下一条指令的位置。hello 程序中的指令会将“hello Word!\n”字符串的字节从内存中复制到寄存器文件,再从寄存器文件中复制到显示设备,最后显示显示屏上。

C7321F36D9D046FE7E822AD54BC3701C

好!我们从 hello 程序运行周期出发,大致地看到了计算机的硬件结构,下面总结一些计算机硬件到底有哪些东西:

  • CPU

    中央处理单元(CPU),简称处理器,是执行存储在主存中指令的引擎。处理器主要由 PC 寄存器、寄存器文件、ALU 组成(寄存器是一个字的存储设备)。PC 寄存器是其核心。在任何时刻,PC 都指向主存中的某条机器语言指令(即该寄存器存有该条指令的地址)。系统从通电开始,处理器一直在不断地执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令。

  • 存储器:寄存器、内存、磁盘

    主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序相关的数据。从物理上来说,主存是由一组动态随机存取存储器(DRAM)芯片组成的。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引),这些地址是从零开始。

  • 输入设备:鼠标、键盘

  • 输出设备:显示屏

    I/O(输入/输出)设备是系统与外部世界的联系通道。每个 I/O 设备都通过一个控制器适配器与 I/O 总线相连。控制器和适配器之间的区别主要在于它们的封装方式。控制器是 I/O 设备本身或者系统的主印制电路板(通常称作主板)上的芯片组。而适配器则是一块插在主板插槽上的卡。无论如何,它们的功能都是在 I/O 总线和 I/O 设备之间传递信息。

这不就是我们之前提过的冯·诺依曼结构吗?下面我们来介绍以下冯·诺依曼结构和同样比较重要的哈弗结构。

二、冯·诺依曼结构

冯·诺依曼计算机体系结构

现代计算机基本都采用冯·诺依曼结构,这是世界上第一个完整的计算机体系结构。

冯·诺依曼结构的主要特点是:

  • 计算机由存储器、运算器、控制器、输入设备和输出设备五部分组成,其中运算器和控制器合称为中央处理器(CPU)。
  • 指令和数据混合存储在同一个存储器中。
  • 以运算器为中心,输入输出设备与存储器之间的数据传送都经过运算器。

随着技术的进步,冯·诺依曼结构得到了持续的改进,主要包括以下几个方面:

  • 从以运算器为中心变为以存储器为中心。
  • 从适应串行到适应并行。出现了流水线处理器、超标量处理器、向量处理器、多核处理器。
  • 出现为适应特殊需要的专用计算机,如图形处理器(GPU)。

2.1 哈佛结构

哈佛结构和冯·诺依曼结构最主要的区别是程序和数据分别存储。控制器使用两条独立的总线读取程序和访问数据,程序空间和数据空间完成分开。

三、处理器

处理器是计算机系统中的重中之重。在计算机组成和计算机体系结构课程中,处理器都是重点之一。在此之前,我们可以看看这个高端芯片完整的制造工艺视频,了解一下芯片的制作过程。

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

在上图模型机的 CPU 中,主要由以下部件:

  • 自动取出指令并进行译码的控制部件
  • 存储下一条指令地址的程序计数器(Program Counter,PC)
  • 进行算数逻辑运算的算术逻辑部件(Arithmetic Logic Unit,ALU
  • 临时存放从主存取来的数据或运算结果的通用寄存器组(GPRs)
  • 存储标志的标志寄存器。这些标志是指 ALU 计算产生的标志信息,如结果是否为 0(零标志 ZF)、是否为负数(符号标志 SF)等。标志寄存器在有些 RISC 架构中是没有的,如 RISC-V。

从系统通电开始,直到系统断电,处理器一直在不断地执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令。详细地来说,一条指令会经历以下五个步骤:

  • 取指令(fetch)

    根据 PC 寄存器内的值,将一条指令从主存中取到指令寄存器的过程。

  • 译码(decode)

    指令译码器按照上一节讲过的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别(指令码)以及各种获取操作数的方法(寻址方式)。

  • 执行(execute)

    对指令进行真正运算的过程。此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。如加法操作、乘法操作等。

  • 访存(memory access)

    根据指令需要,有可能要访问主存。或将数据从存储器中读出,或者写入存储器。

  • 写回(write back)

    指将指令执行的结果写回通用寄存器组的过程。如果是普通运算指令,该结果值来自于“执行”阶段计算的结果:如果是存储器读指令,该结果来自于“访存”阶段从存储器中读取出来的数据。

下一节我们会更深入地学习处理器相关知识。

四、存储器

在之前我们提到过,存储器在计算机占有非常重要的地位。甚至可以说,处理器和存储器是计算机的最主要的部件。上图几乎包含了我们之前提到过的几种存储部件,如寄存器、主存、磁盘。

由于技术的限制,处理器处理速度非常快,而内存处理速度非常慢,这样会导致存储访问延迟。于是科学家们设计出来一种方案,在处理器和主存间插入一个更小更快的存储设备(Cache)。这样我可以预先将主存中的一些数据提前放入 Cache 中,处理器可以直接从 Cache 中取得数据,这样起到减少延迟的效果。

基于这种思想,每个计算机系统中的存储设备都被组织成了一个存储器层次结构。

由于考虑到技术和成本问题,越往上的层级,速度越快,但成本越高,容量越小;越往下的层级,速度越慢,但成本越低,容量越大。

存储器层次结构的思想简单来说,就是上一层的存储器作为下一层存储器的高速缓存。因此,寄存器文件是 L1 Cache 的缓存,L1 是 L2 的缓存,依次类推。这种思想叫作局部性原理,它在计算机各个领域都发挥着巨大的作用。

4.1 局部性原理

局部性原理

局部性原理分为空间局部性和时间局部性

  • 时间局部性:某个数据项在被访问之后可能很快被再次访问

    比如你在写论文,你参考一篇论文,之后你可能还需要参考这篇论文。所以你不如把这篇论文放在身边,防止以后还要用。

  • 空间局部性:某个数据项在被访问之后,与其地址相近的数据项可能很快被访问。

    比如你在写论文,你参考了一位教授的一篇论文,你之后可能还会参考他的其他论文,所以不如把这个教授所以论文都放在身边。

利用局部性原理可以将计算机存储器组织为存储器层次结构

4.2 存储器的四种技术

构建存储层次结构主要由 4 种技术:

  • SRAM(静态随机访问存储器)
  • DRAM(动态随机访问存储器)
  • 闪存
  • 磁盘

由于存储器技术设计大量电子相关的知识,在这里我不会展开叙述,只是总结性地提炼出关键点。

4.2.1 SRAM
  • 每一位存储在双稳态存储单元中,每个存储单元由 6 个晶体管电路实现。
  • 由于双稳态,只要有电,信息就可长时间保持
  • 存取速度快、集成度低、价格高。
  • 常用于高速缓冲存储器 Cache。
4.2.2 DRAM
  • 使用电容保存电荷,以此表示比特。
  • 由于电容保存数据,不能长时间保持数据,所以被称为动态。
  • 存取速度慢、集成度高、价格低。
  • 用用作主存(内存条)
4.2.3 闪存

闪存是基于 EEPROM 的一种存储技术。和 EEPROM 一样,写操作会使存储位损耗,为了应对该限制,闪存使用了损耗均衡的技术。

损耗均衡:将写操作从已经写入很多次的块中,映射到写入次数少的块中,从而使写操作尽量分散。

4.2.4 磁盘

硬盘主要由盘体、控制电路板和接口部件等组成。盘体是一个密封的腔体,硬盘的内部结构通常是指盘体的内部结构;控制电路板上主要有硬盘 BIOS、硬盘缓存(即 CACHE)和主控制芯片等单元;硬盘接口包括电源插座、数据接口和主、从跳线。

硬盘首先在逻辑上被划分为磁道、柱面以及扇区。磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track),磁道从外向内从0开始顺序编号;所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0”开始编号;每个磁道会被分成许多段圆弧,每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入,操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息;

机械硬盘结构

磁盘盘片

磁道、柱面、扇区

参考资料

  • 深入理解计算机系统
  • 袁春风、余子濠《计算机系统基础》
  • 胡伟武、汪文祥等《计算机体系结构基础》
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值