(57)【特許請求の範囲】
【請求項１】
メモリをアクセスするアクセス源と当該メモリとの間に設けられ、１又は２以上のシンクロナスＤＲＡＭからなるメモリを制御するメモリ制御装置であって、
前記アクセス源に供給される停止可能な第１のクロックが供給される主制御回路と、前記シンクロナスＤＲＡＭに供給される無停止の第２のクロックが供給される副制御回路とからなり、
前記主制御回路は、前記シンクロナスＤＲＡＭにおいて活性化された行アドレスを保持する記憶手段と、前記記憶手段に保持された行アドレスと前記シンクロナスＤＲＡＭをアクセスする行アドレスとの比較の結果に基づいて、前記副制御回路に前記シンクロナスＤＲＡＭをアクセスさせるための所定の制御信号を形成する制御信号形成回路とを備え、
前記副制御回路は、前記記憶手段に保持された行アドレスを参照する参照手段と、前記シンクロナスＤＲＡＭに対して所定のコマンドを発行するコマンド発行手段とを備え、
前記主制御回路に対して前記第１のクロックが供給されている間において、前記アクセス源からのアクセスがあった時、前記比較の結果両者が一致している場合には前記制御信号形成回路が行アドレスの活性化を行うことなく当該アクセスの列アドレスを用いて前記シンクロナスＤＲＡＭをアクセスするための制御信号を形成し、この制御信号に従って前記副制御回路が前記シンクロナスＤＲＡＭをアクセスし、
前記主制御回路に対して前記第１のクロックが供給されている間において、前記アクセス源からのアクセスがあった時、前記比較の結果両者が一致していない場合には、前記制御信号形成回路が、プリチャージを行った後に当該アクセスの行アドレスを用いて当該行アドレスを活性化して当該アクセスの列アドレスを用いて前記シンクロナスＤＲＡＭをアクセスするための制御信号を形成すると共に前記記憶手段が当該行アドレスを保持し、この制御信号に従って前記副制御回路が前記シンクロナスＤＲＡＭをアクセスし、
前記主制御回路に対して前記第１のクロックの供給が停止されている間において、前記コマンド発行手段が前記シンクロナスＤＲＡＭにリフレッシュを行わせるための所定のコマンドを発行し、
前記第１のクロックの供給が再開される際に、前記参照手段が前記記憶手段に保持されている行アドレスを参照して、これを用いて前記コマンド発行手段が前記シンクロナスＤＲＡＭに当該参照した行アドレスの活性化を行なわせるための所定のコマンドを発行するよう構成されると共に、
前記第１のクロックが供給されていて前記アクセス源から連続したアクセスがあった場合、当該連続したアクセスの終了後に、次のアクセスを待つことなく、前記主制御回路が前記記憶手段の内容を無効とし、前記制御信号形成回路がプリチャージを行うための制御信号を形成するよう構成され、
更に、前記行アドレスが活性化された後に経過した時間をカウントする計時手段がもうけられ、
当該計時手段は、前記行アドレスが活性化された後に所定の時間が経過したことを検出した場合、前記主制御回路が前記記憶手段の内容を無効とするようにした
ことを特徴とするメモリ制御装置。
【請求項２】
前記メモリが、その各々に異なるアドレスが割り付けられた２以上のシンクロナスＤＲＡＭからなり、
各々のシンクロナスＤＲＡＭに対応して前記記憶手段が設けられる
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記メモリが、その内部が複数のバンクに分けられたシンクロナスＤＲＡＭからなり、
各々のバンクに対応して前記記憶手段が設けられる
ことを特徴とする請求項１に記載のメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ制御装置に関し、特に、活性化された行アドレスを保持する記憶手段を備えシンクロナスＤＲＡＭを制御するメモリ制御装置に関する。
【０００２】
【従来の技術】
従来、低価格を要求されるワークステーションの主記憶としては低価格のＤＲＡＭが用いられている。特に、ＣＰＵの高速化に伴って高速性が要求されるようになった結果、外部から高速のクロックを与えて動作速度を高速化したシンクロナスＤＲＡＭが用いられている。
【０００３】
一方、従来、高速性を要求される大型計算機やスーパーコンピュータの主記憶としては高速のＳＲＡＭが用いられている。しかし、高速ＳＲＡＭはＤＲＡＭに比べてビット当りの単価が１０倍前後であると言う欠点がある。そこで、ワークステーションとの価格競争の激化に伴って、スーパーコンピュータ等においても主記憶をＤＲＡＭにより構成することが要求されている。特に、ワークステーションにおける採用の実績から、シンクロナスＤＲＡＭを主記憶として用いることが考えられる。
【０００４】
なお、ワークステーションにおいてシンクロナスＤＲＡＭを主記憶として用いた場合のメモリアクセスは、以下のように行われる。メモリアクセス要求が連続アドレスのアクセスであることがメモリリクエストコマンドにより予め判っている時は、１回の行アドレス活性化の後、複数回の列アドレスを指定してのアクセスを繰り返す。これにより、２回目のアクセス以降のプリチャージ及び行アドレスの活性化に要する時間を不要にして、高速アクセスを実現している。連続アドレスアクセスであることが判っている時以外は、各メモリリクエスト毎に、行アドレス活性化、列アドレスを指定してのアクセス、プリチャージと言うサイクルを繰り返す。この場合は連続アドレスアクセス程には高速化できない。
【０００５】
そこで、行アドレスを保持するための記憶手段を設けて、行アドレスを活性化した際にこれを保持している。あるアクセスの次のアクセスにおいて、当該次アクセスの行アドレスと記憶手段に保持されている行アドレスとを比較する。比較の結果両者が一致している場合、行アドレスの活性化を行うことなく、列アドレスを用いて当該データを読み出す。これにより、メモリアクセス要求が連続はしていないが比較的狭い範囲のアドレス（同一の行アドレス）に分布している場合、２回目のアクセス以降のプリチャージ及び行アドレスの活性化に要する時間を不要にして、高速アクセスを実現する確率を高くして高速化を図っている。なお、両者が不一致である場合、プリチャージの後に行アドレスの活性化を行い列アドレスを用いて当該データを読み出す。この時、記憶手段にこの活性化した行アドレスを保持する。
【０００６】
【発明が解決しようとする課題】
しかし、本発明者の検討によれば、ワークステーションにおいてシンクロナスＤＲＡＭを主記憶として用いた場合の構成を、単純にスーパーコンピュータ等に適用することはできない。これは以下の理由による。
【０００７】
スーパーコンピュータにおいてはローカリティの期待できないデータ（例えば巨大配列等）を扱うため、キャッシュメモリを経由することなく主記憶を直接アクセスする。この主記憶のアクセスは高速である必要がある。また、この場合、多次元配列を各方向に掃くために、連続アドレスアクセスのみでなくストライドアクセス（間隙の空いたアドレスでのアクセス）等が行われる。従って、この場合のアクセスは通常は連続アクセスではなく、連続アドレスアクセスである場合でもアドレス境界やアクセス長さは一定でない。
【０００８】
従って、主記憶としてシンクロナスＤＲＡＭを採用した場合、その高速化のために、行アドレスを活性化した際にこの活性化した行アドレスを保持するための記憶手段が必須であると考えられる。即ち、連続アドレスアクセスが少ない分シンクロナスＤＲＡＭの特徴を活かした高速化が図り難いので、少しでも高速アクセスできる範囲を広げる必要がある。このため、メモリアクセス要求が連続はしていないが比較的狭い範囲のアドレスに分布している場合、２回目のアクセス以降のプリチャージ及び行アドレスの活性化に要する時間を不要にして、高速アクセスを実現する必要がある。
【０００９】
しかし、スーパーコンピュータは、ワークステーションとは異なり、通常、そのクロックを停止する機能を備える。これは、例えば、重大なハードウェア障害の発生時にクロックを停止したり（チェックストップ）、試験時のハードウェアシングルステップ実行時にクロックを停止したり（シングルクロックモード）するために必要なものである。これは大型計算機においても同様である。一方、ＤＲＡＭでは一定時間でリフレッシュを行わなければ記憶内容が失われてしまうので、シンクロナスＤＲＡＭにおいてはリフレッシュのためのクロックを入力する必要がある。
【００１０】
そこで、ＣＰＵ及びメモリ制御装置（ＭＣＵ）の主要部に対しては停止可能なクロックを供給し、ＤＲＡＭ及びメモリ制御装置のＤＲＡＭインタフェース部に対しては無停止のクロックを供給することが考えられる。この場合、停止可能クロックの停止中でもシンクロナスＤＲＡＭには無停止クロックを供給してリフレッシュを行う。これにより、シンクロナスＤＲＡＭを主記憶として使用しつつクロック停止機能を実現できる。
【００１１】
ところが、シンクロナスＤＲＡＭにおいては、リフレッシュを行うためには事前にプリチャージを行って行アドレスを不活性化する必要がある。このため、停止可能クロックの停止中にリフレッシュが行われることにより、行アドレスが不活性化されてしまう。この結果、メモリ制御装置の記憶手段に保持された活性化した行アドレスと、実際のシンクロナスＤＲＡＭにおける行アドレスの状態とが不一致となってしまう。従って、停止可能なクロックの供給の再開後においてアクセスの当該行アドレスと記憶手段に保持されている行アドレスとが一致したとしても、列アドレスを用いて読み出されたデータは読み出すべきデータではなく、誤動作の原因となる。
【００１２】
本発明は、メモリアクセス要求が連続はしていないが比較的狭い範囲のアドレスに分布している場合に高速アクセスを可能としたシンクロナスＤＲＡＭを制御するメモリ制御装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
図１は本発明の原理構成図であり、本発明によるメモリ制御装置を示す。図１のメモリ制御装置２００は、メモリ３００をアクセスするアクセス源１００と当該メモリ３００との間に設けられ、１又は２以上のシンクロナスＤＲＡＭからなるメモリ３００を制御する。メモリ制御装置２００は、アクセス源１００に供給される停止可能な第１のクロックが供給される主制御回路２０１と、メモリ即ちシンクロナスＤＲＡＭ３００に供給される無停止の第２のクロックが供給される副制御回路２０２とからなる。
【００１４】
主制御回路２０１は、シンクロナスＤＲＡＭ３００において活性化された行アドレスを保持する記憶手段２０３と、記憶手段２０３に保持された行アドレスとシンクロナスＤＲＡＭ３００をアクセスする行アドレスとの比較の結果に基づいて、副制御回路２０２にシンクロナスＤＲＡＭ３００をアクセスさせるための所定の制御信号を形成する制御信号形成回路２０４とを備える。副制御回路２０２は、記憶手段２０３に保持された行アドレスを参照する参照手段２０５と、シンクロナスＤＲＡＭ３００に対して所定のコマンドを発行するコマンド発行手段２０６とを備える。
【００１５】
主制御回路２０１に対して第１のクロックが供給されている間において、アクセス源１００からのアクセスがあった時、前記比較の結果両者が一致している場合には、制御信号形成回路２０４が、行アドレスの活性化を行うことなく当該アクセスの列アドレスを用いてシンクロナスＤＲＡＭ３００をアクセスするための制御信号を形成する。この制御信号に従って副制御回路２０２がシンクロナスＤＲＡＭ３００をアクセスする。
【００１６】
主制御回路２０１に対して第１のクロックが供給されている間において、アクセス源１００からのアクセスがあった時、前記比較の結果両者が一致していない場合には、制御信号形成回路２０４が、プリチャージを行った後に当該アクセスの行アドレスを用いて当該行アドレスを活性化して当該アクセスの列アドレスを用いてシンクロナスＤＲＡＭ３００をアクセスするための制御信号を形成する。これと共に記憶手段２０３が当該行アドレスを保持する。この制御信号に従って副制御回路２０２がシンクロナスＤＲＡＭ３００をアクセスする。
【００１７】
一方、主制御回路２０１に対して第１のクロックの供給が停止されている間において、コマンド発行手段２０６がシンクロナスＤＲＡＭ３００にリフレッシュを行わせるための所定のコマンドを発行する。そして、第１のクロックの供給が再開される際に、参照手段２０５が記憶手段２０３に保持されている行アドレスを参照して、これを用いてコマンド発行手段２０６がシンクロナスＤＲＡＭ３００に当該参照した行アドレスの活性化を行なわせるための所定のコマンドを発行する。
【００１８】
本発明のメモリ制御装置２００によれば、主制御回路２０１に対して第１のクロックが供給されている間において、アクセス源１００からのアクセスがあった時、前記比較の結果両者が一致している場合には、行アドレスの活性化を行うことなく、当該アクセスの列アドレスを用いてシンクロナスＤＲＡＭ３００がアクセスされる。これにより、メモリアクセス要求が連続はしていないが比較的狭い範囲のアドレス（同一行アドレス）に分布している場合、２回目のアクセス以降のプリチャージ及び行アドレスの活性化に要する時間を不要にして、高速アクセスを実現する確率を高くして高速化を図ることができる。
【００１９】
なお、同様の場合において前記比較の結果両者が一致していない場合には、通常のサイクルのアクセスが行われる。即ち、プリチャージを行った後に、当該アクセスの行アドレスを用いて当該行アドレスを活性化して当該アクセスの列アドレスを用いてシンクロナスＤＲＡＭ３００がアクセスされる。
【００２０】
一方、主制御回路２０１に対して第１のクロックの供給が停止されている間において、シンクロナスＤＲＡＭ３００がリフレッシュされる。これにより、シンクロナスＤＲＡＭ３００の記憶内容が失われることを防止することができる。
【００２１】
このリフレッシュの後、第１のクロックの供給が再開される際に、記憶手段２０３に保持されている行アドレスを用いて、コマンド発行手段２０６がシンクロナスＤＲＡＭ３００に当該行アドレスの活性化を行なわせる。これにより、シンクロナスＤＲＡＭ３００においてリフレッシュのためにプリチャージを行って行アドレスを不活性化した場合でも、記憶手段２０３に保持された行アドレスと実際のシンクロナスＤＲＡＭにおいて活性化した行アドレスとを一致させることができる。従って、停止可能クロックの供給再開後においてアクセスの当該行アドレスと記憶手段２０３に保持されている行アドレスとが一致した場合、行アドレスの活性化をすることなく、直ちに当該列アドレスを用いて当該データを読み出すべきことができる。
【００２２】
以上のように、本発明のメモリ制御装置２００によれば、シンクロナスＤＲＡＭ３００を主記憶として使用しつつ、スーパーコンピュータ等に不可欠のクロック停止機能（チェックストップ及びシングルクロックモード）を実現できる。更に、これに加えて、クロックの停止中にシンクロナスＤＲＡＭをリフレッシュした後であっても、メモリアクセス要求が連続はしていないが比較的狭い範囲のアドレスに分布している場合にはプリチャージ及び行アドレスの活性化に要する時間を不要にして、高速アクセスを実現することができる。
【００２３】
【発明の実施の形態】
図２は本発明のメモリ制御装置２００を備える大型計算機やスーパーコンピュータのような電子計算機の一例を示す。メモリ３００をアクセスするアクセス源１００は、例えば大型計算機やスーパーコンピュータのＣＰＵや入出力装置（Ｉ／Ｏ）である。この例のメモリ３００は１個のシンクロナスＤＲＡＭ（３００）からなる。メモリ制御装置２００は、アクセス源１００と当該メモリ３００との間に設けられ、メモリ制御装置２００はその主要部である主制御回路２０１とＤＲＡＭインタフェース部である副制御回路２０２とからなり、メモリ３００を制御する。
【００２４】
主制御回路２０１には、アクセス源１００に供給される第１のクロック（以下、ゲートクロックと言う）と同一のクロックが、クロック制御回路４００から供給される。ゲートクロックは停止可能なクロックである。図２の電子計算機はクロック制御回路４００によりゲートクロックを停止する機能を備える。これにより、重大なハードウェア障害の発生時にＣＰＵ等のクロックを停止したり（チェックストップ）、試験時のハードウェアシングルステップ実行時にＣＰＵ等のクロックを停止したり（シングルクロックモード）することが可能となる。
【００２５】
副制御回路２０２には、シンクロナスＤＲＡＭ３００に供給される第２のクロック（以下、フリーランクロックと言う）と同一のクロックが、クロック制御回路４００から供給される。フリーランクロックは無停止のクロックである。従って、クロック制御回路４００にハードウェア故障がない限り、フリーランクロックの供給が停止されることはない。これにより、ゲートクロックが停止中であっても、シンクロナスＤＲＡＭ３００にリフレッシュのためのクロックを入力することが可能となる。
【００２６】
主制御回路２０１は、記憶手段２０３である活性化行アドレス保持回路２、行（ロウ）アドレス入力回路４、列（カラム）アドレス入力回路５、データ入力回路６、比較回路８、制御信号形成回路２０４である制御信号形成回路１０、アドレス主選択回路１１を備える。
【００２７】
副制御回路２０２は、参照手段２０５である活性化行アドレス参照回路１２、制御信号選択回路１３、アドレス副選択回路１４、制御信号出力回路１５、アドレス出力回路１６、データ出力回路１７、コマンド発行手段２０６であるコマンド制御回路１８を備える。
【００２８】
まず、アクセス源１００及び主制御回路２０１に対して第１のクロックが供給されている間、即ち、通常期間におけるメモリ制御装置２００の動作について説明する。
【００２９】
通常期間において、アクセス源１００がメモリ制御装置２００にシンクロナスＤＲＡＭ３００のアクセスを依頼する。読み出しの場合にはアクセス源１００からアドレスが入力され、書き込みの場合にはアクセス源１００からアドレス及びデータが入力される。
【００３０】
アクセス源１００からのアクセス依頼があった時、行アドレス入力回路４が入力されたアドレスの内の行アドレスを取り込んで保持し、列アドレス入力回路５が入力されたアドレスの内の列アドレスを取り込んで保持する。データが入力された場合には、データ入力回路６がこれを取り込んで保持する。なお、読み出し／書き込み等を指示する信号は、別に規定されたメモリプロトコルに従って、アクセス源１００から（アドレスバスを介して）メモリ制御装置２００の制御信号形成回路１０に入力される。
【００３１】
一方、活性化行アドレス保持回路２はシンクロナスＤＲＡＭ３００において活性化された行アドレス（活性化行アドレス）を保持する。この活性化行アドレスは先に（当該アクセスに先行するアクセスの何れかにおいて）シンクロナスＤＲＡＭ３００を実際にアクセスした際の行アドレスである。従って、シンクロナスＤＲＡＭ３００は当該行アドレスが活性化された状態にある。即ち、当該行アドレスの全てのメモリセルからデータが読み出されており、列アドレスの指定があればシンクロナスＤＲＡＭ３００から出力可能な状態になっている。
【００３２】
行アドレス入力回路４は取り込んだ行アドレスを比較回路８の一方の入力端子に入力する。比較回路８の他方の入力端子には活性化行アドレス保持回路２から活性化行アドレスが入力される。これにより、行アドレス入力回路４からの当該アクセスの行アドレスと活性化行アドレス保持回路２からの活性化行アドレスとが比較される。比較回路８は入力された２個の行アドレスを比較して、一致／不一致信号を制御信号形成回路１０に入力する。
【００３３】
制御信号形成回路１０は、比較回路８における比較の結果に基づいて、副制御回路２０２にシンクロナスＤＲＡＭ３００をアクセスさせるための所定の制御信号（コマンド）を形成する。この制御信号は、アドレス主選択回路１１の制御信号として用いられ、また、制御信号選択回路１３に入力される。
【００３４】
前記比較の結果、両者が一致している場合、制御信号形成回路１０は、行アドレスの活性化を行うことなく、当該アクセスの列アドレスを用いてシンクロナスＤＲＡＭ３００をアクセスする（以下、擬似的連続アクセスと言う）ための制御信号を形成する。これにより、メモリアクセス要求が連続はしていない（連続アクセスではない）が比較的狭い範囲（同一の行アドレス）のアドレスに分布している場合に、プリチャージ及び行アドレスの活性化を不要にできる。
【００３５】
具体的には、制御信号形成回路１０は、行アドレスの活性化が不要であるので、アドレス主選択回路１１に列アドレス入力回路５の出力する当該アクセスの列アドレスのみを選択的に出力させる。アドレス主選択回路１１の出力はアドレス副選択回路１４に入力される。
【００３６】
また、制御信号形成回路１０は、列アドレスのみを用いたアクセスのための制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥを形成して出力する。即ち、これらの制御信号の組合せを、連続アクセスにおける列アドレスのみを用いたアクセスと同様の組合せとする。この擬似的連続アクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せ（擬似的連続アクセスコマンド）は、シンクロナスＤＲＡＭ３００の規格として予め定められる。制御信号形成回路１０の出力するこれらの制御信号は制御信号選択回路１３に入力される。
【００３７】
なお、この場合、前述のように、当該アクセスの行アドレスを用いたシンクロナスＤＲＡＭ３００の行アドレスの活性化は行われない。従って、当該アクセスの行アドレスは活性化行アドレス保持回路２に保持されず、その内容に変化はない。活性化行アドレス保持回路２への活性化行アドレスの保持の制御は制御信号形成回路１０により行われる。
【００３８】
一方、比較回路８における前記比較の結果、活性化行アドレスと当該アクセスの行アドレスの両者が一致していない場合、制御信号形成回路１０は、プリチャージを行った後に当該アクセスの行アドレスを用いて当該行アドレスを活性化して当該アクセスの列アドレスを用いてシンクロナスＤＲＡＭ３００をアクセスする（通常アクセスする）ための制御信号を形成する。従って、行アドレスが一致しない場合には、通常のアクセスが行われる。
【００３９】
具体的には、制御信号形成回路１０は、行アドレスの活性化が必要であるので、アドレス主選択回路１１に、最初に行アドレス入力回路４の出力する当該アクセスの行アドレスを選択的に出力させ、次に列アドレス入力回路５の出力する当該アクセスの列アドレスを選択的に出力させる。この出力のタイミングは制御信号形成回路１０により制御される。
【００４０】
また、制御信号形成回路１０は行アドレス及び列アドレスを用いたアクセスのための制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥを形成して出力する。即ち、これらの制御信号の組合せ（コマンド）を、最初にプリチャージの組合せ（プリチャージコマンド）とし、次に通常アクセスの組合せ（通常のリード／ライトコマンド）とする。プリチャージ及び通常アクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せは、シンクロナスＤＲＡＭ３００の規格として予め定められる。
【００４１】
この場合、前述のように、当該アクセスの行アドレスを用いたシンクロナスＤＲＡＭ３００の行アドレスの活性化が行われる。従って、活性化された最新のアドレスである当該アクセスの行アドレスが活性化行アドレス保持回路２に保持される。これにより、当該アクセスの次のアクセスにおいて、行アドレスが互いに一致する場合にその活性化を不要にできる。
【００４２】
以上により、アドレス主選択回路１１の出力する行アドレス及び／又は列アドレスと制御信号形成回路１０からの制御信号とが、主制御回路２０１から副制御回路２０２に出力される。また、データの書き込みの場合には、データ入力回路６から書き込むべきデータが出力される。副制御回路２０２は制御信号形成回路１０からの制御信号に従ってシンクロナスＤＲＡＭ３００をアクセスする。
【００４３】
比較回路８における前記比較の結果、活性化行アドレスと当該アクセスの行アドレスの両者が一致している場合、制御信号形成回路１０からは、擬似的連続アクセスのために、列アドレスのみを用いたアクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せが制御信号選択回路１３の一方の入力端子に入力される。また、アドレス主選択回路１１からは列アドレスがアドレス副選択回路１４の一方の入力端子に入力される。
【００４４】
なお、制御信号選択回路１３の他方の入力端子にはコマンド制御回路１８の出力する制御信号が入力される。また、アドレス副選択回路１４の他方の入力端子には活性化行アドレス参照回路１２の出力するアドレスが入力される。これらはアクセス源１００及び主制御回路２０１に対してゲートクロックが供給されている期間においては選択されない。これらについては後述する。
【００４５】
ここで、アクセス源１００及び主制御回路２０１に対してゲートクロックが供給されているので、クロック制御回路４００はコマンド制御回路１８にゲートクロック停止状態信号を出力しない（そのロウレベルを出力する）。即ち、通常期間においてゲートクロック停止状態信号は出力されない。
【００４６】
このゲートクロック停止状態信号がない状態に応じて、コマンド制御回路１８は所定の制御信号を形成して、制御信号選択回路１３に制御信号形成回路１０からの列アドレスのみを用いたアクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せ（コマンド）を選択的に出力させ、アドレス副選択回路１４に列アドレスを選択的に出力させる。出力された列アドレスのみを用いたアクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せは制御信号出力回路１５に取り込まれ保持される。出力された列アドレスはアドレス出力回路１６に取り込まれ保持される。データの書き込みの場合には、データ入力回路６から書き込むべきデータがデータ出力回路１７に取り込まれ保持される。
【００４７】
所定のタイミングで、シンクロナスＤＲＡＭ３００に対して、制御信号出力回路１５から列アドレスのみを用いたアクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せが出力され、アドレス出力回路１６から列アドレスが出力される。データの書き込みの場合には、データ出力回路１７から書き込むべきデータが出力される。従って、シンクロナスＤＲＡＭ３００は、当該アクセスの行アドレスの活性化を行うことなく、当該アクセスの列アドレスを用いてアクセスされる。これにより、メモリアクセス要求が連続はしていないが比較的狭い範囲（同一の行アドレス）のアドレスに分布している場合に、プリチャージ及び行アドレスの活性化を不要にできる。
【００４８】
なお、データの読み出しの場合にはシンクロナスＤＲＡＭ３００から当該アドレスのデータが出力されるが、その図示は省略している。また、出力の書き込みの場合にはシンクロナスＤＲＡＭ３００の当該アドレスに書き込むべきデータが書き込まれる。
【００４９】
比較回路８における前記比較の結果、活性化行アドレスと当該アクセスの行アドレスの両者が一致していない場合、制御信号形成回路１０からは、通常アクセスのために、行アドレス及び列アドレスを用いたアクセス（プリチャージ及びこれに続く通常アクセス）を指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せが、制御信号選択回路１３に入力される。また、アドレス主選択回路１１からは、行アドレス及び列アドレスがこの順に所定のタイミングでアドレス副選択回路１４に入力される。
【００５０】
ゲートクロック停止状態信号がない状態に応じて、コマンド制御回路１８は、制御信号選択回路１３にプリチャージ及びこれに続く通常アクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せを選択的に出力させ、アドレス副選択回路１４に行アドレス及び列アドレスをこの順に選択的に出力させる。出力されたプリチャージ及びこれに続く通常アクセスを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せは、制御信号出力回路１５を介してシンクロナスＤＲＡＭ３００に入力される。出力された行アドレス及び列アドレスはアドレス出力回路１６を介してシンクロナスＤＲＡＭ３００に入力される。データの書き込みの場合には、データ入力回路６から書き込むべきデータがデータ出力回路１７を介してシンクロナスＤＲＡＭ３００に入力される。
【００５１】
従って、シンクロナスＤＲＡＭ３００は、プリチャージを行って行アドレスを不活性化した後に、当該アクセスの行アドレスの活性化を行い、更にこの後に当該アクセスの列アドレスを用いてアクセスされる。これにより、プリチャージ、行アドレスの活性化、列アドレスの指定と言うサイクルによる通常のアクセスが実行される。
【００５２】
なお、この例において、以上とは別に、いわゆるバーストモードの連続アクセスが可能である。即ち、同一の行アドレスについて列アドレスのみをクロックに同期して切り換えることにより、高速で（連続して）データの読み出し／書き込みが可能である。また、アクセス源１００及び主制御回路２０１に対してゲートクロックが供給されている期間におけるシンクロナスＤＲＡＭ３００のリフレッシュの指示は、アクセス源１００とは独立にメモリ制御装置２００がシンクロナスＤＲＡＭ３００に与える。
【００５３】
次に、アクセス源１００及び主制御回路２０１に対するゲートクロックの供給が停止されている間、即ち、チェックストップ又はシングルクロックモード（以下、便宜的に停止期間と言う）におけるメモリ制御装置２００の動作について説明する。
【００５４】
チェックストップ等の必要が生じた場合、またはオペレータが外部から指示を与えられた場合，これらの入力によりクロック制御回路４００に対してゲートクロックの送出停止を指示する。これに応じてクロック制御回路４００は、アクセス源１００及び主制御回路２０１に対するゲートクロックの送出を停止する。これにより、主制御回路２０１のクロック動作は停止される。この時、主制御回路２０１の電源は遮断されないので、例えば活性化行アドレス保持回路２はその内容を保持し出力している。この出力は活性化行アドレス参照回路１２に取り込まれる。なお、副制御回路２０２に対してはフリーランクロックが停止することなく供給されている。
【００５５】
クロック制御回路４００は、ゲートクロックの送出停止と同時に、コマンド制御回路１８にゲートクロック停止状態信号を出力する（そのハイレベルを出力する）。即ち、ゲートクロック停止状態信号は停止期間に送出される。ゲートクロック停止状態信号に応じて、コマンド制御回路１８はシンクロナスＤＲＡＭ３００にそのリフレッシュを行わせるための所定のコマンドを発行する。
【００５６】
ここで、リフレッシュのためには、シンクロナスＤＲＡＭ３００において、プリチャージを行って行アドレスを不活性化した後に、当該リフレッシュすべき行アドレスを活性化する必要がある。そこで、コマンド制御回路１８は、プリチャージコマンドを発行し、これに続いてリフレッシュコマンドを発行する。即ち、プリチャージ及びこれに続くリフレッシュを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せを形成して、この順に出力する。この出力は制御信号選択回路１３に入力される。一方、コマンド制御回路１８は、制御信号選択回路１３に制御信号を送り、プリチャージ及びこれに続くリフレッシュを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せを、この順に選択的に出力させる。また、コマンド制御回路１８は、アドレス副選択回路１４にアドレスの出力を停止させる。
【００５７】
出力されたプリチャージ及びこれに続くリフレッシュを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せは、制御信号出力回路１５を介してシンクロナスＤＲＡＭ３００に入力される。これにより、シンクロナスＤＲＡＭ３００においては、まず、プリチャージコマンドに応じてプリチャージが実行されて活性化されている行アドレスが不活性化され、この後、リフレッシュコマンドに応じて所定の行アドレス（のメモリセル）についてリフレッシュが行われる。なお、リフレッシュすべき行アドレスは、シンクロナスＤＲＡＭ３００がその内部に持つ（行）アドレスカウンタにより与えられる。
【００５８】
ゲートクロック停止状態信号を受信している間、コマンド制御回路１８は、所定の周期で、プリチャージ及びこれに続くリフレッシュを指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せ（コマンド）の出力を繰り返す。これにより、ゲートクロックの供給が停止されている間、シンクロナスＤＲＡＭ３００のプリチャージとリフレッシュとが繰り返される。これにより、シンクロナスＤＲＡＭ３００の記憶内容は保持される。
【００５９】
チェックストップ等の処理が終了した場合、オペレータが外部からの入力によりクロック制御回路４００に対してゲートクロックの送出再開を指示する。これに応じて、クロック制御回路４００はアクセス源１００及び主制御回路２０１に対するゲートクロックの送出を再開する。クロック制御回路４００は、ゲートクロックの送出再開と同時に、コマンド制御回路１８へのゲートクロック停止状態信号の出力を停止する（そのロウレベルを出力する）。ゲートクロック停止状態信号がない状態に応じて、コマンド制御回路１８は、前述した通常期間におけるシンクロナスＤＲＡＭ３００の制御を行う。
【００６０】
これに先立って、コマンド制御回路１８は、通常期間における制御に移行する前に、シンクロナスＤＲＡＭ３００と主制御回路２０１との状態を一致させるための処理（復帰サイクル）を実行する。この復帰サイクルは以下のように行われる。
【００６１】
コマンド制御回路１８は、ゲートクロック停止状態信号のハイレベルからロウレベルへの変化を検出して、これを活性化行アドレス参照回路１２に通知する。これに応じて、活性化行アドレス参照回路１２が活性化行アドレス保持回路２の内容を参照する。前述のように、ゲートクロック停止中も主制御回路２０１の電源は遮断されないので、活性化行アドレス保持回路２はその内容を保持している。この内容はゲートクロック停止直前に活性化された行アドレスである。活性化行アドレス参照回路１２は参照した行アドレスをアドレス副選択回路１４に入力する。この後、コマンド制御回路１８はシンクロナスＤＲＡＭ３００に当該参照した行アドレスの活性化を行なわせるための所定のコマンドを発行する。
【００６２】
ここで、当該行アドレスの活性化のためには、シンクロナスＤＲＡＭ３００において、プリチャージを行って直前にリフレッシュされた行アドレスを不活性化する必要がある。そこで、コマンド制御回路１８は、プリチャージコマンドを発行し、これに続いて行アドレスの活性化コマンドを発行する。即ち、プリチャージ及びこれに続く行アドレスの活性化を指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せを形成して、この順に出力する。一方、コマンド制御回路１８は、制御信号選択回路１３に制御信号を送り、プリチャージ及びこれに続く行アドレスの活性化を指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せをこの順に選択的に出力させる。また、コマンド制御回路１８はアドレス副選択回路１４に活性化行アドレス参照回路１２からの行アドレスを選択的に出力させる。
【００６３】
出力されたプリチャージ及びこれに続く行アドレスの活性化を指示する制御信号ＣＳ、ＲＡＳ、ＣＡＳ、ＷＥの組合せ及び行アドレスは、制御信号出力回路１５及びアドレス出力回路１６を介して、シンクロナスＤＲＡＭ３００に入力される。これにより、シンクロナスＤＲＡＭ３００においては、まず、プリチャージコマンドに応じてプリチャージが実行されてリフレッシュにより活性化された行アドレスが不活性化され、この後、行アドレスの活性化コマンドに応じて当該行アドレスについて活性化が行われる。これにより、ゲートクロックの供給が再開される際に、活性化行アドレス保持回路２に保持されている行アドレスを用いて、シンクロナスＤＲＡＭ３００の当該行アドレスが活性化される。
【００６４】
図３は本発明のメモリ制御装置２００を備える大型計算機やスーパーコンピュータのような電子計算機の他の一例を示す。この例においては、メモリ３００が、その各々に異なるアドレスが割り付けられた２個（２以上）のシンクロナスＤＲＡＭ３０１及び３０２からなる。即ち、シンクロナスＤＲＡＭ３０１及び３０２はインタリーブされる関係にある。各々のシンクロナスＤＲＡＭ３０１及び３０２に対応して活性化行アドレス保持回路２及び３が設けられる。更に、これに対応して、比較回路８及び９が設けられる。
【００６５】
この例においては、２個のシンクロナスＤＲＡＭ３０１及び３０２に異なるアドレスが割り付けられているので、通常、各々において活性化された行アドレスが異なる。そこで、各々のシンクロナスＤＲＡＭ３０１及び３０２において活性化された行アドレスが、対応する活性化行アドレス保持回路２及び３に保持され、比較回路８及び９における比較結果が一致する場合に行アドレスの活性化が省略される。これにより、前述と同様にして、各々のシンクロナスＤＲＡＭ３０１及び３０２（即ち、メモリ３００）の高速化を図ることができる。
【００６６】
図４は本発明のメモリ制御装置２００を備える電子計算機の更に他の一例を示す。この例においては、メモリ３００が、その内部が２個（２以上）のバンク３０３及び３０４に分けられた１個のシンクロナスＤＲＡＭ３００からなる。即ち、バンク３０３及び３０４はインタリーブされる関係にある。各々のバンク３０３及び３０４に対応して活性化行アドレス保持回路２及び３が設けられる。更に、これに対応して、比較回路８及び９が設けられる。
【００６７】
この例は、図３の例において、各々のシンクロナスＤＲＡＭ３０１及び３０２をバンク３０３及び３０４で置換した例である。従って、図３と同様にメモリ３００の高速化を図ることができる。
【００６８】
図５は本発明のメモリ制御装置２００を備える電子計算機の更に他の一例を示す。この例においては、シンクロナスＤＲＡＭ３０１及び３０２における活性化された行アドレスの有効期間が有限とされる（規格が有限期間を規定している）。そこで、この有効期間を管理するために、主制御回路２０１に行アドレスが活性化された後に経過した時間をカウントする計時手段であるタイマ１が１個設けられる。
主制御回路２０１は、活性化行アドレス保持回路２又は３のいずれか一方に活性化された行アドレスを格納した場合、これと同時にタイマ１をスタートさせる（リセットする）。タイマ１は、当該行アドレスが活性化された後に所定の時間が経過した（タイムアップ）ことを検出した場合、活性化行アドレス保持回路２及び３の内容を無効とする（リセットする）。タイムアップするまでの時間は行アドレスの有効期間と等しくされる。従って、１個のタイマ１により、最先に活性化された行アドレスの有効期間に合わせて、２個の活性化行アドレス保持回路２及び３の内容が同時にリセットされる。この結果、活性化行アドレス保持回路２又は３の他方の有効期間は、みかけ上規定された有効期間よりも短くなる。これにより、活性化された行アドレスの有効期間が有限である場合でも、活性化行アドレス保持回路２及び３の保持する行アドレと、シンクロナスＤＲＡＭ３０１及び３０２の有効な活性化行アドレスとを一致させることできる。
【００６９】
なお、この例は図３の例においてタイマ１を設けた例であるが、タイマ１を、図２のシンクロナスＤＲＡＭ３００に対応して設け又は図４のバンク３０３及び３０４の各々に対応して設け、その各々の活性化された行アドレスの有効期間を管理するようにしても良い。また、当該有効期間よりも短い時間間隔でシンクロナスＤＲＡＭ３０１等がリフレッシュされる場合、タイマ１は省略される。この場合、活性化行アドレス参照回路１２の働きにより、有効期間がタイムアップする以前に、同一の行アドレスを再度活性化しても良い。
【００７０】
図６は本発明のメモリ制御装置２００を備える電子計算機の更に他の一例を示す。この例においては、アクセス源１００から連続したアクセスがあった場合、当該連続したアクセスの終了後に、次のアクセスを待つことなく、制御信号形成回路１０が活性化行アドレス保持回路２及び３の内容を無効としプリチャージを行うための制御信号を形成する。このために、主制御回路２０１に終了信号入力回路７が設けられる。なお、この例は図５の例において終了信号入力回路７を設けた例であるが、図２乃至図４の例において、終了信号入力回路７を設けても良い。
【００７１】
アクセス源１００は、連続したアクセスを行う場合、その最後のアクセスと同時に、連続アクセスが終了することを示す終了信号（のハイレベル）を出力する。この終了信号を終了信号入力回路７が取り込んで制御信号形成回路１０に入力する。これに応じて、制御信号形成回路１０は、当該連続したアクセスの終了後に、活性化行アドレス保持回路２及び３の内容を無効とする。この動作は、図５において説明したタイマ１による無効の動作とは独立に行われる。また、制御信号形成回路１０がプリチャージを行うための制御信号（プリチャージコマンド）を形成して出力する。この場合、ゲートクロック停止状態信号が出力されていないので、プリチャージコマンドが制御信号選択回路１３及び制御信号出力回路１５を介してシンクロナスＤＲＡＭ３０１及び３０２に入力され、これらがプリチャージされる。
【００７２】
一般に、アクセス源１００が連続アクセスを終了した場合、次に開始されるアクセスが同一の行アドレスについてのものである確率は低い。従って、活性化行アドレス保持回路２及び３の内容を無効とし，シンクロナスＤＲＡＭ３０１等における行アドレスの状態を不活性化してもほとんど支障はない。そこで、予めプリチャージを行うことにより、次のアクセスがあった場合、プリチャージを省略して直ちに行アドレスを活性化させることができるので、プリチャージ動作の分だけ高速化を図ることができる。
【００７３】
図７及び図８は本発明のメモリ制御装置２００を備える電子計算機の更に他の一例を示す。この例においては、図８に示すように、ゲートクロック停止状態信号を受信している間、シンクロナスＤＲＡＭ３００のプリチャージ（ＰＲＥ）、リフレッシュ（ＲＥＦ）及び活性化行アドレス保持回路２に保持されている行アドレスの活性化（ＡＣＴＶ）が繰り返される。また、この例においては、図７及び図８に示すように、ゲートクロック開始禁止信号がコマンド制御回路１８からクロック制御回路４００に対して送出される。
【００７４】
なお、図６までの例においては、ゲートクロック停止状態信号を受信している間、プリチャージ及びリフレッシュが繰り返され、最後に１回だけ活性化行アドレス保持回路２に保持されている行アドレスの活性化が行われていた。これは、図１１に示すプリチャージ（ＰＲＥ）、リフレッシュ（ＲＥＦ）及び行アドレスの活性化（ＡＣＴＶ）のサイクルと同様である。
【００７５】
コマンド制御回路１８は、プリチャージ（を指示するコマンドの発行）を開始するタイミングでゲートクロック開始禁止信号ＩＮＨＩＢＩＴ（のハイレベル）を送出する。また、コマンド制御回路１８は、リフレッシュを終了するタイミングでゲートクロック開始禁止信号の送出を停止（そのロウレベルを出力）し、活性化行アドレス保持回路２に保持されている行アドレスの活性化（を指示するコマンドの発行）を開始する。ゲートクロック開始禁止信号を受けるクロック制御回路４００は、外部からオペレータのゲートクロック供給再開の指示があっても直ちにその供給を再開することなく、ゲートクロック開始禁止信号がない時にのみゲートクロックの送出を開始する。即ち、ゲートクロックの供給再開とシンクロナスＤＲＡＭ３００の復帰サイクルとが同期させられる。
【００７６】
これにより、活性化行アドレス保持回路２に保持されている行アドレスの活性化から次のプリチャージの開始までの期間内に限って、ゲートクロックの送出が再開される。従って、ゲートクロックの供給再開後に直ちにメモリアクセス要求があっても、これを直ぐに実行することができる。
【００７７】
図９及び図１０は本発明のメモリ制御装置２００を備える電子計算機の更に他の一例を示す。この例は、図７及び図８に示す例において、ゲートクロック開始禁止信号（ＩＮＨＩＢＩＴ）に替えて、ゲートクロック開始要求信号（ＲＥＱ）及びゲートクロック開始認識信号（ＡＣＫ）を用いた例である。
【００７８】
クロック制御回路４００は、シンクロナスＤＲＡＭ３００の状態に無関係の適当なタイミングで、図１０に示すように、ゲートクロック開始要求信号をコマンド制御回路１８に送る。これを受けたコマンド制御回路１８は、直ちにゲートクロック開始認識信号を返すことなく、受信直後のリフレッシュを終了するタイミングでゲートクロック開始認識信号をクロック制御回路４００に返し、活性化行アドレス保持回路２に保持されている行アドレスの活性化（を指示するコマンドの発行）を開始する。ゲートクロック開始認識信号を受けたクロック制御回路４００は、ゲートクロックの送出を開始する。即ち、ゲートクロックの供給再開とシンクロナスＤＲＡＭ３００の復帰サイクルとが同期させられる。
【００７９】
図１１は本発明のメモリ制御装置２００を備える電子計算機の更に他の一例を示す。この例の構成は図９と同様であり、その動作のみが異なる。この例においては、図１１に示すように、ゲートクロック停止状態信号を受信している間、プリチャージ（ＰＲＥ）及びリフレッシュ（ＲＥＦ）が繰り返され、最後に活性化行アドレス保持回路２に保持されている行アドレスの活性化（ＡＣＴＶ）が行われる。
【００８０】
クロック制御回路４００は、シンクロナスＤＲＡＭ３００の状態に無関係の適当なタイミングで、図１１に示すように、ゲートクロック開始要求信号をコマンド制御回路１８に送る。これを受けたコマンド制御回路１８は、直ちにゲートクロック開始認識信号を返すことなく、受信直後のリフレッシュを終了した後、行アドレスの活性化のためのプリチャージを終了したタイミングでゲートクロック開始認識信号をクロック制御回路４００に返し、活性化行アドレス保持回路２に保持されている行アドレスの活性化（を指示するコマンドの発行）を開始する。ゲートクロック開始認識信号を受けたクロック制御回路４００は、ゲートクロックの送出を開始する。即ち、ゲートクロックの供給再開とシンクロナスＤＲＡＭ３００の復帰サイクルとが同期させられる。
【００８１】
以上、本発明を実施例により説明したが、本発明はその主旨の範囲において種々の変形が可能であり、例えば前述した実施例の各々を適宜組み合わせて実施することが可能である。
【００８２】
【発明の効果】
以上説明したように、本発明によれば、活性化された行アドレスを保持する記憶手段を備えシンクロナスＤＲＡＭを制御するメモリ制御装置において、ゲートクロックの停止期間中にシンクロナスＤＲＡＭのリフレッシュを行うと共にゲートクロックの供給が再開される際に記憶手段に保持されている行アドレスを用いてシンクロナスＤＲＡＭの当該行アドレスを活性化することにより、リフレッシュの後のゲートクロックの供給が再開時に、シンクロナスＤＲＡＭにおいてリフレッシュのためのプリチャージを行った場合でも、記憶手段に保持された行アドレスと実際のシンクロナスＤＲＡＭにおいて活性化した行アドレスとを一致させることができるので、アクセスの当該行アドレスと記憶手段に保持されている行アドレスとが一致した場合に行アドレスの活性化をすることなく直ちに当該列アドレスを用いて当該データを読み出すことができ、この結果、スーパーコンピュータ等に不可欠のクロック停止機能を維持しつつ、シンクロナスＤＲＡＭを主記憶として使用し、そのリフレッシュ及び高速化を実現することができる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】メモリ制御装置構成図である。
【図３】メモリ制御装置構成図である。
【図４】メモリ制御装置構成図である。
【図５】メモリ制御装置構成図である。
【図６】メモリ制御装置構成図である。
【図７】メモリ制御装置構成図である。
【図８】動作説明図である。
【図９】メモリ制御装置構成図である。
【図１０】動作説明図である。
【図１１】動作説明図である。
【符号の説明】
１      タイマ
２      （第１の）活性化行アドレス保持回路
３      （第２の）活性化行アドレス保持回路
４      行アドレス入力回路
５      列アドレス入力回路
６      データ入力回路
７      終了信号入力回路
８      （第１の）比較回路
９      （第２の）比較回路
１０    制御信号形成回路
１１    アドレス主選択回路
１２    活性化行アドレス参照回路
１３    制御信号選択回路
１４    アドレス副選択回路
１５    制御信号出力回路
１６    アドレス出力回路
１７    データ出力回路
１８    コマンド制御回路
１００  アクセス源
２００  メモリ制御装置
２０１  主制御回路
２０２  副制御回路
２０３  記憶手段
２０４  制御信号形成手段
２０５  参照手段
２０６  コマンド発行手段
３００  メモリ（シンクロナスＤＲＡＭ）
４００  クロック制御回路
【図１】
0003588405.tif 000002
【図２】
0003588405.tif 000003
【図３】
0003588405.tif 000004
【図４】
0003588405.tif 000005
【図５】
0003588405.tif 000006
【図６】
0003588405.tif 000007
【図７】
0003588405.tif 000008
【図８】
0003588405.tif 000009
【図９】
0003588405.tif 000010
【図１０】
0003588405.tif 000011
【図１１】
0003588405.tif 000012