(57)【要約】【課題】  ブートプログラムを記憶するメモリにアクセスすることなく、接続されているメモリに対応するリードコマンドを選択し、ブートプログラムの読み出しを行うことができるようにする情報処理装置を提供することを目的とする。【解決手段】  プログラムを実行する制御手段と、前記制御手段が実行するブートプログラムを記憶する第１の記憶手段と、を有する情報処理装置であって、前記第１の記憶手段に記憶された前記ブートプログラムを読み出すときに使用するコマンドを識別するための識別情報を取得するプログラムを記憶する第２の記憶手段と、前記第２の記憶手段に記憶された前記プログラムに基づいて、前記第１の記憶手段から前記ブートプログラムを読み出すために用いられるコマンドを選択する選択手段と、前記選択手段により選択されるコマンドを前記第１の記憶手段に出力する出力手段と、を有することを特徴とする。【選択図】  図３
2020057063.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する制御手段と、
前記制御手段が実行するブートプログラムを記憶する第１の記憶手段と、を有する情報処理装置であって、
前記第１の記憶手段に記憶された前記ブートプログラムを読み出すときに使用するコマンドを識別するための識別情報を取得するプログラムを記憶する第２の記憶手段と、
前記第２の記憶手段に記憶された前記プログラムに基づいて、前記第１の記憶手段から前記ブートプログラムを読み出すために用いられるコマンドを選択する選択手段と、
前記選択手段により選択されるコマンドを前記第１の記憶手段に出力する出力手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記選択手段は、前記第１の記憶手段から前記ブートプログラムを読み出すための複数のコマンドを記憶し、記憶した前記複数のコマンドから前記第１の記憶手段の種類に応じたコマンドを選択することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の記憶手段から前記ブートプログラムを読み出すときに用いるコマンドを識別する識別情報を記憶する不揮発性の第３の記憶手段をさらに有し、
前記制御手段は、前記第２の記憶手段に記憶された前記プログラムを実行することで、前記第３の記憶手段に記憶された前記識別情報を取得し、
前記選択手段は、前記制御手段により取得された前記識別情報に基づいて、前記ブートプログラムの読み出しに使用するコマンドを選択することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第３の記憶手段は、一度のみ書き込みをすることのできる記憶手段であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記出力手段により出力された前記コマンドに応じて、前記第１の記憶手段から読み出された前記ブートプログラムを取得する取得手段をさらに有することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第１の記憶手段は、第１のデータ転送速度と前記第１のデータ転送速度よりも速い第２のデータ転送速度で前記制御手段へのデータ転送を行うことができる記憶手段であり、
前記選択手段は、前記第２のデータ転送速度で前記第１の記憶手段に記憶されたデータを読み出すコマンドを選択することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記第１のデータ転送は、複数の信号線のうち１本の信号線でデータを転送するデータ転送であり、前記第２のデータ転送は、前記複数の信号線でデータを転送するデータ転送であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置に電力が供給され前記制御手段が最初にアクセスするアドレスとして前記第２の記憶手段のアドレスが設定されていることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記出力手段は、前記制御手段による制御に基づいて、前記選択手段により選択されたコマンドを前記第１の記憶手段に出力することを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記出力手段と、前記第１の記憶手段はＳＰＩの規格に則ってデータ転送を行うことを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記制御手段と、前記第２の記憶手段は同じバスに接続されることを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記制御手段と、前記第２の記憶手段と、前記選択手段と、前記出力手段は一つのＳＯＣに実装されることを特徴とする請求項１乃至１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記出力手段は、前記選択手段により選択されたコマンドに基づくシーケンスで前記第１の記憶手段のうち、前記ブートプログラムを記憶している先を示すアドレスを出力することを特徴とする請求項１乃至１２のいずれか一項に記載の情報処理装置。
【請求項１４】
プログラムを実行する制御手段と、
前記制御手段が実行するブートプログラムを記憶する第１の記憶手段と、前記第１の記憶手段に記憶された前記ブートプログラムを読み出すときに使用するコマンドを識別するための識別情報を取得するプログラムを記憶する第２の記憶手段と、を有する情報処理装置の制御方法であって、
前記情報処理装置の起動後、前記第１の記憶手段にアクセスすることなく、前記第２の記憶手段に記憶された前記プログラムを取得する第１の取得工程と、
前記取得工程において取得された前記プログラムに基づいて、前記ブートプログラムの読み出しに用いられるコマンドを選択する選択工程と、
前記選択工程において選択されたコマンドを用いて、前記第１の記憶手段から前記ブートプログラムを取得する第２の取得工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１５】
請求項１４に記載の情報処理装置の制御方法をコンピュータが実行するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法とプログラムに関するものである。
【背景技術】
【０００２】
情報処理装置のコントローラ基板上のＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）は情報処理装置を起動させるためのブートプログラムを記憶するＲＯＭ等のメモリと接続される。情報処理装置の電源がオンされた後、ＳＯＣ内のＣＰＵはメモリに格納されたブートプログラムを読み出して実行する。ブートプログラムを記憶することのできるメモリは複数種類あり、データの転送速度や、容量に応じて使用するメモリが選択される。
【０００３】
ＣＰＵがメモリからブートプログラムを読みだす際に使用するリードコマンドは、データ転送速度等に応じて複数あり、メモリの種類に関わらず共通で使うことのできるコマンドと、一部のメモリでしか使うことのできないコマンドがある。たとえば、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）の規格でデータ転送を行うメモリには１本のＩＯ信号でデータ転送を行うＳｉｎｇｌｅ  ＳＰＩ対応メモリと４本のＩＯ信号線でデータ転送を行うＱｕａｄ  ＳＰＩ対応メモリがある。１本の信号線でデータ転送を行うためのリードコマンドは上記のいずれのメモリでも使用することができる。一方で、４本の信号線でデータ転送を行うためのリードコマンドはＱｕａｄ  ＳＰＩ対応メモリで使用することができるが、Ｓｉｎｇｌｅ  ＳＰＩ対応のメモリで使用することはできない。このように、メモリの種類によって使用することのできるリードコマンドが異なる。
【０００４】
特許文献１に記載の装置は、いずれのメモリであっても対応することのできるリードコマンドを使って残りのブートプログラムの読み出しに使用するリードコマンドを決定するためのプログラムをメモリから読み出す。そして、装置は、読み出したプログラムを実行することで選択されたリードコマンドを使って残りのブートプログラムを読み出し、ブート処理を実行する。このようにすることで、ブートプログラムの記憶に使用されているメモリがいずれのメモリであっても、当該メモリに対応したリードコマンドを使ってブートプログラムの読み出しを行うことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開番号ＷＯ２０１７／０２２３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の装置は、接続されたメモリがいずれの種類のメモリであってもよいように、メモリ種に関わらず使用できるコマンドでプログラムの読み出しを開始する。一般的に、メモリ種に関わらず使用できるコマンドはデータの転送速度が遅い場合が多い。そのため、いずれの種類のメモリでも対応できるリードコマンドを使ってメモリにアクセスすると、残りのブートプログラムを読み出す際に使用するコマンドを決定するためのプログラムの読み出しに必要な時間が長くなってしまう場合がある。
【０００７】
本発明は、ブートプログラムを記憶するメモリにアクセスすることなく、接続されているメモリに対応するリードコマンドを選択し、ブートプログラムの読み出しを行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に記載の情報処理装置は、プログラムを実行する制御手段と、前記制御手段が実行するブートプログラムを記憶する第１の記憶手段と、を有する情報処理装置であって、前記第１の記憶手段に記憶された前記ブートプログラムを読み出すときに使用するコマンドを識別するための識別情報を取得するプログラムを記憶する第２の記憶手段と、前記第２の記憶手段に記憶された前記プログラムに基づいて、前記第１の記憶手段から前記ブートプログラムを読み出すために用いられるコマンドを選択する選択手段と、前記選択手段により選択されるコマンドを前記第１の記憶手段に出力する出力手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明に記載の情報処理装置は、ブートプログラムを記憶するメモリにアクセスすることなく、接続されているメモリに対応するリードコマンドを選択し、ブートプログラムの読み出しを行うことができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１、２に記載の情報処理装置の構成を示す図である。
【図２】実施例１、２，３において、メモリコントローラがＲＯＭにアクセスする際のリードコマンドのアクセスパターンとタイミングチャートの一例を示す図である。
【図３】実施例１における情報処理装置の起動シーケンスを示す図である。
【図４】実施例２における情報処理装置の起動シーケンスを示す図である。
【図５】実施例３における情報処理装置の構成を示す図である。
【発明を実施するための形態】
【００１１】
＜実施例１＞
図１（ａ）は、実施例１の情報処理装置１０のハードウェア構成を説明する構成図である。本実施例において、情報処理装置は、たとえばＰＣやプリント部やスキャナ部を有する複合機等である。
【００１２】
情報処理装置１０は、ＣＰＵ１０１を含む制御モジュール、図示しない画像処理モジュール、および外部制御インタフェースを有するＳＯＣ２０と、ブートプログラムを記憶するＲＯＭ３０で構成される。ＳＯＣ２０内のバス１１０には、ＳＯＣ２０とＲＯＭ３０のデータ転送を制御するメモリコントローラ１０２が繋がれている。
【００１３】
ＲＯＭ３０としては、複数種類のＳＰＩ＿ＲＯＭのいずれか一つが接続される。本実施例の説明においては、ＲＯＭ１，ＲＯＭ２、ＲＯＭ３の３種類のＲＯＭのうちいずれか一つがＲＯＭ３０として用いられる。ＲＯＭ３０には、情報処理装置１０のブートプログラムや情報処理装置１０を制御するためのプログラムが格納されている。
【００１４】
ＣＰＵ１０１は、情報処理装置１０全体の制御を行うプロセッサである。
【００１５】
メモリコントローラ１０２はＲＯＭアクセス生成部２０１と動作モード設定部２０２で構成され、ＣＰＵ１０１からＲＯＭ３０へのアクセスのバスプロトコル変換を行う。
【００１６】
動作モード設定部２０２は、ＲＯＭアクセス生成部２０１に後述するＲＯＭアクセス仕様を設定するためのモジュールである。「ＲＯＭアクセス仕様」とは、ＲＯＭアクセス生成部２０１がＲＯＭ３０にアクセスする際に、どのような信号を送受信するかの仕様を示す情報である。ＲＯＭアクセス仕様は、たとえば、何サイクルでどのようなコマンドを出力するのか、何サイクルでアドレスを設定し、何サイクルで何バイトのデータを受信するのかを示す情報である。
【００１７】
動作モード設定部２０２は、初期読み出しモード設定部２０３により設定されるＲＯＭアクセス仕様、ＣＰＵ１０１によって動作モード設定部２０２のレジスタに設定されたＲＯＭアクセス仕様のいずれかをＲＯＭアクセス生成部２０１に設定する。動作モード設定部２０２は上記のいずれをＲＯＭアクセス生成部２０１に設定するかを選択するためのレジスタを有している。ＣＰＵ１０１による制御に応じて当該レジスタが設定され、二つのＲＯＭアクセス仕様のうちいずれかのＲＯＭアクセス仕様がＲＯＭアクセス生成部２０１に設定される。
【００１８】
本実施例においては、情報処理装置１０の電源がＯＮされリセット解除された時、動作モード設定部２０２は、初期読み出しモード設定部２０３のＲＯＭアクセス仕様をＲＯＭアクセス生成部２０１に設定するように設定されている。情報処理装置１０がブートプログラムを読み出した後は、初期読み出しモード設定部２０３が設定するＲＯＭアクセス仕様と、ＣＰＵ１０１により設定されるＲＯＭアクセス仕様のいずれをＲＯＭアクセス生成部２０１に設定するかを切り替えることができる。ＣＰＵ１０１により設定されたＲＯＭアクセス仕様を使用する場合、ＣＰＵ１０１はＳＰＩ規格でサポートされるライトコマンドやステータスリードコマンドやイレースコマンド等のアクセス仕様を動作モード設定部２０２のレジスタに設定する。その後、ＣＰＵ１０１がＲＯＭアクセス生成部２０１に対して、設定したコマンドの実行指示することで、ＣＰＵ１０１が動作モード設定部２０２に設定したコマンドがＲＯＭ３０に対して出力され、実行される。
【００１９】
ＲＯＭアクセス生成部２０１は、動作モード設定部２０２より設定されるＲＯＭアクセス仕様に従い、ＲＯＭ３０に対してコマンドを発行し、ＲＯＭ３０とのデータ転送を行う。
【００２０】
内蔵起動プログラムメモリ１０３は、情報処理装置１０の電源がオンになった後、ＣＰＵ１０１が最初に読み出し、実行するブートプログラムが記憶されたメモリである。内蔵起動プログラムメモリ１０３はバス１１０上のアドレスが付与されている。当該アドレスは、ＣＰＵ１０１がリセット解除後にアクセスするリセットベクターとして設定されているアドレスに対応するアドレスである。なお、本実施例では、内蔵起動プログラムは内臓起動プログラムメモリ１０３に格納され、ＣＰＵ１０１が当該プログラムにアクセスすることで処理が開始されるとする。しかし、上記内蔵起動プログラムを実行するためのハードウェアがバス１１０に接続されているとしてもよい。
【００２１】
ＯＴＰ１０４は、Ｏｎｅ  Ｔｉｍｅ  Ｐｒｏｇｒａｍａｂｌｅ  ＲＯＭであり、一度だけ書き込み可能な不揮発性メモリである。本実施例においては、ＣＰＵ１０１がＲＯＭ３０からブートプログラムを読み出すときに使用するリードコマンドを選択するための情報である「ＲＯＭアクセスパターン」がＯＴＰ１０４に記憶されている。「ＲＯＭアクセスパターン」については、図２（ａ）にて後述する。本実施例では「ＲＯＭアクセスパターン」は３パターンがあり、それぞれは２ビットの信号で識別可能に表現される。ＲＯＭ３０の種類は工場出荷時には決まっており、工場出荷時にＲＯＭアクセスパターンに対応する２ビットの識別情報がＯＴＰ１０４に書き込まれる。なお、上記のタイミング以外のタイミングでＯＴＰにＲＯＭアクセスパターンが書き込まれるとしてもよい。また、ＲＯＭアクセスパターンが記憶されるメモリは不揮発性メモリであればよく、ＯＴＰ以外のメモリであっても構わない。
【００２２】
初期読み出しモード設定部２０３は、図２（ａ）で後述する「ＲＯＭアクセス仕様」を動作モード設定部２０２に出力している。初期読み出しモード設定部２０３は、メモリコントローラに接続される可能性のある各種類のＲＯＭのリードコマンドのアクセス仕様を記憶している。ＣＰＵ１０１が内蔵起動プログラムメモリ１０３に記憶されたプログラムを実行し指定されたアクセスパターンに対応するＲＯＭアクセス仕様を動作モード設定部２０２に設定する。
【００２３】
初期読み出しモード設定部２０３は、３つのリードコマンドに対応するＲＯＭアクセス仕様を記憶している。さらに、初期読み出しモード設定部２０３は、図２（ａ）で後述する「ＲＯＭアクセスパターン」を設定するＲＯＭアクセスパターンレジスタを有している。初期読み出しモード設定部２０３はセレクタを有しており、記憶する３つのＲＯＭアクセス仕様のうちＣＰＵ１０１によって設定されたＲＯＭアクセスパターンレジスタの値に対応するＲＯＭアクセス仕様を出力する。例えば、ＲＯＭアクセスパターンレジスタに図２（ａ）に記載の「ＲＯＭアクセスパターン」のパターン１が設定されると、図２（ａ）に記載のパターン１に記載の行の「ＲＯＭアクセス仕様」の値を出力する。
【００２４】
なお、本実施例では、上記のようにＣＰＵ１０１と、内蔵起動プログラムメモリ１０３と、ＯＴＰ１０４と、初期読み出しモード設定部２０３と、メモリコントローラ１０２は一つのＳＯＣ２０に実装される。
【００２５】
次に、図２を用いて、ＲＯＭ３０として、メモリコントローラ１０２に接続されるメモリの種類と、それぞれのメモリのＲＯＭアクセス仕様、ＲＯＭアクセスパターンについて説明する。
【００２６】
図２（ａ）は、ＲＯＭ３０として使用することのできるＲＯＭの種別と各種ＲＯＭが対応することのできるリードコマンドを表にしたものである。
【００２７】
「ＲＯＭ種別」は、ＲＯＭ３０として使用することのできるＲＯＭの種類を示している。本実施例において、メモリコントローラ１０２はＲＯＭ１〜ＲＯＭ３の３つの種類のＲＯＭに対応している。ＲＯＭ種別の各列には、それぞれのＲＯＭで各行に記載のコマンドを使用することができるか否かが記載されている。“○”は、ＲＯＭがその行に記載のコマンドを使用することができることを示し、“×”はＲＯＭがその行に記載のコマンドを使用することができないことを示している。
【００２８】
「ＲＯＭアクセス仕様」は、ＳＰＩ＿ＲＯＭがコマンド実行時に何を何ビット分、何サイクルかけて転送するかを示す情報である。本実施例では、ＲＯＭ３０からブートプログラムを読み出す際に３パターンのコマンドのいずれかが使用される。それぞれのコマンドの詳細については図２（ｂ）〜（ｄ）を用いて説明する。
【００２９】
図２（ａ）と図２（ｂ）〜（ｄ）を比較しながら、ＲＯＭアクセスパターン１から３のそれぞれのアクセスタイミングと、それぞれのコマンドの転送スピードについて説明する。本実施例においては、ＲＯＭのアドレスは２４ｂｉｔであり、リードするデータサイズは２Ｂｙｔｅである。
【００３０】
図２（ｂ）は、図２（ａ）のＲＯＭアクセスパターン１のリードコマンドでデータをリードした時のタイミングチャートである。アクセスパターン１のリードコマンドはＲＯＭ１〜ＲＯＭ３のいずれのＲＯＭでも共通して使用することができるリードコマンドである。ＲＯＭアクセスパターン１のリードコマンドは、コマンド、アドレス、データのいずれも１本の信号線で転送するコマンドである。ＲＯＭアクセスパターン１のリードコマンドを使用する場合、ＲＯＭ３０は８サイクルで、ＦａｓｔＲｅａｄコマンドを示す０Ｂ（ｈｅｘ）を受信する。その後、ＲＯＭ３０は、２４サイクルかけて、Ａｄｄｒｅｓｓを受信する。次に、ＲＯＭ３０は、８サイクルの間Ｄｕｍｍｙ信号を受信する。その後、ＲＯＭ３０は、１６サイクルを使って、ＲＯＭ３０から２Ｂｙｔｅのリードデータを出力する。
【００３１】
図２（ｃ）は、図２（ａ）のＲＯＭアクセスパターン２のリードコマンドでデータをリードした時のタイミングチャートである。ＲＯＭアクセスパターン２のリードコマンドはＲＯＭ２のみで使用することができるコマンドである。ＲＯＭアクセスパターン２で指定されるリードコマンドは、コマンドを１本の信号線で転送し、アドレスとデータを４本の信号線で転送するコマンドである。ＲＯＭ３０は、８サイクルでＦａｓｔＲｅａｄ  ＱｕａｄＩＯコマンドを示すＥＢ（ｈｅｘ）を受信する。次に、ＲＯＭ３０は、６サイクルかけてＡｄｄｒｅｓｓを受信する。ＲＯＭ３０は４本の信号線を使ってアドレスを受信する。そのため、ＲＯＭアクセスパターン１を使用した場合よりもアドレスの転送に必要なサイクル数が少なくなる。次に、ＲＯＭ３０は２サイクルかけてＣｏｎｔｉｎｕｏｕｓ信号を受信する。その後、ＲＯＭ３０はＤｕｍｍｙサイクルとして４サイクル分のクロック信号を受信する。その後、ＲＯＭ３０は２Ｂｙｔｅ分のリードデータを４サイクル使用し出力する。ＲＯＭアクセスパターン２はアドレス、データの転送を４本の信号線で行うため、ＲＯＭアクセスパターン１と比較して、短い時間でＲＯＭ３０のデータの読み出しを行うことができる。
【００３２】
図２（ｄ）は、図２（ａ）のＲＯＭアクセスパターン３のリードコマンドでデータをリードしたときのタイミングチャートである。ＲＯＭアクセスパターン３はＲＯＭ３のみが使用することのできるリードコマンドである。ＲＯＭアクセスパターン３はＲＯＭアクセスパターン２と異なり、ＦａｓｔＲｅａｄ  ＱｕａｄＩＯコマンドを４本の信号線で出力する。そのため、ＲＯＭアクセスパターン３はＲＯＭアクセスパターン２よりもコマンドの出力に必要なサイクル数が少なく、ＲＯＭ３０からデータを読み出すまでに必要な時間が短くなる。ＲＯＭアクセスパターン３のコマンド以降のデータ転送はＲＯＭアクセスパターン２と同様である。
【００３３】
図２（ｂ）〜（ｄ）を比較することで、ＲＯＭアクセスパターン１，２，３のそれぞれで２Ｂｙｔｅ分のデータをリードするのに必要なサイクルがそれぞれ５６サイクル、２４サイクル、１８サイクルと異なることがわかる。このように、ＲＯＭ３０に記憶されたデータを読み出す場合に使用するコマンドを変えることでデータのリードに必要な時間が大きく変化する。そこで、早いデータ転送に対応することのできるＲＯＭを使用する場合には、データ転送速度の速いリードコマンドを使ってブートプログラムの読み出しを行うことが望ましい。このようにすることでブートプログラムの読み出しに必要な時間を短くすることができる。
【００３４】
ここで、あらためて図２（ａ）を参照し、ブートプログラムを記憶するメモリとしてそれぞれのＲＯＭを用いた場合に、ＯＴＰ１０４に記憶されるＲＯＭアクセスパターンについて説明する。
【００３５】
ＲＯＭ１はＳＰＩ対応ＲＯＭであり、ＱＵＡＤデータ転送には対応していないＲＯＭである。ＲＯＭ３０としてＲＯＭ１を使用する場合、メモリコントローラ１０２とＲＯＭ３０間でのデータ転送で使用することのできるＲＯＭアクセスパターンはパターン１のみである。ブートプログラムを記憶するメモリとしてＲＯＭ１を用いる場合、ＯＴＰ１０４にはＲＯＭアクセスパターン１を識別する識別情報が記憶される。
【００３６】
ＲＯＭ２はＱＳＰＩ対応ＲＯＭであり、ＱＵＡＤデータ転送に対応しているＲＯＭである。ＲＯＭ３０としてＲＯＭ２を使用する場合、メモリコントローラ１０２とＲＯＭ３０間でのデータ転送で使用することのできるＲＯＭアクセスパターンはパターン１とパターン２の２つある。ブートプログラムを記憶するメモリとしてＲＯＭ２を用いる場合、ＯＴＰ１０４にはより速い速度でデータを転送するＲＯＭアクセスパターン２を識別する識別情報が記憶される。
【００３７】
ＲＯＭ３はＱＳＰＩ対応ＲＯＭであり、ＱＵＡＤデータ転送に対応しているＲＯＭである。ＲＯＭ３０としてＲＯＭ３を使用する場合、メモリコントローラ１０２とＲＯＭ３０間でのデータ転送で使用することのできるＲＯＭアクセスパターンはパターン１とパターン３の２つある。ブートプログラムを記憶するメモリとしてＲＯＭ３を用いる場合、ＯＴＰ１０４にはより速い速度でデータを転送するＲＯＭアクセスパターン３を識別する識別情報が記憶される。
【００３８】
上記のように、ＯＴＰ１０４に格納されるＲＯＭアクセスパターンはＲＯＭ３０として使用されるＲＯＭの対応しているリードコマンドのうち、データの転送に必要なサイクルが最も少ないコマンドに対応するＲＯＭアクセスパターンであることが望ましい。このようにすることで、情報処理装置の電源がＯＮになり、ＣＰＵ１０１がブートプログラムを読み出すまでに必要な時間を短くすることができる。
【００３９】
図３は、実施例１において情報処理装置１０が起動したときに実行される処理を示すシーケンスを示す図である。
【００４０】
図３（ａ）は、ＲＯＭ３０として図２（ａ）記載のＲＯＭ１が接続された場合のシーケンス図である。ＯＴＰ１０４にはＲＯＭ１が対応することのできるリードコマンドのうち、ＲＯＭアクセスパターン１を識別する識別情報が書き込まれている。
【００４１】
図３（ｂ）は、ＲＯＭ３０として図２（ａ）記載のＲＯＭ３が接続された場合のシーケンス図である。ＯＴＰ１０４にはＲＯＭ３が対応するリードコマンドのうち、データを読み出すまでの時間がもっとも短いリードコマンドであるＲＯＭアクセスパターン３を識別する識別情報が書き込まれている。
【００４２】
はじめに、図３（ａ）を用いてＲＯＭ１からブートプログラムを読み出して実行する場合を説明する。
【００４３】
情報処理装置１０の電源がＯＮになりＣＰＵ１０１に電力の供給が開始された後、一定時間ＣＰＵ１０１にリセット信号が入力される。ＣＰＵ１０１はリセット信号が入力されている間、起動処理を実行せず待機する。
【００４４】
ｔ１０１において、ＣＰＵ１０１に入力されていたリセット信号が解除され、ＣＰＵ１０１は、リセットベクターで設定される先頭アドレスにアクセスする。ここで、リセットベクターで設定されるアドレスとは、内蔵起動プログラムメモリ１０３のアドレスである。
【００４５】
内蔵プログラムメモリ１０３にアクセス後、ｔ１０２において、ＣＰＵ１０１は内蔵起動プログラムメモリ１０３から、内蔵起動プログラムを読み出し、不図示のＲＡＭ等に展開し、当該プログラムを実行する。以降、ｔ１０３〜ｔ１０５、ｔ１０７、ｔ１１０は内蔵起動プログラム１０３の内容に従いＣＰＵ１０１が実行する処理である。
【００４６】
ｔ１０２で読み出したプログラムを実行するＣＰＵ１０１は、ｔ１０３において、ＯＴＰ１０４に情報を読み出しにいく。そして、ｔ１０４でＣＰＵ１０１はＯＴＰ１０４に記憶されたＲＯＭアクセスパターンを取得する。図３（ａ）ではＲＯＭ３０として図２（ａ）に示すＲＯＭ１が接続されているため、ＲＯＭアクセスパターン１を識別する識別情報が取得される。
【００４７】
ｔ１０５で、ＣＰＵ１０１はｔ１０４で取得したＲＯＭアクセスパターンを初期読み出しモード設定部２０３のＲＯＭアクセスパターンレジスタに設定する。ＣＰＵ１０１が初期読み出しモード設定部２０３のＲＯＭアクセスパターンレジスタにＲＯＭアクセスパターン１を設定する。
【００４８】
ｔ１０６において、初期読み出しモード設定部２０３はｔ１０５で設定されたＲＯＭアクセスパターンレジスタの値に基づき、設定されたＲＯＭアクセスパターンに対応するＲＯＭアクセス仕様を動作モード設定部２０２に設定する。動作モード設定部２０２は、起動時、初期読み出しモード設定部２０３による設定をそのまま出力するよう設定されている。そのため、動作モード設定部２０２は初期読み出しモード設定部２０３より設定されたＲＯＭアクセス仕様をそのままＲＯＭアクセス生成部２０１に出力する。具体的には、動作モード設定部２０２は、図２（ａ）に記載のＲＯＭアクセスパターンのパターン１に対応するＲＯＭアクセス仕様をＲＯＭアクセス生成部２０１に設定する。
【００４９】
情報処理装置１０が、ｔ１０１〜ｔ１０６の処理を実行することで、ＣＰＵ１０１がＲＯＭ３０にアクセスすることなく、ＲＯＭ３０からブートプログラムを読み出すのに使用するコマンドを選択することができる。
【００５０】
ｔ１０７で、ＣＰＵ１０１は情報処理装置１０を起動するためのブートプログラムをＲＯＭ３０から読み出すため、ＲＯＭアクセス生成部２０１にリードコマンドを発行する。ここで、ＣＰＵ１０１はＲＯＭアクセス生成部２０１に対してリードコマンドとアドレスを出力する。なお、ここでＣＰＵ１０１が出力するアドレスの情報はＳＯＣ２０上にあるいずれかのメモリに格納されていればよい。たとえば、ブートプログラムが記憶されているアドレスを内蔵起動プログラムメモリ１０３が記憶している。ＣＰＵ１０１が内蔵起動プログラムメモリ１０３に記憶されたプログラムを実行することでＲＯＭ３０のブートプログラムの格納箇所にアクセスすることができる。
【００５１】
そして、ｔ１０８において、ＲＯＭアクセス生成部２０１は、ＣＰＵ１０１から受信したコマンドとアドレス、および、ｔ１０６までに動作モード設定部２０２により設定されたＲＯＭアクセス仕様に基づき、ＲＯＭ３０に対しリードコマンドを発行する。本例では、ＦＡＳＴ＿ＲＥＡＤコマンドがＲＯＭ３０に対して発行される。ＲＯＭ３０は、ＲＯＭアクセス生成部２０１から出力されたコマンドに従い、図２（ｂ）に記載のタイミングチャートに記載の信号を受信する。そして、図２（ｂ）のＤａｔａ（４０サイクル以降）のフェーズでブートプログラムをＲＯＭアクセス生成部２０１に返す。
【００５２】
ｔ１０９で、ＲＯＭアクセス生成部２０１はｔ１０８で出力したコマンドに応じてＲＯＭ３０から出力されるリードデータを取得する。そして、ｔ１１０で、ＲＯＭアクセス生成部２０１は取得したブートプログラムをＣＰＵ１０１に転送する。ｔ１１０以降、ＣＰＵ１０１はＲＯＭアクセス生成部２０１から転送されたブートプログラムを実行する。以上により、ＣＰＵ１０１は情報処理装置１０のブート処理を実行することができる。
【００５３】
なお、ｔ１０７からｔ１１０はＣＰＵ１０１がＲＯＭ３０からプログラムを読み出すたびに実行されるシーケンスである。
【００５４】
本実施形態では、ＯＴＰ１０４に記憶されたＲＯＭアクセスパターンで指定されるリードコマンドでＲＯＭ３０に格納されたブートプログラムの読み出しを行う。これにより、ＣＰＵがブートプログラムを格納するＲＯＭにアクセスしなくても、接続されているＲＯＭ種に適したコマンド体系でブートプログラムの読み出しを行うことができる。
【００５５】
次に、図３（ｂ）を用いて、ブートプログラムを記憶するメモリとしてＲＯＭ３を使用した場合の処理を説明する。ここでは、図３（ａ）との差分のみ説明する。
【００５６】
ｔ１０４１において、ＣＰＵ１０１はＯＴＰ１０４にアクセスしてＲＯＭアクセスパターンを取得する。このとき、ＯＴＰ１０４にはＲＯＭアクセスパターン３を識別する識別情報が記憶されており、ＣＰＵはＲＯＭアクセスパターン３に対応する識別情報を取得する。
【００５７】
そして、ｔ１０５１において、初期読み出しモード設定部２０３にＲＯＭアクセスパターン３を設定する。ｔ１０６１において、初期読み出しモード設定部２０３は、ＣＰＵ１０１により設定されたＲＯＭアクセスパターンの情報に基づいて、ＲＯＭアクセスパターン３のＲＯＭアクセス仕様を動作モード設定部２０２に設定する。そして、動作モード設定部２０２はＲＯＭアクセス生成部２０１にＲＯＭアクセスパターン３のアクセス仕様を設定する。
【００５８】
動作モード設定部２０２、および、ＲＯＭアクセス生成部２０１にはＲＯＭアクセスパターン３に対応するアクセス仕様が設定されている。そのため、ＣＰＵ１０１がＲＯＭアクセス生成部２０１に対してリードコマンドを発行すると、ｔ１０８１において、ＲＯＭアクセス生成部２０１は、ＲＯＭアクセスパターン３に対応するアクセス仕様でＲＯＭ３０にアクセスする。そして、ｔ１０９１において、ＲＯＭアクセス生成部２０１はＲＯＭアクセスパターン３に対応するアクセス仕様でリードデータを取得する。これにより、ＣＰＵ１０１はＲＯＭ３０からブートプログラムを取得する。このようにブートプログラムを記憶するメモリとしてＲＯＭ３を用いた場合、ブートプログラムを記憶するＲＯＭ３０としてＲＯＭ１を使用した場合と比較して、ブートプログラムの読み出しを早く行うことができる。
【００５９】
以上に、説明したように、本実施例では、接続されているメモリの種類に応じたＲＯＭアクセスパターンを識別するための情報をＯＴＰ１０４に記憶する。そして、ＣＰＵ１０１が内蔵プログラムに従って、ブートプログラムの読み出し前に、ＯＴＰ１０４に記憶されたＲＯＭアクセスのパターン情報を読み出す。ＣＰＵ１０１は読み出したＲＯＭアクセスパターンで識別されたアクセス仕様に基づいて、ＲＯＭ３０アクセスし格納されたブートプログラムをＲＯＭ３０から読み出す。このようにすることで、接続されているＲＯＭ３０のＲＯＭ種に応じたリードコマンドを使ってブートプログラムの読み出しをすることができるようになる。そのため、たとえばデータ転送速度の速いＲＯＭを用いた場合にブート処理に必要な時間を短くすることができる。
【００６０】
なお、本実施例では、ＲＯＭ３０の対応するＲＯＭ種やＲＯＭアクセスパターンは３種類で記載したが、この限りではない。
【００６１】
＜実施例２＞
前述の実施例１では、セレクタを有する初期読み出しモード設定部２０３を用意し、ＣＰＵ１０１が初期読み出しモード設定部２０３にブートプログラムを読み出すときに使用するＲＯＭアクセスパターンの識別情報を設定した。初期読み出しモード設定部２０３は、複数のＲＯＭアクセスパターンのうち、ＣＰＵ１０１がレジスタに設定した識別情報で識別されるＲＯＭアクセス仕様を動作モード設定部２０２に設定した。実施例２では、初期読み出しモード設定部２０３を用意せず、ＣＰＵ１０１は動作モード設定部２０２にＲＯＭアクセス仕様を設定する。このようにすることで、初期読み出しモード設定部２０３を有さないハード構成でも、ブートプログラムを記憶するメモリにアクセスすることなく、当該メモリに適した形でメモリにアクセスしブートプログラムの読み出しを実現することができる。
【００６２】
図１（ｂ）は、実施例２の情報処理装置１０の基本的なハードウェア構成を説明する構成図である。実施例１と共通する構成には同じ符号を付加し、実施例１と異なる箇所のみを説明する。
【００６３】
実施例２に記載の情報処理装置は、初期読み出しモード設定部２０３を有さない。また、実施例２に記載の情報処理装置が有する内蔵起動プログラムメモリ３０３には実施例１の内蔵起動プログラムメモリ１０３に記憶されているプログラムと異なるプログラムが記憶されている。実施例２に記載の情報処理装置は、初期読み出しモード設定部２０３を有さないため、ＣＰＵ１０１が内蔵プログラムメモリ３０３に記憶されたプログラムを実行し、ＲＯＭアクセス仕様を動作モード設定部２０２に設定する。そのため、内蔵プログラムメモリ３０３には各ＲＯＭアクセスパターンに対応するＲＯＭアクセス仕様が記憶されている。ＣＰＵ１０１はＯＴＰ１０４から読み出したＲＯＭアクセスパターンに対応するＲＯＭアクセス仕様を内蔵プログラムメモリ３０３から読み出し、動作モード設定部２０２に設定する。
【００６４】
内蔵起動プログラムメモリ３０３に記憶されたプログラムと実施例１に記載の内蔵起動プログラムメモリ１０３に記憶されたプログラムの違いについては、図４のシーケンス図を用いて説明する。
【００６５】
図４は、実施例２の情報処理装置１０の起動時のシーケンスを示す図である。図３と図４で同様の処理をする箇所には同じ符号を付与している。実施例１と同様の処理については説明を省略し、実施例１と差のある箇所を説明する。
【００６６】
ＣＰＵ１０１は、ｔ１０４においてＯＴＰ１０４からＲＯＭアクセスパターンを示す識別情報を取得する。そして、ｔ２０５で、ＣＰＵ１０１はｔ１０４で読み出したＲＯＭアクセスパターンの識別情報に対応するＲＯＭアクセス仕様を動作モード設定部２０２の「ＲＯＭアクセス仕様」を設定するレジスタに設定する。図４（ａ）では、ＲＯＭアクセスパターン１に対応するＲＯＭアクセス仕様を動作モード設定部２０２のレジスタに設定する。動作モード設定部２０２は「ＲＯＭアクセス仕様」を設定するレジスタに設定されたＲＯＭアクセス仕様をＲＯＭアクセス生成部２０１に出力する。
【００６７】
図４（ｂ）はＯＴＰ１０４にＲＯＭアクセスパターン３を示す識別情報が記憶されている場合のシーケンス図である。ｔ２０５１において、ＣＰＵ１０１はアクセスパターン３のアクセス仕様を動作モード設定部２０２のアクセス仕様を記憶するレジスタに設定する。動作モード設定部２０２は設定されたＲＯＭアクセスパターン３に対応するＲＯＭアクセス仕様をＲＯＭアクセス生成部２０１に出力する。このようにすることで、ｔ１８０１において、ＲＯＭアクセス生成部２０１がＲＯＭアクセスパターン３に対応する体系でＲＯＭ３０にアクセスすることができる。
【００６８】
以上より、初期読み出しモード設定部２０３を有さない構成の情報処理装置であっても、ブートプログラムの読み出し前にブートプログラムの格納されたＲＯＭにアクセスすることなく、当該ＲＯＭに適したリードアクセスを実現することが可能となる。
【００６９】
＜実施例３＞
実施例１、２では、内蔵起動プログラム１０３、３０３とＯＴＰ１０４を使用し、ＣＰＵ１０１がいずれのリードコマンドを使ってＲＯＭ３０にアクセスするかを制御していた。実施例３においては、ＣＰＵ１０１が内蔵プログラムを実行することなく、接続されているＲＯＭ３０の種類に最適なリード動作をすることができる。
【００７０】
実施例３において、メモリコントローラ１０２は、ＦａｓｔＲｅａｄまたはＦａｓｔＲｅａｄ  ＱｕａｄＩＯの何れかのコマンドを使ってＲＯＭ３０に記憶されたブートプログラムを読み出す。
【００７１】
図５は、実施例３の情報処理装置１０の基本的なハードウェア構成を説明する構成図である。実施例１，２と共通のハードウェア構成には同一の符号を付与し、説明を省略する。
【００７２】
実施例３に記載の情報処理装置は、内蔵起動プログラム１０３とＯＴＰ１０４を有さず、Ｅ−ｆｕｓｅ５０１を有している。Ｅ−ｆｕｓｅ５０１はＦＵＳＥであり、ＦＵＳＥをつないだままにするか、切断するかによりＨｉｇｈまたは、Ｌｏｗの出力を実現するものである。ＳＯＣ２０の外に引き出された個別信号５１０に治工具で印加電圧を印加することでＦＵＳＥを切断しＬｏｗを出力させる。
【００７３】
工場出荷時に個別信号５１０からＥ−ｆｕｓｅにＲＯＭ３０として使用されるメモリに対応するＲＯＭアクセスパターンを書き込んでおく。初期読み出しモード設定部２０３は、Ｅ−ｆｕｓｅ５０１の出力に合わせたアクセス仕様を動作モード設定部２０２に設定する。このようにすることで、情報処理装置を起動後、ＣＰＵ１０１がＲＯＭアクセス生成部２０１にリードアクセスをすると動作モード設定部２０２に設定されたアクセス仕様でＲＯＭ３０にアクセスする。このようにすることで、ＲＯＭ３０の種別に応じた最速のリードコマンドを使用する事が可能となる。
【００７４】
以上により、内蔵起動プログラム１０３とＯＴＰ１０４を有さない情報処理装置であっても、ＣＰＵ１０１がＲＯＭ３０にアクセスすることなく、ＲＯＭ３０からブートプログラムを読み出すときに使用するのに適切なコマンドを選択することができる。
【００７５】
また、本実施例ではＥ−ｆｕｓｅには特殊な治工具や印加電圧が必要と記載したが、Ｅ−ｆｕｓｅに制限するものではなく、ＲＯＭアクセスパターンを識別するための情報を書き込み可能なモジュールであれば良い。
【００７６】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2020057063.tif 000003
【図２】
2020057063.tif 000004
【図３】
2020057063.tif 000005
【図４】
2020057063.tif 000006
【図５】
2020057063.tif 000007