본문 바로가기

programmer/Embedded

메모리 Section별 수행시간 차이 분석 2

 

Infineon Tricore 27x Block Diagram을 확인해 보면 각각의 메모리가 CPU와 어떤식으로 연결되어 사용되는지 확인 가능하다.

각각의 CPU 와 메모리 종류별 수행시간 차이를 분석해 보자.

한가지 방법으로 T32의 RunTime 기능을 사용해 수행 시간을 비교할 수 있다.(여러 방법이 있다.)

가지고있는 제어기 TC297Tx는 코어가 3개 이므로 Core0에서만 작동하도록 셋팅 하였다.

데이터 섹션 한정자 종류

한컴MDS 데이터 섹션 종류 설명

하기 이미지와 같이 자료형(int)와 변수명 사이에 한정자를 입력해 사용할 수 있다.

far', 'near', 'a0' 별 메모리 선언

여기서 __at(0x90000000) tc0_far_var0는 'Segment 9'에 포함되는 주소이므로 LMURAM에 선언되도록 설정 한 것이다.

하기 테이블을 참조하자.

수행 소스코드는 간단하게 자기 자신에 100을 더한다. (Printf나 이외 라이브러리 함수는 특정 Core나 Flash에 존재할 수있으므로 정확한 변수 테스트를 진행하기 위해서는 해당 변수를 사용하는 연산으로 Test해야한다.)

- tc0_far_var0 = tc0_far_var0 + 100;

F9000091  main:     movh.a    a15,#0x9000
0F48                    ld16.w    d15,[a15]0x0

- tc0_near_var1 = tc0_near_var1 + 100;

00007F85            ld.w      d15,0x70000000

- a0_var2 = a0_var2 + 100;
08000F19            ld.w      d15,[a0]-0x8000

각각 지정한 위치에 잘 할당되서 사용된 것을 확인 할 수 있다.

 

이제 각 변수 별 연산 수행시간을 비교할 차례이다. 하기 링크에 들어가 보면 Breakpoint로 수행시간을 확인할 수 있는 방법이 잘 나와 있다.

http://trace32.com/wiki/index.php/Useful_Function_in_TRACE32#.C2.A0_.C2.A0.ED.95.A8.EC.88.98_.EC.88.98.ED.96.89_.EC.8B.9C.EA.B0.84_.EC.95.8C.EC.95.84.EB.82.B4.EB.8A.94_.EB.B0.A9.EB.B2.95

 

 

Useful Function in TRACE32 - TRACE32

  TRACE32 상황별 유용한 기능    sYmbol Browser(source tree) 에 대한 설명 현재 로드된 ELF 파일의 sYmbol들에 대한 구조 및 내용에 대한 정보를 가지고 있는 윈도우입니다. 아래 그림과 같이 단축 아이콘

trace32.com

tc0_far_var0 수행시간은 408.000us 이다. 아무래도 LMU를 사용하기 때문에 소요 시간이 많이 걸리고 메모리 호출도 2회로 a0, near에 비해 assembly 호출이 많다.

tc0_far_var0 수행시간

tc0_near_var1 의 수행시간은 368.100us 이다. CPU와 근접한 메모리이고 호출도 1회 이기때문에 수행시간이 far에 비해 짧다.

tc0_near_var1 수행시간

a0_var2 의 수행시간은 385.300us 이다. 레지스터 접근이 제일 빠른것으로 아는대 near보다 많은 시간이 소요 되었다. 이것은 아마 Test Case나 구현 로직에 따라 다를 수 있다.

a0_var2 수행시간

본 실험은 MCU 코어나 Compiler, Linker, Assemble 설정에 따라 다를 수 있으므로 참고만 하면 좋겠다.

하기 동영상은 수행시간 Test 영상이니 참고하길 바란다.

20200727_1228540560.mp4
9.85MB

 

 

반응형
사업자 정보 표시
라울앤알바 | 장수호 | 서울특별시 관악구 봉천로 13나길 58-10, 404호(봉천동) | 사업자 등록번호 : 363-72-00290 | TEL : 010-5790-0933 | Mail : shjang@raulnalba.com | 통신판매신고번호 : 2020-서울관악-0892호 | 사이버몰의 이용약관 바로가기