Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

4bit-CPU : TD4の解説

2,795 views

Published on

TTLで作る4bit CPU TD-4の解説です。
CPUの動作原理。
試作方法を掲載します。
原作:CPUの創りかた
https://goo.gl/xx37Yf

Published in: Technology
  • Login to see the comments

4bit-CPU : TD4の解説

  1. 1. Tomomi Research Inc. TD4 CPU Tutorial 01 2017/04/10 Seong-Hun Choe
  2. 2. Tomomi Research Inc. CPUとは 2017/5/19 ビジコン 141-PF (1971) Intel 4004
  3. 3. Tomomi Research Inc. Intel 4004 1. 1971年発表 2. 4ビットマイクロプロセッサ 3. クロック周波数:500kHz~741kHz 4. pMOSプロセス 5. 3mm*4mmサイズ 6. 2300個のトランジスタ 7. 10umのプロセス採用 8. 12ビットのアドレス 9. 8ビットの命令 10. 4ビットのデータ 11. 46種類の命令 12. 16個の4ビットレジスタ 2017/5/19 http://www.intel.com/Assets/PDF/General/4004_schematic.pdf
  4. 4. Tomomi Research Inc. 嶋正利 1. 1943年、静岡生まれ 2. 東北大学理学部 化学第二学科 (電気屋ではない。) 3. 1967年、日本計算機販売㈱に入社。(後のビジコン) 4. 1970年、インテルに出向。 (当時のインテルはビジコンのサ プライヤー) 5. Intel4004の論理設計に携わる。 6. 1970年、リコーに転職、インテルと8008を開発 7. 1972年、インテルに転職、8080の開発、パターンに嶋家の家 紋が入っている。 8. Zilog社を設立に参加。Z80, Z8000の設計 2017/5/19 Intel 4004
  5. 5. Tomomi Research Inc. 嶋正利 2017/5/19 Intel8080 https://goo.gl/HuCAxU
  6. 6. Tomomi Research Inc. CPU処理の流れ 2017/5/19 読み出し(Fetch) 解釈 (Decode) 実行 (Execute) メモリCPU 命令の読み出し Program Counterの出力 命令(機械語) 010111………1010 解釈 例)レジスタ1とレジス タ2を加算してレジス タ3に格納 実行する処理の確定 実際の処理を実行 0x0123 0x0456+ = 0x0579 レジスタ1 レジスタ2 レジスタ3 次の命令へ プログラム内蔵方式 John von Neumann
  7. 7. Tomomi Research Inc. 7400 シリーズ 1. 汎用ロジックIC 2. Transistor-transistor logic (TTL) 3. CPUの創り方では、74HCシリーズを利用 HCとは、High-speed CMOSとの意味。 4. 下の番号で識別 (a) 74HC10 : 3回路3入力NANDゲート (b) 74HC153 : 2回路4-1データセレクタ (c) 74HC283 : 4ビットバイナリ全加算器 5. Eagleに7400シリーズのライブラリー搭載 2017/5/19 TI社のSN7400 : すべてはここから。 4つのNANDが入っている。
  8. 8. Tomomi Research Inc. TD4の仕様 1. CPU : 4 bit RISC 2. 記憶容量 : 16-byte Machinal ROM = DIP S/W 3. 動作周波数 : 1 Hz or 10 Hz 4. 入力: 4 bits 5. 出力 : 4 bits (LED) 2017/5/19
  9. 9. Tomomi Research Inc. 0. リセットスイッチとクロックジェネレーター
  10. 10. Tomomi Research Inc. 0-1. リセットスイッチ 2017/5/19 CRフィルター Low pass filter チャタリング防止 メカニカルスイッチであるだめ、 接点で実際に激しくバウンド する。→チャタリング シュミットトリガ・インバータ HとLがズバッと切り替わる RESET : Hでリセット RESET : Lでリセット
  11. 11. Tomomi Research Inc. 0-2. クロックジェネレーター (インバータを使った発振回路) 2017/5/19 L H L 周波数 = 1 / (3*C*R) (この回路) Ex) R = 33 kOhm C = 10 uF Freq = 1 /(3* 33e3 * 10e-6) = 1.01 [Hz]
  12. 12. Tomomi Research Inc. 0-2. クロックジェネレーター 2017/5/19 周波数 = 1 / (3*C*R) (この回路) Ex) R = 33 kOhm C = 10 uF Freq = 1 /(3* 33e3 * 10e-6) = 1.01 [Hz] Ex) R = 3.3 kOhm C = 10 uF Freq = 1 /(3* 3.3e3 * 10e-6) = 10.01 [Hz]
  13. 13. Tomomi Research Inc. ROM (TD4ではプログラムを格納する場所) 1. DIPスイッチを利用 2. 8ビットの情報を記憶できる立派なデバイス 2017/5/19 https://www.marutsu.co.jp/pc/i/37980/
  14. 14. Tomomi Research Inc. 1. ROM
  15. 15. Tomomi Research Inc. ROMからプログラムを読み出す 1. CPUがROMに対し「n番地のデータをくれ」 2. 指定された番地のデータをCPUに送り返す。 2017/5/19 プロブラムは、全部16番地(0~15) 16 = 2^4 だから4ビbit データは8bit 128bit = 8 bitデータ * 16番地 = 1byte * 16 = 16 byte
  16. 16. Tomomi Research Inc. 1ビットのROM 2017/5/19 スイッチの状態で情報を記憶。 SW OFFの状態 出力 5V : ビット 1 出力 0V : ビット 0
  17. 17. Tomomi Research Inc. ビットが多い時の問題点 2017/5/19 1次元配列 : 9bit 1次元配列 : 55 bits あまりスマートではない。
  18. 18. Tomomi Research Inc. ビットが多い時の問題点 : マトリックス配列 2017/5/19 2次元配列 : 64 bits = 8 bits * 8 bits
  19. 19. Tomomi Research Inc. ダイオードの役割 (1) 2017/5/19 1 0 期待の状態 ダイオードがない場合 実際の状態 1 0 1
  20. 20. Tomomi Research Inc. ダイオードの役割 (2) 2017/5/19 ダイオードがある場合 1 0
  21. 21. Tomomi Research Inc. NOTゲート追加 (74HC04) 2017/5/19 SW OFF 1. 5V (High) 2. 0V (Low) SW 状態 OUT Logic OFF Low ON High 74HC04 -> 74HC540
  22. 22. Tomomi Research Inc. TD4のROM回路 2017/5/19 128bit = 8 bitデータ * 16番地 = 1byte * 16 = 16 byte
  23. 23. Tomomi Research Inc. ROMの動作 2017/5/19 ① 番地の選択 74HC154 4-to-16 line decoder ② 0番地 8bitの情報 ④ CPU に返す。 ③ 74HC540 inverterL H H H H H
  24. 24. Tomomi Research Inc. ROM回路の特徴 2017/5/19 5V 5V 5V 5V 5V http://eijian.hatenablog.com/entry/2016/01/24/200135 out In SW OUT Comment L OFF H SWの状態とOUTのロジック出力 H/Lが連動L ON L H OFF H SWの状態に関係なく,OUTがH H ON H
  25. 25. Tomomi Research Inc. ROMの動作 2017/5/19 ① 番地の選択 74HC154 4-to-16 line decoder ② 0番地 8bitの情報 ④ CPU に返す。 ③ 74HC540 inverterL H H H H H 従って、74HC154の出力 にNOTが付いている。
  26. 26. Tomomi Research Inc. 74HC154が入手困難 74HC154 → 74HC138を2個並べる 2017/5/19 74HC154 4-to-16 line decoder 74HC138 3-to-8 line decoder http://www.geocities.jp/team_zero_three/TD4/#replacing_74hc154 http://www.ypapaengpc.com/4bitcpu/public_html/74hc138.html
  27. 27. Tomomi Research Inc. D9-1C の代用品 2017/5/19 http://akizukidenshi.com/catalog/g/gI-06191/
  28. 28. Tomomi Research Inc. 6. CPUの設計準備
  29. 29. Tomomi Research Inc. TD4の仕様 1. CPU : 4 bit RISC 2. 記憶容量 : 16-byte Machinal ROM = DIP S/W 3. 動作周波数 : 1 Hz or 10 Hz 4. 入力: 4 bits 5. 出力 : 4 bits (LED) 2017/5/19
  30. 30. Tomomi Research Inc. TD4の命令語 ■ 命令フォーマット 4bit CPUだけど命令語は8bit 2017/5/19 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MSB* LSB** * Most Significant Bit (MSB) 最上位ビット(左端ビット) ** Least Significant Bit (LSB) 最下位ビット(右端ビット) 上位4bit Operation Code 下位4bit Immediate Data (Im) *** *** Immediate Data : 即値データ 即値とは、アセンブリ言語や機械語で、命令が扱う対象となるデータ(オペランド)として コード中に直に書き込まれた数値のこと。メモリやレジスタなどから読み出した値では なく、コード中で命令語の直後に置かれている値であることからこのように呼ばれる。
  31. 31. Tomomi Research Inc. 命令一覧 2017/5/19 No 分類 命令 数式 意味 Operation Code 1 算術(加算)命令 ADD A, Im A ← A+ Im AレジスタにImを加算 0000 2 ADD B, Im B ← B + Im BレジスタにImを加算 0101 3 データ転送命令 MOV A, Im A ← Im AレジスタにImを入れる 0011 4 MOV B, Im B ← Im BレジスタにImを入れる 0111 5 レジスト間の転送 MOV A, B A ← B AレジスタにBレジスタ値を入れる 0001 6 MOV B, A B ← A BレジスタにAレジスタ値を入れる 0100 7 ジャンプ命令 JMP Im 絶対アドレスへのジャンプ 1111 8 条件分岐 JNC Im Cプラグがセットされていないときジャ ンプ(必ず加算命令の後に実行) 1110 9 データの入力 IN A 入力ポートからAレジストへ 0010 10 IN B 入力ポートからBレジストへ 0110 11 データの出力 OUT B Bレジストの値を出力ポートへ 1001 Immediate Data (Im)
  32. 32. Tomomi Research Inc. 例) Aレジスタに0001を書き込みたい 2017/5/19 0001 MOV A, 0001 0011 0001
  33. 33. Tomomi Research Inc. 7. 1bit CPU
  34. 34. Tomomi Research Inc. FlipFlop (フリップ・フロップ) ■ フリップフロップ : 1ビットの情報を一時的に”0”または”1”の状態として保持(記憶)することができる論理回路。 2017/5/19 No 種類 1 ラッチ回路 SRラッチ回路 2 RS型 3 JK型 4 D型 D入力の値をクロックに同期 して読み込み、 次のクロック が加わるまでの期間中その 値を保持、記憶する回路 5 T型
  35. 35. Tomomi Research Inc. フリップフロップ = 1bit メモリ 2017/5/19 8 bit メモリ TD4 CPU Aレジスタ(4bit) + Bレジスタ(4bit)
  36. 36. Tomomi Research Inc. 74HC74 (フリップフロップの石、TD4には使わない) 2017/5/19 https://www.marutsu.co.jp/pc/i/19120/ Dual D-FlipFlops with Preset and Clear
  37. 37. Tomomi Research Inc. データの保持 2017/5/19 自分の出力をキャプチャするだけ。
  38. 38. Tomomi Research Inc. データの書き込み(ロード) 2017/5/19 書き込み(ロード)と記憶保持を切り替えるスイッチを設置
  39. 39. Tomomi Research Inc. データの保持命令 → 実は転送命令 2017/5/19 MOV A, A AレジスタからAレジスタ ■ 1bitのレジスタがあると考える。 1bit レジスタA データの保持 1bit レジスタA同じ ■ 要はCPUの命令とは、くるくる回る転送命令そのもの
  40. 40. Tomomi Research Inc. NOT演算の追加 2017/5/19 MOV A, A AレジスタからAレジスタ 1bit レジスタA NOT A Aレジスタの内容を論理反転 1bit レジスタA ■ 要はCPUの命令とは、転送命令を繰り返すだけのロジック
  41. 41. Tomomi Research Inc. また切り替えスイッチ 2017/5/19 MOV A, A NOT A の命令が実行できる。 1bit レジスタA
  42. 42. Tomomi Research Inc. 実際のスイッチ 2017/5/19 電気式トグルスイッチ機械式トグルスイッチ
  43. 43. Tomomi Research Inc. 74HC153 : 万能スイッチ、データセレクタ Dual 4-Input Multiplexers 2017/5/19 https://www.marutsu.co.jp/pc/i/37591/ Input Output
  44. 44. Tomomi Research Inc. レジスタの拡張 1bitレジスタ → 2bitレジスタ 2017/5/19 MOV A, B
  45. 45. Tomomi Research Inc. レジスタの拡張 1bitレジスタ → 2bitレジスタ 2017/5/19 MOV B, A データの保持
  46. 46. Tomomi Research Inc. ここで万能切り替えスイッチ (データセレクタ) 2017/5/19 MOV A, B
  47. 47. Tomomi Research Inc. TD4では4つのレジスタ 2017/5/19 各レジスタに万能スイッチ付
  48. 48. Tomomi Research Inc. 1bit レジスタ*4の動作 2017/5/19 データの保持 MOV A, D B,C,Dはデータ保持
  49. 49. Tomomi Research Inc. 74HC161 (4bit-counter) ■ 4つのFlipflopとその入力にデータセレクタ付 2017/5/19 http://toshiba.semicon-storage.com/jp/product/logic/cmos- logic/detail.TC74HC161AP.html レジスタ(4ビット)の内部 4ビット
  50. 50. Tomomi Research Inc. 実際の回路 2017/5/19 74HC161*4 Flipflop (4bit) 入力にLoad,保持スイッチ付 74HC153*2 データセレクタ
  51. 51. Tomomi Research Inc. 実際の回路 (Bus分解) 2017/5/19 74HC153*2 データセレクタ 74HC161*4 Flipflop (4bit) 入力にLoad,保持スイッチ付
  52. 52. Tomomi Research Inc. 8. ALUとProgramming Counter
  53. 53. Tomomi Research Inc. 2進数1bitの加算回路 (Adder) 入力 出力 A B C(キャリー) S(Sum) 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 2017/5/19 Half Adder 半加算器 (Cキャリーの入力がないため)
  54. 54. Tomomi Research Inc. 2進数1bitの加算回路 (Adder) 2017/5/19 入力 出力 C in(キャ リー入力) A B C(キャ リー) S(Sum) 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Full Adder 全加算器 (Cキャリーの入力が有)
  55. 55. Tomomi Research Inc. 4bitの全加算器 2017/5/19 74HC283 入手困難になってし まった。 SN74283ならmouserに ある。 https://goo.gl/p3lyme
  56. 56. Tomomi Research Inc. 演算回路を追加する。 2017/5/19
  57. 57. Tomomi Research Inc. CPUの動作: MOV A, B (BレジスタからAレジスタへ転送) 2017/5/19 ImData 0000にする。
  58. 58. Tomomi Research Inc. CPUの動作: MOV A, Im (ImデータをAレジスタにコピー) 2017/5/19 Dレジスタを切断して0000に固定する。
  59. 59. Tomomi Research Inc. フラグ(Flag) 演算の結果、C(キャリー)が発生した場合、それをメモしておく。キャリーフラグ(Carry Flag) キャリーが発生する → 条件分岐しない。 キャリーが発生しない → 条件分岐する。 ( JNC Im) 2017/5/19 Full AdderのC4 : Carry Output
  60. 60. Tomomi Research Inc. Program Counter インテルでは、Instruction Pointer (こっちがわかりやすい) 2017/5/19 1. リセット信号より、ゼロにリセットされる。 2. 1クロックの立ち上がりごとに+1される。
  61. 61. Tomomi Research Inc. Program Counter on TD4 カウンタICを流用 -> 4bitレジスタで使用済み ただし、ENT, ENPの両方をHに固定する。カウンタ機能復活。 2017/5/19 74HC161 (4bit-counter)
  62. 62. Tomomi Research Inc. Program Counter on TD4 DレジスタをProgram Counterとして使用。 2017/5/19
  63. 63. Tomomi Research Inc. Jump 命令 2017/5/19 JMP Im : Im番地へジャンプ MOV PC, Im : Imをプログラムカウンターへ転送
  64. 64. Tomomi Research Inc. 条件分岐命令 キャリーが発生する → 条件分岐しない。 キャリーが発生しない → 条件分岐する。 ( JNC Im) 2017/5/19
  65. 65. Tomomi Research Inc. I/O ポート 出力ポート また、74HC161 Cレジスタの出力を切断してLEDへ 2017/5/19
  66. 66. Tomomi Research Inc. I/O ポート 入力ポート DIPスイッチ ところで、何に使う? 2017/5/19
  67. 67. Tomomi Research Inc. 9. 命令デコーダー
  68. 68. Tomomi Research Inc. 命令デコーダー 2017/5/19 万能スイッチ制御 レジスタA~Dのデータ 保持 or LOAD制御
  69. 69. Tomomi Research Inc. 命令一覧 2017/5/19 No 分類 命令 数式 意味 Operation Code 1 算術(加算)命令 ADD A, Im A ← A+ Im AレジスタにImを加算 0000 2 ADD B, Im B ← B + Im BレジスタにImを加算 0101 3 データ転送命令 MOV A, Im A ← Im AレジスタにImを入れる 0011 4 MOV B, Im B ← Im BレジスタにImを入れる 0111 5 レジスト間の転送 MOV A, B A ← B AレジスタにBレジスタ値を入れる 0001 6 MOV B, A B ← A BレジスタにAレジスタ値を入れる 0100 7 ジャンプ命令 JMP Im 絶対アドレスへのジャンプ 1111 8 条件分岐 JNC Im Cプラグがセットされていないときジャ ンプ(必ず加算命令の後に実行) 1110 9 データの入力 IN A 入力ポートからAレジストへ 0010 10 IN B 入力ポートからBレジストへ 0110 11 データの出力 OUT B Bレジストの値を出力ポートへ 1001 Immediate Data (Im)
  70. 70. Tomomi Research Inc. MOV A, Im 2017/5/19 Input Operation code 0011 C Flag before Don’t Care C Flag after 0 Output Select B H Select A H LOAD0 L LOAD1 H LOAD2 H LOAD3 H
  71. 71. Tomomi Research Inc. MOV B, Im 2017/5/19 Input Operation code 0111 C Flag before Don’t Care C Flag after 0 Output Select B H Select A H LOAD0 H LOAD1 L LOAD2 H LOAD3 H
  72. 72. Tomomi Research Inc. MOV A, B 2017/5/19 Input Operation code 0001 C Flag before Don’t Care C Flag after 0 Output Select B L Select A H LOAD0 L LOAD1 H LOAD2 H LOAD3 H
  73. 73. Tomomi Research Inc. MOV B, A 2017/5/19 Input Operation code 0100 C Flag before Don’t Care C Flag after 0 Output Select B L Select A L LOAD0 H LOAD1 L LOAD2 H LOAD3 H
  74. 74. Tomomi Research Inc. ADD A, Im 2017/5/19 Input Operation code 000 C Flag before Don’t Care C Flag after 1 Output Select B L Select A L LOAD0 L LOAD1 H LOAD2 H LOAD3 H
  75. 75. Tomomi Research Inc. 命令一覧 2017/5/19
  76. 76. Tomomi Research Inc. 命令デコーダー回路 2017/5/19
  77. 77. Tomomi Research Inc. 10. 全体回路
  78. 78. Tomomi Research Inc. 2017/5/19
  79. 79. Tomomi Research Inc. 2017/5/19
  80. 80. Tomomi Research Inc. 2017/5/19
  81. 81. Tomomi Research Inc. 部品リスト 74シリーズ 2017/5/19 名前 名称 TD4の機能 Number 在庫 74HC10 3-入力NAND回路 命令デコーダー 1 https://goo.gl/QClkoC 74HC14 シュミットインバーター回路 クロックとリセット回路 1 https://goo.gl/p699vI 74HC32 4-OR回路 命令デコーダー 1 https://goo.gl/Ah9VgJ 74HC74 Flip Flops Dual w/Clear Preset キャリーフラグ 1 https://goo.gl/sK7SJd 74HC153 Dual 4 input multiplexers 万能スイッチ 2 https://goo.gl/IYSPVz 74HC154 4-to-16 line decoder ROMのプログラム番 地を指定 1 在庫なし 74HC138 4-to-16 line decoder ROMのプログラム番 地を指定 2 74HC154の代用 https://goo.gl/16l8aq 74HC161 4 bit counter 4 Bit レジスタ 4 カウンター機能を殺し、メモリとし て利用 https://goo.gl/3ah8jk 74HC283 Logic Adder & Subtractor ALU 1 https://goo.gl/aQPyZM 74HC540 Inverter ROMの出力を反転し てCPUに渡す 1 https://goo.gl/F7JS36
  82. 82. Tomomi Research Inc. 他の部品 2017/5/19 名前 名称 TD4の機能 Number 在庫 D9-IC ダイオードアレイ ROM回路 16 http://www.ebay.com/itm/10-Stuck-Diodematrix- D9-1C-von-BI-technologies-8-Dioden-pin-1-in- Common-Anode- /332176769823?hash=item4d5747431f:g:4rgAAO Sww3tY57Wr ダイオード ROM回路 16*9 D9-1Cの代用 ICソケット 14pin 4 https://goo.gl/7ucl6D 16pin 7 https://goo.gl/nne525 20pin 1 24pin 1 https://goo.gl/IPswYc 13 スイッチ関連 4連ディップスイッチ 1 http://www.marutsu.co.jp/pc/i/3 069/ 8連ディップスイッチ 16 http://www.marutsu.co.jp/pc/i/3 7980/ トグル 2 http://jp.rs- online.com/web/p/toggle- switches/0320916/
  83. 83. Tomomi Research Inc. EAGLEの教訓 参考資料 https://docs.google.com/spreadsheets/d/136TmdKuCZnGkz1oDch9LOxuD0-tcbQ_CFf33a65JZh4/edit#gid=0 1. Netclassesの設定は、SchematicではなくBoardで 2. 配線の取り消し、 RIPUP 3. Layer 19 Unroutedは消したほうがいい。 4. Gridの設定 (50mil便利!) 2017/5/19
  84. 84. Tomomi Research Inc. EAGLEの教訓 1. Gridの設定。枠を書く時には Size 0.5mm 2. TTLの隠れピンを出すときはInvoke命令 3. もののvalue, nameを移動させる時には、smash命令 4. Tvalueレイヤは基本的に印刷できない。その時にはCam processorでSilkTopでtvalueをONにする。 5. 必ずSeeedのGerber Viewerで確認すること。 6. Ratsnest(GNDベタ面)を見えなくする方法はない。Polygonを消すしかない。 7. Autoroutingの時は、Ratsnestを消したほうがいい。 2017/5/19
  85. 85. Tomomi Research Inc. CPU, Clock, Reset 2017/5/19
  86. 86. Tomomi Research Inc. ROM 2017/5/19

×