TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748下nandflash的读写速度

我修改startware下的nandflash例程,读、写1个block,然后用CCS的clock功能计时间,测试nandflash的读写速度。

分别对我自己的板子和第三方开发板进行测试。

我的板子用的是东芝的2GB:TH58NVG4S0FBAID,对nandflash例程中nand的block大小等宏定义按照该芯片进行了相应修改。

开发板用的是三星的128GB:S34ML01G200TFI000,就用的nandflash例程的宏定义。

测试程序是基于startware中的nandflash例程,表格中4种测试表示:

1、CPU,即用#define NAND_DATA_XFER_MODE (NAND_XFER_MODE_CPU)。

3、DMA,即用#define NAND_DATA_XFER_MODE (NAND_XFER_MODE_DMA)。

2、4分别在1、3的基础上用

CacheEnableMAR((unsigned int)0xC0001000, (unsigned int)0x08000000);
CacheEnable(L1DCFG_L1DMODE_32K | L1PCFG_L1PMODE_32K | L2CFG_L2MODE_256K);

使能Cache。

测试结果:

我板子的结果:

条件

写速率

读速率

读写一致?

CPU

0.59

0.54

PASS

CPU+CACHE

4.24

2.75

PASS

DMA

1.41

1.32

PASS

DMA+CACHE

4.35

6.44

FAILED

开发板的结果:

条件

写速率

读速率

读写一致?

CPU

0.46

0.43

PASS

CPU+CACHE

3.07

2.42

PASS

DMA

0.83

0.80

PASS

DMA+CACHE

3.07

4.87

FAILED

以上测试中,““写速度”只包含写操作的时间,不包含擦除时间。

可以看到,由于芯片的原因,我的板子的速度要快一些。我的板子测试结果与开发板测试结果趋势一致。

我的问题是:

Q1、为何DMA+CACHE读出来的结果和写进去的不一致,是该例程中的nandlib不支持吗?

Q2、我用的是SLC的nand。4.24MB/s写,2.75MB/s读,这样的速度是否合理?

       为何用电脑读SD卡,可以达到30MB/s以上的读写速度?

Q3、http://processors.wiki.ti.com/index.php/DaVinci_PSP_03.20.00.14_Device_Driver_Features_and_Performance_Guide#Performance_Benchmarks_2

       根据上面这个链接,L138对nandflash的写速度为4MB/s左右,读速度为10MB/s左右。

       这个链接是在linux下,用JFFS2文件系统读写的,按理来说应该速度比直接读写要慢吧?

       为何它的结果是读速度明显高于写速度,而我的测试结果读速度低于写速度?

       按理来说是应该读比写快吧。

Q4、我看了nandflash芯片的datasheet,感觉应该更快才对。读写速度的瓶颈,是否是DSP的nandflash控制器?

Q5、TI是否有提供其他的nand驱动库可以使用?

       谢谢!

Frank

Denny%20Yang99373:

1,cache需要进行CACHE一致性维护,否则它和DMA一起操作有可能会产生不一致。

2,可能首先于DSP这边的处理速度。

3,不同软件构架,可能效率啥别比较大。

4,

5,还是BSL,不过是由第三方支持的

Feng Xu3:

回复 Denny%20Yang99373:

Hi Denny Yang,

     非常感谢回复!

     1、cache需要进行CACHE一致性维护,请问这个要怎么做?

     2、我测试结果读速度小于写速度,这个结果是否合理?

     谢谢!

Frank

赞(0)
未经允许不得转载:TI中文支持网 » C6748下nandflash的读写速度
分享到: 更多 (0)