Cache Memory
หน่วยความจำแบบแคช (Cache Memory)
หน่วยความจำแบบแคช (Cache Memory) คืออะไร
หน่วยความจำแบบแคช (Cache Memory) เป็นหน่วยความจำประเภทความเร็วสูง โดยมากจะใช้เป็นหน่วยความจำประเภท RAM ซึ่งใช้งานร่วมกับ CPU ที่ต้องการประสิทธิภาพในการประมวลผลสูง เพื่อไม่ให้เกิดสถานะรอ (Wait State) ของ CPU ขึ้น การทำงานของ Cache จะต้องมีวงจรคอยควบคุมเพื่อใหข้อมูลที่ CPU ใช้งานอยู่บ่อยๆ อยู่ในหน่วยความจำแบบ Cache มาก ที่สุด ซึ่งจะเป็นการเพิ่มความเร็วในการทำงานของ CPU นั่นเอง
มี Cache แล้วดีอย่างไร
เนื่องจากเทคโนโลยีการผลิตวงจรรวม (Integrated Circuit) พัฒนาไปมาก ทำให้ CPU ที่มีการผลิตออกมานั้น นับวันจะมีความเร็วสูงขึ้นเรื่อยๆ ตามพัฒนาการของเทคโนโลยี จึงทำให้เกิดปัญหาความเร็วที่แตกต่างกันระหว่าง CPU กับหน่วยความจำหลักมีมากขึ้นตามไปด้วย เป็นเหตุให้ประสิทธิภาพการทำงานของ CPU ต่ำลง เนื่องจาก CPU ไม่สามารถทำงานได้เต็มขีดความสามารถ (ความเร็ว) ที่มันมีอยู่ ดังนั้นหน่วยความจำ Cache จึงเป็นกลไกเข้ามาช่วยบรรเทาปัญหานี้ โดย Cache จะเป็นตัวกลางในการนำข้อมูลจาก ROM RAM หรือฮาร์ดดิสก์ที่ CPU ต้องการใช้งานเข้ามาเก็บพักไว้ที่ Cache ซึ่งนั่นทำให้ CPU ไม่ต้องดำเนินการผ่านหน่วยความจำหลัก ซึ่งเป็นหน่วย ความจำปกติที่ CPU ทำงานด้วย
การทำงานของ Cache
โครงสร้างการทำงานของ Cache ค่อนข้างจะซับซ้อนและมีราคาแพง ถ้าเทียบกับหน่วยความจำประเภทอื่น ในคอมพิวเตอร์ที่ใช้ Cache นั้น เมื่อใดที่ CPU ทำการอ่านข้อมูลของหน่วยความจำ วงจรควบคุม Cache จะทำการตรวจสอบดูว่าข้อมูลที่ CPU ต้องการอ่านนั้นอยู่ภายใน Cache ถ้าอยู่แล้วก็จะทำการส่งไปให้ CPU เลย ซึ่งจะสามารถส่งได้อย่างรวดเร็วมาก แต่ถ้าข้อมูลนั้นไม่มีอยู่ใน Cache CPU จะต้องรอชั่วขณะ เพื่อให้วงจรควบคุมอ่านข้อมูลจากหน่วย ความจำหลักมาใช้ และในขณะเดียวกันก็จะนำข้อมูลนั้นไปไว้ใน Cache ด้วย ซงจะทำให้การอ่านข้อมูลในครั้งต่อไปทำได้เร็วขึ้น
เหตุผลที่ทำให้ Cache เป็นที่นิยม คือ โปรแกรมส่วนใหญ่มีแนวโน้มที่จะใช้ข้อมูลในหน่วยความจำส่วนใดส่วนหนึ่งซ้ำแล้วซ้ำอีก ดังนั้น เมื่อส่วนที่ถูกใช้งานบ่อยๆ ถูกนำมาไว้ใน Cache แล้วก็จะทำให้ประสิทธิภาพของระบบดีขึ้นหน่วยความจำ Cache สามารถแบ่งได้ 2 แบบ
1. Memory Cache: จะเป็นการใช้หน่วยความจำ RAM ชนิดความเร็วสูงเป็นพิเศษมาเก็บคำสั่ง และข้อมูลที่ใช้บ่อยๆ จากหน่วยความจำ RAM แบบปกติของระบบ เพื่อลดเวลาที่ CPU ใช้ในการอ่าน RAM ซึ่งมีความเร็วในการทำงานช้ากว่าการทำงานของ CPU มาก
2. Device Cache: เป็นการออกแบบเพื่อเพิ่มความเร็วในการเข้าถึงข้อมูลในอุปกรณ์อื่นๆ เช่น หน่วยความจำสำรอง โดยการจัดสรร RAM มาใช้เก็บข้อมูลและคำสั่งต่างๆ ที่ใช้บ่อยๆ จากอุปกรณ์ที่มีความเร็วต่ำ เช่น ฮาร์ดดิสก์ มาไว้ใน Cache ทำให้จำนวนครั้งที่ต้องการเรียกใช้ข้อมูลจากอุปกรณ์เหล่านั้นลดลง นอกจากนี้ในบางครั้งจะพบกับ Buffer Memory ซึ่งเป็น Cache สำหรับอุปกรณ์แบบง่ายๆ ทำหน้าที่พักข้อมูลจากอุปกรณ์ไว้ชั่วคราว เพื่อรอให้ CPU มาเรียกอ่านไปใช้ โดยไม่มีการใช้วิธีที่ซับซ้อนในการเลือกว่าข้อมูลใดมีโอกาสสูงสุดที่จะถูกเรียกใช้งาน
จะเพิ่มประสิทธิภาพของ Cache ได้อย่างไร
วิธีการวัดประสิทธิภาพของ Cache ก็คือ อัตราส่วนของจำนวนครั้งที่สามารถอ่านข้อมูลจาก Cache ได้ ต่อจำนวนครั้งที่มีการอ่านข้อมูลทั้งหมด ซึ่งเรียกว่า Hit Rate เช่น ถ้า Hit Rate มีค่า 90% หมายความว่าใน 100 ครั้งที่ทำการอ่านข้อมูลจากหน่วยความจำ จะเป็นการอ่านข้อมูลจาก Cache 90 ครั้ง เพราะฉะนั้นระบบใดที่ให้ค่า Hit Rate ยิ่งสูงก็จะยิ่งมีประสิทธิภาพดี เพราะว่า ส่วนใหญ่ของการอ่านข้อมูลจะอ่านได้จาก Cache ซึ่งใช้เวลาน้อย โดยทั่วไปแล้วถ้าระบบใดมี Hit Rate มากกว่า 60% แสดงว่าระบบนั้นมีประสิทธิภาพที่ดี
การเพิ่มความเร็วในการประมวลผลแก่คอมพิวเตอร์ด้วยการปรับแต่ง Cache ทำได้อย่างง่ายๆ โดยการเพิ่มขนาดของ Cache ให้สูงขึ้น เพราะว่าเมื่อ Cache มีขนาดใหญ่ขึ้นก็จะสามารถเก็บข้อมูลไว้ภายในได้มากขึ้น ทำให้โอกาสที่จะพบข้อมูลใน Cache ก็จะสูงตามไปด้วย
ที่มา http://www.ismed.or.th/SME2/src/upload/knowledge/118915405346e10d05931c0.pdf
หน่วยความจำแบบแคช (Cache Memory) คืออะไร
หน่วยความจำแบบแคช (Cache Memory) เป็นหน่วยความจำประเภทความเร็วสูง โดยมากจะใช้เป็นหน่วยความจำประเภท RAM ซึ่งใช้งานร่วมกับ CPU ที่ต้องการประสิทธิภาพในการประมวลผลสูง เพื่อไม่ให้เกิดสถานะรอ (Wait State) ของ CPU ขึ้น การทำงานของ Cache จะต้องมีวงจรคอยควบคุมเพื่อใหข้อมูลที่ CPU ใช้งานอยู่บ่อยๆ อยู่ในหน่วยความจำแบบ Cache มาก ที่สุด ซึ่งจะเป็นการเพิ่มความเร็วในการทำงานของ CPU นั่นเอง
มี Cache แล้วดีอย่างไร
เนื่องจากเทคโนโลยีการผลิตวงจรรวม (Integrated Circuit) พัฒนาไปมาก ทำให้ CPU ที่มีการผลิตออกมานั้น นับวันจะมีความเร็วสูงขึ้นเรื่อยๆ ตามพัฒนาการของเทคโนโลยี จึงทำให้เกิดปัญหาความเร็วที่แตกต่างกันระหว่าง CPU กับหน่วยความจำหลักมีมากขึ้นตามไปด้วย เป็นเหตุให้ประสิทธิภาพการทำงานของ CPU ต่ำลง เนื่องจาก CPU ไม่สามารถทำงานได้เต็มขีดความสามารถ (ความเร็ว) ที่มันมีอยู่ ดังนั้นหน่วยความจำ Cache จึงเป็นกลไกเข้ามาช่วยบรรเทาปัญหานี้ โดย Cache จะเป็นตัวกลางในการนำข้อมูลจาก ROM RAM หรือฮาร์ดดิสก์ที่ CPU ต้องการใช้งานเข้ามาเก็บพักไว้ที่ Cache ซึ่งนั่นทำให้ CPU ไม่ต้องดำเนินการผ่านหน่วยความจำหลัก ซึ่งเป็นหน่วย ความจำปกติที่ CPU ทำงานด้วย
การทำงานของ Cache
โครงสร้างการทำงานของ Cache ค่อนข้างจะซับซ้อนและมีราคาแพง ถ้าเทียบกับหน่วยความจำประเภทอื่น ในคอมพิวเตอร์ที่ใช้ Cache นั้น เมื่อใดที่ CPU ทำการอ่านข้อมูลของหน่วยความจำ วงจรควบคุม Cache จะทำการตรวจสอบดูว่าข้อมูลที่ CPU ต้องการอ่านนั้นอยู่ภายใน Cache ถ้าอยู่แล้วก็จะทำการส่งไปให้ CPU เลย ซึ่งจะสามารถส่งได้อย่างรวดเร็วมาก แต่ถ้าข้อมูลนั้นไม่มีอยู่ใน Cache CPU จะต้องรอชั่วขณะ เพื่อให้วงจรควบคุมอ่านข้อมูลจากหน่วย ความจำหลักมาใช้ และในขณะเดียวกันก็จะนำข้อมูลนั้นไปไว้ใน Cache ด้วย ซงจะทำให้การอ่านข้อมูลในครั้งต่อไปทำได้เร็วขึ้น
เหตุผลที่ทำให้ Cache เป็นที่นิยม คือ โปรแกรมส่วนใหญ่มีแนวโน้มที่จะใช้ข้อมูลในหน่วยความจำส่วนใดส่วนหนึ่งซ้ำแล้วซ้ำอีก ดังนั้น เมื่อส่วนที่ถูกใช้งานบ่อยๆ ถูกนำมาไว้ใน Cache แล้วก็จะทำให้ประสิทธิภาพของระบบดีขึ้นหน่วยความจำ Cache สามารถแบ่งได้ 2 แบบ
1. Memory Cache: จะเป็นการใช้หน่วยความจำ RAM ชนิดความเร็วสูงเป็นพิเศษมาเก็บคำสั่ง และข้อมูลที่ใช้บ่อยๆ จากหน่วยความจำ RAM แบบปกติของระบบ เพื่อลดเวลาที่ CPU ใช้ในการอ่าน RAM ซึ่งมีความเร็วในการทำงานช้ากว่าการทำงานของ CPU มาก
2. Device Cache: เป็นการออกแบบเพื่อเพิ่มความเร็วในการเข้าถึงข้อมูลในอุปกรณ์อื่นๆ เช่น หน่วยความจำสำรอง โดยการจัดสรร RAM มาใช้เก็บข้อมูลและคำสั่งต่างๆ ที่ใช้บ่อยๆ จากอุปกรณ์ที่มีความเร็วต่ำ เช่น ฮาร์ดดิสก์ มาไว้ใน Cache ทำให้จำนวนครั้งที่ต้องการเรียกใช้ข้อมูลจากอุปกรณ์เหล่านั้นลดลง นอกจากนี้ในบางครั้งจะพบกับ Buffer Memory ซึ่งเป็น Cache สำหรับอุปกรณ์แบบง่ายๆ ทำหน้าที่พักข้อมูลจากอุปกรณ์ไว้ชั่วคราว เพื่อรอให้ CPU มาเรียกอ่านไปใช้ โดยไม่มีการใช้วิธีที่ซับซ้อนในการเลือกว่าข้อมูลใดมีโอกาสสูงสุดที่จะถูกเรียกใช้งาน
จะเพิ่มประสิทธิภาพของ Cache ได้อย่างไร
วิธีการวัดประสิทธิภาพของ Cache ก็คือ อัตราส่วนของจำนวนครั้งที่สามารถอ่านข้อมูลจาก Cache ได้ ต่อจำนวนครั้งที่มีการอ่านข้อมูลทั้งหมด ซึ่งเรียกว่า Hit Rate เช่น ถ้า Hit Rate มีค่า 90% หมายความว่าใน 100 ครั้งที่ทำการอ่านข้อมูลจากหน่วยความจำ จะเป็นการอ่านข้อมูลจาก Cache 90 ครั้ง เพราะฉะนั้นระบบใดที่ให้ค่า Hit Rate ยิ่งสูงก็จะยิ่งมีประสิทธิภาพดี เพราะว่า ส่วนใหญ่ของการอ่านข้อมูลจะอ่านได้จาก Cache ซึ่งใช้เวลาน้อย โดยทั่วไปแล้วถ้าระบบใดมี Hit Rate มากกว่า 60% แสดงว่าระบบนั้นมีประสิทธิภาพที่ดี
การเพิ่มความเร็วในการประมวลผลแก่คอมพิวเตอร์ด้วยการปรับแต่ง Cache ทำได้อย่างง่ายๆ โดยการเพิ่มขนาดของ Cache ให้สูงขึ้น เพราะว่าเมื่อ Cache มีขนาดใหญ่ขึ้นก็จะสามารถเก็บข้อมูลไว้ภายในได้มากขึ้น ทำให้โอกาสที่จะพบข้อมูลใน Cache ก็จะสูงตามไปด้วย
ที่มา http://www.ismed.or.th/SME2/src/upload/knowledge/118915405346e10d05931c0.pdf
ไม่มีความคิดเห็น:
แสดงความคิดเห็น