안녕하세요 일이입니다!
저번 포스팅에 이어서 SIMD(Single Instruction Multiple Data) Processing에 대해서 자세히
짚어보고 넘어가도록 하겠습니다!
보시다시피
A와 B라는 두 개의 입력 레지스터가 있는데요, 각 레지스터에는 N개의 개별 입력 벡터 세트가 포함되어 있습니다.
출력 레지스터에 기록되는 해당 출력 벡터 세트를 생성하기 위해
입력 벡터의 N 세트 간에 단일 정의 작업이 수행됩니다.
되게 중요한 특징인데요. 좀 더 쉽게 얘기하면,
각 'Lane'이 같은 동작(OPERATION)에서 발생하는 결과를 동시에 여러 가지 다른 입력 세트에서 수행한다는 것입니다.
따라서 단일 명령 다중 데이터라는 용어는 다음과 같습니다.
NEON은 수화 및 부호 없는 정수, 단일 정밀 부동 소수점, 하프 프리젠테이션 부동 소수점 등
다양한 데이터 유형을 지원하지만 이중 정밀도는 지원되지 않습니다.
NEON 외에도 부동 소수점 단위(FPU)의 확장도 있는데요,
이를 '플로팅 포인트 익스텐션(Floating Point Extensions)' 또는 역사적 이유로 'VFP Extensions'(Vector Floating Point)
라고도 한다고 하네요.
Processing System External Interfaces
PS와 외부 인터페이스 간의 통신은 주로 MIO(Multiplexed Input/Output)를 통해 이루어지며,
이는 54핀의 유연한 연결성을 제공하며, 이는 주변 장치와 핀 간의 매핑을 필요에 따라 정의할 수 있음을 의미합니다.
특정 연결은 PS에서 외부 연결로의 직접 경로가 아니라 PL의 I/O 리소스를 통과하여
공유하는 확장 MIO(EMIO)를 통해서도 이루어질 수 있습니다.
EMIO는 54핀 이상의 확장이 필요할 때 또는 PL에 구현된 IP 블록과 PS를 연결하는 방법으로 사용할 수 있다.
사용 가능한 I/O는 표준 통신 인터페이스와 간단한 버튼, 스위치 및 LED를 포함한 다양한 용도로 사용할 수 있는 GPIO(General Purpose Input/Output)를 포함한다.
이런게 있구나 참고만 하시면 될 것 같아요.
Programmable Logic
The Logic Fabric
PL은 주로 슬라이스와 구성 가능한 논리 블록(CLB)으로 구성된 범용 FPGA 로직 패브릭으로 구성되며,
인터페이스용 입출력 블록(IOB)도 있습니다.
CLB(Configurable Logic Block)
: CLB는 PL의 2차원 배열에 배치되고 프로그램 가능한 상호 연결을 통해
다른 유사한 리소스에 연결되는 작은 규칙적인 논리 요소 그룹입니다.
각 CLB는 스위치 매트릭스에 둥지를 틀고 두 개의 논리 조각(slice)을 포함하고 있다.
Slice
: CLB 내의 하위 유닛으로, 동기식 및 순차식 논리 회로를 구현하기 위한 리소스를 포함합니다.
Zynq 슬라이스는 4개의 LUT(Lookup Table), 8개의 Flip-flop(FF) 및 기타 논리로 구성됩니다.
LUT(Lookup Table)
: (i) 최대 6개의 입력으로 구성된 로직 함수, (ii) 작은 읽기 전용 메모리(ROM), (iii) 작은 RAM(Random Access Memory) 또는 (iv) 시프트 레지스터를 구현할 수 있는 유연한 리소스. 필요에 따라 더 큰 논리 함수, 메모리 또는 변속 레지스터를 형성하기 위해 함께 결합될 수 있습니다.
Flip-flop(FF)
: 재설정 기능이 있는 1비트 레지스터를 구현하는 순차 회로 요소 FF 중 하나를 선택적으로 사용하여
래치를 구현할 수 있습니다.
스위치 매트릭스
: 스위치 매트릭스는 CLB 옆에 위치하며, CLB 내의 요소 간 연결(i) 및 (ii)을 PL의 다른 리소스로 연결하는
유연한 라우팅 기능을 제공한다.
운반 논리
: 산술 회로에는 인접한 슬라이스 사이에 중간 신호가 전파되어야 하며, 이는 운반 논리를 통해 이루어진다.
운반 로직은 수직 열에서 슬라이스를 연결하는 일련의 경로와 멀티플렉서로 구성된다.
입력/출력 블록(IOB)
: IOB는 PL 논리 리소스와 외부 회로 연결에 사용되는 물리적 장치 '패드' 사이의 인터페이스를
제공하는 리소스각 IP는 1비트 입력 또는 출력 신호를 처리할 수 있다. IOB는 대개 기기 주변 주변에 위치한다.
(* 이 내용을 알고 있으면 좋으나 Xilinx 에서 알아서 매핑해주기 때문에 외우려 노력할 필요는 없다고 합니다.
왠지 김빠지는......ㅠㅠㅋ)
오늘은 PL에 대해서 더 자세히 알아봤습니다!
다음에는 그 외 Fabric들을 정리하고 오겠습니다!
짧지만 읽어주셔서 감사합니다.!!
'Engineering > ZYNQ' 카테고리의 다른 글
[ZYNQ]징크 공부하기 #3. 디바이스 징크 두번째 (1) | 2019.09.01 |
---|---|
[ZYNQ] 징크 공부하기 #2. 디바이스 징크 첫번째 (0) | 2019.08.10 |
[ZYNQ] 징크 공부하기#1. 소개 (0) | 2019.08.03 |