คำตอบสั้น ๆ
ขั้นตอนในการถอดรหัสและการดำเนินการคำสั่งจะถูกดำเนินการควบคู่ไปกับขั้นตอนถัดไปของคำสั่งก่อนหน้า เทคนิคนี้เรียกว่า pipelining ดูที่ RISC โปรเซสเซอร์ด้านล่าง
โดยทั่วไปแล้วสถาปัตยกรรม RISC แบบเดี่ยวจะเฉลี่ยน้อยกว่าหนึ่งคำสั่งต่อรอบเนื่องจากรอสถานะและเวลาที่ใช้สำหรับการโหลด / จัดเก็บที่กดหน่วยความจำแทนที่จะลงทะเบียนเพื่อลงทะเบียน ช่องเวลาหน่วงจะทำให้คุณนึกถึงสถาปัตยกรรมที่อาจทำให้คุณได้รับเวลานี้ ดูที่ตัวประมวลผล RISCด้านล่าง
วงจรการสอนคือระยะเวลาที่ต้องใช้ในการดำเนินการคำสั่ง สิ่งนี้จะแตกต่างกันไปตามสถาปัตยกรรมและคำแนะนำ (ในบางกรณี) ตัวอย่างเช่นคำแนะนำส่วนใหญ่เกี่ยวกับบางสิ่งบางอย่างเช่น MIPS R2000 / 3000 ใช้เวลาหนึ่งรอบ คำแนะนำเกี่ยวกับการเข้าถึงหน่วยความจำ (โหลด / เก็บสาขา) ใช้เวลามากกว่าหนึ่งรอบแม้ว่าช่วงเวลาหน่วงหมายถึงคุณสามารถดำเนินการอย่างอื่นได้ (อาจเป็นเพียง NOP) ในช่วงหน่วงเวลา สถาปัตยกรรมที่ไม่ใช่ไปป์ไลน์สามารถมีวงจรการเรียนการสอนของรอบสัญญาณนาฬิกาหลายรอบซึ่งมักแตกต่างกันไปตามโหมดการกำหนดแอดเดรส ดูที่โปรเซสเซอร์ RISC, สถาปัตยกรรมแบบ CISC ดั้งเดิมและสถาปัตยกรรมเดินสายด้านล่าง
การออกแบบที่มีหลายประเด็นสามารถทำให้เบลอแนวคิดนี้ได้โดยการดำเนินการมากกว่าหนึ่งคำสั่งพร้อมกัน
โปรเซสเซอร์ CISC สามารถมีคำแนะนำที่ใช้ระยะเวลาที่แตกต่างกัน จำนวนรอบนาฬิกาที่แน่นอนขึ้นอยู่กับสถาปัตยกรรมและคำแนะนำ จำนวนรอบสัญญาณนาฬิกาที่แตกต่างกันใน CISC ISAs เป็นหนึ่งในเหตุผลที่พวกเขายากที่จะสร้างเป็นสถาปัตยกรรมที่วางท่ออย่างหนัก ดูสถาปัตยกรรม CISC ดั้งเดิมด้านล่าง
คำตอบอีกต่อไป
สำหรับปัญหา MIPS, SPARC หรือ CPU อื่น ๆ ปัญหาคำแนะนำทั้งหมด (สำหรับการประมาณการครั้งแรก) ในรอบเดียวแม้ว่าพวกเขาจะมีสิ่งที่เรียกว่า 'สล็อตล่าช้า'
บนโปรเซสเซอร์ RISC
ในบริบทนี้ CPU ปัญหาเดียวคือ CPU ที่ไม่ได้ทำการวิเคราะห์การพึ่งพาและการออกคำสั่งแบบขนานในวิธีการที่ CPU สมัยใหม่ทำเช่นพวกเขามีหน่วยดำเนินการเพียงหน่วยเดียวที่ดำเนินการตามคำสั่งใน ลำดับที่อ่านจาก memoty เพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง
โปรเซสเซอร์ RISC ที่เก่ากว่าส่วนใหญ่เป็นแบบปัญหาเดียวและประเภทเหล่านี้ยังคงใช้กันอย่างแพร่หลายในระบบฝังตัว แกน RISC จำนวนเต็ม 32 บิตปัญหาเดียวสามารถใช้งานได้ในรอบ 25,000-30,000 ประตูดังนั้นแกนประมวลผลของซีพียูประเภทนี้จึงใช้พลังงานต่ำมากและมีขนาดเล็กมาก สิ่งนี้ทำให้ง่ายและถูกรวมเข้ากับผลิตภัณฑ์ SOC (ระบบบนชิป)
RISC CPU ถูกออกแบบ pipelined การประมวลผลคำสั่งทำได้หลายขั้นตอนโดยแต่ละคำสั่งจะถูกส่งผ่านไปยังขั้นตอนถัดไปทุกรอบนาฬิกา ในกรณีส่วนใหญ่ซีพียู pipelined ปัญหาเดียวจะดำเนินการบางอย่างใกล้เคียงกับคำสั่งเดียวต่อรอบสัญญาณนาฬิกา
สถาปัตยกรรมบางอย่างมีคำแนะนำเช่นการแตกแขนงหรือโหลด / เก็บจากหน่วยความจำซึ่งจะเห็นการวนรอบเพิ่มเติมจากการเข้าถึงหน่วยความจำในโค้ด
ตัวอย่างเช่นในการออกแบบSPARC V7 / V8การเรียนการสอนต่อไปหลังจากสาขาจะดำเนินการจริงก่อนที่สาขาตัวเองจะเกิดขึ้น โดยทั่วไปแล้วคุณจะใส่ NOP เข้าไปในช่องหลังจากสาขา แต่คุณสามารถใส่คำสั่งอื่นเข้าไปถ้าคุณสามารถหาสิ่งที่มีประโยชน์ได้
สถาปัตยกรรม MIPS R2000 / R3000มีสล็อตการหน่วงเวลาคล้ายกันในคำแนะนำในการโหลด / จัดเก็บ หากคุณโหลดค่าจากหน่วยความจำจริง ๆ แล้วมันจะไม่ปรากฏในการลงทะเบียนสำหรับรอบอื่น คุณสามารถใส่ NOP ในช่องหรือทำอย่างอื่นถ้าคุณพบสิ่งที่มีประโยชน์ในการทำเช่นนั้นไม่ได้ขึ้นอยู่กับการดำเนินการโหลดที่คุณเพิ่งเปิดตัว
หากหน่วยความจำช้ากว่า CPU ซึ่งมักจะเป็นกรณีนี้คุณอาจได้รับสถานะรอเพิ่มเติมในการเข้าถึงหน่วยความจำ รอสถานะหยุดการทำงานของ CPU นานหนึ่งรอบนาฬิกาจนกว่าการเข้าถึงหน่วยความจำจะเสร็จสมบูรณ์ ในทางปฏิบัติสถานะรอและเวลาเพิ่มเติมสำหรับการเข้าถึงหน่วยความจำหมายความว่า CPU แบบปัญหาเดียวออกแบบค่าเฉลี่ยน้อยกว่าหนึ่งคำสั่งต่อรอบสัญญาณนาฬิกาเล็กน้อย ช่องหน่วงเวลาเปิดโอกาสให้คุณเพิ่มประสิทธิภาพโค้ดโดยการดำเนินการคำสั่งอื่นขณะที่การดำเนินการของหน่วยความจำเกิดขึ้น
โปรเซสเซอร์ CISC ดั้งเดิม
โปรเซสเซอร์ CISCเป็นงานออกแบบที่อาจมีคำสั่งที่ใช้ระยะเวลาต่างกัน บ่อยครั้งที่พวกเขามีคำแนะนำที่ซับซ้อนมากขึ้นนำมาใช้โดยตรงในฮาร์ดแวร์ที่จะต้องทำในซอฟต์แวร์บน RISC CPU
สถาปัตยกรรมเมนเฟรมส่วนใหญ่และพีซีเกือบทั้งหมดออกแบบได้ถึง M68K และ intel 386 เป็น CISC แบบ microcoded แบบดั้งเดิม การออกแบบเหล่านี้พิสูจน์แล้วว่าช้าลงต่อนาฬิกาและใช้ประตูมากกว่า RISC CPUs
เฟิร์มแว
ตัวอย่างของการmicrocodedสถาปัตยกรรม (MOS 6502) สามารถเห็นได้ในการแข่งขันที่นี่ ไมโครโค้ดสามารถเห็นได้ที่ด้านบนของภาพ
ไมโครโค้ดควบคุมการไหลของข้อมูลและการดำเนินการที่เปิดใช้งานภายใน CPU เพื่อดำเนินการคำสั่ง ด้วยการวนซ้ำตามขั้นตอนต่าง ๆ ในไมโครโค้ดคุณสามารถเปิดใช้งานส่วนต่าง ๆ ของ CPU ย้ายข้อมูลผ่าน ALU หรือทำตามขั้นตอนอื่น ๆ ส่วนประกอบที่นำกลับมาใช้ใหม่ได้ในซีพียูสามารถประสานกันได้หลายรอบนาฬิกาเพื่อดำเนินการตามคำสั่ง ในกรณีของ 6502 การดำเนินการ pipelined สามารถดำเนินการโดยไมโครโค้ด
การออกแบบ Microcoded ใช้ซิลิกอนน้อยกว่าชิปแบบมีสายที่มีค่าใช้จ่ายในการใช้วงจรนาฬิกาหลายรอบเพื่อการเรียนการสอน ขึ้นอยู่กับการออกแบบซีพียูเหล่านี้อาจใช้ระยะเวลาในการเรียนการสอนต่างกัน
สถาปัตยกรรมเดินสาย
การออกแบบเดินสาย (ไม่จำเป็นต้องเกิดร่วมกันกับไมโครโค้ด) ดำเนินการคำสั่งแบบซิงโครนัสหรืออาจมีผู้ประสานงานของตัวเองทำบางสิ่งบางอย่างในหลายรอบนาฬิกา โดยทั่วไปจะเร็วกว่าด้วยค่าใช้จ่ายของฮาร์ดแวร์เฉพาะและจึงมีราคาแพงกว่าในการนำไปใช้มากกว่าการออกแบบ microcoded ของฟังก์ชั่นที่เทียบเท่า
ตัวอย่างที่มีชื่อเสียงของเรื่องนี้คือซีพียู Amdahl 470/6ดั้งเดิมซึ่งเป็นการแทนที่สำหรับ CPU ในรุ่น IBM System / 370 บางรุ่น ซีพียู Amdahl เป็นการออกแบบเดินสายในเวลาที่ 370 ซีพียูของไอบีเอ็มมีพื้นฐานมาจากไมโครโค้ด ซีพียู Amdahl เร็วกว่าซีพียู IBM ประมาณ 3 เท่า
ไม่จำเป็นต้องพูดว่าไอบีเอ็มไม่ได้สนุกและสิ่งนี้ส่งผลให้มีการต่อสู้ในศาลที่บังคับให้ไอบีเอ็มเปิดสถาปัตยกรรมเมนเฟรมจนกว่าพระราชกฤษฎีกาจะหมดอายุเมื่อไม่กี่ปีที่ผ่านมา
โดยทั่วไปแล้วการออกแบบแบบเดินสายประเภทนี้ยังไม่เร็วเท่านาฬิกาสำหรับ CPU RISC เนื่องจากการกำหนดเวลาคำสั่งและรูปแบบที่แตกต่างกันนั้นไม่อนุญาตให้มีขอบเขตมากพอสำหรับการวางท่อเช่นเดียวกับการออกแบบ RISC
การออกแบบหลายปัญหา
ซีพียูที่ทันสมัยส่วนใหญ่เป็นสถาปัตยกรรมของปัญหาที่หลากหลายซึ่งสามารถประมวลผลคำสั่งได้มากกว่าหนึ่งรายการในแต่ละครั้งภายในเธรดเดียว ชิปสามารถทำการวิเคราะห์การพึ่งพาแบบไดนามิกบนสตรีมคำสั่งขาเข้าและคำแนะนำปัญหาแบบขนานโดยที่ไม่มีการพึ่งพาผลลัพธ์ของการคำนวณก่อนหน้า
ทรูพุตของชิปเหล่านี้ขึ้นอยู่กับความสามารถในการขนานในโค้ด แต่ซีพียูส่วนใหญ่จะเฉลี่ยคำสั่งหลายต่อรอบในโค้ดส่วนใหญ่
Intel รุ่นใหม่และซีพียู ISA x86 / X64 อื่น ๆ มีชั้นที่ตีความคำสั่ง CISC ของโรงเรียนเก่าเป็นชุดคำสั่งขนาดเล็กที่สามารถป้อนผ่านแกนปัญหา RISC หลายรูปแบบตามแนวท่อ สิ่งนี้จะเพิ่มโอเวอร์เฮดที่ไม่ได้อยู่ในซีพียูด้วย ISAs ที่ออกแบบมาสำหรับการวางท่อ (เช่นสถาปัตยกรรม RISC เช่น ARM หรือ PowerPC)
การออกแบบ VLIW
การออกแบบ VLIW ซึ่งIntel Itaniumอาจเป็นที่รู้จักดีที่สุดไม่เคยถูกถอดออกจากสถาปัตยกรรมหลัก แต่ IIRC มีสถาปัตยกรรม DSP จำนวนมากที่ใช้การออกแบบประเภทนี้ การออกแบบ VLIW ทำให้หลายประเด็นชัดเจนด้วยคำแนะนำที่มีมากกว่าหนึ่งคำสั่งที่ออกในแบบคู่ขนาน
สิ่งเหล่านี้ขึ้นอยู่กับคอมไพเลอร์ออปติไมซ์ที่ดีซึ่งระบุการขึ้นต่อกันและโอกาสในการขนานกันโดยวางคำสั่งลงในสล็อตจำนวนมากที่มีอยู่ในคำศัพท์แต่ละคำ
สถาปัตยกรรม VLIW ทำงานได้ค่อนข้างดีสำหรับการใช้งานเชิงตัวเลขเนื่องจาก matrix / array ops มีแนวโน้มที่จะเสนอโอกาสสำหรับการขนานอย่างกว้างขวาง Itanium มีตลาดเฉพาะด้านในแอพพลิเคชั่นการประมวลผลเร็ว ๆ และมีสถาปัตยกรรมซูเปอร์คอมพิวเตอร์อย่างน้อยหนึ่งตัวคือMultiflow TRACEซึ่งผลิตโดยใช้ ISA ประเภทนี้
หน่วยความจำและแคช
ซีพียูสมัยใหม่นั้นเร็วกว่าหน่วยความจำมากดังนั้นการอ่านโดยตรงจากหน่วยความจำสามารถสร้างสถานะรอนับร้อยซึ่งปิดกั้น CPU จนกว่าการเข้าถึงหน่วยความจำจะเสร็จสมบูรณ์ การแคชขณะนี้มีหลายเลเยอร์จะเก็บตำแหน่งหน่วยความจำที่ใช้ล่าสุดในแคช โดยปกติแล้วซีพียูจะใช้เวลาส่วนใหญ่ในการประมวลผลโค้ดในลูปซึ่งหมายความว่าคุณจะได้รับอัตราการเข้าชมที่ดีจากการใช้ตำแหน่งหน่วยความจำที่คุณเพิ่งใช้ไป คุณสมบัตินี้เรียกว่า 'ตำแหน่งอ้างอิง
ตำแหน่งที่คุณได้รับตำแหน่งอ้างอิง CPU สามารถทำงานได้ใกล้ความเร็วสูงสุด แคชหายไปจนถึงระดับถัดไปทำให้มีสถานะรอเป็นจำนวนมาก แคชหายไปจนถึงหน่วยความจำหลักอาจมีหลายร้อย
ดังนั้นปริมาณงานที่แท้จริงของชิป CPU จึงขึ้นอยู่กับประสิทธิภาพของรูปแบบการเข้าถึงหน่วยความจำ หนังสือทั้งเล่มได้รับการเขียนเกี่ยวกับการปรับโค้ดให้เหมาะสมสำหรับเรื่องนี้และเป็นหัวข้อที่ซับซ้อนในสิทธิของตนเอง