에뮬레이션
에뮬레이션(emulation)은 어떤 계산기가 다른 종류의 계산기용으로 작성된 프로그램을 특별한 기구와 프로그래밍 기법을 이용하여 그대로 실행할 수 있도록 하는 것을 이른다.[1]
개요
에뮬레이션은 어떤 계산기가 다른 종류의 계산기 용으로 작성된 프로그램을 특별한 기구와 프로그래밍 기법을 이용하여 그대로 실행할 수 있도록 하는 것을 이른다. 또는 에뮬레이션을 하는 장치 또는 프로그램을 가리켜 에뮬레이터(emulator)라고 한다. 새로운 정보 기술이 출현할 때마다 이전의 프로그램에 대한 소스 코드를 입수할 수 있거나, 이전의 프로그램을 그대로 재현할 수 있을 만큼 충분히 상세한 문서화가 이루어지거나, 또는 최신 버전과 이전 버전의 호환을 돕는 연계 소프트웨어가 있다는 보장을 전제로 한다. 그러나 이러한 전제들이 현실적이지 않다는 점이 이 선택을 유일한 해결책으로 단정하기 어렵게 하는 제약이다.[2] 에뮬레이션은 서로 다른 기종의 프로그램 호환성을 갖게 하기 위한 수단이다. 대상에 대한 소프트웨어 모델을 만들고, 그것을 계산기로 작동하여 그 상태를 시뮬레이트하는 프로그램 시뮬레이션의 일종이라고도 생각 할 수 있지만, 에뮬레이터는 보통 마이크로 프로그래밍 기능 등에 의해 고속화를 꾀하고 있다. 에뮬레이터는 예를 들면 마이크로 컴퓨터를 개발하는 경우 등에 마이크로컴퓨터(MDS) 개발 시스템의 일부로서 강력한 디버깅 루트를 제공하며, 과대한 진단 장치나 진단 프로그램은 불필요하다.[1]
종류
- 소프트웨어 에뮬레이션: 원래 하드웨어적으로 수행되는 작업을 소프트웨어로 흉내내어 처리하는 것을 의미한다. 예를 들어 부동 소수점 연산을 처리하기 위해 CPU에 부동소수점 연산회로를 내장하는 대신 마이크로 프로그래밍을 이용하여 소프트웨어적으로 처리하는 경우, 대개 처리 속도는 늦어지나 가격은 그만큼 떨어진다.
- 하드웨어 에뮬레이션: 원래 하드웨어와 똑같은 성능을 내도록 처리하게 만들어 회로 내에서 디버깅이 용이하게 한다. 개발 작업의 효율성을 극대화 시킨다. 예로는 인서킷 에뮬레이터 등이 있다.[3]
에뮬레이션과 시뮬레이션의 차이
에뮬레이션과 시뮬레이션(simulation)은 모두 어떤 시스템의 일부 또는 전체를 흉내낸다는 공통점이 있지만 시뮬레이션은 몇 가지 특성을 주고, 거기에 대한 결과를 산출해보는 것이고, 에뮬레이션은은 완전 똑같은 방법으로 다른 대상을 하드웨어 동작까지도 흉내내는 것을 말한다.[3]
각주
참고자료
- 〈에뮬레이션〉, 《네이버 지식백과》
- 〈에뮬레이션〉, 《네이버 지식백과》
- 시리즈,〈에뮬레이션과 시뮬레이션 차이〉, 《티스토리》, 2014-07-08