CPU (Central Processing Unit)의 핵심 부분 중 하나로서 산술 및 논리 연산을 수행하는 장치
산술 연산
논리 연산
역할: 프로그램 내의 계산과 비교 작업을 처리하여, 결과를 CPU 내부의 레지스터에 저장하거나 메모리로 보낸다
CPU 내부의 다른 장치와 컴퓨터 시스템의 나머지 부분(메모리, 입출력 장치 등)을 제어한다
제어부(Control Unit)
내부 버스
역할: 메모리와 입출력 장치 간의 데이터 이동을 관리한다
레지스터
매우 빠른 속도로 데이터를 임시 저장하는 작은 메모리 공간
데이터 레지스터: ALU에서 사용되는 데이터나 결과 값을 저장
주소 레지스터: 메모리 주소를 저장하여 특정 메모리 위치에 접근하는 데 사용
명령어 레지스터 (Instruction Register): 현재 실행 중인 명령어를 저장
프로그램 카운터 (Program Counter, PC): 다음에 실행할 명령어의 주소를 저장하는 레지스터
캐시 메모리
CPU가 자주 사용하는 데이터를 임시로 저장하여 접근 속도를 빠르게 하는 메모리
L1 캐시: CPU 내부에 통합되어 있으며, 가장 빠르고 크기가 작다
L2 캐시: L1보다 크고, CPU 내부나 외부에 위치한다
L3 캐시: 일부 고성능 CPU에서 제공되며, L2보다 크고 느리지만 여전히 빠르다
역할: 연산에 필요한 데이터나 주소를 빠르게 저장하고 전달함으로써, CPU의 연산 속도를 극대화한다
명령어 인출 (Fetch): 제어 장치는 메모리에서 실행할 명령어를 가져옵니다.
명령어 해석 (Decode): 가져온 명령어를 해석하여 어떤 작업을 해야 할지 결정합니다.
명령어 실행 (Execute): ALU나 다른 장치를 사용하여 명령어를 실행합니다.
결과 저장 (Writeback): 연산 결과를 레지스터에 저장하거나 메모리에 기록합니다.
클럭
CPU 내부에서 일정한 주파수를 가지는 신호로, 이 신호로 모든 명령어가 동작
1Hz면 1초에 한 번의 주기. 1기가 헤르츠라고 하면 1초에 1기가만큼 즉, 10억번의 명령어를 처리.
코어
중앙처리 장치 역할을 하는 블록
멀티 코어들은 싱글 코어에 비해서 마치 여러 개의 CPU가 작동하듯이 많은 연산을 빠르게 병렬 처리한다
컴퓨터 메모리는 데이터를 일시적 또는 영구적으로 저장하는 장치
주 기억 장치(Main Memory): CPU가 직접 접근할 수 있는 메모리로, 작업 중인 데이터와 프로그램을 저장한다
보조 기억 장치(Secondary Storage): 영구적으로 데이터를 저장하며, 전원이 꺼져도 데이터가 유지된다
RAM (Random Access Memory)
임의 접근 메모리로, 데이터의 저장 위치에 관계없이 모든 위치에 동일한 속도로 접근할 수 있다
종류:
DRAM
(Dynamic RAM): 데이터 저장을 위해 주기적인 리프레시가 필요합니다. 용량 대비 비용이 저렴하지만 속도가 상대적으로 느리다
SRAM
(Static RAM): 리프레시가 필요 없고, 더 빠르지만 비용이 비싸고 용량이 작다
특징:
휘발성(Volatile): 전원이 꺼지면 저장된 데이터가 사라진다
빠른 속도: CPU와 직접적으로 데이터를 주고받기 때문에 속도가 매우 빠르다
ROM (Read-Only Memory)
읽기 전용 메모리로, 제조 시 데이터가 기록되며 이후에는 변경할 수 없다
종류:
PROM
(Programmable ROM): 사용자가 한 번만 데이터를 기록할 수 있다EPROM
(Erasable PROM): 자외선을 이용해 데이터를 지우고 다시 기록할 수 있다EEPROM
(Electrically Erasable PROM): 전기적으로 데이터를 지우고 다시 기록할 수 있다특징:
비휘발성(Non-volatile): 전원이 꺼져도 데이터가 유지된다
느린 쓰기 속도: 주로 데이터를 읽는 용도로 사용된다
자기 디스크를 사용하여 데이터를 저장하는 장치
특징:
높은 용량: 대용량 데이터를 저렴한 가격에 저장할 수 있다
느린 접근 속도: 기계적인 움직임이 필요하므로 속도가 상대적으로 느리다
비휘발성: 전원이 꺼져도 데이터가 유지된다
플래시 메모리를 사용하여 데이터를 저장하는 장치
특징:
빠른 속도: 기계적인 움직임이 없기 때문에 데이터 접근 속도가 매우 빠르다
내구성: 충격에 강하고, 소음이 적다
비용: 용량 대비 가격이 HDD보다 높다
비휘발성: 전원이 꺼져도 데이터가 유지된다
레벨(Level):
L1 캐시: CPU 내부에 통합되어 있으며, 가장 빠르고 작은 용량을 가진다
L2 캐시: CPU 내부 또는 외부에 위치하며, L1보다 크고 약간 느리다
L3 캐시: 여러 코어가 공유하는 경우가 많으며, L2보다 더 크지만 상대적으로 느리다
특징:
고속 접근: 자주 사용되는 데이터를 저장하여 CPU의 대기 시간을 줄인다
비휘발성: 대부분 휘발성 메모리로, 전원이 꺼지면 데이터가 사라진다
가상 메모리는 주기억장치(RAM)와 보조기억장치(디스크)를 조합하여 사용하는 메모리 관리 기법
기능:
메모리 확장: 실제 RAM 용량을 초과하는 데이터를 디스크에 저장하여 실행할 수 있다
프로세스 격리: 각 프로세스가 독립된 메모리 공간을 가지도록 하여 안정성을 높인다
특징:
페이징(Paging): 메모리를 고정된 크기의 페이지로 나누어 관리한다
스와핑(Swapping): 필요에 따라 페이지를 RAM과 디스크 사이에서 이동시킨다
단점: 디스크 접근 속도가 느려 성능 저하가 발생할 수 있다
사용 가능한 모든 메모리 주소의 집합
물리적 주소 공간 (Physical Address Space)
실제 하드웨어 메모리(RAM)의 물리적 위치를 나타내는 주소들의 집합
특징:
컴퓨터의 메모리 모듈에 실제로 존재하는 주소
주소의 범위는 시스템의 메모리 용량에 따라 결정
예: 32비트 시스템에서는 최대 4GB(2³²)까지의 물리적 주소 공간을 가질 수 있다
논리적 주소 공간 (Logical Address Space)
프로그램이 실행될 때 사용하는 주소 공간으로, 프로그램 코드와 데이터가 논리적으로 배치된 주소의 집합
특징:
프로그램이 인식하는 주소로, 실제 물리적 주소와는 다를 수 있다
운영 체제(OS)가 주소 변환(Address Translation)을 통해 논리적 주소를 물리적 주소로 매핑
논리적 주소 공간의 크기는 프로그램이 사용할 수 있는 가상 메모리의 크기에 따라 결정
예: 32비트 시스템에서는 논리적 주소 공간도 최대 4GB를 지원할 수 있지만, 실제로는 가상 메모리 관리 방식에 따라 달라질 수 있다
메모리 주소 지정
컴퓨터가 메모리 내의 특정 위치를 식별하고 접근하는 방법
직접 주소 지정: CPU가 메모리의 실제 주소를 직접 지정하여 접근
간접 주소 지정: 메모리 주소를 저장한 레지스터나 변수를 통해 간접적으로 접근
인덱스 주소 지정: 인덱스 레지스터를 사용하여 배열과 같은 데이터 구조에 접근
메모리 용량
시스템이 동시에 처리할 수 있는 데이터의 양을 의미. 용량이 클수록 더 많은 프로그램과 데이터를 동시에 처리할 수 있다
비트와 바이트: 메모리 용량은 주로 바이트 단위로 측정됩니다. 1 바이트는 8 비트로 구성
단위: 킬로바이트(KB), 메가바이트(MB), 기가바이트(GB), 테라바이트(TB) 등이 사용
데이터 저장과 접근
메모리는 프로그램 실행 중 필요한 데이터를 저장하고 빠르게 접근할 수 있도록 한다
CPU는 메모리에 저장된 데이터를 읽고 쓰며, 이를 통해 프로그램이 원활하게 실행된다
시스템 성능 향상
빠른 메모리는 CPU의 대기 시간을 줄여 시스템의 전반적인 성능을 향상시킨다
예를 들어, 캐시 메모리는 자주 사용되는 데이터를 저장하여 RAM에 접근하는 시간을 단축시킨다
데이터 무결성과 안정성
적절한 메모리 관리 기법은 데이터의 무결성을 유지하고, 시스템의 안정성을 보장한다
가상 메모리는 메모리 공간을 효율적으로 관리하여 여러 프로세스가 안정적으로 실행되도록 한다