JP2019126034A - 仮想割り込みサービスプロバイダのためのサービス要求割り込みルータ - Google Patents

仮想割り込みサービスプロバイダのためのサービス要求割り込みルータ Download PDF

Info

Publication number
JP2019126034A
JP2019126034A JP2019004437A JP2019004437A JP2019126034A JP 2019126034 A JP2019126034 A JP 2019126034A JP 2019004437 A JP2019004437 A JP 2019004437A JP 2019004437 A JP2019004437 A JP 2019004437A JP 2019126034 A JP2019126034 A JP 2019126034A
Authority
JP
Japan
Prior art keywords
service request
virtual
isps
arbitration
isp
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
JP2019004437A
Other languages
English (en)
Other versions
JP7233932B2 (ja
Inventor
アシュリー ファラル グレン
Ashley Farrall Glenn
アシュリー ファラル グレン
ヘルヴィヒ フランク
Hellwig Frank
ヘルヴィヒ フランク
ヴィラー ゲアハート
Wirrer Gerhard
ヴィラー ゲアハート
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2019126034A publication Critical patent/JP2019126034A/ja
Application granted granted Critical
Publication of JP7233932B2 publication Critical patent/JP7233932B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • 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
    • 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
    • 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
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2414Routing of interrupt among interrupt handlers in processor system or interrupt controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】仮想割り込みサービスプロバイダのためのサービス要求割り込みルータを提供する。【解決手段】サービス要求割り込みルータは、複数の仮想ISPを有する割り込みサービスプロバイダ(ISP)にマッピングされた割り込みコントローラと、各割り込み信号を対応するサービス要求に変換し、かつそれぞれ自身のサービス要求を複数の仮想ISPのうち1つに配向するように構成された複数のサービス要求ノード(SRN)と、時間スライス方式で複数の仮想ISP間の調停を行い、複数の仮想ISPのそれぞれに対しては、それぞれの仮想ISPに配向されたサービス要求のうちどれが最高優先順位を有するかの調停を行うように構成された調停装置と、を含む。【選択図】なし

Description

背景
サービス要求割り込みルータ(IR)とは、オンチップリソースと割り込みサービスプロバイダ(ISP)との間のインタフェースである。動作中、オンチップリソースは、サービス要求割り込み信号をIRに送信する。IRは、制御情報、例えば優先順位およびISPの割り当てを追加することにより、割り込み信号をISPのためのサービス要求に変換し、各ISPに対し、割り当てられた優先順位に基づいて、各ISPにマッピングされた保留中のサービス要求間の調停を行う。ついで、各ISPがサービス要求に応答する。ISPは、例えば、中央処理ユニット(CPU)またはダイレクトメモリアクセス(DMA)であってよい。
本開示の一態様による、サービス要求割り込みルータ(IR)を備えた調停システムを示す概略図である。 本開示の一態様による、制御レジスタを含むサービス要求ノード(SRN)を示す図である。 A,Bとも、本開示の一態様による、割り込みコントローラ(IC)が中央処理ユニット(CPU)とサービス要求(SR)シーケンスを調整するシステムを示す図である。 本開示の一態様による、割り込みサービスプロバイダ(ISP)の提供のための3つのパイプライン段を有する調停装置を含むサービス要求割り込みルータ(IR)を備えたシステムを示す図である。 本開示の一態様による、3つの仮想割り込みサービスプロバイダ(vISP)によって共有される調停装置の調停シーケンスのパイプライン段を示す図である。 本開示の一態様による、2つの中央処理ユニットすなわちCPU0(VM0,VM2)およびCPU1(VM0,VM1)のための保留中のサービス要求(SR)を有する共有のシーケンスを含む、調停装置Arbの調停シーケンス600のパイプライン段を示す図である。 本開示の一態様による、サービス要求割り込み信号を調停する方法を示すフローチャートである。
本開示は、1つの割り込みコントローラ、複数のサービス要求ノード(SRN)および1つの調停装置を含むサービス要求割り込みルータ(IR)に関する。割り込みコントローラは、複数の仮想ISPを有する1つの割り込みサービスプロバイダ(ISP)にマッピングされている。複数のSRNは、各割り込み信号を対応するサービス要求に変換し、かつそれぞれ、自身のサービス要求を複数の仮想ISPのうち1つに配向するように構成されている。調停装置は、時間スライス方式で複数の仮想ISP間の調停を行い、複数の仮想ISPのそれぞれに対しては、これらに配向されたサービス要求のうちどれが最高優先順位を有するかの調停を行うように構成されている。したがって、単独の調停装置によって複数の仮想ISPの調停を行うことができる。
図1には、本開示の一態様による、サービス要求割り込みルータ(IR)110を備えたシステムオンチップ(SoC)であってよいシステム100の概略図が示されている。
IR110は、1つもしくは複数のサービス要求ノードSRN0〜SRNm、1つもしくは複数の調停装置Arb1〜Arbvおよび1つもしくは複数の割り込みコントローラIC0〜ICnを含む。IR110が実行可能なタスクは、例えば保留中のサービス要求割り込み信号を有するサービス要求ノードSRN0〜SRNm間での優先順位の割り当て、割り込みコントローラIC0〜ICnへのサービス要求ノードSRN0〜SRNmの割り当て、および同じ割り込みサービスプロバイダ(ISP)に割り当てられたサービス要求ノードSRN0〜SRNm間の調停を含む。
割り込みコントローラ(IC)は、複数の割り込み源を1つもしくは複数のラインに結合する装置である。各割り込みサービスプロバイダ(ISP)のそれぞれにマッピングされた1つずつの専用の割り込みコントローラIC0〜ICnが存在しており、これらはサービス要求を実行するオンチップリソースである。ISPは、中央処理ユニット(CPU)またはダイレクトメモリアクセス(DMA)であってよい。CPUはハイパーバイザサポートを有し、それぞれ自身のオペレーティングシステムを有する仮想CPUである複数の仮想マシン(VM)を実行することができる。さらに、当該CPUは、VMをスケジューリングする仮想マシンモニタ(VMM、ハイパーバイザとしても知られる)を実行する。各VMおよびVMMは独立のISPであり、IRは、VMおよびVMMのそれぞれに対し、独立にまたは並列に、保留中のサービス要求全ての間の調停を行う。IRには、適正なスケジューリングのために、各VMおよびVMMに対して最高優先順位を有するサービス要求が既知とならなければならない。
各サービス要求割り込み信号IS0〜ISmに対してサービス要求ノードSRN0〜SRNmが存在している。サービス要求ノードSRN0〜SRNmは、各サービス要求割り込み信号IS0〜ISmを、割り込みとしても知られる、対応するサービス要求に変換するように構成されている。各サービス要求ノードSRN0〜SRNmは、サービス要求制御レジスタを含み、例えばサービス要求優先順位番号(SRPN)およびサービスタイプ(TOS)を考慮してコンフィグレーション可能である。SRPNは、仮想ISP(すなわちVMMまたはVM)に対するサービス要求の優先順位を定めるレジスタビットによって規定されている。TOSレジスタビットは、サービス要求ノードSRN0〜SRNmを特定の割り込みコントローラIC0〜ICnにマッピングし、例えば0のTOSは割り込みコントローラIC0にマッピングされる。サービス要求ノードSRN0〜SRNmのそれぞれは、自身のサービス要求を、複数の仮想ISP(すなわちVMMまたはVM)のうち1つへ配向するように構成可能である。
調停装置Arb1〜Arbvは、それぞれ、時間スライス方式でハードウェアISP(CPUまたはDMA)および仮想ISP(VMまたはVMM)間の調停を行い、ハードウェアISPまたは仮想ISPのそれぞれに対しては、これらに配向されたサービス要求のうちどれが最高優先順位を有するかの調停を行うように構成されている。時間スライス方式とは、時間多重シーケンスまたはラウンドロビン方式としても知られている。一態様では、調停装置Arb1〜Arbvは、逐次シーケンスで、保留中のサービス要求を有するISPおよび仮想ISPのみの間の調停を行うように構成可能である。他の態様では、調停装置Arb1〜Arbvは、逐次シーケンスで、保留中のサービス要求が存在するか否かにかかわらず、仮想ISP全ての間の調停を行うように構成可能である。
サービス要求割り込みルータ(IR)110の面積を低減するために、複数の割り込みコントローラIC間で1つの調停装置を共有する、共有の調停装置Arbを構成可能である。例えば、図1の調停装置Arb1は割り込みコントローラIC0,IC1によって共有されており、これにより、時間スライス方式で複数のISPおよびその仮想ISP間の調停が行われ、ISPおよび仮想ISPのそれぞれに対しては、これらに配向されたサービス要求のどれが最高優先順位を有するか、つまりどのサービス要求が当該調停の「勝者」となるかの調停が行われる。
代替的に、調停装置Arbは、割り込みコントローラIC0〜ICnのうち1つに専用に割り当てることもできる。例えば、調停装置Arb2は割り込みコントローラIC2に専用に割り当てられており、調停装置Arbvは割り込みコントローラICnに専用に割り当てられている。
動作中、IR110がサービス要求割り込み信号IS0〜ISmを各サービス要求ノードSRN0〜SRNmで受信すると、これらのサービス要求ノードSRN0〜SRNmは、サービス要求を提供する割り込みコントローラIC0〜ICnおよびこれに関連するISP(CPU0〜CPU2,…,DMA,VMMx,VMy)にマッピングされる。各調停装置Arbは、時間スライス方式で仮想ISP間の調停を行い、仮想ISPのそれぞれに対しては、これらに配向されたサービス要求(SR)のうちどれが最高優先順位を有するかの調停を行う。各割り込みコントローラICは、SR信号によって、どのSRが当該調停ラウンドの勝者であるかを、関連する仮想ISPに報知する。準備が完了すると、ISPまたは仮想ISPは、割り込みコントローラICに肯定応答信号(ACK)によって応答し、ついでSRを提供する。ISPソフトウェアには、SRPNおよびTOSに基づいてSRの提供が既知となる。
図2には、本開示の一態様による、サービス要求制御レジスタ(SRCR)を含むサービス要求ノード(SRN)200が示されている。
サービス要求制御レジスタ(SRCR)は、SRの優先順位およびハードウェアISP(CPUまたはDMA)または仮想ISPの割り当てのコンフィグレーションに用いられる。より詳細には、各SRN200は、SRの優先順位およびサービスタイプ(TOS)を考慮してコンフィグレーション可能である。SRの優先順位は、サービス要求優先順位番号(SRPN)を含むことができる。TOSは、どの割り込みコントローラICにサービス要求ノードSRNがマッピングされるか、例えばTOS0がIC0にマッピングされることおよびTOS1がIC1にマッピングされることを規定する。
図示の例のSRCRは32ビットを有するが、本開示はこれに限定されない。セットビット/クリアビットは、サービス要求ノードSRNのトリガ/クリアに用いられる。オーバフロービットは、SRの保留中に新たな割り込みが生じたことを表す。イネーブルビット/ディスエーブルビットは、サービス要求ノードSRNをイネーブル/ディスエーブルする。ステータスビットは、SRが保留されている(例えば「1」にセットされている)ことまたは保留されていない(例えば「0」にセットされている)ことを表す。スティッキービットは、サービス要求ノードSRNがセットビット/クリアビットによって修正されたことを表す。
図3のA,Bには、本開示の一態様による、割り込みコントローラ(IC)310が中央処理ユニット(CPUx)320とサービス要求(SR)のシーケンスを調整するシステム300が示されている。CPU320は、1つの仮想マシンマネージャ(VMM)および3つの仮想マシン(VM0,VM1,VM2)を含む。VM0,VM2に対する保留中のサービス要求が存在しており、しばらく後、図3のBに示されている時点では、VM1に対する新たなサービス要求が保留されている。
図3のAには、調停装置Arbが固定の逐次シーケンスで仮想ISP全ての間の調停を行うように構成されたシーケンスが示されている。したがって、当該調停シーケンスは、VMM,VM0,VM1,VM2,VMM,VM0,VM1,VM2,…となっている。初期的にはVM0,VM2のみに対するサービス要求しか保留されていないが、調停装置Arbは、仮想ISPの全て、すなわちVMM,VM0,VM1,VM2間の調停を行う。VMMまたはVMに対してサービス要求が保留されていない場合、シーケンスにおける対応するスロットは空いている。
図3のBには、調停装置Arbが保留中のサービス要求を有する仮想ISPのみの間で調停を行うように構成されたシーケンスが示されている。これにより待ち時間が低減される。したがって、当該調停シーケンスは、VM0,VM2,VM0,VM2,VM0,VM2,VM0,VM1,VM2…となっている。このケースでは、調停装置Arbは、初期的にはVM0,VM2のみの間で調停を行うが、所定の時間後、VM1に対する追加のサービス要求が追加されると、VM1を含めた調停を行うようになる。当該シーケンスには、サービス要求が保留されていない仮想ISPは含まれない。
図4には、本開示の一態様による、ISP420を提供する3つのパイプライン段を有する調停装置を含むIR410を備えたシステム400が示されている。
IR410は、2つの中央処理ユニットCPU0,CPU1およびそのVMM,VMの間で共有される調停装置を有する。各CPU0,CPU1は、VMM,VM0,VM1,VM2を含む。
調停装置Arbは、図1に示されている調停装置Arb1と等価であるが、これには、保留中のSRを有する多数のサービス要求ノードSRN0〜SRNmを良好に管理するためのパイプライン段が構成されている。1つのパイプライン段は1サイクルと等価であり、この例では、各調停ラウンドが3サイクルを有する。
調停装置Arbは、どのサービス要求ノードSRN0〜SRN9が割り込みコントローラIC0,IC1にマッピングされているかを識別する。より詳細には、IC0に仮想ISP(VMM,VM0,VM1,VM2)がマッピングされており、IC1に仮想ISP(VMM,VM0,VM1,VM2)がマッピングされている。ついで、調停装置Arbは、各仮想ISPに対し、どのサービス要求ノードSRNが最高優先順位を有するか、つまりどのサービス要求ノードSRNが当該調停ラウンドの「勝者」であるかを判定する。ここでの調停は、物理的制約のため、複数のシステムにおいて1サイクルでは達成されない。よって、この例での調停装置Arbは、各仮想ISPに対し、上述したように、時間多重シーケンスを用いた3つのパイプライン段として構成されている。
割り込みコントローラIC0,IC1のそれぞれは、勝者であるサービス要求ノードSRNのためのサービス要求(SR)を、段3から関連する仮想割り込みサービスプロバイダISPへ送信する。仮想ISPは、SRを承認できるようになるまでに幾らかの時間を要することがある。仮想ISPの準備が完了すると、この仮想ISPは、肯定応答信号ACKによって割り込みコントローラIC0またはIC1に応答する。ついで割り込みコントローラIC0またはIC1は、SRおよび関連するサービス要求ノードSRNをクリアし、SRはもはや保留中ではなくなる。SR,ACKは、インデクス番号およびSRPNを用いて、サービス要求ノードSRNを識別する。
図4には3段のパイプライン構成が示されているが、本開示はこれに限定されない。任意の数の段を適切に設けることができる。
図5には、本開示の一態様による、同じCPU2の3つの仮想ISPによって共有される調停装置Arb2のための調停シーケンス500のパイプライン段が示されている。
パイプラインは、図示されているようにそれぞれ水平方向の3つの行として、3つの段または3つのサイクルを有する。段1〜3は、図4に示されている調停シーケンス段と等価である。各サイクルの段1は、種々の仮想ISP(VM0,VM1,VM2)に切り替え可能である。第1のサイクルでは、調停装置Arb2がVM0に対する調停ラウンドを開始する。第2のサイクルでは、調停装置Arb2がVM2に対する新たな調停ラウンドの段1のパイプライン入力を開始し、その間、VM0に対する第1の調停ラウンドは段2で行われる。第3のサイクルでは、調停装置Arb2が、段3で、第1の調停ラウンドの勝者であるサービス要求ノードSRNを判定する。調停装置Arb2がVM2に対する調停ラウンドを開始し、VM0に対する調停ラウンドを保留している場合、調停装置Arb2は、上述したように、時間多重方式で仮想ISPの調停を行う。また、調停装置Arb2がVM1に対する調停ラウンドを開始し、VM0,VM2に対する調停ラウンドを保留している場合、調停装置Arb1は、上述したように、時間多重方式で仮想ISPの調停を行う。
図6には、本開示の一態様による、2つの中央処理ユニット(CPU0,CPU1)およびその仮想ISP(CPU0.VM0,CPU0.VM2,CPU1.VM0,CPU1.VM1)のための保留中のサービス要求(SR)を有する共有のシーケンスを含む、調停装置Arb1の調停シーケンス600のパイプライン段が示されている。
調停装置Arb1は、CPU0.VM0に対する保留中のサービス要求(SR)を有するサービス要求ノードSRN間の調停の段1を開始し、この調停は上述したように各パイプライン段を移行していく。ついで、調停装置Arb1は、CPU1.VM0に対する保留中のサービス要求割り込み信号を有するサービス要求ノードSRN間の調停の段1を開始し、この調停も3つの段を移行していく。同様に、調停装置Arbは、CPU0.VM2に対する保留中のサービス要求割り込み信号を有するサービス要求ノードSRN間の調停の段1を開始し、この調停も3つの段を移行していく。さらに、段2で段1の勝者であるサービス要求ノードSRN間の調停が行われ、段3で段2の勝者であるサービス要求ノードSRN間の調停が行われ、段3の端で、関連する仮想ISPに対する最高優先順位を有するサービス要求ノードSRNが、割り込みコントローラICのSR送信により、関連する仮想ISPに明らかとなる。なお、当該調停は、時間多重シーケンスで実行可能である。
優先順位ベースの調停を実行可能である。言い換えれば、調停装置Arbは、1つの仮想ISPに他に優る優先順位を供給することができる。当該優先順位は、保留中のSRに依存していてもよいし、またはこれから独立であってもよい。例えば、優先される1つの仮想ISPがVMMである場合、調停装置Arbによって開始される次の調停ラウンドは、VMMに対するものとなる。優先された当該VMMが保留中の1つもしくは複数のSRを有するサービス要求ノードSRNにマッピングされていない場合、調停装置Arbは、他の非優先の仮想ISP、例えばVMに対して、上述したように時間多重シーケンスで調停を行う。
イベントドリブンの再調停も実行可能である。調停装置Arbは、調停ラウンドの新たな勝者を生じさせうるイベントが検出された場合にのみ、仮想ISP間の再調停を行うように構成可能である。既に調停が行われた同じSR間に競合が生じた場合には、既に勝者が既知であるので、再調停は必要ない。このように新たなイベントが生じないかぎり再調停が行われないことにより、大幅なパワー節約が可能となる。こうしたイベントの例として、少なくとも1つのSRNのリコンフィグレーション、少なくとも1つの仮想ISPの新たなSR所有、少なくとも1つの仮想ISPのSR承認、または少なくとも1つの仮想ISPのイネーブル/ディスエーブルが含まれる。もちろん、本開示はこうした例に限定されない。再調停は、調停ラウンドの新たな勝者を生じさせうる任意のイベントによってトリガ可能である。
図7には、本開示の一態様による、サービス要求割り込み信号を調停する方法のフローチャート700が示されている。
最初に、ステップ710で、サービス要求(SR)が割り込みコントローラIC0〜ICn、より詳細には仮想ISPにマッピングされる。
ステップ720で、調停装置Arbは、仮想ISP間の調停を行い、仮想ISPのそれぞれに対しては、これらに配向されたSRのうちどれが最高優先順位を有するかの調停を行う。上述したように、当該調停は、時間多重シーケンスで、フレキシブルにまたは固定に実行可能である。
任意の手段として、ロックステップ調停を実行し、調停装置Arb内の誤りを監視することもできる。より詳細には、(図示されていない)ロックステップ調停装置が調停装置Arbに対して並列に結合されている。ステップ730で、ロックステップ調停が上記調停と並列に実行され、ロックステップ調停装置および調停装置Arbの双方が同時に同じ入力を受信する。ロックステップ調停装置および調停装置Arbが同じクロックサイクルで同じ出力を供給しない場合、ステップ740で、誤りが検出される。当該誤りは調停装置Arb内かつ/またはロックステップ調停装置内で生じたものでありうる。こうしたロックステップ調停は、一般に、安全性にとって重要と考えられる仮想ISPの調停を行う調停装置Arbに用いられる。ロックステップ調停装置は実質的には調停装置Arbの複製であるので、本開示において個別の詳細な説明は不要とする。代替的に、ロックステップ調停装置は、安全性検査のロバスト性を高めるため、上記調停装置に対して相違していてよい。
さらに任意の手段として、特定多数決をともなうトリプルロックステップ調停を実行し、調停装置Arb内の誤りを監視することもできる。より詳細には、(図示されていない)第1のロックステップ調停装置および第2のロックステップ調停装置のそれぞれが、調停装置Arbに対して並列に結合されている。ステップ750で、第1のロックステップ調停および第2のロックステップ調停のそれぞれが上記調停と並列に実行され、第1のロックステップ調停装置および第2のロックステップ調停装置ならびに調停装置Arbのそれぞれが同時に同じ入力を受信する。第1のロックステップ調停装置および第2のロックステップ調停装置ならびに調停装置Arbのいずれかが同じクロックサイクルで同じ出力を供給しない場合、ステップ760で、誤りが検出される。当該誤りは、調停装置Arb内ならびに第1のロックステップ調停装置内および第2のロックステップ調停装置内のいずれかで生じたものでありうる。ステップ770で、3つの出力のうち同じ出力を有する2つが正しいと見なされ、異なる出力を有する調停装置が誤りを有すると見なされる。こうしたトリプルロックステップ調停は、一般に、安全性にとって重要と考えられる仮想ISPを調停する調停装置Arbに用いられる。2つのロックステップ調停装置のそれぞれは実質的に調停装置Arbの複製であるので、本開示において個別の詳細な説明は不要とする。代替的に、調停装置および2つのロックステップ調停装置は、安全性検査のロバスト性を高めるため、相互に相違していてよい。
複数のVMおよび1つのVMMを有するCPUに共有される調停装置により、説明したように、ルーティングの複雑性が低減され、チップ面積が低減され、さらに電力消費が低減される。
特定の態様を図示して説明したが、当該分野の通常の能力を有する者であれば、本開示の観点から逸脱することなく、種々の代替構成および/または等価構成を図示および説明した特定の実施形態と置換することができる。本開示は、説明した特定の態様の任意の適用形態または変更形態をカバーすることを意図している。

Claims (22)

  1. サービス要求割り込みルータであって、
    複数の仮想ISPを有する割り込みサービスプロバイダ(ISP)にマッピングされた割り込みコントローラと、
    各割り込み信号を対応するサービス要求に変換し、かつそれぞれ、自身のサービス要求を前記複数の仮想ISPのうち1つに配向するように構成された複数のサービス要求ノード(SRN)と、
    時間スライス方式で前記複数の仮想ISP間の調停を行い、前記複数の仮想ISPのそれぞれに対しては、前記それぞれの仮想ISPに配向されたサービス要求のうちどれが最高優先順位を有するかの調停を行うように構成された調停装置と、
    を含むサービス要求割り込みルータ。
  2. 前記サービス要求割り込みルータは、さらに、それぞれ複数のISPにマッピングされた複数の割り込みコントローラを含み、
    前記複数のSRNのそれぞれは、自身のサービス要求を、複数のISPのうち1つに、また複数のISPのうち1つが複数の仮想ISPを有する場合には前記複数の仮想ISPのうち1つに配向するように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  3. 前記サービス要求割り込みルータは、さらに、前記複数の割り込みコントローラのそれぞれに割り当てられた専用の調停装置を含む、
    請求項2記載のサービス要求割り込みルータ。
  4. 前記サービス要求割り込みルータは、さらに、調停装置を含み、
    前記調停装置は、前記複数の割り込みコントローラによって共有され、時間スライス方式で前記複数のISPおよびその仮想ISP間の調停を行い、前記複数のISPおよび仮想ISPのそれぞれに対しては、前記それぞれのISPおよび仮想ISPに配向されたサービス要求のうちどれが最高優先順位を有するかの調停を行うように構成されている、
    請求項2記載のサービス要求割り込みルータ。
  5. 前記調停装置は、逐次シーケンスで、保留中のサービス要求を有するISPおよび仮想ISPのみの間の調停を行うように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  6. 前記複数の仮想ISPのうち少なくとも1つは、仮想マシンモニタ(VMM)またはハイパーバイザである、
    請求項1記載のサービス要求割り込みルータ。
  7. 前記複数の仮想ISPのうち少なくとも1つは、仮想マシン(VM)である、
    請求項1記載のサービス要求割り込みルータ。
  8. 前記調停装置は、逐次シーケンスで、前記複数の仮想ISPの間の調停を行うように構成されている、
    請求項7記載のサービス要求割り込みルータ。
  9. 前記調停装置は、逐次シーケンスで、前記複数の仮想ISPの全ての間の調停を行うように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  10. 前記調停装置は、逐次シーケンスで、保留中のサービス要求を有する仮想ISPのみの間の調停を行うように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  11. 前記ISPは、仮想マシンモニタ(VMM)サポートを有する中央処理ユニット(CPU)である、
    請求項1記載のサービス要求割り込みルータ。
  12. 前記ISPは、ダイレクトメモリアクセス(DMA)である、
    請求項1記載のサービス要求割り込みルータ。
  13. 前記調停装置は、少なくとも1つのSRNがリコンフィグレーションされること、少なくとも1つの仮想ISPが新たなサービス要求を有すること、少なくとも1つの仮想ISPがサービス要求を承認すること、および少なくとも1つの仮想ISPがイネーブル/ディスエーブルされることを含むグループから選択されるイベントが発生した場合にのみ、前記複数の仮想ISPの再調停を行うように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  14. 前記サービス要求割り込みルータは、さらに、前記調停装置に対して並列に結合されたロックステップ調停装置を含み、
    前記ロックステップ調停装置と前記調停装置とが異なる出力を供給する場合、前記調停装置および前記ロックステップ調停装置の少なくとも一方の誤りが検出される、
    請求項1記載のサービス要求割り込みルータ。
  15. 前記サービス要求割り込みルータは、さらに、少なくとも2つのロックステップ調停装置を含み、前記少なくとも2つのロックステップ調停装置は、それぞれ前記調停装置に対して並列に結合されて設けられており、
    前記調停装置および前記ロックステップ調停装置のうち少なくとも1つが異なる出力を供給する場合、特定多数決に基づいて誤りが検出される、
    請求項1記載のサービス要求割り込みルータ。
  16. 前記調停装置は、複数のクロックサイクルにわたって複数の段に保留中のサービス要求を有する仮想ISP間の調停を行うように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  17. 前記割り込みコントローラは、マッピングされた、勝者であるサービス要求に関するISP情報を報知するように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  18. 前記勝者であるサービス要求に関する情報は、サービス要求優先順位番号(SPRN)および前記勝者であるサービス要求の配向先の仮想ISPを含む、
    請求項17記載のサービス要求割り込みルータ。
  19. 前記情報は、さらに、関連するSRNのインデクス番号または誤り検出符号(EDC)情報を含む、
    請求項18記載のサービス要求割り込みルータ。
  20. システムオンチップであって、
    請求項1記載のサービス要求割り込みルータと、
    複数の仮想ISPを有するISPと、
    を含み、
    前記複数の仮想ISPは、仮想マシンモニタ(VMM)および少なくとも1つの仮想マシン(VM)を含む、
    システムオンチップ。
  21. 前記調停装置は、前記複数の仮想ISPのうち少なくとも1つに対し、優先順位に基づいて調停を行うように構成されている、
    請求項1記載のサービス要求割り込みルータ。
  22. 前記複数の仮想ISPのうち優先される少なくとも1つの仮想ISPは、仮想マシンモニタ(VMM)またはスーパーバイザである、
    請求項21記載のサービス要求割り込みルータ。
JP2019004437A 2018-01-16 2019-01-15 仮想割り込みサービスプロバイダのためのサービス要求割り込みルータ Active JP7233932B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/872,216 US10992750B2 (en) 2018-01-16 2018-01-16 Service request interrupt router for virtual interrupt service providers
US15/872,216 2018-01-16

Publications (2)

Publication Number Publication Date
JP2019126034A true JP2019126034A (ja) 2019-07-25
JP7233932B2 JP7233932B2 (ja) 2023-03-07

Family

ID=67068877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019004437A Active JP7233932B2 (ja) 2018-01-16 2019-01-15 仮想割り込みサービスプロバイダのためのサービス要求割り込みルータ

Country Status (3)

Country Link
US (2) US10992750B2 (ja)
JP (1) JP7233932B2 (ja)
DE (1) DE102019100406A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019126897B4 (de) * 2019-10-07 2021-10-28 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten eines interrupts

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183951A (ja) * 2005-12-30 2007-07-19 Intel Corp 仮想プロセッサへの直接的なインタラプトの送信
US20150286596A1 (en) * 2014-04-08 2015-10-08 Infineon Technologies Ag Service request interrupt router with shared arbitration unit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487213B1 (en) * 1998-01-05 2002-11-26 Polytechnic University Methods and apparatus for fairly arbitrating contention for an output port
EP2339476B1 (en) * 2009-12-07 2012-08-15 STMicroelectronics (Research & Development) Limited Interface connecting dies in an IC package
US9436626B2 (en) * 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183951A (ja) * 2005-12-30 2007-07-19 Intel Corp 仮想プロセッサへの直接的なインタラプトの送信
US20150286596A1 (en) * 2014-04-08 2015-10-08 Infineon Technologies Ag Service request interrupt router with shared arbitration unit

Also Published As

Publication number Publication date
US20190222645A1 (en) 2019-07-18
US20210243257A1 (en) 2021-08-05
US10992750B2 (en) 2021-04-27
JP7233932B2 (ja) 2023-03-07
DE102019100406A1 (de) 2019-07-18

Similar Documents

Publication Publication Date Title
JP6571078B2 (ja) メモリにアクセスするための並列処理装置、コンピュータにより実施される方法、システム、コンピュータ可読媒体
US9442870B2 (en) Interrupt priority management using partition-based priority blocking processor registers
US9690719B2 (en) Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
US7814496B2 (en) Method and system for replicating schedules with regard to a host controller for virtualization
US8799908B2 (en) Hardware-enabled lock mediation for controlling access to a contested resource
US11243795B2 (en) CPU overcommit with guest idle polling
JP2008102921A (ja) データ処理システム、ハイパートランスポート環境におけるi/oアダプタのlpar分離方法、およびプログラム記憶デバイス
JPH1097490A (ja) スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置
JP4457047B2 (ja) マルチプロセッサシステム
US10564995B2 (en) Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
Cilku et al. A TDMA-based arbitration scheme for mixed-criticality multicore platforms
WO2012023151A2 (en) I/o virtualization and switching system
US10459747B2 (en) Exitless timer access for virtual machines
JP7233932B2 (ja) 仮想割り込みサービスプロバイダのためのサービス要求割り込みルータ
US9830195B2 (en) Apparatus and method for controlling execution of processes in a parallel computing system
JPH08263312A (ja) バス仲裁方法及びその装置
US9092205B2 (en) Non-interrupting performance tuning using runtime reset
US9575912B2 (en) Service request interrupt router with shared arbitration unit
US9323702B2 (en) Increasing coverage of delays through arbitration logic
JP5641128B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2010092101A (ja) 情報処理装置
US11914536B2 (en) Device and method for sharing resource via bus
JP2013097544A (ja) マルチプロセッサシステム、及びマルチプロセッサシステムの制御方法
García Esteban Isolation QoS Setups to Control Memory Contention on MPSoCs
JP2013073297A (ja) 時分割方式による割り込み制御回路および割り込み制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20220825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230222

R150 Certificate of patent or registration of utility model

Ref document number: 7233932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150