KR102110027B1 - Transactional memory partition apparatus and method - Google Patents

Transactional memory partition apparatus and method Download PDF

Info

Publication number
KR102110027B1
KR102110027B1 KR1020180006947A KR20180006947A KR102110027B1 KR 102110027 B1 KR102110027 B1 KR 102110027B1 KR 1020180006947 A KR1020180006947 A KR 1020180006947A KR 20180006947 A KR20180006947 A KR 20180006947A KR 102110027 B1 KR102110027 B1 KR 102110027B1
Authority
KR
South Korea
Prior art keywords
transaction
abort
transactional memory
partition
processing
Prior art date
Application number
KR1020180006947A
Other languages
Korean (ko)
Other versions
KR20190088636A (en
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 KR1020180006947A priority Critical patent/KR102110027B1/en
Publication of KR20190088636A publication Critical patent/KR20190088636A/en
Application granted granted Critical
Publication of KR102110027B1 publication Critical patent/KR102110027B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

트랜잭셔널 메모리 분할 장치 및 방법이 개시된다. 트랜잭셔널 메모리 분할 방법은 트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할하는 단계와, 상기 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리하되, 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM(Hardware Transactional Memory)으로 제2 분할하는 단계와, 상기 처리가 실패한 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리하는 단계를 포함할 수 있다.Disclosed is a transactional memory partitioning device and method. The transactional memory partitioning method includes firstly dividing the transactional memory into a plurality of transaction blocks, and processing a transaction in each of the plurality of transaction blocks, wherein the abort transaction block in which processing of the transaction has failed, comprises The second partitioning may include partitioning into a partition HTM (Hardware Transactional Memory), and processing the unsuccessful abort transaction in the plurality of partitions HTM.

Description

트랜잭셔널 메모리 분할 장치 및 방법{TRANSACTIONAL MEMORY PARTITION APPARATUS AND METHOD}TRANSACTIONAL MEMORY PARTITION APPARATUS AND METHOD}

본 발명은 멀티코어 인메모리(In-Memory) 데이터베이스 환경에서, 메모리 분할을 통해 대형 트랜잭션을 처리하는 트랜잭셔널 메모리 분할 장치 및 방법에 관한 것이다.The present invention relates to a transactional memory partitioning apparatus and method for processing large transactions through memory partitioning in a multicore in-memory database environment.

트랜잭셔널 메모리는 기존의 병렬 프로그래밍 기법인 락(Lock)을 대체하여 동시성 제어 패러다임을 크게 바꾸었다. 최근에는 하드웨어 캐시와 버스 프로토콜의 지원을 받는 다수의 HTM(Hardware Transactional Memory) 기반의 연구가 진행되고 있다.Transactional memory has significantly changed the concurrency control paradigm by replacing the traditional parallel programming technique of lock. Recently, a number of hardware transactional memory (HTM) based studies supported by hardware cache and bus protocols have been conducted.

예컨대, 인텔(Intel) TSX(Transactional Synchronization Extensions)는 상용 프로세서에 처음 탑재된 HTM 기술로서, 트랜잭션의 동시성 제어 효율을 크게 향상시켰다.For example, Intel's Transactional Synchronization Extensions (TSX) is the first HTM technology built into commercial processors, which greatly improves the efficiency of transactional concurrency control.

그러나, 트랜잭션의 추적 정보가 캐시 자원한계를 초과하는 경우에는, 수용 장애(capacity abort)가 발생하여, 트랜잭션 실패를 초래할 수 있다.However, if the tracking information of the transaction exceeds the cache resource limit, a capacity abort may occur, resulting in a transaction failure.

따라서, 캐시 자원한계에 의한 수용 장애 문제를 해결할 수 있는 기술이 필요하다.Therefore, there is a need for a technique capable of solving the problem of acceptance failure due to cache resource limitation.

본 발명은 트랜잭셔널 메모리를 분할한 복수의 트랜잭션 블록 각각에서, 트랜잭션을 처리하되, 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM으로 분할하고, 상기 처리가 실패한 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리하도록 함으로써, 캐시 자원한계에 의한 수용 장애(capacity abort) 문제를 해결하는 것을 목적으로 한다.In the present invention, in each of the plurality of transaction blocks partitioning the transactional memory, the transaction is processed, but the transaction block that failed to process the transaction is divided into a plurality of partitions HTM, and the transaction that failed to process the transaction is failed, An object of the present invention is to solve a problem of capacity abort due to a cache resource limit by processing the plurality of partitions HTM.

상기의 목적을 이루기 위한, 트랜잭셔널 메모리 분할 방법은 트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할하는 단계와, 상기 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리하되, 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM(Hardware Transactional Memory)으로 제2 분할하는 단계와, 상기 처리가 실패한 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리하는 단계를 포함할 수 있다.In order to achieve the above object, the transactional memory partitioning method comprises: firstly dividing the transactional memory into a plurality of transaction blocks; and processing transactions in each of the plurality of transaction blocks, but processing of the transaction fails. It may include the step of dividing the vault transaction block into a plurality of partition HTM (Hardware Transactional Memory), and processing the abort transaction in which the processing has failed, in the plurality of partition HTM.

상기의 목적을 이루기 위한, 트랜잭셔널 메모리 분할 장치는 트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할하는 제어부와, 상기 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리하는 프로세서를 포함하고, 상기 제어부는 상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM으로 제2 분할하고, 상기 프로세서는 상기 처리가 실패한 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리할 수 있다.To achieve the above object, the transactional memory partitioning apparatus includes a control unit for firstly partitioning the transactional memory into a plurality of transaction blocks, and a processor for processing transactions in each of the plurality of transaction blocks, wherein the control unit Is a second partition of the transaction block that failed to process the transaction into a plurality of partitions HTM, and the processor can process the transaction that failed to process the transaction in the plurality of partitions HTM.

본 발명에 따르면, 트랜잭셔널 메모리를 분할한 복수의 트랜잭션 블록 각각에서, 트랜잭션을 처리하되, 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM으로 분할하고, 상기 처리가 실패한 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리하도록 함으로써, 캐시 자원한계에 의한 수용 장애(capacity abort) 문제를 해결할 수 있다. 이때, 본 발명은 트랜잭션 중첩 기술을 응용한 인터페이스(예컨대, RTM(Real Time Monitoring) interface)를 제공 함으로써, 수용 장애(capacity abort)가 발생한 트랜잭션을 분할할 수 있다.According to the present invention, in each of the plurality of transaction blocks partitioning the transactional memory, the transaction is processed, but the transaction block that fails to process the transaction is divided into a plurality of partitions HTM, and the transaction that fails to process the transaction is failed. By processing in the plurality of partitions HTM, it is possible to solve the problem of capacity abort due to cache resource limitation. In this case, the present invention can divide a transaction in which a capacity abort occurs by providing an interface (for example, a Real Time Monitoring (RTM) interface) to which a transaction overlapping technique is applied.

또한, 본 발명은 워크로드에 따라 최적화된 분할을 지원하기 위해 적응적인 분할 알고리즘을 제공함으로써, 멀티코어 인메모리 환경에서 효율적인 HTM 기술을 제공할 수 있다.In addition, the present invention can provide an efficient HTM technology in a multicore in-memory environment by providing an adaptive partitioning algorithm to support optimized partitioning according to workload.

본 발명은 글로벌 락(Global Lock)에 의해 발생할 수 있는 레밍 효과(lemming effect)를 해결하기 위해, 이거 웨이팅(Eager waiting) 기법을 제공함으로써 HTM 활용을 극대화시킬 수 있다.The present invention can maximize the utilization of HTM by providing an Eager waiting technique in order to solve the lemming effect that may occur due to Global Lock.

도 1은 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치의 구성 일례를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서의 트랜잭션 처리 일례를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서의 트랜잭셔널 메모리 분할 및 파티션 패스 설정에 대한 일례를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서의 트랜잭셔널 메모리 분할에 대한 의사코드 일례를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서 활용하는 이거 웨이팅(Eager waiting) 기법을 설명하기 위한 도면이다.
도 6은 기존의 트랜잭셔널 메모리 장치에서 활용하는 기존 트랜잭션 처리 기법을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 방법을 나타내는 흐름도이다.
1 is a diagram illustrating an example of a configuration of a transactional memory partitioning device according to an embodiment of the present invention.
2 is a view for explaining an example of transaction processing in a transactional memory partitioning apparatus according to an embodiment of the present invention.
FIG. 3 is a view for explaining an example of transactional memory partitioning and partition path setting in a transactional memory partitioning apparatus according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating an example of pseudocode for transactional memory partitioning in a transactional memory partitioning apparatus according to an embodiment of the present invention.
FIG. 5 is a diagram for explaining an idle waiting technique utilized in a transactional memory partitioning apparatus according to an embodiment of the present invention.
6 is a view for explaining an existing transaction processing technique utilized in an existing transactional memory device.
7 is a flowchart illustrating a transactional memory partitioning method according to an embodiment of the present invention.

이하, 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 다양한 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다. 본 발명의 트랜잭셔널 메모리 분할 장치에서 처리되는 트랜잭션(transaction)은 일련의 명령어들의 그룹으로서, 원자성(atomicity), 고립성(isolation), 지속성(durability), 일관성(consistency), 순차성(sequentiality)의 성질을 가질 수 있다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited by the embodiments. A transaction processed in the transactional memory partitioning device of the present invention is a group of instructions, and is composed of atomicity, isolation, durability, consistency, and sequentiality. It can have properties.

도 1은 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치의 구성 일례를 도시한 도면이다.1 is a diagram illustrating an example of a configuration of a transactional memory partitioning device according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치(100)는 제어부(101), 확인부(103) 및 프로세서(105)를 포함할 수 있다.Referring to FIG. 1, the transactional memory partitioning apparatus 100 according to an embodiment of the present invention may include a control unit 101, a confirmation unit 103, and a processor 105.

제어부(101)는 트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할할 수 있다.The control unit 101 may first divide the transactional memory into a plurality of transaction blocks.

또한, 제어부(101)는 프로세서(105)에 의해, 트랜잭션 처리시, 상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록이 존재하는 것으로 판단되는 경우, 상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM(Hardware Transactional Memory)으로 제2 분할할 수 있다. 이때, 제어부(101)는 확인부(103)에 의해, 상기 어볼트 트랜잭션 블록에서 상기 트랜잭션을 처리하지 못한 원인이, 수용 장애(capacity abort)인 경우에 상기 어볼트 트랜잭션 블록을 제2 분할할 수 있다. 여기서, 제어부(101)는 상기 어볼트 트랜잭션 블록을 제외한, 상기 복수의 트랜잭션 블록 각각에서 상기 트랜잭션을 동시에 처리하는 상태에서, 상기 어볼트 트랜잭션 블록을 제2 분할할 수 있다.In addition, when the processor 105 determines that there is an abort transaction block in which the processing of the transaction has failed, when processing a transaction, the processor 101 may process a plurality of abort transaction blocks in which the processing of the transaction has failed. The partition can be divided into a second into hardware transactional memory (HTM). In this case, the control unit 101 may divide the abort transaction block into a second by the acknowledgment unit 103 when the cause of failure to process the transaction in the abort transaction block is a capacity abort. have. Here, the controller 101 may divide the abort transaction block into a second state in a state in which the transactions are simultaneously processed in each of the plurality of transaction blocks, excluding the abort transaction block.

상기 제2 분할 시, 제어부(101)는 상기 어볼트 트랜잭션에 관한 쓰기 크기(write-set size), 또는 상기 트랜잭셔널 메모리의 용량에 기초하여, 상기 제2 분할하는 파티션 HTM의 개수를 결정하고, 결정된 개수로 상기 어볼트 트랜잭션 블록을 제2 분할할 수 있다. 이때, 제어부(101)는 트랜잭셔널 메모리를 균등하게 분할할 수 있으나, 이에 한정되지 않고, 다양한 크기(용량)로 분할할 수 있다.In the second partition, the controller 101 determines the number of partition HTMs to be partitioned based on the write-set size for the abort transaction or the capacity of the transactional memory. , The abort transaction block may be divided into a second number by the determined number. At this time, the controller 101 may divide the transactional memory evenly, but is not limited thereto, and may be divided into various sizes (capacity).

