(57)【特許請求の範囲】
【請求項１】
アービトレーション・ロジックと、
データ・プロセッサ・コアと
を備えたデータ処理装置であって、
前記データ・プロセッサ・コアが
外部データ・ソースとデータ・プロセッサ・コアに関連付けられている少なくとも１つのメモリとの間でデータ転送操作を実行するように動作可能なメモリ・アクセス・インターフェイス部分と、
データ処理操作を実行するように動作可能なデータ処理部分と、
前記プロセッサ・コアから少なくとも２つのバスにデータを転送するように動作可能な読み取り／書き込みポートであって、前記少なくとも２つのバスが前記プロセッサ・コアと前記少なくとも１つのメモリとの間にデータ通信を提供するように動作可能であり、前記少なくとも１つのメモリが少なくとも２つの部分を含み、前記少なくとも２つのバスのそれぞれが前記少なくとも２つの部分のそれぞれにデータ・アクセスを提供するように動作可能である読み取り／書き込みポートと
を含み、
前記アービトレーション・ロジックは前記読み取り／書き込みポートに関連付けられており、前記アービトレーション・ロジックが、前記メモリ・アクセス・インターフェイスから受信された前記少なくとも１つのメモリの一部にあるデータのアクセスを要求するデータ・アクセス要求を、前記少なくとも１つのメモリの前記一部にアクセスを提供する前記少なくとも２つのバスのうちの一方に経路設定し、前記データ処理部分から受信された前記少なくとも１つのメモリの別の一部にあるデータのアクセスを要求する別のデータ・アクセス要求を、前記少なくとも１つのメモリの前記別の一部にアクセスを提供する前記少なくとも２つのバスのうちのもう一方に経路設定するように動作可能であり、前記データ・アクセス要求の前記経路設定が同じクロック・サイクル中に実行され、
前記メモリの前記少なくとも２つの部分が、命令を格納するように動作可能である命令部分、及びデータ項目を格納するように動作可能である少なくとも１つのデータ部分を含み、前記アービトレーション・ロジックは、転送すべきデータが命令であるとき、前記命令部分へのアクセスを提供する前記少なくとも２つのバスのうちの第１のものに前記アクセス要求を経路設定し、転送すべきデータがデータ項目であるとき、前記少なくとも１つのデータ部分へのアクセスを提供する前記少なくとも２つのバスのうちの第２のものに前記データ・アクセス要求を経路設定するように動作可能であり、
前記少なくとも１つのデータ部分が、偶数アドレスを有するデータを格納するように動作可能な偶数データ部分、及び奇数アドレスを有するデータを格納するように動作可能な奇数データ部分の２つのデータ部分を含み、前記読み取り／書き込みポートが、前記命令部分へのアクセスを提供する第１のバス、前記奇数データ部分へのアクセスを提供する第２のバス、及び前記偶数データ部分へのアクセスを提供する第３のバスの３つのバスを介して前記プロセッサ・コアと前記少なくとも１つのメモリとの間にデータを転送するように動作可能であり、前記アービトレーション・ロジックが、転送すべきデータが命令であるときは前記第１のバスに、転送すべきデータが奇数アドレスに関連付けられているデータ項目であるときは前記第２のバスに、転送すべきデータが偶数アドレスに関連付けられているデータ項目であるときは前記第３のバスにデータ・アクセス要求を経路設定するように動作可能である
データ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、前記アービトレーション・ロジックが、前記データ・アクセス要求に関連付けられている前記少なくとも１つのメモリ内のアドレス位置に基づいて前記データ・アクセス要求を経路設定する前記少なくとも２つのバスのうちの一方を選択するように動作可能であるデータ処理装置。
【請求項３】
請求項１に記載のデータ処理装置において、前記アービトレーション・ロジックが、前記少なくとも１つのメモリの一部にあるデータへのアクセスを要求する、前記メモリ・アクセス・インターフェイス部分からのデータ・アクセス要求、及び前記データ処理部分からのデータ・アクセス要求の両方のデータ・アクセス要求の受信に応答して、前記処理部分からの前記要求を前記少なくとも２つのバスのうちの前記一方に経路設定する前に、前記メモリ・アクセス・インターフェイス部分からの前記データ・アクセス要求を、前記少なくとも１つのメモリの前記一部にデータ・アクセスを提供する前記少なくとも２つのバスのうちの前記一方に経路設定するように動作可能であるデータ処理装置。
【請求項４】
請求項１に記載のデータ処理装置であって、前記アービトレーション・ロジックが前記少なくとも１つのメモリの少なくとも１つのビジー部分から待機要求を検出するように動作可能であり、前記アービトレーション・ロジックが、前記待機要求が検出されなくなるまで、任意のデータ・アクセス要求を前記ビジー部分に経路設定しないように動作可能であるデータ処理装置。
【請求項５】
請求項１に記載のデータ処理装置であって、さらに
少なくとも２つの部分に分割される少なくとも１つのメモリと、
前記少なくとも１つのメモリの前記少なくとも２つの部分のそれぞれの部分へのデータ・アクセスをそれぞれ可能にする少なくとも２つのバスと
を含むデータ処理装置。
【請求項６】
請求項５に記載のデータ処理装置において、前記少なくとも１つのメモリが、命令を格納するように動作可能な命令部分、並びに偶数アドレスを有するデータを格納するように動作可能な偶数データ部分、及び奇数アドレスを有するデータを格納するように動作可能な奇数データ部分の２つのデータ部分の３つの部分に分割され、前記データ処理装置が３つのバスを含み、前記読み取り／書き込みポートが前記３つのバスを介して前記プロセッサ・コアと前記少なくとも１つのメモリとの間でデータを転送するように動作可能であり、第１のバスが前記命令部分へのアクセスを提供し、第２のバスが前記奇数データ部分へのアクセスを提供し、第３のバスが前記偶数部分へのアクセスを提供するデータ処理装置。
【請求項７】
請求項５に記載のデータ処理装置において、前記少なくとも１つのメモリが密結合メモリであるデータ処理装置。
【請求項８】
外部データ・ソースとデータ・プロセッサ・コアに関連付けられている少なくとも１つのメモリとの間にデータを転送する方法であって、前記データ・プロセッサ・コアが、前記外部データ・ソースと前記データ・プロセッサ・コアに関連付けられている前記少なくとも１つのメモリとの間のデータ転送操作を実行するように動作可能であるメモリ・アクセス・インターフェイス部分、及びデータ処理操作を実行するように動作可能であるデータ処理部分を含み、前記方法が
前記メモリ・アクセス・インターフェイス部分から受信された前記少なくとも１つのメモリの一部にあるデータのアクセスを要求するデータ・アクセス要求、及び前記データ処理部分から受信された前記少なくとも１つのメモリの別の部分にあるデータへのアクセスを要求するデータ・アクセス要求に応答して、前記メモリ・アクセス・インターフェイス部分から受信された前記データ・アクセス要求を少なくとも２つのバスのうちの一方に経路設定するステップであって、前記少なくとも２つのバスのうちの前記一方が前記少なくとも１つのメモリの前記一部へのアクセスを提供するステップと、前記データ処理部分から受信された前記データ・アクセス要求を前記少なくとも２つのバスのうちのもう一方のバスに経路設定するステップであって、前記別のバスが前記少なくとも１つのメモリの前記別の部分へのアクセスを提供するステップとを含み、前記データ・アクセス要求の前記経路設定が同じクロック・サイクル中に実行され、
前記メモリの前記少なくとも２つの部分が、命令を格納するように動作可能である命令部分、及びデータ項目を格納するように動作可能である少なくとも１つのデータ部分を含み、前記データ・アクセス要求を経路設定する前記ステップが、転送すべきデータが命令であるとき、前記命令部分へのアクセスを提供する前記少なくとも２つのバスのうちの一方にデータ・アクセス要求を経路設定し、転送すべきデータがデータ項目であるとき、前記少なくとも１つのデータ部分へのアクセスを提供する前記少なくとも２つのバスのうちのもう一方に前記データ・アクセス要求を経路設定するように動作可能であり、
前記少なくとも１つのデータ部分が、偶数アドレスを有するデータを格納するように動作可能な偶数データ部分、及び奇数アドレスを有するデータを格納するように動作可能な奇数データ部分の２つのデータ部分を含み、前記経路設定するステップが、前記命令部分へのアクセスを提供する第１のバス、前記奇数データ部分へのアクセスを提供する第２のバス、及び前記偶数データ部分へのアクセスを提供する第３のバスの３つのバスのうちの１つにデータ・アクセスを経路設定するように動作可能であり、前記経路設定するステップが、転送すべきデータが命令であるときは前記第１のバスに、転送すべきデータが奇数アドレスに関連付けられているデータ項目であるときは前記第２のバスに、転送すべきデータが偶数アドレスに関連付けられているデータ項目であるときは前記第３のバスにデータ・アクセス要求を経路設定するように動作可能である
方法。
【請求項９】
請求項８に記載の方法において、データ・アクセス要求をそれぞれのデータ・バスに経路設定する前記ステップが、前記データ・アクセス要求に関連付けられている前記少なくとも１つのメモリ内のアドレス位置に基づいて行われる方法。
【請求項１０】
請求項８に記載の方法において、前記経路設定するステップが、前記少なくとも２つのバスのうちの一方によってアクセスされる前記少なくとも１つのメモリの一部にあるデータへのアクセスを要求する、前記メモリ・アクセス・インターフェイス部分からのデータ・アクセス要求、及び前記データ処理部分からのデータ・アクセス要求の両方のデータ・アクセス要求の受信に応答して、前記処理部分からの前記要求を前記少なくとも２つのバスのうちの前記一方に経路設定する前に、前記メモリ・アクセス・インターフェイス部分からの前記データ・アクセス要求を前記少なくとも２つのバスのうちの前記一方に経路設定する方法。
【請求項１１】
請求項８に記載の方法において、前記経路設定するステップが、前記少なくとも１つのメモリの少なくとも１つのビジー部分から待機要求を検出し、前記待機要求の検出に応答して、前記待機要求が検出されなくなるまで、前記ビジー部分にデータ・アクセス要求を経路設定しない方法。
【請求項１２】
請求項８に記載の方法において、前記少なくとも１つのメモリが、命令を格納するように動作可能な命令部分、並びに偶数アドレスを有するデータを格納するように動作可能な偶数データ部分、及び奇数アドレスを有するデータを格納するように動作可能な奇数データ部分の２つのデータ部分の３つの部分に分割され、前記経路設定するステップが、前記データ・アクセス要求に関連付けられている前記データのアドレスに基づいて、受信したデータ・アクセス要求を３つのバスのうちの１つに経路設定し、第１のバスが前記命令部分へのアクセスを提供し、第２のバスが前記奇数データ部分へのアクセスを提供し、第３のバスが前記偶数データ部分へのアクセスを提供する方法。
【請求項１３】
請求項８から１２までのいずれか一項による方法の諸ステップを実行するようにデータ・プロセッサを制御するよう動作可能であるアービトレーション・ロジック。
【請求項１４】
請求項１に記載のデータ処理装置において、前記データ・プロセッサ・コアが前記アービトレーション・ロジックを含むデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムの分野に関する。より詳細には、本発明はデータ転送要求の分野に関する。
【背景技術】
【０００２】
データ処理システムでは、あるメモリから別のメモリに、又は外部データ・ソースとデータ・プロセッサに関連付けられているメモリとの間でデータを転送することがしばしば必要である。例えば、コードを、起動時にフラッシュなどの低速メモリに格納し、使用前にプロセッサに関連付けられているより速い命令メモリ（ｉｎｓｔｒｕｃｔｉｏｎ  ｍｅｍｏｒｙ）に転送することが望ましい場合がある。一般にこうした転送は、データが読み取られるフラッシュ・メモリ内の位置、及びデータ項目が書き込まれるコア内のレジスタを指定するロード命令、並びにコア内のレジスタ、及びより速い命令メモリ内の宛先位置を指定するストア命令により、データ・プロセッサ・コアを介して行われる。こうした転送は、かなり遅く、各データ項目にいくつかの命令がかかるので、命令の点で高くつく。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
データ転送が相対的に遅く命令の点で高くつく問題は、データ・ロギングなど、常にプロセッサを介して大量のデータをメモリに転送することが必要となり得るアプリケーションにおいて特に重大となる場合がある。
【課題を解決するための手段】
【０００４】
一態様から見ると、本発明は、外部データ・ソースとデータ・プロセッサ・コアに関連付けられている少なくとも１つのメモリとの間でデータ転送操作を実行するように動作可能なメモリ・アクセス・インターフェイス部分と、データ処理操作を実行するように動作可能なデータ処理部分と、前記プロセッサ・コアから少なくとも２つのバスにデータを転送するように動作可能な読み取り／書き込みポートであって、前記少なくとも２つのバスが前記プロセッサ・コアと前記少なくとも１つのメモリとの間にデータ通信を提供するように動作可能であり、前記少なくとも１つのメモリが少なくとも２つの部分を含み、前記少なくとも２つのバスのそれぞれが前記少なくとも２つの部分のそれぞれにデータ・アクセスを提供するように動作可能である読み取り／書き込みポートと、前記読み取り／書き込みポートに関連付けられているアービトレーション・ロジックとを含み、前記アービトレーション・ロジックが、前記メモリ・アクセス・インターフェイスから受信された前記少なくとも１つのメモリの一部にあるデータのアクセスを要求するデータ・アクセス要求を、前記少なくとも１つのメモリの前記一部にアクセスを提供する前記少なくとも２つのバスのうちの一方に経路設定し、前記データ処理部分から受信された前記少なくとも１つのメモリの別の一部にあるデータのアクセスを要求する別のデータ・アクセス要求を、前記少なくとも１つのメモリの前記別の一部にアクセスを提供する前記少なくとも２つのバスのうちのもう一方に経路設定するように動作可能であり、前記データ・アクセス要求の前記経路設定が同じクロック・サイクル中に実行される、データ・プロセッサ・コアを提供する。
【０００５】
本発明は、一部の状況で、データを特定のメモリに、又は特定のメモリから迅速に転送することができることが特に重要であることを認識している。本発明は、メモリ・アクセス・インターフェイスを提供することによってこの問題に対処する。コアをいくつかの部分に分割することにはいくつかの利点があり、１つは、データを読み取り、それをコアのレジスタに格納し、次いでメモリに書き込むのに必要な命令が不要であるため、データが標準プロセッサ・コアを介して転送された場合より速く転送され得ることである。しかし、コアのメモリ・アクセス・インターフェイス部分を処理部分とともに提供することに関連する問題は、両方の部分が関連のメモリに格納されているデータに同時にアクセスしようとする可能性があることである。この問題は、データ・ロギングなど、すぐに処理する必要のない大量のデータがコアを介してメモリに転送されるアプリケーションにおいて特に重大となる場合がある。
【０００６】
この問題は、プロセッサ・コアと関連のメモリとの間にデータ通信を提供するように動作可能な少なくとも２つのバスを提供することによって対処され、関連のメモリは少なくとも２つの部分に分割され、バスがそれぞれの部分にデータ・アクセスを提供する。アービトレーション・ロジックは、バス及び読み取り／書き込みポートと関連して提供され、メモリの特定の部分にあるデータへのアクセスを要求するデータ・アクセス要求を適切なバスに経路設定するように動作可能である。複数のバスの提供によって、同じクロック・サイクルでコアのメモリ・アクセス・インターフェイス及びデータ処理部分から受信されるメモリの異なる部分へのデータ・アクセス要求をそれぞれのバスに沿って並行して処理できるようになる。これによって、コアの２つの部分が単一のバスを介して１つのメモリにアクセスしようと試みているときに起こり得る問題の一部が軽減される。
【０００７】
好ましい実施例では、アービトレーション・ロジックは、前記データ・アクセス要求に関連付けられている前記少なくとも１つのメモリ内のアドレス位置に基づいて前記データ・アクセス要求を経路設定する前記少なくとも２つのバスのうちの一方を選択するように動作可能である。
【０００８】
データに関連付けられているアドレスは、データが格納されているメモリの部分の指示を提供し、したがってどのバスを使用するかを決定するためにアービトレーション・ロジックによって使用することができる有用なインジケータである。
【０００９】
好ましい実施例では、前記メモリの前記少なくとも２つの部分は、命令を格納するように動作可能である命令部分、及びデータ項目を格納するように動作可能である少なくとも１つのデータ部分を含み、前記アービトレーション・ロジックは、転送すべきデータが命令であるとき、前記命令部分へのアクセスを提供する前記少なくとも２つのバスのうちの第１のものに前記アクセス要求を経路設定し、転送すべきデータがデータ項目であるとき、前記少なくとも１つのデータ部分へのアクセスを提供する前記少なくとも２つのバスのうちの第２のものに前記データ・アクセス要求を経路設定するように動作可能である。
【００１０】
メモリを命令部分及びデータ部分に分割することは、メモリを分割する実際の方法である。
【００１１】
好ましくは、前記少なくとも１つのデータ部分は、偶数アドレスを有するデータを格納するように動作可能な偶数データ部分、及び奇数アドレスを有するデータを格納するように動作可能な奇数データ部分の２つのデータ部分を含み、前記読み取り／書き込みポートは、前記命令部分へのアクセスを提供する第１のバス、前記奇数データ部分へのアクセスを提供する第２のバス、及び前記偶数データ部分へのアクセスを提供する第３のバスの３つのバスを介して前記プロセッサ・コアと前記少なくとも１つのメモリとの間にデータを転送するように動作可能であり、前記アービトレーション・ロジックは、転送すべきデータが命令であるときは前記第１のバスに、転送すべきデータが奇数アドレスに関連付けられているデータ項目であるときは前記第２のバスに、転送すべきデータが偶数アドレスに関連付けられているデータ項目であるときは前記第３のバスにデータ・アクセス要求を経路設定するように動作可能である。
【００１２】
データ部分を奇数アドレス部分及び偶数アドレス部分に分割することによって、同時に格納された大量のデータ項目にアクセスするデータ・アクセス要求は、交互のデータ・バスを使用する。これは、プロセッサ・コアの部分のうちの１つがデータ・バスのうちの１つを長時間独占する可能性がほとんどなく、それによってプロセッサ・コアの他方の部分によるメモリの対応する部分へのアクセスが防止されることを意味する。
【００１３】
好ましい実施例では、前記アービトレーション・ロジックは、前記少なくとも１つのメモリの一部にあるデータへのアクセスを要求する、前記メモリ・アクセス・インターフェイス部分からのデータ・アクセス要求、及び前記データ処理部分からのデータ・アクセス要求の両方のデータ・アクセス要求の前記受信に応答して、前記処理部分からの前記要求を前記少なくとも２つのバスのうちの前記一方に経路設定する前に、前記メモリ・アクセス・インターフェイス部分からの前記データ・アクセス要求を、前記少なくとも１つのメモリの前記一部にデータ・アクセスを提供する前記少なくとも２つのバスのうちの一方に経路設定するように動作可能である。
【００１４】
アービトレーション・ロジックは、同じプロセッサ・クロック・サイクル中に両方の部分からのデータ・アクセス要求が受信されたときにメモリ・アクセス・インターフェイスに優先権を与えるように動作可能である。これは、メモリ・アクセス・インターフェイスは、メモリへの高速アクセスを提供するためにプロセッサ・コアに設けられているからであり、したがって、それに優先権を与えることは理解できる。特に重要なコードがコアの処理部分によって実行されている場合、コアの処理部分が長時間にわたってメモリへのアクセスを拒否されることによってコアの動作に重大な影響を及ぼす可能性があり、複数のバスの提供は、それを防ぐのを助ける。
【００１５】
有利には、前記アービトレーション・ロジックは、前記少なくとも１つのメモリの少なくとも１つのビジー部分から待機要求を検出するように動作可能であり、前記アービトレーション・ロジックは、前記待機要求が検出されなくなるまで、任意のデータ・アクセス要求を前記ビジー部分に経路設定しないように動作可能である。
【００１６】
一部の実施例では、メモリは、プロセッサ・クロックほど速く動作しない場合がある。こうした場合、アービトレーション・ロジックが理解できる待機信号を使用できることが非常に便利である。これによって、プロセッサが対応できるよりも速くデータ・アクセス要求がメモリに、又はメモリから送信されるのを防ぐ。
【００１７】
本発明の第２の態様は、本発明の第１の態様によるデータ処理コア、少なくとも２つの部分に分割される少なくとも１つのメモリ、及び前記少なくとも１つのメモリの前記少なくとも２つの部分のそれぞれの部分へのデータ・アクセスをそれぞれ可能にする少なくとも２つのバスを含むデータ処理装置を提供する。
【００１８】
有利には、前記少なくとも１つのメモリは厳重に制御されたメモリである。
【００１９】
本発明の実施例によって異なる種類のメモリを使用することはできるが、本発明は、特に厳重に制御されたメモリの扱いによく対応している。
【００２０】
本発明の第３の態様は、外部データ・ソースとデータ・プロセッサ・コアに関連付けられている少なくとも１つのメモリとの間にデータを転送する方法を提供し、前記データ・プロセッサ・コアは、前記外部データ・ソースと前記データ・プロセッサ・コアに関連付けられている前記少なくとも１つのメモリとの間のデータ転送操作を実行するように動作可能であるメモリ・アクセス・インターフェイス部分、及びデータ処理操作を実行するように動作可能であるデータ処理部分を含み、前記方法は、前記メモリ・アクセス・インターフェイス部分から受信された前記少なくとも１つのメモリの一部にあるデータのアクセスを要求するデータ・アクセス要求、及び前記データ処理部分から受信された前記少なくとも１つのメモリの別の部分にあるデータへのアクセスを要求するデータ・アクセス要求に応答して、前記メモリ・アクセス・インターフェイス部分から受信された前記データ・アクセス要求を少なくとも２つのバスのうちの一方に経路設定するステップであって、前記少なくとも２つのバスのうちの前記一方が前記少なくとも１つのメモリの前記一部へのアクセスを提供するステップと、前記データ処理部分から受信された前記データ・アクセス要求を前記少なくとも２つのバスのうちのもう一方のバスに経路設定するステップであって、前記もう一方のバスが前記少なくとも１つのメモリの前記別の部分へのアクセスを提供するステップとを含み、前記データ・アクセス要求の前記経路設定は、同じクロック・サイクル中に実行される。
【００２１】
本発明の第４の態様は、本発明の第３の態様による方法の諸ステップを実行するようにデータ・プロセッサを制御するよう動作可能であるアービトレーション・ロジックを提供する。
【００２２】
本発明の上記及び他の目的、特徴、及び利点は、以下の実施例の詳細な説明を添付の図面とともに併せ読むことによって明らかになる。
【実施例】
【００２３】
図１は、複数の部分に分割されたプロセッサ・コア１０を示しており、一方の部分１２が標準データ処理部分、他方の部分が直接メモリ・インターフェイス（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ｉｎｔｅｒｆａｃｅ）（ＤＭＡ）３０である。プロセッサ・コア１０は、プロセッサ・クロック信号（ｐｒｏｃｅｓｓｏｒ  ｃｌｏｃｋｉｎｇ  ｓｉｇｎａｌ）ＣＬＫを受信するクロック信号入力２０、及びバスを介してコアに関連付けられているメモリに接続されるように動作可能である少なくとも１つの読み取り／書き込みポート４０を有する。コアは、クロック・イネーブル信号ＨＣＬＫＥＮ（１）を受信するメモリ・アクセス・イネーブル信号入力６０、及びクロック・イネーブル信号ＨＣＬＫＥＮ（２）を受信するプロセッサ・イネーブル入力５０のさらに２つの入力も有し得る。一部の実施例では、プロセッサ・イネーブル信号ＨＣＬＫＥＮ（２）は、外部信号として受信されるのではなく、コア内のロジックを処理することによって生成される（図３参照）。コアの処理部分１２は、ＨＣＬＫＥＮ（２）信号があらかじめ定められた値を有しているとき、つまりこの実施例では１であるとき、プロセッサ・クロック信号ＣＬＫによってクロック制御される。ＨＣＬＫＥＮ（２）信号が０のとき、処理部分は、プロセッサ・クロック信号ＣＬＫを受信せず、したがって非アクティブである。
【００２４】
また、コアの直接メモリ・インターフェイス部分３０も、プロセッサ・クロック信号ＣＬＫによってクロック制御される。メモリ・アクセス・イネーブル信号ＨＣＬＫＥＮ（１）があらかじめ定められた値、つまりこの実施例では１を有しているとき、直接メモリ・インターフェイス部分は、単にこのＣＬＫ信号を受信するだけである。ＨＣＬＫＥＮ（１）がゼロの場合、メモリ・アクセス・インターフェイス３０は、プロセッサ・クロック信号ＣＬＫを受信せず、したがって非アクティブである。
【００２５】
図２は、本発明の一実施例によるデータ処理装置を示しており、このデータ処理装置は、図１に示すようなデータ・プロセッサ・コア１０、命令メモリ７０、直接メモリ・アクセス・コントローラ（ＤＭＡＣ）８０、及びフラッシュ・メモリ９０を有する。プロセッサ・コアは、データ・バス７５によって命令メモリ７０に接続されている。命令メモリ７０は、密結合メモリであり、したがってメモリとコアとの間のデータ転送は常に、予測できるある時間がかかる。
【００２６】
ＤＭＡＣ８０は、ＤＭＡインターフェイス３０を介して、外部データ・ソース、この場合はフラッシュ・メモリ９０と、コアに関連付けられているメモリ、この場合は命令メモリ７０との間のデータの転送を制御する。この実施例では、外部データ・ソースは、プロセッサに関連付けられているフラッシュ・メモリであるが、本発明の実施例は、他の任意の外部データ・ソースと、プロセッサに関連付けられているメモリとの間でデータを転送することができる。示した実施例では、データは、ＤＭＡインターフェイス３０を介してフラッシュ・メモリ９０と命令メモリ７０との間で転送される。これは、処理部分１２がアクティブである間、又はスリープ状態である間、すなわちＨＣＬＫＥＮ（２）が１又は０の間に行うことができる。ＤＭＡＣは、転送されるデータに制御信号を追加する。制御信号は、メモリ７０内のデータが格納されている（格納される）場所のアドレスを示し、１つの信号は、データ転送が読み取りであるか書き込みであるかを示す。
【００２７】
フラッシュ・メモリ又は他の外部データ・ソースがＡＭＢＡバスを介してプロセッサ・コアに接続される一部の実施例では、データを、ＡＭＢＡバス５５を介して直接ＤＭＡインターフェイスに送信することができ、ＤＭＡＣ８０は必要ない。これは、バスがＤＭＡインターフェイスによって理解されるプロトコルを有しているときに可能であり、したがって、必要なアドレス及び制御信号は、転送されるデータにすでに関連付けられており、ＤＭＡＣによるこれらの信号の追加は必要ない。
【００２８】
ＤＭＡインターフェイス３０は、プロセッサ・クロック信号ＣＬＫによってクロック制御され、各クロック・サイクルで、データ項目及びその対応するアドレスがＤＭＡインターフェイスに入力される。次いでこれらは、レジスタに格納され、次のクロック・サイクルで、読み取り／書き込みポート４０を介してデータ・バス７５に沿って命令メモリ７０に出力される。
【００２９】
図２のデータ処理装置の動作の一例は起動時である。この実施例では、データ・プロセッサの起動コードは、フラッシュ・メモリ９０に格納される。フラッシュ・メモリはかなり遅いメモリであり、したがってこのコードは、実行前により速い命令メモリ７０に転送される。起動が行われる前、プロセッサ・コアは非アクティブであり、起動要求の受信後に、ＤＭＡＣ８０は、フラッシュ・メモリ９０から起動コードを読み取り、入力４２を介してデータをＤＭＡインターフェイスに渡す。この時点で、メモリ・アクセス・イネーブル信号ＨＣＫＬＥＮ（１）は１に設定され、したがってＤＭＡインターフェイスは、ＤＭＡＣから渡されたデータ項目を読み取り、ＤＭＡインターフェイスはプロセッサ・クロックによってクロック制御される。このデータはＤＭＡインターフェイス３０を通過し、次いで読み取り／書き込みポート４０、及びプロセッサ・コアのデータ・バス７５を介して命令メモリ７０に出力される。この実施例では、コアはスリープ状態（コアのデータ処理部分へのクロック制御はオフにされ、割り込み待ちモード（ｗａｉｔ−ｆｏｒ−ｉｎｔｅｒｒｕｐｔ  ｍｏｄｅ）になっている）であり、したがってＤＭＡインターフェイス３０は、コア自体からのデータ転送との任意の潜在的な衝突無しにコアをメモリに接続するデータ・バスを使用することができる。
【００３０】
図３は、図１に示したものに似たプロセッサ・コアを示しており、この実施例では、プロセッサ・イネーブル信号は、外部信号としてコアに入力されるのではなく、処理ロジック５２によって生成される。この処理ロジックは、コアのシステム・コントローラの状態の監視に応答して処理イネーブル信号を生成する。処理イネーブル信号及びプロセッサ・クロック信号は、ＡＮＤゲートを通過し、ＡＮＤゲートの出力は、プロセッサ・コアの処理部分１２をクロック制御するために使用される。したがって、処理イネーブル信号が１の場合、プロセッサ・クロック信号ＣＬＫは、処理部分１２によって受信され、処理イネーブル信号がゼロの場合、クロック信号は受信されず、したがってコアの処理部分は非アクティブ又はスリープ状態である。スリープ・モードでは、コアは、外部ピンでの割り込み要求又はデバッグ要求についてサンプリングを行い、これらのうちのいずれかを受信すると、プロセッサ・イネーブル信号が処理ロジック５２によって生成され、割り込み待ちモード（すなわちスリープ・モード）を終了すべきであることをプロセッサ・コアに示す。
【００３１】
また、図３は、図１のコア１０の直接メモリ・アクセス・インターフェイス部分３０をより詳しく示している。ＤＭＡインターフェイス３０は、いくつかのレジスタ３２を含み、それぞれ、外部データ・ソースから転送され、入力２４を介してコアに入力されるデータ、又はメモリから転送され、バス７５を介して読み取り／書き込みポート４０に入力されるデータを保持するように動作可能である。このデータは、レジスタ３２で保持され、次いで外部データ・ソース又はメモリに転送される。直接メモリ・アクセス・インターフェイス３０は、プロセッサ・クロックとメモリ・インターフェイス・イネーブル信号ＨＣＬＫＥＮ（１）との論理積演算を行うように動作可能であるＡＮＤゲート３４も含む。レジスタへの格納を含むデータ転送の処理は、ＡＮＤゲート３４から出力された信号を介してクロック制御される。ＡＮＤゲート３４は、プロセッサ・クロック信号ＣＬＫを一方の入力として、またメモリ・アクセス・インターフェイス・イネーブル信号ＨＣＬＫＥＮ（１）を他方の入力として受信する。したがって、メモリ・アクセス・インターフェイス・イネーブル信号が実行可能であるとき、すなわち１のとき、プロセッサ・クロックは、ＡＮＤゲート３４の出力に存在し、したがって直接メモリ・アクセス・インターフェイスは、クロック制御され、アクティブであり、レジスタ３２は、データを受信し、転送することができる。ＨＣＬＫＥＮ（１）が０のとき、クロック信号は受信されず、メモリ・アクセス・インターフェイス３０は非アクティブである。転送されたデータは、データ項目、データ項目に関連付けられているアドレス、及びデータがそのアドレスから読み取られるか、そこに書き込まれるかを表す制御信号を含む。これらは一般に、ＡＭＢＡプロトコルに従って並行してレジスタ３２に転送される。
【００３２】
図４は、２つのクロック信号を受信する直接メモリ・アクセス・インターフェイスのＡＮＤゲート３４を示している。明らかなように、この実施例では、クロック・イネーブル信号は、定常信号（ｓｔｅａｄｙ  ｓｉｇｎａｌ）ではなく、むしろクロック信号自体である。これによってＡＮＤゲート３４は、その出力にプロセッサ・クロックに対して異なる周波数のクロック信号を生成することになる。メモリ・アクセス・インターフェイス３０によって実行されるデータ転送をクロック制御するのがこの信号である。これは、プロセッサ・クロックのクロック速度で動作することができない低速メモリからデータが転送されているときに有利である。このようにより遅いクロックを提供する能力は、低速メモリに関連付けられている潜在的な問題を軽減するのに効率的で簡単な方法であり、これによって実際に、より遅いメモリに適した速度でデータ転送を行うことができるようになる。
【００３３】
データ処理コアの別の処理部分と同じ時にアクティブであり得るメモリ・アクセス・インターフェイス３０を有する１つの潜在的な問題は、これらはいずれも、同じときに読み取り／書き込みポート４０を介してデータ・アクセスを要求する場合があることである。図５は、これを扱う方法を示している。この実施例では、読み取り／書き込みポート４０に関連付けられているアービトレーション・ロジック１１０が提供され、アービトレーション・ロジックは、２つのデータ・アクセス要求が同じクロック・サイクルで受信されたときに、最初にどのデータ・アクセス要求が処理されるかを制御する。直接メモリ・インターフェイス３０は、高速データ転送を提供するために設けられているため、アービトレーション１１０は、処理部分１２から受信された要求より常にＤＭＡデータ・アクセス要求に高い優先順位を与えるように設定される。これに関する１つの潜在的な問題は、大きいデータ転送要求が外部データ・ソースから受信された場合、バス７５はしばらくの間ＤＭＡインターフェイス３０によって独占される可能性があり、したがって、バス７５に沿ってメモリにアクセスする必要がある重要なコードを実行する必要がある処理部分１２が長時間の停止を被ることである。この問題は、いくつかの実施例では、読み取り／書き込みポート４０を複数のデータ・バスに取り付けることができるようにすることによって対処されている。図５は、読み取り／書き込みポート４０が３つのバス、７５Ａ、７５Ｂ、及び７５Ｃに接続されているところを示している。
【００３４】
この実施例では、密結合メモリ１２０（図６参照）が３つの部分に分割される。部分１２０ａは、偶数アドレスを有するデータを格納するように動作可能であり、部分１２０ｂは、奇数アドレスを有するデータを格納するように動作可能であり、部分１２０ｃは、命令を格納するように動作可能である。データ・バス７５ａは、読み取り／書き込みポート４０をメモリ１２０ａの偶数データ部分に接続し、バス７５ｂは、読み取り／書き込みポートをメモリ１２０ｂの奇数データ部分に接続し、バス７５ｃは、読み取り／書き込みポートをメモリ１２０ｃの命令部分に接続する。このように、密結合メモリ１２０への可能な経路が３つあり、これらは、同じクロック・サイクル中に並行して使用することができる。これによって、すべての場合に、直接メモリ・アクセス・インターフェイス３０からのデータ・アクセス要求に優先順位が与えられたとき、データ・プロセッサ・コア１０の処理部分１２に起こり得るデータの長時間の停止状態の問題が軽減される。
【００３５】
アービトレーション・ロジック１１０は、どの要求に優先順位が与えられるかを制御し、また適切なバスへのデータ・アクセス要求の経路設定も制御する。これを行うには、データに関連付けられているアドレスを監視し、次いでこのアドレスを含むメモリ１２０の部分にアクセスするよう動作可能なバスにデータを置く。メモリ１２０ｃの命令部分は一般に命令を格納するために使用されるが、命令がそれに関連付けられているデータを有している場合、データ項目を命令とともに配置することができることに留意されたい。データの経路設定は、転送されているデータの種類の検出によるのではなく、データに関連付けられているアドレスを使用して行われる。
【００３６】
信号の経路設定を制御すること、及びＤＭＡインターフェイス３０からのデータ・アクセス要求に優先順位を与えることに加えて、コードから出力され、プロセッサ・クロックＣＬＫでクロック制御されているデータ・アクセス要求について行けないほど遅すぎるメモリのときは、アービトレーション・ロジック１１０を使用して、メモリの部分から出力される待機信号を検出することもできる。この場合、アービトレーション・ロジック１１０は、待機信号が検出されなくなるまで、他の任意のデータ・アクセス要求を処理しない。
【００３７】
図６は、プロセッサ・コア１０に関連付けられている密結合メモリ１２０をより詳しく示している。明らかなように、メモリはいくつかの部分に分割されており、偶数アドレスが部分１２０ａにマップされ、奇数アドレスが部分１２０ｂにマップされる。この実施例では、メモリを語境界でインターリーブ動作させる。命令は部分１２０ｃに格納される。このように偶数アドレス及び奇数アドレスを使用したデータのマッピングは、隣接するアドレスを有するいくつかのデータ項目が、交互のバス１２０ａ及び１２０ｂを使用して連続してアクセスされることを意味する。これは、メモリの特定の部分へのバスのうちの１つが大量のシリアル・データ・アクセス要求によって独占されている確率が低く、したがってコアの処理部分に対してデータの長時間の停止状態が起こる可能性が低いことを意味する。
【００３８】
図７は、アービトレーション・ロジック１１０が同じクロック・サイクルで受信された処理部分１２及びＤＭＡインターフェイスからのデータ・アクセス要求をどのように扱うかを概略的に示しているフロー図である。明らかなように、アービトレーション・ロジックは、これらの要求がメモリの同じ部分のアドレスにアクセスしているかどうかを確認し、そうでない場合、それらはそれぞれのバスに沿って並行して経路設定される。それらが同じメモリ部分のアドレスを含んでいる場合、ＤＭＡインターフェイスからのデータ・アクセス要求２が最初に経路設定され、次のクロック・サイクルで、処理部分からのデータ・アクセス要求１が経路設定される。
【００３９】
本発明の実施例について、添付の図面を参照して本明細書で詳しく説明してきたが、本発明は、こうした正確な実施例に限定されるものではなく、添付の特許請求の範囲によって定義された本発明の範囲及び意図から逸脱することなく、当業者によって様々な変更及び修正をそれに加えることができることを理解されたい。例えば、本発明の範囲から逸脱することなく頭記の従属クレームの特徴を独立クレームの特徴と様々に組み合わせることができる。
【図面の簡単な説明】
【００４０】
【図１】一実施例によるプロセッサ・コアを示す概略図である。
【図２】一実施例によるデータ処理装置を示す概略図である。
【図３】プロセッサ・コアをより詳しく示す概略図である。
【図４】クロック及びクロック・イネーブル信号を結合するように動作可能であるロジックの一例を示す図である。
【図５】一実施例による、プロセッサ・コア、メモリ、及びその２つをリンクするバスを示す概略図である。
【図６】一実施例による関連のメモリを示す図である。
【図７】データ・アクセス要求の経路設定に関与する諸ステップを示すフロー図である。
【符号の説明】
【００４１】
１０  プロセッサ・コア
１２  一方の部分
２０  クロック信号入力
３０  直接メモリ・インターフェイス
３２  レジスタ
３４  ＡＮＤゲート
４０  読み取り／書き込みポート
４２  入力
５０  プロセッサ・イネーブル入力
５５  ＡＭＢＡバス
６０  アクセス・イネーブル信号入力
７０  命令メモリ
７５Ａ  データ・バス
７５Ｂ  データ・バス
７５Ｃ  データ・バス
８０  直接メモリ・アクセス・コントローラ（ＤＭＡＣ）
９０  フラッシュ・メモリ
１１０  アービトレーション・ロジック
１２０  密結合メモリ
【図１】
0004642531.tif 000002
【図２】
0004642531.tif 000003
【図３】
0004642531.tif 000004
【図４】
0004642531.tif 000005
【図５】
0004642531.tif 000006
【図６】
0004642531.tif 000007
【図７】
0004642531.tif 000008