เคยมีคำถาม ถามว่าทำอย่างไรจะต่ออุปกรณ์ทั้งฮาร์ดดิสก์และไดรฟ์ซีดีรอมตามมาตรฐาน IDE ได้มากกว่า 4 ตัว ในคอมพิวเตอร์ บทความตอนนี้เป็นบทความที่ได้รับการสนับสนุนจากผู้เชี่ยวชาญท่านหนึ่ง ซึ่งชี้ให้เห็นถึงข้อจำกัดของฮาร์ดแวร์เอง
บทความนี้เป็นบทความเชิงเทคนิค อาจจะต้องการความเข้าใจพื้นฐานด้านฮาร์ดแวร์พอสมควร
ย้อนกลับไปสมัยสถาปัตยกรรม AT ในคอมพิวเตอร์จะมี 9 IRQ คือ 0 - 8 ต่อมาเพื่อต้องการบรรลุข้อจำกัดดังกล่าว IBM ได้พัฒนาสถาปัตยกรรม XT โดยการเพิ่ม IRQ 9 - 15 IRQ 9- 15 ที่เพิ่มมานั้น เกิดจากการ "ซ้อน" โดยใช้การ Redirect โดย IRQ 2 ชี้ซ้อนไปที่ 9 แทน (Cascade 2-9) และ IRQ ที่ถูกกำหนดโดยมาตรฐานว่าจำเป็นต้องใช้สำหรับ IDE คือ IRQ 14 สำหรับ Primary IDE และ 15 สำหรับ Secondary IDE แต่ละ IRQ ใช้ต่อฮาร์ดดิสก์ได้ 2 ตัว รวมแล้วเป็น 4 ตัว และ IRQ อื่นๆ ก็ถูกกำหนดใช้สำหรับอุปกรณ์ต่างๆ หมดแล้ว ดังนั้น ทางที่เป็นไปได้ถ้าหากต้องการต่อฮาร์ดดิสก์มากกว่า 4 ตัวก็คือ หาทางพัฒนาขยายให้มี IRQ (Interrupt Request Queue) มากกว่าเดิม ซึ่งเป็นไปได้ในทางทฤษฎี แต่ในทางปฏิบัติไม่สามารถทำได้ ทางแรกในทางทฤษฎีที่มีการพูดถึงคือ ใช้ซอฟต์แวร์มาช่วย โดยการแก้ไขใน BIOS ตรง Interrupt 13h ใน BIOS ให้เห็นครบถึง 4 Drive และเป็น Interface เชื่อมต่อให้กับ Software เวลาที่ Software เรียกหาตัวที่เพิ่มมา BIOS ก็จะไปจัดการให้ เมื่อมีการลำเลียงข้อมูลลง Buffer ให้แล้ว ( ด้วยกระบวนการ DMA ) ก็จะ Interrupt ที่ IRQ15 ซึ่งมี Software ใน BIOS รองรับไว้ให้แล้ว แต่กรณีนี้ ถ้าหากเพิ่มให้ใช้ฮาร์ดดิสก์ได้มากกว่า 4 ตัว ต้องแก้ไขวงจรทั้งหมด เพราะโดยข้อเท็จจริงแล้ว ถึงจะปรากฎว่า IRQ 15 ตัวนั้น เกิดจากการใช้ interrupt service 8 port สองตัวต่อกันเชื่อมด้วย IRQ 2 - 9 ซึ่งถ้าหากเป็นเช่นนี้ ก็น่าจะมีการซ้อนเชื่อมกันไปได้อีก แต่ถ้าหากพิจารณาสถาปัตยกรรมแล้ว Cascade เป็นกระบวนการทาง Hardware ไม่ใช่ซอฟต์แวร์ เพราะสัญญาณ Interrupt มีขาออกแค่ 8 ขาเท่านั้น ( ตาม "ข้อกำหนด" ที่ IBM ตั้งไว้ ) ดังนั้น หากพิจารณาว่าเพิ่มโดยการทำ Cascade ขึ้น โดยการนำ IRQ2 มาเป็นตัวทริก PIC ( Programmable Interrupt Controller ) ตัวที่สองแล้วตัวที่สองจึงทำงานโดยเอาลอจิก 8 ตัวนั้นมาเทียบหาต่อไปว่าจะ Active ที่ Output ขาไหน โดยที่จะต้อง DeSelect ที่ขา Chip Select ของ PIC ตัวแรกออกก่อนด้วย เพราะขาเข้าของ PIC ทั้งสองจะรับลอจิกเดียวกันอยู่ เพียงแต่ลอจิกไหนจะทำงานต้องดูที่ขา Chip Select ขาที่เป็น IRQ2 Out ก็นำไปลากต่อกับ Chip Select ของ PIC ตัวที่สองแทน หากจะต่อเพิ่มไปอีก ก็ต้องสละ Output ของ PIC ตัวที่สองต่อไปอีก ซึ่งจะทำให้ระบบทำงานช้าลง เพราะหากมี Interrupt ที่ IRQ ท้ายๆ มันก็ต้องทริกต่อกันเป็นทอดๆ กว่าจะ Active จะใช้เวลาหลาย ns ดังนั้น ถ้าหากจะเพิ่มมากกว่านี้ทางที่เป็นไปได้ในทางที่สอง คือ ออกแบบฮาร์ดแวร์ใหม่เลย โดยการออกแบบใหม่ๆ อาจจะใช้ Metric มาช่วยในการออกแบบ โดยการใช้ Metric จะได้ว่าใช้ PIC สองตัว วางเป็น Metric จะทำให้เชื่อมต่อ PIC ต่างหากได้ถึง 256 ตัว แต่ละตัวก็ได้ 8 Bits เท่ากับจะได้ IRQ ถึง 65,536 IRQ โดยมี PIC คุมแค่ 2 ตัวหลักเท่านั้น และสามารถ Expand ได้อย่างอิสระ จาก PIC 2 ตัวถึง 256 ตัว
|