当前位置: 首页 > article >正文

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

概述

局部性原理是指在指定时间内,程序趋于在有限的内存区域内重复访问。通常将局部性分为空间局部性和时间局部性。空间局部性是指已访问过的内存地址附近的位置很可能被连续访问。时间局部性是指已访问过的内存地址在较短的时间内还可能被多次访问。

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

一般来说,嵌入式系统通常采用接口中的移位寄存器来实现数据的串/并和并/串转换操作。

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

同步和异步

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

存储

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

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

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

其中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:直接内存存取DMA是指在内存与I/O设备间传送数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程考试启动与过程结束时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。在DMA方式中CPU与外设可并行工作。
  • 通道方式:一种高级的I/O控制部件,它在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去CPU的介入,从而使主机和外设的并行程度更高。通道并不能完全脱离CPU,它还要受到CPU的管理,比如启动、停止等,而且通道还应该向CPU报告自己的状态,以便CPU决定下一步的处理。
  • I/O处理机:I/O处理机除了能够完成通道的全部功能外,还可以进行码制转换、数据校正和校验、故障处理等。

总线

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

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

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

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

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

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

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

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

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

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取出第二条指令的地址,如此循环,执行每一条指令。

SR

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

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

GR

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

AR

地址寄存器

ID

指令译码器

DMA

Direct Memory Access,DMA,一种不经过CPU而直接在外设与内存间进行的数据交换控制方式,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完之后再把信息反馈给CPU即可。

JTAG

JTAG是一个调试接口,用来供开发人员调试CPU的工作状态。JTAG软件通过该接口控制CPU来调试CPU以及读写Flash。

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=指令数/执行时间。


http://www.kler.cn/news/337627.html

相关文章:

  • Leetcode: 0001-0010题速览
  • 【rCore OS 开源操作系统】Rust HashMap应用 知识点及练习题
  • ES(Elasticsearch)SSL集群部署
  • slurm上使用jupyter
  • uniapp生成随机数
  • 2-112基于matlab的协同干扰功率分配模型
  • FWA(固定无线接入),CPE(客户终端设备)简介
  • VADv2 论文学习
  • 【12月IEEE出版* 镇江 】第九届清洁能源与发电技术国际学术会议(CEPGT 2024)
  • EDA脚本应用领域及使用特点
  • 【重学 MySQL】四十三、多行子查询
  • 踩坑spring cloud gateway /actuator/gateway/refresh不生效
  • Ubuntu开机进入紧急模式处理
  • 工业数采的常用通讯协议
  • LeetCode题练习与总结:寻找重复数--287
  • Spring Boot实现的医院资源优化工具
  • 5G NR 切换流程简介
  • 高效医疗:Spring Boot医院管理解决方案
  • 深度学习·Argparse
  • 探索 Bruno 自动化框架:开启高效测试与开发之旅