AMD Piledriver และ K10: เผชิญหน้ากัน เปรียบเทียบ K10 และ K10.5 โปรเซสเซอร์ AMD A-line ใหม่มีจำหน่ายแล้ว

การสร้างคอมพิวเตอร์ที่ใช้ไมโครโปรเซสเซอร์ LSI ทำให้สามารถลดต้นทุนของไมโครคอมพิวเตอร์ได้ซึ่งเทียบเคียงได้ในพารามิเตอร์กับคอมพิวเตอร์ที่สร้างขึ้นก่อนหน้านี้ 10 3 - 10 4 เท่าในขนาดโดยรวม - คูณ (2-3)x10 4 เท่าใน การใช้พลังงาน - 10 5 เท่า ซึ่งหมายความว่าโดยไม่ต้องเพิ่มต้นทุนโดยรวม เทคโนโลยีไมโครอิเล็กทรอนิกส์ช่วยให้สังคมสามารถผลิตคอมพิวเตอร์ได้มากกว่าเดิมนับร้อยนับพันเท่า

ไมโครโปรเซสเซอร์– อุปกรณ์ประมวลผลข้อมูลที่สมบูรณ์ตามหน้าที่ควบคุมโดยโปรแกรมที่เก็บไว้ในหน่วยความจำ การเกิดขึ้นของไมโครโปรเซสเซอร์ (MP) เกิดขึ้นได้เนื่องจากการพัฒนาอุปกรณ์อิเล็กทรอนิกส์แบบรวม ทำให้สามารถย้ายจากวงจรรวมขนาดเล็กและขนาดกลางไปเป็นวงจรรวมขนาดใหญ่และขนาดใหญ่พิเศษ (LSI และ VLSI)

โดยฟังก์ชันและโครงสร้างเชิงตรรกะ MP มีลักษณะคล้ายกับโปรเซสเซอร์เวอร์ชันเรียบง่ายของคอมพิวเตอร์ทั่วไป โครงสร้างประกอบด้วย LSI หรือ VLSI หนึ่งรายการขึ้นไป

ขึ้นอยู่กับลักษณะการออกแบบ MP สามารถแบ่งออกเป็น MP ชิปตัวเดียวที่มีความยาวคำคงที่ (ความลึกบิต) และระบบคำสั่งเฉพาะ MP แบบหลายชิป (แบบตัดขวาง) พร้อมความจุคำที่เพิ่มขึ้นและการควบคุมไมโครโปรแกรม (ประกอบด้วย LSI สองตัวขึ้นไป)

เมื่อเร็ว ๆ นี้ MPs ชิปตัวเดียวที่มีการควบคุมไมโครโปรแกรมได้ปรากฏตัวขึ้น

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

งานในหลักสูตรนี้จะศึกษาสถาปัตยกรรมไมโครโปรเซสเซอร์สองรุ่น - K10 และ K10.5

ประวัติความเป็นมาของการทรงสร้าง

เค 10 - การสร้างสถาปัตยกรรมไมโครโปรเซสเซอร์ x86 จาก AMD โปรเซสเซอร์ของสถาปัตยกรรมนี้วางจำหน่ายเมื่อปลายปี 2550

การกล่าวถึงสถาปัตยกรรมไมโครเจเนอเรชั่นถัดไปครั้งแรกปรากฏในปี พ.ศ. 2546 ที่งานไมโครโปรเซสเซอร์ฟอรั่ม พ.ศ. 2546 ฟอรัมตั้งข้อสังเกตว่าสถาปัตยกรรมไมโครใหม่จะรวมโปรเซสเซอร์แบบมัลติคอร์ที่จะทำงานที่ความเร็วสัญญาณนาฬิกาสูงถึง 10 GHz ต่อมาความถี่สัญญาณนาฬิกาลดลงหลายครั้ง การกล่าวถึงอย่างเป็นทางการครั้งแรกเกี่ยวกับการพัฒนาโปรเซสเซอร์ Quad-Core ของ AMD ปรากฏในเดือนพฤษภาคม พ.ศ. 2549 ในแผนงานที่เผยแพร่ในช่วงจนถึงปี พ.ศ. 2552 จริงอยู่ที่ในเวลานั้นสถาปัตยกรรมไมโครใหม่ได้รับการจดทะเบียนภายใต้ชื่อรหัส AMD K8L และเฉพาะในเดือนกุมภาพันธ์ พ.ศ. 2550 ชื่อสุดท้าย AMD K10 เท่านั้นที่ได้รับการอนุมัติ โปรเซสเซอร์ที่ใช้สถาปัตยกรรม AMD K8 ที่ได้รับการปรับปรุงนั้นควรจะเป็นโปรเซสเซอร์ AMD แบบ quad-core ตัวแรกรวมถึงโปรเซสเซอร์ตัวแรกในตลาดที่มีทั้ง 4 คอร์อยู่บนชิปตัวเดียว (ก่อนหน้านี้มีข่าวลือเกี่ยวกับ รูปลักษณ์ของโปรเซสเซอร์ AMD Quad-Core ซึ่งเป็นคริสตัล Opteron แบบ Dual-Core สองตัว)

การผลิตแบบต่อเนื่องของ Phenom II X4 แบบ quad-core เริ่มต้นในเดือนมกราคม พ.ศ. 2552, Phenom II X3 แบบสามคอร์ในเดือนกุมภาพันธ์ พ.ศ. 2552, Phenom II X2 แบบ dual-core ในเดือนมิถุนายน พ.ศ. 2552 และ Phenom II X2 แบบหกคอร์ในเดือนเมษายน พ.ศ. 2553

Athlon II - การแทนที่ Sempron - คือ Phenom II ซึ่งปราศจากข้อได้เปรียบที่สำคัญที่สุดประการหนึ่งนั่นคือแคชระดับที่สามขนาดใหญ่ (L3) ซึ่งเหมือนกันกับคอร์ทั้งหมด มีจำหน่ายในเวอร์ชัน 2, 3 และ 4 คอร์ Athlon II X2 เริ่มผลิตตั้งแต่เดือนมิถุนายน พ.ศ. 2552, X4 ตั้งแต่เดือนกันยายน พ.ศ. 2552 และ X3 ตั้งแต่เดือนพฤศจิกายน พ.ศ. 2552

ในปี 2008 สถาปัตยกรรม K10.5 ซึ่งมีพื้นฐานมาจาก K10 ได้รับการเผยแพร่

คำอธิบาย K10

K10 เป็นโปรเซสเซอร์ SOI ขนาด 65 นาโนเมตร ประกอบด้วยทรานซิสเตอร์ 450 ล้านตัว และมีพื้นที่แกนกลาง 283 ตร.มม. แรงดันไฟฟ้า: 1.05V-1.38V ซ็อกเก็ต: AM2+(940 พิน)/F(1207 พิน)

คอร์ K10 ดั้งเดิมมีชื่อรหัสว่า Barcelona (AMD) สำหรับโปรเซสเซอร์ร่วมที่มีไว้สำหรับเซิร์ฟเวอร์ โปรเซสเซอร์รุ่นต่อมาสำหรับคอมพิวเตอร์เดสก์ท็อปเปิดตัวโดยที่คอร์ K10 เรียกว่า Agena

โปรเซสเซอร์ทั้งหมดที่มีคอร์ K10 ซึ่งออกสู่ตลาดในปี 2550 มี B2 และ BA stepping และมีข้อผิดพลาดในตัวควบคุมหน่วยความจำ เนื่องจากไมโครโปรเซสเซอร์อาจไม่ทำงานอย่างถูกต้องภายใต้เงื่อนไขบางประการ (ที่เรียกว่า "TLBbug")

ข้อผิดพลาด TLB

ในการเชื่อมต่อกับโปรเซสเซอร์ Agena และ Barcelona (AMD) มักมีการกล่าวถึงข้อผิดพลาด TLB หรือข้อผิดพลาด TLB ข้อผิดพลาดนี้เกิดขึ้นในโปรเซสเซอร์ Quad-core AMD รุ่น B2 ทั้งหมด และในบางกรณีที่เกิดขึ้นไม่บ่อยนัก อาจทำให้ระบบไม่สามารถคาดเดาได้ภายใต้ภาระงานสูง ข้อผิดพลาดนี้มีความสำคัญในส่วนของเซิร์ฟเวอร์ ซึ่งทำให้เกิดการระงับการส่งมอบโปรเซสเซอร์ Barcelona (AMD) ทั้งหมดของการแก้ไข B2 สำหรับโปรเซสเซอร์ Phenom บนเดสก์ท็อป มีการเสนอแพตช์ TLB เพื่อป้องกันข้อผิดพลาดไม่ให้เกิดขึ้นโดยการปิดใช้งานส่วนหนึ่งของตรรกะ TLB แพตช์นี้แม้ว่าจะช่วยเราจากข้อผิดพลาด TLB แต่ก็ส่งผลเสียต่อประสิทธิภาพเช่นกัน ข้อผิดพลาดได้รับการแก้ไขแล้วในการแก้ไข B3

TDP และ ACP

ด้วยการเปิดตัวโปรเซสเซอร์ Opteron 3G ที่ใช้ Barcelona core (AMD) AMD ได้เปิดตัวคุณลักษณะด้านพลังงานใหม่ที่เรียกว่า ACP (Average CPU Power) ซึ่งเป็นระดับการใช้พลังงานโดยเฉลี่ยของโปรเซสเซอร์ใหม่ภายใต้ภาระงาน AMD จะยังคงระบุระดับการใช้พลังงานสูงสุด - TDP ต่อไป

การกำหนด

ด้วยการถือกำเนิดของโปรเซสเซอร์เจนเนอเรชั่น K10 ในกลุ่มผลิตภัณฑ์ AMD การกำหนดของพวกเขาก็เปลี่ยนไปเช่นกัน - ทั้งสองรุ่นที่ใช้ K10 และ AMD K8 นั้นถูกซ่อนอยู่ภายใต้การกำหนดใหม่

ระบบการกำหนดโปรเซสเซอร์ AMD

ซีรีย์โปรเซสเซอร์ การกำหนด
ฟีนอม X4 ควอดคอร์ (Agena) X4 9xx0
Phenom X3 แบบสามคอร์ (Toliman) X38xx0
Athlon ดูอัลคอร์ (Kuma) 7xx0
Athlon single-core (ลิมา) 1xx0
เซมพรซิงเกิลคอร์ (สปาร์ตา) 1xx0

คำอธิบาย K 10.5

คอร์โปรเซสเซอร์เซิร์ฟเวอร์ถัดไปหลังจาก Barcelona มีชื่อรหัสว่า Shanghai และผลิตตามมาตรฐาน 45 นาโนเมตร อย่างไรก็ตาม นี่ไม่ใช่การถ่ายโอนสถาปัตยกรรม K10 ไปเป็นเทคโนโลยีกระบวนการใหม่อย่างง่ายๆ สถาปัตยกรรมของมันถูกเรียกว่า K10.5 และมีชุดคำสั่งแบบขยาย มีแคช L3 แบบกระจาย 6 MB และรองรับซ็อกเก็ต 1207+ แกน Deneb (เซี่ยงไฮ้) เป็นโปรเซสเซอร์ 45 นาโนเมตรของรุ่น K10.5 ประกอบด้วยทรานซิสเตอร์ประมาณ 758 ล้านตัว และมีพื้นที่ 243 มม. (เทียบกับ 731 ล้านและ 246 มม. สำหรับ Intel Nehalem) มีแคช L3 ที่เพิ่มขึ้น (จาก 2 MB เป็น 6 MB) รวมถึงการปรับปรุงสถาปัตยกรรมเล็กน้อย

เป้าหมายหลักคือการเพิ่มความถี่ของสายโปรเซสเซอร์ Phenom ลด TDP รวมถึงต้นทุนการผลิต จากข้อมูลของ AMD โปรเซสเซอร์ Deneb/Shanghai มีประสิทธิภาพเหนือกว่า Agena/Barcelona ที่เทียบเท่ากันสูงสุดถึง 35% ในขณะที่ใช้พลังงานน้อยลง 30% การประกาศเปิดตัวโปรเซสเซอร์ Opteron ที่ใช้แกนหลักในเซี่ยงไฮ้เกิดขึ้นเมื่อวันที่ 13 พฤศจิกายน พ.ศ. 2551 โปรเซสเซอร์ Deneb คาดว่าจะเกิดขึ้นในไตรมาสที่ 1 ของปี พ.ศ. 2552 โปรเซสเซอร์ตัวแรกที่ใช้แกน Deneb ได้รับการเผยแพร่โดย AMD เมื่อวันที่ 8 มกราคม พ.ศ. 2552 ภายใต้ชื่อ Phenom II X4 (รุ่น 920 และ 940 Black Edition)

คุณสมบัติของสถาปัตยกรรม K10

· ความแตกต่างที่สำคัญระหว่างโปรเซสเซอร์รุ่น K10 และรุ่นก่อนที่ใช้ AMD K8 คือการรวมกันของสี่คอร์บนชิปตัวเดียว การอัปเดตโปรโตคอล Hyper-Transport เป็นเวอร์ชัน 3.0, แคช L3 ทั่วไปสำหรับคอร์ทั้งหมด ตลอดจนการสนับสนุนที่มีแนวโน้มสำหรับ ตัวควบคุมหน่วยความจำ DDR3 ตัวคอร์เองก็ได้รับการอัพเกรดจากคอร์ K8 ของ AMD

· ชิป K10 สามารถดำเนินการคำสั่ง SSE 64 บิตเป็นหนึ่งเดียวได้ นี่คือเหตุผลว่าทำไมการเพิ่มความจุบิตของบล็อก SSE จึงมีความสำคัญ และประสิทธิภาพควรเพิ่มขึ้นอย่างมีนัยสำคัญ

· ความจุอินเทอร์เฟซระหว่างบล็อก SSE และแคชข้อมูลระดับแรกเพิ่มขึ้น ขณะนี้ในรอบสัญญาณนาฬิกาเดียว คุณสามารถโหลดคำสั่ง 128-บิต สองคำสั่งต่อรอบสัญญาณนาฬิกา เทียบกับคำสั่ง 64-บิต สองคำสั่งสำหรับ K8

· การเชื่อมต่อระหว่างแคช L2 และตัวควบคุมหน่วยความจำก็มีความกว้างเพิ่มขึ้นเช่นกัน และตอนนี้เป็น 128 บิต

