วันพฤหัสบดีที่ 26 พฤศจิกายน พ.ศ. 2558

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





          คอมพิวเตอร์คืออุปกรณ์อิเล็กทรอนิกส์ ที่มนุษย์ใช้เป็นเครื่องมือช่วยในการจัดการกับข้อมูล ทั้งตัวเลข ตัวอักษร หรือสัญลักษณ์ คอมพิวเตอร์สามารถที่จะทำงานกับชุดคำสั่ง หรือโปรแกรม ตามที่ผู้ใช้ต้องการ ดังนั้นจึงสามารถทำงานได้หลากหลายรูปแบบ ขึ้นอยู่กับคำสั่งที่ใช้ จึงทำให้สามารถประยุกต์ใช้งานได้อย่างกว้างขวาง และข้อดีอีกประการหนึ่ง คือ สามารถทำงานซ้ำ ๆ ด้วยความรวดเร็วและถูกต้อง
          คอมพิวเตอร์สามารถที่จะแบ่งประเภทได้หลายรูปแบบ เช่น แบ่งตามการใช้งาน แบ่งตามขนาด เป็นต้น มักนิยมแบ่งตามขนาด ซึ่งสามารถแบ่งได้ดังนี้ ไมโครคอมพิวเตอร์ เป็นเครื่องคอมพิวเตอร์ส่วนบุคคล (PC: Personal Computer) ที่นิยมใช้กันอย่างแพร่หลาย มินิคอมพิวเตอร์ เป็นคอมพิวเตอร์ที่ได้รับความนิยมจากองค์กรขนาดกลาง มีขนาดและความสามารถมากกว่าเครื่องไมโครคอมพิวเตอร์ เมนเฟรมคอมพิวเตอร์ เป็นเครื่องขนาดใหญ่และมีประสิทธิภาพสูงกว่าเครื่องมินิคอมพิวเตอร์ ซุปเปอร์คอมพิวเตอร์ เป็นเครื่องขนาดใหญ่ที่สุด มีประสิทธิภาพสูงและราคาแพงรองรับการทำงานของผู้ใช้จำนวนมากพร้อม ๆ กัน สำหรับในบทนี้ จะกล่าวถึงภาพรวม ๆ ของระบบคอมพิวเตอร์และการทำงานของคอมพิวเตอร์เพื่อเป็นพื้นฐาน
         
สรุปคือ เครื่องคอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ชนิดหนึ่งที่มีบทบาทในชีวิตประจำวัน และกลายเป็นสิ่งสำคัญในชีวิตของมนุษย์ในปัจจุบันมากขึ้น ฉะนั้นการศึกษาเกี่ยวกับองค์ประกอบพื้นฐานและการทำงานของเครื่องคอมพิวเตอร์ จึงจำเป็นเพื่อทำให้เข้าใจเรื่องคอมพิวเตอร์ได้อย่างชัดเจนยิ่งขึ้น ภาพรวมของระบบคอมพิวเตอร์ประกอบด้วย ฮาร์ดแวร์ ซอฟต์แวร์ ผู้ใช้ และข้อมูล ส่วนภายในเครื่องคอมพิวเตอร์ จะมองเห็นส่วนประกอบทางกายภาพของคอมพิวเตอร์ ประกอบด้วย หน่วยประมวลผลกลาง หน่วยความจำ/หน่วยความจำสำรอง อุปกรณ์นำข้อมูลเข้า/นำข้อมูลออก และระบบบัส หน่วยประมวลผลกลางหรือซีพียูจะหมายถึงตัว โปรเซสเซอร์ ซึ่งทำหน้าที่เป็นสมองของเครื่องคอมพิวเตอร์ มีส่วนประกอบหลักดังนี้ หน่วยคำนวณและเปรียบเทียบ

วิวัฒนาการของคอมพิวเตอร์





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

