SRAM vs DRAM Comparison
๊ฐ์
SRAM๊ณผ DRAM์ ๋ ๋ค ์ ์์ด ๊บผ์ง๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋ ํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ์ด์ง๋ง, ๋นํธ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ด ์์ ํ ๋ค๋ฆ ๋๋ค. SRAM์ cross-coupled inverter latch๊ฐ ๊ฐ์ ์ ์งํ๋ ๊ตฌ์กฐ๋ผ refresh๊ฐ ํ์ ์๊ณ , DRAM์ capacitor์ ์ ์ฅ๋ ์ ํ๋ฅผ ์ฝ๋ ๊ตฌ์กฐ๋ผ ์ฃผ๊ธฐ์ ์ธ refresh๊ฐ ํ์ํฉ๋๋ค.
์ด ์ฐจ์ด ๋๋ฌธ์ SRAM์ ์ง์ฐ ์๊ฐ์ด ์งง์ CPU cache์ register file์ ์ ํฉํ๊ณ , DRAM์ ๋นํธ๋น ๋ฉด์ ๊ณผ ๋น์ฉ์ด ์ ๋ฆฌํด main memory์ graphics memory์ ์ฐ์ ๋๋ค. ๊ฐ์ "RAM"์ด๋ผ๋ ์์คํ ์์ ๋งก๋ ์ญํ ์ด ๋ค๋ฅธ ์ด์ ๊ฐ ๋ฐ๋ก ์ด ๊ตฌ์กฐ ์ฐจ์ด์ ๋๋ค.
1. ํต์ฌ ๊ฐ๋
SRAM
SRAM์ 2๊ฐ์ cross-coupled inverter์ access transistor๋ก ์ด๋ฃจ์ด์ง latch ๊ธฐ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค. ์ ์์ด ๊ณต๊ธ๋๋ ๋์ ์ ๋ด๋ถ๊ฐ ์ค์ค๋ก ์ํ๋ฅผ ์ ์งํ๋ฏ๋ก, idle ์ํ์์ refresh ํ๋ก๊ฐ ํ์ํ์ง ์์ต๋๋ค.
SRAM์ ๊ฐ์ ์ ๋น ๋ฅธ ์ ๊ทผ์ฑ๊ณผ ์์ธก ๊ฐ๋ฅํ ์ง์ฐ์ ๋๋ค. ๋์ ์ ํ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋ ๋ง์ transistor๊ฐ ํ์ํด density๊ฐ ๋ฎ๊ณ , silicon area์ cost๊ฐ ์ปค์ง๋๋ค.
DRAM
DRAM์ ์ผ๋ฐ์ ์ผ๋ก 1 transistor + 1 capacitor(1T1C)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋นํธ๋ capacitor์ ๋จ์ ์๋ ์ ํ๋ก ํํ๋๋ฉฐ, ์ ํ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ผ์ ์๊ฐ๋ง๋ค refresh๊ฐ ํ์ํฉ๋๋ค.
DRAM์ ๊ฐ์ ์ ๋์ density์ ๋ฎ์ bit cost์ ๋๋ค. ๋ฐ๋ฉด refresh, row activation, restore ๊ณผ์ ์ด ํ์ํด SRAM๋ณด๋ค ์ ์ด๊ฐ ๋ณต์กํ๊ณ latency๋ ํฝ๋๋ค.
ํจ๊ป ์ฐ๋ ์ด์
SRAM์ ๋น ๋ฅด์ง๋ง ๋น์ธ๊ณ , DRAM์ ์ธ์ง๋ง ๋๋ฆฝ๋๋ค. ๊ทธ๋์ ์์คํ ์ ๋์ ๊ณ์ธต์ ์ผ๋ก ๋ฐฐ์นํฉ๋๋ค. ๊ฐ๊น์ด ๊ณณ์๋ SRAM cache๋ฅผ ๋๊ณ , ํฐ ์ฉ๋์ DRAM main memory๊ฐ ๋งก๋ ๊ตฌ์ฑ์ด ์ผ๋ฐ์ ์ ๋๋ค.
2. ๋น๊ต/๋ถ์
| ํญ๋ชฉ | SRAM | DRAM |
|---|---|---|
| ์ ์ฅ ์์ | cross-coupled latch | capacitor + transistor |
| ์ ๋น ํธ๋์ง์คํฐ ์ | ๋ณดํต 6T | ๋ณดํต 1T1C |
| refresh | ํ์ ์์ | ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ |
| ์ฝ๊ธฐ ํน์ฑ | ๋นํ๊ดด์ read | destructive read ํ restore ํ์ |
| ์ง์ฐ ์๊ฐ | ์งง์ | ์๋์ ์ผ๋ก ๊น |
| ๋ฐ๋ | ๋ฎ์ | ๋์ |
| ๋น์ฉ | ๋์ | ๋ฎ์ |
| ๋ํ ์ฉ๋ | CPU cache, register file, small buffer | main memory, graphics memory |
์ด ํ์ ํต์ฌ์ "๋น ๋ฅด๋, ์ธ๊ณ ํฌ๋"์ ์ ํ์ ๋๋ค. SRAM์ ์๊ฐ์ ์ ๋ฆฌํ๊ณ , DRAM์ ์ฉ๋์ ์ ๋ฆฌํฉ๋๋ค. ์ค์ ์ค๊ณ์์๋ ํ์ชฝ์ ์ฅ์ ์ ๋ค๋ฅธ ์ชฝ์ด ๋ณด์ํ๋๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ ๋ง๋ ๋ค๊ณ ๋ณด๋ ํธ์ด ์ ํํฉ๋๋ค.
์ถ๊ฐ๋ก ์ ๋ ฅ๊ณผ ์ ์ด ๋ณต์ก๋๋ ์ค์ํ ์ฐจ์ด์ ๋๋ค. SRAM์ refresh๊ฐ ์์ด ์ ํด ์ ์ ์ด๊ฐ ๋จ์ํ์ง๋ง ์ ๋ฉด์ ์ด ์ปค์ ํฐ ์ฉ๋์ ๋ง๋ค์๋ก ๋ฉด์ ๊ณผ ๋์ค ์ ๋ ฅ ๋ถ๋ด์ด ์ปค์ง๋๋ค. DRAM์ ๋นํธ๋น ๋ฉด์ ์ด ์์ ๋์ฉ๋์ ์ ๋ฆฌํ์ง๋ง, refresh ์ค์ผ์ค๋ง๊ณผ ํ์ด๋ฐ ์ ์ฝ์ memory controller๊ฐ ๊ณ์ ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก ์์คํ ๊ด์ ์ ๋ณต์ก๋๋ ๋ ๋์ต๋๋ค.
3. ๋์ ์๋ฆฌ
SRAM read / write
SRAM read๋ ๋นํธ๋ผ์ธ์ ๋ฏธ๋ฆฌ prechargeํ ๋ค word line(WL)์ ํ์ฑํํด ์ ์ ๋นํธ๋ผ์ธ์ ์ฐ๊ฒฐํ๊ณ , ์ ๋ด๋ถ์ ๋ฏธ์ธํ ์ ์ ์ฐจ์ด๋ฅผ sense amplifier๊ฐ ์ฆํญํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค. latch ์์ฒด๊ฐ ์ํ๋ฅผ ์ ์งํ๋ฏ๋ก read ํ ๋ณต๊ตฌ ๊ณผ์ ์ด ํ์ํ์ง ์์ต๋๋ค.
SRAM write๋ ๋นํธ๋ผ์ธ ๋๋ผ์ด๋ฒ๊ฐ ์ํ๋ ๊ฐ๊ณผ ๋ฐ๋๊ฐ์ ๊ฐํ๊ฒ ๊ตฌ๋ํด latch๋ฅผ ๋ค์ง์ต๋๋ค. ์ฝ๊ธฐ ์์ ์ฑ๊ณผ ์ฐ๊ธฐ ์ฉ์ด์ฑ์ ์๋ก ์ถฉ๋ํ๋ฏ๋ก, ์ ํฌ๊ธฐ์ access transistor์ ์ธ๊ธฐ๋ฅผ ํจ๊ป ์กฐ์ ํด์ผ ํฉ๋๋ค.
DRAM read / write / refresh
DRAM read๋ ์ ์ฅ capacitor์ ์ ํ๋ฅผ bit line๊ณผ ๊ณต์ ํ๋ฉด์ ์์ฃผ ์์ ์ ์ ๋ณํ๋ฅผ ๋ง๋ค๊ณ , sense amplifier๊ฐ ๊ทธ ์ฐจ์ด๋ฅผ ํฌ๊ฒ ์ฆํญํด ๊ฐ์ ํ์ ํ๋ ๋ฐฉ์์ ๋๋ค. ์ด ๊ณผ์ ์์ capacitor์ ๋ด์ฉ์ด ์ฝํด์ง๋ฏ๋ก, read ์ดํ์๋ ์๋ ๊ฐ์ ๋ค์ ์จ ๋ฃ๋ restore๊ฐ ํ์ํฉ๋๋ค.
DRAM write๋ ์ ํ๋ ์ ์ capacitor๋ฅผ ์ถฉ์ ํ๊ฑฐ๋ ๋ฐฉ์ ํด 1๊ณผ 0์ ๊ธฐ๋กํฉ๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด leakage๋ก ์ ํ๊ฐ ์ค์ด๋ค๊ธฐ ๋๋ฌธ์, memory controller๊ฐ refresh command์ timing parameter๋ฅผ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค.
์์คํ ๊ด์
SRAM์ ๊ตฌ์กฐ๊ฐ ๋จ์ํด ์ฆ์ ์ ๊ทผํ๊ธฐ ์ข์ง๋ง, ํฐ ์ฉ๋์ผ๋ก ํค์ฐ๊ธฐ ์ด๋ ต์ต๋๋ค. DRAM์ ๋ฐฐ์ด๊ณผ timing์ด ๋ณต์กํ์ง๋ง, ๊ฐ์ ๋ฉด์ ์์ ํจ์ฌ ๋ง์ bit๋ฅผ ๋ด์ ์ ์์ต๋๋ค. ๊ทธ๋์ cache hierarchy๋ SRAM์ผ๋ก, working set์ด ํฐ ์์ญ์ DRAM์ผ๋ก ๋๋ ์ค๊ณํฉ๋๋ค.
์ด๋ DRAM์ row activate, precharge, refresh ๊ฐ์ ๋ช ๋ น ํ๋ฆ๊ณผ timing window๋ฅผ ๋ฐ๋ผ์ผ ํด์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฐ๊ธฐ๋ณด๋ค memory controller์ ํจ๊ป ๋์ํฉ๋๋ค. ๋ฐ๋๋ก SRAM์ CPU core ๊ฐ๊น์ด์ ๋ถ์ด ์งง์ ๋ฐฐ์ ๊ณผ ์์ array๋ฅผ ๋ฐํ์ผ๋ก ๋งค์ฐ ๋ฎ์ ์ ๊ทผ ์ง์ฐ์ ์ ๊ณตํ๋ ๋์ , ๋์ผํ ์ฉ๋์ DRAM์ฒ๋ผ ๊ฒฝ์ ์ ์ผ๋ก ํ์ฅํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
4. ์ฅ๋จ์
SRAM ์ฅ์
-
refresh๊ฐ ํ์ ์์ด ์ ์ด๊ฐ ๋จ์ํฉ๋๋ค.
-
read๊ฐ ๋น ๋ฅด๊ณ ์ง์ฐ ์์ธก์ด ์ฝ์ต๋๋ค.
-
cache์ ๊ฐ์ด ์์ ์ฉ๋์์ ๋งค์ฐ ์ ๋ฆฌํฉ๋๋ค.
SRAM ๋จ์
-
์ ๋ฉด์ ์ด ์ปค์ density๊ฐ ๋ฎ์ต๋๋ค.
-
๋นํธ๋น ๋น์ฉ์ด ๋์ ๋์ฉ๋ํ๊ฐ ์ด๋ ต์ต๋๋ค.
-
๊ณต์ ๋ณ๋์ฑ์ ๋ฐ๋ผ read/write margin์ ๋ง์ถ๊ธฐ๊ฐ ๊น๋ค๋กญ์ต๋๋ค.
DRAM ์ฅ์
-
1T1C ๊ตฌ์กฐ๋ผ density๊ฐ ๋๊ณ ๋น์ฉ์ด ๋ฎ์ต๋๋ค.
-
๋์ฉ๋ main memory์ ์ ํฉํฉ๋๋ค.
-
๊ฐ์ ์ค๋ฆฌ์ฝ ๋ฉด์ ์์ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
DRAM ๋จ์
-
refresh๊ฐ ํ์ํด ์ ์ด์ ํ์ด๋ฐ์ด ๋ณต์กํฉ๋๋ค.
-
read ํ restore๊ฐ ํ์ํด ๋์์ด SRAM๋ณด๋ค ๋ฌด๊ฒ์ต๋๋ค.
-
latency๊ฐ ์ปค์ CPU ๋ฐ๋ก ์์ ์ด์ ์ง์ฐ ์ฉ๋์๋ ๋ถ๋ฆฌํฉ๋๋ค.
5. ๊ด๋ จ ๊ธฐ์
- 6T SRAM cell ๊ตฌ์กฐ์ read/write ๋์
- 8T/10T SRAM๊ณผ ์ฝ๊ธฐ ๋ถ๋ฆฌ ๊ตฌ์กฐ
- ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต๊ณผ density/cost ๊ด์
- 1T1C DRAM cell๊ณผ refresh ํ๋ฆ
- DRAM timing๊ณผ refresh ์ ์ด
- cache์ main memory์ ๊ณ์ธต ์์น
- Static random-access memory - Wikipedia
- Dynamic random-access memory - Wikipedia
- Memory refresh - Wikipedia
6. ํต์ฌ ์ ๋ฆฌ
-
SRAM์ latch ๊ธฐ๋ฐ์ด๋ผ refresh ์์ด ๋น ๋ฅด๊ฒ ๋์ํ์ง๋ง, ๋ฉด์ ๊ณผ ๋น์ฉ์ด ํฝ๋๋ค.
-
DRAM์ capacitor ๊ธฐ๋ฐ์ด๋ผ density์ ๋น์ฉ์ ์ ๋ฆฌํ์ง๋ง, refresh์ restore๊ฐ ํ์ํฉ๋๋ค.
-
๊ทธ๋์ SRAM์ cache์ register file์, DRAM์ main memory์ ์ฃผ๋ก ๋ฐฐ์น๋ฉ๋๋ค.
-
๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ ์๋์ ์ฉ๋์ ์ ์ถฉ์ด ์๋๋ผ, ์๋ก ๋ค๋ฅธ ์ ์ฅ ์๋ฆฌ๋ฅผ ์ญํ ์ ๋ง๊ฒ ๋๋ ๊ฒฐ๊ณผ์ ๋๋ค.