バスに乗る — コンピュータの部品をつなぐ

ここまでの講では、コンピュータを構成する部品を1つずつ個別に見てきた。 論理ゲートから始まり、足し算をする回路、記憶を持つ フリップフロップ、それを並べたメモリ、命令を解釈するマイクロプロセッサ、文字を数に対応させる 文字コード——部品はもう一通りそろっている。 では、それらはどうやって「1台のコンピュータ」としてまとまるのか。 この講で視点を切り替える。部品同士をつなぐ「バス」という考え方、そして電源を切っても中身が 消えない記憶装置の正体に迫る。全5セクション・演習22問。回答はブラウザに保存されるので、 途中でやめても続きから再開できる。

進捗 0 / 22 問(正解 0 問)

1. バスという考え方 — 部品をつなぐ4種類の信号

ここまでの講では、論理ゲート・加算器・フリップフロップ・メモリ・マイクロプロセッサ・文字コードと、コンピュータの部品を1つずつ個別に見てきた。ではそれらは、どうやって「1台のコンピュータ」としてまとまるのか。プロセッサは最も重要な構成要素ではあるが、唯一の構成要素ではない——命令を保持するRAM、命令を送り込む入力装置、結果を見せる出力装置、そして電源を切っても中身が消えない記憶装置が必要になる。それらを載せた複数の回路基板をつなぐのが「バス」であり、アドレス信号・データ出力信号・データ入力信号・制御信号という4種類の信号と、電力の供給路からできている。

プロセッサは、確かにコンピュータの構成要素のうち最も重要なものである。だが、唯一の構成要素では ない。プロセッサに実行させる命令を保持しておくRAMが要る。その命令をRAMに 入れるための入力装置が要る。実行結果を見るための出力装置も要る。 そしてRAMは電源を切れば中身が消えてしまうので、電源を切ってもコードとデータを保っておける 記憶装置も欲しくなる。プロセッサは「考える」係であって、覚える・受け取る・見せる・ 保管するという仕事は、それぞれ別の部品が分担している。

これらの部品を載せた集積回路は、回路基板の上に置かれる。小さなマシンなら1枚の基板に全部収まる こともあるが、普通は役割ごとに複数の基板へ分けられる。分かれてしまった基板同士は、どうやって 話をするのか——その答えがバスである。バスとは、コンピュータのあらゆる基板に 共通に提供されるデジタル信号の集まりで、次の4種類からなる。

  • アドレス信号: マイクロプロセッサが生成する。主にRAMをアドレスするために使われるが、他の装置をアドレスするのにも使われる
  • データ出力信号: マイクロプロセッサが生成し、RAMやその他の装置へデータを書き込むために使われる
  • データ入力信号: コンピュータの他の部分が提供し、マイクロプロセッサが読み込む。RAMの出力から来ることが最も多い
  • 制御信号: 「今から何をするか」を伝える信号。たとえば「特定のメモリアドレスにデータを書き込む」ことを示す信号がこれにあたる

ここで、名前の付け方に注意しておきたい。「出力」「入力」はマイクロプロセッサを基準にした 呼び名である。マイクロプロセッサから出ていくデータ出力信号は、受け取るRAMの側から見れば データ入力信号になる。同じ1本の配線でも、誰を主語にするかで呼び名が入れ替わる——この視点の 取り方は、この先ずっと付いて回る。

バスが運ぶのは信号だけではない。バスは、コンピュータを構成する様々な基板に電力も供給 している。次の図で、部品とバスの関係を一枚にまとめておく。ここまでの講で1つずつ見てきた 部品が、1本の帯の周りに集まって「1台のコンピュータ」になる瞬間である。

バスが部品をつなぐ — 1台のコンピュータの全体像個々の部品は、共通の信号線(バス)でつながって初めて1台のコンピュータになるマイクロプロセッサアドレスと制御を出し、データを出し入れするバスすべての基板に共通に提供される信号の集まり + 電力の供給アドレス信号データ出力信号データ入力信号制御信号アドレスデータ出力データ入力制御RAM命令とデータを保持(揮発性)入力装置(キーボード)命令やデータを送り込む出力装置(ディスプレイ)結果を見せる記憶装置(ディスク)電源を切っても残す(不揮発性)↓=マイクロプロセッサから出る信号/↑=マイクロプロセッサへ入る信号(レーンは線種で区別している)「データ出力」「データ入力」はマイクロプロセッサを基準にした呼び名。RAM側から見れば呼び名は逆転する

では、この4本のレーンは実際にどんな順番で使われるのか。マイクロプロセッサがRAMから1つの値を 読み込むとき、アドレス信号・制御信号・データ入力信号は同時にではなく、決まった順序で働く。 次のシミュレータで、読み込みの一巡を1ステップずつ追ってみてほしい。

さわって確認バスの読み込み — アドレスを出してから中身が返るまで
ステップ 0 / 4 — 待機中
読み出すアドレス
マイクロプロセッサ
受け取った値
バス(4種類の信号)
アドレス信号 どこを読むか
データ出力信号 書き込み用(今回は出番なし)
データ入力信号 読み込んだ中身
制御信号 何をするか
RAM(4か所・中身は8ビット)
0001101001
0100010111
1011001010
1100111100

バスのどのレーンにも信号は出ていません。読み込むアドレスを選び、「次のステップ」を押すと読み込みの一巡が始まります。

「次のステップ」を押すたびに、読み込みの一巡が1段階ずつ進みます。 まずマイクロプロセッサがアドレス信号にアドレスを出しますが、 それだけではRAMは応答しません。続いて制御信号が「読み込む」ことを伝えて、 はじめてRAMが中身をデータ入力信号に出します。アドレス信号と制御信号は、RAMが応答するまで 出したままである点にも注目してください。ここで値が流れる線が 「データ入力」と呼ばれるのは、マイクロプロセッサを基準にした呼び名だからです。 同じ1本の線でも、RAMの側から見れば自分が出しているデータ出力になります。読み出すアドレスを 選び直すと、その場所の中身が届くまでを何度でも確かめられます。

演習 1理解

プロセッサ以外にコンピュータに必要な構成要素として、書籍が挙げている理由はどれか

演習 2理解

複数の回路基板を1台のコンピュータとして組み立てるとき、基板同士の通信に使われる「バス」とは何か

演習 3理解

バスの信号のうち「データ出力信号」と「データ入力信号」は、何を基準にして「出力」「入力」を区別しているか

演習 4理解

バスの「制御信号」の役割として正しいものはどれか

このセクション: 0 / 4 問正解

2. オープンアーキテクチャの力 — S-100からIBM PCへ

新しいバスを設計したとき、その仕様を公開するか秘密にするかは設計者の選択である。公開すればサードパーティメーカーが対応する拡張ボードを作れるようになり、周辺機器が増えればコンピュータ自体の魅力が増す——この好循環が「オープンアーキテクチャ」の原則を支えてきた。1975年のS-100バスから、完全な回路図を載せた公式マニュアルを出版した1981年の初代IBM PC、そしてISA・MCA・EISA・PCIへと続くバス規格の系譜を辿る。あわせて、他の装置がマイクロプロセッサを迂回してバスを直接使う「DMA」という仕組みも押さえておく。

初期のホームコンピュータで人気が高かったバスに、1975年のS-100バスがある。最初の ホームコンピュータであるMITS Altairに導入されたもので、100個のコネクタを持つソケットに基板を 挿すことから、この名で呼ばれた。マザーボード(メインボード)に並んだソケットは「拡張スロット」と 呼ばれ、そこに挿す基板は「拡張ボード」と呼ばれる。

さて、新しいバスを設計したとしよう。設計者には選択肢がある——その仕様を公開するか、 秘密にしておくか。公開すれば、他の製造業者(サードパーティメーカー)がそのバスで動く 拡張ボードを設計して売れるようになる。周辺機器が充実すればコンピュータはもっと便利になり、 人気も出る。売れれば拡張ボードの市場もさらに広がる。この好循環を狙う設計思想が オープンアーキテクチャであり、やがてバスが業界全体の「標準」と見なされることも ある。

最も有名なオープンアーキテクチャのパソコンが、1981年秋に発売された初代IBM PC である。IBMがこのPCのために出版した『Technical Reference』というマニュアルには、コンピュータ 全体の完全な回路図が載っていた。これは、他社が独自の拡張ボードを作り、さらには同じソフトウエアが 動く互換機を製造するための、欠かすことのできない手がかりになった。初代IBM PCの子孫たちは、 いまもデスクトップ市場の大部分を占めている。

