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


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


  ความหมายของสถาปัตยกรรมคอมพิวเตอร์
       สถาปัตยกรรมคอมพิวเตอร์ คือ การออกแบบส่วนต่างๆ ของระบบคอมพิวเตอร์ ให้สามารถทำงานได้อย่างมีประสิทธิภาพ ประกอบด้วยส่วนสำคัญ 2 ส่วน ดังนี้
สถาปัตยกรรมคำสั่ง ISA. (Instruction Set Architecture) คือ รูปแบบของการกำหนดภาษาที่ใช้กับเครื่องคอมพิวเตอร์ตระกูลต่างๆ ภาษาที่ใช้กับเครื่องประกอบกันขึ้นเป็นโปรแกรม หากโปรแกรมที่เขียนใช้กับเครื่องรุ่นเก่า และสามารถ Run กับเครื่องรุ่นใหม่ในตระกูลเดียวกันได้ เรียกเครื่องรุ่นใหม่นั้นได้ว่า "Upward Compatibility" ในทางกลับกันหากโปรแกรมที่เขียนขึ้นใช้กับเครื่องรุ่นใหม่แล้วไม่สามารถ Run กับเครื่องรุ่นเก่ากว่าได้ เรียกคอมพิวเตอร์รุ่นเก่านั้นไดว่า "Downward Compatibility"
สถาปัตยกรรม Hardware (Hardware System Architecture)คือ ฮาร์ดแวร์ (Hardware) ของระบบคอมพิวเตอร์ เช่น CPU , Storage System  , Bus และ I/O System โดยพัฒนาขึ้นมาตามลำดับจากแนวคิดระบบคอมพิวเตอร์พื้นฐานของ Von Neumann ประกอบด้วย Hardware พื้นฐาน คือ
        สถาปัตยกรรมคอมพิวเตอร์ เป็นทฤษฎีที่อยู่ฉากหลังของการออกแบบคอมพิวเตอร์ โดยทั่วไปหมายถึง การออกแบบ
-โครงสร้างของหน่วยประมวลผลกลาง (ซึ่งก็คือ การออกแบบจำนวนเรจิสเตอร์ที่จำเป็น และหน้าที่ที่จำเป็นของ หน่วยควบคุมกับหน่วยประมวลผลตัวเลข)
-ชุดของคำสั่งเครื่อง และการอ้างหน่วยความจำ
-เทคนิคอื่นๆ เช่น การประมวลผลแบบไปป์ไลน์

ประเภทของสถาปัตยกรรมการประมวลผลแบบขนาน ของโปรเซสเซอร์
1.   SISD (Single Instruction Single Data stream) คือ โปรเซสเซอร์ ที่ใช้การประมวลผลด้วยชุดข้อมูลเพียงชุดเดียว
และ ทำงานด้วยคำสั่งเดียว ภายใน สัญญาณนาฬิกา
2.   MISD (Multiple Instruction Single Data stream) คือ โปรเซสเซอร์ ที่ใช้การประมวลผลด้วยชุดข้อมูลเพียงชุดเดียว
แต่ทำงานด้วยได้หลายคำสั่ง ภายใน สัญญาณนาฬิกา มักจะไม่ค่อยมีใครพัฒนาโปรเซสเซอร์แบบนี้
3.   SIMD (Single Instruction Multiple Data stream) คือ โปรเซสเซอร์ที่ใช้การประมวลผลด้วยชุดข้อมูลหลายชุด แต่
ทำงานด้วยคำสั่งเดียว ภายใน สัญญาณนาฬิกา และได้ผลลัพธ์หลายชุด ใช้ในโปรเซสเซอร์แบบ Pentium MMX
4.   MIMD (Multiple Instruction Multiple Data stream) คือ โปรเซสเซอร์ที่ใช้การประมวลผลด้วยชุดข้อมูลหลายชุด
และทำงานด้วยได้หลายคำสั่ง ภายใน สัญญาณนาฬิกา

