JP3558559B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3558559B2 JP3558559B2 JP23297599A JP23297599A JP3558559B2 JP 3558559 B2 JP3558559 B2 JP 3558559B2 JP 23297599 A JP23297599 A JP 23297599A JP 23297599 A JP23297599 A JP 23297599A JP 3558559 B2 JP3558559 B2 JP 3558559B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- data transfer
- input
- data
- control means
- 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
Images
Description
【発明の属する技術分野】
この発明は、情報処理装置に関し、詳しくは、中央処理装置(CPU)と、メモリと、複数個の入出力手段と、バスと、複数個のダイレクト・メモリ・アクセス・コントローラ(DMAC)とを備え、メモリと各入出力手段との間や入出力手段相互間でのデータ転送その他の処理を行う情報処理装置に関する。
【0002】
【従来の技術】
図6は、第1の従来例である情報処理装置1及びそれに接続される外部装置2〜4の電気的構成例を示すブロック図である。
この例の情報処理装置1は、中央処理装置(CPU)5と、アービタ6と、メモリ7と、ダイレクト・メモリ・アクセス・コントローラ(DMAC)8〜11と、入出力手段12〜15と、バス16とが同一チップ上に形成された1チップ・マイクロ・コンピュータによって構成されている。CPU5と、メモリ7と、DMAC8〜11と、入出力手段12〜15とは、バス16を介して互いに接続されている。外部装置2〜4としては、例えば、フロッピー・ディスク・ドライバ(FDD)、ハード・ディスク・ドライバ(HDD)等の外部記憶装置、キーボード、マウス、タッチペン等の入力手段、ディスプレイ、プリンタ等の出力手段、モデム等の通信手段がある。また、入出力手段12〜15としては、例えば、A/Dコンバータ、シリアル・インターフェイス、パラレル・インターフェイス等がある。
【0003】
アービタ6は、DMAC8〜11からバス16の使用権の獲得要求を示す要求信号DREQ0〜DREQ3のいずれかが供給されると、CPU5へ要求信号BREQを供給すると共に、各DMAC8〜11に予め付与された優先順位、要求信号DREQ0〜DREQ3の供給の遅速や供給状態等に基づいて、DMAC8〜11のいずれにCPU5によって許可されたバス16の使用権を渡すかを決定し、CPU5からバス16の使用権を許可することを示す許可信号BGNTが供給されると、バス16の使用権を渡すと決定されたDMAC8〜11のいずれかにバス16の使用権獲得が許可されたことを示す許可信号DGNT0〜DGNT3を供給する。
DMAC8〜11は、入出力手段12〜15と一対一に対応しており、対応する入出力手段12〜15からバス16の使用権の獲得要求を示す要求信号REQ0〜REQ3が供給されることにより、アービタ6に対し要求信号REQ0〜REQ3に対応した要求信号DREQ0〜DREQ3を供給すると共に、アービタ6からバス16の使用権獲得が許可されたことを示す許可信号DGNT0〜DGNT3が供給される。バス16の使用権を獲得したDMAC8〜11のいずれかにおいては、対応した入出力手段とメモリ7又は他の入出力手段との間におけるバス16を用いたデータ転送が実行される。
【0004】
このような構成によれば、CPU5がプログラムを実行中であっても、DMAC8〜11からアービタ6へ要求信号DREQ0〜DREQ3を供給することにより、アービタ6が各DMAC8〜11の優先順位や、要求信号DREQ0〜DREQ3の供給の遅速や供給状態等に基づいて、DMAC8〜11のいずれかにバス16の使用権を渡すので、CPU5とDMAC8〜11が並行してそれぞれバス16を有効に使用でき、CPU5の稼働率が上がり全体のスループットが向上する。
【0005】
また、図7は、特開平8−202648号公報に開示された第2の従来例である情報処理装置21及びそれに接続される外部装置2〜4の電気的構成例を示すブロック図である。この図において、図6の各部に対応する部分には同一の符号を付け、その説明を省略する。図7に示す情報処理装置21においては、図6に示すアービタ6、DMAC8〜11及び入出力手段12〜15に代えて、DMAC22及び入出力手段23〜26が新たに設けられている。
この例の情報処理装置21は、CPU5と、メモリ7と、DMAC22と、入出力手段23〜26と、バス16とが同一チップ上に形成された1チップ・マイクロ・コンピュータによって構成されている。CPU5と、メモリ7と、DMAC22と、入出力手段23〜26とは、バス16を介して互いに接続されている。メモリ7には、入出力手段の個数と同数のチャネル毎に、データの転送元である入出力手段のメモリ・マップ上の該当するアドレスを示す転送元アドレス、データの転送先である入出力手段のメモリ・マップ上の該当するアドレスを示す転送先アドレス及びデータの転送回数がそれぞれ記憶される管理テーブルが設けられている。一方、DMAC22には、1チャネル分の転送元アドレス、転送先アドレス及び転送回数が記憶されるレジスタ群が設けられている。
【0006】
DMAC22は、入出力手段23〜26からのバス16の使用権の獲得要求を示す要求信号DREQ0〜DREQ3のいずれかが入力されると、各入出力手段23〜26に対応したチャネルに予め付与された優先順位等に基づいてチャネルを選択し、選択したチャネルの転送元アドレス、転送先アドレス及び転送回数をメモリ7の管理テーブルから読み出して内部のレジスタ群に記憶した後、CPU5へ要求信号BREQを供給し、CPU5から許可信号BACKが供給されると、選択したチャネルに対応した入出力手段23〜26へバス16の使用権獲得が許可されたことを示す許可信号DACK0〜DACK3のいずれかを供給する。DMAC22においては、バス16の使用権を獲得した入出力手段とメモリ7又は他の入出力手段との間におけるバス16を用いたデータ転送が実行される。
このような構成によれば、第1の従来例に比べて回路規模が小さくなる。
【0007】
【発明が解決しようとする課題】
ところで、上記した第1の従来例の情報処理装置においては、例えば、電話の電子交換機等のように、入出力手段を64個ないし128個と多数設けなければならない場合には、DMACの個数もそれに対応して多数設けなければならず、回路規模が大きくなってしまうという欠点があった。しかも、このように多数個のDMACを設けたとしても、バス16にデータ転送速度上の限界があるし、実際には、すべての入出力手段が同時に要求信号を出力することはなく、せいぜい数個の入出力手段が同時に要求信号を出力するに過ぎないから、回路が有効利用されず、コスト・パフォーマンスが良くない。
一方、上記した第2の従来例の情報処理装置においては、入出力手段を多数設ける場合でも、DMACは1個設ければ良いので、上記不都合は生じないが、1度に1チャネル分のデータ転送しか行えない。したがって、数個の入出力手段が同時にかつ頻繁に要求信号を出力した場合には、チャネルの選択、選択したチャネルの転送元アドレス等の情報のメモリ7からの読み出し及びDMAC22の内部のレジスタ群への記憶等、実際のデータ転送以外に行わなければならない処理が増加してしまい、その処理にバスが使用されてしまう。その結果、CPU5のバス利用を妨害するため、CPU5の稼働率が低く、全体のスループットが低下する。また、DMAC22が行っている予め優先順位が設定された複数個のチャネルについて、チャネルの選択、選択したチャネルの転送元アドレス等の情報のメモリ7からの読み出し及びDMAC22の内部のレジスタ群への記憶等の処理は、処理が複雑で誤動作が発生しやすいため設計時の検証に時間がかかり、しかも、チャネル数が異なればすべてアルゴリズム等を構築し直さなければならないので、ユーザの要望に応えるためにはチャネル数毎に情報処理装置を開発しなければならず、開発コスト及び開発期間がかかってしまう。
【0008】
この発明は、上述の事情に鑑みてなされたもので、安価かつ汎用性の高い構成で、CPUの稼働率を上昇させ、装置全体のスループットを向上させることができる情報処理装置を提供することを目的としている。
【0009】
【課題を解決するための手段】
上記課題を解決するために、請求項1記載の発明に係る情報処理装置は、バスと、それぞれが前記バスに接続されると共にデータ入出力のためのデータ入出力要求信号を発生するn個(nは2以上の整数)の入出力手段と、装置各部の制御を司る制御手段と、それぞれがデータ転送要求信号に応答して前記バスの使用権を獲得して前記入出力手段におけるデータ入出力を制御するm個(mは整数で、2≦m<nを満たす)のデータ転送制御手段と、前記n個の入出力手段と前記m個のデータ転送制御手段との間に設けられた切換手段と、前記各データ転送制御手段の使用状況を管理する使用状況管理手段とを備え、前記制御手段は、前記切換手段が、前記n個の入出力手段の中のm個の入出力手段からの前記データ入出力要求信号を前記m個のデータ転送制御手段へ前記データ転送要求信号としてそれぞれ出力し、前記m個の入出力手段以外の新たな入出力手段が前記データ入出力要求信号を発生した場合は、前記使用状況管理手段によって管理される前記各データ転送制御手段の使用状況を参照して、最も使用されていない前記データ転送制御手段への前記データ転送要求信号として、それまで使用していた前記入出力手段からの前記データ入出力要求信号から前記新たな入出力手段からの前記データ入出力要求信号に切換えるように、制御する構成とされ、かつ、前記切換手段は、前記n個の入出力手段からのn個のデータ入出力要求信号が印加されるn本の入力ラインと、m本が前記m個のデータ転送制御手段に接続され、1本が前記制御手段に対する割込要求として使用される(m+1)本の出力ラインと、前記n本の入力ラインと前記(m+1)本の出力ラインとの交点に設けられたn×(m+1)個のトランジスタとを有して構成されており、前記n×(m+1)個のトランジスタが前記制御手段の制御によりオン/オフされ、前記n本の入力ラインの最大でm本が、前記m本の出力ラインのいずれかと接続されると共に、前記m個のデータ転送制御手段に接続された前記m本の出力ラインのいずれにも接続されなかった入力ラインのいずれもが残り1本の出力ラインと接続されるクロスバスイッチによって構成されていることを特徴としている。
【0010】
また、請求項2記載の発明は、請求項1記載の情報処理装置に係り、前記切換手段が、前記入出力手段から出力されたデータ入出力要求信号のうち、前記データ転送要求信号として前記m個のデータ転送制御手段のいずれにも供給されなかった前記データ入出力要求信号の論理和を割込信号として出力し、前記制御手段は、前記割込信号が供給された場合には、前記m個のデータ転送制御手段のうち、最も使用していないデータ転送制御手段を選択して、当該データ転送制御手段がデータ入出力を制御している入出力手段におけるデータ転送が行われていれば、これを中断させ、前記切換手段を制御して、当該データ転送制御手段に新たなデータ転送要求信号を供給させると共に、今まで当該データ転送制御手段に前記データ転送要求信号として供給されていたデータ入出力要求信号を前記論理和に加えることを特徴としている。
【0011】
また、請求項3記載の発明は、請求項1記載の情報処理装置に係り、前記使用状況管理手段が、前記m個のデータ転送制御手段から出力される、データ転送を実施したことを示すアクノリッジ信号がアクティブになった時間的な古さの順に前記m個のデータ転送制御手段にそれぞれ付与された番号が記憶される使用状況情報レジスタを有し、前記制御手段が、前記使用状況情報レジスタの記憶内容に基づいて、前記最も使用していないデータ転送制御手段を選択することを特徴としている。
【0012】
また、請求項4記載の発明は、請求項1記載の情報処理装置に係り、前記使用状況管理手段が、前記m個のデータ転送制御手段から出力される、当該データ転送制御手段が現在データ転送を行っており、動作中である場合にアクティブとなるビジー信号がノンアクティブになっている期間をそれぞれカウントするカウンタと、前記カウント値が最も大きいデータ転送制御手段に付与された番号が記憶される使用状況情報レジスタとを有し、前記制御手段が、前記使用状況情報レジスタの記憶内容に基づいて、前記最も使用していないデータ転送制御手段を選択することを特徴としている。
【0013】
また、請求項5記載の発明は、請求項1記載の情報処理装置に係り、前記使用状況管理手段が、前記m個のデータ転送制御手段から出力される、当該データ転送制御手段が現在データ転送を行っており、動作中である場合にアクティブとなるビジー信号がノンアクティブになっている期間をそれぞれカウントするカウンタと、前記カウント値が最も大きいデータ転送制御手段に付与された番号が記憶されると共に、前記m個のデータ転送制御手段から出力される、データ転送を実施したことを示すアクノリッジ信号がアクティブになった時間的な古さの順に前記m個のデータ転送制御手段にそれぞれ付与された番号が記憶される使用状況情報レジスタとを有し、前記制御手段が、前記使用状況情報レジスタの記憶内容に基づいて、前記最も使用していないデータ転送制御手段を選択することを特徴としている。
【0014】
また、請求項6記載の発明は、請求項1記載の情報処理装置に係り、前記m個のデータ転送制御手段が、それぞれデータ入出力を制御している入出力手段におけるデータ入出力制御に関する情報が記憶される個別記憶手段を有し、前記n個の入出力手段におけるデータ入出力制御に関する情報がそれぞれ記憶される全体記憶手段を備え、前記制御手段が、前記最も使用していないデータ転送制御手段がデータ入出力を制御している入出力手段におけるデータ転送が行われていればこれを中断させ、当該データ転送制御手段に新たなデータ転送要求信号を供給させて、当該新たなデータ転送要求信号の発生源たる前記新たなデータ入出力要求信号を供給している入出力手段におけるデータ入出力を制御させる場合には、当該データ転送制御手段の個別記憶手段に記憶されているデータ入出力制御に関する情報を前記全体記憶手段の対応する記憶領域に一時退避させた後、前記全体記憶手段の前記新たなデータ入出力要求信号を供給している入出力手段におけるデータ入出力制御に関する情報を読み出して前記個別記憶手段に記憶させることを特徴している。
【0015】
また、請求項7記載の発明は、請求項6記載の情報処理装置に係り、上記全体記憶手段から上記入出力手段におけるデータ入出力制御に関する情報を読み出した後、上記全体記憶手段に記憶されている上記情報の書き換えを禁止することを特徴としている。
【0016】
また、請求項8記載の発明は、請求項1記載の情報処理装置に係り、前記バスと、前記n個の入出力手段と、前記制御手段と、前記m個のデータ転送制御手段と、前記切換手段とは、同一チップ上に形成された1チップ・マイクロ・コンピュータにより構成されていることを特徴としている。
【0017】
また、請求項9記載の発明は、請求項8記載の情報処理装置に係り、前記切換手段が、前記n個の入出力手段からのn個のデータ入出力要求信号が印加されるn本の入力ラインと、m本が前記m個のデータ転送制御手段に接続され、1本が前記制御手段に対する割込要求として使用される(m+1)本の出力ラインと、前記n本の入力ラインと前記(m+1)本の出力ラインとの交点に設けられたn×(m+1)個のトランジスタとを有して構成されており、前記n×(m+1)個のトランジスタが前記制御手段の制御によりオン/オフされ、前記n本の入力ラインの最大でm本が、前記m本の出力ラインのいずれかと接続されると共に、前記m個のデータ転送制御手段に接続された前記m本の出力ラインのいずれにも接続されなかった入力ラインのいずれもが残り1本の出力ラインと接続されるクロスバスイッチによって構成されていることを特徴としている。
【0018】
また、請求項9記載の発明は、請求項1記載の情報処理装置に係り、前記バスが、前記1チップ・マイクロ・コンピュータの内部に設けられたバス、あるいは、前記1チップ・マイクロ・コンピュータの外部に設けられたバス、あるいは、その両方のバスとからなることを特徴としている。
【0019】
請求項10記載の発明は、請求項1記載の情報処理装置に係り、前記n個の入出力手段におけるデータ入出力には、それぞれ予め優先順位が設定されており、前記制御手段は、前記優先順位に基づいて前記切換手段を制御して、前記入出力手段から出力されたデータ入出力要求信号のうち、m個までを前記m個のデータ転送制御手段のいずれかに供給させることを特徴としている。
【0020】
また、請求項11記載の発明は、請求項1記載の情報処理装置に係り、前記制御手段又は前記データ転送制御手段は、前記バスの一部の使用権を獲得して前記入出力手段におけるデータ入出力を制御することを特徴としている。
【0021】
【作用】
この発明の構成によれば、安価かつ汎用性の高い構成で、CPUの稼働率を上昇させ、装置全体のスループットを向上させることができる。
【0022】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について説明する。説明は、実施例を用いて具体的に行う。
図1は、この発明の一実施例である情報処理装置31及びそれに接続される外部装置321〜3215の電気的構成例を示すブロック図である。
この例の情報処理装置31は、CPU33と、レジスタ群34と、アービタ35と、メモリ36と、DMAC37〜40と、割込コントローラ41と、入出力手段420〜4215と、使用状況管理手段43と、クロスバスイッチ44と、バス45とが同一チップ上に形成された1チップ・マイクロ・コンピュータによって構成されている。CPU33と、レジスタ群34と、メモリ36と、DMAC37〜40と、割込コントローラ41と、入出力手段420〜4215と、使用状況管理手段43と、クロスバスイッチ44とは、バス45を介して互いに接続されている。外部装置321〜3215としては、例えば、FDD、HDD等の外部記憶装置、キーボード、マウス、タッチペン等の入力手段、ディスプレイ、プリンタ等の出力手段、モデム等の通信手段がある。また、入出力手段420〜4215としては、例えば、A/Dコンバータ、シリアル・インターフェイス、パラレル・インターフェイス等がある。
【0023】
CPU33は、装置各部を制御すると共に、割込コントローラ41から割込要求信号IREQ0又はIREQ1が供給されると、割込処理を実行し、アービタ35に対し要求信号BREQを供給すると共に、アービタ35からバス45の使用権獲得が許可されたことを示す許可信号BGNTの供給を受ける。
レジスタ群34は、図2に示すように、クロスバスイッチ制御レジスタ34aと、ベースポインタレジスタ34bと、セマフォレジスタ34cと、その他のレジスタとから構成されている。クロスバスイッチ制御レジスタ34aは、CPU33によりクロスバスイッチ44を制御するためのデータが設定される。
ベースポインタレジスタ34bは、メモリ36内部に確保されている管理テーブルの先頭番地が保存されおり、CPU33が管理テーブルをアクセスする際に、まず、ベースポインタレジスタ34bに保存されている先頭番地を読み出し、それにチャネルオフセット及びレジスタオフセットそれぞれの値を加算して得られた値に基づいて、管理テーブルの所望のアドレスにアクセスするのである。なお、後述する装置の動作説明においては、説明を簡単にするために、CPU33が管理テーブルをアクセスする際のベースポインタレジスタ34bからの先頭番地の読み出しと、チャネルオフセット及びレジスタオフセットそれぞれの値の加算とについては、特に説明しない。
セマフォレジスタ34cは、CPU33によるプログラム実行とDMAC37〜40によるデータ転送とが競合することにより、管理テーブルの内容が整合性なく書き換えられることを防止するための排他制御に用いられるレジスタである。なお、セマフォレジスタ34cは、メモリ36の所定の記憶領域に設けても良い。
【0024】
アービタ35は、CPU33及びDMAC37〜40からのバス45の使用権の獲得要求を示す要求信号BREQ及びDREQ0〜DREQ3が入力されると、各DMAC37〜40に予め付与された優先順位、要求信号BREQ及びDREQ0〜DREQ3の供給の遅速や供給状態、CPU33の稼働状態に基づいて、CPU33又はDMAC37〜40のいずれにバス45の使用権を許可するかを決定し、決定されたCPU33又はDMAC37〜40にバス45の使用権獲得が許可されたことを示す許可信号BGNT又はDGNT0〜DGNT3を供給する。
【0025】
メモリ36には、各種データが記憶される他、上記した管理テーブルが確保されている。管理テーブルには、クロスバスイッチ44の入力端子数、すなわち、入出力手段420〜4215の個数に対応した16個のチャネル(これを要求チャネルと呼ぶ)0〜15毎に、データの転送元である入出力手段又はメモリ36のメモリ・マップ上の該当するアドレスを示す転送元アドレス、データの転送先である入出力手段又はメモリ36のメモリ・マップ上の該当するアドレスを示す転送先アドレス、データの転送回数、データ転送のモードがそれぞれ記憶されると共に、各種ステータスビットが記憶される。
【0026】
データ転送のモードには、シングル転送モード、シングル・ステップ転送モード及びブロック転送モードがある。シングル転送モードでは、DMACが1回のデータ転送が終了する度に今まで獲得していたバス45の使用権を放棄する転送モードをいう。シングル・ステップ転送モードとは、DMACが1回のデータ転送が終了する度に今まで獲得していたバス45の使用権を放棄する点はシングル転送モードと同様であるが、有効となっている要求チャネルの転送回数が0になるまではその要求チャネルのデータ転送を行う転送モードをいう。ブロック転送モードとは、DMACが1度データ転送の要求を受け付けると、有効となっている要求チャネルの転送回数が0になるまではその要求チャネルのデータ転送を行い、その間は現在の要求チャネルより優先順位の高い要求チャネルのデータ転送の要求があった場合でも要求チャネルは変更せず、CPU33のバイト・サイクルも割り込めない転送モードをいう。
各種ステータスビットには、どのDMAC37〜40にどの要求チャネルが割り当てられているかを示す情報、各要求チャネルの優先順位に関する情報などがある。
【0027】
DMAC37〜40は、クロスバスイッチ44から出力されるデータ転送の要求を示す要求信号SREQ0〜SREQ3に一対一に対応して設けられており、当該する要求信号SREQ0〜SREQ3が供給されることにより、アービタ35に対し要求信号SREQ0〜SREQ3に対応した要求信号DREQ0〜DREQ3を供給すると共に、アービタ35からバス45の使用権獲得が許可されたことを示す許可信号DGNT0〜DGNT3の供給を受ける。対応する許可信号DGNT0〜DGNT3が供給された後のDMAC37〜40によるデータ転送については、後述する。
また、各DMAC37〜40には、それぞれ当該チャネル(これをDMAチャネルと呼ぶ)について、転送元アドレスが記憶される転送元アドレスレジスタ、転送先アドレスが記憶される転送先アドレスレジスタ、転送回数が記憶される転送回数レジスタ、当該DMAチャネルが現在データ転送を行っているか否かを表す転送状態が記憶される転送状態レジスタ、上記した転送モード、データの転送元である入出力手段又はメモリ36からデータを読み出す場合のデータサイズ(8ビット、16ビット、32ビット、64ビットのいずれか)、データの転送先である入出力手段又はメモリ36へデータを書き込む場合のデータサイズ(8ビット、16ビット、32ビット、64ビットのいずれか)、エンディアン、ファネリングの情報などが記憶される転送モードレジスタが設けられている。
【0028】
さらに、各DMAC37〜40は、当該DMACが現在データ転送を行っている場合にアクティブとなるビジー信号BUSY0〜BUSY3を使用状況管理手段43へ供給すると共に、データ転送を実施したことを示すアクノリッジ信号DACK0〜DACK3を、任意の1単位のデータ転送(転送元からのデータの読み出しと転送先へのデータの書き込み)が完了した後、使用状況管理手段43へ供給する。また、各DMAC37〜40は、データ転送の完了又は中断等が発生したことを示す完了信号DONE0〜DONE3を割込コントローラ41へ供給する。
【0029】
割込コントローラ41は、クロスバスイッチ44からの割込信号INTに基づく割込要求に応じて、CPU33へ割込要求信号IREQ0を供給すると共に、各DMAC37〜40からの完了信号DONE0〜DONE3に基づく割込要求に応じて、CPU33へ割込要求信号IREQ1を供給する。割込要求信号IREQ0が供給された場合、CPU33は、割込要因をチェックせずに、直ちに割込処理を実行する。また、割込コントローラ41は、完了信号DONE0〜DONE3を供給したDMACに付与された番号が記憶される割込情報レジスタを有しており、CPU33は、この割込情報レジスタを参照して、割込要因をチェックする、すなわち、どのDMACが転送を終了したかを検出する。
【0030】
使用状況管理手段43は、使用状況情報レジスタを有しており、アクノリッジ信号DACK0〜DACK3を供給した各DMAC37〜40にそれぞれ付与された番号0〜3を、アクノリッジ信号DACK0〜DACK3がアクティブになった時間的な古さの順(LRU:Least Recently Used)に使用状況情報レジスタに記憶すると共に、各DMAC37〜40から供給されるビジー信号BUSY0〜BUSY3がノンアクティブになっている期間の平均値をそれぞれカウントするカウンタを有し、そのカウント値が最も大きいDMACに付与された番号を使用状況情報レジスタに記憶する。
CPU33は、上記使用状況レジスタを参照して各DMAC37〜40の使用状況を把握するが、アクノリッジ信号DACK0〜DACK3がアクティブになった時間的な古さの順に使用状況情報レジスタに記憶された各DMAC37〜40の番号に基づいて各DMAC37〜40の使用状況を把握するモードをLRUモードといい、使用状況情報レジスタに記憶されたカウンタのカウント値が最も大きいDMACの番号に基づいて各DMAC37〜40の使用状況を把握するモードをBUSYモードという。すなわち、CPU33は、4個のDMAC37〜40がいずれも既に使用されている状態で、入出力手段のいずれかから新たに要求信号REQが供給された場合、いずれかのDMACによるデータ転送を中断させて新たに要求信号REQを供給した入出力手段をそのデータ転送を中断したDMACに割り当てる必要があるが、その際、最も使用されていないDMACを選択すれば全体のデータ転送が効率良く行われるので、そのための判断材料を得るために使用状況レジスタを参照するのである。
【0031】
クロスバスイッチ44は、図3に示すように、16本の入力ライン460〜4615と、5本の出力ライン470〜474と、入力ライン460〜4615と出力ライン470〜474との交点に設けられた80個のトランジスタ480〜4879と、各入力ライン460〜4615の入力端と電源電圧との間に介挿された16個のプルアップ抵抗490〜4915とから概略構成されている。
入力ライン460〜4615には、入出力手段420〜4215から要求信号REQ0〜REQ15が印加され、CPU33によってクロスバスイッチ制御レジスタ34aに設定された値に応じて、トランジスタ480〜483、485〜488、…、4875〜4878がオン/オフされ、入力ライン460〜4615の最大で4本が、出力ライン470〜473のいずれかと接続され、要求信号SREQ0〜SREQ3として出力される。また、CPU33によってクロスバスイッチ制御レジスタ34aに設定された値に応じて、トランジスタ484、489、…、4879がオン/オフされ、初期化処理時には、入力ライン460〜4615のいずれもが出力ライン474と接続され、要求信号REQ0〜REQ15の論理和が割込信号INTとして出力され、通常時には、出力ライン470〜473のいずれにも接続されなかった入力ライン460〜4615のいずれもが出力ライン474と接続され、要求信号SREQ0〜SREQ3として出力されなかった要求信号REQ0〜REQ15の論理和が割込信号INTとして出力される。
なお、クロスバスイッチ44の上記構成は、入出力手段420〜4215の出力段がオープンコレクタ型又はオープンドレイン型である場合を想定しているが、入出力手段420〜4215の出力段がトーテムポール型である場合には、出力ライン474に複数の出力ラインが接続された際にショート等の不具合が生じる虞がある。その場合、若干の回路素子を設けて上記不具合を解消する必要があるが、その点については、この発明とは直接関係しないので、その説明を省略する。
【0032】
次に、上記構成の情報処理装置の動作について、図4に示すフローチャートを参照して、説明する。なお、以下の説明では、入出力手段420〜424から、図5に示す期間及び間隔で、要求信号REQ0〜REQ4が出力されている場合に、CPU33等が行う動作について説明する。この場合、CPU33は、LRUモードにより4個のDMAC37〜40の使用状況を把握する。
まず、初期化処理▲1▼を実行する。ステップSP1では、CPU33は、装置各部を初期化する初期化処理を実行する。すなわち、CPU33は、メモリ36の所定の記憶領域に16個の要求チャネル分の管理テーブルを確保した後、その記憶内容をクリアし、矛盾のない状態に初期化する。
同様に、CPU33は、各DMAC37〜40に設けられているレジスタ群に、転送元アドレスレジスタ、転送先アドレスレジスタ、転送回数レジスタ、転送状態レジスタ、転送モードレジスタをそれぞれ確保した後、その記憶内容をクリアし、矛盾のない状態に初期化する。
次に、CPU33は、クロスバスイッチ制御レジスタ34aに所定の値を設定することにより、図3に示すトランジスタ480〜483、485〜488、…、4875〜4878のいずれもをオフさせると共に、トランジスタ484、489、…、4879のいずれもをオンさせ、クロスバスイッチ44の入力ライン460〜4615のいずれもを出力ライン474と接続させ、要求信号REQ0〜REQ15の論理和が割込信号INTとして出力されるようにする。
さらに、CPU33は、割込コントローラ41の内部の設けられた割込情報レジスタや使用状況管理手段43の内部に設けられた使用状況情報レジスタのそれぞれの記憶内容をクリアし、矛盾のない状態に初期化する。これで初期化処理▲1▼は終了する。
【0033】
ステップSP2では、CPU33は、各DMAC37〜40によるデータ転送を開始するための起動処理を実行する。すなわち、CPU33は、まず、メモリ36の内部に設けられた管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルで、レジスタ群34を構成するセマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、管理テーブルの所定の記憶領域に、各要求チャネル毎に、転送元アドレス、転送先アドレス、転送回数、転送状態、転送モード等の情報を書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込む。つまり、セマフォレジスタ34cを用いてアクセス権の排他処理を行い、管理テーブルの内容が誤って書き換えられることを防止している。よって、DMACもCPU33も重ねて管理テーブルへのアクセス権を獲得することができず、管理テーブルの内容がデータ転送の前後で変更されることはない。なお、管理テーブルへのアクセス権が獲得できなかった場合、CPU33もDMACもセマフォレジスタ34cに値”1”を上書きして管理テーブルへのアクセスをあきらめる。
【0034】
次に、転送セットアップ処理▲2▼を実行する。ステップSP3では、CPU33は、入出力手段420〜4215のセットアップを実行する。すなわち、入出力手段420〜4215のセットアップは、各入出力手段420〜4215がデータ転送を直ちに開始できるような状態にするための処理である。例えば、ある入出力手段42がSCSI(Small Computer System Interface)規格によるパラレル・インターフェイスであり、それに接続された外部装置32がHDDの場合、CPU33は、当該入出力手段42に対しデータ転送の目的のセクタについてのデータ読み出しのコマンド又はデータ書き込みのコマンドを転送し、データ読み出し又はデータ書き込みのセットアップを行う。これにより、当該入出力手段42は、いつでも要求信号REQを出力できる。これで転送セットアップ処理は終了する。
これらの設定によって外部装置はデータの処理を開始する。入力手段は、これらの外部装置からデータの入力要求を受け取り、データ転送を行うために、要求信号REQを発生する。この要求信号は、実際のDMAチャネルが未だ割り当てられていなければ、クロスバスイッチ44を経由して、割込コントローラ41に伝えられる。割込コントローラは、CPU33に割り込みをかけ、DMA転送エンジンの割り付け処理を要求する。
【0035】
割込があれば、割込処理▲3▼を実行する。この処理は、実際のDMA転送チャネルの割り当て、開放、そして、終了処理を行うものである。ステップSP4では、CPU33は、割込コントローラ41から割込要求信号IREQ0又はIREQ1が供給されたか否かを判断する。この判断結果が「NO」の場合には、他の割込をチェックする。そして、割込コントローラ41から割込要求信号IREQ0又はIREQ1が供給されると、ステップSP4の判断結果が「YES」となり、CPU33は、ステップSP5へ進む。
今の場合、ステップSP1の初期化処理において、図3に示すクロスバスイッチ44の入力ライン460〜4615のいずれもが出力ライン474と接続され、要求信号REQ0〜REQ15の論理和が割込信号INTとして出力されるようになっている。したがって、例えば、図5(1)に示すように、時刻t0に、入出力手段420からメモリ36の所定の記憶領域にデータを転送するために、入出力手段420から要求信号REQ0がアクティブになってクロスバスイッチ44に供給されると、要求信号REQ0が割込信号INTとして出力され、割込コントローラ41に供給される。これにより、割込コントローラ41は、CPU33へ割込要求信号IREQ0を供給するので、ステップSP4の判断結果が「YES」となり、CPU33は、ステップSP5へ進む。
【0036】
ステップSP5では、CPU33は、割込コントローラ41から供給された割込要求信号が各DMAC37〜40からの完了信号DONE0〜DONE3に基づく割込要求に応じた割込要求信号IREQ1であるか否かを判断する。この判断結果が「YES」の場合には、CPU33は、ステップSP11へ進む。一方、ステップSP5の判断結果が「NO」の場合、すなわち、DMACが割り当てられていない要求信号REQが供給され、割込コントローラ41から割込要求信号IREQ0が供給された場合には、CPU33は、ステップSP6へ進む。
今の場合、割込コントローラ41から割込要求信号IREQ0が供給されているので、ステップSP5の判断結果は「NO」となり、CPU33は、ステップSP6へ進む。
【0037】
ステップSP6では、CPU33は、使用状況管理手段43の内部に設けられた使用状況情報レジスタを参照して、各DMAC37〜40の使用状況を把握した後、最もデータ転送を行っていないDMACを選択する。今の場合、すべてのDMAC37〜40においてデータ転送が行われていないため、使用状況情報レジスタには何も値が書き込まれていないので、例えば、DMAC37が選択されたものとする。
ステップSP7では、CPU33は、ステップSP6の処理で選択したDMACが現在データ転送状態であるか否かを判断する。すなわち、CPU33は、ステップSP6の処理で選択したDMACの内部に設けられた転送状態レジスタを参照して、当該DMAチャネルが現在データ転送を行っているか否かをチェックし、データ転送状態である場合、すなわち、ステップSP7の判断結果が「YES」の場合には、ステップSP8へ進む。一方、ステップSP6の処理で選択したDMACが現在データ転送状態でない場合、すなわち、ステップSP7の判断結果が「NO」の場合には、何もせず、ステップSP9へ進む。
今の場合、すべてのDMAC37〜40においてデータ転送が行われていないので、ステップSP7の判断結果が「NO」となり、CPU33は、何もせず、ステップSP9へ進む。
【0038】
ステップSP8では、選択されたDMACが実行中のデータ転送処理を中断し、他のデータ転送処理に使用するため、中断した転送チャネルの情報(転送元アドレス、転送先アドレス等)を管理テーブルに退避する処理を行う。CPU33は、ステップSP6の処理で選択したDMACの内部に設けられたレジスタ群に記憶されたある要求チャネルの情報を退避するために、メモリ36の内部に設けられた管理テーブルの対応した要求チャネルの記憶領域に書き込む。この場合、上記したステップSP3の処理と同様、CPU33は、まず、メモリ36の内部に設けられた管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルで、レジスタ群34を構成するセマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、ステップSP6の処理で選択したDMACの内部に設けられたレジスタ群に記憶されたある要求チャネルの転送元アドレス、転送先アドレス、転送回数、転送状態、転送モード等の情報を管理テーブルの所定の記憶領域に書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込む。
【0039】
ステップSP9では、CPU33は、まず、管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルで、セマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、要求信号REQを供給した入出力手段に対応した要求チャネルの管理テーブルの記憶領域から転送元アドレス等の情報を読み出して、ステップSP6の処理で選択したDMACの内部に設けられたレジスタ群に記憶すると共に、管理テーブルの当該要求チャネルに対応した記憶領域に記憶された転送元アドレス等の情報がデータ転送中に書き換えられないようにするために、書き込み禁止を表すロックデータを書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込む。
今の場合、要求信号REQ0を供給したのは入出力手段420であるから、対応した要求チャネルは要求チャネル0である。したがって、CPU33は、管理テーブルの要求チャネル0に対応した記憶領域から転送元アドレス等の情報を読み出して、DMAC37のレジスタ群にそれぞれ記憶すると共に、管理テーブルの要求チャネル0に対応した記憶領域にロックデータを書き込む。
【0040】
ステップSP10では、CPU33は、レジスタ群34を構成するクロスバスイッチ制御レジスタ34aに所定の値を設定することにより、図3に示すクロスバスイッチ44を構成するトランジスタ480〜4879をオン/オフさせて、ステップSP6の処理で選択したDMACに今まで供給されていた要求信号REQ0〜REQ15のいずれかを出力ライン470〜473のいずれかから切り放し、出力ライン474に接続して割込信号INTとして出力させると共に、ステップSP4の処理で割込コントローラ41から供給されたと判断された割込要求信号IREQ0に対応した要求信号REQ0〜REQ15のいずれかを出力ライン470〜473のいずれかに接続して要求信号SREQ0〜SREQ3のいずれかとして出力させ、ステップSP6の処理で選択したDMACに供給させた後、この割込処理▲3▼を終了する。
今の場合、ステップSP6の処理で選択したのはDMAC37であり、ステップSP4の処理で割込コントローラ41から供給されたと判断された割込要求信号IREQ0に対応するのは入出力手段420からの要求信号REQ0であるが、DMAC37には今まで要求信号REQ0〜REQ15のいずれも供給されていないので、CPU33によるクロスバスイッチ制御レジスタ34aへの所定の値の設定により、要求信号REQ0は、クロスバスイッチ44から要求信号SREQ0として出力され、DMAC37に供給される。
【0041】
次に、データ転送処理▲4▼を実行する。DMAC37は、クロスバスイッチ44から要求信号SREQ0が供給されると、データ転送動作を開始し、まず、アービタ35に対し要求信号DREQ0をアクティブにして供給する。アービタ35は、要求信号DREQ0が入力されると、各DMAC37〜40の優先順位やCPU33の稼働状態に基づいて、バス45の使用権を許可するかを決定し、DMAC37のバス45の使用権獲得を許可すると決定した場合には、許可信号DGNT0をDMAC37に供給する。
DMAC37は、許可信号DGNT0が供給されると、転送元アドレスレジスタに書き込まれた転送元アドレスによって示されたデータの転送元から、転送モードレジスタに書き込まれたデータサイズでデータを読み出し、転送先アドレスレジスタに書き込まれた転送先アドレスによって示されたデータの転送先へ書き込む。この場合、DMAC37は、1回のデータ転送毎に、転送回数レジスタに書き込まれた転送回数からデータサイズを減算していき、転送回数レジスタの値がデータ転送の終了値に達していれば、完了信号DONE0を割込コントローラ41に供給する。これにより、割込コントローラ41は、DMAC37からの完了信号DONE0に基づく割込要求に応じて、CPU33へ割込要求信号IREQ1を供給すると共に、割込情報レジスタに完了信号DONE0を供給したDMAC37に付与された番号を記憶する。
【0042】
また、DMAC37は、データ転送動作中に、例えば、転送元アドレスレジスタに書き込まれた転送元アドレスを読み出す際に、ビジー信号BUSY0をアクティブとして使用状況管理手段43へ供給すると共に、アクノリッジ信号DACK0を任意の1単位のデータ転送(転送元からのデータの読み出しと転送先へのデータの書き込み)が完了した後、使用状況管理手段43へ供給する。これにより、使用状況管理手段43は、DMAC37から供給されたアクノリッジ信号DACK0に基づいて、DMAC37に付与された番号0を最も新しくアクノリッジ信号DACK0がアクティブになったとして使用状況情報レジスタに記憶すると共に、ビジー信号BUSY0がノンアクティブになっている期間(図5(1)の例では、およそ時刻t0から時刻t5までの期間)をカウントするカウンタがカウントを開始する。これでデータ転送処理▲4▼は終了する。
【0043】
データ転送処理が終了したときは、完了信号DONE0が割込コントローラ41に供給され、割込処理▲3▼が実行される。ステップSP4、SP5ともに「YES」となり、管理テーブル更新処理であるステップSP11を実行する。ステップSP11では、CPU33は、割込コントローラ41の内部に設けられた割込情報レジスタに記憶されたDMACに付与された番号を読み出し、当該DMACでデータ転送が終了したことを把握する。そして、CPU33は、データ転送が終了したDMACへの転送チャネルの割当を解除し、その内部に設けられたレジスタ群に記憶されたある要求チャネルの情報を、メモリ36の内部に設けられた管理テーブルの対応した要求チャネルの記憶領域に書き込んだ後、ロックデータを消去して、ロックを解除する。
この場合、上記したステップSP3の処理と同様、CPU33は、まず、管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルで、セマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、データ転送が終了したDMACの内部に設けられたレジスタ群に記憶されたある要求チャネルの転送元アドレス等の情報を管理テーブルに書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込む。
【0044】
これ以降、図5(2)〜(4)に示すように、他の入出力手段421〜423からそれぞれ時刻t1、時刻t2及び時刻t3にアクティブとなった要求信号REQ1〜REQ3が順次クロスバスイッチ44に供給されると、以上説明したステップSP4〜SP10の処理により、要求信号REQ1〜REQ3がクロスバスイッチ44を介して他のDMAC38〜40に順次供給され、それぞれDMAC38〜40を用いた入出力手段421〜423を転送元又は転送先としたデータ転送が行われる。すなわち、要求信号REQが4個までは、4個のDMAC37〜40がそれぞれ4個の要求信号REQに対応してデータ転送に関与するので、何等支障なく、4個の入出力手段について独立にデータ転送を行うことができる。
【0045】
次に、4個のDMAC37〜40のいずれも既に使用されている状態で、入出力手段424からの要求信号REQ4がアクティブになる時刻t4(図5(5)参照)以降におけるデータ転送について、説明する。
入出力手段424から出力される要求信号REQ4が時刻t4にアクティブになってクロスバスイッチ44に供給されると、要求信号REQ4が割込信号INTとして出力され、割込コントローラ41に供給される。これにより、割込コントローラ41は、CPU33へ割込要求信号IREQ0を供給するので、CPU33は、使用状況管理手段43の内部に設けられた使用状況情報レジスタを参照して、各DMAC37〜40の使用状況を把握した後、最もデータ転送を行っていないDMACを選択する。今の場合、図5(1)〜(4)から分かるように、要求信号REQ0が最も古くノンアクティブになっており、要求信号REQ0はDMAC37に供給されているので、使用状況管理手段43の使用状況情報レジスタには、DMAC37に付与された番号0が最も古いものとして記憶されているはずである。そこで、CPU33は、DMAC37を最もデータ転送を行っていないDMACとして選択する。
【0046】
次に、現在DMAC37は要求信号REQ0に対応した要求チャネル0についてデータ転送中であるので、そのデータ転送を一時中断させなければならないが、DMAC37のレジスタ群にこれからデータ転送する要求信号REQ4に対応した要求チャネル4の転送元アドレス等の情報を上書きしてしまうと、そのデータ転送終了後に一時中断した要求信号REQ0に対応した要求チャネル0のデータ転送が再開できなくなってしまうので、DMAC37のレジスタ群に現在書き込まれている要求信号REQ0に対応した要求チャネル0の転送元アドレス等の情報を対応する管理テーブルの所定の記憶領域に一時退避させる必要がある。
そこで、CPU33は、上記ステップSP8の処理において、DMAC37のレジスタ群に記憶された要求チャネル0の情報を、管理テーブルの要求チャネル0の記憶領域に書き込む。この場合、CPU33は、まず、管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルでセマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、DMAC37のレジスタ群に記憶された要求チャネル0の転送元アドレス等の情報を管理テーブルの所定の記憶領域に書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込む。
【0047】
次に、CPU33は、まず、管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルで、セマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、要求信号REQ4を供給した入出力手段424に対応した要求チャネル4の管理テーブルの記憶領域から転送元アドレス等の情報を読み出して、DMAC37のレジスタ群に記憶すると共に、管理テーブルの当該要求チャネル4に対応した記憶領域に記憶された転送元アドレス等の情報がデータ転送中に書き換えられないようにするために、ロックデータを書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込む。
そして、CPU33は、レジスタ群34を構成するクロスバスイッチ制御レジスタ34aに所定の値を設定することにより、図3に示すクロスバスイッチ44を構成するトランジスタ480〜4879をオン/オフさせて、要求信号REQ4を要求信号SREQ0としてDMAC37に供給させると共に、要求信号REQ0を割込信号INTとして割込コントローラ41に供給させる。この後のDMAC37の処理については、上記した入出力手段420の場合と略同様であるので、その説明を省略する。
【0048】
次に、時刻t5になり、要求信号REQ0が再びアクティブになった場合、図5(1)〜(4)から分かるように、要求信号REQ2が最も古くノンアクティブになっており、要求信号REQ2はDMAC39に供給されているので、使用状況管理手段43の使用状況情報レジスタには、DMAC39に付与された番号2が最も古いものとして記憶されているはずである。そこで、CPU33は、DMAC39を最もデータ転送を行っていないDMACとして選択する。
したがって、DMAC39のレジスタ群に記憶されている要求チャネル2の情報の管理テーブルへの一時退避と、一時中断され、退避されていた要求チャネル0の情報の管理テーブルからDMAC39のレジスタ群への書き込みが行われた後、DMAC39における転送元を入出力手段420とし、転送先をメモリ36としたデータ転送が再開される。
同様に、時刻t6になれば、要求チャネル0のデータ転送の一時中断と要求チャネル2のデータ転送の再開が行われ、時刻t7になれば、要求チャネル2のデータ転送の一時中断と要求チャネル0のデータ転送の再開が行われ、時刻t8になれば、要求チャネル4のデータ転送の一時中断と要求チャネル2のデータ転送の再開が行われる。以下、同様である。
【0049】
そして、時刻t9になると、要求チャネル1のデータ転送が終了するので、DMAC38は、完了信号DONE1を割込コントローラ41に供給する。これにより、割込コントローラ41は、DMAC38からの完了信号DONE1に基づく割込要求に応じて、CPU33へ割込要求信号IREQ1を供給すると共に、割込情報レジスタに完了信号DONE1を供給したDMAC38に付与された番号1を記憶する。
したがって、CPU33は、割込コントローラ41の割込情報レジスタに記憶されたDMAC38に付与された番号0を読み出し、当該DMAC38でデータ転送が終了したことを把握する。そして、CPU33は、データ転送が終了したDMAC38への割当を解除した後、管理テーブルへのアクセス権を獲得するために、リード・モディファイ・ライト・サイクルで、セマフォレジスタ34cから値”0”を読み出した後、セマフォレジスタ34cに値”1”を書き込み、DMAC38のレジスタ群に記憶された要求チャネル1の転送元アドレス等の情報を管理テーブルに書き込む。この後、CPU33は、管理テーブルへのアクセス権を解放するために、セマフォレジスタ34cに値”0”を書き込んだ後、ロックデータを消去して、ロックを解除する。
【0050】
このように、この例の構成によれば、入出力手段の個数に比べてDMACの個数が少なく、DMACの個数以上の要求信号REQが供給された場合であっても、使用状況管理手段43により最も使用していないDMACを把握して、メモリと同様の製造方法で作製可能で誤動作の極めて少ないクロスバスイッチを用いて、新たに供給された要求信号REQを最も使用していないDMACに供給するようにしたので、安価かつ簡単な構成で、効率的にDMACを用いたデータ転送を行うことができる。第1の従来例において16個の入出力手段に対応して16個のDMACを設ける構成とこの例の構成とを比較すると、回路規模を1/4ないし1/3程度に削減することができる。
特に、同時に供給される要求信号REQが4個以内である場合には、クロスバスイッチ44の切換と転送元アドレス等の情報の書換時だけにCPUが関与するだけであるので、CPUの稼働率を上昇させ、装置全体のスループットを向上させることができる。
また、同時に供給される要求信号REQが5個以上である場合でも、図5(2)及び(4)に示すように、転送速度が速いデータ転送を行っているDMACは、データ転送が中断されることはないので、効率的なデータ転送を行うことができる。
さらに、この例の構成によれば、入出力手段の個数を増加させたり、DMACの個数を増加させる場合であっても、上記した第2の従来例のように、アルゴリズム等を最初から構築し直す必要はなく、クロスバスイッチ44を構成する入力ライン46、出力ライン47及びトランジスタ48の数を増やしたり、メモリ36の管理テーブルの記憶領域をその分確保する等の若干の修正だけで良いので、汎用性が高く、開発コスト及び開発期間が少なくて済む。
また、この例の構成によれば、セマフォレジスタ34c及びロックデータ用いて、データ転送中又はデータ転送が中断中に、管理テーブルに記憶された転送元アドレス等の情報が書き換えられないようにしているので、情報の整合性を保持することができ、データ転送の中断及び再開を正確かつ容易に行うことができる。
【0051】
以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
例えば、上述の実施例においては、DMACを4個設ける例を示したが、これに限定されず、DMACは、入出力手段の個数によるが、例えば、2〜8個設けても良い。
また、上述の実施例においては、CPU33がLRUモードにより4個のDMAC37〜40の使用状況を把握する例を示したが、これに限定されず、CPU33は、4個のDMAC37〜40の使用状況を、BUSYモードにより、あるいはLRUモードとBUSYモードとを組み合わせて把握するようにしても良い。
【0052】
また、上述の実施例においては、割込コントローラ41を設け、DMAC37〜40の個数以上に新たに要求信号REQが供給された場合には、DMACのいずれかにおけるデータ転送を一時中断させて新たに要求信号REQを供給した入出力手段によるデータ転送を実行させる例を示したが、これに限定されない。例えば、割込コントローラ41は設けずに、新たに要求信号REQが供給された場合でも、4個のDMACがすべてデータ転送中である場合には、当該要求信号REQを供給した入出力手段によるデータ転送は留保しておき、4個のDMACのいずれかにおいてデータ転送が終了した時点で、その入出力手段によるデータ転送を開始するように構成しても良い。この場合でも、4個のDMACを有効に利用することは可能である。
また、上述の実施例において、割込処理によりデータ転送を一時中断させた入出力手段については、改めて要求信号REQを出力し、それが他の要求信号REQよりも優先された場合に初めて、データ転送が再開される例を示したが、これに限定されない。例えば、いずれかのDMACにおいてアクノリッジ信号ACKがノンアクティブになった場合、要求信号REQの出力を待たずに、一時中断されていた入出力手段のデータ転送を優先的に再開するように構成しても良い。
【0053】
また、上述の実施例においては、入出力手段420〜4215には特に優先順位を付与していないが、これに限定されず、予め入出力手段420〜4215に優先順位を付与すると共に、データの転送速度の速い外部装置、例えば、HDD(転送速度が約50Mb/s)等は優先順位の高い入出力手段42に接続するように構成しても良い。この場合、優先順位の高い入出力手段42から供給される要求信号REQは固定的に所定のDMACに供給するようにし、他の入出力手段から要求信号REQが供給されても、当該DMACを明け渡さないように構成すれば、より効率的なデータ転送を行うことができる。
また、上述の実施例においては、4個のDMACは、いずれも同一の機能を有する例を示したが、これに限定されず、例えば、1回のデータ転送で転送されるデータサイズ(8ビット、16ビット、32ビットなど)が異なるように構成しても良い。
また、上述の実施例においては、管理テーブルは、メモリ36の内部に設ける例を示したが、これに限定されず、レジスタ群34を構成するようにしても良い。
【0054】
また、上述の実施例においては、1本のバス45を情報処理装置31の内部に設ける例を示したが、これに限定されず、2本以上設けても良いし、情報処理装置31の外部に外部バスを設け、その外部バスに接続されたメモリや入出力手段と、バス45に接続されたメモリ36や入出力手段420〜4215との間でデータ転送を行えるようにしても良い。この場合、外部バスはバス45とパラレルに使用するように構成しても良いし、直列に接続して使用するように構成しても良い。
また、上述の実施例においては、バス45の全部の使用権を獲得する例を示したが、これに限定されず、バス45に複数のゲートを設け、それらのゲートの開閉をCPU33又は各DMAC37〜40が制御することにより、あるDMACがバス45の必要な部分だけ獲得してデータ転送するようにしても良い。図1に示す構成を例に取ると、入出力手段421と入出力手段422との間でデータ転送する場合には、バス45のうち、メモリ36、入出力手段420が接続されている部分は使用しないので、入出力手段420と入出力手段421との間にゲートを設け、DMAC37がそのゲートを閉めて、バス45の入出力手段421と入出力手段422とが接続された部分だけの使用権を獲得してデータ転送し、バス45のDMAC37が獲得しなかった部分についてはCPU33が使用すれば良い。
【0055】
また、上述の実施例においては、情報処理装置31を1チップ・マイクロ・コンピュータで構成する例を示したが、これに限定されず、CPU33、DMAC37〜40、メモリ36や入出力手段420〜4215等をそれぞれスタンド・アロン・タイプの装置に置き換えると共に、バス45をケーブルで構成することにより、全体をローカル・エリア・ネットワーク(LAN)等のシステムで構成するようにしても良い。
また、上述の実施例においては、CPU33とDMAC37〜40とは主従の関係にある例を示したが、これに限定されず、DMAC37〜40をデジタル・シグナル・プロセッサ(DSP)などに置き換えたりすることにより、並行処理をするような構成にしても良い。
【0056】
【発明の効果】
以上説明したように、この発明の構成によれば、入出力手段の個数nに比べてデータ転送制御手段の個数mが少ないが、切換手段により、入出力手段から出力された要求信号のうち、m個までをm個のデータ転送制御手段のいずれかに適宜柔軟に供給するようにしたので、安価かつ簡単な構成で、効率的にデータ転送制御手段を用いたデータ転送を行うことができる。特に、同時に供給される要求信号がm個以内である場合には、切換手段の切換時だけに制御手段が関与するだけであるので、制御手段の稼働率を上昇させ、装置全体のスループットを向上させることができる。
また、この発明の別の構成によれば、切換手段からm個のデータ転送制御手段のいずれにも供給されなかった要求信号の論理和として割込信号が供給された場合には、制御手段は、m個のデータ転送制御手段のうち、最も使用していないデータ転送制御手段を選択して、当該データ転送制御手段がデータ入出力を制御している入出力手段におけるデータ転送を中断させ、切換手段を制御して、当該データ転送制御手段に新たな要求信号を供給させると共に、今まで当該データ転送制御手段に供給されていた要求信号を前記論理和に加えるようにしているので、転送速度が速く頻繁に使用しているデータ転送制御手段におけるデータ転送は、中断されることはなく、効率的なデータ転送を行うことができる。
【0057】
また、この発明の別の構成によれば、全体記憶手段から入出力手段におけるデータ入出力制御に関する情報を読み出した後、全体記憶手段に記憶されている情報の書き換えを禁止することにより、データ転送中又はデータ転送が中断中に、全体記憶手段に記憶された情報が書き換えられないようにしているので、情報の整合性を保持することができ、データ転送の中断及び再開を正確かつ容易に行うことができる。
また、この発明の別の構成によれば、切換手段は、n個の入出力手段からのn個の要求信号が印加されるn本の入力ラインと、m本がm個のデータ転送制御手段に接続され、1本が制御手段に接続された(m+1)本の出力ラインと、n本の入力ラインと(m+1)本の出力ラインとの交点に設けられたn×(m+1)個のトランジスタとから構成されているので、入出力手段の個数を増加させたり、データ転送制御手段の個数を増加させる場合であっても、アルゴリズム等を最初から構築し直す必要はなく、切換手段を構成する入力ライン、出力ライン及びトランジスタの数を増やしたりするだけで良いので、設計時の検証も極めて容易であり、汎用性が高く、開発コスト及び開発期間が少なくて済む。
【図面の簡単な説明】
【図1】この発明の一実施例である情報処理装置及びそれに接続される複数個の外部装置の電気的構成を示すブロック図である。
【図2】レジスタ群の構成の一例を示すブロック図である。
【図3】クロスバスイッチの構成の一例を示す回路図である。
【図4】同装置の動作の一例を説明するためのフローチャートである。
【図5】同装置の動作の一例を説明するためのタイミングチャートである。
【図6】第1の従来例である情報処理装置及びそれに接続される複数個の外部装置の電気的構成例を示すブロック図である。
【図7】第2の従来例である情報処理装置及びそれに接続される複数個の外部装置の電気的構成例を示すブロック図である。
【符号の説明】
31 情報処理装置
321〜3215 外部装置
33 CPU(制御手段)
34 レジスタ群
35 アービタ
36 メモリ
37〜40 DMAC(データ転送制御手段)
41 割込コントローラ
420〜4215 入出力手段
43 使用状況管理手段
44 クロスバスイッチ(切換手段)
45 バス
Claims (11)
- バスと、それぞれが前記バスに接続されると共にデータ入出力のためのデータ入出力要求信号を発生するn個(nは2以上の整数)の入出力手段と、装置各部の制御を司る制御手段と、それぞれがデータ転送要求信号に応答して前記バスの使用権を獲得して前記入出力手段におけるデータ入出力を制御するm個(mは整数で、2≦m<nを満たす)のデータ転送制御手段と、前記n個の入出力手段と前記m個のデータ転送制御手段との間に設けられた切換手段と、前記各データ転送制御手段の使用状況を管理する使用状況管理手段とを備え、
前記制御手段は、前記切換手段が、前記n個の入出力手段の中のm個の入出力手段からの前記データ入出力要求信号を前記m個のデータ転送制御手段へ前記データ転送要求信号としてそれぞれ出力し、前記m個の入出力手段以外の新たな入出力手段が前記データ入出力要求信号を発生した場合は、前記使用状況管理手段によって管理される前記各データ転送制御手段の使用状況を参照して、最も使用されていない前記データ転送制御手段への前記データ転送要求信号として、それまで使用していた前記入出力手段からの前記データ入出力要求信号から前記新たな入出力手段からの前記データ入出力要求信号に切換えるように、制御する構成とされ、かつ、
前記切換手段は、前記n個の入出力手段からのn個のデータ入出力要求信号が印加されるn本の入力ラインと、m本が前記m個のデータ転送制御手段に接続され、1本が前記制御手段に対する割込要求として使用される(m+1)本の出力ラインと、前記n本の入力ラインと前記(m+1)本の出力ラインとの交点に設けられたn×(m+1)個のトランジスタとを有して構成されており、前記n×(m+1)個のトランジスタが前記制御手段の制御によりオン/オフされ、前記n本の入力ラインの最大でm本が、前記m本の出力ラインのいずれかと接続されると共に、前記m個のデータ転送制御手段に接続された前記m本の出力ラインのいずれにも接続されなかった入力ラインのいずれもが残り1本の出力ラインと接続されるクロスバスイッチによって構成されていることを特徴とする情報処理装置。 - 前記切換手段は、前記入出力手段から出力されたデータ入出力要求信号のうち、前記データ転送要求信号として前記m個のデータ転送制御手段のいずれにも供給されなかった前記データ入出力要求信号の論理和を割込信号として出力し、
前記制御手段は、前記割込信号が供給された場合には、前記m個のデータ転送制御手段のうち、最も使用していないデータ転送制御手段を選択して、当該データ転送制御手段がデータ入出力を制御している入出力手段におけるデータ転送が行われていれば、これを中断させ、前記切換手段を制御して、当該データ転送制御手段に新たなデータ転送要求信号を供給させると共に、今まで当該データ転送制御手段に前記データ転送要求信号として供給されていたデータ入出力要求信号を前記論理和に加えることを特徴とする請求項1記載の情報処理装置。 - 前記使用状況管理手段は、前記m個のデータ転送制御手段から出力される、データ転送を実施したことを示すアクノリッジ信号がアクティブになった時間的な古さの順に前記m個のデータ転送制御手段にそれぞれ付与された番号が記憶される使用状況情報レジスタを有し、
前記制御手段は、前記使用状況情報レジスタの記憶内容に基づいて、前記最も使用していないデータ転送制御手段を選択する
ことを特徴とする請求項1記載の情報処理装置。 - 前記使用状況管理手段は、前記m個のデータ転送制御手段から出力される、当該データ転送制御手段が現在データ転送を行っており、動作中である場合にアクティブとなるビジー信号がノンアクティブになっている期間をそれぞれカウントするカウンタと、前記カウント値が最も大きいデータ転送制御手段に付与された番号が記憶される使用状況情報レジスタとを有し、
前記制御手段は、前記使用状況情報レジスタの記憶内容に基づいて、前記最も使用していないデータ転送制御手段を選択する
ことを特徴とする請求項1記載の情報処理装置。 - 前記使用状況管理手段は、前記m個のデータ転送制御手段から出力される、当該データ転送制御手段が現在データ転送を行っており、動作中である場合にアクティブとなるビジー信号がノンアクティブになっている期間をそれぞれカウントするカウンタと、前記カウント値が最も大きいデータ転送制御手段に付与された番号が記憶されると共に、前記m個のデータ転送制御手段から出力される、データ転送を実施したことを示すアクノリッジ信号がアクティブになった時間的な古さの順に前記m個のデータ転送制御手段にそれぞれ付与された番号が記憶される使用状況情報レジスタとを有し、
前記制御手段は、前記使用状況情報レジスタの記憶内容に基づいて、前記最も使用していないデータ転送制御手段を選択することを特徴とする請求項1記載の情報処理装置。 - 前記m個のデータ転送制御手段は、それぞれデータ入出力を制御している入出力手段におけるデータ入出力制御に関する情報が記憶される個別記憶手段を有し、
前記n個の入出力手段におけるデータ入出力制御に関する情報がそれぞれ記憶される全体記憶手段を備え、
前記制御手段は、前記最も使用していないデータ転送制御手段がデータ入出力を制御している入出力手段におけるデータ転送が行われていればこれを中断させ、当該データ転送制御手段に新たなデータ転送要求信号を供給させて、当該新たなデータ転送要求信号の発生源たる前記新たなデータ入出力要求信号を供給している入出力手段におけるデータ入出力を制御させる場合には、当該データ転送制御手段の個別記憶手段に記憶されているデータ入出力制御に関する情報を前記全体記憶手段の対応する記憶領域に一時退避させた後、前記全体記憶手段の前記新たなデータ入出力要求信号を供給している入出力手段におけるデータ入出力制御に関する情報を読み出して前記個別記憶手段に記憶させることを特徴とする請求項1記載の情報処理装置。 - 前記全体記憶手段から前記入出力手段におけるデータ入出力制御に関する情報を読み出した後、前記全体記憶手段に記憶されている前記情報の書き換えを禁止することを特徴とする請求項6記載の情報処理装置。
- 前記バスと、前記n個の入出力手段と、前記制御手段と、前記m個のデータ転送制御手段と、前記切換手段とは、同一チップ上に形成された1チップ・マイクロ・コンピュータにより構成されていることを特徴とする請求項1記載の情報処理装置。
- 前記バスは、前記1チップ・マイクロ・コンピュータの内部に設けられたバス、あるいは、前記1チップ・マイクロ・コンピュータの外部に設けられたバス、あるいは、その両方のバスとからなることを特徴とする請求項8記載の情報処理装置。
- 前記n個の入出力手段におけるデータ入出力には、それぞれ予め優先順位が設定されており、前記制御手段は、前記優先順位に基づいて前記切換手段を制御して、前記入出力手段から出力されたデータ入出力要求信号のうち、m個までを前記m個のデータ転送制御手段のいずれかに供給させることを特徴とする請求項1記載の情報処理装置。
- 前記制御手段又は前記データ転送制御手段は、前記バスの一部の使用権を獲得して前記入出力手段におけるデータ入出力を制御することを特徴とする請求項1記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23297599A JP3558559B2 (ja) | 1999-08-19 | 1999-08-19 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23297599A JP3558559B2 (ja) | 1999-08-19 | 1999-08-19 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001056793A JP2001056793A (ja) | 2001-02-27 |
JP3558559B2 true JP3558559B2 (ja) | 2004-08-25 |
Family
ID=16947831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23297599A Expired - Fee Related JP3558559B2 (ja) | 1999-08-19 | 1999-08-19 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3558559B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594967B1 (ko) | 2004-11-29 | 2006-06-30 | 한국과학기술원 | 크로스바 스위치 |
JP2006301724A (ja) * | 2005-04-15 | 2006-11-02 | Seiko Epson Corp | メモリコントローラ、画像処理コントローラ及び電子機器 |
JP4443474B2 (ja) | 2005-06-14 | 2010-03-31 | 株式会社ソニー・コンピュータエンタテインメント | コマンド転送制御装置およびコマンド転送制御方法 |
JP4833217B2 (ja) * | 2005-09-29 | 2011-12-07 | 株式会社トプコン | 半導体分析装置 |
JP2009193282A (ja) * | 2008-02-14 | 2009-08-27 | Sharp Corp | データ処理装置 |
-
1999
- 1999-08-19 JP JP23297599A patent/JP3558559B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001056793A (ja) | 2001-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1645967B1 (en) | Multi-channel DMA with shared FIFO buffer | |
US5524268A (en) | Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases | |
US6775727B2 (en) | System and method for controlling bus arbitration during cache memory burst cycles | |
US7581054B2 (en) | Data processing system | |
CN107967225B (zh) | 数据传输方法、装置、计算机可读存储介质和终端设备 | |
US20090138627A1 (en) | Apparatus and method for high performance volatile disk drive memory access using an integrated dma engine | |
US20110040920A1 (en) | System and method for providing multi-process protection using direct memory mapped control registers | |
EP1645968B1 (en) | Multi-threaded DMA | |
JP4562107B2 (ja) | 複数の仮想ダイレクトメモリアクセスチャネルをサポートするためのダイレクトメモリアクセスエンジン | |
JPH071495B2 (ja) | データ処理システム | |
EP2972860B1 (en) | Dual host embedded shared device controller | |
JP5578713B2 (ja) | 情報処理装置 | |
GB2228349A (en) | Data transfer bus with virtual memory | |
EP1103889B1 (en) | Flexible general-purpose input/output system | |
US8069282B2 (en) | SD switch box in a cellular handset | |
US20220206970A1 (en) | Configurable Multi-Function PCIe Endpoint Controller in an SoC | |
JP3558559B2 (ja) | 情報処理装置 | |
JPS62154045A (ja) | バス調停方式 | |
JP2002342266A (ja) | データプロセッサ | |
JP3206580B2 (ja) | Dmaデータ転送制御方法及び入出力処理装置 | |
JPH06131294A (ja) | データ転送装置 | |
JP3211264B2 (ja) | 外部バス制御方式 | |
Works | DMA Fundamentals on Various PC Platforms | |
JP2002175270A (ja) | バスの排他制御方式 | |
WO2006042261A1 (en) | Multi-channel direct memory access with shared first-in-first-out memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040322 |
|
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: 20040421 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040518 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140528 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |