GMT Guild
Would you like to react to this message? Create an account in a few clicks or log in to continue.

ความรู้เรื่อง Cache Memory

Go down

ความรู้เรื่อง Cache Memory Empty ความรู้เรื่อง Cache Memory

ตั้งหัวข้อ by Admin Tue Feb 09, 2016 11:32 am

หน่วยความจำที่ใช้กับแคช
CACHE คือ หน่วยความจำขนาดเล็กที่มีความเร็วสูงซึ่งเก็บข้อมูล หรือคำสั่งที่ถูกเรียกใช้หรือเรียกใช้บ่อยๆ ข้อมูลและคำสั่งที่เก็บอยู่ใน CACHEซึ่งทำงานโดยใช้ SRAM (STATIC RAM) จะถูกดึงไปใช้งานได้เร็วกว่าการดึงข้อมูลจากหน่วยความจำหลัก (MAIN MEMORY)ซึ่งใช้DRAM (DYNAMIC RAM )หลายเท่าตัว

การทำงานของ CACHE เป็นขั้นตอนดังนี้
โปรแกรมที่ทำงานโดยผ่านหน่วยประมวลผลกลาง (CPU) ได้ทำการเรียกข้อมูลหรือรหัสที่ CPU จำเป็นต้องใช้ RAM cache ซึ่งเป็นส่วนหนึ่งของวงจรหลักในเครื่องคอมพิวเตอร์ ได้รับสัญญานการเรียกข้อมูลในขณะที่คำสั่งการเรียกข้อมูลกำลังเดินทางไปยัง RAM และ cache จะทำการค้นหาข้อมูลจากRAM และส่งต่อข้อมูลไปยัง CPU ในการค้นหาข้อมูลครั้งแรกอาจจะใช้เวลานานโดยที่ตัว CPU ไม่สามารถทำงานอย่างอื่นได้ในเวลานั้น ในขั้นตอนการค้นหาข้อมูลนี้ cache จะทำการบันทึกข้อมูลที่ค้นพบไว้ใน high-speed memory chips ที่มีเฉพาะภายใน cache ในทันที่ cache ตรวจสอบพบว่า CPU ได้ทำงานเสร็จสิ้นและกำลังว่างอยู่ cache จะทำการค้นหาข้อมูลหรือรหัสของโปรแกรม ซึ่งอยู่ใกล้เคียงกับตำแหน่งของข้อมูลที่ทางโปรแกรมได้เรียกใช้ก่อนหน้านี้จาก memory address และจัดเก็บข้อมูลไว้ใน high-speed memory chips ครั้งต่อไปที่ทางโปรแกรมถามหาข้อมูลจากทางหน่วยประมวลผลกลาง(CPU) cacheจะตรวจสอบดูว่าข้อมูลที่โปรแกรมต้องการมีอยู่ใน high-speed memory chips แล้วหรือยัง ถ้ามีอยู่แล้ว cache จะส่งข้อมูลไปให้ CPUได้โดยไม่จำเป็นต้องผ่านหน่วยความจำหลักซึ่งมีการทำงานที่ช้ากว่ามาก ทำให้ CPU สามารถลดเวลาไร้ประสิทธิภาพ และทำงานได้มากขึ้น เมื่อ CPU ต้องการเปลี่ยนข้อมูลบางอย่างที่มีอยู่ในหน่วยความจำหลักอยู่แล้ว cache จะตรวจสอบดูก่อนว่าข้อมูลที่โปรแกรมต้องการจะเปลี่ยน มีการจัดเก็บอยู่ใน high-speed memory chips แล้วหรือยัง ถ้ามีอยู่แล้ว cache จะเปรียบเทียบข้อมูลที่มีอยู่เดิมกับข้อมูลใหม่ที่เปลี่ยนไป และจะส่งข้อมูลไปเฉพาะ memory address ใน หน่วยความจำหลัก ที่มีการเปลี่ยนแปลงข้อมูลจากข้อมูลเดิมใน high-speed memory chips ซึ่งจะเร็วกว่าการเปลี่ยนแปลงข้อมูลทั้งหมด

