2008년 8월 2일 토요일

ARM9TDMI 프로세서의 5단계 동작

■ Fetch
pc가 가르키는 메모리 주소로부터 명령어를 읽는다. 이 명령어는 코어로 로드된후, 코어 파이프라인의 다음 단계로 진행된다.
■ Decode
이전 사이클에서 읽어들인 명령어를 해독한다. 만약 이전 단계에서 입력 오퍼랜드들이 사용되지 않았다면 레지스터 뱅크에서 입력 오퍼랜드들도 읽어들인다.
■ ALU
이전 사이클에서 해독한 명령어를 실행한다. 이 명령어는 pc-8(ARM 상태) 또는 pc-4(Thumb 상태)의 주소에서 읽는 것이다. ALU는 보통 데이터 처리 연산을 위한 결과값을 계산하거나 로드, 스토어, 분기 연산을 위한 주소값을 계산한다. 어떤 명령어들은 이 단계에서 여러 사이클을 소모 할 수 있다. 예를 들어, 다중 로드-스토어 명령어와 레지스터 기반의 시프트 연산을 여러 ALU 사이클을 소모한다.
■LS1
로드-스토어 명령어에 의해 규정된 데이터를 읽거나 저장한다. 로드-스토어 명령어가 아니라면 이 단계는 영향을 미치지 않는다.
■LS2
바이트 또는 하프워프 로드 명령어에 의해 로드된 데이터를 제로-또는 부호- 확장한다. 8비트 바이트 또는 16비트 하프워드를 로드하는 명령어가 아니라면 이 단계는 영향을 미치지 않는다.