Preview
- CPU 역할
- ALU
- CU
- Register
- 캐시 메모리
- CPU 성능
- 명령어 사이클
- 명령어 처리 방식
- 인터럽트
- 병렬 처리 기법
본 게시물은 기술노트알렉, 「코딩 자율학습 컴퓨터 구조와 운영체제」, 길벗출판사, 2025 를 학습하고 작성되었습니다.
CPU 역할
- 명령어 실행, 연산 처리, 제어 신호 처리, 데이터 이동 및 저장, 프로세스 관리 및 멀티태스킹
ALU
- CPU의 핵심 구성 요소로 연산을 수행
ALU 구성 요소
- 연산 선택기: 어떤 연산 수행할지 결정
- 산술 연산 회로: 사칙 연산 처리
- 논리 연산 회로: 논리 연산 처리
- 비교 회로: 데이터 크기 비교
- 시프트 회로: 비트 연산, 데이터 압축이나 암호화에 활용
- 상태 플래그: 연산 결과에 대한 추가 정보 제공
제로 플래그(zero flag): 연산 결과가 0일 때 설정
부호 플래그(sign flag): 연산 결과가 음수일 때 설정
캐리 플래그(carry flag): 덧셈 연산에서 자리 올림 발생하면 설정
오버플로 플래그(overflow flag): 부호 있는 연산에서 오버플로 발생하면 설정
CU
- 명령어 해석하고 컴퓨터 구성 요소가 올바르게 작동하도록 조정
CU 구성 요소
- 명렁어 해독기(instruction decorder): IR에 저장된 명령어 해석해 어떤 작업 수행할지 결정
- 제어 신호 생성기(control signal generator): CPU 내부 구성 요소와 메모리, 입출력 장치로 보낼 제어 신호 생성
- 명령어 사이클 제어기(instruction cycle control): 명령어 올바른 순서로 처리하도록 조정
Register
- CPU 내부에 있는 작은 크기의 초고속 기억 장치
Register 구조
- 입력 회로: 데이터를 레지스터에 저장
- 출력 회로: 레지스터에 저장된 데이터 읽어 CPU 다른 구성 요소로 전달
- 제어 회로: 레지스터의 데이터 읽기, 쓰기 동작 조정
Register 종류
- 일반 목적 레지스터: 연산 수행에 필요한 데이터 임시로 저장
-
- 명령어 레지스터(IR, Instruction Register): 메모리에서 가져온 명령어 임시 저장
- 프로그램 카운터(PC, Program Counter): 다음에 실행할 명령어의 메모리 주소 저장
- 누산기(AC, Accumulator): 산술 연산 및 논리 연산의 결과를 임시로 저장
- 메모리 주소 레지스터(MAR, Memory Address Register): 메모리에서 데이터 참조할 때 사용할 메모리 주소 저장
- 메모리 데이터 레지스터(MDR, Memory Data Register): 메모리에서 읽어온 데이터 또는 저장할 데이터 임시 저장
- 스택 포인터(SP, Stack Pointer): 스택 최상단 위치 가리키며, 함수 호출 및 반환 시 사용
- 상태 레지스터(status register): ALU에서 수행한 연산 결과에 따른 상태 정보 저장특수 목적 레지스터: CPU 제어나 시스템 운영 등 특정 기능 수행하는데 사용
캐시 메모리
- CPU 내부 또는 가까이 있는 매우 빠른 속도의 기억 장치
- CPU와 RAM 사이 중간 역할, 자주 사용하는 데이터 임시 저장해 처리 속도 높임
- L1, L2, L3 계층 구조로 숫자가 작을수록 CPU에 가깝고(빠르고) 용량이 작음
CPU 성능
- 클럭 사이클(clock cycle): 클럭 신호의 한 주기, CPU가 명령어 처리하는 데 걸리는 최소 시간 단위
- 클럭 속도(clock speed): CPU가 초당 수행할 수 있는 클럭 사이클 수, 보통 기가헤르츠(GHz) 단위로 표현, 높을수록 CPU가 단시간에 많은 연산 수행, 클럭 사이클과 반비례 관계
- IPC(Instructions Per Cycle): CPU가 클럭 사이클당 처리 가능한 명령어 개수, 높을수록 같은 클럭 속도에서도 더 많은 명령어 처리
- 명령어 처리량: CPU가 단위 시간(1초) 동안 처리할 수 있는 명령어 개수
- 클럭 사이클 = 1 / 클럭 속도(GHz)
- CPU 처리 속도 = 클럭 속도 x 명령어 처리량
- 명령어 처리량 = 클럭 속도 x IPC
명령어 사이클
- 명령어 인출: 메모리에서 명령어 로드
- 명령어 해석: 연산 코드와 오퍼랜드 분석해 실행할 작업 결정
- 오퍼랜드 인출: 작업에 필요한 데이터를 메모리나 레지스터에서 로드
- 명령어 실행: ALU 등 하드웨어 사용해 작업 수행
- 결과 저장: 연산 결과를 메모리 또는 레지스터에 저장
명령어 처리 방식
- CPU 아키텍처: 컴퓨터 시스템이 명령어 처리하고 실행하는 방식 정의하는 설계 개념
| CISC | RISC |
| Complex Instruction Set Computer | Reduced Instruction Set Computer |
| 복합 명령어, 가변 길이 명령어 사용 | 단순 명령어, 고정 길이 명령어 사용 |
| 소프트웨어에 부담 적고 높은 생산성 | 소프트웨어 부담 크고 호환성 낮음 |
| 설계 어렵고 속도 느림 | 구조 단순하고 속도 빠름 |
인터럽트
- CPU가 현재 작업 중단하고 하드웨어 또는 소프트웨어 요청 우선 처리하는 메커니즘
인터럽트 종류
- 소프트웨어 인터럽트: 프로그램 코드나 시스템 요청에서 발생
- 하드웨어 인터럽트: 키보드, 마우스 등 외부 장치에서 발생
인터럽트 처리 과정
- 인터럽트 발생: 하드웨어 또는 소프트웨어가 CPU에 인터럽트 요청
- 인터럽트 요청 확인: CPU가 인터럽트 플래그 주기적으로 확인
- 컨텍스트 저장: 인터럽트 처리 완료하고 원래 작업 다시 실행하기 위해 컨텍스트(프로그램 실행 상태, PC, SP, Register 값 등의 정보) 저장
- 인터럽트 우선순위 확인: 긴급 시스템 오류 같은 중요한 인터럽트 우선 처리, 덜 중요한 인터럽트 대기
- 인터럽트 서비스 루틴 실행: 인터럽트 벡터 테이블(각 인터럽트 요청과 인터럽트 서비스 루틴 주소 매핑한 테이블) 참조해 적절한 인터럽트 서비스 루틴 실행
- 인터럽트 처리 완료: 인터럽트 플래그 초기화하여 새로운 인터럽트 요청 받을 준비
- 컨텍스트 복원 및 작업 재개: 컨텍스트 복원해 원래 작업으로 돌아감
병렬 처리 기법
- 여러 명령어를 동시 또는 겹쳐 실행해 처리 속도 높이는 기술
- 파이프라이닝: 명령어 처리 과정을 여러 단계로 나눠 병렬로 처리해 CPU 처리량 증가
- 슈퍼스칼라: CPU에 실행 유닛(ALU, FPU, load/store Unit) 추가해 명령어 병렬로 처리
- 슈퍼 파이프라이닝: 기존 파이프라이닝 단계 더 세분화해 더 많은 명령어 동시 처리
- VLIW: 긴 명령어 워드에 여러 독립적인 명령어 포함해 병렬 처리 효율 극대화
'코딩자율학습단 > 컴퓨터구조와 운영체제' 카테고리의 다른 글
| [컴구&OS] 5장. 보조 기억 장치 (0) | 2025.07.10 |
|---|---|
| [컴구&OS] 4장. 메모리 (0) | 2025.07.10 |
| [컴구&OS] 2장. 데이터와 명령어 (0) | 2025.07.01 |
| [컴구&OS] 1장. 컴퓨터 구조와 운영체제 개요 (0) | 2025.06.30 |