JP2005011287A - コンピュータシステム及びデータ転送方法 - Google Patents
コンピュータシステム及びデータ転送方法 Download PDFInfo
- Publication number
- JP2005011287A JP2005011287A JP2003177570A JP2003177570A JP2005011287A JP 2005011287 A JP2005011287 A JP 2005011287A JP 2003177570 A JP2003177570 A JP 2003177570A JP 2003177570 A JP2003177570 A JP 2003177570A JP 2005011287 A JP2005011287 A JP 2005011287A
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- block
- dma controller
- secondary storage
- programmable logic
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】CPUを占有することなく、効率的にハードディスクドライブ等の2次記憶装置と主記憶装置間のDMA転送を行うことができるコンピュータシステム及びデータ転送方法の提供。
【解決手段】コンピュータシステム1にプログラマブル論理回路3を設け、プログラマブル論理回路3に、ハードディスクドライブ等の2次記憶装置4をバス6に接続するためのインターフェース回路3bとバスマスタ機能を有するDMAコントローラ3aとを実装し、また、DMAコントローラ3aに、主記憶装置5のブロック空間の開始アドレスやブロックサイズなどの情報を記録するテーブルを設けることにより、CPU2を介することなくプログラマブル論理回路3で能動的にDMA転送を行うことができる。これにより、コンピュータシステム1全体の処理能力を向上させることができる。
【選択図】図1
【解決手段】コンピュータシステム1にプログラマブル論理回路3を設け、プログラマブル論理回路3に、ハードディスクドライブ等の2次記憶装置4をバス6に接続するためのインターフェース回路3bとバスマスタ機能を有するDMAコントローラ3aとを実装し、また、DMAコントローラ3aに、主記憶装置5のブロック空間の開始アドレスやブロックサイズなどの情報を記録するテーブルを設けることにより、CPU2を介することなくプログラマブル論理回路3で能動的にDMA転送を行うことができる。これにより、コンピュータシステム1全体の処理能力を向上させることができる。
【選択図】図1
Description
【0001】
【発明の属する技術分野】
本発明は、コンピュータシステム及びデータ転送方法に関し、特に、書き換え可能な論理領域を備えるプログラマブル論理回路を含むコンピュータシステム及びプログラマブル論理回路を用いた主記憶装置と2次記憶装置間のデータ転送方法に関する。
【0002】
【従来の技術】
OS(オペレーティング・システム)などを動作させるカーネル空間をローカルメモリ(主記憶装置)に持つコンピュータシステムにおいて、ハードディスクなどの2次記憶装置上に記憶された連続したブロックデータをカーネル空間に転送するような場合、カーネル空間上に転送するデータ量に応じた連続した空き領域がない時は、図7に示すように、転送しようとする連続したブロックデータがブロック単位に分割(図では4つに分割)され、各々のブロックデータはカーネル空間上の別々のブロック空間に転送される。そして、カーネル空間に散在する各ブロックデータは、図8に示すように開始ポインタ、データサイズ、次のブロックへのポインタ等の情報を使ってOSにより管理される。
【0003】
ここで、2次記憶装置4に記憶されたブロックデータの転送をCPU(中央演算装置)が制御する場合、データ転送中はCPUは他の処理を行うことができないため、コンピュータシステム全体としての処理能力が低下してしまう。そこで、コンピュータシステムの処理能力を向上させるために、CPUを介さずに装置間のデータ転送を行うダイレクト・メモリ・アクセス(以下、DMAを称する。)転送方式が用いられる。
【0004】
このDMA転送方式を利用する場合は、コンピュータシステムにDMAコントローラを設け、ブロックデータの転送毎に、カーネル空間の上のブロック情報を取得し、その情報に基づいてDMAコントローラを設定することにより、CPUを介さずにDMAコントローラでデータ転送を制御することができる。これにより、各々のブロックデータを転送する間はCPUが開放されるため、CPUは他の処理を行うことができ、コンピュータシステムの処理能力を向上させることができる。
【0005】
また、DMAコントローラを用いたデータ転送の効率を上げるための方法が種々提案されており、例えば、特開2002−351816号公報には、第1の装置がバスマスタとしてバスを占有する工程と、第1の装置がバスを占有している状態で、転送すべきデータのうち、第1の所定個数のデータを転送する工程と、第1の所定個数のデータの転送が終了したか否かを判定する工程と、第1の所定個数のデータの転送が終了したと判定された後、第2の装置の要求の有無に応じて第1の装置がバスを開放するか否かを判定する工程と、第1の装置がバスを開放すると判定された場合、第1の装置がバスを開放する工程とを含むデータ転送方法が開示されている。
【0006】
【特許文献1】
特開2002−351816号公報(第4−8頁、第1図)
【0007】
【発明が解決しようとする課題】
ここで、ハードディスクなどの2次記憶装置に記憶された連続した複数のブロックデータを、DMAコントローラを使ってカーネル空間上に散在するブロック空間にDMA転送を行う方法として次のような方法がある。
【0008】
第1の方法は、分割されたブロックデータ毎にDMA転送を行う方法である。この方法は、図9に示すように、分割されたブロックデータの数だけDMA転送を実施する方法であり、例えば、2次記憶装置に記憶された4つの連続したブロックデータをカーネル空間上の4つのブロック空間に分割して転送する場合には、DMA転送を4回実施しなければならない。従って、DMA転送の度にCPUはカーネル空間上のブロック情報を取得して、該情報を用いてDMAコントローラを設定しなければならないために、4つのブロックデータの転送が終了するまではCPUを完全には解放することができないという問題がある。
【0009】
また、第2の方法は、主記憶装置5(カーネル空間)に中継バッファを設ける方法である。この方法では、図10に示すように、カーネル空間に予め一定サイズの連続した空き領域を確保しておき、これを中継バッファ5aとして用いる。そして、2次記憶装置4に記憶された連続したブロックデータを1回のDMA転送で中継バッファ5aに転送し、その後、中継バッファ5aから分割されたブロック空間へブロックデータをコピーする。この方法は2次記憶装置4からのDMA転送は1回で済むが、中継バッファ5aから再度各々のブロック空間にブロックデータをコピーしなければならないため、処理が2度手間になるという問題がある。また、中継バッファ5aから各々のブロック空間へのコピーはCPUが制御するため、その間CPUを占有してしまうという問題もある。
【0010】
また、上記いずれの方法であっても、2次記憶装置4から主記憶装置5にブロックデータを転送するためには、コンピュータシステムに、2次記憶装置4をバスに接続するためのインターフェース回路に加えてDMAコントローラを設けなければならないため、コンピュータシステムの構成が複雑になるという問題がある。
【0011】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、CPUを占有することなく、効率的にハードディスクドライブ等の2次記憶装置と主記憶装置間のDMA転送を行うことができるコンピュータシステム及びデータ転送方法を提供することにある。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明のコンピュータシステムは、演算処理装置と主記憶装置と2次記憶装置とを少なくとも備えるコンピュータシステムにおいて、前記2次記憶装置は、書き換え可能な論理領域を備えるプログラマブル論理回路を介して前記演算処理装置のバスに接続され、前記プログラマブル論理回路には、前記2次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるDMAコントローラとが構成されているものである。
【0013】
本発明においては、前記プログラマブル論理回路の前記DMAコントローラには、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを備え、前記DMAコントローラは、前記情報が記録された前記テーブルを参照することにより、前記2次記憶装置に記憶されたブロックデータを、前記主記憶装置の所定の前記ブロックに転送する構成とすることができ、前記2次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記DMAコントローラは、前記テーブルを参照することにより、前記2次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送する構成とすることもできる。
【0014】
また、本発明のデータ転送方法は、少なくとも、演算処理装置と、主記憶装置と、2次記憶装置と、書き換え可能な論理領域を備えるプログラマブル論理回路とを備え、前記2次記憶装置が前記プログラマブル論理回路を介して前記演算処理装置のバスに接続されてなるコンピュータシステムにおけるデータ転送方法であって、予め前記主記憶装置又は他の記憶装置に記憶されたLUTデータを用いて、前記プログラマブル論理回路に、前記2次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるDMAコントローラとを構成し、前記DMAコントローラを用いて、前記2次記憶装置と前記主記憶装置間のデータ転送を行うものである。
【0015】
本発明においては、前記プログラマブル論理回路の前記DMAコントローラに、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを設け、前記テーブルに前記情報を記録することにより、前記DMAコントローラを用いて、前記2次記憶装置に記憶されたブロックデータを前記主記憶装置の所定の前記ブロックに転送する構成とすることができ、前記2次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記テーブルを参照することにより、前記DMAコントローラを用いて、前記2次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送する構成とすることもできる。
【0016】
このように、本発明では、コンピュータシステムにプログラマブル論理回路を設け、プログラマブル論理回路に、ハードディスクドライブ等の2次記憶装置をバスに接続するためのインターフェース回路とバスマスタ機能を有するDMAコントローラとを実装することにより、コンピュータシステムの構成を複雑にすることなく効率的にDMA転送ができるようにしている。
【0017】
また、プログラマブル論理回路のDMAコントローラに、主記憶装置のブロック空間の開始アドレスやブロックサイズなどの情報を記録するテーブルを設けることにより、CPUを介することなくプログラマブル論理回路で能動的にDMA転送を行うことができる。これにより、データ転送の間、CPUは他の処理を行うことができるため、コンピュータシステム全体の処理能力を向上させることができる。
【0018】
【発明の実施の形態】
一般に、コンピュータシステムでは、ハードディスクドライブ等の2次記憶装置からカーネル空間(主記憶装置)にデータを転送して処理が行われるが、このデータ転送をCPUが制御するとデータ転送の間CPUの処理が滞ってしまい好ましくない。
【0019】
また、従来技術で示したように、DMAコントローラを用いてデータ転送を行う方法があるが、この方法ではコンピュータシステムにDMAコントローラを別途設ける必要があるためにコンピュータシステムの構成が複雑になる。また、2次記憶装置に記憶された連続したブロックデータを転送する場合、ブロック数分のDMA転送を行う方法(第1の方法)では、DMA転送毎にDMAコントローラを設定するために効率が悪く、また、中継バッファを設ける方法(第2の方法)でも一旦中継バッファにDMA転送したブロックデータを再度別々のブロック空間にコピーしなければならないため2度手間になる。そして、主記憶装置のブロック情報の取得やDMAコントローラの設定、ブロックデータのコピーの際にCPUを占有してしまうため、コンピュータシステムの処理が停滞してしまう。このような問題は、ネットワーク機器のようにCPUが多数の処理を行うシステムの場合に顕著に現れる。
【0020】
一方、近年、FPGA(field Programmable Gate Array)やPLD(Programmable logic device)等の書き換え可能な論理領域を備えるデバイス(以下、これらを総称してプログラマブル論理回路と呼ぶ。)の開発が行われている。このプログラマブル論理回路の基本単位は、組み合わせ論理を実現するLUT(LookUp Table)と、順序論理を実現するレジスタで構築された論理セルである。このプログラマブル論理回路内にはSRAMが存在し、プログラマブル論理回路の各論理セルがどのように動作するかを記述した回路データが格納される。このプログラマブル論理回路では、書き換え可能な論理領域の回路データを適宜書き換えることができることから様々な処理を実現することができる。
【0021】
そこで、本発明では、上記プログラマブル論理回路の特徴を利用して、OSによるハードディスクなどの2次記憶装置とカーネル空間(主記憶装置)との間のデータ転送の効率化を図るために、コンピュータシステムを次のように構成する。
【0022】
まず、第1に、2次記憶装置とバスとの間にプログラマブル論理回路を設け、プログラマブル論理回路に2次記憶装置をバスに接続するためのインターフェース回路を構築すると共に、CPUを介さずにデータ転送を行うためのDMAコントローラを実装する。このような構成とすることにより、DMAコントローラを別体として設ける必要がなくなるため、コンピュータシステムの構成を簡略化することができる。
【0023】
また、第2に、DMAコントローラに、バスを占有してデータ転送を制御するためのバスマスタ機能を持たせる。このように、DMAコントローラにバスマスタ機能を持たせることによって、プログラマブル論理回路自体がバスを占有しデータ転送を制御することができるため、能動的にカーネル空間にアクセスすることができるようになる。
【0024】
また、第3に、カーネル空間に分割されたブロックの構成をDMAコントローラが管理できるようにする。具体的には、分割されたブロックの開始ポインタとブロックサイズといった情報を格納するためのテーブルをDMAコントローラに持たせる。このテーブルには分割されたブロック全ての情報を持たせることができる。また、このテーブルの情報をRAMに置くことにより、任意に書き換え可能とする。そして、DMAコントローラは上記テーブルを参照してカーネル空間に分割されたブロック空間に直接データ転送することができるため、データ転送中にCPUは他の処理を行うことができ、コンピュータシステムの処理能力を向上させることができる。
【0025】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るコンピュータシステム及びデータ転送方法について、図1乃至図6を参照して説明する。図1は、第1の実施例に係るコンピュータシステムの基本構成を模式的に示す図であり、図2は、本実施例のコンピュータシステムを用いたデータ転送手順を示すフローチャート図である。また、図3は、データ転送の様子を模式的に示す図であり、図4は、カーネル空間(主記憶装置)上のブロック空間を示す図であり、図5は、DMAコントローラに用意されるテーブルに記録されるブロック情報の構成例を示す図である。また、図6は、本実施例に係るコンピュータシステムの他の構成を模式的に示す図である。
【0026】
図1に示すように、本実施例のコンピュータシステム1は、CPU、MPU等の演算処理装置(ここでは、CPU2とする。)と、OSを動作させるメモリ空間(カーネル空間)となるDRAM、SRAM等の主記憶装置5と、ハードディスクドライブやフロッピー(登録商標)、MO、CD−R、DVD−R等の記録媒体を用いる外部記憶装置などの2次記憶装置4と、内部に書き換え可能な論理領域を備えるプログラマブル論理回路3とを少なくとも備えるものであり、2次記憶装置4はプログラマブル論理回路3を介してバス6に接続されている。
【0027】
また、プログラマブル論理回路3には、2次記憶装置4をバス6に接続するためのインターフェース回路3bと、2次記憶装置4と主記憶装置5間のデータ転送をCPU2を介さずに行うためのDMAコントローラ3aとが実装されている。このDMAコントローラ3aには、バス6を占有してデータ転送を制御するためのバスマスタ機能を備えており、プログラマブル論理回路3で能動的にデータ転送ができるようになっている。また、プログラマブル論理回路3内には、主記憶装置5内のブロック空間の開始アドレスやブロックサイズ等の情報が記録されたテーブルを格納する領域が設けられている。
【0028】
なお、DMAコントローラ3aは、プログラマブル論理回路3に固定的な回路として構成されていてもよいが、コンピュータシステム1の柔軟性を高めるために、主記憶装置5や図示しない他の記憶装置に、予めDMAコントローラ3aを構成するためのLUTデータを記憶しておき、電源投入時などの任意のタイミングでこのLUTデータを書き換え可能な論理領域にロードしてDMAコントローラ3aが実装されることが好ましい。
【0029】
また、2次記憶装置4として使用する機器が固定されている場合は、インターフェース回路3bはプログラマブル論理回路3に固定的な回路として構成されていてもよいが、他の種類の2次記憶装置4を使用する場合は、同様に主記憶装置5や図示しない他の記憶装置に予めインターフェース回路3bを構成するためのLUTデータを記憶しておき、電源投入時などの任意のタイミングでこのLUTデータを書き換え可能な論理領域にロードしてインターフェース回路3bを実装するようにしてもよい。以下では、DMAコントローラ3a及びインターフェース回路3bの双方が書き換え可能な論理領域に実装されるものとする。
【0030】
上記構成のコンピュータシステム1を用いて、2次記憶装置4に記憶された4つの連続したブロックデータをカーネル空間(主記憶装置5)の4つに分割されたブロック空間にDMA転送する手順について、図2のフローチャート図を参照して説明する。なお、カーネル空間に分割された4つのブロックは、図4に示すようにメモリ空間上(ブロックB1はアドレスa〜a+s1、ブロックB2はアドレスb〜b+s2、ブロックB3はアドレスc〜c+s3、ブロックB4はアドレスd〜d+s4)に配置されているとする。
【0031】
まず、コンピュータシステム1の電源を投入すると、ステップS101で、CPU2は主記憶装置5や他の記憶装置からDMAコントローラ3a及びインターフェース回路3bのLUTデータを読み込み、ステップS102で、このLUTデータをプログラマブル論理回路3の書き換え可能な論理領域にロードして、プログラマブル論理回路3内にバスマスタ機能を備えるDMAコントローラ3aと2次記憶装置4をバス6に接続するためのインターフェース回路3bとを実装する。
【0032】
次に、ステップS103で、CPU2はOSからカーネル空間上に分割された4つのブロック空間の情報を取得し、ステップS104で、プログラマブル論理回路3に実装されたDMAコントローラ3aに用意されたテーブルに4つのブロック空間の情報を入れる。このテーブルには、例えば、図5に示すように分割した各ブロック空間の開始アドレスとブロックのサイズが格納される。また、ブロックB4にはこのブロックが最後の分割ブロックであることを示すエンドフラグを有効にする。なお、テーブルに書き込む情報は図の構成に限定されず、カーネル空間上のブロック空間を特定できる情報であればよい。
【0033】
次に、ステップS105で、CPU2はプログラマブル論理回路3のDMAコントローラ3aに対してデータ転送を指示する。すると、ステップS106で、DMAコントローラ3aは上記テーブルからブロックB1の開始アドレスとブロックサイズの情報を取り出し、図3の▲1▼に示すように、ブロックB1のデータを主記憶装置5のアドレスaからサイズs1分だけ転送する。
【0034】
ブロックB1の転送が終わると、ステップS107で転送したブロックが最終ブロックであるかを判断し、最終ブロックでない場合(ここではエンドフラグが書き込まれていない場合)は、DMAコントローラ3aはテーブルから次のブロックB2の開始アドレスとブロックサイズの情報を取り出し、図3の▲2▼に示すように、ブロックB2のデータを主記憶装置5のアドレスbからサイズs2分だけ転送する。以下、同様にブロックB3、B4のデータ転送を行う(図3の▲3▼、▲4▼参照)。そして、ブロックB4を転送する時にエンドフラグEが有効になっているので、ステップS107でDMAコントローラ3aはこのブロックが最終ブロックであることを認識してデータ転送を終了する。
【0035】
ここで、従来のコンピュータシステムでは、各々のブロックデータを転送する度に、CPUはOSからカーネル空間上のブロック空間の情報を取得し該情報に基づいてDMAコントローラを設定していたため、データ転送が終了するまでCPUを開放することができなかったが、本実施例では、DMAコントローラ3aにバスマスタ機能を設け、また、ブロック空間の情報を予めテーブルに記録しているため、DMAコントローラ3aは能動的にデータ転送を行うことができ、CPU2はステップS105でDMA転送を指示してから最終ブロックの転送が終了するまでの間は他の処理を行うことができる。この効果はCPU2にLANインターフェース回路等を介してネットワーク装置が接続されている構成などで特に顕著に現れ、CPU2を介さずにDMA転送を可能とすることにより、コンピュータシステム1の処理能力を向上させることができる。
【0036】
このように、本実施例では、コンピュータシステム1にプログラマブル論理回路3を設け、プログラマブル論理回路3内に、ハードディスクなどの2次記憶装置4のインターフェース回路3bと共にバスマスタ機能を備えたDMAコントローラ3aを実装し、DMAコントローラ3aに用意されたテーブルにカーネル空間のブロック情報を入れることにより、プログラマブル論理回路3で能動的にデータ転送を行うことができるため、CPU2の負荷を軽減することができ、コンピュータシステム全体の性能を向上させることができる。
【0037】
上記構成では、プログラマブル論理回路3に設けたDMAコントローラ3aを用いてDMA転送を制御するものとしたが、CPU2の処理に余裕がある場合にはCPU2に設けたDMAコントローラでデータ転送を制御することもできる。その場合は、図6に示すように、CPU2にもDMAコントローラ2aを設け、CPU2の処理状態に応じて、CPU2のDMAコントローラ2aとプログラマブル論理回路3のDMAコントローラ3aとを使い分けるようにすることもできる。
【0038】
このように、CPU2の処理状態に応じて、CPU2のDMAコントローラ2aとプログラマブル論理回路3のDMAコントローラ3aとを使い分けることにより、CPU2の処理に余裕がある場合はプログラマブル論理回路3に別の回路を構成して別の処理を実行させ、CPU2の処理に余裕がない場合はプログラマブル論理回路3で能動的にデータ転送を行うことができるため、コンピュータシステム1の柔軟性をより高めることができる。
【0039】
なお、上記実施例では、ハードディスクドライブ等の2次記憶装置に記憶された連続したブロックデータを転送する場合について記載したが、本発明は上記実施例に限定されるものではなく、2次記憶装置に散在して記憶された複数のブロックデータを転送する場合についても同様に適用することができる。
【0040】
また、CPU2とプログラマブル論理回路3と主記憶装置5と2次記憶装置4とを各々1つずつ設ける場合について示したが、主記憶装置5として複数の記憶装置を用いたり、プログラマブル論理回路3に複数のインターフェース回路を設けて複数の2次記憶装置を接続したり、バス6に入出力装置やネットワーク装置などの通信装置が接続される構成においても同様に適用することもできる。
【0041】
【発明の効果】
以上説明したように、本発明のコンピュータシステム及びデータ転送方法によれば下記記載の効果を奏する。
【0042】
本発明の第1の効果は、コンピュータシステムの構成を複雑にすることなく、主記憶装置とハードディスクドライブ等の2次記憶装置間のデータ転送を効率的に行うことができるということである。
【0043】
その理由は、コンピュータシステムにプログラマブル論理回路を設け、プログラマブル論理回路内に2次記憶装置のインターフェース回路と共にDMAコントローラとを実装しているため、DMAコントローラを別体として設ける必要がないからである。
【0044】
また、本発明の第2の効果はCPUを占有することなく、主記憶装置とハードディスクドライブ等の2次記憶装置間のデータ転送を効率的に行うことができるということである。
【0045】
その理由は、プログラマブル論理回路内に設けるDMAコントローラにバスマスタ機能を持たせることにより、プログラマブル論理回路で能動的にDMA転送を行うことができるからである。また、DMAコントローラに用意されたテーブルにカーネル空間のブロック情報を書き込むことにより、プログラマブル論理回路はこのテーブルを参照してカーネル空間に分割されたブロック空間に直接ブロックデータを転送することができるからである。
【0046】
また、本発明の第3の効果は、柔軟性の高いコンピュータシステムを実現できるということである。
【0047】
その理由は、CPUの処理状態に応じてプログラマブル論理回路にDMAコントローラを実装する構成では、CPUの処理に余裕がある場合はプログラマブル論理回路に別の回路を実装して別の処理を実行させることができ、CPUの処理に余裕がない場合はプログラマブル論理回路で能動的にデータ転送を行うことができるからである。
【図面の簡単な説明】
【図1】本発明の一実施例に係るコンピュータシステムの基本構成を模式的に示す図である。
【図2】本発明の一実施例に係るデータ転送方法の手順を示すフローチャート図である。
【図3】本発明の一実施例に係るデータ転送の様子を模式的に示す図である。
【図4】本発明の一実施例に係るカーネル空間(主記憶装置)上のブロック空間を示す図である。
【図5】本発明の一実施例に係るDMAコントローラに用意されるテーブルに記録されるブロック情報の構成例を示す図である。
【図6】本発明の一実施例に係るコンピュータシステムの他の構成を模式的に示す図である。
【図7】従来のデータ転送方法を模式的に示す図である。
【図8】OSによりブロックデータを管理する方法を模式的に示す図である。
【図9】従来のDMA転送方法を模式的に示す図である。
【図10】従来のDMA転送方法を模式的に示す図である。
【符号の説明】
1 コンピュータシステム
2 CPU
2a DMAコントローラ
3 プログラマブル論理回路
3a DMAコントローラ
3b インターフェース回路
4 2次記憶装置
5 主記憶装置
6 バス
7 インターフェース回路
【発明の属する技術分野】
本発明は、コンピュータシステム及びデータ転送方法に関し、特に、書き換え可能な論理領域を備えるプログラマブル論理回路を含むコンピュータシステム及びプログラマブル論理回路を用いた主記憶装置と2次記憶装置間のデータ転送方法に関する。
【0002】
【従来の技術】
OS(オペレーティング・システム)などを動作させるカーネル空間をローカルメモリ(主記憶装置)に持つコンピュータシステムにおいて、ハードディスクなどの2次記憶装置上に記憶された連続したブロックデータをカーネル空間に転送するような場合、カーネル空間上に転送するデータ量に応じた連続した空き領域がない時は、図7に示すように、転送しようとする連続したブロックデータがブロック単位に分割(図では4つに分割)され、各々のブロックデータはカーネル空間上の別々のブロック空間に転送される。そして、カーネル空間に散在する各ブロックデータは、図8に示すように開始ポインタ、データサイズ、次のブロックへのポインタ等の情報を使ってOSにより管理される。
【0003】
ここで、2次記憶装置4に記憶されたブロックデータの転送をCPU(中央演算装置)が制御する場合、データ転送中はCPUは他の処理を行うことができないため、コンピュータシステム全体としての処理能力が低下してしまう。そこで、コンピュータシステムの処理能力を向上させるために、CPUを介さずに装置間のデータ転送を行うダイレクト・メモリ・アクセス(以下、DMAを称する。)転送方式が用いられる。
【0004】
このDMA転送方式を利用する場合は、コンピュータシステムにDMAコントローラを設け、ブロックデータの転送毎に、カーネル空間の上のブロック情報を取得し、その情報に基づいてDMAコントローラを設定することにより、CPUを介さずにDMAコントローラでデータ転送を制御することができる。これにより、各々のブロックデータを転送する間はCPUが開放されるため、CPUは他の処理を行うことができ、コンピュータシステムの処理能力を向上させることができる。
【0005】
また、DMAコントローラを用いたデータ転送の効率を上げるための方法が種々提案されており、例えば、特開2002−351816号公報には、第1の装置がバスマスタとしてバスを占有する工程と、第1の装置がバスを占有している状態で、転送すべきデータのうち、第1の所定個数のデータを転送する工程と、第1の所定個数のデータの転送が終了したか否かを判定する工程と、第1の所定個数のデータの転送が終了したと判定された後、第2の装置の要求の有無に応じて第1の装置がバスを開放するか否かを判定する工程と、第1の装置がバスを開放すると判定された場合、第1の装置がバスを開放する工程とを含むデータ転送方法が開示されている。
【0006】
【特許文献1】
特開2002−351816号公報(第4−8頁、第1図)
【0007】
【発明が解決しようとする課題】
ここで、ハードディスクなどの2次記憶装置に記憶された連続した複数のブロックデータを、DMAコントローラを使ってカーネル空間上に散在するブロック空間にDMA転送を行う方法として次のような方法がある。
【0008】
第1の方法は、分割されたブロックデータ毎にDMA転送を行う方法である。この方法は、図9に示すように、分割されたブロックデータの数だけDMA転送を実施する方法であり、例えば、2次記憶装置に記憶された4つの連続したブロックデータをカーネル空間上の4つのブロック空間に分割して転送する場合には、DMA転送を4回実施しなければならない。従って、DMA転送の度にCPUはカーネル空間上のブロック情報を取得して、該情報を用いてDMAコントローラを設定しなければならないために、4つのブロックデータの転送が終了するまではCPUを完全には解放することができないという問題がある。
【0009】
また、第2の方法は、主記憶装置5(カーネル空間)に中継バッファを設ける方法である。この方法では、図10に示すように、カーネル空間に予め一定サイズの連続した空き領域を確保しておき、これを中継バッファ5aとして用いる。そして、2次記憶装置4に記憶された連続したブロックデータを1回のDMA転送で中継バッファ5aに転送し、その後、中継バッファ5aから分割されたブロック空間へブロックデータをコピーする。この方法は2次記憶装置4からのDMA転送は1回で済むが、中継バッファ5aから再度各々のブロック空間にブロックデータをコピーしなければならないため、処理が2度手間になるという問題がある。また、中継バッファ5aから各々のブロック空間へのコピーはCPUが制御するため、その間CPUを占有してしまうという問題もある。
【0010】
また、上記いずれの方法であっても、2次記憶装置4から主記憶装置5にブロックデータを転送するためには、コンピュータシステムに、2次記憶装置4をバスに接続するためのインターフェース回路に加えてDMAコントローラを設けなければならないため、コンピュータシステムの構成が複雑になるという問題がある。
【0011】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、CPUを占有することなく、効率的にハードディスクドライブ等の2次記憶装置と主記憶装置間のDMA転送を行うことができるコンピュータシステム及びデータ転送方法を提供することにある。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明のコンピュータシステムは、演算処理装置と主記憶装置と2次記憶装置とを少なくとも備えるコンピュータシステムにおいて、前記2次記憶装置は、書き換え可能な論理領域を備えるプログラマブル論理回路を介して前記演算処理装置のバスに接続され、前記プログラマブル論理回路には、前記2次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるDMAコントローラとが構成されているものである。
【0013】
本発明においては、前記プログラマブル論理回路の前記DMAコントローラには、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを備え、前記DMAコントローラは、前記情報が記録された前記テーブルを参照することにより、前記2次記憶装置に記憶されたブロックデータを、前記主記憶装置の所定の前記ブロックに転送する構成とすることができ、前記2次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記DMAコントローラは、前記テーブルを参照することにより、前記2次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送する構成とすることもできる。
【0014】
また、本発明のデータ転送方法は、少なくとも、演算処理装置と、主記憶装置と、2次記憶装置と、書き換え可能な論理領域を備えるプログラマブル論理回路とを備え、前記2次記憶装置が前記プログラマブル論理回路を介して前記演算処理装置のバスに接続されてなるコンピュータシステムにおけるデータ転送方法であって、予め前記主記憶装置又は他の記憶装置に記憶されたLUTデータを用いて、前記プログラマブル論理回路に、前記2次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるDMAコントローラとを構成し、前記DMAコントローラを用いて、前記2次記憶装置と前記主記憶装置間のデータ転送を行うものである。
【0015】
本発明においては、前記プログラマブル論理回路の前記DMAコントローラに、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを設け、前記テーブルに前記情報を記録することにより、前記DMAコントローラを用いて、前記2次記憶装置に記憶されたブロックデータを前記主記憶装置の所定の前記ブロックに転送する構成とすることができ、前記2次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記テーブルを参照することにより、前記DMAコントローラを用いて、前記2次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送する構成とすることもできる。
【0016】
このように、本発明では、コンピュータシステムにプログラマブル論理回路を設け、プログラマブル論理回路に、ハードディスクドライブ等の2次記憶装置をバスに接続するためのインターフェース回路とバスマスタ機能を有するDMAコントローラとを実装することにより、コンピュータシステムの構成を複雑にすることなく効率的にDMA転送ができるようにしている。
【0017】
また、プログラマブル論理回路のDMAコントローラに、主記憶装置のブロック空間の開始アドレスやブロックサイズなどの情報を記録するテーブルを設けることにより、CPUを介することなくプログラマブル論理回路で能動的にDMA転送を行うことができる。これにより、データ転送の間、CPUは他の処理を行うことができるため、コンピュータシステム全体の処理能力を向上させることができる。
【0018】
【発明の実施の形態】
一般に、コンピュータシステムでは、ハードディスクドライブ等の2次記憶装置からカーネル空間(主記憶装置)にデータを転送して処理が行われるが、このデータ転送をCPUが制御するとデータ転送の間CPUの処理が滞ってしまい好ましくない。
【0019】
また、従来技術で示したように、DMAコントローラを用いてデータ転送を行う方法があるが、この方法ではコンピュータシステムにDMAコントローラを別途設ける必要があるためにコンピュータシステムの構成が複雑になる。また、2次記憶装置に記憶された連続したブロックデータを転送する場合、ブロック数分のDMA転送を行う方法(第1の方法)では、DMA転送毎にDMAコントローラを設定するために効率が悪く、また、中継バッファを設ける方法(第2の方法)でも一旦中継バッファにDMA転送したブロックデータを再度別々のブロック空間にコピーしなければならないため2度手間になる。そして、主記憶装置のブロック情報の取得やDMAコントローラの設定、ブロックデータのコピーの際にCPUを占有してしまうため、コンピュータシステムの処理が停滞してしまう。このような問題は、ネットワーク機器のようにCPUが多数の処理を行うシステムの場合に顕著に現れる。
【0020】
一方、近年、FPGA(field Programmable Gate Array)やPLD(Programmable logic device)等の書き換え可能な論理領域を備えるデバイス(以下、これらを総称してプログラマブル論理回路と呼ぶ。)の開発が行われている。このプログラマブル論理回路の基本単位は、組み合わせ論理を実現するLUT(LookUp Table)と、順序論理を実現するレジスタで構築された論理セルである。このプログラマブル論理回路内にはSRAMが存在し、プログラマブル論理回路の各論理セルがどのように動作するかを記述した回路データが格納される。このプログラマブル論理回路では、書き換え可能な論理領域の回路データを適宜書き換えることができることから様々な処理を実現することができる。
【0021】
そこで、本発明では、上記プログラマブル論理回路の特徴を利用して、OSによるハードディスクなどの2次記憶装置とカーネル空間(主記憶装置)との間のデータ転送の効率化を図るために、コンピュータシステムを次のように構成する。
【0022】
まず、第1に、2次記憶装置とバスとの間にプログラマブル論理回路を設け、プログラマブル論理回路に2次記憶装置をバスに接続するためのインターフェース回路を構築すると共に、CPUを介さずにデータ転送を行うためのDMAコントローラを実装する。このような構成とすることにより、DMAコントローラを別体として設ける必要がなくなるため、コンピュータシステムの構成を簡略化することができる。
【0023】
また、第2に、DMAコントローラに、バスを占有してデータ転送を制御するためのバスマスタ機能を持たせる。このように、DMAコントローラにバスマスタ機能を持たせることによって、プログラマブル論理回路自体がバスを占有しデータ転送を制御することができるため、能動的にカーネル空間にアクセスすることができるようになる。
【0024】
また、第3に、カーネル空間に分割されたブロックの構成をDMAコントローラが管理できるようにする。具体的には、分割されたブロックの開始ポインタとブロックサイズといった情報を格納するためのテーブルをDMAコントローラに持たせる。このテーブルには分割されたブロック全ての情報を持たせることができる。また、このテーブルの情報をRAMに置くことにより、任意に書き換え可能とする。そして、DMAコントローラは上記テーブルを参照してカーネル空間に分割されたブロック空間に直接データ転送することができるため、データ転送中にCPUは他の処理を行うことができ、コンピュータシステムの処理能力を向上させることができる。
【0025】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るコンピュータシステム及びデータ転送方法について、図1乃至図6を参照して説明する。図1は、第1の実施例に係るコンピュータシステムの基本構成を模式的に示す図であり、図2は、本実施例のコンピュータシステムを用いたデータ転送手順を示すフローチャート図である。また、図3は、データ転送の様子を模式的に示す図であり、図4は、カーネル空間(主記憶装置)上のブロック空間を示す図であり、図5は、DMAコントローラに用意されるテーブルに記録されるブロック情報の構成例を示す図である。また、図6は、本実施例に係るコンピュータシステムの他の構成を模式的に示す図である。
【0026】
図1に示すように、本実施例のコンピュータシステム1は、CPU、MPU等の演算処理装置(ここでは、CPU2とする。)と、OSを動作させるメモリ空間(カーネル空間)となるDRAM、SRAM等の主記憶装置5と、ハードディスクドライブやフロッピー(登録商標)、MO、CD−R、DVD−R等の記録媒体を用いる外部記憶装置などの2次記憶装置4と、内部に書き換え可能な論理領域を備えるプログラマブル論理回路3とを少なくとも備えるものであり、2次記憶装置4はプログラマブル論理回路3を介してバス6に接続されている。
【0027】
また、プログラマブル論理回路3には、2次記憶装置4をバス6に接続するためのインターフェース回路3bと、2次記憶装置4と主記憶装置5間のデータ転送をCPU2を介さずに行うためのDMAコントローラ3aとが実装されている。このDMAコントローラ3aには、バス6を占有してデータ転送を制御するためのバスマスタ機能を備えており、プログラマブル論理回路3で能動的にデータ転送ができるようになっている。また、プログラマブル論理回路3内には、主記憶装置5内のブロック空間の開始アドレスやブロックサイズ等の情報が記録されたテーブルを格納する領域が設けられている。
【0028】
なお、DMAコントローラ3aは、プログラマブル論理回路3に固定的な回路として構成されていてもよいが、コンピュータシステム1の柔軟性を高めるために、主記憶装置5や図示しない他の記憶装置に、予めDMAコントローラ3aを構成するためのLUTデータを記憶しておき、電源投入時などの任意のタイミングでこのLUTデータを書き換え可能な論理領域にロードしてDMAコントローラ3aが実装されることが好ましい。
【0029】
また、2次記憶装置4として使用する機器が固定されている場合は、インターフェース回路3bはプログラマブル論理回路3に固定的な回路として構成されていてもよいが、他の種類の2次記憶装置4を使用する場合は、同様に主記憶装置5や図示しない他の記憶装置に予めインターフェース回路3bを構成するためのLUTデータを記憶しておき、電源投入時などの任意のタイミングでこのLUTデータを書き換え可能な論理領域にロードしてインターフェース回路3bを実装するようにしてもよい。以下では、DMAコントローラ3a及びインターフェース回路3bの双方が書き換え可能な論理領域に実装されるものとする。
【0030】
上記構成のコンピュータシステム1を用いて、2次記憶装置4に記憶された4つの連続したブロックデータをカーネル空間(主記憶装置5)の4つに分割されたブロック空間にDMA転送する手順について、図2のフローチャート図を参照して説明する。なお、カーネル空間に分割された4つのブロックは、図4に示すようにメモリ空間上(ブロックB1はアドレスa〜a+s1、ブロックB2はアドレスb〜b+s2、ブロックB3はアドレスc〜c+s3、ブロックB4はアドレスd〜d+s4)に配置されているとする。
【0031】
まず、コンピュータシステム1の電源を投入すると、ステップS101で、CPU2は主記憶装置5や他の記憶装置からDMAコントローラ3a及びインターフェース回路3bのLUTデータを読み込み、ステップS102で、このLUTデータをプログラマブル論理回路3の書き換え可能な論理領域にロードして、プログラマブル論理回路3内にバスマスタ機能を備えるDMAコントローラ3aと2次記憶装置4をバス6に接続するためのインターフェース回路3bとを実装する。
【0032】
次に、ステップS103で、CPU2はOSからカーネル空間上に分割された4つのブロック空間の情報を取得し、ステップS104で、プログラマブル論理回路3に実装されたDMAコントローラ3aに用意されたテーブルに4つのブロック空間の情報を入れる。このテーブルには、例えば、図5に示すように分割した各ブロック空間の開始アドレスとブロックのサイズが格納される。また、ブロックB4にはこのブロックが最後の分割ブロックであることを示すエンドフラグを有効にする。なお、テーブルに書き込む情報は図の構成に限定されず、カーネル空間上のブロック空間を特定できる情報であればよい。
【0033】
次に、ステップS105で、CPU2はプログラマブル論理回路3のDMAコントローラ3aに対してデータ転送を指示する。すると、ステップS106で、DMAコントローラ3aは上記テーブルからブロックB1の開始アドレスとブロックサイズの情報を取り出し、図3の▲1▼に示すように、ブロックB1のデータを主記憶装置5のアドレスaからサイズs1分だけ転送する。
【0034】
ブロックB1の転送が終わると、ステップS107で転送したブロックが最終ブロックであるかを判断し、最終ブロックでない場合(ここではエンドフラグが書き込まれていない場合)は、DMAコントローラ3aはテーブルから次のブロックB2の開始アドレスとブロックサイズの情報を取り出し、図3の▲2▼に示すように、ブロックB2のデータを主記憶装置5のアドレスbからサイズs2分だけ転送する。以下、同様にブロックB3、B4のデータ転送を行う(図3の▲3▼、▲4▼参照)。そして、ブロックB4を転送する時にエンドフラグEが有効になっているので、ステップS107でDMAコントローラ3aはこのブロックが最終ブロックであることを認識してデータ転送を終了する。
【0035】
ここで、従来のコンピュータシステムでは、各々のブロックデータを転送する度に、CPUはOSからカーネル空間上のブロック空間の情報を取得し該情報に基づいてDMAコントローラを設定していたため、データ転送が終了するまでCPUを開放することができなかったが、本実施例では、DMAコントローラ3aにバスマスタ機能を設け、また、ブロック空間の情報を予めテーブルに記録しているため、DMAコントローラ3aは能動的にデータ転送を行うことができ、CPU2はステップS105でDMA転送を指示してから最終ブロックの転送が終了するまでの間は他の処理を行うことができる。この効果はCPU2にLANインターフェース回路等を介してネットワーク装置が接続されている構成などで特に顕著に現れ、CPU2を介さずにDMA転送を可能とすることにより、コンピュータシステム1の処理能力を向上させることができる。
【0036】
このように、本実施例では、コンピュータシステム1にプログラマブル論理回路3を設け、プログラマブル論理回路3内に、ハードディスクなどの2次記憶装置4のインターフェース回路3bと共にバスマスタ機能を備えたDMAコントローラ3aを実装し、DMAコントローラ3aに用意されたテーブルにカーネル空間のブロック情報を入れることにより、プログラマブル論理回路3で能動的にデータ転送を行うことができるため、CPU2の負荷を軽減することができ、コンピュータシステム全体の性能を向上させることができる。
【0037】
上記構成では、プログラマブル論理回路3に設けたDMAコントローラ3aを用いてDMA転送を制御するものとしたが、CPU2の処理に余裕がある場合にはCPU2に設けたDMAコントローラでデータ転送を制御することもできる。その場合は、図6に示すように、CPU2にもDMAコントローラ2aを設け、CPU2の処理状態に応じて、CPU2のDMAコントローラ2aとプログラマブル論理回路3のDMAコントローラ3aとを使い分けるようにすることもできる。
【0038】
このように、CPU2の処理状態に応じて、CPU2のDMAコントローラ2aとプログラマブル論理回路3のDMAコントローラ3aとを使い分けることにより、CPU2の処理に余裕がある場合はプログラマブル論理回路3に別の回路を構成して別の処理を実行させ、CPU2の処理に余裕がない場合はプログラマブル論理回路3で能動的にデータ転送を行うことができるため、コンピュータシステム1の柔軟性をより高めることができる。
【0039】
なお、上記実施例では、ハードディスクドライブ等の2次記憶装置に記憶された連続したブロックデータを転送する場合について記載したが、本発明は上記実施例に限定されるものではなく、2次記憶装置に散在して記憶された複数のブロックデータを転送する場合についても同様に適用することができる。
【0040】
また、CPU2とプログラマブル論理回路3と主記憶装置5と2次記憶装置4とを各々1つずつ設ける場合について示したが、主記憶装置5として複数の記憶装置を用いたり、プログラマブル論理回路3に複数のインターフェース回路を設けて複数の2次記憶装置を接続したり、バス6に入出力装置やネットワーク装置などの通信装置が接続される構成においても同様に適用することもできる。
【0041】
【発明の効果】
以上説明したように、本発明のコンピュータシステム及びデータ転送方法によれば下記記載の効果を奏する。
【0042】
本発明の第1の効果は、コンピュータシステムの構成を複雑にすることなく、主記憶装置とハードディスクドライブ等の2次記憶装置間のデータ転送を効率的に行うことができるということである。
【0043】
その理由は、コンピュータシステムにプログラマブル論理回路を設け、プログラマブル論理回路内に2次記憶装置のインターフェース回路と共にDMAコントローラとを実装しているため、DMAコントローラを別体として設ける必要がないからである。
【0044】
また、本発明の第2の効果はCPUを占有することなく、主記憶装置とハードディスクドライブ等の2次記憶装置間のデータ転送を効率的に行うことができるということである。
【0045】
その理由は、プログラマブル論理回路内に設けるDMAコントローラにバスマスタ機能を持たせることにより、プログラマブル論理回路で能動的にDMA転送を行うことができるからである。また、DMAコントローラに用意されたテーブルにカーネル空間のブロック情報を書き込むことにより、プログラマブル論理回路はこのテーブルを参照してカーネル空間に分割されたブロック空間に直接ブロックデータを転送することができるからである。
【0046】
また、本発明の第3の効果は、柔軟性の高いコンピュータシステムを実現できるということである。
【0047】
その理由は、CPUの処理状態に応じてプログラマブル論理回路にDMAコントローラを実装する構成では、CPUの処理に余裕がある場合はプログラマブル論理回路に別の回路を実装して別の処理を実行させることができ、CPUの処理に余裕がない場合はプログラマブル論理回路で能動的にデータ転送を行うことができるからである。
【図面の簡単な説明】
【図1】本発明の一実施例に係るコンピュータシステムの基本構成を模式的に示す図である。
【図2】本発明の一実施例に係るデータ転送方法の手順を示すフローチャート図である。
【図3】本発明の一実施例に係るデータ転送の様子を模式的に示す図である。
【図4】本発明の一実施例に係るカーネル空間(主記憶装置)上のブロック空間を示す図である。
【図5】本発明の一実施例に係るDMAコントローラに用意されるテーブルに記録されるブロック情報の構成例を示す図である。
【図6】本発明の一実施例に係るコンピュータシステムの他の構成を模式的に示す図である。
【図7】従来のデータ転送方法を模式的に示す図である。
【図8】OSによりブロックデータを管理する方法を模式的に示す図である。
【図9】従来のDMA転送方法を模式的に示す図である。
【図10】従来のDMA転送方法を模式的に示す図である。
【符号の説明】
1 コンピュータシステム
2 CPU
2a DMAコントローラ
3 プログラマブル論理回路
3a DMAコントローラ
3b インターフェース回路
4 2次記憶装置
5 主記憶装置
6 バス
7 インターフェース回路
Claims (6)
- 演算処理装置と主記憶装置と2次記憶装置とを少なくとも備えるコンピュータシステムにおいて、
前記2次記憶装置は、書き換え可能な論理領域を備えるプログラマブル論理回路を介して前記演算処理装置のバスに接続され、
前記プログラマブル論理回路には、前記2次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるDMAコントローラとが構成されていることを特徴とするコンピュータシステム。 - 前記プログラマブル論理回路の前記DMAコントローラには、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを備え、前記DMAコントローラは、前記情報が記録された前記テーブルを参照することにより、前記2次記憶装置に記憶されたブロックデータを、前記主記憶装置の所定の前記ブロックに転送することを特徴とする請求項1記載のコンピュータシステム。
- 前記2次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記DMAコントローラは、前記テーブルを参照することにより、前記2次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送することを特徴とする請求項2記載のコンピュータシステム。
- 少なくとも、演算処理装置と、主記憶装置と、2次記憶装置と、書き換え可能な論理領域を備えるプログラマブル論理回路とを備え、前記2次記憶装置が前記プログラマブル論理回路を介して前記演算処理装置のバスに接続されてなるコンピュータシステムにおけるデータ転送方法であって、
予め前記主記憶装置又は他の記憶装置に記憶されたLUTデータを用いて、前記プログラマブル論理回路に、前記2次記憶装置を前記バスに接続するためのインターフェース回路と、バスマスタ機能を備えるDMAコントローラとを構成し、前記DMAコントローラを用いて、前記2次記憶装置と前記主記憶装置間のデータ転送を行うことを特徴とするデータ転送方法。 - 前記プログラマブル論理回路の前記DMAコントローラに、前記主記憶装置のブロックの開始アドレスとブロックサイズと最後のブロックであることを示すエンドフラグとを含む情報が書き換え可能に記録されるテーブルを設け、前記テーブルに前記情報を記録することにより、前記DMAコントローラを用いて、前記2次記憶装置に記憶されたブロックデータを前記主記憶装置の所定の前記ブロックに転送することを特徴とする請求項4記載のデータ転送方法。
- 前記2次記憶手段には、連続する複数のブロックデータが記憶され、前記主記憶装置には、前記連続する複数のブロックデータに対応する複数のブロックが分割して形成され、前記テーブルを参照することにより、前記DMAコントローラを用いて、前記2次記憶装置に記憶された前記連続する複数のブロックデータを、前記主記憶装置の分割された前記複数のブロックに順次転送することを特徴とする請求項5記載のデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003177570A JP2005011287A (ja) | 2003-06-23 | 2003-06-23 | コンピュータシステム及びデータ転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003177570A JP2005011287A (ja) | 2003-06-23 | 2003-06-23 | コンピュータシステム及びデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005011287A true JP2005011287A (ja) | 2005-01-13 |
Family
ID=34100094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003177570A Withdrawn JP2005011287A (ja) | 2003-06-23 | 2003-06-23 | コンピュータシステム及びデータ転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005011287A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008026273A1 (fr) * | 2006-08-31 | 2008-03-06 | Fujitsu Limited | Contrôleur dma |
US9323700B2 (en) | 2012-03-27 | 2016-04-26 | Socionext Inc. | Semiconductor integrated circuit and DMA control method of the same |
CN112817898A (zh) * | 2021-02-08 | 2021-05-18 | 清华大学 | 数据传输方法、处理器、芯片及电子设备 |
CN112882966A (zh) * | 2020-03-24 | 2021-06-01 | 威盛电子股份有限公司 | 运算装置 |
-
2003
- 2003-06-23 JP JP2003177570A patent/JP2005011287A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008026273A1 (fr) * | 2006-08-31 | 2008-03-06 | Fujitsu Limited | Contrôleur dma |
JPWO2008026273A1 (ja) * | 2006-08-31 | 2010-01-14 | 富士通株式会社 | Dmaコントローラ |
US9323700B2 (en) | 2012-03-27 | 2016-04-26 | Socionext Inc. | Semiconductor integrated circuit and DMA control method of the same |
CN112882966A (zh) * | 2020-03-24 | 2021-06-01 | 威盛电子股份有限公司 | 运算装置 |
CN112817898A (zh) * | 2021-02-08 | 2021-05-18 | 清华大学 | 数据传输方法、处理器、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6341318B1 (en) | DMA data streaming | |
JP3587095B2 (ja) | 情報処理装置 | |
JP2000311156A (ja) | 再構成可能並列計算機 | |
CN106227683A (zh) | 电子设备及信息处理方法 | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
WO2024074012A1 (zh) | 视频传输控制方法、装置、设备及非易失性可读存储介质 | |
JP2005011287A (ja) | コンピュータシステム及びデータ転送方法 | |
JP2002358288A (ja) | 半導体集積回路及びコンピュータ読取り可能な記録媒体 | |
JP2005293427A (ja) | データ転送処理装置及びデータ転送処理方法 | |
JPH08235092A (ja) | データ転送制御装置 | |
JPH1021106A (ja) | 半導体集積回路 | |
JP2005182538A (ja) | データ転送装置 | |
JP2004030224A (ja) | プロセッサ、レジスタ退避方法およびレジスタ指定方法 | |
JPH1117524A (ja) | プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法 | |
JP2008009702A (ja) | 演算処理システム | |
JP3944639B2 (ja) | プログラマブル論理装置 | |
JP3149477B2 (ja) | 画像データ処理装置 | |
JPH0395916A (ja) | 露光データ転送方法および転送装置 | |
JP4453271B2 (ja) | コンピュータシステム及びメモリの接続方法 | |
JP2021051474A (ja) | 情報処理装置、及び情報処理装置の制御方法 | |
KR100810262B1 (ko) | 분리로직을 이용한 메모리 공유장치 | |
JP2005518607A (ja) | データバスを介したデータ伝送方法 | |
JPS61153770A (ja) | 画像処理装置 | |
JPH06266626A (ja) | 半導体補助記憶装置のバックアップ方法と不揮発化半導体補助記憶装置 | |
WO2001067271A1 (fr) | Dispositif de traitement d'informations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |