CSD(computational storage devices)架构介绍

ops/2024/10/21 21:52:07/

CSD(computational storage devices)架构介绍

  • 前言
  • 一、CSD与传统SSD的架构对比
  • 二、为什么要采用FPGA
  • 三、FPGA缺点
  • 四、个人总结
  • reference

前言

  虽然一直有接触CSD,但一直对其原理和架构知之甚少,半知不解。今天,趁着我还是不想修改论文的闲心,大概了解了一下CSD的知识,在这里记录一下。

一、CSD与传统SSD的架构对比

ssd

图1:传统SSD架构【1】

csd

图2:CSD架构【2】

  如图所示,相比于传统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.


http://www.ppmy.cn/ops/124148.html

相关文章

使用 systemd 设置 PHP 程序为服务

使用 systemd 设置 PHP 程序为服务 在现代 Linux 系统中,systemd 是用于管理和控制服务的标准工具。通过 systemd,我们可以轻松地将 PHP 程序配置为后台运行的系统服务,从而实现自动化启动、重启和日志记录等功能。本文将介绍如何为 PHP 程序…

TCP --- 确认应答机制以及三次握手四次挥手

序言 在前一篇文章中,我们介绍了 UDP协议 (点击查看)👈,该协议给我们的感觉就两个字 — 简单,只是将我们的数据进行简单的添加报头然后发送。当然使用起来虽然简单,但是否能送到目的地,那就要看网络的状态了…

【Unity踩坑】UWP项目安装包认证失败

问题:在Unity导出的VS项目,打包生成appx后,进行应用认证时失败。提示部分API不支持。 API __C_specific_handler in kernel32.dll is not supported for this application type. UnityPlayer.dll calls this API.API DXGIGetDebugInterface1 …

测试工作能干到退休!从会写一份成长型测试周报开始

测试周报则是反映团队工作进展和专业态度的一扇窗口。通过周报,我们不仅可以展示一周内的工作成果,更可以体现团队的工作心态——是积极进取、不断学习的成长型心态,还是仅仅满足于现状、缺乏动力的躺平型心态。本文将带您深入了解这两种不同…

Node.js中的Promise的作用与知识点讲解

Node.js中的Promise的作用与知识点讲解 在Node.js和现代JavaScript编程中,异步编程是一种常见的编程范式,它允许程序在等待某些操作完成时继续执行其他任务。Promise是处理异步操作的一种非常强大的工具,它提供了一种更加清晰和可控的方式来…

【Linux】Linux 环境变量中 LOGNAME 和 USER 有什么本质区别

一、概念 在 Linux 中,LOGNAME和 USER都是环境变量,用于表示当前用户的用户名。 二、区别点 LOGNAME: 在某些情况下,它可能会保持不变,即使用户通过 su 命令切换到其他用户。 USER: 在使用 su 命令切换用户时,…

使用C++的OpenSSL 库实现 AES 加密和解密文件

如果C不知道做什么项目,可以编写一个文件加密和解密工具,支持诸如 AES 和 RSA 等常见的加密算法。这样的项目可以帮助学习和理解现代加密技术,并为日常文件保护提供便利。以下是一个基本的设计思路和实现步骤: 1. 设计思路 a. 功…

CSRF | POST 型 CSRF 漏洞攻击

关注这个漏洞的其他相关笔记:CSRF 漏洞 - 学习手册-CSDN博客 0x01:POST 型 CSRF 漏洞攻击 —— 理论篇 POST 型 CSRF 漏洞是指攻击者通过构造恶意的 HTTP POST 请求,利用用户的登录状态,在用户不知情的情况下,诱使浏览…