キーボードと文字入力の仕組み

    icon-clock-o読了時間:約5分29秒

前回までの記事にて文字コード日本語入力ソフトIMEについてご説明してきました。
今回はその文字を打ち込むためのキーボードの機器的な仕組みについてご説明してみます。
とは言え、いち事務員に過ぎない私がふわっとした理解の上でご説明するのでかなり適当なのですが
こんな感じで動いてるんだな、というご参考になれば幸いです。


キーボードの仕組み
まずメモ帳を開き、『 ! 』 の文字を打つと仮定します。

人間がキーボードのビックリマークが書かれたキーを押すと
キートップの金具と、その下にある回路が接触します。
キーボード押下

電流
てぇへんだ、てぇへんだ! キーが押されましたぜ親分!!

接触部分から八五郎ならぬ電流が回路を走り、電気信号となります。
コンピュータ内において電気信号は0と1の情報しか伝えられないため、
『 押されたのはこのキー 』 という情報は 『 00100001 』 というデータになっています。

電気信号は基板のキーボードコントローラーを通り、
キーバッファ(キー入力のデータを一時的に保存する領域)で一時停止し、
問題が無ければデータを処理しているCPUさんに順次渡ります。
CPU
CPUさんが他の処理に忙殺されている場合や、お年を召して動きが遅くなっている場合などは
キーバッファで電気信号が止まったまま待機状態になるため
画面の前の人間はフリーズしたのかな?と首を傾げることになります。
入力待機
こうした遅延が無ければきちんとCPUさんにデータが届きます。
CPUさんは人間で言うところの脳にあたり、PCの計算処理を担っているのでとても忙しく働いていますが、
常に各部品から来る電気信号に気を配っているのでデータが届きしだい素早く対応してくれます。

CPU
割り込みすんなっつってんだろ順番だ順番!て、キーボードさんからの電気信号か・・・どうでもいい処理は後回しにして先に処理するか。メモ帳宛に00100001が入力されたってことはコンパイルしないと

CPUさんの要請を受けたOS(WindowsやMac OSやUNIX OS)プログラムが動き、コンパイラが動作します。
OSプログラム
00100001って画面に出力しても意味分かんないだろうからコンパイラさん呼んで機械語から翻訳(コンパイル)してあげないとね。2進数のバイナリコード00100001は16進数だと21で、Shift-JIS文字コードで半角の『!』になる、ということで後はグラフィックチップさんに任せた。ちなみに文字フォントはC:\Windows\Fontsの中にあるMSゴシックになってるよ~

ドット描画 文字フォントのデータに従って文字の形を決め、
 グラフィックチップが『 ! 』の形になるように画面に描画指令を出します。

グラフィックチップ
MSゴシックってことは形をこう・・・四角っぽくして・・・左から右にポチポチポチ、その下の段の左から右にポチポチポチ(以下繰り返し)。モニタさん、設計図どおりによろしく!

 グラフィックチップからの指示を受けた液晶モニタが画面に表示します。

液晶モニタ
お、グラフィックチップさんから座標データが来た。指示のとおり画面のココとココとココを光らせて、と・・・よし。出来た!

こうしてようやく画面上に入力した文字が反映されます。
メモ帳

こうして見ていただくと、文字ひとつ打つにも結構な手順が踏まれており、
パソコンの部品とプログラムはとんでもない速度で処理を行っていることがお分かりいただけるかと思います。

マウスのクリックなども似たような流れで動作しているため、
「 あれ、クリックしたのに動かないなあ。えい。えい 」
と、繰り返しクリックしてしまうと、順番待ちになっている処理に更に負荷を掛けてしまうので
益々動作が遅くなり、最悪の場合は許容量を超えて完全にフリーズしてしまいます。
特に、暑さ寒さで只でさえ負荷が掛かっているところに連続で処理を重ねると
それがトドメになって部品が傷んでしまうことも。
入力がすぐに反映されなくても、処理が進むのをゆっくり待ってみてくださいね。
どうにも先に進まない、という時はパソコンが重い(動作が遅い)原因と改善方法をご参考ください。

 良かったら押してみてください♥

  • このエントリーをはてなブックマークに追加
  • Pocket