多处理器

    412
    最后修改于

    SISD:单指单数据
    SIMD:单指多数据,可应用于 for 循环。向量处理器有直接操作一维数组的指令,通过流水线优化加快处理
    MIMD:多指多数据,多核 CPU,用于硬件多线程
    MISD:多指单数据,不存在

    硬件多线程#

    通过提供多个寄存器组,方便线程切换
    细粒度多线程:多个线程轮流交叉执行指令,可在一个周期切换线程
    粗粒度多线程:在线程出现较大开销时(如 Cache 缺失)才切换线程。切换开销大于细粒度多线程
    同时多线程:实际上的线程级并行

    多核处理器#

    image.png

    共享内存多处理器(Shared Memory Processor)#

    多个处理器共享一个物理地址空间,实现不同处理器通信。
    UMA:早期内存控制器没有整合进入 CPU,访存要通过北桥。分为基于总线、基于交叉开关网络、基于多级交换网络。
    NUMA:内存控制器集成到 CPU 内部,每个 CPU 都有独立的内存控制器。直连到一部分内存。这部分称为 CPU 的本地内存。在 NUMA 中,内存分为本地和远程访问。
    在多个处理器同时访问同一个共享变量时,操作共享变量要进行同步(一般加锁互斥)。

    • 🥳0
    • 👍0
    • 💩0
    • 🤩0