CPU 내부 구조: 가져오고, 해석하고, 실행하기
레지스터, ALU, 프로그램 카운터, 그리고 명령어를 가져와 실행하는 반복. CPU가 하는 일은 이 루프가 전부입니다.
구성 요소
- 프로그램 카운터(PC): 다음에 실행할 명령어의 주소
- 레지스터 파일: CPU 안의 아주 빠른 저장 공간. Cortex-M은 r0~r15
- ALU: 덧셈, 뺄셈, 비트 연산, 비교를 하는 계산기
- 제어 장치: 명령어를 해석해 각 부분에 무엇을 할지 신호를 보냄
- 상태 레지스터: 결과가 0인지, 음수인지, 자리올림이 있었는지 기록하는 플래그
명령어 사이클
- Fetch: PC가 가리키는 주소에서 명령어를 읽는다
- Decode: 어떤 연산인지, 어느 레지스터를 쓰는지 해석한다
- Execute: ALU가 계산하거나 메모리를 읽고 쓴다
- PC를 다음 명령어로 옮기고 1로 돌아간다
분기 명령어는 PC 값을 직접 바꿔서 흐름을 다른 곳으로 보냅니다. if와 for가 기계어에서는 비교 명령어 + 조건 분기로 바뀝니다.
임베디드 관점
72MHz CPU가 대부분의 명령어를 1클럭에 처리하면 1초에 약 7200만 개의 명령어를 실행합니다. 제어 루프의 시간 예산을 계산할 때 이 숫자가 출발점입니다.