JP2009514118A - コア間通信の同期化用のフラグレジスタを有する制御デバイス - Google Patents

コア間通信の同期化用のフラグレジスタを有する制御デバイス Download PDF

Info

Publication number
JP2009514118A
JP2009514118A JP2008538485A JP2008538485A JP2009514118A JP 2009514118 A JP2009514118 A JP 2009514118A JP 2008538485 A JP2008538485 A JP 2008538485A JP 2008538485 A JP2008538485 A JP 2008538485A JP 2009514118 A JP2009514118 A JP 2009514118A
Authority
JP
Japan
Prior art keywords
flag
core
memory
address
cores
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008538485A
Other languages
English (en)
Other versions
JP4940436B2 (ja
Inventor
フランソワ、シャンセル
パトリック、フルシェリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of JP2009514118A publication Critical patent/JP2009514118A/ja
Application granted granted Critical
Publication of JP4940436B2 publication Critical patent/JP4940436B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Abstract

制御デバイス(D)は、バス(BC1,BC2)を介してメモリ(M)に結合される少なくとも二つのコア(C1,C2)を備え且つメモリがコア(C1,C2)間で転送されるべきデータを記憶するように構成されている集積回路(IC)の一部である。この制御デバイス(D)は、バス(BC1,BC2)を介してコア(C1,C2)に結合されるとともに、コアのうちの一方によりメモリ(M)内に記憶され且つコアのうちの他方へと転送され得る状態にあるデータに関連付けられたNi個のフラグ値をNi個のアドレスで記憶するように構成されている少なくとも一つのフラグレジスタ(FR1,FR2)を備え、第1のアドレスで記憶された各フラグ値は、第1のアドレスを指定するコマンドを用いてコア(C1,C2)のうちの一方によってセット又はリセットすることができ、これにより、第2のアドレスで記憶された他のフラグ値を、第2のアドレスを指定するコマンドを用いて他方のコア(C2,C1)によって同時にセット又はリセットすることを許可する。

Description

本発明は、集積回路に係り、より正確には、そのような集積回路のコア(又はプロセッサ)間通信の同期化に関する。
ほとんどの複合集積回路内では、いくつかのコア(又はプロセッサ)にわたってファームウェアが分配されている。これは、特に、携帯電話等の通信機器中に組み込まれて使用されるベースバンドデバイスの集積回路における場合である。
しばしば、CPU(コントロールプロセスユニット)と呼ばれるメインコア又はプロセッサがシステム制御のために設けられ、また、DSP(デジタル信号プロセッサ)と呼ばれる一つ以上の専用コア又はプロセッサが、音声処理、ビデオデコーディング、又は、通信チャンネルコーディング等の特定のデジタルデータ処理のために設けられる。
図1に示されるように、二つのコアC1とC2との間でリアルタイムなデュアル通信(即ち、データ転送)を可能にするために、これらのコアのそれぞれのデータバス及びアドレスバスに対してDPRAMメモリ(デュアルポートランダムアクセスメモリ)Mを接続することが提案されてきた。このタイプのメモリは、一般に16ビット幅又は32ビット幅を有し且つ二つのコア(又はプロセッサ)により同時にアクセスできる揮発性メモリであることが想定される。そのような(図1に示される)構成において、二つのコアC1及びC2は、DPRAMメモリMを従来のメモリとしてとらえるとともに、そのアドレスのうちのどれかでワードを読み取ることができ又は書き込むことができる。唯一の制約は、コアのうちの一方が、他方のコアがDPRAMメモリの記憶領域内にデータを書き込んでいるときにこのDPRAMメモリの記憶領域にアクセスできないという点である。
当業者には知られているように、従来のDPRAMメモリMを介して二つのコアC1及びC2を同期させる一般的な方法は、フラグを使用することである。フラグは、DPRAMメモリM内に一つのアドレスで記憶されるバイナリ値であることが想定される。フラグは、第2のコア(C2又はC1)が操作又はタスク(例えば、スピーチデータのエンコーディング)を完了してしまっており且つその操作又はタスクによって生じるデータがこの第2のコアによりDPRAMメモリMの一部分DSに記憶されるとともに当該データを第1のコアへ転送することができるという信号を第1のコア(C1又はC2)に対して送信することを目的としている。各フラグは、コア間において一方向でのみ使用される。即ち、例えば、コアC1は、その値が(0から1へ)変化するのを待っているフラグをポーリングし、一方、コアC2は、このフラグに対応する操作を完了したときにこのフラグの値を(0から1へ)変化させる。
前述したDPRAMアクセス制約に起因して、図2に示されるように、異なるフラグは、選択されたアドレスで同じDPRAMワードに記憶することができない。確かに、二つのフラグX,Yが選択されたアドレスで同じDPRAMワードに記憶されると仮定すると、両方の値がゼロ(0)にセットされた状態で、コアC1がフラグXを1にセットし且つコアC2がフラグXの値をチェックする際、コアC2は、フラグXを(1から0へ)リセットしなければならず、コアC2がフラグXをリセットしている間にコアC1がフラグYをセットする場合にフラグYを見失う可能性がある。また、ワード中の総てのフラグの値は、両方のコアC1及びC2が同時に書き込むときに不明確になる。そのため、ワードごとに、ひいては、アドレスごとに、一つのフラグだけを記憶する必要があり、これは、特にDPRAMメモリが32ビット幅を有する場合に、メモリサイズの点から見て費用がかかる(例えば、1ビットの128個のフラグにおいては、496ビット(128×31)を失う)。
従って、本発明の目的は、上記状況を改善することであり、より正確には、莫大な量のメモリサイズを損なうことなく例えばDPRAMタイプのメモリを介して二つのコア間の通信を同期化させるための容易な方法を提案することである。
この目的のため、本発明は、バスを介してメモリに結合される少なくとも二つのコアを備え且つ上記メモリが上記コア間で転送されるべきデータを記憶するように構成されている集積回路のための制御デバイスを提供する。この制御デバイスは、上記バスを介して上記コアに結合されるとともに、上記コアのうちの一方により上記メモリ内に記憶され且つ上記コアのうちの他方へと転送され得る状態にあるデータに関連付けられたNi個のフラグ値を(Ni個のアドレスで)記憶するように構成されている少なくとも一つのフラグレジスタを備える。第1のアドレスで記憶された各フラグ値は、上記第1のアドレスを指定するコマンド(又は命令)を用いて上記コアのうちの一方によってセット又はリセットすることができ、これにより、第2のアドレスで記憶された他のフラグ値を、上記第2のアドレスを指定するコマンド(又は命令)を用いて他方の上記コアによって同時にセット又はリセットすることを許可する。
本発明に係る上記制御デバイスは、別個に又は組み合わせて、及び、特に、考慮される追加の特徴を含み得る。
即ち、本発明に係る上記制御デバイスは、i)上記バスに結合されるとともに、上記コアのうちの第1のコアにより上記メモリ内に記憶され且つ上記コアのうちの第2のコアへと転送され得る状態にあるデータに関連付けられたN1個のフラグ値をN1個のアドレスで記憶するように構成されている少なくとも一つの第1のフラグレジスタを備え、上記第1のレジスタの第1のアドレスで記憶された各フラグ値は、上記第1のアドレスを指定するコマンドを用いて上記第1のコアによってセットできるとともに上記第2のコアによってリセットでき、ii)上記バスに結合されるとともに、上記第2のコアにより上記メモリ内に記憶され且つ上記第1のコアへと転送され得る状態にあるデータに関連付けられたN2個のフラグ値をN2個のアドレスで記憶するように構成されている少なくとも一つの第2のフラグレジスタを備え、上記第2のレジスタの第1のアドレスで記憶された各フラグ値は、上記第1のアドレスを指定するコマンドを用いて上記第2のコアによってセットできるとともに上記第1のコアによってリセットできるものとするとよい。
また、上記各フラグレジスタは、i)上記第1のコアに接続されるバスに対して接続された第1の入力と、Ni個の第1の出力と、第1のフラグ値読み取り及び書き込み手段とを備える第1の制御手段と、ii)上記第2のコアに接続されるバスに対して接続された第2の入力と、Ni個の第2の出力と、第2のフラグ値読み取り及び書き込み手段とを備える第2の制御手段と、iii)Ni個のそれぞれのアドレスを有するNi個の記憶領域を備え、Ni個のフラグ値をそれぞれ記憶するように構成されているとともに、上記第1の出力のうちの一つ及び上記第2の出力のうちの一つに対してそれぞれ接続される記憶手段と、を備えるものとするとよい。
また、上記第1の制御手段及び上記第2の制御手段はそれぞれ、上記記憶手段のいくつかの記憶領域のそれぞれのアドレスを指定する一つのコマンドを受け取るたびに、上記いくつかの記憶領域に記憶されたいくつかのフラグ値をセットし及び/又はリセットするように構成されているものとするとよい。
また、本発明に係る上記制御デバイスは、上記メモリを備えるものとするとよく、上記メモリは、例えば、DPRAMメモリ及びRAMメモリであるものとするとよい。
本発明はまた、以上に導入されたような制御デバイスを備える、電子機器のための集積回路も提供する。
本発明はまた、以上に導入されたような集積回路を備える電子機器も提供する。当該電子機器は、コンピュータ(パーソナル・コンピュータ又はラップトップ)、電話(移動電話、無線電話又は固定電話)、個人用携帯情報端末(即ち、PDA)及びミュージックプレーヤ(例えば、MP3プレーヤ)であるものとするとよい。
本発明の他の特徴及び利点は、以下の詳細な説明及び添付図面を検討することにより明らかとなる。
添付図面は、本発明を完成させる役割を担うだけでなく、必要であれば本発明の定義にも寄与し得る。
最初に、本発明に係る制御デバイスDの非限定的な(第1の)実施の形態の例を説明するために、図3を参照する。この制御デバイスDは、電子機器EE内に組み込むことができる集積回路ICの一部を構成している。
以下の説明では、電子機器EEが携帯電話であるものとする。しかし、本発明に係る集積回路ICは、ファームウェアがいくつかのコア(又はプロセッサ)にわたって分配される必要がある任意の電子機器に組み込まれ得る。そのため、電子機器は、例えば、コンピュータ(パーソナルコンピュータ又はラップトップ)、コードレスフォン、固定電話、個人用携帯情報端末(Personal Digital Assistant)(即ち、PDA)、又は、ミュージックプレーヤ(例えば、MP3プレーヤ)であってもよい。
前述したように、本発明に係る制御デバイスDは、共通メモリMを介して集積回路ICの二つのコアC1とC2との間のデュアル通信を同期させることを目的としている。
以下の説明では、共通メモリMが、第1のコアC1及び第2のコアC2にそれぞれ接続された第1のバスBC1及び第2のバスBC2(アドレス及びデータ)に対して接続されるDPRAMメモリ(デュアルポートランダムアクセスメモリ)であるものとする。しかし、本発明は、このタイプのメモリに限定されない。本発明は、共通の多層バスを用いて二つのコアによりアクセスされ得る任意のメモリに適用される。そのため、共通メモリMは、ランダムアクセスメモリ(即ち、RAM)であってもよい。
また、以下の説明では、第1のコアC1が、CPU(コントロールプロセスユニット)とも呼ばれ且つ携帯電話EEの制御のために設けられるメインプロセッサであり、第2のコアC2が、DSP(デジタル信号プロセッサ)とも呼ばれ且つ音声信号処理若しくはビデオデコーディング等の特定のデジタル信号処理又はその他の通信チャンネルコーディングのために設けられる専用プロセッサであるものとする。従って、以下では、時として、第1のコアC1及び第2のコアC2がそれぞれCPU及びDSPと称される。
しかし、本発明はこれらのタイプのコアに限定されない。確かに、本発明は、共通メモリを介して同期した状態で他のコア(結局、同じタイプのコア)に対してデータを送受信する必要がある任意のタイプのコアに適用される。
前述したように、ファームウェアは、少なくとも部分的にCPU C1及びDSP C2へと分配される。それらのそれぞれは、完了時に、少なくともそれらの一部のために、他の一つへと転送されなければならないデータを生成する操作又はタスクを実行しなければならない。そのデータが転送されなければならない各操作又はタスクは、フラグ(バイナリ値)に関連付けられる。また、一方のコアCi(i=1又は2)から他方のコアCi’(i’=2又は1)へと転送されるべきデータの各グループは、両方のコアCi及びCi’から知られ且つ選択されたフラグに関連付けられる選択された場所に一時的に記憶されるように、転送しているコアCiが接続されるバスCBiによってメモリMへ送信される。
本発明によれば、(共通)メモリMは、一方のコアCiから他方のコアCi’へと転送されなければならないデータのみを記憶する。
制御デバイスDは、CPU C1及びDSP C2に対してそれらの対応するバスBC1及びBC2を介して結合される少なくとも一つのフラグレジスタFRiを備えている。各フラグレジスタFRiは、前述したフラグのそれぞれの値を選択されたアドレスで記憶するように構成されている。この目的のため、フラグレジスタは、CPU C1及びDSP C2から知られるNi個のアドレスに対応するNi個の記憶領域を備えている。
第1のコアCi(例えば、CPU C1)は、フラグレジスタFRi内の選択されたアドレスを有する一つのフラグに関連付けられた一つのタスク又は操作を完了すると、メモリMへ転送するためのデータの対応するグループを、それらがその選択されたアドレスで記憶され得る順序で送信するとともに、メッセージをそれを必要とするフラグレジスタFRiへと送信して、転送されたデータのグループに関連付けられたフラグを1にセットする。
メッセージは少なくとも一つのオクテット(又はワード)を含んでおり、各オクテットにおいて、各ビットは、その値が対応するフラグレジスタFRiに記憶されるフラグを示している。より正確には、ワードビット値が0に等しい場合、このことは、対応するフラグ値が不変のままでなければならないことを意味しており、また、ワードビット値が1に等しい場合、このことは、対応するフラグ値が(0から1へ)変化させられなければならないことを意味している。例えば、8ビットのワードが(00000001)に等しいときには、第1のワードビット(1に等しい)に関連付けられた第1のフラグ値が1にセットされなければならず、一方、7個の他のワードビット(0に等しい)に関連付けられた7個の他のフラグ値は不変のままでなければならない。また、8ビットのワードが(00010001)に等しいときには、第1及び第5のワードビット(1に等しい)に関連付けられた第1及び第5のフラグ値が1にセットされなければならず、一方、6個の他のワードビット(0に等しい)に関連付けられた6個の他のフラグ値は不変のままでなければならない。
そのため、メッセージ中に含められるワードに対応するフラグレジスタFRiがこのメッセージを受け取ると、当該フラグレジスタは、1に等しいワードビットに関連付けられた各フラグ値だけを変化させる。即ち、フラグレジスタは、1に等しいワードビットに関連付けられた各フラグ値を(1に)セットする。操作又はタスクが完了されていない限り、対応するフラグ値が0に等しいままであることが前提とされている。
フラグレジスタFRiに記憶されたフラグ値をポーリングする第2のコアCi’(例えば、DSP C2)は、フラグの値の変化に気付くと、データの対応するグループが関連アドレスでメモリM内に記憶されることを認識する。そのため、第2のコアは、メモリMにアクセスしてデータ転送へ移行することができる。データ転送が完了されると、第2のコアCi’は、メッセージをそれを必要とするフラグレジスタFRiへ送信して、転送されたデータのグループに関連付けられるフラグをリセットする。このメッセージは少なくとも一つのオクテット(又はワード)を含んでおり、各オクテットにおいて、各ビットは、その値が対応するフラグレジスタFRiに記憶されるフラグを示している。
そのため、メッセージ中に含められるワードに対応するフラグレジスタFRiがこのメッセージを受け取ると、当該フラグレジスタは、1に等しいワードビットに関連付けられた各フラグ値だけを変化させる。即ち、フラグレジスタは、1に等しいワードビットに関連付けられた各フラグ値を(0に)リセットする。
フラグレジスタFRiに記憶されたフラグ値をポーリングする第1のコアCiは、フラグの値の変化に気付くと、既にメモリMへ送信したデータの対応するグループが第2のコアCi’に対して有効に転送されたことを認識する。
各フラグレジスタFRiに対して二つのコアC1及びC2が同時にアクセスできるため、(フラグレジスタFRi内に第1のアドレスで記憶された)各フラグ値を、この第1のアドレスを指定する少なくとも一つのワードを含むメッセージ(又はコマンド)を用いて、コアのうちの一方(例えば、C1)によってセット又はリセットすることができ、一方、同時に、(このフラグレジスタFRi内に第2のアドレスで記憶された)少なくとも一つの他のフラグ値を、この第2のアドレスを指定する少なくとも一つのワードを含むメッセージ(又はコマンド)を用いて、他のコア(例えば、C2)によって同時にセット又はリセットすることができる。
図3に示される非限定的な実施例において、制御デバイスDは、第1のバスBC1及び第2のバスBC2の両方に結合された第1の一方向フラグレジスタFR1及び第2の一方向フラグレジスタFR2を備えている。一方向フラグレジスタFRiは、第1のコアCiのみが(それが実行しなければならない操作又はタスクに関連する)フラグ値をセットできる一方で第2のコアCi’のみが(それが待っているデータのグループに関連する)フラグ値をリセットできるレジスタである。
図示の実施例において、第1のフラグレジスタFR1は、CPU C1によって実行される操作又はタスクに専用のものであり、一方、第2のフラグレジスタFR2は、DSP C2によって実行される操作又はタスクに専用のものである。従って、CPU C1は、第1のレジスタへフラグ値を1にセットすることができるとともに、第2のレジスタFR2へフラグ値を0にリセットすることができ、一方、DSP C2は、第2のレジスタFR2へフラグ値を1にセットすることができるとともに、第1のレジスタFR1へフラグ値を0にリセットすることができる。
第1のフラグレジスタFR1は、メモリMから第2のコアC2へのデータ転送に関連するN1個のフラグのそれぞれの値を記憶するためのN1個の記憶領域を備えている。第2のフラグレジスタFR2は、メモリMから第1のコアC1へのデータ転送に関連するN2個のフラグのそれぞれの値を記憶するためのN2個の記憶領域を備えている。例えば、N1=N2=8である。
図3に示される非限定的な実施例では、制御デバイスDが第1の一方向フラグレジスタFR1と第2の一方向フラグレジスタFR2とを備えているが、変形例において、制御デバイスDは、いくつかの第1の一方向フラグレジスタFR1及び/又はいくつかの第2の一方向フラグレジスタFR2、又は、少なくとも一つの双方向フラグレジスタを備えることができる。最後の場合(双方向フラグレジスタ)において、総てのコアCiは、フラグレジスタFRiのNi個の記憶領域に記憶される任意のフラグ値をセット又はリセットすることができる。そのためには、同じバイナリ値0又は1が第1のコアC1及び第2のコアC2に関して二つの反対の意味を有している必要がある(即ち、0は第1のコアC1により0としてみなされるが、第2のコアC2によって1としてみなされる。)。
(一方向又は双方向)フラグレジスタFRiの数が、記憶されなければならない(各コアCiに関連付けられる)フラグ値の数によって決まることに留意することは重要である。例えば、記憶するためのフラグ値が8個未満である場合には、一つのフラグレジスタだけで十分である。また、記憶するためのフラグ値が8個を超える場合には、二つ以上のフラグレジスタを設けなければならない。一般に、フラグの数は、バスBCiが送信できるビット数によって決まる。
また、図3に示される非限定的な実施例では、制御デバイスDがメモリから独立している。しかし、変形例では、図4に示されるように、メモリMを制御デバイスDの一部にすることができる。この場合には、フラグレジスタFRiがレジスタRの一つ以上の部分を構成してもよい。
ここで、図5及び図6を参照して、制御デバイスDの実施の一形態の例について更に詳しく説明する。
図5は機能的な実施の形態の例を示しており、この実施の形態において、各フラグレジスタFRiは、第1の制御モジュールCM1と、第2の制御モジュールCM2と、記憶モジュールSMと、を備えている。図5には、第1のフラグレジスタFR1の機能的構造のみが示されている。しかし、第2のフラグレジスタFR2の機能的構造は、第1のフラグレジスタFR1の機能的構造と同一である。
記憶モジュールSMは、Ni個のフラグの現在の値(0又は1)をそれぞれ記憶するために、Ni個のそれぞれのアドレスを有するNi個の1ビット記憶領域(1乃至Ni)を備えている。
第1の制御モジュールCM1は、
−読み取り及び書き込みの目的で記憶モジュールSMのNi個の異なる記憶領域(1乃至Ni)にアクセスするためのものであり、CPU C1のためのインタフェースとしての機能を果たすとともに、制御論理を実行する構成要素を備える第1の読み取り及び書き込みモジュールRWM1と、
−(CPU C1に接続される)第1のバスBC1と第1の読み取り及び書き込みモジュールRWM1とに対して接続される第1の入力と、
−第1の読み取り及び書き込みモジュールRWM1と記憶モジュールSMのNi個の異なる記憶領域(1乃至Ni)とに対して接続されるNi個の第1の出力と、
を備えている。
第1の制御モジュールCM1及び第2の制御モジュールCM2は、同一の機能構造を有している。そのため、第2の制御モジュールCM2は、
−読み取り及び書き込みの目的で記憶モジュールSMのNi個の異なる記憶領域(1乃至Ni)にアクセスするためのものであり、DSP C2のためのインタフェースとしての機能を果たすとともに、制御論理を実行する構成要素を備える第2の読み取り及び書き込みモジュールRWM2と、
−(DSP C2に接続される)第2のバスBC2と第2の読み取り及び書き込みモジュールRWM1とに対して接続される第2の入力と、
−第2の読み取り及び書き込みモジュールRWM2と記憶モジュールSMのNi個の異なる記憶領域(1乃至Ni)とに対して接続されるNi個の第2の出力と、
を備えている。
この対称的な構造のために、より正確には、第1の制御モジュールCM1及び第2の制御モジュールCM2のために、読み取り(ポーリング)及び/又は書き込みの目的でCPU C1及びDSP C2が同時に各フラグレジスタFRiに対してアクセスすることができる。
好ましくは、第1の制御モジュールCM1及び第2の制御モジュールCM2のそれぞれは、それが結合されるコアCiから記憶モジュールSMのいくつかの記憶領域のそれぞれのアドレスを指定する一つのコマンド(メッセージ)を受け取るたびに、記憶モジュールSMのいくつかの記憶領域に記憶されたいくつかの(少なくとも二つの及び好ましくはNi個の)フラグ値をほぼ同時にセットし及び/又はリセットすることができる。これは、各フラグレジスタFRiがいくつかのビットのコマンドワードを受け取るという事実に起因する。
この目的のため、各フラグレジスタFRiの第1及び第2の制御モジュールCM1及びCM2並びに記憶モジュールSMは、それぞれが一つのフラグ値の(即ち、1ビットの)プロセス(読み取り及び書き込み)に関与するNi個の同一で並列な部分へと分割されてもよい。これらのNi個のフラグレジスタ部分のうちの一つの非限定的な実施の形態の例が図6に示されている。
この図示のフラグレジスタ部分は、第1の制御モジュールCM1のNi個の部分(CM11乃至CM1Ni)のうちの一つを構成する第1の制御サブモジュールCM1j(j=1乃至Ni)と、第2の制御モジュールCM2のNi個の部分(CM21乃至CM2Ni)のうちの一つを構成する第2の制御モジュールCM2j(j=1乃至Ni)と、記憶モジュールSMのNi個の部分のうちの一つを構成する記憶サブモジュールSMj(j=1乃至Ni)とを備えている。
例えば、図示のように、第1の制御サブモジュールCM1jは、それぞれ第1の読み取り及び書き込みサブモジュールRWM1jを備えており、第1の読み取り及び書き込みサブモジュールRWM1jは、
−第1のバスBC1に接続され且つフラグレジスタ内に書き込まれるべきj番目のフラグ値に対応する第1の入力(“BitN write”)と、第1のバスBC1に対して同様に接続され且つ書き込み操作を可能にする(0に等しい値は、行うための操作が存在しないことを意味しており、一方、1に等しい値は、書き込み操作がj番目のフラグ値に関して実行されなければならないことを意味している)第2の入力(“write”)と、第1の制御モジュールCM1のNi個の出力のうちの一つの第1のサブ部分を構成する出力とを有する第1のANDゲートAG11と、
−第1のクロック(コアC1に専用のもの)からクロックサイクルを受け取るために第1のバスBC1に対して接続される第1の入力(“clock”)と、第1のANDゲートAG11の出力に接続される第2の入力と、第1の制御モジュールCM1のNi個の出力のうちの一つの第2のサブ部分を構成する出力とを有する第2のANDゲートAG12と、
−第1のクロックからクロックサイクルを受け取るための第1の入力と、j番目のフラグ値を受け取るための第2の入力(“D”)と、前記j番目のフラグ値(“BitN read”)を第1のバスBC1へ供給するための出力(“Q”)とを有するフリップフロップF1(即ち、“FF2”)と、
を備えている。
第2の制御サブモジュールCM2jは、それぞれ第2の読み取り及び書き込みサブモジュールRWM2jを備えており、第2の読み取り及び書き込みサブモジュールRWM2jは、
−第2のバスBC2に接続され且つフラグレジスタ内に書き込まれるべきj番目のフラグ値に対応する第1の反転入力(“BitN write”)と、第2のバスBC2に対して同様に接続され且つ書き込み操作を可能にする第2の入力(“write”)と、第2の制御モジュールCM2のNi個の出力のうちの一つの第1のサブ部分を構成する出力とを有する第1のANDゲートAG21と、
−第2のクロック(コアC2に専用のもの)からクロックサイクルを受け取るために第2のバスBC2に対して接続される第1の入力(“clock”)と、第1のANDゲートAG21の出力に接続される第2の入力と、第2の制御モジュールCM2のNi個の出力のうちの一つの第2のサブ部分を構成する出力とを有する第2のANDゲートAG22と、
−第2のクロックからクロックサイクルを受け取るための第1の入力と、j番目のフラグ値を受け取るための第2の入力(“D”)と、前記j番目のフラグ値(“BitN read”)を第2のバスBC2へ供給するための出力(“Q”)とを有するフリップフロップF2(即ち、“FF3”)と、
を備えている。
各記憶サブモジュールSMjは、
−第1の読み取り及び書き込みサブモジュールRWM1jの第1のANDゲートAG11の出力に接続される第1の入力と、第2の読み取り及び書き込みサブモジュールRWM2jの第1のANDゲートAG21の出力に接続される第2の反転入力と、出力とを有する第1のORゲートOG1と、
−第1の読み取り及び書き込みサブモジュールRWM1jの第2のANDゲートAG12の出力に接続される第1の入力と、第2の読み取り及び書き込みサブモジュールRWM2jの第2のANDゲートAG22の出力に接続される第2の入力と、出力とを有する第2のORゲートOG2と、
−第1のORゲートOG1の出力に接続される第1の入力(“D”)と、第2のORゲートOG2の出力に接続される第2の入力(“CK”−clock)と、前記j番目のフラグ値(“BitN read”)を供給するための出力(“Q”)とを有し、第2のORゲートOG2によって出力される信号の制御下で第1のORゲートOG1により出力される信号によって画定されるフラグ値を記憶するフリップフロップF3(即ち、“FF1”)と、
を備えている。
そのような構成を用いると、第1のフラグレジスタFR1(メモリMから第2のコアC2へのデータ転送に関連するフラグ値を含んでいる)のための規則の以下の(非限定的な)例を適用することができる。即ち、
−第1のコアC1が値“core C1 write value”を第1のフラグレジスタFR1の記憶モジュールSMのj番目の記憶領域内に書き込む場合、第1のフラグレジスタは、操作“register value=register value|core C1 write value”を実行する。ここで、|は、新たなレジスタ値を計算するためにビット間で適用するバイナリ演算子“OR”である。そのため、第1のフラグレジスタFR1は、“core C1 write value”ビットが1にセットされるj番目の部分のフリップフロップF1又はF2に対してのみクロックサイクルを与え、それにより、他方のフリップフロップF2又はF1の同時非同期クロッキングを有する能力が他方側に残される。このことは、0と共に書き込まれ且つ1に等しいワードビットに関連付けられたフラグレジスタFR1の総てのフラグ値が(1に)セットされるとともに、0又は1と共に書き込まれ且つ0に等しいワードビットに関連付けられたフラグレジスタFR1の総てのフラグ値が不変のまま保持されることを意味する。
−第2のコアC2が値“core C2 write value”を第1のレジスタFR1の記憶モジュールSMのj番目の記憶領域内に書き込む場合、第1のレジスタは、操作“register value=register value & core C2 write value”を実行する。ここで、&は、新たなレジスタ値を計算するためにビット間で適用するバイナリ演算子“AND”である。そのため、第1のフラグレジスタFR1は、“core C2 write value”ビットが0にセットされるフリップフロップF1又はF2に対してのみクロックサイクルを与え、それにより、他方のフリップフロップF2又はF1の同時非同期クロッキングを有する能力が他方側に残される。このことは、1と共に書き込まれ且つ0に等しいワードビットに関連付けられたフラグレジスタFR1の総てのフラグ値がクリアされる(0にリセットされる)とともに、0又は1と共に書き込まれ且つ1に等しいワードビットに関連付けられたフラグレジスタFR1の総てのフラグ値が不変のまま保持されることを意味する。ワードビット値のこの使用反転は、第1のANDゲートAG21の第1の入力(“BitN write”)が反転されるという事実に起因している。
これらの相反規則は、メモリMから第1のコアC2へのデータ転送に関連するフラグ値を含む第2のフラグレジスタFR2に関して当てはまる。
フラグレジスタFRi内のフラグは独立であるため、一つのクロックドメインから他のクロックドメインへの伝搬を許容するハードウェアを最小限度まで減少させることができる。確かに、一方のコア(C1又はC2)が(一つの書き込み命令(又はコマンド)内で)いくつかのフラグを同時に1にセットする場合には、総てのフラグが他方のコア(C2又はC1)のクロックの同じサイクル内にセットされることを保証する必要はない。
図6に示される実施の形態の例に対して適用され得る真理値表の一例が、以下に与えられている。
Figure 2009514118
この真理値表は、第1のコアC1が1に等しいビット値だけを書き込むことができることを示している。例えば、第1のコアC1による0の(第1のコアが送信したワード(コマンド)中の0に等しいビットを介した)書き込みに対応する表の2番目のラインは、対応するフラグ値が不変のまま(Qn+1=Q)であり且つ第2のコアC2が0に等しいフラグ値だけを書き込むことができることを示している。
制御デバイスDは、一般に、ハードウェアモジュールを用いて実現される。
本発明により、フラグ値を画定するビットの記憶のために設けられる各記憶領域のサイズは1ビットに等しくなる。そのため、フラグ値の記憶のために設けられるメモリサイズが大幅に減少される。また、フラグ値がフラグレジスタ内に記憶されるため、データを記憶してコア間で転送するために共通メモリの総ての記憶領域を使用することができる。従って、転送される前に共通メモリ内に記憶できるデータの数を増加させることができ、あるいは、共通メモリのサイズを小さくすることができ、それにより、集積回路に組み込まれる他の電子部品のためにいくらかの空間を開放することができる。
本発明は、単なる一例として前述した制御デバイス、集積回路、及び、電子機器の実施の形態に限定されず、特許請求の範囲内にあると当業者によりみなされ得る総ての代替的な実施の形態を包含する。
二つのコアが共通のDPRAMメモリに対して結合される従来の集積回路の一部を概略的に示している。 DPRAMメモリ及びこのDPRAMメモリ内にフラグが記憶される方法を概略的に示している。 二つのコアがメモリと本発明の第1の実施例に係る制御デバイスとに対して結合される集積回路の一部を概略的に示している。 二つのコアが本発明の第2の実施例に係る制御デバイスに対して結合される集積回路の一部を概略的に示している。 図3に示される制御デバイスのフラグレジスタの実施の一形態の例を機能的に示している。 1ビットフラグ値のプロセスに専用のフラグレジスタの一部の実施の一形態の例を概略的に示している。