ในปัจจุบันจะพบการใช้งาน Cache อยู่ 2 แบบ นั่นก็คือ Memory Cache และ Disk Cache
โดยที่ หลักการทำงานของทั้ง 2 ชนิดนี้ก็คล้าย ๆ กัน คือ Disk Cache นั้นจะเป็นการอ่านข้อมูลที่ต้องการใช้งานเข้า มาเก็บไว้ในหน่วยความจำหลัก เมื่อ CPU มีการเรียกใช้งาน ก็จะเข้าไปค้นหาในหน่วยความจำหลักก่อนหากว่า ไม่พบจึงจะไปค้นหาใน Harddisk ต่อไป และในกรณีของ Memory Cache นั้น ก็เป็นอีกลำดับขั้นหนึ่งถัดจาก Disk Cache นั่นก็คือ จะทำการดึงข้อมูลที่มีการเรียกใช้งานบ่อย ๆ เข้ามาเก็บไว้ในหน่วยความจำ ขนาดเล็ก ที่มีความไวสูงกว่าหน่วยความจำหลัก เมื่อ CPU ต้องการใช้งาน ก็จะมองหาข้อมูลที่ต้องการ ที่หน่วยความจำ ขนาดเล็กนั้นก่อน ก่อนที่จะเข้าไปหาในหน่วยความจำหลักที่มี การเข้าถึงและการส่งข้อถ่ายข้อมูลที่ช้ากว่าต่อ ไปและหน่วยความจำขนาดเล็ก ๆ นั้นก็คือ Cache นั่นเอง

Memory Cache นั้น ตำแหน่งของมัน จะอยู่ระหว่าง CPU กับหน่วยความจำหลัก โดยมันจะทำการดึง หรือเก็บข้อมูล ที่มีการเรียกใช้งานบ่อย ๆ จากหน่วยความจำหลัก ซึ่งความไวในการอ่าน หรือส่งถ่ายข้อมูลจาก Cahe ไปยัง CPU หรือจาก CPU ไปยัง Cache จะทำได้เร็วกว่า จากหน่วยความจำหลักไปยัง CPU หรือจาก CPU ไปยังหน่วยความจำหลักมาก เพราะทำด้วย SRAM ซึ่งมีความไวสูง และมีราคาแพงกว่าหน่วยความจำ ของระบบทเป็น DRAM อยู่มาก และก็เพราะราคาที่แพงนี้ ทำให้ขนาดของ Cache ที่ใช้ในระบบ จึงมีขนาด น้อยกว่าหน่วยความจำหลักอยู่มาก DRAM หรือ Dynamic RAM นั้นจะทำการเก็บข้อมูลในตัวเก็บประจุ ซึ่งจำเป็นจะต้องมีการ refresh เพื่อเก็บข้อมูลให้คงอยู่ โดยการ refresh นี้ ทำให้เกิดการหน่วงเวลาขึ้นในการ เข้าถึงข้อมูล และก็เนื่องจากที่มันต้อง refresh ตัวเองอยู่ตลอดเวลานี้เอง เป็นเหตุให้ได้ชื่อว่า Dynamic RAM ส่วน SRAM นั้นจะต่างจาก DRAM ตรงที่ว่า DRAM จะต้องทำการ refresh ข้อมูลอยู่ตลอดเวลา แต่ใน ขณะที่ SRAM จะเก็บข้อมูลนั้นๆ ไว้ และจะไม่ทำการ refresh โดยอัตโนมัติ ซึ่งมันจะทำการ refresh ก็ต่อเมื่อ สั่งให้มัน refresh เท่านั้น ซึ่งข้อดีของมัน ก็คือความเร็ว ที่เร็วกว่า DRAM ปกติมาก แต่ก็ด้วยราคาที่สูงกว่ามาก จึงเป็นข้อด้อยของมันเช่นกัน

