pipelining 2

[system programming] out of order execution & operating system(os)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다 이번 시간에는 저번 시간에 이어out of order execution 부분을마무리 짓고 다음 파트인운영체제(os) 부분으로 넘어가보려고한다 하드웨어가 ooo exectution시에 코드의 순서를 정하는dynamic scheduling에 대해서 알아보자이건 전적으로 하드웨어가 담당하는 부분이다컴파일 타임이 아닌 실행 중에코드 실행 순서를 결정하기 때문에dynamic이라는 이름이 붙었다 우선 branch prediction과 speculation을 통해실행될 코드들을 예측하고이를 instruction window라고 하는 곳에 저장해둔다 그런 다음 false dependen..

[system programming] CPU 아키텍처 (pipelining hazards - stall, bypass, speculation)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 시스템 컴퓨팅 강의를학습을 목적으로 재구성하였습니다지난 시간에는 CPU 아키텍처를 배우면서각 step별 pipelining을 배웠고이런 pipelining 과정에서 각 단계마다 이쁘게 딱딱 맞아떨어지면 좋지만실제로는 예외 상황들이 자주 발생해서각 pipeline step간에 병목이 발생한다이러한 병목을 hazard라고 하고이러한 hazard는 주로 data 혹은 control dependency에 의해 발생한다따라서 hazard를 해결하기 위해 크게 3가지 방법이 있다고 했는데1. stall2. bypass3. speculation이라고 했다 그 중 stall은 가장 단순한 방법으로dependency가 해결될 때 까지 기다..