JP6333371B2 - キャッシュ線中でビット配列を実装するための方法 - Google Patents
キャッシュ線中でビット配列を実装するための方法 Download PDFInfo
- Publication number
- JP6333371B2 JP6333371B2 JP2016524921A JP2016524921A JP6333371B2 JP 6333371 B2 JP6333371 B2 JP 6333371B2 JP 2016524921 A JP2016524921 A JP 2016524921A JP 2016524921 A JP2016524921 A JP 2016524921A JP 6333371 B2 JP6333371 B2 JP 6333371B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- request
- value
- bits
- array
- 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 OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Description
112 サーバ
114 外部デバイス
116 プロセッサ
120 ネットワーク・アダプタ
122 I/Oインタフェース
124 ディスプレイ
128 メモリ・システム
206 コントローラ
208 メモリ・ストレージ
210 要求
211 キャッシュ線
212 返答
213 メタデータ・フィールド
214 受信機
215 要素フィールド
216 送信機
218 通信
220 通信
301 操作
303 操作
305 操作
307 操作
309 操作
311 操作
333 行
401 ステップ
403 ステップ
405 ステップ
407 ステップ
Claims (15)
- メモリ・ストレージとコントローラとを備えるメモリ・システムのキャッシュ線中でビット配列を実装するための方法であって、
− 前記キャッシュ線中で前記ビット配列を構成するステップであって、前記ビット配列がビットの配列を含み、前記構成するステップがさらに、前記ビット配列中の各ビットの値を定義するステップを含む、前記構成するステップと、
− 前記コントローラによって前記ビット配列に対する操作の要求を受け取るステップであって、前記要求が、前記メモリ・ストレージ中における前記キャッシュ線の場所と、前記要求を指定する情報とを示す、前記受け取るステップと、
− 前記コントローラによって前記情報を使用して前記ビット配列に対する1つまたは複数のアクションを前記操作について識別するステップであって、前記1つまたは複数のアクションが前記コントローラ中でエンコードされる、前記識別するステップと、
− 前記要求を受け取るのに応答して、前記1つまたは複数のエンコードされたアクションを実行することによって前記要求を実施するステップと、を含む方法。 - 前記要求が「最初の0−ビットをフェッチしてセットする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットをインデックス0から順次読み取るアクションと、
− 値0を有する最初のビットが見つかった場合に、前記見つかった最初のビットのインデックスを返して、前記見つかった最初のビットの前記値を1にセットし、そうでない場合に、事前定義済みの失敗値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1に記載の方法。 - 前記要求が「最後の0−ビットをフェッチしてセットする」要求を含み、前記ビット配列がE個の要素を含み、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットをインデックスE−1から順次読み取るアクションと、
− 前記ビット配列の、値0を有する最後のビットが見つかった場合に、前記最後のビットのインデックスを返して、前記最後のビットの前記値を1にセットし、そうでない場合に、事前定義済みの失敗値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「孤立した0−ビットをフェッチしてセットする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列を読み取って、0値を有するビットの、0個以上の連続的なシーケンスを決定するアクションと、
− 見つかったシーケンスが0個の場合に、事前定義済みの失敗値を返し、そうでない場合に、
・ 前記1つまたは複数の連続的なシーケンスをそれらのビット数に基づいてランク付けし、
・ 前記1つまたは複数の連続的なシーケンスのうちで最小数のビットを有する連続的なシーケンスのビットを選択し、
・ 前記選択されたビットのインデックスを返し、
・ 前記選択されたビットの前記値を1にセットするアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「最初の1−ビットをフェッチしてクリアする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットをインデックス0から順次読み取るアクションと、
− 値1を有する最初のビットが見つかった場合に、前記見つかった最初のビットのインデックスを返して、前記見つかった最初のビットの値を0にセットし、そうでない場合に、事前定義済みの失敗値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「最後の1−ビットをフェッチしてクリアする」要求を含み、前記ビット配列がE個の要素を含み、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットをインデックスE−1から順次読み取るアクションと、
− 前記ビット配列の、値1を有する最後のビットが見つかった場合に、前記最後のビットのインデックスを返して、前記最後のビットの値を0にセットし、そうでない場合に、事前定義済みの失敗値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「孤立した1−ビットをフェッチしてクリアする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列を読み取って、1の値を有するビットの、0個以上の連続的なシーケンス決定するアクションと、
− 見つかったシーケンスが0個の場合に、事前定義済みの失敗値を返し、そうでない場合に、
・ 前記1つまたは複数の連続的なシーケンスをそれらのビット数に基づいてランク付けし、
・ 最小数のビットを有する連続的なシーケンスのビットを選択し、
・ 前記選択されたビットのインデックスを返し、
・ 前記選択されたビットの値を0にセットするアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「N個の連続的な0−ビットをフェッチしてセットする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列を読み取って、0の値を有するN個のビットの、0個以上の連続的なシーケンスを決定するアクションと、
− 見つかったシーケンスが0個の場合に、事前定義済みの失敗値を返し、そうでない場合に、
・ 前記1つまたは複数の組合せのうちで事前定義済みの条件を満たすシーケンスを選択し、
・ 前記選択されたN個のビットのシーケンスの最初のビットのインデックスを返し、
・ 前記選択されたN個のビットの値を1にセットするアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記シーケンスが前記ビット配列の最初のN個の連続的なビットを含むことを、前記事前定義済みの条件が含む、請求項8に記載の方法。
- 前記要求が「N個の指定された0−ビットをフェッチしてセットする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列を読み取って、指定されたインデックスにある前記指定されたビットを突き止めるアクションと、
− 前記指定されたビットの少なくとも1つのビットが値1を有する場合に、事前定義済みの失敗値を返すアクションと、
− 前記指定されたビットの各々が値0を有する場合に、指定された各ビットを値1にセットして、事前定義済みの成功値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「1−ビットをカウントする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットを読み取るアクションと、
− 値1を有するビットの数をカウントするアクションと、
− 前記カウントの結果を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「最初の1−ビットをフェッチする」要求を含み、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットをインデックス0から順次読み取るアクションと、
− 値1を有する最初のビットが見つかった場合に、前記見つかった最初のビットのインデックスを返し、そうでない場合に、事前定義済みの失敗値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 前記要求が「N番目の1−ビットをフェッチする」要求を含み、前記要求がNの値を提供し、前記要求を実施する前記ステップが、
− 前記ビット配列の各ビットをインデックス0から順次読み取るアクションと、
− 値1を有するビットのN番目の発生が見つかった場合に、前記見つかったN番目の1−ビットのインデックスを返し、そうでない場合に、事前定義済みの失敗値を返すアクションと、のうちの1つまたは複数を実施するステップを含む、請求項1または2に記載の方法。 - 請求項1ないし13のいずれか一項に記載の方法の方法ステップをコンピュータに実行させるプログラム。
- キャッシュ線中でビット配列を実装するためのシステムであって、メモリ・ストレージおよびコントローラを備え、
− 前記キャッシュ線中で前記ビット配列を構成することであって、前記ビット配列がビットの配列を含み、前記構成することがさらに、前記ビット配列中の各ビットの値を定義することを含む、前記構成することと、
− 前記コントローラによって前記ビット配列に対する操作の要求を受け取ることであって、前記要求が、前記メモリ・ストレージ中における前記キャッシュ線の場所と、前記要求を指定する情報とを示す、前記受け取ることと、
− 前記情報を使用して前記ビット配列に対する1つまたは複数のアクションを前記操作について識別することであって、前記1つまたは複数のアクションが前記コントローラ中でエンコードされる、前記識別することと、
− 前記要求を受け取るのに応答して、前記1つまたは複数のエンコードされたアクションを実行することによって前記要求を実施することと、を行うように構成されたシステム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1312446.6A GB2516092A (en) | 2013-07-11 | 2013-07-11 | Method and system for implementing a bit array in a cache line |
| GB1312446.6 | 2013-07-11 | ||
| PCT/IB2014/062757 WO2015004571A1 (en) | 2013-07-11 | 2014-07-01 | Method and system for implementing a bit array in a cache line |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2016526739A JP2016526739A (ja) | 2016-09-05 |
| JP6333371B2 true JP6333371B2 (ja) | 2018-05-30 |
Family
ID=49081142
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016524921A Expired - Fee Related JP6333371B2 (ja) | 2013-07-11 | 2014-07-01 | キャッシュ線中でビット配列を実装するための方法 |
Country Status (5)
| Country | Link |
|---|---|
| JP (1) | JP6333371B2 (ja) |
| CN (1) | CN105378686B (ja) |
| DE (1) | DE112014003212T5 (ja) |
| GB (2) | GB2516092A (ja) |
| WO (1) | WO2015004571A1 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2551937B (en) | 2015-03-26 | 2020-09-02 | Gyrus Acmi Inc | Biopsy sample retention mechanism |
| EP3665580B1 (en) * | 2017-08-08 | 2023-03-08 | Continental Automotive Technologies GmbH | Method of operating a cache |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03172947A (ja) * | 1989-11-13 | 1991-07-26 | Matra Design Semiconductor Inc | マイクロコンピュータ・システム |
| WO2001063240A2 (en) * | 2000-02-25 | 2001-08-30 | Sun Microsystems, Inc. | Maintaining high snoop traffic throughput and preventing cache data eviction during an atomic operation |
| US7127559B2 (en) * | 2001-07-10 | 2006-10-24 | Micron Technology, Inc. | Caching of dynamic arrays |
| JP2003030051A (ja) * | 2001-07-19 | 2003-01-31 | Sony Corp | データ処理装置及びデータアクセス方法 |
| US6836823B2 (en) * | 2001-11-05 | 2004-12-28 | Src Computers, Inc. | Bandwidth enhancement for uncached devices |
| CN101689143B (zh) * | 2007-06-20 | 2012-07-04 | 富士通株式会社 | 高速缓存控制装置以及控制方法 |
| CN100478918C (zh) * | 2007-10-31 | 2009-04-15 | 中国人民解放军国防科学技术大学 | 微处理器中分段高速缓存的设计方法及分段高速缓存 |
| US8296524B2 (en) * | 2009-06-26 | 2012-10-23 | Oracle America, Inc. | Supporting efficient spin-locks and other types of synchronization in a cache-coherent multiprocessor system |
| US8543769B2 (en) * | 2009-07-27 | 2013-09-24 | International Business Machines Corporation | Fine grained cache allocation |
| US8566524B2 (en) * | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
| US8621478B2 (en) * | 2010-01-15 | 2013-12-31 | International Business Machines Corporation | Multiprocessor system with multiple concurrent modes of execution |
| US20120185672A1 (en) * | 2011-01-18 | 2012-07-19 | International Business Machines Corporation | Local-only synchronizing operations |
-
2013
- 2013-07-11 GB GB1312446.6A patent/GB2516092A/en not_active Withdrawn
-
2014
- 2014-07-01 CN CN201480038914.5A patent/CN105378686B/zh not_active Expired - Fee Related
- 2014-07-01 DE DE112014003212.3T patent/DE112014003212T5/de not_active Withdrawn
- 2014-07-01 WO PCT/IB2014/062757 patent/WO2015004571A1/en not_active Ceased
- 2014-07-01 JP JP2016524921A patent/JP6333371B2/ja not_active Expired - Fee Related
- 2014-07-01 GB GB1601479.7A patent/GB2530962B/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2016526739A (ja) | 2016-09-05 |
| CN105378686B (zh) | 2018-05-29 |
| GB2530962B (en) | 2020-04-22 |
| WO2015004571A1 (en) | 2015-01-15 |
| GB2530962A (en) | 2016-04-06 |
| GB2516092A (en) | 2015-01-14 |
| GB201601479D0 (en) | 2016-03-09 |
| GB201312446D0 (en) | 2013-08-28 |
| DE112014003212T5 (de) | 2016-04-28 |
| CN105378686A (zh) | 2016-03-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9619430B2 (en) | Active non-volatile memory post-processing | |
| US8606791B2 (en) | Concurrently accessed hash table | |
| CN103473365B (zh) | 一种基于hdfs的文件存储方法、装置及分布式文件系统 | |
| US9411659B2 (en) | Data processing method used in distributed system | |
| US11204813B2 (en) | System and method for multidimensional search with a resource pool in a computing environment | |
| US20140331235A1 (en) | Resource allocation apparatus and method | |
| CN103294786A (zh) | 一种分布式文件系统的元数据组织管理方法和系统 | |
| CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
| US12019605B2 (en) | Immediately-consistent lock-free indexing for distributed applications | |
| JP6853714B2 (ja) | ゼロ競合並列データスタックを提供するデータ格納システムのデータ格納方法 | |
| US10872394B2 (en) | Frequent pattern mining method and apparatus | |
| Mccoy et al. | Gallatin: A general-purpose GPU memory manager | |
| JP6333371B2 (ja) | キャッシュ線中でビット配列を実装するための方法 | |
| US20150286664A1 (en) | Reducing blocking instances in parallel processing systems performing operations on trees | |
| US9990303B2 (en) | Sharing data structures between processes by semi-invasive hybrid approach | |
| JP6333370B2 (ja) | キャッシュ線中で動的配列データ構造を実装するための方法 | |
| CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
| US12032596B1 (en) | System and method for managing storage of partitioned datasets in a distributed database | |
| KR101075439B1 (ko) | 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법 | |
| JPWO2019008715A1 (ja) | データロードプログラム、データロード方法およびデータロード装置 | |
| Lu et al. | Tree structured data processing on GPUs | |
| US9189295B2 (en) | Generating an ordered sequence in a database system using multiple interleaved caches | |
| KR102162466B1 (ko) | 분산 스토리지 서버, 그것에 포함되는 서버 장치, 및 서버 장치를 동작시키는 방법 | |
| KR101969219B1 (ko) | 빈발 패턴 마이닝 방법 및 장치 | |
| CN121387564B (zh) | 一种资源分配方法、装置及介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160317 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170609 |
|
| 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: 20180403 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180424 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6333371 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |