
แสดงผลการเปรียบเทียบระหว่าง ขนาด และ ความเร็วของ L2 cache ด้วย Quake II
จะเห็นได้ว่า มี Level 2 Cache มากๆ นั้น ให้ Performance ที่ดีกว่าจริงๆ แต่ก็ไม่มากนัก เห็นผลไม่ชัดเจน เมื่อเทียบ กับ Celeron ที่มี Level 2 Cache ที่เร็วๆ
อย่างไรก็ตาม ขนาดของ Level 2 cache นั้น ก็ยังเป็นจุดหลักสำคัญของ Performance เพื่อลดการ access disk โดยการอ่านข้อมูลมาเก็บไว้ที่ RAM และนำส่วนสำคัญๆ ที่ใช้บ่อยๆ มาเก็บที่ Cache นั้น ถ้า Cache มีขนาดที่ใหญ่ๆ การที่จะต้องอ่านข้อมูลจาก RAM ซึ่งช้ากว่า Cache นั้น ก็ทำได้ดีกว่า ยิ่งกับระบบ Network-File-Server นั้น ยิ่งมี Cache มากๆ และ เร็วๆ จะยิ่งดี ดังนั้น Intel Pentium II Xeon จึงมี L2 Cache 512K หรือมากกว่านั้น และ ทำงานที่ความเร็วเท่าๆ กับ CPU
สำหรับ AMD K6, K6-2 นั้น ใช้ cache ซึ่งอยู่บน Mainboard ซึ่ง ความเร็วสูงสุด ก็ตาม FSB ที่ใช้ เช่น K6-2 300 MHz นั้น Level 2 Cache ก็จะมี ความเร็ว ที่ 100 MHz ( FSB 100 MHz ) แต่ Intel Pentium II - 300 MHz นั้น จะมี Level 2 Cache ที่ความเร็ว 150 MHz และ Celeron 300A จะมี Level 2 Cache ที่มีความเร็วถึง 300 MHz ซึ่งสำหรับ AMD K6-2 กับ Pentium II นั้น ดูไม่แตกต่างเท่าไร แต่หากว่า เป็น Pentium II 400 ล่ะ จะมี Levl 2 Cache ที่ทำงานที่ 200 MHz ในขณะที่ AMD K6-2 400 MHz ก็ยังใช้ Cache ที่ทำงานด้วยความเร็ว 100 MHz เช่นเดิม นั่นก็เป็นส่วนสำคัญจุดหนึ่งที่ทำให้ผล Performance ในเรื่อง Memory Performance ของ AMD ด้อยกว่า Intel Pentium II และ Celeron
แต่ในสำหรับ AMD K6-3 นั้น ทาง AMD ได้รวม Level 2 cache เข้ากับ Package เดียวกับ CPU เลย โดยเก็บฝังไว้บนตัวของ CPU เช่นเดียวกับ Celeron แต่มีขนาดเป็น 2 เท่า และ ทำงานที่ความเร็วเท่าๆ กับ CPU ซึ่งก็ทำให้ AMD K6-3 นั้น มี L2 cache มากกว่าถึง Celeron 2 เท่า และ มี Level 2 cache ที่ความเร็วเป็น 2 เท่าของ Pentium II ( ที่ความเร็วเท่าๆกัน )
มาดูความสำคัญของ Levl 2 cache จากการทดลองอื่นๆ บ้างนะครับ อันนี้เป็นการทดลองของทางบริษัท Level 2 Company กันนะครับ โดยใช้ Program Ziff-Davis' Ver. 3.0 program MAC version ( ทดสอบกับเครื่อง Mac ) โดยทดสอบกับ L2 cache ขนาด 256 KByte และ 1024 KByte โดยผลที่ได้นี้ เป็น เปอร์เซ็นต์ที่เพิ่มขึ้นจากการที่ไม่มี L2 cache
|
256 K |
1,024 K |
Processor |
30% |
57% |
Graphics Mix |
27% |
44% |
Publishing Graphics Mix |
38% |
95% |
QuickDraw Routines |
||
Copy Bits |
40% |
70% |
Text |
47% |
86% |
Lines |
49% |
117% |
ก็เป็นผลไว้ดูคร่าวๆนะครับ เพราะเป็นผลบนเครื่อง Mac แต่ผลที่ได้ก็สามารถใช้เป็นข้อสรุปได้เช่นกันถึงความสำคัญ ของ Cache ได้เช่นกัน

