1K Views
April 16, 22
スライド概要
1. バスは、コンピュータの構成要素および入出力装置をつなぐ通
信路であり、その速度はコンピュータの性能を左右する
2. CPUは、アドレス(番地)を指定してデータのやり取りを行う
3. 外部装置をつなぐバスには、SATA、USB、IPCeなどがある
機械系のためのメカトロニクス
内容
⚫ コンピュータの基礎
1. 3つの基本構成要素
(CPU, Memory, Bus)
2. Bus(バス)について
①Busの概要
②Busの構成構(address, data, control)
③基本のBus構成(CPU直結バス)
④Bus機能(Address)
⑤Address空間(アドレスバスの幅)
⑥Bus機能(Contol:Read/Write)
⚫ まとめ:バスの役割
⚫ Busの進化
1. Busのボトルネック問題
2. PCバスの進化
①高速/低速の分離:
Northbridge, Southbridge
②CPUパッケージ内に高速用を統合
③バスの種類:
ノイマン型とハーバード型
⚫ 追加:PCIeについて
①パラレル方式とシリアル方式
②PCIe (Peripheral Component Interconnect
Express)
これまでに主に,ロボティクス・メカトロニクス研究,特にロボットハンドと触覚センシングの研究を行ってきました。現在は、機械系の学部生向けのメカトロニクス講義資料、そしてロボティクス研究者向けの触覚技術のサーベイ資料の作成などをしております。最近自作センサの解説を動画で始めました。https://researchmap.jp/read0072509 電気通信大学 名誉教授
第10回コンピュータの原理 メカトロニクス コンピュータの基礎 1)Busについて data 下 条 誠 電気通信大学名誉教授 https://researchmap.jp/read0072509/ 機械系のためのメカトロニクス The University of Electro-Communications Department of Mechanical Engineering and Intelligent System
メカトロニクス:アナログとディジタル 現実の世界 計算機の世界 アナログ量 (連続量) デジタル量 (離散量) (電圧、電 流) 物体 位置姿勢 距離 位置、速度、 加速度、力 関節 角度 力 ハンド 位置、速度 把持力 制御量 モータ制御用 電圧電流 今回の 大テーマ デジタル制御 digital control 測定量 Hand 2 ADC Program development 0 0 0 1 1 1 1 ..... 1 1 0 1 1 0 1 1 0 0 1 Filtering、 modeling、 learning DAC Program execution Robot Arm サンプル値 量子化データ 11 10 アナログ量 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 01 00 time アナログ信号 連続信号 0 0 0 1 ・・・・ 1 1 1 0 量子化(2bit例) 時間的に離散化 time デジタル量 デジタル信号(2bit例) 21 20
達成目標 3 1. バスは、コンピュータの構成要素および入出力装置をつなぐ通 信路であり、その速度はコンピュータの性能を左右する 2. CPUは、アドレス(番地)を指定してデータのやり取りを行う 3. 外部装置をつなぐバスには、SATA、USB、IPCeなどがある これらのことがわかる 参考のためのスライドです。とばしても構いません。
内 容 4 ⚫ コンピュータの基礎 ⚫ Busの進化 1. 3つの基本構成要素 (CPU, Memory, Bus) 1. Busのボトルネック問題 2. Bus(バス)について ① Busの概要 ② Busの構成構(address, data, control) ③ 基本のBus構成例(CPU直結バス) ④ Bus機能(Address) 2. PCバスの進化 ① 高速/低速の分離: Northbridge, Southbridge ② CPUパッケージ内に高速用を統合 ③ バスの種類: ノイマン型とハーバード型 ⑤ Address空間(アドレスバスの幅) ⚫ 追加:PCIeについて ⑥ Bus機能(Contol:Read/Write) ① パラレル方式とシリアル方式 ⚫ まとめ:バスの役割 ② PCIe (Peripheral Component Interconnect Express)
コンピュータの基礎 5
コンピュータの基礎 コンピュータの仕組みを、上記3つの構成要素に分けて解説します。 1. CPU 2. メモリ/外部機器 3. Bus(バス) 今回の テーマ 今後のメカトロニクスの応用展開には、 コンピュータのより深い理解が必要で す。このため、今回の講義は少し詳し く解説します。通常のメカトロニクス 講義の範囲を超えていると思いますの で、一部省略しても構いません。 6
コンピュータの基本構成要素 基本構成要素 • CPU • Memory data Bus 7 ごく簡単化したモデル Busは、CPUとメモリの間でデータ のやり取りを行う通信路 • Bus 結果の保存 命令の実行 データの保存 CPUの動作 サイクル 命令の呼び出し データの読出し CPU Memory CPU は、コン ピュータの管理と 演算処理を行う Bus data メモリは、データを記 憶する(プログラムも データの一種)
コンピュータの基本構成要素 イメージ 8 基本構成要素 CPU → 工場 data Memory→倉庫 Bus → 道路 製品の搬入 製品の搬出 製品材料 の格納 CPUの動作 サイクル 製品の製造 材料の搬入 CPU 材料の搬出 工場 Memory data 道路 Bus 倉庫
Bus(バス)について Busは、CPUとメモリ/外部装置の間でデータの 入出力を行う通信路である 例えれば、Busとは 道路である データの転送速度がコン ピュータの性能を決める 9
Busの概要 10 ⚫ バスとは、例えれば データを運ぶ道路のよ うなもの ⚫ その通行速度が速く、 その道幅(車線)が広 いほど大量のデータを 高速に届けられる ⚫ データの輸送速度がコ ンピュータの性能を決 める バスは、CPU とメモリや周辺 機器の間をつな ぐ通信路である 基本なバス data バスとは、具体的には電気 信号を通す配線の束(16、 32、64本等)である。 Busには、system bus、 Internal bus、 Strage busなど各種別ある
Busの概要 11 ビデオ https://www.youtube.com/watch?v=7QffiMyMpnM
Busの構成 (address, data, control) バス(Bus) 中央処理装置 CPU address メモリ memory ALU プログラム レジスタ データ data control 管理・演算処理 通信路 記 憶 1. バスは、CPU とメモリの間をつなぐ通信路(信号線の束)である 2. バスは次の3つから構成される ① address bus:データの番地を指定する ② data bus:データを入出力する ③ control bus:read/writeなどの制御指令を行う 注:現在のパソコンでは、バス構造はもう少し複雑となった。ただし本質的には変わっていない。 12
基本のBus構成例(CPU直結バス) 13 CPUは、 ①番地を指定して、 ②データの入出力( ③読み/書き指令)を行う 電気を通す配線の束 ① ② ③ CPU直結バス (IBM PC, PDP11 Unibusなど)
CPUの構成例(PDP-11) 14 CPUの所で詳しく解説します R0 IR(命令レジスタ) BAR decoder BCR address R1 レ ジ ス タ R2 control R3 R4 controller BDR R5 制御部 R6(SP) 番地 R7(PC) trA data 0000 trB CPU ……………………….. 1000 Shifter ALU Main Memory PSW 0101011101010001 0111011100010001 0110000001000001 …………………….. 内部バス ………………………….. RAM ⚫ PC: Program Counter 次の命令のメモリアドレスを示す ⚫ PSW: Program Status Word 演算結果の状態などを示す ⚫ ALU: Arithmetic and Logic Unit 算術演算や論理演算などを行う ROM IPL Initial program loader 主記憶 PDP-11はバイトアドレス ですが本図では一部異な るところがあります
Busの機能(アドレス) CPUは、 アドレス(番地)を指定して、 BUSにつながる装置と通信する ① address bus:データの 番地を指定する通信路 ② data bus:データを入出 力する通信路 ③ control bus: read/writeなどの制御指 令を行う通信路 15 Memory Device
Busの機能(アドレス) 16 コンピュータは、アドレス(番地)を通してデータの入出力を行う CPUは、 Device ①番地を指定して(address bus) ②データの入出力(data bus) ③読み/書き指令(control bus) ⚫ データの入出力を行うデバイスのインタフェー スには、CPUと通信するためにレジスタがある ⚫ データの入出力は、このレジスタを介して行わ れる を行う Memory ⚫ アドレスは、このレジスタに割り振られている 番地 0000 0001 OS Interface Reg1 Reg2 Reg3 1000 ROM Interface Reg1 Reg2 Reg3 010101110101000101101 011101110001000101010 ……………………….. program RAM 番地 data OS program IPL Initial program loader data レジスタの個数、機能等はデバイスに依存 する。例えば、プリンタはコマンドレジス タ、ステータスレジスタ、データレジスタ の3つのデバイスレジスタが存在する
アドレス空間(アドレスバスの幅) 17 アドレスバスの幅(信号線の本数)が広いほど、広いメモリ空間を 直接的に指定できる 信 号 線 1 2 3 32 例えば 32本で表せる番地数は 232= 22 230 =4G 32ビット幅では4Gまでのアドレス空間を単一の領域として管理できる このような理由で、Windows 32bit版はメモリを4GB(ギガバイト)までしか サポートしていません。 32bitで直接アクセスできるアドレス空間は4GBと もいいます。 (番地の単位をbyteとしています) データバス幅も同じで、一度に入出力できるデータのbit数です。 例えば32bitバスでは、一度に32bit入出力できます。
Bus機能(Control:Read/Write) 18 CPUは、アドレスを指定して、データの入出力を行う。 1 1. address CPU (番地) memory Ex) データは、メモリの1026番地です 2. 2 3 4 control CPU (制御) Read (データ) 3. メモリは制御指令による動作を行う Read 指令:アドレスにあるデータ をデータバスに送る memory 注)各装置にアドレスを割り当てることで、アドレスに該当する 装置は制御バスの指令信号によるRead/Write動作を行う CPU はRead/Write 指令を制御バス に送り出す Ex) その内容を読み出します。data_busに内容を あげてください memory data CPU CPU はデータの番地をアドレスバス に送り出す Ex) その内容は”1010……001“です 4. CPU はRead 指令の場合データバ スに送られたデータを取り込む Ex) CPUは”1010……001“をCPU内部のレジスタ に格納する (バスマスタリングなどの話しは機会があれば解説します)
まとめ:バスの役割 19 1. アドレスバス:データのアドレス(番地)を伝える ➢ データの入出力を行う場合、まずCPU から必要とするデータの格納場所のアド レスをアドレスバスに送る 2. データバス:CPU と他装置(メモリ、I/O)への「読み/書き」するデータ を送る 3. 制御バス:制御信号を送る。 ➢ 例えば、CPU からの入出力(Read/Write)指令、またI/O等から割込み信号が伝 えられる 動作の説明 1. CPU はデータのアドレスをアドレスバスに送り出す 2. CPU はデータのRead/Write 指令を制御バスに送り出す 3. アドレスに該当する装置は制御バスの指令信号による動作を行う (a)Read 指令:アドレスにあるデータをデータバスに送る (b)Write 指令:データバスにあるデータをアドレスにしまう 4. CPU はデータRead 指令の場合データバスに送られたデータを取り込む
次からはPCでの話しです Bus構造は大型計算機、スーパーコンピュータでは各種工夫が 施されています。このため説明範囲以外としました 20
Busの進化 21 ⚫ 全てのデータがBusを通るため、 転送速度がコンピュータ性能を左 右する ⚫ このため、より高速なBus Systemへと進化した ⚫ また、外部機器との高速なデータ 入出力ができるBusが開発された Internal Bus:主要構成要素をつなぐ ➢ 高速と低速の分離 North Brige External Bus:コンピュータの構成 要素および入出力装置をつなぐ South Brige ➢ USB SATA PCIe
Busのボトルネック問題 BUS 22 Von Neumann bottleneck (フォン・ノイマン・ボトルネック) CPUが命令を実行するには、必ず BUSを通してアクセスするため、ア クセス速度が遅ければ、コンピュー タ全体のボトルネックになる 対策 ⚫ BUSの幅を広げる ➢ BUSの配線数を、8→16→32 本 ・・と増やす。 (例:道路の車線を増やす) data data data ⚫ 高速用と低速用に分ける ➢ NorthBrige、 SouthBridgeな ど (例:高速道路と普通道路に分ける) 同じ道路を高速と低速の車両が通る イメージ ⚫ バスを命令とデータで分ける ➢ ハーバード型
Busのボトルネック問題 イメージ 道路渋滞 基本構成要素 CPU → 工場 Memory→倉庫 BUS → data 道路 製品の保存 製品の搬出 CPUの動作 サイクル 製品の製造 材料の搬入 CPU 23 材料の搬出 工場 Memory 輸送が遅れる data 道路 BUS 倉庫
PCバスの進化 基本的なバス IBM PC(1981) 24 高速I/Oと低速I/Oの分離 PC/AT互換機(1986) 立木博文:PC のバス・アーキテクチャ一の変遷と競争優位、MMRC-J-163, 2007 PCIバスの導入(1993頃)
①高速/低速の分離(Northbridge, Southbridge) 25 高速と低速の分離 (Front-Side Bus) (PCI Express) (Memory Bus) 1990年代以降のPC/AT互換機で は、高速なメモリバスなどを扱う Northbridgeと、比較的低速な外 部I/Oを扱うSouthbridgeに分れ た。 ⚫ Northbridge:メモリ、PCIExpress、AGP(Accelerated Graphics Port)など 高速用 (Internal Bus) 低速用 ⚫ Southbridge:PCI、 USB、 Wi-Fi、 SATA、 ISA、 M.2、 LANなど なぜNorthbridg? https://en.wikipedia.org/wiki/Northbridge_(computing) 地図の上は北。左図で上にある bridgeだからNorthbridgeとのこと。
① Northbridge、 Southbridge ビデオ 26 https://www.youtube.com/watch?v=eJn-qPHtfzI
①Northbridge https://www.youtube.com/watch?v=p8JLOpmbV54 27
①Southbridge 28 BIOS&UEFI https://www.youtube.com/watch?v=p8JLOpmbV54
② CPUパッケージ内に高速用を統合 29 CPUがNorthbridgeを含む ビデオ https://www.youtube.com/watch?v=vDk27BhJkaw&list=RDCMUCmJcrJ_30p6s_OTbyTFfbqQ&index=8
② PCH: Platform Controller Hub 30 ⚫ FSB(CPUとマザーボード間の接続)が最大のパフォーマンスボトルネックになっていた ⚫ その解決策として、ノースブリッジやサウスブリッジに属していた機能は再配置され た。ノースブリッジは完全に廃止され、メモリコントローラとPCI Expressレーンは CPUに統合された ⚫ PCHは残りのノースブリッジの機能(クロックなど)をサウスブリッジの機能と足し あわせたものである(Intel example) cpu PCI Express NorthBridge Memory (USB3) DMI Direct Media Interface SATA PCH LAN USB Platform Controller Hub Display (Southbridge) https://ja.wikipedia.org/wiki/プラットフォーム・コントローラー・ハブ https://www.youtube.com/watch?v=p8JLOpmbV54
② PCH: Platform Controller Hub 31 ビデオ ビデオ https://www.youtube.com/watch?v=b2pd3Y6aBag
③バスの種類:ノイマン型とハーバード型 バスを命令とデータで 共有するバス構成方式 https://edn.itmedia.co.jp/edn/articles/1703/21/news021.html バスを命令とデータで分け 独立させるバス構成方式 32
③バスの種類:ノイマン型とハーバード型 a)ノイマン型 ⚫ 命令とデータ用のバスを兼用する方式 ⚫ コストを抑えるのに有利 ⚫ しかし、バスが1つのため、命令とデータを同時に取り扱えずに、CPUの 演算性能に影響を及ぼす。これを「ノイマンボトルネック」と呼ぶ ⚫ ARM Cortex-Mプロセッサでは、Cortex-M0とCortex-M0+が該当 b)ハーバード型 ⚫ バスを命令とデータで分けて、独立させた方式 ⚫ CPUを有効に利用可能なため、ノイマン型よりもCPUの性能を高める ことができる ⚫ ただし、ハードウェアが大きくなり、コストが高くなる ⚫ ARM Cortex-Mプロセッサでは、Cortex-M3とCortex-M4とCortexM7が該当 https://edn.itmedia.co.jp/edn/articles/1703/21/news021_2.html 33
Computer Buses 34 まとめのビデオ https://www.youtube.com/watch?v=aBCaCrC3z0k
追加:PCIeについて 35 ⚫ Internal Bus:主要構成要素をつなぐ CPU Memory North Bridge ⚫ External Bus:コンピュータの構成要素および入出力装置をつなぐ IDE USB SATA ⚫ Internal/External Bus:コンピュータの構成要素をつなぐ高速Bus マザーボード上の PCI Express x1 スロット https://ja.wikipedia.org/wiki/PCI_Express PCIe • • • • Graphics card SSD Eathernet card WiFi card
パラレル方式とシリアル方式 36 どちらの方がデータを送るのが速い? 送 信 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 受 信 nbitまとめデータとして順次送る (n:8、16…) 送 信 受 信 1bitづつ連続したデータとして送る a) パラレル(parallel)方式 b) シリアル(serial)方式 現在は、シリアル用いた通信方式の方が高速でデータ転送ができる! 何故? RS-232C IEEE 1284 USB PCI SATA ISA SAS PATA PCIe IDE SCSI パラレルポート USB (type-C)
a) パラレル伝送方式 1 0 送 信 1 1 0 1 1 1 0 1 0 1 0 0 0 1 受 信 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 37 1 1 0 遅延の ばらつき注 時間間隔 ⚫ パラレル伝送は、データの伝達遅延のばらつきのため、時間間隔を 狭め過ぎると、配線間でのデータの順序が重なる →伝送レートに限界がある ⚫ パラレル伝送は、配線間の電磁干渉のためcross talkが発生する 注)信号線毎のL成分、C成分が異なることで、伝搬遅延時間に違いがでる
b) シリアル伝送方式 送 信 38 受 信 Bit rateを上げる 送 信 受 信 ⚫ シリアル伝送は、時間間隔を狭めても(bit rateを上げても) ビットの順序関係は変わらない → 高いbit rate可能 ⚫ シリアル伝送は、配線が少数ですむ
PCIe (Peripheral Component Interconnect Express) 39 PCIe:送信用と受信用のシリアルデータ伝送路を束ねたもの 送信 受信 TX RX 受信 送信 双方向のシリアル通信方式 レーン(lane) レーン(lane) パラレル 信号をシ リアルに 変換 data TX+ + Serializer 送信クロック シリアル 信号をパ ラレルに 変換 受信処理 データを送信 data + - Deserializer - 差動TX TX- 差動RX クロック成分 を重畳 受信クロック クロックを取出す (クロックカバリ機能) 受信処理 data データを送信 data RX+ Deserializer 受信クロック クロックを取出す (クロックカバリ機能) シリアル 信号をパ ラレルに 変換 + + - - 差動RX RX- 差動TX Serializer クロック成分 を重畳 パラレル 信号をシ リアルに 変換 送信クロック https://www.ryosan.co.jp/technology/event/seminar/event_680/
PCIe (Peripheral Component Interconnect Express) 40 レーンを複数束ねることで高速にデータの入出力が可能となる 送信 受信 受信 送信 レーン(lane) リンク 送信 受信 受信 送信 レーン(lane) 送信 受信 受信 送信 レーン(lane) 送信 受信 受信 送信 レーン(lane) x1, x2, x4, x8, x12, x16, x32, x64 などの種類がある x4 レーン
PCIe 転送速度 X1 41 X4 X8 X16 PCIe 1.0 (Gen1) 0.25GB/S 1.0GB/S 2.0GB/S 4.0GB/S PCIe 2.0 (Gen2) 0.5GB/S 2.0GB/S 4.0GB/S 8.0GB/S PCIe 3.0 (Gen3) 0.985GB/S 3.94GB/S 7.88GB/S 15.75GB/S PCIe 4.0 (Gen4) 1.97GB/S 7.88GB/S 15.75GB/S 31.51GB/S PCIe 5.0 (Gen5) 3.94GB/S 15.75GB/S 31.51GB/S 63.02GB/S PCIe 6.0 (Gen6) 7.56GB/S 30.25GB/S 60.50GB/S 121.0GB/S https://www.youtube.com/watch?v=L9qXjmJdQXY
おわり 次回は、CPUについて 解説します 42
43