ชิ้นส่วนที่ทำงานช้าที่สุดของคอมพิวเตอร์คือ
ดิสก์ไดรฟ์ มีวิธีการแก้ปัญหาคือ การสร้างไฟล์ให้อยู่บริเวณต่อเนื่องกันทั้งไฟล์
วิธีสองคือ การหันไปใช้แรมดิสก์แทนไดรฟ์จริง ซึ่งแรมดิสก์เป็นส่วนหนึ่งของหน่วยความจำของคอมพิวเตอร์
แต่ก็ยังไม่สามารถลดหรือจำกัดการอ่านเขียนดิสก์ได้ทั้งหมด เพื่อการเพิ่มประสิทธิภาพการเข้าอ่านเขียนดิสก์
อาจแก้ไขปัญหาโดยการใช้ดิสก์แคช โดยความหมายของดิสก์แคชก็คือ
หน่วยความจำชนิดหนึ่งที่เก็บข้อมูลชั่วคราวที่เราใช้บ่อยๆ ถี่ๆ หรือเก็บข้อมูลที่โปรแกรมแอพพลิเคชันมักร้องขอใช้มากครั้ง
ผลก็คือ การอ่านเขียนดิสก์ครั้งต่อไป ก็ไม่จำเป็นต้องเข้าอ่านดิสก์
แต่ไปอ่านที่หน่วยความจำแคชแทน
ปัจจุบัน ด้วยการพัฒนาการ์ดควบคุมดิสก์ให้มีวงจรดิสก์ให้มีวงจรดิสก์แคช
และ RAM ที่เป็นฮาร์ดแวร์บนการ์ดโดยตรง ทำให้แคชนีทำงานได้เร็ว
มีประสิทธิภาพโดยไม่ได้ใช้หน่วยความจำหลักบนเมนบอร์ดของเครื่องพีซี
ไม่ต้องส่งคำสั่งไปให้ซีพียูหลักบนพีซีประมวล
ดิสก์แคช
1. เมื่อคุณโหลดโปรแกรมจัดการดิสก์แคชลงในหน่วยความจำ
มันจะฝังตัวลงหน่วยความจำ จากนั้นก็จะจองพื้นที่หน่วยความจำแยกต่างหากไว้ส่วนหนึ่งสำหรับทำดิสก์แคช
พื้นที่หน่วยความจำที่จองไว้นี้อาจจะเป็นพื้นที่หน่วยความจำธรรมดา (conventional)
หน่วยความจำชนิดสลับขยาย (expanded memory) หรือเป็นหน่วยคำจำเกินพันไบต์แรก
(expanded memory) ก็ได้โดยโปรแกรมบางตัวจะมีการจองพื้นที่ให้มากที่สุดเท่าที่จะมากได้
และจะคืนพื้นที่หน่วยความจำบางส่วน เวลาที่โปรแกรมอื่นต้องการใช้หน่วยความจำบ้าง
ขณะที่บางโปรแกรมจะจองหน่วยความจำขนาดตายตัวไม่เปลี่ยนแปลง
2. เมื่อซอฟต์แวร์ของคุณสั่งให้ซีพียู
(CPU) อ่านข้อมูลจากฮาร์ดดิสก์ โปรแกรมจัดการหน่วยความจำแคช
ซึ่งได้ฝังตัวอยู่ในความจำเรียบร้อยแล้ว จะดักรับรู้คำสั่งดังกล่าวไว้ด้วย
3. โปรแกรมแคชอ่านข้อมูลที่ซีพียูต้องการจากดิสก์
บวกเพิ่มกับข้อมูลอื่นๆ ที่รอบข้างข้อมูลดังกล่าวเก็บลงหน่วยความจำที่จองไว้แล้ว
จากนั้นส่งข้อมูลดังกล่าวให้ซีพียูไป
4. ระหว่างที่ซีพียูว่างงาน
โปรแกรมแคชจะทำหน้าที่เก็บข้อมูลอื่น ของไฟล์ดังกล่าวที่อยู่ในคลัสเตอร์รอบข้าง
หรือคนละคลัสเตอร์ เก็บลงหน่วยความจำที่จองไว้จนมากพอ สำหรับการค้นหาคลัสเตอร์ของไฟล์ที่อยู่แยกกันไม่ต่อกันเป็นแถวนั้น
โปรแกรมแคชจะถูกโปรแกรมให้ชาญฉลาดพอที่จะค้นหาได้เอง ความสามารถในด้านนี้จึงมักจะเป็นตัววัดว่าโปรแกรมแคชตัวไหนดีกว่ากัน
5. เมื่อโปรแกรมต้องการข้อมูลจากไฟล์เดิมเพิ่มเติม
โปรแกรมแคชจะดักรับรู้คำสั่งอ่านข้อมูลนั้นไว้ จากนั้นจะสำรวจว่าข้อมูลดังกล่าวได้อยู่ในแรมที่จองไว้แล้วหรือยัง
ถ้ามีก็ทำการส่งข้อมูลจากแรมไปที่ซีพียูโดยตรง ไม่ผ่านการอ่านดิสก์เหมือนเดิมอีก
ทำให้เวลาในการเรียกค้นข้อมูลเร็วขึ้น (เวลาในการอ่านจากดิสก์โดยตรงจะกินเวลาทำงานมากกว่าการอ่านจากแรมหลายสิบเท่า)
สำหรับกรณีไม่มีข้อมูลที่ต้องการในแรม โปรแกรมแคชจะก๊อบปี้ข้อมูลในดิสก์ลงแรมที่จองไว้ก่อน
จากนั้นจึงค่อยส่งข้อมูลดังกล่าวไปให้ซีพียู ซึ่งขั้นตอนจะเหมือนข้อ
3 และ 4 เช่นนี้ตลอดเวลา
6. เมื่อซอฟต์แวร์คุณสั่งให้เซฟหรือเก็บไฟล์ลงดิสก์
โปรแกรมแคชบางตัวจะรับคำสั่งดังหล่าวแล้วเริ่มทำงานเวลาที่ซีพียูว่าง
ลักษณะนี้จะทำให้ความเร็วในการทำงานของคอมพิวเตอร์ดีขึ้น เพราะซีพียูไม่ต้องแบ่งเวลาในช่วงเดียวกันเพื่อทำการประมวลผลและเขียนดิสก์ไปพร้อมๆ
กัน
7. การเขียนแก้ไฟล์จะกระทำที่แรมก่อน
จากนั้นโปรแกรมแคชจะสำรวจว่าข้อมูลที่เขียนแก้ไขใหม่นั้นเป็นเฉพาะบางคลัสเตอร์หรือไม่
ถ้าใช่ มันก็จะก๊อบปี้เฉพาะคลัสเตอร์ที่มีการเปลี่ยนแปลงกลับลงดิสก์เท่านั้น
ทั้งนี้เพื่อลดเวลาการเคลื่อนที่ของหัวอ่านดิสก์ให้มากที่สุด ซึ่งประหยัดเวลาการทำงานของคอมพิวเตอร์โดยรวมไปได้มาก
เรียบเรียงโดย อ.จินดา
นะธิศรี ร.ร.ปทุมเทพวิทยาคาร อ.เมือง จ.หนองคาย 43000
|