CPU와 아키텍처
마이컴 등에서 주변기기의 레지스터를 메모리와 같은 주소 공간에 할당하고 일반적인 메모리 읽기/쓰기 명령어로 조작하는 방식은?
- A가상 메모리
- B메모리 맵 I/O
- C캐시 코히런시
정답과 해설 보기
정답: B. 메모리 맵 I/O
메모리 맵 I/O에서는 타이머나 UART 등 주변기기의 제어 레지스터에 특정 주소를 할당하고 일반적인 로드/스토어 명령어로 조작합니다. 입출력 전용 명령어를 마련하는 방식(x86의 IN/OUT 등 포트 맵 I/O)에 비해 명령어 세트를 단순하게 할 수 있어 ARM과 RISC-V 마이컴에서 표준적입니다. 주변 레지스터는 캐시하지 않고, 컴파일러가 최적화하지 못하게 하는(volatile) 등의 주의가 필요합니다.
- A. 가상 메모리는 가상 주소와 물리 주소를 대응시키는 구조입니다.
- B. 정답입니다. 주변기기를 메모리 공간에 할당해 조작합니다.
- C. 캐시 코히런시는 여러 캐시 내용의 일관성을 유지하는 구조입니다.