프리 페치 유닛 은 , 디 코딩 ( 1240 ) 을 위하 여 또는 프로세서 코어 ( 1200 ) 에 의한 처리 를 위하 여 필요 한 것 이전 에 인터페이스 ( 1220 ) 를 통해 외부 메모리 또는 다른 디바이스 로부터 명령 및 / 또는 데이터 를 획득 하 기 위하 여 , 명령 페치 유닛 ( 1230 ) 의 필요 성 및 / 또는 데이터 로드 / 저장 유닛 ( 1270 ) 의 데이터 로딩 기능 을 예측 하 기 위하 여 프리 페치 컨트롤러 의 제어 하 에서 동작 한다 . 프로그램 코드 의 선형 실행 의 경우 에 , 프리 페치 유닛 ( 1250 ) 은 현재 실행 되 는 명령 보다 빨리 프로그램 명령 을 프리 페치 하 도록 단순히 작동 할 수 있 다 . 프리 페치 된 명령 이 이미 명령 페치 유닛 ( 1230 ) 에서 사용 가능 하 기 때문 에 , 이것 을 수행 하 는 것 은 명령 페치 동작 ( 1230 ) 의 대기 시간 을 감소 시킬 수 있 다 . 유사 하 게 , 일부 유형 의 데이터 액세스 에 대하 여 , 데이터 자체 가 합리 적 으로 예측 가능 한 방식 으로 액세스 되 고 있 다면 데이터 의 프리 페치 는 예측 가능 할 수 있 고 , 신뢰 성 있 게 유용 할 수 있 다 . 그러나 , 다른 상황 에서 , 프리 페치 유닛 ( 1250 ) 은 , 예 를 들 어 , 브랜치 ( branch ) 명령 의 목표 어드레스 에서 명령 을 프리 페치 하 기 위하 여 , 브랜치 명령 의 결과 가 아직 결정 되 지 않 은 프로그램 의 실행 시점 에서 , 더욱 추론 적 으로 작동 할 수 있 다 . 예 를 들 어 , 브랜치 명령 은 레지스터 ( 1210 ) 의 일부 를 형성 하 고 아직 완전히 실행 되 지 않 은 명령 의 실행 결과 에 적용 되 는 특정 조건 또는 상태 를 나타내 는 조건 플래그 또는 이 와 유사 한 것 에 종속 할 수 있 다 . 따라서 , 이러 한 상황 에서 , 프리 페치 유닛 ( 1250 ) 은 명령 이 프리 페치 되 고 있 는 목표 어드레스 로 의 프로그램 흐름 에서 브랜치 를 발생 시킬 수 있 는 명령 의 결과 의 예측 또는 예상 을 이용 하 고 있 어야 한다 . 이러 한 브랜치 예측 기술 은 자체 로 알려져 있 고 , 정확 한 결과 를 생성 할 수 도 있 고 생성 하 지 않 을 수 도 있 다 ( 즉 , 예측 은 결국 정확 한 것 으로 증명 될 수 도 있 고 증명 되 지 않 을 수 도 있 다 ) .