การแบ่งกันใช้งานและการติดต่อสื่อสาร
1.   Shared-bus topology คือการต่อโปรเซสเซอร์ หลายตัวให้ใช้งาน Frontside บัสเส้นเดียวร่วมกัน แต่มีข้อเสียคือ จะเกิดคอขวดที่เกิดจากรอคอยการใช้บัสร่วมกัน และทำให้เกิดประจุไฟฟ้าสะสมบนบัส ซึ่งจะเกิดการรบกวนสัญญาณข้อมูลซึ่งกันและกัน ทำให้สามารถใช้โปรเซสเซอร์ ได้สูงสุดไม่เกิน 4 ตัวมีใช้ใน บัส GTL+ ของ Intel x86 และ บัส MPX ของ SMP G4 (Apple)
2.   Point-to-point topology คือการต่อโปรเซสเซอร์ หลายตัวโดยให้โปรเซสเซอร์ แต่ละตัวมี Frontside บัสของตัวเองที่ต่อตรงไปยังชุดชิปหลัก จะแก้ปัญหาที่เกิดจากการใช้ Shared-bus topology ได้ มีใช้ใน บัส EV6 ของ Athlon 
Cache Coherence คือการทำให้ข้อมูลที่มีอยู่ในแคชของโปรเซสเซอร์ ทุกตัวมีความสอดคล้องกับโปรเซสเซอร์ตัวอื่นๆ
1.   Snoop คือการจัดการให้แคชของโปรเซสเซอร์แต่ละตัว คอยฟังว่ามีการร้องขอข้อมูลในหน่วยความจำที่โปรเซสเซอร์กำลังใช้งานอยู่ของโปรเซสเซอร์ตัวอื่นๆทุกตัวหรือไม่ ซึ่งจะทำให้เกิดการติดต่อสื่อสารสถานะของข้อมูล เพื่อประสานงานการใช้ข้อมูลร่วมกันโดยเกิดข้อขัดแย้งน้อยที่สุด แต่จะเกิดปัญหาความล่าช้าบนระบบ Shared-bus เพราะการ snoop จะลด bandwidth ของบัสที่ใช้งานร่วมกัน แต่ในระบบ point-to-point จะมี snoop bus ต่างหาก ทำให้แคชสามารถทำงานโดยไม่ต้องไปรบกวนการทำงานของส่วนอื่นๆ
2.   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 คือ สถาปัตยกรรมของการเชื่อมโยงระบบเข้าด้วยกัน โดยใช้ทรัพยากรร่วมกัน เพื่อสร้างระบบที่ใหญ่ขึ้นและล้มเหลวยาก (ระบบจะไม่หยุดทำงานง่ายๆ)
   - Bell และ Newell ให้แนวคิดของสถาปัตยกรรมคอมพิวเตอร์ในรูปแบบระดับชั้นที่เรียกว่า hierarchical, multilevel descriptionระดับทั้ง ประกอบด้วย
1.ระดับวงจรอิเล็กทรอนิกส์ (Electronics Circuit Level),
2.ระดับการออกแบบลิจิก (Logic Design Level),
3.ระดับการโปรแกรม (Programming Level)
4.และระดับการสวิตช์โปรเซสเซอร์และหน่วยความจำ (Processor-Memory-Switch Level)
(Pipeline) และซูเปอร์สเกลาร์ (Superscalar)
superscalar ซีพียูสถาปัตยกรรมดำเนินรูปแบบของการทำงานแบบขนานที่เรียกว่าขนานสอนระดับภายในหน่วยประมวลผลเดียว มันจึงช่วยให้CPU เร็วขึ้นผ่านกว่าอย่างอื่นจะเป็นไปได้ที่ได้รับอัตรานาฬิกา . หน่วยประมวลผล superscalar รันมากกว่าหนึ่งคำสั่งในช่วงวงจรนาฬิกาโดยพร้อมกันเยี่ยงอย่างคำแนะนำหลายหน่วยงานที่ซ้ำซ้อนกับหน่วยประมวลผล แต่ละหน่วยงานไม่ได้เป็นซีพียูแกนแยกกัน แต่ทรัพยากรการดำเนินภายในCPU เดียวเช่นหน่วยตรรกะทางคณิตศาสตร์จำแลงบิตหรือตัวคูณ 
ในอนุกรมวิธานฟลินน์เป็นโปรเซสเซอร์ superscalar แบบ single-core จัดเป็นSISDประมวลผล (คำแนะนำเดี่ยวข้อมูลเดียว) ในขณะที่แบบ multi-coreประมวลผล superscalar จัดเป็นMIMDประมวลผล (คำแนะนำหลายข้อมูลหลายรายการ)
ในขณะที่ซีพียู superscalar โดยปกติจะยังpipelined , pipelining superscalar และสถาปัตยกรรมได้รับการพิจารณาเทคนิคการเพิ่มประสิทธิภาพการปฏิบัติงานที่แตกต่างกัน
เทคนิค superscalar เป็นประเพณีที่เกี่ยวข้องกับลักษณะการระบุหลายคน (ภายในแกนของ CPU ได้รับ):
  • คำแนะนำจะออกจากกระแสการเรียนการสอนตามลำดับ
  • ฮาร์ดแวร์ CPU แบบไดนามิกตรวจสอบการอ้างอิงข้อมูลระหว่างคำแนะนำในเวลาทำงาน (เทียบกับซอฟแวร์การตรวจสอบที่รวบรวมเวลา)
  • CPU ยอมรับคำแนะนำหลายต่อวงจรนาฬิกา


พื้นฐานสถาปัตยกรรมคอมพิวเตอร์
    - โปรเซสเซอร์เป็นส่วนทำงานของระบบ ซึ่งจะเอ็กซิคิวต์โปรแกรมโดยการประมวลผลทางคณิตศาสตร์และลอจิกข้อมูลต่าง ๆ โปรเซสเซอร์เป็นเพียงส่วนเดียวที่สร้างข้อมูลใหม่โดยการรวมหรือแก้ไขข้อมูล เดิม
    - หน่วยความจำทำหน้าที่เก็บข้อมูลจนกว่าจะมีการร้องขอจากส่วนอื่น ๆ ของระบบ ในขณะที่ทำงานปกติ หน่วยความจำจะส่งคำสั่งและข้อมูลให้กับโปรเซสเซอร์
    - อุปกรณ์อินพุต/เอาต์พุตทำหน้าที่ถ่ายโอนข้อมูลระหว่างองค์ประกอบภายนอกและภายใน
    - ช่องการสื่อสารข้อมูลที่เชื่อมระบบเข้าด้วยกันอาจจะเป็นการเชื่อมต่อระหว่าง อุปกรณ์ อุปกรณ์ หรือเป็นสวิตช์ที่ซับซ้อนที่เชื่อมต่อหลาย ๆ องค์ประกอบเข้าด้วยกัน
    - แผนภาพ PMS แทนส่วนประกอบหลักของเครื่องคอมพิวเตอร์ส่วนบุคคลแอปเปิลแมคอินทอช (Apple Macintosh) ในตอนต้นจะใช้ช่องสื่อสารข้อมูลเดี่ยวที่เรียกว่า บัส” (bus) ซึ่งจะเชื่อมต่อส่วนประกอบหลักทั้งหมด จนเมื่อบัสเป็นสวิตช์จะมีส่วนประกอบเพียงสองส่วนที่สามารถติดต่อซึ่งกันและ กันในเวลาหนึ่ง ๆ เมื่อสวิตช์ถูกสร้างขึ้นเพื่อการถ่านโอนข้อมูลของอุปกรณ์อินพุต/เอาต์พุต
คอมพิวเตอร์
    คอมพิวเตอร์ คือ อุปกรณ์ที่ประกอบด้วยชิ้นส่วนทางอิเล็กทรอนิกส์ที่สามารถรับข้อมูลและชุดคำ สั่ง (Program) ในรูปแบบที่เครื่องรับได้ แล้วนำมาประมวลผล (Process) ข้อมูลตามชุดคำสั่งเพื่อแก้ปัญหา หรือทำการคำนวณที่ สลับซับซ้อนจนได้ผลลัพธ์ตามต้องการ และยังสามารถบันทึก หรือแสดงผลลัพธ์เหล่านั้นได้
องค์ประกอบระบบคอมพิวเตอร์
ฮาร์ดแวร์ (Hardware)
ซอฟต์แวร์ (Software)
บุคลากร (Pepleware)
ข้อมูล (Data)
กระบวนการทำงาน (Procedure)