Claims (9)

  1. バスを介してメモリに結合される少なくとも二つのコアを備え且つ前記メモリが前記コア間で転送されるべきデータを記憶するように構成されている集積回路のための制御デバイスにおいて、前記バスを介して前記コアに結合されるとともに、前記コアのうちの一方により前記メモリ内に記憶され且つ前記コアのうちの他方へと転送され得る状態にあるデータに関連付けられたNi個のフラグ値をNi個のアドレスで記憶するように構成されている少なくとも一つのフラグレジスタを備え、第1のアドレスで記憶された各フラグ値は、前記第1のアドレスを指定するコマンドを用いて前記コアのうちの一方によってセット又はリセットすることができ、これにより、第2のアドレスで記憶された他のフラグ値を、前記第2のアドレスを指定するコマンドを用いて他方の前記コアによって同時にセット又はリセットすることを許可することを特徴とする制御デバイス。
  2. i)前記バスに結合されるとともに、前記コアのうちの第1のコアにより前記メモリ内に記憶され且つ前記コアのうちの第2のコアへと転送され得る状態にあるデータに関連付けられたN1個のフラグ値をN1個のアドレスで記憶するように構成されている少なくとも一つの第1のフラグレジスタを備え、前記第1のレジスタの第1のアドレスで記憶された各フラグ値は、前記第1のアドレスを指定するコマンドを用いて前記第1のコアによってセットできるとともに前記第2のコアによってリセットでき、ii)前記バスに結合されるとともに、前記第2のコアにより前記メモリ内に記憶され且つ前記第1のコアへと転送され得る状態にあるデータに関連付けられたN2個のフラグ値をN2個のアドレスで記憶するように構成されている少なくとも一つの第2のフラグレジスタを備え、前記第2のレジスタの第1のアドレスで記憶された各フラグ値は、前記第1のアドレスを指定するコマンドを用いて前記第2のコアによってセットできるとともに前記第1のコアによってリセットできることを特徴とする請求項1に記載の制御デバイス。
  3. 前記各フラグレジスタは、i)前記第1のコアに接続されるバスに対して接続された第1の入力と、Ni個の第1の出力と、第1のフラグ値読み取り及び書き込み手段とを備える第1の制御手段と、ii)前記第2のコアに接続されるバスに対して接続された第2の入力と、Ni個の第2の出力と、第2のフラグ値読み取り及び書き込み手段とを備える第2の制御手段と、iii)Ni個のそれぞれのアドレスを有するNi個の記憶領域を備え、Ni個のフラグ値をそれぞれ記憶するように構成されているとともに、前記第1の出力のうちの一つ及び前記第2の出力のうちの一つに対してそれぞれ接続される記憶手段と、を備えることを特徴とする請求項1又は2に記載の制御デバイス。
  4. 前記第1の制御手段及び前記第2の制御手段はそれぞれ、前記記憶手段のいくつかの記憶領域のそれぞれのアドレスを指定する一つのコマンドを受け取ると、前記いくつかの記憶領域に記憶されたいくつかのフラグ値をセットし及び/又はリセットするように構成されていることを特徴とする請求項3に記載の制御デバイス。
  5. 前記メモリを備えることを特徴とする請求項1乃至4のいずれか一項に記載の制御デバイス。
  6. 前記メモリは、少なくともDPRAMメモリ及びRAMメモリを含むグループから選択されることを特徴とする請求項5に記載の制御デバイス。
  7. 請求項1乃至6のいずれか一項に記載の制御デバイスを備えることを特徴とする、電子機器のための集積回路。
  8. 請求項7に記載の集積回路を備えることを特徴とする電子機器。
  9. 少なくとも、コンピュータ、電話、個人用携帯情報端末及びミュージックプレーヤを含むグループから選択されることを特徴とする請求項8に記載の電子機器。
JP2008538485A 2005-11-08 2006-11-03 コア間通信の同期化用のフラグレジスタを有する制御デバイス Active JP4940436B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP05300900.7 2005-11-08
EP05300900 2005-11-08
PCT/IB2006/054104 WO2007054871A2 (en) 2005-11-08 2006-11-03 Control device with flag registers for synchronization of communications between cores

Publications (2)

Publication Number Publication Date
JP2009514118A true JP2009514118A (ja) 2009-04-02
JP4940436B2 JP4940436B2 (ja) 2012-05-30

Family

ID=37938484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008538485A Active JP4940436B2 (ja) 2005-11-08 2006-11-03 コア間通信の同期化用のフラグレジスタを有する制御デバイス

Country Status (7)

Country Link
US (1) US7890736B2 (ja)
EP (1) EP1949249A2 (ja)
JP (1) JP4940436B2 (ja)
KR (1) KR101029392B1 (ja)
CN (1) CN101305356B (ja)
TW (1) TWI416340B (ja)
WO (1) WO2007054871A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037838B1 (en) 2011-09-30 2015-05-19 Emc Corporation Multiprocessor messaging system
US9760526B1 (en) * 2011-09-30 2017-09-12 EMC IP Holdings Company LLC Multiprocessor messaging system
EP2862058B1 (en) * 2012-06-15 2021-05-19 Intel Corporation A semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order
KR101660022B1 (ko) * 2015-09-10 2016-09-27 아둘람테크 주식회사 버스 인터페이스 효율을 향상시키기 위한 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981533A (ja) * 1995-09-12 1997-03-28 Nec Commun Syst Ltd プロセッサ間データ転送方式及びプロセッサ間データ転送用リングバッファメモリ

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US690750A (en) * 1901-02-09 1902-01-07 Nat Carbon Co Sparking-coil.
US4594657A (en) * 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
JPH0656603B2 (ja) * 1986-02-10 1994-07-27 株式会社日立マイコンシステム デ−タ処理システム
JPS63654A (ja) * 1986-06-19 1988-01-05 Fujitsu Ltd プロセッサ間の通信制御方法
US5611053A (en) * 1994-01-21 1997-03-11 Advanced Micro Devices, Inc. Apparatus and method for integrating bus master ownership of local bus load by plural data transceivers
US5649125A (en) * 1995-10-30 1997-07-15 Motorola, Inc. Method and apparatus for address extension across a multiplexed communication bus
US6711667B1 (en) * 1996-06-28 2004-03-23 Legerity, Inc. Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions
US5951659A (en) * 1997-04-07 1999-09-14 Ncr Corporation Communications-oriented computer system backplane including a PCI input/output bus for transmission of address, data, and control information, and a time-domain multiplexed signal bus (TDMSB) for transmission of high-speed digitized signal information
EP0960372A2 (en) * 1997-10-29 1999-12-01 Koninklijke Philips Electronics N.V. Method and system for synchronizing block-organized data transfer
JP4123315B2 (ja) * 1999-02-19 2008-07-23 株式会社安川電機 デュアルポートramのデータ受け渡し装置および方法
CN1282925A (zh) * 1999-07-12 2001-02-07 松下电器产业株式会社 数据处理装置
DE19951541C1 (de) * 1999-10-26 2000-10-26 Siemens Ag Integrierter elektronischer Baustein mit duplizierter Kernlogik und Hardware-Fehlereinspeisung für Prüfzwecke
CN1251105C (zh) * 2001-01-31 2006-04-12 株式会社日立制作所 数据处理系统和数据处理器
US6823441B1 (en) * 2001-04-20 2004-11-23 Daimlerchrysler Corporation Method of multiplexed address and data bus
US6907503B2 (en) * 2001-09-27 2005-06-14 Daimlerchrysler Corporation Dual port RAM communication protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981533A (ja) * 1995-09-12 1997-03-28 Nec Commun Syst Ltd プロセッサ間データ転送方式及びプロセッサ間データ転送用リングバッファメモリ

