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

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

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

- บัสข้อมูล (Data BUS) คือ บัสที่ไมโครโพรเซสเซอร์ (ซีพียู) ใช้เป็นเส้นทางผ่านในการควบคุมการส่งถ่ายข้อมูลจากตัวซีพียูไปยังอุปกรณ์ภายนอกหรือรับข้อมูลจากอุปกรณ์ภายนอก เพื่อทำการประมวลผลที่ซีพียู
- บัสรองรับข้อมูล (Address BUS) คือ บัสที่ตัวซีพียู เลือกว่าจะส่งข้อมูลหรือรับข้อมูลจากอุปกรณ์ไหนไปที่ใดโดยจะต้องส่งสัญญาณเลือกออกมาทางแอดเดรสบัส
- บัสควบคุม (Control 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

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

เราสามารถนำ Card แบบ 8 Bit มาเสียบลงบนช่อง 16 Bit ได้ เพราะ ใช้ สถาปัตยกรรมพื้นฐานเหมือนๆกัน จะต่างกันก็ตรงส่วนที่เพิ่มมา สำหรับ 16 Bit เท่านั้น ซึ่งจะใช้ ( ในกรณีที่ใช้ Card 16 Bit ) หรือ ไม่ใช้ ( ในกรณีใช้ Card 8 Bit ) ก็ได้
ระบบ Bus แบบ ISA Bus นี้ มีความกว้างของ Bus เป็น 8 MHz และ สามารถส่งถ่ายข้อมูลด้วยความเร็วสูงสุดที่ 8 MB ต่อ วินาที
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 ที่เห็นได้ชัด

รูปแสดงรูปร่าง ของ PCI Bus ส่วน Slot สีดำด้านล่าง ก็คือ Slot ISA
นอกเหนือไปจากข้างต้น ก็ยังมีเรื่องของ 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)
รูปแสดงรูปร่าง ของ PCI Bus อีกรูปหนึ่ง


รูปแสดงลักษณะของ PCI 64 Bit ( วงสีเหลือง ) และ PCI 32 Bit ( วงสีแดง )
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 โดยเฉพาะ และนี่ละครับ ที่เรา  

กำลังจะกล่าวถึงในเรื่องนี้ นั่นก็คือ AGP หรือ Accelerated Graphics Port

ข้อดีของ AGP
   จากความต้องการในการใช้งานด้าน Graphics อย่างสูง ทั้งเรื่องเกมส์ 3D ซึ่งต้องในการประมวลผลด้าน Graphics แบบ Real-Time และ Streaming VDO ซึ่งต้องการการรับส่งข้อมูลคราวละมากๆ เกินความสามารถของ PCI Bus ที่จะรองรับไว้ได้อีกต่อไป ทาง Intel จึงได้พัฒนาและเปิดตัวระบบ Bus ใหม่นี้ ขึ้นมาเมื่อปีค.ศ. 1996 และให้ชื่อว่า Accelerated Graphics Port ( AGP ) โดยการจับเอาระบบ Bus แบบ PCI มาปรับแต่ง พัฒนาขึ้นใหม่ เพื่องานด้าน Graphics โดยเฉพาะ การติดต่อสื่อสารระหว่าง Graphics Chip กับหน่วยประมวลผลกลาง ( CPU ) ในเครื่องคอมพิวเตอร์นี้ ก็เหมือนกับอุปกรณ์อื่นๆ คือ ต้องผ่านระบบ Bus ในการรับส่งข้อมูลจากที่หนึ่ง ไปยังอีกที่หนึ่ง ซึ่งแม้ว่า AGP นี้ จะพัฒนาขึ้นจากระบบ Bus แบบ PCI แต่ว่าเป็นการสร้างช่องทางรับส่งเฉพาะของตน ในแบบ Point-to-Point และใช้งานเพียงด้านนี้ด้านเดียว ที่ Slot เดียว ไม่มีการใช้งานร่วมกับอุปกรณ์ หรือ Card อื่นๆ ใดทั้งสิ้น เป็นการต่อตรงระหว่าง Graphics Port และ CPU โดยตรง ดังนั้น ในความเป็นจริง จึงไม่อาจถือว่าระบบ AGP นี้ เป็นระบบ Bus อย่างแท้จริงได้
Diagram แสดงสถาปัตยกรรมของ Pentium!!! ที่ใช้งานกับ AGP ( ภาพจาก Intel Corp. )

