前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Tina_Linux存储性能参考指南

Tina_Linux存储性能参考指南

作者头像
韦东山
发布于 2023-03-01 06:14:33
发布于 2023-03-01 06:14:33
84000
代码可运行
举报
文章被收录于专栏:韦东山嵌入式韦东山嵌入式
运行总次数:0
代码可运行

OpenRemoved_Tina_Linux_存储性能_参考指南

1 概述

1.1 编写目的

介绍TinaLinux 存储性能的测试方法和历史数据,提供参考。

1.2 适用范围

Tina V3.0 及其后续版本。

1.3 相关人员

适用于TinaLinux 平台的客户及相关技术人员。

2 经验性能值

Flash 性能与实际使用物料有关,受不同存储介质、不同厂家、不同型号甚至不同老化程度的影响,所以经验值仅供参考。

2.1 顺序读写性能经验值

IC

物料类型

Flash 型号

顺序读性能

顺序写性能

其他说明

R16

raw nand

K9F4G08U0F

40M/s

5.6M/s

R6

spi nand

MX35LF1GE4AB

4M/s

2M/s

见注1

R6

spi nor

FM25Q128

5.6M/s

3.1M/s

见注2

R30

mmc

KLM8G1WEPD-B031

77M/s

7.7M/s

见注3

R333

spi nand

F50L1G41LB

5.7M/s

2.0M/s

见注1

R328

spi nand

DS35X1GAXXX

12.1M/s

4M/s

见注4

R328

spi nand

W25N01GVZE1G

6.9M/s

2.7M/s

见注5

R329

spi nand

GD5F1GQ4UBYIG

7.5M/s

2.9M/s

见注6

R528

spi nand

GD5F1GQ4UBYIG

5.1M/s

2.8M/s

见注6

MR813

mmc

THGBMBG7D2KBAIL

165.56M/s

32.18M/s

见注7

R528

mmc

THGBMJG6C1LBAB7

62.5M/s

17.4M/s

见注8

R528

mmc

KLM8G1GESD

63M/s

20.4M/s

见注8

R528

mmc

KLM8G1GESD

61.8M/s

39.5M/s

见注9

D1

spi nand

MX35LF2GE4AD

4.8M/s

2.9M/s

见注10

V853

emmc

THGBMJG6C1LBAU7

156M/s

25M/s

见注7

V853

emmc

THGBMJG6C1LBAU7

69M/s

25M/s

见注8

V853

spinand

MX35LF1GE4AB-Z4I

7.7M/s

2.9M/s

见注11

V853

spi nor

GD25F256

7.4M/s

270KB/s

见注4

说明

  1. 单线写,双线读,100MHz。
  2. 单线写,单线读,50MHz。
  3. HS400,50MHz,8 线。
  4. 四线读写,100MHz。
  5. ubifs,非压缩,四线读写,100MHz。
  6. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略。
  7. hs400,100MHz,8 线。
  8. hs200,150MHz,4 线, 1.8V。
  9. hs200,150MHz,4 线, 1.8V, 不带O_SYNC
  10. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1440000Hz, dram频率792MHz;
  11. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1104000Hz, dram频率936MHz;

2.2 随机读写性能经验值

IC

物料类型

Flash 型号

顺序读性能

顺序写性能

其他说明

R6

raw nand

K9F4G08U0F

2486

146

见注1

R333

spi nand

F50L1G41LB

959

266

见注1

R329

spi nand

GD5F1GQ4UBYIG

1890

592

见注2

R528

spi nand

GD5F1GQ4UBYIG

907

385

见注2

MR813

mmc

THGBMJG6C1LBAU

6015

1596

见注3

R528

mmc

THGBMJG6C1LBAB7

2657

830

见注4

R528

mmc

THGBMJG6C1LBAB7

2657

830

见注4

R528

mmc

KLM8G1GESD

2582

872

见注4

R528

mmc

KLM8G1GESD

2038

2220

见注5

D1

spi nand

MX35LF2GE4AD

919

425

见注6

V853

emmc

THGBMJG6C1LBAU7

4407

1363

见注3

V853

emmc

THGBMJG6C1LBAU7

3833

1287

见注4

V853

spinand

MX35LF1GE4AB-Z4I

1773

590

见注7

