[go: up one dir, main page]

JP2009110383A - 情報処理装置、演算処理装置および分岐予測方法 - Google Patents

情報処理装置、演算処理装置および分岐予測方法 Download PDF

Info

Publication number
JP2009110383A
JP2009110383A JP2007283508A JP2007283508A JP2009110383A JP 2009110383 A JP2009110383 A JP 2009110383A JP 2007283508 A JP2007283508 A JP 2007283508A JP 2007283508 A JP2007283508 A JP 2007283508A JP 2009110383 A JP2009110383 A JP 2009110383A
Authority
JP
Japan
Prior art keywords
address
branch
instruction
branch destination
unit
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.)
Withdrawn
Application number
JP2007283508A
Other languages
English (en)
Inventor
Katsuki Uetoko
克樹 上床
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007283508A priority Critical patent/JP2009110383A/ja
Publication of JP2009110383A publication Critical patent/JP2009110383A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

【課題】分岐先バッファを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる情報処理装置、演算処理装置および分岐予測方法を提供する。
【解決手段】本発明に係る情報処理装置としての記録装置10は、演算処理装置としてのCPU11、DRAM12、第1のデバイスとしてのNOR型フラッシュメモリ13、第2のデバイスとしてのHDD14、表示出力部15、操作入力部16およびチューナ17を有する。NOR Flash13およびHDD14の一方は、スイッチ50を介して、CPU11のチップセレクト信号線(以下、チップセレクトという)に選択的に接続される。CPU11は、分岐予測部21および命令取得部22を有する。また、CPU11は、少なくともOSおよび録画プログラムの一方によって、少なくとも切替部およびバッファ変更部を含む機能実現部として機能する。
【選択図】 図1

Description

