วันพุธที่ 21 สิงหาคม พ.ศ. 2556

วิวัฒนาการและเทคโนโลยีระบบ Bus

ระบบ BUS ต่างๆ ในระบบไมโครคอมพิวเตอร์ การส่งถ่ายข้อมูลส่วนมากจะเป็นระหว่างไมโครโปรเซสเซอร์กับอุปกรณ์ภายนอกทั้งหมด โดยผ่านบัส ไมโครโพรเซสเซอร์ไม่ใช่จะควบคุมการทำงานของบัสทั้งหมด บางกรณีในการส่งถ่ายข้อมูลภายนอกด้วยกันเอง ผ่านบัสได้เป็นกรณีพิเศษเหมือนกัน เช่น การอ่านข้อมูลจากหน่วยความจำสำรองขนาดใหญ่ สามารถส่งผ่านมายังหน่วยความจำหลักได้โดยไม่ผ่านไมโครโพรเซสเซอร์เลย ก็โดยการใช้ขบวนการที่เรียกว่า ขบวนการ DMA (Direct Memory Access)

 1.PC BUS
เมื่อ IBM ได้ทำการเปิดตัว IBM PC ( XT ) ตัวแรก ซึ่งใช้ CPU 8088 เป็น CPU ขนาด 8 Bit ดังนั้น เครื่อง Computer เครื่องนี้ จึงมีเส้นทางข้อมูลเพียง 8 เส้นทาง( 8 data line ) และ เส้นทางที่อยู่ 20 เส้นทาง ( 20 address line ) เพื่อใช้ในการอ้างตำแหน่งของหน่วยความจำ Card ที่นำมาต่อกับ PC Bus นั้น จะเป็น Card แบบ 62 pin ซึ่ง 8 pin ใช้สำหรับส่งข้อมูล อีก 20 pin ไว้สำหรับอ้างตำแหน่งของหน่วยความจำ ซึ่ง CPU 8088 นั้น สามารถอ้างอิงหน่วยความจำได้เพียง 1 Megabyte ซึ่งในแต่ละ pin นั้น สามารถส่งข้อมูลได้เพียง 2 ค่า คือ 0 กับ 1 ( หรือ Low กับ High ) ดังนั้น เมื่อใช้ 20 pin ก็จะอ้างอิงตำแหน่งได้ที่ 2 คูณกัน 20 ครั้ง ( หรือ 2 ยกกำลัง 20 ) ซึ่งก็จะได้เท่ากับ 1 Meg. พอดี ส่วน pin ที่เหลือก็ใช้เป็นตัวกำหนดการอ่านค่า ว่าอ่านจากตำแหน่งของหน่วยความจำ หรือ ตำแหน่ง ของ Input/Output หรือ บาง pin ก็ใช้สำหรับจ่ายไฟ +5, -5, +12 และ สาย Ground ( สายดิน ) เพื่อจ่ายไฟให้กับ Card ที่ต่อพ่วงบน Slot ของ PC Bus นั่นเอง และ ยังมี pin บางตัวที่ทำหน้าที่เป็นตัว reset หรือ เป็นตัว refresh หรือแม้กระทั่ง clock หรือ สัญญาณนาฬิกาของระบบนั่นเอง
ระบบ Bus แบบ PC Bus นี้ มีความกว้างของ Bus เป็น 4.77 MHz และ สามารถส่งถ่ายข้อมูลด้วยความเร็วสูงสุดที่ 2.38 MB ต่อ วินาที

