JP2013191202A - マルチコアプロセッサ - Google Patents

マルチコアプロセッサ Download PDF

Info

Publication number
JP2013191202A
JP2013191202A JP2013023797A JP2013023797A JP2013191202A JP 2013191202 A JP2013191202 A JP 2013191202A JP 2013023797 A JP2013023797 A JP 2013023797A JP 2013023797 A JP2013023797 A JP 2013023797A JP 2013191202 A JP2013191202 A JP 2013191202A
Authority
JP
Japan
Prior art keywords
task
core
main memory
writing
cores
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.)
Pending
Application number
JP2013023797A
Other languages
English (en)
Inventor
Moe Imada
萌 今田
Takahiro Oizumi
敬弘 大泉
Shingo Yamazaki
真吾 山崎
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013023797A priority Critical patent/JP2013191202A/ja
Priority to US13/767,333 priority patent/US20130212338A1/en
Publication of JP2013191202A publication Critical patent/JP2013191202A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multi Processors (AREA)

Abstract

【課題】複数のタスクを処理するマルチコアプロセッサシステムの処理速度を向上させる。
【解決手段】マルチコアプロセッサ1は、複数のコア10、20と、コア10、20それぞれが共有して利用し、書き込み可能なデータ容量の範囲毎に区分された複数のセクション31〜33に分割されたメインメモリ30と、を有する。コア10、20に要求されるタスクは、当該タスクのデータ容量によって、書き込まれるセクション31〜33が予め設定されている。
【選択図】図1

Description

本発明は、複数のコアを備えたマルチコアプロセッサに関する。
従来、複数のコアがメインメモリを共有する密結合型のマルチコアプロセッサシステムが知られている。このようなマルチコアプロセッサシステムの一例としては特許文献1に記載されているように、コア毎のメッセージ交換バッファをメインメモリに設け、この交換バッファを介してデータ交換が行われる構成が採用されている。
具体的には、まず送信側のコアがデータを共有メモリ上のメッセージ交換バッファにデータをセットしたのちに、受信側のコアに対して割り込み要求を出す。受信側のコアは、メッセージ交換バッファからデータを取り込み、受信バッファにデータをセットする。受信側のコアは、受信データによる要求処理完了後、処理完了のメッセージをメッセージ交換バッファにセットする。受信側のコアは、送信側のコアに対して割り込み要求を出し、送信側のコアはメッセージ交換バッファから処理完了のメッセージを受理する。
しかしながら、上記のような方式におけるコア間通信においては、あるタスクにおいてコア間の通信が発生しているときには、他のタスクに対してメモリへの書き込みが排他状態となっている。このため、処理待ちが発生してしまい、処理速度の低下を招いてしまう可能性があった。
本発明は、上記に鑑みてなされたものであって、複数のタスクを処理するマルチコアプロセッサの処理速度を向上させることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数のコアと、前記コアそれぞれが共有して利用し、書き込み可能なデータ容量が予め定められた複数の記憶領域に区分された共有メモリと、を有するマルチコアプロセッサであって、前記コアに要求されるタスクは、当該タスクのデータ容量によって、書き込まれる前記記憶領域が予め設定されていることを特徴とする。
本発明によれば、複数のタスクを処理するマルチコアプロセッサの処理速度を向上させることができるという効果を奏する。
図1は、マルチコアプロセッサの全体構成を示す概念図である。 図2は、マルチコアプロセッサにおけるメインメモリへの書き込み処理の概要を示す図である。 図3は、マルチコアプロセッサによる、コア間におけるメインメモリへの書き込みが可能な際の処理の流れを示すシーケンス図である。 図4は、マルチコアプロセッサによる、コア間におけるメインメモリへの書き込みができない場合の処理の流れを示すシーケンス図である。
以下に添付図面を参照して、マルチコアプロセッサの実施の形態を詳細に説明する。図1は、実施の形態にかかるマルチコアプロセッサの構成を示すブロック図である。マルチコアとは、1つのプロセッサパッケージ内に複数のプロセッサコアを封入したものであり、本実施形態においては2つのコアを実装した実施形態を示すが、コアの数が増えた場合であっても本発明は適用可能である。
図1に示されるマルチコアプロセッサ1は、第1コア10、第2コア20、及びメインメモリ30を備えている。第1コア10には、実装I/F11、スタブI/F12、タスク送信部13、及びタスク受信部14が設けられている。同じく、第2コア20には、実装I/F21、スタブI/F22、タスク送信部23、及びタスク受信部24が設けられている。タスクとは、様々なプログラムやライブラリにより実行を要求される処理命令である。
実装I/F11、22は、受理したタスクをプロセッサにおいて実行するための処理命令として受け付けるインタフェースである。スタブI/F12、22は、異なるコア間では直接実装I/F11、12をコールすることができないことから、仮想的に他のコアのシステムをコールすることができるように論理的に設定したスタブとして機能する。第1コア10のスタブI/F12は、第2コア20の実装I/F21と論理的に同じインタフェースとして設定されており、一方、第2コア20のスタブI/F22は、第1コア10の実装I/F11と論理的に同じインタフェースとして設定されている。
タスク送信部13、23は、コアが受信したタスクをメインメモリ30へと書き込むとともに、書き込みの際に他のコアのタスク受信部14、24へと書き込みを通知し、書き込み部に相当する。なお、タスク送信部13、23は、メインメモリ30への書き込みの際には、メインメモリ30の記憶領域への他の処理による書き込みを禁止する排他制御を行う。タスク受信部14、24は、タスク送信部13、23から受理した書き込み通知を契機に、メインメモリ30の指定の場所からデータの読み込み処理を行い、受付部に相当する。このように、メインメモリ30と介して、第1コア10、及び第2コア20の間でのデータの交換が行われる。
また、メインメモリ30(共有メモリ)は、3つのセクション(記憶領域)を備えている。第1セクション31は、データ容量が32バイト以下のデータの書き込み、及び読み込みに利用されるセクションである。第2セクション32は、32バイトより大きく、1キロバイト以下のデータの書き込み、及び読み込みに利用されるセクションである。第3セクション33は、1キロバイトより大きく、65キロバイト以下のデータの書き込み、及び読み込みに利用されるセクションである。なお、本実施形態にあっては、全てのセクションのサイズが異なる場合を表示したが、同じサイズに対応したセクションが複数も受けられるようにしてもよい。また、メインメモリ30は、図示しないセクション31〜33以外の領域に、各セクションの位置の範囲を示すアドレス情報や、各セクション31〜33が使用中であるか否かを示すフラグ情報などを記憶する領域を有している。
図2は、どのセクション31〜33に対してタスクが書き込まれるかについての概要を示した図である。図2に示されるように、スタブI/F12、22には、それぞれプロトコル(プログラムやライブラリ)毎に対応するインタフェースがそれぞれ設けられている。例えば、プロトコル1から要求されたタスクについては、スタブI/F Aがコールされて、タスク送信部13へと引き渡される。コールされるインタフェースは、タスクのデータ容量に応じて設定されている。したがって、プロトコルが要求するタスクごとに、そのデータ容量に応じて予め書き込みが行われるセクションが設定されている。
次に、図1を参照して、コア間のデータの交換の処理の流れについて説明する。説明においては、第1コア10から第2コア20へとデータが渡される場合を想定している。図1に示されるように、(1)第1コア10に対して要求されたタスクは、第1コア10において設けられた第2コア20と論理的に接続されたスタブI/F12をコールする。この際、コールするスタブI/F12は、タスクに必要なメモリのサイズによって決定される。(2)続いて、スタブI/F12は、要求タスクをタスク送信部13へと転送して、処理要求を行う。(3)処理要求を受け付けたタスク送信部13は、メインメモリ30へとタスクの書き込みを行う。この際、タスクに必要なデータ容量に応じて予め設定されたセクション31〜33に対して、書き込みが行われる。本実施形態では、コールされたスタブI/F12によって、書き込まれるメインメモリ30のセクションが予め対応付けられて決定されている。したがって、タスク1がスタブI/F12を選択した時点で書き込むセクションは決定されている。書き込むセクションの判断基準は、上述した各セクション31〜33毎に定められた対応するデータ容量に基づく。なお、タスク送信部13は、データを書き込んだセクション31〜33に対し、後述するタスク受信部14によるデータの読み込みが行われるまでの間、他のタスクの書き込みを禁止する排他制御を行う。また、この段階でタスク送信部13は、解放されて他のタスクを受け付けて処理可能となる。
(4)続いて、タスク送信部13は、第2コア20のタスク受信部24に対して、メインメモリ30の書き込みを行ったセクション31〜33を指定して、通知を行う。(5)通知を受け取ったタスク受信部24は、メインメモリ30の指定のセクション31〜33からタスクが書き込んだ情報の読み込みを行う。(6)タスク受信部24は、実装I/F21をコールして、読み込んだタスクが書き込んだ情報を引き渡す。(7)タスクが書き込んだ情報を受け取った実装I/F21は、タスクが書き込んだ情報に基づいた処理を第2コア20にて実行し、その実行結果をタスク受信部24へと返信する。(8)タスク受信部24は、受け取った実行結果をメインメモリ30の該当するセクション31〜33へと書き込む。(9)タスク受信部24は、実行結果を書き込んだことをコア10のタスク受信部14へと通知する。(10)第1コア10のタスク受信部14は、メインメモリ30の指定のセクション31〜33から第2コア20におけるタスクの実行結果を読み込む。なお、この時点でタスク1によるメインメモリ30の排他制御は終了する。具体的には、上述する該当するセクションの使用中か否かを示すフラグ情報が更新される。(11)タスク受信部14は、読み込んだタスクの実行結果をコールされたスタブI/F12へと送信する。(12)そして、最後にスタブI/F12は、元のタスク1へと実行結果を送信し、処理を終了する。なお、第2コア20においてタスクを要求された場合においても同様の処理の流れとなる。
続いて、以上で示したタスクの処理の流れを図3、図4のシーケンス図を用いて説明する。図3は、メインメモリ30に書き込みが成功した場合、図4はメインメモリ30への書き込みが出来なかった場合を示している。図3に示されるように、まずタスク1はスタブI/F12に対して、ファンクションコールを実行する(ステップS101)。次いで、スタブI/F12は、タスク送信部13に対して、ファンクションIDや引数情報、メインメモリ30で書き込みに必要なセクションサイズなどの情報を含むファンクションコール要求を行う(ステップS102)。タスク送信部13は、メインメモリ30に対して、スタブI/F12から要求されたセクションサイズに相当するメインメモリ30のセクション31〜33を確保する(ステップS103)。また、タスク送信部13は、確保したメインメモリ30のセクション31〜33に相当する使用中を示すフラグ情報を「使用中」に相当する値に更新する(ステップS104)。
次いで、タスク送信部13は、メインメモリ30の該当するセクション31〜33に、ファンクションIDと、引数を書き込む(ステップS105)。これらの処理をして、コア20からの返信があるまでスタブI/F12は待機中となる(ステップS106)。次いで、タスク送信部13は、コア20のタスク受信部24に対して、書き込んだメインメモリ30のセクション31〜33の書き込み位置を通知する(ステップS107)。タスク受信部24は、実装I/F21に対してファンクションコールを送信し、実装I/F21を通じて処理が実行され、処理の結果を受け取る(ステップS108)。
タスク受信部24は、タスクの処理結果として受け取ったファンクションIDと、戻り値をメインメモリ30に書き込む(ステップS109)。この際、書き込むセクション31〜33も、ステップS103で確保したセクションと同様である。次いで、タスク受信部24は、コア10のタスク受信部14に対して戻り値を書き込んだメインメモリ30の位置情報を通知する(ステップS110)。タスク受信部14は、指定された位置情報のメインメモリ30からファンクションIDと戻り値を読み出す(ステップS111)。この際、タスク受信部14は、メインメモリ30の該当するセクション31〜33のフラグ情報を「未使用」へと更新する(ステップS112)。タスク受信部14は、戻り値をスタブI/F12へと通知し(ステップS112)、戻り値はタスク1へと返却される(ステップS113)。
次に、メインメモリ30への書き込みが出来なかった場合について図4を参照して説明する。ステップS103までは図3の場合と同様であり説明は省略する。図4に示されるように、ステップS103のメモリ領域の確保にかかる処理の結果として、タスク送信部13は、エラーを受け取る。タスク送信部13は、スタブI/F12に対してエラー戻り値を通知し(ステップS201)、タスク1にエラー戻り値が返却される(ステップS202)。
以上に示した本実施の形態のマルチコアプロセッサ1においては、複数のコア間におけるデータの交換がメインメモリ30を介して行われる場合に、タスクのデータサイズに応じて利用するメインメモリ30のセクション31〜33を変更する。このため、複数のタスクが並列して処理を要求される場合に、排他処理によってメインメモリ30への書き込みを行うことができずに待ち時間が発生してしまう頻度を極力抑えることができる。したがって、複数のタスクを処理するマルチコアプロセッサシステムの処理速度を向上させることができるようになる。
このような並列するタスクの例としては、例えばHTTPのプロトコルで、プリンタなどの管理画面を取得する処理と、SNMPのプロトコルでプリンタの状態を制御する処理などがある。このように同時に要求されることが多いタスクがあっても、メモリへのアクセの待機待ちを回避して、処理の高速化を図ることができるようになる。
また、タスク送信部13は、メインメモリ30への書き込みが終わった時点で、新たなタスクを受理して処理することが可能となる。このため、処理の高速化を図ることができるようになる。
なお、本実施形態においては、メインメモリ30のセクション数を3つとしたが、これは適宜変更することができる。また、同じデータサイズに対応するセクションを複数も受けてもよい。また、メインメモリ30の各セクションごとに記憶可能なデータ量は本実施形態で示した例に限定されず、他の組み合わせに変更してもよい。
1 マルチコアプロセッサ
10 第1コア
11 実装I/F
12 スタブI/F
13 タスク送信部
14 タスク受信部
20 第2コア
21 実装I/F
22 スタブI/F
23 タスク送信部
24 タスク受信部
30 メインメモリ
31 第1セクション
32 第2セクション
33 第3セクション
特開昭57−161962号公報

Claims (3)

  1. 複数のコアと、
    前記コアそれぞれが共有して利用し、書き込み可能なデータ容量が予め定められた複数の記憶領域に区分された共有メモリと、
    前記コアに対して要求されるタスクを受け付ける受付部と、
    受け付けた前記タスクを、当該タスクのデータ容量に応じて予め設定された前記記憶領域に対して書き込む書き込み部と、
    を備えることを特徴とするマルチコアプロセッサ。
  2. 前記共有メモリは、同一の前記データ容量の範囲に対応する前記記憶領域をそれぞれ少なくとも2以上有している
    ことを特徴とする請求項1に記載のマルチコアプロセッサ。
  3. 前記書き込み部は、前記記憶領域に対して前記タスクを書き込む際に、他のタスクによる書き込みを禁止する排他処理を行うとともに、前記タスクの共有メモリにおける書き込み位置を交換先の他の前記コアへと通知し、
    前記排他処理は、前記他のコアによる当該タスクの処理が完了した結果の戻り値が前記記憶領域から読み出された際に、解除される
    ことを特徴とする請求項1に記載のマルチコアプロセッサ。
JP2013023797A 2012-02-14 2013-02-08 マルチコアプロセッサ Pending JP2013191202A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013023797A JP2013191202A (ja) 2012-02-14 2013-02-08 マルチコアプロセッサ
US13/767,333 US20130212338A1 (en) 2012-02-14 2013-02-14 Multicore processor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012029674 2012-02-14
JP2012029674 2012-02-14
JP2013023797A JP2013191202A (ja) 2012-02-14 2013-02-08 マルチコアプロセッサ

