ARM————体系结构

1、ARM结构框架

复制代码
RAM:随机存储,存储速度快,掉电数据丢失
    SRAM    静态存储
    DRAM    动态存储
    SDRAM   同步存储
    DDR     双倍速率同步存储

ROM:只读存储,存储速度慢,掉电不丢失数据
    PROM    可编程存储
    EPROM   可擦除编程存储
    EEPROM  可擦除电信号编程存储

FLASH:闪存,存储速度快,掉电数据不丢失
    norflash:或非门,可线性访问
    nandflash:与非门,不可线性访问
    线性访问:有专门的地址总线和数据总线,可以像内存一样访问

时钟:时钟是同步工作系统的同步节拍,时钟的快慢就是我们常说的工作频率,以赫兹(HZ)为单位。

2、CPU-ARM920T(中央处理器)

复制代码
ALU:运算单元
RO--R12:通用寄存器
R13-R15:特殊寄存器,程序计数器PC,链接寄存器LR,栈指针寄存器SP
PC:程序计数器,默认值为0,做自加运算,实际指向正在运行的下下条指令
LR:链接寄存器,保存函数的返回的PC地址
SP:栈指针寄存器,指向栈顶,存储传入函数的PC地址,函数结束时调用(利用满减栈)
    栈分类:满增栈,满减栈,空增栈,空减栈
CPSR:当前程序状态寄存器;运算结果为正、负、进借位、结果为0等标志, 中断的使能,工作状态,工作模式
SPSR:CPSR的备份,防止程序异常崩溃,保存当时程序状态
D-Cache:数据缓存区
I-Cache:指令缓存区
    冯。诺伊曼模型:数据缓存区和指令缓存区在一起,读取慢,占用资源少
    哈佛模型:数据和指令分开存储,读取快,占用资源多
MMU:内存管理单元(虚拟地址到物理地址的映射)

2.1为什么使用LR,SP存储PC地址

程序运行总是由低地址向高地址顺序执行,以PC来进行监控,若其中调用函数则会改变PC的值,若调用一次函数,函数结束后返回PC+1;若多次调用则会进入死循环,需要利用SP栈指针寄存器,存储调用函数前的PC值;使用满减栈,利用栈的特性,先进后出,由高地址到低地址,避免越界风险,可以判断栈是否为空。

2.2缓存与CPU的关系

CPU缓存是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度却比内存要快得多。CPU高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾。

3、SOC处理器

复制代码
CPU:中央处理单元
MCU:微控制器  51单片机
MPU:微处理器  intel
DSP:数字信号处理器
FPGA:现场可编程门阵列 --  硬件设计语言

AHB:高速总线
APB:低速总线

数据总线:
    1.定义
    指用来传输数据信息的系统总线
    指用来传输各功能部件之间的数据信息的系统总线
    2. 特性
    是双向传输的
    其位宽与机器字长、存储字长有关,一般为 8 位、16 位或 32 位

地址总线:
    1.定义
    指用来传输地址信息的系统总线
    指用来传输 CPU 想要访问的存储单元或 I/O 设备端口地址的系统总线
    2.特性
    由 CPU 输出地址信息到地址总线上
    单向传输

控制总线:读写信号等
    1.定义:用来传输各种控制信号的系统总线
    2.特性
    对单独的控制线而言,即对某一具体的控制信号来将,是单向传输的
    对控制总线这一总体而言,又可以认为是双向传输的(控制总线由多条控制线组成)
    控制总线会起到监视各部件状态的作用。例如,查询该设备是处于"忙"还是"闲",是否出错等

RISC:精简指令集
CISC:复杂指令集

4、电容、电阻、二极管、三极管

相关推荐
VT.馒头3 分钟前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
css趣多多10 分钟前
add组件增删改的表单处理
java·服务器·前端
予枫的编程笔记15 分钟前
【Linux进阶篇】从基础到实战:grep高亮、sed流编辑、awk分析,全场景覆盖
linux·sed·grep·awk·shell编程·文本处理三剑客·管道命令
Sheep Shaun15 分钟前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
devmoon20 分钟前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
Tfly__23 分钟前
在PX4 gazebo仿真中加入Mid360(最新)
linux·人工智能·自动驾驶·ros·无人机·px4·mid360
野犬寒鸦24 分钟前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
陈桴浮海25 分钟前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
认真的薛薛30 分钟前
数据库-sql语句
数据库·sql·oracle
生活很暖很治愈33 分钟前
Linux——环境变量PATH
linux·ubuntu