Những nguồn hệ thống là những kênh truyền thông, địa chỉ và những thiết bị bị cứng, tín hiệu khác dùng để truyền thông trên bus. Tại mức thấp nhất, những nguồn bao gồm những phần sau:
•Những địa chỉ bộ nhớ.
•Những kênh IRQ (interrupt request)
•Những kênh DMA (derect memory access)
•Những định vị cổng I/O
Những nguồn này được đòi hỏi và được sử dụng bởi nhiều thành phần của hệ thống. Những card tiếp hợp cần những nguồn này để truyền thông với hệ thống và hoàn thành mục đích của chúng. Không phải tất cả những card tiếp hợp điều có những yêu cầu nguồn tương tự. Một cổng truyền thông serial, cho ví dụ, cần kênh IRQ và định vị cổng I/O, trong khi card âm thanh cần những nguồn này và ít nhất một kênh DMA.
Khi hệ thống của bạn trở nên phức tạp, cơ hội cho những xung đột nguồn phát sinh. Vấn đề cấu hình trở thành quan trọng trong đầu những năm 1990, khi mà cấu hình bằng tay là tiêu chuẩn. Bắt đầu khoảng thời gian này, Microsoft và Intel phát triển một công nghệ được gọi là Cắm vào là chạy (pnp: Plug and Play), cho phép phát hiện tự động, quản lý và cấu hình phần cứng, hầu hết thời gian không cần bất kỳ sự can thiệp của người dùng. Window 95 là hệ điều hành PC có pnp. Sau này pnp được thay thế bằng ACPI (Advanced Configuration and Power Interface), kết hợp cấu hình thiết bị và quản lý nguồn vào một cấu hình duy nhất.
Các hệ thống hiện đại với ACPI và các bus hiện đại như PCI và PCI Express hiếm có những sự cố cấu hình những nguồn này. Hầu như trong tất cả trường hợp cấu hình được tự động và không có trục trặc.
Những yêu cầu ngắt
Những kênh yêu cầu ngắt, hoặc những ngắt phần cứng, được sử dụng bởi những thiết bị phần cứng đa dạng để chuyển tính hiệu bo mạch chủ mà một yêu cầu phải được đáp ứng đủ. Tiến trình này thì tương tự như một sinh viên giơ tay cho biết anh ta cần sự chú ý.
Những kênh ngắt này được thực hiện bởi những dây kim loại trên bo mạch chủ là trong những đầu nối khe cắm. Khi một ngắt riêng biệt được yêu cầu, một trình thủ tục đặc biệt tiếp quản hệ thống trước tiên lưu trữ toàn thanh ghi CPU chứa trong ngăn xếp và sau đó quản lý hệ thống vào bảng vector ngắt. Bảng vector này chứa một danh sách địa chỉ bộ nhớ tương ứng với những kênh ngắt. Tùy thuộc trên ngắt nào được yêu cầu, chương trình tương ứng với kênh đó được chạy.
Những con trỏ trên bảng vector chỉ địa chỉ của bất cứ trình điều khiển phần mềm nào được sử dụng để phục vụ card phát sinh ra yêu cầu ngắt. Đối với card mạng, cho ví dụ, vector có thể chỉ địa chỉ của trình điều khiển mạng được tải để vận hành card; đối với bộ điều khiển đía cứng, vector có thể chỉ mã BIOS để vận hành bộ điều khiển.
Sau khi thủ tục phần mềm riêng biệt hoàn tất thực thi bất cứ chức năng nào card cần thiết, phần mềm kiểm soát ngắt quay về ngăn xếp chứa những thanh ghi CPU và hệ thống tiếp tục bất kể cái gì nó đang thực hiện trước khi ngắt xảy ra.
Thông qua việc dùng những ngắt, hệ thống có thể trả lời những sự kiện ngoài đúng lúc. Mỗi lần cổng serial truyền 1 byte vào hệ thống, một ngắt được phát sinh để đảm bảo hệ thống đọc byte đó trước khi byte khác đến. Ghi nhớ rằng trong một số trường hợp thiết bị cổng cụ thể, một modem với chip 16550 hoặc chip UART cao hơn có thể kết hợp tầng đệm byte cho phép nhiều chữ số dữ liệu được lưu trữ trước khi một ngắt phát sinh.
Những ngắt phần cứng thông thường được dành ưu tiên bởi những số của chúng; với một số ngoại lệ, những ngắt ưu tiên cao nhất có những số thấp nhất. Những ngắt ưu tiên cao hơn lấy quyên ưu tiên hơn những ngắt ưu tiên thấp hơn bằng cách tạm thời chặng chúng lại. Kết quả là, vài ngắt có thể xảy ra trong hệ thống đồng thời, với mỗi ngắt xếp lồng trong cái kia. Bus ISA sử dụng cảm ứng ngắt trích khỏi mép (edge-triggered interrupt sensing), trong đó một ngắt được cảm nhận bởi một tín hiệu thay đổi được gửi đi trên dây kim loại riêng biệt định vị trên đầu nối khe cắm. Một dây kim lịa khác tương ứng với mỗi ngắt phần chứng có thể. Do rối rắm xuất hiện nếu nhiều hơn một card được thiết lập để xử dụng ngắt riêng biệt. Cho nên mỗi ngắt trường được định rõ cho một thiết bị phần cưng. Phần lớn thời gian, những ngắt không thể được chia sẻ.
Trước tiên, IBM phát triển những phương thức để chia sẻ những ngắt trên bus ISA, nhưng một ít thiết bị theo những quy luật cần thiết để làm điều này có tính xác thực. Bus PCI vốn đã cho phép chia sẻ ngắt; thực tế, thực sự tất cả card PCI được thiết lập ngắt PCI và chia sẻ ngắt này trên bus PCI. Vấn đề thực sự là về mặt kỹ thuật có hai bộ ngắt phần cứng trong hệ thống: những bộ ngắt PCI và những bộ ngắt ISA. Với cacrd PCI làm việc trên PC, những ngắt PCI trước tên ánh xạ những ngắt ISA, kế tiếp được cấu hình như không chia sẻ được. Do vậy, trong nhiều trường hợp bạn phải gán ngắt không xung đột cho mỗi card, thậm chí cả những card PCI. Sự xung đột giữa gán các ISA IRQ cho những ngắt PCI gây ra nhiều sự cố cầu hình cho người dùng bo mạch chủ PCI và tiếp tục gây sự cố sau sự phát triển của Windows 95 và công nghệ cắm là chạy (plug and play) của nó.
Giải pháp cho vấn đề chia sẻ ngắt của card PCI dôi khi được gọi là PCI IRQ steering, được hỗ trợ trong nhiều hệ điều hành(bắt đầu với Windows 95 OSR 2.x) và BIOS hơn một thập kỷ. PCI IRQ Streering cho phép hệ điều hành cắm là chạy như là Windows tới ánh xạ động (dynamically map) hoặc "lái (steer)" những card PCI (hầu hết dùng PCI INTA#) đến những ngắt PC tiêu chuẩn và cho phép vài card PCI được ánh xạ đến gnawts tương tự. Nhiều thông tin về PCI IRQ Steering được tìm thấy trong phần "các ngắt PCI", trong chương này.
Những ngắt phần cứng đôi khi được xem như những ngắt ngụy trang (maskable interrupt), nghĩa là những ngắt có thể được che giấu hoặc tắt đi trong thời gian ngắn trong lúc CPU được sử dụng cho những hoạt động then chốt khác. Nó tùy thuộc và hệ thống BIOS và chương trình để quản lý ngắt chính xác và hữu hiệu cho sự thực thi hệ thống tốt nhất.
Những ngắt bus ISA 8 bit
PC và XT ( những hệ thống dựa trên CPU 8 bit 8086) cung cấp cho tắm ngắt phần cứng ngoài khác biệt. Bảng 4.57 thể hiện những cách dùn giêu biểu cho những ngắt này, được đánh số 0-7.
Nếu một hệ thống có một trong các bus ISA 8 bit đầu tiên, bạn sẽ tìm thấy các nguồn IRQ được cung cấp bởi hệ thống có một giới hạn chặc chẽ. Cài đặt vài thiết bị cần những dịch vụ của hệ thống IRQ trong hệ thống loại PC/XT có thể là một nghiên cứu trong sự thất vọng bởi vì cách duy nhất để giải quyết vấn đề ngắt là gỡ bỏ bo tiếp hợp.
Những ngắt bus EISA, ISA 16 Bit và MCA
Kèm theo sự giới thiệu AT, dựa trên bộ xử lý 286, là sự gia tăng số lượng ngắt phần cứng ngoài mà một bus có thể hỗ trợ. Số lượng ngắt tăng gấp đôi đến 16 bởi dùng đến hai bộ điều khiển ngắt Intel 8259, thắng những ngắt được phát sinh bới cái thứ hai thông qua IRQ2 không sử dung jtreen bộ điều khiển htuws nhất. Sự săp đặt này tạo hữu hiệu chỉ 15 phép gán IRQ có thể và IRQ2 trên nên không thể sử dụng được.
Bằng cách dẫn tất cả những ngắt từ bộ điều khiển IRQ thứ hai xuyên qua IRQ2 trên cái thứ nhất, tất cả những ngắt mới này được gán một mắc ưu tiên được xếp lồng vào nhau giữa IRQ1 và IRQ3. Do đó IRQ15 có sự ưu tiên hơn IRQ3. Hình 4.54 thể hiện cách hai chip 8259 được nối dây kim loại để tạo tầng xuyên qua IRQ2 trên chip thứ nhất.
Để ngăn ngừa những sự cố với những bộ bo sử dụng IRQ2, những nhà thiế kế hệ thống AT dẫn đường một trong những ngắt mới (IRQ9) chiếm vị trí slot sau khi gỡ bỏ IRQ2. Nghĩa là bất kỳ card nào bạn cài đặt trong hệ thống hiện đại yêu cầu dùng IRQ2 thì thực sự sử dụng IRQ9.
Bảng 4.76 thể hiện những sự dùng tiêu biểu cho những ngắt trong bus ISA 16 bit, PCI AGP 32 bit và liệt kê chúng trong thứ tự ưu tiên từ cao đến thấp nhất. Những bus EISA và MCA lỗi thời sử dụng anh xạ IRQ tương tự.
Nhân xét rằng những ngắt 0, 1, 2, 8 và 13 không trên những đầu nối bus và không chấp nhận những card tiếp hợp. Những ngắt 8, 10, 11, 12, 13, 14 và 15 từ bộ điều khiển ngắt thứ hai và chỉ có thể sử dụng bởi những bo dùng đầu nối mở rộng 16 bit do đây là nơi những dây dẫn kim loại này định vị. IRQ9 được nối lại với đầu nối khe cắm 8 bit trong vị trí của IRQ2, nên IRQ9 thay thế IRQ2 và, do vậy, có khả năng với những card 8 bit, như thể nó là IRQ2.
Lưu ý:
Mặc dầu bus ISA 16 bit có gấp đôi cố ngắt trong hệ thống bus ISA 8 bit, bạn vẫn có thể chạy ra khỏi khả năng những ngắt bỏi vì chỉ những thiệt bị tiếp hợp 16 bit có thể dùng phần lớn những ngắt mới. Bất kỳ card tiếp hợp PCI 32 bit đều có thể được ánh xạ đến bất kỳ ISA IRQ nào.
Những dùng IRQ dư trong hệ thống ISA 1 bit là sự trợ giúp nhỏ trừ khi những bo tiếp họp bạn cần sử dụng cho phép cấu hình chúng cho một trong những IRQ không được dùng đến. Một số thiệt bị được kiểm soát bằng mạch điện điện tử nên chúng chỉ dùng một IRQ riêng biệt. Một số card tiếp hợp ISA 16 bit cũ hơn không được thiết kế để dùng với IRQ 16 bit (9-15). Nếu có một thiets bị dùng IRQ, bạn phải giải quyết sự xung đột trước khi cài đặt card tiếp hợp thứ hai. Nếu không có card tiếp hợp nào cho phép bạn tái cấu hình sử dụng IRO của nó thì cơ hội để bạn sử dụng hai thiết bị trong cùng hệ thống là không được.
Nhưng ngắt PCI
Bus PCI hỗ trợ những ngắt phần cứng (irqs) được dùng bởi những thiết bị PCI để truyền tín hiệu tới bus liên quan. Bốn ngắt PCI được gọi là INTA#. INTB#, INTC#. Những ngắt intx# này nhạy mức độ (level sensitive), nghĩa là chuyển bằng tín hieuj điện cho phép chúng được chia sẻ trong số những card PCI. Thực tế, tất cả những chip hay card thiết bị đơn hay PCI chức năng đơn chỉ dùng một ngắt INTA#. Đó là một trong những quy luật trong đăc điểm kỹ thuật PCI. Nếu những thiết bị thêm vào trong con chip hay trên bo card có thể dùng INTB# qua INTD#. Bởi vì có một rất ít chip hay bo PCI đa chức năng, trên thực tế tất cả thiết bị trên bus PCI định sẵn đều chia sẻ INTA#.
Cho bus PCI định chức năng trong một PC, những ngắt PCI phải được ánh xạ đến những ngắt ISA. Bởi do những gắt ISA không thể được chia sẻ, trong phấn lớn trường hợp mỗi card PCI dùng INTA# trên bus PCI phải được ánh xạ đến ngắt ISA không thể chia chia sẻ. Cho ví dụ, bạn có một hệ thống với 4 khe cắm PCI và 4 card PCI được lắp đặt, mỗi card dùng ngắt PCI INTA#. Những card này, mỗi card được ánh xạ đến yêu cầu ngắt ISA khác nhau, như là IRQ9 , IRQ10, IRQ11 hay IRQ5 trong phần lớn trường hợp.
Tìm những IRQ riêng biệt cho mỗi thiết bị trên cả hai bus ISA và PCI luôn luôn là một vấn đề : đơn giản không có đủ những cái ngắt tự do để đi vòng. Thiết lập hai thiết bị ISA đến cùng IRQ là không thể (cái được gọi là chia sẻ IRQ of IRQ4 bởi COM1/3 và IRQ3 với COM2/4 không cho phép cả hai cổng COM hoạt động đồng thời), nhưng trong phần lớn hệ thống mới hơn có khả năng chia sẻ nhưng IRQ giữa nhiều thiết bị PCI. Những BIOS hệ thống mới hơn cũng như những hệ điều hành cắm là chạy hỗ trợ chức năng được biết như PCI IRQ Steering. Để hoạt động, cả hai BIOS hệ thống và hệ điều hành phải hỗ trợ IRQ Steering. Những BIOS hệ thống cũ hơn và Windows 95 hay 95A không có sự hỗ trợ cho PCI IRQ Steering.
Bộ điều khiển ngắt có thể lập trình cao cấp
Như sự thay thế cho cặp bộ điều khiển ngắt 8259, Intel phát trển Bộ điều khiển ngắt có thể lập trình cao cấp (APIC: Advanced Programmable Interrrupt Controller) vào giữa năm 1990. Mặc dù tất cả các bộ xử lý từ Pentium cơ bản chứa một APIC, APIC cũng phải được hiện diện trên chpset bo mạch chủ, BIOS và hệ điều hành cũng phải hỗ trời APIC. Sư hỗ trợ APIC hiện diện trong phần lớn bo mạch chủ gần đây và trong tất cả các Windows phát hành từ Windows 2000. Trong một số hệ thống bạn có thể cho phép hoặc vô hiệu sự hỗ trợ APIC trên BIOS hệ thống nhưng hầu hết nó có hiệu lực thường xuyên.
APIC cung cấp hỗ trợ cho đa bộ xử lý, nhưng cũng được dùng trên máy tính bộ xử lý đơn. Lợi điểm chính của APIC cho bộ xử lý đơn là sự hỗ trợ cho trên 15 PCI IRQ. Phần lớn sự thực thì APIC hỗ trợ thực sự lên tới 24 IRQ. Mặc dầu Windows 2000 có khuynh hướng đặt những IRQ PCI vào hàng ISA cở bản 0-15, thậm chí khi APIC có hiệu lực, Windows XP và sau này tận dụng mọi sử dụng dịch vụ APIC khi được cài đặt vào hệ thống có APIC. Với Windows XP và sau này, APIC hạn chế chia sẻ IRQ để cho phép những thiết bị hoạt động tốt hơn với xung đột ít hơn. Cho ví dụ, trong hệ thống tiêu biểu với APIC, nhưng IRQ PCI được gán như sau:
•PCI IRQ 16: đồ họa audio/AGP trên bo mạch chủ (được chia sẻ)
•PCI IRQ 17: bộ điều khiển card USB 1.1 thêm vào (không được chia sẻ)
•PCI IRQ 18: bộ điều khiển card USB 1.1 thêm vào (không được chia sẻ)
•PCI IRQ 19: thiết bị tiếp hợp Ethenet 10/100/ bộ điều khiển card USB 2.0 thêm vào (được chia sẻ)
•PCI IRQ 21: các bộ điều khiển USB 1.1 trên bo mạch chủ (3)/bộ điều khiển USB 2.0 trên bo mạch chủ (được chia sẻ)
Những IRQ ISA 0-15 cở bản trên hệ thống mẫu được sử dụng chỉ cho nhưng thiết bị ISA, do vậy ngăn ngừa những xung đột IRQ ISA-PCI
Lưu ý:
APIC phải có trong BIOS hệ thống trước khi cài đặt những phên bản Windows x64
Những xung đột (IRQ conflicts)
Một trong những xung đột IRQ là cái tiềm năng giữa cổng COM2: được tích hợp trong phần lớn bo mạch chủ hiện đại và bộ điều giải ISA bên trong (cơ số card). Gốc vấn đề từ thực tế là những bộ điều giả cư số card máy tính thực sự (không gọi là winmodems, là Software based) kết hợp một cổng serial như là thành phần của kết cấu mạch của card. Cổng serial nay được xem như COM2: bởi mặc định. Máy tính của bạn xem như có 2 cổng COM2: mỗi cổng dùng cùng nguồn IRQ và những địa chỉ cổng I/O.
Giải pháp dễ dàng cho vấn đề này: vào system BIOS Setup và làm vô hiệu cổng COM2: dựng sắn trong hệ thống. Trong khi bạn có thể suy nghĩ về cách vô hiêu hóa của cổng COM1: bởi vì bạn không thích dùng nó. Làm vô hiệu những cổng comx: không sử dụng là một trong những phương thức tốt nhât để thả cặp IRQ cho những thiết bị khác sử dụng.
Xung đột IRQ khác cũng liên quan đến những cổng serial (COM). Bạn có thể nhận ra hai bộ phận trước mà hai IRQ được dành cho hai cổng COM. IRQ3 được dùng cho COM2: và IRQ4 được chùng cho COM1: . Vấn đề xảy ra khi bạn có nhiều hơn hai cổng serial trong hệ thống. Khi mọi người thêm cổng COM3: và COM4:, họ thường không cài đặt chugns ở chết độn ngắt không va chạm, nguyên nhân gay xung đột và các cổng không hoạt động.
Lưu ý rằng một cách dễ dàng để kiểm tra những thiết lập ngắt là sử dụng Device Manager trong Windows 95/98, Windows NT, hay Windows 2000/XP. Bằng cach nhấp đúp chuột vào biểu tượng computer Properties trong Device Manager, bạn lấy được danh sách ngắn gon của tất cả các nguồn hệ thống được sử dụng. Microsoft cũng bao gồm chương trình trong windows 98 và sau này được gọi là system infomation (Msinfo32), cho một báo cáo thông tin hệ thống chi tiết.
Để cung cấp số tối đa những ngắt có thể được chia sẻ trong hệ thống không có Slot ISA, tôi đề cử sự thực hiện những bước sau đó hệ thông BIOS:
•Vô hiệu bất kỳ cổng kế thừ không sử dụng trong hệ thống BIOS. Cho ví dụ, nếu bạn dùng cổng USB thay vì cổng serial và parallel, thì bô hiệu cổng serial và palallel. Việ nà có thể thả ra ba IRQ.
•Lựa chọn những Select the IRQ tự do trong bước 1 sử dụng cho PCI/Plug and play. Tùy thuốc vào BIOS, màn hình để sử dụng có thể được xem như màn hình Plug and Play/ PCI Resource Exclusion hay màn hình Plug and Play/PCI configuration.
•Cho phép lựa chọn re configuration Data nên những bảng lộ trình IRQ trong CMOS được thông thoáng.
•Làm những thay đổi và thoat khỏi chương trình cài đặt
Những kênh DMA
Những kênh truy cập bộ nhớ trực tiếp (DMA: Direct memory Access) được dùng bởi những thiết bị truyền thông gửi và nhận thông tin ở tốc độ cao. Một cống Serial hay parellel không dùng kênh DMA, nhưng một card âm thanh cơ số ISA hoặc thiết bị tiếp hợp SCSI thường sử dụng nó. Nhưng kênh DMA đội khi được chia sẻ nếu những thiết bị không là loại mà cùng cần trong cùng một lúc. Cho ví dụ, bạn có một thiệt bị tiếp hợp mạng và một thiết bị tiếp hợp sao chẹp dạng băng chia sẻ DMA kênh 1, nhưng bạn không hteer sao chép trong khi mạng đang chạy. Để sao chép trong hi mạng hoạt động, bạn phải chắc chắn rằng mỗi thiết bị tiếp hợp dùng một kênh duy nhất.
Lưu ý:
Có vài lại DMA trong máy vi tính hiện đị. Những kênh DMA trong phần này liên quan đến bus ISA. Những bus khác, như là bus ATA/IDE được dùng bởi ổ cứng, có những sự sử dụng DMA khác nhau. Những kênh DMA ở đây không liên quan đến ổ đĩa ATA/IDE, thậm chí nếu được thiết lập để dùng DMA hay chuyển dịch Ultra DMA.
Những kênh DMA bus ISA 8 bit
Trong bus ISA 8 bit, bốn kênh DMA hỗ trợ những chuyển dịch dữ liệu tốc độ cao giữa những thiết bị I/O và bộ nhớ. Ba kênh có hiệu lực cho những Slot mở rộng. Bảng 4.77 thể hiện sự sử dụng tiêu biểu những kênh DMA này.
Do phần lớn hệ thống có cả hai ổ mềm và ổ cứng, chỉ có một kênh DMA có hiệu lực trong hệ thống 8 bit ISA
Những kênh DMA ISA 16 bit
Từ CPU 286, bus ISA hỗ trợ tám kênh DMA, với bảy kênh có hiệu lực đối với những Slot mở rộng. Tương tự như những dòng IRQ được mở rộng. Những kênh DMA thêm vào được tạo bởi phân cấp bộ điều khiển DMA thứ hai đối với bộ điều khiển thứ nhất. DMA kênh 4 được dùng để phân cấp những kênh 0-3 đối với bộ xử lý. Những kênh 0-3 có hiệu lực cho những chuyển dịch 8 bit và những kênh 5-7 chỉ dùng cho những chuyển dịch 16 bit. Bảng 4.87 thể hiện sự sử dụng điển hình cho những kênh DMA.
Nhận xét rằng những thiết bị tiếp hợp PCI không dùng những kênh DMA ISA này; những cái này chỉ dùng card ISA. Tuy nhiên, một số card PCI sao chép sử dụng những kênh DMA (như là card âm thanh) làm việc với phần mềm cũ hơn.
Kệnh DMA tiêu chuẩn duy nhất được dùng trong mọi hệ thống là DMA 2, được dùng phổ biến bở bộ điều khiển ổ mềm. DMA 4 không thích hợp và không xuất hiện trong những Slot bus. DMA kênh 1 và 5 thì phần lớn được sử dụng rộng rãi bởi những card âm thanh ISA, như là Sound Blaster 16, hay bởi những card am thanh PCI mới hơn mà sao chép chương trình từ những cái cũ hơn cho sự tương thích ngược. Những card này dùng cả hai kênh DMA 8 bit và 16 bit cho các chuyển dịch tốc độ cao. DMA 3 được dùng khi cổng Parallel bỏi sự mặc định. Tuy nhiên, một khối cầu nhảy trên bo mạch chủ của một số hệ thống có thể thiết lập dùng DMA 3 cho cổng Parallel và tránh những xung đột với card âm thanh dùng DMA 1.
Lưu ý:
Mặc dầu DMA kênh 0 xuất hiện trong sự mở rộng đầu nối khe cắm 16 bit và chỉ dược dùng bởi 16 bit, nó thể hiện những chuyển dịch chỉ 8 bit! Bởi vì điều này, bạn thường không thấy DMA 0 như một sự lựa chọn trên những card 16 bit. Phần lớn những card 16 bit (như là những thiết bị tiếp hợp chủ SCSI) dùng những kênh DMA có sự lựa chọn của chúng hạn chế đối với DMA 5-7.
Những địa chỉ cổng I/O
Những cổng I/O cho phép những truyền thông giữa những thiết bị và phần mềm trong hệ thống. Chúng tương đương những kênh radio hai đường. Nếu muốn gọi cổng serial, bạn cần biết trên đó cổng I/O đang lắng nghe (kênh radio). Tương tự, nếu muốn nhận dữ liệu từ cổng serial, bạn cần biết trên cùng kênh trong đó nó đang truyền đi.
Không giống như những kênh IRQ và DMA. Hệ thống có dư thừ cổng I/O. Có chính xác 65,535 cổng được đánh số từ 0000h đến ffffh là một tính năng của thiết kế bộ xử lý Intel x86. Mặc dầu phần lớn thiết bị dùng lên tới 8 cổng cho chính chúng, với nhiều cổng dự trữ, bạn sẽ không biết kiệt cạn bất kỳ lúc nào ngay. Vấn đề lớn nhất là thiết lập hai thiết bị dùng chung cổng.
Phần lớn hệ thống cắm là chạy hiện đại giải quyết bất kỳ xung đột cỏng và chọn những cổng thay thế cho một trong những thiết bị xung đột.
Một vấn đề rối rắm là những cổng I/O được thiết kế bởi những địa chỉ dạng số thập lục phân tương tự như những địa chỉ bộ nhớ. Chúng không phải là bộ nhớ; chùng là những cổng. Sự khác biệt là khi gửi dữ liệu đến địa chỉ bộ nhớ 1000h, nó được chứa trong bộ nhớ SIMM hay DIMM. Nếu bạn giửi dữ liệu đến địa chỉ cổng I/O 1000h, nó được gửi ra bus ở kênh đó, bất kỳ ai quan tâm đều có thể nhận biết nó. Nếu không ai quan tâm đến địa chỉ cổng này, dữ liệu đến cuối bus và được sáp nhập bởi những điện trở kết thúc bus.
Những chương trình trình điều khiển chủ yếu tác động đến những thiết bị tại những địa chỉ cổng khác nhau. Trình điều khiển phải biết cổng nào thiết bị đang dùng để làm việc và ngược lại. Đây thường không là sự cố bởi vì trình điều khiển và thiết bị xuất phát từ cùng công ty.
Những thiết bị bo mạch chủ và chipset thường được đặt để dừng những địa chỉ cổng I/O 0hffh, những thiết bị khác dùng 100hfffh. Bảng 4.79 thể hiện những sử dụng cổng I/O đựa trên chipset và bo mạch chủ được dùng phổ biến.
Để tìm ra chính xác địa chỉ cổng nào được dùng trên bo mạch chủ, tham khảo tài liệu bo mạch chủ hay tìm những thiết lập trong Windows Divece Manager.
Những thiết bị dựa trên bus đặc điểm dùng những địa chỉ từ 100h trở lên. Bảng 4.80 liệt kê những địa chỉ thiết bị dựa trên bus được sử dụng chung và một số card thiết bị tiếp hợp chung và những thiết lập của chúng.
Để tìm ra chính xác địa chỉ mà những htieets bị của bạn đang sử dụng, một lần nữa tôi đề nghị tham khảo tài liệu cho thiết bị hay tìm thiết bj trong Windows Device Manager. Nên nhớ rằng tài liệ cho một số thiết bị có thể chỉ liệt kê địa chỉ khởi động thay vì dãy đầy đủ địa chỉ cổng I/O được dùng.
Hầu như tất cả địa chỉ trên những bus hệ thống dùng địa chỉ cổng I/O. Phần lớn đại chỉ này được tiêu chuẩn hóa hoàn toàn, nghĩa là những xung đột hay sự cố sẽ không thường xảy ra với những thiết lập này.
Theo "Nâng cấp và sửa chữa máy tính" Scott Mueller