A minimal table to compare the Espressif's MCU families.
| ESP8266 | ESP32 | ESP32-S2 | ESP32-S3 | ESP32-C3 | ESP32-C6 | |
|---|---|---|---|---|---|---|
| Announcement Date | 2014, August | 2016, September | 2019, September | 2020, December |
| #!/usr/bin/env bash | |
| # | |
| # Copyright (C) 2023 Patrick Pedersen | |
| # | |
| # This program is free software: you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation, either version 3 of the License, or | |
| # (at your option) any later version. | |
| # |
| import chisel3.util.log2Ceil | |
| import chisel3.experimental.EnumAnnotations.{EnumComponentAnnotation, EnumVecAnnotation, EnumDefAnnotation} | |
| import firrtl.{CircuitState, DependencyAPIMigration, Transform} | |
| import firrtl.options.TargetDirAnnotation | |
| import firrtl.stage.{Forms, RunFirrtlTransformAnnotation} | |
| import firrtl.analyses.InstanceKeyGraph | |
| import firrtl.ir.{GroundType, SIntType, IntWidth, Port} | |
| import chiseltest.internal.{VerilatorBackendAnnotation, WriteVcdAnnotation} | |
| import logger.LazyLogging |
| { config, lib, ... }: | |
| with lib; | |
| let | |
| cfg = config.services.nixBinaryCacheCache; | |
| nginxCfg = config.services.nginx; |
| Latency Comparison Numbers (~2012) | |
| ---------------------------------- | |
| L1 cache reference 0.5 ns | |
| Branch mispredict 5 ns | |
| L2 cache reference 7 ns 14x L1 cache | |
| Mutex lock/unlock 25 ns | |
| Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
| Compress 1K bytes with Zippy 3,000 ns 3 us | |
| Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
| Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |