説明

出力制御回路、出力制御回路の制御方法及びその制御プログラム

【課題】順序整合データを、複数のFIFO回路で処理することができる出力制御回路、出力制御回路の制御方法及びその制御プログラムを提供すること
【解決手段】本発明にかかる出力制御回路100は、順序整合データと非順序整合データとの2種類からなるデータのうち、順序整合データが入力された場合、順序整合データを識別する識別情報を生成するデータ解析部101と、互いに異なる順序整合データが割り振られる第1のFIFO回路102及び第2のFIFO回路103と、入力されたデータが順序整合データである場合、前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する制御部104を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は出力制御回路、出力制御回路の制御方法及びその制御プログラムに関する。
【背景技術】
【0002】
入力されたデータを入力された順番に出力する、FIFO(First In, First Out)回路については、様々な技術が提案されている。例えば、特許文献1では、小さい回路規模において、複数系統のデータに対して適切にFIFO機能を提供できるデータ記憶装置の技術が開示されている。特許文献2では、複数のFIFO回路においてデータ処理の順序を指定したい場合、同期コマンドを特定のFIFO回路に送出することで、処理順序指定動作を実現する技術が開示されている。
【0003】
また、特許文献3では、要求FIFO回路と応答FIFO回路間において発生するデッドロックの可能性を検出し、回避する技術が開示されている。特許文献4では、FIFOデータ経路をインタロックする技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−209811号公報
【特許文献2】特開平06−162206号公報
【特許文献3】特開平08−249295号公報
【特許文献4】特開平11−003206号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1〜4では、データが入力されて出力される場合、そのデータの前に入力された他のデータよりも後に出力され、そのデータの後に入力された他のデータよりも前に出力される必要がある所定のデータ(以下、順序整合データとする)を、複数のFIFO回路を用いて処理する技術は開示されていない。
【0006】
本発明は、このような問題点を解決するためになされたものであり、順序整合データを複数のFIFO回路で処理することができる出力制御回路、出力制御回路の制御方法及びその制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明にかかる出力制御回路は、順序整合データと非順序整合データとの2種類からなるデータのうち、順序整合データが入力された場合、順序整合データを識別する識別情報を生成するデータ解析部と、互いに異なる順序整合データが割り振られる第1及び第2のFIFO回路と、入力されたデータが順序整合データである場合、前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する制御部を備える。
【0008】
本発明にかかる出力制御回路の制御方法は、入力されたデータが順序整合データか非順序整合データかを検出する第1のステップと、入力されたデータが順序整合データである場合、順序整合データを識別する識別情報を生成し、互いに異なる順序整合データを第1及び第2のFIFO回路に割り振る第2のステップと、前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する第3のステップを備える。
【0009】
また、本発明にかかる出力制御回路の制御プログラムは、入力されたデータが順序整合データか非順序整合データかを検出する第1の処理と、入力されたデータが順序整合データである場合、順序整合データを識別する識別情報を生成し、互いに異なる順序整合データを第1及び第2のFIFO回路に割り振る第2の処理と、前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する第3の処理を出力制御回路に実行させる。
【発明の効果】
【0010】
本発明により、順序整合データを、複数のFIFO回路で処理することができる出力制御回路、出力制御回路の制御方法及びその制御プログラムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】実施の形態1にかかる、出力制御回路の全体構成例を示すブロック図である。
【図2】実施の形態1にかかる、順序整合データ及び非順序整合データの出力制御例を示す図である。
【図3】実施の形態2にかかる、出力制御回路の全体構成例を示すブロック図である。
【図4】実施の形態2にかかる、FIFO回路制御部の全体構成例を示すブロック図である。
【図5】実施の形態2にかかる、FIFO出力順序制御部の全体構成例を示すブロック図である。
【図6】実施の形態2にかかる、データ入力時の各FIFO回路の第1の状態例を示す図である。
【図7】実施の形態2にかかる、データ入力時の各FIFO回路の第2の状態例を示す図である。
【図8】実施の形態2にかかる、データ入力時の各FIFO回路の第3の状態例を示す図である。
【図9】実施の形態2にかかる、データ入力時の各FIFO回路の第4の状態例を示す図である。
【図10】実施の形態2にかかる、複数のFIFO回路のデータ入力に係る動作タイミングの例を示す図である。
【図11】実施の形態2にかかる、データ出力時の各FIFO回路の第1の状態例を示す図である。
【図12】実施の形態2にかかる、データ出力時の各FIFO回路の第2の状態例を示す図である。
【図13】実施の形態2にかかる、データ出力時の各FIFO回路の第3の状態例を示す図である。
【図14】実施の形態2にかかる、データ出力時の各FIFO回路の第4の状態例を示す図である。
【図15】実施の形態2にかかる、データ出力時の各FIFO回路の第5の状態例を示す図である。
【図16】実施の形態2にかかる、データ出力時の各FIFO回路の第6の状態例を示す図である。
【図17】実施の形態2にかかる、FIFO回路Aのデータ出力に係る動作タイミングの例を示す図である。
【図18】実施の形態2にかかる、FIFO回路Bのデータ出力に係る動作タイミングの例を示す図である。
【図19】実施の形態3にかかる、出力制御回路の全体構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
実施の形態1
以下、図面を参照して本発明の実施の形態1について説明する。図1は、出力制御回路100の全体構成例を示すブロック図である。出力制御回路100は、データ解析部101、FIFO回路102(第1のFIFO回路)、FIFO回路103(第2のFIFO回路)、制御部104を備える。出力制御回路100は、データの取得及び出力が可能であるほか、FIFO回路102、103によって、入力データを保存することが可能である。
【0013】
出力制御回路100は、コンピュータに搭載され、コンピュータ内の他の回路からデータを取得する。出力制御回路100は取得したデータを一時的に保存した後、適切な順序でコンピュータ内の他の回路に出力する。
【0014】
データ解析部101は、出力制御回路100への入力データが、前述の順序整合データであるか否かを検出する。入力データが順序整合データである場合は、データ解析部101は制御部104に、入力データが順序整合データであることを示す識別情報を出力する。この識別情報は、入力データにおいて、どのデータからどのデータまでが順序整合データであるかが、識別可能な情報であればよい。例えば、順序整合データの最初のデータと最後のデータが入力された場合のみ、データ解析部101は制御部104に識別情報を出力するようにしてもよい。あるいは、順序整合データ中の全てのデータにおいて、データ解析部101は制御部104に識別情報を出力してもよい。なお、データ解析部101は、具体的にはCPU等のプロセッサを備える。
【0015】
複数データからなる前述の「順序整合データ」は、出力制御回路100がデータを出力する場合、順序整合データ同士であれば、入力順に出力される必要はない。しかし、データ出力の場合、順序整合データと非順序整合データとの混合が起きることは許されない。このデータ入力及び出力の場合の、順序整合データと非順序整合データの処理に関しては後述する。なお、順序整合データは、例えばシステムを設定するためのデータであり、システムの設定前に入力されるデータが、設定後に入力されるデータよりも前の順序で出力される必要があるようなデータである。
【0016】
FIFO回路102、103は、出力制御回路100への入力データを取得し、それぞれは取得した入力データを入力順に出力する。制御部104の制御により、FIFO回路102、103には互いに異なる順序整合データが割り振られる。なお、FIFO回路102、103は、具体的にはRAM等のメモリを備える。
【0017】
制御部104は、FIFO回路102、103のデータ入力及び出力を制御する。FIFO回路102、103のデータ入力については、前述の通り、FIFO回路102、103には互いに異なる順序整合データが割り振られるように、制御部104は制御情報をFIFO回路102、103に出力する。また、FIFO回路102、103のデータ出力については、所定のタイミングでFIFO回路102、103が入力データを出力するように、制御部104は制御情報をFIFO回路102、103に出力する。なお、制御部104は、具体的にはCPU等のプロセッサを備える。
【0018】
図2を用いて、入力データを出力する場合の、順序整合データと非順序整合データの出力制御例に関して説明する。図2での「入力データ」の図において、データA〜Eから構成されるデータは、順序整合データである。データ1〜4、5〜8から構成されるデータは、非順序整合データである。また、データ1〜4は順序整合データの前に入力された第1の非順序整合データであり、データ5〜8は順序整合データの後に入力された第2の非順序整合データである。データA〜E、1〜8は、順序整合データ及び非順序整合データの1単位のデータを示している。データ1〜8の非順序整合データは、入力時と同じ順序で出力される必要はない。なお、図2のデータ入力及び出力を示す図においては、左のデータほど、先に入力または出力されることを示している。
【0019】
図2の入力時においては、第1の非順序整合データが先に出力制御回路100に入力される。次に、順序整合データが入力され、その後に第2の非順序整合データが入力される。データ入力がこの順序である場合、出力制御回路100は例えば「データ出力順序1」に示された順序で、入力データを出力することができる。「データ出力順序1」に示された順序では、順序整合データは、データA〜Eにおける順序は入力時と異なっているものの、非順序整合データとの混合は起こらずに、データA〜Eがひと固まりとして出力されるからである。つまり、順序整合データは、順序整合データよりも前に入力された第1の非順序整合データよりも後に出力され、順序整合データよりも後に入力された第2の非順序整合データよりも前に出力される。
【0020】
しかし、出力制御回路100は「データ出力順序2」に示された順序で、入力データを出力することはできない。「データ出力順序2」に示された順序では、順序整合データであるデータA〜Eは、A〜Eのひと固まりではなく、非順序整合データ(図2の例ではデータ2及び6)と混合して出力されるからである。つまり、順序整合データは、順序整合データよりも前に入力された第1の非順序整合データよりも後に出力され、順序整合データよりも後に入力された第2の非順序整合データよりも前に出力されるようにはなっていない。
【0021】
以上のように、出力制御回路100がデータを出力する場合、順序整合データ内におけるデータの順番の入れ替えは起こっていてもよいが、順序整合データと非順序整合データとの混合が起きることは許されない。なお、順序整合データは、この性質を満たすデータであれば、いかなる種類のデータでもよい。
【0022】
なお、FIFO回路102、103には、前述の通り、制御部104の制御により異なる順序整合データが入力される。例えば図2においては、FIFO回路102にはデータA、C、Eが入力され、FIFO回路103にはデータB、Dが入力される。非順序整合データであるデータ1〜8も、FIFO回路102、103には異なるデータが入力される。
【0023】
また、データ解析部101は、図2での「入力データ」において、データA〜Eが順序整合データであることを示す識別情報を、制御部104に出力する。例えば、データ解析部101はデータA、Eを取得した場合、制御部104に識別情報を出力することで、データA〜Eが順序整合データであることを制御部104に伝達する。つまり、この識別情報は、順序整合データの最初と最後のデータを示している。あるいは、データ解析部101はデータA〜Eのそれぞれを取得した場合、制御部104に識別情報を出力することで、データA〜Eが順序整合データであることを制御部104に伝達してもよい。
【0024】
以下、出力制御回路100への入力データが順序整合データである場合の、出力制御回路100の処理について説明する。まず、データ解析部101は、出力制御回路100への入力データが、順序整合データであるか否かを検出する。これを第1のステップとする。入力データが順序整合データである場合、データ解析部101は順序整合データを識別する識別情報を生成し、制御部104に出力する。また、制御部104は、互いに異なる順序整合データをFIFO回路102、103に割り振る。これを第2のステップとする。制御部104は、FIFO回路102、103が順序整合データを出力する場合、前記識別情報に基づいて以下のように制御する。即ち、前記識別情報に基づいて、FIFO回路102、103が併せて出力する順序整合データが、順序整合データよりも前に入力された第1の非順序整合データよりも後に出力され、順序整合データよりも後に入力された第2の非順序整合データよりも前に出力されるように制御する。これを第3のステップとする。
【0025】
以上の構成により、順序整合データを、複数のFIFO回路で処理することが可能な出力制御回路、出力制御回路の制御方法及びその制御プログラムを提供することができる。
【0026】
実施の形態2
以下、図面を参照して本発明の実施の形態2について説明する。なお、実施の形態1と同様の説明については、適宜省略する。まず、図3のブロック図を用いて、本実施の形態における出力制御回路200の全体構成例を説明する。出力制御回路200は、データ解析部201、FIFO回路A202、FIFO回路B203、FIFO回路制御部210を備える。図3のデータ解析部201、FIFO回路A202、FIFO回路B203、FIFO回路制御部210は、実施の形態1におけるデータ解析部101、FIFO回路102、FIFO回路103、制御部104に相当する。また、FIFO回路A202、FIFO回路B203は並列に接続される。
【0027】
出力制御回路200は、外部からのデータの取得及びデータの出力が可能であるほか、FIFO回路A202、B203によって、入力データを保存することが可能である。
【0028】
データ解析部201は、外部からの出力制御回路200への入力データRDを取得した場合、当該入力データRDをFIFO回路A202、B203のいずれにより処理するかを決定し、決定内容を選択信号としてFIFO回路制御部210に出力する。FIFO回路A202にデータを入力すると決定した場合、その情報を示す選択信号S_Aを有効にして、FIFO回路制御部210に出力する。FIFO回路B203にデータを入力すると決定した場合、その情報を示す選択信号S_Bを有効にして、FIFO回路制御部210に出力する。なお、データ解析部201におけるFIFO回路の決定については、データが来る毎に入力先のFIFO回路を交替して決めてもよいし、各FIFO回路の処理速度等に応じて決めてもよい。
【0029】
データ解析部201は、入力データRDを取得した場合、選択信号S_Aか選択信号S_Bのいずれかを出力する。換言すると、同時に選択信号S_A及び選択信号S_Bの両方が出力されること、又は、両方が同時に出力されない、ということはない。これは、同じ入力データRDをFIFO回路A202、B203が両方で処理すること、又はFIFO回路A202、B203のどちらも処理しない入力データRDが発生することを防ぐためである。
【0030】
また、データ解析部201は、入力データRDを解析し、入力データRDが順序整合データであるか否かを検出する。入力データRDが順序整合データである場合、データ解析部201はFIFO回路制御部210に、入力データRDが順序整合データであることを示す順序整合信号OEを有効にして出力する。この順序整合信号OEは、実施の形態1の識別情報に相当する。順序整合信号OEは、順序整合データの最初のデータと、最後のデータが入力された場合、FIFO回路制御部210に出力される。順序整合信号OEを取得することで、FIFO回路制御部210は、入力データRDにおいてどのデータからどのデータまでが順序整合データであるかを識別することができる。順序整合データの説明については、実施の形態1と同様であるため、説明を省略する。
【0031】
ここでデータ解析部201は、入力データRDが順序整合データであることを検知した際、FIFO回路A202、B203に、互いに異なる順序整合データが割り振られるように制御する。例えば、データ解析部201は、順序整合データを交互にFIFO回路A202、B203に割り振るため、選択信号S_A、S_Bを、順序整合データを受信する毎に交互に出力してもよい。また、FIFO回路A202、B203の処理速度等に応じて、順序整合データを割り振ってもよい。ただし、データ解析部201は、順序整合データがFIFO回路A202、B203の片方のみに割り振られるように制御することは許されない。
【0032】
FIFO回路A202は、外部からの入力データRDを取得し、取得したデータを入力順に出力する。また、FIFO回路A202はFIFO回路制御部210が出力した入力有効信号WE_A、入力アドレス信号WP_A、出力アドレス信号RP_Aを取得する。
【0033】
入力有効信号WE_Aは、入力データRDがFIFO回路A202において入力及び出力の処理がされるデータであることをFIFO回路制御部210が決定した場合、FIFO回路制御部210がFIFO回路A202に対して出力する信号である。FIFO回路A202は、入力データRDを入力有効信号WE_Aと同時に取得した場合のみ、入力データRDが有効であると判定し、内部のアドレスへ入力データRDを入力する。一方、入力データRDを取得したが入力有効信号WE_Aを取得しない場合、FIFO回路A202はその入力データRDは有効でないとみなし、FIFO回路A202内部のアドレスへは入力しない。
【0034】
入力アドレス信号WP_Aは、FIFO回路制御部210が入力有効信号WE_Aと同時にFIFO回路A202に出力する信号であり、FIFO回路A202内部において入力データRDを保存するアドレスの情報が含まれている。FIFO回路A202は入力アドレス信号WP_Aに基づき、入力データRDを所定のアドレスに入力する。
【0035】
出力アドレス信号RP_Aは、FIFO回路制御部210がFIFO回路A202の出力順序を制御する信号であり、FIFO回路A202の特定のアドレスに入力されるデータを出力する命令である。FIFO回路A202は出力アドレス信号RP_Aに示されたアドレスに入力されているデータを、出力データとして外部に出力する。図2では、FIFO回路A202が出力するデータの信号は出力データTD_Aとして表記される。
【0036】
FIFO回路B203は、外部からの入力データRDを取得し、取得したデータを入力順に出力する。また、FIFO回路B203はFIFO回路制御部210が出力した入力有効信号WE_B、入力アドレス信号WP_B、出力アドレス信号RP_Bを取得する。この入力有効信号WE_B、入力アドレス信号WP_B、出力アドレス信号RP_Bについての説明、各信号を取得した場合のFIFO回路B203の処理については、前述のFIFO回路A202における入力有効信号WE_A、入力アドレス信号WP_A、出力アドレス信号RP_Aについての説明と同様であるため、説明を省略する。出力データTD_Bについても、前述のFIFO回路A202における出力データTD_Aと同様であるため、説明を省略する。
【0037】
FIFO回路制御部210は、データ解析部201が出力する順序整合信号OE、選択信号S_A、選択信号S_B及び外部からの入力データ有効信号RVに基づき、FIFO回路A202、B203のデータ入力順序を制御する。入力データ有効信号RVは、出力制御回路200への入力データRDが有効なものである場合、外部から出力される。FIFO回路制御部210は、入力データRDを入力データ有効信号RVと同時に取得した場合のみ、入力データRDを有効と判定し、FIFO回路A202又はFIFO回路B203により処理させる。
【0038】
例えば、FIFO回路制御部210が入力データ有効信号RVを取得し、かつ選択信号S_Aを取得した場合、FIFO回路A202に対して、入力有効信号WE_A及び入力アドレス信号WP_Aを出力する。FIFO回路A202は、取得した入力有効信号WE_A及び入力アドレス信号WP_Aに応じて、入力データRDを前述の通り処理する。一方、FIFO回路制御部210が入力データ有効信号RVを取得し、かつ選択信号S_Bを取得した場合、FIFO回路B203に対して、入力有効信号WE_B及び入力アドレス信号WP_Bを出力する。FIFO回路B203は、取得した入力有効信号WE_B及び入力アドレス信号WP_Bに応じて、入力データRDを前述通り処理する。
【0039】
FIFO回路制御部210は、入力データRDを取得したが、同時に入力データ有効信号RVを取得していない場合、取得した入力データRDは有効でないとみなす。その場合、FIFO回路制御部210は、入力データRDのFIFO回路A202又はFIFO回路B203による処理をさせない。
【0040】
また、FIFO回路制御部210は、外部から出力される出力要求信号TR_A、出力要求信号TR_Bに基づき、FIFO回路A202、B203のデータ出力順序を制御する。出力要求信号TR_Aは、外部からの要求信号であり、FIFO回路A202が外部に対してデータを出力するように要求するものである。出力要求信号TR_Bも同様である。FIFO回路制御部210は、出力要求信号TR_Aを取得した場合、FIFO回路A202が外部に対してデータ出力が可能と判定すると、外部に対して出力要求受理通知TA_Aを出力する。また、同時にFIFO回路A202に対し、出力アドレス信号RP_Aを出力する。FIFO回路A202は、出力アドレス信号RP_Aに示された、FIFO回路A202内部のアドレスに入力されたデータを、出力データTD_Aとして外部に出力する。FIFO回路制御部210は、出力要求信号TR_Bを取得した場合、FIFO回路B203が外部へのデータ出力が可能と判定した場合も、同様のように処理する。FIFO回路制御部210は、順序整合信号OEに基づき、以上のように判定をする。
【0041】
なお、FIFO回路制御部210は、FIFO回路A202、B203において入力可能なアドレスがある場合、データ受付可能信号RRを外部に出力する。外部では、データ受付可能信号RRに応じて、入力データRDを出力制御回路200に出力する。
【0042】
FIFO回路制御部210の内部の詳細について、図4及び図5を参照して説明する。図4は、FIFO回路制御部210の全体構成例を示すブロック図である。FIFO回路制御部210は、FIFOアドレス制御部211とFIFO出力順序制御部220で構成される。
【0043】
FIFOアドレス制御部211は、FIFO回路A202、B203のアドレスを制御する。例えば、FIFOアドレス制御部211は、FIFO出力順序制御部220が出力する入力有効信号WE_Aを取得した場合、FIFO回路A202のデータ入力が可能なアドレスを判定する。FIFOアドレス制御部211は、そのアドレス情報を示す信号を入力アドレス信号WP_Aとして生成し、FIFO出力順序制御部220及びFIFO回路Aに出力する。FIFO出力順序制御部220が出力する入力有効信号WE_Bを取得した場合も、FIFOアドレス制御部211は同様にして、FIFO回路B203内部においてデータ入力が可能なアドレスを示す信号を、入力アドレス信号WP_Bとして生成し、FIFO出力順序制御部220及びFIFO回路Bに出力する。
【0044】
また、FIFOアドレス制御部211は、FIFO出力順序制御部220が出力する出力有効信号RE_Aを取得した場合、FIFO回路A202のデータ出力が可能なアドレスを判定する。FIFOアドレス制御部211は、そのアドレス情報を示す信号を出力アドレス信号RP_Aとして生成し、FIFO出力順序制御部220及びFIFO回路Aに出力する。FIFO出力順序制御部220が出力する出力有効信号RE_Bを取得した場合も、FIFOアドレス制御部211は同様にして、FIFO回路B203内部においてデータ出力が可能なアドレスを示す信号を、出力アドレス信号RP_Bとして生成し、FIFO出力順序制御部220及びFIFO回路Bに出力する。
【0045】
さらに、FIFOアドレス制御部211は、FIFO回路A202内部のアドレスにデータが入力されている場合、その情報を状態信号E_AとしてFIFO出力順序制御部220に出力する。FIFO回路B203についても、同様の情報を状態信号E_BとしてFIFO出力順序制御部220に出力する。また、FIFO回路A202、B203が共に入力可能な場合(FIFO回路A202内部のアドレス及びFIFO回路B203内部のアドレスに、データが入力されていないアドレスがある場合)、データ受付可能信号RRを外部に通知する。
【0046】
図4において、FIFO出力順序制御部220は、入力アドレス信号WP_A、入力アドレス信号WP_B、出力アドレス信号RP_A、出力アドレス信号RP_Bに基づいて、FIFO回路A202、B203のデータの入力及び出力を管理する。これにより、FIFO回路A202、B203は入力データRD中の順序整合データが非順序整合データと混合しないように出力することができる。
【0047】
例えば、FIFO出力順序制御部220は、外部から入力データ有効信号RV、データ解析部201から選択信号S_Aを同時に取得し、FIFO回路A202において入力可能なアドレスがあると判定した場合、入力有効信号WE_AをFIFOアドレス制御部211及びFIFO回路A202に出力する。同様に、外部から入力データ有効信号RV、データ解析部201から選択信号S_Bを同時に取得し、FIFO回路B203において入力可能なアドレスがあると判定した場合、入力有効信号WE_BをFIFOアドレス制御部211及びFIFO回路B203に出力する。
【0048】
また、FIFO出力順序制御部220は、外部から出力される出力要求信号TR_A、出力要求信号TR_Bに基づき、FIFO回路A202、B203のデータ出力順序を制御する。FIFO出力順序制御部220は、FIFO回路A202が外部に対してデータ出力が可能と判定すると、外部に対して出力要求受理通知TA_Aを、FIFOアドレス制御部211に対して出力有効信号RE_Aを出力する。FIFO回路B203についても同様である。この場合、FIFO出力順序制御部220は、FIFO回路A202若しくはFIFO回路B203が外部に対してデータ出力が可能であるか否かを、状態信号E_A、状態信号E_B、順序整合信号OEを用いて、判定する。
【0049】
なお、FIFO出力順序制御部220は、FIFO回路A202、B203のどのアドレスにデータが入力され、どのアドレスに入力されていないかの情報を、入力アドレス信号WP_A、入力アドレス信号WP_B、出力アドレス信号RP_A、出力アドレス信号RP_Bによって更新し、保持している。また、順序整合信号OEをデータ解析部201から取得した場合、FIFO回路A202、B203に入力されたデータが、順序整合データの最初のデータ又は最後のデータであると判定して、順序整合信号OEをデータ情報としてFIFO出力順序制御部220内部に記憶する。
【0050】
次に図5を参照して、FIFO出力順序制御部220の内部の詳細について説明する。図5は、FIFO出力制御回路200の全体構成例を示すブロック図である。FIFO出力順序制御部220は、順序管理番号生成部221、FIFO回路Aデータ情報管理部222、FIFO回路Bデータ情報管理部223、FIFOデータ制御管理部224から構成される。
【0051】
順序管理番号生成部221は、入力データ有効信号RV及び順序整合信号OEに基づき、FIFO回路A202、B203の管理に共通する順序管理番号を生成する。順序管理番号生成部221は、順序管理番号の情報を、順序管理信号RO_NとしてFIFO回路Aデータ情報管理部222及びFIFO回路Bデータ情報管理部223に出力する。
【0052】
ここで、順序管理番号はカウンタにより制御され、入力データ有効信号RVが有効な順序整合信号OEを順序管理番号生成部221が取得した場合、次のクロックでカウント・アップされる。
【0053】
例えば、入力データRDが非順序整合データである初期状態では、順序管理番号は「0」と設定される。1回目の順序整合信号OEが出力された場合(入力データRDが順序整合データになった場合)、順序管理番号はカウント・アップされ、「1」となる。その後、2回目の順序整合信号OEが出力された場合(入力データRDが非順序整合データになった場合)、順序管理番号はカウント・アップされ、「2」となる。以上のように、順序管理番号はカウント・アップがなされる。
【0054】
FIFO回路Aデータ情報管理部222は、順序整合信号OE、順序管理信号RO_N、出力有効信号RE_A、入力有効信号WE_A、入力アドレス信号WP_A、出力アドレス信号RP_Aを取得し、FIFO回路A202のデータの入力及び出力を管理する。つまり、FIFO回路A202のどのアドレスにデータが入力され、どのアドレスに入力されていないかの情報を、FIFO回路Aデータ情報管理部222は前述の信号によって更新し、保持する。
【0055】
FIFO回路Aデータ情報管理部222は、内部に、FIFO回路A202の各アドレスに対応したアドレスを保持している。FIFO回路Aデータ情報管理部222は、入力有効信号WE_Aを取得した場合、同時に取得した入力アドレス信号WP_Aに基づき、FIFO回路A202内部でデータが入力されるアドレスに対応した、FIFO回路Aデータ情報管理部222内部のアドレスに、順序管理番号生成部221で生成された順序管理番号を入力する。この順序管理番号は、順序管理番号生成部221が順序管理信号RO_Nとして出力する情報である。なお、FIFO回路Aデータ情報管理部222が入力有効信号WE_A、入力アドレス信号WP_Aと同時に順序整合信号OEを取得した場合は、順序整合信号OEに係るデータ情報(以下、順序整合情報という)も、FIFO回路Aデータ情報管理部222内部のアドレスに入力する。以上により、FIFO回路Aデータ情報管理部222は、順序管理番号及び順序整合情報を、FIFO回路A202の入力データRDに関連付けて記憶する。
【0056】
また、FIFO回路Aデータ情報管理部222は、出力有効信号RE_Aを取得した場合、同時に取得した出力アドレス信号RP_Aに基づき、FIFO回路A202内部でデータが出力されるアドレスに対応する、FIFO回路Aデータ情報管理部222内部のアドレスを参照する。FIFO回路Aデータ情報管理部222は、参照したアドレスにある順序管理番号の情報を、出力順序管理信号TON_AとしてFIFOデータ制御管理部224に出力する。また、参照したアドレスに前述の順序整合情報がある場合は、その情報を出力順序整合信号TO_AとしてFIFOデータ制御管理部224に出力する。
【0057】
FIFO回路Bデータ情報管理部223は、FIFO回路B203のデータの入力及び出力の管理についてFIFO回路Aデータ情報管理部222と同様に処理するため、説明は省略する。
【0058】
FIFOデータ制御管理部224は、FIFO回路A202、B203を管理する信号を生成する。FIFOデータ制御管理部224は、入力データ有効信号RV及び選択信号S_Aより、FIFO回路A202の入力を制御する入力有効信号WE_Aを生成する。入力有効信号WE_Aは、FIFO回路Aデータ情報管理部222、FIFOアドレス制御部211、FIFO回路A202に出力される。FIFOデータ制御管理部224は同様に、入力データ有効信号RV及び選択信号S_Bより、FIFO回路B203の入力を制御する入力有効信号WE_Bを生成する。入力有効信号WE_Bは、FIFO回路Bデータ情報管理部223、FIFOアドレス制御部211、FIFO回路B203に出力される。
【0059】
次に、FIFOデータ制御管理部224が、FIFO回路A202又はB203の出力を管理する方法について述べる。FIFOデータ制御管理部224は、外部からの出力要求信号TR_Aを取得した場合、FIFO回路A202の出力が可能か否かを判定する。FIFO回路A202の出力が可能と判定した場合、FIFOデータ制御管理部224は出力有効信号RE_A及び出力要求受理通知TA_Aを出力する。FIFO回路A202の出力が可能ではないと判定した場合、FIFOデータ制御管理部224は出力有効信号RE_A及び出力要求受理通知TA_Aを出力しない。
【0060】
ここで、前述の「FIFO回路A202の出力が可能であるか否かの判定」について説明する。FIFOデータ制御管理部224は、FIFO回路A202、B203の出力順序を制御するための出力可能管理番号を生成する。FIFOデータ制御管理部224は、出力順序整合信号TO_A又は出力順序整合信号TO_Bを取得した場合、出力可能管理番号を、出力順序整合信号TO_A又は出力順序整合信号TO_Bの出力が止まった際のクロックでカウント・アップする。
【0061】
FIFOデータ制御管理部224は、FIFO回路A202が出力可能か否かの判定において、状態信号E_Aが出力されるか否か(FIFO回路A202において、データが入力されているか否か)を判定する。状態信号E_Aが出力される(FIFO回路A202においてデータが入力されている)場合、FIFOデータ制御管理部224は出力順序管理信号TON_A中の情報である順序管理番号(以降、出力順序管理番号Aと表記する。Bについても同様)と、出力可能管理番号との大小を比較する。出力順序管理番号Aの値が出力可能管理番号の値以下であれば、FIFOデータ制御管理部224は、FIFO回路A202が出力可能と判定する。なお、状態信号E_Aの出力の有無の判定、出力順序管理番号Aと出力可能管理番号との大小判定については、どちらを先に処理してもよい。
【0062】
FIFOデータ制御管理部224は、外部からの出力要求信号TR_Bを取得した場合、同様にFIFO回路B203が出力可能か否かを判定する。FIFO回路B203が出力可能と判定した場合、FIFOデータ制御管理部224は出力有効信号RE_B及び出力要求受理通知TA_Bを出力する。「FIFO回路B203が出力可能か否かの判定」の詳細については、前述と同様なので、説明を省略する。
【0063】
いま、外部からの出力要求について、出力要求信号TR_A及び出力要求信号TR_Bが同時に出力され、状態信号E_A、状態信号E_Bが両方とも出力される(FIFO回路A202、B203のどちらもデータ出力が可能)とする。この場合、出力順序管理番号A及び出力順序管理番号Bのどちらの値も出力可能管理番号の値以下であり、出力順序管理番号Aの値と出力順序管理番号Bの値が異なる場合が想定される。その場合、FIFOデータ制御管理部224は、小さい出力順序管理番号の値のFIFO回路のみが出力可能とする。つまり、出力順序管理番号Aの値が出力順序管理番号Bの値より小さければ、FIFOデータ制御管理部224はFIFO回路A202のみが出力可能とする。出力順序管理番号Bの値が出力順序管理番号Aの値より小さければ、FIFOデータ制御管理部224はFIFO回路B203のみが出力可能とする。
【0064】
また、出力要求信号TR_A及び出力要求信号TR_B、状態信号E_A及び状態信号E_Bが出力され、出力順序管理番号A及び出力順序管理番号Bの値が出力可能管理番号の値と同じで、出力順序整合信号TO_A又は出力順序整合信号TO_Bのどちらかが出力される場合も想定される。その場合、FIFOデータ制御管理部224は、出力順序整合信号が出力されないFIFO回路のデータを先に出力するように制御する。つまり、出力順序整合信号TO_Aが出力される場合、FIFOデータ制御管理部224はFIFO回路B203のデータを先に出力させる。出力順序整合信号TO_Bが出力される場合、FIFOデータ制御管理部224はFIFO回路A202のデータを先に出力させる。換言すれば、FIFO回路同士の順序管理番号が同一であって、一方のFIFO回路が次に出力するデータが順序整合データであり、他方のFIFO回路が非順序整合データである場合、FIFOデータ制御管理部224は、直前に出力されたものと同一種類の入力データを出力するように制御する。
【0065】
なお、出力要求信号TR_A及び出力要求信号TR_B、状態信号E_A及び状態信号E_Bが出力され、出力順序管理番号A及び出力順序管理番号Bの値が出力可能管理番号の値と同じで、出力順序整合信号TO_A又は出力順序整合信号TO_Bのいずれも出力されていない場合が想定される。その場合、FIFO回路A202のデータ出力と、FIFO回路B203のデータ出力の先後は任意であり、どちらが先でもよい。また、FIFO回路A202のデータ出力と、FIFO回路B203のデータ出力とは同時に行われてもよい。以上、出力制御回路200の各部の制御について説明を行った。
【0066】
次に、図6〜9を用いて、出力制御回路200においてデータ入力があった場合の、FIFO回路A202、B203の具体的な動作を説明する。図6〜9は、時刻t0〜t4において、FIFO回路A202、B203の具体的な状態例を示した図である。時刻t0は初期時刻である。
【0067】
図6において、「FIFO回路A」と記載された図は、FIFO回路A202の状態を示す。図中の括弧つきの番号(0)〜(4)は、FIFO回路A202のアドレス番号であり、括弧がつかない番号は、FIFO回路Aデータ情報管理部222内部のアドレスに入力された順序管理番号である。また、図6の下図で「FIFO回路A」と記載された図中のドットパターンは、FIFO回路A202のアドレス(0)に、データが入力されることを示している。ドットパターンの密度が低いデータは、非順序整合データであり、ドットパターンの密度が高いデータは、順序整合データであることを示す。以上の説明は、「FIFO回路B」と記された図についても同様である。また、図6における矢印は時刻の経過を示す矢印であり、時刻t0からt1に時刻が経過したことを示す。図7〜9、図11〜16についても、同様に表記する。
【0068】
以下、FIFO回路A202、B203の具体的な状態を説明する。図6は、時刻t0から時刻が経過して時刻t1になった場合の、各FIFO回路の状態である。時刻t0では、FIFO回路A202、B203へのデータ入力はない。時刻t0〜t1において、FIFO回路A202、B203のアドレス(0)に、データが入力される。ここで、入力されるデータは非順序整合データである。
【0069】
次に、図7を参照する。図7は、時刻t1から時刻が経過して時刻t2になり、順序整合データの最初のデータがFIFO回路A202のアドレス(1)に入力された場合の、各FIFO回路の状態である。時刻t1〜t2において、順序整合データの最初のデータが入力されたFIFO回路A202のアドレス(1)に対応する、FIFO回路Aデータ情報管理部222内部のアドレスには順序整合信号OEが入力される。入力の詳細については前述の通りである。
【0070】
次に、図8を参照する。図8は、時刻t2から時刻が経過して時刻t3になった場合の、各FIFO回路の状態である。具体的には、図8は、順序整合データの先頭のデータがFIFO回路A202に入力された後、後続の順序整合データに含まれるデータがFIFO回路A202のアドレス(2)、FIFO回路B203のアドレス(1)に入力された状態を示す。ここで、後続の順序整合データに含まれるデータに対応する順序管理番号は、「1」となっている。これは、順序整合信号OEを順序管理番号生成部221が取得した後、次のクロックで順序管理番号生成部221が順序管理番号をカウント・アップするためである。
【0071】
次に、図9を参照する。図9は、時刻t3から時刻が経過して時刻t4になった場合の、各FIFO回路の状態である。具体的には、図9は、順序整合データの最後のデータがFIFO回路B203のアドレス(2)に入力された後、非順序整合データが、FIFO回路A202のアドレス(3)、FIFO回路B203のアドレス(3)、(4)に入力された状態を示す。
【0072】
ここで、順序整合データの最後のデータが入力されたFIFO回路B203のアドレス(2)に対応する、FIFO回路Bデータ情報管理部223内部のアドレスには順序整合信号OEが入力される。また、非順序整合データに対応する順序管理番号は、順序管理番号生成部221によって順序管理番号のカウント・アップが行われ、「2」となる。
【0073】
図10を参照して、図6〜9における、FIFO回路A202、B203のデータ入力に係る動作タイミングの例を示す。図10は、入力データ有効信号RV、入力有効信号WE_A、入力有効信号WE_B及び順序整合信号OEの出力タイミングを示している。また図10では、各信号に伴う、各FIFO回路の入力アドレス番号及び順序管理番号の更新も示される。FIFO回路A202の入力アドレス番号とは、入力アドレス信号WP_Aに含まれる情報である、FIFO回路A202が入力可能なアドレスの番号のことをいう。(以降、入力アドレス番号Aと表記する。FIFO回路B203の入力アドレス番号についても同様である。)入力アドレス番号A、B及び順序管理番号は、図10において入力アドレス信号WP_A、入力アドレス信号WP_B及び順序管理信号RO_Nの各番号で示される。また図10は、時刻t0〜t4の時刻情報も示す。
【0074】
以下、図10の各時刻においての動作タイミングについて説明する。図10の時刻t0(初期時刻)においては、出力制御回路200は入力データ有効信号RVを取得していない。そのため、FIFO回路A202、B203への入力データはない。また、順序管理番号は初期状態の「0」である。
【0075】
図10の時刻t0〜t1(図6で示した状態)においては、出力制御回路200は入力データ有効信号RVを、クロックの2周期分取得する。つまり、出力制御回路200は入力データRDを合計して2単位取得する。図10では、時刻t0〜t1における2単位の入力データRDのうち、FIFO回路A202、B203に処理されるデータはそれぞれ1単位である。これは、時刻t0〜t1において、入力データ有効信号RVに対応したタイミングで、入力有効信号WE_A及び入力有効信号WE_Bが1周期ずつ出力されることから示される。入力有効信号WE_A及び入力有効信号WE_Bは、データ解析部201の選択信号S_A、S_Bに基づき、FIFOデータ制御管理部224から出力される。
【0076】
FIFO回路A202、B203は、入力有効信号WE_A、WE_Bに応じて、1単位のデータを、それぞれアドレス(0)に入力する。また、入力されたデータに対応する順序管理番号「0」は、FIFO回路A202、B203のアドレス(0)に対応する、FIFO回路Aデータ情報管理部222及びFIFO回路Bデータ情報管理部223のアドレスに記憶される。以上が、時刻t0〜t1におけるFIFO回路A202、B203の状態である。
【0077】
図10の時刻t1〜t2(図7で示した状態)においては、出力制御回路200は入力データRDを合計して1単位取得している。出力制御回路200が入力データRDを取得した場合、データ解析部201は順序整合信号OEを同時に出力する。つまり、時刻t1〜t2での入力データRDは、順序整合データにおける最初の単位データである。この入力データRDの取得の場合、データ解析部201から選択信号S_Aが出力され、選択信号S_Aを取得したFIFOデータ制御管理部224が入力有効信号WE_Aを出力することで、入力データRDはFIFO回路A202のアドレス(1)に入力される。また、順序整合信号OEを取得したことにより、順序管理番号生成部221は次のクロック以降で、順序管理番号をカウント・アップし、「1」とする。なお、FIFO回路A202のアドレス(1)に対応するFIFO回路Aデータ情報管理部222のアドレスには、順序管理番号「0」が記憶される。(順序整合データにおける最初の単位データを取得した時点では、順序管理番号のカウント・アップはなされていない。)以上が、時刻t1〜t2におけるFIFO回路A202、B203の状態である。
【0078】
図10の時刻t2〜t3(図8で示した状態)においては、出力制御回路200は入力データRDを合計して2単位取得する。前述の時刻t0〜t1の場合と同様の処理によって、時刻t2〜t3に出力制御回路200が取得した入力データRDは1単位ずつ、FIFO回路A202のアドレス(2)及びFIFO回路B203のアドレス(1)に入力される。なお、この入力データRDに対応する順序管理番号は「1」であり、前述と同様にFIFO回路Aデータ情報管理部222及びFIFO回路Bデータ情報管理部223のアドレスに記憶される。以上が、時刻t2〜t3におけるFIFO回路A202、B203の状態である。
【0079】
図10の時刻t3〜t4(図9で示した状態)においては、出力制御回路200は入力データRDを合計して3単位取得している。時刻t3〜t4で、出力制御回路200が入力データRDの最初のデータを取得したとき、データ解析部201は順序整合信号OEを同時に出力する。つまり、時刻t3〜t4での最初の入力データRDは、順序整合データの最後の単位データである。ここで順序整合信号OEを取得したことにより、順序管理番号生成部221は次のクロック以降で、順序管理番号をカウント・アップし、「2」とする。時刻t3〜t4における入力データRDは、前述と同様の処理によって、FIFO回路B203のアドレス(2)、(3)、(4)に入力される。順序管理番号も同様に、FIFO回路Bデータ情報管理部223のアドレスに記憶される。以上が、時刻t3〜t4におけるFIFO回路A202、B203の状態である。
【0080】
次に、時刻t4以降において、出力制御回路200のデータ出力があった場合の、FIFO回路A202、B203の具体的な状態を説明する。図11〜16は、時刻t4〜t10において、FIFO回路A202、B203の具体的な状態例を示した図である。
【0081】
まず、図11を参照する。図11は、時刻t4から時刻が経過して時刻t5になった場合の、各FIFO回路の状態である。具体的には、図11は、時刻t4〜t5において、FIFO回路A202のアドレス(0)に入力されたデータが、出力された状態を示す。なお、時刻t4〜t5で出力されたデータは、順序管理番号が0であり、順序整合信号OEが入力されていないことから、非順序整合データである。
【0082】
時刻t4〜t5におけるFIFO回路A202の出力処理は、外部からの出力要求信号TR_Aを取得したFIFOデータ制御管理部224が、状態信号E_Aに基づき出力有効信号RE_AをFIFO回路A202に出力することによりなされる。なお、FIFO回路A202が出力するデータのアドレスの特定は次のようになされる。出力有効信号RE_Aを取得したFIFOアドレス制御部211は、FIFO回路A202の出力するデータが入力されたアドレス情報(この場合はアドレス(0))を、出力アドレス信号RP_AとしてFIFO回路A202に出力する。FIFO回路A202は、その出力アドレス信号RP_Aに対応するアドレスに入力されたデータを出力する。
【0083】
次に、図12を参照する。図12は、時刻t5から時刻が経過して時刻t6になった場合の、各FIFO回路の状態である。具体的には、図12は、時刻t5〜t6において、FIFO回路B203のアドレス(0)に入力されていたデータが、出力された状態を示す。この出力されたデータも、時刻t4〜t5で出力されたデータと同様、非順序整合データである。
【0084】
時刻t5において、FIFO回路A202が次に出力するデータはアドレス(1)のデータであり、FIFO回路B203が次に出力するデータはアドレス(0)のデータである。FIFO回路A202のアドレス(1)のデータと、FIFO回路B203のアドレス(0)のデータの順序管理番号は同じ「0」であるが、FIFO回路A202のアドレス(1)のデータには順序整合信号OEが入力されている。つまり、FIFO回路A202のアドレス(1)のデータは、順序整合データの最初の単位データである。この場合、FIFOデータ制御管理部224は、出力順序整合信号が出力されていないFIFO回路、つまりFIFO回路B203のデータを先に出力するように制御する。図12においては、以上の制御により、FIFO回路B203のアドレス(0)に入力されていたデータが出力される。
【0085】
次に、図13を参照する。図13は、時刻t6から時刻が経過して時刻t7になった場合の、各FIFO回路の状態である。具体的には、図13は、時刻t6〜t7において、FIFO回路A202のアドレス(1)に入力されていたデータが、出力された状態を示す。この出力されたデータは、順序整合データである。
【0086】
時刻t6において、FIFO回路A202が次に出力するデータはアドレス(1)のデータであり、FIFO回路B203が次に出力するデータはアドレス(1)のデータである。FIFO回路A202のアドレス(1)のデータの順序管理番号は「0」であり、FIFO回路B203のアドレス(0)のデータの順序管理番号は「1」である。この場合、FIFOデータ制御管理部224は、小さい出力順序管理番号の値のFIFO回路、つまりFIFO回路A202のみのデータの出力を可能とする。図13においては、以上の制御により、FIFO回路A202のアドレス(1)に入力されていたデータが出力される。
【0087】
次に、図14を参照する。図14は、時刻t7から時刻が経過して時刻t8になった場合の、各FIFO回路の状態である。具体的には、図14は、時刻t7〜t8において、FIFO回路A202のアドレス(2)及びFIFO回路B203のアドレス(1)に入力されていたデータが、出力された状態を示す。この出力されたデータは、いずれも順序整合データである。
【0088】
時刻t7において、FIFO回路A202が次に出力するデータはアドレス(2)のデータであり、FIFO回路B203が次に出力するデータはアドレス(1)のデータである。この場合、いずれのデータも出力順序管理番号は「1」であり、出力順序整合信号は出力されていない。以上の場合、FIFOデータ制御管理部224は、出力要求信号TR_A及び出力要求信号TR_B、状態信号E_A及び状態信号E_Bの出力の有無に応じて、どちらのデータを先に出力するかを決定する。図14においては、以上の制御により、FIFO回路A202のアドレス(2)及びFIFO回路B203のアドレス(1)に入力されていたデータが出力される。
【0089】
次に、図15を参照する。図15は、時刻t8から時刻が経過して時刻t9になった場合の、各FIFO回路の状態を示す。具体的には、図15は、時刻t8〜t9において、FIFO回路B203のアドレス(2)に入力されていたデータが、出力された状態を示す。この出力されたデータは、順序整合データの最後の単位データである。
【0090】
時刻t8〜t9において、FIFOデータ制御管理部224は、時刻t6〜t7の場合と同様、小さい出力順序管理番号の値のFIFO回路のみ、データ出力を可能としている。つまり、時刻t8〜t9においては、FIFOデータ制御管理部224の制御により、FIFO回路B203のアドレス(2)のデータのみが出力される。
【0091】
次に、図16を参照する。図16は、時刻t9から時刻が経過して時刻t10になった場合の、各FIFO回路の状態である。具体的には、図16は、時刻t9〜t10において、FIFO回路A202のアドレス(3)に入力されていたデータが、出力された状態を示す。この出力されたデータは、非順序整合データである。
【0092】
時刻t9〜t10においては、FIFOデータ制御管理部224は時刻t7〜t8の場合と同様に、出力要求信号TR_A及び出力要求信号TR_B、状態信号E_A及び状態信号E_Bの出力の有無に応じて、どちらのデータを先に出力するかを判定する。図16においては、状態信号E_A及び状態信号E_Bは出力されており(FIFO回路A202とFIFO回路B203のどちらもデータの出力が可能であるため)、FIFOデータ制御管理部224は時刻t7〜t8間に出力要求信号TR_Aのみを取得したことに応じて、FIFO回路A202のアドレス(3)に入力されたデータを出力している。
【0093】
なお、時刻t10以降においては、FIFO回路A202への入力データはないため、状態信号E_Aは出力されない。そのため、FIFOデータ制御管理部224は出力要求信号TR_Bを取得した場合、適宜FIFO回路B203のデータの出力順序を制御する。
【0094】
図11〜16における、FIFO回路A202、B203のデータ入力に係る動作タイミングの例を、図17、図18で示す。図17は、出力要求信号TR_A、出力有効信号RE_A(出力要求受理通知TA_A)、出力順序整合信号TO_A、出力順序整合信号TO_Bの出力タイミング及び各信号に伴う出力アドレス番号A、出力管理番号A及び出力可能管理番号TCの更新を示している。出力アドレス番号Aとは、出力アドレス信号RP_Aに含まれる情報である、FIFO回路A202が出力可能なアドレスの番号のことをいう。出力管理番号Aとは、出力順序管理信号TON_Aに含まれる情報である、FIFO回路A202が出力可能なアドレスの順序管理番号のことをいう。出力アドレス番号A、出力管理番号A及び出力可能管理番号TCは、図17において出力アドレス信号RP_A、出力順序管理信号TON_A及びTCの各番号で示される。また、図17、図18は時刻t4〜t10の時刻情報も示している。
【0095】
図18は、出力要求信号TR_B、出力有効信号RE_B(出力要求受理通知TA_B)、出力順序整合信号TO_A、出力順序整合信号TO_Bの出力タイミング及び各信号に伴う出力アドレス番号B、出力管理番号B及び出力可能管理番号TCの更新を示している。出力アドレス番号B、出力管理番号Bは出力アドレス番号A、出力管理番号Aと同様の番号であり、説明を省略する。
【0096】
図17、18の時刻t4〜t5(図11で示した状態)において、FIFOデータ制御管理部224に対する出力要求は、出力要求信号TR_Aのみが出力される。FIFOデータ制御管理部224はそれに基づき、出力有効信号RE_AをFIFO回路A202、FIFO回路Aデータ情報管理部222に出力するとともに、出力要求受理通知TA_Aを外部に出力する。出力有効信号RE_Aを取得したFIFO回路Aデータ情報管理部222は、出力させるデータがあるFIFO回路A202のアドレス(0)を出力アドレス番号Aとする。FIFO回路Aデータ情報管理部222は、出力アドレス番号Aを含む情報を出力アドレス信号RP_AとしてFIFO回路A202に出力する。以上の処理により、FIFO回路A202はアドレス(0)に入力されたデータを出力する。また、FIFO回路Aデータ情報管理部222は、出力有効信号RE_A及び出力アドレス信号RP_Aに基づいて、FIFO回路A202のデータ情報を更新する。以上が、時刻t4〜t5におけるFIFO回路A202、B203の状態である。
【0097】
図17、18の時刻t5〜t6(図12で示した状態)において、FIFOデータ制御管理部224に対する出力要求は、出力要求信号TR_A及び出力要求信号TR_Bが外部から出力される。FIFOデータ制御管理部224はそれに基づき、FIFO回路A202のアドレス(1)に入力されたデータと、FIFO回路B203のアドレス(0)に入力されたデータと、どちらのデータを先に出力するかを判定する。
【0098】
ここで、FIFO回路A202のアドレス(1)のデータと、FIFO回路B203のアドレス(0)のデータの出力管理番号(順序管理番号)は同じ「0」であるが、FIFO回路A202のアドレス(1)のデータには順序整合信号OEが入力されている。つまり、出力順序整合信号TO_Aが、FIFO回路Aデータ情報管理部222から出力されている。この場合、FIFOデータ制御管理部224は、出力順序整合信号が出力されていない方、つまりFIFO回路B203のデータを先に出力するように制御する。図12においては、以上の制御により、FIFO回路B203のアドレス(0)に入力されていたデータが出力される。また、FIFO回路Bデータ情報管理部223は、出力有効信号RE_B及び出力アドレス信号RP_Bに基づいて、FIFO回路B203のデータ情報を更新する。以降においても、FIFO回路Aデータ情報管理部222及びFIFO回路Bデータ情報管理部223は同様にデータ情報を更新する。(以降での更新処理の記載については省略する。)以上が、時刻t5〜t6におけるFIFO回路A202、B203の状態である。
【0099】
図17、18の時刻t6〜t7(図13で示した状態)において、FIFOデータ制御管理部224に対する出力要求は、出力要求信号TR_A及び出力要求信号TR_Bが外部から出力される。FIFOデータ制御管理部224はそれに基づき、FIFO回路A202のアドレス(1)に入力されたデータと、FIFO回路B203のアドレス(1)に入力されたデータと、どちらのデータを先に出力するかを判定する。
【0100】
ここで、FIFO回路A202のアドレス(1)のデータの出力管理番号Aは「0」であり、FIFO回路B203のアドレス(1)のデータの出力管理番号Bは「1」である。この場合の出力可能管理番号TCは「0」であり、FIFOデータ制御管理部224は、出力管理番号が出力可能管理番号TC以下であるFIFO回路A202のデータが出力可能と判定する。(あるいは、FIFOデータ制御管理部224は、出力管理番号Aと出力管理番号Bを比較して、小さい値の方に対応するFIFO回路を出力可能と判定する、といってもよい。なぜなら、出力管理番号Aと出力管理番号Bの値が異なる場合、出力可能管理番号TCは、小さい方の出力管理番号の値と同じ値になるからである。)ここから、FIFOデータ制御管理部224は、出力管理番号が小さい方、つまりFIFO回路A202のデータを先に出力するように制御する。図12においては、以上の制御により、FIFO回路A202のアドレス(1)に入力されているデータが出力される。また、FIFO回路A202アドレス(2)に入力されているデータには順序整合信号が入力されていないため、FIFO回路Aデータ情報管理部222は次のクロック以降で、出力順序整合信号TO_Aの出力を行わない。そのため、次のクロックで、FIFOデータ制御管理部224は、出力可能管理番号TCを「0」から「1」にカウント・アップする。以上が、時刻t6〜t7におけるFIFO回路A202、B203の状態である。
【0101】
図17、18の時刻t7〜t8(図14で示した状態)において、FIFOデータ制御管理部224に対する出力要求は、出力要求信号TR_A及び出力要求信号TR_Bが外部から出力される。FIFOデータ制御管理部224はそれに基づき、FIFO回路A202のアドレス(2)に入力されたデータと、FIFO回路B203のアドレス(1)に入力されたデータの両方を出力するように制御する。なお、この場合、出力管理番号A、Bともに出力可能番号と同じ「1」の値であることから、FIFOデータ制御管理部224は、FIFO回路A202、B203の両方のデータとも出力可能と判定している。(出力可能管理番号TCは「1」であり、出力管理番号A、Bの値はともに、出力可能管理番号TC以下の値である。)以上が、時刻t7〜t8におけるFIFO回路A202、B203の状態である。
【0102】
図17、18の時刻t8〜t9(図15で示した状態)において、FIFOデータ制御管理部224に対する出力要求は、出力要求信号TR_A及び出力要求信号TR_Bが外部から出力される。FIFOデータ制御管理部224はそれに基づき、出力管理番号Aが「2」、出力管理番号Bが「1」、出力可能管理番号TCが「1」であることから、FIFO回路B203のアドレス(2)のデータが出力可能と判定する。判定の詳細は前述の通りである。FIFOデータ制御管理部224は、FIFO回路B203のアドレス(2)に入力されたデータを出力するように制御する。また次のクロックで、FIFOデータ制御管理部224は、前述と同様に、出力可能管理番号TCを「1」から「2」にカウント・アップする。以上が、時刻t8〜t9におけるFIFO回路A202、B203の状態である。
【0103】
図17、18の時刻t9〜t10(図16で示した状態)において、FIFOデータ制御管理部224に対する出力要求は、出力要求信号TR_Aのみが外部から出力される。FIFOデータ制御管理部224はそれに基づき、FIFO回路A202のアドレス(3)に入力されたデータを出力するように制御する。以上が、時刻t9〜t10におけるFIFO回路A202、B203の状態である。
【0104】
まとめると、本実施の形態の出力制御回路200において、データ解析部201は、入力データRDが順序整合データか否かを判定する。入力データRDが非順序整合データである場合、並列に接続されたFIFO回路A202、B203は、それぞれ独立して入力データRDを出力する。しかし、入力データRDが順序整合データである場合、順序管理番号生成部221はデータ解析部201が出力する順序整合信号OEに基づき、FIFO回路A202、B203間のデータ入力の順序を示す管理番号を、順序管理番号として生成して、FIFO回路Aデータ情報管理部222及びFIFO回路Bデータ情報管理部223に出力する。この順序管理番号によるFIFOデータ制御管理部224の制御により、出力制御回路200はFIFO回路A202、B203が出力するデータ間に順序関係性を持たせて、出力順の整合を行っている。
【0105】
また、順序整合データの出力が完了した場合、FIFOデータ制御管理部224は、データ出力に関して選択信号のみに基づいた制御を行い、順序整合信号OE及び順序管理番号に基づいた制御は行わない。つまり、FIFO回路A202、B203は、両回路間に跨ったデータの入力順に基づいてデータを出力しない。両回路は独立して、各々の回路に入力されたデータの入力順に従った入力データRDの出力ができる。
【0106】
一般に、複数のFIFO回路を備えた出力制御回路は、データの出力時に、データ内容等により異なるFIFO回路を用いて出力をするような制御が可能であるため、効率的なデータ出力ができる。しかし、入力データが、システムの設定に用いる順序整合データである場合、システムの設定前に出力するデータは、システムの設定後に出力するデータの前に出力される必要がある。その場合、複数のFIFO回路でデータを出力する場合は、複数のFIFO回路間に跨ったデータの入力順に、データを出力する必要がある。このような、複数FIFO回路間のデータの入力順に合わせて、出力順序を制御する出力制御回路は存在しなかった。
【0107】
本実施の形態により、順序整合データを、複数のFIFO回路で処理できる出力制御回路を提供することができる。本実施の形態の出力制御回路200による第一の効果は、順序整合データを複数のFIFO回路で処理を行えるため、順序整合データの出力効率が向上することである。第二の効果は、通常は独立に動作している複数のFIFO回路が、順序整合データを取得した場合、複数のFIFO間に関連付けられたデータ出力制御を行えることである。第三の効果は、FIFO回路制御部において、FIFO回路を全て制御することが可能なため、複数のFIFO回路がそれぞれ制御部を備える構成の出力制御回路に比べて、物理的な回路量が削減できることである。これにより、例えば、出力制御回路200を備えるコンピュータ等において、バッファ回路の削減ができる可能性がある。
【0108】
実施の形態3
以下、図面を参照して本発明の実施の形態3について説明する。図19は、4個のFIFO回路を並列に接続した場合の、出力制御回路300の全体構成例を示すブロック図である。出力制御回路300は、データ解析部301、FIFO回路A302、FIFO回路B303、FIFO回路C304、FIFO回路D305を備える。
【0109】
FIFO回路A302〜D305は、入力データRDが非順序整合データである場合、独立に通常のFIFO回路の動作をする。入力データRDが順序整合データである場合、データ解析部301はFIFO回路制御部306に順序整合信号OEを出力する。FIFO回路制御部306は取得した順序整合信号OEに基づいて順序管理番号を作成することで、FIFO回路A302〜D305の出力順序を制御する。具体的には、FIFO回路A302〜D305が併せて出力する順序整合データが、当該順序整合データよりも前に入力された非順序整合データより後に出力され、当該順序整合データよりも後に入力された非順序整合データより前に出力されるような制御である。詳細な出力制御回路300の処理の説明は、実施の形態2と同様なので、説明を省略する。
【0110】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態2において、順序管理番号は順序整合信号OEに基づいてカウント・アップするのでなく、カウント・ダウンするようにしてもよい。データ解析部201は、FIFO回路制御部210中に含めてもよい。
【0111】
FIFOデータ制御管理部224は、順序整合信号を取得した場合、次のクロックで順序管理番号をカウント・アップした。しかし、FIFOデータ制御管理部224は、順序整合信号OEを取得したときのクロックで、順序管理番号をカウント・アップしてもよい。あるいは、順序整合データ、非順序整合データ中の全てのデータにおいて同一の順序管理番号が関連付けられるように、順序管理番号をカウント・アップしてもよい。
【符号の説明】
【0112】
100 出力制御回路
101 データ解析部
102 FIFO回路
103 FIFO回路
104 制御部
200 出力制御回路
201 データ解析部
202 FIFO回路A
203 FIFO回路B
210 回路制御部
211 FIFOアドレス制御部
220 FIFO出力順序制御部
221 順序管理番号生成部
222 FIFO回路Aデータ情報管理部
223 FIFO回路Bデータ情報管理部
224 FIFOデータ制御管理部
300 出力制御回路
301 データ解析部
302 FIFO回路A
303 FIFO回路B
304 FIFO回路C
305 FIFO回路D
306 FIFO回路制御部