จากกราฟ ก็คงจะเห็นถึง Performance ที่เพิ่มขึ้นเมื่อมี Cache ระดับ 3 และ Performance ที่เพิ่มขึ้น กับ ขนาดของ Cache ระดับ 3 แล้วนะครับ แต่จะเป็นเช่นนี้กับทุกกรณีหรือไม่ เรามาลองวิเคราะห์กันดูดีกว่านะครับ
ถ้าผมกำหนดให้ เวลาที่ใช้ในการอ่านข้อมูลจากแหล่งต่างๆ เป็นดังนี้
Cache ระดับ 1 |
1 หน่วยเวลา ( Unit ) |
Cache ระดับ 2 |
10 หน่วยเวลา ( Unit ) |
Cache ระดับ 3 ขนาด 512 K |
100 หน่วยเวลา ( Unit ) |
Cache ระดับ 3 ขนาด 1,024 K |
200 หน่วยเวลา ( Unit ) |
Cache ระดับ 3 ขนาด 2,048 K |
400 หน่วยเวลา ( Unit ) |
หน่วยความจำหลัก |
1,000 หน่วยเวลา ( Unit ) |
เมื่อ CPU ต้องการข้อมูลเพื่อการประมวลผล ก็จะมองหาข้อมูลที่ต้องการดังกล่าวเสียก่อน จากใน Cache ระดับ 1 ซึ่งถ้าหาพบ ก็จะใช้เวลาเพียง ไม่เกิน 1 หน่วย แต่ถ้าไม่พบ ก็จะไปมองหาที่ Cache ระดับ 2 ต่อไป ถ้าหาพบ ก็จะใช้เวลาไม่เกิน 11 หน่วยเวลา ( 1+10 ) แต่ถ้าหาไม่พบ ก็ต้องเสียเวลา มากกว่า 11 หน่วยเวลาเพื่อไปค้นหาในหน่วยความจำหลัก หรือ ใน Cache ระดับ 3 ต่อไป
ถ้าไม่มี Cache ระดับ 3 การหาข้อมูลนั้น เมื่อหาจากใน Cache ทั้งระดับ 1 และ ระดับ 2 ไม่พบ ก็จะเข้าไปหาที่หน่วยความจำหลักต่อไป ซึ่งถ้าพบ ก็จะใช้เวลามากกว่า 11 ( 1+10 ) หน่วยเวลา แต่ไม่เกิน 1,011 ( 1+10+1,000 ) หน่วยเวลา แต่ถ้ามี Cache ระดับ 3 ก็จะทำการเข้าไปค้นหาใน Cache ระดับ 3 ต่อไป ซึ่งเวลาที่ใช้ ก็ขึ้นอยู่กับขนาดของ Cache ระดับ 3 นั้นด้วย ซึ่งถ้าหาพบใน Cache ระดับ 3 ก็จะใช้เวลาที่มากกว่า 11 หน่วยเวลา แต่น้อยกว่า 111 ( 1+10+100 ) หน่วยเวลา สำหรับ Cache ระดับ 3 ขนาด 512KB และ น้อยกว่า 211 ( 1+10+100 ) สำหรับ Cache ระดับ 3 ขนาด 1,024 KB และ น้อยกว่า 411 ( 1+10+400 ) สำหรับ Cache ระดับ 3 ขนาด 2,048KB ซึ่งจะสังเกตุได้ว่า ถ้าสามารถหาข้อมูลพบใน Cache ระดับ 3 นั้น เวลาที่ใช้งาน ก็น้อยกว่า การที่ไม่มี Cache ระดับ 2 อยู่มากกว่าเท่าตัว
แต่ถ้าไม่พบล่ะ? ถ้าไม่พบข้อมูลที่ต้องการใน Cache ระดับ 3 ก็จะเสียเวลาในการค้นหาที่มากขึ้น ก่อนที่จะไปค้นหาในหน่วยความจำหลักต่อไป ซึ่งตรงจุดนี้เอง ก็เป็นผลทำให้ Performance ที่ได้ลดลง แต่อย่างไรก็ตาม การที่มี Cache ระดับ 3 ขนาดใหญ่นั้น โอกาสที่จะทำให้ค้นหาข้อมูลที่ต้องการ นั้นก็มากขึ้น
สำหรับอัตราส่วนระหว่าง Level 2 ต่อ Level 3 นั้นก็มีส่วนสำคัญ เช่นเดียวกันกับ อัตราส่วนระหว่าง Level 1/Level 2 หากว่า CPU มองหา ข้อมูลที่ต้องการใน Cache ระดับใดๆ ไม่เจอ ก็จะทำการค้นหาใน Cache ระดับถัดไป ซึ่งจะมีความเร็วช้ากว่า แต่มีขนาดใหญ่กว่า แต่อย่างไรก็ตาม ถ้าใน Cache ระดับถัดไปนั้น ขนาดไม่ใหญ่ โอกาสที่จะหาข้อมูลที่ต้องการเจอนั้น ก็มีน้อยกว่า ( เพราะมีเนื้อที่ น้อยกว่า ทำให้โอกาสที่จะดึงข้อมูลจาก RAM มา แล้วตรงกับที่ต้องการนั้น เป็นไปได้น้อยกว่า ) ก็ทำให้ CPU นั้น เสียเวลา ในการค้นหาไปอย่างสูญเปล่า ( ในกรณีที่หาไม่พบ ) แล้วก็จะทำให้ผล Performance นั้นช้ากว่า จากที่ควรจะเป็น ปกติแล้ว อัตราส่วนจะเป็นระหว่าง Cache ระดับถัดมาต่อ Cache ระดับก่อนหน้า จะเป็น 4:1 เช่น Level 2 Cache /Level 1 Cache ของ Celeron จะเป็น 128:32 ( 4:1 ) และ K6-3 จะเป็น 256:64 ( 4:1 ) ยกเว้นของ Pentium II ที่เป็น 512:32 ( 16:1 )
ทาง AMD ก็ได้อ้างว่า ด้วย Cache 1Mb บน Mainboard นั้น จะทำให้ Performance เพิ่มขึ้น 3-4 % ( L3/L2 = 1024/256 = 4/1 ) ซึ่ง ปัจจุบันนั้น ก็มี Mainboard ที่มี ทั้ง Cache 1M และ 512 K ให้เลือก เพราะฉะนั้น นี่คงเป็นตัวช่วยในการพิจารณาตัวหนึ่งแล้วนะครับ สำหรับผู้ที่คิดจะใช้ AMD K6-3 ว่าควรจะใช้ Mainboard อะไรดี สำหรับการ disable Level 3 Cache นั้น คิดว่า เป็นไปได้ โดยผ่านทาง BIOS ซึ่งก็น่าจะมีผลช่วยในการ Overclock ให้ได้มากขึ้น
คราวนี้เราลองย้อนกลับไปดูถึงตอนแรก ที่ผมเปรียบเทียบเรื่อง Cache กับการจดโน๊ตย่อลงสมุดนั้น เราอาจสรุปได้ว่า สมองของเราเป็น Cache ระดับ 1 เพราะเมื่ออ่านและเห็นว่าข้อความไหน หรือประโยคไหนที่น่าจำที่สุด สำหรับนักเรียน นิสิต นักศึกษา ก็คงอาจเล็งไว้แล้วว่า ตรงนี้ อาจารย์ต้องเอามาออกข้อสอบแน่ๆ ก็จะอ่านแล้วท่องจำเอาไว้ และ เมื่อเกินความสามารถที่จะท่องจำ ก็ทำการจดโน๊ตย่อไว้ในสมุดเล่มเล็กๆ นั่นก็คือ Cache ระดับ 2 นั่นเอง และ บางทีในการอ่าน ก็อาจมีเรื่องที่น่าสนใจมากๆ จดโน๊ตย่อไม่ไหว ก็อาจใช้ปากกาขีดข้อความสำคัญๆหรือทำการคั่นหน้าหนังสือตรงนั้นไว้ นั่นก็คือ Cache ระดับ 3 นั่นเองครับ
ก็เห็นกันแล้วนะครับ ว่า ขนาดของ Cache นั้น เป็นสิ่งสำคัญ และ ความเร็วของ Cache นั้น ก็สำคัญเช่นกัน แต่ ถ้าให้เลือก ระหว่าง Celeron 300A ซึ่งมี Level 2 cache 128 K ทำงานที่ความเร็วเท่าๆ กับ CPU กับ Pentium II 300 ที่มี L2 cache 512 K ทำงานเป็นครึ่งหนึ่ง แต่ราคานั้นต่างกันเท่าตัว ในขณะที่ Performance ในด้านที่ไม่เกี่ยวกับ Business นั้น แทบไม่ต่างกัน ก็ขอเลือก Celeron จะดีกว่า ( ถูกกว่าตั้งเยอะ )
แต่หากว่าต้องใช้งานด้าน Business แล้วละก็ คงจะต้องเลือก CPU ที่มี Cache มากๆ ไว้ก่อน เพราะถึงแม้ว่า Cache นั้นจะเร็ว แต่มีขนาดน้อย เปอร์เซ็นต์ในการหาข้อมูลพบใน Cache ก็น้อยลง ถึงแม้จะถูกชดเชยด้วยความเร็ว แต่มันก็ทำให้ Cache นั้นต้องรับ ภาระที่หนักมากขึ้นไปด้วย
ตารางข้างล่างนี้ ก็แสดงถึง Feature ต่างๆ ของ L1,L2,L3 cache ของ CPU ในแต่ละรุ่น
|
K6-2 |
K6-3 |
K7 |
Celeron |
Xeon |
PII |
L1 Size |
64kB |
64kB |
128kB |
32kB |
32kB |
32kB |
L1 'associativety' |
2 |
2 |
2 |
4 |
4 |
4 |
L2 Size |
512kB+ |
256kB |
512kB+ |
128kB |
512kB+ |
512kB |
L2 Speed |
FSB |
1xCPU |
1/3,1/2xCPU |
1xCPU |
1xCPU |
1/2xCPU |
L3 Size |
- |
512kB+ |
- |
- |
- |
- |
L3 Speed |
- |
FSB |
- |
- |
- |
- |