위 글의 작성목적

크래프톤 정글 5기를 통해 공유메모리나 레지스터 캐시 메모리, 메모리 계층 구조 등등 주요한 키워드들은 모두 살펴보았으나, 이들의 근원적인 차이점이나 역할에 대한 부분이 아직 내 머릿속에서 지엽적으로 그려져있단 생각이 들었다.
그래서 이 게시물의 경우 내 머릿속에 정확하게 남아있는 잔가지들은 생략하고 내가 놓치고 있던 그 숲은 무엇인지를 보고자 작성할 예정이다.

레지스터

내가 생각하는 레지스터의 주요 키워드는 램/ALU와의 차이/종류가 여러개 있다/필수구성요소/레지스터 파일이 있다.
레지스터 파일은 주요 키워드에 넣을지 말지 고민을 오래 하였으나, 레지스터와 후술할 캐시 메모리의 저장방식을 논할 때에 가장 중요한 키워드이기에 등장을 시켰다.

ALU는 정말 단순한 계산기

말 그대로 산술 연산처리만담당하는 친구이다.

레지스터는 종류가 여러개이다.

그래서 부동소수과 같은 특수한 역할을처리하는 애가 따로 있고, 주소값에 직접 접근하는 것도 가능하다.
또한 운영체제의 비트 수는 가상주소 공간의 크기를 결정하는 데 주소 레지스터가 한번에 처리 가능한크기 역시 이와 동일하게 설계되어야만 최적의 효율을 내줄 수가 있다.

캐시 메모리란

캐시는 DRAM과 cpu사이의 병목현상 해결을위해 나온 장치이다.
그래서 우리가 위에서 말한 레지스터와 임시저장장치라는 데에서는 유사할 수 있어도 저장방식 자체가 완전히 다르고 공유메모리이기 때문에 오는 설계의 어려움이 많다.
오버헤드 현상이나 처리하는 메모리 범위의 차이에서부터 오는 캐시 미스와 히트 현상그리고 그로 인해 오는 레이턴시(지연율)등이 그 어려움들이다.

병목현상은 왜 생기는가

cpu는 매우빠르다.
dram과 cpu는 버스를 통해 이동해야하는데 이 과정에서 메모리 컨트롤러도 거쳐야하고, 애초에 버스가 한번에 모든 데이터를 전송할 수 없기 때문에 큰 데이터라면 끊어서 전송하는 과정에서도 레이턴시는 발생할 수 밖에 없다.
또한 DRAM의 설계는 용량과 비용의 효율성 떄문에 속도보다는 대용량의 데이터를 어떻게 안전하게 전달하는가가 중점적으로 되어있어서 그렇다.

DRAM의 설계

dram은 1개의 트랜지스터와 캐패시터와 트랜지스터로 이루어져있다.
캐피시터의 경우 셀들을 해석하는 역할을 해주며, 트랜지스터는 스위치 역할을 해주는데 보다 자세한 설명을 읽고싶다면 여기에 들어가보면 상세하게 나와있다.
반도체 사관학교 블로그 링크

다음 게시물 일정

다음 게시물의 경우 아마도 D-ram과s-ram의 차이를 위주로 설명하는게시물과ssd의 삭제에 대해 좀 더 파볼 생각인데 ssd의 삭제는 게시물들이 하도 어려워서 좀 더 읽어봐야할 것 같다

댓글남기기