如何将物理地址的数据不经内核拷贝直接写入带有ext4文件系统的磁盘 40C

在做一个数据存储项目,用的是powerPC T2080,运行linux系统。数据从PCIE设备传到
计算机系统预先保留的一段连续的物理内存上。现在想把这段物理内存中的数据写入SSD阵列中(用raid卡组raid0),SSD阵列上的文件系统是ext4文件系统。怎么样才能让这段物理内存中的数据不经内核拷贝直接写入ssd,同时又能使用文件系统。这样做的目的是为了降低CPU使用率,提高存储速度(本系统的存储速度要求达到1.3GB/S以上)。我了解到fwrite和write都有经过很多次内存拷贝。

2个回答

现代操作系统都是基于dma直接让南桥(io控制器)去读写内存,本来就不经过cpu
要再提高性能,需要上完全硬件的scsi/sas控制器。

header_check
__Juno__ 我现在已经能在应用程序中获得很大一块连续的物理内存,这些内存中的数据我想直接用DMA的方式(不经过系统的多次内存拷贝)直接写入到SSD中,同时使用ssd上的文件系统。这样有什么好的方法可以办到吗
一年多之前 回复
header_check
__Juno__ 我在调用fwrite函数把一块用户层的内存写到ssd中的时候,系统会多次拷贝这些数据,这会造成大量的CPU消耗,
一年多之前 回复

将这段内存保存成文件, 通过文件系统写下去, 就不会经过CPU, 基本都是靠DMA 传输!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!