IC-SoC(三):SoC的架构

本文由本人@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
  • 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 $ 指核心数