JP2009223611A - 情報処理装置、情報処理方法、ならびに、プログラム - Google Patents

情報処理装置、情報処理方法、ならびに、プログラム Download PDF

Info

Publication number
JP2009223611A
JP2009223611A JP2008067236A JP2008067236A JP2009223611A JP 2009223611 A JP2009223611 A JP 2009223611A JP 2008067236 A JP2008067236 A JP 2008067236A JP 2008067236 A JP2008067236 A JP 2008067236A JP 2009223611 A JP2009223611 A JP 2009223611A
Authority
JP
Japan
Prior art keywords
data
physical address
address
input terminal
signal input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008067236A
Other languages
English (en)
Inventor
Shoji Mori
昌二 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2008067236A priority Critical patent/JP2009223611A/ja
Publication of JP2009223611A publication Critical patent/JP2009223611A/ja
Pending legal-status Critical Current

Links

Images

Abstract


【課題】ROMなどに記録されるIPLやBIOS等が解析されるのを防止する情報処理装置等を提供する。
【解決手段】情報処理装置101の中央処理装置102が命令データを記憶装置103から読み出す場合、論理アドレス信号出力端子111に命令データの論理アドレスを、命令取得信号出力端子112にその旨を出力し、アドレス変換部104は、論理アドレスを物理アドレスに変換して物理アドレス信号入力端子131に与え、セレクト部105は、論理アドレスが記憶装置103の命令データ記憶範囲で、かつ、命令データを読み出す旨が命令取得信号出力端子112に出力されているか否かを、記憶装置103のセレクト信号入力端子132に与え、記憶装置103は、セレクト信号入力端子132が真である場合、データ信号出力端子133に物理アドレスに記憶されるデータを出力して、データ信号入力端子113に与える。
【選択図】図1

Description

