软考高级之系统架构师之计算机硬件基础

概念

CPU

CPU的工作频率(主频)包括两个部分:外频与倍频,两者的乘积就是主频。

  • 外频,即外部频率,指系统总线频率。
  • 倍频,即倍频系数,指CPU主频与外频之间的相对比例关系。最初CPU主频和系统总线速度是一样的,但CPU速度越来越快,倍频技术也就相应产生。作用是使系统总线工作在相对较低的频率上,而CPU速度可通过倍频来提升。

同步和异步

  • 同步方式:CPU访问内存、CPU与I/O接口交换信息、CPU与PCI总线交换信息
  • 异步方式:I/O接口与打印机交换信息则通常采用基于缓存池的异步方式

存储

计算机系统中的存储部件通常组织成层次结构,越接近CPU的存储部件访问速度越快。存储速度从快到慢分别是:寄存器组、Cache(高速缓存)、内存、Flash。

所有的存储器设备按照一定的层次逻辑关系通过软硬件连接起来,并进行有效的管理,就形成存储体系。一般计算机系统中主要有两种存储体系:

  • Cache存储体系:由Cache和主存储器构成,主要目的是提高存储器访问速度
  • 虚拟存储体系:由主存储器和在线磁盘存储器构成,主要目的是扩大存储器容量。

其中Cache存储体系对系统程序员以上(包括应用程序员)均透明,而虚拟存储体系对应用程序员透明,对系统程序员不透明。

存取方式

存储器中数据常用的存取方式:

  • 顺序存取:存储器的数据以记录的形式进行组织。对数据的访问必须按特定的线性顺序进行。如磁带存储器。
  • 直接存取:与顺序存取相似,直接存取也使用一个共享的读写装置对所有的数据进行访问。但每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块所在位置进行访问。存取时间也是可变的。如磁盘存储器。
  • 随机存取:存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。如主存储器。
  • 相联存取:随机存取的一种,但是选择某一单元进行读写取决于其内容而不是其地址;每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。如Cache,因为可提高地址映射的速度。

在Cache-主存储器构成的存储系统中,主存地址到Cache地址的变换由硬件完成,软件速度慢。

Cache

Cache的功能全部由硬件实现。提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。在计算机的存储系统体系中,Cache是访问速度最快的层次。

使用Cache改善系统性能的依据是程序的局部性原理(在指定时间内,程序趋于在有限的内存区域内重复访问),包括:

  • 时间局部性:如果一个信息项正在被访问,那么在近期很可能还会被再次访问。程序的循环,堆栈等是产生时间局部性的原因;
  • 空间局部性:指一旦程序访问某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。

工作集理论:工作集是进程运行时被频繁访问的页面合集

工作原理:依据局部性原理,把主存储器中访问概率高的内容存放在Cache中。当CPU需要读取数据时,首先在Cache中查找是否有所需内容,如果有,则直接从Cache中读取;若没有,再从主存中读取该数据,然后同时送往CPU和Cache。

如果CPU需要访问的内容大多能在Cache中找到(访问命中),则可以大大提高系统性能。CPU发出访存请求后,存储器地址先被送到Cache控制器以确定所需数据是否已在Cache中,若命中则直接对Cache进行访问,该过程称为Cache的地址映射。常见的映射方法有直接映射、相联映射和组相联映射:

  • 直接映像:Direct Mapping,也叫直接相联映像。指在进行映像的工作时,规定各区中的某一信息块只能映像到Cache中的一个固定的信息块中,即主存中的第0块映像到Cache的第0个块,第1块映像到Cache 的第1块,以此类推。硬件电路较简单,但冲突率很高
  • 全相联映像:Fully Associative Mapping。指主存中的每一个字块可映像到Cache任何一个字块位置上。电路难于设计和实现,只适用于小容量的Cache,冲突率较低
  • 组相联映像:n路组相联映射,N-ways Set-Associative Mapping,是直接映像和全相联映像的折衷。将存储空间分为若干组,各组之间是直接映像,而组内各块之间则是全相联映像。

按照Cache地址映像的块冲突概率,从高到低排列的是:直接映像->组相联映像->全相联映像

Cache中数据装满后必须淘汰现有数据,装入新数据,淘汰算法有:随机淘汰法、先进先出法FIFO、近期最少使用淘汰法LRU。LRU平均命中率最高。

