コンテンツにスキップ

デコーダとは

デコーダとは、短い符号を受け取って、対応する出力線を1本だけ選ぶ回路です。 番号を数本の線で運び、使う場所で1本の線へ開くので、線の本数を抑えたまま多くの相手を指せます。メモリでもCPUでも、相手を選ぶ場所にこの回路があります。メモリでは、どこまで細かく分けて置くかが特性と面積の釣り合いを決めます。

2本の入力で、4本の出力から1本だけを立てる

Section titled “2本の入力で、4本の出力から1本だけを立てる”

デコーダは、入力を判定して該当する出力をON(High)にする組み合わせ回路です1。2入力4出力の例では、2本の入力信号の値によって、4本の出力信号のうち1本だけに1が出ます1。

2入力4出力のデコーダ
A1 = 1A0 = 0デコーダ出力0出力1出力2出力3入力出力012300011011
入力A1=1、A0=0では出力2だけが立ちます。右の表で塗ったマスが1になる出力で、入力の4通りのどれでも1になるのは1本だけです。

入り口の2本を2進数の桁として読み、出口の4本に10進数の0から3までを割り当てれば、この回路は2進数を10進数へ復号(デコード)しているとみなせます。デコーダは復号器のことで、符号化された信号や情報を元へ戻す機能を持ち、解読器とも呼ばれます2。反対に、データを決まった規則で符号にする働きがエンコードです。

デコーダが属する組み合わせ回路は、いま入っている信号の組み合わせで出力が決まる論理回路です。記憶回路と同期回路を内部に持ち、過去の状態も加わって出力が決まる回路は順序回路と呼びます。デコーダの出力はいま届いている符号だけで決まり、過去の入力とは切り離して、立てる線が選ばれます。

線は1本ずつ増え、指せる相手は倍々で増える

Section titled “線は1本ずつ増え、指せる相手は倍々で増える”

4つの相手を区別したいとき、素直なやり方は相手ごとに線を1本ずつ引くことで、線は4本必要になります。番号を2進数で書いて渡すなら、線は2本で足ります。2入力4出力の例は、この2本と4本の関係にあたります。

入力の本数と指せる相手の数
248161本2本3本4本指せる相手の数入力の線の本数入力の本数
入力の線は1本ずつしか増えませんが、指せる相手は2、4、8、16通りと倍々で増えます。番号を符号のまま運ぶと、線の数を大きく抑えられます。

入力が1本なら2通りで、1本増やすたびに区別できる相手は2倍になり、3本なら8通り、4本なら16通りです。線は1本ずつの足し算で増え、指せる相手は倍々の掛け算で増えます。この関係を1024本のワード線に当てはめると、選ぶのに要る入力は10本で済みます。そのため番号は符号のまま運んでおき、使う場所にデコーダを置いて開くほうが、線の数を抑えられます。

メモリでは行を1本選び、分けて置くほど面積が増える

Section titled “メモリでは行を1本選び、分けて置くほど面積が増える”

メモリでは、メモリセルを選ぶのに使う回路をデコーダと呼びます2。デコーダがもっとも大量に使われている場所がメモリで、揮発性の高速RAMの読み出しは、アドレス入力に伴ってデコーダを選択し、ワード線をHレベルにしてメモリセルを活性化することによって実行されます3。何番地かという番号が数本の線に載って届き、デコーダがそれを開いて、その行のワード線をHにします。Hになったワード線につながるメモリセルが活性化され、蓄えていたデータをビット線へ出します。

メモリの行選択と分割
アドレスデコーダセンスアンプワード線ビット線とメモリセル分割1つ分割4つ周辺回路1組周辺回路4組
デコーダは1本のワード線を立て、その行のメモリセルだけがビット線へデータを出します。同じ量のセルを4つに分けるとデコーダとセンスアンプが4組になり、その分だけ全体が大きくなります。

デコーダを置けば、その分の場所を使います。メモリセルをある単位で区切り、デコーダやセンスアンプをどう置くかを決める作業をアレー構成と呼び、チップやモジュールの面積と特性の関係から、いくつに分けるか、どう分けるかを選びます3。分割数が多いほうが特性は上がるものの、面積は大きくなるのが一般的です。デコーダは配線を節約する道具ですが、置きすぎれば面積を食う部品にもなります。

CPUでは命令を解読し、動かす回路を選ぶ

Section titled “CPUでは命令を解読し、動かす回路を選ぶ”

マイコンの命令デコード回路は4、メモリから取り出した命令を解読します。これはデコーダ回路の複雑なもので、符号の形で届いた命令を復号して元の命令へ復元し、解読の結果にしたがって演算回路が動きます。

CPUの構成要素は、データや命令をためるレジスタ、プログラムカウンタとスタックポインタという専用のレジスタ、命令デコーダ、演算を担うALU、そしてアキュムレータです2。制御装置と演算装置を組み立てている部品として、デコーダは加算器やレジスタと並び、命令解読器・復号器とも呼ばれます5。次に読む命令の番地はプログラムカウンタが持ち、取り出した命令をデコーダが開きます。

メモリのアドレスとCPUの命令は、見た目がまったく違います。それでも中身は同じ考え方で、短い符号で相手を指し、その符号を開く場所にデコーダが立っています。番地を開けば行が選ばれ、命令を開けば動かす回路が選ばれます。

デコーダとは何ですか?

届いた入力の値を見分けて、それに対応する出力だけをON(High)へ変える組み合わせ回路です。短い符号を受け取り、対応する出力線を1本だけ選びます。

なぜ「復号」と呼ぶのですか?

入り口の2本を2進数の桁として読み、出口の4本に10進数の0から3までを割り当てれば、この回路は2進数を10進数へ復号(デコード)しているとみなせるからです。符号化された信号や情報を元へ戻す働きで、逆にデータを決まった規則で符号にすることをエンコードと呼びます。

入力と出力の本数は、どんな関係になりますか?

2入力4出力の例では、2本の入力の値によって、4本の出力のうち1本だけに1が出ます。入力を1本増やすたびに区別できる相手は倍になり、3本なら8通り、4本なら16通りです。

組み合わせ回路とは何ですか?

いま入っている信号の組み合わせで出力が決まる論理回路です。記憶回路と同期回路を内部に持ち、過去の状態も加わって出力が決まる論理回路は順序回路と呼びます。デコーダは前者で、いま届いている符号だけで出力が決まります。

メモリの中では何をしていますか?

読み出しは、アドレス入力に伴ってデコーダを選択し、ワード線をHレベルにしてメモリセルを活性化することで実行されます。メモリでは、メモリセルを選ぶのに使う回路をデコーダと呼びます。

デコーダをたくさん配置すれば、速くなりますか?

速くはなりますが、代償があります。メモリセルを分割してデコーダやセンスアンプを配置するとき、分割数が多いほうが特性は上がるものの、面積は大きくなるのが一般的です。

CPUの命令デコーダも同じものですか?

同じ系統の回路です。マイコンの命令デコード回路はデコーダ回路の複雑なもので、符号の形で届いた命令を復号して、元の命令へ復元します。

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