embeded/ARM2015. 8. 26. 09:28

cortex-m3만 사용했는데 문득 M0 라던가 다른 모델군이 있는게 생각이 나서 검색..

일단은.. cortex-m3 는 그래도 나름! 풀 스펙에 가까운 표준형 cortex-m 시리즈라고 보면

M0는 숫자가 적은 만큼 마이너 버전이다.

그리고 M0/M1은 M3와 다르게 ARMv6 계열.. ㄷㄷㄷ

또한 Thumb 호환성도 조금 더 낮고(그래서 저전력/gate 수가 적다고)

결정적으로.. Hardware divider가 제외되어있다. 그나마 Hardware multiplier가 있는게 다행인가..


조금.. 의아한건..

M3/4/7이 Harvard 아키텍쳐인데 반해

M0/1은 폰 노이만으로의 회귀...


[링크 : https://en.wikipedia.org/wiki/Von_Neumann_architecture]

[링크 : https://en.wikipedia.org/wiki/Harvard_architecture]


[링크 : https://en.wikipedia.org/wiki/ARM_Cortex-M]


그런데 보다 보니 Saturated math라는게 보여서 링크를 따라가니.. 오홍.. 좋아 보이는데?!?!?!

간단하게 설명하면 더 큰 변수로 캐스팅, 계산 값 범위 비교, 클 경우 최대값 넣기

이 세가지를 한방에 끝내주는 연산이다. overflow로 인한 예측하지 못한 값에 의한 오류도 막아주고(물론 오차는 존재하지만)

if문에 의한 branch를 줄여주는 부분에서 상당한 장점이 있을 것으로 보인다.

[링크 : https://en.wikipedia.org/wiki/Saturation_arithmetic]

[링크 : http://www.arm.com/products/processors/cortex-m/]

'embeded > ARM' 카테고리의 다른 글

arm11 simd instruction  (0) 2015.10.01
cortex-A5/A7  (0) 2015.09.21
ARM926EJ / ARMv5TE  (0) 2015.07.28
Jazelle 관련 검색  (0) 2015.04.28
ltib 패키지 요구사항  (0) 2015.04.13
Posted by 구차니