目的
アウトプットによる理解の促進と情報共有。
バスの構成要件
バスに接続される基本的なブロックは下図の通り。
ブロックはバスマスタ、バススレーブ、バスアービタに分類できる。
これらが決められた仕様に従って動作する仕組みをバスプロトコルという。
バスマスタ
自らバスを制御してデータ転送を行うものをいう。
バススレーブ
自らバスを制御する機能を有しないものをいう。データ転送時にはバスマスタに対して受動的に振舞う。
バスアービタ
複数のバスマスタがいるバスにおいて、バスマスタ間でのバス使用権の調停を行う。
独立したバスアービタを接続して集中管理する方式と、それぞれのバスマスタにバスアービタの機能を持たせてこれらの間で調停を行わせる方式とがある。
システムバス構成
プリンストンアーキテクチャ
データとプログラム(命令)を同一のメモリバス上に配置するアーキテクチャ。
プリンストンアーキテクチャ
データとプログラム(命令)を別々のメモリバス上に配置するアーキテクチャ。演算の高速処理が可能なため、DSPでの採用例が多い。
ウェイト機能とレディ機能
低速IOブロックにCPUの動作を合わせる方法としてこれらの機能がある。
ウェイト機能は、アクセス時に挿入するダミーサイクルの数を設定することで、特定のデバイスに対するアクセス速度を遅くする。
レディ機能は、ブロックがCPUに対してレディ信号を使って実行中のアクセスサイクルを延長するように指示する。
DMA (Direct Memory Access)
CPUを介さず主記憶と周辺デバイスとの間、または主記憶と主記憶の間でデータを送受信するための仕組み。
DMA転送ではDMACと呼ばれる専用HWがCPUと独立してデータの送受信を行う。
CPUがDMACに対し転送先のアドレスを指定した後、転送開始の指示を行うと、データの転送が開始される。
DMA転送中はDMACがバスマスタとして機能するためCPUから主記憶へのアクセスは制限を受ける。
疑問に思ったこと
- プリンストンアーキテクチャのデメリットは? 命令にアクセスしているときデータにアクセスできず低速であることがデメリットで合っている?
参考:http://memes.sakura.ne.jp/memes/?page_id=106