Announcement

Collapse
No announcement yet.

New Tigerlake CPU (Willow Cove Microarchitect) Update from CES 2020

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

  • Originally posted by ultraline View Post
    เอาเนื้อๆ ครับ ที่เป็นวิชาการที่เกียวกับ Microarchitecture ในชิปซีพียู สามารถอธิบายเกียวโครงสร้างการ ทำงานของมัน ไม่ว่าจะเป็นอินเทล หรือ เอเอ็มดี ถอดออกมาเป็นชิ้นๆ ว่ามันมีหลักการทำงายอย่างไร ต่างกันอย่างไร ตอบให้ตรงประเด็น คนที่เข้ามาอ่านจะได้ประโยชน์จากตรงนี้มากกว่า อย่าไปยึดค่ายใดค่ายหนึ่งเป็นหลัก ไม่ต้องไปอวยตามคำโฆษณาชวนเชื่อ ทุกอย่างไม่มีอะไรร้อยเปอร์เซ็นต์ โดยโครงสร้างหลักๆ ของทั้งสองค่ายไม่หนีกันเท่าไหร่ ส่วนใหญ่จะแตกต่างกันในเรื่องของชุดคำสั่งพิเศษที่อยู่ในตัวชิป และขบวนการผลิตเท่านั้น นอกจากนี้สองค่ายนี้มีการแลกเปลียนซื้อขายเทคโนโลยี่กัน รวมไปถึงวิศวกรด้วย
    ในส่วนของ Microarchitect ได้อธิบายปูพื้นด้วย Skylake X ไปแล้วนะครับ แต่ในกระทู้นี้เป็นสถาปัตยกรรม Willow Cove Microarchitect
    ซึ่งก็อาศัยพื้นฐานจาก Skylake X มาต่อยอดอีกที

    สรุปให้เข้าใจกันแบบง่ายๆ รวบรัด

    ก่อนจะไปพบรายละเอียดคร่าวก็ ขอให้ทุกท่านดูความเป็นมาของสถาปัตยกรรม Intel กันก่อนจะได้ต่อเนื่องกับสิ่งที่จะบรรยายนะครับ


    Intel Core Microarchitect

    1. Skylake X คือ พื้นฐานการพัฒนา Skylake Microarchitect เดิมจาก Intel เพื่อทำงานกับคำสั่ง AVX512 เป็นรุ่นแรก
    มีการเปลี่ยนแปลงส่วนประกอบต่างๆ ดังที่ได้กล่าวมาแล้วเพื่อทำงานกับคำสั่ง AVX512 และข้อมูลชนิด 512-bit Vector

    2. Sunny Cove คือ Skylake X ที่พัฒนาเพิ่มเติมขึ้น เปลี่ยนโครงสร้าง L1 L2 และ L3 cache ใหม่อีกครั้ง
    + เพิ่มการอ้าง Physical และ Linear Address เพื่อทำกันกับข้อมูลที่ขนาดใหญ่กว่า Skylake X ไปอีก 1000 เท่า
    + เพิ่ม 2 x 512-bit Load / 2 x 512-bit Store (จากเดิม 2 x 512-bit Load / 1 x 512-bit Store ) เพื่อรองรับ
    การประมวลผลแบบขนานที่สมบูรณ์แบบมากขึ้น
    + เพิ่ม Execution Port จาก 8 (Skylake X) เป็น 10 ชุด
    + เพิ่มคำสั่ง AVX512 ใหม่ๆ อีก 8 คำสั่ง และ SHA NI
    + ผลิตโดย 2nd Gen 10+nm

    3. Willow Cove พัฒนาต่อจาก Sunny Cove ในส่วน L1 cache ยังคงเหมือน Sunny Cove
    + เพิ่ม L2 cache เป็น 1.25MB ต่อ Core
    + เพิ่ม L3 cache เป็น 3.00MB ต่อ Core
    + ชุดคำสั่ง AVX512 VP2INTERSEC และคำสั่ง AVX512 ทั้งหมดตั้งแต่ Skylake X
    + ผลิตโดย 3rd Gen 10++nm

    ข้อมูล ณ วันที่ 4 กุมภาพันธ์ 2563 ครับ
    Last edited by Comlow; 4 Feb 2020, 11:00:44.

    Comment


    • i7-1065G7 นี่ยังไม่ใช่ tigerlake ใช่ไหมครับ เห็นอยู่ใน HP 15s ราคาไม่แรงดี แต่เสียดายจอ 15 นิ้วใหญ่ไปหน่อย
      https://*****************/notebook/9...-fq1002tu.html

      Comment


      • Originally posted by Comlow View Post
        รีจิสเตอร์ของเขามีจำนวนจำกัดครับท่าน ToehNarak เขาไม่สามารถรับชุดคำสั่งใหม่ๆ ได้นะครับผม เห็นใจพวกเขาด้วย ดูจากภาพก็จะเข้าใจครับ
        ว่าทำไมท่านสื่อสารไปเขารับไม่ได้ ท่านส่งผ่านข้อมูลชนิด 512-bit ไป แต่รีจิสเตอร์เขามีแค่ 64-bit/128-bit/256-bit พอกะเทิน
        เยี่ยงนั้น ไฉนเลยเขาจะสามารถ Decode และ Execute คำสั่งข้อมูลที่ท่านส่งไปให้รับฟังทันล่ะครับ

        พวกเราแลกเปลี่ยนกันสนุกๆ ก็ยังสามารถ Decode ได้ 5 คำสั่งต่อรอบสัญญานนาฬิกา พวกเขาได้แค่ 4 คำสั่งในภาพ แล้วจะเข้าใจพวกเราได้ไงล่ะครับ
        ไหนจะรีจิสเตอร์ก็จำนวนน้อยกว่า แถมยังความกว้าง Data bus ของพวกเขาน้อยกว่า ยิ่งไปกันใหญ่นะครับ




        Full Dual 512-bit FMA VS Semi 64-bit & Semi 128-bit FPU & Semi 256-Bit FMA

        1 ในประเด็นที่อ่านแล้วถกเถียงกัน คือ AVX512 มันคือ 256+256 หรือ 512 1 ชุด

        จากรูปนี้ คุณ Comlow พยายามบอกว่า อินเทล มันคือ 512 1 ชุดใช่มั้ยครับ ส่วนอีกฝั่งยึด Wikichip บอก 256+256

        Comment


        • Originally posted by winny6969 View Post
          1 ในประเด็นที่อ่านแล้วถกเถียงกัน คือ AVX512 มันคือ 256+256 หรือ 512 1 ชุด

          จากรูปนี้ คุณ Comlow พยายามบอกว่า อินเทล มันคือ 512 1 ชุดใช่มั้ยครับ ส่วนอีกฝั่งยึด Wikichip บอก 256+256
          เปล่าครับ ในรูปนั้นผมเปรียบเทีนบให้ SSK เห็นว่าระหว่าง Sunny Cove Microarchitect และ ZEN Microarchitect ครับท่าน winny6969

          ประเด็นความกว้างรีจิสเตอร์นั้นผมคิดว่าได้อธิบายไปแล้วนะครับ เพื่อความเข้าใจที่ถูกต้องขอยกมาอีกครั้ง



          รีจิสเตอร์ ZMM0-31 นั้นมีความกว้าง 512-bit ครับดังภาพที่ Intel ได้เสนอมาในเอกสารของเขาข้างต้นครับ

          ส่วน SSK พยายามจะบอกว่า AVX512=AVX256+AVX256 นั้น เป็นความเข้าใจของเขาว่าคำสั่ง AVX512 นั้นเกิดจากการเอาคำสั่ง AVX256 มารวมกัน 2 คำสั่ง
          ซึ่งไม่ถูกต้องนัก

          ในทางกายภาพ แม้ว่าการทำงานของคำสั่ง AVX512 จะอาศัยการ Fused รีจิสเตอร์ของ Port 0 และ 1 ที่เดิมใน Skylake Microarchitect Client
          เขาใช้ประมวลผลคำสั่ง AVX2 และ FMA3 ที่ทำงานกับข้อมูลขนาด 256 bit ก็ตาม แต่ว่าคำสั่ง AVX512 และคำสั่ง AVX2 นั้นแตกต่างกันเป็นคนละชุดคำสั่งเลย
          ดังจะเห็นจากสไลด์ของ Intel ข้างบนชัดๆ ว่า AVX512 แบ่งเป็น AVX512F/CD/BW/DQ/VL เป็นคำสั่งแม่ และแต่ละคำสั่งแม่ยังมีคำสั่งลูกแยกย่อยไปอีกมาก
          มาย ท่าน winny6969 อาจจะดูข้อมูลเพิ่มเติมได้จากที่นี่ https://en.wikipedia.org/wiki/AVX-512

          ส่วนคำสั่ง AVX256 หรือ AVX2 นั้นก็สามารถดูข้อมูลเพิ่มเติมได้จากที่นี่ https://en.wikipedia.org/wiki/Advanc...tor_Extensions

          AVX256 นั้นมีใน CPU Sandy Bridge และ Ivybridge และ AVX2 นั้นมีใน CPU Haswell เป็นต้นมา
          จะเห็นว่า เราไม่สามารถจะเอาคำสั่ง AVX256 หรือ AVX2 มาประมวลผลออกมา 2 ชุด แล้วรวมข้อมูลผลลัพธ์ออกมา
          เท่าหรือเหมือนกับ AVX512 ได้

          Comment


          • -
            Last edited by ssk; 20 Mar 2020, 13:18:37.

            Comment


            • Originally posted by redondo16 View Post
              i7-1065G7 นี่ยังไม่ใช่ tigerlake ใช่ไหมครับ เห็นอยู่ใน HP 15s ราคาไม่แรงดี แต่เสียดายจอ 15 นิ้วใหญ่ไปหน่อย
              https://*****************/notebook/9...-fq1002tu.html
              ยังเป็น Icelake U ครับผม ลองดูค่ายอื่นๆ อาทิ ACER LENOVO นะครับ มีรุ่น 14" ด้วยครับท่าน

              Comment


              • เห็นด้วยกับท่าน Comlow

                Comment


                • Originally posted by หนูโด้ 1 View Post
                  เห็นด้วยกับท่าน Comlow
                  ขอบคุณมากครับ

                  Comment


                  • -
                    Last edited by ssk; 20 Mar 2020, 13:18:47.

                    Comment


                    • ท่าน SSK เคยถามผมว่า ZMM0-ZMM เป็นรีจิสเตอร์กว้างกี่ bit ผมก็ตอบไปแล้วว่า 512-bit ซึ่งน่าจะชัดเจนแล้ว
                      แต่ท่านยังคงสงสัยว่าอาจจะเป็น AVX256+AVX256 = AVX512 หรือเปล่า ?

                      ผมจะขอเทียบเคียงกับกรณี Sandy Bridge Microarchitect ที่ Intel สนับสนุน AVX256 เป็นครั้งแรกในภาพ


                      Sandy Bridge Microarchitect AVX256

                      จากภาพข้างบนจะเห็นว่า Intel ได้เพิ่มความกว้างของรีจิสเตอร์ XMM0-XMM15 เดิมที่มีขนาดความกว้าง 128-bit เป็น 256-bit ทุกตัว
                      และเปลี่ยนชื่อเรียกเป็น YMM0-YMM15 ในภาพ แต่ในยุค Sandy Bridge นั้นรีจิสเตอร์ YMM0-YMM15 อยู่ในส่วนของ FPU Pipeline
                      ไม่ได้อยู่ในส่วนของ Integer Pipeline แบบใน Haswell Microarchitect เป็นต้นมา เพราะในชั้นแรกคำสั่ง AVX256 ใน Sandy Bridge
                      นั้นมุ่งเน้นการทำงานกับข้อมูลชนิดทศนิยมและเวกเตอร์เป็นหลักเท่านั้น

                      ต่อมาในยุค Haswell Microarchitect Intel ได้เปลี่ยน Dedicate Scheduler ใน Sandy Bridge มาเป็น Unified Scheduler และได้
                      แนะนำคำสั่ง AVX2 เพิ่มเติมเข้ามาในภาพที่หลายท่านคุ้นตา ขอนำมาอีกสักครั้งเพื่อความเข้าใจที่ชัดเจนยิ่งขึ้น

                      ็Haswell Microarchitect AVX2 / FMA

                      จากภาพข้างบนเราก็จะเห็นได้ว่า รีจิสเตอร์ SSE XMM0-XMM15 นั้นก็เป็นส่วนหนึ่งของ รีจิสเตอร์ YMM0-YMM15 อย่างชัดเจน
                      เวลาประมวลผลคำสั่ง SSE ตัว CPU ก็จะใช้รีจิสเตอร์ XMM0-XMM15 ในการทำงานเท่านั้น
                      แต่ถ้าจะประมวลผลคำสั่ง AVX ตัว CPU ก็จะใช้รีจิสเตอร์เต็มความยาว 256-bit คือ YMM0-YMM15 ในการทำงาน

                      อะไรคือตัวแบ่งแยกการทำงาน สิ่งที่แบ่งแยกการทำงานคือ ชุดคำสั่งครับ หรือ Instruction ที่ผ่านการ Decode แล้วจะเป็นตัวกำหนด
                      การทำงานของ Execution Unit ในลำดับต่อมาสำหรับ CPU ทุกๆ สถาปัตยกรรมในโลกนี้

                      จากกรณีของ Sandy Bridge และ Haswell เราจะเห็นว่า คำสั่ง SSE และ AVX นั้นมีความแตกต่างกันอย่างมีนัยยะ และการทำงานของ
                      2 คำสั่ง SSE 128-bit นั้นไม่ได้เท่ากับ 1 คำสั่ง AVX 256-bit แต่อย่างใด ทั้ง SSE และ AVX ล้วนมีคำสั่งแยกเป็นอิสระ
                      ไม่ใช่ว่า 2 x SSE 128-bit = 1 AVX256-bit แต่อย่างใดนะครับ

                      เมื่อนำกรณีข้างบนที่ผมได้เล่ามา มาเทียบเคียงกับกรณี AVX512 หลายท่านก็น่าจะมองออกได้ชัดเจนว่า AVX512 ไม่ใช่ AVX256+AVX256 แต่อย่างใด

                      ถ้าจะพูดให้ชัดลงไปก็คือ
                      การประมวลผลข้อมูล AVX/AVX2 ใช้ทรัพยากรรีจิสเตอร์ในส่วนของ SSE ด้วยในการประมวลผล
                      การประมวลผลข้อมูล AVX512 ใช้ทรัพยากรรีจิสเตอร์ในส่วนของ AVX/AVX2 และ SSE ด้วยในการประมวลผล


                      แต่คำสั่ง AVX/AVX2 ไม่ใช่ คำสั่ง SSE+ คำสั่ง SSE
                      และคำสั่ง AVX512 ไม่ใช่ คำสั่ง AVX256 + คำสั่ง AVX256


                      นั่นเอง ผมขอสรุปตรงนี้ล่ะครับ คิดว่าคงกระจ่างเพียงพอแล้วนะครับ

                      Comment


                      • -
                        Last edited by ssk; 20 Mar 2020, 13:18:53.

                        Comment


                        • ว่าจะไม่แล้วนะ แต่ขอทีนึงเหอะ

                          เข้าเขียนอยู่ว่า 128+128 บนหัวโต้งๆ ว่า FMA-128+128
                          สายตาคุณน่าจะมีปัญหา เห็นสีเหลืองๆ รอบๆ คำว่า FMA ไหมครับ
                          นั่นละ เขาขยายมาเป็นภาพข้างล่างไงคุณ ข้างล่างคือสีเหลืองใหญ่ๆ น่ะครับ
                          ปล่อยมุกอีกแล้วนะครับ


                          มุกที่ 5 แล้วนะครับ ท่าน SSK ผมไม่เจตนาจะดักนะ แต่คุณอ่านคำบรรยายข้างๆ ดูละกัน

                          Comment


                          • ตาบอดสีเหรอครับ ไม่เห็นว่า เหลือล้อมเขียวอยู่ข้างใน แปลว่า เหลืองมันรวมเขียวด้วย
                            ก็เพราะแบบนี้แหละ wiki ถึงบอกว่า
                            Z+Y+X ถึง = 512

                            มีปัญญาเถียง wiki เหมือนเถียงผมเหรอ?

                            ขึ้น execute process พรุ่งนี้ก็จะเรื่องนี้แหละ
                            ไปนอนล่ะ เดี๋ยวผู้ติดตามจะไม่กล้าเสนอความเห็นเพราะยังทะเลาะกันอยู่ กับผมไม่อยากอ้างอิงไกล

                            Comment


                            • น้า Comlow เคลียร์ inbox หน่อยครับ จะส่งข้อความไปคุยด้วยครับน้า

                              Comment


                              • Originally posted by ToehNarak View Post
                                น้า Comlow เคลียร์ inbox หน่อยครับ จะส่งข้อความไปคุยด้วยครับน้า
                                เคลียร์แล้วครับผม เชิญครับ

                                Comment

                                Working...
                                X