วันพฤหัสบดีที่ 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 รหัสเลขทูคอมพลีเมนต์จะถูกนำมาใช้ในระบบคอมพิวเตอร์ ถ้าเป็นเลขจำนวนบวกจะใช้รหัสไบนารี่แบบ เครื่องหมายขนาด แต่ถ้าเป็นจำนวนลบจะถูกแทนด้วยรหัสเลขทูคอมพลีเมนต์ เลขไบนารี่เมื่อถูกเปรียบให้เป็นรหัสทูคอมพลีเมนต์จะเป็นการเปลี่ยนเครื่องหมายเลขจำนวนนั้น คุณสมบัติดังกล่าวซึ่งนำไปใช้สำหรับการลบโดยทำตัวลบให้เป็นรหัส ทูคอมพลีเมนต์ การคูณและการหารเลขไบนารี่สามารถทำได้หลายวิธี เช่น การคูณอาจใช้วิธีการบวกซ้ำกันหลาย ๆ ครั้ง หรือการหารอาจใช้วิธีการลบซ้ำกันหลาย ๆ ครั้ง แต่วิธีที่นิยมจะใช้วิธีเลื่อนข้อมูลเข้าช่วย ทั้งหารคูณและการหาร

รูปแบบของคำสั่งและการบ่งตำแหน่งที่อยู่




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

รหัสที่ใช้แทนอักขระ
          ตัวอักษร ตัวเลขและสัญลักษณ์ หรือที่เรียกว่าอักขระในไมโครคอมพิวเตอร์จะแทนด้วยรหัสไบนารี ทุกครั้งที่เรากดแป้นพิมพ์ เช่น ปุ่มอักษร A ระบบก็จะรับอักษร A เข้าไปและแปลงเป็นรหัสไบนารี (เข้ารหัส) 1 ไบต์ เป็นต้น ในตารางที่ 8.1 แสดงมาตรฐานการใช้รหัสไบนารีแทนอักขระที่นิยมแพร่หลายในระบบไมโครคอมพิวเตอร์เรียกว่ารหัส ASCII (อ่านว่า แอสกี้) ย่อมาจาก American Standard Code for Interchange จะใช้แทนทั้งสระ พยัญชนะ ตัวเลข สัญลักษณ์ ทั่วไป และอักษรที่ใช้ควบคุม เช่น LF คือ Line Feed หมายถึงให้เลื่อนไปบรรทัดถัดไป เป็นต้น

รูปแบบคำสั่ง
          ไมโครโปรเซสเซอร์ไม่ว่าจะผลิตจากบริษัทไหนก็แล้วแต่ จะมีชุดคำสั่งประจำไมโคร-โปรเซสเซอร์เบอร์นั้น เช่น 8080 ของบริษัทอินเทลก็จะมีชุดคำสั่งเฉพาะของ 8080 ขณะที่ 6800 ของ โมโตโรลาก็จะมีชุดคำสั่งเฉพาะของ 6800 เป็นต้น คำสั่ง 8080 จะมาใช้กับ 6800 ไม่ได้และในทางกลับกัน คำสั่งของ 6800 จะใช้กับ 8080 ก็ไม่ได้ อย่างไรก็ดี ไม่ว่าจะเป็นคำสั่งของไมโครโปรเซสเซอร์เบอร์ใด พื้นฐานก็คือคำสั่งจะอยู่ในลักษณะไบนารี คำสั่งหนึ่งคำสั่งอาจประกอบด้วยไบต์เดียว สองไบต์ สามไบต์ หรือสี่ไบต์แล้วแต่กรณี ไบต์แรกของคำสั่งเรียกว่า โอเปอเรชันโค้ด (operation code) หรือที่เรียกสั้น ๆ ว่า ออปโค้ด (op code) เพราะไบต์นี้จะเป็นไบต์ที่บอกไมโครโปรเซสเซอร์ว่าเป็นคำสั่งอะไร ส่วนไบต์ที่เหลืออาจเป็นข้อมูลหรือบ่งตำแหน่งข้อมูลว่าอยู่ที่ไหน (อาจจะอยู่ในรีจิสเตอร์ภายในไมโครโปรเซสเซอร์ ในหน่วยความจำหรือในหน่วยรับส่งข้อมูลเข้า/ออก) ไบต์ส่วนที่เหลือกนี้เรียกว่า โอเปอแรนด์ (operand)

ชนิดของตัวถูกดำเนินการ
          คำสั่งเครื่องทำงานกับข้อมูลซึ่งสามารถแบ่งออกตามชนิดหรือประเภทได้ดังนี้
