บทที่3 สถาปัตยกรรมคอมพิวเตอร์ ... ·...

12
บทที3 สถาปัตยกรรมคอมพิวเตอร์และการเขียนโปรแกรมเชิงโครงสร้าง ความรู้เบื้องต้นเกี่ยวกับระบบคอมพิวเตอร์และสถาปัตยกรรม ความหมายของสถาปัตยกรรมคอมพิวเตอร์ สถาปัตยกรรมคอมพิวเตอร์ คือ การออกแบบส่วนต่างๆ ของระบบคอมพิวเตอร์ให้สามารถทํางานได้ อย่างมีประสิทธิภาพ ประกอบด้วยส่วนสําคัญ 2 ส่วน ดังนี1) สถาปัตยกรรมคําส่ง ISA. (Instruction Set Architecture) คือ รูปแบบของการกําหนดภาษา ที่ใช้กับเครื่องคอมพิวเตอร์ตระกูลต่างๆ ภาษาที่ใช้กับเครื่องประกอบกันขึ้นเป็นโปรแกรม หากโปรแกรม ที่เขียนใช้กับเครื่องรุ่นเก่ และสามารถ Run กับเครื่องรุ่นใหม่ในตระกูลเดียวกันได้ เรียกเครื่องรุ่นใหม่ นั้นได้ว่า "Upward Compatibility" ในทางกลับกันหากโปรแกรมที่เขียนขึ้นใช้กับเครื่องรุ่นใหม่แล้ว ไม่สามารถ Run กับเครื่องรุ่นเก่ากว่าได้ เรียกคอมพิวเตอร์รุ่นเก่านั้นได้ว่า "Downward Compatibility" 2) สถาปัตยกรรม Hardware (Hardware System Architecture) คือ ฮาร์ดแวร์ (Hardware) ของระบบคอมพิวเตอร์ เช่น CPU , Storage System , Bus และ I/O System โดยพัฒนาขึ้นมาตาม ลําดับจากแนวคิดระบบคอมพิวเตอร์พื้นฐานของ Von Neumann ประกอบด้วย Hardware พื้นฐาน คือ 2.1) CPU (Central Processing Unit) -หน่วยประมวลผลกลาง 2.2) Main Memory System ระบบหน่วยความจํา 2.3) Input/Output System ระบบอุปกรณ์นําเข้าข้อมูล/อุปกรณ์แสดงผลลัพธ์ข้อมูล 2.4) Interconnection System (BUS) ระบบเชื่อมต่ออุปกรณ์ต่างๆ เข้าด้วยกัน นอกจากนั้น คําสั่งจะต้อง Execute ทีละคําสั่งตามลําดับ และมีเส้นทาง (BUS) ในการขนถ่ายข้อมูลอย่างน้อย 1 เส้นทาง ระหว่าง CPU กับ Main Memory เรียกว่า "Von Neumann" หน้าที่ต่างของคอมพิวเตอร์ ในอดีตคอมพิ วเตอร์ คือเรื่องของงานชนิดต่างซึ่งจะต้องทําให้สําเร็จลุล่วงไปในช่วงเวลาหนึ่ง แต่ใน ปัจจุบันจะมองว่าคอมพิวเตอร์นั้นประกอบด้วย Hardware และ Software ซึ่งมีหน้าที่ต่าง ดังนี้คือ 1. ประมวลผลข้อมูลเก็บ ข้อมูลที่นําเข้าสู่ระบบคอมพิวเตอร์ จําเป็นต้องมีการประมลผลก่อน เพื่อให้ได้ข้อมูลที่สามารถ นําไปใช้ ประโยชน์ได้ หรือที่เรียกว่า สารสนเทศการประมวลผลข้อมูลนั้นอาจจะเป็นเรื่องของ การคํานวณ การเปรียบเทียบข้อมูล หรือการประมวลผลข้อมูลทางตรรกะ ซึ่งจุดประสงค์หลักของ การนำระบบ คอมพิวเตอร์มาใช้ ก็คือใช้ ประมวลผลข้อมูลที่มีปริมาณมากแทนมนุษย์นั่นเอง 2. เก็บหรือบันทึกข้อมูล ข้ อมูลที่นําเข้าสู่ระบบคอมพิวเตอร์ บางครั้งยังอาจจะไม่นําไปประมวลผลเลยทันที อาจต้องรอข้อมูลอื่นอีกมาประกอบในการประมวลผล จึงจําเป็นต้องเก็บหรือบันทึกข้อมูลเหล่านั้นไวก่อน เมื่อถึงเวลาที่จะ

