以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための図面において同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
本発明の実施の形態1に係る情報処理装置について説明する。
この実施の形態1では、情報処理装置は、SOC(System On
a Chip:システムオンチップ)いわゆる半導体集積回路を意味する。以降の説明においては、SOCの構成、機能および動作について説明する。
図1は、実施の形態1に係るSOC(システムオンチップ)の機能構成を示している。
図1に示すように、SOC10は、レイヤ管理部100と、レイヤ制御部200と、複数のプロセッサ310,320,330と、複数のイニシエータ340,350と、レイヤ制御部200に接続される複数のインタフェース(以下「I/F」という)310a,320a,330a,340a,350a,371および複数のメモリ制御部361,363と、メモリ制御部361に接続される揮発性メモリ362と、バス372を介してI/F371に接続される複数のメモリ制御部373,375および複数の機能部377,378と、システム・リセット部380と、を有している。
また、メモリ制御部363、メモリ制御部373およびメモリ制御部375にはそれぞれSOC10の外部に位置する揮発性メモリ364、不揮発性メモリ374および揮発性メモリ376が接続されている。
さらに、SOC10には、例えば、複数のプロセッサ310,320,330、複数のイニシエータ340,350に対し電源電圧を供給するための電源部390が接続される。
レイヤ管理部100は、不揮発性メモリ110を有し、SOC10の外部から入力されたレイヤ管理情報を不揮発性メモリ110に格納するとともに、所定のタイミングでそのレイヤ管理情報をレイヤ制御部200へ出力する。このレイヤ管理部100およびレイヤ管理情報の詳細については後述する。
レイヤ制御部200は、複数のソケット201,202,203,204,205,206,207,208とソケット制御部209とがレイヤ制御バス210を介して接続されている。
ソケット201、ソケット202、ソケット203、ソケット204およびソケット205は、それぞれI/F210a、I/F220a、I/F230a、I/F240aおよびI/F250aを介して、プロセッサ310,プロセッサ320、プロセッサ330、イニシエータ340およびイニシエータ350に接続される。ソケット206、ソケット207、ソケット208は、それぞれメモリ制御部361、メモリ制御部363およびI/F371に接続される。これらのソケットの詳細については後述する。
ソケット制御部209は、後述するレイヤ管理部100からのレイヤ管理情報を、レイヤ制御バス210を介して各ソケットに向けて送信する。
このようなレイヤ制御部200では、レイヤ管理部100からのレイヤ管理情報に基づきソケット毎にアドレス変換を実施する。
複数のプロセッサ310,320,330は、固有のメモリマップの情報に従って所定の処理を実行する処理手段の機能を有しており、異種あるいは同種のプロセッサである。この例では、プロセッサ310およびプロセッサ320は同種であり、プロセッサ330は前記2つのプロセッサとは異種である。
複数のイニシエータ340,350は、固有のメモリマップの情報に従って所定の処理を実行する処理手段の機能を有しており、異種あるいは同種のイニシエータである。この例では、イニシエータ340およびイニシエータ350は同種である。
システム・リセット部380は、SOC10の外部の例えばリセット部からのリセット解除信号に同期してSOC10の内部のシステム・リセット信号を生成し、このシステム・リセット信号をレイヤ管理部100およびレイヤ制御部200に向けて出力する。
なお、実施の形態1では、複数の処理手段(プロセッサ、イニシエータ)にかかわる共通のメモリマップに対応する予め設定されるアドレス変換情報を基に、対応する処理手段から出力されるアドレスについてアドレス変換するインタフェース手段は、例えばソケットで実現される。従って、複数のソケット201〜208はそれぞれ上記アドレス変換するインタフェースの機能を有する。
次に、レイヤ管理情報のフォーマットについて、図2を参照して説明する。
図2に示すように、レイヤ管理情報400は、ソケット指定情報410、制御テーブル420およびアドレス変換テーブル430を含んでいる。このようなフォーマットのレイヤ管理情報400は、SOC10の内部に配置されているソケットの数だけ生成される。この例は、8つのソケットがSOC10に配置されているので、8個のレイヤ管理情報400が生成される。
ソケット指定情報410は、レイヤ制御部200内の複数のソケット201〜208の中の何れのソケットに対する情報であるかを示す情報を意味する。
ソケット指定情報410は、該当するソケットの識別情報を示すソケット指定ID411と、当該ソケットに対応するプロセッサあるいはイニシエータとの間で例えばバースト転送モード、シングル転送モードなどの何れの転送モードでデータ転送(通信)が可能かを示す制御タイプ412とを有している。
制御テーブル420は、ソケット指定情報410(のソケット指定ID411)で指定されるソケットに対する制御情報を示すテーブルを意味する。
また、制御テーブル420は、アドレス変換テーブル有効セット数情報421と、転送モード設定情報422と、起動可否設定情報423と、電源遮断設定情報424と、を含んでいる。
アドレス変換テーブル有効セット数情報421は、後述するアドレス変換テーブル430に記憶される複数のセット情報における有効なセット情報の数を示す情報である。
転送モード設定情報422は、当該ソケットが対応するプロセッサとの間でデータ転送する際の転送モード例えばシングル転送モードまたはバースト転送モードを示す情報である。
起動可否設定情報423は、SOC10に電源が投入されたときに、ソケット指定情報410(のソケット指定ID411)で指定されるソケットに対するプロセッサあるいはイニシエータを起動させるか否かを示す情報である。ここで、起動可否設定情報423は、プロセッサあるいはイニシエータを起動させる場合にはリセット解除信号を意味し、一方、プロセッサあるいはイニシエータを起動させない場合はリセット信号を意味する。
電源遮断設定情報424は、ソケット指定情報410(のソケット指定ID411)で指定されるソケットに対応するプロセッサあるいはイニシエータに供給される電源電圧の供給を遮断するべき旨(電源遮断すべき旨)を示す情報である。
アドレス変換テーブル430は、ソケット指定情報410(のソケット指定ID411)で指定されるソケットに指定するテーブルを意味する。
また、アドレス変換テーブル430は、複数のセット1〜nを有しており、各セットは、入力ベースアドレス431と、アドレスマスク432と、アドレスレングス433と、出力ベースアドレス434と、を含んでいる。
実施の形態1では、アドレス変換情報は、制御テーブル420のアドレス変換テーブル有効セット数情報421およびアドレス変換テーブル430を含んでいる。
次に、レイヤ管理部100の詳細について、図3を参照して説明する。
図3に示すように、レイヤ管理部100は、不揮発性メモリ110、状態制御部120、レイヤ管理情報・受信制御部130、受信用バッファ140、不揮発性メモリ制御部150、送信用バッファ160、送信制御部170およびレイヤ管理情報・送信制御部180を有している。
不揮発性メモリ110は、上述したレイヤ管理情報400と、管理情報11とを記憶する。
状態制御部120は、システム・リセット部380からのシステム・リセット信号や、OC10の外部の装置(以下「外部装置」という)例えばデータの書き込み処理を実施するコンピュータやデータ書き込み装置(ライタ)から出力されるレイヤ管理部・処理モードを受け付けて、これら受け付けたシステム・リセット信号やレイヤ管理部・処理モードの状態を確認するとともに、この確認した結果を基にレイヤ管理部100の処理を制御する。
実施の形態1では、レイヤ管理部・処理モードには、データの書き込み処理を示すライトモード、データの読み出し処理を示すリードモード、アドレス変換処理を示す通常起動モードが含まれている。
レイヤ管理部・処理モードは、例えば、2ビットのデータで表現するようにした場合、「01」の場合にはライトモード、また「10」の場合にはリードモード、さらに「00」の場合は通常起動モード、であると定義するようにする。
ところで、状態制御部120は、レイヤ管理部・処理モードがライトモードのときは、レイヤ管理情報・受信制御部13および不揮発性メモリ制御部150に対しデータの書き込みを実施するように制御する。
また、状態制御部120は、レイヤ管理部・処理モードがリードモードのときは、不揮発性メモリ制御部150に対しデータの読み出しを実施するように制御するとともに、レイヤ管理情報・送信制御部180に対しデータの送信を実施するように制御する。
さらに、状態制御部120は、レイヤ管理部・処理モードが通常起動モードのときは、不揮発性メモリ制御部150に対しデータの読み出しを実施するように制御するとともに、送信制御部170に対しデータの送信を実施するように制御する。
レイヤ管理情報・受信制御部130は、状態制御部120の制御に従って、外部装置例えばデータの書き込み処理を実施するコンピュータやデータ書き込み装置(ライタ)から出力されたレイヤ管理情報400を受信する。
受信用バッファ140は、レイヤ管理情報・受信制御部120によって受信されたレイヤ管理情報400を保持する。
不揮発性メモリ制御部150は、状態制御部120の制御に従って、受信用バッファ140からレイヤ管理情報400を読み出し、不揮発性メモリ110に格納するとともに、不揮発性メモリ110からレイヤ管理情報400を読み出す。
送信用バッファ160は、不揮発性メモリ制御部140によって読み出されたレイヤ管理情報400を保持する。
送信制御部170は、状態制御部120の制御に従って、送信用バッファ150に保持されたレイヤ管理情報をレイヤ制御部200に向けて送信する。
レイヤ管理情報・送信制御部180は、状態制御部120の制御に従って、送信用バッファ150に保持されたレイヤ管理情報400をSOC10の外部に位置する上記外部装置に向けて送信する。これは、外部装置がレイヤ管理情報に関してのベリファイのために実施される。
なお、レイヤ管理情報・受信制御部130、不揮発性メモリ制御部150、送信制御部170およびレイヤ管理情報・送信制御部180は、状態制御部120の制御に従って所定の処理を実施するに際に、処理過程の情報、例えば受信したデータ、書き込んだデータ、読み出したデータ、送信したデータなどの各データのデータ量(データサイズ)や、処理を終了した旨を状態制御部120へ通知する。
なお、実施の形態1では、当該情報処理装置(SOC10)の外部に位置する外部装置から出力され複数のインタフェース手段(ソケット)に関してのソケットを識別する識別情報および当該ソケットにかかわるアドレス変換情報を受け付ける情報受付手段は、例えばレイヤ管理情報・受信制御部130で実現される。
また、実施の形態1では、情報受付手段(レイヤ管理情報・受信制御部130)が受け付けた情報(アドレス変換情報を含むレイヤ管理情報)を記憶する情報記憶手段は、例えば不揮発性メモリ110で実現される。
さらに、実施の形態1では、複数のインタフェース手段(ソケット)に対し、情報記憶手段(不揮発性メモリ110)に記憶されている識別情報およびアドレス変換情報を出力し、アドレス変換情報記憶手段(後述するアドレス変換テーブル部230および制御テーブル部240)に記憶するように制御する制御手段は、例えば、状態制御部120、不揮発性メモリ制御部150および送信制御部170で実現される。
次に、レイヤ制御200のソケットの詳細について、図4を参照して説明する。
ここでは、図1に示すソケット201の構成について説明する。なお、他のソケット202〜208も、ソケット201と同様の構成になっている。
図4に示すように、レイヤ制御部200のソケット201は、バス側転送制御部220、アドレス変換テーブル部230、制御テーブル部240、I/F側転送制御部250およびアドレス変換部260を有している。
バス側転送制御部220は、レイヤ制御バス209に転送されているレイヤ管理情報400の中のレイヤ指定情報410のソケット指定ID411を確認し、この確認した結果、ソケット指定IDが当該ソケット201を示しているので適合すると判断したときは、当該レイヤ管理情報400の中の制御テーブル420およびアドレス変換テーブル430を受信して、これらの情報の設定の制御を行う。
具体的には、バス側転送制御部220は、アドレス変換テーブル430をアドレス変換テーブル部230に向けて転送し、一方、制御テーブル420を制御テーブル部240に向けて転送する。
アドレス変換テーブル部230は、転送されてきたアドレス変換テーブル430を格納する。
制御テーブル部240は、転送されてきた制御テーブル420を格納するとともに、この制御テーブル420の各構成要素に設定されている情報に基づく制御信号を出力する。つまり制御テーブル部240は、アドレス変換テーブル有効セット数情報421をアドレス変換部260に向けて出力し、転送モード設定情報422をバス側転送制御部220およびI/F側転送制御部250に向けて出力し、起動可否設定情報423および電源遮断設定情報424をソケット201に対応するプロセッサ310に向けて出力する。
I/F側転送制御部250は、当該ソケット201とI/F310aを介して接続されるプロセッサ310とのインタフェースを実施する。例えばI/F側制御部250は、I/F310aを介してプロセッサ310から出力されたアドレスを受信するとともに、この受信したアドレスをアドレス変換部260に向けて出力する。
アドレス変換部260は、I/F側転送制御部250からのアドレスについて、制御テーブル部240からのアドレス変換テーブル有効セット数情報421、およびアドレス変換テーブル部230内のアドレス変換テーブル430を基にアドレス変換を実施する。
なお、実施の形態1では、インタフェース手段(ソケット)にかかわるアドレス変換情報(アドレス変換テーブル有効セット数情報421およびアドレス変換テーブル430)を記憶するアドレス変換情報記憶手段は、例えば、アドレス変換テーブル部230および制御テーブル部240で実現される。
また、実施の形態1では、アドレス変換テーブル部230および制御テーブル部240(アドレス変換情報記憶手段)の記憶内容(アドレス変換テーブル有効セット数情報421およびアドレス変換テーブル430)を基に、対応する処理手段(プロセッサあるいはイニシエータ)この場合はプロセッサ310から出力されるアドレスについてアドレス変換するアドレス変換手段は、例えば、アドレス変換部260で実現される。
次に、SOC10によるアドレス変換処理について図5を参照して説明する。
図5は、そのアドレス変換処理の処理手順を示すフローチャートである。
SOC10の電源投入およびリセット解除が行われると(ステップS101)、レイヤ管理部100は、レイヤ管理部・処理モードが通常起動モードのときは、不揮発性メモリ110に記憶されているレイヤ管理情報400を読み出してレイヤ制御部200に向けて送信する(ステップS102)。
レイヤ制御部200では、各ソケットは、ソケット制御部209を介してレイヤ制御バス210に転送されるレイヤ管理情報400の中のソケット指定ID411を確認し、この確認した結果、ソケット指定IDが当該ソケットを示しているので適合すると判断したときは、当該レイヤ管理情報400の中の制御テーブル420およびアドレス変換テーブル430を受信するとともに、制御テーブル420を制御テーブル部240に格納し、またアドレス変換テーブル43をアドレス変換テーブル部230に格納する。
そして、レイヤ管理部100は、レイヤ制御部200へのレイヤ管理情報400の送信が終了すると、管理情報111を基に、レイヤ制御部200の各ソケットに対し、アクティブにする旨のコマンドを送信する(ステップS103)。
レイヤ制御部200では、各ソケットは、制御テーブル部240に格納されている制御テーブル420を基に、プロセッサあるいはイニシエータとの処理を開始する(ステップS204)。この場合、電源分離されたプロセッサあるいはイニシエータを電源遮断にした状態のままにする場合もある。
プロセッサあるいはイニシエータは、上述したようにSOC10の電源投入およびリセット解除が行われたことにより、リセット例外(例外処理など)にかかわるアドレスに対して、命令フェッチを行う(ステップS105)。
すなわち、プロセッサあるいはイニシエータは、リセット例外(例外処理など)にかかわるアドレスをレイヤ制御部200に向けて出力する。
レイヤ制御部200では、プロセッサあるいはイニシエータに対応するソケットのアドレス変換部260が、制御テーブル部240内のアドレス変換テーブル有効セット数情報421と、アドレス変換テーブル部230内のアドレス変換テーブル430とを基に、リセット例外(例外処理など)にかかわるアドレスについてアドレス変換する。
そして、アドレス変換部260は、アドレス変換したアドレスにてレイヤ制御バスとのトランザクションを行う(ステップS106)。
このようにしてレイヤ制御部200(のアドレス変換部260)によってアドレス変換されトランザクションが実施されることにより、プロセッサやイニシエータによるメモリ、機能に対してのアクセスが行われる。
次に、レイヤ制御部200のアドレス変換部260のアドレス変換処理について、図6を参照して説明する。
図6は、そのアドレス変換処理の処理手順を示すフローチャートである。
アドレス変換部260は、入力アドレスを受け付けると(ステップS201)、この入力アドレスに対して、アドレス変換テーブル部230に記憶されているアドレス変換テーブル430の入力ベースアドレス431、アドレスマスク432、アドレスレングス433により生成されるセット領域に入力アドレスが含まれるかを判定する(ステップS202)。
アドレス変換部260は、ステップS202において入力アドレスが、生成したセット領域に含まれると判定した場合は、当該入力アドレスと、適合したセットの入力ベースアドレスとアドレスマスクと出力ベースアドレスに基づきアドレス変換して(ステップS203)、出力アドレスを生成し(ステップS204)、該生成したアドレス(出力アドレス)にてレイヤ制御バス210とのトランザクションを行う。
次に、プロセッサ310(プロセッサA1)、プロセッサ320(プロセッサA2)およびプロセッサ330(プロセッサB1)のそれぞれに対応するソケットでのアドレス変換処理について具体例を挙げて説明する。
(1)プロセッサ310(プロセッサA1)に対応するソケット201でのアドレス変換について説明する。
この例では、制御テーブル420のアドレス変換テーブル有効セット数情報421が値「2」であるとする。この場合、アドレス変換テーブル430のセット1およびセット2が使用される。
入力アドレスは「0x0001A5F0」とし、またセット1およびセット2に設定されている値は、次の内容であるとする(図7参照)。
(セット1)
入力ベースアドレス=0x00000000
アドレスマスク =0x0000FFFF
アドレスレングス =0x00000002
出力ベースアドレス=0x00000000
(セット2)
入力ベースアドレス=0x00030000
アドレスマスク =0x0000FFFF
アドレスレングス =0x00000001
出力ベースアドレス=0x00070000
アドレス変換部260は、入力アドレス=「0x0001A5F0」が上記セット1で示されるセット領域および上記セット2で示されるセット領域の何れのセット領域に含まれるか否かを判定(セットの判定)し、この判定した結果、セット1が適合すると判定する(図7の#1参照)。
このようにして判定処理を終了したアドレス変換部260は、入力アドレス=「0x0001A5F0」、適合したセット1の入力ベースアドレス=「0x00000000」、アドレスマスク=「0x0000FFFF」および出力ベースアドレス=「0x00000000」に基づきアドレス変換して(図7の#2参照)、出力アドレス=「0x0001A5F0」を生成する。
なお、図7において符号#1、#2は、図6に示す符号#1、#2(つまりS202,S203)に対応する。
ここで、アドレス変換処理過程について詳細に説明する。
最初にセット1に関して説明すると、入力ベースアドレス=「0x00000000」、アドレスレングス=「0x2」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされる(図8のP1参照)。
この場合、セット1の入力アドレスにかかわるセット領域は、「0x0000****」、「0x0001****」および「0x0002****」となる(図8のP1参照)。なお、下位2バイトの「****」は、アドレスマスクを意味する。
これらのセット領域に入力アドレス=「0x0001A5F0」が含まれるかを確認した場合(図8のP2参照)、ヒット・アドレスレングス=「0x1」となる(図8のP3参照)。
また、出力ベースアドレス=「0x00000000」、アドレスレングス=「0x2」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされるので、セット1の出力アドレスにかかわるセット領域は、「0x0000****」、「0x0001****」および「0x0002****」となる(図8のP4参照)。
そして、上述したようにヒット・アドレスレングス=「0x1」であるので、出力アドレスにかかわるセット領域のうち、「0x0001****」が採用される。
この「0x0001****」の上位2バイト「0001」と、入力アドレス=「0x0001A5F0」の下位2バイト「A5F0」とを基に、アドレス変換され(図8のP5参照)、出力アドレス=「0x0001A5F0」が生成される(図8のP6参照)。
次にセット2に関して説明すると、入力ベースアドレス=「0x00030000」、アドレスレングス=「0x1」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされるので、セット2の入力アドレスにかかわるセット領域は、「0x0003****」および「0x0004****」となる(図8のP7参照)。
これらのセット領域に入力アドレス=「0x0001A5F0」が含まれるかを確認した場合、当該入力アドレスはこれらのセット領域に含まれないので、セットの判定の結果、非適合となる(図8のP8参照)。このようにして、セットの判定の結果が非適合の場合は、これで処理が終了となる。
(2)次に、プロセッサ320(プロセッサA2)に対応するソケット202でのアドレス変換について説明する。
この例では、制御テーブル420のアドレス変換テーブル有効セット数情報421が値「2」であるとする。この場合、上述したソケット201の場合と同様に、アドレス変換テーブル430のセット1およびセット2が使用される。
入力アドレスは「0x0001A5F0」とし、またセット1およびセット2に設定されている値は、次の内容であるとする(図9参照)。
(セット1)
入力ベースアドレス=0x00000000
アドレスマスク =0x0000FFFF
アドレスレングス =0x00000002
出力ベースアドレス=0x00030000
(セット2)
入力ベースアドレス=0x00030000
アドレスマスク =0x0000FFFF
アドレスレングス =0x00000001
出力ベースアドレス=0x00070000
アドレス変換部260は、入力アドレス=「0x0001A5F0」が上記セット1で示されるセット領域および上記セット2で示されるセット領域の何れのセット領域に含まれるか否かを判定(セットの判定)し、この判定した結果、セット1が適合すると判定する(図9の#1参照)。
このようにして判定処理を終了したアドレス変換部260は、入力アドレス=「0x0001A5F0」、適合したセット1の入力ベースアドレス=「0x00000000」、アドレスマスク=「0x0000FFFF」および出力ベースアドレス=「0x00030000」に基づきアドレス変換して(図9の#2参照)、出力アドレス=「0x0004A5F0」を生成する。
なお、図9において符号#1、#2は、図6に示す符号#1、#2(つまりS202,S203)に対応する。
ここで、アドレス変換処理過程について詳細に説明する。
最初にセット1に関して説明すると、入力ベースアドレス=「0x00000000」、アドレスレングス=「0x2」および入力アドレス=「0x0001A5F0」が、上述したソケット201(プロセッサ310)にかかわるセット1の場合と同じ値なので、上記図8のP1〜P3の処理の場合と同様に、ヒット・アドレスレングス=「0x1」となる(図10のP11〜P13参照)。
また、出力ベースアドレス=「0x00030000」、アドレスレングス=「0x2」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされるので、セット1の出力アドレスにかかわるセット領域は、「0x0003****」、「0x0004****」および「0x0005****」となる(図10のP14参照)。
そして、上述したようにヒット・アドレスレングス=「0x1」であるので、出力アドレスにかかわるセット領域のうち、「0x0004****」が採用される。
この「0x0004****」の上位2バイト「0004」と、入力アドレス=「0x0001A5F0」の下位2バイト「A5F0」とを基に、アドレス変換され(図10のP15参照)、出力アドレス=「0x0004A5F0」が生成される(図10のP16参照)。
次に、セット2の判定に関しては、そのセット2に設定されている値が上述したソケット201(プロセッサ310)にかかわるセット2に設定されている値と同じなので、上記図8のP7の処理の場合と同様のセット領域となり(図10のP17参照)、また、そのセット領域での入力アドレス=「0x0001A5F0」のセットの判定処理は、非適合となる(図10のP18参照)。
(3)プロセッサ330(プロセッサB1)に対応するソケット203でのアドレス変換について説明する。
この例では、制御テーブル420のアドレス変換テーブル有効セット数情報421が値「2」であるとする。この場合、アドレス変換テーブル430のセット1およびセット2が使用される。
入力アドレスは「0x00010000」とし、またセット1およびセット2に設定されている値は、次の内容であるとする(図11参照)。
(セット1)
入力ベースアドレス=0xFFFF0000
アドレスマスク =0x0000FFFF
アドレスレングス =0x00000000
出力ベースアドレス=0x00000000
(セット2)
入力ベースアドレス=0x00000000
アドレスマスク =0x0000FFFF
アドレスレングス =0x00000001
出力ベースアドレス=0x00070000
アドレス変換部260は、入力アドレス=「0x00010000」が上記セット1で示されるセット領域および上記セット2で示されるセット領域の何れのセット領域に含まれるか否かを判定(セットの判定)する(図11の#1参照)。
ここで、セット1の判定について説明する。
入力ベースアドレス=「0xFFFF0000」、アドレスレングス=「0x0」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされるので、セット2の入力アドレスにかかわるセット領域は、「0xFFFF****」となる。この「0xFFFF****」に入力アドレス=「0x00010000」は含まれないので、セット1の判定は非適合となる。そのため、次のセット2の判定が実施される。
次に、セット2の判定について説明する。
入力ベースアドレス=「0x00000000」、アドレスレングス=「0x1」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされるので、セット2の入力アドレスにかかわるセット領域は、「0x0000****」および「0x0001****」となる。
これらのセット領域に入力アドレス=「0x00010000」が含まれるかを確認した場合、ヒット・アドレスレングス=「0x1」となる。
また、出力ベースアドレス=「0x00070000」、アドレスレングス=「0x1」のときは、アドレスマスク=「0x0000FFFF」なので下位2バイトがマスクされるので、セット2の出力アドレスにかかわるセット領域は、「0x0007****」および「0x0008****」となる。
そして、上述したようにヒット・アドレスレングス=「0x1」であるので、出力アドレスにかかわるセット領域のうち、「0x0008****」が採用される。
この「0x0008****」の上位2バイト「0008」と、入力アドレス=「0x00010000」の下位2バイト「1000」とを基に、アドレス変換され(図11の#2参照)、出力アドレス=「0x00080000」が生成される。
なお、図11において符号#1、#2は、図6に示す符号#1、#2(つまりS202,S203)に対応する。
上述したようにして固有のメモリマップの情報に従って所定の処理を実行するプロセッサ310(プロセッサA1)、プロセッサ320(プロセッサA2)およびプロセッサ330(プロセッサB1)のそれぞれに対応するソケットでのアドレス変換処理が実施された後の、共有リソースのメモリマップの一例を、図12に示す。
図12に示すように、プロセッサ310(プロセッサA1)はメモリマップ510に従って所定の処理(例えば例外処理A1など(図では例外処理他A1))を実行するものとする。また、プロセッサ320(プロセッサA2)はメモリマップ520に従って所定の処理(例えば例外処理A2など(図では例外処理他A2))を実行するものとする。さらに、プロセッサ330(プロセッサB1)はメモリマップ530に従って所定の処理(例えば例外処理B1など(図では例外処理他B1))を実行するものとする。
レイヤ制御部200(のアドレス変換部260)が上述したアドレス変換処理(図7〜図11参照)を実施することにより、共通のメモリマップ(共有リソースのメモリマップ)540を構築する。
そのため、プロセッサ310(プロセッサA1)が「0x00000000」のアドレス(入力アドレス)に対し命令フェチ(例外処理A1など)を行った場合には、共有リソースのメモリマップ540の「0x00000000」のアドレスに対しアクセスされる。
また、プロセッサ320(プロセッサA2)が「0x00000000」のアドレス(入力アドレス)に対し命令フェチ(例外処理A2など)を行った場合には、共有リソースのメモリマップ540の「0x00030000」のアドレスに対しアクセスされる。
そのため、プロセッサ310(プロセッサA1)が「0xFFFF0000」のアドレス(入力アドレス)に対し命令フェチ(例外処理B1など)を行った場合は、共有リソースのメモリマップ540の「0x00060000」のアドレスに対しアクセスされる。
このようにメモリマップ540においては、3つのプロセッサ310〜330にかかわる例外処理に関して、連続したメモリマップに構築されている。
さらには、同種のプロセッサであるプロセッサ310およびプロセッサ320と、これらのプロセッサとは異種のプロセッサであるプロセッサ330にかかわる共有領域に関しても、メモリマップ540では、3つのプロセッサ310〜330にかかわる例外処理に関して、同一のメモリマップに構築されている。
上述したようにSOC10のレイヤ制御部200(のアドレス変換部260)によるアドレス変換処理により、図12の共有リソースのメモリマップ540に示すように、複数のプロセッサ310,320,330にかかわる処理のためのソフトウェア(プログラム)が連続した領域にメモリマップされるので、当該ソフトウェアが不連続の領域にメモリマップされている場合に比較して、メモリアクセス性能が向上する。
ところで、実施の形態1に係るSOCは、次の(a)〜(c)の処理工程をコンピュータに実行させることを特徴とするアドレス変換処理プログラムを実行する。
(a)固有のメモリマップに従って割り当てられる所定の情報(例外処理に対応するプログラム)に基づき所定の処理(例外処理)を実行する複数の処理手段に対応する複数のインタフェース手段(プロセッサやイニシエータ)に対応して、当該インタフェース手段を識別する識別情報(ソケット指定ID)と当該インタフェース手段にかかわる予め設定されるアドレス変換情報(制御テーブル(特にアドレス変換テーブル有効セット数)およびアドレス変換テーブル)とを対応付けて情報処理装置(SOC:システムオンチップ)に備えられた情報記憶手段(不揮発性メモリ110)に記憶する記憶処理過程。なお、この記憶処理過程は、複数の処理手段に対応する複数の所定の情報が連続して割り当てられ前記複数の処理手段にかかわる共通のメモリマップに対応するアドレス変換情報であって、処理手段ごとに予め設定されるアドレス変換情報を記憶する記憶処理過程を含んでいる。これらの記憶処理過程は、レイヤ管理部100によって実行される。
(b)所定のタイミング(SOCの電源投入およびリセット解除)に従って、前記記憶処理過程により記憶された識別情報およびアドレス変換情報を基に、当該識別情報に基づくインタフェース手段に対し当該識別情報に対応するアドレス変換情報を設定する設定処理過程。この設定処理過程は、レイヤ管理部100とレイヤ制御部200との協働により実行される。
(c)前記複数の処理手段の中の所定の処理手段から出力されるアドレス(入力アドレス)を、当該所定の処理手段に対応するインタフェース手段に設定されたアドレス変換情報を基にアドレス変換するアドレス変換処理過程。このアドレス変換処理過程は、レイヤ制御部200(のアドレス変換部260)によって実行される。
この場合、レイヤ管理部100は、上記(a)および(b)の処理に対応するソフトウェア(プログラム)や上述したレイヤ管理部100の機能を実現するためのソフトウェア(プログラム)を格納するメモリ(例えばROM)を有するプロセッサで実現される。このプロセッサがメモリからソフトウェアを読み出して実行することにより、上記(a)および(b)の処理や上述したレイヤ管理部100の機能が実現される。
また、レイヤ制御部200は、上記(b)および(c)の処理に対応するソフトウェア(プログラム)、上述したレイヤ制御部200の機能を実現するためのソフトウェア(プログラム)を格納するメモリ(例えばROM)を有するプロセッサで実現される。このプロセッサがメモリからソフトウェアを読み出して実行することにより、上記(b)および(c)の処理や上述したレイヤ制御部200の機能が実現される。
(実施の形態2)
次に、実施の形態2に係る情報処理装置を適用したSOC(システムオンチップ)について説明する。
この実施の形態2のSOCは、図1に示した実施の形態1のSOC10と同様の構成および機能を有している。
なお、実施の形態2では、情報処理装置(SOC10)の外部に位置する外部装置(コンピュータやライタ)から出力され、電源電圧が供給されるものの未使用状態に設定されている処理手段に対応するインタフェース手段を示す情報と、電源遮断を示す電源遮断情報とを受け付ける電源遮断情報受付手段は、例えばレイヤ管理部100のレイヤ管理情報・受信制御部130で実現される。
また、実施の形態2では、電源遮断情報受付手段(レイヤ管理情報・受信制御部130)が受け付けた情報を基に、未使用状態に設定されている処理手段(プロセッサあるいはイニシエータ)に向けて電源遮断情報を出力する電源遮断制御手段は、例えばレイヤ制御部200の制御テーブル部240で実現される。
さて、SOC10のレイヤ制御部200では、電源電圧が供給されるものの未使用状態に設定されているプロセッサあるいはイニシエータに対応するソケットは、SOC10の電源が投入された後、当該ソケットに対応する制御テーブル部240に設定されている電源遮断設定情報424に基づき電源遮断解除の指示を受け、リセット解除の指示をレイヤ管理部100から受けるまでは、当該ソケットに対応するプロセッサあるいはイニシエータの電源を遮断したままにし、その指示状態になった後に、電源遮断制御を解除する。
これにより、電源電圧が供給されるものの未使用状態に設定されているプロセッサあるいはイニシエータにおいては、電源遮断あるいはクロック停止が実施される。これは、プロセッサあるいはイニシエータの消費電力の低減を意味する。
ところで、実施の形態1または実施の形態2においては、SOC10を有する画像処理装置、該処理装置を有する画像形成装置、該画像形成装置を含む画像形成システムを構築することができる。
図13は、SOC10を有する画像処理装置を備えた画像形成装置を含む画像形成システムの構成を示している。
図13に示すように、画像形成システム1は、コンピュータなどのクライアント装置20と画像形成装置としてのプリンタ30とが通信回線40を介して接続される。
クライアント装置20は、処理装置として機能するものであり、CPU(Central
Processing Unit:中央演算処理装置)21、ハードディスクなどの記憶装置22、RAM(Random
Access Memory:随時書き込み読み出しメモリ)などのメモリ23および通信インタフェース(以下「通信I/F」という)24を備えている。
記憶装置22は、文書の生成や印刷要求を発行するアプリケーションソフトウェア、プリンタドライバ、画像データ(印刷データ)など各種のデータを記憶する。
メモリ23は、記憶装置22から読み出されたプログラムやデータを記憶する。
通信I/F24は、通信回線40を介して、プリンタ30との間でデータの送受信を行うインタフェースである。
CPU21は、クライアント装置20全体を制御するものであり、例えば、記憶装置22からメモリ23へプリンタドライバを読み込んで実行する。これにより、プリンタドライバは、画像データ(印刷データ)をプリンタ20に向けて送信する。
画像形成装置として機能するプリンタ30は、SOC10を有する画像処理装置50と出力装置35とを備えている。
画像処理装置50は、SOC10に加えて、CPU31、ハードディスクなどの記憶装置32、RAMなどのメモリ33および通信I/F34を備えている。
記憶装置32は、印刷処理を実施するのに必要な各種のプログラムやデータを記憶している。
通信I/F34は、通信回線40を介して、クライアント装置20との間でデータの送受信を行うインタフェースであり、例えば、クライアント装置20(のプリンタドライバ)から送信された画像データ(印刷データ)を受信する。
メモリ33は、記憶装置22から読み出されたプログラムやデータ、通信I/F34を介して受信された印刷情報などを記憶する。
CPU31は、プリンタ20全体を制御するものであり、例えば、記憶装置32からメモリ23へ制御プログラムなどの所定のプログラムを読み込んで実行することにより、画像処理を実施する。この画像処理を実施するに際し、CPU31は、例えば、当該画像処理の少なくとも一部をSOC10に分担させ、このSOC10との協働により、画像処理を実施する。
出力装置35は、画像形成処理を実施する画像形成処理部であり、受け付けた画像データに基づいて印刷処理を実行する。
この場合、画像処理の少なくとも一部の処理に対応するソフトウェア(プログラム)が連続した領域にメモリマップされるので、当該ソフトウェアが不連続の領域にメモリマップされている場合に比較して、メモリアクセス性能が向上する。これは、当該ソフトウェアが不連続の領域にメモリマップされている場合に比較して、例えばSOC10内のプロセッサによる、メモリアクセスにより得られる画像処理用のソフトウェア(プログラム)の実行による画像処理が迅速に実行され、結果的に印刷の待ち時間が短縮することを意味する。
通信回線40としては、ローカルエリアネットワーク(LAN:Local
Area Network)や電話回線などの有線通信回線、無線LANなどの無線通信回線、さらには、これらの通信回線を組み合わせたもの、などが挙げられる。
本願明細書において、SOCのレイヤ管理部およびレイヤ制御部の各機能を実現するプログラムを記録媒体としてのROM等のメモリに記録する実施形態として説明したが、当該所定のプログラムを次のようにして提供することも可能である。
また、上記所定のプログラムを、DVD−ROM、CD−ROM、MO(光磁気ディスク)、フレキシブルディスク、などのコンピュータ読み取り可能な記録媒体に格納して配布するようにしても良い。この場合、その記録媒体に記録されたプログラムをSOC内のメモリにインストールした後、このプログラムをメモリ管理部およびメモリ制御部の各機能を実現するプロセッサが実行するようにする。