Dies hängt vollständig von der Speicher- und CPU-Architektur ab. Als Faustregel gilt, dass SRAM schneller ist als Flash, insbesondere bei MCUs mit höherer Geschwindigkeit (> 100 MHz). SRAM-Bitzellen erzeugen eine (mehr oder weniger) logische Ausgabe, während der Flash-Speicher einen langsameren Stromerfassungsprozess durchlaufen muss.
Wie viel schneller (falls vorhanden) ist wiederum von der Architektur abhängig - der Wortgröße der Speicher, der Anzahl der Wartezustände, dem Vorhandensein von Caching, der Größe der CPU-Anweisungen usw. Wenn Sie mit a arbeiten Wenn die Frequenz niedrig genug ist, können auf Flash und RAM keine Wartezustände auftreten, sodass sie möglicherweise mit derselben Geschwindigkeit ausgeführt werden.
Der Code ist auch wichtig. Wenn Ihr Code streng linear ist (keine Verzweigung), kann der Flash-Befehl Anweisungen schnell genug vorab abrufen, um die CPU auch bei höheren Frequenzen gesättigt zu halten. Wie Olin sagte, könnte eine CPU mit Harvard-Architektur mit separaten Programm- und Datenlesepfaden unterschiedliche Leistungen erbringen, wenn sich Code und Daten in unterschiedlichen Speichern befinden.
Metall-ROMs (und andere nichtflüchtige Speicher wie FRAM) haben ihre eigenen Eigenschaften und können so schnell wie SRAM sein oder auch nicht. Die Fähigkeit zu schreiben macht nicht unbedingt einen Unterschied; Es geht mehr um die Eigenschaften der Ausgangs- und Erfassungsschaltungen der Bitzellen.
Das Datenblatt gibt Ihnen eine ungefähre Vorstellung vom Geschwindigkeitsunterschied. Die einzige Möglichkeit, dies sicher zu wissen, besteht darin, Ihren Code zu profilieren.