本発明は、コンピュータなどの情報処理装置のROM(Read Only Memory)などに記録されるイニシャルプログラムローダ(IPL;Initial Program Loader)や基本入出力システム(BIOS;Basic Input/Output System)、各種のアプリケーションプログラムなどが解析されるのを防止するのに好適な情報処理装置、情報処理方法、ならびに、これらを再構成可能な電子回路により実現するためのプログラムに関する。
従来から、中央処理装置(CPU;Central Processing Unit)が、ROMやRAM(Random Access Memory)等と接続される情報処理装置が提案されている。
このような情報処理装置では、アドレスバス、データバスを介してCPUとROMやRAM等が接続されている。
CPUが処理可能なメモリ空間内には、ROMやRAMが有する記憶域が配置されており、ROMやRAMに記憶されるデータの場所は、論理アドレスとして表現される。
一方、ROMやRAMが実際にデータを記憶する物理アドレスは、論理アドレスから変換可能であり、一般には、論理アドレスの下位ビットで表現される。
また、論理アドレスの上位ビットの値を見れば、それがROMに対するものであるのか、RAMに対するものであるのか、それ以外であるのか、を弁別することができる。
したがって、アドレスバスに出力される論理アドレスから、ROM、RAM等のデバイスが処理対象となるのか否かを判別するアドレスデコーダ回路が利用されている。
たとえば、ROM用のアドレスデコーダ回路の出力はROMのチップセレクト信号入力端子に与えられ、ROMは、チップセレクト信号入力端子に与えられる値に基づいて、自身がCPUの処理の対象となっているか否かを判別する。
たとえば、ROMに対するチップセレクト信号入力端子がアクティブである場合、すなわち、アドレスバスに出力されている論理アドレスが当該ROMに割り当てられているものである場合には、アドレスバスに出力されている論理アドレスの下位ビットの値から、当該ROM内における物理アドレスを取得して、当該物理アドレスに記憶されている値をデータバスに出力すると、CPUは、当該ROM内のデータを読み出すことが可能となる。
一方で、CPUは、実行すべき命令をROMやRAMから読み出し(「インストラクションフェッチ」「オペコードフェッチ」等、命令を取得する段階)、当該命令にしたがって処理の対象となるデータをRAM等から読み出して(「オペランドフェッチ」等、処理対象を取得する段階)、当該処理を実行し、必要に応じてRAM等に処理結果を書き込む。
一般に、ROMには、当該情報処理装置が起動する際に実行されるイニシャルプログラムローダや、当該情報処理装置が入出力を行う際の低レベルプログラムを集めた基本入出力システムなどが記憶され、RAMには、アプリケーションプログラム等、上位のプログラムが記憶される。また、携帯ゲーム装置などにおいては、アドレスバスならびにデータバスに接続されるROMカセットにゲームのプログラムを記録しておく手法も広く用いられている。
さて、このようなアドレスデコーダを利用した情報処理装置に関する技術については、以下の文献に開示されている。
特開2002−245024号公報
ここで、[特許文献1]に開示の技術においては、コンピュータがスタンバイ状態に入ったことを示すCPUからの信号に基づいて、ROM内のアドレスを解読するアドレスデコーダの出力データを強制的に特定アドレスに設定することで、スタンバイ時の消費電流条件をテスト時と実動作時とで合致させ、消費電流規格を満たすことを高い精度で保証することとしている。
さて、ROMやRAMに記憶されているデータは、CPUにより実行される命令データと解釈することもでき、CPUによる処理の対象となる対象データと解釈することもできる。したがって、ROMに記憶されているIPLやBIOS等を、対象データとして読み出して出力するプログラムをCPUに実行させれば、IPLやBIOS等そのものを取得することが可能である。
しかしながら、ROM内に記憶されているIPLやBIOS、ROMカセットに記憶されているゲームプログラム等は重要なソフトウェア資産であるから、そのノウハウをできるだけ秘匿したいとの要望は強い。
また、これらのプログラムを改変する不正行為を防止するためには、これらのプログラムの読み出しそのものを困難にすることが効果的であると考えられるから、ROM内に記憶されているIPLやBIOS、ROMカセットに記憶されているゲームプログラム等の、対象データとしての読み出しをできなくする技術が強く求められている。
本発明は、上記のような課題を解決するもので、コンピュータなどの情報処理装置のROMなどに記録されるIPLやBIOS、各種のアプリケーションプログラムなどが解析されるのを防止するのに好適な情報処理装置、情報処理方法、ならびに、これらを再構成可能な電子回路により実現するためのプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る情報処理装置は、中央処理装置、記憶装置、アドレス変換部、セレクト部を有し、以下のように構成する。
すなわち、中央処理装置は、処理の種類を表す命令データ、もしくは、処理の対象となる対象データのうち、所望のデータが配置される論理アドレスを出力する論理アドレス信号出力端子と、当該所望のデータが当該命令データであるか否かを出力する命令取得出力端子と、当該所望のデータの入力を受け付けるデータ信号入力端子と、を有する。
この中央処理装置は、一般的な情報処理装置におけるCPUに相当するものである。なお、命令取得出力端子から出力される信号は、当該データ取得が「インストラクションフェッチ」「オペコードフェッチ」なのか、それとも「オペランドフェッチ」なのか、を示すと考えることもできる。
一方、記憶装置は、当該中央処理装置にて実行されるべき処理の種類を表す命令データが、物理アドレスに対応付けて記憶され、所望のデータが記憶される物理アドレスの入力を受け付ける物理アドレス信号入力端子と、当該物理アドレス信号入力端子を介して入力を受け付けられた物理アドレスからデータを読み出すか否かを表す入力を受け付けるセレクト信号入力端子と、セレクト信号入力端子によりデータを読み出す旨を表す入力が受け付けられると、物理アドレス信号入力端子により入力を受け付けられた物理アドレスに記憶されるデータを出力するデータ信号出力端子と、を有する。
この記憶装置は、一般的な情報処理装置におけるROMやROMカセットに相当するものであり、命令データは、IPLやBIOS、アプリケーションプログラム等に相当する。
さらに、アドレス変換部は、当該論理アドレス信号出力端子から出力される論理アドレスを物理アドレスに変換して、当該物理アドレス信号入力端子へ与える。
典型的には、ROMの物理アドレスは論理アドレスの下位ビットから構成される。この場合、アドレス変換部は、中央処理装置の論理アドレス信号出力端子から出力される信号の一部を記憶装置に与える機能を果たす。
そして、セレクト部は、当該論理アドレス信号出力端子から出力される論理アドレスが当該命令データが記憶される物理アドレスに対応付けられる範囲に含まれ、かつ、当該命令取得出力端子から当該所望のデータが当該命令データである旨が出力されている、との条件が満たされるか否かを判定して、当該判定結果を命令データを読み出すか否かを表すものとして当該セレクト信号入力端子へ与える。
上記の例では、『論理アドレスがROM内のIPLやBIOS等のプログラム部分に対するアクセスを意味するものであり、かつ、当該アクセスが「インストラクションフェッチ」「オペランドフェッチ」である』との条件が成立するか否かを判定するものである。
したがって、IPLやBIOS等のプログラム部分を「オペランド」、すなわち、単なる対象データとして読み出そうとしても、上記の条件が成立しないため、ROMは、当該アクセスが自身へのものである、とは認識しなくなる。
そして、当該データ信号出力端子は、当該データ信号入力端子に接続される。
いわゆるデータバスに相当するものであり、ROMがセレクトされた場合には、指定された論理アドレス・物理アドレスに記憶されるデータをROMが出力するが、そうでない場合には、ROMはデータを出力しない。したがって、IPLやBIOS等のプログラム部分を「オペランド」、すなわち、単なる対象データとして読み出そうとすると、ランダムな値、もしくは、データバスの既定値が得られることになる。この値は、正論理と負論理、アクティブハイとアクティブローのいずれを選択するかにより、0のみが並んだビット列、もしくは、1のみが並んだビット列となるのが典型的である。
本発明によれば、ROMなどに記録されるIPLやBIOS、各種のアプリケーションプログラムなどを単なるデータとして読み出そうとするプログラムをCPUで実行したとしても、読み出しできないため、これらのプログラムが解析されるのを防止することができるようになる。
また、本発明の情報処理装置において、記憶装置は、当該中央処理装置にて処理の対象となるべき対象データが、物理アドレスに対応付けてさらに記憶され、セレクト部は、当該論理アドレス信号出力端子から出力される論理アドレスが当該対象データが記憶される物理アドレスに対応付けられる範囲に含まれるか否かを判定して、当該判定結果をデータを読み出すか否かを表すものとして当該セレクト信号入力端子へ与えるように構成することができる。
たとえば、ROM内にフォントデータなどが記録されている場合を想定するものである。フォントデータは、命令データではなく対象データであるから、フォントデータが記憶されている領域については、「オペランドフェッチ」により読み出しがされることとなる。
したがって、「インストラクションフェッチ」「オペコードフェッチ」でないことを読み出し条件として設定しても良いが、通常のプログラムにおいては、フォントデータ等の対象データ領域をこれらのフェッチで読み出すことは事実上ない。
そこで、アドレスデコードの回路を単純にするため、ROM内の対象データが配置される領域と命令データが配置される領域とを切り分けて、前者については、命令取得信号の状態を参照せずに、アクセスを行うこととする。
本発明によれば、ROM等に記録された命令データと対象データを適切に区別しながら、アドレスデコードの回路をできるだけ単純に構成することができるようになる。
また、本発明の情報処理装置において、記憶装置は、不揮発性記憶装置であり、記憶装置に記憶される命令データは、当該中央処理装置が実行するイニシャルプログラムローダ、および、基本入出力システムを含むように構成することができる。
本発明は、上記発明の好適実施形態に係るものであり、本発明によれば、IPLやBIOSの解析をできるだけ防止することができるようになる。
また、本発明の情報処理装置において、当該論理アドレス信号出力端子、および、当該アドレス変換部は、アドレスバスに接続され、当該データ信号入力端子、および、当該データ信号出力端子は、データバスに接続され、当該アドレスバスならびに当該データバスには、一時的にデータを記憶するランダムアクセスメモリ、および、当該情報処理装置に対する入出力を行う入出力装置が接続されるように構成することができる。
本発明は、本発明の原理を典型的なコンピュータに適用したものであり、広く用いられるコンピュータに単純な回路を追加するだけで、本発明の構成とすることが可能となる。
本発明のその他の観点に係る情報処理方法は、中央処理装置と、記憶装置と、アドレス変換部と、セレクト部と、を有する情報処理装置が実行し、アドレス変換工程と、セレクト工程と、を備え、以下のように構成する。
すなわち、中央処理装置は、処理の種類を表す命令データ、もしくは、処理の対象となる対象データのうち、所望のデータが配置される論理アドレスを出力する論理アドレス信号出力端子と、当該所望のデータが当該命令データであるか否かを出力する命令取得出力端子と、当該所望のデータの入力を受け付けるデータ信号入力端子と、を有する。
一方、記憶装置には、当該中央処理装置にて実行されるべき処理の種類を表す命令データが、物理アドレスに対応付けて記憶される。
さらに、記憶装置は、所望のデータが記憶される物理アドレスの入力を受け付ける物理アドレス信号入力端子と、当該物理アドレス信号入力端子を介して入力を受け付けられた物理アドレスからデータを読み出すか否かを表す入力を受け付けるセレクト信号入力端子と、セレクト信号入力端子によりデータを読み出す旨を表す入力が受け付けられると、物理アドレス信号入力端子により入力を受け付けられた物理アドレスに記憶されるデータを出力するデータ信号出力端子と、を有する。
そして、当該データ信号出力端子は、当該データ信号入力端子に接続される。
ここで、アドレス変換工程では、アドレス変換部が、当該論理アドレス信号出力端子から出力される論理アドレスを物理アドレスに変換して、当該物理アドレス信号入力端子へ与える。
一方、セレクト工程では、セレクト部が、当該論理アドレス信号出力端子から出力される論理アドレスが当該命令データが記憶される物理アドレスに対応付けられる範囲に含まれ、かつ、当該命令取得出力端子から当該所望のデータが当該命令データである旨が出力されている、との条件が満たされるか否かを判定して、当該判定結果を命令データを読み出すか否かを表すものとして当該セレクト信号入力端子へ与える。
本発明のその他の観点に係るプログラムは、再構成可能な電子回路により、上記の情報処理装置を実現し、上記の情報処理方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、当該プログラムによって再構成されて電子回路を構成するFPGA(Field Programmable Gate Array)やDSP(Ditigal Signal Processor)などの電子装置とは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、コンピュータなどの情報処理装置のROMなどに記録されるIPLやBIOS、各種のアプリケーションプログラムなどが解析されるのを防止するのに好適な情報処理装置、情報処理方法、ならびに、これらを再構成可能な電子回路により実現するためのプログラムを提供することができる。
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、本実施形態に係る情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
本実施形態に係る情報処理装置101は、中央処理装置102、記憶装置103、アドレス変換部104、セレクト部105を有する。
ここで、中央処理装置102は、いわゆるCPUに相当するものであり、記憶装置103は、いわゆるROMやROMカセットに相当するものであり、アドレス変換部104は、アドレス信号線の下位ビット部分を記憶装置103に接続する配線に相当し、セレクト部105は、アドレスデコーダに相当するものである。以下、詳細に説明する。
中央処理装置102は、少なくとも以下の信号端子を有する。
(1)論理アドレス信号出力端子111。所望のデータが配置される論理アドレスを出力する。データには、実行するプログラムそのもの、すなわち、処理の種類を表す命令データと、当該プログラムの処理の対象となるもの、すなわち、処理の対象となる対象データが存在し、中央処理装置102が有するメモリ空間内の論理アドレスによって、データを記憶する位置が定められる。一般にはアドレスバスに接続される。
(2)命令取得信号出力端子112。中央処理装置102がある論理アドレスに記憶されるデータを取得するために、論理アドレス信号出力端子111に当該論理アドレスを出力したときに、当該中央処理装置102が当該データを命令データとして必要としているのか、それとも対象データとして必要としているのかを示す。
(3)データ信号入力端子113。論理アドレス信号出力端子111に出力された論理アドレスから読み出されたデータが与えられる。一般にはデータバスに接続され、データ信号書込端子(図示せず)と一体に構成される。この場合は、読書信号線(図示せず)と共働して、読書信号線に「読込」を出力することで、データバスからのデータの読み込みを行う。
命令取得信号出力端子112から出力される信号は、当該データ取得が「インストラクションフェッチ」「オペコードフェッチ」なのか、それとも「オペランドフェッチ」なのか、を示すと考えることもできる。
広く普及したZ80(商標)というCPUでは、「M1サイクル」において「インストラクションフェッチ」を行い、M1信号端子によって、現在のサイクルが「M1サイクル」であるか否かを示すこととしている(ただし、負論理を用いている)。したがって、Z80の場合には、M1信号端子が命令取得信号出力端子112に相当する。
一方、記憶装置103には、以下のデータが物理アドレスに対応付けて記憶される。
(1)当該中央処理装置102にて実行されるべき処理の種類を表す命令データ。たとえば、IPLやBIOS、アプリケーションプログラム等。
(2)当該中央処理装置102にて実行されるべき処理の対象となる対象データ。記憶装置103がROMである場合には、たとえばフォントデータ等、書き換えを必要とせず、BIOS等で利用されるデータが相当する。
そして、記憶装置103は、少なくとも以下の信号端子を有する。
(1)物理アドレス信号入力端子131。所望のデータが記憶される物理アドレスの入力を受け付ける。CPUのメモリ空間の一部に記憶装置103が割り当てられるのが一般的であり、この場合、論理アドレスの所定下位ビットが、物理アドレスに相当する。一般には、アドレスバスの一部の信号線が、物理アドレス信号入力端子131に接続される。
(2)セレクト信号入力端子132。当該物理アドレス信号入力端子131を介して入力を受け付けられた物理アドレスからデータを読み出すか否かを表す入力を受け付ける。中央処理装置102がバスを介して複数の装置(ROM、RAM、その他の入出力装置等)と接続されている場合に、中央処理装置102がデータのやりとりをしたい装置が、当該記憶装置103である旨を示すための信号が与えられる。
(3)データ信号出力端子133と、セレクト信号入力端子132にデータを読み出す旨を表す入力が受け付けられると、物理アドレス信号入力端子131により入力を受け付けられた物理アドレスに記憶されるデータを出力するものである。一般にはデータバスに接続される。
アドレス変換部104は、当該論理アドレス信号出力端子111から出力される論理アドレスを物理アドレスに変換して、当該物理アドレス信号入力端子131へ与えるものである。
上記のように、典型的には、ROMの物理アドレスは論理アドレスの下位ビットから構成される。したがって、アドレス変換部104は、典型的には、アドレスバスの一部を記憶装置103に接続することで実現される。
さて、従来の情報処理装置においては、論理アドレスの所定上位ビットが当該記憶装置に割り当てられるアドレスの所定のビットパターンになっているか否かをアドレスデコーダが判断し、その結果を直ちにセレクト信号入力端子132に与えていた。このため、記憶装置103へのアクセスが、オペコードフェッチなのかオペランドフェッチなのかの区別はされなかった。
このため、記憶装置103に格納された命令データを読み出してダンプするプログラムを、中央処理装置102にて実行すると、IPLやBIOS等が読み出されてしまい、動作解析が可能となってしまっていた。
一方、本実施形態においては、以下のような構成を採用することで、IPLやBIOS等を「命令データ」として読み出して実行することは可能とする一方で、「対象データ」としての読み出しを禁止して、解析などを防止することとしている。
図2は、情報処理装置101にて実行される処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本図に示す処理は、中央処理装置102が、記憶装置103に記憶されているデータを読み出そうとしている状況を想定したものである。また、各処理は電子回路によって適宜並列に実行されるため、フローチャート上でもそのように表記しているが、その順序は適当に変更が可能である。
すなわち、中央処理装置102は論理アドレス信号出力端子111に所望のデータが記憶されていると想定される論理アドレスを出力するが、この際、同時に、命令取得信号出力端子112からは、当該所望のデータが当該命令データであるか否かが、出力される(ステップS301)。
アドレス変換部104は、当該論理アドレスを記憶装置103における物理アドレスに変換して(ステップS302)、記憶装置の物理アドレス信号入力端子131に出力する(ステップS303)。
一方、セレクト部105は、以下の条件
(1)当該論理アドレス信号出力端子111から出力される論理アドレスが当該命令データが記憶される物理アドレスに対応付けられる範囲に含まれ、かつ、
(2)当該命令取得信号出力端子112から当該所望のデータが当該命令データである旨が出力されている
が満たされるか否かを判定して(ステップS304)、判定結果を、命令データを読み出すか否かを表すものとして当該セレクト信号入力端子132へ与える(ステップS305)。
上記の条件(1)は、読み出そうとしているデータが、IPLやBIOS等、保護したいと考えている命令データであるか否かを示すものである。
一方、条件(2)は、読み出しのタイミングが、Z80でいうM1サイクルに相当するか否か、すなわち、当該アクセスが「インストラクションフェッチ」「オペランドフェッチ」であるか否かを示すものである。
このように構成することで、IPLやBIOS等のプログラム部分を「オペランド」、すなわち、単なる対象データとして読み出そうとしても、上記の条件が成立しないため、ROMは、当該アクセスが自身へのものである、とは認識しなくなる。
すなわち、記憶装置103は、セレクト信号入力端子132に与えられた判定結果が真である場合(ステップS306;Yes)、物理アドレス信号入力端子131に与えられている物理アドレスに記憶されているデータをデータ信号出力端子133から出力する(ステップS307)。
一方、セレクト信号入力端子132に与えられた判定結果が偽である場合(ステップS306;No)、データの出力は行わない。
上記のように、当該データ信号出力端子133は、当該データ信号入力端子113に、典型的にはデータバスを介して接続されている。
その後中央処理装置102は、データ信号入力端子113に入力されているデータを、「当該アドレスに記憶されているデータ」として読み出して(ステップS308)、本処理を終了する。
ROMがセレクトされた場合には、指定された論理アドレス・物理アドレスに記憶されるデータをROMが出力するが、そうでない場合には、ROMはデータを出力しない。
したがって、IPLやBIOS等のプログラム部分を「オペランド」、すなわち、単なる対象データとして読み出そうとすると、ランダムな値、もしくは、データバスの既定値が得られることになる。
この値は、正論理と負論理、アクティブハイとアクティブローのいずれを選択するかにより、0のみが並んだビット列、もしくは、1のみが並んだビット列となるのが典型的である。
図3は、本実施形態の情報処理装置の、より具体的な構成例を示す説明図である。以下、本図を参照して説明する。
なお、以下の説明では、理解を容易にするため、回路構成において正論理ならびにアクティブハイを採用し、「〜であるか否か」の前者を「1」に、後者を「0」に、それぞれ割り当てて説明する。しかしながら、実装に合わせて、回路や配線の一部を、負論理やアクティブローにより実装することは、当業者には容易であり、これらの態様についても、本発明の範囲に含まれる。
本図に示す実施形態においては、CPU 201が中央処理装置102を、ROM 202が記憶装置103を、それぞれ実現する。また、アドレス変換部104は、アドレスバス211からROM 202への配線により実現され、セレクト部105は、アドレスバス211ならびにCPU 201のM1信号端子(M1)に接続される論理回路213により実現される。
また、RAM 203ならびに入出力機器204もアドレスバス211およびデータバス214により構成されるバスに接続されており、CPU 201のR/W信号端子(R/W)とアドレスデコーダ216、217によって、バスを使用するタイミングが設定される。
以下論理アドレスは16ビット(a0〜a15)で表現され、データバスは8ビット(d0〜d7)であると想定する。するとメモリ空間は、全体で、216 = 65536バイトということになる。以下、先頭に「0x」を付すことで、16進数表記であることを表す。たとえば、0x0000 = 0,0xffff = 65535である。
図4は、当該構成例におけるメモリ空間の様子を示す説明図である。以下、本図を参照して説明する。
本図に示すように、CPU 201の論理アドレスとしては、以下のようにメモリ割り当てが行われており、メモリマップIO(memory-mapped I/O)が採用されている。
(1)論理アドレス0x0000〜0x7fff(32キロバイト) … RAM 203。
(2)論理アドレス0x8000〜0x9fff(8キロバイト) … 入出力機器204。
(3)論理アドレス0xa000〜0xdfff(16キロバイト) … ROM 202内の対象データ(フォント等)。
(4)論理アドレス0xe000〜0xffff(8キロバイト) … ROM 202内の命令データ(IPL、BIOS等)。
さて、論理アドレスAは、信号線a0〜a15により、
A = a0 + a1×2 + a2×22 + … + a15×215
のように表現できる。したがって、上記(1)〜(4)は、以下のように区別することができる。
(1)a15 = 0であれば、RAM 203へのアクセス。
(2)a15 = 1,a14 = a13 = 0であれば、入出力機器204へのアクセス。
(3)a15 = 1,a14 = 0,a13 = 1、または、a15 = 1,a14 = 1,a13 = 0であれば、ROM 202内の対象データへのアクセス。
(4)a15 = a14 = a13 = 1であれば、ROM 202内の命令データへのアクセス。
このような信号線の状態から、論理回路213およびアドレスデコーダ216、217が構成されている。
M1信号端子(M1)は、命令取得信号出力端子112に相当するものであり、論理回路213に接続されている。すなわち、ROM 202に対しては、
(a)a15 = 1,a14 = 0,a13 = 1、
(b)a15 = 1,a14 = 1,a13 = 0、
(c)a15 = 1,a14 = 1,a13 = 1,M1 = 1
のいずれかの場合に、セレクト信号入力端子132に相当するCS端子(CS)に「1」が入力されることになる。
また、本実施形態では、ROM 202の総容量は24キロバイトであり、物理アドレスは、0x0000〜0x5fffの範囲をとることになるが、単純にa14〜a0を並べると、その値は、0x2000〜0x7fffの間となってしまう。
そこで、a14,a13の2ビット整数に対して1を減算する減算回路219を間に配置することにより、値をシフトして、0x0000〜0x5fffとなるようにしている。減算回路219が、アドレス変換部104に相当する。
なお、物理アドレスから論理アドレスへの変換が単なる下位ビットの取得で済む場合には、減算回路219に相当するような明示的なアドレス変換部104を用意する必要はなく、アドレスバス211の信号線の一部を、ROM 202に接続すれば良い。
ここで、本実施形態が従来の態様と異なるのは、M1信号端子(M1)の出力を、論理回路213内にて考慮している部分のみである。すなわち、従来の情報処理装置に対しても簡易な回路の追加のみによって、本発明を実現することが可能であり、コンピュータ等のROM等に記録されるIPLやBIOS、各種のアプリケーションプログラムなどが解析されるのをできるだけ防止することができる。
なお、これらの電子回路は、たとえばFPGA(Field Programmable Gate Array)やDSP(Digital Signal Processor)に対する回路構成用のプログラムを実行することで、これらの再構成可能なハードウェア上に実現することが可能である。
また、メモリマッピングが動的に変更できるようなハードウェアにおいては、メモリマッピングとインストラクションフェッチとの処理を組み合わせるような属性をハードウェア的に用意することで、上記発明を実現することが可能である。
上記の実施形態では、ROM 202の読み出しをインストラクションフェッチ時のみに可能とすることで、ROM 202に記憶されている情報の解析を困難にすることとしていたが、RAM 203内にも、これと同様な「保護領域」を用意することができる。
すなわち、RAM 203に割り当てられるアドレス空間の一部については、
(1)当該アドレス範囲からの読み出しであるか否かを判定する電子回路を設け、その出力とM1信号端子(M1)との論理積をとって、RAM 203のCS信号端子に与える。
(2)当該アドレス範囲への書き込みは、従来と同様に行う。
のように構成する。
そして、プログラムローダが、DVD−ROMやROMカセット等の外部記憶媒体からRAM 203にプログラムを読み出して実行する場合に、保護したいプログラム部分については、RAM 203内の「保護領域」にロードすることとするのである。
各種の情報処理装置で使用されるプログラムならびにそのローダは、アドレス空間内において、プログラム断片を種々の位置に配置できるように、リロケータブルに設計されていることが多い。本実施形態においては、保護したいプログラム断片については、「保護領域」に配置するように、リロケータブル情報を設定しておく。
また、プログラムに所定の暗号化を施してから外部記憶媒体に記録しておくこととし、プログラムローダは復号をしながら「保護領域」にロードするものとし、プログラムローダ自体も、ROM 202またはRAM 203内の「保護領域」に配置しておくことが望ましい。
このようにすると、プログラムを不正に解析しようとする第三者が、外部記憶媒体からRAM 203にアプリケーションプログラムをデータとして読み出すような解析プログラムを情報処理装置101にて実行したとしても、読み出されるプログラムは暗号化されたものとなる。
また、プログラムローダを起動して外部記憶媒体からプログラムを復号化しつつ読み出したとしても、これを復号した結果は、「保護領域」に置かれることとなり、データとして読み出すことはできない。
したがって、第三者が不正解析を試みようとしたとしても、解析を一層困難にすることができるのである。
以上説明したように、本発明によれば、コンピュータなどの情報処理装置のROMなどに記録されるIPLやBIOS、各種のアプリケーションプログラムなどが解析されるのを防止するのに好適な情報処理装置、情報処理方法、ならびに、これらを再構成可能な電子回路により実現するためのプログラムを提供することができる。
本実施形態に係る情報処理装置の概要構成を示す模式図である。 本実施形態に係る情報処理装置にて実行される処理の制御の流れを示すフローチャートである。 本実施形態の情報処理装置の、より具体的な構成例を示す説明図である。 当該構成例におけるメモリ空間の様子を示す説明図である。
符号の説明
101 情報処理装置
102 中央処理装置
103 記憶装置
104 アドレス変換部
105 セレクト部
111 論理アドレス信号出力端子
112 命令取得信号出力端子
113 データ信号入力端子
131 物理アドレス信号入力端子
132 セレクト信号入力端子
133 データ信号出力端子
201 CPU
202 ROM
203 RAM
204 入出力機器
211 アドレスバス
213 論理回路
214 データバス
216 アドレスデコーダ
217 アドレスデコーダ
219 減算回路

