FOR INTERNAL USE ONLY
URL限定のページです。他言無用でお願いします。リンク、このページの言及はしないように。
最終更新日時:2023-06-06 14:57:22
設計中にかなり適当な怪しい用語を使いまくり、かつ表記ゆれがとても激しいので正しい用語で統一するためにもここに纏めます。
間違っていることを言っていた場合教えてください。
ALU(算術論理演算装置)
ALUとは日本語では算術論理演算装置と呼ばれるが、その言葉の通り算術な演算(加算や減算など)と論理演算(ANDやORなど)を自由に実行できる組み合わせ回路の一種。
CPUにとっては電卓的な役割を持っている。(電卓にはCPUが入っているから無限ループ陥るとか言わないで)
ALUの設計は結構面白く私は1年とかかけてしまった(笑)。
IP
Instruction Pointerのこと。PC、プログラムカウンタ、とも呼ばれる。
NLP-16アーキテクチャでは回路規模削減に伴いカウント機能をレジスタに持たせず、ALUを用いてINCするため「カウンタ」機能を持っていない。
ゆえにIntel x86系などで用いられているIPをここでは使用している。
混乱を招きそうだがこちらのほうが表現が正確。
データバス
データバスとはデータが流れる主だった経路のこと。
この記事
の内容が大体いい感じなので参照してみてください。(なおNLP-16では相互な転送は不可能。必要もないので削減した。)
NLP-16ではデータバスが3本ありうち2つは演算装置の入力、残りは出力に割り当てられている。
マイクロプロセッサ黎明期の自作CPUではシリアルバスを採用しているのを見かけるがここでは16bitのパラレルバスを採用。
CPUには内部バスに通常アドレスバスというものもあるが私のアーキテクチャは少し変わっていてデータバスを時分割してアドレスの操作、供給をできるようにしている。外部へのバスではi4004のような時分割はされていない。
データバスはとても論理数を食うため1本でも削減したかった〜
スポンサードリンク
2相クロック
2相クロックとは位相をずらした2つのクロックのこと。
しかしここでは2相クロックは「ノンオーバラップ」なクロックであることに注意。
私の設計ではDuty比が25%のクロックを位相を180°ずらしたものになっている。
ここでは詳しくは触れないが、わざわざこのようなクロックを取っているのはレジスタやMEMのアドレス確定時間やレジスタにD-FFでなくD-Latchと使っていたり、ノイズ対策、組み合わせ回路の出力が安定してから信号を取り込めてかつ後段に誤りが響きにくいなど様々な利点から採用している。
ちょっと面倒だが8080のような変態2相クロックよりははるかにまし。
電脳伝説さんのページがわかりやすいです。 ここから
また、クロックの分配はH木などは使用せずファンアウトが10を超えない程度に気ままにやっています。
試作ではファンアウトが最大16の部分があるが今のところ動いている。PCBであれば配線の手間が消滅するため10以下になるように設計予定です。(言い訳)
Reg レジスタ
値を一時的に格納するもの。CPU内部にありCPU自体が特別なことなしに直接操作することができる。レジスタが多いことをRISCの特徴として語られることがある。(レジスタが多いことがRISCにとって重要なのではない。RAMにアクセスしないということが本質。)
一般的に同じ値を一時的に格納するものであるRAMと比較して容量はかなり少ない。
レジスタには「汎用」とCPUが管理のために使用する特殊なレジスタがある。
例えば
IP
は現在の命令の番地を示す特殊なレジスタである。