本文由本人@takooctopusIC学习记录
SoC的架构
指令集(ISA)类型
- Complex Instruction Set Computers 复杂指令集(CISC)
- Reduced Instruction Set Computers 精简指令集(SISC)
评价因素
- instr.count
- code size
- CPI
- cycle time
指令的并行执行
- Pipelining 流水线「执行不同的子序列」
- Superscalar 超标量「runtime时检查并行度,真正的并行执行」
- VLIW 超长指令字「与超标量的区别在于其并行度在编译时产生」
明显的Superscalar 的SOC结构较于VLIW的架构复杂度更高
常见处理器类型
- 通用处理器
- ARM「Advanced RISC Machines」
- RISC architecture
- ARM7: 3 pipeline stages, ARM9: 5 pipeline stages
- MIPS「Microprocessor without interlocked piped stages」
- RISC architecture
- 5,6,7,8 pipeline stages in different chip
families
- powerPC
- Harvard architecture 「wiki解释」
- Superscalar
- 5 pipeline stages
- ARM「Advanced RISC Machines」
- Digital Signal Processor(DSP) 数字信号处理
- Reconfigurable 可配置
选择方式
- 计算复杂度
- 应用类型
- 计算密集型(Computation Intensive)
- 控制密集型(Control Intensive)
性能计算
- CPI: average clock cycles per instruction
- Number of cycles for program P「
周期数 = 指令数 * CPI
」 - Execution time for P「
运行时间 = 时钟周期 * 周期数
」 - Number of instructions per second(MIPS)「
每秒指令数 = 指令数 / (时间 * 10^6)
」
总线
总线属性
- Bus width (bits)
- Bus frequency (Hz)
- Bandwidth
- the total amount of data that can theoretically be transferred on the bus in a given unit of time.
- Arbitration mechanism
- Transfer type
总线略述
- ARM’AMBA
- AMBA‐AHB
- AMBA‐AXI
- IBM’s CoreConnect
- Silicore’s Wishbone
- Avalon bus
- OCP (Open Core Protocol) Bus
内存
- SRAM「6个晶体管」
- SDRAM「电容(有充放电问题)」
- DDRAM「双数据速率的SDRAM」
- ROM
- Flash
- New non‐volatile memory
- MRAM 电磁
- RRAM 阻抗
- FeRAM 铁磁
- PRAM 相位
多核SoC设计
- MPSoC (Multiprocessor SoC)
- Parallelism
- Instruction level 指令级: pipeline, VLIW, superscalar
- Data level 数据级: SIMD
- Task level 任务级: video process & audio process & radio
设计考虑:
- Processor and memory
- Distributed vs share
- Inter‐core communication
- Data sharing
- Synchronization
- Operation system
- Task allocation, interrupt mechanism, dealing with resource access conflict
- Compiler
- Increase parallelism
- Performance evaluation
- Amdahl law: fixed‐size of task 加速比
- $ speedup = \frac{time_{单核}}{time_{多核}} = \frac{1}{(1-f_{1})+f_{1}/n} $ 其中 $ f_1 $ 指任务中并行部分
- Gastofson law: fixed‐time
- $ speedup = (1-f_{2})+nf_{2} $ 。其中$f_{2} $ 指并行时间, $ n $ 指核心数
- Amdahl law: fixed‐size of task 加速比