リセット

リセット (reset)とは、機器の状態を初期状態に戻すこと。コンピュータゲームなど、ソフトウェアを初期状態にすることにも使われる。

 電子回路におけるリセット 
電子回路を一般化して考えると、いくつかの入力信号線に応じた出力信号を生成する装置ということができる。以前の入力状態との比較で出力状態を決定する場合には、回路の内部状態を保持する部分がなければならない。デジタル回路においては状態を保持する回路はレジスタと呼ばれる。模式的に考えると、デジタル電子回路とは「外部入力信号と内部状態レジスタの出力を組み合わせ回路に与えて次の内部状態を作り出す（レジスタを変化させる）もの」であると考えることができる。

リセットという動作は、この内部状態レジスタを強制的に初期状態に戻すことである。レジスタを構成する単位要素はフリップフロップと呼ばれ、1個のフリップフロップは1bitの情報（0か1か）を保持することができるが、リセットはこれを強制的に（以前の状態に関係なく）0または1の決まった状態にしてしまう操作にあたる。

電子回路が複雑化し、要素部品の数が莫大なものになった場合、全内部状態を同時に確実にリセットできるようにすることは、回路設計上重要な点となってくる。特に電源投入直後に回路を安定して動作させるためにはいくつかの工夫が必要となる。人間の目には一瞬に電気が回路内に行き渡っているように見えても、実際には電源電圧が規定値に達するまでには時間がかかっている。この間、電源や信号を伝える配線の長さのごくわずかの差や、部品の個体差などにより、部品によってリセット動作が起こるタイミングが一致しないということが起こる。ある部品がすばやくリセット動作を終え、次の状態に遷移するために入力信号を取り込み始めたのに、その入力信号を生成している他の部品のリセット動作が完了していないと、全体としてはいい加減な入力信号を処理してでたらめな出力をする回路になってしまうのである。

CPUなどの高度な電子回路の場合、水晶振動子などによって生成した一定周期の信号（クロック信号）の変化に合わせて回路全体の内部状態を一斉に変更してゆく同期回路として設計されるが、この場合、リセット信号もこのクロックの信号変化のタイミングを考慮して制御されなければならない。部品のデータシートには、「クロック信号が安定してから○○クロック経過するまでの間はリセット信号をONにしておくこと」などのように、リセットの仕方について指示が記載されている。

これらに対応するために、リセット信号は他の信号線よりも（電源線よりも）一番早くONになり、電源など他の部分の信号が安定し、全部品が確実にリセット動作を終えるまで待ってからOFFになるように設計される。一般には、抵抗とコンデンサを用いてこれを実現するが、回路がより複雑になってくると高度なリセット制御回路を組み込んだ、リセット専用ICを用いることもある。

回路の動作が高速になってくると、動作に時間がかかる一部の部品のリセット完了を待ってから他の高速な部品の動作を開始させるのが非効率になることがある。この場合、動作の遅い部品の出力に影響を受ける部分と受けない部分をきちんと切り分けて回路設計することにより、短時間でリセットをする部分と長時間をかけてリセットする部分に分離して2種類のリセット信号を使い分けるということが行なわれる。

動作を完全に初期状態に戻すのではなく、内部状態を指定した値にしてから処理を開始させることを、「プリセット (preset)」と呼ぶ。フリップフロップにおいては、状態を0にすることをリセット、1にすることをプリセットと呼ぶこともある。

 コンピュータゲームにおけるリセット 
ゲーム機にCPUと直結されたリセットボタンがある機種は、押される事でCPUのレジスタがゼロに書き換えられ、プログラムカウンタもゼロ番地にリセットされる。結果、プログラム（ゲーム）は最初から強制再起動される。

CPUと直結していないボタンを長押したり、複数のボタンを組み合わせるリセット機能を持つ物は、単純なワイヤーロジックでCPUのリセットを行う。このため、OSやアプリケーションがフリーズしていてもリセット動作を行うことが可能である。

ゲーム機にのCPUに直結されていないリセットボタンや機能がある物は、基本ソフト上で動作するゲーム（アプリケーション）が強制停止される。セーブ機能のあるコンピュータゲームでは、リセットスイッチを操作すると、最後にセーブした時点の進行状態まで戻され、それ以後のプレイはなかったことになる。

日本でゲーム機にリセットボタンが一般化したのは1976年登場のAY-3-8500からとみられ、得点をリセットするための機能だった。1979年に任天堂の『ブロック崩し』やエポック社の『テレビブロック』ではモードの切り替えでリセットボタンを押す必要があり、スタートボタンの役割もあった。1983年登場のファミリーコンピュータでは誤作動を解消するための機能で使用すると記録された得点も消えてしまうことが本体、説明書に明記されていたが1984年9月の『ギャラクシアン』ではリセットボタンが押されてもハイスコアは残り、同年11月の『F1レース』、1985年2月の『バンゲリングベイ』のように同じシステムの作品が増えていった。ハイスコアのみならず、進行途中をまるごとセーブできるようなゲームも増えたことでリセットは内容の状況や変化を取り消すために使われるようになり、1986年3月の『ハイドライド・スペシャル』ではそのためのメモリーセーブ・ロード機能が搭載された。1980年代中頃から増えたフロッピーディスクゲームには任意ではなく自動的にセーブする機能も見受けられ、リセットを封じるための意図もあったと思われる。それはリセットがシステムやルールを越えた方法の中で誰もが使える一番身近なものだったゆえの開発者とプレイヤー間のせめぎ合いだった。そして1988年の『軍人将棋』の「BAGU」、1989年の『スクウェアのトム・ソーヤ』の「ふこうむし」、『どうぶつの森』の「リセットさん」のようにメタフィクションネタとして使われるようになった。リセットによる多くの裏技も考案され、1980年代からその行為が後でいうチートか攻略なのか議論のタネになった。

CPUのリセットではなくソフトリセットはアメリカのアタリのゲーム機ではあったが、日本では1987年のPCエンジンがコントローラ操作で実行することでファミコンゲームでは一部存在した機能を基本設定として据えて利便性を大きく向上させた。PCエンジンでは誤操作抑止のためにランボタンとセレクトボタンによって使用できたが、1989年のゲームボーイでは携帯型ゲーム機であるため操作装置と本体が一体化したことでスタート、セレクト、A、Bを押すようなコマンドを増やしてゲーム操作に使うボタンだけでリセットするようになっていた。2000年代以降はハード性能向上で機能が増えたことによりCPUにリセットがかかるとトラブルの原因となるためCPUリセットは急速に廃れていった。

 派生語 
転じて、今まで起こったことをなかったことにしたり、やり直したりすることの比喩表現として「リセット」という言葉が用いられることがある。

 脚注 

 関連項目 

 ブート
 ウォッチドッグタイマー
 リセットマラソン

Category:デジタル回路
Category:プログラミング
Category:システム