Flash

Flash#

  • 16MiB Flash

    • ESP32-S3-WROOM-1U-N16R2

    • 4KiB 섹터

    • 100,000 회 endurance

    • 20년 retention

    • erase, write 속도는 사양을 못 찾음. 사용한 칩 문의 필요

      • GD25Q32 칩을 사용할 경우

      • 4KiB erase: 100ms typical, 300ms max

      • page write: 0.7ms typical, 2.4ms max

        • 256-바이트 페이지이기 때문에 4KiB 쓰기시 0.7 * 16 = 11.2ms

          • 2.4 * 16 = 38.4ms

  • LFS에 8MiB 할당

    • 앱 데이터는 LFS에 저장

    • 8MiB / 4KiB = 2048 섹터

  • 아래 계산은 모두 4KiB 이하 데이터 저장 기준

  • 1초 주기 데이터 저장

    • 1일 86,400개 데이터

    • 1년 31,536,000개 데이터

    • 100,000 회 endurance 를 가정할 경우, 약 3.2일

  • 60초 주기 데이터 저장

    • 1일 1440개 데이터

    • 1년 525,600개 데이터

    • 100,000 회 endurance 를 가정할 경우, 약 190일

  • 15분 주기 데이터 저장

    • 1일 96개 데이터

    • 1년 35,040개 데이터

    • 100,000 회 endurance 를 가정할 경우, 약 2.9년

  • Wear leveling

    • LFS는 wear leveling을 지원

    • 6MiB / 4KiB = 1536 섹터

    • 100,000 * 1536 = 153,600,000 회 endurance

    • 1초 주기 데이터 저장

      • 153,600,000 / 31,536,000 = 4.9년

    • 60초 주기 데이터 저장

      • 153,600,000 / 525,600 = 292년

    • 15분 주기 데이터 저장

      • 153,600,000 / 35,040 = 4,380년

  • 데이터 저장 주기 최소값은 10초로 하자

    • 마진과 erase, write 연산 속도 고려