또한, 제어부(101)는 상기 쓰기 크기에 기초하여, 상기 제2 분할하는 파티션 HTM의 용량을 조정할 수 있다. 이때, 제어부(101)는 상기 쓰기 크기에 비례하여, 파티션 HTM의 용량을 조정할 수 있으나, 상기 쓰기 크기가 제1 설정치 이하거나, 또는 제2 설정치(제1 설정치 보다 큼) 이상일 경우, 상기 제2 분할하는 파티션 HTM의 용량을 기준 용량(기설정된 특정의 용량)으로 조정할 수 있다.In addition, the controller 101 may adjust the capacity of the second partition HTM based on the write size. At this time, the control unit 101 may adjust the capacity of the partition HTM in proportion to the write size, but when the write size is less than or equal to a first set value or a second set value (greater than the first set value), the second The capacity of the partition HTM to be divided can be adjusted to a reference capacity (a specific predetermined capacity).

확인부(103)는 프로세서(105)에 의해, 상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록이 존재하는 것으로 판단되는 경우, 상기 어볼트 트랜잭션 블록에서 상기 트랜잭션을 처리하지 못한 원인을 확인할 수 있다.When it is determined by the processor 105 that there is an abort transaction block in which the processing of the transaction has failed, the confirmation unit 103 may check the cause of the failure to process the transaction in the abort transaction block.

프로세서(105)는 제어부(101)에 의해, 분할된 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리할 수 있다.The processor 105 may process a transaction in each of a plurality of divided transaction blocks by the control unit 101.

또한, 프로세서(105)는 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록이 존재하는 것으로 판단됨에 따라, 제어부(101)에 의해, 상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록이, 복수의 파티션 HTM으로 제2 분할된 경우, 상기 처리가 실패한 어볼트 트랜잭션을, 상기 분할된 복수의 파티션 HTM에서 처리할 수 있다. 이때, 프로세서(105)는 상기 복수의 파티션 HTM 중, 어느 하나의 파티션 HTM에서 상기 어볼트 트랜잭션을 처리하면, 나머지의 파티션 HTM에서 상기 어볼트 트랜잭션에 대한 처리를 중지할 수 있다.In addition, as the processor 105 determines that there is an abort transaction block in which the processing of the transaction has failed, the abort transaction block in which the processing of the transaction has failed is processed by the control unit 101 into a plurality of partitions HTM. In the case of partitioning, the abort transaction in which the processing has failed can be processed in the partitioned plurality of partitions HTM. At this time, when the processor 105 processes the abort transaction in any one partition HTM among the plurality of partition HTMs, the processor 105 may stop processing of the abort transaction in the remaining partition HTM.

프로세서(105)는 상기 복수의 파티션 HTM에서도, 상기 어볼트 트랜잭션의 처리가 실패하는 경우, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지할 수 있다.In the plurality of partitions HTM, when the processing of the abort transaction fails, the processor 105 may give a lock command to the abort transaction and maintain it in a predetermined memory area.

한편, 프로세서(105)는 트랜잭션을 처리하지 못한 원인이 수용 장애가 아닌 경우, 상기 어볼트 트랜잭션 블록에서 상기 어볼트 트랜잭션을 재처리하고, 상기 재처리 횟수가 선정된 수를 초과하면, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지할 수 있다. 이때, 프로세서(105)는 상기 재처리 횟수가 선정된 수를 초과하지 않은 경우에도, 인터페이스부(도시하지 않음)를 통해, 락 명령을 수신하면, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지할 수 있다.On the other hand, if the cause of the failure to process the transaction is not an accommodating failure, the processor 105 reprocesses the abort transaction in the abort transaction block, and if the number of reprocessing exceeds a predetermined number, the abort transaction By giving a lock command to, it can be held in a designated memory area. At this time, the processor 105, even if the number of reprocessing does not exceed the predetermined number, through the interface unit (not shown), when receiving a lock command, grants a lock command for the abort transaction, It can be kept in a designated memory area.

상기 트랜잭션 블록 또는 상기 파티션 HTM을 통한 트랜잭션의 처리 후, 프로세서(105)는 상기 메모리 영역에 유지되는 상기 어볼트 트랜잭션에 완료 명령을 부여하여, 상기 어볼트 트랜잭션을 처리할 수 있다.After processing the transaction through the transaction block or the partition HTM, the processor 105 may issue a complete command to the abort transaction maintained in the memory area to process the abort transaction.

도 2는 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서의 트랜잭션 처리 일례를 설명하기 위한 도면이다.2 is a view for explaining an example of transaction processing in a transactional memory partitioning apparatus according to an embodiment of the present invention.

도 2를 참조하면, 단계 201에서, 트랜잭셔널 메모리 분할 장치는 트랜잭션 블록의 시작에서 기존의 HTM을 그대로 활용하는 Lite HTM을 시작할 수 있다.Referring to FIG. 2, in step 201, the transactional memory partitioning device may start a Lite HTM utilizing the existing HTM as it is at the start of the transaction block.

단계 202에서, 트랜잭셔널 메모리 분할 장치는 Lite HTM으로 트랜잭션 처리 중 수용 장애(capacity abort)로 인해 실패한 트랜잭션을 파티션 HTM(Partitioned HTM)으로 재시작할 수 있다.In step 202, the transactional memory partitioning device may restart a transaction that failed due to a capacity abort during transaction processing with the Lite HTM to a partitioned HTM.

단계 203에서, 트랜잭셔널 메모리 분할 장치는 수용 장애가 아닌 다른 이유로 실패한 트랜잭션에 대해, 최대한의 성공을 보장하기 위해 일정 재시도를 수행하고, 단계 204에서, 실패를 반복한 트랜잭션에 대해, 글로벌 락(Global Lock)을 획득하여 직렬적으로 완료 명령(commit)을 보장할 수 있다.In step 203, the transactional memory partitioning device performs a certain retry to ensure maximum success for transactions that fail for reasons other than acceptance failure, and in step 204, for a transaction that repeats the failure, the global lock ( Global Lock) to ensure the completion of the serial command (commit).

단계 205에서, 트랜잭셔널 메모리 분할 장치는 파티션 HTM에서 재시작된 트랜잭션에 대해, 스플리트 매니저(Split Manager)에서 워크로드 특성을 반영한 분할 기준을 계산하여 적절한 쓰기 크기를 기준으로 분할 처리할 수 있다.In step 205, the transactional memory partitioning device may split a transaction based on an appropriate write size by calculating a partitioning criterion reflecting workload characteristics in a split manager for a transaction restarted in the partition HTM.

단계 206에서, 트랜잭셔널 메모리 분할 장치는 파티션 HTM에 대해, Lite HTM과 마찬가지로 최대한 성공을 보장받기 위해 일정 재시도를 수행하고, 단계 207에서, 전역 트랜잭션의 완료 명령(commit) 부분을 만날 때 까지 분할 처리를 반복할 수 있다.In step 206, the transactional memory partitioning device performs a certain retry to ensure maximum success for the partition HTM, as in the Lite HTM, and in step 207, until the commit part of the global transaction is met. The division processing can be repeated.

단계 208에서, 트랜잭셔널 메모리 분할 장치는 분할 처리에도 불구하고 실패한 파티션 HTM에 대해, Lite HTM과 마찬가지로 글로벌 락(Global Lock)을 획득하고 직렬적으로 완료 명령(commit)을 보장할 수 있다.In step 208, the transactional memory partitioning device may acquire a global lock and guarantee a completion command serially in the same manner as the Lite HTM for the partition HTM that failed despite the partitioning process.

단계 209에서, 트랜잭셔널 메모리 분할 장치는 write-set 정보를 글로벌 락(Global Lock)이 획득된 직렬 처리 트랜잭션의 수행을 통해 수집할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 글로벌 락(Global Lock)을 획득하지 않은 Lite HTM과 파티션 HTM 모두, 기존 HTM과 동일하게 캐시 일관성 프로토콜 중 하나인 메시(MESI: Modified Exclusive Shard Invalid) 프로토콜을 통해 동시성 제어를 보장할 수 있다.In step 209, the transactional memory partitioning device may collect write-set information through execution of a serial processing transaction in which a global lock is acquired. At this time, the transactional memory partitioning device simultaneously synchronizes both the Lite HTM and the Partition HTM that do not acquire the Global Lock through the MESI (Modified Exclusive Shard Invalid) protocol, which is one of the cache coherency protocols as the existing HTM. Control can be guaranteed.

도 3은 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서의 트랜잭셔널 메모리 분할 및 파티션 패스 설정에 대한 일례를 설명하기 위한 도면이다.FIG. 3 is a view for explaining an example of transactional memory partitioning and partition path setting in a transactional memory partitioning apparatus according to an embodiment of the present invention.

도 3을 참조하면, 트랜잭셔널 메모리 분할 장치는 파티션 패스(Partitioned Path)에서 전역 트랜잭션의 실행을 유지한 채 분할을 수행할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 RTM(Real Time Monitoring) 인터페이스를 통해, 메모리에서 프로그래머가 지정한 _xbegin() 명령어와 _xend() 명령어의 호출 횟수를 유지하여 중첩을 지원 함으로써, 전역 트랜잭션의 HTM을 유지하고, 파티션(분할) 트랜잭션의 HTM 범위를 쉽게 설정할 수 있다.Referring to FIG. 3, the transactional memory partitioning apparatus may perform partitioning while maintaining execution of a global transaction in a partitioned path. At this time, the transactional memory partitioning device maintains the HTM of the global transaction by supporting the overlap by maintaining the number of calls of the _xbegin () and _xend () commands specified by the programmer in memory through the Real Time Monitoring (RTM) interface. And, you can easily set the HTM range of the partition (partition) transaction.

여기서, 트랜잭셔널 메모리 분할 장치는 트랜잭션의 아이솔레이션(Isolation)을 보장하기 위해, 하나의 파티션 패스(Partitioned Path)와 연결되는 다음 파티션 HTM 사이에서 트랜잭션이 수행되지 않도록 한다. 또한, 트랜잭셔널 메모리 분할 장치는 트랜잭션이 실패할 경우 _xabort() 명령어를 통해 직전 _xbegin() 시점으로 롤백(rollback)을 수행하여 정확성을 보장할 수 있다. Here, the transactional memory partitioning device prevents a transaction from being performed between one partition path and the next partition HTM connected to ensure the isolation of the transaction. In addition, the transactional memory partitioning device can guarantee accuracy by performing a rollback to the immediately preceding _xbegin () through the _xabort () command when the transaction fails.

구체적으로, 트랜잭셔널 메모리 분할 장치는 트랜잭션 블록의 시작점에서 일반적인 트랜잭션 처리와 동일하게 전역 트랜잭션의 시작을 HTM으로 수행할 수 있다. 이후, 트랜잭셔널 메모리 분할 장치는 수행되는 모든 트랜잭션은 전역 트랜잭션의 완료 명령(commit)을 마주하기 전까지 분할 임계값을 도달할 때마다 완료 명령(commit)과 시작 명령(begin)을 반복할 수 있다. 즉, 트랜잭셔널 메모리 분할 장치는 전역 트랜잭션의 HTM이 유지되는 상태에서, 중첩 상태의 HTM 시작 명령(begin)과 완료 명령(commit)을 수행할 수 있다.Specifically, the transactional memory partitioning device may perform global transaction start with HTM in the same way as normal transaction processing at the starting point of a transaction block. Thereafter, the transactional memory partitioning device may repeat the completion command and the start command every time the partition threshold is reached until all transactions that are performed encounter the global transaction's commit command. . That is, the transactional memory partitioning apparatus may perform an HTM start command (begin) and a completion command (commit) in an overlapped state while the HTM of the global transaction is maintained.

또한, 트랜잭셔널 메모리 분할 장치는 분할 임계값에 도달하지 않은 트랜잭션 블록이 전역 트랜잭션의 끝에 도달하는 경우에도 시작 명령(begin)과 완료 명령(commit)의 쌍을 맞춰주기 위해 파티션 명령(Partition Commit)을 수행할 수 있다.In addition, the transactional memory partition unit partitions a partition command to match a pair of a start command and a commit command even when a transaction block that has not reached the partition threshold reaches the end of the global transaction. You can do