จากที่กล่าวมาข้างต้น ก็ดูเหมือนว่า Cache นั้น มีความสำคัญ ต่อความเร็วของระบบอยู่ไม่ใช่น้อย แล้ว ทำใมเราถึงเพิ่งจะ ให้ความสำคัญกับมันล่ะ? เพราะว่า เพิ่งมีการใช้ Cache กับ CPU รุ่นใหม่ ๆ อย่างนั้นหรือ? เปล่าเลยจริง ๆ แล้วมีการใช้ Cache มาตั้งนานแล้ว ตั้งแต่รุ่น 80486 ซึ่งสมัยนั้นทาง Intel ก็เริ่มมีการใส่ Cache ให้กับ CPU ของตน โดยที่เริ่มใส่ขนาด 8KB ในรุ่น 486DX-33 และได้ทำการเพิ่มเป็น 16KB ในรุ่น 486DX4 เป็นต้นมา ซึ่ง Cache ที่ใส่ไปนั้นได้ใส่เข้าไปในแกนหลักของ CPU เลย ทำให้การติดต่อระหว่าง CPU กับ Cache ทำได้เร็วมาก และมีการใช้ Cache อีกขั้นหนึ่ง โดยใส่ไปที่ Mainboard ซึ่งมีขนาดที่ใหญ่ กว่า แต่ช้ากว่า Cache ที่ใส่ไว้ในแกน CPU เมื่อ CPU ต้องการข้อมูลใด ๆ ก็จะทำการค้นหาจาก Cache ที่อยู่ ภายในแกน CPU ก่อน หากว่าพบข้อมูลที่ต้องการ (เรียกว่า Cache Hit) ก็จะดึงข้อมูลนั้นๆ มาใช้งานได้เลย แต่ถ้าหากไม่พบ (เรียกว่า Cache Miss) ก็จะการค้นหาในส่วนของ Cache ที่อยู่บน Mainboard ต่อไป และ หากว่ายังไม่พบอีก ก็จะไปค้นหาต่อใน Harddisk ต่อไป

ด้วยตำแหน่งในการเก็บ Cache ที่ต่างกัน และลำดับขั้นในการเรียกใช้งานต่างกัน จึงเรียก Cache ที่อยู่ ในแกนของ CPU ว่า Internal Cache หรือ Level 1 Cache (L1 Cache) และเรียก Cache ที่อยู่นบน Mainboard นั้นว่าเป็น External Cache หรือ Level2 Cacke (L2 Cache)

ต่อมาใน CPU รุ่น Pentium ของ Intel นั้น ก็ได้ทำการแบ่ง Cache ภายในออกเป็น 2 ส่วนเพื่อแยกการ ทำงานกัน ซึ่งก็ได้แบ่งจาก 16KB นี้ ออกเป็น 8KB เพื่อใช้เก็บคำสั่งต่าง ๆ เรียกว่า Instruction Cache และ อีก 8KB เพื่อใช้เก็บข้อมูลต่าง ๆ เรียกว่า Data Cache

และต่อมา CPU ในรุ่น Pentium II ของ Intel นั้น ก็ได้มีการเปลี่ยนแปลงตำแหน่งการเก็บ Cache ระดับ 2 ซึ่งจากปกติจะจัดเก็บไว้ บน Mainboard ก็ทำการย้าย มาเก็บไว้บน Package เดียวกับ CPU CPU Intel Pentium II นั้น จะมีลักษณะเป็น Cartridge แผ่นกว้างๆ มี CPU อยู่ตรงกลาง และเก็บ Cache ไว้ข้างๆ แล้วรวมกันเป็น Package เดียวกัน เรียกว่า Single Edge Contack หรือ SECC แต่ยังคงเรียก Cache ที่อยู่บน SECC ว่าเป็น External Cache หรือ Level2 Cache เช่นเดิม เพราะยังคงอยู่ภายนอกตัว CPU เพียงแค่อยู่บน Package เดียวกันเท่านั้น แต่ด้วยราคาที่สูงมากของ CPU Pentium II ในสมัยที่เพิ่งวางตลาด ทำให้มีผู้สนใจน้อย ทาง Intel จึงได้ตัด Cache ระดับ 2 ออกจาก Pentium II เพื่อลดต้นทุนการผลิต และเปลี่ยนรูปแบบ Package ให้ดูบางลง แล้วเรียก CPU ใหม่นี้ว่า Celeron และเรียก Package ของ Celeron ว่า Single Edge Processor Package

