- 우리가 실습에서 쓰는 모듈에 들어가는 프로세서 = ARM Cortex - M Processor (프로세서 = cpu)
- Cortex M3 프로세서는 2005년에 ARM 에 의해 디자인되었고, 2006년에 제작됨.
- Cortex M4 프로세서는 2010년에 디자인되고 발표됨.
- Cortex M3 Cortex M4 프로세서의 특징
- 32비트 아키텍처. 레지스터의 비트수가 32비트인 경우를 32비트 아키텍처라고 한다. 이는 곧 32비트의 데이터를 한 번에 주고 받을 수 있는 datapath 를 가지고 있다고 볼 수 있다.
- 3 stage 의 파이프라인 디자인. 파이프라인은 자동차 생산라인을 생각하면 된다. 이는 곧 하나의 instruction 을 3개의 stage 로 쪼개서 하나의 stage 가 하나의 일을 담당함으로써 병렬성을 높인 디자인이다.
- 32비트의 주소 체계를 갖추고 있기 때문에 4GB(2^32) 의 메모리를 사용하게 된다. ?32비트 윈도우를 설치하면, 메모리가 16gb 가 있어도 32비트만 사용하기 때문에 4gb 밖에 없는 것처럼 보인다. 더 많은 공간이 있지만, 실제로 사용하는 것은 4GB..?
- ARM 이 마이크로컨트롤러를 만드는 것(생산)은 아니다. ARM 에서는 마이크로컨트롤러 안의 CPU 를 디자인할 뿐, 생산하는 업체는 아님. ARM 이 만드는 것: CPU 디자인, ISA, 프로토타입 CPU(검사용)
- 참고로 핸드폰에서는 마이크로컨트롤러를 사용하지 않는다. 더 복잡한 연산이 필요하기 때문에.
- ARM 이 프로세서 외에 flash memory 나 sram 등등 여러 가지 마이크로컨트롤러 안에 들어가는 것 디자인하는데, 이 중 프로세서만 사서 변형할 수도 있고, 전체를 다 살 수도 있음.
- 마이크로컨트롤러 선택할 때 고려 사항: → 골든 룰은 없음. 어떤 환경에서 어떤 기능을 가장 많이 사용하냐에 따라 달라짐
- memory 사이즈. 메모리 사이즈는 다다익선
- 배터리 효율성 즉 low power
- 성능 * 성능과 배터리 효율성은 반비례 관계. 즉 성능 좋아지려면 power 가 많이 필요함.
- 작동 환경. 예를 들어 온도. 0~40도 사이에서만 작동한다든지
- Cortex-M Processor 의 장점
- Low power
- Energy Efficiency
- Scalability ..?
- 퀄컴의 Snapdragon 과 Apple M1 과 Apple M2의 경우 같은 ARM 을 사용하고 같은 ISA 를 사용. CPU 가 같지는 않다. 그리고 둘 중 무엇이 빠르는지는 어떤 프로그램을 돌리느냐에 따라 다를 수 있다. 같은 ARM 의 무엇인지 ..?
- 태블릿은 10~20 와트, 모바일 CPU 6~7와트, 데스크탑은 150~200 와트. 따라서 모바일과 데스크탑의 차이가 있을 수밖에 없음. 성능이 높아질수록 배터리 사용량은 함께 높아질 수 밖에 없음.
- ISA 는 하드웨어와 소프트웨어 사이를 이어주는 언어이다. ISA 가 발전되는 경우는 두 가지인데
- 언어가 추가될 경우 ex) 곱하기
- 필요없는 instruction 을 제거하거나 (거의 사용되지 않는)
실습
- 데스크탑은 x86 이고, 임베디드의 경우 ARM 임. 따라서 ARM 전용 컴파일러를 이용해야 함. 그리고 임베디드 시스템에서 binary 코드를 다운받고 binary 를 execute 해 주어야 함. 즉 1. 프로젝트를 만들고 2. 소스 코드를 쓰고, 3. 프로젝트를 빌드하고(전처리, 컴파일, 링크) 4. 바이너리 파일을 다운로드 받은 뒤에 5. 바이너리 파일을 실행해야 함.
- 모듈의 경우 development 보드와 release 보드에 차이가 있음. 개발 시에 필요한 테스트 코드가 release 버전의 보드에서는 없어지게 됨.
- 임베디드 시스템 개발에는 하드웨어 스키메틱(도안)과 데이터시트(연결 방법과 구체적인 사용법)가 필요함. 둘 다 설명서 같은 개념
- 임베디드 시스템 개발에 필요한 것들.
- 대부분의 임베디드 시스템의 경우, 운영체제가 없기 때문에 실행해주는 하드웨어가 필요함. intialize 는 하드웨어 컴포넌트 초기화하는 역할을 함.