한편, 트랜잭셔널 메모리 분할 장치는 트랜잭션 블록 분할 기준 계산시, 기수행된 write 트랜잭션의 수를 통해 계산할 수 있지만, HTM상에서 내부 버퍼에 접근하여 write 기록을 확인하는 것은 트랜잭션 안전을 보장하지 않으므로, 글로벌 락(Global Lock)을 획득한 직렬 처리환경에서 계산할 수 있다. 트랜잭셔널 메모리 분할 장치는 기존 트랜잭션 블록의 쓰기 크기(write-set)가 캐시에 부담이 되었다는 가정 하에서, 전체 쓰기 크기(write-set)에 변수 γ를 나눈 수치 α를 분할 임계값으로 설정할 수 있다. 트랜잭셔널 메모리 분할 장치는 α를 설정하는 요인 γ를 실시간으로 워크로드 특성을 최대한 반영하기 위해 100개의 트랜잭션을 주기로 계산할 수 있다. 여기서, γ는 100개의 트랜잭션 블록 중 기존의 α를 기반으로 연속적인 완료 명령(commit)을 성공한 수이고, β가 50 이상일 경우 분할 기준을 확장하기 위해 감소될 수 있다. 그렇지 않은 경우에는, 트랜잭셔널 메모리 분할 장치는 트랜잭션 분할 기준을 세밀하게 할 필요가 있다고 판단하여 γ를 증가시킬 수 있다.On the other hand, the transactional memory partitioning device can calculate through the number of write transactions that have been performed when calculating the transaction block partitioning criteria, but accessing the internal buffer on the HTM to check the write history does not guarantee transaction safety. It can be calculated in a serial processing environment where a global lock is acquired. The transactional memory partitioning apparatus can set the numerical value α divided by the variable γ to the total write size (write-set) as a partitioning threshold under the assumption that the write-set of the existing transaction block is a burden on the cache. . The transactional memory partitioning apparatus can calculate the factor γ, which sets α, in cycles of 100 transactions in order to fully reflect the workload characteristics in real time. Here, γ is the number of successive successive commits based on the existing α among 100 transaction blocks, and may be reduced to expand the division criterion when β is 50 or more. Otherwise, the transactional memory partitioning apparatus may increase γ by determining that it is necessary to refine the transaction partitioning criteria.

트랜잭셔널 메모리 분할 장치는 실시간으로 워크로드를 반영하지 않고, 정적인 분할 기준을 제공할 경우에는 γ의 값을 예컨대, 5로, 10 미만의 양의 정수로 변화의 폭을 제한할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 이를 예컨대, 도 4와 같이, 의사코드로 구현할 수 있다.The transactional memory partitioning device does not reflect the workload in real time, and when providing a static partitioning criterion, the value of γ may be limited to, for example, 5 and a positive integer less than 10. At this time, the transactional memory partitioning device may implement this in pseudocode, for example, as shown in FIG. 4.

도 4는 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서의 트랜잭셔널 메모리 분할에 대한 의사코드 일례를 도시한 도면이다.4 is a diagram illustrating an example of pseudocode for transactional memory partitioning in a transactional memory partitioning apparatus according to an embodiment of the present invention.

도 4를 참조하면, 트랜잭셔널 메모리 분할 장치는 예컨대, 파티션 패스(Partition path)를 통한 트랜잭션의 수행횟수 100회를 주기로 설정하기 위해, 수용 장애(capacity abort) 발생에 따라 주기(period) 변수를 증가시킬 수 있다(line1-2)(401).Referring to FIG. 4, the transactional memory partition apparatus sets a period variable according to the occurrence of capacity abort in order to set, for example, 100 execution times of a transaction through a partition path. Can be increased (line1-2) 401.

또한, 트랜잭셔널 메모리 분할 장치는 연속적인 파티션 패스(Partitioned path)의 명령(commit)수(β)를 측정하기 위해, 분할된 트랜잭션 블록이 커밋(commit)된 경우, 순차적 명령(successive commit)을 증가하고, 실패한 경우 이를 초기화할 수 있다(line3-6)(403).In addition, the transactional memory partitioning device performs a sequential commit when a partitioned transaction block is committed, in order to measure the number of commits β of a continuous partition path. It increases, and if it fails, it can be initialized (line3-6) (403).

트랜잭셔널 메모리 분할 장치는 주기(period)가 100이 되는 시점마다 주기적으로 분할 기준(γ)을 계산하여, 분할 임계값 즉, 스플리트 크기(split size)(α)에 반영할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 write instruction의 수에 기초하여, 스플리트 크기를 산출할 수 있다.The transactional memory partitioning apparatus may periodically calculate a partitioning criterion (γ) every time the period becomes 100, and reflect it in a partitioning threshold, that is, a split size (α). At this time, the transactional memory partition apparatus may calculate the split size based on the number of write instructions.

도 5는 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 장치에서 활용하는 이거 웨이팅(Eager waiting) 기법을 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating an Eager waiting technique utilized in a transactional memory partitioning apparatus according to an embodiment of the present invention.

도 5를 참조하면, 트랜잭셔널 메모리 분할 장치는 트랜잭션 블록이 호출된 직후, 글로벌 뮤텍스 락(global mutex lock) 여부에 따라 대기하는 이거 웨이팅(Eager waiting) 기법을 지원할 수 있다.Referring to FIG. 5, the transactional memory partitioning device may support an awaiting mechanism that waits according to whether a global mutex lock occurs immediately after a transaction block is called.

즉, 트랜잭셔널 메모리 분할 장치는 HTM상에서 트랜잭션을 처리할 경우, 글로벌 뮤텍스 락(global mutex lock)에 의해 어볼트(abort)가 발생할 수 있는 불필요한 수행은 시도하지 않고, 글로벌 뮤텍스 락(global mutex lock)에 대해 자유로운 상태에서 효율적인 재시도를 통해, 연쇄적인 어볼트(abort) 및 폴백 패스(fallback path)로 연결되는 레밍 효과(lemming effect) 문제를 해결할 수 있다.That is, the transactional memory partitioning device does not attempt unnecessary execution that may cause an abort by the global mutex lock when processing a transaction on the HTM, and the global mutex lock Efficient retries in the free state of) can solve the problem of the remming effect that leads to a chain of abort and fallback paths.

트랜잭셔널 메모리 분할 장치는 글로벌 뮤텍스 락(global mutex lock)의 여부에 따라 대기하는 방법으로서, 시스템 함수를 통해 퍼즈(pause)를 수행하여, 내부 버퍼의 입력을 위해 일시정지할 수 있으며, 기존 방식에 비해 에너지 소모 또한 줄일 수 있다.The transactional memory partitioning device is a method of waiting according to whether or not a global mutex lock is present. By performing a pause through a system function, it can be paused for input of an internal buffer. In comparison, energy consumption can also be reduced.

