2.1.1. 연산 장치 구조 분석
1. 중앙처리장치(CPU) 내 주요 레지스터 구조
레지스터는 CPU 내부에서 데이터를 아주 빠르게 일시적으로 저장하는 공간입니다. 각 레지스터의 풀네임과 역할을 매칭하는 것이 시험의 핵심입니다.
- PC (Program Counter, 프로그램 카운터): 다음번에 실행할 명령어의 주소를 보관합니다. 실행 시마다 자동으로 증가합니다.
- MAR (Memory Address Register, 메모리 주소 레지스터): CPU가 읽거나 쓰려는 메모리의 주소를 일시적으로 보관합니다.
- MBR (Memory Buffer Register, 메모리 버퍼 레지스터): 메모리에서 읽어온 데이터나 메모리에 쓰려는 데이터를 일시적으로 보관합니다. (MDR이라고도 함)
- IR (Instruction Register, 명령어 레지스터): 메모리에서 가져온 현재 실행 중인 명령어 자체를 보관합니다.
- AC (Accumulator, 누산기): ALU의 연산 결과나 데이터를 일시적으로 저장하는 가장 대표적인 레지스터입니다.
- ID (Instruction Decoder, 명령어 해독기): IR에 있는 명령어를 해석하여 각 장치에 제어 신호를 보냅니다.
JTAG
칩 내부의 회로를 테스트하거나, 완성된 보드에서 CPU의 상태를 디버깅하고 펌웨어를 구울 때 사용하는 경계 주사(Boundary Scan) 표준 인터페이스.
| 핀 이름 | 풀네임 | 역할 설명 |
| TDI | Test Data In | 테스트 데이터를 칩 안으로 밀어넣는 입력 핀 |
| TDO | Test Data Out | 테스트 결과를 칩 밖으로 보내는 출력 핀 |
| TCK | Test Clock | 테스트의 동기화를 맞추기 위한 클록 신호 |
| TMS | Test Mode Select | 제어 상태(TAP Controller)를 결정하는 모드 선택 신호 |
| TRST | Test Reset | (선택 사항) 테스트 로직을 초기화하는 리셋 신호 |
2. 산술논리연산장치(ALU)의 구조와 동작
ALU는 실제로 계산을 수행하는 장치입니다. 크게 산술 연산과 논리 연산을 담당합니다.
- 산술 연산: 더하기($+$), 빼기($-$), 곱하기($\times$), 나누기($\div$) 등을 수행합니다. 내부적으로는 **가산기(Adder)**와 **보수기(Complementer)**를 사용하여 모든 사칙연산을 처리합니다.
- 논리 연산: AND, OR, NOT, XOR, Shift 등의 논리적인 판단을 수행합니다.
- 구성 요소:
- 가산기(Adder): 두 수의 합을 구합니다.
- 보수기(Complementer): 뺄셈을 위해 입력된 값을 보수로 변환합니다.
- 시프터(Shifter): 비트를 왼쪽이나 오른쪽으로 이동시킵니다.
- 상태 레지스터(Status Register): 연산 결과의 상태를 플래그로 저장합니다.
3. 상태 레지스터와 플래그(Flag) - ★매우 중요
ALU 연산 결과가 어떤 상태인지를 나타내는 지표입니다. 보기에 섞여 나오기 아주 좋습니다.
| 플래그 명칭 | 의미 | 설명 |
| Carry (C) | 올림수 |
연산 결과 자릿수가 넘어갔을 때 (Carry 발생) 1이 됨
|
| Zero (Z) | 0 결과 |
연산 결과가 정확히 0일 때 1이 됨
|
| Sign (S/N) | 부호 |
결과가 음수(−)이면 1, 양수(+)이면 0이 됨
|
| Overflow (V) | 오버플로 |
허용된 범위를 초과하여 계산 결과가 잘못되었을 때 1이 됨
|
| Interrupt (I) | 인터럽트 |
인터럽트 가능 여부를 표시함
|
- 주소는 MAR, 내용은 MBR: 이름에 Address가 들어가면 주소, Buffer가 들어가면 데이터(내용)입니다.
- 다음은 PC, 현재는 IR: '다음'이라는 단어가 보이면 무조건 PC를 고르세요.
- 연산의 중심은 AC: 연산 결과가 어디에 남느냐고 물으면 대부분 누산기(AC)가 답입니다.
- 보수기의 존재 이유: CPU는 뺄셈 장치가 따로 없어서, 보수기를 이용해 덧셈으로 뺄셈을 구현합니다.
'study > 컴퓨터시스템기사' 카테고리의 다른 글
| 2.1.3. 연산장치 응용: 멀티스레딩, 파이프라인 동작 분석 (0) | 2026.01.19 |
|---|---|
| 2.1.2. 명령어 활용 및 제어: 명령어 분석, 제어규칙, 마이크로 오퍼레이션 (0) | 2026.01.18 |
| 1.4.2. 시스템 소프트웨어 모듈: 디바이스 드라이버, 시스템 라이브러리 (0) | 2025.12.26 |
| 1.4.1. 인터페이스 구현: 시스템 콜(System Call), IPC(내부 프로세스 통신) (1) | 2025.12.24 |
| 1.3.1. 소프트웨어 모듈화: 모듈화 개념, 모듈의 독립성 및 재사용 (0) | 2025.12.24 |