JPH07281950A - データ記憶装置をアクセスする方法及びメモリアクセス制御装置 - Google Patents

データ記憶装置をアクセスする方法及びメモリアクセス制御装置

Info

Publication number
JPH07281950A
JPH07281950A JP8478293A JP8478293A JPH07281950A JP H07281950 A JPH07281950 A JP H07281950A JP 8478293 A JP8478293 A JP 8478293A JP 8478293 A JP8478293 A JP 8478293A JP H07281950 A JPH07281950 A JP H07281950A
Authority
JP
Japan
Prior art keywords
buffer
data
source
bytes
byte
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.)
Pending
Application number
JP8478293A
Other languages
English (en)
Inventor
Jean-Paul Aldebert
ジャン‐ポール、アルデベール
Jean Calvignac
ジャン、カルビニャク
Jean-Pierre Lips
ジャン、ピエール、リプ
Bernard Naudin
ベルナール、ノダン
Daniel Orsatti
ダニエル、オルサティ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07281950A publication Critical patent/JPH07281950A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 複数のソースバッファから、2バイトワー
ド(m>n)で構成されるフリップフロップターゲット
バッファへデータ伝送するべく整合を行う。 【構成】 バッファインターフェースレジスタ(BI
R)へのデータ書込みのためのソースバッファからの次
々の読取後に(2+2−1)バイトを含んでいるB
IRは、位置(2+1)から(2+2−1)まで
の余分のバイトをもどし、ソースバッファから読取られ
た次の2バイトを付加し、はじめの2バイトをター
ゲットバッファ117に転送する。この機構は、読取、
書込及び転送中の無用のステップを回避しうるようにす
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は記憶装置(depository s
torage)から異なるユーザにメッセージを伝送する機構
及び方法に関し、詳細には異なるソース(source)バッ
ファ内のメッセージストリップからのデータを共通のタ
ーゲットバッファに転送しそして整合させることの出来
る機構及び方法に関する。
【0002】
【従来の技術】遠隔通信は情報またはメッセージの実行
方法における管理の可能な装置にもとづいている。この
情報またはメッセージは主記憶手段に記憶されるのであ
り、この主記憶手段へのアクセスは制御されねばならず
そしてそれら装置を使用すべき環境に適合されるべき方
法に関係するものでなくてはならない。
【0003】通信コントローラは異なるユーザにより共
用される主記憶手段を用いてつくられる。ユーザの数が
増加すると、この共用メモリは大きな容量をもたねばな
らず、従ってそのアクセス機構はより複雑になる。共用
メモリの構造をそのままとすれば、方法および装置の改
善によりその主メモリへのアクセスを最適化することに
なる。しかしながらそのような最適化は望ましいことで
ある。
【0004】IBM Technical Disclosure Bulletin,Vol.
24 No.11B 、1982年4月、ページ5948はシステ
ムI/O用の奇バイトデータ整合機構を開示している。
そのデータ処理システムアーキテクチャにより行われる
装置はデータの多バイトバスへの転送またはそれからの
そのデータの受信の前に奇数メモリ境界上のデータのバ
イト整合を可能にしている。この文献の目的は奇メモリ
境界の場合に限られる。
【0005】ヨーロッパ特許出願第A1206083号
明細書は本発明で実行されるものとは全く異なる環境に
おいて異なるサイズのバス間のインターフェース用の方
法および装置を示している。更に、その実行はサイズの
異なるバスでのデータの転送およびその転送前のデータ
の整合を行うことが出来ない。
【0006】IBM Technical Disclosure Bulletin.Vol.
29 No.2 、1986年7月は高速ディジタル通信プロセ
ッサ用のハードウェア支援によるバイト整合を示してい
る。この技術によれば、プロセッサが偶/奇位置に記憶
されたデータを奇/偶位置に動かすことが出来る。それ
故、この技術は、データが種々の形で記憶されそして異
なるサイズのバスでの転送のために整合されねばならな
いような一般的なケースでは実行出来ない。
【0007】
【発明が解決しようとする課題】これら従来の技術のい
ずれも、共用メモリがターゲットバッファとは異なるサ
イズの複数のソースバッファへと組織化されるときに生
じる問題を考慮していない。ソースバッファがターゲッ
トバッファにデータが転送される前に2回読取られると
いう事実によりそのパフォーマンスは低下する。共用メ
モリ内のデータの読取情報、その整合およびその転送は
実行される装置および適用される方法によりきまる。
【0008】本発明の主目的は複数のソースバッファか
ら読出されるメッセージのデータ整合およびそれらの一
つの固有のターゲットバッファへの転送のための方法お
よび装置を提供することである。
【0009】他の目的はソースバッファとターゲットバ
ッファによりきまるサイズを有する拡張を有するバッフ
ァインターフェースレジスタである中間レジスタを含む
そのような装置を提供することである。
【0010】本発明の他の目的はこのバッファインター
フェースレジスタに、ソースバッファ内のデータを2回
読取りえないようにする複数のマルチプレクサを接続す
ることである。
【0011】他の目的はマルチプレクサ、バッファイン
ターフェースレジスタおよびターゲットバッファを制御
するためのポインタシステム管理をその装置に与えるこ
とである。
【0012】更に他の目的は不要な段階を必要とせず、
ソースバッファ内のデータを読取段階、バッファインタ
ーフェースレジスタでのその整合段階およびターゲット
バッファへのその転送段階におけるパフォーマンスを向
上するためにこの装置に適用されるべき方法を提供する
ことである。
【0013】本発明の請求の範囲1および3の特徴によ
り上記課題は解決される。
【0014】
【実施例】図1は本発明の方法および装置を組込んだ通
信システムのブロック図である。これはその実行環境を
概略的に示している。
【0015】ブロック110は共用メモリサブシステム
を示し、これは次の五つの基本部分を含んでいる: − データメッセージを処理しそして共用メモリサブシ
ステム110とアダプタ122を制御するマイクロプロ
セッサ116; − 中央制御システム136; − アービター(arbiter)126; − データメモリ112に関連して異なる連鎖したバッ
ファ113にそれらアダプタから入るデータメッセージ
またはそれらアダプタに送られるべく用意されたデータ
メッセージを保持するためのデータメモリ管理プログラ
ム114; − ヨーロッパ特許出願A365731に詳述されてい
るデータメモリインターフェースDSI111。
【0016】この共用メモリサブシステム110のこれ
ら部分はアービター126により制御される4バイトの
バス130により互いに接続される。データメモリイン
ターフェースは複数のユーザ122に接続する。これら
ユーザは2または4バイトの高性能バスである他の形式
のバスによりデータメモリ112を共用する。
【0017】本発明においては、データメモリインター
フェース111とデータメモリ112である二つのエン
ティティ間の、データメモリ管理プログラム114を介
してこのメモリアクセス制御装置について詳細に説明す
る。
【0018】データメモリ112は本来、二つの方法で
組織化された情報、すなわち、データメモリ管理プログ
ラム114、データメモリインターフェース111およ
びアダプタ120を介してユーザ122から受信しある
いはそれらに送られるメッセージを保持する。
【0019】本発明に使用しうるデータメモリインター
フェースはヨーロッパ特許出願A365731に詳細に
示されている。そのようなデータメモリインターフェー
スは、装置(通信アダプタ)がデータメモリをインター
フェースする機構を含む。このシステムは一群のハード
ウェア手段であり、これらは付加アダプタ120内での
完全なメッセージの緩衝を必要とせずにそれらアダプタ
の要求により共用メモリで優先使用(preemptive)デー
タムーブメントを行う。
【0020】本発明によれば、インターフェース111
は二つのセクション、受信(Receive)と送信(Transmi
t)、に分けられたデータ動作118を含む。受信セク
ションはアダプタ120に付加されるユーザ122によ
り受信したデータメッセージの組立て、その変更および
LIQ待ち行列(ヨーロッパ特許出願A365731参
照)への待ち行列化を行う。送信セクションはデータメ
モリからのLOQ(リンクアウトバウンド待ち行列)か
ら待ち行列解除された(dequeued)データメッセージの
分解および宛先ユーザに送られるべき対応するデータバ
ーストの、予定サイズのターゲットバッファ117での
組立てを行う。
【0021】送信および受信データ動作は共にデータム
ーブメント制御RAM118に、他のユーザのバースト
の処理に必要であった割込み後にその処理を再開するた
めに各ユーザの状態を保存する。
【0022】インターフェース111はまた、データム
ーブメント118と関連して中央制御136をインター
フェースするステーションサービス119を含む。
【0023】図2はデータメモリ内の異なるソースバッ
ファ113からデータメモリインターフェース内のター
ゲットバッファ117へのデータの転送と整合の原理を
示しており、ここではターゲットバッファはフリップフ
ロップバッファである。
【0024】本発明における実施によれば、データメモ
リ112は複数のソースバッファ113から成り、それ
らバッファはメッセージデータを含むべく互いに連鎖
(バッファ連鎖)する。これらソースバッファのサイズ
は同一の予定のサイズとなっている。これらバッファを
構成する夫々のワードは4バイトである。これらバッフ
ァはデータメモリに記憶されそして夫々のソースバッフ
ァに付加されて、バッファ制御ブロック121に示され
るスタートポインタおよびストップポインタのアドレス
に従ってワード毎に読取られる。スタートポインタは対
応するソースバッファ内の第1であるが空でないバイト
(first not empty byte)を示し、ストップポインタは
最後の空でないバイト(last not empty byte)を示す。
このバッファ制御ブロックはまた現在のバッファに連鎖
する次のバッファのアドレスを示すフィールドを含む。
【0025】ユーザが共用メモリからのデータを要求す
る毎に、それらユーザは期待する最大バイト数を示さな
くてはならない。しかしながら、その数はターゲットバ
ッファ117が有するバイト数に対応する8*32バイ
トを越えてはならない。ターゲットバッファのサイズは
予定のものである。ターゲットバッファを構成する各ワ
ードは8バイトである。
【0026】データがターゲットバッファに転送される
前にそれらはメッセージ内に空バイトを残さないように
連続読取後にバッファインターフェースレジスタ(BI
R)122を通して送る。BIRはソースとターゲット
バッファ間で行われそしてそれはポインタを管理するた
めの論理プログラムに関連する。このポインタシステム
はいくつかのルールにより管理される。BIRの実行
は、本発明の方法および装置について基本的なものであ
り、その理由は空バイトを伴わずそして全体としてソー
スバッファの僅かな回数の読出しでデータを整合しうる
のでありそれ故メモリアクセス時間を改善するものであ
るからである。BIRは(多数のバイト)=(ターゲッ
トバッファの幅)+(ソースバッファの幅−1)を有す
る。BIRのこのサイズはソースバッファから再びデー
タを再読取りする必要を伴わずに余分の読取をもどすた
めに選ばれる。
【0027】データ整合およびそのユーザへの転送の機
構を示すために図2に示すものを例にとってみる。
【0028】一つのユーザが予定数のバイトをもつ共用
メモリからのデータメッセージを要求している。それ
故、第1ソースバッファのレジスタは送信されるべきメ
ッセージのスタート点を示すスタートポイントを示す。
【0029】ソースバッファから読取られたデータはB
IRのはじめの8バイトが満たされるまであるいは要求
されたメッセージのエンドが受信されるまでまたはター
ゲットバッファが満たされるまで、BIRに転送され
る。このBIRポインタは常に満たされるべき第1バイ
トの位置を示す。
【0030】この例では第3回目の読取後にBIRのは
じめの10バイトが満たされる。次に、次のマシンサイ
クルにおいて、はじめの8バイトがターゲットバッファ
の現在のアドレスに従ってターゲットバッファ117に
書込まれそして2個の余分のバイトがBIRの2個の第
1バイトの位置にもどされる。この位置にはソースバッ
ファから読出されたワードの最後の4バイトに加えられ
る。
【0031】この例はBIRの最後の3バイトの拡張に
よりソースバイトのデータは再読出しさせる必要がない
ことを示す。拡張されるバイトの数はソースバッファの
バイト数によりきまる。
【0032】図3はデータ再整合処理のスタートのフロ
ーチャートを示す。アダプタがステーションサービス1
19によりユーザに送るべきメッセージを有することに
気付くとき、そのアダプタはステップ302でDSIに
おいてデータムーブメント(DM)118に送信バース
ト要求(XBR)を送る。XBRはユーザIDおよび8
バイトの倍数であるべきバースト長を示す。DMはステ
ップ304でデータムーブメント制御RAM内の制御ブ
ロック(CB)を読み、その要求を出したユーザに対応
するソースバッファの位置をきめる(DSIおよびDM
をより詳細に示すヨーロッパ特許出願A365731を
参照)。ステップ306でそれはメッセージがそのユー
ザ用に処理されているかどうかを検査する。
【0033】そのユーザ用に処理中のメッセージがなけ
れば、そのバッファアドレス(BUFFADD)内の
新しいメッセージが処理されることになる。ステップ3
07でDMはデータメモリ内のユーザに対応するバッフ
ァ連鎖制御ブロック(BCCB)を読み、ステップ30
8でそれ自体の制御ブロック内にBUFDISP,N
BUFADDおよびSTOPBCNTをロードす
る。
【0034】他の場合にはステップ310でこのデータ
ムーブメントは次の制御ブロックからロードされる。
【0035】− 読取および転送のための次のバイトの
アドレスを与えるためのバッファ変位(BUFDIS
P); − 次のバッファアドレス(NBUFADD); − ストップバイトカウント(STOPBCNT)。
【0036】ステップ312でデータムーブメントはソ
ースバッファ内のワード番号(WRDNB)を計算し
ユーザに送られるワードの数(または読取回数)を知
る。次にステップ314において、ワーキングバッファ
変位が更新WBDISP=BUFDISP(0:
5)されてBUFDISPのはじめの6ビットを考慮
してデータメモリ内のそのワードのアドレスをつくる。
【0037】ステップ316において、バッファ第1ア
クセス(BUFIRSTAC)が1にセットされて、対
応するソースバッファがアダプタにより送られる同一の
XBRについて第1回目の読取りをされたことを示し、
そして読取られたバイト数を示すバーストバイトカウン
ト(BSTBCNT)がリセットされる。両レジスタ
はデータムーブメント送信内で管理され位置ぎめされ
る。
【0038】その後、後述するようにデータ処理がスタ
ートする。図4,図5はデータムーブメントのデータ処
理のフローチャートを示す。図4において、DMはステ
ップ400においてデータメモリのワーキングバッファ
WBDISPのアドレスのソースバッファの第1の4
バイトワードを読取る。ステップ402においてDM
は、それがそのバッファ内の第1回目のアクセスかどう
かを検査する。
【0039】もしそれがバッファファーストアクセスB
UFIRSTAC=1であれば、ステップ406で、ソ
ースバッファVBCNTAに読まれるべき現在のワー
ドのはじめを示す3ビットからなるレジスタ有効バイト
カウントが連続する0と、0と3の間の数に対応するB
UFDISP(6:7)にセットする。同様に、デー
タメモリバーストレジスタDSBRPはBUFDI
SP(6:7)に等しくセットされる。その理由は第1
ワード読取が第2、第3または第4バイト位置でスター
トするからである。
【0040】そうでなければステップ404において、
DSBRPとソースバッファの現在のワードの第1バ
イトの位置を示す3ビットでなるレジスタ有効バイトカ
ウントVBCNTAが夫々0にセットされる。そして
この場合そのワードはそのソースバッファにおける第1
アクセスではないため必然的にはじめにスタートする。
【0041】ステップ408において、DMもWRD
NB=1であるかどうか、すなわちソースバッファの最
後のワードであるかどうかをチェックする。そうであれ
ば、ステップ412でワードVBCNTBのエンドを
示す有効バイトが0とSTOPBCNT(6:7)の
連鎖にセットされる。そうでなければ3ビットからなる
VBCNTBがステップ410で4にセットされる。
【0042】ステップ414でBSTINCの読取期
間中読取られたバイトの数を示すバースト増分がVBC
NTB−VBCNTAにセットされる。オペレーシ
ョンBSTBCNTのはじめから読取られたバイトの
数を示すバーストバイトカウントがBSIBCNT+
BSTINCにセットされる。そしてステップ416
でBSTLGTHがBURSTLGTHと比較され
る。BSTBCNT>BURSTLGTHであれ
ば、この機構は条件はずれとなる。これについては詳述
する。そしてこのBIRの内容はステップ420でター
ゲットバッファに移される。
【0043】そうでなければステップ418でDMはバ
ッファインターフェースレジスタポインタがポイントす
るバイト(0から10まで)をチェックする。はじめの
8バイトが充填されれば、ステップ420でそのデータ
の動きがターゲットバッファ117にはじめの8バイト
を書込む。これと同時にDMはステップ422で余分な
バイトの数に対応するBIROV=BIRPTR−
8を計算する。
【0044】ステップ424では二つのケースが生じう
るからDMはBIROV=0であるかどうかを検査す
る。BIRが正確に8個のバイトを有する場合には、D
MはBIRにステップ428でソースバッファに読込ま
れたデータのすべてを書込む。そうでない場合にはDM
はBIRにBIROVに残されたバイトを考慮してソ
ースバッファに読込まれたデータを書込む。そしてステ
ップ430でDMは、BIR内のソースバッファから読
取られたバイトの位置を示すBIRPTRを計算す
る。
【0045】ステップ418にもどり、はじめの8バイ
トが充填されていなければ、DMはステップ432で、
ソースバッファから読取られたデータをBIRに書込み
そしてBIRPTRがBIR内の次の位置をポイント
する。
【0046】このデータ処理は図5において続けられ
る。ステップ434でDMはそのレジスタのワード数W
RDNBを増分する。ステップ436でWRDNB
が0であって、それが最後のデータ読取りであるかどう
かをチェックしなければならない。そうでなければDM
はステップ438でWBDISPを増分しそしてこの
プロセスはステップ400にもどる。
【0047】それ以外の場合にはDMはステップ440
でそれがメッセージのエンドである(NBA=FFF
F)かどうかを検査する。次のソースバッファに更に何
かデータがあれば、DMはステップ442でそのソース
バッファのレジスタ121を読取り、そして、バッファ
連鎖制御ブロックBCCBからBUFDISP,ND
UFADDおよびSTOPBCNTをロードする。
ステップ444でDMはWRDNBを計算してソース
バッファの読取回数を知り、バッファの変位がワード変
位にWBDISP=BUFDISPおよびBUFI
RSTAC=1を保存する。その後、このプロセスはス
テップ400にもどる。
【0048】それがメッセージのエンドである場合には
ステップ446でDMはレジスタバーストカウントBU
RSTCNTにステップ414で計算したBST
CNTを保存してそれをメッセージの宛先であるユーザ
に付加されたアダプタに与える。ステップ448でDM
は制御ブロックCBにおいて現在バッファアドレスCB
A=FFFF、次のバッファアドレスNBA=FFFF
およびメッセージインプロセスMIP=0をリセットす
る。
【0049】図6はBSTBCNT>BURST
GTHのときこのデータ処理機構が条件はずれとなる場
合を示す。この場合、DMはターゲットバッファに移送
しうるバイトのみを考慮しそして可変“ソースバッファ
変位”に、ターゲットバッファに移送されない読取られ
たワードの第1バイトの位置を保存する。
【0050】ステップ500でDMはバーストカウント
BURSTCNTをBURSTLGTHにセット
し、BURSTCNTはアダプタがそのバーストにつ
いて受けるバイトの数を示す。ステップ502でDMは
VBCNTBとBIRPTRによりきまる関数に従
ってNEWOFFSET(0:1)の両方のバイトの
値を計算する。この関数を次に詳細に述べる。
【0051】
【表1】 * 有効バイトカウントVBCNTBが00であって
ソースバッファの第4バイトが読取られてBIRに転送
されたとすると、次の四つの状態が生じうる。
【0052】− BIRPTRが00であって、それ
が第8バイトにポイントしている(はじめの8バイトが
充填されつつある)とすれば、newoffsetは
00にセットされる。
【0053】− BIRPTRが01に等しければ、
newoffsetは11にセットされて最後の3バ
イトがBIRのはじめの8バイトのようにターゲットバ
ッファに転送されえない。
【0054】− BIRPTRが10であれば、ne
offsetは10にセットされて最後の2バイト
がターゲットバッファに転送しえないことを示す。
【0055】− BIRPTRが11であれば、ne
offsetは01にセットされそして最後のバイ
トのみがターゲットバッファに転送しえない。 * 同様にVBCNTBが11で、ソースバッファの
第3バイトが読取られてBIRに転送されたことを意味
する場合には次の三つの状態が生じうる。
【0056】− BIRPTRが00または01また
は10であれば、newoffsetは夫々00,1
0または01にセットされる。
【0057】− そしてBIRPTRが11となるケ
ースは、それがすでに充填されたBIRのはじめの8バ
イトがターゲットバッファにまだ転送されていないこと
を意味するから、生じえない。 * この機構はVBCNTBが10および01である
場合に適用される(上記のアレイを参照のこと)。
【0058】newoffsetの値が計算されてし
まうと、図5のそれ以降のステップの処理が行われる。
【0059】ステップ504でDMはNEWOFFS
ET=0でありソースバッファから読取られたバイトの
すべてがターゲットバッファに転送しうるようになって
いるかどうかをチェックする。それ故、転送しうるよう
になっていればBUFDISP(0:5)がステップ
506でWBDISP+1にセットされる。そうでな
ければステップ508でBUFDISP(0:5)=
WBDISPとなる。
【0060】ステップ510でNEWOFFSETが
BUFDISP(6:7)に保存されそしてそれがC
Bにロードされる。
【0061】図7は本発明の機構の実施を示す。三つの
相、すなわち、レジスタの初期化、予プロセスおよびデ
ータ処理がある。 − 初期化相はアダプタがDMにユーザIDとレジスタ
BURSTLGTH600に記憶されるべきバースト
長さについての情報と共にXBRを送ったときにスター
トする。レジスタBSTCNT601とBIRPT
R602が同時にリセットされ、そしてレジスタBUF
IRSTAC603が1にセットされる。レジスタST
OPBCNT60)もそのバッファのBCCBによ
り、それが第1バーストまたは新しいバッファであれば
データメモリにロードされる。もしそれが中間のバッフ
ァであればそれはDM内の制御ブロックからロードされ
る。
【0062】同様に、レジスタBUFDISP605
はBCCBまたは制御ブロックからロードされる。はじ
めの5ビットに対応する最大桁ビットはWBDISP
606にロードされ、このWBDISPがそのバッフ
ァ内のワードを選択可能にする。
【0063】− 予備プロセスはレジスタBUFDI
SPとSTOPBCNTによりバッファに読込まれる
ワードの数を計算しそしてその結果をレジスタWRD
NB607にロードすることからなる。次にこのレジス
タはデータワードがデータメモリから読取られる毎に減
算されそしてWBDISPは増分される。
【0064】− データ処理は次の四つの主ステップを
含む。 ステップ1. ワードポインタ管理プログラム608は
レジスタBUFDISP,STOPBCNT,BU
FIRSTACおよびWRDNBからのデータで動作
し、データメモリ内の一つのワードの読取毎にポインタ
DSBRPとBSTINCの値を計算する。
【0065】ステップ2. 有意のバイトの数に対応す
るレジスタDSTINCがレジスタBSTCNTの
値に付加され、そしてこの付加の値がBURSTLG
THと比較されてそれが条件をはずれたかどうかをチェ
ックする(図5参照)。
【0066】ステップ3. これと同時に、読取られた
有意のバイトがマルチプレクサA*0 610によりB
IRレジスタ612に書込まれ、そしてそれらはポイン
タDSBRとBIRポインタ管理プログラム609から
計算されるゲートによりポイントされる。これらオペレ
ーションのすべては次のようにして行われる。
【0067】a) BIRポインタ管理プログラム60
9の書込み。
【0068】BIRポインタ<8の場合、DSBRポイ
ンタにより与えられる位置でスタートするワードの有意
バイトがBIRポインタによりポイントされる位置から
BIRに書込まれる。
【0069】BIRポンイタが8以上であれば、余分の
バイトが位置0からBIRに書込まれそしてDSBRポ
インタによりポイントされたソースバッファから読取ら
れたバイトが余分のバイトの最後の位置の後に書込まれ
る。
【0070】b) それと同時にBIRのはじめの8バ
イトが充填されるたびに、それらはDM内に配置される
フリップフロップバーストバッファ(FFBB)である
ターゲットバッファにコピーされそしてそれらはターゲ
ットバッファアドレスを増分する。FFBB117への
データの転送はBIRポインタ管理プログラムにより制
御される。
【0071】バッファ内のデータのすべてが読取られた
とき、そのメッセージが次のソースバッファへと連続し
ておりそしてXBRがまだ充填されていないとすれば、
DMは制御ブロック内に含まれるNBA次バッファアド
レスに与えられるアドレスにより次のバッファの連鎖を
はずす。
【0072】これらオペレーションのすべてはXBRで
要求されるバイトの数に達するまで必要な回数だけくり
返される。そのメッセージ内の残りのバイトの数がこの
値より小さければ、メッセージの終了時にこのオペレー
ションは停止しそしてDMはソースバッファから読取ら
れたバイトの数を保存する。
【0073】ステップ4. バーストプロセスのエンド
でDMはユーザの制御ブロックに次のバーストの処理に
必要な情報を保存する。これにより異なるユーザについ
てのバースト処理のインターリーブが可能となる。
【0074】図8は本発明によるBIR内の機構の詳細
を示す。データメモリ内のDSBR611はソースバッ
ファ113の4バイトからなる。DSBR−0である第
1バイトはバス71を介してはじめの8個のマルチプレ
クサA*0 701−708の入力ゲートに接続し、バ
ス72,73,74は夫々DSBR−1,DSBR−
2,DSBR−3をはじめの8個701−709、はじ
めの10個701−710およびマルチプレクサのすべ
て701−711の入力ゲートに接続する。バス75,
76,77もはじめの3個のマルチプレクサ701,7
02,703の入力ゲートをBIRの最後の3バイト6
12−8,612−9,612−10に夫々接続する。
【0075】マルチプレクサの入力ゲートはライン70
を介してBIRポインタ管理プログラム609により選
択される。ライン79はBIRのクロックゲートにコマ
ンドを送りそしてライン78はBIRのはじめの8バイ
ト612−0−612−7のFFBB117への転送を
制御しうる。
【0076】この記載部分はBIRの第3位置612−
2に関する整合ロジックについて生じる異なる可能性を
与える。
【0077】
【表2】 BIRの第3位置において −X0は次の条件で書込まれる: DSBRP=00 and BIRPTR=0010 or BIRPTR=1010 −X1は次の条件で書込まれる: DSBRP=00 and BIRPTR=0001 and BSTINC=4 or 3 or2 or BIRPTR=1001 DSBRP=01 and BIRPTR=0010 or BIRPTR=1010 −X2は次の条件で書込まれる: DSBRP=00 and BIRPTR=0000 and BSTINC=4 or 3 or BIRPTR=1000 DSBRP=01 and BIRPTR=0001 and BSTINC=3 or 2 or BIRPTR=1001 DSBRP=10 and BIRPTR=0010 or BIRPTR=1010 −X3は次の条件で書込まれる: DSBRP=01 and BIRPTR=0000 and BSTINC=3 or BIRPTR=1000 DSBRP=10 and BIRPTR=0001 and BSTINC=2 or BIRPTR=1000 DSBRP=11 and BIRPTR=0010 or BIRPTR=1010 そしてソースバッファ内に読込まれたバイトのすべてが
BIRに書込まれそしてBIRPTR=1011とな
るとき最後の可能性が生じる。それ故、余分の3バイト
は8バイトがターゲットバッファに転送された後にBI
Rのはじめの3つの位置にコピーされる。位置612−
10のバイトはBIRの第3位置にコピーされることに
なる。
【図面の簡単な説明】
【図1】本発明の機構および方法の環境を示す図であ
る。
【図2】本発明による、異なるソースバッファから一つ
の固有のターゲットバッファへのデータ転送と整合の原
理を示す図である。
【図3】データ処理方法のはじめのフローチャートを示
す図である。
【図4】データ処理の主フローチャートを示す図であ
る。
【図5】データ処理の主フローチャートを示す図であ
る。
【図6】機構が条件を出たときのデータ処理のフローチ
ャートを示す図である。
【図7】本発明によるチップでの機構の実施を示す図で
ある。
【図8】BIR(バッファインターフェースレジスタ)
内での機構の詳細な実施を示す図である。
【符号の説明】
110 共用メモリサブシステム 116 マイクロコンピュータ 122 アダプタ 136 中央制御システム 126 アービター 114 データメモリ管理プログラム 112 データメモリ 113 連鎖したバッファ 111 データメモリインターフェース
フロントページの続き (72)発明者 ジャン、カルビニャク フランス国ラ、ゴード、シュマン、レ、バ リエール、187 (72)発明者 ジャン、ピエール、リプ フランス国カーニュ‐シュール‐メール、 シュマン、デ、コレート、73、ル、パル ク、ビラ、ヌメロ、8 (72)発明者 ベルナール、ノダン フランス国サン‐ローラン‐デュ、バル、 コルニシェ、ダグリモン、レ、プロバンサ ル、ヌメロ、10 (72)発明者 ダニエル、オルサティ フランス国カーニュ‐シュール‐メール、 アレー、デ、ブロー、11

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】データメモリ(112)をアクセスする方
    法であって、この方法は、複数のソースバッファ(11
    3)から読取られたメッセージのデータを整合させるた
    めの方法であって、夫々のバッファがそれらバッファの
    内容についての情報を含む1個のバッファ制御ブロック
    に関連づけられており、それらのソースバッファが互い
    に連鎖しそしてデータメモリ(112)内で2バイト
    ワードで組織化されており、さらにこの方法は、データ
    ストアインターフェースDSI(111)の2(mは
    nより大)バイトワードで構成されるターゲットバッフ
    ァ(117)へ前記整合されたデータを転送するための
    方法であり、前記DSIは、前記データメモリと、複数
    のユーザに付されているアダプタ(120)とを、イン
    ターフェースしている、方法であり、下記段階を含むこ
    とを特徴とする方法。 (a) ユーザ(122)要求によりそのユーザに関連
    するソースバッファの、その中のメッセージの少くとも
    はじめと終りおよび次に連鎖したソースバッファのアド
    レスを示すバッファ制御ブロック(121)を読取る段
    階; (b) ワードの第1バイト位置でスタートしそしてそ
    のソースバッファのそのワードの最後のバイト位置で終
    る必要のない、伝送すべきデータのはじめと終りをその
    ソースバッファ内で検出する段階; (c) 上記ソースバッファから伝送されるバイトの数
    を計算する段階; (d) 伝送されるバイトの数をユーザーにより要求さ
    れたバイトの数と比較する段階; (e) ユーザにより要求されたバイトの数が転送され
    るデータのバイトの数より小さいとき、転送されるバイ
    トの数をユーザにより要求されるバイトの数にセットし
    そして更にデータ整合と転送を処理する段階; (f) それ以外のとき、データがターゲットバッファ
    の2バイトワードのサイズと整合しまたはそれを越え
    るまでそれらを整合させるために、そのデータを、ター
    ゲットバッファの幅(2)とソースバッファの幅(2
    )の和から1を減算したものに等しいサイズのバッフ
    ァインターフェースレジスタ(612)にワードずつ転
    送する段階; (g) 上記ターゲットバッファに上記バッファインタ
    ーフェースレジスタのはじめの2バイトワードを転送
    する間に上記バッファインターフェースレジスタの第1
    位置に余分のバイトをもどす段階; (h) 上記ソースバッファに記憶されたメッセージま
    たはデータの終了までまたはユーザにより要求されたバ
    イト数となるまで上記のデータの整合と転送をくり返す
    段階。
  2. 【請求項2】下記段階を更に含むことを特徴とする請求
    項1の方法: (i) 前記第1ソースバッファのバッファ制御ブロッ
    ク内に示される次のソースバッファのバッファ制御ブロ
    ック(121)を読取る段階; (j) そのメッセージの終了またはユーザにより要求
    されたバイト数となるまで上記データ整合およびデータ
    転送を処理する段階。
  3. 【請求項3】データメモリ(112)をアクセスし、複
    数のソースバッファ(113)であって、夫々がそれら
    バッファの内容についての情報を含む1個のバッファ制
    御ブロックに関連づけられると共に、それらバッファが
    互いに連鎖しそしてデータ記憶装置(112)内で2
    バイトワードで構成された上記複数のソースバッファか
    ら読取られたメッセージのデータを整合させ、そしてそ
    の整合されたメッセージのデータを、mをnより大とし
    て上記データメモリおよびアダプタ(120)と共に複
    数のユーザ(122)に付加されるデータメモリインタ
    ーフェースDSI(111)の2バイトワードで構成
    されるターゲットバッファ(117)に転送するために
    用いられる、下記要件を含むことを特徴とするメモリア
    クセス制御装置: − 上記ソースバッファから読取られたバイトをバッフ
    ァインターフェース手段(612)に書込みうるように
    上記ソースバッファ(113)と上記バッファインター
    フェース手段との間をインターフェースするマルチプレ
    クサ手段(610); − ソースバッファ(113)から読取られたデータを
    整合しそして各バイトのサイズをターゲットバッファ
    (117)のサイズに適合させるためのバッファインタ
    ーフェース手段(612)であって、ターゲットバッフ
    ァの幅(2)とソースバッファの幅(2)の和から
    1を減算したものに対応するバイト数を有するレジスタ
    を含み、バイト位置(2+1)から(2+2
    1)の余分なバイトを上記バッファインターフェース手
    段(612)の、ソースバッファから読取られた次のバ
    イトが付加されるはじめの部分にもどし、上記バッファ
    インターフェース手段のはじめの2バイトをターゲット
    バッファに転送しうるようになった上記バッファインタ
    ーフェース手段(612); − 上記データメモリ(112)にアクセスし、上記ソ
    ースバッファ(113)から読取られたメッセージのデ
    ータを整合させそしてその整合したデータをターゲット
    バッファ(117)に送る前に上記バッファインターフ
    ェース手段(612)に転送するためのポインタ管理シ
    ステム(608,609)。
  4. 【請求項4】前記ポインタ管理システム(608,60
    9)が下記要件を含むことを特徴とする請求項3の装
    置: − 前記ソースバッファから伝送すべきデータのはじめ
    と終りを示す、現在読取られた上記ソースバッファのバ
    イトに関連したポインタを管理する手段(608); − 書込まれる次のバイトの位置を示すと共に、前記バ
    ッファインターフェース手段の少くともはじめの2
    イトが充填されたときにそれら2バイトをターゲット
    バッファ(117)に転送しそして、位置(2+1)
    から(2+2−1)までの余分のバイトをソースバ
    ッファから読取られる次のバイトが付加されるその第1
    位置にもどしうるようにする上記バッファインターフェ
    ース手段(612)のバイトに関連したポインタを管理
    するための手段(609)。
  5. 【請求項5】レジスタ(121)が前記夫々のソースバ
    ッファに付加されて転送されるべきバイトの管理を可能
    にするようになっており、上記レジスタはスタートポイ
    ンタによりポイントされるソースバッファの第1の空で
    ないバイトのアドレス、ストップポインタによりポイン
    トされるソースバッファの最後の空でないバイトのアド
    レスおよびソースバッファの読取動作を制御するために
    データメモリインターフェースにより用いられる連続す
    るメッセージを含む次のソースバッファのアドレスを記
    憶するごとくなったことを特徴とする請求項3または4
    のメモリアクセス制御装置。
  6. 【請求項6】レジスタ(602)が前記バッファインタ
    ーフェース手段(612)に付加されてポインタにより
    ポイントされる上記バッファインターフェース手段の第
    1の空バイトのアドレスを示すことを特徴とする請求項
    3乃至5の1に記載のメモリアクセス制御装置。
  7. 【請求項7】前記ターゲットバッファはフリップフロッ
    プバッファであることを特徴とする請求項3乃至6の1
    に記載のメモリアクセス制御装置。
