ASIC SoC2009. 1. 15. 11:49

DSP가 필요해졌습니다. 에구~~


갑자기 DSP가 필요해졌습니다. 

엄밀하게 말하면 뜬금없이 갑자기 필요한것은 아니었지만, 

그동안 굳이 개발할 필요가 있겠냐 라는 마인드로 외면하면서 버티고 있었습니다.


SoC같은 부류의 일을 하다 보면 프로세서가 2가지 종류가  필요하게 됩니다.

하나는 내부 컨트롤을 위한 MCU이고, 나머지 하나는 고속으로 동작하며 필요한 정보 처리를 씩씩하게 해낼 수 있는 프로세서 입니다. 전자를 컨트롤러개념에 가까운 프로세서 이며,  후자를 데이터 처리를 위한 프로세서 개념으로 분류를 합니다.



필요해 진것은 표준에 부합된 프로세서가 아니라 필요한 기능을 재조립 가능한 데이터 처리용 프로세서입니다.

그것도 빵빵한 속도로 돌아가는 프로세서 입니다. H/W Accelerator만으로 해결 할 수있는 부분이 

제한적이 될 것 이고, 내부에 고속으로 동작하는 프로세서가 있어서 이놈이 역활을 크게 해야 할 것으로 

생각합니다.


컨트롤로와 데이터 처리 프로세서 중에서 DSP를 먼저 설계하는 이유는 DSP에서 컨트롤러로 가는 것은 쉽지만, 컨트롤러에서 DSP로 가는 것은 결코 쉽지 않습니다  그래서 DSP를 먼저 설계하고, 튜닝해서 컨트롤러로 다운 사이징을 하는 것이 맞다고 생각합니다.




사용 가능한 것들을 총 망라해보면 비싼(?) 상용 프로세서를 사용하자니.. 곤란하구요.. 

벤쳐에서 언강생심 ARM이나 MIPS를 쓴다는 것은 큰일입니다. 그것도 데이터 처리를 위한 프로세서에

넣자고 하면 만만치 않은 투자 비용이 들어갑니다.



OpenCore에서 개발된 프로세서를 사용하는 것도 가능합니다. 그런데  이 프로세서의  재미있는 부분이 초기에는  OpenCore Processor 저자가 라이센스가 무료입니다 하고 외쳤지만, 어느날 부터인가는 조용해지더니 지금은 떡 하니 회사를 차려 놓고 있습니다.


실제로 국내에서 모 회사가 이 회사랑 계약하였습니다. 

그래서 돈주고 라이센스 하여야 하는것이 아닌가 하는 상태까지 의심이 갑니다. 실제로 국내에서 계약한 회사는 초기 라이센스 비용이 있다고 하였습니다. - 괜히 걸려서 오해사느니.. 이 OpenCore는 포기.. 


그외에는 SunSparc의 Clone프로세서인 Leon이 좋은데요. 실적도 있고 오픈도 되어 있습니다.

코드를 보신 분은 아시겠지만 VHDL이 아니라 거의 C++수준이라고 생각될 정도로 코딩이 되어 있습니다.

나중에 기능을 추가할려면,  골치아픈 구조라고 생각됩니다.


사용자 삽입 이미지
                                 위의 그림은 LEON3 프로세서입니다. 0.25 공정을 사용했다고 합니다. 

                               






공개된 프로세서를 사용하지 않고 개발한다면 몇가지 선결 과제를 고려해야 합니다.


 

 (1) 컴파일러는 어떻게 할 것인가 ?

       GCC에 포팅한다면, 프로세서의 최적화는 그렇다고 하더라도 인라인 어셈블러에 대해서는 웬만큼 

       익숙해지지 않고서는 사용하기 힘든 사태가 됩니다.  


 (2) 개발 환경은 어떻게 할 것인가 ?

       내부 용이긴 하지만, 그래도 어느정도 개발 환경을 지원해야 합니다.

       디자인 초기에 이 부분이 잘 정의 가 안되어 있으면 진행하는 과정에서 추가하는 것은 아주 어렵습니다.

      

 (3) 내부에 연산 크기는 어떻게 할 것인가 ?

       오디오 용인지 , 비디오 용인지 ,  신호 처리 용인지 등에 따라서 연산자가 많이 바뀌어야 합니다.

       복잡한 연산을 하드웨어가 한다면 편하지만, 프로세서가 한다면, 어떻게 연산자를 정하고 컴파일러/어셈블러에서 지원하는지 정의를 해야 합니다.



옵션에 따라서 파이프라인을 조절하면 컨트롤러 용으로 사용할 수 있도록 구성해 둘 생각입니다.


아키텍쳐로는 어떤게 좋을까 생각을 해보면,


(1) 상용 프로세서의 클론 프로세서로.. 하여본다.

(2) 새로운 아키텍쳐의 프로세서를 과감하게 설계해 본다.

   (3) 적당한 돈을 주면 아키텍쳐 라이센스를 주는 프로세서를 설계해본다.


중 하나를 선택해서 진행하여야 하겠죠


꿈을 가진 엔지니어라면 과감하게 (2) 번 모드로 진입을 하겠지만, 엄청난 닭질이 기다리기 때문에,

(1)번이나 (3)으로 가야겠죠. .그래서 (2)번은 아웃.. 예전에 한번 해봐서 굳이 이 모드로 갈 필요가 없습니다.


(1)번 모드일 경우 항상 두근거리는 스릴을 느끼면서 지내야 합니다. 몰래 MIPS나 ARM Clone을

만들어서 사용할 경우 당장은 무난하더라도 언젠가는 걸려서 큰일 한번 치루게 됩니다.


그래서 (3)번 모드로 갑니다.


나머진 다음에 또.. 2부에서.. 


Posted by GUNDAM_IM