KR20170100643A - 트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템 - Google Patents

트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR20170100643A
KR20170100643A KR1020177021096A KR20177021096A KR20170100643A KR 20170100643 A KR20170100643 A KR 20170100643A KR 1020177021096 A KR1020177021096 A KR 1020177021096A KR 20177021096 A KR20177021096 A KR 20177021096A KR 20170100643 A KR20170100643 A KR 20170100643A
Authority
KR
South Korea
Prior art keywords
transaction
detection
memory
address
instructions
Prior art date
Application number
KR1020177021096A
Other languages
English (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20170100643A publication Critical patent/KR20170100643A/ko

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템이 제공된다. 상기 방법은 메모리가 비휘발성 메모리(NVM)인 컴퓨터 시스템에 적용되고, 메모리는 적어도 2개의 메모리 영역을 포함하고, 적어도 2개의 메모리 영역은 상이한 검출 정책들을 갖는다. 트랜잭션 충돌 검출 방법에서, 메모리 제어기는 제1 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들을 수신하고 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하고(205); 다음에 메모리 제어기는 제1 메모리 영역의 제1 검출 정책에 따라, 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 수행하고(210), 제2 메모리 영역의 제2 검출 정책에 따라, 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 수행하여(215), 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 제1 트랜잭션의 충돌 검출 결과를 획득한다(220).

Description

트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템
본 발명은 컴퓨터 기술들의 분야에 관한 것으로, 특히, 트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템에 관한 것이다.
본 기술 분야의 통상의 기술자는 종래 기술에서, 상이한 스레드들 간의 동기화, 공유된 리소스들에의 액세스 등은 로크 메커니즘(lock mechanism)에 의해 완료된다고 알고 있다. 그러나, 로크-메커니즘-기반 동시성 시스템(lock-mechanism-based concurrency system)에는 많은 문제가 존재한다. 예를 들어, 공유된 데이터에 대한 보호는 로크 메커니즘을 사용하여 구현될 수 있지만, 통상적은 프로그래머가 효율적인 동시 애플리케이션을 구현하기 위해 미세-입도 로크(fine-granularity lock)를 사용하기가 어렵다. 또한, 로크 메커니즘은 동시 애플리케이션의 효율 및 성능에 영향을 주는 문제들, 예를 들어, 교착상태(deadlock) 및 우선순위 역전(priority inversion)을 야기한다.
전술한 문제들을 해결하기 위해, 본 기술 분야의 통상의 기술자는 트랜잭션 메모리 기술을 제안하였다. 트랜잭션 메모리는 동시 프로그램을 설계하는 방식이고, 트랜잭션 메모리는 데이터베이스 관리 시스템(Database manage system, DBMS)에서의 트랜잭션 개념으로부터 비롯된다. 데이터베이스 관리 시스템에서, 트랜잭션은 원자성, 일관성, 분리성, 및 내구성의 특징들에 부합할 필요가 있다. 원자성은 트랜잭션에서의 동작들이 모두 실행되거나 동작들의 어느 것도 실행되지 않는 것을 의미한다. 일관성은 데이터베이스가 어떤 순간에 일관된 상태에 있을 필요가 있고, 즉, 일부 프리셋 조건들이 부합될 필요가 있다. 분리성은 트랜잭션이 또 하나의 미제출된 트랜잭션에 포함된 내부 대상을 볼 수 없는 상태를 의미한다. 내구성은 제출된 트랜잭션에 의해 데이터베이스 시스템으로 된 변화가 영구적일 필요가 있다는 것을 의미한다. 트랜잭션의 원자성의 역할은 로크 메커니즘의 역할과 유사하고, 이는 상이한 스레드들 간의 동기화를 구현할 수 있다.
종래 기술에서, 트랜잭션 메모리는 기본적으로 CPU의 레벨 1 또는 레벨 2 캐시(cache) 상에서 구현된다. 예를 들어, 전용 캐시 메커니즘이 트랜잭션 충돌 검출 및 트랜잭션 롤백 메커니즘을 구현하기 위해 레벨 1 캐시에 부가된다. 트랜잭션 충돌 검출은 고정된 검출 입도에 기초하여 구현된다. 예를 들어, 충돌 검출은 대상 입도, 워드 입도, 또는 바이트 입도에 기초하여 트랜잭션에 대해 실행될 수 있다. 그러나, 파일 시스템에서, 일반적으로, 파일 시스템의 메타데이터 및 파일 데이터의 액세스 입도들 간에 비교적 큰 차이가 있다. 충돌 검출이 트랜잭션에 대해 수행될 때 사용된 검출 입도가 너무 거칠면, 많은 에러 검출이 발생할 수 있다. 충돌 검출이 트랜잭션에 대해 수행될 때 사용된 검출 입도가 너무 미세하면, 더 많은 시스템 리소스들이 소비된다.
본 발명의 실시예들에서 제공된 트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템에 따르면, 시스템 리소스들을 절약하는 것에 기초하여 검출의 정확성이 개선될 수 있다.
제1 양태에 따르면, 본 발명의 실시예는 트랜잭션 충돌을 검출하는 방법을 제공하고, 상기 방법은 메모리가 비휘발성 메모리 NVM인 컴퓨터 시스템에 적용되고; 상기 메모리는 적어도 2개의 메모리 영역을 포함하고; 상기 적어도 2개의 메모리 영역은 상이한 검출 정책들을 갖고; 상기 방법은 메모리 제어기에 의해 실행되고; 상기 방법은
제1 트랜잭션의 적어도 2개의 동작 명령을 수신하는 단계 - 상기 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있음 -;
상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하는 단계;
상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계;
상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계; 및
상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하는 단계 - 상기 적어도 2개의 동작 명령의 상기 충돌 검출 결과들은 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과 및 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과를 적어도 포함함 -
를 포함한다.
제1 양태를 참조하여, 제1 양태의 제1 가능한 구현 방식에서, 상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하는 단계는
상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정하는 단계; 또는
상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들이 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정하는 단계를 포함한다.
제1 양태 또는 제1 양태의 제1 가능한 구현 방식을 참조하여, 제1 양태의 제2 가능한 구현 방식에서, 상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계는
상기 제1 메모리 영역에 대해 설정된 제1 블룸 필터(bloom filter) 블룸 필터를 사용하여, 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하는 단계를 포함하고, 상기 제1 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 상기 제1 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제1 검출 정책의 검출 입도에 의해 결정되고;
상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계는
상기 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하여, 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하는 단계를 포함하고, 상기 제2 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고; 상기 제2 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제2 검출 정책의 검출 입도에 의해 결정되고; 상기 제2 검출 정책의 검출 입도는 상기 제1 검출 정책의 검출 입도와 상이하다.
제2 양태에 따르면, 본 발명의 실시예는 컴퓨터 시스템을 제공하고, 상기 컴퓨터 시스템은
메모리 제어기에 제1 트랜잭션의 적어도 2개의 동작 명령을 보내도록 구성된 프로세서;
데이터를 저장하도록 구성된 메모리 - 상기 메모리는 비휘발성 메모리이고, 상기 메모리는 적어도 2개의 메모리 영역을 포함하고, 상기 적어도 2개의 메모리 영역은 상이한 검출 정책들을 가짐 - ; 및
상기 메모리 제어기
를 포함하고, 상기 메모리 제어기는
상기 프로세서에 의해 전송된 상기 제1 트랜잭션의 적어도 2개의 동작 명령을 수신하고 - 상기 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있음 -;
상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하고;
상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고;
상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고;
상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하도록 구성되고, 상기 적어도 2개의 동작 명령의 상기 충돌 검출 결과들은 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과 및 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과를 적어도 포함한다.
제2 양태를 참조하여, 제2 양태의 제1 가능한 구현 방식에서, 상기 메모리 제어기는
상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정하고;
상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들이 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정하도록 구체적으로 구성된다.
제2 양태 또는 제2 양태의 제1 가능한 구현 방식을 참조하여, 제2 양태의 제2 가능한 구현 방식에서, 상기 메모리 제어기는
상기 제1 메모리 영역에 대해 설정된 제1 블룸 필터 블룸 필터를 사용하여, 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하고 - 상기 제1 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 상기 제1 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제1 검출 정책의 검출 입도에 의해 결정됨 -;
상기 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하여, 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하도록 - 상기 제2 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고; 상기 제2 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제2 검출 정책의 검출 입도에 의해 결정되고; 상기 제2 검출 정책의 검출 입도는 상기 제1 검출 정책의 검출 입도와 상이함 - 구체적으로 구성된다.
제3 양태에 따르면, 본 발명의 실시예는 트랜잭션 충돌을 검출하는 장치를 제공하고, 상기 장치는 메모리가 비휘발성 메모리 NVM인 컴퓨터 시스템에 적용되고; 상기 메모리는 적어도 2개의 메모리 영역을 포함하고; 상기 적어도 2개의 메모리 영역은 상이한 검출 정책들을 갖고; 상기 장치는
제1 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 구성된 수신 모듈 - 상기 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있음 -;
상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하도록 구성된 결정 모듈;
상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고; 상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하도록 구성된 검출 모듈; 및
상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하도록 구성된 처리 모듈 - 상기 적어도 2개의 동작 명령의 상기 충돌 검출 결과들은 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과 및 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과를 적어도 포함함 -
을 포함한다.
제3 양태를 참조하여, 제3 양태의 제1 가능한 구현 방식에서, 상기 처리 모듈은
상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정하고;
상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들이 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정하도록 구체적으로 구성된다.
제3 양태 또는 제3 양태의 제1 가능한 구현 방식을 참조하여, 제3 양태의 제2 가능한 구현 방식에서, 상기 검출 모듈은
상기 제1 메모리 영역에 대해 설정된 제1 블룸 필터 블룸 필터를 사용하여, 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하고 - 상기 제1 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 상기 제1 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제1 검출 정책의 검출 입도에 의해 결정됨 -;
상기 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하여, 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하도록 - 상기 제2 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고; 상기 제2 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제2 검출 정책의 검출 입도에 의해 결정되고; 상기 제2 검출 정책의 검출 입도는 상기 제1 검출 정책의 검출 입도와 상이함 - 구체적으로 구성된다.
제4 양태에 따르면, 본 발명의 실시예는 프로그램 코드를 저장하는 컴퓨터 판독가능 저장 매체를 포함하는, 컴퓨터 프로그램 제품을 제공하고, 상기 프로그램 코드에 포함된 명령어는 전술한 제1 양태의 방법을 실행하기 위해 사용된다.
본 발명의 실시예들에서 제공된 트랜잭션 충돌을 검출하는 방법에서, 동일한 트랜잭션의 상이한 동작 명령들이 상이한 메모리 영역들에 액세스하는 것에 따라, 상이한 검출 정책들이 검출을 수행하기 위해 동일한 트랜잭션의 상이한 동작 명령들을 위해 사용되고, 이 트랜잭션의 충돌 검출 결과는 동일한 트랜잭션의 모든 동작 명령들의 충돌 검출 결과들에 따라 결정된다. 그러므로, 충돌 검출을 구현하는 시스템에 의해 이루어지는 검출의 정확성과 시스템 리소스 소비 간의 균형이 구현될 수 있으므로, 시스템 리소스 소비를 감소시키면서 충돌 검출의 정확성이 개선될 수 있다.
본 발명의 실시예들 또는 종래 기술의 기술적 해결책들을 보다 분명히 설명하기 위해, 다음에 실시예들을 설명하는 데 필요한 첨부 도면을 간략히 설명한다. 분명히, 다음의 설명의 첨부 도면은 단지 본 발명의 일부 실시예들을 도시한다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템의 개략 구조도.
도 2는 본 발명의 실시예에 따른 트랜잭션 충돌을 검출하는 방법의 개략 플로우차트.
도 3a 내지 도 3d는 본 발명의 실시예에 따른 트랜잭션의 동작 명령들에 의해 액세스될 메모리 영역들의 개략도들.
도 4는 본 발명의 실시예에 따른 트랜잭션 충돌을 검출하는 또 하나의 방법의 개략 플로우차트.
도 5는 본 발명의 실시예에 따른 트랜잭션 충돌을 검출하는 또 하나의 방법의 개략 플로우차트.
도 6은 본 발명의 실시예에 따른 트랜잭션 충돌을 검출하는 장치의 개략 구조도.
본 기술 분야의 통상의 기술자에게 본 발명의 기술적 해결책들을 보다 잘 이해시키기 위해, 다음에 본 발명의 실시예들의 첨부 도면을 참조하여 본 발명의 실시예들의 기술적 해결책들을 분명하고 완전하게 설명한다. 분명히, 설명된 실시예들은 단지 본 발명의 실시예들의 일부이지 모두는 아니다.
본 발명의 실시예들에서 제공된 트랜잭션 충돌을 검출하는 방법은 메모리가 비휘발성 메모리인 컴퓨터 시스템에 적용될 수 있다. 도 1은 본 발명의 실시예에 따른 컴퓨터 시스템의 개략 구조도이다. 도 1에 도시한 바와 같이, 컴퓨터 시스템(100)은 중앙 처리 장치(Central Processing Unit, CPU)(10), 메모리 제어기(20), 및 메모리(30)를 포함한다. 도 1에 도시한 바와 같이, CPU(10)는 컴퓨터 시스템(100)의 연산 코어(Core) 및 제어 코어(Control Unit)이다. CPU(10)는 극대규모의 집적 회로일 수 있다. 운영 체제 및 또 하나의 소프트웨어 프로그램이 CPU(10) 내에 설치되어, CPU(10)는 메모리, 캐시, 및 자기 디스크에 액세스할 수 있다. 본 발명의 본 실시예에서, CPU(10)는 단지 프로세서의 예라는 것을 이해할 수 있다. CPU(10)에 부가하여, 프로세서는 또한 본 발명의 실시예들을 구현하도록 구성된 또 하나의 주문형 집적 회로 ASIC(Application Specific Integrated Circuit), 또는 하나 이상의 집적 회로일 수 있다.
메모리 제어기(Memory Controller)(20)는 컴퓨터 시스템(100) 내의 메모리(30)를 제어하고 메모리(30)로부터 CPU(10)까지의 데이터 전송 속도를 관리하고 계획하도록 구성된 버스 회로 제어기이다. 메모리(30)와 CPU(10)는 메모리 제어기(20)를 사용하여 데이터를 교환할 수 있다. 메모리 제어기(20)는 독립형 칩일 수 있고, 시스템 버스를 사용하여 CPU(10)에 접속된다. 본 기술 분야의 통상의 기술자는 메모리 제어기(20)는 또한 관련된 대형 칩 내로 통합될 수 있다는 것을 알 수 있다. 예를 들어, 메모리 제어기(20)는 마이크로프로세서(예를 들어, CPU(10)) 내로 통합될 수 있거나 노스브리지 내로 내장된다. 본 발명의 본 실시예는 메모리 제어기(20)의 특정 위치에 대해 제한을 두지 않는다. 설명의 용이성을 위해, 도 1에 도시한 시스템 아키텍처에서, 메모리 제어기(20)가 별도로 배치된 것이 설명을 위한 예로서 사용된다. 메모리 제어기(20)는 메모리(30) 내로 데이터를 기입하거나 메모리(30)로부터 데이터를 판독하기 위해 필요한 로직을 제어한다.
도 1에 도시한 바와 같이, 메모리 제어기(20)는 제어 로직(202), 캐시(204), 및 백엔드 통신 인터페이스(206)를 포함할 수 있다. 제어 로직(202), 캐시(204), 및 백엔드 통신 인터페이스(206)는 통신 버스를 사용하여 상호 통신을 완료한다. 캐시(204)는 CPU(10)와 메모리(30) 사이의 일시적 메모리이다. 캐시(204)는 제어 로직(202)에 의해 메모리(30) 내로 기입될 커맨드 및 데이터를 버퍼링하도록 구성되거나 메모리(30)로부터 판독될 데이터를 버퍼링하도록 구성된다. 본 발명의 본 실시예에서, 캐시(204)는 또한 차세대 비휘발성 메모리의 저장 매체에 의해 구성될 수 있다. 예를 들어, 캐시(204)는 자기 랜덤 액세스 메모리(Magnetic Random Access Memory, MRAM)일 수 있다.
백엔드 통신 인터페이스(206)는 메모리(30)와 통신하도록 구성된다. 예를 들어, 백엔드 통신 인터페이스(206)는 제어 로직(202)에 의해 전달된 메모리(30)의 액세스 커맨드를 관리하고 데이터 전송을 수행하도록 구성될 수 있다. 백엔드 통신 인터페이스(206)는 메모리(30)의 상이한 메모리 영역들을 접속시키기 위해 사용되는 다수의 통신 채널을 포함할 수 있다는 것을 이해할 수 있다.
제어 로직(202)은 중앙 처리 장치 CPU, 또는 본 발명의 본 실시예를 구현하도록 구성된 또 하나의 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 또는 하나 이상의 집적 회로일 수 있다. 제어 로직(202)은 메모리(30)의 액세스 요구를 구현하거나, 메모리(30)의 데이터를 관리하는 것 등을 할 수 있다. 예를 들어, 제어 로직(202)은 통신 버스를 사용하여, CPU(10)에 의해 보내진 메모리(30)에 액세스하기 위한 액세스 커맨드를 수신하고, 액세스 커맨드에 따라, 백엔드 통신 인터페이스(206)를 사용하여 메모리(30)에 액세스하고, 메모리(30) 내로 데이터를 기입하고, 또는 메모리(30)로부터 데이터를 판독할 수 있다.
메모리(30)는 컴퓨터 시스템(100)의 주 메모리이다. 메모리(30)는 일반적으로 운영 체제에서 실행되는 다양한 소프트웨어를 저장하고, 외부 저장 장치와 교환되는 데이터, 정보 등을 입력 및 출력하도록 구성된다. CPU(10)의 액세스 속도를 증가시키기 위해, 메모리(30)는 높은 액세스 속도의 장점을 가질 필요가 있다. 통상적인 컴퓨터 시스템 아키텍처에서, 다이내믹 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)가 일반적으로 메모리(30)로서 사용된다. 비휘발성 메모리(Non-Volatile Memory, NVM) 기술의 발달에 따라, NVM이 일반적으로 메모리로서 사용된다.
본 기술 분야의 통상의 기술자는 차세대 NVM은 높은 액세스 속도 및 비휘발성의 특징들을 갖고, 더구나, 차세대 NVM은 바이트(Byte)에 의한 어드레싱을 수행하고, 비트(bit) 단위로 비휘발성 저장 매체 내로 데이터를 기입할 수 있다는 것을 알 수 있다. 그러므로, 메모리로서 사용될 때, 차세대 NVM은 다이내믹 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)가 하는 것과 같은 데이터 액세스의 레이턴시(latency)를 감소시킬 수 있다. 또한, DRAM과 비교하여, NVM은 비휘발성을 가지므로, 데이터를 더 잘 저장할 수 있다. 차세대 NVM은 위상 변화 메모리(Phase Change Memory, PCM), 저항 랜덤 액세스 메모리(Resistive Random Access Memory, RRAM), 자기 랜덤 액세스 메모리(Magnetic Random Access Memory, MRAM) 또는 강유전성 랜덤 액세스 메모리(Ferroelectric Random Access Memory, FRAM)와 같은 차세대 비휘발성 메모리를 포함할 수 있다. 본 발명의 본 실시예에서 제공된 컴퓨터 시스템(100)에서, 메모리(30)는 차세대 비휘발성 메모리의 비휘발성 저장 매체이다. 저장 매체는 다수의 저장 유닛을 포함할 수 있다. 본 발명의 본 실시예에서, 저장 매체 내의 저장 유닛은 데이터를 저장하기 위해 사용되는 최소 저장 매체 유닛을 말한다. 예를 들어, 저장 유닛은 위상 변화 메모리를 구성하는 위상 변화 저장 유닛, 자기 랜덤 액세스 메모리를 구성하는 자기 저장 유닛, 저항 랜덤 액세스 메모리를 구성하는 저항 저장 유닛 등을 포함할 수 있다.
본 발명의 본 실시예에서, 메모리(30)는 서비스 요건에 따라 적어도 2개의 메모리 영역으로 분할될 수 있다. 예를 들어, 도 1에 도시한 바와 같이, 메모리(30)는 제1 메모리 영역(32) 및 제2 메모리 영역(34)으로 분할된다. 상이한 메모리 영역들이 상이한 유형들의 데이터를 저장하기 위해 사용될 수 있다. 예를 들어, 파일 시스템이 메모리(30) 내에 확립될 때, 제1 메모리 영역(32)은 이 파일 시스템의 메타데이터를 저장하기 위해 사용될 수 있고, 제2 메모리 영역(34)은 파일 데이터를 저장하기 위해 사용될 수 있다. 물론, 도 1에 도시한 제1 메모리 영역(32) 및 제2 메모리 영역(34) 외에, 메모리(30)는 여기서 제한되지 않는, 또 하나의 메모리 영역을 더 포함할 수 있다는 것을 이해할 수 있다.
본 기술 분야의 통상의 기술자는 도 1에 도시한 컴퓨터 시스템(100)에서, CPU(10)에 의해 메모리(30)에 액세스하는 과정에서, 트랜잭션 메모리 기술이 데이터 일관성을 보장하기 위해 사용될 수 있다는 것을 알 수 있다. 본 발명의 본 실시예를 분명히 설명하기 위해, 다음에 트랜잭션의 개념들 및 트랜잭션의 충돌 검출에 대해 간단히 설명한다. 본 기술 분야의 통상의 기술자는 트랜잭션 메모리 메커니즘은 상이한 동시에 처리된 스레드들 각각이 트랜잭션으로서 처리되어, 트랜잭션 동작을 사용하여 프로그램 복잡성을 감소시키는 것이라는 것을 알 수 있다. 트랜잭션은 데이터베이스 내의 트랜잭션으로부터 비롯되는 개념이고 메모리 상의 일련의 차례로 된 판독 및 기입 동작들이고, 여기서 이들 동작은 동일한 스레드에 의해 실행된다. 트랜잭션은 원자성, 즉, 트랜잭션에서의 동작들이 모두 실행되거나, 동작들의 어느 것도 실행되지 않고 동작들이 재실행을 위해 초기 상태로 롤백되는 특징을 갖는다. 트랜잭션의 이 특징은 로크 메커니즘의 역할을 한다.
트랜잭션 메모리 메커니즘을 구현하기 위해, 컴퓨터 시스템은 3가지 기본 기능들: 충돌 검출, 데이터 버전 관리, 및 충돌 해결 정책을 가질 필요가 있다. 동시 트랜잭션들이 실행될 때 발생할 수 있는 동일한 데이터 아이템에 동시에 액세스하는 경우가 충돌 검출을 사용하여 검출될 수 있다. 충돌이 검출되면, 대응하는 충돌 해결 정책이 사용될 필요가 있다. 롤백과 같은 동작들이 충돌 해결 과정에서 수행될 필요가 있으므로; 수정 후의 새로운 데이터 및 수정 전의 원래의 데이터가 사용될 필요가 있고, 이러한 데이터의 절약이 데이터 버전 관리에서 완료될 필요가 있다.
본 발명의 본 실시예는 주로 트랜잭션 메모리 메커니즘에서의 트랜잭션 충돌 검출과 관련한다. 충돌 검출 과정에서, 검출 입도(granularity)는 트랜잭션의 원자성을 구현하는 보장이다. 검출 입도는 대상 입도, 워드 입도(word granularity), 및 바이트 입도(byte granularity)를 포함할 수 있다. 대상 입도에서, 어떤 충돌의 판정은 대상에 기초하여 내려질 수 있다. 2개의 트랜잭션에 의해 수정된 메모리 블록들이 일치하지 않을지라도, 2개의 트랜잭션이 동일한 대상 내에 있으면, 2개의 트랜잭션이 충돌한다고 결정될 수 있다. 워드 입도 및 바이트 입도는 대상 입도보다 미세한 입도들이다. 예를 들어, 하나의 워드가 입도로서 사용되면, 2개의 트랜잭션에 의해 수정된 대상들이 동일할지라도, 2개의 트랜잭션에 의해 수정된 워드들이 상이하다면, 2개의 트랜잭션이 충돌하지 않는다고 결정된다. 대상 입도과 비교하여, 워드 입도 및 바이트 입도의 2개의 검출 입도에서, 충돌 검출 결과는 더 미세하여, 트랜잭션 메모리 시스템 성능을 개선시키기 위해 더 양호하다. 그러나, 대상 입도의 충돌 검출과 비교하여, 워드 입도 및 바이트 입도의 충돌 검출은 보다 많은 시스템 리소스들을 소비한다.
검출의 정확성과 시스템 리소스 소비 사이에서 균형을 이루기 위해, 본 발명의 본 실시예는 하이브리드 입도에 기초한 충돌 검출 방법을 제안한다. 이 방법은 도 1에 도시한 컴퓨터 시스템(100)에 적용될 수 있다. 도 1은 단지 차세대의 새로운 NVM이 메모리로서 사용되는 컴퓨터 시스템의 개략 구조도라는 것을 이해할 수 있다. 본 기술 분야의 통상의 기술자는 실제 응용에서, 차세대 NVM이 메모리로서 사용될 수 있을 뿐만 아니라, 차세대 NVM의 기능이 기존의 외부 저장 장치로 확장될 수 있다는 것을 이해할 수 있다. 본 방식에 따르면, 차세대 NVM이 외부 저장 장치로서 사용될 때, CPU가 NVM 제어기에 직접 접속될 수 있으면, NVM 제어기는 또한 트랜잭션 충돌 검출이 실행될 필요가 있는 과정에서 본 발명의 본 실시예의 방법에 따라 실행될 수 있다.
도 1을 참조하여, 다음에 본 발명의 실시예에 따른 충돌을 검출하는 방법에 대해 상세히 설명한다. 도 2는 본 발명의 실시예에 따른 트랜잭션 충돌을 검출하는 방법의 개략 플로우차트이다. 도 2에 도시한 바와 같이, 방법은 다음의 단계들을 포함할 수 있다.
단계 200에서, 메모리 제어기(20)는 제1 트랜잭션의 적어도 2개의 동작 명령을 수신하고, 여기서 각각의 동작 명령은 어드레스를 갖고 있다. 위에 설명된 바와 같이, 트랜잭션은 메모리 상의 일련의 판독 및 기입 동작들을 포함한다. 본 발명의 본 실시예에서, 명확한 설명을 위해, 제1 트랜잭션, 제2 트랜잭션, 및 제3 트랜잭션이 다수의 트랜잭션의 상이한 트랜잭션들을 구별하기 위해 예로서 사용된다. 본 단계에서, CPU(10)가 제1 트랜잭션을 시작할 때, 메모리 제어기(20) 내의 제어 로직(202)은 CPU(10)에 의해 보내진 제1 트랜잭션의 적어도 2개의 동작 명령을 수신할 수 있다. 적어도 2개의 동작 명령은 메모리(30)로부터 데이터를 판독하기 위해 사용되는 판독 동작 명령들일 수 있거나, 메모리(30) 내로 데이터를 기입하기 위해 사용되는 기입 동작 명령들일 수 있다. 메모리(30) 내의 파일 시스템이 액세스될 필요가 있을 때, 적어도 2개의 동작 명령은 파일 시스템을 시작하기 위해 사용되는 명령을 더 포함할 수 있다. 여기서 제1 트랜잭션의 동작 명령의 유형에 특정한 제한을 두지 않는다. 메모리(30)에 액세스하기 위해, 적어도 2개의 동작 명령은 메모리(30)에 액세스할 어드레스들을 갖고 있다는 것을 이해할 수 있다.
단계 205에서, 메모리 제어기(20)는 적어도 2개의 동작 명령 내의 어드레스들에 따라, 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정한다. 도 1에 도시한 바와 같이, 본 발명의 본 실시예에서, 메모리(30)는 실제 요건에 따라 적어도 2개의 메모리 영역으로 분할될 수 있다. 설명의 용이성을 위해, 본 발명의 본 실시예에서, 메모리(30)가 제1 메모리 영역(32) 및 제2 메모리 영역(34)을 포함하는 예가 설명을 위해 사용된다. 예를 들어, 메모리(30)의 용량은 4GB이고, 어드레스 범위가 0000 0000h 내지 3FFF FFFFh인 부분이 제1 메모리 영역으로서 사용되고, 어드레스 범위가 4000 0000h 내지 FFFF FFFFh인 부분이 제2 메모리 영역으로서 사용된다.
실제 응용에서, 상이한 유형들의 데이터가 상이한 메모리 영역들에 따라 상이하게 관리될 수 있다는 것을 이해할 수 있다. 예를 들어, 파일 시스템이 메모리(30) 내에 확립될 때, 제1 메모리 영역(32)은 파일 시스템의 메타데이터를 저장하는 영역일 수 있고, 제2 메모리 영역(34)은 파일 시스템의 파일 데이터를 저장하기 위해 사용될 수 있다.
본 발명의 본 실시예에서, 제1 트랜잭션의 적어도 2개의 동작 명령을 수신한 후에, 메모리 제어기(20)는 제1 트랜잭션의 적어도 2개의 동작 명령에 포함된 어드레스들에 따라, 적어도 2개의 동작 명령에 의해 액세스될 메모리(30)의 메모리 영역들을 각각 결정할 수 있다. 실제 응용에서, 메모리 제어기(20)는 먼저 캐시(204) 내의 CPU(10)에 의해 보내진 적어도 2개의 동작 명령을 버퍼링한 다음에, 제1 트랜잭션의 적어도 2개의 동작 명령에 포함된 어드레스들에 따라, 적어도 2개의 동작 명령에 의해 액세스될 메모리(30)의 메모리 영역들을 각각 결정할 수 있다. 예를 들어, 도 3a에 도시한 바와 같이, 제1 트랜잭션은 메모리(30)에 액세스하는 3개의 동작 명령: A1, A2, 및 A3을 포함한다. A1은 어드레스 Addr_A1을 포함하고, A2는 어드레스 Addr_A2를 포함하고, A3은 어드레스 Addr_A3을 포함한다. 메모리 제어기(20) 내의 제어 로직(202)은 메모리(30)에서 분할된 상이한 메모리 영역들의 어드레스 범위들 및 동작 명령들에 포함된 어드레스들에 따라, 동작 명령 A1에 의해 액세스될 메모리 영역이 제1 메모리 영역(32)이고 동작 명령들 A2 및 A3에 의해 액세스될 메모리 영역이 제2 메모리 영역(34)이라고 각각 결정할 수 있다. 본 발명의 본 실시예에서, 메모리(30)가 2개의 메모리 영역으로 분할되는 예가 설명을 위해 사용된다는 점에 주목하여야 한다. 실제 응용에서, 메모리(30)에서 분할되는 메모리 영역들의 양은 또한 2개보다 많을 수 있고, 이는 여기서 제한되지 않는다.
단계 210에서, 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 충돌 검출이 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 실행된다. 예를 들어, 도 3a에 도시한 경우에서, 제1 검출 정책이 제1 트랜잭션의 동작 명령 A1에 대해 충돌 검출을 실행하기 위해 사용될 수 있다. 본 기술 분야의 통상의 기술자는 충돌 검출이 컴퓨터 시스템에 의해 실행될 동작 명령 내의 어드레스가 속하는 어드레스 범위가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한지를 검출하기 위해 사용된다는 것을 알 수 있다. 어드레스 범위는 검출 입도에 의해 결정된다. 바꾸어 말하면, 충돌 검출은 동시 트랜잭션들이, 실행할 때, 검출 입도에 의해 결정된 동일한 어드레스 범위에 동시에 액세스할 수 있는지를 검출하기 위해 사용될 수 있다. 동시 트랜잭션들이 실행되고 있을 때 발생할 수 있는 동일한 데이터 아이템에 동시에 액세스하는 경우가 충돌 검출을 사용하여 검출될 수 있어서, 제1 트랜잭션이 컴퓨터 시스템에 의해 실행되고 있는 또 하나의 트랜잭션과 동시에 실행될 수 있는지를 결정한다. 예를 들어, 메모리 어드레스가 32비트들에 의해 나타내지고, 동작 명령 A1의 어드레스 Addr_A1은 1000 0011h이고, 컴퓨터 시스템에 의해 실행되고 있는 동작 명령의 어드레스 Addr_D1은 1000 0000h이라고 가정한다. 한 경우에, 1바이트가 검출 입도로서 사용되면, Addr_A1은 어드레스 Addr_D1과 상이하기 때문에, 동작 명령 A1은 컴퓨터 시스템에 의해 실행되고 있는 동작 명령과 충돌하지 않는다고 결정된다. 또 하나의 경우에, 64바이트가 검출 입도로서 사용되면, Addr_A1이 속하는 어드레스 범위는 1000 0000h 내지 1000 003Fh이기 때문에, Addr_D1이 속하는 어드레스 범위는 또한 1000 0000h 내지 1000 003Fh이다. 바꾸어 말하면, 어드레스 Addr_A1과 어드레스 Addr_D1 둘 다는 베이스 어드레스가 "1000 0000h"인 32-비트 어드레스 범위에 속한다. 이 경우에, Addr_A1이 속하는 어드레스 범위는 어드레스 Addr_D1이 속하는 어드레스 범위와 동일한 것으로 결정될 수 있으므로, 동작 명령 A1이 컴퓨터 시스템에 의해 실행되고 있는 동작 명령과 충돌한다고 결정될 수 있다.
전술한 예로부터, 충돌 검출 과정에서, 검출 입도가 너무 미세하면, 검출 결과의 정확성은 개선되지만 보다 많은 시스템 리소스들이 소비된다는 것을 알 수 있다. 그러나, 검출 입도가 너무 거칠면, 시스템 리소스 소비가 감소되지만, 검출 결과의 정확성은 보장될 수 없다. 본 발명의 본 실시예에서, 충돌 검출의 정확성과 시스템 소비 간의 모순에 대한 균형을 이루기 위해, 상이한 검출 정책들이 메모리(30)에서 분할된 상이한 메모리 영역들에 대해 설정되고, 여기서 상이한 검출 정책들이 상이한 검출 입도들을 사용한다. 예를 들어, 한 경우에, 제1 메모리 영역이 파일 시스템의 매타데이터를 저장하기 위해 사용되면, 제2 메모리 영역은 파일 시스템의 파일 데이터를 저장하기 위해 사용된다. 메타데이터의 액세스 입도는 파일 데이터의 액세스 입도보다 작고, 메타데이터의 데이터 볼륨은 파일 데이터의 데이터 볼륨보다 작다. 그러므로, 메타데이터의 액세스 정확성을 개선시키기 위해, 제1 메모리 영역에 대해 설정된 충돌 검출 입도가 제2 메모리 영역에 대해 설정된 충돌 검출 입도보다 작을 수 있다. 예를 들어, 제1 메모리 영역에 액세스하는 동작 커맨드에 대해 설정된 검출 정책에서의 검출 입도는 64B(바이트)일 수 있고, 제2 메모리 영역에 액세스하는 동작 커맨드에 대해 설정된 검출 정책에서의 검출 입도는 4KB(바이트)일 수 있다. 설명의 용이성을 위해, 본 발명의 본 실시예에서, 제1 메모리 영역에 액세스하는 동작 커맨드에 대해 설정된 검출 정책은 제1 메모리 영역의 제1 검출 정책이라고 하고, 제2 메모리 영역에 액세스하는 동작 커맨드에 대해 설정된 검출 정책은 제2 메모리 영역의 제2 검출 정책이라고 한다.
본 기술 분야의 통상의 기술자는 충돌 검출을 실행하는 과정에서, 한 경우에, 제1 트랜잭션의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 직접 비교될 수 있으므로, 이 동작과 실행되고 있는 또 하나의 동작이 동일한 데이터 아이템에 동시에 액세스할 수 있는지를 결정한다는 것을 알 수 있다. 검출에 의해, 동작 명령 내의 어드레스가 속하는 어드레스 범위가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일하다고 결정되면, 이 동작과 컴퓨터 시스템에 의해 실행되고 있는 동작이 동일한 데이터 아이템에 동시에 액세스할 수 있다고, 즉, 이 동작이 컴퓨터 시스템에 의해 실행되고 있는 동작과 충돌한다고 고려된다. 검출에 의해, 동작 명령 내의 어드레스가 속하는 어드레스 범위가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이하다고 결정되면, 이 동작이 컴퓨터 시스템에 의해 실행되고 있는 동작과 충돌하지 않는다고 고려된다.
실제 응용에서, 검출의 효율을 개선시키기 위해, 충돌 검출이 블룸 필터(bloom filter)를 사용하여 제1 트랜잭션의 각각의 동작 명령에 대해 실행될 수 있다. 블룸 필터는 일반적으로 요소(element)가 집합의 구성원(member)인지를 검출하기 위해 사용된다. 검출 결과가 예인 경우, 요소가 반드시 집합 내에 있는 것은 아니고; 검출 결과가 아니오인 경우, 요소는 확실히 집합 내에 있지 않다. 블룸 필터는 m의 길이를 갖는 어레이 상의 점에 요소를 맵핑하기 위한 해시 함수의 방법을 사용한다. 이 점이 1일 때, 요소는 집합 내에 있고; 그렇지 않으면, 요소는 집합 내에 있지 않다. 본 발명의 본 실시예에서, 상이한 충돌 검출 정책들이 상이한 메모리 영역들에 액세스하는 동작 명령들에 대해 설정된다. 그러므로, 상이한 메모리 영역들에 액세스하는 동작 명령들은 상이한 블룸 필터들을 사용하여 구현될 수 있는데, 여기서 상이한 블룸 필터들은 상이한 검출 입도들을 갖는다. 구체적으로, 제1 메모리 영역(32)에 액세스하는 동작 명령에 대한 충돌 검출은 제1 블룸 필터를 사용하여 구현될 수 있고, 제2 메모리 영역(34)에 액세스하는 동작 명령에 대한 충돌 검출은 제2 블룸 필터를 사용하여 구현될 수 있다. 제1 블룸 필터는 제1 검출 정책을 실행하기 위해 사용되고, 제2 블룸 필터는 제2 검출 정책을 실행하기 위해 사용된다. 제1 블룸 필터 및 제2 블룸 필터의 검출 메커니즘들은 검출 입도들이 상이한 것을 제외하고 동일하기 때문에, 여기서, 도 3a를 참조하여, 제1 메모리 영역에 액세스할 동작 명령에 대한 충돌 검출이 제1 블룸 필터를 사용하여 구현되는 예가 설명을 위해 사용된다.
도 3a에 도시한 바와 같이, 제1 트랜잭션의 동작 명령 A1이 제1 메모리 영역(32)에 액세스할 필요가 있다. 제1 블룸 필터는 컴퓨터 시스템(100)에 의해 실행되고 있고 제1 메모리 영역(32)에 동시에 액세스할 수 있는 또 하나의 트랜잭션의 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 저장한다. 설명의 용이성을 위해, 본 발명의 본 실시예에서, 제1 블룸 필터에 저장된, 컴퓨터 시스템(100)에 의해 실행되고 있고 제1 메모리 영역(32)에 동시에 액세스할 수 있는 또 하나의 트랜잭션의 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값의 집합은 제1 블룸 필터에 저장된 어드레스 집합이라고 할 수 있다. 위에 설명된 바와 같이, 충돌 검출이 동시 트랜잭션들이, 실행할 때, 검출 입도에 의해 결정된 동일한 어드레스 범위에 동시에 액세스할 수 있는지를 검출하기 위해 사용될 수 있다. 검출 과정에서, Addr_A1이 속하는 어드레스 범위가 제1 검출 정책의 검출 입도에 따라 결정될 수 있다. Addr_A1이 속하는 어드레스 범위의 해시 값이 제1 블룸 필터의 해시 값에 비교되어, 동작 명령 A1이 컴퓨터 시스템(100)에 의해 실행되고 있고 제1 메모리 영역(32)에 액세스하는 또 하나의 동작 명령과 동시에 실행될 수 있는지를 결정한다. 예를 들어, 메모리 어드레스가 32비트들로 나타내지고, 제1 검출 정책의 검출 입도가 64바이트이고, 동작 명령 A1의 어드레스 Addr_A1이 1000 0011h라고 가정하고, Addr_A1이 속하는 어드레스 범위는 베이스 어드레스가 "1000 0000h"인 32-비트 어드레스 범위 내에 있다고 결정될 수 있다. 32-비트 어드레스 범위는 1000 0000h 내지 1000 003Fh이다. 다음에, Addr_A1이 속하는 어드레스 범위의 해시 값을 획득하기 위해 해싱이 "1000 0000h"에 대해 수행될 수 있다. Addr_A1이 속하는 어드레스 범위의 해시 값은 제1 블룸 필터에 저장된 해시 값과 비교된다. 제1 블룸 필터에 의한 Addr_A1의 검출 결과가 1이면, 동작 명령 A1은 컴퓨터 시스템(100)에 의해 실행되고 있고 제1 메모리 영역(32)에 액세스하는 또 하나의 동작 명령과 충돌한다고 고려된다. 제1 블룸 필터에 의한 Addr_A1의 검출 결과가 0이면, 동작 명령 A1은 컴퓨터 시스템(100)에 의해 실행되고 있고 제1 메모리 영역(32)에 액세스하는 또 하나의 동작 명령과 충돌하지 않는다고 고려된다.
전술한 충돌 검출 과정에서, 제1 블룸 필터가 해싱을 한 번 수행하는 예가 설명을 위해 사용된다. 본 기술 분야의 통상의 기술자는 실제 응용에서, 정확성을 개선시키기 위해, 제1 블룸 필터는 동작 명령 A1 내의 어드레스에 대해 다수 번 해싱을 수행하고, 다수 번의 해싱 이후에 획득된 해시 값에 따라, 동작 명령 A1이 컴퓨터 시스템에 의해 실행되고 있고 제1 메모리 영역에 액세스하는 동작 명령과 충돌하는지를 결정할 수 있다는 것을 알 수 있다. 본 발명의 본 실시예는 제1 블룸 필터 및 제2 블룸 필터에 의해 충돌 검출을 구현하는 메커니즘에 특정한 제한을 두지 않는다.
실제 응용에서, 캐시(204)는 액세스될 상이한 메모리 영역들에 따라 다수의 캐시 영역으로 분할될 수 있다. 다수의 캐시 영역은 상이한 메모리 영역들에 액세스하는 동작 명령들을 버퍼링하기 위해 사용된다. 예를 들어, 제1 메모리 영역에 액세스하는 동작 명령은 제1 캐시 영역에서 버퍼링될 수 있고, 제2 메모리 영역에 액세스하는 동작 명령은 제2 캐시 영역에서 버퍼링된다. 다음에 제1 블룸 필터가 제1 캐시 영역에서 버퍼링된 동작 명령에 대해 충돌 검출을 수행하기 위해 사용되고, 제2 블룸 필터가 제2 캐시 영역에서 버퍼링된 동작 명령에 대해 충돌 검출을 수행하기 위해 사용된다. 이것은 여기서 제한되지 않는다.
블룸 필터는 단지 충돌 검출을 구현하는 구현 방식이라는 것을 이해할 수 있다. 실제 응용에서, 쿡쿠(Cuckoo) 필터와 같은 또 하나의 검출 방법이 더 사용될 수 있고, 이는 여기서 제한되지 않는다. 본 기술 분야의 통상의 기술자는 다양한 검출 방법들의 목적들은 실행될 트랜잭션의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 시스템에 의해 실행되고 있는 트랜잭션의 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한지를 결정하여, 충돌이 트랜잭션들 사이에서 발생하는지를 결정하는 것으로, 여기서 어드레스 범위는 검출 입도에 의해 결정된다는 것을 알 수 있다.
단계 215에서, 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 충돌 검출이 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 실행된다. 예를 들어, 도 3a에 도시한 경우에, 제2 검출 정책은 제1 트랜잭션의 동작 명령들 A2 및 A3에 대해 충돌 검출을 실행하기 위해 사용될 수 있다. 단계 215에서의 검출 방법은 단계 210에서의 검출 방법과 유사하다. 상세들에 대해서는, 단계 210의 상세한 설명을 참조할 수 있고, 상세들은 여기서 설명되지 않는다.
단계 220에서, 제1 트랜잭션의 충돌 검출 결과가 적어도 2개의 동작 명령의 충돌 검출 결과에 따라 획득된다. 적어도 2개의 동작 명령의 충돌 검출 결과들은 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령의 검출 결과 및 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령의 검출 결과를 적어도 포함한다. 본 발명의 본 실시예에서, 제1 트랜잭션의 동작 명령 A1은 제1 메모리 영역(32)에 액세스할 필요가 있기 때문에, 제1 트랜잭션의 동작 명령들 A2 및 A3은 제2 메모리 영역(34)에 액세스할 필요가 있다. 충돌 검출이 제1 메모리 영역(32)의 제1 검출 정책을 사용하여 제1 트랜잭션의 동작 명령 A1에 대해 그리고 제2 메모리 영역(34)의 제2 검출 정책을 사용하여 제1 트랜잭션의 동작 명령들 A2 및 A3에 대해 실행된 후에, 단계 220에서, 메모리 제어기(20)는 동작 명령들 A1, A2, 및 A3의 충돌 검출 결과들에 따라 제1 트랜잭션의 충돌 검출 결과를 획득할 수 있다.
구체적으로, 제1 트랜잭션의 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스와 동일한 것으로 검출되면, 제1 트랜잭션은 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정된다. 제1 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들이 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스와 상이한 것으로 검출되면, 제1 트랜잭션은 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정된다. 예를 들어, 동작 명령들 A1, A2, 및 A3 중 어느 하나의 충돌 검출 결과가 충돌을 나타내면, 제1 트랜잭션은 컴퓨터 시스템(100)에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌한다고 결정된다. 동작 명령들 A1, A2, 및 A3의 충돌 검출 결과들 모두가 충돌을 나타내지 않으면, 제1 트랜잭션은 컴퓨터 시스템(100)에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌하지 않는다고 결정된다.
본 기술 분야의 통상의 기술자는 충돌 검출이 제1 트랜잭션에 대해 실행된 후에, 제1 트랜잭션의 검출 결과에 따라, 제1 트랜잭션을 즉시 실행할지를 결정할 수 있다는 것을 알 수 있다. 예를 들어, 제1 트랜잭션의 충돌 검출 결과가 충돌을 나타내면, 제1 트랜잭션은 제1 트랜잭션과 충돌하는 또 하나의 트랜잭션이 완료된 후에만 실행될 필요가 있다. 예를 들어, 시스템은 제1 트랜잭션이 시작되지 않은 상태로 롤백될 수 있다. 제1 트랜잭션의 충돌 검출 결과가 충돌을 나타내지 않으면, 그것은 제1 트랜잭션이 시스템에 의해 실행되고 있는 트랜잭션과 동시에 실행될 수 있다는 것을 나타낸다. 이 방식에 따라, 제1 트랜잭션의 동작 명령들 A1, A2, 및 A3이 즉각 실행될 수 있다. 그러므로, 동작 명령들 A1, A2, 및 A3에 따라, 데이터가 메모리(30) 내로 기입될 수 있거나 데이터가 메모리(30)로부터 판독될 수 있다.
실제 응용에서, 제1 트랜잭션이 컴퓨터 시스템(100)에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌하지 않는다고 결정될 때, Addr_A1의 해시 값이 제1 블룸 필터의 어드레스 집합을 업데이트하기 위해, 제1 블룸 필터에 부가될 수 있어서, 충돌 검출이 제1 메모리 영역(32)에 액세스할 후속하는 동작 명령에 대해, 제1 블룸 필터의 업데이트된 어드레스 집합을 사용하여 수행된다는 것을 이해할 수 있다. 또한, Addr_A2의 해시 값 및 Addr_A3의 해시 값이 제2 블룸 필터의 어드레스 집합을 업데이트하기 위해, 제2 블룸 필터에 더 부가될 수 있어서, 충돌 검출이 제2 메모리 영역(34)에 액세스할 후속하는 동작 명령에 대해, 제2 블룸 필터의 업데이트된 어드레스 집합을 사용하여 수행된다.
또 하나의 경우에서, 본 발명의 본 실시예에서, 메모리(30)는 2개보다 많은 메모리 영역으로 더 분할될 수 있고, 제1 트랜잭션은 동작 명령들 A1, A2, 및 A3에 부가하여 또 하나의 동작 명령을 포함할 수 있다는 것을 이해할 수 있다. 예를 들어, 도 3b에 도시한 바와 같이, 제1 트랜잭션은 동작 명령들 A1, A2, A3, 및 A4를 포함할 수 있고, 메모리(30)는 제1 메모리 영역(32), 제2 메모리 영역(34), 및 제3 메모리 영역(36)으로 분할될 수 있다. 제1 검출 정책은 제1 메모리 영역(32)에 대해 설정되고, 제2 검출 정책은 제2 메모리 영역(34)에 대해 설정되고, 제3 검출 정책이 제3 메모리 영역(36)에 대해 설정된다. 모든 검출 정책들은 상이한 검출 입도들을 포함한다. 충돌 검출이 제1 트랜잭션에 대해 실행될 때, 제1 검출 정책이 동작 명령 A1에 대해 충돌 검출을 실행하기 위해 사용될 수 있고, 제2 검출 정책이 동작 명령들 A2 및 A3에 대해 충돌 검출을 실행하기 위해 사용되고, 제3 검출 정책이 동작 명령 A4에 대해 충돌 검출을 실행하기 위해 사용되고, 제1 트랜잭션의 충돌 검출 결과가 동작 명령들 A1, A2, A3, 및 A4의 충돌 검출 결과들에 따라 획득된다.
본 발명의 본 실시예에서 제공된 트랜잭션 충돌을 검출하는 방법에서, 동일한 트랜잭션의 상이한 동작 명령들에 의해 액세스되는 메모리 영역들이 상이한 것에 따라, 상이한 검출 정책들이 검출을 수행하기 위해 동일한 트랜잭션의 상이한 동작 명령들을 위해 사용되고, 트랜잭션의 충돌 검출 결과가 동일한 트랜잭션의 모든 동작 명령들의 충돌 검출 결과들에 따라 결정된다. 그러므로, 충돌 검출을 구현하는 시스템에 의해 이루어지는 검출의 정확성과 시스템 리소스 소비 간의 균형이 구현될 수 있으므로, 시스템 리소스 소비를 감소시키면서 충돌 검출의 정확성이 제공될 수 있다.
도 2에 도시한 실시예에서 제공된 충돌을 검출하는 방법에 기초하여, 본 발명의 본 실시예는 도 4에 도시한 충돌을 검출하는 방법을 더 포함할 수 있다. 도 4는 본 발명의 실시예에 따른 충돌을 검출하는 또 하나의 방법의 개략 플로우차트이다. 도 4에 도시한 바와 같이, 방법은 도 2에 도시한 충돌을 검출하는 방법에 기초하여 다음의 단계들을 더 포함할 수 있다.
단계 400에서, 메모리 제어기(20)는 제2 트랜잭션의 적어도 2개의 동작 명령을 수신하고, 여기서 제2 트랜잭션의 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있다. 예를 들어, 도 3c에 도시한 바와 같이, 제2 트랜잭션은 동작 명령들 B1 및 B2를 포함하고, 동작 명령 B1은 Addr_B1을 갖고 있고, 동작 명령 B2는 Addr_B2를 갖고 있다.
단계 405에서, 메모리 제어기(20)는 제2 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들에 따라, 제2 트랜잭션의 적어도 2개의 동작 명령이 제1 메모리 영역에 액세스할 것이라고 결정한다. 예를 들어, 도 3c에 도시한 바와 같이, 메모리 제어기(20)는 Addr_B1 및 Addr_B2에 따라, 제2 트랜잭션의 동작 명령들 B1 및 B2 모두가 제1 메모리 영역(32)에 액세스할 것이라고 결정할 수 있다.
단계 410에서, 메모리 제어기(20)는 제1 메모리 영역의 제1 검출 정책에 따라 제2 트랜잭션의 적어도 2개의 동작 명령에 대해 충돌 검출을 실행한다. 제1 검출 정책이 제1 메모리 영역에 대해 설정되기 때문에, 메모리 제어기(20)는 제1 검출 정책에 따라 제2 트랜잭션의 동작 명령들 B1 및 B2에 대해 충돌 검출을 실행할 수 있다. 본 단계에서의 충돌을 검출하는 방법은 도 2에 도시한 방법의 단계 210과 유사하다. 상세들에 대해서는, 단계 210의 설명을 참조할 수 있다.
단계 410에서, 메모리 제어기(20)는 제2 트랜잭션의 적어도 2개의 동작 명령의 검출 결과들에 따라 제2 트랜잭션의 충돌 검출 결과를 획득한다. 예를 들어, 메모리 제어기는 동작 명령 B1 및 동작 명령 B2의 검출 결과들에 따라 제2 트랜잭션의 충돌 검출 결과를 획득할 수 있다. 구체적으로, 동작 명령 B1 및 동작 명령 B2의 검출 결과들이 둘 다 충돌을 나타내지 않으면, 제2 트랜잭션은 컴퓨터 시스템에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌하지 않고, 제2 트랜잭션이 실행되고 있는 또 하나의 트랜잭션과 동시에 실행될 수 있다고 결정된다. 동작 명령 B1 및 동작 명령 B2의 검출 결과들 중 하나의 동작 명령의 검출 결과가 충돌을 나타내면, 제2 트랜잭션은 컴퓨터 시스템에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌하고, 제2 트랜잭션이 제2 트랜잭션과 충돌하는 트랜잭션이 완료된 후에만 실행될 필요가 있다고 결정된다.
또 다른 경우에서, 도 2 및 도 4에 도시한 방법들에 기초하여, 본 발명의 본 실시예는 도 5에 도시한 충돌을 검출하는 방법을 더 포함할 수 있다. 도 5는 본 발명의 실시예에 따른 충돌을 검출하는 또 하나의 방법의 개략 플로우차트이다. 다음에 도 3d를 참조하여 도 5를 설명한다. 도 5에 도시한 바와 같이, 도 2 및 도 4에 도시한 충돌을 검출하는 방법들에 기초하여, 방법은 다음의 단계들을 더 포함할 수 있다.
단계 500에서, 메모리 제어기(20)는 제3 트랜잭션의 적어도 2개의 동작 명령을 수신하고, 여기서, 제3 트랜잭션의 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있다. 예를 들어, 도 3d에 도시한 바와 같이, 제3 트랜잭션은 동작 명령들 C1, C2, 및 C3을 포함하고, 동작 명령 C1은 Addr_C1을 갖고 있고, 동작 명령 C2는 Addr_C2를 갖고 있고, 동작 명령 C3은 Addr_C3을 갖고 있다.
단계 505에서, 메모리 제어기(20)는 제3 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들에 따라, 제3 트랜잭션의 적어도 2개의 동작 명령이 제2 메모리 영역에 액세스할 것이라고 결정한다. 예를 들어, 도 3d에 도시한 시나리오에서, 메모리 제어기(20)는 Addr_C1, Addr_C2, 및 Addr_C3에 따라, 동작 명령들 C1, C2, 및 C3 모두가 제2 메모리 영역(34)에 액세스할 필요가 있다고 결정할 수 있다.
단계 510에서, 메모리 제어기(20)는 제2 메모리 영역의 제2 검출 정책에 따라, 제3 트랜잭션의 적어도 2개의 동작 명령에 대해 충돌 검출을 실행한다. 제2 검출 정책이 제2 메모리 영역에 대해 설정되기 때문에, 메모리 제어기(20)는 제2 검출 정책에 따라 제3 트랜잭션의 동작 명령들 C1, C2, 및 C3에 대해 충돌 검출을 실행할 수 있다. 본 단계에서의 충돌을 검출하는 방법은 도 2에 도시한 방법의 단계 210과 유사하다. 상세들에 대해서는, 단계 210의 설명을 참조할 수 있다.
단계 515에서, 메모리 제어기(20)는 제3 트랜잭션의 적어도 2개의 동작 명령의 검출 결과들에 따라 제3 트랜잭션의 충돌 검출 결과를 획득한다. 예를 들어, 메모리 제어기(20)는 동작 명령들 C1, C2, 및 C3의 검출 결과들에 따라 제3 트랜잭션의 충돌 검출 결과를 획득할 수 있다. 구체적으로, 동작 명령들 C1, C2, 및 C3의 검출 결과들 모두가 충돌을 나타내지 않으면, 제3 트랜잭션은 컴퓨터 시스템에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌하지 않고, 제3 트랜잭션은 실행되고 있는 또 하나의 트랜잭션과 동시에 실행될 수 있다고 결정된다. 동작 명령들 C1, C2, 및 C3의 검출 결과들 중 하나의 동작 명령의 검출 결과가 충돌을 나타내면, 제3 트랜잭션은 컴퓨터 시스템에 의해 실행되고 있는 또 하나의 트랜잭션과 충돌하고, 제3 트랜잭션이 제3 트랜잭션과 충돌하는 트랜잭션이 완료된 후에만 실행될 필요가 있다고 결정된다.
본 발명의 본 실시예에서 충돌을 검출하는 방법에서, 상이한 검출 입도들의 검출 정책들이 상이한 메모리 영역들에 대해 설정될 수 있고, 상이한 트랜잭션들의 동작 명령들에 대해 충돌 검출을 수행하기 위해 사용될 필요가 있는 검출 정책들이 상이한 트랜잭션들의 동작 명령들에 의해 액세스될 메모리 영역들에 따라 결정될 수 있다. 그러므로, 검출 정책이 특정한 액세스 요건에 따라 동적으로 선택될 수 있고, 보다 신축성있는 구현을 달성한다. 또한, 충돌 검출을 구현하는 시스템에 의해 이루어지는 검출의 정확성과 시스템 리소스 소비 간의 균형이 구현될 수 있으므로, 시스템 리소스 소비를 감소시키면서 충돌 검출의 정확성이 개선될 수 있다.
도 6은 본 발명의 실시예에 따른 트랜잭션 충돌을 검출하는 장치(60)이다. 트랜잭션 충돌을 검출하는 장치(60)는 도 1에 도시한 컴퓨터 시스템에 적용될 수 있다. 도 6에 도시한 바와 같이, 장치는 수신 모듈(600), 결정 모듈(605), 검출 모듈(610), 및 처리 모듈(615)을 포함할 수 있다. 수신 모듈(600)은 제1 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 구성되고, 여기서 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있다. 결정 모듈(605)은 적어도 2개의 동작 명령 내의 어드레스들에 따라, 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하도록 구성된다. 검출 모듈(610)은 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고, 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하도록 구성된다. 처리 모듈(615)은 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 제1 트랜잭션의 충돌 검출 결과를 획득하도록 구성되고, 여기서, 적어도 2개의 동작 명령의 충돌 검출 결과들은 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령의 검출 결과 및 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령의 검출 결과를 적어도 포함한다.
구체적으로, 한 경우에, 검출 모듈(610)은 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하기 위해 제1 메모리 영역에 대해 설정된 제1 블룸 필터 블룸 필터를 사용하도록 구체적으로 구성된다. 제1 블룸 필터는 컴퓨터 시스템에 의해 실행되고 있고 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 여기서 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위는 제1 검출 정책의 검출 입도에 따라 결정된다. 또 하나의 경우에, 검출 모듈(610)은 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하기 위해 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하도록 구체적으로 더 구성된다. 제2 블룸 필터는 컴퓨터 시스템에 의해 실행되고 있고 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 여기서 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위는 제2 검출 정책의 검출 입도에 따라 결정된다. 제2 검출 정책의 검출 입도는 제1 검출 정책의 검출 입도와 상이하다.
실제 응용에서, 검출 모듈(610)이 제1 트랜잭션의 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일하다고 검출하면, 처리 모듈(615)은 제1 트랜잭션이 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정한다. 검출 모듈(610)이 제1 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들이 속하는 어드레스 범위가 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이하다고 검출하면, 처리 모듈(615)은 제1 트랜잭션이 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정한다.
또 다른 경우에서, 수신 모듈(600)은 제2 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 더 구성되고, 여기서 제2 트랜잭션의 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있고; 결정 모듈(605)은 제2 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들에 따라, 제2 트랜잭션의 적어도 2개의 동작 명령이 제1 메모리 영역에 액세스할 것이라고 결정하도록 더 구성되고; 검출 모듈(610)은 제1 메모리 영역의 제1 검출 정책에 따라, 제2 트랜잭션의 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하도록 더 구성되고; 처리 모듈(615)은 제2 트랜잭션의 적어도 2개의 동작 명령의 검출 결과들에 따라 제2 트랜잭션의 충돌 검출 결과를 획득하도록 더 구성된다.
또 다른 경우에서, 수신 모듈(600)은 제3 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 더 구성되고, 여기서 제3 트랜잭션의 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있고; 결정 모듈(605)은 제3 트랜잭션의 적어도 2개의 동작 명령 내의 어드레스들에 따라, 제3 트랜잭션의 적어도 2개의 동작 명령이 제2 메모리 영역에 액세스할 것이라고 결정하도록 더 구성되고; 검출 모듈(610)은 제2 메모리 영역의 제2 검출 정책에 따라, 제3 트랜잭션의 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하도록 더 구성되고; 처리 모듈(615)은 제3 트랜잭션의 적어도 2개의 동작 명령의 검출 결과들에 따라 제3 트랜잭션의 충돌 검출 결과를 획득하도록 더 구성된다.
본 발명의 본 실시예에서 제공된 충돌을 검출하는 장치(60)는 도 2, 도 4, 및 도 5의 실시예들에서 설명된 충돌을 검출하는 방법들을 실행할 수 있다. 각각의 모듈의 기능의 상세한 설명에 대해서는, 방법 실시예들의 설명을 참조할 수 있고, 상세들은 여기서 설명되지 않는다.
도 6에 도시한 실시예는 단지 예라는 것을 이해할 수 있다. 예를 들어, 모듈 분할은 단지 논리적 기능 분할이고 실제 구현에서 다른 분할일 수 있다. 예를 들어, 복수의 모듈 또는 소자는 또 하나의 디바이스로 조합 또는 통합될 수 있거나, 일부 특징들은 무시되거나 수행되지 않을 수 있다. 또한, 도시된 또는 논의된 상호 결합들 또는 직접적 결합들 또는 통신 접속들은 일부 통신 인터페이스들을 사용하여 구현될 수 있다. 모듈들 간의 간접적 결합들 또는 통신 접속들은 전자적, 기계적, 또는 다른 형태들로 구현될 수 있다.
별도의 부분들로서 설명된 모듈들은 물리적으로 분리되거나 되지 않을 수 있고, 모듈들로서 표시된 부분들은 물리적 유닛들이거나 아닐 수 있고, 한 위치에 배치될 수 있거나, 복수의 네트워크 유닛 상에 분배될 수 있다. 모듈들 중 일부 또는 전부는 실시예들의 해결책들의 목적들을 달성하기 위해 실제 필요들에 따라 선택될 수 있다.
본 발명의 실시예는 프로그램 코드를 저장하는 컴퓨터 판독가능 저장 매체를 포함하는, 데이터 처리를 위한 컴퓨터 프로그램 제품을 더 제공하고, 여기서 프로그램 코드에 포함된 명령어는 전술한 방법 실시예들 중 어느 하나에서 설명된 방법 과정을 실행하기 위해 사용된다. 본 기술 분야의 통상의 기술자는 전술한 저장 매체는 USB 플래시 드라이브, 착탈가능 하드 디스크, 자기 디스크, 광 디스크, 랜덤 액세스 메모리(Random-Access Memory, RAM), 고상 디스크(Solid State Disk, SSD), 또는 비휘발성 메모리(non-volatile memory)와 같은, 프로그램 코드를 저장할 수 있는 임의의 비일시적(non-transitory) 머신 판독가능 매체를 포함할 수 있다는 것을 이해할 수 있다.
본원에서 제공되는 실시예들은 단지 예시적인 것이라는 점에 주목하여야 한다. 본 기술 분야의 통상의 기술자는 설명의 편의성 및 간결성을 위해, 전술한 실시예들에서, 실시예들이 상이한 양태들을 강조하고, 일 실시예에서 상세하게 설명되지 않은 부분에 대해서는, 다른 실시예의 관련 설명을 참조할 수 있다는 것을 명확하게 알 수 있다. 본 발명의 실시예들, 청구범위, 및 첨부 도면에서 개시된 특징들은 독립적으로 존재할 수도 있거나, 조합하여 존재할 수도 있다. 본 발명의 실시예들에서 하드웨어 형태로 기술된 특징들은 소프트웨어에 의해 실행될 수 있으며, 그 반대로도 가능하다. 이것은 여기서 제한되지 않는다.

