Last update $Id$
(c) 2007 BakaOyaji

準備編 その2 クリティカルパスはどこか?

簡単にデータ・パスを見てみます.ここで言うデータ・パスとはF/F(フリップフロップ)から、次のF/Fまでの間の部分のことをさしています。

パスPIC16ファミリは,2ステージのパイプライン処理をしています.データブックには具体的にはどこ,とは書いていませんが,インストラクションレジ スタのところで切れる,すなわちインストラクションレジスタが,システムのクロックで,命令をラッチしていると考えるのが妥当でしょう.
Fig2 Data Path Analysis
Fig.2データ・パスの解析 (クリックして拡大)

したがって、パイプラインの第一ステージ、命令フェッチが,緑のパス,第2ステージの命令の実行が赤または青のパス(赤/青に共通のパスは黄色で現してい ます)になるでしょう.命令実行パスは,実行 する命令によって若干変わります.「ALU」の右側の入力のマルチプレクサは,LITERAL命令か、BYTE ORIENTED FILE REGISTER命令で切り替わるのだと想像できます。ALUへは、データを流すパ スと、命令から演算結果(WriteDataBus)へのパスが あるので、インストラクションデコーダ→ALUへも矢印を書きました。
BYTE ORIENTED FILE REGISTER命令でのデータパスは、赤のパス、すなわち

   Instruction Register → Addr MUX → FileReg(Read) → MUX → ALU → FileReg(Write)
   Instruction Register → Instruction Decoder -----------------↑
   W Reg  --------------------------------------------------|

という途中でマージする二つのパスになります。第一観としては、上のパスのほうが長そう、すなわちクリ ティカルパスになりそうです。
一方、LITERAL命令では、青いパス、すなわち

   Instruction Register → MUX -----------→ ALU → W Reg
   Instruction Register → Instruction Decoder -↑
   W Reg  ----------------------------------|


となるようです。この場合は、2番目のパスがクリティカルパスになりそうです。

ちょっと,緑のパスと,赤(または青)のパスの長さのバランスが悪いですが,2ステージのパイプラインの場合はいたしかたないでしょうね.

*クリティカル・パス(Critical path)
F/F間のもっとも長いパスのこと。同期回路でのクロックの上限を率速する。高速化のためにはクリティカルパスがどこなのかを理解しておくことが重要。
 



<<前に戻る   Index へ  次へ>>