나노팟해부기

vajna의 이미지

웹을 떠도는 아이팟 해부도를 보구 심심해서 파헤쳐 봅니다.

1. MCU : Portal player라는 업체의 PP5021
1.1 Dual ARM7TDMI
최근의 MP3의 CORE-SOC 구성은
A 하나의 RISC(ARM-CORE)와 하나의 Audio Codec DSP로 구성되거나
B 하나의 ARM-CORE만으로 구성되어 Audio Codec을 소프트웨어로 구현하거나
였는데, 이넘은
C 두개의 ARM-CORE로 구성, 하나는 메인스케쥴과 Audio,
다른하나는 시간이 많이 걸리는 Video decode를 수행하는것으로 추정합니다.
비디오 사이즈가 QCIF이하니깐 Audio를 COP에 할당해서 사용할 수도 있겠죠.
1.2 USB 2.0 with OTG
머 요새는 USB 2.0이 기본이긴 합니다. OTG기능은 세트 스펙을 보아 칩내에는
구현되어 있으나, 소프트웨어적으로는 구현되지 않았을것으로 추정합니다.
매스 스토리지 프로토콜은 소프트웨어 스택으로 구현되겠지요.

2. Memory
2.1 삼성 NAND-Flash
이와 관련된 이야기는 많이 있으니 생략합니다.
PCB패턴에 보면 주기판쪽에 낸드용 서브보드를 사용하지 않을때 주기판에
낸드를 직접 붙일 수 있는 패턴이 있군요..
2.2 SST 55LD019K
NAND-Flash를 ATA장치로 제어할 수 있도록하는 칩입니다.
보통 Flash MP3 player는 MCU SOC에 낸드제어기가 달려있는데,
IPOD야 하드로 시작해서 SOC자체에 ATA제어기가 달려있던 전 모델이 있기에,
머 '상속'의 과정에서 이런 구조를 가지는것이 아닌가 싶습니다.
소프트웨어로 구성하는것보다 칩을 사용하는것이 안정적일 수도 있구요.
2.3 K4M56163
삼성 모바일SDRAM으로 제가 봤던 해부도에는 32메가바이트(16메가-16bit워드)짜리가 들어있습니다.
시스템 주 메모리로 쓰이죠..
2.4 SST 39WF400A
주기판 bottom에 붙어있어서 찾는데 애먹었습니다. 요런녀석 없으면 코드가 안돌아가죠.
NOR-Flash 일종으로 이놈은 512KByte용량입니다.
제가 만약 나노 프로젝트를 맡는다면
A. 여기에 기본적인 펌웨어 넣고, NAND에 아이콘 넣거나
B. 또는 여기엔 부트스트랩코드만 담고, 나머지 시스템코드과 아이콘은 NAND에 넣을수도 있겠죠...

3. Wolfson WM8975 DAC
세트 스펙으로 보아서는 ADC가 빠진, DAC만으로 구성된 것으로 추정되는
포터블 오디오 스테레오 출력용 칩입니다.
벤더 웹사이트에 데이터시트가 8974와 8976은 있는데 8975는 없더군요--a
참고로, 국산 대부분의 MP3 player는 이 벤더의 다른 기종의 CODEC을 사용합니다.(PCM En/Decoding)

4. PCF50607
아이팟리눅스 사이트엔 Power management unit이라고 하는군요.
배터리파워 모니터하는 칩입니다. 필립스꺼죠.
DDCON, ADC, 충전로직, RTC 정도가 있겠지요.[/img]

File attachments: 
첨부파일 크기
Image icon nano21.jpg268.39 KB
다크슈테펜의 이미지

일부 분석 기사를 보면 메모리에 삼성 것만 사용된것이 아니더군요.도시바도 역시 납품 했다고 합니다.상당히 난감한 상태인것 같습니다.

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

bus710의 이미지

약 40% 가량의 분량만 납품했다고 들은 것 같습니다.

nor 플래쉬가 없으면 코드가 안돌아가는 건 어떤 이유에서인가요??? 궁금....