Claims (15)

  1. 트랜잭션 충돌(transaction conflict)을 검출하는 방법으로서, 상기 방법은 메모리가 비휘발성 메모리 NVM인 컴퓨터 시스템에 적용되고; 상기 메모리는 적어도 2개의 메모리 영역을 포함하고; 상기 적어도 2개의 메모리 영역은 상이한 검출 정책(detection policy)들을 갖고; 상기 방법은 메모리 제어기에 의해 실행되고; 상기 방법은
    제1 트랜잭션의 적어도 2개의 동작 명령(operation instruction)을 수신하는 단계 - 상기 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하는 단계;
    상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계;
    상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계; 및
    상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하는 단계 - 상기 적어도 2개의 동작 명령의 상기 충돌 검출 결과들은 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과 및 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과를 적어도 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하는 단계는
    상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정하는 단계; 또는
    상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들이 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정하는 단계를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계는
    상기 제1 메모리 영역에 대해 설정된 제1 블룸 필터(bloom filter) 블룸 필터를 사용하여, 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하는 단계를 포함하고, 상기 제1 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값(hash value)을 포함하고, 상기 제1 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제1 검출 정책의 검출 입도(detection granularity)에 의해 결정되고;
    상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하는 단계는
    상기 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하여, 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하는 단계를 포함하고, 상기 제2 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고; 상기 제2 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제2 검출 정책의 검출 입도에 의해 결정되고; 상기 제2 검출 정책의 검출 입도는 상기 제1 검출 정책의 검출 입도와 상이한 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    제2 트랜잭션의 적어도 2개의 동작 명령을 수신하는 단계 - 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령이 상기 제1 메모리 영역에 액세스할 것이라고 결정하는 단계;
    상기 제1 메모리 영역의 상기 제1 검출 정책에 따라 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하는 단계; 및
    상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령의 검출 결과들에 따라 상기 제2 트랜잭션의 충돌 검출 결과를 획득하는 단계를 더 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    제3 트랜잭션의 적어도 2개의 동작 명령을 수신하는 단계 - 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령이 상기 제2 메모리 영역에 액세스할 것이라고 결정하는 단계;
    상기 제2 메모리 영역의 상기 제2 검출 정책에 따라 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하는 단계; 및
    상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령의 검출 결과들에 따라 상기 제3 트랜잭션의 충돌 검출 결과를 획득하는 단계를 더 포함하는 방법.
  6. 컴퓨터 시스템으로서,
    메모리 제어기에 제1 트랜잭션의 적어도 2개의 동작 명령을 보내도록 구성된 프로세서;
    데이터를 저장하도록 구성된 메모리 - 상기 메모리는 비휘발성 메모리이고, 상기 메모리는 적어도 2개의 메모리 영역을 포함하고, 상기 적어도 2개의 메모리 영역은 상이한 검출 정책들을 가짐 - ; 및
    상기 메모리 제어기
    를 포함하고, 상기 메모리 제어기는
    상기 프로세서에 의해 전송된 상기 제1 트랜잭션의 적어도 2개의 동작 명령을 수신하고 - 상기 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하고;
    상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고;
    상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고;
    상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하도록 구성되고, 상기 적어도 2개의 동작 명령의 상기 충돌 검출 결과들은 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과 및 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과를 적어도 포함하는 컴퓨터 시스템.
  7. 제6항에 있어서, 상기 메모리 제어기는
    상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정하고;
    상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들이 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정하도록 구체적으로 구성되는 컴퓨터 시스템.
  8. 제6항 또는 제7항에 있어서, 상기 메모리 제어기는
    상기 제1 메모리 영역에 대해 설정된 제1 블룸 필터 블룸 필터를 사용하여, 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하고 - 상기 제1 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 상기 제1 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제1 검출 정책의 검출 입도에 의해 결정됨 -;
    상기 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하여, 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하도록 - 상기 제2 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고; 상기 제2 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제2 검출 정책의 검출 입도에 의해 결정되고; 상기 제2 검출 정책의 검출 입도는 상기 제1 검출 정책의 검출 입도와 상이함 - 구체적으로 구성되는 컴퓨터 시스템.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 프로세서는 상기 메모리 제어기에 제2 트랜잭션의 적어도 2개의 동작 명령을 보내도록 더 구성되고;
    상기 메모리 제어기는
    상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령을 수신하고 - 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령이 상기 제1 메모리 영역에 액세스할 것이라고 결정하고;
    상기 제1 메모리 영역의 상기 제1 검출 정책에 따라 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하고;
    상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령의 검출 결과들에 따라 상기 제2 트랜잭션의 충돌 검출 결과를 획득하도록 더 구성되는 컴퓨터 시스템.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 프로세서는 상기 메모리 제어기에 제3 트랜잭션의 적어도 2개의 동작 명령을 보내도록 더 구성되고;
    상기 메모리 제어기는
    상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령을 수신하고 - 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령이 상기 제2 메모리 영역에 액세스할 것이라고 결정하고;
    상기 제2 메모리 영역의 상기 제2 검출 정책에 따라 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하고;
    상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령의 검출 결과들에 따라 상기 제3 트랜잭션의 충돌 검출 결과를 획득하도록 더 구성되는 방법.
  11. 충돌을 검출하는 장치로서, 상기 장치는 메모리가 비휘발성 메모리 NVM인 컴퓨터 시스템에 적용되고; 상기 메모리는 적어도 2개의 메모리 영역을 포함하고; 상기 적어도 2개의 메모리 영역은 상이한 검출 정책들을 갖고; 상기 장치는
    제1 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 구성된 수신 모듈 - 상기 제1 트랜잭션의 각각의 동작 명령은 어드레스를 갖고 있음 -;
    상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 적어도 2개의 동작 명령에 의해 액세스될 메모리 영역들을 결정하도록 구성된 결정 모듈;
    상기 적어도 2개의 메모리 영역 중 제1 메모리 영역의 제1 검출 정책에 따라, 상기 제1 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하고; 상기 적어도 2개의 메모리 영역 중 제2 메모리 영역의 제2 검출 정책에 따라, 상기 제2 메모리 영역에 액세스할 적어도 하나의 동작 명령에 대해 충돌 검출을 실행하도록 구성된 검출 모듈; 및
    상기 적어도 2개의 동작 명령의 충돌 검출 결과들에 따라 상기 제1 트랜잭션의 충돌 검출 결과를 획득하도록 구성된 처리 모듈 - 상기 적어도 2개의 동작 명령의 상기 충돌 검출 결과들은 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과 및 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령의 검출 결과를 적어도 포함함 -
    을 포함하는 장치.
  12. 제11항에 있어서, 상기 처리 모듈은
    상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 중 하나의 동작 명령 내의 어드레스가 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 동일한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌한다고 결정하고;
    상기 제1 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들이 속하는 어드레스 범위가 상기 컴퓨터 시스템에 의해 실행되고 있는 동작 명령 내의 어드레스가 속하는 어드레스 범위와 상이한 것으로 검출되면, 상기 제1 트랜잭션이 상기 컴퓨터 시스템에 의해 실행되고 있는 트랜잭션과 충돌하지 않는다고 결정하도록 구체적으로 구성되는 장치.
  13. 제11항 또는 제12항에 있어서, 상기 검출 모듈은
    상기 제1 메모리 영역에 대해 설정된 제1 블룸 필터 블룸 필터를 사용하여, 상기 제1 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하고 - 상기 제1 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제1 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고, 상기 제1 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제1 검출 정책의 검출 입도에 의해 결정됨 -;
    상기 제2 메모리 영역에 대해 설정된 제2 블룸 필터를 사용하여, 상기 제2 메모리 영역에 액세스할 상기 적어도 하나의 동작 명령 내의 어드레스에 대해 충돌 검출을 실행하도록 - 상기 제2 블룸 필터는 상기 컴퓨터 시스템에 의해 실행되고 있고 상기 제2 메모리 영역에 액세스하는 동작 명령 내의 어드레스가 속하는 어드레스 범위의 해시 값을 포함하고; 상기 제2 메모리 영역에 액세스하는 상기 동작 명령 내의 상기 어드레스가 속하는 상기 어드레스 범위는 상기 제2 검출 정책의 검출 입도에 의해 결정되고; 상기 제2 검출 정책의 검출 입도는 상기 제1 검출 정책의 검출 입도와 상이함 - 구체적으로 구성되는 장치.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 수신 모듈은 제2 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 더 구성되고, 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있고;
    상기 결정 모듈은 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령이 상기 제1 메모리 영역에 액세스할 것이라고 결정하도록 더 구성되고;
    상기 검출 모듈은 상기 제1 메모리 영역의 상기 제1 검출 정책에 따라 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하도록 더 구성되고;
    상기 처리 모듈은 상기 제2 트랜잭션의 상기 적어도 2개의 동작 명령의 검출 결과들에 따라 상기 제2 트랜잭션의 충돌 검출 결과를 획득하도록 더 구성되는 방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 수신 모듈은 제3 트랜잭션의 적어도 2개의 동작 명령을 수신하도록 더 구성되고, 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령의 각각의 동작 명령은 어드레스를 갖고 있고;
    상기 결정 모듈은 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령 내의 상기 어드레스들에 따라, 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령이 상기 제2 메모리 영역에 액세스할 것이라고 결정하도록 더 구성되고;
    상기 검출 모듈은 상기 제2 메모리 영역의 상기 제2 검출 정책에 따라 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령에 대해 충돌 검출을 실행하도록 더 구성되고;
    상기 처리 모듈은 상기 제3 트랜잭션의 상기 적어도 2개의 동작 명령의 검출 결과들에 따라 상기 제3 트랜잭션의 충돌 검출 결과를 획득하도록 더 구성되는 방법.
