持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天!
SoC整体架构
CPU-SoC中的大脑
- CPU所做的工作由其指令集决定(intel,AMD的x86以及ARM架构)
- CPU的控制和数据通路执行指令集中的各种指令
指令集系统(ISA):是一个软硬件的界面。
指令集要完成哪些工作?
- 以ARM为例
-
分支指令
-
数据处理指令
- 寄存器传送
- 算术运算
- 逻辑运算指令
- 比较指令
- 乘法指令
-
存储器访问指令
- Load/Store内存访问指令
- 批量Load/Store内存访问指令(I-cache)
- SWP操作指令:寄存器和存储器交换指令
-
SWI系统调用指令:软中断
-
状态寄存器访问指令
-
控制和数据通路
- 取指:
- 译码:根据指令产生控制信号 (控制器:适当的时间向正确的部件发出正确的控制信号)
- 数据通路:在控制信号的控制下执行运算或传输功能
CPU性能优化技术
流水线技术(pipeline)
流水技术:通过增加指令吞吐率来改进性能
- 流水技术无助于减少单个任务的处理延迟(latency),但有助于提高整体工作负载的吞吐率
- 多个不同任务同时操作,可以使用不同资源
- 潜在的加速比= 流水线级数(理论上流水线级数越多,潜在加速比越大)
- 流水线的速率受限于最慢的流水段
- 流水段的执行时间如果不均衡,那么加速比就会降低
- 开始填充流水线的时间和最后排放流水线的时间降低加速比(什么时间取指与什么时候结束)
- 相关(后一级流水需要等待前一级流水结束才可以发送)将导致流水线暂停
高速缓存技术 cache
主存就是常说的内存,DDR;
Cache放在CPU与内存之间,一般都是片上高速的SRAM.接近于CPU速度。高速缓存解决了CPU与内存之间取指、取数据这样交互的过程。
超标量指令MIMD(多指令多数据)SIMD(单指令多数据)
可重构计算
这几年热度下降了
需要了解一下ARM!!
总线 -SoC的骨架
- CPU、高速设备、低速设备、外部存储器控制接口、系统控制模块等等SoC中各个模块之间的数据传输
- SoC中的各个IP模块以统一的接口和总线通信,避免了挂接在不同SoC架构中部分代码的重新编写
- 常用的总线:AMBA(重要)、NoC