결과적으로, 트랜잭셔널 메모리 분할 장치는 캐시 및 버스 프로토콜을 활용하여 효율적인 트랜잭션 처리를 지원할 뿐 아니라, 도 6에 도시된 기존 트랜잭션 처리 기법 적용으로 인해 발생할 수 있는 레밍 효과 문제를, 이거 웨이팅 기법을 통해 해결할 수 있다.As a result, the transactional memory partitioning device not only supports efficient transaction processing by utilizing the cache and bus protocols, but also solves the problem of the reaming effect that may occur due to the application of the existing transaction processing technique shown in FIG. 6 through the weighting technique. Can be solved.

즉, 멀티코어 환경에서 폴백 패스(fallback path)를 포함하여 2가지 이상의 패스(path)로 구성된, 기존 트랜잭션 처리 기법을 적용하는 트랜잭셔널 메모리 장치는 HTM 환경에서 처리된 트랜잭션이 명령(commit)을 수행하는데 문제가 없음에도 불구하고, Core 2의 글로벌 뮤텍스 락(global mutex lock)에 의해 재시도 횟수를 소모하며 어볼트(abort) 됨에 따라, Core 2에서 수행하는 트랜잭션의 포워드 프로그레스(forward progress)를 보장하지만, 나머지 코어에서 수행하는 HTM의 명령(commit) 비율을 감소시키면서, 다수의 트랜잭션이 폴백 패스(fallback path)로 이어지는 레밍 효과 문제를 초래할 수 있다. 반면, 본 발명의 트랜잭셔널 메모리 분할 장치는 레밍 효과 문제를, 이거 웨이팅 기법을 통해 해결 함으로써, 포워드 프로그레스(forward progress)를 보장하여, 2가지 이상의 패스(path) 기반에서도 동시성 제어 기술을 구현할 수 있다.That is, in a multi-core environment, a transactional memory device that employs an existing transaction processing technique, which consists of two or more paths, including a fallback path, causes transactions processed in the HTM environment to commit. Although there is no problem in execution, as the core 2 global mutex lock consumes the number of retries and aborts it, the forward progress of the transaction performed in Core 2 However, while reducing the HTM's commit rate performed by the remaining cores, multiple transactions may cause a problem with the reaming effect leading to a fallback path. On the other hand, the transactional memory partitioning device of the present invention solves the reaming effect problem through a weighting technique, thereby guaranteeing forward progress, and implements concurrency control technology even in two or more paths. Can be.

도 7은 본 발명의 일실시예에 따른 트랜잭셔널 메모리 분할 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a transactional memory partitioning method according to an embodiment of the present invention.

도 7을 참조하면, 단계(701)에서, 트랜잭셔널 메모리 분할 장치는 트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할할 수 있다.Referring to FIG. 7, in step 701, the transactional memory partitioning device may first divide the transactional memory into a plurality of transaction blocks.

단계(703)에서, 트랜잭셔널 메모리 분할 장치는 상기 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리할 수 있다.In step 703, the transactional memory partitioning device may process a transaction in each of the plurality of transaction blocks.

단계(705)에서, 트랜잭셔널 메모리 분할 장치는 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록이 존재하는지를 확인하고, 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록이 존재하는 경우, 단계(707)에서, 트랜잭션을 처리하지 못한 원인을 확인할 수 있다.In step 705, the transactional memory partitioning device determines whether there is an abort transaction block in which the processing of the transaction has failed, and if there is an abort transaction block in which the processing of the transaction has failed, in step 707, the transaction is processed. It is possible to check the cause of the failure.

상기 확인 결과, 단계(709)에서, 트랜잭셔널 메모리 분할 장치는 트랜잭션을 처리하지 못한 원인이 수용 장애일 경우, 단계(711)에서, 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록을, 복수의 파티션 HTM으로 제2 분할할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 상기 어볼트 트랜잭션 블록을 제외한, 상기 복수의 트랜잭션 블록 각각에서 상기 트랜잭션을 동시에 처리하는 상태에서, 상기 어볼트 트랜잭션 블록을 제2 분할할 수 있다.As a result of the check, in step 709, if the cause of failure to process the transaction is an acceptance failure, in step 709, in step 711, the transaction block of the transaction that failed to process the transaction is a plurality of partitions HTM Can be divided into the second. At this time, the transactional memory partitioning device may divide the abort transaction block into a second state in a state in which the transactions are simultaneously processed in each of the plurality of transaction blocks, excluding the abort transaction block.

여기서, 트랜잭셔널 메모리 분할 장치는 상기 어볼트 트랜잭션에 관한 쓰기 크기, 또는 상기 트랜잭셔널 메모리의 용량에 기초하여, 상기 제2 분할하는 파티션 HTM의 개수를 결정하고, 결정된 개수로 상기 어볼트 트랜잭션 블록을 제2 분할할 수 있다.Here, the transactional memory partitioning device determines the number of the partition HTM to be partitioned, based on the write size of the transaction or the capacity of the transactional memory, and determines the number of the transaction The block can be divided into second.

또한, 트랜잭셔널 메모리 분할 장치는 상기 쓰기 크기에 기초하여, 상기 제2 분할하는 파티션 HTM의 용량을 조정할 수 있다.In addition, the transactional memory partition apparatus may adjust the capacity of the second partition HTM based on the write size.

단계(713)에서, 트랜잭셔널 메모리 분할 장치는 상기 처리가 실패한 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 상기 복수의 파티션 HTM 중, 어느 하나의 파티션 HTM에서 상기 어볼트 트랜잭션을 처리하면, 나머지의 파티션 HTM에서 상기 어볼트 트랜잭션에 대한 처리를 중지할 수 있다.In step 713, the transactional memory partitioning apparatus may process the abort transaction in which the processing has failed, in the plurality of partitions HTM. At this time, the transactional memory partitioning device may stop processing of the abort transaction in the remaining partition HTM when the abolt transaction is processed by any one partition HTM among the plurality of partition HTMs.

또한, 트랜잭셔널 메모리 분할 장치는 상기 복수의 파티션 HTM에서도, 상기 어볼트 트랜잭션의 처리가 실패하는 경우, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지할 수 있다.In addition, the transactional memory partitioning apparatus can maintain a fixed memory area by issuing a lock command to the abort transaction even when the processing of the abort transaction fails in the plurality of partition HTMs.