ยุคคอมพิวเตอร์ (Computer Generation)
     คอมพิวเตอร์ยุคที่ 1 (.. 1946-1957) : หลอดสุญญากาศ
           คอมพิวเตอร์ในยุคนี้ใช้หลอดสูญญากาศ สร้างเป็นวงจรอิเล็กทรอนิกส์เช่น เครื่อง ENIAC ทำสำเร็จสมบูรณ์ในปี ค. 1946 ซึ่งก็สายเกินไปในการนำไปใช้ในสงครามตามที่ตั้งใจไว้ดังนั้นหน้าที่แรกของเครื่อง คือใช้ในการคำนวณความซับซ้อนของสมการในระเบิดไฮโดรเจน การใช้เครื่อง ENIAC ยังสามารถใช้ในงานด้านอื่นได้และถือได้ว่าในปี 1946 เป็นศักราชใหม่หรือจุดสูงสุดของเครื่องคอมพิวเตอร์อิเล็กทรอนิกส์ แต่อย่างไรก็ตามการทำงานยังใช้ระบบเลขฐานสิบอยู่ ENIAC ได้ใช้งานอยู่ในการควบคุมของ BRL จนกระทั่งเมื่อปี 1955 เครื่องก็หมดสภาพไป
     คอมพิวเตอร์ยุคที่ 2 (.. 1958-1964) : ทรานซีสเตอร์ 
           คอมพิวเตอร์ยุคนี้ใช้ทรานซิสเตอร์ (Transistor) เป็นวงจรอิเล็กทรอนิกส์ และใช้วงแหวนแม่เหล็กเป็นหน่วยความจำ ต้นทุนต่ำกว่า ใช้กระแสไฟฟ้าน้อยกว่าและมีความแม่นยำมากกว่า ในยุคนี้มีคุณสมบัติที่เด่นชัดในด้านความเร็ว ขนาดหน่วยความจำที่โตขึ้น ขณะที่ขนาดคอมพิวเตอร์เล็กลงกว่ายุคแรกมาก           ทรานซิสเตอร์เป็นประดิษฐ์กรรมได้จากห้องทดลองเบล (Bell Labs) ในปี ค..1947 และในปี ค..1950 ได้เริ่มเข้าสู่การปฏิวัติแห่งโลกอิเล็กทรอนิกส์ IBM ได้นำทรานซิสเตอร์มาใช้และประสบผลสำเร็จในการผลิตเครื่องคอมพิวเตอร์ IBM รุ่น 7000
     คอมพิวเตอร์ยุคที่ 3 (.. 1965-1971) : วงจรรวม
           คอมพิวเตอร์ยุคนี้ใช้วงจรรวม หรือไอซี (IC: Integrated Circuit) เป็นชิ้นซิลิกอนขนาดเล็กภายในบรรจุ ทรานซีสเตอร์ ตัวต้านทาน ตัวเก็บประจุ ซึ่งประกอบเป็นวงจรสำเร็จรูปเรียกว่า "ชิป" (Chip) วางอยู่บนตัวถังทำด้วยพลาสติกมีขนาดแตกต่างกัน ขึ้นอยู่กับขนาดของวงจรสำเร็จที่ต่ออยู่ภายในและมีขาจำนวนหนึ่งต่อออกมาสำหรับเสียบลงในเบ้าเสียบ (Socket) หรือบัดกรีโดยตรงเข้ากับแผงวงจร
     คอมพิวเตอร์ยุคปัจจุบัน (.. 1972-ปัจจุบัน)
           หลังจากยุคที่ 3 ของคอมพิวเตอร์แล้ว ก็มีความคิดเห็นในการกำหนดยุคที่แตกต่างกันออกไป เสนอแนะว่ามียุคที่ 4 และ 5 โดยขึ้นอยู่กับความก้าวหน้าทางเทคโนโลยีในการสร้างไอซี คือเป็น LSI (Large-scale integration) และ VLSI (Very Large-Scale Integration)          การกำหนดเป็นยุคต่าง ๆ ในปัจจุบันดูเหมือนว่าจะไม่ชัดเจนและมีความหมายน้อยลงไป ควรจะพูดถึงในแง่ของการนำมาใช้ในด้านการค้าของการพัฒนาต่าง ๆ ที่ก่อให้เกิดการเปลี่ยนแปลงที่สำคัญในส่วนนี้จะกล่าวถึงผลที่สำคัญ 2 อย่าง ได้แก่ วิวัฒนาการของหน่วยความจำและของไมโครโปรเซสเซอร์

          สรุปคือ ยุคของคอมพิวเตอร์จะแบ่งตามพัฒนาการของส่วนประกอบหลัก ได้แก่ ยุคหลอดสุญญากาศ ยุคทรานซีสเตอร์ ยุควงจรรวม ซึ่งวงจรรวมก็ยังสามารถแบ่งเป็นยุคได้อีก ได้แก่ ยุควงจรรวมขนาดเล็ก ยุควงจรรวมขนาดใหญ่ ยุควงจรรวมขนาดใหญ่มาก และในอนาคตอาจจะเป็นยุควงจรรวมขนาดใหญ่พิเศษ (Super scale integration)
     

วันพุธที่ 25 พฤศจิกายน พ.ศ. 2558

ระบบบัส





ความรู้ทั่วไปเกี่ยวกับระบบบัส
            บัส (BUS) เป็นเส้นทางการเชื่อโยงระหว่างอุปกรณ์ ตั้งแต่สองชนิดขึ้นไป มีลักษณะเด่นที่การใช้สายสื่อสารร่วมกัน อุปกรณ์หลายชนิดสามารถต่อเข้าระบบบัสชุดเดียวกัน (Stallings, W. , p. 71) หรือ บัส เป็นทางเชื่อมต่อองค์ประกอบต่าง ๆ ของคอมพิวเตอร์ไว้ด้วยกัน (อำไพ พรประเสริฐสกุล, 2543, หน้า 126) ดังนั้น บัส หมายถึง ช่องทางการขนถ่ายข้อมูลจากอุปกรณ์หนึ่งไปยังอุปกรณ์หนึ่งของระบบคอมพิวเตอร์ เพราะการทำงานของระบบคอมพิวเตอร์ ซีพียูจะต้องอ่านเอาคำสั่งหรือโปรแกรมจากหน่วยความจำ มาตีความและทำตามคำสั่งนั้นๆ ซึ่งในบางครั้งจะต้องอ่านข้อมูลจากอุปกรณ์อื่น ๆ เพื่อใช้ประกอบในการทำงานหรือใช้ในการประมวลผลด้วย ผลลัพธ์ของการประมวลผลก็ต้องส่งไปแสดงผลที่ยังจอภาพหรือเครื่องพิมพ์หรืออุปกรณ์อื่นๆ
          ระบบบัสทางกายภาพคือสายทองแดงที่วางตัวอยู่บนแผงวงจรของเครื่องคอมพิวเตอร์ ที่เชื่อมโยงกับอุปกรณ์ต่าง ๆ ความกว้างของระบบบัส จะนับขนาดข้อมูลที่วิ่งอยู่โดยจะมีหน่วยเป็น บิต บนเครื่องไมโครคอมพิวเตอร์ บัสจะมีความกว้างหลายขนาด ขึ้นอยู่กับรุ่นของเครื่องพีซี เช่น บัสขนาด 8, 16, 32 และ 64 บิต บัสยิ่งกว้างจะทำให้การส่งถ่ายข้อมูลทำได้ครั้งละมาก ๆ จะมีผลทำให้คอมพิวเตอร์เครื่องนั้นทำงานได้เร็วตามไปด้วย ในเครื่องไมโครคอมพิวเตอร์จะมีมาตรฐานของระบบบัสอยู่หลายอย่าง เช่น ISA, EISA, MCA, VL, PCI, AGP เป็นต้น มาตรฐานของระบบบัสเหล่านี้จะเป็นบัสเพิ่มขยาย (expansion bus) ส่วนช่องทางระหว่างอุปกรณ์ต่าง ๆ ที่ใช้ในการติดต่อสื่อสารภายในคอมพิวเตอร์บัสจะถูกเรียกชื่อเฉพาะตามวัตถุประสงค์การใช้งาน ตัวอย่างเช่น Processor bus, System bus, Front side, Main memory bus, Host bus, Local bus, Internal bus, External bus เป็นต้น

            สรุปคือ บัส เป็นช่องทางการส่งถ่ายข้อมูลระหว่างหน่วยต่าง ๆ ภายในระบบหรือระหว่างอุปกรณ์หนึ่งไปอุปกรณ์หนึ่งของระบบคอมพิวเตอร์ แบ่งตามลักษณะการทำงานได้ 3 ประเภท คือ บัสตำแหน่ง บัสข้อมูล และบัสควบคุม ความกว้างของบัสขึ้นอยู่กับ ซีพียู เช่น วีพียู 80286 มีบัสข้อมูล 16 บิต บัสตำแหน่ง 24 บิต ขณะที่ เพนเทียมทู เพนเทียมทรี มีบัสข้อมูล 64 บิต บัสตำแหน่ง 36 บิต เป็นต้น
หน้าที่พื้นฐานของซีพียู คือ การเอ็กซิคิวท์คำสั่ง สำหรับการประมวลผลคำสั่งจะมีวงรอบหรือวัฏจักรของคำสั่ง 2 ขั้นตอน คือ วัฏจักรเฟตซ์ ซึ่งเป็นการดึงคำสั่งจากหน่วยความจำเข้ามาเก็บใน รีจีสเตอร์ และวัฏจักรเอ็กซิคิวท์ เป็นการปฏิบัติตามคำสั่ง ซีพียูสามารถที่จะตอบสนองงานที่ไม่สามารถคาดเดาล่วงหน้าที่อาจจะเกิดขึ้นได้ ลักษณะความสามารถนี้เรียกว่า การอินเทอร์รัพท์ การอินเทอร์รัพท์ คือการที่ทำให้ ซีพียู หยุดทำงานที่กำลังทำอยู่ชั่วคราว เพื่อสับเปลี่ยนไปทำงานอื่นที่ร้องขอ

วันอังคารที่ 24 พฤศจิกายน พ.ศ. 2558

หน่วยความจำภายใน





หน่วยความจำหรือ เมมโมรี (Memory) เป็นอีกส่วนประกอบหนึ่งบนเมนบอร์ดที่มีความสำคัญและทำงานร่วมกับโปรเซสเซอร์อย่างใกล้ชิด หน่วยความจำทำหน้าที่เก็บโปรแกรมและข้อมูลเป็นส่วนทีโปรเซสเซอร์เขียนและอ่านข้อมูล
หน่วยความจำได้รับการพัฒนามาจนเป็นที่นิยมใช้กันแพร่หลายในปัจจุบันคือ หน่วยความจำที่ผลิตจากสารกึ่งตัวนำ (Semiconductor memory) เทคโนโลยีไมโครอิเล็กทรอนิกส์ทำให้หน่วยความจำชนิดนี้ มีราคาต่ำ เพราะสามารถสร้างเป็นไอซีชิ้นเดียวได้ หน่วยความจำที่ผลิตจากสารกึ่งตัวนำที่ใช้ในไมโครคอมพิวเตอร์ แบ่งออกเป็น 2 ประเภทที่สำคัญคือ หน่วยความจำแรมและรอม ซึ่งจะได้ศึกษาถึง โครงสร้างภายในชิป โครงสร้างภายนอก ของหน่วยความจำและเทคนิคการแก้ไขความผิดพลาดของข้อมูล รวมถึงเทคนิคการทำหน่วยความจำให้มีความเร็วใกล้เคียงกับซีพียู ได้แก่ หน่วยความจำแคช สุดท้ายจะกล่าวถึงเทคโนโลยีหน่วยความจำแรมและการทำงานของหน่วยความจำแบบ SDRAM DDR-SDRAM และ Rambus DRAM (RDRAM)
            หน่วยความจำแรม และรอมที่ใช้ในปัจจุบันเป็นหน่วยจำประเภทสารกึ่งตัวนำ แรม สามารถอ่านและเขียนได้เรียกว่าเป็นพวก Volatile มี 2 ชนิด คือ SRAM เก็บสถานะทางลอจิกไว้ได้คงที่เป็นเวลานานขณะที่มีแรงดันไฟเลี้ยงอยู่ และ DRAM เป็นชนิดที่ต้องเติมประจุหรือรีเฟรชให้ตลอดเวลาเพื่อรักษาสถานะทางลอจิก ให้คงเดิม รอม สามารถอ่านได้อย่างเดียว เรียกว่าเป็นพวก Nonvolatile มีหลายชนิดได้แก่ PROM, EPROM, EEPROM สำหรับโครงสร้างภายนอกของหน่วยความจำจะบรรจุลงตัวถังในรูปของไอซี หรือเรียกว่า ชิปหน่วยความจำ เมื่อนำหลายชิปมาประกอบกันจะเป็นโมดูลแบบต่าง ได้แก่ SIMM, DIMM และ RIMM เป็นต้น เทคนิคการตรวจสอบ และแก้ไขความผิดพลาด จะใช้วิธีพาริตี้ มี 2 แบบ คือ พาริตี้คี่และพาริตี้คู่ สำหรับการแก้ไขข้อมูลที่ตรวจพบว่าผิดจะใช้รหัสพิเศษเพิ่มเข้าไปอีกจำนวนหนึ่ง หน่วยความจำประเภทนี้เรียกว่า ECC การทำ ECC อย่างง่าย คือวิธี แฮมมิ่งโค๊ด
            หน่วยความจำแคช เป็นหน่วยความจำที่อยู่ระหว่างซีพียูกับหน่วยความจำหลัก ทำหน้าที่ดึงข้อมูลที่มีการเรียกใช้งานบ่อยๆ เข้ามาเก็บไว้ เป็นหน่วยความจำที่มีความเร็วในการทำงานสูงกว่าหน่วยความจำหลัก ซีพียูก็จะมองหาข้อมูลที่ต้องการที่หน่วยความจำแคชก่อนที่จะเข้าไปหาในหน่วยความจำหลัก SDRAM, DDR-SDRAM และ Rambus DRAM (RDRAM) เป็นเทคโนโลยีของหน่วยความจำ ที่พัฒนาขึ้นมารองรับเทคโนโลยีของซีพียูทางด้านความเร็ว



หน่วยความจำภายนอก





หน่วยเก็บข้อมูลสำรอง (Secondary storage หรือ Auxiliary storage หรือ External memory) ในบางครั้งอาจเรียกว่า หน่วยความจำสำรองหรือหน่วยความจำภายนอก หมายถึง สื่อในการเก็บบันทึกข้อมูลที่สามารถเก็บข้อมูลและโปรแกรม หรืองานต่าง ๆ ที่พัฒนาขึ้นในระบบคอมพิวเตอร์ไว้ได้อย่างถาวร ข้อมูลต่าง ๆ ที่เก็บไว้ในหน่วยเก็บข้อมูลสำรองนี้จะไม่หายไปเมื่อไฟฟ้าดับเหมือนหน่วยความจำหลัก ข้อดีของหน่วยเก็บข้อมูลสำรอง คือ มีพื้นที่ ขนาดใหญ่ ความคุ้มค่าของราคาต่อหน่วยพื้นที่ถูกกว่า ความเชื่อถือได้สูงและมีความสะดวก ในการใช้งานและการเคลื่อนย้าย หน่วยความจำสำรองหรือหน่วยความจำภายนอกนี้ในปัจจุบันถือเรื่องจำเป็นจะต้องมีและเป็นอุปกรณ์มาตรฐานที่ติดมากับเครื่องไมโครคอมพิวเตอร์ได้แก่ ดิสก์เก็ตไดร์ฟ ฮาร์ดดิสก์ ซีดีรอมไดร์ฟ เป็นต้น ถ้าจะแบ่งตามเทคโนโลยีการจัดเก็บข้อมูลสามารถแบ่งได้ 3 กลุ่มได้แก่ หน่วยเก็บข้อมูลที่ใช้เทคโนโลยีแม่เหล็ก (Magnetic storage) หน่วยเก็บข้อมูลที่ใช้เทคโนโลยีแสง และหน่วยเก็บข้อมูลที่ใช้เทคโนโลยีแบบอื่นๆ ได้แก่ หน่วยความจำแฟลซ เป็นต้น ซึ่งในบทนี้จะกล่าวถึงหน่วยเก็บข้อมูลภายนอกที่สำคัญ หลักการทำงานและการวัดประสิทธิภาพในการเก็บข้อมูล
หน่วยความจำภายนอกที่ใช้บันทึกข้อมูลสามารถแบ่งได้ตามลักษณะของเทคโนโลยีที่ใช้ มีอยู่ 3 ประเภทคือ ใช้เทคโนโลยีแม่เหล็กและแสง หน่วยความจำที่ใช้เทคโนโลยีแม่เหล็ก ได้แก่ จานแม่เหล็กชนิดอ่อน จานแม่เหล็กชนิดแข็งและเทปแม่เหล็ก หน่วยความจำที่ใช้เทคโนโลยีแสง ได้แก่ ซีดีรอม เอ็มโอดิสก์ ดีวีดี เป็นต้น
สื่อบันทึกข้อมูลที่ใช้เทคโนโลยีแม่เหล็ก ทำงานโดยการเหนี่ยวนำให้สารแม่เหล็กที่เคลือบบนแผ่นหรือเทปแม่เหล็กเกิดการเรียงตัวของสารแม่เหล็กตามข้อมูลที่บันทึก การนำจานแม่เหล็กมาใช้งานจะต้องผ่านกระบวนการฟอร์แมต ซึ่งเป็นการสร้างแทร็กและเซกเตอร์เพื่อให้หัวอ่านเขียนสามารถอ่านเขียนได้ถูกตำแหน่ง ในขณะสร้างแทร็กและเซกเตอร์ระบบปฏิบัติการจะสร้าง Boot Sector, ตาราง FAT, Root Directory และส่วนเก็บข้อมูลไปด้วย จานแม่เหล็กชนิดแข็งหรือฮาร์ดดิสก์หลาย ๆ ตัวมาต่อกันเป็นอาเรย์ เรียกว่า RAID (Redundant array of independent disks) ซึ่งจะทำให้ระบบปฏิบัติการมองเห็นดิสก์ทั้งหมดมีความจุรวมกันเป็นดิสก์ตัวเดียว ส่วนเทปแม่เหล็กก็เป็นสื่ออีกชนิดหนึ่งที่นิยมใช้สำหรับงานสำรองข้อมูล เพราะราคาถูกความจุสูง ถึงแม้ว่าจะเป็นสื่อที่เข้าถึงข้อมูลแบบตามลำดับและทำงานช้าก็ตามซึ่งไม่ใช่ปัญหาสำหรับงานสำรองข้อมูล
สื่อบันทึกข้อมูลที่ใช้เทคโนโลยีแสงการอ่านข้อมูลโดยใช้แสงเลเซอร์ความเข้มต่ำ ยิงไปบนหลุม (Pit) หรือที่ราบ (Land) ที่ถูกบันทึกตามค่าของข้อมูลไว้บนแผ่นซีดี แสงเลเซอร์จะสะท้อนกลับเมื่อกระทบ Land และจะกระจายเมื่อกระทบกับ Pit แสงที่สะท้อนกลับจะถูกแปรค่าด้วยตัวเซนเซอร์ต่อไป สื่อบันทึกข้อมูลที่ใช้เทคโนโลยีแสง แบ่งเป็นกลุ่มใหญ่ ๆ ได้ 2 กลุ่ม คือ ซีดี (CD) และ ดีวีดี (DVD) ทั้งสองกลุ่มก็ยังแบ่งออกเป็นประเภทย่อย ๆ อีกหลายประเภท





