【実施例1】
【0028】
図1は、本発明によるバンク方式のデュアルポートメモリの実施例1の構成を説明する図である。該
図1において、MPUA1、コントロールバス11、アドレスバス12、データバス13、およびMPUB2、コントロールバス21、アドレスバス22、データバス23は、前記
図12で同じ符号を付すものと同じ機能を有しておりこれの説明は割愛する。またDPM3は、前記
図12のDPM3と同じデユアルポートメモリの機能を持っているが、本発明は該DPM3の内部構成に特徴を有するものである。
【0029】
該
図1のDPM3において、31、32はそれぞれバンクAポインタ、バンクAメモリであり、これらは前記MPUA1から前記MPUB2へデータを送るためのものである。そして該バンクAメモリ32は、連続した複数のアドレスのメモリ領域を1つのバンクとして、バンクA0、バンクA1からバンクA(n−1)とn個のバンクにて構成されている。ここでバンクA0からバンクA(n−1)のそれぞれを総称してバンクAと表記する。
【0030】
また説明を容易とするために数値例にて示せば、前記DPM3の物理的なデータサイズが1ワードのとき、前記バンクAポインタ31のサイズは1ワードであり、バンクA0からバンクA(n−1)のそれぞれのバンクAのサイズは連続したアドレスの40ワードなどである。このとき前記バンクAメモリ32のサイズは、(40×n)ワードとなる。
そして、前記バンクAポインタ31、バンクAメモリ32、およびバンクA0からバンクA(n−1)は、前記DPM3内にメモリマッピングしたものである。
【0031】
次に前記MPUA1が、複数のデータを前記DPM3経由にて前記MPUB2へ送る手順を、該
図1中に示すaからeにて説明する。
a:前記MPUA1は、処理の始めに前記バンクAポインタ31をリードする。
b:前記MPUA1は、前記バンクA0からバンクA(n−1)のうち、
前記バンクAポインタ31が示すNO.のバンクAに
処理の進捗に応じて逐次、
前記MPUB2へ送る複数のデータをライトする。
c:前記MPUA1は、処理の終わりに前記バンクAポインタ31の値を
1だけ加算する。ただし加算の結果、値がn以上となったら
0を前記バンクAポインタ31にライトする。
d:前記MPUB2は、処理の始めに前記バンクAポインタ31をリードする。
e:前記MPUB2は、前記バンクA0からバンクA(n−1)のうち、
前記バンクAポインタ31が1から(n−1)のときは
1だけ減算したNO.のバンクAから、
前記バンクAポインタ31が0のときはバンクA(n−1)から、
処理の進捗に応じて逐次、複数のデータをリードする。
ここで前記MPUA1とMPUB2は、相互に非同期にてそれぞれの処理を実行するものである。また前記のcで、前記バンクAポインタ31の値を1だけ加算によるロータリーアップカウンタとしたが、これに換えて1だけ減算としてロータリーダウンカウンタとしてもよい。
【0032】
かようにして、前記MPUA1が複数のデータを前記DPM3経由にて前記MPUB2に送るとき、前記バンクAポインタ31に基づき、前記MPUA1がライトする前記バンクAと、前記MPUB2がリードする前記バンクAは必ず異なるので、前記DPM3において競合状態が発生することがなく、これにより前記MPUA1およびMPUB2がウェィティング状態に陥ることがない。
また、前記MPUB2は必ず、前記MPUA1がライトを完了したバンクAからデータをリードするので、複数のデータの同時性が確保される。
さらに前記
図1に示したとおり、前記MPUA1とMPUB2間にはハードウェアによる接続はなく、これによりビジー信号によるマイクロプロセッサのウェィティングのタイミング設計が不要となるものである。
【0033】
次に、前記MPUB2から前記MPUA1へデータを送るための構成と手順について説明を行う。前記
図1のDPM3において、33、34はそれぞれバンクBポインタ、バンクBメモリであり、これらは前記MPUB2から前記MPUA1へデータを送るためのものである。そして該バンクBメモリ34は、連続した複数のアドレスのメモリ領域を1つのバンクとして、バンクB0、バンクB1からバンクB(n−1)とn個のバンクにて構成されている。ここでバンクB0からバンクB(n−1)のそれぞれを総称してバンクBと表記する。
【0034】
また説明を容易とするために数値例にて示せば、前記DPM3の物理的なデータサイズが1ワードのとき、前記バンクBポインタ33のサイズは1ワードであり、バンクB0からバンクB(n−1)のそれぞれのバンクBのサイズは連続したアドレスの40ワードなどである。このとき前記バンクBメモリ34のサイズは、(40×n)ワードとなる。
そして、前記バンクBポインタ33、バンクBメモリ34、およびバンクB0からバンクB(n−1)は、前記DPM3内にメモリマッピングしたものである。
【0035】
次に
図2にて、前記MPUB2が複数のデータを前記DPM3経由にて、前記MPUA1へ送る手順を説明する。該
図2においてf、g、およびhは前記MPUB2がデータを前記DPM3にライトする手順を、iおよびjは前記MPUA1がデータを前記DPM3からリードする手順を示すものである。そして、該fからj以外の符号を付すものは、前記
図1で同じ符号のものと同じ機能を有しこれの説明は割愛する。
【0036】
次に、該
図2中に示すfからjにて説明する。
f:前記MPUB2は、処理の始めに前記バンクBポインタ33をリードする。
g:前記MPUB2は、前記バンクB0からバンクB(n−1)のうち、
前記バンクBポインタ33が示すNO.のバンクBに
処理の進捗に応じて逐次、
前記MPUA1へ送る複数のデータをライトする。
h:前記MPUB2は、処理の終わりに前記バンクBポインタ33の値を
1だけ加算する。ただし加算の結果、値がn以上となったら
0を前記バンクBポインタ33にライトする。
i:前記MPUA1は、処理の始めに前記バンクBポインタ33をリードする。
j:前記MPUA1は、前記バンクB0からバンクB(n−1)のうち、
前記バンクBポインタ33が1から(n−1)のときは
1だけ減算したNO.のバンクBから、
前記バンクBポインタ33が0のときはバンクB(n−1)から、
処理の進捗に応じて逐次、複数のデータをリードする。
ここで前記MPUB2とMPUA1は、相互に非同期にてそれぞれの処理を実行するものである。また前記のhで、前記バンクBポインタ33の値を1だけ加算によるロータリーアップカウンタとしたが、これに換えて1だけ減算としてロータリーダウンカウンタとしてもよい。
【0037】
かようにして、前記MPUB2が複数のデータを前記DPM3経由にて前記MPUA1に送るとき、前記バンクBポインタ33に基づき、前記MPUB2がライトする前記バンクBと、前記MPUA1がリードする前記バンクBは必ず異なるので、前記DPM3において競合状態は発生することがなく、これにより前記MPUB2およびMPUA1がウェィティング状態に陥ることがない。
また、前記MPUA1は必ず、前記MPUB2がライトを完了したバンクBからデータをリードするので、複数のデータの同時性が確保される。
さらに前記
図2に示したとおり、前記MPUB2とMPUA1間にはハードウェアによる接続はなく、これによりビジー信号によるマイクロプロセッサのウェィティングのタイミング設計が不要となるものである。
【0038】
前記
図1にて前記MPUA1から前記MPUB2へ、また前記
図2にて前記MPUB2から前記MPUA1へデータを送るための構成と手順について説明を行った。この両者は類似の動作であるが、代表して前記
図1について各状態の時間的遷移を
図3、
図4、
図5、および
図6に示し、さらに本発明の実施例1について説明を行う。
【0039】
始めに
図3において(a)および(b)は、それぞれ前記
図1のMPUA1が実行する処理、およびバンクAポインタ31の値の時間的推移を表している。そして、前記MPUA1は該
図3の(a)に示すとおり、所定の周期にて処理A1、処理A2、処理A3、および処理A4と順次実行し、前記
図13の(a)にて示したウェィティング時間はないものである。また図中の時刻TA1、TA2、TA3、およびTA4は、処理A1からA4がそれぞれ終了する時刻を表している。
【0040】
次に前記
図1において、前記バンクAメモリ32はn個のバンクにより構成されるものであるが、該
図3ではnが4の場合で示している。そして、該
図3の(b)バンクAポインタ31は前記時刻TA1まではバンクA2を指定しており、該
図3の(a)においてMPUA1は、処理A1の進捗に応じて逐次、データを前記バンクA2にライトする。そして処理A1の終わりの時刻TA1にて、該
図3の(b)バンクAポインタ31を1だけ加算して3とする。続いて該
図3の(b)バンクAポインタ31は、時刻TA2、TA3、TA4において、それぞれ0、1、2と遷移する。
【0041】
次に該
図3の(c)および(d)は、それぞれ前記
図1のMPUB2が実行する処理、および該MPUB2がアクセス(リード)するバンクAの時間的推移を表している。始めに前記MPUB2は該
図3の(c)に示すとおり、所定の周期にて処理B1、処理B2、処理B3、および処理B4と順次実行し、前記
図13の(c)にて示したウェィティング時間はないものである。また図中の時刻TB1、TB2、TB3、およびTB4は、それぞれ処理B1からB4が開始する時刻を表している。
【0042】
次に該
図3の(d)は、前記MPUB2がリードするバンクAの遷移を示すが、どのバンクAからリードするかは処理の開始のときに決定する。これをさらに該
図3の(c)、(d)にて説明すると、前記MPUB2は処理B1を開始するとき前記バンクAポインタ31の値3をリードし、これを1だけ減じた2、すなわちバンクA2からリードとし、処理B1の進捗に応じて逐次リードする。同様に前記MPUB2は、時刻TB2、TB3、およびTB4において、処理B2、B3、およびB4にてリードするバンクAをそれぞれバンクA3,バンクA0,およびバンクA0とするものである。
【0043】
ここで該
図3の(b)と(d)を対比すると、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは必ず相違している。これにより、前記DPM3において前記MPUA1と前記MPUB2による競合状態が発生することがなく、前記MPUA1およびMPUB2がともにウェィティング状態に陥ることがない。
また前記MPUB2は必ず、前記MPUA1がライトを完了したバンクAからデータをリードするので、複数のデータの同時性が確保される。
さらに前記バンクAポインタ31にてソフトウェアによる調停を行うので、前記MPUA1とMPUB2間にハードウェアによる接続と調停を不要とするものである。
【0044】
ここで該
図3は、前記MPUA1とMPUB2が非同期で動作し、両者の処理時間が概ね等しい場合を想定している。また該
図3の(d)の時刻TB4に続く網掛けは、前記MPUB2がリードするバンクA0が、前の時刻TB3から継続していることを示している。
【0045】
前記
図3にて前記
図1における各状態の時間的推移を説明したが、続いて
図4にて説明を行う。該
図4の(a)、(b)、(c)、および(d)は前記
図3のそれと同じ項目の時間的推移を表し、また該
図4に符号を付すものは、前記
図3に同じ符号を付すものと同じ機能や役割を有するものでその説明は割愛する。
【0046】
そして前記
図3との相違は、該
図4の(a)に示す前記MPUA1の処理時間が、該
図4の(c)に示す前記MPUB2の処理時間より長い場合の時間的推移を示している。このとき該
図4の(b)と(d)を対比すると、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは必ず相違している。これにより、前記DPM3において前記MPUA1と前記MPUB2による競合状態が発生することがなく、本発明の目的を達成することとなる。
ここで該
図4の(d)の網掛けは、前記MPUB2がリードするバンクAが、一周期前の処理から継続していることを表している。
【0047】
さらに、前記
図1における各状態の時間的推移を、前記
図3および
図4に続いて
図5にて説明する。該
図5の(a)、(b)、(c)、および(d)は前記
図3のそれと同じ項目の時間的推移を表し、また該
図5に符号を付すもので、前記
図3にて同じ符号を付すものはこれと同じ機能や役割を有しその説明は割愛する。
【0048】
そして前記
図3、
図4と該
図5の相違は、該
図5の(a)に示す前記MPUA1の処理時間が、該
図5の(c)に示す前記MPUB2の処理時間より短い場合の時間的推移を示している。
【0049】
ここで該
図5の(b)と(d)を対比すると、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは常に必ず相違すべきが、時刻TA8からTB4において同じバンクA3となっている。これにより前記DPM3において、前記MPUA1と前記MPUB2にて競合状態が発生可能となって、本発明の目的の達成に支障となるものである。これの対策としてバンクAの数を増やせばよく、これについて
図6にて説明を行う。
【0050】
ここで前記TA8は、前記
図5の(a)で処理A8が終了する時刻である。また、前記
図5の(b)において網掛けで示すバンクAは、前記MPDUA1がバンクAにライトしても、前記MPDUB2がリードしないバンクAを表している。
【0051】
前記
図5においてバンクAの数は4であったが、これを5とした場合を
図6に示して説明を行う。該
図6の(a)、(b)、(c)、および(d)は前記
図5のそれと同じ項目の時間的推移を表し、また該
図6に符号を付すものは、前記
図5にて同じ符号を付すものと同じ機能や役割を有しその説明は割愛する。
【0052】
該
図6の(b)において、バンクAポインタ31は0から4の範囲で遷移している。そして該
図6の(b)と(d)を対比すると、時刻TA8からTB4のみならず全ての期間において、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは常に必ず相違している。
【0053】
かようにして、前記MPUA1が複数のデータを前記DPM3経由にて前記MPUB2に送るとき、前記バンクAポインタ31に基づき、前記MPUA1がライトする前記バンクAと、前記MPUB2がリードする前記バンクAは必ず異なるので、前記DPM3において競合状態が発生することがなく、これにより前記MPUA1およびMPUB2がウェィティング状態に陥ることがない。
また、前記MPUB2は必ず、前記MPUA1がライトを完了したバンクAからデータをリードするので、複数のデータの同時性が確保される。
さらに前記
図1にて示したとおり、前記MPUA1とMPUB2間にはハードウェアによる接続はなく、これによりビジー信号によるマイクロプロセッサのウェィティングや割り込みのタイミング設計が不要となるものである。
【0054】
ここまで
図1の前記MPUA1から前記MPUB2へデータを送る構成について、前記
図3から
図6にて時間的推移の説明を行った。そして、
図2に示した前記MPUB2から前記MPUA1へ、データを送る場合の時間的推移も前記
図3から
図6と同様である、
【実施例2】
【0055】
次に
図7は、本発明によるバンク方式のデュアルポートメモリの実施例2の構成を説明する図である。該
図7において、前記
図1と同じ符号を付すものはこれと同じ機能を有しておりこれの説明は割愛する。そして該
図7において16は、前記MPUA1が内蔵するか外部に配置するテンポラリメモリAである。同様に26は、前記MPUB2が内蔵するか外部に配置するテンポラリメモリBである。
【0056】
始めに前記MPUA1が、複数のデータを前記DPM3経由にて前記MPUB2へ送る手順を、該
図7中に示すaからfにて説明する。
a:前記MPUA1は、処理の始めに前記バンクAポインタ31をリードする。
b:前記MPUA1は、前記バンクA0からバンクA(n−1)のうち、
前記バンクAポインタ31が示すNO.のバンクAに
処理の進捗に応じて逐次、
前記MPUB2へ送る複数のデータをライトする。
c:前記MPUA1は、処理の終わりに前記バンクAポインタ31の値を
1だけ加算する。ただし加算の結果、値がn以上となったら
0を前記バンクAポインタ31にライトする。
d:前記MPUB2は、処理の始めに前記バンクAポインタ31をリードする。
e:前記MPUB2は、前記バンクA0からバンクA(n−1)のうち、
前記バンクAポインタ31が1から(n−1)のときは
1だけ減算したNO.のバンクAから、
前記バンクAポインタ31が0のときはバンクA(n−1)から、
処理の始めに一括して、全てのデータをリードする。
f:前記MPUB2は、上記のeで一括してリードした全てのデータを、
前記テンポラリメモリB26にセーブし、
処理の進捗に応じて逐次、前記MPUA1からのデータを
前記テンポラリメモリB26からリードする。
ここで前記MPUA1とMPUB2は、相互に非同期にてそれぞれの処理を実行するものである。また前記のcで、前記バンクAポインタ31の値を1だけ加算によるロータリーアップカウンタとしたが、これに換えて1だけ減算としてロータリーダウンカウンタとしてもよい。
【0057】
かようにして、前記MPUA1が複数のデータを前記DPM3経由にて前記MPUB2に送るとき、前記バンクAポインタ31に基づき、前記MPUA1がライトする前記バンクAと、前記MPUB2がリードする前記バンクAは必ず異なるので、前記DPM3において競合状態が発生することがなく、これにより前記MPUA1およびMPUB2がウェィティング状態に陥ることがない。
また、前記MPUB2は必ず、前記MPUA1がライトを完了したバンクAからデータをリードするので、複数のデータの同時性が確保される。
さらに該
図7に示したとおり、前記MPUA1とMPUB2間にはハードウェアによる接続はなく、これによりビジー信号によるマイクロプロセッサのウェィティングのタイミング設計が不要となるものである。
【0058】
次に
図8にて、前記MPUB2が複数のデータを前記DPM3経由にて、前記MPUA1へ送る手順を説明する。該
図8においてh、i、およびjは前記MPUB2がデータを前記DPM3にライトする手順を、k、m、およびnは前記MPUA1がデータを前記DPM3からリードする手順を示すものである。そして、該hからn以外の符号を付すものは、前記
図7で同じ符号のものと同じ機能を有しこれの説明は割愛する。
【0059】
そして、該
図8中に示すhからnにて説明する。
h:前記MPUB2は、処理の始めに前記バンクBポインタ33をリードする。
i:前記MPUB2は、前記バンクB0からバンクB(n−1)のうち、
前記バンクBポインタ33が示すNO.のバンクBに
処理の進捗に応じて逐次、
前記MPUA1へ送る複数のデータをライトする。
j:前記MPUB2は、処理の終わりに前記バンクBポインタ33の値を
1だけ加算する。ただし加算の結果、値がn以上となったら
0を前記バンクBポインタ33にライトする。
k:前記MPUA1は、処理の始めに前記バンクBポインタ33をリードする。
m:前記MPUA1は、前記バンクB0からバンクB(n−1)のうち、
前記バンクBポインタ33が1から(n−1)のときは
1だけ減算したNO.のバンクBから、
前記バンクBポインタ33が0のときはバンクB(n−1)から、
処理の始めに一括して、全てのデータをリードする。
n:前記MPUA1は、上記のmで一括してリードした全てのデータを、
前記テンポラリメモリA16にセーブし、
処理の進捗に応じて逐次、前記MPUB2からのデータを
前記テンポラリメモリA16からリードする。
ここで前記MPUB2とMPUA1は、相互に非同期にてそれぞれの処理を実行するものである。また前記のjで、前記バンクBポインタ33の値を1だけ加算によるロータリーアップカウンタとしたが、これに換えて1だけ減算としてロータリーダウンカウンタとしてもよい。
【0060】
かようにして、前記MPUB2が複数のデータを前記DPM3経由にて前記MPUA1に送るとき、前記バンクBポインタ33に基づき、前記MPUB2がライトする前記バンクBと、前記MPUA1がリードする前記バンクBは必ず異なるので、前記DPM3において競合状態は発生することがなく、これにより前記MPUB2およびMPUA1がウェィティング状態に陥ることがない。
また、前記MPUA1は必ず、前記MPUB2がライトを完了したバンクBからデータをリードするので、複数のデータの同時性が確保される。
さらに該
図8に示したとおり、前記MPUB2とMPUA1間にはハードウェアによる接続はなく、これによりビジー信号によるマイクロプロセッサのウェィティングのタイミング設計が不要となるものである。
【0061】
本発明の実施例2について、前記
図7により前記MPUA1から前記MPUB2へ、また前記
図8により前記MPUB2から前記MPUA1へデータを送るための構成と手順について説明を行った。この両者は類似の動作であるが、代表して前記
図7について各状態の時間的遷移を
図9、
図10、および
図11に示し、さらに本発明の実施例2について説明を行う。
【0062】
始めに
図9について説明を行うが、該
図9は実施例1の
図3に対応している。さて該
図9において(a)および(b)は、それぞれ前記
図7のMPUA1が実行する処理、およびバンクAポインタ31の値の時間的推移を表している。そして、前記MPUA1は該
図9の(a)に示すとおり、所定の周期にて処理A1、処理A2、処理A3、および処理A4と順次実行し、前記
図13の(a)にて示したウェィティング時間はないものである。また図中の時刻TA1、TA2、TA3、およびTA4は、処理A1からA4がそれぞれ終了する時刻を表している。
【0063】
次に前記
図7において、前記バンクAメモリ32はn個のバンクにより構成されるものであるが、該
図9ではnが4の場合で示している。そして、該
図9の(b)バンクAポインタ31は前記時刻TA1まではバンクA2を指定しており、該
図9の(a)においてMPUA1は、処理A1の進捗に応じて逐次、データを前記バンクA2にライトする。そして処理A1の終わりの時刻TA1にて、該
図9の(b)バンクAポインタ31を1だけ加算して3とする。続いて該
図9の(b)バンクAポインタ31は、時刻TA2、TA3、TA4において、それぞれ0、1、2と遷移する。
【0064】
次に該
図9の(c)および(d)は、それぞれ前記
図7のMPUB2が実行する処理、および該MPUB2がアクセス(リード)するバンクAの時間的推移を表している。そして前記MPUB2は該
図9の(c)に示すとおり、所定の周期にて処理B1、処理B2、処理B3、および処理B4と順次実行し、前記
図13の(c)にて示したウェィティング時間はないものである。また図中の時刻TB1、TB2、TB3、およびTB4は、それぞれ処理B1からB4が開始する時刻を表している。
【0065】
次に該
図9の(d)は、前記MPUB2がリードするバンクAの遷移を示すが、どのバンクAからリードするかは処理の開始のときに決定する。これをさらに該
図9の(c)、(d)にて説明すると、前記MPUB2は処理B1を開始するとき前記バンクAポインタ31の値3をリードし、これを1だけ減じた2、すなわちバンクA2からリードとし、処理B1の始めにバンクA2の全てのデータを一括してリードし、前記テンポラリメモリ26に全てセーブする。そして前記MPUB2は処理B1の進捗に応じて逐次、前記テンポラリメモリ26から前記MPUA1のデータをリードする。
【0066】
同様に前記MPUB2は、時刻TB2、TB3、およびTB4において、処理B2、B3、およびB4にて一括してリードするバンクAをそれぞれバンクA3,バンクA0,およびバンクA0とし、前記テンポラリメモリ26にセーブする。ここで該
図9の(c)の各処理において網掛け部分は、前記MPUB2が一括してバンクAからリードし前記テンポラリメモリ26にセーブする時間を模擬的に表し短い時間である。すなわち本発明の実施例2では、前記MPUB2がバンクAを使用する時間を短くするものである。
【0067】
ここで該
図3の(b)と(d)を対比すると、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは必ず相違している。これにより、前記DPM3において前記MPUA1と前記MPUB2による競合状態が発生することがなく、前記MPUA1およびMPUB2がともにウェィティング状態に陥ることがない。
また前記MPUB2は必ず、前記MPUA1がライトを完了したバンクAからデータをリードするので、複数のデータの同時性が確保される。
さらに前記バンクAポインタ31にてソフトウェアによる調停を行うので、前記MPUA1とMPUB2間にハードウェアによる接続と調停を不要とするものである。
【0068】
ここで該
図9は、前記MPUA1とMPUB2が非同期で動作し、両者の処理時間が概ね等しい場合を想定している。また該
図9の(d)の時刻TB4に続く網掛けは、前記MPUB2がリードするバンクA0が、前の時刻TB3から継続していることを示している。
【0069】
前記
図9にて前記
図7における各状態の時間的推移を説明した。続いて
図10にて説明を行うが、該
図10は実施例1の
図4に対応している。さて該
図10の(a)、(b)、(c)、および(d)は前記
図9のそれと同じ項目の時間的推移を表し、また該
図10に符号を付すものは、前記
図9に同じ符号を付すものと同じ機能や役割を有するものでその説明は割愛する。
【0070】
そして前記
図9との相違は、該
図10の(a)に示す前記MPUA1の処理時間が、該
図10の(c)に示す前記MPUB2の処理時間より長い場合の時間的推移を示している。このとき該
図10の(b)と(d)を対比すると、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは必ず相違している。これにより、前記DPM3において前記MPUA1と前記MPUB2による競合状態が発生することがなく、本発明の目的を達成することとなる。
ここで該
図10の(d)の網掛けは、前記MPUB2がリードするバンクAが、一周期前の処理から継続していることを表している。
【0071】
さらに、前記
図7における各状態の時間的推移を、前記
図9および
図10に続いて
図11にて説明を行うが、該
図11は実施例1の
図5に対応している。さて該
図11の(a)、(b)、(c)、および(d)は前記
図9のそれと同じ項目の時間的推移を表し、また該
図11に符号を付すもので、前記
図9にて同じ符号を付すものはこれと同じ機能や役割を有しその説明は割愛する。
【0072】
そして前記
図9、
図10と該
図11の相違は、該
図11の(a)に示す前記MPUA1の処理時間が、該
図9の(c)に示す前記MPUB2の処理時間より短い場合の時間的推移を示している。
【0073】
ここで該
図11の(b)と(d)を対比すると、前記MPUA1がライトするバンクAと前記MPUB2がリードするバンクAは常に必ず相違しており、前記
図5にて問題となった時刻TA8からTB4においてもバンクAは相違している。
ここで前記TA8は、前記
図11の(a)で処理A8が終了する時刻である。また、該
図11の(b)において網掛けで示すバンクAは、前記MPDUA1がバンクAにライトしても、前記MPDUB2がリードしないバンクAを表している。
【0074】
かように本発明の実施例2では、2つのマイクロプロセッサにそれぞれテンポラリメモリを設けることにより、2つのマイクロプロセッサがデータの授受を行うとき、デュアルポートメモリにおいて確実に競合状態が発生することを解消するものである。
また、1つのマイクロプロセッサは必ず、他のマイクロプロセッサがライトを完了したデュアルポートメモリからデータをリードするので、複数のデータの同時性が確保される。
さらに、2つのマイクロプロセッサ間には割り込み信号やビジー信号などの接続がなく、よりシンプルなハードウェアを実現するものである。