KR101829995B1 - Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus - Google Patents

Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus Download PDF

Info

Publication number
KR101829995B1
KR101829995B1 KR1020160110740A KR20160110740A KR101829995B1 KR 101829995 B1 KR101829995 B1 KR 101829995B1 KR 1020160110740 A KR1020160110740 A KR 1020160110740A KR 20160110740 A KR20160110740 A KR 20160110740A KR 101829995 B1 KR101829995 B1 KR 101829995B1
Authority
KR
South Korea
Prior art keywords
transaction
transactions
memory device
memory area
transactional memory
Prior art date
Application number
KR1020160110740A
Other languages
Korean (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 전북대학교산학협력단
Priority to KR1020160110740A priority Critical patent/KR101829995B1/en
Application granted granted Critical
Publication of KR101829995B1 publication Critical patent/KR101829995B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Abstract

A transactional memory device based on collision prediction between transactions and a method for operating a transactional memory device are disclosed. A transactional memory device based on the collision prediction between transactions may include: an interface for receiving a processing request for a second transaction different from a first transaction while the first transaction is processed; and a processor for predicting the probability of a conflict between the first and second transactions in a first memory region where the first transaction is processed and a second memory region for processing the second transaction. It is possible to improve processing performance.

Description

트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치 및 트랜잭셔널 메모리 장치의 동작 방법{TRANSACTIONAL MEMORY APPARATUS BASED ON COLLISION PREDICTION BETWEEN TRANSACTIONS AND METHOD FOR OPERATING TRANSACTIONAL MEMORY APPARATUS}Technical Field [0001] The present invention relates to a transactional memory device and a transactional memory device based on conflict prediction between transactions, and more particularly to a transactional memory device and a transactional memory device,

본 발명의 실시예들은 트랜잭션 간의 충돌 가능성을 예측하고, 상기 충돌 가능성을 고려하여, 트랜잭션을 처리할 메모리 영역(예컨대, HTM(Hardware Transactional Memory) 영역, STM(Software Transactional Memory) 영역, 직열수행 영역)을 결정 함으로써, 트랜잭션에 대한 처리 성능을 향상시키는 트랜잭셔널 메모리 장치 및 트랜잭셔널 메모리 장치의 동작 방법에 관한 것이다.The embodiments of the present invention predict a possibility of a collision between transactions, and consider a possibility of a collision, a memory area (for example, an HTM (Hardware Transactional Memory) area, a STM (Software Transactional Memory) area, To a transactional memory device and a method of operation of a transactional memory device that improve processing performance for a transaction.

트랜잭션널 메모리(Transactional Memory: TM)는 트랜잭션 처리를 위한 병렬 프로그래밍 패러다임을 크게 바꾸었으며, 최근에는 TSX(Transactional Synchronization Extension)이 제안 됨에 따라, 이를 이용한 연구가 활발히 진행되고 있다.The Transactional Memory (TM) has greatly changed the parallel programming paradigm for transaction processing. Recently, as the Transactional Synchronization Extension (TSX) has been proposed, researches using it have been actively conducted.

또한, 트랜잭션널 메모리의 처리 성능을 향상시키기 위한 연구가 진행되고 있으며, 예컨대, 트랜잭션 간의 충돌에 따라, HTM(Hardware TM) 또는 STM(Software TM)을 선택적으로 사용하여 처리 성능을 향상시키는 HyTM(Hybrid TM)가 제안되고 있다. In addition, studies have been made to improve the processing performance of transaction null memory. For example, HyTM (Hybrid) which improves processing performance by selectively using HTM (Hardware TM) or STM (Software TM) TM) has been proposed.

그러나, 이러한 HyTM는 충돌을 탐지할 수는 있으나, 충돌 가능성을 예측하지 못함에 따라, HTM 또는 STM 중에서, 트랜잭션을 처리하는데 적합한 메모리 영역을 선택하는 것이 용이하지 않다.However, such a HyTM can detect a collision, but it is not easy to select a memory area suitable for processing a transaction among HTMs or STMs because it can not predict the possibility of collision.

따라서, 트랜잭션 간의 충돌 가능성을 예측하고, 충돌 가능성을 고려하여 트랜잭션을 처리할 메모리 영역을 결정 함으로써, 트랜잭션을 처리하는데 적합한 메모리 영역을 용이하게 선택 함에 따라, 처리 성능을 향상시킬 수 있는 기술이 필요하다.Therefore, there is a need for a technique capable of improving processing performance by easily selecting a memory area suitable for processing a transaction by predicting a possibility of collision between transactions and determining a memory area for processing the transaction in consideration of the possibility of collision .

본 발명은 트랜잭션 간의 처리 이력에 기초하여, 트랜잭션 간의 충돌 가능성을 예측하고, 상기 충돌 가능성을 고려하여, 트랜잭션을 처리할 메모리 영역(예컨대, HTM 영역, STM 영역, 직열수행 영역)을 결정 함으로써, 트랜잭션을 처리하는데 적합한 메모리 영역을 용이하게 선택 함에 따라, 처리 성능을 향상시키는 것을 목적으로 한다.The present invention predicts a possibility of a collision between transactions based on a transaction history between transactions and determines a memory area (for example, an HTM area, an STM area, a serial execution area) to process a transaction in consideration of the possibility of collision, The present invention aims to improve processing performance by easily selecting a memory area suitable for processing the memory area.

또한, 본 발명은 트랜잭션에 부여된 재시도 횟수를 최적으로 조정하여, 트랜잭션을 효율적으로 처리할 수 있는 환경을 제공하는 것을 목적으로 한다.It is another object of the present invention to provide an environment in which a transaction can be efficiently processed by optimally adjusting the number of retries given to a transaction.

상기의 목적을 이루기 위한, 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치는 제1 트랜잭션이 처리되는 중에, 상기 제1 트랜잭션과 상이한 제2 트랜잭션에 대한 처리 요청을 입력받는 인터페이스와, 상기 제1 트랜잭션이 처리되는 제1 메모리 영역에서의, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측하고, 상기 충돌 가능성을 고려하여, 상기 제2 트랜잭션을 처리할 제2 메모리 영역을 결정하는 프로세서를 포함할 수 있다.To achieve the above object, a transactional memory device based on inter-transaction conflict prediction includes an interface for receiving a processing request for a second transaction different from the first transaction while a first transaction is being processed, A processor for predicting a probability of a conflict between the first and second transactions in a first memory region to be processed and for determining a second memory region to process the second transaction, have.

트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 동작 방법은 제2 트랜잭션에 대한 처리 요청 입력에 연동하여, 상기 제2 트랜잭션과 상이한 제1 트랜잭션이 처리되는 중인지를 확인하는 단계와, 상기 제1 트랜잭션이 처리되는 중으로 확인되는 경우, 상기 제1 트랜잭션이 처리되는 제1 메모리 영역에서의, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측하는 단계와, 상기 충돌 가능성을 고려하여, 상기 제2 트랜잭션을 처리할 제2 메모리 영역을 결정하는 단계를 포함할 수 있다.A method for operating a transactional memory device based on a conflict prediction between transactions, comprising: confirming whether a first transaction different from the second transaction is being processed, in association with a processing request input for a second transaction; Predicting a possibility of a conflict between the first and second transactions in a first memory area in which the first transaction is handled if it is determined that the first transaction is being processed; And determining a second memory area to process.

본 발명의 실시예에 따르면, 트랜잭션 간의 처리 이력에 기초하여, 트랜잭션 간의 충돌 가능성을 예측하고, 상기 충돌 가능성을 고려하여, 트랜잭션을 처리할 메모리 영역(예컨대, HTM 영역, STM 영역, 직열수행 영역)을 결정 함으로써, 트랜잭션을 처리하는데 적합한 메모리 영역을 용이하게 선택 함에 따라, 처리 성능을 향상시킬 수 있다.According to an embodiment of the present invention, a possibility of collision between transactions is predicted based on a transaction history between transactions, and a memory area (for example, an HTM area, an STM area, a serial execution area) Thereby making it possible to easily select a memory area suitable for processing a transaction, thereby improving processing performance.

또한, 본 발명의 실시예에 따르면, 트랜잭션에 부여된 재시도 횟수를 최적으로 조정하여, 트랜잭션을 효율적으로 처리할 수 있는 환경을 제공할 수 있다.In addition, according to the embodiment of the present invention, it is possible to optimally adjust the number of retries given to a transaction and to provide an environment in which transactions can be efficiently processed.

도 1은 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 구성을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 구성 일례를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치에서 구성하는 트랜잭션에 대한 정보의 일례를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치에서의 모멘텀 기반 점프 알고리즘 수행의 일례를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 동작 방법을 나타내는 흐름도이다.
1 is a block diagram of a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.
2 is a diagram illustrating an example of a configuration of a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an example of information on a transaction configured in the transactional memory device based on the inter-transaction conflict prediction according to an embodiment of the present invention.
FIG. 4 is a view for explaining an example of execution of a momentum-based jump algorithm in a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.
5 is a flowchart illustrating a method of operating a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.

이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치 및 트랜잭셔널 메모리 장치의 동작 방법에 대해 상세히 설명한다.Hereinafter, an operation method of a transactional memory device and a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 구성을 나타내는 도면이다.1 is a block diagram of a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.

도 1을 참조하면, 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치(이하, '트랜잭셔널 메모리 장치'로 칭함)(100)는 인터페이스(101), 프로세서(103) 및 데이터베이스(105)를 포함할 수 있다.1, a transactional memory device (hereinafter referred to as a 'transactional memory device') 100 based on a conflict prediction between transactions includes an interface 101, a processor 103 and a database 105 can do.

인터페이스(101)는 제1 트랜잭션이 처리되는 중에, 상기 제1 트랜잭션과 상이한 제2 트랜잭션에 대한 처리 요청을 입력받을 수 있다.The interface 101 can receive a processing request for a second transaction different from the first transaction while the first transaction is being processed.

인터페이스(101)는 프로세서(103)에 의해, 제2 트랜잭션에 대한 처리 요청이 폐기되는 경우, 상기 임의의 제2 트랜잭션에 대한 처리 요청을, 상기 제1 트랜잭션의 처리 완료 이후에 자동으로 재입력받을 수 있다.The interface 101 receives a processing request for the arbitrary second transaction automatically when the processing request for the second transaction is discarded by the processor 103 after the completion of the processing of the first transaction .

프로세서(103)는 상기 제1 트랜잭션이 처리되는 제1 메모리 영역에서의, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측하고, 상기 충돌 가능성을 고려하여, 상기 제2 트랜잭션을 처리할 제2 메모리 영역을 결정할 수 있다. 여기서, 제1 메모리 영역 또는 제2 메모리 영역은 복수의 메모리 영역(예컨대, HTM 영역, STM 영역, 직열수행 영역) 중 어느 하나의 메모리 영역일 수 있다.The processor 103 is configured to predict the probability of a conflict between the first and second transactions in a first memory area in which the first transaction is processed, The area can be determined. Here, the first memory area or the second memory area may be any one of a plurality of memory areas (for example, an HTM area, an STM area, and a straight-line performing area).

상기 충돌 가능성 예측시, 프로세서(103)는 트랜잭션 간의 처리 이력을 데이터베이스(105)로부터 획득하고, 획득한 트랜잭션 간의 처리 이력에 기초하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다. 구체적으로, 프로세서(103)는 트랜잭션 간의 처리 이력에 기초하여, 상기 제1 트랜잭션과 상기 제2 트랜잭션을 같은 메모리 영역에서 처리할 경우에, 충돌이 발생한 제1 횟수와, 커패시티 어볼트(capacity abort)가 발생한 제2 횟수를 산출하고, 산출된 상기 제1 횟수와 상기 제2 횟수를 이용하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다. 이때, 프로세서(103)는 제1 트랜잭션(또는, 제2 트랜잭션)에 부여된 재시도 횟수를 더 이용하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다.In the collision probability prediction, the processor 103 acquires a processing history between transactions from the database 105, and can predict a possibility of collision between the first and second transactions based on the processing history between the acquired transactions. Specifically, when processing the first transaction and the second transaction in the same memory area based on a transaction history between transactions, the processor 103 calculates a first number of times a collision occurs and a capacity abort ) Is calculated, and the possibility of collision between the first and second transactions can be predicted using the first number of times and the second number of times calculated. At this time, the processor 103 may further use the number of retries given to the first transaction (or the second transaction) to predict the possibility of collision between the first and second transactions.

결과적으로, 프로세서(103)는 제1 횟수, 제2 횟수 및 재시도 횟수 중 적어도 하나를 이용하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다. 이때, 프로세서(103)는 제1 횟수, 제2 횟수 및 재시도 횟수를 합하여, 상기 충돌 가능성을 예측할 수 있다. 여기서, 프로세서(103)는 횟수(제1 횟수, 제2 횟수 및 재시도 횟수)별로 가중치를 고려하여, 상기 충돌 가능성을 예측할 수 있으며, 이에 관한 구체적인 방법에 대해, 설명의 편의상 [수학식 1]을 참조하여, 추후에 설명하도록 한다.As a result, the processor 103 can predict the possibility of a collision between the first and second transactions using at least one of a first count, a second count, and a retry count. At this time, the processor 103 may predict the collision probability by adding the first number, the second number, and the number of retries. Here, the processor 103 can estimate the collision probability by considering the weights for the number of times (the first number, the second number, and the number of retries), and a specific method regarding the collision probability may be expressed by Equation (1) Will be described later.

또한, 상기 제2 메모리 영역 결정시, 프로세서(103)는 복수의 메모리 영역에 대한 우선순위(예컨대, HTM 영역-1순위, STM 영역-2순위, 직열수행 영역-3순위)를 고려하여, 상기 복수의 메모리 영역 중에서 상기 제2 메모리 영역을 결정하되, 상기 충돌 가능성이 설정치 이상일 경우, 상기 제1 메모리 영역과 상이한 메모리 영역을 상기 제2 메모리 영역으로 결정할 수 있다. 예컨대, 프로세서(103)는 복수의 메모리 영역에 대한 우선순위에 따라, 제2 메모리 영역으로서, 'HTM 영역'을 결정할 수 있으나, 충돌 가능성이 설정치 이상일 경우, 제1 메모리 영역이 'HTM 영역'이면, 제2 메모리 영역으로서, 'STM 영역'을 결정할 수 있다.In determining the second memory area, the processor 103 considers the priorities of the plurality of memory areas (e.g., HTM area-1 order, STM area-2 order, and serial-row performing area-3 order) The second memory area may be determined from among a plurality of memory areas, and when the possibility of collision is equal to or greater than a set value, a memory area different from the first memory area may be determined as the second memory area. For example, the processor 103 may determine the 'HTM area' as the second memory area according to the priorities of the plurality of memory areas, but if the possibility of collision is equal to or greater than the set value, the first memory area is the 'HTM area' , And the " STM area " can be determined as the second memory area.

프로세서(103)는 상기 충돌 가능성을 고려하여, 결정된 제2 메모리 영역에서 상기 제2 트랜잭션을 처리할 수 있다. 이때, 프로세서(103)는 상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하지 않으면(예컨대, 충돌이 발생하는 경우), 횟수를 카운트한 후, 상기 충돌 가능성의 예측과, 상기 제2 메모리 영역의 결정을 재수행하되, 상기 카운트된 횟수가, 상기 제2 트랜잭션에 부여된 재시도 횟수에 도달하는 경우, 상기 처리 요청을 폐기할 수 있다. 즉, 프로세서(103)는 상기 제2 메모리 영역 내 상기 제2 트랜잭션의 처리 결과, 충돌이 발생한 경우(예컨대, 제2 트랜잭션이, 제1 트랜잭션과 충돌이 발생하거나, 또는 다른 임의의 트랜잭션과 충돌이 발생한 경우), 횟수(실제 재시도되는 횟수)를 카운트하고, 상기 제2 트랜잭션을 재처리하기 위한 과정을 진행할 수 있다. 이때, 프로세서(103)는 상기 카운트된 횟수가, 상기 제2 트랜잭션에 기설정된 재시도 횟수와 일치하게 되면, 상기 제2 트랜잭션을 단독으로 처리하는 것이 효율적인 것으로 간주하여, 상기 제2 트랜잭션에 대한 처리 요청을 폐기할 수 있다.The processor 103 may process the second transaction in the determined second memory area, taking into account the possibility of the conflict. At this time, if the processing result of the second transaction does not satisfy the predetermined criterion (e.g., when a collision occurs), the processor 103 counts the number of times, , And may discard the processing request if the counted number reaches the number of retries given to the second transaction. In other words, when the processor 103 determines that a conflict has occurred as a result of the processing of the second transaction in the second memory area (e.g., a second transaction has a conflict with the first transaction, , Counts the number of times (the number of times actually retried), and proceeds to reprocess the second transaction. At this time, the processor 103 regards that it is efficient to process the second transaction alone when the counted number coincides with the preset number of retries in the second transaction, The request can be discarded.

반면, 프로세서(103)는 상기 결정된 제2 메모리 영역 내 상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하면(예컨대, 충돌이 발생하지 않는 경우), 상기 카운트된 횟수에 기초하여, 상기 제2 트랜잭션에 부여된 재시도 횟수를 조정할 수 있다. 이때, 프로세서(103)는 상기 카운트된 횟수로 상기 재시도 횟수를 대체하거나, 또는 설정치 만큼 상기 재시도 횟수를 감소시킬 수 있다. 예컨대, 프로세서(103)는 상기 카운트된 횟수가 '5'이고, 상기 재시도 횟수가 '10'일 경우, 상기 재시도 횟수를 카운트된 횟수로 대체하여 '5'로 조정하거나, '8'로 감소시킬 수 있다.On the other hand, when the processing result of the second transaction in the determined second memory area satisfies the predetermined criterion (for example, when no collision occurs), the processor 103 determines, based on the counted number, You can adjust the number of retries given to a transaction. At this time, the processor 103 may replace the retry count with the counted number or decrease the retry count by the set value. For example, when the counted number is '5' and the retry count is '10', the processor 103 may adjust the retry count to '5' by replacing the retry count with the counted number, or '8' .

또한, 프로세서(103)는 상기 제2 트랜잭션이 복수일 경우, 상기 복수의 제2 트랜잭션 각각에 카운트된 횟수에 대한 평균값을 연산하고, 상기 평균값 보다 높게 카운트된 임의의 제2 트랜잭션과 연관되는 상기 처리 요청을 폐기할 수 있다. 즉, 프로세서(103)는 재처리하기 위한 과정(즉, 충돌 가능성의 예측과, 상기 제2 메모리 영역의 결정)을 다른 트랜잭션 보다 상대적으로 많이 진행한 임의의 제2 트랜잭션에 대해서는, 단독으로 처리하는 것이 효율적인 것으로 간주하여, 상기 제2 트랜잭션에 대한 처리 요청을 폐기할 수 있다. 예컨대, 프로세서(103)는 상기 복수의 제2 트랜잭션 각각에 카운트된 횟수가, '5, 6, 4, 5, 15'로 확인되는 경우, 평균값('7') 보다 높게 카운트된 제2 트랜잭션 즉, '15'로 카운트된 제2 트랜잭션과 연관되는 상기 처리 요청을 폐기할 수 있다.The processor 103 may also be configured to calculate an average for the number of times counted in each of the plurality of second transactions if the second transaction is a plurality of transactions, The request can be discarded. In other words, the processor 103 processes the arbitrary second transaction, which has performed a relatively large number of reprocessing processes (that is, prediction of the possibility of collision and determination of the second memory area) It is considered to be efficient, and the processing request for the second transaction can be discarded. For example, when the number of times counted in each of the plurality of second transactions is '5, 6, 4, 5, 15', the processor 103 determines that the second transaction counted higher than the average value ('7' , The processing request associated with the second transaction counted as '15' may be discarded.

한편, 프로세서(103)는 제2 트랜잭션에 대한 처리 요청을 폐기한 후, 인터페이스(101)을 통해, 상기 처리 요청이, 상기 제1 트랜잭션의 처리 완료 이후에 자동으로 재입력되면, 상기 제2 트랜잭션을 단독으로 처리할 수 있다.On the other hand, the processor 103, after discarding the processing request for the second transaction, via the interface 101, if the processing request is automatically re-entered after the processing of the first transaction is completed, Can be treated alone.

데이터베이스(105)는 트랜잭션 간의 처리 이력을 저장할 수 있다.The database 105 can store the processing history between transactions.

도 2는 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 구성 일례를 나타내는 도면이다.2 is a diagram illustrating an example of a configuration of a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.

도 2를 참조하면, 트랜잭셔널 메모리 장치(200)는 TM 컨트롤러(TM Contoller)(201), HTM 매니저(HTM Manager)(211) 및 STM 매니저(STM manager)(217)를 포함하여 구성될 수 있다.2, the transactional memory device 200 may include a TM controller (TM controller) 201, an HTM manager 211, and an STM manager 217 have.

TM 컨트롤러(201)는 모든 워크로드(workload)의 트랜잭션에 대한 처리를 관리하는 컴포넌트로서, 폴백 핸들러(Fallback handler)(203), 엑스큐션 프레딕터(Execution predictor)(205), 컨플릭트 리졸버(Conflict resolver)(207), 재시도 핸들러(Retry handler)(209)를 포함할 수 있다.The TM controller 201 is a component that manages processing of transactions of all workloads and includes a fallback handler 203, an execution predictor 205, a conflict resolver ) 207, and a retry handler (209).

폴백 핸들러(203)는 트랜잭션을 HTM으로 처리 시 문제가 발생했을 때, STM 또는 직렬수행 처리를 판단하는 모듈이다. 이때, 폴백 핸들러(203)는 엑스큐션 프레딕터(205)로부터 트랜잭션의 정보를 수신하고, 트랜잭션의 정보에 기초하여, STM 또는 직렬수행 처리를 판단 함으로써, 최선의 트랜잭션 처리 영역을 결정할 수 있다. 여기서, 트랜잭션의 정보는 예컨대, 트랜잭션에 대한 충돌 예측 값, 트랜잭션 사이즈(transaction size), 트랜잭션 라이트 동작(write operation) 수 등일 수 있다. The fallback handler 203 is a module for determining STM or serial execution processing when a problem occurs in processing a transaction as an HTM. At this time, the fallback handler 203 receives the information of the transaction from the execution predictor 205, and determines the best transaction processing region by judging the STM or serial execution processing based on the information of the transaction. Here, the transaction information may be, for example, a collision prediction value for a transaction, a transaction size, a number of transaction write operations, and the like.

엑스큐션 프레딕터(205)는 과거 트랜잭션을 수행한 후 누적된 데이터(즉, 트랜잭션 간의 처리 이력)를 이용하여, 트랜잭션 메타 데이터(meta data) 및 확률적 충돌 메트릭스(matrix)를 구성하고, 트랜잭션 수행 시 해당 정보를 폴백 핸들러(203)에 제공할 수 있다.The execution predictor 205 constructs transaction meta data and a probabilistic collision matrix using accumulated data (i.e., a transaction history between transactions) after executing a past transaction, It is possible to provide the corresponding information to the fallback handler 203.

컨플릭트 리졸버(207)는 HTM과 STM에서 트랜잭션이 동시에 수행될 경우, 발생하는 충돌을 해결할 수 있다. 컨플릭트 리졸버(207)는 충돌에 대한 트랜잭션 탐지를 수행하여, 직렬수행 하는 기존의 방법과는 다르게, 블룸 필터(bloom filter) 기반 컨플릭트 디텍터(conflict detector)를 통해 충돌을 감지하면, HTM 상의 트랜잭션 및 STM 상의 트랜잭션의 우선순위를 파악하고, 트랜잭션의 우선순위에 기초하여 트랜잭션에 대한 처리 순서를 결정할 수 있다.The conflict resolver 207 can resolve conflicts occurring when a transaction is simultaneously performed in the HTM and the STM. The conflict resolver 207 performs transaction detection on the collision and, unlike the existing method of performing serial processing, detects conflicts through a conflict detector based on a bloom filter, the transaction on the HTM and the STM The priority of the transaction on the basis of the priority of the transaction, and the order of processing for the transaction can be determined based on the priority of the transaction.

재시도 핸들러(209)는 HTM 상에서 처리되는 트랜잭션에 대해 최적의 재시도 스레숄드(retry threshold)를 설정하고, 강화학습법 알고리즘인 경사하강법 및 모멘텀을 활용하여 워크로드(workload)에 따른 최적의 재시도 스레숄드를 학습시킬 수 있다.The retry handler 209 sets an optimal retry threshold for the transactions being processed on the HTM and uses the steep descent method and the momentum to perform an optimal retry according to the workload Threshold can be learned.

HTM 매니저(211)는 트랜잭션의 HTM 처리를 관리하는 모듈로서, LiteHTM(213) 및 BF-HTM(215)을 포함할 수 있다.The HTM manager 211 is a module for managing the HTM processing of the transaction, and may include a LiteHTM 213 and a BF-HTM 215. [

LiteHTM(213)은 STM이 동시에 실행되지 않을 때, 작동되는 기본적인 HTM 처리 알고리즘에 따라, 트랜잭션의 처리를 관리할 수 있다.Lite HTM 213 can manage the processing of transactions according to a basic HTM processing algorithm that is activated when STM is not running at the same time.

BF-HTM(215)은 STM이 동시에 실행될 시 동작하는 HTM 처리 알고리즘에 따라, 트랜잭션의 처리를 관리할 수 있다. BF-HTM(215)은 STM과의 충돌 문제를 해결하기 위해, 블룸 필터 기반의 충동 탐지 알고리즘을 사용할 수 있다. 이때, BF-HTM(215)은 블룸 필터의 성능(즉, 로우 스토리지 오버헤드(low storage overhead) 및 로우 펄스 포지티브(low false positive))을 극대화하기 위해 워크로드마다 최적의 블룸 필터 값을 설정할 수 있다.The BF-HTM 215 can manage the processing of the transaction in accordance with the HTM processing algorithm that operates when the STM is executed at the same time. The BF-HTM 215 may use a Bloom filter-based impulse detection algorithm to solve the collision problem with the STM. At this time, the BF-HTM 215 may set an optimal Bloom filter value for each workload to maximize the performance of the Bloom filter (i.e., low storage overhead and low false positive) have.

STM 매니저(217)는 트랜잭션의 STM 처리를 관리하는 모듈로서, 기본적인 STM을 담당하는 SpectSTM(219)과 직렬수행을 처리하는 sgl Lock(221)이 존재한다.The STM manager 217 is a module for managing the STM process of the transaction. The STM manager 217 has a SpectSTM 219 responsible for basic STM and an sgl lock 221 for processing serial execution.

ⅰ)트랜잭션 충돌 예측 분석 알고리즘을 통한 트랜잭션 처리I) Transaction processing through transaction collision prediction analysis algorithm

본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치는 트랜잭션 충돌 예측 분석 알고리즘을 통해, 트랜잭션을 처리할 수 있다.A transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention can process a transaction through a transaction collision prediction analysis algorithm.

구체적으로, 트랜잭셔널 메모리 장치는 트랜잭션 간에 충돌 예측을 위한 메트릭스(matrix)를 구성하고, 각 트랜잭션에 대한 메타데이터를 축적한다. 트랜잭셔널 메모리 장치는 메트릭스 및 각 트랜잭션에 대한 메타데이터에 기초하여, 사용자로부터 입력되는 트랜잭션에 대해 충돌 예측을 수행하여, 최상의 성능을 보장하는 메모리 영역으로서, 예컨대, HTM, STM 및 직렬수행 영역 중 어느 하나를 결정할 수 있다.Specifically, a transactional memory device constructs a matrix for predicting collision between transactions and accumulates metadata for each transaction. A transactional memory device is a memory area that performs a collision prediction for a transaction input from a user based on metrics and meta data for each transaction to ensure the best performance, for example, HTM, STM, and serial execution area Any one can be determined.

트랜잭셔널 메모리 장치는 각 프로세서마다 트랜잭션을 독립적으로 처리하도록 지원할 수 있으며, 각 프로세서 간의 동시성 제어를 위해, MESI 프로토콜(Modified Exclusive Shared Invalid protocol)을 사용할 수 있다. 이때, 트랜잭셔널 메모리 장치 내 공유 메모리는 트랜잭션 리스트(transaction list)를 통해 각 프로세서에 할당할 트랜잭션을 관리할 수 있으며, 충돌 예측 테이블 및 트랜잭션에 대한 메타데이터를 통해, 해당 트랜잭션이 어떠한 메모리 영역(TM)에서 최상을 성능을 보장하는지에 대한 여부를 판단할 수 있다.Transactional memory devices can support transaction processing independently for each processor and MESI protocol (Modified Exclusive Shared Invalid protocol) can be used for concurrency control between processors. In this case, the shared memory in the transactional memory device can manage the transaction to be assigned to each processor through the transaction list. Through the metadata of the conflict prediction table and the transaction, ≪ RTI ID = 0.0 > TM). ≪ / RTI >

트랜잭셔널 메모리 장치는 다수의 코어에서 공유 메모리(shared memory)를 통해 트랜잭션을 처리할 수 있다. 이때, 공유 메모리에서는 사용자로부터 입력되는 트랜잭션을 트랜잭션 리스트를 통해 할당받는다. 여기서, 트랜잭션 리스트는 트랜잭션 아이디(Trxid) 및 러닝 비트(running bit)로 이루어진다. 트랜잭션 아이디는 트랜잭션의 아이디(id)를 의미하고, 트랜잭션의 아이디는 해시 값을 통해 생성될 수 있다. 러닝 비트(running bit)는 현재 해당 트랜잭션의 프로세서에서의 동작 여부를 판단하는 시그니처로서, 빠른 비교 연산을 제공한다.Transactional memory devices can handle transactions through shared memory on multiple cores. At this time, in the shared memory, transactions inputted by the user are allocated through the transaction list. Here, the transaction list includes a transaction ID (Trxid) and a running bit. The transaction ID represents the ID of the transaction, and the ID of the transaction can be generated by the hash value. The running bit is a signature that determines whether the processor of the current transaction is operating in the processor, and provides a quick comparison operation.

한편, 트랜잭셔널 메모리 장치는 해당 트랜잭션에 대한 최상의 메모리 영역(TM)을 판단하는 데이터 구조로서, 프레딕션 테이블(Prediction table)을 생성할 수 있다. 이때, 트랜잭셔널 메모리 장치는 과거에 수행되었던 트랜잭션의 정보를 통해, 프레딕션 테이블을 생성할 수 있다. 구체적으로, 트랜잭셔널 메모리 장치는 각 트랜잭션에 대한 충돌 예측 확률(즉, 충돌 가능성)을 [수학식 1]을 통해 확률적으로 수치화하고, 수치화한 충돌 예측 확률을 프레딕션 테이블에 포함시킬 수 있다.Meanwhile, the transactional memory device can generate a predication table as a data structure for determining a best memory area (TM) for a corresponding transaction. At this time, the transactional memory device can generate the prediction table through the information of the transaction that has been performed in the past. Specifically, the transactional memory device can stochastically quantify the collision prediction probability (i.e., collision probability) for each transaction through Equation (1), and include the collision prediction probability as a numerical value in the prediction table .

트랜잭션 x(제1 트랜잭션) 및 트랜잭션 y(제2 트랜잭션)에 대해 발생할 수 있는 어볼트(abort)의 종류는 크게 3가지로 나누어진다. 예컨대, Abortcon(x,y)는 두 개의 트랜잭션 x 및 트랜잭션 y 간에 충돌이 발생한 제1 횟수를 의미하고, Abortcap(x,y)는 트랜잭션 x와 트랜잭션 y가 실행 중에 커패시티 어볼트(capacity abort)가 발생한 제2 횟수를 의미할 수 있다. 또한, Abortattemp(x,y)는 재시도 정책을 통해 수행되는 트랜잭션일 경우, 트랜잭션 x(또는, 트랜잭션 y)에 부여된 재시도 횟수를 의미할 수 있다.The types of aborts that can occur for transaction x (first transaction) and transaction y (second transaction) are roughly divided into three types. For example, Abortcon (x, y) means the first number of collisions between two transactions x and y, and Abortcap (x, y) means the capacity abort May be a second number of times that the < RTI ID = 0.0 > Also, Abortattemp (x, y) can refer to the number of retries given to transaction x (or transaction y) for a transaction performed through a retry policy.

프레딕션 테이블(Prediction table)에 저장되는 충돌 예측 확률은 Abortcon(x,y), Abortcap(x,y), Abortattemp(x,y) 각각에 대한 α, β, γ의 가중치에 따라 결정될 수 있다.The collision prediction probability stored in the predication table can be determined according to the weights of?,?, And? For each of Abortcon (x, y), Abortcap (x, y) and Abortattemp (x, y).

Figure 112016084414912-pat00001
Figure 112016084414912-pat00001

한편, 트랜잭셔널 메모리 장치는 트랜잭션 x, y에 대해, 프레딕션 테이블의 충돌 예측 확률(proc)에 따라 최상의 성능을 보이는 메모리 영역(TM)을 결정할 수 있다. 이때, 트랜잭셔널 메모리 장치는 [수학식 2]에 따른 알고리즘에 기초하여, 최상의 성능을 보이는 메모리 영역(TM)을 결정할 수 있다.On the other hand, the transactional memory device can determine the memory area TM that exhibits the best performance according to the collision prediction probability (proc) of the prediction table for the transactions x and y. At this time, the transactional memory device can determine the memory area TM showing the best performance based on the algorithm according to the equation (2).

Figure 112016084414912-pat00002
Figure 112016084414912-pat00002

