กลับไปหน้าบทความ

อ่าน 8 นาที

บัส (คอมพิวเตอร์)

ใน สถาปัตยกรรมคอมพิวเตอร์ บัส(ในอดีตเรียกว่า ทางด่วนข้อมูล [ 1 ] หรือ ดาต้าบัส ) คือระบบการสื่อสารที่ถ่ายโอน ข้อมูล ระหว่าง ส่วนประกอบภายใน คอมพิวเตอร์ หรือระหว่างคอมพิวเตอร์ [ 2...

บัส (คอมพิวเตอร์)

ช่องเสียบการ์ดบัส PCI Expressสี่ช่อง (จากบนสุดถึงช่องที่สองจากล่างสุด: ×4, ×16, ×1 และ ×16) เมื่อเทียบกับ ช่องเสียบการ์ดบัสPCI แบบดั้งเดิม 32 บิต (ช่องล่างสุด)

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

บัสถูกแบ่งประเภทตามบทบาท เช่นบัสระบบ (หรือที่เรียกว่าบัสภายใน บัสข้อมูลภายใน หรือบัสหน่วยความจำ) ทำหน้าที่เชื่อมต่อCPUและ หน่วย ความจำบัสขยายหรือที่เรียกว่าบัสอุปกรณ์ต่อพ่วงทำหน้าที่ขยายระบบเพื่อเชื่อมต่ออุปกรณ์เพิ่มเติม รวมถึงอุปกรณ์ต่อพ่วงตัวอย่างของบัสที่ใช้กันอย่างแพร่หลาย ได้แก่PCI Express (PCIe) สำหรับการเชื่อมต่อภายในความเร็วสูง และUniversal Serial Bus (USB) สำหรับเชื่อมต่ออุปกรณ์ภายนอก

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

รถบัสที่อยู่

บัสแอดเดรสคือบัสที่ใช้ระบุแอดเดรสทางกายภาพเมื่อโปรเซสเซอร์หรือ อุปกรณ์ที่เปิดใช้งาน DMAต้องการอ่านหรือเขียนไปยังตำแหน่งหน่วยความจำ จะระบุตำแหน่งหน่วยความจำนั้นบนบัสแอดเดรส (ค่าที่จะอ่านหรือเขียนจะถูกส่งบนบัสข้อมูล) [ 4 ]ความกว้างของบัสแอดเดรสจะกำหนดปริมาณหน่วยความจำที่ระบบสามารถถ่ายโอนได้พร้อมกัน[ 5 ]ตัวอย่างเช่น ระบบที่มีบัสแอดเดรส32 บิต สามารถระบุตำแหน่งหน่วยความจำได้ 2 32 (4,294,967,296) ตำแหน่ง [ 6 ]หากแต่ละตำแหน่งหน่วยความจำเก็บได้หนึ่งไบต์ พื้นที่หน่วยความจำที่สามารถระบุแอดเดรสได้จะมีขนาดประมาณGB

การมัลติเพล็กซ์ที่อยู่

โปรเซสเซอร์รุ่นแรกๆ ใช้สายไฟสำหรับแต่ละบิตของความกว้างของแอดเดรส ตัวอย่างเช่น บัสแอดเดรส 16 บิตจะมีสายไฟทางกายภาพ 16 เส้นที่ประกอบกันเป็นบัส เมื่อบัสมีความกว้างและความยาวมากขึ้น วิธีการนี้ก็มีราคาแพงขึ้นในแง่ของจำนวนขาชิปและร่องรอยบนบอร์ด เริ่มต้นด้วยMostek 4096 DRAMการมัลติเพล็กซ์แอดเดรสที่ใช้มัลติเพล็กเซอร์จึงกลายเป็นเรื่องปกติ[ 7 ]ในรูปแบบแอดเดรสแบบมัลติเพล็กซ์ แอดเดรสจะถูกส่งเป็นสองส่วนเท่าๆ กันในรอบบัสสลับกัน ซึ่งจะลดจำนวนสัญญาณบัสแอดเดรสที่จำเป็นในการเชื่อมต่อกับหน่วยความจำลงครึ่งหนึ่ง ตัวอย่างเช่น บัสแอดเดรส 32 บิตสามารถใช้งานได้โดยใช้สาย 16 เส้นและส่งครึ่งแรกของแอดเดรสหน่วยความจำ ตามด้วยครึ่งหลังของแอดเดรสหน่วยความจำทันที

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

การดำเนินการ

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

ในอดีต ก็มีคอมพิวเตอร์บางประเภทที่สามารถประมวลผลได้เฉพาะคำเท่านั้น ซึ่งเรียกว่าเครื่องประมวลผลคำ ( word machines )

บัสหน่วยความจำ

บัสหน่วยความจำคือบัสที่เชื่อมต่อหน่วยความจำหลักกับตัวควบคุมหน่วยความจำในระบบคอมพิวเตอร์ เดิมทีมีการใช้บัสอเนกประสงค์ เช่นVMEbusและS-100 busแต่เพื่อลดความหน่วงบัสหน่วยความจำสมัยใหม่จึงได้รับการออกแบบให้เชื่อมต่อโดยตรงกับชิป DRAM และถูกกำหนดโดยหน่วยงานมาตรฐานชิป เช่นJEDEC ตัวอย่างเช่น SDRAMรุ่นต่างๆ และ บัส แบบอนุกรมแบบจุดต่อจุด เช่นSLDRAMและRDRAM

รายละเอียดการดำเนินการ

บัสสามารถเป็นได้ทั้งบัสแบบขนานซึ่งส่งข้อมูลแบบขนานบนสายไฟหลายเส้น หรือบัสแบบอนุกรมซึ่งส่งข้อมูลในรูปแบบบิตต่อบิต การเพิ่มการเชื่อมต่อพลังงานและการควบคุมเพิ่มเติม ตัวขับแบบดิฟเฟอเรนเชียลและการเชื่อมต่อข้อมูลในแต่ละทิศทาง มักหมายความว่าบัสแบบอนุกรมส่วนใหญ่มีตัวนำมากกว่าจำนวนขั้นต่ำหนึ่งตัวที่ใช้ใน1-WireและUNI/Oเมื่ออัตราการส่งข้อมูลเพิ่มขึ้น ปัญหาเรื่องความคลาดเคลื่อนของเวลาการใช้พลังงาน การรบกวนทางแม่เหล็กไฟฟ้า และการรบกวนข้ามช่องสัญญาณในบัสแบบขนานจะยากต่อการหลีกเลี่ยงมากขึ้นเรื่อยๆ วิธีแก้ปัญหาบางส่วนคือการเพิ่มจำนวนบัสเป็นสองเท่า บ่อยครั้งที่บัสแบบอนุกรมสามารถทำงานที่อัตราการส่งข้อมูลโดยรวมสูงกว่าบัสแบบขนาน แม้จะมีจำนวนการเชื่อมต่อทางไฟฟ้าที่น้อยกว่า เนื่องจากบัสแบบอนุกรมโดยธรรมชาติแล้วไม่มีความคลาดเคลื่อนของเวลาหรือการรบกวนข้ามช่องสัญญาณUSB , FireWireและSerial ATAเป็นตัวอย่างของเรื่องนี้ การเชื่อมต่อ แบบหลายจุดไม่เหมาะสำหรับบัสแบบอนุกรมที่เร็ว ดังนั้นบัสแบบอนุกรมสมัยใหม่ส่วนใหญ่จึงใช้ การออกแบบ แบบเดซี่เชนหรือแบบฮับ

การเปลี่ยนจากบัสแบบขนานเป็นบัสแบบอนุกรมได้รับอนุญาตตามกฎของมัวร์ซึ่งอนุญาตให้รวมตัวแปลงอนุกรม/ตัวแปลงอนุกรมกลับในวงจรรวมที่ใช้ในคอมพิวเตอร์[ 8 ]

การเชื่อมต่อ เครือข่ายเช่นอีเธอร์เน็ตโดยทั่วไปแล้วไม่ถือว่าเป็นบัส แม้ว่าความแตกต่างส่วนใหญ่จะเป็นเรื่องของแนวคิดมากกว่าการใช้งานจริง คุณลักษณะที่ใช้ในการจำแนกบัสโดยทั่วไปคือ การจ่ายไฟให้กับฮาร์ดแวร์ที่เชื่อมต่อ ซึ่งเน้นย้ำถึง ต้นกำเนิดของสถาปัตยกรรม บัสจากบัสบาร์ที่จ่ายไฟแบบสวิตช์หรือแบบกระจาย ดังนั้นจึงไม่นับรวมระบบต่างๆ เช่นRS-232 แบบอนุกรม , Centronics แบบขนาน , อินเทอร์เฟซ IEEE 1284และอีเธอร์เน็ต ที่ไม่ถือว่าเป็นบัส เนื่องจากอุปกรณ์เหล่านี้ก็ต้องการแหล่งจ่ายไฟแยกต่างหากเช่นกัน อุปกรณ์ Universal Serial Busอาจใช้ไฟที่จ่ายโดยบัส แต่ส่วนใหญ่มักใช้แหล่งจ่ายไฟแยกต่างหาก ตัวอย่างที่เห็นได้ชัดคือ ระบบ โทรศัพท์ ที่มี โมเด็มเชื่อมต่ออยู่ซึ่ง การเชื่อมต่อ RJ11และระบบส่งสัญญาณแบบมอดูเลตที่เกี่ยวข้องนั้นไม่ถือว่าเป็นบัส และคล้ายคลึงกับ การเชื่อมต่อ อีเธอร์เน็ตระบบการเชื่อมต่อสายโทรศัพท์ไม่ถือว่าเป็นบัสในแง่ของสัญญาณ แต่ศูนย์กลางการสื่อสารใช้บัสที่มีสวิตช์แบบครอสบาร์สำหรับการเชื่อมต่อระหว่างโทรศัพท์

อย่างไรก็ตาม ความแตกต่างนี้—ที่ว่าพลังงานมาจากบัส—ไม่ใช่กรณีในระบบอิเล็กทรอนิกส์การบิน หลายระบบ ซึ่งการเชื่อมต่อข้อมูล เช่นARINC 429 , ARINC 629 , MIL-STD-1553B (STANAG 3838) และ EFABus ( STANAG 3910 ) มักถูกเรียกว่าบัสข้อมูลหรือบางครั้งเรียกว่าdatabus บัสข้อมูลอิเล็กทรอนิกส์การบินเหล่านี้มักมีลักษณะเฉพาะคือมีอุปกรณ์/หน่วยที่สามารถเปลี่ยนได้หลายตัว (LRI/LRU) เชื่อมต่อกับ สื่อร่วมกันพวกมันอาจเป็นแบบsimplex เช่นเดียวกับ ARINC 429 กล่าวคือมี LRI/LRU แหล่งจ่ายเพียงตัวเดียว หรือเป็น แบบ duplexเช่นเดียวกับ ARINC 629, MIL-STD-1553B และ STANAG 3910 ซึ่ง อนุญาตให้ LRI/LRU ที่เชื่อมต่อทั้งหมดทำหน้าที่ เป็นตัวส่งและตัวรับข้อมูลในเวลาที่ต่างกัน ( half duplex ) [ 9 ]

ความถี่หรือความเร็วของบัสจะวัดเป็นเฮิร์ตซ์ เช่น เมกะเฮิร์ตซ์ และกำหนดจำนวนรอบสัญญาณนาฬิกาต่อวินาที โดยอาจมีการถ่ายโอนข้อมูลหนึ่งครั้งหรือมากกว่าต่อรอบสัญญาณนาฬิกา หากมีการถ่ายโอนเพียงครั้งเดียวต่อรอบสัญญาณนาฬิกา จะเรียกว่าSingle Data Rate (SDR) และหากมีการถ่ายโอนสองครั้งต่อรอบสัญญาณนาฬิกา จะเรียกว่าDouble Data Rate (DDR) แม้ว่าการใช้สัญญาณอื่นนอกเหนือจาก SDR จะไม่เป็นที่นิยมใน RAM ตัวอย่างเช่น PCIe ซึ่งใช้ SDR [ 10 ]ในการถ่ายโอนข้อมูลแต่ละครั้ง อาจมีข้อมูลหลายบิต ซึ่งอธิบายได้ว่าเป็นความกว้างของบัส ซึ่งเป็นจำนวนบิตที่บัสสามารถถ่ายโอนได้ต่อรอบสัญญาณนาฬิกา และอาจมีความหมายเหมือนกับจำนวนตัวนำไฟฟ้าทางกายภาพที่บัสมี หากตัวนำแต่ละตัวถ่ายโอนข้อมูลหนึ่งบิตในแต่ละครั้ง[ 11 ] [ 12 ] [ 13 ]อัตราข้อมูลในหน่วยบิตต่อวินาทีสามารถคำนวณได้โดยการคูณจำนวนบิตต่อรอบสัญญาณนาฬิกา คูณด้วยความถี่ คูณด้วยจำนวนการถ่ายโอนต่อรอบสัญญาณนาฬิกา[ 14 ] [ 15 ]หรืออีกทางหนึ่ง บัสเช่นPCIeสามารถใช้การมอดูเลชั่นหรือการเข้ารหัส เช่นPAM4 [ 16 ] [ 17 ] [ 18 ]ซึ่งจัดกลุ่ม 2 บิตเป็นสัญลักษณ์ จากนั้นจึงถ่ายโอนสัญลักษณ์เหล่านั้นแทนบิตจริง และช่วยให้ความเร็วในการถ่ายโอนข้อมูลเพิ่มขึ้นโดยไม่ต้องเพิ่มความถี่ของบัส ความเร็ว/อัตราการถ่ายโอนข้อมูลที่มีประสิทธิภาพหรือจริงอาจต่ำกว่าเนื่องจากการใช้การเข้ารหัสที่อนุญาตให้แก้ไขข้อผิดพลาดได้ เช่น การเข้ารหัส 128/130b (b ย่อมาจาก bit) [ 19 ] [ 20 ] [ 10 ]ความเร็วในการถ่ายโอนข้อมูลเรียกอีกอย่างว่าแบนด์วิดท์[ 21 ] [ 22 ]

การมัลติเพล็กซ์บัส

บัสระบบที่ง่ายที่สุดมีสายข้อมูลขาเข้า สายข้อมูลขาออก และสายแอดเดรสที่แยกจากกันโดยสิ้นเชิง เพื่อลดต้นทุน ไมโครคอมพิวเตอร์ส่วนใหญ่จึงมีบัสข้อมูลแบบสองทิศทาง โดยใช้สายเดียวกันสำหรับการรับและส่งข้อมูลในเวลาที่ต่างกัน[ 23 ]

โปรเซสเซอร์บางตัวใช้สายไฟเฉพาะสำหรับแต่ละบิตของบัสแอดเดรส บัสดาต้า และบัสควบคุม ตัวอย่างเช่นSTEbus แบบ 64 พิน ประกอบด้วยสายไฟ 8 เส้นสำหรับบัสดาต้า 8 บิต สายไฟ 20 เส้นสำหรับบัสแอดเดรส 20 บิต สายไฟ 21 เส้นสำหรับบัสควบคุม และสายไฟ 15 เส้นสำหรับบัสจ่ายไฟต่างๆ

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

ประวัติศาสตร์

เมื่อเวลาผ่านไป มีกลุ่มคนหลายกลุ่มทำงานเกี่ยวกับมาตรฐานบัสคอมพิวเตอร์ต่างๆ รวมถึงคณะกรรมการมาตรฐานสถาปัตยกรรมบัสของ IEEE (BASC), กลุ่มศึกษา Superbus ของ IEEE, โครงการริเริ่มไมโครโปรเซสเซอร์แบบเปิด (OMI), โครงการริเริ่มไมโครซิสเต็มแบบเปิด (OMI), กลุ่มGang of Nineที่พัฒนาEISAเป็นต้น

รุ่นแรก

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

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

ระบบระดับสูงได้นำเสนอแนวคิดของตัวควบคุมช่องสัญญาณซึ่งโดยพื้นฐานแล้วคือคอมพิวเตอร์ขนาดเล็กที่ออกแบบมาเพื่อจัดการอินพุตและเอาต์พุตของบัสที่กำหนดIBMได้นำสิ่งเหล่านี้มาใช้ในIBM 709ในปี 1958 และกลายเป็นคุณสมบัติทั่วไปของแพลตฟอร์มของพวกเขา ผู้ผลิตระบบประสิทธิภาพสูงรายอื่น ๆ เช่นControl Data Corporationก็ได้นำการออกแบบที่คล้ายกันมาใช้เช่นกัน โดยทั่วไปแล้ว ตัวควบคุมช่องสัญญาณจะพยายามอย่างเต็มที่ที่จะดำเนินการกับบัสทั้งหมดภายใน โดยจะย้ายข้อมูลเมื่อทราบว่า CPU กำลังยุ่งอยู่กับงานอื่นหากเป็นไปได้ และใช้การขัดจังหวะเฉพาะเมื่อจำเป็นเท่านั้น ซึ่งช่วยลดภาระของ CPU ลงอย่างมากและให้ประสิทธิภาพโดยรวมของระบบที่ดีขึ้น

บัสระบบเดี่ยว

เพื่อให้เกิดความเป็นโมดูลาร์ หน่วยความจำและบัส I/O สามารถรวมเข้าด้วยกันเป็นบัสระบบ เดียว ได้[ 25 ]ในกรณีนี้ สามารถใช้ระบบกลไกและไฟฟ้าเพียงระบบเดียวในการเชื่อมต่อส่วนประกอบของระบบหลายๆ ส่วนเข้าด้วยกัน หรือในบางกรณี อาจเชื่อมต่อทั้งหมดก็ได้

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

มินิและไมโคร

บริษัท Digital Equipment Corporation (DEC) ลดต้นทุนสำหรับการผลิตมินิคอมพิวเตอร์ จำนวนมาก และแมปอุปกรณ์ต่อพ่วงเข้ากับบัสหน่วยความจำ ทำให้ดูเหมือนว่าอุปกรณ์อินพุตและเอาต์พุตเป็นตำแหน่งหน่วยความจำ ซึ่งได้นำมาใช้ในUnibusของPDP-11ประมาณปี 1969 [ 26 ]

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

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

ในบางกรณี โดยเฉพาะอย่างยิ่งในIBM PCแม้ว่าจะสามารถใช้สถาปัตยกรรมทางกายภาพที่คล้ายคลึงกันได้ แต่คำสั่งในการเข้าถึงอุปกรณ์ต่อพ่วง ( inและout) และหน่วยความจำ ( movและอื่นๆ) ยังไม่ได้ถูกทำให้เป็นมาตรฐานเดียวกันเลย และยังคงสร้างสัญญาณ CPU ที่แตกต่างกัน ซึ่งสามารถนำมาใช้เพื่อสร้างบัส I/O แยกต่างหากได้

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

การเพิ่มความเร็วของ CPU จะทำได้ยากขึ้นเนื่องจากความเร็วของอุปกรณ์ทั้งหมดต้องเพิ่มขึ้นด้วยเช่นกัน เมื่อไม่สามารถปฏิบัติได้จริงหรือคุ้มค่าที่จะให้อุปกรณ์ทั้งหมดมีความเร็วเท่ากับ CPU CPU จะต้องเข้าสู่สถานะรอหรือทำงานที่ความถี่สัญญาณนาฬิกาที่ช้าลงชั่วคราว[ 27 ]เพื่อสื่อสารกับอุปกรณ์อื่นๆ ในคอมพิวเตอร์ แม้ว่าปัญหานี้จะยอมรับได้ในระบบฝังตัวแต่ก็ไม่สามารถยอมรับได้นานในคอมพิวเตอร์อเนกประสงค์ที่ผู้ใช้สามารถขยายได้

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

รุ่นที่สอง

ระบบบัสรุ่นที่สอง เช่นNuBusได้แก้ไขปัญหาเหล่านี้บางส่วน โดยทั่วไปแล้ว ระบบเหล่านี้จะแบ่งคอมพิวเตอร์ออกเป็นสองส่วนคือ CPU และหน่วยความจำอยู่ด้านหนึ่ง และอุปกรณ์ต่อพ่วงต่างๆ อยู่ในอีกด้านหนึ่งตัวควบคุมบัสจะรับข้อมูลจากฝั่ง CPU เพื่อส่งไปยังฝั่งอุปกรณ์ต่อพ่วง ทำให้ภาระของโปรโตคอลการสื่อสารถูกย้ายจาก CPU เอง สิ่งนี้ทำให้ฝั่ง CPU และหน่วยความจำสามารถพัฒนาแยกจากบัสอุปกรณ์ต่อพ่วงได้ อุปกรณ์บนบัสสามารถสื่อสารกันได้โดยไม่ต้องมีการแทรกแซงจาก CPU ซึ่งนำไปสู่ประสิทธิภาพที่ดีขึ้นมาก แต่ก็ทำให้การ์ดต้องมีความซับซ้อนมากขึ้นด้วย บัสเหล่านี้มักจะแก้ไขปัญหาเรื่องความเร็วโดยการเพิ่มขนาดของเส้นทางข้อมูล จากบัสแบบขนาน 8 บิต ในรุ่นแรก ไปเป็น 16 หรือ 32 บิตในรุ่นที่สอง รวมถึงการเพิ่มการตั้งค่าซอฟต์แวร์ (ซึ่งต่อมาได้รับการกำหนดมาตรฐานเป็นPlug-n-play ) เพื่อทดแทนหรือแทนที่จัมเปอร์

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

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

รุ่นที่สาม

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

บัสอย่างเช่นWishboneได้รับการพัฒนาโดย ขบวนการ ฮาร์ดแวร์โอเพนซอร์สเพื่อพยายามขจัดข้อจำกัดทางกฎหมายและสิทธิบัตรออกจากการออกแบบคอมพิวเตอร์ให้มากยิ่งขึ้น

Compute Express Link (CXL) เป็น มาตรฐาน การเชื่อมต่อแบบเปิด สำหรับ CPU ความเร็วสูงไปยังอุปกรณ์และ CPU ไปยังหน่วยความจำ ออกแบบมาเพื่อเร่งประสิทธิภาพของศูนย์ข้อมูล รุ่นต่อไป [ 28 ]

ตัวอย่างของบัสคอมพิวเตอร์ภายใน

ขนาน

ซีเรียล

ตัวอย่างของบัสคอมพิวเตอร์ภายนอก

ขนาน

  • HIPPI ( High Performance Parallel Interface)
  • IEEE-488 (หรือที่รู้จักกันในชื่อ GPIB, General-Purpose Interface Bus และ HPIB, Hewlett-Packard Instrumentation Bus)
  • PC Cardซึ่งเดิมเรียกว่าPCMCIA นั้นนิยมใช้กันมากในคอมพิวเตอร์แล็ปท็อปและอุปกรณ์พกพาอื่นๆ แต่กำลังค่อยๆ ลดการใช้งานลงเนื่องจากการเข้ามาของ USB และการเชื่อมต่อเครือข่ายและโมเด็มแบบติดตั้งในตัว

ซีเรียล

ฟิลด์บัสจำนวนมากเป็นบัสข้อมูลแบบอนุกรม (ไม่ควรสับสนกับส่วนบัสข้อมูลแบบขนานของซิสเต็มบัสหรือการ์ดขยาย ) ซึ่งหลายตัวใช้ คุณลักษณะทางไฟฟ้าของ RS-485จากนั้นจึงกำหนดโปรโตคอลและตัวเชื่อมต่อของตนเอง:

บัสอนุกรมอื่นๆ ได้แก่:

ตัวอย่างของบัสคอมพิวเตอร์ภายใน/ภายนอก

ดูเพิ่มเติม

  • แผนผังการเชื่อมต่อและสล็อตของฮาร์ดแวร์คอมพิวเตอร์ พร้อมคำอธิบายโดยย่อ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Bus_(computing)&oldid=1359833515#External_buses "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ บัส (คอมพิวเตอร์)

ใน สถาปัตยกรรมคอมพิวเตอร์ บัส(ในอดีตเรียกว่า ทางด่วนข้อมูล [ 1 ] หรือ ดาต้าบัส ) คือระบบการสื่อสารที่ถ่ายโอน ข้อมูล ระหว่าง ส่วนประกอบภายใน คอมพิวเตอร์ หรือระหว่างคอมพิวเตอร์ [ 2...

รถบัสที่อยู่

บัส แอดเดรส คือบัสที่ใช้ระบุ แอดเดรสทางกายภาพ เมื่อ โปรเซสเซอร์ หรือ อุปกรณ์ที่เปิดใช้งาน DMA ต้องการอ่านหรือเขียนไปยังตำแหน่งหน่วยความจำ จะระบุตำแหน่งหน่วยความจำนั้นบนบัสแอดเดรส (ค่าที่จะอ่านหรือเขียนจะถูกส่งบนบัสข้อมูล) [ 4 ]...

การมัลติเพล็กซ์ที่อยู่

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

การดำเนินการ

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