메모리 계층 구조(Memory Hierarchy)란?
메모리 계층 구조는 메모리를 속도, 용량, 비용간의 절충 관계를 고려하여 필요에 따라 여러 가지 종류로 나타낸 구조를 의미합니다.
계층 구조에서 위쪽으로 올라갈수록 CPU 코어에 가까워지기 때문에 CPU가 메모리에 더 빨리 접근할 수 있지만, 그만큼 비용이 많이 들며 저장 용량이 적습니다.
레지스터
CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 기억장치이다.
프로세서에 위치한 고속 메모리로, 프로세스가 바로 사용할 수 있는 데이터(소량의 데이터, 처리 중인 중간 결과)를 담고 있는 영역이다.
컴퓨터에서 4대 주요 기능(기억, 해석, 연산, 제어)을 관할하는 장치이다.
CPU는 자체적으로 데이터를 저장할 방법이 없으므로 메모리로 직접 데이터를 전송할 수 없다.
따라서 연산을 위해서 반드시 레지스터를 거쳐야 하며, 이를 위해 레지스터는 특정 주소를 가리키거나 값을 읽어올 수 있다.
CPU 내부 레지스터 종류
- 프로그램 계수기(PC, Program Counter) : 다음에 실행할 명령어(instruction)의 주소를 가지고 있는 레지스터
- 누산기(AC, ACcumulator) : 연산 결과 데이터를 일시적으로 저장하는 레지스터
- 명령어 레지스터(IR, Instruction Register) : 현재 수행 중인 명령어를 가지고 있는 레지스터
- 상태 레지스터(SR, Status Register) : 현재 CPU의 상태를 가지고 있는 레지스터
- 메모리 주소 레지스터(MAR, Memory Address Register) : 메모리로부터 읽어오거나 메모리에 쓰기 위한 주소를 가지고 있는 레지스터
- 메모리 버퍼 레지스터(MBR, Memory Buffer Register) : 메모리로부터 읽어온 데이터 또는 메모리에 써야 할 데이터를 가지고 있는 레지스터
- 입출력 주소 레지스터(I/O AR, I/O Address Register) : 입출력 장치에 따른 입출력 모듈의 주소를 가지고 있는 레지스터
- 입출력 버퍼 레지스터(I/O BR, I/O Buffer Register) : 입출력 모듈과 프로세서 간의 데이터 교환을 위해 사용되는 레지스터
캐시
캐시(cache)는 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다. 이를 통해 데이터를 접근하는 시간이 오래 걸리는 경우를 해결하고 무언가를 다시 계산하는 시간을 절약할 수 있다.
실제로 메모리와 CPU 사이의 속도 차이가 너무 크기 때문에 그 중간에 레지스터 계층을 둬서 속도 차이를 해결한다.
이렇게 속도차이를 해결하기 위해 계층과 계층사이에 있는 계층을 캐싱 개층이라고 한다.
예를 들어 캐시 메모리와 보조기억장치 사이에 있는 주기억장치를 보조기억장치의 캐싱 계층이라고 할 수 있다.
CPU 캐시의 종류
- L1 캐시 : L1 캐시는 일반적으로 코어안에 내장되어 데이터 사용/참조에 가장 먼저 사용됩니다. L1 캐시는 보통 8~64KB 정도의 용량으로 CPU가 가장 빠르게 접근하며, L1 캐시에서 데이터를 찾지 못하면 L2 캐시를 참조합니다.
- L2 캐시 : L2 캐시는 L1와 비슷하지만 상대적으로 속도가 느리고, 64KB~4MB의 용량으로 상대적으로 많은 용량을 저장할 수 있습니다.
- L3 캐시 : L3 캐시도 동일한 원리로 작동하지만, 웬만한 프로세서에서는 L3 캐시 메모리를 사용하지 않습니다. (L2 캐시로 충분히 커버 가능)
메인 메모리(Main Memory)
주기억장치로 컴퓨터에서 수치, 명령, 자료 등을 기억하는 컴퓨터 하드웨어 장치이다.
메인 메모리의 구성
- RAM(Random Access Memory)
- 빠른 접근을 위해 데이터를 단기간 저장하는 구성 요소
- 사용자가 요청하는 프로그램이나 문서를 스토리지 디스크에서 메모리로 로드하여 각각의 정보에 접근
- 휘발성 기억 장치(전원 종료시 기억된 내용 삭제)
- 어느 위치에서든 똑같은 속도로 접근하여 읽고 쓸 수 있음
- 전원이 유지되는 동안 CPU의 연산 및 동작에 필요한 모든 내용 저장
- ROM(Read Only Memory)
- 컴퓨터에 지시사항을 영구히 저장하는 비휘발성 메모리(고정 기억 장치)
- 변경 가능성이 희박한 기능 및 부품에 사용
하드 디스크 드라이브(Hard Disk Drive, HDD)
보조 기억 장치로 비휘발성 데이터 장소이며, 비휘발성 데이터 저장소 중에서 가장 대중적이며 용량 대비 가격이 가장 저렴하다.
- Platter(플래터) : 데이터의 기록을 담당하며 하나의 하드디스크에 한 개 이상 장착할 수 있음. 플래터의 수가 많을수록 용량은 커지지만 안정성에 대한 문제 또한 증가됨.
- Spindle(스핀들) : 플래터의 회전을 담당.
- Actuator(액츄에이터) : 액츄에이터 헤드가 데이터를 읽을 수 있도록 액츄에이터 암을 움직이도록 하는 부분
- Head(헤드) : 데이터를 읽고 쓰는 부분
- Actuator Arm(액츄에이터 암) - 액츄에이터를 통해 구도오디며 하나의 디스크에 여러 개 달려 있고 암의 끝 부분에 헤드가 달려있음.
참고 자료
https://c4u-rdav.tistory.com/88
https://velog.io/@yu-jin-song/CS-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0
https://product.kyobobook.co.kr/detail/S000001834833
https://whitesnake1004.tistory.com/273
'백엔드 > 운영체제' 카테고리의 다른 글
[운영체제] 운영체제(OS) 메모리 관리 - (1) 연속 메모리 할당 (0) | 2023.04.26 |
---|---|
[운영체제] 캐시(Cache) (2) | 2023.04.25 |
[운영체제] 운영체제(OS), 시스템 콜(System Call) (0) | 2023.04.25 |
[운영체제] 세마포어(semaphore) 뮤텍스(mutex) 모니터(Monitor) (0) | 2023.04.24 |
[운영체제] 경쟁 조건(Race Condition)과 임계 구역(Critical Section) (0) | 2023.04.22 |