วันจันทร์ที่ 4 พฤษภาคม พ.ศ. 2558

1.2 โครงสร้างและหน้าที่การทำงาน

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

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

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

หน้าที่การทำงาน

โครงสร้างและหน้าที่ของเครื่องคอมพิวเตอร์โดยพื้นฐานนั้น สามารถอธิบายได้ดัง รูปที่ 1.1 ซึ่งแสดงให้เห็นส่วนประกอบหลักสี่ส่วน คือ
  • การประมวลผลข้อมูล  (Data processing facility)
  • ส่วนเก็บบันทึกข้อมูล  (Data storage facility)
  • ส่วนการเคลื่อนย้ายข้อมูล  (Data movement apparatus)
  • ส่วนการควบคุม  (Control mechanism)

 
เครื่องคอมพิวเตอร์จะต้องมีความสามารถใน การประมวลผลข้อมูล  (data processing)  ข้อมูลอาจอยู่ในหลายรูปแบบ ทำให้ขอบเขตการประมวลผลข้อมูลนั้นกว้างขวางไปด้วย อย่างไรก็ตาม ในหัวข้อต่อ ๆ ไปจะอธิบายให้เห็นว่าวิธีการประมวลผลข้อมูล หรือชนิดของข้อมูลในระดับพื้นฐานนั้นมีเพียงไม่กี่อย่างเท่านั้น
 
เครื่องคอมพิวเตอร์จะต้องมีความสามารถใน การจัดเก็บข้อมูล  (data storage)  แม้ว่าเครื่องคอมพิวเตอร์จะทำการประมวลผลข้อมูลในทันทีคือ รับข้อมูลเข้ามา ทำการประมวลผล และส่งข้อมูลออกไปที่อุปกรณ์แสดงผลลัพธ์ อย่างน้อยเครื่องคอมพิวเตอร์จะต้องสามารถจัดเก็บข้อมูลไว้เป็นการชั่วคราว โดยเฉพาะข้อมูลที่กำลังทำงานอยู่ด้วยในขณะนั้น ดังนั้นหน้าที่พื้นฐานอีกประการหนึ่งคือ ความสามารถในการเก็บข้อมูลไว้ในระยะเวลาสั้น ๆ ส่วนหน้าที่ในการเก็บข้อมูลในระยะยาวนั้นก็มีความสำคัญไม่แพ้กัน แฟ้มข้อมูลถูกจัดเก็บไว้ในเครื่องคอมพิวเตอร์ก็เพื่อประโยชน์ในการนำข้อมูลมาใช้งานหรือแก้ไขในภายหลัง
 
เครื่องคอมพิวเตอร์จะต้องสามารถ เคลื่อนย้ายข้อมูล  (data movement) จากภายในเครื่อง ฯ ไปยัังหรือมาจากอุปกรณ์อื่นได้ สิ่งแวดล้อมในการทำงานของเครื่องคอมพิวเตอร์ประกอบด้วยอุปกรณ์ที่ทำหน้าที่เป็นทั้งแหล่งที่มาของข้อมูลหรือแหล่งจัดเก็บข้อมูล เมื่อข้อมูลถูกนำมาจากหรือส่งไปที่อุปกรณ์ที่เชื่อมโยงอยู่กับเครื่องคอมพิวเตอร์โดยตรง กระบวนการนี้จะถูกเรียกว่า ไอโอ  (Input/output or I/O)  ส่วนอุปกรณ์จะเรียกว่า อุปกรณ์ต่อพ่วง  (peripherals)  เมื่อข้อมูลถูกเคลื่อนย้ายในระยะทางไกลจากอุปกรณ์ที่อยู่ไกลออกไปจะเรียกว่า  การสื่อสารข้อมูล  (data communication)
 
ประการสุดท้าย เครื่องคอมพิวเตอร์จะต้องมีความสามารถใน การควบคุม  (control)  หน้าที่การทำงานทั้งสามอย่างนี้ การควบคุมมักจะถูกกระทำผ่านผู้ใช้งานเครื่องคอมพิวเตอร์โดยใช้ คำสั่ง (instruction)  ที่ถูกออกแบบมาเฉพาะ ภายในเครื่องคอมพิวเตอร์ หน่วยควบคุมการทำงาน  (control unit)  จะจัดการบริหารการใช้งานทรัพยากรต่าง ๆ และจัดการในด้านประสิทธิภาพสำหรับคำสั่งที่ได้รับต่อการทำงานของอุปกรณ์ที่ทำหน้าที่ต่าง ๆ ดังที่กล่าวมาแล้ว
 

