ระบบคอมพิวเตอร์และสถาปัตยกรรม
ความหมายของสถาปัตยกรรมคอมพิวเตอร์
สถาปัตยกรรมคอมพิวเตอร์ เป็นทฤษฎีที่อยู่ฉากหลังของการออกแบบ คอมพิวเตอร์ โดยทั่วไปหมายถึง การออกแบบ สถาปัตยกรรมคอมพิวเตอร์ คือ การออกแบบส่วนต่างๆ ของระบบคอมพิวเตอร์ ให้สามารถทำงานได้อย่างมีประสิทธิภาพ ประกอบด้วยส่วนสำคัญ 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. 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. ประมวลผลข้อมูลเก็บ
ข้อมูลที่นำเข้าสู่ระบบคอมพิวเตอร์ จำเป็นต้องมีการประมลผลก่อน เพื่อให้ได้ข้อมูลที่สามารถนำไปใช้ประโยชน์ได้ หรือที่เรียกว่า “สารสนเทศ” การประมวลผลข้อมูลนั้น อาจจะเป็นเรื่องของการคำนวณ การเปรียบเทียบข้อมูล หรือการประมวลผลข้อมูลทางตรรกะ ซึ่งจุดประสงค์หลักของการนำระบบคอมพิวเตอร์มาใช้ ก็คือใช้ประมวลผลข้อมูลที่มีปริมาณมากแทนมนุษย์นั่นเอง
2. เก็บหรือบันทึกข้อมูล
ข้อมูลที่นำเข้าสู่ระบบคอมพิวเตอร์ บางครั้งยังอาจจะไม่นำไปประมวลผลเลยทันที อาจต้องรอข้อมูลอื่น ๆ อีกมาประกอบในการประมวลผล จึงจำเป็นต้องเก็บหรือบันทึกข้อมูลเหล่านั้นไว้ก่อน เมื่อถึงเวลาที่จะประมวลผล จึงดึงข้อมูลเหล่านั้นออกมาใช้ หรืออีกในกรณีหนึ่ง ผลลัพธ์ของการประมวลผลข้อมูลแล้ว ยังไม่ได้นำไปใช้งานทันที อาจจะบันทึกเก็บไว้ในหน่วยเก็บข้อมูลก่อน เพื่อรอการใช้งานในอนาคต
3. เคลื่อนย้ายข้อมูลระหว่างคอมพิวเตอร์กับอุปกรณ์ภายนอก
เมื่อระบบคอมพิวเตอร์ รับข้อมูลจากภายนอกมา ข้อมูลจะต้องเคลื่อนย้ายจากหน่วยรับข้อมูล จากนั้นข้อมูลจะเคลื่อนย้ายมายัง หน่วยประมวลผลข้อมูล และขณะเมื่อข้อมูลนั้นกำลังประมวลผลอยู่ภายในหน่วยประมวลผลข้อมูลนั้น ข้อมูลนั้นก็ยังเคลื่อนย้ายไป-มา จนกระทั่งได้ข้อมูลที่ประมวลผลแล้ว ซึ่งเป็นผลลัพธ์ จะเคลื่อนย้ายไปเก็บไว้ในหน่วยความจำ หรือเคลื่อนย้ายไปยังอุปกรณ์ภายนอก ที่ต่อเชื่อมอยู่กับระบบคอมพิวเตอร์นั้น
4. ควบคุมการทำงานของระบบคอมพิวเตอร์และอุปกรณ์ที่ต่อพ่วง
การทำงานของระบบคอมพิวเตอร์ นอกจากจะมีกลไกในการควบคุม การประมวลผลข้อมูลและ การไหลของข้อมูล ภายในหน่วยย่อยต่าง ๆ ของระบบคอมพิวเตอร์แล้ว ระบบคอมพิวเตอร์ยังควบคุมการทำงานของอุปกรณ์ภายนอก ที่ต่อพ่วงอยู่กับระบบอีกด้วย
ยุคต่างๆ ของคอมพิวเตอร์
ยุคที่ 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 คาดว่าในยุคนี้จะเป็นยุคของปัญญาประดิษฐ์
การทำงานของระบบคอมพิวเตอร์จะทำงานแบบขนานกันไป มีความเร็วในการประมวลผลสูงมาก
การแบ่งแยกประเภทของสถาปัตยกรรมคอมพิวเตอร์
ระบบคอมพิวเตอร์ประเภท 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 คำสั่งของงาน แต่ละโปรเซสเซอร์เป็นอิสระต่อกันแต่อาศัยการประสานงานที่ดี
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 ตัว ความสามารถในการขยายสเกลยังจำกัด แต่สามารถใช้โปรแกรมแบบเดิมได้ไม่ต้องเขียนขึ้นใหม่