自作CPU入門7:CPU内部で使う回路
レジスタ/セレクタ/アダ―/バスで構成
CPU内部の基本構成要素と動作原理
![]() |
---|
図1 CPU内部のレジスタは,フリップフロップという回路素子で作る.レジスタの間の通信経路はセレクタという回路素子を組み合わせて作る.計算回路は加算回路を組み合わて作る.画像クリックで動画を見る.または記事を読む |
CPU内部のレジスタはフリップフロップ回路で構成され,データの一時保存と転送を可能にしています.1ビット単位で情報を保持するこの回路が集積されることで,32ビットや64ビットのデータ処理が実現します.
メモリの種類と特性
CPU内部で使用されるメモリには主に3種類あります
- SRAM:フリップフロップを用いた高速アクセス可能なメモリ.トランジスタの組み合わせで構成
- DRAM:キャパシタの電荷で情報を保持.大容量化が可能だがリフレッシュ動作が必要
- フラッシュ・メモリ:不揮発性を特徴とするが,書き込み速度が低速
データ転送の核となるセレクタ回路
複数のレジスタ間でデータを選択的に転送するため,AND/OR/NOTゲートを組み合わせたセレクタ回路が使用されます.$sel$信号による制御で,32ビット幅のデータ経路を切り替えます.
演算回路の基本構造
加算器を基本単位として,減算・乗算・除算回路を構築します.1ビット加算器の組み合わせで多ビット演算を実現し,XORゲートを用いた等値判定回路も重要です.
フリップフロップの動作原理
$D$端子に入力された値を$ENA$信号の立ち上がりエッジで保持します.クロック信号に同期して$Q$端子から値を出力し,電源供給が続く限りデータを保持し続けます.
セレクタ回路の信号制御
2入力1出力の基本ユニットを多段接続することで,複数入力から特定の信号線を選択します.制御信号の切り替えタイミングと順序がデータ整合性を保つ鍵になります.
全体制御回路の設計手法
マイクロプログラム方式で制御信号のシーケンスを管理します.ステートマシンを用いて命令実行サイクルを制御し,ハードウェア記述言語による設計効率化が現代の主流です.
〈著:ZEPマガジン〉チャプタ・リスト
- 1:01 今回の内容
- 1:36 レジスタはどのような回路化
- 4:52 レジスタからレジスタへの転送
- 6:02 セレクタはどのような回路か
- 8:36 演算回路はどのような物か
- 10:31 命令解読回路はどのような物か
- 11:14 CPUとしての動きの全体制御
- 14:58 おまけ:自作CPU派に!お勧め開発キット
著者紹介
- NTT,IBM,Sony,NECの各研究所において高性能回路IPやハイレベル・シンセシスの研究,およびプレイステーションなどの製品用SoC開発に従事した後,現職にて民間宇宙ロケットの飛行制御コンピュータの研究開発に従事.FPGAや高位合成を活用している
著書
- [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編&実践編】,ZEPエンジニアリング株式会社.
- [VOD/KIT]Xilinx製FPGAで始めるHDL回路設計入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編】,ZEPエンジニアリング株式会社.
- [VOD/KIT]Zynqで初めてのFPGA×Linux I/O搭載カスタムSoC製作,ZEPエンジニアリング株式会社.
- [VOD/KIT]Tiny FPGA実習!高校生から始めるHDLプログラミング,ZEPエンジニアリング株式会社.
- [VOD/Pi KIT]カメラ×ラズパイで一緒に!初めての画像処理プログラミング,ZEPエンジニアリング株式会社.
- スパコンでも破れない!高セキュリティ・マイコン・プログラミング,ZEPエンジニアリング株式会社.
- [YouTube]宇宙軌道ロケット 成功の方程式
- [YouTube]宇宙ロケットの電子回路開発
- FPGA/Zynqで作るカスタム・コンピュータ・チップ,ZEPエンジニアリング株式会社.
- Lチカ入門!ソフトウェア屋のためのHDL事はじめ,ZEPエンジニアリング株式会社.
- USBカメラの動画キャプチャ&描画用 Pythonプログラム,ZEPエンジニアリング株式会社.
- ライブラリ完備!組立式ラズパイI/O増設ボード MCC DAQ HATSファミリ誕生,ZEPエンジニアリング株式会社.
参考文献
- [VOD/KIT] 実習キットで一緒に作る!オープンソースCPU RISC-V入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門,ZEPエンジニアリング株式会社.