๐Ÿ”ฒ SRAM

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"์ด๋ผ๋„ ์‹œ์Šคํ…œ์—์„œ ๋งก๋Š” ์—ญํ• ์ด ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์ด ๊ตฌ์กฐ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

SRAM vs DRAM ๋น„๊ต

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. ๊ด€๋ จ ๊ธฐ์ˆ 

6. ํ•ต์‹ฌ ์ •๋ฆฌ

  • SRAM์€ latch ๊ธฐ๋ฐ˜์ด๋ผ refresh ์—†์ด ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ, ๋ฉด์ ๊ณผ ๋น„์šฉ์ด ํฝ๋‹ˆ๋‹ค.

  • DRAM์€ capacitor ๊ธฐ๋ฐ˜์ด๋ผ density์™€ ๋น„์šฉ์— ์œ ๋ฆฌํ•˜์ง€๋งŒ, refresh์™€ restore๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋ž˜์„œ SRAM์€ cache์™€ register file์—, DRAM์€ main memory์— ์ฃผ๋กœ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต์€ ์†๋„์™€ ์šฉ๋Ÿ‰์˜ ์ ˆ์ถฉ์ด ์•„๋‹ˆ๋ผ, ์„œ๋กœ ๋‹ค๋ฅธ ์ €์žฅ ์›๋ฆฌ๋ฅผ ์—ญํ• ์— ๋งž๊ฒŒ ๋‚˜๋ˆˆ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.