説明

信号同期化方法及び信号同期化回路

【課題】デバイスがプロセッサからの前の要求と連続する次の要求とを区別可能にする。
【解決手段】プロセッサからデバイスに対する最初の要求を行うときには要求を表す信号である信号REQinは立ち上がりアクティブ状態になるが(時刻t3)、プロセッサが連続して次の要求を行うときには信号REQinはアクティブ状態を継続するだけである(時刻t14)場合において、マスク開始時刻t6までは信号REQinをそのまま信号REQoutとして要求先のデバイスに出力し、マスク開始時刻t6からマスク継続時間Tmが経過するまでの時間である時刻t6〜t14の間のみ信号REQoutをマスクして非アクティブ状態にして要求先のデバイスに出力する。これにより、マスク継続時間が経過したあとは信号REQoutが非アクティブ状態からアクティブ状態になるため、デバイスは前の要求と次の要求とを区別できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号同期化方法及び信号同期化回路に関する。
【背景技術】
【0002】
異なる周期のクロック信号で動作する装置間でデータのやりとりを行う場合には、送信側装置から与えられたデータを受信側装置のクロック信号に同期化させて受信側装置に出力する同期化回路を用いることが一般に知られている(例えば、特許文献1参照)。
【特許文献1】特開2008−71221号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、プロセッサによっては、データのやり取りを要求するときにはリクエスト信号を非アクティブ状態からアクティブ状態にするが、連続して次の要求をするときにはリクエスト信号を非アクティブ状態にせずアクティブ状態を維持する場合がある。このような場合には、リクエスト信号を同期化回路が受信側装置のクロック信号に同期化させても連続した次の要求を検出できないという問題が発生する。この場合の一例として、2段のシフトレジスタで構成された同期化回路100の構成を図5(a)に、同期化回路100に入力するプロセッサのリクエスト信号と同期化回路100からの出力との関係を図5(b)に示す。図5(b)において、プロセッサは、時刻t0でリクエスト信号を立ち上げて非アクティブ状態からアクティブ状態にし、時刻t3で連続した次の要求をしてリクエスト信号のアクティブ状態を維持している。この場合、最初の要求については、時刻t1、t2の2回の受信側装置のクロック信号の立ち上がりを経て時刻t2に同期化回路100の出力が立ち上がり非アクティブ状態からアクティブ状態になるため、受信側装置はプロセッサからの要求を検出することができる。しかし、時刻t3での連続した次の要求については、前の要求と同様に時刻t5に同期化回路100の出力が立ち上がるはずであるが、最初の要求によるアクティブ状態が時刻t5以前から継続しているため出力に変化がなく、受信側装置は次の要求を検出できない。
【0004】
本発明は、上述した課題に鑑みなされたものであり、デバイスがプロセッサからの前の要求と連続する次の要求とを区別可能にすることを主目的とする。
【課題を解決するための手段】
【0005】
本発明は、上述の主目的を達成するために以下の手段を採った。
【0006】
本発明の信号同期化方法は、
第1クロック信号に同期して動作するデバイスと、前記第1クロック信号とは異なる周期の第2クロック信号に同期して動作し、前記デバイスとのデータ通信を要求する場合にはリクエスト信号を非アクティブ状態からアクティブ状態にし、その後前記リクエスト信号に対するアクノリッジ信号を検出した後に連続して次の要求をする場合には前記リクエスト信号をアクティブ状態に維持し、連続して次の要求をしない場合には前記リクエスト信号を非アクティブ状態にするプロセッサと、の間で信号の同期化を行う信号同期化方法であって、
(a)前記プロセッサにより入力された前記リクエスト信号を前記第1クロック信号に同期した同期化リクエスト信号に変換するステップと、
(b)前記同期化リクエスト信号を前記デバイスに出力するにあたり、該出力する同期化リクエスト信号が非アクティブ状態からアクティブ状態になり且つ前記デバイスが前記同期化リクエスト信号を受信可能になったあと前記第1クロック信号が非アクティブ状態からアクティブ状態になる時刻をマスク開始時刻とし、該マスク開始時刻までは前記同期化リクエスト信号をマスクせずに前記デバイスに出力し、該マスク開始時刻以降は該同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力するステップと、
(c)前記アクノリッジ信号を入力した前記プロセッサが前記リクエスト信号をアクティブ状態に維持して次の要求をしたとき、該維持されたリクエスト信号のアクティブ状態を前記プロセッサから入力して前記第1クロック信号に同期した同期化リクエスト信号に変換するステップと、
(d)前記マスク開始時刻から所定のマスク継続時間が経過するまでは、前記同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力し、前記マスク開始時刻から前記マスク継続時間が経過したあとは、前記同期化リクエスト信号をマスクせずに前記デバイスに出力するステップと、
を含み、
前記マスク継続時間は、前記マスク開始時刻から、前記ステップ(c)で前記維持されたリクエスト信号のアクティブ状態を同期化リクエスト信号に変換することが前記第1クロック信号と前記第2クロック信号とのタイミングずれに関わらず可能な時刻まで、の時間以上の時間に設定されている、
ものである。
【0007】
この信号同期化方法では、マスク開始時刻からマスク継続時間が経過するまでの間は出力する同期化リクエスト信号をマスクすることにより非アクティブ状態にする。このため、連続して次の要求がきた場合にはマスク継続時間が経過したあとに出力する同期化リクエスト信号は非アクティブ状態からアクティブ状態になり、連続して次の要求がこない場合にはマスク時間経過後に出力する同期化リクエスト信号は非アクティブ状態が継続する。したがって、デバイスがプロセッサからの前の要求と連続する次の要求とを区別可能になる。また、マスク継続時間は、マスク開始時刻から、プロセッサがリクエスト信号をアクティブ状態に維持して次の要求をしたときの維持されたリクエスト信号のアクティブ状態をプロセッサから入力して第1クロック信号に同期した同期化リクエスト信号に変換することが第1クロック信号と第2クロック信号とのタイミングのずれに関わらず可能な時刻まで、の時間以上の時間であるため、次の要求がくる前にマスク継続時間が経過してしまうことがない。すなわち、前の要求によるリクエスト信号のアクティブ状態が継続しているときにマスク継続時間が経過してしまうことにより同期化リクエスト信号を誤って非アクティブ状態からアクティブ状態にしてデバイスに出力してしまうことがない。したがって、デバイスがプロセッサからの要求を誤検出するのを防止できる。
【0008】
本発明の信号同期化方法において、前記マスク継続時間は、前記マスク開始時刻から、前記ステップ(c)で前記維持されたリクエスト信号のアクティブ状態を同期化リクエスト信号に変換することが前記第1クロック信号と前記第2クロック信号とのタイミングずれに関わらず可能な時刻まで、の時間に設定されているものとしてもよい。こうすることにより、マスク継続時間が最小限になるため、デバイスはプロセッサからの次の要求を最小限の時間で検出できる。
【0009】
また、本発明の信号同期化方法において、前記第1クロック信号は、前記第2クロック信号より周期が長いクロック信号であるものとすることもできる。
【0010】
本発明の信号同期化回路は、
第1クロック信号に同期して動作するデバイスと、前記第1クロック信号とは異なる周期の第2クロック信号に同期して動作し、前記デバイスとのデータ通信を要求する場合にはリクエスト信号を非アクティブ状態からアクティブ状態にし、その後前記リクエスト信号に対するアクノリッジ信号を検出した後に連続して次の要求をする場合には前記リクエスト信号をアクティブ状態に維持し、連続して次の要求をしない場合には前記リクエスト信号を非アクティブ状態にするプロセッサと、の間で信号の同期化を行う信号同期化回路であって、
前記プロセッサにより入力された前記リクエスト信号を前記第1クロック信号に同期した同期化リクエスト信号に変換する同期化手段と、
前記同期化リクエスト信号を前記デバイスに出力するにあたり、該出力する同期化リクエスト信号が非アクティブ状態からアクティブ状態になり且つ前記デバイスが前記同期化リクエスト信号を受信可能になったあと前記第1クロック信号が非アクティブ状態からアクティブ状態になる時刻をマスク開始時刻とし、該マスク開始時刻までは前記同期化リクエスト信号をマスクせずに前記デバイスに出力し、該マスク開始時刻以降は該同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力する信号出力手段と、
を備え、
前記信号出力手段は、前記マスク開始時刻から所定のマスク継続時間が経過するまでは、前記同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力し、前記マスク開始時刻から前記マスク継続時間が経過したあとは、前記同期化リクエスト信号をマスクせずに前記デバイスに出力する手段であり、
前記マスク継続時間は、前記マスク開始時刻から、前記アクノリッジ信号を入力した前記プロセッサが前記リクエスト信号をアクティブ状態に維持して次の要求をしたときの該維持されたリクエスト信号のアクティブ状態を前記プロセッサから入力して前記第1クロック信号に同期した同期化リクエスト信号に前記同期化手段が変換することが前記第1クロック信号と前記第2クロック信号とのタイミングずれに関わらず可能な時刻まで、の時間以上の時間に設定されている、
ものである。
【0011】
この信号同期化回路は、上述した信号同期化方法と同様に、マスク開始時刻からマスク継続時間が経過するまでの間は出力する同期化リクエスト信号をマスクすることにより非アクティブ状態にするため、デバイスがプロセッサからの前の要求と連続する次の要求とを区別可能になる効果や、マスク継続時間は、マスク開始時刻から、プロセッサがリクエスト信号をアクティブ状態に維持して次の要求をしたときの維持されたリクエスト信号のアクティブ状態をプロセッサから入力して第1クロック信号に同期した同期化リクエスト信号に変換することが第1クロック信号と第2クロック信号とのタイミングのずれに関わらず可能な時刻まで、の時間以上の時間であるため、デバイスがプロセッサからの要求を誤検出するのを防止できる効果を奏する。なお、この信号同期化回路において、上述したいずれかの信号同期化方法のステップを実現する手段を追加してもよい。
【発明を実施するための最良の形態】
【0012】
次に、本発明の実施の形態を図面に基づいて説明する。図1は、本実施形態であるプロセッサシステム10の構成の概略を示す構成図である。
【0013】
プロセッサシステム10は、図1に示すように、バス70を介して、プロセッサ20と、プロセッサ20が実行するプログラムなどのデータを記憶するROM50と、データを一時的に記憶するRAM60と、が接続されている。また、プロセッサ20とROM50及びRAM60とは、同期化回路30を介しても接続されている。なお、ROM50及びRAM60は周期T1(T1は正の実数)のクロック信号CLK1で動作するデバイスであり、プロセッサ20は周期T2(本実施形態ではT2=1/2・T1)のクロック信号CLK2で動作するデバイスである。
【0014】
プロセッサ20は、印刷処理の制御を行うプロセッサであり、図示しないが、計算に使われるデータを一時的に記憶するレジスタ、実際に計算を実行する算術論理ユニット、バス70や同期化回路30とデータや信号のやり取りを行うプロセッサインターフェース(PIF)、プロセッサ20内の各モジュール(レジスタ,算術論理ユニット,PIFなど)の動作を制御するシーケンサなどを備えている。また、プロセッサ20は、ROM50及びRAM60とのデータのやり取りを要求するリクエスト信号REQを出力するREQ信号線21と、データのやり取りの要求がROM50及びRAM60に送られたことを通知するアクノリッジ信号ACKを入力するACK信号線22と、を介して同期化回路30に接続されている。詳しくは後述するが、このプロセッサ20がROM50やRAM60とデータのやり取りをするときには、信号REQを非アクティブ状態からアクティブ状態にしてデータのやり取りを要求し、信号ACKが非アクティブ状態からアクティブ状態になったときに要求が正しく相手に送られたことを確認する。また、信号ACKが非アクティブ状態からアクティブ状態になった後に、連続して次のデータをやり取りする要求を行うときには信号REQを非アクティブ状態にせずアクティブ状態を維持し、要求を行わないときには信号REQを非アクティブ状態にする。なお、印刷処理の制御とは、ROM50から読み出したプログラムにしたがってRAM60に記憶された印刷対象の画像データを読み出し、読み出した画像データから印刷イメージデータを生成してRAM60に記憶し、その印刷イメージデータを図示しない印刷処理装置が印刷するよう制御することをいう。
【0015】
バス70は、いずれも図示しないが、ROM50及びRAM60のいずれとデータのやり取りを行うかを指示するアドレス信号をプロセッサ20から入力するアドレス信号線と、読み出し又は書き込みのいずれを行うかを指示したりする各種コントロール信号をプロセッサ20から入力するコントロール信号線と、プロセッサ20,ROM50及びRAM60とやり取りするデータを入出力するデータ信号線と、を備えている。
【0016】
ROM50及びRAM60は、ROM50及びRAM60がデータを受信する準備ができているか否かを通知するレディ信号RDYを入力するRDY信号線41と、同期化回路30が出力する信号である信号REQoutを入力するREQout信号線42と、を介して同期化回路30と接続されており、バス70を介してプロセッサ20と接続されている。なお、信号RDYは、ROM50及びRAM60がデータや信号を受信する準備ができているときにアクティブ状態になり、準備ができていないときに非アクティブ状態になる。このROM50及びRAM60は、上述したバス70のアドレス信号とコントロール信号とによって読み出し又は書き込みが指示されているときには、信号REQoutがアクティブ状態になったときのタイミングで、データをバス70に出力したりバス70からデータを入力したりすることにより読み出し又は書き込みを行う。
【0017】
同期化回路30は、クロック信号CLK1で動作するROM50及びRAM60とクロック信号CLK2で動作するプロセッサ20との間で信号の同期化を行う装置であり、入力同期化回路31と、信号出力回路32と、マスク回路33と、アクノリッジ(ACK)回路34と、出力同期化回路35と、立ち上がり検出回路36と、を備えている。
【0018】
入力同期化回路31は、クロック信号CLK1が非アクティブ状態からアクティブ状態になったときの入力を保持するレジスタ31a,31bを備えた2段のシフトレジスタとして構成されており、入力した信号REQをクロック信号CLK1に同期化した信号REQinに変換して出力する。
【0019】
信号出力回路32は、信号REQinと信号RDYとマスク回路33が出力する信号MASKの否定(NOT)との論理積を信号REQoutとして出力する回路である。したがって、信号REQinがアクティブ状態であり、ROM50及びRAM60がデータを受信する準備ができており、信号MASKが非アクティブ状態であるときに信号REQoutはアクティブ状態になる。
【0020】
マスク回路33は、クロック信号CLK1で動作し、信号REQoutを入力して信号MASKを出力する回路である。このマスク回路33は、図2に示すように、信号REQoutが非アクティブ状態からアクティブ状態になった時刻の次にクロック信号CLK1が非アクティブ状態からアクティブ状態になった時刻をマスク開始時刻とし、このマスク開始時刻に信号MASKを立ち上げて非アクティブ状態からアクティブ状態にする。そして、マスク開始時刻からマスク継続時間Tm(本実施形態ではTm=3・T1)が経過するまで信号MASKのアクティブ状態を継続し、マスク継続時間Tmが経過すると信号MASKを立ち下げて非アクティブ状態にする。これにより、マスク開始時刻からマスク継続時間Tmが経過するまでの間は信号出力回路32の出力である信号REQoutを非アクティブ状態にする。
【0021】
ACK回路34は、クロック信号CLK1で動作し、信号REQoutを入力して信号ACKinを出力する回路である。このACK回路34は、図2に示すように、マスク開始時刻から周期T1が経過するまでの時間のみ信号ACKinをアクティブ状態にする。
【0022】
出力同期化回路35は、クロック信号CLK2が非アクティブ状態からアクティブ状態になったときの入力を保持するレジスタ35a,35bを備えた2段のシフトレジスタとして構成されており、入力した信号ACKinをクロック信号CLK2に同期化した信号ACKoutに変換して出力する。
【0023】
立ち上がり検出回路36は、クロック信号CLK2で動作し、信号ACKoutを入力して信号ACKを出力する回路である。この立ち上がり検出回路36は、図2に示すように、入力した信号ACKoutが非アクティブ状態から立ち上がりアクティブ状態になった時刻から周期T2が経過するまでの時間のみ信号ACKをアクティブ状態にする。
【0024】
次に、こうして構成された本実施形態のプロセッサシステム10の動作、特に、プロセッサ20がROM50及びRAM60とデータのやり取りを行うときの同期化回路30の動作について説明する。
【0025】
図2は、プロセッサ20がRAM60にデータの書き込みを連続して要求する場合における、クロック信号CLK2,信号REQ,信号ACK,信号ACKout,クロック信号CLK1,信号REQin,信号MASK,信号REQout,信号ACKinの状態を示すタイミングチャートの一例である。なお、本実施形態ではこれらの信号は全て正論理であり、値1がアクティブ状態,値0が非アクティブ状態を表している。
【0026】
プロセッサ20がRAM60にデータの書き込みをする場合には、バス70にRAM60を指定するアドレス信号と書き込みを指示するコントロール信号と書き込むデータであるデータ信号とを出力するとともに、クロック信号CLK2がアクティブ状態になる図2の時刻t0に信号REQを立ち上げる。すると、信号REQが非アクティブ状態からアクティブ状態になった時刻t1以降で2回目にクロック信号CLK1が立ち上がる時刻である時刻t3において、入力同期化回路31の出力である信号REQinが立ち上がる。そして、時刻t4において信号REQinはアクティブ状態になる。この時刻t4では、RAM60はデータや信号を受信する準備ができており、信号RDYが既にアクティブ状態になっているものとする。また、信号MASKは、信号REQoutがアクティブ状態に一度もなっていないときにはアクティブ状態になることはないため、時刻t4では非アクティブ状態になっている。
【0027】
時刻t4において信号REQinがアクティブ状態になると、信号MASKが非アクティブ状態であり、且つ、信号RDYがアクティブ状態であるため、信号出力回路32の出力である信号REQoutが立ち上がる。なお、RAM60がデータや信号を受信する準備ができていなければ、信号RDYがアクティブ状態になった時刻に信号REQoutが立ち上がることになる。
【0028】
信号REQoutが時刻t4で立ち上がり時刻t5でアクティブ状態になると、時刻t5におけるバス70のデータ信号線のデータがRAM60に書き込まれる。ここで、プロセッサ20は、時刻t0でバス70に出力したアドレス信号,コントロール信号,データ信号を出力し続けているため、プロセッサ20が書き込みを要求したデータがRAM60に書き込まれることになる。そして、マスク回路33は、信号REQoutが非アクティブ状態からアクティブ状態になった時刻t5の次にクロック信号CLK1が非アクティブ状態からアクティブ状態になった時刻である時刻t6をマスク開始時刻とし、出力する信号MASKを立ち上げる。また、ACK回路34は、マスク開始時刻である時刻t6において信号ACKinを立ち上げ、周期T1が経過するまでの間アクティブ状態にする。これにより、時刻t7において信号MASK及び信号ACKinがアクティブ状態になる。
【0029】
時刻t7で信号MASKがアクティブ状態になると、信号出力回路32の出力である信号REQoutが立ち下がり、時刻t8において非アクティブ状態になる。また、時刻t7で信号ACKinがアクティブ状態になると、時刻t7以降で2回目にクロック信号CLK2が立ち上がる時刻である時刻t10において、出力同期化回路35の出力である信号ACKoutが立ち上がり、時刻t11にアクティブ状態になる。
【0030】
時刻t11で信号ACKoutがアクティブ状態になると、立ち上がり検出回路36の出力である信号ACKが立ち上がり、時刻t12においてアクティブ状態になる。そして、時刻t11から周期T2が経過するまでの間はアクティブ状態になる。
【0031】
時刻t12で信号ACKがアクティブ状態になることで、プロセッサ20は時刻t0におけるRAM60への書き込み要求に基づく書き込みが行われたことを確認する。そして、時刻t12の次にクロック信号CLK2がアクティブ状態になる時刻である時刻t13において、プロセッサ20が連続して次の要求を行うときには信号REQを非アクティブ状態にせずアクティブ状態を維持する。プロセッサ20は、時刻t13における要求が先の要求と連続していないときには、信号REQは非アクティブ状態になっているので、時刻t0の場合と同じように信号REQを立ち上げる(図2の時刻t13における信号REQの破線を参照)が、先の要求と連続しているときには既に信号REQはアクティブ状態であるので、アクティブ状態を維持することで次の要求を行うのである。このようにするのは、信号ACKによって要求が行われたことを確認してから一度信号REQを立ち下げて非アクティブ状態にし、その後再び立ち上げて次の要求を行う場合に比べて、短い時間で次の要求を行うことができるためである。なお、もし連続した次の要求がない場合には、時刻t13においてプロセッサ20は信号REQを立ち下げて非アクティブ状態にする。
【0032】
図2は、時刻t13において連続して次の要求を行う場合について示しており、以下もこの場合について説明する。プロセッサが連続してRAM60にデータの書き込みを要求する場合には、時刻t13において信号REQのアクティブ状態を維持するとともに、時刻t0で信号REQを立ち上げたときと同様、RAM60を指定するアドレス信号と書き込みを指示するコントロール信号と書き込むデータであるデータ信号とをバス70に出力する。これにより、信号REQのアクティブ状態を継続して次の要求を行ったことに対応して、時刻t13以降で2回目にクロック信号CLK1が立ち上がる時刻である時刻t15では、入力同期化回路31の出力である信号REQinのアクティブ状態が継続する。ここで、時刻t15は、上述したマスク開始時刻である時刻t6からマスク継続時間Tmが経過した時刻である。そのため、マスク回路33が出力する信号MASKは、時刻t6から時刻t15までの間はアクティブ状態であるが、時刻t15において立ち下がり、時刻t16には非アクティブ状態になる。
【0033】
時刻t16で信号MASKが非アクティブ状態になると、信号REQinは既にアクティブ状態であるため、信号RDYがアクティブ状態であれば、信号出力回路32の出力である信号REQoutが立ち上がる。この時刻t16では、上述した時刻t4における場合と同様、RAM60がデータや信号を受信する準備ができており信号RDYが既にアクティブ状態であるものとする。このため、図2に示すように時刻t16で信号REQoutが立ち上がる。なお、時刻t16でRAM60がデータや信号を受信する準備ができていなければ、信号RDYがアクティブ状態になった時刻に信号REQoutが立ち上がる。
【0034】
時刻t16で信号REQoutが立ち上がり時刻t17でアクティブ状態になると、時刻t5の場合と同様に、時刻t17におけるバス70のデータ信号線のデータがRAM60に書き込まれる。そして、上述した時刻t6〜t8の場合と同様に、時刻t18がマスク開始時刻となって信号MASKが立ち上がるとともに信号ACKinが立ち上がり、信号MASKがアクティブ状態になった時刻t19で信号REQoutが立ち下がり、時刻t20で信号REQoutが非アクティブ状態になる。続いて、上述した時刻t10〜t13の場合と同様に、時刻t22において信号ACKoutが立ち上がって時刻t23にアクティブ状態になり、時刻t23において信号ACKが立ち上がって時刻t24にアクティブ状態になり、プロセッサ20は時刻t13における要求に基づく書き込みが行われたことを確認する。以降は同様に、連続した次の要求がなくなるまで時刻t13〜t24の処理を繰り返す。
【0035】
以上はRAM60にデータの書き込みを連続して行う場合として説明したが、ROM50又はRAM60からデータの読み出しを連続して行う場合や、読み出しと書き込みとを連続して行う場合も同様である。ただし、読み出しの場合は、プロセッサ20がデータをバス70に出力して書き込む代わりに、図2の時刻t4や時刻t16で信号REQoutが立ち上がりアクティブ状態になったときにROM50又はRAM60が指定されたデータをバス70に出力して、図2の時刻t11や時刻t22で信号ACKが立ち上がりアクティブ状態になったときにプロセッサ20がバス70のデータを入力する点は異なる。プロセッサ20は、上述した読み出し又は書き込みの要求を繰り返し行うことで、ROM50から読み出したプログラムにしたがってRAM60に記憶された印刷対象の画像データを読み出し、読み出した画像データから印刷イメージデータを生成してRAM60に記憶する処理を行い、その印刷イメージデータを図示しない印刷処理装置が印刷するよう制御する。
【0036】
このように、同期化回路30では、マスク開始時刻からマスク継続時間Tm経過までの間は信号REQoutを非アクティブ状態にしておく。これにより、プロセッサ20が前の要求から連続して次の要求を行って信号REQのアクティブ状態が継続しており前の要求と次の要求との区別がつかない場合でも、RAM60に出力する信号REQoutは時刻t16で非アクティブ状態から立ち上がって時刻t17でアクティブ状態になるため、ROM50やRAM60は前の要求と次の要求とを区別できる。
【0037】
ここで、マスク継続時間Tmの設定方法について説明する。マスク継続時間Tmは、マスク開始時刻から、プロセッサ20が信号ACKの立ち上がりによって要求が相手側に送られたことを確認し信号REQのアクティブ状態を維持することで連続して次の要求をした場合に、維持された信号REQのアクティブ状態を入力同期化回路31がプロセッサ20から入力して第1クロック信号CLK1に同期した信号REQinに変換することが可能な時刻までの時間(図2では時刻t6〜t15)である仮継続時間Tの取り得る値の最大値として設定されている。この仮継続時間Tは、クロック信号CLK1とクロック信号CLK2とのタイミングずれXや、周期T1,T2の値によって異なる。マスク継続時間Tmを設定するための仮継続時間Tを、タイミングずれX,周期T1,T2から導出する式を式(1)に示す。ここで、タイミングずれXとは、信号ACKinの立ち上がり時刻から、信号ACKinの立ち上がり時刻以降で最初にレジスタ35aが信号ACKinのアクティブ状態を保持するまでの時間であり、図2では時刻t6〜t9までの時間である。本実施形態では周期T2が周期T1の1/2の値であるため、式(1)を用いるとタイミングずれXの値に関わらず仮継続時間Tは周期T1の3倍の値となる。したがって、本実施形態ではマスク継続時間Tmを周期T1の3倍の値としている。また、例えば、周期T2が周期T1の2/3の値である場合には、式(1)を用いるとタイミングずれXの値によって仮継続時間TはT1の3倍の値又は4倍の値となる。このような場合は、仮継続時間Tの取り得る最大値であるT1の4倍の値をマスク継続時間Tmとする。もし、仮継続時間Tの取り得る最大値未満の値にマスク継続時間Tmを設定すると、プロセッサ20からの次の要求に対応して信号REQinがアクティブ状態を継続する最初の時刻よりも早く信号MASKが非アクティブ状態になることが起こりうるため、前の要求による信号REQのアクティブ状態に対応する信号REQinのアクティブ状態によって信号REQoutがアクティブ状態になってしまい、ROM50やRAM60に誤った要求を行ってしまうことになる。なお、式(1)において、X+2・T2は、マスク開始時刻からプロセッサ20が連続して次の要求を行う時刻までの時間(図2では時刻t6〜t13)を表しており、[(int[(X+2・T2)/T1]+1]・T1は、マスク開始時刻からプロセッサ20が連続して次の要求を行った場合にその要求による信号REQの継続したアクティブ状態を最初にレジスタ31aが保持するまでの時間(図2では時刻t6〜t14)を表している。
【0038】
T=[(int[(X+2・T2)/T1]+1]・T1+T1 (1)
※0≦X≦T2、int(A)はAの小数点以下を切り捨てた値を意味する
【0039】
以上詳述した本実施形態では、マスク開始時刻までは信号REQinをそのまま信号REQoutとしてROM50やRAM60に出力し、マスク開始時刻以降は信号REQoutをマスクして非アクティブ状態にしてROM50やRAM60に出力する。そして、マスク開始時刻からマスク継続時間Tmが経過するまでは、信号REQoutをマスクして非アクティブ状態にしてROM50やRAM60に出力し続け、マスク継続時間Tmが経過したあとは、信号REQinをそのまま信号REQoutとしてROM50やRAM60に出力する。これにより、プロセッサ20が前の要求から連続して次の要求を行って信号REQがアクティブ状態を継続しており前の要求と次の要求との区別がつかない場合でも、マスク開始時刻からマスク継続時間Tmが経過するまでは信号REQoutが非アクティブ状態になり、マスク継続時間Tmが経過したあとは信号REQoutが非アクティブ状態からアクティブ状態になるため、ROM50やRAM60は前の要求と次の要求とを区別できる。
【0040】
また、マスク継続時間Tmは、上述した仮継続時間Tの取り得る値の最大値として設定されているため、次の要求がくる前にマスク継続時間Tmが経過してしまうことがなく、ROM50やRAM60がプロセッサ20からの要求を誤検出するのを防止できる。
【0041】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【0042】
例えば、上述した実施形態では、周期T2は周期T1の1/2の値としたが、周期T1,T2は値が異なっていればどのような値でもよい。例えば、周期T2が周期T1より長い時間としてもよい。周期T1,T2がどのような値であっても、式(1)で導出される仮継続時間Tからマスク継続時間Tmを設定することができる。
【0043】
上述した実施形態では、信号ACKがアクティブ状態になった時刻の次にクロック信号CLK2がアクティブ状態になる時刻(t13)において、プロセッサ20が信号REQを非アクティブ状態にする処理と連続して次の要求を行うため信号REQのアクティブ状態を維持する処理とのいずれかを行うものとしたが、信号ACKがアクティブ状態になった時刻以降であれば、このいずれかの処理を行う時刻は適宜決定すればよい。例えば、信号ACKがアクティブ状態になった時刻から2回目にクロック信号CLK2がアクティブ状態になる時刻において、プロセッサ20が信号REQを非アクティブ状態にする処理と連続して次の要求を行うため信号REQのアクティブ状態を維持する処理とのいずれかを行うものとしてもよい。
【0044】
上述した実施形態では、マスク回路33は、信号REQoutが非アクティブ状態からアクティブ状態になった時刻の次にクロック信号CLK1が非アクティブ状態からアクティブ状態になった時刻をマスク開始時刻としているが、信号REQoutが非アクティブ状態からアクティブ状態になった時刻のあとであれば、どの時刻をマスク開始時刻としてもよい。
【0045】
上述した実施形態では、ACK回路35は、マスク開始時刻に信号ACKinを立ち上げ、周期T1が経過するまでの時間のみ信号ACKinを継続してアクティブ状態にするものとしているが、信号REQoutが非アクティブ状態からアクティブ状態になった時刻のあとであれば、どの時刻にACKinを立ち上げるものとしてもよい。また、アクティブ状態を継続する時間も周期T1に限らず、プロセッサ20が信号ACKinがアクティブ状態になったことを検出できればどのような時間としてもよい。但し、信号REQoutがアクティブ状態になった時刻以降のなるべく早い時刻にACKinを立ち上げることが、プロセッサ20に要求に基づく書き込みや読み出しが行われたことを早く通知できプロセッサ20が早く次の要求を行うことができるという点で好ましい。
【0046】
上述した実施形態では、マスク継続時間Tmは仮継続時間Tの取り得る値の最大値として設定しているが、仮継続時間T以上の値であれば、どのような値としてもよい。但し、マスク継続時間Tmが長いほど、連続した次の要求によって信号REQoutが立ち上がる時刻が遅くなるため、マスク継続時間Tmはなるべく短い時間とするのが、連続した次の要求による読み出しや書き込みを早くROM50やRAM60が行えるという点で好ましい。
【0047】
上述した実施形態では、プロセッサシステム10は、プロセッサ20と同期化回路30とを1つずつ備えた構成としたが、複数のプロセッサを備えた構成としてもよい。その場合、複数の同期化回路がプロセッサ毎に接続される構成としてもよいし、1つの同期化回路が複数のプロセッサと接続される構成としてもよい。
【0048】
上述した実施形態では、プロセッサ20はROM50及びRAM60とデータのやり取りを行うものとしたが、他のプロセッサや、外部に接続された機器とデータのやり取りを行う入出力ポートや、バスの使用許可を調停するバスコントローラなど、どのようなデバイスとデータのやり取りを行うものとしてもよい。
【0049】
最後に、本発明の実施形態ではない参考例のプロセッサシステム10aについて、図3及び図4を用いて説明する。このプロセッサシステム10aでも、前の要求と連続する次の要求とを区別することができる。なお、参考例のプロセッサシステム10aの構成要素のうち、プロセッサシステム10と同じものについては同じ符号を用いて説明する。
【0050】
図3は、プロセッサシステム10aの構成の概略を示す構成図である。図3に示すように、プロセッサシステム10aの同期化回路30aは、同期化回路30と異なり、マスク回路33を備えていない。また、信号出力回路32の代わりに、信号REQinと信号RDYとの論理積を信号REQoutとして出力する信号出力回路32aを備えている。それ以外は同期化回路30と同じ構成である。また、プロセッサシステム10aのプロセッサ20aは、プロセッサ20と異なり、信号REQをそのまま出力するのではなく、信号REQに後述するマスク処理を行った信号である信号REQ2を出力する。それ以外はプロセッサ20と同じである。
【0051】
このプロセッサシステム10aにおいて、図2と同様にプロセッサ20aがRAM60にデータの書き込みを連続して要求する場合における各信号の状態を示すタイミングチャートの一例を図4に示す。なお、図4では図2と同じ時刻については同じ符号を用いて説明する。
【0052】
図4に示すように、時刻t0〜t11までの間は信号REQ2は信号REQと同じ状態が出力され、信号ACK,信号ACKout,信号REQin,REQout,ACKinは図2と同様の状態となるため説明を省略する。そして、図2と同様に時刻t11で立ち上がり検出回路36の出力である信号ACKが立ち上がって時刻t12でアクティブ状態になると、信号REQ2を非アクティブ状態にするマスク処理を行う。これにより、信号REQ2は時刻t12aで立ち下がる。このマスク処理は信号ACKがアクティブ状態になった時刻t12から3回目のクロック信号CLK2の立ち上がり時刻である時刻t14aまで行われる。このマスク処理により、図2の場合は時刻t13で連続して次の要求が行われてアクティブ状態を維持している信号REQを入力同期化回路31が入力するため時刻t15における信号REQinはアクティブ状態のままであったが、図4の場合は信号REQ2は非アクティブ状態になっているため時刻t15において信号REQinが立ち下がって時刻t16で非アクティブ状態になる。これにより図4では信号REQoutが時刻t16で立ち下がって時刻t17に非アクティブ状態になる。そして、図4では時刻t14aでマスク処理が終了して信号REQ2は立ち上がるため、時刻t19で信号REQoutが立ち上がり時刻t20にアクティブ状態になる。これによりプロセッサ20aが要求した書き込みが行われる。
【0053】
以上説明したように、信号ACKがアクティブ状態になったときにプロセッサ20aが出力する信号REQ2を立ち下げて非アクティブ状態にすることで、前の要求と次の要求とを区別できる。ただし、図2で説明したプロセッサシステム10では時刻t16で信号REQoutが立ち上がって次の要求をROM50やRAM60に出力するが、この参考例のプロセッサシステム10aでは、時刻t19で信号REQoutが立ち上がっており、次の要求した処理が行われるまでに周期T1分長い時間を要する。したがって、本発明の実施形態であるプロセッサシステム10の方がより短い時間で次の要求した処理を行うことができる。なお、この参考例における、信号ACKinの立ち上がり時刻から、プロセッサ20aが信号ACKの立ち上がりによって要求が相手側に送られたことを確認し連続して次の要求をした場合に次の要求に対応して信号REQinがアクティブ状態になる時刻までの時間Ta(図4では時刻t6〜t19)をタイミングずれX,周期T1,T2から導出する式は式(2)のようになる。この式(2)で表される時間Taは、周期T1,T2やタイミングずれXがどのような値を取ったとしても、式(1)で表される仮継続時間Tより小さい値になることはない。したがって、本実施形態のプロセッサ20では、タイミングずれX,周期T1,T2に関わらずプロセッサ20a以下の時間で次の要求した処理を行うことができる。なお、式(2)における時間tは、マスク処理を行う時間(図4の時刻t12〜t14a)を表している。
【0054】
Ta=[(int[(X+T2+t)/T1]+1]・T1+T1 (2)
※t=[int(T1/T2)+1]T2
【図面の簡単な説明】
【0055】
【図1】本実施形態であるプロセッサシステム10の構成の概略を示す構成図。
【図2】本実施形態における各信号の状態を示すタイミングチャートの一例。
【図3】参考例のプロセッサシステム10aの構成の概略を示す構成図。
【図4】参考例における各信号の状態を示すタイミングチャートの一例。
【図5】同期化回路100の構成図及び各信号の状態を示す説明図。
【符号の説明】
【0056】
10,10a プロセッサシステム、20,20a プロセッサ、21 REQ信号線、22 ACK信号線、30,30a 同期化回路、31 入力同期化回路、31a,31b レジスタ、32,32a 信号出力回路、33 マスク回路、34 ACK回路、35 出力同期化回路、35a,35b レジスタ、41 RDY信号線、42 REQout信号線、50 ROM、60 RAM、70 バス。

【特許請求の範囲】
【請求項1】
第1クロック信号に同期して動作するデバイスと、前記第1クロック信号とは異なる周期の第2クロック信号に同期して動作し、前記デバイスとのデータ通信を要求する場合にはリクエスト信号を非アクティブ状態からアクティブ状態にし、その後前記リクエスト信号に対するアクノリッジ信号を検出した後に連続して次の要求をする場合には前記リクエスト信号をアクティブ状態に維持し、連続して次の要求をしない場合には前記リクエスト信号を非アクティブ状態にするプロセッサと、の間で信号の同期化を行う信号同期化方法であって、
(a)前記プロセッサにより入力された前記リクエスト信号を前記第1クロック信号に同期した同期化リクエスト信号に変換するステップと、
(b)前記同期化リクエスト信号を前記デバイスに出力するにあたり、該出力する同期化リクエスト信号が非アクティブ状態からアクティブ状態になり且つ前記デバイスが前記同期化リクエスト信号を受信可能になったあと前記第1クロック信号が非アクティブ状態からアクティブ状態になる時刻をマスク開始時刻とし、該マスク開始時刻までは前記同期化リクエスト信号をマスクせずに前記デバイスに出力し、該マスク開始時刻以降は該同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力するステップと、
(c)前記アクノリッジ信号を入力した前記プロセッサが前記リクエスト信号をアクティブ状態に維持して次の要求をしたとき、該維持されたリクエスト信号のアクティブ状態を前記プロセッサから入力して前記第1クロック信号に同期した同期化リクエスト信号に変換するステップと、
(d)前記マスク開始時刻から所定のマスク継続時間が経過するまでは、前記同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力し、前記マスク開始時刻から前記マスク継続時間が経過したあとは、前記同期化リクエスト信号をマスクせずに前記デバイスに出力するステップと、
を含み、
前記マスク継続時間は、前記マスク開始時刻から、前記ステップ(c)で前記維持されたリクエスト信号のアクティブ状態を同期化リクエスト信号に変換することが前記第1クロック信号と前記第2クロック信号とのタイミングずれに関わらず可能な時刻まで、の時間以上の時間に設定されている、
信号同期化方法。
【請求項2】
前記マスク継続時間は、前記マスク開始時刻から、前記ステップ(c)で前記維持されたリクエスト信号のアクティブ状態を同期化リクエスト信号に変換することが前記第1クロック信号と前記第2クロック信号とのタイミングずれに関わらず可能な時刻まで、の時間に設定されている、
請求項1に記載の信号同期化方法。
【請求項3】
前記第1クロック信号は、前記第2クロック信号より周期が長いクロック信号である、
請求項1又は2に記載の信号同期化方法。
【請求項4】
第1クロック信号に同期して動作するデバイスと、前記第1クロック信号とは異なる周期の第2クロック信号に同期して動作し、前記デバイスとのデータ通信を要求する場合にはリクエスト信号を非アクティブ状態からアクティブ状態にし、その後前記リクエスト信号に対するアクノリッジ信号を検出した後に連続して次の要求をする場合には前記リクエスト信号をアクティブ状態に維持し、連続して次の要求をしない場合には前記リクエスト信号を非アクティブ状態にするプロセッサと、の間で信号の同期化を行う信号同期化回路であって、
前記プロセッサにより入力された前記リクエスト信号を前記第1クロック信号に同期した同期化リクエスト信号に変換する同期化手段と、
前記同期化リクエスト信号を前記デバイスに出力するにあたり、該出力する同期化リクエスト信号が非アクティブ状態からアクティブ状態になり且つ前記デバイスが前記同期化リクエスト信号を受信可能になったあと前記第1クロック信号が非アクティブ状態からアクティブ状態になる時刻をマスク開始時刻とし、該マスク開始時刻までは前記同期化リクエスト信号をマスクせずに前記デバイスに出力し、該マスク開始時刻以降は該同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力する信号出力手段と、
を備え、
前記信号出力手段は、前記マスク開始時刻から所定のマスク継続時間が経過するまでは、前記同期化リクエスト信号をマスクすることにより非アクティブ状態にして前記デバイスに出力し、前記マスク開始時刻から前記マスク継続時間が経過したあとは、前記同期化リクエスト信号をマスクせずに前記デバイスに出力する手段であり、
前記マスク継続時間は、前記マスク開始時刻から、前記アクノリッジ信号を入力した前記プロセッサが前記リクエスト信号をアクティブ状態に維持して次の要求をしたときの該維持されたリクエスト信号のアクティブ状態を前記プロセッサから入力して前記第1クロック信号に同期した同期化リクエスト信号に前記同期化手段が変換することが前記第1クロック信号と前記第2クロック信号とのタイミングずれに関わらず可能な時刻まで、の時間以上の時間に設定されている、
信号同期化回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate