메모리 계층 구조(Memory hierarchy) 란 메모리를 필요에 따라 여러가지 종류로 나누어 둠을 의미합니다. 이때 필요란 대부분의 경우 CPU가 메모리에 더 빨리 접근하기 위함입니다.
레지스터와 캐시는 CPU 내부에 존재. 당연히 CPU는 아주 빠르게 접근할 수 있다.
메모리는 CPU 외부에 존재한다. 레지스터와 캐시보다 더 느리게 접근 할 수 밖에 없다.
하드 디스크는 CPU가 직접 접근할 방법조차 없다. CPU가 하드 디스크에 접근하기 위해서는 하드 디스크의 데이터를 메모리로 이동시키고, 메모리에서 접근해야 한다. 아주 느린 접근 밖에 불가능하다.
비용적인 측면 : 레지스터, 캐시, 메모리, 하드 디스크는 하드웨어적으로 만들어지는 방법이 다를 때가 많다. 그리고 메모리 구조에서 상층에 속할 수록 더 비싸다.
자주 쓰이는 데이터는 계속 쓰임(참조의 지역성) : 자주 쓰이는 데이터는 계속 자주 쓰이고, 자주 쓰이지 않는 데이터는 계속 자주 쓰이지 않는다. 이를 이용해서 운영체제나 CPU는 자동으로 자주 쓰이는 데이터, 또는 자주 쓰일 것 같은 데이터를 메모리에서 캐시로 읽어온다. 자주 쓰이는 데이터는 전체 데이터 양에 비해 작은 양이기때문에, 캐시는 메모리보다 더 작아도 된다. 메모리와 하드 디스크의 관계도 마찬가지이다.
속도적인 측면 : CPU와 가까이 있는 레지스터가 가장 빠르게 접근가능하고 밑으로 내려갈수록 접근 속도가 느려짐
프로세서 레지스터 또는 단순히 레지스터는 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다.
레지스터는 용도에 따라 전용 레지스터와 범용 레지스터로 나뉜다. 레지스터가 어떻게 동작하는지는 운영체제 시간에 다룰예정입니다.
CPU 캐시는 메인 메모리에서 가장 자주 사용되는 위치의 데이터를 갖고 있는, 크기는 작지만 빠른 메모리이다. 대부분의 메모리 접근은 특정한 위치의 근방에서 자주 일어나는 경향이 있기 때문에, 데이터를 크기는 작지만 속도가 빠른 캐시메모리에 복사해 두면 평균 메모리 접근 시간을 아낄 수 있다.
프로세서가 메인 메모리를 읽거나 쓰고자 할 때는, 먼저 그 주소에 해당하는 데이터가 캐시에 존재하는지를 살핀다. 만약 그 주소의 데이터가 캐시에 있으면 데이터를 캐시에서 직접 읽고, 그렇지 않으면 메인 메모리에 직접 접근한다.
CPU에서 직접 접근이 가능한 메모리. 메모리(memory)는 종종 '기억 장치'라는 용어와 혼용되기도 하지만, 대체로는 주기억장치를 말하며 특히 램을 가리키는 경우가 많다.
대표적으로 RAM과 ROM이 존재합니다.
사용자가 자유롭게 내용을 읽고 쓰고 지울 수 있는 기억장치. 컴퓨터가 켜지는 순간부터 CPU는 연산을 하고 동작에 필요한 모든 내용이 전원이 유지되는 내내 이 기억장치에 저장됩니다. 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리입니다.
RAM은 어느 위치에 저장된 데이터든지 접근(읽기 및 쓰기)하는 데 동일한 시간이 걸리는 메모리이기에 ‘랜덤(Random, 무작위)’이라는 명칭이 주어졌습니다.
ROM은 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기는 불가능 합니다. 전원이 실제로 꺼져도 기억된 내용이 지워지지않는 비휘발성 메모리입니다. 실제로 ROM은 주기억장치로 사용되기보다는 주로 기본 입,출력 시스템(BIOS), 자가 진단 프로그램(POST)같은 변경 가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용합니다.
하지만 최근에는 일부분이 읽고 쓰기가 가능한 플래시 메모리 등으로 일부 대체되었다고 하는군요.
또한 전력 공급과 무관하게 데이터가 유지되는 비휘발성이라는 강력한 특징이 있어서, 모든 종류의 기계에 쓰입니다. 전기밥솥, 냉장고, 에어콘 등 가전제품 내부에도 쓰이죠.
종류로는 MASK ROM, PROM, EPROM, EAROM, EEPROM 이 있는데 각각에 대해서는 나중에 자세히 배울 것입니다.
플래시 메모리는 비휘발성 반도체 저장장치다. 전기적으로 자유롭게 재기록이 가능하다. ROM의 일종인 EEPROM으로부터 발전하여 현재의 모습으로 정착했다.
과거에는 PROM과 EPROM이 각종 펌웨어를 저장하고 있었지만, 요즘은 거의 플래시 메모리로 대체되고 있으므로 펌웨어 업데이트가 과거에 비해 매우 자유롭다.
롬에서 나온 것이니 롬의 일종으로 봐야 할 것 같지만, 플래시 메모리는 기록된 내용을 보존한다는 측면에서는 ROM과 유사한 특징이 있으면서도 메모리 어드레싱이 아닌 섹터 어드레싱을 한다는 특성으로 인해 주 기억 장치로 분류되는 ROM이 아닌 하드디스크와 유사한 보조 기억 장치로 분류된다. (나무위키 피셜... 위키피디아는 플래시 메모리를 ROM의 일종으로 분류하고 있음. 좀 애매한 존재)
대표적인 사용처가 바로 USB 메모리, microSD 카드
CPU에서 직접 접근이 불가능한 메모리. 접근하려면 디바이스 드라이버와 시스템 콜을 통하여 기억장치의 특정 위치의 내용을 주기억장치로 로드(Load)한 뒤 읽어야 한다.
SSD, HDD, CD, 자기테이프, 광디스크 등이 존재합니다.
출처 : https://www.remosoftware.com/info/kr/migrate-hdd-ssd-without-reinstalling-windows/
솔리드 스테이트 드라이브는 순수 전자식으로 작동하므로 기계식인 하드 디스크 드라이브(HDD)의 문제인 긴 탐색 시간, 반응 시간, 기계적 지연, 실패율, 소음을 크게 줄여 준다.
하드 디스크(hard disk)는 비휘발성, 순차접근이 가능한 컴퓨터의 보조 기억장치이다.
낸드플래시의 단가 하락으로 플로피 디스크의 뒤를 이어 역사의 뒤안길로 사라질 운명으로 보인다. 2017년 기준으로도 이미 SSD의 대중화가 이루어져 PC용 기준으로 HDD가 SSD에 점유율로 따라잡혔다.
이번시간에는 간단하게 메모리 계층구조가 어떻게 생겼으며 각각은 무엇인지 간단하게 살펴보았습니다.
다음시간부터는 CPU - 캐시메모리 - 메인메모리 간의 데이터 전송이 어떤식으로 이루어지는지 자세하게 알아볼 것입니다. 꽤나 힘든 공부가 될 거 같습니다...