กลับไปหน้าบทความ

อ่าน 5 นาที

การเร่งความเร็วฮาร์ดแวร์

การเร่งความเร็วด้วยฮาร์ดแวร์ คือการใช้ ฮาร์ดแวร์ของคอมพิวเตอร์ ซึ่งเรียกว่า ตัวเร่งความเร็วฮาร์ดแวร์ เพื่อทำงานเฉพาะอย่างได้เร็วกว่าที่ ซอฟต์แวร์ ซึ่งทำงานบน หน่วยประมวลผลกลาง...

การเร่งความเร็วฮาร์ดแวร์

การ์ดเร่งความเร็วการเข้ารหัสช่วยให้สามารถดำเนินการเข้ารหัสได้ในอัตราที่เร็วขึ้น

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

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

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

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

ในลำดับชั้นของระบบประมวลผลดิจิทัล ตั้งแต่โปรเซสเซอร์ทั่วไปไปจนถึง ฮาร์ดแวร์ ที่ปรับแต่งได้อย่างเต็มที่จะมีการแลกเปลี่ยนระหว่างความยืดหยุ่นและประสิทธิภาพ โดยประสิทธิภาพจะเพิ่มขึ้นหลายเท่าตัวเมื่อแอปพลิเคชันใด ๆ ถูกนำไปใช้ในระดับที่สูงขึ้นในลำดับชั้นนั้น (นั่นคือ ไปสู่ปลายทางที่ปรับแต่งได้มากขึ้น) [ 3 ]ลำดับชั้นนี้รวมถึงโปรเซสเซอร์ทั่วไป เช่น CPU [ 4 ]โปรเซสเซอร์เฉพาะทางมากขึ้น เช่นshaders ที่ตั้งโปรแกรมได้ ในGPU [ 5 ]แอปพลิเคชันที่ใช้งานบนfield-programmable gate arrays (FPGAs) [ 6 ] และฟังก์ชันคงที่ที่ ใช้งานบนapplication-specific integrated circuits (ASICs) [ 7 ]

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

ภาพรวม

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

ความเท่าเทียมกันเชิงคำนวณของฮาร์ดแวร์และซอฟต์แวร์

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

คอมพิวเตอร์แบบโปรแกรมที่จัดเก็บไว้

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

หน่วยประมวลผลฮาร์ดแวร์

โดยทั่วไปแล้ว หน่วยประมวลผลฮาร์ดแวร์ไม่ได้อาศัยสถาปัตยกรรมแบบ von Neumann หรือ Harvard ที่ได้รับการดัดแปลง และไม่จำเป็นต้องดำเนินการขั้นตอนการดึงและถอดรหัสคำสั่งในวงจรคำสั่งและไม่ต้องเสียค่าใช้จ่ายเพิ่มเติมในขั้นตอนเหล่านั้น หากมีการระบุการคำนวณที่จำเป็นไว้ใน การออกแบบฮาร์ดแวร์ ระดับการถ่ายโอนรีจิสเตอร์ (RTL) ต้นทุนด้านเวลาและพื้นที่วงจรที่เกิดขึ้นจากขั้นตอนการดึงและถอดรหัสคำสั่งสามารถนำกลับมาใช้ใหม่และนำไปใช้ในด้านอื่น ๆ ได้

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

สถาปัตยกรรมฮาร์ดแวร์ที่กำลังเกิดขึ้นใหม่

การปรับแต่ง RTL ที่มากขึ้นในการออกแบบฮาร์ดแวร์ช่วยให้สถาปัตยกรรมที่เกิดขึ้นใหม่ เช่น การประมวลผลในหน่วยความจำ ( in-memory computing) สถาปัตยกรรมที่กระตุ้นด้วยการส่งข้อมูล ( Transport Triggered Architectures : TTA) และเครือข่ายบนชิป (Networks-on-Chip : NoC) ได้รับประโยชน์มากขึ้นจากความใกล้ชิดของข้อมูลกับบริบทการทำงาน ซึ่งจะช่วยลดความหน่วงในการประมวลผลและการสื่อสารระหว่างโมดูลและหน่วยการทำงานต่างๆ

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

เป็นเรื่องปกติที่จะสร้าง หน่วยประมวลผล แบบมัลติคอร์และหลายคอร์จากแผนผัง IP core ของไมโครโปรเซสเซอร์บน FPGA หรือ ASIC ตัวเดียว[ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]ในทำนองเดียวกัน หน่วยการทำงานเฉพาะทางสามารถประกอบแบบขนานได้ เช่นในการประมวลผลสัญญาณดิจิทัลโดยไม่ต้องฝังอยู่ในIP core ของโปรเซสเซอร์ ดังนั้น การเร่งความเร็วด้วยฮาร์ดแวร์จึงมักถูกนำมาใช้สำหรับงานที่ซ้ำซากและคงที่ซึ่งเกี่ยวข้องกับการแยกเงื่อนไข น้อย โดยเฉพาะอย่างยิ่งกับข้อมูลจำนวนมาก นี่คือวิธีการที่ GPU ตระกูล CUDAของNvidiaถูกนำไปใช้

ตัวชี้วัดการดำเนินการ

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

แอปพลิเคชัน

ตัวอย่างของการเร่งความเร็วฮาร์ดแวร์ ได้แก่ ฟังก์ชันการเร่งความเร็ว บิตบลิตในหน่วยประมวลผลกราฟิก (GPU) การใช้เมมริสเตอร์เพื่อเร่งความเร็วเครือข่ายประสาทและ การเร่งความเร็วฮาร์ดแวร์ นิพจน์ปกติสำหรับการควบคุมสแปมในอุตสาหกรรมเซิร์ฟเวอร์ ซึ่งมีจุดประสงค์เพื่อป้องกันการโจมตี ปฏิเสธการให้บริการนิพจน์ปกติ (ReDoS) [ 17 ] ฮาร์ดแวร์ที่ทำการเร่งความเร็วอาจเป็นส่วนหนึ่งของ CPU ทั่วไป หรือหน่วยแยกต่างหากที่เรียกว่าตัวเร่งความเร็วฮาร์ดแวร์ แม้ว่าโดยปกติแล้วจะมีการอ้างถึงด้วยคำ ที่เฉพาะเจาะจงกว่า เช่น ตัวเร่งความเร็ว 3 มิติ หรือตัวเร่งความเร็วการเข้ารหัส

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

โปรเซสเซอร์สมัยใหม่เป็นแบบมัลติคอร์และมักมีหน่วยประมวลผลแบบขนาน "คำสั่งเดียว ข้อมูลหลายชุด" ( SIMD ) หน่วยดังกล่าวสามารถรวมอยู่ในCPUหรือมีให้โดยส่วนประกอบเพิ่มเติม เช่นเอ็นจิ้น AI ของ AMD [ 18 ]ถึงกระนั้น การเร่งความเร็วด้วยฮาร์ดแวร์ก็ยังคงให้ประโยชน์ การเร่งความเร็วด้วยฮาร์ดแวร์เหมาะสำหรับอัลกอริทึมที่ต้องใช้การคำนวณอย่างหนักซึ่งดำเนินการบ่อยครั้งในงานหรือโปรแกรม ขึ้นอยู่กับความละเอียด การเร่งความเร็วด้วยฮาร์ดแวร์อาจแตกต่างกันไปตั้งแต่หน่วยการทำงานขนาดเล็กไปจนถึงบล็อกการทำงานขนาดใหญ่ (เช่นการประมาณการเคลื่อนไหวในMPEG-2 )

หน่วยเร่งความเร็วฮาร์ดแวร์ตามการใช้งาน

แอปพลิเคชันตัวเร่งฮาร์ดแวร์คำย่อ
กราฟิกคอมพิวเตอร์หน่วยประมวลผลกราฟิก จีพี
  • จีพีจีพียู
  • คูดา
  • อาร์ทีเอ็กซ์
  • ไม่มีข้อมูล
การประมวลผลสัญญาณดิจิทัลตัวประมวลผลสัญญาณดิจิทัลดีเอสพี
การประมวลผลสัญญาณอนาล็อกอาร์เรย์อนาล็อกที่ตั้งโปรแกรมได้ภาคสนามเอฟพีเอเอ
  • เอฟพีอาร์เอฟ
การประมวลผลภาพเว็บแคมหรือโปรแกรมประมวลผลภาพไอพียู
การประมวลผลเสียงการ์ดเสียงและมิกเซอร์การ์ดเสียงไม่มีข้อมูล
เครือข่ายคอมพิวเตอร์ตัวประมวลผลเครือข่ายและตัวควบคุมอินเทอร์เฟซเครือข่ายNPU และ NIC
  • โนค
  • TCPOE หรือ TOE
  • I/OAT หรือ IOAT
การเข้ารหัสลับตัวเร่งความเร็วการเข้ารหัสและตัวประมวลผลการเข้ารหัสที่ปลอดภัยไม่มีข้อมูล
ปัญญาประดิษฐ์ตัวเร่งความเร็ว AIไม่มีข้อมูล
  • วีพียู
  • พีเอ็นเอ็น
  • ไม่มีข้อมูล
พีชคณิตเชิงเส้นหลายตัวหน่วยประมวลผลเทนเซอร์ทีพียู
การจำลองทางฟิสิกส์หน่วยประมวลผลฟิสิกส์พีพียู
นิพจน์ปกติ[ 17 ]ตัวประมวลผลร่วมนิพจน์ปกติไม่มีข้อมูล
การบีบอัดข้อมูล[ 20 ]ตัวเร่งการบีบอัดข้อมูลไม่มีข้อมูล
การประมวลผลในหน่วยความจำเครือข่ายบนชิปและอาร์เรย์ซิสโตลิกไม่ระบุ; ไม่มีข้อมูล
การประมวลผลข้อมูลหน่วยประมวลผลข้อมูลดีพียู
งานประมวลผลใดๆฮาร์ดแวร์คอมพิวเตอร์ การบ้าน (บางครั้ง)
  • FPGA
  • เอซีไอซี
  • ซีพีแอลดี
  • โซซี
    • เอ็มพีโซซี
    • พีเอสโอซี

ดูเพิ่มเติม

  • โลโก้ Wikimedia Commonsสื่อที่เกี่ยวข้องกับการเร่งความเร็วฮาร์ดแวร์ในวิกิมีเดียคอมมอนส์

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเร่งความเร็วฮาร์ดแวร์

การเร่งความเร็วด้วยฮาร์ดแวร์ คือการใช้ ฮาร์ดแวร์ของคอมพิวเตอร์ ซึ่งเรียกว่า ตัวเร่งความเร็วฮาร์ดแวร์ เพื่อทำงานเฉพาะอย่างได้เร็วกว่าที่ ซอฟต์แวร์ ซึ่งทำงานบน หน่วยประมวลผลกลาง...

ภาพรวม

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

ความเท่าเทียมกันเชิงคำนวณของฮาร์ดแวร์และซอฟต์แวร์

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

คอมพิวเตอร์แบบโปรแกรมที่จัดเก็บไว้

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