การนำข้อมูลเข้าและการส่งข้อมูลออก





          ส่วนประกอบของคอมพิวเตอร์ทุกส่วนจะทำงานสัมพันธ์กัน มีการถ่ายเทข้อมูล ซึ่งกันและกัน ผ่านบัสข้อมูล มีการกำหนดตำแหน่งข้อมูลผ่านบัสตำแหน่งและมีการรักษาจังหวะการทำงานให้สอดคล้องกันผ่านบัสควบคุม สำหรับในบทนี้จะได้กล่าวถึงรายละเอียดของหน่วยรับส่งข้อมูลเข้าออกหน่วยรับส่งข้อมูลเข้าออก ถือเป็นส่วนประกอบของระบบคอมพิวเตอร์ที่สำคัญส่วนหนึ่ง ที่ทำหน้าที่ ส่งถ่ายข้อมูลจากระบบคอมพิวเตอร์ไปสู่อุปกรณ์ต่อพ่วง หรือส่งถ่ายข้อมูลจากอุปกรณ์ต่อพ่วงเข้าสู่ระบบคอมพิวเตอร์

ความรู้ทั่วไปเกี่ยวกับหน่วยรับและส่งข้อมูล
          หน่วยรับส่งข้อมูลเข้าออก ทำหน้าที่เป็นตัวกลาง การถ่ายเทข้อมูลระหว่างระบบคอมพิวเตอร์กับโลกภายนอก โดยโลกภายนอกจะหมายถึงอุปกรณ์บริวารประเภทต่าง ๆ เช่น แป้นพิมพ์ จอภาพ เครื่องพิมพ์ นอกจากนี้อุปกรณ์บริวารยังหมายถึง อุปกรณ์ที่ใช้ในงานอื่น ๆ ที่ต่อเชื่อมอยู่กับระบบคอมพิวเตอร์ เช่น ในเครื่องคอมพิวเตอร์ที่ใช้ในกระบวนการผลิตในโรงงานอุตสาหกรรม อาจจะต่อเชื่อมอยู่กับอุปกรณ์วัดหรือควบคุมอุณหภูมิ อุปกรณ์เครื่องมือวัดต่าง ๆ เป็นต้น หน่วยรับส่งข้อมูลเข้าออก บางทีจะเรียกว่า อุปกรณ์เชื่อมต่อไอโอ หรือเรียกทับศัพท์ว่า อุปกรณ์อินเตอร์เฟส (interface) เนื่องจากอุปกรณ์เชื่อมต่อนี้จะเป็นชุดของวงจร ซึ่งอาจจะเป็นชุดมาตรฐานที่ติดตั้งมาพร้อมกับระบบคอมพิวเตอร์ ได้แก่ ชุดเชื่อมต่อแป้นพิมพ์ เมาส์ เครื่องพิมพ์ หรืออาจจะผลิตออกมาเป็นแผงวงจร (การ์ด) เพื่อนำไปเสียบลงในช่องขยายเพิ่ม (Expansion slot) ในระบบคอมพิวเตอร์ ดังนั้นจึงอาจจะเรียกว่า อินเตอร์เฟสการ์ดหรือโมดูลไอโอ (คำว่าไอโอ หมายถึง Input / Output)
          หน่วยรับส่งข้อมูลเข้าออกจะจัดข้อมูลที่รับจากอุปกรณ์ต่อพ่วงให้อยู่ในรูปที่เหมาะสมแล้วส่งให้ระบบคอมพิวเตอร์ ในทางกลับกันก็จะสามารถรับข้อมูลจากระบบคอมพิวเตอร์ แล้วจัดให้อยู่ในรูปที่เหมาะสม เพื่อส่งให้อุปกรณ์ต่อพ่วง การทำหน้าที่ดังกล่าวนี้ เนื่องจากรูปแบบทางข้อมูลที่ใช้ในอุปกรณ์ต่อพ่วงและระบบคอมพิวเตอร์ โดยปกติจะมีรูปแบบที่แตกต่างกัน

