The Open Vector Interface
자신만의 Vector 유닛을 개발하고 싶은 경우,
Semidynamics는 당신을 도와드릴수 있습니다.

OVI Specification

인터페이스는 명확한 업무 분업을 염두에 두고 정의되었습니다.
interface는 명확하게 정의되어있습니다.
업무 분업 염두에

OVI의 한쪽에서 Atrevido/Avispado 코어는 Vector 로드 및 Vector 저장 작업(및 모든 변형)을 지원하는 모든 로직을 구현합니다. AXI 또는 CHI를 통한 모든 메모리 연결은 Semidynamics 코어에 의해 관리됩니다.

OVI의 반대편에서는 정확한 요구 사항과 원하는 PPA에 맞게 Vector 유닛의 산술 부분을 구현합니다.

두 부분 사이에서 OVI는 CPU 와 Vector 유닛 간에 데이터가 주고받는 방식과 코어 측에서 Vector 장치로 instrution들이 전달되는 방식을 정의합니다.

로직

Atrevido 또는 Avispado 코어는
다음 논리를 구현합니다.
  • Vector 로드
  • Vector 스트라이드 로드
  • Vector 인덱스 로드
  • Vector Segmented 로드
  • Vector 저장
  • Vector-스칼라 메모리 일관성
  • 물리매체 접속부(Physical Medium Attachment)
  • Vector 스트라이드 저장
  • Vector 인덱스 저장
  • Vector segmanted 저장
  • 스칼라-Vector 메모리 일관성
  • PMP 지원
  • 가상메모리 ( SV48 혹은 SV39 MMU )1
  • Vector 장치로 전송된 Vector 산술 명령어 디코딩2
구현을 담당하게 됩니다
  • OVI 인터페이스의 하위 측면입니다.
  • Vector 유닛 내부의 산술 단위입니다.
  • Vector 산술 장치에 Vector 명령을 발행하기 위한 Vector logic입니다.

OVI.fifo 프로토콜

여전히 RISC-V Vector tool 체인 및 ecosystem 을 활용하고 custome computation엔진을 RISC-V Vector 장치에 연결하려는 경우 Semidynamics는 아래 그림에 설명된 OVI 인터페이스의 OVI.fifo 단순버전을 지원합니다.

이와 같이 고객은 이제 관심 있는 Custom extention 만 구현하면 되며 Semidynamics는 Core 및 완전히 호환되는 RISC-V Vector 유닛을 모두 제공합니다. 매우 간단한 fifo 스타일 푸시/팝 인터페이스가 Vector 유닛과 사용자 정의 엔진 사이에 구현됩니다. 고객은 OVI.fifo 인터페이스의 "하위" 측면과 custome logic만 구현하면 됩니다.

OVI는 자신의 Vector 장치를 Atrevido 또는 Avispado 코어에 연결하는 방법을 설명하는 오픈 소스 사양입니다.