(57)【要約】【課題】メモリデバイスと通信するメモリコントローラを構成するためのシステムを提供する。【解決手段】メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビットとアドレスビットとのうちの少なくとも一方に関連している。システムは、メモリコントローラの第１のピンのセットに接続されているプログラマブル論理ブロックを備える。プログラマブル論理ブロックは、第１のピンのセットの一部からなる第２のピンのセットを用い、メモリデバイスのサイズにしたがってメモリデバイスとメモリコントローラとの間のデータ転送をイネーブルする。第２のピンのセット以外のピンは、１つ以上の他のアプリケーションに利用可能である。【選択図】図７
2012198895.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスと通信するメモリコントローラを構成するためのシステムであって、メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビットとアドレスビットとのうちの少なくとも一方に関連しており、
前記システムは、
前記メモリコントローラの第１のピンのセットに接続されているプログラマブル論理ブロックを備え、プログラマブル論理ブロックは、第１のピンのセットの一部からなる第２のピンのセットを用い、メモリデバイスのサイズにしたがってメモリデバイスとメモリコントローラとの間のデータ転送をイネーブルし、前記第２のピンのセット以外のピンは、１つ以上の他のアプリケーションに利用可能である、システム。
【請求項２】
プログラマブル論理ブロックとメモリデバイスとの間に接続されているラッチをさらに備え、ラッチは、メモリデバイスとメモリコントローラとの間でアドレスおよびデータビットを転送するべく、前記第２のピンのセットの複数のピンにおける多重化されたアドレスおよびデータビットのラッチを行う、請求項１に記載のシステム。
【請求項３】
プログラマブル論理ブロックは、メモリコントローラの第１のピンのセットのピンの間で１つ以上のアドレスビットを再編成するためのアドレス・シフト・ブロックを備え、再編成は、
メモリデバイスのサイズにしたがって前記１つ以上のアドレスビットを左シフトするステップと、
メモリデバイスのサイズにしたがって前記１つ以上のアドレスビットを右シフトするステップと、のうちの少なくとも一方によって行われる、請求項１に記載のシステム。
【請求項４】
前記１つ以上の他のアプリケーションは、別のメモリデバイスとの通信を含む、請求項１に記載のシステム。
【請求項５】
前記１つ以上の他のアプリケーションは、入力／出力デバイスとの通信を含む、請求項１に記載のシステム。
【請求項６】
メモリデバイスと通信するのに適切なメモリコントローラを構成するためのシステムであって、メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビットとアドレスビットとのうちの少なくとも一方に関連しており、
前記システムは、
前記メモリコントローラの第１のピンのセットに接続されているプログラマブル論理ブロックであって、第１のピンのセットの一部からなる第２のピンのセットを選択し、メモリデバイスのサイズにしたがってメモリデバイスとメモリコントローラとの間のデータ転送をイネーブルし、第２のピンのセットの選択は、メモリデバイスのサイズにしたがってメモリコントローラの第１のピンのセットのピンの間で１つ以上のアドレスビットを再編成することによって行われる、プログラマブル論理ブロックと、
プログラマブル論理ブロックに接続されており、アドレスおよびデータビットを多重化するためのマルチプレクサと、
マルチプレクサとメモリデバイスとの間に接続されているラッチであって、メモリデバイスとメモリコントローラとの間でアドレスおよびデータビットを転送するべく、前記第２のピンのセットの複数のピンにおける多重化されたアドレスおよびデータビットのラッチを行う、ラッチと、を備える、システム。
【請求項７】
ラッチおよびマルチプレクサの各々は、アドレスおよびデータビットの多重化を示す制御信号を受信するための制御ピンを備え、制御信号はアドレスビットおよびデータビットのうちの１つの転送を示す、請求項６に記載のシステム。
【請求項８】
複数のピンにおけるアドレスおよびデータビットの多重化は、アドレスビットの１つ以上の最上位ビット（ＭＳＢ）をデータビットに多重化することを含む、請求項７に記載のシステム。
【請求項９】
複数のピンにおけるアドレスおよびデータビットの多重化は、アドレスビットの１つ以上の最下位ビット（ＬＳＢ）をデータビットに多重化することを含む、請求項７に記載のシステム。
【請求項１０】
プログラマブル論理ブロックは、メモリデバイスのサイズにしたがって前記１つ以上のアドレスビットを左シフトすることによってメモリコントローラの第１のピンのセットのピンの間で１つ以上のアドレスビットを再編成するためのアドレス・シフト・ブロックを備える、請求項６に記載のシステム。
【請求項１１】
プログラマブル論理ブロックは、メモリデバイスのサイズにしたがって前記１つ以上のアドレスビットを右シフトすることによってメモリコントローラの第１のピンのセットのピンの間で１つ以上のアドレスビットを再編成するためのアドレス・シフト・ブロックを備える、請求項６に記載のシステム。
【請求項１２】
プログラマブル論理ブロックは、１つ以上の他のアプリケーションと通信するための第１のピンのセットの一部からなる第３のピンのセットを選択するためのセレクタを備え、通信は再編成されたアドレスビットのうちの残りのアドレスビットを用いて実行され、該残りのアドレスビットは第３のピンのセットに相当する、請求項６に記載のシステム。
【請求項１３】
メモリデバイスと通信するメモリコントローラを構成するための方法であって、メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビットとアドレスビットとのうちの少なくとも一方に関連しており、前記方法は、
メモリデバイスとメモリコントローラとの間のデータ転送をイネーブルするべく、第１のピンのセットの一部からなる第２のピンのセットを選択する工程であって、第２のピンのセットの選択は、メモリデバイスのサイズにしたがってメモリコントローラの第１のピンのセットのピンの間でアドレスビットを再編成することによって行われる、前記工程と、
メモリデバイスとメモリコントローラとの間でアドレスおよびデータビットを転送するべく、前記第２のピンのセットの複数のピンにおいてアドレスビットおよびデータビットを多重化する工程と、を備える方法。
【請求項１４】
アドレスおよびデータビットの多重化は、アドレスビットおよびデータビットのうちの１つの転送を示す制御信号によって制御される、請求項１３に記載の方法。
【請求項１５】
複数のピンにおけるアドレスおよびデータビットの多重化は、アドレスビットの１つ以上の最上位ビット（ＭＳＢ）をデータビットに多重化することを含む、請求項１３に記載の方法。
【請求項１６】
複数のピンにおけるアドレスおよびデータビットの多重化は、アドレスビットの１つ以上の最下位ビット（ＬＳＢ）をデータビットに多重化することを含む、請求項１３に記載の方法。
【請求項１７】
メモリコントローラの第１のピンのセットのピンの間でアドレスビットを再編成することは、メモリデバイスのサイズにしたがって１つ以上のアドレスビットを左シフトすることを含む、請求項１３に記載の方法。
【請求項１８】
メモリコントローラの第１のピンのセットのピンの間でアドレスビットを再編成することは、メモリデバイスのサイズにしたがって１つ以上のアドレスビットを右シフトすることを含む、請求項１３に記載の方法。
【請求項１９】
メモリデバイスとメモリコントローラとの間のデータ転送は、メモリデバイスからデータを読み取ることを含む、請求項１３に記載の方法。
【請求項２０】
メモリデバイスとメモリコントローラとの間のデータ転送は、メモリコントローラからメモリデバイスにデータを書き込むことを含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリコントローラに関し、より詳細には、メモリコントローラと他の１つ以上のデバイスとの間のデータ転送をイネーブルするべくメモリコントローラを構成するための方法およびシステムに関する。
【背景技術】
【０００２】
今日のほとんどのコンピュータシステムでは、通信およびデータ転送用に高機能回路が用いられる。これらのコンピュータシステムは、通常、メモリデバイスとマイクロコントローラ／マイクロプロセッサとの間の通信を管理するためのメモリコントローラを備える。このようなシステムは、通常、プリント回路基板（ＰＣＢ）を用いて実装されており、そうしたプリント回路基板（ＰＣＢ）は高効率で小型の回路を有するように設計されている。このように、そうした回路を設計する場合、空間を効率的に利用することが大きな課題である。様々なサイズのアドレス幅およびデータパスや、様々なタイプのメモリは、メモリコントローラには数々のピンが必要である。よって、全体のピンカウントを低く維持するべく、ピンの利用を管理する必要がある。
【０００３】
特許文献１には、アドレス−データの多重化されたバスを用いるマイクロコントローラシステムについて記載されている。ピンカウントを減少させる１つの方法は、メモリコントローラの１つ以上のピンを複数のアプリケーションに対して用いることである。従来のシステムでは、集積回路のピンカウントは、アドレスバスおよびデータバスを多重化することによって減少されている。このようなシステムでは、アドレスビットを搬送する１つ以上のピンは、異なる時間（インターバル）において、または制御信号に基づいて、データビットも搬送する。このようなシステムの１つでは、メモリアドレスの最上位ビット（ＭＳＢ）を搬送するピンは、データバスに多重化される。ピンは制御信号を用いて多重化され、制御信号がハイ（ｈｉｇｈ）であるとき、アドレスビットが転送され、制御信号がロー（ｌｏｗ）であるとき、データビットが転送される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６，７７８，４６３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、メモリサイズが減少され、アドレスビットを搬送してメモリデバイスのアドレスを指定するように設計されているすべてのピンが必要ではない場合、利用されていないピンは他のアプリケーションに用いられないので、ピンの利用は効率的でない。
【課題を解決するための手段】
【０００６】
本発明の一実施形態では、メモリデバイスと通信するメモリコントローラを構成するためのシステムを提供する。メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビット、アドレスビット、またはその両方に関連している。このシステムは、第１のピンのセットの一部を用いてメモリデバイスとメモリコントローラとの間のデータ転送をイネーブルするべく、メモリコントローラの第１のピンのセットに接続されているプログラマブル論理ブロックを備える。ピンは、メモリデバイスのサイズにしたがって、第１のピンのセットの該一部以外のピンが１つ以上の他のアプリケーションに利用可能であるように選択される。
【０００７】
本発明の別の実施形態では、メモリデバイスと通信するためのメモリコントローラを構成するためのシステムを提供する。メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビット、アドレスビット、またはその両方に関連している。このシステムは、第１のピンのセットの一部を選択してメモリデバイスとメモリコントローラとの間のデータ転送をイネーブルするべく、メモリコントローラの第１のピンのセットに接続されているプログラマブル論理ブロックを備える。この一部の選択は、メモリデバイスのサイズにしたがってメモリコントローラの第１のピンのセットのピンの間で１つ以上のアドレスビットを再編成することによって行われる。プログラマブル論理ブロックには、該一部のピンのうちの複数のピンにおいてアドレスおよびデータビットを多重化し、メモリデバイスとメモリコントローラとの間でアドレスおよびデータビットを転送するためのラッチが接続されている。
【０００８】
本発明の別のさらなる実施形態では、メモリデバイスと通信するためのメモリコントローラを構成するための方法を提供する。メモリコントローラは、複数のピンからなる第１のピンのセットを備え、各ピンはデータビットとアドレスビットとのうちの少なくとも一方に関連している。この方法は、メモリデバイスとメモリコントローラとの間のデータ転送をイネーブルするべく、第１のピンのセットの一部を選択する工程を備える。この一部の選択は、メモリデバイスのサイズにしたがってメモリコントローラの第１のピンのセットのピンの間でアドレスビットを再編成することによって行われる。この方法は、メモリデバイスとメモリコントローラとの間でアドレスおよびデータビットを転送するべく、前記第２のピンのセットの複数のピンにおいてアドレスビットおよびデータビットを多重化する工程をさらに備える。
【図面の簡単な説明】
【０００９】
【図１】メモリコントローラとメモリデバイスとのインタフェースを行うための従来のシステムを示す概略的なブロック図。
【図２】本発明の一実施形態によるメモリコントローラとメモリデバイスとのインタフェースを行うためのシステムを示す概略的なブロック図。
【図３Ａ】システム・オン・チップのメモリコントローラのピンに相当するアドレスビットの構成を示す図。
【図３Ｂ】本発明の一実施形態によるシステム・オン・チップのピンに相当するアドレスビットの構成を示す図。
【図４】本発明の一実施形態による図２のメモリコントローラインタフェースのプログラマブル論理ブロックの概略的なブロック図。
【図５Ａ】システム・オン・チップのメモリコントローラのピンに相当するアドレスビットの構成を示す図。
【図５Ｂ】本発明の別の実施形態によるシステム・オン・チップのピンに相当するアドレスビットの構成を示す図。
【図６】本発明の別の実施形態によるメモリコントローラインタフェースのプログラマブル論理ブロックの概略的なブロック図。
【図７】本発明の一実施形態によるメモリコントローラを構成するための方法を示すフローチャート。
【発明を実施するための形態】
【００１０】
本発明では、メモリコントローラを構成するためのシステムを提供する。メモリコントローラは、所与の時間においてアドレスビットとデータビットとのうちの１つを送信する複数のピンを備える。複数のピンのうちの一部のピンのセットは、メモリデバイスと通信するために用いられることが可能である。本発明について、以下では、最大４ギガバイトのメモリのアドレスを指定する（３２アドレスビットを必要とする）ために用いられることの可能なメモリコントローラに関連して記載する。この場合、４ＧＢのメモリデバイスがメモリコントローラに接続される場合、メモリコントローラのピンのセットの３２個のピンすべてがメモリデバイスと通信するために用いられる。当業者には認められるように、本発明は他のサイズのメモリデバイスに適用可能であり、４ＧＢのメモリデバイスに特定している記載は例示的なものである。
【００１１】
図１は、メモリコントローラ１０２と８メガバイトメモリデバイス１０４とのインタフェースを行うための従来のシステム１００を示す概略的なブロック図である。システム１００は、メモリコントローラ１０２、メモリデバイス１０４、およびラッチ１０６を備える。メモリコントローラ１０２は、アドレスビットおよびデータビットのうちの少なくとも一方を運ぶ３２個のピン、ＡＤ０−ＡＤ１５，Ａ１６−Ａ３１を備える。ピン番号ＡＤ０〜ＡＤ１５に相当する１６個の最上位ビット（ＭＳＢ）は、ラッチ１０６を通じて多重化されており、制御ピンによって提供される制御信号に基づきデータビットおよびアドレスビットのうちの一方を含む。制御信号がハイであるとき、ピンＡＤ０〜ＡＤ１５はアドレスビットを運び、制御信号がローであるとき、ピンＡＤ０〜ＡＤ１５を通じてデータビットが送信される。メモリコントローラ１０２のピンＡ１６〜Ａ３１（Ａ１６−Ａ３１）は、メモリデバイス１０４についてのみアドレス最下位ビット（ＬＳＢ）を運ぶ。当業者には、８ＭＢメモリデバイス１０４にはアドレス指定のために２３ビットが必要であることが理解される。よって、必要なアドレスビット（２３個のＬＳＢ）を運ぶためにピンＡＤ９−ＡＤ１５，Ａ１６−Ａ３１のみが用いられ、ピンＡＤ０−ＡＤ８（９個のＭＳＢに相当）は用いられない。用いられていないピンＡＤ０−ＡＤ８は他のアプリケーションに用いられることは不可能なので、これによって相当な量のスペースの損失が生じる。
【００１２】
図２は、本発明の一実施形態によるメモリコントローラ１０２とメモリデバイス１０４とのインタフェースを行うためのシステム２００を示す概略的なブロック図である。システム２００は、システム・オン・チップ（ＳｏＣ）２０２と、図１のメモリデバイス１０４およびラッチ１０６とを備える。ＳｏＣ２０２は、メモリコントローラ１０２およびプログラマブル論理ブロック２０４をさらに備える。ＳｏＣ２０２は、複数のピンを通じてメモリデバイス１０４に接続されている。本発明の一実施形態では、プログラマブル論理ブロック２０４はメモリコントローラ１０２の３２個のピンに接続されている。プログラマブル論理ブロック２０４は、３２個のピンからなるセットから、８ＭＢメモリデバイス１０４と通信するために用いられる複数のピン（ピンのサブセット）を選択する。本発明の一実施形態では、このサブセットは、８ＭＢメモリデバイス１０４と通信するための２３個のピンを含む。
【００１３】
メモリコントローラ１０２は、ピンＡＤ０−ＡＤ１５，Ａ１６〜Ａ３１を通じて１つ以上のアドレスビットをプログラマブル論理ブロック２０４に送信する。プログラマブル論理ブロック２０４では、メモリデバイス１０４と通信するために用いられる２３個のピンのサブセットを選択するべく、ビットは再編成される。プログラマブル論理ブロック２０４によるアドレスビットの再編成については、図３〜６に関連してより詳細に記載する。本発明の一実施形態では、ピンＡＤ０〜ＡＤ１５（ＡＤ０−ＡＤ１５）に相当する１６個の最上位ビット（ＭＳＢ）はラッチ１０６を通じて多重化され、制御信号に基づき、データビットおよびアドレスビットの両方が送信される。制御信号がハイであるとき、ピンＡＤ０−ＡＤ１５はアドレスビットを運び、制御信号がローであるとき、ピンＡＤ０−ＡＤ１５を通じてデータビットが運ばれる。さらに、２３個のピンのうちの選択されるサブセットに基づき、ピンＡ２５〜Ａ３１（Ａ２５−Ａ３１）がアドレスＬＳＢを運び、ピンＡ１６〜Ａ２４（Ａ１６−Ａ２４）は他の１つ以上のアプリケーションに自由に用いられることができる。本発明の異なる実施形態では、この他の１つ以上のアプリケーションは、別のメモリデバイスとの通信およびＩ／Ｏデバイスとの通信を含む。
【００１４】
１つ以上のピンによって運ばれる特定のビットを割り当てる目的で、アドレスビットがプログラマブル論理ブロック２０４によって再編成される。本発明の１つの実施形態では、ビットは、メモリデバイス１０４と通信するために選択されるピンのサブセットにおける複数のビットを左にシフトすることによって再編成される。本発明の第２の実施形態では、ビットは、メモリデバイス１０４と通信するために選択されるピンのサブセットにおける複数のビットを右にシフトすることによって再編成される。
【００１５】
図３Ａには、本発明によるＳｏＣ２０２のメモリコントローラ１０２のピンに相当するアドレスビットの構成を示す。アドレスのＭＳＢに相当するピンは、転送されるデータビットのピンにラッチされている。アドレスビットのセットの１６個のＭＳＢは、アドレスビットおよびデータビットの両方を運ぶように設計されているので、それらをピンＡＤ０−ＡＤ１５に相当するように示している。さらに、図３Ａの１６個のＬＳＢは、アドレスのみのビットであり、ピンＡ１６−Ａ３１に相当するように示す。メモリコントローラ１０２は８ＭＢメモリデバイス１０４と通信するので、アドレス情報を運ぶために２３ビットのみが利用される。図３Ａに示すように、この２３ビットはＳｏＣ２０２の３２個のアドレスビットからなる完全なセットのＬＳＢであり、ピンＡ１６−Ａ３１に相当するように示している。さらに、アドレス−データの多重化されているピンではビットのうちの７個のみが用いられており、メモリデバイス１０４と通信するために直接的に用いられる場合、アドレス−データの多重化されているピンの非効率的な利用が生じる。これは、図３ＡのピンＡＤ９−ＡＤ１５に相当する。しかしながら、この段階では、アドレス−データの多重化されているピンの部分的な利用が存在する。これは、プログラマブル論理ブロック２０４を使用する次の段階において改良される。
【００１６】
図３Ｂには、本発明の一実施形態によるＳｏＣ２０２の出力のピンに相当するアドレスビットの構成を示す。ピンＡＤ０−ＡＤ１５，Ａ１６−Ａ３１に相当するアドレスビットはプログラマブル論理ブロック２０４によって再編成されており、アドレス−データの多重化されているピンは、メモリコントローラ１０２とメモリデバイス１０４との間の通信において有効に利用される。図３Ｂに示すように、アドレスビットは図３Ａに示すように１６個のＭＳＢを左にシフトすることによって再編成され、アドレス−データの多重化されているピンＡＤ０−ＡＤ１５は有効なアドレス情報を送信し、有効に利用される。７個のＬＳＢは、それらの元の位置（Ａ２５−Ａ３１）に留まる。
【００１７】
図４は、本発明の一実施形態によるプログラマブル論理ブロック２０４の概略的なブロック図である。図２に関連して既に説明したように、メモリコントローラ１０２のピンに相当するビットは、８ＭＢメモリデバイス１０４との通信のために用いられる２３個のピンのサブセットを選択するべく再編成される。本発明の一実施形態では、この再編成は、プログラマブル論理ブロック２０４によって複数の所望のビットを左にシフトすることによって行われる。図４では、プログラマブル論理ブロック２０４は、アドレス左シフトブロック４０２および第１マルチプレクサ４０４を備える。図４のシステムは、第２のマルチプレクサ４０６およびラッチ１０６をさらに備える。本発明の一実施形態では、プログラマブル論理ブロック２０４の左シフトブロック４０２および第１マルチプレクサ４０４は、１つ以上のアプリケーションと通信するためのピンの第２のサブセットを選択するためのセレクタとして機能する。プログラマブル論理ブロック２０４は、２３個のピンのサブセットのうちの複数のビットを所定のカウントだけ左にシフトするように予めプログラムされている。例えば、図３の例では、ビットＡＤ９−ＡＤ２４は、所定のカウントである９だけ左にシフトされる（８ＭＢメモリデバイスを実装する場合、９個の使用されてないピンが存在するので）。これによってピンＡ１６−Ａ２４を解放して、別のメモリデバイスのアドレス指定、またはＩ／Ｏデバイスとの通信など、他の１つ以上のアプリケーションに用いることが可能である。
【００１８】
メモリコントローラ１０２の３２個のアドレスビット（アドレスビット［０−３１］として表す）は、アドレス左シフトブロック４０２によって受け取られ、アドレス左シフトブロック４０２は所定のカウントである９だけ複数の所望のビットを左にシフトする。左にシフトされたビットはすべてピンＡＤ０−ＡＤ１６を通じて送信され、アドレスおよびデータビットの両方を運ぶように多重化される。左にシフトされたビットは第２のマルチプレクサ４０６に提供され、この第２のマルチプレクサ４０６は左にシフトされたアドレスビットおよびデータビットを多重化する。第２のマルチプレクサ４０６は、アドレス・ラッチ・イネーブル信号（ＡＬＥ）がハイであるとき、この左にシフトされたアドレスビットを出力する。本発明の一実施形態では、ラッチ１０６は外部ラッチである。ラッチ１０６は、マルチプレクサ４０６の出力に設けられ、ＡＬＥがハイであるとき、左にシフトされたアドレスビットのラッチを行う。マルチプレクサ４０６およびラッチ１０６の両方がＡＬＥ信号を受信する。アドレス左シフトブロック４０２によってシフトされないアドレスビットは、図４のアドレス出力ピンに直接出力される。
【００１９】
図５Ａには、本発明によるＳｏＣ２０２のメモリコントローラ１０２のピンに相当するアドレスビットの構成を示す。アドレスのＭＳＢに相当するピンは、転送されるデータビットを運ぶピンにラッチされている。図５Ａの１６個のＬＳＢは、アドレスのみのビットであり、ピンＡ１６−Ａ３１に相当するように示す。メモリコントローラ１０２は８ＭＢメモリデバイス１０４と通信するので、アドレス情報を運ぶために２３ビットのみが利用される。アドレスビットのセットの７個のＭＳＢは、アドレスビットおよびデータビットの両方を運ぶように設計されているので、それらをピンＡＤ９−ＡＤ１５に相当するように示している。さらに、ピンＡＤ０−ＡＤ８に相当する残りの９個のアドレスのＭＳＢもデータビットと多重化されるが、しかしながら、それらのピンは関連するアドレス情報を運ばず、他のピンを他のアプリケーションにおける使用のために解放するべく用いられることが可能である。これは次の段階で実行され、メモリコントローラ１０２のピンに相当するビットはプログラマブル論理ブロック２０４によって再編成され、それらのピンは他のアプリケーションに用いられることができる。
【００２０】
図５Ｂには、本発明の別の実施形態によるＳｏＣ２０２の出力のピンに相当するアドレスビットの構成を示す。ピンＡＤ０−ＡＤ１５，Ａ１６−Ａ３１に相当するアドレスビットは再編成されており、アドレス−データの多重化されているピンは、メモリコントローラ１０２とメモリデバイス１０４との間の通信において有効に利用される。図５Ｂに示すように、ビットは、図５Ａの７個のアドレスのＭＳＢ（ＡＤ９−Ａ１５）を図５ＢのＭＳＢ（Ａ２５−Ａ３１）に相当するピンまで右にシフトすることによって、再編成される。さらに、次の１６個のアドレスビットＡ１６−Ａ３１は、ＬＳＢのＡＤ０−ＡＤ１６まで左にシフトされ、ビットＡ１６−Ａ２４に相当するピンが解放される。
【００２１】
図６は、本発明の一実施形態によるプログラマブル論理ブロック２０４の概略的なブロック図である。図２に関連して既に説明したように、メモリコントローラ１０２のピンに相当するビットは、８ＭＢメモリデバイス１０４との通信のために用いられる２３個のピンのサブセットを選択するべく再編成される。本発明の一実施形態では、この再編成は、プログラマブル論理ブロック２０４によって複数の所望のビットを右にシフトすることによって行われる。プログラマブル論理ブロック２０４は、アドレス右シフトブロック６０２、第１のマルチプレクサ６０４、およびアドレス左シフトブロック６０６を備える。図４のシステムは、第２のマルチプレクサ６０８およびラッチ１０６をさらに備える。本発明の一実施形態では、右シフトブロック６０２、第１のマルチプレクサ６０４、および左シフトブロック６０６は、１つ以上のアプリケーションと通信するためのピンの第２のサブセットを選択するためのセレクタとして機能する。プログラマブル論理ブロック２０４は、２３個のピンのサブセットのうちの複数のビットを所定のカウントだけ右にシフトするように予めプログラムされている。例えば、図５Ａの例では、ビットＡＤ０−ＡＤ６は、所定のカウントだけ右の方にシフトされる。本発明の一実施形態では、この所定のカウントは、アドレスのＭＳＢがレジスタ空間ＡＤ０−ＡＤ３１のインデックス３１に整合されるようなものである。図５Ｂに示した実施形態では、ビットＡＤ９−ＡＤ１５は、所定のカウントである１６だけ右にシフトされる。さらに、左シフトブロック６０６は、残りのアドレスビットＡ１６−Ａ３１を左にシフトし、それらのビットはビットＡＤ０−ＡＤ１５として再編成される。これによってピンＡ１６−Ａ２４を解放して、別のメモリデバイスのアドレス指定、またはＩ／Ｏデバイスとの通信など、他の１つ以上のアプリケーションに用いることが可能である。
【００２２】
３２個のアドレスビット（アドレスビット［０−３１］として表す）は、アドレス右シフトブロック６０２によって受け取られ、アドレス右シフトブロック６０２は所定のカウントである１６だけ複数の所望のビットを右にシフトし、アドレスのＭＳＢをインデックス３１に整合させる。右にシフトされたビットは、次いで、第１のマルチプレクサ６０４を通じてアドレス出力（Ａｄｄｒｅｓｓ  ｏｕｔ）ピンに提供される。右シフトされていないビットのうちの第２のビットの組（例えば、図５ＡのＡ１６−Ａ３１）は、左シフトブロック６０８によって左シフトされ、この左にシフトされたビットは図５ＢのＬＳＢ、ＡＤ０−Ａ１５を占める。この左にシフトされたビットは、次いで、第２のマルチプレクサ６０８を通じてラッチ１０６に提供される。ラッチ１０６は、図６のアドレスビット［０−３１］のうちの左にシフトされたアドレスビットと、図６のデータビット［０−３１］によって表されるデータビットとのラッチを行う。本発明の一実施形態では、ラッチ１０６は外部ラッチである。このラッチは、アドレス・ラッチ・イネーブル信号（ＡＬＥ）に関連して行われる。ＡＬＥがハイであるとき、第２のマルチプレクサ６０８はラッチ１０６によってラッチされたアドレスビットを出力し、ＡＬＥがローであるとき、第２のマルチプレクサ６０８はデータビット［０−３１］を出力する。  図７は、本発明の一実施形態によるメモリコントローラを構成するための方法を示すフローチャート７００である。フローチャート７００は図２に関連して記載されている。ステップ７０２において、メモリコントローラ１０２とメモリデバイス１０４との間のデータ転送をイネーブルするべく、ＩＣデバイスにおける複数のピンからなるピンのセットからサブセットが選択される。これは、プログラマブル論理ブロック２０４がＳｏＣ２０２の出力ピンのセットの間でアドレスビットを再編成することによって行われる。ステップ７０４において、メモリコントローラ１０２とメモリデバイス１０４との間の通信が、所定の複数のピンにおけるアドレスおよびデータビットを多重化することによってイネーブルされる。ここで、この所定の複数のピンは、メモリコントローラ１０２とメモリデバイスとの間の通信用に選択されるピンのサブセットに属する。
【００２３】
上述の方法およびシステムには数々の利点が存在する。この方法は、アドレスとデータビットとの間で最大数のピンの共有を可能とするように実装される。さらに、この同じピンのセットは、別のメモリデバイスとの通信や、入力／出力デバイスとの通信など、１つ以上のアプリケーションにおいて利用されてもよい。これによって、改良された低コストかつ空間を効率的に利用したＩＣデバイスが得られる。さらに、本発明によって、ピンの数が極めて限られているローエンドおよび超ローエンドのＳＯＣに付加価値を与えるように用いられることが可能である。プログラマブル論理ブロックは、メモリデバイスのサイズに応じて使用されていないピンを解放するようにプログラムされてもよい。また、本発明を用いてピンの数を部分的に減少させることができるので、それによって、低コスト、低電力のシステム設計が可能となる。
【図１】
2012198895.tif 000003
【図２】
2012198895.tif 000004
【図３Ａ】
2012198895.tif 000005
【図３Ｂ】
2012198895.tif 000006
【図４】
2012198895.tif 000007
【図５Ａ】
2012198895.tif 000008
【図５Ｂ】
2012198895.tif 000009
【図６】
2012198895.tif 000010
【図７】
2012198895.tif 000011