สถาปัตยกรรมคอมพิวเตอร์แบบขนาน - บทนำ
ในช่วง 50 ปีที่ผ่านมามีการพัฒนาประสิทธิภาพและความสามารถของระบบคอมพิวเตอร์อย่างมาก สิ่งนี้เกิดขึ้นได้ด้วยความช่วยเหลือของเทคโนโลยี Very Large Scale Integration (VLSI) เทคโนโลยี VLSI ช่วยให้ส่วนประกอบจำนวนมากสามารถรองรับชิปตัวเดียวและอัตราสัญญาณนาฬิกาเพื่อเพิ่มขึ้น ดังนั้นจึงสามารถดำเนินการได้มากขึ้นในแต่ละครั้งควบคู่กันไป
การประมวลผลแบบขนานยังเกี่ยวข้องกับตำแหน่งข้อมูลและการสื่อสารข้อมูล Parallel Computer Architecture เป็นวิธีการจัดระเบียบทรัพยากรทั้งหมดเพื่อเพิ่มประสิทธิภาพสูงสุดและความสามารถในการเขียนโปรแกรมภายในขีด จำกัด ที่กำหนดโดยเทคโนโลยีและต้นทุนตลอดเวลา
ทำไมต้องเป็นสถาปัตยกรรมแบบขนาน
สถาปัตยกรรมคอมพิวเตอร์แบบขนานเพิ่มมิติใหม่ในการพัฒนาระบบคอมพิวเตอร์โดยใช้โปรเซสเซอร์จำนวนมากขึ้นเรื่อย ๆ โดยหลักการแล้วประสิทธิภาพที่ได้จากการใช้โปรเซสเซอร์จำนวนมากนั้นสูงกว่าประสิทธิภาพของโปรเซสเซอร์ตัวเดียวในช่วงเวลาที่กำหนด
แนวโน้มการใช้งาน
ด้วยความก้าวหน้าของความสามารถของฮาร์ดแวร์ความต้องการแอพพลิเคชั่นที่มีประสิทธิภาพก็เพิ่มขึ้นเช่นกันซึ่งส่งผลให้เกิดความต้องการในการพัฒนาสถาปัตยกรรมคอมพิวเตอร์
ก่อนยุคไมโครโปรเซสเซอร์ระบบคอมพิวเตอร์ประสิทธิภาพสูงได้มาจากเทคโนโลยีวงจรแปลกใหม่และการจัดระเบียบเครื่องจักรซึ่งทำให้มีราคาแพง ตอนนี้ระบบคอมพิวเตอร์ที่มีประสิทธิภาพสูงได้มาจากการใช้โปรเซสเซอร์หลายตัวและแอปพลิเคชันที่สำคัญและต้องการมากที่สุดจะเขียนเป็นโปรแกรมคู่ขนาน ดังนั้นจึงจำเป็นต้องพัฒนาทั้งสถาปัตยกรรมแบบขนานและแอปพลิเคชันแบบขนานเพื่อให้ได้ประสิทธิภาพที่สูงขึ้น
เพื่อเพิ่มประสิทธิภาพของแอปพลิเคชั่น Speedup เป็นปัจจัยสำคัญที่ต้องพิจารณา Speedup บนโปรเซสเซอร์ p ถูกกำหนดให้เป็น -
$$ Speedup (p \ processors) \ equiv \ frac {Performance (p \ processors)} {Performance (1 \ processor)} $$สำหรับปัญหาเดียวที่ได้รับการแก้ไข
$$ performance \ of \ a \ computer \ system = \ frac {1} {Time \ needed \ to \ complete \ the \ problem} $$ $$ Speedup \ _ {fixed \ problem} (p \ processors) = \ frac {Time (1 \ processor)} {Time (p \ processor)} $$คอมพิวเตอร์วิทยาศาสตร์และวิศวกรรม
สถาปัตยกรรมแบบขนานกลายเป็นสิ่งที่ขาดไม่ได้ในการคำนวณทางวิทยาศาสตร์ (เช่นฟิสิกส์เคมีชีววิทยาดาราศาสตร์ ฯลฯ ) และการใช้งานทางวิศวกรรม (เช่นการสร้างแบบจำลองอ่างเก็บน้ำการวิเคราะห์การไหลของอากาศประสิทธิภาพการเผาไหม้ ฯลฯ ) ในแอพพลิเคชั่นเกือบทั้งหมดมีความต้องการอย่างมากในการสร้างภาพผลลัพธ์ของการคำนวณซึ่งส่งผลให้เกิดความต้องการในการพัฒนาคอมพิวเตอร์แบบขนานเพื่อเพิ่มความเร็วในการคำนวณ
คอมพิวเตอร์เชิงพาณิชย์
ในการประมวลผลเชิงพาณิชย์ (เช่นวิดีโอกราฟิกฐานข้อมูล OLTP เป็นต้น) ยังจำเป็นต้องใช้คอมพิวเตอร์ความเร็วสูงในการประมวลผลข้อมูลจำนวนมากภายในเวลาที่กำหนด เดสก์ท็อปใช้โปรแกรมมัลติเธรดที่เกือบจะเหมือนกับโปรแกรมคู่ขนาน สิ่งนี้ต้องการที่จะพัฒนาสถาปัตยกรรมคู่ขนาน
แนวโน้มเทคโนโลยี
ด้วยการพัฒนาเทคโนโลยีและสถาปัตยกรรมมีความต้องการอย่างมากสำหรับการพัฒนาแอพพลิเคชั่นที่มีประสิทธิภาพสูง การทดลองแสดงให้เห็นว่าคอมพิวเตอร์แบบขนานสามารถทำงานได้เร็วกว่าโปรเซสเซอร์เดี่ยวที่พัฒนาสูงสุด นอกจากนี้คอมพิวเตอร์แบบขนานสามารถพัฒนาได้ภายในขีด จำกัด ของเทคโนโลยีและค่าใช้จ่าย
เทคโนโลยีหลักที่ใช้ที่นี่คือเทคโนโลยี VLSI ดังนั้นในปัจจุบันสามารถติดตั้งทรานซิสเตอร์ประตูและวงจรในพื้นที่เดียวกันได้มากขึ้นเรื่อย ๆ ด้วยการลดขนาดคุณสมบัติ VLSI พื้นฐานอัตราสัญญาณนาฬิกาจะเพิ่มขึ้นตามสัดส่วนด้วยในขณะที่จำนวนทรานซิสเตอร์จะเพิ่มขึ้นตามกำลังสอง การใช้ทรานซิสเตอร์หลายตัวพร้อมกัน (ขนาน) คาดว่าจะทำงานได้ดีกว่าการเพิ่มอัตรานาฬิกา
แนวโน้มของเทคโนโลยีชี้ให้เห็นว่าการสร้างชิปตัวเดียวพื้นฐานจะให้ความจุมากขึ้น ดังนั้นความเป็นไปได้ในการวางโปรเซสเซอร์หลายตัวบนชิปตัวเดียวจึงเพิ่มขึ้น
แนวโน้มทางสถาปัตยกรรม
การพัฒนาเทคโนโลยีตัดสินใจว่าอะไรเป็นไปได้ สถาปัตยกรรมแปลงศักยภาพของเทคโนโลยีให้เป็นประสิทธิภาพและความสามารถParallelism และ localityเป็นสองวิธีที่ทรัพยากรในปริมาณมากขึ้นและทรานซิสเตอร์มากขึ้นช่วยเพิ่มประสิทธิภาพ อย่างไรก็ตามทั้งสองวิธีนี้แข่งขันกันเพื่อแย่งชิงทรัพยากรเดียวกัน เมื่อดำเนินการหลายอย่างพร้อมกันจำนวนรอบที่จำเป็นในการดำเนินการโปรแกรมจะลดลง
อย่างไรก็ตามต้องใช้ทรัพยากรเพื่อสนับสนุนแต่ละกิจกรรมที่เกิดขึ้นพร้อมกัน นอกจากนี้ยังจำเป็นต้องใช้ทรัพยากรเพื่อจัดสรรพื้นที่จัดเก็บในตัวเครื่อง ประสิทธิภาพที่ดีที่สุดเกิดจากแผนปฏิบัติการระดับกลางที่ใช้ทรัพยากรเพื่อใช้ประโยชน์จากระดับของความเท่าเทียมกันและระดับของพื้นที่
โดยทั่วไปประวัติศาสตร์ของสถาปัตยกรรมคอมพิวเตอร์แบ่งออกเป็นสี่ชั่วอายุคนโดยมีเทคโนโลยีพื้นฐานดังต่อไปนี้ -
- หลอดสูญญากาศ
- Transistors
- วงจรรวม
- VLSI
จนถึงปี 1985 ระยะเวลาดังกล่าวถูกครอบงำโดยการเติบโตของความเท่าเทียมกันในระดับบิต ไมโครโปรเซสเซอร์ 4 บิตตามด้วย 8 บิต 16 บิตและอื่น ๆ เพื่อลดจำนวนรอบที่ต้องใช้ในการดำเนินการ 32 บิตเต็มความกว้างของเส้นทางข้อมูลจึงเพิ่มขึ้นเป็นสองเท่า ต่อมามีการนำการใช้งาน 64 บิตมาใช้
การเติบโตใน instruction-level-parallelismครองช่วงกลางทศวรรษที่ 80 ถึงกลางทศวรรษที่ 90 วิธีการของ RISC แสดงให้เห็นว่าขั้นตอนของการประมวลผลคำสั่งนั้นง่ายมากดังนั้นโดยเฉลี่ยแล้วคำสั่งจะถูกดำเนินการในเกือบทุกรอบ การเติบโตของเทคโนโลยีคอมไพเลอร์ทำให้ท่อส่งคำสั่งมีประสิทธิผลมากขึ้น
ในช่วงกลางทศวรรษที่ 80 คอมพิวเตอร์ที่ใช้ไมโครโปรเซสเซอร์ประกอบด้วย
- หน่วยประมวลผลจำนวนเต็ม
- หน่วยจุดลอยตัว
- ตัวควบคุมแคช
- SRAM สำหรับข้อมูลแคช
- การจัดเก็บแท็ก
เมื่อความจุของชิปเพิ่มขึ้นส่วนประกอบทั้งหมดเหล่านี้ก็รวมเป็นชิปตัวเดียว ดังนั้นชิปตัวเดียวประกอบด้วยฮาร์ดแวร์แยกต่างหากสำหรับเลขคณิตจำนวนเต็มการดำเนินการจุดลอยตัวการดำเนินการหน่วยความจำและการดำเนินการสาขา นอกเหนือจากคำสั่ง pipelining แต่ละคำสั่งแล้วจะดึงคำสั่งหลายคำสั่งพร้อมกันและส่งแบบขนานไปกับหน่วยการทำงานที่แตกต่างกันทุกครั้งที่ทำได้ ความเท่าเทียมกันของระดับคำสั่งประเภทนี้เรียกว่าsuperscalar execution.