| 1: |
OCP 전송(transfer)이란 무엇인가요? |
| A: |
OCP 1.0에는 두 종류의 전송이 있습니다. 지정된 쓰기 전송과 읽기 전송입니다. OCP 시작점에서 쓰기
요청을 OCP 목적지에 발할 때, 슬레이브가 쓰기 요청과 관련된 데이터를 저장할 주소도 함께 지정합니다. 슬레이브가 쓰기 요청, 주소
및 데이터를 수신하면, 지정된 쓰기 전송이 실행됩니다. 마찬가지로 시작점(마스터)에서 읽기 요청을 OCP 목적지에 발할 때, 이 요청과
관련된 데이터를 가져오는 곳의 주소를 함께 지정합니다. 시작점에서 데이터를 수신하면 읽기 전송이 실행됩니다. 마지막으로 OCP는
브로드캐스트(broadcast) 전송을 규정하고 있는데, 이는 쓰기 전송과 유사하나 받는 쪽의 슬레이브 인터페이스에 접속된 여러 개의
목적지에 전송하기 위한 것입니다. |
|
| 2: |
OCP 트랜잭션(transaction)이란 무엇인가요? |
| A: |
동일한 종류의 여러 요청 전송은 그룹화되어 하나의 트랜잭션(transaction)을 생성할 수 있으며, 이를
burst라고도 합니다. 이것은 하나의 긴 전송(예를 들어 PCI 에서 실행되는 전송)이 아닌, 서로 결합된 개별적인 짧은(하나의 OCP
word) 전송의 연속이라는 것에 주의하여야 합니다. |
|
| 3: |
OCP용 burst 모델이란 무엇입니까? |
| A: |
OCP 1.0은 메모리 burst(인크레멘트)용 및 FIFO burst(streaming)용의 두 가지
burst 주소 시퀀스 모델을 정의하고 있습니다. 또한 추가적으로 두 개의 응용 정의
burst 모델을 사용할 수 있습니다. 네 가지 모델 각각에서 burst 코드는 각 개별 전송을
단일 burst 트랜잭션과 연결합니다. OCP 2.0에서는 추가 burst 주소 시퀀스 모델뿐
아니라 정확한 burst 및 SRMD(Single-Request multiple-Data) burst 모델을
추가하여 burst 모델을 대폭 강화하였습니다. 또한 Wrapping, XOR(Exclusive-Or)
및 Unknown 주소 시퀀스가 burst 주소 시퀀스 모델 집합에 추가되었습니다. OCP
2.0은 다음과 같은 세 가지 일반 burst 모델을 제공합니다. OCP 1.0에서 사용되는
부정확한 burst 모델, 정확한 burst 모델 및 SRMD(Single Request Multiple
Data) burst 모델. |
|
| 4: |
incrementing burst 와 streaming burst 는 어떻게 다른가요? |
| A: |
Incrementing Burst에서는 Burst를 포함하는 각 전송 별로 목적 주소가 증가하게 됩니다. 증가 값은
OCP word 크기입니다. streaming burst에서는 주소 값이 변하지 않습니다. 두 종류의 Burst 모두 OCP 시작점에서 각 Burst
전송과 관련된 정확한 주소 제공과 최종 전송을 LAST로 표시할 것을 요구합니다. |
|
| 5: |
이러한 burst 코드들은 무엇을 의미하나요? |
| A: |
Burst 코드는 시작점에서 목적지로 burst 트랜잭션이 얼마 동안 계속될 것인지를 알려주는 단순한 힌트
입니다. burst와 관련된 최종 전송에는 LAST라는 burst 태그 값이 붙여지게 됩니다. 이것이 완료를 확실히 인식하게 하는 유일한
burst 값입니다. |
|
| 6: |
burst 읽기 타이밍 도가 전송 수 또는 byte 수를 지정하나요? |
| A: |
MBurstLength byte 수가 아닌 burst에 포함된 OCP word 수를 나타냅니다. OCP 인터페이스는 1 ~ 16 byte의 임의 값이 가능하므로, 이 burst 코드는 전송될 burst에 들어 있는 OCP word 수를 나타냅니다. |
|
| 7: |
왜 burst 코드는 남은 word 수와 일치하지 않나요? |
| A: |
Burst코드는 단지 힌트를 의미하는 것에 지나지 않습니다. 목적지에서 힌트를 꼭 사용해야 하는 것은 아닙니다. |
|
| 8: |
다른 시작점에서 데이터 준비가 완료된 것을 알리기 전에 쓰기 burst가 목적지에 도착한 것을 시작점에서는 어떻게 확인할 수 있나요? |
| A: |
데이터를 쓴 시작점에서는 그 데이터를 다시 읽어 정확한지 여부를 조사하여 데이터가 제대로 입력된 것임을 확인해야 합니다. |
|
| 9: |
어떤 burst 크기를 사용해야 하나요? |
| A: |
사용하기 쉬운 크기를 사용하십시오. 단, burst는 burst 동작이 완료될 때까지 burst와 관련이 없는 다른 모든 전송(즉 동일한 thread 상의 전송)을 방해할 수 있습니다. 또한 Burst를 OCP word의 이진 power 길이로 제한함으로써 일부 성능에서 이득을 얻을 수도 있습니다. |
|
| 10: |
코어의 burst 크기가 OCP burst 코드들 중 어떤 것과도 일치하지 않습니다. 어떻게 해야 하나요?
|
| A: |
burst는 일종의 힌트일 뿐 보장하는 것이 아닙니다. 그러므로 최종 전송 이외의 모든 전송에 CONT라는 burst 태그를 사용할 수도 있습니다. 그리고 최종 전송에는 LAST 태그를 붙어야 합니다. 사용하고 있는 burst 길이를 초과하지 않는 범위 내에서 효과적인 최대 burst 크기를 사용할 수 있고, 이를 여러 번 사용할 수도 있습니다. 예를 들, 남은 burst 길이가 4 미만이 될 때까지 4 의 burst 코드를 여러 번 사용하여 6 word burst를 실행할 수 있습니다. |
|
| 11: |
8 OCP word 보다 긴 burst를 전송할 수 있나요? |
| A: |
예, 전송할 수 있습니다. 위 글을 참고하십시오. 적어도 8개의 전송이 남아있는 한 전송은 계속적으로 burst 태그 값 EIGHT을 제시할 수 있습니다. |
|
| 12: |
burst 전송을 빨리 끝낼 수 있나요?
|
| A: |
시작점에서는 일반적으로 중간에 실행되는 전송에 LAST 태그를 붙여 언제든 요청 burst를 빨리 끝낼 수 있습니다. 단 일부 목적지에서 추가 전송을 요청한 상태라고 인식된 경우라면 burst가 빨리 종료된 후에 이를 논리적으로 정리해야 합니다. |
|
| 13: |
OCP 시작점에서는 burst 전송을 시작한 후 이를 중지할 수 있나요? |
| A: |
전송에 LAST라는 태그를 붙이면 언제라도 burst를 종료시킬 수 있습니다. 이는 burst를 취소하는 중지와는 다른 의미입니다. OCP 사양에 따르면, burst가 시작된 후에 burst를 중지시키는 것은 부적절한 행위로 간주됩니다. |
|
| 14: |
시작점의 코어에서 burst를 활성화 하여야 하는 이유는 무엇인가요? |
| A: |
OCP 코어에 이용 가능한 종류의 burst 정보의 주된 용도는 메모리에서 데이터를 먼저 가져오는 것(읽기의 경우) 또는 메모리 뱅크나 페이지를 열어 두는 것(쓰기의 경우)입니다. 기타 사용은 잠금 상태가 된 resource로부터 실행됩니다. 일단 OCP에서 burst가 시작되면, thread (포트) 즉, 포트 OCP thread는 해당 burst에 전용화 되어 해당 burst가 완료될 때까지 다른 thread의 활동에 따른 다른 모든 명령으로부터 차단됩니다. |
|
| 15: |
SRMD(Single-Request multiple-Data) burst란 무엇입니까? |
| A: |
SRMD(Single-Request multiple-Data) burst는 정확한 burst와 동일하지만 요청
정보가 전체 burst 트랜잭션에 대해 한 번만 제공됩니다. 이 SRMD burst 범주는
“데이터 패킷” burst 트랜잭션으로 간주될 수 있습니다. |
|
| 16: |
2차원 블록 burst 시퀀스는 어떻게 처리할 수 있습니까? |
| A: |
OCP 버전 2.2에서는 새로운 2차원 블록 burst 주소 시퀀스가 추가되었습니다. 새로운
이 burst 주소 시퀀스는 각각 일반 incrementing burst 주소 시퀀스 모델을 따르는
블록 하위 시퀀스를 지정하는 기능을 제공합니다. |
|
|