เครื่องคอมพิวเตอร์ที่ใช้ในปัจจุบันประกอบด้วยวงจรไฟฟ้าอิเล็กทรอนิกส์ที่เรียกว่า ฮาร์ดแวร์ (Hardware) มีส่วนประกอบหลัก 5 ส่วนคือ
1.หน่วยประมวลผลกลาง (Central Processing Unit)หรือซีพียู (CPU)
2.หน่วยรับเข้า (Input Unit)
3.หน่วยส่งออก (Output Unit)
4.หน่วยความจำหลัก (Main Memory)
5.หน่วยความจำรอง (Secondary Memory)
หน่วยรับเข้า
หน่วยรับเข้า หรืออินพุต เป็นส่วนที่ใช่รับข้อมูลและคำสั่งจากภายนอกเข้าสู่เครื่องคอมพิวเตอร์เพื่อนำไปประมวลผล
อุปกรณ์ประเภทนี้ได้แก่ แป้นพิมพ์ (Keyboard)
เมาส์ (Mouse) สแกนเนอร์ (Scanner) เป็นต้น
หน่วยส่งออก
หน่อยส่งออก หรือเอาต์พุต เป็นส่วนที่ใช้แสดงผลลัพธ์จากการประมวลผลออกมาในรูปแบบต่างๆ อุปกรณ์เอาต์พุตได้แก่ จอภาพ (Monitor) ลำโพง (Speaker) เป็นต้น
หน่วยประมวลผลกลาง
หน่วยประมวลผลจะทำหน้าที่ประมวลผลตามคำสั่ง
หรือโปรแกรมที่กำหนดไว้ เมื่อหน่วยประมวลผลทำงาน
สำเร็จแล้วจะเก็บข้อมูลหรือส่งผลลัพธ์ที่ได้ออกทาง
เอาต์พุตต่อไป
หน่วยความจำ
หน่วยความจำของคอมพิวเตอร์ ประกอบด้วยความจำ
หลักและหน่วยความจำรอง โดยหน่วยความจำหลักจะเป็นหน่วยความจำที่ใช้เก็บโปรแกรมและข้อมูลที่คอมพิวเตอร์ประมวลผลอยู่ ส่วนหน่วยความจำรองเป็นอุปกรณ์เก็บข้อมูล ที่จะต้องใช้ในอนาคต เช่น การ์ดหน่วยความจำ (Memory Cards) แผ่นซีดี หรือดีวีดี (CD,DVD) เป็นต้น
ประเภทของคอมพิวเตอร์
เครื่่องคอมพิวเตอร์นั้นสามารถจำแนกได้หลายประเภท ขึ้นกับขนาด ประสิทธิภาพ และลักษณะการใช้งาน โดยทั่วไปแล้วสามารถแบ่งประเภทของคอมพิวเตอร์ได้ดังนี้
1.คอมพิวเตอร์ส่วนบุคคล (Personal Computer)
คอมพิวเตอร์ประเภทนี้เป็นคอมพิวเตอร์ที่มีใช้งานกันทั่วไป เป็นคอมพิวเตอร์แบบตั้งโต๊ะที่เหมาะสำหรับใช้งานในบ้าน ในสำนักงาน ราคาไม่แพง
2.Handheld Computer
เป็นคอมพิวเตอร์ขนาดเล็กที่เหมาะสำหรับพกพาไปที่ต่างๆ เนื่องจากเครื่องมีขนาดเล็กจึงไม่เหมาะที่จะออกแบบคีย์บอร์ตไว้บนตัวเครื่อง การใช้คอมพิวเตอร์ประเภทนี้จะใช้ปากกาที่เรียกว่า สไตลัส (Stylus) เป็นอุปกรณ์สำหรับป้อนข้อมูล สามารถใช้งานพื้นฐานทั่วไปได้ รับส่ง Mail และใช้ในการสื่อสารได้
3.เครื่องคอมพิวเตอร์เซิร์ฟเวอร์
เครื่องคอมพิวเตอร์เซิร์ฟเวอร์เป็นเครื่องคอมพิวเตอร์ที่มีขนาดใกล้เคียงกับคอมพิวเตอร์ทั่วไป แต่จะมีความสามารถสูงกว่ามาก คอมพิวเตอร์ประเภทนี้จะใช้เป็นเครื่องให้บริการกับคอมพิวเตอร์ PC ต่างๆ ที่ต่ออยู่ในเครือข่าย และยังใช้เป็นเครื่องให้บริการบนเว็ปอีกด้วย ขนาดและประสิทธิภาของคอมพิวเตอร์เซิร์ฟเวอร์นี้มีหลายรุ่น ขึ้นอยู่กับการใช้งานว่าจะให้บริการกับเครื่องคอมพิวเตอร์อื่นๆ หลายเครื่องหรือไม่
4.คอมพิวเตอร์เมนเฟรม (Mainframe Computer)
เป็นคอมพิวเตอร์ขนาดใหญ่ ที่ต้องการประมวลผลข้อมูลจำนวนมากด้วยความเร็วสูง มีหน่วยความจำขนาดใหญ่ คอมพิวเตอร์ประเภทนี้จะนิยมใช้ในองค์กรที่มีผู้ใช้จำนวนมาก เช่น ระบบธนาคารขนาดใหญ่ ระบบธุรกิจขนาดใหญ่ เป็นต้น ในการใช้งานคอมพิวเตอร์แบบเมนเฟรมมักจะไม่ใช้เครื่องเมนเฟรมนี้เพียงเครื่องเดียว แต่จะมีการต่อทำงานร่วมกับคอมพิวเตอร์อื่นๆด้วย
5.ซูเปอร์คอมพิวเตอร์ (Supercomputer)
เครื่องคอมพิวเตอร์ประเภทนี้จัดว่าเป็นคอมพิวเตอร์ทีี่มีประสิทธิภาพการทำงานสูงที่สุด สามารถทำงานได้มากกว่าพันล้านคำสั่งในหนึ่งวินาที มีน้ำหนักหลายตัน สามารถเชื่อมต่อกับคอมพิวเตอร์ PC ทั่วไปได้จำนวนมาก คอมพิวเตอร์ประเภทนี้จะใช้ในงานที่ต้องการประมวลผลกับข้อมูลจำนวนมากด้วยความเร็วสูงๆ เช่น ทางด้านการพยากรณ์อากาศ และงานคอมพิวเตอร์สำหรับการออกแบบในอุตสาหกรรมเป็นต้น
6.คอมพิวเตอร์ฝังตัว (Embedded Computer)
เป็นคอมพิวเตอร์ที่ได้รับความนิยมอย่างมากในปัจจุบัน โดยจะเป็นระบบประมวลผลที่ฝังตัวอยู่ในอุปกรณ์ต่างๆ เพื่อควบคุมการทำงานนั้นๆ ระบบประเภทนี้จะพบในเครื่องมืออิเล็คทรอนิกส์สมัยใหม่ ตู้เย็น เครื่องปรับอากาศ การจุดระเบิด ระบบเบรค ด้วยคอมพิวเตอร์
ซีพียู (CPU) และการประมวลผลข้อมูล
หน่วยประมวลผลกลางของคอมพิวเตอร์ หรือ ซีพียู (CPU) ซีพียูเป็นชิปสารกึ่งตัวนำตัวหนึ่งที่เป็นหัวใจการทำงานของคอมพิวเตอร์
คำว่า ชิป (chip) เป็นสารกึ่งตัวนำขนาดเล็ก ซึ่งภายในบรรจุวงจรอิเล็กทรอนิกส์ต่างๆ ไว้มากมาย โดยวงจรประกอบด้วยทรานซีสเตอร์เป็นจำนวนมาก
หน่วยควบคุม (Control Unit)
หน่วยควบคุม เป็นตัวควบคุมอุปกรณ์ทั้งหมดภายในคอมพิวเตอร์ ควบคุมทิศทางการรับส่งข้อมูลต่างๆให้ทำงานได้ถูกต้อง ควบคุมขั้นตอนการทำคำสั่งของคอมพิวเตอร์ ควบคุมการประมวลผล และการใช้บัสต่างๆในการรับส่งข้อมูล
หน่วยประมวลผลทางคณิตศาสตร์และลอจิก (ALU)
วงจรในส่วนนี่จะทำหน้าที่ในการคำนวณต่างๆ ทางคณิตศาสตร์และทางลอจิก
ไซเคิลคำสั่ง (Machine Cycle)
จากที่กล่าวไว้แล้วว่าโปรแกรมเกิดจากการนำคำสั่งมาต่อเรียงกัน เมื่อคอมพิวเตอร์ทำงาน หน่วยควบคุมจะทำการอ่านคำสั่งต่างๆ โดยขั้นตอนการทำคำสั่งของซีพียูประกอบด้วยขั้นตอนการทำงานพื้นฐานสี่ขั้นตอน เรียกว่าไซเคิลคำสั่ง (machine cycle) ประกอบด้วย
1) fetching
2) decoding
3) executing
4) storing
รีจีสเตอร์ (Register)
หน่วยเก็บข้อมูลขนาดเล็กที่อยู่ภายในซีพียู มีความเร็วในการอ่านเขียนข้อมูลสูงเรียกว่า รีจีสเตอร์ ภายในซีพียูจะใช้รีจีสเตอร์นี้ในการเก็บข้อมูลและคำสั่งชั่วคราวเพื่อรอการประมวลผลต่อไป
สัญญาณนาฟิกาของระบบ (System Clock)
ระบบคอมพิวเตอร์จะใช้ crystal ขนาดเล็กเป็นตัวควบคุมสัญญาณนาฬิกาของระบบ โดยมีการออกแบบไว้ว่าขั้นตอนการทำงานหนึ่งๆ จะใช้สัญญาณนาฬิกากี่ลูก ถ้าหากสัญญาณนาฬิกาที่ป้อนเข้ามามีความถี่สูง ก็จะทำให้การทำงานนั้นๆ เร็วขึ้นด้วย
หน่วยความจำของคอมพิวเตอร์
หน่วยความจำ (memory) เป็นอุปกรณ์ที่สำคัญการทำงานของระบบคอมพิวเตอร์ ทำหน้าที่เป็นตัวพักข้อมูลที่ได้รับจากผู้ใช้ เพื่อส่งต่อไปยังหน่วยผลกลางอีกทีหนึ่ง ในระบบคอมพิวเตอร์มีหน่วยความจำอยู่หลายส่วน
1.หน่วยความจำหลัก ทำหน้าที่เก็บข้อมูลและโปรแกรมที่ซีพีกำลังประมวลผลอยู่ในขณะนั้น หน่วยความจำหลักแบ่งเป็น 2 ประเภทใหญ่ๆ คือ รอม (ROM) และแรม (RAM) – รอม (ROM) มาจากคำว่า Read Only Memory เป็นหน่วยความจำทีเก็บข้อมูลแบบถาวร (เปลี่ยนแปลงไม่ได้) ข้อมูลจะคงอยู่ตลอดไปแม้ในช่วงที่ปิดเครื่องไม่มีกระแสไฟฟ้ามาเลี้ยง ในเครื่องคอมพิวเตอร์จะใช้หน่วยความจำนี้เป็นโปรแกรมที่ควบคุมการทำงานของเครื่อง ที่เรียกว่ารอมไบออส (BIOS)
– แรม (RAM) มาจากคำว่า Random Access Memory ถ้าหากกล่าวถึงหน่วยความจำหลักของคอมพิวเตอร์มักจะนึกถึงหน่วยความจำประเภทแรมนี้ หน่วยความจำชนิดนี้เป็นหน่วยความจำที่ทำงานร่วมกับซีพียู ใช้พักข้อมูลชั่วคราว แต่ข้อมูลจะหายเมื่อมีการปิดเครื่อง
2.หน่วยความจำรอง หน่วยความจำรองใช้สำหรับเก็บคำสั่งและข้อมูลที่คอมพิวเตอร์ยังไม่ใช้ในทันทีทันใด แต่ต้องการใช้ในอนาคต หน่วยความจำสำรอง มีหลายชนิดขึ้นกับเทคโนโลยีที่ใช้ในการบันทึกข้อมูล ตัวอย่างของหน่วยความจำรองได้แก่ ฮาร์ดดิสก์ (harddisk) CD DVD USB flash drive
อุปกรณ์อินพุตเอาต์พุตของคอมพิวเตอร์
หน่วยรับเข้าและหน่วยส่งออกหรืออินพุตเอาต์พุตเป็นช่องทางหลักที่คอมพิวเตอร์ใช้ติดต่อกับผู้ใช้งาน โดยจะมีอุปกรณ์อินพุตเอาต์พุตประกอบอยู่ อุปกรณ์อินพุตจะเปลี่ยนปริมาณต่างๆ ที่ผู้ใช้คอมพิวเตอร์เข้าใจไปที่รหัสที่คอมพิวเตอร์สามารถเข้าใจได้ ส่วนอุปกรณ์เอาต์พุตจะเปลี่ยนสัญญาณที่คอมพิวเตอร์เข้าใจให้อยู่ในรูปแบบที่มนุษย์เข้าใจได้
1.อุปกรณ์อินพุต
อุปกรณ์อินพุต (input device) เป็นอุปกรณ์ที่ทำหน้าที่รับข้อมูลและคำสั่งเข้าสู่คอมพิวเตอร์ โดยจะนำลักษณะของข้อมูลที่ถูกอินพุตเปลี่ยนไปเป็นสัญญาณที่คอมพิวเตอร์เข้าใจ ตัวอย่างของอุปกรณ์อินพุตได้แก่ คีย์บอร์ดหรือแป้นพิมพ์ เมาส์ ปากกาอิเล็กทรอนิกส์ เครื่องสแกน เครื่องอ่านบาร์โค้ด เป็นต้น
2.อุปกรณ์เอาต์พุต
หลังจากที่คอมพิวเตอร์ประมวลผลแล้วต้องการแสดงสารสนเทศออกมา จะต้องแสดงออกทางเอาต์พุตซึ่งจะนำรหัสที่คอมพิวเตอร์ประมวลผลได้มาแสดงในรูปแบบที่มนุษย์เข้าใจ การแสดงผลของคอมพิวเตอร์ทำได้หลายรูปแบบ ได้แก่
– แสดงผลเป็นข้อความ (Text) ให้เอาต์พุตเป็นตัวอักษร ในรูปแบบของรายงาน ข่าวสารต่างๆ
– แสดงผลเป็นภาพ (Graphics) โดยให้ข้อมูลเป็นภาพ กราฟ ผังงานต่างๆ เป็นต้น
– แสดงผลเป็นเสียง (Audio) อาจเป็นเสียงเพลง เสียงประกอบเกม เป็นต้น
– แสดงผลเป็นวิดีโอ (Video) โดยแสดงเป็นไฟล์วิดีโอออกมาทางหน้าจอ
อุปกรณ์เอาต์ที่ได้รับความนิยมมากที่สุดได้แก่ จอภาพ และเครื่องพิมพ์ นอกจากนี้ยังมีเอาต์พุตแบบอื่นๆ อีกเช่น ลำโพง แฟกซ์ โมเด็ม
DMA (Direct Memory Access)
หรือการส่งเข้าถึงข้อมูลในหน่วยความจำโดยตรง คือกระบวนการโอนย้ายข้อมูลระหว่างหน่วยความจำกับอุปกรณ์ภายนอก โดยไม่ผ่าน CPU
กระบวนการ DMA เริ่มต้นจาก
1. อุปกรณ์ที่ต้องการทำ DMA ส่งสัญญาณ DREQ เพื่อร้องขอทำ DMA ไปยัง DMA controller ในช่องทาง (channnel) ที่ต้องการ
2. เมื่อ DMA controller ได้รับสัญญาณ ก็จะตรวจสอบก่อนว่าสามารถอณุญาติให้ทำ DMA ได้หรือไม่แล้วจึงส่งสัญญาณ HRQ เพื่อบอก CPU ว่าต้องการเข้ามาใช้ BUS โดยส่งสัญญาณนี้ไปยังของ HOLD ของ CPU
3. เมื่อ CPU ได้รับสัญญาณ HRQ จาก DMA controller ที่ขา HOLD และพร้อมที่จะตอบสนองก็จะส่งสัญญาณ HLDA หรือ Hold Acknowledge ตอบกลับไปยัง DMA controller เพื่อแสดงว่า CPU ได้ปลดตัวเองและปล่อยการควบคุม แล้วจะส่งหน้าที่ต่างๆให้ DMA controller รับไปดำเนินการ
4. เมื่อ DMA controller ได้รับสัญญาณ HLDA แล้วก็เข้าควบคุม address bus และ controller bus และส่งสัญญาณ DACK ตอบกลับไปยังอุปกรณ์เพื่อแสดงถึงการพร้อมสำหรับเริ่มต้นส่งข้อมูล
5. การส่งข้อมูลจะเริ่มต้นโดยจะส่งสัญญาณ AEN ส่งสัญญาณ คือ address แรกของหน่วยความจำเป้าหมายออกไปที่ address bus และส่งสัญญาณไปควบคุมการเขียนและอ่านหน่วยความจำกับอุปกรณ์กับอุปกรณ์ออกไป เพื่อดำเนินการย้ายข้อมูลระหว่างอุปกรณ์กับหน่วยความจำ
6. เมื่อข้อมูลโอนย้ายจนครบสมบูรณ์แล้วก็จะเข้าสู่กระบวนการยกเลิก DMA โดย DMA จะส่งสัญญาณ EOP หรือ End Of Process ออกไป
7. ส่งผลให้สัญญาณ AEN ตกลงเป็น LOW เพื่อคืน bus ให้กับ CPU และ HRQ จาก DMA controller ที่ไปของให้ CPU HOLD ก็จะหายไป เพื่อให้ CPU กลับมาดูแล bus ต่างๆดังเดิม
8.เมื่อสัญญาณที่ร้องของ HOLD หายไป CPU ก็จะรับรู้และจะตอบสนองโดยยกเลิกสัญญาณ HLDA เพื่อแสดงว่าตอนนี้ CPU กลับมาดูแลระบบแล้ว
ลำดับชั้นของหน่วยความจำ (Memory Hierarchy)
หน่วยความจำลำดับบนสุดเป็นหน่วยความจำที่มีความเร็วสูง และลดหลั่นลงมาเรื่อย ๆ ก็จะมีความเร็วทที่มีขนาดใหญ่ขึ้น ในทำนองเดียวกกัน หน่วยความจำที่มีขนาดใหญ่นั้นจะมีต้นทุนหรือราคาต่ำกว่าหน่วยความจำที่มีขนาดเล็กหน่วยความจำยิ่งมีขนาดความจุสูงเท่าไร จะมีการแอคเซสข้อมูลที่ช้า และมีราคาถูก เช่น เทป ฮาร์ดดิสก์ ในขณะที่หน่วยความจำที่ยิ่งมีขนาดเล็กเท่าไรย่อมมีความเร็วสูง เช่น รีจิสเตอร์ หน่วยความจำแคช หน่วยความจำหลักแต่นั่นหมายถึงราคาหรือต้นทุนที่ต้องเพิ่มสูงด้วย
การป้องกันหน่วยความจำ (Memory Protection)
โดยปกติจำนวนบิต (Bits) ที่เก็บอยู่ในตารางเพจ (Page Table) เราสามารถกำหนดบิตเพื่อใช้การตรวจสอบและกำหนดเพจในการ อ่าน-เขียน (Read-Write) หรืออ่านข้อมูลเท่านั้น (Read-Only) ซึ่งเรียกบิตพิเศษนี้ว่า “กลุ่มบิตป้องกัน (Associating Protection Bits)” ให้กับทุกๆ เฟรม ที่อยู่ในหน่วยความจำ (Main Memory) ซึ่งแบ่งบิตสถานะออกเป็น 2 บิต คือ
1. บิตใช้งานได้ (Valid Bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจถูกอ่านเข้าสู่หน่วยความจำทางกายภาพแล้ว และสามารถนำไปใช้งานได้ทันที
2. บิตใช้งานไม่ได้ (Invalid Bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจนั้นไม่มีอยู่ในหน่วยความจำทางกายภาพแล้ว (Physical Memory) และไม่สามารถนำไปใช้งานได้ อาจเกิดจากกรณีที่ระบบปฏิบัติการยังไม่ได้อ่านข้อมูลจากเพจเข้าสู่หน่วยความจำหลัก (Main Memory) หรือข้อมูลของเพจที่ต้องการอ่านนั้นถูกสลับ (Swapped) ออกจากหน่วยความจำแล้ว ซึ่งจะทำให้เกิดข้อผิดพลาดขึ้นที่เรียกว่า “การผิดหน้า (Page Fault)” จึงจำเป็นต้องโหลดเพจข้อมูลเข้าสู่หน่วยความจำก่อนแล้วจึงเปลี่ยนค่าของบิตใช้งานไม่ได้ (Invalid Bit) ให้เป็นบิตใช้งานได้ (Valid Bit) แล้วจึงทำการประมวลผลข้อมูลนั้นใหม่อีกครั้งหนึ่ง
อ้างอิง
http://www.dekdev.com/การป้องกันหน่วยความจำ-memory-protection-2082012/
https://namwhanpattichon.wordpress.com/2014/11/04/โครงสร้างคอมพิวเตอร์แล/
http://www.micro4dev.com/dma-direct-memory-access/