As the need for more computing power grows, traditional methods are hitting limits. To boost performance, we're expanding Central Processing Unit (CPU) capabilities and using specialized hardware accelerators. For example, mobile devices usually have cameras, video encoding, and audio accelerators. To perform the different tasks, these accelerators execute microcode programs. These accelerators, however, take up space and often sit idle. Reconfigurable processors offer a solution. They have a normal core connected to several accelerator slots. These accelerator slots can be filled during runtime to accommodate the application running. Once one application finishes and another application is running, the accelerators can be switched. For example, playing music after using the camera. In this work, we introduce dynamic control-flow execution for the microcode of runtime reconfigurable processors, i.e., support for loops, conditional jumps, and exception handling. We benchmark using four different applications from four domains (object detection, ocean movement simulation, artificial intelligence and security) that all are compute-intensive and would require the dynamic control-flow when executed on reconfigurable processors. We show that the dynamic control-flow allows different applications to be executed with significant speedup in comparison with execution on general-purpose processors.
翻译:随着对计算能力需求的不断增长,传统方法正面临瓶颈。为了提升性能,我们一方面扩展中央处理器(CPU)的能力,另一方面使用专用的硬件加速器。例如,移动设备通常配备摄像头、视频编码和音频加速器。为了执行不同任务,这些加速器运行微码程序。然而,这些加速器占用空间且常常处于闲置状态。可重构处理器提供了一种解决方案:它们由一个普通内核连接多个加速器槽位组成。这些加速器槽位可在运行时填充,以适配当前运行的应用程序。当一个应用程序结束、另一个应用程序开始运行时,加速器可以切换。例如,在使用摄像头后播放音乐。本文针对运行时可重构处理器的微码引入动态控制流执行,即支持循环、条件跳转及异常处理。我们使用来自四个领域(目标检测、海洋运动模拟、人工智能和安全)的四个计算密集型应用进行基准测试,这些应用在可重构处理器上执行时需要动态控制流。结果表明,与通用处理器相比,动态控制流支持的不同应用可获得显著的加速比。