しかしながらコントローラによる上述のウェイトステート制御には以下の問題点の有ることが本発明者によって明らかにされた。
(1)ウェイトステートによって延長されるデータ転送時間の長さが常にシステムの動作クロック単位で決められてしまうため、メモリや周辺回路の持つ固有の性能を十分引き出すことができない。さらには、そのメモリや入出力回路について製造/販売者から提出される設計データに基づく性能を極限状態で使用してシステムを設計することは実質上不可能であり、ある程度の動作マージンを見込むため、ほとんどの場合、データ転送に無駄時間が必ず発生し、データバス上でのデータ転送効率が低下することが余儀なくされる。この問題点は、実装ボード上でシステムを構成する場合、即ちメモリや入出力回路とCPUとの接続を実装ボード上のバスで行う場合に限らず、同一半導体チップにCPUやメモリを形成する場合にもある程度あてはまる事柄である。すなわち、電気的特性ならびに回路素子の配置を考慮して最適化設計を施せば、コントローラとメモリがコントローラの動作クロックに対して無駄無くデータ転送を行なえるようにできるが、実際の回路設計では、個々の論理回路ブロックの特性を考慮して、微妙なタイミングをチップ内部で行わなければならず、必ずしも容易ではない。
(2)上記ウェイトステート制御は、メモリや入出力回路が複数ある場合、機能(プロトコール含む)や性能の違いからそれぞれのメモリや入出力回路毎にシステム設計者が設計する必要があり、膨大な手間を要する。
(3)ウェイトステート制御のための回路部分がメモリや入出力回路の数分だけ必要になり、システムの複雑化、部品点数の増加、信号系統の負荷の増加など高速化、小型化、低価格化などに対する弊害の原因を生む。
(4)上記(1)で説明したようにウェイトステート制御ではメモリや周辺回路の持つ固有の性能を十分引き出すことがでず、動作の高速化には限界があるので、それに対処するために、全てまたはシステム効率上効果の高いメモリや入出力回路に対してウェイトステート制御無しで接続することも可能ではある。しかしながら、そのとき、メモリや入出力回路の動作速度などの特性に合わせてコントローラの動作クロックを抑えると、CPUなどのコントローラの動作クロックは高速化される傾向にあるため、システムの価値を低下させてしまう。その逆に、コントローラの動作クロックに合わせて高速なメモリや入出力回路を使用すると、システム価格の極端な上昇を招いてしまう。
このように、CPUと周辺回路とのデータ転送タイミングをCPU若しくはシステムの動作クロックから生成している従来方式では、メモリなどの周辺回路が持つ本来の性能を十分に活かすデータ転送を実現することはできない。すなわち、周辺回路の特性を基に動作クロックの整数倍のタイミングでウェイト信号をCPUに返し、確実な動作に重点をおいたウェイトステート制御機能でCPUと周辺回路を接続していたのでは、根本的な高速化への発展を望むことは難しいと本発明者は判断した。
本発明の目的は、メモリなどの周辺回路の持つ本来の特性を充分に発揮させてデータ転送を行うことができる技術を提供することにある。
本発明の別の目的は自らの特性にしたがってデータ転送のタイミングを発生する周辺回路を提供することにある。
本発明の更に別の目的は、そのような周辺回路と効率的にデータ転送を行うことができるデータプロセッサを提供することにある。
本発明のその他の目的は、メモリなどの周辺回路の持つ本来の特性を充分に発揮させてデータプロセッサとの間で高速にデータ転送を行うことができるデータ処理システムを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、図1に代表的に示されるように、周辺回路(1)としては、データプロセッサ(2)からのアクセス要求(200,201,202)に対して自ら内蔵する自励発振回路(102)の発振出力に同期して当該アクセス要求に従った内部動作を行うと共に、その内部動作に同期して上記データプロセッサに上記アクセス要求に対する応答要求(103)を出力する構成を採用する。
データプロセッサには、所要の周辺回路に対してアクセス要求を行うと共に、アクセス要求を行った周辺回路からの応答要求を受け、これに同期して当該アクセス要求の種別に応じ外部からデータを取り込み又は外部にデータを出力する構成を採用する。
斯るデータプロセッサと周辺回路との間のデータ転送制御は、データプロセッサが周辺回路に対してアクセス要求を行う処理と、アクセス要求された周辺回路が自ら内蔵する自励発振回路の発振出力に同期して当該アクセス要求に従った内部動作を行う処理と、上記アクセス要求された周辺回路がその内部動作に同期して上記データプロセッサに上記アクセス要求に対する応答要求を出力する処理と、上記応答要求を受けた上記データプロセッサがそれに同期して上記アクセス要求の種別に応じ外部からデータを取り込む処理又は外部にデータを出力する処理を行う処理と、によって実現される。
既存のデータプロセッサや周辺回路の構成に対する付加回路を極力減らして上記手段を実現するには、上記アクセス要求は、アクセス対象として選択されるべき周辺回路とデータの転送方向とを示すための情報(200,201)によって行い、上記応答要求は、周辺回路の内部動作に同期して変化される一つの信号(103)によって行うことができる。
上述の機能を有する周辺回路を比較的簡単に構成するには、図5に代表的に示されるように、データプロセッサからのアクセス要求に応答して内部動作のアクセスサイクル信号(1013)を自励発振回路(102)の発振出力に基づいて生成するサイクルタイミング発生回路(1010)と、上記アクセスサイクル信号を上記応答要求として外部に出力する外部端子(AC)と、上記アクセスサイクル信号(103)に同期して内部動作タイミング信号を生成する内部タイミング発生回路(1011)と、を設けて周辺回路を構成する。
その様な周辺回路をバースト読出し(複数語の連続データ読出し)可能なメモリとして構成する場合には、図6に代表的に示されるように、メモリセルアレイからの連続データ読出し語数を上記アクセスサイクル信号の変化に基づいて計数し、その計数結果が所定の計数値に到達する状態を以って上記自励発振回路の発振動作を停止させる計数回路(105)をさらに追加すればよい。このとき、連続データ読出し語数をプログラマブルに設定可能にするには、図12に代表的に示されるように、上記計数回路には、上記所定の計数値を外部からプリセット可能に保持するパラメータレジスタ(1051)を設ける。このパラメータレジスタは、計数回路がその計数ビット数に応じた記憶段を有する場合、当該記憶段をプリセット可能にしてこれを実質的なパラメータレジスタとして位置付けることができる。
上述の機能を有するデータプロセッサにおいて、内部ユニットと外部との間で転送速度の異なるデータの受け渡しを高速若しくは効率的に行うには、図8に代表的に示されるように、上記応答要求に基づいて書込み及び読出し可能な非同期ポート(2064)と、内部の動作クロックに同期して書込み及び読出し可能な同期ポート(2065)とを有するバッファメモリ(206)を採用する。上記バッファメモリの同期ポートは内部ユニットとしての演算回路やレジスタなどに結合され、上記バッファメモリの非同期ポートは外部とインタフェースされる入出力バッファ回路(205)に接続される。このとき、周辺回路からバッファメモリに転送されたデータを逸早く内部ユニット(204)の処理に供せるようにするには、上記バッファメモリは、アクセス制御回路が周辺回路にアクセス要求した連続読出しアクセス回数を上記応答要求の変化回数から検出する計数回路(2066)を備え、これによる上記検出結果を、当該アクセス要求による読出しデータ取得の完了を意味する情報(図9に代表的に示されたアンドゲート2063R5の出力情報)として中央処理装置に与えるようにするとよい。バッファメモリは完全デュアルポートに限定されず、ユニポートバッファメモリを時分割的に見掛け上デュアルポートとして利用してもよい。
種類の異なる複数の周辺回路に上記データプロセッサをインタフェースさせるときは、図14に代表的に示されるように、データプロセッサにおける単一の応答要求の入力端子を夫々の周辺回路における応答要求の出力端子が共有するように、例えば論理和ゲートを介して或はワイヤード・オアでそれらを接続する。
データバスのビット数に対して例えば1/2nビットのマルチビット入出力機能を有する相互に同一の周辺回路をデータプロセッサとインタフェースさせるには、図13に代表的に示されるように、データプロセッサは、応答要求に基づいて書込み及び読出し可能な非同期ポートと、内部の動作クロックに同期して書込み及び読出し可能な同期ポートとを有するバッファメモリ(206U,206L)を複数組み備えればよい。
上記した手段によれば、周辺回路はそれ固有の内蔵自励発振回路の発振出力に同期して動作され、当該周辺回路に対してアクセス要求を行うデータプロセッサの動作クロック信号とは非同期で動作される。この関係において、相互間のデータインタフェースは相互に対等なアクセス要求とそれに対する応答要求によって実現する。このことは、従来データプロセッサの基本動作クロックの整数倍に限定されていた一連のデータ転送時間を、メモリなどの周辺回路の動作速度などの特性に応じて発生される固有自励発振周波数に依存した応答要求のクロックサイクルに従って決定する。したがって、周辺回路及びデータプロセッサ夫々の特性の限界時間でのデータ転送が容易に実現される。換言すれば、従来の問題点であるところのデータプロセッサの動作クロックとの同期のために発生されていた無駄時間が軽減される。さらに、データプロセッサと個々の周辺回路とのインタフェースのためのウェイトステート制御回路なども不要になって、回路接続手段の簡素化も実現する。
周辺回路とインタフェースされるバッファメモリをオンチップで備えるデータプロセッサは、データプロセッサの内部ユニットと外部との間のデータ転送速度の相違を内部で吸収し、アクセス要求によるリードデータやライトデータの処理に逐次的な待ち時間を要しない。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、周辺回路はそれ固有の内蔵自励発振回路の発振出力に同期して動作され、当該周辺回路に対してアクセス要求を行うデータプロセッサの動作クロック信号とは非同期で動作され、この関係において、相互間のデータインタフェースは相互に対等なアクセス要求とそれに対する応答要求によって実現される。したがって、データプロセッサの基本動作クロックの整数倍に限定されていた一連のデータ転送時間を、メモリなどの周辺回路の動作速度などの特性に応じて発生される固有自励発振周波数に依存した応答要求のクロックサイクルに従って決定することができる。
上記より、周辺回路及びデータプロセッサ夫々の特性の限界時間でのデータ転送を容易に実現できる。換言すれば、従来問題とされたデータプロセッサの動作クロックとの同期のために発生されていた無駄時間を軽減できる。
上記より、さらに、データプロセッサと個々の周辺回路とのインタフェースのためのウェイトステート制御回路なども不要になって、回路接続手段の簡素化ができる。
周辺回路とインタフェースされるバッファメモリをオンチップで備えるデータプロセッサは、データプロセッサの内部ユニットと外部との間のデータ転送速度の相違を内部で吸収でき、アクセス要求によるリードデータやライトデータの処理に逐次的な待ち時間を削減できる。
種類の異なる複数の周辺回路にデータプロセッサをインタフェースさせたり、データバスのビット数に対して例えば1/2nビットのマルチビット入出力機能を有する相互に同一の周辺回路をデータプロセッサとインタフェースさせてデータ処理システムを自由に構成できる。
図1には本発明に係るデータプロセッサの一実施例であるCPUと本発明に係る周辺回路の一実施例であるメモリとが接続された状態で示される。
同図に示されるメモリ1は、代表的に示されたメモリセルアレイ100とアクセスサイクル制御部101を一つの半導体基板に備え、データプロセッサ2からのアクセス要求(200,201,202)に対して自ら内蔵する自励発振回路102の発振出力に同期して当該アクセス要求に従ったリード動作又はライト動作を行うと共に、その内部動作に同期して上記データプロセッサ2に上記アクセス要求に対する応答要求(103)を出力する。
同図に示されるCPU2は、代表的に示された演算回路204、演算回路204に一方のポートが結合されたバッファメモリ206、バッファメモリ206の他方のポートと外部のデータバス211とに結合された入出力バッファ回路205、外部のメモリ1やその他図示しない周辺回路にアクセス要求などを行うアクセス制御回路207、及び命令実行シーケンス制御回路や割込み制御回路など中央処理装置全体の動作を制御する中央制御部208を一つの半導体基板に備え、メモリ1などの所要の周辺回路に対してアクセス要求(200、201、202)を行うと共に、アクセス要求を行った周辺回路例えばメモリ1からの応答要求(103)を受け、これに同期して当該アクセス要求の種別に応じ外部からバッファメモリ206にデータを取り込み又はバッファメモリ206から外部にデータを出力する。上記メモリ1はそれ固有の内蔵自励発振回路102の発振出力に同期して動作される。その一方においてCPU2はシステムの動作クロックに209に同期し動作される。
CPU2がメモリ1に対してアクセスを行う場合、アクセスの開始をメモリ1にアクセススタート信号200によって伝える。アクセススタート信号200はメモリにとってチップ選択信号と等価な信号とみなされる。特に制限されないが、本実施例に従えば、アクセス制御回路207はチップ選択コントローラとしての機能を内蔵する。この機能は、CPU2から外部に出力されるアドレス信号の上位数ビットをデコードしてチップ選択信号を形成するデコーダに置き換えることができる。何れの場合においても、アクセス対象とすべき周辺回路に割当てられたアドレスとCPU2で生成されるアドレスを参照するものであり、この意味において、メモリなどの周辺回路へのアクセス要求特にアクセス開始の指示は、アクセスアドレスを生成する回路部分が直接的又は間接的に行うものであり、アクセス制御回路はそのような回路部分を含めたものとして把握される。
データ転送の方向はリード/ライト信号201によって指示される。リードとは、メモリ1などの周辺回路からCPU2へのデータ転送であり、ライトとは、CPU2からメモリ1などの周辺回路へのデータ転送である。本実施例に従えば、アクセスが要求された周辺回路内のデータの位置指定(ポインタ)はアドレスバス210に供給されるアドレス信号で指定される。データ転送語数はシングルモード/バーストモードの指示信号(シングル/バースト信号)202によって指示される。連続データ転送モードであるバーストモードを有しないものにあってはシングル/バースト信号202は不要である。
アクセスサイクル制御部101は、アクセススタート信号200によってアクセス要求を検出すると、これに応答して内部動作のアクセスサイクル信号を自励発振回路102の発振出力に基づいて生成する。メモリ1の内部ではリード/ライト制御信号201によって指示されたリードまたはライト動作が上記アクセスサイクル信号に同期して行われる。さらに、メモリ1の外部に対しては、上記アクセスサイクル信号をアクセスクロック信号103としてCPU2に出力する。このアクセスクロック信号103はメモリ1にとって固有のクロック信号であり、これがCPU2からのアクセス要求に対する応答要求としてCPU2に与えられる。
図2にはリード動作におけるメモリ1のデータ出力及びライト動作におけるCPU2のデータ出力タイミングとアクセスクロック信号103との関係が示される。図2に従えば、リード動作が指示されたメモリ1は、アクセスクロック信号103(メモリ内部においてはアクセスサイクル信号)の立ち上がりエッジに対してセットアップタイム(Trs)/ホールドタイム(Trh)を保証するタイミングを以って、所望のデータをデータバス211に出力する。CPU2はそのデータを、アクセスクロック信号103の立上がりタイミングでバッファメモリ206に取り込む。ライトにおいては、CPU2はアクセスクロック信号103の立ち下がり対してセットアップタイム(Tws)/ホールドタイム(Twh)を保証するようバッファメモリ206からデータバス211に出力する。メモリ1はそのデータを上記アクセスサイクル信号の立ち下がりタイミングで取り込む。尚、ライト動作においてもアクセスクロック信号103の立ち上がりを基準にすることもできる。
図1の実施例に従えば、アクセスサイクル制御部101はバーストモードにおける連続データ転送の完了をCPU2に通知するサイクルコンプリート信号104を出力する。アクセス制御部101はアクセスクロック信号103と等価なアクセスサイクル信号によって転送語数をバーストカウンタ105で計数し、カウントアップの状態をサイクルコンプリート信号104として出力する。サイクルコンプリート信号104に代えてそれと同一の機能をCPU2側に実現してもよい。即ち、CPU2側にアクセスクロック信号103を計数するバーストカウンタを設ければよい。
図3には上記実施例の比較例としてウェイトステート制御部を介してデータ転送を可能にするシステムのブロック図が示され、図4にはそのデータ転送タイミングが示される。
図3においてCPU400が外部のメモリ401に対してデータ転送を行う場合、データ転送の開始がメモリ401とウェイトステート制御部402にアクセススタート信号403で通知される。アクセススタート信号403を受け取ったメモリ401は、リード/ライト制御回路404にてリード/ライト信号405に従ってリードまたはライト動作を開始する。これに同期して上記ウェイトステート制御部402もアクセススタート信号403及びリード/ライト信号405などを解釈して、CPU400と同一の動作クロック406を基にアクセス完了を示すためのウェイト信号407を発生すべく、ウェイトカウンタ408の計数を開始する。リード動作においてメモリ401はその製造/販売業者が保証する時間を経過することによってリードされるべきデータをデータバス409に出力することができる。また、ライト動作においてメモリ401はその製造/販売業者が保証する時間を経過することによってCPU400が出力したデータバス409上のデータを内部に取り込むことができる。上記製造/販売業者が保証する時間を経過したことによるリード動作又はライト動作の完了は、ウェイトステート制御部402からCPU400にウェイト信号407の偽(False)への変化を以って、通常はCPUの動作クロック406に同期して伝えられる(ウェイト信号が非同期信号の場合はCPU側でその動作クロックに同期してウェイト信号を確認する)。例えば図4において、リード動作で時刻t1にウェイト信号が偽(ローレベル)にされると、CPUはデータバス上のデータを読み込む。ライト動作において時刻t2にウェイト信号が偽にされると、CPUはライトすべきデータがメモリに取り込まれたことを確認して当該ライトデータの出力を止める。
図4のタイミングから明らかなように、リードサイクルとライトサイクルでは、通常、ウェイト信号を偽にする位置(タイミング)が異なる。また、バーストモードにおいてウェイト信号は、転送語数分連続してサイクリックに発生されるべきであることは当然であるが、第一語目の発生間隔と第二語目以降の発生間隔が異なる。このため、ウェイト信号407の変化をCPU400が確認すると、CPU400は一連のリードまたはライトサイクルを完了し、次のサイクル開始までアクセス制御回路410を待機させる。また、同一動作モードにおけるリードサイクルとライトサイクルの切換え時には、図4のTdisで示されるよな切換え時間が必要とされる。これはクロックにて同期してウェイト信号を確認しているためである。このように、ウェイト信号を利用するデータ転送の場合には複雑な制御と余計な時間を費やさなければならない。
上記実施の形態によれば以下の作用効果が有る。
(1)図1及び図2に示される本実施例においては、リードサイクルとライトサイクルでは、通常、メモリなどの周辺回路が発生するアクセスサイクルの発生開始位置ならびにその変化の更新タイミングが異なるが、CPU2はこれらの複雑なタイミングを考慮することなくアクセスクロック信号103の変化に従ってデータの入出力だけに専念すればよい。すなわち、従来必要とされたウェイトステート制御部無しでも複雑なタイミングでのデータ転送が実現できる。このことは、もちろんシングル転送とバースト転送の両方に適応している。
(2)ウェイトステート制御部を無くし、メモリなどの周辺回路から出力されるアクセスクロック信号103でデータ転送を行うので、実質的にアクセスサイクル時間の低減とバス使用効率向上が実現できる。すなわち、メモリなどの周辺回路はそれ固有の内蔵自励発振回路102の発振出力に同期して動作され、当該周辺回路に対してアクセス要求を行うCPUの動作クロック信号209とは非同期で動作され、相互間のデータインタフェースは相互に対等なアクセス要求とそれに対する応答要求によって実現する。したがって、従来CPUなどのデータプロセッサの基本動作クロックの整数倍に限定されていた一連のデータ転送時間を、メモリなどの周辺回路の動作速度などの特性に応じて発生される固有自励発振周波数に依存した応答要求のクロックサイクルに従って決定することができる。これにより、周辺回路及びCPU夫々の特性の限界時間でのデータ転送が容易に実現できる。換言すれば、従来問題とされたCPUの動作クロックとの同期のために発生されていた無駄時間を軽減できる。
(3)CPU2は、周辺回路とインタフェースされるバッファメモリ206をオンチップで備えるから、CPU内部ユニット204と外部との間のデータ転送速度の相違を内部で吸収し、アクセス要求によるリードデータやライトデータの処理に対して逐次的な待ち時間が介在されることを防止できる。
(4)上記実施例によるデータ転送形式は、局所的に考えればメモリにもバス権を持たせたと拡張して考えることもできる。すなわち、データ転送の開始時は、CPU2の動作クロック209でシステムが動作していたものが、データ転送中は、メモリの動作クロック103でシステムが動作していると考えられ、動的にバス権が移動したように見える。この考え方は、将来LSIの集積度が向上し論理機能がメモリにもマージされる時期には特に有効な意味を持つものと考えられる。
図5には上記メモリの一実施例ブロック図が示される。同図に示されるメモリ1は、特に制限されないが、スタティック・ランダム・アクセス・メモリ(SRAM)として、公知の半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成される。
同図に示されるメモリ1は、ロウアドレス信号の入力端子AR0〜ARm、カラムアドレス信号の入力端子AC0〜ACn、データ入出力端子I/O0〜I/Op、チップ選択信号入力端子CS、アウトプットイネーブル信号入力端子OE、ライトイネーブル信号入力端子WE、アクセスサイクル信号出力端子AC、バースト/シングル切換信号入力端子B/S、そして図示しない電源端子が設けられている。図1との対応で説明すれば、チップ選択信号入力端子CSにはアクセススタート信号200が供給され、アウトプットイネーブル信号入力端子OEにはリード/ライト信号201を構成するリード信号が供給され、ライトイネーブル信号入力端子WEにはリード/ライト信号201を構成するライト信号が供給され、アクセスサイクル信号出力端子ACからは上記アクセスサイクル信号103が出力される。
メモリセルアレイ100にはスタティック型メモリセルがマトリクス配置されており、メモリセルの選択端子に結合されたワード線はロウアドレスデコーダ110の出力に結合される。ロウアドレスデコーダ110は外部から供給されるロウアドレス信号を内部相補アドレス信号に変換して出力するロウアドレスバッファ111の出力を受け、これをデコードすることによって、ロウアドレス信号に対応する1本のワード線を選択レベルに駆動する。メモリセルのデータ入出力端子に結合されたビット線はカラムスイッチ回路112を介してコモンデータ線113に共通接続される。コモンデータ線113に導通されるべきビット線の選択はカラムアドレスデコーダ114の出力を受ける上記カラムスイッチ回路112が行う。カラムアドレスデコーダ114は外部から供給されるカラムアドレス信号を内部相補アドレス信号に変換して出力するカラムアドレスバッファ115の出力を受け、これをデコードすることによって、カラムスイッチ回路112によるビット線の選択動作を行う。116はメモリセルからのコモンデータ線113に読出されたデータを増幅して外部に出力するセンスアンプ及び出力バッファ回路であり、その入力はコモンデータ線113に、出力はデータ入出力端子I/O0〜I/Opに結合される。117はデータ入出力端子I/O0〜I/Opに与えられた書込みデータを入力する入力バッファであり、その出力はコモンデータ線113に結合される。118はデータラッチ回路若しくはコモンデータ線のイコライズ又はプリチャージのためのデータコントロール回路である。
アクセス制御部101は、サイクルタイミング発生回路1010と、内部タイミング発生回路1011を備える。内部タイミング発生回路1011は上記入力端子CS,OE,WE,B/Sに結合され、アクセススタートの検出、リード/ライト動作の判定、バーストモード/シングルモードの判定などを行って内部動作モードを決定し、サイクルタイミング発生回路1010から供給されるアクセスサイクル信号に同期してその動作モードに対応した内部動作タイミング信号を生成する。サイクルタイミング発生回路1010はCS端子から与えられるアクセススタートの指示に基づいて上記内部タイミング発生回路1011から与えられる信号に同期して自励発振回路102の発振出力に基づいてサイクルタイミング信号1013及びアクセスクロック信号103を生成する。尚、遅延回路1014は自励発振出力の位相調整用に用いられ、遅延回路1015は外部に出力されたアクセスクロック信号103とサイクルタイミング信号1013との位相合わせ用に用いられる。
図6には上記サイクルタイミング発生回路1010の詳細な一例回路が示される。自励発振回路102は、特に制限されないが、2入力型アンドゲート1020と当該アンドゲート1020の出力をその一方の入力に帰還させるインバータアンプ1021から成る帰還ループを有し、その発振及び停止を制御するトリガ回路がアンドゲート1020の他方に入力に接続されて構成される。トリガ回路は、初期状態において出力がハイレベルにされるセレクタ1022の出力が入力されると共にオアゲート1023の出力が帰還入力されるアンドゲート1024を備える。上記オアゲート1023はそのアンドゲート1024の出力と上記内部タイミング発生回路1011からリード或はライト動作の開始に同期して供給されるワンショットパルスのようなトリガ信号1025とを受けて、その出力をアンドゲート1020に供給する。尚、1026〜1028で示されるものは波形整形素子(若しくは遅延素子)である。この自励発振回路102は初期状態においてローレベルを出力する。この状態でトリガ信号1025がワンショットパルスで変化されると、アンドゲート1020とインバータアンプ1021で構成される帰還ループに発振を生ずる。この発振状態はセレクタ1022の出力がローレベルにパルス変化されてオアゲート1023の出力がローレベルにされるまで継続される。
図6の構成においては、発振の停止を制御するために、バーストカウンタ105及びセレクト1022が利用される。セレクタ1022はB/S信号若しくはそれと等価な内部信号が供給され、シングルモードにおいて波形整形素子1027の出力を選択する。したがって、シングルモードにおいて自励発振回路102はアクセスクロック信号103及びサイクルタイミング信号1013をその1サイクル分変化させて発振動作を停止する。バーストモードではバーストカウンタ105の出力を選択する。バーストカウンタ105は、メモリセルアレイからの連続データ読出し語数を波形整形素子1027の出力パルス変化に基づいて計数し、その計数結果が所定の計数値(目的とするバースト転送語数)に到達する状態を以ってハイレベルからローレベルに変化するワンショットパルスを出力する。したがって、バーストモードにおける連続読出し語数分のアクセスサイクルが発生されると、自励発振回路102の発振動作を停止させる。
図7には図6のメモリの一例動作タイミングチャートが示される。同図に示されるようにリードサイクルにおいて読出しデータが出力されるタイミングに同期してアクセスサイクル信号出力端子ACが変化され、また、ライトサイクルにおいてアクセスサイクル信号出力端子ACが変化されタイミングに同期してCPUから書込みデータが供給される。
図8には上記CPU2の詳細な一実施例ブロック図が示される。同図に示されるCPU2は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成される。図1と同一の回路ブロックには同一符合を付してその詳細な説明を省略する。ここではバッファメモリ206について詳細に説明する。
バッファメモリ206はFIFO(ファーストイン・ファーストアウト)形式のリードバッファ2061、ライトバッファ2062、及びバッファ制御回路2063を有する。リードバッファ2061はCPUによるリード方向にデータ転送専用とされ、ライトバッファ2062はCPUによるライト方向のデータ転送専用とされる。双方のバッファ2061,2062は上記アクセスクロック信号103で与えられるメモリ1からの応答要求に基づいて制御される非同期ポート2064と、内部の動作クロック209に同期して制御される同期ポート2065とを有する。バッファ制御回路2063は非同期ポート2064を制御するための非同期制御部2063Aと、同期ポート2065を制御するための同期制御部2063Bを有する。非同期ポート2064は上記入出力バッファ回路205に結合され、同期ポート2065は演算回路204に含まれるレジスタ群やキャッシュメモリなどにインタフェース可能にされる。
非同期制御部2063Aは、アクセスクロック信号103の上記変化に同期してライトバッファ2062にリード動作を指示する非同期リード信号(ASync Read Signal)とそのときの非同期リードアドレス(ASync Read Pointer)を供給し、また、アクセスクロック信号103の上記変化に同期してリードバッファ2061にライト動作を指示する非同期ライト信号(ASync Write Signal)とそのときの非同期ライトアドレス(ASync Write Pointer)を供給する。アクセスクロック信号103の変化に同期してリードバッファ2061をアクセスすべきかライトバッファ2062をアクセスすべきかは、そのアクセスクロック信号103に対応されるCPU2のアクセス要求がリード或はライトの何れであるかを示す情報を中央制御部208から受け取ることによって判定する。
同期制御部2063Bは、中央制御部208における命令実行制御の一環として動作される。例えばロード命令やストア命令或はムーブ命令のようなデータ転送命令などの実行に伴ってメモリリード動作を必要とするときは、動作クロック209に同期してリードバッファ2061にリード動作を指示する同期リード信号(Sync Read Signal)とそのときの同期リードアドレス(Sync Read Pointer)を供給し、また、データ転送命令などの実行に伴ってメモリライト動作を必要とするときは、動作クロック209に同期してライトバッファ2062にライト動作を指示する同期ライト信号(Sync Write Signal)とそのときの同期ライトアドレス(Sync Write Pointer)を供給する。リードバッファ2061をアクセスすべきかライトバッファ2062をアクセスすべきかは、命令実行に伴って中央制御部208から出力される命令解読信号が与えられることによって決定される。
図8の例ではメモリ1は上記サイクルコンプリート信号104の出力機能を有していない。それと同等の機能は非同期制御部2063Aに内蔵されるバーストカウンタ2066が行って、バースト転送サイクル終了をアクセス制御回路207に与える。本実施例のCPU2においてバーストカウンタ2066のカウントアップ信号はリードバッファ2061への書込み完了及びライトバッファ2062からの読出し完了を中央制御部208へ通知することにも利用される。図9に基づいてこれを説明する。
図9にはバッファ制御回路2063におけるリードバッファ2061に関する回路部分の詳細な一例ブロック図が示される。リードバッファ2061の同期リードアドレスはアップカウンタ2063R1が生成し、リードバッファ2061の非同期ライトアドレスはアップカウンタ2063R2が生成する。アップカウンタ2063R2のアップカウント動作はアクセスクロック信号103がハイレベルに変化され且つ中央制御部208からのリードバッファライト信号が活性化されたタイミングに同期して行われる。アップカウンタ2063R1のアップカウント動作は中央制御部208からのリードバッファリード信号が活性化されると動作クロック209に同期して行われる。双方のアップカウンタ2063R1,2063R2はアンドゲート2063R3のハイレベル出力によって0にクリアされる。クリアされるタイミングはアップカウンタ2063R1の出力値が0でない場合に双方のアップカウンタ2063R1,2063R2の出力が一致されたことが一致検出回路2063R6で検出されたときである。アップカウンタ2063R1の出力値が0であることは、0検出回路2063R4が検出する。アップカウンタ2063R1の出力値が0である場合、0検出回路2063R4による0検出結果はリードバッファ2061の空を意味し、これが中央制御部208に与えられる。中央制御部208は、その状態を検出すると、メモリ1からのリードデータが全て演算回路204に渡ったことを確認できる。図8に示されるバーストカウンタ2066は連続データ転送語数が転送すべき語数に到達したか否かを検出する。到達したことがバーストカウンタ2066によって検出されると、当該バーストカウンタ2066の出力は所定期間ハイレベルに変化される。メモリ1に対するリード動作において上記バーストカウンタ2066の上記ハイレベルへの変化はリード完了を意味する信号としてアンドゲート2063R5に供給される。アンドゲート2063R5は、0検出回路203R6によってアップカウンタ2063R1の出力が0出ないときに上記リード完了を意味する信号を受けると、リードバッファ2061へのリード完了を検出して、これを中央制御部208に渡す。中央制御部208は、リードバッファ2061へのリード完了を検出すると、メモリ1からのリードデータが全てリードバッファ2061に貯えられたことを確認でき、これによって、中央制御部208はリードデータをリードバッファ2061から読出して内部演算処理を即座に開始させることができる。
図10にはバッファ制御回路2063におけるライトバッファ2062に関する回路部分の詳細な一例ブロック図が示される。ライトバッファ2062の同期ライトアドレスはアップカウンタ2063W2が生成し、ライトバッファ2062の非同期リードアドレスはアップカウンタ2063W1が生成する。アップカウンタ2063W1のアップカウント動作はアクセスクロック信号103がハイレベルに変化され且つ中央制御部208からのライトバッファリード信号が活性化されたタイミングに同期して行われる。アップカウンタ2063W2のアップカウント動作は中央制御部208からのライトバッファライト信号が活性化されると動作クロック209に同期して行われる。双方のアップカウンタ2063W1,2063W2はアンドゲート2063W3のハイレベル出力によって0にクリアされる。クリアされるタイミングはアップカウンタ2063W1の出力値が0でない場合に双方のアップカウンタ2063W1,2063W2の出力が一致されたことが一致検出回路2063W6で検出されたときである。アップカウンタ2063W1の出力値が0であることは、0検出回路2063W4が検出する。アップカウンタ2063W1の出力値が0である場合、0検出回路2063W4による0検出結果はライトバッファ2062の空を意味し、これによって中央制御部208はライトバッファ2062の空の状態を認識する。メモリ1に対するライト動作において上記バーストカウンタ2066の上記ハイレベルへの変化はライト動作完了を意味する信号としてアンドゲート2063W5に供給される。アンドゲート2063W5は、0検出回路2063W4によってアップカウンタ2063W1の出力が0でないときに上記ライト完了を意味する信号を受けると、ライトバッファ2062へのライト動作完了を検出して、これを中央制御部208に渡す。中央制御部208は、ライトバッファ2062へのライト完了を検出すると、当該メモリライトアクセスに対するメモリからの応答要求に応ずるメモリ1へのライトデータが全てライトバッファ2062から出力されたことを確認できる。
図11には図8に示されるバッファメモリ206とは別のバッファメモリが示される。同図に示されるバッファメモリ206はリードバッファ2061とライトバッファ2062とに共用されるリード/ライトバッファ2067を有し、バッファ制御回路2063にはそのリード/ライトバッファ2067をリードバッファとして動作させるかライトバッファとして動作させるかの情報が設定されるリード/ライトバッファイネーブルフラグ2068が設けられ、中央制御部208からの指示に従ってその動作が制御される。その他の点は図8と同様であり、それと同一回路ブロックには同一符合を付してその詳細な説明を省略する。これによってチップ面積の低減に寄与する。
図12には図5のメモリに対して制御パラメータレジスタを有する実施例の要部が示される。すなわち、図6のバーストカウンタ105によって計数すべき連続データ転送語数の目的転送語数(カウントアップする転送語数)をプリセット可能に保持するパラメータレジスタ1051を有する。このパラメータレジスタ1051はCPU2の中央制御部208の制御によってプログラマブルに所望のパラメータ(バースト転送語数を特定する情報)が転送される。その他の構成は図5及び図6と同様であり、それと同一回路ブロックには同一符合を付してその詳細な説明を省略する。これによってデータ転送の自由度若しくはその制御の柔軟性が増す。尚、パラメータレジスタ1051は、バーストカウンタ105がその計数ビット数に応じた記憶段を有する場合、当該記憶段をプリセット可能に構成してこれをパラメータレジスタとすることができる。
図13にはデータバスのビット数に対して例えば1/2nビットのマルチビット入出力機能を有する相互に同一のメモリをCPU2とインタフェースさせるときの実施例が示される。この実施例においてCPU2は、バッファメモリ206及び入出力バッファ回路205を複数組み備える。例えば、データバス211が32ビットでメモリ1の並列入出力ビット数が16ビットのとき、16ビットの上位側データバス211Uは入出力バッファ回路205Uを介して一方のメモリ1Uに、16ビットの下位側データバス211Uは入出力バッファ回路205Lを介して他方のメモリ1Lに結合される。アクセススタート信号200、リード/ライト信号201、シングル/バースト信号202、アドレスバス210はメモリ1U及び1Lに共通接続される。アクセスクロック信号103Uはバッファメモリ206Uに、アクセスクロック信号103Lはバッファメモリ206Lに夫々各別に接続される。夫々のメモリ1U,1Lから出力されるサイクルコンプリート信号104U,104Lはサイクルコンプリート制御回路2069に供給され、双方のメモリアクセス終了をアクセス制御回路207に伝達する。
実際のメモリの並列入出力ビット数は、×4,×8,×9,×16,×18ビットが主流であり、CPUの並列データ入出力ビット数は、×16,×32,×36,×64,×72ビットなどとされているから、それに対応してメモリとCPUをインタフェースさせるには、図13で示したように、複数ビット毎にバッファメモリを設けることが必要かつ重要になる。
図14には異なる特性/機能を有するメモリを混在させてシステムを構成する場合の実施例が示される。この場合には、細かい端子機能や接続条件を無視すれば、基本的にはアクセスクロックに合わせてデータ転送が可能であるため、メモリ1−1のアクセスクロック信号103−1とメモリ1−2のアクセスクロック信号103−2がCPU2の外部でオア(OR)ゲート300を介してバッファ制御回路2063に結合される。同様に、メモリ1−1のアクセスコンプリート信号104−1とメモリ1−2のアクセスコンプリータ信号104−2もCPU2の外部でオアゲート301を介してアクセス制御回路207に結合される。その他のアクセススタート信号200、リード/ライト信号201、シングル/バースト信号202、アドレスバス210、データバス211などはメモリ1−1,1−2に共通接続される。これによって、異なる特性/機能を有するメモリなどの周辺回路を混在させてシステムを構成することができる。
図15には上記実施例で説明したCPU2やメモリ1を用いたデータ処理システムの全体的な一実施例が示される。図15において上記実施例のメモリ(RAM)1と同様のプロトコールでデータ転送可能にされた周辺回路として、メモリ(ROM)3、ハードディスク装置41及びフレキシブルディスク装置42とインタフェースされるファイル制御装置4、フレームバッファ51に対する描画制御及び描画された画像データをモニタ52に表示させる表示制御を行う表示制御装置5、プリンタ61やキーボード62とインタフェースされるパラレル/シリアルポート6、及びコミュニケーション装置10が設けられる。それらの周辺回路は自らの動作特性に応じた固有の自励発振回路102を備えて、上記メモリ同様にCPU2からのアクセス要求に対して応答要求を返すことでデータ転送を実現する。図15において9はシステム監視装置であり、ウォッチドッグタイマによってシステム異常を監視したり電源電圧の状態を監視したりする。高速データ転送装置8は例えばダイレクト・メモリ・アクセス・コントローラのような回路であって、CPU2とのバス権調停はバス権監視装置7が行う。高速データ転送装置もCPU2と同様のデータ転送制御を行う。21はCPU2に固有の外付けキャッシュメモリであり、CPU2の内蔵キャッシュメモリ22に対して2次キャッシュメモリとされる。図15のデータ処理システムは、アドレス及びデータバス11やコントロールバス12が形成された実装基板に構成されている。
図15のデータ処理システムにおいて、メモリや入出力回路に対するウェイトステート制御を要しないため、そのためのメモリコントローラや入出力コントローラは実装基板上に設けられていない。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記実施例では周辺回路としてRAMのようなメモリに適用した場合について説明したが、周辺回路はそれに限定されず、図15に示される周辺回路はもとよりそれ以外の各種周辺回路に適用できる。また、そのような周辺回路に適用されるものはCPUやダイレクト・メモリ・アクセス・コントローラに限定されず、マイクロプロセッサ、マイクロコンピュータ、シングルチップマイクロコンピュータ、ディジタル・シグナル・プロセッサなどの各種データプロセッサに適用することができる。
また、バッファメモリは上記実施例のような完全ディアルポートバッファに限定されず、ユニポートのバッファメモリを時分割でディアルポートに見せかけて用いることも可能である。また、データプロセッサのチップ面積の観点からはバファメモリの深さ(記憶容量)も重要であるが、あまり機能を落すとバスの速度向上に貢献しなくなるため、この項目に関しては、コストパフォーマンスからのトレードオフを考慮して決定される設計的な事項である。なお、バッファメモリの深さは、1度のデータ転送で扱う語数に限定すること(バースト転送での語数の最大値など)がバッファ制御回路の簡略化に役立つと考えられる。