· รองรับคำสั่ง SSE4a ซึ่งนอกเหนือจากชุดมาตรฐานแล้ว ยังรวมถึง: ชุดคำสั่งรวม (EXTRQ/INSERTQ) และคำแนะนำการสตรีมเวกเตอร์ (MOVNTSD/MOVNTSS)

· สถาปัตยกรรม K10 ช่วยให้คุณสามารถติดตามการเปลี่ยนแปลงและสาขาได้มากขึ้น ซึ่งช่วยเพิ่มความแม่นยำในการคาดการณ์ และยิ่งการคาดการณ์การเปลี่ยนแปลงแม่นยำยิ่งขึ้น โปรเซสเซอร์ก็จะยิ่งสามารถโหลดหน่วยประมวลผลพร้อมกับงานได้อย่างเต็มที่มากขึ้นเท่านั้น

· ขนาดของกองส่งคืนก็เพิ่มขึ้นเป็นสองเท่าเมื่อเทียบกับ K8 ด้วย K8 เมื่อดำเนินการคำขอต่อเนื่องกันเป็นเวลานาน อาจเป็นไปได้ว่ามีพื้นที่ไม่เพียงพอที่จะเขียนที่อยู่เริ่มต้นในสแต็กการส่งคืน และทำให้การคาดการณ์สาขาเป็นไปไม่ได้ ตอนนี้ความเป็นไปได้ลดลงอย่างมาก

· ช่วยให้คุณเพิ่มประสิทธิภาพและประสิทธิผลโดยการเชื่อมต่อตัวควบคุมหน่วยความจำและช่อง I/O เข้ากับคอร์โดยตรง

· ออกแบบมาเพื่อทำการคำนวณทั้งแบบ 32 บิตและ 64 บิตพร้อมกัน

· การรวมตัวควบคุมหน่วยความจำ DDR2 (สูงสุด 533 (1066) MHz โหมด ตลอดจนการรองรับ DDR3 ในอนาคต)

คุณสมบัติของสถาปัตยกรรม K10.5

ความกว้างบัสหน่วยความจำคอนโทรลเลอร์: 128 บิต

· รองรับบัส Hyper Transport 3.0

ความถี่บัสระบบ: 1800 - 2600 MHz (มีผล 3600 - 5200 MHz)

· รองรับเทคโนโลยี AMD64

· รองรับการประมวลผลแบบ 64 บิต

· รองรับ AMD Cool"n"Quiet 3.0, AMD CoolCore, เทคโนโลยีการจัดการพลังงาน Dual Dynamic

· รองรับ EVP (การป้องกันไวรัสขั้นสูง) และเทคโนโลยีการจำลองเสมือนของ AMD

· รองรับ SSE, SSE2, SSE3, SSE4a, ABM, MMX, 3DNow!

อุณหภูมิสูงสุด: 62°C

กำลังไฟกระจาย (TDP) 125 วัตต์

เปรียบเทียบ K10 และ K10.5

คุณสมบัติที่โดดเด่นที่สุดของโปรเซสเซอร์ Quad-Core ที่มีสถาปัตยกรรมไมโคร K10 คือการจัดการพลังงานที่ได้รับการปรับปรุงและการออกแบบความเร็วสัญญาณนาฬิกา ตอนนี้คอร์โปรเซสเซอร์แต่ละตัวมีสิทธิ์ที่จะ "ตัดสินใจ" ตัวเองว่าควรจะทำงานที่ความถี่ใด และการเปลี่ยนแปลงจะเกิดขึ้นแบบไดนามิกและไม่ส่งผลกระทบต่อความถี่ในการทำงานของคอร์ที่เหลือในทางใดทางหนึ่ง

เมื่อต้นเดือนกันยายน AMD สัญญาว่าจะนำเสนอโปรเซสเซอร์ Quad-Core ใหม่ของสถาปัตยกรรม K10 โปรเซสเซอร์ตัวแรกที่มีสถาปัตยกรรมใหม่นี้จะเป็นชิปเซิร์ฟเวอร์ Opteron บนคอร์ที่มีชื่อรหัสว่า Barcelona น่าเสียดายที่วิศวกรของ AMD ไม่สามารถผลิตโปรเซสเซอร์ที่ทำงานที่ความถี่สูงจำนวนมากในเวอร์ชันปัจจุบันได้ เห็นได้ชัดว่าอุปสรรคสำคัญในการเพิ่มความถี่คือความจริงที่ว่าคอร์สี่คอร์ที่ความถี่สูงใช้พลังงานเกินค่าที่กำหนดโดยแพ็คเกจระบายความร้อนของแพลตฟอร์ม การใช้พลังงานจะลดลง และความถี่จะเพิ่มขึ้นเมื่อมีการเปิดตัวการแก้ไขใหม่และการเปลี่ยนไปใช้กระบวนการทางเทคนิคที่ซับซ้อนมากขึ้น ในระหว่างนี้ AMD จำเป็นต้องเริ่มการขายอย่างเร่งด่วนเพื่อหลีกหนีจากสถานการณ์ทางเศรษฐกิจที่ยากลำบาก ดังนั้นการส่งมอบในบาร์เซโลนาจะเริ่มต้นด้วยโปรเซสเซอร์เซิร์ฟเวอร์ Quad-Core ที่ทำงานที่ความถี่ 2 GHz

ในไตรมาสที่สี่ของปี 2550 AMD สัญญาว่าจะเพิ่มความถี่ Opteron เป็น 2.4–2.5 GHz และเปิดตัวโปรเซสเซอร์สถาปัตยกรรม K10 เวอร์ชันเดสก์ท็อป:

Phenom FX (ชื่อรหัส Agena FX) – 4 คอร์, แคช L3 2 MB, ความถี่เริ่มต้นโดยประมาณที่ 2.2–2.4 GHz, ซ็อกเก็ต AM2+ และ F+;
Phenom X4 (ชื่อรหัส Agena) – 4 คอร์, แคช L3 2 MB, ความถี่เริ่มต้นโดยประมาณ 2.2–2.4 GHz, ซ็อกเก็ต AM2+

ต่อมาในต้นปี 2551 AMD สัญญาว่าจะเปิดตัวโปรเซสเซอร์ใหม่เวอร์ชันที่เรียบง่าย:

Phenom X2 (ชื่อรหัส Kuma) – 2 คอร์, แคช L3 2 MB, ความถี่เริ่มต้นโดยประมาณ 2.2–2.6 GHz, ซ็อกเก็ต AM2+;
Athlon X2 (ชื่อรหัส Rana) – 2 คอร์, ไม่มีแคช L3, ความถี่เริ่มต้นโดยประมาณ 2.2 GHz, ซ็อกเก็ต AM2+;
Sempron (ชื่อรหัส Spica) – 1 คอร์, ความถี่เริ่มต้นโดยประมาณ 2.2–2.4 GHz, ซ็อกเก็ต AM2+

แต่ทั้งหมดนี้เป็นเรื่องของอนาคตอันใกล้นี้ แต่ในระหว่างนี้เรามาดูกันว่าสถาปัตยกรรม AMD ใหม่นำมาซึ่งนวัตกรรมอะไรบ้าง ในบทความนี้ ฉันจะพยายามเปิดเผยรายละเอียดโดยละเอียดและประเมินสิ่งที่เราคาดหวังได้จากบทความนี้

กำลังดึงคำแนะนำ

การเรียกใช้โค้ดโดยโปรเซสเซอร์เริ่มต้นด้วยการดึงคำสั่งจากแคชคำสั่ง L1I แล้วถอดรหัส คำสั่ง x86 มีความยาวผันแปรได้ ทำให้ยากต่อการกำหนดขอบเขตก่อนถอดรหัส เพื่อให้แน่ใจว่าการกำหนดความยาวของคำสั่งจะไม่ส่งผลต่ออัตราการถอดรหัส โปรเซสเซอร์ K8/K10 จะดำเนินการถอดรหัสคำสั่งล่วงหน้าขณะโหลดบรรทัดลงในแคชคำสั่ง L1I ข้อมูลเกี่ยวกับโครงร่างคำสั่งจะถูกจัดเก็บไว้ในแคช L1I ในช่องพิเศษ (ข้อมูลการถอดรหัสล่วงหน้า 3 บิตสำหรับแต่ละไบต์ของคำสั่ง) การถอดรหัสล่วงหน้าเมื่อโหลดลงในแคชช่วยให้คุณสามารถย้ายค่าใช้จ่ายในการกำหนดขอบเขตคำสั่งไปนอกช่องถอดรหัสและรักษาอัตราการถอดรหัสให้คงที่โดยไม่คำนึงถึงความยาวและโครงสร้างของคำสั่ง

โปรเซสเซอร์จะโหลดคำสั่งจากแคชเป็นบล็อก ซึ่งคำสั่งจะถูกแยกและส่งไปเพื่อถอดรหัส สถาปัตยกรรมโปรเซสเซอร์ K10 ดึงคำสั่งจากแคชคำสั่ง L1I ในบล็อกขนาด 32 ไบต์ ซึ่งแตกต่างจากโปรเซสเซอร์ K8 และ Intel Core 2 ซึ่งดึงข้อมูลในบล็อกขนาด 16 ไบต์ อัตราการสุ่มตัวอย่าง 16 ไบต์ต่อนาฬิกาช่วยให้ K8 และ Core 2 ส่งคำสั่งห้าคำสั่งโดยมีความยาวเฉลี่ยสูงสุด 5 ไบต์สำหรับการถอดรหัสในแต่ละรอบสัญญาณนาฬิกา อย่างไรก็ตาม ความยาวของคำสั่ง x86 สามารถเข้าถึง 16 ไบต์ และในบางอัลกอริทึม ความยาวของคำสั่งที่อยู่ติดกันหลายคำสั่งในห่วงโซ่อาจเกิน 5 ไบต์ ซึ่งทำให้เป็นไปไม่ได้ที่จะถอดรหัสคำสั่งสามคำสั่งต่อรอบสัญญาณนาฬิกาในกรณีเช่นนี้ (รูปที่ 1)


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


โดยเฉพาะอย่างยิ่ง ความยาวของ SSE2 เป็นคำสั่งง่ายๆ ที่มีตัวถูกดำเนินการลงทะเบียนเพื่อลงทะเบียน (ตัวอย่างเช่น movapd xmm0, xmm1) – คือ 4 ไบต์ อย่างไรก็ตาม เมื่อใช้การดำเนินการที่อยู่หน่วยความจำโดยใช้รีจิสเตอร์ฐานและออฟเซ็ตในคำสั่ง (ตัวอย่างเช่น movapdxmm0,) ความยาวของคำสั่งจะเพิ่มขึ้นเป็น 6–9 ไบต์ ขึ้นอยู่กับออฟเซ็ต ในโหมด 64 บิต เมื่อใช้รีจิสเตอร์เพิ่มเติม คำนำหน้า REX หนึ่งไบต์อื่นจะถูกเพิ่มลงในรหัสคำสั่ง ดังนั้นในโหมด 64 บิต ความยาวของคำสั่ง SSE2 สามารถเข้าถึง 7–10 ไบต์ ความยาวของคำสั่ง SSE1 จะน้อยกว่า 1 ไบต์หากเป็นคำสั่งแบบเวกเตอร์ (นั่นคือ มากกว่าค่า 32 บิตสี่ค่า) แต่คำสั่ง SSE1 แบบสเกลาร์ (มากกว่าหนึ่งตัวถูกดำเนินการ) ยังสามารถมีความยาวได้ถึง 7–10 ไบต์ภายใต้คำสั่งเดียวกัน เงื่อนไข.

การดึงข้อมูล 16 ไบต์ต่อรอบสัญญาณนาฬิกาไม่ใช่ข้อจำกัดในสถานการณ์นี้สำหรับโปรเซสเซอร์ K8 เนื่องจากยังคงไม่สามารถถอดรหัสคำสั่งเวกเตอร์ SSE ในอัตราที่สูงกว่า 3 คำสั่งต่อ 2 รอบสัญญาณนาฬิกา อย่างไรก็ตาม สำหรับสถาปัตยกรรม K10 การสุ่มตัวอย่าง 16 ไบต์อาจกลายเป็น ข้อจำกัด ดังนั้นการขยายความกว้างของการสุ่มตัวอย่างเป็น 32 ไบต์ต่อนาฬิกาจึงเป็นวิธีแก้ปัญหาที่สมเหตุสมผล

อย่างไรก็ตาม โปรเซสเซอร์ Core 2 ดึงคำสั่งเป็นบล็อกขนาด 16 ไบต์ เช่นเดียวกับโปรเซสเซอร์ K8 จึงสามารถถอดรหัสสตรีมคำสั่งได้อย่างมีประสิทธิภาพในอัตรา 4 ต่อรอบสัญญาณนาฬิกาเฉพาะในกรณีที่ความยาวคำสั่งเฉลี่ยไม่เกิน 4 ไบต์ ไม่เช่นนั้น ตัวถอดรหัสจะไม่สามารถประมวลผลได้อย่างมีประสิทธิภาพไม่เพียง แต่ 4 เท่านั้น แต่ยังรวมถึง 3 คำสั่งต่อรอบสัญญาณนาฬิกาด้วย อย่างไรก็ตาม Core 2 มีบัฟเฟอร์ภายในพิเศษขนาด 64 ไบต์ที่เก็บบล็อกขนาด 16 ไบต์สี่บล็อกสุดท้ายที่ร้องขอ การดึงข้อมูลจากบัฟเฟอร์นี้จะดำเนินการที่อัตรา 32 ไบต์ต่อรอบสัญญาณนาฬิกา บัฟเฟอร์นี้ช่วยให้คุณสามารถแคชรอบการทำงานที่สั้น ลบข้อจำกัดเกี่ยวกับอัตราการสุ่มตัวอย่างในวงจรเหล่านั้น และยังบันทึก 1 รอบสัญญาณนาฬิกาในแต่ละการคาดการณ์การเปลี่ยนผ่านไปยังจุดเริ่มต้นของรอบ อย่างไรก็ตาม ลูปต้องมีคำสั่งไม่เกิน 18 คำสั่ง กิ่งที่มีเงื่อนไขไม่เกิน 4 กิ่ง และไม่มีคำสั่งซ้ำ.

การทำนายการเปลี่ยนแปลง

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

การเปลี่ยนทางอ้อมคือการเปลี่ยนผ่านที่ถูกสร้างขึ้นโดยใช้พอยน์เตอร์ซึ่งคำนวณแบบไดนามิกเมื่อรันโค้ดโปรแกรม โดยทั่วไปแล้ว การข้ามทางอ้อมจะถูกแทรกโดยคอมไพเลอร์เข้าไปในโครงสร้างสวิตช์เคส และยังใช้ในการเรียกใช้ฟังก์ชันตามที่อยู่ และการเรียกฟังก์ชันเสมือนในการเขียนโปรแกรมเชิงวัตถุอีกด้วย โปรเซสเซอร์ K8 จะพยายามดึงโค้ดจากที่อยู่สาขาสุดท้ายเสมอ หากที่อยู่มีการเปลี่ยนแปลงไปป์ไลน์จะถูกรีเซ็ต หากที่อยู่การกระโดดถูกแทรกเป็นระยะ โปรเซสเซอร์จะทำข้อผิดพลาดอย่างต่อเนื่อง กลไกในการทำนายการเปลี่ยนแปลงที่อยู่ของการกระโดดทางอ้อมปรากฏขึ้นครั้งแรกในโปรเซสเซอร์ Pentium M การไม่มีกลไกดังกล่าวใน K8 จะลดประสิทธิภาพในโค้ดเชิงวัตถุ

ตามที่คาดไว้ การทำนายสาขาแบบมีเงื่อนไขใน K10 ได้รับการปรับปรุง:

กลไกปรากฏขึ้นสำหรับการทำนายการเปลี่ยนแปลงที่อยู่ของการเปลี่ยนทางอ้อมแบบไดนามิก ซึ่งทำนายจากตารางองค์ประกอบ 512 รายการ
ขนาดของการลงทะเบียนประวัติสากล ซึ่งใช้ในการกำหนดประวัติของลำดับของคำสั่งการข้ามก่อนหน้า เพิ่มขึ้นจาก 8 เป็น 12 บิต
ความลึกของสแต็กการส่งคืนเพิ่มขึ้นจาก 12 เป็น 24 องค์ประกอบ ซึ่งใช้เพื่อระบุที่อยู่ผู้ส่งจากฟังก์ชันอย่างรวดเร็ว เพื่อให้สามารถดึงข้อมูลต่อไปได้โดยไม่ต้องรอคำสั่ง ret เพื่อดึงที่อยู่ผู้ส่งจากสแต็ก

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

การถอดรหัส

บล็อกที่ได้รับจากแคชคำสั่งจะถูกคัดลอกไปยังบัฟเฟอร์การถอดรหัสล่วงหน้า ( ถอดรหัสล่วงหน้า/เลือกบัฟเฟอร์) โดยที่คำสั่งถูกแยกออกจากบล็อก ประเภทของคำสั่งจะถูกกำหนดและส่งไปยังช่องตัวถอดรหัสที่เกี่ยวข้อง คำแนะนำง่ายๆ ที่ถอดรหัสเป็นการดำเนินการมาโครหนึ่ง (เดี่ยว) หรือสอง (สองครั้ง) จะถูกส่งไปยังตัวถอดรหัส "แบบง่าย" ที่เรียกว่า ไดเร็กพาธ- คำแนะนำที่ซับซ้อนซึ่งถอดรหัสเป็นการดำเนินการแมโคร 3 รายการขึ้นไปจะถูกส่งไปยังตัวถอดรหัสเฟิร์มแวร์ที่เรียกว่า เวกเตอร์เส้นทาง.


ข้าว. 2. เครื่องถอดรหัส


แต่ละรอบสัญญาณนาฬิกา สามารถส่งออกการทำงานของแมโคร 3 รายการ (MOP) ออกจากช่องตัวถอดรหัสได้ ตัวถอดรหัส DirectPath สามารถถอดรหัสคำสั่งง่ายๆ 1-MOP ได้ 3 คำสั่งต่อรอบสัญญาณนาฬิกา หรือ 2-MOP หนึ่งคำสั่งและ 1-MOP หนึ่งคำสั่ง หรือคำสั่ง 2-MOP หนึ่งคำสั่งครึ่ง (คำสั่ง 2-MOP สามคำสั่งในสองรอบสัญญาณนาฬิกา) คำสั่งที่ซับซ้อนสามารถถอดรหัสได้ใน MOP มากกว่า 3 รายการ ดังนั้นการถอดรหัสคำสั่งดังกล่าวสามารถดำเนินต่อไปได้หลายรอบสัญญาณนาฬิกา เพื่อหลีกเลี่ยงการสร้างข้อขัดแย้งที่เอาต์พุตของช่องตัวถอดรหัส จึงไม่สามารถส่งคำสั่งที่ง่ายและซับซ้อนใน K8 และ K10 เพื่อถอดรหัสพร้อมกันได้

MOP ประกอบด้วย micro-ops หนึ่งคู่: หนึ่งการดำเนินการระดับย่อยของจำนวนเต็มหรือเลขคณิตจริง และการดำเนินการระดับย่อยของการเข้าถึงหน่วยความจำหนึ่งที่อยู่ การเลือกการดำเนินการระดับย่อยจาก MOP จะดำเนินการโดยผู้กำหนดตารางเวลา ซึ่งจะส่งการดำเนินการเหล่านั้นไปดำเนินการอย่างเป็นอิสระจากกัน

เอาต์พุต MOS จากตัวถอดรหัสในแต่ละรอบสัญญาณนาฬิกาจะถูกรวมเป็นกลุ่ม 3 กลุ่ม เนื่องจากการสลับคำสั่ง DirectPath และ VectorPath หรือความล่าช้าต่างๆ ในการดึงคำสั่งสำหรับการถอดรหัส กลุ่มที่มี 2 หรือเพียง 1 MOS สามารถสร้างขึ้นที่ตัวถอดรหัส เอาท์พุท กลุ่มดังกล่าวเต็มไปด้วย MOP เปล่าสูงสุดสามรายการ และในแบบฟอร์มนี้จะถูกส่งไปดำเนินการ

คำสั่ง Vector SSE, SSE2 และ SSE3 ในโปรเซสเซอร์ K8 แบ่งออกเป็นคู่ของ MOP ซึ่งแยกการประมวลผลครึ่งสูงและต่ำ 64 บิตของการลงทะเบียน SSE 128 บิตบนอุปกรณ์ 64 บิต ซึ่งจะช่วยลดอัตราการถอดรหัสคำสั่งลงครึ่งหนึ่ง และลดจำนวนคำสั่งที่เข้าสู่คิวตัวกำหนดตารางเวลาลงครึ่งหนึ่ง

เนื่องจากบล็อก FPU ในโปรเซสเซอร์ K10 ได้รับการขยายเป็น 128 บิต จึงไม่จำเป็นต้องแยกคำสั่ง vector SSE ออกเป็นสอง MOP คำสั่ง SSE ส่วนใหญ่ซึ่งถอดรหัสใน K8 เป็น DirectPath Double เริ่มถอดรหัสใน 1 MOS เป็น DirectPath Single ใน K10 นอกจากนี้ส่วนหนึ่งของคำสั่ง SSE ซึ่งใน K8 ถูกถอดรหัสผ่านตัวถอดรหัสเฟิร์มแวร์ VectorPath ใน K10 เริ่มถูกถอดรหัสผ่านตัวถอดรหัส DirectPath แบบธรรมดาโดยลดจำนวน MOP ที่สร้างขึ้นเป็น 1 หรือ 2 MOP (ขึ้นอยู่กับการดำเนินการ ).

การถอดรหัสคำสั่งจำนวนเต็มสำหรับการทำงานกับสแต็กก็ทำได้ง่ายขึ้นเช่นกัน รูปแบบคำสั่งสแต็กส่วนใหญ่ที่โดยทั่วไปใช้ในการเรียกฟังก์ชัน CALL-RET และ PUSH-POP ในตอนนี้ก็ถูกถอดรหัสด้วยตัวถอดรหัสธรรมดาให้เป็น MOS เดียวเช่นกัน นอกจากนี้ คำสั่งเหล่านี้ยังใช้รูปแบบพิเศษอีกด้วย เครื่องมือเพิ่มประสิทธิภาพกองซ้อนด้านข้างจะถูกแปลงเป็นสายโซ่อิสระของการปฏิบัติการระดับมหภาคที่สามารถดำเนินการแบบคู่ขนานได้

เครื่องมือเพิ่มประสิทธิภาพกองซ้อนด้านข้าง

ใน K10 บล็อกพิเศษที่เรียกว่า Sideband Stack Optimizer ได้ถูกเพิ่มเข้าไปในวงจรถอดรหัส หลักการทำงานคล้ายกับบล็อก Stack Pointer Tracker ใหม่ที่ใช้ในโปรเซสเซอร์ Core เหตุใดจึงจำเป็น? ชุดคำสั่ง x86 ใช้คำสั่ง CALL, RET, PUSH และ POP เพื่อเรียกใช้ฟังก์ชัน ออกจากฟังก์ชัน ส่งพารามิเตอร์ไปให้ฟังก์ชัน และบันทึกเนื้อหาของรีจิสเตอร์ คำแนะนำทั้งหมดนี้ใช้การลงทะเบียน ESP โดยปริยาย ซึ่งชี้ไปยังตำแหน่งปัจจุบันของสแต็ก คุณสามารถดูว่าคำสั่งเหล่านี้ดำเนินการอย่างไรเมื่อเรียกใช้ฟังก์ชันใน K8 โดยจินตนาการว่าการถอดรหัสเป็นลำดับของการดำเนินการเบื้องต้นที่เทียบเท่ากับการเปลี่ยนสแต็กรีจิสเตอร์และการโหลด/การบันทึก:


ดังที่คุณเห็นจากตัวอย่างนี้ เมื่อเรียกใช้ฟังก์ชัน คำสั่งจะเปลี่ยนการลงทะเบียน ESP ตามลำดับ ดังนั้นแต่ละคำสั่งโดยปริยายจะขึ้นอยู่กับผลลัพธ์ของคำสั่งก่อนหน้า คำสั่งในห่วงโซ่นี้ไม่สามารถเรียงลำดับใหม่ได้ ดังนั้นเนื้อความของฟังก์ชันที่เริ่มต้นด้วยคำสั่ง mov eax, จะไม่สามารถเริ่มดำเนินการได้จนกว่าคำสั่ง PUSH สุดท้ายจะถูกดำเนินการ บล็อก Sideband Stack Optimizer ตรวจสอบสแต็กสำหรับการเปลี่ยนแปลงและแปลงลูกโซ่เป็นแบบอิสระโดยการปรับออฟเซ็ตของแต่ละคำสั่งที่สัมพันธ์กับสแต็กและแทรกการดำเนินการซิงโครไนซ์บนสุดของสแต็ก (sync-MOP) ก่อนคำสั่งที่ใช้สแต็กอย่างชัดเจน ลงทะเบียน. การดำเนินการนี้จะลบข้อจำกัดในการจัดลำดับคำสั่งใหม่ที่ใช้สแต็ก


ทีม mov จริง ๆ,ซึ่งการคำนวณเริ่มต้นในเนื้อความของฟังก์ชันในตัวอย่างนี้ ขึ้นอยู่กับการดำเนินการซิงโครไนซ์ส่วนบนของสแต็กเท่านั้น การดำเนินการเหล่านี้สามารถดำเนินการได้อย่างอิสระโดยขนานกับคำสั่งอื่นๆ ที่อยู่ก่อนหน้า ดังนั้นความเร็วในการส่งพารามิเตอร์และการบันทึกรีจิสเตอร์จึงเพิ่มขึ้น และในขณะเดียวกัน ส่วนเนื้อหาของฟังก์ชันก็สามารถเริ่มโหลดพารามิเตอร์และดำเนินการกับพารามิเตอร์เหล่านั้นได้ก่อนที่จะส่งพารามิเตอร์ทั้งหมดและการบันทึกรีจิสเตอร์จะเสร็จสิ้น

ดังนั้นการเพิ่มอัตราการถอดรหัสคำสั่งสำหรับการทำงานกับสแต็กโดยใช้บล็อก Sideband Stack Optimizer การเพิ่มความลึกของสแต็กส่งคืน และการทำนายสาขาทางอ้อมสลับใน K10 ทำให้ความเร็วในการดำเนินการของโค้ดที่เต็มไปด้วยฟังก์ชันเพิ่มขึ้นอย่างเห็นได้ชัด โทร

ตัวถอดรหัสของโปรเซสเซอร์ K10 จะไม่สามารถถอดรหัส 4 คำสั่งต่อรอบสัญญาณนาฬิกาได้ เนื่องจากตัวถอดรหัส Core 2 สามารถทำงานได้ภายใต้เงื่อนไขที่เอื้ออำนวย แต่จะไม่เป็นปัจจัยจำกัดในการทำงานของโปรแกรม อัตราเฉลี่ยของการดำเนินการคำสั่งแทบไม่เคยถึง 3 คำสั่งต่อรอบสัญญาณนาฬิกา ดังนั้นตัวถอดรหัส K10 จะมีประสิทธิภาพเพียงพอเพื่อให้หน่วยประมวลผลไม่ยืนนิ่งเนื่องจากขาดการดำเนินการในคิว

หน่วยควบคุมคำสั่ง

MOP แฝดสามที่ถอดรหัสแล้วจะไปที่หน่วยควบคุมคำสั่ง (ICU) ซึ่งจัดเก็บ MOP ไว้ในบัฟเฟอร์เรียงลำดับใหม่ (ROB) บัฟเฟอร์การเรียงลำดับใหม่ประกอบด้วย 24 บรรทัดจากสาม MOP MOP ทั้งสามรายการจะถูกบันทึกไว้ในบรรทัดของตัวเอง ดังนั้น ROB จึงอนุญาตให้หน่วยควบคุมตรวจสอบสถานะของ MOP 72 รายการจนกว่าจะเลิกใช้

