하나의 제품에 다양한 기능들이 복합적으로 통합하는 단일칩시스템 (System-on-a-Chip, SoC)의 설계 요구가 증가하는 반면, 시장이 요구하는 적기 출하 시점은 점점 짧아지고 있다. 따라서 이러한 요구를 만족시키기 위해서 소프트웨어와 하드웨어를 통합하여 검증하는 것이 무엇보다 중요하다. 이러한 하드웨어-소프트웨어 통합 검증을 조기에 수행하는 방법으로 IP(intellectual property) 재사용을 통한 가상 플랫폼 기반 설계 방법이 널리 연구되고 있다. 본 논문에서는 기존 ARM프로세서 기반 S3C2440A 시스템을 가상 플랫폼을 이용하여 재설계하고, JPEG디코더를 S3C2440A 가상 플랫폼에 구현하여 성능을 평가하였다. 또한, ARM 프로세서 기반 인라인어셈블리어를 이용하여 JPEG 디코더를 최적화하는 기법을 소개하였고, 이를 가상 플랫폼에 구현하여 성능 향상을 검증하였다. 이러한 가상 플랫폼 기반 설계를 통해 하드웨어 및 소프트웨어의 통합 검증이 가능하고, 시장 적기 출하(Time-to-Market) 요구에 신속히 대처할 수 있다.
하나의 제품에 다양한 기능들이 복합적으로 통합하는 단일칩시스템 (System-on-a-Chip, SoC)의 설계 요구가 증가하는 반면, 시장이 요구하는 적기 출하 시점은 점점 짧아지고 있다. 따라서 이러한 요구를 만족시키기 위해서 소프트웨어와 하드웨어를 통합하여 검증하는 것이 무엇보다 중요하다. 이러한 하드웨어-소프트웨어 통합 검증을 조기에 수행하는 방법으로 IP(intellectual property) 재사용을 통한 가상 플랫폼 기반 설계 방법이 널리 연구되고 있다. 본 논문에서는 기존 ARM프로세서 기반 S3C2440A 시스템을 가상 플랫폼을 이용하여 재설계하고, JPEG 디코더를 S3C2440A 가상 플랫폼에 구현하여 성능을 평가하였다. 또한, ARM 프로세서 기반 인라인 어셈블리어를 이용하여 JPEG 디코더를 최적화하는 기법을 소개하였고, 이를 가상 플랫폼에 구현하여 성능 향상을 검증하였다. 이러한 가상 플랫폼 기반 설계를 통해 하드웨어 및 소프트웨어의 통합 검증이 가능하고, 시장 적기 출하(Time-to-Market) 요구에 신속히 대처할 수 있다.
The requirement of a system-on-a-chip (SoC) design is increasing, which combines various and complex functional units on a single device. However, short time to market prohibits to release the device. To satisfy this shorter time-to-market, verification of both hardware and software at the same time...
The requirement of a system-on-a-chip (SoC) design is increasing, which combines various and complex functional units on a single device. However, short time to market prohibits to release the device. To satisfy this shorter time-to-market, verification of both hardware and software at the same time is important. A virtual platform-based design method supports faster verification of these combined software and hardware by reusing pre-defined intellectual properties (IP). In this paper, we introduce the virtual platform-based design and redesign the existing ARM processor based S3C2440A system using the virtual platform-based method. In addtion, we implement and evaluate the performance of a JPEG decoder on the S3C2440A virtual platform. Furthermore, we introduce an optimized technique of the JPEG decoder using the ARM based inline assembly language, and then verify the performance improvement on the virtual platform. Such virtual platform-based design allows to verify both software and hardware at the same time and can meet the requirement of the shorter time-to-market.
The requirement of a system-on-a-chip (SoC) design is increasing, which combines various and complex functional units on a single device. However, short time to market prohibits to release the device. To satisfy this shorter time-to-market, verification of both hardware and software at the same time is important. A virtual platform-based design method supports faster verification of these combined software and hardware by reusing pre-defined intellectual properties (IP). In this paper, we introduce the virtual platform-based design and redesign the existing ARM processor based S3C2440A system using the virtual platform-based method. In addtion, we implement and evaluate the performance of a JPEG decoder on the S3C2440A virtual platform. Furthermore, we introduce an optimized technique of the JPEG decoder using the ARM based inline assembly language, and then verify the performance improvement on the virtual platform. Such virtual platform-based design allows to verify both software and hardware at the same time and can meet the requirement of the shorter time-to-market.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 SoC 디자인 설계 및 검증을 위한 하드웨어-소프트웨어 통합 검증 방법 중 Carbon사의 SoC Designer 툴[5]을 이용하여 가상 플랫폼 (virtual platform) 환경에서 시스템을 설계 및 검증하는 방법을 소개한다. SoC Designer 툴은 기존의 하드웨어 IP를 재사용함으로써 설계 비용 및 디자인 수정시간을 단축할 수 있다.
또한, SoC Designer 툴을 이용하여 기존 ARM프로세서 기반 S3C2440A 시스템[6]을 가상 플랫폼으로 재설계하고, JPEG 디코더를 이 가상 플랫폼에 구현하고 성능을 평가하였다. 또한, 본 논문에서는 ARM프로세서 기반 인라인 어셈블리어를 이용하여 JPEG 디코더의 성능을 향상시키는 방법을 소개하였고, 이를 가상 플랫폼에 구현하여 성능 향상을 검증하였다.
따라서 기존의 하드웨어와 소프트웨어를 분리해서 설계하고 검증하는 방식으로는 이러한 시장 적기 출하 요구를 만족시키지 못한다. 이러한 문제를 해결하기 위한 방법으로 본 논문에 서는 미리 검증된 모듈 (혹은 IP)을 이용하여 설계 및 검증시간을 단축시킬 수 있는 플랫폼 기반 설계 방법론을 소개하였다. 또한, 기존의 ARM 프로세서 기반 S3C2440A 시스템을 가상 플랫폼 환경에서 재설계하였고, JPEG 디코더를 S3C2440A 가상 플랫폼에 구현하고 성능을 검증하였다.
제안 방법
SoC Designer 툴은 기존의 하드웨어 IP를 재사용함으로써 설계 비용 및 디자인 수정시간을 단축할 수 있다. 또한, SoC Designer 툴을 이용하여 기존 ARM프로세서 기반 S3C2440A 시스템[6]을 가상 플랫폼으로 재설계하고, JPEG 디코더를 이 가상 플랫폼에 구현하고 성능을 평가하였다. 또한, 본 논문에서는 ARM프로세서 기반 인라인 어셈블리어를 이용하여 JPEG 디코더의 성능을 향상시키는 방법을 소개하였고, 이를 가상 플랫폼에 구현하여 성능 향상을 검증하였다.
플랫폼이란 SoC 설계에서 어떤 작업 또는 기술 구현이 이루어질 수 있는 공통·공용의 표준화된 하드웨어 및 소프트웨어 환경 및 설계 도구를 말한다. 플랫폼의 라이브러리와 설계 방법에 따라서 구조적 탐색을 통해 플랫폼의 구조를 결정하고 기존의 정의된 IP 블록이나 모듈을 적용 또는 수정 보완하여 시스템을 검증한다. 플랫폼 기반 설계는 복잡한 SoC 제품을 개발하기 위해 IP 재사용을 강조한 플랫폼 기반 통합 설계 접근 방법이다.
플랫폼 구현 및 검증 단계에서는 구성된 플랫폼 통합시스템을 응용 부분의 개발을 고려하여 재조정 할 수 있다. 또한, 시스템의 파라미터인 클록 속도, 버스 프로토콜 및 크기를 고려하여 각 모듈을 최적화한 후, 소프트웨어 수행부분과 하드웨어 수행부분으로 나누어 구현한다. 최종 단계에서는 플랫폼을 기반으로 하여 하드웨어-소프트웨어 통합 검증을 수행한다[9]
각 컴포넌트를 적절하게 배치하여 마스터/슬레이브(Master/Slave) 포트를 연결하고 시스템 파라미터를 설정하였다. 시스템 파라미터는 스택 (stack)과 힙 (heap)을 할당하는 시작 주소와 크기에 따라 결정되며 이를 바탕으로 메모리 맵 (memory map)을 설정할 수 있다.
본 논문에서는 어셈블리어 변환을 다음 두 단계로 나누었다. 첫 번째는 C언어에 기반을 둔 인라인 어셈블리어 변환이고, 두 번째는 레지스터를 이용한 인라인 어셈블리어 변환이다.
또한, S3C2440A 가상 플랫폼에서 인라인 어셈블리어 기반 JPEG 디코더를 구현하고 성능을 평가하기 위해 ADS(ARM Developer Suite)툴[11]을 이용하여 디코더 소스코드 내부에 그림 8과 같이 메모리 맵을 선언하였다. 소프트웨어 구현에서 정의된 메모리 맵은 함수 호출에 따라 하드웨어 컨트롤 시그널을 보내며 인터럽트 (interrupt)를 수행한다.
본 장에서는 SoC Designer 툴을 이용하여 ARM 프로세서 기반 S3C2440A 가상 플랫폼을 설계하고, 인라인 어셈블리어 기반 JPEG 디코더를 구현하여 성능을 평가하였다. 또한, ARM 프로세서를 이용한 JPEG 디코더의 성능과S3C2440A 가상 플랫폼을 이용한 JPEG 디코더의 성능을 비교 분석하였다
본 장에서는 SoC Designer 툴을 이용하여 ARM 프로세서 기반 S3C2440A 가상 플랫폼을 설계하고, 인라인 어셈블리어 기반 JPEG 디코더를 구현하여 성능을 평가하였다. 또한, ARM 프로세서를 이용한 JPEG 디코더의 성능과S3C2440A 가상 플랫폼을 이용한 JPEG 디코더의 성능을 비교 분석하였다
이러한 문제를 해결하기 위한 방법으로 본 논문에 서는 미리 검증된 모듈 (혹은 IP)을 이용하여 설계 및 검증시간을 단축시킬 수 있는 플랫폼 기반 설계 방법론을 소개하였다. 또한, 기존의 ARM 프로세서 기반 S3C2440A 시스템을 가상 플랫폼 환경에서 재설계하였고, JPEG 디코더를 S3C2440A 가상 플랫폼에 구현하고 성능을 검증하였다. 더불어, 인라인 어셈블리어를 이용하여 JPEG 디코더의 성능을 약 19% 향상시켰으며, 이를 S3C2440A 가상 플랫폼에 구현하여 검증한 결과, 인라인 어셈블리어용 JPEG 디코더가 baseline JPEG 디코더보다 약 18%의 성능이 향상되었다.
대상 데이터
그림 4는 SoC Designer 툴을 이용하여 재설계한 ARM 프로세서 기반 S3C2440A 가상 플랫폼을 보여준다. S3C2440A 가상 플랫폼은 ARM920T 프로세서, AMBA 버스, 메모리 및 각종 I/O 등으로 구성되며 기존에 정의되어 있는 IP를 재사용하여 설계하였다.
먼저 어셈블리어로 변환하기 전에 몇 가지 규칙을 준수하였다. C언어로 기술된 JPEG 디코더 알고리즘 자체를 최적화하지 않았으며, 또한 이미지는 단색보다는 여러 가지 색이 들어있는 사진으로 선정하여 사용하였다.
성능/효과
본 논문에서는 JPEG 디코더의 IDCT (inverse DCT), dequantization (역 양자화), huffman decoder를 ARM 기반 어셈블리어 (assembly language)를 사용하여 성능 향상을 꽤하였다.
이를 이용해서 모든 C코드의 변수명을 레지스터로 지정해주면 그 만큼 성능이 향상된다. 본 논문에서는 위의 두 가지 방법 중에서 두 번째 방법을 사용하여 성능 향상을 꽤하였다.
그림 9는 ADS 툴을 이용하여 JPEG 디코더에서 복잡도가 가장 높은 IDCT (inverse DCT), dequantization (역양자화), huffman decoder를 인라인 어셈블리어를 사용하여 구현한 경우와 그렇지 않은 경우의 프로파일링 분석 결과를 보여 준다. 인라인 어셈블리어를 이용함으로써 IDCT에서35.8%, 역 양자화에서 71.1%, huffman decoder에서8.6%의 수행시간이 감소되었다. 각 커널 부분에서 사용되는 메모리 접근 패턴을 단일 접근 패턴에서 다중 접근 패턴으로 수행한 결과, 연산 요구량이 줄어들어 소프트웨어적인 최적화가 이루어졌음을 알 수 있다.
6%의 수행시간이 감소되었다. 각 커널 부분에서 사용되는 메모리 접근 패턴을 단일 접근 패턴에서 다중 접근 패턴으로 수행한 결과, 연산 요구량이 줄어들어 소프트웨어적인 최적화가 이루어졌음을 알 수 있다.
표 2는 ARM 프로세서와 S3C2440A 가상 플랫폼을 이용하여 baseline JPEG 디코더 및 인라인 어셈블리어를 이용한 optimized JPEG 디코더를 수행한 결과에 대한 성능(cycle count) 비교를 보여준다. ARM 프로세서를 이용한 결과는 단순히 ARM 프로세서 코어에서 JPEG 디코더를 수행한 성능 결과이며, S3C2440A 가상 플랫폼을 이용한 결과는 ARM 프로세서, AMBA 버스, 메모리 및 입출력장치 등 통합된 시스템에서 JPEG 디코더를 수행한 결과이다. 따라서 S3C2440A 가상 플랫폼을 이용하여 JPEG 디코더를 구현한 경우는 ARM 프로세서, AMBA 버스, 메모리 및 입출력 장치 사이에서 발생하는 이벤트 처리 때문에 더 많은 클럭 사이클이 요구됨을 알 수 있다.
ARM 프로세서를 이용한 결과는 단순히 ARM 프로세서 코어에서 JPEG 디코더를 수행한 성능 결과이며, S3C2440A 가상 플랫폼을 이용한 결과는 ARM 프로세서, AMBA 버스, 메모리 및 입출력장치 등 통합된 시스템에서 JPEG 디코더를 수행한 결과이다. 따라서 S3C2440A 가상 플랫폼을 이용하여 JPEG 디코더를 구현한 경우는 ARM 프로세서, AMBA 버스, 메모리 및 입출력 장치 사이에서 발생하는 이벤트 처리 때문에 더 많은 클럭 사이클이 요구됨을 알 수 있다.
또한, 기존의 ARM 프로세서 기반 S3C2440A 시스템을 가상 플랫폼 환경에서 재설계하였고, JPEG 디코더를 S3C2440A 가상 플랫폼에 구현하고 성능을 검증하였다. 더불어, 인라인 어셈블리어를 이용하여 JPEG 디코더의 성능을 약 19% 향상시켰으며, 이를 S3C2440A 가상 플랫폼에 구현하여 검증한 결과, 인라인 어셈블리어용 JPEG 디코더가 baseline JPEG 디코더보다 약 18%의 성능이 향상되었다. 이러한 플랫폼 기반 설계 방식을 이용함으로써 하드웨어와 소프트웨어의 통합 검증이 가능하며, 이를 통해 시장이 요구하는 적기 출하 시점을 만족시킬 수 있을 것으로 기대한다.
후속연구
더불어, 인라인 어셈블리어를 이용하여 JPEG 디코더의 성능을 약 19% 향상시켰으며, 이를 S3C2440A 가상 플랫폼에 구현하여 검증한 결과, 인라인 어셈블리어용 JPEG 디코더가 baseline JPEG 디코더보다 약 18%의 성능이 향상되었다. 이러한 플랫폼 기반 설계 방식을 이용함으로써 하드웨어와 소프트웨어의 통합 검증이 가능하며, 이를 통해 시장이 요구하는 적기 출하 시점을 만족시킬 수 있을 것으로 기대한다.
질의응답
핵심어
질문
논문에서 추출한 답변
플랫폼은 무엇인가?
플랫폼이란 SoC 설계에서 어떤 작업 또는 기술 구현이 이루어질 수 있는 공통·공용의 표준화된 하드웨어 및 소프트웨어 환경 및 설계 도구를 말한다. 플랫폼의 라이브러리와 설계 방법에 따라서 구조적 탐색을 통해 플랫폼의 구조를 결정하고 기존의 정의된 IP 블록이나 모듈을 적용 또는 수정 보완하여 시스템을 검증한다.
일반적인 하드웨어 설계 방법의 단점은 무엇인가?
일반적인 하드웨어 설계 방법은 FPGA 또는 ASIC을 소프트웨어와 독립적으로 검증함으로써 통합 구현 시 문제가 발생할 확률이 높고, 시스템의 동작에 대한 분석을 정확하게 할 수 없는 단점이 있다. 따라서 일반적인 하드웨어 설계 방법을 이용하여 다양하고 복잡한 기능을 수행하는 SoC를 설계할 때 시스템 검증에서 요구되는 시간적 비용과 재수정에 필요한 비용은 상당하다.
재사용이 가능한 IP 또는 VC를 이용한 플랫폼 기반 설계 방법의 장점이 되는 세 가지 요소는 무엇인가?
플랫폼 기반 설계는 재사용이 가능한 IP 또는 VC (virtual component)를 이용한 플랫폼 기반 설계(platform-based design) 방법으로 SoC 제품을 빠르게 개발하기 위한 응용 기반 통합 플랫폼이다. 이 새로운 설계 방법의 가장 큰 장점이 되는 세 가지 요소는 재사용 (reuse), 유연성 (flexibility), 및 효율성 (efficiency)이다. 재사용이란 주어진 응용 분야에 공통으로 적용될 수 있는 아키텍처를 정의하여 같은 아키텍처를 다시 사용함을 의미한다.
참고문헌 (11)
J. Um, S. Hong, Y. Kim, E. Chung, K. Choi, J. Kong, and S. Eo, "ViP: a practical approach for HW/SW co-design", Journal of Semiconductor Technology and Science, vol. 5, no. 2, pp. 89-101, June 2005.
A. Sangiovanni-Vincentelli and G. Martin, "Platfo rm-based design and software design methodology for embedded systems", IEEE Design & Test of computers, vol. 18, no. 6, pp. 23-33, Nov. 2001.
P. Magarshack, "Improving SoC design quality throu gh a reproducible design flow", IEEE Design & Test of computers, vol. 19, no. 1, pp. 76-83, Jan. 2001.
H. Kim and B. Moon, "A research improving IP reusability and minimizing latency in NoC architecture," The Proceedings of Institute of Elec tronics Engineers of Korea Fall Conference, vol. 30, no. 1, pp. 699-700, 2007.
O. Adeluyi and J. Lee, "CHARMS: A mapping heur istic to explore an optimal partitioning in HW/SW co-design," The Journal of Korea Society of computer and information, vol. 15, no. 9, pp. 1-8, 2010.
A. Sangiovanni-Vincentelli, "Quo vadis, SLD? Reas oning about the trends and challenges of system level design," Proceedings of the IEEE, vol. 95, no. 3, pp. 467-506, March 2007.
K. Keutzer, S. Malik, A. R. Newton, J. M. Rabaey, and A. Sangiovanni Vincentelli, "System level design : orthogonalization of concerns and platform-based design," IEEE Transactions on Computer Aided Design, vol. 19, no. 12, pp. 1523-1543, Dec. 2000.
I. Lee, H. Kim, P. Yang, S. Yoo, E. Chung, K. Choi, J. Kong, and S. Eo, "PowerViP: SoC power estimati on framework at transaction level", Proc. Asia South Pacific Design Automation Conference, 8 pages, Jan. 2006.
ARM Development Tools: http://www.arm.com/prod ucts/tools/index.php
※ AI-Helper는 부적절한 답변을 할 수 있습니다.