최근에 이르러, 고속의 3차원 그래픽 렌더링, 비디오 화일 포맷의 변환, 압축, 암호화 및 암호해독 처리를 위한 디지털 신호처리 시스템의 성능이 고도화가 요구된다. 현재 범용 컴퓨터 시스템을 구축할 때 성능을 높이기 위하여 멀티코어 프로세서가 널리 이용되고 있으므로, 디지털 신호처리 프로세서 역시 멀티코어 프로세서 구조를 채택하여 디지털 신호처리 시스템에서 높은 성능을 얻을 수가 있다. 본 논문에서는 코어의 유형 및 개수가 멀티코어 디지털 신호처리 프로세서의 성능에 미치는 영향을 분석하기 위하여, 2 개에서 16 개로 구성되는 멀티코어 디지털 신호처리 프로세서에 대하여, UTDSP 벤치마크를 입력으로 하는 모의실험을 수행하였다. 이 때, 멀티코어 디지털 신호처리 프로세서를 구성하는 단위 코어로서, 단순한 RISC형부터 다양한 명령어 윈도우의 크기를 갖는 순차 및 비순차 실행 수퍼스칼라 코어에 걸쳐 광범위한 모의실험을 수행하여 그 성능을 분석하였다.
최근에 이르러, 고속의 3차원 그래픽 렌더링, 비디오 화일 포맷의 변환, 압축, 암호화 및 암호해독 처리를 위한 디지털 신호처리 시스템의 성능이 고도화가 요구된다. 현재 범용 컴퓨터 시스템을 구축할 때 성능을 높이기 위하여 멀티코어 프로세서가 널리 이용되고 있으므로, 디지털 신호처리 프로세서 역시 멀티코어 프로세서 구조를 채택하여 디지털 신호처리 시스템에서 높은 성능을 얻을 수가 있다. 본 논문에서는 코어의 유형 및 개수가 멀티코어 디지털 신호처리 프로세서의 성능에 미치는 영향을 분석하기 위하여, 2 개에서 16 개로 구성되는 멀티코어 디지털 신호처리 프로세서에 대하여, UTDSP 벤치마크를 입력으로 하는 모의실험을 수행하였다. 이 때, 멀티코어 디지털 신호처리 프로세서를 구성하는 단위 코어로서, 단순한 RISC형부터 다양한 명령어 윈도우의 크기를 갖는 순차 및 비순차 실행 수퍼스칼라 코어에 걸쳐 광범위한 모의실험을 수행하여 그 성능을 분석하였다.
Due to the demand for high speed 3D graphic rendering, video file format conversion, compression, encryption and decryption technologies, the importance of digital signal processor system is growing rapidly. In order to satisfy the real-time constraints, high performance digital signal processor is ...
Due to the demand for high speed 3D graphic rendering, video file format conversion, compression, encryption and decryption technologies, the importance of digital signal processor system is growing rapidly. In order to satisfy the real-time constraints, high performance digital signal processor is required. Therefore, as in general purpose computer systems, digital signal processor should be designed as multicore architecture as well. Using UTDSP benchmarks as input, the trace-driven simulation has been performed and analyzed for the 2 to 16-core digital signal processor architectures with the cores from simple RISC to in-order and out-of-order superscalar processors for the various window sizes, extensively.
Due to the demand for high speed 3D graphic rendering, video file format conversion, compression, encryption and decryption technologies, the importance of digital signal processor system is growing rapidly. In order to satisfy the real-time constraints, high performance digital signal processor is required. Therefore, as in general purpose computer systems, digital signal processor should be designed as multicore architecture as well. Using UTDSP benchmarks as input, the trace-driven simulation has been performed and analyzed for the 2 to 16-core digital signal processor architectures with the cores from simple RISC to in-order and out-of-order superscalar processors for the various window sizes, extensively.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 단위 코어의 구조 및 개수가 디지털 신호처리 시스템의 성능에 미치는 영향을 분석하기 위하여, 멀티코어 디지털 신호처리 프로세서에 대한 모의실험을 수행하고 분석하였다. 이것을 위하여 2-코어에서 16-코어의 멀티코어 디지털 신호처리 프로세서에 대하여, UTDSP 벤치마크를 입력으로 모의실험을 수행하여 그 성능을 측정하였다[6].
가설 설정
명령어 캐쉬와 데이터 캐쉬는 각 코어마다 설치되는데, 공통적으로 64KB의 용량을 갖도록 설정하였으며, 2차 연관도(2-way set associativity) 방식을 통하여 접근된다. 그러나, 모든 코어에 의하여 공유되는 2 차 캐쉬는 충분한 용량으로 인하여 100 % 히트가 난다고 가정하였다.
제안 방법
그러나, 멀티코어 프로세서 시스템에서는 여러 코어 간의 캐쉬 일관성(Cache Coherency)을 위한 MESI 프로토콜의 적용으로 인하여 캐쉬의 데이터를 무효화하는 경우가 빈번히 발생한다. 따라서, 직접 캐쉬로는 적정한 캐쉬 히트율을 확보할 수가 없어서 멀티코어 프로세서의 성능 손실이 크므로, 본 논문에서 데이터 캐쉬 역시 명령어 캐쉬와 마찬가지로 2 차 이상의 연관도로 구성하였다.
명령어 캐쉬와 데이터 캐쉬는 각 코어마다 설치되는데, 공통적으로 64KB의 용량을 갖도록 설정하였으며, 2차 연관도(2-way set associativity) 방식을 통하여 접근된다. 그러나, 모든 코어에 의하여 공유되는 2 차 캐쉬는 충분한 용량으로 인하여 100 % 히트가 난다고 가정하였다.
본 논문에서는 RISC, 순차 및 비순차 수퍼스칼라로 구성되는 2 개부터 16 개까지의 멀티코어 디지털 신호처리 프로세서 아키텍처에 대하여, UTDSP 벤치마크를 입력으로 하여 성능을 측정하고 결과를 분석하였다. 그 결과, 1-코어와 16-코어 디지털 신호처리 프로세서의 성능을 비교하였을 때, 코어의 구조에 따라서 최저 8.
본 논문에서는 명령어 자취를 입력으로 하는 멀티코어 디지털 신호처리 아키텍쳐 시뮬레이터를 개발하여 모의실험에 이용하였다[9]. 멀티코어 디지털 신호처리 프로세서는 제 1 단계 명령어 자취의 발생, 제 2 단계 명령어 자취에 대한 멀티코어 디지털 신호처리 프로세서의 실행으로 나누어진다.
이것을 위하여 2-코어에서 16-코어의 멀티코어 디지털 신호처리 프로세서에 대하여, UTDSP 벤치마크를 입력으로 모의실험을 수행하여 그 성능을 측정하였다[6]. 이 때, 디지털 신호처리 프로세서 단위 코어를 간단한 RISC 형태로부터, 다양한 크기의 명령어 윈도우 (instruction window)로 구성되는 순차(in-order) 및 비순차 (out-of-order) 수퍼스칼라 프로세서 형태를 채택하였다.
본 논문에서는 단위 코어의 구조 및 개수가 디지털 신호처리 시스템의 성능에 미치는 영향을 분석하기 위하여, 멀티코어 디지털 신호처리 프로세서에 대한 모의실험을 수행하고 분석하였다. 이것을 위하여 2-코어에서 16-코어의 멀티코어 디지털 신호처리 프로세서에 대하여, UTDSP 벤치마크를 입력으로 모의실험을 수행하여 그 성능을 측정하였다[6]. 이 때, 디지털 신호처리 프로세서 단위 코어를 간단한 RISC 형태로부터, 다양한 크기의 명령어 윈도우 (instruction window)로 구성되는 순차(in-order) 및 비순차 (out-of-order) 수퍼스칼라 프로세서 형태를 채택하였다.
전역제어부에 의하여 N개의 멀티코어의 윈도우 공간에 한 개 또는 M 개의 명령어로 구성되는 태스크를 인출해서 채우고, 각 코어에 대하여 명령어를 실행하면서 종속성에 의하여 부여된 명령어의 타임스탬프가 충족되면 삭제한다. 이 과정은 코어 내부 및 코어 간의 레지스터 종속 및 메모리 종속 검사에 적용되며, 이 과정은 입력으로 주어진 벤치마크 프로그램의 모든 명령어가 소진될 때까지 반복된다.
대상 데이터
표 2에 모의실험에 이용된 멀티코어 프로세서 아키텍쳐의 사양을 나타내었다. 실험을 위한 디지털 신호처리 멀티코어 프로세서의 개수는 1 개, 2 개, 4 개, 8 개 및 16개를 대상으로 하였다. 각 코어는 RISC 방식 또는 수퍼스칼라 방식으로 운영되므로, 매 싸이클마다 1 개에서 N 개의의 명령어를 인출, 이슈, 실행 및 종료한다.
성능/효과
각 벤치마크 프로그램 별로 성능의 손실을 분석하면, histogram에서 명령어 캐쉬에 의하여 27.0 %의 최대 손실을 기록하였으며, FIR에서 데이터 캐쉬에 의하여 최대 18.8 % 성능의 하락을 가져왔다. 평균적으로 명령어 캐쉬와 데이터 캐쉬에 의하여 각각 11.
본 논문에서는 RISC, 순차 및 비순차 수퍼스칼라로 구성되는 2 개부터 16 개까지의 멀티코어 디지털 신호처리 프로세서 아키텍처에 대하여, UTDSP 벤치마크를 입력으로 하여 성능을 측정하고 결과를 분석하였다. 그 결과, 1-코어와 16-코어 디지털 신호처리 프로세서의 성능을 비교하였을 때, 코어의 구조에 따라서 최저 8.6 배에서 최고 19.5 배 성능의 향상을 얻을 수 있었다.
각 코어에서 매 싸이클마다 최대 한 개의 명령어를 인출하고 한 개의 명령어를 실행할 수 있다. 모의실험 결과에서 알 수 있듯이, 각 벤치마크 프로그램 별로 코어의 개수가 증가할수록, 성능이 증가함을 알 수 있다. 코어의 개수가 1 개에서 2 개로 증가하였을 때 평균 성능의 향상률은 2.
윈도우의 크기가 32일 때, 16-코어 디지털 신호처리 수퍼스칼라 프로세서는 1-코어일 때 0.7 IPC, 16-코어일 때 6.4 IPC를 기록하였으며, 16-코어 RISC 디지털 신호처리 프로세서에 비하여 평균 2.3 배의 성능 향상을 가져왔다. 또한, 1-코어 순차 디지털 신호처리 프로세서와 16-코어 순차 디지털 신호처리 프로세서의 성능을 비교하면 8.
4 %의 최대 성능 손실을 가져왔다. 전 벤치마크에 대하여 평균적으로 명령어 캐쉬 미스에 의하여 5.1 %, 데이터 캐쉬 미스에 의하여 4.3 %의 성능 손실을 가져왔으며, 태스크 예측 오류 및 태스크 캐쉬 미스에 의한 성능 손실은 각각 0.7 %와 1.3 %를 기록하였다.
코어의 개수가 증가할수록 성능이 평균 2.0 배 향상하였으며, 윈도우의 크기가 2 배가 될 때마다 성능이 1.2 배 향상되었다. 이것은 순차 실행의 경우보다 모두 높은 값으로서, 명령어 비순차 실행으로 인하여 명령어 수준 병렬성이 증가하였기 때문이다.
8 % 성능의 하락을 가져왔다. 평균적으로 명령어 캐쉬와 데이터 캐쉬에 의하여 각각 11.7 %와 9.3 %로 성능이 하락하였으며, 태스크 예측 오류 및 태스크 캐쉬 미스로 인한 성능의 하락은 1.7 %와 0.8 %로 낮았다. 이것은 수퍼스칼라 코어를 채택하여 RISC 코어의 경우보다 모두 증가한 값들이다.
한편, 비순차 실행에 의하여 평균적으로 명령어 캐쉬에 의하여 34.9 %, 데이터 캐쉬에 의하여 26.1 %의 성능 하락을 가져왔으며, 태스크 예측 오류 및 태스크 캐쉬 미스에 의한 성능은 각각 7.6 %와 6.3 % 하락하였다. 이 값들은 RISC 코어와 순차실행의 수퍼스칼라 코어를 채택한 경우보다 모두 증가하였다.
7 배 성능이 향상하였으며, 이것은 RISC의 경우와 같은 수준이다. 한편, 수퍼스칼라 프로세서 코어는 RISC 코어와 달리 다양한 크기의 윈도우를 가지는데, 윈도우의 크기가 2 배가 될 때마다 성능이 1.2 배 향상되었다.
한편, 전통적인 프로세서에서 데이터 캐쉬는 명령어 캐쉬와는 달리, 직접 캐쉬(Direct-Mapped Cache)로 구성해도 충분한 성능을 얻을 수가 있었다. 그러나, 멀티코어 프로세서 시스템에서는 여러 코어 간의 캐쉬 일관성(Cache Coherency)을 위한 MESI 프로토콜의 적용으로 인하여 캐쉬의 데이터를 무효화하는 경우가 빈번히 발생한다.
후속연구
추후로, 동질 코어(homogeneous core)가 아닌 비동질 코어(heterogeneous core)를 채택하는 비대칭 칩 멀티프로세서(asymmetric chip multiprocessor) 구조를 갖는 디지털 신호처리 프로세서에 대한 연구가 필요하다. 또한, 최신 경향인 코어 수 64개 이상의 매니코어 (many-core) 아키텍쳐로 구성된 디지털 신호처리 프로세서에 대한 연구 및 모의실험을 수행할 예정이다[11,12].
추후로, 동질 코어(homogeneous core)가 아닌 비동질 코어(heterogeneous core)를 채택하는 비대칭 칩 멀티프로세서(asymmetric chip multiprocessor) 구조를 갖는 디지털 신호처리 프로세서에 대한 연구가 필요하다. 또한, 최신 경향인 코어 수 64개 이상의 매니코어 (many-core) 아키텍쳐로 구성된 디지털 신호처리 프로세서에 대한 연구 및 모의실험을 수행할 예정이다[11,12].
질의응답
핵심어
질문
논문에서 추출한 답변
전역제어부는 어떤 기능을 담당하는가?
전역제어부 (global control unit)는 멀티코어 디지털 신호처리 프로세서 시스템에서 각 코어에 동적으로 태스크 (task)를 할당하고 실행이 완료되었을 때는 할당을 취소하며, 다음 태스크를 예측하는 기능을 담당한다[7]. 태스크는 RISC 형일 때 명령어 1 개로, 수퍼스칼라 형일 때는 한 개의 기본블럭에 해당하는 명령어 N 개로 구성된다.
디지털 신호처리 프로세서는 무엇인가?
디지털 신호처리 프로세서는 음성이나 영상 신호로부터 발생하는 일련의 데이터 샘플에 대하여 고속으로 반복적인 대량의 수치연산을 고성능, 저전력으로 수행하는 전용 마이크로 프로세서이다. 특히 최근에 이르러 그래픽 처리 분야에서 CUDA와 같은 GPGPU 형태를 이용하여 고속의 3 차원 그래픽의 렌더링, 비디오 화일 포맷의 변환, 압축, 암호화 및 암호해독 기능을 위하여 디지털 신호처리 프로세서 성능의 고도화가 요구되고 있다[1].
전역제어부가 태스크를 동적으로 예측하기 위하여 2단계 방법을 이용하는데 각 단계에서 무엇을 수행하는가?
전역제어부는 다음의 태스크를 동적으로 예측하기 위하여 2 단계 방법을 이용한다. 이것은 분기 예측 방법과 유사한데, 제 1 단계에서 최근 k 개의 태스크의 향방을 추적하고, 제 2 단계에서 카운터를 이용하여 각 태스크의 타겟이 선정된 회수를 기록해놓고, 특성에 맞추어 다음 분기 명령어의 예측에 이용하는 방법이다[8].
참고문헌 (12)
L. J. Karam, I. AlKamal, A. Gatherer, G. A. Frantz, D. V. Anderson, B. L. Evans, "Trends in Multi-core DSP Platforms," IEEE Signal Processing Magazine, pp. 1- 10, Nov. 2009
P. K. Dubey, G. B. Adams III, and M. J. Flynn, "Instruction Window Size Trade-Offs and Characterization of Program Parallelism," IEEE Transactions on Computers, vol. 43, pp. 431-442, Apr. 1994.
G. S. Sohi, S. E. Breach, and T. N. Vijaykumar, "Multiscalar Processors," Proceedings of the 22nd annual international symposium on Computer architecture, pp. 414-425, May 1995.
T-Y. Yeh and Y. N. Patt, "Alternative Implementations of Two-Level Adaptive Branch Prediction," in Proceedings of the 19th International Symposium on Computer Architecture, pp. 124-134, May 1992.
A. Rico, A. Duran. F. Cabarcas, Y. Etsion, A. Ramirex, and M. Valero, "Trace-driven Simulation of Multithreaded Applications," ISPASS, Apr. 2011.
T. Austin, E. Larson, and D. Ernest, "SimpleScalar : An Infrastructure for Computer System Modeling," Computer, vol. 35, no. 2, pp. 59-67, Feb. 2002.
I. Jeon, S. Kang, H. Yang, "Development of Security Quality Evaluate Basis and Measurement of Intrusion Prevention System," Journal of the Korea Academia-Industrial cooperation Society, v.11, no. 4, Apr. 2010.
D. K. Lee, J. H. Kwon, "Social Search Algorithm considering Recent Interests of User", Journal of Korean Institute of Information Technology, vol. 9, issue 4, pp. 187-194, Apr. 2011.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.