1) ตำแหน่งที่อยู่ (address)
            2) ตัวเลข (Number)
            3) ตัวอักษร (Character)
            4) ข้อมูลตรรกะ (Logical data)
          อันที่จริงตำแหน่งที่อยู่ก็เป็นข้อมูลชนิดหนึ่ง ในหลายกรณีมีการคำนวณเกิดขึ้นกับตัวถูกกระทำที่ถูกอ้างอิงในคำสั่งเครื่อง เพื่อกำหนดตำแหน่งที่อยู่ในหน่วยความจำหลัก หรือในหน่วยความจำเสมือน ในกรณีเช่นนี้ ตำแหน่งที่อยู่จะถูกคำนวณในลักษณะเดียวกันกับเลขแบบไม่มีเครื่องหมาย
ข้อมูลชนิดอื่นได้แก่ ตัวเลข ตัวอักษร และข้อมูลตรรกะ ซึ่งจะอธิบายถึงรายละเอียดในลำดับต่อไป นอกจากนี้แล้ว คอมพิวเตอร์บางเครื่องยังได้กำหนดข้อมูลหรือโครงสร้างข้อมูลชนิดพิเศษขึ้นใช้งาน เช่น ข้อมูลชนิดที่สามารถทำงานกับตัวถูกกระทำที่เป็นกลุ่มตัวอักษร (string) ได้โดยตรง

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

          สรุปคือ ข้อมูลหรือคำสั่งที่จะนำเข้าประมวลผลในระบบคอมพิวเตอร์จะถูกเปลี่ยนให้เป็นรหัส ไบนารีก่อน ระบบคอมพิวเตอร์จึงจะสามารถรับรู้ได้ สำหรับข้อมูลที่เป็นตัวอักษร ตัวเลข และสัญลักษณ์ต่าง ๆ จะถูกแทนด้วย รหัส IRA หรือที่เรารู้จักในชื่อรหัส ASCII รหัส ASCII มีขนาด 7 บิต เมื่อเพิ่มพารีตี้บิตเข้าไปอีกหนึ่งบิตจะเป็นรหัส 8 บิต (1 ไบต์)
คำสั่งหนึ่งคำสั่ง อาจเป็นคำสั่ง 1 ไบต์ 2 ไบต์ หรือ 3 ไบต์ โดยจะมีไบต์แรกเป็นคำสั่งงาน เรียกว่า ออปโค้ด ส่วนไบต์ที่เหลือจะเป็นข้อมูลหรือบ่งบอกตำแหน่งว่าข้อมูลอยู่ที่ไหน เรียกไบต์ส่วนที่เหลือว่าโอเปอร์แรนด์ ในการเขียนคำสั่งที่เป็นออปโค้ด จะนิยมเขียนด้วยภาษาสัญลักษณ์แทนการใช้เลขไบนารี ซึ่งเราจะเรียกคำสั่งย่อยเหล่านี้ว่านีโมนิก (mnemonic) ส่วนค่าของข้อมูลและตำแหน่งที่อยู่จะถูกเขียนด้วยรหัสเลขฐานสิบหก คำสั่งสามารถที่จะแบ่งออกได้ 4 กลุ่ม คือ คำสั่งประมวลผลข้อมูล คำสั่งเกี่ยวกับหน่วยความจำ คำสั่งเกี่ยวกับไอโอและคำสั่งควบคุมการทำงาน
การบ่งตำแหน่งที่อยู่ หรือ Addressing mode คือการอ้างถึงตำแหน่งที่อยู่ของข้อมูลในหน่วยความจำซึ่งมีวิธีอ้างถึงหลายวิธี แต่ละวิธีจะมีข้อดีข้อด้อยแตกต่างกัน ซึ่งมีดังนี้ การบ่งตำแหน่งทันที การบ่งตำแหน่งโดยตรง การบ่งตำแหน่งทางอ้อม การบ่งตำแหน่งผ่านรีจีสเตอร์ การบ่งตำแหน่งผ่านรีจีสเตอร์ทางอ้อม การบ่งตำแหน่งแบบดีสเพลซเมนต์ และการบ่งตำแหน่งแบบใช้สแต็ก


โครงสร้างและหน้าที่ของซีพียู





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

โครงสร้างภายในซีพียู
          ซีพียูจะทำงานตามคำสั่งที่ผู้ใช้ป้อนเข้าไป ซึ่งคำสั่งดังกล่าวจะถูกเก็บในหน่วย ความจำหลัก ดังนั้นซีพียูจะต้องทำงานดังต่อไปนี้
