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

실습

  1. 데스크탑은 x86 이고, 임베디드의 경우 ARM 임. 따라서 ARM 전용 컴파일러를 이용해야 함. 그리고 임베디드 시스템에서 binary 코드를 다운받고 binary 를 execute 해 주어야 함. 즉 1. 프로젝트를 만들고 2. 소스 코드를 쓰고, 3. 프로젝트를 빌드하고(전처리, 컴파일, 링크) 4. 바이너리 파일을 다운로드 받은 뒤에 5. 바이너리 파일을 실행해야 함.
  2. 모듈의 경우 development 보드와 release 보드에 차이가 있음. 개발 시에 필요한 테스트 코드가 release 버전의 보드에서는 없어지게 됨.
  3. 임베디드 시스템 개발에는 하드웨어 스키메틱(도안)과 데이터시트(연결 방법과 구체적인 사용법)가 필요함. 둘 다 설명서 같은 개념
  4. 임베디드 시스템 개발에 필요한 것들.