Cache นั้นสำคัญไฉน

posted on 20 Jul 2008 13:28 by micle555 in Computer
  •  

    Cache นั้นสำคัญไฉน

    [ 15 Mar. 1999 ]

     

    • Cache คืออะไร? และ ที่มาของ Cache

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

      เปรียบเทียบกันง่ายๆ ก็เหมือนกับการอ่านหนังสือ แล้วเวลาที่เจอข้อความที่น่าสนใจ ก็ทำการจดบันทึกไว้ที่สมุด แล้วเมื่อเวลาต้องการ ข้อมูลนั้นๆ ก็สามารถค้นหาจากในสมุดจดได้ง่ายกว่า เปิดหาจากหนังสือทั้งเล่ม แน่นอน ข้อมูลที่จดลงในสมุดนั้น มีขนาดน้อยกว่า ในหนังสือแน่ๆ คงไม่มีใครที่จะลอกข้อมูล ทุกบันทัด ทุกหน้าของหนังสือ ลงในสมุดจดเป็นแน่แท้

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

      สำหรับในบทความนี้ เราจะพูดถึงเรื่อง Memory Cache กันอย่างเดียว เพราะฉะนั้นผมจะขอเรียกแค่สั้นๆว่า Cache ก็ขอให้เป็นอันเข้าใจตรงกันนะครับ ว่ามันหมายถึง Memory Cache




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

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

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

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

    เปล่าเลย จริงๆแล้ว เรามีการใช้ Cache มาตั้งนานแล้ว ตั้งแต่รุ่น 80486 ซึ่งสมัยนั้นทาง