한편, 상기 단계(707)에서의 확인 결과, 트랜잭션을 처리하지 못한 원인이 수용 장애가 아닌 경우, 단계(715)에서, 트랜잭셔널 메모리 분할 장치는 상기 어볼트 트랜잭션 블록에서 상기 어볼트 트랜잭션을 재처리할 수 있다. 이때, 트랜잭셔널 메모리 분할 장치는 상기 재처리 횟수가 선정된 수를 초과하면, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지할 수 있다.On the other hand, as a result of the check in step 707, if the cause of the failure to process the transaction is not an acceptance failure, in step 715, the transactional memory partitioning device reprocesses the abort transaction in the abort transaction block. can do. At this time, if the number of times the reprocessing exceeds a predetermined number, the transactional memory partitioning device may grant a lock command to the abort transaction and maintain it in a predetermined memory area.

상기 트랜잭션 블록 또는 상기 파티션 HTM을 통한 트랜잭션의 처리 후, 트랜잭셔널 메모리 분할 장치는 상기 메모리 영역에 유지되는 상기 어볼트 트랜잭션에 완료 명령을 부여하여, 상기 어볼트 트랜잭션을 처리할 수 있다.After processing the transaction through the transaction block or the partition HTM, the transactional memory partitioning device may process the abort transaction by giving a complete command to the abort transaction maintained in the memory area.

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

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and / or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. 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 the embodiment may be implemented in the form of program instructions that can 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, or the like alone or in combination. The program instructions stored in the medium may be specially designed and configured for an embodiment or may be known and available to those skilled in computer software. Examples of computer-readable storage media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical 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 high-level language codes that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by a limited embodiment and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques are performed in a different order than the described method, and / or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.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 partition device
101: control
103: confirmation unit
105: processor

Claims (12)

트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할하는 단계;
상기 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리하는 단계;
상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록에서 상기 트랜잭션을 처리하지 못한 원인을 확인하는 단계;
상기 확인된 원인이 수용 장애(capacity abort)인 경우의, 상기 어볼트 트랜잭션 블록을, 복수의 파티션 HTM(Hardware Transactional Memory)으로 제2 분할하는 단계;
상기 처리가 실패한 어볼트 트랜잭션에 관한 쓰기 크기(write-set size)에 기초하여, 상기 제2 분할하는 파티션 HTM의 용량을 조정하는 단계; 및
상기 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리하는 단계로서, 상기 조정되어 다양한 크기를 갖는 상기 복수의 파티션 HTM 중, 어느 하나의 파티션 HTM에서 상기 어볼트 트랜잭션을 처리하면, 나머지의 파티션 HTM에서 상기 어볼트 트랜잭션에 대한 처리를 중지하는 단계
를 포함하는 트랜잭셔널 메모리 분할 방법.
First dividing the transactional memory into a plurality of transaction blocks;
Processing a transaction in each of the plurality of transaction blocks;
Confirming a cause of the failure to process the transaction in the abort transaction block in which the processing of the transaction has failed;
Dividing the abort transaction block into a plurality of partition hardware transactional memories (HTMs) when the identified cause is a capacity abort;
Adjusting the capacity of the second partitioned partition HTM based on a write-set size for the abort transaction in which the processing has failed; And
As the step of processing the abort transaction in the plurality of partition HTMs, when the abort transaction is processed in any one partition HTM among the plurality of adjusted partition HTMs having various sizes, the remaining partitions HTM are processed. Stopping processing of the abort transaction
Transactional memory partitioning method comprising a.
제1항에 있어서,
상기 복수의 파티션 HTM에서도, 상기 어볼트 트랜잭션의 처리가 실패하는 경우,
상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지하는 단계
를 더 포함하는 트랜잭셔널 메모리 분할 방법.
According to claim 1,
Even in the plurality of partitions HTM, when the processing of the abort transaction fails,
The step of granting a lock command to the abort transaction and maintaining it in a predetermined memory area.
A transactional memory partitioning method further comprising a.
제1항에 있어서,
상기 확인된 원인이 수용 장애가 아닌 경우,
상기 어볼트 트랜잭션 블록에서 상기 어볼트 트랜잭션을 재처리하는 단계; 및
상기 재처리 횟수가 선정된 수를 초과하면, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지하는 단계
를 더 포함하는 트랜잭셔널 메모리 분할 방법.
According to claim 1,
If the above identified cause is not an accommodation disorder,
Reprocessing the abort transaction in the abort transaction block; And
When the number of times of reprocessing exceeds a predetermined number, a lock command is given to the abort transaction, and the result is maintained in a predetermined memory area.
A transactional memory partitioning method further comprising a.
제2항 또는 제3항에 있어서,
상기 메모리 영역에 유지되는 상기 어볼트 트랜잭션에 완료 명령(commit)을 부여하여, 상기 어볼트 트랜잭션을 처리하는 단계
를 더 포함하는 트랜잭셔널 메모리 분할 방법.
The method of claim 2 or 3,
Processing the abort transaction by giving a completion command to the abort transaction maintained in the memory area
A transactional memory partitioning method further comprising a.
제1항에 있어서,
상기 트랜잭셔널 메모리의 용량에 기초하여, 상기 제2 분할하는 파티션 HTM의 개수를 결정하는 단계
를 포함하는 트랜잭셔널 메모리 분할 방법.
According to claim 1,
Determining the number of the second partitioned partition HTM based on the capacity of the transactional memory
Transactional memory partitioning method comprising a.
삭제delete 삭제delete 제1항에 있어서,
상기 제2 분할하는 단계는,
상기 어볼트 트랜잭션 블록을 제외한, 상기 복수의 트랜잭션 블록 각각에서 상기 트랜잭션을 동시에 처리하는 상태에서, 상기 어볼트 트랜잭션 블록을 제2 분할하는 단계
를 포함하는 트랜잭셔널 메모리 분할 방법.
According to claim 1,
The second dividing step,
The second step of dividing the abort transaction block in a state in which the transactions are simultaneously processed in each of the plurality of transaction blocks except for the abort transaction block.
Transactional memory partitioning method comprising a.
삭제delete 트랜잭셔널 메모리를, 복수의 트랜잭션 블록으로 제1 분할하는 제어부;
상기 복수의 트랜잭션 블록 각각에서 트랜잭션을 처리하는 프로세서; 및
상기 트랜잭션의 처리가 실패한 어볼트 트랜잭션 블록에서 상기 트랜잭션을 처리하지 못한 원인을 확인하는 확인부
를 포함하고,
상기 제어부는,
상기 확인된 원인이 수용 장애인 경우의, 상기 어볼트 트랜잭션 블록을, 복수의 파티션 HTM으로 제2 분할하고, 상기 처리가 실패한 어볼트 트랜잭션에 관한 쓰기 크기에 기초하여, 상기 제2 분할하는 파티션 HTM의 용량을 조정하며,
상기 프로세서는,
상기 어볼트 트랜잭션을, 상기 복수의 파티션 HTM에서 처리하되, 상기 조정되어 다양한 크기를 갖는 상기 복수의 파티션 HTM 중, 어느 하나의 파티션 HTM에서 상기 어볼트 트랜잭션을 처리하면, 나머지의 파티션 HTM에서 상기 어볼트 트랜잭션에 대한 처리를 중지하는
트랜잭셔널 메모리 분할 장치.
A control unit for first dividing the transactional memory into a plurality of transaction blocks;
A processor that processes a transaction in each of the plurality of transaction blocks; And
Confirmation unit that checks the cause of the failure to process the transaction in the Abort transaction block where the transaction has failed.
Including,
The control unit,
When the identified cause is a handicapped person, the partition of the partition HTM that divides the abort transaction block into a plurality of partition HTMs based on the write size of the abolt transaction in which the processing fails is divided into two. Adjust the capacity,
The processor,
When processing the abort transaction in the plurality of partition HTMs, but processing the abort transaction in any one partition HTM among the plurality of partitions HTMs having the adjusted and varied sizes, the remaining partitions HTM process the abort transaction. To stop processing for a vault transaction
Transactional memory partition.
제10항에 있어서,
상기 복수의 파티션 HTM에서도, 상기 어볼트 트랜잭션의 처리가 실패하는 경우,
상기 프로세서는,
상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지하는
트랜잭셔널 메모리 분할 장치.
The method of claim 10,
Even in the plurality of partitions HTM, when the processing of the abort transaction fails,
The processor,
A lock command is given to the abort transaction, which is maintained in a predetermined memory area.
Transactional memory partition.
제10항에 있어서,
상기 확인된 원인이 수용 장애가 아닌 경우,
상기 프로세서는,
상기 어볼트 트랜잭션 블록에서 상기 어볼트 트랜잭션을 재처리하고, 상기 재처리 횟수가 선정된 수를 초과하면, 상기 어볼트 트랜잭션에 대해 락 명령을 부여하여, 정해진 메모리 영역에 유지하는
트랜잭셔널 메모리 분할 장치.
The method of claim 10,
If the above identified cause is not an accommodation disorder,
The processor,
Reprocessing the abort transaction in the abort transaction block, and when the number of reprocessing exceeds a predetermined number, a lock command is given to the abort transaction and maintained in a predetermined memory area.
Transactional memory partition.
KR1020180006947A 2018-01-19 2018-01-19 Transactional memory partition apparatus and method KR102110027B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180006947A KR102110027B1 (en) 2018-01-19 2018-01-19 Transactional memory partition apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180006947A KR102110027B1 (en) 2018-01-19 2018-01-19 Transactional memory partition apparatus and method