【特許請求の範囲】
【請求項1】
順序整合データと非順序整合データとの2種類からなるデータのうち、順序整合データが入力された場合、順序整合データを識別する識別情報を生成するデータ解析部と、
互いに異なる順序整合データが割り振られる第1及び第2のFIFO回路と、
入力されたデータが順序整合データである場合、前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する制御部と、
を備える出力制御回路。
【請求項2】
前記データ解析部は、前記識別情報として、前記順序整合データの最初と最後のデータを示す順序整合信号を前記制御部に出力し、
前記制御部は、前記順序整合信号に基づいて、順序整合データの出力を制御する、
請求項1に記載の出力制御回路。
【請求項3】
前記制御部は、前記順序整合信号に基づいて、順序整合データと非順序整合データとの識別が可能な順序管理番号を生成して、前記順序管理番号を前記第1及び第2のFIFO回路が取得したデータに関連付けることにより、順序整合データの出力を制御する、
請求項2に記載の出力制御回路。
【請求項4】
前記順序管理番号は、前記順序整合信号に基づいてカウント・アップされる、
請求項3に記載の出力制御回路。
【請求項5】
前記制御部は、外部からのデータ出力要求を取得した場合、前記順序管理番号同士の値の大小を比較して、前記順序管理番号の値が小さいデータを先に出力するように制御する、
請求項4に記載の出力制御回路。
【請求項6】
前記制御部は、前記第1及び第2のFIFO回路のそれぞれが次に出力するデータの種類が異なり、前記順序管理番号は同一である場合、直前に出力されたデータと同一種類のデータを出力するように制御する、
請求項5に記載の出力制御回路。
【請求項7】
入力されたデータが順序整合データか非順序整合データかを検出する第1のステップと、
入力されたデータが順序整合データである場合、順序整合データを識別する識別情報を生成し、互いに異なる順序整合データを第1及び第2のFIFO回路に割り振る第2のステップと、
前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する第3のステップと、
を備える出力制御回路の制御方法。
【請求項8】
入力されたデータが順序整合データか非順序整合データかを検出する第1の処理と、
入力されたデータが順序整合データである場合、順序整合データを識別する識別情報を生成し、互いに異なる順序整合データを第1及び第2のFIFO回路に割り振る第2の処理と、
前記識別情報に基づいて、当該順序整合データが、当該順序整合データよりも前に入力された非順序整合データよりも後に出力され、当該順序整合データよりも後に入力された非順序整合データよりも前に出力されるように前記第1及び第2のFIFO回路を制御する第3の処理と、
を出力制御回路に実行させる制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−104034(P2012−104034A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−253961(P2010−253961)
【出願日】平成22年11月12日(2010.11.12)
【出願人】(000197366)NECアクセステクニカ株式会社 (1,236)