ZMS的真正核心是由24个PE处理单元组成的计算阵列,这24个单元被平均分为3组,它采用的是高密集计算的SIMD流处理架构,即类似于Intel Larrabee中的协处理器和AMD Radeon HD 4000中的流处理器(NVIDIA GPU采用的是MIMD架构,Multiple Instruction Multiple Data,多指令多数据流)。SIMD是CPU中的一个基本概念,它是指单指令多数据流(Single Instruction Multiple Data)技术,也就是CPU可以用一条指令同时处理多个操作数,SIMD虽然在分支预测时会遇到效率较低的问题,但在密集浮点计算应用中SIMD架构的效率优势则十分明显。PE单元包括整数、16-bit浮点和
32-bit浮点处理单元,可以高效地完成整数和浮点计算工作。
在实际应用中,ZMS对PE单元的分配是以组为单位进行的,也就是每8个PE单元构成的阵列作为基本的计算单位,这三组PE阵列可以共同完成一个任务,也可以各行其道。比如可以将两组PE阵列构建为3D渲染模式,1组PE阵列则为高清视频处理模式,具体采用何种模式是由任务本身自行决定的。而且,PE阵列可支持空闲任务切换机制,当某组PE阵列处于空闲状态时,系统可以将其他任务部署到该阵列上,实现资源利用的佳化。另外,PE阵列支持独立的频率控制机制,如果没有额外的任务分配,该组PE单元的工作频率可以自动降低以实现节能。
图3:24个PE阵列可根据任务要求自动配置,从而实现高效率的密集计算
24个PE单元共同分享高速缓存与系统的内存资源,但每一个PE单元都可以独立地访问缓存或内存,这就赋予了PE很强的灵活性—ZMS处理器具有166/266MHz的32位或64位内存总线,支持
Mobile SDR、DDR和DDR2内存规范,但尚未支持DDR3,这样的规格看似有些落后,不过我们要考虑到Zii平台主要的应用还是嵌入式应用,这类设备并不需要非常海量和快速的内存系统,对于功耗的要求则比较注重。在这方面,ZMS处理器同样比较完善,它的内存总线可以根据系统负载弹性调整,在闲置状态时自动降低能耗和时钟频率以实现节能。PE阵列对于存储资源的访问则是以“组”进行的,这一点不难理解,因为由8个PE组成的小阵列就是ZMS的小任务单位。
在24个PE单元的共同努力下,ZMS处理器高可以提供10.15GFlops和32Gops(十亿操作每秒)的性能,作为媒体解码器时可胜任30帧/秒、8Mbps的MPEG-4/H.264格式720p视频流,作为
GPU时可提供42M pixels/s像素渲染、21M ver t ices/s顶点渲染的性能,图形API则是基于针对嵌入软件的OpenGL ES 1.1和2.0。也许大家会不自觉地把它与NVIDIA或AMD的顶级GPU对比,并发现其性能数据非常寒碜,不过这样的对比并没有意义,因为ZMS的首要应用主要是智能手机等要求低耗能的手持设备。对这些设备来说,Zii平台所提供的10.15GFlops计算能力已富足有余。另外,Zii的关键特点是具有无限扩展性,创新表示,Zii可以在A4纸大小的空间里组成一台TFlops级别超级计算机,在576个刀片服务器里安装147456颗ZMS处理器后就能达到PFlops级别,与当今性能强的
IBM Roadrunner相差无几。由于这种特性与“干细胞”非常类似,所以创新也据此提出“干细胞计算(StemCellComputing)”新概念。
图4:Zii ZMS处理器尺寸极小,A4大小的空间内可组成TFlops级别计算机
在实际应用中,ZMS的PE阵列可以根据程序需要自我重新编程,除了作为GPU和高并行度流计算处理器外,它还可以组织为高清晰音频、高质量图像引擎(比如用于数码相机的图片处理),灵活变换各种不同的组态,同时可以根据负载需要开启或关闭部分PE核心,这些特性令Zi i平台具有极佳的任务延展性,创新表示,Zii面向的市场非常广阔,小到智能手机、手持设备、GPS导航仪、机顶盒、媒体播放机,大到从事流媒体计算的超级计算机,Zii都可以游刃有余。