(57)【特許請求の範囲】
【請求項１】
一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、
第１、第２及び第３のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続されるバススイッチを含み、
前記バススイッチは、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバス及び前記第２のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させる選択手段を含み、
前記選択手段は、前記バススイッチが前記第１のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの第１のアクセス要求を受信した場合に、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバスに接続させることで、前記一次コントローラからの第１のチップ選択信号、第１のクロック信号及び第１のＭＯＳＩ信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスし、
前記第１のアクセス要求は前記第１のチップ選択信号から供給され、
前記一次コントローラの第１のＭＩＳＯ信号及び前記二次コントローラの第２のＭＩＳＯ信号は、前記第１、第２及び第３のシリアル周辺機器インタフェースバスを介することなく、前記フラッシュメモリの出力信号から直接的に供給されることを特徴とするメモリ制御装置。
【請求項２】
前記選択手段は、前記第１のチップ選択信号により供給された前記一次コントローラからの前記第１のアクセス要求が完成し、且つ前記バススイッチが前記第２のシリアル周辺機器インタフェースバスを介して前記二次コントローラからの第２のアクセス要求を受信した場合に、前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させることで、前記二次コントローラからの第２のチップ選択信号、第２のクロック信号及び第２のＭＯＳＩ信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスすることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記バススイッチは、前記バススイッチが前記第１のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの前記第１のアクセス要求を受信した場合に、前記二次コントローラに停止信号をさらに発信することで、前記二次コントローラが前記フラッシュメモリに対するアクセスを停止するように通知することを特徴とする請求項１に記載のメモリ制御装置。
【請求項４】
前記一次コントローラが前記フラッシュメモリをアクセスする時に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、
前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、をさらに含み、
前記一次コントローラは、前記割り込み要求に応じて、前記フラッシュメモリに対するアクセスを停止することを特徴とする請求項１に記載のメモリ制御装置。
【請求項５】
前記バススイッチの前記選択手段は、前記一次コントローラが前記フラッシュメモリに対するアクセスを停止したと前記第１のチップ選択信号により示された場合に、前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させることで、前記二次コントローラからの第２のチップ選択信号、第２のクロック信号及び第２のＭＯＳＩ信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスすることを特徴とする請求項４に記載のメモリ制御装置。
【請求項６】
前記バス共用調整手段は、前記選択手段が前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させた場合に、前記カウントされた待ち時間をアクセス時間として設定し、
前記割り込み手段は、前記二次コントローラが前記フラッシュメモリをアクセスする時間が前記アクセス時間に達した場合に、前記一次コントローラへの前記割り込み要求の発送を停止することを特徴とする請求項５に記載のメモリ制御装置。
【請求項７】
前記一次コントローラは、チップセット内に設置されることを特徴とする請求項１に記載のメモリ制御装置。
【請求項８】
前記メモリ制御装置及び前記二次コントローラは、スーパーＩ／Ｏ集積回路内に設置されることを特徴とする請求項１に記載のメモリ制御装置。
【請求項９】
一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、
第１、第２及び第３のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続されるバススイッチと、
前記一次コントローラが前記フラッシュメモリをアクセスする時に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、
前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、を含み、
前記バススイッチは、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバス及び前記第２のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させる選択手段を含み、
前記選択手段は、前記バススイッチが前記第１のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの第１のアクセス要求を受信した場合に、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバスに接続させ、
前記バス共用調整手段は、前記選択手段が前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させた場合に、前記カウントされた待ち時間をアクセス時間として設定し、
前記割り込み手段は、前記二次コントローラが前記フラッシュメモリをアクセスする時間が前記アクセス時間に達した場合に、前記一次コントローラへの前記割り込み要求の発送を停止することを特徴とするメモリ制御装置。
【請求項１０】
一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、
第１、第２及び第３のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続され、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバス及び前記第２のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させ、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバスに接続させる場合に前記一次コントローラが前記フラッシュメモリをアクセスするバススイッチと、
前記一次コントローラが前記フラッシュメモリをアクセスする場合に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、
前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、を含み、
前記一次コントローラは、前記割り込み要求に応じて、前記フラッシュメモリに対するアクセスを停止し、
前記一次コントローラの第１のＭＩＳＯ信号及び前記二次コントローラの第２のＭＩＳＯ信号は、前記第１、第２及び第３のシリアル周辺機器インタフェースバスを介することなく、前記フラッシュメモリの出力信号から直接的に供給されることを特徴とするメモリ制御装置。
【請求項１１】
前記バススイッチは、前記一次コントローラが前記フラッシュメモリに対するアクセスを停止した場合に、前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させることで、前記二次コントローラが前記フラッシュメモリをアクセスできることを特徴とする請求項１０に記載のメモリ制御装置。
【請求項１２】
前記バス共用調整手段は、前記バススイッチが前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させた場合に、前記カウントされた待ち時間をアクセス時間として設定し、
前記割り込み手段は、前記二次コントローラが前記フラッシュメモリをアクセスする時間が前記アクセス時間に達した場合に、前記一次コントローラへの前記割り込み要求の発送を停止することを特徴とする請求項１１に記載のメモリ制御装置。
【請求項１３】
前記一次コントローラは、チップセット内に設置されることを特徴とする請求項１０に記載のメモリ制御装置。
【請求項１４】
前記メモリ制御装置及び前記二次コントローラは、スーパーＩ／Ｏ集積回路内に設置されることを特徴とする請求項１０に記載のメモリ制御装置。
【請求項１５】
一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、
第１、第２及び第３のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続され、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバス及び前記第２のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させ、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバスに接続させる場合に前記一次コントローラが前記フラッシュメモリをアクセスするバススイッチと、
前記一次コントローラが前記フラッシュメモリをアクセスする場合に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、
前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、を含み、
前記バス共用調整手段は、前記バススイッチが前記第３のシリアル周辺機器インタフェースバスを前記第２のシリアル周辺機器インタフェースバスに接続させた場合に、前記カウントされた待ち時間をアクセス時間として設定し、
前記割り込み手段は、前記二次コントローラが前記フラッシュメモリをアクセスする時間が前記アクセス時間に達した場合に、前記一次コントローラへの前記割り込み要求の発送を停止することを特徴とするメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置に係り、特に、シリアル周辺機器インタフェース（SPI：Serial  Peripheral  Interface）フラッシュメモリのメモリ制御装置に関する。
【背景技術】
【０００２】
フラッシュメモリ（flash  memory）はメインボードによく用いられる記憶装置であり、パソコン及びノートパソコンに広範囲で適用されている。フラッシュメモリは、各種の形態のデータを記憶することができるため、メインボードにあるチップセット（chipset）及びその他の周辺集積回路（IC：Integrated  Circuit）はフラッシュメモリを用いることでデータのアクセスを行い、ユーザから伝達された指令を遂行することになる。
【０００３】
現在、ほとんどのコンピュータシステムが起動プログラムを実行するデータ（例えば基本入出力システム（BIOS：Basic  Input/Output  System））は、コンピュータのフラッシュメモリに保存されている。メインボードでは、組込コントローラによってフラッシュメモリ内のデータをアクセスすることができる。一般的には、組込コントローラとフラッシュメモリとの間は、シリアル周辺機器インタフェース（SPI：Serial  Peripheral  Interface）を介して接続されている。
【０００４】
コンピュータシステムでは、SPIは二種類の装置（即ち主装置（master）と従装置（slave））の間でシリアルデータの交換を許可するインタフェースである。SPIバスは、主にチップ選択（CS：Chip  Select）、クロック（clock）、主装置出力従装置入力（MOSI：Master  Output  Slave  Input）及び主装置入力従装置出力（MISO：Master  Input  Slave  Output）の４種類の信号から構成されている。チップ選択信号CSが動作する場合のみ、SPIバスは他の三つの信号によってデータの受信及び送信を行うことが可能となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、フラッシュメモリに対するアクセスの効率を向上できるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一の態様によれば、一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、第１、第２及び第３のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続されるバススイッチを含む、前記バススイッチは、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバス及び前記第２のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させる選択手段を含む、前記選択手段は、前記バススイッチが前記第１のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの第１のアクセス要求を受信した場合に、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバスに接続させることで、前記一次コントローラからの第１のチップ選択信号、第１のクロック信号及び第１のＭＯＳＩ信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスし、前記第１のアクセス要求は前記第１のチップ選択信号から供給されることを特徴とするメモリ制御装置を提供する。
【０００７】
また、本発明の更に他の態様によれば、一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、第１、第２及び第３のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続され、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバス及び前記第２のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させ、前記第３のシリアル周辺機器インタフェースバスを前記第１のシリアル周辺機器インタフェースバスに接続させる場合に前記一次コントローラが前記フラッシュメモリをアクセスするバススイッチと、前記一次コントローラが前記フラッシュメモリをアクセスする場合に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、を含み、前記一次コントローラは、前記割り込み要求に応じて、前記フラッシュメモリに対するアクセスを停止することを特徴とするメモリ制御装置を提供する。
【発明の効果】
【０００８】
本発明によれば、一次コントローラ及び二次コントローラがフラッシュメモリを効率的にアクセスすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一の実施例に係るメモリ制御装置を用いるコンピュータシステムを示す図である。
【図２】本発明の一の実施例に係るバススイッチを示す図である。
【図３】図２におけるバススイッチの信号を示す波形図である。
【図４】図２におけるバススイッチの信号を示す他の波形図である。
【図５】本発明の他の実施例に係るバススイッチを示す図である。
【図６】本発明の他の実施例に係るメモリ制御装置を示す図である。
【図７】本発明の一の実施例に係るメモリ制御装置に適用するバス共用調整方法を示す図である。
【発明を実施するための形態】
【００１０】
上述した本発明に係る技術的内容、他の目的、特徴及び効果は、以下の図面を参照しながら、好適な実施形態の詳細な説明に示されるように、明らかである。
（実施例）
図１は、本発明の一の実施例に係るメモリ制御装置を用いるコンピュータシステム１００を示している。コンピュータシステム１００は、チップセット（chipset）１０、スーパーＩ／Ｏ（super  I/O）集積回路２０及びフラッシュメモリ３０を有する。図１において、フラッシュメモリ３０はシリアル周辺機器インタフェース（SPI）メモリであるため、チップセット１０及びスーパーＩ／Ｏ集積回路２０は、いずれもSPI標準に合っているバスでフラッシュメモリ３０に接続する。チップセット１０はコントローラ１５を有し、コントローラ１５はフラッシュメモリ３０をアクセスする、例えば基本入出力システム（BIOS）をアクセスする。スーパーＩ／Ｏ集積回路２０はコントローラ２５を有し、コントローラ２５はフラッシュメモリ３０をアクセスする、例えば読み出し専用メモリコード（ROM  code）をアクセスする。一般的には、チップセット１０はリアルタイムでフラッシュメモリ３０をアクセスする必要があり、スーパーＩ／Ｏ集積回路２０はフラッシュメモリ３０をチップセット１０と共用する必要がある。このため、本実施例では、コントローラ１５及びコントローラ２５は主装置（master）であり、フラッシュメモリ３０は従装置（slave）である。また、チップセット１０のフラッシュメモリ３０に対するアクセスの優先度はスーパーＩ／Ｏ集積回路２０よりも高いため、コントローラ１５及びコントローラ２５それぞれは一次（primary）コントローラ及び二次（secondary）コントローラと見なされてもよい。
【００１１】
図１には、スーパーＩ／Ｏ集積回路２０はメモリ制御装置４０をさらに有し、メモリ制御装置４０はバススイッチ５０を有する。バススイッチ５０は、バスＢＵＳ１を介してコントローラ１５からのチップ選択信号ＣＳ＿ＰＲＩ、クロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩを受信することができる。また、バススイッチ５０は、バスＢＵＳ２を介してコントローラ２５からのチップ選択信号ＣＳ＿ＳＥＣ、クロック信号ＳＣＬＫ＿ＳＥＣ及び主装置出力従装置入力信号ＭＯＳＩ＿ＳＥＣを受信することができる。そして、バススイッチ５０は、チップ選択信号ＣＳ＿ＰＲＩ及びチップ選択信号ＣＳ＿ＳＥＣに基づいて、バスＢＵＳ３をバスＢＵＳ１又はバスＢＵＳ２に接続させることで、コントローラ１５又はコントローラ２５からの信号をバスＢＵＳ３を介してフラッシュメモリ３０に伝送する。例えば、コントローラ１５がフラッシュメモリ３０をアクセスしようとする時には、コントローラ１５がチップ選択信号ＣＳ＿ＰＲＩを介してアクセス要求をバススイッチ５０に発送して、バススイッチ５０がバスＢＵＳ３をバスＢＵＳ１に接続させ、コントローラ２５に停止信号ＳＴＯＰを発信する。コントローラ１５がフラッシュメモリ３０に対するアクセスを完成し、且つコントローラ２５がチップ選択信号ＣＳ＿ＳＥＣを介してアクセス要求をバススイッチ５０に発送した場合は、バススイッチ５０がバスＢＵＳ３をバスＢＵＳ２に接続させることで、コントローラ２５がフラッシュメモリ３０を引き続きアクセスすることができる。一般的には、主装置は、主装置出力従装置入力信号（ＭＯＳＩ）を介して指令、アドレス及びデータなどの情報を従装置に伝送する。例えば、書き込み操作の場合は、コントローラ１５は、主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩを介して指令ＣＭＤ、アドレスＡＤＤ及びデータＤＡＴなどの情報をフラッシュメモリ３０に順次伝送することで、フラッシュメモリ３０のアドレスＡＤＤにデータＤＡＴを書き込む。また、読み取り操作の場合は、コントローラ１５は、主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩを介して指令ＣＭＤ及びアドレスＡＤＤをフラッシュメモリ３０に順次伝送することで、フラッシュメモリ３０からアドレスＡＤＤに記憶されているデータを読み取る。なお、コントローラ１５及びコントローラ２５の主装置入力従装置出力信号（ＭＩＳＯ）は、バスＢＵＳ１〜バスＢＵＳ３を介することなく、フラッシュメモリ３０から直接的に供給される。
【００１２】
図２は、本発明の一の実施例に係るバススイッチ５０を示す図である。バススイッチ５０は、プロセスユニット５２、プロセスユニット５４、選択ユニット５６、及びプロセスユニット５８を含む。図１及び図２に示すように、バススイッチ５０がコントローラ１５からのアクセス要求を受信した場合は、プロセスユニット５２は、チップ選択信号ＣＳ＿ＰＲＩ、クロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩのタイミング（timing）を調整して、信号ＣＳ＿１、信号ＭＯＳＩ＿１及び信号ＳＣＬＫ＿１を夫々発生する。そして、プロセスユニット５４は、信号ＳＣＬＫ＿１のデューティ周期（duty  cycle）を更に調整して、信号ＳＣＬＫ＿２を発生する。そして、選択ユニット５６は、チップ選択信号ＣＳ＿ＰＲＩに基づいて、信号ＣＳ＿１、信号ＳＣＬＫ＿２及び信号ＭＯＳＩ＿１をフラッシュメモリ３０に伝送しようとするチップ選択信号ＣＳ、クロック信号ＳＣＬＫ及び主装置出力従装置入力信号ＭＯＳＩとして、バスＢＵＳ３に選択的に出力することができる。本実施例では、選択ユニット５６は、マルチプレクサー（multiplexer）である。従って、選択ユニット５６は、受信された信号に基づいて、第１組の入力端子Ａ０〜Ａ２又は第２組の入力端子Ｂ０〜Ｂ２を出力端子Ｙ０〜Ｙ２に接続させて出力を行うことができる。また、プロセスユニット５８は、チップ選択信号ＣＳ＿ＰＲＩに基づいて、コントローラ２５に停止信号ＳＴＯＰを供給する。本実施例では、プロセスユニット５８はインバータ（inverter）である。
【００１３】
図３は、図２におけるバススイッチ５０の信号波形図であり、単に本発明の一例であり、本発明はここに例示されるものに限定されない。図３において、チップ選択信号ＣＳ＿ＰＲＩ又はチップ選択信号ＣＳ＿ＳＥＣが低論理レベルとなる場合は、チップセット１０又はスーパーＩ／Ｏ集積回路２０がアクセス要求を発送することを示す。また、主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＳＥＣは、最上位ビット（most  significant  bit）から最下位ビット（least  significant  bit）までの方法で指令ＣＭＤ、アドレスＡＤＤ及びデータＤＡＴなどの情報を伝送する。図１乃至図３に示すように、まず、周期Ｐ１において、コントローラ１５からのチップ選択信号ＣＳ＿ＰＲＩは高論理レベルとなる。このため、チップセット１０はフラッシュメモリ３０に対するアクセスを行っていない。時点ｔ１において、コントローラ２５からのチップ選択信号ＣＳ＿ＳＥＣは高論理レベルから低論理レベルに変わった。そこで、バススイッチ５０はバスＢＵＳ３をバスＢＵＳ２に接続させることで、コントローラ２５がフラッシュメモリ３０をアクセスすることができる。そして、コントローラ２５は、フラッシュメモリ３０にクロック信号ＳＣＬＫ＿ＳＥＣ及び主装置出力従装置入力信号ＭＯＳＩ＿ＳＥＣを伝送する。コントローラ２５が指令情報ＣＭＤを伝送している時に、コントローラ１５は時点ｔ２においてチップ選択信号ＣＳ＿ＰＲＩを低論理レベルに移行させる。そこで、プロセスユニット５８がコントローラ２５に停止信号ＳＴＯＰを発信し、バススイッチ５０がバスＢＵＳ３をバスＢＵＳ１に接続させることで、コントローラ１５がフラッシュメモリ３０をアクセスすることができる。本実施例では、プロセスユニット５２は、チップ選択信号ＣＳ＿ＰＲＩを所定の時間ＴＤ遅らせてからフラッシュメモリ３０に伝送し、所定の時間ＴＤはフラッシュメモリのタイミング規格に従う。同様に、プロセスユニット５２は、クロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩを該所定の時間ＴＤ遅らせてからフラッシュメモリ３０に伝送する。例えば、矢印３０１に示すように、チップ選択信号ＣＳ＿ＰＲＩと比べて、バススイッチ５０は、フラッシュメモリ３０に伝送しようとするチップ選択情報ＣＳを、所定の時間ＴＤ遅らせてから、高論理レベルから低論理レベルに移行させる。所定の時間ＴＤ遅らせることで、フラッシュメモリ３０でタイミング違反（timing  violation）が発生することを回避することができる。また、矢印３０２、３０３の夫々に示すように、クロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩと比べて、バススイッチ５０は、フラッシュメモリ３０に伝送しようとするクロック信号ＳＣＬＫ及び主装置出力従装置入力信号ＭＯＳＩを、所定の時間ＴＤ遅らせてから、フラッシュメモリ３０に伝送する。
【００１４】
なお、矢印３０２、３０３に示しているところで、プロセスユニット５２はクロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩを遅らせる。しかし、主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩの指令情報ＣＭＤが受信された場合、プロセスユニット５２が指令情報ＣＭＤに対応するクロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩのタイミングを調整し始めることで、フラッシュメモリ３０がコントローラ１５からのアドレス情報ＡＤＤ及びデータ情報ＤＡＴを同期的に受信することができる。例えば、指令情報ＣＭＤは８つのビットＣＭＤ７〜ＣＭＤ０を含む。主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩには、指令情報ＣＭＤの各ビットの周期はＴ１である。フラッシュメモリ３０に伝送されるアドレス情報ＡＤＤ及びデータ情報ＤＡＴ（即ち、主装置出力従装置入力信号ＭＯＳＩ）と、コントローラ１５から供給されるアドレス情報ＡＤＤ及びデータ情報ＤＡＴ（即ち、主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩ）とを同期させるために、プロセスユニット５２は、指令情報ＣＭＤにおいて前の遅れさせられた所定の時間ＴＤを埋め合わせる、即ちバスＢＵＳ３のクロック信号ＳＣＬＫ及び主装置出力従装置入力信号ＭＯＳＩによって指令情報ＣＭＤを加速的に伝送する。即ち、主装置出力従装置入力信号ＭＯＳＩでは、指令情報ＣＭＤの各ビットの周期Ｔ２は周期Ｔ１よりも小さい。本実施例では、遅れさせられた所定の時間ＴＤは、指令情報ＣＭＤの各ビットで均一的に埋め合わせられるため、Ｔ２＝Ｔ１−ＴＤ／８となる。従って、周期Ｐ３において、バスＢＵＳ３におけるクロック信号ＳＣＬＫ及び主装置出力従装置入力信号ＭＯＳＩは、バスＢＵＳ１におけるクロック信号ＳＣＬＫ＿ＰＲＩ及び主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩと同期することになる。そして、時点ｔ３において、コントローラ１５からのチップ選択信号ＣＳ＿ＰＲＩが低論理レベルから高論理レベルになって、コントローラ１５がフラッシュメモリに対するアクセスを完成する。そして、時点ｔ４において、コントローラ２５は、チップ選択情報ＣＳ＿ＳＥＣを高論理レベルから低論理レベルに移行させて、フラッシュメモリ３０にアクセス要求を発送する。コントローラ１５のフラッシュメモリ３０に対するアクセスが終了したから、バススイッチ５０はバスＢＵＳ３をバスＢＵＳ２に接続させる。そして、コントローラ２５はフラッシュメモリ３０にクロック信号ＳＣＬＫ＿ＳＥＣ及び主装置出力従装置入力信号ＭＯＳＩ＿ＳＥＣを伝送して、アクセスを行う。
【００１５】
図４は、図２におけるバススイッチ５０の信号を示す他の波形図であり、プロセスユニット５４により調整されたクロック信号のデューティ周期を示している。図１、図２及び図４に示すように、コントローラ１５がフラッシュメモリ３０に対して読み取り操作を行う時に、コントローラ１５からのチップ選択信号ＣＳ＿ＰＲＩは低論理レベルとなる。コントローラ１５が主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩにより読み取り指令及び読み取りアドレスの伝送を完成した後で、フラッシュメモリ３０は、当該読み取りアドレスに記憶されているデータを、バスＢＵＳ３の主装置入力従装置出力信号ＭＩＳＯによりコントローラ１５に伝送する。本実施例では、フラッシュメモリ３０は、受信されたクロック信号の立下りエッジ（falling  edge）で読み取りデータＲＤＡＴＡをバスＢＵＳ３に出力する。このため、バススイッチ５０は、クロック信号ＳＣＬＫ＿ＰＲＩの立上りエッジ（rising  edge）を受信した時に、フラッシュメモリ３０へのクロック信号ＳＣＬＫの立上りエッジも発生する。そして、バススイッチ５０がフラッシュメモリ３０へのクロック信号ＳＣＬＫの立下りエッジを予め発生することで、フラッシュメモリ３０は読み取りデータＲＤＡＴＡ７、ＲＤＡＴＡ６、ＲＤＡＴＡ５及びＲＤＡＴＡ４などをバスＢＵＳ３に予め出力する。図４に示すように、ＳＣＬＫ＿ＰＲＩの立下りエッジと比べて、クロック信号ＳＣＬＫの立下りエッジが周期ＴＰ繰り上げられることで、信号の集積回路を通る時の入力／出力待ち時間（I/O  latency）を埋め合わせることができる。従って、チップセット１０はより高い速度で動作できる。
【００１６】
図５は、本発明の他の実施例に係るバススイッチ２００を示す図である。本実施例では、バススイッチ２００はマルチビット（multibit）のＳＰＩフラッシュメモリ、例えば２ビット（dual）及び４ビット（quad）に適用することができるため、主装置及び従装置の主装置出力従装置入力信号ＭＯＳＩ及び主装置入力従装置出力信号ＭＩＳＯは双方向信号である。図２のバススイッチ５０と比べて、バススイッチ２００は方向制御ユニット５１、インバータ５３、及びＩ／Ｏ制御ユニット５５、５７をさらに含む。方向制御ユニット５１は、デコーダー（decoder）と見なされてもよく、バスＢＵＳ３における主装置出力従装置入力信号ＭＯＳＩ及びバスＢＵＳ１における主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩの伝送方向を制御し、Ｉ／Ｏ制御ユニット５５及び５７を制御するように信号ＭＯＳＩ＿ＯＥ及び信号ＭＯＳＩ＿ＰＲＩ＿ＯＥを発生することで、バスＢＵＳ１からの主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩをバスＢＵＳ３に伝送する、或いはバスＢＵＳ３からの主装置出力従装置入力信号ＭＯＳＩをＢＵＳ１に伝送する。例えば、信号ＭＯＳＩ＿ＰＲＩ＿ＯＥによる制御では、Ｉ／Ｏ制御ユニット５５はバスＢＵＳ１における主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩに基づいてプロセスユニット５２に信号ＭＯＳＩ＿ＰＲＩ＿ＩＮを供給し、信号ＭＯＳＩ＿ＯＥによる制御では、Ｉ／Ｏ制御ユニット５７は選択ユニット５６の出力ＭＯＳＩ＿ＯＵＴに基づいてバスＢＵＳ３に信号ＭＯＳＩを供給することによって、チップセットからの信号がフラッシュメモリに伝送されることが可能となる。一方、信号ＭＯＳＩ＿ＯＥによる制御では、Ｉ／Ｏ制御ユニット５７はバスＢＵＳ３の信号ＭＯＳＩに基づいてＩ／Ｏ制御ユニット５５に信号ＭＯＳＩ＿ＰＲＩ＿ＯＵＴを供給し、信号ＭＯＳＩ＿ＰＲＩ＿ＯＥによる制御では、Ｉ／Ｏ制御ユニット５５は信号ＭＯＳＩ＿ＰＲＩ＿ＯＵＴに基づいてバスＢＵＳ１に主装置出力従装置入力信号ＭＯＳＩ＿ＰＲＩを供給することによって、フラッシュメモリからの信号がチップセットに伝送されることが可能となる。
【００１７】
図６は、本発明の他の実施例に係るメモリ制御装置３００を示す図である。図１のメモリ制御装置４０と比べて、メモリ制御装置３００は、バス共用調整ユニット６０及び割り込みユニット７０をさらに含む。一般的には、正常動作の場合は、チップセット１０はフラッシュメモリ３０を頻繁にアクセスすることはない。しかし、悪意のあるソフトウェア（malicious  software。Malwareを略称する）の攻撃を受けた場合は、チップセット１０はフラッシュメモリ３０をアクセスし続ける可能性があるため、スーパーＩ／Ｏ集積回路２０はフラッシュメモリ３０をアクセスすることができなくなる。即ち、バスＢＵＳ３はバスＢＵＳ１によりずっと占用されている。このため、スーパーＩ／Ｏ集積回路２０がフラッシュメモリ３０に対するアクセスを待っている時に、バス共用調整ユニット６０はスーパーＩ／Ｏ集積回路２０の待ち時間をカウントする。待ち時間が所定の時間を超えた場合に、バス共用調整ユニット６０は、チップセット１０へ割り込み要求ＩＮＴを発送させるように割り込みユニット７０に通知することで、フラッシュメモリ３０に対するアクセスを停止させるようにチップセット１０に通知する。チップセット１０がフラッシュメモリ３０に対するアクセスを停止した後で、メモリ制御装置３００はバスＢＵＳ３をバスＢＵＳ２に接続させることで、スーパーＩ／Ｏ集積回路２０がフラッシュメモリ３０に対して読み取りを行うことができる。また、バス共用調整ユニット６０は、チップセット１０とスーパーＩ／Ｏ集積回路２０とのフラッシュメモリ３０を使用する時間を均衡させるために、スーパーＩ／Ｏ集積回路２０の待ち時間Ｔｗａｉｔをカウントし、スーパーＩ／Ｏ集積回路２０のフラッシュメモリ３０をアクセス可能な時間を時間Ｔｗａｉｔ、即ち前の待ち時間となるように制御する。そして、バス共用調整ユニット６０によりカウントされた、スーパーＩ／Ｏ集積回路２０のフラッシュメモリ３０をアクセスする時間が時間Ｔｗａｉｔに達した場合に、バス共用調整ユニット６０は割り込み要求ＩＮＴをキャンセルさせるように割り込みユニット７０に通知する。そして、チップセット１０はフラッシュメモリ３０を引き続きアクセスすることができる。本実施例では、監視（watch  dog）メカニズムで割り込み要求ＩＮＴを発送してもよい。
【００１８】
図７は、本発明の一の実施例に係るバス共用調整方法を示す図であり、当該バス共用調整方法はメモリ制御装置（例えば図６のバス共用調整方法３００）に適用し、当該メモリ制御装置はＳＰＩバスにより複数の主装置及び従装置に接続される。複数の主装置は一つの一次（primary）装置（例えば、図６のチップセット１０）、及び少なくとも一つの二次（secondary）装置（例えば、図６のスーパーＩ／Ｏ集積回路２０）を含み、従装置はメモリ（例えば、図６のフラッシュメモリ３０）である。まず、ステップＳ７０２において、二次装置がメモリに対するアクセスを待っているか否か、即ちメモリが一次装置によりアクセスされているか否かを判断する。ＹＥＳの場合、カウンタがカウントアップ（count  up）する（ステップＳ７０４）、例えばカウンタのカウンタ値に１をプラスする。次に、ステップＳ７０６において、カウンタのカウンタ値が閾値に達したか否かを判断する。ＹＥＳの場合、一次装置へ割り込み要求を発送して（ステップＳ７０８）、一次装置にフラッシュメモリに対するアクセスを停止させて、二次装置のフラッシュメモリに対するアクセスを可能にする。ＮＯの場合、ステップＳ７０２に戻させる。このため、例えば、上述した悪意のあるソフトウェアにより、一次装置がメモリに対して読み取りを行い続ける場合は、カウンタのカウンタ値が当該閾値に達することになる。そして、二次装置がメモリをアクセスできるように、一次装置はメモリに対するアクセスを停止する。一方、ステップＳ７０２において、二次装置がメモリに対するアクセスを待っていないと判断された場合（ステップＳ７０２：ＮＯ）、カウンタのカウンタ値が０であるか否かを判断する（ステップＳ７１０）。ＮＯの場合、カウンタがカウントダウン（count  down）する（ステップＳ７１４）、例えばカウンタのカウンタ値から１を引く。ＹＥＳの場合、前の発送された割り込み要求を解除して（ステップＳ７１２）、一次装置がメモリを引き続き使用することができる。従って、カウンタがカウントアップ及びカウントダウンすることで、前の二次装置の待ち時間を埋め合わせることができる。例えば、仮に閾値を３０とすると、カウンタのカウンタ値が３０までカウントされた場合、割り込み要求が一次装置へ発送される。ただし、割り込み要求を受信した時に、一次装置が現在アクセスしているデータを完成しなければ、二次装置にメモリを解放（release）しない。よって、二次装置がメモリをアクセスし始める時に、カウンタのカウンタ値が既に５０、即ち二次装置が実際に待った時間までカウントする可能性がある。従って、ステップＳ７１０、Ｓ７１２及びＳ７１４により、カウンタのカウンタ値が５０から０に下がる場合のみ、割り込み要求がキャンセルされる。これによって、前の待った時間を埋め合わせることができる。
【００１９】
図１及び図６は本発明の一例であり、本発明は図１及び図６に例示されるものに限定されない。図１及び図６において、チップセット１０、スーパーＩ／Ｏ集積回路２０及びフラッシュメモリ３０は切り離されたチップである。ただし、本発明において、スーパーＩ／Ｏ集積回路２０がチップセット１０のチップに組み込まれてもよいし、フラッシュメモリ３０に組み込まれてもよい。
【００２０】
上記の説明は、本発明の好適な実施例に過ぎず、本発明の実施の範囲がこれらに限定されず、本発明の特許請求の範囲及び明細書の内容に基づいて、当業者によって何れの変更及び修飾を行うことが可能となり、本発明の保護範囲は特許請求の範囲を基準とする。
【産業上の利用可能性】
【００２１】
本発明に係るメモリ制御装置は、メモリを制御する装置、特にシリアル周辺機器インタフェース（SPI：Serial  Peripheral  Interface）フラッシュメモリのメモリ制御装置に利用可能である。
【符号の説明】
【００２２】
１０  チップセット
１５  コントローラ
２０  スーパーＩ／Ｏ集積回路
２５  コントローラ
３０  フラッシュメモリ
４０、３００  メモリ制御装置
５０、２００  バススイッチ
５１  方向制御ユニット
５２、５４、５８  プロセスユニット
５３  インバータ
５５、５７  Ｉ／Ｏ制御ユニット
５６  選択ユニット
６０  バス共用調整ユニット
７０  割り込みユニット
１００  コンピュータシステム
ＢＵＳ１、ＢＵＳ２、ＢＵＳ３  バス
ＣＳ、ＣＳ＿ＰＲＩ、ＣＳ＿ＳＥＣ  チップ選択信号
ＣＳ＿１、ＭＯＳＩ＿１、ＭＯＳＩ＿ＯＥ、ＭＯＳＩ＿ＯＵＴ、ＭＯＳＩ＿ＰＲＩ＿ＩＮ、ＭＯＳＩ＿ＰＲＩ＿ＯＥ、ＭＯＳＩ＿ＰＲＩ＿ＯＵＴ、ＳＣＬＫ＿１、ＳＣＬＫ＿２  信号
ＩＮＴ  割り込み要求
ＭＩＳＯ  主装置入力従装置出力信号
ＭＯＳＩ、ＭＯＳＩ＿ＰＲＩ、ＭＯＳＩ＿ＳＥＣ  主装置出力従装置入力信号
Ｐ１、Ｐ２、Ｐ３  周期
ＳＣＬＫ、ＳＣＬＫ＿ＰＲＩ、ＳＣＬＫ＿ＳＥＣ  クロック信号
ＳＴＯＰ  停止信号
ｔ１、ｔ２、ｔ３、ｔ４  時点
Ｔ１、Ｔ２、ＴＰ  周期
ＴＤ  遅延時間
Ｓ７０２、Ｓ７０４、Ｓ７０６、Ｓ７０８、Ｓ７１０、Ｓ７１２、Ｓ７１４  ステップ
【図１】
0005551201.tif 000002
【図２】
0005551201.tif 000003
【図３】
0005551201.tif 000004
【図４】
0005551201.tif 000005
【図５】
0005551201.tif 000006
【図６】
0005551201.tif 000007
【図７】
0005551201.tif 000008