JP7083717B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP7083717B2
JP7083717B2 JP2018137376A JP2018137376A JP7083717B2 JP 7083717 B2 JP7083717 B2 JP 7083717B2 JP 2018137376 A JP2018137376 A JP 2018137376A JP 2018137376 A JP2018137376 A JP 2018137376A JP 7083717 B2 JP7083717 B2 JP 7083717B2
Authority
JP
Japan
Prior art keywords
processor
data
area
descriptor
transmission
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
JP2018137376A
Other languages
English (en)
Other versions
JP2020016913A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2018137376A priority Critical patent/JP7083717B2/ja
Priority to US16/456,317 priority patent/US11079972B2/en
Priority to CN201910623456.6A priority patent/CN110750470A/zh
Publication of JP2020016913A publication Critical patent/JP2020016913A/ja
Application granted granted Critical
Publication of JP7083717B2 publication Critical patent/JP7083717B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は半導体装置及び情報処理システムに関し、例えば、複数のOS(Operating System)で通信回路を共用する半導体装置及び情報処理システムに関する。
マイクロコンピュータ等の半導体装置において、メモリ間又はメモリとIOデバイス間のデータ転送を高速化するために、ダイレクトメモリアクセス(DMA:Direct Memory Access)転送が用いられる。近年、メモリ内に転送対象のデータ格納領域の他に、DMA転送を制御するためのディスクリプタ領域を確保してDMA転送を行うディスクリプタ型のDMA転送が普及しつつある。例えば、特許文献1には、ディスクリプタ型のDMA転送におけるディスクリプタ制御に関する技術が開示されている。
また、特許文献2には、複数のストレージシステムを統合して制御するために、仮想化におけるゲストOSの間でOS間通信に関する技術が開示されている。特許文献2では、ストレージシステムごとにゲストOSが対応し、OS間通信では、共有メモリとIPI(Inter Processor Interrupt)方式による割込みとを用いている。
特開2009‐187313号公報 特開2015‐69352号公報
ここで、互いに異なるOSを実行する複数のプロセッサを備える半導体装置において、1つの通信回路を複数のプロセッサが共用するには、セキュリティを維持する必要がある。そこで、特許文献1及び2にかかる技術を用いて、第1のプロセッサが通信回路を制御し、残りのプロセッサは第1のプロセッサとのOS間通信により当該通信回路を利用することが考えられる。しかしながら、特許文献1及び2にかかる技術を参考にしながら関連技術(後述)を発明しようと考えただけでは、データ量及び通信頻度の増加に伴い、プロセッサの処理負荷が高くなり得るという新たな問題があることを発明者は発見した。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、互いに異なるOSを実行する第1及び第2のプロセッサと、メモリと、第1のプロセッサにより制御される通信回路と、を備える。ここで、メモリは、各OSに対応する第1及び第2のディスクリプタ領域及び第1及び第2のデータ領域を含む。第2のプロセッサは、第2のデータ領域に対応する通信指示情報を第2のディスクリプタ領域に格納したことを第1のプロセッサに対して通知する。第1のプロセッサは、当該通知に応じて第2のディスクリプタ領域に格納された通信指示情報を第1のディスクリプタ領域へ格納し、当該通信指示情報に基づくデータの送受信を通信回路に指示する。
前記一実施の形態によれば、互いに異なるOSを実行する複数のプロセッサを備える半導体装置において、1つの通信回路を複数のプロセッサが共用する場合に、プロセッサの処理負荷を軽減できる。
本実施の形態1にかかる半導体装置のハードウェア構成を示すブロック図である。 本実施の形態1にかかる半導体装置の構成を示す機能ブロック図である。 本実施の形態1にかかるデータ送信処理の流れを示すシーケンス図である。 本実施の形態1にかかるデータ送信処理の流れを示すシーケンス図である。 本実施の形態1にかかるデータ受信処理の流れを示すシーケンス図である。 本実施の形態1にかかるデータ受信処理の流れを示すシーケンス図である。 本実施の形態1にかかるデータ送信処理(複数ディスクリプタ一括コピー)の流れを示すシーケンス図である。 本実施の形態1にかかるデータ送信処理(複数ディスクリプタ一括コピー)の流れを示すシーケンス図である。 本実施の形態1にかかるデータ送信処理(複数ディスクリプタ一括コピー)の流れを示すシーケンス図である。 本実施の形態2にかかる半導体装置の構成を示す機能ブロック図である。 本実施の形態2にかかる通信回路の内部構成を示すブロック図である。 本実施の形態2にかかるデータ受信処理の流れを示すシーケンス図である。 本実施の形態2にかかるデータ受信処理の流れを示すシーケンス図である。 本実施の形態2にかかる受信処理の流れを示すフローチャートである。 本実施の形態3にかかる通信容量をOSごとに均等に割り当てる場合(Round Robin方式)のディスクリプタ合成例を示す図である。 本実施の形態3にかかる単位時間当たりのディスクリプタの累積サイズ上限値OSごとに設定した場合(Token Bucket方式)のディスクリプタ合成例を示す図である。 関連技術にかかる半導体装置の構成を示す機能ブロック図である。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
ここで、本実施形態が解決しようとする課題について詳細に説明する。図17は、関連技術にかかる半導体装置9の構成を示す機能ブロック図である。半導体装置9は、プロセッサ91及び92と、メモリ93と、通信回路95とを備える。尚、半導体装置9は、図示しない構成として割込みコントローラも備えるものとする。通信回路95は、メモリ93と半導体装置9の内部との間でDMA転送を行うためのDMAコントローラや、外部ネットワークとEthernet(登録商標)通信を行う回路を搭載する。通信回路95は、特許文献1のようなディスクリプタ型のDMA転送に対応するものとする。
プロセッサ91及び92のそれぞれは、個別にOSが動作する。例えば、プロセッサ91は第1のOSを実行し、プロセッサ92は第2のOSを実行するものとする。ここで、通信回路95は1つであるため、第1のOSと第2のOSとが別個に外部と通信するためには、プロセッサ91と92とで通信回路95を共用する必要がある。そこで、例えば、上述した特許文献1にかかる技術及び特許文献2にかかる技術を参考にしながら、次のような関連技術を発明者は考えた。それは、プロセッサ91が実行する第1のOSが、第1のOSのハードウェア資源として通信回路95を管理し、また直接制御する。また、プロセッサ92はプロセッサ91とのOS間通信を行うことで、通信回路95を間接的に制御することとなる。つまり、プロセッサ91と92とが協調して通信回路95を制御する。具体的には、次のようになる。
まず、メモリ93に、ディスクリプタ領域133と、データ領域134と、共有領域936とを設ける(領域を確保する)。共有領域936は、プロセッサ91及び92に共有される領域、つまり、プロセッサ91及び92がいずれもアクセス可能な領域である。そして、共有領域936は、第2のOSが外部へデータを送信する際の送信データ232と、送信データ232を通信回路95に送信させるためのディスクリプタである送信指示情報213とを保存する。データ領域134及びディスクリプタ領域133は、プロセッサ91がアクセス可能な領域であり、プロセッサ92がアクセス不可能な領域である。データ領域134は、第1のOSが外部へデータを送信する際の送信データ231を保存する。ディスクリプタ領域133は、ディスクリプタ型のDMA転送におけるディスクリプタ制御を行うための複数のディスクリプタを保存する。ここでは、ディスクリプタとして、通信回路95における外部へのデータ送信処理の際に用いられる送信指示情報211及び212が挙げられる。
ここで、プロセッサ92で動作する第2のOSが半導体装置9の外部へデータを送信する場合の流れについて説明する。
(1)まず、プロセッサ92は、データアクセス922により、送信対象である送信データ232と送信指示情報213を共有領域936に格納する。次に、プロセッサ92は、IPI割込み931により、プロセッサ91に対して送信データ232を送信させるための通知を行う。尚、IPI割込み931や後述のIPI割込み932は、上述した割込みコントローラを介してIPI方式により行われる。
(2)プロセッサ91は、IPI割込み931による通知に応じて、データアクセス913により、共有領域936から送信データ232及び送信指示情報213を読み出す。そして、プロセッサ91は、データアクセス912により、読み出した送信データ232を送信データ231としてデータ領域134へ格納、つまり、コピーする。また、プロセッサ91は、データアクセス911により、読み出した送信指示情報213を送信指示情報211としてディスクリプタ領域133へ格納、つまり、コピーする。ここで、送信指示情報211は、送信データ231を通信回路95により外部へ送信させるためのディスクリプタである。その後、プロセッサ91は、データアクセス914により、通信回路95へ送信指示を通知する。
(3)通信回路95は、プロセッサ91からの送信指示に応じて、データアクセス941によりディスクリプタ領域133から送信指示情報211を読み出す。そして、通信回路95は、読み出した送信指示情報211に基づき、データアクセス942によりデータ領域134から送信データ231を読み出して、データ出力345により送信データ231を外部へ送信する。その後、通信回路95は、データアクセス941により送信完了情報をディスクリプタ領域133内の送信指示情報211に記録(追加)する。そして、通信回路95は、完了割込み943によりプロセッサ91へ完了通知を行う。尚、完了割込み943は、上述した割込みコントローラを介して行われる。
(4)プロセッサ91は、完了割込み943による完了通知に応じて、データアクセス911によりディスクリプタ領域133から送信指示情報211を読み出して、データアクセス913により共有領域936へ格納、つまり、送信指示情報213を更新又はコピーする。そして、プロセッサ91は、IPI割込み932により、プロセッサ92に対して送信データ232の送信完了を通知する。
(5)プロセッサ92は、IPI割込み932による送信完了の通知に応じて、データアクセス922により、共有領域936内の送信指示情報213を参照して、送信結果(送信完了情報)を確認する。
このように、上述した関連技術の場合には、プロセッサ91による共有領域936とデータ領域134との通信データ(送信データ)のコピー処理が発生する。例えば、Full-duplex Gigabit Ethernetの場合、送信と受信それぞれで1Gbpsとなるため、送信だけで1Gbpsのデータコピー処理の負荷が発生する。また、1つのEthernet通信毎にIPI割り込みが発生するため、割り込み応答処理によるプロセッサの処理負荷が発生する。例えば、Gigabit Ethernetによる1回の通信が最小フレームサイズ64byteの場合、秒間1488000回のIPI割込みが発生する。そのため、プロセッサの処理負荷が高くなり得るという問題が起こり得る。以上のことから、以下ではこれらの課題を解決するための実施形態について説明する。
<実施形態1>
本実施形態1にかかる半導体装置は、互いに異なるOS(Operating System)を実行する第1のプロセッサ及び第2のプロセッサと、メモリと、前記第1のプロセッサにより制御される通信回路と、を備える。ここで、前記メモリは、前記第1のプロセッサにより実行される第1のOSの作業領域である第1のディスクリプタ領域及び第1のデータ領域と、前記第2のプロセッサにより実行される第2のOSの作業領域である第2のディスクリプタ領域及び第2のデータ領域と、を含む。そして、前記第2のプロセッサは、前記第2のデータ領域に格納された送信データに対応する第1の送信指示情報を前記第2のディスクリプタ領域に格納し、前記第1のプロセッサに対して前記第2のディスクリプタ領域の第1の更新通知を送信する。前記第1のプロセッサは、前記第1の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記第1の送信指示情報を読み出して、前記第1のディスクリプタ領域に格納する。前記通信回路は、前記第1のディスクリプタ領域に格納された前記第1の送信指示情報に基づき、前記第2のデータ領域に格納された前記送信データの送信処理を行う。これにより、プロセッサによるデータ領域間の通信データのコピー処理が削減され、プロセッサの処理負荷が軽減できる。また、第1のプロセッサと第2のプロセッサにおける通信処理の一部を共通化でき、開発効率が向上する。
さらに、前記第1のプロセッサは、前記通信回路からの前記送信処理の完了通知に応じて、前記通信回路により前記第1のディスクリプタ領域に格納された前記送信データの送信完了情報を読み出して、前記第2のディスクリプタ領域に格納し、前記第2のプロセッサに対して前記第2のディスクリプタ領域の第2の更新通知を送信することが望ましい。この場合、前記第2のプロセッサは、前記第2の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記送信完了情報を参照する。これにより、第2のプロセッサにおいて、第1のプロセッサと同様の送信確認処理を呼び出すことができ、開発効率がより向上する。
または、前記第2のプロセッサは、受信データを前記第2のデータ領域に格納するための第1の受信指示情報を前記第2のディスクリプタ領域に格納し、前記第1のプロセッサに対して前記第2のディスクリプタ領域の第3の更新通知を送信してもよい。この場合、前記第1のプロセッサは、前記第3の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記第1の受信指示情報を読み出して、前記第1のディスクリプタ領域に格納する。その後、前記第1のプロセッサは、前記通信回路からの前記受信データの受信処理の完了通知に応じて、前記通信回路により前記第1のデータ領域に格納された前記受信データを読み出して、当該受信データの宛先を判定する。そして、前記第1のプロセッサは、前記宛先が前記第2のOS又は前記第2のプロセッサと判定した場合、前記受信データを前記第2のデータ領域に格納すると共に、前記通信回路により前記第1のディスクリプタ領域に格納された、前記受信データに対応する受信完了情報を前記第1のディスクリプタ領域から読み出して前記第2のディスクリプタ領域に格納する。このように、受信処理においても送信処理と同様に、ディスクリプタの受け渡しを行い、通信処理の一部を共通化でき、開発効率が向上する。
また、前記第1のOSと前記第2のOSとのそれぞれは、仮想OSとしてもよい。つまり、本実施形態は、仮想OSに適用可能である。さらに、前記第2のデータ領域と前記第2のディスクリプタ領域は、前記第1のOSが動作する前記第1のプロセッサと前記第2のOSが動作する前記第2のプロセッサのそれぞれからデータアクセス可能な共有領域である。
図1は、本実施の形態1にかかる半導体装置1のハードウェア構成を示すブロック図である。半導体装置1は、例えば、マイクロコントローラ、組込みシステム、又は、コンピュータ等の情報処理装置である。半導体装置1は、通信ネットワークNと接続し、外部と通信可能である。半導体装置1は、プロセッサ11及び12と、メモリ13と、割込みコントローラ14と、通信回路15とを備える。プロセッサ11及び12、メモリ13、割込みコントローラ14並びに通信回路15は、データバス16を介して接続されている。また、プロセッサ11及び12、割込みコントローラ14並びに通信回路15は、割込み信号線17を介して接続されている。尚、半導体装置1のその他の構成は、公知のものであるため、図示及び説明を省略する。
メモリ13は、RAM等の揮発性記憶装置である。メモリ13は、OS131及び132を記憶する。ここで、OS131は第1のOSの一例であり、通信回路15を制御する機能を含む。また、OS131は、OS132と比べてセキュリティが同等又は高いものとする。OS132は第2のOSの一例であり、本実施形態では通信回路15の直接の制御(アクセス)を行わないものとする。つまり、OS132は、OS131を介して通信回路15とのやり取りを行うものとする。また、OS131及び132は、共有メモリとIPI方式による割込みコントローラ14を介した割込みとによるOS間通信の機能を有するものとする。また、OS131及び132は、いずれか一方又は両方が仮想OSであってもよい。
プロセッサ11及び12のそれぞれは、CPU又はMPU(MicroProcessor Unit)等の制御装置である。プロセッサ11は、MMU(Memory Management Unit)111を有する。尚、プロセッサ11の他の物理構成は、公知のものであるため、図示及び詳細な説明を省略する。MMU111は、プロセッサ11が認識する仮想アドレスとメモリ13上の物理アドレスとを変換する。また、MMU111は、一般的なメモリ保護機能、キャッシュ制御機能、バス調停機能等を備えるものである。プロセッサ11は、データバス16を介してプロセッサ12、メモリ13、割込みコントローラ14及び通信回路15等と通信を行う。また、プロセッサ11は、割込み信号線17を介して割込みコントローラ14へ割込み要求を送信し、割込みコントローラ14から割込み通知を受け付ける。
プロセッサ11は、第1のプロセッサの一例であり、外部又は内部の他の記憶装置(不図示)に格納されたOS131をメモリ13に読み込んで実行する。そのため、プロセッサ11は、通信回路15を直接制御する。
プロセッサ12は、MMU121を有する。MMU121は、上述したMMU111と同等の機能を有する。尚、プロセッサ12の他の物理構成は、公知のものであるため、図示及び詳細な説明を省略する。プロセッサ12は、データバス16を介してプロセッサ11、メモリ13、割込みコントローラ14及び通信回路15等と通信を行う。また、プロセッサ12は、割込み信号線17を介して割込みコントローラ14へ割込み要求を送信し、割込みコントローラ14から割込み通知を受け付ける。
プロセッサ12は、第2のプロセッサの一例であり、外部又は内部の他の記憶装置に格納されたOS132をメモリ13に読み込んで実行する。そのため、プロセッサ12は、プロセッサ11を介して通信回路15を制御する。
割込みコントローラ14は、割込み信号線17を介してプロセッサ11及び12並びに通信回路15から割込み要求を受け付け、プロセッサ11及び12並びに通信回路15に対して割込み通知を行う。特に、割込みコントローラ14は、IPI方式によるOS間通信に対応するものである。
通信回路15は、メモリ13と半導体装置1の外部との間でDMA転送を行うためのDMAコントローラや、通信ネットワークNとEthernet通信を行う回路を搭載する。通信回路15は、特許文献1のようなディスクリプタ型のDMA転送に対応するものとする。
通信ネットワークNは、有線又は無線の通信回線により形成されたネットワークである。
図2は、本実施の形態1にかかる半導体装置1の構成を示す機能ブロック図である。尚、図1と同一の構成には同一の符号を付している。また、図2では、割込みコントローラ14と、メモリ13内のOS131及び132や他のデータの記載を省略している。メモリ13は、ディスクリプタ領域133と、データ領域134と、ディスクリプタ領域135と、データ領域136とを含む。
ディスクリプタ領域133及びデータ領域134は、プロセッサ11により実行されるOS131の作業領域である。つまり、ディスクリプタ領域133及びデータ領域134は、プロセッサ11の仮想空間上の構造である。そして、ディスクリプタ領域133及びデータ領域134は、プロセッサ12からのアクセスを受け付けないものとする。ディスクリプタ領域133は、第1のディスクリプタ領域の一例であり、OS131による外部とのデータの送受信を通信回路15に行わせるための1以上のディスクリプタを保存するための記憶領域である。ここで、ディスクリプタは、送信時に用いられる送信指示情報と、受信時に用いられる受信指示情報とがある。ディスクリプタ領域133は、複数の送信指示情報211、212・・・と、複数の受信指示情報221、222・・・とを記憶することができる。また、ディスクリプタ領域133は、送信指示情報と受信指示情報とを独立して管理することができる。ここで、送信指示情報211等は、例えば、送信データが格納されているメモリ13上の物理アドレス(例えば、開始アドレス)、送信データのサイズ、DMA転送の完了状態(送信完了情報)を記録するためのステータス領域等を含む。また、受信指示情報222等は、例えば、受信データを格納するためのメモリ13上の物理アドレス(例えば、開始アドレス)、受信データのサイズ、DMA転送の完了状態(受信完了情報)を記録するためのステータス領域等を含む。尚、ディスクリプタの形式は、例えば、特許文献1等の記載の公知の形式を用いても良い。また、ディスクリプタ領域133は、OS131用のディスクリプタとOS132用のディスクリプタとを混在して保持することができるものとする。
データ領域134は、第1のデータ領域の一例であり、OS131による外部とのデータ送受信処理の対象である送信データ231及び受信データ241を保存するための記憶領域である。尚、本実施形態では、受信データ241は、OS132に向けて外部から受信されたデータの場合があり得る。また、データ領域134は、2以上の送信データや2以上の受信データを記憶することができる。
ディスクリプタ領域135及びデータ領域136は、プロセッサ12により実行されるOS132の作業領域である。つまり、ディスクリプタ領域135及びデータ領域136は、プロセッサ12の仮想空間上の構造である。但し、ディスクリプタ領域135及びデータ領域136は、プロセッサ11からもアクセス可能であるものとする。つまり、ディスクリプタ領域135及びデータ領域136は、OS131が動作するプロセッサ11a及びOS132が動作するプロセッサ12aのそれぞれからアクセス可能な共有領域130である。ディスクリプタ領域135は、第2のディスクリプタ領域の一例であり、OS132のための外部とのデータの送受信を通信回路15に行わせるための1以上のディスクリプタを保存するための記憶領域である。ディスクリプタ領域135は、1以上の送信指示情報213と、1以上の受信指示情報223とを記憶することができる。また、ディスクリプタ領域135は、送信指示情報と受信指示情報とを独立して管理することができる。また、送信指示情報213及び受信指示情報223に含まれるアドレスは、OS132の管理するデータ領域136内のアドレスである。
データ領域136は、第2のデータ領域の一例であり、OS132による外部とのデータ送受信処理の対象である送信データ232及び受信データ242を保存するための記憶領域である。また、データ領域136は、2以上の送信データや2以上の受信データを記憶することができる。
プロセッサ11は、データアクセス311、312、313及び315のそれぞれにより、ディスクリプタ領域133、データ領域134、ディスクリプタ領域135及びデータ領域136のそれぞれに対してデータの読み書きを行う。また、プロセッサ11は、データアクセス314により通信回路15との間で通知の送受信を行う。また、プロセッサ11は、完了割込み343により通信回路15から完了通知を受け付ける。また、プロセッサ11は、プロセッサ12との間でIPI割込み331及び332により、割込みコントローラ14を介したOS間通信を行う。
プロセッサ12は、データアクセス321及び322のそれぞれにより、ディスクリプタ領域135及びデータ領域136のそれぞれに対してデータの読み書きを行う。また、プロセッサ12は、通信回路15を介したデータ送信及び受信を行う際には、IPI割込み331によりプロセッサ11へ通知(送信指示又は受信指示)を行う。また、プロセッサ12は、通信回路15により自身宛のデータが受信された場合には、プロセッサ11からIPI割込み332による通知を受け付ける。
通信回路15は、データアクセス341、342及び344のそれぞれにより、ディスクリプタ領域133、データ領域134及びデータ領域136のそれぞれに対してデータの読み書きを行う。また、通信回路15は、プロセッサ11からデータアクセス314により送信指示を受け付けた場合には、ディスクリプタ領域133内の送信指示情報211等を参照し、データ出力345により送信データ231又は232の送信処理を行う。また、通信回路15は、プロセッサ11からデータアクセス314により受信指示を受け付けた場合には、ディスクリプタ領域133内の受信指示情報221等を参照し、データ入力346により受信データ241の受信処理を行う。
図3及び図4は、本実施の形態1にかかるデータ送信処理の流れを示すシーケンス図である。まず、プロセッサ12は、通信回路15を介して通信ネットワークNへ送信する対象である送信データ232を作成し、データアクセス322により送信データ232をデータ領域136に格納する(S101)。次に、プロセッサ12は、送信データ232を通信回路15に送信させるためのディスクリプタである送信指示情報213を作成する(S102)。そして、プロセッサ12は、データアクセス321により送信指示情報213をディスクリプタ領域135に格納する(S103)。その後、プロセッサ12は、IPI割込み331により、プロセッサ11に対してディスクリプタ領域135の更新通知を行う。具体的には、プロセッサ12は、割込み信号線17を介して割込みコントローラ14へ更新通知を送信する(S104)。そして、割込みコントローラ14は、プロセッサ12からの更新通知に応じて、割込み信号線17を介してプロセッサ11に対して割込み信号を出力する(S105)。
そして、プロセッサ11は、IPI割込み331による更新通知(割込みコントローラ14からの割込み信号。以降、同様。)に応じて、データアクセス313により、ディスクリプタ領域135から送信指示情報213を読み出す。そして、プロセッサ11は、データアクセス311により、読み出した送信指示情報213を送信指示情報211としてディスクリプタ領域133へ格納、つまり、コピーする(S106)。その後、プロセッサ11は、データアクセス314により、通信回路15へ送信指示を通知する(S107)。
通信回路15は、プロセッサ11からの送信指示に応じて、データアクセス341によりディスクリプタ領域133から送信指示情報211を読み出す。そして、通信回路15は、読み出した送信指示情報211がデータ領域136内の送信データ232を示すため、データアクセス344によりデータ領域136から送信データ232を読み出して、データ出力345により送信データ232を通信ネットワークNへDMA転送を用いて送信する(S108)。その後、通信回路15は、データアクセス341によりDMA処理の結果である送信完了情報をディスクリプタ領域133内の送信指示情報211に記録(追加)する(S109)。そして、通信回路15は、完了割込み343によりプロセッサ11へ完了通知を行う。具体的には、通信回路15は、割込み信号線17を介して割込みコントローラ14へ完了通知を送信する(S110)。そして、割込みコントローラ14は、通信回路15からの完了通知に応じて、割込み信号線17を介してプロセッサ11に対して割込み信号を出力する(S111)。
プロセッサ11は、完了割込み343による完了通知に応じて、データアクセス311によりディスクリプタ領域133から送信指示情報211(送信完了情報)を読み出して、データアクセス313によりディスクリプタ領域135へ格納、つまり、送信指示情報213(送信完了情報)を更新又はコピーする(S112)。そして、プロセッサ11は、IPI割込み332により、プロセッサ12に対してディスクリプタ領域135の更新通知を送信する。具体的には、プロセッサ11は、割込み信号線17を介して割込みコントローラ14へ更新通知を送信する(S113)。そして、割込みコントローラ14は、プロセッサ11からの更新通知に応じて、割込み信号線17を介してプロセッサ12に対して割込み信号を出力する(S114)。
そして、プロセッサ12は、IPI割込み332による更新通知に応じて、データアクセス321により、ディスクリプタ領域135内の送信指示情報213を読み出して、送信結果(送信完了情報)を参照する(S115)。
このように、OS132における通信ネットワークNへの送信処理は、通信回路15を直接制御するOS131における通信ネットワークNへの送信処理と一部を変更するだけで大半の処理を共通化することができる。すなわち、OS132における通信ネットワークNへの送信処理は、通信回路15への送信指示に代えて、プロセッサ11へのIPI割込み331によるディスクリプタ領域135の更新通知の送信処理に置き換えることになる。また、OS132における通信ネットワークNへの送信処理は、通信回路15からの完了通知の受け付け処理に代えて、プロセッサ11からIPI割込み332によるディスクリプタ領域135の更新通知の受信処理に置き換えることになる。そして、それ以外の処理の変更は不要である。
図5及び図6は、本実施の形態1にかかるデータ受信処理の流れを示すシーケンス図である。まず、プロセッサ12は、通信ネットワークNから送信されたデータを通信回路15に受信させるためのディスクリプタである受信指示情報223を作成する(S201)。そして、プロセッサ12は、データアクセス321により受信指示情報223をディスクリプタ領域135に格納する(S202)。その後、プロセッサ12は、IPI割込み331により、プロセッサ11に対してディスクリプタ領域135の更新通知を行う(S203及びS204)。尚、具体的な処理は、上述したステップS104及びS105と同様である。
そして、プロセッサ11は、IPI割込み331による更新通知に応じて、データアクセス313により、ディスクリプタ領域135から受信指示情報223を読み出す。そして、プロセッサ11は、データアクセス311により、読み出した受信指示情報223を受信指示情報221としてディスクリプタ領域133へ格納、つまり、コピーする(S205)。但し、受信指示情報223に含まれるアドレスは、データ領域136内のアドレスであるため、プロセッサ11は、受信指示情報221を格納する際に、アドレスをデータ領域134内のアドレスに変更してもよい。その後、プロセッサ11は、データアクセス314により、通信回路15へEthernetのパケット受信が準備完了した旨の受信指示を通知する(S206)。
通信回路15は、プロセッサ11からの受信指示に応じて、データアクセス341によりディスクリプタ領域133内の受信指示情報221を参照し、データ入力346により通信ネットワークNからデータを受信する。そして、通信回路15は、データ受信後に、受信指示情報221に基づき、データアクセス342によりデータ領域134へ受信データ241を格納する(S207)。そして、通信回路15は、データアクセス341によりDMA処理の結果である受信完了情報をディスクリプタ領域133内の受信指示情報221に記録(追加)する(S208)。そして、通信回路15は、完了割込み343によりプロセッサ11へ完了通知を行う(S209及びS210)。
プロセッサ11は、完了割込み343による完了通知に応じて、データアクセス342によりデータ領域134内の受信データ241からデータを読み出し、受信データ241がOS132又はプロセッサ12向けのデータであった場合には、データアクセス315によりデータ領域136内の受信データ242としてそのデータを格納、つまり、コピーする(S211)。なお、Ethernet通信では通信データの宛先は、受信データであるフレームデータのヘッダに含まれる宛先アドレスにより決まる。そして、プロセッサ11は、データアクセス311により、ディスクリプタ領域133内の受信指示情報221からコピーしたデータに対応する受信指示情報を読み出し、データアクセス313によりディスクリプタ領域135内の受信指示情報223としてその受信指示情報を格納、つまりコピーする(S212)。但し、受信指示情報221に含まれるアドレスは、データ領域134内のアドレスであるため、プロセッサ11は、受信指示情報223を格納する際に、アドレスをデータ領域135内のアドレスに変更してもよい。そして、プロセッサ11は、IPI割込み332により、プロセッサ12に対してディスクリプタ領域135の更新通知を送信する(S213及びS214)。
そして、プロセッサ12は、IPI割込み332による更新通知に応じて、データアクセス321により、ディスクリプタ領域135内の受信指示情報223を読み出して、受信結果(受信完了情報)を参照する(S215)。そして、プロセッサ12は、データアクセス322により、データ領域136から受信データ242を取得して、適宜、処理を行う(S216)。
このように、OS132における通信ネットワークNからの受信処理は、通信回路15を直接制御するOS131における通信ネットワークNからの受信処理と一部を変更するだけで大半の処理を共通化することができる。すなわち、OS132における通信ネットワークNからの受信処理は、通信回路15への受信指示に代えて、プロセッサ11へのIPI割込み331によるディスクリプタ領域135の更新通知の送信処理に置き換えることになる。また、OS132における通信ネットワークNからの受信処理は、通信回路15からの完了通知の受け付け処理に代えて、プロセッサ11からIPI割込み332によるディスクリプタ領域135の更新通知の受信処理に置き換えることになる。そして、それ以外の処理の変更は不要である。
また、上述した関連技術では、プロセッサ91がプロセッサ92の仮想空間(共有領域936)上の送信データ232を、OS間通信により、自己の仮想空間(データ領域134)上にコピーしていた。しかし、本実施形態では、OS間通信に伴う送信データのコピー処理を削減することができる。仮に、最も効果が薄い場合、つまり、送信データのサイズが最小であっても効果を奏する。すなわち、送信データが最小フレームサイズ64byteであり、かつ、ディスクリプタサイズが8byteの場合でも、送信データのコピー処理は、8 / (64+8)*100=11.1%まで低減できる。また、OS131の管理外である別空間のデータ領域136に送信データ232を存在させたままでデータを送信できるという効果もある。
また、関連技術では、プロセッサ91側の通信処理とプロセッサ92側の通信処理とは大きく異なる処理を実装する必要があった。しかし、本実施形態では、上述した通り、プロセッサ12側においてもディスクリプタ構造を用いるため、プロセッサ11側と大半が共通する処理により実現できる。よって、開発効率が向上する。
さらに、本実施形態において、ステップS106やS205等のディスクリプタのコピー処理時に、プロセッサ11は、ディスクリプタが示すアドレスがデータ領域136内のアドレスを示すか否かをチェックすることにより、セキュリティを向上させることもできる。
ここで、本実施形態の他の実施例について説明する。他の実施例では、複数のディスクリプタを一括してコピーするものである。すなわち、前記第2のプロセッサは、前記第2のデータ領域に格納された2以上の前記送信データのそれぞれに対応した2以上の前記第1の送信指示情報を前記第2のディスクリプタ領域に格納し、前記第2のディスクリプタ領域に2以上の前記第1の送信指示情報を格納した場合に、前記第1の更新通知を送信することが望ましい。この場合、前記第1のプロセッサは、前記第1の更新通知に応じて、前記第2のディスクリプタ領域に格納された2以上の前記第1の送信指示情報の格納順に従って、各第1の送信指示情報を前記第1のディスクリプタ領域に格納する。そして、前記通信回路は、前記第1のディスクリプタ領域に格納された2以上の前記第1の送信指示情報の格納順に従って、前記第2のデータ領域に格納済みである各第1の送信指示情報に対応する前記送信データの送信処理を行う。このように、2以上の通信指示情報をまとめてIPI通信の頻度を削減し、プロセッサの処理負荷をさらに減少できる。
図7、図8及び図9は、本実施の形態1にかかるデータ送信処理(複数ディスクリプタ一括コピー)の流れを示すシーケンス図である。尚、データ受信処理においても同様であり、同様の効果が得られるため、図示及び詳細な説明を省略する。
まず、プロセッサ12は、通信回路15を介して通信ネットワークNへ送信する対象である1件目の送信データ232aを作成し、ステップS101と同様に、データアクセス322により送信データ232aをデータ領域136に格納する(S101a)。次に、プロセッサ12は、ステップS102と同様に、送信データ232aを通信回路15に送信させるためのディスクリプタである送信指示情報213aを作成する(S102a)。そして、プロセッサ12は、ステップS103と同様に、データアクセス321により送信指示情報213aをディスクリプタ領域135に格納する(S103a)。以降、2件目(送信データ232b、送信指示情報213b)以降も同様に、n件目(送信データ232n、送信指示情報213n)まで行う(S101n、S102n及びS103n)。つまり、この時点で、データ領域136にはn件の送信データが格納され、ディスクリプタ領域135にはn件の送信指示情報がaからnの順序で格納されていることになる。
続いて、プロセッサ12は、IPI割込み331により、プロセッサ11に対してディスクリプタ領域135の更新通知を行う(S104及びS105)。そして、プロセッサ11は、IPI割込み331による更新通知に応じて、データアクセス313により、ディスクリプタ領域135からn件の送信指示情報213aから213nを読み出す。そして、プロセッサ11は、データアクセス311により、読み出したn件の送信指示情報213aから213nをディスクリプタ領域135での格納順に従って、n件の送信指示情報211aから211nとしてディスクリプタ領域133へ格納、つまり、コピーする(S106x)。その後、プロセッサ11は、データアクセス314により、通信回路15へ送信指示を通知する(S107)。
通信回路15は、プロセッサ11からの送信指示に応じて、ディスクリプタ領域133内のn件の送信指示情報211aから211nを格納順に従って、データ領域136内の送信データを送信する。具体的には、通信回路15は、ディスクリプタ領域133内で1件目に格納された送信指示情報211aに基づいて、データアクセス344によりデータ領域136内で1件目に格納された送信データ232aを読み出す。そして、通信回路15は、読み出した送信データ232をデータ出力345により通信ネットワークNへ送信する(S108a)。その後、通信回路15は、送信完了情報aをディスクリプタ領域133内の送信指示情報211aに記録し(S109a)、完了割込み343によりプロセッサ11へ完了通知を行う(S110a及びS111a)。2件目以降も同様に、n件目(送信データ232n、送信指示情報211n)まで行う(S108n、S109n、S110n及びS111n)。
プロセッサ11は、完了割込み343によるn件目の完了通知に応じて、データアクセス311によりディスクリプタ領域133からn件の送信指示情報211a‐211n(送信完了情報a‐211n)を読み出して、データアクセス313によりディスクリプタ領域135へ格納する(S112x)。そして、プロセッサ11は、IPI割込み332により、プロセッサ12に対してディスクリプタ領域135の更新通知を送信する(S113及びS114)。
そして、プロセッサ12は、IPI割込み332による更新通知に応じて、データアクセス321により、ディスクリプタ領域135内のn件の送信指示情報213a‐213nを読み出して、n件の送信結果(送信完了情報a‐n)を参照する(S115x)。
上述した関連技術では、1つのEthernetフレーム毎にIPI割込み931及び932の組のOS間通信が発生する。例えば、3つのEthernetフレームの送信要求がある場合は3回のIPIのやり取り、つまり計6回のIPIが発生する。これに対し、本実施形態の上述した他の実施例では、3つのEthernetフレームの送信要求がある場合、3つのディスクリプタを1度にコピーすればよいので、OS間通信をIPI割込み331及び332の合計2回に減らすことができる。Gigabit Ethernetで1つの通信が最小フレームサイズ64byteの場合、秒間1488000回通信が発生する。1回の割り込みへの応答処理のみで1us(マイクロ秒)の処理時間が必要な場合、関連技術では、1488000*2*1us=2.976sの処理時間が必要となる。しかしながら、処理時間が1秒を超えてしまうため、処理が追い付かない。これに対し、本実施形態の上述した他の実施例では、2.976s/3=0.992sの処理時間まで低減でき、処理することが可能となる。尚、3つのEthernetフレームをまとめるのは例であり、一度にコピーするディスクリプタ数を増やすことで更に処理時間を低減することができる。
<実施形態2>
本実施形態2は、上述した実施形態1の他の実施例、又は、実施形態1の改良例である。実施形態1では、プロセッサ12宛の受信データを、プロセッサ11がデータ領域134からデータ領域136へコピーする処理があり、プロセッサの処理負荷を軽減する余地がある。ここで、Ethernet通信では通信データの宛先は、フレームデータのヘッダに含まれる宛先アドレスにより決まる。フレームデータの解析が必要となる。しかし、プロセッサは、メモリに格納後のフレームデータのヘッダを解析することはできるが、DMA転送中である格納前に格納先のデータ領域を判定して振り分けることができない。そのため、通信ネットワークNからの受信データの格納先のデータ領域を宛先により振り分けるには、通信回路がデータを受信時に宛先を判定することが考えられる。
そこで、本実施形態2にかかる半導体装置は、実施形態1に改良を加え、前記通信回路は、前記受信データの宛先が前記第2のOSを示す場合に、前記第2のデータ領域に前記受信データを格納し、前記第1のディスクリプタ領域に前記受信完了情報を格納し、前記第1のプロセッサに対して前記受信処理の完了通知を送信するものである。これにより、受信データのコピー処理を削減し、プロセッサの処理負荷をさらに減少させることができる。
さらに、前記第1のディスクリプタ領域は、前記第1のデータ領域に対応する第1のサブ領域と、前記第2のデータ領域に対応する第2のサブ領域とを含めることが望ましい。その場合、前記第1のプロセッサは、前記第3の更新通知に応じて、前記第1の受信指示情報を前記第2のサブ領域に格納する。そして、前記通信回路は、前記第1のOSに対応する第1の通信アドレス情報と、前記第2のOSに対応する第2の通信アドレス情報とを保持し、前記受信データの宛先に前記第1及び第2の通信アドレス情報のそれぞれが含まれるか否かを判定し、前記宛先に前記第2の通信アドレス情報が含まれると判定した場合に、前記第2のデータ領域に前記受信データを格納するとよい。このように、第1のディスクリプタ領域を2つのサブ領域に分割し、指示情報を分けて管理することで、OSごとのアドレス情報に応じて格納先を特定でき、マルチキャストに対応することもできる。
さらに、前記通信回路は、前記第1のデータ領域及び前記第1のサブ領域にアクセス可能な第1の分類器と、前記第2のデータ領域及び前記第2のサブ領域にアクセス可能な第2の分類器と、を含むとよい。この場合、前記通信回路は、前記受信データを前記第1の分類器及び前記第2の分類器のそれぞれへ入力する。特に、前記第2の分類器は、前記宛先に前記第2の通信アドレス情報が含まれると判定した場合、前記第2のサブ領域に格納された前記第1の受信指示情報に基づき、前記第2のデータ領域を前記格納先として特定し、前記第2のデータ領域に前記受信データを格納する。これにより、OSごとのアドレス情報に応じて格納先を特定でき、振り分けが効率的となる。
尚、本実施形態2は、上述した実施形態1を前提とせず、単独の構成としてもよい。その場合、本実施形態2にかかる半導体装置は、互いに異なるOS(Operating System)を実行する第1のプロセッサ及び第2のプロセッサと、メモリと、前記第1のプロセッサにより制御される通信回路と、を備える。そして、前記メモリは、前記第1のプロセッサにより実行される第1のOSの作業領域である第1のディスクリプタ領域及び第1のデータ領域と、前記第2のプロセッサにより実行される第2のOSの作業領域である第2のディスクリプタ領域及び第2のデータ領域と、を含む。ここで、前記第2のプロセッサは、受信データを前記第2のデータ領域に格納するための第1の受信指示情報を前記第2のディスクリプタ領域に格納し、前記第1のプロセッサに対して前記第2のディスクリプタ領域の第3の更新通知を送信する。そして、前記第1のプロセッサは、前記第3の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記受信指示情報を読み出して、前記第1のディスクリプタ領域に格納する。ここで、前記第1のディスクリプタ領域は、前記第1のデータ領域に対応する第1のサブ領域と、前記第2のデータ領域に対応する第2のサブ領域とを含む。そして、前記第1のプロセッサは、前記第3の更新通知に応じて、前記第2のディスクリプタ領域から読み出した前記第1の受信指示情報を前記第2のサブ領域に格納する。そして、前記通信回路は、前記第1のOS又は前記第1のプロセッサに対応する第1の通信アドレス情報と、前記第2のOS前記第2のプロセッサに対応する第2の通信アドレス情報とを保持する。前記通信回路は、前記受信データの宛先に前記第1及び第2の通信アドレス情報のそれぞれが含まれるか否かを判定し、前記宛先に前記第2の通信アドレス情報が含まれると判定した場合に、前記第2のデータ領域に前記受信データを格納する。このようにしても、関連技術と比べて、受信データのコピー処理を削減し、プロセッサの処理負荷を減少させることができる。また、実施形態1と同様に、開発効率を向上させることもできる。
ここで、本実施形態2のハードウェア構成は図1と同様であるため、図示及び説明を省略する。次に、図10は、本実施の形態2にかかる半導体装置1aの構成を示す機能ブロック図である。半導体装置1aは、上述した半導体装置1の一部の構成を変更したものである。すなわち、半導体装置1aは、半導体装置1のメモリ13内のディスクリプタ領域133が、サブ領域1331と1332の分割されたディスクリプタ領域133aに置き換わったものである。また、半導体装置1aは、半導体装置1のプロセッサ11及び12並びに通信回路15が、プロセッサ11a及び12a並びに通信回路15aに置き換わったものである。更に、ディスクリプタ領域135は、OS131が動作するプロセッサ11aとOS132が動作するプロセッサ12aのそれぞれからアクセス可能な共有領域130aである。尚、図2と同等の構成については同一の符号を付し、説明を省略する。
サブ領域1331は、OS131が管理するデータ領域134に対応するディスクリプタ領域であり、第1のサブ領域の一例である。また、サブ領域1332は、OS132が管理するデータ領域136に対応するディスクリプタ領域であり、第2のサブ領域の一例である。そのため、本実施形態2では、OS131用のディスクリプタとOS132用のディスクリプタとを混在させず、独立して管理する。サブ領域1331は、送信指示情報211と受信指示情報221とを記憶する。すなわち、送信指示情報211と受信指示情報221は、OS131により処理される。また、サブ領域1332は、送信指示情報212と受信指示情報222とを記憶し、ディスクリプタ領域135内の送信指示情報213と受信指示情報223とに対応するものである。尚、データ領域136は、実施形態1と異なり、プロセッサ11aからのアクセスを受け付けないものとする。
プロセッサ11aは、データアクセス3111及び3112のそれぞれにより、サブ領域1331及び1332のそれぞれに対してデータの読み書きを行う。特に、プロセッサ11aは、ディスクリプタ領域135とサブ領域1332との間でディスクリプタのコピーを行う。
通信回路15aは、通信ネットワークNからの受信データの宛先がOS132又はプロセッサ12aを示す場合に、データ領域136に受信データ242として直接格納し、ディスクリプタ領域133aに受信完了情報を格納し、プロセッサ11aに対して受信処理の完了通知を送信する。さらに、通信回路15aは、OS131又はプロセッサ11aに対応する第1の通信アドレス情報と、OS132又はプロセッサ12aに対応する第2の通信アドレス情報とを保持し、受信データの宛先に第1及び第2の通信アドレス情報のそれぞれが含まれるか否かを判定し、宛先に第2の通信アドレス情報が含まれると判定した場合に、データ領域136に受信データを格納する。
図11は、本実施の形態2にかかる通信回路15aの内部構成を示す機能ブロック図である。通信回路15aは、分類器41及び42、メモリアクセス部43及び44、並びに、制御部45を含む。但し、通信回路15aは、2つの分類器を有する以外は、他の構成であってもよい。つまり、通信回路15aは、少なくとも複数の受信DMAチャネルを搭載し、各受信DMAチャネルとして各分類器を有するものである。そのため、分類器は3以上であってもよい。
分類器41は、データ領域134及びサブ領域1331にアクセス可能なものである。分類器42は、データ領域136及びサブ領域1332にアクセス可能なものである。通信回路15aは、通信ネットワークNからデータ入力346により受信した受信データを分類器41及び42のそれぞれへ入力する。
分類器41は、記憶部411と判定部412とを備える。記憶部411は、OS131又はプロセッサ11aを示す通信アドレス情報413を予め記憶する。通信アドレス情報413は、例えば、所属VLAN ID4131及びMACアドレス4132であるが、これらに限定されない。判定部412は、入力された受信データの宛先に通信アドレス情報413が含まれるか否かを判定し、含まれると判定した場合、判定結果を受信要として、受信データと判定結果をメモリアクセス部43へ出力する。一方、宛先にOS131又はプロセッサ11aを示す通信アドレス情報413が含まれない場合、判定部412は、受信データを破棄し、判定結果を受信不要として、判定結果をメモリアクセス部43へ出力する。
メモリアクセス部43は、DMA転送を処理する。具体的には、メモリアクセス部43は、データアクセス3411によりサブ領域1331へアクセス可能であり、データアクセス342によりデータ領域134へアクセス可能である。また、メモリアクセス部43は、制御部45からの送信指示に応じて、サブ領域1331を参照して、データ領域134内の送信データをデータ出力345により通信ネットワークNへ送信する。また、メモリアクセス部43は、分類器41からの判定結果が受信要である場合、サブ領域1331を参照して、受け付けた受信データを、データ領域134へ格納する。
分類器42は、記憶部421と判定部422とを備える。記憶部421は、OS132又はプロセッサ12aを示す通信アドレス情報423を予め記憶する。通信アドレス情報423は、例えば、所属VLAN ID4231及びMACアドレス4232であるが、これらに限定されない。判定部422は、入力された受信データの宛先に通信アドレス情報423が含まれるか否かを判定し、含まれると判定した場合、判定結果を受信要として、受信データと判定結果をメモリアクセス部44へ出力する。一方、宛先にOS132又はプロセッサ12aを示す通信アドレス情報423が含まれない場合、判定部422は、受信データを破棄し、判定結果を受信不要として、判定結果をメモリアクセス部44へ出力する。
メモリアクセス部44は、DMA転送を処理する。具体的には、メモリアクセス部44は、データアクセス3412によりサブ領域1332へアクセス可能であり、データアクセス344によりデータ領域136へアクセス可能である。また、メモリアクセス部44は、制御部45からの送信指示に応じて、サブ領域1332を参照して、データ領域136内の送信データをデータ出力345により通信ネットワークNへ送信する。また、メモリアクセス部44は、分類器42からの判定結果が受信要である場合、サブ領域1332を参照して、受け付けた受信データを、データ領域136へ格納する。
制御部45は、データアクセス314によりプロセッサ11aからの送信指示及び受信指示を受け付け、完了割込み343により完了通知を送信する。また、制御部45は、送信指示及び受信指示に応じてメモリアクセス部43及び44へ指示する。
図12及び図13は、本実施の形態2にかかるデータ受信処理の流れを示すシーケンス図である。尚、上述した図5及び図6と同等の処理については適宜、説明を省略する。まず、プロセッサ11aは、プロセッサ12aからのIPI割込み331による更新通知に応じて、データアクセス313により、ディスクリプタ領域135から受信指示情報223を読み出す。そして、プロセッサ11aは、データアクセス311により、読み出した受信指示情報223を受信指示情報222としてサブ領域1332へ格納、つまり、コピーする(S205a)。このとき、プロセッサ11aは、受信指示情報223内のアドレスを変更せず、そのまま受信指示情報222とする。
通信回路15aは、プロセッサ11aからの受信指示(S206)に応じて、データアクセス3411及び3412によりサブ領域1331及び1332内の受信指示情報221及び222を参照し、データ入力346により通信ネットワークNからデータを受信する(S207a)。
図14は、本実施の形態2にかかる受信処理の流れを示すフローチャートである。尚、図14は、分類器41及びメモリアクセス部43の組合せ、又は、分類器42及びメモリアクセス部44の組合せのいずれであっても同様の処理である。以下の説明では、分類器42及びメモリアクセス部44の組合せの場合について説明する。
まず、分類器42は、受信データである受信通信フレームの入力を受け付ける(S301)。次に、判定部422は、受信通信フレームのヘッダにQ-Tag VLANが付与されているか否かを判定する(S302)。ここで、「Q-Tag VLAN」は、IEEE Std 802.1Q(登録商標)-2014、IEEE Standard for Local and metropolitan area networks - Bridges and Bridged Networksに規定されたものである。ステップS302でNOの場合、ステップS304へ進む。また、ステップS302でYESの場合、判定部422は、Q-Tag VLANが自身の所属VLAN IDと一致するか否かを判定する(S303)。具体的には、判定部422は、記憶部421から所属VLAN ID4231を読み出して、Q-Tag VLANと所属VLAN ID4231との一致を判定する。ステップS303で一致すると判定した場合、ステップS304へ進む。
続いて、判定部422は、受信通信フレームの宛先アドレスがブロードキャスト/マルチキャストアドレスであるか否かを判定する(S304)。具体的には、判定部422は、宛先アドレスの8bit目が1である場合、ブロードキャスト/マルチキャストであると判定し、ステップS306へ進む。一方、ステップS304でNOの場合、判定部422は、宛先アドレスが自身のMACアドレスであるか否かを判定する(S305)。具体的には、判定部422は、記憶部421からMACアドレス4232を読み出し、宛先アドレスとMACアドレス4232との一致を判定する。ステップS305で一致すると判定した場合、ステップS306へ進む。
そして、ステップS304又はステップS305でYESの場合、判定部422は、判定結果を受信要として、受信通信フレームと共に、接続されたメモリアクセス部44へ出力する(S306)。
メモリアクセス部44は、判定結果が受信要であるため、データアクセス3412により、接続されたディスクリプタ領域であるサブ領域1332から、受信指示情報222を読み出し、格納先をデータ領域136内のアドレスと特定する(S307)。そして、メモリアクセス部44は、データアクセス344により、特定された格納先であるデータ領域136へ受信通信フレームを受信データ242として格納する(S308)。その後、メモリアクセス部44は、データアクセス3412により、サブ領域1332内の受信指示情報222へ受信完了情報を格納する(S309、図12のS208a)。
一方、ステップS303又はS305でNOの場合、判定部422は、受信通信フレームを破棄する(S310)。そして、判定部422は、判定結果を受信不要として接続されたメモリアクセス部44へ出力する(S311)。
図12に戻り説明を続ける。通信回路15aは、完了割込み343によりプロセッサ11へ完了通知を行う(S209及びS210)。
プロセッサ11aは、完了割込み343による完了通知に応じて、(図10と図13を参照)データアクセス3112によりサブ領域1332から受信指示情報222(受信完了情報)を読み出して、データアクセス313によりディスクリプタ領域135へ格納、つまり、受信指示情報223(受信完了情報)を更新又はコピーする(S211a)。尚、このとき、受信データのコピー処理は発生しない。以降、プロセッサ11a及び12aにより、上述した通り、ステップS213からS216が同様に行われる。
上述したように、実施形態1(図2)では、プロセッサ11がプロセッサ12宛に、自己が管理するデータ領域134に受信したデータを一旦格納した上で、OS間通信により、プロセッサ12がアクセス可能な共有領域136へ受信データをコピーしていた。これに対して、本実施形態2では、OS間通信に伴う受信データのコピー処理を削減することができる。よって、実施形態1と比べてさらにプロセッサの処理負荷を軽減できる。また、実施形態1と比較しなくとも、受信処理単独で、受信データのコピー処理がないことにより、プロセッサの処理負荷を軽減できるといえる。
<実施形態3>
本実施形態3は、上述した実施形態1の改良例である。実施形態1では上述した通り、プロセッサ11は、プロセッサ12からのIPI割込み331による更新通知に応じて、ディスクリプタ領域135から送信指示情報213を読み出して、ディスクリプタ領域133へ格納する。このとき、プロセッサ11側でもディスクリプタを生成し、ディスクリプタ領域133へ格納する場合がある。この場合、上述した通り、各OSのディスクリプタをディスクリプタ領域133において統合する。
ここで、OS131及び132のそれぞれは、一旦、通信ネットワークN向けのデータ送信リクエストが発生すると、多数のディスクリプタを連続して生成し、ディスクリプタ領域へ連続して格納することとなる。よって、OS131独自の送信指示情報とOS132の送信指示情報との格納タイミングが競合することとなる。格納タイミングについて何も調停を行わないと、一方のOSのディスクリプタの格納が後回しにされる可能性もあり、QoS(Quality of Service)が担保されない。尚、受信指示情報についても同様の問題が起こり得る。
そこで、本実施形態3では、実施形態1におけるプロセッサ11で実行されるOS131におけるディスクリプタのコピー処理に変更を加えることで、各OSのディスクリプタの格納数、データサイズ等を調整することで、各OSの通信容量を制御することで、QoS制御を実現するものである。
すなわち、前記第1のプロセッサは、前記第1の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記第1の送信指示情報と、前記第1のデータ領域に格納された送信データに対応する第2の送信指示情報とを前記第1のディスクリプタ領域に格納する順序を、前記第2の送信指示情報に対応する前記第1のOS及び前記第1の送信指示情報に対応する前記第2のOSに対して予め設定された通信容量の割合に基づいて制御するものである。このように、一つのディスクリプタ領域に複数のOSのディスクリプタを混在させる際に、各OSの通信容量を制御することで、QoS制御を実現できる。
さらに、前記第1のプロセッサは、前記第1のOS及び前記第2のOSの予め設定された通信容量の割合として、単位時間当たりの前記第1の送信指示情報及び前記第2の送信指示情報のサイズ又は件数を割り当てたものを用いるとよい。これにより、QoS制御をより効果的に実現できる。
本実施形態3にかかる半導体装置は、実施形態1におけるプロセッサ11で実行されるOS131におけるディスクリプタのコピー処理に変更を加えたものである。よって、ハードウェア構成、機能ブロック図は同等であるため、図示及び説明を省略する。
ここで、各OSの通信容量の割当方式として、例えば、以下の実施例3-1や3-2が挙げられる。但し、割当方式はこれらに限定されない。
(実施例3-1:Round Robin方式)
実施例3-1では、OS131に予め、OS131側とOS132側とで、通信容量を均等に割り当てる設定をしているものとする。そして、プロセッサ11は、ディスクリプタ領域135から複数の送信指示情報213を順番に読み出してディスクリプタ領域133に格納することと、OS131側の送信指示情報をディスクリプタ領域133に格納することとを交互に行う。このとき、プロセッサ11は、各送信指示情報により送信されるデータ量を同一サイズとなるように制御するものとする。図15は、本実施の形態3にかかる通信容量をOSごとに均等に割り当てる場合(Round Robin方式)のディスクリプタ合成例を示す図である。
(実施例3-2:Token Bucket方式)
実施例3-2では、OS131に予め、OS131側とOS132側とのそれぞれ個別に時間単位毎の累積サイズ上限値を設定済みであるものとする。そして、プロセッサ11は、時間単位毎に、OS131側とOS132側とのディスクリプタを切り替え制御するとToken Bucketとなる。例えば、プロセッサ11は、事前に累積サイズ上限値を満たすように、OS間の通信容量の比率を算出し、単位時間当たりに割当可能なディスクリプタのサイズを算出しておく。そして、プロセッサ11は、ディスクリプタの統合時に、算出値に応じてディスクリプタを分割等して格納し、時間単位ごとに対象のOSを切り替える。
図16は、本実施の形態3にかかる単位時間当たりのディスクリプタの累積サイズ上限値OSごとに設定した場合(Token Bucket方式)のディスクリプタ合成例を示す図である。図16の例では、プロセッサ11c側(斜線部分)の送信レートを2Mbps(250byte/ms)、プロセッサ12c側(ドット部分)の送信レートを4Mbps(500byte/ms)と割り当てた場合を示す。このとき、
1Mbps=(1000000/8)/1000=125byte/milliseconds
となる。このように、QoS制御が可能となる。
ここで、プロセッサ11で動作するOS131がセキュアOSである場合、他のOS132からの異常なEthernetフレーム転送要求が発生したとしても、上述したように、各OSに設定された通信容量の割合の範囲内でしか、ディスクリプタがコピーされない。よって、結果的に、過剰なフレーム転送要求を遮断できることになる。特に、OS132が異常な量のEthernetフレームの送信を要求する場合には、悪意のあるアプリケーションを実行しているか又は暴走していることが考えられる。よって、本実施形態3は、外部システムへの悪影響を抑える機能安全の制御として有効である。また、プロセッサ11で動作するOS131にセキュアOSを用いることで、他のOS132の異常を抑えることで、不正動作を抑え、システムとしての堅牢性を高めることができる。
<その他の実施形態>
尚、上述した実施形態では、プロセッサとOSが一対一の場合について説明したが、これに限定されず、プロセッサ数とOS数との比率が異なってしても各実施形態は適用可能である。また、OS間通信にハイパーバイザが介在してもよい。また、通信回路は、Ethernet通信用ハードウェアに限定しない。
また、上述した実施形態では、単体の半導体装置の場合について説明したが、各実施形態は、情報処理システムに対しても適用可能である。その場合、情報処理システムは、次の構成をとることができる。すなわち、情報処理システムは、
互いに異なるOS(Operating System)を実行する第1のプロセッサ及び第2のプロセッサと、
メモリと、
前記第1のプロセッサにより制御される通信回路と、を備え、
前記メモリは、
前記第1のプロセッサにより実行される第1のOSの作業領域である第1のディスクリプタ領域及び第1のデータ領域と、
前記第2のプロセッサにより実行される第2のOSの作業領域である第2のディスクリプタ領域及び第2のデータ領域と、を含み、
前記第2のプロセッサは、
前記第2のデータ領域に格納された送信データに対応する第1の送信指示情報を前記第2のディスクリプタ領域に格納し、
前記第1のプロセッサに対して前記第2のディスクリプタ領域の第1の更新通知を送信し、
前記第1のプロセッサは、
前記第1の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記第1の送信指示情報を読み出して、前記第1のディスクリプタ領域に格納し、
前記通信回路は、
前記第1のディスクリプタ領域に格納された前記第1の送信指示情報に基づき、前記第2のデータ領域に格納された前記送信データの送信処理を行う。
これにより、実施形態1と同様の効果を奏する。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1 半導体装置
1a 半導体装置
11 プロセッサ
11a プロセッサ
11b プロセッサ
11c プロセッサ
111 MMU
12 プロセッサ
12a プロセッサ
12b プロセッサ
12c プロセッサ
121 MMU
13 メモリ
130 共有領域
130a 共有領域
131 OS
132 OS
133 ディスクリプタ領域
133a ディスクリプタ領域
1331 サブ領域
1332 サブ領域
134 データ領域
135 ディスクリプタ領域
136 データ領域
14 割込みコントローラ
15 通信回路
15a 通信回路
151 通知
152 通知
153 判定結果
154 判定結果
16 データバス
17 割込み信号線
N 通信ネットワーク
211 送信指示情報
212 送信指示情報
213 送信指示情報
221 受信指示情報
222 受信指示情報
223 受信指示情報
231 送信データ
232 送信データ
241 受信データ
242 受信データ
311 データアクセス
3111 データアクセス
3112 データアクセス
312 データアクセス
313 データアクセス
314 データアクセス
315 データアクセス
321 データアクセス
322 データアクセス
331 IPI割込み
332 IPI割込み
341 データアクセス
3411 データアクセス
3412 データアクセス
342 データアクセス
343 完了割込み
344 データアクセス
345 データ出力
346 データ入力
41 分類器
411 記憶部
412 判定部
413 通信アドレス情報
4131 所属VLAN ID
4132 MACアドレス
42 分類器
421 記憶部
422 判定部
423 通信アドレス情報
4231 所属VLAN ID
4232 MACアドレス
43 メモリアクセス部
44 メモリアクセス部
45 制御部
9 半導体装置
91 プロセッサ
92 プロセッサ
93 メモリ
95 通信回路
911 データアクセス
912 データアクセス
913 データアクセス
922 データアクセス
931 IPI割込み
932 IPI割込み
941 データアクセス
942 データアクセス
914 データアクセス
943 完了割込み
936 共有領域

Claims (7)

  1. 互いに異なるOS(Operating System)を実行する第1のプロセッサ及び第2のプロセッサと、
    メモリと、
    前記第1のプロセッサにより制御される通信回路と、を備え、
    前記メモリは、
    前記第1のプロセッサにより実行される第1のOSの作業領域である第1のディスクリプタ領域及び第1のデータ領域と、
    前記第2のプロセッサにより実行される第2のOSの作業領域である第2のディスクリプタ領域及び第2のデータ領域と、を含み、
    前記第2のプロセッサは、
    前記第2のデータ領域に格納された送信データに対応する第1の送信指示情報を前記第2のディスクリプタ領域に格納し、
    前記第1のプロセッサに対して前記第2のディスクリプタ領域の第1の更新通知を送信し、
    前記第1のプロセッサは、
    前記第1の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記第1の送信指示情報を読み出して、前記第1のディスクリプタ領域に格納し、
    前記通信回路は、
    前記第1のディスクリプタ領域に格納された前記第1の送信指示情報に基づき、前記第2のデータ領域に格納された前記送信データの送信処理を行い、
    前記第1のプロセッサは、
    前記第1の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記第1の送信指示情報と、前記第1のデータ領域に格納された送信データに対応する第2の送信指示情報とを前記第1のディスクリプタ領域に格納する順序を、前記第2の送信指示情報に対応する前記第1のOS及び前記第1の送信指示情報に対応する前記第2のOSに対して予め設定された通信容量の割合に基づいて制御する
    半導体装置。
  2. 前記第1のプロセッサは、
    前記通信回路からの前記送信処理の完了通知に応じて、前記通信回路により前記第1のディスクリプタ領域に格納された前記送信データの送信完了情報を読み出して、前記第2のディスクリプタ領域に格納し、
    前記第2のプロセッサに対して前記第2のディスクリプタ領域の第2の更新通知を送信し、
    前記第2のプロセッサは、
    前記第2の更新通知に応じて、前記第2のディスクリプタ領域に格納された前記送信完了情報を参照する
    請求項1に記載の半導体装置。
  3. 互いに異なるOS(Operating System)を実行する第1のプロセッサ及び第2のプロセッサと、
    メモリと、
    前記第1のプロセッサにより制御される通信回路と、を備え、
    前記メモリは、
    前記第1のプロセッサにより実行される第1のOSの作業領域である第1のディスクリプタ領域及び第1のデータ領域と、
    前記第2のプロセッサにより実行される第2のOSの作業領域である第2のディスクリプタ領域及び第2のデータ領域と、を含み、
    前記第2のプロセッサは、
    受信データを前記第2のデータ領域に格納するための第1の受信指示情報を前記第2のディスクリプタ領域に格納し、
    前記第1のプロセッサに対して前記第2のディスクリプタ領域の第3の更新通知を送信し、
    前記第1のディスクリプタ領域は、前記第1のデータ領域に対応する第1のサブ領域と、前記第2のデータ領域に対応する第2のサブ領域とを含み、
    前記第1のプロセッサは、
    前記第3の更新通知に応じて、前記第2のディスクリプタ領域から読み出した前記第1の受信指示情報を前記第2のサブ領域に格納し、
    前記通信回路は、
    前記第1のOS又は前記第1のプロセッサに対応する第1の通信アドレス情報と、前記第2のOS又は前記第2のプロセッサに対応する第2の通信アドレス情報とを保持し、
    前記受信データの宛先に前記第1及び第2の通信アドレス情報のそれぞれが含まれるか否かを判定し、
    前記宛先に前記第2の通信アドレス情報が含まれると判定した場合に、前記第2のサブ領域に格納された前記第1の受信指示情報に基づいて前記第2のデータ領域に前記受信データを格納する
    半導体装置。
  4. 前記通信回路は、
    前記第1のデータ領域及び前記第1のサブ領域にアクセス可能な第1の分類器と、
    前記第2のデータ領域及び前記第2のサブ領域にアクセス可能な第2の分類器と、を含み、
    前記通信回路は、
    前記受信データを前記第1の分類器及び前記第2の分類器のそれぞれへ入力し、
    前記第2の分類器は、
    前記宛先に前記第2の通信アドレス情報が含まれると判定した場合、前記第2のサブ領域に格納された前記第1の受信指示情報に基づき、前記第2のデータ領域を格納先として特定し、
    前記第2のデータ領域に前記受信データを格納する
    請求項に記載の半導体装置。
  5. 前記第2のデータ領域と前記第2のディスクリプタ領域は、前記第1のOSが動作する前記第1のプロセッサと前記第2のOSが動作する前記第2のプロセッサのそれぞれからデータアクセス可能な共有領域である
    請求項1に記載の半導体装置。
  6. 前記第1のプロセッサは、
    前記第1のOS及び前記第2のOSの予め設定された通信容量の割合として、単位時間当たりの前記第1の送信指示情報及び前記第2の送信指示情報のサイズ又は件数を割り当てたものを用いる
    請求項に記載の半導体装置。
  7. 前記第2のディスクリプタ領域は、前記第1のOSが動作する前記第1のプロセッサと前記第2のOSが動作する前記第2のプロセッサのそれぞれからデータアクセス可能な共有領域である
    請求項に記載の半導体装置。
JP2018137376A 2018-07-23 2018-07-23 半導体装置 Active JP7083717B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018137376A JP7083717B2 (ja) 2018-07-23 2018-07-23 半導体装置
US16/456,317 US11079972B2 (en) 2018-07-23 2019-06-28 Semiconductor device
CN201910623456.6A CN110750470A (zh) 2018-07-23 2019-07-11 半导体器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018137376A JP7083717B2 (ja) 2018-07-23 2018-07-23 半導体装置

Publications (2)

Publication Number Publication Date
JP2020016913A JP2020016913A (ja) 2020-01-30
JP7083717B2 true JP7083717B2 (ja) 2022-06-13

Family

ID=69162944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018137376A Active JP7083717B2 (ja) 2018-07-23 2018-07-23 半導体装置

Country Status (3)

Country Link
US (1) US11079972B2 (ja)
JP (1) JP7083717B2 (ja)
CN (1) CN110750470A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286466B (zh) * 2020-11-18 2024-05-07 合肥沛睿微电子股份有限公司 电子装置及空间复用方法
CN112256460B (zh) * 2020-11-24 2024-07-09 北京元心科技有限公司 进程间通信方法、装置、电子设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003257A (ja) 2008-06-23 2010-01-07 Toshiba Corp 仮想計算機システム及びネットワークデバイス共有方法
US20120260017A1 (en) 2011-04-08 2012-10-11 Hitachi, Ltd. Computer, computer system, and data communication method
WO2014118969A1 (ja) 2013-02-01 2014-08-07 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法
JP2015197874A (ja) 2014-04-03 2015-11-09 日本電信電話株式会社 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム
JP2017059897A (ja) 2015-09-14 2017-03-23 株式会社東芝 分類器、通信装置、及び通信方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3448163B2 (ja) * 1996-07-19 2003-09-16 株式会社日立製作所 仮想コネクション選択装置
US7555753B2 (en) * 2004-02-26 2009-06-30 International Business Machines Corporation Measuring processor use in a hardware multithreading processor environment
JP4839489B2 (ja) 2008-02-06 2011-12-21 Necシステムテクノロジー株式会社 ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US9141538B2 (en) * 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
JP5540979B2 (ja) * 2010-08-06 2014-07-02 株式会社リコー 半導体集積回路、情報記憶方法
TWI465905B (zh) * 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
JP6241178B2 (ja) 2013-09-27 2017-12-06 富士通株式会社 ストレージ制御装置,ストレージ制御方法及びストレージ制御プログラム
CN107710160B (zh) * 2015-07-08 2021-06-22 株式会社日立制作所 计算机和存储区域管理方法
JP6476098B2 (ja) * 2015-09-15 2019-02-27 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003257A (ja) 2008-06-23 2010-01-07 Toshiba Corp 仮想計算機システム及びネットワークデバイス共有方法
US20120260017A1 (en) 2011-04-08 2012-10-11 Hitachi, Ltd. Computer, computer system, and data communication method
WO2014118969A1 (ja) 2013-02-01 2014-08-07 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法
JP2015197874A (ja) 2014-04-03 2015-11-09 日本電信電話株式会社 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム
JP2017059897A (ja) 2015-09-14 2017-03-23 株式会社東芝 分類器、通信装置、及び通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
深沢 豪、長嶺精彦、坂本龍一、佐藤未来子、吉永一美、辻田祐一、堀 敦史、石川 裕、並木美太郎,マルチコア・メニーコア混在型計算機における軽量OS向けI/Oライブラリの提案,情報処理学会研究報告[CD-ROM],日本,一般社団法人情報処理学会,2012年10月15日,Vol.2012-OS-122, No.6,pp.1-8,ISSN 1884-0930