จากบัฟเฟอร์การเรียงลำดับใหม่ MOP จะถูกส่งไปยังคิวตัวกำหนดเวลาจำนวนเต็มและหน่วยการดำเนินการจริงตามลำดับที่ออกจากตัวถอดรหัส MOP triplets ยังคงถูกจัดเก็บไว้ในบัฟเฟอร์การเรียงลำดับใหม่จนกว่าการดำเนินการเก่าทั้งหมดจะเสร็จสมบูรณ์และละทิ้ง ในระหว่างการเกษียณอายุ ค่าสุดท้ายจะถูกเขียนไปยังทะเบียนสถาปัตยกรรมและหน่วยความจำ การดำเนินการลาออก การลบข้อมูลเกี่ยวกับการดำเนินการดังกล่าวออกจาก ROB และการบันทึกค่าสุดท้ายจะดำเนินการในลำดับซอฟต์แวร์ที่การดำเนินการเข้าสู่บัฟเฟอร์การเรียงลำดับใหม่ นี่เป็นสิ่งจำเป็นเพื่อว่าในกรณีที่มีข้อยกเว้นหรือการหยุดชะงัก ผลลัพธ์ของการดำเนินการภายหลังทั้งหมดที่ดำเนินการแบบไม่เรียงลำดับจะถูกย้อนกลับ

การดำเนินการคำสั่งจำนวนเต็ม

ในโปรเซสเซอร์ K8 และ K10 บล็อกการดำเนินการจำนวนเต็ม ( หน่วยการดำเนินการจำนวนเต็ม) ประกอบด้วยช่องจำนวนเต็มสมมาตรสามช่อง ช่องการประมวลผลแต่ละช่องมีตัวกำหนดเวลาของตัวเองซึ่งมีคิว MOS 8 คิว ชุดตรรกะเลขจำนวนเต็ม (ALU) หน่วยที่อยู่ (AGU) และหน่วยสาขาแบบมีเงื่อนไขชุดเดียวกัน นอกจากนี้ บล็อกการคูณเชื่อมต่อกับแชนเนลการคำนวณ 0 และบล็อกสำหรับการดำเนินการใหม่ LZCNT และ POPCNT (ดูข้อมูลเพิ่มเติมด้านล่าง) เชื่อมต่อกับแชนเนลการคำนวณ 2


ข้าว. 3. บล็อกสำหรับการดำเนินการจำนวนเต็ม


การเลือกคิวสำหรับ MOP แต่ละรายการจะถูกกำหนดโดยตำแหน่งคงที่ของคำสั่งในสามที่เกิดขึ้นที่เอาต์พุตของตัวถอดรหัส การดำเนินการมาโครแต่ละครั้งของทั้งสามจะถูกส่งจากบัฟเฟอร์การเรียงลำดับใหม่สำหรับการดำเนินการตามลำดับ ซึ่งในอีกด้านหนึ่งทำให้การจัดการคำสั่งง่ายขึ้นและในอีกด้านหนึ่งสามารถนำไปสู่การโหลดคิวที่ไม่สมดุลหากห่วงโซ่ของการดำเนินการที่ขึ้นต่อกันนั้นอยู่ในตำแหน่งที่ไม่น่าพอใจ รหัสโปรแกรม (ซึ่งในทางปฏิบัติแทบไม่เคยเกิดขึ้นเลยดังนั้นจึงมีผลเพียงเล็กน้อยต่อประสิทธิภาพ) การคูณและการดำเนินการบิตแบบขยายจะถูกวางโดยตัวถอดรหัสในช่องสามช่องที่ถูกต้องเพื่อให้แน่ใจว่าจะอยู่ในช่องที่ระบุ

ในคิวของตัวกำหนดเวลาช่องทางการคำนวณ MOP ดังที่ได้กล่าวไว้ข้างต้น จะถูกแบ่งออกเป็นการดำเนินการไมโครจำนวนเต็ม และที่อยู่ไมโครการดำเนินการของการเข้าถึงหน่วยความจำ เมื่อข้อมูลพร้อม ตัวกำหนดเวลาสามารถเรียกใช้การดำเนินการจำนวนเต็มหนึ่งรายการจากแต่ละคิวไปยังอุปกรณ์ ALU และการดำเนินการที่อยู่หนึ่งรายการไปยังอุปกรณ์ AGU จำนวนการเข้าถึงหน่วยความจำพร้อมกันถูกจำกัดไว้ที่สองครั้ง ดังนั้น สำหรับแต่ละรอบสัญญาณนาฬิกา การดำเนินการจำนวนเต็ม 3 รายการและการดำเนินการหน่วยความจำ 2 รายการ (การอ่าน/เขียนแบบ 64 บิตในการรวมกันใดๆ ก็ตาม) จึงสามารถดำเนินการได้ การดำเนินการย่อยจาก MOP ทางคณิตศาสตร์ต่างๆ จะถูกส่งไปดำเนินการจากคิวทันทีที่ข้อมูลพร้อมสำหรับการดำเนินการตามลำดับที่ไม่อยู่ในลำดับ หลังจากที่การดำเนินการไมโครเลขคณิตและที่อยู่จาก MOP เสร็จสิ้นแล้ว MOP จะถูกลบออกจากคิวตัวกำหนดตารางเวลา เพื่อเพิ่มพื้นที่ว่างสำหรับการดำเนินการครั้งต่อไป

ในโปรเซสเซอร์ K8 หน่วยความจำ micro-ops จะถูกเลือกตามลำดับซอฟต์แวร์ การดำเนินการเข้าถึงหน่วยความจำที่อยู่ภายหลังในลำดับโปรแกรมจะไม่สามารถทำงานได้ก่อนการดำเนินการก่อนหน้านี้ ซึ่งทำให้ล้มเหลวในการคำนวณที่อยู่สำหรับการดำเนินการที่อยู่ก่อนหน้าเพื่อบล็อกการดำเนินการที่อยู่ต่อมาทั้งหมด แม้ว่าตัวถูกดำเนินการทั้งหมดสำหรับการดำเนินการในภายหลังจะพร้อมก็ตาม

ตัวอย่างเช่น:

เพิ่ม ebx, ecx
mov eax – การคำนวณที่อยู่ที่รวดเร็ว
mov ecx – ที่อยู่ขึ้นอยู่กับผลลัพธ์ของคำสั่งก่อนหน้า
mov edx - คำสั่งนี้จะไม่ทำงานจนกว่าจะคำนวณที่อยู่ของคำสั่งก่อนหน้าทั้งหมด


สิ่งนี้สามารถนำไปสู่การลงโทษด้านประสิทธิภาพและเป็นหนึ่งในปัจจัยจำกัดในโปรเซสเซอร์ K8 เนื่องจากในบางโค้ด K8 แม้จะมีความสามารถในการออกคำสั่งการอ่านสองคำสั่งต่อรอบสัญญาณนาฬิกา แต่ก็ดำเนินการคำสั่งการเข้าถึงหน่วยความจำอย่างมีประสิทธิภาพน้อยกว่า โปรเซสเซอร์ Core 2 รันหนึ่งคำสั่งอ่านต่อรอบสัญญาณนาฬิกา แต่ในขณะเดียวกันก็มีกลไกสำหรับการดำเนินการคำสั่งอ่านที่ไม่เป็นไปตามคำสั่งแบบเก็งกำไร โดยข้ามคำสั่งอ่านและเขียนก่อนหน้า

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

น่าเสียดายที่โปรเซสเซอร์ K10 ยังไม่ทราบวิธีการโหลดแบบเก็งกำไรโดยข้ามการเขียนไปยังที่อยู่ที่ไม่รู้จักเช่นเดียวกับที่โปรเซสเซอร์ Core 2 ทำ แม้ว่าการเก็งกำไรดังกล่าวอาจนำไปสู่การปรับ แต่ในความเป็นจริงค่าปรับเหล่านี้หาได้ยากในโค้ดโปรแกรม (ประมาณ 5 % กรณี) ดังนั้นการโหลดแบบเก็งกำไรจึงสมเหตุสมผลจากมุมมองของประสิทธิภาพ

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

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

การดำเนินการตามคำสั่งจริง

ในโปรเซสเซอร์ K8 และ K10 ตัวกำหนดเวลาหน่วยจุดลอยตัว (FPU) จะแยกจากตัวกำหนดเวลาคำสั่งจำนวนเต็ม และมีการจัดระเบียบแตกต่างกันเล็กน้อย บัฟเฟอร์ตัวกำหนดเวลาสามารถรองรับ MOP 3 กลุ่มได้สูงสุด 12 กลุ่ม (การดำเนินการจริง 36 รายการตามทฤษฎี) บล็อกเลขคณิตแบบลอยตัวประกอบด้วยอุปกรณ์ที่แตกต่างกัน 3 แบบ ซึ่งต่างจากบล็อกสำหรับดำเนินการคำสั่งจำนวนเต็มด้วยช่องคำนวณแบบสมมาตร ได้แก่ FADD สำหรับการบวกจริง FMUL สำหรับการคูณจริง และ FMISC (หรือ FSTORE) สำหรับคำสั่งการจัดเก็บหน่วยความจำและการดำเนินการแปลงเสริม ดังนั้นจึงไม่มี บัฟเฟอร์ตัวกำหนดเวลาผูกตำแหน่งของ MOP ในกลุ่มคำสั่งกับอุปกรณ์คอมพิวเตอร์เฉพาะ (รูปที่ 4)



ข้าว. 4. หน่วยดำเนินการจุดลอยตัว


แต่ละรอบสัญญาณนาฬิกา K8 และ K10 สามารถดำเนินการได้หนึ่งการดำเนินการในอุปกรณ์เลขคณิตจริงแต่ละตัว อุปกรณ์จุดลอยตัวของโปรเซสเซอร์ K8 เป็นแบบ 80 บิต คำสั่ง Vector 128 บิต SSE จะถูกแบ่งในขั้นตอนการถอดรหัสออกเป็น MOP สองชุด ซึ่งดำเนินการกับครึ่งหนึ่งของ 64 บิตของตัวถูกดำเนินการ 128 บิต และดำเนินการตามลำดับในรอบสัญญาณนาฬิกาที่ต่างกัน สิ่งนี้ไม่เพียงจำกัดอัตราการดำเนินการของคำสั่งเวกเตอร์ แต่ยังลดปริมาตรประสิทธิผลของบัฟเฟอร์ตัวกำหนดตารางเวลา FPU ลงเกือบครึ่งหนึ่ง และส่งผลให้ความลึกของการดำเนินการคำสั่งที่ไม่อยู่ในลำดับอีกด้วย

ในโปรเซสเซอร์ K10 ความกว้างของอุปกรณ์ FPU เพิ่มขึ้นเป็น 128 บิต K10 ประมวลผลโอเปอเรเตอร์เวกเตอร์ 128 บิตทั้งหมดในการดำเนินการเดียว ซึ่งเพิ่มความเร็วการดำเนินการตามทฤษฎีของคำสั่ง vector SSE เป็นสองเท่า เมื่อเทียบกับ K8 นอกจากนี้ การลดจำนวน MOP ลงครึ่งหนึ่ง ความยาวคิวที่มีประสิทธิภาพของตัวกำหนดตารางเวลาจะเพิ่มขึ้น ซึ่งช่วยให้สามารถดำเนินการนอกคำสั่งได้ลึกยิ่งขึ้น

ในโปรเซสเซอร์ K8 คำสั่งการบูต SSE จะดำเนินการโดยใช้อุปกรณ์ FSTORE ซึ่งในอีกด้านหนึ่งไม่อนุญาตให้ดำเนินการคำสั่งอื่น ๆ ที่อ้างสิทธิ์ในอุปกรณ์นี้พร้อมกันและในทางกลับกัน จำกัด จำนวนคำสั่งการบูตที่เรียกใช้พร้อมกันที่ หนึ่ง. การอ่านแบบขนานสองครั้งจากหน่วยความจำใน K8 สามารถทำได้ก็ต่อเมื่อคำสั่งใดคำสั่งหนึ่งเป็นคำสั่งที่รวมการเข้าถึงหน่วยความจำและการดำเนินการข้อมูล (ที่เรียกว่าคำสั่ง Load-Execute) ตัวอย่างเช่น เพิ่ม xmm1,.

โปรเซสเซอร์ K10 ได้ทำการปรับปรุงที่สำคัญหลายประการในกลไกการดำเนินการคำสั่งการบูต SSE

ประการแรก คำสั่งโหลดจะไม่ใช้ทรัพยากร FPU อีกต่อไป ดังนั้นพอร์ต FSTORE จึงถูกปล่อยให้เป็นอิสระในการรันคำสั่งอื่นๆ และคำสั่งโหลดสามารถรันได้ 2 ครั้งต่อรอบสัญญาณนาฬิกา

ประการที่สอง ในกรณีที่ข้อมูลในหน่วยความจำถูกจัดแนวบนขอบเขต 16 ไบต์ คำแนะนำในการโหลดข้อมูล MOVU** ที่ไม่ได้จัดแนว ขณะนี้ทำงานได้อย่างมีประสิทธิภาพเท่ากับคำแนะนำในการโหลดข้อมูล MOVA** ที่จัดชิดแล้ว ดังนั้น สำหรับโปรเซสเซอร์ K10 การใช้คำสั่ง MOVA** จึงไม่มีประโยชน์ใดๆ อีกต่อไป

ประการที่สาม ในโปรเซสเซอร์ K10 ขณะนี้อนุญาตให้ใช้โหลดที่ไม่สอดคล้องกันสำหรับคำสั่ง Load-Execute ที่รวมโหลดเข้ากับการดำเนินการข้อมูล โดยทั่วไป หากไม่แน่ใจว่าข้อมูลในหน่วยความจำสอดคล้องกัน คอมไพลเลอร์ (หรือโปรแกรมเมอร์) จะใช้คำสั่ง MOVU** เพื่ออ่านข้อมูลลงในรีจิสเตอร์ จากนั้นจึงดำเนินการกับรีจิสเตอร์ การใช้โหลดที่ไม่สอดคล้องโดยตรงกับคำสั่ง Load-Execute สามารถลดจำนวนคำสั่งโหลดแยกกันในโค้ดโปรแกรมของคุณได้อย่างมาก และด้วยเหตุนี้จึงปรับปรุงประสิทธิภาพด้วย การสนับสนุนคุณลักษณะนี้ควรมีอยู่ในคอมไพเลอร์ โดยทั่วไป ตามข้อกำหนด SSE ของ Intel คำสั่ง Load-Execute ที่ที่อยู่ซึ่งไม่สอดคล้องกับขอบเขตขนาด 16 ไบต์ควรส่งผลให้เกิดข้อยกเว้น เพื่อรักษาการปฏิบัติตามข้อกำหนด จะต้องเปิดใช้งานการอนุญาตให้โหลดที่ไม่สอดคล้องกันในคำสั่ง Load-Execute โดยการตั้งค่าสถานะพิเศษโดยซอฟต์แวร์ที่ออกแบบและคอมไพล์โดยคำนึงถึงความสามารถของโปรเซสเซอร์ใหม่

