หน่วยความจำ

Download Report

Transcript หน่วยความจำ

่
บทที 5
หน่ วยความจา
โครงสร ้างหน่วยความจาของ
คอมพิวเตอร์
CPU
Register
Cache
Level 1
Cache
Level 2
Main
Memory
Secondary
Memory
การแบ่งระดับหน่ วยความจาและ
พารามิเตอร ์
ซีพย
ี ู จะทางานรวมกับหน่ วยความจา
ตลอดเวลา ประเภทของหน่ วยความจา
ประกอบด ้วย
- รีจส
ิ เตอร ์ (Register) เป็ นหน่ วยความจา
่ั
ขนาดเล็ก ใช ้เก็บข ้อมูลชวคราวอยู
ภ
่ ายใน
่ ด
ซีพย
ี ู สามารถเข ้าถึงได ้เร็วทีสุ
- หน่ วยความจาหลัก (Main Memory) เป็ น
หน่ วยความจาภายนอกซีพย
ี ู เข ้าถึงขอ้ มูลได ้
เร็วแต่ช ้ากว่าซีพย
ี ู ซีพย
ี จ
ู ะติดต่อกับ
การแบ่งระดับหน่ วยความจาและ
พารามิเตอร ์
- หน่ วยความจาสารอง (Secondary Memory)
่ เนื อที
้ ในการเก็
่
เป็ นหน่ วยความจาทีมี
บข ้อมูล
มากกว่าหน่ วยความจาหลัก มีราคาถูก แต่
เข ้าถึงข ้อมูลได ้ช ้า หน่ วยความจาประเภทนี ้
ได ้แก่ ฮาร ์ดดิสก ์ ซีดรี อม
- หน่ วยความจาแคช (Cache Memory) เป็ น
่ ้าถึงข ้อมูลได ้เร็วกว่า
หน่ วยความจาพิเศษทีเข
หน่ วยความจาหลัก แต่ช ้ากว่ารีจส
ิ เตอร ์ มี
ราคาแพง
คุณสมบัตข
ิ องหน่วยความจา
ประเภท
รีจส
ิ เตอร์
เวลาเข ้าถึง
0.4 - 1
นาโนวินาที
ราคา/MB
ขนาด/หน่วย
สูง
1kB
หน่วยความจาแคช
0.4 - 20
นาโนวินาที
$10
1MB
หน่วยความจาหลัก
10 - 50
นาโนวินาที
$.25
64MB
$.002
100GB
ฮาร์ดดิสก์
10
มิลลิวน
ิ าที
คุณสมบัตข
ิ องหน่วยความจา
ิ ธิภาพกับราคา
•การพิจารณาประสท
ใชอั้ ตราสว่ น ราคา / สมรรถนะ
cost /
performance
สูตรการหา ราคา (cost)
เมือ
่
C = ราคาหน่วยความจา
S = ขนาดของหน่วยความจา
คุณสมบัตข
ิ องหน่วยความจา
สมถรรนะ (performance) ได ้จากเวลา
้
ทีใ่ ชในการอ่
านเขียนหน่วยความจา
(memory access time)
จงหาว่าราคาและสมรรถนะของ
หน่วยความจาใดทีม
่ รี าคาต่อ
ิ ธิภาพดีทส
ประสท
ี่ ด
ุ ?
รูปแบบการเข ้าถึงหน่วยความจา
• Random Access Memory หรือ RAM
เป็ นหน่วยความจาทีเ่ ข ้าถึงข ้อมูล
่ สามารถเข ้าถึงทุกตาแหน่ง
แบบสุม
้
ของหน่วยความจาได ้โดยใชเวลา
เท่ากัน
• Semi-Random Access Memory เป็ น
้ อ
การนา RAM มาปรับใชเพื
่ ลดต ้นทุน
การทางานจะมีหัวอ่านบางตาแหน่ง
ความหมายต่าง ๆ ของ
หน่วยความจา
• Location คือตาแหน่งทีอ
่ ยูข
่ องหน่วยความจา ถ ้าอยูใ่ น
ี ย
ี ย
ซพ
ี เู รียกว่า รีจส
ิ เตอร์หรือแคชภายใน ถ ้าอยูน
่ อกซพ
ี ู
คือ หน่วยความจาแคชภายนอก หน่วยความจาหลัก
หน่วยความจาสารอง
• Capacity เป็ นตัวบอกว่าหนึง่ ตาแหน่งสามารถเก็บข ้อมูล
ได ้กีบ
่ ต
ิ มี 8, 16, 32 บิต
• Unit of Transfer เป็ นตัวบอกในการอ่านเขียนแต่ละ
ครัง้ เป็ นครัง้ ละเวิรด
์ หรือครัง้ ละหลายเวิรด
์
• Access Method เป็ นตัวบอกวิธก
ี ารเข ้าถึงข ้อมูลใน
หน่วยความจา
– Sequential Access จะอ่านหรือเขียนต ้องทาตัง้ ตา่ แหน่งแรก
ไปจนถึงตาแหน่งสุดท ้าย
ความหมายต่าง ๆ ของ
หน่วยความจา
• Access Time เป็ นเวลาทีบ
่ อกว่าการอ่านข ้อมูลจาก
้
หน่วยความจาแต่ละเวิรด
์ ใชเวลาเท่
าใด โดยจะวัดตัง้ แต่
เริม
่ ต ้นอ ้างตาแหน่งในหน่วยความจาจนถึงเวลาทีไ่ ด ้
ข ้อมูล
• Cycle Time เป็ นค่าเวลาทีน
่ ้อยทีส
่ ด
ุ ทีต
่ ้องรอในระหว่าง
การอ่านค่าจากหน่วยความจาตาแหน่งเดิมสองครัง้ ติดกัน
่ DRAM จะต ้องมีเวลาหน่วงเพือ
เชน
่ รีเฟสหน่วยความจา
้
• Latency เวลาทีใ่ ชในการเข
้าถึงเวิรด
์ ข ้อมูลครัง้ แรก
• Bandwidth อัตราการสง่ ข ้อมูล (Data Transfer Rate)
จานวนบิตทีส
่ ามารถรับสง่ ข ้อมูลจากหน่วยความจาได ้ใน
หนึง่ หน่วยเวลา
การเชอมต่อระหว่างซพียก
ู บ
ั
หน่วยความจาหลัก
CPU
บัสแอดเดรส ขนาด k บิต
MAR
หน่วยความจาหลัก
2 k ตาแหน่ง
ความยาวเวิรด
์ n บิต
บัสข ้อมูลขนาด n บิต
MDR
บัสควบคุม
ถ ้า CPU มีขาแอดเดรส ขนาด 16 บิต จะอ ้างตาแหน่งหน่วยความจาได ้ 64K ต
ถ ้า CPU มีขาแอดเดรส ขนาด 32 บิต จะอ ้างตาแหน่งหน่วยความจาได ้ 4G ตา
การอ่าน-เขียนข ้อมูลลง
หน่วยความจา
- ถ ้า CPU ต ้องการอ่านข ้อมูลจากหน่วยความจา
หน่วยควบคุมภายในจะสงั่ ให ้รีจส
ิ เตอร์ MAR สง่
ค่าแอดเดรสออกมาอ ้างตาแหน่งของ
หน่วยความจา
ั ญาณ Read มาทางบัส
- จากนัน
้ จะสง่ สญ
ควบคุมเพือ
่ ควบคุมการอ่านข ้อมูล และสง่ ข ้อมูล
จากหน่วยความจามาทางบัสข ้อมูล สง่ มายัง
MDR
โครงสร ้างภายในหน่วยความจา
ั ญาณ Select บอกให ้เลือก
- สญ
เซลนีท
้ างาน
ั ญาณ R/W มีคา่ เป็ น 0 ให ้
- สญ
ข ้อมูลสง่ เข ้าทาง Data In ถ ้า
R/W มีคา่ เป็ น 1 จะนาค่าทีเ่ ก็บอยู่
หน่ วยความจาแบบ 4X8 เป็ นลักษณะ
ของ อาเรย ์ 2 มิต ิ
- มีขาแอดเดรส 2 เส ้น คือ A1 กับ A0 ติดต่อกับหน่ วยเก็บข ้อมูลภราย
่ บข ้อมูลได ้ 4
ใน 4 ตาแหน่ ง (22) และติดต่อกับหน่ วยความจาทีเก็
ตาแหน่ ง แต่ละตาแหน่ งเก็บข ้อมูลได ้ 8 บิต
- เรียกว่า หน่ วยความจาแบบ 4 x 8
หน่วยความจาหลัก
ี ย
• คอมพิวเตอร์จะเก็บคาสงั่ ทีซ
่ พ
ี ต
ู ้องทางาน
ไว ้ในหน่วยความจาหลัก
ื่ มต่อกับซพ
ี ย
• การเชอ
ี ู จะใชรี้ จส
ิ เตอร์ 2 ตัว
– รีจส
ิ เตอร์แอดเดรสหน่วยความจา (Memory
Address Register : MAR)
– รีจส
ิ เตอร์ข ้อมูลหน่วยความจา (Memory Data
Register : MDR)
หน่วยความจาหลัก
• ถ ้ามีแอดเดรสหน่วยความจาขนาด k บิต จะ
ทาให ้อ ้างตาแหน่งหน่วยความจาได ้ 2k
ตาแหน่ง
–16 บิต อ ้างได ้ 216 = 64k ตาแหน่ง
–32 บิต อ ้างได ้ 232 = 4G ตาแหน่ง
หน่ วยความจา ROM และ RAM
การทางานของคอมพิวเตอร ์ จาเป็ นต ้องมี
่
หน่ วยความจา โดยหน่ วยความจาของเครือง
คอมพิวเตอร ์จะมี 2 ส่วน คือ
่ บข ้อมูลที่
- รอม (ROM) เป็ นหน่ วยความจาทีเก็
สามารถอ่านข ้อมูลได ้อย่างเดียว ไม่สามารถแก ้ไข
ข ้อมูลได ้ และสามารถเก็บข ้อมูลได ้แม้ว่าจะไม่มี
้ วมัน
ไฟฟ้ าไปเลียงตั
- แรม (RAM) เป็ นหน่ วยความจาของระบบ ซึง่
สามารถเขียน อ่านข ้อมูลลงไปได ้ตลอดเวลา ใช ้
่ บข ้อมูลในขณะทีคอมพิ
่
เป็ นทีเก็
วเตอร ์ทางาน ไม่
้
เทคโนโลยีการผลิต RAM
เทคโนโลยีการผลิต RAM แบ่งออกเป็ น 2
ประเภท
้ น
ใชเป็
หน่วยความจาหลักของคอมพิวเตอร์
ในปั จจุบัน หน่วยความจาประเภทนี้
จะมีการคายประจุไฟฟ้ าออกมาเมือ
่
เวลาผ่านไป จึงต ้องมีการเขียนประจุ
ซา้ เพือ
่ ทาให ้ข ้อมูลยังคงอยู่
• Dynamic RAM (DRAM)
เทคโนโลยีการผลิต RAM
• Static RAM (SRAM) มีความเร็วในการ
อ่านเขียนข ้อมูลสูง และมีราคาสูง จึง
นามาทาเป็ นหน่วยความจาแคช
(Cache memory) เนือ
่ งจากวงจร
ั ซอน
้ ใชทรานซ
้
ิ เตอร์มา
ภายในซบ
ส
ต่อเป็ นวงจรสาหรับเก็บข ้อมูล
หน่วยความจาแบบ ROM
• ROM (Read Only Memory) เป็ น
หน่วยความจาทีถ
่ ก
ู บรรจุโปรแกรมมา
จากโรงงาน ไม่สามารถเขียนข ้อมูล
ทับใหม่ได ้
หน่วยความจาแบบ PROM
• PROM (Programmable ROM) เป็ น ROM ที่
สามารถโปรแกรมข ้อมูลใสไ่ ว ้ใน
ั เครือ
PROM ได ้เองแต่ต ้องอาศย
่ งมือ
พิเศษในการเขียน PROM และเขียนได ้
ครัง้ เดียว
หน่วยความจาแบบ EPROM
• EPROM (Erasable Programmable ROM)
สามารถโปรแกรมได ้เอง และลบเพือ
่
เปลีย
่ นแปลงข ้อมูลใหม่ได ้ โดยการลบ
จะใชวิ้ ธก
ี ารฉายแสงอัลตราไวโอเลต
(Ultraviolet)
หน่ วยความจาแบบ EEPROM
-
EEPROM (Electrically Erasable Programmable
่ ด
เป็ นหน่ วยความจาทีเปิ
โอกาสให ้ผูใ้ ช ้งานสามารถทาการบรรจุข ้อมูลใหม่ได ้
หลายครง้ั โดยก่อนบรรจุข ้อมูลใหม่ต ้องลบข ้อมูลเก่า
ก่อน โดยใช ้กระแสไฟฟ้ า เราเรียกหน่ วยความจา
ประเภทนี ว่้ า Firmware
Read Only Memory)
หน่วยความจาแบบ Flash Memory
หน่วยความจาชนิดนีค
้ ล ้าย
กับหน่วยความจา EEPROM สามารถอ่าน
และเขียนโปรแกรมข ้อมูลใหม่ได ้ด ้วย
ความเร็วสูง
• Flash Memory
มอดูลหน่วยความจา
• ขาแอดเดรส 20 เสน้ (A0-A19)
อ ้างตาแหน่งได ้ 1M = 220
• ขาข ้อมูล 8 เสน้ (DQ0-DQ7)
• ขาต่อแหล่งจ่ายไฟ (Vcc)
• ขากราวด์ (Vss/GND)
ิ (CE)
• ขาเลือกชป
• ขาอ่านเขียนข ้อมูล OE กับ WE
เทคโนโลยีของ RAM
้ นหน่วยความจาหลัก
ถูกนามาใชเป็
ิ
ของเครือ
่ งคอมพิวเตอร์ มีการนาเอาชป
DRAM มาต่อกันเป็ นมอดูลเพือ
่ ให ้มีความ
จุมากขึน
้ ปั จจุบน
ั 1 มอดูลมีขนาด 512
เมกะไบต์ 1 กิกะไบต์ 2 กิกะไบต์ และ
4 กิกะไบต์ เป็ นต ้น
DRAM
เทคโนโลยีของ RAM
ถูใชกั้ บ
ี ย
คอมพิวเตอร์ซพ
ี ู 80486 เป็ นการ
ประมวลผลแบบ 32 บิต การอ่านเขียน
ข ้อมูลกับ RAM แต่ละครัง้ จะมีขนาด 32
บิต
1. Fast Page Mode DRAM
เทคโนโลยีของ RAM
เป็ นการปรับปรุง DRAM ให
้
ี ย
อ่านข ้อมูลได ้ไวขึน
้ ใชในซ
พ
ี ู่ Pentium,
Pentium MMX, Pentium Pro
2. EDO DRAM
เทคโนโลยีของ RAM
เป็ นการพัฒนาให ้เข ้ากับ
ิ ทาให ้การ
ั ญาณนาฬกา
จังหวะของสญ
ี ย
ทางานได ้เร็วมาก ใชกั้ บซพ
ี ู Pentium II,
3. SDRAM
Pentium III
เทคโนโลยีของ RAM
4. DDR SDRAM (Double Data Rate SDRAM)
สามารถอ่านข ้อมูลได ้ทัง้ ขอบขาขึน
้ และ
ิ
ั ญาณนาฬกาเพี
ขอบขาลงของสญ
ยง 1
ลูก มีบส
ั ทีก
่ ว ้างถึง 64 บิต แรมในกลุม
่ นี้
ประกอบด ้วย DDR II, DDR III เป็ นต ้น
หน่วยความจาแคช
• หน่วยความจาแคชสร ้างจาก
หน่วยความจาประเภท SRAM
้ นทีพ
• ใชเป็
่ ักชวั่ คราวทีอ
่ ยูร่ ะหว่าง
ี ย
หน่วยความจาหลักกับซพ
ี ู
หน่วยความจาแคช
ี ย
• ถ ้าหากซพ
ี ม
ู ค
ี วามเร็วสูง ๆ การอ่านเขียนข ้อมูลกับ
หน่วยความจาหลักอาจเกิดภาวะ Wait state หรือ
อาการรอ
• หน่วยความจาแคชเป็ นหน่วยความจาทีม
่ ค
ี วามเร็ว
สูง แต่มข
ี นาดเล็กกว่าหน่วยความจาหลัก
้ บข ้อมูลทีซ
ี ย
้
• ใชเก็
่ พ
ี ใู ชงานบ่
อย ๆ หรือข ้อมูลทีค
่ าด
ี ย
ว่าซพ
ี จ
ู ะต ้องใช ้
ี ย
• การอ่านข ้อมูลซพ
ี จ
ู ะมาอ่านจากหน่วยความจา
แคชก่อน ถ ้าไม่มจ
ี งึ จะไปอ่านในหน่วยความจาหลัก
ี ย
• ภาวะทีซ
่ พ
ี อ
ู า่ นข ้อมูลในแคชแล ้วพบข ้อมูลเรียกว่า
Cache Hit
หน่วยความจาแคช
เริม
่ ต ้น
รับค่าแอดเดรส
ี ย
จากซพ
ี ู
มีบล็อก
ข ้อมูลใน
แคช
หรือไม่
ติดต่อกับหน่วยความจาหลัก
หาตาแหน่งทีส
่ อดคล ้องกับ
หน่วยความจาหลัก
อ่านข ้อมูลเข ้า
แคช
ิ้
เสร็จสน
สง่ ข ้อมูลให ้กับ
ี ย
ซพ
ี ู
Internal
และ External Cache
• หน่วยความจาแคชมีมานานแล ้วโดยสร ้างจาก SRAM
นามาประกอบบนเมนบอร์ด
ี ย
• ต่อมาเมือ
่ มีการผลิตซพ
ี ู Intel รุน
่ 80486 ได ้เริม
่ มี
ี ย
การนาแคชมาใสไ่ ว ้ในตัวซพ
ี ู
ี ย
• ในซพ
ี ต
ู งั ้ แต่รน
ุ่ Pentium ได ้แบ่งหน่วยความจา
แคชออกเป็ น 2 สว่ น คือ แคชของข ้อมูล (Data
Cache) และแคชของโปรแกรม (Instruction Cache)
ี ย
• หน่วยความจาแคชทีอ
่ ยูภ
่ ายในซพ
ี เู รียกว่า Internal
Cache หรือ แคช Level 1 หรือ L1
• เมือ
่ มีความต ้องการหน่วยความจาแคชมากขึน
้ จึงมี
การติดตัง้ แคชไว ้บนเมนบอร์ดเรียกว่า External Cache
การบ ้าน
1. จงอธิบายความหมายของหน่ วยความจาหลักและ
หน่ วยความจาสารอง
2. จงอธิบายความหมายของการเข ้าถึงข ้อมูลแบบสุ่ม
(Random Access Memory)
้
3. จงอธิบายขันตอนการท
างานของแคช
4. จงอธิบายว่าหน่ วยความจาแคชภายในและภายนอกมี
่ มพันธ ์กันอย่างไร
การทางานทีสั