JPWO2009110588A1 - データ転送装置及び方法並びに半導体回路 - Google Patents

データ転送装置及び方法並びに半導体回路 Download PDF

Info

Publication number
JPWO2009110588A1
JPWO2009110588A1 JP2010501973A JP2010501973A JPWO2009110588A1 JP WO2009110588 A1 JPWO2009110588 A1 JP WO2009110588A1 JP 2010501973 A JP2010501973 A JP 2010501973A JP 2010501973 A JP2010501973 A JP 2010501973A JP WO2009110588 A1 JPWO2009110588 A1 JP WO2009110588A1
Authority
JP
Japan
Prior art keywords
signal
data
output
circuit
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010501973A
Other languages
English (en)
Inventor
田中 克典
克典 田中
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2009110588A1 publication Critical patent/JPWO2009110588A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

高速データ転送が可能で、回路構成が簡潔、且つ面積の小さいデータ転送装置及び方法並びに半導体回路を提供する。生成したデータ対を1周期のハンドシェイク信号通信の間に転送するデータ対生成回路301と、ハンドシェイク信号に応じてデータ対の一方のデータを出力するマルチプレクサ302と、記憶制御入力信号の両方向の遷移に起因してマルチプレクサ302から出力されるデータを記憶するメモリ305と、ハンドシェイク信号通信を行うとともに記憶制御信号を出力する記憶制御回路303と、データ対の一方のデータがメモリ305に記憶され、かつ他方のデータがマルチプレクサ302から出力された状態となることを待ち合わせる要求信号待ち合わせ回路306と、要求信号待ち合わせ回路306からの信号に応じてデータ対を受理し、転送先へ出力するデータ対受理回路307とを備える。

Description