Publications (2)

Publication Number Publication Date
KR20190088636A KR20190088636A (en) 2019-07-29
KR102110027B1 true KR102110027B1 (en) 2020-05-12

Family

ID=67480722

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180006947A KR102110027B1 (en) 2018-01-19 2018-01-19 Transactional memory partition apparatus and method

Country Status (1)

Country Link
KR (1) KR102110027B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990182B (en) * 2019-12-03 2021-06-11 腾讯科技(深圳)有限公司 Transaction processing method, device, equipment and storage medium
US11544245B2 (en) 2019-12-03 2023-01-03 Tencent Technology (Shenzhen) Company Limited Transaction processing method, apparatus, and device and computer storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016009423A (en) * 2014-06-26 2016-01-18 キヤノンマーケティングジャパン株式会社 Information processing device, method for controlling information processing device, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016009423A (en) * 2014-06-26 2016-01-18 キヤノンマーケティングジャパン株式会社 Information processing device, method for controlling information processing device, and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Viktor Leis et al., ‘Exploiting Hardware Transactional Memory in Main-Memory Databases’, 2014 IEEE 30th International Conference on Data Engineering(2014.03.31.)*
김승훈 외, ‘집중 충돌 병렬 처리를 위한 효율적인 다중 코어 트랜잭셔널 메모리’, 2011년 1월 전자공학회 논문지 제 48 권(2011.01)*

Also Published As

Publication number Publication date
KR20190088636A (en) 2019-07-29

Similar Documents

Publication Publication Date Title
US8881153B2 (en) Speculative thread execution with hardware transactional memory
US8689221B2 (en) Speculative thread execution and asynchronous conflict events
US8495607B2 (en) Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations
US9619301B2 (en) Multi-core memory model and speculative mode processor management
US10579413B2 (en) Efficient task scheduling using a locking mechanism
US20130061071A1 (en) Energy Efficient Implementation Of Read-Copy Update For Light Workloads Running On Systems With Many Processors
US9652169B2 (en) Adaptive concurrency control using hardware transactional memory and locking mechanism
RU2437144C2 (en) Method to eliminate exception condition in one of nuclei of multinuclear system
US9292221B2 (en) Bi-directional copying of register content into shadow registers
CN103577158A (en) Data processing method and device
US20040117793A1 (en) Operating system architecture employing synchronous tasks
US7389507B2 (en) Operating-system-independent modular programming method for robust just-in-time response to multiple asynchronous data streams
KR102110027B1 (en) Transactional memory partition apparatus and method
CN110032450B (en) Large-scale deep learning method and system based on solid-state disk extended memory
DE112015001502T5 (en) Exit from multiple threads in a computer
US10289306B1 (en) Data storage system with core-affined thread processing of data movement requests
US10929238B2 (en) Management of changed-block bitmaps
US11126459B2 (en) Filesystem using hardware transactional memory on non-volatile dual in-line memory module
KR102003721B1 (en) GPU Kernel transactionization method and computing device
Sharma et al. Window-based greedy contention management for transactional memory: theory and practice
Cores et al. Failure avoidance in MPI applications using an application-level approach
Burke et al. Morty: Scaling Concurrency Control with Re-Execution
CN114461336A (en) GPU real-time migration method and device and electronic equipment
KR20220074537A (en) Block commit method of virtual machine environment and, virtual system for performing the method
US20200334225A1 (en) Method and apparatus for processing concurrent transactions, and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant