การออกแบบโปรเซสเซอร์เพื่อมอบประสิทธิภาพสูงนั้นเป็นมากกว่าแค่การเพิ่มอัตรานาฬิกา มีวิธีอื่น ๆ อีกมากมายในการเพิ่มประสิทธิภาพเปิดใช้งานผ่านกฎหมายของมัวร์และเครื่องมือในการออกแบบโปรเซสเซอร์ที่ทันสมัย
อัตรานาฬิกาไม่สามารถเพิ่มได้เรื่อย ๆ
จากภาพรวมในครั้งแรกดูเหมือนว่าหน่วยประมวลผลจะประมวลคำสั่งเพียงลำพังโดยที่ประสิทธิภาพเพิ่มขึ้นผ่านอัตรานาฬิกาที่สูงขึ้น อย่างไรก็ตามการเพิ่มอัตรานาฬิกาอย่างเดียวไม่เพียงพอ การใช้พลังงานและความร้อนเพิ่มขึ้นตามอัตรานาฬิกาที่สูงขึ้น
ด้วยอัตราสัญญาณนาฬิกาที่สูงมากการเพิ่มแรงดันคอร์ของ CPU จึงเป็นสิ่งจำเป็น เนื่องจาก TDP เพิ่มขึ้นด้วยจตุรัสของแกน V ในที่สุดเราก็มาถึงจุดที่ใช้พลังงานมากเกินไปความร้อนออกมาและความต้องการในการระบายความร้อนจะช่วยป้องกันการเพิ่มขึ้นของอัตรานาฬิกา ข้อ จำกัด นี้ก็มาถึงในปี 2004 ในสมัยของ Pentium 4 เพรสคอตต์ ในขณะที่การปรับปรุงประสิทธิภาพการใช้พลังงานได้ช่วยให้เร็วขึ้นการเพิ่มขึ้นของอัตรานาฬิกาไม่เป็นไปได้อีกต่อไป ดู: เหตุใดผู้ผลิตซีพียูจึงหยุดเพิ่มความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์
กราฟแสดงความเร็วสัญญาณนาฬิกาในพีซีผู้คลั่งไคล้การใช้งานในช่วงหลายปีที่ผ่านมา แหล่งที่มาของภาพ
- จากกฎของมัวร์การสังเกตซึ่งระบุว่าจำนวนของทรานซิสเตอร์ในวงจรรวมเพิ่มขึ้นเป็นสองเท่าทุกๆ 18 ถึง 24 เดือนซึ่งส่วนใหญ่เป็นผลมาจากการหดตัวของแม่พิมพ์ซึ่งเป็นเทคนิคที่หลากหลายซึ่งช่วยเพิ่มประสิทธิภาพการทำงาน เทคนิคเหล่านี้ได้รับการขัดเกลาและสมบูรณ์แบบในช่วงหลายปีที่ผ่านมาทำให้สามารถใช้คำสั่งเพิ่มเติมได้ในช่วงเวลาที่กำหนด เทคนิคเหล่านี้จะกล่าวถึงด้านล่าง
สตรีมคำสั่งต่อเนื่องที่ดูเหมือนจะสามารถขนานกันได้
- แม้ว่าโปรแกรมอาจประกอบด้วยชุดของคำสั่งเพื่อดำเนินการทีละรายการคำสั่งเหล่านี้หรือบางส่วนสามารถดำเนินการพร้อมกันได้บ่อยครั้งมาก นี้เรียกว่าการเรียนการสอนในระดับขนาน (ILP) การใช้ประโยชน์จาก ILP มีความสำคัญต่อการบรรลุประสิทธิภาพสูงและโปรเซสเซอร์ที่ทันสมัยใช้เทคนิคมากมายในการทำเช่นนั้น
การวางท่อแบ่งคำแนะนำออกเป็นชิ้นเล็ก ๆ ซึ่งสามารถดำเนินการแบบขนาน
แต่ละคำสั่งสามารถแบ่งออกเป็นลำดับขั้นตอนซึ่งแต่ละส่วนจะถูกดำเนินการโดยส่วนต่าง ๆ ของโปรเซสเซอร์ การแนะนำไปป์ไลน์ช่วยให้หลายคำสั่งสามารถทำตามขั้นตอนเหล่านี้ได้โดยไม่ต้องรอให้คำสั่งแต่ละคำสั่งเสร็จสิ้นโดยสมบูรณ์ การวางท่อช่วยให้อัตรานาฬิกาสูงขึ้น: โดยการมีหนึ่งขั้นตอนของแต่ละคำสั่งในแต่ละรอบนาฬิกาจะต้องใช้เวลาน้อยลงสำหรับแต่ละรอบกว่าถ้าคำสั่งทั้งหมดต้องเสร็จสมบูรณ์ทีละครั้ง
ท่อ RISC คลาสสิกที่มีห้าขั้นตอน: การเรียนการสอนสามารถดึงข้อมูลคำแนะนำและการถอดรหัสคำแนะนำการดำเนินการเข้าถึงหน่วยความจำและ writeback โปรเซสเซอร์สมัยใหม่แบ่งการทำงานออกเป็นหลายขั้นตอนทำให้เกิดขั้นตอนที่ลึกกว่าพร้อมขั้นตอนเพิ่มเติม (และการเพิ่มอัตรานาฬิกาที่สามารถทำได้เนื่องจากแต่ละขั้นตอนมีขนาดเล็กลงและใช้เวลาน้อยลงในการดำเนินการให้เสร็จสมบูรณ์)
แหล่งที่มาของภาพ
อย่างไรก็ตามการวางท่อสามารถแนะนำอันตรายที่ต้องแก้ไขเพื่อให้แน่ใจว่าการทำงานของโปรแกรมถูกต้อง
เนื่องจากส่วนต่าง ๆ ของแต่ละคำสั่งจะถูกดำเนินการในเวลาเดียวกันจึงเป็นไปได้ที่ความขัดแย้งจะเกิดขึ้นซึ่งรบกวนการดำเนินการที่ถูกต้อง เหล่านี้เรียกว่าอันตราย อันตรายมีสามประเภท ได้แก่ ข้อมูลโครงสร้างและการควบคุม
อันตรายของข้อมูลเกิดขึ้นเมื่อคำแนะนำในการอ่านและแก้ไขข้อมูลเดียวกันในเวลาเดียวกันหรือในลำดับที่ไม่ถูกต้องอาจนำไปสู่ผลลัพธ์ที่ไม่ถูกต้อง อันตรายจากโครงสร้างเกิดขึ้นเมื่อคำสั่งหลายคำสั่งจำเป็นต้องใช้ส่วนใดส่วนหนึ่งของโปรเซสเซอร์พร้อมกัน อันตรายจากการควบคุมเกิดขึ้นเมื่อพบคำสั่งสาขาตามเงื่อนไข
อันตรายเหล่านี้อาจแก้ไขได้หลายวิธี ทางออกที่ง่ายที่สุดคือการหยุดการส่งมอบชั่วคราวหรือดำเนินการคำสั่งอย่างใดอย่างหนึ่งหรือชั่วคราวเพื่อให้มั่นใจว่าผลลัพธ์ที่ถูกต้อง สิ่งนี้จะหลีกเลี่ยงได้เมื่อทำได้เนื่องจากจะลดประสิทธิภาพ สำหรับข้อมูลอันตรายเทคนิคต่าง ๆ เช่นตัวถูกดำเนินการส่งต่อถูกนำมาใช้เพื่อลดแผงลอย ความเสี่ยงในการควบคุมได้รับการจัดการผ่านการคาดคะเนสาขาซึ่งจำเป็นต้องได้รับการดูแลเป็นพิเศษและครอบคลุมในหัวข้อถัดไป
การคาดคะเนสาขาใช้ในการแก้ปัญหาอันตรายจากการควบคุมซึ่งสามารถทำลายระบบท่อทั้งหมด
อันตรายจากการควบคุมซึ่งเกิดขึ้นเมื่อพบสาขาที่มีเงื่อนไขนั้นเป็นเรื่องร้ายแรงโดยเฉพาะ สาขาแนะนำความเป็นไปได้ที่การดำเนินการจะดำเนินการต่อที่อื่นในโปรแกรมมากกว่าเพียงแค่คำสั่งถัดไปในสตรีมคำสั่งโดยขึ้นอยู่กับเงื่อนไขเฉพาะว่าเป็นจริงหรือเท็จ
เนื่องจากไม่สามารถกำหนดคำสั่งถัดไปเพื่อดำเนินการได้จนกว่าจะมีการประเมินเงื่อนไขของสาขาจึงไม่สามารถแทรกคำแนะนำใด ๆ ลงในไปป์ไลน์หลังจากที่สาขาขาดหายไป ไปป์ไลน์จึงถูกล้าง ( flushed ) ซึ่งสามารถเสียรอบนาฬิกาได้มากเท่าที่มีขั้นตอนในไพพ์ไลน์ สาขามักจะเกิดขึ้นบ่อยครั้งในโปรแกรมดังนั้นอันตรายจากการควบคุมอาจส่งผลกระทบอย่างรุนแรงต่อประสิทธิภาพของโปรเซสเซอร์
การคาดคะเนสาขาจะแก้ไขปัญหานี้โดยคาดเดาว่าจะมีการแยกสาขาหรือไม่ วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการสมมติว่ากิ่งไม้นั้นถูกยึดหรือไม่เคยถูกใช้ อย่างไรก็ตามโปรเซสเซอร์ที่ทันสมัยใช้เทคนิคที่ซับซ้อนมากขึ้นเพื่อความแม่นยำในการทำนายที่สูงขึ้น โดยพื้นฐานแล้วตัวประมวลผลจะติดตามสาขาก่อนหน้าและใช้ข้อมูลนี้ในหลายวิธีในการทำนายคำสั่งถัดไปเพื่อดำเนินการ ไปป์ไลน์นั้นสามารถให้อาหารพร้อมคำแนะนำจากตำแหน่งที่ถูกต้องตามการคาดการณ์
แน่นอนหากการทำนายผิดคำแนะนำใด ๆ ที่ถูกส่งผ่านไปป์ไลน์หลังจากสาขาต้องถูกทิ้งดังนั้นการล้างท่อ ด้วยเหตุนี้ความแม่นยำของตัวพยากรณ์สาขาจึงมีความสำคัญมากขึ้นเรื่อย ๆ เนื่องจากท่อส่งก๊าซจะยาวขึ้นเรื่อย ๆ เทคนิคการทำนายสาขาเฉพาะนั้นอยู่นอกเหนือขอบเขตของคำตอบนี้
แคชใช้เพื่อเพิ่มความเร็วในการเข้าถึงหน่วยความจำ
โปรเซสเซอร์สมัยใหม่สามารถประมวลผลคำสั่งและประมวลผลข้อมูลได้เร็วกว่าที่หน่วยความจำหลักสามารถเข้าถึงได้ เมื่อตัวประมวลผลต้องเข้าถึง RAM การประมวลผลสามารถหยุดทำงานเป็นเวลานานจนกว่าข้อมูลจะพร้อมใช้งาน เพื่อลดผลกระทบนี้พื้นที่หน่วยความจำความเร็วสูงขนาดเล็กที่เรียกว่าแคชจะรวมอยู่ในโปรเซสเซอร์
เนื่องจากเนื้อที่ จำกัด ที่มีอยู่บนตัวประมวลผลตายแคชมีขนาด จำกัด มาก จะทำให้มากที่สุดของความจุที่ จำกัด นี้แคชเก็บเฉพาะข้อมูลส่วนใหญ่เมื่อเร็ว ๆ นี้หรือบ่อยเข้าถึง ( ท้องที่ชั่วคราว ) เมื่อการเข้าถึงหน่วยความจำมีแนวโน้มที่จะกระจุกตัวภายในพื้นที่เฉพาะ (ตำแหน่งเชิงพื้นที่ ) บล็อกของข้อมูลที่อยู่ใกล้กับสิ่งที่เข้าถึงเมื่อเร็ว ๆ นี้จะถูกเก็บไว้ในแคชด้วย ดู: ถิ่นกำเนิดของการอ้างอิง
แคชยังได้รับการจัดระเบียบในหลายระดับขนาดแตกต่างกันเพื่อเพิ่มประสิทธิภาพการทำงานเนื่องจากแคชที่ใหญ่กว่ามักจะช้ากว่าแคชที่เล็กกว่า ตัวอย่างเช่นโปรเซสเซอร์อาจมีแคชระดับ 1 (L1) ซึ่งมีขนาดเพียง 32 KB ในขณะที่แคชระดับ 3 (L3) อาจมีขนาดใหญ่หลายเมกะไบต์ ขนาดของแคชรวมถึงความสัมพันธ์ของแคชซึ่งมีผลต่อวิธีการที่ตัวประมวลผลจัดการการแทนที่ข้อมูลในแคชแบบเต็มส่งผลกระทบอย่างมากต่อประสิทธิภาพที่ได้รับจากแคช
การดำเนินการที่ไม่เป็นไปตามคำสั่งช่วยลดแผงขายเนื่องจากอันตรายโดยการอนุญาตให้คำแนะนำอิสระดำเนินการก่อน
ไม่ใช่ทุกคำสั่งในลำธารคำสั่งขึ้นอยู่กับแต่ละอื่น ๆ ตัวอย่างเช่นแม้ว่าa + b = c
จะต้องดำเนินการก่อนc + d = e
, a + b = c
และd + e = f
มีความเป็นอิสระและสามารถดำเนินการได้ในเวลาเดียวกัน
การดำเนินการที่ไม่เป็นไปตามคำสั่งใช้ประโยชน์จากข้อเท็จจริงนี้เพื่อให้คำสั่งอื่นดำเนินการโดยอิสระขณะที่คำสั่งหนึ่งหยุดทำงาน แทนที่จะต้องการคำแนะนำในการดำเนินการอย่างใดอย่างหนึ่งหลังจากที่อื่นใน lockstepฮาร์ดแวร์การตั้งเวลาจะถูกเพิ่มเพื่อให้คำแนะนำอิสระที่จะดำเนินการในลำดับใด ๆ คำแนะนำจะส่งคำสั่งคิวและออกไปยังส่วนที่เหมาะสมในการประมวลผลเมื่อข้อมูลที่ต้องการจะกลายเป็นใช้ได้ ด้วยวิธีนี้คำสั่งที่ค้างอยู่รอข้อมูลจากคำสั่งก่อนหน้านี้ไม่ผูกคำแนะนำในภายหลังที่เป็นอิสระ
แหล่งที่มาของภาพ
- โครงสร้างข้อมูลใหม่และขยายจำนวนมากจำเป็นต้องใช้ในการดำเนินการตามคำสั่ง คิวคำสั่งดังกล่าวซึ่งเป็นสถานีสำรองใช้เพื่อพักคำสั่งไว้จนกว่าจะมีข้อมูลที่จำเป็นสำหรับการดำเนินการ สั่งซื้อใหม่บัฟเฟอร์ (ROB)ถูกนำมาใช้ในการติดตามสถานะของคำแนะนำในความคืบหน้าในการสั่งซื้อที่พวกเขาได้รับเพื่อให้คำแนะนำว่าจะแล้วเสร็จในลำดับที่ถูกต้อง ไฟล์ลงทะเบียนที่ขยายเกินจำนวนของการลงทะเบียนให้โดยสถาปัตยกรรมของตัวเองเป็นสิ่งจำเป็นสำหรับการลงทะเบียนเปลี่ยนชื่อซึ่งจะช่วยป้องกันไม่ให้คำแนะนำที่เป็นอิสระจากการเป็นอย่างอื่นขึ้นเนื่องจากความต้องการที่จะแบ่งปันชุด จำกัด ของการลงทะเบียนให้โดยสถาปัตยกรรม
สถาปัตยกรรม Superscalar อนุญาตให้มีคำสั่งหลายคำสั่งภายในสตรีมคำสั่งเพื่อดำเนินการในเวลาเดียวกัน
เทคนิคที่กล่าวข้างต้นเพิ่มประสิทธิภาพของขั้นตอนการสอนเท่านั้น เทคนิคเหล่านี้เพียงอย่างเดียวไม่อนุญาตให้มีคำสั่งมากกว่าหนึ่งคำสั่งให้เสร็จสมบูรณ์ต่อหนึ่งรอบสัญญาณนาฬิกา อย่างไรก็ตามมักเป็นไปได้ที่จะเรียกใช้งานคำสั่งแต่ละคำสั่งในสตรีมคำสั่งแบบขนานเช่นเมื่อไม่ได้พึ่งพาซึ่งกันและกัน (ดังที่กล่าวไว้ในส่วนการดำเนินการนอกคำสั่งด้านบน)
สถาปัตยกรรม Superscalarใช้ประโยชน์จากความเท่าเทียมในระดับคำสั่งนี้โดยอนุญาตให้ส่งคำสั่งไปยังหน่วยการทำงานหลายหน่วยพร้อมกัน โปรเซสเซอร์อาจมีหน่วยการทำงานหลายประเภทที่เฉพาะเจาะจง (เช่น ALU จำนวนเต็ม) และ / หรือประเภทหน่วยการทำงานที่แตกต่างกัน (เช่นทศนิยมและหน่วยจำนวนเต็ม) ซึ่งคำสั่งอาจถูกส่งพร้อมกัน
ในตัวประมวลผล superscalar คำสั่งถูกกำหนดเวลาไว้ในการออกแบบที่ไม่เป็นไปตามคำสั่ง แต่ขณะนี้มีพอร์ตที่มีปัญหาหลายพอร์ตทำให้สามารถออกและดำเนินการคำสั่งต่าง ๆ ได้ในเวลาเดียวกัน วงจรถอดรหัสคำสั่งแบบขยายช่วยให้โปรเซสเซอร์สามารถอ่านคำสั่งได้หลายคำสั่งในแต่ละรอบนาฬิกาและกำหนดความสัมพันธ์ระหว่างกัน โปรเซสเซอร์ประสิทธิภาพสูงที่ทันสมัยสามารถกำหนดเวลาได้สูงสุดแปดคำสั่งต่อรอบนาฬิกาขึ้นอยู่กับสิ่งที่แต่ละคำสั่งทำ นี่คือวิธีที่ตัวประมวลผลสามารถทำตามคำแนะนำได้หลายคำสั่งต่อรอบสัญญาณนาฬิกา ดู: เอ็นจิ้นการแฮส Haswellบน AnandTech
แหล่งที่มาของภาพ
- อย่างไรก็ตามสถาปัตยกรรม superscalar นั้นยากมากในการออกแบบและเพิ่มประสิทธิภาพ การตรวจสอบการขึ้นต่อกันระหว่างคำสั่งนั้นจำเป็นต้องใช้ตรรกะที่ซับซ้อนมากซึ่งขนาดนั้นสามารถขยายได้แบบทวีคูณเมื่อจำนวนคำสั่งเพิ่มขึ้นพร้อมกัน นอกจากนี้ขึ้นอยู่กับแอปพลิเคชันมีคำสั่งที่ จำกัด ในแต่ละสตรีมคำสั่งที่สามารถดำเนินการได้ในเวลาเดียวกันดังนั้นความพยายามในการใช้ประโยชน์จาก ILP ที่มากขึ้นจะได้รับผลตอบแทนลดลง
มีการเพิ่มคำแนะนำขั้นสูงเพิ่มเติมซึ่งดำเนินการที่ซับซ้อนในเวลาน้อยลง
เมื่องบประมาณของทรานซิสเตอร์เพิ่มขึ้นจึงเป็นไปได้ที่จะใช้คำสั่งขั้นสูงเพิ่มเติมที่อนุญาตให้การดำเนินการที่ซับซ้อนสามารถทำได้ในเวลาไม่นาน ตัวอย่างประกอบด้วยชุดคำสั่งเวกเตอร์เช่นSSEและAVXซึ่งทำการคำนวณกับข้อมูลหลาย ๆ ชิ้นในเวลาเดียวกันและชุดคำสั่ง AESที่เร่งการเข้ารหัสข้อมูลและถอดรหัส
ในการดำเนินการที่ซับซ้อนเหล่านี้โปรเซสเซอร์ที่ทันสมัยใช้ปฏิบัติการไมโคร (μops) คำแนะนำที่ซับซ้อนจะถูกถอดรหัสเป็นลำดับของμopsซึ่งถูกเก็บไว้ในบัฟเฟอร์เฉพาะและกำหนดเวลาสำหรับการดำเนินการแยกต่างหาก (ตามขอบเขตที่อนุญาตโดยการพึ่งพาข้อมูล) สิ่งนี้ช่วยเพิ่มพื้นที่ให้กับโปรเซสเซอร์เพื่อใช้ประโยชน์จาก ILP เพื่อเพิ่มประสิทธิภาพให้ดียิ่งขึ้นสามารถใช้แคชμopพิเศษเพื่อจัดเก็บถอดรหัสμopsเมื่อเร็ว ๆ นี้เพื่อให้μopsสำหรับคำสั่งที่ดำเนินการล่าสุดสามารถค้นหาได้อย่างรวดเร็ว
อย่างไรก็ตามการเพิ่มคำแนะนำเหล่านี้ไม่ได้เพิ่มประสิทธิภาพโดยอัตโนมัติ คำแนะนำใหม่สามารถเพิ่มประสิทธิภาพได้ก็ต่อเมื่อมีการเขียนแอปพลิเคชันเพื่อใช้งาน การใช้คำแนะนำเหล่านี้ถูกขัดขวางโดยความจริงที่ว่าแอปพลิเคชันที่ใช้พวกเขาจะไม่ทำงานกับโปรเซสเซอร์รุ่นเก่าที่ไม่รองรับพวกเขา
ดังนั้นเทคนิคเหล่านี้จะปรับปรุงประสิทธิภาพตัวประมวลผลเมื่อเวลาผ่านไปได้อย่างไร
ท่อส่งน้ำมันมีความยาวมากขึ้นในช่วงหลายปีที่ผ่านมาลดระยะเวลาที่ต้องใช้ในการทำให้แต่ละขั้นตอนเสร็จสมบูรณ์ อย่างไรก็ตามเหนือสิ่งอื่นใดท่อยาวเพิ่มโทษสำหรับการทำนายสาขาที่ไม่ถูกต้องดังนั้นไปป์ไลน์จะไม่ยาวเกินไป ในความพยายามที่จะไปให้ถึงความเร็วสัญญาณนาฬิกาสูงมากโปรเซสเซอร์ Pentium 4 ใช้ท่อยาวมากถึง 31 ขั้นตอนในเพรสคอตต์ เพื่อลดการขาดดุลประสิทธิภาพการประมวลผลจะพยายามที่จะทำงานตามคำสั่งถึงแม้ว่าพวกเขาอาจล้มเหลวและจะพยายามจนกว่าพวกเขาจะประสบความสำเร็จ นี้นำไปสู่การใช้พลังงานที่สูงมากและลดประสิทธิภาพการทำงานที่ได้จากHyper-Threading โปรเซสเซอร์รุ่นใหม่ไม่ได้ใช้ไพพ์ไลน์เป็นเวลานานโดยเฉพาะอย่างยิ่งเนื่องจากการปรับสเกลของอัตรานาฬิกาถึงกำแพงแล้วHaswellใช้ไปป์ไลน์ซึ่งมีความยาวระหว่าง 14 ถึง 19 ขั้นตอนและสถาปัตยกรรมที่ใช้พลังงานต่ำใช้ท่อที่สั้นกว่า (Intel Atom Silvermontมี 12 ถึง 14 ขั้นตอน)
ความถูกต้องของการทำนายสาขาได้รับการปรับปรุงด้วยสถาปัตยกรรมขั้นสูงยิ่งขึ้นลดความถี่ของการฟลัชไปป์ไลน์ที่เกิดจากการคาดการณ์ที่ผิดพลาดและช่วยให้สามารถดำเนินการคำสั่งเพิ่มเติมพร้อมกันได้ เมื่อพิจารณาถึงความยาวของท่อในตัวประมวลผลของวันนี้สิ่งนี้มีความสำคัญต่อการรักษาประสิทธิภาพสูง
ด้วยงบประมาณที่เพิ่มขึ้นของทรานซิสเตอร์ทำให้สามารถฝังแคชขนาดใหญ่และมีประสิทธิภาพมากขึ้นในโปรเซสเซอร์ลดแผงลอยเนื่องจากการเข้าถึงหน่วยความจำ การเข้าถึงหน่วยความจำอาจต้องการมากกว่า 200 รอบจึงจะเสร็จสมบูรณ์ในระบบที่ทันสมัยดังนั้นจึงเป็นสิ่งสำคัญที่จะลดความจำเป็นในการเข้าถึงหน่วยความจำหลักให้มากที่สุด
โปรเซสเซอร์รุ่นใหม่สามารถใช้ประโยชน์จาก ILP ได้ดีขึ้นผ่านตรรกะการดำเนินการซูเปอร์สคาร์ขั้นสูงและการออกแบบ "กว้างขึ้น" ที่ช่วยให้สามารถถอดรหัสและดำเนินการคำสั่งเพิ่มเติมพร้อมกันได้ Haswellสถาปัตยกรรมสามารถถอดรหัสสี่คำแนะนำและจัดส่ง 8 ไมโครการดำเนินงานต่อวงจรนาฬิกา การเพิ่มงบประมาณของทรานซิสเตอร์ช่วยให้สามารถใช้งานหน่วยได้มากขึ้นเช่น ALU จำนวนเต็มเพื่อรวมไว้ในคอร์โปรเซสเซอร์ โครงสร้างข้อมูลที่สำคัญที่ใช้ในการดำเนินการที่ไม่เป็นไปตามสั่งและการใช้ซูเปอร์คาร์เช่นสถานีสำรองบัฟเฟอร์สั่งซื้อใหม่และไฟล์ลงทะเบียนจะถูกขยายในรูปแบบที่ใหม่กว่าซึ่งทำให้โปรเซสเซอร์สามารถค้นหาหน้าต่างคำแนะนำที่กว้างขึ้น นี่คือแรงผลักดันสำคัญที่อยู่เบื้องหลังประสิทธิภาพที่เพิ่มขึ้นของโปรเซสเซอร์ในปัจจุบัน
คำแนะนำที่ซับซ้อนยิ่งขึ้นรวมอยู่ในโปรเซสเซอร์รุ่นใหม่และจำนวนแอพพลิเคชั่นที่เพิ่มขึ้นใช้คำแนะนำเหล่านี้เพื่อเพิ่มประสิทธิภาพ ความก้าวหน้าในเทคโนโลยีคอมไพเลอร์รวมถึงการปรับปรุงการเลือกคำสั่งและการแปลงเวกเตอร์อัตโนมัติทำให้สามารถใช้คำสั่งเหล่านี้ได้อย่างมีประสิทธิภาพมากขึ้น
นอกเหนือจากข้างต้นแล้วการรวมส่วนต่าง ๆ ที่มากขึ้นก่อนหน้านี้ภายนอกซีพียูเช่นนอร์ ธ บริดจ์ตัวควบคุมหน่วยความจำและเลน PCIe ลด I / O และเวลาแฝงหน่วยความจำ สิ่งนี้จะเพิ่มปริมาณงานโดยการลดจุดขายที่เกิดจากความล่าช้าในการเข้าถึงข้อมูลจากอุปกรณ์อื่น