디지털·가전제품
14살꿈많던아이
컴퓨터는 왜 캐시, RAM, 저장장치처럼 여러 단계의 메모리를 쓰나요?
컴퓨터구조에서 캐시메모리, RAM, 하드디스크 순으로 메모리 계층이 있다고 배우는데, 하나의 빠른 메모리만 쓰지 않고 왜 이렇게 여러 단계로 나누는지 궁금합니다.
3개의 답변이 있어요!
돈만 많으면 빠른 메모리로 다 채울 수 있을 것 같지만 그렇지가 않습니다. 빠르면서 동시에 큰 메모리라는 물건은 만들 수가 없어요. 용량을 키우는 순간 느려지는 게 물리적인 성질이라, 계층은 돈을 아끼려는 타협이 아니라 어쩔 수 없이 나온 구조입니다.
왜 커지면 느려지느냐부터 보면 이해가 됩니다. 메모리는 주소를 받아 그 칸을 찾아가는 장치인데, 칸이 많아질수록 주소를 해석하는 회로가 깊어지고 신호가 지나갈 배선도 길어집니다. 빛조차 일 나노초에 삼십 센티미터밖에 못 갑니다. 씨피유는 일 초에 수십억 번 뛰니까 칩 안에서 몇 밀리미터냐 몇 센티미터냐가 그대로 성능 차이가 됩니다.
소자 구조도 다릅니다. 캐시에 쓰는 에스램은 한 칸에 트랜지스터가 여섯 개쯤 들어가고, 램에 쓰는 디램은 트랜지스터 하나와 축전기 하나로 만듭니다. 에스램은 훨씬 빠른 대신 자리를 여러 배 차지하고 비싸서, 씨피유 안에 넣을 수 있는 양이 애초에 제한됩니다.
그럼 작은 캐시로 어떻게 버티느냐, 여기서 지역성이라는 성질이 등장합니다. 프로그램은 방금 쓴 데이터를 곧 또 쓰고 그 옆자리 데이터도 이어서 쓰는 경향이 있습니다. 반복문 하나만 떠올려 보셔도 감이 오실 거예요. 그래서 최근 것만 작은 곳에 담아 둬도 실제 접근의 대부분이 거기서 해결됩니다.
비유하자면 책상과 책장과 도서관입니다. 책상을 도서관만큼 넓히면 좋을 것 같지만 그러면 손이 닿지 않아 오히려 느려집니다. 컴퓨터가 겪는 문제가 정확히 이겁니다.
차이를 숫자로 보면 더 분명합니다. 레지스터는 한 박자, 일차 캐시는 서너 박자, 이차 캐시는 십여 박자, 메인 메모리는 이삼백 박자, 에스에스디는 수십만 박자쯤 걸립니다. 한 단계 내려갈 때마다 자릿수가 바뀌니, 자주 쓰는 것을 위쪽에 붙잡아 두는 일이 그만큼 중요해집니다.
정리하면 메모리 계층은 지역성이라는 성질을 이용해 빠르고 큰 메모리를 흉내 내는 설계입니다. 프로그램 입장에서는 캐시만큼 빠르면서 저장장치만큼 큰 메모리를 쓰는 것처럼 보이게 되고, 그게 이 구조가 노리는 전부입니다.
채택된 답변안녕하십니까! 만나서 반갑습니다 한결같은코뿔소입니다! 저의 의견은 다음과 같습니다~
컴퓨터는 비용과 속도의 균형을 맞추기 위해 여러 단계의 메모리를 사용합니다. 하나의 빠르고 큰 메모리는 가격이 너무 비싸기 때문에, 용량은 작지만 빠른 캐시와 용량이 크고 저렴한 RAM, 하드디스크를 조합하여 효율성을 극대화하는 것입니다.
짧은 글이지만 제 답변이 마음에 드셨으면 좋겠네요 감사합니다!
반갑습니다. 아무래도깜찍한황새 인사드립니다!
빠른 메모리는 가격이 비싸고 용량이 작아서 효율적인 속도와 비용을 위해 메모리를 단계별로 나눠 사용합니다.
추가로 궁금하신점 있으시면 댓글 달아주세요! 확인하고 답변드릴께요!!