Claims (6)

  1. 処理の種類を表す命令データ、もしくは、処理の対象となる対象データのうち、所望のデータが配置される論理アドレスを出力する論理アドレス信号出力端子と、当該所望のデータが当該命令データであるか否かを出力する命令取得出力端子と、当該所望のデータの入力を受け付けるデータ信号入力端子と、を有する中央処理装置と、
    当該中央処理装置にて実行されるべき処理の種類を表す命令データが、物理アドレスに対応付けて記憶され、所望のデータが記憶される物理アドレスの入力を受け付ける物理アドレス信号入力端子と、当該物理アドレス信号入力端子を介して入力を受け付けられた物理アドレスからデータを読み出すか否かを表す入力を受け付けるセレクト信号入力端子と、前記セレクト信号入力端子によりデータを読み出す旨を表す入力が受け付けられると、前記物理アドレス信号入力端子により入力を受け付けられた物理アドレスに記憶されるデータを出力するデータ信号出力端子と、を有する記憶装置と、
    当該論理アドレス信号出力端子から出力される論理アドレスを物理アドレスに変換して、当該物理アドレス信号入力端子へ与えるアドレス変換部、
    当該論理アドレス信号出力端子から出力される論理アドレスが当該命令データが記憶される物理アドレスに対応付けられる範囲に含まれ、かつ、当該命令取得出力端子から当該所望のデータが当該命令データである旨が出力されている、との条件が満たされるか否かを判定して、当該判定結果を命令データを読み出すか否かを表すものとして当該セレクト信号入力端子へ与えるセレクト部を備え、
    当該データ信号出力端子は、当該データ信号入力端子に接続されることを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記記憶装置は、当該中央処理装置にて処理の対象となるべき対象データが、物理アドレスに対応付けてさらに記憶され、
    前記セレクト部は、当該論理アドレス信号出力端子から出力される論理アドレスが当該対象データが記憶される物理アドレスに対応付けられる範囲に含まれるか否かを判定して、当該判定結果をデータを読み出すか否かを表すものとして当該セレクト信号入力端子へ与える
    ことを特徴とする情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記記憶装置は、不揮発性記憶装置であり、
    前記記憶装置に記憶される命令データは、当該中央処理装置が実行するイニシャルプログラムローダ、および、基本入出力システムを含む
    ことを特徴とする情報処理装置。
  4. 請求項3に記載の情報処理装置であって、
    当該論理アドレス信号出力端子、および、当該アドレス変換部は、アドレスバスに接続され、
    当該データ信号入力端子、および、当該データ信号出力端子は、データバスに接続され、
    当該アドレスバスならびに当該データバスには、一時的にデータを記憶するランダムアクセスメモリ、および、当該情報処理装置に対する入出力を行う入出力装置が接続される
    ことを特徴とする情報処理装置。
  5. 中央処理装置と、記憶装置と、アドレス変換部と、セレクト部と、を有する情報処理装置が実行する情報処理方法であって、
    前記中央処理装置は、処理の種類を表す命令データ、もしくは、処理の対象となる対象データのうち、所望のデータが配置される論理アドレスを出力する論理アドレス信号出力端子と、当該所望のデータが当該命令データであるか否かを出力する命令取得出力端子と、当該所望のデータの入力を受け付けるデータ信号入力端子と、を有し、
    前記記憶装置には、当該中央処理装置にて実行されるべき処理の種類を表す命令データが、物理アドレスに対応付けて記憶され、
    前記記憶装置は、所望のデータが記憶される物理アドレスの入力を受け付ける物理アドレス信号入力端子と、当該物理アドレス信号入力端子を介して入力を受け付けられた物理アドレスからデータを読み出すか否かを表す入力を受け付けるセレクト信号入力端子と、前記セレクト信号入力端子によりデータを読み出す旨を表す入力が受け付けられると、前記物理アドレス信号入力端子により入力を受け付けられた物理アドレスに記憶されるデータを出力するデータ信号出力端子と、を有し、
    当該データ信号出力端子は、当該データ信号入力端子に接続され、
    前記アドレス変換部が、当該論理アドレス信号出力端子から出力される論理アドレスを物理アドレスに変換して、当該物理アドレス信号入力端子へ与えるアドレス変換工程、
    前記セレクト部が、当該論理アドレス信号出力端子から出力される論理アドレスが当該命令データが記憶される物理アドレスに対応付けられる範囲に含まれ、かつ、当該命令取得出力端子から当該所望のデータが当該命令データである旨が出力されている、との条件が満たされるか否かを判定して、当該判定結果を命令データを読み出すか否かを表すものとして当該セレクト信号入力端子へ与えるセレクト工程
    を備えることを特徴とする情報処理方法。
  6. 再構成可能な電子回路を、
    処理の種類を表す命令データ、もしくは、処理の対象となる対象データのうち、所望のデータが配置される論理アドレスを出力する論理アドレス信号出力端子と、当該所望のデータが当該命令データであるか否かを出力する命令取得出力端子と、当該所望のデータの入力を受け付けるデータ信号入力端子と、を有する中央処理装置と、
    当該中央処理装置にて実行されるべき処理の種類を表す命令データが、物理アドレスに対応付けて記憶され、所望のデータが記憶される物理アドレスの入力を受け付ける物理アドレス信号入力端子と、当該物理アドレス信号入力端子を介して入力を受け付けられた物理アドレスからデータを読み出すか否かを表す入力を受け付けるセレクト信号入力端子と、前記セレクト信号入力端子によりデータを読み出す旨を表す入力が受け付けられると、前記物理アドレス信号入力端子により入力を受け付けられた物理アドレスに記憶されるデータを出力するデータ信号出力端子と、を有する記憶装置と、
    当該論理アドレス信号出力端子から出力される論理アドレスを物理アドレスに変換して、当該物理アドレス信号入力端子へ与えるアドレス変換部、
    当該論理アドレス信号出力端子から出力される論理アドレスが当該命令データが記憶される物理アドレスに対応付けられる範囲に含まれ、かつ、当該命令取得出力端子から当該所望のデータが当該命令データである旨が出力されている、との条件が満たされるか否かを判定して、当該判定結果を命令データを読み出すか否かを表すものとして当該セレクト信号入力端子へ与えるセレクト部
    として機能させ、
    当該データ信号出力端子は、当該データ信号入力端子に接続される
    ように機能させることを特徴とするプログラム。