本発明は、分岐先バッファを用いて分岐命令に応じた分岐予測を行う情報処理装置、演算処理装置および分岐予測方法に関する。
CPUやマイクロプロセッサなどのプロセッサ(演算処理装置)には、パイプライン方式を用いたものがある。パイプライン方式を用いるプロセッサにおいては、分岐命令によるパイプラインの乱れが性能向上を阻む要因のひとつとなる。
この分岐命令によるパイプラインの乱れを抑制する技術のひとつに、動的な分岐予測を利用する技術がある。動的な分岐予測機能を有するプロセッサは、分岐命令を実行する際に、過去の分岐方向の履歴にもとづいて分岐を予測する。過去の分岐方向の履歴(分岐命令のアドレス(分岐元アドレス)と分岐先アドレスの履歴)は、分岐先バッファに記憶される。
この種の分岐先バッファを用いて分岐命令に応じた分岐予測を行う技術によれば、プロセッサが分岐先バッファにもとづいてあらかじめ分岐する方向を予測し、この予測にもとづいたアドレスの命令をパイプラインに詰めていくことで、パイプラインの乱れが発生する確率を低くすることができる(たとえば特許文献1参照)。
特開昭62−224829号公報
ところで、特に、HDD記録装置、携帯電話機、デジタルカメラなどの組み込みシステムでは、アドレス空間全体の広さに対してオペレーティングシステム(以下、OSという)が必要とするアドレス空間の割合が高く、ハードディスクドライブなどのデバイスに割り当てられるアドレス空間に制限がある場合がある。この場合、複数のデバイスで同一のアドレス空間を共有し、このアドレス空間に割り当てられるデバイスを動的に変更すれば、アドレス空間を効率的に利用することができる。
しかし、特許文献1に開示された技術をはじめとする従来の技術では、同一のアドレス空間が複数のデバイスに動的に切り替えられて割り当てられる場合について全く考慮されていない。
デバイスには、プロセッサからの読み込み(リード)により状態変化が起きてしまうものが存在する。たとえば、この種のデバイスに、NOR型フラッシュメモリなどの実行可能なデバイスに割り当てられていたアドレス空間が切り替えられて割り当てられた場合を考える。分岐先バッファに記憶された分岐先アドレスにこのアドレス空間に所属するものがある場合、このデバイスを利用するプログラムが実行されると、分岐予測により、このデバイスに対してプログラムが意図しない読み込みが行われてしまう場合がある。この場合、このデバイスは、このデバイスを利用するプログラムが意図しない状態変化を起こしてしまい、誤動作などの不都合が生じてしまう。
本発明は、上述した事情を考慮してなされたもので、分岐先バッファを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる情報処理装置、演算処理装置および分岐予測方法を提供することを目的とする。
本発明に係る情報処理装置は、上述した課題を解決するために、あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、第1のデバイスに割り当てられたアドレス空間を、第2のデバイスに割り当てられるように切替える切替部と、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、を備えたことを特徴とするものである。
一方、本発明に係る演算処理装置は、上述した課題を解決するために、あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、第1のデバイスに割り当てられたアドレス空間を、第2のデバイスに割り当てられるように切替える切替部と、外部からの指示により、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、を備えたことを特徴とするものである。
一方、本発明に係る分岐予測方法は、上述した課題を解決するために、あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を分岐先バッファに記憶するステップと、前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを参照アドレス記憶部に記憶するステップと、第1のデバイスに割り当てられたアドレス空間を、第2のデバイスに割り当てられるように切替えるステップと、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更するステップと、前記参照アドレス記憶部を必要に応じて参照して命令を読み出すステップと、を有することを特徴とする方法である。
本発明に係る情報処理装置、演算処理装置および分岐予測方法によれば、分岐先バッファを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる。
本発明に係る情報処理装置、演算処理装置および分岐予測方法の実施の形態について、添付図面を参照して説明する。
演算処理装置としては、分岐先バッファを用いて分岐命令に応じた分岐予測を行う分岐予測機能を有するCPUやマイクロプロセッサなどのプロセッサを用いることができる。以下の説明では、演算処理装置として、CPUを用いる場合の一例について示す。
また、情報処理装置としては、分岐予測機能を有する演算処理装置を備えた組み込みシステムなどを用いることができる。以下の説明では、情報処理装置として、分岐予測機能を有するCPUを備えたHDD記録装置(以下、記録装置という)を用いる場合の一例について示す。
図1は、本発明に係る情報処理装置(演算処理装置を含む)の第1実施形態を示す概略的な全体構成図である。
情報処理装置としての記録装置10は、演算処理装置としてのCPU11、DRAM12(Dynamic Random access memory)、第1のデバイスとしてのNOR型フラッシュメモリ(以下、NOR Flash13という)、第2のデバイスとしてのHDD14(Hard disk drive)、表示出力部15、操作入力部16およびチューナ17を有する。
CPU11は、図1に示すように、分岐予測部21および命令取得部22を有する。
分岐予測部21は、分岐先バッファとしてのBTB23(Branch Target Buffer)を有し、BTB23を参照して分岐命令に応じた分岐予測を行う。より詳細には、分岐予測部21は、命令取得部22から通知された命令のアドレスと、BTB23に記憶されている分岐命令のアドレス(分岐元アドレス)が一致するかどうかを判定し、一致した場合には、一致した分岐命令のアドレスに関連付けられた分岐先アドレスの情報をBTB23から読み出して、命令取得部22に与える。
分岐先バッファとしてのBTB23は、CPU11があらかじめ分岐命令を実行することにより得た、分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を分岐命令ごとに記憶する。
命令取得部22は、各種プログラムの命令を順次読み出してCPU11の命令デコードに与える。また、命令取得部22はこの読み出しと同時に分岐予測部21に命令のアドレスを通知する。分岐予測部21から分岐先アドレスが与えられた場合は、命令取得部22は、この分岐先アドレスから命令を取得する。
分岐予測部21、命令取得部22およびBTB23は、回路などのハードウエアロジックにより構成される。
また、CPU11は、NOR Flash13内に記憶されたプログラムに従って、記録装置10を制御する。CPU11は、NOR Flash13に割り当てられたアドレスに直接アクセスすることにより、NOR Flash13に記憶されたBIOS(Basic Input Output System)に記述された命令を直接実行し(execute in place)、記録装置10を起動する。
さらに、CPU11は、NOR Flash13に記憶されたOS(Operating system)、録画プログラムおよびプログラムの実行のために必要なデータを、DRAM12へロードし、OSおよび録画プログラムに従って記録装置10を制御する。
DRAM12は、NOR Flash13に記憶されたOSおよび録画プログラムをロードされてCPU11の作業用記憶領域として用いられ、演算すべきデータや命令、演算結果などが一時的に保持される。
第1のデバイスとしてのNOR Flash13は、図1に示すように、BIOS、OSおよび録画プログラムなどのCPU11が実行するプログラムおよびこれらのプログラムを実行するために必要な各種データを記憶する。
第2のデバイスとしてのHDD14は、CPU11が録画プログラムを実行することにより、チューナ17を介して入力される放送された番組の映像データなどを、この録画データとして格納する。
NOR Flash13およびHDD14の一方は、スイッチ50を介して、CPU11のチップセレクト信号線(以下、チップセレクトという)に選択的に接続される。記録装置10の起動時には、チップセレクトにはNOR Flash13が接続されるものとする。NOR Flash13に記憶されたBIOSを起動時に利用するためである。このスイッチ50は、CPU11により制御されて、必要に応じて、チップセレクトの接続先をNOR Flash13からHDD14に切り替える。
図2は、チップセレクトの接続先を切り替えることにより、同一のアドレス空間に対する割り当てデバイスがNOR Flash13からHDD14に変更される様子を示す簡単な説明図である。
このチップセレクトは、1つのアドレス空間に対応する。このため、図2に示すように、記録装置10の起動時にNOR Flash13に割り当てられていたアドレス空間は、チップセレクトの接続がNOR Flash13からHDD14に切替わると、そのまま、HDD14に割り当てられたアドレス空間となる。
なお、1つのチップセレクトに対してスイッチ50を介して選択的に接続されるデバイスの数は2つに限定されず、3つ以上であってもよい。以下の説明では、1つのチップセレクトに対してスイッチ50を介してNOR Flash13およびHDD14が選択的に接続される場合の一例について示す。
CPU11は、DRAM12およびNOR Flash13に対し、あらかじめ割り当てられたアドレス空間のアドレスを指定してアクセスすることでデータを読み出すことができる。このため、DRAM12およびNOR Flash13は、割り当てられたアドレス空間上で命令を直接実行可能なデバイスである。
DRAM12およびNOR Flash13は、CPU11による読み出しで状態が変化することはない。一方、HDD14は、割り当てられたアドレス空間上のアドレスに対して、プログラムに従ってCPU11から読み出し命令がなされると、状態が変化しうる(読み出し(リード)に意味がある)デバイスである。
たとえばHDD14からデータを読み出す場合、読み出すデータのサイズ(たとえば512バイト)により、HDD14から読み出しを行うべき回数がきまる(たとえばデータ幅が8ビットなら512回)。HDD14コントローラは読み出しが行われた回数をカウントするため、読み出しが行われるごとにこのカウントしている回数が変化する。
操作受付部は、たとえばキーボード、タッチパネル、テンキーなどの一般的な入力装置により構成され、ユーザの操作に対応した操作入力信号をCPU11に出力する。
表示出力部15は、たとえば液晶ディスプレイやCRTディスプレイなどの一般的な表示出力装置により構成され、CPU11の制御に従って各種情報を表示する。
チューナ17は、テレビジョン放送信号を受信し、放送される番組の映像データ、音声データおよびEPG(Electronic Program Guide)データなどを受信する。
図3は、図1に示すCPU11による機能実現部20の構成例を示す概略的なブロック図である。なお、この機能実現部20は、CPU11を用いることなく回路などのハードウエアロジックによって構成してもよい。
CPU11は、少なくともOSおよび録画プログラムの一方によって、少なくとも切替部31およびバッファ変更部32を含む機能実現部20として機能する。なお、この機能実現部20は、CPU11を用いることなく回路などのハードウエアロジックによって構成してもよい。
次に、CPU11の機能実現部20について説明する。
切替部31は、スイッチ50を制御し、必要に応じてチップセレクトの接続先をNOR Flash13からHDD14に切り替える機能を有する。この切り替えが行われると、記録装置10の起動時にNOR Flash13に割り当てられていたアドレス空間は、HDD14に割り当てられる。
バッファ変更部32は、HDD14に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を、分岐予測部21のBTB23から削除する機能を有する。
次に、本実施形態に係る記録装置10の動作の一例について説明する。
図4は、図1に示す記録装置10のCPU11により、BTB23を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の手順を示すフローチャートである。図4において、Sに数字を付した符号は、フローチャートの各ステップを示す。
この手順は、記録装置10の電源が投入されチップセレクトにNOR Flash13が接続されてスタートとなる。
なお、以下のステップS1からS4の説明においては、BIOSが起動した後、OSの初期起動時にBTB23を変更する場合の例について説明する。
まず、ステップS1において、CPU11は、NOR Flash13に割り当てられたアドレスに直接アクセスすることにより、NOR Flash13に記憶されたBIOSに記述された命令を直接実行し、記録装置10を起動する。
図5は、BTB23に記憶された分岐予測情報のリストの一例を示す説明図である。
ステップS1では、NOR Flash13に割り当てられたアドレス空間上でBIOSが直接実行される。NOR Flash13はアクセス速度が遅いものの、BIOSの実行は記録装置10の起動時のみであるため、NOR Flash13のアドレス空間上で直接実行してもよい。
ステップS1を実行すると、BIOSに記述された命令に含まれる分岐命令を実行した結果として、図5の左図に示すように、BTB23のリストに、NOR Flash13のアドレス空間に属するアドレスを含む分岐予測情報が追加される。
次に、ステップS2において、CPU11は、OSをDRAM12に展開する。OSは、記録装置10の起動中、頻繁に利用される。NOR Flash13はDRAM12よりアクセス速度が遅いため、NOR Flash13のアドレス空間上で直接実行するよりも、DRAM12にロードしてからこのDRAM12のアドレス空間上で実行するほうが好ましい。
次に、ステップS3において、CPU11は、OSを実行することにより切替部31として機能し、スイッチ50を制御してチップセレクト信号線の接続先をNOR Flash13からHDD14に切替える。この結果、NOR Flash13に割り当てられたアドレス空間は、HDD14に割り当てられる。
しかし、BTB23には、すでにHDD14に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報が記憶されている。このため、このままでは、たとえば録画プログラムが実行されるなどしてHDD14ドライバによるHDD14に対する読み出しが行われている途中で、読み出しているアドレスがBTB23の分岐元アドレスと一致してしまうと、分岐先アドレスに対する読み出し(先読み)が行われてしまう場合がある。
この先読みは、HDD14からの読み出しをCPU11に実行させているプログラムは意図しない読み出しである。プログラムが意図しないこのような先読みが1回でも割り込むと、HDD14コントローラがカウントする回数がずれ、読み出されるデータに不具合が起きてしまう。
したがって、割り当てられたアドレス空間上のアドレスに対して読み出し命令がなされると状態が変化しうるHDD14などのデバイスには、プログラムが意図しない読み出しが行われないように注意する必要がある。
状態が変化しうるHDD14などのデバイスに対してプログラムが意図しない読み出しが行われないようにする方法として、たとえば、BTB23に記憶されている分岐予測情報のうち、HDD14に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を削除する方法が考えられる。
ステップS4において、CPU11は、OSを実行することによりバッファ変更部32として機能し、BTB23からHDD14に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を削除する(図5右図参照)。この結果、HDD14に対してプログラムが意図しない先読みが行われないようにすることができる。
以上の手順により、BTB23を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる。
なお、ステップS4で実行されるBTB23の変更(分岐予測情報の一部削除)は、OSの起動直後に実行される必要はなく、たとえば録画プログラムがHDD14にアクセスする直前など、プログラムがHDD14にアクセスする前に完了していればよい。また、ステップS4で実行されるBTB23の変更は、ステップS3で行われる切り替えの直後または直前に行うと、プログラムが予期しない先読みの発生を効率よく防ぐことができる。
さらに、切替部31およびバッファ変更部32の機能は、CPU11がOS以外のプログラムを実行することにより実現されてもよい。切替部31の機能を有するプログラムは、当然に切り替えられるアドレス空間の情報を有しているため、切替部31およびバッファ変更部32の機能は、同一のプログラムにもとづいて実現されるようにするとよい。
図6は、第1実施形態における命令取得部22の動作について簡単に説明したフローチャートである。図6において、Sに数字を付した符号は、フローチャートの各ステップを示す。
この手順は、命令取得部22が命令のアドレスを取得してスタートとなる。
ステップS11において、分岐予測部21は、命令取得部22から命令のアドレスを通知され、この命令のアドレスと一致するアドレスが、BTB23に記憶されている分岐命令のアドレス(分岐元アドレス)にあるかどうか判定する。この命令のアドレスと一致する分岐命令のアドレスがある場合は、ステップS12に進む。一方、ない場合は、ステップS13に進む。
次に、ステップS12において、命令取得部22は、分岐予測部21から分岐先アドレスを与えられ、この分岐先アドレスから命令を取得する。
一方、ステップS13において、命令取得部22は、次の命令のアドレスから命令を取得する。
以上の手順を繰り返すことにより、CPU11はデバイスから命令を順次読み出して実行することができる。
図6に示すように、命令取得部22は、分岐予測部21から分岐先アドレスを与えられた場合は、この分岐先アドレスに対する読み出しを行ってしまう。あらかじめ、BTB23に記憶されている分岐予測情報からHDD14に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報を削除しておけば、プログラムが意図しない先読みを命令取得部22に行わせないようにすることができる。
本実施形態に係る情報処理装置としての記録装置10は、HDD14に割り当てられたアドレス空間に属するアドレスを含む分岐予測情報をBTB23から削除するバッファ変更部32を備える。このため、分岐予測機能を有する演算処理装置を備えた情報処理装置において、1つのアドレス空間を複数のデバイスに切り替えて割り当てて利用する場合に、プログラムが意図しない先読みを防ぐことができる。
したがって、本実施形態に係る情報処理装置によれば、分岐予測機能を有する演算処理装置を備えた情報処理装置において、プログラムの意図しない先読みを発生させずに1つのアドレス空間を複数のデバイスで切り替えながら利用することができ、アドレス空間を効率的に利用することができるため、アドレス空間全体のサイズを抑制することができる。
次に、本発明に係る情報処理装置(演算処理装置を含む)の第2実施形態について説明する。
この第2実施形態に示す情報処理装置は、バッファ変更部32を持たず、分岐予測により予測された分岐先アドレスの命令を命令取得部22が読み出す際に所要のアドレスを参照して読み出しを実行するか否かを決める点で第1実施形態に示す情報処理装置と異なる。他の構成および作用については図1に示す情報処理装置と実質的に異ならないため、同じ構成には同一符号を付して説明を省略する。
本実施形態に係る情報処理装置は、アドレス空間の割り当てがNOR Flash13からHDD14に変更されてもBTB23は全く変更されず、命令取得部22が読み出すアドレスに制限をかけることでプログラムが予期しない先読みの発生を防ぐ。
図7は、本発明に係る情報処理装置(演算処理装置を含む)の第2実施形態を示す概略的な全体構成図である。
情報処理装置としての記録装置10Aは、演算処理装置としてのCPU11、DRAM12、第1のデバイスとしてのNOR Flash13、第2のデバイスとしてのHDD14、表示出力部15、操作入力部16およびチューナ17を有する。
CPU11は、図7に示すように、分岐予測部21、命令取得部22および参照アドレス記憶部41を有する。
命令取得部22は、各種プログラムの命令を順次読み出してCPU11の命令デコードに与える。また、命令取得部22はこの読み出しと同時に分岐予測部21に命令のアドレスを通知する。分岐予測部21から分岐先アドレスが与えられた場合には、命令取得部22は、参照アドレス記憶部41を参照して、必要に応じて分岐先アドレスから命令を取得する。
参照アドレス記憶部41は、分岐予測により予測された分岐先アドレスの命令を読み出す際に命令取得部22により参照される所要のアドレスを記憶する。
以下の説明では、参照アドレス記憶部41に記憶された所要のアドレスが、NOR Flash13からHDD14に割り当てられたアドレス空間に属する、命令取得部22が先読みしてはならない無効なアドレスである場合の例について説明する。
図8は、図7に示すCPU11による機能実現部20の構成例を示す概略的なブロック図である。なお、この機能実現部20は、CPU11を用いることなく回路などのハードウエアロジックによって構成してもよい。
CPU11は、少なくともOSおよび録画プログラムの一方によって、少なくとも切替部31および参照アドレス変更部42を含む機能実現部20として機能する。なお、この機能実現部20は、CPU11を用いることなく回路などのハードウエアロジックによって構成してもよい。
次に、CPU11の機能実現部20について説明する。
切替部31は、スイッチ50を制御し、必要に応じてチップセレクトの接続先をNOR Flash13からHDD14に切り替える機能を有する。この切り替えが行われると、記録装置10Aの起動時にNOR Flash13に割り当てられていたアドレス空間は、HDD14に割り当てられる。
参照アドレス変更部42は、HDD14に割り当てられたアドレス空間に属するアドレスを全て参照アドレス記憶部41に追記して記憶させる機能を有する。
次に、本実施形態に係る記録装置10Aの動作の一例について説明する。
図9は、図7に示す記録装置10AのCPU11により、BTB23を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の他の手順を示すフローチャートである。図9において、Sに数字を付した符号は、フローチャートの各ステップを示す。図4と同等のステップには同一符号を付し、重複する説明を省略する。
状態が変化しうるHDD14などのデバイスに対してプログラムが意図しない読み出しが行われないようにする他の方法として、たとえば、あらかじめ先読みしてもよいアドレス(先読み可能な有効アドレス)または先読みしてはいけないアドレス(先読み不可な無効アドレス)を参照アドレス記憶部41に記憶しておき、命令取得部22が分岐予測部21から分岐先アドレスを与えられた場合には、必ず参照アドレス記憶部41を参照して、分岐先アドレスからの読出しを実行してもよいかどうか判定するようにする方法が考えられる。
ステップS20において、CPU11は、OSを実行することにより参照アドレス変更部42として機能し、HDD14に割り当てられたアドレス空間に属するアドレスを全て参照アドレス記憶部41に追記して記憶させる。
以上の手順によっても、BTB23を用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限することができる。
図10は、第2実施形態における命令取得部22の動作について簡単に説明したフローチャートである。図10において、Sに数字を付した符号は、フローチャートの各ステップを示す。
ステップS21において、分岐予測部21は、命令取得部22から命令のアドレスを通知され、この命令のアドレスと一致するアドレスが、BTB23に記憶されている分岐命令のアドレス(分岐元アドレス)にあるかどうか判定する。この命令のアドレスと一致する分岐命令のアドレスがある場合は、ステップS22に進む。一方、ない場合は、ステップS24に進む。
次に、ステップS22において、命令取得部22は、無効アドレスが記憶された参照アドレス記憶部41を参照し、分岐予測部21から与えられた分岐先アドレスと一致するアドレスがあるかどうか判定する。分岐先アドレスと一致する無効アドレスがある場合は、分岐先アドレスに対する読み出しを実行せず、一連の手順は終了となる。一方、ない場合は、ステップS23に進む。
次に、ステップS23において、命令取得部22は、分岐先アドレスから命令を取得する。
一方、ステップS24において、命令取得部22は、次の命令のアドレスから命令を取得する。
以上の手順を繰り返すことにより、CPU11はデバイスから命令を順次読み出して実行する際に、BTB23に命令取得部22が先読みを行うべきでないアドレスが登録されたままであっても、この先読みを行うべきでないアドレスに対する読み込みを制限することができる。
なお、参照アドレス記憶部41に記憶された所要のアドレスは、NOR Flash13からHDD14に割り当てられたアドレス空間に属する命令取得部22が先読みしてはならない無効なアドレスを、全アドレス空間に属するアドレスから削除した、命令取得部22が先読みしてもよい有効なアドレスであってもよい。この場合、参照アドレス変更部42は、あらかじめ参照アドレス記憶部41に記憶された全アドレス空間に属するアドレスの情報から、HDD14に割り当てられたアドレス空間に属するアドレスを削除する機能を有する。
図7に示した情報処理装置によっても、図1に示した情報処理装置と同様の作用効果を奏する。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
また、本発明は、分岐予測機能を有するプロセッサを備えた情報処理装置に対して適用可能である。特に本発明は、アドレス空間がそれほど広大でない情報処理装置に適している。したがって、本発明は、上記実施形態で説明したHDD記録装置のほかにも、特に、携帯電話機、デジタルカメラ、自動車、自動販売機、ゲーム機、PDA(Personal Digital Assistant)などの組み込みシステムに適用することが可能である。
本発明に係る情報処理装置(演算処理装置を含む)の第1実施形態を示す概略的な全体構成図。 チップセレクトの接続先を切替えることにより、同一のアドレス空間に対する割り当てデバイスがNOR FlashからHDDに変更される様子を示す簡単な説明図。 図1に示すCPUによる機能実現部の構成例を示す概略的なブロック図。 図1に示す記録装置のCPUにより、BTBを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の手順を示すフローチャート。 BTBに記憶された分岐予測情報のリストの一例を示す説明図。 第1実施形態における命令取得部の動作について簡単に説明したフローチャート。 本発明に係る情報処理装置(演算処理装置を含む)の第2実施形態を示す概略的な全体構成図。 図7に示すCPUによる機能実現部の構成例を示す概略的なブロック図。 図7に示す記録装置のCPUにより、BTBを用いて分岐予測を行う際に、分岐先アドレスの一部に対する読み込みを動的に制限する際の他の手順を示すフローチャート。 第2実施形態における命令取得部の動作について簡単に説明したフローチャート。
符号の説明
10、10A 記録装置
11 CPU
12 DRAM
13 NOR Flash
14 HDD
15 表示出力部
16 操作入力部
17 チューナ
20 機能実現部
21 分岐予測部
22 命令取得部
23 BTB
31 切替部
32 バッファ変更部
41 参照アドレス記憶部
42 参照アドレス変更部
50 スイッチ