本発明は、集積回路(チップ)などの電子回路におけるデータ転送に関する。
集積回路の微細化技術の進歩により、一つのチップ上に実装できる素子数が増大している。
従来は、クロックと呼ばれる同期信号をチップ全体に分配して、クロックエッジでチップ上の素子を一斉に駆動させる同期式による回路設計が主流であった。
しかしながら、素子数の増大にともなって、回路(チップ)上の個々の素子間を流れる信号の遅延は、クロックサイクル時間に対する比率が大きくなっている。このため、クロックエッジを全ての素子に同着させることが困難となっている。
そのため、チップ上に搭載されるシステムを機能に応じて複数の機能ブロックに分割して、クロックエッジを同着させる範囲を各機能ブロックに含まれる素子に限定しながら、機能ブロック間の素子へのクロック到着タイミングを任意とする方式(換言すると、異なる機能ブロック間ではクロックエッジの到着タイミングを任意とし、同一の機能ブロックに含まれる素子に関してはクロックエッジを同着させる方式)が提案されている。
これは、全体非同期・局所同期(GALS:Globally Asynchronous, Locally Synchronous)方式と呼ばれる回路設計方式である。
上記の全体非同期・局所同期方式は、近年回路設計の主流となりつつある。
GALS方式による回路設計を行う場合、機能ブロック間のデータ通信のための回路として非同期式論理回路が用いられる。非同期式論理回路とは、クロックを用いる代わりに、データ転送を行うレジスタ間でハンドシェイク信号を用いて転送元及び転送先のレジスタを協調動作させることにより処理する論理回路である。
ハンドシェイク信号としては、要求信号と通知信号とが対で用いられる。データの記憶要求信号は、データ転送元のレジスタからデータとともに転送先レジスタへ送られる。
転送先レジスタはデータ記憶要求を受け取った時に自レジスタ内に未転送データが残っていなければ到着データを記憶して記憶が完了した旨を記憶完了通知として転送元レジスタへ送る。一方、自レジスタ内に未転送データが残っていれば、未転送データが転送済みになるまでデータ転送元レジスタへ記憶完了通知を送ることなく待機する。
転送元レジスタは転送先レジスタから記憶完了通知を受け取ると、記憶中のデータを転送済みとして、次のデータ転送の準備状態に入る。
このように非同期式論理回路は、ハンドシェイク信号を用いることにより、データ転送の経路上での輻輳を出発地方向へ通知できる。このため、そのデータ転送の出発地となる機能ブロックで輻輳の通知を受理して転送を一時停止することによって、互いに非同期なクロックで駆動される機能ブロックを協調動作させることができる。
非同期式論理回路のハンドシェイク信号通信方式としては、4相式と2相式とがある。
4相式ハンドシェイク信号通信は、データ記憶要求及び記憶完了通知を、記憶信号及び通知信号の電圧レベルとして伝達することで行われる。非同期式論理回路のうちでデータの送受信を行う二つのレジスタ間での要求信号及び通知信号がともに低電圧状態であるとき、データ記憶要求は要求信号を高電圧状態にすることで伝達され、記憶完了通知は通知信号を高電圧状態にすることで伝達される。
4相式ハンドシェイク信号通信の場合、データ転送後、次のデータ転送を行うのに先だって、要求信号及び通知信号はともに低電圧状態に戻される。
2相式ハンドシェイク信号通信は、データ記憶要求及び記憶完了通知を、記憶信号及び通知信号の遷移として伝達する。非同期式論理回路内でデータの送受信を行う二つのレジスタの間での要求信号及び通知信号がともに低電圧状態であるとき、一つ目のデータの通信におけるデータ記憶要求は要求信号の立ち上がり遷移で伝達され、記憶完了通知は通知信号の立ち上がり遷移で伝達される。
その結果、一つ目のデータ通信によって、要求信号及び通知信号は高電圧状態となり、この状態から二つ目のデータの通信を行うとき、データ記憶要求は要求信号の立ち下がり遷移で電圧され、記憶完了通知は通知信号の立ち下がり遷移で伝達される。
転送速度で比較すると、2相式は4相式に比べて高速であるという利点を持つ。4相式では一つのデータ転送を完了するまでに2往復のハンドシェイク信号通信が必要であるが、2相式では1往復の通信しか必要とならないためである。
このため、理論的には2相式は4相式の2倍の転送速度を実現できる。
一方、回路構成で比較すると、4相式は2相式と比べて簡潔な構成で実現できるという利点を持つ。レジスタで用いられる記憶素子として、4相式の場合はレベルセンシティブ・ラッチや制御信号の立ち上がり遷移及び立ち下がり遷移の一方で駆動するフリップ・フロップを利用できる。そのため、4相式ハンドシェイク信号通信の非同期式論理回路は、現在広く用いられている論理セルのみで回路を構成できる。
一方、2相式ハンドシェイク信号通信の非同期式論理回路は、非特許文献1に示されるように制御信号遷移の双方向で駆動するフリップ・フロップを用いるか、非特許文献2に示されるようにレベルセンシティブ・ラッチや一方の制御信号遷移で駆動するフリップ・フロップとともに、制御信号の両方向の遷移に応じて二つの出力信号を交互に変化させる素子を用いる必要がある。
ところが、制御信号遷移の双方を起因として駆動するフリップ・フロップや制御信号の両方の遷移に応じて二つの出力信号を交互に変化させる素子は、ほとんど論理セルライブラリには用意されていない。このため、2相式ハンドシェイク信号通信を制御する非同期式論理回路の設計は実用上ほぼ不可能である。
レジスタだけでなく、GALS方式の回路において同期式機能ブロックを接続する非同期式論理回路の設計に必要な非同期式機能ブロックもまた、4相式は2相式に比べて簡潔な構成となる。
同期式機能ブロックを接続する非同期式論理回路の設計に必要な非同期式機能ブロックの一例として、入力された複数の要求信号を調停してそのうち一つの要求信号を出力する調停回路がある。
非特許文献3に示される4相式のハンドシェイク信号通信用の調整回路の構成を図1に示す。調停回路100へは要求信号Ri0、Ri1と通知信号Aoとが入力される。調停回路100からは、通知信号Ai0、Ai1と要求信号Roと調停結果信号Gr0、Gr1とが出力される。調停回路100は、相互排他モジュール110と、直前ハンドシェイク完了モジュール120と、出力要求信号生成モジュール130と、出力通知信号生成モジュール140とで構成される。相互排他モジュール110は先着信号選択モジュール111と不正信号伝播防止モジュール112とで構成される。
調停回路100内の各モジュールは通常の組み合わせ論理セルとフィードバック・ループとによって構成される。
出力通知信号生成モジュール140を構成する素子であるMullerのC素子(“Muller('s) C element”:マラー(ミュラー)のC素子)は、二つの入力信号を待ち合わせて、条件が成立する場合にはその出力信号を変化させ、条件不成立の場合には出力信号を変化させずに維持する状態記憶素子である。
図2(a)に示すMullerのC素子200は、入力端子A、Bと出力端子Yとを持つ。
MullerのC素子200は、入力信号がA=0かつB=0となるときY=0を出力し、入力信号A=1かつB=1となるときY=1を出力するように動作する。また、MullerのC素子200は、入力信号がA=0かつB=1となるとき、又は、入力信号A=1かつB=0となるとき出力信号Yを変化させずに維持する。
例えば、MullerのC素子200に入力信号A=1及びB=1が入力されて出力信号がY=1となっているとする。その後、入力信号A又はBの一方が変化してA=0かつB=1、又はA=1かつB=0となっても、出力信号はY=1のまま維持される。また、MullerのC素子200に入力信号A=0及びB=0が入力されて出力信号がY=0となっている場合も同様で、その後、入力信号A又はBの一方が変化してA=1かつB=0、又はA=0かつB=1となっても、出力信号はY=0のまま維持される。
このように、MullerのC素子200は、同一の入力信号の組A=0かつB=1が与えられたとしても、その信号の組が入力される直前の値に応じて異なる値を出力する。
MullerのC素子200の入力出力信号の関係を図2(b)の動作表202に示す。ここでY(t−1)は、入力信号A、Bのいずれかが遷移する以前の出力信号Yの値を示しており、入力信号A=0かつ入力信号B=0の状態からA、Bの一方が遷移した場合は“0”となり、入力信号A=1かつ入力信号B=1の状態からA、Bの一方が遷移した場合は“1”となる。
MullerのC素子は、その待ち合わせと状態記憶との機能により、非同期式論理回路において重要な役割を果たす。
例えば、図1の調停回路100における出力通知信号モジュール140は、MullerのC素子二つで構成されており、調停回路100の出力通知信号Ai0及びAi1は、調停結果信号Gr0及びGr1と入力通知信号Aoとから、以下のように生成される。
Gr0=1かつAo=1であればAi0=1
Gr1=1かつAo=1であればAi1=1
Gr0=0かつAo=0であればAi0=0
Gr1=0かつAo=0であればAi1=0
調停回路100の出力通知信号Ai0及びAi1の生成においては、上記条件に加えてその条件が揃うまでは出力通知信号Ai0及びAi1は如何なる遷移も起こしてはならないという制約を伴う。このような動作を実現するために、MullerのC素子が出力通知信号モジュール140において用いられる。
4相式ハンドシェイクを行う調停回路が図1に示したように簡潔な構成で実現される理由は、記憶要求や完了通知が電圧レベルとして伝達されることにより、4相式調停回路がハンドシェイク通信の状態を記憶する機構を持つ必要がないためである。
例えば、要求信号Ri0が他方の要求信号Ri1よりも先着したとする。4相式の場合、要求信号はそれぞれ信号レベルRi0=1及びRi1=1として伝達されており、4相式調停回路110は、到着が遅かった要求信号Ri1=1をその信号レベルを維持させたまま、他方の要求信号Ri0=1によるハンドシェイクの完了を待たせることができる。これは、Ri1=1の信号レベルだけで、要求信号に対する処理が未了であることを示せるためである。
一方、2相式の場合、ハンドシェイク信号の信号遷移として記憶要求や完了通知が伝達されるため、信号レベルだけではハンドシェイク通信状態が不明である。
例えば、要求信号レベルがRi0=Ri1=0である状態から、Ri0=1、Ri1=1の順に信号が立ち上がり遷移したとする。このとき、先着した要求信号Ri0の立ち上がりによる要求を即座に処理開始したとすると、信号Ri0の立ち上がりによるハンドシェイク信号通信が完了するまでRi1はRi1=1のまま維持されることとなる。
ところが、2相式においては、信号状態Ri1=1だけでは、要求信号Ri1の立ち上がりに起因されるハンドシェイク通信が既に開始されている可能性もあるため、要求信号Ri1の立ち上がりに起因されるハンドシェイク通信がまだ開始されていないということを示すことができない。
そのため、遅れて到着したRi1の立ち上がりによる要求が未処理であることを2相式調停回路内で記憶しておかねばならない。
Ri1の信号遷移による要求が未処理であることの記憶は、Ri1の立ち上がり及び立ち下がりの両方の信号遷移によって引き起こされなければならないだけでなく、入力される通知信号Aoの立ち上がり及び立ち下がりの両方の信号遷移によっても引き起こされなければならないため、2相式調停回路の構成が極めて複雑となる。このため、2相式調停回路の構成は、4相式調停回路と比較して極めて大規模となる。
4相式の回路の簡潔性と2相式の高速性との両立の可能性が考えられる技術として、特許文献1に開示される回路がある。
特許第3892323号公報 S. Furber et al, "Four-phase Micro-pipeline Latch ControCtrlircuits," 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月.
しかし、特許文献1に開示される回路は、4相式と2相式のハンドシェイク通信の変換を行うものであって、同期式機能ブロックを接続する非同期式論理回路を設計すると、多数の変換回路が必要となるため、高速性及び回路の簡潔性の実現は期待できない。
上記のように、非同期式論理回路は、
(1)4相式のハンドシェイク通信を行う非同期式データ転送回路は、1回のデータ転送に2往復のハンドシェイク信号通信が必要であるため、高速データ転送ができない。
(2)2相式のハンドシェイク通信を行う非同期式データ転送回路は、電圧レベルがハンドシェイク通信における動作状態を示さないため、動作状態を記憶する機構を設ける必要があり回路構造が複雑である。
(3)2相式のハンドシェイク通信を行う非同期式データ転送回路は、記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に起因して記憶動作をする記憶素子が必要となるため、回路面積が大きくなってしまう。
という問題がある。
本発明は係る問題に鑑みてなされたものであり、高速データ転送が可能であり、且つ簡潔な回路構成であり、且つ面積の小さいデータ転送装置及び方法並びに半導体回路を提供することを目的とする。
上記目的を達成するため、本発明は、第1の態様として、1以上の転送元から1以上の転送先へのデータ転送を行うデータ転送装置であって、転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、偶数個の転送データを二つずつ組みにすることによってデータ対を生成すると共に、生成したデータ対を、ハンドシェイク信号の通信周期に従って出力するデータ対生成回路と、ハンドシェイク信号に応じて、データ対の一方のデータを出力するマルチプレクサと、マルチプレクサから出力されるデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じて記憶するメモリと、4相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、メモリを制御すべく記憶制御信号を出力する記憶制御回路と、データ対の一方のデータがメモリに記憶され、かつ他方のデータがマルチプレクサから出力された状態となるのに応じて、要求信号を出力する待ち合わせ回路と、要求信号に応じてマルチプレクサ及びメモリからデータ対を受理し、受理したデータ対を転送先へ出力するデータ対受理回路とを備えることを特徴とするデータ転送装置を提供するものである。
また、上記目的を達成するため、本発明は、第2の態様として、上記本発明の第1の態様に係るデータ転送装置を備えることを特徴とする半導体回路を提供するものである。
また、上記目的を達成するため、本発明は、第3の態様として、1以上の転送元から1以上の転送先へのデータ転送を行うデータ転送装置であって、転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、偶数個の転送データを二つずつ組みにすることによってデータ対を生成し、生成したデータ対のうちのいずれか一方のデータを、ハンドシェイク信号の通信周期に従ってマルチプレクサから出力し、ハンドシェイク信号の通信周期に従って出力したデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じてメモリに記憶し、4相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、メモリを制御すべく記憶制御信号を出力し、データ対の一方のデータがメモリに記憶され、かつ他方のデータがマルチプレクサから出力された状態となるのに応じて、要求信号を出力し、要求信号に応じてマルチプレクサ及びメモリからデータ対を受理し、受理したデータ対を転送先へ出力することを特徴とするデータ転送方法を提供するものである。
本発明によれば、高速データ転送が可能であり、且つ簡潔な回路構成であり、且つ面積の小さいデータ転送装置及び方法並びに半導体回路を提供できる。
〔第1の実施形態〕
図3に、本発明の第1の実施形態に係るデータ転送装置の内部構成を示す。データ転送装置300は、データ対生成回路301、マルチプレクサ302、記憶制御回路303、パルス信号生成回路304、メモリ305、要求信号待ち合わせ回路306、データ対受理回路307を有する。
データ対生成回路301は、外部からの1以上の入力データからなるデータ列を受け取ったタイミングにおいて、奇数個の未送信データを保持しているときには奇数個(例えば一つ)のダミーデータを付加して保持データ数を偶数とする。なお、ダミーデータ数は任意の奇数で良いが、無駄なデータ転送を抑えるために一つだけ付加することが好ましい。また、データ対生成回路301は、データ列における先頭のデータとその次のデータをそれぞれ第1のデータ出力端子及び第2のデータ出力端子からデータ対として出力する。さらに、データ対生成回路301は、入力データが全て送信済みとなるまでの間、データ対に対応した内部要求信号Rmを繰り返し出力する。ここで、内部要求信号Rmは、二種類の電圧状態を取りうる信号であるとする。データ対生成回路301は、外部からの入力信号によって状態遷移する順序論理回路として実現できる。
マルチプレクサ302は、データ対生成回路301から入力された内部要求信号Rmが一方の電圧状態であるときには第1のデータ出力端子Dpからの信号をデータ対生成回路301の出力として伝播させ、データ対生成回路301から入力された内部要求信号Rmが他方の電圧状態であるときには第2のデータ出力端子Dnからの信号をデータ対生成回路301の出力として伝播させる。マルチプレクサ302は、1ビットの選択信号の状態により二つのデータ入力のうちの一方の値を出力する組み合わせ論理回路として実現することが可能である。
記憶制御回路303は、データ対生成回路301からの内部要求信号Rmとデータ対受理回路307からの通知信号Arとを受け取って、4相ハンドシェイクプロトコルに従って、メモリ305へ制御信号Ltを、データ対生成回路301へ内部通知信号Amを、データ対受理回路307への要求信号Rrをそれぞれ出力する。記憶制御回路303は、図2に示したものと同様のMullerのC素子601と否定(NOT)ゲートとによって図4(a)に示すように実現可能である。なお、図4(b)に示すように、MullerのC素子601は、3入力多数決セル601aとフィードバック・ループ601bとによって構成できる。
パルス信号生成回路304は、記憶制御回路303からメモリ305の制御信号Ltを受け取って、その制御信号の立ち上がり遷移及び立ち下がり遷移の際に、パルス信号Pを生成する。パルス信号Pは、記憶制御回路303のデータ対生成回路301との間の通知信号Am及び要求信号Rmの最小遅延並びに要求信号待ち合わせ回路306への要求信号Rr及びデータ対受理回路307からの通知信号Arの最小遅延よりも短い時間のパルスである。パルス信号生成回路304は、排他的論理和(XOR)ゲートと遅延ゲートとによって図5に示すように実現可能である。
メモリ305は、パルス信号生成回路304からのパルス信号Pを受け取ってマルチプレクサ302のデータ出力信号Dmを記憶し、データ対受理回路307へデータDrを出力する。メモリ305は、転送データのビット幅と同数の記憶素子で実現可能である。記憶素子としては、制御信号の立ち上がり及び立ち下がりの一方の遷移に起因して記憶動作するレベルセンシティブ・ラッチとフリップ・フロップとの少なくとも一方を適用可能である。レベルセンシティブ・ラッチを用いた記憶デバイスは、フリップ・フロップを用いた記憶デバイスよりも少ないトランジスタ数で構成できるため、デバイスの小面積化が可能である。一方、フリップ・フロップを用いた記憶デバイスは、制御信号の立ち上がり及び立ち下がりの一方の遷移に起因して記憶動作を行わせるためのパルス幅の設定がレベルセンシティブ・ラッチよりもラフで良いため、タイミング設計が容易である。
要求信号待ち合わせ回路306は、記憶制御回路303から入力される要求信号Rrと、要求信号Rrを出力している記憶制御回路303に入力される内部要求信号Rmの否定を待ち合わせて、待ち合わせ要求信号Rfを出力する。要求信号待ち合わせ回路306は、論理積(AND)ゲートとNOTゲートとによって実現可能である。
データ対受理回路307は、要求信号待ち合わせ回路306からの出力信号を受け取って、メモリ305が記憶しているデータとメモリ305へ入力されているデータとをデータ対として受信し、データ転送装置300の外部へ出力する。データ対受理回路307は、外部からの入力信号によって状態遷移する順序論理回路として実現できる。
図6に、データ転送装置300の動作の流れを示す。
まず、データ対生成回路301は、データ転送装置300の外部からの送信データを受理する(ステップS401)。データ対生成回路301は、所定の時間が経過するまでの間送信データの受理を繰り返し、受理した送信データをデータ列として記憶する(ステップS402)。
データ対生成回路301は、所定の時間が経過した時点で(ステップS402/Yes)、外部から受理した送信データの数が偶数であるか否かを判断する(ステップS403)。データ対生成回路301は、受理した送信データの数が奇数であれば(ステップS403/No)、受理したデータ列の末尾に奇数個のダミーデータを追加する(ステップS404)。一方、受理した送信データの数が偶数であれば(ステップS403/Yes)、データ対生成回路301はダミーデータの追加は行わない。
その後、データ対生成回路301は、データ列の最初の二つのデータからなるデータ対とともに内部要求信号(Rm=1)をマルチプレクサ302、記憶制御回路303及び要求信号待ち合わせ回路306へ出力する(ステップS410)。
マルチプレクサ302は、データ対生成回路301によって出力されたデータ列の最初の二つのデータと内部要求信号(Rm=1)とを受け取り、データ対において前者(データ列上で奇数番目)となるデータ(データ対生成回路301の第1のデータ出力端子から出力されたデータDp)を送信データDmとして出力する(ステップS411)。
記憶制御回路303は、内部要求信号Rm=1をデータ対生成回路301から受信した時点で通知信号Ar=0を受け取っているならば(ステップS412/Yes)、要求信号待ち合わせ回路306へ要求信号Rr=1を、データ対生成回路301へ内部通知信号Am=1を、パルス信号生成回路304へ記憶制御信号Lt=1をそれぞれ出力する(ステップS413)。なお、内部要求信号Rm=1をデータ対生成回路301から受信した時点で通知信号Ar=1の場合は、前回処理分のデータをメモリ305から引き取る処理が完了していないため、そのデータがデータ対受理回路307に引き取られてAr=0がデータ対受理回路307から入力されるまで待機する(ステップS412)。
パルス信号生成回路304は、ステップS413における記憶制御信号Ltの立ち上がり遷移に対応して、記憶制御パルス信号Pを生成する(ステップS414)。
メモリ305は、ステップS414において生成されたパルス信号Pがパルス信号生成回路304から入力されると、ステップS411でマルチプレクサ302から出力された送信データDm(奇数番データ)を記憶する(ステップS415)。
データ対生成回路301は、内部通知信号Am=1を受信すると、データ対の出力を維持しつつRm=0をマルチプレクサ302、記憶制御回路303及び要求信号待ち合わせ回路306へ出力する(ステップS420)。
マルチプレクサ302は、データ対生成回路301によって出力されているデータ対とともに内部要求信号Rm=0を受け取って、データ対における後者(データ列上で偶数番目)となるデータ(データ対生成回路301の第2のデータ出力端子から出力されたデータDn)を送信データDmとして出力する(ステップS421)。
要求信号待ち合わせ回路306は、要求信号Rr=1と内部要求信号Rm=0とを待ち合わせて、待ち合わせ要求信号Rf=1をデータ対受理回路307へ出力する(ステップS422)。
データ対受理回路307は、待ち合わせ要求信号Rf=1を受けて、メモリ305及びマルチプレクサ302からデータ対を受信するとともに、通知信号Ar=1を記憶制御回路303へ出力する(ステップS423)。データ対を受信したデータ対受理回路307は、まず、データ対のうち奇数番のデータをデータ出力Doとして出力する(ステップS424)。その後、データ対受理回路307は、データ対のうち偶数番のデータをデータ出力Doとして出力する(ステップS425)。
記憶制御回路303は、通知信号Ar=1を受け取ると、要求信号待ち合わせ回路306へ要求信号Rr=0を、データ対生成回路301へ内部通知信号Am=0を、パルス信号生成回路304へ記憶制御信号Lt=0をそれぞれ出力する(ステップS426)。要求信号待ち合わせ回路306は、要求信号Rr=0に遷移したことを受けて待ち合わせ要求信号Rf=0をデータ対受理回路307へ出力する。
パルス信号生成回路304は、ステップS426における記憶制御信号Ltの立ち下がり遷移に対応して記憶制御用のパルス信号Pを生成する(ステップS427)。
メモリ305は、パルス信号生成回路304からパルス信号Pが入力されると、マルチプレクサ302から出力された偶数番のデータ(データ対生成回路301の第2のデータ出力端子から出力されてきたデータDn)を記憶する(ステップS428)。そして、データ対受理回路307は、待ち合わせ要求信号Rf=0が要求信号待ち合わせ回路306から入力されると通知信号Ar=0を出力する(ステップS429)。
その後、データ対生成回路301は、ステップS410までに得たデータ列全ての出力を完了したか否かを判断する(ステップS430)。データ対生成回路301がデータ列全ての出力を完了した場合には(ステップS430/Yes)、ステップS401へ戻る。一方、データ対生成回路301がデータ列全ての出力を完了していない場合には(ステップS430/No)、ステップS410へ戻り、ステップS410〜S429の動作を繰り返す。
なお、上記の動作のうちステップS427〜S428の動作(偶数番データをメモリ305に記憶することに関連する動作)は、省略することも可能である。ただし、これらの動作を行わないようにすると、奇数番のデータと偶数番のデータとで異なる処理を行うこととなるため、データ転送装置の回路構成が複雑になってしまう。ステップS426〜S429の動作を行うように回路を構成することにより、図3に示したような簡略な構成の回路でデータ転送を行うことが可能となる。
図6に示したフローチャートの一部のステップは並行して処理することが可能である。
図7〜図10に、データ転送装置300に含まれる各部の動作の流れを示す。図7〜図10の各部の動作は、並列に処理可能である。
データ転送装置300に含まれる各部は、他の機能部からの入力信号の待ち合わせを行うことによって動作する。図6に示した動作は、図7〜図10に示す各部の動作の組み合わせの一例である。
図7に、データ対生成回路301の動作の流れを示す。データ対生成回路301は、転送元からデータを取得する「データ受信処理」と転送先に向けてデータを出力する「データ転送処理」との二つの動作を行う。ステップS1201〜S1203は、図6のステップS401〜S402に対応する。ステップS1203〜S1205は、図6のステップS403〜S404に対応する。ステップS1206は、図6のステップS426における実行待ちに相当する。ステップS1207は図6のステップS411に対応する。ステップS1208は、図6のステップS413における実行待ちに相当する。ステップS1209、S1210は、図6のステップS420、S430にそれぞれ対応する。なお、「データ受信処理」と「データ転送処理」とは、パラレルに行っても良いし、シリアルに行っても良い。
図8に、マルチプレクサ302の動作の流れを示す。ステップS1301は、図6のステップS410及びS420に対応しており、これらのステップのうちどちらが実行されたかを示す条件分岐である。ステップS1302はステップS410に対応しており、マルチプレクサ302はデータ対生成回路301から出力されている新規データ対のうち奇数番目のデータを入力として受け取る。ステップS1303はステップS420に対応しており、マルチプレクサ302はデータ対生成回路301によって出力が維持されているデータ対のうち偶数番目のデータを入力として受け取る。ステップS1304はステップS411及びS421に対応しており、マルチプレクサ302は、ステップS1302又はS1303で入力されたデータを出力する。
図9に、記憶制御回路303、パルス信号生成回路304及びメモリ305の動作の流れを示す。ステップS1401は、データ対生成回路301よってステップS410が実行され、かつステップS412の条件分岐において条件が成立した場合の記憶制御回路303の動作である。ステップS1402はステップS413に対応する記憶制御回路303の動作である。ステップS1403はステップS414に対応するパルス信号生成回路304の動作である。ステップS1404はステップS415に対応するメモリ305の動作である。ステップS1405はデータ対生成回路301によってステップS420が実行され、かつデータ対受理回路307によってステップS422が実行された場合の記憶制御回路303の動作である。ステップS1406は、ステップS426に対応する記憶制御回路303の動作である。ステップS1407は、ステップS427に対応するパルス信号生成回路304の動作である。ステップS1408はステップS428に対応するメモリ305の動作である。
図10に、要求信号待ち合わせ回路306及びデータ対受理回路307の動作の流れを示す。
ステップS1501は、ステップS422の条件分岐に対応する要求信号待ち合わせ回路306の動作である。ステップS1502〜S1505は、ステップS423〜S425にそれぞれ対応するデータ対受理回路307の動作である。ステップS1506は、記憶制御回路303によってステップS426が実行されたか否かの条件分岐で、データ対受理回路307は要求信号Rr=0となるのを待機する。ステップS1508は、ステップS429に対応するデータ対受理回路307の動作である。
上記説明した図7〜図10に示す各部の動作を組み合わせることによって、データ転送装置300全体の動作を表すことが可能である。
以上のように、本実施形態に係るデータ転送装置は、データ対生成回路301で二つのデータからなるデータ対を生成し、マルチプレクサ302で4相ハンドシェイク・プロトコルの1周期の間に二つのデータを順番に転送し、パルス信号生成回路304によって4相ハンドシェイク・プロトコルの1周期の間にメモリ305を2度駆動するように構成されているため、従来の4相式によるデータ転送装置の2倍の転送速度を実現できる。
さらに、本実施形態においては、データ対生成回路301へ所定の時刻までに入力されたデータの個数が奇数であった場合にダミーデータを追加して、実際に転送されるデータの個数を偶数とするため、4相ハンドシェイク・プロトコルの1周期を不可分な単位とした転送を行える。このため、本実施形態に係るデータ転送装置は、回路構成が簡潔な4相ハンドシェイク制御回路を実現できる。
また、本実施形態においては、パルス信号生成回路304を用いて記憶制御信号の両方の遷移についてパルスを生成しているため、メモリ305として一方の制御信号遷移で駆動するラッチやフリップ・フロップを適用できる。このため、メモリ305の回路面積を小さくできる。
なお、ここではパルス信号生成回路304を備えた構成を例としたが、図11に示すように、データ対受理回路307の直前に配置されているパルス信号生成回路304は、省略することも可能である。
〔第2の実施形態〕
本発明を好適に実施した第2の実施形態について説明する。
上記第1の実施形態においては、最もシンプルな1入力1出力の構成を例としたが、本発明は入力数や出力数が1ではない場合にも適用可能である。
入力数や出力数が1ではない場合には、データ転送装置内に分岐や合流のための回路を設けることとなる。データの分岐や合流を実現するための回路としては、4相調停回路、4相待ち合わせ回路、4相分配回路、及び4相選択回路が挙げられる。
4相調停回路は、2以上の入力信号を一つずつ順番に次段へ送るために用いる回路である。4相調停回路としては、図1に示した調停回路100を適用可能である。なお、3以上の入力信号を順番に次段へ送る場合には、2入力1出力の4相調停回路を複数段直列に配置すればよい。例えば、A、B、Cの三つの入力信号を調停する場合には、前段の4相調停回路でAとBとの間で調停を行って先着側を調停結果Dとして出力し、後段の4相調停回路でDとCとの間で調停を行って先着側を調停結果とすればよい。
4相選択回路は、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補のいずれかに選択して出力するために用いる回路である。4相選択回路は、一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び要求信号出力端子と同数の通知信号入力端子と、目的地情報入力端子とを有する回路である。4相選択回路は、要求信号入力端子から要求信号が入力されたとき、目的地情報に基づいて要求信号出力端子のうち一つを選択して、選択された方から要求信号を出力する。そして4相選択回路は、出力要求信号に対する通知信号を選択された要求信号出力端子に対応する通知信号入力端子を介して受け取って、通知信号出力端子から通知信号を出力する。
図12に4相選択回路の構成例を示す。図示する4相選択回路は、要求信号入力端子Ri及び要求信号出力端子Ro0、Ro1と、通知信号出力端子Ai及び通知信号入力端子Ao0、Ao1と、目的地情報入力端子S0、S1とを有する。4相選択回路は、要求信号入力端子Riから要求信号が入力されたとき、目的地情報に基づいて要求信号出力端子Ro0、Ro1のうち一つを選択して、選択された方から要求信号を出力する。そして4相選択回路は、出力要求信号に対する通知信号を選択された要求信号出力端子に対応する通知信号入力端子Ao0、Ao1を介して受け取って、通知信号出力端子Aiから通知信号を出力する。
図12に示した4相選択回路の動作の一例を示す。初期状態では、Ri=Ai=Ro0=Ro1=Ao0=Ao1=0で、S0及びS1の値は任意とする。
初期状態は4相選択回路は奇数番データ待機状態である。4相選択回路には、入力要求信号Ri=1が与えられるとともに並行データ信号線に奇数番データが入力され、奇数番データ転送状態に入る。奇数番データ転送状態では、4相選択回路は、奇数番データと後続する偶数番データとから成るデータ対の転送方向を示す目的地情報信号が入力される。データ対の転送方向がデータ出力0番側ならば(S0,S1)=(1,0)が入力され、データ対の転送方向がデータ出力1番側ならば(S0,S1)=(0,1)が入力される。
(S0,S1)=(1,0)が入力された場合は、MullerのC素子によってRo0=1となる一方でRo1=0のままとなり、要求信号がデータ出力0番側のみへ送られる。
一方、(S0,S1)=(0,1)が入力された場合は、MullerのC素子によってRo0=0のままである一方でRo1=1となり、要求信号がデータ出力1番側のみへ送られる。
奇数番データ転送の際にRo0=1となった場合には、データ出力0番側からの通知信号Ao0=1が入力される。また、奇数番データ転送の際にRo1=1となった場合には、データ出力1番側からの通知信号Ao1=1が入力される。いずれの場合においても、4相選択回路はAi=1を出力して、偶数番データ待機状態に入る。
偶数番データ待機状態では、4相選択回路には入力要求信号Ri=0が与えられ、目的地情報信号(S0,S1)=(0,0)が入力されるとともに、並行データ信号線に偶数番データあるいはダミーデータが入力され、偶数番データ転送状態に入る。
偶数番データ転送状態では、4相選択回路は、奇数番データ転送の際に入力されていたデータ対の転送方向を示す目的地情報信号に従って動作する。奇数番データ転送の際に(S0,S1)=(1,0)が入力されていた場合は、MullerのC素子によってRo0=0となる一方でRo1=0のままとなり、要求信号がデータ出力0番側のみへ送られる。一方、奇数番データ転送の際に(S0,S1)=(0,1)が入力されていた場合は、MullerのC素子によってRo0=0のままである一方でRo1=0となり、要求信号がデータ出力1番側のみへ送られる。
偶数番データ転送の際にRo0=0となった場合には、データ出力0番側からの通知信号Ao0=0が入力される。また、偶数番データ転送の際にRo1=0となった場合には、データ出力0番側からの通知信号Ao1=0が入力される。いずれの場合においても、4相選択回路はAi=0を出力して、奇数番データ待機状態に戻る。
4相分配回路は、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の全てに出力するために用いる回路である。4相分配回路は、一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び要求信号出力端子と同数の通知信号入力端子とを有する回路である。4相分配回路は、要求信号入力端子を介して要求信号が入力されたとき、要求信号出力端子の全てから要求信号を出力する。そして、4相分配回路は、通知信号入力端子の全てから通知信号を受け取ったときに、通知信号出力端子から通知信号を出力する。
図13に4相分配回路の構成例を示す。図示する4相分配回路は、要求信号入力端子Ri及び要求信号出力端子Ro0、Ro1と、通知信号出力端子Ai及び通知信号入力端子Ao0、Ao1とを有する。4相分配回路は、要求信号入力端子Riを介して要求信号が入力されたとき、要求信号出力端子Ro0、Ro1の両方から要求信号を出力する。そして、4相分配回路は、通知信号入力端子Ao0、Ao1の両方から通知信号を受け取ったときに、通知信号出力端子Aiから通知信号を出力する。
4相待ち合わせ回路は、並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力するために用いる回路である。4相待ち合わせ回路は、複数の要求信号入力端子及び一つの要求信号出力端子と、要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを有する。4相待ち合わせ回路は、要求信号入力端子の全てから要求信号が入力されたとき、要求信号出力端子から要求信号を出力する。そして、4相待ち合わせ回路は、通知信号入力端子を介して通知信号を受け取ったときに、通知信号出力端子の全てから通知信号を出力する。
図14に、4相待ち合わせ回路の構成例を示す。図示する4相待ち合わせ回路は、要求信号入力端子Ri0、Ri1及び要求信号出力端子Roと、通知信号出力端子Ai0、Ai1及び通知信号入力端子Aoとを有する。4相待ち合わせ回路は、要求信号入力端子Ri0、Ri1の両方から要求信号が入力されたとき、要求信号出力端子Roから要求信号を出力する。そして、4相待ち合わせ回路は、通知信号入力端子Aoを介して通知信号を受け取ったときに、通知信号出力端子Ai0、Ai1の両方から通知信号を出力する。
並行するデータ信号線は、Ri0/Ai0に並行するあるデータ入力とRi1/Ai1に並行する別のデータ入力を束ねたものとすることができる。また、両者の入力データを比較して、所定の方法で一方を選び出力するような組合せ回路を、両データ入力およびデータ出力に接続することも可能である。
以下の説明においては、4相調停回路を用いた2入力1出力の構成を例とするが、上記の4相調停回路、4相待ち合わせ回路、4相分配回路、及び4相選択回路を適宜組み合わせることによって、任意の入力数及び出力数のデータ転送装置を構成可能である。
図15に、本実施形態に係るデータ転送装置の構成を示す。データ転送装置500は、二つのデータ入力と一つのデータ出力とを有する装置である。
データ転送装置500は、データ対生成回路501、511、メモリ505、515、525、記憶制御回路503、513、523、パルス信号生成回路504、514、524、マルチプレクサ502、512、522、4相調停回路529、要求信号待ち合わせ回路598、データ対受理回路599を有する。
メモリ505、515、525は、制御入力信号が高電圧状態のときには入力データをそのまま出力端子から出力し、制御入力信号が低電圧状態のときにはその状態になったときの入力データの値を保持するレベルセンシティブ・ラッチを適用できる。以後、高電圧状態の信号を信号値1と表記し、低電圧状態の信号を信号値0と表記する。
記憶制御回路(Ctrl)503、513、523は、図4(a)に示した記憶制御回路600として構成される。記憶制御回路600に含まれるMullerのC素子601は、図4(b)に示したように3入力多数決セル601aとフィードバック・ループ601bとによって構成される。
4相調停回路529は、図1に示した調停回路100と同様である。4相調停回路529は、入力要求信号がRi0=1となるとき他方がRi1=0で尚且つ出力通知信号がAi1=0であれば、調停結果信号(Gr0,Gr1)=(1,0)を出力して、Ri0=1→Ro=1→Ao=1→Ai0=1→Ri0=0→Ro=0→Ao=0→Ai0=0の系列での信号遷移を行う。このとき、当該調停回路のハンドシェイク信号経路の使用権が0番側入力に与えられているという。
同様に、4相調停回路529は、入力要求信号がRi1=1となるとき他方がRi0=0で尚且つ出力通知信号がAi0=0であれば、調停結果信号(Gr0,Gr1)=(0,1)を出力して、Ri1=1→Ro=1→Ao=1→Ai1=1→Ri1=0→Ro=0→Ao=0→Ai1=0の系列での信号遷移を行う。このとき、当該調停回路のハンドシェイク信号経路の使用権が1番側入力に与えられているという。
パルス信号生成回路(PG)504、514、524は、図5に示した排他的論理和(XOR)素子701と遅延素子702とからなるパルス信号生成回路700として構成される。
なお、パルス信号生成回路504、514、524のうち、データ対受理回路599の直前に配置されているパルス信号生成回路524は、省略することも可能である。
マルチプレクサ502、512は、組み合わせ論理回路として構成される。一方、マルチプレクサ522は、4相調停回路529からの信号Gr0及びGr1を制御入力信号として受け取り、Gr0=1かつGr1=0のときは入力端子Dm0からのデータを出力端子Dm2へ伝播させ、Gr0=0かつGr1=1のときは入力端子Dm1からのデータを出力端子Dm2へ伝播させ、Gr0=Gr1=0のときは制御入力信号がその状態になる直前に出力されているデータを保持して出力端子Dm2から出力する順序回路として構成される。
要求信号待ち合わせ回路598は、AND素子及びNOT素子によって構成される。
データ対生成回路501、511は、図6のステップS401〜S410及びS420、S430を実行する同期式順序回路として構成される。このとき、データ対生成回路501、511への入力通知信号Am0及びAm1は非同期信号であるため、この非同期信号を同期化するように複数段のフリップ・フロップを直列接続した回路などで構成される。データ対生成回路501、511は、それぞれデータ対のうちの奇数番目のデータを出力するための第1の出力端子とデータ対のうちの偶数番目のデータを出力するための第2の出力端子を有する。
データ対受理回路599は、図6のステップS423〜S425及びS429を実行する同期式順序回路として構成される。このとき、データ対受理回路599へ入力される待ち合わせ要求信号Rfは非同期信号であるため、データ対受理回路599は、この非同期信号を同期化するように複数段のフリップ・フロップを直列接続した回路などで構成される。
データ転送装置500のうち、データ対生成回路501とマルチプレクサ502と記憶制御回路503とパルス信号生成回路504とメモリ505との動作に関して、データ転送装置500内の全ての信号の値が0である状態を初期状態として各信号の波形を図16に示す。
データ入力Di0として、ある時刻までに二つのデータd0及びd1がデータ対生成回路501へ入力されたとする(ステップS401、402)。このとき、データ数が2で偶数であるため(ステップS403/Yes)、データ対生成回路501はd0及びd1を新規データ対としてマルチプレクサ502へ出力するとともに、要求信号Rm0=1をマルチプレクサ502及び記憶制御回路503へ出力する(ステップS410)。マルチプレクサ502は、データ対生成回路501から入力された要求信号Rm0=1に応じて、データ対生成回路501の第1の出力端子から出力されたデータDp0(=d0)を、自身の出力データDm0としてメモリ505へ出力する(ステップS411)。
記憶制御回路503は、データ対生成回路501から要求信号Rm0=1が入力されると、通知信号Ax0=0であるため(ステップS412/Yes)、通知信号Am0=1をデータ対生成回路501へ、要求信号Rx0=1を4相調停回路529へ、記憶制御信号Lt0=1をパルス信号生成回路504へそれぞれ出力する(ステップS413)。
記憶制御信号Lt0の立ち上がり遷移に応じて、パルス信号生成回路504は、値が0→1→0と遷移するパルス信号P0を生成し、メモリ505へ出力する(ステップS414)。パルス信号生成回路504からパルス信号P0が入力されると、メモリ505はその時点でマルチプレクサ502から出力されているデータDm0=d0を記憶する(ステップS415)。
データ対生成回路501は、記憶制御回路503から通知信号Am0=1が入力されると、データ対d0及びd1の出力を維持しつつ、要求信号Rm0=0をマルチプレクサ502及び記憶制御回路503へ出力する(ステップS420)。マルチプレクサ502は、要求信号Rm0=0がデータ対生成回路501から入力されると、データ対生成回路501の第2の出力端子から出力されたデータDn0(=d1)を、自身の出力データDm0としてメモリ505へ出力する(ステップS421)。
データ転送装置500は、図3に示したデータ転送装置300とは異なり、メモリ505がデータ対受理回路599に直接接続されていないが、4相調停回路529及び記憶制御回路523の作用により、データ転送装置300の場合と同様に動作する。これにより、記憶制御回路503は、要求信号Rx0=1に対する応答として4相調停回路529から通知信号Ax0=1を受け取る(ステップS423)。
なお、ステップS424、S425は、データ対受理回路599において行われる動作であり、データ対生成回路501、マルチプレクサ502、記憶制御回路503、パルス信号生成回路504、及びメモリ505の動作とは関連が無い。よって、ここではこれらのステップは存在しないものとし、ステップS423の終了後はステップS426へ進むものとする。
記憶制御回路503は、4相調停回路529から入力された通知信号Ax0=1に応じて、通知信号Am=0をデータ対生成回路501へ、要求信号Rx0=0を4相調停回路529へ、記憶制御信号Lt0=0をパルス信号生成回路504へそれぞれ出力する(ステップS426)。
記憶制御信号Lt0の立ち下がり遷移に応じて、パルス信号生成回路504は、値が0→1→0と遷移するパルス信号P0を生成し、メモリ505へ出力する(ステップS427)。メモリ505は、メモリ505はその時点でマルチプレクサ502から出力されているデータDm0=d1を記憶する(ステップS428)。
4相調停回路529及び記憶制御回路523の作用により、記憶制御回路503は要求信号Rx0=0に対する応答として4相調停回路529から通知信号Ax0=0を受け取る(ステップS429)。
データd0及びd1がデータ対生成回路501から送信されてデータ対生成回路501における未送信データ数が0となったため(ステップS430/Yes)、ステップS401に戻りデータ転送装置500は入力データ待ち状態となる。
ここで、データd0、d1の転送が完了する時刻までにデータ転送装置500の外部からデータ入力Di0を介してデータ対生成回路501へ一つのデータd2が入力されたとする(ステップS401、S402)。このときデータ数が1で奇数であるため(ステップS403/No)、データ対生成回路501は、一つのダミーデータdm0を付加する(ステップS404)。ダミーデータdm0はいかなる値であってもよい。例えば、ダミーデータdm0の値は直前にデータ対生成回路501に入力されたデータd2と等しくすることが可能である。このようにすれば、データ信号線上でスイッチングが行われないため、電力消費を低減できる。
データ対生成回路501は、d2とdm0とを新規データ対としてマルチプレクサ502へ出力するとともに、要求信号Rm0=1をマルチプレクサ502及び記憶制御回路503へ出力する(ステップS410)。
マルチプレクサ502は、データ対生成回路501から入力された要求信号Rm0=1に応じて、データ対生成回路501の第1の出力端子から出力されたデータDp0(=d2)を、自身の出力データDm0としてメモリ505へ出力する(ステップS411)。
記憶制御回路503は、データ対生成回路501から要求信号Rm0=1が入力されると、通知信号Ax0=0であるため(ステップS412)、通知信号Am0=1をデータ対生成回路501へ、要求信号Rx0=1を4相調停回路529へ、記憶制御信号Lt0=1をパルス信号生成回路504へそれぞれ出力する(ステップS413)。
記憶制御信号Lt0の立ち上がり遷移に応じて、パルス信号生成回路504は、値が0→1→0と遷移するパルス信号P0を生成し、メモリ505へ出力する(ステップS414)。パルス信号生成回路504からパルス信号P0が入力されると、メモリ505はその時点でマルチプレクサ502から出力されているデータDm0=d2を記憶する(ステップS415)。
データ対生成回路501は、記憶制御回路503から通知信号Am0=1を入力されると、データd2及びdm0のデータ対の出力を維持しつつ、要求信号Rm0=0をマルチプレクサ502及び記憶制御回路503へ出力する(ステップS420)。マルチプレクサ502は、要求信号Rm0=0がデータ対生成回路501から入力されると、データ対生成回路501の第2の出力端子から出力されたデータDn0(=dm0)を、自身の出力データDm0としてメモリ505へ出力する(ステップS421)。
データ転送装置500は、図3に示したデータ転送装置300とは異なり、メモリ505がデータ対受理回路599に直接接続されていないが、4相調停回路529及び記憶制御回路523の作用により、データ転送装置300の場合と同様に動作する。これにより、記憶制御回路503は、要求信号Rx0=1に対する応答として4相調停回路529から通知信号Ax0=1を受け取る(ステップS423)。
上記のようにステップS424、S425は、データ対受理回路599において行われる動作であり、データ対生成回路501、マルチプレクサ502、記憶制御回路503、パルス信号生成回路504、及びメモリ505の動作とは関連が無い。よって、ここでもこれらのステップは存在しないものとし、ステップS423の終了後はステップS426へ進むものとする。
記憶制御回路503は、通知信号Ax0=1が4相調停回路529から入力されると、通知信号Am=0をデータ対生成回路501へ、要求信号Rx0=0を4相調停回路529へ、記憶制御信号Lt0=0をパルス信号生成回路504へそれぞれ出力する(ステップS426)。
記憶制御信号Lt0の立ち下がり遷移に応じて、パルス信号生成回路504は、値が0→1→0と遷移するパルス信号P0を生成し、メモリ505へ出力する(ステップS427)。パルス信号生成回路504からパルス信号P0が入力されると、メモリ505はその時点でマルチプレクサ502から出力されているデータDm0=dm0を記憶する(ステップS428)。
4相調停回路529及び記憶制御回路523の作用により、記憶制御回路503は、要求信号Rx0=0に対する応答として4相調停回路529から通知信号Ax0=0を受け取る(ステップS429)。
データd2及びdm0がデータ対生成回路501から送信されてデータ対生成回路501における未送信データ数が0となったため(ステップS430/Yes)、ステップS401に戻りデータ転送装置500は入力データ待ち状態となる。
次に、データ転送装置500の構成要素のうち、記憶制御回路523、パルス信号生成回路524、メモリ525、要求信号待ち合わせ回路598及びデータ対受理回路599の動作に関して、データ転送装置500内の全ての信号の値が0であるという初期状態から、データd8、d9及びd10とダミーデータdm2とがマルチプレクサ522からメモリ525へ転送される場合の各信号の波形を図17に示す。なお、通知信号Ayは、図6における通知信号Arに相当する。要求信号Ryは図6における要求信号Rxに相当する。
ステップS401〜S404は、データ対生成回路501、511がデータ転送装置500の外部からデータを受け取る動作であり、記憶制御回路523、パルス信号生成回路524、メモリ525、要求信号待ち合わせ回路598及びデータ対受理回路599とは関連しない動作である。
また、記憶制御回路523へ要求信号Rx2=1が到着したときには、データ対生成回路501、511によって要求信号Rm0、Rm1が発せられており、かつステップS410、S411の動作(マルチプレクサ502、512によって奇数番目のデータが出力される動作)と同様の動作によってマルチプレクサ522からデータDx2=d8が出力されている。
ここでは記憶制御回路523、パルス信号生成回路524、メモリ525、要求信号待ち合わせ回路598及びデータ対受理回路599の動作に着目しているため、ステップS412以降の動作についてのみ説明するものとする。
記憶制御回路523は、4相調停回路529から要求信号Rx2=1が入力された時点では通知信号Ay=0であるため(ステップS412)、要求信号Ry=1を要求信号待ち合わせ回路598へ、通知信号Ax2=1を4相調停回路529へ、記憶制御信号Lt2=1をパルス信号生成回路524へそれぞれ出力する(ステップS413)。
パルス信号生成回路524は、記憶制御信号Lt2の立ち上がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する(ステップS414)。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=d8を記憶する(ステップS415)。
4相調停回路529は、記憶制御回路523から通知信号Ax2=1が入力されると、要求信号Rx2=0を記憶制御回路523へ、調停結果信号Gr0及びGr1をマルチプレクサ522へ出力する(ステップS420)。なお、この場合のGr0及びGr1のそれぞれの値は、データd8及びd9がメモリ503及び513のいずれから入力されたかに依存して定まるが、ここでは説明の簡略化のために、データの送信元をいずれかに特定しないものとして説明する。マルチプレクサ522は、4相調停回路529から調停結果信号Gr0及びGr1が入力されると、データDx2=d9を出力する(ステップS421)。
要求信号待ち合わせ回路598は、記憶制御回路523からの要求信号Ry=1と4相調停回路529からの要求信号Rx2=0とを待ち合わせ、要求信号Rf=1をデータ対受理回路599へ出力する(ステップS422)。
データ対受理回路599は、要求信号待ち合わせ回路598から要求信号Rf=1が入力されると、メモリ525に記憶されているデータDy=d8とマルチプレクサ522から出力されているデータDx2=d9とを受理する(ステップS423)。
データ対を受け取ったのち、データ対受理回路599は、データ転送装置500の外部へデータd8及びd9を出力する(ステップS424、S425)。また、データ対受理回路599は、待ち合わせ要求信号Rf=1が要求信号待ち合わせ回路598から入力されると、通知信号Ay=1を記憶制御回路523へ出力する。
記憶制御回路523は、通知信号Ay=1をデータ対受理回路599から受信したのち、要求信号Rx2=0を4相調停回路529から受け取った時点で、要求信号Ry=0を要求信号待ち合わせ回路598へ、通知信号Ax2=0を4相調停回路529へ、記憶制御信号Lt2=0をパルス信号生成回路524へそれぞれ出力する(ステップS426)。パルス信号生成回路524は、記憶制御回路523から記憶制御信号Lt2の立ち下がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する(ステップS427)。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=d9を記憶する(ステップS428)。
要求信号待ち合わせ回路598は、記憶制御回路523から要求信号Ry=0が入力されると、待ち合わせ要求信号Rf=0をデータ対受理回路599へ出力する。データ対受理回路599は、待ち合わせ要求信号Rf=0が要求信号待ち合わせ回路598から入力されると、通知信号Ay=0を記憶制御回路523へ出力する(ステップS429)。
この時点で、記憶制御回路523、パルス信号生成回路524、メモリ525、要求信号待ち合わせ回路598及びデータ対受理回路599の状態は、ステップS430でのデータ対生成回路の条件分岐動作待ちとなっており、マルチプレクサ522を介して転送されるデータd10及びダミーデータdm2が残っているためステップS410へ戻る(ステップS430/No)。
記憶制御回路523へ要求信号Rx2=1が到着したときには、データ対生成回路501、511によって要求信号Rm0、Rm1が発せられており、かつステップS410、S411の動作(マルチプレクサ502、512によって奇数番目のデータが出力される動作)と同様の動作によってマルチプレクサ522からデータDx2=d10が出力されている。
記憶制御回路523は、4相調停回路529から要求信号Rx2=1が入力された時点では通知信号Ay=0であるため(ステップS412)、要求信号Ry=1を要求信号待ち合わせ回路598へ、通知信号Ax2=1を4相調停回路529へ、記憶制御信号Lt2=1をパルス信号生成回路524へそれぞれ出力する(ステップS413)。
パルス信号生成回路524は、記憶制御信号Lt2=1の立ち上がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する(ステップS414)。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=d10を記憶する(ステップS415)。
4相調停回路529は、記憶制御回路523から通知信号Ax2=1が入力されると、要求信号Rx2=0を記憶制御回路523へ、調停結果信号Gr0及びGr1をマルチプレクサ522へ出力する(ステップS420)。マルチプレクサ522は、4相調停回路529から調停結果信号Gr0及びGr1が入力されると、ダミーデータDx2=dm2を出力する(ステップS421)。
要求信号待ち合わせ回路598は、記憶制御回路523からの要求信号Ry=1と4相調停回路529からの要求信号Rx2=0とを待ち合わせ、待ち合わせ要求信号Rf=1をデータ対受理回路599へ出力する(ステップS422)。
データ対受理回路599は、要求信号待ち合わせ回路598から待ち合わせ要求信号Rf=1が入力されると、メモリ525に記憶されているデータDy=d10とマルチプレクサ522から出力されているダミーデータDx2=dm2とを受理する(ステップS423)。
ここで、ダミーデータdm2がダミーであることを示す信号を含んでいるとすると、データ対受理回路599は、データd10のみを受理して、ダミーデータdm2を破棄することも可能である。この場合、データ対受理回路599は、データ転送装置500の外部へデータd10のみを出力する(ステップS424、S425)また、データ対受理回路599は、待ち合わせ要求信号Rf=1が要求信号待ち合わせ回路598から入力されると、通知信号Ay=1を記憶制御回路523へ出力する。
記憶制御回路523は、通知信号Ay=1をデータ対受理回路599から受信したのち、要求信号Rx2=0を4相調停回路529から受け取った時点で、要求信号Ry=0を要求信号待ち合わせ回路598へ、通知信号Ax2=0を4相調停回路529へ、記憶制御信号Lt2=0をパルス信号生成回路524へそれぞれ出力する(ステップS426)。パルス信号生成回路524は、記憶制御回路523から記憶制御信号Lt2の立ち下がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する(ステップS427)。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているダミーデータDx2=dm2を記憶する(ステップS428)。
要求信号待ち合わせ回路598は、記憶制御回路523から要求信号Ry=0が入力されると、待ち合わせ要求信号Rf=0をデータ対受理回路599へ出力する。データ対受理回路599は、待ち合わせ要求信号Rf=0が要求信号待ち合わせ回路598から入力されると、通知信号Ay=0を記憶制御回路523へ出力する(ステップS429)。
ここで、記憶制御回路523、パルス信号生成回路524、メモリ525、要求信号待ち合わせ回路598及びデータ対受理回路599の状態は、ステップS430でのデータ対生成回路の条件分岐動作待ちとなっており、マルチプレクサ522を介して転送されるデータが残っていないためステップS401へ戻り、データ転送装置500は入力データ待ち状態となる(ステップS430/Yes)。
次に、データ転送装置500の構成要素のうち、記憶制御回路503、513、523、パルス信号生成回路504、514、524、メモリ505、515、525、4相調停回路529及びマルチプレクサ522の動作に関して、装置内の信号の値が全て0である状態を初期状態として各信号の波形を図18に示す。
メモリ505へは四つのデータd3、d4、d5及びd6が送られ、メモリ515へは一つのデータd7とデータ対生成回路511によって付加されたダミーデータdm1とが送られるものとする。
まず、メモリ505、515からデータd3、d7が送られるとき、記憶制御回路503、513は要求信号Rx0=1とRx1=1とを4相調停回路529に送る。
4相調停回路529は、調停結果信号Gr0=1、Gr1=0をマルチプレクサ522へ出力することにより、受け取った要求信号Rx0=1とRx1=1とのうち先着したRx0=1を出力した記憶制御回路503にハンドシェイク経路の使用権を与える。また、4相調停回路529は、要求信号Rx2=1を記憶制御回路523へ出力する。
マルチプレクサ522は調停結果信号Gr0=1、Gr1=0が入力されると、メモリ505からのデータであるデータDx0=d3を自身の出力データDx2として出力する。
記憶制御回路523は、4相調停回路529から要求信号Rx2=1が入力されると、通知信号Ax2=1を4相調停回路529へ、記憶制御信号Lt2=1をパルス信号生成回路524へそれぞれ出力する。パルス信号生成回路524は、記憶制御信号Lt2の立ち上がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=d3を記憶する。
4相調停回路529は、通知信号Ax2=1が記憶制御回路523から入力されると、使用権を与えた方の記憶制御回路(ここでは記憶制御回路503)に対して通知信号Ax0=1を出力する。
記憶制御回路503は、通知信号Ax0=1が4相調停回路529から入力されると、要求信号Rx0=0を4相調停回路529へ、記憶制御信号Lt0=0をパルス信号生成回路504へそれぞれ出力する。記憶制御信号Lt0の立ち下がり遷移に応じて、パルス信号生成回路504は、値が0→1→0と遷移するパルス信号P0を生成し、メモリ505へ出力する。パルス信号P0が入力されたメモリ505は、データd4を出力する。
4相調停回路529は、記憶制御回路503から受け取った要求信号Rx0=0に応じて、要求信号Rx2=0を記憶制御回路423に、調停結果信号Gr0=Gr1=0をマルチプレクサ522にそれぞれ出力する。
マルチプレクサ522は、4相調停回路529から入力された調停結果信号Gr0=0、Gr1=0に応じて、データ入力Dx0からデータ出力Dx2への伝播を維持し(換言するとハンドシェイク経路の使用権を記憶制御回路503に与えたまま維持し)、データ入力Dx0からのデータd4を自身の出力データDx2として出力する。
記憶制御回路523は、要求信号Rx2=0を4相調停回路529から受け取った時点で、通知信号Ax2=0を4相調停回路529へ、記憶制御信号Lt2=0をパルス信号生成回路524へそれぞれ出力する。パルス信号生成回路524は、記憶制御回路523から記憶制御信号Lt2の立ち下がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータd4を記憶する。
4相調停回路529は、記憶制御回路523からの通知信号Ax2=0に応じて調停結果信号Gr0=0、Gr1=1をマルチプレクサ522に出力することによって、使用権待ちだった記憶制御回路513(要求信号Rx1=1を出力する記憶制御回路)に対して使用権を与える。また、4相調停回路529は、通知信号Ax0=0を記憶制御回路503へ、要求信号Rx2=1を記憶制御回路523へそれぞれ出力する。
マルチプレクサ522は、調停結果信号Gr0=0、Gr1=1に応じて、データ入力Dx1からのデータd7を自身の出力Dx2として出力する。
記憶制御回路523は、4相調停回路529から要求信号Rx2=1が入力されると、通知信号Ax2=1を4相調停回路529へ、記憶制御信号Lt2=1をパルス信号生成回路524へそれぞれ出力する。パルス信号生成回路524は、記憶制御信号Lt2の立ち上がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=d7を記憶する。
4相調停回路529は、記憶制御回路523から通知信号Ax2=1が入力されると、
使用権を与えた方の記憶制御回路(ここでは記憶制御回路513)に対して通知信号Ax1=1を出力する。
記憶制御回路513は、通知信号Ax1=1が4相調停回路529から入力されると、要求信号Rx1=0を4相調停回路529へ、記憶制御信号Lt1=0をパルス信号生成回路514へそれぞれ出力する。記憶制御信号Lt1の立ち下がり遷移に応じて、パルス信号生成回路514は、値が0→1→0と遷移するパルス信号P1を生成し、メモリ515へ出力する。パルス信号P0が入力されたメモリ515は、データdm1を出力する。
4相調停回路529は、記憶制御回路513から受け取った要求信号Rx1=0に応じて、調停結果信号Gr0=Gr1=0をマルチプレクサ522へ出力する。
マルチプレクサ522は、4相調停回路529から入力された調停結果信号Gr0=0、Gr1=0に応じて、データ入力Dx1からデータ出力Dx2への伝播を維持し(換言するとハンドシェイク経路の使用権を記憶制御回路513に与えたまま維持し)、データ入力Dx1からのデータdm1を自身の出力データDx2として出力する。
4相調停回路529は、要求信号Rx1=0が記憶制御回路513から入力されると、要求信号Rx2=0を記憶制御回路523へ出力する。記憶制御回路523は、4相調停回路529から要求信号Rx2=0が入力されると、通知信号Ax2=0を4相調停回路529へ、記憶制御信号Lt2=0をパルス信号生成回路524へそれぞれ出力する。パルス信号生成回路524は、記憶制御信号Lt2の立ち下がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=dm1を記憶する。
データd7及びダミーデータdm1の転送の間に次のデータd5の転送を要求する要求信号Rx0=1が記憶制御回路503から4相調停回路529に到着したとすると、4相調停回路529は、通知信号Ax2=0に応じて通知信号Ax0=0を記憶制御回路503へ、要求信号Rx2=1を記憶制御回路523へそれぞれ出力する。また、4相調停回路529は、調停結果信号Gr0=1、Gr1=1をマルチプレクサ522へ出力することにより、記憶制御回路503(要求信号Rx0=1を出力した記憶制御回路)に対してハンドシェイク経路の使用権を与える。
マルチプレクサ522は、4相調停回路529から入力された調停結果信号Gr0=1、Gr1=0に応じて、データ入力Dx0からのデータd5を自身の出力データDx2として出力する。
記憶制御回路523は、4相調停回路529から要求信号Rx2=1が入力されると、通知信号Ax2=1を4相調停回路529へ、記憶制御信号Lt2=1をパルス信号生成回路524へそれぞれ出力する。パルス信号生成回路524は、記憶制御信号Lt2の立ち上がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータDx2=d5を記憶する。
4相調停回路529は、通知信号Ax2=1が記憶制御回路523から入力されると、使用権を与えた方の記憶制御回路(ここでは記憶制御回路503)に対して通知信号Ax0=1を出力する。
記憶制御回路503は、通知信号Ax0=1が4相調停回路529から入力されると、要求信号Rx0=0を4相調停回路529へ、記憶制御信号Lt0=0をパルス信号生成回路504へそれぞれ出力する。記憶制御信号Lt0の立ち下がり遷移に応じて、パルス信号生成回路504は、値が0→1→0と遷移するパルス信号P0を生成し、メモリ505へ出力する。パルス信号P0が入力されたメモリ505は、データd6を出力する。
4相調停回路529は、記憶制御回路503から受け取った要求信号Rx0=0に応じて、要求信号Rx2=0を記憶制御回路423に、調停結果信号Gr0=Gr1=0をマルチプレクサ522にそれぞれ出力する。
マルチプレクサ522は、4相調停回路529から入力された調停結果信号Gr0=0、Gr1=0に応じて、データ入力Dx0からデータ出力Dx2への伝播を維持し(換言するとハンドシェイク経路の使用権を記憶制御回路503に与えたまま維持し)、データ入力Dx0からのデータd6を自身の出力データDx2として出力する。
記憶制御回路523は、要求信号Rx2=0を4相調停回路529から受け取った時点で、通知信号Ax2=0を4相調停回路529へ、記憶制御信号Lt2=0をパルス信号生成回路524へそれぞれ出力する。パルス信号生成回路524は、記憶制御回路523から記憶制御信号Lt2の立ち下がり遷移に応じて、値が0→1→0と遷移するパルス信号P2を生成し、メモリ525へ出力する。パルス信号生成回路524からパルス信号P2が入力されると、メモリ525はその時点でマルチプレクサ522から出力されているデータd6を記憶する。
このように、本実施形態においては、データ対生成回路501、511とパルス信号生成回路504、514、524とを用いることにより、4相式転送の2倍の速度でデータ転送を実現できる。
また、本実施形態においては、データ対生成回路501、511を用いることにより、図1に示したような簡潔な回路構成で実現される4相調停回路529を適用可能となる。データ対受理回路の直前のメモリ及び記憶制御回路に直接接続されるパルス生成回路は省略可能で、本実施形態に係るデータ転送装置は前記メモリと前記記憶制御回路とを直接接続する構成をとってもよい。例えば、データ転送装置500は、パルス生成回路524を省略して、メモリ525と記憶制御回路523とを直接接続する構成をとってもよい。これは、偶数番データが当該メモリに記憶されても当該メモリの出力からのデータがデータ対受理回路に受け取られる必要はなく、パルス生成回路を省略してメモリと記憶制御回路とを直接接続する場合には、当該メモリは奇数番データのみを記憶するように動作するためである。
ここで、データ転送装置500がデータ対生成回路501、511を備えない構成を仮定し、記憶制御回路503、513とメモリ505、515に2相式ハンドシェイク信号とデータが入力された場合を考える。この場合の記憶制御回路503、513、523、パルス信号生成回路504、514、524、メモリ505、515、525、及び4相調停回路529の動作に関する波形を図19に示す。メモリ505へは三つのデータd3、d4及びd5が送られ、メモリ515へは一つのデータd7が送られるものとする。
データd3及びd4の転送は、データ対生成回路501を備える場合と同様に行われる。次に、データd5の転送は、記憶制御回路513から4相調停回路529への要求信号Rx1=1の入力と、4相調停回路529から記憶制御回路523への要求信号Rx2=1の入力と、記憶制御回路523から4相調停回路529への通知信号Ax2=1の入力と、4相調停回路529から記憶制御回路513への通知信号Ax1=1の入力とによって完了する。
ここで、データ対生成回路511が存在しないため、データd5にはダミーデータは付加されず、通知信号Ax1=1に対して記憶制御回路513は要求信号Rx1=0を4相調停回路529へ送らない。よって、記憶制御回路513から4相調停回路529への要求信号はRx1=1のままである。
4相調停回路529への要求信号がRx1=1で維持されることは、記憶制御回路513とメモリ515からの転送が完了しているにも関わらず、4相調停回路の出力の使用権がメモリ515からの転送に占有され続けて、記憶制御回路503とメモリ505からの転送とに使用権が移譲されないことを意味する。
このため、データd6の転送要求信号Rx0=1が記憶制御回路503とメモリ505から4相調停回路529に到着しているにもかかわらず、マルチプレクサ522及び4相調停回路529を介した転送は、記憶制御回路513とメモリ515から次の転送が到着するまで一時停止されたままとなる。
以上のように、データ対生成回路501、511は、回路構成が簡潔な4相式ハンドシェイク・プロトコル動作のデータ転送用機能ブロックを高速転送を実現しつつ利用するために不可欠である。
さらに、本実施形態においては、パルス信号生成回路504、514、524を用いることにより、メモリ505、515、525としてレベルセンシティブ・ラッチを適用可能となっている。
本実施形態に係るデータ転送装置は、半導体チップ上又は半導体チップ間の機能ブロック間でのデータ通信としても適用可能である。
〔第3の実施形態〕
本発明を好適に実施した第3の実施形態について説明する。
図20に、本発明を好適に実施した第3の実施形態に係る半導体装置の構成を示す。この半導体装置は、機能ブロック回路11〜14と機能ブロック回路15〜17とがデータ転送装置50とが一体に構成されている。
図20において、「MUX+4相調停C」と記されているブロックは、マルチプレクサと4相調停回路とで構成されている。また、「分岐+4相選択C」と記されているブロックは、デマルチプレクサと4相選択回路とで構成されている。また、「メ+パ+制」と記されているブロックはメモリとパルス生成回路と記憶制御回路とで構成されている。また、「待」と記されているブロックは要求信号待ち合わせ回路を意味している。
送信側の機能ブロック回路11〜14は、接続されたデータ対生成回路にデータを送信する。データ対生成回路に入力されたデータのうち、奇数番データには3ビットで表現される目的地情報が含まれている。目的地情報を構成する3ビットの各々は受信側の各機能ブロック回路15〜17に対応している。すなわち、目的地情報のビット幅はデータの送り先となる機能ブロック回路の数と同数となっている。
各データ対生成回路は、機能ブロック回路11〜14から受け取ったデータが奇数個であればダミーデータを付加して偶数個とし、二つずつ対としてデータ対を生成する。データ転送装置50内のメモリ、パルス生成回路、記憶制御回路、マルチプレクサ、4相調停回路、データ信号線分岐、4相選択回路は、要求信号待ち合わせ回路はデータに含まれる目的地情報に応じて、目的地である受信側の機能ブロック回路へ向かって、要求信号および通知信号を通信するハンドシェイク通信を行いながら、データ対を転送する。
データ対受理回路は、受理したデータ対を接続されている受信側同期式機能回路に送信する。
データ転送装置50内の各回路の動作は、上記第1、第2の実施形態と同様であるため、内部での動作についての説明は割愛する。
なお、データ転送装置50内の各パルス信号生成回路のうち、データ対受理回路の直前に配置されているものについては省略することも可能である。
このようにデータ転送装置を用いて機能ブロック回路を接続することにより、消費電力の低い集積回路(半導体装置)を構成することができる。機能ブロック回路の消費電力は動作速度に依存するため、各々の機能ブロック回路を常に一定の速度で動作させるよりも、各々の機能ブロック回路の動作速度を当該回路に要求される処理を許容される時間内に行える最低限に抑えるように調整することによって、集積回路全体の消費電力を低く抑えることが可能となる。
この処理速度の調整を行う場合、集積回路上の機能ブロック回路の動作タイミングは互いに独立である。本実施形態におけるデータ転送装置はこのような動作タイミングの独立な機能ブロック回路の接続を可能としている。そのため、本実施形態に係るデータ転送装置を用いて機能ブロック回路を接続することにより、必要な速度で動作しつつも消費電力の低い集積回路を構成することが可能となる。
本実施形態に係るデータ転送装置は、動作タイミングの独立な機能ブロック回路の接続を可能にするため、放射電磁波の少ない集積回路を構成することができる。
集積回路から放射される電磁波の強度は、回路内を流れる電流の変動の大きさに比例するため、機能ブロック回路の動作タイミングが合ったときに電流が大きく増大するため、放射電磁波が大きくなる。この放射電磁波は、当該集積回路内の素子の動作に影響を与える可能性がある。また、当該集積回路が無線通信を行う機器付近で動作した場合に機器を誤動作させてしまう危険性もある。本実施形態においては、データ転送装置により機能ブロックの動作タイミングを互いに独立にすることにより、放射電磁波を低減することが可能である。
なお、上記実施形態は本発明の好適な実施の一例であり、本発明はこれに限定されることはない。
例えば、上記実施形態においては、2入力1出力を持つデータ転送装置を例として説明したが、要求信号の入力数が3以上であっても良く、入力数、出力数に限定はない。
このように、本発明は様々な変形が可能である。
この出願は、2008年3月6日に出願された日本出願特願2008−056881を基礎とする優先権を主張し、その開示の全てをここに取り込む。
4相式ハンドシェイク・プロトコルに準拠して複数の要求信号を調停する非同期式論理回路の構成例を示す図である。 対称型2入力C素子の回路記号と3入力多数決論理セルによる実現例と動作表を示す図である。 本発明を好適に実施した第1の実施形態に係るデータ転送装置の構成を示すブロック図である。 第1の実施形態に係るデータ転送装置の構成要素である記憶制御回路の構成例を示す図である。 第1の実施形態に係るデータ転送装置の構成要素であるパルス信号生成回路の構成例を示す図である。 第1の実施形態に係るデータ転送装置の動作を示す流れ図である。 第1の実施形態に係るデータ転送装置におけるデータ対生成回路の動作を示す流れ図である。 第1の実施形態に係るデータ転送装置におけるマルチプレクサの動作を示す流れ図である。 第1の実施形態に係るデータ転送装置における記憶制御回路とパルス信号生成回路とメモリの動作を示す流れ図である。 第1の実施形態に係るデータ転送装置における要求信号待ち合せ回路とデータ対受理回路の動作を示す流れ図である。 パルス生成回路を省略したデータ転送装置の構成を示す図である。 4相選択回路の構成を示す図である。 4相分配回路の構成を示す図である。 4相待ち合わせ回路の構成を示す図である。 本発明を好適に実施した第2の実施形態に係るデータ転送装置の構成を示すブロック図である。 本発明の実施例において、データ対生成回路の動作を説明する波形図である。 本発明の実施例において、データ対受理回路の動作を説明する波形図である。 本発明の実施例において、4相調停回路の動作を説明する波形図である。 本発明の実施例において、データ対生成回路を用いなかった場合の4相調停回路の動作停止を説明する波形図である。 本発明を好適に実施した第3の実施形態に係る半導体装置の構成を示す図である。
符号の説明
100 4相式のハンドシェイク信号通信用の調停回路
110 相互排他モジュール
111 先着信号選択モジュール
112 不正信号伝播防止モジュール
120 直前ハンドシェイク完了モジュール
130 出力要求信号生成モジュール
140 出力通知信号生成モジュール
200、601 MullerのC素子
202 C素子動作表
300、500 データ転送装置
301、501、511 データ対生成回路
302、502、512、522 マルチプレクサ
303、503、513、523 記憶制御回路
304、504、514、524 パルス信号生成回路
305、505、515、525 メモリ
306、598 要求信号待ち合せ回路
307、599 データ対受理回路
529 4相調停回路
600 記憶制御回路
601a 3入力多数決セル
601b フィードバック・ループ
602 バッファ
700 パルス生成回路
701 排他的論理和(XOR)セル
702 遅延セル

Claims (25)

  1. 1以上の転送元から1以上の転送先へのデータ転送を行うデータ転送装置であって、
    転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、前記偶数個の転送データを二つずつ組みにすることによってデータ対を生成すると共に、生成したデータ対を、ハンドシェイク信号の通信周期に従って出力するデータ対生成回路と、
    前記ハンドシェイク信号に応じて、前記データ対の一方のデータを出力するマルチプレクサと、
    前記マルチプレクサから出力されるデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じて記憶するメモリと、
    4相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、前記メモリを制御すべく前記記憶制御信号を出力する記憶制御回路と、
    前記データ対の一方のデータが前記メモリに記憶され、かつ他方のデータが前記マルチプレクサから出力された状態となるのに応じて、要求信号を出力する待ち合わせ回路と、
    前記要求信号に応じて前記マルチプレクサ及び前記メモリから前記データ対を受理し、受理した前記データ対を前記転送先へ出力するデータ対受理回路とを備えることを特徴とするデータ転送装置。
  2. 前記メモリは、レベル駆動によるラッチ、及びエッジ駆動によるフリップ・フロップの少なくとも一方を含み、
    入力される前記記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に応じて、所定の時間幅を有するパルス信号を生成し、該パルス信号を前記メモリに出力することにより、前記メモリにおける前記データの記憶動作を実行するパルス生成回路を更に備えることを特徴とする請求項1記載のデータ転送装置。
  3. 前記記憶制御回路は、前記4相式ハンドシェイク・プロトコルに基づいて該記憶制御回路に入力される要求信号と入力通知信号とを待ち合せることによって、前記記憶制御信号の立ち上げ又は立ち下げタイミングを遷移する待合せ素子を含むことを特徴とする請求項1又は2記載のデータ転送装置。
  4. 前記待合せ素子は、対称型2入力C素子を含むことを特徴とする請求項3記載のデータ転送装置。
  5. 前記対称型2入力C素子は、3変数多数決論理関数を実現する組合せ論理回路と、その組合せ論理回路の出力端子を該組合せ論理回路の入力端子の一つと接続するフィードバック回路とを含むことを特徴とする請求項4記載のデータ転送装置。
  6. 前記パルス生成回路は、入力信号である前記記憶制御信号の排他的論理和演算を行う論理回路を含むことを特徴とする請求項2乃至請求項5の何れかに記載のデータ転送装置。
  7. 前記パルス生成回路は、入力信号を複数個の分岐信号に分岐させる分岐回路と、その分岐信号の何れかを入力とする遅延回路と、該分岐信号の残りと該遅延回路の出力とを入力として排他的論理和演算を行う論理回路とを含むことを特徴とする請求項2乃至請求項6の何れかに記載のデータ転送装置。
  8. 前記遅延回路において、該遅延回路の出力信号の該遅延回路の入力信号に対する遅延時間は、前記記憶制御回路の出力通知信号に対する入力要求信号の遅延時間と、前記記憶制御回路の出力要求信号に対する入力通知信号の遅延時間との双方よりも小さいことを特徴とする請求項7記載のデータ転送装置。
  9. 前記待ち合わせ回路は、前記記憶制御回路から入力される出力要求信号と該記憶制御回路に入力される要求信号との否定演算を行う論理回路と、論理積演算を行う論理回路とを含むことを特徴とする請求項1乃至請求項8の何れかに記載のデータ転送装置。
  10. 複数の要求信号入力端子及び一つの要求信号出力端子と、それら要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを備え、1以上の前記要求信号入力端子から第1の要求信号が入力されたとき、各々の第1の要求信号に応じて出力する第2の要求信号の出力順序を決定し、決定した出力順序で前記要求信号出力端子から第2の要求信号を出力し、前記通知信号入力端子を介して第1の通知信号を受け取ったときに、該第1の通知信号を受信する基となった第1の要求信号の送信元に対応する通知信号出力端子から第2の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された複数の入力データを、順番に一つの出力先へ出力する4相調停回路を少なくとも一つ備えることを特徴とする請求項1乃至請求項9の何れかに記載のデータ転送装置。
  11. 一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び前記要求信号出力端子と同数の通知信号入力端子と、目的地情報入力端子とを備え、前記要求信号入力端子から第3の要求信号が入力されたとき、目的地情報に基づいて前記要求信号出力端子のうち一つを選択して、選択された方から第4の要求信号を出力し、前記第4の要求信号に対する第3の通知信号を、選択された要求信号出力端子に対応する前記通知信号入力端子を介して受け取るのに応じて前記通知信号出力端子から第4の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の何れか、或いは全てのデータ出力先に対して出力する4相選択回路を少なくとも一つ備えることを特徴とする請求項1乃至請求項10の何れかに記載のデータ転送装置。
  12. 一つの要求信号入力端子及び複数の要求信号出力端子と、一つの通知信号出力端子及び前記要求信号出力端子と同数の通知信号入力端子とを備え、前記要求信号入力端子を介して第5の要求信号が入力されたとき、前記要求信号出力端子の全てから第6の要求信号を出力し、前記通知信号入力端子の全てから第5の通知信号を受け取ったときに、前記通知信号出力端子から第6の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された入力データを、複数の出力先候補の全てに出力する4相分配回路を少なくとも一つ備えることを特徴とする請求項1乃至請求項12の何れかに記載のデータ転送装置。
  13. 複数の要求信号入力端子及び一つの要求信号出力端子と、要求信号入力端子と同数の通知信号出力端子及び一つの通知信号入力端子とを備え、前記要求信号入力端子の全てから第7の要求信号が入力されたとき、前記要求信号出力端子から第8の要求信号を出力し、前記通知信号入力端子を介して第7の通知信号を受け取ったときに、前記通知信号出力端子の全てから第8の通知信号を出力し、自装置内において並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力する4相待ち合わせ回路を少なくとも一つ備えることを特徴とする請求項1乃至請求項12の何れかに記載のデータ転送装置。
  14. 請求項1乃至請求項13の何れかに記載のデータ転送装置を備えることを特徴とする半導体回路。
  15. 1以上の転送元から1以上の転送先へのデータ転送を行うデータ転送装置であって、
    転送要求のあったデータの個数が奇数である場合に、そのデータに奇数個のダミーデータを付加することによって転送データの個数を偶数にし、
    前記偶数個の転送データを二つずつ組みにすることによってデータ対を生成し、
    生成したデータ対のうちのいずれか一方のデータを、ハンドシェイク信号の通信周期に従ってマルチプレクサから出力し、
    前記ハンドシェイク信号の通信周期に従って出力したデータを、記憶制御入力信号の立ち上がり及び立ち下がりの両方の遷移に応じてメモリに記憶し、
    4相式ハンドシェイク・プロトコルに基づくハンドシェイク信号通信を行うと共に、前記メモリを制御すべく前記記憶制御信号を出力し、
    前記データ対の一方のデータが前記メモリに記憶され、かつ他方のデータが前記マルチプレクサから出力された状態となるのに応じて、要求信号を出力し、
    前記要求信号に応じて前記マルチプレクサ及び前記メモリから前記データ対を受理し、受理した前記データ対を前記転送先へ出力することを特徴とするデータ転送方法。
  16. 前記メモリは、レベル駆動によるラッチ、及びエッジ駆動によるフリップ・フロップの少なくとも一方を含み、
    入力される前記記憶制御信号の立ち上がり及び立ち下がりの両方の遷移に応じて、所定の時間幅を有するパルス信号を生成し、該パルス信号を前記メモリに出力することにより、前記メモリにおける前記データの記憶動作を実行することを特徴とする請求項15記載のデータ転送方法。
  17. 前記4相式ハンドシェイク・プロトコルに基づいて前記記憶制御信号を生成する回路に入力される要求信号と入力通知信号とを待ち合せることによって、前記記憶制御信号の立ち上げ又は立ち下げタイミングを遷移することを特徴とする請求項15又は16記載のデータ転送方法。
  18. 前記パルス信号を生成する際に、入力信号である前記記憶制御信号の排他的論理和演算を行うことを特徴とする請求項15乃至請求項17の何れかに記載のデータ転送方法。
  19. 前記パルス信号を生成する際に、入力信号を複数個の分岐信号に分岐させ、その分岐信号の何れかを遅延させ、該分岐信号の残りと該遅延させた分岐信号との排他的論理和演算を行うことを特徴とする請求項15乃至請求項18の何れかに記載のデータ転送方法。
  20. 前記排他的論理和演算後の信号の前記入力信号に対する遅延時間は、前記記憶制御信号を生成する回路の出力通知信号に対する入力要求信号の遅延時間と、前記記憶制御信号を生成する回路の出力要求信号に対する入力通知信号の遅延時間との双方よりも小さいことを特徴とする請求項19記載のデータ転送方法。
  21. 前記要求信号を出力する際に、前記記憶制御信号を生成する回路から入力される出力要求信号と該記憶制御信号を生成する回路に入力される要求信号との否定演算及び論理積演算を行うことを特徴とする請求項15乃至請求項20の何れかに記載のデータ転送方法。
  22. 1以上の要求信号入力端子から第1の要求信号が入力されたとき、各々の第1の要求信号に応じて出力する第2の要求信号の出力順序を決定し、決定した出力順序で一つの要求信号出力端子から第2の要求信号を出力し、一つの通知信号入力端子を介して第1の通知信号を受け取ったときに、前記要求信号入力端子と同数の通知信号出力端子のうち、該第1の通知信号を受信する基となった第1の要求信号の送信元に対応する通知信号出力端子から第2の通知信号を出力することにより、並行して設けられたデータ信号線に入力された複数の入力データを、順番に一つの出力先へ出力する4相調停制御を行うことを特徴とする請求項15乃至請求項21の何れかに記載のデータ転送方法。
  23. 一つの要求信号入力端子から第3の要求信号が入力されたとき、目的地情報に基づいて複数の要求信号出力端子のうち一つを選択して、選択された方から第4の要求信号を出力し、前記第4の要求信号に対する第3の通知信号を、前記要求信号出力端子と同数の通知信号入力端子のうち選択された要求信号出力端子に対応する通知信号入力端子を介して受け取るのに応じて一つの通知信号出力端子から第4の通知信号を出力することにより、並行して設けられたデータ信号線に入力された入力データを複数の出力先候補の何れか、或いは全てのデータ出力先に対して出力する4相選択制御を行うことを特徴とする請求項15乃至請求項22の何れかに記載のデータ転送方法。
  24. 一つの要求信号入力端子を介して第5の要求信号が入力されたとき、複数の要求信号出力端子の全てから第6の要求信号を出力し、前記要求信号出力端子と同数の通知信号入力端子の全てから第5の通知信号を受け取ったときに、一つの通知信号出力端子から第6の通知信号を出力することにより、並行して設けられたデータ信号線に入力された入力データを、複数の出力先候補の全てに出力する4相分配制御を行うことを特徴とする請求項15乃至請求項23の何れかに記載のデータ転送方法。
  25. 複数の要求信号入力端子の全てから第7の要求信号が入力されたとき、一つの要求信号出力端子から第8の要求信号を出力し、一つの通知信号入力端子を介して第7の通知信号を受け取ったときに、前記要求信号入力端子と同数の通知信号出力端子の全てから第8の通知信号を出力することにより、並行して設けられたデータ信号線に入力された複数の入力データを待ち合わせて一つの出力先へ出力する4相待ち合わせ制御を行うことを特徴とする請求項15乃至請求項24の何れかに記載のデータ転送方法。
JP2010501973A 2008-03-06 2009-03-06 データ転送装置及び方法並びに半導体回路 Pending JPWO2009110588A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008056881 2008-03-06
JP2008056881 2008-03-06
PCT/JP2009/054267 WO2009110588A1 (ja) 2008-03-06 2009-03-06 データ転送装置及び方法並びに半導体回路

Publications (1)

Publication Number Publication Date
JPWO2009110588A1 true JPWO2009110588A1 (ja) 2011-07-14

Family

ID=41056137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010501973A Pending JPWO2009110588A1 (ja) 2008-03-06 2009-03-06 データ転送装置及び方法並びに半導体回路

Country Status (6)

Country Link
US (1) US8254187B2 (ja)
EP (1) EP2249255A4 (ja)
JP (1) JPWO2009110588A1 (ja)
DE (1) DE09717815T1 (ja)
TW (1) TW200945056A (ja)
WO (1) WO2009110588A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644318B2 (en) * 2011-09-21 2014-02-04 Qualcomm, Incorporated Systems and methods for asynchronous handshake-based interconnects
KR101811630B1 (ko) * 2011-12-22 2017-12-27 에스케이하이닉스 주식회사 신호 송수신 시스템
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6271658A (ja) * 1985-09-25 1987-04-02 Mitsubishi Electric Corp プリンタ制御装置
JPH0581189A (ja) * 1991-09-19 1993-04-02 Mitsubishi Electric Corp 情報処理装置
JP3384838B2 (ja) * 1992-06-29 2003-03-10 シャープ株式会社 インターフェース装置
JPH0993134A (ja) * 1995-09-25 1997-04-04 Dainippon Screen Mfg Co Ltd ウェーブレット変換方法
EP0767544A3 (en) * 1995-10-04 2002-02-27 Interuniversitair Micro-Elektronica Centrum Vzw Programmable modem using spread spectrum communication
US6496424B2 (en) * 2001-04-20 2002-12-17 Sun Microsystems Method and apparatus for generating and controlling integrated circuit memory write signals
JP3892323B2 (ja) * 2002-03-13 2007-03-14 日本電信電話株式会社 ハンドシェークプロトコル変換用論理回路および非同期式lsiチップ用入出力インターフェース回路

Also Published As

Publication number Publication date
US20100315886A1 (en) 2010-12-16
TW200945056A (en) 2009-11-01
DE09717815T1 (de) 2011-04-21
EP2249255A1 (en) 2010-11-10
EP2249255A4 (en) 2014-03-12
WO2009110588A1 (ja) 2009-09-11
US8254187B2 (en) 2012-08-28

Similar Documents

Publication Publication Date Title
US10027433B2 (en) Multiple clock domains in NoC
US8352774B2 (en) Inter-clock domain data transfer FIFO circuit
US7006021B1 (en) Low power serializer circuit and method
US6960933B1 (en) Variable data width operation in multi-gigabit transceivers on a programmable logic device
JP5859002B2 (ja) フレキシブルチャネル結合を有するスケーラブル相互接続モジュール
WO2016057567A1 (en) Methods and systems for synchronization between multiple clock domains
US7821850B2 (en) Semiconductor digital circuit, FIFO buffer circuit, and data transferring method
US20180145849A1 (en) Distributed Control Synchronized Ring Network Architecture
US20110211582A1 (en) Interconnects using Self-timed Time-Division Multiplexed Bus
EP1901474B1 (en) System for synchronizing modules in an integrated circuit in mesochronous clock domains
WO2009110588A1 (ja) データ転送装置及び方法並びに半導体回路
JP5435031B2 (ja) 非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法
JP2002524790A (ja) 同期多相クロック分配システム
JPH10340130A (ja) 半導体集積回路
JP2003059284A (ja) 同期型データ転送処理装置
JP2005078523A (ja) シリアル転送装置
JP2001159970A (ja) 装置間結合装置
EP2515443A1 (en) Data serializer
US7123674B2 (en) Reducing latency and power in asynchronous data transfers
JP2002141922A (ja) ループ型バスシステム
US20020078328A1 (en) Pulse-controlled micropipeline architecture
CN111435340B (zh) 互联网总线单元及数据传输方法、wishbone互联网模块、芯片
Ning et al. Design of a GALS Wrapper for Network on Chip
KR102415074B1 (ko) 지연 회로 및 비동기 파이프라인 제어기, 이의 제어 방법, 및 이를 갖는 회로
US7269681B1 (en) Arrangement for receiving and transmitting PCI-X data according to selected data modes