米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 マイクロプロセッサとメモリ制御装置及びコンピュータシステム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−200295
公開日 平成7年(1995)8月4日
出願番号 特願平5−353604
出願日 平成5年(1993)12月28日
代理人 【弁理士】
【氏名又は名称】中島 司朗
発明者 西川 幸伸
要約 目的
消費電力を低減可能なメモリ制御装置及びそれを用いたコンピュータシステムを提供する。

構成
スタック領域を使用するマイクロプロセッサ1から、スタックフレームが更新された時にメモリブロック番号を受け取り、またメモリ2のリフレッシュを制御するメモリ制御装置3で、マイクロプロセッサ1から受け取ったのと更新前のスタックポインタの値が示すメモリブロック番号に基づき、現在解放されている複数の番号のみ登録する解放メモリブロック登録手段31、32、33、34、37と、登録された複数のブロック番号のみをスタック構造で保持している解放メモリブロック保持手段と35、リフレッシュアドレスのブロック番号を順次生成するリフレッシュアドレス生成手段36と、ブロック番号が生成された時点で、その番号が解放メモリブロック保持手段に登録されているかを判定し、存在すればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段37とを備える。
特許請求の範囲
【請求項1】 スタックフレームの情報を外部に通知するマイクロプロセッサであって、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段により検出されたときスタックポインタの値が示すメモリブロック番号を命令実行と並行して出力するブロック出力手段と、を備えたことを特徴とするマイクロプロセッサ。
【請求項2】 スタックフレームの情報を外部に通知するマイクロプロセッサであって、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットをメモリブロック番号として読み出す読出手段と、読み出されたメモリブロック番号を命令実行と並行して通知する通知手段と、を備えたことを特徴とするマイクロプロセッサ。
【請求項3】 スタックフレームの情報を外部に通知するマイクロプロセッサであって、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットをメモリブロック番号として読み出す読出手段と、読み出されたメモリブロック番号を保持する保持手段と保持しているメモリブロック番号を命令実行と並行して通知する通知手段と、を備えたことを特徴とするマイクロプロセッサ。
【請求項4】 スタック領域を使用するマイクロプロセッサから、スタックフレームが更新されときにスタックポインタの値が示すメモリブロック番号を受け取り、またメモリのリフレッシュを制御するメモリ制御装置であって、マイクロプロセッサから受け取ったメモリブロック番号と更新前のスタックポインタの値が示すメモリブロック番号に基づいて、現在解放されている複数のメモリブロック番号のみ登録する解放メモリブロック登録手段と、前記解放メモリブロック登録手段で登録された複数のメモリブロック番号のみをスタック構造で保持している解放メモリブロック保持手段と、リフレッシュアドレスであるメモリブロック番号を一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該メモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、存在すればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とするメモリ制御装置。
【請求項5】 スタック領域を使用するマイクロプロセッサから、スタックフレームが確保、解放されたときにスタックポインタの値が示すメモリブロック番号を受け取り、またメモリのリフレッシュを制御するメモリ制御装置であって、マイクロプロセッサから受け取ったメモリブロック番号を保持する更新レジスタ手段と、更新前のスタックポインタの値が示すメモリブロック番号を保持する更新前レジスタ手段と、前記更新レジスタ手段がメモリブロック番号を受け取った時に、前記更新レジスタの保持するメモリブロック番号から前記更新前レジスタ手段の保持するメモリブロック番号の減算処理を行い減算した結果である減算値を保持する減算手段と、現在解放されている複数のメモリブロック番号のみがスタック構造で登録されている解放メモリブロック保持手段と、前記減算手段の保持する減算値が正であるか、負であるかを判定し、該減算値が正である場合、前記更新前レジスタ手段の保持するメモリブロック番号に、0から該減算値−1の値まで1ずつ増加させた数値を加算するとともに解放メモリブロック保持手段に順次登録する、さらに前記更新レジスタ手段の保持するメモリブロック番号を前記更新前レジスタ手段に格納する、該減算値が負である場合は、前記解放メモリブロック保持手段に登録されているメモリブロック番号を該減算値の値の示す回数分最後に登録されたメモリブロック番号から順に前記更新前レジスタ手段に出力しする登録ブロック制御手段と、リフレッシュアドレスを一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該リフレッシュアドレスに対応するメモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、登録されていればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とするメモリ制御装置。
【請求項6】 メモリのリフレッシュを制御するメモリ制御装置を有するコンピュータシステムであって、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段により検出されたときスタックポインタの値が示すメモリブロック番号を出力するブロック出力手段と、前記ブロック出力手段から受け取ったメモリブロック番号と更新前のスタックポインタの値が示すメモリブロック番号に基づいて、現在解放されている複数のメモリブロック番号のみ登録する解放メモリブロック登録手段と、前記解放メモリブロック登録手段で登録された複数のメモリブロック番号のみをスタック構造で保持している解放メモリブロック保持手段と、リフレッシュアドレスであるメモリブロック番号を一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該メモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、存在すればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とするコンピュータシステム。
【請求項7】 メモリのリフレッシュを制御するメモリ制御装置を有するコンピュータシステムであって、命令を解読してスタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットからメモリブロック番号を抽出する抽出手段と、抽出されたメモリブロック番号を通知する通知手段と、前記通知手段から受け取ったメモリブロック番号を保持する更新レジスタ手段と、更新前のスタックポインタの値が示すメモリブロック番号を保持する更新前レジスタ手段と、前記更新レジスタ手段がメモリブロック番号を受け取った時に、前記更新レジスタの保持するメモリブロック番号から前記更新前レジスタ手段の保持するメモリブロック番号の減算処理を行い減算した結果である減算値を保持する減算手段と、現在解放されている複数のメモリブロック番号のみがスタック構造で登録されている解放メモリブロック保持手段と、前記減算手段の保持する減算値が正であるか、負であるかを判定し、該減算値が正である場合、前記更新前レジスタ手段の保持するメモリブロック番号に、0から該減算値−1の値まで1ずつ増加させた数値を加算するとともに解放メモリブロック保持手段に順次登録する、さらに前記更新レジスタ手段の保持するメモリブロック番号を前記更新前レジスタ手段に格納する、該減算値が負である場合は、前記解放メモリブロック保持手段に登録されているメモリブロック番号を該減算値の値の示す回数分最後に登録されたメモリブロック番号から順に前記更新前レジスタ手段に出力しする登録ブロック制御手段と、リフレッシュアドレスを一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該リフレッシュアドレスに対応するメモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、登録されていればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とするコンピュータシステム。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明はDRAMに対するメモリリフレッシュを制御するコンピュータシステム及びその基本構成となるマイクロプロセッサ及びメモリ制御装置に関するものである。
【0002】
【従来の技術】従来のマイクロプロセッサとメモリ制御装置とコンピュータシステムとしては、例えば「マイクロコンピュータのハードウェア」(岩波講座マイクロエレクトロニクス5、岩波書店、1984年)に示されている。一般に、コンピュータシステムにおいては、主記憶にダイナミックメモリが使用される場合が多く、主記憶のデータを保持しておくために定期的にダイナミックメモリに対してメモリリフレッシュが行われている。
【0003】
【発明が解決しようとする課題】しかしながら従来では、主記憶を構成しているダイナミックメモリに対して起動するメモリリフレッシュサイクルに関して、メモリ中に保持されたデータの有効性に関係なく全領域に対して一元的処理していた。そのため、解放されたスタックフレームなどの保持しておく必要のないデータに対してもメモリリフレッシュサイクルが起動されるために余分な電力を消費するという問題点を有していた。また、解放されたスタックフレームを知るための情報はスタックポインタにより得られるが、そのスタックポインタは、マイクロプロセッサ内部に存在するためスタックフレームの解放をマイクロプロセッサ外部で迅速に知ることが出来ず、またマイクロプロセッサの実行とは、独立に外部で処理することが出来なかった。
【0004】本発明はかかる点に鑑み、消費電力を低減可能なメモリ制御装置を実現するためのスタックフレームの情報を外部に通知することができるのマイクロプロセッサ、消費電力を低減可能なメモリ制御装置及びそれを用いたコンピュータシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】上記目的を達成するため、本発明の請求項1では、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段により検出されたときスタックポインタの値が示すメモリブロック番号を命令実行と並行して出力するブロック出力手段とを備えたことを特徴とする。
【0006】請求項2では、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットをメモリブロック番号として読み出す読出手段と、読み出されたメモリブロック番号を命令実行と並行して通知する通知手段とを備えたことを特徴とする。
【0007】請求項3では、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットをメモリブロック番号として読み出す読出手段と、読み出されたメモリブロック番号を保持する保持手段と保持しているメモリブロック番号を命令実行と並行して通知する通知手段とを備えたことを特徴とする。請求項4では、マイクロプロセッサから受け取ったメモリブロック番号と更新前のスタックポインタの値が示すメモリブロック番号に基づいて、現在解放されている複数のメモリブロック番号のみ登録する解放メモリブロック登録手段と、前記解放メモリブロック登録手段で登録された複数のメモリブロック番号のみをスタック構造で保持している解放メモリブロック保持手段と、リフレッシュアドレスであるメモリブロック番号を一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該メモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、存在すればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とする。
【0008】請求項5では、マイクロプロセッサから受け取ったメモリブロック番号を保持する更新レジスタ手段と、更新前のスタックポインタの値が示すメモリブロック番号を保持する更新前レジスタ手段と、前記更新レジスタ手段がメモリブロック番号を受け取った時に、前記更新レジスタの保持するメモリブロック番号から前記更新前レジスタ手段の保持するメモリブロック番号の減算処理を行い減算した結果である減算値を保持する減算手段と、現在解放されている複数のメモリブロック番号のみがスタック構造で登録されている解放メモリブロック保持手段と、前記減算手段の保持する減算値が正であるか、負であるかを判定し、該減算値が正である場合、前記更新前レジスタ手段の保持するメモリブロック番号に、0から該減算値−1の値まで1ずつ増加させた数値を加算するとともに解放メモリブロック保持手段に順次登録する、さらに前記更新レジスタ手段の保持するメモリブロック番号を前記更新前レジスタ手段に格納する、該減算値が負である場合は、前記解放メモリブロック保持手段に登録されているメモリブロック番号を該減算値の値の示す回数分最後に登録されたメモリブロック番号から順に前記更新前レジスタ手段に出力しする登録ブロック制御手段と、リフレッシュアドレスを一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該リフレッシュアドレスに対応するメモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、登録されていればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段と を備えたことを特徴とする。
【0009】請求項6では、スタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段により検出された時スタックポインタの値が示すメモリブロック番号を出力するブロック出力手段と、前記ブロック出力手段から受け取ったメモリブロック番号と更新前のスタックポインタの値が示すメモリブロック番号に基づいて、現在解放されている複数のメモリブロック番号のみ登録する解放メモリブロック登録手段と、前記解放メモリブロック登録手段で登録された複数のメモリブロック番号のみをスタック構造で保持している解放メモリブロック保持手段と、リフレッシュアドレスであるメモリブロック番号を一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該メモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、存在すればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とする。
【0010】請求項7では、命令を解読してスタックフレームが解放、確保されたことを検出する検出手段と、前記検出手段より検出された時、スタックポインタが示すアドレスの上位ビットからメモリブロック番号を抽出する抽出手段と、抽出されたメモリブロック番号を通知する通知手段と、前記通知手段から受け取ったメモリブロック番号を保持する更新レジスタ手段と、更新前のスタックポインタの値が示すメモリブロック番号を保持する更新前レジスタ手段と、前記更新レジスタ手段がメモリブロック番号を受け取った時に、前記更新レジスタの保持するメモリブロック番号から前記更新前レジスタ手段の保持するメモリブロック番号の減算処理を行い減算した結果である減算値を保持する減算手段と、現在解放されている複数のメモリブロック番号のみがスタック構造で登録されている解放メモリブロック保持手段と、前記減算手段の保持する減算値が正であるか、負であるかを判定し、該減算値が正である場合、前記更新前レジスタ手段の保持するメモリブロック番号に、0から該減算値−1の値まで1ずつ増加させた数値を加算するとともに解放メモリブロック保持手段に順次登録する、さらに前記更新レジスタ手段の保持するメモリブロック番号を前記更新前レジスタ手段に格納する、該減算値が負である場合は、前記解放メモリブロック保持手段に登録されているメモリブロック番号を該減算値の値の示す回数分最後に登録されたメモリブロック番号から順に前記更新前レジスタ手段に出力しする登録ブロック制御手段と、リフレッシュアドレスを一定間隔でカウントすることにより順次生成するリフレッシュアドレス生成手段と、前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該リフレッシュアドレスに対応するメモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定し、登録されていればメモリのリフレッシュを行わず、存在しなければメモリのリフレッシュを行うリフレッシュ制御手段とを備えたことを特徴とする。
【0011】
【作用】上記構成によれば、本発明の請求項1では、スタックフレームが解放、確保されたことは検出手段によって検出される。前記検出手段により検出されたときスタックポインタの値が示すメモリブロック番号は、命令実行と並行してブロック出力手段によって出力される。
【0012】請求項2では、スタックフレームが解放、確保されたことは検出手段によって検出される。前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットはメモリブロック番号として読出手段によって読み出される。読み出されたメモリブロック番号は、命令実行と並行して通知手段によって通知される。
【0013】請求項3では、スタックフレームが解放、確保されたことは、検出手段によって検出される。前記検出手段より検出されたとき、スタックポインタが示すアドレスの上位ビットは、メモリブロック番号として読出手段によって読み出される。読み出されたメモリブロック番号は保持手段によって保持され、保持されているメモリブロック番号は命令実行と並行して通知手段によって通知される。
【0014】請求項4では、マイクロプロセッサから受け取ったメモリブロック番号と更新前のスタックポインタの値が示すメモリブロック番号に基づいて、現在解放されている複数のメモリブロック番号のみが解放メモリブロック登録手段によって登録される。前記解放メモリブロック登録手段で登録された複数のメモリブロック番号のみがスタック構造で解放メモリブロック保持手段によって保持される。リフレッシュアドレスであるメモリブロック番号は、一定間隔でカウントされることによりリフレッシュアドレス生成手段によって順次生成される。前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、リフレッシュ制御手段によって該メモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定され、存在すればメモリのリフレッシュが行われず、存在しなければメモリのリフレッシュがリフレッシュ制御手段によって行われる。
【0015】請求項5では、マイクロプロセッサから受け取ったメモリブロック番号は更新レジスタ手段によって保持される。更新前のスタックポインタの値が示すメモリブロック番号は更新前レジスタ手段によって保持される。前記更新レジスタ手段がメモリブロック番号を受け取った時に、前記更新レジスタの保持するメモリブロック番号から前記更新前レジスタ手段の保持するメモリブロック番号の減算処理が減算手段によって行われ、減算した結果である減算値が減算手段によって保持される。現在解放されている複数のメモリブロック番号はスタック構造で解放メモリブロック保持手段によって登録されている。前記減算手段の保持する減算値が正であるか、負であるかが登録ブロック制御手段によって判定され、該減算値が正である場合、前記更新前レジスタ手段の保持するメモリブロック番号に、0から該減算値−1の値まで1ずつ増加させた数値が登録ブロック制御手段によって加算するとともに解放メモリブロック保持手段に順次登録される。さらに前記更新レジスタ手段の保持するメモリブロック番号も登録ブロック制御手段によって前記更新前レジスタ手段に格納される。該減算値が負である場合は、前記解放メモリブロック保持手段に登録されているメモリブロック番号を該減算値の値の示す回数分最後に登録されたメモリブロック番号から順に前記更新前レジスタ手段に登録ブロック制御手段によって出力される。リフレッシュアドレスはリフレッシュアドレス生成手段によって一定間隔でカウントされることによりすることにより順次生成される。前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該リフレッシュアドレスに対応するメモリブロック番号が前記解放メモリブロック保持手段に登録されているかがリフレッシュ制御手段によって判定され、登録されていればメモリのリフレッシュを行われず、存在しなければメモリのリフレッシュがリフレッシュ制御手段によって行われる。
【0016】請求項6では、スタックフレームが解放、確保されたことが検出手段によって検出される。前記検出手段により検出された時スタックポインタの値が示すメモリブロック番号がブロック出力手段によって出力される。前記ブロック出力手段にから受け取ったメモリブロック番号と更新前のスタックポインタの値が示すメモリブロック番号に基づいて、現在解放されている複数のメモリブロック番号のみが解放メモリブロック登録手段によって登録される。前記解放メモリブロック登録手段で登録された複数のメモリブロック番号のみがスタック構造で解放メモリブロック保持手段によって保持される。リフレッシュアドレスであるメモリブロック番号は、一定間隔でカウントされることによりリフレッシュアドレス生成手段によって順次生成される。前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、リフレッシュ制御手段によって該メモリブロック番号が前記解放メモリブロック保持手段に登録されているかを判定され、存在すればメモリのリフレッシュが行われず、存在しなければメモリのリフレッシュがリフレッシュ制御手段によって行われる。
【0017】請求項7では、命令を解読してスタックフレームが解放、確保されたことが検出手段によって検出される。前記検出手段より検出された時、スタックポインタが示すアドレスの上位ビットからメモリブロック番号が抽出手段によって抽出される。抽出されたメモリブロック番号は通知手段によって通知される。前記通知手段から受け取ったメモリブロック番号は更新レジスタ手段によって保持される。更新前のスタックポインタの値が示すメモリブロック番号は更新前レジスタ手段によって保持される。前記更新レジスタ手段がメモリブロック番号を受け取った時に、前記更新レジスタの保持するメモリブロック番号から前記更新前レジスタ手段の保持するメモリブロック番号の減算処理が減算手段によって行われ、減算した結果である減算値が減算手段によって保持される。現在解放されている複数のメモリブロック番号はスタック構造で解放メモリブロック保持手段によって登録されている。前記減算手段の保持する減算値が正であるか、負であるかが登録ブロック制御手段によって判定され、該減算値が正である場合、前記更新前レジスタ手段の保持するメモリブロック番号に、0から該減算値−1の値まで1ずつ増加させた数値が登録ブロック制御手段によって加算するとともに解放メモリブロック保持手段に順次登録される。さらに前記更新レジスタ手段の保持するメモリブロック番号も登録ブロック制御手段によって前記更新前レジスタ手段に格納される。該減算値が負である場合は、前記解放メモリブロック保持手段に登録されているメモリブロック番号を該減算値の値の示す回数分最後に登録されたメモリブロック番号から順に前記更新前レジスタ手段に登録ブロック制御手段によって出力される。リフレッシュアドレスはリフレッシュアドレス生成手段によって一定間隔でカウントされることによりすることにより順次生成される。前記リフレッシュアドレス生成手段によってリフレッシュアドレスであるメモリブロック番号が生成された時点で、該リフレッシュアドレスに対応するメモリブロック番号が前記解放メモリブロック保持手段に登録されているかがリフレッシュ制御手段によって判定され、登録されていればメモリのリフレッシュを行われず、存在しなければメモリのリフレッシュがリフレッシュ制御手段によって行われる。
【0018】
【実施例】図1は本発明の実施例におけるコンピュータシステムの構成図であり、マイクロプロセッサ1、DRAM2、DRAMコントローラ3から構成されている。マイクロプロセッサ1は命令解読部11、演算部12、バス制御部13、レジスタファイル14、シフトレジスタ15によって構成されている。
【0019】命令解読部11はバス制御部13を通してDRAM2から命令およびデータを取り込み、取り込まれた命令を解読し、マイクロプロセッサ1の各部を制御する。またスタックフレームを確保する命令及び解放する命令を解読した場合は、スタックポインタの上位ビットをシフトレジスタ15に転送するよう制御する。演算部12は命令解読部11の制御によって演算を行なう。即ち、レジスタデータやメモリデータに対する演算を行い、結果をレジスタやメモリに格納する。
【0020】バス制御部13は命令解読部11指示によりDRAM2から命令およびデータを取り込む。レジスタファイル14はスタックポインタSPを含むレジスタ群である。シフトレジスタ15はスタックフレームを確保する命令及び解放する命令を解読したタイミングで、レジスタファイル14のスタックポインタSPの上位ビットが命令解読部11により入力される。その上位ビットの示す値はスタックフレーム確保又は解放後のスタックポインタの示すアドレスがどのメモリブロックに存在するかのメモリブロック番号を示している。ここでメモリブロックとは、DRAM2をブロック単位に分けたときの単位であり、メモリブロック番号とは、メモリブロックにつけられた番号である。入力された後1ビットずつシフトすることによって、そのメモリブロック番号をシリアルデータとしてDRAMコントローラ3に出力する。
【0021】DRAM2は主記憶装置であり、DRAMコントローラ3によって制御される。DRAMコントローラ3はDRAM2を制御する機能を有し、シフトレジスタ31、スタックトップブロック番号レジスタ32、減算器33、インクリメンタ34、解放メモリブロックテーブル35、リフレッシュカウンタ36、リフレッシュ制御部37、セレクタ38、セレクタ39から構成されている。
【0022】シフトレジスタ31は、マイクロプロセッサ1のシフトレジスタ15から出力されるシリアルデータがメモリブロック番号として入力されそれを保持する。スタックトップブロック番号レジスタ32は、減算器33の指示によりスタックトップが存在するメモリブロック番号を保持する。減算器33は、シフトレジスタ31の値が更新されたらシフトレジスタ31が保持するメモリブロック番号からスタックトップブロック番号レジスタ32が保持するメモリブロック番号の減算を行い減算した結果である減算値を保持する。
【0023】インクリメンタ34は、入力された値に1を加算した値を求めるが、セレクタ38が付随することによりインクリメンタとして機能する。解放メモリブロックテーブル35は、常に現在解放されているメモリブロック番号のみがスタック構造(ファーストインラストアウト)で登録されている。リフレッシュカウンタ36は、DRAMのリフレッシュアドレスを一定間隔でカウントすることにより順次生成する。このリフレッシュアドレスは、メモリブロック番号に一致する。
【0024】リフレッシュ制御部37は、減算器33の保持する減算値が更新されたらその減算値が正であるか、負であるか、あるいは0であるかを判定する。減算値が正である場合、さらにその減算値の値をdがd>0)とすると、まずスタックトップブロック番号レジスタ32の保持するメモリブロック番号をセレクタ39介して、解放メモリブロックテーブル35にプッシュする。次にスタックトップブロック番号レジスタ32の保持するメモリブロック番号をインクリメンタ34よって+1させたメモリブロック番号をセレクタ39を介して解放メモリブロックテーブル35にプッシュする。以下この動作として+1されたメモリブロック番号を基礎としてさらにインクリメンタ34に+1させることによってd−1回になるまでこの動作を繰り返す。この繰り返しの動作が終了後、シフトレジスタ31の値をスタックトップブロック番号レジスタ32に入力する。
【0025】減算値が0である場合は、何も行わない。減算値が負である場合、その減算値の値を−d(d>0)とすると、解放メモリブロックテーブル35のメモリブロック番号をスタックトップブロック番号レジスタ32にd回ホップさせる。またそれとは別に、DRAM2のリフレッシュを制御する機能を有し、DRAM2のリフレッシュを行う際、リフレッシュカウンタ36の値が解放メモリブロックテーブル35内に存在するかどうかを判定し、もし存在すればリフレッシュを行わず、存在しなければリフレッシュを行う。
【0026】セレクタ38は、リフレッシュ制御部37の指示によりスタックトップブロック番号レジスタ32からと、インクリメンタ34からの値を選択するスイッチである。インクリメンタ34に付随しインクリメントする機能を持つ。セレクタ39は、リフレッシュ制御部37の指示によりスタックトップブロック番号レジスタ32からと、インクリメンタ34からの値を選択するスイッチである。
【0027】以上のように構成された本実施例のコンピュータシステムについて、以下その動作を説明する。命令解読部11はバス制御部13を通して、DRAM2から命令およびデータを取り込み入力された命令を解読することによってマイクロプロセッサ1の各部を制御する。演算部12は命令解読部の制御によって演算を行なう。すなわち、レジスタファイル14内のレジスタデータやメモリデータに対する演算を行ない、結果をレジスタやメモリに格納する。
【0028】本実施例におけるマイクロプロセッサ1はスタックフレームの確保、解放を行う命令であるLINK命令、UNLINK命令を持つ。従ってプログラム中では、サブルーチンコール時にはLINK命令によって当該サブルーチンが使用するスタックフレームを確保し、サブルーチンからリターンするときにはUNLINK命令によってスタックフレームの解放操作を行なう。ここで、これらの命令はサブルーチンコールする毎にサブルーチン内で、宣言した変数をスタック上に配置するために領域を確保、解放する命令であり、サブルーチンの先頭にLINK命令、リターン命令の直前にUNLINK命令が置かれるものである。
【0029】LINK命令やUNLINK命令が実行されると、スタックフレームが操作され、レジスタファイル14内のスタックポインタSPの変更が行なわれる。変更後のSPが、DRAMのリフレッシュ単位に相当するサイズのメモリブロック番号のどの位置に相当するかを抽出するために、その変更のタイミングでレジスタファイル14内のスタックポインタSPの上位ビットが命令解読部11によって抜き出される。抜き出された上位ビットはシフトレジスタ15に命令解読部11によって入力される。即ち、シフトレジスタ15の値は、スタックフレーム確保または解放後のスタックポインタの示すアドレスがどのメモリブロックに存在するかを示しているメモリブロック番号である。つぎに、シフトレジスタ15は保持するメモリブロック番号を1ビットずつシフトすることによって、そのメモリブロック番号をシリアルデータとして出力する。このシリアル出力は、DRAMコントローラ3のシフトレジスタ31のシリアル入力に接続されている。
【0030】シフトレジスタ15よりシリアル出力されたメモリブロック番号をシフトレジスタ31が保持する。減算器33は、シフトレジスタ31の値が更新されたらシフトレジスタ31の保持するメモリブロック番号からスタックトップブロック番号レジスタ32の保持するメモリブロック番号の減算を行い減算した結果である減算値を保持する。減算値が正の場合は、スタック領域が以前より大きくなったことを示しており、現在のスタックトップブロック番号レジスタ32が示すメモリブロック番号からシフトレジスタ31が示すメモリブロック番号までのメモリブロックは解放できることになる。以下図2に従ってリフレッシュ制御部37の動作を説明する。まず減算値の値をd(d>0)の場合(ステップS21)、リフレッシュ制御部37は、まずスタックトップブロック番号レジスタ32の保持するメモリブロック番号を、解放メモリブロックテーブル35にプッシュする(ステップS22)。減算値の値dが1であるかどうかを判定して(ステップS23)、減算値の値が1でない場合は、スタックトップブロック番号レジスタ32の保持するメモリブロック番号にインクリメンタ34によって+1させ(ステップS24、そのメモリブロック番号を解放メモリブロックテーブル35にプッシュする(ステップS25)。以下この動作として+1されたメモリブロック番号を基礎としてさらにインクリメンタ34に+1させることによってd−1回になるまで繰り返す(ステップS26)。シフトレジスタ31の値をスタックトップブロック番号レジスタ32に入力する(ステップS27)。ステップS23にて、減算値の値dが1であると判定された場合は、ステップS27に行く。
【0031】例えば、d=1の場合は、スタックトップブロック番号レジスタ32の保持するメモリブロック番号を、解放メモリブロックテーブル35にプッシュする。その後シフトレジスタ31の値をスタックトップブロック番号レジスタ32に入力する。d=2の場合はまずスタックトップブロック番号レジスタ32の保持するメモリブロック番号を、解放メモリブロックテーブル35にプッシュする。次にスタックトップブロック番号レジスタ32の保持するメモリブロック番号にインクリメンタ34によって+1させ、そのメモリブロック番号を解放メモリブロックテーブル35にプッシュする。シフトレジスタ31の値をスタックトップブロック番号レジスタ32に入力する。d=3の場合は、まずスタックトップブロック番号レジスタ32の保持するメモリブロック番号を、解放メモリブロックテーブル35にプッシュする。次にスタックトップブロック番号レジスタ32の保持するメモリブロック番号にインクリメンタ34によって+1させ、そのメモリブロック番号を解放メモリブロックテーブル35にプッシュする。さらにその+1されたメモリブロック番号にさらに+1したメモリブロック番号を解放メモリブロックテーブル35にプッシュする。その後シフトレジスタ31の値をスタックトップブロック番号レジスタ32に入力する。
【0032】減算値が、負の場合は(ステップS21)、シフトレジスタ31が示すメモリブロック番号からスタックトップブロック番号レジスタ32が示すメモリブロック番号までのメモリブロックを確保する必要がある。したがって減算器の値を−d(d>0)とすると、解放メモリブロックテーブル35の内容をスタックトップブロック番号レジスタ32にd回ポップする(ステップS28)。したがってスタックトップブロック番号レジスタ32には、d回目にポップした値がスタックトップが存在するメモリブロック番号として保持される。
【0033】このように解放メモリブロックテーブル35には常に、現在解放されているメモリブロック番号だけが登録されているようにするわけである。また、リフレッシュカウンタ36は、DRAMのリフレッシュアドレスであるメモリブロック番号を一定間隔でカウントすることにより順次生成する。ここでリフレッシュ制御部37は、リフレッシュカウンタ36の値が解放メモリブロックテーブル35内に存在するかどうかを判定し、もし存在すればリフレッシュを行わず、存在しなければリフレッシュを行う。リフレッシュカウンタ36をインクリメントするたびに同様の判定をすることにより、解放メモリブロックテーブル35に登録されているメモリブロックに対するリフレッシュを抑止する。
【0034】以上のように動作することによって、スタックフレームの解放により無効なデータしか存在しないメモリブロックに対するリフレッシュを行わないことによって、コンピュータシステムの消費電力を低減できる。なお、本実施例では、スタックポインタから得られるメモリブロック番号による例を示したが、スタックアドレスそのものによっても同様のことが実現可能である。
【0035】なお、マイクロプロセッサが外部に通知する方法としてシリアルラインで通知する例を示したが、並列ラインで値を一度に通知することももちろん可能である。
【0036】
【発明の効果】以上説明したように、本発明はスタック領域に着目し解放されたスタックフレームの情報を外部に通知することができるマイクロプロセッサを提供することが出来る効果がある。またそのマイクロプロセッサによる情報より解放されたスタックフレームのように保持する必要のないデータのメモリブロックに対するリフレッシュを抑制することにより、消費電力を低減可能なコンピュータシステムを提供する効果がある。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013