즉, 트랜잭셔널 메모리 장치는 충돌 예측 확률(proc)이 제1 임계값(예컨대, high 임계값,

Figure 112016084414912-pat00003
)보다 높을 경우, 직렬실행으로 처리하고, 제1 임계값과 제2 임계값(예컨대, low 임계값) 사이에 존재할 경우 STM으로 처리할 수 있다. 또한, 트랜잭셔널 메모리 장치는 제2 임계값 보다 낮을 경우, HTM으로 처리할 수 있다.That is, the transactional memory device determines whether the collision prediction probability (proc) is greater than a first threshold (e.g., a high threshold,
Figure 112016084414912-pat00003
, It can be processed in serial execution and processed by the STM if it exists between the first threshold and a second threshold (e.g., a low threshold). In addition, if the transactional memory device is lower than the second threshold value, it can be handled by the HTM.

그러나, 충돌 예측 확률이 항상 발생하는 것은 아니므로, 트랜잭셔널 메모리 장치는 기본적으로 트랜잭션에 대한 처리 방식에 있어서, 낮은 비용을 요구하는 HTM으로 먼저 수행할 수 있으며, HTM을 수행하여 충돌이 발생하면 충돌 예측 확률(proc)에 따라 결정된 메모리 영역으로 처리할 수 있다.However, since the probability of a collision prediction does not always occur, the transactional memory device can basically perform a transaction processing with a low cost as an HTM, and if a collision occurs Can be processed into a memory area determined according to the collision prediction probability (proc).

트랜잭셔널 메모리 장치는 각 코어에서 HTM, STM, 직렬실행으로 트랜잭션을 처리할 때, 수행 중인 트랜잭션은 MESI 프로토콜을 통해 동시성 제어를 수행하며, 트랜잭션의 수행결과를 트랜잭션 메타 데이터 및 확률적 충돌 메트릭스에 기록할 수 있다. 이때, 트랜잭션 메타 데이터는 모든 트랜잭션에 대한 정보를 기록하는 데이터 구조로서, 예컨대, 도 3과 같이 구성될 수 있다. 트랜잭션을 통해 획득한 정보는 각 코어에서 개별적으로 관리될 수 있다. 효율적인 충돌 예측을 제공하기 위해, 트랜잭셔널 메모리 장치는 하나의 독립적인 프로세서를 통해, 각 코어가 관리하는 트랜잭션 정보를 수집할 수 있다. 여기서, 독립적인 프로세서는 트랜잭션 데이터를 병합한 후 프레딕션 테이블(Prediction table)을 구성하는 역할을 수행한다.When a transactional memory device processes a transaction in HTM, STM, or serial execution in each core, the transaction being executed performs concurrency control through the MESI protocol, and the result of the transaction is stored in transaction metadata and probabilistic collision metrics Can be recorded. At this time, the transaction metadata is a data structure for recording information about all the transactions, for example, as shown in FIG. Information acquired through transactions can be managed separately in each core. To provide efficient collision prediction, transactional memory devices can collect transaction information managed by each core through a single, independent processor. Here, the independent processor performs the role of composing a predication table after merging the transaction data.

ⅱ)지능형 HTM 재시도 정책 알고리즘을 통한 트랜잭션 처리Ⅱ) Transaction processing through intelligent HTM retry policy algorithm

트랜잭셔널 메모리 장치는 지능형 HTM 재시도 정책 알고리즘 통해, 트랜잭션을 처리할 수 있다. 즉, 트랜잭셔널 메모리 장치는 HTM상에서 효율적인 지능형 재시도 정책(Intelligent Retry Policy, 이하 IRP)으로서, 워크로드에 따라 재시도 횟수를 학습시켜 최적의 재시도 횟수를 선정할 수 있다.Transactional memory devices can process transactions through an intelligent HTM retry policy algorithm. In other words, the transactional memory device is an intelligent retry policy (IRP) on the HTM, and it can learn the number of retries according to the workload and select the optimal number of retries.

트랜잭셔널 메모리 장치는 트랜잭션의 과거 재시도 횟수를 축적하여 통계정보를 산출하는 IRP을 이용 함으로써, 직전에 처리된 트랜잭션을 바탕으로 재시도 횟수를 산출하는 기존의 방법 보다 최적에 근접한 재시도 횟수를 산출할 수 있다.The transactional memory device uses the IRP that accumulates the number of past retries of the transaction and calculates the statistical information so that the number of retries that are closer to the optimal one than the existing method that calculates the number of retries based on the transactions processed immediately before Can be calculated.

구체적으로, 최적의 재시도 횟수를 산정하기 위해, 트랜잭셔널 메모리 장치는 이전에 수행되었던 트랜잭션의 최적의 재시도 값을 해시 기반의 데이터 구조에 저장할 수 있다. 여기서, 데이터 구조는 트랜잭션 아이디(Txid), 재시도 횟수(retry number)의 구조로 이루어질 수 있으며, 트랜잭션 종료 시 해당 데이터가 갱신될 수 있다.Specifically, to estimate the optimal number of retries, the transactional memory device may store an optimal retry value of a previously performed transaction in a hash-based data structure. Here, the data structure may have a structure of a transaction ID (Txid) and a number of retries (retry number), and the corresponding data may be updated at the end of a transaction.

트랜잭셔널 메모리 장치는 재시도 횟수 선정 알고리즘 수행시, 데이터의 특성에 따라, 평균값, 중앙값 및 최빈값 중 어느 하나에 기반하여, 재시도 횟수를 선정할 수 있다.The transactional memory device can select the number of retries based on either the average value, the median value or the mode value depending on the characteristics of the data when the number of retries selection algorithm is performed.

- 평균값에 기반한 재시도 횟수 선정- Number of retries based on average value

트랜잭셔널 메모리 장치는 평균값에 기반한 최적 재시도 횟수 선정 방법으로서, 전체 데이터에 대한 합을 구하고, 합에 대한 평균값을 최적의 재시도 횟수로 선정하는 것으로서, [수학식 3]에 의해, 평균값에 기반한 최적의 재시도 횟수(

Figure 112016084414912-pat00004
)를 구할 수 있다.The transactional memory device is a method for selecting the optimum number of retries based on the average value. The sum of the total data is obtained and the average value of the sum is selected as the optimal number of retries. The optimal number of retries based on (
Figure 112016084414912-pat00004
) Can be obtained.

Figure 112016084414912-pat00005
Figure 112016084414912-pat00005

트랜잭셔널 메모리 장치는 예컨대, [표 1]과 같이 재시도 횟수 데이터가 존재할 경우, 평균값에 기반한 최적의 재시도 횟수로서, 38/5 = 7.6 ≒7을 구할 수 있다.For example, if there is retry count data as shown in [Table 1], the transactional memory can obtain 38/5 = 7.6 ≒ 7 as the optimal retry count based on the average value.

Figure 112016084414912-pat00006
Figure 112016084414912-pat00006

- 중앙값에 기반한 재시도 횟수 선정 - Number of retries based on median value

트랜잭셔널 메모리 장치는 평균값에 기반한 재시도 횟수 선정시, 특정 값이 지나치게 클 경우(설정값 이상 클 경우), 평균값이 대표성을 잃을 수 있음에 따라, 중앙값에 기반하여 최적의 재시도 횟수를 선정할 수 있다. 예컨대, 트랜잭셔널 메모리 장치는 평균값에 기반한 재시도 횟수 선정시, [표 1]에서 Tx5가 다른 값들에 비해 지나치게 큰 값(예컨대, 10 이상의 큰값)을 가져, 평균값으로 산출된 7이 대표성이 없다고 판단되면, 중앙값에 기반한 재시도 횟수 선정 방법으로 최적의 재시도 횟수를 구할 수 있다.The transactional memory device selects the optimal number of retries based on the median value as the average value may lose its representative value when the number of retries based on the average value is excessively large can do. For example, in the transactional memory device, when selecting the number of retries based on the average value, Tx5 in Table 1 has an excessively large value (for example, 10 or larger) in comparison with other values, If it is judged, the optimal number of retries can be obtained by selecting the number of retries based on the median value.

이때, 트랜잭셔널 메모리 장치는 통계 정보를 바탕으로 중앙값을 검출하고, 검출된 중앙값에 기초하여 재시도 횟수를 선정할 수 있다. 여기서, 트랜잭셔널 메모리 장치는 [수학식 4]에 의해, 중앙값에 기반한 최적의 재시도 횟수(

Figure 112016084414912-pat00007
)를 선정할 수 있다.At this time, the transactional memory device can detect the median based on the statistical information and select the number of retries based on the median value detected. Here, the transactional memory device calculates the optimal number of retries based on the median value (Equation 4)
Figure 112016084414912-pat00007
) Can be selected.

Figure 112016084414912-pat00008
Figure 112016084414912-pat00008

여기서,