Upload: others

Post on 22-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

  • บทที่ 3

    สถาปัตยกรรมคอมพิวเตอร์และการเขียนโปรแกรมเชิงโครงสร้าง

    ความรู้เบื้องต้นเกี่ยวกับระบบคอมพิวเตอร์และสถาปัตยกรรม

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

    2.3) Input/Output System ระบบอุปกรณ์นําเข้าข้อมูล/อุปกรณ์แสดงผลลัพธ์ข้อมูล

    2.4) Interconnection System (BUS) ระบบเชื่อมต่ออุปกรณ์ต่างๆ เข้าด้วยกัน นอกจากนั้น

    คําสั่งจะต้อง Execute ทีละคําสั่งตามลําดับ และมีเส้นทาง (BUS) ในการขนถ่ายข้อมูลอย่างน้อย 1 เส้นทาง

    ระหว่าง CPU กับ Main Memory เรียกว่า "Von Neumann"

    หน้าที่ต่างๆ ของคอมพิวเตอร ์

    ในอดีตคอมพวิเตอร์ คือเรื่องของงานชนิดต่างๆ ซึ่งจะต้องทําให้สําเร็จลุล่วงไปในช่วงเวลาหนึ่ง แต่ใน ปัจจุบันจะมองว่าคอมพิวเตอร์นั้นประกอบด้วย Hardware และ Software ซึ่งมีหน้าที่ต่าง ๆ ดังนี้คือ

    1. ประมวลผลข้อมูลเก็บ ข้อมูลที่นําเข้าสู่ระบบคอมพิวเตอร์ จําเป็นต้องมีการประมลผลก่อน เพื่อให้ได้ข้อมูลที่สามารถ นําไปใช้ ประโยชน์ได้ หรือที่เรียกว่า “สารสนเทศ” การประมวลผลข้อมูลนั้นอาจจะเป็นเรื่องของ การคํานวณ การเปรียบเทียบข้อมูล หรือการประมวลผลข้อมูลทางตรรกะ ซึ่งจุดประสงค์หลักของ การนำระบบ คอมพิวเตอร์มาใช้ ก็คือใช้ประมวลผลข้อมูลที่มีปริมาณมากแทนมนุษย์นั่นเอง 2. เก็บหรือบันทึกข้อมูล ข้อมูลที่นําเข้าสู่ระบบคอมพิวเตอร์บางครั้งยังอาจจะไม่นําไปประมวลผลเลยทันที อาจต้องรอข้อมูลอื่นๆ อีกมาประกอบในการประมวลผล จึงจําเป็นต้องเก็บหรือบันทึกข้อมูลเหล่านั้นไว้ก่อน เมื่อถึงเวลาที่จะ

  •   2    

    ประมวลผล จึงดึงข้อมูลเหล่านั้นออกมาใช้หรืออีกในกรณีหนึ่ง ผลลัพธ์ของการ ประมวลผลข้อมูลแล้ว ยังไม่ได้นําไปใช้งานทันที อาจจะบันทึกเก็บไว้ในหน่วยเก็บข้อมูลก่อน เพื่อรอการใช้งานในอนาคต 3. เคลื่อนย้ายข้อมูลระหว่างคอมพิวเตอร์กับอุปกรณ์ภายนอก เมื่อระบบคอมพิวเตอร์รับข้อมูลจากภายนอกมา ข้อมูลจะต้องเคลื่อนย้ายจากหน่วยรับข้อมูล จากนั้น ข้อมูลจะเคลื่อนย้ายมายัง หน่วยประมวลผลข้อมูล และขณะเมื่อข้อมูลนั้นกําลังประมวลผล อยู่ภายใน หน่วยประมวลผลข้อมูลนั้น ข้อมูลนั้นก็ยังเคลื่อนย้ายไป-มา จนกระทั่งได้ข้อมูลที่ประมวลผลแล้ว ซึ่งเป็น ผลลัพธ์ จะเคลื่อนย้ายไปเก็บไว้ในหน่วยความจํา หรือเคลื่อนย้ายไปยังอุปกรณ์ภายนอก ที่ต่อเชื่อมอยู่ กับระบบคอมพิวเตอร์นั้น 4. ควบคุมการทํางานของระบบคอมพิวเตอร์และอุปกรณ์ที่ต่อพ่วง การทํางานของระบบคอมพิวเตอร์ นอกจากจะมีกลไกในการควบคุม การประมวลผลข้อมูลและการไหล

    ของข้อมูล ภายในหน่วยย่อยต่างๆ ของระบบคอมพิวเตอร์แล้ว ระบบคอมพิวเตอร์ยังควบคุมการทํางานของ

    อุปกรณ์ภายนอก ที่ต่อพ่วงอยู่กับระบบอีกด้วย

    ยุคของคอมพิวเตอร ์ เมื่อกล่าวถึงเทคโนโลยีทางวิศวกรรมหลายท่านอาจนึกถึงคอมพิวเตอร์ ในหัวข้อวิวัฒนาการเทคโนโลยี วิศวกรรมจึงกล่าวถึงวิวัฒนาการทางคอมพิวเตอร์พัฒนาการทางด้านเทคโนโลยีในช่วง100 ปีที่ผ่านมาได้พัฒนา ไปอย่างรวดเร็ว โดยเฉพาะอย่างยิ่งเทคโนโลยีทางด้านคอมพิวเตอร์ เมื่อ 50 ปีที่แล้วมา มีคอมพิวเตอร์ขึ้น ใช้งาน ต่อมาเกิดระบบสื่อสารโทรคมนาคมสมัยใหม่เกิดขึ้นมากมาย และมีแนวโน้มการพัฒนาอย่างต่อเนื่อง เราสามารถแบ่งพัฒนาการคอมพิวเตอร์จากอดีตสู่ปัจจุบัน สามารถแบ่งเป็นยุคก่อนการใช้ไฟฟ้าอิเล็กทรอนิคส์ และยุคที่เครื่องคอมพิวเตอร์เป็นอุปกรณ์ไฟฟ้าอิเล็กทรอนิคส์โดยแบ่งเป็น 5 ยุค จากอดีตจนถึงปัจจุบัน ดังนี้ 1. คอมพิวเตอร์ยุคแรก หรือ คอมพิวเตอร์ยุคหลอดสูญญากาศ (พ.ศ. 2488-2501) อยูร่ะหว่างปี พ.ศ. 2488 ถึง พ.ศ. 2501 เป็นคอมพิวเตอร์ที่ใช้หลอดสุญญากาศซึ่งใช้กําลังไฟฟ้าสูง จึงมีปัญหาเรื่องความร้อนและไส้หลอดขาดบ่อย ถึงแม้จะมีระบบระบายความร้อนที่ดีมาก การสั่งงานใช้ ภาษาเครื่อง ซึ่งเป็นรหัสตัวเลขที่ยุ่งยากซับซ้อน เครื่องคอมพิวเตอร์ของยุคนี้มีขนาดใหญ่โต เช่น มาร์ค วัน (MARK I), อีนิแอค (ENIAC), ยูนิแวค (UNIVAC) ในปี พ.ศ. 2486 วิศวกรสองคน คือ จอห์น มอชลี (John Mouchly) และ เจ เพรสเปอร์ เอ็ดเคิร์ท (J.Presper Eckert) ได้พัฒนาเครื่องคอมพิวเตอร์ และจัดได้ว่าเป็นเครื่องคอมพิวเตอร์ที่ใช้งานทั่วไป เครื่องแรกของโลก ชื่อว่า อินิแอค (Electronic Numerical Intergrator And Calculator : ENIAC) ในปี พ.ศ. 2488 จอห์น วอน นอยแมน (John Von Neumann) ได้เสนอแนวคิดในการสร้าง เครื่องคอมพิวเตอร์ที่มีหน่วยความจํา เพื่อใช้เก็บข้อมูลและโปรแกรมการทํางานหรือชุดคําสั่งคอมพิวเตอร์ คอมพิวเตอร์จะทํางานโดยเรียกชุดคําสั่งที่เก็บไว้ในหน่วยความจํามาทํางหลักการนี้เป็นหลักการที่ใช้มา จนถึงปัจจุบัน

  •   3      

    มาร์ค วัน

    ฮีนิแอค

    ยูนิแวค

  •   4    

    2. คอมพิวเตอร์ยุคที่สอง หรือ คอมพิวเตอร์ยุคทรานซิสเตอร ์(พ.ศ.2500-2507) คอมพิวเตอร์ ยุคที่สอง อยู่ระหว่างปี พ.ศ. 2502 ถึง พ.ศ. 2506 เป็นคอมพิวเตอร์ที่ใช้ทรานซิสเตอร์ โดยมีแกนเฟอร์ไรท์เป็นหน่วยความจํา มีอุปกรณ์เก็บข้อมูลสํารองในรูปของสื่อบันทึกแม่เหล็ก เช่น จานแม่เหล็ก ส่วนทางด้านซอฟต์แวร์ก็มีการพัฒนาดีขึ้น โดยสามารถเขียนโปรแกรมด้วยภาษาระดับสูง ซึ่งเป็นภาษาที่เขียนเป็นประโยคที่คน สามารถเข้าใจได้ เช่น ภาษาฟอร์แทน ภาษาโคบอล เป็นต้น ภาษาระดับสูงนี้ได้มีการพัฒนาและใช้งานมาจนถึงปัจจุบัน นักวิทยาศาสตร์ของห้องปฏิบัติการเบลแห่งสหรัฐอเมริกา ได้ประดิษฐ์ทรานซิสเตอร์สําเร็จ ซึ่งมีผล ทําให้เกิดการเปลี่ยนแปลงในการสร้างคอมพิวเตอร์ เพราะทรานซิสเตอร์มีขนาดเล็กใช้กระแสไฟฟ้าน้อย มีความคงทนและเชื่อถือได้สูง และราคาถูก ได้มีการผลิตคอมพิวเตอร์เรียกว่า เมนเฟรมคอมพิวเตอร์ สําหรับประเทศไทยมีการนําเครื่องคอมพิวเตอร์มาใช้ใน พ.ศ. 2507 โดยจุฬาลงกรณมหาวิทยาลัย นําเข้ามาใช้ในการศึกษา ในระยะเวลาเดียวกันสํานักงานสถิติแห่งชาติก็นํามาเพื่อใช้ในการคํานวณสํามะโน ประชากร นับเป็นเครื่องคอมพิวเตอร์รุ่นแรกที่ใช้ในประเทศไทย 3. คอมพิวเตอร์ยุคที่สาม หรือ คอมพิวเตอร์ยุควงจรรวม (พ.ศ.2508-2512) คอมพิวเตอร์ ยุคที่สาม อยู่ระหย่างปี พ.ศ. 2507 ถึง พ.ศ. 2512 เป็นคอมพิวเตอร์ที่ใช้วงจรรวม (Integrated Circuit : IC) โดยวงจรรวมแต่ละตัวจะมีทรานซิสเตอร์บรรจุอยู่ภายในมากมายทําให้เครื่อง คอมพิวเตอร์จะออกแบบซับซ้อนมากขึ้น และสามารถสร้างเป็นโปรแกรมย่อยๆ ในการกําหนดชุดคําสั่งต่าง ๆ ทางด้านซอฟต์แวร์มีระบบควบคุมที่มีความสามารถสูงทั้งในรูประบบแบ่งเวลาการทํางานให้กับงานหลายอย่าง ประมาณ ปี พ.ศ. 2508 ได้มีการพัฒนาสร้างทรานซิสเตอร์จํานวนมากลงบนแผ่นซิลิกอนขนาดเล็ก และเกิดวงจรรวมบนแผ่นซิลิกอนที่เรียกว่า ไอซี การใช้ไอซีเป็นส่วนประกอบทําให้คอมพิวเตอร์มีขนาดเล็กลง ราคาถูกลง จึงมีบริษัทผลิตคอมพิวเตอร์กันมากขึ้น คอมพิวเตอร์ขนาดเล็กลง เรียกว่า "มินิคอมพิวเตอร์" 4. คอมพิวเตอร์ยุคที่สี ่หรือ คอมพิวเตอร์ยุควีแอลเอสไอ (พ.ศ.2513-2532) คอมพิวเตอร์ ยุคที่สี่ ตั้งแต่ปี พ.ศ. 2513 จนถึงปัจจุบันเป็นยุคของคอมพิวเตอร์ที่ใช้วงจร รวมความจุสูงมาก(Very Large Scale Integration : VLSI) เช่น ไมโครโพรเซสเซอร์ที่บรรจุทรานซิสเตอร์ นับหมื่นนับแสนตัวทําให้ขนาดเครื่องคอมพิวเตอร์มีขนาดเล็กลง สามารถตั้งบนโต๊ะในสํานักงานหรือพกพา ได้ขณะเดียวกันระบบซอฟต์แวร์ก็ได้พัฒนาขีดความสามารถสูงขึ้นมาก มีโปรแกรมสําเร็จให้เลือกใช้กันมาก ทําให้ เกิดความสะดวกในการใช้งานอย่างกว้างขวาง เทคโนโลยีทางด้านการ ผลิตวงจรอิเล็กทรอนิคส์ยังคงพัฒนาอย่างต่อเนื่อง มีการสร้างวงจรรวมที่มี ขนาดใหญ่มารวมในแผ่นซิลิกอน เรียกว่า วีแอลเอสไอ (Very Large Scale Intergrated circuit : VLSI) เป็นวงจรรวมที่รวมเอาทรานซิสเตอร์จํานวนล้านตัวมารวมอยู่ในแผ่นซิลิกอนขนาดเล็ก และผลิตเป็น หน่วยประมวลผล ของคอมพิวเตอร์ที่ซับซ้อน เรียกว่า ไมโครโปรเซสเซอร์ (microprocessor) การใช้ VLSI เป็นวงจรภายในเครื่องคอมพิวเตอร์ ทําให้ประสิทธิภาพของเครื่องคอมพิวเตอร์สูงขึ้น เรียกว่า ไมโครคอมพิวเตอร์ ซึ่งเป็นเครื่องที่แพร่หลายและมีผู้ใช้งานกันทั่วโลก การที่คอมพิวเตอร์มี ขีดความสามารถสูง เพราะ VLSI เพียงชิพเดียวสามารถสร้างเป็นหน่วยประมวลผลของเครื่องทั้งระบบ หรือเป็นหน่วยความจําที่มีความจุสูงหรือเป็นอุปกรณ์ควบคุมการทํางาน ขณะเดียวกันพัฒนาของฮาร์ดดิสก์ ก็มีขนาดเล็กลงแต่ราคาถูกลง เครื่องไมโครคอมพิวเตอร์จึงมีขนาดเล็กลงปาล์มทอป (palm top) โน็ตบุ๊ค

  •   5      

    (Notebook) 5. คอมพิวเตอร์ยุคที่ห้า หรือ คอมพิวเตอร์ยุคเครือข่าย (พ.ศ.2533-ปัจจุบัน) คอมพิวเตอร์ยุคนี้ เป็นคอมพิวเตอร์ที่มนุษย์พยายามนํามาเพื่อช่วยในการตัดสินใจและแก้ปัญหา ให้ดียิ่งขึ้น โดยจะมีการเก็บความรอบรู้ต่างๆ เข้าไว้ในเครื่องสามารถเรียกค้นและดึงความรู้ที่สะสมไว้มาใช้งาน ให้เป็นประโยชน์ คอมพิวเตอร์ยุคนี้เป็นผลจากวิชาการด้านปัญญาประดิษฐ์ (Artificial Intelligence : AI) ประเทศต่างๆ ทั่วโลกไม่ว่าจะเป็นสหรัฐอเมริกา ญี่ปุ่น และประเทศในทวีปยุโรปกําลังสนใจค้นคว้าและ พัฒนาทางด้านนี้กันอย่างจริงจัง เมื่อไมโครคอมพิวเตอร์มีขีดความสามารถสูงขึ้น ทํางานได้เร็ว การแสดงผล การจัดการข้อมูล สามารถประมวลได้ครั้งละมากๆ จึงทําให้คอมพิวเตอร์สามารถทํางานหลายงานพร้อมกัน (multitasking) ขณะเดียวกันก็มีการเชื่อมโยงเครือข่ายคอมพิวเตอร์ในองค์การโดยใช้เครือข่าย ท้องถิ่นที่เรียกว่า Local Area Network : LAN เมื่อเชื่อมหลายๆ กลุ่มขององค์การเข้าด้วยกันเกิดเป็นเครือข่ายคอมพิวเตอร์ขององค์การ เรียกว่า อินทราเน็ต และหากนําเครือข่ายขององค์การเชื่อมต่อเข้าสู่เครือข่ายสากลที่ต่อเชื่อมกัน ทั่วโลก เรียกว่า อินเทอร์เน็ต (internet) คอมพิวเตอร์ ในยุคปัจจุบันจึงเป็นคอมพิวเตอร์ที่เชื่อมต่อกัน ทํางานร่วมกัน ส่งเอกสารข้อความ ระหว่างกนัสามารถประมวลผลรูปภาพ เสียง และวิดีทัศน์ ไมโครคอมพิวเตอร์ในยุคนี้จึงทํางานกับ สื่อหลายชนิดที่เรียกว่าสื่อประสม (Multimedia) รวมไปถึงสื่อสังคมออนไลน์ และระบบ cloud Computing

    แนวโน้มการใช้คอมพิวเตอร ์ 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) โดยที่โปรเซสเซอร์แต่ละตัวจะมีคําสั่งที่ใช้ Execute ของตนเอง แต่ทั้งหมดจะใช้ชุดข้อมูล ชุดเดียว เช่น ให้คํานวณ f(x) = 2*x^2+4 จะสามารถทําตามขั้นตอนได้ดังนี้คือ

    1. หาค่า X^2

  •   6    

    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 เพื่อให้ได้ผลลัพธ์ออกมา ซึ่งโปรเซสเซอร์ทุกตัว Execute คําสั่งมาบวกพร้อมกันทั้งหมด โดยมีข้อมูลต่างกัน ระบบคอมพิวเตอร์ประเภท 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 ที่สามารถ คํานวณตัวเลขทศนิยม

  •   7      

    Bandwidth : Memory access time- เวลาเฉลี่ยที่ CPU.ใช้ Access ข้อมูลในตําแหน่งต่าง ๆ ของหน่วยความจํา มีหน่วยวัดเป็น Nano second, Millisecond เป็นต้น Memory size - ขนาดความจุของหน่วยความจํา มีหน่วยวัดเป็น Mega Bytes, Giga Bytes เป็นต้น การวัดคุณภาพของเครื่องคอมพิวเตอร ์ Generality - มีความสามารถใช้งานได้หลายประเภท เช่น วิศวกรรม, วิทยาศาสตร์, บัญชี เป็นต้น Applicability - มีความสามารถใช้งานได้ตามจุดประสงค์ของงานนั้น ๆ Efficiency - อัตราเฉลี่ยของเวลา ความคงทนต่องานของเครื่องคอมพิวเตอร์ เมื่อทํางานตาม สภาพปกติ Ease of use - ใช้งานง่าย ในลักษณะ Friendly user และสามารถพัฒนา Software ได้ง่าย Malleability - ดัดแปลงง่าย สามารถดัดแปลง นําไปใช้งานได้อย่างกว้างขวาง

    การเขียนโปรแกรมเชิงโครงสร้าง แนวคิดในการเขียนโปรแกรม

    รูปแบบของแนวคิดในการเขียนโปรแกรม สามารถแบ่งออกได้เป็น 2 แนวคิดใหญ่ ๆ ดังนี้ 1. การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) 2. การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming) ซึ่งแต่ละแนวคิดมีลักษณะดังต่อไปนี้

    1. การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) เป็นการจัดการคําสั่งต่างๆให้มีรูปแบบและมาตรฐานที่สามารถเขียนโปรแกรมได้ง่าย ตรวจสอบได้ง่าย ทั้งสะดวกในการปรับปรุงโปรแกรมในอนาคต มีโครงสร้างการควบคุม 3 รูปแบบ ได้แก่ 1.1) โครงสร้างแบบลําดับขั้นตอน (Sequence) ประกอบด้วยคําสั่งหรือชุดคําสั่งที่ไม่มีเงื่อนไข ไม่มีการตัดสินใจมีทางเข้าทางเดียวและมีทางออกทางเดียว ดําเนินการแบบเรียงลําดับต่อเนื่อง โดยแต่ละ ขั้นตอนมีการดําเนินการเพียงครั้งเดียว มีรูปแบบผังงานดังภาพ

    ภาพที่ 2.1 ผังงานโครงสร้างแบบลําดับขั้นตอน

  •   8    

    ตัวอย่าง โปรแกรมคํานวณหาค่าเฉลี่ยคะแนนวิชาคอมพิวเตอร์ของนักเรียนชั้นมัธยมศึกษาปีที่ 3 จํานวน 5 คน และแสดงผลการคํานวณที่ได้

    วิธีทํา

    1. สิ่งที่โจทย์ต้องการ (Output) คือคํานวณหาคะแนนเฉลี่ยวิชาคอมพิวเตอร์ของนักเรียน จํานวน 5 คน แสดงผลการคํานวณที่ได้

    2. แสดงผลลัพธ์ คือ แสดงผลการคํานวณเฉลี่ยคะแนนวิชาคณิตศาสตร์ของนักเรียนชั้นมัธยมศึกษาปีที่ 3 ที่ได้

    3. ข้อมูลนําเข้า คือคะแนนวิชาคอมพิวเตอร์ของนักเรียนแต่ละคนจํานวน 5 คน

    4. ตัวแปรจํานวน 5 ตัวแปร ตั้งแต่ score1 …… score5 และค่าเฉลี่ย ซึ่งกําหนดดังนี้

    - score1 แทนคะแนนของนักเรียนคนที่ 1

    - score2 แทนคะแนนของนักเรียนคนที่ 2

    - score3 แทนคะแนนของนักเรียนคนที่ 3

    - score4 แทนคะแนนของนักเรียนคนที่ 4

    - score5 แทนคะแนนของนักเรียนคนที่ 5

    5. ขั้นตอนการประมวลผล

    - รับข้อมูลคะแนนของนักเรียนตั้งแต่ คนที่ 1 – คนที่ 5

    - คํานวณหาค่าเฉลี่ยคะแนนโดยนําคะแนนของนักเรียนทั้ง 5 คนมาบวกกัน และหารด้วยจํานวนนักเรียนทั้งหมดคือ 5

    - แสดงผลการคํานวณค่าเฉลี่ยคะแนนวิชาคณิตศาสตร์ของนักเรียนชั้นมัธยมศึกษาปีที่ 3

    6. จบการทำงาน

  •   9      

    ภาพที่ 2.2 ตัวอย่างผังงานแบบลําดับขั้นตอน

    1.2) โครงสร้างแบบมีทางเลือก ในการตัดสินใจเลือกทางใดทางหนึ่ง (Decision) ในโปรแกรมมีการตรวจสอบเงื่อนไข (Condition) ว่าเป็นค่าจริงหรือค่าเท็จ แล้วดําเนินการ ตามคําสั่งที่เงื่อนไขกําหนดต่อไป โดยมีรูปแบบผังงานดังภาพ

    ภาพที่ 2.3 ผังงานโครงสร้างแบบมีทางเลือก

    ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ โดยถ้าคะแนน 50 ขึ้นไป จะแสดงข้อความว่า "นักเรียนสอบผ่าน"

    วิธีทํา

    1. สิ่งที่โจทย์ต้องการ คือการตรวจสอบคะแนนว่ามากกว่า 50 หรือไม่ แล้วแสดงผลการตรวจสอบคะแนนนั้น

    2. แสดงผลลัพธ์ คือแสดงว่า "นักเรียนสอบผ่าน"

  •   10    

    3. ข้อมูลนําเข้า คือ คะแนนที่จะใช้ตรวจสอบ

    4. ตัวแปรที่ใช้มีจํานวน 1 ตัวแปร คือ คะแนนที่รับเข้ามาตรวจสอบ แทนด้วย score

    5. ขั้นตอนการประมวลผล

    - รับข้อมูลคะแนนแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ คือ score

    - ตรวจสอบค่าคะแนน 50 ขึ้นไปหรือไม่

    - แสดงผล กรณีที่ได้คะแนน 50 คะแนนขึ้นไป แสดงข้อความว่า "นักเรียนสอบผ่าน" แต่ถ้าได้น้อยกว่า 50 คะแนน ให้จบการทํางาน

    6. จบการทำงาน

    ภาพที่ 2.4 ตัวอย่างผังงานแบบมีทางเลือก 1.3) โครงสร้างแบบทําซ้ํา (Iteration) เป็นการทํางานแบบวนซ้ําหลาย ๆ รอบ และหลุดจากเงื่อนไข กต็่อเมื่อเงื่อนไขตรงกับที่กําหนดไว้

    ภาพที่ 2.5 ผังงานโครงสร้างแบบทําซ้ํา

  •   11      

    ภาพที่ 2.6 ตัวอย่างผังงานแบบทําซ้ํา

    2. การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming) หรือเรียกอีกอย่างหนึ่งว่าแนวคิดเชิงวัตถุ ตั้งอยู่บนพื้นฐานการแจกแจงรายละเอียดของปัญหา

    ผู้เขียนโปรแกรมต้องพยายามแยกประเภทของวัตถุให้ได้ ต้องมีจินตนาการพอสมควร ซึ่งจะมองวัตถุหนึ่ง ๆ เป็นแหล่งรวมของข้อมูล และกระบวนการไว้ด้วยกัน โดยจะมีคลาส (Class) เป็นตัวกําหนดคุณสมบัติของวัตถุ และคลาสสามารถสืบทอดคุณสมบัติ(Inheritance) ที่เรียกว่า Subclass ได้ มีการนํากลับมาใช้ใหม่ (Reusable) ทําให้ลดขั้นตอนการพัฒนาโปรแกรมลงได้ โดยเฉพาะโปรแกรมขนาดใหญ่ที่มีความซับซ้อนสูง

    ตัวอย่าง การหาผลคูณสูตรคูณแม่ 12 โดยต้องการผลคูณ ตั้งแต่ 1*12=12 จนกระทั่ง 12*12 = 144 สามารถอธิบายได้ดังนี้

  •   12    

    สรุปความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ

    การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) นั้นจะแยกส่วนของข้อมูลจากฟังก์ชัน

    อย่างชัดเจน ซึ่งการแยกข้อมูลจากฟังก์ชันนั้นมักจะมีผลให้เกิดความสับสน และค่อนข้างยากในการปรับปรุง

    แก้ไขโดยเฉพาะกับโปรแกรมขนาดใหญ่

    การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) จะเขียนโปรแกรมโดยอ้างอิงโมเดล

    วัตถุในโลกที่มีอยู่จริงในการแก้ปัญหา เช่น รถยนต์ บัญชีธนาคาร หรือสุนัข แปลงให้อยู่ในรูปแบบโค้ดภาษา

    ซึ่งบางส่วนอาจจะไมถู่กเรียกใช้งานก็ได้

    การเขียนโปรแกรมเชิงโครงสร้างเน้นการแปลงสิ่งที่มีอยู่จริงให้อยู่ในกฏเกณฑ์ของ โปรแกรมภาษา แต่

    การเขียนโปรแกรมเชิงวัตถุนั้นเน้นการแปลงให้โปรแกรมภาษาอยู่ในรูปแบบของ สิ่งที่มีอยู่จริง

    ตัวอย่างเช่น ในการเขียนโปรแกรมเชิงโครงสร้าง รถยนต์คันหนึ่งจะถูกแสดงโดยกลุ่มของฟังก์ชัน เช่น

    สตาร์ท เบรค จอด เร่งเครื่อง เป็นต้น และก็จะมีกลุ่มของตัวแปรที่แยกกันอยู่เป็น สี จํานวนประตูรถ วันที่ผลิต

    รุ่น เป็นต้น จากนั้นเราก็สร้างตัวแปรและกําหนดค่าเริ่มต้นให้มัน แล้วก็ไปเรียกใช้ฟังก์ชันต่างๆที่เกี่ยวข้อง

    กับตัวแปรที่เรากําหนดขึ้น เราก็จะได้รถยนต์คันหนึ่งแล้ว

    การเขียนโปรแกรมเชิงวัตถุจะมองรถยนต์ คือ การรวมกันของกลุ่มพฤติกรรม (behaviors) และ

    สถานะต่างๆ ของรถคันนั้น (values of data) การรวมตัวระหว่างตัวแปรสถานะ และพฤติกรรมจะได้

    ผลลัพธ์เป็นวัตถุ (object) เราสามารถสร้างวัตถุได้ง่ายๆเหมือนกับที่เราสร้างตัวแปรทั่วไป ในโปรแกรม

    เชิงวัตถุ นั้นจะระบุวัตถุที่จะใช้และเรียกใช้งานฟังก์ชันของมันในเวลาใด ๆ ก็ได้

    อาจารย์วิภาดา เชี่ยวชาญ :ผู้สอน อ้างอิง: แก้วตา ชูกลิ่น. แนวคิดในการเขียนโปรแกรม.http://www.krukaewta.net/web1/ng23101/unit2/u2_appendix.html

    1. เริ่มทํางาน 2. กําหนดค่าตัวแปร count = 1 3. เริ่มต้นคํานวณตั้งแต่ครั้งแรกจนครบเงื่อนไข โดยเริ่มตรวจสอบว่า count