ฉันคิดว่าฉันเห็นความสับสนของคุณ TLB และแคชข้อมูลเป็นสองกลไกที่แยกจากกัน พวกเขาทั้งคู่เป็นแคช แต่พวกเขาก็ทำสิ่งต่าง ๆ :
TLB เป็นแคชสำหรับที่อยู่เสมือนกับการค้นหาที่อยู่ทางกายภาพ ตารางหน้ามีวิธีการแมปที่อยู่เสมือนที่อยู่ Physicaladdress โดยการค้นหาที่อยู่เสมือนในตารางหน้า อย่างไรก็ตามการค้นหาในหน้าตารางนั้นช้า (มันเกี่ยวข้องกับการโหลดหน่วยความจำ 2-3 ครั้ง) หากโปรเซสเซอร์ต้องทำการค้นหานี้ทุกครั้งที่มีหน่วยความจำเข้าถึงคำสั่งนี้จะทำให้การทำงานช้าลงอย่างมาก↦
ดังนั้น TLB จึงทำหน้าที่เป็นแคชเฉพาะสำหรับการค้นหานี้ TLB มีรายการ TLB สองสามรายการโดยที่รายการ TLB แต่ละรายการมีทั้งที่อยู่เสมือนและที่อยู่จริงที่สอดคล้องกัน
TLB ช่วยให้โปรเซสเซอร์สามารถแปลงที่อยู่เสมือนเป็นที่อยู่จริงได้อย่างรวดเร็ว หากคำสั่งขอให้โปรเซสเซอร์ดำเนินการหน่วยความจำบางส่วนในที่อยู่ (เสมือน) โปรเซสเซอร์จะตรวจสอบก่อนเพื่อดูว่า TLB มีรายการสำหรับที่อยู่เสมือนนั้นหรือไม่ ถ้าเป็นเช่นนั้นจะเรียกว่า "cache hit" สำหรับการค้นหา TLB และเนื่องจากรายการ TLB ยังมีที่อยู่ทางกายภาพที่แปลแล้วตัวประมวลผลจึงรู้ทันทีว่าจะใช้ที่อยู่ทางกายภาพใด หากไม่เป็นเช่นนั้นนั่นเป็นแคชสำหรับการค้นหา TLB และตัวประมวลผลต้องทำการแปลงเสมือนเป็นฟิสิคัลอย่างจริงจังโดยเดินตารางหน้า (เมื่อเสร็จสิ้นการแปลงแล้วมันจะเพิ่มรายการลงใน TLB เพื่อให้การแปลงในอนาคตของที่อยู่เสมือนนั้นจะเกิดขึ้นเร็วขึ้นมากขึ้น)
data cache เป็นแคชสำหรับเนื้อหาของหน่วยความจำ หน่วยความจำหลักให้คุณระบุที่อยู่จริงและอ่านค่าที่อยู่จริงนั้นได้ อย่างไรก็ตามหน่วยความจำหลักช้า หากเราต้องไปที่หน่วยความจำหลักทุกครั้งที่เราต้องการดำเนินการกับหน่วยความจำตัวประมวลผลของเราจะช้ามาก
ดังนั้นแคชข้อมูลทำหน้าที่เป็นแคชเฉพาะสำหรับการอ่านหน่วยความจำ แคชข้อมูลมีรายการแคชบางรายการซึ่งแต่ละรายการแคชมีที่อยู่จริงและมูลค่าหน่วยความจำที่อยู่นั้น
แคชข้อมูลช่วยให้โปรเซสเซอร์อ่านได้อย่างรวดเร็วจากหน่วยความจำ เมื่อหน่วยประมวลผลต้องการอ่านหน่วยความจำที่ที่อยู่ (ทางกายภาพ) บางแห่งอันดับแรกจะตรวจสอบแคชข้อมูลเพื่อดูว่ามีรายการแคชสำหรับที่อยู่นั้นหรือไม่ หากเป็นเช่นนั้นสิ่งนี้เรียกว่า "แคช hit" (ในแคชข้อมูล) และโปรเซสเซอร์สามารถใช้ค่าข้อมูลที่เก็บไว้ในรายการแคชทันทีโดยไม่จำเป็นต้องติดต่อหน่วยความจำหลัก หากไม่เป็นเช่นนั้นนี่คือ "แคชมิส" (สำหรับแคชข้อมูล) และโปรเซสเซอร์ต้องไปที่หน่วยความจำหลัก (หลังจากที่ตัวประมวลผลได้รับค่าที่อยู่นั้นจากหน่วยความจำหลักมันจะเพิ่มรายการแคชในแคชข้อมูลเพื่อให้พยายามอ่านที่อยู่เดียวกันนั้นจะเข้าสู่แคชข้อมูล)
พวกเขาทั้งสองแคช แต่พวกเขาให้บริการวัตถุประสงค์ที่แตกต่าง โปรเซสเซอร์ใช้ทั้งสองสำหรับการดำเนินการของหน่วยความจำแต่ละครั้งก่อนใช้ TLB เพื่อแปลงจากที่อยู่เสมือนเป็นที่อยู่ทางกายภาพจากนั้นจะตรวจสอบแคชข้อมูลเพื่อเพิ่มความเร็วในกระบวนการอ่านค่าที่เก็บไว้ในหน่วยความจำที่อยู่นั้น
สำหรับรายละเอียดเพิ่มเติมคุณสามารถอ่านบทความวิกิพีเดีย TLBs หากคุณทำการค้นหามีข้อมูลอื่นมากมายใน TLB และแคชข้อมูล ฉันขอแนะนำให้ค้นหา "TLB" และ "L1 cache" หรือ "L2 cache" (ส่วนหลัง 2 เป็นชนิดของแคชข้อมูล)
(สำหรับการอ้างอิงในอนาคต: เราคาดว่าคุณจะทำการวิจัยเกี่ยวกับคำถามของคุณก่อนที่จะถามที่นี่และเพื่อตรวจสอบแหล่งอินเทอร์เน็ตมาตรฐานหากคำตอบสามารถพบได้ใน Wikipedia คุณยังไม่ได้ทำการวิจัยด้วยตัวเองมากพอ โชคดีกว่าถ้าคุณตรวจสอบแหล่งข้อมูลทางอินเทอร์เน็ตเกี่ยวกับวิธี TLB ก่อนถามที่นี่ดูความพยายามในการวิจัยที่คาดหวังของผู้ใช้ Stack Overflow เท่าไหร่ดังนั้นลองใช้โอกาสนี้เป็นบทเรียนในการปรับปรุงตัวคุณเอง ทักษะการวิจัย - สิ่งที่จะเป็นประโยชน์ต่อคุณตลอดการทำงาน)