情報処理装置およびマルチコアシステム
【課題】アドレス空間を適切に保護することが可能な情報処理装置およびマルチコアシステムに関する。
【解決手段】実施形態によれば、情報処理装置は、演算部と、アドレス保護部とを備える。アドレス保護部は、前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、前記受信したアドレス保護情報を記憶するアドレステーブルと、前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有する。
【解決手段】実施形態によれば、情報処理装置は、演算部と、アドレス保護部とを備える。アドレス保護部は、前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、前記受信したアドレス保護情報を記憶するアドレステーブルと、前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置およびマルチコアシステムに関する。
【背景技術】
【0002】
近年のパーソナルコンピュータでは、複数の演算装置でメモリやキャッシュを共有するマルチコアシステムが用いられる。これにより、メモリやキャッシュに対して複数のコアからアクセスでき、メモリ資源を効率よく利用できる。マルチコアシステムでは、複数のプログラムが同じアドレス空間で動作しているため、アドレス空間を適切に保護しなければならない。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−46969号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
アドレス空間を適切に保護することが可能な情報処理装置およびマルチコアシステムに関する。
【課題を解決するための手段】
【0005】
実施形態によれば、情報処理装置は、演算部と、アドレス保護部とを備える。アドレス保護部は、前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、前記受信したアドレス保護情報を記憶するアドレステーブルと、前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有する。
【図面の簡単な説明】
【0006】
【図1】第1の実施形態に係る情報処理装置100の概略ブロック図。
【図2】アドレス保護部2の内部構成を示す概略ブロック図。
【図3】アドレステーブル22に記憶されるアドレス保護情報の一例を示す図。
【図4】アドレス保護部2の処理動作の一例を示すフローチャート。
【図5】アドレステーブル22に記憶されるアドレス保護情報の一例を示す図。
【図6】タスクに応じたアドレス保護を行うための制御レジスタ41の構成を示す図。
【図7】アドレス保護部2の処理動作の一例を示すフローチャート。
【図8】マルチコアシステムの概略ブロック図。
【図9】アドレス保護部2aの内部構成を示す概略ブロック図。
【図10】アドレス情報を共有するための制御レジスタ42の構成を示す図。
【図11】制御レジスタ43の構成を示す図。
【図12】制御レジスタ44の構成を示す図。
【図13】アドレステーブル22に記憶されるアドレス保護情報の一例を示す図。
【図14】アドレス保護部2bの内部構成を示す概略ブロック図。
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照しながら具体的に説明する。
【0008】
(第1の実施形態)
図1は、第1の実施形態に係る情報処理装置100の概略ブロック図である。情報処理装置100は、演算部1と、アドレス保護部2とを備えている。また、不図示のキャッシュあるいはメモリが設けられ、演算部1は所定のアドレスを指定して、これらにアクセス(書き込みまたは読み出し)するものとする。
【0009】
演算部1は、例えばCPU(Central Processing Unit)であり、アドレス保護部2へレジスタアクセスを行い、あるアドレスへのアクセスを許可するか否かを示すアドレス保護情報をアドレス保護部2に設定する。アドレス保護部2は、演算部1からアクセス情報、すなわち、あるアドレスへのアクセスが可能か否かの問い合わせを受信すると、設定されたアドレス保護情報に基づき、指定されたアドレスへのアクセスが可能か否かを判定する。アドレス保護部2は、アクセス不可と判定された場合、割り込み信号を演算部1に送信する。演算部1は、割り込み信号を受信することで、アクセスが禁止されたアドレスにアクセスを試みたことを知ることができる。
【0010】
図2は、アドレス保護部2の内部構成を示す概略ブロック図である。アドレス保護部2は、レジスタアクセスインターフェース21と、アドレステーブル22と、アクセス判定部23とを有する。
レジスタアクセスインターフェース21は、演算部1からのレジスタアクセスを受け、アドレス保護情報をアドレステーブル22に書き込む。アクセス判定部23は、演算部1からアクセス情報を受信すると、アドレステーブル22に設定されたアドレス保護情報に基づき、アクセス可能か否かを判定するとともに、アクセス不可と判定された場合、割り込み信号を演算部1に送信する。
【0011】
図3は、アドレステーブル22に記憶されるアドレス保護情報の一例を示す図である。アドレス保護情報は、例えばそれぞれが32ビットの第1〜第3フィールド31〜33を含む。
第1フィールド31にはアクセスが禁止されるアドレス空間の開始アドレスSAが設定される。第2フィールド32にはアクセスが禁止されるアドレス空間の終了アドレスEAが設定される。第3フィールド33の3ビット目には書き込みを許可するか否かを示す情報WE(Write Enable、第1の情報)が、2ビット目には読み出しを許可するか否かを示す情報RE(Read Enable、第2の情報)が設定される。いずれも、ハイに設定されるとアクセス許可であり、ロウに設定されるとアクセス禁止であることを示す。また、第3フィールド33の1ビット目には第1〜第3フィールド31〜33に設定されたアドレス保護情報が有効か否かを示す情報VLDが設定され、ハイであれば有効、ロウであれば無効であることを示す。なお、RESERVEDと表記された他のビットは本実施形態では用いられない。
【0012】
例えば、アドレス空間0x1000_0000〜0x2000_0000への書き込みを禁止する場合、演算部1からレジスタアクセスを行い、アドレス保護情報として、SA=0x1000_0000,EA=0x2000_0000,WE=0,RE=1,VLD=1に設定する。
アドレステーブル22は複数セットの第1〜第3フィールド31〜33を記憶できるようにしてもよく、これにより複数のアドレス空間についてのアドレス保護情報を設定できる。
【0013】
図4は、アドレス保護部2の処理動作の一例を示すフローチャートである。ここでは、アドレステーブル22にはすでにアドレス保護情報が設定されているものとする。
演算部1からアクセス情報を受信すると、アクセス判定部23はアドレステーブル22内の第3フィールド33に含まれる情報VLDを確認する(S1)。VLD=0である場合(S1のNO)、アドレス保護情報が無効であるため、アクセス判定部23はアクセス可と判定する(S30)。一方、VLD=1である場合(S1のYES)、アクセス判定部23はアドレステーブル22を参照し、指定されたアドレスが開始アドレスSA〜終了アドレスEAに含まれるか否かを確認する(S5)。
【0014】
含まれない場合(S5のNO)、指定されたアドレスはアクセスが禁止されるアドレス空間には含まれないので、アクセス判定部23はアクセス可と判定する(S30)。一方、含まれる場合(S5のYES)、アクセスが書き込みアクセスであり(S10のYES)かつWE=0の場合(S15のYES)、または、アクセスが読み出しアクセスであり(S10のNO)かつRE=0の場合(S20のYES)、アクセスが禁止されたアドレス空間へのアクセスであるので、アクセス判定部23はアクセス不可と判定し、割り込み信号を演算部1へ送信する(S25)。その他の場合、アクセス判定部23はアクセス可と判定する(S30)。
【0015】
なお、図4の判定の順序は適宜入れ替えてもよい。以上のようにして、アドレス保護部2は、演算部1からのアクセス情報に対し、アクセス可能か否かを判定できる。例えば、上述のようにアドレス保護情報が設定された場合、アドレス0x1800_0000への書き込みは、S1のYES,S5のYES,S10のYES,S15のYESにより、アクセス不可と判定される(S25)。また、アドレス0x1800_0000への読み出しは、S1のYES,S5のYES,S10のNO,S20のNOにより、アクセス可と判定される(S30)。また、アドレス0x2300_0000への書き込みは、S1のYES,S5のNOによりアクセス可と判定される(S30)。
【0016】
このように、第1の実施形態では、予めアドレス保護情報をアドレステーブル22に設定しておき、演算部1が指定したアドレスへのアクセスが可能か否かを判定するため、アドレス空間を適切に保護することができる。また、アクセス不可の場合、割り込み信号が生成されるため、アクセス不可であることを簡易に検出できる。
【0017】
(第2の実施形態)
演算部1は、音声再生と映像再生等、複数のタスクを実行できる。この場合、1つのタスク実行中にはアクセスを許可するが、他のタスク実行中にはアクセスを禁止したいことがある。そこで、第2の実施形態は、特定のタスクに対してアドレス空間を保護するものである。
【0018】
図5は、アドレステーブル22に記憶されるアドレス保護情報の一例を示す図である。アドレス保護情報は、図3と同様の第1および第2フィールド31,32と、図3とは異なる第3フィールド33aとを含む。第3フィールド33aの17〜32ビット目には、アクセスを許可するタスクの識別番号ETID(Enabled Task ID)が設定され、4ビット目には、タスクに応じたアドレス保護を行うか否かを示す情報TIDEが設定される。タスクの識別番号はタスクごとに固有に割り当てられるものとする。
【0019】
図6は、タスクに応じたアドレス保護を行うための制御レジスタ41の構成を示す図である。アドレステーブル22は、図5のアドレス保護情報に加え、制御レジスタ41に設定される値を記憶する。制御レジスタ41の1〜16ビット目には、演算部1が現在実行中のタスクの識別番号TIDが設定される。
【0020】
例えば、演算部1が識別番号0のタスクと識別番号1のタスクとを実行している場合、タスクを切り替える度に、演算部1はレジスタアクセスを行って、現在実行中のタスクの識別番号TIDを0または1に更新する。そして、例えば、識別番号0のタスクにのみアドレス空間0x1000_0000〜0x2000_0000への書き込みおよび読み出しを許可する場合、演算部1からレジスタアクセスを行って、アドレス保護情報として、SA=0x1000_0000,EA=0x2000_0000,ETID=0,TIDE=1,WE=1,RE=1,VLD=1に設定する。
【0021】
図7は、アドレス保護部2の処理動作の一例を示すフローチャートである。以下、図4との相違点を中心に説明する。VLD=1である場合(S1のYES)、TIDE=1であり、かつ、現在実行中のタスクの識別番号TIDと、アクセスを許可するタスクの識別番号ETIDとが一致しない場合(S3のYES)、現在実行中のタスクからのアクセスは許可されていないので、アクセス不可と判定し、割り込み信号を演算部1へ送信する(S25)。その他の場合(S3のNO)、より具体的には、タスクに応じたアドレス保護を行わない場合(TIDE=0)、および、タスクに応じたアドレス保護を行うが、現在実行中のタスクがアクセスが許可され得るタスクである場合(TIDE=1かつETID=TID)、図4と同様に、アクセス判定部23はS5〜S20の処理によりアクセス可能か否かを判定する。
【0022】
例えば、上述のようにアドレス保護情報が設定され、TID=0の場合、アドレス0x1800_0000への読み出しは、S1のYES,S3のNO,S5のYES,S10のNO,S20のNOにより、アクセス可と判定される(S30)。また、アドレス0x1800_0000への書き込みは、S1のYES,S3のNO,S5のYES,S10のYES,S15のNOにより、アクセス可と判定される(S30)。また、TID=1の場合、いずれのアドレスへの書き込みおよび読み出しも、S1のYESおよびS3のYESにより、アクセス不可と判定される(S25)。
【0023】
このように、第2の実施形態では、アクセスを許可するタスクの識別番号がアドレス保護情報に含まれるため、演算部1が複数のタスクを実行する場合でも、一つのタスクにはアクセスを許可して他のタスクにはアクセスを禁止することができ、タスクに応じてアドレス空間を保護することができる。
【0024】
(第3の実施形態)
第3の実施形態は、複数の情報処理装置を備えるマルチコアシステムにおいて、アドレス保護情報を共有するものである。
図8は、マルチコアシステムの概略ブロック図である。マルチコアシステムは、それぞれが演算部1とアドレス保護部2aとを有する複数の情報処理装置100aと、これらの間でデータ通信を行うバス200とを備えている。
【0025】
図9は、アドレス保護部2aの内部構成を示す概略ブロック図である。図9では、図2と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。アドレス保護部2aはさらにバスインターフェース(送受信部)24を有する。バスインターフェース24は、アドレステーブル22に記憶されたアドレス保護情報を他の情報処理装置100aのアドレス保護部2aに送信したり、他のアドレス保護部2aからアドレス保護情報を受信したりする。
【0026】
図10は、アドレステーブル22に記憶される、アドレス情報を共有するための制御レジスタ42の構成を示す図である。第3の実施形態では、アドレステーブル22が、図3あるいは図5に示すアドレス保護情報を8セット設定可能な例を示す。制御レジスタ42の9〜11ビット目には、8セットのうち、共有する1セットを示す番号ENTRYNOを設定し、1,2ビット目には共有開始を示すコマンドCMDが設定される。
【0027】
演算部1からのレジスタアクセスにより、コマンドCMDが0b01、すなわち、制御レジスタ42の2ビット目がロウかつ1ビット目がハイに設定されると、バスインターフェース24は、アドレス保護情報のうち、共有する番号ENTRYNOに対応するアドレス保護情報を、バス200を介して、他の全ての情報処理装置100aのアドレス保護部2aに送信する。
【0028】
一方、アドレス保護情報を受信した情報処理装置100a内のレジスタアクセスインターフェース21は、受信したアドレス保護情報を自らのアドレステーブル22に設定する。これにより、複数の情報処理装置100a間でアドレス保護情報を共有できる。例えば、ある情報処理装置100aが内部に設けられたキャッシュ(不図示)のアドレス空間0x1000_0000〜0x2000_0000に排他的に書き込みを行いたい場合、まず、アドレス保護情報としてSA=0x1000_0000,EA=0x2000_0000,WE=0,RE=1,VLD=1を自らのアドレステーブル22に設定する。そして、情報処理装置100aはこのアドレス保護情報を他の情報処理装置100aに送信し、これを共有する。その後、WE=1に更新し、このアドレス保護情報を他の情報処理装置100aに送信しないようにすればよい。
【0029】
アドレス保護情報を送信しても、他の情報処理装置100aがこれを受信するまではアドレスへのアクセスが禁止されない。そこで、アドレステーブル22は図11に示す制御レジスタ43をさらに記憶してもよい。制御レジスタ43の1ビット目には、アドレス保護情報を他の情報処理装置100aに送信したことを示す情報BSTATが設定される。通常、情報BSTATはロウに設定されているが、バスインターフェース24がアドレス保護情報を送信すると、情報BSTATはハイに設定される。情報BSTATがハイである期間では、アドレス保護情報の共有が完了しておらず、アドレスを適切に保護できない可能性がある。したがって、アドレス保護情報で設定されるアドレス空間へのアクセスは禁止される。
【0030】
一方、アドレス保護情報を受信した情報処理装置100aのレジスタアクセスインターフェース21は、受信したアドレス保護情報をアドレステーブル22に設定すると、バスインターフェース24を介して、その旨を送信元の情報処理装置100aへ送信する。これに応じて、送信元の情報処理装置100aは、制御レジスタ43の情報BSTATをロウに設定する。これにより、アドレス保護情報の共有動作が完了し、アドレス空間へのアクセスが可能になる。
【0031】
このように、第3の実施形態では、アドレス保護情報を共有するため、複数の情報処理装置100aで効率よくアドレス空間を適切に保護できる。また、アクセスのたびにアドレス保護情報を複数の情報処理装置100aで共有するのではなく、予めアドレス保護情報を1つの情報処理装置100aから他の情報処理装置100aへ送信して共有するため、情報処理装置100a間の通信量を抑制できる。
【0032】
(第4の実施形態)
第3の実施形態では、全ての情報処理装置100aでアドレス保護情報を共有するものであった。これに対し、複数の情報処理装置100aが同じ論理アドレス空間で動作していても物理アドレスが異なることもあるため、第4の実施形態では、一部の情報処理装置100aでアドレス空間を共有するものである。
【0033】
図12は、一部の情報処理装置100aでアドレス空間を共有するための制御レジスタ44の構成を示す図である。制御レジスタ44の1〜16ビット目にはアドレス保護情報を共有する情報処理装置100aに共通する識別番号GID(Group ID)が設定される。
【0034】
また、図13は、アドレステーブル22に記憶されるアドレス保護情報の一例を示す図である。アドレス保護情報は、図3または図5の第3フィールド33(33a)に代えて、図13に示す第3フィールド33bを含む。第3フィールド33bの5ビット目には一部の情報処理装置100aでアドレス保護情報を共有することを示す情報GIDEが設定される。より具体的には、情報GIDEがハイに設定されると一部の情報処理装置100aで、ロウに設定されると全ての情報処理装置100aで、アドレス情報を共有する。なお、第3フィールド33bのタスク識別番号ETIDおよび情報TIDEは省略されてもよい。
【0035】
情報処理装置100aは、第1〜第3フィールド31〜33bの内容を含むアドレス保護情報に加え、識別番号GIDを送信する。例えば、SA=0x1000_0000,EA=0x2000_0000,GIDE=1,WE=0,RE=1,VLD=1のアドレス保護情報およびGID=2を1つの情報処理装置100aが送信すると、他の情報処理装置100aのうち、自らの制御レジスタ44がGID=2に設定された情報処理装置100a内のレジスタアクセスインターフェース21は、受信したアドレス保護情報をアドレステーブル22に設定する。一方、GID=2に設定されていない情報処理装置100aは受信したアドレス情報を破棄する。
【0036】
したがって、他の情報処理装置100aであってGID=2に設定された情報処理装置100aにおいては、例えばアドレス0x1800_0000への書き込みは禁止されるが、GID=2に設定されていない情報処理装置100aにおいて同様のアクセスは許可される。
【0037】
このように、第4の実施形態では、アドレス保護情報を共有する情報処理装置100a間で共通する識別番号GIDを含むアドレス保護情報を送受信するため、一部の情報処理装置100aでアドレス情報を適切に保護できる。また、アドレス保護情報を共有する情報処理装置100aのみに選択的に送信するわけではなく、受信した情報処理装置100aにおいてアドレス保護情報を設定するか破棄するかを判断できるため、アドレス保護部2aの構成を簡略化できる。
【0038】
(第5の実施形態)
第3および第4の実施形態では、バスインターフェース24を設け、バス200を介してアドレス保護情報を送受信するものであった。これに対し、第5の実施形態は、アドレス保護情報をパケット化して送受信するものである。
【0039】
図14は、アドレス保護部2bの内部構成を示す概略ブロック図である。アドレス保護部2bは、図8のバスインターフェース24に代えて、送受信部として、パケット送信部24aおよびパケット受信部24bを有する。
【0040】
パケット送信部24aは、アドレス保護情報をパケット化し、パケット化されたネットワークに対してブロードキャストパケットを送信する。パケットは、宛先情報が格納されるヘッダと、データが格納されるボディと、ボディの終端を示すテイラとを含む。そして、アドレス保護情報はボディおよびテイラに格納される。一方、パケット受信部24bは、受信したパケットを解読し、パケットに含まれるアドレス保護情報をアドレステーブル22に設定する。
【0041】
このように、第5の実施形態では、アドレス保護情報専用のバスを設ける必要がないので、実装コストを削減できる。また、パケット化されたネットワークでは通信が局所的に行われるため、バスを設けるよりもマルチコアシステム全体の性能に対する影響も小さくなる。
【0042】
本実施形態で説明したマルチコアシステムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、マルチコアシステムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。また、マルチコアシステムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0043】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0044】
1 演算部
2,2a アドレス保護部
21 レジスタアクセスインターフェース
22 アドレステーブル
23 アクセス判定部
24 バスインターフェース
24a パケット送信部
24b パケット受信部
100,100a 情報処理装置
【技術分野】
【0001】
本発明の実施形態は、情報処理装置およびマルチコアシステムに関する。
【背景技術】
【0002】
近年のパーソナルコンピュータでは、複数の演算装置でメモリやキャッシュを共有するマルチコアシステムが用いられる。これにより、メモリやキャッシュに対して複数のコアからアクセスでき、メモリ資源を効率よく利用できる。マルチコアシステムでは、複数のプログラムが同じアドレス空間で動作しているため、アドレス空間を適切に保護しなければならない。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−46969号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
アドレス空間を適切に保護することが可能な情報処理装置およびマルチコアシステムに関する。
【課題を解決するための手段】
【0005】
実施形態によれば、情報処理装置は、演算部と、アドレス保護部とを備える。アドレス保護部は、前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、前記受信したアドレス保護情報を記憶するアドレステーブルと、前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有する。
【図面の簡単な説明】
【0006】
【図1】第1の実施形態に係る情報処理装置100の概略ブロック図。
【図2】アドレス保護部2の内部構成を示す概略ブロック図。
【図3】アドレステーブル22に記憶されるアドレス保護情報の一例を示す図。
【図4】アドレス保護部2の処理動作の一例を示すフローチャート。
【図5】アドレステーブル22に記憶されるアドレス保護情報の一例を示す図。
【図6】タスクに応じたアドレス保護を行うための制御レジスタ41の構成を示す図。
【図7】アドレス保護部2の処理動作の一例を示すフローチャート。
【図8】マルチコアシステムの概略ブロック図。
【図9】アドレス保護部2aの内部構成を示す概略ブロック図。
【図10】アドレス情報を共有するための制御レジスタ42の構成を示す図。
【図11】制御レジスタ43の構成を示す図。
【図12】制御レジスタ44の構成を示す図。
【図13】アドレステーブル22に記憶されるアドレス保護情報の一例を示す図。
【図14】アドレス保護部2bの内部構成を示す概略ブロック図。
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照しながら具体的に説明する。
【0008】
(第1の実施形態)
図1は、第1の実施形態に係る情報処理装置100の概略ブロック図である。情報処理装置100は、演算部1と、アドレス保護部2とを備えている。また、不図示のキャッシュあるいはメモリが設けられ、演算部1は所定のアドレスを指定して、これらにアクセス(書き込みまたは読み出し)するものとする。
【0009】
演算部1は、例えばCPU(Central Processing Unit)であり、アドレス保護部2へレジスタアクセスを行い、あるアドレスへのアクセスを許可するか否かを示すアドレス保護情報をアドレス保護部2に設定する。アドレス保護部2は、演算部1からアクセス情報、すなわち、あるアドレスへのアクセスが可能か否かの問い合わせを受信すると、設定されたアドレス保護情報に基づき、指定されたアドレスへのアクセスが可能か否かを判定する。アドレス保護部2は、アクセス不可と判定された場合、割り込み信号を演算部1に送信する。演算部1は、割り込み信号を受信することで、アクセスが禁止されたアドレスにアクセスを試みたことを知ることができる。
【0010】
図2は、アドレス保護部2の内部構成を示す概略ブロック図である。アドレス保護部2は、レジスタアクセスインターフェース21と、アドレステーブル22と、アクセス判定部23とを有する。
レジスタアクセスインターフェース21は、演算部1からのレジスタアクセスを受け、アドレス保護情報をアドレステーブル22に書き込む。アクセス判定部23は、演算部1からアクセス情報を受信すると、アドレステーブル22に設定されたアドレス保護情報に基づき、アクセス可能か否かを判定するとともに、アクセス不可と判定された場合、割り込み信号を演算部1に送信する。
【0011】
図3は、アドレステーブル22に記憶されるアドレス保護情報の一例を示す図である。アドレス保護情報は、例えばそれぞれが32ビットの第1〜第3フィールド31〜33を含む。
第1フィールド31にはアクセスが禁止されるアドレス空間の開始アドレスSAが設定される。第2フィールド32にはアクセスが禁止されるアドレス空間の終了アドレスEAが設定される。第3フィールド33の3ビット目には書き込みを許可するか否かを示す情報WE(Write Enable、第1の情報)が、2ビット目には読み出しを許可するか否かを示す情報RE(Read Enable、第2の情報)が設定される。いずれも、ハイに設定されるとアクセス許可であり、ロウに設定されるとアクセス禁止であることを示す。また、第3フィールド33の1ビット目には第1〜第3フィールド31〜33に設定されたアドレス保護情報が有効か否かを示す情報VLDが設定され、ハイであれば有効、ロウであれば無効であることを示す。なお、RESERVEDと表記された他のビットは本実施形態では用いられない。
【0012】
例えば、アドレス空間0x1000_0000〜0x2000_0000への書き込みを禁止する場合、演算部1からレジスタアクセスを行い、アドレス保護情報として、SA=0x1000_0000,EA=0x2000_0000,WE=0,RE=1,VLD=1に設定する。
アドレステーブル22は複数セットの第1〜第3フィールド31〜33を記憶できるようにしてもよく、これにより複数のアドレス空間についてのアドレス保護情報を設定できる。
【0013】
図4は、アドレス保護部2の処理動作の一例を示すフローチャートである。ここでは、アドレステーブル22にはすでにアドレス保護情報が設定されているものとする。
演算部1からアクセス情報を受信すると、アクセス判定部23はアドレステーブル22内の第3フィールド33に含まれる情報VLDを確認する(S1)。VLD=0である場合(S1のNO)、アドレス保護情報が無効であるため、アクセス判定部23はアクセス可と判定する(S30)。一方、VLD=1である場合(S1のYES)、アクセス判定部23はアドレステーブル22を参照し、指定されたアドレスが開始アドレスSA〜終了アドレスEAに含まれるか否かを確認する(S5)。
【0014】
含まれない場合(S5のNO)、指定されたアドレスはアクセスが禁止されるアドレス空間には含まれないので、アクセス判定部23はアクセス可と判定する(S30)。一方、含まれる場合(S5のYES)、アクセスが書き込みアクセスであり(S10のYES)かつWE=0の場合(S15のYES)、または、アクセスが読み出しアクセスであり(S10のNO)かつRE=0の場合(S20のYES)、アクセスが禁止されたアドレス空間へのアクセスであるので、アクセス判定部23はアクセス不可と判定し、割り込み信号を演算部1へ送信する(S25)。その他の場合、アクセス判定部23はアクセス可と判定する(S30)。
【0015】
なお、図4の判定の順序は適宜入れ替えてもよい。以上のようにして、アドレス保護部2は、演算部1からのアクセス情報に対し、アクセス可能か否かを判定できる。例えば、上述のようにアドレス保護情報が設定された場合、アドレス0x1800_0000への書き込みは、S1のYES,S5のYES,S10のYES,S15のYESにより、アクセス不可と判定される(S25)。また、アドレス0x1800_0000への読み出しは、S1のYES,S5のYES,S10のNO,S20のNOにより、アクセス可と判定される(S30)。また、アドレス0x2300_0000への書き込みは、S1のYES,S5のNOによりアクセス可と判定される(S30)。
【0016】
このように、第1の実施形態では、予めアドレス保護情報をアドレステーブル22に設定しておき、演算部1が指定したアドレスへのアクセスが可能か否かを判定するため、アドレス空間を適切に保護することができる。また、アクセス不可の場合、割り込み信号が生成されるため、アクセス不可であることを簡易に検出できる。
【0017】
(第2の実施形態)
演算部1は、音声再生と映像再生等、複数のタスクを実行できる。この場合、1つのタスク実行中にはアクセスを許可するが、他のタスク実行中にはアクセスを禁止したいことがある。そこで、第2の実施形態は、特定のタスクに対してアドレス空間を保護するものである。
【0018】
図5は、アドレステーブル22に記憶されるアドレス保護情報の一例を示す図である。アドレス保護情報は、図3と同様の第1および第2フィールド31,32と、図3とは異なる第3フィールド33aとを含む。第3フィールド33aの17〜32ビット目には、アクセスを許可するタスクの識別番号ETID(Enabled Task ID)が設定され、4ビット目には、タスクに応じたアドレス保護を行うか否かを示す情報TIDEが設定される。タスクの識別番号はタスクごとに固有に割り当てられるものとする。
【0019】
図6は、タスクに応じたアドレス保護を行うための制御レジスタ41の構成を示す図である。アドレステーブル22は、図5のアドレス保護情報に加え、制御レジスタ41に設定される値を記憶する。制御レジスタ41の1〜16ビット目には、演算部1が現在実行中のタスクの識別番号TIDが設定される。
【0020】
例えば、演算部1が識別番号0のタスクと識別番号1のタスクとを実行している場合、タスクを切り替える度に、演算部1はレジスタアクセスを行って、現在実行中のタスクの識別番号TIDを0または1に更新する。そして、例えば、識別番号0のタスクにのみアドレス空間0x1000_0000〜0x2000_0000への書き込みおよび読み出しを許可する場合、演算部1からレジスタアクセスを行って、アドレス保護情報として、SA=0x1000_0000,EA=0x2000_0000,ETID=0,TIDE=1,WE=1,RE=1,VLD=1に設定する。
【0021】
図7は、アドレス保護部2の処理動作の一例を示すフローチャートである。以下、図4との相違点を中心に説明する。VLD=1である場合(S1のYES)、TIDE=1であり、かつ、現在実行中のタスクの識別番号TIDと、アクセスを許可するタスクの識別番号ETIDとが一致しない場合(S3のYES)、現在実行中のタスクからのアクセスは許可されていないので、アクセス不可と判定し、割り込み信号を演算部1へ送信する(S25)。その他の場合(S3のNO)、より具体的には、タスクに応じたアドレス保護を行わない場合(TIDE=0)、および、タスクに応じたアドレス保護を行うが、現在実行中のタスクがアクセスが許可され得るタスクである場合(TIDE=1かつETID=TID)、図4と同様に、アクセス判定部23はS5〜S20の処理によりアクセス可能か否かを判定する。
【0022】
例えば、上述のようにアドレス保護情報が設定され、TID=0の場合、アドレス0x1800_0000への読み出しは、S1のYES,S3のNO,S5のYES,S10のNO,S20のNOにより、アクセス可と判定される(S30)。また、アドレス0x1800_0000への書き込みは、S1のYES,S3のNO,S5のYES,S10のYES,S15のNOにより、アクセス可と判定される(S30)。また、TID=1の場合、いずれのアドレスへの書き込みおよび読み出しも、S1のYESおよびS3のYESにより、アクセス不可と判定される(S25)。
【0023】
このように、第2の実施形態では、アクセスを許可するタスクの識別番号がアドレス保護情報に含まれるため、演算部1が複数のタスクを実行する場合でも、一つのタスクにはアクセスを許可して他のタスクにはアクセスを禁止することができ、タスクに応じてアドレス空間を保護することができる。
【0024】
(第3の実施形態)
第3の実施形態は、複数の情報処理装置を備えるマルチコアシステムにおいて、アドレス保護情報を共有するものである。
図8は、マルチコアシステムの概略ブロック図である。マルチコアシステムは、それぞれが演算部1とアドレス保護部2aとを有する複数の情報処理装置100aと、これらの間でデータ通信を行うバス200とを備えている。
【0025】
図9は、アドレス保護部2aの内部構成を示す概略ブロック図である。図9では、図2と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。アドレス保護部2aはさらにバスインターフェース(送受信部)24を有する。バスインターフェース24は、アドレステーブル22に記憶されたアドレス保護情報を他の情報処理装置100aのアドレス保護部2aに送信したり、他のアドレス保護部2aからアドレス保護情報を受信したりする。
【0026】
図10は、アドレステーブル22に記憶される、アドレス情報を共有するための制御レジスタ42の構成を示す図である。第3の実施形態では、アドレステーブル22が、図3あるいは図5に示すアドレス保護情報を8セット設定可能な例を示す。制御レジスタ42の9〜11ビット目には、8セットのうち、共有する1セットを示す番号ENTRYNOを設定し、1,2ビット目には共有開始を示すコマンドCMDが設定される。
【0027】
演算部1からのレジスタアクセスにより、コマンドCMDが0b01、すなわち、制御レジスタ42の2ビット目がロウかつ1ビット目がハイに設定されると、バスインターフェース24は、アドレス保護情報のうち、共有する番号ENTRYNOに対応するアドレス保護情報を、バス200を介して、他の全ての情報処理装置100aのアドレス保護部2aに送信する。
【0028】
一方、アドレス保護情報を受信した情報処理装置100a内のレジスタアクセスインターフェース21は、受信したアドレス保護情報を自らのアドレステーブル22に設定する。これにより、複数の情報処理装置100a間でアドレス保護情報を共有できる。例えば、ある情報処理装置100aが内部に設けられたキャッシュ(不図示)のアドレス空間0x1000_0000〜0x2000_0000に排他的に書き込みを行いたい場合、まず、アドレス保護情報としてSA=0x1000_0000,EA=0x2000_0000,WE=0,RE=1,VLD=1を自らのアドレステーブル22に設定する。そして、情報処理装置100aはこのアドレス保護情報を他の情報処理装置100aに送信し、これを共有する。その後、WE=1に更新し、このアドレス保護情報を他の情報処理装置100aに送信しないようにすればよい。
【0029】
アドレス保護情報を送信しても、他の情報処理装置100aがこれを受信するまではアドレスへのアクセスが禁止されない。そこで、アドレステーブル22は図11に示す制御レジスタ43をさらに記憶してもよい。制御レジスタ43の1ビット目には、アドレス保護情報を他の情報処理装置100aに送信したことを示す情報BSTATが設定される。通常、情報BSTATはロウに設定されているが、バスインターフェース24がアドレス保護情報を送信すると、情報BSTATはハイに設定される。情報BSTATがハイである期間では、アドレス保護情報の共有が完了しておらず、アドレスを適切に保護できない可能性がある。したがって、アドレス保護情報で設定されるアドレス空間へのアクセスは禁止される。
【0030】
一方、アドレス保護情報を受信した情報処理装置100aのレジスタアクセスインターフェース21は、受信したアドレス保護情報をアドレステーブル22に設定すると、バスインターフェース24を介して、その旨を送信元の情報処理装置100aへ送信する。これに応じて、送信元の情報処理装置100aは、制御レジスタ43の情報BSTATをロウに設定する。これにより、アドレス保護情報の共有動作が完了し、アドレス空間へのアクセスが可能になる。
【0031】
このように、第3の実施形態では、アドレス保護情報を共有するため、複数の情報処理装置100aで効率よくアドレス空間を適切に保護できる。また、アクセスのたびにアドレス保護情報を複数の情報処理装置100aで共有するのではなく、予めアドレス保護情報を1つの情報処理装置100aから他の情報処理装置100aへ送信して共有するため、情報処理装置100a間の通信量を抑制できる。
【0032】
(第4の実施形態)
第3の実施形態では、全ての情報処理装置100aでアドレス保護情報を共有するものであった。これに対し、複数の情報処理装置100aが同じ論理アドレス空間で動作していても物理アドレスが異なることもあるため、第4の実施形態では、一部の情報処理装置100aでアドレス空間を共有するものである。
【0033】
図12は、一部の情報処理装置100aでアドレス空間を共有するための制御レジスタ44の構成を示す図である。制御レジスタ44の1〜16ビット目にはアドレス保護情報を共有する情報処理装置100aに共通する識別番号GID(Group ID)が設定される。
【0034】
また、図13は、アドレステーブル22に記憶されるアドレス保護情報の一例を示す図である。アドレス保護情報は、図3または図5の第3フィールド33(33a)に代えて、図13に示す第3フィールド33bを含む。第3フィールド33bの5ビット目には一部の情報処理装置100aでアドレス保護情報を共有することを示す情報GIDEが設定される。より具体的には、情報GIDEがハイに設定されると一部の情報処理装置100aで、ロウに設定されると全ての情報処理装置100aで、アドレス情報を共有する。なお、第3フィールド33bのタスク識別番号ETIDおよび情報TIDEは省略されてもよい。
【0035】
情報処理装置100aは、第1〜第3フィールド31〜33bの内容を含むアドレス保護情報に加え、識別番号GIDを送信する。例えば、SA=0x1000_0000,EA=0x2000_0000,GIDE=1,WE=0,RE=1,VLD=1のアドレス保護情報およびGID=2を1つの情報処理装置100aが送信すると、他の情報処理装置100aのうち、自らの制御レジスタ44がGID=2に設定された情報処理装置100a内のレジスタアクセスインターフェース21は、受信したアドレス保護情報をアドレステーブル22に設定する。一方、GID=2に設定されていない情報処理装置100aは受信したアドレス情報を破棄する。
【0036】
したがって、他の情報処理装置100aであってGID=2に設定された情報処理装置100aにおいては、例えばアドレス0x1800_0000への書き込みは禁止されるが、GID=2に設定されていない情報処理装置100aにおいて同様のアクセスは許可される。
【0037】
このように、第4の実施形態では、アドレス保護情報を共有する情報処理装置100a間で共通する識別番号GIDを含むアドレス保護情報を送受信するため、一部の情報処理装置100aでアドレス情報を適切に保護できる。また、アドレス保護情報を共有する情報処理装置100aのみに選択的に送信するわけではなく、受信した情報処理装置100aにおいてアドレス保護情報を設定するか破棄するかを判断できるため、アドレス保護部2aの構成を簡略化できる。
【0038】
(第5の実施形態)
第3および第4の実施形態では、バスインターフェース24を設け、バス200を介してアドレス保護情報を送受信するものであった。これに対し、第5の実施形態は、アドレス保護情報をパケット化して送受信するものである。
【0039】
図14は、アドレス保護部2bの内部構成を示す概略ブロック図である。アドレス保護部2bは、図8のバスインターフェース24に代えて、送受信部として、パケット送信部24aおよびパケット受信部24bを有する。
【0040】
パケット送信部24aは、アドレス保護情報をパケット化し、パケット化されたネットワークに対してブロードキャストパケットを送信する。パケットは、宛先情報が格納されるヘッダと、データが格納されるボディと、ボディの終端を示すテイラとを含む。そして、アドレス保護情報はボディおよびテイラに格納される。一方、パケット受信部24bは、受信したパケットを解読し、パケットに含まれるアドレス保護情報をアドレステーブル22に設定する。
【0041】
このように、第5の実施形態では、アドレス保護情報専用のバスを設ける必要がないので、実装コストを削減できる。また、パケット化されたネットワークでは通信が局所的に行われるため、バスを設けるよりもマルチコアシステム全体の性能に対する影響も小さくなる。
【0042】
本実施形態で説明したマルチコアシステムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、マルチコアシステムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。また、マルチコアシステムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0043】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0044】
1 演算部
2,2a アドレス保護部
21 レジスタアクセスインターフェース
22 アドレステーブル
23 アクセス判定部
24 バスインターフェース
24a パケット送信部
24b パケット受信部
100,100a 情報処理装置
【特許請求の範囲】
【請求項1】
演算部と、アドレス保護部と、を備え、
前記アドレス保護部は、
前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、
前記受信したアドレス保護情報を記憶するアドレステーブルと、
前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有することを特徴とする情報処理装置。
【請求項2】
前記アドレス保護情報は、
アクセスを禁止するアドレス空間の開始アドレス情報と、
前記アクセスを禁止するアドレス空間の終了アドレス情報と、
前記アクセスを禁止するアドレス空間への書き込みを許可するか否かを示す第1の情報と、
前記アクセスを禁止するアドレス空間からの読み出しを許可するか否かを示す第2の情報と、を含むことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記アクセス判定部は、
前記演算部が指定したアドレスが前記アクセスを禁止するアドレス空間に含まれ、かつ、
前記演算部から書き込みを指定し、かつ、前記第1の情報が書き込みを禁止することを示す場合、または、前記演算部から読み出しを指定し、かつ、前記第2の情報が読み出しを禁止することを示す場合、
前記演算部が指定したアドレスにアクセス不可であると判定することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
それぞれが、演算部およびアドレス保護部を有する複数の情報処理装置を備え、
前記アドレス保護部は、
前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、
前記受信したアドレス保護情報を記憶するアドレステーブルと、
前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有することを特徴とするマルチコアシステム。
【請求項5】
前記アドレステーブルは、前記アドレス保護情報に加え、アドレス保護情報を共有する情報処理装置に共通する識別情報を記憶し、
前記複数の情報処理装置のうちの第1の情報処理装置から第1の識別情報とアドレス保護情報とを受信した、前記複数の情報処理装置のうちの第2の情報処理装置のレジスタアクセスインターフェースは、前記第2の情報処理装置のアドレステーブルに記憶される第2の識別情報と、前記第1の識別情報とが一致する場合、前記受信したアドレス保護情報を前記第2の前記情報処理装置のアドレステーブルに記憶することを特徴とする請求項4に記載のマルチコアシステム。
【請求項1】
演算部と、アドレス保護部と、を備え、
前記アドレス保護部は、
前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、
前記受信したアドレス保護情報を記憶するアドレステーブルと、
前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有することを特徴とする情報処理装置。
【請求項2】
前記アドレス保護情報は、
アクセスを禁止するアドレス空間の開始アドレス情報と、
前記アクセスを禁止するアドレス空間の終了アドレス情報と、
前記アクセスを禁止するアドレス空間への書き込みを許可するか否かを示す第1の情報と、
前記アクセスを禁止するアドレス空間からの読み出しを許可するか否かを示す第2の情報と、を含むことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記アクセス判定部は、
前記演算部が指定したアドレスが前記アクセスを禁止するアドレス空間に含まれ、かつ、
前記演算部から書き込みを指定し、かつ、前記第1の情報が書き込みを禁止することを示す場合、または、前記演算部から読み出しを指定し、かつ、前記第2の情報が読み出しを禁止することを示す場合、
前記演算部が指定したアドレスにアクセス不可であると判定することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
それぞれが、演算部およびアドレス保護部を有する複数の情報処理装置を備え、
前記アドレス保護部は、
前記演算部からアドレス保護情報を受信するレジスタアクセスインターフェースと、
前記受信したアドレス保護情報を記憶するアドレステーブルと、
前記アドレス保護情報に基づいて、前記演算部が指定したアドレスにアクセス可能か否かを判定し、アクセス不可である場合、割り込み信号を前記演算部に出力するアクセス判定部と、を有することを特徴とするマルチコアシステム。
【請求項5】
前記アドレステーブルは、前記アドレス保護情報に加え、アドレス保護情報を共有する情報処理装置に共通する識別情報を記憶し、
前記複数の情報処理装置のうちの第1の情報処理装置から第1の識別情報とアドレス保護情報とを受信した、前記複数の情報処理装置のうちの第2の情報処理装置のレジスタアクセスインターフェースは、前記第2の情報処理装置のアドレステーブルに記憶される第2の識別情報と、前記第1の識別情報とが一致する場合、前記受信したアドレス保護情報を前記第2の前記情報処理装置のアドレステーブルに記憶することを特徴とする請求項4に記載のマルチコアシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−203698(P2012−203698A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−68367(P2011−68367)
【出願日】平成23年3月25日(2011.3.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月25日(2011.3.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]