PCIE 구성

아래 표는 PCIE 의 총 전송 속도 = lane 수 * 단일 lane 대역폭

PCIE 및 PCI 의 가장 큰 변화는 병렬 대 직렬, 차등 신호를 통해 전송되는 것입니다.

Start (base address register)

dw (32bit)

pcie 는 Device Core 가 생성된 후 트랜잭션 계층 (transacce < P > PCIe 버스에서 스토리지 쓰기 요청 TLP 는 Posted 데이터 전송 방식을 사용합니다. 스토리지 및 I/O 와 관련된 다른 메시지는 Split 방식을 사용하여 데이터 전송을 수행합니다. 이러한 요청 메시지는 메시지를 완료해야 하며 발신자에게 통지하기 전에 데이터 요청 메시지가 처리되었음을 알려야 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 스토리지명언) 스토리지 읽기 및 쓰기 요청 TLP 는 32 비트와 64 비트 주소라는 두 가지 주소 형식을 가진 주소 라우팅 방식을 사용하여 데이터 전송을 수행합니다. 스토리지 읽기 및 쓰기 및 입출력 읽기 요청의 3 번째와 4 번째 이중 단어에 TLP 의 32 비트 또는 64 비트 주소를 저장합니다. 메모리, I/O 및 원자 작업 읽기 및 쓰기 요청에 사용되는 TLP 헤더는 비교적 유사합니다. < P > PCIe 버스에서 일부 TLP 에는 스토리지 쓰기 요청, 스토리지 읽기 완료 TLP 등과 같은 데이터 페이로드가 포함되어 있습니다. PCIe 버스에서 TLP 에는 Max_Payload_Size, Max_Read_Request_Size 및 RCB 매개변수와 관련된 Data Payload 크기가 포함되어 있습니다.

RC (PCI Express root complex), RC 모드의 경우 PCIE 유형 1 구성 헤더

EP (endpoint device) 작동 방식, EP 모드의 경우 PCIE 유형 구성 사용 PCIe 장치에는 각각 Device Capability 레지스터와 device corted 에 있는 "Max_Payload_Size" 및 "Max_Payload_SizeSupported" 매개변수가 있습니다

반면 Max_Payload_Size 매개 변수의 크기는 PCIe 링크의 전송 효율성에 비례합니다. 이 매개 변수가 클수록 PCIe 링크 대역폭의 활용도가 높아지고 이 매개 변수가 작을수록 PCIe 링크 대역폭의 사용률이 낮아집니다.

Max_Read_Request_Size 매개 변수는 Device Control 레지스터에 정의되어 있습니다. 이 매개 변수는 스토리지 읽기 요청 TLP 의 길이 필드와 관련이 있습니다. 여기서 길이 필드는 Max_Read_Request_Size 매개 변수보다 클 수 없습니다. 스토리지 읽기 요청 TLP 에서 Length 필드는 대상 디바이스에서 읽어야 하는 데이터의 양을 나타냅니다.

Max_Read_Request_Size 매개 변수와 Max_Payload_Size 매개 변수 사이에는 직접적인 연결이 없으며 Max_Payload_Size 매개 변수는 스토리지 쓰기 요청 및 스토리지에만 적용됩니다

PCI 버스에서 인터럽트 요청을 제출해야 하는 모든 장치는 INTx 핀을 통해 인터럽트 요청을 제출할 수 있어야 하며 MSI 메커니즘은 선택 사항입니다. 반면 PCIe 버스의 경우 PCIe 디바이스는 MSI 또는 MSI-X 인터럽트 요청 메커니즘을 지원해야 하며 INTx 인터럽트 메시지는 지원하지 않을 수 있습니다. PCIe 버스에서 MSI 및 MSI-X 인터럽트 메커니즘은 스토리지 쓰기 요청 TLP 를 사용하여 프로세서에 인터럽트 요청을 제출합니다. < P > Legacy 인터럽트 방식보다 MSI 또는 MSI-X 인터럽트 메커니즘을 사용하여 INTx 측 밴드 신호를 제거하고 PCIe 버스의 "순서" 를 보다 합리적으로 처리할 수 있습니다. 현재 대부분의 PCIe 장치는 MSI 또는 MSI-X 인터럽트 메커니즘을 사용하여 인터럽트 요청을 제출합니다.

1, 드라이버가 운영 체제에 물리적 연속 메모리를 요청합니다.

2, 호스트가이 주소에 데이터를 씁니다.

3, 호스트가 이 메모리의 물리적 주소를 FPGA; 에 알려줍니다.

4, FPGA 는 호스트에 대한 읽기 TLP 요청을 시작합니다. 여러 읽기 요청을 연속적으로 실행합니다.

5, 호스트가 FPGA 에 CPLD 패키지 반환-여러 CPLD 연속 반환;

6, FPGA 는 CPLD 패키지에서 유효한 데이터를 제거합니다.

7, FPGA 가 데이터 전송을 마친 후 인터럽트 등을 통해 호스트 DMA 완료를 알립니다.

1, 드라이버가 운영 체제에 물리적 연속 메모리를 요청합니다.

2, 호스트가 이 메모리의 물리적 주소를 FPGA; 에 알려줍니다.

3, FPGA 는 호스트에 쓰기 TLP 요청을 시작하고 TLP 패킷에 데이터를 넣어 여러 쓰기 요청을 연속적으로 실행합니다.

4, FPGA 가 데이터 전송을 마친 후 인터럽트 등을 통해 호스트 DMA 완료를 알립니다.

5, 호스트가 메모리에서 데이터를 가져옵니다.

아래 참조:/eagle217/article/details/81736822

DMA subsysterm for pcie 는 pcie 용 일련의 descriptors 를 사용합니다 DMA transfers 의 소스 주소를 나타내는 데 사용됩니다. 대상 주소와 DMA transfer 의 길이입니다. 그들은 드라이버에 의해 생성됩니다. 호스트 메모리에 저장됩니다. DMA 의 컨트롤러가 descriptor lists 캡처를 시작하여 초기화를 완료하고 DMA 작업을 시작합니다. 설명자의 구조는 다음과 같습니다.

각 DMA 채널에는 자체 descriptors 목록이 있습니다. DMA 는 descriptor 를 읽은 후 src_addr 및 Dst_addr 을 추출한 다음 해당 주소를 기준으로 memory transfer 를 완료합니다. 현재 descriptor 에 해당하는 transfer 를 완료한 후. DMA 채널은 현재 descriptor 의 Nxt_addr 을 기준으로 다음 descriptor 를 캡처합니다. 또한 descriptor 의 Nxt_adj 는 목록에 아직 완료되지 않은 descriptor 수를 기록합니다. 이면 현재 descriptor 의 control 필드에서 STOP 위치가 높아집니다. DMA 가 descriptor 캡처를 중지합니다.

DMA channel 은 descriptor 캡처 요청마다 가능한 한 많은 descriptors 를 캡처합니다. 이 숫자는 MRRS 에 의해 제한됩니다. 또한 descriptors buffer 의 용량 제한도 있습니다

上篇: Win 10ip 주소가 잘못되었습니다. 네트워크에 연결할 수 없습니다. 컴퓨터가 인터넷에 연결할 수 없습니다. 下篇: Lhr 버전의 비디오 카드는 무슨 뜻인가요?
관련 내용