Also Published As

Publication number Publication date
CN110750470A (zh) 2020-02-04
JP2020016913A (ja) 2020-01-30
US20200026434A1 (en) 2020-01-23
US11079972B2 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
US10122623B2 (en) Control device and control method in SDN network
KR101880407B1 (ko) 리소스 관리 방법, 호스트 및 엔드포인트
US20070174511A1 (en) Transmit rate pacing system and method
US9025443B2 (en) Network equipment and frame transmission control method
CN103812750B (zh) 数据通信设备cpu收发报文保护***及方法
JP7083717B2 (ja) 半導体装置
WO2019157849A1 (zh) 一种资源调度的方法、装置、设备及***
EP3461086B1 (en) Communication apparatus, communication method and computer-readable medium
US11372586B2 (en) System and method for regulating NVMe-oF command requests and data flow across a network with mismatched rates
WO2017141413A1 (ja) 計算機、通信ドライバ、および通信制御方法
US9699118B2 (en) System for flexible dynamic reassignment of throughput
WO2012012961A1 (zh) 总线调度方法及装置
EP2363807A1 (en) Address encryption/rate pacing
JP2017174301A (ja) 仮想マシン配置装置、仮想マシン配置方法および仮想マシン配置プログラム
JP2008181387A (ja) I/oバスシステム及びその管理方法
CN110532062B (zh) 一种虚拟化SoC总线***及配置方法
US10318457B2 (en) Method and apparatus for split burst bandwidth arbitration
US8004991B1 (en) Method and system for processing network information
JP7004815B2 (ja) 空調機、通信システム、及び制御方法
CN112737806A (zh) 网络流量的迁移方法及装置
EP3148163B1 (en) Function transfer method, device and system
JP7255675B2 (ja) 仮想マシン監視装置、仮想マシン監視方法およびプログラム
KR20130067900A (ko) 네트워크 자원 제어 방법 및 그 장치
KR20150113783A (ko) 테넌트 기반의 동적 프로세서 할당 장치 및 방법
WO2016006228A1 (ja) 仮想化システムおよび仮想化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220601

R150 Certificate of patent or registration of utility model

Ref document number: 7083717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150