ฮาร์ดแวร์ (Hardware)
หน่วยรับข้อมูลหรืออินพุต (Input Unit)
หน่วยประมวลผลกลางหรือซีพียู (CPU : Central Processing Unit)
หน่วยเก็บข้อมูล (Storage)
หน่วยเก็บข้อมูลหรือความจำหลัก (Primary Storage หรือ Main Memory)
หน่วยเก็บข้อมูลสำรอง (Secondary Storage)
หน่วยแสดงข้อมูลหรือเอาต์พุต (Output Unit)
โครงสร้างระบบคอมพิวเตอร์ด้านอินพุต/เอาต์พุต
ซอฟต์แวร์ (Software)
ซอฟต์แวร์ระบบ (System Software)
โปรแกรมระบบปฏิบัติการ (OS : Operating System)
โปรแกรมแปลภาษาคอมพิวเตอร์ (Translator Program)
ยูทิลิตี้หรือโปรแกรมอรรถประโยชน์ (Utility Program)
ซอฟต์แวร์สำเร็จรูป (Package)
ซอฟต์แวร์ประยุกต์ (Application Software)


บุคลากร (Peopleware)
ออกแบบและวิเคราะห์ระบบ (System Analysis and Design)
โปรแกรมเมอร์ (Programming)
ผู้บริหารฐานข้อมูล (Database Administrator : DBA)
ผู้ปฏิบัติการ (Operator)
ผู้ใช้ (User)
ผู้บริหาร (Manager)

ข้อมูล (Data)
    ข้อมูล เป็นสิ่งที่ต้องบันทึกลงไปในคอมพิวเตอร์ พร้อมกับโปรแกรมที่นักคอมพิวเตอร์ได้เขียนไปเพื่อผลิตผลลัพธ์ที่ต้องการออก มา หน่วยที่เล็กที่สุดของข้อมูลได้แก่ ตัวอักขระ (Character) ซึ่งจะประกอบไปด้วยตัวอักษร ตัวเลข และสัญลักษณ์ต่างๆ เมื่อนำตัวอักขระเหล่านี้มารวมกัน จะทำให้ได้หน่วยข้อมูลที่ใหญ่ขึ้น คือ ฟิลด์ (Field) เมื่อนำฟิลด์หลายๆ ฟิลด์มาประกอบกันจะเป็น เรกคอร์ด (Record) และถ้านำหลายๆ เรกคอร์ดมาประกอบกันจะเป็นไฟล์ (File) และหากนำหลายๆ ไฟล์มารวมกัน ในลักษณะที่มีความสัมพันธ์กันในแต่ละไฟล์ด้วยจะกลายเป็นฐานข้อมูล (Database)

กระบวนการทำงาน (Procedure)
    องค์ ประกอบด้านนี้หมายถึงกระบวนการทำงานเพื่อให้ได้ผลลัพธ์ตามต้องการ ในการทำงานกับคอมพิวเตอร์ผู้ใช้จำเป็นต้องทราบขั้นตอนการทำงานเพื่อให้ได้ งานที่ถูกต้องและมีประสิทธิภาพ ซึ่งอาจจะมีขั้นตอนสลับซับซ้อนหลายขั้นตอน ดังนั้นจึงมีความจำเป็นต้องมีคู่มือปฏิบัติงาน เช่น คู่มือผู้ใช้ (user manual) หรือคู่มือผู้ดูแลระบบ (operation manual)

วิวัฒนาการของคอมพิวเตอร์ลูกคิด (Abacus)
- John Napier สร้างเครื่องคิดเลขที่เรียกว่า “Napier’s Bones”
- Henry Briggs คิดค้นแบบคำนวณตารางลอการิทึม
- Edmund Gunter ได้นำค่าลอการิทึมของ Briggs มาแกะลงไม้บรรทัด
- William Aughtred ได้นำความคิดของ Gunter มาสร้าง Slide Rule ซึ่งถือว่าเป็นคอมพิวเตอร์อนาลอกเครื่องแรกของโลก
- Charles Babbage สร้างเครื่องมือที่ชื่อ อนาไลติคัล เอ็นจิน“ (Analytical engine)
- Ada Lovelace โปรแกรมเมอร์คนแรกของโลก =ภาษา Ada 


สามารถอ่านเพิ่มเติมได้ที่ https://sites.google.com/site/pmtecg39012001/