JP3735377B2 - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- JP3735377B2 JP3735377B2 JP51447998A JP51447998A JP3735377B2 JP 3735377 B2 JP3735377 B2 JP 3735377B2 JP 51447998 A JP51447998 A JP 51447998A JP 51447998 A JP51447998 A JP 51447998A JP 3735377 B2 JP3735377 B2 JP 3735377B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- area
- processor
- processors
- 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
Links
- 238000012546 transfer Methods 0.000 claims description 100
- 230000004044 response Effects 0.000 claims description 3
- 238000011835 investigation Methods 0.000 claims 1
- 230000000717 retained effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 30
- 238000012545 processing Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 23
- 239000000872 buffer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、主記憶上のデータのコピー処理をプロセッサの動作とは独立に実行可能な計算機システムに関する。
背景技術
近年、異なるハードウエア間でソフトウエア・インタフェースを統一したシステム、所謂オープン・システムでは、その多くがRISCプロセッサを1台乃至複数台バスで接続してシステムを構成している。
このようなオープンシステムにおいて、従来、広く採用されているある種のオペレーティング・システム(OS)では、ユーザインタフェースを単純にするために、例えば512Byte(以下B)あるいは4096B単位のページをひとつのファイルとして扱う。そのために、OSが用意しているIOバッファ領域とユーザ領域との間のデータ転送が増大している。更に、ディスク、メモリ容量の飛躍的増加のため、ミドルアプリケーションの規模が大きくなり、例えば、データベース処理では、数KBから数MBという大量のデータの主記憶上でのデータ転送が必要になってきた。以下では、この主記憶上での大量の連続データ転送を主記憶上でのデータコピーと呼ぶことにする。
このような主記憶上でのデータコピーを行なう場合は、そのデータの再利用効率が低く、キャッシュの効果はほとんど得られない。
第1図に、このようなオープン・システムの基本的な構成を示す。
第1図において、プロセッサ1〜2、各プロセッサ内のキャッシュ3〜4、プロセッサバス5、記憶制御部6、主記憶バンク・バス7〜10、主記憶バンク11〜14により計算機システムが構成されている。
プロセッサ1〜2をRISCアーキテクチャのプロセッサとした場合には、レジスタ間演算が基本であり、主記憶へのデータ・アクセスは全てレジスタと主記憶間のデータ転送として実行される。
プロセッサバス5には、プロセッサ1〜2が接続されている。プロセッサ1、2は各々キャッシュ3、4を備えている。これにより、主記憶へのアクセス回数を減らし、プロセッサバス5の稼動率を低く抑えている。このキャッシュは、プロセッサに内蔵、プロセッサに外付け、あるいは両方を階層的に接続することで実現される。更に、スヌープ機構と呼ばれるプロセッサ間のデータの高速順序保証機構により、複数プロセッサの効率向上をはかっている。
主記憶、特に複数のプロセッサを備えるシステムにおける主記憶に関しては、一般に、主記憶からのデータ供給能力(主記憶バンク・バス7〜10の合計のバンド幅)は、プロセッサからのデータ要求能力(プロセッサバス5のバンド幅)の1〜2倍の能力を持つように設計するのが通常である。そのために、主記憶を複数のバンクに分け、アドレスをインタリーブすることにより、このデータ供給能力を確保している。
第1図のようなシステムにおいて、主記憶上でのデータコピーは、次のような手順で実現される。
(1)まず、プロセッサ1によるロード命令により、主記憶バンク11〜14からプロセッサバス5およびキャッシュ3を介して、データをプロセッサ1上のレジスタ(図示せず)に取り込む。
(2)次に、そのプロセッサによるストア命令により、レジスタ上のデータを主記憶バンク11〜14のうちの指定されたアドレスに格納する。
(3)以上を必要なデータ量に対して繰返し行なう。
従って、データはほとんど加工されることなくプロセッサバス5を往復することになる。なお、一般にこのような主記憶内でのデータ転送の特徴は、
(1)連続データであること、
(2)4KBから数MBの大量のデータであること、
(3)データ転送中においてはデータが加工されないこと
等である。
(4)更に、データベースのような大規模データを扱うアプリケーションでは、4KBのページ単位にアラインされたデータ群を異なる4KBのページ単位にアラインされた領域にコピーすることが重要である。
上記した従来技術では、主記憶上でのデータコピーはプロセッサによるロード命令およびストア命令を繰返し実行することにより実現されている。そのために、
(1)プロセッサにとって、この主記憶上でのデータコピーは、かなりの演算時間を占める。
また、システムとして見た場合には性能のボトルネックがプロセッサバスとなる。そのために、
(2)主記憶上でのデータコピーが、基本的に連続であり、主記憶バンク・バスをすべて動作させることができる可能性があるにもかかわらず、主記憶バンク・バスに遊びが生じてしまう。
(3)また、プロセッサバスに複数のプロセッサが接続している場合、1台のプロセッサの主記憶上でのデータコピーのために、プロセッサバスの稼働率が高くなり、他のプロセッサの主記憶アクセスを遅らせる要因となる。
従って、本発明の目的は、プロセッサの動作とは非同期・独立に主記憶上のデータコピーを効率よく実行可能な計算機システムを提供することにある。そして、プロセッサバスに複数のプロセッサが接続している場合でも、他のプロセッサの主記憶アクセスを遅らせることなく、任意のプロセッサにおいて主記憶上のデータコピーを実行可能とする。
発明の開示
上記目的を達成するために、本発明では、少なくとも1台のプロセッサと、主記憶装置と、プロセッサからの主記憶装置に対するアクセスを制御する記憶制御部とを有する計算機システムにおいて、記憶制御部は、プロセッサから指示される所望のデータが格納されている主記憶装置の第1の領域のアドレス情報と、所望のデータを転送すべき主記憶装置の第2の領域のアドレス情報と、所望のデータのデータ長の情報とを保持する転送制御手段と、転送制御手段の制御により、第1の領域に格納されているデータを読み出して第2の領域に格納する転送手段とを有し、記憶制御部が、プロセッサからの指示に応じて、プロセッサとは独立に第1の領域から第2の領域へのデータ転送を実行する。そして、転送制御手段は、データ転送が終了したかを判定し、終了したと判定した場合にプロセッサに終了報告を行う。
本発明によれば、主記憶上のデータコピーをプロセッサの処理と非同期・独立に実行することができるので、プロセッサの負荷を減らすことができる。また、プロセッサバスに複数のプロセッサが接続されているような場合には、データコピーにプロセッサバスを用いなくて済むため、プロセッサバスの負荷を大幅に低減することができる。
【図面の簡単な説明】
第1図は、計算機システムの基本的な構成を示す図である。
第2図は、本発明の第1の実施例におけるプロセッサの構成を示す図である。
第3図は、スヌープ処理のためのキャッシュアドレス生成部の構成を示す図である。
第4図は、本発明の第1の実施例における記憶制御部の構成を示す図である。
第5図は、第1の実施例における制御部の構成を示す図である。
第6図は、本発明の第2の実施例における記憶制御部の構成を示す図である。
第7図は、第2の実施例における制御部の構成を示す図である。
発明を実施するための最良の形態
以下、本発明の好適な一実施例を図面を用いて説明する。
本実施例では、計算機システムは第1図に示した構成をとるものとする。尚、説明を簡単にするために、プロセッサは複数台あり、各プロセッサはストアインタイプ(ライトバックタイプ)のキャッシュを備え、それぞれスヌープ機構を有しているものとする。ここで、スヌープ処理を実現するためのキャッシュ内のデータの状態として、「変更」(データの内容が変更されている。主記憶とは一致していない)、「占有」(キャッシュ上にデータがあるが変更されていない)、「無効」(当該アドレスの情報はキャッシュ上にない)の3状態があるものとする。
アドレス空間は4KBをページの単位とする。データの単位は8バイトとする。主記憶はインタリーブされた構成でバンク数は4とする。また、各主記憶バンクのデータ幅は8バイトとする。もちろん、このスヌープ機構、主記憶のインタリーブ構成、バンク構成等については様々な変形があり得るが、いずれの構成についても本発明を適用することができる。
本発明の第1の実施例を第2図から第5図を用いて詳細に説明する。
説明の手順として、第2図および第3図を用いてプロセッサおよびプロセッサバスにおける第1の実施例を説明し、それに対応して、第4図および第5図を用いて記憶制御部における第1の実施例を説明する。
第2図は、第1図のプロセッサの構成を示す。各プロセッサ1〜2は同様の構成とされる。
第2図中、プロセッサ1は、命令キュー20、命令デコーダ21、アドレス変換部22、レジスタ群23、演算器群24、本実施例の新規機構であるスヌープ処理のためのアドレス生成部25、同じく本実施例の新規機構であるコピー制御レジスタ群MCR26から構成される。
第2図を用いて動作の説明を行なう。
通常のプロセッサでは、まず、キャッシュ3上の指定された領域から命令を取り出し、線L10を介して命令キュー20に取り込む。命令キュー20からは、順次、命令が命令デコーダ21に送られて解読される。もし、必要な命令がキャッシュ3に無いときは、線L16、プロセッサバス5を介して主記憶から命令を取得する処理が実行される。
通常、ロード系命令では、格納先のレジスタと読み出し元の主記憶上のアドレスが指定される。キャッシュ3に所望のデータがあるときは、線L14を介してデータがレジスタ群23中の指定されたレジスタに格納される。もし、キャッシュ3に所望のデータが無いときは、線L16及びプロセッサバス5を介して、プロセッサの外部にデータを探しにいく。このとき、主記憶にデータ読み出し要求を出すとともに、スヌープ機構により、他のプロセッサのキャッシュをチェックする。
この処理を、第2図のプロセッサを他のプロセッサとして説明する。
プロセッサバス5を介して、所望のデータの格納先のアドレスが送られてくると、線L17を介してキャッシュ3を調査する。もし、キャッシュ3に、当該アドレスのデータが保持されている場合は、このデータを線L16、プロセッサバス5を介して、主記憶バンク11〜14に書き戻す。このとき、キャッシュ3の当該データの状態を「無効」とする。(このデータを直接データを所望するプロセッサに送り込むことも考えられるが、本実施例では、論理的に主記憶に戻す方式とする。)
一方、ロード系命令を実行したプロセッサでは、このデータを主記憶からプロセッサバス5、線L16、線L14を介してキャッシュ3及びレジスタ群23中の指定したレジスタに取り込む。このとき、キャッシュ3の当該データの状態を「占有」とする。
ストア系命令についても、同様に、読み出し元のレジスタと格納先の主記憶上のアドレスが指定され、このレジスタ上のデータが線L14を介してキャッシュ3に格納される。このとき、キャッシュ3の当該データの状態を「変更」とする。これと同時にスヌープ処理により他のプロセッサのキャッシュをチェックする。
この処理を第2図のプロセッサを他のプロセッサとして説明する。
プロセッサバス5を介して上記主記憶上のアドレスが送られてくると、線L17を介して、キャッシュ3を調査する。もし、キャッシュ3に当該アドレスのデータが保持されている場合は、このキャッシュの当該データの状態を「無効」とする。
演算命令の場合は、レジスタ群23中の1つまたは複数のレジスタが指定され、演算器群24中の演算器を用いて演算が行なわれる。このときの演算結果データは、レジスタ群23中の指定したレジスタに格納される。
次に、主記憶上のデータコピーについて説明する。主記憶上のデータコピーは以下のように実行される。この処理においてコピー制御レジスタMCR26が使用される
本実施例では、コピー制御レジスタMCR26は複数個指定することが可能である。また、1個のコピー制御レジスタMCR26は、次の4つのパートから成る。
第1パートは、主記憶上の転送元の先頭アドレスを保持する(第2図の26−1)。
第2パートは、主記憶上の転送先の先頭アドレスを保持する(第2図の26−2)。
第3パートは、転送データ長を保持する(第2図の26−3)。ここで、転送データ長は、ページサイズである4KB以下の長さを持つ。
第4パートは、終了結果を保持する(第2図の26−4)。
主記憶上のデータコピーは、次の4段階の手順を実行する。
(1)命令で指定された主記憶上の転送元の先頭アドレス(論理アドレス)を、アドレス変換部22で物理アドレスに変換し、コピー制御レジスタMCR26の第1パート(26−1)にセットする。
(2)命令で指定された主記憶上の転送先の先頭アドレス(論理アドレス)を、アドレス変換部22で物理アドレスに変換し、コピー制御レジスタMCR26の第2パート(26−2)にセットする。
(3)転送データ長をコピー制御レジスタMCR26の第3パート(26−3)にセットする。
(4)(1)〜(3)の情報を線L20〜線L22、プロセッサバス5を介して、記憶制御部6に送り出し、記憶制御部6に起動をかける。
MCR26−1とMCR26−2の内容は物理アドレスのため、それぞれページ境界をまたがることはできない。従って、指定できる転送データ長は、転送元アドレスと転送先アドレスがともにページ境界に設定されている場合は、最大4KBに設定できるが、少なくとも一方がページ境界に一致していないときは、2つの物理アドレスのうち、それぞれの次の4KB境界との距離の小さい方が設定し得る最大の転送データ長となる。(後述する第2の実施例では、転送元アドレスと転送先アドレスがともに、ページ境界に設定されている場合に制限する。)
コピー制御レジスタMCR26は複数セット用意されているため、(1)〜(3)までの処理を繰り返して実行することにより、大量のデータコピーを効率良く実行することができる。
一方、主記憶上のデータコピーの終了報告は、次の2つの方法がある。
(1)記憶制御部6からプロセッサバス5及び線L23を介して、コピー制御レジスタMCR26の第4パート(26−4)に終了フラグをセットする。プロセッサはこのMCR26の第4パート(26−4)に終了フラグがセットされているか否かをポーリングする。
(2)記憶制御部6から外部割込みを発生させる。プロセッサは、この割込み処理を受け付けることにより、終了報告を受け付けることができる。
主記憶上のデータコピーにおいても、スヌープ処理を用いて他のプロセッサ上のキャッシュをチェックする。このときの上記ロード系処理やストア系処理との違いは、データコピーでは、転送データ長が任意に設定されることである。従って、先頭アドレスと転送データ長の情報から決まる複数のアドレスについて、キャッシュをチェックをする必要がある。
この処理を第2図のプロセッサをデータコピーを実行する以外の他のプロセッサとして説明する。このとき、プロセッサバス5を介して転送元の先頭アドレス、転送先の先頭アドレスおよび転送データ長の情報が送られ、線L24〜線L26を介してスヌープ処理のためのアドレス生成部25内のレジスタ27−1〜27−3に保持される。そして、アドレス生成部25においてキャッシュ3の調査すべきアドレス情報を生成し、必要に応じてキャッシュ3から線L16を介して主記憶バンク11〜14へのデータの書き戻し、キャッシュ3の当該アドレスの無効化処理を行なう。全ての処理が終了すると、線L18、線L19及びプロセッサバス5を介して、記憶制御部6に対してスヌープ処理の終了報告を行う。
第3図は、スヌープ処理のためのアドレス生成部25の構成を示す。
第3図において、アドレス生成部25は、主記憶上でのデータコピーを行なうための転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長の情報を保持するレジスタ群27、セレクタ30〜33、レジスタ34〜36、+8(バイト)加算器37〜38、−8(バイト)加算器39、AND回路40、0チェック回路41から構成される。
プロセッサバス5からの転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長の情報が、線L24〜線L26を介してレジスタ27−1〜27−3に保持される。このとき、セレクタ31〜33をレジスタ27−1〜27−3の情報を入力として選択するようにセットし、27−1〜27−3の情報をそれぞれレジスタ34、35及び36に取り込む。レジスタ34、35の情報は、線L30及び線L31、セレクタ30及び線L27を介して、キャッシュに送られる。セレクタ30は順次切り替り、レジスタ34、35の情報を出力するる。
線L27に、レジスタ34に保持される転送元の先頭アドレスが送られるときは、ロード系処理と同様に扱われる。従って、線L27を介してキャッシュ3を調査し、もし、キャッシュ3に当該アドレスのデータが保持されている場合は、このデータを線L16、プロセッサバス5を介して、主記憶バンク11〜14に書き戻し、当該データの状態を「無効」とする。
一方、線L27に、レジスタ35に保持される転送先の先頭アドレスが送られるときは、ストア系処理と同様に扱われる。従って、線L27を介して、キャッシュ3を調査し、もし、キャッシュ3に当該アドレスのデータが保持されている場合は、このキャッシュ3の当該データの状態を「無効」とする。
レジスタ34およびレジスタ35の内容は、キャッシュのチェックが終わるたびに、データの単位である8バイトずつ更新され、レジスタ36の値が0になるまで続けられる。本実施例では、8バイト毎のチェックとしたが、いくつかのアドレスをまとめて送り、キャッシュのチェックをすることもできる。(ここでは、簡単のためにキャッシュブロックは考慮しない。もちろん、考慮することも可能である。)
レジスタ36の値を0チェック回路40で判定し、その値が0となり、且つ、キャッシュのチェックが終了したことが線L18を介してキャッシュ3から報告されると、線L19、プロセッサバス5を介して、記憶制御部6に対してスヌープ処理の終了報告を行う。
ここで、注意すべきことは、主記憶上でコピー対象とする領域は、他のプロセッサにはさわらせないようにソフトウエアとして配慮する必要があることである。このときのスヌープ処理は、あくまで順序制御動作の保証のためである。従って、高速化のために、この順序保証をすべてソフトウエアで保証し、ハードウエアでのスヌープ処理を行なわないことも考えられる。1つの案として、アーキテクチャ上で可能であれば、コピー処理の対象領域をキャッシュレス(キャッシィングしない)領域として指定し、スヌープ処理による順序保証を不要とすることも考えられる。
次に、第4図を用いて記憶制御部6について説明する。
第4図において、記憶制御部6は、制御部50、主記憶上でのコピー処理を行なうための転送元の先頭アドレス、転送先の先頭アドレスおよび転送データ長の情報を保持するレジスタ51、セレクタ52〜55、バッファ56〜60から構成され、プロセッサバス5と主記憶バンク・バス7〜10に接続されている。
まず、通常のロード系処理について説明する。
制御部50により生成された読み出し指示とそのアドレスが線L43〜線L46を介して主記憶バンク・バス7〜10に送られる。読み出し指示に応じて主記憶バンクから読み出されたデータは、主記憶バンク・バス7〜10から線L49〜線L52を介してバッファ60に格納される。更に、プロセッサバス5の状態に応じて線L53を介してロード系命令を実行したプロセッサに送り出される。
また、ストア系処理については、プロセッサバス5及び線L47を介してプロセッサから送られてきたデータが、制御部50の制御によりセレクタ52〜55で選択され、主記憶バンク・バス7〜10に接続しているバッファ56〜59に格納される。更に、制御部50よりストア位置のアドレスが線L43〜線L46を介して指示され、バッファ56〜59からストアデータが所定の主記憶バンク・バス7〜10に送り出される。
次に、主記憶上のデータコピーについて説明する。
制御部50は、まず、主記憶上のデータコピーのための必要な情報である転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長をプロセッサバス5及び線L40を介してレジスタ51に取り込む。次に、他のプロセッサからのスヌープ処理の終了報告を線L41を介して受け取る。この報告によりデータコピーを開始することができる。
以下、データコピーの手順について説明する。
(1)制御部50により生成した主記憶バンク上の読み出し元アドレスが線L43〜線L46及び主記憶バンク・バス7〜10を介して主記憶バンクに送られる。主記憶バンクから主記憶バンク・バス7〜10を介して制御部50で指定した数のデータが線L49〜線L52に読み出される。
(2)制御部50は、読み出し元の主記憶バンクと書き込み先の主記憶バンクとの対応関係を計算し、その結果により線L48を介してセレクタ52〜55を切り替え、線L49〜線L52上のデータをバッファ56〜59に取り込む。
(3)制御部50により生成した主記憶バンク上の書き込み先アドレスが線L43〜線L46及び主記憶バンク・バス7〜10を介して主記憶バンクに送られ、各バッファ56〜59から主記憶バンク・バス7〜10を介して制御部50で指定した数のデータが主記憶バンクに書き込まれる。
(4)(1)から(3)の処理をレジスタ51−3に保持された転送データ長に示されたデータ量だけ繰返し行なう。
(5)線L42及びプロセッサバス5を介してプロセッサに終了報告を行う。即ち、コピー制御レジスタMCR26−4にデータコピーの終了フラグを書き込む。
第5図は、制御部50の構成を示す図である。
第5図において、制御部50は、主記憶上でのコピー処理を行なうための転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長の情報を保持するレジスタ51、0チェック回路69、セレクタ70〜72、レジスタ73〜75、+256(バイト)加算器76〜77、−256(バイト)加算器78、セレクタ79及び83〜84、+32(バイト)加算器80〜82、レジスタ86〜89から構成される。また、90はセレクタ52〜55制御することによって実現する転送元の主記憶バンクと転送先の主記憶バンクのマッピング情報をあらわす。
プロセッサバス5及び線L40を介して送られてきた主記憶上でのデータコピーを行なうための転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長の情報はレジスタ51に一時保持される。次に、プロセッサバス5及び線L41を介して他のプロセッサから送られてきたスヌープ処理の終了報告を起動信号として、レジスタ51に保持された情報がレジスタ73〜75に移されて、読み出し及び書き込みのための主記憶アドレスが生成される。
ここでは、256バイトを単位として主記憶からのデータ読み出し/書き込みを繰り返して行なう。256バイトのデータは主記憶バンク毎に8個の8バイト・データに相当する。8個の8バイト・データというのは、いま仮に、主記憶をSDRAMあるいはDRAMのEDOモードで実現し、そのバーストモードを利用することを考えたときのバーストの単位である。この値は、SDRAMあるいはDRAMのEDOモードの特性により異なることもある。また、もちろん、バッファ56〜59を十分確保できるのであれば、もっと大きな単位で分割することもできる。
ここでは、以下の3つの手順を、レジスタ75の値が0になるまで繰返し行なう。
(1)レジスタ73で生成した各主記憶バンクからの読み出しアドレスを線L60を介して上位ビット0−26を線L62へ、ビット27、28を線L63に送る。線L63上のビット27、28をセレクト信号とし、セレクタ83〜85を選択し、線L62のアドレスを必要に応じて32B加算してレジスタ86〜89に送り、さらに、各主記憶バンク・バス7〜10に転送する。
(2)同時に、レジスタ73で生成した各主記憶バンクからの読み出しアドレスのビット27、28を線L60を介して転送元の主記憶バンクと転送先の主記憶バンクのマッピング情報90に送る。更に、レジスタ74で生成した各主記憶バンクへの書き込みアドレスのビット27、28を線L61を介して、同様にマッピング情報90に送る。ここでは、転送元の主記憶バンクと転送先の主記憶バンクのそれぞれの先頭アドレスのずれを計算し、線L64に送る信号をセレクト信号としてセレクタ52〜55を制御する。
(3)レジスタ74で生成した各主記憶バンクへの書き込みアドレスを線L61を介して上位ビット0−26を線L62へ、ビット27、28を線L63に送る。線L63上のビット27、28をセレクト信号とし、セレクタ83〜85を選択し、線L62のアドレスを必要に応じて32B加算してレジスタ86〜89に送り、さらに、各主記憶バンク・バス7〜10に転送する。
そして、レジスタ75の値が0になったことを0チェック回路69で判定すると、データ転送処理が終了したことを線L42、プロセッサバス5を介してプロセッサに報告する。
次に、本発明の第2の実施例について第6図、第7図を用いて詳細に説明する。
第2の実施例では、主記憶上のページでアラインされた転送元領域のデータを、同じくページでアラインされた転送先領域にデータ転送する。データベースのような大規模データを扱うアプリケーションでは、このようなデータコピー処理が重要である。
この場合、第1の実施例では、第4図に示す記憶制御部においてバッファ52〜55、バッファ60と主記憶バンク・バス7〜10を相互に接続する必要があり多数のデータ線を必要とする。従って、第1の実施例の場合には、記憶制御部はひとつのLSIで実装することが望まれる。
一方、第2の実施例では、比較的小規模のLSIを複数個用いて実現することができる。
第2の実施例では、第1の実施例に対して、第1図に示す記憶制御部6の構成が異なる。
第2の実施例における記憶制御部6の構成について第6図及び第7図を用いて説明する。
第6図において、記憶制御部6は、制御部95、主記憶上でのデータコピー処理を行なうための転送元の先頭アドレス、転送先の先頭アドレスおよび転送データ長の情報を保持するレジスタ96、セレクタ97、バッファ98からなる主記憶バンク・バス7に接続したサブ記憶制御部91と、内部構成がサブ記憶制御部91と同一であり、それぞれ主記憶バンク・バス8〜10に接続したサブ記憶制御部92〜94及びAND回路99等からなる。
第6図を用いて、記憶制御部6の動作を説明する。
通常のロード系処理およびストア系処理については、上記第1の実施例と同じ動作を行なう。
次に、主記憶上のデータコピーについて説明する。
サブ記憶制御部91〜94は、各々同様の動作を行なうので、ここではサブ記憶制御部91について説明する。
まず、主記憶上のデータコピーのための必要な情報である転送元の先頭アドレス、転送先の先頭アドレスおよび転送データ長をプロセッサバス5及び線L40を介してレジスタ96に取り込む。次に、他のプロセッサからのスヌープ処理の終了報告を線L41を介して受け取る。この報告によりデータコピーを開始する。
以下、データコピーの手順について説明する。
(1)制御部95により生成した主記憶バンク上の読み出し元アドレスが線L71及び主記憶バンク・バス7を介して主記憶バンクに送られる。主記憶バンクから主記憶バンク・バス7を介して制御部95で指定した数のデータが線L73に読み出され、セレクタ97を介してバッファ98に取り込まれる。
(2)制御部95により生成した主記憶バンク上の書き込み先アドレスが線L71及び主記憶バンク・バス7を介して主記憶バンクに送られ、バッファ98から主記憶バンク・バス7を介して制御部95で指定した数のデータが主記憶に書き込まれる。
(3)(1)、(2)の処理をレジスタ96−3に保持された転送データ長に示されたデータ量だけ繰返し行なう。
(4)サブ記憶制御部91から終了信号が線L74を介してAND回路99に送られる。他のサブ記憶制御部92〜94からも終了信号がAND回路99に送られる。全ての終了信号が集まると、記憶制御部6は、線L42およびプロセッサバス5を介してプロセッサに終了報告をする。つまり、コピー制御レジスタMCR26−4に終了フラグを書き込む。
第7図は、制御部95の構成を示す図である。
第7図において、制御部95は、セレクタ79、主記憶上でのデータコピーを行なうための転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長の情報を保持するレジスタ96、セレクタ100〜102、レジスタ103〜105、+256(バイト)加算器106〜107、−256(バイト)加算器108、0チェック回路109から構成される。
プロセッサバス5及び線L40を介して送られてきた主記憶上でのデータコピー処理を行なうための転送元の先頭アドレス、転送先の先頭アドレス及び転送データ長の情報はレジスタ96に一時保持される。
次に、プロセッサバス5及び線L41を介して他のプロセッサから送られてきたスヌープ処理の終了報告を起動信号として、レジスタ51の情報がレジスタ103〜105に移されて、読み出し及び書き込みのための主記憶アドレスが生成される。
ここでは、256バイトを単位として、主記憶からの読み出し/書き込みを繰り返して行なう。256バイトのデータは主記憶バンク毎に8個の8バイト・データに相当する。8個の8バイト・データというのは、いま仮に、主記憶をSDRAMあるいはDRAMのEDOモードで実現し、そのバーストモードを利用することを考えたときのバーストの単位である。この値は、SDRAMあるいはDRAMのEDOモードの特性により異なることもある。また、もちろん、バッファ98を十分確保できるのであれば、もっと大きな単位で分割することもできる。
ここでは、以下の2つの手順を、レジスタ105の値が0になるまで繰返し行なう。
(1)主記憶バンクからデータを読み出すために、レジスタ103で生成した主記憶バンクからの読み出しアドレスをセレクタ79、線L71を介して主記憶バンク・バス7に転送する。
(2)次に、主記憶へのデータの書き込みのために、レジスタ104で生成した主記憶バンクへの書き込みアドレスをセレクタ79、線L71を介して主記憶バンク・バス7に転送する。
そして、レジスタ105の値が0になったことを0チェック回路109で判定すると、データ転送処理が終了したことを線L74を介してAND回路99に報告する。
以上、本発明について実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲内で種々変更可能であることは言うまでもない。
本発明によれば、以下のような効果を得ることができる。
(1)主記憶上のデータコピーをプロセッサの処理と非同期・独立に実行することができるので、プロセッサの負荷を減らすことができる。
(2)主記憶が複数のバンクから構成されている場合、データコピーのボトルネックをプロセッサバスの能力から、主記憶バンクバスの合計の能力まで引き上げることができる。
(3)プロセッサバスに複数のプロセッサが接続されている場合、データコピーにプロセッサバスを用いなくて済むため、プロセッサバスの負荷を大幅に低減することができる。
(4)更に、第2の実施例では、それぞれの主記憶バンクから送り出されたデータが、入力元の主記憶バンク・バスに接続しているサブ記憶制御部のみに保持されるため、ピン数制限による記憶制御部のLSI分割を容易に行うことができる。
また、各サブ記憶制御部を各主記憶バンク・バスに近づけて実装することが容易にできるため、レイテンシの短縮、クロック周波数の短縮をはかることができる。
産業上の利用可能性
本発明は、1台乃至複数台のプロセッサをバスで接続し、各プロセッサで主記憶を共有する構成を備えた計算機システムに用いるのに適している。
Claims (8)
- 複数のプロセッサと、前記複数のプロセッサを接続する接続手段と、前記複数のプロセッサに共有される主記憶装置と、前記複数のプロセッサからの前記主記憶装置に対するアクセスを制御する記憶制御部とを備え、前記複数のプロセッサの各プロセッサは前記主記憶装置に格納されているデータの一部の写しを保持するキャッシュメモリを有する計算機システムにおいて、
前記記憶制御部は、前記複数のプロセッサのうちの任意のプロセッサから前記接続手段を介して指示される所望のデータが格納されている前記主記憶装置の第1の領域のアドレス情報と、前記所望のデータを転送すべき前記主記憶装置の第2の領域のアドレス情報と、前記所望のデータのデータ長の情報とを保持する転送制御手段と、前記転送制御手段の制御により、前記第1の領域に格納されている前記所望のデータを読み出して前記第2の領域に格納する転送手段とを有し、
前記各プロセッサは、前記主記憶装置の前記第1の領域から前記第2の領域へのデータ転送を指示する命令に従って、前記第1の領域のアドレス情報と前記第2の領域アドレス情報と前記データ長の情報とを保持し、該保持した各情報を前記接続手段を介して前記記憶制御部および他のプロセッサに対して指示する転送指示手段と、前記接続手段を介して他のプロセッサから指示される前記第1の領域のアドレス情報と前記第2の領域のアドレス情報と前記データ長の情報とを保持し、前記各情報に従って、前記主記憶装置の各領域に格納されているデータの写しが前記キャッシュメモリに保持されているか否かを調査するキャッシュ調査手段とを有し、
前記記憶制御部が、前記任意のプロセッサからの指示に応じて、各プロセッサと独立に前記主記憶装置の前記第1の領域から前記第2の領域へのデータ転送を実行することを特徴とする計算機システム。 - 前記キャッシュ調査手段は、前記キャッシュメモリに前記主記憶装置の前記各領域に格納されているデータの写しが保持されている場合には、該データを無効とすることを特徴とする請求の範囲の第1項記載の計算機システム。
- 前記キャッシュ調査手段は、前記キャッシュの調査が終了したかを判定し、終了したと判定した場合に前記記憶制御部にキャッシュ調査の終了報告を行う調査報告部を有することを特徴とする請求の範囲の第1項記載の計算機システム。
- 前記転送制御手段は、前記各プロセッサから前記終了報告を受けた場合に、前記転送手段によるデータ転送を開始させることを特徴とする請求の範囲の第3項記載の計算機システム。
- 複数のプロセッサと、前記複数のプロセッサを接続する接続手段と、インターリーブされた少なくとも2以上の記憶バンクから構成され、前記複数のプロセッサに共有される主記憶装置と、前記複数のプロセッサからの前記主記憶装置に対するアクセスを制御する記憶制御部とを有する計算機システムにおいて、前記記憶制御部は、各記憶バンク毎に、前記複数のプロセッサのうちの任意のプロセッサから前記接続手段を介して指示される、所望のデータが格納されている前記主記憶装置の第1の領域のアドレス情報と、前記所望のデータを転送すべき前記主記憶装置の第2の領域のアドレス情報と、前記所望のデータのデータ長の情報とを保持する転送制御手段と、前記転送制御手段の制御により、前記第1の領域に格納されている前記所望のデータを読み出して前記第2の領域に格納する転送手段とを有する少なくとも2以上のサブ記憶制御部を有し、各サブ記憶制御部が、前記任意のプロセッサからの指示に応じて各プロセッサと独立に、前記各記憶バンク毎に、前記第1の領域から前記第2の領域へのデータ転送を実行することを特徴とする計算機システム。
- 前記各プロセッサは、前記データ転送を指示する命令に従って、前記第1の領域のアドレス情報と前記第2の領域のアドレス情報と前記データ長の情報とを保持し、該保持した各情報を前記接続手段を介して前記各サブ記憶制御部に指示する転送指示手段を有することを特徴とする請求の範囲の第5項記載の計算機システム。
- 前記各サブ記憶制御部の前記転送制御手段は、前記各記憶バンク毎に前記データ転送が終了したかを判定し、終了したと判定した場合に終了報告を行う第1の転送報告部を有し、前記記憶制御部は、前記各サブ記憶制御部の各転送報告部から終了報告を受け取り、全ての前記転送報告部から終了報告を受けた場合に前記任意のプロセッサに終了報告を行う第2の転送報告部を有することを特徴とする請求の範囲の第6項記載の計算機システム。
- 前記転送指示手段は前記データ転送の終了情報を保持する終了保持部を備え、前記第2の転送報告部は前記任意のプロセッサの前記終了保持部に終了情報をセットすることを特徴とする請求の範囲の第7項記載の計算機システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1996/002719 WO1998012639A1 (fr) | 1996-09-20 | 1996-09-20 | Systeme informatique |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3735377B2 true JP3735377B2 (ja) | 2006-01-18 |
Family
ID=14153863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51447998A Expired - Fee Related JP3735377B2 (ja) | 1996-09-20 | 1996-09-20 | 計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6298355B1 (ja) |
JP (1) | JP3735377B2 (ja) |
WO (1) | WO1998012639A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000063905A1 (fr) | 1999-04-16 | 2000-10-26 | Sony Corporation | Systeme de traitement de donnees, procede de traitement de donnees et processeur de donnees |
US7398282B2 (en) * | 2000-06-16 | 2008-07-08 | Fujitsu Limited | System for recording process information of a plurality of systems |
US20080041942A1 (en) * | 2002-04-17 | 2008-02-21 | Aissa Nebil B | Biometric Multi-Purpose Terminal, Payroll and Work Management System and Related Methods |
US7454585B2 (en) * | 2005-12-22 | 2008-11-18 | International Business Machines Corporation | Efficient and flexible memory copy operation |
US20080228927A1 (en) * | 2007-03-15 | 2008-09-18 | Microsoft Corporation | Server directed browsing |
US10057366B2 (en) * | 2015-12-31 | 2018-08-21 | Hughes Network Systems, Llc | Accurate caching in adaptive video streaming based on collision resistant hash applied to segment contents and ephemeral request and URL data |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5954091A (ja) * | 1982-09-20 | 1984-03-28 | Toshiba Corp | 電子計算機 |
DE3502147A1 (de) * | 1984-01-23 | 1985-08-08 | Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung |
US5369767A (en) * | 1989-05-17 | 1994-11-29 | International Business Machines Corp. | Servicing interrupt requests in a data processing system without using the services of an operating system |
US5369749A (en) * | 1989-05-17 | 1994-11-29 | Ibm Corporation | Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems |
JPH03182945A (ja) * | 1989-12-13 | 1991-08-08 | Hitachi Ltd | 主記憶内データ転送方式 |
JPH04170648A (ja) * | 1990-11-05 | 1992-06-18 | Shikoku Nippon Denki Software Kk | データ高速転送処理装置 |
US5606688A (en) * | 1994-08-31 | 1997-02-25 | International Business Machines Corporation | Method and apparatus for dynamic cache memory allocation via single-reference residency times |
-
1996
- 1996-09-20 US US09/269,023 patent/US6298355B1/en not_active Expired - Fee Related
- 1996-09-20 WO PCT/JP1996/002719 patent/WO1998012639A1/ja active Application Filing
- 1996-09-20 JP JP51447998A patent/JP3735377B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1998012639A1 (fr) | 1998-03-26 |
US6298355B1 (en) | 2001-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5371870A (en) | Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching | |
US5659713A (en) | Memory stream buffer with variable-size prefetch depending on memory interleaving configuration | |
US5388247A (en) | History buffer control to reduce unnecessary allocations in a memory stream buffer | |
US5586294A (en) | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer | |
US5461718A (en) | System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory | |
KR100274327B1 (ko) | 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 | |
CA1124888A (en) | Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability | |
US5530941A (en) | System and method for prefetching data from a main computer memory into a cache memory | |
US6665774B2 (en) | Vector and scalar data cache for a vector multiprocessor | |
CA1322058C (en) | Multi-processor computer systems having shared memory and private cache memories | |
JPH11232173A (ja) | ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム | |
US5269009A (en) | Processor system with improved memory transfer means | |
US5796979A (en) | Data processing system having demand based write through cache with enforced ordering | |
US5452418A (en) | Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation | |
EP0533427A1 (en) | Computer memory control system | |
JP3506024B2 (ja) | 情報処理装置 | |
JP3735377B2 (ja) | 計算機システム | |
WO1997004392A1 (en) | Shared cache memory device | |
JPH0574103B2 (ja) | ||
JPH0282330A (ja) | ムーブアウト・システム | |
JPH0519176B2 (ja) | ||
US20070177415A1 (en) | High performance mass storage systems | |
Gharachorloo et al. | Efficient ECC-Based Directory Implementations for Scalable Multiprocessors | |
JP3564343B2 (ja) | キャッシュバイパス時のデータ転送装置と方法 | |
JPS5818710B2 (ja) | 記憶システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050905 |
|
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: 20051018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051024 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111028 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |