JP2006503361A - データ処理装置及びデータ処理装置内の少なくとも2つの処理手段を同期させる方法 - Google Patents
データ処理装置及びデータ処理装置内の少なくとも2つの処理手段を同期させる方法 Download PDFInfo
- Publication number
- JP2006503361A JP2006503361A JP2004544529A JP2004544529A JP2006503361A JP 2006503361 A JP2006503361 A JP 2006503361A JP 2004544529 A JP2004544529 A JP 2004544529A JP 2004544529 A JP2004544529 A JP 2004544529A JP 2006503361 A JP2006503361 A JP 2006503361A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- queue
- record
- task
- pointer
- 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
Links
Images
Classifications
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
同じ処理手段または他の処理手段による更なる処理のためにデータを供給することができる少なくとも1つの処理手段と、
第1の処理手段によって行なわれる1つの生産タスクと少なくとも1つの第2の処理手段によって実行される多数の消費タスクとの間に少なくとも2つのブランチを含むキュー構造と、
上記消費タスクによってアクセスされるデータを記憶するとともに、上記少なくとも2つのブランチ間で共有されるメモリ手段と、
を備えるデータ処理装置に関する。
第1の処理手段によって行なわれる1つの生産タスクと少なくとも1つの第2の処理手段によって実行される消費タスクとの間に少なくとも2つのブランチを含むキュー構造を規定するステップと、
上記消費タスクによってアクセスされるデータを記憶するためのメモリ手段を上記少なくとも2つのブランチ間で共有するステップと、
を含む方法に関する。
上記生産タスクと第1の消費タスクとの間の主ブランチのための主ブランチ記録と、上記生産タスクと更なる消費タスクとの間の副ブランチのための副ブランチ記録とを含み、ブランチ記録のリンクリストを得るために、上記ブランチ記録が上記メモリ手段の同じ記憶場所へのポインタと次のブランチへの参照とを記憶するブランチ記録手段、
を更に備えるデータ処理装置によって達成される。
上記生産タスクと第1の消費タスクとの間の主ブランチのための主ブランチ記録と、上記生産タスクと更なる消費タスクとの間の副ブランチのための副ブランチ記録とを含み、ブランチ記録のリンクリストを得るために、上記ブランチ記録が上記メモリ手段の同じ記憶場所へのポインタと次のブランチへの参照とを記憶するブランチ記録手段を規定するステップ、
を更に含む方法によって達成される。
−キュー識別子。
−キュー内のバッファの数。
−キューが操作しているモード(割り込みまたはポール、静的または動的)を示すフラグ。
−生産者タスク記録および消費者タスク記録へのポインタ。
−キューバッファポインタ。
−2つのキュー同期値(pcomおよびccom、生産者側の同期値および消費者側の同期値)。これらの値はキューの満/空を決定するために使用される。
−claim space(キュー):書き込みのためキュー内の空のバッファを要求する
−release data(キュー):満杯になったバッファを解放して消費者に信号を送る
−claim data(キュー):読み取りのためのキュー内の満杯のバッファを要求する
−release space(キュー):空のバッファを解放して生産者に信号を送る
queueT*queue create(int id,taskT*P,taskT*C,int nbuf,int flags)
queueT*queue add branch(queueT*ch,taskT*C)
−破壊
−再ルート付け
−属性(例えばバッファサイズ、モードフラグ)の変更
−ブランチの付加または削除
void queue destroy(queueT*queue)
Claims (12)
- 同じ処理手段または他の処理手段による更なる処理のためにデータを供給することができる少なくとも1つの処理手段と、
第1の処理手段によって行なわれる1つの生産タスクと少なくとも1つの第2の処理手段によって実行される多数の消費タスクとの間に少なくとも2つのブランチを含むキュー構造と、
前記消費タスクによってアクセスされるデータを記憶するとともに、前記少なくとも2つのブランチ間で共有されるメモリ手段と、
前記生産タスクと第1の消費タスクとの間の主ブランチのための主ブランチ記録と、前記生産タスクと更なる消費タスクとの間の副ブランチのための副ブランチ記録とを含み、ブランチ記録のリンクリストを得るために、前記ブランチ記録が前記メモリ手段の同じ記憶場所へのポインタと次のブランチへの参照とを記憶するブランチ記録手段と、
を備えている、データ処理装置。 - ブランチ記録の二重リンクリストを得るために、前記副ブランチ記録が前のブランチへの参照を更に記憶する、請求項1に記載のデータ処理装置。
- 前記各ブランチ記録は、キュー内における生産タスクの位置を示すライターポインタと、キュー内における消費タスクの位置を示すリーダーポインタとを含んでおり、前記ライターポインタが全てのブランチ記録において同じである、請求項1に記載のデータ処理装置。
- 前記各ブランチ記録は、キュー内における生産タスクの位置を示すライターカウンタと、キュー内における消費タスクの位置を示すリーダーカウンタとを含んでおり、前記ライターカウンタが全てのブランチ記録において同じである、請求項1に記載のデータ処理装置。
- データ処理装置内の少なくとも2つの処理手段を同期させる方法であって、前記処理手段のうちの少なくとも1つが他の処理手段による更なる処理のためにデータを供給することができる方法において、
第1の処理手段によって行なわれる1つの生産タスクと少なくとも1つの第2の処理手段によって実行される消費タスクとの間に少なくとも2つのブランチを含むキュー構造を規定するステップと、
前記消費タスクによってアクセスされるデータを記憶するためのメモリ手段を前記少なくとも2つのブランチ間で共有するステップと、
前記生産タスクと第1の消費タスクとの間の主ブランチのための主ブランチ記録と、前記生産タスクと更なる消費タスクとの間の副ブランチのための副ブランチ記録とを含み、ブランチ記録のリンクリストを得るために、前記ブランチ記録が前記メモリ手段の同じ記憶場所へのポインタと次のブランチへの参照とを記憶するブランチ記録手段を規定するステップと、
を含む方法。 - 前記主ブランチ記録からライターポインタまたはライターカウンタを読み取るステップと、
前記リンクリスト内の前記副ブランチ記録からリーダーポインタまたはリーダーカウンタを読み取るステップと、
前記リーダーポインタまたはリーダーカウンタと前記ライターポインタまたはライターカウンタとを比較して、前記生産タスクによる書き込みのために利用できる個々のブランチ内の使用可能バッファ空間の量を決定するステップと、
前記生産タスクによってキュー内に新たなデータ項目を書き込んだ後に主キュー記録内の前記ライターポインタまたはライターカウンタをインクリメントするステップと、
前記副ブランチ記録内で前記ライターポインタまたはライターカウンタの値を更新するステップと、
キューに帰属する消費タスクに対してキュー満杯の変化を送信し、消費者タスクがブロック状態の場合にそのブロック状態を解除するステップと、
を更に含む、請求項5に記載の方法。 - キュー全体で利用できる空のバッファ空間の実際の量は、全てのブランチにわたる空のバッファ空間の最小量によって示され、任意のブランチが満杯になった時に前記生産タスクがブロックされる、請求項6に記載の方法。
- 対応するブランチ記録からライターポインタまたはライターカウンタとリーダーポインタまたはリーダーカウンタとを読み取って、対応する消費タスクにより特定のブランチ内で読み取るために利用できるキュー内の利用可能なデータ項目の数を決定するステップと、
特定の消費タスクによってキューからデータ項目を読み取った後に対応するブランチ記録内の前記リーダーポインタまたはリーダーカウンタをインクリメントするステップと、
前記生産タスクに対してキュー満杯の変化を送信することにより、前記生産タスクがブロック状態の場合にそのブロック状態を解除するステップと、
を更に含む、請求項5に記載の方法。 - 前記消費タスクは、その対応するブランチが空の時にブロックされる、請求項8に記載の方法。
- 前記主ブランチのブランチ記録を新たな副ブランチのブランチ記録内にコピーするとともに、前記新たな副ブランチへの参照を前の最後のブランチのブランチ記録に対して加えることにより、前記副ブランチが前記キュー構造に対して動的に加えられる、請求項5に記載の方法。
- 副ブランチは、その副ブランチ記録を前記キュー記録手段から除去するとともに、その先行ブランチのブランチ記録内に記憶された次のブランチへの参照を更新して除去されたブランチの後継ブランチを参照し、その後継ブランチのブランチ記録内に記憶された前のブランチへの参照を更新して除去されたブランチの先行ブランチを参照することにより、前記キュー構造からが除去される、請求項5に記載の方法。
- 前記主ブランチは、その主ブランチ記録を前記キュー記録手段から除去するとともに、最初の副ブランチのブランチ記録内に記憶された主ブランチ記録への参照を削除するとともに、主ブランチの削除および最初の副ブランチが主ブランチになったという事実を生産タスクに対して知らせることにより、前記キュー構造からが除去される、請求項5に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02079296 | 2002-10-15 | ||
PCT/IB2003/004041 WO2004036422A2 (en) | 2002-10-15 | 2003-09-12 | Data processing apparatus and method of synchronizing at least two processing means in a data processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006503361A true JP2006503361A (ja) | 2006-01-26 |
Family
ID=32103945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004544529A Pending JP2006503361A (ja) | 2002-10-15 | 2003-09-12 | データ処理装置及びデータ処理装置内の少なくとも2つの処理手段を同期させる方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060031839A1 (ja) |
EP (1) | EP1573535A2 (ja) |
JP (1) | JP2006503361A (ja) |
CN (1) | CN1714340A (ja) |
AU (1) | AU2003260857A1 (ja) |
WO (1) | WO2004036422A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650386B2 (en) | 2004-07-29 | 2010-01-19 | Hewlett-Packard Development Company, L.P. | Communication among partitioned devices |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7320063B1 (en) | 2005-02-04 | 2008-01-15 | Sun Microsystems, Inc. | Synchronization primitives for flexible scheduling of functional unit operations |
WO2009010982A2 (en) * | 2007-07-18 | 2009-01-22 | Feldman, Moshe | Software for a real-time infrastructure |
US8190624B2 (en) * | 2007-11-29 | 2012-05-29 | Microsoft Corporation | Data parallel production and consumption |
US8543743B2 (en) * | 2009-01-27 | 2013-09-24 | Microsoft Corporation | Lock free queue |
US8760460B1 (en) * | 2009-10-15 | 2014-06-24 | Nvidia Corporation | Hardware-managed virtual buffers using a shared memory for load distribution |
FR2965077B1 (fr) * | 2010-09-21 | 2016-12-09 | Continental Automotive France | Procede de gestion de taches dans un microprocesseur ou un ensemble de microprocesseurs |
US10725997B1 (en) * | 2012-06-18 | 2020-07-28 | EMC IP Holding Company LLC | Method and systems for concurrent collection and generation of shared data |
US9223638B2 (en) * | 2012-09-24 | 2015-12-29 | Sap Se | Lockless spin buffer |
US9311099B2 (en) * | 2013-07-31 | 2016-04-12 | Freescale Semiconductor, Inc. | Systems and methods for locking branch target buffer entries |
US20180203666A1 (en) * | 2015-07-21 | 2018-07-19 | Sony Corporation | First-in first-out control circuit, storage device, and method of controlling first-in first-out control circuit |
CN107197015B (zh) * | 2017-05-23 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
CN110223361B (zh) * | 2019-05-10 | 2023-06-20 | 杭州安恒信息技术股份有限公司 | 基于web前端技术实现飞线效果的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182170A (ja) * | 1993-12-24 | 1995-07-21 | Ricoh Co Ltd | マイクロプロセッサ |
US5559988A (en) * | 1993-12-30 | 1996-09-24 | Intel Corporation | Method and circuitry for queuing snooping, prioritizing and suspending commands |
DE69625652T2 (de) * | 1995-08-18 | 2003-09-18 | Ibm | Ereignisverwaltungsdienst |
US6219352B1 (en) * | 1997-11-24 | 2001-04-17 | Cabletron Systems, Inc. | Queue management with support for multicasts in an asynchronous transfer mode (ATM) switch |
US6201792B1 (en) * | 1998-05-14 | 2001-03-13 | 3Com Corporation | Backpressure responsive multicast queue |
US6822958B1 (en) * | 2000-09-25 | 2004-11-23 | Integrated Device Technology, Inc. | Implementation of multicast in an ATM switch |
US6597595B1 (en) * | 2001-08-03 | 2003-07-22 | Netlogic Microsystems, Inc. | Content addressable memory with error detection signaling |
US7043559B2 (en) * | 2002-06-27 | 2006-05-09 | Seiko Epson Corporation | System for distributing objects to multiple clients |
-
2003
- 2003-09-12 JP JP2004544529A patent/JP2006503361A/ja active Pending
- 2003-09-12 WO PCT/IB2003/004041 patent/WO2004036422A2/en active Application Filing
- 2003-09-12 US US10/531,154 patent/US20060031839A1/en not_active Abandoned
- 2003-09-12 CN CNA038242206A patent/CN1714340A/zh active Pending
- 2003-09-12 EP EP03808787A patent/EP1573535A2/en not_active Withdrawn
- 2003-09-12 AU AU2003260857A patent/AU2003260857A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650386B2 (en) | 2004-07-29 | 2010-01-19 | Hewlett-Packard Development Company, L.P. | Communication among partitioned devices |
Also Published As
Publication number | Publication date |
---|---|
CN1714340A (zh) | 2005-12-28 |
WO2004036422A2 (en) | 2004-04-29 |
EP1573535A2 (en) | 2005-09-14 |
AU2003260857A1 (en) | 2004-05-04 |
US20060031839A1 (en) | 2006-02-09 |
WO2004036422A3 (en) | 2005-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2240859B1 (en) | A multi-reader, multi-writer lock-free ring buffer | |
US6668291B1 (en) | Non-blocking concurrent queues with direct node access by threads | |
US8990510B2 (en) | Read-copy update system and method | |
Hoare | Monitors: An operating system structuring concept | |
JP4712877B2 (ja) | 並列プロセッサのためのタスクマネージャ | |
US7730491B2 (en) | Fair scalable reader-writer mutual exclusion | |
JP5142995B2 (ja) | メモリページ管理 | |
US8453121B2 (en) | Managing the tracing of the execution of a computer program | |
US5887167A (en) | Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system | |
US10268610B1 (en) | Determining whether a CPU stalling a current RCU grace period had interrupts enabled | |
JP2006503361A (ja) | データ処理装置及びデータ処理装置内の少なくとも2つの処理手段を同期させる方法 | |
US7793023B2 (en) | Exclusion control | |
JPH07117934B2 (ja) | データ処理システムおよび方法 | |
JP4763598B2 (ja) | プロセッサおよびデバイス | |
US20060190689A1 (en) | Method of addressing data in a shared memory by means of an offset | |
CN116257359A (zh) | 数据处理方法及装置、存储介质及电子设备 | |
US6704799B1 (en) | Time-efficient inter-process communication in a harmonic rate system | |
US7503048B1 (en) | Scheduling synchronization of programs running as streams on multiple processors | |
JP7078380B2 (ja) | 命令制御装置、命令制御方法およびプログラム | |
US6345312B1 (en) | Selectively dummying a data pipe transparent to a writer application | |
JP2002297416A (ja) | プロファイル情報取得装置及びプロファイル情報取得プログラム | |
JP2014099215A (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
JPH11134202A (ja) | タスク切替え装置 | |
Hoare | Computer Science Department | |
JPS6134628A (ja) | タグ付計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060912 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070510 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090227 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090306 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090602 |