인프런 커뮤니티 질문&답변

chltnckd7님의 프로필 이미지

작성한 질문수

ARM Cortex-M 프로세서 프로그래밍

s310_PUSH POP 명령과 컨텍스트

push pop 명령 및 기타 질문 드립니다.

22.12.04 11:47 작성

·

195

·

수정됨

1

안녕하세요. 강의 잘 듣고 있습니다.

1.ppt 자료에서는 push명령어를

push sp, {r0,r1} 이런식으로 sp,를 적어주었는데

실습에서 sp가 빠져있는데요.

sp,는 push, pop 명령에서 적지 않아도 디폴트로 적용되는 건가요?

2.Cortex M3에서도 M4에서 사용한 모든 어셈블리 언어를 M3에 똑같이 적용할 수 있나요?

3.LDMIA 명령어 설명해주실 때 DRAM이라서 빠르다고 해주셨는데 만약 메모리가 SRAM일지라도 더 빠른가요?

4. Arm cortex는 AVR과 다르게 메모리를 SRAM이 아닌 DRAM으로 사용하나요?

감사합니다!

답변 1

1

홍영기님의 프로필 이미지
홍영기
지식공유자

2022. 12. 04. 20:57

안녕하세요. chltnckd7님~

제 강의에 관심을 가져주시고, 시청해주셔서 감사해요 ^^. 질문에 답변드립니다.

Q1.ppt 자료에서는 push명령어를

push sp, {r0,r1} 이런식으로 sp,를 적어주었는데

실습에서 sp가 빠져있는데요.

sp,는 push, pop 명령에서 적지 않아도 디폴트로 적용되는 건가요?

A1. 교재 오타입니다.  죄송합니다! 수정하여 다시 올렸습니다

Q2.Cortex M3에서도 M4에서 사용한 모든 어셈블리 언어를 M3에 똑같이 적용할 수 있나요?

A2.M4 의 경우 부동 소수점 연산 명령어가 들어가 있고, MPU 장치가 있기 때문에 M3 대비 사용 가능한 명령어가 추가되는 부분을 제외하고는 동일하다고(호환된다고) 보시면 됩니다.

Q3.LDMIA 명령어 설명해주실 때 DRAM이라서 빠르다고 해주셨는데 만약 메모리가 SRAM일지라도 더 빠른가요?

A3. 일반적인 DRAM 은 구조적인 특징 때문에 속도에 관한한 SRAM 에 비해 느립니다. 하지만, SDRAM 이나 DDR 메모리들은 BURST 트랜잭션(액세스) 을 사용할 수 있기 때문에 페이지 액세스를 통해 더 빠른 속도를 만들어 낼 수 있다는 것입니다. 그것은 순차 액세스(주소의 증가를 동반한)를 이끌어낼 수 있는 LDMIA , STMIA와 같은 명령어를 통해서 가능하다고 하는 거죠. SRAM 은 이미 그 자체로 속도가 빠르기 때문에 단지 이 명령어를 사용하였다고만 해서 추가적인 성능 향상을 볼 수는 없을 것입니다.

Q4. Arm cortex는 AVR과 다르게 메모리를 SRAM이 아닌 DRAM으로 사용하나요?

A4. ARM CORTEX-A 는 고성능 프로파일이라서 리눅스와 같은 운영체제를 실행하는 경우가 많기 때문에 대용량의 메모리가 필요하죠. 그래서 DRAM 류의 메모리를 많이 사용하고 있고, CORTEX-M 는 저가형 저성능 프로파일이라서 소용량의 MCU 내장 SRAM 을 많이 사용하고 있습니다.

chltnckd7님의 프로필 이미지
chltnckd7
질문자

2022. 12. 15. 10:39

Q4 질문 관련 추가 질문 드립니다.

저희가 실습용으로 쓰는 디스커버리보드는 CORTEX-M4이기 때문에 SRAM이 장착되어 있기 때문에 강의에서 나온 BURST 트랜잭션의 효과는 볼 수 없다는 뜻으로 이해해도 될까요??

홍영기님의 프로필 이미지
홍영기
지식공유자

2022. 12. 15. 20:22

안녕하세요. chltnckd7님

그렇습니다. 그리고 DRAM 에서의 성능 개선 목적으로의 BURST 버스 오퍼레이션은 SRAM 에서는 지원하지 않습니다.