| 【発明の名称】 |
CPUアクセラレータ、CPU高速化方法およびCPU高速化プログラムを記録した媒体 |
| 【発明者】 |
【氏名】小寺 弘起
|
| 【要約】 |
【課題】BIOSの実行段階でCPUの性能を活かしきれない設定を行ってしまうと、OSが実行されるまでに時間がかかって製品の性格上から致命的になるおそれがあった。
【解決手段】CPUカード10にはソケット12を介して最新のCPU21を装着できるようになっており、また、同CPUカード10上に備えられたCPU外部制御回路30には制御用CPUとしてのマイコン31が備えられており、同マイコン31は内部に書き込まれたCPU高速化プログラムを実行することにより、同CPU21のTAP端子を介して同CPU21のマシンステータスレジスタをデバッグモードで書き換え、OS起動前であっても最適な設定で実行させることができる。 |
【特許請求の範囲】
【請求項1】 CPUを装着可能であるとともに、本体のBIOSを実行中の同CPUに対して外部的にマシンステータスレジスタを書き換えるCPU外部制御回路を具備することを特徴とするCPUアクセラレータ。 【請求項2】 上記請求項1に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、対象となるマシンステータスレジスタへのBIOSによる設定を終えたタイミングで書き換えを行うことを特徴とするCPUアクセラレータ。 【請求項3】 上記請求項2に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、所定時間を計時するタイマを備え、同タイマによる所定時間の経過時に上記書き換えを行うことを特徴とするCPUアクセラレータ。 【請求項4】 上記請求項2に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、上記CPUによるBIOSの実行内容を監視し、対象となるマシンステータスレジスタへのBIOSによる設定の実行完了を検出した時点で書き換えを行うことを特徴とするCPUアクセラレータ。 【請求項5】 上記請求項4に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、上記CPUがBIOSの実行時に出力するポストコードに基づいて処理の内容を監視することを特徴とするCPUアクセラレータ。 【請求項6】 上記請求項1〜請求項5のいずれかに記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、上記CPUをデバッグモードにして書き換えを行うことを特徴とするCPUアクセラレータ。 【請求項7】 上記請求項6に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、JTAG規格のTAP端子を介して書き換えを行うことを特徴とするCPUアクセラレータ。 【請求項8】 上記請求項1〜請求項7のいずれかに記載のCPUアクセラレータにおいて、基板と、上記CPUを装着するソケットと、このソケットを介して上記CPUのTAP端子に接続される制御用CPUとを具備することを特徴とするCPUアクセラレータ。 【請求項9】 外部的にCPUを装着して処理速度を向上させるにあたり、本体のBIOSを実行中、同BIOSにて当該CPUを低速化させる設定を行った後で外部的にマシンステータスレジスタを高速化させる設定に書き換えることを特徴とするCPU高速化方法。 【請求項10】 外部的に装着されるCPUの処理速度を向上させるために制御用CPUにて実行されるCPU高速化プログラムを記録した媒体であって、上記CPUが本体のBIOSを実行中にBIOSにて当該CPUを低速化させる設定を行った後で外部的にマシンステータスレジスタを高速化させる設定に書き換える機能を実行させることを特徴とするCPU高速化プログラムを記録した媒体。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、CPUアクセラレータ、CPU高速化方法およびCPU高速化プログラムを記録した媒体に関する。 【0002】 【従来の技術】CPUアクセラレータは、CPUの性能向上のめざましい近年においてコンピュータ本体で当初から装着されているCPUに代わって処理速度を向上させるために使用されている。特に、CPUを交換するだけでは済まない電圧、ピン配置、クロックなどの相違を吸収するための付加的な回路を備えている。 【0003】従来、この種のCPUアクセラレータでは、ハードウェアの相違をハードウェア的に吸収し、ソフトウェア的な対応はBIOS実行後に実行させることが可能となるOSのレベルで設定を行うようにしている。 【0004】 【発明が解決しようとする課題】上述した従来のCPUアクセラレータにおいては、ソフトウェア的な対応をOSの実行段階で行うようにしているが、BIOSの実行段階でCPUの性能を活かしきれない設定を行ってしまうことがあり、この場合には対応できなかったり、OSが実行されるまでに時間がかかって製品の性格上から致命的になるおそれがあるという課題があった。 【0005】本発明は、上記課題にかんがみてなされたもので、従来対処できなかったBIOSの実行段階から処理速度を向上させることが可能なCPUアクセラレータ、CPU高速化方法およびCPU高速化プログラムを記録した媒体の提供を目的とする。 【0006】 【課題を解決するための手段】上記目的を達成するため、請求項1にかかる発明は、CPUを装着可能であるとともに、本体のBIOSを実行中の同CPUに対して外部的にマシンステータスレジスタを書き換えるCPU外部制御回路を具備する構成としてある。 【0007】上記のように構成した請求項1にかかる発明においては、CPU外部制御回路によって本体のBIOSを実行中のCPUに対して外部的にマシンステータスレジスタを書き換える。これにより、OS起動前のCPUに対して所望の対処を実行する。また、請求項2にかかる発明は、上記請求項1に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、対象となるマシンステータスレジスタへのBIOSによる設定を終えたタイミングで書き換えを行う構成としてある。 【0008】本体のBIOSは既存のCPUにしか対応しておらず、未知のCPUに対してCPUの性能を活かしきれない設定を行うか、あるいは起動時のデフォルトがCPUの性能を活かしきれない設定であってもそれを放置してしまうことがある。このため、BIOSにてかかる設定を行うか放置したタイミングで設定を書き換える。上記のように構成した請求項2にかかる発明においては、対象となるマシンステータスレジスタへのBIOSによる設定を終えたタイミングで、上記CPU外部制御回路が書き換えを行う。 【0009】さらに、請求項3にかかる発明は、上記請求項2に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、所定時間を計時するタイマを備え、同タイマによる所定時間の経過時に上記書き換えを行う構成としてある。上記のように構成した請求項3にかかる発明においては、対象となるマシンステータスレジスタへのBIOSによる設定を終えたタイミングを検知するため、所定時間を計時するタイマを備えており、このタイマによって上記タイミングに相当する所定時間の経過時に上記CPU外部制御回路が書き換えを行う。 【0010】さらに、請求項4にかかる発明は、上記請求項2に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、上記CPUによるBIOSの実行内容を監視し、対象となるマシンステータスレジスタへのBIOSによる設定の実行完了を検出した時点で書き換えを行う構成としてある。対象となるマシンステータスレジスタへのBIOSによる設定を終えたタイミングを検知するには、本来、CPUがBIOSの実行中に何の設定を行っているかを知れば好都合である。このため、上記のように構成した請求項4にかかる発明においては、上記CPU外部制御回路が上記CPUによるBIOSの実行内容を監視することとし、対象となるマシンステータスレジスタへのBIOSによる設定の実行完了を検出した時点で書き換えを行う。 【0011】CPUがBIOSの実行中に何の設定を行っているかを検知する具体的な一例として、請求項5にかかる発明は、上記請求項4に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、上記CPUがBIOSの実行時に出力するポストコードに基づいて処理の内容を監視する構成としてある。上記CPUがBIOSの実行時には所定のポートに対して処理内容を識別できるようにするポストコードを出力することが多いため、上記のように構成した請求項5にかかる発明においては、このポストコードを監視して処理の内容を判断している。 【0012】さらに、請求項6にかかる発明は、上記請求項1〜請求項5のいずれかに記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、上記CPUをデバッグモードにして書き換えを行う構成としてある。マシンステータスレジスタを書き換える手法として、割り込みをかけたりすることも可能であるが、上記のように構成した請求項6にかかる発明においては、今日のCPUが備えているデバッグモードにして任意に書き換えを行う。 【0013】さらに、請求項7にかかる発明は、上記請求項6に記載のCPUアクセラレータにおいて、上記CPU外部制御回路は、JTAG規格のTAP端子を介して書き換えを行う構成としてある。上記のように構成した請求項7にかかる発明においては、デバッグモードでマシンステータスレジスタの書き換えを行なうにあたり、JTAG規格のTAP端子を介して書き換えを行う。さらに、請求項8にかかる発明は、上記請求項1〜請求項7のいずれかに記載のCPUアクセラレータにおいて、基板と、上記CPUを装着するソケットと、このソケットを介して上記CPUのTAP端子に接続される制御用CPUとを具備する構成としてある。 【0014】上記のように構成した請求項8にかかる発明においては、基板上にCPUがソケットを介して装着され、制御用CPUはソケット上のCPUのTAP端子に接続されて制御を実行する。このように、OS起動前にCPUのマシンステータスレジスタを書き換えて任意の設定で実行させる手法は必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。このため、請求項9にかかる発明は、外部的にCPUを装着して処理速度を向上させるにあたり、本体のBIOSを実行中、同BIOSにて当該CPUを低速化させる設定を行った後で外部的にマシンステータスレジスタを高速化させる設定に書き換える構成としてある。ここで、外部的にCPUを装着するのはコンピュータ本体の外部を意味するものではなく、本来のCPUを交換するか、あるいはスロットなどを介して別途装着されるものが該当する。また、CPUを低速化させる設定というのは、デフォルトの設定を変更する積極的な場合の他、低速化させるか否かの判断を行った後にその時点での設定が低速となっていれば敢えて設定を変化させない場合をも含んでいる。 【0015】すなわち、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。ところで、このようなCPUアクセラレータは単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。発明の思想の具現化例としてCPUアクセラレータのソフトウェアとなる場合には、かかるソフトウェアを記録した記録媒体上においても当然に存在し、利用されるといわざるをえない。 【0016】その一例として、請求項10にかかる発明は、外部的に装着されるCPUの処理速度を向上させるために制御用CPUにて実行されるCPU高速化プログラムを記録した媒体であって、上記CPUが本体のBIOSを実行中にBIOSにて当該CPUを低速化させる設定を行った後で外部的にマシンステータスレジスタを高速化させる設定に書き換える機能を実行させる構成としてある。むろん、その記録媒体は、CPUに内蔵されるフラッシュメモリの他、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。その他、供給方法として通信回線を利用して行なう場合でも本発明が利用されていることにはかわりない。 【0017】さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。そして、実際にはオペレーティングシステムの介在のもとで実現するとしても、プログラムが媒体に記録されて流通される過程においては、このプログラムだけで本発明を実施できるものと理解することができる。 【0018】また、本発明をソフトウェアで実施する場合、発明がプログラムを記録した媒体として実現されるのみならず、本発明がプログラム自体として実現されるのは当然であり、プログラム自体も本発明に含まれる。 【0019】 【発明の効果】以上説明したように本発明は、OS起動前にCPUのマシンステータスレジスタを書き換えることにより任意の設定で実行させることが可能なCPUアクセラレータを提供することができる。 【0020】また、請求項2にかかる発明によれば、対象となるマシンステータスレジスタへのBIOSによる設定を終えたタイミングで書き換えを行うため、最適なタイミングで書き換えを行い、以後、高速化を図ることができる。さらに、請求項3にかかる発明によれば、タイマによってタイミングを見計らうようにしており、簡易な構成で実現できる。 【0021】さらに、請求項4にかかる発明によれば、上記CPUによるBIOSの実行内容を監視しているので、確実に最適なタイミングで書き換えを行うことができる。さらに、請求項5にかかる発明によれば、上記CPUがBIOSの実行時に出力するポストコードに基づいて処理の内容を監視するので、簡易かつ確実に監視を行うことができる。さらに、請求項6にかかる発明によれば、デバッグモードにして書き換えを行うことができるので、割り込みなどをかける場合に比べて簡易に実現できる。 【0022】さらに、請求項7にかかる発明によれば、JTAG規格のTAP端子を介して書き換えを行うので、規格に準じて的確に実現できる。さらに、請求項8にかかる発明によれば、CPUを高速化する最適なCPUアクセラレータを提供できる。さらに、請求項9および請求項10にかかる発明によれば、同様の効果を奏するCPU高速化方法とCPU高速化プログラムを記録した媒体を実現できる。 【0023】 【発明の実施の形態】以下、図面にもとづいて本発明の実施形態を説明する。図1は、本発明の一実施形態にかかるCPUアクセラレータを適用したCPUカードを正面図により示しており、図2は底面図により示している。同図において、CPUカード10はスロットタイプの基板11を有し、同基板11上にソケット12を配置してある。ソケット12にはソケットタイプのCPU21が装着され、ヒートシンク22とCPUファン23とがソケットバンド24によって固定されている。基板11上には主にマイコン31とジャンパスイッチ32からなるCPU外部制御回路30が搭載されている。なお、この他にもソケットタイプのCPU21をスロットカードエッジ11aを介してスロットコネクタに接続させるために各種の電子部品も配置されている。 【0024】図3は基板11上に配置されるCPU外部制御回路30とソケット12との接続状況を回路図により示している。CPU21は国際標準規格IEEE1149.1として普及されているJTAG(Joint Test Action Group)テストをサポートしており、JTAGデバイスと呼ばれる。JTAGデバイスは、TAP(Test Access Port)と呼ばれるTDI(TestDataInput),TDO(TestDataOutput),TCK(TestClock),TMS(TestModeSelect),TRST#(TestReset)という5本のTAP端子を持っている。これらはソケット12を介して外部から接続可能であり、マイコン31の入出力ポートRA0〜RA4_TOCKIが接続されている。マイコン31は後述するフローチャートに基づいて適時に各ポートRA0〜RA4_TOCKIを介してデータを出力あるいは入力し、CPU21をデバッグモードで制御する。すなわち、CPU21に所定のデバッグコマンドを送るときにはTDI端子を利用し、CPU21の内部レジスタデータなどを参照するときにはTDO端子を利用し、動作モードなどを選択するときにはTCK端子とTMS端子とに対して予め定められたモードセレクト信号を出力する。なお、初期化時にはモードを初期化するためにTRST#端子からリセット信号を出力する。また、この場合のデバッグモードとは、特に規格化されているわけではなく、CPUメーカーがJTAG規格の信号線やコマンドを独自に拡張して実現しているものである。 【0025】ソケット12にはCPU21のRESET#,PREQ#,PRDY#,INIT#に接続する各端子が備えられており、これらはマイコン(制御用CPU)31の入出力ポートRB2〜RB5に接続されている。ここで、RESET#,INIT#端子についてはスロットカードエッジ11aに接続され、当該CPUカード10が接続されるコンピュータ本体から必要時にRESET#信号やINIT#信号が入力されるようになっている。 【0026】マイコン31の入出力ポートRB6,RB7にはジャンパスイッチ32(32a,32b)が接続されており、このジャンパスイッチ32を介して外部的にマイコン31に指示を与えることができるようになっている。すなわち、各ジャンパスイッチ32a,32bの一端は接地され、他端はプルアップ抵抗32a1,32b1を介して正電圧VCC2に接続されている。ジャンパスイッチ32aについては、オープンでマイコン31のイネーブルを表し、ショートでディセーブルを表す。また、ジャンパスイッチ32bについては特に指示を対応させていないが、後述する待機時間を選択できるようにすることも可能である。 【0027】この他、マイコン31のクロック端子OSC1_CLKINには水晶発振子33が接続されている。図4はマイコン31が実行するCPU高速化プログラムの内容をフローチャートにより示しており、図5は実効状態をタイミングチャートにより示している。なお、本実施形態においては同フローチャートに対応したプログラムはマイコン31の内部に書き込まれている。従って、当該マイコン31自体がCPU高速化プログラムを記録した媒体でもある。 【0028】マイコン31は、電源オンと同時にこのプログラムの事項を開始し、ステップS100にて変数の設定やワークエリアの初期化などを実行する。初期化後、マイコン31はステップS102にてリセット信号(RESET#)か初期化信号(INIT#)が入力されるのを待機する。リセット信号と初期化信号は、ともにCPU21を起動させるために当該CPUカード10が装着される基板から出力されるものであり、ソケット12を介してCPU21に入力されるようになっている。上述したように基板11上でリセット信号(RESET#)と初期化信号(INIT#)はマイコン31の入出力ポートRB2,RB5に入力されるようになっており、マイコン31は具体的に入力モードに設定した両ポートRB2,RB5を監視してリセット信号か初期化信号が入力されるのを待機する。 【0029】いずれかの信号が入力されると、マイコン31はステップS104にて第1の待機時間FT1だけ待機する。この第1の待機時間はCPU21の処理に同期させるための時間であり、以下に示すような時間としてある。CPU21はリセット信号か初期化信号を入力したときからBIOSの実行を開始する。通常、BIOSでは所定の初期化プログラムを実行することになるが、最初に当該CPU21のリビジョンを確認する。CPU21は常に進化しており、クロックが上がる毎にリビジョンを繰り返している。リビジョン毎にキャッシュの設定レジスタなどが変化することが多く、BIOSでは装着されているCPU21に適した初期化処理を実行させるためにこのようなリビジョンを確認する。そして、既知のリビジョンのCPUに対しては初期化の設定値がBIOSに書き込まれているので、対応する設定値で初期化する。しかし、製造当時に確認されていなかったCPUについては設定値を知る由もないので、不明のCPUに対する設定値を書き込んだり、最悪の場合にはHALTを実行してしまう。 【0030】初期化の処理の一つにレベル1(L1)キャッシュのイネーブル化も含まれているが、不明のリビジョンに対してはL1キャッシュをディセーブルにするか、デフォルトのディセーブルのままに放置するため、起動に要する時間が極端に長くなってしまう。また、機種によってはCPUが不明の場合にワーニングを表示し、操作者に何らかの操作(例えば、F1キーを押すなど)を要求し、処理を止めてしまうこともある。 【0031】本実施形態においては、L1キャッシュの変更タイミングを見計らって、その直後にL1キャッシュをイネーブル化させることを目的としており、CPU21の処理が進行して上記L1キャッシュに対する設定が終了するまでの時間を第1の待機時間FT1に設定してある。なお、この第1の待機時間FT1と後述する第2の待機時間FT2に関しては、固定値でよいが、予め複数のタイミングを決めておき、ジャンパスイッチ32の設定で変化させることができるようにしても良い。 【0032】従って、ステップS104にて第1の待機時間FT1だけ待機した後、ステップS106にてマイコン31はCPU21に対して停止信号を出力する。CPU停止信号はプローブモードリクエスト信号(PREQ#)をハイレベルからローレベルに落とすことにより行える。従って、出力モードに設定した入出力ポートRB3をローレベルとすることによりCPU停止信号を出力することになる。CPU21の側ではプローブモードリクエスト信号を受け付けると、処理を停止するが、受け付けたことを外部に確認させるためにプローブモードレディ信号(PRDY#)をハイレベルからローレベルに落とす。マイコン31はステップS108にてプローブモードレディ信号を監視し、ハイレベルからローレベルへと変化したときにCPUの停止確認を行えたものと判断する。このプローブモードレディ信号の監視についてもマイコン31は入力モードに設定した入出力ポートRB4の入力レベルを監視して行っている。 【0033】CPUの停止確認を行えたら、CPU21はデバッグモードに入っているので、マイコン31はTDI端子からL1キャッシュを有効にさせるためのコマンドを送信する。L1キャッシュを有効にさせるか否かはCPU21内の所定のレジスタに書き込む値による。従って、L1キャッシュを有効にさせるためのコマンドというのは、具体的にはデバッグモードにおけるコマンドとして所定のレジスタにある値を書き込むという操作に対応する。 【0034】このレジスタへの書き込みが終了したら、ステップS112にてCPUを再スタートさせる。再スタートはプローブモードリクエスト信号をローレベルからハイレベルへ戻すことによって行なう。これにより、マイコン31はプローブモードレディ信号をハイレベルに戻し、CPU21を再スタートさせる。次に、マイコン31は、ステップS114にて第2の待機時間FT2だけ待機する。ステップS110ではL1キャッシュをイネーブル化させているが、この待機時間FT2はレベル2(L2)キャッシュをイネーブル化させるためのものである。すなわち、そのまま放置しておくとL2キャッシュはディセーブル化されたままとなるため、あるタイミングでL2キャッシュをイネーブル化させている。また、L1キャッシュと別に実行するのは本実施例でそのようにする必要があるからである。すなわち、早期にL2キャッシュをイネーブル化させると別の機器の初期化チェックに影響を及ぼしてしまうため、各種の初期化が終了してからL2キャッシュはイネーブル化させる必要がある。むろん、状況次第では同時に実行することも不可能ではない。 【0035】そして、第2の待機時間FT2が経過したら上述したステップS106と同様にステップS116にてマイコン31はCPU21に対して停止信号を出力し、ステップS118にてステップS108と同様にCPUの停止確認を待機する。そして、ステップS120ではステップS110と同様にL2キャッシュをイネーブル化する。その後、ステップS122にてステップS112と同様にCPU21を再スタートさせる。 【0036】以上でCPU21に対する外部的な制御を全て完了したので、ステップS102に戻ってコンピュータがリセットされる場合に備える。また、再度、電源投入されるような場合は再スタートする。次に、上記構成からなる本実施形態の動作を説明する。図5は本実施形態の動作をタイミングチャートにより示している。タイミングT1にて電源を投入すると、予め定めた所定時間を経過したタイミングT2にてリセット信号RESET#がCPUカード10に供給され、CPU21はBIOSの起動プログラムの実行を開始する。 【0037】一方、マイコン31は電源投入直後、独自に図4に示すフローチャートに対応したプログラムの実行を開始する。具体的には、ステップS100にて初期化処理を実行し、ステップS102にて上記リセット信号RESET#がCPUカード10に供給されるのを入出力ポートRB2の入力状況を監視して待機する。そして、上記リセット信号RESET#がCPUカード10に供給されると、ステップS104にて第1の待機時間FT1の計時を開始する。タイミングT3はタイミングT2から第1の待機時間FT1だけ経過した時点であり、このタイミングT3にて次の処理へと移行し、ステップS106にてCPU停止信号を出力する。具体的にはCPU21に対してプローブモードリクエスト信号(PREQ#)を出力すべく、入出力ポートRB3をローレベルに落とす。 【0038】CPU21は、リセット信号RESET#の入力後、BIOSを実行しており、このタイミングT3では、L1キャッシュをディセーブル化した直後にあたる。そして、プローブモードリクエスト信号(PREQ#)がローレベルとなったことによってプローブモードへの移行の要求があったものとハードウェア的に判断し、プローブモードへの移行の準備を実行し、準備が完了したタイミングT4にてプローブモードレディ信号(PRDY#)をローレベルに落とす。 【0039】マイコン31はステップS108にて入出力ポートRB4の入力を監視することにより、CPU21がプローブモードへ移行するのを待機しており、タイミングT4にて移行完了を検出すると、ステップS110にてCPU21のL1キャッシュをイネーブル化させる。具体的には、入出力ポートRA0からCPU21の所定のレジスタにデータを書き込む処理を行う。むろん、これがJTAG規格のTAP端子を利用してマシンステータスレジスタ(MSR)へデータを書き込むという処理になる。このデバッグモードの期間がタイミングT5〜T6となる。 【0040】そして、同データの書き込み後のタイミングT7では、ステップS112にてCPU21を再スタートさせる。CPU21の再スタートはプローブモードリクエスト信号(PREQ#)をハイレベルに戻すことにより行う。すなわち、マイコンは入出力ポートRB3をハイレベルとし、CPU21はプローブモードリクエスト信号(PREQ#)がハイレベルとなったことをハードウェア的に検知すると、プローブモードを終了するとともに、プローブモードレディ信号(PRDY#)をハイレベルとして、外部に対しても状況を通知する。 【0041】以上でL1キャッシュのディセーブル化対策が完了し、次にL2キャッシュのディセーブル化対策をL1キャッシュの時と同様にして行う。まず、ステップS114ではタイミングT7の時点から第2の待機時間FT2だけ待機する。第2の待機時間FT2だけ待機した時点T8のステップS116にてステップS106と同様にCPU停止信号を出力する。具体的には入出力ポートRB3をローレベルに落としてプローブモードリクエスト信号(PREQ#)を出力する。その後、マイコン31はステップS118にてステップS108と同様に入出力ポートRB4の入力を監視して、CPU21がプローブモードへ移行するのを待機する。 【0042】タイミングT9にて移行完了を検出すると、ステップS120ではステップS110と同様にしてCPU21のL2キャッシュをイネーブル化させる。むろん、この場合にデータを書き込むマシンステータスレジスタはL2キャッシュ固有のものであるが、データを書き込むためにJTAG規格のTAP端子より所定のマシンステータスレジスタへ書き込みを行う点は共通している。デバッグモードの期間はタイミングT10〜T11であり、L2キャッシュのイネーブル化後、ステップS122にてCPU21を再スタートさせる。 【0043】以上でL1キャッシュとL2キャッシュのイネーブル化は終了するため、ステップS102に戻り、本コンピュータがリセットされるまで待機する。以上の実施例では、CPU21の動作を直接的に監視して適正タイミングで内部のマシンステータスレジスタを書き換えているわけではない。すなわち、予め定めたタイミングにおいてCPU21はマシンステータスレジスタに好ましくない設定のデータを書き込んでいることを確認しておき、予め計測したその時間分だけを待機してマイコン31がマシンステータスレジスタを書き換えるという処理を行っているのである。 【0044】この処理は簡易であり、実効性は高い。しかしながら、データを書き換えるタイミングを取得する手法はこれに限られるものではない。図6は他の実施形態にかかるCPUアクセラレータが実行するプログラムをフローチャートにより示している。ステップS200では初期化を実行し、ステップS202ではリセット信号(RESET#)か初期化信号(INIT#)が入力されるのを待機する。この待機後、すなわち、リセット信号か初期化信号が入力されたら、ステップS204にてCPU停止信号を出力する。先の実施形態では、ここで第1の待機時間を待機しているが、本実施形態においては、所定時間を待機するのではなく、CPU21がL1キャッシュの設定を行うタイミングとしてブレークポイントを設定し、確実にL1キャッシュの設定を行った直後に再設定を行おうとするものである。 【0045】具体的にはステップS204とステップS206にてCPU21を停止させた後、ステップS208にてJTAG規格のTAP端子よりブレークポイントを設定する。CPU21はBIOSの起動プログラムの実行時、所定の区切り毎にポストコードを特定のポートに対して出力するようにしている。例えば、L1キャッシュをイネーブル化させるかディセーブル化させるかはCPUのリビジョンチェックの判断に基づいて決定しているが、リビジョンをチェックして設定したら、L1キャッシュの設定を行ったことを表すポストコード(0Bhなど)を所定のポートに出力する。 【0046】デバッグモードではCPU21がどのポートにどういったコードを出力するかを指定してブレークポイントを設定することができるので、予めL1キャッシュの設定に対するポストコードとポートとを指定してブレークポイントを設定する。その後、ステップS210にてCPU21を再スタートさせ、ステップS212にてブレークポイントに入るまで待機する。ブレークポイントに入ったら処理はステップS214へ進み、ステップS110と同様にL1キャッシュをイネーブル化させる。これでL1キャッシュの対策が終了するので、次のステップS216ではL2キャッシュの設定直後にブレークポイントを設定する。そして、ステップS218にてCPU21を再スタートさせ、ステップS220にてブレークポイントに入るまで待機する。 【0047】ブレークポイントに入ったら処理はステップS222へ進み、ステップS120と同様にL2キャッシュをイネーブル化させる。以上でL1キャッシュとL2キャッシュのの対策は全て終了するので、次のステップS222ではブレークポイントの設定を解除し、ステップS224にてCPU21を再スタートさせ、ステップS202に戻ってコンピュータがリセットされる場合に備える。このようにすれば、L1キャッシュに対して好ましくない設定を行ったり、L1キャッシュに対して好ましくない設定を行った直後に、外部的に正しい設定へと書き換えることになり、BIOSの仕様に関わらず新たなCPU21の最適な利用が可能となる。 【0048】なお、以上の実施形態においては、スロットタイプの基板11にソケット12を介してソケットタイプのCPU21を装着させているが、本体のコンピュータに備えられたソケットに対してソケットタイプのCPU21を装着させるゲタタイプのCPUアクセラレータであっても同様に実現可能である。このように、CPUカード10にはソケット12を介して最新のCPU21を装着できるようになっており、また、同CPUカード10上に備えられたCPU外部制御回路30には制御用CPUとしてのマイコン31が備えられており、同マイコン31は内部に書き込まれたCPU高速化プログラムを実行することにより、同CPU21のTAP端子を介して同CPU21のマシンステータスレジスタをデバッグモードで書き換え、OS起動前であっても最適な設定で実行させることができる。
|
| 【出願人】 |
【識別番号】390040187 【氏名又は名称】株式会社メルコ
|
| 【出願日】 |
平成12年9月29日(2000.9.29) |
| 【代理人】 |
【識別番号】100096703 【弁理士】 【氏名又は名称】横井 俊之
|
| 【公開番号】 |
特開2002−108617(P2002−108617A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−300367(P2000−300367) |
|