วันพฤหัสบดีที่ 26 สิงหาคม พ.ศ. 2553

การเชื่อมโยงข้อมูล

ชนิดของการเชื่อมโยงข้อมูล
• การเชื่อมโยงแบบสัมพันธ์ (Associative mapping)
• การเชื่อมโยงแบบโดยตรง (Direct mapping)
• การเชื่อมโยงแบบกลุ่มสัมพันธ์ (Block-set associative mapping)

การเชื่อมโยงแบบสัมพันธ์ (Associative mapping)
• เป็นวิธีการที่เร็วและยืดหยุ่นที่สุดของการจัดการกับหน่วยความจำแคช
• วิธีการจัดการหน่วยความจำแบบนี้ แคชจะเก็บทั้งแอ็ดเดรสและข้อมูลในหน่วยความจำ ซึ่งจะทำให้แคชสามารถเก็บข้อมูลจากเวิร์ดใดก็ได้จากหน่วยความจำหลัก
• การเชื่อมโยงแบบนี้เป็นวิธีการที่มีความยืดหยุ่นสูงและใช้ความจุของแคชอย่างเต็มที่
• มีจุดอ่อนหรือข้อเสียเช่นเดียวกัน คือเมื่อมีการอ่านข้อมูลของแคชในแต่ละครั้ง ฟังก์ชั่นนี้จะต้องทำการค้นหาแอ็ดเดรสทั้งหมดภายในแคชให้ตรงกับที่อ้างอิงถึง ซึ่งการอ่านหรือการค้นหาแอ็ดเดรสแบบลำดับ (Sequential) ซึ่งใช้เวลามาก

การเชื่อมโยงแบบโดยตรง (Direct mapping)
• อาจจะเรียกว่าเป็นการเชื่อมโยงแบบสุ่ม
• แอ็ดเดรสของซีพียูที่มี 15 บิต จะแบ่งออกเป็น 2 ส่วน คือ
• 9 บิตสำหรับเป็นอินเด็กซ์ (index)
• 6 บิตสำหรับเป็นแท็ก (tag)
• จำนวนบิตที่อยู่ในฟิลด์อินเด็กซ์จะเท่ากับจำนวนบิตที่ต้องการใช้ในการเข้าถึงหน่วยความจำแคช
• แต่ละเวิร์ดของข้อมูลในแคชจะประกอบด้วยข้อมูลจริงและแท็ก
• การเข้ามาครั้งแรกบิตของแท็กจะถูกบันทึกคู่กับข้อมูลจริง

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

การเชื่อมโยงแคชแบบโดยตรงสำหรับบล็อกข้อมูล 8 เวิร์ด
การเชื่อมโยงแบบกลุ่มสัมพันธ์
(Block-set associative mapping)
• แต่ละเวิร์ดที่อยู่ในแคชสามารถบันทึกข้อมูลที่มีฟิลด์ของอินเด็กซ์เหมือนกันได้มากกว่า 1 เวิร์ดขึ้นไป
• ข้อมูลจริงของแต่ละเวิร์ดนั้นจะถูกบันทึกพร้อมกับแท็กของมัน
• จำนวนของแท็กพร้อมข้อมูลในหนึ่งเวิร์ดนั้นจะถูกกำหนดเป็นกลุ่ม

วิธีการสับเปลี่ยนข้อมูล (Replacement)
• บล็อกของข้อมูลใหม่ถูกนำเข้ามาบันทึกลงในแคช ต้องมีการเขียนทับบล็อกของข้อมูลเดิม
• สำหรับแคชที่มีการเชื่อมโยงแบบโดยตรง บล็อกข้อมูลที่อยู่ในตำแหน่งของอินเด็กซ์จะถูกเขียนทับ
• สำหรับแคชที่มีการเชื่อมโยงแบบสัมพันธ์และกลุ่มสัมพันธ์จะต้องมีอัลกอริทึ่ม หรือวิธีการสับเปลี่ยนข้อมูล ช่วยในการทำงาน

วิธีการสับเปลี่ยนข้อมูล (Replacement)
• วิธีการสับเปลี่ยนแบบใช้น้อยที่สุดในปัจจุบันออกไปก่อน (LRU) เป็นการสับเปลี่ยนที่เอาบล็อกของข้อมูลที่อยู่ในแคชนานที่สุดและไม่ได้ถูกเรียกใช้ในช่วงเวลาที่ผ่านมาเลยออกไปก่อน
• การสับเปลี่ยนแบบเข้ามาก่อนออกก่อน (FIFO) ซึ่งจะทำการสับเปลี่ยนบล็อกของข้อมูลที่อยู่ในแคชนานที่สุดออกไปก่อน
• การสับเปลี่ยนนำข้อมูลที่ใช้จำนวนครั้งน้อยที่สุดออกไปก่อน (LFU) เป็นการสับเปลี่ยนบล็อกของข้อมูลที่มีจำนวนครั้งของการเรียกใช้งานน้อยที่สุดออกไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น