Also Published As

Publication number Publication date
KR20080077150A (ko) 2008-08-21
WO2007054871A2 (en) 2007-05-18
US20080294876A1 (en) 2008-11-27
CN101305356A (zh) 2008-11-12
EP1949249A2 (en) 2008-07-30
WO2007054871A3 (en) 2008-04-17
KR101029392B1 (ko) 2011-04-14
TWI416340B (zh) 2013-11-21
JP4940436B2 (ja) 2012-05-30
CN101305356B (zh) 2010-09-01
TW200811666A (en) 2008-03-01
US7890736B2 (en) 2011-02-15

Similar Documents

Publication Publication Date Title
US10423558B1 (en) Systems and methods for controlling data on a bus using latency
CN106663045A (zh) 在存储器与主机系统之间交换ecc元数据
JPH1153169A (ja) 低電力で相互接続の簡単なマイクロプロセッサ及びメモリー・インターフェース
JP4940436B2 (ja) コア間通信の同期化用のフラグレジスタを有する制御デバイス
US10255218B1 (en) Systems and methods for maintaining specific ordering in bus traffic
JP5324908B2 (ja) カードホストlsiを有するセット機器、およびカードホストlsi
US5835787A (en) System for bi-directionally transferring a digital signal sample from a CODEC to a particular memory location and a second sample from memory to CODEC
US6691190B1 (en) Inter-DSP data exchange in a multiple DSP environment
EP3234768B1 (en) System and method for fast modification of register content
US11194744B2 (en) In-line memory module (IMM) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption
US20070011369A1 (en) Low overhead serial interface
JP2005259321A (ja) フレキシブル・マルチエリア・メモリ及び該メモリを用いた電子機器
US8498165B2 (en) Data outputing method of memory circuit and memory circuit and layout thereof
KR20060100656A (ko) 복수의 프로세서에 의한 메모리 공유 방법 및 메모리 공유구조를 가지는 휴대형 단말기
CN101911049B (zh) 处理架构
KR100710626B1 (ko) 데이터 버스 확장 구조를 갖는 디지털 처리 장치 및 그방법
WO2017024873A1 (zh) 一种存储单元和处理系统
JPH07226079A (ja) 半導体メモリ装置
JP4966557B2 (ja) ボタン電話装置の主制御基板
KR100909025B1 (ko) 복수의 프로세서에 의한 메모리 공유 방법 및 메모리 공유구조를 가지는 휴대형 단말기
KR20080072411A (ko) 듀얼 포트 메모리로의 액세스 권한 획득 처리 방법 및 이를위한 장치
US20120005438A1 (en) Input/output control apparatus and information processing apparatus
CN114595173A (zh) 一种数据传输方法、系统及计算机可读存储介质
JPH0351943A (ja) 高速バスと低速バスのバスライン共用化方式
JP2009259087A (ja) メモリ制御回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110421

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120202

R150 Certificate of patent or registration of utility model

Ref document number: 4940436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250