対照的な例として書籍が挙げるのがApple Macintoshである。元々クローズドアーキテクチャで設計された Macintoshのデスクトップ市場シェアが小さいのは、最初の設計判断の結果かもしれない ——書籍はそう述べるが、断定はしていない。どちらの設計思想であっても他社はソフトウエアを書ける、 という但し書きも添えられている。歴史の因果を1つに決めつけない、控えめな書き方である。

その後のバスの系譜も押さえておく。初代IBM PCのバスは今ではISAバス(業界標準 アーキテクチャ)と呼ばれる。1984年のPersonal Computer ATでは信号が拡張され、1987年にIBMが 導入したMCAバスは特許使用料を徴収したこともあって標準にはならず、1988年に9社の コンソーシアムがEISAバスで対抗した。さらに後には、インテルが設計した PCIバスが一般的になる。

ISAバスの信号には、もう1つ注目すべきものがある。DMA(ダイレクトメモリアクセス) の要求信号である。通常はマイクロプロセッサがメモリの読み書きを仲介するが、DMAを使うと他の装置が マイクロプロセッサを迂回してバスを直接使い、メモリとの間で自分でデータをやり取りできる。この講の 後半で登場する記憶装置は、この仕組みによって素早く動く。

演習 5理解

バスの仕様を公開する「オープンアーキテクチャ」を採用すると、コンピュータの普及にどのような効果が期待できるか

演習 6理解

初代IBM PC(1981年)が業界標準になった大きな要因として、書籍が説明しているものはどれか

演習 7理解

書籍は、Apple Macintoshが元々クローズドアーキテクチャで設計されたことと、その後のデスクトップ市場シェアの関係をどう説明しているか

演習 8理解

「ダイレクトメモリアクセス(DMA)」の仕組みとして正しいものはどれか

このセクション: 0 / 4 問正解

3. メモリチップを組み立てる — アドレス・三状態・SRAM/DRAM

RAMアレイはアドレス入力・データ入力・データ出力・書き込み信号を持ち、アドレス入力がn本あれば2のn乗個の記憶場所を指定できる。1ビットしか保存しないチップを8個束ねて「バンク」にし、バンクを何個か並べてメモリボードにする。どのボード・どのバンクが応答すべきかは上位アドレスビットで決まり、その判定にはDIPスイッチと、排他的OR(XOR)ゲートとNORゲートを組み合わせた比較回路、そして第6講で作った2線-4線デコーダが使われる。そして複数バンクの出力を同じバスの線につないでよい理由——「三状態出力」という第3の状態が、このセクションの山場である。

RAMアレイは、アドレス入力・データ入力・データ出力・そしてデータを書き込むための信号を持っている。 ここで大事なのは、アドレス入力の本数が、そのRAMアレイに保存できる値の個数を決める という関係である。アドレス入力がn本なら、作れる組み合わせは2のn乗通り——第4講で確かめた「可能性の 数を数える」考え方が、そのままメモリの容量の話になる。

保存できる値の個数 = 2 の(アドレス入力の本数)乗

1個のチップが1ビットしか保存しないなら、8ビットの値を保存するにはチップを8個並べ、アドレス信号・ 読み書き信号・チップ選択信号をすべて共通につなげばよい。こうして8個をひとまとめにしたものが バンクで、バンクを何個か基板に載せたものがメモリボードになる。

ここで問題が出てくる。マイクロプロセッサのアドレス空間には複数のメモリボードが並ぶのだから、 「そのアドレスは自分の担当か」を各ボードが自分で判定しなければならない。判定に 使うのは上位のアドレスビットである。ボード側にはDIPスイッチという小さなスイッチの 並びが載っていて、そこに「自分が担当するアドレス範囲」を設定しておく。あとは、バスから来た上位 アドレスビットとスイッチの設定値を突き合わせる比較器があればよい。

その比較器に使われるのが、第6講で作った排他的OR(XOR)ゲートである。XORは、 2つの入力が同じなら0を出す。だから比較したいビットの数だけXORゲートを並べ、その出力がすべて0で あることをNORゲート1個で判定すれば、「上位アドレスが完全に一致した」ことを1本の 信号にまとめられる。そしてこの一致信号を、これも第6講で作った2線-4線デコーダと 組み合わせれば、4個のバンクそれぞれに対するCS(チップ選択)信号が作れる。 あのとき作った部品が、ここで組み立ての金具として効いてくる。

