(57)【要約】【課題】装置の構成を簡略化すると共に論理回路の複雑化を防止し、データ転送性能を向上させる。【解決手段】  シリアル転送装置１は、パラレルデータを記憶するランダムアクセス可能な共有メモリ３と、パラレルデータとシリアルデータとの変換を行い、外部装置及び共有メモリ３の間におけるデータの送受信を行うシリアル転送部２と、シリアル転送部２によるデータの送受信をＤＭＡ転送により行うように制御するＤＭＡ制御回路２０とを備え、シリアル転送部２は、外部装置に対するシリアルデータの送受信を行う複数のシリアル送受信回路１０と、複数のシリアル送受信回路１０による共有メモリ３に対するアクセスを制御するメモリ制御回路３０と、所定の同期信号に同期して所定の値を循環的に出力する循環カウンタ４０とを有し、複数のシリアル送受信回路１０は、循環カウンタ４０からの出力値に応じて外部装置に対するシリアルデータの送受信を行う。【選択図】図１
2013120587.tif 000002
【特許請求の範囲】
【請求項１】
パラレルデータを記憶するランダムアクセス可能な共有メモリと、前記パラレルデータとシリアルデータとの変換を行い、外部装置及び前記共有メモリの間におけるデータの送受信を行うシリアル転送回路と、前記シリアル転送回路によるデータの送受信をＤＭＡ転送により行うように制御するＤＭＡ転送制御回路とを備えるシリアル転送装置であって、
前記シリアル転送回路は、
前記外部装置に対するシリアルデータの送受信を行う複数のシリアル送受信回路と、
前記複数のシリアル送受信回路による前記共有メモリに対するアクセスを制御するメモリ制御回路と、
所定の同期信号に同期して所定の値を循環的に出力する循環カウンタとを有し、
前記複数のシリアル送受信回路は、前記循環カウンタからの出力値に応じて前記外部装置に対する前記シリアルデータの送受信を行うことを特徴とするシリアル転送装置。
【請求項２】
前記複数のシリアル送受信回路は、予め固有の回路番号が設定され、前記循環カウンタから出力される値と、前記回路番号とが一致した場合に送受信動作を行うことを特徴とする請求項１に記載のシリアル転送装置。
【請求項３】
前記ＤＭＡ転送制御回路は、前記複数のシリアル送受信回路による前記外部装置からのデータの受信動作を、前記循環カウンタの値に応じて前記シリアル送受信回路毎に異なるタイミングで実行させると共に、前記複数のシリアル送受信回路による前記外部装置に対するデータの送信動作を、前記循環カウンタの値に応じて前記シリアル送受信回路毎に異なるタイミングで実行させるように制御することを特徴とする請求項１又は２に記載のシリアル転送装置。
【請求項４】
前記シリアル転送回路は、前記外部装置から受信したシリアルデータが前記共有メモリのアクセス可能な量に達した時点で、前記共有メモリに対して書き込み動作を行うことを特徴とする請求項１、２又は３に記載のシリアル転送装置。
【請求項５】
前記シリアル転送回路は、前記外部装置に対して送信するシリアルデータの量が前記共有メモリから読み出した量に達する前に、前記共有メモリからの読み出し動作を行うことを特徴とする請求項１乃至４のいずれかに記載のシリアル転送装置。
【請求項６】
共有メモリに記憶されたパラレルデータと外部装置に対して送受信するためのシリアルデータとの変換を複数のシリアル送受信回路により行い、外部装置及び前記共有メモリの間におけるデータの送受信をＤＭＡ転送を用いて行うシリアル転送方法であって、
所定の同期信号に同期して所定の値を循環的に出力する循環カウンタからの出力値に応じて、該出力値に対応する前記シリアル送受信回路により前記外部装置に対する前記シリアルデータの送受信を行うことを特徴とするシリアル転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル転送装置及びシリアル転送方法に関し、特に、ＤＭＡ（ダイレクトメモリアクセス）転送を用いた場合の転送装置及び転送方法に関する。
【背景技術】
【０００２】
従来、転送装置に設けられたメモリと外部の周辺装置との間でデータ転送を行う場合には、中央処理装置（ＣＰＵ：Central Processing Unit）を介さずにデータ転送を行うＤＭＡ転送を用いてシリアルデータ転送が行われる（例えば、特許文献１）。この場合には、メモリからのパラレルデータをシリアルデータに変換して周辺装置に転送すると共に、周辺装置からのシリアルデータをパラレルデータに変換してメモリに転送するため、シフトレジスタが設けられている。
【０００３】
最近では、複数の周辺装置との間でシリアルデータ転送が可能なシリアル転送装置が実用化されている。このようなシリアル転送装置には、複数のシリアルインタフェースに対応する複数のシリアルポートと、各々のシリアルポートに対応するシフトレジスタとが設けられる。また、シリアル転送装置には、複数のシフトレジスタ間のデータ伝送に用いるための共有メモリが設けられると共に、上述したシフトレジスタとシリアルデータ転送を制御する機能とを有する複数のシリアル送受信回路が設けられる。
【０００４】
このようなシリアル転送装置により複数の周辺装置に対してデータを送信する場合には、各シリアル送受信回路が送信するデータを共有メモリから読み出し、データを受信する場合には、受信したデータを供給メモリに書き込む。
【０００５】
しかし、複数のシリアル送受信回路が同時に供給メモリに対してアクセスすると、競合が生じる虞がある。そこで、このような競合を回避するために、近年、様々な方法が提案され、具体的には、以下に示す第１〜第４の方法等が提案されている。
【０００６】
第１の方法は、例えば図１４に示すように、シリアル転送部２００、共有メモリ３００及びＣＰＵ４００で構成されたシリアル転送装置１００において、シリアル転送部２００に設けられたシリアル送受信回路１１０Ａ、１１０Ｂ、１１０Ｃ、・・・１１０Ｎとメモリ制御回路１３０との間に、データを保持するバッファ１５０Ａ、１５０Ｂ、１５０Ｃ、・・・１５０Ｎを設けると共に、各シリアル送受信回路１１０の優先順位を決定する調停回路１４０を設ける方法である。
【０００７】
シリアル転送装置１００においてデータを送信する場合には、予め共有メモリ３００から読み出されたパラレルデータをバッファ１５０Ａ、１５０Ｂ、１５０Ｃ、・・・１５０Ｎに保持し、送信中にデータが不足しないようにする。
【０００８】
また、データを受信する場合には、シリアル送受信回路１１０Ａ、１１０Ｂ、１１０Ｃ、・・・１１０Ｎで受信したシリアルデータをパラレルデータに変換した後、バッファ１５０Ａ、１５０Ｂ、１５０Ｃ、・・・１５０Ｎに保持し、共有メモリ３００がアクセス可能になるまで待機する。これにより、共有メモリ３００へのアクセス待ちによるデータ溢れを防止する。
【０００９】
ここで、共有メモリ３００に対するアクセスは、調停回路１４０によって優先順位が決定され、優先順位の高いシリアル送受信回路に対して共有メモリ３００へのアクセスが許可される。これにより、共有メモリ３００に対するアクセスの競合を防ぐことができる。
【００１０】
第２の方法は、例えば図１５に示すように、シリアル転送部２００’、共有メモリ３００及びＣＰＵ４００で構成されたシリアル転送装置１００’において、図１４に示すシリアル転送部２００からバッファ１５０Ａ、１５０Ｂ、１５０Ｃ、・・・１５０Ｎを除いた方法である。
【００１１】
シリアル転送装置１００’においてデータの送受信を行う場合、調停回路１４０により優先順位が決定され、所定のシリアル送受信回路は、データの送信又は受信が完了するまで共有メモリ３００を占有し、他のシリアル送受信回路は、共有メモリ３００に対してアクセスすることができない。そして、所定のシリアル送受信回路による送信又は受信が完了すると、調停回路１４０により決定された順序に従って、他のシリアル送受信回路によるデータの送信又は受信を実行する。第２の方法では、図１６に示すように、シリアル送受信回路１１０Ａ、１１０Ｂ、１１０Ｃ、・・・１１０Ｆが順番にデータの送信又は受信を実行する。
【００１２】
第３の方法は、例えば特許文献２に記載されているように、１つのシリアル送受信回路のみで複数ポートのシリアル送受信を兼用する方法である。この方法においても、第２の方法と同様に、各ポート毎に順番にデータの送信又は受信を実行する。
【００１３】
第４の方法は、例えば特許文献３に記載されているように、ポートとバッファ間に相互接続マトリクスと呼ばれる特殊な回路を設ける方法であり、すべてのポートが送信又は受信を一意的に行う。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平２−７３４４５号公報
【特許文献２】特開平８−１９４６６２号公報
【特許文献３】特開平９−５０２８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、第１の方法では、各シリアル送受信回路に対応するバッファを設ける必要があるため、ハードウェアが増大し、コストの増大や設計・製造が不可能となる虞があるという問題があった。
【００１６】
また、各シリアル送受信回路による共有メモリに対するアクセスの競合を防ぐために、各シリアル送受信回路の優先順位を決定する調停回路が必要となるため、論理回路が複雑化し、設計時における品質の確保が困難となり、設計工数の増大や設計期間の長大が生じるという問題があった。
【００１７】
第２及び第３の方法では、所定のシリアル送受信回路又はポートが共有メモリを占有し、各シリアル送受信回路又は各ポート毎に順番にデータの送受信を行う。そのため、データの送受信を行うシリアル送受信回路又はポート以外のシリアル送受信回路又はポートは、待機状態となり、装置全体としてのデータ転送に時間を要することになり、データ転送性能が低下するという問題があった。
【００１８】
第４の方法では、すべてのポートを送信状態としてデータ転送を行い、転送が完了するとすべてのポートを受信状態としてデータ転送を行うため、複数のポートにおける動作が一意的な方向となり、送信又は受信動作をポート毎に任意に設定することができない。そのため、送信実行中は受信待機状態となり、また、受信実行中は送信待機状態となるなど、転送の待機状態が増加するため、データ転送性能が低下するという問題があった。
【００１９】
そこで、本発明は、上記従来の技術における問題点に鑑みてなされたものであって、ハードウェアの増大を防止しつつ装置の構成を簡略化すると共に、論理回路の複雑化を防止し、データ転送性能を向上させることが可能なシリアル転送装置及びシリアル転送方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するため、本発明は、パラレルデータを記憶するランダムアクセス可能な共有メモリと、前記パラレルデータとシリアルデータとの変換を行い、外部装置及び前記共有メモリの間におけるデータの送受信を行うシリアル転送回路と、前記シリアル転送回路によるデータの送受信をＤＭＡ転送により行うように制御するＤＭＡ転送制御回路とを備えるシリアル転送装置であって、前記シリアル転送回路は、前記外部装置に対するシリアルデータの送受信を行う複数のシリアル送受信回路と、前記複数のシリアル送受信回路による前記共有メモリに対するアクセスを制御するメモリ制御回路と、所定の同期信号に同期して所定の値を循環的に出力する循環カウンタとを有し、前記複数のシリアル送受信回路は、前記循環カウンタからの出力値に応じて前記外部装置に対する前記シリアルデータの送受信を行うことを特徴とする。
【００２１】
そして、本発明によれば、循環カウンタからの出力値に応じて外部装置に対するシリアルデータの送受信を行うため、複数のシリアル送受信回路による送受信動作を並列的に行うことができ、データの転送性能を向上させることが可能になる。
【００２２】
上記シリアル転送装置において、前記複数のシリアル送受信回路は、予め固有の回路番号が設定され、前記循環カウンタから出力される値と、前記回路番号とが一致した場合に送受信動作を行うことができる。
【００２３】
上記シリアル転送装置において、前記ＤＭＡ転送制御回路は、前記複数のシリアル送受信回路による前記外部装置からのデータの受信動作を、前記循環カウンタの値に応じて前記シリアル送受信回路毎に異なるタイミングで実行させると共に、前記複数のシリアル送受信回路による前記外部装置に対するデータの送信動作を、前記循環カウンタの値に応じて前記シリアル送受信回路毎に異なるタイミングで実行させるように制御することができる。これにより、共有メモリに対する書き込み動作及び読み出し動作の競合を防ぐことが可能になる。
【００２４】
上記シリアル転送装置において、前記シリアル転送回路は、前記外部装置から受信したシリアルデータが前記共有メモリのアクセス可能な量に達した時点で、前記共有メモリに対して書き込み動作を行うことができる。これにより、シリアルデータの受信動作中における受信データの溢れを防ぎ、受信動作を継続して行うことが可能になる。
【００２５】
上記シリアル転送装置において、前記シリアル転送回路は、前記外部装置に対して送信するシリアルデータの量が前記共有メモリから読み出した量に達する前に、前記共有メモリからの読み出し動作を行うことができる。
これにより、シリアルデータの送信動作中における送信データの不足を防ぎ、送信動作を継続して行うことが可能になる。
【００２６】
また、本発明は、共有メモリに記憶されたパラレルデータと外部装置に対して送受信するためのシリアルデータとの変換を複数のシリアル送受信回路により行い、外部装置及び前記共有メモリの間におけるデータの送受信をＤＭＡ転送を用いて行うシリアル転送方法であって、所定の同期信号に同期して所定の値を循環的に出力する循環カウンタからの出力値に応じて、該出力値に対応する前記シリアル送受信回路により前記外部装置に対する前記シリアルデータの送受信を行うことを特徴とする。本発明は、前記発明と同様に、外部装置に対する複数の送受信動作を並列的に行うことができ、データの転送性能を向上させることが可能になる。
【発明の効果】
【００２７】
以上のように、本発明によれば、ハードウェアの増大を防止しつつ装置の構成を簡略化すると共に、論理回路の複雑化を防止し、データ転送性能を向上させることが可能になる。
【図面の簡単な説明】
【００２８】
【図１】本発明に係るシリアル転送装置の第１の実施形態を示すブロック図である。
【図２】シリアル送受信回路の構成の一例を示すブロック図である。
【図３】ＤＭＡ制御回路の構成の一例を示すブロック図である。
【図４】メモリ制御回路の構成の一例を示すブロック図である。
【図５】メモリ制御回路が共有メモリに対してアクセスを行うタイミングについて説明するためのタイミングチャートである。
【図６】シリアル送受信回路の処理の流れについて説明するためのフローチャートである。
【図７】単体のシリアル送受信回路においてデータを送信する場合について説明するためのタイミングチャートである。
【図８】単体のシリアル送受信回路においてデータを受信する場合について説明するためのタイミングチャートである。
【図９】すべてのシリアル送受信回路がデータの送受信を行う場合の一例について説明するためのタイミングチャートである。
【図１０】すべてのシリアル送受信回路がデータの送受信を行う場合の他の例について説明するためのタイミングチャートである。
【図１１】すべてのシリアル送受信回路がデータの送受信を行う場合の他の例について説明するためのタイミングチャートである。
【図１２】共有メモリに対するアクセスについて説明するための略線図である。
【図１３】本発明に係るシリアル転送装置の第２の実施形態を示すブロック図である。
【図１４】従来のシリアル転送装置の構成の一例を示すブロック図である。
【図１５】従来のシリアル転送装置の構成の他の例を示すブロック図である。
【図１６】従来のシリアル送受信回路によるデータ転送について説明するためのタイミングチャートである。
【発明を実施するための形態】
【００２９】
次に、本発明を実施するための形態について、図面を参照しながら詳細に説明する。
【００３０】
図１は、本発明に係るシリアル転送装置の第１の実施形態を示し、このシリアル転送装置１は、外部に設けられた周辺装置（以下、「外部装置」とする）との間でデータの送受信を行うシリアル転送部２と、シリアル転送用のデータを保持し、ランダムアクセスが可能な共有メモリ３と、各部を制御し、シリアル転送部２に設けられた後述するＤＭＡ制御回路に対して各種のコマンドを書き込むＣＰＵ４とを備える。
【００３１】
シリアル転送部２は、複数のシリアル送受信回路１０Ａ、１０Ｂ、１０Ｃ、・・・１０Ｎ、ＤＭＡ制御回路２０、メモリ制御回路３０及び循環カウンタ４０を備え、シリアル送受信回路１０Ａ、１０Ｂ、１０Ｃ、・・・１０Ｎ及びメモリ制御回路３０がバスで接続される。尚、シリアル送受信回路１０Ａ、１０Ｂ、１０Ｃ、・・・１０Ｎは、各々が同等の機能を有するため、以下の説明において特に区別する必要がない場合には、「シリアル送受信回路１０」として説明する。
【００３２】
シリアル送受信回路１０は、シリアルインタフェースを介して外部装置と接続される。シリアル送受信回路１０は、外部装置に対してデータを送信する場合に、メモリ制御回路３０を介して共有メモリ３から読み出されたパラレルデータをシリアルデータに変換する。また、シリアル送受信回路１０は、外部装置からデータを受信した場合に、受信したシリアルデータをパラレルデータに変換する。
【００３３】
ＤＭＡ制御回路２０は、ＣＰＵバス６によってＣＰＵ４と接続され、ＣＰＵバス６を介してＣＰＵ４から供給される書き込み命令に基づき、各シリアル送受信回路１０を制御する。メモリ制御回路３０は、メモリバス５によって共有メモリ３と接続され、バスを介して各シリアル送受信回路１０から受け取ったリクエストに基づき、共有メモリ３に対するデータの読み出し（Ｒｅａｄ）及び書き込み（Ｗｒｉｔｅ）を制御する。
【００３４】
循環カウンタ４０は、各シリアル送受信回路１０の動作タイミングを同期させるための制御信号である循環カウンタ信号を生成する。この循環カウンタ信号は、シリアル転送部２全体の動作タイミングとなるシリアルクロック（ＣＬＫ）のタイミングに応じて値が循環的に変化する信号である。
【００３５】
次に、シリアル送受信回路１０、ＤＭＡ制御回路２０及びメモリ制御回路３０の詳細な構成について、図２〜図４を参照して説明する。シリアル送受信回路１０は、図２に示すように、パラレルデータ及びシリアルデータの相互変換を行うシフトレジスタ１１と、シフトレジスタ１１及び後述するＩＯバッファ１３の動作を制御するシリアル制御回路１２と、外部装置に対するデータの送受信を行うＩＯバッファ１３と、シリアル送受信回路１０に固有な番号を設定する回路番号クランプ論理部１４と、バッファ１５Ａ〜１５Ｃとを備える。
【００３６】
シフトレジスタ１１は、シリアル制御回路１２から供給された後述するデータＬｏａｄ信号及びデータＳｈｉｆｔ信号に基づき、メモリ制御回路３０を介して共有メモリ３から供給されたパラレルデータであるＲｅａｄデータを、シリアルデータである出力データに変換し、ＩＯバッファ１３に供給する。また、シフトレジスタ１１は、データＬｏａｄ信号及びデータＳｈｉｆｔ信号に基づき、ＩＯバッファ１３を介して外部装置から供給されたシリアルデータである入力データを、パラレルデータであるＷｒｉｔｅデータに変換し、メモリ制御回路３０に供給する。
【００３７】
シリアル制御回路１２は、ＤＭＡ制御回路２０から供給される転送制御信号と、循環カウンタ４０から供給される循環カウンタ信号とに基づき、シフトレジスタ１１においてＲｅａｄデータをロードするためのデータＬｏａｄ信号と、シフトレジスタ１１をシフトさせてパラレルデータをシリアルデータに変換して出力するためのデータＳｈｉｆｔ信号とを生成し、シフトレジスタ１１に対して供給する。尚、転送制御信号の詳細については、後述する。
【００３８】
また、シリアル制御回路１２は、ＩＯバッファ１３の入出力方向を制御するためのＩＯ制御信号を生成し、ＩＯバッファ１３に対して供給する。さらに、シリアル制御回路１２は、共有メモリ３に対する読み出し要求を示すＲｅａｄリクエスト信号、書き込み要求を示すＷｒｉｔｅリクエスト信号、及び共有メモリ３のアクセスするアドレスを示すメモリアドレス信号を生成し、メモリ制御回路３０に対して供給する。さらにまた、シリアル制御回路１２は、外部装置を制御するための制御信号であるイネーブル信号、転送クロック（ＣＬＫ）信号及び入出力モード信号を生成する。生成された各種の制御信号は、バッファ１５Ａ〜１５Ｃを介して外部装置に供給される。
【００３９】
ＩＯバッファ１３は、シリアル制御回路１２から供給されたＩＯ制御信号に基づきデータの入出力方向が制御される。外部装置に対してデータを送信する場合、ＩＯバッファ１３は、シフトレジスタ１１から供給された出力データ（シリアルデータ）を入出力データとして出力する。また、外部装置からデータを受信する場合、ＩＯバッファ１３は、外部装置から供給された入出力データを入力データ（シリアルデータ）としてシフトレジスタ１１に供給する。
【００４０】
回路番号クランプ論理部１４は、シリアル送受信回路１０に固有な番号が予め設定され、この固有な番号を示す回路番号クランプ信号を生成し、シリアル制御回路１２に供給する。
【００４１】
ＤＭＡ制御回路２０は、図３に示すように、アドレスデコーダ２１、ＡＮＤゲート２２Ａ、・・・、２２Ｎ及び制御レジスタ２３Ａ、・・・、２３Ｎを備える。
【００４２】
アドレスデコーダ２１は、ＣＰＵ４から供給された、後述する制御レジスタ２３Ａ、・・・、２３Ｎのアドレスを示すＣＰＵアドレスをデコードし、ＡＮＤゲート２２Ａ、・・・、２２Ｎに出力する。
【００４３】
ＡＮＤゲート２２Ａ、・・・、２２Ｎは、シリアル送受信回路１０の数に対応して設けられる。ＡＮＤゲート２２Ａ、・・・、２２Ｎは、アドレスデコーダ２１から供給された出力信号と、ＣＰＵ４から供給された、後述するＣＰＵデータの書き込みパルスを示すＣＰＵ書き込みパルスとの論理積を演算し、ＣＰＵアドレスが示すアドレスに該当する制御レジスタ２３Ａ、・・・、２３Ｎの書き込み信号を生成する。
【００４４】
制御レジスタ２３Ａ、・・・、２３Ｎは、シリアル送受信回路１０の数に対応して設けられる。制御レジスタ２３Ａ、・・・、２３Ｎは、ＣＰＵ４からの書き込みデータを示すＣＰＵデータと、ＡＮＤゲート２２Ａ、・・・、２２Ｎから供給された書き込み信号とに基づき、転送有効フラグ、送受信モード及び転送サイズに関する情報を含む制御情報を保持し、この制御情報を含む転送制御信号を、対応するシリアル送受信回路１０に対して供給する。
【００４５】
メモリ制御回路３０は、図４に示すように、セレクタ３１ａ〜３１ｄ、アドレスレジスタ３２ａ、Ｒｅａｄレジスタ３２ｂ、Ｗｒｉｔｅレジスタ３２ｃ、Ｗｒｉｔｅイネーブルレジスタ３２ｄ、Ｒｅａｄイネーブルレジスタ３２ｅ、バッファ３３Ａ〜３３Ｃ、バッファ３４Ａ及び３４Ｂを備える。
【００４６】
セレクタ３１ａは、各シリアル送受信回路１０から供給された各々のメモリアドレス信号から所定のメモリアドレス信号を選択し、アドレスレジスタ３２ａに供給する。セレクタ３１ｂは、各シリアル送受信回路１０から供給された各々のＷｒｉｔｅデータから所定のＷｒｉｔｅデータを選択し、Ｗｒｉｔｅレジスタ３２ｃに供給する。
【００４７】
セレクタ３１ｃは、各シリアル送受信回路１０から供給された各々のＷｒｉｔｅリクエスト信号から所定のＷｒｉｔｅリクエスト信号を選択し、Ｗｒｉｔｅイネーブルレジスタ３２ｄに供給する。セレクタ３１ｄは、各シリアル送受信回路１０から供給された各々のＲｅａｄリクエスト信号から所定のＲｅａｄリクエスト信号を選択し、Ｒｅａｄイネーブルレジスタ３２ｅに供給する。
【００４８】
アドレスレジスタ３２ａは、セレクタ３１ａから供給されたメモリアドレス信号が示す、共有メモリ３にアクセスするためのアドレスを保持し、保持されたアドレスをバッファ３３Ａを介して共有メモリ３に供給する。Ｒｅａｄレジスタ３２ｂは、バッファ３３Ｂを介して共有メモリ３から供給されたＲｅａｄデータを保持し、後述するＲｅａｄイネーブル信号を出力したシリアル送受信回路１０に対して供給する。Ｗｒｉｔｅレジスタ３２ｃは、セレクタ３１ｂから供給され、共有メモリ３に書き込むためのＷｒｉｔｅデータを保持し、保持されたＷｒｉｔｅデータをバッファ３３Ｃを介して共有メモリ３に供給する。
【００４９】
Ｗｒｉｔｅイネーブルレジスタ３２ｄは、セレクタ３１ｃから供給されたＷｒｉｔｅリクエスト信号を、共有メモリ３にアクセスするためのＷｒｉｔｅイネーブル信号として保持し、保持されたＷｒｉｔｅイネーブル信号をバッファ３４Ａを介して共有メモリ３に供給する。Ｒｅａｄイネーブルレジスタ３２ｅは、セレクタ３１ｄから供給されたＲｅａｄリクエスト信号を、共有メモリ３にアクセスするためのＲｅａｄイネーブル信号として保持し、保持されたＲｅａｄイネーブル信号をバッファ３４Ｂを介して共有メモリ３に供給する。
【００５０】
次に、上記構成を有するシリアル転送装置１の動作について説明する。まず、シリアル転送装置１全体の概略的な動作について、図１を参照して説明する。シリアル転送装置１において、ＣＰＵ４がＤＭＡ制御回路２０に対してデータの送信要求を行うと、各シリアル送受信回路１０は、メモリ制御回路３０を介して共有メモリ３にアクセスし、パラレルデータを読み出す。
そして、シリアル送受信回路１０は、読み出したパラレルデータをシリアルデータに変換し、接続された外部装置に対して送信する。
【００５１】
また、ＣＰＵ４がＤＭＡ制御回路２０に対してデータの受信要求を行うと、各シリアル送受信回路１０は、外部装置からシリアルデータを受信し、パラレルデータに変換する。そして、シリアル送受信回路１０は、変換されたパラレルデータを、メモリ制御回路３０を介して共有メモリ３に書き込む。
【００５２】
このとき、各シリアル送受信回路１０におけるシリアルデータの送信及び受信タイミングは、循環カウンタ４０から出力される循環カウンタ信号が示す値によって制御され、循環カウンタ値に対応するシリアル送受信回路１０は、シリアルデータの送信及び受信を開始する。
【００５３】
次に、ＤＭＡ制御回路２０の動作について、図１及び図３を参照して説明する。図１に示すように、データ送信時において、ＣＰＵバス６を介してＣＰＵ４からのシリアルデータの送信を開始させるコマンド（図３のＣＰＵデータ、ＣＰＵ書き込みパルス及びＣＰＵアドレス）がＤＭＡ制御回路２０に供給されると、ＤＭＡ制御回路２０は、アドレスデコーダ２１によりＣＰＵアドレスをデコードする。そして、ＡＮＤゲート２２Ａ、・・・、２２ＮによりＣＰＵ書き込みパルスに同期して、データ送信を行うシリアル送受信回路１０に対応する制御レジスタ２３Ａ、・・・、２３ＮにＣＰＵデータを書き込む。
【００５４】
制御レジスタ２３Ａ、・・・、２３Ｎは、転送有効フラグ、送受信モード及び転送するデータサイズを示す転送サイズに関する情報を含む制御情報を保持する。保持された制御情報は、転送制御信号としてシリアル送受信回路１０に供給される。
【００５５】
次に、メモリ制御回路３０の動作について、図１、図４及び図５を参照して説明する。シリアル送受信回路１０から共有メモリ３に対する書き込み要求であるＷｒｉｔｅリクエスト信号が供給された場合、メモリ制御回路３０は、書き込み要求を出力したシリアル送受信回路１０から供給されたメモリアドレス信号をセレクタ３１ａで選択し、アドレスレジスタ３２ａにロードする。また、メモリ制御回路３０は、書き込み要求を出力したシリアル送受信回路１０から供給されたＷｒｉｔｅデータをセレクタ３１ｂで選択し、Ｗｒｉｔｅレジスタ３２ｃにロードする。さらに、メモリ制御回路３０は、シリアル送受信回路１０から供給されたＷｒｉｔｅリクエスト信号に対してセレクタ３１ｃで論理和を演算し、Ｗｒｉｔｅイネーブルレジスタ３２ｄにロードする。
【００５６】
そして、メモリ制御回路３０は、Ｗｒｉｔｅイネーブルレジスタ３２ｄから出力されるＷｒｉｔｅイネーブル信号をアサートし、共有メモリ３におけるアドレスレジスタ３２ａから出力されるアドレスに対して、Ｗｒｉｔｅレジスタ３２ｃから出力されるＷｒｉｔｅデータを書き込む。
【００５７】
一方、シリアル送受信回路１０から共有メモリ３に対する読み出し要求であるＲｅａｄリクエスト信号が供給された場合、メモリ制御回路３０は、読み出し要求を出力したシリアル送受信回路１０から供給されたメモリアドレス信号をセレクタ３１ａで選択し、アドレスレジスタ３２ａにロードする。また、メモリ制御回路３０は、シリアル送受信回路１０から供給されたＲｅａｄリクエスト信号に対してセレクタ３１ｄで論理和を演算し、Ｒｅａｄイネーブルレジスタ３２ｅにロードする。
【００５８】
そして、メモリ制御回路３０は、Ｒｅａｄイネーブルレジスタ３２ｅから出力されるＲｅａｄイネーブル信号をアサートし、共有メモリ３におけるアドレスレジスタ３２ａから出力されるアドレスからＲｅａｄデータを読み出してＲｅａｄレジスタ３２ｂにロードし、要求元のシリアル送受信回路１０に対してＲｅａｄデータを供給する。
【００５９】
図５は、メモリ制御回路３０が共有メモリ３に対してアクセスを行うタイミングを示すタイミングチャートを示す。「シリアルＣＬＫ」は、シリアル転送を行う際に用いられるクロックである。「ＭＥＭ  ＣＬＫ」は、メモリ制御回路３０のクロックであり、シリアルＣＬＫよりも高速となるように設定され、この例においては、シリアルＣＬＫの周波数に対して２倍の周波数に設定される。
【００６０】
「ＭＥＭアドレス」は、アドレスレジスタ３２ａにロードされたアドレスの種類を示す。この例においては、「Ｗｒｉｔｅアドレス」が書き込みアドレスを示し、「Ｒｅａｄアドレス」が読み出しアドレスを示す。
【００６１】
「ＭＥＭ  Ｒｅａｄイネーブル」は、共有メモリ３に対する読み出しが有効であるか否かを示す信号であり、この信号の立ち下がりから立ち上がりまでが有効であることを示す。「ＭＥＭ  Ｗｒｉｔｅイネーブル」は、共有メモリ３に対する書き込みが有効であるか否かを示す信号であり、この信号の立ち下がりから立ち上がりまでが有効であることを示す。「ＭＥＭ  Ｒｅａｄデータ」は、共有メモリ３からデータを読み出すタイミングを示し、「ＭＥＭ  Ｗｒｉｔｅデータ」は、共有メモリ３からデータを読み出すタイミングを示す。
【００６２】
すなわち、この例においては、書き込み又は読み出しが有効であるタイミングがシリアルＣＬＫの波形に同期しており、タイミングＴ１からＴ３までの期間が共有メモリ３に対してデータを書き込むタイミングとなり、タイミングＴ３からＴ５までの期間が共有メモリ３からデータを読み出すタイミングとなる。
【００６３】
尚、シリアル転送装置１全体を動作させるためのシステムクロックは、シリアルＣＬＫとは異なる信号であり、特に図示されていないが、システムクロック及びシリアルＣＬＫに同一の信号を用いてもよい。
【００６４】
次に、シリアル送受信回路１０における送信及び受信動作について、図６に示すフローチャートを参照して説明する。尚、以下では、説明を容易とするため、複数のシリアル送受信回路１０Ａ、１０Ｂ、１０Ｃ、・・・１０Ｎのうちいずれか１つのシリアル送受信回路１０で送信及び受信動作を行う場合を例にとって説明する。
【００６５】
まず、メモリ制御回路３０から供給される転送制御信号に含まれる転送有効フラグの値に基づき、データを転送するか否かが判断される（ステップＳ１）。転送有効フラグは、データの転送が行われる場合に値が「１」となる情報である。有効フラグの値が「１」である場合（ステップＳ１：Ｙｅｓ）には、処理がステップＳ２に移行する。一方、有効フラグの値が「１」以外である場合（ステップＳ１：Ｎｏ）には、処理がステップＳ１に戻り、再度、有効フラグの値に基づいてデータ転送の有無が判断される。
【００６６】
次に、ステップＳ２において、転送制御信号に含まれる送受信モードを示す情報に基づき、動作モードが送信モードであるか、又は受信モードであるかが判断される。動作モードが「送信モード」である場合（ステップＳ２：送信）には、処理がステップＳ３に移行し、循環カウンタ４０から供給される循環カウンタ信号と、回路番号クランプ論理部１４から供給される回路番号クランプ信号とに基づき、２つの信号が一致するか否かが判断される（ステップＳ３）。
【００６７】
循環カウンタ信号及び回路番号クランプ信号が一致すると判断された場合（ステップＳ３：Ｙｅｓ）には、処理がステップＳ４に移行し、一致しないと判断された場合（ステップＳ３：Ｎｏ）には、再度、循環カウンタ信号及び回路番号クランプ信号が一致するか否かが判断される。
【００６８】
ステップＳ４では、図２のシリアル制御回路１２によってＲｅａｄリクエスト信号がアサートされると共に、メモリアドレス信号が出力される。そして、データＬｏａｄ信号がアサートされ、シフトレジスタ１１にＲｅａｄデータ（パラレルデータ）における１ワード分がロードされる。
【００６９】
ステップＳ５では、シリアル制御回路１２によってデータＳｈｉｆｔ信号がアサートされ、シフトレジスタ１１が１ビットだけシフトされて出力データ（シリアルデータ）として出力される。このとき、シリアル制御回路１２からＩＯバッファ１３に対してＩＯ制御信号が供給され、ＩＯバッファ１３は、シフトレジスタ１１からの出力データを外部装置に対して送信する。また、シリアル制御回路１２によって外部装置に対するイネーブル信号がアサートされ、出力モードを示す入出力モード信号及び転送ＣＬＫ信号と共に外部装置に対して送信される。
【００７０】
次に、シフトレジスタ１１にロードされたＲｅａｄデータにおける１ワードの最後の１ビットが出力されたか否かが判断される（ステップＳ６）。最後の１ビットが出力されていないと判断された場合（ステップＳ６：Ｎｏ）には、処理がステップＳ５に戻り、次の１ビットが出力され、以降、最後の１ビットが出力されるまで順次ステップＳ５の処理が行われる。
【００７１】
一方、最後の１ビットが出力されたと判断された場合（ステップＳ６：Ｙｅｓ）には、処理がステップＳ７に移行し、メモリ制御回路３０から供給される転送制御信号に含まれる転送サイズを示す情報と、実際に転送したデータ数とに基づき、転送サイズ分のデータ転送が終了したか否かが判断される（ステップＳ７）。転送サイズと転送データ数とが一致したと判断された場合（ステップＳ７：Ｙｅｓ）には、一連の処理が終了する。
【００７２】
また、転送サイズよりも転送データ数が少なく、転送サイズと転送データ数とが一致しないと判断された場合（ステップＳ７：Ｎｏ）には、処理がステップＳ４に戻り、共有メモリ３からＲｅａｄデータにおける次の１ワード分のデータがロードされる。
【００７３】
一方、ステップＳ２において、動作モードが「受信モード」である場合（ステップＳ２：受信）には、処理がステップＳ８に移行し、循環カウンタ４０から供給される循環カウンタ信号と、回路番号クランプ論理部１４から供給される回路番号クランプ信号とに基づき、２つの信号が一致するか否かが判断される（ステップＳ８）。
【００７４】
循環カウンタ信号及び回路番号クランプ信号が一致すると判断された場合（ステップＳ８：Ｙｅｓ）には、処理がステップＳ９に移行し、一致しないと判断された場合（ステップＳ８：Ｎｏ）には、再度、循環カウンタ信号及び回路番号クランプ信号が一致するか否かが判断される。
【００７５】
ステップＳ９では、図２のシリアル制御回路１２によって外部装置に対するイネーブル信号がアサートされ、入力モードを示す入出力モード信号及び転送ＣＬＫ信号と共に外部装置に対して送信される。また、シリアル制御回路１２からＩＯバッファ１３に対してＩＯ制御信号が供給され、ＩＯバッファ１３は、外部装置からの入力データ（シリアルデータ）をシフトレジスタ１１に対して供給する。そして、シリアル制御回路１２によってデータＳｈｉｆｔ信号がアサートされ、シフトレジスタ１１が１ビットだけシフトされて入力データ（シリアルデータ）が入力される。
【００７６】
次に、ステップＳ１０において、１ワード分の入力データの転送が終了したか否かが判断される。１ワード分のデータ転送が終了したと判断された場合（ステップＳ１０：Ｙｅｓ）には、処理がステップＳ１１に移行し、シリアル制御回路１２によりＷｒｉｔｅリクエスト信号がアサートされると共にメモリアドレス信号が出力され、シフトレジスタ１１からＷｒｉｔｅデータ（パラレルデータ）が出力される。
【００７７】
一方、ステップＳ１０において、１ワード分のデータ転送が終了していないと判断された場合（ステップＳ１０：Ｎｏ）には、処理がステップＳ９に戻り、次の１ビットが入力される。
【００７８】
次に、メモリ制御回路３０から供給される転送制御信号に含まれる転送サイズを示す情報と、実際に転送したデータ数とに基づき、転送サイズ分のデータ転送が終了したか否かが判断される（ステップＳ１２）。転送サイズと転送データ数とが一致したと判断された場合（ステップＳ１２：Ｙｅｓ）には、一連の処理が終了する。一方、転送サイズよりも転送データ数が少なく、転送サイズと転送データ数とが一致しないと判断された場合（ステップＳ１２：Ｎｏ）には、処理がステップＳ９に戻る。
【００７９】
図７は、単体のシリアル送受信回路１０においてデータを送信する場合のタイミングチャートの一例を示す。尚、この例では、シリアル送受信回路１０の回路番号が「１」であり、２ワード分のデータを送信する場合について説明する。
【００８０】
この例では、図６のステップＳ３に示す循環カウンタ判別処理について、循環カウンタ４０から出力される循環カウンタ信号の値と、回路番号クランプ論理部１４から出力される回路番号クランプ信号の値とがタイミングＴ２で一致するため、次のタイミングＴ３で、ステップＳ４による共有メモリ３からの１ワード分のデータ読み出し処理が行われる。
【００８１】
そして、次のタイミングＴ４〜Ｔ１９で、読み出された１ワード分のデータに基づくシリアルデータＤ０〜Ｄ７が出力される。このとき、ステップＳ６による最後の１ビット判別処理、並びにデータサイズ分の転送終了判別処理は、タイミングＴ１７で行われる。この例では、２ワード分のデータを送信し、この時点では、２ワード目のデータの送信が行われていないため、処理がステップＳ４に戻る。
【００８２】
そして、タイミングＴ１９で、次の２ワード目のデータ読み出し処理が行われ、タイミングＴ２０〜Ｔ３５で、読み出された２ワード目のデータに基づくシリアルデータＤ８〜Ｄ１５が出力される。このとき、ステップＳ６による最後の１ビット判別処理、並びにデータサイズ分の転送終了判別処理は、タイミングＴ３３で行われる。この例では、この時点で２ワード分のデータ送信が行われたため、タイミングＴ３６で、一連の処理が終了する。
【００８３】
図８は、単体のシリアル送受信回路１０においてデータを受信する場合のタイミングチャートの一例を示す。この例では、図６のステップＳ８に示す循環カウンタ判別処理について、循環カウンタ４０から出力される循環カウンタ信号の値と、回路番号クランプ論理部１４から出力される回路番号クランプ信号の値とがタイミングＴ２で一致するため、タイミングＴ４〜Ｔ１９で、ステップＳ９によるシリアルデータＤ０〜Ｄ７の入力処理が行われる。
【００８４】
このとき、１ワード転送の終了処理がタイミングＴ１９で行われ、ステップＳ１１によるシリアルデータから変換された１ワード分のパラレルデータの共有メモリ３に対する書き込み処理が行われると共に、ステップＳ１２によるデータサイズ分の転送終了判別処理が行われる。この例では、２ワード分のデータを受信し、この時点では、２ワード目のデータの受信が行われていないため、処理がステップＳ９に戻る。
【００８５】
そして、タイミングＴ２０〜Ｔ３５で、次の２ワード目のデータに対応するシリアルデータＤ８〜Ｄ１５の入力処理が行われる。１ワード転送の終了処理がタイミングＴ３５で行われ、シリアルデータから変換された１ワード分のパラレルデータの共有メモリ３に対する書き込み処理が行われると共に、データサイズ分の転送終了判別処理が行われる。この例では、この時点で２ワード分のデータ受信が行われたため、タイミングＴ３６で、一連の処理が終了する。
【００８６】
次に、すべてのシリアル送受信回路１０がデータの送受信を行う場合について説明する。以下では、６台のシリアル送受信回路１０Ａ〜１０Ｆを用いてデータの送受信を行う場合を例にとり、各々のシリアル送受信回路１０Ａ〜１０Ｆにおける回路番号を「１」〜「６」とした場合について説明する。
【００８７】
まず、第１の例として、シリアル送受信回路１０Ａ〜１０Ｃが２ワード分のデータを送信し、シリアル送受信回路１０Ｄ〜１０Ｆが２ワード分のデータを受信する場合について、図９を参照して説明する。
【００８８】
図９に示すように、循環カウンタ４０から出力される循環カウンタ信号の値が「１」となるタイミングＴ２で、シリアル送受信回路１０Ａが動作を開始する。そして、シリアル送受信回路１０Ａは、タイミングＴ３で、共有メモリ３からの１ワード分のパラレルデータを読み出し、タイミングＴ４〜Ｔ１９で、読み出したパラレルデータを変換したシリアルデータＤ０〜Ｄ７を送信する。
【００８９】
ここで、タイミングＴ１８は、１ワード分のシリアルデータを送信する場合における最後の１ビットを送信するタイミングであり、この例では、２ワード分のデータを転送する。そのため、シリアル送受信回路１０Ａは、次のタイミングＴ１９で再度共有メモリ３に対してアクセスし、次の１ワード分のパラレルデータを読み出し、タイミングＴ２０〜Ｔ３５で、読み出したパラレルデータを変換したシリアルデータＤ８〜Ｄ１５を送信する。
【００９０】
このとき、タイミングＴ３４は、２ワード目のシリアルデータにおける最後の１ビットを送信するタイミングであるため、シリアル送受信回路１０Ａは、タイミングＴ３６でデータ転送を終了する。
【００９１】
また、循環カウンタ信号の値が「２」となるタイミングＴ４で、シリアル送受信回路１０Ｂが動作を開始し、シリアル送受信回路１０Ａと同様に、タイミングＴ５で共有メモリ３からの１ワード分のパラレルデータを読み出し、タイミングＴ６〜Ｔ２１でシリアルデータＤ０〜Ｄ７を送信する。
【００９２】
ここで、タイミングＴ２０は、１ワード分のシリアルデータを送信する場合における最後の１ビットを送信するタイミングであり、この例では、２ワード分のデータを転送する。そのため、シリアル送受信回路１０Ｂは、次のタイミングＴ２１で再度共有メモリ３に対してアクセスして次の１ワード分のパラレルデータを読み出し、タイミングＴ２２〜Ｔ３７でシリアルデータＤ８〜Ｄ１５を送信する。
【００９３】
このとき、タイミングＴ３６は、２ワード目のシリアルデータにおける最後の１ビットを送信するタイミングであるため、シリアル送受信回路１０Ｂは、タイミングＴ３８でデータ転送を終了する。
【００９４】
さらに、循環カウンタ信号の値が「３」となるタイミングＴ６で、シリアル送受信回路１０Ｃが動作を開始し、シリアル送受信回路１０Ａ及び１０Ｂと同様に、タイミングＴ７で共有メモリ３からの１ワード分のパラレルデータを読み出し、タイミングＴ８〜Ｔ２３でシリアルデータＤ０〜Ｄ７を送信する。
【００９５】
ここで、タイミングＴ２２は、１ワード分のシリアルデータを送信する場合における最後の１ビットを送信するタイミングであり、この例では、２ワード分のデータを転送する。そのため、シリアル送受信回路１０Ｃは、次のタイミングＴ２３で再度共有メモリ３に対してアクセスして次の１ワード分のパラレルデータを読み出し、タイミングＴ２４〜Ｔ３９でシリアルデータＤ８〜Ｄ１５を送信する。
【００９６】
このとき、タイミングＴ３８は、２ワード目のシリアルデータにおける最後の１ビットを送信するタイミングであるため、シリアル送受信回路１０Ｃは、タイミングＴ４０でデータ転送を終了する。
【００９７】
一方、循環カウンタ信号の値が「４」となるタイミングＴ８で、シリアル送受信回路１０Ｄが動作を開始し、タイミングＴ１０〜Ｔ２５で、シリアルデータＤ０〜Ｄ７を受信する。ここで、タイミングＴ２５は、１ワード分のシリアルデータにおける最後の１ビットを受信するタイミングであり、最後の１ビットを受信することにより、１ワード分のデータが揃う。そのため、シリアル送受信回路１０Ｄは、タイミングＴ２６で共有メモリ３に対してアクセスし、シリアルデータを変換した１ワード分のパラレルデータを書き込む。
【００９８】
さらに、この例では、２ワード分のデータを受信するため、タイミングＴ２６〜Ｔ４１で、次の２ワード目に対応するシリアルデータＤ８〜Ｄ１５を受信する。そして、タイミングＴ４１は、２ワード目に対応するシリアルデータにおける最後の１ビットを受信するタイミングであり、最後の１ビットを受信することにより、１ワード分のデータが揃う。そのため、シリアル送受信回路１０Ｄは、タイミングＴ４２で共有メモリ３に対してアクセスし、シリアルデータを変換した１ワード分のパラレルデータを書き込み、データ転送を終了する。
【００９９】
また、循環カウンタ信号の値が「５」となるタイミングＴ１０で、シリアル送受信回路１０Ｅが動作を開始し、シリアル送受信回路１０Ｅと同様に、タイミングＴ１２〜Ｔ２７で、シリアルデータＤ０〜Ｄ７を受信する。ここで、タイミングＴ２７は、１ワード分のシリアルデータにおける最後の１ビットを受信するタイミングであり、最後の１ビットを受信することにより、１ワード分のデータが揃う。そのため、シリアル送受信回路１０Ｅは、タイミングＴ２８で共有メモリ３に対してアクセスし、シリアルデータを変換した１ワード分のパラレルデータを書き込むと共に、タイミングＴ２８〜Ｔ４３で、次の２ワード目に対応するシリアルデータＤ８〜Ｄ１５を受信する。
【０１００】
そして、タイミングＴ４３は、２ワード目に対応するシリアルデータにおける最後の１ビットを受信するタイミングであり、最後の１ビットを受信することにより、１ワード分のデータが揃うため、シリアル送受信回路１０Ｅは、タイミングＴ４４で共有メモリ３に対してアクセスし、シリアルデータを変換した１ワード分のパラレルデータを書き込み、データ転送を終了する。
【０１０１】
さらに、循環カウンタ信号の値が「６」となるタイミングＴ１２で、シリアル送受信回路１０Ｆが動作を開始し、シリアル送受信回路１０Ｄ及び１０Ｅと同様に、タイミングＴ１４〜Ｔ２９で、シリアルデータＤ０〜Ｄ７を受信する。ここで、タイミングＴ２９は、１ワード分のシリアルデータにおける最後の１ビットを受信するタイミングであり、最後の１ビットを受信することにより、１ワード分のデータが揃う。そのため、シリアル送受信回路１０Ｆは、タイミングＴ３０で共有メモリ３に対してアクセスし、シリアルデータを変換した１ワード分のパラレルデータを書き込むと共に、タイミングＴ３０〜Ｔ４５で、次の２ワード目に対応するシリアルデータＤ８〜Ｄ１５を受信する。
【０１０２】
そして、タイミングＴ４５は、２ワード目に対応するシリアルデータにおける最後の１ビットを受信するタイミングであり、最後の１ビットを受信することにより、１ワード分のデータが揃うため、シリアル送受信回路１０Ｆは、タイミングＴ４６で共有メモリ３に対してアクセスし、シリアルデータを変換した１ワード分のパラレルデータを書き込み、データ転送を終了する。
【０１０３】
次に、第２の例として、シリアル送受信回路１０Ａ、１０Ｃ及び１０Ｅが２ワード分のデータを送信し、シリアル送受信回路１０Ｂ、１０Ｄ及び１０Ｆが２ワード分のデータを受信する場合について、図１０を参照して説明する。
【０１０４】
第２の例においても、上述した第１の例と同様に、各シリアル送受信回路１０においてデータの送受信が行われる。ここで、図１０に示すように、シリアル送受信回路１０Ｂは、タイミングＴ２１で１ワード分のデータが揃うため、タイミングＴ２２で共有メモリ３に対してアクセスし、１ワード分のパラレルデータを書き込む。一方、シリアル送受信回路１０Ｃは、タイミングＴ２２で、シリアルデータの最後の１ビットを送信し、次のタイミングＴ２３で共有メモリ３に対してアクセスし、次の２ワード目のデータを読み出す。
【０１０５】
このとき、タイミングＴ２２及びＴ２３は、循環カウンタ４０のタイミング単位で考えた場合に同一タイミングとなるため、シリアル送受信回路１０Ｂ及び１０Ｃは、共有メモリ３に対して同時にアクセスすることになるが、タイミングＴ２２では、シリアル送受信回路１０Ｂによる書き込み動作であり、タイミングＴ２３では、シリアル送受信回路１０Ｃによる読み出し動作であるため、共有メモリ３に対する競合は発生しない。
【０１０６】
これは、シリアル送受信回路１０Ｄによる書き込み動作と、シリアル送受信回路１０Ｅによる読み出し動作とによって共有メモリ３に対するアクセスが同時に行われるタイミングＴ２６及びＴ２７の場合も同様である。
【０１０７】
次に、第３の例として、シリアル送受信回路１０毎に異なる転送サイズのデータの送受信を行う場合について、図１１を参照して説明する。この例では、シリアル送受信回路１０Ａ〜１０Ｃがデータを送信し、シリアル送受信回路１０Ｄ〜１０Ｆがデータを受信すると共に、シリアル送受信回路１０Ｂが３ワード分、シリアル送受信回路１０Ｄが４ワード分、それ以外のシリアル送受信回路１０Ａ、１０Ｃ、１０Ｅ及び１０Ｆが１ワード分のデータ転送を行うものとする。
【０１０８】
この場合、シリアル送受信回路１０Ａ〜１０Ｆによるデータの送受信は、上述した第１及び第２の例と同様に行われる。
【０１０９】
シリアル送受信回路１０Ａは、転送終了後、循環カウンタ４０からの循環カウンタ値が「１」となるタイミングＴ３５で共有メモリ３に対してアクセスし、タイミングＴ３６でシリアルデータＤ０〜Ｄ７の送信を行う。このとき、シリアル送受信回路１０Ｂは、シリアルデータＤ０〜Ｄ２３の送信を継続しているが、共有メモリ３に対するアクセスがタイミングＴ３７で行われるので、シリアル送受信回路１０Ａ及び１０Ｂによる共有メモリ３に対するアクセスの競合は発生しない。
【０１１０】
また、シリアル送受信回路１０Ｅは、転送終了後、循環カウンタ４０からの循環カウンタ値が「６」となるタイミングＴ４４からシリアルデータの受信を開始し、タイミングＴ６０でシリアルデータを変換したパラレルデータの共有メモリ３に対する書き込みを行う。このとき、シリアル送受信回路１０Ｄは、データの転送を継続しているが、共有メモリ３に対するアクセスがタイミングＴ５８で行われるので、シリアル送受信回路１０Ｄ及び１０Ｅによる共有メモリ３に対するアクセスの競合は発生しない。
【０１１１】
次に、第３の例における共有メモリ３に対するアクセスについて、図１２に示すメモリマップを参照して説明する。尚、図１２において、アドレスの数値の直後に記載された「ｈ」は、直前の数値が１６進数表記であることを示す。
【０１１２】
図１２に示すメモリマップにおいて、例えば、シリアル送受信回路１０Ａは、アドレス「０１００ｈ」〜「０２００ｈ」を使用し、１ワード分のデータを転送する際のアクセス毎に、アドレスを１だけインクリメントする。
【０１１３】
同様に、シリアル送受信回路１０Ｂは、アドレス「０２００ｈ」〜「０３００ｈ」を使用し、シリアル送受信回路１０Ｃは、アドレス「０３００ｈ」〜「０４００ｈ」を使用する。また、シリアル送受信回路１０Ｄは、アドレス「０４００ｈ」〜「０７００ｈ」を使用し、シリアル送受信回路１０Ｅは、アドレス「０７００ｈ」〜「０８００ｈ」を使用する。さらに、シリアル送受信回路１０Ｆは、アドレス「０８００ｈ」〜「０９００ｈ」を使用する。
【０１１４】
ここで、シリアル送受信回路１０Ｄは、転送するデータ量が他のシリアル送受信回路と比較して多いため、メモリ領域を多く確保している。このように、各シリアル送受信回路１０によって転送するデータ量に応じて、任意にメモリマップを構成することができる。
【０１１５】
以上のように、第１の実施形態によれば、循環カウンタの値に応じて複数のシリアル送受信回路を並列的に動作させるため、データの転送性能を向上させることができる。また、シリアル送受信回路を並列的に動作させる際に、共有メモリに対する書き込み動作と読み出し動作とによる競合を防ぎ、複数のシリアル送受信回路による送受信を任意に設定することができるため、データ転送の際の待ち時間を削減することができ、データの転送性能を向上させることができる。
【０１１６】
さらに、共有メモリに対する競合を防ぐようにするため、従来必要とされた各シリアル送受信回路に設けられたバッファを省略することができる。これにより、装置のハードウェアを削減することができる。さらにまた、循環カウンタに基づき、複数のシリアル送受信回路による送受信動作を制御するため、従来設けられた調停回路を省略することができ、論理回路を簡略化することができる。
【０１１７】
次に、本発明に係るシリアル転送装置の第２の実施形態について説明する。この第２の実施形態によるシリアル転送装置１’では、共有メモリ３をデュアルポートＲＡＭで構成し、２つのメモリバス５Ａ及び５Ｂでアクセス可能なように構成する。
【０１１８】
シリアル転送部２’は、第１の実施形態におけるメモリ制御回路３０に代えて、メモリ制御回路３０Ａ及び３０Ｂを備え、例えば、複数のシリアル送受信回路１０のうち半分ずつを制御する。これにより、共有メモリ３に対して２系統の同時アクセスが許可されるため、２系統によるデータの送受信を同時に行うことができる。
【０１１９】
尚、メモリ制御回路３０Ａ及び３０Ｂに割り当てるシリアル送受信回路１０は、例えば、転送データ長に応じて設定してもよい。具体的には、例えば、メモリ制御回路３０Ａに対しては、転送データ長が長いシリアル送受信回路１０を割り当て、メモリ制御回路３０Ｂに対しては、転送データ長が短いシリアル送受信回路１０を割り当てるようにしてもよい。
【０１２０】
また、各シリアル送受信回路１０がアクセスする共有メモリ３のアドレスは、互いに排他的であるため、デュアルポートＲＡＭの同一アドレスアクセスのような制限のある動作が行われることはない。
【０１２１】
以上のように、第２の実施形態によれば、２つのメモリ制御回路を設けると共に、共有メモリを２系統のアクセスが可能なようにするため、共有メモリに対する２系統の同時アクセスが可能になる。
【０１２２】
また、共有メモリに対して２系統の同時アクセスが可能になるため、シリアル送受信回路の数が増加した場合でも、全体としてのデータ転送性能を向上させることができる。具体的には、例えば、最も早いデータ転送開始を０サイクル目とすると、最も遅いデータ転送開始のサイクルを従来の半分に短縮することができる。
【０１２３】
以上、本発明の第１及び第２の実施形態について説明したが、本発明は、上記構成に限定されるものではなく、特許請求の範囲に記載された発明の範囲内で種々の変更が可能である。例えば、共有メモリ３のデータ幅を広くし、１アクセス分のデータを２ワード以上としてもよい。
【符号の説明】
【０１２４】
１、１’  シリアル転送装置
２、２’  シリアル転送部
３  共有メモリ
４  ＣＰＵ
５（５Ａ、５Ｂ）  メモリバス
６  ＣＰＵバス
１０（１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ、１０Ｆ、・・・、１０Ｎ）  シリアル送受信回路
１１  シフトレジスタ
１２  シリアル制御回路
１３  ＩＯバッファ
１４  回路番号クランプ論理部
１５（１５Ａ、１５Ｂ、１５Ｃ）  バッファ
２０  ＤＭＡ制御回路
２１  アドレスデコーダ
２２（２２Ａ、・・・、２２Ｎ）  ＡＮＤゲート
２３（２３Ａ、・・・、２３Ｎ）  制御レジスタ
３０（３０Ａ、３０Ｂ）  メモリ制御回路
３１（３１ａ、３１ｂ、３１ｃ、３１ｄ）  セレクタ
３２ａ  アドレスレジスタ
３２ｂ  Ｒｅａｄレジスタ
３２ｃ  Ｗｒｉｔｅレジスタ
３２ｄ  Ｗｒｉｔｅイネーブルレジスタ
３２ｅ  Ｒｅａｄイネーブルレジスタ
３３（３３Ａ、３３Ｂ、３３Ｃ）  バッファ
３４（３４Ａ、３４Ｂ）  バッファ
４０  循環カウンタ
【図１】
2013120587.tif 000003
【図２】
2013120587.tif 000004
【図３】
2013120587.tif 000005
【図４】
2013120587.tif 000006
【図５】
2013120587.tif 000007
【図６】
2013120587.tif 000008
【図７】
2013120587.tif 000009
【図８】
2013120587.tif 000010
【図９】
2013120587.tif 000011
【図１０】
2013120587.tif 000012
【図１１】
2013120587.tif 000013
【図１２】
2013120587.tif 000014
【図１３】
2013120587.tif 000015
【図１４】
2013120587.tif 000016
【図１５】
2013120587.tif 000017
【図１６】
2013120587.tif 000018