【计算机系统结构】~ ROM/PROM/EPROM/E2PROM/FLASH、SOC 片上系统、总线、CPU 处理器、Cache、DDR、ARM 体系结构、虚拟内存、内核 kernel

1. ROM/PROM/EPROM/E2PROM/FLASH

ROM 指的是“只读存储器”,即 Read-Only Memory。这是一种线路最简单半导体电路,通过掩模工艺, 一次性制造,其中的代码与数据将永久保存(除非坏掉),不能进行修改。

PROM 指的是“可编程只读存储器”既 Programmable Red-Only Memory。这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。
PROM 在出厂时,存储的内容全为 1,用户可以根据需要将其中的某些单元写入数据 0(部分的 PROM 在出厂时数据全为 0,则用户可以将其中的部分单元写入,以实现对其“编程”的目的。

EPROM指的是“可擦写可编程只读存储器”,即Erasable Programmable Read-Only Memory。它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。

EEPROM 指的是“电可擦除可编程只读存储器”,即 Electrically Erasable Programmable Read-Only Memory。它的最大优点是可直接用电信号擦除,也可用电信号写入。
EEPROM 不能取代 RAM 的原因是其工艺复杂,耗费的门电路过多,且重编程时间比较长,同时其有效重编程次数也比较低。

Flash memory 指的是“闪存”,所谓“闪存”,它也是一种非易失性的内存,属于 EEPROM 的改进产品。它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而 EEPROM 则可以一次只擦除一个字节(Byte)。

2. SOC 片上系统

2.1 概述

System on Chip 的缩写,称为系统级芯片,也有称片上系统。
狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲,SoC 是一个微小型系统,如果说中央处理器(CPU)是大脑,那么 SoC 就是包括大脑、心脏、眼睛和手的系统。
国内外学术界一般倾向将 SoC 定义为将微处理器、模拟 IP 核、数字 IP 核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。

2.2 SoC 关键技术

包括 总线架构技术、IP 核可复用技术、软硬件协同设计技术、SoC 验证技
术、可测性设计技术、低功耗设计技术、超深亚微米电路实现技术。

2.3 SOC 的组成

在这里插入图片描述

  1. 一个微控制器、微处理器或DSP核。有些包含不止一个处理器核的SoC称为multiprocessor system on chip (MPSoC)。
  2. 内存模块,可以是 ROM、RAM、EEPROM 和 flash。
  3. 时钟源。
  4. 外设,包括计数器。
  5. 外部接口,如 USB、FireWire、Ethernet、SPI。
  6. 数模转换器和模数转换器。
  7. 电源和电压管理电路。

2.4 SOC 特征

并不是包含了微处理器、存储器以及其他外围设备和电路的芯片就是 SoC,就像我们不能将一块 51 单片机称为 SoC。SoC 是建立在 IP 核(具有复杂系统功能且能独立出售的超大规模集成电路块)上的,可以对 IP 核进行复用,以达到快速开发的目的。由于 SoC 芯片的高集成度以及较短的布线,它的功耗也相对低的多。SoC 将多芯片都集成到一起,不需要单独的配置更多芯片,这样更能够有效的降低生产成本,因此使用 SoC 方案成本更低。

2.5 SOC 的应用

SoC 的应用十分广泛,最为常见的当属我们日常生活中使用的智能手机。比如苹果 A4 处理器就是基于 ARM 处理器架构的 SoC,它集成基于 45 纳米制程的一颗 ARM Cortex-A8 处理器内核以及一颗 PowerVR SGX 535 图形处理内核。不过,在企业级的服务器和 HPC 等领域,SoC 并不是最好的选择,但 SoC 会在整个计算设备中挤占传统的 CPU 市场,比如移动端(手机、平板、传感器等等)和低端服务器、存储等设备。

3. 总线

由 ARM 公司推出的 AMBA 片上总线受到了广大 IP 开发商和 SOC 系统集成者的青睐,已成为一种流行的工业标准。

AMBA 4:可以根据应用不同可选 AXI4/AXI4-LITE/AXI4-STREAM。

3.1 AXI 协议

AXI 协议包含 5 个相对独立的通道,读操作通过 AR 和 R 通道完成,写操作通过 AW、W 和 B 通道完成。
AXI 所有五个通道均使用相同的 VALID/READY 握手机制来传送数据和控制信息,这种机制使 master 和 slave 可以自由控制信息传输的速率。
AXI 协议是基于 burst 进行数据串数,一个 burst 可能包含多拍数据,每个拍数据称为一个transfer 或者 beat。AXI 协议有一个总体限制,就是 burst 操作不能越过 4K 边界,以保证burst 操作访问的都是同一个 slave。

4. CPU 处理器

4.1 概述

冯诺依曼体系结构提出了存储程序的思想。“存储程序”的意思就是将程序存到计算机内部,计算机自动执行。

4.2 主要特点

  1. 计算机处理的数据和指令一律用二进制数表示。
  2. 顺序执行程序。
  3. 计算机硬件由运算器,控制器,存储器,输入设备和输出设备五大部分组成。
  4. 指令集可以分为 CISC 和 RISC 两部分。
    在这里插入图片描述

5. Cache

5.1 初识Cache

Cache 存储器,电脑中为高速缓冲存储器,是位于 CPU 和主存储器 DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由 SRAM(Static Random Access Memory 静态存储器)组成。
它是位于 CPU 与内存间的一种容量较小但速度很高的存储器。CPU 的速度远高于内存,当CPU 直接从内存中存取数据时要等待一定时间周期,而 Cache 则可以保存 CPU 刚用过或循环使用的一部分数据,如果 CPU 需要再次使用该部分数据时可从 Cache 中直接调用,这样就避免了重复存取数据,减少了 CPU 的等待时间,因而提高了系统的效率。Cache 又分为
L1Cache(一级缓存)和 L2Cache(二级缓存),L1Cache 主要是集成在 CPU 内部,而 L2Cache集成在主板上或是 CPU 上。

5.2 Cache 原理:局部性原理

空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的。

时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息。

5.3 映射

5.3.1 直接映射

主存中的每一个块只能被放置到 Cache 中唯一的一个位置。

优点:映射方式简单,可以得到比较快的访问速度。
缺点:效率低。

5.3.2 全相联映射

指主存的任意一块可以映射到 cache 的任意一块。

优点:命中率比较高,cache 存储空间利用率高。
缺点:速度低,成本高。

5.3.3 组相联映射

指主存中的每一块可以被放置到 Cache 中唯一的一个组(相当于直接映射)中的任何一路(相当于全相联映射)。

优点:块的冲突率比较低,块的利用率大幅度提高,块的缺失率明显降低。
缺点:实现难度和造价要比直接映射方式高。

5.4 Cache 一致性问题

在多处理器中,不仅 cache 同共享存储器中的同一数据拷贝可能不一致,而且多个处理器异步的独立操作也会使多个 cache 中同一存储块的拷贝不一致。

5.4.1 监听协议

对于被处理器独占的 Cache 中的缓存的内容,该处理器负责监听总线,如果该内容被本处理器改变,则需要通过总线广播;反之,如果该内容状态被其他处理器改变,本处理器的Cache 从总线收到了通知,则需要相应改变本地备份的状态。

5.4.2 目录协议

需要缓存在 Cache 的内存块被统一存储在一个目录中,目录表统一管理所有的数据,协调一致性问题。该目录表类似于一个仲裁者,当处理器需要把一个数据从内存中加载到自己独占的 Cache 中时,需要向目录表提出申请;当一个内存块被某个处理器改变之后,目录表负责改变其状态,更新其他处理器的 Cache 中的备份,或者使其他处理器的 Cache 的备份无效。

5.4.3 MESI 协议

MESI 中每个缓存行都有四个状态,分别是 E(exclusive)、M(modified)、S(shared)、I (invalid)。下面我们介绍一下这四个状态分别代表什么意思。

M:代表该缓存行中的内容被修改了,并且该缓存行只被缓存在该 CPU中。这个状态的缓存行中的数据和内存中的不一样,在未来的某个时刻它会被写入到内存中(当其他 CPU 要读取该缓存行的内容时。或者其他 CPU 要修改该缓存对应的内存中的内容时(个人理解 CPU要修改该内存时先要读取到缓存中再进行修改),这样的话和读取缓存中的内容其实是一个道理)。

E:E 代表该缓存行对应内存中的内容只被该 CPU 缓存,其他 CPU 没有缓存该缓存对应内存行中的内容。这个状态的缓存行中的内容和内存中的内容一致。该缓存可以在任何其他 CPU读取该缓存对应内存中的内容时变成 S 状态。或者本地处理器写该缓存就会变成 M 状态。

S:该状态意味着数据不止存在本地 CPU 缓存中,还存在别的 CPU 的缓存中。这个状态的数据和内存中的数据是一致的。当有一个 CPU 修改该缓存行对应的内存的内容时会使该缓存行变成 I 状态。

I:代表该缓存行中的内容时无效的。

5.5 Cache 性能指标

命中率、失效率、平均访问时间

平均访存时间 = 命中时间+失效率×失效开销

6. DDR

6.1 DDR 层次结构

  1. Channel:也就是通道,简单理解就是 DDRC(DDR 控制器),一个通道对应一个 DDRC。芯片支持多少个 DDRC 就支持多少个通道。
  2. DIMM:双列直插式内存模块。说白了就是内存条/插槽。
  3. RANK:由多个颗粒并联,位宽与通道的数据位宽一样。比如 channel 的数据位宽是 x64,颗粒是 x8 的,那就需要 8 个颗粒组成一个 rank。一个 DIMM 可以多个 rank。
  4. CHIP:就是内存条上贴的存储芯片,也叫作颗粒。根据数据位宽,可分为 x4,x8 和 x16的。
  5. BANK:chip 往下拆分就是 bank。
  6. ROW&COL:BANK 往下拆分就是一个个的存储单元,横向一排称之为 row,纵向一列称之为 column。

6.2 Burst lenth 突发长度:

Burst Lengths,简称 BL,指突发长度,突发是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(SDRAM),在 DDR SDRAM中指连续传输的周期数。
只要指定起始列地址与突发长度,内存就会依次自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。
在 DDR3 SDRAM 时代,内部配置采用了 8n prefetch(预取)来实现高速读写.这也导致了 DDR3的 Burst Length 一般都是 8。

6.3 Prefetch 预取:

所谓 prefetch,就是预加载,这是 DDR 时代提出的技术。在 SDR 中,并没有这一技术,所以其每一个 cell 的存储容量等于 DQ 的宽度(芯片数据 IO 位宽)。
进入 DDR 时代之后,就有了 prefetch 技术,DDR 是两位预取(2-bit Prefetch),有的公司则贴切的称之为 2-n Prefetch(n 代表芯片位宽)。DDR2 是四位预取(4-bit Prefetch),DDR3和 DDR4 都是八位预取(8-bit Prefetch)。而 8-bit Prefetch 可以使得内核时钟是 DDR 时钟的四分之一,这也是 Prefetch 的根本意义所在。

6.4 DDR 关键参数:

tRCD:行寻址到列寻址的延迟时间。
tCL:内存读写操作前列地址控制的潜伏时间。
tRP:内存行地址控制器预充电时间。

7. ARM 体系结构

7.1 概述

ARM(Advanced RISC Machines)是一个 32 位 RISC(精简指令集)处理器架构,ARM 处理器则是 ARM 架构下的微处理器。ARM 处理器广泛的使用在许多嵌入式系统。ARM 处理器的特点有指令长度固定,执行效率高,低成本等。

7.2 RISC 设计主要特点

  1. 指令集——RISC 减少了指令集的种类,通常一个周期一条指令,采用固定长度的指令格式,编译器或程序员通过几条指令完成一个复杂的操作。而 CISC 指令集的指令长度通常不固定;
  2. 流水线——RISC 采用单周期指令,且指令长度固定,便于流水线操作执行;
  3. 寄存器——RISC 的处理器拥有更多的通用寄存器,寄存器操作较多。例如 ARM 处理器具有 37 个寄存器;
  4. Load/Store 结构——使用加载/存储指令批量从内存中读写数据,提高数据的传输效率;
  5. 寻址方式简化,指令长度固定,指令格式和寻址方式种类减少。

7.3 ARM 的基本数据类型

双字节(DoubleWord):64 位
字(Word):在 ARM 体系结构中,字的长度为 32 位。
半字(Half-Word):在 ARM 体系结构中,半字的长度为 16 位。
字节(Byte):在 ARM 体系结构中,字节的长度为 8 位。

7.4 ARM 处理器存储格式

ARM 体系结构将存储器看作是从 0 地址开始的字节的线性组合。作为 32 位的微处理器,ARM 体系结构所支持的最大寻址空间为 4GB。ARM 体系结构可以用两种方法存储字数据,分别为大端模式和小端模式。

大端模式(高地高低):字的高字节存储在低地址字节单元中,字的低字节存储在高地址字节单元中。

小端模式(高高低低):字的高字节存储在高地址字节单元中,字的低字节存储在低地址字节单元中。

8. 虚拟内存

8.1 什么是虚拟内存?

基于局部性原理,在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。

之所以将其称为虚拟存储器,是因为这种存储器实际上并不存在,只是由于系统提供了部分装入、请求调入和置换功能后(对用户完全透明),给用户的感觉是好像存在一个比实际物理内存大得多的存储器。虚拟存储器的大小由计算机的地址结构决定,并非是内存和外存的简单相加。

8.2 虚拟存储器三个主要特征

  1. 多次性,是指无需在作业运行时一次性地全部装入内存,而是允许被分成多次调入内存运行。
  2. 对换性,是指无需在作业运行时一直常驻内存,而是允许在作业的运行过程中,进行换进和换出。
  3. 虚拟性,是指从逻辑上扩充内存的容量,使用户所看到的内存容量,远大于实际的内存容量。

9. 内核 kernel

9.1 概述

内核是操作系统最基本的部分,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的, 所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口(为系统调用开发的接口)。一句话就是对硬件进行管理。

9.2 功能

  1. 为系统调用开发的接口:为了开发人员更高效的操作内核,进而操作系统。
  2. 程序管理:例如多任务环境,一台计算机可能同一时间需要处理多个任务,需要内核分配好,高效运转。
  3. 内存管理:所有需运行的任务,都得放到内存里,内核要处理好。
  4. 文件系统管理:I/O 输入/输出设备,还有不同文件格式的支持。
  5. 设备驱动:通过加载驱动程序,使计算机与相关硬件连接起来。
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值