2.ISA Bus (ISA=Industry Standand Architecture)ในยุคของ PC AT หรือ ตั้งแต่ CPU รุ่น 80286 เป็นต้นมา ได้มีการเปลี่ยนแปลงขนาดของ เส้นทางข้อมูลจาก 8 Bit ไปเป็น 16 Bit ทำให้ IBM ต้องมาทำการออกแบบระบบ Bus ใหม่ เพื่อให้สามารถส่งผ่านข้อมูลทีละ 16 Bit ได้ แน่นอนว่า การออกแบบใหม่นั้น ก็ต้องทำให้เกิดความเข้ากันได้ย้อนหลังด้วย ( Compatble ) กล่าวคือ ต้องสามารถใช้งานกับ PC Bus ได้ด้วย
แต่ปัญหานี้ IBM แก้ไข โดยการทำ Slot มาต่อเพิ่มจาก PC Bus เดิม อีก 36 Pin โดยที่เพิ่มเส้นทางข้อมูลอีก 8 Pin รวมแล้วก็จะเป็น 16 Pin สำหรับส่งข้อมูลได้ทีละ 16 Bit พอดี และ เพิ่ม 4 Pin สำหรับทำหน้าที่อ้างตำ- แหน่งจากหน่วยความจำ ซึ่งก็จะรวมเป็น 24 Pin และ จะอ้างได้มากถึง 16 Meg. ( 2 ยกกำลัง 24 ) ซึ่งก็เป็นขนาดของหน่วยความจำสูงสุดที่ CPU 80286 นั้น สามารถจะอ้างได้ แต่อย่างไรก็ตาม การอ้าง ตำแหน่งของ I/O Port นั้น ก็ยังคงถูกจำกัดไว้ที่ 1,024 อยู่ดี เนื่องจาก ปัญหาด้านความเข้ากันได้ กับ PC Bus
นอกจากนี้ Pin ที่เพิ่มเข้ามา ยังช่วยเพิ่มการอ้างตำแหน่ง DMA และ ค่าของ IRQ เพิ่มอีกด้วย ซึ่งเรื่องของ DMA และ IRQ Slot แบบใหม่นี้ เรียกว่าเป็น Slot แบบ 16-Bit ซึ่งต่อมาก็เรียกกันว่าเป็น AT Bus แต่เราจะรู้จักกันในนามของ ISA Bus มากกว่า โดยคำว่า ISA มาจากคำเต็มว่า Industry Standard Architecture
เราสามารถนำ Card แบบ 8 Bit มาเสียบลงบนช่อง 16 Bit ได้ เพราะ ใช้ สถาปัตยกรรมพื้นฐานเหมือนๆกัน จะต่างกันก็ตรงส่วนที่เพิ่มมา สำหรับ 16 Bit เท่านั้น ซึ่งจะใช้ ( ในกรณีที่ใช้ Card 16 Bit ) หรือ ไม่ใช้ ( ในกรณีใช้ Card 8 Bit ) ก็ได้
ระบบ Bus แบบ ISA Bus นี้ มีความกว้างของ Bus เป็น 8 MHz และ สามารถส่งถ่ายข้อมูลด้วยความเร็วสูงสุดที่ 8 MB ต่อ วินาที


รูปแสดงรูปร่าง ของ ISA Bus แสดงตำแหน่งของทั้ง 8 Bit และ 16 Bit

3.MCA Bus (MCA=Micro Channel Architecture)เมื่อครั้งที่ IBM นั้นออกแบบ AT ขึ้นมา IBM ได้ทำการออกแบบระบบ bus ใหม่เพื่อให้ใช้ได้กับข้อมูล 16 บิต และได้เพิ่มจำนวนของ control line และ ออกแบบ PC AT busโดยขยายออกมาจาก PC bus ซึ่งจะทำให้ competible กับ PC hardware และ IBM จะใช้ 62 pins channel slot เหมือนกับที่ใช้ใน PC และ IBM ได้ทำการเปลี่ยนชื่อของ pin บาง pin ให้สั้นลง และทำการเพิ่มอีก 36 pin ซึ่งใช้เป็น auxiliary slot auxiliary bus นั้นประกอบด้วย bus ข้อมูล 8 เส้น address bus 7 เส้น interrupt request 5 เส้น DMA request และ acknowledge 4 เส้น และ 8 เส้นเป็น power และ control line

4.EISA Busการพัฒนา ขยายระบบ bus ของ PC AT bus นั้น ในปี 1991 Intel ได้ผลิต EISA chip set ซึ่งรวมเอา 82358 Bus controller 82357 Integrated System Peripheral และ 82355 Bus Master Interface Controller เข้าด้วยกัน เมื่อครั้งที่ IBM ทำการขยาย จาก PC bus ไปสู่ PC AT bus โดยการเพิ่ม data address และ control line ลงไป ผู้ออกแบบได้ทำการออกแบบให้ compatible กับ ของเดิม เช่น ผู้ใช้สามารถใช้ กับอุปกรณ์ที่เป็นของ PCที่เป็น 8 บิต ได้ EISA bus นั้นได้ถูกออกแบบให้ขยายจาก PC AT ขึ้นมาโดยมีคุณสมบัติดังต่อไปนี้
EISA bus นั้นจะ compatible กับ PC และ PC AT bus และ EISA slot นั้นต้องสามารถใส่ card ของ PC ที่เป็น 8 บิต และ PC AT ที่เป็น 16 บิต ได้เช่นเดียวกับ 32 bit EISA card s bus master ทุกตัวสามารถใช้ส่ง data ไปยัง memory หรือ อุปกรณ์ที่เชื่อมต่ออยู่ หรือส่งข้อมูลจาก memory หรือ อุปกรณ์ที่ต่ออยู่ออกไป โดยไม่สนใจว่าจะเป็น 8,16 หรือ 32 bits EISA bus จะรองรับการส่งข้อมูลรอบต่อรอบไว้สำหรับ data ที่มีความกว้างแตกต่างกัน หรือ ชนิดของการส่งที่แตกต่างกัน เช่น single transfer และ burst transfer ( ส่งข้อมูลความเร็วสูงในแบบ Synchronou) EISA Bus อนุญาตให้อุปกรณ์เข้ามาใช้ interrupt line ร่วมกันได้แม้ว่าจะถูกออกแบบมาสำหรับ EISA device EISA bus controller รับประกันได้ว่าจะสามารถข้าถึง high priority bus master ตัวอย่างเช่น วงจรที่ทำการ refresh DRAM

5.Local Busเมื่อคราวที่ compaq ได้เปิดตัว Deskpro 386 นั้น ทาง Compaq ได้แยกสัญญาณนาฬิกาของหน่วยความจำหลัก, Bus และ CPU ออกจากกัน ซึ่ง Compaq ก็ได้ เปิดตัวระบบ Bus ใหม่ของตนไปด้วย เพราะ หน่วยความจำหลักของเครื่องนี้ จะอยู่บน slot ขนาด 32 bit ซึ่งออกแบบมาเฉพาะของ Compaq เท่านั้น ซึ่ง ก็เป็นจุดเริ่มต้นให้ผู้ผลิตแต่ละบริษัท เริ่มที่จะหันไปออกแบบและผลิตระบบบัส ที่เป็นมาตราฐานของตนเองขึ้นมา
ระบบบัสเหล่านี้ แต่เดิมเรียกว่าเป็น Private Bus เพราะใช้เป็นการส่วนตัวเฉพาะบริษัทเท่านั้น แต่ต่อมาก็ เรียกว่าเป็น Local Bus เพราะใช้สัญญาณนาฬิกาเดียวกับ CPU ไม่ต้องพึ่งวงสัญญาณนาฬิกาพิเศษแยกออกจาก CPU เลย ซึ่งจะทำให้สามารถใช้สัญญาณนาฬิกาเดียวกันกับ CPU ในขณะนั้นได้ ซึ่งก็มักจะนำมาใช้กับหน่วยความจำหลัก เพื่อเพิ่มประสิทธิภาพโดยรวมของระบบ แต่ก็มี Card แสดงผลอีกชนิดหนึ่งที่ต้องการความไวสูง เช่น Display Card ที่มีการเข้าถึงและส่งถ่ายข้อมูล ระหว่าง CPU กับ Display Card ได้เร็วแล้ว ก็ช่วยจะลดปัญหาเรื่อง Refresh Rate ต่ำ เพราะ CPU จะทำการประมวลผลและนำมาแสดงผลบนจอภาพ ยิ่งหากว่ามีการใช้ mode resolution ของ จอภาพสูง ๆ และเป็น mode graphics ด้วยแล้ว CPU ก็ยิ่งต้องทำการส่งถ่ายข้อมูลให้เร็วขึ้น เพื่อให้ภาพที่ได้ไม่กระตุก และไม่กระพริบ (Refresh Rate ต่ำเป็นเหตุให้จอกระพริบ) เนื่องจากระบบ Local Bus นั้นจะช่วยในการส่งผ่าน และเข้าถึงข้อมูลได้รวดเร็ว จึงได้มีบริษัทนำระบบ Local Bus มาใช้กับ Dispay Card ด้วย โดยบริษัทแรก ที่นำมาใช้และเปิดตัวอย่างเป็นทางการ คือ NEC ซึ่งใช้กับ NEC Powermate (ในปี 1991) และต่อ ๆ มาผู้ผลิตรายอื่น ๆ ก็ได้พยายามเลียนแบบ และได้ออกแบบระบบ Local Bus ของตน ซึ่ง Card ของแต่ละบริษัท ก็นำเอาไปใช้กับ บริษัทอื่นไม่ได้ ทำให้มีการ กำหนดมาตราฐานระบบ Bus นี้ขึ้นมา โดยกลุ่มนั้นชื่อ Video Electronic Standards Association หรือ VESA และได้เรียก มาตราฐานนั้นว่าเป็น VESA Local Bus หรือ สั้น ๆ ว่า VL Bus ในปี 1992
ระบบ VL Bus นั้นสามารถใช้สัญญาณนาฬิกา ได้สูงถึง 50 MHz ทั้งยังสนับสนุนเส้นทางข้อมูลทั้ง 32 bit และ 64 bit รวมถึงอ้างตำแหน่งหน่วยความจำได้สูงถึง 4Gigabyte อีกด้วย แต่อย่างไรก็ตาม VL Bus ก็ไม่สถาปัตยกรรมที่ดีนัก เพราะไม่มีเอกลักษณ์ หรือ คุณสมบัติพิเศษนอกเหนือไปจาก ISA มากนัก เพราะจะเป็นการเพิ่มขีดความสามารถให้กับ ISA มากกว่าที่จะเป็นพัฒนาความสามารถให้เกับ ISA เนื่องจากยังคงให้ CPU เป็นตัวควบคุมการทำงาน ใช้ Bus Mastering ไม่ได้ และยังไม่สามารถปรับแต่งค่าต่าง ๆ ผ่านทาง Software ได้ จากจุดอ่อนตรงจุดนี้ ทำให้ Intel ได้ พัฒนาระบบ Local Bus ของตนขึ้น มานั่นเอง
6.PCI Bus
ระบบ PCI หรือ Peripheral Computer Interconnect ก็เป็น Local Bus อีกแบบหนึ่ง ที่พัฒนาขึ้นโดย Intel ในเดือนกรกฎาคม ปี 1992 โดยที่แยกการควบคุมของระบบบัส กับ CPU ออกจากกัน และส่งข้อมูลผ่านกัน ทางวงจรเชื่อม (Bridge Circuit) ซึ่งจะมี Chipset ที่คอยควบคุมการทำงานของระบบบัสต่างหาก โดยที่ Chpiset ที่ควบคุมนี้จะเป็นลักษณะ Processor Independent คือ ไม่ขึ้นกับตัว Processor (หรือ CPU) แรกเริ่มที่เปิดตัวนั้น PCI จะเป็นบัสแบบ 32 bit ที่ทำงานด้วยความเร็ว 33 MHz ซึ่งสามารถให้อัตราเร็ว ในการส่งผ่านข้อมูลถึง 133 M/s
ต่อมา เมื่อ Intel เปิดตัว CPU ใน Generation ที่ 5 ของตน Intel Pentium ซึ่งเป็น CPU ขนาด 32 bit ทาง Intel ก็ได้ทำการกำหนดมาตราฐาน ของ PCI เสียใหม่ เป็น PCI 2.0 ในเดือนกรกฎาคม 1993 ซึ่ง PCI 2.0 มีความกว้างของเส้นทางข้อมูลถึง 64 bit ซึ่งหากใช้งานกับ Card 64 bit แล้ว ก็จะสามารถให้อัตราเร็วใน การส่งผ่านข้อมูลสูงสุดถึง 266 M/s จุดเด่นของ PCI ที่เห็นได้ชัด
นอกเหนือไปจากข้างต้น ก็ยังมีเรื่องของ Bus Mastering ซึ่ง PCI นั้น ก็สามารถ ทำได้เช่นเดียวกับ EISA และ MCA แล้ว Chipset ที่ใช้เป็นตัวควบคุมการทำงาน ก็ยังสนับสนันระบบ ISA และ EISA อีกด้วย ซึ่งก็สามารถทำให้ผลิต Mainboard ทีมีทั้ง Slot ISA, EISA และ PCI รวมกันได้ นอกจากนั้น ยังสนับสนุนระบบ Plug-and-Play อีกด้วย (เป็นมาตราฐานที่พัฒนาในปี 1992 ที่กำหนดให้ Card แบบ Plug-and-Play นี้ จะไม่มี Dipswitch หรือ Jumper เลย ทุกอย่าง ทั้ง IRQ, DMA หรือ Port จะถูก กำหนดไว้แล้ว แต่เราสามารถเลือก หรือ เปลี่ยนแปลงได้จาก Software)

