메모리 계층 구조(Memory Hierarchy)란?
메모리 계층 구조는 메모리를 속도, 용량, 비용간의 절충 관계를 고려하여 필요에 따라 여러 가지 종류로 나타낸 구조를 의미합니다.
계층 구조에서 위쪽으로 올라갈수록 CPU 코어에 가까워지기 때문에 CPU가 메모리에 더 빨리 접근할 수 있지만, 그만큼 비용이 많이 들며 저장 용량이 적습니다.
레지스터(Register)
레지스터는 CPU에 위치한 고속 메모리로 CPU가 바로 사용할 수 있는 데이터를 저장합니다.
- CPU(Central Process Unit)
중앙 처리 장치라고 불리며 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요 기능을 관할하는 컴퓨터의 대뇌라고 할 수 있는 장치입니다.
- CU(Control Unit)
제어 장치라고 불리며 CPU의 한 부품으로 입출력 장치 간 통신 및 조율을 제어합니다. 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정합니다.
- ALU(Arithmetic Logic Unit)
산술 논리 장치라고 불리며 덧셈, 뺄셈과 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱, 논리합 같은 논리 연산을 계산하는 디지털 회로입니다.
레지스터의 종류
종류 | 설명 |
프로그램 카운터 (PC, Program Counter) |
다음 실행할 명령어의 주소를 저장하는 레지스터 |
누산기 (AC, Accumulator) |
ALU 내부에 위치하며 산술 및 논리 연산 중에 사용되는 레지스터로 연산 결과 데이터를 일시적으로 저장 |
명령어 레지스터 (IR, Instruction Register) |
현재 수행 중인 명령어를 저장하는 레지스터 |
상태 레지스터 (SR, Status Register) |
현재 CPU의 상태를 저장하는 레지스터 |
메모리 주소 레지스터 (MAR, Memory Address Register) |
메모리로부터 읽어오거나 메모리에 쓰기 위한 주소를 저장하는 레지스터 |
메모리 버퍼 레지스터 (MBR, Memory Buffer Register) |
메모리로부터 읽어온 데이터 또는 메모리에 써야할 데이터를 저장하는 레지스터 |
I/O 주소 레지스터 (I/O AR, I/O Address Register) |
입출력 장치에 따른 입출력 모듈의 주소를 저장하는 레지스터 |
I/O 버퍼 레지스터 (I/O BR, I/O Buffer Register) |
입출력 모듈과 프로세서 간의 데이터 교환을 위해 사용되는 레지스터 |
캐시(Cache)
캐시는 대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리입니다.
- Processor
프로세서는 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리회로입니다. (Processor >= CPU, CPU는 디바이스가 해야 할 일을 총지휘하는 프로세서라고 보면 됨)
- Core
코어는 각종 연산을 하는 프로세서의 핵심 요소로 프로세서의 내부에는 코어를 제외하고 컨트롤러, 캐시 메모리 등이 있습니다. 1개의 코어를 싱글코어, 2개인 코어를 듀얼코어라고 하며, 코어 수가 많을수록 병렬 처리 효율이 증가합니다.
캐시의 종류
L은 Level을 의미합니다.
- L1 캐시
L1 캐시는 일반적으로 코어안에 내장되어 데이터 사용/참조에 가장 먼저 사용됩니다. L1 캐시는 보통 8~64KB 정도의 용량으로 CPU가 가장 빠르게 접근하며, L1 캐시에서 데이터를 찾지 못하면 L2 캐시를 참조합니다.
- L2 캐시
L2 캐시는 L1와 비슷하지만 상대적으로 속도가 느리고, 64KB~4MB의 용량으로 상대적으로 많은 용량을 저장할 수 있습니다.
- L3 캐시
L3 캐시도 동일한 원리로 작동하지만, 웬만한 프로세서에서는 L3 캐시 메모리를 사용하지 않습니다.( L2 캐시로 충분히 커버 가능)
메인 메모리(Main Memory)
주기억장치로 컴퓨터에서 수치, 명령, 자료 등을 기억하는 컴퓨터 하드웨어 장치입니다.
메인 메모리의 구성
1) RAM(Random Access Memory)
- 빠른 접근을 위해 데이터를 단기간 저장하는 구성 요소
- 사용자가 요청하는 프로그램이나 문서를 스토리지 디스크에서 메모리로 로드하여 각각의 정보에 접근
- 휘발성 기억 장치(전원 종료시 기억된 내용 삭제)
- 어느 위치에서든 똑같은 속도로 접근하여 읽고 쓸 수 있음
- 전원이 유지되는 동안 CPU의 연산 및 동작에 필요한 모든 내용 저장
2) ROM(Read Only Memory)
- 컴퓨터에 지시사항을 영구히 저장하는 비휘발성 메모리(고정 기억 장치)
- 변경 가능성이 희박한 기능 및 부품에 사용
하드 디스크 드라이브(Hard Disk Drive, HDD)
보조 기억 장치로 비휘발성 데이터 저장소이며, 비휘발성 데이터 저장소 중에서 가장 대중적이며 용량 대비 가격이 가장 저렴합니다.
구성 요소
- Platter(플래터) - 데이터의 기록을 담당하며 하나의 하드디스크에 한 개 이상 장착할 수 있음. 플래터의 수가 많을수록 용량은 커지지만 안정성에 대한 문제 또한 증가됨.
- Spindle(스핀들) - 플래터의 회전을 담당.
- Actuator(액츄에이터) - 액츄에이터 헤드가 데이터를 읽을 수 있도록 액츄에이터 암을 움직이도록 하는 부분.
- Head(헤드) - 데이터를 읽고 쓰는 부분.
- Actuator Arm (액츄에이터 암) - 액츄에이터를 통해 구동되며 하나의 디스크에 여러 개 달려 있고 암의 끝 부분에 헤드가 달려있음.
메모리 계층 구조의 필요성
자주 쓰이는 데이터는 계속 쓰임(참조의 지역성)
큰 메모리를 사용한다 해도 그 메모리 안에 있는 모든 데이터를 고르게 접근하지 않습니다. 자주 쓰이는 데이터는 계속 자주 쓰이고, 자주 쓰이지 않는 데이터는 계속 자주 쓰이지 않으며 자주 쓰이는 데이터는 전체 데이터의 일부이기 때문에 상위 메모리의 용량이 하위 메모리의 용량보다 적어도 됩니다.
디코딩(명령어 해독 단계) 속도
CPU가 메모리에 접근할 때 컨트롤 신호를 복호화하여 해석해야 하는데 큰 메모리 용량을 사용할 경우 디코딩하는데 더 많은 시간이 소요됩니다. CPU가 빠르게 데이터에 접근하기 위해서는 더 작은 메모리를 사용해야 합니다.
경제성
상위 계층의 메모리일수록 더 비쌉니다.
참고 자료
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 시스템 콜(System Call) (0) | 2022.11.08 |
---|---|
[운영체제] 운영체제(OS) (0) | 2022.11.02 |