Embedded2009. 11. 23. 07:03
eCOS는 cygnus 사에서 만들어서 발표한 Embedded용 RT O/S입니다.
uC/OS보다는 무겁지만, 성능은 좋다고 알려져 있습니다.

cygnus사는  cygwin으로 유명하였던 회사입니다. 현재  이 회사는 redhat에 인수되었습니다.
하지만, 최근에도 조금씩은 eCOS나 Cygwin의 업댓을 하는 것 같아보입니다.

eclipse는 당연히 다 아시겠지만,
공개된 강력한 IDE 플랫폼 입니다. plugin을 설치하거나 설계해 넣어서 고유한 기능을 확장 할 수 있도록 만들었습니다.  IBM에서 공개해주었지만, IBM 도 이렇게까지 성공할 줄은 정말 몰랐던것 같습니다.  관련자들도 그렇게 증언하고 있으니까요...

뭐 이렇게 설명하는 것은 재미있는 툴이 하나 발견되었기 때문입니다.

eCOS는 H/W Layer와 내부 컴포넌트를 적당히 선택해서 다시 구성할 수 있는 GUI를 제공했었습니다.
(과거형인것은 요새 써보질 않아서리..)

그런데 이것을 eclipse에 통합시킨 툴을 파는 회사가 있습니다.

codeconfidence사입니다. 영국 회사이고 제품 이름은 code confidence입니다.


사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
한카피에 400 파운드 정도이니, 한 카피당 80만원정도가 되네요

eCOS는 국내에서는 크게 대우 못받지만, 해외에서는 간간이 쓰인다고 하던데,
그게 사실이었던것 같습니다. 이런 툴들이 나오고 또 판매되니까요.

그런데 궁굼한것은
 eCOS는 무료였고, Eclipse도 무료입니다. 여기에 plugin을 붙여서 파는 것은 허락되어 있으니까,
그런 형태로 상용으로 파는 것은 이해가 되는데, 본질적인 이 툴의 용도는 eCOS의 Configuration GUI입니다.
그럼, eCOS에서 기본적으로 제공하는 Configuration GUI랑 경쟁하게 될텐데 어떤 다른 장점이 있을까요 ?
80만원이나 내고 사용할 필요가 있을지가 궁굼하여집니다.

 통합개발 환경이니, GDB와 JTAG도 지원한다는 의미일텐데, 사실 대부분의 프로세서 개발환경이 오픈된 상태에서 경쟁력 포인트가뭔지 궁굼합니다. - 그리고 개발 환경 자체도, 프로세서 회사것이 훨씬 좋습니다. ARM만 해도 RVDS가 좋지, GDB가 좋지 않은 것과 마찬가지 입니다.


아래 그림은 eCOS 에서 제공하는 default configuration tool입니다.
이곳 페이지에서 찾아볼 수 있습니다.


사용자 삽입 이미지

 
사용자 삽입 이미지

참고로 eCOS 라이센스는 GPL 라이센스를 따릅니다. 그냥 GPL만 따르면 무시무시한 소스코드 공개 라이센스 조항에 의해서 eCOS를 사용하는 모든 어플리케이션은 다 소스 코드를 오픈해야 하는 상황에 봉착합니다. 당연히 상용으로는 사용하지 않을려고 하겠죠.  그래서, eCOS는 별도의 예외 조항을 두어서 eCOS의 코아를 건드리면 오픈해야 하고, 코아를 건드리지 않는 범위 내에서는 어플리케이션 S/W는 오픈하지 않아도 된다는 라이센스 형태를 두고 있습니다. - 이런 조항도 가능한것이구나 싶은 라이센스 조항이었습니다.

관심 있으신 분들은 아래 사이트를.. 참고하세요

'Embedded' 카테고리의 다른 글

[MIPS] Simulator  (0) 2009.12.20
MPEG 1/2 Reference Site  (0) 2009.12.13
H.264 SVC 참고 사이트 입니다.  (0) 2009.07.04
DM6467 Develop Board  (2) 2009.06.25
FFMPEG /X264를 MAC에서 빌드  (0) 2009.06.14
Posted by GUNDAM_IM
ASIC SoC2009. 7. 16. 16:27
이번에는 종류를 정리해 보도록 하겠습니다.

(1)  ZPU4 SMALL



에서 찾을 수 있습니다.

가장 작은 프로세서 종류이고 최소한의 명령어만을 가지고 있습니다.
크기와 간단성에 중점을 둔 프로세서 입니다.
내부에 듀얼포트 램을 써서 데이터와 코드를 넣어서 동작시킵니다.

주요 용도는 하드웨어 상태머쉰용도입니다.

