โปรเซสเซอร์ในระบบขนาน
ในช่วงทศวรรษที่ 80 โปรเซสเซอร์พิเศษได้รับความนิยมในการสร้างมัลติคอมพิวเตอร์ที่เรียกว่า Transputer. ตัวส่งสัญญาณประกอบด้วยโปรเซสเซอร์คอร์หนึ่งตัวหน่วยความจำ SRAM ขนาดเล็กอินเทอร์เฟซหน่วยความจำหลัก DRAM และช่องทางการสื่อสารสี่ช่องทั้งหมดบนชิปตัวเดียว ในการทำการสื่อสารคอมพิวเตอร์แบบขนานช่องสัญญาณถูกเชื่อมต่อเพื่อสร้างเครือข่ายของ Transputers แต่มันขาดพลังในการคำนวณและด้วยเหตุนี้จึงไม่สามารถตอบสนองความต้องการที่เพิ่มขึ้นของแอพพลิเคชั่นคู่ขนานได้ ปัญหานี้ได้รับการแก้ไขโดยการพัฒนาโปรเซสเซอร์ RISC และราคาถูกด้วย
คอมพิวเตอร์คู่ขนานสมัยใหม่ใช้ไมโครโปรเซสเซอร์ซึ่งใช้การขนานกันในหลายระดับเช่นการขนานกันในระดับคำสั่งและความขนานระดับข้อมูล
โปรเซสเซอร์ประสิทธิภาพสูง
โปรเซสเซอร์ RISC และ RISCy ครองตลาดคอมพิวเตอร์คู่ขนานในปัจจุบัน
ลักษณะของ RISC แบบดั้งเดิมคือ -
- มีโหมดการกำหนดแอดเดรสน้อย
- มีรูปแบบคงที่สำหรับคำสั่งโดยปกติคือ 32 หรือ 64 บิต
- มีคำแนะนำในการโหลด / จัดเก็บโดยเฉพาะเพื่อโหลดข้อมูลจากหน่วยความจำเพื่อลงทะเบียนและจัดเก็บข้อมูลจากรีจิสเตอร์ไปยังหน่วยความจำ
- การคำนวณทางคณิตศาสตร์จะดำเนินการกับรีจิสเตอร์เสมอ
- ใช้ pipelining
ไมโครโปรเซสเซอร์ส่วนใหญ่ในปัจจุบันเป็นซูเปอร์สแคลร์กล่าวคือใช้ไปป์ไลน์คำสั่งหลายคำสั่งในคอมพิวเตอร์คู่ขนาน ดังนั้นโปรเซสเซอร์ superscalar สามารถดำเนินการได้มากกว่าหนึ่งคำสั่งในเวลาเดียวกัน ประสิทธิผลของโปรเซสเซอร์ superscalar ขึ้นอยู่กับปริมาณของการขนานระดับคำสั่ง (ILP) ที่มีอยู่ในแอปพลิเคชัน เพื่อให้ท่อเติมเต็มคำแนะนำในระดับฮาร์ดแวร์จะดำเนินการในลำดับที่แตกต่างจากลำดับโปรแกรม
ไมโครโปรเซสเซอร์ที่ทันสมัยจำนวนมากใช้วิธีsuper pipelining ในsuper pipeliningเพื่อเพิ่มความถี่สัญญาณนาฬิกางานที่ทำในขั้นตอนไปป์ไลน์จะลดลงและจำนวนขั้นตอนการไปป์ไลน์จะเพิ่มขึ้น
โปรเซสเซอร์คำสั่ง (VLIW) ขนาดใหญ่มาก
สิ่งเหล่านี้ได้มาจากการทำไมโครโปรแกรมแนวนอนและการประมวลผลแบบซูเปอร์คาร์ คำแนะนำในโปรเซสเซอร์ VLIW มีขนาดใหญ่มาก การดำเนินการภายในคำสั่งเดียวจะดำเนินการแบบคู่ขนานและส่งต่อไปยังหน่วยการทำงานที่เหมาะสมสำหรับการดำเนินการ ดังนั้นหลังจากเรียกคำสั่ง VLIW แล้วการดำเนินการจะถูกถอดรหัส จากนั้นการดำเนินการจะถูกส่งไปยังหน่วยการทำงานซึ่งดำเนินการแบบขนาน
โปรเซสเซอร์แบบเวกเตอร์
โปรเซสเซอร์แบบเวกเตอร์เป็นโปรเซสเซอร์ร่วมกับไมโครโปรเซสเซอร์ที่ใช้งานทั่วไป เวกเตอร์โปรเซสเซอร์โดยทั่วไปคือ register-register หรือ memory-memory คำสั่งเวกเตอร์ถูกดึงมาและถอดรหัสจากนั้นจะมีการดำเนินการบางอย่างสำหรับแต่ละองค์ประกอบของเวกเตอร์ตัวถูกดำเนินการในขณะที่ในตัวประมวลผลปกติการดำเนินการเวกเตอร์จำเป็นต้องมีโครงสร้างลูปในโค้ด เพื่อให้มีประสิทธิภาพมากขึ้นโปรเซสเซอร์เวกเตอร์จะเชื่อมโยงการทำงานของเวกเตอร์หลายตัวเข้าด้วยกันกล่าวคือผลลัพธ์จากการดำเนินการเวกเตอร์หนึ่งจะถูกส่งต่อไปยังอีกตัวดำเนินการ
เก็บเอาไว้
แคชเป็นองค์ประกอบสำคัญของไมโครโปรเซสเซอร์ประสิทธิภาพสูง หลังจากทุกๆ 18 เดือนความเร็วของไมโครโปรเซสเซอร์จะเพิ่มเป็นสองเท่า แต่ชิป DRAM สำหรับหน่วยความจำหลักไม่สามารถแข่งขันกับความเร็วนี้ได้ ดังนั้นแคชจึงถูกนำมาใช้เพื่อเชื่อมช่องว่างความเร็วระหว่างโปรเซสเซอร์และหน่วยความจำ แคชเป็นหน่วยความจำ SRAM ที่รวดเร็วและมีขนาดเล็ก แคชอื่น ๆ อีกมากมายถูกนำไปใช้ในตัวประมวลผลสมัยใหม่เช่นการแปลบัฟเฟอร์การมองข้าม (TLBs) แคชคำสั่งและแคชข้อมูลเป็นต้น
แคชที่แมปโดยตรง
ในแคชที่แมปโดยตรงฟังก์ชัน 'โมดูโล' จะใช้สำหรับการแมปแอดเดรสแบบหนึ่งต่อหนึ่งในหน่วยความจำหลักไปยังตำแหน่งแคช เนื่องจากรายการแคชเดียวกันสามารถมีบล็อกหน่วยความจำหลักหลายบล็อกที่แมปไว้โปรเซสเซอร์จึงต้องสามารถระบุได้ว่าบล็อกข้อมูลในแคชเป็นบล็อกข้อมูลที่จำเป็นจริงหรือไม่ การระบุนี้ทำได้โดยการจัดเก็บแท็กร่วมกับบล็อกแคช
Associative Cache อย่างเต็มที่
การทำแผนที่เชื่อมโยงอย่างสมบูรณ์ช่วยให้สามารถวางบล็อกแคชที่ใดก็ได้ในแคช ด้วยการใช้นโยบายการแทนที่แคชจะกำหนดรายการแคชที่เก็บบล็อกแคช แคชที่เชื่อมโยงอย่างสมบูรณ์มีการแม็ปที่ยืดหยุ่นซึ่งช่วยลดจำนวนข้อขัดแย้งในการป้อนแคชให้เหลือน้อยที่สุด เนื่องจากการใช้งานแบบเชื่อมโยงทั้งหมดมีราคาแพงจึงไม่เคยใช้ขนาดใหญ่
แคช Set-Associative
การแมปแบบกำหนดความสัมพันธ์คือการผสมผสานระหว่างการแม็ปโดยตรงและการแมปแบบเชื่อมโยงทั้งหมด ในกรณีนี้รายการแคชจะแบ่งย่อยออกเป็นชุดแคช เช่นเดียวกับการแม็ปโดยตรงมีการแมปบล็อกหน่วยความจำแบบคงที่กับชุดในแคช แต่ภายในชุดแคชบล็อกหน่วยความจำจะถูกแมปในลักษณะที่เชื่อมโยงกันอย่างสมบูรณ์
กลยุทธ์แคช
นอกจากกลไกการทำแผนที่แล้วแคชยังต้องการกลยุทธ์อีกหลายอย่างที่ระบุสิ่งที่ควรเกิดขึ้นในกรณีของเหตุการณ์บางอย่าง ในกรณีของแคชที่เชื่อมโยง (set-) แคชจะต้องกำหนดบล็อกแคชที่จะถูกแทนที่ด้วยบล็อกใหม่ที่เข้าสู่แคช
กลยุทธ์การทดแทนที่รู้จักกันดี ได้แก่ -
- เข้าก่อนก่อนออก (FIFO)
- ใช้น้อยที่สุด (LRU)