성균관대학교 전자전기컴퓨터공학과 오영환, 박효진

Slides:



Advertisements
Similar presentations
MySeek 시스템 소개 ㈜마이씨크. 2 Contents MySeek System 개요 MySeek System 기능도 MySeek System 기능 MySeek System 특징 MySeek 검색기능 MySeek 활용시 장점 Reference Site.
Advertisements

뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금. 뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금 2 / 18 트랜잭션 개념과 문법 트랜잭션 개념  하나의 논리적 작업단위로 수행되는 일련의 작업  전부 되거나, 전부 안 되거나의.
더존다스 경영전략과 비젼 1 ERP 개발부문
Progress Sang-bok, Heo.
마이크로 컨트롤러 Microcontroller.
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
Vision System Lab, Sang-Hun Han

6주차:『GPU(CUDA) Programming』
Mar OSEK/VDK Woo Dong Kyun.
Project #2-2. Pintos User Program
AMBA BUS Protocol의 이해 (AMBA 2.0 Specification)
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
1.1 병렬처리의 한계와 가능성 1.2 병렬처리의 단위 1.3 병렬컴퓨터의 분류 1.4 병렬컴퓨터의 성능 척도
제 2장 컴퓨터 구조.
Ablecom Type-7 IVR 에이블컴 기술연구소.
마이크로프로세서(Microprocessor,µP)
K.System 모듈별 기능소개서                                                                                                                                                                       
기본 컴퓨터 프로그래밍 Lecture #6.
AWR DB 보고서 분석.
IBM System x3400 표준 제안서 Your Department Your name
7장 : 캐시와 메모리.
임베디드 하드웨어 Lecture #6.
프로세스 관리.
제 6 장 프로세스 동기화 (Process Synchronization)
14장. 병렬 프로세서 다루는 내용 병렬 프로세서로의 개념 병렬 처리와 병렬 컴퓨터 분류 배열 프로세서와 다중 프로세서의 개념
DSP와 TMS320F28X의 이해
DSP와 TMS320F28x의 이해.
6장. 기 억 장 치 Lecture #6.
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
컴퓨터 구조.
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
SunnyKwak (sunnykwak.egloos.com) 2005년 2월 1일
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Chapter 7. Pentium Processor
Computer Architecture
3주 컴퓨터구조.
트랜잭션(Transaction) I DBMS는 다수 사용자(Multi User) 용 대표적인 DB 응용
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
트랜잭션 처리(Transaction Processing)
Computer System Architecture
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제10장 파일 시스템 인터페이스(File System Interface)
제19강 병렬처리시스템 1.
Design of Flash-Based DBMS: An In-Page Logging Approach
Memory & Data Management.
Computer System Architecture
A Web-Based Little Man Computer Simulator
제 6 장 프로세스 동기화 (Process Synchronization)
3장 운영체제 2C 김주성.
학습목표 학습목표 본 장은 동시성 제어와 잠금(lock) 등 효과적인 트랜잭션 관리 기법 과 필요한 명령을 다룬다. 또한 데이터베이스의 장애에 대비하여 안전한 데이터의 관리를 위한 백업과 복원 기법, 서로 다른 DBMS 간이나 다른 서버 사이의 데이터 교환을 위한 데이터.
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
12장. 파일 시스템 구현.
Chapter 12 Memory Organization
10장. 회복과 병행 제어 트랜잭션 장애와 회복 병행 제어.
11장. 마이크로 프로세서 내부 구조.
Lecture #6 제5장 기억장치 (1).
23. Unix 시스템 커널. 개요 커널의 기본 서비스 커널의 특징 참고서적 프로세스 관리 장치 관리 파일 관리 가상 메모리
ERP 개념과 성공요인.
Microprocessor Design and Application 마이크로 프로세서 설계 및 응용 2017 Spring
Introduction to Computer System Spring, 2019
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
가상 기억장치 (Virtual Memory)
Presentation transcript:

2012.11.22 성균관대학교 전자전기컴퓨터공학과 오영환, 박효진 Transactional Memory Architectural Support for Lock-Free Data Structures 2012.11.22 성균관대학교 전자전기컴퓨터공학과 오영환, 박효진

목차 기존의 방법론(Lock, Lock-free 등) Transactional Memory(TM) 소개 Implementation of TM Simulation 결과 Conclusion & Limitation

Methodology of Keeping Data Consistency 1.1 페이지 제목 3 / 14 Methodology of Keeping Data Consistency Locking 공유 자원의 Consistency를 유지하기 위해 서로 다른 프로세스의 동시 접근을 배타적으로 막는 방식(Lock, Mutex, Semaphore 등) Lock-Free Algorithm SW 알고리즘을 이용하여 기존의 Locking에서 발생하는 문제점을 해결하기 위해 만들어졌으나, 오히려 알고리즘 자체의 overhead가 늘어나서 실용적으로 쓰이지 못함. Transactional Memory(TM) Lock-Free 알고리즘을 HW적으로 Support하여 overhead 를 낮추고 User 가 프로그램의 구현을 쉽게 하기 위해 고안됨.

Locking 의 문제점 Priority inversion 1.1 페이지 제목 4 / 14 Locking 의 문제점 Priority inversion 낮은 우선순위의 프로세스가 Lock을 잡고 있는 경우에 높은 우선순위의 프로세스에 의해 preempted되는 상황

Locking 의 문제점 Deadlock Convoying 서로 엇갈려서 자원을 요청, 선점하는 교착 상태 1.1 페이지 제목 5 / 14 Locking 의 문제점 자원1 자원2 Process - 2 Process - 1 요청 선점 Deadlock 서로 엇갈려서 자원을 요청, 선점하는 교착 상태 Convoying 하나의 공유자원에 대해 다수의 프로세스가 쌓여있는 현상

Lock-free Algorithm Lock-Free Algorithm이란? 1.1 페이지 제목 6 / 14 Lock-free Algorithm Lock-Free Algorithm이란? CAS 등의 Atomic한 Instruction을 사용하여 Mutex나 Semaphore 등의 Locking을 사용하지 않고, 공유자원의 consistency를 유지. 대표적인 예, CAS : Compare and Swap 주어진 메모리의 값을 읽어서 기존의 값과 Compare하고 일치하면, 메모리에 새로운 값을 Swap한다. 일치하지 않을 때는 성공할 때까지 다시 시도한다. Do{ if( *sharedValue == knownValue ) *sharedValue = newValue; } while(!CAS (&sharedValue, knownValue, newValue));

Transactional Memory Transactional Memory 처리 과정 1.1 페이지 제목 7 / 14 Transactional Memory Transactional Memory 처리 과정 공유 데이터를 접근하는 프로세스가 하나라는 가정하에 일단 Access함. TM 수행의 마지막 단계에서 다른 프로세서에 의해 공유 데이터가 바뀌었는지 확인한다. 프로세스 간의 충돌이 없었으면 바로 메모리에 적용(Commit)하고, 충돌이 있었다면 과정을 취소한(Abort) 뒤, 앞서의 과정을 다시 수행(Rollback)한다. 공유 데이터의 충돌 빈도가 실제론 매우 적을 것이라는 아이디어 (Simulation을 해보니 Rollback하는 경우는 드물다고 함. 오히려 Lock Variable을 관리하는데 쓸데없는 overhead가 발생한다.) Transactional Memory 와 Locking 방식의 차이점 Locking : 잠금 -> 처리 -> 해제 TM : 처리 -> 비교 -> 적용 or 롤백

HW Supported Instruction Set 1.1 페이지 제목 8 / 14 HW Supported Instruction Set 제공하는 명령어 LT : memory to Cache Read LTX : memory to Cache Read with flag setting (수정 예정) VALIDATE : 진행중인 Transaction이 Abort 되었는지 체크 ST : LT/LTX로 읽어들인 데이터를 수정 후 Cache 에 Write COMMIT : Transaction을 모두 수행한 뒤에 consistency 검사 후 TRUE 면 memory 에 write 하고, FALSE 면 ABORT ABORT : 진행중인 Transaction을 무효화 ( Cache 에 flag 만 invalid 해버리면 됨 )

Implementation of TM Cache Protocol TM 캐쉬 Actions 1.1 페이지 제목 9 / 14 Implementation of TM Cache Protocol Non-transactional OP 사용을 고려하여 두가지 타입의 Cache Line을 사용함. TM 캐쉬 Actions LT / LTX XCOMMIT XABORT DATA Commit EMPTY NORMAL DATA Abort NORMAR EMPTY DATA ST(DIRTY) NORMAR XABORT DATA

Implementation of TM : Processor Action 1.1 페이지 제목 10 / 14 Implementation of TM : Processor Action Processor Flag bit TACTIVE(TR in progress) TSTATUS(TR active or aborted) bit CPU에서 연산 시에 Cache Protocol과 상호작용, Consistency 유지 특징적인 점? Intel Haswell : HTM(Restricted), TR 영역을 대괄호로 묶어 표시 TR operation을 위한 몇 가지 HW supported instruction 제 (처음 TR op가 등장하는 구간부터 implicit하게 TR 영역으로) High level 언어에 ST, LTX 등의 Assembly 명령어를 inline으로 껴넣듯이 구현

Example : doubly linked list 1.1 페이지 제목 11 / 14 Example : doubly linked list Part of Doubly-Linked List Benchmark

Implementation of TM : Snoopy Cache 1.1 페이지 제목 12 / 14 Implementation of TM : Snoopy Cache 기반 기술 : Snoopy Cache (Shared memory, Bus system) Goodman’s SCP를 기본으로 Normal Cache 구현, TM Cache를 추가 TM Cache : One-way associative cache Normal Cache : Fully associative cache(상대적으로 작은 크기 때문)

Implementation of TM : Architecture 1.1 페이지 제목 13 / 14 Implementation of TM : Architecture 생각해볼 수 있는 구체적인 Architecture: P P P Cache : With Snooping! Memory(L2 $) Conflicting : Memory Transactional Memory 영역

Simulation Simulator Simulated Architecture 1.1 페이지 제목 14 / 14 Simulation Simulator Proteus simulator(Eric Brewer, Chris Dellarocas, MIT) Simulated Architecture Goodman’s Snoopy protocol with Bus-Based system Chaiken Directory-Based protocol Using 32 multi-processor Compared with various SW/HW schemes i.e. spin lock based(TTS), lock variable queing, LL/SC operation

1.1 페이지 제목 15 / 14 Simulation

Conclusion & Limitation 1.1 페이지 제목 16 / 14 Conclusion & Limitation 쉬우면서도 뛰어난 성능의 멀티 프로그래밍 다른 lock based 알고리즘에 비해 효율적인 시뮬레이션 결과 (Negative -> Positive. 관점을 변화하여 Memory Access를 대폭 줄임) 현재는 특정 영역을 Transaction이라 표시만 해두는 심플함 Transaction의 한계 크기 Cache Size에 영향을 받고, 큰 Transaction에 대해서는 오히려 성능 감소

Reference [1] 멀티코어 강의자료, 한환수 교수님 강의자료 [2]네이버 블로그, 백발의 개발자 1.1 페이지 제목 17 / 14 Reference [1] 멀티코어 강의자료, 한환수 교수님 강의자료 [2]네이버 블로그, 백발의 개발자 http://blog.naver.com/jjoommnn?Redirect=Log&logNo=130038310489 [3]티스토리 블로그, 김민장. 프로그래머가 몰랐던 멀티코어 이야기 저자 http://minjang.egloos.com/2907073 http://minjang.egloos.com/2313699

감사합니다