현재 나의 컴퓨터 시스템을 예시로 작성
CPU : i9 -10900k (10C 20T, Base Clock : 3.7GHz, L1 : 64KB, L2 : 2.5MB, L3 : 20MB, BusSpeed : 8GT/s)
RAM : ddr4 - 3600MHz cl 18 16GBx2
SSD : Samsung 970 EVO Plus 1TB (R 3,500 MB/s, W 3,300MB/s)
HDD : Toshiba hdwd110
OS : windows10(x64)
컴퓨터의 메모리 구조
Memory hierarchy
Memory hierarchy - Wikipedia
From Wikipedia, the free encyclopedia Computer architecture Diagram of the computer memory hierarchy In computer organisation, the memory hierarchy separates computer storage into a hierarchy based on response time. Since response time, complexity, and cap
en.wikipedia.org
일반적으로 피라미드의 위쪽으로 갈 수록 비싸고 빠르고 휘발성이고, 아래로 갈 수록 싸고 느리고 비휘발성 이다.
이와 같은 계층화 구조의 목적은 성능과 비용의 절충과 CPU의 메모리 엑세스 시간을 줄이기 위함이다.
레지스터
최상위 층은 CPU 레지스터로 휘발성 메모리며 CPU 칩셋 내부에 존재하며 아래 표와 같이 64비트 CPU에서 16개의 레지스터가 존재한다.
64-bit register | Lower 32 bits | Lower 16 bits | Lower 8 bits |
---|---|---|---|
rax | eax | ax | al |
rbx | ebx | bx | bl |
rcx | ecx | cx | cl |
rdx | edx | dx | dl |
rsi | esi | si | sil |
rdi | edi | di | dil |
rbp | ebp | bp | bpl |
rsp | esp | sp | spl |
r8 | r8d | r8w | r8b |
r9 | r9d | r9w | r9b |
r10 | r10d | r10w | r10b |
r11 | r11d | r11w | r11b |
r12 | r12d | r12w | r12b |
r13 | r13d | r13w | r13b |
r14 | r14d | r14w | r14b |
r15 | r15d | r15w | r15b |
또한, x64 CPU는 8개의 80-bit x87 레지스터들, 8개의 64-bit MMX 레지스터들(x87이랑 겹침), 128-bit SSE 레지스터들도 8개부터 16개까지 제공한다.
x64 Architecture
x64 Architecture - Windows drivers
The x64 architecture is a backwards-compatible extension of x86. It provides a legacy 32-bit mode, which is identical to x86, and a new 64-bit mode.
learn.microsoft.com
캐시
위에서 두번째층인 캐시 또한 휘발성 메모리며 CPU 칩셋 내부에 있으며 메모리로 부터 8GT/s 속도로 데이터를 가져오고, 레지스터에게 데이터를 제공한다.
캐시는 L1, L2, L3로 구분되며 20MB의 L3 캐시는 모든 코어가 공유하며, 각 코어가 L1 데이터 캐시 32KB, L1 명령 캐시 32KB (총 64KB L1 캐시), 256KB의 L2 캐시를 각 코어가 소유한다.
cache in intel Processors
캐시 크기의 유용성
컴퓨터의 성능을 측정하는 기준 중 하나인 fps(frame per sec)로 캐시 크기가 컴퓨터 전반적인 성능에 미치는 영향력을 보이겠다.
7950X3D와 7950X는 L3 캐시가 2배 차이나는것 이외에는 나머지 스펙이 같다(일부 스펙 차이는 3D쪽이 떨어짐). 하지만, 7950X3D가 무려 11.24%나 우세한 성능을 보인다.
정리하면, CPU 와 RAM 사이에 캐시는 유의미한 성능 향상을 보인다.
7950X3D vs 7950X
7950X3D vs. 13900KS 가슴이 뜨거워지는 대결
3D V-캐시와 16 코어 32 스레드퀘이사존 라이젠 9 7950X3D 벤치마크 안녕하세요. QM벤치입…
quasarzone.com
RAM
위에서 3번째 층에 존재하는 RAM(random access memory)은 휘발성 메모리로 사실상 제일 중요하게 관리되어야 하는 부분이다.
메모리는 실행하고자 하는 프로그램의 코드와 데이터가 적재되고, CPU는 메모리에 적재된 코드와 데이터만 처리한다.
현재 내 RAM은 3600MHz cl18의 속도로 동작하고 있다. Hz는 높을수록, cl은 낮을 수록 RAM의 속도가 빠른것이다.
RAM의 속도가 빠를수록, 캐시에 전달하는 데이터의 속도가 빨라져 시스템 전반적인 속도 향상이 일어난다.
최근에는 ddr5가 상용화 되어 8000MHz 속도도 심심치 않게 볼 수 있다.
DRAM(Dynamic Random Access Memory)분야는 삼성과 하이닉스가 세계 1,2위를 다투고 있다. (하이닉스 ddr5가 그렇게 좋다더라.. 우리나라 화이팅!)
보조 기억 장치
피라미드 아래부분을 담당하고 있는 보조 기억장치는 보통 ssd와 hdd로 구분할 수 있다.
ssd vs hdd
SSD | HDD | |
충격(내구성) | 강함 | 약함 |
용량 | 대용량 | 초 대용량 |
가격 | 비쌈 | 쌈 |
속도 | 빠름 | 느림 |
크기 | 작음 | 큼 |
위의 비교 표를 보다싶이 용량, 가격을 제외하고는 ssd가 우세하다.
서버같은 대용량 시스템에서는 hdd를 주로 사용하고, 노트북과 같은 가볍고 휴대성 내구성이 좋아야하는 제품에는 ssd가 주로 사용된다.
Western Digital(보조 기억 장치 제조사) ssd와 hdd비교
SSD와 HDD 비교: 게임, 속도 및 데이터 전송 | Western Digital
최고의 SSD 또는 HDD를 구입하여 오늘 Western Digital과 속도, 스토리지 용량, 및 내구성을 비교하고 빠른 무료 배송 혜택을 받으십시오.
www.westerndigital.com
보조기억 장치는 비휘발성?
보조 기억장치는 비 휘발성 메모리라고 하지만, 일부 부분에서는 잘못된 부분이 있다.
내가 사용하는 970evo plus 1TB는 무려 1GB의 LPDDR4 RAM이 있다.
이렇게 휘발성 메모리인 DRAM을 포함하는 여부로 DRAM Less 라고 부르기도 한다.
이와같이 보조 기억장치에 DRAM이 있는 MMU역할을 하기 위해서이다!
DRAM에는 메모리 매핑 테이블이 있어 원하는 데이터에 접근할때 인덱스까지 탐색하는 시간을 줄여준다.
BX500 vs MX500 다나와 비교
좌측은 디램리스, 우측은 디램 제품이고 나머지 스펙은 동일하다.
제일 위측 항목인 sequence 순차 읽기속도는 데이터를 순차적으로 읽어 매핑 테이블을 활용하지 않아 속도차이가 미미한것을 볼 수 있다.
아래 3개 항목은 데이터 사이즈별로 랜덤 접근 속도이다. 디램이 있는 우측 제품의 읽기 쓰기 속도가 확연히 빠른것을 알 수 있다.
그렇다면, 디램리스 제품은 느리게만 써야 하는것인가?
다행이도 mac, linux, windows 모두 비휘발성 메모리 호스트 컨트롤러 인터페이스 nvm express를 사용한다.
nvm express에서는 컴퓨터의 주기억장치 (host RAM)을 보조기억장치의 독자적인 DRAM으로 활용할 수 있게 하는
HMB(Host Memory Buffer) 기술이 있어 비슷하게 이용할 수 있다.
HMB는 디바이스에서 직접 단독으로 사용할 수 있는 메모리입니다. 디바이스는 이 메모리를 사용할 수 있지만, 깜짝 제거 또는 예기치 않은 전원 손실이 발생할 경우 데이터 손실 또는 데이터 손상이 없는지 확인해야 합니다. 할당 정책에 따라 이 함수는 디바이스의 최소 크기만큼 적게 또는 메모리가 전혀 없는 디바이스의 기본 크기만큼 할당할 수 있습니다. 이 함수는 가능한 한 적은 수의 물리적으로 연속된 주소 범위를 할당하려고 시도하지만 원하는 HMB 크기를 충족하기 위해 여러 물리적 주소 범위를 사용해야 할 수 있습니다.
HMB(Host Memory Buffer)
Windows의 HMB함수