(57)【要約】【課題】分岐先バッファを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる情報処理装置、演算処理装置および分岐予測方法を提供する。【解決手段】本発明に係る情報処理装置としての記録装置１０は、演算処理装置としてのＣＰＵ１１、ＤＲＡＭ１２、第１のデバイスとしてのＮＯＲ型フラッシュメモリ１３、第２のデバイスとしてのＨＤＤ１４、表示出力部１５、操作入力部１６およびチューナ１７を有する。NOR Flash１３およびＨＤＤ１４の一方は、スイッチ５０を介して、ＣＰＵ１１のチップセレクト信号線（以下、チップセレクトという）に選択的に接続される。ＣＰＵ１１は、分岐予測部２１および命令取得部２２を有する。また、ＣＰＵ１１は、少なくともＯＳおよび録画プログラムの一方によって、少なくとも切替部およびバッファ変更部を含む機能実現部として機能する。【選択図】  図１
2009110383.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、
前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、
前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、
前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、
第１のデバイスに割り当てられたアドレス空間を、第２のデバイスに割り当てられるように切替える切替部と、
前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記第１のデバイスは、
割り当てられた前記アドレス空間上で命令を直接実行可能なデバイスであり、
前記第２のデバイスは、
割り当てられた前記アドレス空間上のアドレスに読み出し命令がなされると、状態が変化しうるデバイスである、
請求項１記載の情報処理装置。
【請求項３】
前記第１のデバイスおよび前記第２のデバイスの一方を１つのチップセレクト信号線に選択的に接続するスイッチをさらに備え、
前記切替部は、
前記第１のデバイスに割り当てられた前記アドレス空間が前記第２のデバイスに割り当てられるように、前記スイッチを制御して前記チップセレクト信号線の接続先を前記第１のデバイスから前記第２のデバイスに切替える、
請求項１記載の情報処理装置。
【請求項４】
前記参照アドレス記憶部に記憶された所要のアドレスは、
前記命令取得部が読み込み不可なアドレスであり、
前記参照アドレス変更部は、
前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部に追記して記憶させ、
前記命令取得部は、
前記命令取得部が読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み不可なアドレスとが異なる場合のみ、前記分岐先アドレスからさらに命令を読み出す、
請求項１記載の情報処理装置。
【請求項５】
前記参照アドレス記憶部に記憶された所要のアドレスは、
前記命令取得部が読み込み可能なアドレスであり、
前記参照アドレス変更部は、
前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部から削除し、
前記命令取得部は、
前記命令取得部が読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み可能なアドレスとが一致する場合のみ、前記分岐先アドレスからさらに命令を読み出す、
請求項１記載の情報処理装置。
【請求項６】
あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、
前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、
前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、
前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、
第１のデバイスに割り当てられたアドレス空間を、第２のデバイスに割り当てられるように切替える切替部と、
外部からの指示により、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、
を備えたことを特徴とする演算処理装置。
【請求項７】
あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を分岐先バッファに記憶するステップと、
前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを参照アドレス記憶部に記憶するステップと、
第１のデバイスに割り当てられたアドレス空間を、第２のデバイスに割り当てられるように切替えるステップと、
前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更するステップと、
前記参照アドレス記憶部を必要に応じて参照して命令を読み出すステップと、
を有することを特徴とする分岐予測方法。
【請求項８】
前記第１のデバイスは、
割り当てられた前記アドレス空間上で命令を直接実行可能なデバイスであり、
前記第２のデバイスは、
割り当てられた前記アドレス空間上のアドレスに読み込み命令がなされると、状態が変化しうるデバイスである、
請求項７記載の分岐予測方法。
【請求項９】
前記第１のデバイスおよび前記第２のデバイスの一方を１つのチップセレクトに選択的に接続するステップをさらに有し、
前記アドレス空間を切替えるステップは、
前記第１のデバイスに割り当てられた前記アドレス空間が前記第２のデバイスに割り当てられるように、前記第１のデバイスと接続された前記チップセレクトが前記第２のデバイスと接続されるよう前記チップセレクトの接続先を切替えるステップである、
請求項７記載の分岐予測方法。
【請求項１０】
前記参照アドレス記憶部に記憶された所要のアドレスは、
前記読み込み不可なアドレスであり、
前記所要のアドレスを変更するステップは、
前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部に追記して記憶させるステップであり、
前記命令を読み出すステップは、
前記読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み不可なアドレスとが異なる場合のみ、前記分岐先アドレスからさらに命令を読み出すステップである、
請求項７記載の分岐予測方法。
【請求項１１】
前記参照アドレス記憶部に記憶された所要のアドレスは、
前記読み込み可能なアドレスであり、
前記所要のアドレスを変更するステップは、
前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部から削除するステップであり、
前記命令を読み出すステップは、
前記読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み可能なアドレスとが一致する場合のみ、前記分岐先アドレスからさらに命令を読み出すステップである、
請求項７記載の分岐予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分岐先バッファを用いて分岐命令に応じた分岐予測を行う情報処理装置、演算処理装置および分岐予測方法に関する。
【背景技術】
【０００２】
ＣＰＵやマイクロプロセッサなどのプロセッサ（演算処理装置）には、パイプライン方式を用いたものがある。パイプライン方式を用いるプロセッサにおいては、分岐命令によるパイプラインの乱れが性能向上を阻む要因のひとつとなる。
【０００３】
この分岐命令によるパイプラインの乱れを抑制する技術のひとつに、動的な分岐予測を利用する技術がある。動的な分岐予測機能を有するプロセッサは、分岐命令を実行する際に、過去の分岐方向の履歴にもとづいて分岐を予測する。過去の分岐方向の履歴（分岐命令のアドレス（分岐元アドレス）と分岐先アドレスの履歴）は、分岐先バッファに記憶される。
【０００４】
この種の分岐先バッファを用いて分岐命令に応じた分岐予測を行う技術によれば、プロセッサが分岐先バッファにもとづいてあらかじめ分岐する方向を予測し、この予測にもとづいたアドレスの命令をパイプラインに詰めていくことで、パイプラインの乱れが発生する確率を低くすることができる（たとえば特許文献１参照）。
【特許文献１】特開昭６２−２２４８２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、特に、ＨＤＤ記録装置、携帯電話機、デジタルカメラなどの組み込みシステムでは、アドレス空間全体の広さに対してオペレーティングシステム（以下、ＯＳという）が必要とするアドレス空間の割合が高く、ハードディスクドライブなどのデバイスに割り当てられるアドレス空間に制限がある場合がある。この場合、複数のデバイスで同一のアドレス空間を共有し、このアドレス空間に割り当てられるデバイスを動的に変更すれば、アドレス空間を効率的に利用することができる。
【０００６】
しかし、特許文献１に開示された技術をはじめとする従来の技術では、同一のアドレス空間が複数のデバイスに動的に切り替えられて割り当てられる場合について全く考慮されていない。
【０００７】
デバイスには、プロセッサからの読み込み（リード）により状態変化が起きてしまうものが存在する。たとえば、この種のデバイスに、ＮＯＲ型フラッシュメモリなどの実行可能なデバイスに割り当てられていたアドレス空間が切り替えられて割り当てられた場合を考える。分岐先バッファに記憶された分岐先アドレスにこのアドレス空間に所属するものがある場合、このデバイスを利用するプログラムが実行されると、分岐予測により、このデバイスに対してプログラムが意図しない読み込みが行われてしまう場合がある。この場合、このデバイスは、このデバイスを利用するプログラムが意図しない状態変化を起こしてしまい、誤動作などの不都合が生じてしまう。
【０００８】
本発明は、上述した事情を考慮してなされたもので、分岐先バッファを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる情報処理装置、演算処理装置および分岐予測方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、上述した課題を解決するために、あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、第１のデバイスに割り当てられたアドレス空間を、第２のデバイスに割り当てられるように切替える切替部と、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、を備えたことを特徴とするものである。
【００１０】
一方、本発明に係る演算処理装置は、上述した課題を解決するために、あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、第１のデバイスに割り当てられたアドレス空間を、第２のデバイスに割り当てられるように切替える切替部と、外部からの指示により、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、を備えたことを特徴とするものである。
【００１１】
一方、本発明に係る分岐予測方法は、上述した課題を解決するために、あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を分岐先バッファに記憶するステップと、前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを参照アドレス記憶部に記憶するステップと、第１のデバイスに割り当てられたアドレス空間を、第２のデバイスに割り当てられるように切替えるステップと、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更するステップと、前記参照アドレス記憶部を必要に応じて参照して命令を読み出すステップと、を有することを特徴とする方法である。
【発明の効果】
【００１２】
本発明に係る情報処理装置、演算処理装置および分岐予測方法によれば、分岐先バッファを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる。
【発明を実施するための最良の形態】
【００１３】
本発明に係る情報処理装置、演算処理装置および分岐予測方法の実施の形態について、添付図面を参照して説明する。
【００１４】
演算処理装置としては、分岐先バッファを用いて分岐命令に応じた分岐予測を行う分岐予測機能を有するＣＰＵやマイクロプロセッサなどのプロセッサを用いることができる。以下の説明では、演算処理装置として、ＣＰＵを用いる場合の一例について示す。
【００１５】
また、情報処理装置としては、分岐予測機能を有する演算処理装置を備えた組み込みシステムなどを用いることができる。以下の説明では、情報処理装置として、分岐予測機能を有するＣＰＵを備えたＨＤＤ記録装置（以下、記録装置という）を用いる場合の一例について示す。
【００１６】
図１は、本発明に係る情報処理装置（演算処理装置を含む）の第１実施形態を示す概略的な全体構成図である。
【００１７】
情報処理装置としての記録装置１０は、演算処理装置としてのＣＰＵ１１、ＤＲＡＭ１２（Dynamic Random access memory）、第１のデバイスとしてのＮＯＲ型フラッシュメモリ（以下、NOR Flash１３という）、第２のデバイスとしてのＨＤＤ１４（Hard disk drive）、表示出力部１５、操作入力部１６およびチューナ１７を有する。
【００１８】
ＣＰＵ１１は、図１に示すように、分岐予測部２１および命令取得部２２を有する。
【００１９】
分岐予測部２１は、分岐先バッファとしてのＢＴＢ２３（Branch Target Buffer）を有し、ＢＴＢ２３を参照して分岐命令に応じた分岐予測を行う。より詳細には、分岐予測部２１は、命令取得部２２から通知された命令のアドレスと、ＢＴＢ２３に記憶されている分岐命令のアドレス（分岐元アドレス）が一致するかどうかを判定し、一致した場合には、一致した分岐命令のアドレスに関連付けられた分岐先アドレスの情報をＢＴＢ２３から読み出して、命令取得部２２に与える。
【００２０】
分岐先バッファとしてのＢＴＢ２３は、ＣＰＵ１１があらかじめ分岐命令を実行することにより得た、分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を分岐命令ごとに記憶する。
【００２１】
命令取得部２２は、各種プログラムの命令を順次読み出してＣＰＵ１１の命令デコードに与える。また、命令取得部２２はこの読み出しと同時に分岐予測部２１に命令のアドレスを通知する。分岐予測部２１から分岐先アドレスが与えられた場合は、命令取得部２２は、この分岐先アドレスから命令を取得する。
【００２２】
分岐予測部２１、命令取得部２２およびＢＴＢ２３は、回路などのハードウエアロジックにより構成される。
【００２３】
また、ＣＰＵ１１は、NOR Flash１３内に記憶されたプログラムに従って、記録装置１０を制御する。ＣＰＵ１１は、NOR Flash１３に割り当てられたアドレスに直接アクセスすることにより、NOR Flash１３に記憶されたＢＩＯＳ（Basic Input Output System）に記述された命令を直接実行し（execute in place）、記録装置１０を起動する。
【００２４】
さらに、ＣＰＵ１１は、NOR Flash１３に記憶されたＯＳ（Operating system）、録画プログラムおよびプログラムの実行のために必要なデータを、ＤＲＡＭ１２へロードし、ＯＳおよび録画プログラムに従って記録装置１０を制御する。
【００２５】
ＤＲＡＭ１２は、NOR Flash１３に記憶されたＯＳおよび録画プログラムをロードされてＣＰＵ１１の作業用記憶領域として用いられ、演算すべきデータや命令、演算結果などが一時的に保持される。
【００２６】
第１のデバイスとしてのNOR Flash１３は、図１に示すように、ＢＩＯＳ、ＯＳおよび録画プログラムなどのＣＰＵ１１が実行するプログラムおよびこれらのプログラムを実行するために必要な各種データを記憶する。
【００２７】
第２のデバイスとしてのＨＤＤ１４は、ＣＰＵ１１が録画プログラムを実行することにより、チューナ１７を介して入力される放送された番組の映像データなどを、この録画データとして格納する。
【００２８】
NOR Flash１３およびＨＤＤ１４の一方は、スイッチ５０を介して、ＣＰＵ１１のチップセレクト信号線（以下、チップセレクトという）に選択的に接続される。記録装置１０の起動時には、チップセレクトにはNOR Flash１３が接続されるものとする。NOR Flash１３に記憶されたＢＩＯＳを起動時に利用するためである。このスイッチ５０は、ＣＰＵ１１により制御されて、必要に応じて、チップセレクトの接続先をNOR Flash１３からＨＤＤ１４に切り替える。
【００２９】
図２は、チップセレクトの接続先を切り替えることにより、同一のアドレス空間に対する割り当てデバイスがNOR Flash１３からＨＤＤ１４に変更される様子を示す簡単な説明図である。
【００３０】
このチップセレクトは、１つのアドレス空間に対応する。このため、図２に示すように、記録装置１０の起動時にNOR Flash１３に割り当てられていたアドレス空間は、チップセレクトの接続がNOR Flash１３からＨＤＤ１４に切替わると、そのまま、ＨＤＤ１４に割り当てられたアドレス空間となる。
【００３１】
なお、１つのチップセレクトに対してスイッチ５０を介して選択的に接続されるデバイスの数は２つに限定されず、３つ以上であってもよい。以下の説明では、１つのチップセレクトに対してスイッチ５０を介してNOR Flash１３およびＨＤＤ１４が選択的に接続される場合の一例について示す。
【００３２】
ＣＰＵ１１は、ＤＲＡＭ１２およびNOR Flash１３に対し、あらかじめ割り当てられたアドレス空間のアドレスを指定してアクセスすることでデータを読み出すことができる。このため、ＤＲＡＭ１２およびNOR Flash１３は、割り当てられたアドレス空間上で命令を直接実行可能なデバイスである。
【００３３】
ＤＲＡＭ１２およびNOR Flash１３は、ＣＰＵ１１による読み出しで状態が変化することはない。一方、ＨＤＤ１４は、割り当てられたアドレス空間上のアドレスに対して、プログラムに従ってＣＰＵ１１から読み出し命令がなされると、状態が変化しうる（読み出し（リード）に意味がある）デバイスである。
【００３４】
たとえばＨＤＤ１４からデータを読み出す場合、読み出すデータのサイズ（たとえば５１２バイト）により、ＨＤＤ１４から読み出しを行うべき回数がきまる（たとえばデータ幅が８ビットなら５１２回）。ＨＤＤ１４コントローラは読み出しが行われた回数をカウントするため、読み出しが行われるごとにこのカウントしている回数が変化する。
【００３５】
操作受付部は、たとえばキーボード、タッチパネル、テンキーなどの一般的な入力装置により構成され、ユーザの操作に対応した操作入力信号をＣＰＵ１１に出力する。
【００３６】
表示出力部１５は、たとえば液晶ディスプレイやＣＲＴディスプレイなどの一般的な表示出力装置により構成され、ＣＰＵ１１の制御に従って各種情報を表示する。
【００３７】
チューナ１７は、テレビジョン放送信号を受信し、放送される番組の映像データ、音声データおよびＥＰＧ（Electronic Program Guide）データなどを受信する。
【００３８】
図３は、図１に示すＣＰＵ１１による機能実現部２０の構成例を示す概略的なブロック図である。なお、この機能実現部２０は、ＣＰＵ１１を用いることなく回路などのハードウエアロジックによって構成してもよい。
【００３９】
ＣＰＵ１１は、少なくともＯＳおよび録画プログラムの一方によって、少なくとも切替部３１およびバッファ変更部３２を含む機能実現部２０として機能する。なお、この機能実現部２０は、ＣＰＵ１１を用いることなく回路などのハードウエアロジックによって構成してもよい。
【００４０】
次に、ＣＰＵ１１の機能実現部２０について説明する。
【００４１】
切替部３１は、スイッチ５０を制御し、必要に応じてチップセレクトの接続先をNOR Flash１３からＨＤＤ１４に切り替える機能を有する。この切り替えが行われると、記録装置１０の起動時にNOR Flash１３に割り当てられていたアドレス空間は、ＨＤＤ１４に割り当てられる。
【００４２】
バッファ変更部３２は、ＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を、分岐予測部２１のＢＴＢ２３から削除する機能を有する。
【００４３】
次に、本実施形態に係る記録装置１０の動作の一例について説明する。
【００４４】
図４は、図１に示す記録装置１０のＣＰＵ１１により、ＢＴＢ２３を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の手順を示すフローチャートである。図４において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００４５】
この手順は、記録装置１０の電源が投入されチップセレクトにNOR Flash１３が接続されてスタートとなる。
【００４６】
なお、以下のステップＳ１からＳ４の説明においては、ＢＩＯＳが起動した後、ＯＳの初期起動時にＢＴＢ２３を変更する場合の例について説明する。
【００４７】
まず、ステップＳ１において、ＣＰＵ１１は、NOR Flash１３に割り当てられたアドレスに直接アクセスすることにより、NOR Flash１３に記憶されたＢＩＯＳに記述された命令を直接実行し、記録装置１０を起動する。
【００４８】
図５は、ＢＴＢ２３に記憶された分岐予測情報のリストの一例を示す説明図である。
【００４９】
ステップＳ１では、NOR Flash１３に割り当てられたアドレス空間上でＢＩＯＳが直接実行される。NOR Flash１３はアクセス速度が遅いものの、ＢＩＯＳの実行は記録装置１０の起動時のみであるため、NOR Flash１３のアドレス空間上で直接実行してもよい。
【００５０】
ステップＳ１を実行すると、ＢＩＯＳに記述された命令に含まれる分岐命令を実行した結果として、図５の左図に示すように、ＢＴＢ２３のリストに、NOR Flash１３のアドレス空間に属するアドレスを含む分岐予測情報が追加される。
【００５１】
次に、ステップＳ２において、ＣＰＵ１１は、ＯＳをＤＲＡＭ１２に展開する。ＯＳは、記録装置１０の起動中、頻繁に利用される。NOR Flash１３はＤＲＡＭ１２よりアクセス速度が遅いため、NOR Flash１３のアドレス空間上で直接実行するよりも、ＤＲＡＭ１２にロードしてからこのＤＲＡＭ１２のアドレス空間上で実行するほうが好ましい。
【００５２】
次に、ステップＳ３において、ＣＰＵ１１は、ＯＳを実行することにより切替部３１として機能し、スイッチ５０を制御してチップセレクト信号線の接続先をNOR Flash１３からＨＤＤ１４に切替える。この結果、NOR Flash１３に割り当てられたアドレス空間は、ＨＤＤ１４に割り当てられる。
【００５３】
しかし、ＢＴＢ２３には、すでにＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報が記憶されている。このため、このままでは、たとえば録画プログラムが実行されるなどしてＨＤＤ１４ドライバによるＨＤＤ１４に対する読み出しが行われている途中で、読み出しているアドレスがＢＴＢ２３の分岐元アドレスと一致してしまうと、分岐先アドレスに対する読み出し（先読み）が行われてしまう場合がある。
【００５４】
この先読みは、ＨＤＤ１４からの読み出しをＣＰＵ１１に実行させているプログラムは意図しない読み出しである。プログラムが意図しないこのような先読みが１回でも割り込むと、ＨＤＤ１４コントローラがカウントする回数がずれ、読み出されるデータに不具合が起きてしまう。
【００５５】
したがって、割り当てられたアドレス空間上のアドレスに対して読み出し命令がなされると状態が変化しうるＨＤＤ１４などのデバイスには、プログラムが意図しない読み出しが行われないように注意する必要がある。
【００５６】
状態が変化しうるＨＤＤ１４などのデバイスに対してプログラムが意図しない読み出しが行われないようにする方法として、たとえば、ＢＴＢ２３に記憶されている分岐予測情報のうち、ＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を削除する方法が考えられる。
【００５７】
ステップＳ４において、ＣＰＵ１１は、ＯＳを実行することによりバッファ変更部３２として機能し、ＢＴＢ２３からＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を削除する（図５右図参照）。この結果、ＨＤＤ１４に対してプログラムが意図しない先読みが行われないようにすることができる。
【００５８】
以上の手順により、ＢＴＢ２３を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる。
【００５９】
なお、ステップＳ４で実行されるＢＴＢ２３の変更（分岐予測情報の一部削除）は、ＯＳの起動直後に実行される必要はなく、たとえば録画プログラムがＨＤＤ１４にアクセスする直前など、プログラムがＨＤＤ１４にアクセスする前に完了していればよい。また、ステップＳ４で実行されるＢＴＢ２３の変更は、ステップＳ３で行われる切り替えの直後または直前に行うと、プログラムが予期しない先読みの発生を効率よく防ぐことができる。
【００６０】
さらに、切替部３１およびバッファ変更部３２の機能は、ＣＰＵ１１がＯＳ以外のプログラムを実行することにより実現されてもよい。切替部３１の機能を有するプログラムは、当然に切り替えられるアドレス空間の情報を有しているため、切替部３１およびバッファ変更部３２の機能は、同一のプログラムにもとづいて実現されるようにするとよい。
【００６１】
図６は、第１実施形態における命令取得部２２の動作について簡単に説明したフローチャートである。図６において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００６２】
この手順は、命令取得部２２が命令のアドレスを取得してスタートとなる。
【００６３】
ステップＳ１１において、分岐予測部２１は、命令取得部２２から命令のアドレスを通知され、この命令のアドレスと一致するアドレスが、ＢＴＢ２３に記憶されている分岐命令のアドレス（分岐元アドレス）にあるかどうか判定する。この命令のアドレスと一致する分岐命令のアドレスがある場合は、ステップＳ１２に進む。一方、ない場合は、ステップＳ１３に進む。
【００６４】
次に、ステップＳ１２において、命令取得部２２は、分岐予測部２１から分岐先アドレスを与えられ、この分岐先アドレスから命令を取得する。
【００６５】
一方、ステップＳ１３において、命令取得部２２は、次の命令のアドレスから命令を取得する。
【００６６】
以上の手順を繰り返すことにより、ＣＰＵ１１はデバイスから命令を順次読み出して実行することができる。
【００６７】
図６に示すように、命令取得部２２は、分岐予測部２１から分岐先アドレスを与えられた場合は、この分岐先アドレスに対する読み出しを行ってしまう。あらかじめ、ＢＴＢ２３に記憶されている分岐予測情報からＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を削除しておけば、プログラムが意図しない先読みを命令取得部２２に行わせないようにすることができる。
【００６８】
本実施形態に係る情報処理装置としての記録装置１０は、ＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報をＢＴＢ２３から削除するバッファ変更部３２を備える。このため、分岐予測機能を有する演算処理装置を備えた情報処理装置において、１つのアドレス空間を複数のデバイスに切り替えて割り当てて利用する場合に、プログラムが意図しない先読みを防ぐことができる。
【００６９】
したがって、本実施形態に係る情報処理装置によれば、分岐予測機能を有する演算処理装置を備えた情報処理装置において、プログラムの意図しない先読みを発生させずに１つのアドレス空間を複数のデバイスで切り替えながら利用することができ、アドレス空間を効率的に利用することができるため、アドレス空間全体のサイズを抑制することができる。
【００７０】
次に、本発明に係る情報処理装置（演算処理装置を含む）の第２実施形態について説明する。
【００７１】
この第２実施形態に示す情報処理装置は、バッファ変更部３２を持たず、分岐予測により予測された分岐先アドレスの命令を命令取得部２２が読み出す際に所要のアドレスを参照して読み出しを実行するか否かを決める点で第１実施形態に示す情報処理装置と異なる。他の構成および作用については図１に示す情報処理装置と実質的に異ならないため、同じ構成には同一符号を付して説明を省略する。
【００７２】
本実施形態に係る情報処理装置は、アドレス空間の割り当てがNOR Flash１３からＨＤＤ１４に変更されてもＢＴＢ２３は全く変更されず、命令取得部２２が読み出すアドレスに制限をかけることでプログラムが予期しない先読みの発生を防ぐ。
【００７３】
図７は、本発明に係る情報処理装置（演算処理装置を含む）の第２実施形態を示す概略的な全体構成図である。
【００７４】
情報処理装置としての記録装置１０Ａは、演算処理装置としてのＣＰＵ１１、ＤＲＡＭ１２、第１のデバイスとしてのNOR Flash１３、第２のデバイスとしてのＨＤＤ１４、表示出力部１５、操作入力部１６およびチューナ１７を有する。
【００７５】
ＣＰＵ１１は、図７に示すように、分岐予測部２１、命令取得部２２および参照アドレス記憶部４１を有する。
【００７６】
命令取得部２２は、各種プログラムの命令を順次読み出してＣＰＵ１１の命令デコードに与える。また、命令取得部２２はこの読み出しと同時に分岐予測部２１に命令のアドレスを通知する。分岐予測部２１から分岐先アドレスが与えられた場合には、命令取得部２２は、参照アドレス記憶部４１を参照して、必要に応じて分岐先アドレスから命令を取得する。
【００７７】
参照アドレス記憶部４１は、分岐予測により予測された分岐先アドレスの命令を読み出す際に命令取得部２２により参照される所要のアドレスを記憶する。
【００７８】
以下の説明では、参照アドレス記憶部４１に記憶された所要のアドレスが、NOR Flash１３からＨＤＤ１４に割り当てられたアドレス空間に属する、命令取得部２２が先読みしてはならない無効なアドレスである場合の例について説明する。
【００７９】
図８は、図７に示すＣＰＵ１１による機能実現部２０の構成例を示す概略的なブロック図である。なお、この機能実現部２０は、ＣＰＵ１１を用いることなく回路などのハードウエアロジックによって構成してもよい。
【００８０】
ＣＰＵ１１は、少なくともＯＳおよび録画プログラムの一方によって、少なくとも切替部３１および参照アドレス変更部４２を含む機能実現部２０として機能する。なお、この機能実現部２０は、ＣＰＵ１１を用いることなく回路などのハードウエアロジックによって構成してもよい。
【００８１】
次に、ＣＰＵ１１の機能実現部２０について説明する。
【００８２】
切替部３１は、スイッチ５０を制御し、必要に応じてチップセレクトの接続先をNOR Flash１３からＨＤＤ１４に切り替える機能を有する。この切り替えが行われると、記録装置１０Ａの起動時にNOR Flash１３に割り当てられていたアドレス空間は、ＨＤＤ１４に割り当てられる。
【００８３】
参照アドレス変更部４２は、ＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを全て参照アドレス記憶部４１に追記して記憶させる機能を有する。
【００８４】
次に、本実施形態に係る記録装置１０Ａの動作の一例について説明する。
【００８５】
図９は、図７に示す記録装置１０ＡのＣＰＵ１１により、ＢＴＢ２３を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の他の手順を示すフローチャートである。図９において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。図４と同等のステップには同一符号を付し、重複する説明を省略する。
【００８６】
状態が変化しうるＨＤＤ１４などのデバイスに対してプログラムが意図しない読み出しが行われないようにする他の方法として、たとえば、あらかじめ先読みしてもよいアドレス（先読み可能な有効アドレス）または先読みしてはいけないアドレス（先読み不可な無効アドレス）を参照アドレス記憶部４１に記憶しておき、命令取得部２２が分岐予測部２１から分岐先アドレスを与えられた場合には、必ず参照アドレス記憶部４１を参照して、分岐先アドレスからの読出しを実行してもよいかどうか判定するようにする方法が考えられる。
【００８７】
ステップＳ２０において、ＣＰＵ１１は、ＯＳを実行することにより参照アドレス変更部４２として機能し、ＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを全て参照アドレス記憶部４１に追記して記憶させる。
【００８８】
以上の手順によっても、ＢＴＢ２３を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる。
【００８９】
図１０は、第２実施形態における命令取得部２２の動作について簡単に説明したフローチャートである。図１０において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００９０】
ステップＳ２１において、分岐予測部２１は、命令取得部２２から命令のアドレスを通知され、この命令のアドレスと一致するアドレスが、ＢＴＢ２３に記憶されている分岐命令のアドレス（分岐元アドレス）にあるかどうか判定する。この命令のアドレスと一致する分岐命令のアドレスがある場合は、ステップＳ２２に進む。一方、ない場合は、ステップＳ２４に進む。
【００９１】
次に、ステップＳ２２において、命令取得部２２は、無効アドレスが記憶された参照アドレス記憶部４１を参照し、分岐予測部２１から与えられた分岐先アドレスと一致するアドレスがあるかどうか判定する。分岐先アドレスと一致する無効アドレスがある場合は、分岐先アドレスに対する読み出しを実行せず、一連の手順は終了となる。一方、ない場合は、ステップＳ２３に進む。
【００９２】
次に、ステップＳ２３において、命令取得部２２は、分岐先アドレスから命令を取得する。
【００９３】
一方、ステップＳ２４において、命令取得部２２は、次の命令のアドレスから命令を取得する。
【００９４】
以上の手順を繰り返すことにより、ＣＰＵ１１はデバイスから命令を順次読み出して実行する際に、ＢＴＢ２３に命令取得部２２が先読みを行うべきでないアドレスが登録されたままであっても、この先読みを行うべきでないアドレスに対する読み込みを制限することができる。
【００９５】
なお、参照アドレス記憶部４１に記憶された所要のアドレスは、NOR Flash１３からＨＤＤ１４に割り当てられたアドレス空間に属する命令取得部２２が先読みしてはならない無効なアドレスを、全アドレス空間に属するアドレスから削除した、命令取得部２２が先読みしてもよい有効なアドレスであってもよい。この場合、参照アドレス変更部４２は、あらかじめ参照アドレス記憶部４１に記憶された全アドレス空間に属するアドレスの情報から、ＨＤＤ１４に割り当てられたアドレス空間に属するアドレスを削除する機能を有する。
【００９６】
図７に示した情報処理装置によっても、図１に示した情報処理装置と同様の作用効果を奏する。
【００９７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【００９８】
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【００９９】
また、本発明は、分岐予測機能を有するプロセッサを備えた情報処理装置に対して適用可能である。特に本発明は、アドレス空間がそれほど広大でない情報処理装置に適している。したがって、本発明は、上記実施形態で説明したＨＤＤ記録装置のほかにも、特に、携帯電話機、デジタルカメラ、自動車、自動販売機、ゲーム機、ＰＤＡ（Personal Digital Assistant）などの組み込みシステムに適用することが可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明に係る情報処理装置（演算処理装置を含む）の第１実施形態を示す概略的な全体構成図。
【図２】チップセレクトの接続先を切替えることにより、同一のアドレス空間に対する割り当てデバイスがNOR FlashからＨＤＤに変更される様子を示す簡単な説明図。
【図３】図１に示すＣＰＵによる機能実現部の構成例を示す概略的なブロック図。
【図４】図１に示す記録装置のＣＰＵにより、ＢＴＢを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の手順を示すフローチャート。
【図５】ＢＴＢに記憶された分岐予測情報のリストの一例を示す説明図。
【図６】第１実施形態における命令取得部の動作について簡単に説明したフローチャート。
【図７】本発明に係る情報処理装置（演算処理装置を含む）の第２実施形態を示す概略的な全体構成図。
【図８】図７に示すＣＰＵによる機能実現部の構成例を示す概略的なブロック図。
【図９】図７に示す記録装置のＣＰＵにより、ＢＴＢを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の他の手順を示すフローチャート。
【図１０】第２実施形態における命令取得部の動作について簡単に説明したフローチャート。
【符号の説明】
【０１０１】
１０、１０Ａ  記録装置
１１  ＣＰＵ
１２  ＤＲＡＭ
１３  NOR Flash
１４  ＨＤＤ
１５  表示出力部
１６  操作入力部
１７  チューナ
２０  機能実現部
２１  分岐予測部
２２  命令取得部
２３  ＢＴＢ
３１  切替部
３２  バッファ変更部
４１  参照アドレス記憶部
４２  参照アドレス変更部
５０  スイッチ
【図１】
2009110383.tif 000003
【図２】
2009110383.tif 000004
【図３】
2009110383.tif 000005
【図４】
2009110383.tif 000006
【図５】
2009110383.tif 000007
【図６】
2009110383.tif 000008
【図７】
2009110383.tif 000009
【図８】
2009110383.tif 000010
【図９】
2009110383.tif 000011
【図１０】
2009110383.tif 000012