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. จงอธิบายว่าหน่ วยความจาแคชภายในและภายนอกมี ่ มพันธ ์กันอย่างไร การทางานทีสั