Cache写数据常用方法包含以下几类:

  • 写直达:当要写Cache时,数据同时写回主存储器,也称写通、贯穿
  • 写回:CPU修改Cache的某一行后,相应数据不立即写入主存,而在该行被从Cache中淘汰时,才把数据写回主存储器中。
  • 标记法:对Cache中的每个数据设置一个有效位。当数据进入Cache后,有效位置1,当CPU要对该数据进行修改时,只需将其写入主存储器,并将该位清0。当要从Cache中读取数据时,需要测试其有效位:若为1则从Cache中取,否则从主存中取。

自检

RAM类存储器通过写入0xAA,0x55等数字再读出的方式进行自检;

ROM类存储器通过累加和校验进行自检。

VM

虚拟存储器,Virtual Memory,在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的主存储器。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。其页面的置换依据相应的页面置换算法进行,当页面失效时,需要进行数据交换,此时涉及到逻辑地址(虚地址)到辅存物理地址的变换。

MMU

Memory Management Unit,即存储器管理单元,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。MMU的两个主要功能是将虚地址转换成物理地址,控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。

Cortex-M3处理器采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构。Cortex-M3支持线程模式和处理模式。在复位时处理器进入线程模式,异常返冋时也会进入该模式,特权和用户(非特权)模式代码能够在线程模式下运行。出现异常模式时处理器进入处理模式,在处理模式下,所有代码都是特权访问的。μC/OS-II可以运行在Cortex-M3处理器上。

IO

I/O设备管理软件一般分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。至于一些具体分层时细节上的处理,是依赖于系统的,没有严格的划分,只要有利于设备独立这一目标,可以为了提高效率而设计不同的层次结构。I/O软件的所有层次及每一层的主要功能如下图所示。
在这里插入图片描述
图中的箭头给出I/O部分的控制流。

读硬盘文件为例,当用户程序试图读一个硬盘文件时,需要通过操作系统实现该操作。与设备无关软件检查高速缓存中有无要读的数据块。若没有,则调用设备驱动程序,向I/O硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/O请求。用户进程在得到所需的硬盘文件内容之后,继续运行。

工作方式

在计算机中,I/O系统可以有5种不同的工作方式:

  • 程序控制方式
    • 无条件传送方式:在假定外设已经准备好的情况下,直接利用输入指令(IN指令)或输出指令(OUT指令)与外设传送数据,而不去检查(查询)外设的工作状态。这种传送方式的优点是控制程序简单。但它必须是在外设已经准备好的情况下才能使用,否则传送就会出错。所以在实际应用中无条件传送方式使用较少,只用于一些较简单外设的操作,如对开关信号的输入,对LED显示器的输出等。在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。
    • 程序查询传送方式:也称为条件传送方式。在这种方式下,利用查询方式进行输入输出,就是CPU通过执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率。
  • 程序中断程序:中断是指计算机执行现行程序的过程中,出现某些急需处理的异常情况和特殊请求,CPU暂时终止现行程序,而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,CPU将自动返回原来的程序继续执行。CPU与外设可并行工作。
  • DMA:Direct Memory Access,直接内存存取。一种不经过CPU而直接在外设与内存间进行的数据交换控制方式,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完之后再把信息反馈给CPU即可。CPU与外设可并行工作。
  • 通道方式:一种高级的I/O控制部件,它在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去CPU的介入,从而使主机和外设的并行程度更高。通道并不能完全脱离CPU,它还要受到CPU的管理,比如启动、停止等,而且通道还应该向CPU报告自己的状态,以便CPU决定下一步的处理。
  • I/O处理机:I/O处理机除了能够完成通道的全部功能外,还可以进行码制转换、数据校正和校验、故障处理等。

总线

Bus,是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

总线是一种内部结构,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。

总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。所谓共享,指连接到总线上的所有部件都可通过它传递信息;分时性指某一时刻只允许一个部件将数据发送到总线上。共享是通过分时实现的。

