JPH0778103A - 共有アクセス制御装置 - Google Patents
共有アクセス制御装置Info
- Publication number
- JPH0778103A JPH0778103A JP22271593A JP22271593A JPH0778103A JP H0778103 A JPH0778103 A JP H0778103A JP 22271593 A JP22271593 A JP 22271593A JP 22271593 A JP22271593 A JP 22271593A JP H0778103 A JPH0778103 A JP H0778103A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bits
- cpu
- shared
- processing devices
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 複数の処理装置から共通にアクセスされる装
置と、当該複数の処理装置との間のデータ転送インタフ
ェースのビット数と、当該共有装置を介して複数の処理
装置間で授受されるデータの構成ビット数とが異なる場
合の処理を効率良く行うことを目的とする。 【構成】 複数の処理装置と共有装置2とに接続される
制御装置1において、カウント部12とウエイト部13
とを設け、その複数の処理装置のうちの一つの処理装置
からその共有装置2にアクセスがあった時、そのカウン
ト部12の計数値が少なくとも2となるまで、他の処理
装置からのその共有装置2へのアクセスを抑止するよう
に構成する。
置と、当該複数の処理装置との間のデータ転送インタフ
ェースのビット数と、当該共有装置を介して複数の処理
装置間で授受されるデータの構成ビット数とが異なる場
合の処理を効率良く行うことを目的とする。 【構成】 複数の処理装置と共有装置2とに接続される
制御装置1において、カウント部12とウエイト部13
とを設け、その複数の処理装置のうちの一つの処理装置
からその共有装置2にアクセスがあった時、そのカウン
ト部12の計数値が少なくとも2となるまで、他の処理
装置からのその共有装置2へのアクセスを抑止するよう
に構成する。
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサ構成
において、共通にアクセスされる装置を介して、複数の
プロセッサ間でデータを授受することに関するものであ
る。
において、共通にアクセスされる装置を介して、複数の
プロセッサ間でデータを授受することに関するものであ
る。
【0002】近年、マイクロプロセッサを始めとして各
種のプロセッサの処理単位のビット数は、8ビット,1
6ビット,32ビット,64ビットと増加してきてい
る。これに伴い、プロセッサと他装置との間のデータ転
送インタフェースのビット数(例えば、データバスのビ
ット幅)も増加してきている。
種のプロセッサの処理単位のビット数は、8ビット,1
6ビット,32ビット,64ビットと増加してきてい
る。これに伴い、プロセッサと他装置との間のデータ転
送インタフェースのビット数(例えば、データバスのビ
ット幅)も増加してきている。
【0003】一方、複数のプロセッサ間で一回に授受さ
れるデータのビット数は、英数字では「8」ビット、か
な漢字文字では「16」ビット、64ビットの倍精度浮
動少数点データでは「64」ビット、メモリのアドレス
データはそのメモリ容量によるが「16〜」ビット等の
ように、各種の場合が存在する。さらに、大量のデータ
を転送する場合には数KB(キロバイト)〜数十KBと
なる。
れるデータのビット数は、英数字では「8」ビット、か
な漢字文字では「16」ビット、64ビットの倍精度浮
動少数点データでは「64」ビット、メモリのアドレス
データはそのメモリ容量によるが「16〜」ビット等の
ように、各種の場合が存在する。さらに、大量のデータ
を転送する場合には数KB(キロバイト)〜数十KBと
なる。
【0004】本発明は、このようなデータを構成する
(有意)ビット数がデータ転送インタフェースのビット
数よりも多い時の処理に関するものである。
(有意)ビット数がデータ転送インタフェースのビット
数よりも多い時の処理に関するものである。
【0005】
【従来の技術】以下に説明する従来の技術は、複数の処
理装置から共通にアクセスされる装置が共有メモリの場
合である。
理装置から共通にアクセスされる装置が共有メモリの場
合である。
【0006】従来技術においては、連続アクセス回数K
は、各処理装置ともK=1であり、データの構成ビット
数pが複数のデータ転送インタフェースの内最少のビッ
ト数に等しいか又は少ない場合である。
は、各処理装置ともK=1であり、データの構成ビット
数pが複数のデータ転送インタフェースの内最少のビッ
ト数に等しいか又は少ない場合である。
【0007】即ち、或る処理装置と制御部とのデータ転
送インタフェースのビット数をmとし、他の処理装置と
当該制御部とのデータ転送インタフェースのビット数を
nとすると、p≦MIN(m,n・・・)である。
送インタフェースのビット数をmとし、他の処理装置と
当該制御部とのデータ転送インタフェースのビット数を
nとすると、p≦MIN(m,n・・・)である。
【0008】図8は、従来のメモリアクセス装置適用例
であり、プリンタコントローラに適用した場合の構成図
である。そのプリンタコントローラ8aの主な構成要素
は、受信回路15,第一の処理装置5,共有メモリアク
セス制御部1a,共有メモリ2a,第二の処理装置6,
ビットマップメモリ16,CGメモリ17,描画回路1
8である。
であり、プリンタコントローラに適用した場合の構成図
である。そのプリンタコントローラ8aの主な構成要素
は、受信回路15,第一の処理装置5,共有メモリアク
セス制御部1a,共有メモリ2a,第二の処理装置6,
ビットマップメモリ16,CGメモリ17,描画回路1
8である。
【0009】第一のCPU5と制御部1aとの間のデー
タ転送インタフェースのビット数は16ビットのバスA
3であり、第二のCPU6と制御部1bとの間のデータ
転送インタフェースのビット数は32ビットのバスB4
のマルチプロセッサ構成となっている。
タ転送インタフェースのビット数は16ビットのバスA
3であり、第二のCPU6と制御部1bとの間のデータ
転送インタフェースのビット数は32ビットのバスB4
のマルチプロセッサ構成となっている。
【0010】CPU5は16ビット単位で印字データを
共有メモリ2aに格納し、CPU6は32ビット単位で
当該印字データを当該共有メモリ2aから読み出す。7
はパソコンその他のホストであり、8aは上記プリンタ
コントローラであり、19はプリンタである。ホスト7
とプリンタコントローラ8aとは、本発明とは直接関係
無いが、1ビットのシリアル伝送(RS232C)、8
ビットのセントロインタフェース、或いは16ビットの
システムバス等のインタフェースで接続されている。
共有メモリ2aに格納し、CPU6は32ビット単位で
当該印字データを当該共有メモリ2aから読み出す。7
はパソコンその他のホストであり、8aは上記プリンタ
コントローラであり、19はプリンタである。ホスト7
とプリンタコントローラ8aとは、本発明とは直接関係
無いが、1ビットのシリアル伝送(RS232C)、8
ビットのセントロインタフェース、或いは16ビットの
システムバス等のインタフェースで接続されている。
【0011】共有メモリ2aはCPU5とCPU6との
両方からアクセス可能な共有メモリである。その容量は
例えば64KB(キロバイト)であり、特定領域21a
とデータ領域22aとから構成され、アドレスはバイト
単位で付けられており、そのアドレッシング(番地付
け)は16ビット(64KB対応)あれば可能である。
両方からアクセス可能な共有メモリである。その容量は
例えば64KB(キロバイト)であり、特定領域21a
とデータ領域22aとから構成され、アドレスはバイト
単位で付けられており、そのアドレッシング(番地付
け)は16ビット(64KB対応)あれば可能である。
【0012】特定領域21aの容量は32B(バイト)
であり、アドレスは0〜31とする。16進で表示する
と「0H 」〜「1FH 」となる。(以下16進を表示す
る場合には、「0H 」,「1FH 」等のように表現す
る。)また、データ領域22aのアドレスは32〜65
535とする。16進で表示すると「20H 」〜「FF
FFH 」となる。(容量は64KB─32Bである。)
ビットマップメモリ16は、文字や図形データをドッ
ト展開した結果が格納されている。
であり、アドレスは0〜31とする。16進で表示する
と「0H 」〜「1FH 」となる。(以下16進を表示す
る場合には、「0H 」,「1FH 」等のように表現す
る。)また、データ領域22aのアドレスは32〜65
535とする。16進で表示すると「20H 」〜「FF
FFH 」となる。(容量は64KB─32Bである。)
ビットマップメモリ16は、文字や図形データをドッ
ト展開した結果が格納されている。
【0013】CGメモリ17は、文字をドット展開する
ためのフォントデータが格納されている。これら各構成
要素間の接続は、下記のようになっている。
ためのフォントデータが格納されている。これら各構成
要素間の接続は、下記のようになっている。
【0014】(1).データ転送バスA3は16ビット
──即ち、m=16──であり、このバスA3に接続さ
れる回路は、メモリアクセス制御部1b,CPU5,受
信回路15である。
──即ち、m=16──であり、このバスA3に接続さ
れる回路は、メモリアクセス制御部1b,CPU5,受
信回路15である。
【0015】(2).データ転送バスB4は32ビット
──即ち、n=32──であり、このバスB4に接続さ
れる回路は、メモリアクセス制御部1b,CPU6,ビ
ットマップメモリ16,CGメモリ17,描画回路18
である。
──即ち、n=32──であり、このバスB4に接続さ
れる回路は、メモリアクセス制御部1b,CPU6,ビ
ットマップメモリ16,CGメモリ17,描画回路18
である。
【0016】(3).共有メモリアクセス制御部1aと
CPU5とは複数本の制御信号線30を介して接続され
ている。その複数の制御信号のうちの一つを「DAC
K」信号とする。この「DACK」信号はメモリアクセ
ス制御部1bがCPU5に対してバスA3を用いたデー
タ転送の完了、つまり、バスビット幅16ビットのデー
タ転送の完了を通知するものである。この完了通知によ
り、両方の処理装置からの共有メモリ2aへの割り込み
アクセスが可能となり、メモリアクセス制御部1aはよ
り早くアクセスした処理装置に対してデータ転送パスを
接続状態とし、データ転送を開始する。
CPU5とは複数本の制御信号線30を介して接続され
ている。その複数の制御信号のうちの一つを「DAC
K」信号とする。この「DACK」信号はメモリアクセ
ス制御部1bがCPU5に対してバスA3を用いたデー
タ転送の完了、つまり、バスビット幅16ビットのデー
タ転送の完了を通知するものである。この完了通知によ
り、両方の処理装置からの共有メモリ2aへの割り込み
アクセスが可能となり、メモリアクセス制御部1aはよ
り早くアクセスした処理装置に対してデータ転送パスを
接続状態とし、データ転送を開始する。
【0017】(4).メモリアクセス制御部1aとCP
U6とは複数本の制御信号線40を介して接続されてい
る。その複数の制御信号のうちの一つを「READY」
信号とする。この「READY」信号は上記(3)「D
ACK」信号と同様の機能を有し、共有メモリアクセス
制御部1aがCPU6に対して処理の完了、つまり、バ
スビット幅32ビットのデータ転送完了を通知するもの
である。この完了通知により、両方の装置からの共有メ
モリへの割り込みアクセスが可能となり、メモリアクセ
ス制御部1aはより早くアクセスした処理装置に対して
データ転送パスを接続状態とし、データ転送を開始す
る。
U6とは複数本の制御信号線40を介して接続されてい
る。その複数の制御信号のうちの一つを「READY」
信号とする。この「READY」信号は上記(3)「D
ACK」信号と同様の機能を有し、共有メモリアクセス
制御部1aがCPU6に対して処理の完了、つまり、バ
スビット幅32ビットのデータ転送完了を通知するもの
である。この完了通知により、両方の装置からの共有メ
モリへの割り込みアクセスが可能となり、メモリアクセ
ス制御部1aはより早くアクセスした処理装置に対して
データ転送パスを接続状態とし、データ転送を開始す
る。
【0018】(5).共有メモリアクセス制御部1aと
共有メモリ2aとは32ビットの信号線60で接続され
ている。CPU5と共有メモリアクセス制御部1aとは
16ビットのバスA3で接続されていることから、CP
U5が共有メモリ2aをアクセスする時には、32ビッ
トの共有メモリ2aに対してパーシャルリード/ライト
(部分的格納/読出)となる。例えば、CPU5は共有
メモリ2aのアドレス「0,1,2,3」(即ち、32
ビット)に対して、アドレス「0,1」(16ビット)
若しくはアドレス「2,3」(16ビット)にデータを
部分的格納/読出を行う。
共有メモリ2aとは32ビットの信号線60で接続され
ている。CPU5と共有メモリアクセス制御部1aとは
16ビットのバスA3で接続されていることから、CP
U5が共有メモリ2aをアクセスする時には、32ビッ
トの共有メモリ2aに対してパーシャルリード/ライト
(部分的格納/読出)となる。例えば、CPU5は共有
メモリ2aのアドレス「0,1,2,3」(即ち、32
ビット)に対して、アドレス「0,1」(16ビット)
若しくはアドレス「2,3」(16ビット)にデータを
部分的格納/読出を行う。
【0019】(6).CPU5と共有メモリアクセス制
御部1aとは24ビットのアドレスバス31で接続され
ており、このアドレスバス31を用いて、アクセスのた
めのアドレス情報が送付される。
御部1aとは24ビットのアドレスバス31で接続され
ており、このアドレスバス31を用いて、アクセスのた
めのアドレス情報が送付される。
【0020】(7).CPU6と共有メモリアクセス制
御部1aとは、バスB4を用いて、アクセスのためのア
ドレス情報が送付される。このことは、バスB4を用い
てアドレス情報とデータ情報との両方のデータが授受さ
れることを意味する。アドレス情報とデータ情報との区
別は複数の制御信号線40の内の一つによって行われ
る。
御部1aとは、バスB4を用いて、アクセスのためのア
ドレス情報が送付される。このことは、バスB4を用い
てアドレス情報とデータ情報との両方のデータが授受さ
れることを意味する。アドレス情報とデータ情報との区
別は複数の制御信号線40の内の一つによって行われ
る。
【0021】(8).CPU5とCPU6とは制御信号
線50により直接接続されている。この信号線により制
御信号が授受される。電源投入直後にCPU5がメモリ
2aの特定領域21aの或るアドレス──例えば、アド
レス「0」──を初期化する(「0」クリア)間、CP
U5はCPU6に対して制御信号線50を介して制御信
号を出力し、CPU6の動作を停止状態にする。その初
期化処理完了後、CPU5はCPU6に対してその制御
信号を解除し、CPU6は動作を開始する。これは、最
初に有効なデータをCPU5が共有メモリ2aに格納し
た後、その有効なデータをCPU6が共有メモリ2aか
ら読み出して以後の処理を継続可能とするためである。
線50により直接接続されている。この信号線により制
御信号が授受される。電源投入直後にCPU5がメモリ
2aの特定領域21aの或るアドレス──例えば、アド
レス「0」──を初期化する(「0」クリア)間、CP
U5はCPU6に対して制御信号線50を介して制御信
号を出力し、CPU6の動作を停止状態にする。その初
期化処理完了後、CPU5はCPU6に対してその制御
信号を解除し、CPU6は動作を開始する。これは、最
初に有効なデータをCPU5が共有メモリ2aに格納し
た後、その有効なデータをCPU6が共有メモリ2aか
ら読み出して以後の処理を継続可能とするためである。
【0022】もし、CPU6がCPU5より先に共有メ
モリ2aのアドレス「0」をアクセスし、そのアドレス
「0」に或る値(「0」以外の値)が有った場合には、
CPU6の動作は間違った文字を印刷する可能性があ
る。
モリ2aのアドレス「0」をアクセスし、そのアドレス
「0」に或る値(「0」以外の値)が有った場合には、
CPU6の動作は間違った文字を印刷する可能性があ
る。
【0023】(9).前記(3),(4)で述べたよう
に、メモリアクセス制御部1aは、CPU5或いはCP
U6から共有メモリ2aにアクセスがあった場合には、
排他制御を行う。より早くアクセスのあったCPUのデ
ータ転送パスを接続状態にし、他方のデータ転送パスを
切断状態にする。
に、メモリアクセス制御部1aは、CPU5或いはCP
U6から共有メモリ2aにアクセスがあった場合には、
排他制御を行う。より早くアクセスのあったCPUのデ
ータ転送パスを接続状態にし、他方のデータ転送パスを
切断状態にする。
【0024】即ち、一方のCPUから共有メモリ2aに
アクセスがあり、当該メモリアクセス制御部1aは、そ
の後他方のCPUから当該共有メモリ2aにアクセスが
あった場合には、当該一方のCPUのメモリアクセスが
完了するまで、当該他方のCPUのデータ転送パスを切
断状態にする。
アクセスがあり、当該メモリアクセス制御部1aは、そ
の後他方のCPUから当該共有メモリ2aにアクセスが
あった場合には、当該一方のCPUのメモリアクセスが
完了するまで、当該他方のCPUのデータ転送パスを切
断状態にする。
【0025】(10).各バス3,4には前記(1),
(2)で述べたように複数の回路や装置が接続されてい
る。これら複数の回路や装置にはアドレス(機番)が割
当られており、これら複数の回路や装置間のデータ授受
はそのアドレスを相互に指定することにより可能とな
る。
(2)で述べたように複数の回路や装置が接続されてい
る。これら複数の回路や装置にはアドレス(機番)が割
当られており、これら複数の回路や装置間のデータ授受
はそのアドレスを相互に指定することにより可能とな
る。
【0026】前記(6)で述べたようにCPU5が共有
メモリ2aをアクセスするときのアドレス情報は24ビ
ットのアドレスバス31を用いて送付され、この24ビ
ットのうち最上位の4ビットを用いて表示される。
メモリ2aをアクセスするときのアドレス情報は24ビ
ットのアドレスバス31を用いて送付され、この24ビ
ットのうち最上位の4ビットを用いて表示される。
【0027】例えば、「AXXXXXH 」のように24
ビットの最上位の4ビットが「AH」により表示する。
最上位4ビットが「AH 」であることにより、メモリア
クセス制御部1aは共有メモリ2aがアクセスされてい
ると判断する。
ビットの最上位の4ビットが「AH」により表示する。
最上位4ビットが「AH 」であることにより、メモリア
クセス制御部1aは共有メモリ2aがアクセスされてい
ると判断する。
【0028】CPU5が特定領域21aの32バイトを
アクセスするときのアドレスは「A00000H 」〜
「A0001FH 」であり、データ領域のアドレスは
「A00020H 」〜「A0FFFFH 」となる。
アクセスするときのアドレスは「A00000H 」〜
「A0001FH 」であり、データ領域のアドレスは
「A00020H 」〜「A0FFFFH 」となる。
【0029】同様に、CPU6がメモリ2aをアクセス
した時のアドレス情報は32ビットのバスB4を用いて
送付されるが、CPU6が特定領域21aの32バイト
をアクセスするときのアドレスは「C000000
0H 」〜「C000001FH 」であり、データ領域の
アドレスは「C0000020H 」〜「C000FFF
F H 」となる。(最上位の4ビットを「CH 」としたの
は、例として決めた(設計仕様)のであって、「AH 」
と決めてもよい。)このようにすることにより、メモリ
アクセス制御部1bは各アドレス情報の最上位4ビット
をデコードすることにより、共有メモリ2aがアクセス
されていることが分かる。
した時のアドレス情報は32ビットのバスB4を用いて
送付されるが、CPU6が特定領域21aの32バイト
をアクセスするときのアドレスは「C000000
0H 」〜「C000001FH 」であり、データ領域の
アドレスは「C0000020H 」〜「C000FFF
F H 」となる。(最上位の4ビットを「CH 」としたの
は、例として決めた(設計仕様)のであって、「AH 」
と決めてもよい。)このようにすることにより、メモリ
アクセス制御部1bは各アドレス情報の最上位4ビット
をデコードすることにより、共有メモリ2aがアクセス
されていることが分かる。
【0030】図9は、従来の特定領域のデータ例であ
り、共有メモリ2aのこの特定領域21aには各バスに
接続されているCPU5,CPU6の間の相互コミニュ
ケーションのための情報が格納される。この領域のアド
レス「0,1」,「4,5」の各2バイト(16ビッ
ト)には、各CPUが共有メモリ2aのデータ領域22
aをアクセスする際のアクセス開始アドレスが、アドレ
ス「2,3」,「6,7」の各2バイト(16ビット)
には、アクセス終了アドレスが格納される。
り、共有メモリ2aのこの特定領域21aには各バスに
接続されているCPU5,CPU6の間の相互コミニュ
ケーションのための情報が格納される。この領域のアド
レス「0,1」,「4,5」の各2バイト(16ビッ
ト)には、各CPUが共有メモリ2aのデータ領域22
aをアクセスする際のアクセス開始アドレスが、アドレ
ス「2,3」,「6,7」の各2バイト(16ビット)
には、アクセス終了アドレスが格納される。
【0031】このプリンタコントローラ8aの場合に
は、CPU5が印字データを1文字づつ(16ビット単
位)データ領域に格納する度に、CPU6はそのデータ
領域の印字データを2文字づつ(32ビット単位)読出
し可能である。
は、CPU5が印字データを1文字づつ(16ビット単
位)データ領域に格納する度に、CPU6はそのデータ
領域の印字データを2文字づつ(32ビット単位)読出
し可能である。
【0032】CPU6の印字データ読出しアドレスはC
PU5が印字データを格納した領域内である必要があ
る。この必要条件は、アドレスの大小関係を次のように
チェックすれば確認可能となる。
PU5が印字データを格納した領域内である必要があ
る。この必要条件は、アドレスの大小関係を次のように
チェックすれば確認可能となる。
【0033】CPU5の格納開始アドレス≦CPU6の
読出開始アドレス,CPU6の読出終了アドレス≦CP
U5の格納終了アドレスこの条件が満足されない場合に
は、間違った文字が印刷される可能性がある。
読出開始アドレス,CPU6の読出終了アドレス≦CP
U5の格納終了アドレスこの条件が満足されない場合に
は、間違った文字が印刷される可能性がある。
【0034】図10は、従来のデータ領域のデータ例で
あり、メモリ2aのデータ領域22aに2バイト単位に
文字のコードデータが格納されている状態を示す。図
9,図10のようなメモリ構成であって、CPU5とC
PU6との印字データの授受の概要は次のようになる。
あり、メモリ2aのデータ領域22aに2バイト単位に
文字のコードデータが格納されている状態を示す。図
9,図10のようなメモリ構成であって、CPU5とC
PU6との印字データの授受の概要は次のようになる。
【0035】.先ず、前記(8)で述べたように、電
源投入後CPU5は特定領域21aの「0」番地を初期
化(「0」クリア)する。これにより、CPU6から印
字データの読み取り開始のための格納開始アドレスの読
出があっても、「0」が格納されていることから、CP
U6はまだ印字データが格納されていないことが分か
る。(格納開始アドレスは必ず「32」(「20H 」)
より大である。) .次に、CPU6も特定領域21aの「4,5」番地
を初期化(「0」クリア)する。これにより、CPU5
は全データ領域に文字データを格納後、2度目に文字デ
ータを格納する前に、この「4,5」番地の内容を確認
することにより、読出が終了したことを確認できる。読
出が完了していない場合には、文字データの格納を停止
する。
源投入後CPU5は特定領域21aの「0」番地を初期
化(「0」クリア)する。これにより、CPU6から印
字データの読み取り開始のための格納開始アドレスの読
出があっても、「0」が格納されていることから、CP
U6はまだ印字データが格納されていないことが分か
る。(格納開始アドレスは必ず「32」(「20H 」)
より大である。) .次に、CPU6も特定領域21aの「4,5」番地
を初期化(「0」クリア)する。これにより、CPU5
は全データ領域に文字データを格納後、2度目に文字デ
ータを格納する前に、この「4,5」番地の内容を確認
することにより、読出が終了したことを確認できる。読
出が完了していない場合には、文字データの格納を停止
する。
【0036】以上の,により、CPU5とCPU6
とのデータ授受が矛盾なく可能となる。 .CPU5はデータ領域22aに1文字(16ビッ
ト)づつ格納する。この時、前記(3)で述べたように
1文字(16ビット)格納する毎に「DACK」信号が
出力され、CPU6からのアクセスが可能となる。
とのデータ授受が矛盾なく可能となる。 .CPU5はデータ領域22aに1文字(16ビッ
ト)づつ格納する。この時、前記(3)で述べたように
1文字(16ビット)格納する毎に「DACK」信号が
出力され、CPU6からのアクセスが可能となる。
【0037】しかし、上記で述べたように、特定領域
21aの「0,1」番地が未だ「0」であることから、
CPU6はまだデータが格納完了されていないことが分
かる。
21aの「0,1」番地が未だ「0」であることから、
CPU6はまだデータが格納完了されていないことが分
かる。
【0038】.或る個数の文字を格納した時点で、C
PU5は特定領域21aの「2,3」番地に格納終了ア
ドレスを格納する。「0,1」番地は未だ「0」のまま
である。
PU5は特定領域21aの「2,3」番地に格納終了ア
ドレスを格納する。「0,1」番地は未だ「0」のまま
である。
【0039】.最後に、CPU5は特定領域21aの
「0,1」番地に格納開始アドレスを格納する。これに
より、CPU6のアクセスが可能となる。 以上のような構成のプリンタコントローラ8aの動作を
タイムチャートを用いて、更に詳細に説明する。
「0,1」番地に格納開始アドレスを格納する。これに
より、CPU6のアクセスが可能となる。 以上のような構成のプリンタコントローラ8aの動作を
タイムチャートを用いて、更に詳細に説明する。
【0040】図6は、従来技術のタイムチャート(その
1)であり、上記を示したものである。先ず、ホスト
7から印字データが送付されると、受信回路15はその
データを整列し(1ビットで受け取った場合には、16
ビットに組み立てる。)、CPU5に送付する。
1)であり、上記を示したものである。先ず、ホスト
7から印字データが送付されると、受信回路15はその
データを整列し(1ビットで受け取った場合には、16
ビットに組み立てる。)、CPU5に送付する。
【0041】CPU5は、時刻「t1」で具体的な一つ
の文字、例えば「あ」のコードデータをバスA3を経由
して制御部1aに送付する。制御部1aは、その文字
「あ」のコードデータの格納を完了すると、時刻「t
2」で前記「DACK」信号を「Low」にし、時刻
「t3」で「High」にする。この「DACK」信号
の変化により、CPU5は時刻「t3」で1文字分のデ
ータ転送の処理より開放されて、次の文字の転送処理や
他の処理を行うことが可能となる。
の文字、例えば「あ」のコードデータをバスA3を経由
して制御部1aに送付する。制御部1aは、その文字
「あ」のコードデータの格納を完了すると、時刻「t
2」で前記「DACK」信号を「Low」にし、時刻
「t3」で「High」にする。この「DACK」信号
の変化により、CPU5は時刻「t3」で1文字分のデ
ータ転送の処理より開放されて、次の文字の転送処理や
他の処理を行うことが可能となる。
【0042】CPU6が時刻「t3」以降、文字データ
を読み出す場合には、先ず特定領域21aのアドレスを
「0」を指定して、「データ格納開始アドレス」を読み
出し、その後「データ格納終了アドレス」を読出す。こ
の場合、読出アドレス「0」の情報はバスB4を経由し
て制御部11aに送付される。
を読み出す場合には、先ず特定領域21aのアドレスを
「0」を指定して、「データ格納開始アドレス」を読み
出し、その後「データ格納終了アドレス」を読出す。こ
の場合、読出アドレス「0」の情報はバスB4を経由し
て制御部11aに送付される。
【0043】時刻「t4」で特定領域21aの「0,
1」番地を指定して上記「データ格納開始アドレス」を
読出す。この場合バス幅が32ビットであることから、
32ビットのデータがCPU6に転送される。
1」番地を指定して上記「データ格納開始アドレス」を
読出す。この場合バス幅が32ビットであることから、
32ビットのデータがCPU6に転送される。
【0044】制御部1aは、32ビットのデータをCP
U6へ転送完了すると、時刻「t5」で前記「READ
Y」信号を「Low」にし、時刻「t6」で「Hig
h」にする。この「READY」信号の変化により、C
PU6は時刻「t6」でこれらデータ転送の処理より開
放されて、次の処理を行うことが可能となる。
U6へ転送完了すると、時刻「t5」で前記「READ
Y」信号を「Low」にし、時刻「t6」で「Hig
h」にする。この「READY」信号の変化により、C
PU6は時刻「t6」でこれらデータ転送の処理より開
放されて、次の処理を行うことが可能となる。
【0045】CPU6は、その後読み取った特定領域2
1aの「0,1」番地の内容を調べ、「データ格納開始
アドレス」が「0」であることが分かり、未だ文字デー
タが格納されていないと判断する。
1aの「0,1」番地の内容を調べ、「データ格納開始
アドレス」が「0」であることが分かり、未だ文字デー
タが格納されていないと判断する。
【0046】尚、CPU6が時刻「t1」と時刻「t
2」との間でメモリ2aをアクセスしても、CPU5が
先にアクセスしていることから待ち状態になる。この場
合には、時刻「t3」でメモリ2aのアクセスが可能と
なり、データ転送パスが接続状態となり、データの転送
が開始される。
2」との間でメモリ2aをアクセスしても、CPU5が
先にアクセスしていることから待ち状態になる。この場
合には、時刻「t3」でメモリ2aのアクセスが可能と
なり、データ転送パスが接続状態となり、データの転送
が開始される。
【0047】図7は、従来技術のタイムチャート(その
2)であり、図6の場合よりも若干複雑になっている。
CPU5は、時刻「t11」でメモリ2aをアクセス開
始する。その後、CPU6は、時刻「t12」でメモリ
2aをアクセス開始するが、既にCPU5がメモリ2a
をアクセスしているため、制御部1bによりデータ転送
パスが切断状態となっており、共有メモリのアクセスは
抑止され、待ち状態となる。(前述(9)参照) 時刻「t14」でCPU5のメモリ2aのアクセス(デ
ータ転送)は完了し、CPU6はデータ転送パスが接続
され、待ち状態からデータ転送状態となる。
2)であり、図6の場合よりも若干複雑になっている。
CPU5は、時刻「t11」でメモリ2aをアクセス開
始する。その後、CPU6は、時刻「t12」でメモリ
2aをアクセス開始するが、既にCPU5がメモリ2a
をアクセスしているため、制御部1bによりデータ転送
パスが切断状態となっており、共有メモリのアクセスは
抑止され、待ち状態となる。(前述(9)参照) 時刻「t14」でCPU5のメモリ2aのアクセス(デ
ータ転送)は完了し、CPU6はデータ転送パスが接続
され、待ち状態からデータ転送状態となる。
【0048】CPU6がデータ転送状態となった後、時
刻「t15」でCPU5がメモリ2aをアクセス開始し
た場合には、今度はCPU5のメモリアクセスは抑止さ
れ、待ち状態となる。
刻「t15」でCPU5がメモリ2aをアクセス開始し
た場合には、今度はCPU5のメモリアクセスは抑止さ
れ、待ち状態となる。
【0049】時刻「t17」でCPU6への32ビット
のデータ転送が完了すると、CPU5へのデータ転送が
開始される。以上説明したように、従来技術において
は、アドレス情報も文字情報も意味のある一かたまりの
データとしては16ビットであり、最低限16ビット単
位でアクセスすれば、処理は可能である。
のデータ転送が完了すると、CPU5へのデータ転送が
開始される。以上説明したように、従来技術において
は、アドレス情報も文字情報も意味のある一かたまりの
データとしては16ビットであり、最低限16ビット単
位でアクセスすれば、処理は可能である。
【0050】これを実現するために、一方のCPUが特
定領域21a或いはデータ領域22aの如何を問わず、
共有メモリ2aをアクセスしている場合には、他方のC
PUのメモリ2aのアクセスは抑止され、待ち状態とな
り(データ転送パスが切断状態)、処理完了信号「DA
CK」,「READY」の変化により他方のCPUの当
該共有メモリ2aのアクセスを可能としている。
定領域21a或いはデータ領域22aの如何を問わず、
共有メモリ2aをアクセスしている場合には、他方のC
PUのメモリ2aのアクセスは抑止され、待ち状態とな
り(データ転送パスが切断状態)、処理完了信号「DA
CK」,「READY」の変化により他方のCPUの当
該共有メモリ2aのアクセスを可能としている。
【0051】
【発明が解決しようとする課題】前述したように、デー
タの構成(有意)ビット数pがデータ転送インタフェー
スのビット数m若しくはnよりも大きな場合、データの
授受が正確に行われないと言う問題が生ずる。(即ち、
MIN(m,n・・・)<p) 例えば、処理速度の高速化を図るために、メモリ2aの
容量を64KB以上に増大させた場合、そのアドレッシ
ング(番地付け)は16ビットでは不足することにな
る。メモリ2aの容量を128KBとすると、そのアド
レスを表示するビット数は少なくとも「17」となる。
つまり、「1+16」ビット必要となる。
タの構成(有意)ビット数pがデータ転送インタフェー
スのビット数m若しくはnよりも大きな場合、データの
授受が正確に行われないと言う問題が生ずる。(即ち、
MIN(m,n・・・)<p) 例えば、処理速度の高速化を図るために、メモリ2aの
容量を64KB以上に増大させた場合、そのアドレッシ
ング(番地付け)は16ビットでは不足することにな
る。メモリ2aの容量を128KBとすると、そのアド
レスを表示するビット数は少なくとも「17」となる。
つまり、「1+16」ビット必要となる。
【0052】このような場合、アドレスを表示するビッ
ト数として「32」ビットを考えると、もしCPU5が
その32ビットのうちの上位或いは下位2バイト(16
ビット)を格納開始アドレスとして特定領域21aに格
納した時点で、CPU6がその格納開始アドレス2バイ
ト(16ビット)を含む4バイト(32ビット)をアク
セスした場合には、不正確なアドレス情報がCPU6に
取り込まれるという問題がある。
ト数として「32」ビットを考えると、もしCPU5が
その32ビットのうちの上位或いは下位2バイト(16
ビット)を格納開始アドレスとして特定領域21aに格
納した時点で、CPU6がその格納開始アドレス2バイ
ト(16ビット)を含む4バイト(32ビット)をアク
セスした場合には、不正確なアドレス情報がCPU6に
取り込まれるという問題がある。
【0053】即ち、17ビットのうち「1」ビット若し
くは「16」ビットのみが取り込まれて不正確なアドレ
ス情報が転送されてしまう。本発明はこのような点にか
んがみて、CPU5が2バイト(16ビット)のデータ
を連続して2回共有メモリ2aに格納するまで、CPU
6が共有メモリ2aをアクセスすることを抑止する手段
を提供することを目的とする。
くは「16」ビットのみが取り込まれて不正確なアドレ
ス情報が転送されてしまう。本発明はこのような点にか
んがみて、CPU5が2バイト(16ビット)のデータ
を連続して2回共有メモリ2aに格納するまで、CPU
6が共有メモリ2aをアクセスすることを抑止する手段
を提供することを目的とする。
【0054】
【課題を解決するための手段】上記の課題は下記の如く
に構成された共有アクセス制御装置によって解決され
る。
に構成された共有アクセス制御装置によって解決され
る。
【0055】図1は、本発明の原理図である。 (A).複数の処理装置5,6と、当該複数の処理装置
から共通にアクセスされる共有装置2と、当該複数の処
理装置5,6の当該共有装置2へのアクセスを制御する
制御部1とを有し、当該制御部1と当該各処理装置5,
6との間には各々データ転送インタフェース3,4が存
在し、当該各データ転送インタフェース3,4のうちの
或る一つのデータ転送インタフェース3のビット数をm
とし、当該mは各データ転送インタフェース3,4毎に
異なり得るものとし、当該共有装置2を介して当該複数
の処理装置間で授受されるデータの構成ビット数をpと
する共有アクセス制御装置において、当該制御部1にカ
ウント部12とウェイト部13とを設け、当該カウント
部12は、当該複数の処理装置のうちの或る一つの処理
装置a5が当該共有装置2をアクセスする際に連続する
アクセス回数Kを計数し、当該ウェイト部13は、当該
或る処理装置a5が当該共有装置2をアクセスしている
時、Kは正の整数であるとして前記計数値がK=p/m
(Kは正の整数)に達するまで、当該複数の処理装置の
うち他の処理装置b6の当該共有装置2へのアクセスを
排他制御するように構成する。
から共通にアクセスされる共有装置2と、当該複数の処
理装置5,6の当該共有装置2へのアクセスを制御する
制御部1とを有し、当該制御部1と当該各処理装置5,
6との間には各々データ転送インタフェース3,4が存
在し、当該各データ転送インタフェース3,4のうちの
或る一つのデータ転送インタフェース3のビット数をm
とし、当該mは各データ転送インタフェース3,4毎に
異なり得るものとし、当該共有装置2を介して当該複数
の処理装置間で授受されるデータの構成ビット数をpと
する共有アクセス制御装置において、当該制御部1にカ
ウント部12とウェイト部13とを設け、当該カウント
部12は、当該複数の処理装置のうちの或る一つの処理
装置a5が当該共有装置2をアクセスする際に連続する
アクセス回数Kを計数し、当該ウェイト部13は、当該
或る処理装置a5が当該共有装置2をアクセスしている
時、Kは正の整数であるとして前記計数値がK=p/m
(Kは正の整数)に達するまで、当該複数の処理装置の
うち他の処理装置b6の当該共有装置2へのアクセスを
排他制御するように構成する。
【0056】(B).前記(A)において、「商」は0
又は正の整数であるとしてp/m=「商」+「剰余」を
求める際に「剰余」が0でないときには、K=当該
「商」+1に達するまで、当該複数の処理装置のうち他
の処理装置b6の当該共有装置2へのアクセスを排他制
御するように構成する。
又は正の整数であるとしてp/m=「商」+「剰余」を
求める際に「剰余」が0でないときには、K=当該
「商」+1に達するまで、当該複数の処理装置のうち他
の処理装置b6の当該共有装置2へのアクセスを排他制
御するように構成する。
【0057】(C).前記(A)において、前記p/m
が2≦p/mであるような各処理装置(5,6)に対応
してカウント部12を複数個有するように構成する。 (D).前記(A),又は(B),又は(C)におい
て、「剰余」が0の時にはカウント部12の初期値を当
該「商」とし、「剰余」が0でない時にはカウント部1
2の初期値を当該「商」+1とし、当該或る処理装置a
5が当該共有装置2をアクセスする度にカウント部12
を「1」づつ減算し、当該カウント部12が0に達する
まで、当該複数の処理装置のうち他の処理装置b6の当
該共有装置2へのアクセスを排他制御するように構成す
る。
が2≦p/mであるような各処理装置(5,6)に対応
してカウント部12を複数個有するように構成する。 (D).前記(A),又は(B),又は(C)におい
て、「剰余」が0の時にはカウント部12の初期値を当
該「商」とし、「剰余」が0でない時にはカウント部1
2の初期値を当該「商」+1とし、当該或る処理装置a
5が当該共有装置2をアクセスする度にカウント部12
を「1」づつ減算し、当該カウント部12が0に達する
まで、当該複数の処理装置のうち他の処理装置b6の当
該共有装置2へのアクセスを排他制御するように構成す
る。
【0058】
【作用】即ち、上記のように構成することにより、ビッ
ト数がpであるデータが存在した場合に、第一の処理装
置がmビットのデータをM(M=1〜p/m(Mは正の
整数))回連続して共有装置2をアクセスし、pビット
のひとかたまりのデータを生成した後、第二の処理装置
は当該共有装置2をアクセス可能となる。
ト数がpであるデータが存在した場合に、第一の処理装
置がmビットのデータをM(M=1〜p/m(Mは正の
整数))回連続して共有装置2をアクセスし、pビット
のひとかたまりのデータを生成した後、第二の処理装置
は当該共有装置2をアクセス可能となる。
【0059】同様に、第二の処理装置のデータ転送イン
タフェースのビット数nがpより小さい時には、第二の
処理装置がnビットのデータをN(N=1〜p/n(N
は正の整数))回連続して共有装置2をアクセスした
後、他の処理装置は当該共有装置2をアクセス可能とな
る。
タフェースのビット数nがpより小さい時には、第二の
処理装置がnビットのデータをN(N=1〜p/n(N
は正の整数))回連続して共有装置2をアクセスした
後、他の処理装置は当該共有装置2をアクセス可能とな
る。
【0060】もし、p/mやp/nが割り切れない場合
には、連続してアクセスする回数KはK=1+p/m又
はK=1+p/nとする。また、m<nとしp=nの時
には、Kはデータ転送インタフェースのビット数の比K
=n/mとなる。
には、連続してアクセスする回数KはK=1+p/m又
はK=1+p/nとする。また、m<nとしp=nの時
には、Kはデータ転送インタフェースのビット数の比K
=n/mとなる。
【0061】ウェイト部13と「DACK」信号や「R
EADY」信号との役割について述べる。前述したよう
に、或る特定処理装置からの一回のアクセスが完了(デ
ータ転送インタフェースのビット数の転送完了)する度
に「DACK」信号や「READY」信号が送付され
る。
EADY」信号との役割について述べる。前述したよう
に、或る特定処理装置からの一回のアクセスが完了(デ
ータ転送インタフェースのビット数の転送完了)する度
に「DACK」信号や「READY」信号が送付され
る。
【0062】従来技術においては、このデータ転送完了
信号により、当該或る特定装置も含めて全装置からの共
有装置へのアクセスが可能となり、アクセスがあればア
クセスをした処理装置と当該共有装置との間のデータ転
送パスが接続状態となり、データ転送が開始されるので
ある。
信号により、当該或る特定装置も含めて全装置からの共
有装置へのアクセスが可能となり、アクセスがあればア
クセスをした処理装置と当該共有装置との間のデータ転
送パスが接続状態となり、データ転送が開始されるので
ある。
【0063】本発明においては、当該共有装置をアクセ
スをした或る特定処理装置への一回のデータ転送が完了
する度に、従来と同様に「DACK」信号や「READ
Y」信号は送付されるが、制御部はウェイト部の信号に
より少なくともカウンタ部が所定の値に達するまで、他
の処理装置と当該共有装置との間のデータ転送パスの切
断状態を保持する。
スをした或る特定処理装置への一回のデータ転送が完了
する度に、従来と同様に「DACK」信号や「READ
Y」信号は送付されるが、制御部はウェイト部の信号に
より少なくともカウンタ部が所定の値に達するまで、他
の処理装置と当該共有装置との間のデータ転送パスの切
断状態を保持する。
【0064】また、制御部はウェイト部の信号により少
なくともカウンタ部が所定の値に達するまで、当該或る
特定処理装置と当該共有装置との間のデータ転送パスの
接続状態を保持する。
なくともカウンタ部が所定の値に達するまで、当該或る
特定処理装置と当該共有装置との間のデータ転送パスの
接続状態を保持する。
【0065】カウンタ部が所定の値に達した後は、制御
部はより早く当該共有装置をアクセスをした処理装置と
の間のデータ転送パスを接続状態とし、他の処理装置と
当該共有装置との間のデータ転送パスを切断状態とす
る。
部はより早く当該共有装置をアクセスをした処理装置と
の間のデータ転送パスを接続状態とし、他の処理装置と
当該共有装置との間のデータ転送パスを切断状態とす
る。
【0066】このようにすることにより、共有装置を介
して複数のプロセッサ間でデータを授受する場合に、そ
のデータの内容を保証出来ることになる。
して複数のプロセッサ間でデータを授受する場合に、そ
のデータの内容を保証出来ることになる。
【0067】
【実施例】以下に説明する実施例は、連続アクセス回数
の計数値KがK=2の場合であり、pが32ビット、m
が16ビットの第一の処理装置が共有メモリを2回連続
アクセスした後に、nが32ビットの第二の処理装置が
共有メモリをアクセス可能とする場合である。
の計数値KがK=2の場合であり、pが32ビット、m
が16ビットの第一の処理装置が共有メモリを2回連続
アクセスした後に、nが32ビットの第二の処理装置が
共有メモリをアクセス可能とする場合である。
【0068】なお、本発明が適用されるのは各処理装置
が共有メモリの特定領域をアクセスする場合であって、
データ領域をアクセスする場合には従来技術が適用され
る。図2は、本発明の実施例構成図であり、従来技術の
項で説明した図8のプリンタコントローラに本発明を適
用したものである。従来技術と同様に、第一のCPU5
と制御部1aとのインタフェースのビット数は16ビッ
トのバス3であり、第二のCPU6と制御部1aとのイ
ンタフェースのビット数は32ビットのバス4のマルチ
プロセッサ構成となっている。
が共有メモリの特定領域をアクセスする場合であって、
データ領域をアクセスする場合には従来技術が適用され
る。図2は、本発明の実施例構成図であり、従来技術の
項で説明した図8のプリンタコントローラに本発明を適
用したものである。従来技術と同様に、第一のCPU5
と制御部1aとのインタフェースのビット数は16ビッ
トのバス3であり、第二のCPU6と制御部1aとのイ
ンタフェースのビット数は32ビットのバス4のマルチ
プロセッサ構成となっている。
【0069】また、共有メモリ2は多ポートメモリで構
成しても本発明の実施は勿論可能である。図2におい
て、8はプリンタコントローラ、1は共有メモリアクセ
ス制御部、2は共有メモリである。その他の構成要素は
図8と同一であるから省略する。
成しても本発明の実施は勿論可能である。図2におい
て、8はプリンタコントローラ、1は共有メモリアクセ
ス制御部、2は共有メモリである。その他の構成要素は
図8と同一であるから省略する。
【0070】共有メモリアクセス制御部1に、カウント
部12とウエイト部13とが設けられている。共有メモ
リ2は容量が128KBで、特定領域21と、データ領
域22とから構成されている。従って、共有メモリ2の
アドレッシングには少なくとも17ビット必要となる。
ここでは、このアドレス情報として32ビットを考え
る。
部12とウエイト部13とが設けられている。共有メモ
リ2は容量が128KBで、特定領域21と、データ領
域22とから構成されている。従って、共有メモリ2の
アドレッシングには少なくとも17ビット必要となる。
ここでは、このアドレス情報として32ビットを考え
る。
【0071】特定領域21の容量は32B(バイト)で
あり、アドレスは0〜31とする。また、データ領域2
2のアドレスは32〜131071とする。(容量は1
28KB─32Bである。)図3は、本発明における特
定領域のデータ例であり、各CPUのアクセス開始・終
了アドレスが格納されている状況を示している。上記に
述べたようにアドレッシングには17ビット必要である
ことから、各アクセス開始・終了アドレスを格納する容
量として、4バイト(32ビット)を割り当てている。
あり、アドレスは0〜31とする。また、データ領域2
2のアドレスは32〜131071とする。(容量は1
28KB─32Bである。)図3は、本発明における特
定領域のデータ例であり、各CPUのアクセス開始・終
了アドレスが格納されている状況を示している。上記に
述べたようにアドレッシングには17ビット必要である
ことから、各アクセス開始・終了アドレスを格納する容
量として、4バイト(32ビット)を割り当てている。
【0072】図4は、本発明におけるデータ領域のデー
タ例であり、一文字当たりのデータは16ビットである
から、各文字に2バイト(16ビット)を割り当ててい
る状況を示している。この図は従来技術と同様である。
タ例であり、一文字当たりのデータは16ビットである
から、各文字に2バイト(16ビット)を割り当ててい
る状況を示している。この図は従来技術と同様である。
【0073】図5は、本発明のタイムチャートであり、
本発明が適用された場合の各回路・装置の動作を示して
いる。これら図2,3,4,5を用いて以下に本発明を
説明する。
本発明が適用された場合の各回路・装置の動作を示して
いる。これら図2,3,4,5を用いて以下に本発明を
説明する。
【0074】前述したようにCPU5の共有メモリ2の
アクセスアドレス情報は24ビットのアドレスバス31
を用いて送付されるが、特定領域21の32バイトをア
クセスするときのアドレス情報は「A00000H 」〜
「A0001FH 」である。当然データ領域のアドレス
情報は「A00020H 」〜「A1FFFFH 」であ
る。
アクセスアドレス情報は24ビットのアドレスバス31
を用いて送付されるが、特定領域21の32バイトをア
クセスするときのアドレス情報は「A00000H 」〜
「A0001FH 」である。当然データ領域のアドレス
情報は「A00020H 」〜「A1FFFFH 」であ
る。
【0075】CPU6の共有メモリ2のアクセスアドレ
ス情報は32ビットのバスB4を用いて送付されるが、
CPU6が特定領域21の32ビットをアクセスすると
きのアドレス情報は「C0000000H 」〜「C00
0001FH 」であり、当然データ領域のアドレス情報
は「C0000020H 」〜「C001FFFFH 」で
ある。
ス情報は32ビットのバスB4を用いて送付されるが、
CPU6が特定領域21の32ビットをアクセスすると
きのアドレス情報は「C0000000H 」〜「C00
0001FH 」であり、当然データ領域のアドレス情報
は「C0000020H 」〜「C001FFFFH 」で
ある。
【0076】このようにすることにより、制御部1が各
アドレス情報の最上位4ビットをデコードすることによ
り、そのデコード結果が「AH 」や「CH 」であれば、
メモリ2がアクセスされていることが分かり、中間の6
〜17ビットが「0」であれば特定領域21がアクセス
されていることが分かり、中間の6〜17ビットが
「0」でなければデータ領域22がアクセスされている
ことが判明する。
アドレス情報の最上位4ビットをデコードすることによ
り、そのデコード結果が「AH 」や「CH 」であれば、
メモリ2がアクセスされていることが分かり、中間の6
〜17ビットが「0」であれば特定領域21がアクセス
されていることが分かり、中間の6〜17ビットが
「0」でなければデータ領域22がアクセスされている
ことが判明する。
【0077】また、当然のことではあるが、最上位4ビ
ットが「AH 」や「CH 」でなければ各バスに接続され
ている他の回路や装置がアクセスされていることにな
る。図5において、CPU5が時刻「t21」で、アド
レス「A00000H 」を指定して、データ「0000
H 」を転送したとする。共有メモリアクセス制御部1で
はアドレスデータの最上位4ビットが「AH 」であるこ
とから、カウンタ部12のカウンタをリセットする。
ットが「AH 」や「CH 」でなければ各バスに接続され
ている他の回路や装置がアクセスされていることにな
る。図5において、CPU5が時刻「t21」で、アド
レス「A00000H 」を指定して、データ「0000
H 」を転送したとする。共有メモリアクセス制御部1で
はアドレスデータの最上位4ビットが「AH 」であるこ
とから、カウンタ部12のカウンタをリセットする。
【0078】制御部1は、共有メモリ2とCPU5との
間のデータ転送パスを接続状態にし、共有メモリ2とC
PU6との間のデータ転送パスを切断状態にする。その
後、CPU6が時刻「t22」で特定領域21をアクセ
スしても、上記ウエイト部13によりデータ転送パスは
切断状態に保持されたままであるから、データ転送は抑
止される。
間のデータ転送パスを接続状態にし、共有メモリ2とC
PU6との間のデータ転送パスを切断状態にする。その
後、CPU6が時刻「t22」で特定領域21をアクセ
スしても、上記ウエイト部13によりデータ転送パスは
切断状態に保持されたままであるから、データ転送は抑
止される。
【0079】「DACK」信号が「High」─「Lo
w」─「High」と変化することにより、カウンタ部
のカウンタは時刻「t24」でカウントアップし、値は
「1」となる。
w」─「High」と変化することにより、カウンタ部
のカウンタは時刻「t24」でカウントアップし、値は
「1」となる。
【0080】続いて、CPU5が時刻「t25」で、ア
ドレス「A00002H 」を指定して、データ「002
0H 」を転送する。「DACK」信号が「High」─
「Low」─「High」と変化することにより、カウ
ンタ部のカウンタは時刻「t27」でカウントアップ
し、値は「2」となる。
ドレス「A00002H 」を指定して、データ「002
0H 」を転送する。「DACK」信号が「High」─
「Low」─「High」と変化することにより、カウ
ンタ部のカウンタは時刻「t27」でカウントアップ
し、値は「2」となる。
【0081】カウンタの値が「2」となったことによ
り、ウエイト部13は時刻「t27」でウエイト信号を
「High」─「Low」とし、CPU6がメモリ2を
アクセスすることを可能とする。
り、ウエイト部13は時刻「t27」でウエイト信号を
「High」─「Low」とし、CPU6がメモリ2を
アクセスすることを可能とする。
【0082】つまり、時刻「t22」で既にCPU6か
ら制御部1にバスB4を用いてアドレス情報が転送され
ており、当該アドレス情報はデコードされているから、
制御部1はCPU6と共有メモリ2との間のデータ転送
パスを時刻「t27」で接続状態にし、データ転送を開
始する。
ら制御部1にバスB4を用いてアドレス情報が転送され
ており、当該アドレス情報はデコードされているから、
制御部1はCPU6と共有メモリ2との間のデータ転送
パスを時刻「t27」で接続状態にし、データ転送を開
始する。
【0083】メモリ2からCPU6へのデータ転送が完
了すると「READY」信号が「High」─「Lo
w」─「High」と変化する。但し、CPU6が時刻
「t22」でデータ領域22をアクセスした場合には、
「DACK」信号が変化する時刻「t24」までは、C
PU6は待ち状態となるが、時刻「t24」以降はデー
タ領域22のアクセスは可能となる。データ領域をアク
セスする場合には、一かたまりの(意味のある)データ
が16ビット単位であることから、前記従来技術で説明
したようにウエイト部13とは無関係に、制御部1はC
PU5又はCPU6とデータ領域22との間のデータ転
送パスを接続状態にし、アクセスを可能にする。
了すると「READY」信号が「High」─「Lo
w」─「High」と変化する。但し、CPU6が時刻
「t22」でデータ領域22をアクセスした場合には、
「DACK」信号が変化する時刻「t24」までは、C
PU6は待ち状態となるが、時刻「t24」以降はデー
タ領域22のアクセスは可能となる。データ領域をアク
セスする場合には、一かたまりの(意味のある)データ
が16ビット単位であることから、前記従来技術で説明
したようにウエイト部13とは無関係に、制御部1はC
PU5又はCPU6とデータ領域22との間のデータ転
送パスを接続状態にし、アクセスを可能にする。
【0084】つまり、CPU5が特定領域21をアクセ
スした時のみ、ウエイト信号は有効となる。前述したよ
うに、特定領域21のアクセスかどうかは、アクセスア
ドレス情報の中間の6〜17ビットをデコードすれば容
易に判明する。
スした時のみ、ウエイト信号は有効となる。前述したよ
うに、特定領域21のアクセスかどうかは、アクセスア
ドレス情報の中間の6〜17ビットをデコードすれば容
易に判明する。
【0085】以上は、mが16ビットのCPUとnが3
2ビットのCPUとがら構成されるマルチプロセッサ構
成のシステムにおいて、データの構成ビット数pが32
ビットの時の処理に関する説明であるが、さらに第三の
処理装置として接続インタフェースが64ビットのCP
Uが制御部1aに接続されても状況は同じである。
2ビットのCPUとがら構成されるマルチプロセッサ構
成のシステムにおいて、データの構成ビット数pが32
ビットの時の処理に関する説明であるが、さらに第三の
処理装置として接続インタフェースが64ビットのCP
Uが制御部1aに接続されても状況は同じである。
【0086】この場合には、pが64ビットの時には、
mが16ビットのCPUが4回連続して共有メモリをア
クセス完了するまで他のCPUの当該共有メモリのアク
セスは抑止されることになる。当然のことながら、イン
タフェースが32ビットのCPUが2回連続して共有メ
モリのアクセスを完了するまで他のCPUの当該共有メ
モリのアクセスは抑止されることになる。
mが16ビットのCPUが4回連続して共有メモリをア
クセス完了するまで他のCPUの当該共有メモリのアク
セスは抑止されることになる。当然のことながら、イン
タフェースが32ビットのCPUが2回連続して共有メ
モリのアクセスを完了するまで他のCPUの当該共有メ
モリのアクセスは抑止されることになる。
【0087】pが32ビットの時には、インタフェース
が16ビットのCPUが2回連続して共有メモリのアク
セスが完了するまで他のCPUの当該メモリのアクセス
は抑止されることになる。
が16ビットのCPUが2回連続して共有メモリのアク
セスが完了するまで他のCPUの当該メモリのアクセス
は抑止されることになる。
【0088】又、各処理装置に対応してカウント部とウ
ェイト部とを設け、制御部は各処理装置から連続アクセ
ス回数Kを、或いはデータの有意ビット数pを初期値と
して受け取り、それ以後のアクセスの抑止の制御にこの
値を使用するような装置とすることも可能である。
ェイト部とを設け、制御部は各処理装置から連続アクセ
ス回数Kを、或いはデータの有意ビット数pを初期値と
して受け取り、それ以後のアクセスの抑止の制御にこの
値を使用するような装置とすることも可能である。
【0089】上記説明においては、pの値は予め約束事
(仕様)としたが、データ転送に先立ってパラメータと
して各処理装置から制御部に送付してもよい。以上、デ
ータの構成ビット数pが数バイトのケースについて説明
したが、このpは数十〜数十KBであっても、カウンタ
部12の計数値Kが大きくなるだけであり、本発明の一
般性は失われない。
(仕様)としたが、データ転送に先立ってパラメータと
して各処理装置から制御部に送付してもよい。以上、デ
ータの構成ビット数pが数バイトのケースについて説明
したが、このpは数十〜数十KBであっても、カウンタ
部12の計数値Kが大きくなるだけであり、本発明の一
般性は失われない。
【0090】
【発明の効果】以上の説明から明らかなように本発明に
よれば、共有装置をアクセス制御する制御部にカウント
部とウェイト部とを設けることにより、その共有装置に
接続されている複数の処理装置のうちの一つの処理装置
からその共有装置に有意のビット数のデータアクセスが
完了するまで、他の処理装置からその共有装置へのアク
セスを抑止することにより、効率よく、又、矛盾無く共
有装置を経由してデータ処理が行えるという効果があ
る。
よれば、共有装置をアクセス制御する制御部にカウント
部とウェイト部とを設けることにより、その共有装置に
接続されている複数の処理装置のうちの一つの処理装置
からその共有装置に有意のビット数のデータアクセスが
完了するまで、他の処理装置からその共有装置へのアク
セスを抑止することにより、効率よく、又、矛盾無く共
有装置を経由してデータ処理が行えるという効果があ
る。
【図1】 本発明の原理図
【図2】 本発明の実施例の構成図
【図3】 本発明における特定領域のデータ例
【図4】 本発明におけるデータ領域のデータ例
【図5】 本発明のタイムチャート
【図6】 従来技術のタイムチャート(その1)
【図7】 従来技術のタイムチャート(その2)
【図8】 従来のメモリアクセス装置適用例
【図9】 従来の特定領域のデータ例
【図10】 従来のデータ領域のデータ例
1,1a, 共有メモリアクセス制御部 2,2a 共有メモリ 3 データ転送バスA 4
データ転送バスB 5 第一の処理装置 6
第二の処理装置 7 ホスト 8,8a プリンタコントローラ 12 カウント部 13
ウェイト部 15 受信回路 16
ビットマップメモリ 17 CGメモリ 18
描画回路 19 プリンタ 30,4
0,50 制御信号線 60 信号線 31
アドレスバス 21,21a 特定領域 22,22
a データ領域
データ転送バスB 5 第一の処理装置 6
第二の処理装置 7 ホスト 8,8a プリンタコントローラ 12 カウント部 13
ウェイト部 15 受信回路 16
ビットマップメモリ 17 CGメモリ 18
描画回路 19 プリンタ 30,4
0,50 制御信号線 60 信号線 31
アドレスバス 21,21a 特定領域 22,22
a データ領域
Claims (4)
- 【請求項1】 複数の処理装置(5,6)と、 当該複数の処理装置から共通にアクセスされる共有装置
(2)と、 当該複数の処理装置(5,6)の当該共有装置(2)へ
のアクセスを制御する制御部(1)とを有し、 当該制御部(1)と当該各処理装置(5,6)との間に
は各々データ転送インタフェース(3,4)が存在し、 当該各データ転送インタフェースのうちの或る一つのデ
ータ転送インタフェース(3)のビット数をmとし、 当該mの値は各データ転送インタフェース(3,4)毎
に異なり得るものとし、 当該共有装置(2)を介して当該複数の処理装置(5,
6)間で授受されるデータの構成ビット数をpとする共
有アクセス制御装置において、 当該制御部(1)にカウント部(12)とウェイト部
(13)とを設け、 当該カウント部(12)は、当該複数の処理装置のうち
の或る一つの処理装置a(5)が当該共有装置(2)を
アクセスする際に連続するアクセス回数Kを計数し、 当該ウェイト部(13)は、当該或る処理装置a(5)
が当該共有装置(2)をアクセスしている時、Kは正の
整数であるとして前記計数値がK=p/mに達するま
で、 当該複数の処理装置のうち他の処理装置b(6)の当該
共有装置(2)へのアクセスを排他制御することを特徴
とする共有アクセス制御装置。 - 【請求項2】 前記請求項1において、「商」は0又は
正の整数であるとしてp/m=「商」+「剰余」を求め
る際に「剰余」が0でないときには、K=当該「商」+
1に達するまで、 当該複数の処理装置のうち他の処理装置b(6)の当該
共有装置(2)へのアクセスを排他制御することを特徴
とする共有アクセス制御装置。 - 【請求項3】 前記請求項1において、前記p/mが2
≦p/mであるような各処理装置(5,6)に対応して
カウント部12を複数個有することを特徴とする共有ア
クセス制御装置。 - 【請求項4】 前記請求項1,又は前記請求項2,又は
前記請求項3において、「剰余」が0の時にはカウント
部(12)の初期値を当該「商」とし、「剰余」が0で
ない時にはカウント部(12)の初期値を当該「商」+
1とし、 当該或る処理装置a(5)が当該共有装置(2)をアク
セスする度にカウント部(12)を「1」づつ減算し、
当該カウント部(12)が0に達するまで、 当該複数の処理装置のうち他の処理装置b(6)の当該
共有装置(2)へのアクセスを排他制御することを特徴
とする共有アクセス制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22271593A JPH0778103A (ja) | 1993-09-08 | 1993-09-08 | 共有アクセス制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22271593A JPH0778103A (ja) | 1993-09-08 | 1993-09-08 | 共有アクセス制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0778103A true JPH0778103A (ja) | 1995-03-20 |
Family
ID=16786776
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22271593A Pending JPH0778103A (ja) | 1993-09-08 | 1993-09-08 | 共有アクセス制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0778103A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20020065712A (ko) * | 2001-02-07 | 2002-08-14 | 삼성전자 주식회사 | 디바이스 액세스 방법 및 장치 |
| US6684278B1 (en) | 1999-07-16 | 2004-01-27 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer and memory access control method |
| JP2008117002A (ja) * | 2006-10-31 | 2008-05-22 | Matsushita Electric Works Ltd | 共有メモリインターフェイス |
| JP2008292542A (ja) * | 2007-05-22 | 2008-12-04 | Nec Electronics Corp | 画像処理装置および画像処理方法 |
-
1993
- 1993-09-08 JP JP22271593A patent/JPH0778103A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6684278B1 (en) | 1999-07-16 | 2004-01-27 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer and memory access control method |
| KR20020065712A (ko) * | 2001-02-07 | 2002-08-14 | 삼성전자 주식회사 | 디바이스 액세스 방법 및 장치 |
| JP2008117002A (ja) * | 2006-10-31 | 2008-05-22 | Matsushita Electric Works Ltd | 共有メモリインターフェイス |
| JP2008292542A (ja) * | 2007-05-22 | 2008-12-04 | Nec Electronics Corp | 画像処理装置および画像処理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6078977A (en) | Hierarchical bus structure access system | |
| US7171526B2 (en) | Memory controller useable in a data processing system | |
| US7916750B2 (en) | Transaction layer packet compression | |
| JP2003512670A (ja) | 連結リストdma記述子アーキテクチャ | |
| JPH1091572A (ja) | データ転送方法及びその方法を用いたデータ転送装置 | |
| EP0464848B1 (en) | Structure for enabling direct memory-to-memory transfer | |
| US12229059B1 (en) | Request processing method and apparatus, device, and medium | |
| KR100258833B1 (ko) | 멀티모드 캐시 메모리 | |
| US6725292B2 (en) | Direct memory access controller for circular buffers | |
| CN116610601A (zh) | 一种数据传输装置及其控制方法、装置、介质 | |
| JPH1055331A (ja) | プログラム可能な読み出し/書き込みアクセス信号とその方法 | |
| JPH0778103A (ja) | 共有アクセス制御装置 | |
| US6148350A (en) | System for allocating an integer unit of memory greater than a requested size and filling the extra space due to difference in sizes with extraneous data | |
| US8219736B2 (en) | Method and apparatus for a data bridge in a computer system | |
| JPS63296158A (ja) | 情報処理装置 | |
| JPS6341163A (ja) | 印字装置 | |
| US20060200595A1 (en) | Variable length command pull with contiguous sequential layout | |
| JP2003309564A (ja) | マイクロコンピュータシステムおよびそれに使用されるトランシーバ | |
| JP3216965B2 (ja) | データ受信装置、方法、およびシステム | |
| CN1357824A (zh) | 数据存取控制装置、方法及其所使用的指令格式 | |
| JP3480961B2 (ja) | メモリアクセス方法 | |
| US6430647B1 (en) | Data processing system for use in conjunction with a font card or the like | |
| US7506133B2 (en) | Method and apparatus for high speed addressing of a memory space from a relatively small address space | |
| JP2574821B2 (ja) | ダイレクトメモリアクセス・コントローラ | |
| JPS59123913A (ja) | Dmaアクセス方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020723 |