7.AGP
ในกลางปี 1996 เมื่อทาง Intel ได้ทำการเปิดตัว Intel Pentium II ซึ่งพร้อมกันนั้นก็ได้ทำการเปิดตัว สถาปัตยกรรมที่ช่วยเพิ่มประสิทธิภาพ ของหน่วยแสดงผลด้วย นั่นก็คือ Accelerated Graphics Port หรือ AGP ซึ่งก็ได้เปิดตัว Chipset ที่สรับสนุนการทำงานนนี้ด้วย คือ 440LX (ซึ่งแน่นอนว่า Chipset ที่ออกมาหลัง จากนี้ ก็จะสนับสนุนการทำงาน AGP ด้วย AGP นั้น จะมีการเชื่อมต่อกับ Chipset ของระบบแบบ Poin-to-Point ซึ่ง จะช่วยให้การส่งผ่านข้อมมูล ระหว่าง Card AGP กับ Chipset ของระบบได้เร็วขึ้น และยังมีเส้นทาง
เฉพาะ สำหรับติดต่อกับหน่วยความ จำหลักของระบบ เพื่อใช้ทำการ Redder ภาพ แบบ 3D ได้อย่างรวดเร็วอีกด้วย จากเดิม Card แสดงผล แบบ PCI นั้น จะมีปัญหาเรื่องของหน่วยความจำบน Card เพราะเมื่อต้องการใช้งาน ด้านการ Render ภาพ 3 มิติ ที่มีขนาดใหญ่มาก ๆ ก็จำเป็นต้องมีการใช้หน่วยความจำบน Card นั้นมาก ๆ เพื่อ รองรับขนาดของพื้นผิว (Texture) ที่เป็นองค์ประกอบสำคัญของงาน Render แน่นอน เมื่อหน่วยความจำ มาก ๆ ราคาก็ยิ่งแพง ดังนั้นทาง Intel จึงได้ทำการคิดค้นสถาปัตยกรรมใหม่เพื่องานด้าน Graphics นี้ โดย เฉพาะ AGP จึงได้ถือกำเนิดขึ้นมา AGP นั้นจะมี mode ในการ render อยู่ 2 แบบ คือ Local Texturing และ AGP Texturing โดยที่ Local Texturing นั้น จะทำการ copy หน่วยความจำ ของระบบไปเก็บไว้ที่เฟรมบัฟเฟอร์ของ Card (หน่วยความจำ บนตัว Card) จากนั้นจงทำการประมวลผล โดยดึงข้อมูลจากเฟรวมบัฟเฟอร์บน Card นั้นอีกที ซึ่งวิธีการนี้ ก็เป็นวิธีการที่ใช้บนระบบ PCI ด้วย วิธีนี้จะพึ่งขนาดของหน่วยความจำบน Card มาก APG Texturing นั้น เป็นเทคนิคใหม่ที่ช่วยลดปริมาณของหน่วยความจำ หรือ เฟรมบัฟเฟอร์บน Display Card ลงได้มาก เพราะสามาถทำการใช้งาน หน่วยความจำของระบบให้เป็นเฟรมบัฟเฟอร์ได้เลย โดยไม่ต้องดึง ข้อมูลมาพักไว้ที่เฟรมบัพเฟอร์ของ Card โดยปกติแล้ว AGP จะทำงานที่ความเร็ว 66 MHz ซึ่งปม้ว่าระบบจะ ใช้ FSB เป็น 100 MHz แต่มันก็ยังคงทำงานที่ 66 MHz (ซึ่งตรงจุดนี้ Mainboard บางรุ่น บางยี่ห้อ สามารถ ปรับแต่งค่านี้ได้ แต่ ทั้งนี้ และทั้งนั้น ก็ควรคำนึงถึงขีดจำกัดของ Card และอุปกรณ์อื่น ๆ ด้วย) ซึ่งใน mode ปกติของมัน ก็จะมีความสามารถแทบจะเหมือนกับ PCI แบบ 66 MHz เลย โดยจะมีอัตราการส่งถ่ายข้อมูลที่ สูงถึง 266 M/s และนอกจากนี้ยังสามารถทำงานได้ทั้งขอบขาขึ้นและขอบขาลงของ 66 MHz จึงเท่ากับว่ามัน ทำงาน ที่ 133 MHz ซึ่งจะช่วยเพิ่มอัตราการส่งถ่ายข้อมูลได้สูงถึง 532 M/s (Card ที่ใช้ และ chipset ที่ใช้ต้อง สนับสนุนการทำงานแบบนี้ด้วย) ซึ่งเรียก mode นี้ว่า mode 2X และ mode ปกติว่าเป็น mode 1X สำหรับ ความเร็วในการส่งถ่ายข้อมูลนั้น ก็ขึ้นอยู่กับชนิดของหน่วยความจำหลักด้วย ถ้าหน่วยความจำหลัก เป็นชนิด ที่เร็ว ก็จะยิ่งช่วยเพิ่มอัตราเร็วในการส่งถ่ายข้อมูลมากขึ้น ดังนี้
    • EDO DRAM หรือ SDRAM PC 66 ได้ 528M/s
    • SDRAM PC 100 ได้ 800M/s
    • DRDRAM ได้ 1.4G/s
อีกสาเหตุหนึ่งที่ระบบบัสแบบ AGP ทำได้ดีกว่า PCI เพราะ เป็น Slot แบบเอกเทศ ไม่ต้องไปใช้ Bandwidth ร่วมกับใคร (เพราะเครื่อง ๆ หนึ่งมี Display Card เพียงตัวเดียวก็เพียงพอแล้ว ดังนั้น ใน Mainboard จึงมี Slot AGP เพียง Slot เดียว) ในปัจจุบัน ระบบบัสแบบ AGP ได้พัฒนามาถึง AGP 4X แล้ว ซึ่งช่วยให้เพิ่มอัตราการส่งผ่านข้อมูลได้สูงขึ้น อีกเท่าตัวจาก 2X เลยทีเดียว
ทุกวันนี้ การใช้งานคอมพิวเตอร์โดยทั่วไปนั้น ก็จะใช้งานกันด้าน Graphics กันเป็นหลัก อย่างน้อยที่สุด ระบบปฏิบัติการที่เราใช้โดยทั่วไป ก็จะเป็นในแบบ Graphical User Interface ( GUI ) ทั้งหมดแล้ว จะมีบ้าง ก็แค่ในส่วนของ UNIX เช่น Linux หรือ Solaris เป็นต้น แต่รุ่นใหม่ๆ ก็มักจะใช้เป็น GUI แล้ว ( เช่น OpenWin หรือ CDE ) ดังนั้น ก็เรียกได้ว่า เราได้ใช้งานด้าน Graphics กันทุกครั้งของการเปิดเครื่องเลยทีเดียว ยิ่งถ้าใช้งานเพื่อเล่นเกมส์ โดยเฉพาะเกมส์ 3 มิติ ( 3D ) ด้วยแล้ว ก็จะยิ่งใช้งานด้าน Graphics และ Animetion อย่างสูงมาก ซึ่งหน้าที่การทำงานเหล่าเพื่อให้ได้ผลลัพธ์ออกมาที่หน้าจอ ให้เราๆ ท่านๆ พอใจ ก็ล้วนเกิดมาจากหน่วยประมวลผลด้าน Graphics ทั้งสิ้น ซึ่ง Graphics Card ที่เราใช้บนเครื่องคอมพิวเตอร์โดยทั่วไปแล้ว ก็จะมีอยู่ด้วยกัน 3 แบบคือ
  1. Onboard คือมีการรวมเอาหน่วยประมวลผลด้าน Graphics และส่วนควบคุมหน่วยความจำของ Graphics เข้าไว้บน Mainboard เลย
  2. Card PCI โดยการปลักเข้ากับ Slot แบบ PCI
  3. Card AGP โดยการปลักเข้ากับ Slot เฉพาะ สำหรับงานด้าน Graphics โดยเฉพาะ และนี่ละครับ ที่เรา

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

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