1.1 计算机硬件基础知识
计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。
运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU),CPU是硬件系统的核心,用于数据的加工处理,能完成算术运算、逻辑运算及控制功能。
存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于存储运行过程中的程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
1.1.1 中央处理单元
中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
1.CPU 的功能
CPU 的功能如下:
(1)程序控制。CPU按照程序的安排来执行指令,保证程序指令严格按规定的顺序执行,通过执行程序控制计算机的行为。
(2)操作控制。一条指令功能的实现需要若干操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。
(3)时间控制。CPU对每条指令的整个执行时间要进行严格控制。同时,指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
(4)数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果为人们所使用。所以,对数据的加工处理是 CPU最根本的任务。
此外,CPU还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
2.CPU 的组成
CPU 主要由运算器、控制器、寄存器组和内部总线等部件组成,如图1-1所示
1)运算器
运算器包括算术逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器等,它是数据加工处理部件,完成所规定的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有如下两个主要功能:
(1)执行所有的算术运算,如加、减、乘、除等基本运算及附加运算。
(2)执行所有的逻辑运算并进行逻辑测试,如与、或、非、零值测试或两个值的比较等。
下面简要介绍运算器中各部件的组成和功能。
(1)算术逻辑单元(ALU)。ALU 是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。
(2)累加寄存器(AC)。AC通常简称为累加器,它是一个通用寄存器。其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为 ALU 提供一个工作区。例如,在执行一个减法运算前,先将被减数暂存在 AC中,再从内存储器中取出减数,然后与 AC的内容相减,所得的结果送回 AC 暂存。
(3)数据缓冲寄存器(DR)。在对内存储器进行读写操作时,用DR暂时存放由内存储器读写的一条指令或一个数据字,将不同时间段内读写的数据隔离开来。
DR的主要作用为:作为 CPU 和内存、外部设备之间数据传送的中转站以及它们在操作速度上的缓冲;在单累加器结构的运算器中,数据缓冲寄存器还可兼作操作数寄存器。
(4)状态条件寄存器(PSW)。PSW 保存根据算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志,如运算结果进位标志©、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(1)、方向标志(D)和单步标志等。这些标志通常分别由1位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。
2)控制器
控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码按指令操作码执行、形成下一条指令地址等步骤。控制器在工作过程中主要使用下述几个部件:
(1)指令寄存器®。当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR 暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他部件协调工作,完成指令的功能。
(2)程序计数器(PC)。PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU 将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量产生,或者根据转移指令给出的直接转移的地址产生,再送入PC。
(3)地址寄存器(AR)。AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用 AR 保持地址信息,直到内存的读/写操作完成为止。
(4)指令译码器(ID)。指令包含操作码和地址码两部分,为了能执行任何给定的指令必须对操作码进行分析,以便识别要进行的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。
时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给 CPU 处理。
3)寄存器组
寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。
3.多核 CPU
CPU 的核心又称为内核,是 CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单品硅以一定的生产工艺制造出来的,CPU 所有的计算、接收/存储命令、处理数据都由核心执行。各种 CPU 核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都需要合理的布局。
多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级 Cache、二级 Cache 共享或独有,其部件的完整性和单核处理器内核相比完全一致。
起初,CPU 的主要厂商 AMD 和 Intel的双核技术在物理结构上有很大不同。AMD将两个内核做在一个 Die(晶元)上,通过直连架构连接起来,集成度更高。Intel 则是将放在不同核心上的两个内核封装在一起,因此有人将 Intel 的方案称为“双芯”,将 AMD 的方案称为“双核”。从用户端的角度来看,AMD 的方案能够使双核CPU的管脚、功耗等指标跟单核CPU保持一致,从单核升级到双核,不需要更换电源、芯片组、散热系统和主板,只需要刷新 BIOS软件即可。
多核CPU系统最大的优点(也是开发的最主要目的)是可满足用户同时进行多任务处理等要求。
单核多线程CPU是交替地转换执行多个任务,只不过交替转换的时间很短,用户一般感觉不出来。如果同时执行的任务太多,就会感觉到“慢”或者“卡”。而多核在理论上则是在任何时间内每个核分别执行各自的任务,不存在交替问题。因此,单核多线程和多核(一般每核也是多线程的)虽然都可以执行多任务,但多核的速度更快。
虽然采用了 Intel 超线程技术的单核可以视为双核,4核可以视为8核。然而,视为8核一般比不上实际是8核的CPU性能。
要发挥 CPU的多核性能,就需要操作系统能够及时、合理地给各个核分配任务和资源(如缓存、总线、内存等),也需要应用软件在运行时可以把并行的线程同时交付给多个核心分别处理。
1.1.2 存储器
1.存储器的分类
1)按存储器所处位置分类
按存储器所处的位置,可将其分为内存和外存。
(1)内存。内存也称为主存,设置在主机内(或主机板上),用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。
(2)外存。外存也称为辅存,如磁盘、磁带和光盘等,用来存放当前不参与运行的大量信息,必要时可把需要的信息调入内存。相对于内存,外存的容量大、速度慢。
2)按存储器的构成材料分类
按构成存储器的材料,可将其分为磁存储器、半导体存储器和光存储器。
(1)磁存储器。其是用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
(2)半导体存储器。根据所用元件又可分为双极型和 MOS型:根据数据是否需要刷新,又可分为静态(Static memory)和动态(Dynamicmemory)两类。
(3)光存储器。如 CD-ROM、DVD-ROM 等光盘(Optical Disk)存储器。
3)按存储器的工作方式分类
按存储器的工作方式可将其分为读写存储器和只读存储器。
(1)读写存储器(Random Access Memory,RAM)。其是既能读取数据也能存入数据的存储器。
(2)只读存储器。根据数据的写入方式,这种存储器又可分为ROM、PROM、EPROM 和EEPROM 等类型。
①固定只读存储器(Read OnlyMemory,ROM)。这种存储器的内容是在厂家生产时就写好的,其内容只能读出,不能改变。一般用于存放系统程序 BIOS以及用于微程序控制。
②可编程的只读存储器(Programmable Read Only Memory,PROM)。其中的内容可以由用户一次性地写入,写入后不能再修改。
③可擦除可编程的只读存储器(Erasable Programmable Read Only Memory,EPROM)。其中的内容既可以读出,也可以由用户写入,写入后还可以修改。改写的方法是写入之前先用紫外线照射 15~20分钟以擦去所有信息,然后再用特殊的电子设备写入信息。
④电擦除可编程的只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)。与 EPROM相似,EEPROM中的内容既可以读出,也可以进行改写。只不过这种存储器是用电擦除的方法进行数据的改写。
⑤闪速存储器(Flash Memory)。其简称闪存,闪存的特性介于 EPROM 和 EEPROM 之间,类似于 EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于 EPROM。
4)按访问方式分类
存储器按访问方式可分为按地址访问的存储器和按内容访问的存储器
5)按寻址方式分类
存储器按寻址方式可分为随机存储器、顺序存储器和直接存储器。
(1)随机存储器(Random Access Memory,RAM)。这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
(2)顺序存储器(SequentiallyAddressed Memory,SAM)。访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
(3)直接存储器(DirectAddressed Memory,DAM)。介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
2.随机访问存储器
随机访问存储器(RAM)分为静态RAM和动态RAM两类。静态RAM(SRAM)比动态RAM(DRAM)更快,也更贵。SRAM常用来做高速缓存存储器,DRAM用来作为主存及图形系统的帧缓冲存储区。
(1)SRAM。在SRAM中,将每个位存储在一个双稳态存储器单元中,每个单元是用一个六晶体管电路来实现的。只要供电,SRAM存储单元的内容就保持不变。
(2)DRAM。在DRAM中,每个位由一个电容和一个品体管组成,电容量很小(容量越小速度越快)。与SRAM 不同,DRAM 存储器单元对干扰很敏感,电容的电压被扰乱之后也不能再自行恢复,也有其他原因会导致漏电,因此,必须在电容中的电荷漏掉之前进行补充,以保证信息不会丢失,这称为刷新。DRAM 必须周期性地进行刷新操作。由于集成度高、价格低,DRAM 常用来构成主存储器,主要采用SDRAM(SynchronousDyamic Random Access Memory),发展出了SDR SDRAM、DDR SDRAM、DDR2 SDRAM.DDR3 SDRAM、DDR4 SDRAM 等。
由 DRAM 芯片可组成所需容量要求的内存模块。例如,由4个8MX8位的 DRAM 芯片(DRAM 0、DRAM 1、DRAM 2、DRAM 3)构成8Mx32 位的内存区域,32 位字的4个字节分别由4个DRAM 芯片的同一地址单元提供,DRAM0提供第1字节(最低字节),DRAM1提供第2字节,DRAM2提供第3字节,DRAM3提供第4字节(最高字节),如图1-2所示。
3.外存储器
外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存后才可访问。外存储器由磁表面存储器(如磁盘、磁带)及光盘存储器构成。下面介绍两种常用的外存储器。
【磁盘存储器】
▶ 核心构成:盘片(存储)、驱动器(寻道/读写)、控制器(命令转换)、接口(主机连接)
▶ 关键参数:
• 寻址:驱动号+柱面号+磁头号+扇区号(柱面=同序号磁道集合,文件优先同柱面存储)
• 密度:道密度(tpi,径向磁道数)/位密度(bpi,磁道单位长度位数,内圈>外圈)
• 容量:
非格式化=面数×磁道数×内圆周长×最大位密度
格式化=面数×磁道数×扇区数×512B(单扇区标准)
▶ 分类:温盘(主流,密封固定盘片)/可换盘/固定磁头/移动磁头
▶ 特性:高速(寻道+旋转)、大容量(多盘片叠装),硬盘平均存取时间=寻道+旋转延迟+传输时间
【光盘存储器】
▶ 类型: • 只读CD-ROM(预刻不可改) • 只写一次WORM(激光烧录永久痕) • 可擦除(激光可逆相变记录) ▶ 核心特性: √ 非接触读写(光头距盘2mm)
√ 高密大容量(单碟GB级,蓝光可达100GB+)
√ 长寿命(10年+)
√ 低成本/低机械精度要求
√ 短板:存取时间长(>100ms),多通道传输率>200MB/s
▶ 技术构成:光学头(激光聚焦)+机械传动(盘片旋转)+信号处理系统
1.1.3 总线
所谓总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。
1.总线的分类
微机中的总线分为数据总线、地址总线和控制总线3类。不同型号的CPU芯片,其数据总线、地址总线和控制总线的条数可能不同。
1)南北桥芯片结构
北桥芯片直接与 CPU、内存、显卡、南桥相连,控制着CPU的类型、主板的总线频率内存控制器、显示核心等。前端总线(FSB)是将CPU连接到北桥芯片的总线。内存总线是将内存连接到北桥芯片的总线,用于和北桥之间的通信。显卡则通过 IO总线连接到北桥芯片。
南桥芯片主要负责外部设备接口与内部 CPU的联系。其中,通过 IO 总线将外部 IO 设备连接到南桥,比如USB设备、ATA和SATA 设备以及一些扩展接口。扩展总线则是指主板上提供的一些 PCI、ISA 等插槽:
2)单芯片结构
单芯片组方式取消了北桥。由于CPU中内置了内存控制器,不再需要通过北桥来控制,这样就能提高内存控制器的频率,减少延迟。还有一些 CPU集成了显示单元,使得显示芯片的频率更高,延迟更低。
2.常见总线
常见总线包括:
一、内总线
- ISA(工业标准总线)
- 16位总线,传输速率16MB/s,AT标准
- EISA(扩展ISA)
- 32位总线,196个接点,传输速率33MB/s
- PCI总线
- 32位(124信号)/64位(188信号)可扩展
- 传输速率133MB/s(32位)、266MB/s(64位)
- 独立时钟设计,支持即插即用和奇偶校验
- 采用仲裁机制实现设备间点对点传输
- PCI-E(PCI Express)
- 串行点对点架构,支持双向全双工
- 通道分级:X1(250MB/s)至X16(4GB/s)
- 支持热插拔,兼容不同尺寸插槽
- 前端总线(FSB)
- CPU与北桥芯片连接通道
- 性能受主板-CPU匹配度制约
二、外总线
- RS-232C
- 三线制串行总线(收/发/地)
- 电平传输(±3V阈值),最大15m/1km
- 支持全双工通信
- SCSI系列
- 并行外设接口,版本演进:
SCSI-1(5MB/s) → Ultra320(320MB/s)
- SATA
- 串行存储总线,支持热插拔
- 嵌入式时钟,具备指令纠错能力
- USB
- 四线制(数据+电源),树形拓扑
- 最大127设备,支持热插拔
- 版本速率:1.0(12Mbps) → 3.0(5Gbps)
- IEEE-1394
- 六线制高速串行总线(含供电)
- 支持同步传输,速率400Mbps-3.2Gbps
- 最大63设备
- IEEE-488
- 并行仪器总线,20m传输距离
- 500KB/s基础速率,15设备容量
1.1.4 输人输出控制
从硬件角度看,输入/输出(I/O)设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备,从软件角度只关注输入/输出设备的编程接口。
I/O 设备可分为块设备和字符设备两类。
块设备把信息存放在固定大小的块中,每个块都有自己的地址,独立于其他块,可寻址。例如磁盘、USB 闪存、CD-ROM 等。
字符设备以字符为单位接收或发送一个字符流,字符设备不可以寻址。例如打印机、网卡、鼠标键盘等。
CPU 无论是从内存还是IO设备读取数据,都需要把地址放到地址总线上,然后向控制总线传递一个读信号,还要用一条信号线来表示是从内存还是O读取数据。
(1)多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向CPU 提出中断
请求。
(2)中断软件查询法。当CPU检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。
(3)菊花链法。软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。所有的 IO 模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相连。当 CPU检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在IO模块间传递,直到发出请求的模块,该模块则把它的ID送往数据线由CPU 读取。
(4)总线仲裁法。一个IO 设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。当CPU 发出中断响应信号后,该设备即把自己的 ID 发往数据线。
(5)中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU。
几个“周期”的概念与区别