共享总线上允许有多个主设备和从设备,可能会有多个主设备同时要求使用总线的情况(执行操作都是由主设备发起的),为了防止总线竞争,共享总线上某一时刻只允许一个主设备使用总线。这就需要总线仲裁。集中式仲裁釆用一个中央总线仲裁器(总线控制器),由它来决定总线上同时提出使用请求的主设备谁可以获得总线使用权,主要有三种方案:

  • 菊花链式查询方式:设备的先后连接顺序决定其优先级;
  • 计数器定时查询方式:即轮询方式,各个主设备得到总线使用权的机会基本相等。
  • 独立请求方式:各个主设备得到总线使用权的机会基本相等。

Bus,计算机设备和设备之间传输信息的公共数据通道,连接计算机硬件系统内多种设备的通信线路,由总线上所有的设备共享

  1. 数据总线:并行数据传输位数
  2. 地址总线:系统可管理的内存空间大小
  3. 控制总线:传送控制命令

单工、半双工和全双工

对端到端通信总线的信号传输方向与方式的分类定义如下:

  • 单工:指A只能发信号,而B只能接收信号,通信是单向的
  • 半双工:指A能发信号给B,B也能发信号给A,但这两个过程不能同时进行
  • 全双工:比半双工又进一步,在A给B发信号的同时,B也可以给A发信号,这两个过程可以同时进行互不影响

PCI

PCI是一种局部总线标准,它是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。

串行总线

特点:

  • 传输的波特率是总线初始化时预先定义好的,使用中可以改变;
  • 有半双工、全双工之分,全双工是一条线发一条线收;
  • 适宜长距离传输数据;
  • 按位(bit)发送和接收。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米
  • 串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配
  • 数据发送和接收可使用多种方式,如程序查询方式、中断、DMA,以后两者较为常见。

推荐阅读:总线

CISC和RISC

CISC,Complex Instruction Set Computer,复杂指令集计算机,基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。

缺点:

  • 微程序技术是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个CPU周期,降低机器的处理速度;
  • 指令系统过分庞大,从而使高级语言编译程序选择目标指令的范围很大,并使编译程序本身冗长而复杂,从而难以优化编译使之生成真正髙效的目标代码;
  • CISC强调完善的中断控制,势必导致动作繁多,设计复杂,研制周期长;
  • CISC芯片设计困难,使芯片种类增多,出错几率增大,成本提高而成品率降低。

RISC,Reduced Instruction Set Computer,精简指令集计算机,基本思想是通过减少指令总数和简化指令功能,降低硬件设计复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。

RISC的关键技术:

  • 重叠寄存器窗口(overlapping register windows)技术,首先应用在伯克利的RISC项目中;
  • 优化编译技术,RISC使用大量的寄存器,如何合理分配寄存器、提高寄存器的使用效率,减少访存次数等,都应通过编译技术的优化来实现;
  • 超流水及超标量技术:RISC为了进一步提高流水线速度而采用的新技术;
  • 硬(布)线逻辑与微程序相结合在微程序技术中

CRISC和CISC是目前设计制造微处理器的两种典型技术,虽然它们都试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,主要区别有:

  • ①指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可利用流水和超标量技术加以改进和弥补。
    CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
  • ②存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。
  • ③程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。
  • ④中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。
  • ⑤CPU:RISC的CPU包含有较少的单元电路,因而面积小、功耗低;而CISC的CPU包含有丰富的电路单元,因而功能强、面积大、功耗大。
  • ⑥设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长
  • ⑦用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
  • ⑧应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。

RAID

另起一篇,参考计算机基础之RAID技术

Watch Dog

看门狗是一个独立的定时器电路,有一个定时器控制寄存器,可以设定时间(开狗),到达时间后要置位(喂狗),如果没有的话,就认为是程序跑飞,就会发出RESET指令。当系统工作正常时,CPU将每隔一定时间输出一个脉冲给看门狗,即“喂狗”,若程序运行出现问题或硬件出现故障时而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序。看门狗定时器超时会产生看门狗中断。

控制器

控制器控制整个CPU的工作,包括程序控制、时序控制,其组成包括:
IR:暂存即将执行的指令
PC:存放下一条指令执行地址
AR:保存当前CPU所访问的内存地址
ID:分析指令操作码

IR

指令寄存器,Instruction Register,用于暂存当前正在执行的指令。IR的时钟信号是clk,在clk的上升沿触发。IR将数据总线送来的指令存入16位的寄存器中,但并不是每次数据总线上的数据都需要寄存,因为数据总线上有时传输指令,有时传输数据。由CPU状态控制器的Ir_ena信号控制数据是否需要寄存。复位时IR被清零。

