• 제목/요약/키워드: 공유 메모리 구조

검색결과 143건 처리시간 0.028초

GPGPU 프로그램의 자료경합 탐지기법을 위한 벤치마크 모음 (A Benchmark Suite for Data Race Detection Technique in GPGPU Progrmas)

  • 이건표;최으뜸;전용기
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2019년도 제59차 동계학술대회논문집 27권1호
    • /
    • pp.7-8
    • /
    • 2019
  • 자료경합은 두 개 이상의 스레드가 같은 공유메모리에 적절한 동기화 없이 접근하고, 적어도 한 개의 접근사건이 쓰기일 때 발생할 수 있는 동시성 오류이다. 자료경합은 프로그래머가 의도하지 않은 비결정적인 수행결과를 초래하여, 항공기 소프트웨어와 같은 고신뢰성이 요구되는 프로그램에서 치명적인 오류를 발생시켜 인적 물적 손해로 이어질 수 있다. 자료경합 탐지기법은 이러한 문제를 사전에 탐지하여 수정하는데 사용되어진다. 하지만 GPGPU 프로그램에서의 자료경합은 CPU 병행프로그램에서보다 복잡한 실행구조를 가지고 있어 스레드 및 메모리 계층, 스케줄링, 동기화 기법 등의 많은 변수가 존재한다. 이로 인해 실세계 프로그램에 자료경합 탐지기법을 적용하여 검증 시 이러한 변수들을 반영하여 실험하는데 많은 노력이 소요된다. 본 논문은 실세계 프로그램에서의 자료경합을 대표하는 4가지 패턴의 합성프로그램으로 이루어지고 실행 시 스레드 및 메모리 계층, 스레드 구조, 메모리 사용량 및 동기화 방안을 지정할 수 있는 벤치마크 모음을 제시한다.

  • PDF

SoC의 성능 향상을 위한 크로스바 스위치 온칩 버스 설계 (Design of Crossbar Switch On-chip Bus for Performance Improvement of SoC)

  • 허정범;류광기
    • 한국정보통신학회논문지
    • /
    • 제14권3호
    • /
    • pp.684-690
    • /
    • 2010
  • 기존에 사용되는 대부분의 SoC는 공유버스 구조를 가지고 있어, 병목현상이 발생하는 문제점을 가지고 있다. 이러한 문제점은 SoC의 내부의 IP 수가 많을수록, 전체적인 SoC의 성능을 저하시키게 되어, CPU 자체의 속도보다는 전체적인 통신 분배에 의해 SoC의 성능이 좌우 된다. 본 논문에서는 공유버스의 단점인 병목현상을 줄이고 SoC의 성능을 향상시키기 위해 크로스바 스위치버스 구조를 제안한다. 크로스바 스위치 버스는 마스터 모률 8개, 슬레이브 모듈 16개까지 연결이 가능하며, 다중 버스 채널구조로 되어 있어 병렬통신이 가능하다. 또한 각 16개의 슬레이브 인터페이스마다 우선순위 정보가 저장된 아비터가 내장되어 하나의 마스터가 슬레이브를 독점하는 것을 방지하는 것과 동시에 효율적인 통신을 지원한다. OpenRISC 프로세서, VGA/LCD 제어기, AC97 제어기, 디버그 인터페이스, 메모리 인터페이스로 구성되는 SoC 플랫폼의 WISHBONE 온칩 공유버스 구조와 크로스바 스위치 버스구조의 성능을 비교한 결과, 기존의 공유버스보다 26.58%의 성능이 향상되었다.

스레드를 이용한 함수 병렬성 추출 (Exploration of Functional Parallelism using threads)

  • 김현철;이성우;류시룡;유기영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (3)
    • /
    • pp.633-635
    • /
    • 2000
  • 본 논문에서는 프로그램을 루프 구조에 근거하여 계층적으로 표현한 HTG (Hierarchical Task Graph)의 복합 노드 태스크들을 공유 메모리 다중처리기 환경에서의 효율적 수행을 위한 새로운 스케쥴링 기법을 제안한다. 단일처리기의 멀티스레드 구조를 비롯한 여러 플랫폼에 적용하기 위해 자바의 스레드를 사용하여 구현하였으며, 기존의 HTG의 함수 병렬성을 위한 비티 벡터 알고리즘과 성능을 비교 분석하였다. 실험 결과에서 보듯이, 제안된 기법이 비트 벡트 방법에 비해 수행 시간 측면에서 효율적임을 알 수 있으며 또한, 좋은 부하 균형을 유지하였다.

  • PDF

병렬 디지털신호처리시스템의 설계와 성능분석 (Design and Performance Analysis of A Parallel Digtal Signal Processing System)

  • 문병표;박준석;오대식;전창호;박성주;이동호;오원천;한기택
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (3)
    • /
    • pp.724-726
    • /
    • 1998
  • 본 논문에서는 방대한 양의 데이터를 실시간으로 처리하기 위한 병렬 디지털 신호처리시스템을 제안한다. 버스와 메모리의 구조가 다른 네 가지 신호처리부 모델을 제안하고 그들의 성능을 분석한다. 신호처리부의 분석은 소나 알고리즘을 실행하는데 소요되는 하드웨어 지연시간과 버스 지연시간의 합을 척도로 한 성능 분석과 보드의 복잡도를 비교하는 방법을 통하여 이루어졌다. 성능분석한 결과, 지역 메모리와 공유 메모리를 함께 사용하는 모델이 가장 효율적인 것으로 나타났다.

  • PDF

GPGPU를 위한 공유 메모리 최적화 (Optimizing Shared Memory Accesses for GPGPU Computations)

  • 쟌 느앗 프엉;이명호;홍석원
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 추계학술발표대회
    • /
    • pp.197-199
    • /
    • 2012
  • 최근 GPU 의 뛰어난 부동 소수점 연산 능력을 활용하여 그래픽 이외에 다양한 응용 프로그램들의 병렬화 및 성능최적화가 활발하게 이루어지고 있다. 이러한 GPU 의 성능을 극대화하기 위해서는 메모리 계층구조 및 shared memory 를 비롯한 on-chip 메모리의 사용을 최적화하는 것이 필수적이다. 본 논문에서는 이러한 shared memory 의 사용을 최적화하기 위한 기법들을 제안하고, 이를 패턴 매칭 응용 프로그램에 적용하여 효용성을 검증한다.

동적 코드변환 기술을 이용한 소프트웨어 트랜잭션 메모리 기법 설계 (Design of Software Transactional Memory by Binary Translation)

  • 이동우;김지홍;엄영익
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 춘계학술발표대회
    • /
    • pp.226-229
    • /
    • 2010
  • 최근 프로세서가 코어 개수를 늘리는 구조로 발전함에 따라 병렬프로그래밍의 중요성이 더욱 강조되고 있다. 병렬프로그래밍에서 발생하는 공유자원에 대한 경쟁조건을 제어하기 위한 효율적인 방법으로 여러 가지 락-프리 동기화 기법이 제안되어 왔다. 그 중 소프트웨어 트랜잭션 메모리는 지금까지 하드웨어적인 방법과 소프트웨어적인 방법 등 여러 가지 방법으로 구현되었지만 여러 가지 하드웨어적인 제약과 기존의 소스코드를 수정해야 하는 문제점이 있다. 이러한 문제를 해결하기 위해 본 논문에서는 동적 코드 변환기술을 이용한 소프트웨어 트랜잭션 메모리 기법을 제안하고 기존 구현과 비교 평가하였다.

MMU가 없는 Thread기반 운영체제에서 스택 보호를 위한 메모리 관리 기법 (MMU-less Memory Management for Stack Protection in Thread-based Operating System)

  • 이영림;김영필;유혁
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (A)
    • /
    • pp.409-413
    • /
    • 2006
  • 현재 많은 센서 네트워크 운영체제에서는 메모리 제약 때문에 스레드 스택을 공유한다. 하지만 대부분의 대상 플랫폼에서는 MMU가 없어서 하드웨어적으로 스택 보호가 이루어지기 어렵다. 이러한 문제를 해결하기 위해 본 논문에서는 운영체제 바이너리 코드 안에 존재하는 스택 연산 명령어들을 스택 보호 기능을 가진 래퍼 함수호출로 바꾸어 주었다. 이 래퍼 함수는 스택의 오버플로우/언더플로우를 관리해 주고 오리지널 코드에 있던 명령어를 실행한 후 원래 실행 흐름으로 돌아가게 한다. 본 논문에서는 이러한 동작을 수행하는 Post-Compile Processing Tool의 구조와 세부 메커니즘을 제안한다. 이 툴은 직접 바이너리를 조작하므로 개발의 유연성을 살리고, 정적인 조작만 가하기 때문에 실행시간 오버헤드가 적다. 또한 임베디드 플랫폼 환경과 같이 하드웨어 자원의 제약이 있는 구조에 적합하다.

  • PDF

OFDM 시스템을 위한 radix-8/4/2 가변 FFT 프로세서의 설계 (Design of a Radix-8/4/2 variable FFT processor for OFDM systems)

  • 김영진;김형호;이현수
    • 디지털융복합연구
    • /
    • 제11권2호
    • /
    • pp.287-297
    • /
    • 2013
  • 본 논문은 OFDM 시스템을 위한 효율적인 가변길이 radix-8/4/2 FFT 구조를 제안하였다. radix-8/4/2 연산을 수행하기 위해서 제안한 FFT 프로세서는 shared memory 구조를 사용하여 하드웨어가 단순하고 적은 면적을 차지한다. 메모리 사이즈를 줄이고 데이터들 간의 충돌을 피하기 위해 효율적인 In-place 메모리 엑세스 방법을 제안한다. 또한 회전인자(twiddle factor)를 위한 ROM 기반의 lookup 테이블 방식을 대신하여 적은 면적을 차지하는 회전인자 발생기를 제안한다. 제안한 FFT 프로세서는 802.11a, 802.16a, DAB, DVB-T/H 그리고 xDSL에서 요구하는 모든 FFT 샘플링 포인트인 64, 256, 512, 1024, 2048, 4096 그리고 8192 포인트의 FFT 연산을 할 수 있다.

듀얼코어 임베디드 리눅스 시스템에서 코어간 세마포어 인터페이스 기능 설계 (Design for the Semaphore Interface Function of the Dual Core Embedded Linux System)

  • 정지성;이재기
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2018년도 추계학술발표대회
    • /
    • pp.97-100
    • /
    • 2018
  • 세마포어 처리문제는 프로세스간 메시지를 전송하거나 공유메모리를 통해 특정 데이터를 공유할 때 발생되는 문제로 공유된 자원에 여러 개의 프로세스가 동시에 접근하면 안되며, 단지 한번에 하나의 프로세서만 접근 가능하도록 하여야 한다. 세마포어 기본정책은 호출되는 코어에 생성되며, 다른 코어에서는 IPI를 통해 존재 여부를 확인한다. 동일 코어에서 접근 시 기존방식으로 사용한다. 본 논문에서는 서로 다른 코어 및 운영체제에서 다른 코어에서 접근할 때에는 IPI를 통해 존재 여부를 확인한 후 더미 세마포어 구조체를 생성하여 관련 정보를 유지하고 해당 요청을 처리해 주는 세마포어 인터페이스 기능 설계 방법을 제안한다. 제안하는 세마포어 인터페이스 기능 설계 방안은 멀티 태스킹 기술 구현으로 기존 코어가 가지고 있는 성능상의 문제를 해결해 준다.

멀티코어 CPU를 갖는 공유 메모리 구조의 대규모 병렬 유한요소 코드에 대한 설계 고려 사항 (Design Considerations on Large-scale Parallel Finite Element Code in Shared Memory Architecture with Multi-Core CPU)

  • 조정래;조근희
    • 한국전산구조공학회논문집
    • /
    • 제30권2호
    • /
    • pp.127-135
    • /
    • 2017
  • 멀티코어 CPU와 BLAS, LAPACK을 구현한 최적 수치라이브러리, 직접 희소 솔버의 대중화 등 PC나 워크스테이션 수준에서도 대규모 유한요소 모델을 해석할 수 있도록 컴퓨팅 환경이 급속도로 변화되었다. 이 논문에서는 멀티코어 CPU를 갖는 공유 메모리 구조에 대한 병렬 유한요소 프로그램 설계시 고려사항으로 (1) 최적화된 수치라이브러리의 사용, (2) 최신 직접 희소 솔버의 사용, (3) OpenMP를 이용한 병렬 요소 강성 행렬의 계산, (4) 희소행렬 저장방식의 일종인 triplet을 이용한 어셈블 기법 등을 제시하였다. 또한 대규모 수치모델을 통해 많은 시간이 소요되는 작업을 기준으로 병렬화 효과를 검토하였다.