新闻中心

EEPW首页>设计应用> OpenPOWER+CAPI实现第二代分布计算

OpenPOWER+CAPI实现第二代分布计算

作者:Bruce Wile 时间:2015-11-09 来源:电子产品世界 收藏
编者按:本文介绍了CAPI技术,并给出基于CAPI应用的三个案例。

摘要:本文介绍了技术,并给出基于应用的三个案例。

本文引用地址://m.amcfsurvey.com/article/281881.htm

1 向第二代分布计算演进

  最早的时候计算机系统单任务的,随着数据量的增加,单计算任务的处理能力已不足以满足人们日益增长的需求,所以计算机系统逐渐演进到多任务的计算环境,同时有多个运行(图1),这就产生一个访问内存中的数据,数据的一致性是要急需解决的问题。那么什么是数据一致性的问题呢?当一个对一个数据进行操作之后,另外一个需要拿到正确的数据。

  在系统里面,电脑是用硬件来保证数据一致性,同时保证另外一个线程在读取数据的时候能读取到正确的数据。如图2所示,图2中有6个CPU核,每个CPU核都有自己的缓存,他们共享了一个更大的主存。图2展示第一个POWER上面的崭新的应用,要对地址为1000的应用进行操作。第一个应用会把这个地址为1000的数据从主存里面读到自己的缓存上面,并且对它进行修改,比如把它修改成绿色,有另外一个应用跑在了第三个CPU核上面,它也是读取地址为1000的数据,应该期望的是它读到的是绿色的数据而不是原来白色的数据。同样第三个核上的应用会把这个数据进行改写,比如改写成红色,这时候如果还有另外一个应用跑在了第四个第五个核上面的应用,它也会去读取这个数据,也应该期望它能够读到红色的数据,这背后都是由一个内存通知器硬件来帮软件完成这些数据的一致性,保证它们读到的数据都是最新的数据。当计算机系统从一个单CPU系统进化到多CPU系统的时候,它的性能功耗比其实是在下降的,所以现在可以用这样的系统处理更多的数据,比如在线交易业务、企业ERT业务、数据库业务等。

  随着互联网的普及,数据量比以往更多。对于系统来说需要更强的硬件计算能力,来处理更多的数据。常见的解决方案是在CPU核上,开辟更多个硬件的线程,用这些线程来提高其处理能力,来帮助它对I/O端口过来的数据进行更好的处理,同时加入了GPU和,使用这些硬件来帮助系统处理数据(图3)。但是传统上GPU和都是以I/O设备的形式挂载在这个系统上面,为了使用I/O设备,需要提高技能,如编程人员需要学习硬件知识,需要懂得内核的人为I/O设备进行驱动的开发,同时由于它们是I/O设备,没有和CPU共享内存,所以需要内核代码帮助他们做数据传输。摆在面前的另外一个难题就是半导体技术的性价比不再持续增长,现在已经到了一个拐点,不能依赖于半导体技术的增长使系统更快更强,需要从硬件还有固件、操作系统、设备应用等多角度考虑,寻求一个更好的解决方案。

  为了解决这种需求,现在引入使用(相干加速器处理器接口)接入系统更快更好地处理数据。随着移动互联网的发展,这样数据会比以往更多,所以我们需要硬件来帮助系统处理数据。当然整个系统不是IBM提供的封闭系统,虽然IBM也有一个192线程的机器,再加上FPGA的板卡,但是IBM没有提供这样一个封闭系统,相反IBM会有更多的合作伙伴,比如中太数据的服务器、NVIDIA的GPU、赛灵思的FPGA芯片、恒扬的FPGA板卡解决方案,还有Ubuntu的操作系统解决方案、三星提供的存储解决方案。以一个合作伙伴的形式,向更多的企业提供应用,提供服务。

  CAPI可以使FPGA连接到系统上面(如图4),通过在FPGA上面内嵌了一点处理逻辑,使FPGA上面的硬件可以和CPU线程共同共享一段虚拟的地址空间,在CPU上的线程会产生数据,同时也会产生一个任务队列,队列可以定义指导FPGA上面硬件如何对数据进行操作。在新一代的系统里面,允许FPGA硬件和CPU上面软件共享虚拟的地址空间,并且它们的一致性是由硬件来进行维护。通过一个调动CPU上的软件可以触发IPA硬件去任务队列里面获取任务的描述,然后FPGA通过共享的存储空间来读取内存上面的数据,并产生结果,这些结果和数据都可以被CPU上软件直接访问的。IBM已有系统是工作在这样的模式。用CAPI技术不再需要面对之前麻烦,但是因为FPGA软件员不需要再去了解具体的硬件是如何工作,FPGA工作在协处理器的模式共享内存。

  图5是一个OpenPOWER的机器,在红色的两个圈子里是两个POWER8的处理器模块,绿色的地方是可以插两个CAPI板卡的地方。



上一页 1 2 下一页

关键词:CAPICPUFPGA201511

评论


相关推荐

技术专区

关闭