/heterOS

面向硬件的异构OS

Primary LanguageVHDL

heterOS

面向硬件的异构OS

软硬件结合的异构SoC或FPGA+CPU的异构系统是未来发展方向之一,已有大量产品被用于数据中心等场景进行算法加速。比如Xilinx公司的FPGA+ARM架构SoC,Intel公司的可扩展处理器、苹果公司最新研发的头戴式VR设备Vision Pro也采用了异构系统的方式处理不同需求的数据流。软件(CPU、GPU)与硬件(如FPGA)擅长处理的数据有很大的不同,并行性、时间精度控制上也有较大的差异。但想充分利用好系统中的软硬件资源需要协同软硬件开发人员,研发难度较高。一方面,异构计算套件通常面向软件开发人员进行设计,提供的是软件接口。从硬件开发人员的角度来看,若不针对性的开发软件进行适配则难以充分利用CPU资源。但从整体的角度来看,交互的方式通常都类似,如果每一次都需要软硬件协同开发则会影响效率提高成本。另一方面,软硬件的交互方式较为单一,在硬件中想要使用软件资源,通常只能采用等待的方式,造成流水线断流,不适用于持续大数据流的应用。 如何解决上述问题,以低成本的方式将软硬件两者的优势结合可以提高异构SoC的资源利用率,降低产品成本。

  1. CPU中断响应的实时性问题:当FPGA端作为主体向CPU请求服务后,FPGA端无法在硬件的时间精度上获得CPU服务的返回时间,则只能采用等待的方式进行,会中断流水线,大幅减慢硬件端工作流。
  2. 基于中断的等待交互方式难以满足FPGA上流水线的时间精度造成断流,传统操作系统追求通用性牺牲处理精度,难以满足大数据流水的处理需求。
  3. 在一些大数据量的嵌入式应用中,通常不需要复杂的操作系统满足通用功能的需求,而只需要针对特定需求进行开发。

哪些处理是CPU擅长而FPGA不太行的?

  1. 大量的浮点运算
  2. 大量的乘除法运算(FPGA中需要占用DSP资源)
  3. 不定次数或有条件的循环

思路:

  1. 面向硬件接口的可配置QoS的CPU资源,提供硬件友好的编程接口或握手协议
  2. 嵌入数据流的中断处理方式
  3. 操作系统将多核拆分绑定到不同的接口上,或实时的根据CPU资源占用情况满足几个时间精度档位的QoS需求

应用场景:

  1. 图像处理
  2. AI中的矩阵计算