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

อ่าน 7 นาที

สถาปัตยกรรมคอมพิวเตอร์

การเปลี่ยนเส้นทางที่สามารถพิมพ์ได้/เปลี่ยนเส้นทางด้วยความเป็นไปได้

ในวิทยาการคอมพิวเตอร์และวิศวกรรมคอมพิวเตอร์สถาปัตยกรรมคอมพิวเตอร์คือการออกแบบเชิงแนวคิดและโครงสร้างการทำงานของ ระบบ...

สถาปัตยกรรมคอมพิวเตอร์

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

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

สถาปัตยกรรมคอมพิวเตอร์ยังคำนึงถึงความสมดุลระหว่างประสิทธิภาพต้นทุน พลังงาน ความน่าเชื่อถือ และความปลอดภัย ด้วย

ประวัติศาสตร์

สถาปัตยกรรมคอมพิวเตอร์ที่มีการบันทึกไว้เป็นครั้งแรกนั้นอยู่ในจดหมายโต้ตอบระหว่างCharles BabbageและAda Lovelaceซึ่งอธิบายถึงเครื่องวิเคราะห์ (analytical engine ) ขณะที่สร้างคอมพิวเตอร์Z1ในปี 1936 Konrad Zuseได้อธิบายในคำขอสิทธิบัตรสองฉบับสำหรับโครงการในอนาคตของเขาว่าคำสั่งเครื่องสามารถจัดเก็บไว้ในพื้นที่จัดเก็บเดียวกันกับที่ใช้สำหรับข้อมูล นั่นคือแนวคิดโปรแกรมที่จัดเก็บไว้[ 3 ] [ 4 ]ตัวอย่างสำคัญอื่นๆ ในยุคแรกๆ อีกสองตัวอย่างคือ:

คำว่า "สถาปัตยกรรม" ในวรรณกรรมคอมพิวเตอร์สามารถสืบย้อนไปถึงผลงานของ Lyle R. Johnson และFrederick P. Brooks, Jr.สมาชิกของแผนก Machine Organization ในศูนย์วิจัยหลักของ IBM ในปี 1959 Johnson มีโอกาสเขียนเอกสารวิจัยเกี่ยวกับStretch ซึ่งเป็น ซูเปอร์คอมพิวเตอร์ที่ IBM พัฒนาขึ้นสำหรับLos Alamos National Laboratory (ในขณะนั้นรู้จักกันในชื่อ Los Alamos Scientific Laboratory) เพื่ออธิบายระดับรายละเอียดในการอภิปรายเกี่ยวกับคอมพิวเตอร์ที่ตกแต่งอย่างหรูหรา เขาตั้งข้อสังเกตว่าคำอธิบายของเขาเกี่ยวกับรูปแบบ ประเภทคำสั่ง พารามิเตอร์ฮาร์ดแวร์ และการปรับปรุงความเร็วอยู่ในระดับของ "สถาปัตยกรรมระบบ" ซึ่งเป็นคำที่ดูมีประโยชน์มากกว่า "การจัดระเบียบเครื่องจักร" [ 7 ]

ต่อมา Brooks ซึ่งเป็นนักออกแบบ Stretch ได้เปิดบทที่ 2 ของหนังสือชื่อPlanning a Computer System: Project Stretchโดยระบุว่า "สถาปัตยกรรมคอมพิวเตอร์ เช่นเดียวกับสถาปัตยกรรมอื่นๆ คือศิลปะในการกำหนดความต้องการของผู้ใช้โครงสร้าง จากนั้นจึงออกแบบเพื่อตอบสนองความต้องการเหล่านั้นให้มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้ภายใต้ข้อจำกัดทางเศรษฐกิจและเทคโนโลยี" [ 8 ]

ต่อมา บรูคส์ได้ช่วยพัฒนา คอมพิวเตอร์ตระกูล IBM System/360ซึ่ง "สถาปัตยกรรม" กลายเป็นคำนามที่นิยาม "สิ่งที่ผู้ใช้จำเป็นต้องรู้" [ 9 ]ตระกูล System/360 ถูกแทนที่ด้วยคอมพิวเตอร์ตระกูลที่เข้ากันได้หลายรุ่น รวมถึง ตระกูล IBM Z ในปัจจุบัน ต่อมา ผู้ใช้คอมพิวเตอร์ได้ใช้คำนี้ในหลายๆ วิธีที่ไม่ชัดเจนนัก[ 10 ]

สถาปัตยกรรมคอมพิวเตอร์รุ่นแรกๆ ถูกออกแบบบนกระดาษแล้วจึงสร้างเป็นฮาร์ดแวร์ขั้นสุดท้ายโดยตรง[ 11 ] ต่อมา ต้นแบบสถาปัตยกรรมคอมพิวเตอร์ถูกสร้างขึ้นจริงในรูปแบบของ คอมพิวเตอร์แบบ ทรานซิสเตอร์-ทรานซิสเตอร์ลอจิก (TTL) เช่น ต้นแบบของ6800และPA-RISCซึ่งได้รับการทดสอบและปรับแต่งก่อนที่จะตัดสินใจสร้างเป็นฮาร์ดแวร์ขั้นสุดท้าย ในช่วงทศวรรษ 1990 สถาปัตยกรรมคอมพิวเตอร์ใหม่ๆ มักจะถูก "สร้าง" ทดสอบ และปรับแต่งภายในสถาปัตยกรรมคอมพิวเตอร์อื่นๆ ในโปรแกรมจำลองสถาปัตยกรรมคอมพิวเตอร์หรือภายใน FPGA ในฐานะไมโครโปรเซสเซอร์แบบซอฟต์แวร์หรือทั้งสองอย่าง ก่อนที่จะตัดสินใจสร้างเป็นฮาร์ดแวร์ขั้นสุดท้าย[ 12 ]

หมวดหมู่ย่อย

สาขาวิชาสถาปัตยกรรมคอมพิวเตอร์มีหมวดหมู่ย่อยหลัก 3 หมวดหมู่ ได้แก่[ 13 ]

มีเทคโนโลยีอื่นๆ ในสถาปัตยกรรมคอมพิวเตอร์ เทคโนโลยีต่อไปนี้ถูกใช้ในบริษัทขนาดใหญ่ เช่น Intel และมีการประมาณการในปี พ.ศ. 2545 [ 13 ]ว่าคิดเป็น 1% ของสถาปัตยกรรมคอมพิวเตอร์ทั้งหมด:

  • สถาปัตยกรรมระดับมหภาค : ชั้นทางสถาปัตยกรรมที่เป็นนามธรรมมากกว่าสถาปัตยกรรมระดับจุลภาค
  • สถาปัตยกรรมชุดคำสั่งแอสเซมบลี : ตัวประกอบแอสเซมบลีอัจฉริยะอาจแปลงภาษาแอสเซมบลี แบบนามธรรม ที่ใช้ร่วมกันในกลุ่มเครื่องจักรให้เป็นภาษาเครื่อง ที่แตกต่างกันเล็กน้อย สำหรับการใช้งานที่แตก ต่างกัน
  • สถาปัตยกรรมระดับมหภาคที่โปรแกรมเมอร์มองเห็นได้ : เครื่องมือภาษาโปรแกรมระดับสูง เช่นคอมไพเลอร์อาจกำหนดอินเทอร์เฟซหรือข้อตกลงที่สอดคล้องกันสำหรับโปรแกรมเมอร์ที่ใช้งาน โดยแยกความแตกต่างระหว่างชุดคำสั่งพื้นฐาน (ISA) และสถาปัตยกรรมระดับจุลภาคตัวอย่างเช่น มาตรฐานของภาษา C , C++หรือJavaกำหนดสถาปัตยกรรมระดับมหภาคที่โปรแกรมเมอร์มองเห็นได้แตกต่างกัน
  • ไมโครโค้ด : ไมโครโค้ดคือซอฟต์แวร์ที่แปลงคำสั่งให้ทำงานบนชิป มันทำหน้าที่เหมือนตัวห่อหุ้มฮาร์ดแวร์ โดยนำเสนอชุดคำสั่งที่เหมาะสมที่สุดสำหรับฮาร์ดแวร์นั้น ความสามารถในการแปลงคำสั่งนี้ช่วยให้นักออกแบบชิปมีตัวเลือกที่ยืดหยุ่นมากขึ้น: ตัวอย่างเช่น 1. ชิปรุ่นใหม่ที่ได้รับการปรับปรุงสามารถใช้ไมโครโค้ดเพื่อนำเสนอชุดคำสั่งเดียวกันกับชิปรุ่นเก่า ดังนั้นซอฟต์แวร์ทั้งหมดที่ใช้ชุดคำสั่งนั้นจะสามารถทำงานบนชิปใหม่ได้โดยไม่ต้องเปลี่ยนแปลงใดๆ ตัวอย่างเช่น 2. ไมโครโค้ดสามารถนำเสนอชุดคำสั่งที่หลากหลายสำหรับชิปพื้นฐานเดียวกัน ทำให้สามารถใช้งานซอฟต์แวร์ได้หลากหลายมากขึ้น
  • สถาปัตยกรรมพิน : ฟังก์ชันฮาร์ดแวร์ที่ไมโครโปรเซสเซอร์ควรจัดหาให้กับแพลตฟอร์มฮาร์ดแวร์ เช่น พิน x86 A20M, FERR/IGNNE หรือ FLUSH นอกจากนี้ยังรวมถึงข้อความที่โปรเซสเซอร์ควรส่งออกมาเพื่อให้แคช ภายนอก สามารถถูกทำให้ไม่ถูกต้อง (ว่างเปล่า) ฟังก์ชันสถาปัตยกรรมพินมีความยืดหยุ่นมากกว่าฟังก์ชัน ISA เนื่องจากฮาร์ดแวร์ภายนอกสามารถปรับให้เข้ากับการเข้ารหัสใหม่ หรือเปลี่ยนจากพินเป็นข้อความได้ คำว่า "สถาปัตยกรรม" นั้นเหมาะสม เพราะฟังก์ชันเหล่านี้ต้องมีให้สำหรับระบบที่เข้ากันได้ แม้ว่าวิธีการโดยละเอียดจะเปลี่ยนแปลงไปก็ตาม

บทบาท

คำนิยาม

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

การดำเนินการเกี่ยวข้องกับการออกแบบวงจรรวมการบรรจุภัณฑ์พลังงานและการระบายความร้อนการเพิ่มประสิทธิภาพของการออกแบบต้องอาศัยความคุ้นเคยกับหัวข้อต่างๆ ตั้งแต่คอมไพเลอร์และระบบปฏิบัติการไปจนถึงการออกแบบตรรกะและการบรรจุภัณฑ์[ 16 ]

สถาปัตยกรรมชุดคำสั่ง

สถาปัตยกรรมชุดคำสั่ง ( ISA) คืออินเทอร์เฟซระหว่างซอฟต์แวร์และฮาร์ดแวร์ของคอมพิวเตอร์ และยังสามารถมองได้ว่าเป็นมุมมองของโปรแกรมเมอร์ที่มีต่อเครื่องจักร คอมพิวเตอร์ไม่เข้าใจภาษาโปรแกรมระดับสูงเช่นJava , C++หรือภาษาโปรแกรมส่วนใหญ่ที่ใช้กัน โปรเซสเซอร์เข้าใจเฉพาะคำสั่งที่เข้ารหัสในรูปแบบตัวเลข ซึ่งโดยปกติจะเป็นเลขฐานสองเครื่องมือซอฟต์แวร์ เช่นคอมไพเลอร์จะแปลภาษาโปรแกรมระดับสูงเหล่านั้นให้เป็นคำสั่งที่โปรเซสเซอร์สามารถเข้าใจได้[ 17 ] [ 18 ]

นอกจากคำสั่งแล้ว ISA ยังกำหนดรายการในคอมพิวเตอร์ที่โปรแกรมสามารถใช้งานได้เช่นชนิดข้อมูลรีจิสเตอร์โหมดการกำหนดแอดเดรสและหน่วยความจำ คำสั่งจะระบุ ตำแหน่งของรายการที่ใช้งานได้เหล่านี้โดยใช้ดัชนีรีจิสเตอร์ (หรือชื่อ) และโหมดการกำหนดแอดเดรสหน่วยความจำ[ 19 ] [ 20 ]

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

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

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

การจัดระเบียบคอมพิวเตอร์

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

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

