ความสัมพันธ์ระหว่าง แคช L1 และ L2

     ช่วงนี้เห็นว่ามีซีพียูออกมาใหม่มากมายหลายรุ่น และแต่ละรุ่นก็ได้เพิ่ม L1 และ L2 แคชให้มีขนาดใหญ่มากขึ้น ซึ่งสามารถทำให้ประสิทธิภาพของระบบดีขึ้น ซึ่งคุณเคยคิดไหมว่า แคช L1 และ L2 มีความสัมพันธ์กันอย่างไร พูดให้ง่าย ๆ ก็คือ มันเกี่ยวกันยังไง มาติดตามกันเลยดีกว่า

     เริ่มแรก การทำงานของซีพียูโดยปกติ จะค้นหาข้อมูลที่ต้องการจาก แคช L1 ก่อน และถ้าไม่พบข้อมูลตามต้องการจึงไปค้นหาที่แคช L2 ซึ่งการค้นหาจากแคช L1 ก่อนจะต้องเสียเวลาในการเข้าถึง หรือที่เรียกว่า ลาเทนซีไทม์ (Latency time) คุ้น ๆ นะคำนี้ คงได้ยินมาบ่อย ๆ ซึ่งเป็นค่าคงที่จำนวนหนึ่ง ประมาณ 3 Cycle ซึ่ง 1 Cycle = 1 Clock time) หลังจากนั้นก็จะไปค้นหาในแคช L2 ซึ่งจะต้องใช้ช่วงเวลาเข้าหาข้อมูลช้ากว่า ประมาณ 18 Cycle ดังนั้นซีพียูรุ่นใหม่ ๆ จะมี Cycle ที่น้อยลง เช่น ThunderBird จะใช้เวลาในการค้นหาข้อมูลใน L2 cache ที่ 8 Cycle โดยขณะที่ Athlon รุ่นเก่าจะกินเวลาในส่วนนี้ถึง 21 Cycle โอโห.. ช้ากว่า ThunderBird มากทีเดียว

     ในรูปคือ PentiumIII Katmai ที่ L2 cache (ชิพสีดำด้านขวาทั้ง 2 ตัว) ซึ่งอยู่บนแผ่น PCB ภายนอกซีพียู โดยขณะที่ PentiumIII coppermine รุ่นใหม่จะย้าย L2 cache เข้าไปไว้ในตัวซีพียูเลย

     L1 Instruction cache และ L1 Data cache ... คุณคงจะเคยได้ยินมาบ้าง ซึ่งซีพียูปัจจุบันได้มีการแบ่งการเก็บข้อมูลให้แยกจากกัน ก็เพื่อความเร็วในการทำงาน ซึ่ง ข้อมูลที่เป็นชุดคำสั่งและข้อมูลที่จะนำมาประมวลผล จะถูกซีพียู Copy ลงไปเก็บไวใน L2 cache อีกทีเนื่องจาก L2 cache มีขนาดใหญ่กว่า และจะกระทำใน L2 cache มากกว่า L1 cache ดังนั้นในซีพียูที่ L2 cache มีความเร็วเท่ากับตัว core จะทำให้ประสิทธิภาพดีกว่ามาก อย่างเห็นได้ชัด

     รูปนี้ก็คือซีพียู Athlon จาก AMD สังเกตุว่า L2 cache วางตำแหน่งอยู่ทั้งด้านขวาและด้านซ้ายของตัวซีพียู และใน ThunderBird และ Duron ก็จะย้าย L2 cache เข้าไปไว้ใน ซีพียูเช่นเดียวกับทาง PentiumIII coppermine และ CeleronII

     X-Way set associative คำนี้อาจจะคุ้น ๆ อีกนั่นแหละ มันก็คือช่องทางการติดต่อระหว่างซีพียู กับ แคช ซึ่งยิ่งมีช่องทางมากเท่าไหร่ก็ยิ่งจะทำให้ประสิทธิภาพของระบบดีขึ้น ถ้าพูดให้ฟังง่าย ๆ ก็คือ เพิ่มจำนวนประตูเข้าออกของ cache ซึ่งใน PentiumIII CuMine มีช่องทางติดต่อกับ cache 8-Way set associative แต่ในขณะที่ซีพียูรุ่นใหม่จาก AMD ทั้ง Duron และ ThunderBird ต่างก็มี 16-Way set associative ซึ่งมีมากกว่าเท่าตัวแหนะ

 

คัดลอก, อ้างอิง
www.sanambin.com