文章目录
- 0.前言
- 1.I/O 设备
- 2.总线
- 3.主存
- 4.中央处理器
- 参考文献
0.前言
学习编程语言,首先需要需要了解计算机硬件组成结构,因为编程语言编写的程序,最终需要在计算机中运行。计算机与程序间属共生关系,二者相互依存,互利共赢,没有程序,计算机如同没有生命一堆废铜烂铁,没有计算机,程序像是无用武之地的英雄,失去存在的意义。所以,了解计算机硬件组成结构是学习编程语言的基础。
从数据的输入到处理完成后输出来看,计算机主要由 I/O 设备、总线、主存与中央处理器组成,如下图所示:
1.I/O 设备
I/O设备(Input/Output Device)是计算机用于输入和输出的设备,主要分为字符设备、块设备和网络通信设备。
(1)字符设备(Character Device),又称为人机交互设备。用户通过这些设备实现与计算机系统的通信。它们大多以字符为单位传输数据,通信速度较慢。常见的有键盘、鼠标、显卡、显示器、打印机和扫描仪等,还有早期的卡片和纸带输入输出机。
(2)块设备(Block Device),又称为外部存储器。用户通过这些设备实现程序和数据的长期保存。与字符设备相比,它们以块为单位进行传输,传输速度较快。常见的有磁盘、U盘、磁带和光盘等。
(3)网络通信设备。这类设备主要有网卡、调制解调器等,主要用于与远程设备间的通信。这类设备的传输速度比字符设备快,比块设备慢。
I/O设备是计算机与外界通信的通道,通过控制器或适配器与I/O总线连接。控制器与适配器的主要区别在于封装方式,控制器是I/O设备或计算机主板上的芯片组,用于翻译CPU指令为设备可识别的控制信号。而适配器是一个独立的外部设备,用于I/O设备与计算机间数据协议的转换。二者在功能上是相同的,通过I/O总线,实现I/O设备与计算机间的为通信。
通俗来讲,I/O设备与人体的某些器官很类似。人每天工作生活,其实很像计算机的工作过程,从外界获取信息、加工,然后作出反应。计算的工作过程也是如此,通过输入设备获取信息,计算处理后,将结果输出。所以,计算的鼠标、键盘、扫描仪,类似与人体的眼、鼻、耳,来获取信息,打印机类似于人体的手脚,将信息加工后塑造出来。比如画家看到一幅美丽的山水景色,用双手创作出惊艳的图画。
2.总线
总线(Bus),又称为系统总线(System Bus),是计算机各种功能部件之间传送信息的公共通信干线,是由导线组成的传输线束。按照计算机所传输的信息种类,总线可以划分为数据总线(Data Bus)、地址总线(Address Bus)和控制总线(Control Bus),分别用来传输数据、数据地址和控制信号。
总线是一种内部结构,它是CPU、内存、I/O设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。通俗来讲,如果将计算机主板比作一座城市,那么总线就是这座城市的交通线路,交通线路根据运行的不同类型的交通工具,可分为汽运公路、航运水路、铁路干线等。每条交通线路同时能够运行的交通工具的数量是有限的,比如拥有4个车道的公路,则同时并行运行的车辆最多为4辆,这种有限的运输能力类似于总线的位宽,总线的带宽(总线数据传输速率)等于“总线的工作频率*总线的位宽/8”,单位字节/秒(B/s)。比如数据总线的工作频率是1MHz,位宽64Bit,那么数据总线的带宽是8MB/s,即数据总线每秒最大可传输8MB的数据。
3.主存
主存又名主存储器(Main Memory),是一个临时存储设备,用于存储程序和所需的数据,由中央处理器(CPU)随机存取。物理构成上,主存由一组动态随机存储器(DRAM)芯片组成,逻辑上,主存是一个线性字节数组,每个字节有一个独立的地址。
现代计算机,为兼顾性能与成本,往往采用多级存储体系。即由CPU寄存器、高速缓冲存储器(Cache,存储容量小、存取速度快、成本高)、主存储器(容量、速度与成本折中)和磁盘(低价、容量大但速度较慢),外加远程存储系统(速度慢但容量可以无限),共同构成计算机的存储体系。如下图所示。
CPU寄存器是CPU的组成部分,存储一个字长的数据,字长表示CPU在一个时钟周期能够处理二进制数的位数。字长是由CPU中寄存器的位数决定,CPU可以在一个时钟周期内访问。高速缓存存储器一般会采用多级结构,基于SRAM构建,随着级数的递增,速度递减,容量递增,可以在多个时钟周期内访问。主存基于DRAM构建,容量大于缓存,低于磁盘,速度低于缓存,高于磁盘,可以在几十到几百个时钟周期内访问。接着是容量大但速度慢的磁盘,访问一次需要几十万到几百万个时钟周期。对于远程的存储系统,需要借助网络传输,速度会更慢。
4.中央处理器
中央处理器(CPU,Central Processing Unit),是一块超大规模集成电路,是计算机的运算和控制核心,其作用类似于人脑,负责对数据的加工处理和各种控制信号的下发。功能主要是解释执行计算机指令来完成计算。
中央处理器主要包括算术逻辑运算单元(ALU,Arithmetic Logic Unit)、程序计数器(PC,Program Counter)、寄存器组、高速缓冲存储器(Cache)以及用于传输数据、控制及状态的总线(Bus)。
算术逻辑运算单元,顾名思义,执行各种算术和逻辑运算操作的部件,基本操作包括加、减、乘、除四则运算,与、或、非、异或、移位位运算,以及关系运算和逻辑运算等操作。程序计数器是CPU控制部件中的寄存器,用于存放下一条指令的地址。寄存器组包括通用寄存器、专用寄存器和控制寄存器。寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。高速缓冲存储器是由SRAM组成的高速低容量存储器,用于缓存常用的指令与数据,最重要的技术指标是它的命中率。总线用于CPU与其它设备间传输信息。
计算机从开机开始,不停地从程序计数器中获取指令、分析指令、执行指令,然后更新程序计数器,指向下一条指令。CPU常见的操作包括:
(1)加载:如从主存复制一个字节或一个字到寄存器,用于后续运算;
(2)存储:如从寄存器赋值一个字节或一个字到主存;
(3)操作:把两个寄存器的内容复制到ALU进行算术运算,并将结果存放到另一个寄存器中;
(4)从指令本身中抽取一个字,并将这个字复制到程序计数器,完成更新。
参考文献
[1] 深入理解计算机系统中文版