3

さまざまな種類のリセットとチップ内の定義を知りたいです。できればコールド、ウォーム、システム、アプリケーション、パワーオン リセット。

また、それぞれの簡単な例も高く評価されています。

ありがとう。

4

1 に答える 1

6

何を理解しようとしているのか正確にはわかりません。リセットは、さまざまな方法や場所で使用できます。また、一般に、いつ、どこで使用できるかについての規則はありません。

電気が回路を流れる速度と比較して、電源が「オン」になってから、電圧と電流が使用可能で安定した状態に落ち着いてロジックが開始できるようになるまでにはかなりの時間がかかります。電源が投入されると、ロジック自体を駆動するクロックまたは発振器は、安定するまでに時間がかかります。ある種のクロック乗算器を使用するチップ。たとえば、マルチギガヘルツのプロセッサは、多くの場合、たとえば 100Mhz の発振器で実行され、チップ内の発振器から乗算されます。その回路は、発振器クロックにロックしてからその逓倍クロックを生成するのに時間がかかります。そのため、グローバル リセットが頻繁に発生します。チップを起動して実行するのに必要のないロジックは、十分に安定して実行できるようになるまでリセットを保持する必要があります。これは、パワーオン リセットと呼ばれます。電源投入後、しばらくの間チップの残りの部分をリセット状態に保つために、いくつかの回路が使用されます。これを行うには非常に多くの方法があります。

一般に、パワーオン リセットはボード上のすべてのロジックに使用されます。各チップには独自のパワー オン リセット回路があり、もちろんこれら 2 つの両極端が混在しているシステムもあります。ボード上のロジックの大部分に関連付けられているリセットは、システム リセットと呼ばれることがあります。システムの一部だけでなく、システム全体がリセットおよび/または解放されます。

ソフトウェアがグローバル リセットをストローブできるようにするチップが時々見られますが、これも非常に多くの異なる方法で行われます。明らかなニワトリが先か卵が先かという問題は避けなければなりません。ソフトウェアがリセットをアサートしてリセット ラインのオン/オフ制御を行うと、プロセッサがリセットされ、ソフトウェア自体がリセット状態になり、リセットが解放されなくなります。したがって、問題のリセットによってリセットされないハードウェアには、リセットを一定期間保持してから解放するコマンドが与えられます。または、システムの動作方法によっては、最初の書き込みが到着する前にソフトウェアが 2 つの書き込みを送信することがあります。1 つはリセットをアサートし、もう 1 つはそれを解放します (これは、不適切なハードウェア設計のソフトウェア ハックになります)。電力がすでに安定している、発振器が安定しているなどの理由から、これをウォーム リセットと呼ぶことができます。

システム設計は、システム全体のリセットを実行する機能、またはシステムの一部のみ、またはソフトウェアが実行されているプロセッサまたはそのチップのみを実行する機能をソフトウェアに提供する場合があります。たとえば、システムが稼働していて、ソフトウェアが周辺機器をプログラムして何かを実行したり、少なくとも電源オンのリセット状態から変更したりした場合、プロセッサのみがリセットされ、周辺機器はリセットされていないと想像できます。これはソフトウェアにとって望ましい場合と望ましくない場合があります。ソフトウェアはリセットから復帰する必要があり、ペリフェラルもリセットされたばかりなのか、不明な状態にあるのかを判断する必要がある場合があります。ソフトウェアの設計では、ソフトウェアの起動時にペリフェラルが既知のリセット後の状態にあると想定できない場合があります。

これは、さまざまな極端に運ばれる可能性があり、実際に実行されます。クロッキング ロジックは電力を消費します。使用していない周辺機器が SOC にある場合、そのシステムで使用されない電力クロッキング ロジックが著しく無駄になる可能性があります。そのため、一部のシステムは、システムの一部またはすべての個々の周辺機器にリセットとクロック イネーブルを備えて設計されており、ソフトウェアが電力消費を正確に制御し、チップの一部を既知の状態に簡単にリセットして使用または再利用できるようにします。これらの周辺機器をより簡単に使用できます。通常、(組み込み) システムを既知の方法で起動するために使用されます。

コールドはウォームの反対であり、コールド リセットは「パワー サイクリング」の別の言い方になります。電源を切って(回路/システムが冷たくなることを意味します)、電源を入れて、すべてが冷たさから回復し、再び安定するようにします。ウォーム リセットがシステム全体に影響を与えるのではなく、その一部のみがウォームおよびコールドという用語を使用するシステムです。ウォーム リセットはいくつかのクラッシュを解決し、コールド リセットは理論的にはシステム全体をリセットするため、より多くの問題を解決します。しかし、当然のことながら、たとえば、独自の電源を備えたスキャナーやプリンター、またはその他の周辺機器があり、メインコンピューターのコールドリセットから必ずしもリセットされない場合は、すべての電源を切ってから戻す必要があります.

実際には魔法はありません。設計者がリセットが必要だと感じるロジックのブロックにはリセットがあり、そのリセットがどのようにローカルまたはグローバルであるかは設計の一部です。チップは、個々の関数呼び出しとライブラリ呼び出しで構成されるソフトウェア プロジェクトと何ら変わらないと考えることができます。最新のロジックを作成するために使用されるプログラミング言語は、ソフトウェア関数や関数呼び出し関数などを含むソフトウェア プロジェクトに非常によく似ています。主な違いは、ロジックが実際に並列で実行されることと、次に、ロジック関数が数十から数百になる可能性があることです。ソフトウェアのコード セグメントは直線的に実行され、関数の呼び出し回数は少ない傾向にあります。グローバル変数を使用するプロジェクトを考えると、望ましいか望ましくないかにかかわらず、これらのグローバル変数は、プログラムの開始時に特定の状態にあるとプログラミング言語によって想定されます。C では、main() が発生すると、すべてのグローバルの状態と、関数に入ったときのすべてのローカルの状態を示す言語規則があります。個々のグローバルが既知の状態 x=0 にリセットされるコード内の場所を想像できます。y=7; など。その後、以前の状態 x++ に基づいてその使用が決定されます。y-=z; 何かを既知の状態に戻したい場合、ロジックも例外ではありません。それを行うためのメカニズムを提供します。タスクを最初からやり直すことができるように、コードで多数の変数を既知の状態に戻したい場合、たとえば、グラフィックス プログラムが 1 つのファイルで終了し、プログラムを終了せずに、そのプログラムに割り当てられたすべてのメモリを解放したいとします。前の画像、開いている画像ファイルなどがない場合は意味をなさないメニューやボタンをグレー表示します。その主要なクリーンアップを発生させる他の関数を呼び出す関数がある場合があります。これは、ウォーム リセットと同じです。プログラムを終了してプログラムを再開することは、コールド リセットと同じです。main() に入ったときの変数の状態、または関数が呼び出されたときのローカル変数の状態は、それらの変数のパワーオン リセット状態です。

于 2012-11-28T03:33:13.123 に答える