Announcement

Collapse
No announcement yet.

อยากรู้ว่าL1แคช,L2แคช ทำหน้าที่อะไรครับ

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • อยากรู้ว่าL1แคช,L2แคช ทำหน้าที่อะไรครับ

    1.L1แคช,L2แคช ทำหน้าที่อะไรครับ
    2.เท่าที่ดูมาผมเห็นL2แคชของIntelมันเยอะกว่าAMDมากมายเลยเห็นขนาดX2 6400+ ยังแค่2MB แต่อินเทลมีทั้ง4MB,8MB แล้วเวลาจะเลือกซื้อCPUควรดูที่L1หรือL2เป็นสำคัญ ครับ
    Last edited by lchayawatl; 2 Dec 2007, 15:56:36.

  • #2
    ต่างหรือไม่ต่างขึ้นอยู่กับ Application ครับ สำหรับเกมส์ L2 1MB กับ 4MB ต่างกันได้ตั้งแต่ 0% - 20% ถ้า CPU ความเร็วเท่ากันนะครับ
    ก็คล้ายๆ กับ RAM 1GB กับ 4GB บางคนบอกว่า เล่นไม่ต่างกัน ก็หมายความว่า Application ที่เค้าใช้งาน RAM เพียงแค่ 1GB ก็เพียงพอ ถึงจะใส่ 4GB ก็ไม่ได้ทำให้การทำงานของเค้าเร็วขึ้น
    แต่สำหรับผมชั่วโมงนี้ต้อง Quad core L2 8MB, RAM 4GB เท่านั้นครับ

    สำหรับใครที่มองไม่ออกว่า L2 มากๆ ดีกว่าอย่างไร ลองอ่านตามนี้ครับ

    หน่วยความจำที่เร็วที่สุดในระบบเรียงตามลำดับคือ L1 > L2 > Memory > HDD
    หลักการทำงานคือ ข้อมูลทั้งหมดจะเก็บไว้ในหน่วยความจำ โดย CPU จะมีหลักการคำนวณว่าข้อมูลที่จะใช้ต่อไปคืออะไร ก็จะโหลดมาเก็บไว้ใน L1, L2, Memory ตามลำดับ เวลา CPU หาข้อมูลใน L1 ไม่พบ ก็จะไปหาใน L2 ถัดไปก็จะไปอ่านจาก RAM สุดท้ายก็คือ HDD ช้าสุด

    ความเร็วของหน่วยความจำเราต้องพิจารณาจาก 2 ส่วน คือ

    1. Latency คือความเร็วในการเข้าถึงข้อมูล ถ้าเป็น network ก็คล้ายๆ กับ ping time
    เนื่องจาก L1 เป็นหน่วยความจำที่เร็วที่สุด ทำงานเท่ากับความเร็ว CPU และมี Latency time ต่ำมาก ใน CPU ตระกูล Core2Duo Latency ของ L1 อยู่ที่ 3 Clock cycle
    เช่น CPU ความเร็ว 2000Mhz Latency จะอยู่ที่ 3 / 2000 x 10^6 = 1.5 nanosec ( อ้างอิงจาก http://www.behardware.com/articles/6...-duo-test.html )
    ส่วน L2 ใน CPU Core2Duo Latency จะอยู่ที่ประมาณ 3.5 - 4.5 nanosec ( อ้างอิงจาก http://tweakers.net/benchdb/test/239 )
    ส่วน Memory ถ้าผมจำไม่ผิด Latency สำหรับ DDR2 จะอยู่ประมาณ > 50 nanosec ( ขึ้นอยู่กับ ความเร็วของ Memory และ Chipset และการตั้งค่าของ cl ของ memory )
    และ HDD นั้น มี Latency ที่ประมาณ 10 milisec
    จะเห็นว่าความเร็วในการเข้าถึงข้อมูล L1 นั้นเร็วมากที่สุด ถัดมาก็จะเป็น L2 แล้วก็เป็น Memory ซึ่งมีความเร็วในการเข้าถึงข้อมูลช้ากว่า L2 ประมาณ 10 เท่า

    2. Memory Bandwidth หรืออัตราการส่งผ่านข้อมูล
    สำหรับหน่วยความจำประเภท RAM ความเร็วการส่งผ่านข้อมูล = ความเร็วของหน่วยความจำ x ขนาดของ bus จะได้ออกมาเป็น MB/S
    สำหรับ CPU ความเร็ว 2000MHz นั้น L1 มีความเร็วการส่งผ่านข้อมูลตามทฤษฏีที่ 2000MHz x 16 byte = 32000 Mbyte/sec
    L2 มีความเร็วการส่งผ่านข้อมูลตามทฤษฏีที่ 2000 x 8 byte = 16000 Mbyte/sec
    DDR2 800MHz Dual Channel มีความเร็วตามทฤษฏีที่ 800 x 16 ( DDR2 Dual Channel = 64bit x 2 = 16 byte) = 12800 Mbyte/sec
    ต้องเข้าใจว่าทั้งหมดนี้เป็นความเร็วตามทฤษฏีนะครับ ซึ่งการใช้งานจริงมีองค์ประกอบอื่นๆ อีกมากทำให้อัตราการส่งผ่านข้อมูลจริงๆ ช้ากว่านี้

    ถาม ด้วยอัตราการส่งข้อมูลของ DDR2 800MHz กับ L2 ต่างกันนิดเดียว แบบนี้ L2 ขนาดใหญ่ๆ ก็ไม่จำเป็นเท่าไหร่
    ตอบ ไม่ใช่ เพราะดูที่อัตราการส่งข้อมูลอย่างเดียวไม่ได้ ต้องดูที่ความเร็วของการเข้าถึงข้อมูลด้วย
    CPU 2000MHz 1 รองสัญญาณนาฬิกา = 1/2000^5 = 0.5 nanosec ถ้าเรียกข้อมูลจาก L2 cpu ต้องรอถึง 10 รอบสัญญาณนาฬิกาจึงจะเริ่มอ่านข้อมูลจาก L2 ออกมาได้
    ส่วน RAM นั้น Cpu ใช้เวลามากกว่า 100 รอบสัญญาณนาฬิกากว่าที่ CPU จะอ่านข้อมูลจาก Ram ได้

    ถาม ขนาดของ L1 และ L2 มีขนาดน้อยมาก เมื่อเทียบกับ RAM L1 และ L2 จึงไม่น่าจะมีความสำคัญเท่าใดนัก เพราะข้อมูลส่วนใหญ่น่าจะต้องอ่านมากจาก RAM อยู่ดี
    ตอบ ไม่ใช่เพราะขนาดของ L2 เพียงแค่ 256Kbyte จะมี Hit Rate มากกว่า 80%- 90% (Hit Rate คือ % ของข้อมูลที่ CPU ต้องการและหาพบใน Cache L2) จึงมีข้อมูลเพียงแค่น้อยกว่า 10% - 20% เท่านั้นที่ CPU ต้องไปอ่านมาจาก RAM เนื่องจาก CPU มีการทำนายข้อมูลที่ต้องการไว้ล่วงหน้า และจะเรียกข้อมูลเหล่านั้นมาเก็บไว้ใน Cache เสมอ ขนาดของ Cache จึงไม่จำเป็นต้องมีขนาดใหญ่มาก

    ถาม แบบนี้ L2 1MB กับ 4MB ก็ไม่น่าจะต่างกันมากนัก
    ตอบ ไม่ใช่ L2 ขนาด 1MB และ 4MB จะมี Hit Rate ต่างกันประมาณ 1-2% ซึ่ง 1-2% ที่ CPU ไม่สามารถหาจาก L2 นั้น CPU ต้องไปอ่านเอามาจาก RAM ซึ่งมี Latency มากกว่า L2 ถึง 10 เท่า ซึ่ง 1-2% นี้อย่าคิดว่าไม่เยอะนะครับ เพราะเนื่องจากการเข้าถึงข้อมูลช้ากว่ากัน 10 เท่า จึงทำให้ 1-2% กลายเป็นช้ากว่ากัน 10-20% ครับ

    ถาม ถ้าเป็นแบบนี้แล้วทำไมไม่ใส่ L2 ขนาดใหญ่ๆ มาให้ใน CPU
    ตอบ เนื่องจาก L2 ถ้าขนาดใหญ่เกินไปก็ไม่มีประโยชน์อะไร เพราะปัจจุบัน L2 ขนาด 4MB ถ้าผมจำไม่ผิด HIT RATE น่าจะประมาณ 90 ปลายๆ % อาจจะ 98% หรือ 99% ด้วยซ้ำ ถึงเราเพิ่ม L2 ให้ใหญ่ได้เป็น 64MB ก็อาจจะเพิ่ม HIT RATE ได้แค่ 1% ซึ่งไม่คุ้มค่าในการลงทุน เนื่องจาก L2 นั้นมีต้นทุนการผลิตที่แพงมาก ถ้าใครเคยเห็นภาพถ่าย transistor ใน cpu จะเห็นว่าส่วนที่เป็น L2 4MB มีขนาดประมาณ 50% เลยนะครับ ถ้า L2 64MB จะมีขนาดเท่าไหร่ลองนึกดู แล้ว CPU จะราคาเท่าไหร่

    ข้อมูลทั้งหมดนี้เขียนจากประสบการณ์และความรู้ของผม ผิดถูกยังไงก็ขออภัยด้วยนะครับ

    Credit noad
    www.Pc-cM.com

    Comment


    • #3
      'งัดให้คนที่อยากรู้อีก

      Comment


      • #4
        ความรู้คับ

        Comment


        • #5
          ความรุ้มากมายครับ ขอบคุณครับ

          Comment


          • #6
            โค-ตะ-ระ ละเอียดครับ ขอเก็บไปและกันนะ

            Comment


            • #7
              อีกนิดนึง L2 ถ้าจัดการได้ไม่ดีพอ แล้วยิ่งขนาดใหญ่เพิ่มเข้าไปอีก แทนที่จะเร็วกว่า้เืดิม อาจตรงกันข้าม hit rate อาจคิดเป็น % ได้น้อยลงกว่า L2 ขนาดเล็กกว่าด้วยนะครับ ส่งผลในเรื่องความคุ้มค่าในการสร้างอีกด้วยต่างหาก

              Comment


              • #8
                สุดยอดดดเลย อ่านแล้วเป็นงง อิอิ

                Comment


                • #9
                  อย่างนี้ต้อง ขุดให้ได้อ่านกันซะแล้วล่ะครับ

                  Comment


                  • #10
                    ความรู้อย่างแรง ถึง แรงที่สุด เท่าที่จะแรงได้ - -

                    Comment


                    • #11
                      อืมๆ ลึกซึ้ง

                      Comment


                      • #12
                        เอา L1 มาทำฮาร์ดดิสซะเลยมั๊ย.. จะได้ไม่ต้องมีทั้ง L1 L2 และแรม (สัก 320GB ลูกละกี่ล้านได้อะ..)
                        Last edited by hornetpc719; 1 Jan 2008, 15:38:54.

                        Comment


                        • #13
                          กระทู้ดีๆ แบบนี้ ต้องขุด !

                          Comment


                          • #14
                            Originally posted by hornetpc719 View Post
                            เอา L1 มาทำฮาร์ดดิสซะเลยมั๊ย.. จะได้ไม่ต้องมีทั้ง L1 L2 และแรม (สัก 320GB ลูกละกี่ล้านได้อะ..)
                            C2Q L2 8MB 1 ตัว = 9,690 บาท
                            L2 8MB ≈ 50% of CPU Die
                            L2 8MB ≈ 4,845 บาท

                            320GB = 327680MB
                            L2 320GB = 40960 เท่า * 8 MB
                            L2 320GB = 40960 * 4,845 บาท
                            L2 320GB = 198,451,200 บาท

                            ว้ากกกกกกก

                            ถ้า L1 จะขนาดไหน ตัวนึงมีแค่ 32K

                            Comment


                            • #15
                              ขอบคุณมากๆ ครับ

                              Comment

                              Working...
                              X