コンテンツにスキップ

マルチプレクサとは

マルチプレクサとは、複数の入力信号のうち1つを選び、1本の出力へ通す回路です。 中身はANDとORだけで組めます。線を1本にまとめれば配線は減りますが、通れるのは一度に1つずつです。チップの中でのマルチプレクサは、配線の本数と待ち時間を交換する部品です。

2本の選択信号の組み合わせが、4つの入力のどれを通すかを決める

Section titled “2本の選択信号の組み合わせが、4つの入力のどれを通すかを決める”

動作は、ボタンを選ぶことで1つの販売口からさまざまな飲み物が出てくる自動販売機1に似ています。飲み物の種類は複数あっても、受け取り口は1つです。

スイッチで組む場合は、縦に並んだ4つのスイッチを連動させた一組をスイッチA、もう一組をスイッチBとします。Aが0でBが0なら出力に入力0がつながり、Aが1でBが0なら入力1、Aが0でBが1なら入力2、Aが1でBが1なら入力3が出力されます。2本の選択信号が作る4通りの組み合わせが、それぞれ1つの入力に対応しています。選ばれなかった3つは手前で止まり、出力へ届くのは選ばれた1つの信号だけです。

AND回路を弁にして1本だけ開け、OR回路で合流させる

Section titled “AND回路を弁にして1本だけ開け、OR回路で合流させる”
4入力1出力のゲート構成
選択信号 A=0, B=1AND入力0入力1入力2入力3A=0, B=0A=1, B=0A=0, B=1A=1, B=1OR出力=入力2判定はデコーダと同じ
4つのAND回路は、それぞれ選択信号の1通りの組み合わせにだけ開きます。A=0、B=1では入力2の回路だけが開き、OR回路が4本を1本にまとめるので、出力は入力2の信号になります。

この切り替えは特別な部品なしで作れ、論理回路で描くとANDとORだけで組めます。AND部分で判定を行い、OR部分で信号を1つにまとめます1。

ANDで判定できる理由は、論理ゲートとも呼ばれる基本論理回路の性質にあります。AND回路は論理積とも呼ばれ、2つの入力がどちらも1のときだけ出力が1になります。そのため片方の入力をオンに固定すると、もう一方の入力がそのまま出力に出ます2。これがゲートを開いた状態で、オフに保てば出力はオフのまま閉じています。基本論理回路は、片側の入力の与え方しだいで、出力を一定に保つ閉じた側にも、もう片方の入力を通す開いた側にもなります。

AND回路は、片方の入力を弁として使える回路です。選択信号でその弁を1つだけ開ければ、開いた側のデータだけが先へ進みます。OR回路は論理和とも呼ばれ、いずれかの入力が1なら出力が1になります。閉じたAND回路の出力は0のままなので、全部の線をOR回路で合流させれば、通ってきた1本がそのまま出力になります。

論理回路の基本要素はAND、OR、NOTの3種類だけで、それらを組み合わせればさまざまな機能の回路が作れます。マルチプレクサは、その組み合わせのごく初歩的な実例です。

デコーダとは向きが逆で、AND部分の判定は共通する

Section titled “デコーダとは向きが逆で、AND部分の判定は共通する”

デコーダは、届いた入力の値を見分けて、対応する出力だけをON(High)へ変える組み合わせ回路です。入り口は少なく出口は多い形で、入り口が多く出口が1つのマルチプレクサとは、入り口と出口の数が逆になっています。デコーダは配り、マルチプレクサは集めます。

向きは正反対ですが、どちらも「何番を選ぶか」という符号を受け取り、AND回路で通す線を1本だけ選ぶところは共通しています。マルチプレクサのAND部分は、事実上デコーダと同じ仕事をしています。

組み合わせ回路には、比較器や加算器(全加算器・半加算器)、乗算器、減算器、バレルシフタなど数多くの種類があり、その多くはマルチプレクサやデコーダを応用して作れます。ただしそのまま組むと回路が冗長になるなどの問題が出るため、回路の簡素化や圧縮が必要になります1。

データパスでは、値の行き先を切り替える転送要素になる

Section titled “データパスでは、値の行き先を切り替える転送要素になる”