Figure 112016084414912-pat00009
는 모든 트랜잭션의 재시도 횟수를 의미할 수 있다.here,
Figure 112016084414912-pat00009
May refer to the number of retries of all transactions.

예컨대, 트랜잭셔널 메모리 장치는 [표 1]에서의 중앙값을 (5+1)/2 = 3으로 산출할 수 있으며, 이에 따라 5를 최적의 재시도 횟수로 선정할 수 있다.For example, the transactional memory device can calculate the median value in Table 1 as (5 + 1) / 2 = 3, so 5 can be selected as the optimal number of retries.

- 통계값에 기반한 재시도 횟수 선정- Number of retries based on statistics

결과적으로, 트랜잭셔널 메모리 장치는 재시도 횟수 선정 방법으로서, 데이터의 분포 특성에 따라 평균값 또는 중앙값 기반으로 수행할 수 있다. 이때, 트랜잭셔널 메모리 장치는 데이터의 분포를 파악하기 위해, 분산 및 표준편차를 계산하고, 분산값이 클 경우(분산값이 설정된 기준치 이상일 경우), 중앙값 기반으로 수행하고, 분산값이 크지 않을 경우, 평균값 기반으로 최적의 재시도 횟수를 선정할 수 있다. As a result, the transactional memory device can be selected based on the average value or the median value depending on the distribution characteristics of the data, as a method of selecting the number of retries. In this case, the transactional memory device calculates the dispersion and standard deviation in order to grasp the distribution of data, and when the dispersion value is large (when the dispersion value is equal to or larger than the set reference value), it is performed based on the median value, , The optimal number of retries can be selected based on the average value.

한편, 트랜잭셔널 메모리 장치는 최적의 재시도 횟수의 갱신을 위한 조건으로서, [수학식 5]를 통해 획득한 수행 시간 손실율(

Figure 112016084414912-pat00010
)이, 특정 임계값을 초과할 경우, 최적의 재시도 횟수를 갱신할 수 있다.On the other hand, the transactional memory device is a condition for updating the number of retries for optimal time,
Figure 112016084414912-pat00010
) Exceeds the specific threshold value, it is possible to update the optimal number of retries.

Figure 112016084414912-pat00011
Figure 112016084414912-pat00011

여기서, clock(Tx)는 트랜잭션 Tx가 수행되는 CPU 사이클 수를 의미하고,

Figure 112016084414912-pat00012
는 현재 트랜잭션 및 이전 트랜잭션의 수행 시간 손실율을 나타낸다.Here, clock (Tx) means the number of CPU cycles in which the transaction Tx is performed,
Figure 112016084414912-pat00012
Represents the execution time loss rate of the current transaction and the previous transaction.