JP2008067236A 2008-03-17 2008-03-17 情報処理装置、情報処理方法、ならびに、プログラム Pending JP2009223611A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008067236A JP2009223611A (ja) 2008-03-17 2008-03-17 情報処理装置、情報処理方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008067236A JP2009223611A (ja) 2008-03-17 2008-03-17 情報処理装置、情報処理方法、ならびに、プログラム

Publications (1)

Publication Number Publication Date
JP2009223611A true JP2009223611A (ja) 2009-10-01

Family

ID=41240316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008067236A Pending JP2009223611A (ja) 2008-03-17 2008-03-17 情報処理装置、情報処理方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP2009223611A (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148152A (ja) * 1988-11-29 1990-06-07 Mitsubishi Electric Corp マイクロコンピュータ
JPH0934795A (ja) * 1995-07-20 1997-02-07 Nasuka:Kk Cpuプログラムのコピープロテクト法
JPH09114743A (ja) * 1995-10-16 1997-05-02 Nec Corp シングルチップ・マイクロコンピュータ
JPH1091426A (ja) * 1996-09-11 1998-04-10 L Ii Tec:Kk 遊技機用プログラム解読防止機能付きセキュリティチップ
JP2000305848A (ja) * 1999-04-21 2000-11-02 Hudson Soft Co Ltd メモリ装置及び該メモリを使用したプロセッサ装置
JP2004152123A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd 半導体集積回路装置、並びにプログラム引き渡し方法及びそのシステム
JP2005242621A (ja) * 2004-02-26 2005-09-08 Toshiba Lsi System Support Kk 半導体装置及びその割込み処理方法
JP2007241757A (ja) * 2006-03-09 2007-09-20 Seiko Epson Corp 情報処理装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148152A (ja) * 1988-11-29 1990-06-07 Mitsubishi Electric Corp マイクロコンピュータ
JPH0934795A (ja) * 1995-07-20 1997-02-07 Nasuka:Kk Cpuプログラムのコピープロテクト法
JPH09114743A (ja) * 1995-10-16 1997-05-02 Nec Corp シングルチップ・マイクロコンピュータ
JPH1091426A (ja) * 1996-09-11 1998-04-10 L Ii Tec:Kk 遊技機用プログラム解読防止機能付きセキュリティチップ
JP2000305848A (ja) * 1999-04-21 2000-11-02 Hudson Soft Co Ltd メモリ装置及び該メモリを使用したプロセッサ装置
JP2004152123A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd 半導体集積回路装置、並びにプログラム引き渡し方法及びそのシステム
JP2005242621A (ja) * 2004-02-26 2005-09-08 Toshiba Lsi System Support Kk 半導体装置及びその割込み処理方法
JP2007241757A (ja) * 2006-03-09 2007-09-20 Seiko Epson Corp 情報処理装置

Similar Documents

Publication Publication Date Title
US6160734A (en) Method for ensuring security of program data in one-time programmable memory
US6615324B1 (en) Embedded microprocessor multi-level security system in flash memory
US4521853A (en) Secure microprocessor/microcomputer with secured memory
US7707645B2 (en) Microprocessor
US8639946B2 (en) System and method of using a protected non-volatile memory
US8316200B2 (en) Microcomputer, electronic instrument, and flash memory protection method
JPH01296361A (ja) メモリカード
JPH10228421A (ja) メモリアクセス制御回路
JPH08305558A (ja) 暗号化プログラム演算装置
JP2008257476A (ja) 誤り検出制御システム
US20040187019A1 (en) Information processing apparatus
EP2637124B1 (en) Method for implementing security of non-volatile memory
US8195946B2 (en) Protection of data of a memory associated with a microprocessor
US20050257016A1 (en) Digital signal controller secure memory partitioning
US7409251B2 (en) Method and system for writing NV memories in a controller architecture, corresponding computer program product and computer-readable storage medium
TW201113807A (en) Data processing engine with integrated data endianness control mechanism
US11243894B2 (en) Method for protecting memory against unauthorized access
KR20110012804A (ko) 데이터 마스크 시스템 및 데이터 마스크 방법
US20070113064A1 (en) Method and system for secure code patching
US20040186947A1 (en) Access control system for nonvolatile memory
JP2009223611A (ja) 情報処理装置、情報処理方法、ならびに、プログラム
US20050172108A1 (en) Device and method of switching registers to be accessed by changing operating modes in a processor
JP3882628B2 (ja) メモリ制御装置及びシリアルメモリ
JP2005222519A (ja) メモリに記憶されたデータワード内のビット値へのアクセス
JP5494389B2 (ja) 電子制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927