(57)【特許請求の範囲】
【請求項１】
CPUから外部メモリをシステムバス経由でアクセスするためのCPUインターフェース回路において、
前記CPUから発行される前記アクセスのためのアクセス命令を格納するパイプラインバッファと、
前記パイプラインバッファ中の未処理アクセス命令数を検出する手段と、
前記パイプラインバッファ中の処理済みアクセス命令数を検出する手段と、
前記アクセス命令がライト命令であるときは、前記未処理アクセス命令数が前記処理済みアクセス命令数より少なくない限り、前記外部メモリへの書込み完了を待たずに前記CPUへアクノリッジ信号を返送する手段と、
前記未処理アクセス命令数のカウント数が前記処理済みアクセス命令数より少なくない限り、前記パイプラインバッファ中のアクセス命令の実行を起動する手段と
を備えたことを特徴とするCPUインターフェース回路。
【請求項２】
CPUから外部メモリをシステムバス経由でアクセスするためのCPUインターフェース回路において、
前記CPUから発行される前記アクセスのためのアクセス命令を格納するパイプラインバッファと、
前記パイプラインバッファにアクセス命令が格納される毎にカウントアップされて前記パイプラインバッファの番地を指定する書込みアドレスポインタ生成回路と、
前記パイプラインバッファに格納されたアクセス命令が処理されるとカウントアップされる実行アドレスポインタ生成回路と、
前記アクセス命令がライト命令であるときは、前記書込みアドレスポインタ生成回路のカウント数が前記実行アドレスポインタ生成回路のカウント数より少なくない限り、前記外部メモリへの書込み完了を待たずに前記CPUへアクノリッジ信号を返送するACKコントローラと、
前記書込みアドレスポインタ生成回路のカウント数が前記実行アドレスポインタ生成回路のカウント数より少なくない限り、前記パイプラインバッファ中のアクセス命令の実行を起動するアクセスコントローラと
を備えたことを特徴とするCPUインターフェース回路。
【請求項３】
複数のCPUから共有する外部メモリをシステムバス経由でアクセスするために前記CPU毎に設けられたCPUインターフェース回路において、
前記CPUから発行される前記アクセスのためのアクセス命令を格納するパイプラインバッファと、
前記パイプラインバッファにアクセス命令が格納される毎にカウントアップされて前記パイプラインバッファの番地を指定する書込みアドレスポインタ生成回路と、
前記パイプラインバッファに格納されたアクセス命令が処理されるとカウントアップされる実行アドレスポインタ生成回路と、
前記アクセス命令がライト命令であるときは、前記書込みアドレスポインタ生成回路のカウント数が前記実行アドレスポインタ生成回路のカウント数より少なくない限り、前記外部メモリへの書込み完了を待たずに前記CPUへアクノリッジ信号を返送するACKコントローラと、
他のCPUインターフェース回路との間で前記システムバスの使用を調停する調停回路と、
前記書込みアドレスポインタ生成回路のカウント数が前記実行アドレスポインタ生成回路のカウント数より少なくなく、かつ前記調停回路によって前記システムバスの使用許可がされると前記他のCPUインターフェース回路へ前記調停のためにシステムバス獲得信号を出力した後に前記パイプラインバッファ中のアクセス命令の実行を起動するアクセスコントローラと
を備えたことを特徴とするCPUインターフェース回路。
【請求項４】
前記ACKコントローラは、リードアクセス時にもライトアクセス時と同じタイミングで前記CPUへアクノリッジ信号を返送し、前記外部メモリから読み出したデータをラッチ回路に取り込んだ時点で前記CPUに割込み信号を発行し、該CPUによる前記ラッチ回路のリードを勧誘することを特徴とする請求項２または請求項３に記載のCPUインターフェース回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、CPUインターフェース回路に関し、特にCPUが外部メモリをシステムバス経由でアクセスするためのCPUインターフェース回路に関する。
【０００２】
【従来の技術】
速度の速いCPUや半導体メモリと速度の遅い記憶装置との間のデータ通信においては、両者のスピードギャップに起因する弊害を解消するために、従来から、様々な手段が講じられている。例えば特開昭６２−１２３５２１号公報記載の「フロッピーディスク装置のバッファメモリ制御方式」によれば、速度の遅いフロッピーディスク装置がメインメモリにデータを転送する場合にデータバスを占有してしまい、その間はCPUが待ち状態となり、システムのスループットを落としてしまうという問題を解決するため、フロッピーディスク装置とメインメモリの間に動作の高速なFIFOバッファを設けている。そして、このFIFOバッファを、新たに設けた別のローカルバス経由でデータバスに乗せ換えてメインメモリに自動転送し、CPUの待ち状態を少なくするDMA(Direct Memory Access)のような目的に用いている。
【０００３】
また、複数のCPUを用い、システムバス経由で共有メモリを使用する装置においては、CPUからシステムバス経由で共有メモリにデータを書き込む場合に、共有メモリを制御するRAM制御回路からのアクノリッジ信号が戻ってきてから次の命令を行うようにしている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来技術では、CPUから外部メモリへのバーストモードによるアクセスに対しては所期の目的を達成できるが、ランダムアクセスモードにおいては、１回のライトアクセスに非常に時間がかかってしまうという第１の問題点がある。その理由は、速度の遅いシステムバス上の外部メモリを使用するので、CPUがこの外部メモリへランダムアクセスした場合、アクセスが完了したことを知らせるアクノリッジ信号が返ってくるまで待たされることとなり、他の命令を実行することができないためである。
【０００５】
また、複数のCPUが外部メモリを共有する場合には、各CPUからの外部メモリへのアクセスが集中してシステムバスの使用権を巡る調停が増えると、システムバスの使用権を獲得するまでの時間もアクセス時間に含まれることとなり、より一層アクセス時間がかかってしまうという第２の問題点がある。
【０００６】
そこで、本発明の目的は、CPUがシステムバス上の外部メモリへランダムアクセスを行ったときにも、アクノリッジ信号が返送されるまでCPUが待つ必要がないCPUインターフェース回路を提供することにある。
【０００７】
本発明の他の目的は、CPUインターフェース回路が外部メモリへランダムアクセスする際に、他のCPUとシステムバスの使用権が競合して外部メモリが使用できないときでも、CPUが待たされないような調停機能を併せ持つCPUインターフェース回路を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、外部メモリへのアクセスは、システムバスのアクセス速度が遅いためにCPUの動作を中断させてしまう可能性があるので、本発明では、CPUから外部メモリに直接アクセスせずに、CPUからの複数個アクセス命令を一時的に格納することのできるパイプラインバッファ（図１の４）と、パイプラインバッファに保留されたアクセス命令をCPUに代わって実行するアクセスコントローラ（図１の７）を有している。
【０００９】
また、本発明は、ライトアクセス時にはパイプラインバッファにアクセス命令を格納した時点でCPUに自動的にアクノリッジ信号CPUACKを送出し、リードアクセス時はシステムバス上のRAM制御回路からのメモリアクノリッジ信号MACKをCPUに返送するACKコントローラ（図１の２）を有し、このACKコントローラに作用する別の回路として、パイプラインバッファに格納しているアクセス命令数をカウントする書込みアドレスポインタ生成回路（図１の３）と、実行したアクセス命令数をカウントする実行アドレスポインタ生成回路（図１の６）を設け、ACKコントローラはこの２つのアドレスポインタの差を監視して、未処理の格納命令数がパイプラインバッファ段数を超えないようにCPUへの自動アクノリッジ返送を制御していることに特徴がある。
【００１０】
本発明では、CPUが外部メモリにアクセスしたときに、リード/ライト命令を判別し、ライト命令ならRAM制御回路からのアクノリッジを待たずに自動的にアクノリッジ信号をCPUへ発行し、リード命令ならRAM制御回路から発行されるアクノリッジ信号をCPUに返すACKコントロール回路を有している。この結果、ライトアクセス時には、CPUがライト命令を実行した時点で次の命令に移行することができる。
【００１１】
また、外部メモリにライトされる前にさらにCPUから外部メモリへのアクセスが重なったときにおいても、アクセスアドレス，ライトデータおよびリード／ライト種別コードを合成し、それらの連続アクセス命令を一時的に格納することができるパイプラインバッファと、そのパイプラインバッファのオーバーフローや格納命令数を管理するアドレスポインタ生成回路を設けて、オーバーフローを起こす危険がある場合には、ACKコントロール回路に作用しCPUへのアクノリッジ信号の返送をマスクする機能を有する。
【００１２】
RAM制御回路は、アドレスポインタの示す値からパイプラインバッファに保留されたアクセス命令があると判断すると、パイプラインバッファに保留されていたCPUのアクセス命令をシステムバス上に発行し、外部メモリへのアクセスを行い、ライト命令ならば書き込み、リードならばＲＡＭ制御回路からアクノリッジ信号が発行されたときにシステムバス上のデータをラッチ回路に保存してCPUのデータバスに乗せ、ACKコントローラはRAM制御回路からのメモリアクノリッジ信号MACKからアクノリッジ信号CPUACKを生成してCPUに返送し、リードデータの受け渡しを行う。
【００１３】
このように、外部メモリへのライトアクセスにおいては、パイプラインバッファにアクセス命令が格納された時にACKコントローラから自動的にCPUへアクノリッジを返送することにより、CPUは長時間待たされることなく他の処理に移行することが可能となる。
【００１４】
【発明の実施の形態】
本発明のCPUインターフェース回路は、CPUから外部メモリをシステムバス経由でアクセスするためのCPUインターフェース回路であって、CPUから発行されるアクセスのためのアクセス命令を格納するパイプラインバッファと、パイプラインバッファ中の未処理アクセス命令数を検出する手段と、パイプラインバッファ中の処理済みアクセス命令数を検出する手段と、アクセス命令がライト命令であるときは、未処理アクセス命令数が処理済みアクセス命令数より少なくない限り、外部メモリへの書込み完了を待たずにCPUへアクノリッジ信号を返送する手段と、未処理アクセス命令数のカウント数が処理済みアクセス命令数より少なくない限り、パイプラインバッファ中のアクセス命令の実行を起動する手段とを備えたものである。
【００１５】
【実施例】
次に、本発明の実施例について図面を参照して詳細に説明する。
【００１６】
図１は本発明の第１の実施例であるCPUインターフェース回路１００を示す。このCPUインターフェース回路１００は、ACKコントローラ２，書込みアドレスポインタ生成回路３，パイプラインバッファ４，ラッチ回路５，実行アドレスポインタ生成回路６およびアクセスコントローラ７から成る。
【００１７】
図１において、書込みアドレスポインタ生成回路３はCPU１が外部メモリ１０にアクセスしたときにカウントアップするカウンタ回路であり、パイプラインバッファ４はCPU１が外部メモリ１０にアクセスする時のアクセスアドレス，リード／ライト種別およびライトならばそのライトデータ（この３つをまとめてアクセス命令という）をCPUデータバス２０を介して格納する回路である。パイプラインバッファ４は、CPU１の外部メモリ１０へのアクセス単位に上述のアクセス命令を格納するメモリ番地を有し、各メモリ番地は書込みアドレスポインタ生成回路３によって指定される。なお、１つのメモリ番地が１つのバッファとなる。
【００１８】
アクセスコントローラ７はパイプラインバッファ４に格納されている未処理のアクセス命令を取り出して、システムバス８を介しRAM制御回路９にリードあるいはライトアクセスを行う。RAM制御回路９は外部メモリ１０にアクセスするためのインターフェース回路であり、外部メモリ１０へのアクセスが完了したことを知らせるメモリアクノリッジ信号MACKの生成機能を有している。実行アドレスポインタ生成回路６はこのRAM制御回路９からのメモリアクノリッジ信号MACK信号を受け取り、外部メモリ１０へのアクセスが完了したことをカウントアップする回路であり、ラッチ回路５はリード時にRAM制御回路９を介して出力されるリードデータをRAM制御回路9からのメモリアクノリッジ信号MACKの入力タイミングで取り込む回路である。
【００１９】
ACKコントローラ２は、リード時にはラッチ回路５で取り込んだリードデータをアクノリッジ信号CPUACK返送のタイミングでCPUデータバス２０に乗せ、CPU１にリードデータを転送する。ACKコントローラ２は書込みアドレスポイイタ生成回路３および実行アドレスポイイタ生成回路６と接続されており、この２つのアドレスポインタの値を元にパイプラインバッファ４内の未処理アクセス命令数と処理完了のアクセス命令数の差を演算してCPU１へのアクノリッジ信号CPUACKの返送を制御する回路である。この結果、パイプラインバッファ４に、例えばを８段のパイプラインバッファを設けるとCPU１からのライトアクセス命令が８回連続行われてもCPU１は待ち時間無しで他の処理を行うことができるようになる。
【００２０】
なお、RAM製御回路９の機能は、使用する外部メモリ１０の仕様に依存して異なり、アクセスコントローラ７の機能は、RAM制御回路９の機能に合わせることになる。
【００２１】
次に、パイプラインバファ４の詳細図（図２）およびタイミングチャート（図３，図４）を参照して本実施例の動作について説明する。
【００２２】
パイプラインバッファ４は図２のような８段のバッファ＃０〜バッファ＃４で構成されており、バッファ＃０〜バッファ＃７のそれぞれは、CPU１からのアクセスがリードの時はリード/ライト種別信号を１ビットで表現したデータR/Wと、アクセスアドレスXA，更にライトアクセスの時は、その他にライトデータXDを格納する。ここでは、アクセスアドレスXAと、ライトデータXDがそれぞれ３２ビット幅とする。
【００２３】
CPU１から外部メモリ１０へのアクセス命令が発行されると、書込みアドレスポインタ生成回路３に１が加算される。一方、実行アドレスポインタ生成回路６は，RAM制御回路９から発行され外部メモリ１０へのアクセスが完了したことを示すメモリアクノリッジ信号MACKをカウントする。RAM制御回路９はシステムバス８上の外部メモリ１０にライトまたはリードアクセスするためのインターフェース機能を有し、外部メモリ１０の動作状態を監視してシステムバス８の使用許可信号を生成したり、あるいは外部メモリ１０の選択信号MCS信号およびメモリアクノリッジ信号MACKを生成する。
【００２４】
当初は、書込みアドレスポインタ生成回路３と、実行アドレスポインタ生成回路６の初期値はともに“０”であり、この２つのアドレスポインタの差はないが、CPUインターフェース回路１００がCPU１から外部メモリアクセス命令を受けると、書込みアドレスポインタ生成回路３に１が加算されるので、書込みアドレスポインタ生成回路３と実行アドレスポインタ生成回路６の差は“０”でなくなる。アクセスコントローラ７はこの条件を契機としてシステムバス８上のRAM制御回路９にアクセス信号を出力する。ライトアクセス時は、この時点でCPU１に対して、外部メモリ１０へのライトアクセスが完了したことを示すアクノリッジ信号CPUACKを返送する。
【００２５】
図３はライトアクセス時におけるタイミングチャートである。システムバスクロックより遥かに早いクロックで動作するCPU１からメモリライトアクセス命令が発行されると、アクセスコントローラ７はパイプラインバッファ４のメモリ番地に格納していたアクセスアドレスXAをMA[31:0]、ライトデータXDをMD[31:0]、Ｒ/W種別をR/Wとしてシステムバス８上に出力し、RAM制御回路９は外部メモリ10へアクセスを行う。本来ならば外部メモリ１０にライトデータMD[31:0]がライトされ、RAM制御回路９から発行されるメモリアクノリッジ信号MACKを受けた後に、CPU１は次の命令を発行する。しかし、ここでは図３に示されるように、ACKコントローラ２は、CPUクロックの数クロック後にアクノリッジ信号CPUACKを自動生成するので、メモリアクノリッジ信号MACKを待たずにCPU１は次の命令実行に移ることができる。
【００２６】
そして、後にRAM制御回路9から発行されたメモリアクノリッジ信号MACKを受けると実行アドレスポインタ生成回路６に１が加算される。この時、書込みアドレスポインタ生成回路３との差が“０”であれば、パイプラインバッファ４に格納さている保留アクセス命令が無いと判断し、本ＣＰＵインターフェース回路１００は停止する。しかし、実行アドレスポインタ生成回路６と書込みアドレスポインタ生成回路３に差があるならば、まだ保留されているアクセス命令があるということなので、アクセスコントローラ７からRAM制御回路９へ次のアクセス命令が送られ実行される。
【００２７】
一方、リード時の外部メモリ１０へのアクセス方法はライト時と同様であるが、この場合には外部メモリ１０からのリードデータMD[31:0]をラッチ回路５に取り込む。取り込むタイミングは図４で示すようにRAM制御回路9から発行されるメモリアクノリッジ信号MACKを契機とする。ACKコントローラ２は、CPUクロックで２回サンプリングしてアクノリッジ信号CPUACKで生成してCPU１へ返送するのである。
【００２８】
また、この時に同時にラッチ回路５で取り込んだリードデータCD[31:0]をCPUデータバス２０に送出し、CPU１はアクノリッジ信号CPUACKを受けた時のCPUデータバス２０上のデータCD[31:0]をリードデータとして取り込む。このようにリードアクセス時には、外部メモリ１０からリードデータが転送されてくるまでCPU１が待たされるので、従来のアクセス方式と変わりはない。
【００２９】
以上の説明のように、ACKコントローラ２は、基本的にはライトアクセス命令をパイプラインバッファ４に格納したときにCPU１に対してアクノリッジ信号CPUACKを返送し、リードアクセス時はRAM制御回路９からメモリアクノリッジ信号MACKが来るまでアクノリッジ信号CPUACKを返送しないようになっている。ただし、外部メモリ１０へのアクセス処理が遅く、パイプラインバッファ４に格納された未処理のアクセス命令が一杯になってしまった時は、未処理のアクセス命令が上書き格納されないよう、例外的にリードアクセスまたはライトアクセスに関係なく、その最後のCPU１からの外部メモリ１０へのアクセス命令に対するアクノリッジ信号CPUACKは現在実行中のアクセス処理が終わるまでCPU１へ返送しない。
【００３０】
したがって、本発明はパイプラインバッファ４が一杯にならず、かつライトアクセスが連続的に行われることが多い場合はCPU１の稼働率向上に効果的である。
【００３１】
次に、本発明の第２の実施例について説明する。この実施例は、図５に示すように、３つのCPU１，２２，２３が共有する外部メモリ１０へのメモリアクセスに対する調停機能を有するシステムに対して適用したものである。図５と図１において、同じ参照番号が付されたものの機能は同一であり、重複を回避するために、ここではそれらの説明を省略する。また、この実施例では、３つのCPU１，２２および２３が外部メモリ１０を共有し、CPU２２，CPU２３は、それぞれCPUインターフェース回路１２，１３を介してシステムバス８に接続されている。CPUインターフェース回路１０１は、図１に示したCPUインターフェース回路１００に調停回路１１が付加されたものとなっている。
【００３２】
この実施例では、３つCPU１，２２および２３がシステムバス８を共有するので、例えばCPU１がシステムバス８を使用している時はアクセスコントローラ７がシステムバス獲得信号１４を他のCPUインターフェース回路１２および２３に通達する。この時、調停回路１１はアクセスコントローラ７が外部メモリ１０にアクセスしようとする際に発行する動作許可願いを受け取ると、CPUインターフェース回路１２,１３からののシステムバス獲得信号１５を監視し、システムバス８がCPUインターフェース回路１２，１３に使用されていないかを確認した後、使用されていなければアクセスコントローラ７に動作許可信号を発行する。この動作許可信号を受けるとアクセスコントローラ７はシステムバス獲得信号１４をCPUインターフェース回路１２，１３に出力した後にRAM制御回路９へアクセスを始める。
【００３３】
次に、タイムチャート図６および図７を参照して本実施例の動作について説明する。パイプラインバッファ４の構成を示す図２は本実施例にも適用できる。CPU1から外部メモリ１０へアクセス命令が発行されると、書込みアドレスポインタ生成回路３に１が加算される。一方、実行アドレスポインタ生成回路６は、RAM制御回路９から発行され外部メモリ１０へのアクセスが完了したことを示すメモリアクノリッジ信号MACKをカウントする。RAM制御回路9は、システムバス８上の外部メモリ１０にライトまたはリードアクセスするためのインターフェース機能を有し、外部メモリ１０の選択信号であるMCS信号およびメモリアクノリッジ信号MACKを生成する。
【００３４】
当初は、書込みアドレスポインタ生成回路３と実行アドレスポインタ生成回路６の初期値は共に“０”であり、この２つのアドレスポインタに差はないが、CPUインターフェース回路１０１がCPU１からの外部メモリアクセス命令を受け付けると、書込みアドレスポインタ生成回路３に１が加算されるので、書込みアドレスポインタ生成回路３と実行アドレスポインタ生成回路６の差が“０”でなくなる。アクセスコントローラ７はこの条件を契機として調停回路１１に外部メモリ１０へのアクセス動作許可願いを発行する。
【００３５】
要求を受けた調停回路１１は、他のCPUインターフェース回路１２，１３のシステムバス獲得信号１５をサーチし、システムバス８が使用されているかどうか確認作業を行う。システムバス８の使用権が空いていれば直ちにアクセスできるのだが、図６では既に他のCPUインターフェース回路がシステムバスを獲得しているので、調停回路１１はアクセスコントローラ７には動作許可信号を与えることができない。その後、暫くして他のCPUインターフェース回路がシステムバス８の使用を終了したので、これを監視していた調停回路１１がアクセスコントローラ７に動作許可信号を発行する様子が示されている。
【００３６】
アクセスコントローラ７は動作許可信号を受けると、実行アドレスポインタ生成回路６の値で示されるパイプラインバッファ４のメモリ番地に格納されている外部メモリアクセス命令をRAM制御回路９に出力し、メモリアクセスが行われる。図６はライト動作時のタイミングチャートである。外部メモリ１０へのライトが完了すると、RAM制御回路９からメモリメモリアクノリッジ信号MACKが返送されるので、実行アドレスポインタ生成回路６はこれを受けて実行アドレスポインタ生成回路６に１を加算し、次の動作に備える。この時点で実行アドレスポインタ生成回路６と書込みアドレスポインタ生成回路３の差が“０”の場合はCPU１からのアクセス命令が無かったことになるので動作停止となる。差があった場合は、アクセスコントローラ７が調停回路１１に動作許可願いを発行し、以後、上記の動作が繰り返される。
【００３７】
一方、リード時の外部メモリ10へのアクセス方法はライト時と同様に調停を行った後に行われるが、リード時には外部メモリ１０からのリードデータMD[31:0]をラッチ回路５に取り込む。取り込むタイミングは図７で示すようにRAM制御回路９から発行されるメモリメモリアクノリッジ信号MACKを契機とする。ACKコントローラ２は、CPUクロックで２回サンプリングしてアクノリッジ信号CPUACKを生成してCPU１に返送するのである。
【００３８】
また、この時に同時にラッチ回路５で取り込んだリードデータをCPUデータバス２０に送出し、CPU１はアクノリッジ信号CPUACKを受けた時のCPUデータバス２０上のデータCD[31:0]をリードデータとして取り込む。このように、リードアクセス時は外部メモリ１０からリードデータMD[31:0]が転送されてくるまでCPU１が待たされるので、従来のアクセス方式と変わりはない。図７ではライトの動作で説明した状況と同じく、CPU１が外部メモリ１０へリードアクセス命令を発行したときに、他のCPU２２，２３がシステムバス８を使用しいてたのでその動作が終了するまでアクセスコントローラ７が待たされ、システムバス８の使用権が解放された後にアクセスコントローラ７の動作が許可されて外部メモリ１０へのリードが行われることを示している。
【００３９】
以上の説明のように、ACKコントローラ２は、基本的にはライトアクセス命令をパイプラインバッファ４に格納したときにCPU１に対してアクノリッジ信号CPUACKを返送するので、CPU１は待たされることなく連続で処理を行うことができる。リードアクセス時はRAM制御回路９からのメモリアクノリッジ信号MACKが来るまでアクノリッジ信号CPUACKを返送しないようになっている。ただし、例外的に外部メモリ１０へのアクセス処理が遅く、パイプラインバッファ４に格納された未処理のアクセス命令が一杯になってしまった時は、リードアクセスまたはライトアクセスに関係なくその最後のCPU１からの外部メモリ１０へのアクセス命令に対するアクノリッジ信号CPUACKは現在実行中のアクセス処理が終わるまでは返送しない。
【００４０】
この本実施例によると、外部メモリ１０を複数のCPUで共有していることによる使用権獲得までの待ち時間が長い時のライトアクセス、あるいはパイプラインバッファ４が一杯にならず、かつライトアクセスが比較的連続して行われるような場合、例えばCPU１に計算させた後に外部メモリ１０にその計算結果を連続的に８回ストアして、他のCPUがその結果を用いるために外部メモリ１０へリードするようなアプリケーション上で稼働する場合にCPU１の稼働率向上の成果が顕著に現れる。
【００４１】
次に、本発明の第３の実施例について図８および図９により説明する。
【００４２】
本発明では、これまで説明したように外部メモリへのライトアクセス時に効果的だが、リードアクセスは従来と同じアクセスタイムであった。第３の実施例では、CPU１が外部メモリ１０へリードを行ったときは、図９のタイミングチャートで示すようにライトアクセスと同じタイミングでアクノリッジ信号CPUACKを返すことにより、CPU１の待ち時間を減らして次の処理を実行することができるようになる。ただし、RAM制御回路９からメモリアクノリッジ信号MACKが返送され、外部メモリ１０からリードしたデータをラッチ回路５に取り込んだ時点で、CPU１には割込み信号であるINT１６を発行する。
【００４３】
CPU1はこのINT１６を受け付けると、ラッチ回路５のデータをリードすることによってリードアクセスを完了させる。このように１回の外部メモリリードアクセスの待ち時間をライトアクセスと同等にするために２回のリード命令が必要にはなるが、プロセッサクロックはシステムバス８のクロックに比べて十分に早いので、リード時においてもCPU1の待ち時間短縮の効果が期待できるのである。
【００４４】
【発明の効果】
本発明の効果は、CPUが外部メモリに対して、ランダムにアクセスする時にアクノリッジ信号を受けるまでの待ち時間を減らし、その間により多くの処理を実行することができるということである。
【００４５】
その理由は、CPUから外部メモリへのアクセス命令を一度パイプラインバッファに格納した後にCPUへアクノリッジ信号を返送して既に処理が済んだように見せかけ、外部メモリへのアクセスはアクセスコントローラが代行するので、アクセス完了後のアクノリッジ信号を待たないで次の処理に移行できるからである。例えばパイプラインバッファの段数を８とすれば、１回のライトアクセスに要するCPUの待ち時間は、従来の方法に比べて平均でシステムバスクロックの８クロック分程度早くなるように改善される。
【００４６】
また、複数のCPUが共有メモリをシステムバス経由で共有するシステムでは、CPUインターフェース回路それぞれに調停回路を設け、他のCPUによるシステムバスの使用が調停回路に知らすようにすることによって、システムバスの調停性能を高めることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施例のブロック図
【図２】本発明におけるパイプラインバッファの構成図
【図３】図１に示した第１の実施例におけるライトアクセスタイミングチャート
【図４】図１に示した第１の実施例におけるリードアクセスタイミングチャート
【図５】本発明の第２の実施例のブロック図
【図６】図５に示した第２の実施例におけるライトタイミングチャート
【図７】図５に示した第２の実施例におけるリードタイミングチャート
【図８】本発明の第３の実施例のブロック図
【図９】図８に示した第３の実施例におけるリードアクセスタイミングチャート
【符号の説明】
１        CPU
２        ACKコントローラ
３        書込みアドレスポインタ生成回路
４        パイプラインバッファ
５        ラッチ回路
６        実行アドレスポインタ生成回路
７        アクセスコントローラ
８        システムバス
９        RAM制御回路
１０      外部メモリ
１１      調停回路
１２      CPUインターフェース回路
１３      CPUインターフェース回路
１４      システムバス獲得信号
１５      システムバス獲得信号
１６      INT信号
１００    CPUインターフェース回路
１０１    CPUインターフェース回路
１０２    CPUインターフェース回路
【図１】
0004592944.tif 000002
【図２】
0004592944.tif 000003
【図３】
0004592944.tif 000004
【図４】
0004592944.tif 000005
【図５】
0004592944.tif 000006
【図６】
0004592944.tif 000007
【図７】
0004592944.tif 000008
【図８】
0004592944.tif 000009
【図９】
0004592944.tif 000010