Claims (11)

  1. あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、
    前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、
    前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、
    前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、
    第1のデバイスに割り当てられたアドレス空間を、第2のデバイスに割り当てられるように切替える切替部と、
    前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、
    を備えたことを特徴とする情報処理装置。
  2. 前記第1のデバイスは、
    割り当てられた前記アドレス空間上で命令を直接実行可能なデバイスであり、
    前記第2のデバイスは、
    割り当てられた前記アドレス空間上のアドレスに読み出し命令がなされると、状態が変化しうるデバイスである、
    請求項1記載の情報処理装置。
  3. 前記第1のデバイスおよび前記第2のデバイスの一方を1つのチップセレクト信号線に選択的に接続するスイッチをさらに備え、
    前記切替部は、
    前記第1のデバイスに割り当てられた前記アドレス空間が前記第2のデバイスに割り当てられるように、前記スイッチを制御して前記チップセレクト信号線の接続先を前記第1のデバイスから前記第2のデバイスに切替える、
    請求項1記載の情報処理装置。
  4. 前記参照アドレス記憶部に記憶された所要のアドレスは、
    前記命令取得部が読み込み不可なアドレスであり、
    前記参照アドレス変更部は、
    前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部に追記して記憶させ、
    前記命令取得部は、
    前記命令取得部が読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み不可なアドレスとが異なる場合のみ、前記分岐先アドレスからさらに命令を読み出す、
    請求項1記載の情報処理装置。
  5. 前記参照アドレス記憶部に記憶された所要のアドレスは、
    前記命令取得部が読み込み可能なアドレスであり、
    前記参照アドレス変更部は、
    前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部から削除し、
    前記命令取得部は、
    前記命令取得部が読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み可能なアドレスとが一致する場合のみ、前記分岐先アドレスからさらに命令を読み出す、
    請求項1記載の情報処理装置。
  6. あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を記憶する分岐先バッファと、
    前記分岐先バッファを有し、前記分岐先バッファに記憶された前記分岐予測情報を用いて分岐予測を行う分岐予測部と、
    前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを記憶する参照アドレス記憶部と、
    前記参照アドレス記憶部を必要に応じて参照して命令を読み出す命令取得部と、
    第1のデバイスに割り当てられたアドレス空間を、第2のデバイスに割り当てられるように切替える切替部と、
    外部からの指示により、前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更する参照アドレス変更部と、
    を備えたことを特徴とする演算処理装置。
  7. あらかじめ分岐命令を実行することにより得られた前記分岐命令のアドレスと分岐先アドレスとを関連付けた分岐予測情報を分岐先バッファに記憶するステップと、
    前記分岐予測により予測された前記分岐先アドレスの命令を読み出す際に参照される所要のアドレスを参照アドレス記憶部に記憶するステップと、
    第1のデバイスに割り当てられたアドレス空間を、第2のデバイスに割り当てられるように切替えるステップと、
    前記アドレス空間に属するアドレスの情報を利用して前記参照アドレス記憶部に記憶された前記所要のアドレスを変更するステップと、
    前記参照アドレス記憶部を必要に応じて参照して命令を読み出すステップと、
    を有することを特徴とする分岐予測方法。
  8. 前記第1のデバイスは、
    割り当てられた前記アドレス空間上で命令を直接実行可能なデバイスであり、
    前記第2のデバイスは、
    割り当てられた前記アドレス空間上のアドレスに読み込み命令がなされると、状態が変化しうるデバイスである、
    請求項7記載の分岐予測方法。
  9. 前記第1のデバイスおよび前記第2のデバイスの一方を1つのチップセレクトに選択的に接続するステップをさらに有し、
    前記アドレス空間を切替えるステップは、
    前記第1のデバイスに割り当てられた前記アドレス空間が前記第2のデバイスに割り当てられるように、前記第1のデバイスと接続された前記チップセレクトが前記第2のデバイスと接続されるよう前記チップセレクトの接続先を切替えるステップである、
    請求項7記載の分岐予測方法。
  10. 前記参照アドレス記憶部に記憶された所要のアドレスは、
    前記読み込み不可なアドレスであり、
    前記所要のアドレスを変更するステップは、
    前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部に追記して記憶させるステップであり、
    前記命令を読み出すステップは、
    前記読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み不可なアドレスとが異なる場合のみ、前記分岐先アドレスからさらに命令を読み出すステップである、
    請求項7記載の分岐予測方法。
  11. 前記参照アドレス記憶部に記憶された所要のアドレスは、
    前記読み込み可能なアドレスであり、
    前記所要のアドレスを変更するステップは、
    前記切替えられたアドレス空間に属するアドレスを全て前記参照アドレス記憶部から削除するステップであり、
    前記命令を読み出すステップは、
    前記読み出した前記命令のアドレスが前記分岐先バッファに記憶された前記分岐命令のアドレスと一致すると、前記一致したアドレスに関連付けられた前記分岐先アドレスの情報を前記分岐先バッファから取得し、この分岐先バッファから取得した前記分岐先アドレスと前記参照アドレス記憶部に記憶された前記読み込み可能なアドレスとが一致する場合のみ、前記分岐先アドレスからさらに命令を読み出すステップである、
    請求項7記載の分岐予測方法。