การอธิบายในระดับทั่วไปนี้จะเห็นได้ว่า สิ่งที่เครื่องคอมพิวเตอร์จะต้องสามารถทำได้นั้นมีอยู่น้อยมาก รูปที่ 1.2 แสดงการทำงานทั้งสี่ประการของคอมพิวเตอร์คือ คอมพิวเตอร์ทำหน้าที่ในการเคลื่อนย้ายข้อมูล (รูปที่ 1.2a) จากอุปกรณ์ตัวหนึ่งหรือจากสายสื่อสารเส้นหนึ่งไปยังอุปกรณ์หรือสารสื่อสารอีกเส้นหนึ่ง คอมพิวเตอร์อาจทำหน้าที่เป็นอุปกรณ์จัดเก็บข้อมูล (รูปที่ 1.2b) ข้อมูลที่ถูกนำเข้ามาจากอุปกรณ์ภายนอก (การอ่านข้อมูล) หรือการส่งข้อมูลออกไปเก็บไว้ที่อุปกรณ์ภายนอก (การบันทึกข้อมูล) รูปสองรูปสุดท้ายแสดงการทำงานที่เกี่ยวข้องกับการประมวลผลข้อมูล (รูปที่ 1.2c) หรือทำการเปลี่ยนเส้นทางการเคลื่อนย้ายข้อมูลระหว่างอุปกรณ์บันทึกข้อมูลกับอุปกรณ์ภายนอก (รูปที่ 1.2d)
 

โครงสร้าง

รูปที่ 1.3 แสดงรูปร่างของเครื่องคอมพิวเตอร์แบบง่าย ๆ คอมพิวเตอร์มีการติดต่อกับสิ่งแวดล้อมด้วยวิธีการอย่างใดอย่างหนึ่ง โดยทั่วไปแล้วส่วนที่เชื่อมต่อกับสิ่งแวดล้อมภายนอกทั้งหมดถูกจัดให้เป็นอุปกรณ์ต่อพ่วง  (Peripherals)  หรือสายสื่อสาร  (Communication Lines)  ซึ่งจะให้กล่าวถึงความแตกต่างในลำดับต่อไป
 
หนังสือเล่มนี้ให้ความสำคัญกับโครงสร้างภายในเครื่องคอมพิวเตอร์ ซึ่งได้แสดงให้เห็นในระดับบนสุดของรูปที่ 1.4 องค์ประกอบที่สำคัญ 4 อย่าง คือ
  • หน่วยประมวลผลกลาง  (CPU : Central Processing Unit)
  • หน่วยความจำหลัก  (Main Memory)
  • ไอโอ (I/O)
  • การเชื่อมต่อภายในเครื่องคอมพิวเตอร์  (System Interconnection)
 
 
เครื่องคอมพิวเตอร์ในปัจจุบันอาจมีส่วนประกอบแต่ละชนิดมากกว่าหนึ่งตัว เช่นโดยทั่วไปเครื่องคอมพิวเตอร์จะมีหน่วยประมวลผลกลางเพียงตัวเดียว แต่ในหลายปีที่ผ่านมานี้มีการสร้างเครื่องคอมพิวเตอร์ที่มีหน่วยประมวลผลกลางหลายตัวทำงานอยู่ในเครื่องเดียวกันอุปกรณ์แต่ละชนิดจะได้รับการอธิบายเพิ่มเติมในส่วนที่สองของหนังสือเล่มนี้ อย่่างไรก็ตามอุปกรณ์ที่น่าสนใจมากที่สุดและมีความสลับซับซ้อนมากที่สุดคือ หน่วยประมวลผลกลาง  (CPU)  ซึ่งได้แสดงส่วนประกอบภายในไว้ในรูปที่ 1.5 ประกอบด้วยส่วนประกอบดังนี้
  • ส่วนควบคุม  (Control Unit) : ทำหน้าที่ควบคุมการทำงานของซีพียู
  • ส่วนเอแอลยู  (ALU : Arithmetic and Logic unit) : ทำหน้าที่ประมวลผลคำสั่งคณิตศาสตร์และคำสั่งทางตรรกะ
  • รีจิสเตอร์  (Registers) : เป็นหน่วยบันทึกข้อมูลภายในตัวซีพียู
  • ส่วนเชื่อมต่อภายในซีพียู  (CPU Interconnection) : กลไกที่ช่วยให้ส่วนประกอบทั้งสามส่วนสามารถสื่อสารระหว่างกันได้
 
 

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

1.3  ทำไมจึงต้องศึกษาเรื่องออร์กาไนเซชั่นและสถาปัตยกรรม