KR1020177021096A 2014-12-31 2014-12-31 트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템 KR20170100643A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/096043 WO2016106738A1 (zh) 2014-12-31 2014-12-31 事务冲突检测方法、装置及计算机系统

Publications (1)

Publication Number Publication Date
KR20170100643A true KR20170100643A (ko) 2017-09-04

Family

ID=56284008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177021096A KR20170100643A (ko) 2014-12-31 2014-12-31 트랜잭션 충돌 검출 방법과 장치 및 컴퓨터 시스템

Country Status (7)

Country Link
US (1) US20170300255A1 (ko)
EP (1) EP3232320A4 (ko)
JP (1) JP2018500697A (ko)
KR (1) KR20170100643A (ko)
CN (1) CN106662998A (ko)
BR (1) BR112017014359A2 (ko)
WO (1) WO2016106738A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102233B1 (en) * 2018-04-30 2018-10-16 Merck Sharp & Dohme Corp. Indexing for database privacy and anonymization
CN111490906B (zh) * 2020-06-29 2020-09-25 武汉思普崚技术有限公司 一种网关设备策略的分析方法、装置及可读存储介质
CN112685241A (zh) * 2021-01-27 2021-04-20 中国科学院微电子研究所 一种多粒度的内存检测方法、内存设备以及电子设备
CN114327263A (zh) * 2021-12-15 2022-04-12 中国航空工业集团公司成都飞机设计研究所 一种飞控计算机nvm多层次管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090025295A (ko) * 2006-06-30 2009-03-10 인텔 코오퍼레이션 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법
US20110179230A1 (en) * 2010-01-15 2011-07-21 Sun Microsystems, Inc. Method of read-set and write-set management by distinguishing between shared and non-shared memory regions
KR20130074726A (ko) * 2009-06-26 2013-07-04 인텔 코포레이션 언바운디드 트랜잭션 메모리 (utm) 시스템의 최적화
US20140040567A1 (en) * 2012-07-31 2014-02-06 Martin T. Pohlack TLB-Walk Controlled Abort Policy for Hardware Transactional Memory
KR101443930B1 (ko) * 2006-11-17 2014-09-23 마이크로소프트 코포레이션 Stm 시스템에서 트랜잭션들에 순서화를 적용하는 방법, 순서화에 의한 경쟁 관리를 제공하는 방법 및 컴퓨터 판독가능 매체

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060482B2 (en) * 2006-12-28 2011-11-15 Intel Corporation Efficient and consistent software transactional memory
US8321637B2 (en) * 2007-05-14 2012-11-27 International Business Machines Corporation Computing system with optimized support for transactional memory
US7941411B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Memory transaction grouping
US8180986B2 (en) * 2008-09-17 2012-05-15 Microsoft Corporation Memory conflict detection via mapping of the physical heap to control access permissions to the memory
CN101667211B (zh) * 2009-08-20 2011-04-20 华中科技大学 一种数据库中动态多粒度锁的事务冲突判决方法
CN101872299B (zh) * 2010-07-06 2013-05-01 浙江大学 冲突预测实现方法及所用冲突预测处理装置事务存储器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090025295A (ko) * 2006-06-30 2009-03-10 인텔 코오퍼레이션 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법
KR101443930B1 (ko) * 2006-11-17 2014-09-23 마이크로소프트 코포레이션 Stm 시스템에서 트랜잭션들에 순서화를 적용하는 방법, 순서화에 의한 경쟁 관리를 제공하는 방법 및 컴퓨터 판독가능 매체
KR20130074726A (ko) * 2009-06-26 2013-07-04 인텔 코포레이션 언바운디드 트랜잭션 메모리 (utm) 시스템의 최적화
US20110179230A1 (en) * 2010-01-15 2011-07-21 Sun Microsystems, Inc. Method of read-set and write-set management by distinguishing between shared and non-shared memory regions
US20140040567A1 (en) * 2012-07-31 2014-02-06 Martin T. Pohlack TLB-Walk Controlled Abort Policy for Hardware Transactional Memory

