ISA와 어셈블리
x86의 명령어 'add eax, [rbx]'처럼 연산 명령어가 메모리 상의 값을 직접 사용할 수 있는 방식에 대해 올바른 것은?
- A명령어 수는 적게 할 수 있지만 하나의 명령어 안에 메모리 읽기와 연산이 포함된다
- B로드-스토어 아키텍처라고 하는 방식이다
- C메모리 값을 사용하는 연산은 레지스터끼리의 연산과 반드시 같은 시간에 끝난다
정답과 해설 보기
정답: A. 명령어 수는 적게 할 수 있지만 하나의 명령어 안에 메모리 읽기와 연산이 포함된다
x86에서는 하나의 명령어로 '메모리에서 읽어 더하기'를 할 수 있으며, 같은 처리를 RISC-V로 쓰면 lw와 add의 2개 명령어가 됩니다. 명령어 수나 코드는 작아지기 쉬운 반면 명령어마다 일의 양이 제각각이어서 파이프라인으로 다루기 어려워집니다. 그래서 현재의 x86 CPU는 내부에서 이러한 명령어를 로드와 덧셈 같은 단순한 동작(마이크로 오퍼레이션)으로 나누어 실행합니다.