JP4549073B2 - メモリ制御回路 - Google Patents
メモリ制御回路 Download PDFInfo
- Publication number
- JP4549073B2 JP4549073B2 JP2004037205A JP2004037205A JP4549073B2 JP 4549073 B2 JP4549073 B2 JP 4549073B2 JP 2004037205 A JP2004037205 A JP 2004037205A JP 2004037205 A JP2004037205 A JP 2004037205A JP 4549073 B2 JP4549073 B2 JP 4549073B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- memory
- control circuit
- state
- banks
- 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.)
- Expired - Fee Related
Links
Images
Description
上記のメモリ制御回路は、CPUからの指示に従って、メモリを構成する複数のバンクの何れかを選択するとともに、選択されたバンク内における所定アドレスを指定してデータの書き込みまたは読み出しを行うこととなる(例えば、特許文献1参照)。
アドレスバスは、CPUとメモリ制御回路間でのメモリのアドレスの転送経路であり、読み出しまたは書き込みを行うメモリのアドレスがCPUから指定される。
データバスは、CPUとメモリ制御回路間での指定されたメモリの読み出しや書き込みデータの転送経路となる。
TACSは、メモリのアドレスを指定するが、メモリを活性化しない状態を示す信号である。
TCOSは、メモリを活性化するが、書き込み又は読み出しを行わない状態を示す信号である。
TACCは、書き込み又は読み出しを実行する状態を示す信号である。
TCOHは、書き込み又は読み出しの終了後にメモリを非活性化しない状態を示す信号である。
通常メモリアクセスの状態は、ステート信号がIDLE→TACS→TCOS→TACC→TCOH→IDLEの順で変化することにより、このステート信号に応じた状態を経て変化する。メモリ制御回路は、このステート信号の長さやタイミングを制御することができる。
アドレス信号ADDRは、アドレスバスによって指定されたメモリのアドレスを、メモリ制御回路がメモリに対して指定するための信号である。したがってアドレス信号ADDRにはアドレスバスと同じアドレスが指定される。このメモリのアドレスの指定開始となるのは、メモリ制御回路がIDLEの状態から他の状態へと変化するタイミングである。また、メモリ制御回路が、このアドレスを指定する期間は、ステート信号TACS、TCOS、TACC、TCOHが順次変化する期間と同一のクロック期間である。
ハイバイトセレクト信号nHBは、メモリの上位側、例えば16ビットの内上位8ビット(1バイト)を選択する信号であり、アクセスするメモリが16ビットメモリの時のみ活性化する信号である。
ライトハイバイト信号nWRHは、メモリに書き込みを行う信号でありデータバスの上位側が有効であることを示す信号である。
アドレスバスにt0からt1の期間CPUからアクセスを行うメモリのアドレスA0が指定される。
同時に、t0でValidが“HIGH”となり、それに応じてt1でステート信号がIDLEからTACSへ変化する。
Validはステート信号がIDLE以外の期間と同クロック周期経過後、すなわちt4で“LOW”になる。
まず、ステート信号がTACSに変化するt1でアドレス信号ADDRに、CPUからアドレスバスに指定されたアドレスA0が指定される。
そして、ステート信号がTCOSに変化するt2でチップセレクト信号が“LOW”になる。
同時にアクセスするメモリが16ビットメモリなのでnLBが“LOW”となり、nHB/nWRHも“LOW”となる。
次に、ステート信号がTACCに変化するt3で、リード信号nRDが“LOW”となる。
ステート信号がTACCからTCOHに変化するt4でリード信号nRDが“HIGH”となり、アドレスA0に記憶されていたデータD0がDATA信号に読み出される。
なお、読み出されたデータD0は、<内部信号>のデータバスに出力される。
そして、ステート信号がIDLEに変化するt5で、チップセレクト信号nCSが“HIGH”となり、アドレス信号ADDRのアドレスA0の指定が終了する。
この例では、メモリ制御回路がアクセスするメモリとして16ビットメモリ(以下バンク0とする)と8ビットメモリ(以下バンク1とする)との2つのバンクが接続されている。
メモリ制御回路は読み出しおよび書き込みの指示をCPUからアドレスバス、データバスを介して受け、Valid、ステート信号の各信号を生成する。
また、メモリ制御回路は、接続された複数のメモリに対してアドレス信号ADDR、バンク0へのチップセレクト信号nCS0、バンク1へのチップセレクト信号nCS1、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号を出力する端子および、DATA信号を入出力する端子を備えている。
16ビットメモリであるバンク0は、メモリ制御回路の出力に対応して、アドレス信号ADDR、チップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB信号を入力する端子および、DATA信号を入出力する端子を備えている。
以上の各信号はCPUにて、メモリ制御回路を動作するために設定されるシステムクロックCLKに同期して変化する。
この図6の場合では、高速アクセスを行うためバンク0、バンク1ともにステート信号に応じてtacs=tcos=tcoh=0と設定している。なおバンク0に対するtacs、tcos、tacc、tcohをそれぞれtacs0、tcos0、tacc0、tcoh0とし、バンク1に対するtacs、tcos、tacc、tcohをそれぞれtacs1、tcos1、tacc1、tcoh1とする。またバンク0に対するValid、ステート信号をそれぞれ、Valid0、ステート0信号とし、バンク1に対するValid、ステート信号をそれぞれ、Valid1、ステート1信号とする。
アドレスバスにCPUから、t0からt1の期間バンク0のアドレスA0が指定され、続いてt1からt3の期間バンク1のアドレスA1が指定される。
バンク0のアドレスA0の指定によってt0でValid0が“HIGH”となる。
Valid0はステート0信号がIDLE以外の期間と同一のクロック周期経過後、すなわちt2で“LOW”になる。
そして、Valid0が“HIGH”であることによって、t1でステート0信号がIDLEからTACCに変化する。この例の場合tacs0=tcos0=tcoh0=0なのでステート0信号はIDLE→TACC→IDLEの順で変化する。
また、ステート0信号は、t2でValid0が“LOW”となるのに応じて、t3でTACCからIDLEに変化する。
Valid1はステート1信号がIDLE以外の期間と同一のクロック周期経過後、すなわちt4で“LOW”になる。
そして、Valid1が“HIGH”であることによって、t3でステート1信号がIDLEからTACCに変化する。この例の場合tacs1=tcos1=tcoh1=0なのでステート1信号はIDLE→TACC→IDLEの順で変化する。
また、ステート1信号は、t4でValid1が“LOW”となることによって、t5でTACCからIDLEに変化する
次に、<端子>の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。
まず、ステート0信号がTACCに変化するt1でアドレス信号ADDRに、CPUからアドレスバスに指定されたアドレスA0が指定される。
同時にバンク0のチップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号が“LOW”になり、バンク0の読み出しのアクセスが開始する。
そして、ステート0信号がTACCからIDLEに変化し、ステート1信号がIDLEからTACCに変化するt3では、アドレス信号ADDRの指定がバンク0のアドレスA0からバンク1のアドレスA1に切り替わる。また、バンク0のチップセレクト信号nCS0が“HIGH”となり、バンク1のチップセレクト信号nCS1が“LOW”となる。
この場合、バンク0とバンク1の連続読み出しとなるのでリード信号nRDは、t3で“LOW”のままである。
アドレスA0に記憶されていたデータD0はDATA信号に読み出される。
なお、読み出されたデータD0は、<内部信号>のデータバスに出力される。
同時に、t3ではステート1信号の変化によってチップセレクト信号nCS1が“LOW”になり、バンク1の読み出しのアクセスが開始する。
ステート1信号がTACCからIDLEに変化するt5でリード信号nRD、チップセレクト信号nCS1が“HIGH”になり、アドレス信号ADDRによるアドレスA1の指定が終了する。
アドレスA1に記憶されていたデータD1はDATA信号に読み出される。なお、読み出されたデータD1は、<内部信号>のデータバスに出力される。
図1は、本発明の実施の形態に係るメモリ制御回路を説明するためのブロック図である。なお、図1に示すメモリ制御回路は集積回路であることとする。
集積回路100は、CPU200とメモリ制御回路300とを備えている。また本実施の形態では、メモリ制御回路300はCPU200からの指示に基づきメモリ400とメモリ500に対してアクセスを行い読み出しまたは書き込みを行う。
ここで、メモリ400(以下バンク0とする)には、例えば16ビットメモリが接続され、また、メモリ500(以下バンク1とする)には、例えば8ビットメモリが接続される。これらのメモリは例えばSRAMを使用することができる。
CPU200は、メモリ400、500に対してデータの書き込み又は読み出しを行うための信号を内部バスに出力する。
またメモリ制御回路300は、内部バスから、メモリにアクセスすることを示すセレクト信号、内部バスが活性か否かを示す状態信号、メモリ制御回路300を動作させるためのシステムクロックCLKを入力している。
そして、メモリ制御回路300は、CPU200からの指示に基づき、外部に接続されたメモリ400、500に対し、アドレス信号ADDR、DATA信号、バンク0に対するチップセレクト信号nCS0、バンク1に対するチップセレクト信号nCS1、ローバイトセレクト信号nLB、リード信号nRD、およびnWR/nWRL、nHB/nWRHの信号を入出力し、書き込み又は読み出しのアクセスを行う。
レジスタ群20は、レジスタ70、71、72、73、74、75の各レジスタを有している。
レジスタ71は、アクセスを行うメモリのアドレスの指定からメモリが活性化するまでの期間tacsに相当する値が設定されるものである。
レジスタ72は、メモリの活性化から読み出し開始までの期間tcosに相当する値が設定されるものである。
レジスタ73は、メモリの書き込み又は読み出しを実行する期間taccに相当する値が設定されるものである。
レジスタ74は、書き込み又は読み出し終了からメモリが非活性になるまでの期間tcohに相当する値が設定されるものである。
レジスタ75は、外部に接続されたメモリの種類により端子の設定を切り替えるための値が設定されるものである。例えば、アクセスを行うメモリが8ビットか16ビットかを示すCPU200からの入力によって、nHB/nWRHの端子はnHBまたはnWRHに切り替えられる。
レジスタ70は、異なる複数のバンクで連続したアクセスが行われるときに追加される期間(『複数のバンクをともに非活性化とする期間』)に相当する値が設定されるものある。
これらの各レジスタ70乃至75の値は、CPU200によって設定される。
この制御を行うため、状態制御回路30は、レジスタ群20のレジスタ71、72、73、74の値をそれぞれダウンカウントするACSカウンタ、COSカウンタ、ACCカウンタ、COHカウンタを備えている。そして、状態制御回路30は、各レジスタ70乃至75に設定された値からクロックCLKに同期してダウンカウントし、レジスタ値が「0」となるまでの期間をそれぞれTACS、TCOS、TACC、TCOHの状態とする信号を出力する。この信号によって外部インターフェイス回路40から出力される信号の状態が制御される。
なお、状態制御回路31は、状態制御回路30と同様に構成されている。本実施の形態ではレジスタ群20、21に対応して状態制御回路30、31を設けているが、状態制御回路30、31は1つでもよい。例えば、状態制御回路30に、レジスタ群20、21からそれぞれの値が入力され適宜切り替えるようになっていてもよい。
例えばアドレスバスが複数のバンクのアドレスを指定し、それに対応するバンクのValidが連続で“HIGH”となるとき、ACSカウンタはtacs、tareaに相当する値の加算値をダウンカウントする。
図2は、本発明の実施の形態に係るメモリ制御回路300内の状態制御回路30の状態変化を説明するための図である。状態制御回路30は、外部のメモリ400、500にアクセスを行っていないときにはValidが“LOW”であり、メモリをIDLEの状態とするステート信号を出力している。ステート信号は、このIDLEから、通常前述のようにTACS→TCOS→TACC→TCOHの順で変化する。
なお、前述したように書き込み又は読み出しを行う期間のレジスタ73は0以外が設定され、TACCがパスすることはない。
まず、ステート信号がIDLEである状態で、Validが“HIGH”となることでCPUにより指定されるメモリにアクセスを開始する。状態制御回路30は、tacs≠0の場合にはステート信号としてTACSを出力する。tacs=0かつtcos≠0の場合にはTCOSを出力する。また、tacs=0かつtcos=0の場合にはTACCと出力する。
本発明の状態制御回路30は、図2に示すように、異なるバンクに対して連続してアクセスをする場合、ステート信号がIDLEからTACSへ変化する設定としてレジスタ70とレジスタ71の加算値をACSカウンタに取り込むようにアクセス判定回路60によって制御される。このレジスタ70とレジスタ71の加算値tacs+tareaは、CPU200によって、0でない値が設定される。例えばクロックCLKの1クロック期間以上の値が設定される。よってtacs=0として設定されていても、TACSの状態をパスすることがなくなる。以下通常と同様に変化を行う。
なお、tareaの追加は、tacsの値に関係なく、異なるバンクに対して連続してアクセスをする場合に行うので、tacs+tareaとなる場合のtacsの値は0でなくてもよい。
図3は、図1における本発明の実施の形態に係るメモリ制御回路300の動作を説明するためのタイムチャートである。この図3は、メモリ400(バンク0)のアドレスA0から、メモリ500(バンク1)のアドレスA1に連続してアクセスを行う場合の一例を示している。
CPUからアドレスバスに、t0からt1の期間にバンク0のアドレスA0が指定され、続いてt1からt3の期間にバンク1のアドレスA1が指定される。
バンク0のアドレスA0の指定によってt0でValid0が“HIGH”になる。
Valid0はステート0信号がIDLE以外の期間と同一のクロック周期経過後すなわちt2で“LOW”になる。
そして、Valid0が“HIGH”であることによって、t1でステート0信号がIDLEからTACCに変化する。この例の場合tacs0=tcos0=tcoh0=0なのでステート0信号はIDLE→TACC→IDLEの順で変化する。
また、ステート0信号は、t2でValid0が“LOW”となることによって、t3でTACCからIDLEに変化する。
Valid1はステート1信号がIDLE以外の期間と同一のクロック周期経過後すなわちt5で“LOW”になる。
そして、Valid1が“HIGH”であることによって、t3でステート1信号がIDLEから変化する。この場合異なるバンクへの連続アクセスとなるので、ステート1信号がTACSである期間としてtacs1+tarea0が設定される。ステート1信号はIDLE→TACS→TACC→IDLEの順で変化する。
なお、内部バスが活性か否かを示す状態信号はアドレスバスにCPUからの指示がある期間はアクティブを示している。この場合、CPUがアドレスA0とアドレスA1を連続して指定しているので、状態信号はこの期間連続してアクティブを示している。
まず、ステート0信号がTACCに変化するt1でアドレス信号ADDRに、CPUからアドレスバスに指定されたアドレスA0が指定される。
同時にバンク0のチップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号が“LOW”になり、バンク0の読み出しのアクセスが開始する。
また、アクセスを行うメモリが16ビットメモリから8ビットメモリになるので、ローバイトセレクト信号nLB、nHB/nWRH信号はt3で“HIGH”になる。
アドレスA0に記憶されていたデータD0はDATA信号に読み出される。
なお、読み出されたデータ信号D0は、<内部信号>のデータバスに出力される。
そして、ステート1信号がTACCからIDLEに変化するt6でリード信号nRD、チップセレクト信号nCS1が“HIGH”となり、アドレス信号ADDRによるアドレスA1の指定が終了する。
アドレスA1に記憶されていたデータD1はDATA信号に読み出される。
なお、読み出されたデータD1は、<内部信号>のデータバスに出力される。
図4は、本発明のその他の実施の形態に係るメモリ制御回路300の動作を説明するためのタイムチャートである。
よって、この場合も、外部のメモリに対して、異なるバンクへの連続アクセスとなるのでメモリ制御回路300は、TACSの期間の設定としてtacs1にtarea0を追加する。
なお、本実施の形態ではtacs=0の場合について説明したが、tacsが0でない場合にも、異なるバンクに連続してアクセスする場合、ステート信号がTACSである期間としてtacsにtareaを加算した値を設定することにより、信号の遅延による誤動作を防止することができる
また、tacsが0の場合、すなわち高速アクセスによってアドレスの指定期間とバンクの活性化の期間が同時となる場合には、異なるバンクの活性化の切り替わり時に、バンクの活性化の切り替わりが同時となり誤動作が生じやすいので、tacs=0の場合にtareaを加算するようにしてもよい。この場合、高速アクセス時の誤動作を防止することができる。
このtareaの値の設定をするレジスタを、アクセスを行うバンクに対応して設けることにより、各バンクに対応してtareaを追加することができる。
例えば、メモリ400、500は、図1の構成でなくてもよい。またSRAM以外のメモリ、例えばFlashメモリなどを使用してもよい。
20、21 レジスタ
30、31 状態制御回路
40 外部インターフェイス回路
50 メモリアクセス検出回路
60 アクセス判定回路
100 集積回路
200 CPU
300 メモリ制御回路
400、500 メモリ
Claims (4)
- 複数のバンクを有するメモリに対するアクセスを制御する制御回路と、
前記複数のバンクのアドレスを選択的に指定するための第1信号と、前記複数のバンクを選択的に活性化するための第2信号に基づいて、前記メモリに対するアクセス方法を判定するアクセス判定回路と、
前記複数のバンクに対するアドレスの指定から活性化までの期間を設定する第1の設定回路と、を備え、
前記アクセス判定回路は、
前記第1信号が前記複数のバンクを指定し、前記第2信号が当該複数のバンクを連続して活性化させることを示す場合の判定結果に基づいて、前記第1の設定回路に対して前記複数のバンクに対するアドレスの指定と活性化を同時とすることを示す値が設定されているときには、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する、ことを特徴とするメモリ制御回路。 - 前記制御回路は、
前記複数のバンクをそれぞれ予め定められた期間活性化させるものであり、
前記複数のバンクの活性化を切り替える場合、所定の前記バンクが予め定められた期間活性化した直後に、当該バンクおよび次に活性化すべき前記バンクをともに非活性化とする期間を設け、当該期間の経過後、前記次に活性化すべきバンクを非活性化から予め定められた期間活性化させること、を特徴とする請求項1に記載のメモリ制御回路。 - 前記複数のバンクをともに非活性化とする期間を設定するための、前記複数のバンクに対応する第2の設定回路を備え、
前記制御回路は、前記第2の設定回路の設定値に基づいて、前記複数のバンクの活性化に際し、前記複数のバンクをともに非活性化とする期間を設けることを特徴とする請求項1または2に記載のメモリ制御回路。 - 前記複数のバンクをともに非活性化とする期間は、前記メモリ制御回路を動作させるためのシステムクロックの少なくとも1クロック期間である、ことを特徴とする請求項1乃至3の何れかに記載のメモリ制御回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004037205A JP4549073B2 (ja) | 2004-02-13 | 2004-02-13 | メモリ制御回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004037205A JP4549073B2 (ja) | 2004-02-13 | 2004-02-13 | メモリ制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005228142A JP2005228142A (ja) | 2005-08-25 |
JP4549073B2 true JP4549073B2 (ja) | 2010-09-22 |
Family
ID=35002805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004037205A Expired - Fee Related JP4549073B2 (ja) | 2004-02-13 | 2004-02-13 | メモリ制御回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4549073B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4945125B2 (ja) * | 2005-12-21 | 2012-06-06 | ラピスセミコンダクタ株式会社 | メモリ制御装置 |
JP6418983B2 (ja) * | 2015-03-05 | 2018-11-07 | キヤノン株式会社 | メモリのアクセス制御装置、その制御方法、および、プログラム |
-
2004
- 2004-02-13 JP JP2004037205A patent/JP4549073B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005228142A (ja) | 2005-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4550439B2 (ja) | Ecc制御装置 | |
US9741406B2 (en) | Semiconductor memory and memory system | |
JPH0845277A (ja) | 半導体記憶装置 | |
JP2002175692A (ja) | 半導体記憶装置及びデータ処理システム | |
US20020114210A1 (en) | Semiconductor memory device and information processing unit | |
JP2011048876A (ja) | 半導体記憶装置及びその制御方法 | |
US6769051B2 (en) | Memory controller and memory control method for controlling an external memory device to be accessible even in an addressing mode that is not supported thereby | |
US8239658B2 (en) | Internally derived address generation system and method for burst loading of a synchronous memory | |
EP0337385A2 (en) | Cache memory controller associated with a microprocessor | |
JP4549073B2 (ja) | メモリ制御回路 | |
US6292867B1 (en) | Data processing system | |
US8074096B2 (en) | Semiconductor integrated circuit, memory system, memory controller and memory control method | |
US20020188771A1 (en) | Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof | |
US20070094460A1 (en) | DRAM control circuit | |
JP2638484B2 (ja) | データ処理装置 | |
JP4749689B2 (ja) | メモリ制御回路及びメモリ制御方法 | |
JP2004206850A (ja) | 半導体記憶装置 | |
JP2004146051A (ja) | データ読み取り動作及び書き込み動作を同時に実行可能な集積回路及び方法 | |
CN114253464B (zh) | 控制读取请求的方法和具有主机装置的存储器控制器 | |
US20030063506A1 (en) | Integrated memory device, method of operating an integrated memory, and memory system having a plurality of integrated memories | |
JP3561670B2 (ja) | メモリ制御回路 | |
JP3600830B2 (ja) | プロセッサ | |
JP3563340B2 (ja) | メモリコントローラ | |
JP3222647B2 (ja) | メモリバンク自動切替システム | |
JP3070454B2 (ja) | メモリアクセス制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100608 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100706 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |