JP6382446B2 - デッドロック回避のための方法及び回路 - Google Patents
デッドロック回避のための方法及び回路 Download PDFInfo
- Publication number
- JP6382446B2 JP6382446B2 JP2017523259A JP2017523259A JP6382446B2 JP 6382446 B2 JP6382446 B2 JP 6382446B2 JP 2017523259 A JP2017523259 A JP 2017523259A JP 2017523259 A JP2017523259 A JP 2017523259A JP 6382446 B2 JP6382446 B2 JP 6382446B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- communication
- posted
- write
- communication circuit
- 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
- 238000000034 method Methods 0.000 title claims description 31
- 238000004891 communication Methods 0.000 claims description 235
- 239000000872 buffer Substances 0.000 claims description 59
- 238000012545 processing Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 20
- 238000013519 translation Methods 0.000 claims description 18
- 230000003139 buffering effect Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000011144 upstream manufacturing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 101000879673 Streptomyces coelicolor Subtilisin inhibitor-like protein 3 Proteins 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012552 review 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
- G06F13/4036—Coupling between buses using bus bridges with arbitration and deadlock prevention
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
Description
1)メモリ160のメモリアドレス(X)が、キャッシュ150にキャッシュされる。
2)第2の通信回路130が、キャッシュされたメモリアドレス(X)へのアップストリームライト(A)を実行する。
3)処理回路140が、第2の通信回路130へのダウンストリームノンポステッドライト(B)を実行する。このノンポステッドライト(B)は、第2の通信回路130が、ノンポステッドライト(B)を完了するための確認応答(C)を提供する前に、アップストリームライト(A)の完了を必要とする。
4)第1の通信回路のデータポート112が、例えば、ノンポステッドライト(B)のためにブリッジ120によって受け入れられない保留中のダウンストリームリード/ライトリクエスト(D)によって、ブロックされるようになる。
5)前のステップとは無関係に、キャッシュ150は、キャッシュされたアドレス(X)のメモリへのライトバック(E)をトリガすることができる。
6)ライトバック(E)は、ノンポステッドライト(A)の後にスケジュールされる。
7)アップストリームライト(A)は、第1の通信回路110に、キャッシュされたアドレス(X)をスヌープ(F)させる。
Claims (15)
- 第1の通信プロトコルを使用して第1のデータポートを介してデータを通信するように構成された第1の通信回路と、
リードリクエスト及びライトリクエストが受信される順序で前記リードリクエスト及び前記ライトリクエストを処理する第2の通信プロトコルを使用して第2のデータポートを介してデータを通信するように構成された第2の通信回路と、
前記第1の通信回路の前記第1のデータポートと前記第2の通信回路の前記第2のデータポートとの間でデータを通信するように構成されたブリッジ回路であって、バッファ回路を経由して前記第2の通信回路に全てのノンポステッドライトを通信し、前記バッファ回路をバイパスする通信経路を経由してバッファリングなしで前記第2の通信回路にポステッドライトを通信するように構成されたブリッジ回路と
を備えるシステム。 - 前記第1の通信回路に接続されたメモリと、
前記第1の通信回路に結合され、前記メモリからデータをキャッシュするためのキャッシュを有する処理回路と
を更に備え、
前記第1の通信回路は、前記キャッシュによってキャッシュされている前記メモリのメモリアドレスを示すリードリクエストを前記第1のデータポートで受信したことに応答して、前記キャッシュから前記メモリアドレスに対応するデータ値を取り出すように更に構成され、
保留中のノンポステッドライトによってブロックされている前記キャッシュからのデータ値のライトバックに関するデッドロックが、バッファ回路を経由する前記第2の通信回路への前記ノンポステッドライトの通信によって防止される、請求項1に記載のシステム。 - 前記ブリッジ回路は、前記第2の通信回路へのノンポステッドライトよりも前記第2の通信回路へのポステッドライトを優先させるように更に構成される、請求項1又は2に記載のシステム。
- 前記バッファ回路は、先入れ先出し(FIFO)バッファであり、
前記ブリッジ回路は、前記バッファ回路をバイパスする通信経路を経由してポステッド及びノンポステッドリードを通信するように構成される、請求項1から3のいずれか一項に記載のシステム。 - 前記ブリッジ回路は、前記第1の通信プロトコルを使用して前記第1の通信回路とデータを通信し、前記第2の通信プロトコルを使用して前記第2の通信回路とデータを通信するように構成される、請求項1から4のいずれか一項に記載のシステム。
- 前記ブリッジ回路は、前記第1の通信回路と前記第2の通信回路との間のポステッドリード及びライトトランザクションのためのアドレス変換を実行するように構成及び準備されたアドレス変換回路を含む、請求項1から5のいずれか一項に記載のシステム。
- 前記ブリッジ回路は、前記第1の通信回路又は前記第2の通信回路の一方からのリード及びライトトランザクションに、前記アドレス変換回路をバイパスするデータパスでの、前記第1の通信回路又は前記第2の通信回路の他方へのアクセスを提供するように構成されたダイレクトメモリアクセス回路を含む、請求項6に記載のシステム。
- 前記ブリッジ回路及び前記第2の通信回路は、前記第1の通信回路からノンポステッドライトを受信したことに応答して、第1の期間内に前記ノンポステッドライトに確認応答を提供するように構成され、
前記バッファ回路は、前記第1の期間において前記第1の通信回路によって発行され得るノンポステッドライトリクエストの少なくとも最大数をバッファリングするように構成される、請求項1から7のいずれか一項に記載のシステム。 - 前記バッファ回路は、前記第1の期間において前記第1の通信回路によって発行され得るノンポステッド及びポステッドライトリクエストの最大数より少ない数をバッファリングするように構成される、請求項8に記載のシステム。
- 前記ブリッジ回路は、前記第1の通信回路からの書き込みに応答して、前記書き込みがポステッドライトかノンポステッドライトかを宛先アドレスに基づいて判定するように構成された回路を含む、請求項1から9のいずれか一項に記載のシステム。
- 第1の通信回路を使用して、第1の通信プロトコルを用いて第1のデータポートを介してデータを通信することと、
第2の通信回路を使用して、リードリクエスト及びライトリクエストが受信される順序で前記リードリクエスト及び前記ライトリクエストを処理する第2の通信プロトコルを用いて第2のデータポートを介してデータを通信することと、
前記第1の通信回路から前記第2の通信回路へバッファ回路を経由して全てのノンポステッドライトを通信することと、
前記バッファ回路をバイパスする通信経路を経由してバッファリングなしで前記第1の通信回路から前記第2の通信回路へポステッドライトを通信することと
を含むデータ通信方法。 - 前記第1の通信回路から前記第2の通信回路へのポステッドライトの通信は、前記バッファ回路に記憶されているノンポステッドライトを通信する前に、前記ポステッドライトを前記第2の通信回路に通信することを含む、請求項11に記載の方法。
- 前記第1の通信回路に接続されたメモリに記憶されたデータと前記第1の通信回路に接続されたキャッシュに記憶されたデータとの間のデータコヒーレンシを維持するために、前記第1の通信回路を用いることを更に含む、請求項11又は12に記載の方法。
- 前記第1の通信回路と前記第2の通信回路との間のポステッドリード及びライトトランザクションのためのアドレス変換を実行することを更に含む、請求項11から13のいずれか一項に記載の方法。
- 前記第1の通信回路から書き込みを受信したことに応答して、前記書き込みがポステッドライトかノンポステッドライトかを宛先アドレスに基づいて判定することと、
前記書き込みがノンポステッドライトであると判定したことに応答して、前記ノンポステッドライトを前記バッファ回路にルーティングすることと、
前記書き込みがポステッドライトであると判定したことに応答して、前記バッファ回路をバイパスする前記通信経路に前記ポステッドライトをルーティングすることと
を更に含む、請求項11から14のいずれか一項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/530,561 | 2014-10-31 | ||
US14/530,561 US11281618B2 (en) | 2014-10-31 | 2014-10-31 | Methods and circuits for deadlock avoidance |
PCT/US2015/053032 WO2016069176A1 (en) | 2014-10-31 | 2015-09-29 | Methods and circuits for deadlock avoidance |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018502359A JP2018502359A (ja) | 2018-01-25 |
JP6382446B2 true JP6382446B2 (ja) | 2018-08-29 |
Family
ID=54364664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017523259A Active JP6382446B2 (ja) | 2014-10-31 | 2015-09-29 | デッドロック回避のための方法及び回路 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11281618B2 (ja) |
EP (1) | EP3213220B1 (ja) |
JP (1) | JP6382446B2 (ja) |
KR (1) | KR102413593B1 (ja) |
CN (1) | CN107111572B (ja) |
WO (1) | WO2016069176A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9824058B2 (en) * | 2014-11-14 | 2017-11-21 | Cavium, Inc. | Bypass FIFO for multiple virtual channels |
CN109690511B (zh) | 2016-08-31 | 2023-05-02 | 株式会社索思未来 | 总线控制电路、半导体集成电路、电路基板、信息处理装置以及总线控制方法 |
US10402355B2 (en) | 2017-02-08 | 2019-09-03 | Texas Instruments Incorporated | Apparatus and mechanism to bypass PCIe address translation by using alternative routing |
CN110196826B (zh) * | 2018-02-24 | 2021-06-18 | 深圳市中兴微电子技术有限公司 | 一种死锁判断方法及装置 |
CN108632142B (zh) * | 2018-03-28 | 2021-02-12 | 华为技术有限公司 | 节点控制器的路由管理方法和装置 |
US11477049B2 (en) * | 2018-08-02 | 2022-10-18 | Xilinx, Inc. | Logical transport over a fixed PCIE physical transport network |
CN109491951B (zh) * | 2018-09-28 | 2022-05-10 | 超聚变数字技术有限公司 | 一种配置数据的方法以及计算设备 |
US11593281B2 (en) * | 2019-05-08 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Device supporting ordered and unordered transaction classes |
US11204879B2 (en) * | 2019-06-06 | 2021-12-21 | Arm Limited | Memory management circuitry managing data transactions and address translations between an upstream device and a downstream device |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659709A (en) * | 1994-10-03 | 1997-08-19 | Ast Research, Inc. | Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus |
US5953538A (en) * | 1996-11-12 | 1999-09-14 | Digital Equipment Corporation | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges |
US6076130A (en) | 1998-03-19 | 2000-06-13 | Hewlett-Packard Company | System and method for efficient communication between buses |
US6567414B2 (en) * | 1998-10-30 | 2003-05-20 | Intel Corporation | Method and apparatus for exiting a deadlock condition |
US6243781B1 (en) | 1998-12-03 | 2001-06-05 | Intel Corporation | Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe |
US6757768B1 (en) * | 2001-05-17 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node |
US20030013568A1 (en) * | 2001-07-13 | 2003-01-16 | Rivin Eugeny I. | Power transmission belt |
US6804741B2 (en) | 2002-01-16 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Coherent memory mapping tables for host I/O bridge |
US7003615B2 (en) * | 2002-04-22 | 2006-02-21 | Broadcom Corporation | Tracking a non-posted writes in a system using a storage location to store a write response indicator when the non-posted write has reached a target device |
US7443869B2 (en) * | 2003-08-04 | 2008-10-28 | Intel Corporation | Deadlock avoidance queuing mechanism |
US7296101B2 (en) * | 2004-02-17 | 2007-11-13 | Intel Corporation | Method and system for using a patch module to process non-posted request cycles and to control completions returned to requesting device |
US7219175B1 (en) * | 2005-03-31 | 2007-05-15 | Emc Corporation | Method and system for improving the latency in a data transmission system |
US7698493B2 (en) * | 2005-08-31 | 2010-04-13 | Ati Technologies, Inc. | Methods and apparatus for translating write request messages in a computing system |
US8019910B2 (en) * | 2007-07-31 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Transaction flow control in PCI express fabric |
US7861027B2 (en) * | 2008-05-30 | 2010-12-28 | Intel Corporation | Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC) |
JP2010134627A (ja) * | 2008-12-03 | 2010-06-17 | Canon Inc | バス中継装置 |
JP5304421B2 (ja) * | 2009-05-01 | 2013-10-02 | 富士通セミコンダクター株式会社 | 追い越しモードを有するデータバッファ装置 |
JP5546635B2 (ja) * | 2010-06-01 | 2014-07-09 | 株式会社日立製作所 | データ転送装置およびその制御方法 |
US20140082238A1 (en) * | 2012-09-14 | 2014-03-20 | Nvidia Corporation | Method and system for implementing a control register access bus |
US9164938B2 (en) * | 2013-01-02 | 2015-10-20 | Intel Corporation | Method to integrate ARM ecosystem IPs into PCI-based interconnect |
US9996484B1 (en) * | 2014-09-17 | 2018-06-12 | Amazon Technologies, Inc. | Hardware acceleration for software emulation of PCI express compliant devices |
-
2014
- 2014-10-31 US US14/530,561 patent/US11281618B2/en active Active
-
2015
- 2015-09-29 EP EP15787735.8A patent/EP3213220B1/en active Active
- 2015-09-29 JP JP2017523259A patent/JP6382446B2/ja active Active
- 2015-09-29 WO PCT/US2015/053032 patent/WO2016069176A1/en active Application Filing
- 2015-09-29 CN CN201580058973.3A patent/CN107111572B/zh active Active
- 2015-09-29 KR KR1020177013090A patent/KR102413593B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN107111572A (zh) | 2017-08-29 |
JP2018502359A (ja) | 2018-01-25 |
US11281618B2 (en) | 2022-03-22 |
EP3213220A1 (en) | 2017-09-06 |
CN107111572B (zh) | 2019-05-03 |
KR102413593B1 (ko) | 2022-06-24 |
US20160124891A1 (en) | 2016-05-05 |
EP3213220B1 (en) | 2019-01-09 |
KR20170078697A (ko) | 2017-07-07 |
WO2016069176A1 (en) | 2016-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6382446B2 (ja) | デッドロック回避のための方法及び回路 | |
JP7247213B2 (ja) | デバッグコントローラ回路 | |
JP7227680B2 (ja) | ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ | |
US8732416B2 (en) | Requester based transaction status reporting in a system with multi-level memory | |
US10037301B2 (en) | Circuits and methods for inter-processor communication | |
US10698824B1 (en) | Scalable coherence management independent of transport protocol | |
KR102424238B1 (ko) | 프로그래밍가능 논리부를 위한 메모리의 가상화 | |
US20130054852A1 (en) | Deadlock Avoidance in a Multi-Node System | |
JP5756554B2 (ja) | 半導体装置 | |
CN109739785B (zh) | 多核系统的内连线结构 | |
US10042692B1 (en) | Circuit arrangement with transaction timeout detection | |
US9448937B1 (en) | Cache coherency | |
US7904696B2 (en) | Communication paths for enabling inter-sequencer communication following lock competition and accelerator registration | |
TW201916644A (zh) | 匯流排系統 | |
Feehrer et al. | Coherency hub design for multi-node victoria falls server systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180402 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180402 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180416 |
|
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: 20180703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180801 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6382446 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |