KR102284957B1 - 트랜잭션 데이터 처리 실행 모드에 대한 호출 스택 유지 - Google Patents

트랜잭션 데이터 처리 실행 모드에 대한 호출 스택 유지 Download PDF

Info

Publication number
KR102284957B1
KR102284957B1 KR1020177003061A KR20177003061A KR102284957B1 KR 102284957 B1 KR102284957 B1 KR 102284957B1 KR 1020177003061 A KR1020177003061 A KR 1020177003061A KR 20177003061 A KR20177003061 A KR 20177003061A KR 102284957 B1 KR102284957 B1 KR 102284957B1
Authority
KR
South Korea
Prior art keywords
stack
data processing
execution mode
processor
speculative
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
Application number
KR1020177003061A
Other languages
English (en)
Korean (ko)
Other versions
KR20170031708A (ko
Inventor
매튜 제임스 호스넬
스테판 디에스텔호스트
Original Assignee
에이알엠 리미티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20170031708A publication Critical patent/KR20170031708A/ko
Application granted granted Critical
Publication of KR102284957B1 publication Critical patent/KR102284957B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1474Error detection or correction of the data by redundancy in operations in transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/451Stack data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
KR1020177003061A 2014-07-15 2015-06-09 트랜잭션 데이터 처리 실행 모드에 대한 호출 스택 유지 Active KR102284957B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1412534.8 2014-07-15
GB1412534.8A GB2528270A (en) 2014-07-15 2014-07-15 Call stack maintenance for a transactional data processing execution mode
PCT/GB2015/051675 WO2016009168A1 (en) 2014-07-15 2015-06-09 Call stack maintenance for a transactional data processing execution mode

Publications (2)

Publication Number Publication Date
KR20170031708A KR20170031708A (ko) 2017-03-21
KR102284957B1 true KR102284957B1 (ko) 2021-08-04

Family

ID=51454144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003061A Active KR102284957B1 (ko) 2014-07-15 2015-06-09 트랜잭션 데이터 처리 실행 모드에 대한 호출 스택 유지

Country Status (8)

Country Link
US (1) US10002020B2 (https=)
EP (1) EP3170075B1 (https=)
JP (1) JP6568575B2 (https=)
KR (1) KR102284957B1 (https=)
CN (1) CN106663026B (https=)
GB (1) GB2528270A (https=)
IL (1) IL249697B (https=)
WO (1) WO2016009168A1 (https=)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2554096B (en) * 2016-09-20 2019-03-20 Advanced Risc Mach Ltd Handling of inter-element address hazards for vector instructions
CN107291480B (zh) * 2017-08-15 2020-12-15 中国农业银行股份有限公司 一种函数调用方法及装置
US10572259B2 (en) * 2018-01-22 2020-02-25 Arm Limited Hints in a data processing apparatus
US10698724B2 (en) * 2018-04-10 2020-06-30 Osisoft, Llc Managing shared resources in a distributed computing system
US11231932B2 (en) * 2019-03-05 2022-01-25 Arm Limited Transactional recovery storage for branch history and return addresses to partially or fully restore the return stack and branch history register on transaction aborts
US11334495B2 (en) * 2019-08-23 2022-05-17 Arm Limited Cache eviction
US11687519B2 (en) 2021-08-11 2023-06-27 T-Mobile Usa, Inc. Ensuring availability and integrity of a database across geographical regions
FR3147397A1 (fr) * 2023-03-28 2024-10-04 Stmicroelectronics International N.V. Système informatique configuré pour exécuter un programme d’ordinateur

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080288819A1 (en) 2007-05-14 2008-11-20 International Business Machines Corporation Computing System with Transactional Memory Using Millicode Assists
US20100023703A1 (en) 2008-07-28 2010-01-28 Christie David S Hardware transactional memory support for protected and unprotected shared-memory accesses in a speculative section
US20110307689A1 (en) 2010-06-11 2011-12-15 Jaewoong Chung Processor support for hardware transactional memory
US20120304172A1 (en) 2011-04-29 2012-11-29 Bernd Greifeneder Method and System for Transaction Controlled Sampling of Distributed Hetereogeneous Transactions without Source Code Modifications
US20130151791A1 (en) 2011-12-13 2013-06-13 Advanced Micro Devices, Inc. Transactional memory conflict management

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8544020B1 (en) * 2004-09-14 2013-09-24 Azul Systems, Inc. Cooperative preemption
US7472261B2 (en) * 2005-11-08 2008-12-30 International Business Machines Corporation Method for performing externally assisted calls in a heterogeneous processing complex
US20080016325A1 (en) * 2006-07-12 2008-01-17 Laudon James P Using windowed register file to checkpoint register state
US7860930B2 (en) * 2006-12-19 2010-12-28 International Business Machines Corporation Communication between host systems using a transaction protocol and shared memories
US8739164B2 (en) * 2010-02-24 2014-05-27 Advanced Micro Devices, Inc. Automatic suspend atomic hardware transactional memory in response to detecting an implicit suspend condition and resume thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080288819A1 (en) 2007-05-14 2008-11-20 International Business Machines Corporation Computing System with Transactional Memory Using Millicode Assists
US20100023703A1 (en) 2008-07-28 2010-01-28 Christie David S Hardware transactional memory support for protected and unprotected shared-memory accesses in a speculative section
US20110307689A1 (en) 2010-06-11 2011-12-15 Jaewoong Chung Processor support for hardware transactional memory
US20120304172A1 (en) 2011-04-29 2012-11-29 Bernd Greifeneder Method and System for Transaction Controlled Sampling of Distributed Hetereogeneous Transactions without Source Code Modifications
US20130151791A1 (en) 2011-12-13 2013-06-13 Advanced Micro Devices, Inc. Transactional memory conflict management

Also Published As

Publication number Publication date
EP3170075A1 (en) 2017-05-24
IL249697A0 (en) 2017-02-28
EP3170075B1 (en) 2021-01-13
JP6568575B2 (ja) 2019-08-28
US10002020B2 (en) 2018-06-19
WO2016009168A1 (en) 2016-01-21
CN106663026B (zh) 2021-01-12
CN106663026A (zh) 2017-05-10
GB201412534D0 (en) 2014-08-27
JP2017520857A (ja) 2017-07-27
GB2528270A (en) 2016-01-20
US20170161095A1 (en) 2017-06-08
KR20170031708A (ko) 2017-03-21
IL249697B (en) 2020-01-30

Similar Documents

Publication Publication Date Title
KR102284957B1 (ko) 트랜잭션 데이터 처리 실행 모드에 대한 호출 스택 유지
US11106795B2 (en) Method and apparatus for updating shared data in a multi-core processor environment
CN113505088B (zh) 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议
EP3516502B1 (en) Handling of inter-element address hazards for vector instructions
US8949583B1 (en) Concurrent atomic execution
US20180011748A1 (en) Post-retire scheme for tracking tentative accesses during transactional execution
CN112970003B (zh) 用于实现无锁数据结构的方法和装置
JP2017520857A5 (https=)
KR102699710B1 (ko) 데이터 처리장치, 데이터 처리방법 및 컴퓨터 프로그램
TWI801603B (zh) 處理獨佔式載入指令的資料處理設備、方法及電腦程式
WO2018112340A1 (en) Implementing atomic primitives using cache line locking
US20150205721A1 (en) Handling Reads Following Transactional Writes during Transactions in a Computing Device
US9916189B2 (en) Concurrently executing critical sections in program code in a processor
WO2024217677A1 (en) Crash-consistent persistent memory devices and methods

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20170203

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200227

Comment text: Request for Examination of Application

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210504

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210728

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210729

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240625

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20250630

Start annual number: 5

End annual number: 5