기본적으로 각 channel은 Valid/Ready interface로 동작한다.
Transfer와 Transaction의 차이?
- Transfer : a single exchange of information, with one VALID and READY handshake
- Transaction : an entire burst of transfers, containing an address transfer, one or more data transfers, and, for write sequences, a response transfer.
Deadlock과 Handshake
- A source cannot wait for READY to be asserted before asserting VALID.
- A destination can wait for VALID to be asserted before asserting READY.
Deadlock 방지를 위해서 기본적으로 주인님은 노예의 상태 (ready)를 신경 쓰지 않고 자신이 tranfer를 원할 때 valid를 보낸다. destination (slave)는 주인님의 오더를 보고 ready를 assert할 수 있다. 이 경우, master가 valid를 보냈을 때 ready가 assert 되어 있지 않은 경우 transfer를 어떻게 마무리할 지에 대한 protocol이 필요하다. 예를 들어, valid와 data가 갔는데 ready가 떨어져 있는 경우에는 slave가 받을 때 까지 동작을 멈추고 기다리도록 약속할 수도 있고, 그냥 버릴 수도... 아니면 ready가 절대
'Processor & SoC' 카테고리의 다른 글
마이크로프로세서 (0) | 2017.12.30 |
---|