JP7137058B2 - 演算処理装置、情報処理装置及び情報処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP7137058B2
JP7137058B2 JP2018165382A JP2018165382A JP7137058B2 JP 7137058 B2 JP7137058 B2 JP 7137058B2 JP 2018165382 A JP2018165382 A JP 2018165382A JP 2018165382 A JP2018165382 A JP 2018165382A JP 7137058 B2 JP7137058 B2 JP 7137058B2
Authority
JP
Japan
Prior art keywords
transfer
instruction
unit
counting
pointer
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
JP2018165382A
Other languages
English (en)
Other versions
JP2020038502A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018165382A priority Critical patent/JP7137058B2/ja
Publication of JP2020038502A publication Critical patent/JP2020038502A/ja
Application granted granted Critical
Publication of JP7137058B2 publication Critical patent/JP7137058B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は,演算処理装置、情報処理装置及び情報処理装置の制御方法に関する。
演算処理装置、またはCPU(Central Processing Unit)、プロセッサ(以下、代表してプロセッサと称する)は、プログラム内の様々な命令を実行するために、様々な算術論理演算器(ALU:Arithmetic Logical Unit)を有する。
一方で、画像処理や暗号処理など特定の演算処理を実行するアクセラレータと呼ばれるプロセッサが、サブプロセッサ又はコプロセッサとしてメインプロセッサに付設される。メインプロセッサは、プログラム内の様々な命令を実行し、画像処理や暗号処理など特定の演算処理を行う場合、サブプロセッサにその演算処理を実行させる。サブプロセッサ又はコプロセッサは、メインプロセッサよりも高速に特定の演算処理を行うことができるため、メインプロセッサのアクセラレータと称される。
プロセッサとアクセラレータの組合せ以外でも、メインのサーバのCPUが、サーバからネットワークで通信可能サブのサーバのCPUに、メインサーバのCPUが実行するプログラムの一部の処理を実行させるような組み合わせでも、サブサーバのCPUは、メインサーバのCPUのアクセラレータとして動作し、メインサーバのCPUによるプログラム処理を高速化する。
特開2004-348327号公報 特開平3-154919号公報 特開平2-255927号公報 特開昭63-37457号公報
メインプロセッサは、プログラム内の一部の命令とその命令の処理に必要なデータをサブプロセッサに転送し、転送完了後にサブプロセッサに転送した命令の実行を依頼する。転送される命令とデータの容量が大きい場合、命令とデータの転送が完了するまでの時間が長くなり、サブプロセッサによる命令の実行開始が遅くなる。その結果、サブプロセッサによる命令の実行完了までの時間が長くなり、サブプロセッサはアクセラレータとしての役割を十分に果たすことができない。
そこで,本実施の形態の第1の側面の目的は,サブプロセッサによる命令の実行開始を早めた演算処理装置、演算処理装置を有する情報処理装置及び情報処理装置の制御方法を提供することにある。
本実施の形態の第1の側面は,命令を記憶する記憶部と、
発行された命令の実行が完了すると更新される計数部と、
前記計数部のカウント値に基づいて生成されるフェッチアドレスに基づき、フェッチした命令を発行する発行部と、
前記発行部が発行した命令を実行する演算部と、
他の演算処理装置から転送された複数の転送命令の転送情報に基づいて、前記他の演算処理装置に接続される記憶装置が記憶する命令を、前記記憶部のポインタの位置に送信する転送制御部と、
前記複数の転送命令のうちいずれかの転送命令の転送情報が実行指示を有する場合、前記計数部のカウント動作を開始させ、前記命令のフェッチアドレスまたは前記計数部の値が前記ポインタに追いつくと前記計数部のカウント動作を停止させ、前記ポインタが前記フェッチアドレスまたは前記計数部の値より先を指すと前記計数部のカウント動作を再開させる実行制御部とを有する、演算処理装置である。
第1の側面によれば,サブプロセッサによる命令の実行開始を早めることができる。
本実施の形態におけるサブプロセッサとメインプロセッサの構成を示す図である。 転送命令の一例を示す図である。 DMA転送制御部の転送ポインタの更新処理を説明する図である。 内部メモリの転送ポインタとフェッチアドレスとの関係を示す図である。 メインプロセッサとサブプロセッサの動作を示すフローチャート図である。 メインプロセッサとサブプロセッサの動作例1,2を示すタイミングチャート図である。 メインプロセッサとサブプロセッサの動作例1,2を示すタイミングチャート図である。 第2の実施の形態におけるメインプロセッサとサブプロセッサとを示す図である。 第3の実施の形態における演算処理装置の構成例を示す図である。 第3の実施の形態におけるプログラムカウンタPCと転送ポインタTRNS_PTRとの関係を示す図である。 プログラムカウンタPCと、転送ポインタから減算ポイントを減算した値TRNS_PTR-SUB_PTRの関係を示す図である。 第4の実施の形態における演算処理装置の構成例を示す図である。
[第1の実施の形態]
図1は、本実施の形態におけるサブプロセッサとメインプロセッサの構成を示す図である。図1において、ホストコンピュータ10は、メインプロセッサ(CPU、他の演算処理装置)11と、メインメモリ(他の演算処理装置に接続される記憶装置)14と、サブプロセッサ(演算処理装置)20との通信をインターフェースするインターフェース制御部12とを有する。一方、サブプロセッサ20は、内部メモリ(記憶部)30と、命令発行部(発行部)21及び算術論理演算器(演算部)29と、DMA(Direct Memory Access)転送ユニット(転送制御部)22とを有する。
命令発行部21と算術論理演算器29は、一般的なプロセッサの構成要素である。命令発行部(発行部)21は、内部メモリ(記憶部)30に記憶された命令をフェッチする命令フェッチ回路26と、フェッチされた命令を一時的に蓄積しながら順番にデコードし、デコードした命令を算術論理演算器(演算部)29に発行する命令デコーダ27と、フェッチアドレス生成部28とを有する。
算術論理演算器(演算部)29は、例えば、データを内部メモリ(記憶部)から読み出すアクセス制御、論理演算回路、算術演算回路などを有する。また、算術論理演算器29が実行する命令の命令番号(または命令アドレス)を保持するプログラムカウンタ(計数部)PCが設けられ、算術論理演算器が命令を実行完了する度にプログラムカウンタ(計数部)の命令番号(カウント値)が更新される。そして、フェッチアドレス生成部28が、プログラムカウンタ(計数部)PCの命令番号(カウント番号)に基づいて、次にフェッチする命令のフェッチアドレスを生成する。生成された命令フェッチアドレスに基づいて、命令フェッチ回路26が、内部メモリ内の命令をフェッチする。
プログラムカウンタPCのカウント動作は、プログラムカウンタ制御回路(図示せず)により制御される。プログラムカウンタ制御回路は、例えば、算術論理演算器からの命令実行終了通知に応答して、プログラム順に命令の演算結果のデータを結果レジスタに格納するなどの完了処理の一つとして、プログラムカウンタPCをカウントアップする。
命令フェッチアドレスは、プログラムカウンタPCの命令番号に対応するアドレスより先行する命令のアドレスである。つまり、命令デコーダ27はフェッチされた命令を一時的に蓄積する。また、命令フェッチ回路26から算術論理演算器29までの回路はパイプライン構成になっている。そのため、算術論理演算器が処理完了のたびに更新するプログラムカウンタPCに対応する命令のアドレスより、命令フェッチ回路26がフェッチする命令フェッチアドレスのほうが、先行するアドレスである。但し、一般に、命令フェッチアドレスF_ADDは、プログラムカウンタPCより所定アドレス先までしか先行しないように、プログラムカウンタPCに対するフェッチアドレスの先行幅の上限が定められている。
一方、DMA転送ユニット22は、ホストコンピュータ10のメインメモリ14と内部メモリ30との間でインターフェース制御部12を経由するDMA転送の制御と、命令フェッチ回路26の命令フェッチの実行の制御を行う。DMA転送ユニット22は、ホストのメインプロセッサ11から送信される転送命令(転送命令の記述子)を記憶する転送記述子バッファ23と、転送命令に基づいてメインメモリ14内の命令を内部メモリ30にDMA転送するDMA転送制御部(転送制御部)24とを有する。
メインプロセッサ11は、プログラムを実行中に特定の処理をサブプロセッサに実行させるために、サブプロセッサに実行させる命令列(特定の処理を行うプログラム)を、メインメモリ14に書き込み、複数の転送命令をサブプロセッサに送信する。サブプロセッサ20のDMA転送ユニット22は、複数の転送命令に基づいて、メインメモリ14内の命令列(特定の処理を行うプログラム)を自身の内部メモリ30にDMA転送する。一度のDMA転送で転送されるデータ量が限られているので、メインプロセッサ11は、複数の転送命令を生成してサブプロセッサに送信し、サブプロセッサのDMA転送ユニット22にDMA転送を複数回実行させる。
DMA転送ユニット22内のDMA転送制御部24は、転送記述子バッファ23内に記憶された複数の転送命令に対応するDMA転送を順番に実行し、メインメモリ14内の命令列を内部メモリ30にDMA転送する。そして、命令フェッチ回路26が、内部メモリ30に記憶された命令列を順次フェッチし、命令デコーダ27に入力する。命令デコーダは、フェッチされる命令を一時的にバッファし、順番にデコードし、算術論理演算器29に発行する。これにより、サブプロセッサ20は、メインプロセッサ11がメインメモリ14に書き込んだ命令列(プログラム)を順次実行する。
メインメモリから内部メモリに転送される命令列は大容量の場合がある。また、メインメモリから内部メモリには、命令列に加えて、命令列が処理するデータもDMA転送される。従来は、大容量の命令列とそのデータが全て内部メモリにDMA転送された後に、サブプロセッサが命令列の実行を開始していた。そのため、サブプロセッサによる処理開始が遅くなり、サブプロセッサのアクセラレータとしての性能を十分に利用できなくなる場合がある。
そこで、本実施の形態では、サブプロセッサ20のDMA転送制御部24が、転送記述子バッファ23内の複数の転送命令(転送記述子)に基づいて順番にメインメモリ14内の命令列を内部メモリ30に順番にDMA転送する。そして、命令実行制御回路(実行制御部)25が、各転送命令(転送記述子)に基づいてDMA転送するたびに、各転送命令(転送記述子)内の命令の実行を指示する命令実行フラグ(実行指示)をチェックする。このチェックで命令実行フラグが有効であること(実行を指示すること)を検出すると、命令実行制御回路(実行制御部)25は、プログラムカウンタPCのカウント動作の開始と、命令フェッチ回路26による内部メモリ30内の命令のフェッチの開始とを指示する。
これによりサブプロセッサは転送された命令列の実行を開始する。このように、メインプロセッサ11は、複数の転送命令(転送記述子)中の任意の転送命令に有効な命令実行フラグを設定し、命令列のDMA転送中の任意のタイミングで、サブプロセッサ20による特定の処理の命令の実行を開始させることができる。
さらに、サブプロセッサが特定の処理の命令の実行を開始した後、メインメモリ14内の命令列の内部メモリ30へのDMA転送が継続して行われる。そして、命令実行制御回路25が、DMA転送制御部24が管理する転送ポインタTRNS_PTRと、命令フェッチ回路26が管理する命令フェッチアドレスF_ADDとを比較し、命令フェッチアドレスが転送ポインタに追いついていないか否かをチェックする。転送ポインタTRNS_PTRは、DMA転送制御部24が命令列を格納する内部メモリ30内の転送先アドレスを示す。また、命令フェッチアドレスF_ADDは、命令フェッチ回路26が命令列を読み出す内部メモリの読み出し先アドレスを示す。
命令フェッチアドレスF_ADDが転送ポインタTRNS_PTRに追いついた場合(F_ADD=TRNS_PTR)、転送済み命令は全てフェッチされたことを意味するので、命令実行制御回路25は、プログラムカウンタPCのカウント動作を停止すると共に、命令フェッチ回路26による命令フェッチも停止する。この結果、サブプロセッサ20は、命令発行部21と算術論理演算器29によるフェッチ済み命令を処理する動作(命令デコード、命令発行、命令実行)を停止し、さらに、命令フェッチ回路26による新たな命令の内部メモリ30からのフェッチ動作も停止する。
その後、命令列のDMA転送が継続して行われ、命令実行制御回路25は、上記の比較により、転送ポインタが命令フェッチアドレスを追い越したか否かをチェックする。転送ポインタが命令フェッチアドレスを追い越した状態では、内部メモリ内の転送済みの命令をフェッチすることができる。その場合、命令実行制御回路25は、プログラムカウンタのカウント動作と、命令フェッチ回路26による命令列のフェッチを再開する。
これにより、全命令列がメインメモリから内部メモリに転送を完了する前に、サブプロセッサが、転送済みの命令列の実行を開始することができる。また、転送完了する前に転送済み命令列の実行を開始しても、命令フェッチが未転送の命令の前まで行われると、命令フェッチを一時停止し、その後、命令列のDMA転送が進むと、命令フェッチを再開することができる。これにより、命令列のDMA転送完了前にサブプロセッサが命令列の実行を開始しても、未転送の命令列の命令フェッチは抑止される。
図2は、転送命令の一例を示す図である。図2中、左側に示した転送命令TRNS_INSTは、転送元アドレスSADDと、転送先アドレスDADDと、転送長LNGと、実行フラグEX_FLGと、チェインフラグCH_FLGと、次のディスクリプタアドレスN_DIS_ADDとを有する記述子(ディスクリプタ)である。本実施の形態では、転送元アドレスは、メインプロセッサ11のメインメモリ14の転送対象命令等のアドレスであり、転送先アドレスは、内部メモリ30内の転送先のアドレスである。また、転送長は、この転送命令で転送するデータ長を示す。
チェインフラグCH_FLGは、後続の転送命令が存在するか否かを示すフラグであり、このチェインフラグが有効の場合、DMA転送制御部24が、次のディスクリプタアドレスの転送命令を転送記述子バッファ23から読み出し、転送命令に基づくDMA転送を実行する。
また、実行フラグEX_FLGは、DMA転送しているサブプロセッサが命令列の実行を開始すべきか否かを示すフラグであり、実行フラグEX_FLGが有効の場合、命令実行制御回路25がプログラムカウンタPCのカウント動作と、命令フェッチ回路26に命令列のフェッチを開始させ、サブプロセッサに命令列の実行を開始させる。
図2には、右側に、チェイン接続された3つの転送命令40,41,42が示される。転送命令40、41は、チェインフラグCH_FLGが有効「1」であるので、それぞれ後続する転送命令41,42が存在することが示されている。一方、転送命令41は、実行フラグEX_FLGが有効「1」であるので、転送命令41でDMA転送されるときに、命令実行制御回路25が、プログラムカウンタPCにカウントの開始と、命令フェッチ回路26に命令フェッチの開始とを指示し、サブプロセッサに命令の実行を開始させる。このように、メインプロセッサ11は、複数の連結された転送命令(転送記述子)の中の任意の転送命令の実行フラグEX_FLGを有効「1」に設定することで、命令列のDMA転送の任意のタイミングでサブプロセッサ20に命令の実行開始を行わせることができる。
図3は、DMA転送制御部の転送ポインタの更新処理を説明する図である。図3には、内部メモリ30に対する転送ポインタTRNS_PTRの更新動作が示される。CASE1は、内部メモリ30の先頭の転送先アドレスが0000で、8回のDMA転送が連続するアドレスに対して行われる例である。この場合、DMA転送制御部24は、毎回転送完了するたびに、転送命令(転送記述子)内の転送先アドレスに転送長LNGを加算して、転送ポインタTRNS_PTRを更新する。即ち、1回目の転送完了時の転送ポインタTRNS_PTR_1は、転送先アドレス「0000」+転送長「256」=256に更新される。つまり、転送ポインタTRNS_PTR_1は、転送済み命令列の次のアドレスを指している。
その後、2回目から8回目までの更新された転送ポインタTRNS_PTR_2~TRNS_PTR_8は、以下のとおりとなる。
TRNS_PTR_2 =転送先アドレス「256」+転送長「256」=512
TRNS_PTR_3 =転送先アドレス「512」+転送長「256」=768
TRNS_PTR_4 =転送先アドレス「768」+転送長「256」=1024
TRNS_PTR_5 =転送先アドレス「1024」+転送長「256」=1280
TRNS_PTR_6 =転送先アドレス「1280」+転送長「256」=1536
TRNS_PTR_7 =転送先アドレス「1536」+転送長「256」=1792
TRNS_PTR_8 =転送先アドレス「1792」+転送長「256」=2048
CASE2は、内部メモリ30の先頭の転送先アドレスが1000で、8回の転送が連続する転送先アドレスに対して行われる例である。この場合も、DMA転送制御部24は、毎回転送完了するたびに、転送命令(転送記述子)内の転送先アドレスに転送長を加算して、転送ポインタTRNS_PTRを更新する。従って、1回目の転送完了時から8回目の転送完了時に更新された転送ポインタTRNS_PTR_1~TRNS_PTR_8は、以下のとおりとなる。
TRNS_PTR_1 =転送先アドレス「1000」+転送長「256」=1256
TRNS_PTR_2 =転送先アドレス「1256」+転送長「256」=1512
TRNS_PTR_3 =転送先アドレス「1512」+転送長「256」=1768
TRNS_PTR_4 =転送先アドレス「1768」+転送長「256」=2024
TRNS_PTR_5 =転送先アドレス「2024」+転送長「256」=2280
TRNS_PTR_6 =転送先アドレス「2280」+転送長「256」=2536
TRNS_PTR_7 =転送先アドレス「2536」+転送長「256」=2792
TRNS_PTR_8 =転送先アドレス「2792」+転送長「256」=3048
CASE3は、内部メモリ30の先頭の転送先アドレスが1000で、8回の転送が4回目から5回目で不連続な転送先アドレスに対して行われ、それ以外は連続するアドレスに対して行われる例である。この場合も、DMA転送制御部24は、毎回転送完了するたびに、転送命令(転送記述子)内の転送先アドレスに転送長を加算して、転送ポインタTRNS_PTRを更新する。従って、1回目の転送完了時から8回目の転送完了時に更新された転送ポインタTRNS_PTR_1~TRNS_PTR_8は、以下のとおりとなる。
TRNS_PTR_1 =転送先アドレス「1000」+転送長「256」=1256
TRNS_PTR_2 =転送先アドレス「1256」+転送長「256」=1512
TRNS_PTR_3 =転送先アドレス「1512」+転送長「256」=1768
TRNS_PTR_4 =転送先アドレス「1768」+転送長「256」=2024
TRNS_PTR_5 =転送先アドレス「4000」+転送長「256」=4256
TRNS_PTR_6 =転送先アドレス「4256」+転送長「256」=4512
TRNS_PTR_7 =転送先アドレス「4512」+転送長「256」=4768
TRNS_PTR_8 =転送先アドレス「4768」+転送長「256」=5048
図4は、内部メモリの転送ポインタとフェッチアドレスとの関係を示す図である。内部メモリ30には、DMA転送制御部24により管理される転送ポインタTRNS_PTRの位置にDMA転送された命令列が格納される。上記の転送ポインタの動作から明らかなとおり、転送ポインタTRNS_PTRのアドレスには未だ命令列は格納されていない。
図4の(1)は、転送ポインタTRNS_PTR>フェッチアドレスF_ADDの状態であり、フェッチアドレスF_ADDには転送済命令INST1が格納されている。この場合、命令実行制御回路25は、転送命令の実行フラグEX_FLGが有効「1」の場合、プログラムカウンタPCのカウント動作の開始と、命令フェッチ回路26への命令フェッチの実行開始とを指示する。また、命令の実行が一時停止中に、転送ポインタTRNS_PTR>フェッチアドレスF_ADDの状態になると、命令実行制御回路25は、プログラムカウンタPCのカウント動作の再開と、命令フェッチ回路26への命令フェッチの実行再開とを指示する。
図4の(2)は、転送ポインタTRNS_PTR=フェッチアドレスF_ADDの状態であり、フェッチアドレスF_ADDが転送ポインタTRNS_PTRに追いついた状態である。この場合、フェッチアドレスF_ADDには転送済命令は未だ格納されていないので、命令実行制御回路25は、プログラムカウンタPCのカウント動作の停止と、命令フェッチ回路26の命令フェッチの停止を指示する。これにより、サブプロセッサによる命令列の実行が一時停止になる。その後、DMA転送が継続して行われると、やがて、図4の(1)のように転送ポインタTRNS_PTRがフェッチアドレスF_ADDを追い越した状態になる。追い越した状態になると、上記したとおり、命令実行制御回路25は、プログラムカウンタPCのカウント動作と命令フェッチ回路26の命令フェッチの実行の再開を指示する。
図5は、メインプロセッサとサブプロセッサの動作を示すフローチャート図である。図6,図7は、メインプロセッサとサブプロセッサの動作例1,2を示すタイミングチャート図である。図5に沿ってメインプロセッサとサブプロセッサの動作を説明する。
まず、メインプロセッサ11が、サブプロセッサに実行させる命令列をメインメモリ14内に格納する(S0)。このとき、命令列の実行に必要なデータもメインメモリ14に格納してもよい。
次に、メインプロセッサ11がインターフェース制御部12を経由して、複数の転送命令(転送記述子)をサブプロセッサ20のDMA転送ユニット22内の転送記述子バッファ23内に格納してセットする(S1)。そして、メインプロセッサがインターフェース制御部12を経由して、サブプロセッサ20のDMA転送ユニット22に転送開始指示を送信する(S2)。
この転送開始指示S2に応答して、サブプロセッサ20のDMA転送制御部24が、転送記述子バッファ23から先頭の転送命令である転送記述子を読み出し(S3)、転送命令の転送情報に基づいて、メインメモリ14内の命令列を内部メモリ30の転送先アドレスの位置にDMA転送する(S5)。1回のDMA転送の転送長は、例えば、図3の例のように256バイトである。DMA転送制御部24は、1回分のDMA転送が完了すると転送ポインタを更新する(S6)。転送ポインタの更新処理は、図3で説明したとおりである。
1回のDMA転送が完了すると、DMA転送制御部24は、その転送命令(転送記述子)のチェインフラグCH_FLGが有効「1」か否かチェックする(S7)。チェインフラグが有効「1」の場合(S7のYES)、DMA転送制御部24は、転送記述子バッファ23から次ディスクリプトアドレスN_DIS_ADDに記憶されている次の転送記述子を読み出し(S3)、同様の処理S4-S7を実行する。
図6,図7には、上記の1回のDMA転送が、サブプロセッサ20のDMA転送ユニット22がメインメモリ14の命令(データ)を読み出し(read)、読み出した命令(データdata)を内部メモリ30に書き込む処理で示される。このメインメモリ14の命令の読み出しreadと、読み出した命令(データdata)を内部メモリ30に書き込む処理が、各DMA転送TRNS_1~TRNS_8に対応する。
また、命令実行制御回路25は、DMA転送制御部24により転送記述子バッファから読み出された転送記述子の実行フラグEX_FLGが有効「1」か否か判定する(S4)。実行フラグEX_FLGが有効「1」の場合(S4のYES)、命令実行制御回路25は、プログラムカウンタPCのカウント動作と、命令フェッチ回路26の命令フェッチの開始を指示する(S10)。この開始指示に応答して、命令発行部21内の命令フェッチ回路26が内部メモリ30内の命令をフェッチし、命令デコーダ27に入力し、命令デコーダがデコードした命令を算術論理演算器29に発行する。更に、算術論理演算器の命令の実行終了に応答して、プログラムカウンタPCがカウント値を更新し、命令の実行完了処理を行う。また、更新されたPCに基づいてフェッチアドレス生成部28が次のフェッチアドレスを生成する。これにより、サブプロセッサ20は命令列の実行を開始する(S11)。
図6、図7では、5回目のDMA転送TRNS_5のための転送命令内の有効な実行フラグEX_FLGに基づいて、5回目のDMA転送のメインメモリへの読み出しreadのタイミングで、サブプロセッサ20の命令発行部21の命令フェッチ回路が命令のフェッチを開始し、サブプロセッサによる命令の実行が開始されている。
図5に戻り、サブプロセッサ20の命令発行部21と算術論理演算器29は、命令フェッチ、命令デコード、算術論理演算器の演算、プログラムカウンタPCのカウント動作による命令実行S11を命令列の実行が完了するまで繰り返す(S12のNO)。この命令実行S11の繰り返し中、命令実行制御回路25は、転送ポインタTRNS_PTRとフェッチアドレスF_ADDとを比較して、転送ポインタTRNS_PTR>フェッチアドレスF_ADDか否かの判定を繰り返す(S13)。転送ポインタTRNS_PTR>フェッチアドレスF_ADD(フェッチアドレスが転送ポインタに追いついていない状態)であれば(S13のYES)、命令実行制御回路25は、プログラムカウンタPCのカウント動作と命令フェッチ回路26の命令フェッチの実行S11を継続させる。一方、転送ポインタTRNS_PTR=フェッチアドレスF_ADD(フェッチアドレスが転送ポインタに追いついた状態)場合(S13のNO)、命令実行制御回路25は、プログラムカウンタPCの停止と命令フェッチ回路の命令フェッチの停止をそれぞれ指示する。
その後、DMA転送が行われ、再度転送ポインタTRNS_PTR>フェッチアドレスF_ADD(転送ポインタがフェッチアドレスを追い越した状態)となれば(S13のYES)、命令実行制御回路25は、プログラムカウンタPCのカウント動作の再開と、命令フェッチ回路26による命令フェッチの実行S11の再開を指示する。
図7の例では、サブプロセッサによる命令の実行が一時的に停止し中断している。そして、その後、サブプロセッサによる命令の実行が再開されている。
図5に戻り、サブプロセッサ20のDMA転送ユニット22のDMA転送制御部24は、転送命令のチェインフラグCH_FLGが無効「0」になると(S7のNO)、DMA転送が完了したことをメインプロセッサに通知する。また、サブプロセッサ20は、一連の命令列による命令が完了すると(S12のYES、S8のYES)、メインプロセッサに特定処理の命令の実行完了を通知する。この命令の実行完了通知に応答して、メインプロセッサは、サブプロセッサ内の内部メモリ30に記憶されている演算結果を読み出し、メインメモリ14に演算結果のデータを転送する(S9)。この演算結果の回収は、メインプロセッサ11による内部メモリ30からメインメモリ14へのDMA転送処理である。
上記の第1の実施の形態では、命令の実行と再開をプログラムカウンタのカウント動作の開始と命令フェッチ回路の命令フェッチ動作の開始により行い、命令の一時停止を両動作の一時停止により行った。但し、命令の実行と再開をプログラムカウンタのカウント動作の開始により行い、命令の一時停止をプログラムカウンタのカウント動作の一時停止により行うようにしても良い。プログラムカウンタが開始または停止することで、命令フェッチ動作も開始または停止することができる。
[第2の実施の形態]
図8は、第2の実施の形態におけるメインプロセッサとサブプロセッサとを示す図である。メインプロセッサ11は、メインメモリ14にアクセス可能に接続される。メインプロセッサ11は、メインメモリ14内に記憶されている命令列をフェッチし、命令列に対応する処理を実行する。また、メインプロセッサ11は、メインメモリ14内に特定の命令列を書き込み、サブプロセッサ20に実行させる。
サブプロセッサ20は、複数のコア(演算ユニット)CORE_0~CORE_2と、メインメモリ14内の特定の命令列の各コアへの転送を制御するデータ転送制御部(第1の転送制御部)34を有する。データ転送制御部(第1の転送制御部)34は、メインメモリ14内のデータ(命令やデータ)を各コアに転送制御し、逆に、各コアが命令実行により生成したデータをメインメモリ14に転送制御する。
例えば、上記のコアCOREとメインメモリ14間での命令またはデータの転送制御は、メインプロセッサ11が命令またはデータの転送命令を、命令制御部36内の転送記述子バッファ37に設定することで行われる。この転送命令は、第1の実施の形態の転送記述子と同様である。そして、メインプロセッサ11は、複数の転送命令を転送記述子バッファ37に設定する。但し、第2の実施の形態では、サブプロセッサ内の複数のコアのうちどのコアの内部メモリ30に転送すべきかの情報が、転送先アドレスDADDに含められる。
そして、メインプロセッサが、命令制御部36に転送開始指示を送信すると、それに応答して、サブプロセッサ20内の命令制御部36が、データ転送制御部(第1の転送制御部)34に転送記述子バッファ37内の転送命令の実行を指示する。データ転送制御部34は、転送記述子バッファ37内の転送命令を順番に実行し、メモリコントローラ35を介して、メインメモリ14内の転送元アドレスの命令列を読み出し、転送先コアのインターフェース回路31を経由して、転送先コアの内部メモリ30内の転送先アドレスに命令列を送信する。
この転送される命令列には、図8中に示されるとおり、転送先アドレスDADDと、転送命令(転送記述子)に付加されている実行フラグEX_FLGとが付加される。
命令発行部21内の命令実行制御回路25は、転送対象の命令列に付加された実行フラグEX_FLGをチェックする。命令実行制御回路25は、実行フラグEX_FLGが有効の場合、プログラムカウンタPCのカウント動作の開始と命令フェッチ回路26の命令フェッチの開始をそれぞれ指示する。これにより、命令フェッチ回路26は、複数の転送命令による命令列の転送が全て完了する前の段階で、サブプロセッサ20による内部メモリ30内に格納済みの命令列の実行を開始させることができる。
また、インターフェース回路(第2の転送制御部)31は、転送命令に基づく命令列の転送が完了するたびに、内部メモリ30内の転送ポインタTRNS_PTRを更新する。転送ポインタの更新処理は、第1の実施の形態と同様である。転送ポインタTRNS_PTRを更新するために、データ転送制御部34から転送される命令列に、転送先アドレスDADDに加えて転送長LNGを付加してもよい。
そして、命令発行部21内の命令実行制御回路(実行制御部)25は、更新された転送ポインタTRNS_PTRと命令フェッチアドレスF_ADDとを比較する。命令フェッチ制御部は、TRNS_PTR>F_ADDであれば、プログラムカウンタPCのカウント動作と、命令フェッチ回路26による命令フェッチを許可し、TRNS_PTR=F_ADDになれば、プログラムカウンタPCのカウント動作と命令フェッチとを停止するよう制御する。プログラムカウンタPCのカウント動作が停止することで特定命令の命令列の実行が停止し、更に、命令フェッチが停止することで未転送命令をフェッチすることが回避される。命令フェッチアドレスと転送ポインタとの比較に基づくプログラムカウンタPCのカウント動作の許可と停止及び命令フェッチの許可と停止の制御は、第1の実施の形態と同じである。
図8中の各コア内の命令発行部21内の命令フェッチ回路26、命令デコーダ27、フェッチアドレス生成部28、命令実行制御回路25と、算術論理演算器29とプログラムカウンタPCは、図1の第1の実施の形態の命令発行部21内の命令フェッチ回路26、命令デコーダ27、フェッチアドレス生成部28、命令実行制御回路25と、算術論理演算器29とプログラムカウンタPCと同様の構成である。図8の第2の実施の形態では、メインプロセッサ11から設定される転送命令を格納する転送記述子バッファ37を有する命令制御部36と、データ転送制御部34とが、コアの外側に設けられていることが、図1の例と異なる。
[第3の実施の形態]
図9は、第3の実施の形態における演算処理装置の構成例を示す図である。図9のサブプロセッサ20は、図1のサブプロセッサと異なり、命令実行制御回路25が、プログラムカウンタPCのカウント値と転送ポインタTRNS_PTRとを比較し、サブプロセッサの命令実行を開始、停止、再開の制御を行う。
プロセッサ20の命令発行部21と算術論理演算器29とプログラムカウンタPCの動作は、前述したとおり、以下のとおりである。プログラムカウンタPCが更新されると、更新されたプログラムカウンタPCのカウント値(命令のアドレス)に基づいて、フェッチアドレス生成部28がフェッチアドレスF_ADDを生成する。フェッチアドレスF_ADDは、最悪プログラムカウンタPCと同じアドレスでも良いが、命令発行部21や算術論理演算器29のパイプライン構成を考慮して、プログラムカウンタPCより所定アドレスだけ先のアドレスになる。
そして、フェッチされた命令が命令デコーダ27でデコードされ、算術論理演算器29がデコードされた命令を実行する。命令の実行が完了すると、プログラムカウンタPCが更新される。プログラムカウンタPCの更新処理は、例えば、命令発行部21内の図示しない命令完了処理部により行われる。その後の処理は、上記の通りである。
このように、プログラムカウンタPCのカウント値(アドレス)は、プロセッサが実行中の命令のうち最先にフェッチされた命令のアドレスである。したがって、プログラムカウンタPCのカウント値が転送ポインタTRNS_PTRより小さい値であれば、最先の実行中の命令(プログラムカウンタPCが指し示す命令)は、転送済み命令である。
そこで、図9のサブプロセッサ20の命令実行制御回路25は、プログラムカウンタPCのカウント値と転送ポインタTRNS_PTRとを比較し、PC<TRNS_PTRであれば、プログラムカウンタPCのカウント動作と命令フェッチ動作を許可して算術論理演算を実行させ、一方、PC=TRNS_PTRになれば、プログラムカウンタPCのカウント動作と命令フェッチ動作を停止して算術論理演算を停止させる。
図10は、第3の実施の形態におけるプログラムカウンタPCと転送ポインタTRNS_PTRとの関係を示す図である。図10の(1)は、PC<TRNS_PTRの状態であり、プログラムカウンタPCは転送済み命令INST1を指し示し、転送ポインタTRNS_PTRは未転送命令INST2を指し示す。一方、図10の(2)は、PC=TRNS_PTRとプログラムカウンタPCが転送ポインタTRNS_PTRに追いついた状態であり、プログラムカウンタPCも転送ポインタTRNS_PTRも未転送命令INST2を指し示す。この状態でプロセッサを命令発行部21と算術論理演算器29の動作を許可すると、算術論理演算器29は未転送の命令を実行することになり、禁止すべきである。
そこで、図9のサブプロセッサ20では、転送記述子バッファ23から読み出した転送記述子内の実行フラグEX_FLGが有効になっている場合、PC<TRNS_PTRであれば、命令実行制御回路25が、プログラムカウンタPCのカウント動作と命令フェッチ回路の命令フェッチ動作とを開始させ、転送済み命令の実行を開始させる。
そして、転送済み命令の実行中にプログラムカウンタPCが転送ポインタTRNS_PTRに追いつき、PC=TRNS_PTRとなれば、命令実行制御回路25は、プログラムカウンタPCのカウント動作を停止し、命令の実行を停止する。その後、再度PC<TRNS_PTRとなれば、命令の実行を再開する。
但し、算術論理演算器29などはフェッチされた命令をパインプライン処理しているので、命令実行制御回路25が、PC=TRNS_PTRを検出してから、プログラムカウンタPCの動作を停止するように制御すると、タイミング的に算術論理演算器29により処理された命令の完了処理によりプログラムカウンタPCが更新される場合がある(第1の理由)。
また、図10の(2)に示されるとおり、命令フェッチアドレスF_ADDは、プログラムカウンタPCより所定アドレスだけ先行するアドレスであるので、未転送命令INST2~INST5がフェッチされ、命令デコーダ27と算術論理演算器29のパイプライン回路内でパイプライン処理中の可能性がある。その結果、PC<TRNS_PTRを検出して命令の実行を再開するとき、パイプライン回路内の状態をクリアし、再度、プログラムカウンタPCのアドレスの命令からフェッチ、デコード、実行という動作を行う必要がある(第2の理由)。
上記の2つの理由から、第3の実施の形態の好ましい例では、命令実行制御回路25が、プログラムカウンタPCと、転送ポインタTRNS_PTRから所定の減算ポイントSUB_PTRを減算したポインタ値とを比較し、PC<TRNS_PTR-SUB_PTRであれば、プログラムカウンタPCのカウント動作と命令フェッチ回路26の命令フェッチ動作とを許可し、PC=TRNS_PTR-SUB_PTRであれば、禁止する。
図11は、プログラムカウンタPCと、転送ポインタから減算ポイントを減算した値TRNS_PTR-SUB_PTRの関係を示す図である。図11の(1)の状態は、PC<TRNS_PTR-SUB_PTRである。ここで、減算ポイントSUB_PTRは、命令実行制御回路25がPC=TRNS_PTR-SUB_PTRを検出した後にプログラムカウンタPCを適切に停止できる程度の値であることが望ましい。そのような減算ポイントに設定されると、算術論理演算器が転送済命令の完了処理を実行している間に、プログラムカウンタPCを停止制御することができる。これにより、上記した第1の理由が解消される。
更に、(1)減算ポイントSUB_PTRは、例えば、プログラムカウンタPCと命令フェッチアドレスF_ADDとの差分DIVと等しい値(SUB_PTR=DIV)であることが好ましい。または、(2)減算ポイントSUB_PTRは、例えば、プログラムカウンタPCと命令フェッチアドレスF_ADDとの差分DIVの上限値DIV_MAXと等しい値(SUB_PTR=DIV_MAX)であることが好ましい。
前述したとおり、一般に、命令フェッチアドレスF_ADDは、プログラムカウンタPCとの差分DIVが所定の上限値DIV_MAX以内に制御されることがある。したがって、少なくとも上記(2)のように、SUB_PTR=DIV_MAXに設定することで、図11の(2)のPC=TRNS_PTR-SUB_PTRを検出したときにプログラムカウンタPCを停止し、命令フェッチも停止することで、未転送の命令がフェッチされて、デコードされ、演算器で実行されてしまうことを防止できる。その結果、図11の(1)のPC<TRNS_PTR-SUB_PTRの状態で、プログラムカウンタPCの動作を再開するとき、パイプライン状態をクリアする必要がなくなる。これにより、上記した第2の理由が解消される。
第3の実施の形態において、プログラムカウンタPCと比較される値(TRNS_PTR-SUB_PTR)の計算は、以下のとおりである。
TRNS_PTR_1 - SUB_PTR =転送先アドレス「0」+ 転送長「256」-「100」=156
TRNS_PTR_2 - SUB_PTR =転送先アドレス「256」+転送長「256」-「100」=412
TRNS_PTR_3 - SUB_PTR =転送先アドレス「512」+転送長「256」-「100」=668
TRNS_PTR_4 - SUB_PTR =転送先アドレス「768」+転送長「256」-「100」=924
TRNS_PTR_5 - SUB_PTR =転送先アドレス「1024」+転送長「256」-「100」=1180
TRNS_PTR_6 - SUB_PTR =転送先アドレス「1280」+転送長「256」-「100」=1236
TRNS_PTR_7 - SUB_PTR =転送先アドレス「1536」+転送長「256」-「100」=1692
TRNS_PTR_8 =転送先アドレス「1792」+転送長「256」=2048
最終転送時には、減算ポイントSUB_PTRを減じていない理由は、すべての命令転送が完了したときに転送ポイントに減算ポイントを減じてプログラムカウンタPCと比較すると、プログラムカウンタPCが最後尾の命令より手前の命令のアドレスで停止してしまい、プログラムが最後まで実行されなくなるからである。
[第4の実施の形態]
図12は、第4の実施の形態における演算処理装置の構成例を示す図である。図12のサブプロセッサ20は、図8のサブプロセッサと異なり、命令実行制御回路25が、プログラムカウンタPCのカウント値と転送ポインタTRNS_PTRとを比較し、サブプロセッサの命令実行を開始、停止、再開の制御を行う。
そのため、図12の命令実行制御回路25には、転送ポインタTRNS_PTRとプログラムカウンタPCのカウント値が入力されている。
図12の演算処理装置は、命令実行制御部25のプログラムカウンタPCのカウント値と転送ポインタTRNS_PTRとの比較を除いて、図8の演算処理装置と同じ構成を有する。
図12の演算処理装置においても、命令実行制御回路25が、プログラムカウンタPCのカウント値と、転送ポインタTRNS_PTRから減算ポイントSUB_PTRを減じた値TRNS_PTR-SUB_PTRとを比較し、サブプロセッサの命令実行を開始、停止、再開の制御を行うようにしてもよい。その理由は、第3の実施の形態で説明したのと同じである。
以上の通り、第1乃至第4の実施の形態によれば、メインプロセッサが特定の命令列をサブプロセッサに転送完了する前に、サブプロセッサが特定の命令列の実行を開始することができる。また、命令の転送に特定の命令列の実行が追いつくと、開始された命令列の実行を一時的に停止することができ、停止中に命令の転送が進むと、命令の実行を再開できる。
11:メインプロセッサ、CPU
20:サブプロセッサ、演算処理装置、CPU
22:DMA転送ユニット
23:転送記述子バッファ
24:DMA転送制御部
25:命令実行制御回路
26:命令フェッチ回路
29:算術論理演算器
PC:プログラムカウンタ
TRNS_PTR:転送ポインタ
F_ADD:フェッチアドレス
30:内部メモリ
14:第1のメモリ

