(57)【要約】  高速データ転送が可能で、回路構成が簡潔、且つ面積の小さいデータ転送装置及び方法並びに半導体回路を提供する。  生成したデータ対を１周期のハンドシェイク信号通信の間に転送するデータ対生成回路３０１と、ハンドシェイク信号に応じてデータ対の一方のデータを出力するマルチプレクサ３０２と、記憶制御入力信号の両方向の遷移に起因してマルチプレクサ３０２から出力されるデータを記憶するメモリ３０５と、ハンドシェイク信号通信を行うとともに記憶制御信号を出力する記憶制御回路３０３と、データ対の一方のデータがメモリ３０５に記憶され、かつ他方のデータがマルチプレクサ３０２から出力された状態となることを待ち合わせる要求信号待ち合わせ回路３０６と、要求信号待ち合わせ回路３０６からの信号に応じてデータ対を受理し、転送先へ出力するデータ対受理回路３０７とを備える。
2009110588.tif 000002
【特許請求の範囲】
【請求項１】
１以上の転送元から１以上の転送先へのデータ転送を行うデータ転送装置であって、
転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、前記偶数個の転送データを二つずつ組みにすることによってデータ対を生成すると共に、生成したデータ対を、ハンドシェイク信号の通信周期に従って出力するデータ対生成回路と、
前記ハンドシェイク信号に応じて、前記データ対の一方のデータを出力するマルチプレクサと、
前記マルチプレクサから出力されるデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じて記憶するメモリと、
４相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、前記メモリを制御すべく前記記憶制御信号を出力する記憶制御回路と、
前記データ対の一方のデータが前記メモリに記憶され、かつ他方のデータが前記マルチプレクサから出力された状態となるのに応じて、要求信号を出力する待ち合わせ回路と、
前記要求信号に応じて前記マルチプレクサ及び前記メモリから前記データ対を受理し、受理した前記データ対を前記転送先へ出力するデータ対受理回路とを備えることを特徴とするデータ転送装置。
【請求項２】
前記メモリは、レベル駆動によるラッチ、及びエッジ駆動によるフリップ・フロップの少なくとも一方を含み、
入力される前記記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に応じて、所定の時間幅を有するパルス信号を生成し、該パルス信号を前記メモリに出力することにより、前記メモリにおける前記データの記憶動作を実行するパルス生成回路を更に備えることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記記憶制御回路は、前記４相式ハンドシェイク・プロトコルに基づいて該記憶制御回路に入力される要求信号と入力通知信号とを待ち合せることによって、前記記憶制御信号の立ち上げ又は立ち下げタイミングを遷移する待合せ素子を含むことを特徴とする請求項１又は２記載のデータ転送装置。
【請求項４】
前記待合せ素子は、対称型２入力Ｃ素子を含むことを特徴とする請求項３記載のデータ転送装置。
【請求項５】
前記対称型２入力Ｃ素子は、３変数多数決論理関数を実現する組合せ論理回路と、その組合せ論理回路の出力端子を該組合せ論理回路の入力端子の一つと接続するフィードバック回路とを含むことを特徴とする請求項４記載のデータ転送装置。
【請求項６】
前記パルス生成回路は、入力信号である前記記憶制御信号の排他的論理和演算を行う論理回路を含むことを特徴とする請求項２乃至請求項５の何れかに記載のデータ転送装置。
【請求項７】
前記パルス生成回路は、入力信号を複数個の分岐信号に分岐させる分岐回路と、その分岐信号の何れかを入力とする遅延回路と、該分岐信号の残りと該遅延回路の出力とを入力として排他的論理和演算を行う論理回路とを含むことを特徴とする請求項２乃至請求項６の何れかに記載のデータ転送装置。
【請求項８】
前記遅延回路において、該遅延回路の出力信号の該遅延回路の入力信号に対する遅延時間は、前記記憶制御回路の出力通知信号に対する入力要求信号の遅延時間と、前記記憶制御回路の出力要求信号に対する入力通知信号の遅延時間との双方よりも小さいことを特徴とする請求項７記載のデータ転送装置。
【請求項９】
前記待ち合わせ回路は、前記記憶制御回路から入力される出力要求信号と該記憶制御回路に入力される要求信号との否定演算を行う論理回路と、論理積演算を行う論理回路とを含むことを特徴とする請求項１乃至請求項８の何れかに記載のデータ転送装置。
【請求項１０】
複数の要求信号入力端子及び一つの要求信号出力端子と、それら要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを備え、１以上の前記要求信号入力端子から第１の要求信号が入力されたとき、各々の第１の要求信号に応じて出力する第２の要求信号の出力順序を決定し、決定した出力順序で前記要求信号出力端子から第２の要求信号を出力し、前記通知信号入力端子を介して第１の通知信号を受け取ったときに、該第１の通知信号を受信する基となった第１の要求信号の送信元に対応する通知信号出力端子から第２の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された複数の入力データを、順番に一つの出力先へ出力する４相調停回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項９の何れかに記載のデータ転送装置。
【請求項１１】
一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び前記要求信号出力端子と同数の通知信号入力端子と、目的地情報入力端子とを備え、前記要求信号入力端子から第３の要求信号が入力されたとき、目的地情報に基づいて前記要求信号出力端子のうち一つを選択して、選択された方から第４の要求信号を出力し、前記第４の要求信号に対する第３の通知信号を、選択された要求信号出力端子に対応する前記通知信号入力端子を介して受け取るのに応じて前記通知信号出力端子から第４の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の何れか、或いは全てのデータ出力先に対して出力する４相選択回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項１０の何れかに記載のデータ転送装置。
【請求項１２】
一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び前記要求信号出力端子と同数の通知信号入力端子とを備え、前記要求信号入力端子を介して第５の要求信号が入力されたとき、前記要求信号出力端子の全てから第６の要求信号を出力し、前記通知信号入力端子の全てから第５の通知信号を受け取ったときに、前記通知信号出力端子から第６の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された入力データを、複数の出力先候補の全てに出力する４相分配回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項１２の何れかに記載のデータ転送装置。
【請求項１３】
複数の要求信号入力端子及び一つの要求信号出力端子と、要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを備え、前記要求信号入力端子の全てから第７の要求信号が入力されたとき、前記要求信号出力端子から第８の要求信号を出力し、前記通知信号入力端子を介して第７の通知信号を受け取ったときに、前記通知信号出力端子の全てから第８の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力する４相待ち合わせ回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項１２の何れかに記載のデータ転送装置。
【請求項１４】
請求項１乃至請求項１３の何れかに記載のデータ転送装置を備えることを特徴とする半導体回路。
【請求項１５】
１以上の転送元から１以上の転送先へのデータ転送を行うデータ転送装置であって、
転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、
前記偶数個の転送データを二つずつ組みにすることによってデータ対を生成し、
生成したデータ対のうちのいずれか一方のデータを、ハンドシェイク信号の通信周期に従ってマルチプレクサから出力し、
前記ハンドシェイク信号の通信周期に従って出力したデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じてメモリに記憶し、
４相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、前記メモリを制御すべく前記記憶制御信号を出力し、
前記データ対の一方のデータが前記メモリに記憶され、かつ他方のデータが前記マルチプレクサから出力された状態となるのに応じて、要求信号を出力し、
前記要求信号に応じて前記マルチプレクサ及び前記メモリから前記データ対を受理し、受理した前記データ対を前記転送先へ出力することを特徴とするデータ転送方法。
【請求項１６】
前記メモリは、レベル駆動によるラッチ、及びエッジ駆動によるフリップ・フロップの少なくとも一方を含み、
入力される前記記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に応じて、所定の時間幅を有するパルス信号を生成し、該パルス信号を前記メモリに出力することにより、前記メモリにおける前記データの記憶動作を実行することを特徴とする請求項１５記載のデータ転送方法。
【請求項１７】
前記４相式ハンドシェイク・プロトコルに基づいて前記記憶制御信号を生成する回路に入力される要求信号と入力通知信号とを待ち合せることによって、前記記憶制御信号の立ち上げ又は立ち下げタイミングを遷移することを特徴とする請求項１５又は１６記載のデータ転送方法。
【請求項１８】
前記パルス信号を生成する際に、入力信号である前記記憶制御信号の排他的論理和演算を行うことを特徴とする請求項１５乃至請求項１７の何れかに記載のデータ転送方法。
【請求項１９】
前記パルス信号を生成する際に、入力信号を複数個の分岐信号に分岐させ、その分岐信号の何れかを遅延させ、該分岐信号の残りと該遅延させた分岐信号との排他的論理和演算を行うことを特徴とする請求項１５乃至請求項１８の何れかに記載のデータ転送方法。
【請求項２０】
前記排他的論理和演算後の信号の前記入力信号に対する遅延時間は、前記記憶制御信号を生成する回路の出力通知信号に対する入力要求信号の遅延時間と、前記記憶制御信号を生成する回路の出力要求信号に対する入力通知信号の遅延時間との双方よりも小さいことを特徴とする請求項１９記載のデータ転送方法。
【請求項２１】
前記要求信号を出力する際に、前記記憶制御信号を生成する回路から入力される出力要求信号と該記憶制御信号を生成する回路に入力される要求信号との否定演算及び論理積演算を行うことを特徴とする請求項１５乃至請求項２０の何れかに記載のデータ転送方法。
【請求項２２】
１以上の要求信号入力端子から第１の要求信号が入力されたとき、各々の第１の要求信号に応じて出力する第２の要求信号の出力順序を決定し、決定した出力順序で一つの要求信号出力端子から第２の要求信号を出力し、一つの通知信号入力端子を介して第１の通知信号を受け取ったときに、前記要求信号入力端子と同数の通知信号出力端子のうち、該第１の通知信号を受信する基となった第１の要求信号の送信元に対応する通知信号出力端子から第２の通知信号を出力することにより、並行して設けられたデータ信号線に入力された複数の入力データを、順番に一つの出力先へ出力する４相調停制御を行うことを特徴とする請求項１５乃至請求項２１の何れかに記載のデータ転送方法。
【請求項２３】
一つの要求信号入力端子から第３の要求信号が入力されたとき、目的地情報に基づいて複数の要求信号出力端子のうち一つを選択して、選択された方から第４の要求信号を出力し、前記第４の要求信号に対する第３の通知信号を、前記要求信号出力端子と同数の通知信号入力端子のうち選択された要求信号出力端子に対応する通知信号入力端子を介して受け取るのに応じて一つの通知信号出力端子から第４の通知信号を出力することにより、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の何れか、或いは全てのデータ出力先に対して出力する４相選択制御を行うことを特徴とする請求項１５乃至請求項２２の何れかに記載のデータ転送方法。
【請求項２４】
一つの要求信号入力端子を介して第５の要求信号が入力されたとき、複数の要求信号出力端子の全てから第６の要求信号を出力し、前記要求信号出力端子と同数の通知信号入力端子の全てから第５の通知信号を受け取ったときに、一つの通知信号出力端子から第６の通知信号を出力することにより、並行して設けられたデータ信号線に入力された入力データを、複数の出力先候補の全てに出力する４相分配制御を行うことを特徴とする請求項１５乃至請求項２３の何れかに記載のデータ転送方法。
【請求項２５】
複数の要求信号入力端子の全てから第７の要求信号が入力されたとき、一つの要求信号出力端子から第８の要求信号を出力し、一つの通知信号入力端子を介して第７の通知信号を受け取ったときに、前記要求信号入力端子と同数の通知信号出力端子の全てから第８の通知信号を出力することにより、並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力する４相待ち合わせ制御を行うことを特徴とする請求項１５乃至請求項２４の何れかに記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路（チップ）などの電子回路におけるデータ転送に関する。
【背景技術】
【０００２】
集積回路の微細化技術の進歩により、一つのチップ上に実装できる素子数が増大している。【０００３】
従来は、クロックと呼ばれる同期信号をチップ全体に分配して、クロックエッジでチップ上の素子を一斉に駆動させる同期式による回路設計が主流であった。【０００４】
しかしながら、素子数の増大にともなって、回路（チップ）上の個々の素子間を流れる信号の遅延は、クロックサイクル時間に対する比率が大きくなっている。このため、クロックエッジを全ての素子に同着させることが困難となっている。【０００５】
そのため、チップ上に搭載されるシステムを機能に応じて複数の機能ブロックに分割して、クロックエッジを同着させる範囲を各機能ブロックに含まれる素子に限定しながら、機能ブロック間の素子へのクロック到着タイミングを任意とする方式（換言すると、異なる機能ブロック間ではクロックエッジの到着タイミングを任意とし、同一の機能ブロックに含まれる素子に関してはクロックエッジを同着させる方式）が提案されている。【０００６】
これは、全体非同期・局所同期（GALS:Globally Asynchronous, Locally Synchronous）方式と呼ばれる回路設計方式である。【０００７】
上記の全体非同期・局所同期方式は、近年回路設計の主流となりつつある。【０００８】
GALS方式による回路設計を行う場合、機能ブロック間のデータ通信のための回路として非同期式論理回路が用いられる。非同期式論理回路とは、クロックを用いる代わりに、データ転送を行うレジスタ間でハンドシェイク信号を用いて転送元及び転送先のレジスタを協調動作させることにより処理する論理回路である。【０００９】
ハンドシェイク信号としては、要求信号と通知信号とが対で用いられる。データの記憶要求信号は、データ転送元のレジスタからデータとともに転送先レジスタへ送られる。【００１０】
転送先レジスタはデータ記憶要求を受け取った時に自レジスタ内に未転送データが残っていなければ到着データを記憶して記憶が完了した旨を記憶完了通知として転送元レジスタへ送る。一方、自レジスタ内に未転送データが残っていれば、未転送データが転送済みになるまでデータ転送元レジスタへ記憶完了通知を送ることなく待機する。【００１１】
転送元レジスタは転送先レジスタから記憶完了通知を受け取ると、記憶中のデータを転送済みとして、次のデータ転送の準備状態に入る。【００１２】
このように非同期式論理回路は、ハンドシェイク信号を用いることにより、データ転送の経路上での輻輳を出発地方向へ通知できる。このため、そのデータ転送の出発地となる機能ブロックで輻輳の通知を受理して転送を一時停止することによって、互いに非同期なクロックで駆動される機能ブロックを協調動作させることができる。【００１３】
非同期式論理回路のハンドシェイク信号通信方式としては、４相式と２相式とがある。【００１４】
４相式ハンドシェイク信号通信は、データ記憶要求及び記憶完了通知を、記憶信号及び通知信号の電圧レベルとして伝達することで行われる。非同期式論理回路のうちでデータの送受信を行う二つのレジスタ間での要求信号及び通知信号がともに低電圧状態であるとき、データ記憶要求は要求信号を高電圧状態にすることで伝達され、記憶完了通知は通知信号を高電圧状態にすることで伝達される。
４相式ハンドシェイク信号通信の場合、データ転送後、次のデータ転送を行うのに先だって、要求信号及び通知信号はともに低電圧状態に戻される。【００１５】
２相式ハンドシェイク信号通信は、データ記憶要求及び記憶完了通知を、記憶信号及び通知信号の遷移として伝達する。非同期式論理回路内でデータの送受信を行う二つのレジスタの間での要求信号及び通知信号がともに低電圧状態であるとき、一つ目のデータの通信におけるデータ記憶要求は要求信号の立ち上がり遷移で伝達され、記憶完了通知は通知信号の立ち上がり遷移で伝達される。
その結果、一つ目のデータ通信によって、要求信号及び通知信号は高電圧状態となり、この状態から二つ目のデータの通信を行うとき、データ記憶要求は要求信号の立ち下がり遷移で電圧され、記憶完了通知は通知信号の立ち下がり遷移で伝達される。【００１６】
転送速度で比較すると、２相式は４相式に比べて高速であるという利点を持つ。４相式では一つのデータ転送を完了するまでに２往復のハンドシェイク信号通信が必要であるが、２相式では１往復の通信しか必要とならないためである。
このため、理論的には２相式は４相式の２倍の転送速度を実現できる。【００１７】
一方、回路構成で比較すると、４相式は２相式と比べて簡潔な構成で実現できるという利点を持つ。レジスタで用いられる記憶素子として、４相式の場合はレベルセンシティブ・ラッチや制御信号の立ち上がり遷移及び立ち下がり遷移の一方で駆動するフリップ・フロップを利用できる。そのため、４相式ハンドシェイク信号通信の非同期式論理回路は、現在広く用いられている論理セルのみで回路を構成できる。【００１８】
一方、２相式ハンドシェイク信号通信の非同期式論理回路は、非特許文献１に示されるように制御信号遷移の双方向で駆動するフリップ・フロップを用いるか、非特許文献２に示されるようにレベルセンシティブ・ラッチや一方の制御信号遷移で駆動するフリップ・フロップとともに、制御信号の両方向の遷移に応じて二つの出力信号を交互に変化させる素子を用いる必要がある。【００１９】
ところが、制御信号遷移の双方を起因として駆動するフリップ・フロップや制御信号の両方の遷移に応じて二つの出力信号を交互に変化させる素子は、ほとんど論理セルライブラリには用意されていない。このため、２相式ハンドシェイク信号通信を制御する非同期式論理回路の設計は実用上ほぼ不可能である。【００２０】
レジスタだけでなく、GALS方式の回路において同期式機能ブロックを接続する非同期式論理回路の設計に必要な非同期式機能ブロックもまた、４相式は２相式に比べて簡潔な構成となる。【００２１】
同期式機能ブロックを接続する非同期式論理回路の設計に必要な非同期式機能ブロックの一例として、入力された複数の要求信号を調停してそのうち一つの要求信号を出力する調停回路がある。【００２２】
非特許文献３に示される４相式のハンドシェイク信号通信用の調整回路の構成を図１に示す。調停回路１００へは要求信号Ri0、Ri1と通知信号Aoとが入力される。調停回路１００からは、通知信号Ai0、Ai1と要求信号Roと調停結果信号Gr0、Gr1とが出力される。調停回路１００は、相互排他モジュール１１０と、直前ハンドシェイク完了モジュール１２０と、出力要求信号生成モジュール１３０と、出力通知信号生成モジュール１４０とで構成される。相互排他モジュール１１０は先着信号選択モジュール１１１と不正信号伝播防止モジュール１１２とで構成される。【００２３】
調停回路１００内の各モジュールは通常の組み合わせ論理セルとフィードバック・ループとによって構成される。【００２４】
出力通知信号生成モジュール１４０を構成する素子であるMullerのＣ素子（“Muller('s) C element”：マラー（ミュラー）のＣ素子）は、二つの入力信号を待ち合わせて、条件が成立する場合にはその出力信号を変化させ、条件不成立の場合には出力信号を変化させずに維持する状態記憶素子である。
図２（ａ）に示すMullerのＣ素子２００は、入力端子Ａ、Ｂと出力端子Ｙとを持つ。
MullerのＣ素子２００は、入力信号がＡ＝０かつＢ＝０となるときＹ＝０を出力し、入力信号Ａ＝１かつＢ＝１となるときＹ＝１を出力するように動作する。また、MullerのＣ素子２００は、入力信号がＡ＝０かつＢ＝１となるとき、又は、入力信号Ａ＝１かつＢ＝０となるとき出力信号Ｙを変化させずに維持する。【００２５】
例えば、MullerのＣ素子２００に入力信号Ａ＝１及びＢ＝１が入力されて出力信号がＹ＝１となっているとする。その後、入力信号Ａ又はＢの一方が変化してＡ＝０かつＢ＝１、又はＡ＝１かつＢ＝０となっても、出力信号はＹ＝１のまま維持される。また、MullerのＣ素子２００に入力信号Ａ＝０及びＢ＝０が入力されて出力信号がＹ＝０となっている場合も同様で、その後、入力信号Ａ又はＢの一方が変化してＡ＝１かつＢ＝０、又はＡ＝０かつＢ＝１となっても、出力信号はＹ＝０のまま維持される。
このように、MullerのＣ素子２００は、同一の入力信号の組Ａ＝０かつＢ＝１が与えられたとしても、その信号の組が入力される直前の値に応じて異なる値を出力する。【００２６】
MullerのＣ素子２００の入力出力信号の関係を図２（ｂ）の動作表２０２に示す。ここでＹ（ｔ−１）は、入力信号Ａ、Ｂのいずれかが遷移する以前の出力信号Ｙの値を示しており、入力信号Ａ＝０かつ入力信号Ｂ＝０の状態からＡ、Ｂの一方が遷移した場合は“０”となり、入力信号Ａ＝１かつ入力信号Ｂ＝１の状態からＡ、Ｂの一方が遷移した場合は“１”となる。【００２７】
MullerのＣ素子は、その待ち合わせと状態記憶との機能により、非同期式論理回路において重要な役割を果たす。
例えば、図１の調停回路１００における出力通知信号モジュール１４０は、MullerのＣ素子二つで構成されており、調停回路１００の出力通知信号Ａｉ０及びＡｉ１は、調停結果信号Ｇｒ０及びＧｒ１と入力通知信号Ａｏとから、以下のように生成される。
Ｇｒ０＝１かつＡｏ＝１であればＡｉ０＝１
Ｇｒ１＝１かつＡｏ＝１であればＡｉ１＝１
Ｇｒ０＝０かつＡｏ＝０であればＡｉ０＝０
Ｇｒ１＝０かつＡｏ＝０であればＡｉ１＝０【００２８】
調停回路１００の出力通知信号Ａｉ０及びＡｉ１の生成においては、上記条件に加えてその条件が揃うまでは出力通知信号Ａｉ０及びＡｉ１は如何なる遷移も起こしてはならないという制約を伴う。このような動作を実現するために、MullerのＣ素子が出力通知信号モジュール１４０において用いられる。【００２９】
４相式ハンドシェイクを行う調停回路が図１に示したように簡潔な構成で実現される理由は、記憶要求や完了通知が電圧レベルとして伝達されることにより、４相式調停回路がハンドシェイク通信の状態を記憶する機構を持つ必要がないためである。
例えば、要求信号Ri0が他方の要求信号Ri1よりも先着したとする。４相式の場合、要求信号はそれぞれ信号レベルRi0=1及びRi1=1として伝達されており、４相式調停回路１１０は、到着が遅かった要求信号Ri1=1をその信号レベルを維持させたまま、他方の要求信号Ri0=1によるハンドシェイクの完了を待たせることができる。これは、Ri1=1の信号レベルだけで、要求信号に対する処理が未了であることを示せるためである。【００３０】
一方、２相式の場合、ハンドシェイク信号の信号遷移として記憶要求や完了通知が伝達されるため、信号レベルだけではハンドシェイク通信状態が不明である。
例えば、要求信号レベルがRi0=Ri1=0である状態から、Ri0=1、Ri1=1の順に信号が立ち上がり遷移したとする。このとき、先着した要求信号Ri0の立ち上がりによる要求を即座に処理開始したとすると、信号Ri0の立ち上がりによるハンドシェイク信号通信が完了するまでRi1はRi1=1のまま維持されることとなる。
ところが、２相式においては、信号状態Ri1=1だけでは、要求信号Ri1の立ち上がりに起因されるハンドシェイク通信が既に開始されている可能性もあるため、要求信号Ri1の立ち上がりに起因されるハンドシェイク通信がまだ開始されていないということを示すことができない。【００３１】
そのため、遅れて到着したRi1の立ち上がりによる要求が未処理であることを２相式調停回路内で記憶しておかねばならない。【００３２】
Ri1の信号遷移による要求が未処理であることの記憶は、Ri1の立ち上がり及び立ち下がりの両方の信号遷移によって引き起こされなければならないだけでなく、入力される通知信号Aoの立ち上がり及び立ち下がりの両方の信号遷移によっても引き起こされなければならないため、２相式調停回路の構成が極めて複雑となる。このため、２相式調停回路の構成は、４相式調停回路と比較して極めて大規模となる。【００３３】
４相式の回路の簡潔性と２相式の高速性との両立の可能性が考えられる技術として、特許文献１に開示される回路がある。
【特許文献１】特許第３８９２３２３号公報
【非特許文献１】S. Furber et al, “Four-phase Micro-pipeline Latch ControＣｔｒｌircuits,” IEEE Transaction on VLSI Systems, Vol. 4, No. 2, pp.247-253, 1996年6月
【非特許文献２】K. Y. Yun et al, “High-Performance Asynchronous Pipeline Circuits,” IEEE Int’l Symposium on Advanced Research on Asynchronous Circuits and Systems, pp. 17-28, 1996年3月
【非特許文献３】Jens Sparso and S. Furber, “Principles of Asynchronous Circuit Design: A Systems Perspective,” Kluwer Academic Publishers, pp. 57-80, 2001年12月.
【発明の開示】
【発明が解決しようとする課題】
【００３４】
しかし、特許文献１に開示される回路は、４相式と２相式のハンドシェイク通信の変換を行うものであって、同期式機能ブロックを接続する非同期式論理回路を設計すると、多数の変換回路が必要となるため、高速性及び回路の簡潔性の実現は期待できない。【００３５】
上記のように、非同期式論理回路は、
（１）４相式のハンドシェイク通信を行う非同期式データ転送回路は、１回のデータ転送に２往復のハンドシェイク信号通信が必要であるため、高速データ転送ができない。
（２）２相式のハンドシェイク通信を行う非同期式データ転送回路は、電圧レベルがハンドシェイク通信における動作状態を示さないため、動作状態を記憶する機構を設ける必要があり回路構造が複雑である。
（３）２相式のハンドシェイク通信を行う非同期式データ転送回路は、記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に起因して記憶動作をする記憶素子が必要となるため、回路面積が大きくなってしまう。
という問題がある。【００３６】
本発明は係る問題に鑑みてなされたものであり、高速データ転送が可能であり、且つ簡潔な回路構成であり、且つ面積の小さいデータ転送装置及び方法並びに半導体回路を提供することを目的とする。
【課題を解決するための手段】
【００３７】
上記目的を達成するため、本発明は、第１の態様として、１以上の転送元から１以上の転送先へのデータ転送を行うデータ転送装置であって、転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、偶数個の転送データを二つずつ組みにすることによってデータ対を生成すると共に、生成したデータ対を、ハンドシェイク信号の通信周期に従って出力するデータ対生成回路と、ハンドシェイク信号に応じて、データ対の一方のデータを出力するマルチプレクサと、マルチプレクサから出力されるデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じて記憶するメモリと、４相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、メモリを制御すべく記憶制御信号を出力する記憶制御回路と、データ対の一方のデータがメモリに記憶され、かつ他方のデータがマルチプレクサから出力された状態となるのに応じて、要求信号を出力する待ち合わせ回路と、要求信号に応じてマルチプレクサ及びメモリからデータ対を受理し、受理したデータ対を転送先へ出力するデータ対受理回路とを備えることを特徴とするデータ転送装置を提供するものである。【００３８】
また、上記目的を達成するため、本発明は、第２の態様として、上記本発明の第１の態様に係るデータ転送装置を備えることを特徴とする半導体回路を提供するものである。【００３９】
また、上記目的を達成するため、本発明は、第３の態様として、１以上の転送元から１以上の転送先へのデータ転送を行うデータ転送装置であって、転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、偶数個の転送データを二つずつ組みにすることによってデータ対を生成し、生成したデータ対のうちのいずれか一方のデータを、ハンドシェイク信号の通信周期に従ってマルチプレクサから出力し、ハンドシェイク信号の通信周期に従って出力したデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じてメモリに記憶し、４相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、メモリを制御すべく記憶制御信号を出力し、データ対の一方のデータがメモリに記憶され、かつ他方のデータがマルチプレクサから出力された状態となるのに応じて、要求信号を出力し、要求信号に応じてマルチプレクサ及びメモリからデータ対を受理し、受理したデータ対を転送先へ出力することを特徴とするデータ転送方法を提供するものである。
【発明の効果】
【００４０】
本発明によれば、高速データ転送が可能であり、且つ簡潔な回路構成であり、且つ面積の小さいデータ転送装置及び方法並びに半導体回路を提供できる。
【発明を実施するための最良の形態】
【００４１】
〔第１の実施形態〕
図３に、本発明の第１の実施形態に係るデータ転送装置の内部構成を示す。データ転送装置３００は、データ対生成回路３０１、マルチプレクサ３０２、記憶制御回路３０３、パルス信号生成回路３０４、メモリ３０５、要求信号待ち合わせ回路３０６、データ対受理回路３０７を有する。【００４２】
データ対生成回路３０１は、外部からの１以上の入力データからなるデータ列を受け取ったタイミングにおいて、奇数個の未送信データを保持しているときには奇数個（例えば一つ）のダミーデータを付加して保持データ数を偶数とする。なお、ダミーデータ数は任意の奇数で良いが、無駄なデータ転送を抑えるために一つだけ付加することが好ましい。また、データ対生成回路３０１は、データ列における先頭のデータとその次のデータをそれぞれ第１のデータ出力端子及び第２のデータ出力端子からデータ対として出力する。さらに、データ対生成回路３０１は、入力データが全て送信済みとなるまでの間、データ対に対応した内部要求信号Ｒｍを繰り返し出力する。ここで、内部要求信号Ｒｍは、二種類の電圧状態を取りうる信号であるとする。データ対生成回路３０１は、外部からの入力信号によって状態遷移する順序論理回路として実現できる。【００４３】
マルチプレクサ３０２は、データ対生成回路３０１から入力された内部要求信号Ｒｍが一方の電圧状態であるときには第１のデータ出力端子Ｄｐからの信号をデータ対生成回路３０１の出力として伝播させ、データ対生成回路３０１から入力された内部要求信号Ｒｍが他方の電圧状態であるときには第２のデータ出力端子Ｄｎからの信号をデータ対生成回路３０１の出力として伝播させる。マルチプレクサ３０２は、１ビットの選択信号の状態により二つのデータ入力のうちの一方の値を出力する組み合わせ論理回路として実現することが可能である。【００４４】
記憶制御回路３０３は、データ対生成回路３０１からの内部要求信号Ｒｍとデータ対受理回路３０７からの通知信号Ａｒとを受け取って、４相ハンドシェイクプロトコルに従って、メモリ３０５へ制御信号Ｌｔを、データ対生成回路３０１へ内部通知信号Ａｍを、データ対受理回路３０７への要求信号Ｒｒをそれぞれ出力する。記憶制御回路３０３は、図２に示したものと同様のMullerのＣ素子６０１と否定（ＮＯＴ）ゲートとによって図４（ａ）に示すように実現可能である。なお、図４（ｂ）に示すように、MullerのＣ素子６０１は、３入力多数決セル６０１ａとフィードバック・ループ６０１ｂとによって構成できる。【００４５】
パルス信号生成回路３０４は、記憶制御回路３０３からメモリ３０５の制御信号Ｌｔを受け取って、その制御信号の立ち上がり遷移及び立ち下がり遷移の際に、パルス信号Ｐを生成する。パルス信号Ｐは、記憶制御回路３０３のデータ対生成回路３０１との間の通知信号Ａｍ及び要求信号Ｒｍの最小遅延並びに要求信号待ち合わせ回路３０６への要求信号Ｒｒ及びデータ対受理回路３０７からの通知信号Ａｒの最小遅延よりも短い時間のパルスである。パルス信号生成回路３０４は、排他的論理和（ＸＯＲ）ゲートと遅延ゲートとによって図５に示すように実現可能である。【００４６】
メモリ３０５は、パルス信号生成回路３０４からのパルス信号Ｐを受け取ってマルチプレクサ３０２のデータ出力信号Ｄｍを記憶し、データ対受理回路３０７へデータＤｒを出力する。メモリ３０５は、転送データのビット幅と同数の記憶素子で実現可能である。記憶素子としては、制御信号の立ち上がり及び立ち下がりの一方の遷移に起因して記憶動作するレベルセンシティブ・ラッチとフリップ・フロップとの少なくとも一方を適用可能である。レベルセンシティブ・ラッチを用いた記憶デバイスは、フリップ・フロップを用いた記憶デバイスよりも少ないトランジスタ数で構成できるため、デバイスの小面積化が可能である。一方、フリップ・フロップを用いた記憶デバイスは、制御信号の立ち上がり及び立ち下がりの一方の遷移に起因して記憶動作を行わせるためのパルス幅の設定がレベルセンシティブ・ラッチよりもラフで良いため、タイミング設計が容易である。【００４７】
要求信号待ち合わせ回路３０６は、記憶制御回路３０３から入力される要求信号Ｒｒと、要求信号Ｒｒを出力している記憶制御回路３０３に入力される内部要求信号Ｒｍの否定を待ち合わせて、待ち合わせ要求信号Ｒｆを出力する。要求信号待ち合わせ回路３０６は、論理積（ＡＮＤ）ゲートとＮＯＴゲートとによって実現可能である。【００４８】
データ対受理回路３０７は、要求信号待ち合わせ回路３０６からの出力信号を受け取って、メモリ３０５が記憶しているデータとメモリ３０５へ入力されているデータとをデータ対として受信し、データ転送装置３００の外部へ出力する。データ対受理回路３０７は、外部からの入力信号によって状態遷移する順序論理回路として実現できる。【００４９】
図６に、データ転送装置３００の動作の流れを示す。
まず、データ対生成回路３０１は、データ転送装置３００の外部からの送信データを受理する（ステップＳ４０１）。データ対生成回路３０１は、所定の時間が経過するまでの間送信データの受理を繰り返し、受理した送信データをデータ列として記憶する（ステップＳ４０２）。【００５０】
データ対生成回路３０１は、所定の時間が経過した時点で（ステップＳ４０２／Ｙｅｓ）、外部から受理した送信データの数が偶数であるか否かを判断する（ステップＳ４０３）。データ対生成回路３０１は、受理した送信データの数が奇数であれば（ステップＳ４０３／Ｎｏ）、受理したデータ列の末尾に奇数個のダミーデータを追加する（ステップＳ４０４）。一方、受理した送信データの数が偶数であれば（ステップＳ４０３／Ｙｅｓ）、データ対生成回路３０１はダミーデータの追加は行わない。【００５１】
その後、データ対生成回路３０１は、データ列の最初の二つのデータからなるデータ対とともに内部要求信号（Ｒｍ＝１）をマルチプレクサ３０２、記憶制御回路３０３及び要求信号待ち合わせ回路３０６へ出力する（ステップＳ４１０）。【００５２】
マルチプレクサ３０２は、データ対生成回路３０１によって出力されたデータ列の最初の二つのデータと内部要求信号（Ｒｍ＝１）とを受け取り、データ対において前者（データ列上で奇数番目）となるデータ（データ対生成回路３０１の第１のデータ出力端子から出力されたデータＤｐ）を送信データＤｍとして出力する（ステップＳ４１１）。【００５３】
記憶制御回路３０３は、内部要求信号Ｒｍ＝１をデータ対生成回路３０１から受信した時点で通知信号Ａｒ＝０を受け取っているならば（ステップＳ４１２／Ｙｅｓ）、要求信号待ち合わせ回路３０６へ要求信号Ｒｒ＝１を、データ対生成回路３０１へ内部通知信号Ａｍ＝１を、パルス信号生成回路３０４へ記憶制御信号Ｌｔ＝１をそれぞれ出力する（ステップＳ４１３）。なお、内部要求信号Ｒｍ＝１をデータ対生成回路３０１から受信した時点で通知信号Ａｒ＝１の場合は、前回処理分のデータをメモリ３０５から引き取る処理が完了していないため、そのデータがデータ対受理回路３０７に引き取られてＡｒ＝０がデータ対受理回路３０７から入力されるまで待機する（ステップＳ４１２）。【００５４】
パルス信号生成回路３０４は、ステップＳ４１３における記憶制御信号Ｌｔの立ち上がり遷移に対応して、記憶制御パルス信号Ｐを生成する（ステップＳ４１４）。【００５５】
メモリ３０５は、ステップＳ４１４において生成されたパルス信号Ｐがパルス信号生成回路３０４から入力されると、ステップＳ４１１でマルチプレクサ３０２から出力された送信データＤｍ（奇数番データ）を記憶する（ステップＳ４１５）。【００５６】
データ対生成回路３０１は、内部通知信号Ａｍ＝１を受信すると、データ対の出力を維持しつつＲｍ＝０をマルチプレクサ３０２、記憶制御回路３０３及び要求信号待ち合わせ回路３０６へ出力する（ステップＳ４２０）。【００５７】
マルチプレクサ３０２は、データ対生成回路３０１によって出力されているデータ対とともに内部要求信号Ｒｍ＝０を受け取って、データ対における後者（データ列上で偶数番目）となるデータ（データ対生成回路３０１の第２のデータ出力端子から出力されたデータＤｎ）を送信データＤｍとして出力する（ステップＳ４２１）。【００５８】
要求信号待ち合わせ回路３０６は、要求信号Ｒｒ＝１と内部要求信号Ｒｍ＝０とを待ち合わせて、待ち合わせ要求信号Ｒｆ＝１をデータ対受理回路３０７へ出力する（ステップＳ４２２）。【００５９】
データ対受理回路３０７は、待ち合わせ要求信号Ｒｆ＝１を受けて、メモリ３０５及びマルチプレクサ３０２からデータ対を受信するとともに、通知信号Ａｒ＝１を記憶制御回路３０３へ出力する（ステップＳ４２３）。データ対を受信したデータ対受理回路３０７は、まず、データ対のうち奇数番のデータをデータ出力Ｄｏとして出力する（ステップＳ４２４）。その後、データ対受理回路３０７は、データ対のうち偶数番のデータをデータ出力Ｄｏとして出力する（ステップＳ４２５）。【００６０】
記憶制御回路３０３は、通知信号Ａｒ＝１を受け取ると、要求信号待ち合わせ回路３０６へ要求信号Ｒｒ＝０を、データ対生成回路３０１へ内部通知信号Ａｍ＝０を、パルス信号生成回路３０４へ記憶制御信号Ｌｔ＝０をそれぞれ出力する（ステップＳ４２６）。要求信号待ち合わせ回路３０６は、要求信号Ｒｒ＝０に遷移したことを受けて待ち合わせ要求信号Ｒｆ＝０をデータ対受理回路３０７へ出力する。【００６１】
パルス信号生成回路３０４は、ステップＳ４２６における記憶制御信号Ｌｔの立ち下がり遷移に対応して記憶制御用のパルス信号Ｐを生成する（ステップＳ４２７）。【００６２】
メモリ３０５は、パルス信号生成回路３０４からパルス信号Ｐが入力されると、マルチプレクサ３０２から出力された偶数番のデータ（データ対生成回路３０１の第２のデータ出力端子から出力されてきたデータＤｎ）を記憶する（ステップＳ４２８）。そして、データ対受理回路３０７は、待ち合わせ要求信号Ｒｆ＝０が要求信号待ち合わせ回路３０６から入力されると通知信号Ａｒ＝０を出力する（ステップＳ４２９）。【００６３】
その後、データ対生成回路３０１は、ステップＳ４１０までに得たデータ列全ての出力を完了したか否かを判断する（ステップＳ４３０）。データ対生成回路３０１がデータ列全ての出力を完了した場合には（ステップＳ４３０／Ｙｅｓ）、ステップＳ４０１へ戻る。一方、データ対生成回路３０１がデータ列全ての出力を完了していない場合には（ステップＳ４３０／Ｎｏ）、ステップＳ４１０へ戻り、ステップＳ４１０〜Ｓ４２９の動作を繰り返す。【００６４】
なお、上記の動作のうちステップＳ４２７〜Ｓ４２８の動作（偶数番データをメモリ３０５に記憶することに関連する動作）は、省略することも可能である。ただし、これらの動作を行わないようにすると、奇数番のデータと偶数番のデータとで異なる処理を行うこととなるため、データ転送装置の回路構成が複雑になってしまう。ステップＳ４２６〜Ｓ４２９の動作を行うように回路を構成することにより、図３に示したような簡略な構成の回路でデータ転送を行うことが可能となる。【００６５】
図６に示したフローチャートの一部のステップは並行して処理することが可能である。
図７〜図１０に、データ転送装置３００に含まれる各部の動作の流れを示す。図７〜図１０の各部の動作は、並列に処理可能である。【００６６】
データ転送装置３００に含まれる各部は、他の機能部からの入力信号の待ち合わせを行うことによって動作する。図６に示した動作は、図７〜図１０に示す各部の動作の組み合わせの一例である。【００６７】
図７に、データ対生成回路３０１の動作の流れを示す。データ対生成回路３０１は、転送元からデータを取得する「データ受信処理」と転送先に向けてデータを出力する「データ転送処理」との二つの動作を行う。ステップＳ１２０１〜Ｓ１２０３は、図６のステップＳ４０１〜Ｓ４０２に対応する。ステップＳ１２０３〜Ｓ１２０５は、図６のステップＳ４０３〜Ｓ４０４に対応する。ステップＳ１２０６は、図６のステップＳ４２６における実行待ちに相当する。ステップＳ１２０７は図６のステップＳ４１１に対応する。ステップＳ１２０８は、図６のステップＳ４１３における実行待ちに相当する。ステップＳ１２０９、Ｓ１２１０は、図６のステップＳ４２０、Ｓ４３０にそれぞれ対応する。なお、「データ受信処理」と「データ転送処理」とは、パラレルに行っても良いし、シリアルに行っても良い。【００６８】
図８に、マルチプレクサ３０２の動作の流れを示す。ステップＳ１３０１は、図６のステップＳ４１０及びＳ４２０に対応しており、これらのステップのうちどちらが実行されたかを示す条件分岐である。ステップＳ１３０２はステップＳ４１０に対応しており、マルチプレクサ３０２はデータ対生成回路３０１から出力されている新規データ対のうち奇数番目のデータを入力として受け取る。ステップＳ１３０３はステップＳ４２０に対応しており、マルチプレクサ３０２はデータ対生成回路３０１によって出力が維持されているデータ対のうち偶数番目のデータを入力として受け取る。ステップＳ１３０４はステップＳ４１１及びＳ４２１に対応しており、マルチプレクサ３０２は、ステップＳ１３０２又はＳ１３０３で入力されたデータを出力する。【００６９】
図９に、記憶制御回路３０３、パルス信号生成回路３０４及びメモリ３０５の動作の流れを示す。ステップＳ１４０１は、データ対生成回路３０１よってステップＳ４１０が実行され、かつステップＳ４１２の条件分岐において条件が成立した場合の記憶制御回路３０３の動作である。ステップＳ１４０２はステップＳ４１３に対応する記憶制御回路３０３の動作である。ステップＳ１４０３はステップＳ４１４に対応するパルス信号生成回路３０４の動作である。ステップＳ１４０４はステップＳ４１５に対応するメモリ３０５の動作である。ステップＳ１４０５はデータ対生成回路３０１によってステップＳ４２０が実行され、かつデータ対受理回路３０７によってステップＳ４２２が実行された場合の記憶制御回路３０３の動作である。ステップＳ１４０６は、ステップＳ４２６に対応する記憶制御回路３０３の動作である。ステップＳ１４０７は、ステップＳ４２７に対応するパルス信号生成回路３０４の動作である。ステップＳ１４０８はステップＳ４２８に対応するメモリ３０５の動作である。【００７０】
図１０に、要求信号待ち合わせ回路３０６及びデータ対受理回路３０７の動作の流れを示す。
ステップＳ１５０１は、ステップＳ４２２の条件分岐に対応する要求信号待ち合わせ回路３０６の動作である。ステップＳ１５０２〜Ｓ１５０５は、ステップＳ４２３〜Ｓ４２５にそれぞれ対応するデータ対受理回路３０７の動作である。ステップＳ１５０６は、記憶制御回路３０３によってステップＳ４２６が実行されたか否かの条件分岐で、データ対受理回路３０７は要求信号Ｒｒ＝０となるのを待機する。ステップＳ１５０８は、ステップＳ４２９に対応するデータ対受理回路３０７の動作である。【００７１】
上記説明した図７〜図１０に示す各部の動作を組み合わせることによって、データ転送装置３００全体の動作を表すことが可能である。【００７２】
以上のように、本実施形態に係るデータ転送装置は、データ対生成回路３０１で二つのデータからなるデータ対を生成し、マルチプレクサ３０２で４相ハンドシェイク・プロトコルの１周期の間に二つのデータを順番に転送し、パルス信号生成回路３０４によって４相ハンドシェイク・プロトコルの１周期の間にメモリ３０５を２度駆動するように構成されているため、従来の４相式によるデータ転送装置の２倍の転送速度を実現できる。【００７３】
さらに、本実施形態においては、データ対生成回路３０１へ所定の時刻までに入力されたデータの個数が奇数であった場合にダミーデータを追加して、実際に転送されるデータの個数を偶数とするため、４相ハンドシェイク・プロトコルの１周期を不可分な単位とした転送を行える。このため、本実施形態に係るデータ転送装置は、回路構成が簡潔な４相ハンドシェイク制御回路を実現できる。【００７４】
また、本実施形態においては、パルス信号生成回路３０４を用いて記憶制御信号の両方の遷移についてパルスを生成しているため、メモリ３０５として一方の制御信号遷移で駆動するラッチやフリップ・フロップを適用できる。このため、メモリ３０５の回路面積を小さくできる。【００７５】
なお、ここではパルス信号生成回路３０４を備えた構成を例としたが、図１１に示すように、データ対受理回路３０７の直前に配置されているパルス信号生成回路３０４は、省略することも可能である。【００７６】
〔第２の実施形態〕
本発明を好適に実施した第２の実施形態について説明する。
上記第１の実施形態においては、最もシンプルな１入力１出力の構成を例としたが、本発明は入力数や出力数が１ではない場合にも適用可能である。
入力数や出力数が１ではない場合には、データ転送装置内に分岐や合流のための回路を設けることとなる。データの分岐や合流を実現するための回路としては、４相調停回路、４相待ち合わせ回路、４相分配回路、及び４相選択回路が挙げられる。【００７７】
４相調停回路は、２以上の入力信号を一つずつ順番に次段へ送るために用いる回路である。４相調停回路としては、図１に示した調停回路１００を適用可能である。なお、３以上の入力信号を順番に次段へ送る場合には、２入力１出力の４相調停回路を複数段直列に配置すればよい。例えば、Ａ、Ｂ、Ｃの三つの入力信号を調停する場合には、前段の４相調停回路でＡとＢとの間で調停を行って先着側を調停結果Ｄとして出力し、後段の４相調停回路でＤとＣとの間で調停を行って先着側を調停結果とすればよい。【００７８】
４相選択回路は、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補のいずれかに選択して出力するために用いる回路である。４相選択回路は、一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び要求信号出力端子と同数の通知信号入力端子と、目的地情報入力端子とを有する回路である。４相選択回路は、要求信号入力端子から要求信号が入力されたとき、目的地情報に基づいて要求信号出力端子のうち一つを選択して、選択された方から要求信号を出力する。そして４相選択回路は、出力要求信号に対する通知信号を選択された要求信号出力端子に対応する通知信号入力端子を介して受け取って、通知信号出力端子から通知信号を出力する。【００７９】
図１２に４相選択回路の構成例を示す。図示する４相選択回路は、要求信号入力端子Ｒｉ及び要求信号出力端子Ｒｏ０、Ｒｏ１と、通知信号出力端子Ａｉ及び通知信号入力端子Ａｏ０、Ａｏ１と、目的地情報入力端子Ｓ０、Ｓ１とを有する。４相選択回路は、要求信号入力端子Ｒｉから要求信号が入力されたとき、目的地情報に基づいて要求信号出力端子Ｒｏ０、Ｒｏ１のうち一つを選択して、選択された方から要求信号を出力する。そして４相選択回路は、出力要求信号に対する通知信号を選択された要求信号出力端子に対応する通知信号入力端子Ａｏ０、Ａｏ１を介して受け取って、通知信号出力端子Ａｉから通知信号を出力する。【００８０】
図１２に示した４相選択回路の動作の一例を示す。初期状態では、Ｒｉ＝Ａｉ＝Ｒｏ０＝Ｒｏ１＝Ａｏ０＝Ａｏ１＝０で、Ｓ０及びＳ１の値は任意とする。
初期状態は４相選択回路は奇数番データ待機状態である。４相選択回路には、入力要求信号Ｒｉ＝１が与えられるとともに並行データ信号線に奇数番データが入力され、奇数番データ転送状態に入る。奇数番データ転送状態では、４相選択回路は、奇数番データと後続する偶数番データとから成るデータ対の転送方向を示す目的地情報信号が入力される。データ対の転送方向がデータ出力０番側ならば（Ｓ０，Ｓ１）＝（１，０）が入力され、データ対の転送方向がデータ出力１番側ならば（Ｓ０，Ｓ１）＝（０，１）が入力される。【００８１】
（Ｓ０，Ｓ１）＝（１，０）が入力された場合は、MullerのＣ素子によってＲｏ０＝１となる一方でＲｏ１＝０のままとなり、要求信号がデータ出力０番側のみへ送られる。
一方、（Ｓ０，Ｓ１）＝（０，１）が入力された場合は、MullerのＣ素子によってＲｏ０＝０のままである一方でＲｏ１＝１となり、要求信号がデータ出力１番側のみへ送られる。【００８２】
奇数番データ転送の際にＲｏ０＝１となった場合には、データ出力０番側からの通知信号Ａｏ０＝１が入力される。また、奇数番データ転送の際にＲｏ１＝１となった場合には、データ出力１番側からの通知信号Ａｏ１＝１が入力される。いずれの場合においても、４相選択回路はＡｉ＝１を出力して、偶数番データ待機状態に入る。【００８３】
偶数番データ待機状態では、４相選択回路には入力要求信号Ｒｉ＝０が与えられ、目的地情報信号（Ｓ０，Ｓ１）＝（０，０）が入力されるとともに、並行データ信号線に偶数番データあるいはダミーデータが入力され、偶数番データ転送状態に入る。【００８４】
偶数番データ転送状態では、４相選択回路は、奇数番データ転送の際に入力されていたデータ対の転送方向を示す目的地情報信号に従って動作する。奇数番データ転送の際に（Ｓ０，Ｓ１）＝（１，０）が入力されていた場合は、MullerのＣ素子によってＲｏ０＝０となる一方でＲｏ１＝０のままとなり、要求信号がデータ出力０番側のみへ送られる。一方、奇数番データ転送の際に（Ｓ０，Ｓ１）＝（０，１）が入力されていた場合は、MullerのＣ素子によってＲｏ０＝０のままである一方でＲｏ１＝０となり、要求信号がデータ出力１番側のみへ送られる。【００８５】
偶数番データ転送の際にＲｏ０＝０となった場合には、データ出力０番側からの通知信号Ａｏ０＝０が入力される。また、偶数番データ転送の際にＲｏ１＝０となった場合には、データ出力０番側からの通知信号Ａｏ１＝０が入力される。いずれの場合においても、４相選択回路はＡｉ＝０を出力して、奇数番データ待機状態に戻る。【００８６】
４相分配回路は、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の全てに出力するために用いる回路である。４相分配回路は、一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び要求信号出力端子と同数の通知信号入力端子とを有する回路である。４相分配回路は、要求信号入力端子を介して要求信号が入力されたとき、要求信号出力端子の全てから要求信号を出力する。そして、４相分配回路は、通知信号入力端子の全てから通知信号を受け取ったときに、通知信号出力端子から通知信号を出力する。【００８７】
図１３に４相分配回路の構成例を示す。図示する４相分配回路は、要求信号入力端子Ｒｉ及び要求信号出力端子Ｒｏ０、Ｒｏ１と、通知信号出力端子Ａｉ及び通知信号入力端子Ａｏ０、Ａｏ１とを有する。４相分配回路は、要求信号入力端子Ｒｉを介して要求信号が入力されたとき、要求信号出力端子Ｒｏ０、Ｒｏ１の両方から要求信号を出力する。そして、４相分配回路は、通知信号入力端子Ａｏ０、Ａｏ１の両方から通知信号を受け取ったときに、通知信号出力端子Ａｉから通知信号を出力する。【００８８】
４相待ち合わせ回路は、並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力するために用いる回路である。４相待ち合わせ回路は、複数の要求信号入力端子及び一つの要求信号出力端子と、要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを有する。４相待ち合わせ回路は、要求信号入力端子の全てから要求信号が入力されたとき、要求信号出力端子から要求信号を出力する。そして、４相待ち合わせ回路は、通知信号入力端子を介して通知信号を受け取ったときに、通知信号出力端子の全てから通知信号を出力する。【００８９】
図１４に、４相待ち合わせ回路の構成例を示す。図示する４相待ち合わせ回路は、要求信号入力端子Ｒｉ０、Ｒｉ１及び要求信号出力端子Ｒｏと、通知信号出力端子Ａｉ０、Ａｉ１及び通知信号入力端子Ａｏとを有する。４相待ち合わせ回路は、要求信号入力端子Ｒｉ０、Ｒｉ１の両方から要求信号が入力されたとき、要求信号出力端子Ｒｏから要求信号を出力する。そして、４相待ち合わせ回路は、通知信号入力端子Ａｏを介して通知信号を受け取ったときに、通知信号出力端子Ａｉ０、Ａｉ１の両方から通知信号を出力する。【００９０】
並行するデータ信号線は、Ｒｉ０／Ａｉ０に並行するあるデータ入力とＲｉ１／Ａｉ１に並行する別のデータ入力を束ねたものとすることができる。また、両者の入力データを比較して、所定の方法で一方を選び出力するような組合せ回路を、両データ入力およびデータ出力に接続することも可能である。【００９１】
以下の説明においては、４相調停回路を用いた２入力１出力の構成を例とするが、上記の４相調停回路、４相待ち合わせ回路、４相分配回路、及び４相選択回路を適宜組み合わせることによって、任意の入力数及び出力数のデータ転送装置を構成可能である。【００９２】
図１５に、本実施形態に係るデータ転送装置の構成を示す。データ転送装置５００は、二つのデータ入力と一つのデータ出力とを有する装置である。
データ転送装置５００は、データ対生成回路５０１、５１１、メモリ５０５、５１５、５２５、記憶制御回路５０３、５１３、５２３、パルス信号生成回路５０４、５１４、５２４、マルチプレクサ５０２、５１２、５２２、４相調停回路５２９、要求信号待ち合わせ回路５９８、データ対受理回路５９９を有する。【００９３】
メモリ５０５、５１５、５２５は、制御入力信号が高電圧状態のときには入力データをそのまま出力端子から出力し、制御入力信号が低電圧状態のときにはその状態になったときの入力データの値を保持するレベルセンシティブ・ラッチを適用できる。以後、高電圧状態の信号を信号値１と表記し、低電圧状態の信号を信号値０と表記する。【００９４】
記憶制御回路（Ｃｔｒｌ）５０３、５１３、５２３は、図４（ａ）に示した記憶制御回路６００として構成される。記憶制御回路６００に含まれるMullerのＣ素子６０１は、図４（ｂ）に示したように３入力多数決セル６０１ａとフィードバック・ループ６０１ｂとによって構成される。【００９５】
４相調停回路５２９は、図１に示した調停回路１００と同様である。４相調停回路５２９は、入力要求信号がＲｉ０＝１となるとき他方がＲｉ１＝０で尚且つ出力通知信号がＡｉ１＝０であれば、調停結果信号（Ｇｒ０，Ｇｒ１）＝（１，０）を出力して、Ｒｉ０＝１→Ｒｏ＝１→Ａｏ＝１→Ａｉ０＝１→Ｒｉ０＝０→Ｒｏ＝０→Ａｏ＝０→Ａｉ０＝０の系列での信号遷移を行う。このとき、当該調停回路のハンドシェイク信号経路の使用権が０番側入力に与えられているという。
同様に、４相調停回路５２９は、入力要求信号がＲｉ１＝１となるとき他方がＲｉ０＝０で尚且つ出力通知信号がＡｉ０＝０であれば、調停結果信号（Ｇｒ０，Ｇｒ１）＝（０，１）を出力して、Ｒｉ１＝１→Ｒｏ＝１→Ａｏ＝１→Ａｉ１＝１→Ｒｉ１＝０→Ｒｏ＝０→Ａｏ＝０→Ａｉ１＝０の系列での信号遷移を行う。このとき、当該調停回路のハンドシェイク信号経路の使用権が１番側入力に与えられているという。【００９６】
パルス信号生成回路（ＰＧ）５０４、５１４、５２４は、図５に示した排他的論理和（ＸＯＲ）素子７０１と遅延素子７０２とからなるパルス信号生成回路７００として構成される。
なお、パルス信号生成回路５０４、５１４、５２４のうち、データ対受理回路５９９の直前に配置されているパルス信号生成回路５２４は、省略することも可能である。【００９７】
マルチプレクサ５０２、５１２は、組み合わせ論理回路として構成される。一方、マルチプレクサ５２２は、４相調停回路５２９からの信号Ｇｒ０及びＧｒ１を制御入力信号として受け取り、Ｇｒ０＝１かつＧｒ１＝０のときは入力端子Ｄｍ０からのデータを出力端子Ｄｍ２へ伝播させ、Ｇｒ０＝０かつＧｒ１＝１のときは入力端子Ｄｍ１からのデータを出力端子Ｄｍ２へ伝播させ、Ｇｒ０＝Ｇｒ１＝０のときは制御入力信号がその状態になる直前に出力されているデータを保持して出力端子Ｄｍ２から出力する順序回路として構成される。【００９８】
要求信号待ち合わせ回路５９８は、ＡＮＤ素子及びＮＯＴ素子によって構成される。【００９９】
データ対生成回路５０１、５１１は、図６のステップＳ４０１〜Ｓ４１０及びＳ４２０、Ｓ４３０を実行する同期式順序回路として構成される。このとき、データ対生成回路５０１、５１１への入力通知信号Ａｍ０及びＡｍ１は非同期信号であるため、この非同期信号を同期化するように複数段のフリップ・フロップを直列接続した回路などで構成される。データ対生成回路５０１、５１１は、それぞれデータ対のうちの奇数番目のデータを出力するための第１の出力端子とデータ対のうちの偶数番目のデータを出力するための第２の出力端子を有する。【０１００】
データ対受理回路５９９は、図６のステップＳ４２３〜Ｓ４２５及びＳ４２９を実行する同期式順序回路として構成される。このとき、データ対受理回路５９９へ入力される待ち合わせ要求信号Ｒｆは非同期信号であるため、データ対受理回路５９９は、この非同期信号を同期化するように複数段のフリップ・フロップを直列接続した回路などで構成される。【０１０１】
データ転送装置５００のうち、データ対生成回路５０１とマルチプレクサ５０２と記憶制御回路５０３とパルス信号生成回路５０４とメモリ５０５との動作に関して、データ転送装置５００内の全ての信号の値が０である状態を初期状態として各信号の波形を図１６に示す。【０１０２】
データ入力Ｄｉ０として、ある時刻までに二つのデータｄ０及びｄ１がデータ対生成回路５０１へ入力されたとする（ステップＳ４０１、４０２）。このとき、データ数が２で偶数であるため（ステップＳ４０３／Ｙｅｓ）、データ対生成回路５０１はｄ０及びｄ１を新規データ対としてマルチプレクサ５０２へ出力するとともに、要求信号Ｒｍ０＝１をマルチプレクサ５０２及び記憶制御回路５０３へ出力する（ステップＳ４１０）。マルチプレクサ５０２は、データ対生成回路５０１から入力された要求信号Ｒｍ０＝１に応じて、データ対生成回路５０１の第１の出力端子から出力されたデータＤｐ０（＝ｄ０）を、自身の出力データＤｍ０としてメモリ５０５へ出力する（ステップＳ４１１）。【０１０３】
記憶制御回路５０３は、データ対生成回路５０１から要求信号Ｒｍ０＝１が入力されると、通知信号Ａｘ０＝０であるため（ステップＳ４１２／Ｙｅｓ）、通知信号Ａｍ０＝１をデータ対生成回路５０１へ、要求信号Ｒｘ０＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ０＝１をパルス信号生成回路５０４へそれぞれ出力する（ステップＳ４１３）。【０１０４】
記憶制御信号Ｌｔ０の立ち上がり遷移に応じて、パルス信号生成回路５０４は、値が０→１→０と遷移するパルス信号Ｐ０を生成し、メモリ５０５へ出力する（ステップＳ４１４）。パルス信号生成回路５０４からパルス信号Ｐ０が入力されると、メモリ５０５はその時点でマルチプレクサ５０２から出力されているデータＤｍ０＝ｄ０を記憶する（ステップＳ４１５）。【０１０５】
データ対生成回路５０１は、記憶制御回路５０３から通知信号Ａｍ０＝１が入力されると、データ対ｄ０及びｄ１の出力を維持しつつ、要求信号Ｒｍ０＝０をマルチプレクサ５０２及び記憶制御回路５０３へ出力する（ステップＳ４２０）。マルチプレクサ５０２は、要求信号Ｒｍ０＝０がデータ対生成回路５０１から入力されると、データ対生成回路５０１の第２の出力端子から出力されたデータＤｎ０（＝ｄ１）を、自身の出力データＤｍ０としてメモリ５０５へ出力する（ステップＳ４２１）。【０１０６】
データ転送装置５００は、図３に示したデータ転送装置３００とは異なり、メモリ５０５がデータ対受理回路５９９に直接接続されていないが、４相調停回路５２９及び記憶制御回路５２３の作用により、データ転送装置３００の場合と同様に動作する。これにより、記憶制御回路５０３は、要求信号Ｒｘ０＝１に対する応答として４相調停回路５２９から通知信号Ａｘ０＝１を受け取る（ステップＳ４２３）。
なお、ステップＳ４２４、Ｓ４２５は、データ対受理回路５９９において行われる動作であり、データ対生成回路５０１、マルチプレクサ５０２、記憶制御回路５０３、パルス信号生成回路５０４、及びメモリ５０５の動作とは関連が無い。よって、ここではこれらのステップは存在しないものとし、ステップＳ４２３の終了後はステップＳ４２６へ進むものとする。【０１０７】
記憶制御回路５０３は、４相調停回路５２９から入力された通知信号Ａｘ０＝１に応じて、通知信号Ａｍ＝０をデータ対生成回路５０１へ、要求信号Ｒｘ０＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ０＝０をパルス信号生成回路５０４へそれぞれ出力する（ステップＳ４２６）。
記憶制御信号Ｌｔ０の立ち下がり遷移に応じて、パルス信号生成回路５０４は、値が０→１→０と遷移するパルス信号Ｐ０を生成し、メモリ５０５へ出力する（ステップＳ４２７）。メモリ５０５は、メモリ５０５はその時点でマルチプレクサ５０２から出力されているデータＤｍ０＝ｄ１を記憶する（ステップＳ４２８）。
４相調停回路５２９及び記憶制御回路５２３の作用により、記憶制御回路５０３は要求信号Ｒｘ０＝０に対する応答として４相調停回路５２９から通知信号Ａｘ０＝０を受け取る（ステップＳ４２９）。【０１０８】
データｄ０及びｄ１がデータ対生成回路５０１から送信されてデータ対生成回路５０１における未送信データ数が０となったため（ステップＳ４３０／Ｙｅｓ）、ステップＳ４０１に戻りデータ転送装置５００は入力データ待ち状態となる。【０１０９】
ここで、データｄ０、ｄ１の転送が完了する時刻までにデータ転送装置５００の外部からデータ入力Ｄｉ０を介してデータ対生成回路５０１へ一つのデータｄ２が入力されたとする（ステップＳ４０１、Ｓ４０２）。このときデータ数が１で奇数であるため（ステップＳ４０３／Ｎｏ）、データ対生成回路５０１は、一つのダミーデータｄｍ０を付加する（ステップＳ４０４）。ダミーデータｄｍ０はいかなる値であってもよい。例えば、ダミーデータｄｍ０の値は直前にデータ対生成回路５０１に入力されたデータｄ２と等しくすることが可能である。このようにすれば、データ信号線上でスイッチングが行われないため、電力消費を低減できる。【０１１０】
データ対生成回路５０１は、ｄ２とｄｍ０とを新規データ対としてマルチプレクサ５０２へ出力するとともに、要求信号Ｒｍ０＝１をマルチプレクサ５０２及び記憶制御回路５０３へ出力する（ステップＳ４１０）。【０１１１】
マルチプレクサ５０２は、データ対生成回路５０１から入力された要求信号Ｒｍ０＝１に応じて、データ対生成回路５０１の第１の出力端子から出力されたデータＤｐ０（＝ｄ２）を、自身の出力データＤｍ０としてメモリ５０５へ出力する（ステップＳ４１１）。【０１１２】
記憶制御回路５０３は、データ対生成回路５０１から要求信号Ｒｍ０＝１が入力されると、通知信号Ａｘ０＝０であるため（ステップＳ４１２）、通知信号Ａｍ０＝１をデータ対生成回路５０１へ、要求信号Ｒｘ０＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ０＝１をパルス信号生成回路５０４へそれぞれ出力する（ステップＳ４１３）。
記憶制御信号Ｌｔ０の立ち上がり遷移に応じて、パルス信号生成回路５０４は、値が０→１→０と遷移するパルス信号Ｐ０を生成し、メモリ５０５へ出力する（ステップＳ４１４）。パルス信号生成回路５０４からパルス信号Ｐ０が入力されると、メモリ５０５はその時点でマルチプレクサ５０２から出力されているデータＤｍ０＝ｄ２を記憶する（ステップＳ４１５）。【０１１３】
データ対生成回路５０１は、記憶制御回路５０３から通知信号Ａｍ０＝１を入力されると、データｄ２及びｄｍ０のデータ対の出力を維持しつつ、要求信号Ｒｍ０＝０をマルチプレクサ５０２及び記憶制御回路５０３へ出力する（ステップＳ４２０）。マルチプレクサ５０２は、要求信号Ｒｍ０＝０がデータ対生成回路５０１から入力されると、データ対生成回路５０１の第２の出力端子から出力されたデータＤｎ０（＝ｄｍ０）を、自身の出力データＤｍ０としてメモリ５０５へ出力する（ステップＳ４２１）。【０１１４】
データ転送装置５００は、図３に示したデータ転送装置３００とは異なり、メモリ５０５がデータ対受理回路５９９に直接接続されていないが、４相調停回路５２９及び記憶制御回路５２３の作用により、データ転送装置３００の場合と同様に動作する。これにより、記憶制御回路５０３は、要求信号Ｒｘ０＝１に対する応答として４相調停回路５２９から通知信号Ａｘ０＝１を受け取る（ステップＳ４２３）。
上記のようにステップＳ４２４、Ｓ４２５は、データ対受理回路５９９において行われる動作であり、データ対生成回路５０１、マルチプレクサ５０２、記憶制御回路５０３、パルス信号生成回路５０４、及びメモリ５０５の動作とは関連が無い。よって、ここでもこれらのステップは存在しないものとし、ステップＳ４２３の終了後はステップＳ４２６へ進むものとする。【０１１５】
記憶制御回路５０３は、通知信号Ａｘ０＝１が４相調停回路５２９から入力されると、通知信号Ａｍ＝０をデータ対生成回路５０１へ、要求信号Ｒｘ０＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ０＝０をパルス信号生成回路５０４へそれぞれ出力する（ステップＳ４２６）。
記憶制御信号Ｌｔ０の立ち下がり遷移に応じて、パルス信号生成回路５０４は、値が０→１→０と遷移するパルス信号Ｐ０を生成し、メモリ５０５へ出力する（ステップＳ４２７）。パルス信号生成回路５０４からパルス信号Ｐ０が入力されると、メモリ５０５はその時点でマルチプレクサ５０２から出力されているデータＤｍ０＝ｄｍ０を記憶する（ステップＳ４２８）。
４相調停回路５２９及び記憶制御回路５２３の作用により、記憶制御回路５０３は、要求信号Ｒｘ０＝０に対する応答として４相調停回路５２９から通知信号Ａｘ０＝０を受け取る（ステップＳ４２９）。【０１１６】
データｄ２及びｄｍ０がデータ対生成回路５０１から送信されてデータ対生成回路５０１における未送信データ数が０となったため（ステップＳ４３０／Ｙｅｓ）、ステップＳ４０１に戻りデータ転送装置５００は入力データ待ち状態となる。【０１１７】
次に、データ転送装置５００の構成要素のうち、記憶制御回路５２３、パルス信号生成回路５２４、メモリ５２５、要求信号待ち合わせ回路５９８及びデータ対受理回路５９９の動作に関して、データ転送装置５００内の全ての信号の値が０であるという初期状態から、データｄ８、ｄ９及びｄ１０とダミーデータｄｍ２とがマルチプレクサ５２２からメモリ５２５へ転送される場合の各信号の波形を図１７に示す。なお、通知信号Ａｙは、図６における通知信号Ａｒに相当する。要求信号Ｒｙは図６における要求信号Ｒｘに相当する。【０１１８】
ステップＳ４０１〜Ｓ４０４は、データ対生成回路５０１、５１１がデータ転送装置５００の外部からデータを受け取る動作であり、記憶制御回路５２３、パルス信号生成回路５２４、メモリ５２５、要求信号待ち合わせ回路５９８及びデータ対受理回路５９９とは関連しない動作である。
また、記憶制御回路５２３へ要求信号Ｒｘ２＝１が到着したときには、データ対生成回路５０１、５１１によって要求信号Ｒｍ０、Ｒｍ１が発せられており、かつステップＳ４１０、Ｓ４１１の動作（マルチプレクサ５０２、５１２によって奇数番目のデータが出力される動作）と同様の動作によってマルチプレクサ５２２からデータＤｘ２＝ｄ８が出力されている。
ここでは記憶制御回路５２３、パルス信号生成回路５２４、メモリ５２５、要求信号待ち合わせ回路５９８及びデータ対受理回路５９９の動作に着目しているため、ステップＳ４１２以降の動作についてのみ説明するものとする。【０１１９】
記憶制御回路５２３は、４相調停回路５２９から要求信号Ｒｘ２＝１が入力された時点では通知信号Ａｙ＝０であるため（ステップＳ４１２）、要求信号Ｒｙ＝１を要求信号待ち合わせ回路５９８へ、通知信号Ａｘ２＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝１をパルス信号生成回路５２４へそれぞれ出力する（ステップＳ４１３）。【０１２０】
パルス信号生成回路５２４は、記憶制御信号Ｌｔ２の立ち上がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する（ステップＳ４１４）。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ８を記憶する（ステップＳ４１５）。【０１２１】
４相調停回路５２９は、記憶制御回路５２３から通知信号Ａｘ２＝１が入力されると、要求信号Ｒｘ２＝０を記憶制御回路５２３へ、調停結果信号Ｇｒ０及びＧｒ１をマルチプレクサ５２２へ出力する（ステップＳ４２０）。なお、この場合のＧｒ０及びＧｒ１のそれぞれの値は、データｄ８及びｄ９がメモリ５０３及び５１３のいずれから入力されたかに依存して定まるが、ここでは説明の簡略化のために、データの送信元をいずれかに特定しないものとして説明する。マルチプレクサ５２２は、４相調停回路５２９から調停結果信号Ｇｒ０及びＧｒ１が入力されると、データＤｘ２＝ｄ９を出力する（ステップＳ４２１）。【０１２２】
要求信号待ち合わせ回路５９８は、記憶制御回路５２３からの要求信号Ｒｙ＝１と４相調停回路５２９からの要求信号Ｒｘ２＝０とを待ち合わせ、要求信号Ｒｆ＝１をデータ対受理回路５９９へ出力する（ステップＳ４２２）。【０１２３】
データ対受理回路５９９は、要求信号待ち合わせ回路５９８から要求信号Ｒｆ＝１が入力されると、メモリ５２５に記憶されているデータＤｙ＝ｄ８とマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ９とを受理する（ステップＳ４２３）。
データ対を受け取ったのち、データ対受理回路５９９は、データ転送装置５００の外部へデータｄ８及びｄ９を出力する（ステップＳ４２４、Ｓ４２５）。また、データ対受理回路５９９は、待ち合わせ要求信号Ｒｆ＝１が要求信号待ち合わせ回路５９８から入力されると、通知信号Ａｙ＝１を記憶制御回路５２３へ出力する。【０１２４】
記憶制御回路５２３は、通知信号Ａｙ＝１をデータ対受理回路５９９から受信したのち、要求信号Ｒｘ２＝０を４相調停回路５２９から受け取った時点で、要求信号Ｒｙ＝０を要求信号待ち合わせ回路５９８へ、通知信号Ａｘ２＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝０をパルス信号生成回路５２４へそれぞれ出力する（ステップＳ４２６）。パルス信号生成回路５２４は、記憶制御回路５２３から記憶制御信号Ｌｔ２の立ち下がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する（ステップＳ４２７）。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ９を記憶する（ステップＳ４２８）。
要求信号待ち合わせ回路５９８は、記憶制御回路５２３から要求信号Ｒｙ＝０が入力されると、待ち合わせ要求信号Ｒｆ＝０をデータ対受理回路５９９へ出力する。データ対受理回路５９９は、待ち合わせ要求信号Ｒｆ＝０が要求信号待ち合わせ回路５９８から入力されると、通知信号Ａｙ＝０を記憶制御回路５２３へ出力する（ステップＳ４２９）。【０１２５】
この時点で、記憶制御回路５２３、パルス信号生成回路５２４、メモリ５２５、要求信号待ち合わせ回路５９８及びデータ対受理回路５９９の状態は、ステップＳ４３０でのデータ対生成回路の条件分岐動作待ちとなっており、マルチプレクサ５２２を介して転送されるデータｄ１０及びダミーデータｄｍ２が残っているためステップＳ４１０へ戻る（ステップＳ４３０／Ｎｏ）。【０１２６】
記憶制御回路５２３へ要求信号Ｒｘ２＝１が到着したときには、データ対生成回路５０１、５１１によって要求信号Ｒｍ０、Ｒｍ１が発せられており、かつステップＳ４１０、Ｓ４１１の動作（マルチプレクサ５０２、５１２によって奇数番目のデータが出力される動作）と同様の動作によってマルチプレクサ５２２からデータＤｘ２＝ｄ１０が出力されている。【０１２７】
記憶制御回路５２３は、４相調停回路５２９から要求信号Ｒｘ２＝１が入力された時点では通知信号Ａｙ＝０であるため（ステップＳ４１２）、要求信号Ｒｙ＝１を要求信号待ち合わせ回路５９８へ、通知信号Ａｘ２＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝１をパルス信号生成回路５２４へそれぞれ出力する（ステップＳ４１３）。【０１２８】
パルス信号生成回路５２４は、記憶制御信号Ｌｔ２＝１の立ち上がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する（ステップＳ４１４）。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ１０を記憶する（ステップＳ４１５）。【０１２９】
４相調停回路５２９は、記憶制御回路５２３から通知信号Ａｘ２＝１が入力されると、要求信号Ｒｘ２＝０を記憶制御回路５２３へ、調停結果信号Ｇｒ０及びＧｒ１をマルチプレクサ５２２へ出力する（ステップＳ４２０）。マルチプレクサ５２２は、４相調停回路５２９から調停結果信号Ｇｒ０及びＧｒ１が入力されると、ダミーデータＤｘ２＝ｄｍ２を出力する（ステップＳ４２１）。【０１３０】
要求信号待ち合わせ回路５９８は、記憶制御回路５２３からの要求信号Ｒｙ＝１と４相調停回路５２９からの要求信号Ｒｘ２＝０とを待ち合わせ、待ち合わせ要求信号Ｒｆ＝１をデータ対受理回路５９９へ出力する（ステップＳ４２２）。【０１３１】
データ対受理回路５９９は、要求信号待ち合わせ回路５９８から待ち合わせ要求信号Ｒｆ＝１が入力されると、メモリ５２５に記憶されているデータＤｙ＝ｄ１０とマルチプレクサ５２２から出力されているダミーデータＤｘ２＝ｄｍ２とを受理する（ステップＳ４２３）。
ここで、ダミーデータｄｍ２がダミーであることを示す信号を含んでいるとすると、データ対受理回路５９９は、データｄ１０のみを受理して、ダミーデータｄｍ２を破棄することも可能である。この場合、データ対受理回路５９９は、データ転送装置５００の外部へデータｄ１０のみを出力する（ステップＳ４２４、Ｓ４２５）また、データ対受理回路５９９は、待ち合わせ要求信号Ｒｆ＝１が要求信号待ち合わせ回路５９８から入力されると、通知信号Ａｙ＝１を記憶制御回路５２３へ出力する。【０１３２】
記憶制御回路５２３は、通知信号Ａｙ＝１をデータ対受理回路５９９から受信したのち、要求信号Ｒｘ２＝０を４相調停回路５２９から受け取った時点で、要求信号Ｒｙ＝０を要求信号待ち合わせ回路５９８へ、通知信号Ａｘ２＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝０をパルス信号生成回路５２４へそれぞれ出力する（ステップＳ４２６）。パルス信号生成回路５２４は、記憶制御回路５２３から記憶制御信号Ｌｔ２の立ち下がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する（ステップＳ４２７）。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているダミーデータＤｘ２＝ｄｍ２を記憶する（ステップＳ４２８）。
要求信号待ち合わせ回路５９８は、記憶制御回路５２３から要求信号Ｒｙ＝０が入力されると、待ち合わせ要求信号Ｒｆ＝０をデータ対受理回路５９９へ出力する。データ対受理回路５９９は、待ち合わせ要求信号Ｒｆ＝０が要求信号待ち合わせ回路５９８から入力されると、通知信号Ａｙ＝０を記憶制御回路５２３へ出力する（ステップＳ４２９）。【０１３３】
ここで、記憶制御回路５２３、パルス信号生成回路５２４、メモリ５２５、要求信号待ち合わせ回路５９８及びデータ対受理回路５９９の状態は、ステップＳ４３０でのデータ対生成回路の条件分岐動作待ちとなっており、マルチプレクサ５２２を介して転送されるデータが残っていないためステップＳ４０１へ戻り、データ転送装置５００は入力データ待ち状態となる（ステップＳ４３０／Ｙｅｓ）。【０１３４】
次に、データ転送装置５００の構成要素のうち、記憶制御回路５０３、５１３、５２３、パルス信号生成回路５０４、５１４、５２４、メモリ５０５、５１５、５２５、４相調停回路５２９及びマルチプレクサ５２２の動作に関して、装置内の信号の値が全て０である状態を初期状態として各信号の波形を図１８に示す。
メモリ５０５へは四つのデータｄ３、ｄ４、ｄ５及びｄ６が送られ、メモリ５１５へは一つのデータｄ７とデータ対生成回路５１１によって付加されたダミーデータｄｍ１とが送られるものとする。【０１３５】
まず、メモリ５０５、５１５からデータｄ３、ｄ７が送られるとき、記憶制御回路５０３、５１３は要求信号Ｒｘ０＝１とＲｘ１＝１とを４相調停回路５２９に送る。【０１３６】
４相調停回路５２９は、調停結果信号Ｇｒ０＝１、Ｇｒ１＝０をマルチプレクサ５２２へ出力することにより、受け取った要求信号Ｒｘ０＝１とＲｘ１＝１とのうち先着したＲｘ０＝１を出力した記憶制御回路５０３にハンドシェイク経路の使用権を与える。また、４相調停回路５２９は、要求信号Ｒｘ２＝１を記憶制御回路５２３へ出力する。
マルチプレクサ５２２は調停結果信号Ｇｒ０＝１、Ｇｒ１＝０が入力されると、メモリ５０５からのデータであるデータＤｘ０＝ｄ３を自身の出力データＤｘ２として出力する。【０１３７】
記憶制御回路５２３は、４相調停回路５２９から要求信号Ｒｘ２＝１が入力されると、通知信号Ａｘ２＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝１をパルス信号生成回路５２４へそれぞれ出力する。パルス信号生成回路５２４は、記憶制御信号Ｌｔ２の立ち上がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ３を記憶する。【０１３８】
４相調停回路５２９は、通知信号Ａｘ２＝１が記憶制御回路５２３から入力されると、使用権を与えた方の記憶制御回路（ここでは記憶制御回路５０３）に対して通知信号Ａｘ０＝１を出力する。【０１３９】
記憶制御回路５０３は、通知信号Ａｘ０＝１が４相調停回路５２９から入力されると、要求信号Ｒｘ０＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ０＝０をパルス信号生成回路５０４へそれぞれ出力する。記憶制御信号Ｌｔ０の立ち下がり遷移に応じて、パルス信号生成回路５０４は、値が０→１→０と遷移するパルス信号Ｐ０を生成し、メモリ５０５へ出力する。パルス信号Ｐ０が入力されたメモリ５０５は、データｄ４を出力する。【０１４０】
４相調停回路５２９は、記憶制御回路５０３から受け取った要求信号Ｒｘ０＝０に応じて、要求信号Ｒｘ２＝０を記憶制御回路４２３に、調停結果信号Ｇｒ０＝Ｇｒ１＝０をマルチプレクサ５２２にそれぞれ出力する。
マルチプレクサ５２２は、４相調停回路５２９から入力された調停結果信号Ｇｒ０＝０、Ｇｒ１＝０に応じて、データ入力Ｄｘ０からデータ出力Ｄｘ２への伝播を維持し（換言するとハンドシェイク経路の使用権を記憶制御回路５０３に与えたまま維持し）、データ入力Ｄｘ０からのデータｄ４を自身の出力データＤｘ２として出力する。【０１４１】
記憶制御回路５２３は、要求信号Ｒｘ２＝０を４相調停回路５２９から受け取った時点で、通知信号Ａｘ２＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝０をパルス信号生成回路５２４へそれぞれ出力する。パルス信号生成回路５２４は、記憶制御回路５２３から記憶制御信号Ｌｔ２の立ち下がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータｄ４を記憶する。【０１４２】
４相調停回路５２９は、記憶制御回路５２３からの通知信号Ａｘ２＝０に応じて調停結果信号Ｇｒ０＝０、Ｇｒ１＝１をマルチプレクサ５２２に出力することによって、使用権待ちだった記憶制御回路５１３（要求信号Ｒｘ１＝１を出力する記憶制御回路）に対して使用権を与える。また、４相調停回路５２９は、通知信号Ａｘ０＝０を記憶制御回路５０３へ、要求信号Ｒｘ２＝１を記憶制御回路５２３へそれぞれ出力する。
マルチプレクサ５２２は、調停結果信号Ｇｒ０＝０、Ｇｒ１＝１に応じて、データ入力Ｄｘ１からのデータｄ７を自身の出力Ｄｘ２として出力する。【０１４３】
記憶制御回路５２３は、４相調停回路５２９から要求信号Ｒｘ２＝１が入力されると、通知信号Ａｘ２＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝１をパルス信号生成回路５２４へそれぞれ出力する。パルス信号生成回路５２４は、記憶制御信号Ｌｔ２の立ち上がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ７を記憶する。【０１４４】
４相調停回路５２９は、記憶制御回路５２３から通知信号Ａｘ２＝１が入力されると、
使用権を与えた方の記憶制御回路（ここでは記憶制御回路５１３）に対して通知信号Ａｘ１＝１を出力する。【０１４５】
記憶制御回路５１３は、通知信号Ａｘ１＝１が４相調停回路５２９から入力されると、要求信号Ｒｘ１＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ１＝０をパルス信号生成回路５１４へそれぞれ出力する。記憶制御信号Ｌｔ１の立ち下がり遷移に応じて、パルス信号生成回路５１４は、値が０→１→０と遷移するパルス信号Ｐ１を生成し、メモリ５１５へ出力する。パルス信号Ｐ０が入力されたメモリ５１５は、データｄｍ１を出力する。【０１４６】
４相調停回路５２９は、記憶制御回路５１３から受け取った要求信号Ｒｘ１＝０に応じて、調停結果信号Ｇｒ０＝Ｇｒ１＝０をマルチプレクサ５２２へ出力する。
マルチプレクサ５２２は、４相調停回路５２９から入力された調停結果信号Ｇｒ０＝０、Ｇｒ１＝０に応じて、データ入力Ｄｘ１からデータ出力Ｄｘ２への伝播を維持し（換言するとハンドシェイク経路の使用権を記憶制御回路５１３に与えたまま維持し）、データ入力Ｄｘ１からのデータｄｍ１を自身の出力データＤｘ２として出力する。【０１４７】
４相調停回路５２９は、要求信号Ｒｘ１＝０が記憶制御回路５１３から入力されると、要求信号Ｒｘ２＝０を記憶制御回路５２３へ出力する。記憶制御回路５２３は、４相調停回路５２９から要求信号Ｒｘ２＝０が入力されると、通知信号Ａｘ２＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝０をパルス信号生成回路５２４へそれぞれ出力する。パルス信号生成回路５２４は、記憶制御信号Ｌｔ２の立ち下がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄｍ１を記憶する。【０１４８】
データｄ７及びダミーデータｄｍ１の転送の間に次のデータｄ５の転送を要求する要求信号Ｒｘ０＝１が記憶制御回路５０３から４相調停回路５２９に到着したとすると、４相調停回路５２９は、通知信号Ａｘ２＝０に応じて通知信号Ａｘ０＝０を記憶制御回路５０３へ、要求信号Ｒｘ２＝１を記憶制御回路５２３へそれぞれ出力する。また、４相調停回路５２９は、調停結果信号Ｇｒ０＝１、Ｇｒ１＝１をマルチプレクサ５２２へ出力することにより、記憶制御回路５０３（要求信号Ｒｘ０＝１を出力した記憶制御回路）に対してハンドシェイク経路の使用権を与える。【０１４９】
マルチプレクサ５２２は、４相調停回路５２９から入力された調停結果信号Ｇｒ０＝１、Ｇｒ１＝０に応じて、データ入力Ｄｘ０からのデータｄ５を自身の出力データＤｘ２として出力する。【０１５０】
記憶制御回路５２３は、４相調停回路５２９から要求信号Ｒｘ２＝１が入力されると、通知信号Ａｘ２＝１を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝１をパルス信号生成回路５２４へそれぞれ出力する。パルス信号生成回路５２４は、記憶制御信号Ｌｔ２の立ち上がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータＤｘ２＝ｄ５を記憶する。【０１５１】
４相調停回路５２９は、通知信号Ａｘ２＝１が記憶制御回路５２３から入力されると、使用権を与えた方の記憶制御回路（ここでは記憶制御回路５０３）に対して通知信号Ａｘ０＝１を出力する。【０１５２】
記憶制御回路５０３は、通知信号Ａｘ０＝１が４相調停回路５２９から入力されると、要求信号Ｒｘ０＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ０＝０をパルス信号生成回路５０４へそれぞれ出力する。記憶制御信号Ｌｔ０の立ち下がり遷移に応じて、パルス信号生成回路５０４は、値が０→１→０と遷移するパルス信号Ｐ０を生成し、メモリ５０５へ出力する。パルス信号Ｐ０が入力されたメモリ５０５は、データｄ６を出力する。【０１５３】
４相調停回路５２９は、記憶制御回路５０３から受け取った要求信号Ｒｘ０＝０に応じて、要求信号Ｒｘ２＝０を記憶制御回路４２３に、調停結果信号Ｇｒ０＝Ｇｒ１＝０をマルチプレクサ５２２にそれぞれ出力する。
マルチプレクサ５２２は、４相調停回路５２９から入力された調停結果信号Ｇｒ０＝０、Ｇｒ１＝０に応じて、データ入力Ｄｘ０からデータ出力Ｄｘ２への伝播を維持し（換言するとハンドシェイク経路の使用権を記憶制御回路５０３に与えたまま維持し）、データ入力Ｄｘ０からのデータｄ６を自身の出力データＤｘ２として出力する。【０１５４】
記憶制御回路５２３は、要求信号Ｒｘ２＝０を４相調停回路５２９から受け取った時点で、通知信号Ａｘ２＝０を４相調停回路５２９へ、記憶制御信号Ｌｔ２＝０をパルス信号生成回路５２４へそれぞれ出力する。パルス信号生成回路５２４は、記憶制御回路５２３から記憶制御信号Ｌｔ２の立ち下がり遷移に応じて、値が０→１→０と遷移するパルス信号Ｐ２を生成し、メモリ５２５へ出力する。パルス信号生成回路５２４からパルス信号Ｐ２が入力されると、メモリ５２５はその時点でマルチプレクサ５２２から出力されているデータｄ６を記憶する。【０１５５】
このように、本実施形態においては、データ対生成回路５０１、５１１とパルス信号生成回路５０４、５１４、５２４とを用いることにより、４相式転送の２倍の速度でデータ転送を実現できる。【０１５６】
また、本実施形態においては、データ対生成回路５０１、５１１を用いることにより、図１に示したような簡潔な回路構成で実現される４相調停回路５２９を適用可能となる。データ対受理回路の直前のメモリ及び記憶制御回路に直接接続されるパルス生成回路は省略可能で、本実施形態に係るデータ転送装置は前記メモリと前記記憶制御回路とを直接接続する構成をとってもよい。例えば、データ転送装置５００は、パルス生成回路５２４を省略して、メモリ５２５と記憶制御回路５２３とを直接接続する構成をとってもよい。これは、偶数番データが当該メモリに記憶されても当該メモリの出力からのデータがデータ対受理回路に受け取られる必要はなく、パルス生成回路を省略してメモリと記憶制御回路とを直接接続する場合には、当該メモリは奇数番データのみを記憶するように動作するためである。【０１５７】
ここで、データ転送装置５００がデータ対生成回路５０１、５１１を備えない構成を仮定し、記憶制御回路５０３、５１３とメモリ５０５、５１５に２相式ハンドシェイク信号とデータが入力された場合を考える。この場合の記憶制御回路５０３、５１３、５２３、パルス信号生成回路５０４、５１４、５２４、メモリ５０５、５１５、５２５、及び４相調停回路５２９の動作に関する波形を図１９に示す。メモリ５０５へは三つのデータｄ３、ｄ４及びｄ５が送られ、メモリ５１５へは一つのデータｄ７が送られるものとする。【０１５８】
データｄ３及びｄ４の転送は、データ対生成回路５０１を備える場合と同様に行われる。次に、データｄ５の転送は、記憶制御回路５１３から４相調停回路５２９への要求信号Ｒｘ１＝１の入力と、４相調停回路５２９から記憶制御回路５２３への要求信号Ｒｘ２＝１の入力と、記憶制御回路５２３から４相調停回路５２９への通知信号Ａｘ２＝１の入力と、４相調停回路５２９から記憶制御回路５１３への通知信号Ａｘ１＝１の入力とによって完了する。【０１５９】
ここで、データ対生成回路５１１が存在しないため、データｄ５にはダミーデータは付加されず、通知信号Ａｘ１＝１に対して記憶制御回路５１３は要求信号Ｒｘ１＝０を４相調停回路５２９へ送らない。よって、記憶制御回路５１３から４相調停回路５２９への要求信号はＲｘ１＝１のままである。【０１６０】
４相調停回路５２９への要求信号がＲｘ１＝１で維持されることは、記憶制御回路５１３とメモリ５１５からの転送が完了しているにも関わらず、４相調停回路の出力の使用権がメモリ５１５からの転送に占有され続けて、記憶制御回路５０３とメモリ５０５からの転送とに使用権が移譲されないことを意味する。【０１６１】
このため、データｄ６の転送要求信号Ｒｘ０＝１が記憶制御回路５０３とメモリ５０５から４相調停回路５２９に到着しているにもかかわらず、マルチプレクサ５２２及び４相調停回路５２９を介した転送は、記憶制御回路５１３とメモリ５１５から次の転送が到着するまで一時停止されたままとなる。【０１６２】
以上のように、データ対生成回路５０１、５１１は、回路構成が簡潔な４相式ハンドシェイク・プロトコル動作のデータ転送用機能ブロックを高速転送を実現しつつ利用するために不可欠である。【０１６３】
さらに、本実施形態においては、パルス信号生成回路５０４、５１４、５２４を用いることにより、メモリ５０５、５１５、５２５としてレベルセンシティブ・ラッチを適用可能となっている。【０１６４】
本実施形態に係るデータ転送装置は、半導体チップ上又は半導体チップ間の機能ブロック間でのデータ通信としても適用可能である。【０１６５】
〔第３の実施形態〕
本発明を好適に実施した第３の実施形態について説明する。
図２０に、本発明を好適に実施した第３の実施形態に係る半導体装置の構成を示す。この半導体装置は、機能ブロック回路１１〜１４と機能ブロック回路１５〜１７とがデータ転送装置５０とが一体に構成されている。
図２０において、「MUX＋４相調停Ｃ」と記されているブロックは、マルチプレクサと４相調停回路とで構成されている。また、「分岐＋４相選択Ｃ」と記されているブロックは、デマルチプレクサと４相選択回路とで構成されている。また、「メ＋パ＋制」と記されているブロックはメモリとパルス生成回路と記憶制御回路とで構成されている。また、「待」と記されているブロックは要求信号待ち合わせ回路を意味している。【０１６６】
送信側の機能ブロック回路１１〜１４は、接続されたデータ対生成回路にデータを送信する。データ対生成回路に入力されたデータのうち、奇数番データには３ビットで表現される目的地情報が含まれている。目的地情報を構成する３ビットの各々は受信側の各機能ブロック回路１５〜１７に対応している。すなわち、目的地情報のビット幅はデータの送り先となる機能ブロック回路の数と同数となっている。【０１６７】
各データ対生成回路は、機能ブロック回路１１〜１４から受け取ったデータが奇数個であればダミーデータを付加して偶数個とし、二つずつ対としてデータ対を生成する。データ転送装置５０内のメモリ、パルス生成回路、記憶制御回路、マルチプレクサ、４相調停回路、データ信号線分岐、４相選択回路は、要求信号待ち合わせ回路はデータに含まれる目的地情報に応じて、目的地である受信側の機能ブロック回路へ向かって、要求信号および通知信号を通信するハンドシェイク通信を行いながら、データ対を転送する。
データ対受理回路は、受理したデータ対を接続されている受信側同期式機能回路に送信する。【０１６８】
データ転送装置５０内の各回路の動作は、上記第１、第２の実施形態と同様であるため、内部での動作についての説明は割愛する。【０１６９】
なお、データ転送装置５０内の各パルス信号生成回路のうち、データ対受理回路の直前に配置されているものについては省略することも可能である。【０１７０】
このようにデータ転送装置を用いて機能ブロック回路を接続することにより、消費電力の低い集積回路（半導体装置）を構成することができる。機能ブロック回路の消費電力は動作速度に依存するため、各々の機能ブロック回路を常に一定の速度で動作させるよりも、各々の機能ブロック回路の動作速度を当該回路に要求される処理を許容される時間内に行える最低限に抑えるように調整することによって、集積回路全体の消費電力を低く抑えることが可能となる。【０１７１】
この処理速度の調整を行う場合、集積回路上の機能ブロック回路の動作タイミングは互いに独立である。本実施形態におけるデータ転送装置はこのような動作タイミングの独立な機能ブロック回路の接続を可能としている。そのため、本実施形態に係るデータ転送装置を用いて機能ブロック回路を接続することにより、必要な速度で動作しつつも消費電力の低い集積回路を構成することが可能となる。【０１７２】
本実施形態に係るデータ転送装置は、動作タイミングの独立な機能ブロック回路の接続を可能にするため、放射電磁波の少ない集積回路を構成することができる。
集積回路から放射される電磁波の強度は、回路内を流れる電流の変動の大きさに比例するため、機能ブロック回路の動作タイミングが合ったときに電流が大きく増大するため、放射電磁波が大きくなる。この放射電磁波は、当該集積回路内の素子の動作に影響を与える可能性がある。また、当該集積回路が無線通信を行う機器付近で動作した場合に機器を誤動作させてしまう危険性もある。本実施形態においては、データ転送装置により機能ブロックの動作タイミングを互いに独立にすることにより、放射電磁波を低減することが可能である。【０１７３】
なお、上記実施形態は本発明の好適な実施の一例であり、本発明はこれに限定されることはない。【０１７４】
例えば、上記実施形態においては、２入力１出力を持つデータ転送装置を例として説明したが、要求信号の入力数が３以上であっても良く、入力数、出力数に限定はない。
このように、本発明は様々な変形が可能である。【０１７５】
この出願は、２００８年３月６日に出願された日本出願特願２００８−０５６８８１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図面の簡単な説明】
【０１７６】
【図１】４相式ハンドシェイク・プロトコルに準拠して複数の要求信号を調停する非同期式論理回路の構成例を示す図である。
【図２】対称型２入力Ｃ素子の回路記号と３入力多数決論理セルによる実現例と動作表を示す図である。
【図３】本発明を好適に実施した第１の実施形態に係るデータ転送装置の構成を示すブロック図である。
【図４】第１の実施形態に係るデータ転送装置の構成要素である記憶制御回路の構成例を示す図である。
【図５】第１の実施形態に係るデータ転送装置の構成要素であるパルス信号生成回路の構成例を示す図である。
【図６】第１の実施形態に係るデータ転送装置の動作を示す流れ図である。
【図７】第１の実施形態に係るデータ転送装置におけるデータ対生成回路の動作を示す流れ図である。
【図８】第１の実施形態に係るデータ転送装置におけるマルチプレクサの動作を示す流れ図である。
【図９】第１の実施形態に係るデータ転送装置における記憶制御回路とパルス信号生成回路とメモリの動作を示す流れ図である。
【図１０】第１の実施形態に係るデータ転送装置における要求信号待ち合せ回路とデータ対受理回路の動作を示す流れ図である。
【図１１】パルス生成回路を省略したデータ転送装置の構成を示す図である。
【図１２】４相選択回路の構成を示す図である。
【図１３】４相分配回路の構成を示す図である。
【図１４】４相待ち合わせ回路の構成を示す図である。
【図１５】本発明を好適に実施した第２の実施形態に係るデータ転送装置の構成を示すブロック図である。
【図１６】本発明の実施例において、データ対生成回路の動作を説明する波形図である。
【図１７】本発明の実施例において、データ対受理回路の動作を説明する波形図である。
【図１８】本発明の実施例において、４相調停回路の動作を説明する波形図である。
【図１９】本発明の実施例において、データ対生成回路を用いなかった場合の４相調停回路の動作停止を説明する波形図である。
【図２０】本発明を好適に実施した第３の実施形態に係る半導体装置の構成を示す図である。
【符号の説明】
【０１７７】
１００    ４相式のハンドシェイク信号通信用の調停回路
１１０    相互排他モジュール
１１１    先着信号選択モジュール
１１２    不正信号伝播防止モジュール
１２０    直前ハンドシェイク完了モジュール
１３０    出力要求信号生成モジュール
１４０    出力通知信号生成モジュール
２００、６０１    MullerのＣ素子
２０２    Ｃ素子動作表
３００、５００    データ転送装置
３０１、５０１、５１１    データ対生成回路
３０２、５０２、５１２、５２２    マルチプレクサ
３０３、５０３、５１３、５２３    記憶制御回路
３０４、５０４、５１４、５２４    パルス信号生成回路
３０５、５０５、５１５、５２５    メモリ
３０６、５９８    要求信号待ち合せ回路
３０７、５９９    データ対受理回路
５２９    ４相調停回路
６００    記憶制御回路
６０１ａ    ３入力多数決セル
６０１ｂ    フィードバック・ループ
６０２    バッファ
７００    パルス生成回路
７０１    排他的論理和（ＸＯＲ）セル
７０２    遅延セル
【図１】
2009110588.tif 000003
【図２】
2009110588.tif 000004
【図３】
2009110588.tif 000005
【図４】
2009110588.tif 000006
【図５】
2009110588.tif 000007
【図６】
2009110588.tif 000008
【図７】
2009110588.tif 000009
【図８】
2009110588.tif 000010
【図９】
2009110588.tif 000011
【図１０】
2009110588.tif 000012
【図１１】
2009110588.tif 000013
【図１２】
2009110588.tif 000014
【図１３】
2009110588.tif 000015
【図１４】
2009110588.tif 000016
【図１５】
2009110588.tif 000017
【図１６】
2009110588.tif 000018
【図１７】
2009110588.tif 000019
【図１８】
2009110588.tif 000020
【図１９】
2009110588.tif 000021
【図２０】
2009110588.tif 000022
【手続補正書】
【提出日】平成21年8月7日(2009.8.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
転送元から転送先へのデータ転送を行うデータ転送装置であって、
転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、前記偶数個の転送データを二つずつ組みにすることによってデータ対を生成すると共に、生成したデータ対を、ハンドシェイク信号の通信周期に従って出力するデータ対生成回路と、
前記ハンドシェイク信号に応じて、前記データ対の一方のデータを出力するマルチプレクサと、
前記マルチプレクサから出力されるデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じて記憶するメモリと、
４相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、前記メモリを制御すべく前記記憶制御信号を出力する記憶制御回路と、
前記データ対の一方のデータが前記メモリに記憶され、かつ他方のデータが前記マルチプレクサから出力された状態となるのに応じて、要求信号を出力する待ち合わせ回路と、
前記要求信号に応じて前記マルチプレクサ及び前記メモリから前記データ対を受理し、受理した前記データ対を前記転送先へ出力するデータ対受理回路とを備え、
前記メモリは、レベル駆動によるラッチ、及びエッジ駆動によるフリップ・フロップの少なくとも一方を含み、
入力される前記記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に応じて、所定の時間幅を有するパルス信号を生成し、該パルス信号を前記メモリに出力することにより、前記メモリにおける前記データの記憶動作を実行するパルス生成回路を更に備えること
を特徴とするデータ転送装置。
【請求項２】
前記記憶制御回路は、前記４相式ハンドシェイク・プロトコルに基づいて該記憶制御回路に入力される要求信号と入力通知信号とを待ち合せることによって、前記記憶制御信号の立ち上げ又は立ち下げタイミングを遷移する待合せ素子を含むことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記待合せ素子は、対称型２入力Ｃ素子を含むことを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記対称型２入力Ｃ素子は、３変数多数決論理関数を実現する組合せ論理回路と、その組合せ論理回路の出力端子を該組合せ論理回路の入力端子の一つと接続するフィードバック回路とを含むことを特徴とする請求項３記載のデータ転送装置。
【請求項５】
前記パルス生成回路は、入力信号である前記記憶制御信号の排他的論理和演算を行う論理回路を含むことを特徴とする請求項１乃至請求項４の何れかに記載のデータ転送装置。
【請求項６】
前記パルス生成回路は、入力信号を複数個の分岐信号に分岐させる分岐回路と、その分岐信号の何れかを入力とする遅延回路と、該分岐信号の残りと該遅延回路の出力とを入力として排他的論理和演算を行う論理回路とを含むことを特徴とする請求項１乃至請求項５の何れかに記載のデータ転送装置。
【請求項７】
前記遅延回路において、該遅延回路の出力信号の該遅延回路の入力信号に対する遅延時間は、前記記憶制御回路の出力通知信号に対する入力要求信号の遅延時間と、前記記憶制御回路の出力要求信号に対する入力通知信号の遅延時間との双方よりも小さいことを特徴とする請求項６記載のデータ転送装置。
【請求項８】
前記待ち合わせ回路は、前記記憶制御回路から入力される出力要求信号と該記憶制御回路に入力される要求信号との否定演算を行う論理回路と、論理積演算を行う論理回路とを含むことを特徴とする請求項１乃至請求項７の何れかに記載のデータ転送装置。
【請求項９】
複数の要求信号入力端子及び一つの要求信号出力端子と、それら要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを備え、前記要求信号入力端子から第１の要求信号が入力されたとき、各々の第１の要求信号に応じて出力する第２の要求信号の出力順序を決定し、決定した出力順序で前記要求信号出力端子から第２の要求信号を出力し、前記通知信号入力端子を介して第１の通知信号を受け取ったときに、該第１の通知信号を受信する基となった第１の要求信号の送信元に対応する通知信号出力端子から第２の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された複数の入力データを、順番に一つの出力先へ出力する４相調停回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項８の何れかに記載のデータ転送装置。
【請求項１０】
一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び前記要求信号出力端子と同数の通知信号入力端子と、目的地情報入力端子とを備え、前記要求信号入力端子から第３の要求信号が入力されたとき、目的地情報に基づいて前記要求信号出力端子のうち一つを選択して、選択された方から第４の要求信号を出力し、前記第４の要求信号に対する第３の通知信号を、選択された要求信号出力端子に対応する前記通知信号入力端子を介して受け取るのに応じて前記通知信号出力端子から第４の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の何れか、或いは全てのデータ出力先に対して出力する４相選択回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項９の何れかに記載のデータ転送装置。
【請求項１１】
一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び前記要求信号出力端子と同数の通知信号入力端子とを備え、前記要求信号入力端子を介して第５の要求信号が入力されたとき、前記要求信号出力端子の全てから第６の要求信号を出力し、前記通知信号入力端子の全てから第５の通知信号を受け取ったときに、前記通知信号出力端子から第６の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された入力データを、複数の出力先候補の全てに出力する４相分配回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項１０の何れかに記載のデータ転送装置。
【請求項１２】
複数の要求信号入力端子及び一つの要求信号出力端子と、要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを備え、前記要求信号入力端子の全てから第７の要求信号が入力されたとき、前記要求信号出力端子から第８の要求信号を出力し、前記通知信号入力端子を介して第７の通知信号を受け取ったときに、前記通知信号出力端子の全てから第８の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力する４相待ち合わせ回路を少なくとも一つ備えることを特徴とする請求項１乃至請求項１１の何れかに記載のデータ転送装置。
【請求項１３】
請求項１乃至請求項１２の何れかに記載のデータ転送装置を備えることを特徴とする半導体回路。
【請求項１４】
転送元から転送先へのデータ転送を行うデータ転送方法であって、
転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、
前記偶数個の転送データを二つずつ組みにすることによってデータ対を生成し、
生成したデータ対のうちのいずれか一方のデータを、ハンドシェイク信号の通信周期に従ってマルチプレクサから出力し、
前記ハンドシェイク信号の通信周期に従って出力したデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じてメモリに記憶し、
４相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、前記メモリを制御すべく前記記憶制御信号を出力し、
前記データ対の一方のデータが前記メモリに記憶され、かつ他方のデータが前記マルチプレクサから出力された状態となるのに応じて、要求信号を出力し、
前記要求信号に応じて前記マルチプレクサ及び前記メモリから前記データ対を受理し、受理した前記データ対を前記転送先へ出力し、前記メモリは、レベル駆動によるラッチ、及びエッジ駆動によるフリップ・フロップの少なくとも一方を含み、
入力される前記記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に応じて、所定の時間幅を有するパルス信号を生成し、該パルス信号を前記メモリに出力することにより、前記メモリにおける前記データの記憶動作を実行することを特徴とするデータ転送方法。
【請求項１５】
前記４相式ハンドシェイク・プロトコルに基づいて前記記憶制御信号を生成する回路に入力される要求信号と入力通知信号とを待ち合せることによって、前記記憶制御信号の立ち上げ又は立ち下げタイミングを遷移することを特徴とする請求項１４記載のデータ転送方法。
【請求項１６】
前記パルス信号を生成する際に、入力信号である前記記憶制御信号の排他的論理和演算を行うことを特徴とする請求項１４または請求項１５記載のデータ転送方法。
【請求項１７】
前記パルス信号を生成する際に、入力信号を複数個の分岐信号に分岐させ、その分岐信号の何れかを遅延させ、該分岐信号の残りと該遅延させた分岐信号との排他的論理和演算を行うことを特徴とする請求項１４乃至請求項１６の何れかに記載のデータ転送方法。
【請求項１８】
前記排他的論理和演算後の信号の前記入力信号に対する遅延時間は、前記記憶制御信号を生成する回路の出力通知信号に対する入力要求信号の遅延時間と、前記記憶制御信号を生成する回路の出力要求信号に対する入力通知信号の遅延時間との双方よりも小さいことを特徴とする請求項１４乃至請求項１７の何れかに記載のデータ転送方法。
【請求項１９】
前記要求信号を出力する際に、前記記憶制御信号を生成する回路から入力される出力要求信号と該記憶制御信号を生成する回路に入力される要求信号との否定演算及び論理積演算を行うことを特徴とする請求項１４乃至請求項１８の何れかに記載のデータ転送方法。
【請求項２０】
要求信号入力端子から第１の要求信号が入力されたとき、各々の第１の要求信号に応じて出力する第２の要求信号の出力順序を決定し、決定した出力順序で一つの要求信号出力端子から第２の要求信号を出力し、一つの通知信号入力端子を介して第１の通知信号を受け取ったときに、前記要求信号入力端子と同数の通知信号出力端子のうち、該第１の通知信号を受信する基となった第１の要求信号の送信元に対応する通知信号出力端子から第２の通知信号を出力することにより、並行して設けられたデータ信号線に入力された複数の入力データを、順番に一つの出力先へ出力する４相調停制御を行うことを特徴とする請求項１４乃至請求項１９の何れかに記載のデータ転送方法。
【請求項２１】
一つの要求信号入力端子から第３の要求信号が入力されたとき、目的地情報に基づいて複数の要求信号出力端子のうち一つを選択して、選択された方から第４の要求信号を出力し、前記第４の要求信号に対する第３の通知信号を、前記要求信号出力端子と同数の通知信号入力端子のうち選択された要求信号出力端子に対応する通知信号入力端子を介して受け取るのに応じて一つの通知信号出力端子から第４の通知信号を出力することにより、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の何れか、或いは全てのデータ出力先に対して出力する４相選択制御を行うことを特徴とする請求項１４乃至請求項２０の何れかに記載のデータ転送方法。
【請求項２２】
一つの要求信号入力端子を介して第５の要求信号が入力されたとき、複数の要求信号出力端子の全てから第６の要求信号を出力し、前記要求信号出力端子と同数の通知信号入力端子の全てから第５の通知信号を受け取ったときに、一つの通知信号出力端子から第６の通知信号を出力することにより、並行して設けられたデータ信号線に入力された入力データを、複数の出力先候補の全てに出力する４相分配制御を行うことを特徴とする請求項１４乃至請求項２１の何れかに記載のデータ転送方法。
【請求項２３】
複数の要求信号入力端子の全てから第７の要求信号が入力されたとき、一つの要求信号出力端子から第８の要求信号を出力し、一つの通知信号入力端子を介して第７の通知信号を受け取ったときに、前記要求信号入力端子と同数の通知信号出力端子の全てから第８の通知信号を出力することにより、並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力する４相待ち合わせ制御を行うことを特徴とする請求項１４乃至請求項２２の何れかに記載のデータ転送方法。
【請求項２４】
（削除）
【請求項２５】
（削除）
【国際調査報告】
2009110588.tif 000023
2009110588.tif 000024
2009110588.tif 000025
2009110588.tif 000026