본문 바로가기
Research/SystemProg

strongarm의 명령 한라인 수행하는데 걸리는 클럭과 계산 하는 방법을 알고 싶습니다 ..

by sunnyan 2004. 6. 13.
728x90
(출처: www.kelp.or.kr)

유영창 (2001년 11월 21일 오전 11:07)
StrongARM은 RISC 형식입니다.

즉 1 클럭에 1 명령이 실행되는 구조 입니다.

Intel에서 제공되고 있는 Developer's Manual 의 4장을 보면
각 명령당 소모하는 클럭수가 나옵니다.

특별한 명령을 제외하면 대부분 1클럭만을 소모합니다.

한가지 조심하여야 할것은

캐쉬가 있을때와
캐쉬가 없을때인데

캐쉬가 있을때는 예측이 조금 힘들고요..

캐쉬가 없을때에는 메모리에서 데이타를 패치하는 것은
메모리의 설정상황에 따라 달라집니다.


궁금이 wrote..
: strongarm의 명령 한라인 수행하는데 걸리는 클럭과 계산 하는 방법을 알고 싶습니다 ..  
[ 이글에 답장 | 본문에 답장 ]  

유영창 (2001년 11월 21일 오전 11:51)
정말 제가 잘 모르는 것에 대해서
끝까지 물어 보시는 군요...

일단 정확하지는 않지만 줏어 들은 이야기와 제 상상을 말씀드리지요

님이 원하시는 것은 아마도 타이밍에 대한 것일 겁니다.

하지만 이 것에 대한 명확한 답은 제가 말씀 드리기 힘들겠네요..
대신 StrongARM에서 내부적으로 처리하는 것에 대한
제가 알고 있는 것을 말씀드리겠읍니다.

일단 하나의 명령을 수행할때의 과정을 살펴 봅시다.

1. 명령을 메모리에서 인스트럭션 레지스터에 로드한다.
2. 해당 명령을 수행한다.
3. 만약 해당 명령이 데이타의 읽기나 쓰기가 필요하다면
메모리에 접근한다.

일단 위의 과정중 2 번이 1명령 수행 시간이 됩니다.
RISC 에서는 1 Clock 만 사용된다는 것입니다.

1 Clock은 PLL 셋팅에 다르죠 외부 크리스탈을 3.686에 설정했고 StrongARM1110이라면
200M 이상이 나옵니다.
이 1 클럭이 한 명령을 수행합니다.

이렇게만 따진다면 200회의 수행이 가능하다는 것입니다.
그런데 실제 1번과 3번 행위가 있죠?
그렇다면 이야기는 달라집니다.

ROM의 억세스 타이밍과 RAM 억세스 타이밍이 매우 다른데
보통 짧게는 4클럭에서 많게는 10클럭까지 먹을수 있읍니다.

그럼 실제 수행 시간은 더욱 느려지겠죠...

그래서 명령 캐쉬를 쓰는 것이고 파이프라인 방식을 사용합니다.
이에 대한 자세한 것은 저도 매뉴얼을 좀더 봐야 하겠네요...

여기까지가 제가 알고 있는 내용입니다.

일단 매뉴얼에는 한번 자세하게 찾아본후 다시 말씀드리지요...

질문에는 무조건 항복합니다.  
728x90