JP4779756B2 - コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム - Google Patents

コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム Download PDF

Info

Publication number
JP4779756B2
JP4779756B2 JP2006091627A JP2006091627A JP4779756B2 JP 4779756 B2 JP4779756 B2 JP 4779756B2 JP 2006091627 A JP2006091627 A JP 2006091627A JP 2006091627 A JP2006091627 A JP 2006091627A JP 4779756 B2 JP4779756 B2 JP 4779756B2
Authority
JP
Japan
Prior art keywords
accelerator
circuit
drawing area
server
data
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.)
Expired - Fee Related
Application number
JP2006091627A
Other languages
English (en)
Other versions
JP2007265208A (ja
Inventor
利彦 大塚
孝幸 廣谷
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2006091627A priority Critical patent/JP4779756B2/ja
Priority to EP07740942.3A priority patent/EP1999650B1/en
Priority to PCT/JP2007/057506 priority patent/WO2007114452A1/en
Priority to US11/693,351 priority patent/US8004532B2/en
Publication of JP2007265208A publication Critical patent/JP2007265208A/ja
Application granted granted Critical
Publication of JP4779756B2 publication Critical patent/JP4779756B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Digital Computer Display Output (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置及びサーバ制御プログラムに関する。
近年、サーバベースコンピューティングと呼ばれる技術思想が提案されている。サーバベースコンピューティングとは、端末などのクライアント装置とサーバ装置とがネットワークを介して相互に接続されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行うと、当該サーバ装置はクライアント装置からのサービス要求に基づいて、データの管理及び特定のアプリケーションプログラムを動作させるというものである。
クライアント装置は、使用者のキーやマウスなどの操作情報をネットワークを介してサーバ装置へ送るとともに、サーバ装置から受け取ったデータを表示させる。クライアント装置は、ネットワーク機器、表示装置、マウスやキーボードなどの入力装置を備えているだけでよく、データをクライアント装置内に持たないためシンクライアントと呼ばれる。シンクライアントはハードディスクなどのストレージを不要かつ、アプリケーションプログラムの実行を行わないために必要となる処理の負荷は軽い。
企業はベースサーバベースコンピューティングを導入することにより、データやアプリケーションプログラムなどの資源をサーバ側で一元管理できるため、運用コストを削減することができる。また、クライアント装置は従来のパソコンに比べて安価に調達することができるという利点がある。セキュリティ面においても、サーバ装置内のデータへのアクセス制限をかけたり、アクセスログを取ったりすることにより、情報への不正アクセスのリスクを減らすことができる。ウイルスに対してもサーバ装置で一括対処することが可能となる。
特表平2004−503862号は、シンクライアントを備えたコンピュータシステムにおいて、サーバ側で実行させるアプリケーションソフトの表示データをクライアント装置に送信して表示する構成を開示している。
特表2004−503862号公報
従来のサーバ装置では、クライアント装置に送信する表示データをソフトウェア処理により生成しているのでサーバ装置のCPUに負荷がかかり、特に、サーバ装置が複数のアクセラレータを備えている場合には当該複数のアクセラレータを最適に制御する方法については何ら考慮されていなかった。
本発明はこのような課題に着目してなされたものであり、その目的とするところは、各クライアントに応じて複数のアクセラレータを最適に制御してアクセラレータの使用効率を高めることができるコンピュータシステムにおけるサーバ装置及びサーバ制御プログラムを提供することにある。
上記の目的を達成するために、本発明の請求項1に係る発明は、サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置であって、各々が、前記クライアント装置へ送信した前画面の表示データと、前記クライアント装置へ送信する現画面の表示データとを比較して両者の差異を検出する差異検出回路を備えた複数のアクセラレータと、前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段と、新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段と、を具備する。
請求項に記載の発明によれば、各クライアントに応じて複数のアクセラレータを最適に制御、すなわち、クライアントの描画領域に応じてアクセラレータにかかる負荷を判別して、アクセラレータの割り当てを最適化したので、アクセラレータの使用効率を高めることができる。これによって各クライアントに対する応答速度を高めることができ、ひいてはクライアントの接続台数を増やすことが可能になる。
以下、図面を参照して本発明の実施形態を詳細に説明する。図1は、本発明の実施形態に係るサーバ装置10と複数のクライアント装置20a,20b,…(以下では代表して20で示す)とから構成されるコンピュータシステムの概略構成を示すブロック図である。サーバ装置10と複数のクライアント装置20は、例えばLAN(Local Area Network)やWAN(Wide Area Network)からなるネットワークN上で接続される。
サーバ装置10は、文書作成処理プログラム,表計算処理プログラム,メール処理プログラム,インターネット接続処理プログラム、Web表示プログラムなど、複数のアプリケーションプログラムを格納しており、クライアント装置20からの操作入力信号に応じて対応するアプリケーションプログラムを起動しその処理を実行する。
このサーバ装置10において、起動されたアプリケーションプログラムの実行に伴い生成された表示データ(描画データ)は、各クライアント装置20に対応して適宜割り当てられる回路ボード上のアクセラレータ回路101a,101b,…によって転送用の表示データに変換されると共に、当該表示データの内容やクライアント装置20との通信状態に応じた最適な圧縮方式で圧縮そして暗号化され、アクセス元のクライアント装置20へ送信される。
一方、クライアント装置20は、前記サーバ装置10から送信された表示データを、内部に配置された回路ボード上のアクセラレータ回路201a,201b,…によりデコードし、表示部に表示する。
つまり、このコンピュータシステムにおける各クライアント装置20は、何れもキーボード及びマウスなどのユーザ操作に応じた入力機能とLCD表示部及びプリンタなどの出力機能を有していれば、独自のアプリケーション機能やデータファイルの管理機能を持つ必要がない。
そして、クライアント装置20からの操作入力信号に応じてサーバ装置10にて起動実行される各種の処理に伴い生成されたデータファイルは、当該サーバ装置10内あるいは該サーバ装置10にて接続管理される磁気ディスクなどの記憶装置にユーザアカウント毎あるいは共有ファイルとして記憶され保存される。
ここで、前記サーバ装置10のアクセラレータ回路101における転送用表示データの生成機能について、その概要を説明する。
図2は、本コンピュータシステムのサーバ装置10にて生成された描画データのクライアント装置20への転送表示状態を示す図であり、同図(A)はサーバ装置10における描画データの変化状態を示す図、同図(B)は描画データ変化時の転送用描画データを示す図、同図(C)は転送された描画データのクライアント装置20における表示出力状態を示す図である。
サーバ装置10において、起動中のアプリケーションプログラムに従い既に生成されクライアント装置20へ転送されていた描画データ(変化前)Gが、アプリケーションプログラムの動作に従い描画データ(変化後)G′に変化した場合、まず変化後の描画データG′における描画データの変化部分Pに応じた領域Q′が切り出され、この切り出された領域Q′の描画データは、アクセラレータ回路101により図2(B)に示すような転送用描画データHに変換される。
この転送用描画データHは、アクセラレータ回路101により、前記変化後の描画データG′からその変化部分Pに応じて切り出された領域Q′と変化前の描画データGにおける同領域Qとの画像比較により、そのうちの背景一致領域Rが透過の描画データS(書き換え不要な透過色データ)に変換されて生成される。この転送用描画データHを受信したクライアント装置20では、既に受信して表示していた変化前描画データG上における前記画像変化の領域Q′に対応する座標位置で、前記新たに受信した転送用描画データHを透過の画像データSを除いて書き込むことで、変化後の描画データG′を含めて表示させることができる。
なお、前記サーバ装置10のアクセラレータ回路101により生成された転送用描画データHは、当該描画データの内容(色数)やそのときのクライアント装置20との通信状態(応答速度)に応じて選択される圧縮効率及び画像品質の両面において最適な圧縮方式で圧縮されて転送されるので、描画品質を低下させることなしに、描画データの転送量を更に少なくすることができる。
図3は、本コンピュータシステムのサーバ装置10において変化後の描画データG′の領域Q′に基づきアクセラレータ回路101により生成処理される転送用描画データHを詳細に示す図である。
例えば図2(A)で示したように、サーバ装置10において処理される1画面の描画データG(G′)の領域サイズが1280×800ピクセルである場合に、変化後の描画データG′における画像変化部分Pを含む領域Q′は、図3(A)に示すように、16×16ピクセル=1タイル(T)とするタイル単位を基準に切り出される。
なお、前記変化後描画データG′の画像変化部分Pを含む領域Q′において、水平方向に一列分の各タイルTの領域をまとめて1ブロックと称する。
また、前記領域Q′は、画像変化部分Pを水平および垂直方向にきり出した矩形の領域Q′としているが、水平方向にのみ切り出したその領域サイズ(横)が描画データG(G′)自体の領域サイズである帯状の領域Q′としてもよい。
アクセラレータ回路101では、前記画像変化部分Pを含む領域Q′をタイル単位で変化前描画データGの同位置の領域Qと画像比較し、そのうちの背景一致領域Rの各画像ピクセルを、図3(B)に示すように、透過の画像データS(書き換え不要な色データ)に変換する。そして、1タイル(T)の全領域が透過色データSに変換された透過色タイルSoについては非転送とし、画像変化部分Pを含んだ各タイルだけを変化前描画データGとの差分領域を最適圧縮方式で圧縮処理して当該各タイルの表示画面上の座標位置と共にクライアント装置20へ転送する。その結果、前記画像変化部分Pを含む領域Q′のうち、転送用描画データHの部分がクライアント装置20へ転送されることになる。
クライアント装置20のアクセラレータ回路201では、変化前描画データGに対してタイル単位で圧縮転送されてくる転送用描画データHをデコード後、当該各タイルの座標位置で、単に透過色データSに変換された画像ピクセルを除いて書き込むだけで、サーバ装置10にて生成された変化後の描画データG′を表示できる。
サーバ装置10のアクセラレータ回路101において、生成された転送用描画データHは最適圧縮・暗号化されてクライアント装置20へ転送されるが、例えばGIF(Graphics Interchange Format)/PNG(Portable Network Graphics)の圧縮方式では、圧縮対象となる画像データを構成する各画像ピクセルが同一色で隣接し連続していればいるほどその画質を落とさずに圧縮効率を高められるので、上述したように転送用描画データHの中で透過色データSに変換されている描画データ領域の圧縮率は非常に高くなる。
このためサーバ装置10からクライアント装置20へ転送する描画データの転送データ量を描画品質を低下させずに非常に少なくできるばかりか、その転送用描画データHをハードウェアとしてのアクセラレータ回路101において生成し圧縮できるので、サーバ装置10での処理負担を大幅に軽減でき、クライアント装置20a,20b,…の増設などに容易に対応できるようになる。
図4は、本コンピュータシステムにおけるサーバ装置10の回路構成を示すブロック図である。
サーバ装置10は、コンピュータとしてのCPU102を備え、このCPU102には、バスインターフェース112及び高速バス103を介してROM104、RAM105、表示装置106が接続されると共に、前記複数のアクセラレータ回路101が接続される。この複数のアクセラレータ回路101にはそれぞれ複数のVRAM107が接続される。
また、CPU102には、ノーマルバス108を介してキーボードなどの入力部109、外部記憶HDD(Hard Disk Drive)110、クライアント装置20との送受信制御部111が接続される。
CPU102は、ROM104に予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってRAM105を作業用メモリとして回路各部の動作を制御するもので、入力部109からのキー入力信号や送受信制御部111を介して受信されるクライアント装置20からのユーザ操作に応じた処理指令信号などに応じて前記種々のプログラムが起動・実行される。
このサーバ装置10において、クライアント装置20からのユーザ指令信号に応じて起動・実行されるアプリケーションプログラムに従い生成された種々のデータは、例えばそのユーザIDに対応付けられて外部記憶HDD110に記憶され、また表示用の描画データは、アクセラレータ回路101においてVRAM107を使用して転送用描画データH(図2,図3参照)に変換され、最適圧縮・暗号化された後、送受信制御部111からクライアント装置20へ転送されて表示出力される。
図5は、本コンピュータシステムのサーバ装置10におけるアクセラレータ回路101の回路構成を示すブロック図である。
このアクセラレータ回路101では、CPU102からの初期設定により初期設定レジスタ101bがセットされる。ここでは、接続される各クライアントCnごとに、その表示構造(1画面の高さH×幅W)、色数のセットに加えて、現表示データが格納されるVRAM107上のメモリ領域107aの指定、前表示データが格納されるVRAM107上のメモリ領域107cの指定、スケーリング後の表示データが格納されるVRAM107上のメモリ領域107bの指定、アクセラレータ処理データが格納されるVRAM107上のメモリ領域107dの指定、バイト数、暗号化の有無(ON/OFF)のセットが行われる。
クライアント装置20に送信される表示データは以下のようにして生成される。まず、表示データが高速バスインターフェース101aを介してアクセラレータ回路101に入力される。この表示データはアクセス調停回路101g、DRAMアクセス回路101hを介してVRAM107上のメモリ領域107aに現表示データとして格納される。次に、CPU102から処理開始の指令が入力されると倍率変更回路としてのスケーリング回路101cは、メモリ領域107aに格納されている現表示データを読み出してスケーリング処理(ここでは縮小処理)を実行する。スケーリング処理された表示データはメモリ領域107bに格納される。また、領域分割回路としてのタイル分割判定回路101dはCPU102からの指令があると、タイル分割を行う単位としてのタイル数をレジスタに設定する。
次に、比較・圧縮回路101eは、メモリ領域107aに格納されている現表示データ(スケーリング処理がなされている場合にはメモリ領域107bに格納されているスケーリング後の表示データ)と、メモリ領域107cに格納されている前表示データとを読み出してそれぞれの表示データに対してタイル分割判定回路101dから送られたタイル数に従って分割処理を行い、各タイル毎に両表示データを比較して差異を検出する。そしてこの比較により検出された差異の表示データに対して圧縮処理を施した後、アクセラレータ処理データとしてメモリ領域107dに格納する。そして、暗号化が設定されている場合には、暗号化回路101fにおいて暗号化処理が施された後、メモリ領域107eに格納される。同時に、アクセラレータ回路101での一連の処理が終了したことを高速バスインターフェース101aを介してCPU102に通知する。CPU102はこの通知を受けると、メモリ領域107dに格納されているアクセラレータ処理データあるいはメモリ領域107eに格納されている暗号化データを読み出し、クライアント装置20へ転送する。
なお、上記した表示データの倍率変更、領域分割、前画面と現画面表示データ間の差異の有無の検出は、送信データのデータ量を少なくして転送効率を高めるための処理である。また、倍率変更は、実施形態では縮小の場合を例に説明するが、拡大であってもよい。
図6は、図5に示すスケーリング回路101cの回路構成を示すブロック図である。スケーリング処理を行うか否かは各クライアント装置20毎に指定され、スケーリングを行う場合にはスケーリングONがスケーリングON/OFFレジスタ201に書き込まれ、スケーリングを行わない場合にはスケーリングOFFがスケーリングON/OFFレジスタ201に書き込まれている。また、スケーリングを実行するときのスケーリング率はスケーリング率設定レジスタ202に設定されている。スケーリングOFFが指定されている場合にはスケーリングを行わずただちに比較・圧縮回路101eに処理が渡される。スケーリングONの場合、読み出しライン数選択回路203は、スケーリング率設定レジスタ202に設定されているスケーリング率に応じてVRAM107内のメモリ領域107aから読み出すべき表示データのライン数を選択する。例えば、スケーリング率が1/2ならば2ライン、スケーリング率が1/4ならば4ライン、スケーリング率が1/8ならば8ラインといった具合である。以下では仮にスケーリング率が1/4の場合について説明する。なお、表示データが横1280*縦800ピクセルからなる場合、1ラインは1280*1ピクセルからなる横一列のピクセル群である。
表示データ読み出し回路204は、読み出しライン数選択回路203で選択されたライン数(ここでは4ライン)の表示データをメモリ領域107aから読み出して、1280ピクセル×8ラインの容量を有するバッファ205に格納する。次に、スケーリング演算回路206は4×4ピクセルの表示データをスケーリング単位としてスケーリング処理を行って1ピクセルの画像データを取得してラインバッファ208に格納する。
横ピクセル数終了判断回路209は横ピクセル数が1280ピクセルに達したか判別し、1280ピクセルに達していなければ+横ピクセル数回路207でスケーリング単位のピクセル(ここでは4ピクセル)を加算して、次の4×4ピクセルの表示データをスケーリング単位としてスケーリング演算回路206でスケーリング処理を行う。横ピクセル数終了判断回路209で横ピクセル数が1280ピクセルに達したことが判別された場合は、スケーリング後表示データ書込み回路210により、スケーリング後表示データがスケーリング後表示データ107bとしてVRAM107へ書き込まれる。
更に、ライン数終了判断回路211は、縦ライン数が800ラインに達したか判別し、達していなければ+縦ライン回路212で読出しの所定ライン数(ここでは4ライン)を加算して、表示データ読み出し回路204は、次のライン(ここでは次の4ライン分)の表示データをメモリ領域107aから読み出して、1280ピクセル×8ラインの容量を有するバッファ205に格納する。前記ライン数終了判断回路211で、縦ライン数が800ラインに達したことが判別された場合は、比較圧縮回路101eへ通知し、これにより、比較圧縮回路101eの動作が開始される。 図7は、図5に示すタイル分割判定回路101dの回路構成を示すブロック図である。分割方法選択レジスタ301にはCPU102によりタイルの分割方法が固定であるか可変であるかがセットされている。また、分割数指定レジスタ302にはCPU102により、1タイルの大きさを示すタイル分割数がセットされている。分割方法が固定である場合には、分割数指定レジスタ302で指定された分割数(例えば16×16)がタイル数設定レジスタ305に設定される。
一方、タイル分割方法が可変の場合には、タイル分割・比較回路303は、CPU102によりセットされる描画領域情報レジスタ306から描画領域(H×W)を読み出し、このデータ量が基準となる比較値307と比較して100kバイトよりも大きいか小さいか、あるいは1Mバイト以上なのかを判定する。タイル数選択回路304はこのときの判定結果に応じて複数の選択値308から適切なタイル数を選択する。例えば、データ量が100kバイトよりも小さいときは16×16を選択し、100kバイトよりも大きいときは32×32を選択し、1Mバイト以上ならば64×64を選択する。このようにデータ量が大きくなるほど大きな分割数が選択される。ここで選択されたタイル数はタイル数設定レジスタ305に設定される。
図8は、図5に示す比較・圧縮回路101eの回路構成を示すブロック図である。図9は図8に示す比較回路の詳細な構成を示す図である。図8において、レジスタ351−1には前表示の描画領域の開始アドレスが格納され、レジスタ352−1には前表示の描画領域H×Wのサイズデータが格納されている。また、前表示データ・縦ライン数バッファ353−1には前表示データの縦ライン数に関するデータが格納されている。
また、レジスタ351−2には現表示の描画領域の開始アドレスが格納され、レジスタ352−2には現表示の描画領域H×Wのサイズデータが格納されている。また、現表示データ・縦ライン数バッファ353−2には現表示データの縦ライン数に関するデータが格納されている。
比較回路355は、前表示の描画領域の開始アドレス、描画領域の大きさ(H×W)、縦ラインバッファ数に基づいてメモリ領域107cから前表示データを読み出すとともに、現表示の描画領域の開始アドレス、描画領域の大きさ(H×W)、縦ラインバッファ数に基づいてメモリ領域107aから現表示データを読み出し、1タイル分のデータ毎に比較する処理を行う。
すなわち、図9(A)の比較回路355において、ピクセル読み出し回路401は、前表示データ・縦ライン数バッファ353−1からの前表示データの縦ライン数、現表示データ・縦ライン数バッファ353−2からの現表示データの縦ライン数、タイル数設定レジスタ305からのタイル数に基づいて、メモリ領域107cから1タイル分(ここでは16×16)の前表示データを読み出すとともに、メモリ領域107aから1タイル分(ここでは16×16ピクセル)の現表示データを読み出す。縦×横タイル数並列処理回路402では、1ピクセル引き算回路402−1を用いて前表示データの画素値と現表示データの画素値の引き算を1タイルを構成する16×16ピクセルについて同時に行う。図9(A)では、縦×横タイル数並列処理回路402は1ピクセル引き算回路402−1を一つ図示し、他の構成を省略したが、1ピクセル引き算回路402−1は引き算するピクセル数分備えている。引き算結果が0でないならば当該ピクセルを現表示データとし、引き算結果が0ならば当該ピクセルにフラグを立てる。比較結果は縦×横ライン数・ピクセル・バッファ356に格納される。16×16ピクセル全部について一致したときには全ピクセル一致検出レジスタ404にフラグがセットされる。
1タイル分の表示データについての比較が終了したならば、横ピクセル数・終了判断回路405は、描画領域(H×W)情報レジスタ306からの情報に基づいて処理の終了した横ピクセル数(ここではMAX1280)に達したか否かを判断し、NOならば、横方向+タイル数カウント回路403で1タイルの横方向のピクセル数(ここでは16)を加算してピクセル読み出し回路401に通知する。ピクセル読み出し回路401はこれにより、メモリ領域107cから次の1タイル分の前表示データを読み出すとともに、メモリ領域107aから次の1タイル分の現表示データを読み出す。縦×横タイル数並列処理回路402では、上記と同様にして比較処理を行い。その結果を縦×横ライン数・ピクセル・バッファ356に格納する。縦×横ライン数・ピクセル・バッファ356に格納された比較結果のデータは圧縮回路357で圧縮処理し、この圧縮処理が終了したならば、書き換え範囲終了判断回路358は描画領域情報レジスタ306の描画領域情報に基づいて表示データの書き換え範囲が終了したか否かを判断し、まだ800ラインに達していないならば+縦ライン数回路350で縦方向のラインをインクリメントして縦方向が800ラインになるまで上記の処理を行い、800ラインになったときに処理を終了する。 そして、横ピクセル数・終了判断回路405で横ピクセル数がMAX=1280ピクセルに達したと判断されたときに、縦(タイル値)×横バッファ分の処理が終了となる。
図9(B)は縦×横ライン数・ピクセル・バッファ356の構造の一例を示している。縦×横ライン数・ピクセル・バッファ356には、比較回路355による比較により、前表示データと現表示データが同じピクセルには「Flag」が記憶され、前表示データと現表示データが異なるピクセルには現表示データが「現色」として記憶される。
図10(A)、(B)は図8に示す圧縮回路357の詳細な構成を示すブロック図である。図10(A)において、縦×横タイル数・読み出し回路450は、タイル数設定レジスタ305に設定されたタイル数に基づいて縦×横ライン数・ピクセル・バッファ306に格納された比較結果データから1タイル分(ここでは16×16ピクセル)のデータを読み出す。 図11は色数カウント回路451の詳細な構成を示すブロック図である。図11において、1ピクセル読み出し回路501は、全ピクセル一致検出レジスタ404の内容が不一致である場合に、読み出された1タイル分のデータから最初の1ピクセルのデータを読み出す。一致回路502は、色数カウント=0か否かを判断する。初期設定では0に設定されているのでYESとなり、色レジスタ書込み回路511は、読み出された1ピクセルの色を色レジスタ512のNo.0の位置に書き込む。同時に、+1回路510を介して初期値0がインクリメントされて色数カウントレジスタ453に1が書き込まれる。
このとき、タイル数・終了判断回路509は、1タイル分の読み出しが終了したか否かを判断する。最初の1ピクセルを読み出しただけなので判断はNOとなり、+1回路503を介して1インクリメントされる。これにより1ピクセル読み出し回路501は縦×横タイル数・読み出し回路450から2番目の1ピクセルデータを読み出すことになる。色数カウントレジスタ453のカウント値は1になっているので、今度は一致回路502の判断がNOとなる。この場合1ピクセル一致回路504は、今回読み出した1ピクセルの色と、色レジスタ読み出し回路505により読み出された色レジスタ512のNo.0位置の色とが一致するか否かを判断する。ここでNOならば+1回路508を介して色レジスタカウンタ507の初期値0がインクリメントされて1がセットされる。次に、色数・終了判断回路506は色レジスタ512の色数が終了か否かを判断する。色レジスタ512のNo.0位置の色がすでに読み出されたのでここでの判断はYESとなる。この場合、色レジスタ書込み回路511は今回読み出した1ピクセルの色を色レジスタ512のNo.1の位置に書き込む。このとき、+1回路510を介して現在のカウント値1がインクリメントされるので色数カウントレジスタ453のカウント値は2になる。
このとき、タイル数・終了判断回路509は、1タイル分の読み出しが終了したか否かを判断する。2番目の1ピクセルを読み出したのみなので判断はNOとなり、+1回路503を介してインクリメントされる。これによって1ピクセル読み出し回路501は縦×横タイル数・読み出し回路450から3番目の1ピクセルのデータを読み出すことになる。
このとき色数カウント=2になっているので、一致回路502の判断がNOとなる。この場合1ピクセル一致回路504は、今回読み出された1ピクセルの色と、色レジスタ読み出し回路505により読み出された色レジスタ512のNo.0位置の色とが一致するか否かを判断する。ここでNOならば+1回路508を介して色レジスタカウンタ507のカウント値がインクリメントされて2がセットされる。次に、色数・終了判断回路506は色レジスタ512の色数が終了か否かを判断する。色レジスタ512のNo.1位置にも色が格納されているのでここでの判断はNOとなる。この場合、色レジスタ読み出し回路505は色レジスタ512からNo.1位置の色を読み出して1ピクセル一致回路504に入力する。
1ピクセル一致回路504は、3番目に読み出した1ピクセルの色と、色レジスタ読み出し回路505により読み出された色レジスタ512のNo.1位置の色とが一致するか否かを判断する。ここでNOならば+1回路508を介して色レジスタカウンタ507のカウント値2がインクリメントされて3がセットされる。次に、色数・終了判断回路506は色レジスタ512の色数が終了か否かを判断する。色レジスタ512のNo.0及びNo.1の位置に格納された色はすべて読み出されたのでここでの判断はYesとなる。この場合、色レジスタ書込み回路511は3番目の1ピクセルの色を色レジスタ512のNo.2の位置に書き込む。同時に、+1回路510を介して現在のカウント値2がインクリメントされて色数カウントレジスタ453のカウント値は3になる。
このとき、タイル数・終了判断回路509は、1タイル分の読み出しが終了したか否かを判断する。3番目の1ピクセルを読み出したのみなので判断はNOとなり、+1回路503を介して1加算されることにより、1ピクセル読み出し回路501は縦×横タイル数・読み出し回路450から4番目の1ピクセルのデータを読み出すことになる。
この間に1ピクセル一致回路504での判断がYesになった場合には色数カウントレジスタ453及び色レジスタ512の内容は変更されることなくタイル数・終了判断回路509に処理が移行する。
このようにして、第16番目のピクセルが1ピクセル読み出し回路501によって読み出されて上記の処理が終了すると、タイル数・終了判断回路509での判断がYesとなって1タイルのデータについての処理が終了する。この時点で色レジスタ512には異なる種類の色が格納される。また、色数カウントレジスタ453には色数の最終的なカウント値が格納されるので1タイルの中に何種類の色が存在するかがわかる。
図12は、図11に示す透過色検出回路454の詳細な構成を示すブロック図である。図11において、色レジスタ書込み回路511によって新たな色が色レジスタ512に順次格納されることを説明した。色レジスタ書込み回路511は新たに格納しようとする色を同時に透過色検出回路454にも入力する。1ピクセル色下位12ビット抽出回路550は当該1ピクセルの色の下位12ビットを抽出する。
一方、透過色候補・レジスタ560には透過色の候補となる例えば4096の色が順次記憶されており、さらに各色に対応して透過色フラグをセットするための領域が予め用意されている。圧縮回路357の起動時は透過色フラグは書き込まれていないものとする(初期値0)。透過色候補・レジスタ560の中から最上位(000h)の色が選択されて透明色候補レジスタ553にセットされる。
1ピクセル一致回路551は1ピクセル色下位12ビット抽出回路550で抽出された下位12ビットの1ピクセル色と、透過色候補レジスタ554にセットされた色とが一致するか否かを判断する。ここでNOの場合には+1回路557を介して透過色候補カウンタ558のカウント値(初期値000h)をインクリメントする。これにより透過色候補レジスタ554には次の透過色(001h)がセットされる。
次に終了判断回路556で透過色候補・レジスタ560に設定された4096以上になったか否かを判断する。ここでは最初の000hの色を読み出しただけなので判断がNOとなり、次に透過色フラグ判断回路555でフラグが立てられている透過色があるか否かを判断する。ここではそのような色はまだ存在しないのでNOとなる。次に、1ピクセル一致回路551はすでに抽出した1ピクセル色と、透過色候補レジスタ554にセットされた透過色(001h)とが一致するか否かを判断する。ここでNOならば、透過色候補カウンタ558を1インクリメントして透過色候補レジスタ554に次の透過色(002h)がセットされる。そして、ピクセル一致回路551はすでに抽出した1ピクセル色と、透過色候補レジスタ554にセットされた透過色(002h)とが一致するか否かを判断する。ここでYESならば、透過色フラグ書込み回路559はこのときの透過色(002h)に透過色フラグをセットする。同時に、透明色検出回路・終了判断回路561で色レジスタ書込み回路511により書き込まれるすべてのピクセルについて透明色の判断が終了したか否かを判断する。ここでは最初のピクセルについてしか判断していないのでNOとなり、色レジスタ書込み回路511により書き込まれる次の色の下位12ビットが抽出される。
一方、透過色候補レジスタ554にはまだフラグがセットされていない最上位の色(000h)がセットされる。1ピクセル一致回路551は当該次の1ピクセル色と、透過色候補レジスタ554にセットされた候補色とが一致するか否かを判断する。以後、上記した手順で処理が行われるが、この時点ですでにフラグが立てられた透明色(0002h)が存在する。これが透過色フラグ判断回路555で検出されることになる。この場合には+1回路557を介して透過色候補カウンタ558のカウント値がインクリメントされる。これにより、フラグが立てられた候補色(0002h)を飛ばした次の候補色が透明色候補レジスタ554にセットされて当該次の1ピクセル色と一致するか否かが判断される。
このようにして、1ピクセル一致回路551では色レジスタ書込み回路511により書き込まれるすべての色と、透過色候補・レジスタ560内の候補色とを上位から順に比較して一致するか否かを判断し、一致した候補色に対してはフラグが立てられる。
透過色選択回路552はフラグが立てられていない(使用されていない)上位の候補色を選択して、透過色レジスタ553にセットする。この時点で透過色検出回路・終了判断回路561の判断がYESとなり処理が終了する。
図10に戻って、透過色候補・レジスタ560の内容は透過色変換回路454に入力される。透過色変換回路454は、透過色候補・レジスタ560の内容を参照して、縦×横タイル数・読み出し回路450により読み出された1タイル分の色データのうち使用されていない色を透過色に置き換える変換処理を行い、その結果は縦×横バッファ455に格納される。図10(B)は当該バッファ455に格納された表示データの一例を示す図である。縦×横バッファ455には、透過色変換回路454により変換された透過色が「透過」として記憶され、その他の現表示データが「現色」として記憶される。
縦×横バッファ455の表示データは圧縮方法選択回路456に入力される。また、圧縮方法選択回路456は、色数カウントレジスタ453の色数値を受け取る。また、後述するようにCPU102によりRAW指定がされている場合にはレジスタ460にそれがセットされるのでそのデータも圧縮方法選択回路456に入力される。
圧縮方法選択回路456は、図13に示すような圧縮方法決定のためのテーブルを有しており、当該選択回路456はこのようなテーブルを参照して色数カウントレジスタ453の色数値に応じたエンコード方式を選択する。例えば色数が1または2色であるならばRRE(Rise and Run Length Encoding)エンコード方式が選択され、3色以上で128色未満ならばPNG方式が選択され、128色以上ならばJPEGエンコード方式が選択される。また、クライアント装置20側が復号機能を備えていない場合などRAW指定がされている場合にはエンコード処理は行われない。
このように、色数値に応じてエンコード方式を選択することで圧縮の効率を高めることができる。ここで判断基準として用いられる128色は固定ではなく、データ量を減らすために1タイルのサイズに応じて変更することができる。例えば、タイルサイズが32×32ならば256以上、64×64ならば512以上が用いられる。
なお、JPEG(Joint Photographic Experts Group)エンコーダ方式は非可逆な圧縮方式なので透明色変換回路454での変換処理により得られる表示データ(図10(B))ではなく、縦×横タイル数・読み出し回路450により読み出された表示データがエンコーダ入力となる。また、クライアント装置20により圧縮方法が指定されている場合には指定された圧縮方法を用いるようにしてもよい。
次に、ヘッダ付加回路457は、図14に示すような結果データ・ヘッダーフォーマットのテーブルを参照して選択されたエンコード方式に応じて、通し番号、位置情報、高さと幅、エンコード情報、透過色、データ長、転送フラグ(転送する/しない)等の情報を含むヘッダを付加してVRAM107上のメモリ領域107dにアクセラレータ処理データとして格納する。
このとき、横ピクセル数・終了判断回路459は、横方向の最大ピクセル数(ここでは1280)に達したか否かを判断し、NOの場合には、横方向+タイル数カウンタ回路458を介して横方向を1タイル分(16ピクセル)インクリメントする。これにより縦×横タイル数・読み出し回路450は次の1タイル分のデータを読み出す。以下、上記した手順によって処理を行う。そして横ピクセル数・終了判断回路459において、横方向の最大ピクセル数(ここでは1280)に達したと判断されたときに縦(タイル値)×横バッファ分の処理が終了となる。
この処理の後は、前述したように、図8に戻って、圧縮回路357での上記した圧縮処理が終了したならば、書き換え範囲終了判断回路358は描画領域情報レジスタ306の描画領域情報に基づいて表示データの書き換え範囲が終了したか否かを判断し、まだ800ラインに達していないならば+縦ライン数回路350で縦方向のラインをインクリメントして縦方向が800ラインになるまで上記の処理を行い、800ラインになったときに処理を終了する。
図15は、VRAM107上のフレームバッファ領域テーブルの構成を示す図である。このテーブルには、接続される各クライアント装置20(そのIDを例えば000、001、002とする)ごとに、要求された描画領域の大きさ(高さ(H)×幅(W))と、色数と、ボード番号と、VRAM107上の描画開始アドレスとが格納されている。各クライアント装置20ごとに算出された描画領域に対応するメモリ領域が確保される。図15はボード番号acc0に対応するアクセラレータ回路101のVRAM107上に前記描画領域に対応するメモリ領域600が確保されたようすを示している。
ここで、新たなクライアント装置20(クライアントID003)からの表示要求があった場合、描画領域算出手段としてのCPU102は、各アクセラレータ(ここでは各ボード番号acc0、acc1、acc2)ごとに描画領域の大きさを算出する。そして、割り当て手段としてのCPU102は、図16に示すように、算出した描画領域のうち最小の描画領域をもつボード番号(ここではacc0)のアクセラレータ回路101を選択して割り当てる。そして、当該アクセラレータ101のVRAM107上に、クライアントID003の描画領域に対応するメモリ領域601を確保する。
図17は、フレームバッファ領域テーブルの変形例を示している。このテーブルには、接続される各クライアント装置20(そのIDを例えば000、001、002とする)ごとに、要求された描画領域の大きさ(高さ(H)×幅(W))と、色数と、ボード番号と、RAM105上の描画開始アドレスと、各アクセラレータ回路の使用状態を示すステータス情報とが格納されている。RAM105上には、各クライアント装置20ごとに算出された描画領域に対応するメモリ領域650、651、652が確保される。
ここで、新たなクライアント装置20(クライアントID003)からの表示要求があった場合、描画領域算出手段としてのCPU102は、各アクセラレータ(ここでは各ボード番号acc0、acc1、acc2)の使用状態を検出する。そして、割り当て手段としてのCPU102は、図18に示すように、各ボード番号acc0、acc1、acc2のうち最も使用頻度が低いボード番号(ここではステータス0をもつacc2)のアクセラレータ101を選択して割り当てる。そして、当該RAM105上に、クライアントID003の描画領域に対応するメモリ領域653を確保する。
なお、テーブル内の各ボード番号のアクセラレータの使用状態(ステータス)が同一の場合には、描画領域や色数の大小を比較して最も小さいボード番号のアクセラレータを選択するようにしてもよい。
図19はサーバ装置10のCPU102によりソフトウェアを用いて実行されるサーバプロセス処理フローの手順を説明するための図である。まず、サーバ装置20はイニシャル設定(ステップS1)を行うとともに、接続するクライアント装置20毎のクライアント変数Cnを設定する(ステップS1−1)。次に、クライアント装置20からの認証要求があるか否かを判断し(ステップS2)、ここでの判断がNOならばステップS9に移行し、YESならば認証処理(ステップS3)を行う。続いて初期設定のためのデータを準備する(ステップS4)。具体的には表示領域H/W、色数、スケール、圧縮指定の有無、暗号化の有無などに関する初期設定用データを生成する。
次に認証がOKか否かを判断し、NOならばステップS2に戻り、YESならば当該クライアント装置20に対して所定のIDが発行される(ステップS6)。次に、各クライアント装置20のボード割当(アクセラレータ割当)処理を行う(ステップS6−1)。この処理の詳細については後述する。次に、アクセラレータ回路101内部の初期設定レジスタ101bにステップS4で生成した各種データを設定する(ステップS7)。具体的には、接続される各クライアントCnごとに、その表示構造(1画面の高さH×幅W)、色数のセット、現表示データが格納されるVRAM107上のメモリ領域107aの指定、前表示データが格納されるVRAM107上のメモリ領域107cの指定、スケーリング後の表示データが格納されるVRAM107上のメモリ領域107bの指定、アクセラレータ処理データが格納されるVRAM107上のメモリ領域107dの指定、バイト数、暗号化の有無(ON/OFF)のセットが行われる。
次に、スレッドを起動して転送サーバ処理を行う(ステップS8)。ここでの処理の詳細については後述する。スレッドとはクライアント装置とデータの授受を行うプログラムである各クライアントごとに起動される。
次に、ステップS9に進んで起動しているスレッドを終了するか否かを判断し、NOならばステップS2に戻り、次のクライアント装置20からの認証要求があるまで待つ。また、ステップ9の判断がYESになったならばステップS6で発行した当該クライアント装置のIDを削除し(ステップS10)、次に、本サーバプロセス処理を終了するか否かを確認し(ステップS11)、NOならばステップS2に戻って次のクライアント装置20からの認証要求があるまで待つ。また、ステップS11の判断がYESならば本サーバプロセス処理を終了する。
図20は図19のクライアントのボード割当処理(ステップS6−1)の詳細を示すフローチャートである。まず、サーバ装置10内のCPU102はボード(アクセラレータ回路101)の数を算出する(ステップS150)。次に、CPU102は初期設定されているクライアント変数Cnからクライアント装置20の合計数nを算出する(ステップS151)。次にカウンタ変数iに0を代入する(ステップS152)。次に、各クライアント装置20の描画領域の大きさSを計算する(ステップS153)。ここでは、S=H(高さ)×W(幅)×色数の値を計算する。なお、H(高さ)×W(幅)のみあるいは色数のみの値を描画領域の大きさSとして用いてもよい。
次に、各ボード(アクセラレータ回路101)ごとに描画領域の大きさの和Sum[m]を求める(ステップS154)。1つのアクセラレータ回路101に1つのクライアント装置20が割り当てられている場合には当該クライアント装置20の描画領域が求める和Sum[m]となるが、1つのアクセラレータ回路101に複数のクライアント装置20が割り当てられている場合には、各クライアント装置20の描画領域の和Sum[m]が求める描画領域の大きさになる。ステップS153とS154の処理をクライアント合計数nに達するまで行い(ステップS155、S156)、クライアント合計数nに達したときに、各ボード(アクセラレータ回路101)ごとに集計した和Sum[m]のうち、最も小さい値のボード(アクセラレータ回路101)に新たなクライアントIDを追加する(ステップS157)。次に、クライアント変数Cnを新たに作成するとともに、図16に示すように、フレームバッファ領域テーブルに新たなクライアントに関する情報を追加して(ステップS158)、処理を終了する。
図21は図19の転送サーバ処理の手順を説明するためのフローである。まず、サーバ装置10内のCPU102は1画面のデータを書き込むための表示領域(H×W)をRAM105上に確保する(ステップS80)。次に、サーバ装置10で起動しているアプリケーションプログラムからの描画命令により上記表示領域にデータの書込みがあったか否かを判断し(ステップS81)、YESならば、新たなクライアント装置20に対するボード(アクセラレータ回路101)を選択するボード選択処理を行う(ステップS81−1)。このボード選択処理については後述する。
次に、書き込みがあった描画領域の大きさ(H×W)と座標位置x、yを検出する(ステップS82)。次に、RAM105上の上記表示領域に書かれた表示データをVRAM107上のメモリ領域107aにコピーする。これが図5に示す現表示データとなる。
次に、可変タイルサイズか否かを判断する(ステップS84)。YESならば、タイル分割判定回路101d内の分割方法選択レジスタ301(図7)を可変に設定し(ステップS85)、NOならば当該分割方法選択レジスタ301(図7)を固定に設定する(ステップS84−1)。次に、固定設定では分割数指定レジスタ302を例えば16×16にセットする(ステップS86)。次に、クライアント装置20からのスケール設定要求があるか否かを判断し(ステップS87)、NOならば後述するステップS90に移行するが、YESの場合にはクライアント装置20からのスケール率をスケール率設定レジスタ202(図6)に設定する(ステップS88)。次に、スケーリングON/OFFレジスタ201(図6)にスケーリングONフラグを設定する(ステップS89)。
上記の処理が済んだ後に、アクセラレータ回路101での処理が開始される(ステップS90)。すなわち、CPU102(図4)からスケーリング回路101c(図5)及びタイル分割判定回路101d(図5)に処理開始の指令が送られる。次にCPU102はアクセラレータ回路101での処理が終了するまで待機し(ステップS91)、処理が終了したときには転送フラグが「転送しない」に設定されているか否かを判断する(ステップS91−1)。ここでYESならばステップS94に移行する。また、NOならばクライアント変数Cnのステータスを0にし(ステップS91−2)、その後にステップS92に移行する。
ステップS92ではVRAM107上のメモリ領域107dに記憶されているアクセラレータ処理データを読み出してクライアント装置20で表示される描画データを含む通信パケットを生成する。暗号化回路101fで暗号化処理を行った場合にはメモリ領域107eに記憶されている暗号化データを読み出して通信パケットを生成する。
次に、クライアント装置20への通信パケットの送信を開始する(ステップS93)。そしてすべての通信パケットが送信されるのを確認し(ステップS94)、これが確認されたときには当該クライアント装置20から接続終了の通知があったか否かを判断し(ステップS95)、NOの場合にはステップ81に戻って以降の処理を続ける。ステップS95の判断がYESの場合には接続終了処理(ステップS96)を行って当該クライアント装置20との通信を終了する。
図22は図21のボード選択処理(ステップS81−1)の詳細を示すフローチャートである。まず、カウンタ変数iに0を代入する(ステップS301)。次に、図18のフレームバッファ領域テーブルを参照して、接続クライアントIDごとにステータス情報が1になっているか否かを判断する(ステップS302)。ここでYESの場合には、各ボード(アクセラレータ回路101)ごとに描画領域の大きさの和SS[m]を求める(ステップS303)、1つのアクセラレータ回路101に1つのクライアント装置20が割り当てられている場合には当該クライアント装置20の描画領域が求める和SS[m]となるが、1つのアクセラレータ回路101に複数のクライアント装置20が割り当てられている場合には、各クライアント装置20の描画領域の和SS[m]が求める描画領域の大きさになる。ステップS302とS303の処理をクライアント合計数nに達するまで行い(ステップS304、S305)、クライアント合計数nに達したときに、各ボード(アクセラレータ回路101)ごとに集計した和SS[m]のうち、最も小さい値のボード番号(アクセラレータ回路101)acc[m]を選択する(ステップS306)。次に、選択したボードにクライアントIDを追加して、ステータスを1にする(ステップS307)。
図23は、本コンピュータシステムにおけるクライアント装置20の回路構成を示すブロック図である。クライアント装置20は、コンピュータとしてのCPU601を備え、このCPU601には、バス611を介してROM602、RAM603が接続されると共に、アクセラレータ回路604が接続される。このアクセラレータ回路604にはVRAM605が搭載され、このVRAM605に書き込まれた描画データが表示装置606に出力されて表示される。
また、CPU601には、バス611を介してキーボードなどの入力部608と外部記憶HDD(Hard Disk Drive)607と、認証デバイス,バーコードリーダー,CCDカメラ,プリンタ,無線デバイスなどの各種の外部機器を接続するためのUSB/パラレル/シリアルインターフェース609と、前記サーバ装置10との間でのデータの送受信を制御する送受信制御部(有線/無線)610とが接続される。
CPU601は、ROM602に予め記憶されているシステムプログラムに従ってRAM603を作業用メモリとし回路各部の動作を制御するもので、入力部608からのキー入力信号や送受信制御部610を介して受信されるサーバ装置10からのアプリケーション応答信号,転送描画データなどに応じて前記システムプログラムが起動・実行される。
このクライアント装置20において、前記サーバ装置10におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶部(HDD)607に読み込ませて記憶させ、また生成転送された表示用の描画データは、アクセラレータ回路604においてデコードされてVRAM605に書き込まれ表示装置606で表示出力される。
図24は図23に示すアクセラレータ回路604の詳細な構成を示す図である。暗号復号回路701はサーバ装置10から送られてきた1タイル分の圧縮・暗号化データファイルを復号する。復号されたデータファイルはヘッダデータ702−1と描画データ702−2としてセットされる。圧縮デコード回路704はヘッダデータ702−1に書き込まれている圧縮方式に対応する伸長方式により描画データをデコードする。デコードされた描画データは、領域座標レジスタ703にセットされた描画データのH×WのサイズとXY座標に基づいてVRAM706上のメモリ領域707に描画される。
図25は、クライアント装置20における処理手順を示すフローチャートである。まず、初期設定(イニシャル設定)を行う(ステップS101)。ここで表示構造としてH×W(高さ×幅)のサイズと色数とが設定される。次に、サーバ装置10との接続を行うか否かを判断し(ステップS102)、NOの場合にはYESになるまで待機する。YESになったならばサーバ装置10に対して接続要求を送信する(ステップS103)。サーバ装置10はこれに対してクライアント装置20からの接続が正当であるか否かの判断を行うが、クライアント装置20はサーバ装置10から認証OKの通知があるまで待機し(ステップS104)、認証OKの通知を受け取ったならば、ステップS101で設定した初期情報をサーバ装置10に対して送信する(ステップS105)。次に、サーバ装置10との間で通信を行うが、その間、サーバ装置10との間の通信制御を行う(ステップS106)。当該通信が終了したならば接続を終了するか否かを確認し(ステップS107)、YESならば接続終了処理(ステップS108)を行って処理を終了する。
図26は、図25におけるサーバとの通信制御の詳細を示すフローチャートである。まず、キーボードあるいはマウスなどが操作することにより何らかのイベントが発生するまで待機する(ステップS201)。イベントが発生したならば、当該イベントがネットワークを介したサーバ装置10からのデータ受信か否かを判断し(ステップS202)、NOならば当該イベントがキーボードの操作か否かを判断する(ステップS203)。ここでNOならば当該イベントがマウスあるいはタッチパネルの操作か否かを判断し(ステップS204)、NOならばシリアル接続を介してデータ入力があったか否かを判断し(ステップS205)、NOならばステップS201に戻る。
一方、ステップS202においてYESならば、サーバ装置10から受信したデータが暗号化データか否かを判断し(ステップS206)、NOならばただちにステップS209に移行し、YESならば当該暗号化データを復号すべく内部の暗号復号回路701へ転送する(ステップS207)。次に、この暗号復号回路701から復号データを抽出し(ステップS208)、プロトコルヘッダの解析を行う(ステップS209)。次に、当該ヘッダから抽出した描画領域(H×W)、座標x、yをレジスタにセットする(ステップS210)。次に、ヘッダ及び描画データをアクセラレータ回路604にセットする(ステップS211)。これによりアクセラレータ回路604で所定の処理が行われた後、表示装置606に表示される。
また、ステップS203での判断がYESならば、操作されたキーボードに対応するキーコードを受信する(ステップS212)。次に、このキーコードに基づいて送信データを生成する(ステップS213)。次に、送信データを暗号化するか否かを判断し(ステップS214)、NOならばただちにステップS217に移行する。ステップS214の判断がYESならば、アクセラレータ回路604内の暗号化回路に転送して暗号化を行う(ステップS215)。次に、暗号化回路から暗号化した送信データを抽出して(ステップS216)、パケット通信処理を行い(ステップS217)、転送命令に従って送信データをサーバ装置10へ転送する(ステップS218)。その後、ステップS201に戻る。
また、ステップS204の判断がYESならば、マウス操作あるいはタッチパネル操作の内容に応じたデータをセットする制御を行う(ステップS219)。その後はキーボード操作の場合と同様にステップS213以降の処理を行う。
また、ステップS205の判断がYESならば、入力されたデータを受信する(ステップS220)。その後はキーボード操作の場合と同様にステップS213以降の処理を行う。
上記した実施形態によれば、クライアントの描画領域に応じてアクセラレータにかかる負荷を判別して、アクセラレータの割り当てを最適化したので、アクセラレータの使用効率を高めることができる。これによって各クライアントに対する応答速度を高めることができ、ひいてはクライアントの接続台数を増やすことが可能になる。
また、アクセラレータの使用状況に応じて、要求があったクライアントに対して最適なアクセラレータを割り当ててアクセラレータの負荷を均一にしたので、アクセラレータの使用効率を高めることができる。これによって各クライアントに対する応答速度を高めることができ、ひいてはクライアントの接続台数を増やすことが可能になる。
本発明の実施形態に係るサーバ装置10と複数のクライアント装置20a,20b,…とから構成されるコンピュータシステムの概略構成を示すブロック図である。 本コンピュータシステムのサーバ装置10にて生成された描画データのクライアント装置20への転送表示状態を示す図である。 本コンピュータシステムのサーバ装置10において変化後の描画データG′の領域Q′に基づきアクセラレータ回路101により生成処理される転送用描画データHを詳細に示す図である。 本コンピュータシステムにおけるサーバ装置10の回路構成を示すブロック図である。 本コンピュータシステムのサーバ装置10におけるアクセラレータ回路101の回路構成を示すブロック図である。 スケーリング回路101cの回路構成を示すブロック図である。 タイル分割判定回路101dの回路構成を示すブロック図である。 比較・圧縮回路の回路構成を示すブロック図である。 (A)は図8に示す比較回路の詳細な構成を示す図であり、(B)は縦×横ライン数・ピクセル・バッファ356の構造の一例を示す図である。 図8に示す圧縮回路の詳細な構成を示すブロック図である。 色数カウント回路451の詳細な構成を示すブロック図である。 透過色検出回路454の詳細な構成を示すブロック図である。 圧縮方法決定のためのテーブルを示す図である。 結果データ・ヘッダーフォーマットのテーブルの一例を示す図である。 フレームバッファ領域テーブルの内容の一例を示す図である。 図15のテーブルに、新たなクライアント装置に対するボード番号を割り当てた状態を示す図である。 フレームバッファ領域テーブルの内容の他の例を示す図である。 図17のテーブルに、新たなクライアント装置に対するボード番号を割り当てた状態を示す図である。 サーバ装置10のCPU102によりソフトウェアを用いて実行されるサーバプロセス処理フローの手順を説明するための図である。 図19のボード割当処理フローの詳細を示すフローチャートである。 図19の転送サーバ処理の詳細を示すフローチャートである。 図21のボード選択処理の詳細を示すフローチャートである。 本コンピュータシステムにおけるクライアント装置20の回路構成を示すブロック図である。 図23に示すアクセラレータ回路604の詳細な構成を示す図である。 クライアント装置20における処理手順を示すフローチャートである。 サーバとの通信制御の詳細を示すフローチャートである。
符号の説明
10…サーバ装置
101…アクセラレータ回路
101f…暗号化回路
101g…アクセス調停回路
101h…DRAMアクセス回路
107…VRAM
102…CPU
103…高速バス
104…ROM
105…RAM
106…表示装置
107…VRAM
108…ノーマルバス
109…入力部
110…外部記憶HDD
111…送受信制御部
20…クライアント装置
601…CPU
602…ROM
603…RAM
604…アクセラレータ回路
605…VRAM
606…表示装置
607…外部記憶部
608…入力部
609…USB/パラレル/シリアルインターフェース
610…送受信制御部

Claims (12)

  1. サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置であって、
    各々が、前記クライアント装置へ送信した前画面の表示データと、前記クライアント装置へ送信する現画面の表示データとを比較して両者の差異を検出する差異検出回路を備えた複数のアクセラレータと、
    前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段と、
    新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段と、
    を具備することを特徴とするサーバ装置。
  2. 前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項1記載のサーバ装置。
  3. 前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項2記載のサーバ装置。
  4. サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置であって、
    複数のアクセラレータと、
    前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段と、
    新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段と、
    を具備することを特徴とするサーバ装置。
  5. 前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項4記載のサーバ装置。
  6. 前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項5記載のサーバ装置。
  7. サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおいて、
    各々が、前記クライアント装置へ送信した前画面の表示データと、前記クライアント装置へ送信する現画面の表示データとを比較して両者の差異を検出する差異検出回路を備えた複数のアクセラレータを具備し、
    前記サーバ装置のコンピュータを、
    前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段
    新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段
    として機能させるようにしたコンピュータ読み込み可能なサーバ制御プログラム。
  8. 前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項7記載のサーバ制御プログラム。
  9. 前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項8記載のサーバ制御プログラム。
  10. サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおいて、
    複数のアクセラレータを具備し、
    前記サーバ装置のコンピュータを、
    前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段、
    新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段、
    して機能させるようにしたサーバ制御プログラム。
  11. 前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項10記載のサーバ制御プログラム。
  12. 前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項11記載のサーバ制御プログラム。
JP2006091627A 2006-03-29 2006-03-29 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム Expired - Fee Related JP4779756B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006091627A JP4779756B2 (ja) 2006-03-29 2006-03-29 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
EP07740942.3A EP1999650B1 (en) 2006-03-29 2007-03-28 Server apparatus and server control method in computer system
PCT/JP2007/057506 WO2007114452A1 (en) 2006-03-29 2007-03-28 Server apparatus and server control method in computer system
US11/693,351 US8004532B2 (en) 2006-03-29 2007-03-29 Server apparatus and server control method in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006091627A JP4779756B2 (ja) 2006-03-29 2006-03-29 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム

Publications (2)

Publication Number Publication Date
JP2007265208A JP2007265208A (ja) 2007-10-11
JP4779756B2 true JP4779756B2 (ja) 2011-09-28

Family

ID=38191149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006091627A Expired - Fee Related JP4779756B2 (ja) 2006-03-29 2006-03-29 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム

Country Status (4)

Country Link
US (1) US8004532B2 (ja)
EP (1) EP1999650B1 (ja)
JP (1) JP4779756B2 (ja)
WO (1) WO2007114452A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918450B2 (en) * 2006-02-14 2014-12-23 Casio Computer Co., Ltd Server apparatuses, server control programs, and client apparatuses for a computer system in which created drawing data is transmitted to the client apparatuses
JP4848801B2 (ja) * 2006-03-09 2011-12-28 カシオ計算機株式会社 画面表示制御装置および画面表示制御処理プログラム
EP1999719B1 (en) * 2006-03-29 2018-11-21 Casio Computer Co., Ltd. Server apparatus of computer system
JP5131891B2 (ja) * 2006-06-23 2013-01-30 カシオ計算機株式会社 サーバ装置、サーバ制御プログラム、サーバ・クライアント・システム
JP4957126B2 (ja) * 2006-08-31 2012-06-20 カシオ計算機株式会社 クライアント装置およびプログラム
JP4998021B2 (ja) * 2007-03-08 2012-08-15 カシオ計算機株式会社 サーバ装置、クライアント装置及びプログラム
WO2009004996A1 (ja) * 2007-06-29 2009-01-08 Nec Corporation 画面伝送システム、画面送信サーバ、画面伝送方法およびプログラム記録媒体
JP4810548B2 (ja) 2008-02-07 2011-11-09 株式会社東芝 サーバ装置、更新画像検出方法およびプログラム
JP5029443B2 (ja) * 2008-03-17 2012-09-19 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法及びコンピュータプログラム
JP4725587B2 (ja) * 2008-03-18 2011-07-13 カシオ計算機株式会社 サーバ装置及びサーバ制御プログラム
JP4697321B2 (ja) * 2009-03-24 2011-06-08 カシオ計算機株式会社 コンピュータシステム、クライアント装置及びプログラム
CN102405461A (zh) * 2009-04-21 2012-04-04 迪吉多电子股份有限公司 服务器装置、服务器-客户端系统、服务器程序及记录有该服务器程序的记录介质
CN102460564B (zh) 2009-06-30 2015-02-11 诺基亚公司 用于提供移动设备互操作性的方法及装置
US8478965B2 (en) 2009-10-30 2013-07-02 International Business Machines Corporation Cascaded accelerator functions
JP5895671B2 (ja) * 2012-03-30 2016-03-30 富士通株式会社 情報処理装置、画像送信方法及び画像送信プログラム
JP5606599B1 (ja) * 2013-07-29 2014-10-15 デジタルア−ツ株式会社 情報処理装置、プログラム及び情報処理方法
US10032027B2 (en) * 2014-07-29 2018-07-24 Digital Arts Inc. Information processing apparatus and program for executing an electronic data in an execution environment
CN105824706B (zh) * 2015-12-31 2020-11-06 华为技术有限公司 一种配置加速器的方法和装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823108A (en) * 1984-05-02 1989-04-18 Quarterdeck Office Systems Display system and memory architecture and method for displaying images in windows on a video display
JP3226719B2 (ja) * 1994-06-21 2001-11-05 キヤノン株式会社 情報伝送方法およびその装置
JPH0969163A (ja) * 1995-08-31 1997-03-11 Fujitsu Ltd コンピュータグラフィックスモデルのポリゴン重なり抽出方法と、ポリゴンのグループ化方法及び装置
US6006231A (en) * 1996-09-10 1999-12-21 Warp 10 Technologies Inc. File format for an image including multiple versions of an image, and related system and method
US6167441A (en) * 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
JP3280306B2 (ja) * 1998-04-28 2002-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像情報送信方法、画像情報更新方法、送信装置及び更新装置
US6191800B1 (en) * 1998-08-11 2001-02-20 International Business Machines Corporation Dynamic balancing of graphics workloads using a tiling strategy
WO2001001372A1 (en) * 1999-06-30 2001-01-04 Blackboard, Inc. Internet-based education support system and methods
US6988138B1 (en) * 1999-06-30 2006-01-17 Blackboard Inc. Internet-based education support system and methods
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US20040027375A1 (en) 2000-06-12 2004-02-12 Ricus Ellis System for controlling a display of the user interface of a software application
US7027072B1 (en) * 2000-10-13 2006-04-11 Silicon Graphics, Inc. Method and system for spatially compositing digital video images with a tile pattern library
US7358974B2 (en) * 2001-01-29 2008-04-15 Silicon Graphics, Inc. Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
US7171444B2 (en) * 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
JP3612054B2 (ja) 2001-11-21 2005-01-19 エヌ・ティ・ティ・コムウェア株式会社 シンクライアントサーバ、呼接続方法、そのプログラム及びそのプログラムが記録された記録媒体
US6683614B2 (en) * 2001-12-21 2004-01-27 Hewlett-Packard Development Company, L.P. System and method for automatically configuring graphics pipelines by tracking a region of interest in a computer graphical display system
US6970929B2 (en) * 2002-06-12 2005-11-29 Inha University Foundation Vector-based, clustering web geographic information system and control method thereof
JP2004171063A (ja) 2002-11-15 2004-06-17 Ntt Docomo Inc シンクライアントシステム、シンクライアントシステム制御方法
US6885376B2 (en) * 2002-12-30 2005-04-26 Silicon Graphics, Inc. System, method, and computer program product for near-real time load balancing across multiple rendering pipelines
US8499086B2 (en) * 2003-01-21 2013-07-30 Dell Products L.P. Client load distribution
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
JP2005284694A (ja) * 2004-03-30 2005-10-13 Fujitsu Ltd 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法
JP4190455B2 (ja) * 2004-05-11 2008-12-03 富士通株式会社 負荷分散装置及びプログラム
US7649537B2 (en) * 2005-05-27 2010-01-19 Ati Technologies, Inc. Dynamic load balancing in multiple video processing unit (VPU) systems

Also Published As

Publication number Publication date
JP2007265208A (ja) 2007-10-11
US8004532B2 (en) 2011-08-23
EP1999650A1 (en) 2008-12-10
EP1999650B1 (en) 2017-12-06
US20070245021A1 (en) 2007-10-18
WO2007114452A1 (en) 2007-10-11

Similar Documents

Publication Publication Date Title
JP4779756B2 (ja) コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
EP1999719B1 (en) Server apparatus of computer system
US8918450B2 (en) Server apparatuses, server control programs, and client apparatuses for a computer system in which created drawing data is transmitted to the client apparatuses
JP5046527B2 (ja) コンピュータシステムのサーバ装置及びサーバ制御プログラム
US20060103653A1 (en) System And Method Of Caching Glyphs For Display By A Remote Terminal
JP2007265207A (ja) コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
JP2007265209A (ja) コンピュータシステムのサーバ装置
WO2011077550A1 (ja) 画面中継装置
CN115208701A (zh) 数据包选择加密方法及装置
EP2299682A2 (en) Document processing device, server device, and document processing system
CN102253735B (zh) 信息处理装置和显示装置及其控制方法以及显示系统
CN114697555B (zh) 一种图像处理方法、装置、设备及存储介质
JP2003316714A (ja) 情報処理装置及び方法
CN114612292A (zh) 图像处理方法、装置、电子设备及存储介质
CN110492935B (zh) 数据处理系统、方法、装置及终端设备
JP2010146055A (ja) 画像処理装置、方法及びプログラム
JP5663364B2 (ja) 画像形成装置およびその制御方法
JP5701964B2 (ja) 画面中継装置
JP6112414B2 (ja) 手書き入力端末及び手書きデータ保存制御プログラム並びに手書きデータ保存制御方法
US20130300755A1 (en) Electronic apparatus and method for data transmission from an electronic apparatus to a display device
KR20160118546A (ko) 전자문서의 보안 방법
JP2024099736A (ja) プログラム、及びコード出力方法
JP2016111626A (ja) 中継装置、中継プログラム及び中継方法
JP2013197926A (ja) 読取制御装置、読取システム及びプログラム
JP2023105686A (ja) 画像形成装置、画像形成システム、及び画像形成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110607

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4779756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees