프로그램의 실행 속도를 올리는 데에는 한가지 방법이 더 있다. 그것은 바로 머신 코드 실행 속도를 빠르게 하는 것이다.

스크린샷 2022-08-17 오후 8.11.23.png

프로그래밍 언어,알고리즘, 컴파일러 등을 통해서 머신코드가 최종 확정이 되면은 그걸 실행하는 cpu의 성능차례이다.

스크린샷 2022-08-17 오후 8.06.35.png

그래서 어떻게 하면 같은 cpu안에서 더 빠르게 instruction을 동작 시킬 수 있는지를 사람들이 고민한다.

1.파이프라인

스크린샷 2022-08-17 오후 8.12.40.png

첫번째는 파이프라인이다. 첫번째로 램에있는 숫자들에 모두 2를 곱해본다고 하자. 그러면 램에서 숫자를 꺼내와 레지스터 A에 저장해서 2를 곱한뒤 다시 제자리로 가져다 둘 것이다. 이거를 차례대로 반복하면

스크린샷 2022-08-17 오후 8.13.30.png

스크린샷 2022-08-17 오후 8.14.28.png

이런 단계가 될 것이다. 하지만 우리는 더 빨리 계산해야하기 때문에 숫자 1이 2가 곱해져서 저장되기까지를 기다려주지 않는다. 고로 동시에 이 작업을 해내는 것이다. 우리는 이것을 파이프 라인이라고 한다.

  1. 예측

    스크린샷 2022-08-17 오후 8.14.57.png

    우리가 자주 쓰거나 최근에 이용했던 문서들을 또 쓸 수 있다고 생각해서 미리 담아두는 것이다. 어느 곳에 담아두냐면

    스크린샷 2022-08-17 오후 8.15.45.png

    램도속도가빨라서 램에 담아둔다고 했지만 cpu와 램사이에 더 빠른 캐시가 있다. 컴퓨터는 이 캐시에 나중에 또 쓸꺼다 아니면 자주 쓰일 것이다 라고 예측한 파일을 담아둔다.

    스크린샷 2022-08-17 오후 8.16.54.png

    그리고 그 외의 원칙들도 존재한다.