JP6106986B2 - 演算処理装置、情報処理装置及び割込制御方法 - Google Patents

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

Info

Publication number
JP6106986B2
JP6106986B2 JP2012179921A JP2012179921A JP6106986B2 JP 6106986 B2 JP6106986 B2 JP 6106986B2 JP 2012179921 A JP2012179921 A JP 2012179921A JP 2012179921 A JP2012179921 A JP 2012179921A JP 6106986 B2 JP6106986 B2 JP 6106986B2
Authority
JP
Japan
Prior art keywords
interrupt
interrupt request
unit
vector
identification information
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.)
Expired - Fee Related
Application number
JP2012179921A
Other languages
English (en)
Other versions
JP2014038438A (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 JP2012179921A priority Critical patent/JP6106986B2/ja
Priority to US13/922,288 priority patent/US20140052879A1/en
Publication of JP2014038438A publication Critical patent/JP2014038438A/ja
Application granted granted Critical
Publication of JP6106986B2 publication Critical patent/JP6106986B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、演算処理装置、情報処理装置及び割込制御方法に関する。
様々なプログラムを実行する情報処理装置では、ハードディスクなどのI/O(Input Output)デバイスである外部ユニットからの処理要求などを契機として、実行中の処理を一時中断して別の処理を実行する割り込みが行われている。
例えば、演算処理装置としてのCPU(Central Processing Unit)は、I/Oバスを介して外部ユニットと接続している。外部ユニットからの割り込み(IO-INT:Input Output INTerrupt)は、PCI(Peripheral Component Interconnect)−expressなどの入出力インタフェースを経由して、CPU内の割込制御部へと送られる。そして、複数のコアを有するCPUの場合、割り込みは割込制御部からコアへと送られる。
従来のCPUとしては、例えば、図13のような構成を有しているCPUがある。図13は、従来のCPUの一例の図である。CPU900は、入出力インタフェース910、割込制御部920及びコア930を有している。入出力インタフェース910には、1つの外部ユニット940が接続されている。そして、割込制御部920には、外部ユニット940からの割り込みのベクタを決定するレジスタである外部ユニット割込ベクタレジスタ921及び各ベクタのフラグを管理するレジスタである割込要求ベクタレジスタ922を有している。ここで、ベクタとは割り込みの優先順位を表す値である。外部ユニット割込ベクタレジスタ921には、外部ユニット940から割り込みを受けた場合のその割り込みに対するベクタの値が格納されている。外部インタフェースを介してCPU900に送られてきた外部ユニット940からの割り込みは、入出力インタフェース910によって受け付けられる。その後、外部ユニット940からの割り込みは、割込制御部920の外部ユニット割込ベクタレジスタ921によってベクタの値が決定される。これに対して、コア同士の間の割り込みであるコア間割り込みの場合、割り込み要求の発行元のコアによってベクタが指定されて送られてくる。
割込要求ベクタレジスタ922では、コア930毎に且つベクタ毎にフラグの値を管理する。具体的には、割込制御部920は、コア間の割り込み又は外部ユニットからの割り込みが発生すると、割込要求ベクタレジスタ922の中のコア930毎の格納領域のうち指定された格納領域の指定されたベクタの位置に割り込みをセットする。
コア930は、割込制御部920から割り込み通知を受けると、OS(Operation System)からの指示にしたがい、割込要求ベクタレジスタ922に格納されている割り込みの中から優先順位が高いベクタの割り込みを読み出す。すなわち、ベクタの値によって優先順位が予め決まっており、コア930毎に管理されているベクタのうち、その時点で一番優先順位の高いベクタの値が、対応するコア930によって読み出される。コア930は、読み出した割り込みのベクタの値を基に、外部ユニット940からの割り込みかコア間の割り込みかといった割り込みの種類を判別してデータの読み込みを行う。割込要求ベクタレジスタ922における読み出されたベクタは読み込まれると同時にリセットされる。
また、割り込み処理として、チップセット内の中継回路においてソフトウェアにより、どの外部ユニットからの割り込みかを記録しておき、割り込みが通知されたときに中継時の記録を用いて割り込みを行った外部ユニットを特定する従来技術がある(例えば、特許文献1参照)。
特開2010−250453号公報
しかしながら、従来の割り込み技術はCPUに1つの外部ユニットが接続された環境下での割り込みを想定しており、1つのCPUに複数の外部ユニットが接続された場合、いずれの外部ユニットからの割り込みかを判別することが困難であった。
また、割り込みを行った外部ユニットの情報を記録する従来技術では、ソフトウェアが、いずれの外部ユニットからの割り込みかを表す情報を付加し、後に、ソフトウェアが付加した情報を用いて外部ユニットの特定を行う処理を実現せねばならない。そのため、この従来技術では、CPUに接続された複数の外部ユニットの中から割り込みを要求した外部ユニットを特定するには、ソフトウェアの構成が複雑となり、その機能の実現が困難であった。
開示の技術は、上記に鑑みてなされたものであって、割り込み要求を発行した外部ユニットを容易に特定する演算処理装置、情報処理装置及び割込制御方法を提供することを目的とする。
本願の開示する演算処理装置、情報処理装置及び割込制御方法は、一つの態様において、以下の各部を有する。入出力インタフェース部は、異なる外部ユニットが接続された複数のポートを有し、前記ポートで受信した前記外部ユニットからの割り込み要求に対して、前記ポート毎に異なる予め決められた識別情報を付加する。レジスタは、分割領域毎に各前記識別情報に対応する領域が設けられる。複数の処理実行部は、前記分割領域の何れかが割り当てられ、前記識別情報に基づいて、通知を受けた順に割り当てられた前記分割領域に格納された割り込み要求に対応する処理を実行する。割込制御部は、前記入出力インタフェース部により受信された前記割り込み要求において指定された前記処理実行部に割り当てられた前記分割領域に該割り込み要求の情報を格納し、前記分割領域に格納された割り込み要求の前記識別情報に含まれる優先度順に、前記分割領域に対応する前記処理実行部に割り込み要求を通知し、前記入出力インタフェース部により受信された割り込み要求において他の割込制御回路による処理が指定されている場合、指定された他の割り込み制御回路に対して該受信した割り込み要求を送信する。
本願の開示する演算処理装置、情報処理装置及び割込制御方法の一つの態様によれば、割り込み要求を発行した外部ユニットを容易に特定することができるという効果を奏する。
図1は、実施例に係る情報処理装置の構成図である。 図2は、CPU間の接続を表す図である。 図3は、実施例に係るCPUのブロック図である。 図4は、割り込み要求に用いるパケットの一例の図である。 図5は、入出力インタフェース部の詳細を表すブロック図である。 図6は、入出力ポートとベクタとの関係を説明する図である。 図7は、ベクタの値が付加された割り込み要求のパケットの一例の図である。 図8は、割込制御部の詳細を表すブロック図である。 図9は、割込要求ベクタレジスタの一例の図である。 図10は、ベクタが付加されたパケットの状態を表す図である。 図11は、外部ユニットからの割り込み要求に対する割込制御処理のフローチャートである。 図12は、コア間の割り込み要求に対する割込制御処理のフローチャートである。 図13は、従来のCPUの一例の図である。
以下に、本願の開示する演算処理装置、情報処理装置及び割込制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する演算処理装置、情報処理装置及び割込制御方法が限定されるものではない。
図1は、実施例に係る情報処理装置の構成図である。本実施例に係る情報処理装置は、CPU1〜4、メモリ5、外部ユニット11〜14,21〜24,31〜34及び41〜44を有している。
CPU1〜4は、それぞれメモリ5と接続されている演算処理装置である。また、CPU1には、PCI−expressをインタフェースとして、外部ユニット11〜14が接続されている。同様に、CPU2には、外部ユニット21〜24が接続されており、CPU3には、外部ユニット31〜34が接続されており、CPU4には、外部ユニット41〜44が接続されている。
外部ユニット11〜14は、CPU1に対して割り込み要求を出力する。外部ユニット21〜24は、CPU2に対して割り込み要求を出力する。外部ユニット31〜34は、CPU3に対して割り込み要求を出力する。外部ユニット41〜44は、CPU4に対して割り込み要求を出力する。
ここで、図1では、分かり易いようにCPU1〜4の間の接続は省略している。そこで、次に図2を参照して、CPU1〜4の間の接続について説明する。図2は、CPU間の接続を表す図である。
図2に示すように、CPU1〜4は、それぞれが相互に接続されている。そして、CPU1〜4は、それぞれデータの送受信が可能である。次に、CPU1〜4の詳細について説明する。ここで、CPU1〜4は、本実施例では同じ構成を有しているので、CPU1を例に説明する。以下で説明する構成や機能は、CPU2〜4でも同様ある。
図3は、実施例に係るCPUのブロック図である。図3に示すようにCPU1は、コア101〜108、入出力インタフェース部110及び割込制御部120を有している。以下では、コア101〜108を区別しない場合、単にコア100という。
入出力インタフェース部110は、外部ユニット11〜14と接続されている。また、割込制御部120は、CPU2〜4の割込制御部と接続されている。図3では、CPU2〜4の割込制御部は省略している。
外部ユニット11〜14は、図4に示すような、割り込み要求のパケットを入出力インタフェース部110へ送信する。図4は、割り込み要求に用いるパケットの一例の図である。
図4に示すように、割り込み要求のパケット200は、valid201、cmd202、req(request)−id(IDentification)203、address204及びその他の情報を格納している。valid201は、パケットが有効であるか無効であるかを示す情報である。cmd(command)202は、パケットのリクエストの種類を表す情報である。すなわち、割り込み要求のパケットの場合、cmd202は、そのパケットが割り込み要求であることを表す情報である。外部ユニット11〜14が送信する割り込み要求では、cmd202は、外部ユニットから送られてきた割り込み要求であることを表す値である。req−id203は、パケットの識別子である。例えば、req−id203には、パケットの発行元のCPU番号及びコア番号などが格納されている。address204は、割り込み処理を実行するために参照するアドレスが記載されている。また、address204には、パケットの宛先のCPU番号及び宛先のコア番号を表すtid(target-identification)が格納されている。
図5は、入出力インタフェース部の詳細を表すブロック図である。図5に示すように、入出力インタフェース部110は、外部ユニット割込ベクタ記憶部111、ベクタ付加部112及び調停部113を有している。
図6は、入出力ポートとベクタとの関係を説明する図である。外部ユニット割込ベクタ記憶部111は、図6の対応表300に示すように、PCI−expressのインタフェースである入出力ポート毎に、ポートに対応するベクタの値を予め記憶している。ベクタとは、割り込み要求の優先度及び割り込み要求の送信元を表す情報である。ベクタは、例えば、0〜63の数値で表され、数値が大きいほど優先度が高い。また、ベクタは、例えば、コア間の割り込み要求と外部ユニットからの割り込み要求とでは、異なる値が割り当てられており、割り込み要求に付加されたベクタによって、その割り込み要求が他のコアからの割り込みか、外部ユニットからの割り込みかが区別できる。
図6では、欄301にポート#0に対応するベクタであるvector0が格納されている。また、欄302にポート#1に対応するベクタであるvector1が格納されている。欄303にポート#2に対応するベクタであるvector2が格納されている。欄304にポート#3に対応するベクタであるvector3が格納されている。ここで、各ポートに対応するベクタをvector0〜3と表しているが、本実施例では、具体的にはvector0〜3として0〜63のいずれかの数値が割り当てられている。
また、各CPU1〜4の外部ユニット割込ベクタ記憶部111が各ポートに割り当てるベクタは、CPU1〜4のぞれぞれの外部ユニット割込ベクタ記憶部111間でも重ならないように決められている。例えば、CPU1の外部ユニット割込ベクタ記憶部111がvector0〜3を用いる場合、CPU2〜4の外部ユニット割込ベクタ記憶部111がvector0〜3を用いない。
ベクタ付加部112は、PCI−expressのインタフェースである入出力ポートを有している。例えば、ベクタ付加部112は、4つのPCI−expressの入出力ポートを有しいている。ここで、外部ユニット11が接続されている入出力ポートをポート#0、外部ユニット12が接続されている入出力ポートをポート#1、外部ユニット13が接続されている入出力ポートをポート#4、外部ユニット14が接続されている入出力ポートをポート#5とする。
次に、ベクタ付加部112は、外部ユニット11〜14のいずれかから割り込み要求のパケットを受信する。そして、ベクタ付加部112は、受信した割り込み要求を受信した入出力ポートに対応するベクタを、外部ユニット割込ベクタ記憶部111から取得する。例えば、外部ユニット11から割り込み要求のパケットが送信された場合、ベクタ付加部112は、ポート#0の入出力ポートでパケットを受信する。この場合、ベクタ付加部112は、外部ユニット割込ベクタ記憶部111が記憶している図6に示す対応関係を用いて、ポート#0に対応するベクタとしてvector0を取得する。
そして、ベクタ付加部112は、受信した割り込み要求のパケットに取得したベクタを付加する。図7は、ベクタの値が付加された割り込み要求のパケットの一例の図である。図7に示すように、本実施例では、ベクタ付加部112は、割り込み要求のパケット200のaddress204のビットを用いてベクタを表す値を割り込み要求のパケット200に付加する。ここで、address204におけるベクタを付加するビットは予め決められている。また、本実施例では、address204の中にベクタを埋め込んだが、これは他の方法でも良く、例えば、その他の情報にベクタを埋め込んでもよい。
ベクタ付加部112は、受信した入出力ポートを表すベクタを付加した割り込み要求のパケットを調停部113へ出力する。
調停部113は、受信した入出力ポートを表すベクタが付加された割り込み要求のパケットをベクタ付加部112から受信する。そして、調停部113は、割り込み要求のパケットが衝突しないようにタイミングを調整して、各割り込み要求のパケットを割込制御部120へ出力する。
図8は、割込制御部の詳細を表すブロック図である。図8に示すように、割込制御部120は、割込受付部121、ベクタ格納部122、宛先CPU判定部123、宛先コア判定部124、割込通知部125及び処理結果送信部126を有している。
ベクタ格納部122は、例えば、図9に示すような割込要求ベクタレジスタ400を有している。図9は、割込要求ベクタレジスタの一例の図である。割込要求ベクタレジスタ400は、コア101〜108毎に割り込み要求の有無を記憶する。さらに、割込要求ベクタレジスタ400は、ベクタによって優先度が表されるように割り込み要求を記憶する。
例えば、割込要求ベクタレジスタ400のレジスタ401は、コア101の割り込みの有無を格納するレジスタである。同様に、レジスタ402〜408は、それぞれコア102〜108の割り込み要求の有無を格納するレジスタである。レジスタ401〜408は、それぞれが64個のフラグ格納欄410を有している。レジスタ401〜408のフラグ格納欄410は、それぞれベクタの値と対応している。本実施例では、ベクタを0〜63のベクタを用いるので、レジスタ401〜408は、64個のフラグ格納欄410を有している。図9では、分かり易いように、レジスタ401〜408の各フラグ格納欄410に対応するように上部にベクタの値を表示している。例えば、レジスタ401は、64ビットのレジスタであり、各ビットがフラグ格納欄410にあたる。そして、各フラグ格納欄410には、フラグのオン又はオフの情報が格納される。例えば、コア101に対してベクタの値が60の割り込み要求がある場合には、レジスタ401のベクタの値が60に対応するフラグ格納欄411のフラグがオンになる。例えば、レジスタ401のフラグ格納欄410が1ビットで表される場合、フラグのオン/オフは、ビットの中の対応するビットが0の場合にフラグをオフとし、ビットが1の場合にフラグがオンとするなどで表される。
図8では、ベクタ格納部122が複数あるように記載しているが、これは、コア101〜108毎にレジスタが用意されていることを表している。
割込受付部121は、外部ユニット11〜14からの割り込み要求のパケットを入出力インタフェース部110から受信する。
また、割込受付部121は、コア100がCPU1の他のコアに対して出力した割り込み要求のパケットの入力を受ける。
ここで、コア100は、他のコアへの割り込み要求であるコア間の割り込み要求のパケットを生成するときに、そのパケットにベクタを付加している。例えば、コア100は、図10で示すパケット500のような割り込み要求のパケットを生成する。図10は、ベクタが付加されたパケットの状態を表す図である。この時、コア100は、address502の予め決められた位置にベクタを埋め込む。本実施例では、コア間の割り込み要求においてコア100がベクタを埋め込む位置と、外部ユニットからの割り込み要求においてベクタ付加部112がベクタを埋め込む位置は同じとしている。また、パケット500の、core−id501は、宛先のコアの番号の情報である。
また、割込受付部121は、割り込み要求のパケットの入力をCPU2〜4から受ける。CPU2〜4から受信する割り込み要求には、外部ユニットからの割り込み要求の場合も、コアからの割り込み要求の場合もある。外部ユニットからの割り込み要求の場合、割込受付部121は、図7のパケット200の形式のパケットを受信する。また、コアからの割り込み要求の場合、割込受付部121は、図10のパケット500の形式のパケットを受信する。
そして、割込受付部121は、受信した割り込み要求のパケットを宛先CPU判定部123へ出力する。
また、割込受付部121は、受信した各割り込み要求で用いるデータを外部ユニット11〜14、コア101〜108又はCPU2〜4などの割り込み要求元から受信する。そして、割込受付部121は、受信したデータをメモリ5に格納する。
宛先CPU判定部123は、割り込み要求のパケットの入力を割込受付部121から受ける。そして、宛先CPU判定部123は、受信した割り込み要求のパケットのaddress領域に格納されているtidを確認し、宛先のCPU番号を取得する。
宛先CPU判定部123は、宛先のCPU番号が自CPUを表している場合、割り込み要求のパケットを宛先コア判定部124へ出力する。これに対して、CPUを宛先のCPU番号が自CPU以外を表している場合、宛先CPU判定部123は、CPU2〜4のうちの宛先のCPU番号にあたるCPUの割込制御部120へ割り込み要求のパケットを送信する。
宛先コア判定部124は、割り込み要求のパケットを宛先CPU判定部123から受信する。そして、宛先コア判定部124は、受信した割り込み要求のパケットのaddress領域に格納されているtidを確認し、宛先のコア番号を取得する。
そして、宛先コア判定部124は、取得した宛先のコア番号が表すコアに対応するレジスタをベクタ格納部122が有する割込要求ベクタレジスタの中から選択する。次に、宛先コア判定部124は、受信した割り込み要求のパケットのaddress領域に格納されているベクタを取得する。そして、宛先コア判定部124は、選択したレジスタにおける取得したベクタに対応するフラグ格納欄のフラグをオンにする。これにより、宛先コア判定部124は、宛先のコア番号に対してベクタで表される優先順位を有する割り込み要求が発生したという情報をベクタ格納部122に格納する。
割込通知部125は、ベクタ格納部122が有する割込要求ベクタレジスタにおけるフラグのオン/オフを確認し、各コア101〜108に対する割り込み要求の発生を検知する。そして、割込通知部125は、割り込み要求を専用線にて、そのレジスタに対応するコア100に通知する。
そして、割込通知部125は、コア100から割り込み要求を受け付ける通知を受信すると、割り込み要求に対応する処理の実行に用いるデータが格納されているメモリ5のアドレスを、割り込み要求を受け付けたコア100に通知する。その後、割込通知部125は、コア100により割り込み要求が受け付けられると、優先順位であるベクタがコア100から読込まれる。この時、割込制御部120は、ベクタ格納部122に格納されている割込要求ベクタレジスタの中から、割り込み要求を受け付けたコア100に対応するレジスタを選択する。そして、割込制御部120は、選択したレジスタの中から読込まれた時点で一番優先度の高いベクタの値をコア100に返す。その後、割込制御部120は、コア100に読込まれたベクタの値をリセットする。例えば、選択したレジスタにおける受け付けられた割り込み要求に対応するフラグが、割込通知部125によりオフにされることで、ベクタの値がリセットされる。
割込通知部125は、ベクタ格納部122に格納された割込要求ベクタレジスタにおけるコア101〜108に対する割り込み要求がなくなるまで、コア101〜108に対して割り込み要求の通知を行う。
処理結果送信部126は、割り込み処理の結果をコア100から受信する。そして、処理結果送信部126は、受信した割り込み処理の結果を、その割り込み処理を要求したCPU2〜4などの要求元へ送信する。例えば、外部ユニット11からの割り込み処理の場合、処理結果送信部126は、入出力インタフェース部110を介して、外部ユニット11に処理結果を送信する。
ここで、以前は、データを伴う割込制御を行っていたため、同時に受付可能な割り込みの数に限界があり、CPU1がビジーとなり割り込み要求を受信できないなどの割り込み失敗というケースが発生することがあった。しかし、近年は、CPU1は、メモリ5を介してデータのやり取りを行い、割込制御部120では、フラグとしてのベクタのやり取りのみを行っているので、失敗するケースが軽減され、割込制御部120からの割り込み要求に対する応答は割り込み成功通知となる。また、既にフラグがオンになっているベクタへの割り込みがあった場合には、CPU1などのハードウェアでは区別ができないため、ハードウェアは、その割り込み要求を無視する。そして、ベクタを排他的な値とすることなどはソフトウェアの責任になる。
コア100は、他のコアへ割り込み要求を行う場合、他のCPUに対するコア間の割り込み要求のパケットを生成する。この時、コア100は、割り込み要求のパケットにベクタを付加する。そして、コア100は、生成した割り込み要求のパケットを割込制御部120へ出力する。
また、コア100は、割り込み要求の通知を割込通知部125から受ける。そして、コア100は、割り込み要求を受け付ける場合、割り込み要求を受け付けることを割込通知部125に通知するとともに、ベクタの読込みを割込制御部120へ通知する。
そして、コア100は、ベクタを読込んだ時点で一番優先度の高いベクタの値を割込制御部120から受ける。そして、コア100は、割込制御部120から受信した割り込み要求のベクタの値から、その割り込み要求が外部ユニット11〜14、21〜24、31〜34、41〜44、又はCPU1〜4のコア101〜108のいずれから送られてきたか、すなわち要求元を特定する。
ここで、外部ユニット11〜14、21〜24、31〜34、41〜44のそれぞれには、固有のベクタが割り当てられている。そこで、コア100は、ベクタの値から、いずれの外部ユニットからの割り込み要求かを容易に特定することができる。
また、外部ユニットに割り当てられている以外のベクタの場合には、コア100は、通知された割り込み要求が他のコアからの割り込み要求であることが分かる。また、コア100は、ベクタの値から通知された割り込み要求がどのCPUのどのコアからの割り込み要求であるかを特定することができる。
次に、コア100は、受信したベクタに対応するメモリ5のアドレスからデータを取得する。そして、コア100は、取得したデータを用いて特定した割り込み要求の要求元に対応する処理を実行する。その後、コア100は、処理結果を割込制御部120の処理結果送信部126へ出力する。
ここで、本実施例では、コア100は、ベクタの値から外部、内部問わず割り込み要求の要求元を判別している。これは他の方法でも良く、例えば、割込制御部120などが、ベクタ毎に発行元のCPU番号やコア番号といった発行元情報やデータアドレスを保持しておき、コア100はその情報を用いて割り込みの要求元を特定することもできる。ただし、その場合、ハードウェアのリソースを大きく消費することになる。
次に、図11を参照して、本実施例に係る割込制御回路による外部ユニットからの割り込み要求に対する割込制御処理について説明する。図11は、外部ユニットからの割り込み要求に対する割込制御処理のフローチャートである。
入出力インタフェース部110のベクタ付加部112は、割り込み要求のパケットを外部ユニット11〜14から受信する(ステップS101)。
ベクタ付加部112は、外部ユニット割込ベクタ記憶部111から割り込み要求が入力された入出力ポートに対応するベクタを取得する(ステップS102)。
ベクタ付加部112は、取得したベクタを割り込み要求のパケットに付加する(ステップS103)。そして、ベクタ付加部112は、ベクタを付加した割り込み要求のパケットを調停部113へ送信する。調停部113は、割り込み要求のパケットが衝突しないようにタイミングを調整して割込制御部120へ送信する。
割込制御部120の宛先CPU判定部123は、割込受付部121を介して割り込み要求のパケットを入出力インタフェース部110から受信する。そして、宛先CPU判定部123は、割り込み要求のパケットで指定されているCPU宛に割り込み要求のパケットを出力する。ここでは、自CPUに対しての割り込み要求である場合とし、宛先CPU判定部123は、割り込み要求のパケットを宛先コア判定部124へ出力する。宛先コア判定部124は、受信した割り込み要求のパケットで指定されているコアを特定し、さらにその割り込み要求のベクタを取得する。そして、宛先コア判定部124は、ベクタ格納部122に格納されている割込要求ベクタレジスタの中の特定したコアに対応するレジスタにおける、取得したベクタのフラグをオンにして、指定されたベクタの割り込み要求があったことを書き込む(ステップS104)。
割込通知部125は、ベクタ格納部122に格納された割込要求ベクタレジスタから各コア100に対して割り込み要求が発生しているか否かを特定する。そして、割込通知部125は、割り込み要求の対象のコア100に対して、割り込みを通知する(ステップS105)。コア100は、ベクタの読出しを割込制御部120に対して行う。割込制御部120は、ベクタの読込みを通知したコア100から受信する。そして、割込制御部120は、割込要求を受けた時点で最も優先順位が高いベクタの値をコア100に対して返信する。この時、割込制御部120は、コア100に対して返信したレジスタ中のベクタのフラグをリセットする。
コア100は、受信したベクタの値から、外部ユニット11〜14の中の割り込み要求の要求元を特定する(ステップS106)。
そして、コア100は、受信したベクタの値からデータを取得し、割り込み特定した要求元に応じた処理を実行する(ステップS107)。ここで、図11のフローでは、一つの割込要求に対する処理の流れについて説明している。実際には、レジスタの中のフラグが複数経っている場合、すなわち、割込要求が複数起きている場合には、割込制御部120は、コア100に対して継続して割り込み通知を送り続ける。
次に、図12を参照して、本実施例に係る割込制御回路によるコア間の割り込み要求に対する割込制御処理について説明する。図12は、コア間の割り込み要求に対する割込制御処理のフローチャートである。
割込制御部120の割込受付部121は、割り込み要求のパケットをコア100から受信する(ステップS201)。そして、割込受付部121は、受信した割り込み要求のパケットを宛先CPU判定部123へ送信する。
宛先CPU判定部123は、割り込み要求のパケットを割込受付部121から受信する。そして、宛先CPU判定部123は、割り込み要求のパケットで指定されているCPU宛に割り込み要求のパケットを出力する。ここでは、自CPUに対しての割り込み要求である場合とし、宛先CPU判定部123は、割り込み要求のパケットを宛先コア判定部124へ出力する。宛先コア判定部124は、受信した割り込み要求のパケットで指定されているコアを特定し、さらにその割り込み要求のベクタを取得する。そして、宛先コア判定部124は、ベクタ格納部122に格納されている割込要求ベクタレジスタの中の特定したコアに対応するレジスタにおける、取得したベクタのフラグをオンにして、指定されたベクタの割り込み要求があったことを書き込む(ステップS202)。
割込通知部125は、ベクタ格納部122に格納された割込要求ベクタレジスタから各コア100に対して割り込み要求が発生しているか否かを特定する。そして、割込通知部125は、割り込み要求の対象のコア100に対して、割り込みを通知する(ステップS203)。コア100は、ベクタの読出しを割込制御部120に対して行う。割込制御部120は、ベクタの読込みを通知したコア100から受信する。そして、割込制御部120は、割込要求を受けた時点で最も優先順位が高いベクタの値をコア100に対して返信する。この時、割込制御部120は、コア100に対して返信したレジスタ中のベクタのフラグをリセットする。
コア100は、受信したベクタの値から割り込み要求の要求元を特定する(ステップS204)。
さらに、コア100は、受信したベクタの値からアドレスからデータを取得し、割り込み特定した要求元に応じた処理を実行する(ステップS205)。
以上に説明したように、本実施例に係る割込制御回路は、割り込み要求を受信した入出力ポートに対応するベクタを、受信した割り込み要求に付加しレジスタに格納する。そして、コアは、割り込み要求のベクタを用いてその割り込み要求を発行した外部ユニットを特定して、特定した外部ユニットに応じた処理を行うことができる。このように、本実施例に係る割込制御回路では、割り込み要求を行った外部ユニットを簡単に特定することができる。
また、従来から割り込み要求に付加されている、割り込みの優先度を表す情報であるベクタを、外部ユニットを特定する情報として用いるので、従来の割込制御回路に少しの変更を加えるだけで、外部ユニット特定の機能を追加できる。具体的には、ソフトウェアで行う処理としては、ポート毎のベクタの値を設定する処理が増える程度で、外部ユニット特定の機能が実現できる。この点、ソフトウェアが、割り込み要求に識別情報を付加し、且つ割り込み要求の処理時に付加した識別情報を用いて外部ユニットの特定を行う従来技術では、各処理をソフトウェアで全て行わなくてはならず、ソフトウェアに多くの追加及び変更が必要である。このように、本実施例に係る割込制御回路は、従来技術に比べて、外部ユニット特定の機能の追加が容易であり、製造コストも抑えることができる。
また、以上の説明では、外部ユニット11〜14からの割り込み要求に対応するデータをメモリ5に格納し、コア100はメモリ5からデータを読み出して処理を行っているがデータの格納場所は他の場所でもよい。例えば、外部ユニット11〜14からの割り込み要求に対応するデータが小さく、割り込み要求の数も多くなければ、割込制御部120がデータを記憶しておき、コア100から割り込み要求を受け付ける通知を受けて、割込制御部120がコア100にデータを送信してもよい。
1〜4 CPU
5 メモリ
11〜14,21〜24,31〜34,41〜44 外部ユニット
101〜108 コア
110 入出力インタフェース
111 外部ユニット割込ベクタ記憶部
112 ベクタ付加部
113 調停部
120 割込制御部
121 割込受付部
122 ベクタ格納部
123 宛先CPU判定部
124 宛先コア判定部
125 割込通知部
126 処理結果送信部

Claims (5)

  1. 異なる外部ユニットが接続された複数のポートを有し、前記ポートで受信した前記外部ユニットからの割り込み要求に対応する処理を実行するために参照されるアドレスを格納する領域に、前記ポート毎に異なる予め決められた識別情報を付加する入出力インタフェース部と、
    分割領域毎に各前記識別情報に対応する領域が設けられたレジスタと、
    前記分割領域の何れかが割り当てられ、前記識別情報に基づいて、通知を受けた順に割り当てられた前記分割領域に格納された割り込み要求に対応する処理を実行する複数の処理実行部と、
    前記入出力インタフェース部により受信された前記割り込み要求において指定された前記処理実行部に割り当てられた前記分割領域に該割り込み要求の情報を格納し、前記分割領域に格納された割り込み要求の前記識別情報に含まれる優先度順に、前記分割領域に対応する前記処理実行部に割り込み要求を通知し、前記入出力インタフェース部により受信された割り込み要求において他の割込制御回路による処理が指定されている場合、指定された他の割り込み制御回路に対して該受信した割り込み要求を送信する割込制御部と
    を備えたことを特徴とする演算処理装置。
  2. 前記割込制御部は、前記レジスタ上の前記識別情報に割り当てられた位置に該識別情報が付加された割り込み要求を受けたことを表すフラグを立てることを特徴とする請求項1に記載の演算処理装置。
  3. 前記割込制御部は、前記識別情報が付加された割り込み要求を他の割込制御回路から受信し、該受信した割り込み要求に付加されている識別情報に基づいて、該受信した割り込み要求の情報をレジスタに格納することを特徴とする請求項1又は2に記載の演算処理装置。
  4. 演算処理装置と複数の外部ユニットを有する情報処理装置において、
    前記演算処理装置は、
    前記外部ユニットを接続する複数のポートを有し、前記ポートで受信した前記外部ユニットからの割り込み要求に対応する処理を実行するために参照されるアドレスを格納する領域に、前記ポート毎に異なる予め決められた識別情報を付加する入出力インタフェース部と、
    分割領域毎に各前記識別情報に対応する領域が設けられたレジスタと、
    前記分割領域の何れかが割り当てられ、前記識別情報に基づいて、通知を受けた順に割り当てられた前記分割領域に格納された割り込み要求に対応する処理を実行する複数の処理実行部と、
    前記識別情報に基づいて、前記入出力インタフェース部により受信された前記割り込み要求において指定された前記処理実行部に割り当てられた前記分割領域に該割り込み要求の情報を格納し、前記分割領域に格納された割り込み要求の前記識別情報に含まれる優先度順に、前記分割領域に対応する前記処理実行部に割り込み要求を通知し、前記入出力インタフェース部により受信された割り込み要求において他の割込制御回路による処理が指定されている場合、指定された他の割込制御回路に対して該受信した割り込み要求を送信する割込制御部とを備え、
    前記外部ユニットは、
    それぞれ異なる前記ポートに接続される
    ことを特徴とする情報処理装置。
  5. 複数の分割領域を有するレジスタ及び前記分割領域がそれぞれに割り当てられた複数の処理実行装置を有する情報処理装置における割込制御方法であって、
    異なる外部ユニットが接続された複数のポートで受信した前記外部ユニットからの割り込み要求に対応する処理を実行するために参照されるアドレスを格納する領域に、前記ポート毎に異なる予め決められた識別情報を付加し、
    前記識別情報に基づいて、前記処理実行装置毎に分割領域を有し、且つ前記分割領域に各前記識別情報に対応する領域が設けられたレジスタの中の、受信した前記割り込み要求において指定された前記処理実行装置に対応する前記分割領域に該割り込み要求の情報を格納し、
    前記分割領域に格納された割り込み要求の前記識別情報に含まれる優先度順に、前記分割領域に対応する前記処理実行装置に割り込み要求を通知し、
    前記識別情報に基づいて、通知を受けた順に割り当てられた前記分割領域に格納された割り込み要求に対応する処理を前記処理実行装置に実行させ、
    受信した割り込み要求において他の割込制御回路による処理が指定されている場合、指定された他の割込制御回路に対して該受信した割り込み要求を送信する
    ことを特徴とする割込制御方法。
JP2012179921A 2012-08-14 2012-08-14 演算処理装置、情報処理装置及び割込制御方法 Expired - Fee Related JP6106986B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012179921A JP6106986B2 (ja) 2012-08-14 2012-08-14 演算処理装置、情報処理装置及び割込制御方法
US13/922,288 US20140052879A1 (en) 2012-08-14 2013-06-20 Processor, information processing apparatus, and interrupt control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012179921A JP6106986B2 (ja) 2012-08-14 2012-08-14 演算処理装置、情報処理装置及び割込制御方法

Publications (2)

Publication Number Publication Date
JP2014038438A JP2014038438A (ja) 2014-02-27
JP6106986B2 true JP6106986B2 (ja) 2017-04-05

Family

ID=50100893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012179921A Expired - Fee Related JP6106986B2 (ja) 2012-08-14 2012-08-14 演算処理装置、情報処理装置及び割込制御方法

Country Status (2)

Country Link
US (1) US20140052879A1 (ja)
JP (1) JP6106986B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996145B2 (en) * 2013-11-18 2018-06-12 Nxp B.V. Shared interrupt multi-core architecture for low power applications
JP7070023B2 (ja) * 2018-04-23 2022-05-18 富士通株式会社 演算処理装置および演算処理装置の制御方法
JP7278205B2 (ja) * 2019-12-12 2023-05-19 三菱電機株式会社 演算装置および演算装置の監視方法
CN119182817B (zh) * 2024-09-04 2025-10-17 浙江吉利控股集团有限公司 Sse流式输出的中断控制方法、装置、服务器及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338713A (ja) * 1998-05-26 1999-12-10 Oki Electric Ind Co Ltd コンピュータシステム
DE102004042170B4 (de) * 2004-08-31 2009-02-19 Advanced Micro Devices, Inc., Sunnyvale Nachrichtenbasierte Interrupttabelle
JP2007206955A (ja) * 2006-02-01 2007-08-16 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP5320140B2 (ja) * 2009-04-14 2013-10-23 株式会社日立製作所 計算機システム、割込み中継回路及び割込み中継方法

Also Published As

Publication number Publication date
US20140052879A1 (en) 2014-02-20
JP2014038438A (ja) 2014-02-27

Similar Documents

Publication Publication Date Title
TWI447650B (zh) 中斷分佈方案
US8200875B2 (en) Processing and forwarding of message-signaled interrupts
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
KR102851372B1 (ko) 복사 명령 처리 시스템 및 방법
US9009377B2 (en) Edge-triggered interrupt conversion in a system employing level-sensitive interrupts
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
JP2008176360A (ja) マルチプロセッサシステム
JP6106986B2 (ja) 演算処理装置、情報処理装置及び割込制御方法
CN107636630A (zh) 中断控制器
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
CN103309831A (zh) 数据传输装置和数据传输方法
JPWO2012124431A1 (ja) 半導体装置
JP5395838B2 (ja) マルチコアシステム
KR100606163B1 (ko) 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법
JP6206524B2 (ja) データ転送装置、データ転送方法、プログラム
US8966149B2 (en) Emulation of an input/output advanced programmable interrupt controller
EP3660675B1 (en) Sharing data by a virtual machine
JP2019016101A (ja) 情報処理システム、情報処理装置、および情報処理システムの制御方法
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
JP7003752B2 (ja) データ転送装置、データ転送方法、プログラム
WO2007039933A1 (ja) 演算処理装置
JP4791341B2 (ja) データ転送システム
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
WO2009113571A1 (ja) 複数の基盤ソフトウェアを動作可能な情報処理装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6106986

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees