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

อ่าน 4 นาที

ไม่มีชื่อบทความ

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

ไปป์ไลน์ (การประมวลผล)

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

แนวคิดและแรงจูงใจ

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

สมมติว่าการประกอบรถยนต์หนึ่งคันต้องใช้สามขั้นตอน ซึ่งใช้เวลา 20, 10 และ 15 นาที ตามลำดับ ถ้าหากโรงงานใช้สถานีเดียวในการทำงานทั้งสามขั้นตอน จะผลิตรถยนต์ได้หนึ่งคันทุกๆ 45 นาที แต่หากใช้สายการผลิตที่มีสามสถานี โรงงานจะผลิตรถยนต์คันแรกได้ใน 45 นาที และคันใหม่ทุกๆ 20 นาที

ดังตัวอย่างนี้แสดงให้เห็น การประมวลผลแบบไปป์ไลน์ไม่ได้ลดความหน่วง (latency)ซึ่งก็คือเวลาทั้งหมดที่รายการหนึ่งจะผ่านระบบทั้งหมด อย่างไรก็ตาม มันช่วยเพิ่มปริมาณงานของระบบ(throughput ) ซึ่งก็คืออัตราการประมวลผลรายการใหม่หลังจากรายการแรกเสร็จสิ้น

ในการคำนวณ

ไปป์ไลน์กราฟิกคอมพิวเตอร์

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

ท่อส่งข้อมูลที่เกี่ยวข้องกับคอมพิวเตอร์ ได้แก่:

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

ข้อควรพิจารณาในการออกแบบ

การปรับสมดุลขั้นตอนต่างๆ

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

การบัฟเฟอร์

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

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

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

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

ท่อส่งแบบไม่เชิงเส้น

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

ความสัมพันธ์ระหว่างรายการต่างๆ

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

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

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

  • การหยุดชะงัก:ทุกขั้นตอนที่ได้รับผลกระทบ เช่น ขั้นตอน A จะหยุดชั่วคราว จนกว่าจะแก้ไขปัญหาที่เกี่ยวข้องได้ นั่นคือ จนกว่าจะมีข้อมูลที่จำเป็นและ/หรือบรรลุสถานะที่ต้องการแล้ว
  • การจัดเรียงลำดับรายการใหม่:แทนที่จะหยุดชะงัก ขั้นตอน A อาจวางรายการ Y ไว้ข้างๆ แล้วมองหารายการ Z ที่ตามมาในกระแสข้อมูลขาเข้าซึ่งไม่มีการพึ่งพาใดๆ กับรายการก่อนหน้า ในไปป์ไลน์คำสั่ง เทคนิคนี้เรียกว่าการประมวลผลแบบไม่เรียงลำดับ (out-of-order execution )
  • การคาดเดาและการย้อนกลับ:ตัวอย่างสำคัญอย่างหนึ่งของการพึ่งพาซึ่งกันและกันระหว่างรายการคือการจัดการ คำสั่ง การกระโดดแบบมีเงื่อนไข X โดยไปป์ไลน์คำสั่ง ขั้นตอนแรก A ของไปป์ไลน์ ซึ่งดึงคำสั่ง Y ถัดไปที่จะถูกประมวลผล ไม่สามารถทำงานได้จนกว่า X จะดึงตัวถูกดำเนินการและกำหนดได้ว่าควรกระโดดหรือไม่ ซึ่งอาจใช้เวลาหลายรอบสัญญาณนาฬิกา เนื่องจากตัวถูกดำเนินการของ X อาจขึ้นอยู่กับคำสั่งก่อนหน้าซึ่งดึงข้อมูลจากหน่วยความจำหลัก
แทนที่จะหยุดรอให้คำสั่ง X เสร็จสิ้น ขั้นตอน A อาจคาดเดาว่าการกระโดดไปยังคำสั่งถัดไปจะเกิดขึ้นหรือไม่ และดึงคำสั่ง Y ถัดไปโดยอิงจากการคาดเดานั้น หากการคาดเดานั้นผิดพลาดในภายหลัง (ซึ่งหวังว่าจะเกิดขึ้นได้ยาก) ระบบจะต้องย้อนกลับและดำเนินการต่อด้วยตัวเลือกที่ถูกต้อง กล่าวคือ การเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับสถานะของเครื่องโดยขั้นตอน A และขั้นตอนต่อๆ ไปโดยอิงจากการคาดเดานั้นจะต้องถูกยกเลิก คำสั่งที่อยู่ถัดจาก X ในไปป์ไลน์จะต้องถูกล้างออก และขั้นตอน A จะต้องเริ่มต้นใหม่ด้วยตัวชี้คำสั่ง ที่ถูกต้อง กลยุทธ์ การคาดเดาการกระโดดนี้เป็นกรณีพิเศษของการประมวลผลแบบคาดการณ์ล่วงหน้า

การใช้งานซอฟต์แวร์ทั่วไป

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

แนวทางระดับล่างอาจอาศัยเธรดที่ระบบปฏิบัติการจัดเตรียมไว้เพื่อกำหนดตารางงานในแต่ละขั้นตอน: ทั้ง การใช้งาน แบบพูลเธรดหรือแบบหนึ่งเธรดต่อขั้นตอนก็เป็นไปได้และมีอยู่จริง[ 3 ]

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

ต้นทุนและข้อเสีย

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

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

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

เทคโนโลยีใหม่

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

ดูเพิ่มเติม

บรรณานุกรม

  • Perez Garcia, Pablo (2018). Pipeline DSL: DSL สำหรับสร้างไปป์ไลน์ CI/CD สำหรับโครงการของคุณ . Addison-Wesley. ISBN 978-0-134-69147-3.
  • สำหรับการอภิปรายมาตรฐานเกี่ยวกับการประมวลผลแบบไปป์ไลน์ในระบบประมวลผลแบบขนาน โปรดดูQuinn, Michael J. (2004). Parallel Programming in C with MPI and openMP . Dubuque, Iowa: McGraw-Hill Professional. ISBN 0072822562.
  • Pogonyi, Roland (กุมภาพันธ์ 2021). "Data Pipeline คืออะไร?" . สืบค้นเมื่อ11 มีนาคม 2021 .

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

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

แนวคิดและแรงจูงใจ

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

ในการคำนวณ

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

การปรับสมดุลขั้นตอนต่างๆ

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