Reset vector とは

リセットベクトルは、リセット後に実行される最初の命令を見つけるために中央処理装置が行うデフォルトの位置である。リセットベクトルはポインタまたはアドレスであり、CPUは命令を実行できるようになるとすぐに開始する必要があります。アドレスは、CPUを含むシステムをブートするプロセスの第1ステップとして、CPUの動作を開始する命令を含むように初期化された不揮発性メモリのセクション内にある。
 8086プロセッサーのリセット・ベクトルは、物理アドレスFFFF0h(1 MB未満の16バイト)です。リセット時のCSレジスタの値はFFFFhであり、リセット時のIPレジスタの値は0000hであり、物理アドレスFFFF0hにマップされるセグメント化アドレスFFFFh:0000hを形成する。 80286プロセッサのリセットベクタは、物理アドレス00FFFF0h(1 MB未満の16バイト)です。リセット時のCSレジスタの値はF000hであり、リセット時のIPレジスタの値はFFFhhであり、リアルモードで物理アドレス00FFFF0hにマップされるセグメント化アドレスF000h:FFF0hを形成します。これは、CSレジスタを変更せずに保護モードに切り替えるために十分なスペースを確保できるように変更されました。 80386以降のx86プロセッサのリセットベクタは、物理アドレスFFFFFFF0h(4 GB未満の16バイト)です。リセット時のCSレジスタのセレクタ部の値はF000h、CSレジスタのベース部の値はFFFF0000h、リセット時のIPレジスタの値はFFF0hであり、セグメント化アドレスFFFF0000h:FFF0hを形成する実モードでは物理アドレスFFFFFFF0hに設定されます。 PowerPC / Power Architectureプロセッサのリセットベクタは、32ビットプロセッサでは0x00000100、64ビットプロセッサでは0x0000000000000100の実効アドレスになります。 m68kアーキテクチャプロセッサのリセットベクタは、初期割り込みスタックレジスタ(IISR;リセットベクタではなく、リセット後にスタックポインタを初期化するために使用されます)と0x4です。 SPARCバージョン8プロセッサのリセットベクタは0x00のアドレスにあります。 SPARCバージョン9プロセッサのリセットベクタは、パワーオンリセットの場合は0x20、ウォッチドッグリセットの場合は0x40、外部起動リセットの場合は0x60、ソフトウェア起動リセットの場合は0x80になります。 MIPS32プロセッサのリセットベクタは、仮想アドレス0xBFC00000にあり、KSEG1キャッシュ不可メモリ領域の最後の4Mバイトに配置されています。コアは、リセット時および例外が認識されたときの両方でカーネルモードに入り、仮想アドレスを物理アドレスにマップすることができます。 ARMファミリのプロセッサのリセットベクタは、アドレス0x0または0xFFFF0000です。通常の実行中に、元のROMベースのベクタテーブルと比較して、パフォーマンスを向上させるためにRAMがこの場所に再マップされます。