developer tip

에뮬레이션과 시뮬레이션의 차이점은 무엇입니까?

optionbox 2020. 8. 14. 07:38
반응형

에뮬레이션과 시뮬레이션의 차이점은 무엇입니까? [복제]


중복 가능성 :
시뮬레이터 또는 에뮬레이터? 차이점은 무엇입니까?

이해하기 쉬운 용어로, 두 용어의 차이점은 무엇입니까?

[I가 이미 살펴 보았다 , ]


(예를 들어 첫 번째 링크 사용)

이전 HP 계산기의 동작을 복제하려는 경우 두 가지 옵션이 있습니다.

  1. 계산기의 디스플레이와 키를 그리는 새 프로그램을 작성하고 사용자가 키를 클릭하면 프로그램이 이전 계산기에서 수행 한 작업을 수행합니다. 이것은 시뮬레이터입니다

  2. 계산기의 펌웨어 덤프를 얻은 다음 펌웨어를로드하고 계산기의 마이크로 프로세서와 동일한 방식으로 해석하는 프로그램을 작성합니다. 이것은 에뮬레이터입니다

시뮬레이터 복제하려고 행동 장치를. 에뮬레이터는 복제하려고 내부 작동 장치를.


용어가 자주 오용되거나 혼동되기 때문에 확실히 대답하기 어려운 질문입니다.

종종 에뮬레이터는 특정 장치 또는 플랫폼을 완전히 다시 구현합니다. 에뮬레이터는 실제 장치와 똑같이 작동합니다. 예를 들어, NES 에뮬레이터는 CPU, 사운드 칩, 비디오 출력, 컨트롤러 신호 등을 구현합니다. NES castridge의 수정되지 않은 코드를 덤프 한 다음 결과 이미지를 에뮬레이터에로드하여 재생할 수 있습니다.

시뮬레이터는 장치 / 플랫폼의 부분적인 구현으로 자체 목적에 충분합니다. 예를 들어, iPhone Simulator는 실제 장치의 ARM CPU 및 Cocoa Touch API가 아닌 x86 및 Cocoa API를 대상으로 특별히 컴파일 된 "iPhone 앱"을 실행합니다. 그러나 시뮬레이터에서 실행하는 바이너리는 실제 장치에서 작동하지 않습니다.


둘 다 입력을 제어하고 출력을 관찰하는 수단이있는 객체의 모델입니다. 에뮬레이터를 사용하면 에뮬레이트하는 객체가 생성하는 출력이 정확히 출력되기를 원합니다. 시뮬레이터를 사용하면 출력의 특정 속성이 객체가 생성하는 것과 유사하게되기를 원합니다.

예를 들어 보겠습니다. 시스템에 새 센서 (예 : 온도계)를 추가하면 시스템에 어떤 영향을 미치는지 확인하기 위해 몇 가지 시스템 테스트를 수행한다고 가정 해 보겠습니다. 온도계는 측정 값을 포함하는 메시지를 초당 8 번 보냅니다.

시뮬레이션-온도계가 아직 없지만이 메시지 속도가 시스템에 과부하가 걸리지 않는지 테스트하려면 초당 8 번 난수를 보내는 장치를 연결하여 센서를 시뮬레이션 할 수 있습니다. 센서가 보내는 실제 값에 의존하지 않는 테스트를 실행할 수 있습니다.

에뮬레이션-0.001 ° C까지 측정하는 매우 비싼 온도계가 있고 가장 가까운 0.5 ° C까지만 측정하는 더 저렴한 온도계를 사용할 수 있는지 확인하려고한다고 가정합니다. 값 비싼 온도계를 사용하여 더 저렴한 온도계를 다음과 같이 에뮬레이션 할 수 있습니다. 측정 값을 가장 가까운 0.5C로 반올림하고 온도 값에 따라 테스트를 실행합니다.


이것이 일반적인 견해인지는 모르겠지만, 나는 항상 그 두 가지가 사용되는 용도로 구별되었습니다. 에뮬레이터는 실제로 출력에 에뮬레이트 된 시스템을 사용하려는 경우에 사용됩니다. 반면에 시뮬레이터는 시뮬레이션 된 기계를 연구하거나 그 동작을 테스트하고자 할 때 사용됩니다.

예를 들어 애플리케이션 (범용 CPU에서 실행되는)에 상태 머신 로직을 작성하려면 소형 상태 머신 에뮬레이터를 작성합니다. 특정 문제에 대한 상태 머신의 효율성 또는 실행 가능성을 연구하려면 시뮬레이터를 작성합니다.


소프트웨어 및 시스템 엔지니어링 경험을 바탕으로 차이점을 다음과 같이 요약하겠습니다.

시뮬레이션 : 저에게 이것은 항상 소프트웨어에 있습니다. 실제 시스템의 모든 측면은 일부 코드 및 / 또는 수학에 의해서만 모델링됩니다. 시뮬레이션은 실제 시스템의 동작을 정확하게 재현 (또는 예측)하려고 시도하지만 근사치에 불과합니다.

에뮬레이션 : 시뮬레이션과 달리 실제 시스템의 동작에 근접하지 않고 실제 시스템의 동작을 복사합니다. 에뮬레이터에는 하드웨어가 포함될 수 있습니다. 그러나 전적으로 소프트웨어에있을 수도 있습니다. 예를 들어 Sega Genesis와 같은 오래된 게임 콘솔 용 소프트웨어 EMULATORS를 얻을 수 있습니다. 에뮬레이터에서 원래 Genesis 코드를 실행할 수 있도록 실제 제네시스 기능을 너무 많이 복사하기 때문에 에뮬레이터입니다. 제네시스 시뮬레이터는 원래 코드를 실행할 수 없으며 원래 시스템의 모델이 얼마나 좋은지에 따라 유사한 결과를 생성하는 동작에 가깝습니다.

