สถาปัตยกรรมคอมพิวเตอร์แบบขนาน - บทนำ

ในช่วง 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.