วารสาร  IEEE/ACM Computer Curricula 2001  ซึ่งจัดทำโดย  The Joint Task Force On Computing Curricula Of The IEEE (Institute of Electrical and Electronics Engineers) Computer Society and ACM (Association for Computing Machinery)  ได้เสนอชื่อวิชาสถาปัตยกรรมคอมพิวเตอร์ให้เป็นหนึ่งในวิชาที่ควรบรรจุไว้ในหลักสูตรการศึกษาสำหรับสาขาวิชา  Computer Science  และ  Computer Engineering  ซึ่งข้อความตอนหนึ่งในวารสารดังกล่าวได้กล่าวไว้ดังนี้
 
"เครื่องคอมพิวเตอร์เป็นหัวใจของการคำนวณ ถ้าปราศจากเครื่องคอมพิวเตอร์แล้ววิชาที่เกี่ยวข้องกับการคำนวณส่วนใหญ่ในปัจจุบัน ก็จะกลายเป็นเพียงส่วนหนึ่งของทฤษฎีทางคณิตศาสตร์ การที่จะเป็นผู้เชี่ยวชาญในการคำนวณแขนงใดในปัจจุบันก็ตาม ผู้นั้นจะต้องไม่มองว่าคอมพิวเตอร์เป็นเพียงกล่องดำที่มีความสามารถในการคำนวณได้อย่างน่าอัศจรรย์ นักศึกษาที่เกี่ยวข้องกับด้านการคำนวณ ควรที่จะค้นคว้าหาความรู้ความเข้าใจเกี่ยวกับองค์ประกอบของเครื่องคอมพิวเตอร์ในด้านหน้าที่การทำงาน คุณลักษณะ ประสิทธิภาพ และความสัมพันธ์ระหว่างกัน นักศึกษาควรที่จะมีความเข้าใจสถาปัตยกรรมคอมพิวเตอร์ เพื่อที่จะได้สามารถวางโครงสร้างของโปรแกรมให้สามารถประมวลผลได้อย่างมีประสิทธิภาพ สำหรับการเลือกระบบคอมพิวเตอร์ในการใช้งาน ก็ควรที่จะมีความเข้าใจในข้อดีข้อเสียขององค์ประกอบต่าง ๆ เช่น ความเร็วของซีพียู และขนาดของหน่วยความจำ เป็นต้น"
 
เหตุผลที่สนับสนุนในการศึกษาสถาปัตยกรรมคอมพิวเตอร์ ได้แก่
  1. สมมุติว่านักศึกษาได้สำเร็จการศึกษา และก้าวเข้าไปสู่การทำงานจริง และถูกตั้งคำถามเพื่อให้เลือกเครื่องคอมพิวเตอร์ที่มีราคาต่อประสิทธิภาพสูงสุดสำหรับการใช้งานในองค์กรขนาดใหญ่ ความเข้าใจในเรื่องการเพิ่มค่าใช้จ่ายในองค์ประกอบส่วนต่าง ๆ เช่น การใช้  Cache  ที่มีขนาดใหญ่ขึ้น หรือการใช้ซีพียูที่มีสัญญาณนาฬิกาสูงขึ้น จะมีส่วนสำคัญในการตัดสินใจเป็นอย่างยิ่ง
  2. ซีพียูจำนวนหนึ่งไม่ได้พัฒนาขึ้นมาสำหรับการใช้งานในเครื่องพีซีหรือเครื่องเซิร์ฟเวอร์ แต่เป็นเครื่องที่ทำงานเฉพาะด้าน ผู้ออกแบบอาจจะโปรแกรมคำสั่งด้วยภาษาซี ซึ่งสร้างขึ้นมาสำหรับระบบเรียลไทม์หรือระบบขนาดใหญ่ การแก้ไขปรับปรุงโปรแกรมอาจต้องอาศัยการใช้อุปกรณ์วิเคราะห์ตรรกะซึ่งแสดงความสัมพันธ์ระหว่าง สัญญาณอินเทอร์รัพท์จากตัวดักสัญญาณในเครื่องจักร และโค้ดภาษาเครื่องจักร (ซึ่งอธิบายไว้ในหนังสือเล่มนี้)
  3. นิยามที่ใช้ในสถาปัตยกรรมคอมพิวเตอร์สามารถนำไปประยุกต์ใช้ในวิชาอื่น ๆ เช่น ความรู้ในเรื่องที่คอมพิวเตอร์สนับสนุนสถาปัตยกรรมของภาษาสำหรับการโปรแกรม และสิ่งอำนวยความสะดวกในระบบปฏิบัติการจะช่วยเพิ่มความเข้าใจซึ่งกันและกัน

1.4 แนวทางการนำเสนอของหนังสือเล่มนี้

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








ไม่มีความคิดเห็น:

แสดงความคิดเห็น