Claims (7)

  1. 命令を記憶する記憶部と、
    前記記憶部内の実行される命令の命令番号をカウント値として保持し、発行された命令の実行が完了すると前記カウント値が更新される計数部と、
    前記計数部のカウント値に基づいて生成されるフェッチアドレスに基づき前記記憶部からフェッチした命令を発行する発行部と、
    前記発行部が発行した命令を実行する演算部と、
    他の演算処理装置から転送された複数の転送命令の転送情報に基づいて、前記他の演算処理装置に接続される記憶装置が記憶する第1の命令を、前記記憶部の転送先アドレスを示す転送ポインタの位置に転送し、前記転送が終了すると前記転送ポインタを更新する転送制御部と、
    前記複数の転送命令のうちいずれかの転送命令の転送情報が実行指示を示す場合、前記計数部のカウント動作を開始させ、前記第1の命令のフェッチアドレスまたは前記計数部のカウント値が前記転送ポインタに追いつくと前記計数部のカウント動作を停止させ、前記転送ポインタが前記フェッチアドレスまたは前記計数部のカウント値より先を指すと前記計数部のカウント動作を再開させる実行制御部とを有する、演算処理装置。
  2. 前記実行制御部は、前記計数部のカウント動作を開始及び再開する場合、前記記憶部からの命令フェッチ動作を開始及び再開し、前記計数部のカウント動作を停止するとき、前記記憶部からの命令フェッチ動作を停止する、請求項1に記載の演算処理装置。
  3. 前記転送命令の前記転送情報は、前記記憶装置の転送元アドレスと、前記記憶部の転送先アドレスと、転送長と、前記実行指示とを有し、
    前記転送制御部は、前記複数の転送命令を順番に実行し、前記複数の転送命令の各転送命令による前記第1の命令の前記記憶部への転送が完了するたびに、当該転送が完了した転送命令の前記転送先アドレスに前記転送長を加算して前記転送ポインタを更新する、請求項1に記載の演算処理装置。
  4. 前記実行制御部は、前記計数部のカウント値が前記転送ポインタから所定の減算値を減じた修正転送ポインタに追いつくと、前記カウント動作を停止し、前記修正転送ポインタが前記計数部のカウント値より先を指すと、前記カウント動作を再開する、請求項1に記載の演算処理装置。
  5. 複数の演算ユニットを有し、
    前記複数の演算ユニットそれぞれは、前記記憶部と、前記計数部と、前記発行部と、前記演算部と、前記実行制御部とを有し、
    更に、前記転送制御部は、前記複数の演算ユニットに共通に設けられた第1の転送制御部と、前記複数の演算ユニットそれぞれに設けられた第2の転送制御部とを有し、
    前記第1の転送制御部は、前記複数の転送命令に応答して、転送先の演算ユニット内の前記記憶部に前記第1の命令を転送し、
    前記第2の転送制御部は、前記転送ポインタを更新する、請求項1に記載の演算処理装置。
  6. 演算処理装置と、他の演算処理装置とを有する情報処理装置において、
    前記演算処理装置は、
    命令を記憶する記憶部と、
    前記記憶部内の実行される命令の命令番号をカウント値として保持し、発行された命令の実行が完了すると前記カウント値が更新される計数部と、
    前記計数部のカウント値に基づいて生成されるフェッチアドレスに基づき前記記憶部からフェッチした命令を発行する発行部と、
    前記発行部が発行した命令を実行する演算部と、
    他の演算処理装置から転送された複数の転送命令の転送情報に基づいて、前記他の演算処理装置に接続される記憶装置が記憶する第1の命令を、前記記憶部の転送先アドレスを示す転送ポインタの位置に転送し、前記転送が終了すると前記転送ポインタを更新する転送制御部と、
    前記複数の転送命令のうちいずれかの転送命令の転送情報が実行指示を示す場合、前記計数部のカウント動作を開始させ、前記第1の命令のフェッチアドレスまたは前記計数部のカウント値が前記転送ポインタに追いつくと前記計数部のカウント動作を停止させ、前記転送ポインタが前記フェッチアドレスまたは前記計数部のカウント値より先を指すと前記計数部のカウント動作を再開させる実行制御部とを有する、情報処理装置。
  7. 命令を記憶する記憶部と、前記記憶部内の実行される命令の命令番号をカウント値として保持し、発行された命令の実行が完了すると前記カウント値が更新される計数部と、
    前記計数部のカウント値に基づいて生成されるフェッチアドレスに基づき前記記憶部からフェッチした命令を発行する発行部と、前記発行部が発行した命令を実行する演算部とを有する演算処理装置の制御方法において、
    前記演算処理装置が有する転送制御部が、他の演算処理装置から転送された複数の転送命令の転送情報に基づいて、前記他の演算処理装置に接続される記憶装置が記憶する第1の命令を、前記記憶部の転送先アドレスを示す転送ポインタの位置に転送し、前記転送が終了すると前記転送ポインタを更新し、
    前記演算処理装置が有する実行制御部が、前記複数の転送命令のうちいずれかの転送命令の転送情報が実行指示を示す場合、前記計数部のカウント動作を開始させ、前記第1の命令のフェッチアドレスまたは前記計数部のカウント値が前記転送ポインタに追いつくと前記計数部のカウント動作を停止させ、前記転送ポインタが前記フェッチアドレスまたは前記計数部のカウント値より先を指すと前記計数部のカウント動作を再開させる、演算処理装置の制御方法。
