บทที่ 3 ระบบบัส


 ระบบบัส

     บัส หมายถึง ช่องทางการขนถ่ายข้อมูลจากอุปกรณ์หนึ่งไปยังอุปกรณ์หนึ่งของระบบคอมพิวเตอร์ เพราะการทำงานของระบบคอมพิวเตอร์ CPU จะต้องอ่านเอาคำสั่งหรือโปรแกรมจากหน่วยความจำ มาตีความและทำตามคำสั่งนั้นๆ ซึ่งในบางครั้งจะต้องอ่านข้อมูลจากอุปกรณ์อื่นๆ เพื่อใช้ประกอบในการทำงาน หรือใช้ในการประมวลผลด้วยผลลัพธ์ของการประมวลผล ก็ต้องส่งไปแสดงผลที่ยังจอภาพ หรือเครื่องพิมพ์หรืออุปกรณ์อื่นๆ
     ระบบ BUS ทางกายภาพ คือ สายทองแดงที่วางตัวอยู่บนแผงวงจรของเครื่องคอมพิวเตอร์ ที่เชื่อมโยงกับอุปกรณ์ต่างๆ ความกว้างของระบบบัส จะนับขนาดข้อมูลที่วิ่งอยู่โดยจะมีหน่วยเป็น บิต (BIT) บนเครื่องไมโครคอมพิวเตอร์ บัสจะมีความกว้างหลายขนาด ขึ้นอยู่กับรุ่นของเครื่องพีซี เช่น บัสขนาด 8 บิต 16 บิต และ 32 บิต โดยปัจจุบันจะกว้าง 16 บิต บัสยิ่งกว้างจะทำให้การส่งถ่ายข้อมูลจะทำได้ครั้งละมากๆ จะมีผลทำให้คอมพิวเตอร์เครื่องนั้นทำงานได้เร็วตามไปด้วย
     ระบบบัส ขนาด 16 บิต คือ ระบบการส่งถ่ายข้อมูลพร้อมๆกันในคราวเดียวกันได้ถึง 16 บิต และบัส 32 บิต ย่อมเร็วกว่าบัส 16 บิต ในระบบบัสที่ส่งข้อมูลได้จำนวนเท่าๆกัน นั้นก็ยังมีบางอย่างที่ทำให้การส่งข้อมูลมีความแตกต่างกัน ดังที่เราจะเห็นว่าเครื่องพีซีของเราในปัจจุบันจะมีระบบบัสอยู่หลายขนาด เช่น ISA, EISA, MCA, VLPCI เป็นต้น
     ทั้ง ISA, PCI, AGP, VLPCI ล้วนแต่เป็น CARD เพิ่มขยาย (EXPANSION CARD) ซึ่งนำมาต่อกับระบบบัสเพิ่มขยาย (EXPANSION BUS) ที่จะช่วยเพิ่มประสิทธิภาพ และช่วยเพิ่มขีดความสามารถให้กับคอมพิวเตอร์ระบบบัสเพิ่มขยายนั้น จะช่วยให้เราสามารถปรับแต่ง หรือเพิ่มขยายความสามารถของระบบ โดยผ่านทาง PLUG-IN BOARD หรือเรียกว่า เป็น CARD เพิ่มขยาย EXPANSION CARD เช่นเมื่อต้องการให้เครื่อง COMPUTER มีเสียง อยากให้คอมพิวเตอร์เล่นเพลงได้ก็ต้องหาซื้อ SOUNDCARD และลำโพงมาต่อเพิ่ม โดยแค่นำมา PLUG ลงใน EXPANSION SLIT บน MAINBOARD และทำการ CONFIG ก็สามารถใช้งานได้ โดยไม่จำเป็นต้องเดินสายไฟ รื้อ MAINBOARD ให้ยุ่งยาก
     ระบบบัสเพิ่มขยายนี้มีใช้มานานแล้ว โดยสมัยแรกๆที่ทำการลดขนาดเมนเฟรม เป็น MINICOMPUTER บริษัท DIGITAL EQUIPMENT CORPORATION หรือที่รู้จักกันในนาม DEC ได้วางตลาด MINICOMPUTER ลักษณะ BUS-ORIENTED DESIGN ซึ่งประกอบไปด้วย แผงวงจรย่อยๆบน BOARD นำมาประกอบรวมกัน ต่อมา เครื่องจักรที่ได้รับยกย่องว่าเป็น PC (PERSONAL COMPUTER) เครื่องแรกก็ได้ถือกำเนิดขึ้น เป็นผลงานของ ED ROBERTS โดยให้ชื่อว่า ALTAIR (อัลแตร์) ซึ่งลักษณะของเครื่องนี้ จะเป็นลักษณะ SINGLE BOARD MACHINE กล่าวคือมีเพียง BOARD เปล่าๆ ซึ่งมี SLOT เพิ่มขยายให้จำนวนหนึ่ง และตัว CPU เองรวมทั้งหน่วยความจำหลัก (MAIN MEMORY/RAM) ก็อยู่บน BOARD เพิ่มขยายที่นำมา PLUG บน SLOT นั้นๆนั่นเอง โดยระบบบัสที่ใช้เรียกว่า S-100 หรือ ALTAIR BUS (IEEE 696) ซึ่งก็ใช้เป็นมาตรฐานในวงการนี้มานานหลายปี แต่ก็ใช่ว่าเครื่องทุกๆเครื่องจะต้องใช้ ALTAIR BUS นี้ เพราะทาง APPLE เองก็ออกมาตรฐานของตัวเองขึ้นมา เรียกว่า APPLE BUS และทาง IBM เอง ก็ได้กำหนดมาตรฐาน PC BUS ขึ้นมาพร้อมๆกับการ IBM PC ต้นแบบ
     การทำงานของระบบคอมพิวเตอร์ ถ้าเปรียบเทียบกับระบบโครงสร้างร่างกายของมนุษย์เราน่าจะเปรียบเทียบได้ง่ายและเห็นภาพชัดเจน เพราะอย่างน้อยคนเราส่วนใหญ่คงจะพอรู้ระบบโครงสร้างการทำงานของร่างกายของเราเองอยู่บ้างไม่มากก็น้อย

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

