| 1: |
코어란 무엇인가요?
|
| A: |
코어는 수행 기능을 제공하는 반도체 구성요소 입니다. 코어는 다른 많은 코어를 하부 구성요소로 포함하고 있는 경우가 있습니다. 단, 이와 같은 하부 구성 코어는 상위 코어 내에 있는 다른 하부 구성 코어를 제외하고는 직접 연결될 수 없습니다. 마지막으로 코어는 PCI 및 AMBA 등 잘 알려진 버스의 logic bridge가 되는 경우도 있습니다. |
|
| 2: |
OCP가 무엇인가요? |
| A: |
오픈 코어 프로토콜(OCP)는 효율적이고 간소한 코어 접속용 표준입니다. 하나의 집적 회로상에 두 개의 반도체 코어를 상호 연결하여 합성하거나 제조 시, 두 개의 반도체 코어간에 신뢰성 있는 통신이 가능하도록 합니다. |
|
| 3: |
OCP는 어떻게 구성되나요? |
| A: |
OCP는 일련의 온 칩 코어 인터페이스에서 신호 교환 프로토콜을 규정하고 있습니다. OCP는 다양한 구성을 가능하게 하는 구조화된 아키텍처를 가진 인터페이스 집합입니다. |
|
| 4: |
OCP는 얼마나 유연한가요? |
| A: |
OCP는 매우 유연합니다. 데이터 신호 그룹과 같은 많은 OCP 신호 그룹은 설계자가 선택할 수 있는 다양한 비트 폭을 가지고 있습니다. 다른 그룹들은 완전히 선택 사항입니다. 따라서 시스템 온 칩(SoC) 설계자는 OCP를 사용하여 구조화되었지만 자유롭게 구성할 수 있는 인터페이스를 얻을 수 있습니다. |
|
| 5: |
어떠한 인터페이스가 OCP에 사용될 수 있나요?
|
| A: |
OCP인터페이스로는 모든 인터페이스를 사용할 수 있습니다. "사용자의 관리 하에 있는" 인터페이스만을 사용할 수 있도록 설계되지는 않았습니다. 실제로 OCP 인터페이스를 "개인적인" 인터페이스로 사용함으로써 여러 가지 이점들을 얻을 수 있습니다. 우선 표준을 사용함으로써 인터페이스 개발 및 향후 지원을 쉽게 해줍니다. 게다가 OCP 인터페이스는 본질적으로 코어 중심으로 설계되어 있어, 단순히 특정 IP 코어에 필요로 하는 OCP의 기능을 사용하기만 하면 됩니다. |
|
| 6: |
OCP는 아날로그 신호는 어떻게 처리하나요?
|
| A: |
OCP는 디지털 가상 컴포넌트를 위한 프로토콜 표준입니다. 따라서 디지털 신호만을 처리합니다. |
|
| 7: |
OCP는 어떤 언어(SystemC, C++, Fortran 등)로 구현되어 있나요? |
| A: |
OCP-IP는 회원들에게 있어 SystemC로 표현된 OCP 표준 소켓이 중요하다는 것을 인식하고, 시스템 레벨의 설계 운영그룹을 통해 이를 적절히 대응해 오고 있습니다. OCP-IP은 수천 개의 TLM을 출하하였으며, TLM에 대한 산업 모델의 공통된 세트를 보수하기 위해 OSCI와 제휴를 맺었습니다. SystemC OCP 모델과 예제는 OCP-IP 홈 페이지에서 얻을 수 있습니다. 또한 OCP-IP GSC 회원인 Sonics 사는 SystemC 를 사용하지 않고 OCP 인터페이스용 C++ 모델을 개발하였으나, 파악한 바에 따르면 상업용으로 사용할 수 있는 제품은 아닙니다. 그러나, 이 사실을 통해 다양한 접근 방법으로 OCP용 C 레벨의 인터페이스의 개발이 가능하다는 사실을 확인하였습니다. |
|
| 8: |
OCP 접속이 Peer to Peer (P2P) 접속인가요? |
| A: |
OCP 접속은 Peer to Peer 접속이 아닙니다. OCP는 두 개의 코어 간에 마스터 / 슬레이브 접속을 제공합니다. OCP 시작 코어라 불리는 코어는 OCP 마스터 인터페이스가 갖추어져 있습니다. 마스터 인터페이스를 이용하여 코어는 읽기 및 쓰기 등의 OCP 요청을 생성하거나, 읽기에 대한 응답을 수신할 수 있습니다. OCP 목적지 코어에 해당하는 코어에는 OCP 슬레이브 인터페이스를 구비하고 있어, 요청을 수신하거나 응답할 수 있습니다. 이와 같이 OCP는 클라이언트로서의 마스터와 서비스를 제공하는 슬레이브로 이루어진 클라이언트/서버의 모델에 매우 적합합니다. |
|
| 9: |
두 개의 코어가 P2P 통신을 필요로 할 경우에는 어떻게 되나요? |
| A: |
이런 경우에는 두 코어에 두 개의 인터페이스 즉, 마스터 인터페이스와 슬레이브 인터페이스를 모두 제공하여야 합니다. 그리고 각 코어의 마스터는 다른 코어의 슬레이브에 접속합니다. |
|
| 10: |
OCP 인터페이스가 두 개이기 위해서는 넓은 다이(die)가 필요하지 않나요? |
| A: |
그렇지 않습니다. OCP는 매우 간소하기 때문에 같은 두 개의 코어 사이에 두 개의 OCP 인터페이스가 존재한다고 하여도 실질적으로 문제가 되는 일은 없습니다. |
|
| 11: |
OCP 인터페이스를 갖춘 두 개의 코어가 통신할 수 있나요? |
| A: |
통신은 불가능합니다. 우선, 마스터는 슬레이브와 통신할 수 있고 슬레이브는 마스터와 통신할 수 있습니다. 그 마스터와 슬레이브는 호환성을 유지하기 위해 "유사한" OCP 인터페이스를 가져야만 합니다. OCP 사양에는 이러한 "유사한"에 대한 정확한 의미가 기재되어 있습니다. |
|
| 12: |
두 개의 코어가 유사하지만 동일하지 않은 경우, OCP 인터페이스는 어떻게 되나요? |
| A: |
OCP는 인터페이스가 동일하지 않다고 하여도 매우 유사한 다수의 코어를 서로 연결시킬 수 있어, 다양한 신호의 비공식적인 규칙과 프로토콜 동작을 수행하고 있습니다. |
|
| 13: |
OCP 는 단순한 버스들 중 하나인가요? |
| A: |
그렇지 않습니다. 버스는 일반적으로 3 개 이상의 코어를 상호 연결합니다. OCP 는 두 개 코어 사이의 단순한 상호 접속입니다. 버스는 대폭적인 구성 변경을 할 수 없지만, OCP 는 이와 같은 변경이 가능합니다. 따라서 설계 시 특정 버스가 필요한 경우, OCP 브리지가 있다면 코어를 추가할 수 있습니다. |
|
| 14: |
OCP 의 word size란 무엇인가요? |
| A: |
OCP 인터페이스가 한 번의 동작으로 전송할 수 있는 최대 데이터 비트 수를 OCP 인터페이스의 word size라고 합니다. |
|
| 15: |
OCP word size는 얼마나 되나요?
|
| A: |
OCP는 다양한 폭의 데이터 전송을 선택할 수 있습니다. 현재 8, 16, 32, 64 그리고 128 비트의 word size 선택이 가능합니다. OCP 사양서 2.0 버전에서는 이와 같은 비트 제한이 없습니다. 2.0버전에서는 특정 범위의 값을 사용하지 않아도 OCP word size 구성을 변경할 수 있습니다. |
|
| 16: |
OCP는 big-endian인가요? little-endian 인가요? |
| A: |
OCP 는 비트 번호에 대해서는 little-endian이지만, 주소 지정에 대해서는 대부분의 경우 endian이 중립 상태입니다. word 전체만을 주소 지정하고, word 내의 각 바이트에 대해서는 byte lane enable을 제공합니다. 따라서 주소 비트는 직접적으로 byte lane에 관계하지 않습니다. 따라서 big-endian 또는 little-endian 코어들에 이를 간단히 적용할 수 있습니다. 새로운 OCP 2.0 사양에서는 중립적인 endian의 개념을 더욱 확장하였습니다. 인터페이스는 big-endian, little-endian 양쪽 모두로 나타낼 수 있고, endian에 구속되지 않는 것(어떤 endian이어도 상관없는 메모리와 같은)이나 endian 프로그램을 변경할 수 있는 것 (바이트 교환 로직을 갖춘 코어 등)으로 나타낼 수 있습니다. |
|
| 17: |
OCP를 이용하여 big endian 코어를 연결하려면 어떻게 해야 하나요? |
| A: |
코어의 고유 big endian 전송 로직을 OCP little-endian 전송 방식으로 변환시켜주는 (바이트 교환) 작은 logic bridge를 생성합니다. |
|
| 18: |
OCP 호환 코어로는 어떤 것들을 쓸 수 있나요?
|
| A: |
A: 호환 코어 수는 끊임없이 증가하고 있습니다. 새로운 코어들은 OCP를 고유 인터페이스로 사용하고 있습니다. OCP이전의 코어는 legacy 코어라고 하는데, bridging logic을 도입하여 OCP 인터페이스를 제공할 수 있습니다. |
|
| 19: |
OCP 브리지(bridge)란 무엇인가요? |
| A: |
bridge logic이 legacy 코어에 OCP 인터페이스를 제공할 때, 이 bridge logic을 OCP bridge라고 부릅니다. |
|
| 20: |
OCP 사양은 scratch pad RAM에 대응 가능한가요? |
| A: |
scratch-pad 메모리의 경우에는, OCP 기본 성능과 byte enable 옵션의 사용에 따라 구성된 매우 단순한OCP 인터페이스를 사용할 수 있습니다. scratch-pad 메모리에서는 주소와 데이터의 폭을 정확히 지정하여야 합니다. 이를 통해 scratch-pad 메모리 용 OCP 인터페이스는 매우 단순해질 수 있고, 개발기간 또는 하드웨어/게이트의 관점에서 많은 오버헤드가 불필요하게 됩니다. |
|
| 21: |
OCP 사양은 트랜잭션 프로토콜(Transaction Protocol)을 지원하나요? |
| A: |
OCP 자체가 완전한 기능을 갖춘 트랜잭션 프로토콜입니다. 구성 가능한 제어(control)/데이터 핸드 쉐이킹(datahandshaking) 신호를 구비할 뿐 아니라 주소와 데이터의 버스를 이용한 모든 종류의 point-to-point 데이터 전송을 처리할 수 있습니다. OCP는 단순한 데이터 프로토콜 이상으로, 실제 코어에서 나오는 완전한 신호 세트를 획득하는 모든 소켓에 대해 규정하고 있습니다. 신호, 데이터 프로토콜, 제어 및 상태 모두가 OCP 소켓 사양에 포함되어 있으며, 이는 업계에서 유일한 것입니다. |
|
| 22: |
OCP 사양은 일반 유형의 인터페이스에 필요한 템플릿을 제공합니까? |
| A: |
예, OCP 2.1 사양은 다양한 유형의 IP 코어 OCP 인터페이스에 필요한 템플릿 집합을 제공합니다. 이는
OCP 프로필을 사용하여 이루어집니다. 이러한 각각의 프로필에는 다양한 OCP 구성 매개 변수의 설정과
함께 미리 정의된 OCP 인터페이스가 포함됩니다. 추가로 이러한 각각의 OCP 프로필에 대한 구현 지침이
제공됩니다. |
|
| 23: |
현재 어떤 OCP 프로파일이 있습니까? |
| A: |
OCP 2.1 사양의 경우 두 가지 집합의 OCP 프로필, 즉, 원시 OCP 인터페이스를 사용하는 새로운 IP
코어용 새 프로필과 OCP 와 다른 버스 프로토콜 간의 브리지에 사용되는 브리징 프로필이 제공됩니다. 새
OCP 프로필 집합에는 블록 데이터 흐름 모델, 순차적 미정의 길이 데이터 흐름 모델 및 등록 액세스 모델
프로필이 포함됩니다. 브리징 OCP 프로필 집합에는 단순 H-버스(Amba용)와 X-버스 패킷 쓰기 및
X-버스 패킷 읽기 프로필(AXI용)이 포함됩니다. |
|
| 24: |
OCP는 보안을 어떻게 처리합니까? |
| A: |
OCP 인터페이스는 시스템 전반의 보안 도메인을 작성하는 데 사용할 수 있습니다. 해당 도메인에는 CPU,
공유 메모리 또는 입출력 하위 시스템이 포함됩니다. OCP 마스터는 요청에 대해 시스템의 특정 대상을
식별하는 MConnID와 함께 보안 액세스 모드를 정의하는 MSecure 신호를 사용하여 요청에 대한 보안
수준을 구동합니다. 이 MSecure 신호는 MReqInfo 신호의 사용자 정의 서브넷입니다. |
|
| 25: |
OCP는 분할 클럭을 지원합니까? |
| A: |
예, 분할 클럭은 EnableClk 클럭킹 신호를 사용하여 직접 처리됩니다. 이 EnableClk 신호는 OCP 클럭의
에지를 상승시키는 Clk 신호의 상승 에지를 나타내는 데 사용됩니다. 이 동적 클럭 주파수 제어는 OCP
인터페이스의 분할 클럭을 처리하도록 쉽게 변경할 수 있습니다. |
|
|