Intel Data Streaming Accelerator: มันคืออะไรและทำงานอย่างไรบน CPU

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

ตัวเร่งความเร็วการสตรีมข้อมูลของ Intel

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

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

แบนด์วิดท์เท่ากับเวลาแฝง?

โมวิเมียนโตส ดาตอส

ไม่ มันไม่เหมือนกัน เวลาแฝงคือเวลาในวงจรนาฬิกาที่ใช้ในการแก้ไขคำขอไปยังหน่วยความจำ และมีชุดของขั้นตอนที่ต้องดำเนินการเสมอ ปัญหาคือแม้ว่าอินเทอร์เฟซหน่วยความจำอาจเร็วมาก แต่ตัวควบคุมหน่วยความจำอาจไม่เป็นเช่นนั้นและจบลงด้วยสิ่งนี้หรือ มมส ของ CPU จะอิ่มตัวและคำขอหน่วยความจำทั้งหมดล่าช้า

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

แบนด์วิดท์เป็นเพียงความเร็วในการโอน ตัวอย่างเช่น คุณสามารถมี 100 คำขอที่ 1 GB / หรือ 1 คำขอที่ 100 GB / s แต่ต้องคำนึงว่าตัวควบคุมหน่วยความจำของโปรเซสเซอร์ที่รับผิดชอบในการจัดการการเข้าถึงนั้นจะมีปัญหามากกว่าในกรณีแรก กว่าที่สอง

หน่วยการเคลื่อนย้ายข้อมูล

Portada-CPU-Genérica-Placa-Base

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

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

ดีที่ อินเทล Data Streaming Accelerator ใช้หลักการนี้และเป็นหนึ่งในกุญแจสำคัญในการปรับปรุงประสิทธิภาพของโปรเซสเซอร์ต่างๆ

ตัวเร่งความเร็วการสตรีมข้อมูลของ Intel

ตัวเร่งการสตรีมข้อมูลไดอะแกรม

ตามชื่อที่ระบุ มันคือตัวเร่งความเร็ว นั่นคือหน่วยที่ทำงานเฉพาะ ซึ่งในกรณีนี้คือการปล่อยข้อมูลในเวลาน้อยกว่าที่ CPU ทำ ลักษณะเฉพาะของ DSA คือได้รับการออกแบบสำหรับคุณลักษณะอย่างหนึ่งที่ Compute Express Link นำมาใช้ผ่าน PCI Express 5.0 ซึ่งให้การเข้าถึงหน่วยความจำ RAM ที่สอดคล้องกันสำหรับอุปกรณ์ต่อพ่วงทั้งหมดที่เชื่อมต่อกับพอร์ต PCI Express กล่าวคือ พวกเขาแบ่งปันที่อยู่หน่วยความจำเดียวกัน

ดังนั้นจึงใช้เพื่อดำเนินการดังต่อไปนี้:

  • คุณสามารถย้ายข้อมูลจาก CPU ไปยัง RAM และในทางกลับกันได้
  • ในการเข้าถึงพื้นที่หน่วยความจำที่ไม่สอดคล้องกัน ด้วยการกำหนดที่อยู่หน่วยความจำอื่น คุณสามารถทำการแปลงที่อยู่โดยอัตโนมัติ ดังนั้นในทางเทคนิค เรากำลังเผชิญกับหน่วย DMA ที่อัปเดต
  • นอกจากนี้ยังสามารถเข้าถึงหน่วยความจำถาวรหรือไม่ลบเลือนได้ ดังนั้นจึงสามารถเข้าถึง NVMe SSD, โมดูล Intel Optane, NVDIMM ฯลฯ ...
  • ผ่าน NTB และในสภาพแวดล้อมเซิร์ฟเวอร์ ช่วยให้คุณเข้าถึง RAM อื่นหรือหน่วยความจำแบบไม่ลบเลือนจากบอร์ดอื่นในศูนย์ข้อมูลหรือเซิร์ฟเวอร์
  • มีฟังก์ชันในตัวเพื่อใช้จุดข้างต้นกับเครื่องเสมือน

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

คำแนะนำ Intel DSA

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

  • ย้าย: คำแนะนำการย้ายข้อมูลแบบคลาสสิก x86 ผู้ที่เขียนแอสเซมเบลอร์จะรู้ หากโปรเซสเซอร์มี Intel Data Streaming Accelerators หนึ่งตัวหรือมากกว่า โปรเซสเซอร์เหล่านี้จะถูกดำเนินการ ไม่ใช่โดยแกนประมวลผลของ CPU
  • DIF: มัน มีหน้าที่ดำเนินการตรวจสอบความสมบูรณ์ของข้อมูลในหน่วยความจำ
  • CRC รุ่น: สร้าง CRC Checksum บนข้อมูลที่ส่ง
  • กรอกข้อมูล: มีหน้าที่ในการเติมส่วนหนึ่งของหน่วยความจำด้วยข้อมูลเฉพาะซ้ำ ๆ เป็นการดีที่จะลบเนื้อหาของส่วนหนึ่งของหน่วยความจำเนื่องจากช่วยให้เราสามารถตั้งค่าบิตทั้งหมดเป็น 0
  • เปรียบเทียบ: ใช้เพื่อเปรียบเทียบสองบล็อกหน่วยความจำและตรวจสอบว่าเหมือนกันหรือไม่
  • เดลต้าเรคคอร์ด สร้าง: ทำการตรวจสอบและสร้างสตรีมข้อมูลใหม่โดยมีความแตกต่างระหว่างทั้งสอง

Data Streaming Accelerator สามารถควบคุมอุปกรณ์จัดเก็บข้อมูลได้หลายตัวพร้อมกัน:

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

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