ARM 명령어집합시뮬레이터(ISS)를 이용한 임베디드시스템 설계 방법론 충북대학교 전기전자컴퓨터공학부 송 기 용
특강 개요 임베디드시스템 설계 및 검증 개론 임베디드시스템 개발 환경 소개 및 구성 ARM ISS 구성 ARM 프로세서와 AMBA를 이용한 시스템의 설계 방법 소개 HW / SW 동시협조시뮬레이션 환경 구성의 소개
임베디드시스템 설계 및 검증 개론
목차 1. 임베디드 시스템 2. 시스템집적반도체와 플랫폼 3. 시스템집적반도체의 설계 4. HW / SW 동시협조검증
임베디드 시스템 (1) 임베디드 시스템이란 각종 전자제품이나 정보기기 등에 설치되어 있는 마이크로프로세서에 미리 정해진 특정한 기능을 수행하는 소프트웨어를 내장시킨 시스템. 임베디드 시스템은 미리 정해진 특정 기능을 수행하기 위해 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자제어시스템 통칭. 소프트웨어(혹은 Firmware)와 하드웨어로 구성되며, Processor Core를 포함하는 시스템집적반도체 (SoC, System-on-a-Chip)으로 구현. 예) 비행기의 자동항법장치, IMT2000 단말기 칩, 자동차 내의 ABS, Smart Card 칩
임베디드 시스템 (2) 등장 배경 반도체 산업 및 집적회로 기술의 발전 및 칩 집적도가 높아짐. 과거에 보드로 만들던 시스템 기술이 이제는 하나의 반도체에 시스템을 집적화할 수 있게 됨. 전자회로의 소형화, 저전력화, 인터넷화 등이 이루어지고 있음. 별개의 칩으로 존재하던 메모리, 마이크로프로세서, 코프로세서 등이 하나의 칩 안으로 들어갈 수 있음. 모든 구성요소를 하나의 칩에 집적하는 것을 SoC라고 함. 하나의 칩 안에 들어가는 개개의 구성요소를 IP (Intellectual Property) 라고 함.
임베디드 시스템 (3) SoC 설계 방법론의 대두 설계자의 생산성이 반도체 칩의 복잡도를 제대로 따라잡지 못함. 설계 생산성과 칩 복잡도의 격차는 점점 넓어지고 있음. 동시에 time-to-market은 점점 짧아지고 있는 추세임. 이러한 현실에 부응하여 SoC의 설계생산성을 높이기 위해 high-level abstraction을 이용한 시스템 수준에서 시스템을 모델링하고 명시하는 시스템설계 언어가 대두됨. SystemC, SpecC
시스템집적반도체와 플랫폼 (1) 시스템집적반도체 (SoC : System-on-a-chip) 하드웨어 프레임 플랫폼 최종제품의 중요기능이 단일반도체에 통합된 집적반도체 시스템을 구성하는 주요 기능블록들이 집적 하드웨어 부시스템과 소프트웨어 부시스템으로 구분 하드웨어 프레임 가장 기본적인 구성 프로세서, 메모리, 입출력 장치 플랫폼 하드웨어 프레임에 기능 블록들을 추가함으로써 특정응용에 용이하게 활용될 수 있도록 한 구성
시스템집적반도체와 플랫폼 (2) ARM 프로세서 소프트웨어가 저장을 위한 메모리 블록 입출력 블록 소프트웨어가 저장을 위한 메모리 블록 입출력 블록 AMBA 버스로 각 블록들을 연결 그림 1. 하드웨어 프레임의 예
시스템집적반도체와 플랫폼 (3) 하드웨어 프레임에 정지영상 처리에 필요한 기능블록들을 추가하여 플랫폼을 구성 그림 2. 정지영상 처리용 SOC 플랫폼의 예 하드웨어 프레임에 정지영상 처리에 필요한 기능블록들을 추가하여 플랫폼을 구성
시스템집적반도체의 설계 그림 3. 시스템집적반도체 설계 흐름도 설계 흐름에서 하드웨어와 소프트웨어를 동시 설계 및 검증이 중요
시스템집적반도체 설계환경 (1) 설계환경과 실사용환경이 같지 않은 경우 일반적인 경우 PC 환경에서 ARM 프로세서를 내장한 SoC 설계 크로스 컴파일러 or 크로스 아키텍처 컴파일러 타겟 아키텍처에서 수행될 실행이미지를 생성하는 환경이 필요 하드웨어에서 실행될 소프트웨어 개발 환경 컴파일러, 라이브러리, 디버거 등
시스템집적반도체 설계환경 (2) 소프트웨어 개발환경과 하드웨어 시뮬레이션 환경으로 구성 그림 4. 시스템집적반도체의 HW/SW 동시개발환경
HW / SW 동시협조검증 (1) 동시협조검증(Co-Verification)의 필요성 동시협조검증 방법 시스템집적반도체는 하드웨어 부시스템과 소프트웨어 부시스템으로 구성 동시협조검증 방법 하드웨어-소프트웨어 동시협조시뮬레이션 (Co-simulation) 하드웨어-소프트웨어 동시협조에뮬레이션 (Co-emulation)
HW / SW 동시협조검증 (2) 시뮬레이션, 가속, 에뮬레이션 소프트웨어 시뮬레이션 시뮬레이션 가속 하드웨어 에뮬레이션 모델링 언어로 구현된 하드웨어 설계를 소프트웨어적으로 동작시켜 기능을 검증 Verilog / VHDL 또는 SystemC와 같은 하드웨어기술언어와 시뮬레이터 사용 시뮬레이션 가속 시뮬레이션 속도를 높이기 위해 특별한 하드웨어를 사용 하드웨어와 소프트웨어 시뮬레이터를 연동 설계의 일부분을 하드웨어에 적용 하드웨어 에뮬레이션 시뮬레이션 가속의 일종 실제 타겟 보드를 이용하여 설계와 연동
HW / SW 동시협조검증 (3) 그림 5. 시뮬레이션, 가속, 에뮬레이션
HW / SW 동시협조검증 (4) 표 1. 시뮬레이션, 가속, 에뮬레이션의 비교
HW / SW 동시협조시뮬레이션 (1) 명령어집합시뮬레이터 (ISS) Instruction Set Simulator 프로세싱 코어의 기능을 C 언어로 모델링한 프로그램 ISS 사용 이유 하드웨어 프레임 중 프로세서는 매우 복잡하여 설계하거나 모델링하는 것이 바람직하지 않음 VPI (Verilog Procedural Interface) C 언어로 프로그램된 ISS와 HDL로 설계된 블록을 같이 시뮬레이션하기 위한 인터페이스
HW / SW 동시협조시뮬레이션 (2) 그림 6. HDL 시뮬레이터를 이용한 HW/SW 동시협조시뮬레이션
HW / SW 동시협조시뮬레이션 (3) 하드웨어 모델과 ISS를 연동하여 소프트웨어를 하드웨어 시뮬레이션 모델에서 수행시키는 것 로직시뮬레이터 이용 그림 6의 BFM (Bus Functional Model) ISS가 메모리에 있는 실행이미지를 수행하기 위해 기본적인 버스 동작을 수행 명령어인출, 피연산자 참조 버스 동작을 하드웨어적인 버스 프로토콜에 맞게 수행
HW / SW 동시협조에뮬레이션 (1) HW / SW 동시협조시뮬레이션 로직시뮬레이터 대신 하드웨어 FPGA를 사용 프로세서 모델인 ISS는 Host-PC에서 수행 나머지 대부분의 하드웨어는 FPGA에서 동작 이점 하드웨어가 FPGA에서 동작하므로 정확도가 높은 기능 검증이 가능
HW / SW 동시협조에뮬레이션 (2) 그림 7. FPGA를 이용한 HW/SW 동시협조에뮬레이션
차시 안내 임베디드시스템 개발 환경 소개 및 구성 임베디드시스템 개발 환경 구성에 필요한 소프트웨어 Windows XP 컴퓨터 Visual Studio 6.0 (C/C++ Compiler) Mentor Graphics ModelSim (Verilog Simulator) Cygwin ARM Cross-Compiler Tool-chain ARM GCC ARM GDB