파이트라인 컴퓨터의 명령어

반응형
  • 명령어 처리
    • 명령어당 소요되는 사이클을 줄이면 시스템 성능은 향상
    • 1세대 RISC 프로세서의 목표는 하나의 사이클에 하나의 명령어를 수행하는 것이고, 진보된 프로세스들의 목표는, 하나의 사이클에 여러 개의 명령어를 수행하는 것
         
  • 명령어 수행 과정
    • IF(명령어 인출, Instruction Fetch)
      명령어 캐시로부터 다음에 수행될 명령어 인출
    • ID(명령어 해독, Decode/Register Fetch)
      수행될 명령어를 해독하고, 레지스터 오퍼랜드를 읽음
    • EX(명령어 수행, Execution/Effective Address)
      명령어를 수행하고 메모리 연산의 유효 주소를 계산
    • MEM(메모리 참조, Memory Access/Branch completion Cycle)
      메모리 참조 및 분기 명령어 수행
    • WB(Write-Back Cycle)
      연산 결과 및 메모리 참조 내용을 레지스터에 저장    
  • 해저드(Hazards)
    • 해저드는 다음 명령어가 지정된 클록에서 계속 수행되는 것을 방해하는 것
    • 해저드를 해결하는 가장 단순한 방식은 해저드의 요인이 소멸될 때 가지 파이프라인을 중지하는 것
    • 해저드의 종류
      • 구조적 해저드(Structural Hazards) : 하드웨어가 여러 명령어의 수행을 지원하지 않기 때문에 발생하며 자원 충돌이 일어남
      • 데이터 해저드(Data Hazards) : 명령어가 현재 파이프라인에서 수행 중인 이전 명령어의 결과에 종속되는 경우에 발생
      • 제어 해저드(Control Hazards) : 분기 명령어에 의해 발생
문제점 발생 원인 해결책
구조적
해저드
  • 자원 충돌
  • 메모리 충돌과 레지스터 충돌 등 자원 충돌
  • 모든 구조적 해저드를 제거하기는 어렵고 비용이 비쌈
  • 해결하기 위한 자원 중복은 일관성 문제 야기
  • 명령어 메모리와 데이터 메모리로 분리
데이터
해저드
  • 데이터 의존성
  • 명령어간 충돌로 이전 명령어의 결과에 의존
  • ALU1의 결과가 ALU2의 입력에 피드백 하게 하는 메커니즘(포워딩)
  • 해저드를 감지하여 해결될 때까지 Pipeline Stall
  • 컴파일러에 의한 명령어 스케줄링
제어
해저드
  • 분기 곤란
  • 조건, 무조건 분기 또는 명령어 PC(Program Counter)를 변경
  • 컴파일 시 패치(Fetch)에서 분기를 알아냄
  • 분기 예측은 과거 실행 내역 및 빈도를 이용하여 확률적으로 예측
  • 지연 분기는 명령어 실행 순서를 재배치하여 분기 명령어의 실행을 지연

▶ 해저드의 문제점 및 해결책

반응형

'밥벌이 > 운영체제' 카테고리의 다른 글

병렬 컴퓨터 개요  (0) 2011.01.24
구조적 특징에 의한 병렬 컴퓨터의 분류  (0) 2011.01.24
클러스터 개요  (0) 2011.01.21
클러스터 구성의 장점  (0) 2011.01.21
클러스터 사용 목적에 따른 분류  (0) 2011.01.21