(57)【要約】【課題】ＣＰＵを占有することなく、効率的にハードディスクドライブ等の２次記憶装置と主記憶装置間のＤＭＡ転送を行うことができるコンピュータシステム及びデータ転送方法の提供。【解決手段】コンピュータシステム１にプログラマブル論理回路３を設け、プログラマブル論理回路３に、ハードディスクドライブ等の２次記憶装置４をバス６に接続するためのインターフェース回路３ｂとバスマスタ機能を有するＤＭＡコントローラ３ａとを実装し、また、ＤＭＡコントローラ３ａに、主記憶装置５のブロック空間の開始アドレスやブロックサイズなどの情報を記録するテーブルを設けることにより、ＣＰＵ２を介することなくプログラマブル論理回路３で能動的にＤＭＡ転送を行うことができる。これにより、コンピュータシステム１全体の処理能力を向上させることができる。【選択図】図１
2005011287.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置と主記憶装置と２次記憶装置とを少なくとも備えるコンピュータシステムにおいて、
前記２次記憶装置は、書き換え可能な論理領域を備えるプログラマブル論理回路を介して前記演算処理装置のバスに接続され、
前記プログラマブル論理回路には、前記２次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるＤＭＡコントローラとが構成されていることを特徴とするコンピュータシステム。
【請求項２】
前記プログラマブル論理回路の前記ＤＭＡコントローラには、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを備え、前記ＤＭＡコントローラは、前記情報が記録された前記テーブルを参照することにより、前記２次記憶装置に記憶されたブロックデータを、前記主記憶装置の所定の前記ブロックに転送することを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記２次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記ＤＭＡコントローラは、前記テーブルを参照することにより、前記２次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送することを特徴とする請求項２記載のコンピュータシステム。
【請求項４】
少なくとも、演算処理装置と、主記憶装置と、２次記憶装置と、書き換え可能な論理領域を備えるプログラマブル論理回路とを備え、前記２次記憶装置が前記プログラマブル論理回路を介して前記演算処理装置のバスに接続されてなるコンピュータシステムにおけるデータ転送方法であって、
予め前記主記憶装置又は他の記憶装置に記憶されたＬＵＴデータを用いて、前記プログラマブル論理回路に、前記２次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるＤＭＡコントローラとを構成し、前記ＤＭＡコントローラを用いて、前記２次記憶装置と前記主記憶装置間のデータ転送を行うことを特徴とするデータ転送方法。
【請求項５】
前記プログラマブル論理回路の前記ＤＭＡコントローラに、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを設け、前記テーブルに前記情報を記録することにより、前記ＤＭＡコントローラを用いて、前記２次記憶装置に記憶されたブロックデータを前記主記憶装置の所定の前記ブロックに転送することを特徴とする請求項４記載のデータ転送方法。
【請求項６】
前記２次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記テーブルを参照することにより、前記ＤＭＡコントローラを用いて、前記２次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送することを特徴とする請求項５記載のデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステム及びデータ転送方法に関し、特に、書き換え可能な論理領域を備えるプログラマブル論理回路を含むコンピュータシステム及びプログラマブル論理回路を用いた主記憶装置と２次記憶装置間のデータ転送方法に関する。
【０００２】
【従来の技術】
ＯＳ（オペレーティング・システム）などを動作させるカーネル空間をローカルメモリ（主記憶装置）に持つコンピュータシステムにおいて、ハードディスクなどの２次記憶装置上に記憶された連続したブロックデータをカーネル空間に転送するような場合、カーネル空間上に転送するデータ量に応じた連続した空き領域がない時は、図７に示すように、転送しようとする連続したブロックデータがブロック単位に分割（図では４つに分割）され、各々のブロックデータはカーネル空間上の別々のブロック空間に転送される。そして、カーネル空間に散在する各ブロックデータは、図８に示すように開始ポインタ、データサイズ、次のブロックへのポインタ等の情報を使ってＯＳにより管理される。
【０００３】
ここで、２次記憶装置４に記憶されたブロックデータの転送をＣＰＵ（中央演算装置）が制御する場合、データ転送中はＣＰＵは他の処理を行うことができないため、コンピュータシステム全体としての処理能力が低下してしまう。そこで、コンピュータシステムの処理能力を向上させるために、ＣＰＵを介さずに装置間のデータ転送を行うダイレクト・メモリ・アクセス（以下、ＤＭＡを称する。）転送方式が用いられる。
【０００４】
このＤＭＡ転送方式を利用する場合は、コンピュータシステムにＤＭＡコントローラを設け、ブロックデータの転送毎に、カーネル空間の上のブロック情報を取得し、その情報に基づいてＤＭＡコントローラを設定することにより、ＣＰＵを介さずにＤＭＡコントローラでデータ転送を制御することができる。これにより、各々のブロックデータを転送する間はＣＰＵが開放されるため、ＣＰＵは他の処理を行うことができ、コンピュータシステムの処理能力を向上させることができる。
【０００５】
また、ＤＭＡコントローラを用いたデータ転送の効率を上げるための方法が種々提案されており、例えば、特開２００２−３５１８１６号公報には、第１の装置がバスマスタとしてバスを占有する工程と、第１の装置がバスを占有している状態で、転送すべきデータのうち、第１の所定個数のデータを転送する工程と、第１の所定個数のデータの転送が終了したか否かを判定する工程と、第１の所定個数のデータの転送が終了したと判定された後、第２の装置の要求の有無に応じて第１の装置がバスを開放するか否かを判定する工程と、第１の装置がバスを開放すると判定された場合、第１の装置がバスを開放する工程とを含むデータ転送方法が開示されている。
【０００６】
【特許文献１】
特開２００２−３５１８１６号公報（第４−８頁、第１図）
【０００７】
【発明が解決しようとする課題】
ここで、ハードディスクなどの２次記憶装置に記憶された連続した複数のブロックデータを、ＤＭＡコントローラを使ってカーネル空間上に散在するブロック空間にＤＭＡ転送を行う方法として次のような方法がある。
【０００８】
第１の方法は、分割されたブロックデータ毎にＤＭＡ転送を行う方法である。この方法は、図９に示すように、分割されたブロックデータの数だけＤＭＡ転送を実施する方法であり、例えば、２次記憶装置に記憶された４つの連続したブロックデータをカーネル空間上の４つのブロック空間に分割して転送する場合には、ＤＭＡ転送を４回実施しなければならない。従って、ＤＭＡ転送の度にＣＰＵはカーネル空間上のブロック情報を取得して、該情報を用いてＤＭＡコントローラを設定しなければならないために、４つのブロックデータの転送が終了するまではＣＰＵを完全には解放することができないという問題がある。
【０００９】
また、第２の方法は、主記憶装置５（カーネル空間）に中継バッファを設ける方法である。この方法では、図１０に示すように、カーネル空間に予め一定サイズの連続した空き領域を確保しておき、これを中継バッファ５ａとして用いる。そして、２次記憶装置４に記憶された連続したブロックデータを１回のＤＭＡ転送で中継バッファ５ａに転送し、その後、中継バッファ５ａから分割されたブロック空間へブロックデータをコピーする。この方法は２次記憶装置４からのＤＭＡ転送は１回で済むが、中継バッファ５ａから再度各々のブロック空間にブロックデータをコピーしなければならないため、処理が２度手間になるという問題がある。また、中継バッファ５ａから各々のブロック空間へのコピーはＣＰＵが制御するため、その間ＣＰＵを占有してしまうという問題もある。
【００１０】
また、上記いずれの方法であっても、２次記憶装置４から主記憶装置５にブロックデータを転送するためには、コンピュータシステムに、２次記憶装置４をバスに接続するためのインターフェース回路に加えてＤＭＡコントローラを設けなければならないため、コンピュータシステムの構成が複雑になるという問題がある。
【００１１】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、ＣＰＵを占有することなく、効率的にハードディスクドライブ等の２次記憶装置と主記憶装置間のＤＭＡ転送を行うことができるコンピュータシステム及びデータ転送方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明のコンピュータシステムは、演算処理装置と主記憶装置と２次記憶装置とを少なくとも備えるコンピュータシステムにおいて、前記２次記憶装置は、書き換え可能な論理領域を備えるプログラマブル論理回路を介して前記演算処理装置のバスに接続され、前記プログラマブル論理回路には、前記２次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるＤＭＡコントローラとが構成されているものである。
【００１３】
本発明においては、前記プログラマブル論理回路の前記ＤＭＡコントローラには、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを備え、前記ＤＭＡコントローラは、前記情報が記録された前記テーブルを参照することにより、前記２次記憶装置に記憶されたブロックデータを、前記主記憶装置の所定の前記ブロックに転送する構成とすることができ、前記２次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記ＤＭＡコントローラは、前記テーブルを参照することにより、前記２次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送する構成とすることもできる。
【００１４】
また、本発明のデータ転送方法は、少なくとも、演算処理装置と、主記憶装置と、２次記憶装置と、書き換え可能な論理領域を備えるプログラマブル論理回路とを備え、前記２次記憶装置が前記プログラマブル論理回路を介して前記演算処理装置のバスに接続されてなるコンピュータシステムにおけるデータ転送方法であって、予め前記主記憶装置又は他の記憶装置に記憶されたＬＵＴデータを用いて、前記プログラマブル論理回路に、前記２次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるＤＭＡコントローラとを構成し、前記ＤＭＡコントローラを用いて、前記２次記憶装置と前記主記憶装置間のデータ転送を行うものである。
【００１５】
本発明においては、前記プログラマブル論理回路の前記ＤＭＡコントローラに、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを設け、前記テーブルに前記情報を記録することにより、前記ＤＭＡコントローラを用いて、前記２次記憶装置に記憶されたブロックデータを前記主記憶装置の所定の前記ブロックに転送する構成とすることができ、前記２次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記テーブルを参照することにより、前記ＤＭＡコントローラを用いて、前記２次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送する構成とすることもできる。
【００１６】
このように、本発明では、コンピュータシステムにプログラマブル論理回路を設け、プログラマブル論理回路に、ハードディスクドライブ等の２次記憶装置をバスに接続するためのインターフェース回路とバスマスタ機能を有するＤＭＡコントローラとを実装することにより、コンピュータシステムの構成を複雑にすることなく効率的にＤＭＡ転送ができるようにしている。
【００１７】
また、プログラマブル論理回路のＤＭＡコントローラに、主記憶装置のブロック空間の開始アドレスやブロックサイズなどの情報を記録するテーブルを設けることにより、ＣＰＵを介することなくプログラマブル論理回路で能動的にＤＭＡ転送を行うことができる。これにより、データ転送の間、ＣＰＵは他の処理を行うことができるため、コンピュータシステム全体の処理能力を向上させることができる。
【００１８】
【発明の実施の形態】
一般に、コンピュータシステムでは、ハードディスクドライブ等の２次記憶装置からカーネル空間（主記憶装置）にデータを転送して処理が行われるが、このデータ転送をＣＰＵが制御するとデータ転送の間ＣＰＵの処理が滞ってしまい好ましくない。
【００１９】
また、従来技術で示したように、ＤＭＡコントローラを用いてデータ転送を行う方法があるが、この方法ではコンピュータシステムにＤＭＡコントローラを別途設ける必要があるためにコンピュータシステムの構成が複雑になる。また、２次記憶装置に記憶された連続したブロックデータを転送する場合、ブロック数分のＤＭＡ転送を行う方法（第１の方法）では、ＤＭＡ転送毎にＤＭＡコントローラを設定するために効率が悪く、また、中継バッファを設ける方法（第２の方法）でも一旦中継バッファにＤＭＡ転送したブロックデータを再度別々のブロック空間にコピーしなければならないため２度手間になる。そして、主記憶装置のブロック情報の取得やＤＭＡコントローラの設定、ブロックデータのコピーの際にＣＰＵを占有してしまうため、コンピュータシステムの処理が停滞してしまう。このような問題は、ネットワーク機器のようにＣＰＵが多数の処理を行うシステムの場合に顕著に現れる。
【００２０】
一方、近年、ＦＰＧＡ（ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）等の書き換え可能な論理領域を備えるデバイス（以下、これらを総称してプログラマブル論理回路と呼ぶ。）の開発が行われている。このプログラマブル論理回路の基本単位は、組み合わせ論理を実現するＬＵＴ（ＬｏｏｋＵｐ  Ｔａｂｌｅ）と、順序論理を実現するレジスタで構築された論理セルである。このプログラマブル論理回路内にはＳＲＡＭが存在し、プログラマブル論理回路の各論理セルがどのように動作するかを記述した回路データが格納される。このプログラマブル論理回路では、書き換え可能な論理領域の回路データを適宜書き換えることができることから様々な処理を実現することができる。
【００２１】
そこで、本発明では、上記プログラマブル論理回路の特徴を利用して、ＯＳによるハードディスクなどの２次記憶装置とカーネル空間（主記憶装置）との間のデータ転送の効率化を図るために、コンピュータシステムを次のように構成する。
【００２２】
まず、第１に、２次記憶装置とバスとの間にプログラマブル論理回路を設け、プログラマブル論理回路に２次記憶装置をバスに接続するためのインターフェース回路を構築すると共に、ＣＰＵを介さずにデータ転送を行うためのＤＭＡコントローラを実装する。このような構成とすることにより、ＤＭＡコントローラを別体として設ける必要がなくなるため、コンピュータシステムの構成を簡略化することができる。
【００２３】
また、第２に、ＤＭＡコントローラに、バスを占有してデータ転送を制御するためのバスマスタ機能を持たせる。このように、ＤＭＡコントローラにバスマスタ機能を持たせることによって、プログラマブル論理回路自体がバスを占有しデータ転送を制御することができるため、能動的にカーネル空間にアクセスすることができるようになる。
【００２４】
また、第３に、カーネル空間に分割されたブロックの構成をＤＭＡコントローラが管理できるようにする。具体的には、分割されたブロックの開始ポインタとブロックサイズといった情報を格納するためのテーブルをＤＭＡコントローラに持たせる。このテーブルには分割されたブロック全ての情報を持たせることができる。また、このテーブルの情報をＲＡＭに置くことにより、任意に書き換え可能とする。そして、ＤＭＡコントローラは上記テーブルを参照してカーネル空間に分割されたブロック空間に直接データ転送することができるため、データ転送中にＣＰＵは他の処理を行うことができ、コンピュータシステムの処理能力を向上させることができる。
【００２５】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るコンピュータシステム及びデータ転送方法について、図１乃至図６を参照して説明する。図１は、第１の実施例に係るコンピュータシステムの基本構成を模式的に示す図であり、図２は、本実施例のコンピュータシステムを用いたデータ転送手順を示すフローチャート図である。また、図３は、データ転送の様子を模式的に示す図であり、図４は、カーネル空間（主記憶装置）上のブロック空間を示す図であり、図５は、ＤＭＡコントローラに用意されるテーブルに記録されるブロック情報の構成例を示す図である。また、図６は、本実施例に係るコンピュータシステムの他の構成を模式的に示す図である。
【００２６】
図１に示すように、本実施例のコンピュータシステム１は、ＣＰＵ、ＭＰＵ等の演算処理装置（ここでは、ＣＰＵ２とする。）と、ＯＳを動作させるメモリ空間（カーネル空間）となるＤＲＡＭ、ＳＲＡＭ等の主記憶装置５と、ハードディスクドライブやフロッピー（登録商標）、ＭＯ、ＣＤ−Ｒ、ＤＶＤ−Ｒ等の記録媒体を用いる外部記憶装置などの２次記憶装置４と、内部に書き換え可能な論理領域を備えるプログラマブル論理回路３とを少なくとも備えるものであり、２次記憶装置４はプログラマブル論理回路３を介してバス６に接続されている。
【００２７】
また、プログラマブル論理回路３には、２次記憶装置４をバス６に接続するためのインターフェース回路３ｂと、２次記憶装置４と主記憶装置５間のデータ転送をＣＰＵ２を介さずに行うためのＤＭＡコントローラ３ａとが実装されている。このＤＭＡコントローラ３ａには、バス６を占有してデータ転送を制御するためのバスマスタ機能を備えており、プログラマブル論理回路３で能動的にデータ転送ができるようになっている。また、プログラマブル論理回路３内には、主記憶装置５内のブロック空間の開始アドレスやブロックサイズ等の情報が記録されたテーブルを格納する領域が設けられている。
【００２８】
なお、ＤＭＡコントローラ３ａは、プログラマブル論理回路３に固定的な回路として構成されていてもよいが、コンピュータシステム１の柔軟性を高めるために、主記憶装置５や図示しない他の記憶装置に、予めＤＭＡコントローラ３ａを構成するためのＬＵＴデータを記憶しておき、電源投入時などの任意のタイミングでこのＬＵＴデータを書き換え可能な論理領域にロードしてＤＭＡコントローラ３ａが実装されることが好ましい。
【００２９】
また、２次記憶装置４として使用する機器が固定されている場合は、インターフェース回路３ｂはプログラマブル論理回路３に固定的な回路として構成されていてもよいが、他の種類の２次記憶装置４を使用する場合は、同様に主記憶装置５や図示しない他の記憶装置に予めインターフェース回路３ｂを構成するためのＬＵＴデータを記憶しておき、電源投入時などの任意のタイミングでこのＬＵＴデータを書き換え可能な論理領域にロードしてインターフェース回路３ｂを実装するようにしてもよい。以下では、ＤＭＡコントローラ３ａ及びインターフェース回路３ｂの双方が書き換え可能な論理領域に実装されるものとする。
【００３０】
上記構成のコンピュータシステム１を用いて、２次記憶装置４に記憶された４つの連続したブロックデータをカーネル空間（主記憶装置５）の４つに分割されたブロック空間にＤＭＡ転送する手順について、図２のフローチャート図を参照して説明する。なお、カーネル空間に分割された４つのブロックは、図４に示すようにメモリ空間上（ブロックＢ１はアドレスａ〜ａ＋ｓ１、ブロックＢ２はアドレスｂ〜ｂ＋ｓ２、ブロックＢ３はアドレスｃ〜ｃ＋ｓ３、ブロックＢ４はアドレスｄ〜ｄ＋ｓ４）に配置されているとする。
【００３１】
まず、コンピュータシステム１の電源を投入すると、ステップＳ１０１で、ＣＰＵ２は主記憶装置５や他の記憶装置からＤＭＡコントローラ３ａ及びインターフェース回路３ｂのＬＵＴデータを読み込み、ステップＳ１０２で、このＬＵＴデータをプログラマブル論理回路３の書き換え可能な論理領域にロードして、プログラマブル論理回路３内にバスマスタ機能を備えるＤＭＡコントローラ３ａと２次記憶装置４をバス６に接続するためのインターフェース回路３ｂとを実装する。
【００３２】
次に、ステップＳ１０３で、ＣＰＵ２はＯＳからカーネル空間上に分割された４つのブロック空間の情報を取得し、ステップＳ１０４で、プログラマブル論理回路３に実装されたＤＭＡコントローラ３ａに用意されたテーブルに４つのブロック空間の情報を入れる。このテーブルには、例えば、図５に示すように分割した各ブロック空間の開始アドレスとブロックのサイズが格納される。また、ブロックＢ４にはこのブロックが最後の分割ブロックであることを示すエンドフラグを有効にする。なお、テーブルに書き込む情報は図の構成に限定されず、カーネル空間上のブロック空間を特定できる情報であればよい。
【００３３】
次に、ステップＳ１０５で、ＣＰＵ２はプログラマブル論理回路３のＤＭＡコントローラ３ａに対してデータ転送を指示する。すると、ステップＳ１０６で、ＤＭＡコントローラ３ａは上記テーブルからブロックＢ１の開始アドレスとブロックサイズの情報を取り出し、図３の▲１▼に示すように、ブロックＢ１のデータを主記憶装置５のアドレスａからサイズｓ１分だけ転送する。
【００３４】
ブロックＢ１の転送が終わると、ステップＳ１０７で転送したブロックが最終ブロックであるかを判断し、最終ブロックでない場合（ここではエンドフラグが書き込まれていない場合）は、ＤＭＡコントローラ３ａはテーブルから次のブロックＢ２の開始アドレスとブロックサイズの情報を取り出し、図３の▲２▼に示すように、ブロックＢ２のデータを主記憶装置５のアドレスｂからサイズｓ２分だけ転送する。以下、同様にブロックＢ３、Ｂ４のデータ転送を行う（図３の▲３▼、▲４▼参照）。そして、ブロックＢ４を転送する時にエンドフラグＥが有効になっているので、ステップＳ１０７でＤＭＡコントローラ３ａはこのブロックが最終ブロックであることを認識してデータ転送を終了する。
【００３５】
ここで、従来のコンピュータシステムでは、各々のブロックデータを転送する度に、ＣＰＵはＯＳからカーネル空間上のブロック空間の情報を取得し該情報に基づいてＤＭＡコントローラを設定していたため、データ転送が終了するまでＣＰＵを開放することができなかったが、本実施例では、ＤＭＡコントローラ３ａにバスマスタ機能を設け、また、ブロック空間の情報を予めテーブルに記録しているため、ＤＭＡコントローラ３ａは能動的にデータ転送を行うことができ、ＣＰＵ２はステップＳ１０５でＤＭＡ転送を指示してから最終ブロックの転送が終了するまでの間は他の処理を行うことができる。この効果はＣＰＵ２にＬＡＮインターフェース回路等を介してネットワーク装置が接続されている構成などで特に顕著に現れ、ＣＰＵ２を介さずにＤＭＡ転送を可能とすることにより、コンピュータシステム１の処理能力を向上させることができる。
【００３６】
このように、本実施例では、コンピュータシステム１にプログラマブル論理回路３を設け、プログラマブル論理回路３内に、ハードディスクなどの２次記憶装置４のインターフェース回路３ｂと共にバスマスタ機能を備えたＤＭＡコントローラ３ａを実装し、ＤＭＡコントローラ３ａに用意されたテーブルにカーネル空間のブロック情報を入れることにより、プログラマブル論理回路３で能動的にデータ転送を行うことができるため、ＣＰＵ２の負荷を軽減することができ、コンピュータシステム全体の性能を向上させることができる。
【００３７】
上記構成では、プログラマブル論理回路３に設けたＤＭＡコントローラ３ａを用いてＤＭＡ転送を制御するものとしたが、ＣＰＵ２の処理に余裕がある場合にはＣＰＵ２に設けたＤＭＡコントローラでデータ転送を制御することもできる。その場合は、図６に示すように、ＣＰＵ２にもＤＭＡコントローラ２ａを設け、ＣＰＵ２の処理状態に応じて、ＣＰＵ２のＤＭＡコントローラ２ａとプログラマブル論理回路３のＤＭＡコントローラ３ａとを使い分けるようにすることもできる。
【００３８】
このように、ＣＰＵ２の処理状態に応じて、ＣＰＵ２のＤＭＡコントローラ２ａとプログラマブル論理回路３のＤＭＡコントローラ３ａとを使い分けることにより、ＣＰＵ２の処理に余裕がある場合はプログラマブル論理回路３に別の回路を構成して別の処理を実行させ、ＣＰＵ２の処理に余裕がない場合はプログラマブル論理回路３で能動的にデータ転送を行うことができるため、コンピュータシステム１の柔軟性をより高めることができる。
【００３９】
なお、上記実施例では、ハードディスクドライブ等の２次記憶装置に記憶された連続したブロックデータを転送する場合について記載したが、本発明は上記実施例に限定されるものではなく、２次記憶装置に散在して記憶された複数のブロックデータを転送する場合についても同様に適用することができる。
【００４０】
また、ＣＰＵ２とプログラマブル論理回路３と主記憶装置５と２次記憶装置４とを各々１つずつ設ける場合について示したが、主記憶装置５として複数の記憶装置を用いたり、プログラマブル論理回路３に複数のインターフェース回路を設けて複数の２次記憶装置を接続したり、バス６に入出力装置やネットワーク装置などの通信装置が接続される構成においても同様に適用することもできる。
【００４１】
【発明の効果】
以上説明したように、本発明のコンピュータシステム及びデータ転送方法によれば下記記載の効果を奏する。
【００４２】
本発明の第１の効果は、コンピュータシステムの構成を複雑にすることなく、主記憶装置とハードディスクドライブ等の２次記憶装置間のデータ転送を効率的に行うことができるということである。
【００４３】
その理由は、コンピュータシステムにプログラマブル論理回路を設け、プログラマブル論理回路内に２次記憶装置のインターフェース回路と共にＤＭＡコントローラとを実装しているため、ＤＭＡコントローラを別体として設ける必要がないからである。
【００４４】
また、本発明の第２の効果はＣＰＵを占有することなく、主記憶装置とハードディスクドライブ等の２次記憶装置間のデータ転送を効率的に行うことができるということである。
【００４５】
その理由は、プログラマブル論理回路内に設けるＤＭＡコントローラにバスマスタ機能を持たせることにより、プログラマブル論理回路で能動的にＤＭＡ転送を行うことができるからである。また、ＤＭＡコントローラに用意されたテーブルにカーネル空間のブロック情報を書き込むことにより、プログラマブル論理回路はこのテーブルを参照してカーネル空間に分割されたブロック空間に直接ブロックデータを転送することができるからである。
【００４６】
また、本発明の第３の効果は、柔軟性の高いコンピュータシステムを実現できるということである。
【００４７】
その理由は、ＣＰＵの処理状態に応じてプログラマブル論理回路にＤＭＡコントローラを実装する構成では、ＣＰＵの処理に余裕がある場合はプログラマブル論理回路に別の回路を実装して別の処理を実行させることができ、ＣＰＵの処理に余裕がない場合はプログラマブル論理回路で能動的にデータ転送を行うことができるからである。
【図面の簡単な説明】
【図１】本発明の一実施例に係るコンピュータシステムの基本構成を模式的に示す図である。
【図２】本発明の一実施例に係るデータ転送方法の手順を示すフローチャート図である。
【図３】本発明の一実施例に係るデータ転送の様子を模式的に示す図である。
【図４】本発明の一実施例に係るカーネル空間（主記憶装置）上のブロック空間を示す図である。
【図５】本発明の一実施例に係るＤＭＡコントローラに用意されるテーブルに記録されるブロック情報の構成例を示す図である。
【図６】本発明の一実施例に係るコンピュータシステムの他の構成を模式的に示す図である。
【図７】従来のデータ転送方法を模式的に示す図である。
【図８】ＯＳによりブロックデータを管理する方法を模式的に示す図である。
【図９】従来のＤＭＡ転送方法を模式的に示す図である。
【図１０】従来のＤＭＡ転送方法を模式的に示す図である。
【符号の説明】
１  コンピュータシステム
２  ＣＰＵ
２ａ  ＤＭＡコントローラ
３  プログラマブル論理回路
３ａ  ＤＭＡコントローラ
３ｂ  インターフェース回路
４  ２次記憶装置
５  主記憶装置
６  バス
７  インターフェース回路
【図１】
2005011287.tif 000003
【図２】
2005011287.tif 000004
【図３】
2005011287.tif 000005
【図４】
2005011287.tif 000006
【図５】
2005011287.tif 000007
【図６】
2005011287.tif 000008
【図７】
2005011287.tif 000009
【図８】
2005011287.tif 000010
【図９】
2005011287.tif 000011
【図１０】
2005011287.tif 000012