PC

程序计数器,Program Counter,是一个中央处理器中的寄存器,用于指示计算机在其程序序列中的位置。用于存放下一条指令所在单元的地址的地方。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到IR中,即取指令。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将PC的内容送到地址总线上。

SR

状态寄存器,Status Register,又名条件码寄存器,它是计算机系统的核心部件——运算器的一部分,SR用来存放两类信息:

  • 一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位(CF位)、有无溢出(OV位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(P位)等;
  • 另一类是存放控制信息(PSW,程序状态字寄存器),如允许中断(IF位)、跟踪标志(TF位)等。有些机器中将PSW称为标志寄存器FR(Flag Register)。

GR

通用寄存器,可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。

AR

地址寄存器

ID

指令译码器

DSP

数字信号处理器(Digital Signal Processor)由大规模或超大规模集成电路芯片组成,是用来完成某种信号处理任务的处理器。它是为适应高速实时信号处理任务的需要而逐渐发展起来的。随着集成电路技术和数字信号处理算法的发展,数字信号处理器的实现方法也在不断变化,处理能力不断提高。

编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的,DSP芯片一般都采用特殊的软硬件结构:
1) 哈佛结构
DSP采用哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问,每个存储器独立编址,独立访问。这种安排将处理器的数据吞吐率加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。在哈佛结构中,由于程序和数据存储器在两个分开的空间中,因此取指和执行能完全重叠运行。
2) 流水线
与哈佛结构相关,DSP芯片广泛采用2-6级流水线以减少指令执行时间,从而增强处理器的处理能力。这可使指令执行能完全重叠,每个指令周期内,不同的指令都处于激活状态。
3) 独立的硬件乘法器
在实现多媒体功能及数字信号处理的系统中,算法的实现和数字滤波都是计算密集型的应用。在这些场合,乘法运算是数字处理的重要组部分,是各种算法实现的基本元素之一。乘法的执行速度越快,DSP处理器的性能越高。相比与一般的处理器需要30-40个指令周期,DSP芯片的特征就是有一个专用的硬件乘法器,乘法可以在一个周期内完成。
4) 特殊的DSP指令
采用特殊的指令,专为数字信号处理中的一些常用算法优化。这些特殊指令为一些典型的数字处理提供加速,可以大幅提高处理器的执行效率。使一些高速系统的实时数据处理成为可能。
5) 独立的DMA总线和控制器
有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作。在不影响CPU工作的条件下,DMA的速度已经达到800MB/S以上。这在需要大数据量进行交换的场合可以减小CPU的开销,提高数据的吞吐率。提高系统的并行执行能力。
6) 多处理器接口
使多个处理器可以很方便的并行或串行工作以提高处理速度。
7) JTAG,Joint Test Action Group,标准测试接口(IEEE 1149标准接口),便于对DSP作片上的在线仿真和多DSP条件下的调试。
8) 快速的指令周期
哈佛结构,流水线操作,专用的硬件乘法器,特殊的DSP指令再加上集成电路的优化设计,可使DSP芯片的指令周期在10ns以下。快速的指令周期可以使DSP芯片能够实时实现许多DSP应用。

Pipeline

管道通信是一种共享文件模式,它基于文件系统,连接于两个通信进程之间,以先进先出的方式实现消息的单向传送。管道是一个特殊文件,在内核中通过文件描述符表示。一个管道总是连接两个命令,将左边命令的标准输出与右边命令的标准输入相连,于是左边命令的输出结果就直接成右边命令的输入。

MPU

嵌入式微处理器(MPU)是嵌入式系统硬件层的核心,大多工作在为特定用户群专用设计的系统中,它将通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。嵌入式微控制器(Embedded Microcontroller Unit,EMCU)的典型代表是单片机,也称嵌入式微控制器。它体积小,结构紧凑,作为一个部件安装在所控制的装置中,主要执行信号控制的功能。

片上系统(System-on-a-chip)指的是在单个芯片上集成一个完整的系统,一般包括CPU、存储器,以及外围电路等。SOC是与其他技术并行发展的,如绝缘硅(SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗。

指令流水线的吞吐率定义为:吞吐率TP=指令数/执行时间。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

johnny233

晚饭能不能加鸡腿就靠你了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值