Ⅰ. 서 론
반도체 제조 공정의 발달에 힘입어 서로 다른 기능을 수행하는 여러 컴포넌트들을 하나의 칩에 집적시키는 SoC(System on Chip)기술이 개발되어 회로설계에 널리 이용되고 있다[1-3]. 하나의 칩에 여러 가지의 기능이 집적화된 SoC 칩의 경우, 하나의 버스에 마스터, 아비터, 슬레이브 등이 연결된 버스 시스템이 필요하다. 다수의 마스터들이 하나의 버스를 동시에 이용하고자 하는 경우, 아비터에 의해 버스 이용 허가 신호를 받은 마스터들이 순서대로 버스를 이용하여 데이터를 슬레이브로 전송하거나, 슬레이브로부터 데이터를 수신하게 된다. 이를 위해, 아비터는 다수의 마스터들이 동시에 버스 이용을 요청할 때 우선 순위를 결정하게 되는데, 아비터의 우선 순위 결정 방식에 따라 칩의 성능이 달라지게 된다. 아비터에서 사용되는 우선 순위 결정 방식에는 Fixed Priority 방식과 Round Robin 방식, TDMA 방식, Lottery 방식 등이 있다[4-7].
Fixed Priority 방식은 다수의 마스터들에 대해 미리 정해진 우선 순위에 따라 버스 사용권을 주는 방식이다. 즉, 각각의 마스터에 대해 우선 순위를 프로세서, DSP, DMA1, DMA2의 순서로 1, 2, 3, 4 순위를 순차적으로 정해 놓고, 마스터들이 동시에 접근했을 경우, 우선 순위가 높은 마스터에게 버스 사용권을 주게 된다. 이러한 Fixed Priority 방식은 마스터가 처리하게 될 데이터의 특성의 고려 없이 단순히 마스터의 종류에 따라 우선 순위를 결정하기 때문에 데이터 처리 시간 측면에서 효율적이지 못하고, 우선 순위가 낮은 특정 마스터에 스타베이션(Starvation)이 발생될 수 있는 문제점이 있다. Round Robin 방식은 마스터의 버스 우선 순위를 시간에 따라서 다르게 변화시켜 버스 사용권을 골고루 주는 방식이다. 이러한 Round Robin 방식은 고정된 우선 순위없이 마스터에 할당된 시간 정보를 참조하여 우선 순위를 정하기 때문에 빨리 처리해야 할 중요한 특정 마스터 의 처리가 늦어지는 문제점이 있으며, 우선순위 없어 모든 마스터에게 균등하게 버스점유권을 부여하는 방식이기 때문에 마스터와 관계없이 버스 대역폭이 동일한 단점이 있다[8]. 본 논문에서는 각각의 마스터에서 버스대기 사이클을 카운트하여 일정 대기 사이클 이상이 된 마스터의 우선순위를 높여서 Fixed Priority 방식의 스타베이션 현상을 억제하는 대기 사이클 고려 버스중재 방식을 제안하고자 한다.
Ⅱ. 본 론
버스 아키텍처를 모델링하기 위해서 그림1과 같이 버스 내의 데이터전송 흐름도를 순서대로 나타내었다. 각각의 마스터(M1, M2 등)들은 동시에 버스 사용 요청(req.)을 할 수 있으며 아비터 AB에 의해서 선택된 마스터에게 버스사용을 허가(grant)한다.
사용허가를 받은 마스터는 해당 슬레이브에 데이터 전송을 하고, 슬레이브는 “ait”신호와 “esp”신호를 통해 마스터와 아비터에게 데이터 처리에 관한 응답을 한다. 이와 같은 싱글 버스 아키텍처를 모델링하기 위해 TLM(Transaction Level Model)을 통해 각각의 중재방식에 대한 성능을 검증하였다[8]. 그리고, 각각의 시뮬레이션에서 데이터 전송은 AMBA 버스아키텍처를 기준으로 Single Write, Single Read, Burst Write, Burst Read 네 가지 경우를 랜덤하게 처리하였으며, Burst Write와 Burst Read의 경우에는 Burst 4, 8, 16을 랜덤하게 처리하였다[9].
그림 2에 각각의 마스터에 따른 Fixed priority에서 데이터 전송 사이클이 나타나 있다. 마스터의 우선순위는 마스터 M1이 제일 크고 마스터 M1에서 마스터 M의 순서로 작아진다. M1의 전송량이 약 27만 사이클로 제일 크게 나타났으며 M6은 1만 사이클도 전송하지 못해 결국 M6은 스타베이션이 발생했음을 알 수 있다. 보다 구체적으로 Fixed Priority의 데이터 전송상태를 파악하기 위하여 그림 3과 같이 Single 데이터 전송량, Burst 데이터 전송량, 총 버스 요청사이클, 최대 버스 요청 사이클 등을 분석해 보았다.
그림 1.공용버스 내의 데이터전송 흐름도 Fig. 1 Data transaction flow in the internal shared bus
그림 2.Fixed Priority의 데이터 전송 사이클 Fig. 2 Data transaction cycle of Fixed Priority
그림 3.Fixed Priority 버스중재에서 (a) 총 싱글 사이클, (b) 총 버스트 사이클, (c)총 요청사이클, (d) 최대 요청 사이클 Fig. 3 (a) Tatal single cycle, (b) total burst cycle, (c) total request cycle and (d) max request cycle in the bus arbitration of Fixed Priority
본 TLM 모델에서는 Single과 Burst의 데이터 전송을 랜덤함수를 이용하여 50대 50으로 설정하였으며 실제로 각각의 마스터 별로 Single과 Burst에 따른 데이터 전송회수는 거의 비슷하게 나타난다. 그러나 Burst 전송의 경우 4, 8, 16 배의 데이터 전송량을 갖게 되어 결국 그림 3(a)와 그림3(b)의 데이터 전송량은 그림3(b)가 약 10배 정도 큰 값을 나타내고 있다. 그렇지만 각각의 마스터별 전송량 비율을 Single과 Burst가 거의 유사하게 나타나며 이 경우에도 마스터 M6은 스타베이션에 빠져서 데이터를 제대로 전송하지 못하고 있다. 결국 single과 burst에 대한 버스전송량의 유의차이는 없었다.
다음으로 그림 3(c)와 같이 데이터 버스 요청사이클을 분석해 보았는데 M1은 총 버스 요청사이클이 20만 사이클인데 반하여 M6의 버스 요청사이클은 100만이 넘어서 데이터가 사실상 전송되지 못하고 있음을 알 수 있다. 마스터가 버스 요청을 한 후로 실제로 데이터를 받을 때까지의 버스 요청 사이클 중 최대로 대기한 사이클을 그림3(d)와 같이 파악해 본 결과, 마스터 M6은 6000사이클 이상 걸렸음을 알 수 있다. 이상과 같이 마스터가 6개 있는 SoC 시스템에서 Fixed Priority 버스 중재방식의 전송 상태를 분석해 본 결과, 마스터의 수가 너무 많아서 우선 순위가 낮은 마스터는 제대로 데이터를 전송할 수 없는 구조라는 사실을 알 수 있다.
다음에는 Fixed Priority의 대안으로 제시되고 있는 Round Robin 버스 중재방식에서 마스터가 6개 있는 시스템의 데이터 전송상태를 파악해 보았다. 그림4(a)와 같이 마스터 별로 데이터 전송량이 거의 동일하게 나타났으며, 버스요청사이클, 최대 버스요청사이클도 마스터별로 유의차이가 거의 없었다.
그림 4.Round Robin 버스중재에서 (a) 데이터 전송 사이클, (b) 총 요청사이클, (c) 최대 요청 사이클 Fig. 4 (a) Data transaction cycle, (b) total request cycle and (c) max request cycle in the bus arbitration of Round Robin
이는 Round Robin 버스중재방식의 경우 각각의 마스터별로 균등하게 버스 사용하는 정책을 취하고 있기 때문에 데이터 전송량과 버스 요청사이클 등 모든 부분의 마스터 성능이 유사하기 때문이다. 그러나 Round Robin 방식은 마스터별로 우선순위를 줄 수 없는 구조이기 때문에, CPU 등 우선순위가 높은 마스터와 우선 순위가 낮은 주변장치의 마스터가 동등한 우선 순위를 가지고 동작하므로 효율적이지 않다. 그래서 일반적으로 Round Robin 방식은 성능이 다른 많은 마스터가 연결되어 있는 SoC 구조에서는 채택하기 어려운 구조이다.
이와 같이 Fixed Priority의 버스 스타베이션 현상을 방지하고, Round Robin의 버스 우선순위 부여의 어려움을 극복하고자, 본 연구에서는 대기사이클 고려 버스 중재방식을 제안하고 있다. 대기 사이클을 설정하기 위해서는 각각의 마스터에 별도의 카운터를 추가하여 버스 요청 시각에서부터 사이클을 계속 카운팅하여 설정한 일정 사이클 이상이 되었을 경우 버스 우선순위를 최대로 높인 방식을 채택하였다. 만약 설정된 사이클을 초과한 마스터가 2개 이상일 경우에는 M1에서 M6순서로 기존의 마스터 우선순위를 따른다. 본 연구에서는 최대 요청대기 설정사이클을 30으로 하여, 요청대기 사이클이 30사이클 이상일 경우, 버스 우선순위와 무관하게 최우선으로 버스사용권을 부여하도록 설정하였다.
그림5(a)에 대기 사이클 고려 버스중재방식의 마스터별 데이터 전송사이클이 나타나 있다. 그림2의 Fixed Priority 방식과 모든 조건이 동일하고 단지 대기 사이클만 추가한 경우로서, 마스터 M1의 데이터 전송량이 Fixed Priority에서 약 27만인데 반하여 대기사이클 고려 버스 중재방식은 20만으로 일부 감소하였다. 또한 우선순위가 가장 낮은 마스터 M6에서도 전송량은 약 10만 이상으로 관찰되어서 모든 마스터가 스타베이션에 걸리지 않고 안정적으로 데이터 전송을 실시하고 있음을 알 수 있다. 마스터 M1에서 M6 순서로 우선순위에 따라 데이터 전송량의 크기도 조절될 수 있으며 일부 마스터가 데이터 전송이 어려운 현상도 방지할 수 있음을 알 수 있다. 그림5(b)의 총 데이터 요청 사이클의 경우에도 모든 마스터의 데이터 요청사이클이 일정 수준을 넘지않고 버스 우선순위에 따라 조절되고 있음을 알 수 있다. 마지막으로 최대 버스 요청사이클 결과 에서도 우선순위가 가장 작은 마스터 M6의 경우 약 200사이클로 Fixed Prioriy의 약 6000사이클 보다 크게 개선되었음을 알 수 있다.
그림 5.대기사이클 고려 버스중재에서 (a) 데이터 전송 사이클, (b) 총 요청사이클, (c) 최대 요청 사이클 Fig. 5 (a) Data transaction cycle, (b) total request cycle and (c) max request cycle in the bus arbitration considering the wait cycle.
Ⅲ. 결 론
본 연구에서는 각각의 마스터에 대기 사이클 카운터를 설치하여 버스 요청 사이클을 카운팅하고, 일정 사이클 이상일 경우 마스터의 우선순위와 관계없이 최우선으로 버스 전송을 허가하는 대기사이클 고려 버스 중재방식을 제안하고 성능을 분석해 보았다. 연구 결과 단순히 카운터만 추가했을 뿐인데, 성능에서는 큰 차이를 보였다. 보통 마스터의 수가 증가함에 따라 마스터에 따른 전송량의 차이가 나타나고 경우에 따라 일부 마스터는 버스 전송량이 급격하게 떨어질 수 있는데 기존의 Fixed Priority 방식은 이 부분을 고려할 수 없다.
그런데 그림 5와 같이 대기사이클 고려 버스중재방식의 경우 설정된 대기사이클 이상이 될 경우 최대 우선순위를 줌으로, 마스터의 우선순위와 무관하여 일정량의 데이터 전송량을 확보해 주는 효과를 줄 수 있다. 이는 SoC 시스템에서 비록 우선순위가 낮은 주변장치의 저속도 마스터라 하더라도 일정 주기별로 마스터의 버스 사용권을 확보해 주어 보다 효율적인 SoC 시스템이 되도록 할 수 있다.
References
- R. Lu and C.-K. Koh, "SAMBA-Bus: A High Performance Bus Architecture for System-on- Chips", IEEE Trans. on VLSI Systems, vol. 15, no. 1, pp.69-79, 2007. https://doi.org/10.1109/TVLSI.2007.891091
- E. Salminen, V. Lahtinen, K. Kuusilinna, and T. Hamalainen, "Overview of bus-based system-on-chip interconnections", in Proc. IEEE Int. Symp. Circuits Syst., pp. II-372-II-375, 2002.
- L. Benini and G. D. Micheli, "Networks on chips: A new SoC paradigm", IEEE Comput., vol.35, pp.70-78, Jan. 2002.
- M. Jun, K. Bang, H. Lee and E. Chung, "Latency-aware bus arbitration for real-time embedded systems," IEICE Trans. Inf.& Syst.,vol .E90-D,no.3,2007.
- Y. Xu, L. Li, Ming-lun Gao, B.Zhand, Zhao-yu Jiand, Gao-ming Du, W. Zhang, "An Adaptive Dynamic Arbiter for Multi-Processor SoC", Solid-State and Integrated Circuit Technology International Conf., pp.1993-1996, 2006.
- A. Bystrov, D.J .Kinniment and A. Yakovlev, "Priority Arbiters", in Proc. IEEE 6th internation Symp. ASYNC, pp.128-137, April. 2000.
- K. Lahiri, A. Raghunathan, and G. Lakshminarayana, "The LOTTERYBUS On-Chip Communication Architecture", IEEE Trans. VLSI Systems, vol.14, no.6, 2006.
- K. Lee and S. Koh, "Characteristic comparison of various arbitration policies using TLM method", J.Korea Inst. Inf. Commun., Vol. 13 No. 8, pp.1653-1658, 2009.
- AMBA TM Specification(AHB) (Rev 2.0), ARM Ltd, May 1999.