공식 4, 문제 46
메모리·마이크로프로세서
ROM, RAM, CPU, 인터럽트, UART, SPI, I2C, 타이머
메모리
- 용량 = 2주소선× 데이터 폭, 1K=210, 1M=220
- SRAM: FF, 빠름, 리프레시 ×, 캐시 / DRAM: 커패시터, 리프레시 ○, 주기억
- ROM: Mask(제조 시) → PROM(1회) → EPROM(자외선 소거) → EEPROM/플래시(전기적 소거)
- 칩 확장: 워드(깊이) 확장 → 디코더로 칩 선택 / 비트(폭) 확장 → 주소선 공통
CPU 레지스터
| 레지스터 | 역할 |
|---|
| PC | 다음 명령 주소 |
| IR | 현재 명령 |
| MAR | 메모리 주소 |
| MBR(MDR) | 메모리 데이터 |
| AC | 연산 결과 |
| SP | 스택 최상단 |
| PSW/플래그 | 상태(Z, C, S, V) |
주소 지정 방식 (메모리 참조 횟수)
- 즉시(0) < 레지스터(0) < 직접(1) < 레지스터 간접(1) < 간접(2)
- 상대: EA = PC + 변위 / 인덱스: EA = 인덱스 레지스터 + 주소 / 베이스: 베이스 레지스터 + 변위
입출력·인터럽트
- 프로그램 I/O(폴링) → 인터럽트 I/O → DMA(CPU 미경유, 사이클 스틸링) → 채널(I/O 프로세서)
- 인터럽트 우선순위: 전원 이상 > 기계 착오 > 외부 > 입출력 > 프로그램 검사 > SVC
- 인터럽트 처리: 현재 명령 완료 → PC·상태 저장(스택) → ISR → 복귀
마이크로컨트롤러(MCU) 주변장치
| 장치 | 핵심 |
|---|
| 타이머/카운터 | 분주비(프리스케일러)로 주기 설정, 오버플로 인터럽트, PWM 듀티 = ON 시간/주기 |
| 워치독 타이머 | 일정 시간 내 리셋(클리어) 없으면 시스템 리셋 → 폭주 방지 |
| UART | 비동기, 클록선 없음, 시작·정지 비트, 보율(baud) 일치 필요 |
| SPI | 동기, SCLK·MOSI·MISO·SS 4선, 전이중, 마스터/슬레이브 |
| I²C | 동기, SCL·SDA 2선(오픈 드레인 + 풀업), 주소로 장치 선택, 반이중 |
| ADC | 분해능 n비트 → Vref/2n, 샘플링 주파수 ≥ 2 × 신호 최고 주파수 |
구조
- 캐시: 참조의 지역성(시간·공간), 평균 접근 T=htc+(1−h)tm
- RISC: 단순·고정 길이, 하드와이어드, Load/Store / CISC: 복잡, 마이크로프로그램
- 폰 노이만: 명령·데이터 같은 메모리(병목) / 하버드: 분리(대부분의 MCU)
핵심 공식
자주 틀리는 포인트
- EPROM=자외선, EEPROM=전기
- 즉시 주소 지정은 메모리 참조 0회
- SPI 4선(전이중) vs I²C 2선(주소 지정)
- 워치독 = 폭주 시 리셋