2012年6月22日金曜日

メモリマップドIOとIOマップドIO

組込みシステム開発の場合、ハード屋さんから、割り付け表といわれる資料を貰います


その資料には IOとかアドレスとか書かれています

IOはInput,Outputの略ですね

CPUからの制御線には M,IO,R,Wと有ります(CPUごとには違いますが簡略化します)

それとデータバス、アドレスバス、これを組み合わせて周辺機器(チップ)とのやり取りを行います


IOマップドIO

IOマップドIOというのは、IO信号と、アドレス、Write or Read 信号で外部とのやり取りを
行います


IO命令というのがマシン語レベルであるので、理解もしやすいと思います

ただし、IO命令に使われるアドレス幅に制限がある場合があります

IO命令自体も高速に行われる事が多いのでデータ量が小さい場合には便利です

CPU内臓のIOとは別に使える場合もあります

割り付け表 には IOとして書かれていると思います



<メモリマップドIO>

メモリマップドIOでは、広大なアドレスが使えます

通常、アドレスバスの2のn乗のアドレスバスの信号を一つまたは複数使って
周辺機器(デバイス、チップ)へのアクセス信号をハードウェアロジックで作成します

最近のCPUではアドレスバスの幅も広く、またやり取りするデータ量も多いので、
この方式はよく使われます

IOなのに、なんでメモリーアクセス?って、少し頭が混乱する原因です

欠点は、メモリーアクセスになるので、少し動作が遅い場合があります

ただし、最近のCPUでは、ある程度のアドレスの範囲でアクセス速度を指定できますので、問題にならない場合も多いです

この、アクセス速度の設定などは スタートアップルーチンで記述する事が多いです

特に画面周りがあるものでは、データ量が多くなるので、多いと思います









0 件のコメント:

コメントを投稿