说明

  1. 单线写,双线读,100MHz
  2. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略。
  3. hs400,100MHz,8 线
  4. hs200,150MHz,4 线, 1.8V
  5. hs200,150MHz,4 线, 1.8V, 不带O_SYNC
  6. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略, cpu 频率1440000Hz, dram频率792MHz;
  7. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1104000Hz, dram频率936MHz;

3 顺序读写性能

3.1 顺序写性能理论值计算

物料的数据手册一般会提供擦除和写的耗时,关注数据手册中Block Erase time、PageProgram time 此类关键字数值。以GD25Q256E(spi nor)为例,Block Erase time:0.12s/0.15s typical(Block size 64KByte) ,Page Program time: 0.25ms typical(Page size 256Byte)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
| High Speed Clock Frequency | Fast Program/Erase Speed |
| 133MHz for fast read with 30PF load | Page Program time: 0.25ms typical |
| Dual I/O Data transfer up to 266Mbits/s | Sector Erase time: 45ms typical |
| Quad I/O Data transfer up to 532Mbits/s | Block Erase time: 0.12s/0.15s typical |

上面的Quad 的传输速率,是通过133MHZ * 4 line 计算到的,是一个理论数据,而实际的使用场景,我们要读数据前要用1 line 发送5(6)Bytes 数据,即cmd + addr[3(4)] + dummy(大于16M 的FLASH,需要发4byte 地址), 其次我们SPI 控制器最大输出频率100Mhz。假设 发一次命令读N bytes 数据,则命令和数据所占时间的比例为5 : (N/4), 那么实际4 line 的极限速度等于(N/4) / [5+(N/4)] * CLK * 4Mbits/s。以100Mhz 4line 为例,理论极限速度为47.68MB/s。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
speed = 32MByte/(erase_time + program_time + spi_time)
= 32MByte/(0.15s*(32MByte/64KByte) + 0.25ms*(32MByte/256Byte) + 32MByte/47.68MB/s)
= 32MByte/(76.8s + 32.8s +0.67s)
= 290KByte/s

以GD5F1GQ4UAYIG(spinand)为例,Block Erase time: 3ms typical(Block size128KByte) ,Page Program time: 0.4ms typical(Page size 2048Byte)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
speed = 128MByte/(erase_time + program_time)
= 128MByte/(3ms*(128MByte/128KByte) + 0.4ms*(128MByte/2048Byte) + 128MByte/47.68MB/s)
= 128MByte/(3072ms + 26214.4ms + 2684ms)
= 4.0MByte/s

3.2 顺序性能测试方法

Tina 测试平台有2 个顺序读写性能的测试用例,分别如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/spec/storage/seq #适用于>64M 内存的方案
/spec/storage/tiny-seq #适用于<=64M 内存的方案和使用ubifs的存储方案

特别注意的是,在测试文件数据量非常小时,内存对测试影响太大,测试出来的读数据会非常不准确。例如,对spinor 的测试分区只有5M 大小,而内存有64M,测试出的读可能达到100+M/s,此时的读数据不具有参考价值。

3.3 顺序性能解读

顺序读写性能以读写速度(KB/s;MB/s) 作为衡量标准,主要体现大文件连续读写的性能。此时,速度值越大,顺序读写性能越好。 不同存储介质的读写性能是有差异的,甚至同一种存储介质,不同厂家不同型号可能都有差别。 以mmc 为例,有的mmc 写性能只能达到10M/s,而有的mmc 写性能达到150M/s。一般来说,MMC 的规格书中有体现性能估值。 常见的,不同介质顺序读写性能排序如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
读: mmc > raw nand > spinor > spinand
写: mmc > raw nand > spinand > spinor

4 随机读写性能

4.1 随机性能测试方法

Tina 测试平台有1 个随机读写性能的测试用例,且只适用于>64M内存方案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/spec/storage/rand

4.2 随机性能解读

随机读写性能以IOPS(IO per second) 为衡量标准,理解为每秒处理多少个IO 请求。此指标反应的是小文件的读写性能。此数值越高,表示其随机读写性能越好。 与顺序读写相似的是,其数值也与实际物料,当前工作模式有关。

5 读写性能的影响因素

5.1 O_SYNC

注意Tina 使用iozone 时,默认参数是使能了O_SYNC 的,降低了cache 的影响。应用正常运行时,一般不使用O_SYNC,可获得比所测数据更佳的性能。 如需测不带O_SYNC 的性能,需修改iozone 参数,测试用例的menuconfig 中提供了ASYNC选项,选上即可。 测试用例运行过程会打印出iozone 的参数,具体参数含义请查看iozone 的帮助。

