PCIE 기기 관련 궁금증..

isaiah   
   조회 3037   추천 0    

 http://2cpu.co.kr/freeboard_2011/1295009 

 요걸 하다가 생긴 궁금증인데...

 컴퓨터 사용한지 20년 넘개 몰랐는데 PCIE 하드웨어가 주체가 되어서 DMA로 매인 매모리를 J어 방식으로 작동하는걸 알게 되었습니다.

이게 개념상으로만 그런게 아니라 진짜 DMA 인가요? 그러니까 PCIE 장치가 CPU 오버해드 없이 메인메모리에 접근해서 가저 가는 건지 궁금합니다.


그리고 그렇다면 CPU는 PCIE 장치로 부터 어떻게 매모리를 보호하나요? PCIE 장치가 매인매모리 아무 곳에나 마음대로 접근할 수 있도록 되어 있지는 않을것이니 권한을 한정 할것 같은데요.


짧은글 일수록 신중하게.
찬이 2020-06
PCIe는 PC측 커널 드라이버의 요청 없이도 디바이스가 자체적으로 DMA를 통한 메모리 접근을 요청 할 수 있습니다.
근데 이 영역을 커널이 엄겯하게 제어 (offset & size & read/write control) 할 수 있는지는 잘 모르겠습니다.

실제로 그런 원리를 통한 해킹기법이 존재합니다.
https://en.m.wikipedia.org/wiki/DMA_attack

PCIe Device측 DMA접근은 bus mastering 과 관련이 있어 보입니다.
     
isaiah 2020-06
PCIE 쓴지가 오래 되었는데 관심이 없다보니.. 막연하게 피동적으로 CPU에 내장된 DMA에 의존할 거라고 생각했는데 아니였군요..

뭔가 이런 바닥(?) 긑처에 있는 것들에 무관심 했던 탓있지.. 요즘 검색할 수록 '이런게 가능해도 되나??' 싶은게 많네요...
epowergate 2020-06
RDMA입니다.
정확하게는 PCIe를 사용하진 않습니다.
주로 Infiniband에서 사용하고 요즘 40G Ethernet  NIC에서도 지원합니다.
Infiniband Card가 HBA (Host Bus Adapter)가 아닌 HCA (Host Channel Adapter) 인지 생각해 보시면 답이 있습니다.
     
isaiah 2020-06
잘 이해가 안되는데요?
 RDMA가 성립할 수 있는게 PCIE 어뎁터의 규격상 재한 없는 매모리 접근을 할 수 있기 때문이라는 건가요?
오홍식 2020-06
dma가 사용할 메모리를 내어 주는것도 os의 역할이고 전송 완료 인터럽트 처리도 os가 합니다.. 그리고 그 요청은 디바이스 드라이버에서 하는것이니 os단의 감시는 계속 받는다고 보셔야 할 것 같습니다.
     
isaiah 2020-06
PCIE 장치에 들어 있는 펌웨어의 입장에서 봤을때...
 CPU 처럼 물리 주소로 전역에 마음대로 접근할 수는 없다는 말씀이시죠?
 그.. 유저모드 어플리케이션 처럼요?
          
오홍식 2020-06
일단 상대한테 바쁘냐 묻고, 어디부터 어디까지 써도 될지 허락 받고, 다 썼다고 문 두드리는 기능 정도는 내부에 dma를 구현했다는 mcu부터 시스템용으로 판매되는 xilinx등의 상용 솔루션도 기본으로 제공합니다.
메모리도 상대가 보내라는 주소가 실제 상대 장비의 연속된 메모리 블록이라는 약속도 없고, 주소요청때 못쓸 범위를 요청하면 퇴짜를 놓으니 (그 정도 예외는 다들 처리하니) 질문의 걱정은 안하셔도 될 것 같습니다.
그리고 pcie는 마스터 슬레이브중 꼭 pc가 있어야 할 필요는 없으니 mmu만의 기능으로 볼 수는 없습니다.
               
isaiah 2020-06
감사합니다.
 즉 CPU에서 실행되는 드라이버가 메모리 할당하고 메모리 관련 하드웨어에 -> 접근 허락 -> pcie 장치에 메모리와 접근 가능한 영역의 범위를 제공
->pcie 장치 읽고 쓰고 하고 싶은것 ->PCIE 장치가 하고 싶은것 끝나면 인터럽트..->CPU가 할당했던 메모리 정리 접근 허락 취소

 대략 이런 방식인 거군요? 감사합니다.
     
isaiah 2020-06
생각해 보니... PCIE가 DMA 장치로서 작동한다고 해도 어짜피 메모리 컨트롤러가 CPU에 달려 있으니 CPU 종속적인 재어를 받는 형태겠군요..


QnA
제목Page 4605/5718
2014-05   5212338   정은준1
2015-12   1743706   백메가
2012-12   8025   1m전
2014-08   4189   늉늉이
2015-12   3901   편한세상
2015-12   5800   꾸잉호이
2019-03   3367   신은왜
2009-11   7452   구명서
2020-05   3015   jerry
2014-08   5666   주황별
2016-11   4743   신은왜
2018-01   3384   김1정2욱
2015-12   5541   이빨청춘
2013-01   5411   머라카는데
2015-12   5884   하셀호프
2020-06   3038   isaiah
2023-06   2296   화란
2014-09   6139   Nikon
2023-06   1618   무아
2016-01   4432   전설속의미…
2021-11   3549   종소리
2016-01   5426   마마무