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

สถาปัตยกรรมคอมพิวเตอร์  เป็นทฤษฎีที่อยู่ฉากหลังของการออกแบบคอมพิวเตอร์ โดยทั่วไปหมายถึง การออกแบบ
โครงสร้างของหน่วยประมวลผลกลาง (ซึ่งก็คือ การออกแบบจำนวนเรจิสเตอร์ที่จำเป็น และหน้าที่ที่จำเป็นของ หน่วยควบคุมกับหน่วยประมวลผลตัวเลข)
ชุดของคำสั่งเครื่อง และการอ้างหน่วยความจำ
เทคนิคอื่นๆ เช่น การประมวลผลแบบไปป์ไลน์
ประเภทของสถาปัตยกรรมการประมวลผลแบบขนาน ของโปรเซสเซอร์
SISD (Single Instruction Single Data stream)  คือ โปรเซสเซอร์ ที่ใช้การประมวลผลด้วยชุดข้อมูลเพียงชุดเดียว และ ทำงานด้วยคำสั่งเดียว ภายใน 1 สัญญาณนาฬิกา
MISD (Multiple Instruction Single Data stream)  คือ โปรเซสเซอร์ ที่ใช้การประมวลผลด้วยชุดข้อมูลเพียงชุดเดียว แต่ทำงานด้วยได้หลายคำสั่ง ภายใน 1 สัญญาณนาฬิกา มักจะไม่ค่อยมีใครพัฒนาโปรเซสเซอร์แบบนี้
SIMD (Single Instruction Multiple Data stream)  คือ โปรเซสเซอร์ที่ใช้การประมวลผลด้วยชุดข้อมูลหลายชุด แต่ทำงานด้วยคำสั่งเดียว ภายใน 1 สัญญาณนาฬิกา และได้ผลลัพธ์หลายชุด ใช้ในโปรเซสเซอร์แบบ Pentium MMX
MIMD (Multiple Instruction Multiple Data stream)  คือ โปรเซสเซอร์ที่ใช้การประมวลผลด้วยชุดข้อมูลหลายชุด และทำงานด้วยได้หลายคำสั่ง ภายใน 1 สัญญาณนาฬิกา
RISC (Reduced Instruction- Set Computing หรือชิปที่มีการลดทอนคำสั่ง)  คือ โปรเซสเซอร์ที่มีชุดคำสั่งที่มีรูปแบบและขนาดที่แน่นอน สามารถประมวลผลได้ภายใน 1 สัญญาณนาฬิกา การอ้างอิงหน่วยความจำจะใช้คำสั่ง Load และ Store ที่สามารถอ้างอิงหน่วยความจำได้โดยตรงเท่านั้น ใช้การอ้างตำแหน่งแบบตรงๆ ง่ายโดยมีรูปแบบจำกัดอยู่ 2 แบบ คือ
1.แบบอ้างผ่าน Register ( Register Indirect ) Register จะเก็บค่าตำแหน่งไว้ แล้ว ทำการอ้างตำแหน่งนั้นๆผ่าน Register
2.ในแบบ Index จะเป็นการอ้างตำแหน่งจากค่าคงที่ที่มาในคำสั่งนั้นๆเลย
CISC (Complex Instruction-Set Computing)  คือสถาปัตยกรรมของโปรเซสเซอร์ ที่ใช้คำสั่งซับซ้อนที่มีความยาวเปลี่ยนไปตามชนิดของคำสั่ง มีคำสั่งให้ใช้งานมากมาย ทำให้เขียนโปรแกรมง่าย และโปรแกรมมีขนาดเล็ก การทำงานของคำสั่งจะใช้ Microcode โดยคงความเข้ากันได้กับโปรเซสเซอร์รุ่นเก่า ทำให้ไม่ต้องเขียนโปรแกรมใหม่
SMP (Symmetric MultiProcessing)  คือสถาปัตยกรรมของการใช้โปรเซสเซอร์ หลายตัว ที่ใช้ทรัพยากรของระบบเช่น บัส หน่วยความจำ I/O ร่วมกัน ไม่สามารถแบ่งเป็น partition ย่อยๆได้ และสมรรถนะของระบบจะลดลงเมื่อใช้โปรเซสเซอร์ มากกว่า 8 ตัว ความสามารถในการขยายสเกลยังจำกัด แต่สามารถใช้โปรแกรมแบบเดิมได้ไม่ต้องเขียนขึ้นใหม่
== การแบ่งกันใช้งานและการติดต่อสื่อสาร ==
Shared-bus topology คือการต่อโปรเซสเซอร์ หลายตัวให้ใช้งาน Frontside บัสเส้นเดียวร่วมกัน แต่มีข้อเสียคือ จะเกิดคอขวดที่เกิดจากรอคอยการใช้บัสร่วมกัน และทำให้เกิดประจุไฟฟ้าสะสมบนบัส ซึ่งจะเกิดการรบกวนสัญญาณข้อมูลซึ่งกันและกัน ทำให้สามารถใช้โปรเซสเซอร์ ได้สูงสุดไม่เกิน 4 ตัวมีใช้ใน บัส GTL+ ของ Intel x86 และ บัส MPX ของ SMP G4 (Apple)
Point-to-point topology คือการต่อโปรเซสเซอร์ หลายตัวโดยให้โปรเซสเซอร์ แต่ละตัวมี Frontside บัสของตัวเองที่ต่อตรงไปยังชุดชิปหลัก จะแก้ปัญหาที่เกิดจากการใช้ Shared-bus topology ได้ มีใช้ใน บัส EV6 ของ Athlon
== Cache Coherence ==
คือการทำให้ข้อมูลที่มีอยู่ในแคชของโปรเซสเซอร์ ทุกตัวมีความสอดคล้องกับโปรเซสเซอร์ตัวอื่นๆ
Snoop คือการจัดการให้แคชของโปรเซสเซอร์แต่ละตัว คอยฟังว่ามีการร้องขอข้อมูลในหน่วยความจำที่โปรเซสเซอร์กำลังใช้งานอยู่ของโปรเซสเซอร์ตัวอื่นๆทุกตัวหรือไม่ ซึ่งจะทำให้เกิดการติดต่อสื่อสารสถานะของข้อมูล เพื่อประสานงานการใช้ข้อมูลร่วมกันโดยเกิดข้อขัดแย้งน้อยที่สุด แต่จะเกิดปัญหาความล่าช้าบนระบบ Shared-bus เพราะการ snoop จะลด bandwidth ของบัสที่ใช้งานร่วมกัน แต่ในระบบ point-to-point จะมี snoop bus ต่างหาก ทำให้แคชสามารถทำงานโดยไม่ต้องไปรบกวนการทำงานของส่วนอื่นๆ
Data Intervention คือเทคนิคที่เพิ่มความเร็วในการประสานการของทำงานของแคช โดยการที่แคชของโปรเซสเซอร์ต้องการอ่านข้อมูลเดียวกัน ที่กำลังใช้งานอยู่และเพิ่งจะเริ่มแก้ไข ก็จะส่งสัญญาณบอกโปรเซสเซอร์อีกตัวให้รอรับข้อมูลที่จะส่งไปให้ ไม่ต้องไปขอจากหน่วยความจำหลักให้เสียเวลา
MPP (Massively Parallel Processing)  คือสถาปัตยกรรมของการใช้โปรเซสเซอร์หลายตัว โดยที่โปรเซสเซอร์แต่ละตัว จะมีทรัพยากรระบบ (I/O, หน่วยความจำ) ของตนเองเป็นหน่วยๆย่อยมีการควบคุมตนเอง การเชื่อมโยงจะใช้ hardware หรือ software ก็ได้ สามารถขยายสเกลได้ดีมาก แต่ต้องเขียนโปรแกรมใหม่ ไม่สามารถใช้ของเดิมได้
CMP (Cellular MultiProcessing)  คือสถาปัตยกรรมของการใช้โปรเซสเซอร์หลายตัว ที่ผสมผสานข้อดีของ SMP และ Clustering เข้าด้วยกัน โดยแบ่งโปรเซสเซอร์ออกเป็นหน่วยเล็ก ที่เรียกว่า subpod (ประกอบด้วย โปรเซสเซอร์ 2 คู่ที่แต่ละคู่ใช้บัสแยกกัน และ cache แบบ L3 และสามารถใช้ระบบปฏิบัติการของตนเองหรือรวมกันเป็นหน่วยเดียวก็ได้) ที่ใช้ ทรัพยากรของระบบ (หน่วยความจำ, I/O) ร่วมกัน การเชื่อมโยงใช้ลักษณะการติดต่อแบบ Crossbar (เป็นการเชื่อมต่อแบบจุดต่อจุดโดยตรง ที่สามารถกำจัดการขัดข้องที่จุดๆเดียวได้) สามารถขยายสเกลได้ดีมาก และสามารถใช้โปรแกรมแบบเดิมได้ไม่ต้องเขียนขึ้นใหม่
NUMA (Non-Uniform Memory Access)  คือสถาปัตยกรรมของการใช้โปรเซสเซอร์หลายตัว ที่ผสมผสานข้อดีของ SMP และ MPP เข้าด้วยกัน โดยแบ่งเป็นหน่วยย่อยของหลายๆ โปรเซสเซอร์ ที่ใช้ทรัพยากรของระบบ (หน่วยความจำ, I/O) ร่วมกัน สามารถขยายสเกลได้ดีมาก และสามารถใช้โปรแกรมแบบเดิมได้ไม่ต้องเขียนขึ้นใหม่
Clustering คือ สถาปัตยกรรมของการเชื่อมโยงระบบเข้าด้วยกัน โดยใช้ทรัพยากรร่วมกัน เพื่อสร้างระบบที่ใหญ่ขึ้นและล้มเหลวยาก (ระบบจะไม่หยุดทำงานง่ายๆ)
== ดูเพิ่ม ==
ไมโครโพรเซสเซอร์
== อ้างอิง by ISS ==
ISCA:proceddings of the International symposium on Computer Architecture
ASPLOS: international conference on Architectural Support for Programming languages and Operating Systems
ACM Transactions on Computer Systems
IEEE computer
IEEE Micro
Microprocessor Reports
RSBD
RIBM
AUTO
== อ้างอิง ==
Hennessy and Patterson (2006). Computer Architecture: A Quantitative Approach (Fourth Edition ed.). Morgan Kaufmann. ISBN 978-0-12-370490-0.
Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 0-13-148521-0.