JP3995370B2 - 情報処理装置およびそのアクセス制御方法 - Google Patents
情報処理装置およびそのアクセス制御方法 Download PDFInfo
- Publication number
- JP3995370B2 JP3995370B2 JP24401099A JP24401099A JP3995370B2 JP 3995370 B2 JP3995370 B2 JP 3995370B2 JP 24401099 A JP24401099 A JP 24401099A JP 24401099 A JP24401099 A JP 24401099A JP 3995370 B2 JP3995370 B2 JP 3995370B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- access
- word access
- double word
- word
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
この発明は、第一のCPUと、第二のCPUと、前記第一および第二のCPUが共有し、ワード単位でデータを格納する共有メモリと、前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するバスコントロール回路とを有した情報処理装置およびそのアクセス制御方法に関し、特に、前記第一のCPU、前記第二のCPUおよび前記共有メモリと、前記バスコントロール回路とが16ビットデータバスで接続され、16ビットのワード単位でデータ転送され、前記第一のCPUおよび前記第二のCPUが前記共有メモリに対して32ビットのデータセットでアクセス(ダブルワードアクセス)を行う情報処理装置およびそのアクセス制御方法に関するものである。
【0002】
【従来の技術】
図21は、二つのCPUがバスコントロール回路を介して一つの共有メモリを共有する情報処理装置の概要構成を示す図である。図21において、CPU101とCPU102とは、バスコントロール回路103と16ビットデータバスで接続され、共有メモリ104は、バスコントロール回路103と16ビットデータバスで接続される。CPU101,102は、共有メモリ104に対して16ビット単位でデータを転送し、共有メモリ104は、16ビット単位でデータを格納する。すなわち、CPU101,102は、ワード(16ビット)単位で共有メモリ104をアクセスすることができる。
【0003】
ところで、CPU101,102は、共有メモリ104に対して、連続する32ビットを一つのデータセット(ダブルワード)としてアクセスを行う場合がある。CPU101,102が共有メモリ104に対してダブルワードアクセスを行う場合、転送単位は16ビットであることから、共有メモリに対して2回のアクセスを行う必要がある。この場合、共有メモリ104は、CPU101,102によって共有されるため、アクセスの競合によっては、所望のダブルワードアクセスが行われない、いわゆる「データの泣別れ」が生じることになる。
【0004】
図22は、この「データの泣別れ」が生じる場合を説明する図である。図22において、共有メモリは、データを16ビットのワード単位で格納し、ワード単位の連続するデータ「A」,「B」からなるダブルワードは、アドレス「4n」,「4n+2」に連続して格納される。この場合におけるアドレスは、バイトアドレスで表され、アドレス「4n」および「4n+2」に示す「n」は、バイト(8ビット)数を表す。なお、アドレス「4n」,「4n+2」の順序で格納しているのは、アクセスの回路構成が単純になるからである。すなわち、4の倍数(4n)は、CPUが出力するアドレス信号の下位2ビットを「00」として判別することができ、4の倍数+2(4n+2)は、アドレス信号の下位2ビットを「10」として判別することができ、これらの判別は、インバータ回路とアンド回路のみによって簡単に回路構成できるからである。
【0005】
図22は、CPU102がデータ「A」,「B」からなるダブルワードを読み出す際に、CPU101がデータ「X」を書き込む処理が競合し、データの泣別れが生ずる場合を示している。図22(a)において、CPU102は、アドレス「4n」からデータ「A」を読み出し(リード)し(S101)、その後データ「B」を連続して読み出そうとするが、図22(b)に示すように、このデータ「B」のリード前に、CPU101がデータ「X」をアドレス「4n+2」に書き込み(ライトし)(S102)、その後、図22(c)に示すように、CPU102が、アドレス「4n+2」のデータ「X」を読み出して(S103)しまっている。CPU102は、アドレス「4n」,「4n+2」をアクセスして、データ「A」,「B」をリードするはずであったが、CPU101によってアドレス「4n+2」にデータ「X」がライトされて更新されてしまったため、データ「A」,「X」をリードしてしまっている。このような「データの泣別れ」の発生によって、データのリード/ライトの整合性がとれなくなるという問題が生じる。
【0006】
このような「データの泣別れ」を防止するため、図23に示すように、バスコントロール回路103内には、泣別れ防止回路110のハードウェアを設けている。すなわち、バスコントロール回路103には、ダブルワードアクセスを行う旨が設定されるダブルワードアクセス設定レジスタ111a,111bが設けられるとともに、泣別れ防止回路110には、ダブルワードアクセスが行われた際に、ダブルワードを構成する各ワードを一時格納するバッファ114a,114bが設けられ、ダブルワードアクセス時における「データの泣別れ」を防止するようにしている。
【0007】
図24および図25は、共有メモリ104からダブルワードをリードする際の泣別れ防止回路110の動作を示す図である。図24において、まず、CPU101は、ダブルワードアクセスの前に、ダブルワードアクセス設定レジスタ111aに対して、ダブルワードアクセスであることを設定しておく。そして、CPU101は、アドレス「4n」に対するリードアクセス要求を泣別れ防止回路110に発行する(S201)と、泣別れ防止回路110は、このアクセスがダブルワードアクセスであることをダブルワードアクセス設定レジスタ111aの設定によって知っているので、共有メモリ104のアドレス「4n」からデータ「A」をリードし(S202)、さらに連続してアドレス「4n+2」からデータ「B」をリードする(S203)。そして、泣別れ防止回路110は、リードしたデータ「A」は、そのままCPU101に出力し(S204)、2回目にリードしたデータ「B」は、バッファ114aに一時格納する(S205)。なお、この泣別れ防止回路110によるデータ「A」,「B」のリードアクセス時には、他のCPU102に対して、ウェイト信号を送出し、CPU102をウェイト状態にし(S206)、他のCPU102による共有メモリ104に対するアクセスを許可しない。
【0008】
図25において、データ「B」がバッファ114aに一時格納されると、泣別れ防止回路110は、他のCPU102に対するウェイト状態を解除し(S207)、他のCPU102による共有メモリ104に対するアクセスを許容する。この場合、他のCPU102は、通常のワードアクセスのほか、ダブルワードアクセスであっても、アクセスが可能である。その後、CPU101からアドレス「4n+2」に対するリードアクセス要求が泣別れ防止回路110に発行される(S208)と、泣別れ防止回路110は、共有メモリ104にリードアクセスすることなく、バッファ114aに一時格納されていたデータ「B」をCPU101に出力する(S209,S210)。
【0009】
一方、図26および図27は、共有メモリ104にダブルワードをライトする際の泣別れ防止回路110の動作を示す図である。図26において、まず、CPU101は、ダブルワードアクセスの前に、ダブルワードアクセス設定レジスタ111aに対して、ダブルワードアクセスであることを設定しておく。そして、CPU101は、アドレス「4n」に対するライトアクセスを泣別れ防止回路110に対して発行し(S301)、データ「A」を泣別れ防止回路110に送出する。泣別れ防止回路110は、このライトアクセスがダブルワードアクセスであることをダブルワードアクセス設定レジスタ111aの設定によって知っているので、共有メモリ104のアドレス「4n」に対するデータ「A」のライトアクセス要求時には、共有メモリ104に対してはライトアクセスを行わずに、データ「A」をバッファ114aに一時格納する(S303)。なお、この泣別れ防止回路110によるデータ「A」のライトアクセス要求時には、他のCPU102に対してウェイト解除状態に設定し(S304)、他のCPU102によるアクセスを許可する。
【0010】
その後、図27において、CPU101からアドレス「4n+2」に対するライトアクセス要求が泣別れ防止回路110に発行され(S305)、データ「B」が泣別れ防止回路110に送出される(S306)と、泣別れ防止回路110は、バッファ114aに一時格納されていたデータ「A」を共有メモリ104のアドレス「4n」に対してライトアクセスし(S307,S308)、その後、入力されたデータ「B」をそのまま、共有メモリ104のアドレス「4n+2」にライトアクセスする(S309)。なお、泣別れ防止回路110は、データ「A」,「B」を共有メモリ104にライトアクセスしている際には、他のCPU102をウェイト状態にし(S310)、他のCPU102からのアクセスを許可しない。
【0011】
このようにして、泣別れ防止回路110は、ダブルワードアクセス時におけるデータの整合性を維持できるようにしている。なお、泣別れ防止回路110内に、調停回路を設けておくことによって、CPU101,102がほぼ同時あるいは全く同時に共有メモリ104に対して、通常のワードアクセスあるいはダブルワードアクセスを発行した場合のアクセス権を調停するようにしている。たとえば、CPU101,102がほぼ同時に共有メモリ104に対してアクセスを発行した場合には、早くアクセスを発行したCPU側にアクセス権を与え、全く同時に共有メモリ104に対してアクセスを発行した場合には、予め設定されている優先順位の高いCPU側にアクセス権を与え、アクセス権が与えられなかったCPU側をウェイト状態に設定してアクセスを許可しないようにしている。
【0012】
【発明が解決しようとする課題】
しかしながら、上述した泣別れ防止回路110を有する情報処理装置では、CPU101,102による共有メモリ104に対するダブルワードアクセスの回路構成を簡単にするため、アドレスを4の倍数(4n)と4の倍数+2(4n+2)という順序で格納あるいはアクセスさせるようにしていたため、共有メモリ104にダブルワードを格納する場合、ダブルワードの先頭アドレスが常に4の倍数(4n)となり、共有メモリ104上の4の倍数±2(4n±2)アドレスのメモリ領域に空きがある場合であっても、このメモリ領域を有効利用することができないという問題点があった。
【0013】
また、共有メモリ104に対するダブルワードアクセスのアドレス指定は、1回目が4の倍数(4n)とし、2回目が4の倍数+2(4n+2)とする制約を受けているため、メモリのアドレスが大きいメモリ領域からアドレスが小さいメモリ領域となるアクセス順でダブルワードアクセスを行う場合、たとえば、1回目:4n→2回目:4n+2→3回目:4n−4→4回目:4n−2というように、アドレス指定処理が複雑となり、アドレス指定にかかる負荷と労力がかかるという問題点もあった。
【0014】
一方、従来の泣別れ防止回路110を有する情報処理装置では、一方のCPU101が共有メモリ104に対してアクセスしている場合には、他のCPU102のアクセスをウェイト状態にしており、他のCPU102の待ち時間が長くなり、情報処理装置全体の動作処理速度が低下するという問題点があった。
【0015】
この発明は上記に鑑みてなされたもので、ワード単位でデータ転送を行い、複数のCPUが共有メモリを共有する場合におけるダブルワードアクセスをメモリ領域の有効利用を図りつつデータの泣別れを防止し、さらにダブルワードアクセス時のアドレス指定を簡易かつ柔軟に行うことができる情報処理装置およびそのアクセス制御方法を得ることを目的とする。また、ダブルワードアクセスが競合する場合が生じても、情報処理装置全体の動作処理速度の低下を防止することができる情報処理装置およびそのアクセス制御方法を得ることを目的とする。
【0016】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる情報処理装置は、第一のCPUと、第二のCPUと、前記第一および第二のCPUが共有し、ワード単位でデータを格納する共有メモリと、前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するバスコントロール回路とを有した情報処理装置において、前記バスコントロール回路は、前記第一のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第一のバッファと、前記第二のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第二のバッファと、前記第一のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第一のダブルワードアクセス設定レジスタと、前記第二のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第二のダブルワードアクセス設定レジスタと、前記第一のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第一の昇順/降順設定レジスタと、前記第二のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第二の昇順/降順設定レジスタと、前記第一および第二のダブルワードアクセス設定レジスタに設定された情報と、前記第一および第二の昇順/降順設定レジスタに設定された情報とに基づいて前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するアクセスコントロール回路と、を備え、前記第一および第二のCPUは、前記共有メモリに対してのダブルワードアクセスを行う場合、自身に対応する第一または第二のダブルワードアクセス設定レジスタに前記共有メモリへのアクセスがダブルワードアクセスであることを示す情報を設定するとともに、自身に対応する第一または第二の昇順/降順設定レジスタにダブルワードアクセスのための2回のワードアクセス要求のアドレス指定を昇順で行うのか降順で行うのかを示す情報を設定した後に、前記共有メモリに対するダブルワードアクセスとして2回のワードアクセス要求を出力し、前記アクセスコントロール回路は、前記第一または第二のCPUからのワードアクセス要求がリードであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、前記共有メモリからワードアクセス要求されたアドレスのデータを読み出して当該CPUに出力するとともに、要求されたアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報とに基づいて当該CPUが2回目に出力するワードアクセス要求のアドレスを認識し、前記共有メモリから認識したアドレスのデータを読み出して当該CPUに対応する第一または第二のバッファに格納し、当該CPUからの2回目のワードアクセス要求を受けた際に当該CPUに対応する第一または第二のバッファに格納されたデータを当該CPUに出力し、前記第一または第二のCPUからのワードアクセス要求がライトであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、ワードアクセス要求されたデータを当該CPUに対応する第一または第二のバッファに格納し、当該CPUからの2回目のワードアクセス要求を受けた際に2回目のワードアクセス要求のアドレスに2回目のワードアクセス要求のデータを格納するとともに、2回目のワードアクセス要求のアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報に基づいて当該CPUが1回目に出力したワードアクセス要求のアドレスを認識し、前記共有メモリの該認識したアドレスに当該CPUに対応するバッファに保持されたデータを格納すること、を特徴とする。
【0018】
つぎの発明にかかる情報処理装置は、上記の発明において、前記バスコントロール回路は、前記第一のCPUからのダブルワードアクセス時における1回目のワードアクセス要求であるのか2回目のワードアクセス要求であるのかの情報が設定される第一の回数フラグと、前記第二のCPUからのダブルワードアクセス時における1回目のワードアクセス要求であるのか2回目のワードアクセス要求であるのかの情報が設定される第二の回数フラグと、をさらに備え、前記アクセスコントロール回路は、前記第一または第二のCPUからのワードアクセス要求がリードであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二のバッファにデータを格納した際に当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセスであることを示す情報を設定し、2回目のワードアクセス要求によって当該CPUのバッファに格納したデータを当該CPUに送信した際に当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセスであることを示す情報を設定し、前記第一または第二のCPUからのワードアクセス要求がライトであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二のバッファにデータを格納した際に当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセスであることを示す情報を設定し、2回目のワードアクセス要求によって1回目および2回目のワードアクセス要求によるデータを前記共有メモリに格納した際に当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセスであることを示す情報を設定し、前記第一または第二のCPUからのワードアクセス要求がリードであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセスであることを示す情報が設定されている期間のみ当該CPUとは異なるCPUを待機状態とし、前記第一または第二のCPUからのワードアクセス要求がライトであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセスであることを示す情報が設定されている期間のみ当該CPUとは異なるCPUを待機状態とすること、を特徴とする。
【0024】
つぎの発明にかかる情報処理装置のアクセス制御方法は、第一のCPUと、第二のCPUと、前記第一および第二のCPUが共有し、ワード単位でデータを格納する共有メモリと、前記第一のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第一のバッファ、前記第二のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第二のバッファ、前記第一のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第一のダブルワードアクセス設定レジスタ、前記第二のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第二のダブルワードアクセス設定レジスタ、前記第一のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第一の昇順/降順設定レジスタ、前記第二のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第二の昇順/降順設定レジスタ、および前記第一および第二のダブルワードアクセス設定レジスタに設定された情報と前記第一および第二の昇順/降順設定レジスタに設定された情報とに基づいて前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するアクセスコントロール回路を有するバスコントロール回路とを有した情報処理装置のアクセス制御方法であって、前記第一または第二のCPUが、前記共有メモリに対してダブルワードアクセスを行う場合、自身に対応する前記第一または第二のダブルワードアクセス設定レジスタに前記共有メモリへのアクセスがダブルワードであることを示す情報を設定するとともに、自身に対応する前記第一または第二の昇順/降順設定レジスタにアドレス指定を昇順で行うのか降順で行うのかを示す情報を設定するダブルワードアクセス前処理工程と、前記第一または第二のCPUが、前記ダブルワードアクセス前処理工程の後に前記共有メモリに対するダブルワードアクセスの1回目のワードアクセス要求を出力する第一のワードアクセス要求工程と、前記アクセスコントロール回路が、前記第一または第二のCPUからの1回目のワードアクセス要求がリード要求であって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、前記共有メモリから1回目にワードアクセス要求されたアドレスのデータを読み出して当該CPUに出力するとともに、要求されたアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報に基づいて当該CPUが2回目に出力するワードアクセス要求のアドレスを認識し、前記共有メモリから認識したアドレスのデータを読み出して当該CPUに対応する第一または第二のバッファに格納し、前記第一または第二のCPUからの1回目のワードアクセス要求がライト要求であって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、ワードアクセス要求されたデータを当該CPUに対応する第一または第二のバッファに格納する第一のアクセス工程と、前記第一または第二のCPUが、前記ダブルワードアクセス前処理工程の後に前記共有メモリに対するダブルワードアクセスの2回目のワードアクセス要求を出力する第二のワードアクセス要求工程と、前記アクセスコントロール回路が、前記第一または第二のCPUからの2回目のワードアクセス要求がリード要求であって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二のバッファに格納されたデータを当該CPUに出力し、前記第一または第二のCPUからの2回目のワードアクセス要求がライトであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、2回目のワードアクセス要求のアドレスに2回目のワードアクセス要求のデータを格納するとともに、2回目のワードアクセス要求のアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報に基づいて当該CPUが1回目に出力したワードアクセス要求のアドレスを認識し、前記共有メモリの該認識したアドレスに当該CPUに対応するバッファに保持されたデータを格納する第二のアクセス工程と、を含むことを特徴とする。
【0026】
つぎの発明にかかる情報処理装置のアクセス制御方法は、上記の発明において、前記バスコントロール回路は、前記第一のCPUからのダブルワードアクセス時における1回目のワードアクセスであるのか2回目のワードアクセスであるのかの情報が設定される第一の回数フラグと、前記第二のCPUからのダブルワードアクセス時における1回目のワードアクセスであるのか2回目のワードアクセスであるのかの情報が設定される第二の回数フラグと、をさらに備え、前記アクセスコントロール回路が行う第一のアクセス工程は、第一または第二のバッファにデータを格納した際に当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセス要求であることを示す情報を設定する工程を含み、前記アクセスコントロール回路が行う第二のアクセス工程は、前記第一または第二のバッファに格納したデータを当該CPUに出力した場合、または前記第一または第二のバッファに格納したデータを前記共有メモリに格納した場合に、当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセス要求であることを示す情報を設定する工程と、前記第一または第二のCPUからのワードアクセス要求がリードであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合に、当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセス要求であることを示す情報が設定されている期間は当該CPUとは異なるCPUを待機状態とし、前記第一または第二のCPUからのワードアクセス要求がライトであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合に、当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセス要求であることを示す情報が設定されている期間は当該CPUとは異なるCPUを待機状態とする工程と、を含むことを特徴とする。
【0034】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる情報処理装置およびそのアクセス制御方法の好適な実施の形態を詳細に説明する。
【0035】
実施の形態1.
まず、この発明の実施の形態1について説明する。図1は、この発明の実施の形態1である情報処理装置の構成を示すブロック図である。図1において、この情報処理装置は、二つのCPU1,2と、バスコントロール回路3と、共有メモリ4とを有する。CPU1,2とバスコントロール回路3との間と、共有メモリ4とバスコントロール回路3との間とは、それぞれ16ビットデータバスB1,B2,B4によって接続され、CPU1,2は、共有メモリ4に対して16ビット(ワード)単位でアクセスが可能である。共有メモリ4は、ワード単位でデータを格納する。バスコントロール回路3は、32ビットが連続して意味をもつダブルワードのアクセス制御も行い、各CPU1,2に対するデータの整合性をとるようにしている。
【0036】
バスコントロール回路3は、泣別れ防止回路10を有し、泣別れ防止回路10は、CPU1,2による共有メモリ4へのアクセスがダブルワードアクセスか否かを設定するダブルワードアクセス設定レジスタ11a,11b、CPU1,2によるダブルワードアクセス時のアドレス指定が昇順か降順かを設定する昇順/降順設定レジスタ12a,12b、CPU1,2によるダブルワードアクセス時のアクセスが1回目か2回目かを判別する回数フラグ13a,13b、CPU1,2によるダブルワードアクセス時における1回分の16ビットデータを一時格納するバッファ14a,14b、および泣別れ防止制御回路20を有する。
【0037】
つぎに、図2〜図4を参照して、CPU1による昇順のダブルワードリードアクセスについて泣別れ防止制御回路20の動作処理を中心に説明する。図2は、CPU1がダブルワードリードアクセスを行う場合の前処理を説明する図である。図2において、CPU1は、ダブルワードリードアクセスを行う場合、まずI/Oライト(S1)によってダブルワードアクセス設定レジスタ11aの内容を「1」に設定し、ダブルワードアクセスを行うことを設定する。また、I/Oライト(S2)によって、昇順/降順設定レジスタ12aの内容を「1」に設定し、アドレス指定を昇順によって行うことを設定する。
【0038】
図3において、その後、CPU1は、ダブルワードリードアクセスのうちの1回目のアクセス要求、すなわち、アドレス「2n」(nはバイト数)のデータ「A」に対するリードアクセス要求が発行される(S11)と、泣別れ防止制御回路20は、アドレス「2n」のデータ「A」をリードし(S12)、そのままCPU1に出力する(S13)。ダブルワードアクセス設定レジスタ11aが「1」に設定されていることから、残りのワードアクセスがあることを認識し、昇順/降順設定レジスタ12aが「1」に設定されていることから、昇順であることを認識し、アドレス「2n」に「2」を付加したアドレス「2n+2」に格納されたデータ「B」をリードする(S14)。このリードされたデータ「B」は、バッファ14aに格納される(S15)。また、この時点で、回数フラグ13aは、「0」から「1」に設定される(S16)。なお、この間、CPU2に対しては、ウェイト状態に設定される(S17)、回数フラグが「1」に設定された時点で、ウェイト解除状態に移行する(S22)。
【0039】
図4において、その後、CPU1は、アドレス「2n+2」のデータ「B」に対するリードアクセス要求が発行される(S18)と、泣別れ防止回路20は、バッファ14aに一時格納されたデータ「B」を読み出し(S19)、CPU1に、この読み出したデータ「B」を出力する(S20)。さらに、このデータ「B」がCPU1に出力された時点で、回数フラグ13aは、「1」から「0」に設定される。また、ダブルワードアクセス設定レジスタ11aを「0」にリセットする。
【0040】
なお、図2〜図4において、昇順のダブルワードリードアクセスについて説明したが、降順のダブルワードリードアクセスについても同様である。ただし、図2に示す前処理において、昇順/降順設定レジスタ12aは、「0」に設定され、降順であることが設定される。また、2回目のアドレス指定はアドレス「2n+2」ではなく、アドレス「2n−2」となる。また、CPU2によるダブルワードリードアクセスについても、CPU1によるダブルワードリードアクセスと同様にして行うことができる。
【0041】
つぎに、図5および図6を参照して、CPU1による降順のダブルワードライトアクセスについて泣別れ防止制御回路20の動作処理を中心に説明する。まず、CPU1は、ダブルワードライトアクセスを行う場合、まずI/Oライト(S1)によってダブルワードアクセス設定レジスタ11aの内容を「1」に設定し、ダブルワードアクセスを行うことを設定する。また、I/Oライト(S2)によって、昇順/降順設定レジスタ12aの内容を「0」に設定し、アドレス指定を降順によって行うことを設定する。
【0042】
図5において、その後、CPU1は、ダブルワードライトアクセスのうちの1回目のアクセス要求、すなわち、アドレス「2n」(nはバイト数)に対するデータ「B」に対するライトアクセス要求が発行される(S31)と、泣別れ防止制御回路20は、アドレス「2n」のデータ「B」をバッファ14aに一時格納し(S32)、回数フラグ13aを「0」から「1」に設定される(S33)。なお、この場合、他のCPU2に対しては、そのままウェイト解除状態が維持される。すなわち、この状態では、泣別れ防止制御回路20は、共有メモリ4に対してアクセスを行っておらず、CPU2は、共有メモリ4に対してアクセスが可能となる。
【0043】
図6において、その後、CPU1は、アドレス「2n」の降順であるアドレス「2n−2」に対するデータ「A」のライトアクセス要求が発行される(S3418)と、泣別れ防止回路20は、CPU2をウェイト状態に設定し(S38)、バッファ14aに一時格納されたデータ「B」を読み出し(S37)、アドレス「2n」に対してデータ「B」をライトし(S35)、その後、ライトアクセス要求したデータ「A」をそのままアドレス「2n−2」にライトする(S36)。そして、回数フラグ13aを「1」から「0」に戻し(S39)、CPU2をウェイト解除状態に設定する。
【0044】
なお、図5および図6において、降順のダブルワードライトアクセスについて説明したが、昇順のダブルワードライトアクセスについても同様である。ただし、図2に示す前処理において、昇順/降順設定レジスタ12aは、「1」に設定され、昇順であることが設定される。また、2回目のアドレス指定はアドレス「2n−2」ではなく、アドレス「2n+2」となる。また、CPU2によるダブルワードライトアクセスについても、CPU1と同様にしてダブルワードライトアクセスを行うことができる。
【0045】
ここで、あるブロック単位でCPU1がダブルワードでライトし、このライトしたメモリ領域をCPU2によるダブルワードでリードする場合について考える。すなわち、CPU2が昇順でダブルワードライトを行ったときに、CPU2が昇順でダブルワードリードを行うと、先頭のメモリ領域において、CPU1がライトした後に、CPU2がリードすれば最新のデータをリードすることができるが、ブロックの後半において、何らかの原因、たとえばCPU1とCPU2との処理速度の違いによってCPU1によるライトとCPU2によるリードとが逆転した場合、CPU2がリードするデータが最新のものではなくなってしまう。
【0046】
CPU1が昇順でダブルワードライトを行ったときに、CPU2が降順でメモリの最後尾からダブルワードリードを行うと、最後尾が最新になっていれば、他のメモリ領域も最新になっており、古いデータを使ってしまうことはなくなる。従来のアクセス制御方法では、昇順のアクセスしか行うことができなかったため、1回目:4n→2回目:4n+2→3回目:4n−4→4回目:4n−2というようなアドレス指定しかできず、アドレス指定のソフトウェアが複雑なものとなっていたが、この実施の形態1によれば、1回目:2n→2回目:2n−2→3回目:2n−4→4回目:2n−6となり、単にアドレスをデクリメントする処理のみでアドレス指定を行うことができる。
【0047】
この実施の形態1によれば、回数フラグ13a,13bにフラグ設定をもとに、ダブルワードアクセスの1回目のアクセスか2回目のアクセスかを判別することができるので、ダブルワードアクセスの場合にもワード(「2n」)単位で共有メモリに格納あるいはアクセスを行うことができ、共有メモリの有効利用を図ることができる。また、昇順/降順設定レジスタ12a,12bを設けて、昇順/降順のダブルワードアクセスを可能とし、柔軟なダブルワードアクセスが実現され、しかもワード単位で単にアドレスをインクリメントあるいはデクリメントするのみでアドレス指定を行うことができ、アドレス指定にかかるソフトウェアの負荷を軽減することができる。
【0048】
実施の形態2.
つぎに、この発明の実施の形態2について説明する。実施の形態1では、ワード(「2n」)単位で昇順/降順のダブルワードアクセスを可能とし、しかもメモリの有効利用を図ることができるものであったが、この実施の形態2では、ダブルワードアクセスが競合した場合に交互にアクセスさせる調停を行って、ダブルワードアクセス時における一方のCPUのウェイト時間が長くなることによる情報処理装置全体の処理速度の低下を防止するようにしている。
【0049】
図7は、この発明の実施の形態2である情報処理装置の構成を示すブロック図である。図7において、この情報処理装置は、図1に示した情報処理装置と同様に、二つのCPU1,2と、バスコントロール回路3と、共有メモリ4とを有する。CPU1,2とバスコントロール回路3との間と、共有メモリ4とバスコントロール回路3との間とは、それぞれ16ビットデータバスB1,B2,B4によって接続され、CPU1,2は、共有メモリ4に対して16ビット(ワード)単位でアクセスが可能である。共有メモリ4は、ワード単位でデータを格納する。バスコントロール回路3は、32ビットが連続して意味をもつダブルワードのアクセス制御も行い、各CPU1,2に対するデータの整合性をとるようにしている。
【0050】
バスコントロール回路3は、各CPU1,2からのアクセス要求S51,S52が競合した場合に、CPU1,2による共有メモリ4に対するアクセスを交互に行うようにする調停部30と、クロック発生部40とを有する。調停部30のタイミング調停部31は、CPU1,2からのアクセス要求S51,S52をクロックCKをもとに交互に検出し、検出結果をメモリアクセス信号S53,S54としてオア回路32に出力する。オア回路32は、メモリアクセス信号S53,S54の論理和をとり、その論理和結果を共有メモリ4に対する最終的なメモリアクセス信号として出力し、これによって、CPU1,2によるアクセスが競合した場合に、各CPU1,2による共有メモリ4に対するアクセスを交互に行うようにしている。
【0051】
なお、この実施の形態2は、実施の形態1と同様にダブルワードアクセス設定レジスタ11a,11bおよびバッファ14a,14bに対応するダブルワードアクセス設定レジスタおよびバッファを有している。この場合、バッファは、少なくとも1つのダブルワードを一時格納する領域を有する。また、この実施の形態2では、ダブルワードの共有メモリの格納開始あるいはアクセス開始のアドレスは、ワードアドレスであり、偶数「2m」のワードアドレスから開始し、奇数「2m+1」のワードアドレスで終了するという固定的な制御が行われる。
【0052】
ここで、図8に示すタイミングチャートを参照して、調停部30によるアクセス調停処理について説明する。まず、クロック発生部40が発生するクロックCKの立ち上がりは、CPU1による動作タイミングとして用い、クロックCKの立ち下がりは、CPU2による動作タイミングとして用いられる。なお、共有メモリ4に対するアクセスは、クロックCKの1周期内に終了するものとする。図8では、CPU1からのアクセス要求S51の後に、CPU2からのアクセス要求S52があった場合を示している。図8において、クロックCKの立ち上がりP1では、CPU1によるアクセス要求S51がなされており、アクセス要求S51がオン状態となっている。また、CPU2によるアクセス要求S52がなされており、アクセス要求S52がオン状態となっている。ここで、CPU2によるメモリアクセス信号S54はオフ状態であるため、CPU1によるメモリアクセス信号S53をオン状態にし、最終的にCPU1によるメモリアクセス信号S53をメモリアクセス信号S55として共有メモリ4に出力する。なお、上述したオン/オフ状態は、各信号S51〜S55のH/Lに対応する。
【0053】
その後、クロックCKの立ち下がりP2では、CPU2によるアクセス要求S52がなされているが、CPU1によるメモリアクセス信号S53がオン状態でメモリアクセス中であるため、この時点P2では、CPU2によるメモリアクセスを行うことができない。さらに、クロックCKの立ち上がりP3では、メモリアクセス信号S53のオン状態が1周期分経過したので、メモリアクセス信号S53をオフ状態にする。
【0054】
その後、クロックCKの立ち下がりP4では、CPU1,2によるアクセス要求S51,S52がともにオン状態であり、しかもCPU1によるメモリアクセス信号S53がオフ状態であるので、CPU2によるメモリアクセス信号S54をオン状態にする。クロックCKの立ち上がりP5では、CPU1,2によるアクセス要求S51,S52がともにオン状態であるが、CPU2によるメモリアクセス信号S53がオン状態であるため、CPU1によるメモリアクセスを行うことができない。
【0055】
その後、クロックCKの立ち下がりP6では、メモリアクセス信号S54のオン状態が1周期分経過したので、メモリアクセス信号S54をオフ状態にする。クロックCKの立ち下がりP7では、CPU1,2によるアクセス要求S51,S52がともにオン状態であり、しかもCPU2によるメモリアクセス信号S54がオフ状態であるので、CPU1によるメモリアクセス信号S53をオン状態にする。
【0056】
その後、クロックCKの立ち下がりP8では、CPU1,2によるアクセス要求S51,S52がともにオン状態であるが、CPU1によるメモリアクセス信号S53がオン状態であるため、CPU2によるメモリアクセスは行うことができない。さらに、クロックCKの立ち上がりP9では、CPU1による2回目のメモリアクセスが終了し、これにより、CPU1のアクセス要求S51をオフ状態にする。
【0057】
その後、クロックCKの立ち下がりP10では、CPU2によるアクセス要求S52がオン状態であるが、CPU1によるアクセス要求S51およびメモリアクセス信号S52がともにオフ状態であるため、CPU2によるメモリアクセス信号S54をオン状態にする。その後、クロックCKの立ち下がりP11では、CPU2によるメモリアクセスが終了し、これにより、CPU2によるアクセス要求S2をオフ状態にする。
【0058】
このように調停部30は、CPU1,2からのメモリアクセスが競合した場合、クロックCKの立ち上がりおよび立ち下がりをそれぞれ各CPU1,2の動作タイミングに設定して、交互にメモリアクセスを行わせているので、CPU1あるいはCPU2が長いウェイト時間をとることによる情報処理装置全体の処理速度低下を防止することができる。
【0059】
ここで、CPU1,2による共有メモリ4へのアクセスが競合する場合に、データの整合性を維持しつつ、アクセスが交互に行われ、ウェイト時間が各CPU1,2に分散される具体例を説明する。図9〜図12は、CPU2によるダブルワードリードアクセスが先に行われ、このダブルワードリードアクセスとCPU1によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【0060】
図9において、共有メモリ4のアドレス「2m」,「2m+1」には、それぞれデータ「A」,「B」が格納されている。CPU2は、このデータ「A」,「B」をリードするアクセスを行い、CPU1は、アドレス「2m」,「2m+1」にデータ「C」,「D」をライトするアクセスを行う。まず、CPU2は、共有メモリ4のアドレス「2m」からデータ「A」をリードする。その後、図10において、CPU1は、共有メモリ4のアドレス「2m」にデータ「C」をライトする。その後、図11において、CPU2は、アドレス「2m+1」のデータ「B」をリードする。その後、図12において、CPU1は、アドレス「2m+1」にデータ「D」をライトする。このようにして、CPU2は、データ「A」,「B」をリードすることができ、CPU1は、データ「C」,「D」をライトすることができ、最終的にデータの整合性は保たれたことになる。
【0061】
同様にして、図13〜16は、CPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルリードライトアクセスとが競合する場合の処理を示す図である。共有メモリ4のアドレス「2m」,「2m+1」には、それぞれデータ「A」,「B」が格納されており、CPU1は、このアドレス「2m」,「2m+1」にデータ「C」,「D」をライトするアクセスを行い、CPU2は、アドレス「2m」,「2m+1」のデータをダブルワードリードする。図13において、まず、CPU1は、共有メモリ4のアドレス「2m」にデータ「C」をライトする。その後、図14において、CPU2は、アドレス「2m」にライトされたデータ「C」を読み込む。その後、図15において、CPU1は、共有メモリ4のアドレス「2m+1」にデータ「D」をライトする。その後、図16において、CPU2は、アドレス「2m+1」にライトされたデータ「D」をリードする。このようにして、CPU1は、データ「C」,「D」をライトすることができ、CPU2は、アドレス「2m」,「2m+1」における最新のデータであるデータ「C」,「D」をリードすることができ、最終的にデータの整合性は保たれたことになる。
【0062】
同様にして、図17〜図20は、CPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルワードライトアクセスとが競合する場合の処理を示す図である。共有メモリ4のアドレス「2m」,「2m+1」には、それぞれデータ「A」,「B」が格納されており、CPU1は、このアドレス「2m」,「2m+1」にデータ「C」,「D」をライトするアクセスを行い、CPU2は、このアドレス「2m」,「2m+1」にデータ「E」,「D」をライトするアクセスを行う。図17において、まず、CPU1は、共有メモリ4のアドレス「2m」にデータ「C」をライトする。その後、図18において、CPU2は、アドレス「2m」にデータ「E」をライトする。その後、図19において、CPU1は、アドレス「2m+1」にデータ「D」をライトする。その後、図20において、CPU2は、アドレス「2m+1」にデータ「F」をライトする。このようにして、CPU1は、データ「C」,「D」をライトすることができ、CPU2は、データ「E」,「F」をライトし、最終的に共有メモリ4には、データ「E」,「F」がライトされ、データの整合性は保たれたことになる。なお、図9〜図20に示した例を実施の形態1に当てはめた場合、各CPU1,2によるダブルワードアクセスのワード単位のアクセスは、連続して行われることになる。
【0063】
この実施の形態2によれば、各CPU1,2によるダブルワードアクセスが競合した場合でも、調停部30が各CPU1,2による共有メモリ4に対するワード単位のアクセスを交互に行わせるようにしているので、一方のCPUの待ち時間が長くなることがなく、情報処理装置全体の処理速度を低下を防ぐことができる。
【0064】
なお、上述した実施の形態1,2では、共有メモリ4がワード単位でデータを格納し、CPU1,2とバスコントロール回路3との間のデータバスおよび共有メモリ4とバスコントロール回路3とのデータバスは、16ビット幅でワード単位でデータ転送することができる場合におけるCPU1,2による共有メモリ4に対するダブルワードアクセスを行う情報処理装置をそれぞれ一実施形態として述べたが、これに限らず、16ビット以外のデータバスのビット幅の2倍のビット幅で意味をもつデータをアクセスする場合にも適用できるのは、明らかである。
【0065】
【発明の効果】
以上説明したように、この発明によれば、前記バスコントロール回路のアクセスコントロール回路は、ダブルワードアクセス設定レジスタにダブルワードアクセスを行う設定がなされた場合、昇順/降順設定レジスタによって設定された昇順あるいは降順で共有メモリに対するアクセスをワード単位で行うとともに、前記共有メモリからダブルワードを読み出す場合、該ダブルワードを前記共有メモリからワード単位で連続して読み出してバッファに格納し、前記共有メモリにダブルワードを書き込む場合、該ダブルワードを前記バッファに格納し、その後該ダブルワードの残りワードのアクセス要求時に該バッファに格納されたダブルワードを連続して前記共有メモリに書き込む制御を行うようにしているので、共有メモリ上の任意のワードアドレスからダブルワードアクセスすることができ、共有メモリのメモリ領域を有効利用することができるという効果を奏する。また、昇順のみならず降順にワード単位でアクセスすることができるので、ワードアドレスのインクリメントあるいはデクリメントのみという単純なアドレス指定処理によって柔軟なアドレス指定を行うことができ、ダブルワードアドレス指定にかかる負荷が軽減されるという効果を奏する。
【0066】
つぎの発明によれば、回数フラグが、ダブルワードアクセス時における最初のワードアクセスか残りのワードアクセスかを示すフラグを設定し、アクセスコントロール回路が、前記回数フラグに設定されたフラグをもとに共有メモリに対するダブルワードアクセス時における他のCPUの待機あるいは待機解除を制御するようにしているので、ダブルワードアクセスが競合した場合でも確実にデータの整合性を保持することができるという効果を奏する。
【0067】
つぎの発明によれば、バスコントロール回路のアクセス制御手段が、共有メモリに対するダブルワードの格納順序およびアクセス順序を偶数ワードアドレスから開始させるとともに、ダブルワードのデータを前記バッファに一時格納し、第一のCPUおよび第二のCPUによる前記共有メモリに対する前記ダブルワードのアクセス要求が競合した場合、所定クロックに対応させて前記第一のCPUおよび前記第二のCPUに対するアクセス権をワード単位で交互に割り当て、ダブルワードアクセスが競合した場合でも確実にデータの整合性を保持できるようにしているので、ダブルワードアクセスが競合した場合であっても、各CPUは、常に交互にアクセス権が与えられるため、一方のCPUの待機時間が極端に長くなることがなく、各CPUに待機時間が分散され、情報処理装置全体の処理速度を低下させないという効果を奏する。
【0068】
つぎの発明によれば、アクセス制御手段が、所定クロックの前縁および後縁を第一のCPUおよび第二のCPUに割り当てて制御するようにしているので、アクセス権の交互割り当てを簡易に行うことができるという効果を奏する。
【0069】
つぎの発明によれば、昇順/降順設定工程によって、第一のCPUおよび第二のCPUが共有メモリに対してダブルワードアクセスを行う場合にダブルワードアクセスを昇順で行うか降順で行うかを設定し、アクセス工程によって、前記昇順/降順設定レジスタによって設定された昇順あるいは降順で前記共有メモリに対するアクセスをワード単位で行うようにしているので、共有メモリ上の任意のワードアドレスからダブルワードアクセスすることができ、共有メモリのメモリ領域を有効利用することができるという効果を奏する。また、昇順のみならず降順にワード単位でアクセスすることができるので、ワードアドレスのインクリメントあるいはデクリメントのみという単純なアドレス指定処理によって柔軟なアドレス指定を行うことができ、ダブルワードアドレス指定にかかる負荷が軽減されるという効果を奏する。
【0070】
つぎの発明によれば、前記アクセス工程は、共有メモリからダブルワードを読み出す場合、該ダブルワードを前記共有メモリからワード単位で連続して読み出してバッファに格納し、前記共有メモリにダブルワードを書き込む場合、該ダブルワードをバッファに格納し、その後該ダブルワードの残りワードのアクセス要求時に該バッファに格納されたダブルワードを連続して前記共有メモリに書き込む制御を行うようにしているので、ダブルワードアクセスが競合した場合に各CPUの待ち時間を短縮することができるという効果を奏する。
【0071】
つぎの発明によれば、回数フラグ設定工程が、ダブルワードアクセス時における最初のワードアクセスか残りのワードアクセスかを示すフラグを設定し、前記アクセス工程が、前記回数フラグに設定されたフラグをもとに前記共有メモリに対するダブルワードアクセス時における他のCPUの待機あるいは待機解除を制御するようにしているので、ダブルワードアクセスが競合した場合でも確実にデータの整合性を保持することができるという効果を奏する。
【0072】
つぎの発明によれば、設定工程によって、共有メモリに対するダブルワードの格納順序およびアクセス順序を偶数ワードアドレスから開始させる設定を予め行い、格納工程によって、前記共有メモリに対するダブルワードのデータをバッファに一時格納し、アクセス制御工程によって、第一のCPUおよび第二のCPUによる前記共有メモリに対する前記ダブルワードのアクセス要求が競合した場合、所定クロックに対応させて前記第一のCPUおよび前記第二のCPUに対するアクセス権をワード単位で交互に割り当てるようにしているので、ダブルワードアクセスが競合した場合であっても、各CPUは、常に交互にアクセス権が与えられるため、一方のCPUの待機時間が極端に長くなることがなく、各CPUに待機時間が分散され、情報処理装置全体の処理速度を低下させないという効果を奏する。
【0073】
つぎの発明によれば、前記アクセス制御工程が、所定クロックの前縁および後縁を第一のCPUおよび第二のCPUに割り当てて制御するようにしているので、アクセス権の交互割り当てを簡易に行うことができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1である情報処理装置の構成を示すブロック図である。
【図2】 図1に示したCPU1がダブルワードリードアクセスを行う場合の前処理を説明する図である。
【図3】 図1に示したCPU1による昇順のダブルワードリードアクセス時における泣別れ防止制御回路20の動作処理を説明する図である。
【図4】 図1に示したCPU1による昇順のダブルワードリードアクセス時における泣別れ防止制御回路20の動作処理を説明する図である。
【図5】 図1に示したCPU1による降順のダブルワードライトアクセス時における泣別れ防止制御回路20の動作処理を説明する図である。
【図6】 図1に示したCPU1による降順のダブルワードライトアクセス時における泣別れ防止制御回路20の動作処理を説明する図である。
【図7】 この発明の実施の形態2である情報処理装置の構成を示すブロック図である。
【図8】 図7に示した調停部30の動作処理を示すタイミングチャートである。
【図9】 図7に示したCPU2によるダブルワードリードアクセスが先に行われ、このダブルワードリードアクセスとCPU1によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図10】 図7に示したCPU2によるダブルワードリードアクセスが先に行われ、このダブルワードリードアクセスとCPU1によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図11】 図7に示したCPU2によるダブルワードリードアクセスが先に行われ、このダブルワードリードアクセスとCPU1によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図12】 図7に示したCPU2によるダブルワードリードアクセスが先に行われ、このダブルワードリードアクセスとCPU1によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図13】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルリードライトアクセスとが競合する場合の処理を示す図である。
【図14】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルリードライトアクセスとが競合する場合の処理を示す図である。
【図15】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルリードライトアクセスとが競合する場合の処理を示す図である。
【図16】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルリードライトアクセスとが競合する場合の処理を示す図である。
【図17】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図18】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図19】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図20】 図7に示したCPU1によるダブルワードライトアクセスが先に行われ、このダブルワードライトアクセスとCPU2によるダブルワードライトアクセスとが競合する場合の処理を示す図である。
【図21】 二つのCPUがバスコントロール回路を介して一つの共有メモリを共有する情報処理装置の概要構成を示す図である。
【図22】 データの泣別れが生じる場合を説明する図である。
【図23】 従来の情報処理装置の構成を示すブロック図である。
【図24】 共有メモリ104からダブルワードをリードする際の泣別れ防止回路110の動作を示す図である。
【図25】 共有メモリ104からダブルワードをリードする際の泣別れ防止回路110の動作を示す図である。
【図26】 共有メモリ104にダブルワードをライトする際の泣別れ防止回路110の動作を示す図である。
【図27】 共有メモリ104にダブルワードをライトする際の泣別れ防止回路110の動作を示す図である。
【符号の説明】
1,2 CPU、3 バスコントロール回路、4 共有メモリ、10 泣別れ防止回路、11a,11b ダブルワードアクセス設定レジスタ、12a,12b 昇順/降順設定レジスタ、13a,13b 回数フラグ、14a,14b バッファ、20 泣別れ防止制御回路、30 調停部、31 タイミング調停部、32 オア回路、40 クロック発生部、B1,B2,B4 16ビットデータバス。
Claims (4)
- 第一のCPUと、第二のCPUと、前記第一および第二のCPUが共有し、ワード単位でデータを格納する共有メモリと、前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するバスコントロール回路とを有した情報処理装置において、
前記バスコントロール回路は、
前記第一のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第一のバッファと、
前記第二のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第二のバッファと、
前記第一のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第一のダブルワードアクセス設定レジスタと、
前記第二のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第二のダブルワードアクセス設定レジスタと、
前記第一のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第一の昇順/降順設定レジスタと、
前記第二のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第二の昇順/降順設定レジスタと、
前記第一および第二のダブルワードアクセス設定レジスタに設定された情報と、前記第一および第二の昇順/降順設定レジスタに設定された情報とに基づいて前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するアクセスコントロール回路と、
を備え、
前記第一および第二のCPUは、
前記共有メモリに対してのダブルワードアクセスを行う場合、自身に対応する第一または第二のダブルワードアクセス設定レジスタに前記共有メモリへのアクセスがダブルワードアクセスであることを示す情報を設定するとともに、自身に対応する第一または第二の昇順/降順設定レジスタにダブルワードアクセスのための2回のワードアクセス要求のアドレス指定を昇順で行うのか降順で行うのかを示す情報を設定した後に、前記共有メモリに対するダブルワードアクセスとして2回のワードアクセス要求を出力し、
前記アクセスコントロール回路は、
前記第一または第二のCPUからのワードアクセス要求がリードであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、前記共有メモリからワードアクセス要求されたアドレスのデータを読み出して当該CPUに出力するとともに、要求されたアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報とに基づいて当該CPUが2回目に出力するワードアクセス要求のアドレスを認識し、前記共有メモリから認識したアドレスのデータを読み出して当該CPUに対応する第一または第二のバッファに格納し、当該CPUからの2回目のワードアクセス要求を受けた際に当該CPUに対応する第一または第二のバッファに格納されたデータを当該CPUに出力し、前記第一または第二のCPUからのワードアクセス要求がライトであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、ワードアクセス要求されたデータを当該CPUに対応する第一または第二のバッファに格納し、当該CPUからの2回目のワードアクセス要求を受けた際に2回目のワードアクセス要求のアドレスに2回目のワードアクセス要求のデータを格納するとともに、2回目のワードアクセス要求のアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報に基づいて当該CPUが1回目に出力したワードアクセス要求のアドレスを認識し、前記共有メモリの該認識したアドレスに当該CPUに対応するバッファに保持されたデータを格納すること、
を特徴とする情報処理装置。 - 前記バスコントロール回路は、
前記第一のCPUからのダブルワードアクセス時における1回目のワードアクセス要求であるのか2回目のワードアクセス要求であるのかの情報が設定される第一の回数フラグと、
前記第二のCPUからのダブルワードアクセス時における1回目のワードアクセス要求であるのか2回目のワードアクセス要求であるのかの情報が設定される第二の回数フラグと、
をさらに備え、
前記アクセスコントロール回路は、
前記第一または第二のCPUからのワードアクセス要求がリードであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二のバッファにデータを格納した際に当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセスであることを示す情報を設定し、2回目のワードアクセス要求によって当該CPUのバッファに格納したデータを当該CPUに送信した際に当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセスであることを示す情報を設定し、前記第一または第二のCPUからのワードアクセス要求がライトであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二のバッファにデータを格納した際に当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセスであることを示す情報を設定し、2回目のワードアクセス要求によって1回目および2回目のワードアクセス要求によるデータを前記共有メモリに格納した際に当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセスであることを示す情報を設定し、
前記第一または第二のCPUからのワードアクセス要求がリードであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセスであることを示す情報が設定されている期間のみ当該CPUとは異なるCPUを待機状態とし、前記第一または第二のCPUからのワードアクセス要求がライトであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセスであることを示す情報が設定されている期間のみ当該CPUとは異なるCPUを待機状態とすること、
を特徴とする請求項1に記載の情報処理装置。 - 第一のCPUと、第二のCPUと、前記第一および第二のCPUが共有し、ワード単位でデータを格納する共有メモリと、前記第一のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第一のバッファ、前記第二のCPUが前記共有メモリに対して書き込むべきあるいは読み出したダブルワードのうちの少なくとも一つのワードを一時格納する第二のバッファ、前記第一のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第一のダブルワードアクセス設定レジスタ、前記第二のCPUによる共有メモリへのアクセスがダブルワードアクセスであるか否かを示す情報が設定される第二のダブルワードアクセス設定レジスタ、前記第一のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第一の昇順/降順設定レジスタ、前記第二のCPUのダブルワードアクセス時のアドレス指定が昇順であるのか降順であるのかを示す情報が設定される第二の昇順/降順設定レジスタ、および前記第一および第二のダブルワードアクセス設定レジスタに設定された情報と前記第一および第二の昇順/降順設定レジスタに設定された情報とに基づいて前記第一および第二のCPUによる前記共有メモリに対するアクセスを制御するアクセスコントロール回路を有するバスコントロール回路とを有した情報処理装置のアクセス制御方法であって、
前記第一または第二のCPUが、前記共有メモリに対してダブルワードアクセスを行う場合、自身に対応する前記第一または第二のダブルワードアクセス設定レジスタに前記共有メモリへのアクセスがダブルワードであることを示す情報を設定するとともに、自身に対応する前記第一または第二の昇順/降順設定レジスタにアドレス指定を昇順で行うのか降順で行うのかを示す情報を設定するダブルワードアクセス前処理工程と、
前記第一または第二のCPUが、前記ダブルワードアクセス前処理工程の後に前記共有メモリに対するダブルワードアクセスの1回目のワードアクセス要求を出力する第一のワードアクセス要求工程と、
前記アクセスコントロール回路が、前記第一または第二のCPUからの1回目のワードアクセス要求がリード要求であって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、前記共有メモリから1回目にワードアクセス要求されたアドレスのデータを読み出して当該CPUに出力するとともに、要求されたアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報に基づいて当該CPUが2回目に出力するワードアクセス要求のアドレスを認識し、前記共有メモリから認識したアドレスのデータを読み出して当該CPUに対応する第一または第二のバッファに格納し、前記第一または第二のCPUからの1回目のワードアクセス要求がライト要求であって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、ワードアクセス要求されたデータを当該CPUに対応する第一または第二のバッファに格納する第一のアクセス工程と、
前記第一または第二のCPUが、前記ダブルワードアクセス前処理工程の後に前記共有メモリに対するダブルワードアクセスの2回目のワードアクセス要求を出力する第二のワードアクセス要求工程と、
前記アクセスコントロール回路が、前記第一または第二のCPUからの2回目のワードアクセス要求がリード要求であって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、当該CPUに対応する第一または第二のバッファに格納されたデータを当該CPUに出力し、前記第一または第二のCPUからの2回目のワードアクセス要求がライトであって、かつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合には、2回目のワードアクセス要求のアドレスに2回目のワードアクセス要求のデータを格納するとともに、2回目のワードアクセス要求のアドレスと当該CPUに対応する第一または第二の昇順/降順設定レジスタに設定された情報に基づいて当該CPUが1回目に出力したワードアクセス要求のアドレスを認識し、前記共有メモリの該認識したアドレスに当該CPUに対応するバッファに保持されたデータを格納する第二のアクセス工程と、
を含むことを特徴とする情報処理装置のアクセス制御方法。 - 前記バスコントロール回路は、
前記第一のCPUからのダブルワードアクセス時における1回目のワードアクセスであるのか2回目のワードアクセスであるのかの情報が設定される第一の回数フラグと、
前記第二のCPUからのダブルワードアクセス時における1回目のワードアクセスであるのか2回目のワードアクセスであるのかの情報が設定される第二の回数フラグと、
をさらに備え、
前記アクセスコントロール回路が行う第一のアクセス工程は、
第一または第二のバッファにデータを格納した際に当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセス要求であることを示す情報を設定する工程を含み、
前記アクセスコントロール回路が行う第二のアクセス工程は、
前記第一または第二のバッファに格納したデータを当該CPUに出力した場合、または前記第一または第二のバッファに格納したデータを前記共有メモリに格納した場合に、当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセス要求であることを示す情報を設定する工程と、
前記第一または第二のCPUからのワードアクセス要求がリードであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合に、当該CPUに対応する第一または第二の回数フラグに1回目のワードアクセス要求であることを示す情報が設定されている期間は当該CPUとは異なるCPUを待機状態とし、前記第一または第二のCPUからのワードアクセス要求がライトであってかつ当該CPUに対応する第一または第二のダブルワードアクセス設定レジスタにダブルワードアクセスであることを示す情報が設定されている場合に、当該CPUに対応する第一または第二の回数フラグに2回目のワードアクセス要求であることを示す情報が設定されている期間は当該CPUとは異なるCPUを待機状態とする工程と、
を含むことを特徴とする請求項3に記載の情報処理装置のアクセス制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24401099A JP3995370B2 (ja) | 1999-08-30 | 1999-08-30 | 情報処理装置およびそのアクセス制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24401099A JP3995370B2 (ja) | 1999-08-30 | 1999-08-30 | 情報処理装置およびそのアクセス制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001067328A JP2001067328A (ja) | 2001-03-16 |
JP3995370B2 true JP3995370B2 (ja) | 2007-10-24 |
Family
ID=17112381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24401099A Expired - Fee Related JP3995370B2 (ja) | 1999-08-30 | 1999-08-30 | 情報処理装置およびそのアクセス制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3995370B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4914175B2 (ja) * | 2006-10-31 | 2012-04-11 | パナソニック電工Sunx株式会社 | 共有メモリインターフェイス装置 |
-
1999
- 1999-08-30 JP JP24401099A patent/JP3995370B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001067328A (ja) | 2001-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3598321B2 (ja) | 異なる周波数で動作するバス間でやりとりされるバッファリングデータ | |
JP3181515B2 (ja) | データ転送方法及びその方法を用いたデータ転送装置 | |
JPS60117327A (ja) | ディスプレイ装置 | |
JP2591502B2 (ja) | 情報処理システムおよびそのバス調停方式 | |
JP3995370B2 (ja) | 情報処理装置およびそのアクセス制御方法 | |
JP3153078B2 (ja) | データ処理装置 | |
JP3342352B2 (ja) | 表示用メモリ制御装置 | |
JP4536189B2 (ja) | Dma転送装置及びdma転送システム | |
JPH1011348A (ja) | Dramの制御装置およびそのdram | |
JP2000298640A (ja) | Dma装置 | |
JPH10143428A (ja) | 省電力用のメモリ制御システムおよびメモリ制御回路 | |
JPH06266614A (ja) | メモリ制御方法 | |
JP4610961B2 (ja) | アクセス制御装置 | |
JP2853555B2 (ja) | 記憶制御装置 | |
KR20010050234A (ko) | 메모리(mem)와 결합한 데이터 처리용 디바이스 | |
JPH09311812A (ja) | マイクロコンピュータ | |
JPH0450625B2 (ja) | ||
JP2591515B2 (ja) | 1チップメモリデバイス | |
JP3415408B2 (ja) | 通信制御装置 | |
JPH06103148A (ja) | ライトバッファ | |
JPH0745073A (ja) | Dramのリフレッシュ方法 | |
JPH0561769A (ja) | メモリ・アクセス方法 | |
JPH1091571A (ja) | Dmaコントローラのチェーン外れ検出方法及びdmaコントローラ | |
JPH04245346A (ja) | マイクロコンピュータシステム | |
JPH11194968A (ja) | 記憶装置の制御装置及びデータ処理システムにおける記憶装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040305 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070731 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3995370 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130810 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |