๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸฉ Computer Architecture

์ปดํ“จํ„ฐ ๊ตฌ์กฐ 5_Cache Memory

by UKHYUN22 2021. 11. 29.
728x90

 

 

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋งŽ์€ ์‹œ๊ฐ„์ด ๋ณด๋‚ด๋Š”๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด๋‹ค.
Instruction Data ๋“ฑ์„ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…๋“ค์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์†๋„๊ฐ€ 

์ปดํ“จํ„ฐ์˜ ์„ฑ๋Šฅ์— ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

 




๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํฌ๊ณ  ๋น ๋ฅด๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ๋‘˜์ด ๋ฐ˜๋น„๋ก€์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. ํฐ ๋ฉ”๋ชจ๋ฆฌ์ผ ์ˆ˜๋ก ๋Š๋ ค์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ ํ•˜๋‚˜ ๊ณ ๋ คํ•  ๊ฒƒ์€ ๊ฐ€๊ฒฉ์ธ๋ฐ ๋น ๋ฅผ ์ˆ˜๋ก ๋น„์‹ธ์ง„๋‹ค. ๊ฐ’๋„ ์ ๋‹นํ•˜๊ณ  ๋น ๋ฅด๊ธฐ๋„ ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค. SRAM DRAM Disk๋Š” ๋ˆˆ์—ฌ๊ฒจ ๋ณผ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ ๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋„ ์ข‹๋‹ค(์˜ค๋ž˜๋œ ์ž๋ฃŒ)
Static, Dynamic ์˜ ์ฐจ์ด์ด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” Dynamic์„ ์‚ฌ์šฉํ•œ๋‹ค.
Static์€ Volatileํ•˜์ง€ ์•Š์€ ํŠน์ง•์ด ์žˆ๊ณ  ์†๋„๊ฐ€ ๋น ๋ฅธ๋ฐ์‹  ๋น„์‹ธ๊ณ 
Dynamic์€ ์†๋„๋Š” ๋Š๋ฆฌ๊ณ  ๊ฐ€๊ฒฉ์€ ์ ๋‹นํ•˜๋‹ค.
์ด์ƒ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” SRAM์˜ ์†๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์šฉ๋Ÿ‰์ด ํฌ๋ฉฐ ๊ฐ€๊ฒฉ์ด ์ ์€ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

 


Solution Hierarchy
CPU์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ ˆ๋ฒจ์— Cache ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ์ „์— Level n์— tape์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ๋‘๋Š”๋ฐ, Distance๋Š” ์œ„๋กœ ๊ฐˆ์ˆ˜๋ก ๊ฐ€๊นŒ์›Œ ์ง„๋‹ค. ์ฆ‰ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ(access)ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ž‘์•„์ง€๋ฉฐ ๊ฐ’์ด ๋น„์‹ธ์ง„๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์›ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๊ฐ€๋ฅผ ์งˆ๋ฌธํ•œ๋‹ค..!

 


Locality
๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์ข‹์€ ์ด์œ 
1. temporal locality ๋Š” ๋ฐฉ๊ธˆ ์‚ฌ์šฉ๋œ reference๋œ ์•„์ดํ…œ์€ ๊ณง ๋‹ค์‹œ ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋‹ค๋ผ๋Š” ๊ฒƒ. ์‹œ๊ฐ„์— ๊ด€ํ•œ ๊ฒƒ์ด๋‹ค. 

a์˜ ๊ฐ’์„ ๊ตฌํ•˜๊ณ  ๋‹ค์‹œ a๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค.  ๋˜‘๊ฐ™์€ a๊ฐ€ ๊ณง ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋ผ๋Š” ์–˜๊ธฐ์ด๋‹ค. 

2. spacial locality๋Š” ํ˜„์žฌ reference๋œ ์•„์ดํ…œ์ด ๊ณง ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. a[0] ๊ทผ์ฒ˜์— ์žˆ๋Š” a[1], a[2]๋Š” ๊ณง ์‚ฌ์šฉ๋  reference item ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. sum = sum + a[i] ์—์„œ sum์„ ๋ณด๋ฉด temporal locality๊ฐ€ ์žˆ๊ณ  a[i] ๋ฐฐ์—ด์—๋Š” spacial locality๊ฐ€ ์žˆ๋‹ค. ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— sum๋„ ์žˆ๊ณ  ๋ฐฐ์—ด๋„ ์žˆ๋Š” ๋ฐ Processor๊ฐ€ ๋” ์ ‘๊ทผํ•˜๊ธฐ ์‰ฌ์šด ๊ณณ Cache๋ผ๋Š” ํ•ต์‹ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.