3 State로 동작합니다.

fetch -> Decode -> execute

입니다. 파이프라인 형태로 동작하지 않으므로 당연히 3단계 상태로 움직입니다.
일반 8051이 6단계/12단계로 움직이는데 3단계정도야 양호하죠


(2) ZPU4 Medium



에 있고 싱글포트 메모리 인터페이스를 가지고 있습니다.
따라서 데이터와 코드 그리고 I/O를 싱글포트 메모리 인터페이스를 통해서 운용할 수 있습니다.

명령어 세트가 더 많기 때문에 메모리 인터페이스 밴드대역폭이 zpu_core_small 보다 작아도 전체 퍼포먼스는 높습니다.

(3) Pipelined ZPU

파이프라인 버전의 ZPU 입니다.
다운은 다음 명령으로 다운을 받을 수 있습니다.

git clone git://repo.or.cz/zpu/alzpu.git

관련 페이지는 아래 페이지 입니다.

http://repo.or.cz/w/zpu/alzpu.git

이 버전의 ZPU를 다운 받으면 나머지 ZPU들도 함께 다운 받을 수 있습니다.
그냥 이 버전으로 다운 받아도 될것 같습니다.

이 버전의 ZPU가 정상 동작하는지에 대해서는 확인을 해 봐야 합니다.
인터넷에는 그에 대한 정보가 아직 올라온 것이 없네요


(4) ZEALOT

프로토스의 질럿인지는 모르겠습니다.


2가지 버전이 있으며 Small과 Medium 버전이 있습니다.

이 버전은 Salvador E. Tropea.에 의해서 제작되고 관리됩니다.

주요한 특징은

(5) ZY2000


에서 찾을 수 있습니다.

ZPU4에다가 Wishbone I/F를 가지고 있습니다. 그리고 풀셋으로  페리페럴을 가지고 있습니다.
-  ZPU
- DRAM
- soft-MAC
- Wishbone bridge
- GPIO
등을 포함하고 있습니다.

(6) Verilog 버전

에 가면 베릴로그 버전의 프로세서 모델을 찾을 수 있습니다.

어떤 버전이 좋은지는 검토를 해봐야 알겠습니다만,
파이프라인이 잘 동작한다면 차라리 그쪽이 좋지 않을까 합니다.
다만, 새로운 명령어 추가에 문제가 있을 수 있겠네요




Posted by GUNDAM_IM
ASIC SoC2009. 7. 13. 20:50

(0) 동기


   최근에 작은 프로세서에 대해서 검토해 봤습니다.
   조건은
   - 작아야 하며,
   - 그래도 C가 지원되에어 하며
   - AHB 정도는 나오거나 쉽게 붙을 수 있어야 한다
   - 소스 코드를 구할 수 있어야 하며
  - 라이센스에서 GPL이 없는 것이어야 한다는 것입니다.
 
   좀 조건이 까다로운가 싶기도 하네요.. 하지만
  저런 조건이 되어야 이리저리 사용할 수 있습니다.

  이리저리 찾다가 생각보다 작은 프로세서 하나를 찾았습니다. ZPU입니다.
  잘 아시겟지만, 오픈코아에 있는 프로세서 입니다.
  사실 저도 거기에 있는줄은 알았지만,  오픈코아의 특성상 반신반의 하였습니다.
  엔지니어의 원칙,
       내가만든 코드도 안믿는데 남이 만든 코드를 믿겠느냐. 라는.. 불신론에 가까운 생각을..
  가지고 있어서..
  우연히 다른 프로젝트를 검토하다가 외국 모 회사의 개발 환경을 검토하는 중에 해당 프로세서를 사용한 예제를 주고 있는 것을 발견하고  유심히 한번 보았습니다.
 

