https://www.zhihu.com/people/jiu_sheng
https://blog.csdn.net/qianshang52013/article/details/138140235?spm=1001.2014.3001.5501
Autosar 系列教程:小柴带你学 AutoSar 总目录
# 小柴冲刺软考中级嵌入式系统设计师系列一、计算机系统基础知识(4)计算机硬件组成及主要部件
计算机系统的基本硬件组成包括
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
# 一、中央处理单元
中央处理单元(CPU)负责获取程序指令、对指令进行译码并加以执行。
# 1、CPU 的功能
功能 | 介绍 |
---|---|
(1) 程序控制 | 通过执行指令来控制程序的执行 |
(2) 操作控制 | 一条指令可能需要若干部件配合完成。CPU 产生每条指令的操作信号并将其送往对应的部件 |
(3) 时间控制 | CPU 对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要严格的控制 |
(4) 数据处理 | CPU 通过对数据进行算术运算及逻辑运算等方式进行加工处理 |
(5) 中断处理 | 对系统内部和外部的中断(异常)做出响应和处理 |
# 2、CPU 的组成
CPU 主要由运算器、控制器、寄存器、内部总线等部件组成。只能说很重要!!!
【这一章节当时去普华面试时被问到,当时只是了解,所以没答出来,所以挂了😭,回头来看,这个证书真的有用!家人们😎】
# ** 运算器:** 是数据加工和处理的部件,是执行部件
- 主要功能:
- 执行所有的算数运算:例如加、减、乘、除等基本运算及附加运算。
- 执行所以的逻辑运算饼进行逻辑测试,例如与、或、非、零值测试或两个值的比较等。
- 组成部件
- 算数逻辑单元(ALU):负责处理数据,实现对数据的算数运算和逻辑运算。
- 累加寄存器(AC):是一个通用寄存器,为 ALU 提供一个工作区。例如,在执行一个减法运算前,先将被减数取出暂存在 AC 中,再从内存储器中取出减数,然后同 AC 的内容相减,将所得的结果送回 AC 中。运算的结果是放在累加器中的,运算器中至少有一个累加寄存器。
- 数据缓冲寄存器(DR):在对内存储器进行读 / 写操作时,用 DR 暂时存放由内存储器读写的一条指令或一个数据字,将不同时间段内读写的数据隔离开来。
- 作为 CPU 和内存、外部设备之间数据传送的中转站
- 作为 CPU 和内存外围设备之间在操作速度上的缓冲
- 在单累加器结构的运算器中,数据缓冲寄存器还可兼为操作数寄存器
- 状态条件寄存器(PSW):PSW 保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容
- 主要分为
- 状态标志
- 控制标志
- 例如
- 运算结果进位标志(C)
- 运算结果溢出标志(V)
- 运算结果为零标志(Z)
- 运算结果为负标志(N)
- 中断标志(I)
- 方向标志(D)
- 单步标志
- 这些标志通常分别由 1 位触发器保存,保存了当前指令的执行完成之后的状态,通常,一个算数操作产生一个运算结果,而一个逻辑操作产生一个判决。
- 主要分为
# ** 控制器:** 运算器只能完成运算,而控制器用于控制整个 CPU 的工作,它决定了计算机的运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。
控制器一般包括:
- 指令控制逻辑
- 要完成取指令、分析指令、执行指令的操作
- 过程为:取指令、指令译码、按指令操作码执行、形成下一条指令地址等
- 时序控制逻辑
- 为每条指令按时间顺序提供应有的控制信号。
- 总线控制逻辑
- 为多个功能部件服务的信息通路的控制电路
- 中断控制逻辑
- 用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给 CPU 处理
寄存器介绍:
- 指令寄存器(IR)
- 当 CPU 执行一条指令时,先把它从内存储器取到缓冲寄存器中,在送入 IR 暂存,指令译码器根据 IR 的内容产生各种位操作指令,控制其他的组成部件工作。
- 程序计数器(PC)
- PC 具有寄存器信息和计数两种功能,又称为指令计数器。
- 程序指令分为两种情况:
- 顺序执行
- 转移执行
- 在程序开始执行前,将程序的起始地址送入 PC,该地址在程序加载到内存时确定,因此 PC 的内容即是程序第一条指令的地址。
- 执行指令时,CPU 自动修改 PC 的内容,以便使其保持的总是将要执行的下一条指令的地址。
- 由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对 PC 加 1。
- 当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。
- 地址寄存器(AR)
- AR 保存当前 CPU 所访问的内存单元的地址。由于内存和 CPU 存在着操作速度上的差异,所以需要使用 AR 保持地址信息,知道内存的读写操作完成为止。
- 指令译码器(ID)
- 指令包含操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。
- 作用:对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作。
# 寄存器组
寄存器组可分为专用寄存器和通用寄存器。
运算器和控制器中的寄存器时准用寄存器,其作用时固定的。
通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。
# 3、多核 CPU
核心又称为内核,是 CPU 最重要的组成部分。是由单晶硅以一定的生产工艺制造出来的。
CPU 所有的计算、接收 / 存储命令、处理数据都由核心执行。
各种 CPU 都具有固定的逻辑结构:
- 一级缓存
- 二级缓存
- 执行单元
- 指令级单元
- 总线接口等
多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核有自己的逻辑单元、控制单元、中断处理器、运算单元、一级 Cache、二级 Cache 共享或独有,其部件的完整性和单核处理器内核相比完全一致。
CPU 的主要厂商 AMD 和 Intel 的双核技术在物理结构上有所不同。
- AMD 将两个内核做在一个 Die(晶元)上,通过直连架构连接起来,集成度更高。
- Intel 则是将放在不同核心上的两个内核封装在一起
- 因此将 Intel 的方案称为双芯,将 AMD 的方案称为双核
多核 CPU 系统最大的优点(也是开发最主要的目的)是可满足用户同时进行多任务处理的要求。
单核多线程 CPU 是交替地转换执行多个任务,只不过交替转换的时间很短,用户一般感觉不出来。
虽然采用了 Intel 超线程技术的单核可以视为是双核,4 核可以视为是 8 核。但是一般比不上实际的 8 核 CPU 的性能。
要发挥 CPU 的多核性能,就需要操作系统能够及时、合理地给各个核心分配任务和资源(如缓存、总线、内存等),也需要应用软件在运行时可以把并行的线程同时交付给多个核心分别处理。
# 二、存储器
- CPU 内部的通用寄存器组和 Cache (高速缓存)
- CPU 外部的 Cache
- 主板上的主存储器
- 主板外的联机 (在线) 磁盘存储器
- 脱机 (离线) 的磁带存储器和光盘存储器等
Cache 和主存之间的交互功能全部由硬件实现
主存与辅存之间的交互功能可由硬件和软件结合起来实现
# 1、存储器的分类
按存储器所处的位置分类
- 内存。也称为主存。设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向 CPU 提供信息。相对于外存,其特点是容量小、速度快。
- 外存。也称为辅存,如磁盘、磁带和光盘等,用来存储当下不参加运行的大量信息,而在需要时调入内存。
按存储器的构成材料分类
- 磁存储器。磁存储器是用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带、磁盘等。
- 半导体存储器。根据所用元器件又可分为双极型和 MOS 型,根据数据是否需要刷新又可分为静态和动态两种。
- 光存储器。利用光学方法读写数据的存储器,如光盘。
按存储器的工作方式分类
读写存储器 (Random Access Memory) RAM。
- 静态随机存储器 SRAM
- 动态随机存储器 DRAM
- SRAM 比 DRAM 更快更贵
只读存储器。工作时只能读取的存储器。
- 固定只读存储器 (Read Only Memory) ROM。在厂家生产时就写好的,只能读出不能改变。一般用于存放系统程序 BIOS 和用于微程序控制。
- 可编程的只读存储器 (Programmable Read Only Memory) PROM。可以由用户一次性写入,写入后不再修改。
- 可擦除可编程的只读存储器 (Ereasable Programmable Read Only Memory) EPROM。可读可写,改写之前用紫外线照射 15~20 分钟以擦除所有信息,然后再用特殊的电子设备写入信息。
- 电擦除可编程的只读存储器 (Electrically Erasable Programmable Read Only Memory) EEPROM。可读可写。电擦除后可进行数据的改写。
- 闪存 Flash Memory。闪存是一种非易失性存储器,基于 EEPROM,已成为重要的存储技术,为大量电子设备包括数码相机、手机、PDA、笔记本、台式机和服务器等计算机系统提供快速且持久的存储能力。
按访问方式分类
- 按地址访问的存储器
- 按内容访问的存储器
按寻址方式分类
- 随机存储器 RAM,访问任何一个存储单元的时间是相同的
- 顺序存储器 SAM,例如磁带
- 直接存储器 DAM,介于 RAM 和 SAM 之间,对磁道的寻址是随机的,磁道内是顺序的。
# 2、相联存储器
相联存储器是一种按内容访问的存储器。其工作原理是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合信息的检索和更新。
# 3、高速缓存
高速缓存(Cache)由快速半导体存储器构成,用来存放当前最活跃的程序和数据,其内容是主存局部域的副本,对程序员来说是透明的。
# 高速缓存的组成
Cache 存储器中的控制部分的功能是判断 CPU 要访问的信息是否在 Cache 存储器中,若存在即为命中,若不在则没有命中。
命中时直接对 Cache 存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到 Cache 存储器的哪一块里。
# 高速缓存中的地址映射方法
在 CPU 工作时,送出的是主存单元的地址,而应从 Cache 存储器中读写信息。这就需要将主存地址转换成 Cache 存储器的地址,这种地址的转换称为地址映射。有以下三种映射方式
# 直接映像
直接映像是指主存的块与 Cache 块的对应关系是固定的
一一对应的位置,地址变换简单,灵活性差。
例如:不同区号中块号相同的块无法同时调入 Cache 存储器,即使 Cache 存储器中有空闲的块也不能利用。
# 全相联映像
在地址变换时,利用主存地址高位表示的主存块号与 Cache 中相联存储器所有单元中记录的主存块号进行比较,若相同即为命中。
# 组相联映像
规定组采用直接映像方式而块采用全相联映像方式。
# 替换算法
替换算法的目标就是使 Cache 获得尽可能高的命中率
- 随机替换算法
- 先进先出算法
- 近期最少使用算法
- 优化替换算法
# Cache 性能分析
命中率是 Cache 的一个重要指标。Cache 设计的目标是在成本允许的情况下达到较高的命中率,使存储系统具有最短的平均访问时间。这里有一些公式
很容易理解,Cache 容量越大,命中率越高。但是时间和成本会相应增加。
因此降低失效率是提高 Cache 性能的一项重要措施。
# 4、虚拟存储器
虚拟存储使用虚拟地址(由 CPU 生成)的概念来访问主存,使用专门的 MMU(Memory Management Unit)将虚拟地址转换为物理地址后访问主存。
# 5、外存储器
外存储器主要由
- 磁表面存储器
- 磁盘
- 磁带
- 光盘存储器
- 固态硬盘
- 存储介质
- Flash 芯片
- DRAM
- 存储介质
# 磁盘存储器
为了能正确读取信息,将盘片划分为许多同心圆,称为磁道(track)。将一个磁道沿圆周划分为若干段,每段称为一个扇区(sector), 每个扇面区可存放一个固定长度的数据块,如 512 字节。一组盘片的所有记录面上相同序号的磁道构成一个柱面(cylinder)。
硬盘的寻址信息有:
- 硬盘驱动号
- 柱面号
- 磁头号
- 数据块号
- 交换量
对扇区的访问时间主要包括下面三分部分:
- 寻道时间 seek time
- 旋转时间 rotational latency
- 传送时间 transfer time
# 光盘存储器
- 只读型光盘 CD-ROM
- 只写一次型光盘 WROM
- 可擦除型光盘
光盘存储由光学、电学和机械部件构成。
特点是记录密度高、存储容量大、采用非接触式读写信息、信息可长期保存 10 年以上、多通道最高速率可超过 200Mb/s、成本低、对机械部件精度要求不高,存取时间长。
# 固态硬盘
固态硬盘 Solid State Disk,SSD 的存储介质分两种。
- 闪存:FLASH 芯片作为存储介质
- DRAM 作为存储介质
闪存是有使用寿命的可以被擦除的次数是有限的。
SSD 的读操作比写操作要快,顺序读写比随机读写快
固态虽然价格贵,容量低。但它读写快、质量轻、能耗低、体积小。
# 6、磁盘阵列技术
由多台磁盘存储器组成一个快速、大容量、高可靠的外存子系统。
常见的是廉价冗余磁盘阵列 Redundant Array of Independent Disk, RAID
# 7、存储域网络
SAN 实现了分布式存储系统的集中管理
# 三、总线
总线是指计算机设备和设备之间的传输信息的公共数据通道,是连接计算机硬件系统内多种设备的通信线路。
# 1、总线的分类
三类:
- 数据总线(Data Bus,DB)用来传输数据信息,是双向的。DB 的宽度决定了 CPU 和计算机其他设备之间每次交换数据的位数。
- 地址总线(Address Bus,AB)用于传输 CPU 发出的地址信息,是单向的。每个存储单元都有一个固定的地址,要访问 1MB 存储器中的任意单元,就需要 220 个地址,也就是 20 位地址(220=1M),地址总线的宽度决定了 CPU 的最大寻址能力。
- 控制总线(Control Bus,CB)用来传输控制信号、时序信号、和状态信息等。总体是双向的,但对于每一个具体的信号来说是单向的。
总线的性能直接影响到整机系统的性能,与芯片相连的总线可以分为前端总线(FSB)、存储总线、I/O 总线、扩展总线等。
南北桥芯片结构
- 北桥芯片
- 直接与 CPU、内存、显卡、南桥相连。控制着
- CPU 类型
- 主板的总线频率
- 内存控制器
- 显示核心等
- 前端总线(FSB)是将 CPU 连接到北桥芯片的总线
- 内存总线将内存连接到北桥
- 显卡则通过 I/O 总线连接到北桥芯片
- 直接与 CPU、内存、显卡、南桥相连。控制着
- 南桥芯片
主要负责外部设备接口与内部 CPU 的联系。
通过 I/O 总线连接外部 I/O 设备到南桥,例如:
- USB 设备
- ATA 和 SATA 设备
- 一些扩展接口
扩展总线指的是主板上提供的一些 PCI、ISA 等插槽。
单芯片结构
单芯片组方式取消了北桥。
由于 CPU 中内置了内存控制器,不再需要通过北桥来控制,这样就能提高内存控制器的效率,减少延迟。
还有一些 CPU 还集成了显示单元,使得显示芯片的频率更高,延迟更低。
# 2、常见总线
- ISA 总线:ISA 是工业标准总线,只支持 16 位 I/O 设备,数据传输率大约是 16Mb/s, 也称为 AT 标准。
- EISA 总线:EISA 是在 ISA 总线的基础上发展起来的 32 位总线。该总线定义 32 位地址线、32 位数据线以及其他控制信号线、电源线、地线等共 196 个接点。总线传输速率达 33Mb/s.
- PCI 总线:是微型机上广泛采用的内总线,并行传输,至少 133Mb/s,64 位的 PCI 总线速率为 266Mb/s.
- PCI 总线的工作与 CPU 的工作是相互独立的。PCI 总线时钟与处理器时钟是相互独立的、非同步的,PCI 总线上的设备即插即用。
- 接在 PCI 总线上的设备均可以提出总线请求,通过 PCI 管理器中的仲裁机构允许该设备称为主控设备,主控设备与从属设备间可以进行点对点的数据传输。
- PCI 总线能够对所传输的地址和数据信号进行奇偶校验检测。
- PCI Express 总线:简称 PCI-E,采用点对点串行连接,每个设备都有自己的专用连接,不需要向总线请求带宽
- 相对于传统 PCI 总线在单一时间周期内只能实现单向传输,PCI-E 的双单工连接能提供更高的传输速率和质量。
- 接口根据总线位宽不同而有所差异,包括 X1、X4、X8 以及 X16(X2 模式将用于内部接口而非插槽模式),X1 速率 250MB/s,X16 等于 X1 的 16 倍即 4GB/s.
- 较短的 PCI-E 可以插入较长的插槽中使用,支持热插拔。
- 支持双向传输模式,可以运行全双工,双单工可以提供更高的传输速率和质量。
- 前端总线:Front Side Bus,FSB, 是将 CPU 连接到北桥芯片的总线。
- 需要注意主板与 CPU 搭配问题。一般来说,如果 CPU 不超频,那么前端总线是由 CPU 决定的,如果主板不支持 CPU 所需要的前端总线,系统就无法工作。
- RS-232C:串行外总线,需要三根线(收、发、地)即可实现全双工通信。
- 电平传送 15m,电流环传送可达千米。
- 采用非归零码负逻辑工作,电平 <=-3V 为逻辑 1,而电平>=+3V 为逻辑 0,具有较好的抗干扰性。
- SCSI 总线:并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。
- SATA:串行 ATA,主要用作主板和大量存储设备(如硬盘和光盘驱动器)之间的数据传输。
- USB:通用串行总线,由 4 条信号线组成,两条用于数据传输,两条传送 + 5V 容量为 500mA 的电源。可以通过集线器 Hub 进行树状连接,最多可达 5 层,最大的有点是即插即用热插拔。
- IEEE-1394:高速串行外总线。
- IEEE-488 总线:并行总线接口。
# 四、输入输出控制
# 1、I/O 设备概述
两类
- 块设备
- 把信息存放在固定大小的块中,每个块都有自己的地址,独立于其他块,可寻址。
- 例如磁盘、USB 闪存、CD-ROM、等
- 字符设备
- 以字符为单位接收或发送一个字符流,不可寻址。
- 例如打印机、网卡、鼠标键盘等
CPU 与 I/O 设备控制器中的寄存器或设备缓冲区通信有两种方案
- 为每个控制器分配一个 I/O 端口号
- 内存映射
# 2、程序控制方式
- 无条件传送
- 程序查询方式
# 3、中断方式
在系统中有多个中断源的情况下,常用的处理方法有
- 多中断信号线法
- 每个中断源都有自己的中断请求信号线。
- 中断软件查询法
- 菊花链法
- 硬件查询中断源
- 总线仲裁法
- 中断向量表法
- 由中断控制器 INTC 来确定中断号
在进行优先级控制时也有以下两种解决方案
- 同时请求时,响应优先级最高的
- 正在处理中断时挂起当前中断去处理更高优先级的中断实现中断嵌套
# 4、DMA 方式
直接内存存取(Direct Memory Access)DMA, 不需要 CPU 的任何干涉,只需要 CPU 发出启动信号,结束时 CPU 通过轮询或者中断来查询结果。
DMA 在传输数据时需要占用系统总线,分为
- 中央处理器停止法
- 总线周期分时法
- 总线周期挪用法
总之,在 DMA 使用总线时 CPU 就用不了