การดำเนินการ

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

  • การออกแบบ การนำไปใช้เชิงตรรกะคือการออกแบบวงจรที่จำเป็นในระดับเกตตรรกะ
  • การออกแบบวงจรนั้นเกี่ยวข้องกับ การออกแบบระดับ ทรานซิสเตอร์ขององค์ประกอบพื้นฐาน (เช่น เกต มัลติเพล็กเซอร์แลตช์ ) รวมถึงบล็อกขนาดใหญ่บางส่วน ( ALUแคช ฯลฯ) ซึ่งอาจได้รับการออกแบบในระดับเกตตรรกะ หรือแม้แต่ในระดับทางกายภาพหากการออกแบบนั้นต้องการ
  • การนำไปใช้ในเชิงกายภาพนั้นเกี่ยวข้องกับการออกแบบวงจรทางกายภาพ โดยนำส่วนประกอบต่างๆ ของวงจรมาวางไว้บนแผนผัง ของชิป หรือบนแผงวงจร แล้วสร้างสายไฟเชื่อมต่อส่วนประกอบเหล่านั้นเข้าด้วยกัน
  • การทดสอบการตรวจสอบความถูกต้องของการออกแบบจะทดสอบคอมพิวเตอร์โดยรวมเพื่อดูว่าสามารถทำงานได้ในทุกสถานการณ์และทุกช่วงเวลาหรือไม่ เมื่อกระบวนการตรวจสอบความถูกต้องของการออกแบบเริ่มต้นขึ้น การออกแบบในระดับตรรกะจะถูกทดสอบโดยใช้โปรแกรมจำลองตรรกะ อย่างไรก็ตาม วิธีนี้มักจะช้าเกินไปที่จะทำการทดสอบที่สมจริง ดังนั้น หลังจากทำการแก้ไขตามผลการทดสอบครั้งแรกแล้ว จึงสร้างต้นแบบโดยใช้ Field-Programmable Gate-Arrays ( FPGAs ) โครงงานอดิเรกส่วนใหญ่จะหยุดอยู่ที่ขั้นตอนนี้ ขั้นตอนสุดท้ายคือการทดสอบวงจรรวมต้นแบบ ซึ่งอาจต้องมีการออกแบบใหม่หลายครั้ง

สำหรับซีพียูกระบวนการพัฒนาทั้งหมดจะถูกจัดระเบียบแตกต่างออกไป และมักเรียกกันว่า การ ออกแบบซีพียู

เป้าหมายการออกแบบ

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

วิธีการที่พบได้บ่อยที่สุดคือการวิเคราะห์พลังงานอย่างละเอียดและหาวิธีลดการใช้พลังงานในขณะที่ยังคงประสิทธิภาพการทำงานที่เพียงพอ

ผลงาน

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

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

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

ปัจจัยอื่นๆ ที่มีผลต่อความเร็ว ได้แก่ ส่วนผสมของหน่วยประมวล ผล ความเร็ว ของบัสหน่วยความจำที่มีอยู่ และประเภทและลำดับของคำสั่งในโปรแกรม

ความเร็วมีสองประเภทหลัก ได้แก่ความหน่วง (latency)และปริมาณงาน (throughput ) ความหน่วงคือเวลาตั้งแต่เริ่มต้นกระบวนการจนถึงเสร็จสิ้น ปริมาณงานคือปริมาณงานที่ทำต่อหน่วยเวลา ความหน่วงของการขัดจังหวะ ( interrupt latency)คือเวลาตอบสนองสูงสุดที่รับประกันได้ของระบบต่อเหตุการณ์ทางอิเล็กทรอนิกส์ (เช่น เมื่อฮาร์ดไดรฟ์ย้ายข้อมูลเสร็จสิ้น)

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

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

ประสิทธิภาพการใช้พลังงาน

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

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

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

การเปลี่ยนแปลงในความต้องการของตลาด

การเพิ่มขึ้นของความถี่สัญญาณนาฬิกาเติบโตช้าลงในช่วงไม่กี่ปีที่ผ่านมา เมื่อเทียบกับการปรับปรุงการลดการใช้พลังงาน สิ่งนี้ได้รับแรงผลักดันจากการสิ้นสุดของกฎของมัวร์และความต้องการอายุการใช้งานแบตเตอรี่ ที่ยาวนานขึ้น และการลดขนาดของเทคโนโลยีมือถือการเปลี่ยนแปลงจุดสนใจจากอัตราสัญญาณนาฬิกาที่สูงขึ้นไปสู่การใช้พลังงานและการย่อขนาดสามารถแสดงให้เห็นได้จากการลดการใช้พลังงานอย่างมีนัยสำคัญมากถึง 50% ที่Intel รายงาน ในการเปิดตัวสถาปัตยกรรมไมโคร Haswellซึ่งพวกเขาลดเกณฑ์มาตรฐานการใช้พลังงานจาก 30–40 วัตต์ลงเหลือ 10–20 วัตต์[ 26 ]เมื่อเปรียบเทียบกับความเร็วในการประมวลผลที่เพิ่มขึ้นจาก 3 GHz เป็น 4 GHz (ปี 2002 ถึง 2006) จะเห็นได้ว่าจุดสนใจในการวิจัยและพัฒนาได้เปลี่ยนจากความถี่สัญญาณนาฬิกาไปสู่การใช้พลังงานน้อยลงและใช้พื้นที่น้อยลง[ 27 ]

ดูเพิ่มเติม

แหล่งที่มา

  • John L. HennessyและDavid Patterson (2006). สถาปัตยกรรมคอมพิวเตอร์: แนวทางเชิงปริมาณ (  ฉบับที่สี่). Morgan Kaufmann. ISBN 978-0-12-370490-0.
  • Barton, Robert S. (1961). "การออกแบบเชิงฟังก์ชันของคอมพิวเตอร์". Communications of the ACM . 4 (9): 405. doi : 10.1145/366696.366774 .
  • Barton, Robert S. (พฤษภาคม 1961). "แนวทางใหม่ในการออกแบบการทำงานของคอมพิวเตอร์ดิจิทัล". รายงานการประชุม Western Joint Computer Conference . หน้า393–396 . doi : 10.1145/1460690.1460736 . เกี่ยวกับการออกแบบคอมพิวเตอร์Burroughs B5000
  • เบลล์, ซี. กอร์ดอน ; นิวเวลล์, อัลเลน (1971). โครงสร้างคอมพิวเตอร์: บทอ่านและตัวอย่าง . แมคกรอว์-ฮิลล์.
  • Blaauw, GA ; Brooks, FP, Jr. (1964). "โครงสร้างของ System/360 ตอนที่ 1 - โครงร่างของโครงสร้างเชิงตรรกะ". IBM Systems Journal . 3 (2): 119– 135. doi : 10.1147/sj.32.0118 .{{cite journal}}: CS1 maint: multiple names: authors list ( link )
  • Tanenbaum, Andrew S. (1979). โครงสร้างองค์กรคอมพิวเตอร์ . Englewood Cliffs, New Jersey : Prentice-Hall. ISBN 0-13-148521-0.
  • การบรรยายด้านสถาปัตยกรรมคอมพิวเตอร์ของมหาวิทยาลัยคาร์เนกีเมลลอน
  • ISCA: เอกสารประกอบการประชุมสัมมนาวิชาการนานาชาติว่าด้วยสถาปัตยกรรมคอมพิวเตอร์
  • ไมโคร: การประชุมวิชาการนานาชาติ IEEE/ACM ว่าด้วยสถาปัตยกรรมไมโคร
  • HPCA: การประชุมวิชาการนานาชาติว่าด้วยสถาปัตยกรรมคอมพิวเตอร์ประสิทธิภาพสูง
  • ASPLOS: การประชุมนานาชาติว่าด้วยการสนับสนุนด้านสถาปัตยกรรมสำหรับภาษาโปรแกรมและระบบปฏิบัติการ
  • ธุรกรรม ACM ว่าด้วยสถาปัตยกรรมและการเพิ่มประสิทธิภาพโค้ด
  • วารสาร IEEE Transactions on Computers
  • สถาปัตยกรรมระบบคอมพิวเตอร์ของฟอน นอยมันน์ที่Wayback Machine (เก็บถาวรเมื่อ 31 ตุลาคม 2017)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Computer_architecture&oldid=1361815207 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ สถาปัตยกรรมคอมพิวเตอร์

ในวิทยาการคอมพิวเตอร์และวิศวกรรมคอมพิวเตอร์สถาปัตยกรรมคอมพิวเตอร์คือการออกแบบเชิงแนวคิดและโครงสร้างการทำงานของ ระบบ...

ประวัติศาสตร์

สถาปัตยกรรมคอมพิวเตอร์ที่มีการบันทึกไว้เป็นครั้งแรกนั้นอยู่ในจดหมายโต้ตอบระหว่าง Charles Babbage และ Ada Lovelace ซึ่งอธิบายถึง เครื่องวิเคราะห์ (analytical engine ) ขณะที่สร้างคอมพิวเตอร์ Z1 ในปี 1936 Konrad Zuse...

หมวดหมู่ย่อย

สาขาวิชาสถาปัตยกรรมคอมพิวเตอร์มีหมวดหมู่ย่อยหลัก 3 หมวดหมู่ ได้แก่ [ 13 ]

คำนิยาม

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