(57)【要約】  新しいインタフェース方式でのインタフェース制御が集積回路により容易に実現できるようにする。このために、ＡＳＩＣ（１００）では、予め定められた命令コード（コンフィギュレーション用の命令コード）を具備するマイクロプロセッサ（１１０）と、前記マイクロプロセッサ（１１０）が前記命令コードを実行することによる設定変更により、外部メモリ（１８０）のインタフェース制御を行う制御信号を生成する機能ブロック（１３０）とを備え、機能ブロック（１３０）は、主記憶ユニット（１１１）により記憶された、前記予め定められた命令コードを含む命令列がマイクロプロセッサ（１１０）により実行されることで、予め定められた信号パターンを生成する。
2010013427.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた命令コードを具備し、記憶ユニット及び命令デコーダを有するマイクロプロセッサと、
デジタルデータを記録するメモリデバイスと当該集積回路との間でデータを転送させるインタフェース手段と、
前記マイクロプロセッサが前記予め定められた命令コードを実行し、前記命令デコーダが前記予め定められた命令コードを解読することで、動作の設定変更が可能であり、設定変更されることにより、前記メモリデバイスのインタフェース制御を行う予め定められた制御信号を生成する機能ブロックとを備え、
前記機能ブロックは、前記記憶ユニットにより記憶された、前記予め定められた命令コードを含む複数の命令コードが構成する予め定められた命令列が、前記マイクロプロセッサにより実行されることにより、予め定められた信号パターンを生成する集積回路。
【請求項２】
前記予め定められた命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、変更後の入出力経路で生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更手段を備える請求項１記載の集積回路。
【請求項３】
前記機能ブロックは、前記制御信号を示すデータを保持し、保持する当該データが示す制御信号を生成し、
前記予め定められた命令コードは、前記制御信号を示すデータを含み、
前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該データを前記機能ブロックに保持させることにより、保持させた当該データが示す制御信号を前記機能ブロックに生成させる請求項１記載の集積回路。
【請求項４】
前記予め定められた命令コードは、前記制御信号を示すデータが格納されたレジスタを特定するレジスタ特定データを含み、
前記機能ブロックは、前記予め定められた命令コードに含まれる当該レジスタ特定データが特定する前記レジスタのデータを取得して、取得されたデータにより示される前記制御信号を生成する請求項１記載の集積回路。
【請求項５】
前記レジスタは、格納されたデータが前記マイクロプロセッサにより変更され、
前記機能ブロックは、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる請求項４記載の集積回路。
【請求項６】
前記メモリデバイスのインタフェース制御を行う予め定められた第２の制御信号を生成する第２の機能ブロックと、
前記第２の機能ブロックにおけるデータの入出力経路を変更し、生成された前記第２の制御信号を前記メモリデバイスに入力させる第２の入出力経路変更手段とを更に備え、
前記予め定められた命令コードは、前記第１の機能ブロック及び前記第２の機能ブロックのうちの一方を特定するブロック特定データを含み、
前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該ブロック特定データが前記第２の機能ブロックを特定する場合には、前記第２の機能ブロックにより前記第２の制御信号を生成させ、当該第２の制御信号を入力させる一方で、当該ブロック特定データが前記第１の機能ブロックを特定する場合には、前記第１の制御信号を生成させ、当該第１の制御信号を入力させ、
生成される前記信号パターンは、第１の前記制御信号によって構成される部分と、第２の前記制御信号によって構成される部分とが含まれる請求項５記載の集積回路。
【請求項７】
前記第１の機能ブロックは、前記予め定められた命令コードが実行される場合に、前記マイクロプロセッサの予め定められた内部レジスタの値を前記インタフェース手段の出力信号として選択し、選択した当該値を前記インタフェース手段から前記制御信号として前記メモリデバイスに入力させる請求項６記載の集積回路。
【請求項８】
予め定められた信号の中から、アサートを待つべき信号を選択する選択機能ブロックを更に備え、前記マイクロプロセッサは、実行する命令コードが前記予め定められた命令コードである場合に、前記選択機能ブロックの選択する信号の全てがアサートされるまでは、命令コードの実行を中断し、全てがアサートされてから当該予め定められた命令コードを実行する請求項１記載の集積回路。
【請求項９】
前記機能ブロックは、
前記制御信号を特定するデータを記憶し、記憶する前記データが特定する前記制御信号を出力する第１の機能ブロックと、
それぞれのレジスタが値を記憶し、記憶された前記値を出力する複数のレジスタから、１のレジスタを特定するデータを記憶する第２の機能ブロックと、
前記１のレジスタと、ＤＭＡコントローラとのうちの一方を特定するデータを記憶し、記憶する当該データにより特定される方により出力される値を、前記制御信号として出力する第３の機能ブロックとを含む請求項１記載の集積回路。
【請求項１０】
前記予め定められた命令コードは、前記第１の機能ブロック、前記第２の機能ブロック、及び前記第３の機能ブロックから１の機能ブロックを特定する第１部分と、データを特定する第２部分とを含み、
前記マイクロプロセッサは、当該予め定められた命令コードを実行する際に、当該予め定められた命令コードの前記第１部分により特定される機能ブロックにより記憶される前記データを、前記第２部分により特定されるデータに変更する請求項９記載の集積回路。
【請求項１１】
当該集積回路は、データの発生源が発生したデータを記憶する動作を前記メモリデバイスに実行させる命令と、当該データとが入力されるＡＳＩＣであり、
生成される前記信号パターンは、入力された前記データを記憶する前記動作を前記メモリデバイスに実行させる信号パターンである請求項１０記載の集積回路。
【請求項１２】
当該集積回路は、コンピュータに接続される接続装置に設けられたＡＳＩＣであり、
当該接続装置は、フラッシュメモリが使用された複数の種類のメモリカードのうちの、１の種類のメモリカードが複数設けられ、
前記メモリデバイスは、複数の前記１の種類のメモリカードのうちの１つであり、
当該集積回路は、前記メモリデバイスに動作を行わせる命令が、前記コンピュータにより入力され、
前記機能ブロックは、複数の制御信号のうちで、当該機能ブロックが受ける制御に対応する制御信号を生成して、生成した前記制御信号を、前記メモリデバイスへと前記インタフェース手段に出力させ、
前記複数の制御信号のそれぞれは、前記複数の種類のうちの１つに対応し、入力された前記命令の動作を、対応する種類のメモリカードに実行させ、
前記マイクロプロセッサは、複数の命令列のうちの、１の命令列を実行し、
前記複数の命令列のそれぞれは、前記複数の種類のうちの１つに対応し、対応する種類のメモリカードへの前記制御信号を生成させる制御を前記機能ブロックに対して、前記マイクロプロセッサに実行させ、
前記マイクロプロセッサにより実行される前記１の命令列は、前記１の種類のメモリカードの命令列であり、
前記信号パターンは、前記１の命令列の実行により生成される前記制御信号の信号パターンである請求項２記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に関し、半導体メモリを用いた記録メディアや記録装置、及び半導体メモリを使った制御装置を構成するための制御ＬＳＩの回路方式に関するものである。
【背景技術】
【０００２】
不揮発性の半導体メモリの代表格であるフラッシュメモリは、携帯電話、デジタルカメラ、携帯用の音楽プレーヤなど、民生機器から業務用機器まで多くの電子機器で活用されている。【０００３】
フラッシュメモリを記録デバイスとして効率よく用いるためには、そのインタフェース制御を行う専用ＬＳＩが必要であるが、中でもＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）は、ある特定の用途のために設計、製造される集積回路のことを指す。【０００４】
一方、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）は、ユーザーが設計した論理情報と配線情報を、内蔵のＳＲＡＭ型メモリセル構造を持つ記憶素子にプログラミングすることによって所望の論理動作を実現するＬＳＩである。ＦＰＧＡでは、ユーザーが設計した論理情報と配線情報を、内蔵のＳＲＡＭ型メモリセル構造を持つ記憶素子にローディングすることによって所望の回路動作を行うことができる。ＦＰＧＡは、ＡＳＩＣと比較すると、開発期間のＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）が短いことが大きな特徴であるが、設計完成後に修正や仕様変更を行うことができることも大きなメリットである。【０００５】
一方で、フラッシュメモリは、昨今の半導体製造技術の進歩により、飛躍的に集積度を高めその技術を競っているため、メモリチップとのインタフェース方式も複数の方式が乱立している。また、フラッシュメモリを用いた記録メディアは、ＳＤカードなど、各社から様々なインタフェース方式の記録メディアが発売されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特公平３−７５９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＡＳＩＣの場合は開発期間がかかるだけでなく、昨今の半導体プロセスの微細化に伴い、数億円単位の莫大な開発費が必要となり、一度設計したメモリインタフェース仕様を再設計することなく変更できないという非常に大きな問題点を有していた。【０００８】
このため、インタフェース方式が乱立している今日、単に、新しいインタフェース方式を用いたいというだけのために、再設計を行って、莫大な開発費がかかり、長い開発期間が必要となってしまう事態が生じかねない。【０００９】
一方、ＦＰＧＡを用いたメモリインタフェース回路は、ＡＳＩＣでのインタフェース回路と比較して、デバイス単価が高くなるだけでなく、消費電力も数倍大きく、同一回路で実現可能な周波数性能が低いなど多数の欠点があり、特に電力条件がシビアな小型のメモリ機器においてはＦＰＧＡが適さない。【００１０】
本発明は、上記の点に鑑みてなされたものであり、新しいインタフェース式を用いる場合に、容易に、新しいインタフェース式でのインタフェース制御が可能な集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
この課題を解決するために本発明は、次の構成を採用した。【００１２】
第１の集積回路は、予め定められた命令コードを具備し、記憶ユニット及び命令デコーダを有するマイクロプロセッサと、デジタルデータを記録するメモリデバイスと当該集積回路との間でデータを転送させるインタフェース手段と、前記マイクロプロセッサが前記予め定められた命令コードを実行し、前記命令デコーダが前記予め定められた命令コードを解読することにより、動作の設定変更が可能であり、設定変更されることにより、前記メモリデバイスのインタフェース制御を行う予め定められた制御信号を生成する機能ブロックとを備え、前記機能ブロックは、前記記憶ユニットにより記憶された、前記予め定められた命令コードを含む複数の命令コードが構成する予め定められた命令列が、前記マイクロプロセッサにより実行されることにより、予め定められた信号パターンを生成する集積回路である。【００１３】
こうすれば、複数の命令コードが構成する命令列が実行されることで、信号パターンが生成される。生成される信号パターンは、データの記憶などの、メモリデバイスへの命令が示す動作を、メモリデバイスに実行させる信号パターンである。これにより、利用されるデジタルデバイスが、１の種類のデジタルデバイスから、他の種類のデジタルデバイスに変更されても、単に、実行される命令列が変更されるだけで、容易に、適切な信号パターンが生成できる。これにより、利用されるデジタルデバイスの種類が他の種類に変更されても、インタフェース制御が、容易にできる。【００１４】
すなわち、この集積回路では、当該集積回路によりインタフェース制御がされる制御信号が、例えばファームウェアによる、予め定められた命令コードの実行により前記機能ブロックにより生成される。このため、新しいインタフェース制御を用いたい場合に、単に、例えば集積回路に格納されるファームウェアを変更するなどして、制御信号を生成させる命令コードの種類等を変更したり、当該命令コードを実行させて当該制御信号を生成させるタイミングを変更したりなどするだけで済む。つまり、それらだけで、容易に、新しいインタフェース方式でのインタフェース制御を行う集積回路を構成できる。これにより、長い開発期間がかかる再設計等が不要となる。【００１５】
なお、この集積回路は、当該集積回路に格納される命令コードが実行されて、格納される命令コードが書き換え可能であり、命令コードの書き換えにより、新しいインタフェース方式でのインタフェース制御ができるものであってもよい。【００１６】
第２の集積回路は、前記予め定められた命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、変更後の入出力経路で生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更手段を備える集積回路である。この構成なら、入出力経路が変更され、十分自由に、入力される制御信号が変更できる。【００１７】
第３の集積回路は、前記機能ブロックは、前記制御信号を示すデータを保持し、保持する当該データが示す制御信号を生成し、前記予め定められた命令コードは、前記制御信号を示すデータを含み、前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該データを前記機能ブロックに保持させることにより、保持させた当該データが示す制御信号を前記機能ブロックに生成させる集積回路である。【００１８】
こうすれば、予め定められた命令コードに含まれるデータを変化させるだけで、容易に、適切な制御信号を生成させ、容易に、新しいインタフェース制御を実現できる。【００１９】
第４の集積回路は、前記予め定められた命令コードは、前記制御信号を示すデータが格納されたレジスタを特定するレジスタ特定データを含み、前記機能ブロックは、前記予め定められた命令コードに含まれる当該レジスタ特定データが特定する前記レジスタのデータを取得して、取得されたデータにより示される前記制御信号を生成する集積回路である。【００２０】
こうすれば、単に、レジスタのデータを変化させるだけで、多様な制御信号を容易に生成し、ひいては、容易に、多様な新しいインタフェース制御を実現できる。【００２１】
第５の集積回路は、前記レジスタは、格納されたデータが前記マイクロプロセッサにより変更され、前記機能ブロックは、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる集積回路である。【００２２】
こうすれば、上記した、予め定められた命令コードではなく、レジスタのデータを変更させる命令コードを用いて、容易に、生成させる制御信号を変更でき、新しいインタフェース制御を容易、自由に実現できる。【００２３】
第６の集積回路は、前記メモリデバイスのインタフェース制御を行う予め定められた第２の制御信号を生成する第２の機能ブロックと、前記第２の機能ブロックにおけるデータの入出力経路を変更し、生成された前記第２の制御信号を前記メモリデバイスに入力させる第２の入出力経路変更手段とを更に備え、前記予め定められた命令コードは、前記第１の機能ブロック及び前記第２の機能ブロックのうちの一方を特定するブロック特定データを含み、前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該ブロック特定データが前記第２の機能ブロックを特定する場合には、前記第２の機能ブロックにより前記第２の制御信号を生成させ、当該第２の制御信号を入力させる一方で、当該ブロック特定データが前記第１の機能ブロックを特定する場合には、前記第１の制御信号を生成させ、当該第１の制御信号を入力させ、生成される前記信号パターンは、第１の前記制御信号によって構成される部分と、第２の前記制御信号によって構成される部分とが含まれる集積回路である。【００２４】
こうすれば、第１の機能ブロックと第２の機能ブロックの両者を用いて、多様な制御信号を自由、容易に生成でき、多様な新しいインタフェース制御を容易に実現できる。【００２５】
第７の集積回路は、前記第１の機能ブロックは、前記予め定められた命令コードが実行される場合に、前記マイクロプロセッサの予め定められた内部レジスタの値を前記インタフェース手段の出力信号として選択し、選択した当該値を前記インタフェース手段から前記制御信号として前記メモリデバイスに入力させる集積回路である。【００２６】
こうすれば、内部レジスタの値の変更を制御信号として入力させて、入力される制御信号を十分自由に制御できる。【００２７】
第８の集積回路は、予め定められた信号の中から、アサートを待つべき信号を選択する選択機能ブロックを更に備え、前記マイクロプロセッサは、実行する命令コードが前記予め定められた命令コードである場合に、前記選択機能ブロックの選択する信号の全てがアサートされるまでは、命令コードの実行を中断し、全てがアサートされてから当該予め定められた命令コードを実行する集積回路である。【００２８】
こうすれば、アサートを待つべき信号が全てアサートされてから、適切なタイミングで制御信号が生成されるようにでき、容易に、適切なタイミングで制御信号を生成できる。【００２９】
なお、例えば、本発明では、マイクロプロセッサに、回路のコンフィギュレーションを目的としたコンフィギュレーションアドレス情報と、当該アドレスに書き込むデータとからなる命令コードを具備する。そして、当該命令コードにより設定変更が可能な小機能ブロックを有機的に結合する構成が採られる。これにより、命令コードの組み合せにより、ダイナミックに任意の回路構成に変更することによって、自在なメモリインタフェース回路を構成することができる。これにより、内蔵マイクロプロセッサのファームウェアを変更することによって、例えば、フラッシュメモリやＳＤカードなど、様々な外部メモリデバイスに、一つの制御ＬＳＩでインタフェースすることが可能である。これにより、ひいては、フラッシュメモリなど、今後仕様変更が予想されるデバイスを制御する場合において、将来的に、メモリＩ／Ｆプロトコルが変更された場合にも柔軟に対応することが可能なＡＳＩＣを提供できる。【００３０】
また、例えば、本発明は、命令コードによりダイナミックに回路構成を変更するメモリインタフェース回路方式であり、ＡＳＩＣの開発完了後に外部メモリとのインタフェース回路仕様を変更するには当該回路を再設計する必要があり、開発費の負担が大きいことが回避されるものである。
【発明の効果】
【００３１】
本発明によれば、新しいインタフェース方式でのインタフェース制御を容易に実現できるようになる。
【図面の簡単な説明】
【００３２】
【図１】図１は、本発明の実施例１におけるＡＳＩＣの構成図である。
【図２】図２は、本発明の実施例１におけるコンフィギュレーションを行う命令コードを示した図である。
【図３】図３は、本発明の実施例１におけるコマンド送信動作のタイミングチャートを示した図である。
【図４】図４は、本発明の実施例２におけるコンフィギュレーションを行う命令コードを示した図である。
【図５】図５は、本発明の実施例３におけるＡＳＩＣの構成図である。
【図６】図６は、本発明の実施例３におけるコマンド送信動作のタイミングチャートを示した図である。
【図７】図７は、本発明の実施例４におけるＡＳＩＣの構成図である。
【図８】図８は、本発明の実施例４における機能ユニットの論理回路例を示した図である。
【図９】図９は、本発明の実施例４におけるＤＭＡ動作のタイミングチャートを示した図である。
【図１０】図１０は、データの発生源、ＡＳＩＣ、外部メモリを示す図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施の形態について、図１から図１０を参照して説明する。
【００３４】
実施形態では、例えば、次の集積回路が示される。つまり、マイクロプロセッサ（マイクロプロセッサ１１０）を有する集積回路（ＡＳＩＣ１００）であって、前記マイクロプロセッサは、予め定められた命令コード（コンフィギュレーション用の命令コード、図２）を具備し、記憶ユニット及び命令デコーダを有するマイクロプロセッサ（マイクロプロセッサ１１０）と、前記集積回路は、デジタルデータを記録するメモリデバイス（外部メモリ１８０）と当該集積回路との間でデータを転送させるインタフェース部（外部出力信号１５３、外部出力信号１３３などの信号の信号線）と、前記マイクロプロセッサが前記予め定められた命令コードを実行し、前記命令デコーダが前記予め定められた命令コードを解読することにより、動作の設定変更が可能であり、設定変更されることにより、前記メモリデバイスのインタフェース制御を行う予め定められた制御信号を生成する機能ブロック（機能ブロック１３０、機能ブロック１４０及び機能ブロック１５０）と、前記命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更部（機能ブロック１３０、機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック）とを備え、前記機能ブロックは、前記記憶ユニットにより記憶された、前記予め定められた命令コードを含む複数の命令コードが構成する予め定められた命令列が、前記マイクロプロセッサにより実行されることにより、予め定められた信号パターンを生成する集積回路が示される。
【００３５】
これにより、利用されるデジタルデバイスが、１の種類のデジタルデバイスから、他の種類のデジタルデバイスに変更されても、容易に、他の種類でのインタフェース制御が実現できる。
【００３６】
すなわち、インタフェース制御をする制御信号が、予め定められた命令コードの実行により生成されて、例えば、ファームウェア方式が採用されるなどしている。これにより、新しいインタフェース制御を用いたい場合でも、長い開発期間がかかる再設計等が不要となる。つまり、単に、例えば、集積回路に格納されるファームウェアを変更するなどして、制御信号を生成させる命令コードを変更するだけで、新しいインタフェース方式でのインタフェース制御ができる。これにより、容易に、新しいインタフェース方式でのインタフェース制御を実現できる。
【００３７】
そして、より具体的には、例えば、次の集積回路が示される。つまり、当該集積回路は、コンピュータ（図１０のデータの発生源１００ｂ、ノートパソコン）に接続される接続装置（全体ユニット１００ａ、ＰＣカード（拡張カード））に設けられたＡＳＩＣ（ＡＳＩＣ１００）であり、当該接続装置は、フラッシュメモリが使用された複数の種類のメモリカード（ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、Ｕ３、ＳＤメモリカード、ｍｉｎｉＳＤカード、ｍｉｃｒｏＳＤカード、メモリースティックなど）のうちの、１の種類のメモリカードが複数設けられ、前記メモリデバイス（外部メモリ１８０）は、複数の前記１の種類のメモリカードのうちの１つであり、当該集積回路は、前記メモリデバイスに動作を行わせる命令が、前記コンピュータにより入力され、前記機能ブロック（機能ブロック１３０等）は、複数の制御信号のうちで、当該機能ブロックが受ける制御に対応する制御信号を生成して、生成した前記制御信号を、前記メモリデバイスへと前記インタフェース部（外部出力信号１５３の信号線）に出力させ、前記複数の制御信号のそれぞれは、前記複数の種類のうちの１つに対応し、入力された前記命令の動作を、対応する種類のメモリカードに実行させ、前記マイクロプロセッサ（マイクロプロセッサ１１０）は、複数の命令列のうちの、１の命令列を実行し、前記複数の命令列のそれぞれは、前記複数の種類のうちの１つに対応し、対応する種類のメモリカードへの前記制御信号を生成させる制御を前記機能ブロックに対して、前記マイクロプロセッサに実行させ、前記マイクロプロセッサにより実行される前記１の命令列は、前記１の種類のメモリカードの命令列であり、前記信号パターンは、前記１の命令列の実行により生成される前記制御信号の信号パターンである集積回路が示される。
【００３８】
なお、符号「１５３」は、外部出力信号そのものではなく、外部出力信号の信号線を指すと理解されてもよい。なお、インタフェース部は、例えば、前記複数の種類のうちで、前記１の種類のメモリデバイスのみに接続されてもよい。また、インタフェース部は、例えば、将来の設計変更の後には、他の種類のメモリデバイスに接続されてもよい。なお、前記マイクロプロセッサは、複数の命令列のうちで、前記１の種類に対応する命令列のみを記憶してもよい。そして、マイクロプロセッサは、将来の設計変更の後には、他の種類の命令列を記憶してもよい。
【００３９】
（実施例１）
図１は、本発明の実施の形態として、フラッシュメモリに記録されたデジタルデータを入出力するためのインタフェースを備えたＡＳＩＣ１００の回路構成例を示したものである。
【００４０】
ＡＳＩＣ１００は、マイクロプロセッサ１１０と、機能ブロック１３０と、機能ブロック１４０と、機能ブロック１５０と、レジスタファイル１７０と、ＤＭＡコントローラ１９０と、オンチップバス１６０と、コンフィギュレーションバス１２０等を備える。
【００４１】
マイクロプロセッサ１１０は、本発明の実施例として説明するマイクロプロセッサであり、図１のマイクロプロセッサ１１０では、その内部の概略構成を図示している。
【００４２】
そして、マイクロプロセッサ１１０は、主記憶ユニット１１１と、実行制御ユニット１１２と、命令デコーダ１１３と、レジスタユニット１１４と、演算ユニット１１５と、バス制御ユニット１１６と、コンフィギュレーション出力ユニット１１７とを備える。
【００４３】
主記憶ユニット１１１は、命令コードを格納するプログラム領域や、作業データを格納するデータ領域、及び一時的にデータを格納するスタック領域などを記憶するメモリである。ここで、主記憶ユニット１１１が、上記したプログラム領域に格納するプログラムの命令コードの一部は、後述する、コンフィギュレーション用の命令コードである。
【００４４】
実行制御ユニット１１２は、プログラムカウンタなどのプログラム実行制御や、メモリ管理ユニット（ＭＭＵ）や条件分岐、及び割り込み制御を行うための制御回路である。
【００４５】
命令デコーダ１１３は、主記憶ユニット１１１より読み出した命令コードに応じて、他のユニットを制御するための制御信号を生成する。
【００４６】
レジスタユニット１１４は、演算データやアドレス情報などを一時的に記憶するレジスタにより構成される。
【００４７】
演算ユニット１１５は、命令コードに応じて前記レジスタや主記憶のデータを演算し、その演算結果を前記レジスタや主記憶ユニット１１１に格納する。
【００４８】
バス制御ユニット１１６は、ＡＳＩＣ１００の内部のオンチップバス１６０を介して、マイクロプロセッサ１１０と、ＡＳＩＣ１００の内部における他のモジュールとのデータ入出力動作を行う。
【００４９】
なお、ここで本発明の回路方式を具体的に示すために、本実施例で説明するマイクロプロセッサ１１０の命令コードは、説明の便宜上、１６ビット長として説明するが、３２ビットなど他のワード長であっても同様である。
【００５０】
図２は、本実施例において具備した機能ブロック１３０などをコンフィギュレーションする、コンフィギュレーション用の命令コードの実施例を具体的に示したものである。
【００５１】
図２に示される、コンフィギュレーション用の命令コードは、識別子２０１と、コンフィギュレーションアドレス２０２と、コンフィギュレーションデータ２０３とを備える。
【００５２】
識別子２０１は、命令コードを識別するための識別子（以後ＳｅｔＣｏｎｆｉｇと示す）である。なお、識別子２０１は、例えば、コンフィギュレーション用の命令コード以外の、何れの他の命令コードの識別子の値とも異なる値である。
【００５３】
ここで、命令デコーダ１１３は、図２に示されるコンフィギュレーション用の命令コードを、含まれるこの識別子２０１によって、他の命令コードから識別する。
【００５４】
そして、コンフィギュレーション出力ユニット１１７は、当該命令コードが識別されると、命令コードに含まれるコンフィギュレーションアドレス２０２と、コンフィギュレーションデータ２０３とを保持する。そして、コンフィギュレーション出力ユニット１１７は、このとき、ＣｏｎｆｉｇＡｄｄｒ[６:０]、ＣｏｎｆｉｇＤａｔａ[３:０]、コンフィギュレーションタイミングを示すＣｏｎｆｉｇＷｒｉｔｅ信号により構成される信号を、コンフィギュレーションバス１２０に出力する。
【００５５】
次に、本実施例で例示した機能ブロック１３０は、コンフィギュレーションバス１２０に接続されたソケットＩ／Ｆ１３１（ＣｏｎｆｉｇＡｄｄｒ＝００ｈとする）と、４ビットのフリップフロップによって構成された機能ユニット１３２とを備える。なお、図１に示される、この機能ブロック１３０が出力する外部出力信号１３３は、前記フリップフロップの出力信号を出力する外部出力信号である。
【００５６】
なお、本実施例では外部メモリ（フラッシュメモリ）１８０は、説明の便宜上から、一般的なＮＡＮＤ型フラッシュメモリとして説明するが、フラッシュメモリの種類やインタフェース方法を限定するものではないことは言うまでもない。
【００５７】
図３は、コマンド送信動作のタイミングチャートである。
【００５８】
クロック信号３０１は、マイクロプロセッサ１１０に供給されるクロック信号である。
【００５９】
ＯｐＣｏｄｅ３０２は、主記憶ユニット１１１より読み出された命令コードである。ここで、命令コードに続く２つの数字の意味は、記号３０３が図示する最初の数字が、コンフィギュレーション用の命令コードに含まれるコンフィギュレーションアドレス２０２（図２参照）を示す。そして、記号３０４が図示する、次の数字が、コンフィギュレーション用の命令コードに含まれるコンフィギュレーションデータ２０３（図２参照）を示している。
【００６０】
ＣＬＥ３０５、ＡＬＥ３０６、／ＷＥ３０７、／ＲＥ３０８（図３）は、本実施例で説明する外部メモリ（フラッシュメモリ）１８０の制御信号であり、それぞれ、外部出力信号１３３（図１）で示す、機能ブロック１３０が有する機能ユニット１３２の、４ビットのフリップフロップＤ３〜Ｄ０の出力データに対応する。
【００６１】
図３で横軸に示される各タイミングにおいて、図３に示される各命令コードがそれぞれ実行された場合の、４つの制御信号ＣＬＥ３０５、ＡＬＥ３０６、／ＷＥ３０７、／ＲＥ３０８の変化を次に説明する。
【００６２】
タイミングＴ１では、マイクロプロセッサ１１０が、図３に示されるように、「ＳｅｔＣｏｎｆｉｇ  ０，３」を実行する。ここで、実行される命令コードのオペコード「ＳｅｔＣｏｎｆｉｇ」は、上述したコンフィギュレーション用の命令コードの識別子である。そして、この命令コードのコンフィギュレーションアドレス２０２（図２）は「０」であり、コンフィギュレーションデータ２０３（図２）は「３」である。ここで、コンフィギュレーションアドレス「０」は、機能ブロック１３０を示すアドレスであるものとする。一方、コンフィギュレーションデータ「３」は、２進数表現で、３＝１×１＋２×１＋４×０＋８×０＝１１００と表される。
【００６３】
そして、ＣＬＫ３０１のＴ２の立ち上がりエッジにおいて、コンフィギュレーション出力ユニット１１７が出力するコンフィギュレーションバス１２０（図１参照）のＣｏｎｆｉｇＤａｔａ[３:０]が、機能ブロック１３０の前記フリップフロップＤ３〜Ｄ０にラッチされる。これにより、Ｔ２の立ち上がりエッジでは、機能ブロック１３０の、４つの制御信号ＣＬＥ３０５、ＡＬＥ３０６、／ＷＥ３０７、／ＲＥ３０８は、それぞれ、上述した計算の結果である２進数表現１１００に対応する、１、１、０、０である。つまり、このとき、４つのフリップフロップには、それぞれ、１、１、０、０が格納される。
【００６４】
次に、ＣＬＫ３０１のＴ３の立ち上がりエッジにおいて、コンフィギュレーション出力ユニット１１７が出力するコンフィギュレーションバス１２０のＣｏｎｆｉｇＤａｔａ[３:０]が前記フリップフロップＤ３〜Ｄ０にラッチされる。これにより、ＣＬＥ３０５は、“０”から“１”に遷移し、／ＷＥ３０７は“１”から“０”に遷移する（図３参照）。これは、Ｔ２における、実行される命令コードのコンフィギュレーションデータが、９＝１×１＋２×０＋４×０＋８×１で、２進数表現の１００１だからである。
【００６５】
次のクロックの立ち上がりＴ４では、コンフィギュレーションアドレス２０２が０１ｈであるためソケットＩ／Ｆ１３１において、コンフィギュレーションアドレスが機能ユニット１３２の機能ブロック１３０に一致しないため、機能ユニット１３２のフリップフロップの状態は変化しない。
【００６６】
次のクロックの立ち上がりＴ５では、／ＷＥ３０７は“０”から“１”に遷移する。以降、同様に、命令コードの組み合せによって所望のタイミング信号を生成することが可能である。
【００６７】
次に本実施例における機能ブロック１４０（図１）について説明する。
【００６８】
機能ブロック１４０が有する機能ユニット１４２は、先述した機能ユニット１３２と同様に、４ビットのフリップフロップで構成される。ここで、フリップフロップの出力信号１４３は、レジスタファイル１７０のレジスタを選択するためのアドレス信号として、レジスタファイル１７０に出力される。
【００６９】
なお、ここで、レジスタファイル１７０は、８ビットのレジスタ１６個より構成され、前記４ビットの出力信号（アドレス信号）１４３によってレジスタ値を選択し、選択されたレジスタ値のレジスタのデータが、レジスタファイルの出力信号１７１として出力され、機能ブロック１５０に入力される。
【００７０】
他方、ソケットＩ／Ｆ１４１は、ソケットＩ／Ｆ１３１と同様の構成であるが、ＣｏｎｆｉｇＡｄｄｒ（図２のコンフィギュレーションアドレス２０２）＝０１ｈの場合に、ＣｏｎｆｉｇＤａｔａ（図２のコンフィギュレーションデータ２０３）を、機能ユニット１５２が有する前記フリップフロップに設定する。
【００７１】
機能ブロック１５０は、ソケットＩ／Ｆ１５１より設定された選択状態によって、前記レジスタファイル１７０の出力信号１７１と、後述するＤＭＡコントローラ１９０の出力信号１９１との何れかを選択し、８ビットの外部出力信号１５３を生成するマルチプレクサである機能ユニット１５２により構成される。
【００７２】
ここで再びコマンド送信動作のタイミングチャートにおけるＴ４で示すクロックの立ち上がり時の動作について説明する。Ｔ４では、ＣｏｎｆｉｇＡｄｄｒ＝０１ｈであるため、機能ブロック１４０に対して、ＣｏｎｆｉｇＤａｔａ[３:０]＝０ｈを書き込む。この動作により、前記出力信号（アドレス信号）１４３が“０ｈ”に設定され、レジスタファイル１７０におけるアドレス０のレジスタ値が出力信号１７１に出力される。ここで機能ブロック１５０は予め、レジスタ値（出力信号１７１）、つまりレジスタファイル１７０からの入力信号が、当該機能ブロック１５０の外部出力信号１５３に出力されるように設定されていれば、出力信号１７１が外部出力信号１５３として出力されて、外部メモリ（外部フラッシュメモリ）１８０のＤａｔａ３１０（図３参照）が、Ｒ０（図３において記号３１１で示す）となる。
【００７３】
同様に、図３における記号３１２でＲ１と示す、レジスタファイル１７０のアドレス１のレジスタ値は、Ｔ８で示すクロックの立ち上がり時に外部出力信号１５３に出力できる。
【００７４】
この集積回路は、前記命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、変更後の入出力経路で生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更部を備える集積回路である。
【００７５】
そして、この集積回路は、機能ブロック１３０が、前記制御信号を示すデータをフリップフロップに保持し、保持する当該データが示す制御信号を生成し、前記予め定められた命令コードが、前記制御信号を示すデータ（コンフィギュレーションデータ２０３、図２）を含み、前記マイクロプロセッサが、前記予め定められた命令コードに含まれる当該データを前記機能ブロック１３０に保持させることにより、保持させた当該データが示す前記制御信号を生成させる集積回路である。
【００７６】
このため、制御信号を生成する多種類の命令コードを用意しなくとも、命令コードに含まれるデータを変化させるだけで、容易に、適切な制御信号を生成させ、容易に、新しいインタフェース制御を実現できる。
【００７７】
そして、この集積回路は、前記予め定められた命令コードが、前記制御信号を示すデータが格納されたレジスタ（レジスタファイル１７０のレジスタ）を特定するレジスタ特定データ（コンフィギュレーションデータ２０３、図２）を含み、前記機能ブロック（機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック）が、当該レジスタ特定データにより特定される前記レジスタのデータを取得し、取得されるデータが示す制御信号を生成する集積回路である。
【００７８】
このため、レジスタのデータを変化させることで、容易に、多様な制御信号を生成させることができる。
【００７９】
そして、この集積回路は、前記レジスタが、格納されるデータが前記マイクロプロセッサにより変更され、前記機能ブロック（機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック）が、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる集積回路である。
【００８０】
このため、上記した、予め定められた命令コードではなく、レジスタのデータを変更させる命令コードを用いて、容易、自由に、生成させる制御信号を変更でき、新しいインタフェース制御を容易、自由に実現できる。
【００８１】
そして、この集積回路は、前記メモリデバイスのインタフェース制御を行う予め定められた第２の制御信号を生成する第２の機能ブロック（機能ブロック１３０）と、前記第２の機能ブロックにおけるデータの入出力経路を変更し、生成された前記第２の制御信号を前記メモリデバイスに入力させる第２の入出力経路変更部（機能ブロック１３０）とを更に備え、前記予め定められた命令コードが、前記第１の機能ブロック及び前記第２の機能ブロックのうちの一方を特定するブロック特定データ（コンフィギュレーションアドレス２０２、図２）を含み、前記マイクロプロセッサが、前記予め定められた命令コードに含まれる当該ブロック特定データが前記第２の機能ブロックを特定する場合には、前記第２の機能ブロックにより前記第２の制御信号を生成させて、当該第２の制御信号を前記メモリデバイスに入力させ、前記第１の機能ブロックを特定する場合には、前記第１の制御信号を生成させて、当該第１の制御信号を入力させ、生成される前記信号パターンが、第１の前記制御信号によって構成される部分と、第２の前記制御信号によって構成される部分とが含まれる集積回路である。
【００８２】
このため、第１の機能ブロックと第２の機能ブロックの両者を用いて、多様な制御信号を自由、容易に生成でき、多様な新しいインタフェース制御を容易、自由に実現できる。
【００８３】
なお、この集積回路は、機能ブロック（機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック、機能ブロック１３０）が、前記予め定められた命令コードが実行される場合に、前記マイクロプロセッサの予め定められた内部レジスタの値を前記インタフェースの出力信号として選択し、選択した当該値を前記インタフェースから前記制御信号として前記メモリデバイスに入力させる集積回路である。
【００８４】
（実施例２）
図４は、図２に示される命令コードの定義方法とは異なる命令コードの定義例を示す図である。
【００８５】
図４に示される命令コードは、識別子４０１と、データ４０２と、データ４０３とを備える。
【００８６】
識別子４０１は、命令コードを識別するための識別子（以後ＬｏａｄＣｏｎｆｉｇと示す）であり、命令デコーダ１１３によって、この識別子４０１に基づいて、当該命令コードが識別される。データ４０２は、コンフィギュレーションアドレスを保持するレジスタユニット１１４の内部レジスタを選択するための情報を割り付けており、同様にデータ４０３は、コンフィギュレーションデータを保持するレジスタユニット１１４の内部レジスタを選択するための情報を割り付けている。この各々４ビットの情報は、それぞれ、信号１１８（図１）を用いて、レジスタユニット１１４における１６個までの内部レジスタを選択することが可能である。ここで、前記内部レジスタは先の実施例同様に１６ビットであるとすれば、ＬｏａｄＣｏｎｉｆｇの命令コードでは、ＣｏｎｆｉｇＡｄｄｒ[１５:０]、ＣｏｎｆｉｇＤａｔａ[１５:０]までのコンフィギュレーションバス１２０に接続される機能ブロックの設定が可能である。
【００８７】
こうして、前記予め定められた命令コード（コンフィギュレーション用の命令コード）は、制御信号を示すデータが格納されたレジスタ（レジスタユニット１１４の内部レジスタ）を特定するレジスタ特定データ（データ４０３、図４）を含み、前記機能ブロック（機能ブロック１３０）は、前記予め定められた命令コードに含まれる当該レジスタ特定データにより特定される前記レジスタのデータを取得し、取得されるデータが示す前記制御信号を生成する集積回路が構成される。
【００８８】
（実施例３）
図５は、第１の実施例において示した構成に対して、レジスタユニット１１４の内部レジスタの値を選択出力する機能ブロック５１０を追加したことにより、プログラム制御による外部インタフェース回路方式を拡張した実施形態を示したものである。
【００８９】
なお、図５では、図面記載の都合により、機能ブロック１４０（図１参照）の記載は省略した。
【００９０】
機能ユニット５１２は、ソケットＩ／Ｆ５１１を介して設定される４ビットのフリップフロップの出力状態によって、レジスタユニット１１４の内部レジスタ出力５１３における、１６個までの内部レジスタ（Ｒ０〜Ｒ１５）の中から、一つを選択し、出力信号５１４として機能ブロック１５０に入力する。
【００９１】
機能ブロック１５０は、第１の実施例の場合と同様に、ソケットＩ／Ｆ１５１より設定された選択状態によって、当該機能ユニット５１２の前記出力信号５１４を選択し、８ビットの外部出力信号１５３を生成するマルチプレクサである機能ユニット１５２により構成される。
【００９２】
これまでの説明同様に、コンフィギュレーションバス１２０を介して、命令コードＳｅｔＣｏｎｆｉｇにより、機能ブロック５１０及び機能ブロック１５０のコンフィギュレーション設定を行う。また、機能ブロック１５０の外部出力信号１５３に、レジスタユニット１１４の内部レジスタ（仮にＲ０とする）を出力する設定を行うことによって、レジスタユニット１１４の内部レジスタ値を外部信号出力として出力することができる。
【００９３】
図６は、実施例３に係る、コマンド送信動作のタイミングチャートである。
【００９４】
図６を用いて、再度コマンド送信動作のタイミングチャートの動作について説明する。網掛けで示した命令コード以外の動作は図３と同一であるため説明は省略する。Ｔ３で発行した命令コード（Ｌｏａｄ）により、内部レジスタＲ０の状態が、Ｔ４で示すクロックの立ち上がり時において、“０ｘ８０”の状態６０１に遷移し、機能ブロック１５０は、外部出力信号１５３として、この“０ｘ８０”を出力する。
【００９５】
以下同様に、Ｔ８で示すクロックの立ち上がり時の状態６０２では、Ｒ０＝Ｒ１（Ｃｏｐｙ）により、Ｒ１のレジスタを出力することになる。
【００９６】
更に、以下同様に、演算ユニット１１５における演算命令（６０３及び６０４）によって、実施例１において説明したオンチップバス１６０を用いてレジスタファイル１７０を介して入出力動作を行うだけでなく、マイクロプロセッサ１１０内部の演算ユニット１１５を効果的に使った演算操作により所望のインタフェース回路動作を実現することが可能である。
【００９７】
つまり、図６において、Ｔ１０に示される「Ｒ０＝Ｒ２＋Ｒ３」の命令コードがマイクロプロセッサ１１０（図５）により実行されると、Ｔ１１で、レジスタユニット１１４の内部レジスタＲ０に、Ｒ２＋Ｒ３の演算がされた演算結果Ｒ２＋Ｒ３が書き込まれて、書き込まれた演算結果Ｒ２＋Ｒ３が、内部レジスタＲ０に保持される。そして、保持されるこの演算結果Ｒ２＋Ｒ３が、機能ブロック５１０により、出力信号５１４として出力され、ひいては、機能ブロック１５０により、外部出力信号１５３として出力される。
【００９８】
また、同様に、Ｔ１３における命令コード「Ｒ０＝Ｒ２＊Ｒ３」により、Ｔ１４で、外部出力信号１５３として、Ｔ１３の上記命令コードによる演算結果Ｒ２＊Ｒ３が出力される。
【００９９】
こうして、コンフィギュレーション用の命令コードは、制御信号を示すデータが格納されたレジスタ（レジスタユニット１１４の内部レジスタ）を特定するレジスタ特定データ（コンフィギュレーションデータ）を含み、機能ブロック（機能ブロック５１０、機能ブロック１５０）は、前記命令コードに含まれる当該レジスタ特定データにより特定される前記レジスタのデータを取得し、取得されるデータが示す前記制御信号を生成する集積回路が構成される。
【０１００】
そして、この集積回路は、前記レジスタが、格納されるデータが前記マイクロプロセッサにより変更され（図６に示される「Ｒ０＝０ｘ８０」の代入等を参照）、前記機能ブロックが、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる（図６のＴ３〜Ｔ４、Ｔ７〜Ｔ８、Ｔ１３〜Ｔ１４参照）集積回路である。
【０１０１】
（実施例４）
次に第１の実施例において示した構成に対して、内部信号の状態に応じてマイクロプロセッサの命令コードの実行状態を制御することにより、本発明をより効果的に実施する形態について図７〜図９を用いて説明する。
【０１０２】
図７は、実施例４に係るＡＳＩＣの構成図である。
【０１０３】
機能ブロック７１０は、実行制御ユニット１１２における命令実行制御のステートマシンの実行を制御するＯｐＲｅａｄｙ信号７１３を、機能ユニット７１２によって生成する。この生成がされる際に、回路状態を示す複数の信号と、Ｅｎａｂｌｅ信号８０１とが機能ユニット７１２により利用される。回路状態を示す複数の信号は、例えば、ＤＭＡコントローラ１９０からの、出力信号１９１を読み出すデータが残っているかどうかを示すＤａｔａＲｅａｄｙ信号１９２や、外部メモリ１８０がコマンドを受け取ったのち次の動作状態に移行してもよいかどうかを判断するためのＢｕｓｙ信号１８１などが含まれる。なお、回路状態を示す複数の信号については、ここでは、簡単のため前記２種類の信号として説明する。また、Ｅｎａｂｌｅ信号８０１（“１”が有効）は、ソケットＩ／Ｆ７１１を介して設定された、前記回路状態を示す信号の有効無効を示す信号（“１”が有効）である。
【０１０４】
図８は、前記機能ユニット７１２の論理回路の構成例を示したものである。
【０１０５】
すなわちＥｎａｂｌｅ[１：０]＝“０１”と設定すれば、ＯｐＲｅａｄｙ信号７１３は、ＤａｔａＲｅａｄｙ信号１９２の状態と等しく設定できる。
【０１０６】
図９は、実施例４に係る、コマンド送信動作のタイミングチャートである。次に、この図９を用いて、実施例４に係るこの制御動作を説明する。
【０１０７】
Ｔ５で示すクロックの立ち上がりまでの動作は、実施例１での説明と同様である。一方、Ｔ６のクロックの立ち上がり時は、前記ＯｐＲｅａｄｙ信号７１３が“０”であることにより、マイクロプロセッサ１１０は、記号９０１で示す命令コード「Ｓｅｔｃｏｎｆｉｇ  ０，２」の実行を停止する。そして、Ｔ１１のクロックの立ち上がり時に、ＤＭＡコントローラ１９０のＤａｔａＲｅａｄｙ信号１９２がアサートされる。このことにより、ＯｐＲｅａｄｙ信号７１３がアサートされ、実行制御ユニット１１２における命令コードの実行が再開され、引き続きデータ転送動作を継続することができる。
【０１０８】
こうして、予め定められた信号（ＤａｔａＲｅａｄｙ信号１９２、Ｂｕｓｙ信号１８１）の中から、アサートを待つべき信号を選択する選択機能ブロック（機能ブロック７１０）を更に備え、前記マイクロプロセッサは、実行する命令コードが前記予め定められた命令コード（コンフィギュレーション用の命令コード）である場合に、前記選択機能ブロックの選択する信号の全てがアサートされるまでは、命令コードの実行を中断し（図９のＴ６〜Ｔ１０参照）、全てがアサートされてから当該予め定められた命令コードを実行する（図９のＴ１１参照）集積回路が構成される。
【０１０９】
以上の実施例において説明を行った機能ブロックだけでなく、例えばＰ／Ｓ変換器、Ｓ／Ｐ変換器などの回路機能で構成される機能ユニットを含む機能ブロックを用いてもよい。そして、機能ブロック１５０において示したマルチプレクサ機能を有する選択機能ブロックを用いて、多数の機能ブロックを有機的に結合する回路構成としてもよい。これにより、メモリインタフェース回路として有用なだけでなく、デジタルデータのインタフェース全般の回路方式として応用することも可能である。
【０１１０】
（他の形態）
以下で説明する他の形態を採ってもよく、上記各実施例は、それぞれ、以下で説明される他の形態のうちの一部が付加されてもよいし、また、以下で説明する他の形態に対して、上記各実施例のうちの一部が付加されてもよい。
【０１１１】
外部メモリ（外部メモリ１８０）に接続された集積回路（ＡＳＩＣ１００）であって、予め定められた命令コード（コンフィギュレーション用の命令コード）を有するマイクロプロセッサ（マイクロプロセッサ１１０）と、前記命令コードが前記マイクロプロセッサに実行された場合に、前記外部メモリのインタフェース制御をする予め定められた制御信号を生成する制御信号生成部（機能ブロック１３０等）とを備える集積回路の構成を採ってもよい。
【０１１２】
ここで、実行される上記命令コードは、当該集積回路のファームウェアであるものとしてもよい。
【０１１３】
ここに、この集積回路は、ＦＰＧＡなどのように、構成された回路を書き換え可能な種類の回路以外の、書き換えが可能でない、他の種類の回路であってもよい。こうすれば、新しいインタフェースを容易に利用できるようにしつつも、デバイス単価を低く抑えたり、スピードを速くしたりして、他の種類の回路の利点を併せて得ることができる。
【０１１４】
集積回路は、制御信号を示すデータを保持するデータ保持部（レジスタユニット１１４のレジスタ、レジスタファイル１７０のレジスタ）を更に備え、前記制御信号生成部は、前記命令コードが前記マイクロプロセッサに実行された場合に、保持されたデータを取得して、取得されるデータにより示される制御信号を生成するものであってもよい。また、集積回路は、前記外部メモリのインタフェース制御をする予め定められた第２の制御信号を生成する第２の制御信号生成部を更に備え、前記命令コードは、２つの前記制御信号生成部から一方を特定する生成部特定データ（コンフィギュレーションアドレス）を含み、前記第１の制御信号生成部は、前記命令コードが前記マイクロプロセッサに実行された場合に、当該命令コードにより特定される、前記一方の制御信号生成部が、当該第１の制御信号生成部であるときにのみ、前記第１の制御信号を生成し、前記第２の制御信号生成部は、前記命令コードが前記マイクロプロセッサに実行された場合に、当該命令コードにより特定される、前記一方の制御信号生成部が、当該第２の制御信号生成部であるときにのみ、前記第２の制御信号を生成する構成を採ってもよい。
【０１１５】
そして、このような他の形態の集積回路において、上記した点以外の点については、上記各実施例のうちの何れかの実施例と同じであるものとしてもよい。すなわち、このような他の形態の集積回路は、上記した点以外の点については、第１実施例と同じであってもよいし、第２実施例と同じであってもよいし、第３実施例と同じであってもよいし、第４実施例と同じであってもよい。
【０１１６】
上記実施例１等のそれぞれの実施例における詳細な点は、例えば、次の説明の通りであってもよい。ただし、次の説明は、単なる一例である。
【０１１７】
図１０は、データの発生源１００ｂにＡＳＩＣ１００が接続された例を示す図である。
【０１１８】
データの発生源１００ｂは、例えば、ノートパソコンや、所定の記憶領域であり、外部メモリ１８０に記憶されるデータを発生する。なお、データの発生源１００ｂは、外部メモリ１８０から、外部メモリ１８０に記憶されたデータを取得してもよい。また、データの発生源１００ｂは、外部メモリ１８０を動作させる命令を生成し、生成した命令をＡＳＩＣ１００へ出力してもよい。
【０１１９】
中継部１１０ａにおいて、機能ブロック１３０等は、マイクロプロセッサ１１０による制御を受けた動作をすることにより、外部メモリ１８０への制御信号を生成する。これにより、生成された制御信号が外部メモリ１８０に出力されることにより、データの発生源１００ｂが発生したデータが、外部メモリ１８０へと中継部１１０ａにより中継される。なお、例えば、中継部１１０ａは、外部メモリ１８０からデータの発生源１００ｂへのデータも中継してもよい。例えば、ＡＳＩＣ１００には、データの発生源１００ｂと、中継部１１０ａとの間のデータの流れを制御するＣＰＵ１６０ａが設けられてもよい。
【０１２０】
より具体的には、マイクロプロセッサ１１０及び機能ブロック１３０等は、データの発生源１００ｂにより生成された命令から特定される制御信号を生成することにより、データの中継を行う。
【０１２１】
なお、ＡＳＩＣ１００及び外部メモリ１８０を有する全体ユニット１００ａは、例えば、ノートパソコンであるデータの発生源１００ｂに装着されるＰＣカード、その他の拡張カードであってもよい。そして、全体ユニット１００ａは、例えば、上記のような中継部１１０ａ及び外部メモリ１８０の組を、複数組備えてもよい。
【０１２２】
上記のように、当該集積回路は、データの発生源（データの発生源１００ｂ）が発生したデータを記憶する動作を前記メモリデバイスに実行させる命令と、当該データとが入力されるＡＳＩＣ（ＡＳＩＣ１００）であり、生成される前記信号パターンが、入力された前記データを記憶する前記動作を前記メモリデバイスに実行させる信号パターンである集積回路である。
【０１２３】
また、実施例１等の詳細な点は、次の説明の通りであってもよい。ただし、次の説明も、単なる一例である。
【０１２４】
集積回路（ＡＳＩＣ１００）は、インタフェース部（外部出力信号１５３の信号線等）と、機能ブロック（機能ブロック１３０〜機能ブロック１５０等）と、マイクロプロセッサ（マイクロプロセッサ１１０）とを備える。
【０１２５】
インタフェース部は、１の種類のメモリデバイス（外部メモリ１８０）に制御信号を出力する。ここで、１の種類とは、メモリデバイスの複数の種類のうちに含まれる１の種類である。なお、インタフェース部は、例えば、前記複数の種類のうちで、前記１の種類のメモリデバイスのみに接続され、前記１の種類のメモリデバイスのみに制御信号を出力してもよい。また、インタフェース部は、例えば、将来の設計変更の後には、他の種類のメモリデバイスに接続されてもよい。
【０１２６】
機能ブロックは、制御信号を生成し、生成した前記制御信号を前記インタフェース部に出力させる。ここで、生成される制御信号は、複数の制御信号のうちで、当該機能ブロックが受ける制御に対応する制御信号である。ここで、複数の制御信号のそれぞれは、前記複数の種類のそれぞれに対応する。それぞれの制御信号は、命令が示す動作を、その制御信号に対応する種類のメモリデバイスに実行させる制御信号である。
【０１２７】
マイクロプロセッサは、複数の命令列のうち、前記１の種類のメモリデバイスへの前記制御信号に対応する命令列を実行する。ここで、複数の命令列のうちのそれぞれの命令列は、その命令列が対応する種類のメモリデバイスのための命令列である。つまり、それぞれの命令列は、対応する種類のメモリデバイスへの制御信号を生成させる制御を前記機能ブロックに対して、マイクロプロセッサに実行させる命令列である。なお、マイクロプロセッサは、複数の命令列のうちで、前記１の種類に対応する命令列のみを記憶してもよい。そして、マイクロプロセッサは、将来の設計変更の後には、他の種類の命令列を記憶してもよい。
【０１２８】
この構成により、例えば、将来の設計変更などで、インタフェース部に接続されるメモリデバイスが、前記１の種類のものから、他の種類のものに変更される場合など、他の種類が利用される場合において、問題が回避できる。すなわち、単に、他の種類に対応する命令列がマイクロプロセッサにより実行されるだけで、容易に、適切な動作が実行される。これにより、メモリデバイスの種類が変更されても、容易に、適切なインタフェース制御ができる。
【０１２９】
なお、前記制御信号は、例えば、前記命令が示す前記動作を前記１の種類のメモリデバイスに実行させる信号パターンに含まれる複数の制御信号のうちの一部又は全部である。
【０１３０】
本発明について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１３１】
本発明にかかるマイクロプロセッサ型メモリインタフェース回路方式は、例えばファームウェアを変更すること等によって、インタフェース回路構成の仕様変更を行うことができるという優れた効果を有し、特にＡＳＩＣの回路方式として大変有用である。
【符号の説明】
【０１３２】
１００  ＡＳＩＣ
１００ａ  全体ユニット
１００ｂ  データの発生源
１１０  マイクロプロセッサ
１１０ａ  中継部
１１１  主記憶ユニット
１１２  実行制御ユニット
１１３  命令デコーダ
１１４  レジスタユニット
１１５  演算ユニット
１１６  バス制御ユニット
１１７  コンフィギュレーション出力ユニット
１１８  信号
１２０  コンフィギュレーションバス
１３０、１４０、１５０、５１０、７１０  機能ブロック
１３１、１４１、１５１、５１１、７１１  ソケットＩ／Ｆ
１３２、１４２、１５２、７１２  機能ユニット
１３３、１５３  外部出力信号
１４３、１７１、１９１、５１４  出力信号
１６０  オンチップバス
１６０ａ  ＣＰＵ
１７０  レジスタファイル
１８０  外部メモリ
１９０  ＤＭＡコントローラ
１９２  ＤａｔａＲｅａｄｙ信号
【図１】
2010013427.tif 000003
【図２】
2010013427.tif 000004
【図３】
2010013427.tif 000005
【図４】
2010013427.tif 000006
【図５】
2010013427.tif 000007
【図６】
2010013427.tif 000008
【図７】
2010013427.tif 000009
【図８】
2010013427.tif 000010
【図９】
2010013427.tif 000011
【図１０】
2010013427.tif 000012
【手続補正書】
【提出日】平成22年12月13日(2010.12.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に関し、半導体メモリを用いた記録メディアや記録装置、及び半導体メモリを使った制御装置を構成するための制御ＬＳＩの回路方式に関するものである。
【背景技術】
【０００２】
不揮発性の半導体メモリの代表格であるフラッシュメモリは、携帯電話、デジタルカメラ、携帯用の音楽プレーヤなど、民生機器から業務用機器まで多くの電子機器で活用されている。
【０００３】
フラッシュメモリを記録デバイスとして効率よく用いるためには、そのインタフェース制御を行う専用ＬＳＩが必要であるが、中でもＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）は、ある特定の用途のために設計、製造される集積回路のことを指す。
【０００４】
一方、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）は、ユーザーが設計した論理情報と配線情報を、内蔵のＳＲＡＭ型メモリセル構造を持つ記憶素子にプログラミングすることによって所望の論理動作を実現するＬＳＩである。ＦＰＧＡでは、ユーザーが設計した論理情報と配線情報を、内蔵のＳＲＡＭ型メモリセル構造を持つ記憶素子にローディングすることによって所望の回路動作を行うことができる。ＦＰＧＡは、ＡＳＩＣと比較すると、開発期間のＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）が短いことが大きな特徴であるが、設計完成後に修正や仕様変更を行うことができることも大きなメリットである。
【０００５】
一方で、フラッシュメモリは、昨今の半導体製造技術の進歩により、飛躍的に集積度を高めその技術を競っているため、メモリチップとのインタフェース方式も複数の方式が乱立している。また、フラッシュメモリを用いた記録メディアは、ＳＤカードなど、各社から様々なインタフェース方式の記録メディアが発売されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特公平３−７５９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＡＳＩＣの場合は開発期間がかかるだけでなく、昨今の半導体プロセスの微細化に伴い、数億円単位の莫大な開発費が必要となり、一度設計したメモリインタフェース仕様を再設計することなく変更できないという非常に大きな問題点を有していた。
【０００８】
このため、インタフェース方式が乱立している今日、単に、新しいインタフェース方式を用いたいというだけのために、再設計を行って、莫大な開発費がかかり、長い開発期間が必要となってしまう事態が生じかねない。
【０００９】
一方、ＦＰＧＡを用いたメモリインタフェース回路は、ＡＳＩＣでのインタフェース回路と比較して、デバイス単価が高くなるだけでなく、消費電力も数倍大きく、同一回路で実現可能な周波数性能が低いなど多数の欠点があり、特に電力条件がシビアな小型のメモリ機器においてはＦＰＧＡが適さない。
【００１０】
本発明は、上記の点に鑑みてなされたものであり、新しいインタフェース式を用いる場合に、容易に、新しいインタフェース式でのインタフェース制御が可能な集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
この課題を解決するために本発明は、次の構成を採用した。
【００１２】
第１の集積回路は、予め定められた命令コードを具備し、記憶ユニット及び命令デコーダを有するマイクロプロセッサと、デジタルデータを記録するメモリデバイスと当該集積回路との間でデータを転送させるインタフェース手段と、前記マイクロプロセッサが前記予め定められた命令コードを実行し、前記命令デコーダが前記予め定められた命令コードを解読することにより、動作の設定変更が可能であり、設定変更されることにより、前記メモリデバイスのインタフェース制御を行う予め定められた制御信号を生成する機能ブロックとを備え、前記機能ブロックは、前記記憶ユニットにより記憶された、前記予め定められた命令コードを含む複数の命令コードが構成する予め定められた命令列が、前記マイクロプロセッサにより実行されることにより、予め定められた信号パターンを生成する集積回路である。
【００１３】
こうすれば、複数の命令コードが構成する命令列が実行されることで、信号パターンが生成される。生成される信号パターンは、データの記憶などの、メモリデバイスへの命令が示す動作を、メモリデバイスに実行させる信号パターンである。これにより、利用されるデジタルデバイスが、１の種類のデジタルデバイスから、他の種類のデジタルデバイスに変更されても、単に、実行される命令列が変更されるだけで、容易に、適切な信号パターンが生成できる。これにより、利用されるデジタルデバイスの種類が他の種類に変更されても、インタフェース制御が、容易にできる。
【００１４】
すなわち、この集積回路では、当該集積回路によりインタフェース制御がされる制御信号が、例えばファームウェアによる、予め定められた命令コードの実行により前記機能ブロックにより生成される。このため、新しいインタフェース制御を用いたい場合に、単に、例えば集積回路に格納されるファームウェアを変更するなどして、制御信号を生成させる命令コードの種類等を変更したり、当該命令コードを実行させて当該制御信号を生成させるタイミングを変更したりなどするだけで済む。つまり、それらだけで、容易に、新しいインタフェース方式でのインタフェース制御を行う集積回路を構成できる。これにより、長い開発期間がかかる再設計等が不要となる。
【００１５】
なお、この集積回路は、当該集積回路に格納される命令コードが実行されて、格納される命令コードが書き換え可能であり、命令コードの書き換えにより、新しいインタフェース方式でのインタフェース制御ができるものであってもよい。
【００１６】
第２の集積回路は、前記予め定められた命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、変更後の入出力経路で生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更手段を備える集積回路である。この構成なら、入出力経路が変更され、十分自由に、入力される制御信号が変更できる。
【００１７】
第３の集積回路は、前記機能ブロックは、前記制御信号を示すデータを保持し、保持する当該データが示す制御信号を生成し、前記予め定められた命令コードは、前記制御信号を示すデータを含み、前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該データを前記機能ブロックに保持させることにより、保持させた当該データが示す制御信号を前記機能ブロックに生成させる集積回路である。
【００１８】
こうすれば、予め定められた命令コードに含まれるデータを変化させるだけで、容易に、適切な制御信号を生成させ、容易に、新しいインタフェース制御を実現できる。
【００１９】
第４の集積回路は、前記予め定められた命令コードは、前記制御信号を示すデータが格納されたレジスタを特定するレジスタ特定データを含み、前記機能ブロックは、前記予め定められた命令コードに含まれる当該レジスタ特定データが特定する前記レジスタのデータを取得して、取得されたデータにより示される前記制御信号を生成する集積回路である。
【００２０】
こうすれば、単に、レジスタのデータを変化させるだけで、多様な制御信号を容易に生成し、ひいては、容易に、多様な新しいインタフェース制御を実現できる。
【００２１】
第５の集積回路は、前記レジスタは、格納されたデータが前記マイクロプロセッサにより変更され、前記機能ブロックは、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる集積回路である。
【００２２】
こうすれば、上記した、予め定められた命令コードではなく、レジスタのデータを変更させる命令コードを用いて、容易に、生成させる制御信号を変更でき、新しいインタフェース制御を容易、自由に実現できる。
【００２３】
第６の集積回路は、前記メモリデバイスのインタフェース制御を行う予め定められた第２の制御信号を生成する第２の機能ブロックと、前記第２の機能ブロックにおけるデータの入出力経路を変更し、生成された前記第２の制御信号を前記メモリデバイスに入力させる第２の入出力経路変更手段とを更に備え、前記予め定められた命令コードは、前記第１の機能ブロック及び前記第２の機能ブロックのうちの一方を特定するブロック特定データを含み、前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該ブロック特定データが前記第２の機能ブロックを特定する場合には、前記第２の機能ブロックにより前記第２の制御信号を生成させ、当該第２の制御信号を入力させる一方で、当該ブロック特定データが前記第１の機能ブロックを特定する場合には、前記第１の制御信号を生成させ、当該第１の制御信号を入力させ、生成される前記信号パターンは、第１の前記制御信号によって構成される部分と、第２の前記制御信号によって構成される部分とが含まれる集積回路である。
【００２４】
こうすれば、第１の機能ブロックと第２の機能ブロックの両者を用いて、多様な制御信号を自由、容易に生成でき、多様な新しいインタフェース制御を容易に実現できる。
【００２５】
第７の集積回路は、前記第１の機能ブロックは、前記予め定められた命令コードが実行される場合に、前記マイクロプロセッサの予め定められた内部レジスタの値を前記インタフェース手段の出力信号として選択し、選択した当該値を前記インタフェース手段から前記制御信号として前記メモリデバイスに入力させる集積回路である。
【００２６】
こうすれば、内部レジスタの値の変更を制御信号として入力させて、入力される制御信号を十分自由に制御できる。
【００２７】
第８の集積回路は、予め定められた信号の中から、アサートを待つべき信号を選択する選択機能ブロックを更に備え、前記マイクロプロセッサは、実行する命令コードが前記予め定められた命令コードである場合に、前記選択機能ブロックの選択する信号の全てがアサートされるまでは、命令コードの実行を中断し、全てがアサートされてから当該予め定められた命令コードを実行する集積回路である。
【００２８】
こうすれば、アサートを待つべき信号が全てアサートされてから、適切なタイミングで制御信号が生成されるようにでき、容易に、適切なタイミングで制御信号を生成できる。
【００２９】
なお、例えば、本発明では、マイクロプロセッサに、回路のコンフィギュレーションを目的としたコンフィギュレーションアドレス情報と、当該アドレスに書き込むデータとからなる命令コードを具備する。そして、当該命令コードにより設定変更が可能な小機能ブロックを有機的に結合する構成が採られる。これにより、命令コードの組み合せにより、ダイナミックに任意の回路構成に変更することによって、自在なメモリインタフェース回路を構成することができる。これにより、内蔵マイクロプロセッサのファームウェアを変更することによって、例えば、フラッシュメモリやＳＤカードなど、様々な外部メモリデバイスに、一つの制御ＬＳＩでインタフェースすることが可能である。これにより、ひいては、フラッシュメモリなど、今後仕様変更が予想されるデバイスを制御する場合において、将来的に、メモリＩ／Ｆプロトコルが変更された場合にも柔軟に対応することが可能なＡＳＩＣを提供できる。
【００３０】
また、例えば、本発明は、命令コードによりダイナミックに回路構成を変更するメモリインタフェース回路方式であり、ＡＳＩＣの開発完了後に外部メモリとのインタフェース回路仕様を変更するには当該回路を再設計する必要があり、開発費の負担が大きいことが回避されるものである。
【発明の効果】
【００３１】
本発明によれば、新しいインタフェース方式でのインタフェース制御を容易に実現できるようになる。
【図面の簡単な説明】
【００３２】
【図１】図１は、本発明の実施例１におけるＡＳＩＣの構成図である。
【図２】図２は、本発明の実施例１におけるコンフィギュレーションを行う命令コードを示した図である。
【図３】図３は、本発明の実施例１におけるコマンド送信動作のタイミングチャートを示した図である。
【図４】図４は、本発明の実施例２におけるコンフィギュレーションを行う命令コードを示した図である。
【図５】図５は、本発明の実施例３におけるＡＳＩＣの構成図である。
【図６】図６は、本発明の実施例３におけるコマンド送信動作のタイミングチャートを示した図である。
【図７】図７は、本発明の実施例４におけるＡＳＩＣの構成図である。
【図８】図８は、本発明の実施例４における機能ユニットの論理回路例を示した図である。
【図９】図９は、本発明の実施例４におけるＤＭＡ動作のタイミングチャートを示した図である。
【図１０】図１０は、データの発生源、ＡＳＩＣ、外部メモリを示す図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施の形態について、図１から図１０を参照して説明する。
【００３４】
実施形態では、例えば、次の集積回路が示される。つまり、マイクロプロセッサ（マイクロプロセッサ１１０）を有する集積回路（ＡＳＩＣ１００）であって、前記マイクロプロセッサは、予め定められた命令コード（コンフィギュレーション用の命令コード、図２）を具備し、記憶ユニット及び命令デコーダを有するマイクロプロセッサ（マイクロプロセッサ１１０）と、前記集積回路は、デジタルデータを記録するメモリデバイス（外部メモリ１８０）と当該集積回路との間でデータを転送させるインタフェース部（外部出力信号１５３、外部出力信号１３３などの信号の信号線）と、前記マイクロプロセッサが前記予め定められた命令コードを実行し、前記命令デコーダが前記予め定められた命令コードを解読することにより、動作の設定変更が可能であり、設定変更されることにより、前記メモリデバイスのインタフェース制御を行う予め定められた制御信号を生成する機能ブロック（機能ブロック１３０、機能ブロック１４０及び機能ブロック１５０）と、前記命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更部（機能ブロック１３０、機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック）とを備え、前記機能ブロックは、前記記憶ユニットにより記憶された、前記予め定められた命令コードを含む複数の命令コードが構成する予め定められた命令列が、前記マイクロプロセッサにより実行されることにより、予め定められた信号パターンを生成する集積回路が示される。
【００３５】
これにより、利用されるデジタルデバイスが、１の種類のデジタルデバイスから、他の種類のデジタルデバイスに変更されても、容易に、他の種類でのインタフェース制御が実現できる。
【００３６】
すなわち、インタフェース制御をする制御信号が、予め定められた命令コードの実行により生成されて、例えば、ファームウェア方式が採用されるなどしている。これにより、新しいインタフェース制御を用いたい場合でも、長い開発期間がかかる再設計等が不要となる。つまり、単に、例えば、集積回路に格納されるファームウェアを変更するなどして、制御信号を生成させる命令コードを変更するだけで、新しいインタフェース方式でのインタフェース制御ができる。これにより、容易に、新しいインタフェース方式でのインタフェース制御を実現できる。
【００３７】
そして、より具体的には、例えば、次の集積回路が示される。つまり、当該集積回路は、コンピュータ（図１０のデータの発生源１００ｂ、ノートパソコン）に接続される接続装置（全体ユニット１００ａ、ＰＣカード（拡張カード））に設けられたＡＳＩＣ（ＡＳＩＣ１００）であり、当該接続装置は、フラッシュメモリが使用された複数の種類のメモリカード（ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、Ｕ３、ＳＤメモリカード、ｍｉｎｉＳＤカード、ｍｉｃｒｏＳＤカード、メモリースティックなど）のうちの、１の種類のメモリカードが複数設けられ、前記メモリデバイス（外部メモリ１８０）は、複数の前記１の種類のメモリカードのうちの１つであり、当該集積回路は、前記メモリデバイスに動作を行わせる命令が、前記コンピュータにより入力され、前記機能ブロック（機能ブロック１３０等）は、複数の制御信号のうちで、当該機能ブロックが受ける制御に対応する制御信号を生成して、生成した前記制御信号を、前記メモリデバイスへと前記インタフェース部（外部出力信号１５３の信号線）に出力させ、前記複数の制御信号のそれぞれは、前記複数の種類のうちの１つに対応し、入力された前記命令の動作を、対応する種類のメモリカードに実行させ、前記マイクロプロセッサ（マイクロプロセッサ１１０）は、複数の命令列のうちの、１の命令列を実行し、前記複数の命令列のそれぞれは、前記複数の種類のうちの１つに対応し、対応する種類のメモリカードへの前記制御信号を生成させる制御を前記機能ブロックに対して、前記マイクロプロセッサに実行させ、前記マイクロプロセッサにより実行される前記１の命令列は、前記１の種類のメモリカードの命令列であり、前記信号パターンは、前記１の命令列の実行により生成される前記制御信号の信号パターンである集積回路が示される。
【００３８】
なお、符号「１５３」は、外部出力信号そのものではなく、外部出力信号の信号線を指すと理解されてもよい。なお、インタフェース部は、例えば、前記複数の種類のうちで、前記１の種類のメモリデバイスのみに接続されてもよい。また、インタフェース部は、例えば、将来の設計変更の後には、他の種類のメモリデバイスに接続されてもよい。なお、前記マイクロプロセッサは、複数の命令列のうちで、前記１の種類に対応する命令列のみを記憶してもよい。そして、マイクロプロセッサは、将来の設計変更の後には、他の種類の命令列を記憶してもよい。
【００３９】
（実施例１）
図１は、本発明の実施の形態として、フラッシュメモリに記録されたデジタルデータを入出力するためのインタフェースを備えたＡＳＩＣ１００の回路構成例を示したものである。
【００４０】
ＡＳＩＣ１００は、マイクロプロセッサ１１０と、機能ブロック１３０と、機能ブロック１４０と、機能ブロック１５０と、レジスタファイル１７０と、ＤＭＡコントローラ１９０と、オンチップバス１６０と、コンフィギュレーションバス１２０等を備える。
【００４１】
マイクロプロセッサ１１０は、本発明の実施例として説明するマイクロプロセッサであり、図１のマイクロプロセッサ１１０では、その内部の概略構成を図示している。
【００４２】
そして、マイクロプロセッサ１１０は、主記憶ユニット１１１と、実行制御ユニット１１２と、命令デコーダ１１３と、レジスタユニット１１４と、演算ユニット１１５と、バス制御ユニット１１６と、コンフィギュレーション出力ユニット１１７とを備える。
【００４３】
主記憶ユニット１１１は、命令コードを格納するプログラム領域や、作業データを格納するデータ領域、及び一時的にデータを格納するスタック領域などを記憶するメモリである。ここで、主記憶ユニット１１１が、上記したプログラム領域に格納するプログラムの命令コードの一部は、後述する、コンフィギュレーション用の命令コードである。
【００４４】
実行制御ユニット１１２は、プログラムカウンタなどのプログラム実行制御や、メモリ管理ユニット（ＭＭＵ）や条件分岐、及び割り込み制御を行うための制御回路である。
【００４５】
命令デコーダ１１３は、主記憶ユニット１１１より読み出した命令コードに応じて、他のユニットを制御するための制御信号を生成する。
【００４６】
レジスタユニット１１４は、演算データやアドレス情報などを一時的に記憶するレジスタにより構成される。
【００４７】
演算ユニット１１５は、命令コードに応じて前記レジスタや主記憶のデータを演算し、その演算結果を前記レジスタや主記憶ユニット１１１に格納する。
【００４８】
バス制御ユニット１１６は、ＡＳＩＣ１００の内部のオンチップバス１６０を介して、マイクロプロセッサ１１０と、ＡＳＩＣ１００の内部における他のモジュールとのデータ入出力動作を行う。
【００４９】
なお、ここで本発明の回路方式を具体的に示すために、本実施例で説明するマイクロプロセッサ１１０の命令コードは、説明の便宜上、１６ビット長として説明するが、３２ビットなど他のワード長であっても同様である。
【００５０】
図２は、本実施例において具備した機能ブロック１３０などをコンフィギュレーションする、コンフィギュレーション用の命令コードの実施例を具体的に示したものである。
【００５１】
図２に示される、コンフィギュレーション用の命令コードは、識別子２０１と、コンフィギュレーションアドレス２０２と、コンフィギュレーションデータ２０３とを備える。
【００５２】
識別子２０１は、命令コードを識別するための識別子（以後ＳｅｔＣｏｎｆｉｇと示す）である。なお、識別子２０１は、例えば、コンフィギュレーション用の命令コード以外の、何れの他の命令コードの識別子の値とも異なる値である。
【００５３】
ここで、命令デコーダ１１３は、図２に示されるコンフィギュレーション用の命令コードを、含まれるこの識別子２０１によって、他の命令コードから識別する。
【００５４】
そして、コンフィギュレーション出力ユニット１１７は、当該命令コードが識別されると、命令コードに含まれるコンフィギュレーションアドレス２０２と、コンフィギュレーションデータ２０３とを保持する。そして、コンフィギュレーション出力ユニット１１７は、このとき、ＣｏｎｆｉｇＡｄｄｒ[６:０]、ＣｏｎｆｉｇＤａｔａ[３:０]、コンフィギュレーションタイミングを示すＣｏｎｆｉｇＷｒｉｔｅ信号により構成される信号を、コンフィギュレーションバス１２０に出力する。
【００５５】
次に、本実施例で例示した機能ブロック１３０は、コンフィギュレーションバス１２０に接続されたソケットＩ／Ｆ１３１（ＣｏｎｆｉｇＡｄｄｒ＝００ｈとする）と、４ビットのフリップフロップによって構成された機能ユニット１３２とを備える。なお、図１に示される、この機能ブロック１３０が出力する外部出力信号１３３は、前記フリップフロップの出力信号を出力する外部出力信号である。
【００５６】
なお、本実施例では外部メモリ（フラッシュメモリ）１８０は、説明の便宜上から、一般的なＮＡＮＤ型フラッシュメモリとして説明するが、フラッシュメモリの種類やインタフェース方法を限定するものではないことは言うまでもない。
【００５７】
図３は、コマンド送信動作のタイミングチャートである。
【００５８】
クロック信号３０１は、マイクロプロセッサ１１０に供給されるクロック信号である。
【００５９】
ＯｐＣｏｄｅ３０２は、主記憶ユニット１１１より読み出された命令コードである。ここで、命令コードに続く２つの数字の意味は、記号３０３が図示する最初の数字が、コンフィギュレーション用の命令コードに含まれるコンフィギュレーションアドレス２０２（図２参照）を示す。そして、記号３０４が図示する、次の数字が、コンフィギュレーション用の命令コードに含まれるコンフィギュレーションデータ２０３（図２参照）を示している。
【００６０】
ＣＬＥ３０５、ＡＬＥ３０６、／ＷＥ３０７、／ＲＥ３０８（図３）は、本実施例で説明する外部メモリ（フラッシュメモリ）１８０の制御信号であり、それぞれ、外部出力信号１３３（図１）で示す、機能ブロック１３０が有する機能ユニット１３２の、４ビットのフリップフロップＤ３〜Ｄ０の出力データに対応する。
【００６１】
図３で横軸に示される各タイミングにおいて、図３に示される各命令コードがそれぞれ実行された場合の、４つの制御信号ＣＬＥ３０５、ＡＬＥ３０６、／ＷＥ３０７、／ＲＥ３０８の変化を次に説明する。
【００６２】
タイミングＴ１では、マイクロプロセッサ１１０が、図３に示されるように、「ＳｅｔＣｏｎｆｉｇ  ０，３」を実行する。ここで、実行される命令コードのオペコード「ＳｅｔＣｏｎｆｉｇ」は、上述したコンフィギュレーション用の命令コードの識別子である。そして、この命令コードのコンフィギュレーションアドレス２０２（図２）は「０」であり、コンフィギュレーションデータ２０３（図２）は「３」である。ここで、コンフィギュレーションアドレス「０」は、機能ブロック１３０を示すアドレスであるものとする。一方、コンフィギュレーションデータ「３」は、２進数表現で、３＝１×１＋２×１＋４×０＋８×０＝１１００と表される。
【００６３】
そして、ＣＬＫ３０１のＴ２の立ち上がりエッジにおいて、コンフィギュレーション出力ユニット１１７が出力するコンフィギュレーションバス１２０（図１参照）のＣｏｎｆｉｇＤａｔａ[３:０]が、機能ブロック１３０の前記フリップフロップＤ３〜Ｄ０にラッチされる。これにより、Ｔ２の立ち上がりエッジでは、機能ブロック１３０の、４つの制御信号ＣＬＥ３０５、ＡＬＥ３０６、／ＷＥ３０７、／ＲＥ３０８は、それぞれ、上述した計算の結果である２進数表現１１００に対応する、１、１、０、０である。つまり、このとき、４つのフリップフロップには、それぞれ、１、１、０、０が格納される。
【００６４】
次に、ＣＬＫ３０１のＴ３の立ち上がりエッジにおいて、コンフィギュレーション出力ユニット１１７が出力するコンフィギュレーションバス１２０のＣｏｎｆｉｇＤａｔａ[３:０]が前記フリップフロップＤ３〜Ｄ０にラッチされる。これにより、ＣＬＥ３０５は、“０”から“１”に遷移し、／ＷＥ３０７は“１”から“０”に遷移する（図３参照）。これは、Ｔ２における、実行される命令コードのコンフィギュレーションデータが、９＝１×１＋２×０＋４×０＋８×１で、２進数表現の１００１だからである。
【００６５】
次のクロックの立ち上がりＴ４では、コンフィギュレーションアドレス２０２が０１ｈであるためソケットＩ／Ｆ１３１において、コンフィギュレーションアドレスが機能ユニット１３２の機能ブロック１３０に一致しないため、機能ユニット１３２のフリップフロップの状態は変化しない。
【００６６】
次のクロックの立ち上がりＴ５では、／ＷＥ３０７は“０”から“１”に遷移する。以降、同様に、命令コードの組み合せによって所望のタイミング信号を生成することが可能である。
【００６７】
次に本実施例における機能ブロック１４０（図１）について説明する。
【００６８】
機能ブロック１４０が有する機能ユニット１４２は、先述した機能ユニット１３２と同様に、４ビットのフリップフロップで構成される。ここで、フリップフロップの出力信号１４３は、レジスタファイル１７０のレジスタを選択するためのアドレス信号として、レジスタファイル１７０に出力される。
【００６９】
なお、ここで、レジスタファイル１７０は、８ビットのレジスタ１６個より構成され、前記４ビットの出力信号（アドレス信号）１４３によってレジスタ値を選択し、選択されたレジスタ値のレジスタのデータが、レジスタファイルの出力信号１７１として出力され、機能ブロック１５０に入力される。
【００７０】
他方、ソケットＩ／Ｆ１４１は、ソケットＩ／Ｆ１３１と同様の構成であるが、ＣｏｎｆｉｇＡｄｄｒ（図２のコンフィギュレーションアドレス２０２）＝０１ｈの場合に、ＣｏｎｆｉｇＤａｔａ（図２のコンフィギュレーションデータ２０３）を、機能ユニット１５２が有する前記フリップフロップに設定する。
【００７１】
機能ブロック１５０は、ソケットＩ／Ｆ１５１より設定された選択状態によって、前記レジスタファイル１７０の出力信号１７１と、後述するＤＭＡコントローラ１９０の出力信号１９１との何れかを選択し、８ビットの外部出力信号１５３を生成するマルチプレクサである機能ユニット１５２により構成される。
【００７２】
ここで再びコマンド送信動作のタイミングチャートにおけるＴ４で示すクロックの立ち上がり時の動作について説明する。Ｔ４では、ＣｏｎｆｉｇＡｄｄｒ＝０１ｈであるため、機能ブロック１４０に対して、ＣｏｎｆｉｇＤａｔａ[３:０]＝０ｈを書き込む。この動作により、前記出力信号（アドレス信号）１４３が“０ｈ”に設定され、レジスタファイル１７０におけるアドレス０のレジスタ値が出力信号１７１に出力される。ここで機能ブロック１５０は予め、レジスタ値（出力信号１７１）、つまりレジスタファイル１７０からの入力信号が、当該機能ブロック１５０の外部出力信号１５３に出力されるように設定されていれば、出力信号１７１が外部出力信号１５３として出力されて、外部メモリ（外部フラッシュメモリ）１８０のＤａｔａ３１０（図３参照）が、Ｒ０（図３において記号３１１で示す）となる。
【００７３】
同様に、図３における記号３１２でＲ１と示す、レジスタファイル１７０のアドレス１のレジスタ値は、Ｔ８で示すクロックの立ち上がり時に外部出力信号１５３に出力できる。
【００７４】
この集積回路は、前記命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、変更後の入出力経路で生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更部を備える集積回路である。
【００７５】
そして、この集積回路は、機能ブロック１３０が、前記制御信号を示すデータをフリップフロップに保持し、保持する当該データが示す制御信号を生成し、前記予め定められた命令コードが、前記制御信号を示すデータ（コンフィギュレーションデータ２０３、図２）を含み、前記マイクロプロセッサが、前記予め定められた命令コードに含まれる当該データを前記機能ブロック１３０に保持させることにより、保持させた当該データが示す前記制御信号を生成させる集積回路である。
【００７６】
このため、制御信号を生成する多種類の命令コードを用意しなくとも、命令コードに含まれるデータを変化させるだけで、容易に、適切な制御信号を生成させ、容易に、新しいインタフェース制御を実現できる。
【００７７】
そして、この集積回路は、前記予め定められた命令コードが、前記制御信号を示すデータが格納されたレジスタ（レジスタファイル１７０のレジスタ）を特定するレジスタ特定データ（コンフィギュレーションデータ２０３、図２）を含み、前記機能ブロック（機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック）が、当該レジスタ特定データにより特定される前記レジスタのデータを取得し、取得されるデータが示す制御信号を生成する集積回路である。
【００７８】
このため、レジスタのデータを変化させることで、容易に、多様な制御信号を生成させることができる。
【００７９】
そして、この集積回路は、前記レジスタが、格納されるデータが前記マイクロプロセッサにより変更され、前記機能ブロック（機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック）が、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる集積回路である。
【００８０】
このため、上記した、予め定められた命令コードではなく、レジスタのデータを変更させる命令コードを用いて、容易、自由に、生成させる制御信号を変更でき、新しいインタフェース制御を容易、自由に実現できる。
【００８１】
そして、この集積回路は、前記メモリデバイスのインタフェース制御を行う予め定められた第２の制御信号を生成する第２の機能ブロック（機能ブロック１３０）と、前記第２の機能ブロックにおけるデータの入出力経路を変更し、生成された前記第２の制御信号を前記メモリデバイスに入力させる第２の入出力経路変更部（機能ブロック１３０）とを更に備え、前記予め定められた命令コードが、前記第１の機能ブロック及び前記第２の機能ブロックのうちの一方を特定するブロック特定データ（コンフィギュレーションアドレス２０２、図２）を含み、前記マイクロプロセッサが、前記予め定められた命令コードに含まれる当該ブロック特定データが前記第２の機能ブロックを特定する場合には、前記第２の機能ブロックにより前記第２の制御信号を生成させて、当該第２の制御信号を前記メモリデバイスに入力させ、前記第１の機能ブロックを特定する場合には、前記第１の制御信号を生成させて、当該第１の制御信号を入力させ、生成される前記信号パターンが、第１の前記制御信号によって構成される部分と、第２の前記制御信号によって構成される部分とが含まれる集積回路である。
【００８２】
このため、第１の機能ブロックと第２の機能ブロックの両者を用いて、多様な制御信号を自由、容易に生成でき、多様な新しいインタフェース制御を容易、自由に実現できる。
【００８３】
なお、この集積回路は、機能ブロック（機能ブロック１４０及び機能ブロック１５０の全体よりなる機能ブロック、機能ブロック１３０）が、前記予め定められた命令コードが実行される場合に、前記マイクロプロセッサの予め定められた内部レジスタの値を前記インタフェースの出力信号として選択し、選択した当該値を前記インタフェースから前記制御信号として前記メモリデバイスに入力させる集積回路である。
【００８４】
（実施例２）
図４は、図２に示される命令コードの定義方法とは異なる命令コードの定義例を示す図である。
【００８５】
図４に示される命令コードは、識別子４０１と、データ４０２と、データ４０３とを備える。
【００８６】
識別子４０１は、命令コードを識別するための識別子（以後ＬｏａｄＣｏｎｆｉｇと示す）であり、命令デコーダ１１３によって、この識別子４０１に基づいて、当該命令コードが識別される。データ４０２は、コンフィギュレーションアドレスを保持するレジスタユニット１１４の内部レジスタを選択するための情報を割り付けており、同様にデータ４０３は、コンフィギュレーションデータを保持するレジスタユニット１１４の内部レジスタを選択するための情報を割り付けている。この各々４ビットの情報は、それぞれ、信号１１８（図１）を用いて、レジスタユニット１１４における１６個までの内部レジスタを選択することが可能である。ここで、前記内部レジスタは先の実施例同様に１６ビットであるとすれば、ＬｏａｄＣｏｎｉｆｇの命令コードでは、ＣｏｎｆｉｇＡｄｄｒ[１５:０]、ＣｏｎｆｉｇＤａｔａ[１５:０]までのコンフィギュレーションバス１２０に接続される機能ブロックの設定が可能である。
【００８７】
こうして、前記予め定められた命令コード（コンフィギュレーション用の命令コード）は、制御信号を示すデータが格納されたレジスタ（レジスタユニット１１４の内部レジスタ）を特定するレジスタ特定データ（データ４０３、図４）を含み、前記機能ブロック（機能ブロック１３０）は、前記予め定められた命令コードに含まれる当該レジスタ特定データにより特定される前記レジスタのデータを取得し、取得されるデータが示す前記制御信号を生成する集積回路が構成される。
【００８８】
（実施例３）
図５は、第１の実施例において示した構成に対して、レジスタユニット１１４の内部レジスタの値を選択出力する機能ブロック５１０を追加したことにより、プログラム制御による外部インタフェース回路方式を拡張した実施形態を示したものである。
【００８９】
なお、図５では、図面記載の都合により、機能ブロック１４０（図１参照）の記載は省略した。
【００９０】
機能ユニット５１２は、ソケットＩ／Ｆ５１１を介して設定される４ビットのフリップフロップの出力状態によって、レジスタユニット１１４の内部レジスタ出力５１３における、１６個までの内部レジスタ（Ｒ０〜Ｒ１５）の中から、一つを選択し、出力信号５１４として機能ブロック１５０に入力する。
【００９１】
機能ブロック１５０は、第１の実施例の場合と同様に、ソケットＩ／Ｆ１５１より設定された選択状態によって、当該機能ユニット５１２の前記出力信号５１４を選択し、８ビットの外部出力信号１５３を生成するマルチプレクサである機能ユニット１５２により構成される。
【００９２】
これまでの説明同様に、コンフィギュレーションバス１２０を介して、命令コードＳｅｔＣｏｎｆｉｇにより、機能ブロック５１０及び機能ブロック１５０のコンフィギュレーション設定を行う。また、機能ブロック１５０の外部出力信号１５３に、レジスタユニット１１４の内部レジスタ（仮にＲ０とする）を出力する設定を行うことによって、レジスタユニット１１４の内部レジスタ値を外部信号出力として出力することができる。
【００９３】
図６は、実施例３に係る、コマンド送信動作のタイミングチャートである。
【００９４】
図６を用いて、再度コマンド送信動作のタイミングチャートの動作について説明する。網掛けで示した命令コード以外の動作は図３と同一であるため説明は省略する。Ｔ３で発行した命令コード（Ｌｏａｄ）により、内部レジスタＲ０の状態が、Ｔ４で示すクロックの立ち上がり時において、“０ｘ８０”の状態６０１に遷移し、機能ブロック１５０は、外部出力信号１５３として、この“０ｘ８０”を出力する。
【００９５】
以下同様に、Ｔ８で示すクロックの立ち上がり時の状態６０２では、Ｒ０＝Ｒ１（Ｃｏｐｙ）により、Ｒ１のレジスタを出力することになる。
【００９６】
更に、以下同様に、演算ユニット１１５における演算命令（６０３及び６０４）によって、実施例１において説明したオンチップバス１６０を用いてレジスタファイル１７０を介して入出力動作を行うだけでなく、マイクロプロセッサ１１０内部の演算ユニット１１５を効果的に使った演算操作により所望のインタフェース回路動作を実現することが可能である。
【００９７】
つまり、図６において、Ｔ１０に示される「Ｒ０＝Ｒ２＋Ｒ３」の命令コードがマイクロプロセッサ１１０（図５）により実行されると、Ｔ１１で、レジスタユニット１１４の内部レジスタＲ０に、Ｒ２＋Ｒ３の演算がされた演算結果Ｒ２＋Ｒ３が書き込まれて、書き込まれた演算結果Ｒ２＋Ｒ３が、内部レジスタＲ０に保持される。そして、保持されるこの演算結果Ｒ２＋Ｒ３が、機能ブロック５１０により、出力信号５１４として出力され、ひいては、機能ブロック１５０により、外部出力信号１５３として出力される。
【００９８】
また、同様に、Ｔ１３における命令コード「Ｒ０＝Ｒ２＊Ｒ３」により、Ｔ１４で、外部出力信号１５３として、Ｔ１３の上記命令コードによる演算結果Ｒ２＊Ｒ３が出力される。
【００９９】
こうして、コンフィギュレーション用の命令コードは、制御信号を示すデータが格納されたレジスタ（レジスタユニット１１４の内部レジスタ）を特定するレジスタ特定データ（コンフィギュレーションデータ）を含み、機能ブロック（機能ブロック５１０、機能ブロック１５０）は、前記命令コードに含まれる当該レジスタ特定データにより特定される前記レジスタのデータを取得し、取得されるデータが示す前記制御信号を生成する集積回路が構成される。
【０１００】
そして、この集積回路は、前記レジスタが、格納されるデータが前記マイクロプロセッサにより変更され（図６に示される「Ｒ０＝０ｘ８０」の代入等を参照）、前記機能ブロックが、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる（図６のＴ３〜Ｔ４、Ｔ７〜Ｔ８、Ｔ１３〜Ｔ１４参照）集積回路である。
【０１０１】
（実施例４）
次に第１の実施例において示した構成に対して、内部信号の状態に応じてマイクロプロセッサの命令コードの実行状態を制御することにより、本発明をより効果的に実施する形態について図７〜図９を用いて説明する。
【０１０２】
図７は、実施例４に係るＡＳＩＣの構成図である。
【０１０３】
機能ブロック７１０は、実行制御ユニット１１２における命令実行制御のステートマシンの実行を制御するＯｐＲｅａｄｙ信号７１３を、機能ユニット７１２によって生成する。この生成がされる際に、回路状態を示す複数の信号と、Ｅｎａｂｌｅ信号８０１とが機能ユニット７１２により利用される。回路状態を示す複数の信号は、例えば、ＤＭＡコントローラ１９０からの、出力信号１９１を読み出すデータが残っているかどうかを示すＤａｔａＲｅａｄｙ信号１９２や、外部メモリ１８０がコマンドを受け取ったのち次の動作状態に移行してもよいかどうかを判断するためのＢｕｓｙ信号１８１などが含まれる。なお、回路状態を示す複数の信号については、ここでは、簡単のため前記２種類の信号として説明する。また、Ｅｎａｂｌｅ信号８０１（“１”が有効）は、ソケットＩ／Ｆ７１１を介して設定された、前記回路状態を示す信号の有効無効を示す信号（“１”が有効）である。
【０１０４】
図８は、前記機能ユニット７１２の論理回路の構成例を示したものである。
【０１０５】
すなわちＥｎａｂｌｅ[１：０]＝“０１”と設定すれば、ＯｐＲｅａｄｙ信号７１３は、ＤａｔａＲｅａｄｙ信号１９２の状態と等しく設定できる。
【０１０６】
図９は、実施例４に係る、コマンド送信動作のタイミングチャートである。次に、この図９を用いて、実施例４に係るこの制御動作を説明する。
【０１０７】
Ｔ５で示すクロックの立ち上がりまでの動作は、実施例１での説明と同様である。一方、Ｔ６のクロックの立ち上がり時は、前記ＯｐＲｅａｄｙ信号７１３が“０”であることにより、マイクロプロセッサ１１０は、記号９０１で示す命令コード「Ｓｅｔｃｏｎｆｉｇ  ０，２」の実行を停止する。そして、Ｔ１１のクロックの立ち上がり時に、ＤＭＡコントローラ１９０のＤａｔａＲｅａｄｙ信号１９２がアサートされる。このことにより、ＯｐＲｅａｄｙ信号７１３がアサートされ、実行制御ユニット１１２における命令コードの実行が再開され、引き続きデータ転送動作を継続することができる。
【０１０８】
こうして、予め定められた信号（ＤａｔａＲｅａｄｙ信号１９２、Ｂｕｓｙ信号１８１）の中から、アサートを待つべき信号を選択する選択機能ブロック（機能ブロック７１０）を更に備え、前記マイクロプロセッサは、実行する命令コードが前記予め定められた命令コード（コンフィギュレーション用の命令コード）である場合に、前記選択機能ブロックの選択する信号の全てがアサートされるまでは、命令コードの実行を中断し（図９のＴ６〜Ｔ１０参照）、全てがアサートされてから当該予め定められた命令コードを実行する（図９のＴ１１参照）集積回路が構成される。
【０１０９】
以上の実施例において説明を行った機能ブロックだけでなく、例えばＰ／Ｓ変換器、Ｓ／Ｐ変換器などの回路機能で構成される機能ユニットを含む機能ブロックを用いてもよい。そして、機能ブロック１５０において示したマルチプレクサ機能を有する選択機能ブロックを用いて、多数の機能ブロックを有機的に結合する回路構成としてもよい。これにより、メモリインタフェース回路として有用なだけでなく、デジタルデータのインタフェース全般の回路方式として応用することも可能である。
【０１１０】
（他の形態）
以下で説明する他の形態を採ってもよく、上記各実施例は、それぞれ、以下で説明される他の形態のうちの一部が付加されてもよいし、また、以下で説明する他の形態に対して、上記各実施例のうちの一部が付加されてもよい。
【０１１１】
外部メモリ（外部メモリ１８０）に接続された集積回路（ＡＳＩＣ１００）であって、予め定められた命令コード（コンフィギュレーション用の命令コード）を有するマイクロプロセッサ（マイクロプロセッサ１１０）と、前記命令コードが前記マイクロプロセッサに実行された場合に、前記外部メモリのインタフェース制御をする予め定められた制御信号を生成する制御信号生成部（機能ブロック１３０等）とを備える集積回路の構成を採ってもよい。
【０１１２】
ここで、実行される上記命令コードは、当該集積回路のファームウェアであるものとしてもよい。
【０１１３】
ここに、この集積回路は、ＦＰＧＡなどのように、構成された回路を書き換え可能な種類の回路以外の、書き換えが可能でない、他の種類の回路であってもよい。こうすれば、新しいインタフェースを容易に利用できるようにしつつも、デバイス単価を低く抑えたり、スピードを速くしたりして、他の種類の回路の利点を併せて得ることができる。
【０１１４】
集積回路は、制御信号を示すデータを保持するデータ保持部（レジスタユニット１１４のレジスタ、レジスタファイル１７０のレジスタ）を更に備え、前記制御信号生成部は、前記命令コードが前記マイクロプロセッサに実行された場合に、保持されたデータを取得して、取得されるデータにより示される制御信号を生成するものであってもよい。また、集積回路は、前記外部メモリのインタフェース制御をする予め定められた第２の制御信号を生成する第２の制御信号生成部を更に備え、前記命令コードは、２つの前記制御信号生成部から一方を特定する生成部特定データ（コンフィギュレーションアドレス）を含み、前記第１の制御信号生成部は、前記命令コードが前記マイクロプロセッサに実行された場合に、当該命令コードにより特定される、前記一方の制御信号生成部が、当該第１の制御信号生成部であるときにのみ、前記第１の制御信号を生成し、前記第２の制御信号生成部は、前記命令コードが前記マイクロプロセッサに実行された場合に、当該命令コードにより特定される、前記一方の制御信号生成部が、当該第２の制御信号生成部であるときにのみ、前記第２の制御信号を生成する構成を採ってもよい。
【０１１５】
そして、このような他の形態の集積回路において、上記した点以外の点については、上記各実施例のうちの何れかの実施例と同じであるものとしてもよい。すなわち、このような他の形態の集積回路は、上記した点以外の点については、第１実施例と同じであってもよいし、第２実施例と同じであってもよいし、第３実施例と同じであってもよいし、第４実施例と同じであってもよい。
【０１１６】
上記実施例１等のそれぞれの実施例における詳細な点は、例えば、次の説明の通りであってもよい。ただし、次の説明は、単なる一例である。
【０１１７】
図１０は、データの発生源１００ｂにＡＳＩＣ１００が接続された例を示す図である。
【０１１８】
データの発生源１００ｂは、例えば、ノートパソコンや、所定の記憶領域であり、外部メモリ１８０に記憶されるデータを発生する。なお、データの発生源１００ｂは、外部メモリ１８０から、外部メモリ１８０に記憶されたデータを取得してもよい。また、データの発生源１００ｂは、外部メモリ１８０を動作させる命令を生成し、生成した命令をＡＳＩＣ１００へ出力してもよい。
【０１１９】
中継部１１０ａにおいて、機能ブロック１３０等は、マイクロプロセッサ１１０による制御を受けた動作をすることにより、外部メモリ１８０への制御信号を生成する。これにより、生成された制御信号が外部メモリ１８０に出力されることにより、データの発生源１００ｂが発生したデータが、外部メモリ１８０へと中継部１１０ａにより中継される。なお、例えば、中継部１１０ａは、外部メモリ１８０からデータの発生源１００ｂへのデータも中継してもよい。例えば、ＡＳＩＣ１００には、データの発生源１００ｂと、中継部１１０ａとの間のデータの流れを制御するＣＰＵ１６０ａが設けられてもよい。
【０１２０】
より具体的には、マイクロプロセッサ１１０及び機能ブロック１３０等は、データの発生源１００ｂにより生成された命令から特定される制御信号を生成することにより、データの中継を行う。
【０１２１】
なお、ＡＳＩＣ１００及び外部メモリ１８０を有する全体ユニット１００ａは、例えば、ノートパソコンであるデータの発生源１００ｂに装着されるＰＣカード、その他の拡張カードであってもよい。そして、全体ユニット１００ａは、例えば、上記のような中継部１１０ａ及び外部メモリ１８０の組を、複数組備えてもよい。
【０１２２】
上記のように、当該集積回路は、データの発生源（データの発生源１００ｂ）が発生したデータを記憶する動作を前記メモリデバイスに実行させる命令と、当該データとが入力されるＡＳＩＣ（ＡＳＩＣ１００）であり、生成される前記信号パターンが、入力された前記データを記憶する前記動作を前記メモリデバイスに実行させる信号パターンである集積回路である。
【０１２３】
また、実施例１等の詳細な点は、次の説明の通りであってもよい。ただし、次の説明も、単なる一例である。
【０１２４】
集積回路（ＡＳＩＣ１００）は、インタフェース部（外部出力信号１５３の信号線等）と、機能ブロック（機能ブロック１３０〜機能ブロック１５０等）と、マイクロプロセッサ（マイクロプロセッサ１１０）とを備える。
【０１２５】
インタフェース部は、１の種類のメモリデバイス（外部メモリ１８０）に制御信号を出力する。ここで、１の種類とは、メモリデバイスの複数の種類のうちに含まれる１の種類である。なお、インタフェース部は、例えば、前記複数の種類のうちで、前記１の種類のメモリデバイスのみに接続され、前記１の種類のメモリデバイスのみに制御信号を出力してもよい。また、インタフェース部は、例えば、将来の設計変更の後には、他の種類のメモリデバイスに接続されてもよい。
【０１２６】
機能ブロックは、制御信号を生成し、生成した前記制御信号を前記インタフェース部に出力させる。ここで、生成される制御信号は、複数の制御信号のうちで、当該機能ブロックが受ける制御に対応する制御信号である。ここで、複数の制御信号のそれぞれは、前記複数の種類のそれぞれに対応する。それぞれの制御信号は、命令が示す動作を、その制御信号に対応する種類のメモリデバイスに実行させる制御信号である。
【０１２７】
マイクロプロセッサは、複数の命令列のうち、前記１の種類のメモリデバイスへの前記制御信号に対応する命令列を実行する。ここで、複数の命令列のうちのそれぞれの命令列は、その命令列が対応する種類のメモリデバイスのための命令列である。つまり、それぞれの命令列は、対応する種類のメモリデバイスへの制御信号を生成させる制御を前記機能ブロックに対して、マイクロプロセッサに実行させる命令列である。なお、マイクロプロセッサは、複数の命令列のうちで、前記１の種類に対応する命令列のみを記憶してもよい。そして、マイクロプロセッサは、将来の設計変更の後には、他の種類の命令列を記憶してもよい。
【０１２８】
この構成により、例えば、将来の設計変更などで、インタフェース部に接続されるメモリデバイスが、前記１の種類のものから、他の種類のものに変更される場合など、他の種類が利用される場合において、問題が回避できる。すなわち、単に、他の種類に対応する命令列がマイクロプロセッサにより実行されるだけで、容易に、適切な動作が実行される。これにより、メモリデバイスの種類が変更されても、容易に、適切なインタフェース制御ができる。
【０１２９】
なお、前記制御信号は、例えば、前記命令が示す前記動作を前記１の種類のメモリデバイスに実行させる信号パターンに含まれる複数の制御信号のうちの一部又は全部である。
【０１３０】
本発明について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１３１】
本発明にかかるマイクロプロセッサ型メモリインタフェース回路方式は、例えばファームウェアを変更すること等によって、インタフェース回路構成の仕様変更を行うことができるという優れた効果を有し、特にＡＳＩＣの回路方式として大変有用である。
【符号の説明】
【０１３２】
１００  ＡＳＩＣ
１００ａ  全体ユニット
１００ｂ  データの発生源
１１０  マイクロプロセッサ
１１０ａ  中継部
１１１  主記憶ユニット
１１２  実行制御ユニット
１１３  命令デコーダ
１１４  レジスタユニット
１１５  演算ユニット
１１６  バス制御ユニット
１１７  コンフィギュレーション出力ユニット
１１８  信号
１２０  コンフィギュレーションバス
１３０、１４０、１５０、５１０、７１０  機能ブロック
１３１、１４１、１５１、５１１、７１１  ソケットＩ／Ｆ
１３２、１４２、１５２、７１２  機能ユニット
１３３、１５３  外部出力信号
１４３、１７１、１９１、５１４  出力信号
１６０  オンチップバス
１６０ａ  ＣＰＵ
１７０  レジスタファイル
１８０  外部メモリ
１９０  ＤＭＡコントローラ
１９２  ＤａｔａＲｅａｄｙ信号
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
予め定められた命令コードを具備し、記憶ユニット及び命令デコーダを有するマイクロプロセッサと、
デジタルデータを記録するメモリデバイスと当該集積回路との間でデータを転送させるインタフェース手段と、
前記マイクロプロセッサが前記予め定められた命令コードを実行し、前記命令デコーダが前記予め定められた命令コードを解読することで、動作の設定変更が可能であり、設定変更されることにより、前記メモリデバイスのインタフェース制御を行う予め定められた制御信号を生成する機能ブロックとを備え、
前記機能ブロックは、前記記憶ユニットにより記憶された、前記予め定められた命令コードを含む複数の命令コードが構成する予め定められた命令列が、前記マイクロプロセッサにより実行されることにより、予め定められた信号パターンを生成する集積回路。
【請求項２】
前記予め定められた命令コードの実行により、前記機能ブロックにおけるデータの入出力経路を変更し、変更後の入出力経路で生成された前記制御信号を前記メモリデバイスに入力させる入出力経路変更手段を備える請求項１記載の集積回路。
【請求項３】
前記機能ブロックは、前記制御信号を示すデータを保持し、保持する当該データが示す制御信号を生成し、
前記予め定められた命令コードは、前記制御信号を示すデータを含み、
前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該データを前記機能ブロックに保持させることにより、保持させた当該データが示す制御信号を前記機能ブロックに生成させる請求項１記載の集積回路。
【請求項４】
前記予め定められた命令コードは、前記制御信号を示すデータが格納されたレジスタを特定するレジスタ特定データを含み、
前記機能ブロックは、前記予め定められた命令コードに含まれる当該レジスタ特定データが特定する前記レジスタのデータを取得して、取得されたデータにより示される前記制御信号を生成する請求項１記載の集積回路。
【請求項５】
前記レジスタは、格納されたデータが前記マイクロプロセッサにより変更され、
前記機能ブロックは、前記レジスタのデータが前記マイクロプロセッサにより変更されることにより、変更される前のデータが示す制御信号から、変更された後のデータが示す制御信号に、生成する制御信号を変化させる請求項４記載の集積回路。
【請求項６】
前記メモリデバイスのインタフェース制御を行う予め定められた第２の制御信号を生成する第２の機能ブロックと、
前記第２の機能ブロックにおけるデータの入出力経路を変更し、生成された前記第２の制御信号を前記メモリデバイスに入力させる第２の入出力経路変更手段とを更に備え、
前記予め定められた命令コードは、前記第１の機能ブロック及び前記第２の機能ブロックのうちの一方を特定するブロック特定データを含み、
前記マイクロプロセッサは、前記予め定められた命令コードに含まれる当該ブロック特定データが前記第２の機能ブロックを特定する場合には、前記第２の機能ブロックにより前記第２の制御信号を生成させ、当該第２の制御信号を入力させる一方で、当該ブロック特定データが前記第１の機能ブロックを特定する場合には、前記第１の制御信号を生成させ、当該第１の制御信号を入力させ、
生成される前記信号パターンは、第１の前記制御信号によって構成される部分と、第２の前記制御信号によって構成される部分とが含まれる請求項５記載の集積回路。
【請求項７】
前記第１の機能ブロックは、前記予め定められた命令コードが実行される場合に、前記マイクロプロセッサの予め定められた内部レジスタの値を前記インタフェース手段の出力信号として選択し、選択した当該値を前記インタフェース手段から前記制御信号として前記メモリデバイスに入力させる請求項６記載の集積回路。
【請求項８】
予め定められた信号の中から、アサートを待つべき信号を選択する選択機能ブロックを更に備え、前記マイクロプロセッサは、実行する命令コードが前記予め定められた命令コードである場合に、前記選択機能ブロックの選択する信号の全てがアサートされるまでは、命令コードの実行を中断し、全てがアサートされてから当該予め定められた命令コードを実行する請求項１記載の集積回路。
【請求項９】
前記機能ブロックは、
前記制御信号を特定するデータを記憶し、記憶する前記データが特定する前記制御信号を出力する第１の機能ブロックと、
それぞれのレジスタが値を記憶し、記憶された前記値を出力する複数のレジスタから、１のレジスタを特定するデータを記憶する第２の機能ブロックと、
前記１のレジスタと、ＤＭＡコントローラとのうちの一方を特定するデータを記憶し、記憶する当該データにより特定される方により出力される値を、前記制御信号として出力する第３の機能ブロックとを含む請求項１記載の集積回路。
【請求項１０】
前記予め定められた命令コードは、前記第１の機能ブロック、前記第２の機能ブロック、及び前記第３の機能ブロックから１の機能ブロックを特定する第１部分と、データを特定する第２部分とを含み、
前記マイクロプロセッサは、当該予め定められた命令コードを実行する際に、当該予め定められた命令コードの前記第１部分により特定される機能ブロックにより記憶される前記データを、前記第２部分により特定されるデータに変更する請求項９記載の集積回路。
【請求項１１】
当該集積回路は、データの発生源が発生したデータを記憶する動作を前記メモリデバイスに実行させる命令と、当該データとが入力されるＡＳＩＣであり、
生成される前記信号パターンは、入力された前記データを記憶する前記動作を前記メモリデバイスに実行させる信号パターンである請求項１０記載の集積回路。
【請求項１２】
当該集積回路は、コンピュータに接続される接続装置に設けられたＡＳＩＣであり、
当該接続装置は、フラッシュメモリが使用された複数の種類のメモリカードのうちの、１の種類のメモリカードが複数設けられ、
前記メモリデバイスは、複数の前記１の種類のメモリカードのうちの１つであり、
当該集積回路は、前記メモリデバイスに動作を行わせる命令が、前記コンピュータにより入力され、
前記機能ブロックは、複数の制御信号のうちで、当該機能ブロックが受ける制御に対応する制御信号を生成して、生成した前記制御信号を、前記メモリデバイスへと前記インタフェース手段に出力させ、
前記複数の制御信号のそれぞれは、前記複数の種類のうちの１つに対応し、入力された前記命令の動作を、対応する種類のメモリカードに実行させ、
前記マイクロプロセッサは、複数の命令列のうちの、１の命令列を実行し、
前記複数の命令列のそれぞれは、前記複数の種類のうちの１つに対応し、対応する種類のメモリカードへの前記制御信号を生成させる制御を前記機能ブロックに対して、前記マイクロプロセッサに実行させ、
前記マイクロプロセッサにより実行される前記１の命令列は、前記１の種類のメモリカードの命令列であり、
前記信号パターンは、前記１の命令列の実行により生成される前記制御信号の信号パターンである請求項２記載の集積回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010013427.tif 000013
【図２】
2010013427.tif 000014
【図３】
2010013427.tif 000015
【図４】
2010013427.tif 000016
【図５】
2010013427.tif 000017
【図６】
2010013427.tif 000018
【図７】
2010013427.tif 000019
【図８】
2010013427.tif 000020
【図９】
2010013427.tif 000021
【図１０】
2010013427.tif 000022
【国際調査報告】
2010013427.tif 000023
2010013427.tif 000024
2010013427.tif 000025
2010013427.tif 000026