1) ดึงคำสั่งเข้ามา (fetch instruction) คือการที่ซีพียูอ่านคำสั่งมาจากหน่วยความจำหลักเข้ามาเก็บไว้ภายในตัวซีพียู
2) แปลความหมายของคำสั่ง (interpret instruction) คำสั่งจะถูกแปลความหมาย เพื่อจะได้ทราบว่า คำสั่งนั้นต้องการให้ทำงานอย่างใด 3) ดึงข้อมูล (fetch data) การประมวลผลคำสั่งเครื่องหนึ่งคำสั่ง อาจจำเป็นต้องอ่านข้อมูลจากหน่วยความจำหลักหรืออุปกรณ์ไอโอเข้ามาด้วย 4) ประมวลผลข้อมูล (process data) การประมวลผลคำสั่งอาจเกี่ยวข้องกับการทำงานทางคณิตศาสตร์หรือตรรกะ 5) การบันทึกข้อมูล (write data) ผลการประมวลผลข้อมูลอาจต้องการให้บันทึกผลลัพธ์ที่ได้ไว้ในหน่วยความจำหลักหรืออุปกรณ์ไอโอ
          จากการทำงานดังกล่าว ซีพียูจะมีการติดต่อกับอุปกรณ์ภายนอกรอบ ๆ ตัว โดยจะติดต่อผ่านระบบบัส ซึ่งได้แก่ บัสตำแหน่ง บัสข้อมูล และบัสควบคุมในการประมวลผลคำสั่งแต่ละครั้งจะต้องดึงคำสั่งเข้ามาเก็บในตัวซีพียู หรืออาจต้องดึงข้อมูลเข้ามา ซีพียูอาจต้องจำตำแหน่งที่อยู่ของคำสั่งหรือข้อมูลปัจจุบัน ดังนั้นซีพียูจะต้องจัดเก็บคำสั่งข้อมูลและตำแหน่งไว้ชั่วคราวขณะที่คำสั่งนั้นกำลังได้รับการประมวลผล นั่นคือซีพียูมีความจำเป็นที่จะต้องมีหน่วยความจำไว้ภายในตัวซีพียู ซึ่งเราเรียกหน่วยความจำนี้ว่า รีจีสเตอร์ สำหรับการประมวลผลข้อมูลก็จะมีหน่วยประมวลผล ซึ่งเรียกว่า หน่วยคำนวณและเปรียบเทียบหรือ เอแอลยู (ALU : Arithemetic and logic unit) ทำหน้าที่คำนวณทางคณิตศาสตร์และตรรกะ ในขณะซีพียูมีการทำงานต่าง ๆ ดังกล่าว ก็จะมีหน่วยควบคุมทำหน้าที่ควบคุมการเคลื่อนย้ายข้อมูลและคำสั่งเข้าและออกจากซีพียู และควบคุมการทำงานของหน่วย เอแอลยู

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

         สรุปคือ ซีพียูหรือหน่วยประมวลผลกลาง ถือว่าเป็นสมองของระบบคอมพิวเตอร์มีหน้าที่หลัก ๆ อยู่ 5 อย่างคือ ดึงคำสั่งเข้า แปลความหมายคำสั่ง ดึงข้อมูลเข้า ประมวลผลข้อมูล และบันทึกข้อมูล จากการที่มีหน้าที่ดังกล่าวจึงทำให้โครงสร้างภายในต้องประกอบด้วย รีจีสเตอร์ ซึ่งเป็นหน่วยความจำขนาดเล็กที่จะเก็บคำสั่งและข้อมูล ต้องมีหน่วยคำนวณทางคณิตศาสตร์และตรรกะที่เรียกว่า ALU และต้องมีหน่วยควบคุม เพื่อควบคุมให้องค์ประกอบทุกส่วนทำงานสัมพันธ์กัน
         รีจีสเตอร์อาจแบ่งได้ 2 กลุ่ม คือ กลุ่มของรีจีสเตอร์ที่ผู้ใช้มองเห็น ซึ่งรีจีสเตอร์กลุ่มนี้ จะอนุญาตให้ใช้คำสั่งภาษาเครื่องควบคุมและใช้งานผ่านการประมวลผลโดยซีพียู ได้แก่ รีจีสเตอร์ใช้งานทั่วไป รีจีสเตอร์เก็บตำแหน่งที่อยู่ เป็นต้น อีกกลุ่มหนึ่งคือรีจีสเตอร์สำหรับการควบคุมและรายงานสถานะ ได้แก่ รีจีสเตอร์ที่เก็บที่อยู่ของคำสั่งที่จะประมวลผลต่อไป (PC) รีจีสเตอร์เก็บคำสั่งที่อ่านมาจากหน่วยความจำหลัก (IR), MAR, MBR รวมทั้งกลุ่มที่เรียกว่า PSW