Publications (1)

Publication Number Publication Date
JP2013191202A true JP2013191202A (ja) 2013-09-26

Family

ID=48946624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013023797A Pending JP2013191202A (ja) 2012-02-14 2013-02-08 マルチコアプロセッサ

Country Status (2)

Country Link
US (1) US20130212338A1 (ja)
JP (1) JP2013191202A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4204251A (en) * 1977-12-28 1980-05-20 Finn Brudevold Interconnection unit for multiple data processing systems
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
US8028292B2 (en) * 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7603544B2 (en) * 2004-12-23 2009-10-13 Intel Corporation Dynamic allocation of a buffer across multiple clients in multi-threaded processor without performing a complete flush of data associated with allocation
US8479208B2 (en) * 2007-03-30 2013-07-02 Intel Corporation System partitioning to present software as platform level functionality including mode logic to maintain and enforce partitioning in first and configure partitioning in second mode

Also Published As

Publication number Publication date
US20130212338A1 (en) 2013-08-15

Similar Documents

Publication Publication Date Title
JP6444405B2 (ja) ソフトウェア更新方法、システム及びデバイス
CN108647104B (zh) 请求处理方法、服务器及计算机可读存储介质
CN104216862B (zh) 一种用户进程与系统服务之间的通信方法、装置
CN102630315B (zh) 用于防止死锁状态的数据处理方法及系统
US20090307408A1 (en) Peer-to-Peer Embedded System Communication Method and Apparatus
CN110825690B (zh) 多核处理器的核间通信方法及装置
CN101170511A (zh) 嵌入式操作系统中实现多核处理器通信的装置及方法
CN118550857B (zh) 一种数据传输方法、装置、电子设备以及存储介质
CN107577534A (zh) 一种资源调度方法及装置
CN119254847B (zh) 一种事务的协议转换方法、装置、设备和存储介质
KR102681251B1 (ko) 입/출력 저장 명령의 처리
US20160294926A1 (en) Using a single work item to send multiple messages
CN119473957A (zh) 中断控制装置及方法、电子设备和计算机可读存储介质
US20140280674A1 (en) Low-latency packet receive method for networking devices
CN110445580B (zh) 数据发送方法及装置、存储介质、电子装置
CN116841952A (zh) 核间通信系统、方法、装置、设备、芯片及可读存储介质
CN102117261B (zh) 一种芯片内部处理器之间的通信方法
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
CN114531351B (zh) 传输报文的方法、装置、设备及计算机可读存储介质
US20260111267A1 (en) Resource management method and apparatus, electronic device, and storage medium
CN108874560B (zh) 进行通信的方法和通信设备
CN118916312A (zh) 一种数据传输方法、装置、系统、计算机设备及存储介质
US20160162199A1 (en) Multi-processor communication system sharing physical memory and communication method thereof
CN102736949B (zh) 改善对非连贯设备要执行的任务的调度
JP2011028333A (ja) 回路情報生成装置、機能実行システム、及びプログラム