ความก้าวหน้าของความเร็วคอมพิวเตอร์เกือบทั้งหมดมาจากหนึ่งในพื้นที่ต่อไปนี้:
ทรานซิสเตอร์ขนาดเล็ก
สองสิ่งเป็นผลมาจากการทำให้ทรานซิสเตอร์มีขนาดเล็กลง:
- พวกมันอยู่ใกล้กันมากขึ้นดังนั้นเวลาที่ใช้ในการส่งสัญญาณไฟฟ้าจากแหล่งหนึ่งไปยังปลายทางจึงน้อยกว่า ดังนั้นแม้ว่าสัญญาณไฟฟ้าไม่ได้เดินทางใด ๆ ได้เร็วขึ้นกว่า 50 ปีที่ผ่านมาพวกเขามักจะเดินทางในระยะทางที่สั้นกว่านี้
- สามารถรวมทรานซิสเตอร์ได้มากขึ้นบนชิปซึ่งหมายความว่า "ทำงาน" ได้มากขึ้นในเวลาเดียวกัน ยิ่งมีการเพิ่มทรานซิสเตอร์มากเท่าไหร่ก็ยิ่งยากที่จะหางานที่มีประโยชน์สำหรับพวกเขาเท่านั้น แต่มีการใช้เทคนิคที่ชาญฉลาดมากมาย (ดูด้านล่าง)
"งานที่มีประโยชน์" มากขึ้นต่อการเรียนการสอน
ตัวอย่างเช่นโปรเซสเซอร์บางตัวไม่มีคำแนะนำในการคูณหรือหารจำนวนเต็ม แต่งานนี้จะต้องดำเนินการด้วยซอฟต์แวร์รูทีนช้า การเพิ่มคำแนะนำการคูณและหารช่วยเพิ่มความเร็วให้มากขึ้น การเพิ่มคำสั่งfloating-pointสามารถเพิ่มความเร็วซอฟต์แวร์ที่ต้องใช้ตัวเลข floating-point
เป็นวิธีที่สำคัญในการทำมากขึ้น "งานที่เป็นประโยชน์" ต่อการเรียนการสอนมีการเพิ่มขนาดคำ ซีพียูที่สามารถดำเนินการกับหมายเลข 32- บิตมักต้องการคำแนะนำน้อยกว่ามากในการทำงานเดียวกันกับซีพียู 16 บิตหรือ 8 บิต
โปรเซสเซอร์บางตัวรองรับคำสั่งที่ทำหลายอย่างพร้อมกันโดยเฉพาะอย่างยิ่งคำแนะนำที่ดำเนินการเดียวกันกับหลายรายการข้อมูล ( SIMD )
คำแนะนำเพิ่มเติมต่อรอบ
"วงจรสัญญาณนาฬิกา" เป็นวิธีที่โปรเซสเซอร์ดำเนินการจากสถานะปัจจุบันไปเป็นสถานะถัดไป เรียกได้ว่าเป็นหน่วยงานที่เล็กที่สุดที่โปรเซสเซอร์สามารถทำได้ในแต่ละครั้ง อย่างไรก็ตามจำนวนรอบนาฬิกาที่คำสั่งเฉพาะนั้นขึ้นอยู่กับการออกแบบของโปรเซสเซอร์
ด้วยการกำเนิดของpipelined processorมันเป็นไปได้ที่คำสั่งแยกกันสำหรับ "เหลื่อม" คือหนึ่งจะเริ่มก่อนที่ก่อนหน้านี้จะเสร็จสิ้น อย่างไรก็ตามคำสั่งบางคำสั่งอาจทำให้คำสั่งถัดไปเป็นโมฆะซึ่งจะไม่เป็นที่รู้จักจนกว่าคำสั่งต่อไปจะถูกดำเนินการบางส่วนเพื่อให้สิ่งต่าง ๆ มีความซับซ้อน (ตัวประมวลผลไปป์ไลน์มีตรรกะเพื่อให้แน่ใจว่าทุกอย่างทำงานได้ดี แต่ลักษณะของประสิทธิภาพนั้นซับซ้อนกว่า)
ตัวประมวลผล Superscalarนำสิ่งนี้ไปสู่ระดับถัดไปโดยอนุญาตให้สองคำสั่งดำเนินการในเวลาเดียวกันและการดำเนินการที่ไม่เป็นไปตามคำสั่งจะเพิ่มอีกหนึ่งขั้นตอน คุณสมบัติเหล่านี้ต้องการการวิเคราะห์กระแสการเรียนการสอนซึ่งคำสั่งใดไม่ขัดแย้งกัน
แม้ว่าจะมีเทคนิคอื่น ๆ (เช่นการทำนายสาขา , การดำเนินการเก็งกำไร ) สิ่งที่สำคัญมากก็คือภาพรวม:
- ทุกคำสั่งใช้จำนวนรอบนาฬิกาที่แน่นอนเพื่อให้สมบูรณ์ (ไม่จำเป็นต้องคงที่)
- แต่คำสั่งหลายคำสั่งสามารถดำเนินการพร้อมกันได้
- ดังนั้นจึงมี " คำแนะนำต่อรอบ " ซึ่งสามารถวัดได้> 1 สำหรับโปรเซสเซอร์ระดับสูง
- แต่มันขึ้นอยู่กับปริมาณงานเป็นอย่างมาก
รอบเพิ่มเติมต่อวินาที
กล่าวอีกนัยหนึ่งความเร็วสัญญาณนาฬิกาที่สูงขึ้น การเพิ่มความเร็วสัญญาณนาฬิกาไม่เพียงเพิ่มความร้อนเท่านั้น แต่ยังต้องใช้การออกแบบชิปที่มีระเบียบวินัยอีกด้วยเนื่องจากมีการ จำกัด เวลาในการทำให้วงจรมีเสถียรภาพ เราได้รับไมล์สะสมจำนวนมากจากช่วงนี้จนถึงปี 2000 เมื่อเรามีขีด จำกัด ในทางปฏิบัติ
ข้อมูลในสถานที่ที่เหมาะสมในเวลาที่เหมาะสม
แม้ว่าส่วนประกอบภายในซีพียูจะเข้าใกล้กันมากขึ้นเนื่องจากทรานซิสเตอร์หดตัว แต่ซีพียูและแรมก็ยังห่างกัน 5-10 ซม. หากคำสั่งต้องการบางสิ่งจาก RAM คำสั่งนั้นจะไม่ใช้เวลา 5 หรือ 6 รอบในการดำเนินการมันจะใช้เวลาประมาณ 200 นี่คือปัญหาคอขวดของvon Neumann
อาวุธหลักของเราต่อนี้เป็นแคช ข้อมูลที่เข้าถึงล่าสุดมีแนวโน้มที่จะเข้าถึงได้อีกครั้งดังนั้นจึงถูกเก็บไว้ในหน่วยความจำพิเศษ (เรียกว่าแคช) ที่อยู่ภายในชิป CPU ทำให้เข้าถึงได้เร็วขึ้นมาก
อย่างไรก็ตามเทคนิคอื่น ๆ (เช่นการวางท่อและการคาดคะเนสาขา ) ช่วยให้โปรเซสเซอร์ทำงานได้อย่างมีประโยชน์ในขณะที่รอให้ข้อมูลมาถึงและคาดการณ์ว่าจะต้องใช้ข้อมูลใดเร็ว ๆ นี้
โปรเซสเซอร์หลายตัวและ / หรือเฉพาะ
การเขียนซอฟต์แวร์สำหรับโปรเซสเซอร์เดียวง่ายกว่ามากสำหรับโปรเซสเซอร์หลายตัว อย่างไรก็ตามบางครั้งประโยชน์ด้านประสิทธิภาพ / ราคา / การใช้พลังงานทำให้คุ้มค่า
นอกจากนี้โปรเซสเซอร์บางตัวยังเหมาะสมอย่างยิ่งกับงานบางอย่าง ตัวอย่างเช่นGPUได้รับการออกแบบมาโดยเฉพาะสำหรับการคำนวณที่จำเป็นสำหรับการเรนเดอร์กราฟิก 2D และ 3D และเอฟเฟกต์
โปรเซสเซอร์แบบมัลติคอร์เป็นตัวประมวลผลหลายตัวในชิปตัวเดียว