컴퓨터구조 노트
메모리 맵과 인터럽트의 원리를 알아야 데이터시트와 레퍼런스 매뉴얼이 읽힙니다.
컴퓨터구조
폰 노이만 구조와 하버드 구조
코드와 데이터를 같은 길로 읽느냐, 따로 읽느냐. Cortex-M이 두 구조를 섞어 쓰는 이유까지 정리했습니다.
컴퓨터구조CPU 내부 구조: 가져오고, 해석하고, 실행하기
레지스터, ALU, 프로그램 카운터, 그리고 명령어를 가져와 실행하는 반복. CPU가 하는 일은 이 루프가 전부입니다.
컴퓨터구조파이프라인: 명령어를 겹쳐서 처리하기
빨래를 세탁, 건조, 개기로 나눠 겹쳐 하듯 CPU도 명령어 처리 단계를 겹칩니다. 분기가 느린 이유도 여기서 나옵니다.
컴퓨터구조메모리 계층: 빠를수록 작고 비싸다
레지스터, 캐시, SRAM, Flash, 외부 메모리. 각 계층의 속도와 용량 차이를 알면 변수를 어디에 둘지가 보입니다.
컴퓨터구조메모리 맵: MCU의 모든 것은 주소가 있다
코드는 Flash에, 변수는 SRAM에, 주변장치 레지스터도 정해진 주소에 있습니다. 데이터시트의 메모리 맵 읽는 법.
컴퓨터구조버스와 주변장치: AHB, APB, 메모리 맵 I/O
CPU가 GPIO를 움직이는 방법은 메모리에 값을 쓰는 것과 같습니다. 주변장치를 잇는 버스 구조와 클럭 활성화가 필요한 이유.
컴퓨터구조스택과 힙: 함수 호출이 쌓이는 곳
함수를 부를 때마다 쌓이는 스택, 런타임에 빌려 쓰는 힙. 임베디드에서 스택 넘침과 힙 사용을 조심하는 이유.
컴퓨터구조인터럽트와 예외: 하던 일을 멈추고 다녀오기
이벤트가 생기면 CPU가 상태를 저장하고 처리 루틴으로 뛰었다가 돌아옵니다. Cortex-M에서 그 과정이 어떻게 일어나는지 정리했습니다.
컴퓨터구조DMA: CPU 없이 데이터를 옮기는 일꾼
메모리와 주변장치 사이의 복사를 하드웨어가 대신합니다. ADC 샘플링, UART 수신, SPI 디스플레이 전송이 빨라지는 원리.
컴퓨터구조ARM Cortex-M 개요: M0부터 M7까지
Cortex-M 코어별 차이와, ARM이 설계한 코어에 ST, NXP 같은 회사가 주변장치를 붙여 MCU 제품군을 만드는 방식.