一、并行性
可关注的三大并行性:指令级并行、数据极并行、任务极并行。
指令级并行:
多条指令可以同时执行,最常见的是pipeline excecution,提高指令吞吐率。
另外,还有超长指令字(very long instruction word)和超标量(superscalar),这两种都是在架构中加入冗余计算部件,从而允许无关指令利用并达到多操作并行执行的效果。
数据极并行:
SIMD,单指令多数据。
任务极并行:
用户界面、视频处理、音频处理等等,在同一系统中并行完成多种功能。
二、Multi-cores design中系统架构的选择
处理器与存储器架构:
硬件角度划分多核架构:同构和异构。同构一般用于多线程并行度的领域,比如服务器市场。异构一般用于一些特定任务,比如多媒体,专用硬件在性能和功耗方面比较有优势。
多核SoC存储层次架构区别主要在于选择何种组织架构(分布式还是集中式),互联网络类型、参数,以及如何提高带宽。
核间通信与cache的架构:
multicore design中,核间通信可以基于共享cache的架构(FW-IPC based, SMP Arch)。这种架构每个core拥有共享的二级、三级cache。cache中保存比较常用的数据,并通过连接core bus进行通信。多级cache coherency也是设计中需要解决的一个问题。
另外,核间通信也可以通过一种基于片上的互联架构(FW-IPC based, AMP Arch)。目前主要的总线互联方式按架构分有:双向FIFO总线架构、全局总线I架构、全局总线II架构、交叉开关总线架构等。
操作系统的设计:
主要优化操作系统任务调度算法。其次是中断处理,intr arbitration。
提高并行性:
编译优化和软件开发环境优化。