mov할때 각각의 오퍼랜드를 메모리로 하면 메모리간에 데이터가 복사가 되는건가요? 레지스터를 통하지 않고 이런것이 가능할까요?
기계어 코드상의 제약때문에 안됩니다.
Written By the Black Knight of Destruction
메모리에서 메모리로 바로 복사는 할 수 없습니다.
반드시 레지스터를 통해서 복사해야 합니다.
메모리와 메모리간에 복사는 DMA를 이용하면 CPU의 관여 없이 할 수 있지만... HW/SW 적으로 여러 제약 사항이 있습니다.
참고로 첨부파일에 메모리에서 메모리로 대량의 데이터 복사시 최적화 방법에 대한 AMD CPU 기준의 자료를 올렸습니다.
MMX의 레지스터를 이용하던지.. prefetch 를 이용한 cache를 사용을 통해 최대 속도를 얻는 방법을 기술하고 있습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
기계어 코드상의 제약때문에 안됩니다.
기계어 코드상의 제약때문에 안됩니다.
Written By the Black Knight of Destruction
DMA...
메모리에서 메모리로 바로 복사는 할 수 없습니다.
반드시 레지스터를 통해서 복사해야 합니다.
메모리와 메모리간에 복사는 DMA를 이용하면 CPU의 관여 없이 할 수 있지만... HW/SW 적으로 여러 제약 사항이 있습니다.
참고로 첨부파일에 메모리에서 메모리로 대량의 데이터 복사시 최적화 방법에 대한 AMD CPU 기준의 자료를 올렸습니다.
MMX의 레지스터를 이용하던지.. prefetch 를 이용한 cache를 사용을 통해 최대 속도를 얻는 방법을 기술하고 있습니다.
댓글 달기