한편, 상기 IRP 이용시, 트랜잭셔널 메모리 장치는 딥러닝 알고리즘으로서의 모멘텀에 기반하여 재시도 횟수 알고리즘을 수행할 수 있다. 이때, 트랜잭셔널 메모리 장치는 기존 업데이트에 사용되었던 기울기의 일정 비율을 현재 기울기 값에 더하여 업데이트를 수행 함으로써, 경사하강법 알고리즘을 이용한 최적의 재시도 횟수 산정시 발생할 수 있는 문제(즉, 미분 값을 통해 계산된 기울기를 바탕으로 기울기가 낮아지는 방향으로 해를 산출하나, 전역 최소 값(Global minina)을 찾지 못하고, 지역 최소값(local minina)을 찾는 문제)를 해결할 수 있다.On the other hand, when using the IRP, the transactional memory device can perform the retry count algorithm based on the momentum as the deep learning algorithm. At this time, the transactional memory device performs updating by adding a certain ratio of the slope used in the existing update to the current slope value, thereby to solve the problem (i. E., A problem that may occur in calculating the optimal number of retries using the slope descending algorithm The problem is to find the solution in a direction in which the slope is lowered based on the slope calculated from the slope calculated by the above method, but the global minina can not be found and the local minina is found.

또한, 트랜잭셔널 메모리 장치는 모멘텀 기반 점프(jump) 알고리즘을 통해, 모멘텀으로 해결할 수 없는 값에 대해서는 특정 값의 점프를 통해 전역 최소 값, 즉 최적의 재시도 횟수를 산출할 수 있다.In addition, the transactional memory device can calculate the global minimum value, that is, the optimal number of retries, through a momentary-based jump algorithm, by jumping a specific value for values that can not be resolved by momentum.

상기 문제를 해결하기 위해, 먼저, 트랜잭셔널 메모리 장치는 [수학식6]을 통해, 임의의 값(temp)을 찾을 수 있다.In order to solve the above problem, first, the transactional memory device can find an arbitrary value (temp) through the expression (6).

Figure 112016084414912-pat00013
Figure 112016084414912-pat00013

이후, 트랜잭셔널 메모리 장치는 도 4에 도시된 바와 같이, 로컬 최저값(local minima)에서의 미분값(next)을 계산하고, 이전 미분값(last)과 비교하여, 점프(jump) 알고리즘 또는 모멘텀 알고리즘의 수행을 선택할 수 있다. 이때, 트랜잭셔널 메모리 장치는 라스트(last) 값이 넥스트(next) 값보다 클 경우, 기울기 값이 낮아지기 때문에 모멘텀 기법을 사용하며, 라스트(last)값이 넥스트(next) 값 보다 작은 경우, 기울기 값이 급격히 올라가기 때문에 점프 알고리즘을 사용하여 로컬 최저값을 벗어날 수 있다.The transactional memory device then computes a derivative value next at the local minimum and compares it with the previous derivative value last to determine whether the jump algorithm or momentum You can choose to perform the algorithm. In this case, when the last value is greater than the next value, the transactional memory device uses the momentum technique because the slope value is lowered. When the last value is smaller than the next value, Because the value increases sharply, you can use the jump algorithm to escape the local minimum.

도 5는 본 발명의 일실시예에 따른 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 동작 방법을 나타내는 흐름도이다.5 is a flowchart illustrating a method of operating a transactional memory device based on inter-transaction conflict prediction according to an embodiment of the present invention.

도 5를 참조하면, 단계(501)에서, 트랜잭셔널 메모리 장치는 제2 트랜잭션에 대한 처리 요청 입력에 연동하여, 상기 제2 트랜잭션과 상이한 제1 트랜잭션이 처리되는 중인지를 확인할 수 있다.Referring to FIG. 5, in step 501, the transactional memory device can check whether a first transaction different from the second transaction is being processed, in association with a processing request input for the second transaction.

단계(503)에서, 트랜잭셔널 메모리 장치는 상기 제1 트랜잭션이 처리되는 중으로 확인되는 경우, 상기 제1 트랜잭션이 처리되는 제1 메모리 영역에서의, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다.In step 503, the transactional memory device determines whether the first transaction is being processed, estimating the probability of a conflict between the first and second transactions in the first memory area in which the first transaction is processed .

이때, 트랜잭셔널 메모리 장치는 트랜잭션 간의 처리 이력에 기초하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다. 구체적으로, 트랜잭셔널 메모리 장치는 트랜잭션 간의 처리 이력에 기초하여, 상기 제1 트랜잭션과 상기 제2 트랜잭션을 같은 메모리 영역에서 처리할 경우에, 충돌이 발생한 제1 횟수와, 커패시티 어볼트(capacity abort)가 발생한 제2 횟수를 산출하고, 산출된 상기 제1 횟수와 상기 제2 횟수를 이용하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다. 또한, 트랜잭셔널 메모리 장치는 제1 트랜잭션(또는, 제2 트랜잭션)에 부여된 재시도 횟수를 더 이용하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다. 결과적으로, 트랜잭셔널 메모리 장치는 제1 횟수, 제2 횟수 및 재시도 횟수 중 적어도 하나를 이용하여, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측할 수 있다.At this time, the transactional memory device can predict the possibility of collision between the first and second transactions based on the transaction history between transactions. More specifically, the transactional memory device may be configured to, based on a transaction history between transactions, determine, when processing the first transaction and the second transaction in the same memory area, a first number of times a conflict occurs, abort is generated, and the possibility of collision between the first and second transactions can be predicted by using the first number and the second number calculated. In addition, the transactional memory device may further use the number of retries given to the first transaction (or second transaction) to predict the probability of a conflict between the first and second transactions. As a result, the transactional memory device can predict the probability of a conflict between the first and second transactions using at least one of a first number of times, a second number of times, and a number of retries.

단계(505)에서, 트랜잭셔널 메모리 장치는 상기 충돌 가능성을 고려하여, 상기 제2 트랜잭션을 처리할 제2 메모리 영역을 결정할 수 있다. 이때, 트랜잭셔널 메모리 장치는 복수의 메모리 영역에 대한 우선순위를 고려하여, 상기 복수의 메모리 영역 중에서 상기 제2 메모리 영역을 결정하되, 상기 충돌 가능성이 설정치 이상일 경우, 상기 제1 메모리 영역과 상이한 메모리 영역을 상기 제2 메모리 영역으로 결정할 수 있다.In step 505, the transactional memory device may determine a second memory area to process the second transaction, taking into account the potential for conflict. At this time, the transactional memory device determines the second memory area among the plurality of memory areas in consideration of the priority for the plurality of memory areas, and when the possibility of collision is equal to or greater than the set value, The memory area can be determined as the second memory area.

이후, 트랜잭셔널 메모리 장치는 상기 충돌 가능성을 고려하여, 결정된 제2 메모리 영역에서 상기 제2 트랜잭션을 처리할 수 있다. 이때, 트랜잭셔널 메모리 장치는 상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하지 않으면(예컨대, 충돌이 발생하는 경우), 횟수를 카운트한 후, 상기 충돌 가능성의 예측과, 상기 제2 메모리 영역의 결정을 재수행하되, 상기 카운트된 횟수가, 상기 제2 트랜잭션에 부여된 재시도 횟수에 도달하는 경우, 상기 처리 요청을 폐기할 수 있다. 즉, 트랜잭셔널 메모리 장치는 상기 제2 메모리 영역 내 상기 제2 트랜잭션의 처리 결과, 충돌이 발생한 경우(예컨대, 제2 트랜잭션이, 제1 트랜잭션과 충돌이 발생하거나, 또는 다른 임의의 트랜잭션과 충돌이 발생한 경우), 횟수(실제 재시도되는 횟수)를 카운트하고, 상기 제2 트랜잭션을 재처리하기 위한 과정을 진행할 수 있다. 이때, 트랜잭셔널 메모리 장치는 상기 카운트된 횟수가, 상기 제2 트랜잭션에 기설정된 재시도 횟수와 일치하게 되면, 상기 제2 트랜잭션을 단독으로 처리하는 것이 효율적인 것으로 간주하여, 상기 제2 트랜잭션에 대한 처리 요청을 폐기할 수 있다.Thereafter, the transactional memory device may process the second transaction in the determined second memory area, taking into account the possibility of the conflict. At this time, if the processing result of the second transaction does not satisfy the predetermined criterion (e.g., when a collision occurs), the transactional memory device counts the number of times, Region, and discards the processing request if the counted number reaches the number of retries given to the second transaction. In other words, when the transactional memory device determines that a conflict has occurred as a result of the processing of the second transaction in the second memory area (e.g., when the second transaction has a conflict with the first transaction, , Counts the number of times (the number of actual retry attempts), and proceeds to reprocess the second transaction. At this time, when the counted number of times matches the preset number of retries in the second transaction, the transactional memory device regards that it is efficient to process the second transaction alone, The processing request can be discarded.

반면, 트랜잭셔널 메모리 장치는 상기 결정된 제2 메모리 영역 내 상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하면(예컨대, 충돌이 발생하지 않는 경우), 상기 카운트된 횟수에 기초하여, 상기 제2 트랜잭션에 부여된 재시도 횟수를 조정할 수 있다. 이때, 트랜잭셔널 메모리 장치는 상기 카운트된 횟수로 상기 재시도 횟수를 대체하거나, 또는 설정치 만큼 상기 재시도 횟수를 감소시킬 수 있다.On the other hand, if the processing result of the second transaction in the determined second memory area satisfies a predetermined criterion (for example, if no collision occurs), the transactional memory device stores, 2 You can adjust the number of retries given to a transaction. At this time, the transactional memory device may replace the retry count with the counted number, or may reduce the retry count by the set value.

또한, 트랜잭셔널 메모리 장치는 상기 제2 트랜잭션이 복수일 경우, 상기 복수의 제2 트랜잭션 각각에 카운트된 횟수에 대한 평균값을 연산하고, 상기 평균값 보다 높게 카운트된 임의의 제2 트랜잭션과 연관되는 상기 처리 요청을 폐기할 수 있다. 즉, 트랜잭셔널 메모리 장치는 재처리하기 위한 과정(즉, 충돌 가능성의 예측과, 상기 제2 메모리 영역의 결정)을 다른 트랜잭션 보다 상대적으로 많이 진행한 임의의 제2 트랜잭션에 대해서는, 단독으로 처리하는 것이 효율적인 것으로 간주하여, 상기 제2 트랜잭션에 대한 처리 요청을 폐기할 수 있다.In addition, the transactional memory device may further comprise: an average value calculation unit for calculating an average value for the number of times counted in each of the plurality of second transactions when the second transaction is a plurality of transactions, The processing request can be discarded. In other words, the transactional memory device can process the arbitrary second transaction, which has performed a relatively large number of reprocessing processes (that is, prediction of the possibility of collision and determination of the second memory area) , It is possible to discard the processing request for the second transaction.

한편, 트랜잭셔널 메모리 장치는 제2 트랜잭션에 대한 처리 요청을 폐기한 후, 상기 처리 요청을, 상기 제1 트랜잭션의 처리 완료 이후에 자동으로 재입력받을 수 있으며, 상기 처리 요청이 재입력되면, 상기 제2 트랜잭션을 단독으로 처리할 수 있다.On the other hand, the transactional memory device can automatically re-enter the processing request after the processing of the first transaction is completed after discarding the processing request for the second transaction, and when the processing request is re- And can process the second transaction alone.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored in one or more computer readable storage media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 저장될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 저장되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광저장 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program instruction that may be executed through various computer means and stored in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions stored on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable storage media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magneto-optical media such as floppy disks; Includes hardware devices specifically configured to store and execute program instructions such as magneto-optical media and ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

100: 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치
101: 인터페이스 103: 프로세서
105: 데이터베이스
100: Transactional memory device based on conflict prediction between transactions
101: interface 103: processor
105: Database

Claims (10)

제1 트랜잭션이 처리되는 중에, 상기 제1 트랜잭션과 상이한 제2 트랜잭션에 대한 처리 요청을 입력받는 인터페이스; 및
상기 제1 트랜잭션이 처리되는 제1 메모리 영역에서의, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측하고, 상기 충돌 가능성을 고려하여, 상기 제2 트랜잭션을 처리할 제2 메모리 영역을 결정하는 프로세서
를 포함하고,
상기 프로세서는,
상기 결정된 제2 메모리 영역에서 상기 제2 트랜잭션을 처리하고,
상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하지 않으면, 횟수를 카운트한 후, 상기 충돌 가능성의 예측과, 상기 제2 메모리 영역의 결정을 재수행하되, 상기 카운트된 횟수가, 상기 제2 트랜잭션에 부여된 재시도 횟수에 도달하는 경우, 상기 처리 요청을 폐기하는
트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치.
An interface for receiving a processing request for a second transaction different from the first transaction while the first transaction is being processed; And
A processor for predicting a conflict possibility between the first and second transactions in a first memory area in which the first transaction is processed and for determining a second memory area to process the second transaction,
Lt; / RTI >
The processor comprising:
Processing the second transaction in the determined second memory area,
If the processing result of the second transaction does not satisfy the predetermined criterion, counts the number of times, then predicts the collision probability and reruns the determination of the second memory area, When the number of times of retries given to the client device 10
Transactional memory device based on conflict prediction between transactions.
제1항에 있어서,
트랜잭션 간의 처리 이력에 기초하여,
상기 프로세서는,
상기 제1 트랜잭션과 상기 제2 트랜잭션을 같은 메모리 영역에서 처리할 경우에, 충돌이 발생한 제1 횟수와, 커패시티 어볼트(capacity abort)가 발생한 제2 횟수를 산출하고, 산출된 상기 제1 횟수와 상기 제2 횟수 중 적어도 하나를 이용하여, 상기 충돌 가능성을 예측하는
트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치.
The method according to claim 1,
Based on the transaction history between transactions,
The processor comprising:
Wherein when the first transaction and the second transaction are processed in the same memory area, a first number of times of occurrence of a collision and a second number of occurrence of a capacity bolt (capacity abort) are calculated, And estimating the possibility of collision using at least one of the second number and the second number
Transactional memory device based on conflict prediction between transactions.
삭제delete 제1항에 있어서,
상기 프로세서는,
상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하면,
상기 카운트된 횟수에 기초하여, 상기 제2 트랜잭션에 부여된 재시도 횟수를 조정하는
트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치.
The method according to claim 1,
The processor comprising:
If the processing result of the second transaction satisfies the predetermined criterion,
And adjusting the number of retries given to the second transaction based on the counted number
Transactional memory device based on conflict prediction between transactions.
제1항에 있어서,
상기 제2 트랜잭션이 복수일 경우,
상기 프로세서는,
상기 복수의 제2 트랜잭션 각각에 카운트된 횟수에 대한 평균값을 연산하고,
상기 평균값 보다 높게 카운트된 임의의 제2 트랜잭션과 연관되는 상기 처리 요청을 폐기하는
트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치.
The method according to claim 1,
If the second transaction is a plurality of transactions,
The processor comprising:
Calculating an average value for the counted number of times of each of the plurality of second transactions,
Discarding the processing request associated with any second transaction counted higher than the average value
Transactional memory device based on conflict prediction between transactions.
제5항에 있어서,
상기 인터페이스는,
상기 임의의 제2 트랜잭션에 대한 처리 요청을, 상기 제1 트랜잭션의 처리 완료 이후에 재입력받는
트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치.
6. The method of claim 5,
The interface comprises:
A processing request for the second arbitrary transaction is re-input after completion of processing of the first transaction
Transactional memory device based on conflict prediction between transactions.
제1항에 있어서,
상기 프로세서는,
복수의 메모리 영역에 대한 우선순위를 고려하여, 상기 복수의 메모리 영역 중에서 상기 제2 메모리 영역을 결정하되,
상기 충돌 가능성이 설정치 이상일 경우, 상기 제1 메모리 영역과 상이한 메모리 영역을 상기 제2 메모리 영역으로 결정하는
트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치.
The method according to claim 1,
The processor comprising:
Determining the second memory area among the plurality of memory areas in consideration of priorities of the plurality of memory areas,
And determining, as the second memory area, a memory area different from the first memory area when the possibility of collision is equal to or larger than a set value
Transactional memory device based on conflict prediction between transactions.
제2 트랜잭션에 대한 처리 요청 입력에 연동하여, 상기 제2 트랜잭션과 상이한 제1 트랜잭션이 처리되는 중인지를 확인하는 단계;
상기 제1 트랜잭션이 처리되는 중으로 확인되는 경우, 상기 제1 트랜잭션이 처리되는 제1 메모리 영역에서의, 상기 제1 및 제2 트랜잭션 간의 충돌 가능성을 예측하는 단계;
상기 충돌 가능성을 고려하여, 상기 제2 트랜잭션을 처리할 제2 메모리 영역을 결정하는 단계;
상기 결정된 제2 메모리 영역에서 상기 제2 트랜잭션을 처리하는 단계; 및
상기 제2 트랜잭션의 처리 결과가 선정된 기준을 만족하지 않으면, 횟수를 카운트한 후, 상기 충돌 가능성의 예측과, 상기 제2 메모리 영역의 결정을 재수행하되, 상기 카운트된 횟수가, 상기 제2 트랜잭션에 부여된 재시도 횟수에 도달하는 경우, 상기 처리 요청을 폐기하는 단계
를 포함하는 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 동작 방법.
Determining whether a first transaction different from the second transaction is being processed, in association with a processing request input for the second transaction;
Predicting a probability of a conflict between the first and second transactions in a first memory area where the first transaction is processed if the first transaction is identified as being being processed;
Determining a second memory area to process the second transaction, taking into account the possibility of conflict;
Processing the second transaction in the determined second memory area; And
If the processing result of the second transaction does not satisfy the predetermined criterion, counts the number of times, then predicts the collision probability and reruns the determination of the second memory area, If the number of retries is reached, discarding the processing request
The method comprising the steps of: (a) determining a conflict prediction method for a transactional memory device;
제8항에 있어서,
상기 충돌 가능성을 예측하는 단계는,
트랜잭션 간의 처리 이력에 기초하여,
상기 제1 트랜잭션과 상기 제2 트랜잭션을 같은 메모리 영역에서 처리할 경우에, 충돌이 발생한 제1 횟수와, 커패시티 어볼트(capacity abort)가 발생한 제2 횟수를 산출하는 단계; 및
산출된 상기 제1 횟수와 상기 제2 횟수 중 적어도 하나를 이용하여, 상기 충돌 가능성을 예측하는 단계
를 포함하는 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치의 동작 방법.
9. The method of claim 8,
The step of predicting the collision probability comprises:
Based on the transaction history between transactions,
Calculating a first number of times a collision occurs and a second number of times a capacity bolt occurs when the first transaction and the second transaction are processed in the same memory area; And
Estimating the possibility of collision using at least one of the first number and the second number calculated;
The method comprising the steps of: (a) determining a conflict prediction method for a transactional memory device;
삭제delete
KR1020160110740A 2016-08-30 2016-08-30 Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus KR101829995B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160110740A KR101829995B1 (en) 2016-08-30 2016-08-30 Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160110740A KR101829995B1 (en) 2016-08-30 2016-08-30 Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus

Publications (1)

Publication Number Publication Date
KR101829995B1 true KR101829995B1 (en) 2018-02-19

Family

ID=61387498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160110740A KR101829995B1 (en) 2016-08-30 2016-08-30 Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus

Country Status (1)

Country Link
KR (1) KR101829995B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200111033A (en) * 2019-03-18 2020-09-28 한국전자통신연구원 Method and apparatus for storing offchain data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090133032A1 (en) * 2007-11-21 2009-05-21 Stuart David Biles Contention management for a hardware transactional memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090133032A1 (en) * 2007-11-21 2009-05-21 Stuart David Biles Contention management for a hardware transactional memory

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Nuno Diegues 외 2명. 'Seer: Probabilistic Scheduling for Hardware Transactional Memory'. Proceeding of the 27th ACM on Symposium on Parallelism in Algorithms ans Architectures, 2015.06, pp.224-233.
김영규 외 1명. '시스템 성능 및 버스 트래픽에 대한 트랜잭셔널 메모리의 충돌 관리 정책 영향 분석'. 한국통신학회논문지 제37권 제11호(네트워크 및 서비스), 2012.11, pp.1041-1049.
장재우 외 1명. '예측취소 기법을 이용한 실시간 데이타베이스의 트랜잭션 스케쥴링'. 한국정보과학회 1992년도 가을 학술발표논문집 제19권 제2호, 1992.10, pp.109-112.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200111033A (en) * 2019-03-18 2020-09-28 한국전자통신연구원 Method and apparatus for storing offchain data
KR102452250B1 (en) * 2019-03-18 2022-10-07 한국전자통신연구원 Method and apparatus for storing offchain data
US11494403B2 (en) 2019-03-18 2022-11-08 Electronics And Telecommunications Research Institute Method and apparatus for storing off-chain data

Similar Documents

Publication Publication Date Title
US10554738B1 (en) Methods and apparatus for load balance optimization based on machine learning
JP5218390B2 (en) Autonomous control server, virtual server control method and program
US9405589B2 (en) System and method of optimization of in-memory data grid placement
US10915362B2 (en) Task management system, task management method, and task management program
US20090300633A1 (en) Method and System for Scheduling and Controlling Backups in a Computer System
KR20110035853A (en) Work queue selection on a local processor within a multiple processor architecture
US11220688B2 (en) Oversubscription scheduling
US20130185270A1 (en) Lock acceleration
CN110673951A (en) Mimicry scheduling method, system and medium for general operation environment
EP3121735A1 (en) Data mining method and device
CN106529917A (en) Workflow processing method and device
CN105095495A (en) Distributed file system cache management method and system
KR101829995B1 (en) Transactional memory apparatus based on collision prediction between transactions and method for operating transactional memory apparatus
CN110175070B (en) Distributed database management method, device, system, medium and electronic equipment
US20170262310A1 (en) Method for executing and managing distributed processing, and control apparatus
US9983911B2 (en) Analysis controller, analysis control method and computer-readable medium
JP6442996B2 (en) Transaction processing apparatus, transaction processing method, and program
JP6225606B2 (en) Database monitoring apparatus, database monitoring method, and computer program
JP5388134B2 (en) Computer system and moving data determination method
US9678752B2 (en) Scheduling apparatus and method of dynamically setting the size of a rotating register
JP5055059B2 (en) Database processing method, implementation system and program
US9378050B2 (en) Assigning an operation to a computing device based on a number of operations simultaneously executing on that device
JP2013016041A (en) Distribution control device, distribution control method, and distribution control program
KR101470695B1 (en) Method and system of biogeography based optimization for grid computing scheduling
KR101997978B1 (en) Apparatus and method for enhancing performance of distributed data store

Legal Events

Date Code Title Description
GRNT Written decision to grant