마이크로프로세서개발시스템(MDS:Micr-oprocessor Develo-pment Systems)이 란 마이크로프로세서가 내장되는 시스템(Embedded System)을 개발하는 데 필요한 하드웨어, 소프트웨어 장비들의 총칭이다.
임베디드 시스템을 개발할 때 생각한 대로 시스템이 동작되지 않을 때 고치는 작업을 디버깅이라고 하며, 디버깅을 도와주는 장비가 MDS다. 이 디버깅 장비들은 개발자에게 일정한 도움을 주면서 급성장하고 있고, 개발자의 노하우도 그만큼 증가하면서 다양한 개발자층을 형성하기 시작했다. 디버깅 장비 중 어느것이 제일 좋은 장비라고 말하기 곤란한 이유는 다양한 개발자층이 형성되면서 개발자마다 자신이 개발하는 장비와 구현하고자 하는 난이도에 따라 편리성이 달라질 수가 있기 때문이다. 또한 경쟁시대에서 시간과 돈의 함수관계가 있기때문에 대부분 처음으로 개발하는 사람들은 ICE를 구매하게 되며 점점 개발에 자신이 생기면서부터 롬 에뮬레이터와 디버깅 소프트웨어 쪽으로 이동한다.
디버깅 장비의 선택 요인으로는 사용자 인터페이스(User Interface)의 편리 성을 기준으로 삼을 수 있다. 최근에는 개발자의 욕구에 부합하는 기능인 통합개발환경 IDE Integrated Development Environment, 그림1 참조)이 나타나면서 개발자들이 감수하였던 프로그램의 컴파일등 소프트웨어적인 기능과 타 깃을 실행해 보는 하드웨어적인 디버깅 기능을 분리해야 했던 작업들이 사라지고 있다. 통합개발환경의 원조는 터보 C를 만든 볼랜드사를 들 수 있으며거기에서는 일정한 프로그램만 하고 나면 컴파일, 어셈블, 링크와 실행을 한꺼번에 하기 때문에 사용자에게 호평을 받았다. 이 기능에 하드웨어를 디버깅하기 위해서 필요한 요소를 추가하여 만든 것이 바로 통합개발환경이다.
그구성으로는 프로젝트 매니저, 소프트웨어 통합자, 다중파일 컬러 에디터, 마지막으로 하이레벨 소스 디버거다. 이와 같은 네가지의 구성요건이 서로조화를 이루면 개발과정이 신속히 이루어질 수 있다. 세부적인 기능을 살펴보면 먼저 강력한 개발자를 위한 인터페이스가 구축되어야 하며 그 개발자를위한 도움말 기능을 가지고 있어야 한다. 두번째로는 대부분의 경우 메모리의 설정을 다양하게 할 수 있도록 되어 있다. 세번째로는 모든 장비가 갖추고있는 하드웨어적 트레이스 기능(그림2 참조)이 있으며 이것을 통한 프로그램 상의 브레이크 포인트기능을 실현할 수 있고 그 결과를 메모리에 저장하고 나서 개발자에게 보여 준다. 네번째의 기능으로는 각 프로그램의 함수 단위 로 얼마나 실행되었는가를 알 수 있는 퍼포먼스 애널리시스다. 이것은 프로 그램중 전혀 실행되지 않는 부분, 자주 실행되는 부분, 프로그램의 실행시간 등을 분석하여 표시해 주기 때문에 프로그램의 최적화를 돕는 기능을 제공한 다. 다섯번째로는 프로그램을 C 소스레벨로 보거나 어셈블러 상태로 보는 기능이다. 여섯번째로는 실행하면서 ICE가 제공하는 하드웨어로 인하여 로직 애널라이저 기능이다. 그림과 같이 파형을 직접 볼 수 있어 하드웨어가개발 자가 원하는 대로 동작하는지의 여부를 알수 있다. 대부분의 ICES는 위의 기능을 지원하지만, 그 차이는 얼마나 쉽게 사용할 수 있도록 제공하는가에 달려 있다.
인-서킷 에뮬레이터 선택시 고려사항은 자신의 프로젝트에 적합한 장비를 선택해야 하는 것이다. 인-서킷 에뮬레이터를 선택하기에 앞서 프로젝트에 맞는 마이크로프로세서, 사용할 언어, 작업할 호스트 컴퓨터를 선택한 후 이러한 환경을 지원하는 인-서킷 에뮬레이터를 아래와 같이 선택해야 한다.
첫째, 최대 클록속도:사용자의 타깃 클록속도를 지원하는 인-서킷 에뮬레이터를 선정해야 한다. 타깃의 사용하는 클록보다 높은 클록을 지원하는 인-서 킷 에뮬레이터를 선택해도 좋으나, 실제로 높은 클록을 사용하지 않으면 아무 의미가 없고, 클록속도가 높아짐에 따라 가격차이(32bit의 경우 약 1만달러 가 많이 나기 때문에 경제적인 면을 고려해야 한다.
둘째, 에뮬레이션 메모리:64K, 1백28K, 5백12K, 1MB의 에뮬레이션 메모리를많이 사용하고 있고, 에뮬레이션 메모리의 크기는 일반적으로 프로그램의 코드 크기로 결정하고 프로그램의 데이터 영역은 타깃의 RAM을 사용하면 경제 적이다. 셋째 리얼타임 트레이스 버퍼:어셈블리로 프로그램을 할 때는 2K 프레임 정도면 충분했으나 요즘은 C로 프로그램을 많이 하기 때문에 8K, 32K 심지어는1백28K 프레임까지 나오고 있다. C로 프로그램된 것은 리얼타임 트레이스 버퍼도 C로 보는 게 중요하다. 프로그램의 버그는 이 리얼타임 트레이스 버퍼 를 통해서 잡기 때문에 신중히 살펴야 한다.
넷째, 브레이크 포인트:브레이크 포인트 개수보다는 어드레스뿐만 아니라 데이터 스테이터스, 외부신호, 카운트 등을 조합할 수 있고, 트리거 레벨이 있어 강력한 브레이크 포인트를 사용할 수 있는가를 살피는 것이 더 중요하다. 다섯째 소스 레벨 디버깅:요즘은 프로그램을 C로 사용하였으면 C소스를 보면서 디버깅하기를 원한다. 인-서킷 에뮬레이터에 따라 자체적으로 소스 레벨을 지원하는 것이 있고 제3의 소스 레벨 디버깅 소프트웨어를 별도로 구입 해야 하는 것이 있으니 잘살펴야 한다.
여섯째, 다른 마이크로 프로세서의 이식성:한 프로젝트를 끝마치고 새로운 프로젝트를 계획할 때 마이크로 프로세서가 변경되었다면 간단히 모듈로 교환할 수 있는 것과 고가인 인-서킷 에뮬레이터 전체를 다시 구입해야 하는것이 있으니 향후를 대비한 경제적(예산의 약 2/3가 절약됨)인 관점이 필요 하다. 일곱째 멀티 프로세서와 계측기 지원:하나의 보드에 여러개의 마이크로 프로세서가 내장되는 경우 동시에 여러개의 마이크로 프로세서 실행과 중지를 해야 한다. 이를 위해서는 다른 인-서킷 에뮬레이터로 동기신호를 주어서 한 사람이 여러대의 인-서킷 에뮬레이터를 동시에 제어할 수 있는 기능이 필수 적이고, 또 하드웨어 디버깅을 위해서는 인-서킷 에뮬레이터의 외부에 스코프나 로직 애널라이저에 트리거 신호를 줄 수 있는 기능이 필요하다.
여덟째, 유저 인터페이스:80년대까지만 해도 커맨드 방식이 많았으나 90년대들어와서는 풀 다운 메뉴, 팝업 메뉴, 멀티 윈도, 마우스가 지원되고 있다.
어느 계측기와 마찬가지로 인-서킷 에뮬레이터를 사용자가 전기능을 다 소화 하지 못하고 사용하고 있기 때문에 유저 인터페이스가 잘되어 있는 장비는 사용자가 모르는 기능을 사용하고자 했을 때는 도움말 기능으로 일일이 매뉴얼을 찾아보는 수고를 덜게 하여 개발에 전념하게 해준다.
아홉째, 호스트 컴퓨터와 인-서킷 에뮬레이터간의 통신:시리얼(9600,19200 ,38400,57600,115200baud)포트, 패럴렐(PC의 슬롯에 전용 카드를 삽입 해서 사용), LAN(Ethernet)방식이 전통적으로 사용되고 있고 요즈음은 노트북에서도 프린터 포트로 고속통신하는 것도 등장하고 있으니 자신의 환경 에 맞는 통신 방식의 인-서킷 에뮬레이터를 고려해야 한다.
열번째, 애프터 서비스:이 부문이 가장 중요시 해야 할 사항이다. 상기의 조건들은 각 인-서킷 에뮬레이터 제품마다 대동소이하다. 왜냐하면 최첨단인 미국 시장에서 잘 팔리는 제품들은 인-서킷 에뮬레이터가 갖추어야 할 기본적인 기능은 다 가지고 있기 때문이다. 문제는 국내의 판매 업체에서 얼마나 고객 지원을 하는가에 달려 있다. 인-서킷 에뮬레이터는 미완성인 하드웨어 에 접속되기 때문에 타 계측 장비에 비해 고장률이 높다. 예를 들면 개발중 에 있는데 인-서킷 에뮬레이터가 고장이 났을 경우 국내에서 수리 능력이 없다면 제조회사인 외국에 보내야 한다. 이러한 기간은 대략 한달 정도 걸린다. 인-서킷 에뮬레이터를 구입하는 중요한 목적은 개발시간을 단축하기 위한것인데 개발단계에서 한달이란 시간은 엄청난 손실이다. 그래서 판매회사 들의 기술력과 고객지원체계를 갖춘 MDS전문회사인가를 고려해야 한다.
개발자를 위한 장비들도 계속된 VLSI의 급속한 발전에 힘입어 장비들이 소형화 모듈화되어 가고 있고 최소한의 교체로 서로 다른 마이크로프로세서 를 지원하는 추세다. 또한 사용자 호스트 환경도 PC의 DOS에서 윈도즈 와 OS/2로 NT로 나가면서 점점 개발자를 위한 인터페이스도 끊임없이변화하고 있다. 여기에 발맞춰서 많은 MDS 업체가 생겨나고 있으며 또한 사라져 가고 있다. 앞으로 MDS는 마이크로프로세서의 복잡성으로 인해 ICE류의 장비는 개발이 늦어지고 있다. 그런 반면에 산업현장에서 많이 쓰고 있는 원칩 계열의 칩(예를 들면 8051, 80196, 68HC11 등)이 인기를 끌면서 이 분야의 MDS가 주종을 이뤄 시장 형성의 첨병이 되고 있다. 소프트웨어적인 추세가 사용자와 친밀하게 만든 볼렌드사의 디버거, 일명 볼렌드 디버거 또는 터보 디버거의 환경으로 가는 통합환경(IDE)시대를 맞고 있다. 타깃과 개발자가 쓰는 장비와의 인터페이스(직렬통신, 병렬통신, 자체 카드 등등)도 근래에는 여러가지를 동시에 지원하는 추세다. 세계적 추이는 원칩용 MDS의 호황과 통합환경을 지원하는 MDS 그리고 다양한 인터페이스를 지원하는 MDS의 시대로 가고 있다.