JP5254710B2 - データ転送装置、データ転送方法およびプロセッサ - Google Patents
データ転送装置、データ転送方法およびプロセッサ Download PDFInfo
- Publication number
- JP5254710B2 JP5254710B2 JP2008223698A JP2008223698A JP5254710B2 JP 5254710 B2 JP5254710 B2 JP 5254710B2 JP 2008223698 A JP2008223698 A JP 2008223698A JP 2008223698 A JP2008223698 A JP 2008223698A JP 5254710 B2 JP5254710 B2 JP 5254710B2
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- user
- memory space
- user program
- data
- 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
Links
- 238000012546 transfer Methods 0.000 title claims description 325
- 238000000034 method Methods 0.000 title claims description 55
- 230000015654 memory Effects 0.000 claims description 140
- 238000012545 processing Methods 0.000 claims description 35
- 238000013518 transcription Methods 0.000 claims description 13
- 230000035897 transcription Effects 0.000 claims description 13
- 230000010365 information processing Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 239000000470 constituent Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
図4は、図1の情報処理装置1000の動作を示すフローチャートである。ユーザプログラムを実行するCPUスレッド12は、ユーザプログラムからの転送要求をユーザメモリ空間のリクエストキューにエンキューする(S10)。データ転送スレッド52の取得部54は、現在情報記憶部312およびキュー情報記憶部314を参照してキューのアドレスを特定する。取得部54は、CPUスレッド12において処理中のユーザプログラムに対応づけられたリクエストキューを優先して参照し、また、他のリクエストキューも時分割で参照し、各リクエストキューに保持された転送要求をデキューする(S12)。
転送種別「1」:
メインメモリ300内のデータ転送であって、転送元仮想アドレスに基づいて特定される記憶領域から転送先仮想アドレスに基づいて特定される記憶領域へのデータ転送処理が指定される。転送要求では、転送元仮想アドレスおよび転送先仮想アドレスが少なくとも指定される。なお、実施の形態と同様にデータサイズがさらに指定されてもよい。以下の転送種別についても同様である。
実施の形態で説明した処理、すなわち転送元と転送先の両方が指定されたキャッシュイン処理が指定される。転送要求では、転送元仮想アドレスおよび転送先仮想アドレスが少なくとも指定される。
メインメモリ300の特定の記憶領域からその記憶領域に対応づけられたキャッシュメモリ20の記憶領域に対するデータ転送、すなわちあらかじめ対応づけられた記憶領域間でのキャッシュイン処理が指定される。転送要求では、その特定の記憶領域を指定するための仮想アドレスが少なくとも指定される。データ転送装置50の特定部56は、その仮想アドレスに対応する物理アドレスを特定する。転記部58は、その物理アドレスが示すメインメモリ300の記憶領域からその仮想アドレスまたは物理アドレスに対応づけられたキャッシュメモリ20の記憶領域へデータを転記する。
処理種別「2」と反対の処理、すなわち転送元と転送先の両方が指定されたキャッシュアウト処理が指定される。転送要求では、転送元仮想アドレスおよび転送先仮想アドレスが少なくとも指定される。データ転送装置50の特定部56は、その仮想アドレスに対応する物理アドレスを特定する。転記部58は、転送元仮想アドレスまたは転送元物理アドレスに対応づけられたキャッシュメモリ20の記憶領域から転送先物理アドレスが示すメインメモリ300の記憶領域へデータを転記する。
処理種別「3」と反対の処理、すなわちあらかじめ対応づけられた記憶領域間でのキャッシュアウト処理が指定される。転送要求では、特定の記憶領域を指定するための仮想アドレスが少なくとも指定される。データ転送装置50の特定部56は、その仮想アドレスに対応する物理アドレスを特定する。転記部58は、その仮想アドレスまたは物理アドレスに対応づけられたキャッシュメモリ20の記憶領域からその物理アドレスが示すメインメモリ300の記憶領域へデータを転記する。
Claims (8)
- 特定の記憶領域のデータを別の記憶領域へ転送する装置であって、
CPUコアにおいて実行されるユーザプログラムからの要求であって、前記ユーザプログラムに対して割り当てられたユーザメモリ空間における転送元および転送先の仮想アドレスを少なくとも指定する転送要求を取得する取得部と、
前記取得部により取得された転送要求において指定された仮想アドレスに対応する物理アドレスを特定する特定部と、
前記特定部により特定された転送元の物理アドレスが示す記憶領域の原本データを、転送先の仮想アドレスまたは物理アドレスが示す記憶領域に転記する転記部と、
を備え、
前記CPUコアは、あるユーザプログラムの実行に際し、そのユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域を示すアドレスをカーネルメモリ空間に格納しつつ、複数のユーザプログラムが要求する複数の転送要求を、前記複数のユーザプログラムに対して割り当てられた複数の異なるユーザメモリ空間のうち、要求元のユーザプログラムに対して割り当てられたユーザメモリ空間の前記所定領域に格納し、格納した転送要求によるデータ転送の終了を待つことなく、他の処理を実行するものであり、
前記取得部は、
前記カーネルメモリ空間に格納されたアドレスにしたがって、前記複数のユーザプログラムのうち前記CPUコアで現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域を参照し、その領域に転送要求が格納されている場合に、その転送要求を他のユーザプログラムからの転送要求より優先して、前記現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域から取得する一方、
前記現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域に転送要求が格納されていない場合に、前記他のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域の参照を時分割で実行し、前記他のユーザプログラムからの転送要求を取得することを特徴とするデータ転送装置。 - 前記転記部は、キャッシュメモリにおける記憶領域であって、前記転送先の仮想アドレスまたは物理アドレスに対応づけられた記憶領域に前記原本データを転記することを特徴とする請求項1に記載のデータ転送装置。
- 前記転記部は、前記キャッシュメモリにおける記憶領域のうち当該データ転送装置以外からのアクセスが制限される記憶領域であって、前記転送先の仮想アドレスまたは物理アドレスに対応づけられた記憶領域に前記原本データを転記することを特徴とする請求項2に記載のデータ転送装置。
- 前記転送要求には、その転送要求を他の転送要求と対応づけて前記転記部に処理させるための転記IDが含まれ、
前記転記部は、特定の転記IDを含む複数の転送要求について、各転送要求をその要求順序にしたがって順次処理することを特徴とする請求項1から3のいずれかに記載のデータ転送装置。 - 前記転記部により前記原本データが転記されたとき、前記転送要求の処理が終了したことを前記ユーザプログラムに対して通知するための転送済通知を、前記ユーザプログラムを実行するCPUコアにおいて非同期に取得させるために、前記ユーザメモリ空間の所定領域に記憶させる通知部をさらに備えることを特徴とする請求項1から4のいずれかに記載のデータ転送装置。
- 前記転送要求には、その転送要求を他の転送要求と対応づけて前記通知部に処理させるための通知IDが含まれ、
前記通知部は、特定の通知IDを含む複数の転送要求が前記転記部において全て処理されたとき、前記通知IDに関する処理が終了したことを示す通知を前記転送済通知として前記ユーザメモリ空間の所定領域に記憶させることを特徴とする請求項5に記載のデータ転送装置。 - 特定の記憶領域のデータを別の記憶領域へ転送する装置が実行する方法であって、
CPUコアにおいて実行されるユーザプログラムからの要求であって、前記ユーザプログラムに対して割り当てられたユーザメモリ空間における転送元および転送先の仮想アドレスを少なくとも指定する転送要求を取得するステップと、
前記取得するステップで取得された転送要求において指定された仮想アドレスに対応する物理アドレスを特定するステップと、
前記特定するステップで特定された転送元の物理アドレスが示す記憶領域の原本データを、転送先の仮想アドレスまたは物理アドレスが示す記憶領域に転記するステップと、
を備え、
前記CPUコアは、あるユーザプログラムの実行に際し、そのユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域を示すアドレスをカーネルメモリ空間に格納しつつ、複数のユーザプログラムが要求する複数の転送要求を、前記複数のユーザプログラムに対して割り当てられた複数の異なるユーザメモリ空間のうち、要求元のユーザプログラムに対して割り当てられたユーザメモリ空間の前記所定領域に格納し、格納した転送要求によるデータ転送の終了を待つことなく、他の処理を実行するものであり、
前記取得するステップは、
前記カーネルメモリ空間に格納されたアドレスにしたがって、前記複数のユーザプログラムのうち前記CPUコアで現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域を参照し、その領域に転送要求が格納されている場合に、その転送要求を他のユーザプログラムからの転送要求より優先して、前記現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域から取得する一方、
前記現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域に転送要求が格納されていない場合に、前記他のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域の参照を時分割で実行し、前記他のユーザプログラムからの転送要求を取得することを特徴とするデータ転送方法。 - ユーザプログラムを実行するCPUコアと、
特定の記憶領域のデータを別の記憶領域へ転送するデータ転送装置と、
を備え、
前記CPUコアは、前記ユーザプログラムの実行に際し、前記ユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域を示すアドレスをカーネルメモリ空間に格納しつつ、前記ユーザプログラムからの要求であって、前記ユーザプログラムに対して割り当てられたユーザメモリ空間における転送元および転送先の仮想アドレスを少なくとも指定する転送要求について、複数のユーザプログラムが要求する複数の転送要求を、前記複数のユーザプログラムに対して割り当てられた複数の異なるユーザメモリ空間のうち、要求元のユーザプログラムに対して割り当てられたユーザメモリ空間の前記所定領域に格納し、格納した転送要求によるデータ転送の終了を待つことなく、他の処理を実行し、
前記データ転送装置は、
前記カーネルメモリ空間に格納されたアドレスにしたがって、前記複数のユーザプログラムのうち前記CPUコアで現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域を参照し、その領域に転送要求が格納されている場合に、その転送要求を他のユーザプログラムからの転送要求より優先して、前記現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域から取得する一方、前記現在実行中のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域に転送要求が格納されていない場合に、前記他のユーザプログラムに対して割り当てられたユーザメモリ空間の所定領域の参照を時分割で実行し、前記他のユーザプログラムからの転送要求を取得する取得部と、
前記取得部により取得された転送要求において指定された仮想アドレスに対応する物理アドレスを特定する特定部と、
前記特定部により特定された転送元の物理アドレスが示す記憶領域の原本データを、転送先の仮想アドレスまたは物理アドレスが示す記憶領域に転記する転記部とを有することを特徴とするプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008223698A JP5254710B2 (ja) | 2008-09-01 | 2008-09-01 | データ転送装置、データ転送方法およびプロセッサ |
US12/550,936 US8719542B2 (en) | 2008-09-01 | 2009-08-31 | Data transfer apparatus, data transfer method and processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008223698A JP5254710B2 (ja) | 2008-09-01 | 2008-09-01 | データ転送装置、データ転送方法およびプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010061220A JP2010061220A (ja) | 2010-03-18 |
JP5254710B2 true JP5254710B2 (ja) | 2013-08-07 |
Family
ID=41727020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008223698A Active JP5254710B2 (ja) | 2008-09-01 | 2008-09-01 | データ転送装置、データ転送方法およびプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US8719542B2 (ja) |
JP (1) | JP5254710B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201008965D0 (en) | 2010-05-28 | 2010-10-20 | Qinetiq Ltd | ROV terrain disruptor |
JP5417387B2 (ja) * | 2011-07-12 | 2014-02-12 | 日本電信電話株式会社 | 加入者データ管理方法及び呼制御システム |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
US10191672B2 (en) * | 2015-10-16 | 2019-01-29 | Google Llc | Asynchronous copying of data within memory |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63108448A (ja) * | 1986-10-25 | 1988-05-13 | Nec Corp | 入出力要求制御方式 |
JPH0520201A (ja) * | 1991-07-12 | 1993-01-29 | Toshiba Corp | 仮想記憶管理システム |
JPH0750453B2 (ja) * | 1992-11-04 | 1995-05-31 | 日本電気株式会社 | 入出力制御システム |
JPH0877062A (ja) * | 1994-09-02 | 1996-03-22 | Fuji Xerox Co Ltd | アドレス管理装置 |
JP3206458B2 (ja) * | 1996-10-18 | 2001-09-10 | 日本電気株式会社 | Dma転送方式 |
JP3484056B2 (ja) * | 1996-10-18 | 2004-01-06 | 松下電器産業株式会社 | データ転送装置及びデータ転送システム |
JP2000235542A (ja) * | 1999-02-16 | 2000-08-29 | Sony Corp | データ処理装置及び記録媒体 |
JP2005182538A (ja) * | 2003-12-19 | 2005-07-07 | Toshiba Corp | データ転送装置 |
JP2005258509A (ja) * | 2004-03-09 | 2005-09-22 | Fujitsu Ltd | ストレージ装置 |
US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
JP4785637B2 (ja) * | 2006-06-16 | 2011-10-05 | キヤノン株式会社 | データ転送装置及びその制御方法 |
US8949569B2 (en) * | 2008-04-30 | 2015-02-03 | International Business Machines Corporation | Enhanced direct memory access |
-
2008
- 2008-09-01 JP JP2008223698A patent/JP5254710B2/ja active Active
-
2009
- 2009-08-31 US US12/550,936 patent/US8719542B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20100058024A1 (en) | 2010-03-04 |
US8719542B2 (en) | 2014-05-06 |
JP2010061220A (ja) | 2010-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334262B2 (en) | On-chip atomic transaction engine | |
US9594521B2 (en) | Scheduling of data migration | |
US9760386B2 (en) | Accelerator functionality management in a coherent computing system | |
JP4322259B2 (ja) | マルチプロセッサシステムにおけるローカルメモリへのデータアクセスを同期化する方法および装置 | |
JP4531890B2 (ja) | 原子的更新処理を実行する方法 | |
US9280290B2 (en) | Method for steering DMA write requests to cache memory | |
EP2466474A1 (en) | Streaming translation in display pipe | |
CN111684427A (zh) | 高速缓存控制感知的存储器控制器 | |
US11995351B2 (en) | DMA engines configured to perform first portion data transfer commands with a first DMA engine and second portion data transfer commands with second DMA engine | |
US20170315915A1 (en) | Leases for Blocks of Memory in a Multi-Level Memory | |
US8930596B2 (en) | Concurrent array-based queue | |
US20180276128A1 (en) | Methods for performing a memory resource retry | |
EP1139222A1 (en) | Prefetch for TLB cache | |
CN113641596A (zh) | 缓存管理方法、缓存管理装置、处理器 | |
CN107250995B (zh) | 存储器管理设备 | |
GB2581836A (en) | Handling ring buffer updates | |
JP5254710B2 (ja) | データ転送装置、データ転送方法およびプロセッサ | |
JP4266629B2 (ja) | ページ・テーブル属性によるバス・インタフェース選択 | |
JP5213485B2 (ja) | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム | |
US7451274B2 (en) | Memory control device, move-in buffer control method | |
JP2007207249A (ja) | ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ | |
US10169235B2 (en) | Methods of overriding a resource retry | |
US8244919B2 (en) | Data transfer apparatus, system and method using the same | |
GB2502858A (en) | A method of copying data from a first memory location and storing it in a cache line associated with a different memory location | |
US20240345774A1 (en) | Information processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20101125 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110128 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120803 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130319 |
|
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: 20130409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130418 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5254710 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160426 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |