분기 동시 수행을 이용한 단일 칩 멀티프로세서의 성능 개선

프로세서 성능향상에 일반적으로 이용되어 오던 명령어 수준의 병렬성은 이제 그 한계를 드러내고 있다. 명령어 수준의 병렬성을 이용하는데 장애가 되는 요인 중에 하나는 분기문에 의한 제어 흐름의 변화이다. 단일 칩 멀티프로세서는 쓰레드 수준의 병렬성을 이용하는 프로세서이다. 그러나 다중 쓰레드를 고려하지 않고 작성된 프로그램을 수행하는 경우에는 단일 칩 멀티프로세서의 성능을 최대한 사용할 수 없는 단점이 있다. 이와 같은 두 가지 성능 저하 요인을 극복하기 위해 본 논문에서는 다중 경로 수행 기법을 단일 칩 멀티프로세서에 적용한 분기 동시 수행 기법을 제안한다. 제안된 방법에서는 유휴 중인 프로세서를 이용하여 조건 분기의 두 흐름을 모두 수행하게 한다. 이를 통하여 분기문에 의한 제어 흐름이 끊기는 것을 막고 유휴시간을 줄여서 프로세서의 효율을 높일 수 있다. 시뮬레이션을 통하여 본 논문에서 제시한 분기 동시 수행의 효과를 분석한 결과 분기 동시 수행으로 약 20%의 유휴 시간이 감소하였고, 분기 예측 성공률은 최대 10% 향상 되었다. 전체적으로 일반적인 단일 칩 멀티프로세서에 비해 최대 39%의 성능 향상을 이루었고, 슈퍼스칼라 프로세서에 비해 최대 27%의 성능 향상을 이루었다.