บัส คือ ทางเดิน หรือ ช่องทางระหว่างอุปกรณ์ต่างๆที่ใช้ในการติดต่อสื่อสารภายในคอมพิวเตอร์ บัสที่ถูกเรียกเฉพาะตามวัตถุประสงค์การใช้งานมีตัวอย่างดังนี้

 • โพรเซสเซอร์ บัส  Processor Bus
 • ระบบบัส System Bus
 • Front side or Gunning Transceiver Logic plus (GTL+) Bus
 • หน่วยความจำ บัส Main Memory Bus
 • โฮสต์ บัส Host Bus
 • บัสเฉพาะที่ Local Bus
 • Internal Bus
 • External Bus

ส่วนประกอบของ ระบบบัส มีดังนี้

 •แอดแดรส บัส  (Address Bus)
 •ดาต้า บัส (Data Bus)
 •คอนโทรล บัส (Control Bus)





โครงสร้างของบัส

แอดเดรสบัส (Address Bus) ใช้สำหรับ


 • ถ่ายโอนต้นทาง (Source) และปลายทาง (Distination) ของการส่งข้อมูลบน Data Bus
 • ชี้ตำแหน่งของหน่วยความจำที่ระบุโดย Microprocessor, Bus Masters หรือ Direct Memory Access (DMA) Controller
อักษรที่ใช้อ้างถึงแอดเดรสบัส คือ A เช่น A๐-A35 เป็นต้น

ขนาดของแอดเดรสบัสแยกตามชนิดของโพรเซสเซอร์

โพรเซสเซอร์
จำนวนเส้นของแอดเดรสบัส
อ้างหน่วยความจำสูงสุด
80286
24
16MB
80386 และ 80486
32
4GB
Pentium
32
4GB
Pentium Pro
36
64GB
Pentium II และ III
36
64GB
Pentium II Xeon and II Xeon
36
64GB

ดาต้าบัส (Data Bus) คือทางเดินสำหรับรับ-ส่งข้อมูลระหว่างโพรเซสเซอร์ (Processor) กับหน่วยความจำ (Memory) หรือ หน่วยความจำกับอุปกรณ์อินพุทเอาท์พุท (I/O)

 อักษรที่ใช้อ้างถึงดาต้าบัส คือ D เช่น D-D63 เป็นต้น

ขนาดของแอดเดรสบัสแยกตามชนิดของโพรเซสเซอร์

โพรเซสเซอร์
ขนาดของดาต้าบัส
80286
16 บิต
80386 และ 80486
32 บิต
Pentium และ Pentium Pro
64 บิต
Pentium II และ III
64 บิต
Pentium II Xeon และ III Xeon
64 บิต

คอนโทรลบัส (Control Bus) คือทางเดินสำหรับสัญญาณควบคุมการทำงานของส่วนต่างๆระหว่างโพรเซสเซอร์กับหน่วยความจำและอุปกรณ์อินพุทเอาท์พุทตัวอย่าง เช่น
  W/R - Write/Read
  IRQ - Interrupt Requests
  BCLK - Bus Clock
  DRQ - DMA Requests

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

จะพบว่าบัสแบ่งได้เป็น 4 ส่วนใหญ่ๆดังนี้
  
1.สายไฟฟ้า (POWER LINE) จะให้พลังไฟฟ้ากับการ์ดขยายต่างๆ
2. สายควบคุม (CONTROL LINE) ใช้สำหรับส่งผ่านสัญญาณเวลา (TIMING SIGNS) จาก นาฬิกาขอระบบ และส่งสัญญาณอินเตอร์รัพต์ 
3. สายแอดเดรส (ADDRESS LINE) ข้อมูลใดๆที่จะถูกส่งผ่านไป แอดเดรสเป้าหมายจะถูกส่งมาตามสายข้อมูลและบอกให้ตำแหน่งรับข้อมูล (แอดเดรส) รู้ว่าจะมีข้อมูลบางอย่างพร้อมที่จะส่งมาให้ 

4. สายข้อมูล (DATA LINE) ไมโครเมตรจะตรวจสอบว่ามีสัญญาณแสดงความพร้อมหรือยัง (บนสาย I/O CHANNEL READY) เมื่อทุกอย่างเป็นไปด้วยดี ข้อมูลก็จะถูกส่งผ่านไปตามสายข้อมูล จำนวนสายที่ระบุถึงแอดเดรสของบัส หมายถึง จำนวนของหน่วยความจำที่อ้างแอดเดรสได้ทั้งหมด เช่น สายแอดเดรส 20 สาย สามารถใช้หน่วยความจำได้ 1 เมกะไบต์ จำนวนของสายบัสจะหมายถึงบัสข้อมูล ซึ่งก็คือข้อมูลทั้งหมดที่ส่งผ่านไปในบัสตามกฎที่ตั้งไว้ ความเร็วในการทำงานที่เหมาะสมจะเป็นไปได้ก็ต่อเมื่อ จำนวนสายข้อมูลเพียงพอกับจำนวนสายส่งข้อมูลของไมโครโพรเซสเซอร์ จำนวนสายส่งข้อมูลมักจะระบุถึงคุณสมบัติของบัสในเครื่องพีซีนั้นๆ เช่น บัส 16 บิต หมายถึง บัสที่ใช้สายข้อมูล 16 สายนั่นเอง

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

1.3.       ประมวลผลแบบเรียงลำดับทีละคำสั่ง


แสดงส่วนประกอบหลักภายในคอมพิวเตอร์  ที่มา(STILING, W.1996)

            จะเห็นว่าซีพียูมีการแลกเปลี่ยนข้อมูลกับหน่วยความจำ โดยในซีพียูจะมีรีจิสเตอร์ 2 ตัว คือ MAR ซึ่งใช้ระบุตำแหน่งในหน่วยความจำสำหรับการอ่านหรือเขียนครั้งถัดไป และ MBR จะเก็บข้อมูลที่จะบันทึกลงในหน่วยความจำหรือรับข้อมูลที่อ่านจากหน่วยความจำ ส่วนอินพุต/เอาท์พุต AR ใช้ในการกำหนดตำแหน่ง I/O Device และI/O BR จะถูกใช้สำหรับแลกเปลี่ยนข้อมูลระหว่าง โมดูลไอโอกับซีพียู