JP2018165382A 2018-09-04 2018-09-04 演算処理装置、情報処理装置及び情報処理装置の制御方法 Active JP7137058B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018165382A JP7137058B2 (ja) 2018-09-04 2018-09-04 演算処理装置、情報処理装置及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018165382A JP7137058B2 (ja) 2018-09-04 2018-09-04 演算処理装置、情報処理装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2020038502A JP2020038502A (ja) 2020-03-12
JP7137058B2 true JP7137058B2 (ja) 2022-09-14

Family

ID=69738011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018165382A Active JP7137058B2 (ja) 2018-09-04 2018-09-04 演算処理装置、情報処理装置及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP7137058B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003501775A (ja) 1999-06-15 2003-01-14 ヒューレット・パッカード・カンパニー プロセッサおよびコプロセッサを含むコンピュータ・アーキテクチャ
JP2004348327A (ja) 2003-05-21 2004-12-09 Oki Electric Ind Co Ltd デジタル信号処理装置及びデジタル信号処理方法
JP2005202767A (ja) 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
JP2016018320A (ja) 2014-07-07 2016-02-01 日本電気株式会社 情報処理システム、情報処理方法、および、プログラム
JP2017123197A (ja) 2012-11-21 2017-07-13 コーヒレント・ロジックス・インコーポレーテッド 分散型プロセッサを有する処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003501775A (ja) 1999-06-15 2003-01-14 ヒューレット・パッカード・カンパニー プロセッサおよびコプロセッサを含むコンピュータ・アーキテクチャ
JP2004348327A (ja) 2003-05-21 2004-12-09 Oki Electric Ind Co Ltd デジタル信号処理装置及びデジタル信号処理方法
JP2005202767A (ja) 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
JP2017123197A (ja) 2012-11-21 2017-07-13 コーヒレント・ロジックス・インコーポレーテッド 分散型プロセッサを有する処理システム
JP2016018320A (ja) 2014-07-07 2016-02-01 日本電気株式会社 情報処理システム、情報処理方法、および、プログラム

