2014-06-07 9 views
4

팔 웹 사이트에서 Cortex-a9 프로세서에 대한 지시 타이밍이 제공됩니다.팔 명령 타이밍에 관해

각 명령의 Instruction Link

, 타이밍 (예로서 VADD 명령어를 사용하여) 아래와 같은 형식의 표에 주어진 하다 (구체적으로는, I는 약 네온 벡터 명령을 말하고)

NAME FORMAT Cycle  Source Result Writeback 
VADD Dd,Dn,Dm 1   -,2,2  3   6 

나는 표가 무엇을 말하려고하는지 잘 이해하고 있습니다. 예를 들어 값이 3 인 결과는 이고이 명령어의 결과는 사이클 3에서 사용할 수 있으며이 명령어의 결과에 따라 에 의존하는 다른 명령어는 결과를 원활하게 사용할 수 있습니다.

하지만 내 질문은 :

이 경우이주기의 수를 계산하기 시작합니까? 명령이 발행 된 후에 계산됩니까?

명령어가 페치되고 디코딩 된 후 실행되도록 명령이 프로세서로 보내지는 경우 문제가 발생합니다. 그런 다음 디코드 및 패치 사이클이 테이블에 표시되는 이유는 무엇입니까? 그것은 매우 중요한 정보입니다. 왜냐하면 에 페치 및 디코드 사이클을 알 필요가 있기 때문에 이전 명령의 결과 인 에 의존하는 명령을 부드럽게 실행하기 위해 기다려야하는 사이클의 수를 알 수 있어야합니다.

명확하고 정확한 응답 또는 찾는 장소를 높이 평가할 것입니다!

+0

내 게시물 오류를 수정 해 주셔서 대단히 감사합니다! –

답변

1

A9와 같은 복잡한 파이프 라인 프로세서에서 타이밍 테이블을 사용하는 것은 정말 어렵고 배은망스러운 작업입니다. 이 표는 이론 수업에 소요되는 시간의 절대적인 이론적 최소값을 제공하기 때문에 시뮬레이션을 더 잘 사용합니다. 현실과의 상관 관계는 다소 낮습니다. 당신이 당신의 캐시와 이것과 같은 외부 효과를 고려해야하기 때문입니다.

어쨌든, 여기이 테이블을 이해하고 있습니다. Cortex A9는 순서가 잘못된 실행을 지원하기 때문에 페치 및 디코드 사이클은 중요하지 않습니다. 그것이 그들이 문제 제기 시간에서 계산 한 이유입니다. 가져 오기 및 디코드 사이클을 직접 추가 할 수 있지만 이전 지침의 효과와 메모리 장벽과 같은 요소를 고려하여 정확하게 계산해야합니다.

위 표는이 명령어의 최소 발행 시간이 1 사이클임을 보여줍니다. 따라서 정지를 피하기 위해 다음 사이클 (사이클 2)에서 소스 값을 사용할 수 있어야합니다. 명령은 소스 결과가 표시된 후에 실행하는 데 한 번만 소요되므로 CPU 내에 전달 경로가 있으면 매우 다음 명령어가 결과를 사용할 수 있습니다. 그러나 결과가 결과에 액세스 할 수있는 모든 명령어가 보장되는 레지스터 파일에 커밋되기까지 또 다른 3 사이클 (사이클 6까지)이 필요합니다.

이상적인 상황에서는이 명령을 실행하는 데 1-6 사이클이 걸릴 수 있습니다. 캐시 대기 없음, 메모리 장벽 없음 등