ところで、4個のバンクのデータ出力を、どうやって1組の信号にまとめるのだろう。ふつう、集積回路の 出力同士を接続してはいけない。一方が1を出し、もう一方が0を出したとき、何が起きるか分からないから である。ところがメモリチップのデータ出力は三状態と呼ばれ、0でも1でもない第3の 状態を取れる。その状態はなんと「何もない」——まるでピンに何も接続されていないかのようにふるまう。 CS信号が1(選択解除)のとき、チップの出力はこの状態になる。だからこそ、 選択された1個のチップだけが線を支配し、残りは黙っているという約束が成り立ち、 複数バンクの出力をそのままバスの共通線につなげる。三状態出力は、バスが成立するための土台である。

最後にRAMの2つの種類を区別しておく。SRAM(静的RAM)は1ビットあたり4個ほどの トランジスタを使い、電力がある限り内容を保つ。DRAM(動的RAM)は1ビットあたり トランジスタ1個で済むので集積度をずっと高くできるが、内容を保つために定期的に リフレッシュという読み直しのサイクルを回す必要がある——眠ってしまわないように 定期的につつくようなものである。手はかかるが容量が伸び続けたDRAMが、やがて標準の座を占めることに なった。

演習 9計算

あるメモリチップが8本のアドレス信号(A0〜A7)を持っている。「アドレス入力n本のRAMアレイは2のn乗個の値を保存できる」という関係から、このチップが保存できる値の個数はいくつか

演習 10理解

「CS(チップ選択)」信号が1(選択解除)のとき、メモリチップのデータ出力はどうなり、それが複数バンクをバスの共通線にまとめられる理由にどうつながるか

演習 11理解

上位アドレスビット(例えばA12〜A15)が、DIPスイッチで設定した値と一致するかどうかを比較する回路で使われている工夫はどれか

演習 12理解

SRAM(静的RAM)とDRAM(動的RAM)の違いとして正しいものはどれか

このセクション: 0 / 4 問正解

4. 画面とキーボード — 出力と入力の仕組み

ブラウン管の画面には、1本のビームが左上から右下へ走査線を描いていく。映像信号が黒から白へ、また黒へと変化できる速さの上限が「帯域幅」であり、これが1本の走査線に詰め込めるピクセル数を決める。表示できる色数とピクセルあたりのビット数の関係は、この本のほかのコードと同じく2の累乗で決まる。テキストだけを表示するアダプタは文字コードを保存するだけで済み、文字の形はROMの文字発生器が肩代わりするが、グラフィクスボードはピクセル1個ごとにRAMを使う。入力側のキーボードは、押されたキーをASCIIコードではなく「スキャンコード」として送る——その理由も、ここで確かめる。

画面に映る2次元の映像は複雑そうに見えるが、実際には1本の連続したビームが画面上を高速で 移動しているだけである。ビームは左上から出発して画面を横切り、右端に達すると急いで左端へ 戻って次の線を描く。この横1本を走査線と呼び、行の先頭へ戻る動きを水平帰線、 一番下から左上へ戻る動きを垂直帰線と呼ぶ。

映像信号は、部分的にデジタルで部分的にアナログである。画面は縦方向には決まった本数の走査線に 分割されているが、1本の走査線の中身は電圧の連続的な変化であり、明るさに対応している。ただし電圧は いくらでも速く変われるわけではない。信号が黒から白へ、また黒へと戻れる速さの上限が 「帯域幅」であり、これが1本の走査線に詰め込めるピクセル数——つまり水平方向の解像度——の 限界を決めている。

コンピュータから見ると、画面はピクセルの方眼だと考えると扱いやすい。ここで、 1ピクセルに何ビット割り当てるかが表示できる色数を決める。関係式は見慣れた形をしている——この本の 他の多くのコードと同じく、ここでも2の累乗が顔を出す。

色数 = 2 の(ピクセルあたりのビット数)乗

