효율적인 데이터 전송과 하드웨어 최적화를 위한 AMBA AXI4 BUS Interface 구현 Implementation of the AMBA AXI4 Bus interface for effective data transaction and optimized hardware design원문보기
최근 디지털 기기의 다기능화, 휴대화 및 서비스 정보의 대용량화 등으로 인하여 고집적, 저전력, 고성능 SoC(System on Chip) 설계에 대한 요구가 점차 증가하고 있다. 시스템이 빠르게 발전함에 따라 요구되는 하드웨어 성능이 다양해지고 있으며 빠른 설계 확인을 위하여 FPGA(Field Programmabel Gate Array)를 채택하는 시스템이 증가되고 있는 추세이며 FPGA를 채택한 시스템에서는 FPGA와 제어하는 CPU인 ARM코어를 사용한 SoC 시스템이 늘어났다. 이러한 시스템에서 사용되는 AXI(Advanced eXtensible Interface) Bus는 여러 방법으로 이용되지만, 기존의 연구에서는 AXI Slave 구조로 설계가 되어 있다. Slave 구조에서는 CPU가 계속 데이터 전송에 관여하게 되어 자원을 다른 곳에 사용하지 못하는 문제와 AXI Bus가 사용되지 않는 시간이 길어서 전송효율이 떨어지는 문제가 있다. 본 논문에서는 이와 같은 문제를 해결하고자 AXI Master구조를 제안하고, Slave구조와 Master구조의 소모클럭과 합성결과를 비교한 결과, Master구조가 Slave구조에 비해 소모클럭은 51.99% 감소한 것을 확인하였으며, Slice는 31% 정도 감소하였다. 또한, 최대 동작주파수는 107.84MHz로써 약 140% 증가 되는 것을 확인하였다.
최근 디지털 기기의 다기능화, 휴대화 및 서비스 정보의 대용량화 등으로 인하여 고집적, 저전력, 고성능 SoC(System on Chip) 설계에 대한 요구가 점차 증가하고 있다. 시스템이 빠르게 발전함에 따라 요구되는 하드웨어 성능이 다양해지고 있으며 빠른 설계 확인을 위하여 FPGA(Field Programmabel Gate Array)를 채택하는 시스템이 증가되고 있는 추세이며 FPGA를 채택한 시스템에서는 FPGA와 제어하는 CPU인 ARM코어를 사용한 SoC 시스템이 늘어났다. 이러한 시스템에서 사용되는 AXI(Advanced eXtensible Interface) Bus는 여러 방법으로 이용되지만, 기존의 연구에서는 AXI Slave 구조로 설계가 되어 있다. Slave 구조에서는 CPU가 계속 데이터 전송에 관여하게 되어 자원을 다른 곳에 사용하지 못하는 문제와 AXI Bus가 사용되지 않는 시간이 길어서 전송효율이 떨어지는 문제가 있다. 본 논문에서는 이와 같은 문제를 해결하고자 AXI Master구조를 제안하고, Slave구조와 Master구조의 소모클럭과 합성결과를 비교한 결과, Master구조가 Slave구조에 비해 소모클럭은 51.99% 감소한 것을 확인하였으며, Slice는 31% 정도 감소하였다. 또한, 최대 동작주파수는 107.84MHz로써 약 140% 증가 되는 것을 확인하였다.
Recently, the demand for high-integrated, low-powered, and high-powered SoC design has been increasing due to the multi-functionality and the miniaturization of digital devices and the high capacity of service informations. With the rapid evolution of the system, the required hardware performances h...
Recently, the demand for high-integrated, low-powered, and high-powered SoC design has been increasing due to the multi-functionality and the miniaturization of digital devices and the high capacity of service informations. With the rapid evolution of the system, the required hardware performances have become diversified, the FPGA system has been increasingly adopted for the rapid verification, and SoC system using the FPGA and the ARM core for control has been growingly chosen. While the AXI bus is used in these kinds of systems in various ways, it is traditionally designed with AXI slave structure. In slave structure, there are problems with the CPU resources because CPU is continually involved in the data transfer and can't be used in other jobs, and with the decreased transmission efficiency because the time not used of AXI bus beomes longer. In this paper, an efficient AXI master interface is proposed to solve this problem. The simulation results show that the proposed system achieves reductions in the consumption clock by an average of 51.99% and in the slice by 31% and that the maximum operating frequency is increased to 107.84MHz by about 140%.
Recently, the demand for high-integrated, low-powered, and high-powered SoC design has been increasing due to the multi-functionality and the miniaturization of digital devices and the high capacity of service informations. With the rapid evolution of the system, the required hardware performances have become diversified, the FPGA system has been increasingly adopted for the rapid verification, and SoC system using the FPGA and the ARM core for control has been growingly chosen. While the AXI bus is used in these kinds of systems in various ways, it is traditionally designed with AXI slave structure. In slave structure, there are problems with the CPU resources because CPU is continually involved in the data transfer and can't be used in other jobs, and with the decreased transmission efficiency because the time not used of AXI bus beomes longer. In this paper, an efficient AXI master interface is proposed to solve this problem. The simulation results show that the proposed system achieves reductions in the consumption clock by an average of 51.99% and in the slice by 31% and that the maximum operating frequency is increased to 107.84MHz by about 140%.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
따라서 본 논문에서는 CPU의 직접적인 제어가 있어야 하는 문제와 Logic이 DDR3에 직접적인 데이터 제어를 하지 못하는 문제점을 해결 할 수 있는 AXI4 Master구조를 제안한다. 제안된 구조는 CPU에서 하던 제어를 Logic내부에서 직접 제어를 할 수 있는 기능을 포함하고, 이러한 기능을 구현하기 위하여 Logic내부에 제어를 위한 State Machine을 구현하였다.
본 논문에서는 AXI4 Bus Master Interface를 구현하였다. 구현된 Logic을 Xilinx사의 ZC706 Board에서 Test하였으며, Test한 알고리즘의 출력 값이 정상적으로 나오는 것으로 보아 설계된 Logic이 정상적으로 설계되었다고 볼 수 있다.
제안 방법
제안된 구조는 CPU에서 하던 제어를 Logic내부에서 직접 제어를 할 수 있는 기능을 포함하고, 이러한 기능을 구현하기 위하여 Logic내부에 제어를 위한 State Machine을 구현하였다. 또한, 직접적으로 AXI4 Bus를 통하여 데이터를 가져올 수 있고, 가져온 데이터를 IP Logic에 전송하는 기능을 구현하였다. 데이터를 Read/Write하는 시간을 절약하기 위해서, 두 개의 버퍼를 사용하여 스위칭하여 각각 Read/Write를 동시에 함으로써 시간을 절약할 수 있다.
본 논문에서 제안된 방법을 Verilog-HDL으로 설계 하였으며, 설계된 Logic을 Xilinx PlanAhead를 이용하여 합성하여, Xilinx사의 ZC706 Board에 업로드 하여 실제동작을 확인하였다. 설계된 Logic의 알고리즘은 입력된 데이터를 F/F을 거쳐 출력으로 내보내는 것을 사용하였다.
본 논문에서 제안된 방법을 Verilog-HDL으로 설계 하였으며, 설계된 Logic을 Xilinx PlanAhead를 이용하여 합성하여, Xilinx사의 ZC706 Board에 업로드 하여 실제동작을 확인하였다. 설계된 Logic의 알고리즘은 입력된 데이터를 F/F을 거쳐 출력으로 내보내는 것을 사용하였다. 제안된 구조를 검증하기 위해서 1Frame의 영상 데이터를 PC에서 USB2.
그림 10에는 Slave 구조와 Master 구조에서 측정된 소모클럭을 비교하였다. 소모클럭의 확인 방법은, 데이터 전송 시작 전부터 연산이 끝나서 데이터를 출력했을 때까지의 소모클럭을 측정하였고, 측정된 클럭은 ZC706 Board에 포함된 Cortex-A9의 ARM코어에서 동작되는 클럭을 측정한 것이다. 해당 동작을 할 때의 ARM코어의 클럭은 666MHz이다.
데이터를 입력하고 나면, 제안된 구조에서 데이터를 입력받게 되고, 알고리즘으로 입력데이터가 전송되게 된다. 여기에서 사용된 알고리즘은 입력된 데이터를 F/F을 거쳐서 출력으로 보내는 것을 사용하였다. 처리가 완료되면 출력데이터를 알고리즘에서 출력하게 되고, 그것을 AXI4 Bus를 이용하여 DDR3에 저장한다.
그림 3에는 제안된 구조의 전송방식을 나타내었다. 제안된 구조는 CPU가 아닌 Logic이 직접 AXI4 Bus를 통하여 DDR3에 접근하여 데이터를 가져오게 되고, 가져온 데이터를 IP Logic에 전달하는 동시에 Bus를 통하여 다른 버퍼에 그 다음 데이터를 가져와서 저장한다. IP Logic으로 전달하는 동시에 다른 버퍼에 그 다음 데이터를 가져오면 데이터를 가져오는 시간을 줄일 수 있다.
따라서 본 논문에서는 CPU의 직접적인 제어가 있어야 하는 문제와 Logic이 DDR3에 직접적인 데이터 제어를 하지 못하는 문제점을 해결 할 수 있는 AXI4 Master구조를 제안한다. 제안된 구조는 CPU에서 하던 제어를 Logic내부에서 직접 제어를 할 수 있는 기능을 포함하고, 이러한 기능을 구현하기 위하여 Logic내부에 제어를 위한 State Machine을 구현하였다. 또한, 직접적으로 AXI4 Bus를 통하여 데이터를 가져올 수 있고, 가져온 데이터를 IP Logic에 전송하는 기능을 구현하였다.
그림 4에는 제안된 AXI4 Master구조를 나타내었다. 제안된 구조는 크게 AXI4 Slave Interface와 AXI4 Master Interface, 그리고 IFM TOP으로 구분된다. AXI4 Slave Interface는 IFM TOP이 AXI4 Bus에 Slave로 연결해주는 역할을 하며, AXI4 Master Interface는 IFM TOP이 AXI4 Bus에 Master로 연결해주는 역할을 한다.
대상 데이터
Slave 구조에서는 데이터를 전송하기 위한 DMA를 포함하고 있다. Registers는 25,560개를 사용하여 전체면적의 5%를 차지하였고, LUTs는 13,627개를 사용하여 6%가 사용되었다. Slice는 20,546개를 사용하여 전체의 37%를 차지하였다.
따라서 Slave구조보다 작은 영역을 사용한다. Registers는 7,634개를 사용하여 전체 면적의 1%를 차지하였고, LUTs는 9.230개를 사용하여 4%가 사용되었다. Slice는 3,500개를 사용하여 전체의 6%를 차지하였다.
성능/효과
84MHz까지 확보되는 것을 확인하였다. Slave 구조와 비교하여 Slice는 31% 정도 감소하였고, 최대 동작주파수는 약 140% 증가 되는 것을 확인하였다. 그림 10과 표1을 보았을 때, Slave 구조보다 Master 구조가 소모클럭이 약 51.
시스템이 빠르게 발전함에 따라 요구되는 하드웨어 성능이 다양해지고 있으며 빠른 설계 확인을 위하여 FPGA를 채택하는 시스템이 증가되고 있는 추세이다.[1][2] FPGA를 이용한 시스템은 하드웨어 리소스 변화에 신속하게 대처할 수 있고 효율적으로 디지털 하드웨어를 구현할 수 있으며 개발기간을 단축할 수 있다. FPGA를 이용하여 검증을 하려면 FPGA를 제어하는 CPU가 필요함으로, FPGA와 ARM코어를 사용한 SoC 시스템이 늘어났다.
본 논문에서는 AXI4 Bus Master Interface를 구현하였다. 구현된 Logic을 Xilinx사의 ZC706 Board에서 Test하였으며, Test한 알고리즘의 출력 값이 정상적으로 나오는 것으로 보아 설계된 Logic이 정상적으로 설계되었다고 볼 수 있다. 기존의 AXI4 Slave 구조와 본 논문에서 제안된 AXI4 Master 구조를 비교한 결과 소모클럭은 51.
구현된 Logic을 Xilinx사의 ZC706 Board에서 Test하였으며, Test한 알고리즘의 출력 값이 정상적으로 나오는 것으로 보아 설계된 Logic이 정상적으로 설계되었다고 볼 수 있다. 기존의 AXI4 Slave 구조와 본 논문에서 제안된 AXI4 Master 구조를 비교한 결과 소모클럭은 51.99% 감소한 것을 확인하였으며, 전체 시스템의 최대 동작주파수는 107.84MHz까지 확보되는 것을 확인하였다. 또한, Slice는 31% 정도 감소하였고, 최대 동작주파수는 약 140% 증가되는 것을 확인하였다.
또한, Slice는 31% 정도 감소하였고, 최대 동작주파수는 약 140% 증가 되는 것을 확인하였다. 따라서 제안된 AXI4 Master 구조가 AXI4 Slave 구조보다 더욱 빠르게 동작하고, 적은 면적을 차지하는 것을 확인하였다.
99% 감소하였다. 또한, Slice는 31% 정도 감소하였고, 최대 동작주파수는 약 140% 증가 되는 것을 확인하였다. 따라서 제안된 AXI4 Master 구조가 AXI4 Slave 구조보다 더욱 빠르게 동작하고, 적은 면적을 차지하는 것을 확인하였다.
99% 감소하였다. 또한, Slice는 31% 정도 감소하였고, 최대 동작주파수는 약 140% 증가 되는 것을 확인하였다. 따라서 제안된 AXI4 Master 구조가 AXI4 Slave 구조보다 더욱 빠르게 동작하고, 적은 면적을 차지하는 것을 확인하였다.
0을 통하여 가져오게 된다. 이러한 검증을 진행하였을 때, 입력데이터와 출력데이터가 동일하게 나오는 것을 확인하였다. 따라서 제안된 구조가 정상적으로 동작한다는 것을 알 수 있다.
Slice는 3,500개를 사용하여 전체의 6%를 차지하였다. 전체 시스템의 최대 동작주파수는 107.84MHz까지 확보되는 것을 확인하였다. Slave 구조와 비교하여 Slice는 31% 정도 감소하였고, 최대 동작주파수는 약 140% 증가 되는 것을 확인하였다.
Slice는 20,546개를 사용하여 전체의 37%를 차지하였다. 전체 시스템의 최대 동작주파수는 76.846MHz까지 확보되는 것을 확인하였다. AXI4 Master 구조에서는 Master Logic안에 DMA기능이 포함되어 있으므로 따로 DMA Logic이 존재하지 않는다.
질의응답
핵심어
질문
논문에서 추출한 답변
Master가 수행하는 기능은?
각 모듈들은 Master와 Slave가 존재한다. Master는 통신을 제어하는 주체가 되는 기능을 수행하며, 데이터의 흐름을 직접적으로 제어할 수 있다. Slave는 Master에서 제어하는 대로 움직이는 기능만을 수행한다.
AXI란?
[3][4] AMBA 4.0 Protocol에는 AXI4 전송방식이 포함 되어 있는데, AXI는 어드레스와 데이터 및 컨트롤 버스를 분리하고, 시작 주소만 주어지면 연속적인 데이터 통신이 가능한 Burst 기반 프로토콜이다. 기존의 버스는 하나의 트랜잭션이 종료된 이후에 다음을 수행하였다.
기존의 버스가 가지고 있는 문제점은?
기존의 버스는 하나의 트랜잭션이 종료된 이후에 다음을 수행하였다. 따라서 저속 장치에 엑세스해버리면 그것이 끝날 때까지 버스가 점령되어버리는 문제점이 있었는데, AXI에서는 먼저 생성된 트랜잭션이 종료되기 전에 다음 트랜잭션을 수행할 수 있다. 이것은, 트랜잭션에 각각의 ID를 부여하여 가능한 것으로써, 병렬처리를 가능하도록 만들었다.
참고문헌 (9)
서형선, 이서훈, 황선영 "AMBA 버스와 IP간의 통신을 위한 인터페이스 자동생성에 관한 연구," 한국통신학회논문지, Vol. 29, No. 4A, pp. 390-398, April 2004.
Shaila S Math, Manjula R. B, S.S. Manvi, Paul Kaunds "Data transactions on system-on-chip bus using AXI4 protocol," 2011 International Conference on Recent Advancements in Electrical, Electronics and Control Engineering, pp. 423-427, December 2011.
이준섭, 정혜란, M. A. Ansari, 박성주 "AMBA AXI 기 반의 효율적인 SoC 테스트 제어기 설계," 대한전자공학회 2009년 SoC학술대회, pp. 146-149, May 2009.
이경호, 공진흥 "MPSoC 인터커넥션을위한 AXI 하I이브리드온칩버스구조설계," 전자공학회 논문지, Vol. 48, No. 8, pp. 33-44, August 2011.
Santhoshi Yadav Pulicharla, V. Koteswara Rao "AMBA-AXI COMPLIANT MEMORY CONTROLLER," IJRRECS, pp. 316-321, August 2013.
정의봉, 송용호 "AMBA 기반 IP를 위한 온칩 네트워크 인터페이스 설계 및 구현," 대한전자공학회 전자 정보 통신 학술대회 논문집 (CEIC) 2005, pp. 285-288, December 2005.
ARM, "AMBA AXI and ACE Protocol Specification," www.arm.com, December 2013.
김상돈, 이승은 "AMBA AHB 기반 SDRAM 컨트롤러 설계," 한국산업정보학회논문지, Vol. 18, No. 5, pp. 33-37, October 2013.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.