ในหน่วยความจำประกอบด้วยกลุ่มของหน่วยความจำ ซึ่งถูกกำหนดโดยตัวเลขที่แสดงตำแหน่งเรียงตามลำดับ แต่ละตำแหน่งหน่วยความจำนั้นจะเก็บข้อมูลเลขฐานสองซึ่งสามารถถูกแปลความหมายได้ ทั้งที่เป็นข้อมูลและเป็นคำสั่ง ส่วนโมดูลไอโอก็จะขนถ่ายข้อมูลอุปกรณ์ภายนอกเข้าไปใน ซีพียู และหน่วยความจำ โดยจะมีที่เก็บข้อมูลชั่วคราว สำหรับเก็บข้อมูลเอาไว้ก่อนจนกว่าจะสามารถส่งข้อมูลนั้นออกไปได้
การเคลื่อนย้ายข้อมูลภายในซีพียูจากรีจิสเตอร์หนึ่งไปอีกรีจิสเตอร์หนึ่ง การอ่าน/เขียนหน่วยความจำหรือการถ่ายโอนข้อมูล จากอุปกรณ์อินพุต/เอาท์พุต เข้าไปในซีพียู และหน่วยความจำ ทั้งหมดนี้จะต้องอาศัยเส้นทางในการเคลื่อนย้ายซึ่งเส้นทางเหล่านั้นเรียกว่า บัส นั่นเอง
2. รีจิสเตอร์และสแต็ก
            เป็นเครื่องมือสำหรับการทำงานร่วมกับโปรเซสเซอร์ รีจิสเตอร์เป็นเสมือนหน่วยความจำย่อยๆ ส่วนหนึ่งที่มีวัตถุประสงค์ในการใช้งานเฉพาะเป็นพิเศษ มีลักษณะคล้ายกับหน่วยความจำหลักของเครื่องคอมพิวเตอร์ คือเป็นที่เก็บข้อมูลที่โปรเซสเซอร์สามารถนำไปใช้งานได้แต่ต่างกันตรงที่หน่วยความจำหลักนั้นมีขนาดใหญ่กว่าและอยู่ภายนอกโปรเซสเซอร์ ในขณะที่รีจิสเตอร์เป็นส่วนหนึ่งของโปรเซสเซอร์ และรีจิสเตอร์มีหลายชนิด แยกแยะได้ตามลักษณะการใช้งาน
            รีจิสเตอร์ของโปรเซสเซอร์แต่ละรุ่นจะมีจำนวนและขนาดไม่เท่ากัน แต่จะพูดถึงโปรเซสเซอร์ 8088 เป็นตัวอย่าง มีรีจิสเตอร์ทั้งหมด 14 ตัว แต่ละตัวสามารถเก็บข้อมูลขนาด 16 บิต โปรเซสเซอร์จะใช้รีจิสเตอร์ในการคำนวณและเก็บข้อมูลต่างๆ รีจิสเตอร์กลุ่มแรกเป็นรีจิสเตอร์ประเภทใช้งานทั่วไปสำหรับคำนวณ ประกอบด้วยรีจิสเตอร์ 4 ตัว แต่ละตัวถูกใช้เป็นตัวเก็บค่าชั่วคราวในการคำนวณถึงแม้ว่ารีจิสเตอร์เหล่านี้จะมีขนาด 16 บิต แต่ก็สามารถแบ่งใช้ทีละ 8 บิตได้ เรียกว่า บิตสูง รีจิสเตอร์ชนิดนี้ถูกใช้กันมากในการทำงาน[M1] ภายในเครื่องคอมพิวเตอร์
            รีจิสเตอร์กลุ่มต่อไปเรียกว่า รีจิสเตอร์แบบเซกแมน เป็นตัวช่วยโปรเซสเซอร์ในการหาหน่วยความจำที่มีขนาดใหญ่ได้ไม่เกิน 64K ไบต์ ประกอบด้วยรีจิสเตอร์ 4 ตัว ได้แก่ CSเป็นตัวชี้ตำแหน่งของโปรแกรมในหน่วยความจำ  DSเป็นตำแหน่งของข้อมูลที่ใช้ในโปรแกรม  ESเป็นส่วนเพิ่มเติมของDS SSบอกที่ตั้งของสแต็กที่ใช้ในคอมพิวเตอร์
            รีจิสเตอร์อีกกลุ่ม เป็นกลุ่มที่ใช้ในการอ้างถึงตำแหน่งพิเศษในหน่วยความจำ ประกอบด้วยรีจิสเตอร์ทั้งหมด 5 ตัว แต่ละตัวถูกออกแบบเพื่องานเฉพาะอย่าง ได้แก่ IPหรือ PC เป็นตัวบอกตำแหน่งคำสั่งในโปรแกรม ที่จะทำการประมวลผลให้แก่โปรเซสเซอร์ SPและBPใช้ในการเก็บลำดับต่างๆของการทำงานไว้ในสแต็ก  SIและDI ใช้ช่วยโปรแกรมในการเคลื่อนย้ายข้อมูลจำนวนมากจากที่หนึ่งไปยังอีกที่หนึ่ง
            รีจิสเตอร์กลุ่มสุดท้ายเรียกว่า แฟล็กรีจิสเตอร์ เป็นตัวเก็บผลของการทำงานตามเงื่อนไขต่างๆซึ่งอธิบายไปแล้วในหัวข้อก่อนห้า ทำหน้าที่เป็นตัวบอกถึงสถานะแก่โปรแกรม เช่น บอกผลของการคำนวณ