รูปแบบการรับและส่งข้อมูล
            หน่วยรับส่งข้อมูลเข้าออก มีการรับส่งข้อมูลอยู่ 2 ระบบ ได้แก่ การรับส่งข้อมูลแบบขนานหรืออาจเรียกว่า PIO (parallel Input / Output) ซึ่งจะสามารถรับส่งข้อมูลได้ครั้งละหลายบิต เช่น 4, 8, 16 หรือ 32 บิต นอกจากการรับส่งข้อมูลแล้ว จะต้องมีการแลกเปลี่ยนสัญญาณควบคุมระหว่างหน่วยรับส่งข้อมูลเข้าออกและอุปกรณ์ต่อพ่วงด้วย ทั้งนี้เพื่อรักษาจังหวะในการถ่ายเทข้อมูล ระหว่างหน่วยรับส่งข้อมูลเข้าออกและอุปกรณ์ต่อพ่วง สัญญาณควบคุมมีประโยชน์มากเพราะโดยปกติ อุปกรณ์ต่อพ่วงจะมีการทำงานในอัตราที่ช้ากว่าระบบคอมพิวเตอร์ หากระบบคอมพิวเตอร์ส่งข้อมูลด้วยอัตราความเร็วจนอุปกรณ์ต่อพ่วงรับไม่ทัน ก็จะเกิดการสูญหายของข้อมูล วิธีแก้ก็คืออุปกรณ์ต่อพ่วงจะมีสัญญาณคอยแจ้งว่าตนเองพร้อมที่จะรับข้อมูลเพิ่มเติม (ready) และหน่วยรับส่งข้อมูลเข้าออกก็จะมีสัญญาณคอยแจ้งว่าจะมีการส่งข้อมูล การประสานงานกันระหว่างสัญญาณทั้งสองนี้ เรียกว่า วิธีจับมือ (handshaking) ระหว่างหน่วยรับส่งข้อมูลเข้าออกและอุปกรณ์ต่อพ่วงซึ่งจะทำให้การรับส่งข้อมูลที่มีประสิทธิภาพขึ้น

          สรุปคือ หน่วยรับส่งข้อมูลเข้าออก ทำหน้าที่เป็นตัวกลาง การถ่ายเทข้อมูลระหว่างระบบคอมพิวเตอร์กับโลกภายนอก หรือเป็นอุปกรณ์เชื่อมต่อระหว่างระบบคอมพิวเตอร์กับอุปกรณ์ ต่อพ่วง ซึ่งอาจเรียกว่า อุปกรณ์อินเตอร์เฟส เนื่องจากชุดอุปกรณ์ดังกล่าวประกอบขึ้นเป็นโมดูลชุดวงจรอีเล็กทรอนิกส์ จึงเรียกว่า โมดูลไอโอ การรับส่งข้อมูลของโมดูลไอโอจะทำได้สองรูปแบบ คือ การรับส่งข้อมูลแบบขนาน การรับส่งแบบนี้ทั้งด้านที่ติดต่อกับซีพียูและด้านที่ติดต่อกับอุปกรณ์ ต่อพ่วง จะเป็นการรับส่งแบบขนานทั้งสองด้าน การรับส่งจะกระทำได้ตั้งละหลายบิต อีกรูปแบบหนึ่งเป็นการรับส่งแบบอนุกรม การรับส่งแบบนี้ทางด้านนี้ติดต่อกับซีพียู จะเป็นการรับส่งแบบขนานส่วนทางด้านอุปกรณ์ต่อพ่วงจะเป็นการรับส่งแบบอนุกรมซึ่งจะรับส่งครั้งละหนึ่งบิต
โครงสร้างหน่วยรับส่งข้อมูล จะมีส่วนประกอบที่สำคัญ ได้แก่ รีจีสเตอร์ข้อมูล ซึ่งจะทำหน้าที่เป็นตัวพักข้อมูล รีจีสเตอร์สถานะและรีจีสเตอร์ควบคุม ซึ่งจะควบคุมและให้จังหวะการทำงานของโมดูลไอโอ นอกจากนั้นก็จะมีวงจรลอจิกเพื่อเชื่อมต่อเข้าระบบบัสของคอมพิวเตอร์ และเชื่อมต่อเข้าอุปกรณ์ต่อพ่วง การควบคุมการทำงานของโมดูลไอโอ จะทำได้ 3 วิธี ได้แก่ การควบคุมด้วยโปรแกรม การควบคุมด้วยอินเทอร์รัพท์ และการควบคุมด้วย ดีเอ็มเอ วิธีที่มีประสิทธิภาพที่สุด ได้แก่ ดีเอ็มเอ แต่อย่างไรก็ตามการทำงานจริงก็ยังใช้ทั้ง 3 วิธี
มาตรฐานการเชื่อมต่อ USB และ FireWire เป็นการเชื่อมต่อแบบอนุกรม ซึ่งปัจจุบันเป็นมาตรฐานหนึ่งที่ถูกติดตั้งมากับระบบคอมพิวเตอร์ USB ให้ความเร็วในการรับส่งข้อมูลได้ที่ 1.5 – 12 Mbps สามารถต่อพ่วงอุปกรณ์ได้มากถึง 127 อุปกรณ์ ส่วน FireWire ความเร็วในการรับส่งอยู่ที่ 200 – 800 Mbps และต่อพ่วงอุปกรณ์ได้ถึง 63 อุปกรณ์