life is only one time

rainbird의 이미지

보통, nor가 가격은 비싸지만 속도가 빠르기 때문에 코드를 담는데 이용됩니다. nand가 빨라졌다고 해도 코드를 담고 수행시키기에는 아직 약간 무리인가봅니다 :) 그래서 주로 데이터 담는데에 이용되죠 :)

/ / / // // / /// / / / // // / // // // / / / ////// // /
/ / // // / /// / / / // // / // // // / / / /// // // / /
/ / // // / /// / / / // // / // // // / // //...rainbird

bus710의 이미지

그렇군요~

nor 쪽이 회로가 비싼가 보네요.

그건 그렇고 삼성이 비메모리 칩( 정확히는 CPU )을 생산하고 있나요?

arm 에 얹는 것 말구요.

life is only one time

IsExist의 이미지

역시 이런곳은 ARM 계열이군요.

요즘 핸펀은 ARM9 계열인거 같던데 아직 MP3P는 ARM7 계열이 주인가
봅니다.

ARM7 사용하는 핸펀에서 ARM 어셈으로 암호화코드 옵티마이즈 한다고
고생한적이 있는데.

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

s4bz의 이미지

nand 는 대용량화하기는 좋지만 제어가 까다롭습니다.

물론 삼성에서 만드는 arm은 nand 제어를 하기위해서 제어디바이스를 포함하고 있죠.

이건 아마도 삼성에서 nand를 밀고 있어서 그렇겠죠??

반면 인텔은 nor을 밀고 있기때문에 인텔에서 나오는 arm은 제공하지 않습니다.

디바이스 드라이버를 만드는 삽질을 좀 많이 해줘야된다고 합니다.

앞에 쓸데 없는 말을 넘많이 적은거 같네요..-_-;

그에반해 nor은 상대적으로 nand보다 빠르고 제어하기가 쉽기때문에

nor 부팅을 많이 사용하는걸로 알고있습니다.

물론 삼성에서 나오는 암은 nand부팅을 제공하기도 한답니다..^^;

아~~

다크슈테펜의 이미지

s4bz wrote:
nand 는 대용량화하기는 좋지만 제어가 까다롭습니다.

물론 삼성에서 만드는 arm은 nand 제어를 하기위해서 제어디바이스를 포함하고 있죠.

이건 아마도 삼성에서 nand를 밀고 있어서 그렇겠죠??

반면 인텔은 nor을 밀고 있기때문에 인텔에서 나오는 arm은 제공하지 않습니다.

디바이스 드라이버를 만드는 삽질을 좀 많이 해줘야된다고 합니다.

앞에 쓸데 없는 말을 넘많이 적은거 같네요..-_-;

그에반해 nor은 상대적으로 nand보다 빠르고 제어하기가 쉽기때문에

nor 부팅을 많이 사용하는걸로 알고있습니다.

물론 삼성에서 나오는 암은 nand부팅을 제공하기도 한답니다..^^;


혹시 이런것은 가능할까요 nor쪽에 부팅관련 모듈을 탑재하고 nand쪽에 동영상에 관련된 프로그램을 설치해서 플래쉬메모리에 저장된 동영상을 감상할정도 그정도는 나오나요...? 개인적으로 궁금...앞에서 이야기한 내용을 보면 충분히 가능할것 같은데...
PS:전에 까지 아이팟 나노 별로 신경 안쓰였는데 하루만에 갑자기 지르고 싶은 생각은 드는것은 왜 일까...?

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

초코리의 이미지

다크슈테펜 wrote:
s4bz wrote:
nand 는 대용량화하기는 좋지만 제어가 까다롭습니다.

물론 삼성에서 만드는 arm은 nand 제어를 하기위해서 제어디바이스를 포함하고 있죠.

이건 아마도 삼성에서 nand를 밀고 있어서 그렇겠죠??

반면 인텔은 nor을 밀고 있기때문에 인텔에서 나오는 arm은 제공하지 않습니다.