(1) 라이센스


  GPL 라이센스 문제는 생각보다 복잡합니다.
  사용상에 아무런 제약이 없지만, 문제는 링크된 모든 코드를 오픈해야 한다는 점 때문입니다.
  프로그램상의 링크된 코드를 하드웨어로 재 해석한다면 붙어있는 모든 IP를 의미합니다.
  - 아직 이부분에 대해서는 판례나 정보가 정확하게 정의된 것이 없어서 구체적으로 어떻게까지
    공개되어야 하는지 명확하지가 않습니다.
    인터넷에서도 이에 대해서 많은 토론을 진행하고 있습니다.

  개인으로 할때야 아무런 문제가 없지만
  회사차원에서 할 때에는 이런 GPL이 적용된 코드를 사용하면,
  자사 설계 아이피를 모두 오픈해야 하는 곤란한 문제가
  발생합니다.  그래서 GPL 라이센스가 붙은 IP를 사용하는 것은 상당히 조심스러워집니다.

  예전에 OpenCore 프로세서도 발표는 GPL로 하였지만, 저자가 적용한 라이센스의 의미는 모두 사용하라는 것이지 모두 공개하라는 의미는 아니였다는 글을 포스팅한적도 있습니다. 하지만, 저자가 회사를 만들면서, 공개에 관련된 모든 글들이 슬그머니 사라지면서, 그 글도  슬그머니 사라져 버렸죠.

  스팍 T1을 잘라서 만든 SRISC도 이 GPL을 따라갑니다.
  - 만드신 분들도 크게 돈을 목적으로 하지 않는것 같아서  그분들은 크게 문제는 없습니다만,...

  그래서 최소한의 조건은 BSD라이센스여야 한다는 점입니다.
  - 사용은 공짜로 , 링크된 부분은 공개는 안해도 되는 라이센스 조건입니다.

  이번에 찾은 ZPU는 Architecture는 GPL이어서 만약 아키텍쳐에 대한 수정이 가해지면
  모두 공개하여야 합니다. 대신에 코드에 대해서는 BSD라이센스를 사용하여서 사용상에
 큰 문제인 링크된 코드를  오픈하라는 문제는 없어지게 됩니다.
 

(2) 소스 코드 다운 받기


아래 사이트에서 다운 받을 수 있습니다.
http://opensource.zylin.com/zpudownload.html

툴은 리눅스와 윈도우/시그윈 버전을 다운 받을 수 있습니다.

프로세서 소스코드는

git clone git://repo.or.cz/zpu.git

으로 다운 받을 수 있습니다.

툴 체인은 SRC로도 다운 받을 수 있습니다.
- 제 경우 맥을 쓰므로 새로 빌드를 하였습니다. 이것은 다음 번에 정리하도록 하겠습니다.

툴 체인은 toolchain 폴더로
프로세서는 zpu 폴더에 다운 받게 됩니다.

(3) ZPU Processor 폴더 구조


zpu /misc /arm7
/ddrsdram
/wishbone
/wip (EMPTY Folder)
/zpu /docs
관련 문서를 보관하는 폴더입니다.
zpu_arch.html 파일을 읽으면 됩니다.
하위 폴더로 presentation이 있는데, PT 자료를 포함합니다.
/hdl
프로세서 HDL 코드가 들어 있습니다.
자세한 폴더 내용은 다음 절에서 정리합니다.
/roadshow
예제 프로그램들이 들어 있습니다.
/sw
시뮬레이터와 간단한 샘플 예제가 들어 있습니다.

(4) ZPU Architecture

ZERO Operand 아키텍쳐입니다.
쉽게 말씀드리면  JAVA 프로세서와 같은 Stack Based CPU입니다.
따라서 명령어는 8비트로 됩니다.


위의 코드를 보면 5를 스텍에 넣고
loadsp 20으로 하여서 SP+20의 값을 읽어서 스텍 최상층에 넣습니다.
다시 ADD 명령으로 2개의 최상층 스텍 값을 읽어서 더한 후에 다시 스텍에 넣습니다.

스텍에 계속 읽고 쓰므로 느리긴 하지만, 나름대로, 간편한 구조여서 프로세서의 크기를 줄이는데
일조를 합니다.

이런 아키텍쳐이므로 수학연산을 하기위해서 쓰는 것은 좀 무리가 있겠습니다.
다만, 간단한 제어용으로 사용하는데에는 좋을 것 같습니다.

사실 요즘은 맘만먹으면 구할 수 있는 프로세서가 많이 있습니다.

Altera의 NIOS,
Xilinx의 picoblaze등등

그런 상황에서 ZPU의 장점이 뭔지 생각해봐야 할 부분인듯 합니다.

좋은 점은 아주 작으므로, 초기 시스템 세팅에 필요한 동작을 수행할때 사용하면 좋을 것 같습니다.
최근에 모 프로젝트에 8051을 검토하였습니다만, 이정도 급이면 쓸만할 것 같습니다.

자료를 보면 eCOS도 포팅되어 있기 때문에 적당한 수준의 제어용 어플리케이션까지는
응용이 가능할것 같습니다. - 다만, uCOS-II가 더 낳지 않을까 생각합니다.

이런 프로세서가 타겟으로 하는 종류의 어플리케이션에서는 취향 문제가 더 크게 작용하게 마련입니다.
어떤 프로세서를 쓰더라도 다른 사람이 크게 관심을 가지지 않기 때문이죠

- 다음번에는 ZPU의 변형에 대해서 정리해보겠습니다.

Posted by GUNDAM_IM