JP8478293A 1992-05-26 1993-04-12 データ記憶装置をアクセスする方法及びメモリアクセス制御装置 Pending JPH07281950A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP92480074A EP0571683A1 (en) 1992-05-26 1992-05-26 High performance data re-alignment mechanism with multiple buffers in a memory access control device
FR92480074.1 1992-05-26

Publications (1)

Publication Number Publication Date
JPH07281950A true JPH07281950A (ja) 1995-10-27

Family

ID=8211787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8478293A Pending JPH07281950A (ja) 1992-05-26 1993-04-12 データ記憶装置をアクセスする方法及びメモリアクセス制御装置

Country Status (2)

Country Link
EP (1) EP0571683A1 (ja)
JP (1) JPH07281950A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0141767B1 (ko) * 1994-04-25 1998-07-01 이헌조 디지탈신호 프로세서의 포메트/디포메트 장치
US5638367A (en) * 1995-07-07 1997-06-10 Sun Microsystems, Inc. Apparatus and method for data packing through addition
WO2000068805A1 (en) * 1999-05-10 2000-11-16 Intel Corporation A method and apparatus for a single-word alignment in a page-read operation
US7574346B2 (en) 2000-10-30 2009-08-11 Microsoft Corporation Kernel emulator for non-native program modules
US7107584B2 (en) * 2001-10-23 2006-09-12 Microsoft Corporation Data alignment between native and non-native shared data structures

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0365731B1 (en) * 1988-10-28 1994-07-27 International Business Machines Corporation Method and apparatus for transferring messages between source and destination users through a shared memory

