すでにマイコンを使い込まれている上級者向けの技術解説の連載「ハイレベルマイコン講座」。今回は、マイコンの内部の命令処理の方式をRISCとCISCに分けて解説する。
前回に引き続き、マイコンの「アーキテクチャ」について詳しく解説する。
今回は、マイコンの内部の命令処理の方式をRISCとCISCに分けて解説する。最初は「RISCの命令の並列処理」と題し、パイプラインとスーパースカラを中心に解説する。次に「CISCの命令の内部処理(μ-OPとμ-プログラム)」と題し、μ-OPとμ-プログラムについて解説する。
RISCでの、マイコン内部で命令を処理する手法は大きく分けて、パイプラインとスーパースカラがある。パイプラインは、命令を実行する際に一連の処理をいくつかのステップに分けて実行する方式だ。各処理に専用のハードウェアを設け、各ハードウェアはひたすら自分の処理だけを行い、その結果を次のハードウェアにわたす。各処理は1クロックサイクルで完了するようになっているため、必ず1クロックサイクルごとに結果が出力される。実際は、1命令の処理に複数クロックサイクルを要していても、実使用上、1命令を1クロックサイクルで実行することができるというメリットがある。
スーパースカラとは、パイプライン処理のハードウェアを2セット以上並べて、同時に2個以上の命令を並列実行する手法だ。もちろん、1個よりも2個、2個よりも3個を並列に実行した方が、命令処理能力が上がるが、マイコン内部の論理回路規模が大きくなりコストも高くなる。
パイプラインとスーパースカラについては、連載「Q&Aで学ぶマイコン講座」の第35回「スーパースカラって何?」で詳しく解説しているが、ここでもう一度復習しておく(図1参照)
パイプラインは、1つの命令をいくつかのステップに分け、各ステップに専用のハードウェアを設けて、それぞれのハードウェアを並列かつ独立に動作させる方式だ。それぞれのハードウェアは決められた処理しか行なわない。ただ、必ず1クロックサイクルで処理を終わり、その結果を次のハードウェアに送る。この連続した処理により、最後の演算結果は、必ず1クロックサイクルごとに出すことができ、見かけ上1命令が1クロックサイクルで実行されることになる。図2に、1つの命令を6つの処理に分けた例を示す。
Copyright © ITmedia, Inc. All Rights Reserved.