๋น„์œ : ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋“ฃ๋Š”๋ฐ ์—ด์‹ฌํžˆ ๋“ค์–ด์•ผ ํ•˜๋‹ˆ๊นŒ ์ธํ„ฐ๋„ท๊ณผ ๋„์„œ๊ด€์—์„œ ์ฑ…์„ ๋นŒ๋ ค์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๊ฒƒ์— ๋งจ๋‚  ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ž…๊ตฌ์— ์ฑ…์„ ๊ฐ€์ ธ๋‹ค ๋†“๋Š”๋‹ค๊ณ  ํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” Processor์ด๊ณ  ๋„์„œ๊ด€์˜ ์—ด๋žŒ์‹ค์€ Main Memory ๊ฐ–๋‹ค๋…ผ ์ฑ…์ด ์ž‡๋Š” ์ฑ…์žฅ์€ Cache ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋œ๋‹ค. ๊ตณ์ด ์—ด๋žŒ์‹ค๊นŒ์ง€ ๊ฐˆ ํ•„์š” ์—†์ด ์ฑ…์žฅ์— ๊ฐ€๋ฉด ์‚ฌ์šฉ์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ ํ•™๊ธฐ์—๋Š” ์ฑ…์žฅ์— OS๊ด€๋ จ ์ฑ…์„ ๊ฐ€์ ธ๋‹ค ๋†“๋Š” ๋“ฑ ์ž์ฃผ ์“ฐ๋Š” ๊ฒƒ์„ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์ €์žฅํ•ด๋†“๋Š”๋‹ค. ๊ฐ€์žฅ ์‹ผ ๊ฐ€๊ฒฉ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๊ฐ€์žฅ ๋น ๋ฅธ ์†๋„์˜ ์ ‘๊ทผ๋ ฅ์„ ์ œ๊ณตํ•˜์ž๋Š” ๊ฒƒ์ด๋‹ค.

 


์‚ผ๊ฐํ˜•์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ˆ•ํž˜
Chip ์•ˆ์— Cache ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‘˜ ์ˆ˜ ์žˆ๊ณ  Second level ์€ Cache ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์œผ๋กœ ๊ฐ€๊ณ  ์ž˜๋งŒ Cache ์•ˆ์— ๊ฐ€์ ธ๋‹ค ๋‘๋ฉด ๋งˆ์น˜ Processor๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ speed๋Š” ์•ˆ์— ์žˆ๊ณ  Data๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋“ฏํ•œ ์ฐฉ๊ฐ์„ ๊ฐ€์ ธ๋‹ค ๋‘”๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 




๊ฐ€์šด๋ฐ ์žˆ๋Š” ๊ฒƒ์„ Cache ๋ฉ”๋ชจ๋ฆฌ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒƒ์„ Main memory๋ผ๊ณ  ํ•ด๋ณด์ž. ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ ๊ทผ์ฒ˜์— ์žˆ๋Š” block ๋‹จ์œ„๋กœ ์›€์ง์ด๋Š” ๊ฒƒ. hit์€ Cache๋กœ ์ฐพ์œผ๋Ÿฌ ๊ฐ“๋Š”๋ฐ ์žˆ์œผ๋ฉด hit ์—†์œผ๋ฉด miss๋ผ๊ณ  ํ•œ๋‹ค.
block์„ ๋กœ๋”ฉํ•˜๊ธฐ ์ „๊นŒ์ง€ CPU๋Š” stall ์ƒํƒœ๊ฐ€ ๋˜๊ณ  ๊ฐ€์ ธ์˜ค๋ฉด CPU๊ฐ€ ์ ‘๊ทผ์„ ํ•œ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  miss๊ฐ€ ๋งŽ์ด ์ด๋ฃจ์–ด์ง€๋ฉด ์‹œ๊ฐ„์ด ๋Š๋ ค์ง„๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” temporal , spacial locality๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค(********). ์„ฑ๋Šฅ์ด ์ข‹์•„์ง€๋”๋ผ๋Š” ๊ฒƒ.!!


Control Hazard : Stall
stall์„ ํ•˜๋ฉด CPI๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ
CPI - miss๊ฐ€ ๋งŽ์•„์ง€๋ฉด CPI ๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.