ประการที่สี่ บัสการอ่านข้อมูลสองตัวจากแคชระดับแรกในโปรเซสเซอร์ K10 ได้รับการขยายเป็น 128 บิต ซึ่งช่วยให้โปรเซสเซอร์สามารถอ่านข้อมูลขนาด 128 บิตได้สองครั้งทุกรอบสัญญาณนาฬิกา นี่เป็นคุณลักษณะที่สำคัญมากของสถาปัตยกรรม เนื่องจากการประมวลผลสองคำสั่งแบบขนานต้องใช้ตัวถูกดำเนินการ 4 ตัว (2 ตัวต่อคำสั่ง) และในอัลกอริธึมการประมวลผลข้อมูลแบบเธรดจำนวนหนึ่ง ตัวถูกดำเนินการสองในสี่ตัวมักจะอ่านจาก RAM ในทางตรงกันข้าม บัสการเขียนสองตัวของ K10 ยังคงเป็น 64 บิต และการเขียนหน่วยความจำ 128 บิตจะถูกแบ่งออกเป็นแพ็กเก็ต 64 บิตสองชุด ดังนั้น โปรเซสเซอร์สามารถทำการเขียนแบบ 128 บิตได้เพียงครั้งเดียว หรืออ่านแบบ 128 บิตสองครั้ง หรืออ่านแบบ 128 บิตหนึ่งครั้งและเขียนแบบ 64 บิตหนึ่งครั้งในแต่ละรอบสัญญาณนาฬิกา อย่างไรก็ตาม เนื่องจากจำนวนการอ่านโดยปกติจะมีอย่างน้อยสองเท่าของจำนวนการเขียน ขีดจำกัดการเขียนไม่ควรส่งผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพของโปรเซสเซอร์เมื่อประมวลผลข้อมูล 128 บิต

ขณะนี้คำสั่งคัดลอกข้อมูลการลงทะเบียนเพื่อลงทะเบียน MOV*** 128 บิตที่ห้าสามารถดำเนินการบนอุปกรณ์ FPU ใดก็ได้จากทั้งหมด 3 เครื่อง ไม่ใช่แค่ FADD และ FMUL เท่านั้น ซึ่งยังช่วยเพิ่มพื้นที่บล็อก FADD และ FMUL สำหรับการดำเนินการตามเป้าหมายอีกด้วย

ดังที่เราเห็นหน่วย FPU ของโปรเซสเซอร์ K10 มีความยืดหยุ่นมากขึ้นอย่างเห็นได้ชัด มีคุณลักษณะเฉพาะที่ยังไม่มีให้บริการบนโปรเซสเซอร์ Intel เช่น การโหลดแบบไม่สอดคล้องที่มีประสิทธิภาพ รวมถึงคำสั่ง Load-Execute และการอ่าน 128 บิตสองครั้งต่อนาฬิกา ต่างจาก Core 2 ตรงที่ตัวกำหนดเวลาจริงและจำนวนเต็มใช้คิวแยกกัน ซึ่งช่วยหลีกเลี่ยงการดำเนินการที่ขัดแย้งกันบนพอร์ตการดำเนินการเดียวกัน อย่างไรก็ตาม K10 ยังคงแชร์อุปกรณ์ FMISC (FSTORE) สำหรับการดำเนินการจัดเก็บ SSE กับคำสั่งการแปลงข้อมูลบางคำสั่ง ซึ่งในบางกรณีอาจส่งผลต่อความเร็วในการดำเนินการของการดำเนินการ

โดยทั่วไป หน่วย FPU ใน K10 สัญญาว่าจะมีประสิทธิภาพมาก โดยเหนือกว่าหน่วย Core 2 FPU ในพารามิเตอร์จำนวนหนึ่ง (เช่น ความสามารถในการอ่าน 128 บิตสองครั้งต่อรอบสัญญาณนาฬิกา และการโหลดแบบไม่สอดคล้องกันที่มีประสิทธิภาพ)

ระบบย่อยหน่วยความจำ

โหลด/บันทึกอุปกรณ์

ในโปรเซสเซอร์ K8 หลังจากคำนวณที่อยู่การเข้าถึงหน่วยความจำบน AGU แล้ว การดำเนินการโหลดและจัดเก็บจะถูกส่งไปยัง LSU (หน่วยโหลด/จัดเก็บ) ซึ่งเป็นอุปกรณ์โหลด/บันทึก LSU มีสองคิว LS1 และ LS2 ขั้นแรก การดำเนินการโหลดและจัดเก็บจะเข้าสู่คิว LS1 ซึ่งมี 12 องค์ประกอบลึก จากคิว LS1 การเข้าถึงแคชระดับแรกจะทำตามลำดับซอฟต์แวร์ สองการดำเนินการต่อรอบ ในกรณีที่แคชหายไป การดำเนินการจะถูกย้ายไปยังคิววินาที LS2 แบบลึก 32 องค์ประกอบ ซึ่งเป็นจุดที่มีการเข้าถึงแคช L2 และ RAM

มีการเปลี่ยนแปลงกับโปรเซสเซอร์ K10 ที่ LSU ตอนนี้เฉพาะการดำเนินการโหลดเท่านั้นที่จะไปที่คิว LS1 และการดำเนินการบันทึกจะถูกส่งไปยังคิว LS2 ขณะนี้การดำเนินการโหลดจาก LS1 สามารถดำเนินการแบบไม่เรียงลำดับได้ โดยคำนึงถึงที่อยู่ของการดำเนินการบันทึกในคิว LS2 การดำเนินการบันทึกแบบ 128 บิต ตามที่กล่าวไว้ข้างต้น ได้รับการประมวลผลในโปรเซสเซอร์ K10 เป็น 64 บิตสองตัว ดังนั้นจึงครอบครองสองตำแหน่งในคิว LS2

แคชระดับ 1

แคชระดับแรกในโปรเซสเซอร์ K8 และ K10 แยกจากกัน โดยแต่ละแคชขนาด 64 KB สำหรับคำสั่ง (L1I) และข้อมูล (L1D) การเชื่อมโยงแคชคือสอง ขนาดบรรทัดคือ 64 ไบต์ การเชื่อมโยงที่ต่ำอาจนำไปสู่การชนกันบ่อยครั้งระหว่างแถวที่แข่งขันกันเพื่อชุดเดียวกัน ซึ่งอาจเพิ่มจำนวนการพลาดแคชและส่งผลเสียต่อประสิทธิภาพการทำงาน การเชื่อมโยงต่ำได้รับการชดเชยบางส่วนด้วยแคช L1 ที่ค่อนข้างใหญ่ ข้อได้เปรียบที่สำคัญของแคช L1D คือความสามารถแบบสองพอร์ต โดยสามารถรองรับคำสั่งอ่านและ/หรือเขียนได้สองคำสั่งต่อหนึ่งนาฬิกาในการรวมกันแบบใดก็ได้

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

แคชระดับ 2

ในโปรเซสเซอร์แบบดูอัลและควอดคอร์ของสถาปัตยกรรม K8 และ K10 แต่ละคอร์จะมีแคช L2 แยกต่างหาก ขนาดของแคชระดับที่สองใน K10 ยังคงเท่ากับ 512 KB ในแต่ละคอร์ การเชื่อมโยงคือ 16 แคชระดับที่สองที่แยกจากกันมีข้อดีและข้อเสียเมื่อเปรียบเทียบกับแคชระดับที่สองที่ใช้ร่วมกันในโปรเซสเซอร์ Core 2 ของข้อขัดแย้งและการแข่งขันต่อแคชภายใต้การโหลดจำนวนมากพร้อมกันของคอร์หลายคอร์ ข้อเสียคือขนาดแคชต่อคอร์มีขนาดเล็กลงระหว่างการทำงานอย่างเข้มข้นในหนึ่งงาน

แคช L2 มีองค์กรจัดเก็บข้อมูลพิเศษ: ข้อมูลในแคชระดับที่หนึ่งและสองจะไม่ซ้ำกัน แคชของระดับที่หนึ่งและสองจะแลกเปลี่ยนข้อมูลผ่านบัสแบบทิศทางเดียวสองตัว - อันหนึ่งสำหรับรับข้อมูล และอีกอันสำหรับส่ง ในโปรเซสเซอร์สถาปัตยกรรม K8 ความกว้างของแต่ละบัสคือ 64 บิต (8 ไบต์) (รูปที่ 5a) เนื่องจากองค์กรนี้ โปรเซสเซอร์จึงได้รับข้อมูลที่ร้องขอใน L2 ในอัตราต่ำที่ 8 ไบต์ต่อรอบสัญญาณนาฬิกา นั่นคือการถ่ายโอนบรรทัดขนาด 64 ไบต์จะใช้เวลา 8 รอบสัญญาณนาฬิกา ซึ่งเพิ่มเวลาแฝงของข้อมูลรับหลักอย่างมาก โดยเฉพาะอย่างยิ่งเมื่อเข้าถึงบรรทัดแคช L2 สองบรรทัดขึ้นไปพร้อมกัน

ตามข้อมูลที่ยังไม่ได้รับการยืนยันอย่างสมบูรณ์ในโปรเซสเซอร์ K10 ความกว้างบิตของบัสรับและส่งเพิ่มขึ้น 2 เท่านั่นคือสูงสุด 128 บิตต่ออัน (รูปที่ 5b) วิธีนี้จะช่วยลดเวลาแฝงในการเข้าถึงแคชลงอย่างมากเมื่อร้องขอแถวตั้งแต่สองแถวขึ้นไปในเวลาเดียวกัน



แคชระดับ 3

เพื่อชดเชยปริมาณแคชระดับที่สองแต่ละรายการที่ไม่เพียงพอ ขณะนี้โปรเซสเซอร์ K10 มีแคช L3 ระดับที่สาม 2 MB ที่ใช้ร่วมกันกับคอร์ทั้งหมดโดยมีความสัมพันธ์กันที่ 32 แคช L3 มีองค์กรพิเศษที่ปรับเปลี่ยนได้: เก็บข้อมูลทั้งสอง ถูกขับออกจากแคช L2 ของคอร์ทั้งหมด และข้อมูลที่แชร์ที่ใช้โดยหลายคอร์ เมื่อได้รับคำขอจากคอร์เพื่ออ่านบรรทัด จะมีการตรวจสอบ: ถ้าบรรทัดนั้นถูกใช้โดยคอร์เดียวเท่านั้น มันจะถูกลบออกจาก L3 เพื่อเพิ่มพื้นที่ว่างสำหรับบรรทัดที่จะขับออกจากแคช L2 ของ ขอหลัก หากเคอร์เนลอื่นใช้บรรทัดนั้นด้วย บรรทัดนั้นจะยังคงอยู่ในแคช อย่างไรก็ตาม เพื่อให้มีที่ว่างสำหรับบรรทัดที่ถูกไล่ออกจากแคช L2 บรรทัดอื่นที่เก่ากว่าจะถูกลบออกจากแคช L3

แคช L3 ควรช่วยเพิ่มความเร็วของการสื่อสารระหว่างคอร์ด้วย ดังที่เราพบก่อนหน้านี้ การแลกเปลี่ยนข้อมูลระหว่างคอร์ในโปรเซสเซอร์ Athlon 64 สมัยใหม่เกิดขึ้นผ่านบัสหน่วยความจำ ซึ่งจะช่วยลดความเร็วในการเข้าถึงข้อมูลที่แชร์และแก้ไขได้อย่างมาก ตามวัสดุของ AMD ในโปรเซสเซอร์ Quad-Core ของสถาปัตยกรรม K10 การแลกเปลี่ยนข้อมูลระหว่างคอร์สามารถเกิดขึ้นได้ผ่านแคช L3 เมื่อได้รับการร้องขอจากคอร์อื่น คอร์ที่จัดเก็บข้อมูลที่ถูกแก้ไขจะคัดลอกไปยัง L3 จากที่คอร์ที่ร้องขอจะอ่านจากที่นั้น ความเร็วในการเข้าถึงข้อมูลที่เปลี่ยนแปลงในแคชของเคอร์เนลอื่นควรเพิ่มขึ้นอย่างมาก เมื่อมีโอกาสเราจะไปดูแน่นอน :)


ข้าว. 6. การถ่ายโอนข้อมูลระหว่างคอร์ในโปรเซสเซอร์ K10


เวลาแฝงของแคช L3 จะสูงกว่าเวลาแฝงของแคช L2 อย่างเห็นได้ชัด แต่วัสดุของ AMD บอกว่ามันจะเปลี่ยนแปลงไปตามโหลด - ในกรณีที่ไม่มีภาระหนัก เวลาแฝงจะดีกว่า โดยมีภาระสูง อัตราจะเพิ่มขึ้น สิ่งที่อยู่เบื้องหลังสิ่งนี้ยังคงต้องได้รับการตรวจสอบ

ทีแอลบี

นอกเหนือจากหน่วยความจำแคชสำหรับคำสั่งและข้อมูลแล้ว โปรเซสเซอร์ยังมีหน่วยความจำแคชอีกประเภทหนึ่ง - Translation-lookaside buffer (TLB) ใช้เพื่อจัดเก็บการติดต่อระหว่างที่อยู่เพจเสมือนและฟิสิคัลที่ได้รับจากตารางการแปลเพจ จำนวนบัฟเฟอร์การแปลจะกำหนดจำนวนเพจหน่วยความจำที่สามารถใช้ได้พร้อมกันโดยไม่ต้องแปลงตารางราคาแพงเพิ่มเติม นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับแอปพลิเคชันที่ประมวลผลข้อมูลหน่วยความจำตามลำดับแบบสุ่ม ซึ่งมีการเข้าถึงข้อมูลในหน้าต่างๆ อย่างต่อเนื่อง โปรเซสเซอร์ K10 ได้เพิ่มจำนวนบัฟเฟอร์การแปลอย่างมาก เพื่อความสะดวกในการรับรู้จึงสรุปเป็นตาราง

ตารางที่ 1 – ความจุ TLB ของโปรเซสเซอร์ K8 และ K10