สำหรับ AGP นี้ ก็มีข้อดีที่เหนือกว่า PCI อย่างเห็นได้ชัดก็คือ
  • มีประสิทธิภาพ และให้ประสิทธิผลที่สูงกว่า
  • สามารถติดต่อ และอ้างอิงข้อมูลกับหน่วยความจำของระบบได้โดยตรง

Card ที่ใช้ Interface แบบ AGP

ซึ่ง AGP นั้น ใช้เทคนิคหลายๆ อย่างที่เพิ่มเติมจาก PCI เพื่อให้ได้ประสิทธิภาพ และ ประสิทธิผลที่เหนือกว่า คือ
  • AGP นั้น ใช้ระบบ Bus ความกว้าง 32 Bit ที่ทำงานด้วยความเร็ว 66 MHz ( 66 ล้านรอบต่อวินาที ) ซึ่งหมายความว่า ภายใน 1 วินาทีนั้น มันสามารถรับ-ส่งข้อมูลขนาด 32 Bit ( หรือ 4 Byte ) ได้ถึง 66 ล้านครั้ง และความเร็วในการรับ-ส่งนี้ ก็จะเพิ่มขึ้น ตามมาตรฐานของ AGP เช่น 2x, 4x หรือ 8x ซึ่งเพิ่มเป็นจำนวนเท่าจากเดิมเลยละครับ
  • เป็นระบบ Bus แบบต่อตรง เฉพาะ AGP กับ CPU ดังนั้น จึงไม่มีอุปกรณ์อื่นๆ ใด มาใช้งานร่วมด้วย ทำให้ช่องทางในการรับส่งนี้ มีเพียงแค่ข้อมูลด้าน Graphics เท่านั้น ทำให้สามารถใช้รับ-ส่งข้อมูลได้เต็มที่ ไม่ต้องแบ่งกับใคร
  • AGP นั้น ใช้การทำงานแบบ Pipeline เพื่อให้ทำงานได้รัดกุม ให้ทุกๆสัญญาณนาฬิกา มีการทำงานได้อย่างต่อเนื่อง ( การทำงานแบบ Pipeline นั้น สามารถอ่านเพิ่มเติมได้ที่ Pipeline & Superscalar )
  • AGP ใช้การอ้างอิงข้อมูลผ่านทาง Sideband Addressing ซึ่งตัวหน่วยประมวลผลด้าน Graphics จะทำการติดต่อกับ CPU ผ่านช่องทางอื่น ซึ่งมีถึง 8 ช่องทาง ไม่เกี่ยวกับ ช่องทางเดินข้อมูล ถ้าเพื่อนๆ งงตรงนี้ ก็ลองนึกถึงขณะเรากำลังฟังเพลงจากสถานีวิทยุใด วิทยุหนึ่ง เราก็สามารถที่จะโทรศัพท์เข้าไปขอเพลงถัดไปได้ โดยไม่มีผลกระทบกับเพลงที่กำลังฟังอยู่ในขณะนี้ได้ .. นั่นละครับ หลักการเดียวกันเลย แถมยังเตรียมไว้ให้ด้วยกันถึง 8 ช่องทาง และเป็นช่องทางเฉพาะที่ใช้เฉพาะ AGP กับ CPU เท่านั้นอีกด้วย ดังนั้น จึงอ้างอิงข้อมูลกันได้อย่างสบาย หายห่วงเลยละครับ