JP2007283508A 2007-10-31 2007-10-31 情報処理装置、演算処理装置および分岐予測方法 Withdrawn JP2009110383A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007283508A JP2009110383A (ja) 2007-10-31 2007-10-31 情報処理装置、演算処理装置および分岐予測方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007283508A JP2009110383A (ja) 2007-10-31 2007-10-31 情報処理装置、演算処理装置および分岐予測方法

Publications (1)

Publication Number Publication Date
JP2009110383A true JP2009110383A (ja) 2009-05-21

Family

ID=40778793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007283508A Withdrawn JP2009110383A (ja) 2007-10-31 2007-10-31 情報処理装置、演算処理装置および分岐予測方法

Country Status (1)

Country Link
JP (1) JP2009110383A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10781081B2 (en) 2014-12-09 2020-09-22 Wobben Properties Gmbh Tower crane for erecting a wind turbine, and method for erecting said tower crane

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10781081B2 (en) 2014-12-09 2020-09-22 Wobben Properties Gmbh Tower crane for erecting a wind turbine, and method for erecting said tower crane

Similar Documents

Publication Publication Date Title
US10114865B2 (en) Tile cache
KR101782313B1 (ko) 예외 이벤트 처리 장치 및 방법
US9043806B2 (en) Information processing device and task switching method
JP5388864B2 (ja) クロック制御装置、クロック制御方法、クロック制御プログラム及び集積回路
CN101131671A (zh) 控制对非易失性存储器的访问
US9857981B2 (en) Host interface controller and control method for storage device
JP2021527248A (ja) 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納
JP2007219581A (ja) メモリコントローラおよびこれを搭載する電子機器
JP2009110383A (ja) 情報処理装置、演算処理装置および分岐予測方法
CN106940722A (zh) 一种图片显示方法及装置
US7934073B2 (en) Method for performing jump and translation state change at the same time
WO2013122217A1 (ja) 情報処理装置
JP2003233509A (ja) デジタル信号処理装置
JP2008257508A (ja) キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ
CN109271334B (zh) 数据存取系统、方法
KR100744057B1 (ko) 임베디드 시스템 및 그 gui 디스플레이방법
CN113168328A (zh) 处理器和管线处理方法
JPH06266623A (ja) キャッシュメモリ及びキャッシュメモリ制御方法
JP2010186411A (ja) プログラム実行装置、プログラム実行方法、及びプログラム
JPH06295263A (ja) メモリシステム
JP2002328841A (ja) カーネル空間のデマンドページング・スワップアウト方式および方法
JP5949330B2 (ja) 情報処理装置、情報処理方法
JP2008140124A (ja) データ処理装置
KR101691997B1 (ko) 영상처리장치 및 그 제어방법
JP2020149597A (ja) 制御装置および制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100317

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100426

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20111104