一、OSC基本架构(片上系统)
OSC(On-chip System Control,片上系统控制)基本架构通常涉及片上系统中的各个组件如何进行协调与控制,以实现高效的处理、通信和管理。OSC架构在现代微处理器和系统单芯片(SoC)设计中起着关键作用,特别是在集成多种功能和外设的情况下。
OSC基本架构的主要组成部分
-
处理器核心(CPU): 处理器是系统的核心,负责执行指令和处理数据。现代架构可能包括多个处理器核心。
-
系统总线: 系统总线用于在处理器与其他各个组件之间传输数据。常见的总线包括AMBA(如AHB、AXI),PCI Express等。
-
内存控制器: 内存控制器用于管理对系统内存(如RAM)的访问,包括读写操作和数据缓存。
-
外设控制器: 外设控制器用于管理与各种外部设备(如GPIO、UART、SPI、I2C等)的通信,使得处理器可以与外部世界进行交互。
-
时钟和复位管理单元: 时钟管理单元负责为各组件提供时钟信号,以确保系统的同步运行。复位管理单元用于管理系统的复位状态,以确保在启动时各个组件处于适当状态。
-
中断控制器: 中断控制器处理来自外设或内部事件的中断请求,控制器负责确定哪个中断被处理,并将控制权转移到相应的中断处理程序。
-
电源管理单元(PMU): 电源管理单元负责调节电源的分配,实时监控电力消耗,并在不同工作状态下优化能效。
二、CPU
CPU(Central Processing Unit Core)是计算机系统中的一个基本组成部分,负责执行计算机指令并处理数据。随着技术的进步,CPU内核在性能和效率上也不断发展。以下是对CPU内核的基本介绍,包括其结构、功能、类型和演变。
CPU的基本结构
-
算术逻辑单元(ALU):
- 负责执行所有的算术(如加法、减法)和逻辑(如与、或)运算。
-
控制单元(CU):
- 控制指令的解码和执行过程,协调内核内部的其他组件和外部设备的工作。
-
寄存器:
- 内核中用于快速存取数据的小型存储单元,包括通用寄存器、指令寄存器和程序计数器等。
-
缓存(Cache):
- 包括L1、L2和有时的L3缓存,缓存用于存储经常使用的数据,以提高数据访问速度。
-
总线接口:
- 连接内核与主内存、外设之间的通信通道。这是数据和指令流入和流出的渠道。
CPU的功能
- 指令执行: 根据提供的指令集架构(ISA)执行各种操作,包括加载、存储、算术运算、逻辑运算等。
- 数据处理: 处理计算和逻辑决策,完成应用程序和操作系统的任务。
- 控制与管理: 通过控制单元协调各个组件的操作,确保指令按照正确的顺序执行。
CPU的类型
-
单核CPU:
- 只有一个内核,适合无需高并发处理的简单任务。
-
多核CPU:
- 包含多个内核,可以同时执行多个任务,提高了并行处理能力。多核CPU可以是对称多处理(SMP)或非对称多处理(AMP)。
-
超线程(Hyper-Threading):
- 一种技术,允许单个CPU内核同时处理多个线程,增加了CPU的逻辑核心数,提升了并行性能。
-
异构多核(Heterogeneous Multicore):
- 包含不同类型的内核(如性能核心和能效核心),根据负载采用不同的处理方法,以优化性能和能效。例如,ARM的big.LITTLE架构。
三、ARM
1.ARM有37个通用寄存器;cortex有40个;
2.
(1)SP (Stack Pointer): SP(栈指针)指向当前栈顶的位置。它用于管理函数调用和局部变量的存储。在 ARM 中,这个寄存器随着函数调用和返回而变化,确保栈的正确使用。
(2)LR (Link Register): LR(链接寄存器)用于存储函数返回地址。当一个函数被调用时,程序的下一个指令地址会被存储在 LR 中,方便在函数执行完后跳回到调用位置。
(3)PC (Program Counter): PC(程序计数器)包含当前正在执行指令的地址。在 ARM 中,PC 的值会在每个指令执行后自动更新,以指向下一条指令。可以直接控制 PC 以进行跳转或分支。
(4)CPSR (Current Program Status Register): CPSR(当前程序状态寄存器)保存有关处理器的当前状态,包括条件标志(如 Z、C、N、V)、处理器模式以及中断使能状态等。它反映了当前的执行状态。
(5)SPSR (Saved Program Status Register): SPSR(保存程序状态寄存器)用于保存 CPSR 的值,特别是在异常发生时。它允许在处理完中断或异常后恢复到之前的程序执行状态。因此,SPSR 是为了上下文切换提供支持。
3.异常向量表
四、ram和rom
1.ram
2.rom
nor flash:可寻址,支持随机存取,因此它的每个存储单元都可以单独寻址
nand flash:不支持随机存取,它是块级(block-level)存储,数据的读取和写入是通过块而不是单个字节进行的,这意味着在进行写入时需要擦除整个块。
3.主存储器:可由CPU直接访问,用来存放当前正在执行的程序和数据;
辅助存储器:设置在主机外部,CPU不能直接访问,用来存放暂时不需要参与执行的数据;