สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
ความหมายของสถาปัตยกรรมคอมพิวเตอร์
สถาปัตยกรรมคอมพิวเตอร์ คือ การออกแบบส่วนต่างๆ ของระบบคอมพิวเตอร์ ให้สามารถทำงานได้อย่างมีประสิทธิภาพ ประกอบด้วยส่วนสำคัญ 2 ส่วน ดังนี้
l สถาปัตยกรรมคำสั่ง ISA. (Instruction Set Architecture)
คือ รูปแบบของการกำหนดภาษาที่ใช้กับเครื่องคอมพิวเตอร์ตระกูลต่างๆ ภาษาที่ใช้กับเครื่องประกอบกันขึ้นเป็นโปรแกรม หากโปรแกรมที่เขียนใช้กับเครื่องรุ่นเก่า และสามารถ Run กับเครื่องรุ่นใหม่ในตระกูลเดียวกันได้ เรียกเครื่องรุ่นใหม่นั้นได้ว่า "Upward Compatibility" ในทางกลับกันหากโปรแกรมที่เขียนขึ้นใช้กับเครื่องรุ่นใหม่แล้วไม่สามารถ Run กับเครื่องรุ่นเก่ากว่าได้ เรียกคอมพิวเตอร์รุ่นเก่านั้นไดว่า "Downward Compatibility"
l สถาปัตยกรรม Hardware (Hardware System Architecture)
คือ ฮาร์ดแวร์ (Hardware) ของระบบคอมพิวเตอร์ เช่น CPU , Storage System , Bus และ I/O System โดยพัฒนาขึ้นมาตามลำดับจากแนวคิดระบบคอมพิวเตอร์พื้นฐานของ Von Neumann ประกอบด้วย Hardware พื้นฐาน คื
1. CPU (Central Processing Unit) -หน่วยประมวลผลกลาง
2. Main Memory System -
ระบบหน่วยความจำ
3. Input/Output System -
ระบบอุปกรณ์นำเข้าข้อมูล/อุปกรณ์แสดงผลลัพธ์ข้อมูล
4. Interconnection System (BUS) –
ระบบเชื่อมต่ออุปกรณ์ ต่าง ๆ เข้าด้วยกัน
นอกจากนั้นคำสั่งจะต้อง Execute ทีละคำสั่งตามลำดับ และมีเส้นทาง (BUS) ในการขนถ่ายข้อมูลอย่างน้อย 1 เส้นทางระหว่าง CPU กับ Main Memory เรียกว่า "Von Neumann"
หน้าที่ต่าง ๆ ของคอมพิวเตอร์
ในอดีต คอมพิวเตอร์ คือเรื่องของงานชนิดต่าง ๆ ซึ่งจะต้องทำให้สำเร็จลุล่วงไปในช่วงเวลาหนึ่ง แต่ในปัจจุบันจะมองว่าคอมพิวเตอร์นั้นประกอบด้วย Hardware และ Software ซึ่งมีหน้าที่ต่าง ๆ ดังนี้คือ
1. ประมวลผลข้อมูลเก็บ
ข้อมูลที่นำเข้าสู่ระบบคอมพิวเตอร์ จำเป็นต้องมีการประมลผลก่อน เพื่อให้ได้ข้อมูลที่สามารถนำไปใช้ประโยชน์ได้ หรือที่เรียกว่า “สารสนเทศ” การประมวลผลข้อมูลนั้น อาจจะเป็นเรื่องของการคำนวณ การเปรียบเทียบข้อมูล หรือการประมวลผลข้อมูลทางตรรกะ ซึ่งจุดประสงค์หลักของการนำระบบคอมพิวเตอร์มาใช้ ก็คือใช้ประมวลผลข้อมูลที่มีปริมาณมากแทนมนุษย์นั่นเอง
- เก็บหรือบันทึกข้อมูล
ข้อมูลที่นำเข้าสู่ระบบคอมพิวเตอร์ บางครั้งยังอาจจะไม่นำไปประมวลผลเลยทันที อาจต้องรอข้อมูลอื่น ๆ อีกมาประกอบในการประมวลผล จึงจำเป็นต้องเก็บหรือบันทึกข้อมูลเหล่านั้นไว้ก่อน เมื่อถึงเวลาที่จะประมวลผล จึงดึงข้อมูลเหล่านั้นออกมาใช้ หรืออีกในกรณีหนึ่ง ผลลัพธ์ของการประมวลผลข้อมูลแล้ว ยังไม่ได้นำไปใช้งานทันที อาจจะบันทึกเก็บไว้ในหน่วยเก็บข้อมูลก่อน เพื่อรอการใช้งานในอนาคต
- เคลื่อนย้ายข้อมูลระหว่างคอมพิวเตอร์กับอุปกรณ์ภายนอก
เมื่อระบบคอมพิวเตอร์ รับข้อมูลจากภายนอกมา ข้อมูลจะต้องเคลื่อนย้ายจากหน่วยรับข้อมูล จากนั้นข้อมูลจะเคลื่อนย้ายมายัง หน่วยประมวลผลข้อมูล และขณะเมื่อข้อมูลนั้นกำลังประมวลผลอยู่ภายในหน่วยประมวลผลข้อมูลนั้น ข้อมูลนั้นก็ยังเคลื่อนย้ายไป-มา จนกระทั่งได้ข้อมูลที่ประมวลผลแล้ว ซึ่งเป็นผลลัพธ์ จะเคลื่อนย้ายไปเก็บไว้ในหน่วยความจำ หรือเคลื่อนย้ายไปยังอุปกรณ์ภายนอก ที่ต่อเชื่อมอยู่กับระบบคอมพิวเตอร์นั้น
4. ควบคุมการทำงานของระบบคอมพิวเตอร์และอุปกรณ์ที่ต่อพ่วง
การทำงานของระบบคอมพิวเตอร์ นอกจากจะมีกลไกในการควบคุม การประมวลผลข้อมูลและ การไหลของข้อมูล ภายในหน่วยย่อยต่าง ๆ ของระบบคอมพิวเตอร์แล้ว ระบบคอมพิวเตอร์ยังควบคุมการทำงานของอุปกรณ์ภายนอก ที่ต่อพ่วงอยู่กับระบบอีกด้วย
แรงผลักดันในการพัฒนาประสิทธิภาพของระบบคอมพิวเตอร์
เนื่องจากปริมาณข้อมูลที่จะต้องประมวลผลมีอยู่มาก อีกทั้งกรรมวิธีในการประมวลผลข้อมูลนับวันก็ยิ่งมีความซับซ้อนมากขึ้น การประมวลผลจำเป็นต้องใช้เวลาให้สั้นลงทันต่อเหตุการณ์ มีความถูกต้องแม่นยำสูงเพื่อให้สามารถพยากรณ์เหตุการณ์ที่จะเกิดขึ้นในอนาคตได้ ซึ่งมีเรื่องของงานต่างๆ พอสรุปได้ดังนี้
1) การพยากรณ์อากาศ
ในการคาดหมายสภาวะของลมฟ้าอากาศ รวมทั้งปรากฏการณ์ทางธรรมชาติ ที่จะเกิดขึ้นในช่วงเวลาข้างหน้า จำเป็นต้องทราบข้อมูลสภาวะของบรรยากาศ ที่ครอบคลุมพื้นที่บริเวณนั้นว่าประกอบด้วย ระบบลมฟ้าอากาศเป็นอย่างไร มีการเคลื่อนที่หรือเปลี่ยนแปลงความรุนแรง เช่นไร หลังจากมีการเปลี่ยนแปลงขึ้นแล้ว จะก่อให้เกิดลักษณะอากาศประเภทใด
2) สมุทรศาสตร์
จะเป็นการศึกษาข้อมูลเกี่ยวกับการไหลเวียนของน้ำทะเล ตะกอนในทะเล และคุณภาพของน้ำบริเวณชายฝั่ง เช่นการแพร่กระจายของตะกอนแขวนลอยที่เกิดจากกิจกรรมเหมืองแร่ใน ทะเล นอกจากนั้นยังได้ศึกษาการแพร่กระจายของตะกอนบริเวณปากแม่น้ำต่าง ๆ ตลอดจนการพังทะลายของชายฝั่งทะเล
3) แผ่นดินไหวและค้นหาแหล่งน้ำมันเชื้อเพลิง
แผ่นดินไหวคืออาการสั่นสะเทือนของแผ่นดิน ซึ่งจะนำความเสียหายมาสู่มนุษย์ มากหรือน้อยขึ้นอยู่กับพลังงานที่ปล่อยออกมา แผ่นดินไหวมีสาเหตุหลัก 3 สาเหตุคือ
1) โดยขบวนการแปรสันฐานของเปลือกโลกเอง
2) โดยขบวนการภูเขาไฟระเบิด
3) โดยขบวนการกระทำของมนุษย์ หรือเหตุอื่น ๆ เช่น อุกกาบาต การทดลองระเบิดนิวเคลียร์
4) อากาศพลศาสตร์และการวิเคราะห์โครงสร้าง
แรงทางอากาศพลศาสตร์ จะเป็นเรื่องเกี่ยวกับกระแสอากาศที่สัมพันธ์กับวัตถุ ที่เกิดการเปลี่ยนแปลง คุณลักษณะเกี่ยวกับมวล ความหนาแน่น ความเร็ว อุณหภูมิ จะทำให้เกิดแรงต่าง ๆ เช่น แรงขับ แรงต้าน แรงยก และแรงโน้มถ่วง เช่น เมื่อเครื่องบินเคลื่อนตัวไปข้างหน้า ก็จะปะทะกับกระแสอากาศ เกิดเป็นแรงต้าน(Drag) ที่มีทิศทางสวนไปข้างหลัง พยายามต้านให้ความเร็วลดลง แรงดันของอากาศภายใต้ปีกเครื่องบินที่เกิดจากกระแสอากาศ ขณะที่เครื่องบินผ่านอากาศ จะเกิดแรงยก น้ำหนักเครื่องบินจะทำให้เกิดแรงโน้มถ่วงสู่พื้นโลก โดยขณะที่เครื่องบิน บินอยู่ แรงขับจะต้องมากกว่าแรงดัน และแรงยกจะต้องมากกว่าแรงโน้มถ่วง
5) ปัญญาประดิษฐ์
เป็นการสร้างเครื่องจักรกล ให้ทำกิริยาบางอย่าง หรืองานบางอย่าง คล้ายกับการใช้ปัญญา หรือความคิดในการกระทำ หรือที่เรียกว่า “กิริยาปัญญาประดิษฐ์” โดยทำให้เครื่องจักรนั้นลอกเลียนกิริยาต่าง ๆ ของมนุษย์ ที่กระทำด้วยปัญญา เช่น การมองเห็น การสังเคราะห์เสียงพูด การเข้าใจภาษาพูดเป็นต้น
6) การทหาร
กองทัพเป็นเครื่องมือของรัฐที่ใช้ในยามทั้งสันติและสงคราม ในยามสันติจะใช้ปฏิบัติการในลักษณะป้องปราม ในยามสงคราม จะใช้ปฏิบัติการของกองทัพในลักษณะของการรุกและป้องกันตนเอง โดยกองทัพจะใช้อาวุธยุทธโธปกรณ์ที่มีระบบคอมพิวเตอร์ควบคุม เพื่อให้ปฏิบัติการกับเป้าหมายที่คาดว่าน่าจะเป็นภัยคุกคาม และเตรียมแผนเผชิญเหตุ อย่างรอบคอบ ทันเวลา และถูกต้องแม่นยำ เหมาะสมกับสถานการณ์ต่าง ๆ ที่เปลี่ยนแปลงไปของเป้าหมาย
7) เศรษฐศาสตร์
นอกจากปัจจัยในการดำรงชีพขั้นพื้นฐานของมนุษย์ แล้ว มนุษย์ยังมีความต้องการอื่น ๆ อีก คือ สินค้าและบริการ สินค้าและบริการ เกิดจากทรัพยากรที่มีอยู่อย่าง จำกัด จำเป็นจะต้องจัดการในเรื่องการผลิตและบริการอย่างมีประสิทธิภาพ เพื่อการกระจายรายได้ระหว่างเจ้าของปัจจัยการผลิต การแลกเปลียนความเป็นเจ้าของสินค้าและบริการ โดยนำระบบคอมพิวเตอร์เข้ามาใช้ให้บริการ ข้อมูลต่าง ๆ เหล่านั้น จะนำมาใช้วิเคราะห์ โดยคอมพิวเตอร์ เพื่อจะได้ทราบเศรษฐกิจโดยรวมของรัฐ ๆ นั้น
ยุคต่างๆ ของคอมพิวเตอร์
ยุคที่ 1 (1944 - 1958) ยุคแห่งหลอดสุญญากาศ
ใช้หลอดสูญญากาศ ความต้านทาน Capacitor และ สวิทช์ ในยุคนั้นคอมพิวเตอร์ใช้คำนวณค่าในตารางการยิงปืนใหญ่ ใช้ภาษาเครื่องจักร ใช้กำลังไฟฟ้ามาก
ยุคที่ 2 (1959 - 1964) ยุคแห่งทรานซิสเตอร์
ใช้ Transistor เป็นวงจรหลักของระบบคอมพิวเตอร์ ใช้ภาษาระดับสูง มีการคำนวณทางคณิตศาสตร์แบบFloating point
ยุคที่ 3 (1964 - 1974) ยุคแห่ง IC
เริ่มใช้วงจรรวม (Integrated circuit) มีหน่วยความจำเป็นแบบ Semi conductor ขนาดของคอมพิวเตอร ์จึงมีขนาดเล็กลง
ยุคที่ 4 (1975 - ปัจจุบัน) ยุคแห่ง LSI
ใช้เทคโนโลยี VLSI ประยุกต์ใช้เครือข่ายคอมพิวเตอร์ เพื่อเพิ่มประสิทธิภาพการทำงานให้สูงขึ้น ในยุคนี้ขนาดของคอมพิวเตอร์จะมีขนาดเล็กลงมาก
ยุคที่ 5 (ปัจจุบัน - ????) ยุคปัญญาประดิษฐ์
VLSI , ULSI , Parallel System , Intelligence คาดว่าในยุคนี้จะเป็นยุคของปัญญาประดิษฐ์ การทำงานของระบบคอมพิวเตอร์จะทำงานแบบขนานกันไป มีความเร็วในการประมวลผลสูงมาก
แนวโน้มการใช้คอมพิวเตอร์
Data processing - เป็นพื้นฐานของการประมวลผลข้อมูล โดยที่ข้อมูลมีจำนวนมาก ใช้คอมพิวเตอร์เข้าช่วยเพื่อลดเวลาการประมวลผลเพื่อให้ได้ Information ทันเวลานั่นเอง
Information processing – ข่าวสาร หรือ Information ก็ยังมีอยู่มาก จำเป็นต้องใช้คอมพิวเตอร์ประมวลผลให้ได้ข้อความรู้ (Knowledge)
Knowledge processing - เป็นการประมวลผล ข้อความรู้ เพื่อเลือกหนทางที่ดีที่สุด
Intelligence processing - เป็นการประมวลผลข้อความรู้ที่ดีที่สุด เพื่อใช้ในการตัดสินใจแทนมนุษย์ได้ ซึ่งนั่นหมายถึง เป็นการประมวลผลที่ซับซ้อนมากขึ้น ต้องใช้เหตุผลในการประมวลมากขึ้น และใช้ข้อมูลในการประมวลผลน้อยลง
การแบ่งแยกประเภทของสถาปัตยกรรมคอมพิวเตอร์
ระบบคอมพิวเตอร์ประเภท SISD (Single Instruction Single Data Stream) - จะเป็นระบบคอมพิวเตอร์ที่มีโปรเซสเซอร์เดียว ที่ Execute 1 คำสั่ง ต่อ 1 ชุดข้อมูล
ระบบคอมพิวเตอร์ประเภท MISD (Multiple Instruction Single Data Stream) - จะเป็นระบบคอมพิวเตอร์ที่มี
โปรเซสเซอร์หลายตัวที่ทำงานพร้อมกันหรือที่เรียกว่า ทำงาน
ขนานกัน (Parallel processing) โดยที่โปรเซสเซอร์แต่ละตัวจะ
มีคำสั่งที่ใช้ Exexcute ของตนเอง แต่ทั้งหมดจะใช้ชุดข้อมูลชุด
เดียว เช่น ให้คำนวณ f(x) = 2*x^2+4 จะสามารถทำตามขั้นตอน
ได้ดังนี้คือ
1. หาค่า X^2 2. คูณผลลัพธ์ของ X^2 ด้วย 2
3. บวกค่า 4 เข้ากับ 2*X^2
นั่นคือ เมื่อ P1 Execute คำสั่งเสร็จก็จะส่งผลลัพธ์ให้ P2 และ
เมื่อ P2 Execute คำสั่งเสร็จก็จะส่งผลลัพธ์ให้กับ P3 P3 ก็จะ
Execute คำสั่ง โดยนำผลลัพธ์ที่ออกจาก P2 มาประมวลผล เมื่อ
P1 และ P2 ทำงานหรือ Execute คำสั่งเสร็จ ก็จะรับข้อมูลและ
คำสั่งชุดต่อไปมาทำการ Execute ต่อไปเรื่อย ๆ
ระบบคอมพิวเตอร์ประเภท SIMD (Single Instruction Multiple Data Stream) – เป็นการทำงานของโปรเซสเซอร์หลายตัว ที่ทำงานพร้อมกันโดยโปรเซส เซอร์ทุกตัวใช้คำสั่งเดียวกันหมด
เช่น การบวกเลข Matrix ที่ประกอบด้วยข้อมูล 3 ชุด ที่ต้องนำมาบวกกัน โดยจะต้องคำนวณข้อมูล 3 ชุด คือ X1 + Y1 , X2 + Y2 และ X3 + Y3 เพื่อให้ได้ผลลัพธ์ออกมา ซึ่งโปรเซสเซอร์ทุกตัวExcute คำสั่งมาบวกพร้อมกันทั้งหมด โดยมีข้อมูลต่างกัน
ระบบคอมพิวเตอร์ประเภท MIMD (Multiple Instruction
Multiple Data Stream) – เป็นระบบคอมพิวเตอร์ที่ใช้
โปรเซสเซอร์หลายตัว แต่เชื่อมโยงกันเพื่อช่วยกันทำงาน
โปรเซสเซอร์แต่ละตัวใช้คำสั่งและข้อมูลของตนเอง การ
Execute คำสั่งของงาน แต่ละโปรเซสเซอร์เป็นอิสระต่อกัน
แต่อาศัยการประสานงานที่ดี
การเชื่อมโยงระบบคอมพิวเตอร์ (Coupling) ที่มีหลายโปรเซสเซอร์
มีการเชื่อมโยง 2 รูปแบบ คือ
การเชื่อมโยงอย่างหลวม (Loosely Coupling) - เป็นระบบคอมพิวเตอร์ที่มีหลายโปรเซสเซอร์ แต่ละโปรเซสเซอร์มีหน่วยความจำของตนเอง (Local Memory) และทำงานขนานกันไป มีกลไกการควบคุมการทำงานของโปรเซสเซอร์เหล่านั้น โปรเซสเซอร์แต่ละตัวทำงานเป็นอิสระต่อกัน มีข้อมูลและคำสั่งเป็นของตนเอง โดยติดต่อรับส่งข้อมูลทางช่องทางสื่อสารร่วม การรับส่งข้อมูลส่วนใหญ่จะเป็นเรื่องของข้อมูล
การเชื่อมโยงอย่างแน่น(Tightly Coupling) - เป็นระบบคอมพิวเตอร์ที่มีหลายโปรเซสเซอร์และสามารถใช้หน่วยความจำร่วมกันได้ โดยเฉพาะหน่วยความจำหลัก แต่โปรเซสเซอร์แต่ละตัวอาจมีหน่วยความจำหลักเป็นของตนเองหรือไม่ก็ได้ จะมีโปรเซสเซอร์หนึ่งควบคุม (Master) และโปรเซสเซอร์อีกหลายๆ ตัวเป็น Slave จึงเรียกการทำงานแบบนี้ว่า Master-Slave
การวัดประสิทธิภาพของสถาปัตยกรรมคอมพิวเตอร์(System Performance)
Bench Mark - โปรแกรมมาตรฐานที่ใช้วัดประสิทธิภาพการทำงานของเครื่องคอมพิวเตอร์
Through Put - ประสิทธิภาพของระบบคอมพิวเตอร์ที่ดี จะดูที่ปริมาณงานที่ทำได้ต่อหน่วยเวลา
Response Time - เวลาที่เครื่องคอมพิวเตอร์ตอบสนองต่อคำสั่ง ที่สั่งให้ทำ
MIPS(Million Instructions per second) - CPU.Performance ที่ CPU.สามารถปฏิบัติตามคำสั่งได้ กี่ล้านคำสั่งต่อวินาที
MFLOPS(Million of Floating-point Operations per second)- Numeric Processor ที่สามารถคำนวณตัวเลขทศนิยม
Bandwith :
Memory access time- เวลาเฉลี่ยที่ CPU.ใช้ Access ข้อมูลในตำแหน่งต่าง ๆ ของหน่วยความจำ มีหน่วยวัดเป็น Nano second, Milli second etc.
Memory size - ขนาดความจุของหน่วยความจำ มีหน่วยวัดเป็น Mega Bytes, Giga Bytes etc.
การวัดคุณภาพของเครื่องคอมพิวเตอร์
Generality - มีความสามารถใช้งานได้หลายประเภท เช่น วิศวกรรม , วิทยาศาสตร์, บัญชี เป็นต้น
Applicability - มีความสามารถใช้งานได้ตามจุดประสงค์ของงานนั้น ๆ
Efficiency - อัตราเฉลี่ยของเวลา ความคงทนต่องานของเครื่องคอมพิวเตอร์ เมื่อทำงานตามสภาพปกติ
Ease of use - ใช้งานง่าย ในลักษณะ Friendly user และสามารถพัฒนา Software ได้ง่าย
Malleability - ดัดแปลงง่าย สามารถดัดแปลง นำไปใช้งานได้อย่างกว้างขวาง