ARMのFlashとRAM


 
 :flash ( )        ram 
 :ram                       flash 

 
 
Q 1:プログラムをflashとramにダウンロードするのはどんな違いがありますか?それぞれどんな場合に使いますか.デバッガの初期のみramにプログラムをダウンロードしますか?
A 1:ARMから見るとflashとramの違いデバッグ追跡のみの場合、codeをramに書くだけで実行できます!しかし、実際の製品やflashに書き込むテストでは、実行時にARMがboot codeを実行して機能codeを解凍読み取りramに送り、ramの機能codeを実行する.
A 2:RAMでプログラムを実行する速度は速いが、電源を切るとRAMのデータが失われ、flashに焼かれても失われない.一部のシステムでは、flashで直接プログラムを実行できますが、一部のシステムでは、flashのプログラムをRAMにロードして実行する必要があります.
 
Q 2:「一部のシステムではflashのプログラムをRAMにロードしなければ実行できない」lpc 2131はこのように実行されていますか?
 
A:lpc 2131は、他のLPC 2000チップを含むFlash付きチップをRAMにロードして実行する必要はありません.いっそ私が説明します.
Flashの速度は遅く、例えば-50のFlashでは、読み取りは20 Mの速度しかありませんが、
ARM
核は50〜60 M、さらに高いレベルで動作することができる.では
ARM
チップのCPUが1つの命令を実行すると、次の命令が読み出されるのを待たなければならず、すぐに次の命令を実行することはできません.これにより、Flashが遅く、CPUが速いため、リソースの浪費やシステム速度が低下します.この矛盾を解決するために、Flashにプログラム(パソコンのハードディスクに相当)だけを格納し、プログラムをRAMに読み込んで実行する(パソコンのようなメモリ)メーカーがあれば、CPUの速度が発揮される.
フィリップスのピボットは
ARM
チップ(LPC 2100シリーズ)は外部バスがなく、外部プログラムメモリに接続できません.そのため、チップ内のFlashストレージプログラムしか使用できません.外部RAMに接続してプログラムを実行することもできません.そこでPhilipsはこの速度矛盾を解決するために比較的特殊な方法を採用した.内部Flashと内部バスの間にストレージアクセラレータモジュールを追加し、128ビットのデータ幅があり、一度にFlashから4つの命令(注意は1つではなく4つ)を読み取ることができ、また予測分岐などの機能を加えて、CPUが全速力で動作するときに、Flashから読み取ったプログラムを次々とCPUに送ることができ、待つ必要はありません.ただ、ブランチ(呼び出し、ジャンプなど)がある場合は、流水線を空にして一時的な速度を少し低下させる必要があります.プログラムのほとんどが順番に実行される命令であることを知っています.したがってPhilipsのLPC 2100シリーズはRAMで動作する必要はありません.前述の問題では、ダウンロードプログラムをRAMに実行するのは便利で、より速く、この状況はウィジェットの作成を学ぶときに使用するのに適しており、Flashにダウンロードして待つことはありません.プログラムがRAMの範囲を超えている場合は、Flashにダウンロードして実行する必要があります.少しプログラムを変更するたびに再ダウンロードしなければならないので、時間がかかります.特に大きなプログラムです.前述したように、Flashの読み書き速度はRAMよりずっと遅いに違いない.