Also Published As

Publication number Publication date
EP0571683A1 (en) 1993-12-01

Similar Documents

Publication Publication Date Title
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
US5020020A (en) Computer interconnect system with transmit-abort function
US7352763B2 (en) Device to receive, buffer, and transmit packets of data in a packet switching network
CA1227879A (en) Buffer system for input/output portion of digital data processing system
US5193149A (en) Dual-path computer interconnect system with four-ported packet memory control
US4419728A (en) Channel interface circuit providing virtual channel number translation and direct memory access
US6925512B2 (en) Communication between two embedded processors
EP0273083B1 (en) Non-locking queueing mechanism
EP0389246B1 (en) A system for controlling communication between parallel computers
US5630059A (en) Expedited message transfer in a multi-nodal data processing system
US5793953A (en) Method and apparatus for allowing packet data to be separated over multiple bus targets
US6615282B1 (en) Adaptive messaging
US6487615B1 (en) Apparatus and method for accepting physical write package when the posted write error queue is full
US5347514A (en) Processor-based smart packet memory interface
US5983305A (en) Network adapter with data aligner
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US6088744A (en) Multiport data buffer having multi level caching wherein each data port has a FIFO buffer coupled thereto
US7058736B2 (en) Reordering of burst data transfers across a host bridge
US5265228A (en) Apparatus for transfer of data units between buses
JPH07281950A (ja) データ記憶装置をアクセスする方法及びメモリアクセス制御装置
US6026032A (en) High speed data buffer using a virtual first-in-first-out register
US9665519B2 (en) Using a credits available value in determining whether to issue a PPI allocation request to a packet engine
US5790893A (en) Segmented concurrent receive/transfer interface using shared RAM storage
US6865638B1 (en) Apparatus and method for transferring multi-byte words in a fly-by DMA operation
EP0299264A2 (en) A byte queing/dequeuing apparatus for handling variable-length data words/instructions in a single clock cycle