JP2011210336A - 半導体装置及び制御方法 - Google Patents
半導体装置及び制御方法 Download PDFInfo
- Publication number
- JP2011210336A JP2011210336A JP2010079537A JP2010079537A JP2011210336A JP 2011210336 A JP2011210336 A JP 2011210336A JP 2010079537 A JP2010079537 A JP 2010079537A JP 2010079537 A JP2010079537 A JP 2010079537A JP 2011210336 A JP2011210336 A JP 2011210336A
- Authority
- JP
- Japan
- Prior art keywords
- address
- read
- cpu
- memory
- read address
- 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
Images
Landscapes
- Logic Circuits (AREA)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Electronic Switches (AREA)
Abstract
【課題】メモリの出力バッファの平均電流値を低減し、消費電流を抑制すること。
【解決手段】本発明に係る半導体装置は、メモリリードアドレスDの連続性を判定し、判定結果Hを出力するアドレス連続性判定回路23と、判定結果Hに基づいて、メモリリードアドレスDに対応するリードデータを出力するメモリの出力バッファ22の駆動能力を制御する駆動能力切り替え制御回路24と、CPUの要求リードアドレスAに対応するリードデータが当該CPUへ到達するまでの期間に、CPU要求リードアドレスAに連続する予想アドレスを生成するアドレス生成部12と、予想アドレスに対応するリードデータを格納するプリロードバッファ14を備える。
【選択図】図1
【解決手段】本発明に係る半導体装置は、メモリリードアドレスDの連続性を判定し、判定結果Hを出力するアドレス連続性判定回路23と、判定結果Hに基づいて、メモリリードアドレスDに対応するリードデータを出力するメモリの出力バッファ22の駆動能力を制御する駆動能力切り替え制御回路24と、CPUの要求リードアドレスAに対応するリードデータが当該CPUへ到達するまでの期間に、CPU要求リードアドレスAに連続する予想アドレスを生成するアドレス生成部12と、予想アドレスに対応するリードデータを格納するプリロードバッファ14を備える。
【選択図】図1
Description
本発明は、半導体装置及びその制御方法に関し、特に、マイクロコンピュータにおいてメモリからCPUへデータを転送する出力バッファの制御技術に関する。
マイクロコンピュータにおいて、CPU搭載のCPUチップとメモリマクロ搭載のメモリチップの動作周波数が異なる場合、CPUのリードアドレスが出力された後に、メモリのリードデータが読み出される。CPUにリードデータが到達するまでの遅延(アクセスレイテンシー)の悪化を防ぐためには、メモリの出力バッファの駆動能力を上げる必要がある。
しかし、メモリチップからCPUチップへのデータ転送を少ない遅延で実現するために、出力バッファの駆動能力を上げ、立ち上がりと立ち下がりを急峻に変化させた場合でも、平均電流値を低減する要求が高まっている。
特許文献1には、フラッシュメモリからの読み出しをより高速にするために、フラッシュメモリの出力バッファ駆動能力を外部制御コマンドで切り替える構成が開示されている。
図8は、特許文献1に記載のフラッシュメモリの構成を示す図である。このフラッシュメモリは、通常の読み出しモードと、より高速なバーストモードとを備える。このフラッシュメモリでは、CUI(コマンド・ユーザー・インターフェイス)41を介し、いずれのモードを使用して入出力データを行うかをあらかじめユーザーが設定する。
ユーザーがバーストモードに設定した場合、1番目のアドレスをラッチした後は、CUI41からYデコーダ27とXデコーダ31にDisable信号が出力される。これにより、アドレス入力バッファをDisable状態に設定し、入力が遮断される。そして、メモリデータの入出力バッファ33に、駆動能力を最大限に引き出すための切り替え制御信号が出力される。
特許文献1では、上記のような構成を備えることにより、読み出しモードに応じて、出力バッファの駆動能力を切り替えることができる。このため、入力の誤動作を考慮することなく、特定の読み出しモードでの出力バッファの駆動能力を最大限に引き出すことができ、さらなる高速化の要求にも対応することができる。
特許文献2には、バーストリードの最初のサイクルを含む1サイクル以上の期間、データ出力回路のドライブ能力を増強する技術が記載されている。データ出力回路は、バーストリード動作の開始を制御するRDB信号の変化に基づいて生成される制御信号Ctrlにより制御されている。
上述のように、特許文献1では、通常の読み出しモードとより高速なバーストモードの切り替えをCUI41で切り替えている。従って、バーストモードから通常の読み出しモードに切り替えるためには、コマンドの設定時間が必要となる。このため、出力バッファの駆動能力を最大限にしている時間が長くなり、ピーク電流値が増大し、平均電流値が増加するという問題がある。また、特許文献2では、データ出力回路は、バーストリードの最初の所定の期間高駆動能力状態を維持しているため、消費電流が増大するという問題がある。
本発明の一態様に係る半導体装置は、メモリリードアドレスの連続性を判定し、判定結果を出力するアドレス連続性判定回路と、前記判定結果に基づいて、前記メモリリードアドレスに対応するリードデータを出力するメモリの出力バッファの駆動能力を制御する駆動能力切り替え制御回路とを備えるものである。
本発明の一態様に係る半導体装置の制御方法は、メモリリードアドレスの連続性を判定して、判定結果を出力し、前記判定結果に基づいて、前記メモリリードアドレスに対応するリードデータを出力するメモリの出力バッファの駆動能力を制御する。
これにより、メモリリードアドレスの連続性を判定し、連続でないアドレスの場合は、出力バッファの駆動能力を上げて、メモリチップからCPUへのデータ転送を少ない遅延でプリロードバッファに格納した後、連続したアドレスを読み出す場合は、出力バッファの駆動能力を下げて、メモリからCPUへリードデータを転送することができる。このように、出力バッファの駆動能力を動的に制御することで、平均電流値を低減させることが可能となる。
本発明によれば、出力バッファの平均電流値を低減し、消費電流を低減することができる。
本発明の実施の形態に係る半導体装置の構成について、図1を参照して説明する。図1は、本実施の形態に係る半導体装置の構成を示す図である。図1に示す例では、半導体装置は、CPU搭載のCPUチップ10とメモリマクロ搭載のメモリチップ20の2つのチップを1つのパッケージに収めたSIP(System In Package)で構成される。
CPUチップ10は、CPU11、アドレス生成回路12、複数の入力バッファ13、プリロードバッファ14を備えている。メモリチップ20は、メモリマクロ21、複数の出力バッファ22、アドレス連続性判定回路23、駆動能力切り替え制御回路24を備えている。出力バッファ22は、メモリマクロ21のリードデータ幅分(例えば、137個)設けられている。
ここでは、CPU搭載のCPUチップ10の動作周波数は、メモリマクロ搭載のメモリチップ20より、高速で動作するものとする。なお、図1においては、各部の同期をとるための、クロック回路や分周回路の図示を省略している。CPU11は、システム・クロックに同期して動作し、アドレス生成回路12、アドレス連続性判定回路23、駆動能力切り替え制御回路24は、システム・クロックを4分周した4分周クロックに同期して動作するものとする。
CPU11は、CPU要求リードアドレスAに応じてプリロードバッファ14からのリードデータBを読みだす。CPU11は、読みだしたリードデータBを内部処理し、図示しないプログラムカウンタを制御し、次の命令コードであるCPU要求リードアドレスA及びリード・イネーブル信号Cをアドレス生成回路12に出力する。
アドレス生成回路12には、CPU要求リードアドレスAとリード・イネーブル信号Cが入力される。アドレス生成回路12は、入力バッファ13がイネーブルであれば、CPU要求リードアドレスAを最初のリードアドレスと判断する。このときのアドレスをnとする。メモリチップ20の動作周波数はCPUチップ10の動作周波数より遅いので、CPU要求リードアドレスAに対応するリードデータがCPU11に到達するまでに遅延時間が生じる。
アドレス生成回路12は、その遅延時間の期間に、次のリードアドレスを先読みして、予想アドレスを生成する。つまり、アドレス生成回路12は、CPU11からの最初のアドレスをもとに、次にCPU11から要求があると予想される予想アドレスをメモリリードアドレスDとしてメモリチップ20へ出力する。
予想アドレスとは、アクセスレイテンシーを改善するために生成される、最初のアドレスから連続したアドレスである。アドレス生成回路12は、最初のアドレスnに+1したアドレスn+1を予想アドレスとしてメモリマクロ21とアドレス連続性判定回路23に出力する。
CPU要求リードアドレスAは、アドレス生成回路12を介して、プリロードバッファ14に入力される。プリロードバッファ14は、CPU要求リードアドレスAに対応するリードデータが格納されているか否かを判定する。
プリロードバッファ14にCPU要求リードアドレスAに対応するリードデータが格納されていなければ、プリロードバッファ14はアドレス生成回路12に判定結果であるリード要求信号Eを出力する。アドレス生成回路12は、リード要求信号Eに応じてメモリチップ20にCPU要求リードアドレスAをメモリリードアドレスDとして出力する。従って、メモリリードアドレスDは、CPU要求リードアドレスA又は予想アドレスのいずれかとなる。
プリロードバッファ14にCPU要求リードアドレスAに対応するリードデータが格納されている場合、プリロードバッファ14は、アドレス生成回路12にリード要求信号Eを出力しない。この場合、プリロードバッファ14は、CPU11に対し、CPU要求リードアドレスAに対応するリードデータBを出力する。
メモリマクロ21は、メモリリードアドレスDを入力とし、メモリリードアドレスDに対応するリードデータF0及び読み出しデータ・レディ信号G0を出力バッファ22に出力する。
アドレス生成回路12から出力されたメモリリードアドレスDは、メモリマクロ21に出力されると同時に、アドレス連続性判定回路23にも出力される。アドレス連続性判定回路23は、メモリリードアドレスDの連続性を判定する。アドレス連続性判定回路23は、次にリードするアドレスと比較するために、前回リードしたアドレスを格納する。
アドレス連続性判定回路23は、前回リードしたアドレスと次にリードするアドレスの比較を行い、次のアドレスが前回リードしたアドレスに+1増加したアドレスであれば、連続性があると判断する。アドレス連続性判定回路23は、メモリリードアドレスDを入力とし、判定結果Hを駆動能力切り替え制御回路24に出力する。
逆に、次にリードするアドレスが前回リードしたアドレスに+1増加したアドレスでなければ、アドレス連続性判定回路23はアドレスの連続性がないと判断する。アドレス連続性判定回路23は、例えば、リードアドレスに連続性があれば、判定結果Hとしてロウ・レベル出力し、連続性がなければ判定結果Hとしてハイ・レベルを出力する。
駆動能力切り替え制御回路24には、アドレス連続性を示す判定結果Hが入力される。駆動能力切り替え制御回路24は、判定結果Hに基づいて、各出力バッファ22へ駆動能力切り替え信号Iを出力する。具体的には、アドレス連続性判定回路23において、メモリリードアドレスDの連続性が検出された場合に、駆動能力切り替え制御回路24は、出力バッファ22の駆動能力を低減させる。バッファの駆動能力の低減については、後に詳述する。
駆動能力切り替え制御回路24は、前回リードしたデータを出力している期間であって、次のデータを出力する前のタイミングで駆動能力切り替え信号Iを変化させる。例えば、判定結果Hがハイ・レベルであれば、駆動能力切り替え信号Iがハイ・レベルの信号を複数の出力バッファ22へ出力する。駆動能力切り替え信号Iがハイ・レベルで駆動能力が上がる出力バッファ22は、前回のリードデータの出力中に、駆動能力を上げるように切り替えられる。
最上部に図示されている出力バッファ22には、読み出しデータ・レディ信号G0と駆動能力切り替え信号Iが入力される。この出力バッファ22は、対応する入力バッファ13に対し読み出しデータ・レディ信号G1を出力する。また、他の出力バッファ22には、それぞれメモリマクロ21からのリードデータF0と駆動能力切り替え信号Iが入力される。これらの出力バッファ22は、リードデータF1をそれぞれ対応する入力バッファ13に出力する。
プリロードバッファ14は、入力バッファ13からのリードデータを入力とし、リードアドレスと対応させてデータを格納する。プリロードバッファ14は、アドレス生成回路12により先読みされた予想アドレスに対応するリードデータを順次内部アドレスレジスタ(不図示)に格納する。
例えば、最初のCPU要求リードアドレスAのアドレスをnとした場合、プリロードバッファ14は、予想アドレスn+1、n+2、・・・に対応するリードデータを順次格納する。また、プリロードバッファ14は、入力バッファ13からの読み出しデータ・レディ信号G2を入力として、データ・レディ信号JをCPU11に出力する。
ここで、図2を参照して出力バッファ22の構成例について説明する。図2に示すように、出力バッファ22は、1段目バッファ30、2段目バッファ31を備える。1段目バッファ30は、PMOSトランジスタMP1、MP2、NMOSトランジスタMN1、MN2を有する。2段目バッファ31は、PMOSトランジスタMP3、MP4、NMOSトランジスタMN3、MN4を有する。
PMOSトランジスタMP1、MP2、MP3、MP4のゲートには、スイッチングデバイス32が接続されている。NMOSトランジスタMN1、MN2、MN3、MN4のゲートには、スイッチングデバイス33が接続されている。
PMOSトランジスタMP1、MP2のゲートには、メモリマクロ21からのリードデータF0がインバータにより反転された信号が入力される。NMOSトランジスタMN1、MN2のゲートには、メモリマクロ21からのリードデータF0が入力される。
スイッチングデバイス32、33は、駆動能力切り替え信号Iに応じて、1段目バッファ30と2段目バッファ31の接続を切り替える。具体的には、スイッチングデバイス32は、2段目バッファ31のPMOSトランジスタMP3とMP4のゲートへの入力を、電源電圧とPMOSトランジスタMP1及びMP2のゲート信号とに切り替える。スイッチングデバイス33は、駆動能力切り替え信号Iに応じて、2段目バッファ31のNMOSトランジスタMN3とMN4のゲートへの入力を、電源電圧とNMOSトランジスタMN1及びMN2のゲート信号とに切り替える。
ここで、出力バッファ22の駆動能力の切り替えについて説明する。出力バッファ22では、駆動能力切り替え信号Iの極性によって、1段目バッファ30と2段目バッファ31の接続が切り替えられる。1段目バッファ30と2段目バッファ31とを接続した場合、トランジスタの並列接続の段数が増え、トランジスタのON抵抗が低下する。これにより、トランジスタがONの時の電流が1段目バッファ30だけの場合よりも増加し、駆動能力が上がる。ただし、ON抵抗が低下することにより、消費電流が上がる。逆に、1段目バッファ30のみが動作する場合は、1段目バッファ30と2段目バッファ31とを接続した場合よりも駆動能力が下がるため、消費電流は低減する。
ここで、図3を参照して、半導体装置の動作について説明する。図3は、本実施の形態に係るバッファの制御方法を説明するためのフローチャートである。図3に示すフローチャートは、CPU11からのCPU要求リードアドレスAとアドレス生成回路12で生成された予想アドレスの連続性を判定し、出力バッファ22の駆動能力を切り替えるフローチャートである。
まず、プリロードバッファ14、駆動能力切り替え制御回路24には、初期値が設定される(S1)。具体的には、プリロードバッファ14にFFが設定され、アドレス連続性判定回路23内のレジスタにFFが設定される。なお、ここでは、初期値としてFFとしたが、通常選ばれないアドレスを指定すればよくFFでなくてもよい。
そして、CPU11からCPU要求リードアドレスAが発行されたか否かが判断される(S2)。CPU要求リードアドレスAが発行された場合(S2Yes)、CPU11は、CPU要求リードアドレスAをアドレス生成回路12に出力する。このCPU要求リードアドレスAをアドレスnとする。
CPU要求リードアドレスAは、アドレス生成回路12を経由し、プリロードバッファ14に出力される。そして、当該CPU要求リードアドレスAがプリロードバッファ14に格納されているかが判断される(S3)。
CPU要求リードアドレスAに対応するリードデータが格納されていれば(S3Yes)、CPU11は、プリロードバッファ14からアドレスnに対応するリードデータBをリードする(S11)。一方、CPU要求リードアドレスAに対応するリードデータが格納されていなければ、アドレス生成回路12にリード要求信号Eを出力する(S4)。
そして、アドレス生成回路12からアドレスn(CPU要求リードアドレスA)に対応するメモリリードアドレスDが出力される(S5)。一方、CPU11からCPU要求リードアドレスAが発行されていない場合(S1No)、アドレス生成回路12からアドレスn=n+1のメモリリードアドレスDが出力される(S6)。S6においては、次のCPU要求リードアドレスAが発行される間、順次+1された予想アドレスであるメモリリードアドレスDが自動的に繰り返し発行される。
そして、アドレス連続性判定回路23で、前回のリードアドレスと今回のリードアドレスとの比較が実行され、アドレスに連続性があるかが判定される(S7)。アドレス連続性判定回路23における比較は、今回のメモリリードアドレスDから前回メモリリードアドレスDを減算することにより行われる。ここで、前回のリードアドレスがアドレスnであったものとする。S6において発生された予想アドレスはn+1であるため、(n+1)−n=1となる。すなわち、今回のリードアドレスnは前回のリードアドレス+1である。
この場合、アドレス連続性判定回路23はアドレスに連続性があると判断し(S7Yes)、出力バッファ22の駆動能力が下げられる(S8)。具体的には、判定結果Hとしてロウ・レベルが出力される。これにより、駆動能力切り替え制御回路24からの駆動能力切り替え信号Iがロウ・レベルとなる。この駆動能力切り替え信号Iに応じて、出力バッファ22の1段目バッファ30のみが動作するように、スイッチングデバイス32、33が制御されることで、出力バッファ22駆動能力を下げ、消費電流を低減することができる。そして、この予想アドレスn+1に対応するリードデータF0がメモリマクロ21から読みだされ、プリロードバッファ14に格納される(S10)。
ここで、S2において次に発行されたCPU要求リードアドレスAのアドレスをkとする。k=n+1である場合、このCPU要求リードアドレスAに対応するリードデータBはすでにプリロードバッファ14に格納されているため、S3においてYesとなる。そして、CPU11は、プリロードバッファ14からアドレスkに対応するリードデータBをリードする(S11)。
一方、kがn+1とは全く異なる値であった場合には、S3においてNoとなる。この場合、アドレス生成回路12にリード要求信号Eを出力し(S4)、アドレス生成回路12からアドレスk(CPU要求リードアドレスA)に対応するメモリリードアドレスDが出力される(S5)。この発行されたアドレスkと、前回のアドレスnとは全く異なるため、その差分は1とはならない。この場合、アドレス連続性判定回路23はアドレスに連続性がないと判断し(S7No)、出力バッファ22の駆動能力が上げられる(S9)。
具体的には、判定結果Hとしてハイ・レベルが出力される。これにより、駆動能力切り替え制御回路24からの駆動能力切り替え信号Iがハイ・レベルとなる。この駆動能力切り替え信号Iに応じて、出力バッファ22の1段目バッファ30及び2段目バッファ31のいずれも動作するように、スイッチングデバイス32、33が制御されることで、出力バッファ22駆動能力を上げ、読み出しの遅延を少なくすることができる。
そして、出力バッファ22が適切な駆動能力に制御された状態で、当該メモリリードアドレスDに対応するリードデータF0がメモリマクロ21から読みだされ、プリロードバッファ14に格納される(S10)。そして、当該メモリリードアドレスDに対応するリードデータBがCPU11によりプリロードバッファ14からリードされる(S11)。
特許文献2では、駆動能力を高める所定の期間が決定されているため、CPUの実行命令のように不定期に条件分岐が発生し、アドレスの連続性が失われた場合には対応できなかった。
しかしながら、本発明では、前回メモリリードアドレスDと今回のメモリリードアドレスDと比較することによりアドレスの連続性を判定した結果を用いて、出力バッファ22の駆動能力を動的に制御することができる。また、CPUチップ10には、CPU要求リードアドレスAに基づいて、連続する次の予想アドレスを生成するアドレス生成部104と、予想アドレスに対応するリードデータを連続して格納するプリロードバッファ14とが設けられている。
これにより、メモリリードアドレスDが連続でない場合は、メモリマクロ21から最初の読み出し時、出力バッファの段数を増やして駆動能力を上げることにより、可能な限り速くデータを読み出して、先読みしたメモリリードアドレスDに対応するリードデータをプリロードバッファに格納することができる。
つまり、メモリリードアドレスDの連続性を常時検出することで、CPU11からの命令の条件分岐が発生した場合に、バッファ能力を上げ、アクセスレイテンシィの悪化を防止することができる。すなわち、出力バッファ22の駆動能力を高くする高駆動状態は、アドレス生成回路12により自動的に予想アドレスが生成され、アドレスの連続性が比較されるまでの期間である。
メモリリードアドレスDが連続である場合は、出力バッファ段数を減らして駆動能力を下げることにより、ピーク電流値を抑えることができる。すなわち、プリロードバッファ14からリードデータBが出力される際には、出力バッファ22の駆動能力が低い低駆動状態となっており、消費電流を抑制することができる。つまり、出力バッファ22の駆動能力の切り替え動作時間を予想アドレスにより速くできるため、出力バッファの消費電流を削減できる。
ここで、図4を参照して、本実施の形態に係る半導体装置の動作について具体的に説明する。図4は、実施の形態に係る制御方法を説明するためのタイミングチャートである。CPU11のリード動作について、CPU要求リードアドレスAの出力から当該CPU要求リードアドレスAに対応するリードデータBがCPU11に到達するまでの動作を説明する。図4において、このリード動作の流れを矢印で示している。
なお、図4においては、出力バッファ22から出力されるリードデータF1、読み出しデータ・レディ信号G1は急峻に立ち上がるように図示したが、実際の立ち上がり及び立下りがなまった波形となる。図5に示すように、読み出しデータ・レディ信号G1は、読み出しデータ・レディ信号G0から所定の遅延をもって立ちあがる。また、駆動能力が小さいほど波形がなまる。図5においては、読み出しデータ・レディ信号G1のみを図示したが、リードデータF1についても同様である。また、入力バッファ13においても同様に、波形のなまり及び遅延が発生する。
まず、アドレスnのCPU要求リードアドレスAがCPU11から出力される。CPU要求リードアドレスAは、アドレス生成回路12に入力され、システム・クロックの4分周クロックに同期して、メモリチップ20へのメモリリードアドレスDとしてメモリチップ20へ出力される。
メモリチップ20に入力されたメモリリードアドレスDは、メモリマクロ21に入力されると同時にアドレス連続性判定回路23に入力される。アドレス連続性判定回路23では、前回リードしたメモリリードアドレスDと今回入力されたメモリリードアドレスDとが比較される。
図4に示す例では、前回リードしたメモリリードアドレスDはn+10であり、今回リードされるメモリリードアドレスDはnである。これらの差分は+10であり、アドレス連続性判定回路23で連続性のないリードアドレスと判断される。アドレス連続性判定回路23にメモリリードアドレスDが入力された後の最初の4分周クロックの立ち上がりタイミングで、4分周クロックの1クロック分ハイ・レベルとなる判定結果Hが駆動能力切り替え制御回路24へ出力される。
駆動能力切り替え制御回路24では、出力バッファ22からアドレスnに対応するリードデータF1(n)が出力されるタイミングの前の4分周クロックの立ち下がりエッジで、出力バッファ22の駆動能力が最大になるように、複数の出力バッファ22に4分周クロックの1クロック分ハイ・レベルとなる能力切り替え信号Iを出力する。
アドレスnのリードデータ(n)は、最大限の駆動能力で出力バッファ22から出力され、メモリチップ20からの読み出しデータ・レディ信号G1の立下りのタイミングで、入力バッファ13から出力されプリロードバッファ14へ格納される。このとき、能力切り替え信号Iは、ロウ・レベルとなっており、出力バッファ22はその駆動能力が最少となるとなっている。このため、読み出しデータ・レディ信号G2、リードデータF2は、システム・クロックの2クロック分遅れる。
プリロードバッファ14は、リードデータを格納した後、CPU11にアドレスnに対応するリードデータ(n)とデータ・レディ信号Jを出力する。CPU11は、データ・レディ信号Jの立ち上がりエッジのタイミングでリードデータ(n)をリードする。
なお、図6に出力バッファ22の駆動能力を切り替えた場合の、各信号波形を示す。図6において、Xが出力バッファ22の駆動能力を最大に設定した場合、Yが出力バッファの駆動能力を最少に設定した場合を示している。図6に示すように、出力バッファ22の駆動能力を切り替えた場合でも、リードデータF2に同期した読み出しデータ・レディ信号G2の立下りエッジでプリロードバッファ14からCPU11へデータ・レディ信号Jが出力される。
このため、CPU11は、出力バッファ22の駆動能力の遅延が発生したとしても、データ・レディ信号Jのタイミングで、リードデータBのリードを行うことにより、正しくリードデータBを読みだすことが可能である。CPU11は、CPU要求リードアドレスAに対応するリードデータBをリードした後に、次のCPU要求リードアドレスAを発行する。
なお、プリロードバッファ14のデータ・レディ信号Jの出力は、CPU11から出力されたCPU要求リードアドレスAのリードデータが、プリロードバッファ14に格納されていない場合、CPU要求リードアドレスAのデータがプリロードバッファ14に格納されるまで中止される。データ・レディ信号120の出力を中止する理由は、アドレス生成回路12でアドレスを生成し、先読みしてプリロードバッファ14に格納した無効データをCPU11が誤って読み出さないようにするためである。
この例では、CPU11のCPU要求リードアドレスAが発行されてから、CPU11にリードデータが到達する期間は、システム・クロックで23クロックが最速の期間となる(期間A)。アドレス生成回路12は、アドレスn(CPU要求リードアドレスA)に対応するメモリリードアドレスDを出力した後、先読みのために、システム・クロックの4分周クロックの1周期毎に連続した予想アドレスn+1、n+2、n+3、・・・を出力する。この先読みされた予想アドレスに対応するリードデータは、CPUチップ10のプリロードバッファ14に格納される。
CPU11からのCPU要求リードアドレスAが先読みされたメモリリードアドレスDに一致すれば、4クロック毎にCPU11にデータが出力される。つまり、最初の読み出しは23クロックでCPU11が読み出し、その後、出力バッファ22の駆動能力を下げた後の最初のメモリリードアドレスDに対するリード動作には6クロック必要となる。それ以降のメモリリードアドレスDに対するリードデータBは、4クロック毎にCPU11に読み出される。つまり、連続読み出し中である期間Bは、先読みしてCPU要求リードアドレスAに対応するリードデータBが到達するまでの遅延を少なくしている。
次に、動的に出力バッファ22の駆動能力を切り替えることで、メモリチップ20とCPUチップ10間の遅延を減らし、アクセスレイテンシーの悪化を最小限に抑える効果について説明する。
メモリマクロ動作がCPU動作より動作スピードが遅いことによるアクセスレイテンシーの悪化は、次のCPU要求リードアドレスAを発生する前に、最初のCPU要求リードアドレスAをもとに、アドレス生成回路12にてアドレスn+1、n+2、n+3のアドレス生成し、先にプリロードバッファ110に対応するリードデータを格納することで抑制される。
CPU11は、最初のCPU要求リードアドレスAとしてアドレスnを出力すると同時にリード・イネーブル信号Cをアドレス生成回路12へ出力する。これは、システム・クロックに換算すると最大2クロックを必要とする。アドレス生成回路12では、アドレスnとアドレス入力ラッチ・イネーブル信号とデータ出力ラッチ・イネーブル信号をメモリチップ20へ出力する。これは、システム・クロックで1クロック必要とする。
アドレスnは、リード・イネーブル信号Cのハイ・レベルのタイミングで、4分周クロックの1周期の期間、メモリチップ20へ出力される。アドレス入力ラッチ・イネーブル信号は、アドレスnが出力される期間イネーブルになる。なお、ここでは図示していないが、データ出力ラッチ・イネーブル信号は、アドレス入力ラッチ・イネーブル信号から4分周クロックの1周期遅れのタイミングでイネーブルとなる。
CPUチップ10から出力された各信号は、メモリチップ20に到達するまで、図示しないバッファの立ち上がり・立下がりの遅延によりシステム・クロックで2.5クロックの遅延が生じる。つまり、メモリリードアドレスDと4分周クロックとアドレス入力ラッチ・イネーブル信号とデータ出力ラッチ・イネーブル信号は、それぞれチップ間において遅延が発生し、システム・クロックで約2.5クロック遅れた信号となる。メモリマクロ21に各信号が到達してから、システム・クロックで11クロック後にアドレスnに対するデータ(n)が出力される。
メモリチップ20からCPUチップ10への出力バッファ22の立ち上がり・立下り遅延によりシステム・クロックに換算すると最大2クロックの遅延が生じるものとする。読み出しデータ・レディ信号G1は、リードデータF1と同じタイミングでCPUチップ10に到達する。データ・レディ信号G1の立下りエッジを検出して、データ・レディ信号Jがプリロードバッファ14で生成される。前記の遅延時間を合計し、その他、同期化による遅延を加算すると、アクセスレイテンシーは23クロックとなる。
出力バッファ22の駆動能力を下げた場合は、出力バッファ22の立ち上がりと立下りの時間が長くなり、入力バッファ13との間にシステム・クロックに換算すると最大2クロックの遅延が発生する。その結果、アクセスレイテンシーは、25クロックとなる。
このように、出力バッファ22の駆動能力は、リードデータBが到達するまでの遅延に大きく影響する。出力バッファ22の駆動能力を上げた場合、期間Aは、システム・クロックの23クロック分である。出力バッファ22の駆動能力を下げた場合は、期間Aは、システム・クロックの25クロック分となる。図4において、期間Aはバッファ能力を上げた場合を示している。
つまり、出力バッファ22の駆動能力を上げた状態から下げた状態へ変更したときの遅延の増加分は、システム・クロックに換算すると最大2クロック分である。期間Bにおいて、出力バッファの駆動能力を下げた状態へ変更すると、リードデータF1はリードデータF0に対してシステム・クロックに換算すると最大2クロック分遅延する。同様に、読み出しデータ・レディ信号G1も、読み出しデータ・レディ信号G0に対し、システム・クロックに換算すると最大2クロック分遅延する。
出力バッファ22の駆動能力を下げた状態へ変更した場合、システム・クロックに換算すると最大2クロック分遅延が伝播し、最終的にプリロードバッファ14の出力タイミングに影響し、データ・レディ信号J、リードデータBも遅延する。
図4にて、期間Bは、出力バッファの駆動能力を下げた期間であり、最初のアドレスをもとに、インクリメントさせた連続読み出し期間である。期間Bにリードするアドレスは、CPU11が最初のアドレス以降に要求する予想アドレスである。
期間Bにおいては、定期的に予想アドレスが発行されるために、4クロックで対応するリードデータがプリロードバッファ14に格納され、CPU11のリード要求に備えることができる。このときのアクセスレイテンシーは、4クロックである。
消費電流を低減させるだけの目的であれば、期間Aと期間Bともに出力バッファ22の駆動能力を最小に設定すればよいことになるが、この場合、期間Aのアクセスレイテンシーが悪化する。すなわち、期間Aのアクセスレイテンシーの悪化を防ぐために、当該期間は、出力バッファ22の駆動能力は最大とする。
一方、期間Bの連続アドレス読み出し期間では、出力バッファ22の駆動能力を下げても、期間Aから期間Bへの遷移時にシステム・クロックに換算すると最大2クロック分の遅延が発生するのみで、以降のアクセスレイテンシーは4クロックである。すなわち、期間Bで出力バッファ22の駆動能力を下げた影響は少ない。
図7に、メモリリードアドレスDのアドレスが連続性を有している場合から、不連続に変更される場合のタイミングチャートを示す。図7に示す例では、CPUの実行命令により不定期に条件分岐が発生し、アドレスn+3からn+10に不連続に変更されている。
このようにアドレスが不連続である場合、図4の期間Aと同様に、メモリマクロ21からリードデータF0の読み出しが行われる。アドレス連続性判定回路23では、前回リードされたアドレスn+3と今回リードされるアドレスn+10とが比較され、不連続であると判定される。このとき、出力バッファ22の駆動能力が最大値に設定され、高速に読み出しが実行される。なお、プリロードバッファ14にすでに格納された、アドレス生成回路12によりあらかじめ生成された予想アドレスn+4〜n+7に対応するリードデータは不要(捨てデータ)となる。
以上説明したように、メモリリードアドレスDの連続性を常時検出することで、CPU11からの命令の条件分岐が発生した場合に、バッファ能力を上げ、アクセスレイテンシィの悪化を防止することができる。また、メモリリードアドレスDが連続である場合は、出力バッファ段数を減らして駆動能力を下げることにより、ピーク電流値を抑えることができる。
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
10 CPUチップ
11 CPU
12 アドレス生成回路
13 入力バッファ
14 プリロードバッファ
20 メモリチップ
21 メモリマクロ
22 出力バッファ
23 アドレス連続性判定回路
24 駆動能力切り替え制御回路
30 1段目バッファ
31 2段目バッファ
32、33 スイッチングデバイス
A CPU要求リードアドレス
B リードデータ
C リード・イネーブル信号
D メモリリードアドレス
E リード要求信号
F リードデータ
G 読み出しデータ・レディ信号
H 判定結果
I 駆動能力切り替え信号
J データ・レディ信号
MP1、MP2、MP3、MP4 PMOSトランジスタ
MN1、MN2、MN3、MN4 NMOSトランジスタ
11 CPU
12 アドレス生成回路
13 入力バッファ
14 プリロードバッファ
20 メモリチップ
21 メモリマクロ
22 出力バッファ
23 アドレス連続性判定回路
24 駆動能力切り替え制御回路
30 1段目バッファ
31 2段目バッファ
32、33 スイッチングデバイス
A CPU要求リードアドレス
B リードデータ
C リード・イネーブル信号
D メモリリードアドレス
E リード要求信号
F リードデータ
G 読み出しデータ・レディ信号
H 判定結果
I 駆動能力切り替え信号
J データ・レディ信号
MP1、MP2、MP3、MP4 PMOSトランジスタ
MN1、MN2、MN3、MN4 NMOSトランジスタ
Claims (8)
- メモリリードアドレスの連続性を判定し、判定結果を出力するアドレス連続性判定回路と、
前記判定結果に基づいて、前記メモリリードアドレスに対応するリードデータを出力するメモリの出力バッファの駆動能力を制御する駆動能力切り替え制御回路と、
を備える半導体装置。 - CPUの要求リードアドレスに対応するリードデータが当該CPUへ到達するまでの期間に、前記CPU要求リードアドレスに連続する予想アドレスを生成するアドレス生成部と、
前記予想アドレスに対応するリードデータを格納するプリロードバッファと、
をさらに備え、
前記アドレス連続性判定回路は、前記メモリリードアドレスとして入力される前記CPU要求リードアドレス又は予想アドレスの連続性を判定することを特徴とする請求項1に記載の半導体装置。 - 前記アドレス連続性判定回路は、前記メモリリードアドレスと、該アドレス連続性判定回路に格納された前回のメモリリードアドレスとを比較することにより、連続性を判定することを特徴とする請求項1又は2に記載の半導体装置。
- 前記駆動能力切り替え制御回路は、前記メモリリードアドレスが連続である場合、前記出力バッファの駆動能力を、前記メモリリードアドレスが連続でない場合よりも下げることを特徴とする請求項1、2又は3に記載の半導体装置。
- メモリリードアドレスの連続性を判定して、判定結果を出力し、
前記判定結果に基づいて、前記メモリリードアドレスに対応するリードデータを出力するメモリの出力バッファの駆動能力を制御する、
半導体装置の制御方法。 - CPUの要求リードアドレスに対応するリードデータが当該CPUへ到達するまでの期間に、前記CPU要求リードアドレスに連続する予想アドレスを生成し、
前記予想アドレスに対応するリードデータをプリロードバッファに格納し、
前記メモリリードアドレスとして入力される前記CPU要求リードアドレス又は予想アドレスの連続性を判定することを特徴とする請求項5に記載の半導体装置の制御方法。 - 前記メモリリードアドレスと、前回のメモリリードアドレスとを比較することにより、連続性を判定することを特徴とする請求項5又は6に記載の半導体装置の制御方法。
- 前記メモリリードアドレスが連続である場合、前記出力バッファの駆動能力を、前記メモリリードアドレスが連続でない場合よりも下げることを特徴とする請求項5、6又は7に記載の半導体装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010079537A JP2011210336A (ja) | 2010-03-30 | 2010-03-30 | 半導体装置及び制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010079537A JP2011210336A (ja) | 2010-03-30 | 2010-03-30 | 半導体装置及び制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011210336A true JP2011210336A (ja) | 2011-10-20 |
Family
ID=44941219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010079537A Pending JP2011210336A (ja) | 2010-03-30 | 2010-03-30 | 半導体装置及び制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011210336A (ja) |
-
2010
- 2010-03-30 JP JP2010079537A patent/JP2011210336A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5282560B2 (ja) | 半導体装置及びシステム | |
US7702944B2 (en) | Dynamic frequency scaling sequence for multi-gigahertz microprocessors | |
US8358161B2 (en) | Buffer enable signal generating circuit and input circuit using the same | |
US7405995B2 (en) | Semiconductor storage device | |
JP2007018648A (ja) | 半導体装置 | |
US20090235057A1 (en) | Cache memory control circuit and processor | |
JP2006203568A (ja) | スルーレート制御装置、出力バッファ及び情報処理装置 | |
KR101092999B1 (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
US8729943B2 (en) | Phase interpolating apparatus and method | |
US10019170B2 (en) | Controlling timing and edge transition of a delayed clock signal and data latching methods using such a delayed clock signal | |
US7742345B2 (en) | Data input circuit of semiconductor memory apparatus and method of inputting the data | |
JP2011210336A (ja) | 半導体装置及び制御方法 | |
KR20100064851A (ko) | 지연라인 | |
WO2012060066A1 (ja) | 遅延回路、遅延制御装置、メモリ制御装置及び情報端末機器 | |
KR100632611B1 (ko) | 반도체 메모리 장치의 명령 디코더 | |
JP2014106969A (ja) | Plcシステムでのデータ処理装置及びその方法 | |
KR101468677B1 (ko) | 아비터를 이용한 메모리의 억세스 제어회로 | |
JP5188119B2 (ja) | メモリコントローラ | |
JP2009038128A (ja) | 半導体集積回路装置 | |
KR100930393B1 (ko) | 내부전압 제어 장치 및 이를 이용한 반도체 메모리 장치 | |
KR20090063606A (ko) | 어드레스 래치 클럭 제어장치 | |
JP2009048264A (ja) | 半導体集積回路装置 | |
JP2005130493A (ja) | 入力信号のトランジション区間で安定的に動作するパスゲート回路、これを備えるセルフリフレッシュ回路、及びパスゲート回路の制御方法 | |
JP4536736B2 (ja) | 半導体装置システム及び半導体装置 | |
US7990801B2 (en) | Internal write/read pulse generating circuit of a semiconductor memory apparatus |