Primary Memory (ပင်မ မှတ်ဉာဏ်)
A1.1.4 - Explain the purposes of different types of primary memory
မြန်မာလို: primary memory (ပင်မ မှတ်ဉာဏ်၊ CPU က တိုက်ရိုက် ယူသုံးတဲ့ memory) အမျိုးအစား အမျိုးမျိုးရဲ့ ရည်ရွယ်ချက်တွေကို ရှင်းပြနိုင်ရပါမယ်။
အဓိက အယူအဆများ
Memory Hierarchy (မြန်နှုန်းနဲ့ အရွယ်အစားအလိုက် memory အဆင့်ဆင့် စီထားပုံ)
ကွန်ပျူတာတွေက မြန်နှုန်း၊ capacity (ဆံ့နိုင်တဲ့ ပမာဏ) နဲ့ ကုန်ကျစရိတ်ကို ချိန်ညှိထားတဲ့ memory hierarchy ကို သုံးပါတယ်။ CPU (ကွန်ပျူတာရဲ့ အဓိက processor) လိုအပ်သလို ဒေတာက ဒီ အလွှာတွေကြားမှာ ရွှေ့ပြောင်းသွားပါတယ်။
┌─────────┐ Fastest, Smallest, Most Expensive
│Registers│
┌┴─────────┴┐
│ L1 Cache │
┌┴───────────┴┐
│ L2 Cache │
┌┴─────────────┴┐
│ L3 Cache │
┌┴───────────────┴┐
│ RAM │
┌┴─────────────────┴┐
│ Secondary Storage │ Slowest, Largest, Cheapest
└────────────────────┘
ပုံထဲက English စာတွေရဲ့ အဓိပ္ပာယ်: “Fastest, Smallest, Most Expensive” က အမြန်ဆုံး၊ အသေးဆုံး၊ ဈေးအကြီးဆုံး၊ “Slowest, Largest, Cheapest” က အနှေးဆုံး၊ အကြီးဆုံး၊ ဈေးအသက်သာဆုံး ဖြစ်ပြီး ကျန်တာတွေက အဆင့် တစ်ခုစီရဲ့ နာမည်တွေပါ (Registers၊ L1/L2/L3 Cache၊ RAM၊ Secondary Storage)။
အဓိက trade-off (တစ်ခု ရဖို့ တစ်ခု အလျှော့ပေးရတာ) က: ပိုမြန်တဲ့ memory က byte (memory ကို တိုင်းတဲ့ ယူနစ်) တစ်ခုချင်းအတွက် ဈေးပိုကြီးပြီး ရုပ်ပိုင်းအရလည်း ပိုသေးပါတယ်။ ဒါကြောင့် ကွန်ပျူတာတွေက အမြန်ဆုံး memory ကိုပဲ နေရာတိုင်းမှာ မသုံးကြတာပါ။
RAM (Random Access Memory၊ ပါဝါပိတ်ရင် ပျောက်တဲ့ အဓိက memory)
- Volatile (ပါဝါပိတ်ရင် ဒေတာ ပျောက်တဲ့): ပါဝါ ပိတ်လိုက်ရင် ထဲမှာ ရှိတာ အားလုံး ပျောက်သွားပါတယ်
- Read/write (ဖတ်လည်း ရ၊ ရေးလည်း ရတဲ့) memory: ပုံမှန် အလုပ်လုပ်နေစဉ် RAM ကနေ ဒေတာကို ဖတ်လည်း ရ၊ RAM ထဲ ရေးလည်း ရပါတယ်
- DRAM (Dynamic RAM) နဲ့ တည်ဆောက်ထားပါတယ်: bit (0 ဒါမှမဟုတ် 1 ဖြစ်တဲ့ binary ဂဏန်း တစ်လုံး) တစ်ခုစီကို capacitor (လျှပ်စစ်ဓာတ် သိုလှောင်တဲ့ အစိတ်အပိုင်း) အသေးလေး တစ်ခုထဲမှာ charge (လျှပ်စစ်ဓာတ်) အဖြစ် သိမ်းပါတယ်။ Charge က အချိန်ကြာလာရင် ယိုထွက်သွားလို့ cell (bit တစ်ခု သိမ်းတဲ့ အကွက်) တစ်ခုစီကို တစ်စက္ကန့်မှာ အကြိမ်များစွာ refresh (charge ကို ပြန်ဖြည့်) လုပ်ရပါတယ် (ခန့်မှန်းခြေ 64 millisecond၊ ဆိုလိုတာက တစ်စက္ကန့်ရဲ့ တစ်ထောင်ပုံ 64 ပုံ ကြာတိုင်း တစ်ကြိမ်)
- လက်ရှိ သုံးနေတဲ့ program တွေနဲ့ ဒေတာတွေကို သိမ်းပါတယ်: run နေတဲ့ instruction (processor လုပ်ဆောင်ရမယ့် ညွှန်ကြားချက်) တွေရော အဲဒီ instruction တွေ အလုပ်လုပ်တဲ့ ဒေတာတွေပါ သိမ်းပါတယ်
- “Random access” (ကျပန်း ယူသုံးနိုင်ခြင်း) ဆိုတာ byte ဘယ်ဟာမဆို သူ့ရဲ့ physical address (memory ထဲက တကယ့် နေရာ လိပ်စာ) ဘယ်မှာပဲ ရှိရှိ အချိန် အတူတူနဲ့ ဖတ်နိုင်တယ်လို့ ဆိုလိုပါတယ်
- ပုံမှန် capacity: ခေတ်ပေါ် ကွန်ပျူတာတွေမှာ 8-64 GB
How RAM stores and retrieves data at the hardware level, including memory cells and addressing.
ROM (Read-Only Memory၊ ဖတ်ရုံသာ ရတဲ့ memory)
- Non-volatile (ပါဝါပိတ်လည်း ဒေတာ မပျောက်တဲ့): ပါဝါ ပိတ်ထားရင်တောင် ထဲမှာ ရှိတာတွေ ဆက်ရှိနေပါတယ်
- Read-only (ဖတ်ရုံသာ ရတဲ့): ဒေတာကို ထုတ်လုပ်စဉ်မှာ တစ်ကြိမ် ရေးထည့်ပြီး (ဒါမှမဟုတ် အထူး tool တွေနဲ့ အလွန် ရှားရှားပါးပါးမှ ရေးပြီး) ပုံမှန် အလုပ်လုပ်နေစဉ် ပြင်လို့ မရပါဘူး
- BIOS/UEFI firmware (hardware ထဲမှာ ထည့်ထားတဲ့ software) ပါပါတယ်: ကွန်ပျူတာကို ပါဝါ ဖွင့်တဲ့အခါ CPU က အရင်ဆုံး run တဲ့ boot instruction (ကွန်ပျူတာ စဖွင့်ဖို့ ညွှန်ကြားချက်) တွေပါ
- Capacity နည်းပါတယ်: hardware ကို စတင် ပြင်ဆင်ဖို့နဲ့ secondary storage (ပါဝါပိတ်ပြီးလည်း ဒေတာ ကျန်နေတဲ့ ရေရှည် storage) ကနေ operating system (ကွန်ပျူတာကို စီမံတဲ့ အဓိက software) ကို load လုပ်ဖို့ လိုတဲ့ startup instruction တွေ သိမ်းဖို့လောက်ပဲ ရှိပါတယ်
- OS ကို load မလုပ်ခင် ဘယ်လို စဖွင့်ရမလဲ သိဖို့ ကွန်ပျူတာတိုင်းမှာ ROM လိုပါတယ်
Cache Memory (CPU နဲ့ RAM ကြားက မြန်တဲ့ memory)
Cache က CPU နဲ့ RAM ကြားမှာ buffer (ကြားခံ) အဖြစ် အလုပ်လုပ်တဲ့ မြန်ဆန်တဲ့ memory အနည်းငယ်ပါ။ Main memory (ပင်မ memory) ကနေ မကြာခဏ ယူသုံးတဲ့ ဒေတာနဲ့ instruction တွေရဲ့ copy တွေကို သိမ်းထားလို့ processor က အချက်အလက် ယူဖို့ လိုတဲ့ ပျမ်းမျှ အချိန်ကို လျှော့ပေးပါတယ်။ Cache မရှိရင် memory ကို ယူသုံးတိုင်း CPU က အများကြီး ပိုနှေးတဲ့ RAM ကို စောင့်ရပါလိမ့်မယ်။
- SRAM (Static RAM) နဲ့ တည်ဆောက်ထားပါတယ်: အမြဲ refresh လုပ်ဖို့ မလိုတဲ့ flip-flop (bit တစ်ခုကို မှတ်ထားနိုင်တဲ့ circuit) circuit တွေကို သုံးလို့ SRAM က DRAM ထက် အများကြီး ပိုမြန်ပေမယ့် bit တစ်ခုချင်းအတွက် ဈေးလည်း အများကြီး ပိုကြီးပါတယ်
- အဆင့် (level) တွေ ခွဲထားပြီး အဆင့် တစ်ခုစီမှာ မြန်နှုန်းနဲ့ အရွယ်အစား မတူပါဘူး:
| အဆင့် | ပုံမှန် အရွယ်အစား | ပုံမှန် access time (ယူသုံးချိန်) | တည်နေရာ |
|---|---|---|---|
| L1 Cache | core (instruction တွေကို သီးခြား run နိုင်တဲ့ CPU ထဲက processing unit) တစ်ခုစီမှာ 32-64 KB | ~1 ns | CPU core ပေါ်မှာ ကိုယ်တိုင် |
| L2 Cache | 256 KB - 1 MB | ~3-5 ns | core တစ်ခုစီမှာ သီးသန့်၊ ဒါမှမဟုတ် core နှစ်ခု မျှသုံး |
| L3 Cache | 4-32 MB | ~10-15 ns | core အားလုံး မျှသုံး |
| RAM (နှိုင်းယှဉ်ဖို့) | 8-64 GB | ~50-100 ns | Motherboard (ကွန်ပျူတာရဲ့ အဓိက circuit board) ပေါ်က သီးခြား chip |
ပုံစံက ရှင်းပါတယ်: CPU နဲ့ ဝေးလေ အဆင့်တိုင်းက ပိုကြီးပေမယ့် ပိုနှေးလေ ဖြစ်ပါတယ်။
Cache hit နဲ့ cache miss
- Cache hit (လိုတဲ့ ဒေတာ cache ထဲမှာ ရှိခြင်း): တောင်းတဲ့ ဒေတာကို cache ထဲမှာ တွေ့ပါတယ်၊ CPU က အမြန် ရပါတယ်
- Cache miss (လိုတဲ့ ဒေတာ cache ထဲမှာ မရှိခြင်း): ဒေတာက အဲဒီ cache အဆင့်မှာ မရှိပါဘူး၊ CPU က နောက်ထပ် ပိုနှေးတဲ့ အဆင့် (L2၊ ပြီးရင် L3) ကို စစ်ပြီး ဘယ် cache အဆင့်မှာမှ မရှိရင် RAM ကနေ ယူပါတယ် (အများကြီး ပိုနှေးပါတယ်)
- Hit rate: memory ကို ယူသုံးတဲ့ အကြိမ်တွေထဲက cache hit ဖြစ်တဲ့ ရာခိုင်နှုန်းပါ (များလေ ကောင်းလေပါ၊ ခေတ်ပေါ် CPU တွေက hit rate 95%+ ရပါတယ်)
- Locality of reference (ဒေတာ ယူသုံးပုံမှာ နီးကပ်မှု ရှိတဲ့ သဘော) က cache တွေ ဘာကြောင့် ဒီလောက် ကောင်းကောင်း အလုပ်လုပ်လဲ ရှင်းပြပါတယ်:
- Temporal locality (အချိန်အရ နီးကပ်မှု): မကြာသေးခင်က သုံးခဲ့တဲ့ ဒေတာကို မကြာခင် ပြန်သုံးဖို့ များပါတယ်
- Spatial locality (နေရာအရ နီးကပ်မှု): မကြာသေးခင်က ယူသုံးခဲ့တဲ့ ဒေတာရဲ့ အနီးမှာ သိမ်းထားတဲ့ ဒေတာကို နောက်မှာ လိုဖို့ များပါတယ်
The memory hierarchy from registers to disk - why cache exists and how it speeds up access.
Registers (CPU ထဲက အမြန်ဆုံး သိမ်းဆည်းရာများ)
- စနစ် တစ်ခုလုံးမှာ အမြန်ဆုံး memory ဖြစ်ပြီး CPU ထဲမှာ ကိုယ်တိုင် ရှိပါတယ်
- လက်ရှိ လုပ်ဆောင်နေတဲ့ ဒေတာနဲ့ instruction တွေကို ထိန်းထားပါတယ်
- Capacity အလွန် နည်းပါတယ်: register တစ်ခုက တန်ဖိုး တစ်ခုတည်းကို သိမ်းပါတယ် (ပုံမှန်အားဖြင့် 32 bit ဒါမှမဟုတ် 64 bit)
- ဥပမာများ: Program Counter (PC)၊ Memory Address Register (MAR)၊ Memory Data Register (MDR)၊ Instruction Register (IR)၊ Accumulator (AC)
Virtual Memory (RAM ပြည့်ရင် disk နေရာကို memory အဖြစ် ချေးသုံးခြင်း)
Virtual memory ကို A1.1.4 မှာ တိုက်ရိုက် ဖော်ပြမထားပါဘူး။ ဒါပေမယ့် A1.3.2 ရဲ့ memory management (memory ကို စီမံခန့်ခွဲခြင်း) နဲ့ ဆက်စပ်ပြီး နားလည်ထားဖို့ အရေးကြီးတဲ့ သဘောတရား တစ်ခုပါ။ A1.1.4 နဲ့ A1.3.2 က IB Computer Science (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ ကွန်ပျူတာသိပ္ပံ သင်ရိုး) ထဲက အပိုင်း နံပါတ်တွေ ဖြစ်ပါတယ်။
- Physical RAM (တကယ် တပ်ဆင်ထားတဲ့ RAM) ပြည့်သွားတဲ့အခါ secondary storage (SSD/HDD) ကို RAM ရဲ့ တိုးချဲ့ အပိုင်းအဖြစ် သုံးပါတယ်
- ရှိတဲ့ RAM ထက် ပိုကြီးတဲ့ program တွေကို run နိုင်အောင် လုပ်ပေးပါတယ်
- OS က memory ကို အရွယ်အစား ပုံသေ page တွေ ခွဲပြီး လိုအပ်သလို RAM နဲ့ disk ကြားမှာ swap (အပြန်အလှန် ရွှေ့ပြောင်း) လုပ်ပါတယ်
- စနစ်က program တွေ run တာထက် page တွေ swap လုပ်တာမှာ အချိန် ပိုကုန်တဲ့အခါ thrashing ဖြစ်ပါတယ်: ဒါက performance (စွမ်းဆောင်ရည်) ကို အကြီးအကျယ် ကျဆင်းစေပါတယ်
- Physical RAM ထပ်ထည့်တာက thrashing ကို အထိရောက်ဆုံး ဖြေရှင်းနည်းပါ
ထပ်ဆောင်း လေ့လာရန်: Boot Process (ကွန်ပျူတာ စဖွင့်တဲ့ အဆင့်များ)
ဒီအပိုင်းက IB syllabus (IB သင်ရိုး) ထက် ကျော်လွန်တဲ့ အကြောင်းအရာ ဖြစ်လို့ IB က အမှတ်ပေး စစ်ဆေးတာ မရှိပါဘူး။ ROM ဘာကြောင့် အရေးကြီးလဲ ဆိုတာကို ဒီအပိုင်းက ပြပါတယ်။
- Power on (ပါဝါ ဖွင့်ခြင်း): CPU က ပထမဆုံး instruction တွေကို ROM (BIOS/UEFI) ကနေ ဖတ်ပါတယ်
- POST (Power-On Self Test၊ ပါဝါ ဖွင့်ချိန်မှာ ကိုယ့်ကိုယ်ကို စစ်ဆေးခြင်း): hardware အစိတ်အပိုင်းတွေကို စစ်ဆေးပါတယ်
- Bootloader (OS ကို load လုပ်ပေးတဲ့ program အသေး): secondary storage ပေါ်မှာ ရှိပြီး RAM ထဲကို load လုပ်ပါတယ်
- OS loaded (OS ကို load လုပ်ပြီး): operating system ကို storage ကနေ RAM ထဲ ရွှေ့ပြောင်း ထည့်ပါတယ်
- OS takes control (OS က ထိန်းချုပ်မှု ယူ): စနစ်က သုံးဖို့ အသင့် ဖြစ်ပါပြီ
ROM က ဒါကြောင့် မရှိမဖြစ် လိုအပ်တာပါ: ROM မရှိရင် ကွန်ပျူတာ စဖွင့်တဲ့အချိန်မှာ CPU လိုက်လုပ်ရမယ့် instruction မရှိတော့ဘဲ secondary storage ပေါ်မှာ သိမ်းထားတဲ့ OS ကိုလည်း load လုပ်လို့ မရတော့ပါဘူး။
ကြည့်ရန်: ဗီဒီယို အရင်းအမြစ်များ
Clear breakdown of RAM types (SRAM vs DRAM), how they differ, and their role in the system.
Animated TED-Ed explanation of how computer memory works at the physical level.
How firmware (BIOS/UEFI) bridges hardware and software - relates to ROM and non-volatile memory.
အဆင့်ဆင့် ရှင်းပြထားတဲ့ ဥပမာများ
ဥပမာ 1: Memory hierarchy အဆင့်တွေကို နှိုင်းယှဉ်ခြင်း
| စံနှုန်း | Registers | Cache (L1) | RAM | Secondary Storage |
|---|---|---|---|---|
| မြန်နှုန်း | အမြန်ဆုံး (~0.5 ns) | အလွန် မြန် (~1 ns) | မြန် (~50-100 ns) | နှေး (SSD ~0.1 ms) |
| Capacity | Bytes | KB | GB | TB |
| GB တစ်ခုချင်း ကုန်ကျစရိတ် | အမြင့်ဆုံး | အလွန် မြင့် | အလယ်အလတ် (~$3-5) | နိမ့် (~$0.05-0.10) |
| Volatile ဖြစ်လား | ဖြစ် | ဖြစ် | ဖြစ် | မဖြစ် |
| သုံးပုံ ဥပမာ | လက်ရှိ instruction ကို ထိန်းထားခြင်း | မကြာသေးခင်က သုံးခဲ့တဲ့ variable တွေ | Run နေတဲ့ application တွေ | File တွေနဲ့ OS ကို သိမ်းခြင်း |
ဥပမာ 2: Cache hit/miss ဖြစ်ပုံ
Program တစ်ခုက memory address (memory ထဲက နေရာ လိပ်စာ) တွေကို ဒီ အစဉ်အတိုင်း ယူသုံးပါတယ်: 100, 104, 100, 200, 100။
အလွတ်ကနေ စတဲ့ cache အဆင့် တစ်ခုတည်း ရှိတယ်လို့ ယူဆပါ။ ယူသုံးမှု တစ်ခုစီက hit (ဒေတာ cache ထဲမှာ ရှိပြီးသား) ဒါမှမဟုတ် miss (RAM ကနေ ယူရ) ဖြစ်ပါတယ်။
| ယူသုံးမှု # | Address | Cache ထဲမှာ ရှိလား | ရလဒ် | ပြီးနောက် cache ထဲမှာ ရှိတာ |
|---|---|---|---|---|
| 1 | 100 | မရှိ | Miss: RAM ကနေ ယူ | {100} |
| 2 | 104 | မရှိ | Miss: RAM ကနေ ယူ | {100, 104} |
| 3 | 100 | ရှိ | Hit: cache ကနေ ပေး | {100, 104} |
| 4 | 200 | မရှိ | Miss: RAM ကနေ ယူ | {100, 104, 200} |
| 5 | 100 | ရှိ | Hit: cache ကနေ ပေး | {100, 104, 200} |
Hit rate = ယူသုံးမှု 5 ကြိမ်ထဲက hit 2 ကြိမ် = 40%။ ယူသုံးမှု 3 နဲ့ 5 က temporal locality ကို ပြပါတယ်: address 100 ကို ပြန်သုံးခဲ့လို့ပါ။
Quick Check (အမြန် စစ်ဆေးမေးခွန်း)
Q1. Primary memory အမျိုးအစားတွေထဲက ဘယ်ဟာက volatile ဖြစ်ပြီး run နေတဲ့ program တွေကို သိမ်းသလဲ။
Q2. Cache memory က ဘာကို သိမ်းသလဲ။
Q3. Cache miss ဖြစ်တဲ့အခါ ဘာဖြစ်သလဲ။
Q4. L1 cache က L3 cache ထက် ဘာကြောင့် ပိုမြန်သလဲ။
Q5. ROM ထဲမှာ ဘာကို သိမ်းထားသလဲ။
Trace the Cache (cache ကို တစ်ဆင့်ချင်း လိုက်ကြည့်ခြင်း)
Cache တစ်ခုမှာ slot (ဒေတာ ထည့်တဲ့ နေရာ အကွက်) 4 ခု ရှိပြီး အလွတ်ကနေ စပါတယ်။ Cache ပြည့်သွားရင် အဟောင်းဆုံး entry ကို အစားထိုးပါတယ်: first in, first out (FIFO၊ အရင်ဝင်တာ အရင်ထွက်)။
| Slot 0 | Slot 1 | Slot 2 | Slot 3 | |
|---|---|---|---|---|
| အစ | - | - | - | - |
CPU က ဒီ memory address တွေကို ဒီ အစဉ်အတိုင်း တောင်းပါတယ်: A, B, C, D, A, E, A, B
Trace table (variable တန်ဖိုးတွေကို အဆင့်ဆင့် မှတ်တဲ့ ဇယား) ကို ဖြည့်ပါ။ တောင်းဆိုမှု တစ်ခုစီအတွက်:
- Address က cache ထဲမှာ ရှိပြီးသား ဆိုရင် hit လို့၊ RAM ကနေ ယူရမယ် ဆိုရင် miss လို့ ရေးပါ။
- တောင်းဆိုမှု ပြီးနောက် slot တစ်ခုစီမှာ ဘာရှိလဲ ရေးပါ။ အလွတ် ဖြစ်နေသေးတဲ့ slot အတွက် - (တုံးတို) ကို ရေးပါ။
ပြီးရင် hit စုစုပေါင်း အရေအတွက်နဲ့ hit rate (တောင်းဆိုမှုတွေထဲက hit ဖြစ်တဲ့ ရာခိုင်နှုန်း) ကို ဖြည့်ပါ။ Hit / Miss column မှာ အဖြေကို English စကားလုံး hit ဒါမှမဟုတ် miss နဲ့ ရိုက်ထည့်ပါ။
| တောင်းဆိုမှု # | Address | Hit / Miss | Slot 0 | Slot 1 | Slot 2 | Slot 3 |
|---|---|---|---|---|---|---|
| 1 | A | |||||
| 2 | B | |||||
| 3 | C | |||||
| 4 | D | |||||
| 5 | A | |||||
| 6 | E | |||||
| 7 | A | |||||
| 8 | B |
Hit စုစုပေါင်း: (တောင်းဆိုမှု 8 ခုထဲက)။ Hit rate:
A က cache ထဲမှာ ရှိနေသေးလို့ တောင်းဆိုမှု 5 က hit ဖြစ်ပါတယ်။ ဒါပေမယ့် တောင်းဆိုမှု 7 က miss ပါ: တောင်းဆိုမှု 6 မှာ E က အဟောင်းဆုံး entry (slot 0) ကို အစားထိုးလိုက်တဲ့အခါ A ကို ဖယ်ထုတ်လိုက်လို့ပါ။ FIFO နဲ့ အစားထိုးတဲ့ cache အသေးလေးက အသုံးဝင်တဲ့ ဒေတာကို ဘယ်လို ဆုံးရှုံးနိုင်လဲ ဆိုတာ ဒါက ပြပါတယ်။
Spot the Error (အမှား ရှာခြင်း)
ကျောင်းသား တစ်ယောက်က memory အမျိုးအစားတွေကို ဒီလို ဖော်ပြ ရေးထားပါတယ်။ Line တစ်ကြောင်းမှာ အချက်အလက် အမှား ပါပါတယ်။ မှားနေတဲ့ line ကို ရွေးပါ၊ ပြီးရင် ပြင်ဆင်ချက်ကို ရွေးပါ။
Line တွေရဲ့ အဓိပ္ပာယ်: (1) RAM က volatile ဖြစ်ပြီး run နေတဲ့ program တွေကို သိမ်းပါတယ်။ (2) ROM က non-volatile ဖြစ်ပြီး boot firmware ပါပါတယ်။ (3) Cache က RAM ထက် နှေးပေမယ့် byte တစ်ခုချင်းအတွက် ဈေးသက်သာပါတယ်။ (4) Register တွေက CPU ထဲမှာ ရှိတဲ့ အမြန်ဆုံး memory ပါ။ (5) Secondary storage က non-volatile ဖြစ်ပြီး capacity အများဆုံး ရှိပါတယ်။
Line 3 အတွက် မှန်ကန်တဲ့ ပြင်ဆင်ချက်ကို ရွေးပါ (same speed = မြန်နှုန်း တူ၊ faster = ပိုမြန်၊ slower = ပိုနှေး၊ more expensive = ဈေးပိုကြီး):
Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)
ကွက်လပ် တစ်ခုစီကို ဖြည့်ပြီး memory hierarchy ဖော်ပြချက်ကို ပြည့်စုံအောင် လုပ်ပါ။ ကွက်လပ်ပါတဲ့ စာကြောင်းတွေက English နဲ့ ဖြစ်ပြီး ကွက်လပ်တွေကိုလည်း English term နဲ့ ရိုက်ထည့်ရပါမယ်။ စာကြောင်း တစ်ကြောင်းချင်းရဲ့ အဓိပ္ပာယ်က အောက်ပါအတိုင်းပါ:
- …… က အမြန်ဆုံး memory အမျိုးအစား ဖြစ်ပြီး CPU ထဲမှာ ရှိပါတယ်။
- …… memory က volatile ဖြစ်ပြီး run နေတဲ့ program တွေကို သိမ်းပါတယ်။
- …… memory က non-volatile ဖြစ်ပြီး boot firmware ပါပါတယ်။
- …… က ဒေတာ ယူသုံးတာ မြန်အောင် CPU နဲ့ RAM ကြားမှာ ရှိပါတယ်။
- ဒေတာကို cache ထဲမှာ တွေ့ရင် cache …… လို့ ခေါ်ပါတယ်။
စာကြောင်း တစ်ခုစီအတွက် မှန်ကန်တဲ့ memory အမျိုးအစား ဒါမှမဟုတ် term ကို ဖြည့်ပါ:
is the fastest type of memory and is located inside the CPU.
memory is volatile and stores running programs.
memory is non-volatile and contains the boot firmware.
sits between the CPU and RAM to speed up data access.
When data is found in cache, it is called a cache .
Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
Cache တစ်ခုမှာ slot 4 ခု ရှိပြီး အလွတ်ကနေ စပါတယ်။ အောက်ပါ memory ယူသုံးမှုတွေ ဖြစ်ပါတယ် ("loaded into cache" က cache ထဲ load လုပ်ပြီးပြီ လို့ ဆိုလိုပါတယ်):
Access 1: Address X → miss (loaded into cache)
Access 2: Address Y → miss (loaded into cache)
Access 3: Address Z → miss (loaded into cache)
Access 4: Address X → ???ယူသုံးမှု 4 က hit လား miss လား။ အဖြေကို English စကားလုံး hit ဒါမှမဟုတ် miss နဲ့ ရိုက်ထည့်ပါ:
Practice Exercises (လေ့ကျင့်ခန်းများ)
Core (အခြေခံ အဆင့်)
-
[Core]Memory and cache[5 marks]RAM၊ ROM၊ cache နဲ့ register တွေကို စံနှုန်း ငါးခုဖြစ်တဲ့ မြန်နှုန်း၊ capacity၊ volatility (ပါဝါပိတ်ရင် ဒေတာ ပျောက်မပျောက်)၊ byte တစ်ခုချင်း ကုန်ကျစရိတ်နဲ့ အဓိက ရည်ရွယ်ချက်တို့နဲ့ Compare (နှစ်ခုလုံးကို ထည့်ပြီး တူတာနဲ့ ကွာတာကို ဖော်ပြပါ) လုပ်တဲ့ ဇယား တစ်ခု ဖန်တီးပါ။ -
[Core]Memory and cache[4 marks]Cache hit နဲ့ cache miss ကို Define (အဓိပ္ပာယ်ကို တိတိကျကျ ဖော်ပြပါ) လုပ်ပါ။ တစ်ခုစီအတွက် လက်တွေ့ ဘဝက နှိုင်းယှဉ်ချက် ဥပမာ တစ်ခုစီ ပေးပါ (ဥပမာ စာအုပ်ကို ကိုယ့် စားပွဲပေါ်မှာ ရှာတွေ့တာနဲ့ စာကြည့်တိုက်ကို သွားရတာ)။ -
[Core]RAM and ROM[6 marks]ကွန်ပျူတာ တစ်လုံးမှာ RAM ရော ROM ပါ ဘာကြောင့် လိုလဲ Explain (ရှင်းပြပါ) လုပ်ပါ။ ကွန်ပျူတာမှာ RAM ပဲ ရှိရင် ဘာဖြစ်မလဲ။ ROM ပဲ ရှိရင်ရော ဘာဖြစ်မလဲ။
Extension (တိုးချဲ့ အဆင့်)
-
[Extension]Memory and cache[5 marks]L1 cache က L3 cache ထက် ဘာကြောင့် ပိုမြန်ပေမယ့် ပိုသေးလဲ Explain လုပ်ပါ။ Cache အားလုံးကို L1 မြန်နှုန်း ဘာလို့ မလုပ်ကြတာလဲ။ -
[Extension]Virtual memory[5 marks]ကွန်ပျူတာ တစ်လုံးမှာ physical RAM ကုန်သွားတဲ့အခါ ဘာဖြစ်လဲ Describe (ဖော်ပြရှင်းပြပါ) လုပ်ပါ။ Virtual memory က ဘယ်လို ကူညီလဲ၊ အလွန်အကျွံ သုံးရင် ဘယ်လို ပြဿနာ ပေါ်လာလဲ Explain လုပ်ပါ။
Challenge (စိန်ခေါ်မှု အဆင့်)
-
[Challenge]Memory and cache[6 marks]Gaming PC တစ်လုံးမှာ RAM 32 GB နဲ့ L3 cache 32 MB ရှိပါတယ်။ ဈေးသက်သာတဲ့ ရုံးသုံး PC တစ်လုံးမှာ RAM 8 GB နဲ့ L3 cache 4 MB ရှိပါတယ်။ Video editing (ဗီဒီယို တည်းဖြတ်ခြင်း) အတွက် ဘယ်စနစ်က ပိုသင့်တော်လဲ Evaluate (အားသာချက်နဲ့ အားနည်းချက်တွေကို ချိန်ဆပြီး အကဲဖြတ်ပါ) လုပ်ပါ။ Video editing က memory ကို ဘယ်လို သုံးလဲ ဆိုတာကို ကိုးကားပြီး ကိုယ့်အဖြေကို justify (ဘာကြောင့် ရွေးတာလဲ အကြောင်းပြချက်နဲ့ ပြပါ) လုပ်ပါ။ -
[Challenge]Virtual memory[7 marks]ကျောင်း server (တခြား ကွန်ပျူတာတွေကို ဝန်ဆောင်မှု ပေးတဲ့ ကွန်ပျူတာ) တစ်လုံးက virtual machine (ကွန်ပျူတာ တစ်လုံးပေါ်မှာ software နဲ့ ဖန်တီးထားတဲ့ ကွန်ပျူတာ အတု) 50 ခုကို တစ်ပြိုင်နက် run နေပါတယ်။ စနစ်က အရမ်း နှေးသွားတယ်လို့ user တွေက ပြောပါတယ်။ Thrashing က ဘယ်လို အကြောင်းရင်း ဖြစ်နိုင်လဲ Explain လုပ်ပြီး hardware ပိုင်း ဖြေရှင်းနည်း တစ်ခုနဲ့ software ပိုင်း ဖြေရှင်းနည်း တစ်ခု၊ စုစုပေါင်း ဖြေရှင်းနည်း နှစ်ခုကို propose (အကြံပြုပါ) လုပ်ပါ။
ဆက်စပ် ခေါင်းစဉ်များ
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်: CPU Architecture (CPU ရဲ့ ဖွဲ့စည်းပုံ): register တွေက CPU ရဲ့ အစိတ်အပိုင်းပါ။ Memory ကို မြန်မြန် ယူသုံးနိုင်တာ ဘာကြောင့် အရေးကြီးလဲ ဆိုတာကို FDE cycle (ညွှန်ကြားချက်ကို ယူ၊ နားလည်၊ လုပ်ဆောင်တဲ့ စက်ဝန်း) က ရှင်းပြပါတယ်
- ဆက်စပ် ခေါင်းစဉ်: Logic Gates (Logic gate များ): cache မှာ သုံးတဲ့ SRAM ရဲ့ အခြေခံက flip-flop circuit တွေပါ
- ဆက်စပ် ခေါင်းစဉ်: Secondary Storage (ပါဝါပိတ်ပြီးလည်း ဒေတာ ကျန်နေတဲ့ ရေရှည် storage): memory hierarchy ထဲမှာ အောက် တစ်ဆင့်
- နောက်ပိုင်းမှာ: Operating Systems Layer (Operating system အလွှာ): OS က memory allocation (memory နေရာ ခွဲဝေပေးခြင်း)၊ paging (memory ကို page တွေ ခွဲပြီး စီမံခြင်း) နဲ့ virtual memory ကို စီမံပါတယ် (A1.3.2)