초록
SMT(Simultaneous Multi Threading)구조는 여러 개의 독립적인 쓰레드들로부터의 명령어들을 이용하여, 이슈 슬롯을 채울 수 있도록 하는 쓰레드 레벨 병렬 성을 사용함으로서, 결국 프로세서의 성능을 향상시킨다. 독립적인 여러 개의 준비된 쓰레드들을 갖는다는 것은 실행 유닛들이 무용의 상태로 남아 있는 가능성을 줄일 수 있다는 의미이며, 이러한 사항은 결국 프로세서의 효율성을 증가 시키게 된다. SMT 프로세서에서 그러한 이점을 이용하기 위해서는, 이슈 유닛은 서로 다른 쓰레드들로부터의 여러 명령어들 간의 흐름을 제어해서, 그러한 명령어들 사이에서 충돌이 일어나지 않도록 해야 하지만, 이러한 사실로 인해 SMT 프로세서의 이슈 로직은 매우 복잡해지게 된다. 따라서, 본 논문에서 제안된 SMT 구조는 순차적 이슈와 완료 방식을 채택하여, 복잡한 레지스터 리네이밍이나 재순차 버퍼 등을 사용할 필요가 없이 비교적 간단한 스코어보드 어레이만을 사용하는 이슈 구조를 사용할 수 있게 하였다, 그러나, 여전히 SMT용 스코어보드 구조는 일반적인 단일 쓰레드의 범용 프로세서의 경우보다는 훨씬 더 복잡하고 많은 비용이 소요된다. 본 논문은 ARM 기본의 순차적 SMT 아키텍처 상에서의 최적의 스코어보드메커니즘에 대한 구현을 제안한다.
SMT(Simultaneous Multi Threading) architecture uses TLP(Thread Level Parallelism) and increases processor throughput, such that issue slots can be filled with instructions from multiple independent threads. Having multiple ready threads reduces the probability that a functional unit is left idle, which increases processor efficiency. To utilize those advantages for the SMT processors, the issue unit must control the flow of instructions from different threads and not create conflicts among those instructions, which make the SMT issue logic extremely complex. Therefore, our SMT architecture, which is modeled in this paper, uses an in-order-issue and completion scheme, and therefore, can use a simple issue mechanism with a scoreboard already instead of using register renaming or a reorder buffer. However, an SMT scoreboarding mechanism is still more complex and costlier than that of a single threaded conventional processor. This paper proposes an optimal implementation of a scoreboarding mechanism for an ARM-based SMT architecture.