การประมวลผลคำสั่ง
                        1.วัฏจักรคำสั่ง
            หน้าที่พื้นฐานของคอมพิวเตอร์อย่างหนึ่งก็คือการปฏิบัติการกับโปรแกรม หรือการประมวลผลโปรแกรม การที่โปรแกรมจะถูกประมวลผลได้นั้น คำสั่งต่างๆและข้อมูลทั้งหมดจะถูกเก็บอยู่ในหน่วยความจำมาแปลความหายอีก ทำเช่นนี้ไปเรื่อยๆ จนกว่าจะหมดคำสั่งหรือปฏิบัติการกับโปรแกรมได้ครบสมบูรณ์ วัฏจักรของคำสั่งอย่างง่ายประกอบด้วย 2 ขั้นตอน คือ
            1.1. ขั้นตอน Fetch cycle คือกระบวนการที่หน่วยควบคุมนำคำสั่งหรืออ่านคำสั่ง(ที่อยู่ในภาษาเครื่องแล้ว)จากนหน่วยความจำหลักหรือแคช เข้าสู่รีจิสเตอร์ ในซีพียูเพื่อเตรียมส่งไปประมวลผลต่อขณะเดียวกันหน่วยควบคุมจะทำการแปลงรหัสคำสั่งเป็นการแปลความหมายของคำสั่งเพื่อส่งไปยัง หน่วยคำนวณและเปรียบเทียบ
            1.2. ขั้นตอน Execute cycle คือกระบวนการที่หน่วยคำนวณและเปรียบเทียบ(ALU) ทำการคำนวณและเปรียบเทียบตามคำสั่งที่ได้แปลความหมายแล้วและผลลัพธ์จากการปฏิบัติการของหน่วยคำนวณและเปรียบเทียบ จะส่งไปเก็บไว้ที่หน่วยความจำหลักในตำแหน่งที่ว่างหรืออาจเก็บไว้ในรีจิสเตอร์ AC


แสดงวัฏจักรอย่างง่าย ที่มา (Stlling, W1996)

           ขณะเริ่มต้นซีพียูจะทำการดึงคำสั่งจากหน่วยความจำในตำแหน่งที่อ้างถึง โดยมีรีจิสเตอร์ชื่อ PC จะทำหน้าที่เก็บลำดับของตำแหน่งที่อยู่ของโปรแกรมหรือคำสั่งที่จะถูกดึงเข้ามาตามลำดับ ดังนั้นค่าตำแหน่งที่เก็บใน PC จะเพิ่มค่าทุกครั้งหลักจากที่มีการดึงคำสั่งต่อไปตามลำดับ
            การดึงคำสั่งจากหน่วยความจำหลักมานั้น จะเก็บในรีจิสเตอร์ชื่อ IR(รีจิสเตอร์คำสั่ง)  โปรเซสเซอร์จะแปลความหมายและปฏิบัติตามคำสั่ง โดยทั่วไปจะมี  4 ขั้นตอน ดังนี้
            1. ซีพียูกับหน่วยความจำ เป็นการขนถ่ายข้อมูลจากซีพียูลงไปในหน่วยความจำ หรือจาก หน่วยความจำลงไปในซีพียู
            2. ซีพียูกับอินพุต/เอาท์พุต เป็นการถ่ายข้อมูลเข้า/ออก จากซีพียูกับอุปกรณ์อินพุต/เอาท์พุต
            3. การประมวลผลข้อมูล ซีพียูจะดำเนินการคำนวณหรือดำเนินการทางตรรกะกับข้อมูล
            4. การควบคุม เช่น การควบคุมให้การประมวลผลคำสั่งเป็นไปตามลำดับ
การประมวลผลโปรแกรมโดยมีส่วนของหน่วยความจำและรีจิสเตอร์ ข้อมูลที่เก็บเป็นเลขฐานสิบหก เป็นการบวกจำนวนในตำแหน่งหน่วยความจำที่ 940 กับตำแหน่งที่ 941 มีลำดับการทำงานดังนี้



ขั้นที่ 1  คำสั่งถูกเก็บไว้ในตำแหน่งหน่วยความจำที่ 300 และรีจิสเตอร์ PC ก็จะเก็บค่า 300 เช่นเดียวกัน ดังนั้นการทำขั้นตอนนี้จึงเป็นการดึงคำสั่งในตำแหน่งที่ระบุใน PC คือตำแหน่ง 300 ในหน่วยความจำมาลง IR
ขั้นที่ 2 คำสั่งใน IR มีทั้งหมด 16 บิต ใน 4 บิตแรกจะออปโค้ด คำสั่ง 0001 คือ คำสั่งโหลดข้อมูลจากหน่วยความจำเข้ารีจีสเตอร์ AC สำหรับ 12 บิตหลังเป็นตำแหน่งหน่วยความจำ 940H ที่เก็บข้อมูลที่ออปโค้ดต้องการ ดังนั้น 0003H จึงถูกโหลดลงไปใน AC
ขั้นที่ 3 ค่าใน PC จะเพิ่มขึ้นอีกเป็น 301H ดังนั้นคำสั่งต่อไปในตำแหน่ง 302H จึงถูก ดึงเข้ารีจิสเตอร์ IR
ขั้นที่ 4 ออปโค้ด 5H คือ 0101 ให้ทำการบวกค่าในรีจิสเตอร์ AC กับข้อมูลในตำแหน่ง 941H และเก็บผลลัพธ์ใน AC
ขั้นที่ 5 ค่าใน PC จะเพิ่มขึ้นอีกเป็น 302H ดังนั้นคำสั่งต่อไปในตำแหน่ง 302H จึงถูกดึงเข้ารีจิสเตอร์ IR
ขั้นที่ 6 นำค่าใน AC ไปเก็บในตำแหน่งหน่วยความจำที่ 941H