시스템 구성 요소의 에뮬레이터는 더 큰 시스템에 포함되어 에뮬레이션중인 구성 요소를 완전히 대체 할 수 있습니다. 시뮬레이터는 원래 구성 요소 동작을 충분히 정확하게 표현하지 못하기 때문에 불가능합니다.


"에뮬레이터는" 소프트웨어 기반의 하드웨어 시뮬레이터에 대한 용어입니다, 그러나 일반적으로 두 사람은 동의어이다.


하드웨어 개발 세계에서 왔습니다. . .

시뮬레이션 테스트 기능. 2 + 2 = 4 등

에뮬레이션은 특정 환경 (64 비트, 16 비트, 손가락 및 발가락)에서 기능을 테스트합니다.

다음은 음식의 예입니다.

당신은 빵 두 조각, 칼 하나, 땅콩 버터, 젤리를 가지고 있고 그들을 유치원생에게 줄 것입니다. 샌드위치 만드는 방법에 대한 지침을 작성합니다.

시뮬레이션에서는 프로세스를 수행하고, 항아리를 연 척하고, 땅콩 버터를 펴는 척합니다.

지침의 끝에서 땅콩 버터가 아닌 젤리 만 남는 경우 시뮬레이션에 실패한 것이므로 지침을 수정해야합니다. 반면에 완전한 "샌드위치"가있는 경우 지침이 유효해야합니다.

에뮬레이션에서는 실제 부품 (동일한 빵, 칼 땅콩 버터 등)의 근접 표현을 사용합니다. 유치원생에게 값싼 플라스틱 칼과 정말 두꺼운 땅콩 버터를 주면 어떻게 될까요 ?? 나이프는 에뮬레이션이 중단되고이 문제를 수용하기 위해 지침을 명확히하거나 수정해야합니다. 이 경우에는 전자 레인지에 땅콩 버터를 데우는 것이 좋습니다.

실제로 : 프로그래밍중인 64 비트 시스템과 실제로 코드를 실행할 32 비트 시스템을 고려하십시오. 두 개의 매우 큰 숫자를 추가하고 결과를 인쇄합니다. 시뮬레이션에서는 모든 것이 작동합니다 (두 개의 숫자를 추가 할 수있는 코드를 올바르게 얻었습니다). 그러나 에뮬레이션에서는 잘못된 답을 얻었습니다. 어떻게 된 거예요? 32 비트 시스템의 에뮬레이션은 많은 수를 처리 할 수 ​​없습니다. 이것은 올바른 기능 (예 : 시뮬레이션)의 예이지만 런타임 환경 (에뮬레이션)에 대한 적절한 지원은 아닙니다.


내가 틀렸다면 용서 해주세요. 그리고 저는이 두 용어에 대해 어떤 연구도하지 않았 음을 미리 인정해야합니다. 어쨌든...

에뮬레이션은 내부 동작이 실제로 무엇이든간에 세부적으로 알려진 결과로 무언가를 모방하는 것입니다. 우리는 일을 끝내려고 할뿐 내부에서 일어나는 일에 대해서는별로 신경 쓰지 않습니다.

반면 시뮬레이션은 알려진 행동으로 무언가를 모방하여 아직 알려지지 않은 것을 연구하는 것입니다.

내 2 센트


여기에 예가 있습니다. 우리는 최근에 아직 개발되지 않은 시스템의 원격 전송 응답 시간을 측정하기 위해 시뮬레이션 모델을 개발했습니다. 에뮬레이션 분석은 대역폭 용량을 업그레이드 할 시간에 대한 답을 얻지 못했을 것이므로 시뮬레이션이 우리의 접근 방식이었습니다. 우리는 주로 대역폭 요구 사항을 결정하는 데 관심이 있었기 때문에 시스템 처리가 아닌 트랜잭션 크기와 볼륨에 주로 관심을 가졌습니다. 시뮬레이션 모델은 개별 이벤트 프로세스를 모델링하도록 설계된 독립 실행 형 소프트웨어에 있습니다. 질문에 대한 답변으로 요약하면 에뮬레이션은 시뮬레이션의 한 유형입니다. 그러나이 경우 시뮬레이션은 새로운 시스템을 완전히 나타내지 않고 트랜잭션의 크기와 볼륨만을 나타 내기 때문에 에뮬레이션이 아닙니다.


I was confused between the two processes. I found this simple explaination about the difference between Emulators and Simulators

  1. Simulator:
    Suppose you have written assembly program in a file and corresponding exe file is ready. The simulator is the pc software which reads the instructions from the exe and 'minmics' the operation of the processor.

  2. Emulator:
    Emulator is a (PC software + a processor). The Processor can be plugged into the TARGET BOARD when you want to test the developed software in real time to check run time bugs. When not in use it can be unplugged. The Processor will have a parallel or JTAG interface with the PC for downloading the exe file for execution.

Hence, whereas the Simulator is slow in execution, Emulator will be able to give real time verification of the developed code. Generally you will test your developed code on simulator first and then go for checking on emulator.

source : http://www.dsprelated.com/groups/c6x/show/148.php

참고URL : https://stackoverflow.com/questions/2174638/whats-the-difference-between-emulation-and-simulation

반응형