명령어(instruction)의 순서를 바꿔 성능을 더 좋게 만들 수 있는 경우가 있다.이번 글은 명령어 스케줄링을 알아보자. 순서를 바꾸더라도 기능이 달라지면 안된다.순서를 마음대로는 바꿀 수 없고, dependency 때문에 제약이 발생한다. 어떤 명령어를 옮겨야 하드웨어적으로 성능이 좋을까?옮겨도 기능적으로 문제가 없을까? 이 두가지를 고려해야한다. 컴퓨터 구조론을 학습했다면 아래 그림이 어느정도 익숙할 것이다. 코드를 짤 때 하나씩 실행될 것이라고 생각하고 짜지만,실제로 명령어는 여러 명령어에 대해 병렬 실행이 된다.이렇게 cpu의 병렬 구조에 맞는 스케줄링을 해야한다. 또는 동시에 같은 레지스터에 값을 쓰는 것도 불가능하다.이런 식으로 여러가지 동시에 실행이 불가능한 경우들이 있다. 따라서 co..