ส่วนควบคุมกลาง หรือซีพียู (central processing unit; CPU) ของระบบคอมพิวเตอร์ ประกอบด้วยส่วนใหญ่ๆ ๓ ส่วน คือ ส่วนคำนวณ ส่วนควบคุม และส่วนความจำ แต่บางคนจะไม่รวมส่วนความจำไว้ในส่วนควบคุมกลาง ในปัจจุบันเทคโนโลยีสมัยใหม่ สามารถสร้างส่วนควบคุมกลางไว้ในวงจรเบ็ดเสร็จตัวเดียว เรียกว่า ไมโครโพรเซสเซอร์
ส่วนควบคุมกลางเป็นส่วนสำคัญในการทำงานของคอมพิวเตอร์ โดยทำงานเป็น ๒ จังหวะดังต่อไปนี้คือ
จังหวะแรก เป็นการนำคำสั่งจากส่วนความจำมาแปลว่า คำสั่งนั้นให้ทำอะไรบ้าง
จังหวะที่สอง เป็นการทำงานตามคำสั่งที่ได้แปลมานั้น เช่น การย้ายข้อมูล การคำนวณ เป็นต้น
ส่วนคำนวณเป็นส่วนประมวลผล ซึ่งนับว่า เป็นส่วน สำคัญที่สุด หรือ "หัวใจ" ของเครื่องคอมพิวเตอร์ ส่วนคำนวณทำหน้าที่ใหญ่ๆ ๒ ประการ คือ ประการแรก ทำการบวก ลบ คูณ และหาร ประการที่สองคือ ทำหน้าที่ตัดสินใจว่า ข้อมูลหนึ่งใหญ่หรือเล็กกว่าอีกข้อมูลหนึ่ง หน้าที่ทั้งสองประการนี้ สามารถปฏิบัติการเป็นผลสำเร็จได้ โดยอาศัยวงจรตรรกอันเป็นวงจรอิเล็กทรอนิกส์ จึงทำให้ส่วนคำนวณนี้มีชื่อเรียกอีกอย่างหนึ่งว่า ส่วนคำนวณตรรก (arithmetic logic unit; ALU) นอกจากนี้ ส่วนคำนวณสามารถเลื่อนข้อมูลไปทางซ้ายหรือทางขวา เก็บหรือย้ายข้อมูลไปยังส่วนอื่นๆ ของส่วนควบคุมกลางได้
เป็นวงจรทางอิเล็กทรอนิกส์ที่ใช้ส่วนประกอบ เช่น ตัวความต้านทาน ตัวเก็บประจุ ไดโอด ทรานซิสเตอร์ ฯลฯ มาจัดให้สามารถทำงานแทนการคำนวณทางตรรกได้ โดยใช้ "การมีสัญญาณไฟฟ้า" และ "ไม่มีสัญญาณไฟฟ้า" แทนสภาวะตรรก "จริง" และ "เท็จ" หรือ "1" กับ "0" ทำให้สามารถสร้างวงจรขึ้นได้ ๒ ชนิดใหญ่ๆ คือ
๑. วงจรตรรกจัดหมู่ (combination logic) เป็นวงจรที่ให้สัญญาณผลลัพธ์ ขึ้นอยู่กับสภาวะของสัญญาณป้อนเข้าเท่านั้น วงจรนี้จึงไม่สามารถเก็บสัญญาณไว้ได้ หรือวงจรนี้ไม่มีความจำ เช่น
วงจรอินเวอร์เทอร์ หรืออินเวอร์เทอร์เกต (inverter circuit หรือ inverter gate) คือ วงจรที่ทำหน้าที่กลับสภาวะตรรก "1" ให้เป็น "0" หรือจาก "0" ให้ เป็น "1"
กต "หรือ" (Or gate) เป็นวงจรที่ทำหน้าที่แทนปฏิบัติการทางตรรก "หรือ" วงจรนี้มีสัญญาณเข้า (input) ตั้งแต่ ๒ จุดขึ้นไป แต่มีสัญญาณออก (output) ๑ จุด
เกต "และ" (And gate) เป็นวงจรที่ทำหน้าที่แทนปฏิบัติการทางตรรก "และ" วงจรนี้มีสัญญาณเข้าตั้งแต่ ๒ จุดขึ้นไป และมีสัญญาณออก ๑ จุด
๒. วงจรตรรกจัดลำดับ (sequential logic) เป็นวงจรที่มีสัญญาณผลลัพธ์ขึ้นอยู่กับสัญญาณป้อนเข้า และขึ้นอยู่กับสภาวะเดิม ของสัญญาณผลลัพธ์ด้วย วงจรนี้มีคุณสมบัติที่สามารถเก็บสัญญาณ หรือความจำไว้ได้ แต่เมื่อเลิกทำงาน ปิดไฟฟ้าที่ไปเลี้ยงวงจรเหล่านี้ สัญญาณ หรือความจำจะสูญหายไป เช่น วงจรฟลิปฟล็อป (flip-flop) วงจรนับ (counter) วงจรชิฟต์เรจิสเตอร์ (shift register)
คือวงจรที่ทำหน้าที่บวกเลขฐานสอง โดยอาศัยวงจรตรรกเข้ามาประกอบเป็นวงจรบวกครึ่ง (half- adder; H.A.) ซึ่งจะให้ผลบวก S และการทดออก C๐ ดัง ตาราง
เมื่อนำเอาวงจรบวกครึ่งสองวงจรกับเกต "หรือ" ๑ วงจรมารวมกันเป็นวงจรบวกเต็ม โดยมีการทดเข้า ทดออก และผลบวก จะปรากฏผลดังภาพ
เป็นวงจรที่ทำหน้าที่คล้ายวงจรบวก โดยใช้วงจรอินเวอร์เทอร์เข้าเปลี่ยนเลขตัวลบให้เป็นตัวประสม ๑ (1's complement) คือเปลี่ยนเลข "0" เป็น "1" หรือ "1" เป็น "0" แล้วนำเข้าบวกกับตัวตั้ง เราก็จะได้ผลลบตามต้องการ
การคูณสามารถทำได้ด้วยการบวกซ้ำๆ กัน และการหารสามารถทำได้ด้วยการลบซ้ำๆ กัน ดังนั้นการคูณก็คือ การจัดให้วงจรบวกทำการบวกซ้ำๆ กัน ส่วนการหารก็คือ การจัดให้วงจรลบทำการลบซ้ำ นอกจากหลักการดังกล่าวแล้ว อาจจะใช้อีกหลักการหนึ่งคือ การคูณหารบางประเภทสามารถทำได้ โดยการเลื่อนจุดไปทางซ้ายหรือขวา เช่น ๒๕๖.๗๔๑ x ๑๐๐ = ๒๕,๖๗๔.๑ หรือ ๒๕๖.๗๔๑ ธ๑๐๐ = ๒.๕๖๗๔๑ เป็นต้น ส่วนเลขฐานสองที่คอมพิวเตอร์ใช้ก็ทำได้ในทำนองเดียวกัน
ส่วนควบคุมทำหน้าที่ควบคุมการทำงานส่วนต่างๆ ของเครื่องคอมพิวเตอร์ ซึ่งขึ้นอยู่กับการออกแบบ เช่น วิธีการทำงานของสัญญาณ ตามแบบอนุกรม หรือแบบขนาน ชนิดของส่วนความจำ ชนิดของส่วนรับงาน และแสดงผล ฯลฯ ให้ทำงานประสานกัน และถูกต้องตามขั้นตอนที่ได้รับคำสั่งมา คำสั่งนี้จะอยู่กับข้อมูลที่ใช้ประมวลผลในส่วนความจำตามตำแหน่งต่างๆ ที่ต้องระบุให้ถูกต้องเหมือนกับเลขที่บ้านของเราทั่วๆ ไป เรียกว่า "แอดเดรส" (address)
สมมติว่า เราเลือกใช้คำสั่งคำหนึ่งประกอบด้วย ๑๘ บิต ๖ บิตแรกเป็นคำสั่งให้เครื่องทำ เช่น บวก ลบ คูณ หาร อ่าน พิมพ์ หยุด ฯลฯ เรียกว่า "รหัสคำสั่ง" (operation code = op code) ๓ บิตต่อมาจัดไว้ เพื่อใช้กับลักษณะการทำงานพิเศษ และ ๙ บิตสุดท้าย เป็นข้อมูลที่ใช้ประมวลผล หรือเป็นแอดเดรสก็ได้ เรียกว่า ออเพอแรนด์ (operand)
โดยพื้นฐานทั่วไป ส่วนควบคุมจะทำงานเป็น ๒ จังหวะ คือ จังหวะแรก รับคำสั่ง (fetch) จังหวะที่สอง ปฏิบัติ (execute)
๑. รับคำสั่ง
ในจังหวะแรกนี้ ชุดคำสั่งจะถูกดึงจากส่วนความจำเข้าสู่ส่วนควบคุม แล้วแยกออกเป็น ๒ ส่วน คือ ส่วนที่เป็นรหัสคำสั่ง จะแยกไปยังส่วนที่มีชื่อ เรียกว่า วงจรสร้างสัญญาณ (decoder) เพื่อเตรียมทำงาน ในจังหวะที่ ๒ และส่วนที่เป็นออเพอแรนด์ จะแยกออกไปยังวงจรอีกส่วนหนึ่ง เพื่อปฏิบัติให้เสร็จสิ้นในจังหวะแรก แล้วเตรียมพร้อมที่จะทำงานในจังหวะต่อไป เมื่อได้รับสัญญาณควบคุมส่งมาบังคับ
๒. ปฏิบัติ
เมื่อจังหวะแรกได้เสร็จสิ้นไปแล้ว วงจรควบคุมจะสร้างสัญญาณขึ้น เพื่อส่งไปควบคุมส่วนต่างๆ ของเครื่องคอมพิวเตอร์ตามรหัสคำสั่งที่ได้รับมา เช่น การ บวก ลบ คูณ หาร หรือย้ายข้อมูล เครื่องคอมพิวเตอร์หลายแบบ ใช้วงจรควบคุมที่เป็นวงจรอิเล็กทรอนิกส์ ที่สร้างเสร็จเรียบร้อยติดไว้ในเครื่อง แต่เครื่องคอมพิวเตอร์บางแบบ เช่น คอมพิวเตอร์ เครื่องคำนวณจะเก็บสัญญาณควบคุมเหล่านี้ไว้ในส่วนความจำพิเศษที่เรียกว่า รอม (ROM)
ในการทำงานตามคำสั่ง ส่วนควบคุมจะทำงานทีละขั้นตอน ขั้นตอนหนึ่งประกอบด้วยรับคำสั่ง กับปฏิบัติ แล้ววนกลับไปทำงานซ้ำเดิมเป็นจังหวะ เรียกว่า วัฏจักร รับคำสั่ง-ปฏิบัติ
บางทีเราต้องการสั่งเปลี่ยนตัวออเพอแรนด์ที่ป้อนเข้า ส่วนคำนวณ หรือต้องการสั่งให้ตัวเลขตัวหนึ่งเข้าบวกกับออเพอแรนด์ ที่อยู่ในส่วนความจำตามที่เราระบุให้ ในกรณี เช่นนี้ เราต้องการจังหวะที่เรียกว่า เปลี่ยน (defer) เพื่อ รับคำสั่งนี้จากส่วนความจำ โดยจังหวะนี้ต้องอยู่กลาง ระหว่างจังหวะรับคำสั่งกับปฏิบัติ จึงกลายเป็น วัฏจักรรับ คำสั่ง-เปลี่ยน-ปฏิบัติ
ส่วนความจำของคอมพิวเตอร์เปรียบได้กับสมองมนุษย์เรา โดยใช้เป็นที่เก็บข้อมูลต่างๆ และเก็บชุดคำสั่ง เอาไว้สั่งให้คอมพิวเตอร์ทำงานตามขั้นตอนต่างๆ ส่วนความจำแบ่งออกได้เป็น
๑. ส่วนความจำหลัก (main memory)
เครื่องคอมพิวเตอร์ทุกๆ เครื่อง ต้องมีส่วนความจำหลัก และทำงานประจำอยู่ภายในเครื่องคอมพิวเตอร์ และต้องสามารถทำงานได้รวดเร็วมาก ในเวลาเศษหนึ่งส่วนพันล้านวินาที หรือเรียกว่า นาโนวินาที (nanosecond) หรือเร็วกว่านั้น ส่วนความจำหลักมีขนาดจำกัด และมีราคาค่อนข้างแพง จึงมีความจำเป็นที่จะต้องอาศัยส่วนความจำรอง
๒. ส่วนความจำรอง (secondary memory)
ใช้เป็นส่วนเพิ่มความจำให้มีขนาดใหญ่มากขึ้น ทำงานติดต่ออยู่กับส่วนความจำหลัก ส่วนความจำรองมีความจุมาก และมีราคาถูก แต่เรียกหาข้อมูลได้ช้ากว่าส่วนความจำหลัก คือ ทำงานได้ในเวลา ๑/๑๐๐๐ วินาที ข่าวสาร หรือข้อมูล ที่จะเก็บไว้ในส่วนความจำนั้น เป็นรหัสแทนเลขฐานสอง (binary) คือ o กับ ๑ ซึ่งต้องเก็บไว้เป็นกลุ่มๆ และมีแอดเดรสตามที่กำหนด เพื่อความสะดวกขอนิยามไว้ดังนี้
บิต (bit) เป็นชื่อที่เขียนย่อจาก binary digit ซึ่งหมายถึง ตัวเลขฐานสองคือ o กับ ๑ ซึ่งเป็นส่วนประกอบที่เล็กที่สุด ของหน่วยความจำ
ไบต์ (byte) เป็นชื่อที่ใช้เรียกกลุ่มของบิต ซึ่งขึ้นอยู่กับการเลือกใช้ เช่น ๖ บิต ๘ บิต ก็ได้ ซึ่ง เรียกว่า ๖ บิตไบต์ ๘ บิตไบต์ ๑๖ บิตไบต์ ตามลำดับ เป็นต้น
ตัวอักษร (character) หมายถึงสัญลักษณ์ที่ใช้ในคอมพิวเตอร์ คือ ตัวเลข ๐-๙ ตัวอักษร A-Z และเครื่องหมายพิเศษบางอย่าง ที่จำเป็น เช่น ( ), ะ ,+, =, .... ฯลฯ เป็นต้น ซึ่งเราจะต้องแทนตัวอักษรหนึ่งๆ ด้วยรหัสของกลุ่มเลขฐานสอง ๑ ไบต์ (ซึ่งอาจเป็น ๗ หรือ ๘ บิตไบต์)
คำ (word) หมายถึงกลุ่มของเลขฐานสองตั้งแต่ ๑ ไบต์ขึ้นไป ที่สามารถเก็บไว้ในส่วนความจำเพียง ๑ แอดเดรส ขนาดของคำขึ้นอยู่กับการเลือกใช้ เครื่องคอมพิวเตอร์บางเครื่องใช้คำหนึ่งประกอบขึ้นจาก ๒ ไบต์ แต่ละไบต์เป็นชนิด ๘ บิต ดังนั้นคำหนึ่งจึงมี ๑๖ บิต บางเครื่องใช้คำหนึ่งประกอบขึ้นจาก ๔ ไบต์ แต่ละไบต์เป็นชนิด ๘ บิต ดังนั้นคำหนึ่งจึงมี ๓๒ บิต เครื่องคอมพิวเตอร์บางเครื่องใช้ คำหนึ่งประกอบขึ้นจาก ๔๘ หรือ ๖๔ บิตก็มี
ขนาดของส่วนความจำบอกเป็นจำนวน กิโล คำ ซึ่ง กิโล ย่อมาจากคำว่า kilo อันหมายถึง ๑,๐๐๐ แต่ค่านี้แท้จริงคือ ๒๑๐= ๑,๐๒๔ หน่วยของส่วนความจำหน่วยหนึ่งอาจจะมี จำนวนต่ำสุด ๔ กิโล จนถึงใหญ่สุด ๑๒๘ กิโล (ชนิดของแกนแม่ เหล็ก) หรือใหญ่สุด ๔,๐๐๐ กิโล (ชนิดของวงจรเบ็ดเสร็จชนิด ใหญ่)
สิ่งประดิษฐ์ทางส่วนความจำหลักเป็นส่วนสำคัญส่วนหนึ่งของส่วนควบคุมกลาง และมีคุณสมบัติเคลื่อนย้ายข้อมูลได้อย่างรวดเร็วมาก ส่วนความจำหลักของคอมพิวเตอร์ได้พัฒนาจากแบบแกนแม่เหล็ก จานแม่เหล็ก (magnetic disk) จนกระทั่งถึงวงจรเบ็ดเสร็จชนิดใหญ่ สามารถทำงานได้ในเวลาเศษหนึ่งส่วนพันล้านวินาที (นาโนวินาที) แม้ว่าส่วนความจำจะทำงานได้รวดเร็วขึ้น แต่ความเร็วของเครื่องคอมพิวเตอร์ทั้งระบบ ก็ถูกจำกัด โดยความเร็วของส่วนรับส่งข้อมูล ซึ่งเป็นส่วนที่ทำงานได้ช้าที่สุดในระบบของเครื่องคอมพิวเตอร์ ดังนั้นการที่จะพิจารณาว่า เครื่องคอมพิวเตอร์ทำงานได้เร็วหรือช้า เราจะต้องพิจารณาทั้งระบบ อย่างไรก็ตาม ระบบคอมพิวเตอร์ที่ช้าที่สุดก็ยังเร็วกว่าการทำงานด้วยมือเป็นล้านๆ เท่า
โดยหลักการเบื้องต้น ในการใช้กระแสไฟฟ้าผ่านเข้าไปในขดลวดที่พันรอบแท่งเหล็กอ่อน แล้วแท่งเหล็กอ่อนนี้จะกลายเป็นแม่เหล็ก โดยขั้วเหนือของแม่เหล็กจะชี้ไปทางทิศหนึ่ง ถ้ากลับทิศ กระแสการเป็นแม่เหล็กก็กลับทิศด้วย โดยอาศัยหลักการดังกล่าว เราอาจใช้การเป็นแม่เหล็กในทิศหนึ่งแทนสภาวะตรรก "1" และใช้การเป็นแม่เหล็กในอีกทิศหนึ่งแทนสภาวะตรรก "0" ในคอมพิวเตอร์ ดังนั้น เราจึงใช้สารแม่เหล็กชนิดหนึ่งที่ เรียกว่า เฟอร์ไรต์ (ferrite) ทำให้มีรูปร่างเป็นวงแหวน มีขนาดเล็กมาก ประมาณเท่ากับหัวเข็มหมุด มาทำเป็นแกนแม่เหล็ก เอาสายไฟฟ้า ๒ เส้นร้อยผ่านแกนแม่เหล็กนี้ให้ตั้ง ฉากกัน เมื่อเราต้องการเก็บข้อมูล ก็เอากระแสไฟฟ้าผ่าน เข้าไปในสายไฟฟ้า ๒ เส้นนี้ เส้นละ ๑/๒ หน่วย ก็จะทำให้แกนแม่เหล็กกลายเป็นแม่เหล็กอย่างอิ่มตัว ซึ่งอาจใช้แทน สภาวะตรรก "1"
ตามความเป็นจริง แกนแม่เหล็กแต่ละอันมีสายไฟฟ้า ร้อยผ่าน ๔ เส้น สายไฟฟ้าเส้นที่ ๓ เอาไว้ใช้อ่านข้อมูลที่เก็บไว้ ซึ่งทำได้ โดยส่งห้วงของกระแสไฟฟ้าผ่านเข้าไปในสายไฟฟ้า ๒ เส้นแรก ทำให้มีสนามแม่เหล็กเกิดขึ้นมาใหม่ ซึ่งอาจไปหักล้าง หรือมีทิศเดียวกันกับสนามแม่เหล็กเดิม ดังนั้น อาจมีสนามแม่เหล็กเปลี่ยนแปลง หรือไม่เปลี่ยนแปลงก็ได้ ถ้ามีการเปลี่ยนแปลง ก็จะเหนี่ยวนำให้เกิดแรงเคลื่อนไฟฟ้าขึ้นในสายไฟฟ้าเส้นที่สาม ซึ่งเป็นเครื่องแสดงว่า มีสภาวะตรรก 1 หรือ 0 เก็บไว้ที่แกนแม่เหล็กนั้น ในกรณีที่มี สนามแม่เหล็กเปลี่ยนแปลง สนามแม่เหล็กเดิมจะถูกหักล้างหมดไป ข้อมูลที่เก็บไว้จะสูญไป เราเรียกวิธีการอ่านข้อมูลนี้ว่า "อ่านด้วยวิธีล้างออก" (destructive read out) เราจำเป็นต้องบันทึกข้อมูลกลับเข้าไปใหม่ โดยเอาสัญญาณที่เกิดขึ้นในเส้นที่ ๓ ป้อนกลับเข้าไปในเส้นที่ ๔ ข้อมูลเดิม จะกลับเข้าไปเก็บอยู่ในแกนแม่เหล็กอันเดิม
แกนแม่เหล็กนี้ทำงานได้รวดเร็ว และแม้ว่า ไฟฟ้าจะดับก็ยังสามารถเก็บข้อมูลไว้ได้ (nonvolatile) เคยนิยมใช้กันแพร่หลายประมาณ พ.ศ. ๒๕๑๐
ฟิล์มแม่เหล็ก (magnetic thin film)
|
|
ส่วนความจำที่ประดิษฐ์ด้วยวงจรเบ็ดเสร็จชนิดใหญ่
รอม (read only memories; ROM) เป็นส่วนความจำที่สามารถให้อ่านข่าวสารออกไปเท่านั้น ไม่สามารถเขียนใหม่ได้ เป็นการเก็บข่าวสารอย่างถาวรตามแต่จะออกแบบไว้ (nonvolatile) โดยประดิษฐ์ขึ้นจากตัวนำจำนวนมาก ไขว้กัน เป็นตะแกรงบนแผงเล็กๆ ของซิลิกอนหรือชิป ตรงที่ตัวนำไขว้กัน โดยไม่ต่อติดกันจะแทนสภาวะตรรก "0" แต่ถ้าตรงตัวนำไขว้กันนั้น มีสิ่งประดิษฐ์ทางอิเล็กทรอนิกส์ เช่น ไดโอด หรือทรานซิสเตอร์ต่อติดอยู่จะแทนสภาวะตรรก "1"
แรม (random access memories; RAM) แรมจะเหมือนกับรอม ที่มีเส้นตัวนำไขว้กันเป็นตะแกรงบนแผงซิลิกอน แต่ต่างกันที่สภาวะตรรก "1" แทนที่จะมี ไดโอด หรือทรานซิสเตอร์ต่ออยู่ กลับมีวงจรฟลิปฟล็อป ที่สามารถเก็บข้อมูล และเปลี่ยนแปลงได้ตามวิธีการทางไฟฟ้า ถ้าเราปลดเอาพลังงานไฟฟ้าออก ข้อมูลที่เก็บไว้จะหายไปหมด (volatile) ซึ่งตรงข้ามกับรอม เราใช้แรมเก็บข้อมูล และมักจะใช้รอมเก็บคำสั่ง แรมมีขนาดความจุได้มากถึง ๑๖ กิโลบิต (๑๖,๓๘๔ บิต) และ ๖๔ กิโลบิต (๖๕,๕๓๖ บิต)
สิ่งประดิษฐ์ทางส่วนความจำรอง เพื่อขยายส่วนความจำหลักให้เก็บข้อมูลได้มากขึ้น จึงจำต้องมีสิ่งประดิษฐ์ทางส่วนความจำรอง ที่เรียกว่า แฟ้ม มวลข้อมูล (mass data files) หลายแบบเข้ามาช่วย เพื่อที่ จะสามารถค้นหาข้อมูลได้อย่างรวดเร็ว เช่น แถบแม่เหล็ก จานแม่เหล็ก ดรัมแม่เหล็ก (magnetic drum) |