디바이스 드라이버를 만드는 삽질을 좀 많이 해줘야된다고 합니다.

앞에 쓸데 없는 말을 넘많이 적은거 같네요..-_-;

그에반해 nor은 상대적으로 nand보다 빠르고 제어하기가 쉽기때문에

nor 부팅을 많이 사용하는걸로 알고있습니다.

물론 삼성에서 나오는 암은 nand부팅을 제공하기도 한답니다..^^;


혹시 이런것은 가능할까요 nor쪽에 부팅관련 모듈을 탑재하고 nand쪽에 동영상에 관련된 프로그램을 설치해서 플래쉬메모리에 저장된 동영상을 감상할정도 그정도는 나오나요...? 개인적으로 궁금...앞에서 이야기한 내용을 보면 충분히 가능할것 같은데...
PS:전에 까지 아이팟 나노 별로 신경 안쓰였는데 하루만에 갑자기 지르고 싶은 생각은 드는것은 왜 일까...?

플래시 메모리에 저장된 동영상이 어떤것이냐에 따라 다르지만

충분히 가능합니다

저도 NOR에 부트로더, 커널, 램디스크넣고
NAND에 라이블러리 데이터를 넣고 개발하고 있습니다.

namacin의 이미지

아는 내용이 있어서 몇자 적습니다.

부팅용으로 nor 플래시를 주로 쓰는 이유는 memory 처럼 접근이 가능하기 때문입니다.
프로그래밍에서 포이터를 쓸때 흔히들 말하는 그런 주소 접근이 nand 플래시에서는 불가능 하기 때문이죠.

상대적으로 nand보다 빠르고 제어가 쉽기 때문이라는 것은 주된 이유가 아니라고 알고있습니다.

bus710의 이미지

namacin wrote:
아는 내용이 있어서 몇자 적습니다.

부팅용으로 nor 플래시를 주로 쓰는 이유는 memory 처럼 접근이 가능하기 때문입니다.
프로그래밍에서 포이터를 쓸때 흔히들 말하는 그런 주소 접근이 nand 플래시에서는 불가능 하기 때문이죠.

상대적으로 nand보다 빠르고 제어가 쉽기 때문이라는 것은 주된 이유가 아니라고 알고있습니다.

집요하게 여쭤 봅니다 :twisted:

nor는 포인터로 접근이 가능하다하시면.

nand는 어떻게 접근해야하나요??? 궁금궁금...

life is only one time

namacin의 이미지

akudoku wrote:
namacin wrote:
아는 내용이 있어서 몇자 적습니다.

부팅용으로 nor 플래시를 주로 쓰는 이유는 memory 처럼 접근이 가능하기 때문입니다.
프로그래밍에서 포이터를 쓸때 흔히들 말하는 그런 주소 접근이 nand 플래시에서는 불가능 하기 때문이죠.

상대적으로 nand보다 빠르고 제어가 쉽기 때문이라는 것은 주된 이유가 아니라고 알고있습니다.

집요하게 여쭤 봅니다 :twisted:

nor는 포인터로 접근이 가능하다하시면.

nand는 어떻게 접근해야하나요??? 궁금궁금...

말 주변이 없어서 쉽게 설명이 가능할지 모르겠습니다만..

포인터로 접근이 가능하다는 표현보다는 "포인터 처럼" 이 옳을것 같습니다.
100 번지의 데이타를 읽어라 하면 실제 nor 플래시의 100번째 바이트의
데이터를 읽는다고 보시면 이해가 쉬울런지...

아.. 그런 면에서 제어가 쉽다는 표현도 맞는거 같네요

참고로 nand 플래시의 경우 100번지를 읽으라는 명령을 줄 수 없고
몇번째 블럭의 몇번째 바이트를 읽어라... 하고 명령을 주어야 합니다.

[정정] 몇번째 블럭의 몇 번째 바이트를 읽는게 아니라 해당 블럭을 모두 읽어서 그 안에서 해당 바이트를 찾아야 합니다.
잠시 헷갈렸네요