CSD(computational storage devices)架构介绍
- 前言
- 一、CSD与传统SSD的架构对比
- 二、为什么要采用FPGA
- 三、FPGA缺点
- 四、个人总结
- reference
前言
虽然一直有接触CSD,但一直对其原理和架构知之甚少,半知不解。今天,趁着我还是不想修改论文的闲心,大概了解了一下CSD的知识,在这里记录一下。
一、CSD与传统SSD的架构对比
如图所示,相比于传统SSD,CSD是通过在SSD控制器中集成了FPGA单元,在SSD端就执行完数据处理操作,并将处理完的结果返回给主机即可,减少了数据迁移的数量,提升了数据处理的能力和任务响应的能力。因此,对于数据密集型和计算密集型的应用,采用CSD架构可以打破冯诺依曼架构,很好地减轻存储墙的问题。
二、为什么要采用FPGA
根据我的调查,接下来是我的一点小小个人总结,如果有什么错误,请大家批评指正!
首先,是因为SSD控制器中的CPU核心大多是采用RISC架构,这是因为SSD控制器需要进行处理的操作不多,大部分都是执行地址转换、垃圾回收等,不需要太多复杂的操作,因此采用RISC可以很好地利用其低功耗的优点。
其次FPGA相对于CPU和GPU,具有计算延迟更低的优点。一方面是因为FPGA不需要进行指令处理操作,其逻辑单元的功能在烧录出厂时就已经确定,因此其数据处理能力更强;另一方面是FPGA可以同时进行流水线并行操作和数据并行操作,提升了IO的吞吐量,而GPU由于需要成批处理数据,因此会在数据迁移时产生极大的延迟。
因此,最终选择FPGA作为计算单元集成到SSD控制器中,实现CSD架构。
三、FPGA缺点
由于FPGA在出厂之前程序就已经烧录完成,使得每个逻辑单元的功能已经确定并且无法更改。因此当我们针对的是不同的应用程序时,就需要设计新的FPGA进行处理,无法实现通用。这是我目前的小了解,如果有问题或者还有补充,希望大家可以评论区讨论呀~
四、个人总结
关于存内计算这方面的研究,后面会继续补充。真的是要对每个知识点都非常确定才能用自己的话进行描述,这也让我体会到发长文的不易,再接再励!
reference
1.https://mp.weixin.qq.com/s/i9tpFQlu9erm1BA0CmsI1w
2.Wang T, Zhu Y, Li S, et al. NICE: A Non-Intrusive In-Storage-Computing Framework for Embedded Applications[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2024.