วันจันทร์ที่ 23 พฤศจิกายน พ.ศ. 2558

การคำนวณทางคณิตศาสตร์





การคำนวณทางคณิตศาสตร์ในเครื่องคอมพิวเตอร์ จะมีวงจรที่ออกแบบด้วยวงจรลอจิกแบบคอมบิเนชัน ได้แก่ วงจรบวก วงจรลบ และวงจรเปรียบเทียบ ซึ่งวงจรดังกล่าวจะประกอบอยู่ภายใน หน่วยคำนวณและเปรียบเทียบ (ALU : Arithmetic Logic Unit) ของระบบคอมพิวเตอร์ สำหรับในทางปฏิบัติการบวกและลบนั้นจะใช้ฮาร์ดแวร์ตัวเดียวกัน คือ จะใช้วงจรบวกเท่านั้น การคำนวณแบบลบ จะอาศัยข้อมูลที่มีค่าเป็นเลขลบ มากระทำการบวกกับตัวตั้ง สำหรับการคูณจะอาศัยการบวกซ้ำกันหลาย ๆ ครั้ง และการหารก็จะใช้การลบซ้ำกันหลาย ๆ ครั้ง หรืออาจใช้วิธีการอื่น ๆ เช่น การเลื่อนหรือหมุนข้อมูลเข้าช่วยในการคำนวณ สำหรับในบทนี้จะกล่าวถึงวิธีการบวก และลบเลขฐานสอง การใช้เลขคอมพลีเมนต์แทนจำนวนลบ เลขฐานสองที่มีเครื่องหมาย และการคูณ การหารเลขฐานสอง

การบวกเลขฐานสอง
          การบวกเลขฐานสอง หรือเลขไบนารี คล้ายกับการบวกเลขฐานสิบที่เราคุ้นเคย แต่การบวกเลขฐานสองนั้นง่ายกว่า เพราะมีเพียง 4 กรณี เท่านั้นที่จะต้องจำ คือ
0 + 0 = 0          (7.1)
0 + 1 = 1          (7.2)
1 + 0 = 1          (7.3)
1 + 1 = 10        (7.4)
          จะเห็นว่าสมการที่ (7.1), (7.2) และ (7.3) เป็นการบวกเหมือนกับเลขฐานสิบ แต่ในสมการที่ (7.4) จะไม่เหมือนกับการบวกเลขฐานสิบ เราสามารถจะอธิบายได้ดังนี้ 1 + 1 เท่ากับ 2 ในเลขฐานสิบ ให้เปลี่ยน 2 เป็นเลขฐานสองจะได้ 10 เลขฐานสอง ดังนั้น 1 + 1 = 10

การลบเลขฐานสอง
          มีกฎพื้นฐานอยู่ 4 อย่าง สำหรับการลบเลขฐานสอง ดังนี้0 – 0 = 0          (7.5)
0 – 0 = 1          (7.6)
1 – 1 = 0          (7.7)
10 – 1 = 1        (7.8)
          สมการที่ (7.5), (7.6) และ (7.7) เป็นการลบเหมือนกับเลขฐานสิบ แต่สมการที่ (7.8) จะไม่เหมือนกับการลบเลขฐานสิบ สามารถอธิบายได้ดังนี้ จำนวน 102 = 210 ดังนั้น เมื่อ 2 – 1 = 1 ในการตั้งลบ เมื่อนำ 1 ไปลบ 0 (0 – 1) จะลบไม่ได้ต้อง ยืม บิตที่สูงกว่ามา 102 หรือ 210 บิตที่ถูกยืมก็จะเหลือเป็น 0 ผลการลบจะได้เท่ากับ 1 (2 – 1 = 1)

เลขฐานสองแบบไม่มีเครื่องหมาย
           บางครั้งข้อมูลที่เป็นจำนวนค่าตัวเลข จะคำนึงถึงเฉพาะขนาด หรือแมกนิจูด (magnitude) อย่างเดียว จะไม่สนใจเครื่องหมายบวก ( + ) หรือลบ ( – ) ตัวอย่างเช่น เลขฐานสองขนาด 8 บิต จะมีขนาด ตั้งแต่น้อยที่สุด คือ 0000 0000 ไปจนถึงขนาดมากที่สุดคือ 1111 1111 หรือถ้าเป็นเลขฐานสิบหก จะเริ่มตั้งแต่ 00H ถึง FFH และถ้าเป็นเลขฐานสิบ ก็คือ 0 ถึง 255
          จำนวนที่แสดงเฉพาะขนาด เราเรียกว่า จำนวนแบบไม่มีเครื่องหมาย ถ้าเป็นเลขฐานสอง ก็จะเป็นเลขฐานแบบไม่มีเครื่องหมาย บิตทุกบิตบนจำนวนนั้นจะเป็นค่าน้ำหนัก ซึ่งเทียบได้กับเลขฐานสิบทุกบิต แต่เราก็สามารถที่จะทำการบวกหรือลบได้ตามปกติ