จากที่กล่าวมาแล้วข้างต้นว่า Cache นั้นมีราคาสูง เพราะฉะนั้น เมื่อตัด Cache ระดับ 2 ออก ทำให้ ราคาของ Celeron ถูกกว่า Pentium II อยู่มาก และทาง Intel ก็หวังจะใช้ Celeron ที่ราคาถูกนั้น ตีตลาด ระดับกลางและล่าง แต่แล้วก็ฝันสลาย เพราะ Celeron ที่ไม่มี Cache นั้น ในด้านการเล่นเกมส์ ที่ไม่มีการ เรียกใช้ Cache เท่าไหร่ ทำคะแนน หรือมีความสามารถ เทียบเท่ากับ Pentium II ที่ความเร็วเท่าๆ กัน แต่ใน งานด้าน Office Application เช่น Microsoft Word, Microsoft Excell กลับทำคะแนนได้แย่มากๆ จากที่เห็น ก็คือ Celeron ที่ความเร็ว 300 MHz นั้นเมื่อใช้งานกับ Application ดังกล่าว กลับช้ากว่า Pentium MMX 233 เสียอีก ทำให้ Celeron รุ่นดังกล่าวไม่ได้รับความนิยมเท่าใดนัก ทาง Intel จึงได้ผลิต Celeron รุ่นใหม่ที่ได้ เติม Cache ระดับ 2 เข้าไปด้วย โดยให้มีขนาดเพียง 1/4 ของ Pentium II แต่ให้ทำงานด้วยความเร็วเท่ากับ ความเร็วของ CPU (Cache ระดับ 2 ของ Pentium II นั้นจะทำงานที่ความเร็วเพียงครึ่งหนึ่งของความเร็ว CPU) และเพียงเพิ่ม Cache ระดับ 2 เข้าไปนี้เอง ผลคะแนนที่ได้จากการทำงานกับ Application ดังกล่าว กลับเพิ่มขึ้นมามาก ต่างจาก รุ่นเดิมที่ไม่มี Cache อย่างเห็นได้ชัด

นี่เป็นจุดหนึ่งที่ทำให้ Cache น่าสนใจมากขึ้น แต่ยังไม่หมดเท่านี้ อีกจุดหนึ่งที่ทำให้เรื่องของ Cache นั้นเป็น ที่กล่าวถึง กันมากขึ้น เกิดจากการประกาศตัวของ AMD K6-III

AMD K6-III มีอะไรดี ถึงทำให้เรื่องของ Cache เป็นที่น่าสนใจนัก อันนี้คงต้องเท้าความไปอีกสักนิดหนึ่ง ก่อนว่า CPU ของ AMD นั้นมีการใช้ Internal Cache และ External Cache เช่นเดียวกับ CPU ของ Intel มาโดยตลอด เมื่อ Intel เปลี่ยนสถาปัตยกรรมใหม่ เอา Cache ไปไว้บน Package ของ CPU และไม่มีการใช้ Cache บน Mainboard อีกต่อไป แต่ทาง AMD ก็ยังคงใช้งานบน สถาปัตยกรรมเดิมคือมี Internal Cache ภายใน CPU และมี External Cache อยู่บน Mainboard เรื่อยมา จนถึงรุ่น AMD K6-2

พอมา AMD K3-III ทาง AMD ก็ได้ทำการ เพิ่ม Cache เข้าไปที่ Package ของ CPU บ้าง (แต่ไม่ได้รวม เข้าไปในแกนของ CPU) และยังคงให้ม Cache บน Mainboard เช่นเดิม ดังนั้น จึงเกิดมีการใช้งาน Cache ถึง 3 ระดับด้วยกัน (เรียกว่า Tri Level Cache) โดยระดับแรกสุดนั้น ก็คือ Cache ที่อยู่ภายในแกนของ CPU เลย ระดับถัดมา ก็อยู่บน Package ของ CPU และระดับสุดท้ายอยู่บน Mainboard ซึ่งขนาดของ Cache ก็จะมากขึ้นตามลำดับ ในขณะที่ความเร็วในการใช้งานกลับลดลงตามลำดับ
Admin
Admin
Admin
Admin

จำนวนข้อความ : 10
Join date : 31/01/2016
Age : 40
ที่อยู่ : สระบุรี

https://gmtguild.forumth.com

ขึ้นไปข้างบน Go down

ขึ้นไปข้างบน


 
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