一种提高多核CPU并行效率的构想



一种提高多核CPU并行效率的构想

Cpu多核技术,最初由蓝色巨人IBM199910月微处理器论坛中提出来,在那个别论坛上它披露了双核心Power4的研发计划,并于2000年以180纳米铜导线搭绝缘硅(SOI)制程打造Power4处理器工程样本开机成功,随即成为业界对双/多核心处理器发展的关注焦点。到今天为止,至少已经发展了17年,由当初的两核发展数十核的规模。从专业人员的眼光来看,多核技术并没有实现将处理器的效率提高到与核数成正比的目标,现在CPU效率提高是多种技术发展的结果,其中的原因非常简单:因为多个CPU核心共享内存,而程序必须在内存中运行,并且CPU的核心和内存的速度差越来越大,核心在很多情况下必须等待内存,内存饥渴是多核心CPU的一直面对的难题。据说有人做过试验(参考文献1),超过八核,性能不升反降如下图所示:

【高清图】 多核发展瓶颈 8核以上CPU性能反而下降图1

基于此原因,笔者提出一种CPU多核的构想,为什么叫构想呢?因为本人毕竟不是CPU的制造专家,对此构想能否实现也不清楚,写此拙文意在抛砖引玉。

我的新型多核并行CPU构想的关键是,让每个核心都有自己的专用内存。要实现这个目标,首先必须克服的是CPU和内存的连接问题。大家知道,现存CPU和内存的通讯是并行的,地址线、数据线加上控制线大概一百条以上,如果每个核心都用并行方式和内存通讯根本不可能,必然导致连线太多而不可取,所以,我认为只能将并行方式改为串行方式。另外一个事实是,现代CPU都采用了高速缓存 CACH,指令和数据基本上都是先读到CACH中再执行,只有当CACH中没有指令才会访问内存。因此,只要在CACH和内存之间建立串行通讯就可以了。说到这里,很多人会质疑,把并行通讯改为串行通讯,不会降低内存带宽吗?在计算机通讯的早期,并行通讯确实快于串行通讯,但当今,随着高速串行技术的迅速发展,串行快过并行并非不可能。更何况我们还可以在CACH和内存之间采取数据块传输,一次传输数K级数据,可以大大减少地址解码和同步等待的时间,所以,我觉得带宽不是问题。当然这个传输由CPU核心的硬件自动完成,只要访问的内容不在CACH中,就自动启动传输,不需要软件的干预。基于这些理由,我提出的新型并行多核CPU详细的结构示意图如下图所示:

 

                                                                                 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


从上图不难看出,由于把核心相关的内存独立出来,那么又带来了一个核心之间的通讯问题,所以上图中增加了一个高速串行通讯交换矩阵,用于核心间的数据和指令传输。

这样做还有一个好处,就是各个核心独立性变强了,每个核心上都可以运行自己独有的操作系统和应用软件,各个核心完全可以设计成异质或者异构,比如说有的核心合适做逻辑运算,有的设计成AI处理,有的核心的时间片要长点,有的核心时间片短点都行,只要通讯接口可以相互通讯就可以,在计算机处理任务的种类越来越多的今天,这种由不同结构核心的多核CPU必然会大大增强处理能力,就好比人类的大脑一样,有不同的中枢来处理不同种类的信息。而主核心负责众核心的任务分配和系统协调以及对外的IO管理,当然也可以运行一些应用软件。这样一来,尽管内部有多个的核心,从外面看,也其有统一的对外输入输出。当然,由于主核心的任务多于次核心,所以,在主核心上的操作系统是最全面的,而次核心上的操作系统只需要有任务调度切换以及通讯就可以了。

提到操作系统,这和CPU并行处理息息相关,CPU的结构变了,操作系统的任务调度模式必须相应改变才能从根本上提高并行处理能力。长期以来,操作系统调度软件最先是以进程为单位,后来才发展为可以以线程为单位的,一个进程具备自己的独立地址空间,而线程的地址空间包含在进程中,没有自己的独立地址空间,除非专业的人员,这两种似是而非的概念,太难分清。在现有的共享内存地址下,进程调度容易,线程要自由调度就困难得多,在软件设计过程中,这两种模式的并存也导致程序员理解困难,当然并发程序开发的难度就更加大了,不利于并发程序的开发,所以我觉得很有必要改变这种进程线程模型,将它们改为属主任务模型,其意思是,将每个软件看成了一个属主下的一个任务或者数个任务,而每个任务是具有独立指令和数据以及内存地址的可以调度的单位,它可以被操作系统自由调度在不同的核心上运行,同一个属主的数据可以自由互相访问,不同的属主的任务,要访问得经过系统授权就行,这样,不同程序和同一程序的任务之间的数据共享的模式都相同,只是授权方式不同而已。

除了CPU和操作系统结构的改变,还有内存模组也要做相应的改变才行。所以,要改变这一切困难不小,但它的意义在于可以成倍的提高电脑的处理效率,在大力提倡创新的今天,对于我们的国产CPU和操作系统,是不是有启发意义呢?我们老在报怨在计算机系统和操作系统上,别人早入为主,我们只能在后面追赶,如果还是那种亦步亦趋的方式,我们永远也追不上的,只有创造出崭新的处理模式,我们才有可能弯道超车。

 

你可能感兴趣的:(一种提高多核CPU并行效率的构想)