ดังที่เห็นจากตาราง จำนวนบัฟเฟอร์ที่ใช้ในการแปลที่อยู่ของเพจขนาด 2 MB เพิ่มขึ้นอย่างมาก และยังรองรับเพจขนาดใหญ่ขนาด 1 GB อีกด้วย ซึ่งจะเป็นประโยชน์สำหรับเซิร์ฟเวอร์ที่ประมวลผลข้อมูลจำนวนมาก ด้วยการสนับสนุนจากระบบปฏิบัติการ แอปพลิเคชันที่ใช้เพจขนาดใหญ่ 2 MB และ 1 GB จะได้รับประโยชน์จากประสิทธิภาพที่เพิ่มขึ้น

ตัวควบคุมหน่วยความจำ

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

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

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

ประการที่สาม ตัวควบคุมหน่วยความจำสามารถวิเคราะห์ลำดับคำขอและทำการดึงข้อมูลล่วงหน้าได้

ดึงข้อมูลล่วงหน้า

การดึงข้อมูลล่วงหน้าไม่ใช่จุดแข็งของโปรเซสเซอร์ K8 ตัวควบคุมหน่วยความจำที่มีความหน่วงต่ำในตัวทำให้โปรเซสเซอร์ AMD สามารถส่งมอบประสิทธิภาพของหน่วยความจำที่ดีมาเป็นเวลานาน อย่างไรก็ตาม เมื่อทำงานร่วมกับหน่วยความจำ DDR2 ใหม่ โปรเซสเซอร์ K8 ไม่ได้แสดงประสิทธิภาพสูง ต่างจากโปรเซสเซอร์ Core 2 ซึ่งมีระบบดึงข้อมูลล่วงหน้าที่ทรงพลัง โปรเซสเซอร์ K8 มีหน่วยดึงข้อมูลล่วงหน้าสองหน่วย - หนึ่งหน่วยสำหรับโค้ดและอีกหน่วยสำหรับข้อมูล หน่วยดึงข้อมูลล่วงหน้าจะทำการดึงข้อมูลล่วงหน้าลงในแคชระดับที่สองโดยใช้ลำดับแบบง่าย

การดึงข้อมูลล่วงหน้าได้รับการปรับปรุงใน K10

ขั้นแรก K10 จะดึงข้อมูลล่วงหน้าโดยตรงไปยังแคช L1 ซึ่งช่วยให้สามารถซ่อนเวลาแฝงของแคช L2 เมื่อเข้าถึงข้อมูล แม้ว่าสิ่งนี้จะเพิ่มโอกาสที่แคช L1 จะถูกอุดตันด้วยข้อมูลที่ไม่จำเป็น โดยเฉพาะอย่างยิ่งเมื่อมีความเชื่อมโยงของแคชต่ำ อย่างไรก็ตาม จากข้อมูลของ AMD พบว่ามันให้ผลตอบแทนและปรับปรุงประสิทธิภาพ

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

ประการที่สาม มีการเพิ่มหน่วยการดึงข้อมูลล่วงหน้าแยกต่างหากลงในตัวควบคุมหน่วยความจำโดยตรง ตัวควบคุมหน่วยความจำจะวิเคราะห์ลำดับคำขอจากคอร์และโหลดข้อมูลลงในบัฟเฟอร์การเขียน ทำให้ใช้งานบัสหน่วยความจำได้อย่างเหมาะสมที่สุด การจัดเก็บบรรทัดการดึงข้อมูลล่วงหน้าในบัฟเฟอร์การเขียนช่วยให้คุณหลีกเลี่ยงการอุดตันหน่วยความจำแคชและในขณะเดียวกันก็ช่วยลดเวลาแฝงในการเข้าถึงข้อมูลได้อย่างมาก

ด้วยเหตุนี้เราจึงเห็นว่าระบบย่อยหน่วยความจำในโปรเซสเซอร์ K10 มีการเปลี่ยนแปลงไปในทางที่ดีขึ้น แต่ควรสังเกตด้วยว่าในลักษณะหลายประการอาจมีความด้อยกว่าระบบย่อยหน่วยความจำในโปรเซสเซอร์ Intel นี่คือการขาดการเก็งกำไรโดยข้ามการเขียนไปยังที่อยู่ที่ยังไม่ทราบ การเชื่อมโยงที่ต่ำกว่าของแคช L1D บัสที่แคบกว่า (ในแง่ของอัตราการถ่ายโอนข้อมูล) ระหว่างแคช L1 และ L2 ปริมาณ L2 ที่น้อยกว่า และการดึงข้อมูลล่วงหน้าที่ง่ายกว่า แม้จะมีการปรับปรุง แต่การดึงข้อมูลล่วงหน้าของ Core 2 อาจมีประสิทธิภาพมากกว่า K10 เช่น อย่างหลัง ไม่มีการดึงข้อมูลที่อยู่คำสั่งล่วงหน้าเพื่อติดตามพฤติกรรมของคำสั่งแต่ละรายการ รวมถึงการดึงข้อมูลล่วงหน้า L2-to-L1 เพื่อปกปิดเวลาแฝง L2 ได้อย่างมีประสิทธิภาพ ปัจจัยเหล่านี้อาจส่งผลกระทบต่อแอพพลิเคชั่นที่แตกต่างกัน แต่ในบางกรณีอาจส่งผลให้โปรเซสเซอร์ Intel มีประสิทธิภาพที่เหนือกว่า

มาดูกันว่าสถาปัตยกรรม K10 มีนวัตกรรมอื่นๆ อะไรบ้าง

ทีมใหม่

ขณะนี้โปรเซสเซอร์ K10 รองรับคำสั่งใหม่หลายคำสั่งที่ขยายขีดความสามารถ

1. คำสั่งสำหรับการดำเนินการบิตเพิ่มเติมบนรีจิสเตอร์วัตถุประสงค์ทั่วไป:

LZCNT – นับศูนย์นำหน้า – นับจำนวนบิตศูนย์นำหน้าในตัวถูกดำเนินการ
POPCNT – จำนวนประชากรบิต – นับจำนวนหนึ่งบิตในตัวถูกดำเนินการ

2. คำแนะนำการประมวลผลการลงทะเบียน SSE เรียกว่า SSE4a:

EXTRQ – แยกจำนวนบิตที่ระบุจากตำแหน่งที่ระบุในส่วน 64 บิตต่ำของการลงทะเบียน SSE
INSERTQ – แทรกจำนวนบิตที่ระบุลงในตำแหน่งที่ระบุในส่วน 64 บิตต่ำของการลงทะเบียน SSE
MOVNTSS, MOVNTSD - คำสั่งสำหรับการสตรีม (โดยไม่ต้องใช้หน่วยความจำแคช) การจัดเก็บค่าจริงสเกลาร์

ส่วนขยายชุดคำสั่งที่เรียกว่า SSE4a นั้นมีความเป็นอิสระ โดยจะไม่ทับซ้อนกันในทางใดทางหนึ่งกับส่วนขยายใหม่ของ Intel ที่เรียกว่า SSE4.1 และ SSE4.2

การจำลองเสมือน

AMD ยังคงปรับปรุงเทคโนโลยีเวอร์ช่วลไลเซชั่นอย่างต่อเนื่อง ซึ่งใช้ในการรันระบบปฏิบัติการหลายระบบบนคอมพิวเตอร์เครื่องเดียว การปรับปรุงที่สำคัญที่สุดอย่างหนึ่งในการจำลองเสมือนคือการใช้ตารางเพจแบบซ้อน (Nested Paging) ในโหมดนี้ ตารางเพจเครื่องเสมือนจะซ้อนกันภายในตารางเพจไฮเปอร์ไวเซอร์ส่วนกลาง ในกรณีที่ไม่มีการอ้างอิงเพจใน TLB การดำเนินการแปลงตารางจะดำเนินการโดยอัตโนมัติโดยโปรเซสเซอร์ ซึ่งแตกต่างจาก Shadow Paging ซึ่งต้องใช้ทรัพยากรจำนวนมากในการจัดการการแปลงตารางเครื่องเสมือน


ตามรายงานบางฉบับ ต้องขอบคุณการใช้ตารางเพจแบบซ้อน ความเร็วของแอปพลิเคชันในเครื่องเสมือนเพิ่มขึ้นสูงสุด 40% เมื่อเทียบกับความเร็วของการดำเนินการแอปพลิเคชันเหล่านี้โดยใช้ตารางเพจ "เงา"

การจัดการพลังงานและความถี่

โปรเซสเซอร์ K10 ใหม่แนะนำการจัดการพลังงานและแผนการจัดการความถี่คอร์ใหม่ แต่ละคอร์สามารถทำงานได้อย่างอิสระจากคอร์อื่นๆ ด้วยความถี่ของตัวเอง ซึ่งจะเปลี่ยนแปลงแบบไดนามิกขึ้นอยู่กับโหลดของแต่ละคอร์


ข้าว. 8. การควบคุมความถี่อิสระ
แกนประมวลผลในโปรเซสเซอร์ K10


ในขณะเดียวกัน ยังไม่ทราบแน่ชัดว่าความถี่ในการทำงานของแคช L3 ที่ใช้ร่วมกันกับคอร์ทั้งหมดจะเป็นอย่างไร แรงดันไฟฟ้าบนคอร์ทั้งหมดจะเท่ากันและถูกกำหนดโดยคอร์ที่มีโหลดมากที่สุด ตัวควบคุมหน่วยความจำจะควบคุมแรงดันไฟฟ้าโดยไม่ขึ้นอยู่กับแกนและสามารถลดแรงดันไฟฟ้าลงได้เมื่อไม่มีภาระหนัก

ข้อสรุป

ข้อมูลทั้งหมดเกี่ยวกับโปรเซสเซอร์ AMD ใหม่ยังไม่ได้เผยแพร่ ดังนั้นความประหลาดใจอาจยังรอเราอยู่ อย่างไรก็ตามสามารถสรุปข้อสรุปหลักเกี่ยวกับสถาปัตยกรรมไมโครได้แล้ว โปรเซสเซอร์ AMD ใหม่ ต้องขอบคุณการปรับปรุงคอร์จำนวนมาก ทำให้ประสิทธิภาพเพิ่มขึ้นอย่างก้าวกระโดดเหนือรุ่นก่อน โดยเฉพาะอย่างยิ่งในแอพพลิเคชั่นแบบเรียลไทม์ ในแอพพลิเคชั่นที่หลากหลาย โปรเซสเซอร์จะสามารถแข่งขันด้วยเงื่อนไขที่เท่าเทียมกันกับโปรเซสเซอร์ Intel ความถี่เดียวและเอาชนะพวกมันได้ ประสิทธิภาพที่เพิ่มขึ้นสามารถทำได้โดยแอปพลิเคชันที่เขียนขึ้นเพื่อใช้ประโยชน์จากความสามารถเฉพาะตัวใหม่ๆ ของโปรเซสเซอร์ เช่น การโหลดที่ไม่สอดคล้องกันอย่างมีประสิทธิภาพและการสนับสนุนเพจขนาดใหญ่ 1GB อย่างไรก็ตาม โปรเซสเซอร์ยังมีจุดอ่อนเมื่อเปรียบเทียบกับโปรเซสเซอร์ Intel ซึ่งเป็นระบบย่อยแคชและการดึงข้อมูลล่วงหน้าซึ่งอาจส่งผลเสียต่อประสิทธิภาพในแอปพลิเคชันจำนวนหนึ่ง แต่ข้อเสียเปรียบที่สำคัญที่สุดในการต่อสู้เพื่อให้ได้ผลงานสูงสุดในช่วงเริ่มต้นมักจะเป็นความถี่สูงที่ไม่เพียงพอ ขอให้เราหวังว่า AMD จะพัฒนาความถี่ใหม่อย่างรวดเร็ว และติดตามดูว่าทั้งสองบริษัทยังคงต่อสู้และปรับปรุงโปรเซสเซอร์ต่อไปอย่างไรในการต่อสู้เพื่อพวกเราผู้บริโภค

ผู้เขียนแสดงความขอบคุณต่อ Maria Malich และ Sergei Romanov หรือที่รู้จักในชื่อเกรย์สำหรับความช่วยเหลือในการจัดทำบทความ.

การกล่าวถึงสถาปัตยกรรมไมโครรุ่นต่อไปครั้งแรกปรากฏในปี 2546 บนฟอรัม ฟอรัมไมโครโปรเซสเซอร์ 2546- มีข้อสังเกตว่าสถาปัตยกรรมไมโครใหม่จะรวมโปรเซสเซอร์แบบมัลติคอร์ที่จะทำงานที่ความเร็วสัญญาณนาฬิกาสูงสุด 10 GHz ต่อมาความถี่สัญญาณนาฬิกาลดลงหลายครั้ง การกล่าวถึงอย่างเป็นทางการครั้งแรกเกี่ยวกับการพัฒนาโปรเซสเซอร์ Quad-Core ของ AMD ปรากฏในเดือนพฤษภาคมในแผนเชิงกลยุทธ์ที่เผยแพร่ในช่วงจนถึงปี 2552

จริงอยู่ที่ในเวลานั้นสถาปัตยกรรมไมโครใหม่ได้รับการจดทะเบียนภายใต้ชื่อรหัส AMD K8L และเฉพาะในเดือนกุมภาพันธ์ พ.ศ. 2550 ชื่อสุดท้าย AMD K10 เท่านั้นที่ได้รับการอนุมัติ

โปรเซสเซอร์ที่ใช้สถาปัตยกรรม AMD K8 ที่ได้รับการปรับปรุงนั้นควรจะเป็นโปรเซสเซอร์ AMD แบบ quad-core ตัวแรกรวมถึงโปรเซสเซอร์ตัวแรกในตลาดที่มีทั้ง 4 คอร์อยู่บนชิปตัวเดียว (ก่อนหน้านี้มีข่าวลือเกี่ยวกับการปรากฏตัวของ โปรเซสเซอร์ AMD แบบ quad-core ซึ่งเป็นคริสตัล Opteron แบบ dual-core สองตัว)

คุณสมบัติทางสถาปัตยกรรม

ความแตกต่างที่สำคัญระหว่างโปรเซสเซอร์รุ่น K10 และรุ่นก่อนที่ใช้ AMD K8 คือการรวมกันของสี่คอร์บนชิปตัวเดียวการอัปเดตโปรโตคอล Hyper-Transport เป็นเวอร์ชัน 3.0 แคช L3 ทั่วไปสำหรับคอร์ทั้งหมดรวมถึงการสนับสนุนที่มีแนวโน้มสำหรับ ตัวควบคุมหน่วยความจำ DDR3 ตัวคอร์เองก็ได้รับการอัพเกรดจากคอร์ K8 ของ AMD