เกี่ยวกับหน่วยความจำ
นอกเหนือไปจากประสิทธิภาพ และ ประสิทธิผลที่ AGP ทำได้เหนือกว่า PCI แล้ว ก็ยังมีอีกจุดหนึ่งที่ทาง AGP ทำได้ดีกว่า นั่นก็คือ การอ้างอิงหน่วยความจำของระบบ ได้โดยตรง ด้วยความเร็วเต็มที่ๆ ระบบรองรับ
ถ้าการใช้งานหลักคือ 3D เกมส์แล้วละก็ งานด้าน Texture Mapping ที่ทำให้ภาพ 3 มิติที่ออกมานั้น ดูสวยงามและสมจริง จึงเป็นสิ่งที่สำคัญ และแน่นอน Texture Mapping นี้ จะใช้หน่วยความจำค่อนข้างสูง ยิ่งถ้าภาพมีความละเอียด คมชัดเท่าไร ก็ย่อมต้องการขนาดของหน่วยความจำที่จะเก็บข้อมูลพื้นผิว ( Texture ) ที่มากขึ้นด้วย ซึ่งในสมัยที่มีการพัฒนา AGP นั้น หน่วยความจำบน Graphics Card ( หรือที่เรียกว่า Video RAM ) ที่ใช้ จะมีราคาแพงกว่าหน่วยความจำของระบบในเครื่องอยู่มาก ดังนั้น ความคมชัด ความละเอียดของภาพที่ออกมานั้น จึงขึ้นอยู่กับขนาดของหน่วยความจำบน Graphics Card แต่ด้วยความสามารถของ AGP ที่สามารถอ้างอิงใช้งานบนหน่วยความจำหลักของระบบแทนหน่วยความจำด้าน Graphics ได้ จึงเป็นข้อดีอีกประการหนึ่ง ที่ทำให้ AGP นั้น เหนือกว่า PCI แม้ว่า ณ ปัจจุบัน ราคาของหน่วยความจำจะมีราคาลดลง จนทำให้หน่วยความจำบน Graphics Card มีขนาดเพียงพอกับการทำงาน ไม่ต้องอาศัยหน่วยความจำของระบบแล้วก็ตามที
สำหรับ ระบบแบบ PCI เดิมนั้น ถ้ามีการทำ Texture Mapping แล้วละก็ จะมีการเก็บข้อมูลที่ซ้ำซ้อน เพราะต้องเก็บข้อมูลซ้าๆ กัน 2 ที่ โดยในขั้นแรกนั้น เมื่อต้องมีการทำ Texture Mapping ระบบ ก็จะทำการ Load ข้อมูลพื้นผิว มาจาก Harddisk เพื่อมาเก็บไว้ในหน่วยความจำหลักของระบบ และเมื่อถึงคราวจำเป็นต้องใช้เพื่อแสดงผล ก็จะดึงข้อมูลจากหน่วยความจำ ไปให้ CPU ทำการประมวลผล และเพื่อให้แสดงผลตามที่ CPU ทำงาน ก็จะส่งข้อมูลชุดดังกล่าวไปเก็บไว้ยังหน่วยความจำของ Graphics Card ที่เรียกว่า FrameBuffer ผ่านทาง PCI Bus ทำให้เกิดการเก็บข้อมูลที่ซ้ำซ้อนขึ้น คือ ต้องเก็บทั้งที่หน่วยความจำของระบบ และ หน่วยความจำ FrameBuffer ของ Graphics Card
          ด้วยระบบ Bus แบบ PCI นั้น การทำ Texture Mapping จะต้องดึงข้อมูลจาก Harddisk ไปเก็บที่หน่วยความจำของระบบ แล้วจึงประมวลผลและส่งต่อให้กับหน่วยความจำ FrameBuffer บน Graphics Card ต่อไป แต่ AGP นั้น จะทำการเก็บข้อมูลไว้เพียงแค่ครั้งเดียว ที่เดียว คือที่หน่วยความจำของระบบ โดยการใช้คุณสมบัติของ AGP ที่เรียกว่า GART ( Graphics Address Remapping Table ) ซึ่ง GART นี้ จะมองหน่วยความจำของระบบในส่วนที่เก็บข้อมูลพื้นผิวไว้ เป็นเสมือนอยู่ในหน่วยความจำ FrameBuffer ของ Graphics Card เลย ทำให้ลดขั้นตอนในการทำงานลง อีกทั้งยังลดปริมาณของหน่วยความจำ FrameBuffer ของ Card ลงได้อีก ซึ่งผลที่ได้นั้น นอกจากจะช่วยเพิ่มประสิทธิภาพแล้ว ยังช่วยลดต้นทุนในการผลิต Card ได้อีกด้วย
 
 
ด้วยระบบ Bus แบบ AGP นั้น การทำ Texture Mapping งสามารถดึงข้อมูลจาก Harddisk เข้าสู่หน่วยความจำของระบบซึ่ง Graphics Chip สามารถดึงไปใช้งานได้โดยตรงเลย
จากที่เห็นในรูปละครับ จะพบว่า ถ้าเป็น Card แบบที่ไม่ใช่ AGP แล้ว ไม่ว่าจะเป็น PCI, ISA หรือ VL-Bus นั้น ก็จะมีการเก็บข้อมูลที่ซ้ำซ้อน ทำให้ CPU ต้องทำงานหนักขึ้น อีกทั้งยังสิ้นเปลืองเนื้อที่โดยใช่เหตุอีก และที่สำคัญ ขนาดของพื้นผิวนั้น ก็ต้องมีขนาดไม่เกินความจุของหน่วยความจำ Framebuffer บน Card อีกด้วย

ที่มา: http://www.nextproject.net/contents/default.aspx?00064

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

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