JPH0462086B2 - - Google Patents

Info

Publication number
JPH0462086B2
JPH0462086B2 JP61115329A JP11532986A JPH0462086B2 JP H0462086 B2 JPH0462086 B2 JP H0462086B2 JP 61115329 A JP61115329 A JP 61115329A JP 11532986 A JP11532986 A JP 11532986A JP H0462086 B2 JPH0462086 B2 JP H0462086B2
Authority
JP
Japan
Prior art keywords
data
data buffer
circuit
address
output
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 - Lifetime
Application number
JP61115329A
Other languages
English (en)
Other versions
JPS62271128A (ja
Inventor
Takeshi Hirashima
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61115329A priority Critical patent/JPS62271128A/ja
Publication of JPS62271128A publication Critical patent/JPS62271128A/ja
Publication of JPH0462086B2 publication Critical patent/JPH0462086B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

【発明の詳細な説明】
〔産業上の利用分野〕 本発明は、データバツフア・アドレス制御回路
に関し、特に複数個のデータバツフアとそれらを
アドレツシングするための複数個のアドレスポイ
ンタを備え、プログラムの簡素化を計ることが可
能なデータバツフア・アドレス制御回路に関する
ものである。 〔従来の技術〕 コンピユータ・システムに外部記憶装置を接続
する場合、入出力系を制御するチヤネルと外部記
憶装置との間にデータ転送を制御するための制御
装置を介在させている。外部記憶装置として、例
えば、磁気デイスク装置を使用するときには、磁
気デイスク制御装置が接続される。 従来より、デイスク制御装置は、転送データを
一時的に貯え、ICメモリ等から構成されるデー
タバツフアを備えている。デイスク制御装置に内
蔵されるデータバツフアの個数は、通常1個であ
り、このデータバツフアをアドレツシングするた
めのアドレス・ポインタ(TIAP:Transfer
Input Address Pointer、およびTOAP:
Transfer Output Address Pointer)は、ハー
ドフエア的にもプログラム的にも入力用と出力用
と各々1個が使用されている。データバツフアの
個数が1個ですんだ理由は、データ転送速度に関
係があり、データがデータバツフアを通過するた
めに要する時間、すなわちデータバツフア入出力
データ処理速度が、従来のデータ転送速度を十分
に上回つていたからである。しかし、今後、装置
間のデータ転送速度がさらに高速化すると、現状
のままでは、データバツフア入出力データ処理速
度が要求されるデータ転送速度を下回るようにな
ることが予想される。 データバツフア入出力データ処理速度を高速化
するためには、次の2つの方法が考えられる。す
なわち、(a)データバツフアを構成するメモリ素子
に高速素子を用いる方法、(b)メモリ素子は従来の
ものを使用するが、データバツフア入出力データ
処理回路を複数個設けて、転送データを並列的に
処理する方法、である。 従来、アドレス制御方式に関するものとして
は、特開昭59−220855号、特開昭59−225466号、
および特開昭59−173868号各公報に記載された技
術があるが、これらの技術を用いてメモリ入出力
データ処理速度を高速化する場合、上記(a)の方法
により実現することが最も容易である。しかし、
この方法では当然、コストアツプを招くととも
に、高速化に制限が生じる。また、(b)の方法を用
いて、データバツフア入出力データ処理速度の高
速化を実現しようとすると、複数個のデータバツ
フアを設けるとともに、各データバツフアに対応
した個数の入力用アドレスポインタ(以下、
TIAPと記す)および出力用アドレスポインタ
(以下、TOAPと記す)と、さらにプログラムに
よるデータバツフアへのデータ書き込み時、また
はデータバツフアからのデータ読み出し時のデー
タバツフア・アドレツシング用として1個または
各データバツフアに対応した個数のプログラムア
ドレスポインタ(以下、PAPと記す)を設けた
データバツフア・アドレツシング制御回路が必要
となる。そして、このデータバツフア・アドレツ
シング制御回路の制御に関するプログラムを、ポ
インタが増加するごとに新しく作成する必要があ
り、プログラムの命令ステツプ数の増加と煩雑化
は免れない。 第2図は、従来のデイスク制御装置のデータバ
ツフア・アドレス制御回路のブロツク図である。 従来、デイスク制御装置のデータバツフアは、
第2図に示すように1個であり、このデータバツ
フア33をアドレツシングするためのアドレスポ
インタとしては、データ転送用のTIAP29と
TOAP30が各々1個ずつあり、プログラムに
よるデータバツフア33への書き込み時と、デー
タバツフア33からのデータ読み出し時のアドレ
ツシングを行うPAP31が1個ある。 第2図において、データ転送開始前にプログラ
ムにより、TIAP29にはデータバツフア33へ
の最初のデータが入力されるべきアドレス値を、
またTOAP30にはデータバツフア33から最
初のデータが出力されるべきアドレス値を、それ
ぞれセツトする命令を実行し、この命令実行時刻
に、ハードウエアはTIAP29とTOAP30に
各々の値をセツトする。 データ転送が開始されると、データバツフア3
3へのデータ入力時には、TIAP29の出力値が
セレクタ32で選択され、この出力値でデータバ
ツフア33をアドレツシングし、1回のデータ入
力動作が終了すると+1回路25でセレクタ32
の出力値に対して+1した値をセレクタ27を通
してTIAP29にセツトすることにより、TIAP
29の保持する値を更新する。また、データバツ
フア33からのデータ出力時には、TOAP30
の出力値がセレクタ32で選択され、この出力値
でデータバツフア33をアドレツシングし、1回
のデータ出力動作が終了すると+1回路25でセ
レクタ32の出力値に対して+1した値をセレク
タ27を通してTOAP30にセツトすることに
より、TOAP30の保持する値を更新する。こ
のようにして、データバツフア33はデータ入出
力動作の度ごとにシーケンシヤルにアドレツシン
グされる。 また、プログラムによりデータバツフア33へ
のデータ書き込み、またはデータバツフア33か
らのデータ読み出しを行う場合には、先ずプログ
ラムが書き込み/読み出しを行うデータバツフア
33上でのアドレス値をPAP31にセツトする
命令を実行し、この命令実行時刻にハードウエア
は、PAP31が保持すべき初期値としてプログ
ラムが指定した値をセレクタ28で選択し、
PAP31にセツトする。そして、プログラムに
よる書き込みまたは読み出し時には、PAP31
の出力がセレクタ32で選択され、この出力値で
データバツフア33がアドレツシングされる。 書き込み/読み出し動作が終了すると、セレク
タ32の出力は、もしこの書き込み/読み出し動
作が連続書き込み/読み出しモードでなければ、
セレクタ28を通つて再びPAP31にセツトさ
れ、連続書き込み/読み出しモードであれば、セ
レクタ32の出力は+1回路26により+1さ
れ、この+1された値がセレクタ28を通つて
PAP31にセツトされる。従つて、プログラム
がデータバツフア33上で連続した複数のアドレ
スに対してデータ書き込み/読み出しを行う場合
には、連続書き込み/読み出しモードを使用すれ
ば、プログラムはアドレスの初期値を一度セツト
するだけで、その後の書き込み/読み出し命令実
行時には、PAP31によりデータバツフア33
上のアドレスに対してシーケンシヤルに書き込
み/読み出しを行うことができる。 〔発明が解決しようとする問題点〕 単に第2図に示した従来の技術の延長として、
データバツフアを複数個使用して、データの並列
処理を考えただけでは、ハードウエアは勿論のこ
と、プログラム的にも各データバツフアに対応す
る個数分だけのアドレスポインタを管理する必要
があり、例えばデータバツフアがn個の場合、プ
ログラムはTIAP1〜nとTOAP1〜nの全てのア
ドレスポインタを個別に管理しなければならな
い。 また、PAPもn個用いる場合には、プログラ
ムはさらにこれらのn個のPAPについても、個
別に管理しなければならなくなる。 第2図に示すデータバツフア・アドレス制御回
路においては、データバツフアの個数に比例し
て、この回路の制御に関与するプログラムの命令
ステツプ数の増加と煩雑化を招くという問題があ
る。 本発明の目的は、このような問題を解決し、ア
ドレスポインタを複数個用いた場合でもプログラ
ム的には各々1個しかないものとして扱うことが
でき、命令ステツプ数の最小化、簡素化を計るこ
とが可能なデータバツフア・アドレス制御回路を
提供することにある。 〔問題点を解決するための手段〕 上記目的を達成するため、本発明のデータバツ
フア・アドレス制御回路は、他装置との間でデー
タ転送を行うため、並列使用により入出力処理を
行い、一時的に転送データを貯える複数個のデー
タバツフアと、各データバツフアにそれぞれ対応
した個数の入力および出力用アドレスポインタ
と、プログラムにより各データバツフアの書き込
み/読み出しを行う時にアドレツシングを行う共
通のアドレスポインタとを有し、各データバツフ
ア内の格納エリアはデータバツフアの個数だけ飛
び番地のアドレスを備え、該アドレスは各データ
バツフア相互間で排他的となるように定義され、
転送データの入出力時には、アドレスポインタが
各データバツフア上で定義されたアドレス値でデ
ータバツフアをアドレツシングし、プログラムに
よりデータバツフアをアドレツシングする時に
は、そのアドレスが定義されているデータバツフ
アを自動的に選択してデータの書き込み/読み出
しを行うことに特徴がある。 〔作用〕 本発明においては、複数個のデータバツフアを
用いて並列データ転送を行い、またハードウエア
として、各データバツフアに対応した個数の
TIAP、TOAPと、プログラムにより各データバ
ツフアの書き込み/読み出しを行うときにアドレ
ツシングを行う1個のPAPを設け、各データバ
ツフアは互いに排他的なアドレスを有し、プログ
ラム的にはTIAPとTOAPを1個として扱うこと
ができるようにする。すなわち、アドレスポイン
タであるTIAPとTOAPがハードウエアとして何
個存在しようとも、プログラム的には、PAPと
同様にTIAPとTOAPも各々1個ずつしか備えて
いないものとして扱えるようにし、データバツフ
アが何個で構成された制御装置であつても、プロ
グラムのステツプ数を最少かつ簡素にすることが
できる。 〔実施例〕 以下、本発明の実施例を、図面により詳細に説
明する。 第9図はコンピユータ・システムにおける一般
的な、チヤネルCHとデイスク制御装置DKC、お
よびデイスク駆動装置DKUとの間のデータ転送
路に関する結合状態を示した図である。 図中のデータ転送路は、チヤネルCHから送出
されるライト・データを転送する1バイト幅から
なる1本のバス(BUS OUT)と、チヤネルCH
へ入力されるリード・データを転送する1バイト
幅からなる1本のバス(BUS IN)の2本の単方
向バスからなつている。ここにおいてデイスク制
御装置DKCは従来よりデータバツフアを有して
いる。 データバツフアの使用目的は、一時的に転送デ
ータを貯えることにより、チヤネルCHとデイス
ク駆動装置DKUとの間の一時的なデータ転送速
度の差を吸収することにある。 このデータ転送速度の差はデイスクが回転体で
あつて、1定の間隔でデータ送出/要求を行うの
に対し、チヤネルCHはその処理能力の関係か
ら、中央処理装置CPU(図示せず)との間での転
送データの授受が一時的にできなくなることがあ
るために生じる。 従来のデイスク制御装置DKCはデータバツフ
アを1個しか有していなかつた。その理由は従来
のデータ転送の場合だと、データバツフアが1個
だけでもデータ転送速度とデータバツフア入出力
制御速度とを比較して後者の方がまさつていたこ
とによる。 しかし今後、データ転送速度は従来より更に高
速化すると予測される。 高速化の方法としては単位バス当りのデータ転
送速度を上げるかまたはバスの本数を増加させ同
時に複数バイトのデータ転送をさせることが考え
られる。 データ転送速度が高速化すると従来のデータバ
ツフア入出力制御速度も高速にする必要がある。 データバツフア入出力制御を高速化するために
は前述したようにデータバツフアを構成するメモ
リ素子に高速素子を用いる方法が、メモリ素子は
従来のものを使用してデータバツフアを複数個設
けて、転送データを並列的に処理する方法が考え
られる。本発明は後者、すなわちデータバツフア
を複数個設けて転送データを並列処理することに
より、データバツフア入出力制御を高速化する方
法をとつた場合のデータバツフアアドレス制御回
路に関するものである。 第3図および第4図は、従来の緊張技術として
得られるデータバツフアアドレス制御回路のブロ
ツク図を示したものである。すなわち、第2図に
示した従来のデイスク制御装置におけるデータバ
ツフア・アドレス制御回路を基にして、その延長
線上で、データバツフアをn個用いて並列データ
転送処理を行わせる場合には、データバツフア・
アドレス制御回路は第3図と第4図のようにな
る。 第3図において、データバツフアは、データバ
ツフア(1)43〜(n)54のn個設けられてお
り、またこれらをアドレツシングするための
TIAPとTOAPはプログワム的にもハードウエア
的にもTIAP(1)42〜(n)47とTOAP(1)43
〜(n)48の各々n個設けられている。データ
転送開始前に、TIAP42〜47とTOAP43〜
48には、プログラムによつて各々別個にアドレ
スの初期値として適切な値をセツトする命令が実
行される。従つて、1つのアドレスポインタにセ
ツトする命令が1ステツプかかるものとすると、
全てのアドレスポインタに初期値をセツトするた
めには、2nステツプかかつてしまうことになる。 また、第3図では、PAP44は1個であり、
このPAP44を用いてプログラムによるデータ
バツフアへのデータ書き込み、またはデータバツ
フアからのデータ読み出しのためのアドレツシン
グを行う。PAP44が1個であるため、データ
バツフア52〜54中の全てのアドレスは独立し
ていなければならない。何故ならば、重複するア
ドレスがあると、PAP44でのアドレツシング
がそれらの重複するアドレスの全てに対して行わ
れてしまうため、プログラムとしては、ある所定
の1つのアドレスのみに対してデータ書き込み/
読み出しを行おうとしても、ハードウエア的には
全ての重複するアドレスに対して書き込み/読み
出しを行つてしまうからである。従つて、PAP
44が1個の場合のデータバツフア52〜54に
対するアドレス割り付けとして、例えば、 0≦データバツフア(1)のアドレス範囲≦a a+1≦データバツフア(2)のアドレス範囲≦b b+1≦データバツフア(3)のアドレス範囲≦c 〓 〓 のように、アドレスが重複しないようにしなけれ
ばならない。 第3図において、データ転送時には、先頭デー
タD1から順次転送されるl個のデータD1,D2
D3…Do,Do+1,Do+2,…Dlは、n個のデータバ
ツフアを用いて並列に処理される。そして、 D1はデータバツフア(1)52 D2はデータバツフア(2)53 〓 〓 D1はデータバツフア(n)54 Do+1はデータバツフア(1)52 Do+2はデータバツフア(2)53 〓 〓 のように、nの周期で同じデータバツフアがアド
レツシングされて、そのデータに対す入出力バツ
フアとして使用される。 データ転送により、データバツフア(1)52〜
(n)54入力されたデータのうち、m番目に転
送されたデータをプログラムにより読み出したい
とき、またm番目に転送されたデータをプログラ
ムにより書き換えたいときには、先ずプログラム
でそのデータがどのデータバツフアに格納されて
いるかをmとnとの関係に基づいて計算し、かつ
求められたデータバツフアのどのアドレスに格納
されているかを、そのデータバツフアをアドレツ
シングしたTIAPの初期値とm、nの関係から求
めた上で、そのアドレスをPAP44にセツトし
た後、データバツフアからデータを読み出すか、
またはデータバツフアにデータを書き込まなけれ
ばならない。このことは、プログラムに多大な負
担をかけることになる。つまり全てのデータバツ
フアとアドレスポインタの管理をする必要があ
り、かつ命令ステツプ数と実行時間が増大するの
で、実用的ではない。 次に、第4図も同じく従来技術の延長線上で考
えた並列データ処理を行うデータバツフア・アド
レス制御回路の構成図である。第4図において第
3図との違いは、PAPを各データバツフアに対
応させてプログラム的にもハードウエア的にも
PAP(1)63〜(n)69を用意したことである。
これによりプログラムがあるデータバツフアにデ
ータを書き込むとき、またはデータバツフアから
データを読み出すときには、PAP(1)63〜(n)
69のうちから、そのデータバツフアに対応する
PAPを指定できるので、データバツフア(1)73
〜(n)75に対するアドレス割り付けとして、
例えば、 0≦データバツフア(1)73のアドレス範囲≦a 0≦データバツフア(2)74のアドレス範囲≦a 〓 〓 0≦データバツフア(n)75のアドレス範囲≦
a のように、アドレスが重複してもよい。 このように、各データバツフア間でのアドレス
の重複を許すことにすると、プログラム的には
TIAPとTOAPは各々1個しかないものとして扱
うことができ、データ転送開始前に行うプログラ
ムによるTIAPとTOAPの初期値設定値を与える
ために、各々1命令ずつ実行すれば、その後はハ
ードウエアが自動的にTIAP(1)61〜(n)67
の全て、またはTOAP(1)62〜(n)68の全
てに、プログラムが指定した値をセツトする。 従つて、第3図では、プログラムによるTIAP
(1)42〜(n)47とTOAP(1)43〜(n)4
8の初期値設定のために、命令が2nステツプか
かつていたのに対して、2ステツプで済ませるこ
とができる。 第4図において、データ転送時には、第3図で
述べたと同じように、先頭データD1から順次転
送されるl個のデータD1,D2,D3…Do,Do+1
Do+2,…Dlは、n個のデータバツフアを用いて
並列処理され、 D1はデータバツフア(1)73 D2はデータバツフア(2)74 〓 〓 Doはデータバツフア(n)75 Do+1はデータバツフア(1)73 Do+2はデータバツフア(2)74 〓 〓 のように、nの周期で同じデータバツフアがアド
レツシングされて、そのデータに対する入出力バ
ツフアとして使用される。ところが、この場合に
はプログラムによるデータバツフアへの書き込
み、またはデータバツフアからの読み出し時に、
連続書き込み/読み出しモードを使用できない。
その理由は、例えば、 D1はデータバツフア(1)73 D2はデータバツフア(2)74 〓 〓 というように入出力されるため、連続したデータ
をシーケンシヤルに書き込み/読み出ししようと
するためには、各データごとにアドレツシングに
使用するPAPを(1)63〜(n)69の中から選
択し直して、アドレス値をセツトした後でなけれ
ば書き込み/読み出し命令を実行できないからで
ある。 また、第3図に示したデータバツフア・アドレ
ス制御回路と同じように、第4図の制御回路にお
いても、m番目に転送されたデータをプログラム
により読み出したいとき、またはm番目に転送さ
れたデータをプログラムにより書き換えたいとき
には、先ずプログラムでそのデータがどのデータ
バツフアに格納されているかをmとnの関係から
計算し、かつ求められたデータバツフアのどのア
ドレスに格納されているかを、データ転送開始前
のTIAPの初期値とm、nの関係から求めた上
で、そのアドレスをPAP(1)63〜(n)69の
中から選択した適切なPAPにセツトした後、デ
ータバツフアからデータを読み出すか、またはデ
ータバツフアにデータを書き込まなければならな
い。 従つて、第4図に示したデータバツフア・アド
レス制御回路も、第3図に示した回路と同じよう
に、プログラムに多大な負担をかけるものであ
り、実用的ではない。 このように、第3図と第4図について考察する
と、従来技術の延長線上で考えた並列データ処理
を行うデータバツフア・アドレス制御回路におい
ては、その制御のためにプログラムが膨大化、か
つ煩雑化してしまうことがわかつた。 そこで、プログラムの膨大化、煩雑化をなくす
ため、本発明においては、第5図に示すデータバ
ツフア・アドレス制御回路を与えるものである。 第5図は、本発明の一実施例を示すデータバツ
フア・アドレス制御回路の構成図である。第5図
において、TIAPとTOAPは、第3図と第4図に
示したものと同じく、各データバツフアに対応し
てTIAP(1)87〜(n)92およびTOAP(1)88
〜(n)93が設けられる。また、PAPは、第
3図と同じように、PAP89の1個のみ設けら
れる。 第5図の回路で、第3図および第4図と大きく
異なる点は、第5図では+d1回路76〜+do回路
81と、+n回路77〜+n回路82が設けられ
ている点である。第5図に示す回路構成にするこ
とにより、プログラム的には、TIAP、TOAP、
およびPAPは各々1個しかないものとして扱う
ことができる。第5図の回路動作を説明する前
に、データバツフア(1)67〜(n)99に対する
アドレスの定義について、また+d1回路76につ
いて、それぞれ説明する。 第6図は、第5図のデータバツフアに対するア
ドレスの定義の説明図である。 第6図において、データバツフア(1)100〜
(n)102に対するアドレスを、次のように定
義する。 ☆データバツフア(1)100の持つアドレスは0,
n,2n,… ☆データバツフア(2)101の持つアドレスは1,
n+1,2n+1,… 〓 〓 ☆データバツフア(n)102の持つアドレスは
n−1,2n−1,… のように、各データバツフアはシーケンシヤルで
はなく、n個飛びのアドレスをとるものとする。 従つて、データバツフアがICメモリで構成さ
れている場合、たとえばデータバツフア(1)100
に、 1≦a1≦n−1 n+1≦a2≦2n−1 2n+1≦a3≦3n−1 〓 〓 のようなa1,a2,a3…というアドレスでアクセス
されるデータ格納エリアが物理的には存在する
が、データバツフア・アドレス制御回路が第5図
に示すデータバツフア(1)97に対してa1,a2
a3,…というアドレス値でアドレツシングしたと
しても無効とする。 同じことは、データバツフア(2)101〜(n)
102についてもいえる。このように、アドレス
制御回路がアクセスしても無効であるようなエリ
ア、つまりa1,a2,a3,…のような未使用のデー
タ格納エリアは、第6図中では斜線で示してあ
る。 次に、第5図における+d1回路76〜do回路8
1について詳述する。 dとは、distanceの頭文字をとつたものであ
り、プログラムが初期値として指定したアドレス
を有するデータバツフアから、ある+d回路が関
与するデータバツフアまでの距離を示す。例え
ば、 (イ) プログラムがTIAPに初期値“0”を指定し
た場合には、第6図に示すように、アドレス
“0”を有するデータバツフアはバツフア(1)1
00であるから、他のデータバツフアはデータ
バツフア(1)100を基準にして距離dが下記の
ように定義される。
【表】 (ロ) プログラムがTIAPに初期値“1”を指定し
た場合には、第6図に示すように、アドレス
“1”を有するデータバツフアはバツフア(2)1
01であるから、他のデータバツフアはバツフ
ア(2)101を基準にして距離dが下記のように
定義される。
【表】 (イ)(ロ)の例と同じようにして、プログラムが
TIAPに初期値として“0”,“1”以外の他の値
を指定した場合にも、各データバツフアについて
距離dが定義される。 また、プログラムがTOAPに初期値を指定し
た場合にも、上述と同じように距離dが定義され
る。 以上が距離dの定義であるが、このdと第5図
中の+d回路76〜do回路81の関係について次
に詳述する。 +d1回路76〜+do回路81は、下記の機能を
有している。 ☆+d1回路76: プログラムがTIAPまたはTOAPに与えた初
期値(アドレス)を有するデータバツフアを基
準にして、そこからデータバツフア(1)97まで
の距離を入力値に加算し、加算後の値を出力す
る。 ☆+d2回路58 プログラムがTIAPまたはTOAPに与えた初
期値(アドレス)を有するデータバツフアを基
準にして、そこからデータバツフア(2)98まで
の距離を入力値に加算し、加算後の値を出力す
る。 〓 〓 ☆+do回路81 プログラムがTIAPまたはTOAPに与えた初
期値(アドレス)を有するデータバツフアを基
準にして、そこからデータバツフア(n)99
までの距離を入力値に加算し、加算後の値を出
力する。 +d1回路76〜+do回路81をさらに詳細に示
すため、その中の1つである+d1回路76につい
て図示する。 第7図は、第5図における+d1回路の詳細構成
図である。 第7図に示すように、+d1回路76は、先頭入
出力データ使用データバツフア判別回路103
と、加算回路104と、ORゲート回路105と
からなる。先頭入出力データ使用データバツフア
判別回路103の機能は、プログラムがTIAPに
与えた初期値、つまりデータ転送時の先頭データ
入力アドレス、またはプログラムがTOAPに与
えた初期値、つまりデータ転送時の先頭データ出
力アドレスがどのデータバツフア上で定義されて
いるかを判別するための回路である。この回路へ
の入力情報としては、図示されているように、プ
ログラムがTIAPまたはTOAPに与えた初期値で
あつて、この初期値を回路で解読することによ
り、先頭データ入出力アドレスがどのデータバツ
フア上で定義されているかを判別し、下記の出力
信号 ☆先頭データ:データバツフア(1)を使用 ☆先頭データ:データバツフア(2)を使用 〓 〓 ☆先頭データ:データバツフア(n)を使用 のうち、いずれか1つの信号をオンさせるもので
ある。 加算回路104は、+1回路から+n回路まで
のn個の加算回路からなり、これらのうちどの加
算回路が選択されるかは、先頭入出力データ使用
データバツフア判別回路103の出力信号のオ
ン/オフの状態による。すなわち、先頭入出力デ
ータ使用データバツフア判別回路103におい
て、 ☆+1回路が選択されるのは、先頭データ:デー
タバツフアn使用信号がオンしているときであ
り、このとき+1回路への入力値に1を加算し
た値を出力する。この場合には、+2回路〜+
n回路は働かず、これらからの出力値は“0”
である。 ☆+2回路が選択されるのは、先頭データ:デー
タバツフア(n−1)使用信号がオンしている
ときであり、このとき+2回路への入力値に2
を加算した値を出力する。この場合には、+1
回路、+3回路〜+n回路は働かず、これらか
らの出力値は“0”である。 〓 〓 ☆+n回路が選択されるのは、先頭データ:デー
タバツフア2使用信号がオンしているときであ
り、このとき、+n回路への入力値にnを加算
した値を出力する。この場合には、+1回路〜
+(n−1)回路は働かず、これらからの出力
値は“0”である。 次に、ORゲート回路105では、+1回路〜
+n回の出力のうち、働いた回路、すなわち、先
頭入出力データ使用データバツフア判別回路10
3の出力によりゲートされた加算回路からの出力
を第5図に示すセレクタ83にゲートする。 以上、第6図によりデータバツフアに対するア
ドレスの定義、第7図により+d1回路について、
それぞれ説明した。第7図では、第5図中の+d1
回路76についてのみ説明したが、+d2回路79
〜+do回路81についても、同じ考え方に基づい
て回路を構成することができる。 次に、第5図の回路動作を詳述する。 第5図において、データ転送前に行うTIAP(1)
87〜(n)92の初期値設定時に、プログラム
はプログラム的に初期値を与える命令を、各々1
命令ずつ実行する。 先ず、プログラムがTIAPに初期値を与える命
令を実行すると、その後、プログラムがTOAP
に初期値を与える命令を実行するまでの間に、ハ
ードウエアは下記(1)〜(3)の事項を順に行う。 (1) プログラムがTIAPに対して指定した値を、
セレクタ83〜86を通してTIAP(1)87〜
(n)92にセツトする。 (2) TIAP(1)87〜(n)92の出力を、セレク
タ94〜96を通して+d1回路76〜+do回路
81に入力する。 (3) +d1回路76〜+do回路81において、入力
値に対し距離dを加算し、加算した出力をセレ
クタ83〜86を通してTIAP(1)87〜(n)
92にセツトする。 次に、プログラムがTOAPに初期値を与え
る命令を実行すると、ハードウエアは下記(4)〜
(6)の事項を順に、データ転送が開始されるまで
の間に行う。 (4) プログラムがTOAPに対して指定した値を、
セレクタ83〜86を通して、TOAP(1)88
〜(n)93にセツトする。 (5) TOAP(1)88〜(n)93の出力を、セレ
クタ94〜96を通して、+d1回路76〜do
路81に入力する。 (6) +d1回路76〜+do回路81において、入力
値に対して距離dを加算し、加算した出力をセ
レクタ83〜86を通してTOAP(1)88〜
(n)93にセツトする。 一般的には、(1)〜(3)と(4)〜(6)の手続きは、数
100nS程度の時間で終了する。 データ転送が開始されると、例えばデータバ
ツフア(1)97への入力データ処理時、ハードウ
エアは下記(7)〜(10)の手続きを順に行う。 (7) TIAP(1)87の出力を、セレクタ94を通し
て、この値でデータバツフア(1)97をアドレツ
シングする。 (8) セレクタ94の出力を、+n回路77に入力
する。 (9) +n回路77では、入力値に対してnを加算
し、加算した出力をセレクタ83を通して
TIAP(1)87に導く。 (10) 1つのデータに対する入力処理終了時に、セ
レクタ83の出力をTIAP(1)87にセツトす
る。 データバツフア(1)97からの出力データ処理
時には、ハードウエアは下記(11)〜(14)の
手続きを順に行う。 (11) TOAP(1)88の出力をセレクタ94を通
し、この値でデータバツフア(1)97をアドレツ
シングする。 (12) セレクタ94の出力を、+n回路77に入
力する。 (13) +n回77では、入力値に対してnを加算
し、加算した出力をセレクタ83を通して
TOAP(1)88に導く。 (14) 1つのデータに対する出力処理終了時に、
セレクタ83の出力をTOAP(1)88にセツト
する。 データバツフア(2)98〜(n)99の入出力
処理時にも、上記(7)〜(10)および(11)〜(14)
と同じような手続きがTIAP(2)90〜(n)9
2とTOAP(2)91〜(n)93に対して行わ
れる。 以上のようにして、第5図に示すデータバツ
フア・アドレツシング制御回路においては、
TIAP(1)87〜(n)92とTOAP(1)88〜
(n)93により、データバツフア(1)97〜
(n)99上でのアドレスは、第6図に示した
ように定義される。 第5図に示すデータバツフア・アドレス制御
回路において、プログラムがデータバツフアへ
のデータの書き込み、またはデータバツフアか
らのデータの読み出しを行う場合には、プログ
ラムはPAP89に書き込み、または読み出し
を行うアドレス値を与える命令を実行すると、
ハードウエアはプログラムが指定した値をセレ
クタ84を通してPAP89にセツトする。 次に、プログラムが書き込み/読み出し命令
を実行すると、ハードウエアは、PAP89の
出力をセレクタ94〜96を通してデータバツ
フア(1)97〜(n)99をアドレツシングさせ
る。 この場合、PAP89の保持するアドレス値
が定義されていないデータバツフアに対して
も、アドレツシングされるが、これは無意味で
ある。従つて、もし書き込み時であれば、その
アドレスが定義されていないデータバツフアに
対しては、書き込みを指示するライトイネーブ
ル信号(図示省略)をオンさせる必要はない
し、また仮にオンさせたとしても、もともと定
義されていないアドレス(第6図中の斜線部
分)に書き込まれるわけであつて、この定義さ
れていないアドレスから読み出したデータをプ
ログラムが利用することは決してないので、何
等不都合はない。 もし、読み出し時であれば、PAP89で指
定されたアドレスが定義されていないデータバ
ツフアも含めて、とりあえずデータバツフア(1)
97〜(n)99の各データバツフアからデー
タを読み出す。 これら読み出されたデータのうち、第8図に
示すセレクタにより、指定されたアドレスが定
義されているデータバツフアからのデータを選
択するようにする。 第8図は、第5図の各データバツフアから
PAP89によりアドレツシングされて読み出
されたデータのうち、プログラムに参照させる
べきデータを選択する回路の構成図である。第
8図において、データバツフア(1)106〜
(n)108から読み出されたデータは、セレ
クタ110の入力される。これら入力されたデ
ータのうち、どのデータがセレクタ110から
出力されるかは、PAP109の出力値により
決まる。すなわち、PAP109の出力値をセ
レクタ110の入力データ選択条件として、
PAP109が保持するアドレスが定義されて
いるデータバツフアからのデータを選択し、こ
のデータをプログラムに参照させるようにすれ
ばよい。 第1図は、本発明によるデータバツフア・ア
ドレス制御回路を用いたデータ転送回路を例を
示すブロツク図である。 第1図では、データバツフアは2個(12と
23)に設けられ、2つのバス(Bus1,2)上
のデータに対して並列入出力処理を行う。 ハードウエアとしては、(a)データバツフア(1)
12用のアドレスポインタとして、TIAP7と
TOAP8、(b)データバツフア(2)23用のアド
レスポインタとして、TIAP17とTOAP1
8、(c)データバツフア(1)12とデータバツフア
(2)23に共通なアドレスポインタとして、
PAP9が、それぞれ設けられているが、プロ
グラム的には、PAPと同様TIAPとTOAPも、
各々1個しか設けられていないものとして扱う
ことができる。 バスBus1のデータは、データバツフア(1)12
で入出力処理され、バスBus2のデータはデー
タバツフア(2)23で入出力処理される。 第1図と第9図を関連させて説明すると、ラ
イトデータ転送時にはチヤネルCHから送出さ
れたライトデータがデイスク制御装置DKC内
のデータバツフア(1)12とデータバツフア(2)2
3へ、セレクタ11とセレクタ22を通つて入
力され、そののち出力されてレジスタ13とレ
ジスタ24を経てデイスク駆動装置DKUへ送
られる。 リードデータ転送時には、デイスク駆動装置
DKUから送出されたリードデータがデイスク
制御装置内のデータバツフア(1)12とデータバ
ツフア(2)23へ、セレクタ11とセレクタ22
を通つて入力され、そのうち出力されてレジス
タ13とレジスタ24を経てチヤネルCHへ送
られる。 データバツフア(1)12上では、偶数アドレス
のみが定義され、データバツフア(2)23上では
奇数アドレスのみが定義されるものとする。 データ転送開始前に、プログラムはTIAPと
TOAPに初期値を与える命令を実行する。 プログラムがTIAPに初期値を与える命令を
実行すると、ハードウエアは下記(15)〜
(18)の手続きを行う。 (15) プログラムがTIAPに対して指定した値を、
セレクタ4と16を通して、TIAP7とTIAP
17にセツトする。 (16) TIAP7の出力をセレクタ10を通して+
1回路1に入力し、TIAP17の出力をセレク
タ21を通して+1回路14に入力する。 (17) +1回路1と+1回路14において、各々
の入力値に対して1を加算し、加算した出力を
各々セレクタ4と16を通して、TIAP7と
TIAP17に導く。これらの+1回路は、第5
図に示した+d回路に相当する。 (18) もし、プログラムが奇数値をTIAPの初期
値として指定した場合には、+1回路1の出力
値をTIAP7に取り込むのみで、+1回路14
の出力値をTIAP17に取り込むことはしな
い。 もし、プログラムが偶数値をTIAPの初期値
として指定した場合には、+1回路14の出力
値をTIAP17に取り込むのみで、+1回路1
の出力値をTIAP7に取り込むことはしない。 プログラムがTOAPに初期値を与える命令
を実行すると、ハードウエアは下記(19)〜
(22)の手続きを行う。 (19) プログラムがTOAPに対して指定した値
を、セレクタ4と16を通してTOAP8と1
8にセツトする。 (20) TOAP8の出力値を、セレクタ10を通し
て+1回路1に入力し、TOAP18の出力を
セレクタ21を通して+1回路14に入力す
る。 (21) +1回路1と14においては、各々の入力
値に対して1を加算し、加算した出力を各々セ
レクタ4と16を通してTOAP8と18に導
く。 (22) もし、プログラムが奇数値をTOAPの初期
値として指定した場合には、+1回路1の出力
値をTOAP8に取り込むのみで、+1回路14
の出力値をTOAP18に取り込むことはしな
い。 もし、プログラムが偶数値をTOAPの初期
値として指定した場合には、+1回路14の出
力値をTOAP17に取り込むのみで、+1回路
1の出力値をTOAP7に取り込むことはしな
い。 以上、(15)〜(22)の手続き終了後に、デ
ータ転送が開始される。 他論理部から送られてきたBus1上のデータ
とBus2上のデータ、各々セレクタ11と22
を通つて、データバツフア12と23に入力さ
れ、一時的に保持された後、レジスタ13と2
4を通つて他論理部に送出される。 ここで、1回のデータ転送で先頭データD1
から始めて、D1,D2,D3,D4,D5,D6,…Dl
という順番でl個のデータが入力したとき、
D1,D3,D5,…という奇数番目のデータは、
Bus1の経路で転送され、D2,D4,D6,…とい
う偶数番目のデータは、Bus2の経路で転送さ
れるものとする。 データバツフア12への転送データの入力時
には、下記(23)〜(25)の手続きが行われ
る。 (23) TIAP7の出力がセレクタ10で選択され、
この値でデータバツフア12をアドレツシング
し、かつこの値は+2回路2に入力される。こ
の+2回路2は、第5図に示した+n回路に相
当する。 (24) +2回路2では、入力値に2を加算し、こ
の加算した値をセレクタ4を通してTIAP7に
導く。 (25) 1つのデータに対する入力処理終了後、セ
レクタ4の出力をTIAP7にセツトする。従つ
て、TIAP7は1つのデータに対する入力処理
ごとに+2ずつ更新される。 データバツフア23への転送データ入力時に
は、下記(26)〜(28)の手続きが行われる。 (26) TIAP17の出力がセレクタ21で選択さ
れ、この値でデータバツフア23をアドレツシ
ングし、かつこの値は+2回路15に入力され
る。この+2回路は、第5図に示した+n回路
に相当する。 (27) +2回路15では、入力値に2を加算し、
加算した値をセレクタ16を通してTIAP17
に導く。 (28) 1つのデータに対する入力処理終了後、セ
レクタ16の出力をTIAP17にセツトする。
従つて、TIAP17は、1つのデータに対する
入力処理ごとに+2ずつ更新される。 データバツフア12からの転送データ出力時
には、下記(29)〜(31)の手続きが行われ
る。 (29) TOAP8の出力がセレクタ10で選択さ
れ、この値でデータバツフア12をアドレツシ
ングし、かつこの値は+2回路2に入力され
る。 (30) +2回路2では、入力値に2を加算し、加
算した値をセレクタ4を通してTOAP8に導
く。 (31) 1つのデータに対する出力処理終了後、セ
レクタ4の出力をTOAP8にセツトする。従
つて、TOAP8は、1つのデータに対する出
力処理ごとに+2ずつ更新される。 データバツフア23からの転送データ出力時
には、下記(32)〜(34)の手続きが行われ
る。 (32) TOAP18の出力がセレクタ21で選択さ
れ、この値でデータバツフア23をアドレツシ
ングし、かつこの値は+2回路15に入力され
る。 (33) +2回路15では、入力値に2を加算し、
この加算した値をセレクタ16を通して
TOAP18に導く。 (34) 1つのデータに対する出力処理終了後、セ
レクタ16の出力をTOAP18にセツトする。
従つて、TOAP18は、1つのデータに対す
る出力処理ごとに+2ずつ更新される。 以上が、データ転送時の動作である。 上記データ転送で、プログラムがTIAPに初
期値aを与えていたならば、データD1,D2
D3,D4,D5,D6,…Dlは、順にアドレスa,
a+1,a+2,…に入力される。例えば、プ
ログラムがTIAPに与えた初期値が“0”であ
るならば、データバツフアに表1のように転送
データが入力される。
〔発明の効果〕
以上説明したように、本発明によれば、データ
バツフア・アドレス制御回路により、アドレスポ
インタであるTIAP、TOAPおよびPAPがハード
ウエアとして複数個設けられても、プログラム的
にはそれぞれ1個ずつしかないものとして扱うこ
とができるので、回路を制御するプログラムの命
令ステツプ数の最少化と簡素化を計ることが可能
である。そして、データバツフアが何個で構成さ
れていても、最少のステツプ数を持つプログラム
により制御可能であり、データ転送の高速処理が
可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すデータ転送回
路のブロツク図、第2図は従来のデイスク制御装
置内のデータバツフア・アドレス制御回路の構成
図、第3図と第4図は従来技術の延長として考え
られた並列データ処理を行うデータバツフア・ア
ドレス制御回路の構成図、第5図は本発明の基本
的なデータバツフア・アドレス制御回路の構成
図、第6図は第5図における複数個のデータバツ
フアのアドレス配置図、第7図は第5図の+d1
路の詳細構成図、第8図は第5図の複数個のバツ
フアに共通の読み出し回路の図、第9図はデータ
バツフア・アドレス制御回路を持つデイスク制御
装置のコンピユータ・システム中における物理的
位置付けを示した図である。 1,3,14,25,26,34,35,3
6,37,55,56,57,78:+1回路、
2,15:+2回路、4,5,10,11,1
6,19,21,22,27,28,32,3
8,39,40,41,49,50,51,5
8,59,60,70,71,72,83,8
4,85,86,94,95,96,110:セ
レクタ、6,13,20,24:レジスタ、7,
17,29,42,45,47,61,64,6
7,87,90,92:TIAP、8,18,3
0,43,46,48,62,65,68,8
8,91,93:TOAP、9,31,44,6
3,66,69,89,109:PAP、12,
23,33,52,53,54,73,74,7
5,97,98,99,100,101,10
2,106,107,108:データバツフア、
76,79,81:+d回路、77,80,8
2:+n回路、103:先頭入出力データ使用デ
ータバツフア判別回路、104:加算回路、10
5:ORゲート回路。

Claims (1)

    【特許請求の範囲】
  1. 1 他装置との間でのデータ転送時、一時的に転
    送データを貯える複数個のデータバツフアを並列
    使用して入出力処理を行い、各データバツフアに
    それぞれ対応した個数の入力および出力用アドレ
    スポインタと、プログラムにより各データバツフ
    アの書き込み/読み出しを行う時にアドレツシン
    グを行う1個のアドレスポインタとを有し、各デ
    ータバツフア内の格納エリアはデータバツフアの
    個数だけ飛び番地のアドレスを備え、かつ該アド
    レスは各データバツフア相互間で排他的となるよ
    うに定義され、転送データの入出力時には、各ア
    ドレスポインタが各データバツフア上で定義され
    たアドレス値で該データバツフアをアドレツシン
    グし、プログラムによりアドレツシングする時に
    は該アドレスが定義されているデータバツフアを
    自動的に選択してデータの書き込み/読み出しを
    行うことを特徴とするデータバツフア・アドレス
    制御回路。
JP61115329A 1986-05-20 1986-05-20 デ−タバツフア・アドレス制御回路 Granted JPS62271128A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61115329A JPS62271128A (ja) 1986-05-20 1986-05-20 デ−タバツフア・アドレス制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61115329A JPS62271128A (ja) 1986-05-20 1986-05-20 デ−タバツフア・アドレス制御回路

Publications (2)

Publication Number Publication Date
JPS62271128A JPS62271128A (ja) 1987-11-25
JPH0462086B2 true JPH0462086B2 (ja) 1992-10-05

Family

ID=14659865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61115329A Granted JPS62271128A (ja) 1986-05-20 1986-05-20 デ−タバツフア・アドレス制御回路

Country Status (1)

Country Link
JP (1) JPS62271128A (ja)

Also Published As

Publication number Publication date
JPS62271128A (ja) 1987-11-25

Similar Documents

Publication Publication Date Title
US4680730A (en) Storage control apparatus
EP0598541A1 (en) Programmable external storage control apparatus
JPH0363096B2 (ja)
KR920008448B1 (ko) 데이터 프로세서
JPH0412503B2 (ja)
EP0055623B1 (en) Direct memory-access mode for a high-speed memory system
JPH0462086B2 (ja)
JPH01258163A (ja) ダイレクトメモリアクセス制御装置
JP3151832B2 (ja) Dmaコントローラ
JPS6240736B2 (ja)
JPS6031647A (ja) デ−タ処理装置
JPH01273132A (ja) マイクロプロセッサ
JPS60142450A (ja) 記憶システム
JPS6391756A (ja) 記憶装置の部分書き込み命令処理方式
JPH0337216B2 (ja)
JP2553630B2 (ja) データ処理装置
JPS6118032A (ja) 外部メモリ制御装置
JPH0690711B2 (ja) メモリアクセス制御方式
JPH0279149A (ja) 記録装置のデータ転送方式
JPH0277839A (ja) データ処理装置
JPH0412491B2 (ja)
JPH0136198B2 (ja)
JPH0424733B2 (ja)
JPS61131152A (ja) Dmaバツフア制御方式
JPH01250163A (ja) バス制御装置