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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods 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)【要約】 (修正有)
【目的】 複数のソースバッファから、2mバイトワー
ド(m>n)で構成されるフリップフロップターゲット
バッファへデータ伝送するべく整合を行う。 【構成】 バッファインターフェースレジスタ(BI
R)へのデータ書込みのためのソースバッファからの次
々の読取後に(2m+2n−1)バイトを含んでいるB
IRは、位置(2m+1)から(2m+2n−1)まで
の余分のバイトをもどし、ソースバッファから読取られ
た次の2nバイトを付加し、はじめの2mバイトをター
ゲットバッファ117に転送する。この機構は、読取、
書込及び転送中の無用のステップを回避しうるようにす
る。
ド(m>n)で構成されるフリップフロップターゲット
バッファへデータ伝送するべく整合を行う。 【構成】 バッファインターフェースレジスタ(BI
R)へのデータ書込みのためのソースバッファからの次
々の読取後に(2m+2n−1)バイトを含んでいるB
IRは、位置(2m+1)から(2m+2n−1)まで
の余分のバイトをもどし、ソースバッファから読取られ
た次の2nバイトを付加し、はじめの2mバイトをター
ゲットバッファ117に転送する。この機構は、読取、
書込及び転送中の無用のステップを回避しうるようにす
る。
Description
【0001】
【産業上の利用分野】本発明は記憶装置(depository s
torage)から異なるユーザにメッセージを伝送する機構
及び方法に関し、詳細には異なるソース(source)バッ
ファ内のメッセージストリップからのデータを共通のタ
ーゲットバッファに転送しそして整合させることの出来
る機構及び方法に関する。
torage)から異なるユーザにメッセージを伝送する機構
及び方法に関し、詳細には異なるソース(source)バッ
ファ内のメッセージストリップからのデータを共通のタ
ーゲットバッファに転送しそして整合させることの出来
る機構及び方法に関する。
【0002】
【従来の技術】遠隔通信は情報またはメッセージの実行
方法における管理の可能な装置にもとづいている。この
情報またはメッセージは主記憶手段に記憶されるのであ
り、この主記憶手段へのアクセスは制御されねばならず
そしてそれら装置を使用すべき環境に適合されるべき方
法に関係するものでなくてはならない。
方法における管理の可能な装置にもとづいている。この
情報またはメッセージは主記憶手段に記憶されるのであ
り、この主記憶手段へのアクセスは制御されねばならず
そしてそれら装置を使用すべき環境に適合されるべき方
法に関係するものでなくてはならない。
【0003】通信コントローラは異なるユーザにより共
用される主記憶手段を用いてつくられる。ユーザの数が
増加すると、この共用メモリは大きな容量をもたねばな
らず、従ってそのアクセス機構はより複雑になる。共用
メモリの構造をそのままとすれば、方法および装置の改
善によりその主メモリへのアクセスを最適化することに
なる。しかしながらそのような最適化は望ましいことで
ある。
用される主記憶手段を用いてつくられる。ユーザの数が
増加すると、この共用メモリは大きな容量をもたねばな
らず、従ってそのアクセス機構はより複雑になる。共用
メモリの構造をそのままとすれば、方法および装置の改
善によりその主メモリへのアクセスを最適化することに
なる。しかしながらそのような最適化は望ましいことで
ある。
【0004】IBM Technical Disclosure Bulletin,Vol.
24 No.11B 、1982年4月、ページ5948はシステ
ムI/O用の奇バイトデータ整合機構を開示している。
そのデータ処理システムアーキテクチャにより行われる
装置はデータの多バイトバスへの転送またはそれからの
そのデータの受信の前に奇数メモリ境界上のデータのバ
イト整合を可能にしている。この文献の目的は奇メモリ
境界の場合に限られる。
24 No.11B 、1982年4月、ページ5948はシステ
ムI/O用の奇バイトデータ整合機構を開示している。
そのデータ処理システムアーキテクチャにより行われる
装置はデータの多バイトバスへの転送またはそれからの
そのデータの受信の前に奇数メモリ境界上のデータのバ
イト整合を可能にしている。この文献の目的は奇メモリ
境界の場合に限られる。
【0005】ヨーロッパ特許出願第A1206083号
明細書は本発明で実行されるものとは全く異なる環境に
おいて異なるサイズのバス間のインターフェース用の方
法および装置を示している。更に、その実行はサイズの
異なるバスでのデータの転送およびその転送前のデータ
の整合を行うことが出来ない。
明細書は本発明で実行されるものとは全く異なる環境に
おいて異なるサイズのバス間のインターフェース用の方
法および装置を示している。更に、その実行はサイズの
異なるバスでのデータの転送およびその転送前のデータ
の整合を行うことが出来ない。
【0006】IBM Technical Disclosure Bulletin.Vol.
29 No.2 、1986年7月は高速ディジタル通信プロセ
ッサ用のハードウェア支援によるバイト整合を示してい
る。この技術によれば、プロセッサが偶/奇位置に記憶
されたデータを奇/偶位置に動かすことが出来る。それ
故、この技術は、データが種々の形で記憶されそして異
なるサイズのバスでの転送のために整合されねばならな
いような一般的なケースでは実行出来ない。
29 No.2 、1986年7月は高速ディジタル通信プロセ
ッサ用のハードウェア支援によるバイト整合を示してい
る。この技術によれば、プロセッサが偶/奇位置に記憶
されたデータを奇/偶位置に動かすことが出来る。それ
故、この技術は、データが種々の形で記憶されそして異
なるサイズのバスでの転送のために整合されねばならな
いような一般的なケースでは実行出来ない。
【0007】
【発明が解決しようとする課題】これら従来の技術のい
ずれも、共用メモリがターゲットバッファとは異なるサ
イズの複数のソースバッファへと組織化されるときに生
じる問題を考慮していない。ソースバッファがターゲッ
トバッファにデータが転送される前に2回読取られると
いう事実によりそのパフォーマンスは低下する。共用メ
モリ内のデータの読取情報、その整合およびその転送は
実行される装置および適用される方法によりきまる。
ずれも、共用メモリがターゲットバッファとは異なるサ
イズの複数のソースバッファへと組織化されるときに生
じる問題を考慮していない。ソースバッファがターゲッ
トバッファにデータが転送される前に2回読取られると
いう事実によりそのパフォーマンスは低下する。共用メ
モリ内のデータの読取情報、その整合およびその転送は
実行される装置および適用される方法によりきまる。
【0008】本発明の主目的は複数のソースバッファか
ら読出されるメッセージのデータ整合およびそれらの一
つの固有のターゲットバッファへの転送のための方法お
よび装置を提供することである。
ら読出されるメッセージのデータ整合およびそれらの一
つの固有のターゲットバッファへの転送のための方法お
よび装置を提供することである。
【0009】他の目的はソースバッファとターゲットバ
ッファによりきまるサイズを有する拡張を有するバッフ
ァインターフェースレジスタである中間レジスタを含む
そのような装置を提供することである。
ッファによりきまるサイズを有する拡張を有するバッフ
ァインターフェースレジスタである中間レジスタを含む
そのような装置を提供することである。
【0010】本発明の他の目的はこのバッファインター
フェースレジスタに、ソースバッファ内のデータを2回
読取りえないようにする複数のマルチプレクサを接続す
ることである。
フェースレジスタに、ソースバッファ内のデータを2回
読取りえないようにする複数のマルチプレクサを接続す
ることである。
【0011】他の目的はマルチプレクサ、バッファイン
ターフェースレジスタおよびターゲットバッファを制御
するためのポインタシステム管理をその装置に与えるこ
とである。
ターフェースレジスタおよびターゲットバッファを制御
するためのポインタシステム管理をその装置に与えるこ
とである。
【0012】更に他の目的は不要な段階を必要とせず、
ソースバッファ内のデータを読取段階、バッファインタ
ーフェースレジスタでのその整合段階およびターゲット
バッファへのその転送段階におけるパフォーマンスを向
上するためにこの装置に適用されるべき方法を提供する
ことである。
ソースバッファ内のデータを読取段階、バッファインタ
ーフェースレジスタでのその整合段階およびターゲット
バッファへのその転送段階におけるパフォーマンスを向
上するためにこの装置に適用されるべき方法を提供する
ことである。
【0013】本発明の請求の範囲1および3の特徴によ
り上記課題は解決される。
り上記課題は解決される。
【0014】
【実施例】図1は本発明の方法および装置を組込んだ通
信システムのブロック図である。これはその実行環境を
概略的に示している。
信システムのブロック図である。これはその実行環境を
概略的に示している。
【0015】ブロック110は共用メモリサブシステム
を示し、これは次の五つの基本部分を含んでいる: − データメッセージを処理しそして共用メモリサブシ
ステム110とアダプタ122を制御するマイクロプロ
セッサ116; − 中央制御システム136; − アービター(arbiter)126; − データメモリ112に関連して異なる連鎖したバッ
ファ113にそれらアダプタから入るデータメッセージ
またはそれらアダプタに送られるべく用意されたデータ
メッセージを保持するためのデータメモリ管理プログラ
ム114; − ヨーロッパ特許出願A365731に詳述されてい
るデータメモリインターフェースDSI111。
を示し、これは次の五つの基本部分を含んでいる: − データメッセージを処理しそして共用メモリサブシ
ステム110とアダプタ122を制御するマイクロプロ
セッサ116; − 中央制御システム136; − アービター(arbiter)126; − データメモリ112に関連して異なる連鎖したバッ
ファ113にそれらアダプタから入るデータメッセージ
またはそれらアダプタに送られるべく用意されたデータ
メッセージを保持するためのデータメモリ管理プログラ
ム114; − ヨーロッパ特許出願A365731に詳述されてい
るデータメモリインターフェースDSI111。
【0016】この共用メモリサブシステム110のこれ
ら部分はアービター126により制御される4バイトの
バス130により互いに接続される。データメモリイン
ターフェースは複数のユーザ122に接続する。これら
ユーザは2または4バイトの高性能バスである他の形式
のバスによりデータメモリ112を共用する。
ら部分はアービター126により制御される4バイトの
バス130により互いに接続される。データメモリイン
ターフェースは複数のユーザ122に接続する。これら
ユーザは2または4バイトの高性能バスである他の形式
のバスによりデータメモリ112を共用する。
【0017】本発明においては、データメモリインター
フェース111とデータメモリ112である二つのエン
ティティ間の、データメモリ管理プログラム114を介
してこのメモリアクセス制御装置について詳細に説明す
る。
フェース111とデータメモリ112である二つのエン
ティティ間の、データメモリ管理プログラム114を介
してこのメモリアクセス制御装置について詳細に説明す
る。
【0018】データメモリ112は本来、二つの方法で
組織化された情報、すなわち、データメモリ管理プログ
ラム114、データメモリインターフェース111およ
びアダプタ120を介してユーザ122から受信しある
いはそれらに送られるメッセージを保持する。
組織化された情報、すなわち、データメモリ管理プログ
ラム114、データメモリインターフェース111およ
びアダプタ120を介してユーザ122から受信しある
いはそれらに送られるメッセージを保持する。
【0019】本発明に使用しうるデータメモリインター
フェースはヨーロッパ特許出願A365731に詳細に
示されている。そのようなデータメモリインターフェー
スは、装置(通信アダプタ)がデータメモリをインター
フェースする機構を含む。このシステムは一群のハード
ウェア手段であり、これらは付加アダプタ120内での
完全なメッセージの緩衝を必要とせずにそれらアダプタ
の要求により共用メモリで優先使用(preemptive)デー
タムーブメントを行う。
フェースはヨーロッパ特許出願A365731に詳細に
示されている。そのようなデータメモリインターフェー
スは、装置(通信アダプタ)がデータメモリをインター
フェースする機構を含む。このシステムは一群のハード
ウェア手段であり、これらは付加アダプタ120内での
完全なメッセージの緩衝を必要とせずにそれらアダプタ
の要求により共用メモリで優先使用(preemptive)デー
タムーブメントを行う。
【0020】本発明によれば、インターフェース111
は二つのセクション、受信(Receive)と送信(Transmi
t)、に分けられたデータ動作118を含む。受信セク
ションはアダプタ120に付加されるユーザ122によ
り受信したデータメッセージの組立て、その変更および
LIQ待ち行列(ヨーロッパ特許出願A365731参
照)への待ち行列化を行う。送信セクションはデータメ
モリからのLOQ(リンクアウトバウンド待ち行列)か
ら待ち行列解除された(dequeued)データメッセージの
分解および宛先ユーザに送られるべき対応するデータバ
ーストの、予定サイズのターゲットバッファ117での
組立てを行う。
は二つのセクション、受信(Receive)と送信(Transmi
t)、に分けられたデータ動作118を含む。受信セク
ションはアダプタ120に付加されるユーザ122によ
り受信したデータメッセージの組立て、その変更および
LIQ待ち行列(ヨーロッパ特許出願A365731参
照)への待ち行列化を行う。送信セクションはデータメ
モリからのLOQ(リンクアウトバウンド待ち行列)か
ら待ち行列解除された(dequeued)データメッセージの
分解および宛先ユーザに送られるべき対応するデータバ
ーストの、予定サイズのターゲットバッファ117での
組立てを行う。
【0021】送信および受信データ動作は共にデータム
ーブメント制御RAM118に、他のユーザのバースト
の処理に必要であった割込み後にその処理を再開するた
めに各ユーザの状態を保存する。
ーブメント制御RAM118に、他のユーザのバースト
の処理に必要であった割込み後にその処理を再開するた
めに各ユーザの状態を保存する。
【0022】インターフェース111はまた、データム
ーブメント118と関連して中央制御136をインター
フェースするステーションサービス119を含む。
ーブメント118と関連して中央制御136をインター
フェースするステーションサービス119を含む。
【0023】図2はデータメモリ内の異なるソースバッ
ファ113からデータメモリインターフェース内のター
ゲットバッファ117へのデータの転送と整合の原理を
示しており、ここではターゲットバッファはフリップフ
ロップバッファである。
ファ113からデータメモリインターフェース内のター
ゲットバッファ117へのデータの転送と整合の原理を
示しており、ここではターゲットバッファはフリップフ
ロップバッファである。
【0024】本発明における実施によれば、データメモ
リ112は複数のソースバッファ113から成り、それ
らバッファはメッセージデータを含むべく互いに連鎖
(バッファ連鎖)する。これらソースバッファのサイズ
は同一の予定のサイズとなっている。これらバッファを
構成する夫々のワードは4バイトである。これらバッフ
ァはデータメモリに記憶されそして夫々のソースバッフ
ァに付加されて、バッファ制御ブロック121に示され
るスタートポインタおよびストップポインタのアドレス
に従ってワード毎に読取られる。スタートポインタは対
応するソースバッファ内の第1であるが空でないバイト
(first not empty byte)を示し、ストップポインタは
最後の空でないバイト(last not empty byte)を示す。
このバッファ制御ブロックはまた現在のバッファに連鎖
する次のバッファのアドレスを示すフィールドを含む。
リ112は複数のソースバッファ113から成り、それ
らバッファはメッセージデータを含むべく互いに連鎖
(バッファ連鎖)する。これらソースバッファのサイズ
は同一の予定のサイズとなっている。これらバッファを
構成する夫々のワードは4バイトである。これらバッフ
ァはデータメモリに記憶されそして夫々のソースバッフ
ァに付加されて、バッファ制御ブロック121に示され
るスタートポインタおよびストップポインタのアドレス
に従ってワード毎に読取られる。スタートポインタは対
応するソースバッファ内の第1であるが空でないバイト
(first not empty byte)を示し、ストップポインタは
最後の空でないバイト(last not empty byte)を示す。
このバッファ制御ブロックはまた現在のバッファに連鎖
する次のバッファのアドレスを示すフィールドを含む。
【0025】ユーザが共用メモリからのデータを要求す
る毎に、それらユーザは期待する最大バイト数を示さな
くてはならない。しかしながら、その数はターゲットバ
ッファ117が有するバイト数に対応する8*32バイ
トを越えてはならない。ターゲットバッファのサイズは
予定のものである。ターゲットバッファを構成する各ワ
ードは8バイトである。
る毎に、それらユーザは期待する最大バイト数を示さな
くてはならない。しかしながら、その数はターゲットバ
ッファ117が有するバイト数に対応する8*32バイ
トを越えてはならない。ターゲットバッファのサイズは
予定のものである。ターゲットバッファを構成する各ワ
ードは8バイトである。
【0026】データがターゲットバッファに転送される
前にそれらはメッセージ内に空バイトを残さないように
連続読取後にバッファインターフェースレジスタ(BI
R)122を通して送る。BIRはソースとターゲット
バッファ間で行われそしてそれはポインタを管理するた
めの論理プログラムに関連する。このポインタシステム
はいくつかのルールにより管理される。BIRの実行
は、本発明の方法および装置について基本的なものであ
り、その理由は空バイトを伴わずそして全体としてソー
スバッファの僅かな回数の読出しでデータを整合しうる
のでありそれ故メモリアクセス時間を改善するものであ
るからである。BIRは(多数のバイト)=(ターゲッ
トバッファの幅)+(ソースバッファの幅−1)を有す
る。BIRのこのサイズはソースバッファから再びデー
タを再読取りする必要を伴わずに余分の読取をもどすた
めに選ばれる。
前にそれらはメッセージ内に空バイトを残さないように
連続読取後にバッファインターフェースレジスタ(BI
R)122を通して送る。BIRはソースとターゲット
バッファ間で行われそしてそれはポインタを管理するた
めの論理プログラムに関連する。このポインタシステム
はいくつかのルールにより管理される。BIRの実行
は、本発明の方法および装置について基本的なものであ
り、その理由は空バイトを伴わずそして全体としてソー
スバッファの僅かな回数の読出しでデータを整合しうる
のでありそれ故メモリアクセス時間を改善するものであ
るからである。BIRは(多数のバイト)=(ターゲッ
トバッファの幅)+(ソースバッファの幅−1)を有す
る。BIRのこのサイズはソースバッファから再びデー
タを再読取りする必要を伴わずに余分の読取をもどすた
めに選ばれる。
【0027】データ整合およびそのユーザへの転送の機
構を示すために図2に示すものを例にとってみる。
構を示すために図2に示すものを例にとってみる。
【0028】一つのユーザが予定数のバイトをもつ共用
メモリからのデータメッセージを要求している。それ
故、第1ソースバッファのレジスタは送信されるべきメ
ッセージのスタート点を示すスタートポイントを示す。
メモリからのデータメッセージを要求している。それ
故、第1ソースバッファのレジスタは送信されるべきメ
ッセージのスタート点を示すスタートポイントを示す。
【0029】ソースバッファから読取られたデータはB
IRのはじめの8バイトが満たされるまであるいは要求
されたメッセージのエンドが受信されるまでまたはター
ゲットバッファが満たされるまで、BIRに転送され
る。このBIRポインタは常に満たされるべき第1バイ
トの位置を示す。
IRのはじめの8バイトが満たされるまであるいは要求
されたメッセージのエンドが受信されるまでまたはター
ゲットバッファが満たされるまで、BIRに転送され
る。このBIRポインタは常に満たされるべき第1バイ
トの位置を示す。
【0030】この例では第3回目の読取後にBIRのは
じめの10バイトが満たされる。次に、次のマシンサイ
クルにおいて、はじめの8バイトがターゲットバッファ
の現在のアドレスに従ってターゲットバッファ117に
書込まれそして2個の余分のバイトがBIRの2個の第
1バイトの位置にもどされる。この位置にはソースバッ
ファから読出されたワードの最後の4バイトに加えられ
る。
じめの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でそれはメッセージがそのユー
ザ用に処理されているかどうかを検査する。
ーチャートを示す。アダプタがステーションサービス1
19によりユーザに送るべきメッセージを有することに
気付くとき、そのアダプタはステップ302でDSIに
おいてデータムーブメント(DM)118に送信バース
ト要求(XBR)を送る。XBRはユーザIDおよび8
バイトの倍数であるべきバースト長を示す。DMはステ
ップ304でデータムーブメント制御RAM内の制御ブ
ロック(CB)を読み、その要求を出したユーザに対応
するソースバッファの位置をきめる(DSIおよびDM
をより詳細に示すヨーロッパ特許出願A365731を
参照)。ステップ306でそれはメッセージがそのユー
ザ用に処理されているかどうかを検査する。
【0033】そのユーザ用に処理中のメッセージがなけ
れば、そのバッファアドレス(BUFF−ADD)内の
新しいメッセージが処理されることになる。ステップ3
07でDMはデータメモリ内のユーザに対応するバッフ
ァ連鎖制御ブロック(BCCB)を読み、ステップ30
8でそれ自体の制御ブロック内にBUF−DISP,N
BUF−ADDおよびSTOP−BCNTをロードす
る。
れば、そのバッファアドレス(BUFF−ADD)内の
新しいメッセージが処理されることになる。ステップ3
07でDMはデータメモリ内のユーザに対応するバッフ
ァ連鎖制御ブロック(BCCB)を読み、ステップ30
8でそれ自体の制御ブロック内にBUF−DISP,N
BUF−ADDおよびSTOP−BCNTをロードす
る。
【0034】他の場合にはステップ310でこのデータ
ムーブメントは次の制御ブロックからロードされる。
ムーブメントは次の制御ブロックからロードされる。
【0035】− 読取および転送のための次のバイトの
アドレスを与えるためのバッファ変位(BUF−DIS
P); − 次のバッファアドレス(NBUF−ADD); − ストップバイトカウント(STOP−BCNT)。
アドレスを与えるためのバッファ変位(BUF−DIS
P); − 次のバッファアドレス(NBUF−ADD); − ストップバイトカウント(STOP−BCNT)。
【0036】ステップ312でデータムーブメントはソ
ースバッファ内のワード番号(WRD−NB)を計算し
ユーザに送られるワードの数(または読取回数)を知
る。次にステップ314において、ワーキングバッファ
変位が更新WB−DISP=BUF−DISP(0:
5)されてBUF−DISPのはじめの6ビットを考慮
してデータメモリ内のそのワードのアドレスをつくる。
ースバッファ内のワード番号(WRD−NB)を計算し
ユーザに送られるワードの数(または読取回数)を知
る。次にステップ314において、ワーキングバッファ
変位が更新WB−DISP=BUF−DISP(0:
5)されてBUF−DISPのはじめの6ビットを考慮
してデータメモリ内のそのワードのアドレスをつくる。
【0037】ステップ316において、バッファ第1ア
クセス(BUFIRSTAC)が1にセットされて、対
応するソースバッファがアダプタにより送られる同一の
XBRについて第1回目の読取りをされたことを示し、
そして読取られたバイト数を示すバーストバイトカウン
ト(BST−BCNT)がリセットされる。両レジスタ
はデータムーブメント送信内で管理され位置ぎめされ
る。
クセス(BUFIRSTAC)が1にセットされて、対
応するソースバッファがアダプタにより送られる同一の
XBRについて第1回目の読取りをされたことを示し、
そして読取られたバイト数を示すバーストバイトカウン
ト(BST−BCNT)がリセットされる。両レジスタ
はデータムーブメント送信内で管理され位置ぎめされ
る。
【0038】その後、後述するようにデータ処理がスタ
ートする。図4,図5はデータムーブメントのデータ処
理のフローチャートを示す。図4において、DMはステ
ップ400においてデータメモリのワーキングバッファ
WB−DISPのアドレスのソースバッファの第1の4
バイトワードを読取る。ステップ402においてDM
は、それがそのバッファ内の第1回目のアクセスかどう
かを検査する。
ートする。図4,図5はデータムーブメントのデータ処
理のフローチャートを示す。図4において、DMはステ
ップ400においてデータメモリのワーキングバッファ
WB−DISPのアドレスのソースバッファの第1の4
バイトワードを読取る。ステップ402においてDM
は、それがそのバッファ内の第1回目のアクセスかどう
かを検査する。
【0039】もしそれがバッファファーストアクセスB
UFIRSTAC=1であれば、ステップ406で、ソ
ースバッファVBCNT−Aに読まれるべき現在のワー
ドのはじめを示す3ビットからなるレジスタ有効バイト
カウントが連続する0と、0と3の間の数に対応するB
UF−DISP(6:7)にセットする。同様に、デー
タメモリバーストレジスタDSBR−PはBUF−DI
SP(6:7)に等しくセットされる。その理由は第1
ワード読取が第2、第3または第4バイト位置でスター
トするからである。
UFIRSTAC=1であれば、ステップ406で、ソ
ースバッファVBCNT−Aに読まれるべき現在のワー
ドのはじめを示す3ビットからなるレジスタ有効バイト
カウントが連続する0と、0と3の間の数に対応するB
UF−DISP(6:7)にセットする。同様に、デー
タメモリバーストレジスタDSBR−PはBUF−DI
SP(6:7)に等しくセットされる。その理由は第1
ワード読取が第2、第3または第4バイト位置でスター
トするからである。
【0040】そうでなければステップ404において、
DSBR−Pとソースバッファの現在のワードの第1バ
イトの位置を示す3ビットでなるレジスタ有効バイトカ
ウントVBCNT−Aが夫々0にセットされる。そして
この場合そのワードはそのソースバッファにおける第1
アクセスではないため必然的にはじめにスタートする。
DSBR−Pとソースバッファの現在のワードの第1バ
イトの位置を示す3ビットでなるレジスタ有効バイトカ
ウントVBCNT−Aが夫々0にセットされる。そして
この場合そのワードはそのソースバッファにおける第1
アクセスではないため必然的にはじめにスタートする。
【0041】ステップ408において、DMもWRD−
NB=1であるかどうか、すなわちソースバッファの最
後のワードであるかどうかをチェックする。そうであれ
ば、ステップ412でワードVBCNT−Bのエンドを
示す有効バイトが0とSTOP−BCNT(6:7)の
連鎖にセットされる。そうでなければ3ビットからなる
VBCNT−Bがステップ410で4にセットされる。
NB=1であるかどうか、すなわちソースバッファの最
後のワードであるかどうかをチェックする。そうであれ
ば、ステップ412でワードVBCNT−Bのエンドを
示す有効バイトが0とSTOP−BCNT(6:7)の
連鎖にセットされる。そうでなければ3ビットからなる
VBCNT−Bがステップ410で4にセットされる。
【0042】ステップ414でBST−INCの読取期
間中読取られたバイトの数を示すバースト増分がVBC
NT−B−VBCNT−Aにセットされる。オペレーシ
ョンBST−BCNTのはじめから読取られたバイトの
数を示すバーストバイトカウントがBSI−BCNT+
BST−INCにセットされる。そしてステップ416
でBST−LGTHがBURST−LGTHと比較され
る。BST−BCNT>BURST−LGTHであれ
ば、この機構は条件はずれとなる。これについては詳述
する。そしてこのBIRの内容はステップ420でター
ゲットバッファに移される。
間中読取られたバイトの数を示すバースト増分がVBC
NT−B−VBCNT−Aにセットされる。オペレーシ
ョンBST−BCNTのはじめから読取られたバイトの
数を示すバーストバイトカウントがBSI−BCNT+
BST−INCにセットされる。そしてステップ416
でBST−LGTHがBURST−LGTHと比較され
る。BST−BCNT>BURST−LGTHであれ
ば、この機構は条件はずれとなる。これについては詳述
する。そしてこのBIRの内容はステップ420でター
ゲットバッファに移される。
【0043】そうでなければステップ418でDMはバ
ッファインターフェースレジスタポインタがポイントす
るバイト(0から10まで)をチェックする。はじめの
8バイトが充填されれば、ステップ420でそのデータ
の動きがターゲットバッファ117にはじめの8バイト
を書込む。これと同時にDMはステップ422で余分な
バイトの数に対応するBIR−OV=BIR−PTR−
8を計算する。
ッファインターフェースレジスタポインタがポイントす
るバイト(0から10まで)をチェックする。はじめの
8バイトが充填されれば、ステップ420でそのデータ
の動きがターゲットバッファ117にはじめの8バイト
を書込む。これと同時にDMはステップ422で余分な
バイトの数に対応するBIR−OV=BIR−PTR−
8を計算する。
【0044】ステップ424では二つのケースが生じう
るからDMはBIR−OV=0であるかどうかを検査す
る。BIRが正確に8個のバイトを有する場合には、D
MはBIRにステップ428でソースバッファに読込ま
れたデータのすべてを書込む。そうでない場合にはDM
はBIRにBIR−OVに残されたバイトを考慮してソ
ースバッファに読込まれたデータを書込む。そしてステ
ップ430でDMは、BIR内のソースバッファから読
取られたバイトの位置を示すBIR−PTRを計算す
る。
るからDMはBIR−OV=0であるかどうかを検査す
る。BIRが正確に8個のバイトを有する場合には、D
MはBIRにステップ428でソースバッファに読込ま
れたデータのすべてを書込む。そうでない場合にはDM
はBIRにBIR−OVに残されたバイトを考慮してソ
ースバッファに読込まれたデータを書込む。そしてステ
ップ430でDMは、BIR内のソースバッファから読
取られたバイトの位置を示すBIR−PTRを計算す
る。
【0045】ステップ418にもどり、はじめの8バイ
トが充填されていなければ、DMはステップ432で、
ソースバッファから読取られたデータをBIRに書込み
そしてBIR−PTRがBIR内の次の位置をポイント
する。
トが充填されていなければ、DMはステップ432で、
ソースバッファから読取られたデータをBIRに書込み
そしてBIR−PTRがBIR内の次の位置をポイント
する。
【0046】このデータ処理は図5において続けられ
る。ステップ434でDMはそのレジスタのワード数W
RD−NBを増分する。ステップ436でWRD−NB
が0であって、それが最後のデータ読取りであるかどう
かをチェックしなければならない。そうでなければDM
はステップ438でWB−DISPを増分しそしてこの
プロセスはステップ400にもどる。
る。ステップ434でDMはそのレジスタのワード数W
RD−NBを増分する。ステップ436でWRD−NB
が0であって、それが最後のデータ読取りであるかどう
かをチェックしなければならない。そうでなければDM
はステップ438でWB−DISPを増分しそしてこの
プロセスはステップ400にもどる。
【0047】それ以外の場合にはDMはステップ440
でそれがメッセージのエンドである(NBA=FFF
F)かどうかを検査する。次のソースバッファに更に何
かデータがあれば、DMはステップ442でそのソース
バッファのレジスタ121を読取り、そして、バッファ
連鎖制御ブロックBCCBからBUF−DISP,ND
UF−ADDおよびSTOP−BCNTをロードする。
ステップ444でDMはWRD−NBを計算してソース
バッファの読取回数を知り、バッファの変位がワード変
位にWB−DISP=BUF−DISPおよびBUFI
RSTAC=1を保存する。その後、このプロセスはス
テップ400にもどる。
でそれがメッセージのエンドである(NBA=FFF
F)かどうかを検査する。次のソースバッファに更に何
かデータがあれば、DMはステップ442でそのソース
バッファのレジスタ121を読取り、そして、バッファ
連鎖制御ブロックBCCBからBUF−DISP,ND
UF−ADDおよびSTOP−BCNTをロードする。
ステップ444でDMはWRD−NBを計算してソース
バッファの読取回数を知り、バッファの変位がワード変
位にWB−DISP=BUF−DISPおよびBUFI
RSTAC=1を保存する。その後、このプロセスはス
テップ400にもどる。
【0048】それがメッセージのエンドである場合には
ステップ446でDMはレジスタバーストカウントBU
RST−CNTにステップ414で計算したBST−B
CNTを保存してそれをメッセージの宛先であるユーザ
に付加されたアダプタに与える。ステップ448でDM
は制御ブロックCBにおいて現在バッファアドレスCB
A=FFFF、次のバッファアドレスNBA=FFFF
およびメッセージインプロセスMIP=0をリセットす
る。
ステップ446でDMはレジスタバーストカウントBU
RST−CNTにステップ414で計算したBST−B
CNTを保存してそれをメッセージの宛先であるユーザ
に付加されたアダプタに与える。ステップ448でDM
は制御ブロックCBにおいて現在バッファアドレスCB
A=FFFF、次のバッファアドレスNBA=FFFF
およびメッセージインプロセスMIP=0をリセットす
る。
【0049】図6はBST−BCNT>BURST−L
GTHのときこのデータ処理機構が条件はずれとなる場
合を示す。この場合、DMはターゲットバッファに移送
しうるバイトのみを考慮しそして可変“ソースバッファ
変位”に、ターゲットバッファに移送されない読取られ
たワードの第1バイトの位置を保存する。
GTHのときこのデータ処理機構が条件はずれとなる場
合を示す。この場合、DMはターゲットバッファに移送
しうるバイトのみを考慮しそして可変“ソースバッファ
変位”に、ターゲットバッファに移送されない読取られ
たワードの第1バイトの位置を保存する。
【0050】ステップ500でDMはバーストカウント
BURST−CNTをBURST−LGTHにセット
し、BURST−CNTはアダプタがそのバーストにつ
いて受けるバイトの数を示す。ステップ502でDMは
VBCNT−BとBIR−PTRによりきまる関数に従
ってNEW−OFFSET(0:1)の両方のバイトの
値を計算する。この関数を次に詳細に述べる。
BURST−CNTをBURST−LGTHにセット
し、BURST−CNTはアダプタがそのバーストにつ
いて受けるバイトの数を示す。ステップ502でDMは
VBCNT−BとBIR−PTRによりきまる関数に従
ってNEW−OFFSET(0:1)の両方のバイトの
値を計算する。この関数を次に詳細に述べる。
【0051】
【表1】 * 有効バイトカウントVBCNT−Bが00であって
ソースバッファの第4バイトが読取られてBIRに転送
されたとすると、次の四つの状態が生じうる。
ソースバッファの第4バイトが読取られてBIRに転送
されたとすると、次の四つの状態が生じうる。
【0052】− BIR−PTRが00であって、それ
が第8バイトにポイントしている(はじめの8バイトが
充填されつつある)とすれば、new−offsetは
00にセットされる。
が第8バイトにポイントしている(はじめの8バイトが
充填されつつある)とすれば、new−offsetは
00にセットされる。
【0053】− BIR−PTRが01に等しければ、
new−offsetは11にセットされて最後の3バ
イトがBIRのはじめの8バイトのようにターゲットバ
ッファに転送されえない。
new−offsetは11にセットされて最後の3バ
イトがBIRのはじめの8バイトのようにターゲットバ
ッファに転送されえない。
【0054】− BIR−PTRが10であれば、ne
w−offsetは10にセットされて最後の2バイト
がターゲットバッファに転送しえないことを示す。
w−offsetは10にセットされて最後の2バイト
がターゲットバッファに転送しえないことを示す。
【0055】− BIR−PTRが11であれば、ne
w−offsetは01にセットされそして最後のバイ
トのみがターゲットバッファに転送しえない。 * 同様にVBCNT−Bが11で、ソースバッファの
第3バイトが読取られてBIRに転送されたことを意味
する場合には次の三つの状態が生じうる。
w−offsetは01にセットされそして最後のバイ
トのみがターゲットバッファに転送しえない。 * 同様にVBCNT−Bが11で、ソースバッファの
第3バイトが読取られてBIRに転送されたことを意味
する場合には次の三つの状態が生じうる。
【0056】− BIR−PTRが00または01また
は10であれば、new−offsetは夫々00,1
0または01にセットされる。
は10であれば、new−offsetは夫々00,1
0または01にセットされる。
【0057】− そしてBIR−PTRが11となるケ
ースは、それがすでに充填されたBIRのはじめの8バ
イトがターゲットバッファにまだ転送されていないこと
を意味するから、生じえない。 * この機構はVBCNT−Bが10および01である
場合に適用される(上記のアレイを参照のこと)。
ースは、それがすでに充填されたBIRのはじめの8バ
イトがターゲットバッファにまだ転送されていないこと
を意味するから、生じえない。 * この機構はVBCNT−Bが10および01である
場合に適用される(上記のアレイを参照のこと)。
【0058】new−offsetの値が計算されてし
まうと、図5のそれ以降のステップの処理が行われる。
まうと、図5のそれ以降のステップの処理が行われる。
【0059】ステップ504でDMはNEW−OFFS
ET=0でありソースバッファから読取られたバイトの
すべてがターゲットバッファに転送しうるようになって
いるかどうかをチェックする。それ故、転送しうるよう
になっていればBUF−DISP(0:5)がステップ
506でWB−DISP+1にセットされる。そうでな
ければステップ508でBUF−DISP(0:5)=
WB−DISPとなる。
ET=0でありソースバッファから読取られたバイトの
すべてがターゲットバッファに転送しうるようになって
いるかどうかをチェックする。それ故、転送しうるよう
になっていればBUF−DISP(0:5)がステップ
506でWB−DISP+1にセットされる。そうでな
ければステップ508でBUF−DISP(0:5)=
WB−DISPとなる。
【0060】ステップ510でNEW−OFFSETが
BUF−DISP(6:7)に保存されそしてそれがC
Bにロードされる。
BUF−DISP(6:7)に保存されそしてそれがC
Bにロードされる。
【0061】図7は本発明の機構の実施を示す。三つの
相、すなわち、レジスタの初期化、予プロセスおよびデ
ータ処理がある。 − 初期化相はアダプタがDMにユーザIDとレジスタ
BURST−LGTH600に記憶されるべきバースト
長さについての情報と共にXBRを送ったときにスター
トする。レジスタBST−CNT601とBIR−PT
R602が同時にリセットされ、そしてレジスタBUF
IRSTAC603が1にセットされる。レジスタST
OP−BCNT60)もそのバッファのBCCBによ
り、それが第1バーストまたは新しいバッファであれば
データメモリにロードされる。もしそれが中間のバッフ
ァであればそれはDM内の制御ブロックからロードされ
る。
相、すなわち、レジスタの初期化、予プロセスおよびデ
ータ処理がある。 − 初期化相はアダプタがDMにユーザIDとレジスタ
BURST−LGTH600に記憶されるべきバースト
長さについての情報と共にXBRを送ったときにスター
トする。レジスタBST−CNT601とBIR−PT
R602が同時にリセットされ、そしてレジスタBUF
IRSTAC603が1にセットされる。レジスタST
OP−BCNT60)もそのバッファのBCCBによ
り、それが第1バーストまたは新しいバッファであれば
データメモリにロードされる。もしそれが中間のバッフ
ァであればそれはDM内の制御ブロックからロードされ
る。
【0062】同様に、レジスタBUF−DISP605
はBCCBまたは制御ブロックからロードされる。はじ
めの5ビットに対応する最大桁ビットはWB−DISP
606にロードされ、このWB−DISPがそのバッフ
ァ内のワードを選択可能にする。
はBCCBまたは制御ブロックからロードされる。はじ
めの5ビットに対応する最大桁ビットはWB−DISP
606にロードされ、このWB−DISPがそのバッフ
ァ内のワードを選択可能にする。
【0063】− 予備プロセスはレジスタBUF−DI
SPとSTOP−BCNTによりバッファに読込まれる
ワードの数を計算しそしてその結果をレジスタWRD−
NB607にロードすることからなる。次にこのレジス
タはデータワードがデータメモリから読取られる毎に減
算されそしてWB−DISPは増分される。
SPとSTOP−BCNTによりバッファに読込まれる
ワードの数を計算しそしてその結果をレジスタWRD−
NB607にロードすることからなる。次にこのレジス
タはデータワードがデータメモリから読取られる毎に減
算されそしてWB−DISPは増分される。
【0064】− データ処理は次の四つの主ステップを
含む。 ステップ1. ワードポインタ管理プログラム608は
レジスタBUF−DISP,STOP−BCNT,BU
FIRSTACおよびWRD−NBからのデータで動作
し、データメモリ内の一つのワードの読取毎にポインタ
DSBR−PとBST−INCの値を計算する。
含む。 ステップ1. ワードポインタ管理プログラム608は
レジスタBUF−DISP,STOP−BCNT,BU
FIRSTACおよびWRD−NBからのデータで動作
し、データメモリ内の一つのワードの読取毎にポインタ
DSBR−PとBST−INCの値を計算する。
【0065】ステップ2. 有意のバイトの数に対応す
るレジスタDST−INCがレジスタBST−CNTの
値に付加され、そしてこの付加の値がBURST−LG
THと比較されてそれが条件をはずれたかどうかをチェ
ックする(図5参照)。
るレジスタDST−INCがレジスタBST−CNTの
値に付加され、そしてこの付加の値がBURST−LG
THと比較されてそれが条件をはずれたかどうかをチェ
ックする(図5参照)。
【0066】ステップ3. これと同時に、読取られた
有意のバイトがマルチプレクサA*0 610によりB
IRレジスタ612に書込まれ、そしてそれらはポイン
タDSBRとBIRポインタ管理プログラム609から
計算されるゲートによりポイントされる。これらオペレ
ーションのすべては次のようにして行われる。
有意のバイトがマルチプレクサA*0 610によりB
IRレジスタ612に書込まれ、そしてそれらはポイン
タDSBRとBIRポインタ管理プログラム609から
計算されるゲートによりポイントされる。これらオペレ
ーションのすべては次のようにして行われる。
【0067】a) BIRポインタ管理プログラム60
9の書込み。
9の書込み。
【0068】BIRポインタ<8の場合、DSBRポイ
ンタにより与えられる位置でスタートするワードの有意
バイトがBIRポインタによりポイントされる位置から
BIRに書込まれる。
ンタにより与えられる位置でスタートするワードの有意
バイトがBIRポインタによりポイントされる位置から
BIRに書込まれる。
【0069】BIRポンイタが8以上であれば、余分の
バイトが位置0からBIRに書込まれそしてDSBRポ
インタによりポイントされたソースバッファから読取ら
れたバイトが余分のバイトの最後の位置の後に書込まれ
る。
バイトが位置0からBIRに書込まれそしてDSBRポ
インタによりポイントされたソースバッファから読取ら
れたバイトが余分のバイトの最後の位置の後に書込まれ
る。
【0070】b) それと同時にBIRのはじめの8バ
イトが充填されるたびに、それらはDM内に配置される
フリップフロップバーストバッファ(FFBB)である
ターゲットバッファにコピーされそしてそれらはターゲ
ットバッファアドレスを増分する。FFBB117への
データの転送はBIRポインタ管理プログラムにより制
御される。
イトが充填されるたびに、それらはDM内に配置される
フリップフロップバーストバッファ(FFBB)である
ターゲットバッファにコピーされそしてそれらはターゲ
ットバッファアドレスを増分する。FFBB117への
データの転送はBIRポインタ管理プログラムにより制
御される。
【0071】バッファ内のデータのすべてが読取られた
とき、そのメッセージが次のソースバッファへと連続し
ておりそしてXBRがまだ充填されていないとすれば、
DMは制御ブロック内に含まれるNBA次バッファアド
レスに与えられるアドレスにより次のバッファの連鎖を
はずす。
とき、そのメッセージが次のソースバッファへと連続し
ておりそしてXBRがまだ充填されていないとすれば、
DMは制御ブロック内に含まれるNBA次バッファアド
レスに与えられるアドレスにより次のバッファの連鎖を
はずす。
【0072】これらオペレーションのすべてはXBRで
要求されるバイトの数に達するまで必要な回数だけくり
返される。そのメッセージ内の残りのバイトの数がこの
値より小さければ、メッセージの終了時にこのオペレー
ションは停止しそしてDMはソースバッファから読取ら
れたバイトの数を保存する。
要求されるバイトの数に達するまで必要な回数だけくり
返される。そのメッセージ内の残りのバイトの数がこの
値より小さければ、メッセージの終了時にこのオペレー
ションは停止しそしてDMはソースバッファから読取ら
れたバイトの数を保存する。
【0073】ステップ4. バーストプロセスのエンド
でDMはユーザの制御ブロックに次のバーストの処理に
必要な情報を保存する。これにより異なるユーザについ
てのバースト処理のインターリーブが可能となる。
で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に夫々接続する。
を示す。データメモリ内の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への転送を
制御しうる。
を介してBIRポインタ管理プログラム609により選
択される。ライン79はBIRのクロックゲートにコマ
ンドを送りそしてライン78はBIRのはじめの8バイ
ト612−0−612−7のFFBB117への転送を
制御しうる。
【0076】この記載部分はBIRの第3位置612−
2に関する整合ロジックについて生じる異なる可能性を
与える。
2に関する整合ロジックについて生じる異なる可能性を
与える。
【0077】
【表2】 BIRの第3位置において −X0は次の条件で書込まれる: DSBR−P=00 and BIR−PTR=0010 or BIR−PTR=1010 −X1は次の条件で書込まれる: DSBR−P=00 and BIR−PTR=0001 and BST−INC=4 or 3 or2 or BIR−PTR=1001 DSBR−P=01 and BIR−PTR=0010 or BIR−PTR=1010 −X2は次の条件で書込まれる: DSBR−P=00 and BIR−PTR=0000 and BST−INC=4 or 3 or BIR−PTR=1000 DSBR−P=01 and BIR−PTR=0001 and BST−INC=3 or 2 or BIR−PTR=1001 DSBR−P=10 and BIR−PTR=0010 or BIR−PTR=1010 −X3は次の条件で書込まれる: DSBR−P=01 and BIR−PTR=0000 and BST−INC=3 or BIR−PTR=1000 DSBR−P=10 and BIR−PTR=0001 and BST−INC=2 or BIR−PTR=1000 DSBR−P=11 and BIR−PTR=0010 or BIR−PTR=1010 そしてソースバッファ内に読込まれたバイトのすべてが
BIRに書込まれそしてBIR−PTR=1011とな
るとき最後の可能性が生じる。それ故、余分の3バイト
は8バイトがターゲットバッファに転送された後にBI
Rのはじめの3つの位置にコピーされる。位置612−
10のバイトはBIRの第3位置にコピーされることに
なる。
BIRに書込まれそしてBIR−PTR=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】データメモリ(112)をアクセスする方
法であって、この方法は、複数のソースバッファ(11
3)から読取られたメッセージのデータを整合させるた
めの方法であって、夫々のバッファがそれらバッファの
内容についての情報を含む1個のバッファ制御ブロック
に関連づけられており、それらのソースバッファが互い
に連鎖しそしてデータメモリ(112)内で2nバイト
ワードで組織化されており、さらにこの方法は、データ
ストアインターフェースDSI(111)の2m(mは
nより大)バイトワードで構成されるターゲットバッフ
ァ(117)へ前記整合されたデータを転送するための
方法であり、前記DSIは、前記データメモリと、複数
のユーザに付されているアダプタ(120)とを、イン
ターフェースしている、方法であり、下記段階を含むこ
とを特徴とする方法。 (a) ユーザ(122)要求によりそのユーザに関連
するソースバッファの、その中のメッセージの少くとも
はじめと終りおよび次に連鎖したソースバッファのアド
レスを示すバッファ制御ブロック(121)を読取る段
階; (b) ワードの第1バイト位置でスタートしそしてそ
のソースバッファのそのワードの最後のバイト位置で終
る必要のない、伝送すべきデータのはじめと終りをその
ソースバッファ内で検出する段階; (c) 上記ソースバッファから伝送されるバイトの数
を計算する段階; (d) 伝送されるバイトの数をユーザーにより要求さ
れたバイトの数と比較する段階; (e) ユーザにより要求されたバイトの数が転送され
るデータのバイトの数より小さいとき、転送されるバイ
トの数をユーザにより要求されるバイトの数にセットし
そして更にデータ整合と転送を処理する段階; (f) それ以外のとき、データがターゲットバッファ
の2mバイトワードのサイズと整合しまたはそれを越え
るまでそれらを整合させるために、そのデータを、ター
ゲットバッファの幅(2m)とソースバッファの幅(2
n)の和から1を減算したものに等しいサイズのバッフ
ァインターフェースレジスタ(612)にワードずつ転
送する段階; (g) 上記ターゲットバッファに上記バッファインタ
ーフェースレジスタのはじめの2mバイトワードを転送
する間に上記バッファインターフェースレジスタの第1
位置に余分のバイトをもどす段階; (h) 上記ソースバッファに記憶されたメッセージま
たはデータの終了までまたはユーザにより要求されたバ
イト数となるまで上記のデータの整合と転送をくり返す
段階。 - 【請求項2】下記段階を更に含むことを特徴とする請求
項1の方法: (i) 前記第1ソースバッファのバッファ制御ブロッ
ク内に示される次のソースバッファのバッファ制御ブロ
ック(121)を読取る段階; (j) そのメッセージの終了またはユーザにより要求
されたバイト数となるまで上記データ整合およびデータ
転送を処理する段階。 - 【請求項3】データメモリ(112)をアクセスし、複
数のソースバッファ(113)であって、夫々がそれら
バッファの内容についての情報を含む1個のバッファ制
御ブロックに関連づけられると共に、それらバッファが
互いに連鎖しそしてデータ記憶装置(112)内で2n
バイトワードで構成された上記複数のソースバッファか
ら読取られたメッセージのデータを整合させ、そしてそ
の整合されたメッセージのデータを、mをnより大とし
て上記データメモリおよびアダプタ(120)と共に複
数のユーザ(122)に付加されるデータメモリインタ
ーフェースDSI(111)の2mバイトワードで構成
されるターゲットバッファ(117)に転送するために
用いられる、下記要件を含むことを特徴とするメモリア
クセス制御装置: − 上記ソースバッファから読取られたバイトをバッフ
ァインターフェース手段(612)に書込みうるように
上記ソースバッファ(113)と上記バッファインター
フェース手段との間をインターフェースするマルチプレ
クサ手段(610); − ソースバッファ(113)から読取られたデータを
整合しそして各バイトのサイズをターゲットバッファ
(117)のサイズに適合させるためのバッファインタ
ーフェース手段(612)であって、ターゲットバッフ
ァの幅(2m)とソースバッファの幅(2n)の和から
1を減算したものに対応するバイト数を有するレジスタ
を含み、バイト位置(2m+1)から(2m+2n−
1)の余分なバイトを上記バッファインターフェース手
段(612)の、ソースバッファから読取られた次のバ
イトが付加されるはじめの部分にもどし、上記バッファ
インターフェース手段のはじめの2バイトをターゲット
バッファに転送しうるようになった上記バッファインタ
ーフェース手段(612); − 上記データメモリ(112)にアクセスし、上記ソ
ースバッファ(113)から読取られたメッセージのデ
ータを整合させそしてその整合したデータをターゲット
バッファ(117)に送る前に上記バッファインターフ
ェース手段(612)に転送するためのポインタ管理シ
ステム(608,609)。 - 【請求項4】前記ポインタ管理システム(608,60
9)が下記要件を含むことを特徴とする請求項3の装
置: − 前記ソースバッファから伝送すべきデータのはじめ
と終りを示す、現在読取られた上記ソースバッファのバ
イトに関連したポインタを管理する手段(608); − 書込まれる次のバイトの位置を示すと共に、前記バ
ッファインターフェース手段の少くともはじめの2mバ
イトが充填されたときにそれら2mバイトをターゲット
バッファ(117)に転送しそして、位置(2m+1)
から(2m+2n−1)までの余分のバイトをソースバ
ッファから読取られる次のバイトが付加されるその第1
位置にもどしうるようにする上記バッファインターフェ
ース手段(612)のバイトに関連したポインタを管理
するための手段(609)。 - 【請求項5】レジスタ(121)が前記夫々のソースバ
ッファに付加されて転送されるべきバイトの管理を可能
にするようになっており、上記レジスタはスタートポイ
ンタによりポイントされるソースバッファの第1の空で
ないバイトのアドレス、ストップポインタによりポイン
トされるソースバッファの最後の空でないバイトのアド
レスおよびソースバッファの読取動作を制御するために
データメモリインターフェースにより用いられる連続す
るメッセージを含む次のソースバッファのアドレスを記
憶するごとくなったことを特徴とする請求項3または4
のメモリアクセス制御装置。 - 【請求項6】レジスタ(602)が前記バッファインタ
ーフェース手段(612)に付加されてポインタにより
ポイントされる上記バッファインターフェース手段の第
1の空バイトのアドレスを示すことを特徴とする請求項
3乃至5の1に記載のメモリアクセス制御装置。 - 【請求項7】前記ターゲットバッファはフリップフロッ
プバッファであることを特徴とする請求項3乃至6の1
に記載のメモリアクセス制御装置。
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)
| 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)
| 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 |
-
1992
- 1992-05-26 EP EP92480074A patent/EP0571683A1/en not_active Withdrawn
-
1993
- 1993-04-12 JP JP8478293A patent/JPH07281950A/ja active Pending
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 |