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를 줄여주는 부분에서 상당한 장점이 있을 것으로 보인다.
'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 |