JP5967646B2 - レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ - Google Patents

レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ Download PDF

Info

Publication number
JP5967646B2
JP5967646B2 JP2012153499A JP2012153499A JP5967646B2 JP 5967646 B2 JP5967646 B2 JP 5967646B2 JP 2012153499 A JP2012153499 A JP 2012153499A JP 2012153499 A JP2012153499 A JP 2012153499A JP 5967646 B2 JP5967646 B2 JP 5967646B2
Authority
JP
Japan
Prior art keywords
processor
operand
instruction
jump
accumulator
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.)
Active
Application number
JP2012153499A
Other languages
English (en)
Other versions
JP2014016773A (ja
Inventor
英樹 田沼
英樹 田沼
Original Assignee
株式会社エルアミーナ
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 株式会社エルアミーナ filed Critical 株式会社エルアミーナ
Priority to JP2012153499A priority Critical patent/JP5967646B2/ja
Publication of JP2014016773A publication Critical patent/JP2014016773A/ja
Application granted granted Critical
Publication of JP5967646B2 publication Critical patent/JP5967646B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Description

本発明は、複数のプロセッサが同時に共有メモリにアクセスするためのメモリバンク分割法および、それを低コストで実現するためのプロセッサアーキテクチャに関する。特に、資源制約の厳しい組み込み型装置やマイクロコントローラにおけるマルチプロセッサ応用に関する。
従来より、共有メモリを有するマルチプロセッサシステムにおいて、命令フェッチ等に伴うメモリの同時アクセスを確保するために、プロセッサ要素毎にキャッシュメモリを実装する方式が広く用いられてきている。
プロセッサ間通信のため、各キャッシュメモリは全体で同一のメモリイメージを保持する必要があり、これをキャッシュ一貫性と呼ぶ。このキャッシュ一貫性の確保のため、他のプロセッサによるメモリアクセスを監視し、対応する箇所のキャッシュを更新または無効化する必要がある。これはバススヌーピングと呼ばれる技法であるが、事実上マルチポートメモリを構成することになり、回路実装のハードウェアコストは相応に大きい。
シングルプロセッサ構成のマイクロコントローラ等の応用において、マルチタスクによるサービスはイベントあるいはタイマーに起因する割り込みにより処理が実施される場合が多い。割り込み処理においては状態の退避に伴うレジスタ等の保存と復帰が必要であり、相応の負荷が生じる。
特開平5−233443
従来よりシングルプロセッサ構成のマイクロコントローラ等の応用において、マルチタスクによるサービスはイベントあるいはタイマーに起因する割り込みにより処理が実施される場合が多いが、割り込みが一時的に集中した場合に要求したタイミング条件を満たせない、また割り込み発生時および復帰時の状態保存および復帰のオーバーヘッドによりシステムの処理性能が低下するといった問題が発生していた。
マルチプロセッサによるマルチタスク処理は割り込み処理に伴う負荷が軽減され、さらに並列処理による性能向上が期待されることから、組み込み型装置やマイクロコントローラへの応用においてメリットが大きいと考えられる。しかし、現状ではハードウェア規模の制約等により、大半はシングルプロセッサ上での割り込み処理によるマルチタスクに留まっている。
現状において、共有メモリを持つマルチプロセッサシステム上でのメモリアクセスは、プロセッサ毎に専用のキャッシュメモリを持ち、キャッシュ一貫性を保持することでメモリアクセスのバンド幅を確保している。しかしこれはハードウェア資源に余裕のある大規模なシステム向けの構成であり、小規模な構成においてハードウェアコストを上回るメリットを得ることは難しい。
資源制約の厳しいマイクロコントローラや組み込みシステムにおいて、キャッシュ一貫性に伴うコストは重要な問題であり、マルチプロセッサシステムの導入において最大の障害である。もしこの障害の除去が可能であれば、産業上大きな利益をもたらすであろう。
本発明は、前記の事情に鑑みてなされたもので、共有メモリをレジスタとして利用できるアーキテクチャのプロセッサ要素を用いることにより、ハードウェア規模の限定された状況においても利用可能である、高性能かつ低コストであるマルチプロセッサシステムを提供することを目的とする。
なお、本発明はハイパフォーマンスコンピューティングへの応用においても、プロセッサ間接続バスの単純化および、共有メモリアクセス調停回路の単純化の技術として応用が可能である。
上記の目的を達成するために、本発明のマルチプロセッサシステムにおいて共有メモリはアドレス空間の下位ビットに応じて複数バンクに分割され、各メモリバンクには個別のプロセッサ要素が接続される。
実行状態にあるプロセッサ要素は接続されたメモリバンクから命令コードと1語長のオペランドを読出し、付属の演算装置にてアキュムレータとオペランドの値を入力とした2項演算を実行する。
演算を実行したプロセッサ要素は次の命令アドレスに対応するメモリバンクに接続されたプロセッサ要素に演算結果および次のプログラムカウンタ値を送出し、実行状態を委譲する。演算結果を受け取ったプロセッサ要素は実行状態となり、受け取った演算結果をアキュムレータの値として次の命令実行時に2項演算を実行する。
演算結果、プログラムカウンタ値、実行状態の委譲等に伴うデータ送付は、プロセッサ要素間を直接接続したバス配線を通して実施される。当該バス配線は隣接したアドレスに対応するバンクのプロセッサ同士のみが接続され、全体で環状の接続構造となる。
本発明におけるプロセッサ要素は従来のプロセッサの構造とは異なり、アキュムレータやプログラムカウンタ等の最小限のレジスタを除き、巨大なレジスタファイルを持たない。この構造により、少数のバス接続のみで他のプロセッサ要素に全ての内部状態を委譲することができる。
プロセッサ要素の命令コードには、演算命令の他に指定したアドレスのオペランド値を書き換える命令がある。この命令により任意のオペランド値を実行前に変更できることから、全てのオペランドをレジスタとして利用することが可能となる。
各メモリバンクは読み出し専用のポートを持ち、命令コードとオペランドの読み出しはそのポートから行う。そして、これとは別に書き込み可能なポートを持ち、これらのポートは同時にアクセスが可能であるものとする。このようなデュアルポート構成のメモリは、現状において市販されているFPGA内部の埋め込みメモリによく見られるものである。
通常の演算処理において、プロセッサ要素は対応するバンクのメモリからの命令及びオペランドの読み出しのみを行うため、互いにアクセスが衝突することはない。命令実行のサイクルが全てのプロセッサにおいて同期する限り、スレッドを実行するプロセッサが全体で回転しながら互いに別々のメモリバンクをアクセスする状態が持続される。
ランダムアクセス書き込みに関しては、同一スレッド内で対象メモリバンクに対する読み出しが行われるまでライトバックを遅延してもスレッド内でのメモリ一貫性は失われない。この場合、プロセッサ内部状態としてプログラムカウンタ及びアキュムレータに加え、ライトバック遅延のための情報が付加されるが、アクセス調停のための回路が大幅に簡略化される。
ジャンプ命令についてはプログラムカウンタの書き換えのみを行い、プログラムカウンタの下位ビットがメモリバンクのアドレスと一致する場合にのみ命令の実行を行う。下位ビット不一致の際に隣接アドレスのバンクに内部状態をそのまま委譲することでジャンプの衝突に関する調停回路が不要となるが、最大1周分の回転待ちが生じる。実行性能を重視する場合には、調停のための回路を必要とするが、ショートカットによる回転待ちの短縮を図る構成も可能である。
ライトバック遅延を行う場合、ジャンプの回転待ちにおいてもライトバック処理を行うことで、スレッド内でのメモリ一貫性は保たれる。回転待ちのショートカットを行う場合、ライトバック遅延情報に対するショートカット回路も必要となるが、ライトバックが全て完了した場合にのみショートカットを実行することで、この追加回路のコストを軽減することも可能である。
ライトバック遅延によりランダムアクセス書き込みに関する調停が不要となる代償として、スレッド間におけるメモリ一貫性を確保するための機構が必要となる。これは例えばハードウェアミューテクスにより、スレッド間通信を構築することで実現可能である。
マルチプロセッサシステムにおいて共有メモリへのアクセスにキャッシュメモリを介する必要がなく、キャッシュメモリおよびキャッシュ一貫性のためのハードウェアリソースが不要となる。
複数スレッドの実行アドレスの下位ビットを異なる値にすることで共有メモリへのアクセスが別個のバンクに分離され、調停機能を全く必要とせずに同時アクセスが可能となり、メモリアクセスの帯域幅が向上する。
メモリへのランダムアクセスおよびジャンプ命令実行に際し、調停回路を必要とせず小規模なハードウェアで実現可能な実施形態がある。性能を重視するような場合、調停回路やショートカット回路等を追加することにより、適切なハードウェアの規模と性能を選択ことが可能である。
この新たな形態によるマルチプロセッサシステムは従来の構成とは大きく異なるものであるが、市販のFPGA等のハードウェアでも容易に実現可能である。この新たな形態のプロセッサに関する効率的なハードウェア実装の構築や応用のみならず、このアーキテクチャにおけるソフトウェア開発、言語開発といった新たな興味深い研究開発の分野を切り拓くことになると期待される。
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
図1は、本発明の実施例1に係るマルチプロセッサシステム100の構成を示すブロック図である。
本発明の実施例1に係るマルチプロセッサシステム100は、4個のプロセッサ102A〜Dを有する4プロセッサ構成である。
各メモリバンク101A〜Dは共有メモリ全体のアドレス空間のうち下位2ビットが00、01、10、11となる部分のイメージを保持し、各プロセッサ102A〜Dが同時に異なるメモリバンクにアクセスを行う分散共有メモリを構成する。
各プロセッサ102A〜Dは、対応するメモリバンク101A〜Dからメモリ出力信号103A〜Dを通して命令コード103P及び1語長のオペランド103Yを同時に受け取り、対応する処理を実行する。図2において、メモリ出力データ103のビット構成を示す。
プロセッサは命令処理を実行後、内部状態を信号線を通して次のバンクに対応するプロセッサに転送する。ジャンプ命令及び制御命令の結果はプログラムカウンタ及び状態信号104A〜D、演算命令の結果はアキュムレータ信号105A〜Dに送出される。
信号104A〜Dよりプログラムカウンタの下位2ビットを除いた部分が次のメモリバンクに接続され、次のアドレスに対する命令及びオペランドのフェッチの際に利用される。
各プロセッサは入力されたプログラムカウンタ信号104A〜Dの下位2ビットが対応するメモリバンクと一致するか比較を行い、バンクが異なる場合には回転待ち状態として命令の実行を行わずに内部状態をそのまま次のプロセッサに引き渡す。この機構により、ジャンプ命令の実行はプログラムカウンタの値を変更するのみで実現可能である。ジャンプ命令実行の際、最大3命令分の回転待ちが発生する可能性があるが、コンパイラによるメモリ配置調整により軽減が可能である。
ジャンプ命令のオペランドの上位2ビットを利用してジャンプの条件を指定することが出来る。図3はオペランドの上位2ビットで指定された条件コードとジャンプ条件との対応の例である。条件コードにより無条件ジャンプ及び停止(HALT)命令を表現することが可能である。
図2において示される様に、アキュムレータ105は1語長のレジスタ105X及びその上位のキャリーフラグ105Fで構成される。論理演算はレジスタ105Xに対してのみ実行され、加減算はキャリーフラグを含めたアキュムレータ全体について実行される。キャリーフラグは特殊命令実行時の結果通知にも利用され、条件ジャンプ命令実行時の条件としても利用される。
演算命令に於いてはアキュムレータ105とオペランド103Yの間で2項演算が実行され、演算結果がアキュムレータ信号105A〜Dを通して次のプロセッサに送出され、新たなアキュムレータの値として反映される。
命令コード103Pと同時にオペランド103Yが即値としてプロセッサに読み込まれるため、レジスタファイルアクセスのためのオーバーヘッド無しに即座に命令実行が可能である。即値とレジスタアクセスの区別が不要であるため、必要となる命令コード数は著しく減少し、4ビット程度で基本的な命令はカバー可能である。図3は命令コード割り当ての例である。
メモリ上のオペランド103Yを読み込み前に予め書き換えておくことにより、任意のオペランドを汎用レジスタとして使用することが可能となる。この機能は、オペランド103Yで指定されたアドレスのメモリに格納されたオペランド103Yを、レジスタ105Xの値に書き換えるランダムアクセス書き込みを実行するPUT命令を実装することで実現可能である。この命令により、任意の演算ツリーを構成することが可能となる。図5は(A−B)+(C−D)を計算するコード列の例である。
ランダムアクセス書き込みは、同一バンクに対するメモリ読み込みまで遅延しても、スレッド内に於けるメモリ一貫性を損なうことはない。そのため書き込み信号としてバンク0書き込み信号106A〜D、バンク1書き込み信号107A〜D、バンク2書き込み信号108A〜D、バンク3書き込み信号109A〜Dが、書き込みアドレス、データ及びイネーブル信号を保持する。書き込み信号はプロセッサ内部状態と並行してプロセッサ間を移動し、対象バンク到着時に信号106A、107B、108C、109Dに於いてバンクメモリへのライトバック処理を実行する。
命令及びオペランドのフェッチとライトバックが同一のアドレスに対して実行された場合、ライトバックの際に書き込まれたデータが即座に命令及びオペランドとして読み込まれるものとする。この構成により、命令の直後の番地への書き込みも次のフェッチの際に反映され、問題なく実行される。FPGA内部のデュアルポートメモリを利用する場合、異なるポートからの同一アドレスに対する同時読み書きの結果が不定となるものがあるが、メモリ周辺にバイパス回路を実装することで、この問題を回避することが可能である。
ランダムアクセス書き込み命令実行時、対象バンクの書き込み信号入力が既にイネーブルである場合、書き込み命令の実行を一旦中止し、同一アドレスへのジャンプを実行して書き込み命令の再試行を行う。ジャンプ命令の回転待ちの際にもライトバックが実行されるため、再試行時には全てのライトバックが実行済みで書き込みの衝突が起きることはない。書き込みの再試行は4命令分のペナルティとなるため、コンパイル時に同一バンクへの連続した書き込みを避けることと、直後にライトバックが実行されるバンクへの書き込みを優先して配置することで、この書き込みの再試行を防ぐことができる。
同一アドレスへの書き込みを故意に連続して実行することで、書き込みの衝突による回転待ちが発生し、同一スレッドの全てのライトバックが実行され、他のスレッドに対するメモリ内容が確定する。これをスレッド間通信に於けるメモリバリアとして利用することができる。
ランダムアクセス書き込みの際、アドレスを指定するオペランド103Yの上位4ビットを命令コードの書き込みに利用することが可能である。具体的には、メモリ空間のアドレスが(語長−4)ビット以内で表現可能な場合、ライトバック時にオペランドの上位4ビットの値を命令コードメモリ103Pに同時に書き込みを行う。コンパイル時に書き込み先アドレスの命令コードは既に決定しており、命令コード付きアドレスは実行前に確定するため実行中のオーバーヘッドはない。これはスレッド間通信で命令コードとオペランドをアトミックに同時書き換えする際に有効である。
ランダムアクセス書き込みに於けるライトバックの遅延により、通常は異なるスレッド間でメモリの一貫性が保持されないが、LOCK命令の利用により安全なスレッド間通信を実現することができる。LOCK命令は命令を実行するプロセッサに割り当てられたミューテクスを操作する命令で、プロセッサが既にロック状態にある場合には同一番地へのジャンプを実行することでスピンロックを構成し、ロック成功時にはプロセッサがロック状態に移行し、UNLOCK命令実行までロック状態を保持する。プロセッサのロック状態が影響するのはLOCK命令に対してのみであり、他の命令実行には影響しない。
UNLOCK命令はLOCK命令と同じ命令コードであるが、オペランドの値により両者は区別される。LOCK命令のオペランドには0を指定し、命令を実行したプロセッサバンクのミューテクスのロックを実行する。UNLOCK命令のオペランドは、下位4ビットでアンロックするプロセッサのバンクを指定する。UNLOCK命令は任意のプロセッサバンクで実行が可能であり、同時に実行されたUNLOCK命令は、パラメータが全て論理和された上でそれぞれのプロセッサバンクにアンロックを通知する。この通知はロック解除信号バス110を通して行われる。
LOCK命令によるロックはプロセッサ毎に割り当てられる粒度の粗いミューテクスであり、ある程度長期のロックが想定されるクリティカルセクション等の応用に於いては、状態遷移時のみの短期ロックに利用することが望ましい。図6は、LOCK命令を利用したスピンロックによるクリティカルセクションの構成例である。
新規スレッドの生成はFORK命令により実行される。スレッド生成時、プロセッサ内の起動待ち行列に新規スレッドの起動アドレス及び初期アキュムレータ値を登録するが、待ち行列が満杯の場合スレッド生成は失敗となる。スレッド生成の成否はキャリーフラグにて通知されるため、ソフトウェアによるリトライ及び待ち行列の構成が可能である。この場合、ハードウェア待ち行列の長さを1にすることで回路規模の削減が可能である。
プロセッサが停止状態で起動待ち行列が空でない場合、新規のスレッドが生成される。具体的には、待ち行列先頭の起動アドレス及び初期アキュムレータ値がプロセッサ内のプログラムカウンタ及びアキュムレータに代入され、プロセッサが実行状態に移行する。
配列や構造体、スタック等のデータ構造を利用する場合、メモリに対するランダムアクセス読み出しの処理が必要となる。この処理はGET命令及びDATA命令により実現できるが、これらの命令の実行内容は同じであり、命令コードも同一のものを使用する。GET命令はレジスタXで指定された番地へのジャンプ及びオペランドYのレジスタXへの代入を行う。レジスタXで指定された番地にDATA命令がある場合、DATA命令はGET命令と同様にレジスタXで指定された番地へのジャンプ及びオペランドYのレジスタXへの代入を行う。DATA命令実行時のレジスタXの値はGET命令に於けるオペランドYの値であるため、全体としてGET命令はレジスタXで指定された番地にあるDATA命令のオペランドYの値をレジスタXに代入し、GET命令のオペランドYで指定される番地にジャンプする命令となる。
データ専用メモリやメモリマップドI/Oに関しては、読み出し時に命令コードとしてDATA命令を補うことにより利用が可能である。特に、メモリや周辺回路を特定のプロセッサにのみ接続することで、同時アクセス調停の回路を省略することが可能となる。
本発明の実施例1に係るマルチプロセッサシステム100の構成を示すブロック図である。 本発明の実施例1に係るメモリ出力データ103及びアキュムレータ105のビット構成を示す図である。 本発明の実施例1に係るジャンプ命令の条件コードとジャンプ条件の対応を示す図である。 本発明の実施例1に係る命令コードの割り当て例とその実行内容を示す図である。 本発明の実施例1に係る演算ツリーを構成するコード列の例を示す図である。 本発明の実施例1に係るLOCK命令を利用したクリティカルセクションの実装例を示す図である。
100 マルチプロセッサシステム
101A〜D デュアルポートメモリ
102A〜D プロセッサ
103 メモリ出力データ
103A〜D メモリ出力信号
103P 命令コードOP
103Y オペランドY
104A〜D プログラムカウンタ及び状態信号
105 アキュムレータ
105A〜D アキュムレータ信号
105F キャリーフラグC
105X レジスタX
106A〜D メモリバンク0書込み信号
107A〜D メモリバンク1書込み信号
108A〜D メモリバンク2書込み信号
109A〜D メモリバンク3書込み信号
110 ロック解除信号バス

Claims (9)

  1. 複数のプロセッを有するマルチプロセッサシステムにおいて、
    各プロセッサには、対応するメモリバンクそれぞれ割り当てられ、各プロセッは、前記対応するメモリバンクからのメモリ出力信号線を介して、命令コード及び1語長のオペランド即値として読み込んで汎用レジスタを介することなく第1の処理を実行することと、
    あるプロセッサが、他のプロセッサの前記対応するメモリバンクに書き込み信号を送信して、前記対応するメモリバンク上の前記オペランドを前記他のプロセッサが読み込む前に、当該オペランドを書き換えておくことにより、前記メモリバンク上の前記オペランドを格納する箇所を汎用レジスタとして用いることが可能であることと、
    を特徴とするマルチプロセッサシステム。
  2. 複数のプロセッを有するマルチプロセッサシステムにおいて、
    各プロセッサには、対応するメモリバンクそれぞれ割り当てられ、各プロセッは、前記対応するメモリバンクからのメモリ出力信号線を介して、命令コード及び1語長のオペランド即値として読み込んで汎用レジスタを介することなく第1の処理を実行することと、
    各プロセッサは、第1の処理の実行後、ジャンプ命令及び制御命令の結果をプログラムカウンタ信号として、かつ、演算命令の結果をアキュムレータ信号として、次のプロセッサに送信することと、
    を特徴とするマルチプロセッサシステム。
  3. 請求項において、各プロセッサが、他のプロセッサの前記対応するメモリバンクに書き込み信号を送信して、前記対応するメモリバンク上の前記オペランドを前記他のプロセッサが読み込前に、当該オペランドを書き換えておくことにより、前記メモリバンク上の前記オペランドを格納する箇所を汎用レジスタとして用いることが可能であることを特徴とするマルチプロセッサシステム。
  4. 請求項1乃至3のいずれかにおいて、異なるプロセッサに対応するメモリバンクの間では、共有メモリのアドレス空間の下位ビットが互いに異なるアドレスが付されるようにすることによって、各プロセッ毎にメモリバンクが割り当てられていることを特徴とするマルチプロセッサシステム。
  5. 請求項において、あるプロセッサが次のプロセッサに送信するプログラムカウンタ信号のうち、下位ビットを除いた部分が、前記次のプロセッサに対応する次のメモリバンクに入力され、当該入力に応じて前記次のメモリバンクは、入力されたプログラムカウンタ信号に対応したアドレスに格納されている、前記命令コード及び前記1語長のオペランドを前記次のプロセッサに出力することを特徴とするマルチプロセッサシステム。
  6. 請求項5において、前記次のプロセッサは、送信された前記プログラムカウンタ信号の下位ビットが前記次のメモリバンクに付されたアドレスの下位ビットと一致していない場合、前記第の処理を実行せずに、前記次のプロセッサから更に次のプロセッサに内部状態をそのまま引き渡すことを特徴とするマルチプロセッサシステム。
  7. 請求項1乃至のいずれかおいて、前記プロセッサは、アキュムレータ信号を受け取るアキュムレータを有し、前記第1の処理は、前記アキュムレータの値と前記オペランドの値の2項演算に基づいて行われ、演算結果がアキュムレータ信号として次のプロセッに出力されることを特徴とするマルチプロセッサシステム。
  8. 請求項1乃至7のいずれかにおいて、前記プロセッサは、アキュムレータ信号を受け取るアキュムレータを有し、前記命令コードの一つは、前記アキュムレータの値で指定されたジャンプアドレスへのジャンプと前記アキュムレータの値への前記オペランドの値の代入を実行するジャンプ・オペランド代入命令であり、前記ジャンプアドレスに第二の前記ジャンプ・オペランド代入命令を書き込んでおいて、前記プロセッサが前記オペランドの値に所定のアドレスを設定した第一の前記ジャンプ・オペランド代入命令を実行することにより、前記ジャンプアドレスにジャンプして、前記所定のアドレスが前記アキュムレータの値に代入された後、前記ジャンプアドレスに書き込まれた前記第二のジャンプ・オペランド代入命令が実行されて、前記アキュムレータの値に代入された前記所定のアドレスにジャンプして、前記第二のジャンプ・オペランド代入命令のオペランドの値が前記アキュムレータの値に代入されることによって、前記ジャンプアドレスに書き込まれた前記第二のジャンプ・オペランド代入命令のオペランドの値を前記アキュムレータの値として読み出すランダムアクセス読み出し処理を実行することを特徴とするマルチプロセッサシステム。
  9. 請求項1乃至のいずれかにおいて、メモリバンク上の前記オペランドの書き換えの際、対象メモリバンクにおける前記オペランドの読み込みまでを限度として、ライトバック処理を遅延させることを特徴とするマルチプロセッサシステム。
JP2012153499A 2012-07-09 2012-07-09 レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ Active JP5967646B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012153499A JP5967646B2 (ja) 2012-07-09 2012-07-09 レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012153499A JP5967646B2 (ja) 2012-07-09 2012-07-09 レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ

Publications (2)

Publication Number Publication Date
JP2014016773A JP2014016773A (ja) 2014-01-30
JP5967646B2 true JP5967646B2 (ja) 2016-08-10

Family

ID=50111414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012153499A Active JP5967646B2 (ja) 2012-07-09 2012-07-09 レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ

Country Status (1)

Country Link
JP (1) JP5967646B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6531927B1 (ja) * 2018-08-17 2019-06-19 株式会社エルアミーナ 高位合成マルチプロセッサシステム等

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19606629A1 (de) * 1996-02-22 1997-08-28 Siemens Nixdorf Inf Syst Mehrprozessor-Zentraleinheit
JPH09330218A (ja) * 1996-06-11 1997-12-22 Sony Corp マイクロプロセッサ
JP3099290B2 (ja) * 1997-10-03 2000-10-16 啓介 進藤 マルチスレッドプログラムを使用する情報処理装置

Also Published As

Publication number Publication date
JP2014016773A (ja) 2014-01-30

Similar Documents

Publication Publication Date Title
EP2503460B1 (en) Hardware acceleration for a software transactional memory system
KR100578437B1 (ko) 다수의 스레드의 병행 실행을 지원하는 컴퓨터 시스템에서의 인터럽트 처리 메커니즘
US20180011748A1 (en) Post-retire scheme for tracking tentative accesses during transactional execution
JP5801372B2 (ja) システム管理モードのためのプロセッサにおける状態記憶の提供
US7962923B2 (en) System and method for generating a lock-free dual queue
US20100169894A1 (en) Registering a user-handler in hardware for transactional memory event handling
US20120110303A1 (en) Method for Process Synchronization of Embedded Applications in Multi-Core Systems
JP2003030050A (ja) マルチスレッド実行方法及び並列プロセッサシステム
KR101804677B1 (ko) 트랜잭션적인 전력 관리를 수행하기 위한 하드웨어 장치들 및 방법들
US20170147345A1 (en) Multiple operation interface to shared coprocessor
US20170206035A1 (en) Random-Access Disjoint Concurrent Sparse Writes to Heterogeneous Buffers
JP2014085839A (ja) 並列実行機構及びその動作方法
EP3716046B1 (en) Technology for providing memory atomicity with low overhead
JP5999216B2 (ja) データ処理装置
US20080134187A1 (en) Hardware scheduled smp architectures
US11366662B2 (en) High-level synthesis multiprocessor system and the like
JP5967646B2 (ja) レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ
US9946665B2 (en) Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU)
JP2013534670A (ja) 複数の論理コアを備えるマイクロプロセッサにおけるアプリケーション実行再開時のメモリアクセス最適化方法および該方法を実行するコンピュータプログラム
Fineberg et al. Hardware support for the Seamless programming model
JP2927281B2 (ja) 並列処理装置
WO1991020039A1 (en) Method and apparatus for a load and flag instruction
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム
JPS5922155A (ja) マルチ・プロセツサ・システムの排他制御方法
JPH0473183B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150501

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160601

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: 20160615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160629

R150 Certificate of patent or registration of utility model

Ref document number: 5967646

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150