เลขฐานสองที่มีเครื่องหมาย
          ในเลขฐานสิบที่มีเครื่องหมายติดลบ จะเขียนเครื่องหมายลบไว้ข้างหน้าของขนาดตัวเลข เช่น –1, –2, –3 เป็นต้น ส่วนเลขที่มีจำนวนบวก ถ้าจะเขียนเครื่องหมายบวกข้างหน้าขนาดตัวเลขก็ได้ เช่น +1, +2, +3 หรือ อาจไม่ต้องเขียนก็หมายถึงเลขจำนวนบวก ถ้าแปลงเลขฐานสิบให้เป็นเลขฐานสอง และมีเครื่องหมายติดลบด้วยก็ได้ –001, –010, –011 หรือถ้าเป็นจำนวนบวกก็จะได้ +001, +010, +011 แต่การนำข้อมูลเหล่านี้ไปประมวลผลในระบบดิจิตอลจะไม่สามารถประมวลผลได้ ระบบจะทำงานได้เฉพาะข้อมูลดิจิตอลที่เป็น 0 และ 1 เท่านั้น ดังนั้นเครื่องหมายบวก (+) จึงถูกกำหนดให้เป็นค่าลอจิก 0 และเครื่องหมายลบ (–) ถูกกำหนดให้เป็นค่าลอจิก 1 จึงทำให้ +001, +010 และ +011 ถูกเปลี่ยนเป็นรหัส 4 บิต ดังนี้ 0001, 0010 และ 0011 ส่วนจำนวนลบจะได้รหัส 4 บิต เช่นกัน คือ 1001, 1010 และ 1011

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

การบวก ลบ ที่ใช้ทูคอมพลีเมนต์
          ในเครื่องคอมพิวเตอร์ยุคแรก ๆ จะใช้เลขฐานสองชนิด เครื่องหมาย- ขนาด คือ เลขฐานสองที่มีค่าลอจิกแสดงเครื่องหมายบวก หรือลบ ซึ่งทำให้เกิดความยุ่งยากในการสร้างวงจร ต่อมาได้นำรหัสเลขทูคอมพลีเมนต์มาใช้ และพบว่างานด้านการสร้างวงจรลดความยุ่งยากลงอย่างมาก ซึ่งเหตุผลดังกล่าวทำให้ ในปัจจุบันนิยมใช้รหัสเลขทูคอมพลีเมนต์ แทนเลขจำนวนลบ ในภาพที่ 7 .3 แสดงบล็อกไดอะแกรมส่วนประกอบของฮาร์ดแวร์ที่ใช้ในการบวกและการลบ เลขที่เป็นตัวตั้งจะถูกเก็บไว้ในรีจีสเตอร์ A ส่วนตัวบวกหรือตัวลบจะเก็บไว้ในรีจีสเตอร์ B ถ้าเป็นการบวก ข้อมูลจาก รีจีสเตอร์ A และ รีจีสเตอร์ B จะส่งเข้าวงจรบวกโดยตรง แต่ถ้าเป็นการลบ ข้อมูลจากรีจีสเตอร์ B จะถูกเปลี่ยนให้เป็น ทูคอมพลีเมนต์ก่อนจะทำการส่งเข้าวงจรบวก และเมื่อได้ผลลัพธ์จะส่งไปเก็บในรีจีสเตอร์ A

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

การหาร
          กระบวนการหาร (division) มีความซับซ้อนมากกว่าการคูณ แต่ก็ใช้หลักการพื้นฐานที่เหมือนกัน เริ่มต้นด้วยการหารด้วยมือและกระบวนการเลื่อนบิต และการบวก และการลบเลข

          สรุปคือ เลขไบนารี่ 8 บิต แบบไม่มีเครื่องหมายจะแสดงได้ตั้งแต่ 0000 0000 ถึง 1111 1111 หรือ 0 ถึง 255 ส่วนไบนารี่ 16 บิตไม่มีเครื่องหมายจะมีขนาดตั้งแต่ 0 ถึง 65,535 การเกิด โอเวอร์โฟลว์ จะเกิดเเมื่อผลบวกหรือผลคูณมีขนาดมากกว่า ขอบเขตของระบบจำนวนที่จะเป็นได้ เช่น การประมวลผลเลขไบนารี่ 8 บิต โอเวอร์โฟลว์จะเกิดเมื่อผลลบมากกว่า 255 เลขไบนารี่แบบ เครื่องหมายขนาด (sign - magnitude) จะใช้บิต MSB เป็นบิตเครื่องหมาย โดยลอจิก “0” จะแทนเครื่องหมายบวก (+) และลอจิก “1” จะแทนเครื่องหมายลบ (-) ส่วนบิตที่เหลือจะแทนขนาดของจำนวน ดังนั้นถ้าเป็นไบนารี่ 8 บิต จะมีขนาดตั้งแต่ -127 ถึง +127 ถ้าเป็น 16 บิต จะมีขนาดตั้งแต่ -32,767 ถึง +32,767 รหัสเลขทูคอมพลีเมนต์จะถูกนำมาใช้ในระบบคอมพิวเตอร์ ถ้าเป็นเลขจำนวนบวกจะใช้รหัสไบนารี่แบบ เครื่องหมายขนาด แต่ถ้าเป็นจำนวนลบจะถูกแทนด้วยรหัสเลขทูคอมพลีเมนต์ เลขไบนารี่เมื่อถูกเปรียบให้เป็นรหัสทูคอมพลีเมนต์จะเป็นการเปลี่ยนเครื่องหมายเลขจำนวนนั้น คุณสมบัติดังกล่าวซึ่งนำไปใช้สำหรับการลบโดยทำตัวลบให้เป็นรหัส ทูคอมพลีเมนต์ การคูณและการหารเลขไบนารี่สามารถทำได้หลายวิธี เช่น การคูณอาจใช้วิธีการบวกซ้ำกันหลาย ๆ ครั้ง หรือการหารอาจใช้วิธีการลบซ้ำกันหลาย ๆ ครั้ง แต่วิธีที่นิยมจะใช้วิธีเลื่อนข้อมูลเข้าช่วย ทั้งหารคูณและการหาร