สถาปัตยกรรมการเชื่อมต่อโดยตรง

  • ช่วยให้คุณเพิ่มประสิทธิภาพและประสิทธิผลโดยการเชื่อมต่อตัวควบคุมหน่วยความจำและช่อง I/O เข้ากับคอร์โดยตรง
  • ออกแบบมาเพื่อทำการคำนวณทั้งแบบ 32 บิตและ 64 บิตพร้อมกัน
  • การรวมตัวควบคุมหน่วยความจำ DDR2 (สูงสุด 533 (1066) MHz โหมดรวมถึงการรองรับ DDR3 ในอนาคต)

ข้อดี:

  • เพิ่มประสิทธิภาพแอปพลิเคชันโดยลดเวลาแฝงในการเข้าถึงหน่วยความจำ
  • จัดสรรแบนด์วิธหน่วยความจำตามคำขอ
  • เทคโนโลยี Hyper-Transport มอบการเชื่อมต่อด้วยความเร็วสูงสุดถึง 16.0 GB/s เพื่อป้องกันความล่าช้า
  • แบนด์วิธรวมสูงสุด 33.1 GB/s ระหว่างโปรเซสเซอร์และระบบ (รวมถึง Hyper-Transport bus และตัวควบคุมหน่วยความจำ)

แคชอัจฉริยะที่สมดุลของ AMD

แคช L3 ขนาด 2MB ถูกใช้ร่วมกันในทุกคอร์ นอกเหนือจากแคช L2 ขนาด 512KB ต่อคอร์ ประโยชน์ที่ได้รับคือลดเวลาแฝงเมื่อเข้าถึงข้อมูลที่ใช้บ่อยเพื่อปรับปรุงประสิทธิภาพ

ตัวเร่งจุดลอยตัวแบบ Wide ของ AMD

FPU 128 บิตต่อคอร์ ข้อดีคือการสุ่มตัวอย่างและประมวลผลข้อมูลในการคำนวณจุดลอยตัวได้เร็วขึ้น

ไฮเปอร์ทรานสปอร์ต

  • หนึ่งช่องสัญญาณ 16 บิต ความเร็ว 4000 MT/s
  • การเชื่อมต่อ Hyper-Transport ด้วยความเร็วสูงสุดถึง 8.0 GB/s และสูงสุด 16.0 GB/s เมื่อทำงานในโหมด Hyper-Transport 3.0
  • แบนด์วิธรวมสูงสุด 33.1 GB/s ระหว่างโปรเซสเซอร์และระบบ (รวมถึง Hyper-Transport bus และตัวควบคุมหน่วยความจำ)

ตัวควบคุมหน่วยความจำแบบรวม

ข้อดีคือเข้าถึงทรัพยากรระบบได้อย่างรวดเร็วเพื่อเพิ่มผลผลิต

เอเอ็มดี-วี

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

คูลแอนด์เงียบ 2.0

  • การจัดการพลังงานขั้นสูงที่ปรับประสิทธิภาพของโปรเซสเซอร์โดยอัตโนมัติตามโหลด
  • ลดการใช้พลังงานและความเร็วการหมุนของตัวทำความเย็นในระหว่างโหมดไม่ได้ใช้งาน

คูลคอร์

  • ช่วยให้คุณลดการใช้พลังงานโดยการปิดส่วนที่ไม่ได้ใช้ของโปรเซสเซอร์
  • ระบบแยกสำหรับตัวควบคุมหน่วยความจำและตรรกะของโปรเซสเซอร์ทำให้สามารถควบคุมแรงดันไฟฟ้าและปิดระบบได้โดยแยกจากกัน
  • ทำงานโดยอัตโนมัติโดยไม่จำเป็นต้องรองรับไดรเวอร์หรือ BIOS
  • ช่วยให้สามารถควบคุมความถี่ของแต่ละคอร์ได้อย่างอิสระ
  • ความเร็วของการสลับโหมดการทำงานเท่ากับหนึ่งรอบของคอร์โปรเซสเซอร์

ข้อผิดพลาด TLB

ข้อมูลจำเพาะ

  • เทคโนโลยีการผลิต: ซอย 65 นาโนเมตร
  • พื้นที่แกนกลาง: 283 มม.²
  • จำนวนทรานซิสเตอร์: 450 ล้าน
  • แรงดันไฟฟ้า: 1.05-1.38V
  • ซ็อกเก็ต: AM2+ (940 พิน) / ซ็อกเก็ต F (1207 พิน)

ตัวเลือก

สำหรับคอมพิวเตอร์เดสก์ท็อป

โปรเซสเซอร์ Phenom สำหรับระบบเดสก์ท็อป รวมถึงซีรีส์ Opteron 13xx สำหรับซ็อกเก็ต Socket AM2+ โปรเซสเซอร์ซีรีส์ Phenom ทั้งหมดสร้างขึ้นบนซ็อกเก็ต AM2+ ซึ่งสามารถใช้งานร่วมกับซ็อกเก็ต AM2 รุ่นเก่าได้ เมื่อใช้โปรเซสเซอร์ Phenom บนเมนบอร์ดที่รองรับ Socket AM2 จะสูญเสียการสนับสนุนบัส Hyper-Transport 3.0, การตอกบัตรแยกต่างหากของตัวควบคุมหน่วยความจำ (นอร์ธบริดจ์), แคช L3 และคอร์รวมถึงฟังก์ชันประหยัดพลังงานบางอย่าง

สำหรับเซิร์ฟเวอร์

Opteron ซีรีส์ 83xx และ 23xx สำหรับเซิร์ฟเวอร์

โปรเซสเซอร์ซีรีส์ Opteron จะสามารถทำงานในมาเธอร์บอร์ดรุ่นเก่าที่ใช้ Socket F ได้ ในทั้งสองกรณี คุณจะต้องอัปเดต BIOS ของเมนบอร์ดเท่านั้น โปรเซสเซอร์ทั้งหมดนี้สร้างขึ้นบนสถาปัตยกรรม AMD64 ซึ่งสามารถทำงานกับโค้ด 32 บิต x86, 16 บิต และ AMD64

คอร์ K10 ดั้งเดิมมีชื่อรหัสว่า "Barcelona" สำหรับโปรเซสเซอร์ร่วมที่มีไว้สำหรับเซิร์ฟเวอร์ โปรเซสเซอร์รุ่นต่อมาสำหรับคอมพิวเตอร์เดสก์ท็อปเปิดตัวโดยที่คอร์ K10 เรียกว่า "Agena"

โปรเซสเซอร์ที่มีคอร์ K10

ด้วยการถือกำเนิดของโปรเซสเซอร์เจนเนอเรชั่น K10 ในกลุ่มผลิตภัณฑ์ของ AMD การกำหนดของพวกเขาก็เปลี่ยนไปเช่นกัน - ทั้งสองรุ่นที่ใช้ K10 และ AMD K8 นั้นถูกซ่อนอยู่ภายใต้การกำหนดใหม่

ระบบการกำหนดโปรเซสเซอร์ AMD
ซีรีย์โปรเซสเซอร์ การกำหนด
ฟีนอม X4 ควอดคอร์ ( อาเจน่า) X4 9хх0
Phenom X3 ทริปเปิลคอร์ ( โทลิมาน) X3 8хх0
แอธลอนดูอัลคอร์ ( คุมะ) 7хх0
Athlon ซิงเกิลคอร์ ( ลิมา) 1хх0
Sempron คอร์เดียว ( สปาร์ตา) 1хх0

บาร์เซโลน่า คอร์

  • AMD Opteron 3G 8350, 4 คอร์, 2.0 GHz, 75 W
  • AMD Opteron 3G 8347, 4 คอร์, 1.9 GHz, 75 W
23xx
  • AMD Opteron 3G 2350, 4 คอร์, 2.0 GHz, 75 W
  • AMD Opteron 3G 2347, 4 คอร์, 1.9 GHz, 75 W
  • AMD Opteron 3G 8356, 4 คอร์, 2.3 GHz, 75 W
  • AMD Opteron 3G 8354, 4 คอร์, 2.2 GHz, 75 W
23xx
  • AMD Opteron 3G 2356, 4 คอร์, 2.3 GHz, 75 W
  • AMD Opteron 3G 2354, 4 คอร์, 2.2 GHz, 75 W
  • AMD Opteron 3G 2352, 4 คอร์, 2.1 GHz, 75 W
13xx
  • AMD Opteron 3G 1356, 4 คอร์, 2.3 GHz, 75 W
  • AMD Opteron 3G 1354, 4 คอร์, 2.2 GHz, 75 W
  • AMD Opteron 3G 1352, 4 คอร์, 2.1 GHz, 75 W
  • AMD Opteron 3G 8347 HE, 4 คอร์, 1.9 GHz, 55 W
  • AMD Opteron 3G 8346 HE, 4 คอร์, 1.8 GHz, 55 W
23xx
  • AMD Opteron 3G 2347 HE, 4 คอร์, 1.9 GHz, 55 W
  • AMD Opteron 3G 2346 HE, 4 คอร์, 1.8 GHz, 55 W
  • AMD Opteron 3G 2344 HE, 4 คอร์, 1.7 GHz, 55 W
  • AMD Opteron 3G 8360 SE, 4 คอร์, 2.5 GHz, 95 W
  • AMD Opteron 3G 8358 SE, 4 คอร์, 2.4 GHz, 95 W
23xx
  • AMD Opteron 3G 2360 SE, 4 คอร์, 2.5 GHz, 95 W
  • AMD Opteron 3G 2358 SE, 4 คอร์, 2.4 GHz, 95 W

หลังจากความก้าวหน้าของต้นทศวรรษ 2000 AMD ก็กลับสู่สถานะปกติโดยตามทันอยู่เสมอและถึงแม้จะมีโซลูชันทางเทคนิคขั้นสูงที่น่าสนใจและไม่ต้องสงสัย แต่ก็ไม่ได้พยายามแข่งขันกับ Intel ในแง่ของปริมาณการขายด้วยซ้ำ ณ กลางปี ​​2552 ส่วนแบ่งของบริษัทคิดเป็นประมาณ 14.5% ของตลาดไมโครโปรเซสเซอร์ ในขณะเดียวกัน คุณสมบัติที่ครั้งหนึ่งเคยเป็นกรรมสิทธิ์ของชิป AMD เช่น ส่วนขยายคำสั่ง 64 บิตหรือตัวควบคุม RAM ที่ติดตั้งในโปรเซสเซอร์ ได้ถูกนำมาใช้ในชิปของคู่แข่งหลักมาเป็นเวลานานแล้ว

ปัจจุบันผลิตภัณฑ์ของ AMD ครอบครองสองช่องที่แคบมาก: โปรเซสเซอร์ราคาประหยัดพิเศษสำหรับการสร้างคอมพิวเตอร์ระดับประหยัดและรุ่นประสิทธิภาพสูงซึ่งมีราคาถูกกว่าชิป Intel ที่เทียบเคียงได้สามถึงห้าเท่า

สิ่งนี้อธิบายความจริงที่ว่าบนชั้นวางของร้านค้าคุณจะพบโปรเซสเซอร์ AMD ของตระกูลและรุ่นต่างๆ - ตั้งแต่ Sempron และ Athlon ในยุคก่อนประวัติศาสตร์ที่ใช้สถาปัตยกรรม K8 ที่สมควรได้รับสำหรับซ็อกเก็ต Socket 939 ไปจนถึง Phenom II X6 แบบหกคอร์ที่ทันสมัยเป็นพิเศษ อาจเป็นไปได้ว่าตอนนี้ AMD ใช้สถาปัตยกรรม K10 ดังนั้นเราจะพูดถึงโปรเซสเซอร์ที่ออกแบบบนพื้นฐานของมันโดยเฉพาะ ซึ่งรวมถึง Phenom และ Phenom II รวมถึงรุ่นราคาประหยัดที่เรียกว่า Athlon II

ในอดีต ชิปที่ใช้ K10 ตัวแรกคือ Phenom X4 แบบ quad-core (ชื่อรหัส Agena) ซึ่งเปิดตัวในเดือนพฤศจิกายน พ.ศ. 2550 ต่อมาในเดือนเมษายน พ.ศ. 2551 Phenom X3 แบบสามคอร์ก็ปรากฏตัวขึ้นซึ่งเป็นโปรเซสเซอร์กลางตัวแรกของโลกสำหรับคอมพิวเตอร์เดสก์ท็อปซึ่งมีสามคอร์อยู่บนชิปตัวเดียว ในเดือนธันวาคม พ.ศ. 2551 ด้วยการเปลี่ยนไปใช้เทคโนโลยีการผลิต 45 นาโนเมตร ตระกูล Phenom II ที่ได้รับการปรับปรุงได้รับการแนะนำ และในเดือนกุมภาพันธ์ ชิปได้รับตัวเชื่อมต่อ Socket AM3 ใหม่ การผลิตแบบอนุกรมของ Phenom II X4 แบบ quad-core เริ่มต้นในเดือนมกราคม 2552, Phenom II X3 แบบสามคอร์ในเดือนกุมภาพันธ์ 2552, Phenom II X2 แบบ dual-core ในเดือนมิถุนายน 2552 และ Phenom II X2 แบบหกคอร์เมื่อเร็ว ๆ นี้ในเดือนเมษายน 2010.

Athlon II - สิ่งทดแทนที่ทันสมัยสำหรับ Sempron - คือ Phenom II ซึ่งปราศจากข้อได้เปรียบที่สำคัญที่สุดประการหนึ่งนั่นคือแคชระดับที่สามขนาดใหญ่ (L3) ซึ่งเหมือนกันกับคอร์ทั้งหมด มีจำหน่ายในเวอร์ชัน 2, 3 และ 4 คอร์ Athlon II X2 เริ่มผลิตตั้งแต่เดือนมิถุนายน พ.ศ. 2552, X4 ตั้งแต่เดือนกันยายน พ.ศ. 2552 และ X3 ตั้งแต่เดือนพฤศจิกายน พ.ศ. 2552

สถาปัตยกรรมเอเอ็มดี K10