Also Published As

Publication number Publication date
JP2020038502A (ja) 2020-03-12

Similar Documents

Publication Publication Date Title
KR101148495B1 (ko) 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치
JP6508382B1 (ja) 情報処理装置、情報処理方法、プログラム
US20160253196A1 (en) Optimized extended context management for virtual machines
JP2560988B2 (ja) 情報処理装置および処理方法
TW201732590A (zh) 向量式原子記憶體更新指令
JPH0348537B2 (ja)
JPH0760388B2 (ja) パイプライン制御回路
JPH04188229A (ja) 浮動小数点演算処理装置
US6738837B1 (en) Digital system with split transaction memory access
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JP7137058B2 (ja) 演算処理装置、情報処理装置及び情報処理装置の制御方法
US7155718B1 (en) Method and apparatus to suspend and resume on next instruction for a microcontroller
JP2005521937A (ja) コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置
KR102379886B1 (ko) 벡터 명령 처리
US5197133A (en) Control store addressing from multiple sources
US11106587B2 (en) Memory cache-line bounce reduction for shared I/O ring structures
JP2710994B2 (ja) データ処理装置
US20190384608A1 (en) Arithmetic processor and control method of arithmetic processor
JP2007048019A (ja) エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
JP2668987B2 (ja) データ処理装置
US20230019377A1 (en) Memory barrier elision for multi-threaded workloads
JPS6032220B2 (ja) 情報処理装置
JP2814683B2 (ja) 命令処理装置
JPH06324861A (ja) Cpu制御システム及び制御方法
JPH08161185A (ja) 仮想計算機システムのゲスト実行制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7137058

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150