이 포스트는 PS3에 리눅스를 설치하고 구동에 성공하여 프로그래밍을 통해 이미지 파일을 화면에 띄우기까지의 진행 정리입니다. 따라서 진행에 변경이 있을 시 매번 갱신되서 최근 등록으로 올라옵니다.
플레이스테이션3는 Yellow Dog Linux를 설치하면 리눅스 머신으로 사용될 수 있다고 합니다.
아직 SPE가 2개밖에 잡히지 않아 풀 스피드를 낼 수 없고 개발 라이브러리 또한 부족합니다.
허나 미약하나마 PS3의 Cell Processor의 가속을 받는 라이브러리는 존재한다고 합니다.
앞으로 계속 지원하는 것이 늘어날테니 기대를 해봐도 좋을 것 같습니다.
더욱이 합법적으로 해볼 수 있는거라 혹시나 하는 문제에 대한 A/S도 별로 걱정이 없습니다.
YDL은 Terra soft solutions에서 제작하고 있습니다. 페도라 코어입니다.
(http://www.terrasoftsolutions.com)
ftp에 들어가 4기가에 육박하는 이미지 파일을 받았습니다.
- 2007년 7월 9일.
무사히 PS3에 ydl 설치 완료. 설치하는 법은 너무도 간단하기 때문에 따로 적지 않겠습니다.
yellow dog linux ps3 만 구글에 검색하면 쭉쭉 나옵니다.
테라 소프트 홈페이지에도 자세히 설명되어 있습니다.
그럼 원래 목표인 프로그래밍을 시도해 보았습니다.
기본적으로 CELL이라는 것은 PPE와 SPE라는 것으로 연산이 나누어져 있고
PPE 1개에 SPE8개가 붙어있으며 EIB (Element Interconnect Bus) 로 서로 통신을 하게 됩니다.
EIB는 메인 메모리와 그래픽, IO와 붙어 있습니다.
PPE는 PowerPC Processor Element (PPE) 로 64비트 파워피시 아키텍쳐로 되어 있습니다.
SPE는 Synergistic Processor Element (SPE) 로 8개의 SPE가 멀티미디어계로 동작합니다.
Cell은 8개의 SPE를 제대로 써야 무시무시한 성능이 나옵니다. (라고 스펙설명에 되어 있습니다.)
어차피 ps3 linux는 opengl도 막혀있고 기존의 PowerPC용 리눅스를 컨버트 한 PPC입니다.
CELL SDK가 있긴 하지만 제대로된 PS3개발은 불가능합니다.
그래서 ibm홈페이지의 간단한 예제를 확인해 보는 것으로 마쳤습니다.
ppe에 사용될 코드를 작성합니다. 코드의 내용을 보면 spe에 쓰래드 개념으로 할당하여 동작을 요청하게 됩니다. 즉 spe에서 계산되 오는 내용들을 ppe에서 효율적으로 처리를 해야 제대로 된 성능이 나오는게 아닐까 합니다.
이번 예제에서 실제적인 계산을 처리해 주는 spe의 코드입니다. ppe에서 입력받은 데이터를 가지고 spe가 계산하여 넣어주게 됩니다. 저곳에서 나오는 mfc는 Memory Flow Controller의 약자로 mfc를 통하여 DMA통해 메인 메모리에 전송되게 됩니다.
컴파일 과정과 결과 입니다.
spu-gcc로 spe를 컴파일 후 ppe에서 가져다 쓰는 형태로 컨버트 하게 됩니다. 그리고 난 뒤 ppe를 컴파일 하게 되어 사용합니다.
후에 좀 더 ydl이 업데이트가 되서 그래픽도 가능하게 되면 몇가지를 시도해 볼 생각입니다.
지금은 구조 이해하고 생각해보는데만 벅차군요.