อะไรคือความแตกต่างพื้นฐานระหว่างสถาปัตยกรรม K10 และ K8? ก่อนอื่น ในโปรเซสเซอร์ K10 คอร์ทั้งหมดถูกสร้างขึ้นบนชิปตัวเดียวและติดตั้งแคช L2 เฉพาะ นอกจากนี้ ชิป Phenom/Phenom 2 และเซิร์ฟเวอร์ Opteron ยังมีหน่วยความจำแคช L3 ทั่วไปสำหรับคอร์ทั้งหมด โดยมีปริมาณตั้งแต่ 2 ถึง 6 MB

ประโยชน์หลักประการที่สองของ K10 คือบัสระบบ HyperTransport 3.0 ใหม่ที่มีทรูพุตสูงสุดถึง 41.6 GB/s ในทั้งสองทิศทางในโหมด 32 บิต หรือสูงถึง 10.4 GB/s ในทิศทางเดียวในโหมด 16 บิตและความถี่สูงขึ้น ถึง 2.6 GHz. ให้เราระลึกว่าความถี่การทำงานสูงสุดของ HyperTransport 2.0 เวอร์ชันก่อนหน้าคือ 1.4 GHz และปริมาณงานสูงสุดอยู่ที่ 22.4 หรือ 5.6 GB/s

บัสแบบกว้างมีความสำคัญเป็นพิเศษสำหรับโปรเซสเซอร์แบบมัลติคอร์ และ HyperTransport 3.0 มอบความสามารถในการกำหนดค่าช่องสัญญาณ ทำให้แต่ละคอร์มีช่องทางที่เป็นอิสระของตัวเอง นอกจากนี้โปรเซสเซอร์ K10 ยังสามารถเปลี่ยนความกว้างและความถี่การทำงานของบัสแบบไดนามิกตามสัดส่วนความถี่ของตัวเอง

ควรสังเกตว่าในปัจจุบันชิป AMD บัส HyperTransport 3.0 ทำงานที่ความเร็วต่ำกว่าความเร็วสูงสุดที่อนุญาตมาก ใช้สามโหมดขึ้นอยู่กับรุ่น: 1.6 GHz และ 6.4 GB/s, 1.8 GHz และ 7.2 GB/s และ 2 GHz และ 8.0 GB/s ชิปที่ผลิตขึ้นยังไม่ได้ใช้โหมดมาตรฐานอีกสองโหมด - 2.4 GHz และ 9.6 GB/s และ 2.6 GHz และ 10.4 GB/s

โปรเซสเซอร์ K10 รวมตัวควบคุม RAM อิสระสองตัว ซึ่งเพิ่มความเร็วในการเข้าถึงโมดูลในสภาวะการทำงานจริง คอนโทรลเลอร์สามารถทำงานร่วมกับหน่วยความจำ DDR2-1066 (รุ่นสำหรับซ็อกเก็ต AM2+ และ AM3) หรือ DDR3 (ชิปสำหรับซ็อกเก็ต AM3) เนื่องจากคอนโทรลเลอร์ที่รวมอยู่ใน Phenom II และ Athlon II สำหรับซ็อกเก็ต AM3 รองรับ RAM ทั้งสองประเภท และซ็อกเก็ต AM3 นั้นเข้ากันได้กับ AM2+ รุ่นเก่า ดังนั้น CPU ใหม่จึงสามารถติดตั้งบนบอร์ด AM2+ รุ่นเก่าและทำงานกับหน่วยความจำ DDR2 ได้ ซึ่งหมายความว่าเมื่อคุณซื้อ Phenom II เพื่ออัปเกรด คุณจะไม่จำเป็นต้องเปลี่ยนเมนบอร์ดทันทีหรือซื้อ RAM ประเภทอื่น เช่น ในกรณีของชิป Intel i3/i5/i7

ไมโครโปรเซสเซอร์ที่มีสถาปัตยกรรม K10 ใช้เทคโนโลยีประหยัดพลังงานที่ทันสมัยทั้งชุด ได้แก่ AMD Cool"n"Quiet, CoolCore, Independent Dynamic Core และ Dual Dynamic Power Management ระบบที่ซับซ้อนนี้จะลดการใช้พลังงานของชิปทั้งหมดโดยอัตโนมัติในระหว่างโหมดว่าง ให้การจัดการพลังงานที่เป็นอิสระสำหรับตัวควบคุมหน่วยความจำและคอร์ และสามารถปิดองค์ประกอบโปรเซสเซอร์ที่ไม่ได้ใช้ได้


ในที่สุดแกนเองก็ได้รับการปรับปรุงอย่างมีนัยสำคัญเช่นกัน การออกแบบการสุ่มตัวอย่าง การทำนายสาขาและสาขา และหน่วยการจัดส่งได้รับการออกแบบใหม่ ซึ่งทำให้สามารถปรับโหลดคอร์ให้เหมาะสมและปรับปรุงประสิทธิภาพได้ในที่สุด ความกว้างของบล็อก SSE เพิ่มขึ้นจาก 64 เป็น 128 บิต สามารถดำเนินการคำสั่ง 64 บิตเป็นหนึ่งเดียวได้ และเพิ่มการรองรับคำสั่ง SSE4a เพิ่มเติมอีกสองคำสั่ง (เพื่อไม่ให้สับสนกับชุดคำสั่ง SSE4.1 และ 4.2 ใน Intel โปรเซสเซอร์หลัก)

จำเป็นต้องพูดถึงข้อบกพร่องด้านการออกแบบที่ระบุในเซิร์ฟเวอร์ Opterons (ชื่อรหัสว่า Barcelona) และใน Phenom X4 และ X3 ของรุ่นแรก - ที่เรียกว่า "ข้อผิดพลาด TLB" ซึ่งครั้งหนึ่งนำไปสู่การหยุดการจัดหาทั้งหมดโดยสมบูรณ์ ตัวเลือกการแก้ไข B2 ในกรณีที่เกิดขึ้นไม่บ่อยนัก ภายใต้ภาระงานสูง เนื่องจากข้อบกพร่องด้านการออกแบบในบล็อก TLD แคช L3 ระบบอาจทำงานไม่เสถียรและคาดเดาไม่ได้ ข้อบกพร่องดังกล่าวถือว่ามีความสำคัญต่อระบบเซิร์ฟเวอร์ ซึ่งเป็นเหตุให้การขนส่ง Opterons ที่ปล่อยออกมาทั้งหมดถูกระงับ มีการเปิดตัวแพตช์พิเศษสำหรับ Phenoms บนเดสก์ท็อปซึ่งจะปิดการใช้งานบล็อกที่มีข้อบกพร่องโดยใช้ BIOS แต่ในขณะเดียวกันประสิทธิภาพของโปรเซสเซอร์ก็ลดลงอย่างเห็นได้ชัด เมื่อเปลี่ยนไปใช้การแก้ไข B3 ปัญหาก็หมดไปโดยสิ้นเชิงและไม่พบชิปดังกล่าววางขายมาเป็นเวลานาน

ช่วงรุ่นปัจจุบัน

แม้ว่าโปรเซสเซอร์ AMD ระดับบนสุดจะด้อยกว่ารุ่นท็อปของ Intel อย่างสิ้นเชิง แต่ความเท่าเทียมกันบางส่วนยังคงอยู่ในเซ็กเมนต์ของชิปดูอัลและควอดคอร์ที่ผลิตจำนวนมากมาเป็นเวลานาน ในเวลาเดียวกันแพลตฟอร์ม AMD เองก็ราคาถูกลงอย่างเห็นได้ชัด - ไม่เพียง แต่โปรเซสเซอร์เองก็ราคาถูกลงเท่านั้น แต่ยังรวมถึงมาเธอร์บอร์ดด้วย ความแตกต่างนี้สังเกตได้ชัดเจนเป็นพิเศษหากคุณเปรียบเทียบเครื่องราคาประหยัดใน Phenom II X3 และ X4 กับคอมพิวเตอร์ที่ใช้ Core i3 ซึ่งมีประสิทธิภาพมากกว่าเล็กน้อย แต่มีราคาแพงกว่าเกือบสองเท่า และหากคุณเสียสละพลังที่มากขึ้นและเลือก Athlon II พีซีก็จะมีราคาถูกกว่าครึ่ง!

สำหรับเครื่องจักรที่มีประสิทธิภาพมากขึ้นมีเพียงรุ่น Phenom II X4 ที่ทรงพลังที่สุดเท่านั้นที่สามารถแข่งขันกับ Core i5 ได้และ X6 แบบหกคอร์ล่าสุดสามารถเปรียบเทียบได้อย่างถูกต้องกับ Core i7 แบบ quad-core ที่อายุน้อยที่สุดเท่านั้น

Athlon II และ Phenom II ที่ผลิตทั้งหมดได้รับการออกแบบสำหรับการติดตั้งในซ็อกเก็ต AM3 ยกเว้นสองรุ่น: Phenom II X4 940 และ 920 ซึ่งติดตั้งในซ็อกเก็ต AM2+ และใช้งานได้กับ DDR2 RAM เท่านั้น ชิป Phenom ได้รับการออกแบบมาโดยเฉพาะสำหรับซ็อกเก็ต AM2 ไม่สามารถติดตั้งโปรเซสเซอร์สำหรับซ็อกเก็ต AM2+ ในซ็อกเก็ต AM3 ได้ แต่อย่างที่เราได้กล่าวไปแล้ว ชิป AM3 สามารถติดตั้งบนบอร์ดที่มีซ็อกเก็ต AM2+ ได้

เห็นได้ชัดว่า AMD กำลังค่อยๆ เลิกใช้ชิปสำหรับ Socket AM2 และเช่นเดียวกับ Intel ก็ใช้รุ่นที่รองรับ DDR3 RAM ที่ทันสมัยกว่า รุ่นสำหรับ AM3 และ AM2+ ซึ่งมีความถี่สัญญาณนาฬิกาและคุณลักษณะอื่น ๆ ที่คล้ายกันมีราคาเกือบเท่ากันและหากคุณคำนึงถึงความเข้ากันได้แบบย้อนหลังของชิปใหม่ก็แทบจะไม่มีประโยชน์ในการซื้อ Phenoms ตัวแรก ดังนั้นในอนาคตเราจะพิจารณาเฉพาะ Phenom II และ Athlon II เท่านั้น

ทั้ง Athlon II และ Phenom II มีจำหน่ายในเวอร์ชัน dual-, triple- และ quad-core (X2, X3, X4) และ "phenoms" ก็มีจำหน่ายในเวอร์ชัน 6-core เช่นกัน นอกจากนี้ยังมีการปรับเปลี่ยน Black Edition ซึ่งแตกต่างจากมาตรฐานด้วยตัวคูณที่ปลดล็อคซึ่งทำให้การโอเวอร์คล็อกง่ายขึ้น

น่าเสียดายที่ชิป AMD ใหม่ส่วนใหญ่ด้อยกว่าแพ็คเกจระบายความร้อนสำหรับรุ่น Intel ที่มีคุณสมบัติคล้ายกันอีกครั้งซึ่งหมายถึงความต้องการระบบระบายความร้อนที่มากขึ้นและการใช้พลังงานที่เพิ่มขึ้น สำหรับ Phenom II แบบมัลติคอร์ ค่า TDP ทั่วไปคือ 80, 95 หรือ 125 W การปรับเปลี่ยนแบบประหยัดพิเศษ (65 W) ด้วยตัวอักษร "e" หลังการขายดัชนีรุ่น แต่จะช้ากว่าตัวเลือก "ปกติ" อย่างเห็นได้ชัดและมีราคาแพงกว่า

โปรเซสเซอร์ Athlon II X2 เป็นชิปดูอัลคอร์ "ของจริง" ไม่ใช่ชิปควอดคอร์ที่มีแกนประมวลผลตายสองตัวเช่น Phenom II X2 แต่ Athlon II X3 นั้นเป็น Athlon II X4 ที่มีคอร์ไม่ทำงานหนึ่งคอร์ Athlon II ทั้งหมดผลิตขึ้นโดยใช้เทคโนโลยี 45 นาโนเมตร

แต่ละคอร์ของ Athlone X2, X3 และ X4 ติดตั้งแคช L1 ขนาด 128 KB และแคชระดับที่สอง 512 KB อย่างไรก็ตาม ไม่เหมือนกับ Phenom II ตรงที่พวกเขาไม่แชร์แคช L3 ซึ่งหมายความว่าโปรเซสเซอร์จะเข้าถึงหน่วยความจำระบบที่ช้ากว่าบ่อยกว่า ผลลัพธ์ที่ได้คือประสิทธิภาพที่จำกัดในแอพพลิเคชั่นที่ใช้ทรัพยากรมาก กราฟิก 3 มิติ และเกมคอมพิวเตอร์ อย่างไรก็ตามเมื่อใช้ร่วมกับการ์ดแสดงผลที่ดีระบบ Athlon II ก็แสดงให้เห็นถึงประสิทธิภาพการเล่นเกมที่ค่อนข้างดี

Phenom II เผชิญกับการแข่งขันที่รุนแรงจาก Core i3 และ i5 แต่พวกเขาก็เอาชนะต้นทุนของระบบที่เทียบเคียงได้อย่างแน่นอน เช่นเดียวกับ Athlon II แต่ละฟีนอมคอร์มีแคช L1 ขนาด 128 KB และแคช L2 ขนาด 512 KB ในเวลาเดียวกัน Phenom II ยังมีหน่วยความจำแคชระดับที่สามซึ่งเหมือนกันกับคอร์ทั้งหมด “ ปรากฏการณ์” เกือบทั้งหมด - สอง, สาม, สี่และหกคอร์ - มีแคช L3 6 MB ยกเว้นรุ่น X4 ที่อายุน้อยกว่าสามรุ่นที่มีดัชนี 805, 810 และ 820 ซึ่งมี L3 เพียง 4 MB .

ใน ส่วนที่สองของบทความเราจะให้ข้อมูลพื้นฐานโดยย่อเกี่ยวกับคุณสมบัติทางเทคนิคหลักของโปรเซสเซอร์ AMD Athlon II และ Phenom II ที่ผลิตในปัจจุบันทั้งหมดพร้อมราคาขายปลีกโดยประมาณสำหรับพวกเขาในร้านค้ารัสเซีย โดยสรุปเราจะพูดถึงรุ่นที่น่าสนใจที่สุดในความคิดของเราซึ่งควรค่าแก่การเอาใจใส่เป็นพิเศษเมื่อเลือก