แสดงไดอะแกรมสถานะของวัฏจักรของคำสั่ง

ไดอะแกรมสถานะของวัฏจักรของคำสั่ง โดยเขียนในรูปของไดอะแกรมสถานะ อธิบายได้ดังนี้
1. Instruction address calculation คือแอดแดรสของคำสั่งถัดไปที่จะ execute ปกตินั้นจะบวกแอดเดรสด้วยเลขคงที่ เช่น  16 บิต จะบวกด้วย 1 กับแอดเดรสก่อน ถ้าเป็น 8 บิต จะบวกด้วยสองกับ แอดเดรสก่อน
2. Instruction fetch  คือการอ่านคำสั่งจากหน่วยความจำลงไปในโปรเซสเซอร์

3. Instruction Operation decoding จะทำการวิเคราะห์ประเภทของการดำเนินการ
4. Operand address calculation หาตำแหน่งของตัวดำเนินการ
5. Operand fetch จะทำการดึงค่าของตัวดำเนินการจากหน่วยความจำหรืออ่านจาก I/O
6. Data Operation ดำเนินการกับข้อมูล
7. Operand store เก็บผลลัพธ์ลงในหน่วยความจำหรือให้ออกทาง I/O

2. อินเทอร์รัพท์
            ลักษณะหนึ่งที่ทำให้คอมพิวเตอร์ต่างจากอุปกรณ์เครื่องจักรต่างๆที่มีใช้ในปัจจุบัน คือ คอมพิวเตอร์สามารถตอบสนองงานที่ไม่ได้คาดเดาล่วงหน้าว่าจะเกิดขึ้นได้ ลักษณะของความสามารถนี้เรียกว่า การอินเทอร์รัพท์  คือการจัดการที่ทำให้คอมพิวเตอร์หยุดพักงานที่กำลังกระทำอยู่ตอนนั้นชั่วคราวแล้วสับเปลี่ยนไปทำงานอื่นซึ่งขึ้นอยู่กับเหตุการณ์ที่เป็นสาเหตุให้เกิดการอินเทอร์รัพท์
            โปรเซสเซอร์ของเครื่องคอมพิวเตอร์ สามารถหยุดพักการทำงานหนึ่งไว้ในขณะที่ทำการประมวลผลงานอื่นที่แทรกเข้ามา โดยการใช้สแต็กของโปรเซสเซอร์ ซึ่งได้อธิบายไปแล้ว เมื่อมีอินเทอร์รัพท์เกิดขึ้น ข้อมูลที่เกี่ยวกับการทำงานของโปรเซสเซอร์จะสามารถกลับมาทำงานที่จุดเดิมต่อไปได้อย่างถูกต้อง  จึงถือว่าสแต็กเป็นส่วนที่จำเป็นที่ขาดม่ได้ในการทำงานที่มีอินเทอร์รัพท์
            อุปกรณ์แต่ละส่วนในเครื่องคอมพิวเตอร์ที่ใช้งานร่วมกับโปรเซสเซอร์จะมีหมายเลขอินเทอร์รัพท์เฉพาะตัว โดยปกติอินเทอร์รัพท์อาจจะเกิดขึ้นด้วยเหตุการณ์ 4 อย่าง ด้วยกัน คือ
1. โปรแกรม ขณะที่คอมพิวเตอร์ทำการประมวลผลโปรแกรม  อาจเกิดการผิดพลาดขึ้น
2. ตัวกำเนิดเวลา คือสัญญาณนาฬิกาภายในเครื่องพีซี ซึ่งใช้ในการควบคุมจังหวะการทำงาน จะส่งอินเทอร์รัพท์ไปยังโปรเซสเซอร์ตลอดเวลาวินาทีละหลายสิบครั้ง
3. อินพุต/เอาท์พุต เกิดจากแผงควบคุมอินพุต/เอาท์พุต ขณะจะใช้งานปกติ ส่งสัญญาณอินเทอร์รัพท์เข้ามา เป็นการขออนุญาตหรือเกิดจากความผิดปกติของอินพุต/เอาท์พุตก็จะมีสัญญาณอินเทอร์รัพท์เข้ามาเช่นกัน
4. ฮาร์ดแวร์ เกิดจากความขัดข้องหรือล้มเหลวของฮาร์ดแวร์ หรือเกิดจากพาริตี้ของแรมผิดพลาด แต่ละหมายเลขที่ใช้งานจะมีโปรแกรมควบคุม ว่าเมื่อไหร่จะใช้อินเทอร์รัพท์หมายเลขใด โปรแกรมนี้มีชื่อเรียกว่า ตัวจัดการอินเทอร์รัพท์ ตำแหน่งของตัวจัดการอินเทอร์รัพท์แต่ละตัวจะถูกเก็บไว้ในตารางพิเศษที่อยู่ตอนต้นของหน่วยความจำเมื่อมีอินเทอร์รัพท์เกิดขึ้นก็จะใช้หมายเลขอินเทอร์รัพท์หาตัวจัดการ อินเทอร์รัพท์ที่เหมาะสมจากตารางเพื่อใช้ในการทำงานต่อไปก่อนที่ตัวจัดการที่ว่าวนี้จะเริ่มทำงาน ก็จะมีการเก็บข้อมูลของงานที่กำลังทำค้างอยู่ก่อนแล้วจึงเปลี่ยนไปทำงานตามที่เกิดอินเทอร์รัพท์ขึ้น
            ตัวจัดการอินเทอร์รัพท์ โดยทั่วไปจะอยู่ในโปรแกรมรอมไบออสหรือเป็นส่วนหนึ่งของระบบปฏิบัติการ แต่ไม่ได้มีข้อจำกัดว่า เราจะใช้อินเทอร์รัพท์ได้เฉพาะกับโปรแกรมของระบบเท่านั้น ในโปรแกรมประยุกต์ต่างๆก็สามารถสร้างตัวจัดการอินเทอร์รัพท์ขึ้นมาใช้เองได้
            อินเทอร์รัพท์เป็นกลไกที่ใช้ในการทำงานของเครื่องคอมพิวเตอร์ เครื่องพีซีในปัจจุบันออกแบบให้ใช้อินเทอร์รัพท์ได้ซึ่งเรียกว่า Interrupt driven การทำงานระหว่างอุปกรณ์ต่างๆกับคอมพิวเตอร์ นั้นก็มีการใช้อินเทอร์รัพท์เป็นตัวกลางสั่งงาน
            การอินเทอร์รัพท์จะช่วยในการประมวลผลให้มีประสิทธิภาพมากขึ้น เช่น เมื่อมีอุปกรณ์จากภายนอกที่ทำงานช้ากว่าหน่วยประมวลผล สมมุติว่าเรามีการส่งข้อมูลไปยังเครื่องพิมพ์ หน่วยประมวลผลจะต้องหยุดรอจนกระทั่งเครื่องพิมพ์ทำงานเสร็จ เวลาที่ต้องสูญเสียการรอคอยนี้ อาจจะสามารถทำงานได้เป็นร้อยๆพันๆคำสั่ง
            การเกิดอินเทอร์รัพท์หลายๆครั้งต่อเนื่องกันหรือเกิดอินเทอร์รัพท์ซ้อนอินเทอร์รัพท์ก่อนหน้าที่กำลังดำเนินการอยู่ สามารถเกิดได้ การส่งข้อมูลภายนอกก็จะสร้างอินเทอร์รัพท์ตลอดขณะที่มีข้อมูลเข้ามา อินเทอร์รัพท์ตัวใดจะเกิดก่อนหลังจะขึ้นอยู่กับความสำคัญสำหรับการกำหนดความสำคัญของอินเทอร์รัพท์ และอนุญาตให้มีการอินเทอร์รัพท์

โครงสร้างบัส


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


แสดงโครงสร้างของบัสแบบเดิม(ก) และแบบที่ใช้ในปัจจุบัน(ข)



คุณลักษณะของบัส

            อุปกรณ์อินพุต/เอาท์พุตแต่ละอย่างมีการเชื่อมต่อเข้ากับบัส โดยผ่านตัวควบคุมที่เรียกว่า คอนโทรลเลอร์ และมีชื่อแตกต่างกัน บัสแต่ละแบบจะมีคุณสมบัติไม่เหมือนกัน ขึ้นอยู่กับพารามิเตอร์หลักๆที่เป็นพื้นฐาน ดังต่อไปนี้
            1. ชนิดของบัส
            สายไฟที่ใช้ในบัส มีสองแบบ คือแบบที่สายบัสแต่ละเส้นทำหน้าที่อย่างเดียว ได้แก่พอร์ตที่ใช้งานเฉพาะ อีกแบบหนึ่งเป็นแบบที่สายบัสบางสายสามารถทำหน้าที่ได้มากกว่าหนึ่งอย่าง ส่วน Dedicated นั่นแต่ละบัสจะติดต่อกับกลุ่มของโมดูลไอโอทั้งหมด ข้อดีสำหรับบัสนี้มีรับข้อมูลได้ปริมาณสูง ข้อเสียคือเป็นการเพิ่มขนาดและราคาของระบบ
            2. ทฤษฎีการควบคุมการทำงาน
            การออกแบบบัสมีทฤษฎีการควบคุมการทำงานของบัส 2 แบบ คือ แบบศูนย์รวมการควบคุมการทำงานของบัส 2 แบบ คือ ในแบบรวมศูนย์การควบคุมนั้น ส่วนควบคุมอาจเป็นโมดูลที่แยกออกมาหรือส่วนหนึ่งขอซีพียู  ส่วนแบบการกระจายควบคุมจะไม่มีตัวควบคุมเป็นศูนย์กลาง แต่ละโมดูลจะประกอบด้วยตัวควบคุมของภายในโมดูลเอง
            3. เวลา
            การเกิดหลายๆเหตุการณ์ขึ้นพร้อมๆกันบนบัส โดยใช้สัญญาณนาฬิกา เป็นตัวให้จังหวะการทำงานของเหตุการณ์ต่างๆ  เหตุการณ์ต่างๆก็จะดำเนินไปพร้อมกัน เรียกการทำงานแบบนี้ว่า การทำงานแบบเข้าจังหวะ ในบัสจะมีสายสัญญาณนาฬิกาอยู่ 1 เส้น ซึ่งสัญญาณนาฬิกาจะสร้างความถี่สลับค่าไปมาระหว่าง 0 กับ 1 เรียกอีกอย่างหนึ่งว่า clock cycle หรือ bus cycle ซึ่งสัญญาณนาฬิกาจะเป็นตัวกำหนดความเร็วของบัสด้วย
นอกจากการทำงานแบบเข้าจังหวะตามสัญญาณนาฬิกาแล้ว ยังมีการทำงานอีกแบบหนึ่งคือ การทำงานแบบไม่เข้าจังหวะ คือการเกิดเหตุการณ์หนึ่งบนบัส จะขึ้นอยู่กับเหตุการณ์ที่เกิดขึ้นก่อนหน้านั้น
            การทำงานแบบเข้าจังหวะสามารถที่จะจัดการและตรวจสอบได้ง่าย อย่างไรก็ตามยังมีความยืดหยุ่นน้อยกว่าการทำงานแบบไม่เข้าจังหวะ เนื่องจากว่าอุปกรณ์ทั้งหมดบนบัสจะต้องทำงานร่วมกันไปพร้อมกับสัญญาณนาฬิกาของบัส ส่วนในการทำงานแบบไม่เข้าจังหวะ จะมีรูปแบบเป็นการรวมฮาร์ดแวร์ที่ทำงานช้าและเร็วเข้าไปอยู่ในบัสเดียวกันได้ รวมทั้งการนำเทคโนโลยีทั้งเก่าและใหม่มาร่วมกันใช้งานบนบัสได้
            4. ความกว้างของบัส
            คล้ายกับความกว้างของถนน ถ้าบัสกว้าง ข้อมูลก็วิ่งได้จำนวนมากในหนึ่งครั้ง สำหรับหน่วยวัดความกว้างบัสนั้นวัดในหน่วย บิตซึ่ง 8 บิต เท่ากับ 1 ไบต์ หรือ 1 ตัวอักษร
            5. ชนิดของการส่งถ่ายข้อมูล
            ในการออกแบบบัสสามารถให้มีการจัดการกับข้อมูลหรือการส่งถ่ายข้อมูลได้หลายวิธี ได้แก่
            Write คือการเก็บการบันทึก
            Read คือการอ่านข้อมูลลงสู่บัส
            Read-modify-write คือ read ก่อน ตามด้วย write ลงที่ตำแหน่งเดียวกันกับ read ทันที
            Read-after-write คือการ write ตาทันทีที่การ read ผ่านไปในตำแหน่งเดียวกัน
            Block คือการกระทำกับกลุ่มของข้อมูล


อ้างอิง
Sanambin (2005) ความรู้เรื่องบัส [Online] Avsilable
http:// se-sd.net/sansmbin/h-bus.htmal
Stailling,W.(1996). Computer Organization and Architecture (5 th ed) USA:Prentic-Hall














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

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