หน่วยความจำแคชสำหรับดิสก์

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


เรียบเรียงโดย อ.จินดา นะธิศรี ร.ร.ปทุมเทพวิทยาคาร อ.เมือง จ.หนองคาย 43000