오늘은 마이크로프로세서의 내부 구조에 대해서 설명드리겠습니다. 오래된 프로세서이지만 원리는 동일하므로 핵심만 정리하겠습니다. 기본적으로 프로그램 버스, 데이터 버스, 주변 장치, 그리고 내부 구조 중 핵심인 CPU 코어로 이루어져 있습니다.
마이크로프로세서 내부 구조 개요
ATmega32를 예시로 들면, 구성은 아래와 같습니다.
- PC가 지시하는 플래시 메모리의 명령어를 인출/해독하는 부분
- ALU(Arithmetic and Logic Unit) 산출 및 논리 장치
- 범용 레지스터(General Purpose Register)
- 상태 레지스터(Status Register : SREG)
- SP(Stack Pointer)의 명령 처리 관련 부분
- 데이터 메모리
- 각종 입출력장치 및 주변기기(SPI Unit, Interrupt Unit, Analog Comparator Unit)
상태 레지스터
상태 레지스터란 ALU 연산 상태를 표시합니다. 예를 들어 결과가 음수면 음수라는 정보를 저장합니다.
범용 레지스터
범용 레지스터는 프로그램 수행 중 중간 결과나 데이터를 일시적으로 저장하는 데 사용됩니다.
32개의 8bit 범용 레지스터 구조는 아래와 같습니다. R26~R31은 일반 레지스터의 기능 외 별도 기능을 가지고 2개씩 묶어 주소를 지정하는 포인터 레지스터의 용도로 사용할 수 있습니다. (6개의 레지스터를 2개씩 묶으므로 16bit 3개의 레지스터가 됩니다.)
스택 포인터 레지스터
스택 포인터는 서브루틴이나 인터럽트 발생 시 다시 돌아올 복귀 주소를 저장합니다.
서브 루틴: 필요 시 반복적으로 사용할 수 있는 프로그램
인터럽트: 실행 중 다른 조건으로 먼저 실행되는 프로그램
산술 논리 장치
AVR은 32개의 레지스터와 직접 연결되어 있습니다. ALU는 3가지 주요 기능을 합니다. 산술(Arithmetic), 논리(Logical), bit 연산(bit-operation)을 수행합니다.
이 글은 당근이의 AVR 갖고 놀기를 참조하였습니다.
'임베디드소프트웨어' 카테고리의 다른 글
8-Bit AVR 코어 살펴 보기 (레지스터, ALU, 메모리, 인터럽트) (0) | 2022.03.20 |
---|---|
AVR 마이크로프로세서의 메모리 (0) | 2022.03.17 |
마이크로컨트롤러의 구성 및 특징 (0) | 2022.03.07 |
마이크로프로세서와 마이크로컨트롤러의 차이 (0) | 2022.03.06 |
CPU 기본 구성 (0) | 2022.03.06 |
댓글