5.2 调频策略

不同调频策略会对读写性能造成影响,建议在测试的时候切换到performance 策略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
find . -name scaling_governor #找到调频节点
echo "performance" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor #修改策略
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor #确认策略切换成功

5.3 其他

对比性能时,需保持其他条件尽可能一致,包括但不限于CPU 频率,DDR 频率,DDR 类型,系统负载等。多次测试会有波动,可以烧录固件后第一次测试的数据为准,或多次取平均。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Tina Linux 存储开发指南
介绍TinaLinux Flash,分区,文件系统等存储相关信息,指导方案的开发定制。
韦东山
2023/02/25
3.1K0
快速启用开发板
将开发板配套的两根typec线,一根 直接连接至 开发板 OTG烧录接口 另一头连接至电脑的USB接口,开发板默认有系统,接通otg电源线就会通电并直接启动。
韦东山
2024/08/27
1340
快速启用开发板
Tina R329 swupdate OTA升级步骤
第一步: 编译路径执行make menucinfig和make ota_menucinfig中分别选中: (1)Allwinner > swupdate (2)Allwinner > swupdate > Swupdate Settings > General Configuration > MTD support (3)Allwinner > swupdate > Image Handlers > ubivol
阿志小管家
2024/02/02
4120
全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND
SDK切换存储介质需要修改board.dts、sys_config.fex、内核配置、TINA系统配置。另外,在spinor 存储介质下,通过 u-boot-sun8iw21p1.bin 进行烧录,u-boot-spinor-sun8iw21p1.bin 启动,使用sys_partition_nor.fex作为分区表。在非spinor介质(spinand、emmc、sdnand),通过u-boot-sun8iw21p1.bin进行烧录和启动,使用sys_partition.fex作为分区表。下文将介绍spinor切换spinand、spinand切换spinor、spinor切换emmc、spinor切换sdnand四种切换方式。
阿志小管家
2024/02/02
6730
快速启动开发板
将开发板配套的两根typec线,一根 直接连接至 开发板 OTG烧录接口 另一头连接至电脑的USB接口,开发板默认有系统,接通otg电源线就会通电并直接启动。
韦东山
2024/08/24
2050
快速启动开发板
全志Tina Linux 启动优化
启动速度是嵌入式产品一个重要的性能指标,更快的启动速度会让客户有更好的使用体验,在某些方面还会节省能耗,因为可以直接关机而不需要休眠。
阿志小管家
2024/02/02
4300
启动开发板
将开发板配套的两根typec线,一根 直接连接至 开发板 OTG烧录接口 另一头连接至电脑的USB接口,开发板默认有系统,接通otg电源线就会通电并直接启动。
韦东山
2024/08/19
1990
启动开发板
支持百问网T113 D1-H D1s V853 V851s 等开发板 使用 Tina Linux NOR Flash文件系统 开发指南
SPI NOR Framework:这层主要是处理不同厂家的NOR 物理特色差异,初始化SPINOR的工作状态,如工作线宽(1 线、2 线、4 线、8 线)、有效地址位(16M 以上的NOR 需要使用4 地址模式),为上层MTD 提供读写擦接口。
韦东山
2022/12/28
1.6K0
支持百问网T113 D1-H D1s V853 V851s 等开发板 使用 Tina Linux NOR Flash文件系统 开发指南
嵌入式必看!全志T113-i+玄铁HiFi4核心板硬件说明资料分享
SOM-TLT113核心板板载CPU、ROM、RAM、晶振、电源、LED等硬件资源,并通过邮票孔连接方式引出IO。
创龙科技Tronlong
2023/01/31
2.1K0
嵌入式必看!全志T113-i+玄铁HiFi4核心板硬件说明资料分享
Tina_Linux_安全_开发指南
介绍TinaLinux 下安全方案的功能。安全完整的方案基于normal 方案扩展,覆盖硬件安全、安全启动(Secure Boot)、安全系统(Secure OS)、安全存储(Secure Storage)、安全应用(Trust Application)、完整性保护(Dm-Verity)、强制访问控制(MAC)等方面。
韦东山
2023/02/25
5.8K0
Tina_Linux_安全_开发指南
全志V851S开发版无法正常挂载TF卡,sdc0、sdc1报错
硬件设备及镜像 主板为:Yuzuki Lizard V851S开发板 宿主机环境:ubuntu 22.04 SDK版本:Yuzukilizard的github上的Docker镜像 img为:github上Yuzukilizard释放的镜像:[01]v851s_linux_lizard_uart0_2022_12_29.img v851s_linux_lizard_uart0_2022_12_29.img
阿志小管家
2024/02/02
3600
Tina_Linux_Wi-Fi_开发指南
介绍Allwinner 平台上Wi-Fi 驱动移植,介绍Tina Wi-Fi 管理框架,包括Station,Ap 以及Wi-Fi 常见问题。
韦东山
2023/02/25
5.1K0
Tina_Linux_Wi-Fi_开发指南
全志平台Tina系统启动阶段改设备DTS的方法
在设备BSP调试的过程中,经常会出现需要修改DTS的情况,比如调试一个新的屏幕、传感器或者wifi模组,传统的方法是: 在源码中直接修改board.dts文件->重新编译&打包->烧写到设备里 这种方法繁杂,编译和烧写都要花费时间,严重影响开发效率。 因此,全志(其实是uboot提供的)提供了一个启动阶段DTS调试的方法,可以让我们在启动阶段就把DTS改掉,这次启动加载的就是改后的DTS。 *注:这种修改是一次性的,不可以保存的,只限这次启动的时候生效,断电或者重启就不生效了1.设备上电过程中串口按住电脑键盘的"s"按键,让设备进入boot: *注:是真的按住调试的电脑的键盘的s按键,和按住2另设备跳烧录的操作一样(参考:[https://d1.docs.aw-ol.com/study/study_4compile/#pc2](https://d1.docs.aw-ol.com/study/study_4compile/#pc2)) 如果进入boot成功,就会有如下log,这时就可以在串口对设备进行DTS修改操作。 (详细log如下)
阿志小管家
2024/02/02
3280
Tina_Linux网络性能参考指南
主要适用于以下平台: • Allwinner 软件平台Tina v3.0 版本及以上。 • Allwinner 硬件平台R 系列(R6,R11,R16,R18,R30,R40,R328,R331, R329,R818, R818B, R528…)。 • Allwinner 硬件平台MR 系列(MR133, MR813, MR813B…)。 • Allwinner 硬件平台H 系列(H133…)。 • Allwinner 硬件平台V 系列(V853…)。
韦东山
2023/03/01
6210
全国产T3+FPGA的SPI与I2C通信方案分享
近年来,随着中国新基建、中国制造2025规划的持续推进,单ARM处理器越来越难胜任工业现场的功能要求,特别是如今能源电力、工业控制、智慧医疗等行业,往往更需要ARM + FPGA架构的处理器平台来实现例如多路/高速AD采集、多路网口、多路串口、多路/高速并行DI/DO、高速数据并行处理等特定功能,因此ARM + FPGA架构处理器平台愈发受市场欢迎。
创龙科技Tronlong
2024/07/04
2340
全国产T3+FPGA的SPI与I2C通信方案分享
嵌入式选型必看!i.MX6ULL核心板详细规格资料汇总
本文主要基于i.MX6ULL核心板,分享详细软硬件规格资料、其中包括硬件资源、引脚说明、电气特性、机械尺寸、底板设计注意事项等,欢迎嵌入式选型用户点击查看。
创龙科技Tronlong
2022/09/12
2.3K0
嵌入式选型必看!i.MX6ULL核心板详细规格资料汇总
Tina-SDK开发
Tina-SDKV2.0源码网盘链接:https://pan.baidu.com/s/13uKlqDXImmMl9cgKc41tZg?pwd=qcw7
韦东山
2024/08/24
4400
Tina-SDK开发
全志 Tina Linux 系统调试 使用指南 GDB gdbserver coredump perf strace valgind
适用范围: 本文适用于Tina3.5版本以上软件平台;对硬件环境没有要求,所有Allwinner硬件平台都适 用。 其中,注意linux-5.4内核上暂未支持pstore功能。
韦东山
2022/12/28
2.3K0
全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
启动速度是嵌入式产品一个重要的性能指标,更快的启动速度会让客户有更好的使用体验,在某
韦东山
2022/12/28
4.1K0
全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
烧写内容 : BootLoader, Linux Kernel, File System;
韩曙亮
2023/03/27
3K0
【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
推荐阅读
相关推荐
Tina Linux 存储开发指南
更多 >
LV.1
深圳百问网科技有限公司技术总监
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验