(57)【要約】【課題】バスブリッジ回路を用いることなく、マイクロコンピュータに外付けされる外部メモリの技術トレンドの進化に対応させる。【解決手段】外部メモリ用外部端子群と、外部メモリ用外部端子群における各端子の配列をプログラマブルに設定可能な外部メモリ用外部端子ファンクションコントローラ（１５）と、外部メモリ用外部端子群を介して接続された外部メモリへのアクセスに使用される信号を生成するメモリコントローラ（１６）を設ける。メモリコントローラには、外部メモリへのアクセスに使用される信号のタイミングをプログラマブルに設定可能なレジスタ群を設ける。メモリコントローラには、外部メモリへのアクセスに用いられるバス用外部クロック信号を形成し、そのバス用外部クロック信号に基づいて、外部メモリへのアクセスに用いられる制御信号のタイミングを決定するメモリ制御部を設ける。【選択図】図１
2014170356.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリを外付けするための外部メモリ用外部端子群と、
上記外部メモリ用外部端子群におけるアドレス、データ、制御信号の各端子の配列を上記外部メモリに応じてプログラマブルに設定可能な外部メモリ用外部端子ファンクションコントローラと、
上記外部メモリ用外部端子群を介して接続された外部メモリへのアクセスを制御するメモリコントローラと、を含み、
上記メモリコントローラは、上記外部メモリのアクセスタイミングをプログラマブルに設定可能なレジスタ群と、
上記外部メモリへのアクセスに用いられるバス用外部クロック信号を形成し、そのバス用外部クロック信号に基づいて、上記外部メモリのアクセスタイミングを決定するメモリ制御部と、を含むマイクロコンピュータ。
【請求項２】
上記マイクロコンピュータは、互いに位相が異なる複数段の内部クロック信号を生成するクロック生成回路を含み、
上記メモリ制御部は、上記複数段の内部クロック信号のうちの一つを選択することで上記バス用外部クロック信号を得る請求項１記載のマイクロコンピュータ。
【請求項３】
上記メモリコントローラは、上記クロック生成回路で形成された複数段の内部クロック信号のうちの一つを選択するための情報を設定可能な第１レジスタを含み、
上記メモリ制御部は、上記第１レジスタに設定された情報に従って、上記内部クロック信号を選択して上記バス用外部クロック信号を得る請求項２記載のマイクロコンピュータ。
【請求項４】
上記レジスタ群は、上記制御信号のアサート開始ポイントを示す情報を設定可能な第２レジスタと、
上記制御信号のネゲート開始ポイントを示す情報を設定可能な第３レジスタと、を含む請求項３記載のマイクロコンピュータ。
【請求項５】
上記レジスタ群は、上記制御信号のアサート期間、及び上記制御信号のネゲート期間を示す情報を設定可能な第４レジスタを含む請求項４記載のマイクロコンピュータ。
【請求項６】
上記外部メモリ用外部端子ファンクションコントローラは、上記外部メモリ用外部端子群におけるアドレス、データ、制御信号の各端子の配列をプログラマブルに設定可能な端子割り当てレジスタ群と、
上記端子割り当てレジスタ群の設定情報に従って、上記外部メモリ用外部端子群における各端子に接続される信号伝達経路を決定するための端子割り当て制御部と、を含む請求項５記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロコンピュータに関し、特にメモリコントローラを内蔵するマイクロコンピュータに好適に利用できるものである。
【背景技術】
【０００２】
マイクロコンピュータは、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及びメモリコントローラなどが内蔵される。マイクロコンピュータに内蔵されたメモリコントローラ（「内蔵メモリコントローラ」という）は、マイクロコンピュータの外部に配置されたメモリ（「外部メモリ」という）との間で、各種信号のやり取りを行う。外部メモリのリード及びライトは、内蔵メモリコントローラを介して行われる。
【０００３】
特許文献１には、メモリコントローラによって転送しようとするメモリデバイスに適したタイミング情報を記憶するようにプログラム可能な複数のプログラマブルタイミングレジスタを設けることが記載されている。
【０００４】
特許文献２には、複数種のメモリチップと、それを制御するメモリコントローラとを有するメモリシステムが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１１０７８５号公報
【特許文献２】特開２００２−２５９３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、マイクロコンピュータには、マイクロコンピュータの外部に配置されたメモリ（「外部メモリ」という）との間で、各種信号のやり取りを行うメモリコントローラが内蔵される。従って、そのようなメモリコントローラを内蔵するマイクロコンピュータを用いる場合には、ユーザボード上で、外部メモリをマイクロコンピュータに直結することができる。
【０００７】
ところで、外部メモリの技術トレンドの進化により、マイクロコンピュータに内蔵されたメモリコントローラ（「内蔵メモリコントローラ」という）がサポートするメモリの規格が古くなる傾向にある。内蔵メモリコントローラが新規の外部メモリをサポートできない場合、そのような外部メモリをユーザボード上でマイクロコンピュータに直結することができない。
【０００８】
このようにマイクロコンピュータの内蔵メモリコントローラが新規の外部メモリをサポートできない場合、当該マイクロコンピュータのユーザは、内蔵メモリコントローラと新規の外部メモリとの間にバスブリッジ回路を介在させ、内蔵メモリコントローラと新規の外部メモリとの間でバスサイクルの変換を行うようにしている。これにより新規の外部メモリは、既存のマイクロコンピュータからアクセス可能になるので、ユーザボード上で新規の外部メモリの増設が可能になる。
【０００９】
特許文献１，２に記載されたマイクロコンピュータにおいても、内蔵メモリコントローラが新規の外部メモリをサポートできない場合には、当該マイクロコンピュータのユーザは、内蔵メモリコントローラと新規の外部メモリとの間にバスブリッジ回路を介在しなければならない。
【００１０】
しかし、内蔵メモリコントローラと新規の外部メモリとの間にバスブリッジ回路を介在させると、ブリッジ回路での信号遅延などにより、新規の外部メモリの性能を十分に引き出すことができない。また、ユーザボード上での配線の引き回しや、外部バスの容量性負荷の増大により電気的特性（ＡＣスペック）のマージン確保が困難になる。
【００１１】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
課題を解決するための手段のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、外部メモリを外付けするための外部メモリ用外部端子群と、上記外部メモリ用外部端子群における各端子の配列を上記外部メモリに応じてプログラマブルに設定可能な外部メモリ用外部端子ファンクションコントローラと、上記外部メモリ用外部端子群を介して接続された外部メモリへのアクセスに使用される信号を生成するメモリコントローラとを設ける。このとき、上記メモリコントローラには、上記外部メモリへのアクセスに使用される信号のタイミングをプログラマブルに設定可能なレジスタ群を設ける。また、上記メモリコントローラには、上記外部メモリへのアクセスに用いられるバス用外部クロック信号を形成し、そのバス用外部クロック信号に基づいて、上記外部メモリへのアクセスに用いられる制御信号のタイミングを決定するメモリ制御部を設ける。
【発明の効果】
【００１４】
課題を解決するための手段のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１５】
すなわち、ユーザボード上でバスブリッジ回路を用いることなく、マイクロコンピュータに外付けされる外部メモリの技術トレンドの進化に対応させるための技術を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】マイクロコンピュータが搭載されたユーザシステムの構成例ブロック図である。
【図２】マイクロコンピュータに設けられた複数の外部端子と、外部メモリ用外部端子ファンクションコントローラとの関係説明図である。
【図３】メモリコントローラとアドレスマップとの関係説明図である。
【図４】内部クロック信号のタイミング図である。
【図５】第２外部メモリへのアクセスに用いられる制御信号の説明図である。
【図６】メモリコントローラ内のレジスタの設定例の説明図である。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕代表的な実施の形態に係るマイクロコンピュータ（１０）は、外部メモリを外付けするための外部メモリ用外部端子群（６５−１〜６５−ｎ）と、上記外部メモリ用外部端子群におけるアドレス、データ、制御信号の各端子の配列を上記外部メモリに応じてプログラマブルに設定可能な外部メモリ用外部端子ファンクションコントローラ（１５）とを有する。さらにマイクロコンピュータ（１０）は、上記外部メモリ用外部端子群を介して接続された外部メモリへのアクセスを制御するメモリコントローラ（１６）を有する。
【００１９】
上記メモリコントローラには、上記外部メモリのアクセスタイミングをプログラマブルに設定可能なレジスタ群（２０４−１〜２０４−３）が設けられる。さらに上記メモリコントローラには、上記外部メモリへのアクセスに用いられるバス用外部クロック信号を形成し、そのバス用外部クロック信号に基づいて、上記外部メモリのアクセスタイミングを決定するメモリ制御部（２０１）が設けられる。
【００２０】
外部メモリの技術トレンドの進化により外部メモリの端子配列が変更される場合がある。外部メモリの端子配列が変更された場合、マイクロコンピュータにおける外部メモリ用外部端子群の配列と整合しない場合が起こり得る。かかる場合、ユーザボード上では、外部メモリへのアクセスに用いられる制御信号を伝達するための制御線の一部が不所望に長くなり、そこでの信号遅延が他の制御信号に比べて大きくなることから、制御信号のタイミングずれを生ずるおそれがある。その場合、外部メモリ用外部端子ファンクションコントローラにより、上記外部メモリ用外部端子群における各端子の機能割り当てを変更して、マイクロコンピュータにおける外部メモリ用外部端子群の配列を外部メモリの端子配列に整合させることができる。このようにマイクロコンピュータにおける外部メモリ用外部端子群の配列と外部メモリの端子配列とを整合させることで、制御信号のタイミングずれを緩和することができる。
【００２１】
また、上記外部メモリ用外部端子群における各端子の機能割り当ての変更によって、制御信号のタイミングずれを十分に修正できない場合には、上記レジスタ群の設定情報を変更することにより、上記外部メモリへのアクセスに用いられる制御信号のタイミングを変更することができる。
【００２２】
このように上記構成のマイクロコンピュータによれば、外部メモリ用外部端子群の配列と外部メモリの端子配列とを整合させることで、制御信号のタイミングずれを緩和することができ、上記レジスタ群の設定情報を変更することにより、上記外部メモリへのアクセスに用いられる制御信号のタイミングを変更することができる。このような作用により、ユーザボード上でバスブリッジ回路を用いることなく、マイクロコンピュータに外付けされる外部メモリの技術トレンドの進化に対応させることができる。
【００２３】
〔２〕上記マイクロコンピュータには、互いに位相が異なる複数段の内部クロック信号を生成するクロック生成回路（１４）を設けることができる。互いに位相が異なる複数段の内部クロック信号は、例えば複数段の遅延回路によって形成することができる。上記メモリ制御部では、上記複数段の内部クロック信号のうちの一つを選択することで上記バス用外部クロック信号を得るように構成することができる。
【００２４】
上記クロック生成回路で生成される複数段の内部クロック信号は、互いに位相が異なるため、上記メモリ制御部で選択される内部クロック信号の変更により、上記バス用外部クロック信号の位相を変更することができる。上記バス用外部クロック信号に基づいて、上記外部メモリへのアクセスに用いられる制御信号のタイミングが決定される。このため、上記メモリ制御部で選択される内部クロック信号を変更するだけで、上記バス用外部クロック信号、及びそれに基づいて形成される各種制御信号のタイミングを一斉に変更することができる。例えばユーザボード上で、マイクロコンピュータの近傍に外部メモリをレイアウトできない場合には、マイクロコンピュータと外部メモリとの間のバス配線が長くなり、そこでの信号遅延が無視できない場合がある。かかる場合、上記メモリ制御部で選択される内部クロック信号を変更することにより、上記バス用外部クロック信号及びそれに基づいて形成される各種制御信号のタイミングを一斉に修正することができるので、各種制御信号のタイミング調整が容易となる。このことは、ユーザボード上でバスブリッジ回路を用いることなく、マイクロコンピュータに外付けされる外部メモリの技術トレンドの進化に対応させる上で有利となる。
【００２５】
〔３〕上記メモリコントローラには、上記クロック生成回路で形成された複数段の内部クロック信号のうちの一つを選択するための情報を設定可能な第１レジスタ（２０４−４）を設けることができる。このとき、上記メモリ制御部は、上記第１レジスタに設定された情報に従って、上記内部クロック信号を選択して上記バス用外部クロック信号を得るように構成することができる。
【００２６】
上記クロック生成回路で形成された複数段の内部クロック信号のうちの一つを選択するための情報を設定可能な第１レジスタが設けられた場合には、この第１レジスタの設定情報を変更することで、上記〔２〕で述べたように、上記バス用外部クロック信号及びそれに基づいて形成される各種制御信号のタイミングを一斉に修正することができる。
【００２７】
〔４〕上記レジスタ群には、上記制御信号のアサート開始ポイントを示す情報を設定可能な第２レジスタ（２０４−１）と、上記制御信号のネゲート開始ポイントを示す情報を設定可能な第３レジスタ（２０４−２）とを設けることができる。
【００２８】
上記制御信号のアサート開始ポイントを示す情報を設定可能な第２レジスタ（２０４−１）が設けられた場合、上記制御信号のアサート開始ポイントを示す情報を第２レジスタに設定することができる。上記制御信号のネゲート開始ポイントを示す情報を設定可能な第３レジスタ（２０４−２）が設けられたことにより、上記制御信号のネゲート開始ポイントを示す情報を第３レジスタに設定することができる。
【００２９】
〔５〕上記レジスタ群には、上記制御信号のアサート期間、及び上記制御信号のネゲート期間を示す情報を設定可能な第４レジスタ（２０４−３）を設けることができる。
【００３０】
上記制御信号のアサート期間、及び上記制御信号のネゲート期間を示す情報を設定可能な第４レジスタ（２０４−３）が設けられたことにより、上記制御信号のアサート期間、及び上記制御信号のネゲート期間を示す情報を第４レジスタに設定することができる。
【００３１】
〔６〕上記外部メモリ用外部端子ファンクションコントローラには、上記外部メモリ用外部端子群におけるアドレス、データ、制御信号の各端子をプログラマブルに設定可能な端子割り当てレジスタ群（６０−１〜６０−ｍ）を設けることができる。このとき、上記外部メモリ用外部端子ファンクションコントローラには、上記端子割り当てレジスタ群の設定情報に従って、上記外部メモリ用外部端子群における各端子に接続される信号伝達経路を決定するための端子割り当て制御部（６４）を設けることができる。
【００３２】
上記レジスタ群（６０−１〜６０−ｍ）が設けられたことにより、上記レジスタ群には、上記外部メモリ用外部端子群における各端子の機能割り当てをプログラマブルに設定することができる。上記端子割り当て制御部（６４）が設けられたことにより、上記端子割り当てレジスタ群の設定情報に従って、上記外部メモリ用外部端子群における各端子に接続される信号伝達経路が決定される。
【００３３】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３４】
《実施の形態１》
図１には、マイクロコンピュータを含むユーザシステムが示される。
【００３５】
図１に示されるユーザシステム１は、ユーザボード上に、マイクロコンピュータ１０、第１外部メモリ２１、第２外部メモリ２２が搭載されている。特に制限されないが、第１外部メモリ２１、第２外部メモリ２２は、クロック信号に同期して動作するＤＲＡＭ（Dynamic Random Access Memory）であり、ＳＤＲＡＭ（Synchronous DRAM）とも呼ばれる。第１外部メモリ２１及び第２外部メモリ２２は、ユーザボードに形成されたバス配線１７，１８，１９を介してマイクロコンピュータ１０に結合される。すなわち、コントロールバス配線１７及びアドレスデータバス配線１８を介して第１外部メモリ２１がメモリコントローラ１６に結合され、コントロールバス配線１９及びアドレスデータバス配線１８を介して第２外部メモリ２２がメモリコントローラ１６に結合される。
【００３６】
マイクロコンピュータ１０は、発振回路１１、ＣＰＵ（Central Processing Unit）１２、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）１３、クロック生成回路１４、外部メモリ用外部端子ファンクションコントローラ１５、メモリコントローラ１６を含む。ＣＰＵ１２、ＲＯＭ及びＲＡＭ１３、クロック生成回路１４、外部メモリ用外部端子ファンクションコントローラ１５、メモリコントローラ１６は内部バス２０を介して互いに結合されている。
【００３７】
発振回路１１は、例えば水晶振動子を用いて発振する回路を含み、このマイクロコンピュータ１０の各部に供給されるクロック信号を得る。クロック生成回路１４は、発振回路１１で得られたクロック信号に同期して、例えば図４に示されるように、互いに位相が異なる１６段の内部クロック信号ＣＫ１〜ＣＫ１６を形成する。内部クロック信号ＣＫ１〜ＣＫ１６の周波数は、特に制限されないが、１０６６ＭＨｚとされ、それは、コントロールバス配線１９を介して第２外部メモリ２２へ伝達されるクロック信号（バス用外部クロック信号）の２倍の周波数とされる。この内部クロック信号ＣＫ１〜ＣＫ１６の分解能で各種制御信号や外部バスへの信号出力タイミングが制御される。内部クロック信号ＣＫ１〜ＣＫ１６は、隣接する遅延クロック間で、１周期の１／１６だけ、互いに位相がずれている。このような内部クロック信号ＣＫ１〜ＣＫ１６は、例えば複数個の遅延要素を互いに直列接続して成る遅延回路の個々の出力ノードから得ることができる。
【００３８】
ＣＰＵ１２は、プログラムを実行することで所定の演算処理を行う。ＲＯＭ及びＲＡＭ１３は、ＣＰＵ１２によってアクセスされる半導体メモリであり、ＲＯＭには、ＣＰＵ１２で実行されるプログラムが格納されている。ＲＡＭは、ＣＰＵ１２での演算処理における作業領域などに利用される。
【００３９】
メモリコントローラ１６は、マイクロコンピュータ１０の外部に配置された外部メモリ２１，２２へのアクセスに用いられる各種信号を生成する。ＣＰＵ１２から外部メモリ２１，２２へのアクセスは、このメモリコントローラ１６を介して行われる。
【００４０】
メモリコントローラ１６は、ＣＰＵ１２から第１外部メモリ２１へのアクセスの際に第１外部メモリ２１を制御することができる。このため、第１外部メモリ２１は、コントロールバス配線１７及びアドレスデータバス配線１８を介してメモリコントローラ１６に結合することができる。
【００４１】
また、第２外部メモリ２２は、マイクロコンピュータ１０や第１メモリ２１よりも後に開発されたもので、第１メモリ２１よりも技術トレンドが進化しており、コントロールバス配線１７に直接繋ぐことができない。従って従来技術に従えば、第２外部メモリ２２をユーザボードに搭載する場合、メモリコントローラ１６と第２外部メモリ２２との間に、バスブリッジ回路を介在する必要がある。
【００４２】
しかし、図１に示されるマイクロコンピュータ１０によれば、以下に述べるように、バスブリッジを介在すること無く、第２外部メモリ２２をメモリコントローラ１６に接続することができる。そのような接続を可能とするため、マイクロコンピュータ１０では、第１外部メモリ２１や第２外部メモリ２２が接続される外部端子の機能割り当てがプログラマブルに設定可能とされ、また、第２外部メモリ２２へのアクセスに用いられる各種信号のタイミングがプログラマブルに設定可能とされる。それにより、第２外部メモリ２２は、コントロールバス配線１９及びアドレスデータバス配線１８を介してメモリコントローラ１６に結合することができる。アドレスデータバス配線１８は、第１外部メモリ２１と第２外部メモリ２２との間で共有される。
【００４３】
図２には、マイクロコンピュータ１０に設けられた複数の外部端子と、外部メモリ用外部端子ファンクションコントローラ１５との関係が示される。特に制限されないが、マイクロコンピュータ１０のパッケージはＱＦＰ(Quad Flat Package)とされる。
【００４４】
外部メモリ用外部端子ファンクションコントローラ１５は、マイクロコンピュータ１０に設けられた複数の外部端子のうち、第１外部メモリ２１及び第２外部メモリ２２を外付けするための外部メモリ用外部端子６５−１〜６５−ｎにおけるアドレス、データ、制御信号などの各端子の配列を第２外部メモリ２２に応じてプログラマブルに設定することができる。第１外部メモリ２１及び第２外部メモリ２２を外付けするために必要となる外部端子６５−１〜６５−ｎは、５０〜１００個ほどあれば良い。外部メモリ用外部端子ファンクションコントローラ１５の設定内容を変更することによって、外部メモリ用外部端子６５−１〜６５−ｎにおける各端子の機能を変更することができる。
【００４５】
外部メモリ用外部端子ファンクションコントローラ１５は、端子割り当て情報を設定するための複数の端子割り当てレジスタ群６０−１，６０−２，…，６０−ｍと端子割り当て制御部６４とを含む。端子割り当てレジスタ群６０−１，６０−２，…，６０−ｍは、外部メモリ用外部端子（６５−１〜６５−ｎ）の機能の数に対応する。外部メモリ用外部端子の機能として、クロック信号出力用、クロックイネーブル信号出力用、アドレス信号出力用、ローアドレスストローブ信号出力用、カラムアドレスストローブ信号出力用、ライトイネーブル信号出力用、データストローブ信号出力用、データ入出力用などを挙げることができる。例えば端子割り当てレジスタ群６０−１の格納情報は、クロック信号出力用の端子割り当てに用いられ、端子割り当てレジスタ群６０−２の格納情報は、クロックイネーブル信号出力用とされ、端子割り当てレジスタ群６０−ｍの格納情報は、データ入出力用の端子割り当てに用いられる。端子割り当てレジスタ群６０−１，６０−２，…，６０−ｍは、互いに同一構成とされ、そのうちの一つが代表的に示されるように、個数設定用レジスタ６１、端子位置設定用レジスタ６２、並び順情報設定用レジスタ６３を含む。
【００４６】
個数設定用レジスタ６１には、該当する機能に割り当てられる端子の個数を設定することができる。例えばクロック信号が１系統の場合、クロック信号出力用の端子数は１個で良いから、クロックイネーブル信号出力用とされる端子割り当てレジスタ群６０−１における個数設定レジスタ６１には、「１」が設定される。また、データのバス構成が３２ビットであれば、それに対応する端子割り当てレジスタ群６０−ｍにおける個数設定用レジスタ６１には、「３２」が設定される。
【００４７】
端子位置設定用レジスタ６２には、該当する機能が割り当てられる端子の位置を設定することができる。尚、個数設定用レジスタ６１の設定値が２以上の場合、端子位置設定用レジスタ６２には、それらの先頭位置を設定する。
【００４８】
並び順情報設定用レジスタ６３には、該当する機能が割り当てられる端子が２個以上ある場合に、それらの並び順を設定することができる。該当する機能が割り当てられる端子が２個以上ある場合の例として、アドレス信号出力用の端子群や、データ入出力用の端子群を挙げることができる。並び順情報設定用レジスタ６３には、このような端子群の並び順、すなわち、端子位置設定用レジスタ６２に設定された端子位置（先頭位置）を基準として端子を昇順に並べるか、降順に並べるかの情報が設定される。
【００４９】
端子割り当て制御部６４は、端子割り当てレジスタ群６０−１，６０−２，…，６０−ｍの設定情報に従って、外部メモリ用外部端子６５−１〜６５−ｎにおける各端子に接続される信号ラインを決定する。例えばクロック信号、クロックイネーブル信号、アドレス信号、ローアドレスストローブ信号、カラムアドレスストローブ信号、ライトイネーブル信号、データストローブ信号、データなどの各信号ラインを、外部メモリ用外部端子６５−１〜６５−ｎにおける各端子の何れに接続するかを制御する。ＣＰＵ１２によって端子割り当てレジスタ群６０−１，６０−２，…，６０−ｍの設定情報が変更された場合、その変更に従って、外部メモリ用外部端子６５−１〜６５−ｎの機能割り当てが変更される。このような変更が行われることにより、外部メモリ用外部端子群６５−１〜６５−ｎにおけるアドレス、データ、制御信号の各端子の配列が変更される。
【００５０】
図３には、メモリコントローラ１６と、アドレスマップとの関係が示される。
【００５１】
ＣＰＵ１２によって管理される物理アドレス空間には、ＲＯＭエリア、第１外部メモリエリア、第２外部メモリエリア、ＲＡＭエリアなどが配置される。ＲＯＭエリアやＲＡＭエリアは、図１のＲＯＭ及びＲＡＭ１３に対応する。第１外部メモリエリア及び第２外部メモリエリアは、それぞれ図１の第１外部メモリ２１，２２に対応する。
【００５２】
メモリコントローラ１６は、メモリ制御部２０１と、レジスタ２０３−１〜２０３−ｎ，２０４−１〜２０４−ｎとを含む。レジスタ２０３−１〜２０３−ｎには、主として第１外部メモリ２１へのアクセスに用いられる信号を生成する際に参照される各種情報が設定される。第１外部メモリ２１へのアクセスに用いられる信号としては、クロック信号、クロックイネーブル信号、アドレス信号、ローアドレスストローブ信号、カラムアドレスストローブ信号、ライトイネーブル信号、データストローブ信号、データ信号などを挙げることができる。これら信号は、ＳＤＲＡＭのアクセスのために必要となる信号である。メモリ制御部２０１は、レジスタ２０３−１〜２０３−ｎの設定情報に従って、第１外部メモリ２１のアクセスのために必要となる各種信号を形成する。
【００５３】
レジスタ２０４−１〜２０４−ｎには、第２外部メモリ２２へのアクセスに用いられる信号を生成する際に参照される各種情報が設定される。本例では、第１外部メモリ２１及び第２外部メモリ２２が何れもＳＤＲＡＭとされるので、第２外部メモリ２２へのアクセスに必要となる信号の種類は、第１外部メモリ２１へのアクセスの場合と同様とされる。レジスタ２０４−１〜２０４−ｎには、第２外部メモリ２２へのアクセスに使用される信号のタイミングをプログラマブルに設定することができる。レジスタ２０４−１〜２０４−ｎや第２外部メモリ２２は、ＣＰＵ１２によって管理される物理アドレス空間における空きエリア３１に配置することができる。ＣＰＵ１２で実行されるプログラム（ユーザプログラム）によって、第２外部メモリ２２への情報設定を行うことができる。つまり、ユーザは、ユーザプログラムの該当箇所を書き換えることにより、第２外部メモリ２２の技術トレンドの進化に応じて、レジスタ２０４−１〜２０４−ｎの設定情報を適宜に変更することができる。メモリ制御部２０１は、レジスタ２０４−１〜２０４−ｎの設定情報に従って、第２外部メモリ２２のアクセスのために必要となる各種信号を形成する。
【００５４】
図５には、バス用外部クロック信号と、第２外部メモリ２２へのアクセスに用いられる例えばローアドレスストローブ信号などの制御信号が示される。
【００５５】
バス用外部クロック信号は、図４に示される内部クロック信号ＣＫ１〜ＣＫ１から選択されたものを１／２の周波数に分周することで得られる。例えば内部クロック信号ＣＫ１〜ＣＫ１が１０６６ＭＨｚの場合、バス用外部クロック信号は５３３ＭＨｚとされる。バス用外部クロック信号の２周期分（Ｔ１，Ｔ２）がバス用外部クロック信号の最小単位とされる。
【００５６】
第２外部メモリ２２へのアクセスに用いられる各種制御信号は、上記バス用外部クロック信号を用いて形成される。バス用外部クロック信号が例えば１０６６ＭＨｚの場合、それを分周して５３３ＭＨｚのクロック信号が形成され、この５３３ＭＨｚのクロック信号を用いて、第２外部メモリ２２へのアクセスに用いられる制御信号が形成される。
【００５７】
第２外部メモリ２２へのアクセスに用いられる制御信号は、特に制限されないが、デフォルトでは、ハイレベル（論理値“１”）に固定されている。この制御信号のアサート開始ポイントＰ１や、ネゲート開始ポイントＰ２、アサート及びネゲート期間４２，４４は、図３に示されるレジスタ２０４−１〜２０４−３の設定によって決定される。制御信号のアサート開始ポイントＰ１は、バス用外部クロック信号のサイクルの指定と、当該指定サイクルにおける波形立ち上がりエッジからの遅延時間４１によって特定される。制御信号のネゲート開始ポイントＰ２は、バス用外部クロック信号のサイクルの指定と、当該指定サイクルにおける波形立下りエッジからの遅延時間４３によって特定される。図５に示されるような制御信号を得る場合、サイクルの指定は、「Ｔ１，Ｔ２」となる。この場合、Ｔ１，Ｔ２の２サイクルによって制御信号が形成される。制御信号のアサート期間４２は、制御信号がハイレベルからローレベルにアサートするのに要する期間とされる。制御信号のネゲート期間４４は、制御信号がローレベルからハイレベルにネゲートするのに要する期間とされる。
【００５８】
図６には、図３に示されるレジスタ２０４−１〜２０４−ｎにおける一部の設定例が示される。
【００５９】
図６に示されるレジスタ２０４−１〜２０４−３は、第２外部メモリ２２へのアクセスに用いられる制御信号の生成の際に参照されるレジスタとされる。このレジスタ２０４−１〜２０４−３は、一つの制御信号を形成するのに必要となるので、レジスタ２０４−１〜２０４−３は、第２外部メモリ２２へのアクセスに用いられる制御信号に対応する数だけ設けられる。
【００６０】
尚、アドレス信号やデータ信号は数が多いため、複数ビット構成のアドレス信号間で、レジスタ２０４−１〜２０４−３に相当するレジスタを共有し、複数ビット構成のデータ信号間で、レジスタ２０４−１〜２０４−３に相当するレジスタを共有すると良い。
【００６１】
レジスタ２０４−１には、制御信号のアサート開始ポイントを示す情報を設定することができる。制御信号のアサート開始ポイントを示す情報には、図５に示されるバス用外部クロック信号のサイクルの指定情報、バス用外部クロック信号の立ち上がりエッジ又は立ち下りエッジからの遅延時間４１が含まれる。
【００６２】
レジスタ２０４−２には、制御信号のネゲート開始ポイントを示す情報を設定することができる。制御信号のネゲート開始ポイントを示す情報には、図５に示されるバス用外部クロック信号のサイクルの指定情報、バス用外部クロック信号の立ち上がりエッジ又は立ち下りエッジからの遅延時間４３が含まれる。
【００６３】
レジスタ２０４−３には、制御信号のアサート期間４２の指定情報、制御信号のネゲート期間４４の指定情報が含まれる。
【００６４】
レジスタ２０４−４には、図４に示される内部クロック信号ＣＫ１〜ＣＫ１６のうちから一つを選択するための選択情報が設定される。この選択情報に従って選択されたクロック信号がバス用外部クロック信号とされ、それを用いて、第２外部メモリ２２へのアクセスに用いられる各種信号がメモリコントローラ１６の制御部２０で形成される。
【００６５】
レジスタ２０４−５には、外部メモリ用外部端子の機能割り当ての情報が設定される。具体的には、機能割り当ての変更にかかる端子の個数、端子位置、物理アドレス情報が設定される。この設定情報は、ＣＰＵ１２によって、図２における端子割り当てレジスタ群６０−１〜６０−ｍの該当箇所に書き込まれる。それにより外部メモリ用外部端子の機能割り当てが変更される。
【００６６】
尚、レジスタ２０４−５に情報設定が行われていない場合には、端子割り当てレジスタ群６０−１〜６０−ｍへの上書きは行われないので、外部メモリ用外部端子の機能割り当ては変更されない。
【００６７】
レジスタ２０４−６には、図３に示される物理アドレス空間におけるレジスタ２０４−１〜２０４−ｎのエリアの開始アドレスや、データフォーマット（ビッグエンディアン又はリトルエンディアン）情報が設定される。
【００６８】
第２外部メモリ２２の一例とされるＳＤＲＡＭには、モードレジスタが設けられる。このモードレジスタには、バースト長の選択、バーストのタイプ、カラムストローブ信号のレイテンシ、操作モード等が定義される。第２外部メモリ２２がＳＤＲＡＭの場合、レジスタ２０４−７には、ＳＤＲＡＭのモードレジスタ用の情報を設定することができる。また、レジスタ２０４−８には、ＳＤＲＡＭのモードレジスタの出力タイミング生成情報を設定することができる。レジスタ２０４−７の設定情報は、ＣＰＵ１２により、第２外部メモリ２２内のモードレジスタにセットされる。その場合のセットタイミングは、レジスタ２０４−８の設定情報に従って制御される。
【００６９】
尚、データの取り込みを確実にするため、セットアップ時間やホールド時間についても、上記の場合と同様に、専用のレジスタに設定することによって第２外部メモリ２２のアクセスに反映させることができる。
【００７０】
上記の構成によれば、以下の作用効果を奏する。
【００７１】
（１）技術トレンドの進化により、第２外部メモリ２２の端子配列が、マイクロコンピュータ１０における外部メモリ用外部端子群の配列と整合しない場合が起こり得る。かかる場合、ユーザボード上では、第２外部メモリ２２へのアクセスに用いられる制御信号を伝達するための制御線の一部が不所望に長くなり、そこでの信号遅延が他の制御信号に比べて大きくなることから、制御信号のタイミングずれを生ずるおそれがある。その場合、外部メモリ用外部端子ファンクションコントローラ１５により、上記外部メモリ用外部端子群における各端子の配列を変更して、マイクロコンピュータ１０における外部メモリ用外部端子群の配列を第２外部メモリ２２の端子配列に整合させる。これにより、制御信号のタイミングずれを緩和することができる。
【００７２】
上記外部メモリ用外部端子群６５−１〜６５−ｎにおける各端子の配列の変更によって、制御信号のタイミングずれを十分に修正できない場合もあり得る。かかる場合には、上記レジスタ群２０４−１〜２０４−３の設定情報を変更することにより、上記第２外部メモリ２２へのアクセスに用いられる制御信号のタイミングを変更することができる。
【００７３】
このようにマイクロコンピュータ１０によれば、外部メモリ用外部端子群６５−１〜６５−ｎの配列と外部メモリの端子配列とを整合させることで、制御信号のタイミングずれを緩和することができ、上記レジスタ群２０４−１〜２０４−３の設定情報を変更することにより、上記第２外部メモリ２２へのアクセスに用いられる制御信号のタイミングを変更することができる。そのため、ユーザシステム１において、マイクロコンピュータ１０を搭載する場合、ユーザボード上でバスブリッジ回路を用いることなく、マイクロコンピュータ１０に外付けされる第２外部メモリ２２の技術トレンドの進化に対応させることができる。
【００７４】
また、ユーザボード上でバスブリッジ回路を用いることなく、マイクロコンピュータ１０に外付けされる外部メモリの技術トレンドの進化に対応させることができるので、ユーザシステム１において、マイクロコンピュータ１０を長期間にわたって採用し続けることができる。
【００７５】
（２）マイクロコンピュータ１０には、互いに位相が異なる複数段の内部クロック信号ＣＫ１〜ＣＫ１６を生成するクロック生成回路１４が設けられている。そして、メモリ制御部２０１では、上記複数段の内部クロック信号ＣＫ１〜ＣＫ１６のうちの一つを選択することで上記バス用外部クロック信号が得られる。
【００７６】
上記クロック生成回路１４で生成される複数段の内部クロック信号ＣＫ１〜ＣＫ１６は、互いに位相が異なるため、上記メモリ制御部２０１で選択される内部クロック信号の変更により、上記バス用外部クロック信号の位相を変更することができる。図５に示されるように、バス用外部クロック信号に基づいて、第２外部メモリ２２へのアクセスに用いられる制御信号のタイミングが決定される。このため、メモリ制御部２０１で選択される内部クロック信号を変更するだけで、上記バス用外部クロック信号、及びそれに基づいて形成される各種制御信号のタイミングを一斉に変更することができる。例えばユーザボード上で、マイクロコンピュータ１０の近傍に第２外部メモリ２２をレイアウトできない場合には、マイクロコンピュータ１０と第２外部メモリ２２との間のバス配線が長くなり、そこでの信号遅延が無視できない場合が考えられる。かかる場合、メモリ制御部２０１で選択される内部クロック信号を変更することにより、上記バス用外部クロック信号及びそれに基づいて形成される各種制御信号のタイミングを一斉に修正することができるので、各種制御信号のタイミング調整が容易となる。
【００７７】
以上本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【００７８】
例えば外部メモリ用外部端子ファンクションコントローラ１５による端子の機能割り当ての対象を、第２外部メモリ２２に対応するものに限定しても良い。
【００７９】
第２外部メモリ２２は、複数個設けることができる。
【００８０】
第２外部メモリ２２はＳＤＲＡＭに限定されない。例えば第２外部メモリ２２をＳＲＡＭ（Static Random Access Memory）とすることができる。第２外部メモリ２２がＳＲＡＭの場合、図６に示されるレジスタ２０４−７，２０４−８への設定は不要とされる。
【符号の説明】
【００８１】
１  ユーザシステム
１０  マイクロコンピュータ
１１  発振回路
１２  ＣＰＵ
１３  ＲＯＭ及びＲＡＭ
１４  クロック生成回路
１５  外部メモリ用外部端子ファンクションコントローラ
１６  メモリコントローラ
１７  コントロールバス配線
１８  アドレスデータバス配線
１９  コントロールバス配線
２０  内部バス
２１  第１外部メモリ
２２  第２外部メモリ
６０−１〜６０−ｍ  端子割り当てレジスタ群
６４  端子割り当て制御部
２０１  メモリ制御部
２０３−１〜２０３ｎ  レジスタ
２０４−１〜２０４−ｎ  レジスタ
ＣＫ１〜ＣＫ１６  内部クロック信号
【図１】
2014170356.tif 000003
【図２】
2014170356.tif 000004
【図３】
2014170356.tif 000005
【図４】
2014170356.tif 000006
【図５】
2014170356.tif 000007
【図６】
2014170356.tif 000008