1ビットなら2色(白と黒)。1ピクセルに1バイト使えば256階調の灰色。赤・緑・青それぞれに1バイトずつ 割り当てれば、豊かな色が出せる。もっとも、その分だけ必要なRAMは増える。だから、表示をテキストだけに 限ってしまえばRAMをずっと節約できる。テキスト表示のアダプタは、各文字位置に「どの文字か」を 示す短いコードを保存するだけでよい。文字の形(ピクセルパターン)は、ボード上の 文字発生器と呼ばれるROMが肩代わりする。ROMは1つのコードを別のコードに変換する 回路と見なせて、ここでは文字コードと行番号を受け取り、その行のピクセルの並びを出力する。一方、 テキストに限定しないグラフィクスボードはピクセル1個ごとにRAMを使うので、同じ画面 サイズでも必要なメモリ量が桁違いに大きくなる。

入力側のキーボードに目を移そう。キーは単純なスイッチであり、押されると閉じる。 キーボードのハードウエアは、押されたキーごとに一意のコードを送り出す必要がある。ここで「そのコードは ASCIIコードだろう」と思いたくなるが、そうはなっていない。同じAキーでも、Shiftキーを一緒に押すか どうかでASCIIコードは変わる。そもそもASCII文字に対応しないキーも多い。だからハードウエアが送るのは スキャンコード——押されたキーそのものを識別するコード——であり、そこからASCIIへの 変換は短いプログラムの仕事になる。

キーの走査回路の材料も、これまでに作った部品ばかりである。カウンタが全キーのコードを非常に速く 巡回し、その出力がデコーダとセレクタの選択入力になる。押されているキーのコードにカウンタが到達した 瞬間だけ、セレクタの出力が1になる——それがそのキーのスキャンコードである。キーが押されたことは 割り込み信号としてマイクロプロセッサに伝えられ、短いプログラムがどのキーだったかを 判断する。なお、キーの個数とスキャンコードのビット数の関係もやはり2の累乗で、64個のキーなら 6ビット、65個から128個なら7ビットが必要になる。

演習 13理解

書籍によれば、初期のビデオディスプレイの水平方向の解像度(1本の走査線に収まるピクセル数)を制限していた要因は何か

演習 14計算

あるグラフィクスボードが1ピクセルあたり4ビットを割り当てているとき、「色数は2のピクセルあたりビット数乗」という関係(1ビットなら2色、8ビットなら256階調になるのと同じ考え方)から、表示できる色は何通りか

演習 15理解

キーボードのハードウエアが各キーの押下を「ASCIIコード」ではなく「スキャンコード」として送る理由はどれか

演習 16理解

「テキストのみ」のビデオディスプレイアダプタが、同じ解像度の「グラフィクスボード」よりも少ないRAMで済む理由はどれか

演習 17計算

あるキーボードが50個のキーを持つとき、各キーに一意のスキャンコードを割り当てるために最低限必要なビット数はどれか(2のn乗 ≥ キー数を満たす最小のn)

このセクション: 0 / 5 問正解

5. 長期記憶装置とメモリの違い — 机とファイルキャビネット

RAMは、リレー・真空管・トランジスタのどれで作られていても、電源を切れば中身を失う「揮発性」の部品である。だからコンピュータには、電源を切っても消えない長期的な記憶装置が要る。紙テープやパンチカードの時代から磁気テープ、そして回転するディスクへ——ディスクはヘッドが外側から内側へ移動できるので、どの位置にも素早く到達できる。最後に、メモリとストレージを分ける本質的な違いを2つ確かめる。1つは揮発性の違い、もう1つはマイクロプロセッサが常にメモリをアドレスしていてストレージを直接アドレスしないこと。この2つ目の違いを、机とファイルキャビネットという身近な言い方で捉え直して、この講を締めくくる。

ランダムアクセスメモリは、リレーで作ろうと真空管で作ろうとトランジスタで作ろうと、電源を切られれば 内容を失う。揮発性である。だから完全なコンピュータには、電源を切ってもコードと データを残せる長期的な記憶装置が要る。由緒ある方法は紙や厚紙に孔を開けることだった——パンチカードや 紙テープである。だが一度開けた孔は元に戻せず、媒体を再使用できない。しかも、1ビットが占める場所が あまりにも大きい。

そこで広く使われるようになったのが磁気記憶装置である。原理が述べられたのは1878年、 最初の実動装置は1898年、デンマークの発明家ヴァルデマール・ポウルセンによる「テレグラフォン」だった。 鋼鉄線を電磁石で磁化して記録するこの装置の電磁石は、私たちが電信ですでに出会ったものと同じ部品で ある。記録と読み取りに使う電磁石は、媒体の種類によらずヘッドと呼ばれる。1928年には 紙テープに鉄粉を塗布した磁気記録の特許が取得され、そこから磁気テープが生まれた。

しかしテープは理想の媒体ではない。テープ上の任意の位置に素早く移動できず、早送りや巻き戻しに時間が かかるからである。幾何学的にもっと高速なアクセスができる媒体がディスクだった。 ディスク自体が中心の周りを回転し、アームに付いたヘッドが外側から内側へ移動する——この2つの動きの 組み合わせで、ディスク上のどの部分にも非常に素早く到達できる。コンピュータ用の 最初のディスクドライブは1956年にIBMで発明された。

ディスクの表面はトラックと呼ばれる同心円に分けられ、各トラックはパイのスライスの ようにセクタに分けられている。1セクタが保存できるバイト数は一定で、通常は512バイト である。だからディスク片面の容量は、素直な掛け算で求まる。

容量 = 1セクタのバイト数 × 1トラックのセクタ数 × トラック数

ディスクとマイクロプロセッサの間にはインタフェースが必要で、その多くはDMAを使って バスを直接使い、マイクロプロセッサを迂回してメモリとディスクの間でデータを転送する。S2で出てきた 仕組みが、ここで実際に効いている。

さて、用語を整理しておこう。近年は混乱を避けるための呼び分けが定着している—— 「メモリ」は半導体RAMだけを指し、「ストレージ」はそれ以外(フロッピーディスク、ハード ディスク、テープなど)を指す。両者の最も分かりやすい違いは揮発性である。メモリは電源を 切れば消え、ストレージは意図的に消去・上書きされるまで残る。

だが、もう1つ大きな違いがある。マイクロプロセッサがアドレス信号を出すとき、その相手は いつでもメモリであって、ストレージではない。ストレージの中身を使いたければ、まず短い プログラムを実行してディスクドライブに指示を出し、データをメモリへ転送させる——という余分な ステップが要る。この一手間の有無が、揮発性と並ぶもう1つの本質的な違いである。

この違いは、身近な言い方に置き換えると腑に落ちる。メモリは机の上のようなもので、 そこにあるものは手を伸ばせばそのまま使える。ストレージはファイルキャビネットのようなもの で、中のものを使いたければ立ち上がって取りに行き、机まで持ち帰らなければならない。机が散らかって きたら、使っていないものをキャビネットに戻す。次の図で、この対応関係を一枚にまとめておく。

メモリとストレージ — 机の上とファイルキャビネット違いは揮発性だけではない。「直接作業できるか」「取りに行く必要があるか」が分かれ目になるマイクロプロセッサアドレス信号を出す相手はいつでもメモリだけ直接アドレス机の上(メモリ = 半導体RAM)実行中のプログラム作業中のデータ読み込んだファイルの中身電源を切ると空になる(揮発性)取りに行って持ち帰る(ディスク → メモリへの転送)使い終わったら戻す(メモリ → ディスクへの保存)ストレージを直接はアドレスできないファイルキャビネット(ストレージ = ディスク等)ファイルファイルファイル電源を切っても中身は残る(不揮発性)机の上のものは手を伸ばせば使えるが、キャビネットの中身は一度机まで運ばないと使えないこの「ひと手間」の有無こそが、揮発性の違いに並ぶメモリとストレージのもう1つの違いになる
演習 18理解

ランダムアクセスメモリ(RAM)に加えて、長期的な記憶装置がコンピュータに必要とされる理由はどれか

演習 19理解

磁気テープに比べて磁気ディスクの方が特定のデータに高速にアクセスできる理由はどれか

演習 20計算

あるディスクが1トラックあたり10セクタ、1セクタあたり512バイトを保存でき、片面に20トラックあるとき、この片面に保存できる合計バイト数はどれか

演習 21理解

書籍が挙げる「メモリ」と「ストレージ」の本質的な違いのうち、揮発性の違いに加えてもう1つの重要な違いは何か

演習 22理解

「メモリは机の上、ストレージはファイルキャビネットのようなもの」という、書籍が「よくある例え」として挙げる比喩が伝えようとしていることは何か

このセクション: 0 / 5 問正解