Làm thế nào là thiết bị được xác định trong liệt kê PCI? (xe buýt / thiết bị / chức năng)


8

Tôi bối rối về liệt kê PCI Bus / Thiết bị / Chức năng. Nhìn vào trang Wikipedia về cấu hình PCI , tôi thấy rằng đối với một xe buýt nhất định, chủ sẽ yêu cầu ID nhà cung cấp và ID thiết bị cho tất cả các thiết bị sử dụng chức năng 0. Nếu tất cả 0xFF được trả về, thì không có thiết bị nào ở đó và tiếp tục di chuyển. Nếu tìm thấy ID thiết bị hợp lệ và ID nhà cung cấp, thì có một đơn vị PCI ở đó và nó sẽ được liệt kê. Tôi không chắc chắn làm thế nào thiết bị trong bus.device.feft được xác định.

Ví dụ: giả sử tôi có CPU có một bus PCI và một thiết bị ngoại vi PCI được gắn vào nó. Tôi hiểu rằng CPU sẽ nhìn trên bus 0 (theo mặc định) và sẽ kiểm tra tất cả các số thiết bị đang xem chức năng 0. Làm thế nào để xác định số thiết bị của thiết bị ngoại vi?

Câu trả lời:


6

Trong khung PCI gốc ("PCI thông thường") và trong PCI-X cũng vậy, các thiết bị tương ứng với "khe", mỗi thiết bị có các đầu nối riêng được gắn vào cùng một bus song song. Mỗi khe có một mã ID duy nhất được xác nhận trong quá trình liệt kê. Bảng liệt kê về cơ bản là hỏi (cho mỗi vị trí): "Này, có gì hiện diện trong vị trí này không?" Thiết bị đã phản hồi bằng cách lái dữ liệu lên xe buýt để phản ứng với tín hiệu này. Thiếu phản ứng có nghĩa là không có thiết bị.

Một thiết bị cũng có thể là một "cây cầu" có nghĩa là nó đã hình thành một chiếc xe buýt cấp dưới. Xe buýt đó sẽ có một ID riêng (được gán từ thượng nguồn) và sẽ có bộ vị trí riêng được liệt kê độc lập.

PCI-Express (PCIe) là hoàn toàn khác nhau. PCIe không thực sự là một chiếc xe buýt - như trong một tài nguyên được chia sẻ giữa các thiết bị; thay vào đó, mỗi thiết bị có kết nối nối tiếp điểm-điểm riêng với thiết bị ngược dòng của nó (và với bất kỳ thiết bị xuôi dòng nào - và nếu nó có thiết bị xuôi dòng, điều đó có nghĩa là nó cũng hoạt động như một cây cầu). Hãy nghĩ về PCIe giống như một mạng LAN. Mỗi cây cầu tương tự như một công tắc, có một loạt các cổng được kết nối với các thiết bị khác. Các thiết bị khác có thể là thiết bị đầu cuối hoặc chúng có thể là các thiết bị chuyển mạch khác (ví dụ: cầu PCIe).

PCIe được thiết kế theo cách mà khung khái niệm và địa chỉ của nó (và do đó hành vi được cung cấp cho phần mềm) tương thích với PCI và PCI-X. Việc thực hiện mặc dù là hoàn toàn khác nhau. Ví dụ, trong các thiết bị liệt kê, vì nó là điểm tới điểm, câu hỏi duy nhất cần được xác định tại mỗi điểm trong bảng liệt kê là "có gì không?" Vì mỗi thiết bị có bộ dây độc lập riêng, ID thiết bị về cơ bản đều được mã hóa cứng (do đó mỗi cây cầu, bao gồm cả "phức hợp gốc" cấp cao nhất, sẽ cho mỗi thiết bị biết ID thiết bị của nó sẽ là gì).

Trong mọi trường hợp, phần "chức năng" của bus / thiết bị / chức năng được xử lý nghiêm ngặt trong thiết bị ngoại vi. Ví dụ, bộ điều khiển NIC cổng kép thường sẽ có hai chức năng, một chức năng cho mỗi cổng. Chúng có thể được cấu hình và hoạt động độc lập, nhưng đường dẫn dữ liệu từ CPU đến chức năng là giống nhau cho cả hai.


1
Câu trả lời hơi khó hiểu: 1) trong PCI "số thiết bị" thực sự có nghĩa là "số khe" (và nó có ý nghĩa), 2) bạn nói "PCIe hoàn toàn khác nhau" và "vì mỗi thiết bị có một bộ dây độc lập riêng , ID thiết bị về cơ bản đều được mã hóa cứng ", có nghĩa là bộ dây (= khe) có ID được mã hóa cứng cho nó, do đó, nó giống như trong PCI. Bây giờ, câu hỏi là khi nào "mã hóa cứng" xảy ra? Các công tắc / cầu nối gán lại ID khi thiết lập lại?
xealits

2
Vâng. Điều đó có thể được nói tốt hơn. Vấn đề là ở PCI, thẻ nằm trên một xe buýt dùng chung nhưng "biết" nó nằm ở vị trí nào và chỉ phản hồi khi pin xác định vị trí của nó được xác nhận. Trong PCIe, cây cầu có N bộ "dây" khác nhau. Vì vậy, thiết bị cầu có số khe riêng biệt cho mỗi bộ dây. Từ quan điểm của cây cầu, khe đó có một số xác định; nó chỉ phải xác định xem có cái gì ở đó không. Bản thân thẻ không biết nó nằm ở vị trí nào. Một khi cây cầu xác định có thứ gì đó ở đó, nó sẽ cho thiết bị đó biết số khe của nó là gì.
Gil Hamilton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.