JP5516728B2 - マルチコアプロセッサシステム、制御プログラム、および制御方法 - Google Patents
マルチコアプロセッサシステム、制御プログラム、および制御方法 Download PDFInfo
- Publication number
- JP5516728B2 JP5516728B2 JP2012519177A JP2012519177A JP5516728B2 JP 5516728 B2 JP5516728 B2 JP 5516728B2 JP 2012519177 A JP2012519177 A JP 2012519177A JP 2012519177 A JP2012519177 A JP 2012519177A JP 5516728 B2 JP5516728 B2 JP 5516728B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- core
- cpu
- program
- task
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
図1は、マルチコアプロセッサシステムのハードウェアを示すブロック図である。図1において、マルチコアプロセッサシステム100は、マスタCPU101と、スレーブCPU102〜スレーブCPU104と、共有メモリ107と、スヌープコントローラ105と、を有している。また、各CPUと共有メモリ107とはバス106を介してそれぞれ接続されている。各CPUとスヌープコントローラ105とは、バス106とは異なるバスを介してそれぞれ接続されている。
図4は、マルチコアプロセッサシステム100の機能ブロック図である。マルチコアプロセッサシステム100は、たとえば、特定部401と移動部402と設定部403〜設定部406とを有している。特定部401と設定部403とはマスタCPU101に実行されるOS141が有している。移動部402はスヌープコントローラ105が有している。設定部404はスレーブCPU102に実行されるOS142が有している。設定部405はスレーブCPU103に実行されるOS143が有している。設定部406はスレーブCPU104に実行されるOS144が有している。
図11および図12は、OS141の制御処理手順を示すフローチャートである。まず、OS141が、サイズテーブル152と識別情報153とを取得し(ステップS1101)、現指定先CPUおよび次指定先CPUにマスタCPU101を設定する(ステップS1102)。つぎに、OS141が、マスタCPU101の命令キャッシュ111に周期実行プログラムの実行コードをロードし(ステップS1103)、ロードした実行コードの領域をロックする(ステップS1104)。
図13は、スヌープコントローラ105による移動処理を示すフローチャートである。まず、スヌープコントローラ105が、移動指示を受け付けたか否かを判断し(ステップS1301)、移動指示を受け付けていないと判断した場合(ステップS1301:No)、ステップS1301へ戻る。
図14は、次指定先CPUによる書き込み禁止設定処理を示すフローチャートである。まず、次指定先CPUが、ロック指示を受け付けたか否かを判断する(ステップS1401)。次指定先CPUが、ロック指示を受け付けていないと判断した場合(ステップS1401:No)、ステップS1401へ戻る。
図15は、現指定先CPUによる一時停止処理を示すフローチャートである。まず、現指定先CPUが、ロック解除指示を受け付けたか否かを判断する(ステップS1501)。現指定先CPUが、ロック解除指示を受け付けていないと判断した場合(ステップS1501:No)、ステップS1501へ戻る。
105 スヌープコントローラ
111,112,113,114 命令キャッシュ
Claims (3)
- マルチコアプロセッサから、特定のプログラムをキャッシュに格納する一のコアよりもキャッシュミスヒット率が低い他のコアを各コアに割り当てられたタスクの情報量に基づいて特定する特定手段と、
前記特定のプログラムを前記一のコアのキャッシュから前記特定手段により特定された他のコアのキャッシュに移動させる移動手段と、
前記移動手段により前記特定のプログラムが前記他のコアのキャッシュに移動させられた後、前記他のコアのキャッシュのうち前記特定のプログラムが格納された領域を書き込み禁止領域に設定する設定手段と、
を備えることを特徴とするマルチコアプロセッサシステム。 - 移動先コアのキャッシュと移動元コアのキャッシュと移動対象プログラムとの移動通知を受け付けると、前記移動元コアのキャッシュから前記移動先コアのキャッシュへ前記移動対象プログラムを移動させる制御回路にアクセス可能なマルチコアプロセッサに、
前記マルチコアプロセッサから、特定のプログラムをキャッシュに格納する一のコアよりもキャッシュミスヒット率が低い他のコアを各コアに割り当てられたタスクの情報量に基づいて特定する特定工程と、
前記制御回路に、前記特定のプログラムを前記一のコアのキャッシュから前記特定工程により特定された他のコアのキャッシュに移動させる移動処理工程と、
前記移動処理工程により前記特定のプログラムが前記他のコアのキャッシュに移動させられた後、前記他のコアのキャッシュのうち前記特定のプログラムが格納された領域を書き込み禁止領域に設定する設定工程と、
を実行させることを特徴とする制御プログラム。 - 移動先コアのキャッシュと移動元コアのキャッシュと移動対象プログラムとの移動通知を受け付けると、前記移動元コアのキャッシュから前記移動先コアのキャッシュへ前記移動対象プログラムを移動させる制御回路にアクセス可能なマルチコアプロセッサが、
前記マルチコアプロセッサから、特定のプログラムをキャッシュに格納する一のコアよりもキャッシュミスヒット率が低い他のコアを各コアに割り当てられたタスクの情報量に基づいて特定する特定工程と、
前記制御回路に、前記特定のプログラムを前記一のコアのキャッシュから前記特定工程により特定された他のコアのキャッシュに移動させる移動処理工程と、
前記移動処理工程により前記特定のプログラムが前記他のコアのキャッシュに移動させられた後、前記他のコアのキャッシュのうち前記特定のプログラムが格納された領域を書き込み禁止領域に設定する設定工程と、
を実行することを特徴とする制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/059875 WO2011155046A1 (ja) | 2010-06-10 | 2010-06-10 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014077376A Division JP5708861B2 (ja) | 2014-04-03 | 2014-04-03 | マルチプロセッサシステム、制御方法、および制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011155046A1 JPWO2011155046A1 (ja) | 2013-08-01 |
JP5516728B2 true JP5516728B2 (ja) | 2014-06-11 |
Family
ID=45097676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012519177A Expired - Fee Related JP5516728B2 (ja) | 2010-06-10 | 2010-06-10 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130097382A1 (ja) |
EP (1) | EP2581833A4 (ja) |
JP (1) | JP5516728B2 (ja) |
CN (1) | CN102934095A (ja) |
WO (1) | WO2011155046A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929723B (zh) * | 2012-11-06 | 2015-07-08 | 无锡江南计算技术研究所 | 基于异构众核处理器的并行程序段划分方法 |
JP6142916B2 (ja) * | 2013-03-01 | 2017-06-07 | 日本電気株式会社 | 情報処理装置、情報処理方法及びコンピュータプログラム |
JP5591969B1 (ja) * | 2013-03-27 | 2014-09-17 | 株式会社東芝 | マルチコアプロセッサおよび制御方法 |
JP5808450B1 (ja) | 2014-04-04 | 2015-11-10 | ファナック株式会社 | マルチコアプロセッサを使用して逐次プログラムを実行する制御装置 |
US9632958B2 (en) * | 2014-07-06 | 2017-04-25 | Freescale Semiconductor, Inc. | System for migrating stash transactions |
JP2016194831A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
JP2018101256A (ja) * | 2016-12-20 | 2018-06-28 | ルネサスエレクトロニクス株式会社 | データ処理システム及びデータ処理方法 |
US20190087333A1 (en) * | 2017-09-15 | 2019-03-21 | Qualcomm Incorporated | Converting a stale cache memory unique request to a read unique snoop response in a multiple (multi-) central processing unit (cpu) processor to reduce latency associated with reissuing the stale unique request |
CN110187891B (zh) * | 2019-03-18 | 2023-03-03 | 杭州电子科技大学 | 一种用于多核可编程控制器的程序开发方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207850A (ja) * | 1997-01-23 | 1998-08-07 | Nec Corp | マルチプロセッサシステムにおけるディスパッチング方 式、ディスパッチング方法およびディスパッチングプログ ラムを記録した記録媒体 |
JP2000276401A (ja) * | 1999-03-24 | 2000-10-06 | Nec Ibaraki Ltd | キャッシュメモリ制御方法および装置 |
JP2003248666A (ja) * | 2002-02-25 | 2003-09-05 | Nec Corp | マルチプロセッサシステム |
JP2008191949A (ja) * | 2007-02-05 | 2008-08-21 | Nec Corp | マルチコアシステムおよびマルチコアシステムの負荷分散方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163141A (en) * | 1988-08-01 | 1992-11-10 | Stenograph Corporation | RAM lock device and method for a text entry system |
US5983310A (en) * | 1997-02-13 | 1999-11-09 | Novell, Inc. | Pin management of accelerator for interpretive environments |
JP2002055966A (ja) * | 2000-08-04 | 2002-02-20 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法 |
US6615316B1 (en) * | 2000-11-16 | 2003-09-02 | International Business Machines, Corporation | Using hardware counters to estimate cache warmth for process/thread schedulers |
US7082602B2 (en) * | 2002-04-12 | 2006-07-25 | Intel Corporation | Function unit based finite state automata data structure, transitions and methods for making the same |
US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
US8490101B1 (en) * | 2004-11-29 | 2013-07-16 | Oracle America, Inc. | Thread scheduling in chip multithreading processors |
JP2007102332A (ja) * | 2005-09-30 | 2007-04-19 | Toshiba Corp | 負荷分散システム及び負荷分散方法 |
US8812822B2 (en) * | 2006-02-09 | 2014-08-19 | International Business Machines Corporation | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss |
US8533395B2 (en) * | 2006-02-24 | 2013-09-10 | Micron Technology, Inc. | Moveable locked lines in a multi-level cache |
US7774549B2 (en) * | 2006-10-11 | 2010-08-10 | Mips Technologies, Inc. | Horizontally-shared cache victims in multiple core processors |
US20080263279A1 (en) * | 2006-12-01 | 2008-10-23 | Srinivasan Ramani | Design structure for extending local caches in a multiprocessor system |
US7996632B1 (en) * | 2006-12-22 | 2011-08-09 | Oracle America, Inc. | Device for misaligned atomics for a highly-threaded x86 processor |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
-
2010
- 2010-06-10 JP JP2012519177A patent/JP5516728B2/ja not_active Expired - Fee Related
- 2010-06-10 EP EP10852885.2A patent/EP2581833A4/en not_active Withdrawn
- 2010-06-10 CN CN2010800672719A patent/CN102934095A/zh active Pending
- 2010-06-10 WO PCT/JP2010/059875 patent/WO2011155046A1/ja active Application Filing
-
2012
- 2012-12-07 US US13/708,215 patent/US20130097382A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207850A (ja) * | 1997-01-23 | 1998-08-07 | Nec Corp | マルチプロセッサシステムにおけるディスパッチング方 式、ディスパッチング方法およびディスパッチングプログ ラムを記録した記録媒体 |
JP2000276401A (ja) * | 1999-03-24 | 2000-10-06 | Nec Ibaraki Ltd | キャッシュメモリ制御方法および装置 |
JP2003248666A (ja) * | 2002-02-25 | 2003-09-05 | Nec Corp | マルチプロセッサシステム |
JP2008191949A (ja) * | 2007-02-05 | 2008-08-21 | Nec Corp | マルチコアシステムおよびマルチコアシステムの負荷分散方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130097382A1 (en) | 2013-04-18 |
CN102934095A (zh) | 2013-02-13 |
JPWO2011155046A1 (ja) | 2013-08-01 |
WO2011155046A1 (ja) | 2011-12-15 |
EP2581833A1 (en) | 2013-04-17 |
EP2581833A4 (en) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5516728B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
JP5516744B2 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
US8689221B2 (en) | Speculative thread execution and asynchronous conflict events | |
US6016490A (en) | Database management system | |
KR102571293B1 (ko) | 충돌들의 존재시 효율적인 작업 스케줄링을 위한 방법 | |
US9542238B2 (en) | Systems and methods for direct memory access coherency among multiple processing cores | |
US9378069B2 (en) | Lock spin wait operation for multi-threaded applications in a multi-core computing environment | |
US9733981B2 (en) | System and method for conditional task switching during ordering scope transitions | |
JP2004280297A (ja) | タスク切換装置、方法及びプログラム | |
KR20090005921A (ko) | 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치 | |
CN106537329B (zh) | 用于为多线程执行锁保护处理操作的数据处理装置及方法 | |
WO2007055917A1 (en) | Program thread synchronization | |
JP5347451B2 (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
JP2009059310A (ja) | プログラム制御装置 | |
JP2012043031A (ja) | 共有キャッシュメモリ装置 | |
JP5708861B2 (ja) | マルチプロセッサシステム、制御方法、および制御プログラム | |
WO2012014287A1 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
CN107305507B (zh) | 死锁控制方法和装置 | |
US20150277973A1 (en) | System and method for conditional task switching during ordering scope transitions | |
JP4857325B2 (ja) | タスク切換装置、方法及びプログラム | |
JP5776813B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム | |
JP2008176804A (ja) | タスクスケジューリングシステム、方法、およびプログラム | |
JP2684993B2 (ja) | プロセッサシステムとその制御方法 | |
JP5300005B2 (ja) | スレッド実行制御方法、およびシステム | |
JP2011018281A (ja) | ジョブ実行管理システム、ジョブ実行管理方法、ジョブ実行管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130806 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131007 |
|
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: 20140304 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140317 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5516728 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |