초록
PCI 2.2 버스 마스터가 메모리 읽기 명령으로 타겟 장치에 데이터 전송을 요구하면 타겟 장치는 내부적으로 데이터 준비하는데 시간이 필요하므로 데이터 전송 없이 장시간 PCI 버스를 점유하는 상황이 발생할 수 있다. 이는 PCI 버스 사용 효율 및 데이터 전송 효율을 떨어뜨리게 되며 이를 해결하기 위해 PCI 2.2에서는 지연 트랜잭션 메커니즘을 이용한다. 그러나 이 방법은 타겟 장치가 프리페치해야 할 정확한 데이터의 양을 알 수 없기 때문에 데이터 전송 효율이 떨어진다. 본 논문에서는 메모리 읽기 명령을 수행하고자 하는 버스 마스터가 메모리 쓰기 명령어를 이용하여 타겟 장치에게 읽어올 데이터의 양을 미리 알려주는 프리페치 요구를 이용해 보다 효율적으로 데이터를 전송하는 방법을 제안한다. 모의실험 결과 제안된 방법이 지연 트랜잭션에 비해 데이터 전송 효율이 평균 10 % 향상되었다.
When the PCI 2.2 bus master requests data using Memory Read command, the target device my hold PCI bus without data transfer for a long time because the target device requires time to prefetch data internally. Because the PCI bus usage efficiency and the data transfer efficiency are decreased due to this situation, the PCI specification recommends to use the Delayed Transaction mechanism to improve the performance. But the mechanism doesn't fully improve performance because the target device doesn't blow prefetch data size exactly. In this paper, we propose a new method to transfer data efficiently when the bus master reads data from the target device. The bus master informs the target device the exact read data size using prefetch request using Memory Write command. The simulation result shows that the proposed method has the higher data transfer efficiency than the Delayed Transaction about 10%.