Also Published As

Publication number Publication date
EP3232320A1 (en) 2017-10-18
CN106662998A (zh) 2017-05-10
WO2016106738A1 (zh) 2016-07-07
JP2018500697A (ja) 2018-01-11
US20170300255A1 (en) 2017-10-19
EP3232320A4 (en) 2018-01-24
BR112017014359A2 (pt) 2018-04-10

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
TWI781439B (zh) 映射未經分類之記憶體存取至經分類之記憶體存取
EP3007070A1 (en) Memory system, memory access request processing method and computer system
US11494311B2 (en) Page table hooks to memory types
TWI764265B (zh) 用於將資料連結至記憶體命名空間的記憶體系統
KR20220060548A (ko) 데이터가 저장된 메모리 디바이스를 식별하기 위해 저장된 메타데이터 액세싱
US20170300255A1 (en) Method and Apparatus for Detecting Transaction Conflict and Computer System
JP2015026379A (ja) 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理
US10733101B2 (en) Processing node, computer system, and transaction conflict detection method
US10769074B2 (en) Computer memory content movement
EP3534265A1 (en) Memory access technique
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
CN116342365A (zh) 用于经由使用可用设备存储器扩展系统存储器的技术
US10185501B2 (en) Method and apparatus for pinning memory pages in a multi-level system memory
US10901914B2 (en) Method for writing multiple copies into storage device, and storage device
US20150212759A1 (en) Storage device with multiple processing units and data processing method
US20230359578A1 (en) Computing system including cxl switch, memory device and storage device and operating method thereof
US20230376238A1 (en) Computing system for managing distributed storage devices, and method of operating the same
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
US20230359567A1 (en) Storage device, computing device including storage device and memory device, and operating method of computing device
US20230359394A1 (en) Operating method of memory device for managing map data of each of plurality of storage devices, computing system including memory device, and operating method of computing system
US20230359566A1 (en) Computing system including memory device and storage device and operating method thereof
US20230359379A1 (en) Computing system generating map data, and method of operating the same
US10628328B2 (en) Methods and systems including a memory-side memory controller configured to interpret capabilities to provide a requested dataset to a central processing unit
KR101881038B1 (ko) 비휘발성 메모리에 저장된 메모리 매핑 파일의 원자적 업데이트 방법 및 제어 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application