組込みシステム開発の場合、ハード屋さんから、割り付け表といわれる資料を貰います
その資料には 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 件のコメント:
コメントを投稿