マルチプレクサは、単体の部品としてよりも、大きな回路の中の部材として大量に使われています。動作合成は、演算要素・記憶要素・転送要素という3種類の部材からデータパスを組み立て、あわせてそのデータパスを動かす制御回路も合成する作業です。演算要素はおもに演算器を、記憶要素はレジスタやメモリを、転送要素はマルチプレクサやバスなどを指します3。

レジスタ手前のマルチプレクサ
組合せ回路EN=1で取り込むEN=0でも書込みイネーブル EN10MUXレジスタ出力
マルチプレクサはイネーブル信号ENを受けて、レジスタへ渡す値を切り替えます。ENが1のときだけ組合せ回路の出力を保持しますが、0のときもレジスタへの書込みは行われ、そのぶん電力を消費します。

低消費電力設計でも、レジスタの手前にマルチプレクサを入れた回路構成が例に挙がります。イネーブル信号が1のときだけ組合せ回路の出力を保持しますが、0のときにもレジスタへの書込みが行われるため電力を消費します。この構成のマルチプレクサは、値を通す経路を切り替えるだけで、書込みそのものは止めていません。

共有の経路にまとめると、1つずつしか通れず混雑する

Section titled “共有の経路にまとめると、1つずつしか通れず混雑する”

バスは4、CPUやメモリ、周辺回路のあいだでデータをやり取りするために共用する信号の通り道で、マルチプレクサと同じ転送要素です。オンチップバスが提唱された当初は、セレクタを組み合わせるだけの単純な形で、交信を要求するマスター機能ユニットと、要求を受けて読み書きするスレーブ機能ユニットとを結んでいました5。この形はシングルレイヤーバスと呼ばれています。

シングルレイヤーバス
マスター1マスター2待ちセレクタ共有の1本セレクタスレーブ1スレーブ2スレーブ3
バスは複数の回路が共用する通り道です。セレクタで組んだバスでマスター1がスレーブ2と交信している間、同じ経路を使うマスター2は順番を待ちます。

共通の経路にまとめれば、配線は減ります。そのかわり、通れるのは一度に1つずつです。IPどうしのやり取りの途中にスイッチやバッファがある場合、一般的にスループットを高くすると経路のなかでデータが混雑し、レーテンシが長くなる傾向があります5。走行車が多い高速道路で渋滞が起き、到着が遅れるのと似ています。

何本の線を1本へまとめるかは、配線の本数と待ち時間の交換をどこで折り合わせるかという判断です。

マルチプレクサとは何ですか?

いくつも並んだ入力信号の中から、出力へ送る1つを選ぶ信号切り替え器です。入り口は多く、出口は1つだけです。

どうやって選んでいるのですか?

選択信号が通す入り口を指します。2本の選択信号AとBの0と1の組み合わせが4通りあり、A=0、B=0なら入力0、A=1、B=0なら入力1、A=0、B=1なら入力2、A=1、B=1なら入力3が出力につながります。

どんな部品でできているのですか?

ANDとORだけで作れます。AND回路は両方の入力が1のときだけ1を出すので、選択信号で1つだけ開けた入力が通り、OR回路が通ってきた信号を1本にまとめます。

セレクタと呼ぶこともありますか?

あります。オンチップバスが提唱された当初は、セレクタを組み合わせるだけの単純な形で、マスターとスレーブの機能ユニットを結んでいました。同じはたらきの回路をセレクタと呼んでいる例です。

デコーダとはどう違いますか?

向きが逆です。デコーダは入力の値を見分けて対応する出力をONへ変え、1本の符号を多くの線へ配ります。マルチプレクサは多くの線から1本へ集めます。

チップの中では、どこで使われていますか?

データパスの転送要素です。動作合成は演算要素・記憶要素・転送要素からデータパスを組み立て、制御回路もあわせて合成する作業で、転送要素がマルチプレクサやバスなどにあたります。

たくさんの信号を1本にまとめても大丈夫ですか?

通れるのは1つずつなので、混雑が起こります。IPどうしのやり取りにスイッチやバッファがある場合、一般的にスループットを高くするとデータが混雑してレーテンシが長くなる傾向があり、高速道路の渋滞に似ています。

  • デコーダとは── マルチプレクサは多くの線から1本へ集め、デコーダは1本の符号を多くの線へ配ります
5件を表示
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5