인프런 커뮤니티 질문&답변
Core 개수 늘리는 법
작성
·
350
1
안녕하세요 맛비님 실습관련해서 몇 가지 질문을 드립니다!
- Core 개수를 늘려보고 싶은데 고민 중인 것이 있습니다. Memory I/F는 32bit의 data를 읽어오는데 만약 64bit의 data를 읽어서 4개의 연산을 하고 싶다면 어떻게 해야 할까요? I/F에서 core에 data를 전달해 주기 전에 F/F을 더 추가하고 예를 들면 cnt를 사용해서 clk을 2번을 cnt하면 반전되는 새로운 clk을 만들어서 마지막 F/F을 이 clk에 동기화 시켜 Core에 data를 넣어줘야 할까요?
2. 위의 경우 결과를 BRAM에 다시 write하려면 delay를 넣어줘야 할 것 같은데 이렇게 설계하는 것이 맞는 방식인 건가요?
3. 맛비님은 더 많은 bit를 연산할 때 어떻게 하시나요? (64bit 뿐만 아니라 96bit ... 등)
답변 1
0
안녕하세요 :)
먼저 정답은 없습니다. (방법은 설계자가 판단해야한다는 이야기고, 저라면..? 이렇게 하겠다 로 적겠습니다.)
- Core 개수를 늘려보고 싶은데 고민 중인 것이 있습니다. Memory I/F는 32bit의 data를 읽어오는데 만약 64bit의 data를 읽어서 4개의 연산을 하고 싶다면 어떻게 해야 할까요? I/F에서 core에 data를 전달해 주기 전에 F/F을 더 추가하고 예를 들면 cnt를 사용해서 clk을 2번을 cnt하면 반전되는 새로운 clk을 만들어서 마지막 F/F을 이 clk에 동기화 시켜 Core에 data를 넣어줘야 할까요?
대략 내용을 bit 가 두배 늘었으니, 32bit * 2 cycle 로 64 bit 을 사용하겠다. 이렇게 이해를 했습니다.
위의 이야기는 다음과 같이 확장이 됩니다.
32bit의 width 를 가지는 memory 에서 2 cycle 처리를 해도되고, 아니면 64bit width 의 memory 에서 2 cycle 처리하셔도 됩니다.
64bit width 를 갖는 memory 를 사용하면서 performance 를 64 bit data 에 맞춰주려면, 64 bit data width 를 갖는 I/F 사용이 필요합니다.
현 강의에서는 AXI4-Lite 의 data bit width 가 32 bit 이기 때문에, bit width 가 늘어난 만큼의 performance 향상을 보실 수 없을꺼에요. AXI4 를 공부하셔야합니다.
결론은 위에서 제가 기술한 내용 중 하나를 상황에 맞게 선택하시면 됩니다.
2. 위의 경우 결과를 BRAM에 다시 write하려면 delay를 넣어줘야 할 것 같은데 이렇게 설계하는 것이 맞는 방식인 건가요?
"32bit의 width 를 가지는 memory 에서 2 cycle 처리를 해도되고, 아니면 64bit width 의 memory 에서 2 cycle 처리하셔도 됩니다." 이거라면 결국 delay 가 필요하겠죠?
3. 맛비님은 더 많은 bit를 연산할 때 어떻게 하시나요? (64bit 뿐만 아니라 96bit ... 등)
다음 방법을 선택할 것 같아요. bit width 가 늘어난 만큼의 performance 향상을 위해서,
"64bit width 를 갖는 memory 를 사용하면서 performance 를 64 bit data 에 맞춰주려면, 64 bit data width 를 갖는 I/F 사용이 필요합니다.
현 강의에서는 AXI4-Lite 의 data bit width 가 32 bit 이기 때문에, bit width 가 늘어난 만큼의 performance 향상을 보실 수 없을꺼에요. AXI4 를 공부하셔야합니다."
직접 만들어보시면서 경험을 쌓아보시는 것을 추천드립니다.
즐공하세요 :)





