Announcement

Collapse
No announcement yet.

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

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

  • Skylake X Microarchitect Diagram

    รู้สึกได้เหมือนได้ลูกศิษย์มาขอให้ติววิชา Microprocessor ให้ แต่ลูกศิษย์สอนยากหน่อย ต้องทำใจครับแฟนๆ Intel

    คิดว่ากระจ่างไปตั้งแต่วันเสาร์จนผมไปเที่ยวกลับมาแล้วลูกศิษย์ก็ยังไม่ Get จะทำไงดีน้อ แนะให้ไปซื้อ Skylake X หรือ Icelake มาใช้สะดีไหมเนี่ย

    1. อยากให้กลับไปทำความเข้าใจดีๆ ในสิ่งที่ผมอธิบายให้ฟังในวันเสาร์ ผมว่าคนที่เขาอ่านละเอียดและตั้งใจจะศึกษาจะเข้าใจดีได้ในเวลาที่น้อยที่สุด
    เพราะมันไม่อะไรในกอไผ่ที่ซับซ้อน

    2. ดูเหมือนคุณ SSK จะติดใจในประเด็น Port 0+Port 1 ผมก็ได้อธิบายไปแล้ว Instruction Windows ของ Skylake 512-bit wide VS Ryzen 256-bit wide คือประเด็นที่ 1
    และต่อมา เมื่อระบบ Decode เจอว่าเป็นคำสั่ง AVX512 มันก็จะ Fused Register ระหว่าง Port 0 และ 1 ให้กว้าง 512-bit อัตโนมัติเพื่อรองรับชุดคำสั่งและข้อมูลไปประมวลผลดังที่
    ได้อธิบายไปแล้ว คำสั่ง AVX512 ก็กระทำกับข้อมูลขนาด 512-bit ไม่ใช่ 256-bit จึงไม่ต้องมารอ Execute ที่ละ 256-bit แบบที่คุณ SSK เข้าใจ Input 512-bit -> Output 512-bit
    ตรงๆ เลยแค่นั้น ไม่มีอะไรซับซ้อนเลย เด็กๆ ก็เข้าใจได้ไม่ยาก แต่ถ้า Decode ว่าเป็น AVX256 หรือ SSE ก็จะทำงานกันอีกแบบก็แค่นั้นเอง ไม่เห็นจะเข้าใจอะไรยากเลยนะครับ

    ส่วน Scheduler คุณ SSK ก็ต้องเข้าใจก่อนว่า Skylake และ Ryzen มันต่างกันครับ ตัว Skylake เขาเป็นแบบ Unifed Scheduler คือจัดลำดับได้ทั้ง
    ชุดคำสั่งที่ทำงานกับข้อมูลชนิดที่เป็นจำนวนเต็มและ Logic (ALU) และจำนวนทศนิยม Floating Point (FPU) และ Vector เลยในตัว ทั้งหมดมี Reorder
    Buffer 224 Entry และสนับสนุนการเรียงลำดับ Allocation Queue ได้ถึง 64 ชุดคำสั่งต่อ thread ดังภาพ



    ในขณะที่ Ryzen นั้นจะใช้ระบบ Dedicate Scheduler แยกในส่วนคำสั่งการประมวลผลข้อมูลชนิดจำนวนเต็มและ Logic (ALU) ผ่าน
    Integer Scheduler ทางด้านซ้ายมือและ FPU Scheduler ทางด้านขวามือ



    หลังจาก X86/64 Decoder แล้วก็จะส่งมาพักไว้ใน MicroOp Queue เพื่อจะแยกชนิดการประมวลผลคำสั่งข้อมูลจำนวนเต็มและ Logic
    และชนิดทศนิยมและ Vectore ขนาด 128(256*) bit แบบในภาพข้างบน (*ZEN2 Microarchitect)

    แต่น่าเสียดายที่ Instruction Windows ของ Ryzen นั้นกว้างสูงสุดเพียง 256-bit wide และจำนวนรีจิสเตอร์ของ Ryzen ไม่มากพอที่จะ
    รองรับการประมวลผลข้อมูลและคำสั่ง AVX512 ที่ต้องอาศัยรีจิสเตอร์ขนาด 512-bit ZMM0-31 จำนวน 32 ชุดเข้าไปในแต่ Core เพื่อเข้า
    กันได้กับชุดคำสั่ง AVX512 มาตรฐานที่กำหนดโดย Intel

    ด้วยเหตุนี้ Ryzen จึงไม่สามารถประมวลผลข้อมูลคำสั่ง AVX512 ได้ครับ

    ผมสรุปให้ฟังง่ายๆ สั้นๆ เพียงแค่นี้ คิดว่าแฟนๆ Intel และ AMD ที่สนใจคงพอจะมองเห็นได้ชัดแล้วว่า

    1. Hardware ภายในของ CPU Intel ได้รับการออกแบบมาเพื่อทำงานกับชุดคำสั่งและข้อมูลระดับ 512-bit โดยเฉพาะ
    จึงทำให้ สถาปัตยกรรมของ Intel ล้ำสมัยกว่า AMD ที่ยังคงสนับสนุนเพียงการประมวลผลในระดับ 256-bit สูงสุดในปัจจุบัน

    2. CPU Skylake X ได้รับการพัฒนาแล้วเสร็จในปี 2014 ในขณะที่ AMD ZEN 2 พัฒนาเสร็จในปี 2019 ที่ผ่านมา

    3. ท่านคงมีคำตอบในใจกันเองแล้วนะครับว่า CPU ค่ายไหนล้ำหน้ากว่า

    และสำหรับปัจจุบันนี้ Intel ยังล้ำหน้าไปไกลลิบด้วยสถาปัตยกรรม Sunny Cove Microarchitect ในปี 2019 ที่ AMD ยากจะไล่ทัน
    อาทิ

    1. World First X86-64 CPU Increse Physical Address / Linear Address



    Intel เพิ่มความสามารถในการอ้าง Physical Address ไปที่ 52-bit และเพิ่มความสามารถการอ้าง Linear Address ไปที่ 57-bit จากปัจจุบัน 48-bit
    ใน Skylake Microarchitect ทำให้ CPU สามารถประกาศ Address ไปไกลกว่ายุคใดๆ ที่ผ่านมา

    2. 10-Port Execution (From 8 Skylake X) และเพิ่มแบนด์วิธ L1 cache จาก 2 x 512-bit Load / 1 x 512-bit Store ใน Skylake X
    เป็น 2 x 512-bit Load / 2 x 512-bit Store ใน Icelake และ CPU รุ่นที่ใหม่กว่า



    3. ชุดคำสั่ง AVX512 ใหม่อีกมากมาย


    สำหรับประเด็น Scheduler ที่ท่าน SSK กล่าวมา ในส่วนของ Intel และ AMD มีความแตกต่างกันนะครับ
    ข้อจำกัดของ Ryzen จึงไม่ใช่ข้อจำกัดของ Skylake แต่อย่างใด
    คงสรุปง่ายๆ ให้ทุกท่านฟังเป็นความรู้กันตรงนี้นะครับ

    สำหรับคำถามที่ว่า Intel หรือ AMD ล้ำหน้ากว่ากันนั้น ผมเชื่อว่าหากทุกท่านได้ติดตามมาตั้งแต่ต้น
    นาทีนี้ทุกท่านคงมีคำตอบในใจเป็นที่เรียบร้อยแล้วนะครับ
    Last edited by Comlow; 3 Feb 2020, 15:58:04.

    Comment


    • -
      Last edited by ssk; 20 Mar 2020, 13:17:54.

      Comment


      • คุณมาตอบผมก่อนดีกว่า
        1. ว่า AVX ใช้ FMA 256+256 ใช่มั้ย ?
        AVX ไหนล่ะ AVX/AVX2 หรือ AVX512 ?
        AVX ตัวแรกทำงานกับข้อมูลทศนิยมล้วนๆ ใน Sandy Bridge และ Ivy Bridge Microarchitect
        AVX2 เพิ่มการทำงานกับข้อมูลชนิดจำนวนเต็มและทศนิยมใน Haswell Boardwell
        AVX512 เพิ่มการทำงานกับข้อมูลชนิดจำนวนเต็มและทศนิยมใน Skylake X ขึ้นไป

        แต่คิดว่าคุณคงหมายถึง Skylake X ก็ผมบอกไปแล้วหลายๆ ครั้งว่า
        AVX512 มันไม่ใช่ AVX256+AVX256 ย้ำอีกที ไม่ใช่ AVX256+AVX256 ภาษาไทยนะ
        ถ้าขนาดนี้แล้วคุณยังไม่เข้าใจ ผมจะไม่อธิบายต่อละนะครับ เพราะมันซ้ำซากหลายรอบแล้ว

        2. ในสมการนั้น Port0+Port 1 = Port 5 ใช่มั้ย
        สมการไหนล่ะ ผมไม่เห็นมี แต่ถ้าคุณหมายถึงว่า Fused Port 0 และ Port 1 แล้ว Skylake X มีจำนวนรีจิสเตอร์เท่ากับ FMA512 Unit ชุดที่ 2 ใน Port 5
        หรือไม่ ? ถ้าอันนี้ละใช่

        3. คุณพูดเองว่า Zmmm. Register ที่เข้ามาใหม่ กว้าง 256 Bits ถูกมั้ย เพราะคุณพูดเองนะ
        ผมพูดตรงไหนว่า ZMM0-ZMM31 Register ที่เข้ามาใหม่กว้าง 256-bit ไปอ่านใหม่อีกทีซิ สายตาท่าจะมีปัญหา ไปหาตัดแว่นดีๆ ใส่นะหนูน้อย
        ผมบอกชัดๆ ว่ากว้าง 512-bit เพี้ยนละคุณ รีจิสเตอร์ AVX2 YMM0-YMM15 โน่นกว้าง 256-bit ใน Ryzen ของคุณน่ะ นี่มัน Skylake X นะ
        ขนาดผมพยายามไล่ทีละ Step คุณก็ยังตามไม่ทันผมเลย (สงสัยขาด FMA512 ใน CPU)

        4. อันนี้เพิ่ม ZMM0 กว้างกี่ BITS ผมอยากรู้
        512-bit ไง ZMM0-ZMM31 ใน Wikichip ยังไม่ชัดอีกเหรอ

        เก็บค่าเรียนดีไหมเนี่ย (ล้อเล่นน่า ให้ฟรีเลยความรู้ล้วนๆ )

        ปล. เรื่องเล่นมุก ผมคงสู้คุณ SSK ไม่ไหว ปล่อยมาหลายมุกแล้วฮากระจายจริงๆ ครับ นับถือจริงๆ ในแต่ละมุกที่คิดมาได้
        Last edited by Comlow; 3 Feb 2020, 19:15:42.

        Comment


        • ท่าน comlow อดทนดีจริงๆครับ ต้องอธิบายยืดยาวซะขนาดนี้

          Comment


          • Originally posted by โหงพราย View Post
            ท่าน comlow อดทนดีจริงๆครับ ต้องอธิบายยืดยาวซะขนาดนี้
            ต้องขออภัยทุกท่านด้วย เขาติดยึดกับ AMD เราจะสอนให้เข้าใจสถาปัตยกรรมทาง Intel
            เขาก็ยังไปยึดกับ AMD แบบที่ท่านโหงพรายเห็นนั่นล่ะ เดี๋ยวคงปล่อยมุกออกมาอีก

            Comment


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

              Comment


              • 555+ จะเล่นมุกไหนอีกน้อ หนูน้อย เอาเวลาไปทำการบ้านไป๊ ค่อยๆ เรียนก็ไม่สายหรอก
                อยากรู้ความจริงๆ แบบส่วนตั๊วส่วนตัว ซื้อ Skylake X หรือ Icelake Notebook มาใช้แล้วลองเองเลยดีกว่า
                สะใจกว่า ผิดพลาดยังไงไม่หน้าแตก ดีกว่ามาถามผมเรื่อยๆ ลองของจริงเลยครับ

                นี่ไงกำลังราคาน่าสนใจเอานี่ แนะนำเลยรุ่นนี้เบาด้วย สาวกรี๊ดรับรองได้



                20990 บาทเท่านั้น ผ่อนได้อีกตะหากกับเสี่ยจิ๊บ และร้านคอมชั้นนำ

                ลองดู ลองดู ลองดู ถ้าอยากฮู้ดีก็ต้องลองดู จ้า


                Last edited by Comlow; 3 Feb 2020, 19:31:12.

                Comment


                • ไม่ต้องขายยาครับ เอาดีๆ อย่าโอ้เอ้


                  คุณจะบอกว่า ZMM แต่ละตัวกว้าง 512 ใช่มั้ย?
                  Zmm0 กว้าง 512 ใช่มั้ย?
                  Zmm1 กว้าง 512 ใช่มั้ย?
                  .
                  .
                  Zmm31 กว้าง 512 ใช่มั้ย?
                  ใช่ไม่ใช่ก็ว่ามา จะได้ไปต่อ
                  ให้ดี ย้อนกลับไปอ่าน SIMD กับ Register Table ทำความเข้าใจก่อนดีมั้ย หืม?
                  แปะไว้นานแล้วนะ นอกจากให้คุณดู ก็จะได้ไปทำความเข้าใจคร่าวๆก่อน
                  https://www.overclockzone.com/forums...1#post76878165
                  Last edited by ssk; 3 Feb 2020, 20:01:31.

                  Comment


                  • ผมบอกไปแล้วในความเห็นก่อนๆ หาดูสิครับ ไม่ไกลหรอกในหน้านี้ล่ะ

                    พิมพ์บ่อยแล้วครับ พักจิบน้ำชาแป๊บ เอาของดีมาอวดดีฝ่า นี่ของใหม่ถอดด้ามเลยล่ะ



                    https://browser.geekbench.com/v5/cpu/1058208

                    ลองเทียบกับ CPU รุ่นอื่นๆ ดูละกัน ให้คุณชมก่อนใครเลยนะเนี่ย

                    Willowcove Microarchitect นี้ในส่วน L1 cache จะเหมือน Sunny Cove ทุกอย่าง
                    แต่ L2 cache เพิ่มจาก 512KB ต่อ Core เป็น 1.25MB ต่อ Core และ L3 cache เพิ่มเป็น 3MB ต่อ Core แค่ 2.3GHz
                    เบาๆ เป่า Ryzen กระจายหลายรุ่นน่ะครับ
                    Last edited by Comlow; 3 Feb 2020, 20:10:58.

                    Comment


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

                      Comment


                      • งั้นคุณผิด ผมถึงบอกให้ไปดู ตาราง SIMD+Register table แล้วยังไม่ไปดูน่ะนะ
                        จริงๆถ้าคุณเห็นคุณก็รู้แล้วว่าผมไปยกมาจาก Wikipedia เพราะใน Wikichip มันไม่มี
                        Regiter table กับ SIMD SUBSET
                        https://en.wikipedia.org/wiki/AVX-512
                        เอาเป็นว่าคุณไม่เข้าใจเรื่อง register กับ SIMD จริงๆ เดี๋ยวพรุ่งนี้ผมคงมาต่อยาวๆ
                        เพราะตรงนี้มันจะไปพัวพันหลายตัว เอาเป็นว่าถ้าคุณพูดเรื่อง Decode ให้ผมฟังมาทีนึงแล้ว
                        อย่างงล่ะ

                        ที่ต้องจัดการเรื่อง FusePort ก่อน เพราะเรื่อง Execute Lane นั่นแหละ
                        ผมไม่ได้ติดใจอะไรหรอก ออกจะรำคาญด้วยซ้ำเพราะคุณเล่นท่องมาตอบซ้ำๆตั้ง 5-6 รอบ หลังจากผมแปลให้แล้วน่ะนะ

                        ไปต่อซะที ขี้เกียจดูหนังขายยาจะแย่

                        ( แปะรูปไม่ได้แฮะ ไครบอกทีทำไง จะวาง Link รูปลงไปได้เนี่ย เกี่ยวกับขนาดรึเปล่า เพราะมันต้องใช้อีกเยอะเลย )

                        ตามตาราง REGISTER นั่น

                        Zmm แต่ละตัวมันกว้างแค่ 8BITS แต่มี 32 ตัว 8x32 = 256 Bits ผมถึงบอกว่าคุณผิด และ ต้องย้ำ เพราะมันไม่มีตัวใหนยาวกว่า 256 ครับ
                        Xmm แต่ละตัวกว้างแค่ 4 ฺBits มี 32 ตัส 4x32 = 128 ฺBits
                        Ymm แต่ละตัวกว้างแค่ 4 ฺBits มี 32 ตัส 4x32 = 128 ฺBits
                        ผมถึงเขียน Block Diagram แบบนี้ไง
                        คือ REGISTER AVX512 น่ะ มันจะเป็น [( z0-Z31)+(X0-31)+(Y0-31)] > [ 256+128+128 ]

                        ผิดไปเถียววิกิ ไม่ต้องมาเถียงผม

                        เพราะตาราง SIMD AVX มันก็จะมีคำสั่ง 128-256-512 ตาม Step นั่นแหละ หวังว่าคงไม่ลืม
                        และคงไม่ลืมอะไรที่พูดๆไว้นะ

                        AVX128 = Ymm0-Ymm31 = 128 BITS
                        AVX256 = Xmm0-Xmm31 + Ymm0-Ymm31 = 128+128
                        AVX512 = Zmm0-Zmm31 + Xmm0-Xmm31 + Ymm0-Ymm31 = 256+128+128 ครับ

                        ผิดไปเถียงวิกิครับ

                        จากตรงนี้ Zmm0-Zmm31 ยาวตัวละ 512 BIst มายังไง?
                        กินยาผิดซองหรือเปล่าครับถามจริง คุณดูไม่เป็นจริงๆ เหรอ ความกว้างรีจิสเตอร์
                        เอ้านี้เผื่อจะตื่นจากมโนดีขึ้นนะครับ


                        ความกว้างของ ZMM0-ZMM31 มันเป็น 512-bit ครับท่าน ชัดเจนนะครับ

                        Comment


                        • ไปเถียง WIKI โน่นน้อง........................
                          อันนี้มัน Instruction SUBSET ไม่ใช่ตาราง Instruction
                          ถ้าระดับอาจารย์เค้าดูตารางโน้นน้อง บอกแล้ว คิดว่าผิดไปเถียงวิกิให้ชนะเถอะ

                          แถมเป็น Present จาก Power point มั้ง รูปนี้มันแค่เปลือกครับ
                          ผมพาลงไปดูที่แก่นของเทคโนโลยีเลย


                          พี่บอกแล้วน้องมันมีแต่เปลือก ที่เอา Presskit ที่แจกนักข่าวตามเว็บ
                          มาใช้น่ะ พี่ถึงต้องไปช้าๆไง มันจะได้ไม่มั่ว และพี่ไปข้างหน้าตลอดนะครับ
                          อย่า Recycle มุขเด้................. มันน่าเบื่อนะ
                          ความรู้น้องมีแค่ Presskit นี่แหละ เดี๋ยวตอนบอกว่ามันวิ่งเข้า FMA LANE ยังไง มันจะยิ่งเห็นจ๊ะ

                          ถึงบอกไงถ้ามีแค่นี้อย่ามาพูดว่าสอนผมเลย คนอย่างคุณเป็นครูผมไม่ได้หรอก จริงๆ
                          Last edited by ssk; 3 Feb 2020, 20:47:57.

                          Comment


                          • Originally posted by ssk View Post
                            ไปเถียง WIKI โน่นน้อง........................
                            อันนี้มัน Instruction SUBSET ไม่ใช่ตาราง Instruction
                            ถ้าระดับอาจารย์เค้าดูตารางโน้นน้อง บอกแล้ว คิดว่าผิดไปเถียงวิกิให้ชนะเถอะ

                            แถมเป็น Present จาก Power point มั้ง รูปนี้มันแค่เปลือกครับ
                            ผมพาลงไปดูที่แก่นของเทคโนโลยีเลย


                            พี่บอกแล้วน้องมันมีแต่เปลือก ที่เอา Presskit ที่แจกนักข่าวตามเว็บ
                            มาใช้น่ะ พี่ถึงต้องไปช้าๆไง มันจะได้ไม่มั่ว และพี่ไปข้างหน้าตลอดนะครับ
                            อย่า Recycle มุขเด้................. มันน่าเบื่อนะ
                            ความรู้น้องมีแค่ Presskit นี่แหละ เดี๋ยวตอนบอกว่ามันวิ่งเข้า FMA LANE ยังไง มันจะยิ่งเห็นจ๊ะ

                            ถึงบอกไงถ้ามีแค่นี้อย่ามาพูดว่าสอนผมเลย คนอย่างคุณเป็นครูผมไม่ได้หรอก จริงๆ
                            555+ ผมบอกแล้วหลายครั้งคุณคือเด็กน้อยกำลังโตจริงๆ

                            ตกลงระหว่าง Wikipedia เป็นผู้ผลิต CPU หรือ Intel ผลิต CPU ครับ?
                            คุณเชื่อ Wikipedia เป็นสรณะเลยเชียวหรือ ?


                            นี่ละน้าเด็กก็คือเด็กวันยังค่ำ ขนาดผมเอาข้อมูลมาให้คุณดูระดับ NDA ของ Intel คุณยังคิดว่า Wikipedia น่าเชื่อถือกว่า Intel
                            โอ้พระเจ้าช่วยพี่น้องทั้งหลาย คุณยังไม่รู้เลยว่า Wikipedia ใครเขียนข้อมูลให้คุณอ่าน ใครบ้างผิด ใครบ้างถูก

                            แต่นี่ผู้ผลิตเขาทำเอกสารมาสื่อสารบรรดา Developer ทั่วโลกทั้ง Microsoft Apple Autodesk Adobe ...etc. ล้วนได้รับ
                            ข้อมูลตามนี้ในการพัฒนา OS และ Application สนับสนุน

                            คุณไม่เชื่อ ผมก็จนปัญญาจะอธิบายต่อไปได้แล้วล่ะ

                            อย่าว่าแต่คุณคิดอยากเรียนกับผมเลย แค่คุณยื่นใบสมัครผมยังคิดหนักเลยนะเนี่ย คุณยังแยกแยะไม่ออกว่าอันไหนสำคัญกว่าอันไหน
                            Wikipedia เขาก็อ้างอิงจากเอกสารจาก Intel นี่ละครับ คุณดู reference ข้างล่างสิ เขานั่งเทียนแบบคุณ SSK สะเมื่อไหร่ ?
                            Last edited by Comlow; 3 Feb 2020, 21:06:02.

                            Comment


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

                              Comment


                              • ผมว่าลุง comlow เอาเวลาไปทำอย่างอื่นเถอะน่าจะได้ประโยชน์มากกว่า

                                Comment

                                Working...
                                X