【手続補正書】
【提出日】令和1年5月22日(2019.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
中央処理ユニット（ＣＰＵ）を備えるマイクロコントローラユニット（ＭＣＵ）で実施される方法であって、
前記ＣＰＵによる実行のための第一のプログラムを選択するステップを含み、
前記第一のプログラムは、前記ＭＣＵのメモリに同時に格納されている複数のプログラムの内の一つであり、
前記プログラムの各々は、位置依存命令を含む、方法。
【請求項２】
プログラムカウンタを所定の値に設定するステップと、
前記プログラムカウンタへの前記所定の値の設定に応じて、第一のアドレスを生成するステップと、を更に含む、請求項１に記載の方法。
【請求項３】
前記プログラムは、ロードアドレスで前記メモリに夫々格納され、前記プログラムは、アドレスオフセットに夫々マッピングされ、前記アドレスオフセットは、前記ロードアドレスに夫々対応する、請求項２に記載の方法。
【請求項４】
前記第一のプログラムを第一のアドレスオフセットにマッピングする動作を更に含む、請求項３に記載の方法。
【請求項５】
前記第一のアドレスのＸ（１以上の整数）個の最上位ビットを、所定の一組のＸビットと比較するステップと、
前記第一のアドレスの前記Ｘ個の最上位ビットと前記所定の一組のＸビットの不一致を判断するとき、前記第一のアドレスで前記メモリに格納されているＣＰＵが実行可能な命令にアクセスするステップを更に含む、請求項４に記載の方法。
【請求項６】
前記第一のアドレスの前記Ｘ（１以上の整数）個の最上位ビットと、前記所定の一組のＸビットとを比較するステップと、
前記第一のアドレスの前記Ｘ個の最上位ビットと前記所定の一組のＸビットの一致を判断するとき、前記第一のアドレスオフセットと前記第一のアドレスの関数として、修正された第一のアドレスを生成するステップと、
前記修正された第一のアドレスで前記メモリに格納されているＣＰＵが実行可能な命令にアクセスするステップと、を更に含む、請求項４に記載の方法。
【請求項７】
前記第一のアドレスオフセットと前記第一のアドレスの関数として、修正された第一のアドレスを生成するステップと、
前記修正された第一のアドレスで前記メモリに格納されているＣＰＵが実行可能な命令にアクセスするステップと、を更に含む、請求項４に記載の方法。
【請求項８】
前記プログラムカウンタを進めるステップであって、前記ＣＰＵが、前記プログラムカウンタを進めるステップに応じて、第二のアドレスを生成するステップと、
前記第一のアドレスオフセットと前記第二のアドレスの関数として、修正された第二のアドレスを生成するステップと、
前記修正された第二のアドレスで格納されているＣＰＵが実行可能な命令にアクセスするステップと、更に含む、請求項７に記載の方法。
【請求項９】
リセット信号をアサートするステップと、
前記リセット信号のアサートに応じて、第二の複数のプログラムを選択するステップと、
前記第二のプログラムを第二のアドレスオフセットにマッピングするステップと、
前記ＣＰＵが前記第一のアドレスを再び生成するステップと、
前記第二のアドレスオフセットと前記再び生成された第一のアドレスの関数として、別の修正された第一のアドレスを生成するステップと、
前記他の修正された第一のアドレスに格納されたＣＰＵが実行可能な命令にアクセスするステップと、を更に含む、請求項８に記載の方法。
【請求項１０】
前記ＭＣＵの外部のデバイスから新たなプログラムを受信するステップと、
前記新たなプログラムを、新たなロードアドレスで前記メモリに格納することであって、前記新たなプログラムは、前記メモリ内の前記複数のプログラムと同時に格納されるステップと、
前記新たなプログラムを新たなアドレスオフセットにマッピングするようデータ構造を更新するステップと、を更に含み、前記新たなアドレスオフセットは前記新たなロードアドレスに対応している、請求項４に記載の方法。
【請求項１１】
前記プログラムの内の一つは、前記プログラムの内の別の後に開発されるバージョンである、請求項１に記載の方法。
【請求項１２】
マイクロコントローラユニット（ＭＣＵ）を備える装置であって、
前記ＭＣＵは、
中央処理ユニット（ＣＰＵ）と、
前記ＣＰＵによって実行可能である複数のプログラムを格納するメモリと、
前記ＣＰＵによって生成されたアドレスを選択的に変換するアドレス変換ユニットと、
を備え、前記プログラムの各々が位置依存命令を含む、装置。
【請求項１３】
前記ＭＣＵが前記メモリに格納されているリセットプログラムを更に含み、前記リセットプログラムは、リセット信号のアサートに応じて前記ＣＰＵによって実行可能であり、前記ＣＰＵは、前記リセットプログラムの実行に応じて、前記ＣＰＵによる実行のために第一のプログラムを選択する、請求項１２に記載の装置。
【請求項１４】
前記アドレス変換ユニットは、加算器と、アドレスオフセットおよびイネーブルビットを格納するメモリと、を備え、
前記加算器は、前記イネーブルビットが第一の状態に設定されたとき、前記アドレスオフセットを前記ＣＰＵによって生成されたアドレスに選択的に加算し、
前記加算器は、前記イネーブルビットが第二の状態に設定されるときは常に前記アドレスオフセットを前記ＣＰＵによって生成されたアドレスに加算しない、請求項１３に記載の装置。
【請求項１５】
前記アドレス変換ユニットは、前記ＣＰＵによって生成されたアドレスのＸ個の最上位ビットを所定の一組のＸビットと比較する比較器を備え、
前記加算器は、前記イネーブルビットが前記第一の状態に設定され、かつ前記ＣＰＵによって生成されたアドレスの前記Ｘ個の最上位ビットが前記所定の一組のＸビットと等しいとき、前記アドレスオフセットを前記ＣＰＵによって生成されたアドレスに加算し、
前記加算器は、前記イネーブルビットが第二の状態に設定され、かつ前記ＣＰＵによって生成されたアドレスの前記Ｘ個の最上位ビットが前記所定の一組のＸビットと等しくないとき、前記アドレスオフセット、前記ＣＰＵによって生成されたアドレスに加算しない、請求項１４に記載の装置。
【請求項１６】
前記ＣＰＵが、前記プログラムに夫々対応する複数のアドレスオフセットの中から前記アドレスオフセットを選択する、請求項１５に記載の装置。
【請求項１７】
前記ＣＰＵが、前記メモリ内の前記プログラムの各ロードアドレスとリンクアドレスの関数として、前記アドレスオフセットを計算する、請求項１６に記載の装置。
【請求項１８】
マイクロコントローラユニット（ＭＣＵ）を備える装置であって、
前記ＭＣＵは、
中央処理ユニット（ＣＰＵ）と、
前記ＣＰＵによって実行可能である複数のプログラムを格納するメモリと、
前記ＣＰＵによって実行可能なリセットプログラムであって、前記ＣＰＵが、前記リセットプログラムの実行に応じて、実行のための前記プログラムの内の一つを選択する、リセットプログラムと、
を備え、前記プログラムは位置依存命令を含む、装置。
【請求項１９】
アドレス変換ユニットと、
プログラムカウンタと、を更に備え、
前記ＣＰＵが、前記リセットプログラムの実行に応じて、前記プログラムカウンタを所定の値に設定し、
前記ＣＰＵが、前記プログラムカウンタへの前記所定の値の設定に応じて、第一のアドレスを生成し、
前記アドレス変換ユニットが、前記第一のアドレスを第一の変換されたアドレスに変換し、
前記ＣＰＵが、前記第一の変換されたアドレスに格納された第一の命令を受け取り、
前記ＣＰＵが、前記第一の命令を実行し、
前記ＣＰＵが、前記第一の命令の実行に応じて、前記プログラムカウンタを進め、
前記ＣＰＵが、前記プログラムカウントを進めたことに応じて、第二のアドレスを生成し、
前記アドレス変換ユニットが、前記第二のアドレスを第二の変換されたアドレスに変換し、
前記ＣＰＵが、前記第二の変換されたアドレスに格納された第二の命令を受け取り、
前記ＣＰＵが、前記第二の命令を実行する、請求項１８に記載の装置。
【請求項２０】
前記アドレス変換ユニットが、アドレスオフセットを前記第一および第二のアドレスに加算して、前記第一の変換されたアドレスを夫々生成する、請求項１９に記載の装置。