KR20100135825A - 비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들 - Google Patents

비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들 Download PDF

Info

Publication number
KR20100135825A
KR20100135825A KR1020107023280A KR20107023280A KR20100135825A KR 20100135825 A KR20100135825 A KR 20100135825A KR 1020107023280 A KR1020107023280 A KR 1020107023280A KR 20107023280 A KR20107023280 A KR 20107023280A KR 20100135825 A KR20100135825 A KR 20100135825A
Authority
KR
South Korea
Prior art keywords
processor
media
media device
pointer structure
data
Prior art date
Application number
KR1020107023280A
Other languages
English (en)
Other versions
KR101229522B1 (ko
Inventor
게리 지. 굿
쿤탈 디. 삼파트
크리스토퍼 할리 브랙켄
Original Assignee
콸콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20100135825A publication Critical patent/KR20100135825A/ko
Application granted granted Critical
Publication of KR101229522B1 publication Critical patent/KR101229522B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Abstract

전력 소모는 비휘발성 메모리에 직접적으로 또는 간접적으로 커플링되어 제 1 프로세서로 하여금 포인터 구조를 생성하게 하는, 제 1 프로세서를 포함하는 미디어 디바이스에서 감소될 수 있다. 상기 제 1 프로세서는 또한 메모리 공간에 직접적으로 또는 간접적으로 커플링되어 상기 제 1 프로세서로 하여금 상기 메모리 공간에 포인터 구조를 기록하게 할 수 있다. 미디어 디바이스는 DSP/SHW 또는 주변 프로세서와 같은 제 2 프로세서를 포함하며, 또한 상기 메모리 공간에 직접적으로 또는 간접적으로 커플링되어 상기 제 2 프로세서로 하여금 비휘발성 메모리로부터 미디어 데이터의 블록을 리트리브(retrieve)하게 할 수 있다. 미디어 데이터의 블록의 리트리브는 비휘발성 메모리로부터 직접적으로 판독될 수 있거나, 또는 일부 경우들에서 리트리브되는 상기 미디어 데이터는 파싱될 수 있다. 미디어 데이터는 오디오 파일 데이터, 비디오 파일 데이터 또는 이들 모두일 수 있다.

Description

비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들{EFFICIENT LOW POWER RETRIEVAL TECHNIQUES OF MEDIA DATA FROM NON-VOLATILE MEMORY}
본 발명은 일반적으로 컴퓨터들 및 컴퓨터-관련 기술에 관한 것이다. 더 구체적으로, 본 발명은 비휘발성 메모리로부터의 압축된 파일들의 리트리브(retrieval)를 위한 효율적인 기법들에 관한 것이다. 상기 기법들은 모바일 컴퓨팅 디바이스들을 포함한 컴퓨팅 디바이스들에서 이용될 수 있다.
본 특허 출원은 출원번호가 61/037,450이고, 출원인 관리번호가 08111P1이고, 발명의 명칭이 "EFFICIENT RETRIEVAL TECHNIQUES OF DATA FROM MEMORY"이고, 출원일이 2008년 3월 18일이고, 본 발명의 양수인에게 양도된 가출원의 우선권을 청구한다.
컴퓨팅 디바이스들은 운영 체제를 가진다. 운영 체제는 컴퓨팅 하드웨어 상에서의 소프트웨어 애플리케이션들의 실행을 가능하게 하는 소프트웨어 프로그램이다. 상기 운영 체제는 컴퓨팅 디바이스에 위치된 프로세서 상에서 로딩된다. 많은 애플리케이션들은 모바일 디바이스들 내에 들어간다. 이들 애플리케이션들 중 일부는 오디오 프로세싱 및/또는 비디오 프로세싱을 포함한다.
용어 오디오 프로세싱은 오디오 신호들의 프로세싱을 지칭할 수 있다. 유사하게 용어 비디오 프로세싱은 비디오 신호들의 프로세싱을 지칭할 수 있다. 오디오 신호들은 오디오를 나타내는 전기 신호들, 즉, 인간 가청 범위내에 있는 사운드들이다. 유사하게, 비디오 신호들은 비디오를 나타내는 전기 신호들이다. 오디오 또는 비디오 신호들은 디지털 또는 아날로그일 수 있다. 많은 다른 타입들의 컴퓨팅 디바이스들은 오디오 및 비디오 프로세싱 기법들을 이용할 수 있다. 상기 컴퓨팅 디바이스들의 예들은 데스크톱 컴퓨터들, 랩톱 컴퓨터들, 워크스테이션들, 무선 통신 디바이스들, 무선 모바일 디바이스들, 개인 휴대용 정보 단말(PDA)들, 스마트 폰들, iPod들, MP3 플레이어들, 핸드헬드 게임 유닛들 또는 다른 미디어 플레이어들, 및 매우 다양한 다른 가전 디바이스들을 포함한다. 여기서 사용되는 바와 같이, 컴퓨팅 디바이스들의 이들 예들 중 임의의 예는 "미디어 디바이스들"로서 고려된다.
오디오 압축은 오디오 파일들의 사이즈를 감소시키도록 설계되는 데이터 압축 형태이다. 현재 사용중인 많은 상이한 오디오 압축 알고리즘들이 존재한다. 오디오 압축 알고리즘들의 일부 예들은 MPEG-1 Audio Layer 3 (MP3), Advanced Audio Coding (AAC), 고효율 AAC (HE-AAC), HE-AAC 버전 2 (HE-AAC VZ), 윈도우 미디어 오디오 (WMA) , WMA Pro 등을 포함한다.
유사하게, 비디오 압축(때때로 사진들 및 비디오를 압축하기 위해 사용될 수 있음)은 비디오(또는 사진) 파일들의 사이즈를 감소시키도록 설계되는 데이터 압축의 형태이다. 또한 현재 사용중인 많은 상이한 비디오 압축 알고리즘들이 존재한다. 비디오 압축 알고리즘들의 일부 예들은 VC1 표준을 포함하여, JPEG 기반 프로파일, JPEG2000, MPEG-1, MPG-2, MPEG-4 단일 프로파일, MPEG-4 어드밴스드 단일 프로파일, H.263 기반 프로파일, H.264 기반 프로파일, H.264 메인 프로파일, 윈도우 미디어 플레이어 9 시리즈를 포함한다.
오디오 파일 또는 비디오 파일은 오디오 또는 비디오 신호들을 압축하기 위해 사용되는 오디오 또는 비디오 압축 알고리즘들에 따라 상이한 포맷들을 가질 수 있다. 압축된 데이터는 때때로 비트스트림이라 지칭될 수 있다. 비트스트림(즉, 압축된 오디오 파일 또는 압축된 비디오 파일)은 메모리에 저장될 수 있다. 때때로 비트스트림은 컴퓨터 또는 모바일 디바이스의 운영 체제와 연관된 포맷으로 암호화되거나 저장된다. (비트스트림이 압축된 데이터를 표현할 수 있으므로) 비트스트림을 압축해제하고 상기 비트스트림을 (만약 그것이 압축된 경우) 압축해제하는 것은 초당 많은 계산들을 필요로 한다.
애플리케이션 소프트웨어를 실행시키는 프로세서(때때로 애플리케이션 프로세서라고 지칭됨)는 전용 프로세서와 상호작용한다. 전용 프로세서의 일 타입은 디지털 신호 프로세서(DSP)로서 알려져 있다. 운영 체제가 로딩되는 애플리케이션 프로세서는 메모리로부터 비트스트림을 리트리브하고 이를 암호해독 및/또는 압축해제하기 위해 DSP로 전달한다. 이러한 방식으로의 비트스트림의 프로세싱은 많은 전력을 소모한다. 저전력으로 비트스트림을 프로세싱하기 위한 기법의 발견이 요구된다.
일 양상에 따라, 미디어 디바이스에서 전력을 감소시키는 방법은 제 1 프로세서에 의해 비휘발성 메모리에 저장된 미디어 데이터의 포인터 구조를 생성하는 단계; 상기 제 1 프로세서에 의해 상기 포인터 구조를 제 2 프로세서에 의해 액세스가능한 메모리 공간으로 기록하는 단계; 상기 제 2 프로세서에 의해 상기 메모리 공간으로부터 상기 포인터 구조를 판독하는 단계; 및 상기 제 2 프로세서에 의해 상기 포인터 구조에 기초하여 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브(retrieve)하는 단계를 포함한다.
또다른 양상에 따라, 미디어 디바이스는 저장된 미디어 데이터를 가지는 비휘발성 메모리; 상기 비휘발성 메모리에 커플링되고, 상기 비휘발성 메모리에 저장된 상기 미디어 데이터의 위치 및 사이즈를 포함하는 포인터 구조를 생성하도록 구성되는 제 1 프로세서; 상기 애플리케이션 프로세서에 의해 기록된 상기 포인터 구조를 저장하기 위한 메모리 공간; 및 상기 메모리 공간으로부터 상기 포인터 구조를 판독하도록 구성되고, 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브하도록 구성되는 제 2 프로세서를 포함한다.
또다른 양상에 따라, 미디어 디바이스는 애플리케이션 프로세서에 의해 비휘발성 메모리에 저장된 미디어 데이터의 포인터 구조를 생성하기 위한 수단; 상기 애플리케이션 프로세서에 의해 상기 포인터 구조를 다른 프로세서에 의해 액세스가능한 메모리 공간으로 기록하기 위한 수단; 상기 다른 프로세서에 의해 상기 메모리 공간으로부터 상기 포인터 구조를 판독하기 위한 수단; 및 상기 다른 프로세서에 의해, 상기 포인터 구조에 기초하여 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브하기 위한 수단을 포함한다.
추가적인 양상에 따라, 하나 이상의 프로세서에 의해 실행가능한 명령들의 세트를 포함하는 컴퓨터-판독가능한 매체는 제 1 프로세서에 의해 비휘발성 메모리에 저장된 미디어 데이터의 포인터 구조를 생성하기 위한 코드; 상기 제 1 프로세서에 의해 상기 포인터 구조를 제 2 프로세서에 의해 액세스가능한 메모리 공간으로 기록하기 위한 코드; 상기 제 2 프로세서에 의해 상기 메모리 공간으로부터 상기 포인터 구조를 판독하기 위한 코드; 및 상기 제 2 프로세서에 의해 상기 포인터 구조에 기초하여 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브하기 위한 코드를 포함한다.
다른 양상들, 특징들, 방법들 및 이점들은 후속하는 도면들 및 상세한 설명의 고찰시 당업자에게 자명해질 것이다. 모든 이러한 추가적인 특징들, 양상들, 방법들 및 이점들은 이 설명 내에 포함되며 첨부되는 청구항들에 의해 보호되도록 의도된다.
도면들은 오직 예시의 목적임이 이해되어야 한다. 또한, 도면들 내의 컴포넌트들은 반드시 축척에 맞지는 않으며, 대신 여기서 설명되는 디바이스들 및 기법들의 원리를 예시할 시에 강조될 수는 있다. 도면들에서, 동일한 참조 번호들은 상이한 뷰들 전반에 걸쳐서 대응하는 부분들을 지정한다.
도 1은 메모리로부터 파일들을 리트리브하고 상기 파일들 내의 데이터를 DSP로 전달하기 위해 애플리케이션 프로세서를 사용함으로써 오디오 파일들을 프로세싱하기 위한 기법들을 구현하는 예시적인 미디어 디바이스를 예시하는 블록 다이어그램이다.
도 2A는 프로세서로부터 파일들을 리트리브하기 위해 (애플리케이션 프로세서가 아닌) 다른 프로세서를 사용함으로써 오디오 파일들을 프로세싱하기 위한 기법들을 구현하는 예시적인 미디어 디바이스를 예시하는 블록 다이어그램이다.
도 2B는 메모리로부터 파일들을 리트리브하기 위해 (애플리케이션 프로세서가 아닌) 다른 프로세서를 사용함으로써 비디오 파일들을 프로세싱하기 위한 기법들을 구현하는 예시적인 미디어 디바이스를 예시하는 블록 다이어그램이다.
대안적인 실시예에서, 도 2A 및 도 2B 사이에 예시된 공통 아키텍처 및 도 2A 및 도 2B 사이에 예시된 아키텍처들 간의 차이들은 도 2C에 예시된 미디어 디바이스를 형성한다.
도 3은 주변 프로세서 또는 DSP와 같은 다른 프로세서가 비휘발성 데이터로부터 데이터를 리트리브한 이후 애플리케이션 프로세서에 의한 비휘발성 메모리로의 기록 프로세스의 플로우 다이어그램을 예시한다.
도 4A는 도 2A의 대안적인 실시예이다
도 4B는 도 2B의 대안적인 실시예이다.
대안적인 실시예에서, 도 4A 및 도 4B 사이에 예시된 공통 아키텍처 및 도 4A 및 도 4B 사이에 예시된 아키텍처들 간의 차들은 도 4C에 예시된 미디어 디바이스(140)를 형성한다.
도 5는 전력 관리 집적 회로(PMIC)의 일 예의 블록 다이어그램이다.
도 6A는 소모된 전체 전류 대 배터리 수명에 대한 그래프를 예시한다.
도 6B는 여기서 설명되는 기법들/아키텍처들에 의해 사용될 수 있는 (시간 상의) 배터리 수명의 양을 예시하는 예시적인 그래프이다.
도 7 및 도 8은 메모리로부터 파일들을 리트리브 하기 위해 애플리케이션 프로세서가 아닌 다른 프로세서를 사용함으로써 미디어 파일들을 프로세싱하기 위한 예시적인 기법들을 플로우차트들을 예시한다.
컴퓨팅 디바이스들에서의 보안이 최근 수년간 중요해지고 있다. 사람들은 디지털로 저장될 수 있는 그들의 개인 정보의 보호에 관해 우려한다. 음반 회사들 및 영화 스튜디오들, 및 아티스트들 역시 그들의 컨텐츠가 불법으로 카피될 수 있다는 점을 우려한다. 많은 컴퓨팅 디바이스들에서, 상이한 운영 체제들로써 동작할 수 있는 파일 시스템(또한 소프트웨어 프로그램)이 존재한다. 많은 운영 체제들을 통해 사용자는 데이터를 안전하게 저장할 수 있다. 파일 시스템은 선택된 파일 시스템 파일들 및 폴더들에서 데이터를 암호화함으로써 이를 수행할 수 있다. 이를 수행할 수 있는 파일 시스템들의 다양한 타입들, 예를 들어, FAT, FAT16, FAT32, NTFS, 또는 다른 사설 시스템(propritary system)이 존재한다. WinFS (Windows Future Storage)와 같은 일부 시스템들은 향후를 위해 현재 개발 중이다. 인기를 얻고 있는 한가지 이러한 시스템은 NTFS이다. NTFS (New Technology File System)은 Windows XP Vista 2003 2000 & NT (developed by Microsoft) 또는 이후의 운영 체제들, 예컨대 Windows Mobile 5.0, 6.0, 7.0 등에 대해 전용인 암호화 파일 시스템(Encrypting File System ; EFS)이다. NTFS는 파일-레벨 보안 및 파일-압축을 지원한다. (이 컨텍스트에서의) 파일 압축은 앞서 언급된 오디오 프로세싱 압축 이후에 적용되는 "추가" 압축일 수 있다. EFS는 또한 윈도우 모바일 운영 체제 상에 존재한다. Linux 및 Apple의 운영 체제들은 역시 사용될 수 있는 암호화 파일 시스템들을 포함한다. 암호화 파일 시스템들이 파일 시스템과 함께 집적되므로 이들은 관리하기 쉬우며 공격하기 어렵다. 파일 또는 폴더가 암호화된 것으로서 마킹되면, 그것은 암호화되며, 사용자에 대해 투명(transparent)하게 된다.
파일들 및 폴더들을 Microsoft의 EFS를 통해 암호화하기 위해, 유효 X.509 인증서가 사용된다. 향후에 사용되는 다른 인증서들이 존재할 수 있다. 암호화기법에 있어서, X.509는 공용 키 인프라구조(PKI)에 대한 국제 통신 연합(ITU)-T 표준이다. 특히 X.509는 공용 키 인증서 및 인증 경로 유효화 알고리즘에 대한 표준 포맷을 특정한다. ITU는 정보 및 통신 기술들에 대한 지도적인 국제 연합이다. 사용자가 데이터를 암호화하려고 하는 경우, EFS는 유효 인증서를 검색한다. 하나도 발견되지 않는 경우, 상기 EFS는 윈도우 인증 허가(CA)를 가지고 있는 것을 등록하려고 할 수 있다. CA를 통해 인증서를 요청할 수 없는 경우, EFS는 자가-서명 인증서를 생성할 수 있다.
파일 시스템 소프트웨어는 컴퓨팅 디바이스 내의 프로세서(애플리케이션 프로세서)로 로딩된 운영 체제의 일부이다. 모바일 디바이스에서, 이는 종종 ARM 프로세서이다. ARM 아키텍처는 다수의 모바일 디바이스들 내에서 널리 사용되는 ARM 사에 의해 개발된 32-비트 RISC 프로세서 아키텍처이다. 전력 절감 특징들로 인해, ARM 프로세서들은 저전력 소모가 설계 목표인 모바일 전자제품 시장에서 우세하다. ARM사는 자신들의 고유한 애플리케이션 프로세서를 제조하는 많은 회사들에 코어 ARM 아키텍처를 라이센싱한다. 다른 타입들의 프로세서들 역시 애플리케이션 프로세서들로서 서빙할 수 있다.
통상적으로, 애플리케이션 프로세서는 노래 또는 비디오와 같은 미디어 파일의 재생과 같이 사용자 애플리케이션을 실행("런")시키기 위해 디지털 신호 프로 세서(DSP)와 함께 동작한다. DSP들은 전용 기능들 또는 동작들을 수행하도록 설계된다. DSP들은 통상적으로 애플리케이션 프로세서로부터의 프로세싱 중 일부를 "오프로드(offload)"시킨다. 따라서, DSP들은 파일 시스템을 포함하는, 그들 상에 로딩된 운영 체제를 가지지 않는다. 파일 시스템이 DSP상에서 실행하게 함으로써 많은 복잡성들이 도입될 수 있다. 따라서, 파일 시스템은 애플리케이션 프로세서(들) 상에 로딩된다. 미디어 파일들이 파일 시스템을 사용하는 메모리에 안전하게 저장되므로, 애플리케이션 프로세서는 메모리로부터 비트스트림(또는 암호화된 비트스트림)을 리트리브한다. 미디어 파일들은 오디오 파일들, 비디오 파일들, 또는 오디오 및 비디오 파일들의 조합일 수 있다. 오디오 파일들은, 노래, 링톤, 또는 일부 다른 형태의 자연적 또는 인위적으로 저장된 레코딩일 수 있다. 비디오 파일들은 비디오 클립, 사진, 또는 일부 사진들일 수 있다. 오디오 및 비디오 파일들의 조합은 뮤직 비디오, 영화, 만화, 또는 임의의 다른 이러한 미디어 컨텐츠일 수 있다.
도 1은 메모리로부터 파일들을 리트리브하고 상기 파일들 내의 데이터를 DSP로 전달하기 위해 애플리케이션 프로세서를 사용함으로써 오디오 파일들을 프로세싱하기 위한 기법들을 구현하는 예시적인 미디어 디바이스를 예시하는 블록 다이어그램이다. 예시적인 미디어 디바이스(4)는 상기 미디어 디바이스(4) 상에서 실행하는 소프트웨어에 따라, 어느 펌웨어 이미지가 DSP/SHW(8)로 로딩될지를 결정하는 애플리케이션 프로세서(6)를 포함한다. 펌웨어는 통상적으로 DSP 상에서 실행하는 소프트웨어의 명칭이다. 사용자가 재생할 미디어 파일을 선택하는 애플리케이션에서, 미디어 파일은 초기에 비휘발성 메모리(10)에 저장될 수 있다. 비휘발성 메모리는 전력이 제거된 후에도 저장된 데이터가 여전히 존재하는 것을 의미한다. 비휘발성 메모리의 예들은 메모리 카드들, 온보드 낸드 메모리 및 플래시 RAM(랜덤 액세스 메모리)이다.
(예를 들어, NAND-기반 제거가능 미디어 포맷과 같은) 오프칩 또는 온칩의 플래시 RAM은 현재 통신 디바이스들에서 많이 쓰인다. NAND-기반 제거가능 미디어 포맷 중 일부 예들은 MultiMediaCard, 보안 디지털, 메모리 스틱 및 xD-픽쳐 카드, RS-MMC, miniSD 및 microSD 및 지능 스틱이다. 지난 수년간, 오픈 NAND 플래시 인터페이스(ONFI) 컨소시엄은 NAND 플래시 메모리 칩들 및 디바이스들과 통신하는 이들에 대한 오픈 표준들의 설정에 대해 연구해왔다.
사용자가 UI 드라이버 회로(13)에 의해 구동되는 UI 디스플레이(12)를 통해 오디오 파일을 선택할 때 애플리케이션 프로세서(6)는 비휘발성 메모리(10)로부터, 버스 브리지(14) 및 메모리 제어기(16)를 통해 오디오 파일을 리트리브할 수 있다. 비휘발성 메모리(10)로부터의 미디어 파일 데이터의 리트리브는 "비트스트림 태스크"라 지칭될 수 있다. 그러나, 미디어 파일의 포맷에 따라, 미디어 파일 데이터는 헤더 또는 다른 메타 데이터, 및 비트스트림을 포함하는 컨텐츠 부분을 포함할 수 있다. 버스 브리지(14)는 상이한 컴포넌트들(예를 들어, 프로세서 및 메모리)의 일부인 상이한 버스들 간의 인터페이스로서 동작할 수 있다. 예를 들어, 애플리케이션 프로세서는 AMBA 고성능 버스(AHB)를 포함할 수 있다. AMBA는 어드밴스드 마이크로프로세서 버스 아키텍처를 나타낸다. 버스 브리시(14)는 마스터 AHB 인터페이스, AHB 슬레이브 인터페이스 또는 메모리 버스 인터페이스로서 동작할 수 있다. 이후, 비휘발성 메모리(10)로부터 판독된 데이터는 또다른(비휘발성 메모리 역시 외부일 수 있음) 외부 메모리(22)로 메모리 제어기(20)(및 또다른 버스 브리지(미도시))를 통해 기록될 수 있다. 외부 메모리(22)의 예들은 SDRAM(동기식 동적 액세스 메모리)일 수 있다. 외부 메모리(22)는 하나 이상의 애플리케이션 프로세서(들) 및 하나 이상의 DSP들을 포함할 수 있는 집적 회로(23)의 "외부"에 있을 수 있다. 전술된 바와 같이, 비휘발성 메모리 역시 집적 회로(23)의 외부에 있을 수 있다.
미디어 파일을 청취 및/또는 시청하기 위해, "비트스트림"이 압축해제되어야 한다. DSP/SHW(8)에 의해 수행되는 기능들 중 하나는 비트스트림을 압축해제하는 것이다. 상이한 타입들의 아키텍쳐들은 DSP/SHW(8)에 비트스트림을 기록하는데 사용될 수 있다. 비트스트림은 외부 메모리(22)로부터 DME(직접 메모리 교환 ; Direct Memory Exchanged)될 수 있다. 또한, 비트스트림을 DSP/SHW(8)에 기록할 수 있는 애플리케이션 데이터 이동기(ADM)가 존재할 수 있다. 이들 기법들(DME 및 ADM) 모두는 애플리케이션 프로세서(6)를 통한 조정을 필요로 한다.
DSP/SHW(8)이 비트스트림을 판독하면, 그것은 상기 비트스트림을 압축해제하고, 비트스트림이 오디오 파일 데이터인 경우, 압축해제는 PCM 버퍼(24)에 위치되어 오디오 코덱(26)에 의해 판독되는 펄스 코드 변조(PCM) 샘플들을 생성한다. PCM 버퍼(24) 및/또는 오디오 코덱(26)은 DSP/SHW(8) 내에 위치되거나 DSP/SHW(8) 외부에 위치될 수 있다. 디지털 대 아날로그 변환기(ADC)(28)는 디지털 샘플들을 코덱(26)으로부터 스피커 구동 회로(29)가 하나 이상의 스피커들(30A 및 30B)를 구동하기 위해 사용하는 아날로그 전압 파형으로 변환한다. PCM 버퍼(24), 오디오 코덱(26), 및 ADC(28)의 임의의 결합은 함께 통합될 수 있고, "통합된 오디오 코덱"(32)이라 지칭될 수 있다. 미디어 디바이스(4) 내에 위치된 컴포넌트들 모두에 전력을 공급하는 전력 관리 집적 회로(PMIC)가 존재할 수 있다. 비트스트림이 비디오 파일 데이터인 경우, DSP/SHW(8)은 비디오 코덱(49)에 의해 프로세싱되는 픽셀들을 생성하기 위해 상기 비트 스트림을 압축해제하고 픽셀 버퍼(141)(도 2B 참조) 내에 픽셀들을 위치시키며, 이는 비디오 코덱(49)에 의해 프로세싱되며 상기 픽셀들을 픽셀 버퍼(141) 내에 위치시킨다. 픽셀들은 디스플레이 프로세서(50)에 의해 추가적으로 프로세싱되고 디스플레이로 전송될 수 있다. 비디오 코덱(49) 및/또는 픽셀 버퍼(141)는 DSP/SHW(8) 내에 또는 외부에 위치될 수 있으며, 일부 구성들에서 디스플레이 프로세서(50)로 통합될 수 있다.
이전에 언급된 바와 같이, 이전에 언급된 컴퓨팅 디바이스들 중 임의의 컴퓨팅 디바이스는 "미디어 디바이스들"로 고려된다. 따라서, 여기서의 도면들에 예시된 예시적인 미디어 디바이스(4)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 워크스테이션, 무선 통신 디바이스, 무선 모바일 디바이스, 개인 휴대용 정보 단말(PDA), 스마트폰, iPod, MP3 플레이어, 핸드헬드 게임 유닛, 또는 다른 미디어 플레이어들, 및 매우 다양한 다른 가전 디바이스들에 포함될 수 있다.
예시의 목적으로, 표시 "DSP/SHW"는 여기서 DSP 또는 전용 하드웨어(SHW)가 설계자들의 요건들에 따라 일부 경우들에서 사용될 수 있음을 예시하기 위해 사용된다.
도 2A는 애플리케이션 프로세서(6)에 의해 생성되는 포인터 구조를 사용함으로써 메모리로부터 오디오 파일 데이터를 리트리브하기 위해 (애플리케이션 프로세서가 아닌) 다른 프로세서를 사용함으로써 오디오 파일들을 프로세싱하기 위한 기법들을 구현하는 예시적인 미디어 디바이스(5)를 예시하는 블록 다이어그램이다. 도 2A는 비휘발성 메모리(10)로부터 오디오 파일 데이터를 리트리브할 수 있는 다른 프로세서로서 DSP/SHW를 예시한다. 그러나, 상이한 프로세서, 예를 들어, 주변 프로세서는 DSP/SHW의 위치에 대체될 수 있으며 여기서의 개념들 및 기법들을 예시할 수 있다. 주변 프로세서는 애플리케이션 프로세서(6)로서 모든 "벨들 및 휘슬들"을 반드시 가지지는 않는 프로세서이다. 주변 프로세서 또는 DSP/SHW인 다른 프로세서는 통상적으로 훨씬 적은 전력을 소모하며 애플리케이션 프로세서(6)보다는 더 적은 성능들을 가질 수 있는 전용 프로세서이며, 따라서, 오디오 파일 데이터의 리트리브ㅘ 같은 특수 태스크들을 위해 사용된다. 또다른 프로세서, 예를 들어, DSP/SHW 또는 주변 프로세서를 사용하는 것은 미디어 디바이스(5)로 하여금 비트스트림 태스크동안 "저전력 모드"로 스위칭하게 한다.
DSP/SHW(8) 상에서 실행되는 파일 시스템이 복잡하게 되면 상기 파일 시스템은 애플리케이션 프로세서(6) 상에 로딩된다. 애플리케이션 프로세서(6)가 로딩된 파일 시스템을 가지므로, 오디오 파일 데이터의 헤더 및 파일 데이터 정보를 판독할 수 있다. 이후 애플리케이션 프로세서(6)는 오디오 파일들이 메모리에 오디오 데이터를 어떻게 저장하는지에 대한 포인터 구조를 생성할 수 있다. 포인터 구조는 리스트를 생성함으로써 만들어진다. 상기 리스트는 오디오 파일(들)의 어드레스들, 오프셋들 및 길이들을 포함한다. 오프셋들은 오디오에 존재할 수 있는 패딩 데이터 파일 - 예를 들어, MP3 오디오 파일들에 대한 ID3 메타데이터를 설명한다. 상기 리스트는 또한 사용자가 자신이 이전에 청취하고 있던 오디오 파일에서 고속 감기 또는 되감기를 하는 경우 상기 오디오 파일(들)의 대응하는 어드레스들, 오프셋들 및 길이들을 세팅할 수 있다. 이후 애플리케이션 프로세서(6)는 제한된 횟수만큼만 DSP/SHW(8)로 전송될 필요가 있는, 페이지 길이, 커맨드 워드들 등을 포함하는 드라이버 상세 사양을 생성할 수 있다. 예를 들어, 애플리케이션 프로세서(6)와 DSP/SHW(8) 간의 시작 또는 초기 통신 동안, 드라이버 상세 사양은 DSP/SHW(8)로 전송될 수 있거나, 공유 버퍼(40)와 같은 공유 메모리 공간에 직접 저장될 수 있으며, 여기서 DSP/SHW(8)는 상기 공유 버퍼(40)에 액세스할 수 있다. DSP/SHW(8)가 (상기 리스트를 포함하는) 포인터 구조를 획득하는 방법이 유사한 방식으로 수행될 수 있는데, 즉, 포인터 구조는 애플리케이션 프로세서(6)에 의해 DSP/SHW(8)가 공유 메모리 공간에 상기 포인터 구조를 기록할 수 있는 DSP/SHW(8)로 전송될 수 있거나 또는 상기 포인터 구조는 애플리케이션 프로세서(6)에 의해 공유 버퍼(40)와 같은 공유 메모리 공간에 기록될 수 있다.
공유 버퍼(40)는 DSP/SHW(8) 내에 로컬로 위치될 수 있거나, 또는 대안적으로 공유 버퍼(40)는 DSP/SHW(8) 외부에 위치될 수 있다. 페이지 길이가 변하는 경우, DSP/SHW(8)는 업데이트된 드라이버 상세 사양을 필요로 할 것이다. 그러나, 페이지 길이 및 커맨드 워드들이 변하지 않은 채 유지되는 경우, DSP/SHW(8)는 오직 업데이트된 리스트를 요구할 수 있다. 따라서, 포인터 구조는 환경에 따라 리스트, 드라이버 상세 사양, 또는 리스트 및 드라이버 상세 사양을 포함할 수 있다. 통상적으로, 애플리케이션 프로세서(6) 및 DSP/SHW(8)는 서로 통신하기 위한 다양한 "핸드쉐이크" 메커니즘들을 가진다. 포인터 구조가 공유 버퍼(40) 내에 저장되는 경우, 애플리케이션 프로세서(6)는 자신의 전력을 "컬랩스" 시키거나 셧다운시킬 수 있다. 애플리케이션 프로세서(6)가 컬랩스하는 경우, 그것은 이전보다 더 적은 전력을 소모하는 "슬립 모드"로 진입한다. 이 점에서, DSP/SHW(8)는 비트스트림 버퍼(44) 내에서 리트리브되고 위치되어야 하는 "포인터 위치", 예를 들어, 비휘발성 메모리(10) 내의 메모리 위치 각각에서의 바이트 수를 공유 버퍼(40)로부터 판독할 수 있다.
공유 버퍼(40)의 경우에서와 같이, 비트스트림 버퍼(44) 역시 DSP/SHW(8)내에 또는 대안적으로 DSP/SHW(8) 외부에 로컬로 위치될 수 있다. 비휘발성 메모리(10) 내의 데이터가 암호화되는 경우, DSP/SHW(8)는 (DSP/SHW에 대해 로컬인) "크립토 엔진"을 사용하여 비트스트림 버퍼(44) 내의 데이터를 암호해독하거나, 또는 "크립토 엔진 가속기"(46)로 암호화된 데이터를 전송할 수 있다. 대안적인 실시예에서, 크립토 엔진 가속기(46)가 사용되는 경우, 그것은 도 2A에 도시된 예시적인 집적 회로(45)가 아닌 별개의 집적 회로 상에 위치된다. 상기 가속기는 특수화된 종류의 하드웨어인데, 종종 데이터를 더 신속하게 암호해독하여 상기 데이터(여전히 비트스트림임)를 비트스트림 버퍼(44) 내의 지정된 영역으로 전달하는 주문형 집적 회로(ASIC)일 수 있다. DSP/SHW(8)는 이후 비트스트림을 압축해제(또한 디코딩으로서 알려짐)하여 이전과 같은 오디오 파일을 재생할 수 있다. DSP/SHW(8)이 비휘발성 메모리(10)로부터 리트리브, 즉 판독할 때와 압축해제된 비트스트림(PCM 샘플들)이 스피커 밖으로 재생될 때 사이에 작은 시간 지연이 존재한다. 상기 시간 지연이 약 1초이지만 프로세서(애플리케이션 프로세서들 및 DSP/SHW들 모두)의 속도가 증가함에 따라 지연 시간이 추후 감소할 수도 있다는 점이 참작된다.
도 2A에 예시된 바와 같이, DSP/SHW(8)은 MPU(메모리 보호 유닛)(17)이 DSP/SHW(8)으로 하여금 직접 비휘발성 메모리(10)에 액세스하게 하도록 프로그래밍될 수 있으므로 버스 브리지(14) 및 메모리 제어기(16)를 통해 비휘발성 메모리(10)로부터 데이터를 직접 리트리브 할 수 있다. 다른 메모리 제어기의 MPU들은 명료함의 목적으로 도시되지 않는다. 일부 아키텍처들에서, DSP/SHW(8)는 (버스 브리지(14)를 통과하지 않고) 다른 메모리 제어기(16)와 또는 (메모리 제어기(16)를 통과하지 않고) 비휘발성 메모리(10)와 직접 인터페이스할 수 있다. 배터리가 그렇게 빨리 소모되지 않으므로 DSP/SHW(8)에 의한 직접 메모리 액세스는 전력을 절감하며, 궁극적으로는 미디어 디바이스(5)에 대한 재생 시간을 증가시킨다.
미디어 파일의 포인터 구조 및/또는 재생의 생성동안, 비휘발성 메모리(10)로의 액세스는 포인터 구조의 무결성의 손상을 방지하기 위해 DSP/SHW(8) 및 애플리케이션 프로세서(6)가 아닌 미디어 디바이스(미디어 디바이스(5), 미디어 디바이스(7), 미디어 디바이스(52), 미디어 디바이스(53), 또는 임의의 다른 유사한 미디어 디바이스) 내의 모든 다른 컴포넌트들에 대해 블로킹될 수 있다. 애플리케이션 프로세서(6)는 동시적인 태스크들을 위해 임의의 시간에서 플래시 액세스를 리콜할 수 있다. 이것이 발생할 때, 애플리케이션 프로세서(6)는 동시적인 태스크가 완료될 때까지 DSP/SHW(8)로부터 비트스트림 태스크를 인계받을 수 있다. 동시적인 태스크가 완료된 이후, 애플리케이션 프로세서(6)는 DSP/SHW(8)에 비트스트림 태스크의 제어를 리턴할 수 있다.
DSP/SHW(8)는 개방 또는 폐쇄 아키텍처를 가질 수 있다. DSP/SHW 아키텍처가 개방인 경우, 다른 주변들 또는 스레드들은 오디오 파일 데이터에 액세스하고 가능하게는 이를 손상시킬 수 있다. 따라서, DSP/SHW(8)가 비휘발성 메모리(10)로부터 비트스트림을 리트리브할 때 폐쇄 DSP/SHW 아키텍처를 사용하는 것이 바람직할 수 있다. 폐쇄 DSP/SHW 아키텍처를 사용하여, DSP/SHW(8)는 "신뢰"될 수 있다. 따라서, 개방 DSP/SHW 아키텍처를 가지는 경우일 수 있음에 따라, 비휘발성 메모리(10)로부터 리트리브된 오디오 파일 데이터가 다른 스레드들 또는 주변들에 의해 액세스되지 않을 수 있다.
도2B는 메모리로부터 파일들을 리트리브하기 위해 애플리케이션 프로세서가 아닌 다른 프로세서를 사용함으로써 비디오 파일들을 프로세싱하기 위한 기법들을 구현하는 예시적인 미디어 디바이스(7)를 예시하는 블록 다이어그램이다. 예시적인 목적으로, 스피커들, 오디오 구동 회로, ADC 및 다른 유사한 컴포넌트들은 도시되지 않는다. 전술된 도 2A의 기법들 및 대안적인 아키텍처들은 도 2B에 직접 적용가능하다. 비트스트림 버퍼(48)는 DSP/SHW(8)이 픽셀들을 생성하기 위해 압축하는 압축된 비디오 파일 데이터인 비트스트림을 포함한다. 픽셀들은 비디오 코덱(49)의 사용에 의해 프로세싱되며 픽셀들을 픽셀 버퍼(141)에 위치시킨다. 픽셀들은 디스플레이 프로세서(50)에 의해 추가적으로 처리되고 디스플레이로 전송된다. 비디오 코덱(49) 및/또는 픽셀 버퍼(141)는 DSP/SHW(8)의 내부 또는 외부에 위치될 수 있거나, 또는 일부 구성들에서 디스플레이 프로세서(50) 내로 통합될 수 있다.
대안적인 실시예에서, 도 2A 및 도 2B 사이에 예시된 공통 아키텍처 및 도 2A 및 도 2B 사이에 예시된 아키텍처들 간의 차이들은 도 2C에 예시된 미디어 디바이스(130)를 형성한다. 미디어 디바이스(130)는 도 2A의 모든 블록들, 비트스트림 버퍼(48), 픽셀 버퍼(141), 비디오 코덱(49)을 포함한다. 비디오 코덱(49) 및/또는 픽셀 버퍼(141)는 DSP/SHW(8) 내부 또는 외부에 위치될 수 있거나 또는 일부 구성들에서 디스플레이 프로세서(50) 내로 통합될 수 있다. 유사하게, 통합된 오디오 코덱(32)의 컴포넌트들 중 하나 이상은 DSP/SHW(8)의 내부 또는 외부에 위치될 수 있다. 미디어 디바이스(130)에서, DSP/SHW(8)는 비디오 파일 데이터 및 오디오 파일 데이터인 비트스트림들을 압축할 수 있다. 일부 경우들에서, 도 2A의 집적 회로(45)에 예시된 모든 컴포넌트들, 및 집적 회로(47)에 예시된 모든 컴포넌트들은 하나의 집적 회로(51)에 통합될 수 있다.
애플리케이션 프로세서(6)는 또한 비휘발성 메모리(10)에 기록할 수 있다. DSP/SHW(8)가 비휘발성 메모리(10)로부터 데이터를 리트리브한 이후 애플리케이션 프로세서(6)에 의한 비휘발성 메모리(10)로의 기록의 프로세스의 흐름도가 도 3에 예시된다. 상기 기록 이전에, 애플리케이션 프로세서(6)는 이미 리트리브하기 시작했던 메모리의 블록의 리트리빙을 중지하기 위해 DSP/SHW(8)에 표시한다. 블록은 메모리의 한 페이지 또는 포인터 구조의 생성 동안 애플리케이션 프로세서(6)에 의해 지정되는 일부 다른 미리-정의된 사이즈일 수 있다. DSP/SHW(8)가 메모리의 블록의 리트리브를 완료하면, DSP/SHW(8)는 애플리케이션 프로세서(6)에 인덱스 또는 인덱스들의 세트를 리스트 또는 페이지 넘버로 전송함으로써 응답한다. 페이지 넘버는 리트리브된 마지막 페이지 또는 리트리브할 다음 페이지, 또는 임의의 다른 편리한 페이지 넘버일 수 있다. DSP/SHW(8)는 비트스트림을 계속 압축해제하고, 오디오 파일은 압축해제된 비트스트림을 계속 재생한다.
DSP/SHW(8)가 비휘발성 메모리(10)로부터 미디어 데이터의 리트리브를 완료하면, 이후 애플리케이션 프로세서(6)는 상기 비휘발성 메모리(10)에 기록할 수 있다. 상기 기록이 완료되면, 애플리케이션 프로세서(6)는 리스트 및 새로운 포인터 구조를 재생성하는데, 왜냐하면 상기 기록은 미디어 파일 데이터가 셔플링되도록 할 수 있기 때문이며, 즉, 비휘발성 메모리는 프라그먼트화될 수 있기 때문이다. 이후 애플리케이션 프로세서(6)는 DSP/SHW(8)로 새로운 포인터 구조를 전송한다(또는 전술된 바와 같이, 상기 새로운 포인터 구조를 공유 메모리 공간으로 직접 기록한다). DSP/SHW(8)는 새로운 포인터 구조를 사용하고 재생성된 리스트에 기초하여 비휘발성 메모리(10)로부터 리트리브를 시작한다.
DSP/SHW(8)가 "리트리브들의 중지"로 돌아가도록 응답하기 위한 최악의 시간은 판독되는 가장 큰 블록 사이즈가 DSP/SHW(8)에 의해 비휘발성 메모리(10)의 리트리브의 최소 비트레이트로 분할될 때이다. 오디오 파일들의 예시로서, 가장 큰 블록 사이즈는 2.048 킬로바이트(kb)이고, 최소 비트 레이트는 초당 5킬로비트들인 경우, 백 투 백 "리트리브의 중지" 커맨드들에 대한 최악의 경우의 응답 시간은 대략 3.3초이다. 2.048 킬로바이트/128 kbps에서 백-투-백 "리트리브 중지" 커맨드에 대한 통상적인 응답 시간은 대략 128ms이다. "리트리브의 중지" 커맨드에 대한 응답 시간을 개선하기 위해, DSP/SHW(8)은 그것의 비트스트림 버퍼(44) 내에 대략 2kb의 공간을 할당해야 할 수 있다.
때때로 비휘발성 메모리로부터의 "리트리브"는 비휘발성 메모리로부터의 "판독"이라 지칭될 수 있다는 점에 유의해야 한다.
사용자에 의해 선택된 고속 감기 및/또는 되감기 동안, 앞으로(고속 감기) 또는 뒤로(되감기) 점프하기 위한 "스텝 사이즈"는 블록 사이즈보다 더 작을 수 있다. 스텝 사이즈가 블록 사이즈보다 더 작은 이러한 경우, 애플리케이션 프로세서(6)는 상기 스텝 사이즈에 기초하여 (오프셋들 및 길이들을 포함하는) 리스트 및 새로운 포인터 구조를 재생성할 수 있다. 도 1, 도 4A, 도 4B, 도 4C의 아키텍처 또는 다른 아키텍처들은 또다른 리스트 또는 새로운 포인터 구조가 생성되지 않는 경우 사용될 수 있다.
동일한 흐름도는 상이한 프로세서가 비휘발성 메모리(10)로부터 데이터를 리트리브한 이후 애플리케이션 프로세서(6)에 의해 비휘발성 메모리(10)로 기록하는 프로세스를 설명할 수 있다. 주변 프로세서와 같은 상이한 프로세서는 도 4A, 도 4B 또는 도 4C에 예시된 바와 같이, 도 2A, 도 2B, 또는 도 2C에서 DSP/SHW(8) 대신 직접 사용될 수 있다.
재생할 충분한 PCM 샘플들이 존재하지 않거나, 디스플레이할 충분한 픽셀들이 존재하지 않을 기회를 최소화하기 위해, 애플리케이션 프로세서(6)는 DSP/SHW(8)가 비트스트림 버퍼(44)로부터 압축해제할 비트들을 소진하기 전에 비휘발성 메모리(10)로의 기록을 종료할 필요가 있을 수 있다. 오디오 파일들의 예로서, 하나의 오디오 프레임의 백 투 백 기록을 위한 최악의 경우의 시간은 MP3 오디오 파일들에 대해 대략 12ms이다.
도 4A는 도 2A의 대안적인 실시예이다. 전술된 바와 같이, DSP/SHW 또는 주변 프로세서와 같은 또다른 프로세서를 사용하는 것은 미디어 디바이스(52)로 하여금 비트스트림 태스크동안 "저전력 모드"로 스위칭하게 하는데, 즉 미디어 디바이스(52)는 주변 프로세서(54)를 사용하여 버스(55)(또는 또다른 버스 경로)를 통해 오디오 파일 데이터를 리트리브하기 위해 애플리케이션 프로세서(6)의 사용으로부터 스위칭한다. 이는 (이전에 설명된 바와 같이) 포인터 구조를 공유 버퍼(56)와 같은 공유 메모리 공간에 저장되게 함으로써 달성될 수 있다. 주변 프로세서, 예를 들어, 도 4A에 예시된 주변 프로세서(54)가 비휘발성 메모리(10)로부터 오디오 파일 데이터를 리트리브할 수 있지만, DSP/SHW, 예를 들어 도 4A에 예시된 DSP/SHW(9)가 비트스트림을 압축해제하는 것이 바람직할 수 있다. 이는 주변 프로세서(54)가 비트스트림 버퍼(58)에 비트스트림을 저장함으로써 달성될 수 있으며, 따라서, DSP/SHW(9)는 비트스트림을 디코딩할 수 있다. 주변 프로세서(54) 및 DSP/SHW(9) 모두가 애플리케이션 프로세서(6) 및 예시된 다른 컴포넌트들과 함께 단일 집적 회로(59)로 통합되는 것이 바람직할 수 있지만, 일부 실시예들에서, 프로세서들은 별개의 집적 회로들 상에 있을 수 있다.
도 4B는 도 2B의 대안적인 실시예이다. 이러한 대안적인 실시예(도 4A의 비디오 파일 데이터 버전)에서, 다른 프로세서는 또한 DSP/SHW 또는 주변 프로세서일 수 있으며, 비트스트림 태스크동안, 미디어 디바이스(53)으로 하여금 "저전력 모드"로 스위칭하게 할 수 있는데, 즉, 미디어 디바이스(52)는 주변 프로세서(54)를 사용하여 버스(55)(또는 또다른 버스 경로)를 통해 오디오 파일 데이터를 리트리브하기 위해 애플리케이션 프로세서(6)의 사용으로부터 스위칭한다. 이는 (이전에 설명된 바와 같이) 포인터 구조가 공유 버퍼(56)와 같은 공유 메모리 공간에 저장되게 함으로써 달성될 수 있다. 주변 프로세서, 예를 들어, 도 4B에 예시된 주변 프로세서(54)가 비휘발성 메모리(10)로부터 비디오 파일 데이터를 리트리브할 수 있지만, DSP/SHW, 예를 들어, 도 4B에 예시된 DSP/SHW(9)가 비트스트림을 압축해제하는 것이 바람직할 수 있다. 이는 주변 프로세서(54)가 비트스트림을 비트스트림 버퍼(58)에 저장하게 함으로써 달성될 수 있으며, 따라서, DSP/SHW(9)는 비트스트림을 디코딩할 수 있다. 주변 프로세서(54) 및 DSP/SHW(9) 모두가, 애플리케이션 프로세서(6) 및 예시된 다른 컴포넌트들과 함께 단일 집적 회로(60)로 통합되는 것이 바람직하지만, 일부 실시예들에서, 상기 프로세서들은 별개의 집적 회로들일 수 있다.
대안적인 실시예에서, 도 4A 및 도 4B 사이에 예시된 공통 아키텍처 및 도 4A 및 도 4B 사이에 예시된 아키텍처들 간의 차이는 도 4C에 예시된 미디어 디바이스(140)를 형성한다. 미디어 디바이스(140)는 도 4A의 모든 블록들, 비트스트림 버퍼(48), 픽셀 버퍼(141), 및 비디오 코덱(49)을 포함한다. 비디오 코덱(49) 및/또는 픽셀 버퍼(141)는 DSP/SHW(8) 내부에 또는 외부에 위치될 수 있거나, 일부 구성들에서 디스플레이 프로세서(50)로 통합된다. 유사하게, 통합된 오디오 코덱(32)의 컴포넌트들 중 하나 이상은 DSP/SHW(8) 내부에 또는 외부에 위치될 수 있다.
미디어 디바이스(140)에서, DSP/SHW(9)는 비디오 파일 데이터 및 오디오 파일 데이터인 비트스트림들을 압축해제할 수 있다. 일부 경우들에서, 도 4A의 집적 회로(59)에 예시된 모든 컴포넌트들 및 집적 회로(60)에 예시된 모든 컴포넌트들은 하나의 집적 회로(61)에 통합될 수 있다. 미디어 디바이스(140) 내의 비트스트림 버퍼(48)는 오디오 및 비디오 파일 데이터의 비트스트림들을 핸들링하기 위해 둘 이상의 버퍼들로 세그먼트화될 수 있다.
도 4A, 도 4B, 또는 도 4C에 예시된 아키텍처는 DSP/SHW(9)가 신뢰되지 않는 경우, 즉 DSP/SHW가 개방 아키텍처를 가지는 경우 바람직할 수 있다. 주변 프로세서(54)는 신뢰될 수 있으며, 따라서 다른 스레드들 또는 주변 컴포넌트들이 비휘발성 메모리(10)로부터 리트리브된 오디오 파일 데이터를 손상시키는 것을 방지할 수 있다.
도 2A, 2B, 2C, 4A, 4B, 4C에 예시된 아키텍처들 및 그들의 대안적인 실시예들에서, 전력 소모는 미디어 디바이스 내에서 감소될 수 있다. 미디어 디바이스는 애플리케이션 프로세서와 같은 제 1 프로세서를 포함한다. 제 1 프로세서는 직접 또는 간접적으로 (다양한 경로들을 통해, 예를 들어, 버스 브리지, 주변 프로세서, DSP 또는 SHW, 메모리 제어기 또는 임의의 다른 유사 컴포넌트를 통해) 비휘발성 메모리에 커플링될 수 있으며, 이는 제 1 프로세서로 하여금 미디어가 비휘발성 메모리에 미디어 데이터를 어떻게 저장하는지에 대한 포인터 구조를 생성하게 한다. 포인터 구조는 비휘발성 메모리에 저장된 미디어 데이터의 위치 및 사이즈(즉, 어드레스들, 오프셋들 및 길이들)을 포함한다. 제 1 프로세서는 메모리 공간에 직접적으로 또는 간접적으로 (다양한 경로들을 통해, 예를 들어, 버스 브리지, 주변 프로세서, DSP 또는 SHW, 메모리 제어기 또는 임의의 다른 유사 컴포넌트를 통해) 커플링될 수 있으며, 이는 제 1 프로세서로 하여금 메모리 공간에 포인터 구조를 저장, 즉 기록하게 한다. 제 1 프로세서는 상기 포인터 구조를 메모리 공간에 기록한 이후 슬립 모드로 진입할 수 있다. 제 1 프로세서가 슬립 모드로 진입하지 않는 경우, 그것은 정상 모드에서 계속 동작할 수 있다. DSP/SHW 또는 주변 프로세서와 같은 제 2 프로세서 역시 메모리 공간에 직접적으로 또는 간접적으로 (다양한 경로들을 통해, 예를 들어, 버스 브리지, 주변 프로세서, DSP 또는 SHW, 메모리 제어기 또는 임의의 다른 유사 컴포넌트를 통해) 커플링될 수 있으며, 이는 제 2 프로세서로 하여금, 포인터 구조에 기초하여, 비휘발성 메모리로부터 미디어 데이터 블록을 리트리브하게 한다. 미디어 데이터의 블록의 리트리브는 비휘발성 메모리로부터 직접적으로 리트리브될 수 있거나, 또는 일부 경우들에서 리트리브되고 있는 미디어 데이터는 파싱(parse)될 수 있다. 미디어 데이터는 오디오 파일 데이터, 비디오 파일 데이터, 또는 이들 모두일 수 있다. 동시적인 태스크가 존재하는 경우, 제 1 프로세서는 제 2 프로세서가 비휘발성 메모리로부터 미디어 데이터 블록의 리트리브를 완료한 이후 비휘발성 메모리에 기록할 수 있다. 이러한 경우, 포인터 구조는 동시적인 태스크가 종료한 이후 재생성될 수 있다. 고속-감기 또는 되감기 동안, 제 1 프로세서는 리트리브된 미디어 데이터 데이터 블록보다 더 작은 스텝 사이즈에 기초하여 새로운 포인터 구조를 재생성할 수 있다.
도 5는 PMIC(64)를 구동하는 배터리(62)를 예시한다. PMIC(64)는 상이한 타입들의 컴포넌트들을 구동시키기 위해 그것 내에 다양한 전력 모듈들을 가질 수 있다. 예를 들어, MSMC1(65)은 코어 컴포넌트들, 예를 들어, 모뎀, 다양한 버스 브리지들 및 DSP/SHW를 구동시킨다. MSMC2(66)은 애플리케이션 프로세서(6)를 구동시킨다. MSMSA(67)은 아날로그 코덱을 구동하며, MSME(68)은 다양한 메모리들을 구동시킨다. 이들 메모리 전력 모듈들 각각은 전류를 소모하며, 소모된 전체 전류는 몇시간 동안 배터리가 유지될 것인지, 따라서 재생 중 몇시간 동안 미디어 디바이스(5), 미디어 디바이스(7), 미디어 디바이스(130), 미디어 디바이스(52), 미디어 디바이스(53), 미디어 디바이스(140), 또는 이들 미디어 디바이스들의 임의의 다른 대안적인 실시예들에 영향을 미친다.
배터리들은 상이한 레이팅(rating)들을 가진다. 도 6A에는 80OmA-Hr 레이팅을 가지는 배터리에 대한 지수 감소 커브가 예시된다. 그래프에 도시된 바와 같이, 전류는 낮으며, 배터리 수명은 높다(5mA에서 전체 배터리 수명(재생 시간들)은 대략 160 시간이다).
도 6B는 도 1 및 도 2A(또는 도 4A)에 설명된 기법들에 의해 사용될 수 있는 (시간 상의) 배터리 수명의 양을 예시하는 예시적인 그래프이다. 예를 들어, 도 1의 미디어 디바이스는 15mA의 전류를 소모할 수 있으며, 대략 50시간의 재생 시간(또는 소모되는 배터리 수명) 동안 재생할 수 있다. 그러나, 도 2A의 미디어 디바이스(5)에 대해, 10mA의 전류가 소모될 수 있으며, 따라서, 대략 80 시간의 재생 시간이 가능할 수 있다. 따라서, 공유 메모리 버퍼(40)에서의 포인터 구조를 가지는 DSP/SHW(8)을 사용하는 것은 미디어 디바이스(5)에 대해 더 적은 전력 소모를 초래할 수 있으며, 따라서, 오디오 파일(들)을 청취하기 위한 더 많은 재생 시간을 초래할 수 있다. 유사한 저전력 소모는 도 4A에 예시된 미디어 디바이스(52)를 사용하여 달성될 수 있다. 배터리 기술이 발전함에 따라, 배터리들이 더 효율적으로 될 수 있으므로, 50시간 및 80 시간의 재생 시간들은 증가할 수 있다는 점을 알 수 있다. 예시적인 그래프른 도 2A, 도 2B, 도 2C, 도 4A, 도 4B 및 도 4C에 예시된 아키텍처들, 또는 이들 아키텍처들의 임의의 대안적인 실시예들의 사용에 의해, 미디어 디바이스는 더 긴 오디오 파일의 재생 시간 또는 더 긴 비디오 파일의 재생이 가능할 수 있다는 점을 예시하기 위해 사용된다. 저전력 모드 동안, 미디어 디바이스들은 애플리케이션 프로세서의 사용으로부터 또다른 프로세서, 예를 들어, DSP/SHW 또는 주변 프로세서의 사용으로 스위칭한다.
도 7 및 8은 메모리로부터 파일들을 리트리브하기 위해 (애플리케이션 프로세서(6)가 아닌) 다른 프로세서를 사용함으로써 미디어 파일들을 프로세싱하기 위한 예시적인 기법을 예시하는 플로우차트들이다. 도 8은 도 7의 더 상세한 예시이다. 우선, 다른 프로세서 상의코드의 초기화 및 인증(74)이 존재할 수 있다. 이는 코드 및/또는 테이블들(104)을 로딩하는 애플리케이션 프로세서(6)를 포함하며, 필요한 경우 상기 애플리케이션 프로세서(6)는 상기 코드(106), 예를 들어, 펌웨어를 인증할 수 있다. 이후, 미디어 파일(78)을 재생하기 위한 사용자에 의한 상호작용이 존재한다. 이는 사용자 인터페이스 디스플레이(10)를 보고 미디어 파일(108)을 위치시키기 위해 소프트웨어 메뉴를 스크롤링하는 사용자를 포함할 수 있다. 미디어 파일이 발견된 후, 사용자는 터치-스크린, 키패드를 누름, 음성 인식, 또는 재생하기 위한 미디어 파일을 선택하기 위한 임의의 다른 방법에 의해 미디어 파일(110)의 재생을 선택할 수 있다. 사용자에 의한 이러한 동작은 포인터 구조(114)를 생성하기 위해 애플리케이션 프로세서(6)를 초기화시킬 수 있다. 포인터 구조(116)를 공유 메모리 버퍼로 기록한 이후, 애플리케이션 프로세서(6)는 이제 자신의 전력(82)을 셧다운시킬 수 있다. 이는 전류를 사용하는 것으로부터 배터리를 절감하며, 도 2A, 도 2B, 도 2C, 도 4A, 도 4B 및도 4C에 각각 예시되는 미디어 디바이스들(5, 7, 130, 52, 53, 및 140) 또는 이들 미디어 디바이스들의 임의의 대안적인 실시예의 재생 시간을 증가시킬 수 있다. 비휘발성 메모리로부터 리트리브할 수 있는 또다른 프로세서를 가지는 실시예들에서, 다른 프로세서는 공유 메모리 버퍼에서 포인터 구조(86)를 사용함으로써 비트스트림 버퍼를 채운다.
다른 프로세서는 비트스트림 버퍼를 선택적으로 모니터링할 수 있다. 비트스트림 버퍼가 엔트리들 상에서 낮게 실행중이 아닌 경우, 비트스트림이 암호화된다면, 다른 프로세서는 데이터를 크립토 엔진 또는 크립토 엔진 가속기로 전송함으로써 상기 비트스트림을 암호해독할 수 있다. 비트스트림 버퍼가 낮은 경우( 90의 아니오 브랜치) 다른 프로세서는 포인터 구조를 사용함으로써 데이터(즉, 비트스트림)로 상기 비트스트림 버퍼를 채운다. 비트스트림이 암호해독된 이후(또는 그것이 암호화되지 않는 경우에 있어서), 비트스트림은 여전히 압축되어 있다. 다른 프로세서는 상기 비트스트림을 디코딩(즉, 압축해제)한다. 비트스트림이 오디오 파일 데이터인 경우, PCM 샘플들이 생성되어 PCM 버퍼 내에 위치된다. 오디오 코덱은 PCM 버퍼를 판독하며, 상기 PCM 샘플들은 스피커들 밖으로 재생되는 아날로그 파형으로 변환된다. 비트스트림이 비디오 파일인 경우, 데이터 픽셀들이 생성되어 픽셀 버퍼 내에 위치된다. 디스플레이 프로세서는 픽셀들을 프로세싱하여 이들이 디스플레이되도록 전송할 수 있다. 도 4A, 도 4B, 또는 도 4C에서, DSP/SHW는 바람직하게는 비트스트림을 디코딩하지만, 대안적인 실시예들에서, 주변 프로세서는 이 기능을 수행할 수 있다.
여기서 설명된 기법들의 하나 이상의 양상들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 결합으로 구현될 수 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 기능들은 집적 로직 디바이스 내에서 함께 또는 이산적이지만 상호동작 가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기법들 중 하나 이상의 양상들은, 실행시 전술된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터-판독가능한 매체에 의해 적어도 부분적으로 구현될 수 있다. 컴퓨터-판독가능한 저장 매체는 패키지물들을 포함할 수 있는 컴퓨터-프로그램 물건의 일부를 형성할 수 있다. 컴퓨터-판독가능한 매체는 랜덤 액세스 메모리(RAM), 예를 들어, 동기식 동적 랜덤 액세스 메모리(SDRAM), 판독 전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적 소거가능한 프로그램 가능 판독 전용 메모리(EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수 있다. 상기 기법들은 추가적으로 또는 대안적으로 명령들 또는 데이터 구조들의 형태로 코드를 전송 또는 전달하고 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터-판독가능한 통신 매체에 의해 적어도 부분적으로 구현될 수 있다.
상기 명령들은 하나 이상의 프로세서들, 예를 들어, 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드 프로그램가능 로직 어레이(FPGA)들, 또는 다른 등가적인 집적 또는 이산 로직 회로에 의해 실행될 수 있다. 따라서, 여기서 사용되는 바와 같은 용어 "프로세서"는 전술된 구조 또는 여기서 설명되는 기법들의 구현을 위해 적절한 임의의 다른 구조를 지칭할 수 있다. 추가적으로, 일부 양상들에서, 여기서 설명되는 기능성은 본 발명의 기법들을 수행하도록 적응되거나 구성되는 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공될 수 있다.
여기서 설명되는 구성들은 하드-와이어 회로로서, 주문형 집적 회로로 제조된 회로 구성으로서, 또는 비휘발성 저장소로 로딩되는 펌웨어 프로그램 또는 기계-판독가능한 코드로서 컴퓨터-판독가능한 매체로부터 또는 컴퓨터-판독가능한 매체로 로딩되는 소프트웨어 프로그램으로서 부분적으로 또는 전체적으로 구현될 수 있으며, 상기 코드는 마이크로프로세서 또는 다른 디지털 신호 프로세싱 유닛과 같은 로직 엘리먼트들의 어레이에 의해 실행가능한 명령들이다. 컴퓨터-판독가능한 매체는 (제한 없이 동적 또는 정적 RAM(랜덤 액세스 메로리), ROM(판독 전용 메모리), 및/또는 플래시 RAM을 포함할 수 있는)반도체 메모리, 또는 강전성, 자기저항성, 오보닉, 폴리머, 또는 상변화 메모리와 같은 저장 엘리먼트들의 어레이; 자기 또는 광학 디스크와 같은 디스크 매체; 또는 데이터 저장을 위한 임의의 다른 컴퓨터-판독가능 매체일 수 있다. 용어 "소프트웨어"는 소스 코드, 어셈블리어 코드, 기계 코드, 바이너리 코드, 펌웨어, 매크로코드, 마이크로코드, 로직 엘리먼트들의 어레이에 의해 실행가능한 명령들의 하나 이상의 세트들 또는 시퀀스들, 및 상기 예들의 임의의 조합을 포함하는 것으로 이해되어야 한다.
하드웨어로 구현되는 경우, 본 발명의 하나 이상의 양상들은 회로, 예를 들어, 집적 회로, 칩셋, ASIC, FPGA, 로직, 또는 여기서 설명되는 기법들 중 하나 이상을 수행하도록 구성 또는 적응되는 이들의 다양한 조합들에 관련할 수 있다. 상기 회로는, 여기서 설명되는 바와 같이, 집적 회로 또는 칩셋 내의 하나 이상의 하드웨어 유닛들 및 프로세서 모두를 포함할 수 있다.
당업자는 회로가 전술된 기능들 중 일부 또는 모두를 구현할 수 있다는 점을 이해할 것임에 유의해야 한다. 상기 기능들 모두를 수행하는 하나의 회로가 존재할 수 있거나, 또는 상기 기능들을 수행하는 회로의 다수의 섹션들이 존재할 수 있다. 많은 미디어 디바이스에서 사용되는 현재의 모바일 플랫폼 기술들을 통해, 집적 회로는 적어도 하나의 DSP, DSP 또는 DSP들을 제어 및/또는 이들에 전달하기 위한 적어도 하나의 RISC(Advanced Reduced Instruction Set Computer) 머신(Machine)(ARM) 프로세서를 포함할 수 있다. 또한, 회로는 몇몇 섹션들에서 설계되거나 구현될 수 있으며, 일부 경우들에서, 섹션들은 본 발명에서 설명되는 상이한 기능들을 수행하기 위해 재사용될 수 있다.
다양한 양상들 및 예들이 설명되었다. 그러나, 후속하는 청구항들의 범위에서 벗어남이 없이 본 발명의 구조 또는 기법들에 대한 수정들이 이루어질 수 있다. 예를 들어, 다른 타입들의 디바이스들 역시 여기서 설명되는 프로세싱 기법들을 구현할 수 있다. 이들 및 다른 예들은 후속하는 청구항들의 범위 내에 있다. 여기서 개시되는 방법들 각각 역시 로직 엘리먼트들을 포함하는 머신(예를 들어, 프로세서, 마이크로프로세서, 마이크로제어기, 또는 다른 유한 상태 머신)에 의해 판독가능한 및/또는 실행가능한 명령들의 하나 이상의 세트들로서 (예를 들어, 위에서 열거된 바와 같은 하나 이상의 컴퓨터-판독가능한 매체에서) 실제로 구현될 수 있다. 따라서, 본 발명은 위에서 도시된 구성들 및 아키텍처들로 제한되는 것으로 의도되는 것이 아니라, 원발명의 일부분을 형성하는 첨부되는 청구항에 포함하여, 여기서 임의의 방식으로 개시된 원리들 및 신규한 특징들에 부합하는 가장 넓은 범위에 따라야 한다.
다른 실시예들 및 수정들은 이들 교지들의 측면에서 당업자에게 용이하게 발생할 것이다. 따라서, 후속하는 청구항들은 상기 명세서 및 첨부 도면들과 관련하여 보여질 때 모든 이러한 실시예들 및 수정들을 커버하도록 의도된다.

Claims (42)

  1. 미디어 디바이스에서 전력을 감소시키는 방법으로서,
    제 1 프로세서에 의해 비휘발성 메모리에 저장된 미디어 데이터의 포인터 구조를 생성하는 단계;
    상기 제 1 프로세서에 의해 상기 포인터 구조를 제 2 프로세서에 의해 액세스가능한 메모리 공간으로 기록하는 단계;
    상기 제 2 프로세서에 의해 상기 메모리 공간으로부터 상기 포인터 구조를 판독하는 단계; 및
    상기 제 2 프로세서에 의해 상기 포인터 구조에 기초하여 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브(retrieve)하는 단계를 포함하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  2. 제1항에 있어서,
    상기 제 1 프로세서는 애플리케이션 프로세서인,
    미디어 디바이스에서 전력을 감소시키는 방법.
  3. 제1항에 있어서,
    상기 제 2 프로세서는 디지털 신호 프로세서인,
    미디어 디바이스에서 전력을 감소시키는 방법.
  4. 제1항에 있어서,
    상기 제 2 프로세서는 주변(peripheral) 프로세서인,
    미디어 디바이스에서 전력을 감소시키는 방법.
  5. 제1항에 있어서,
    상기 제 1 프로세서는 상기 포인터 구조를 상기 메모리 공간에 기록한 이후 슬립(sleep) 모드에 진입하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  6. 제1항에 있어서,
    상기 미디어 데이터는 오디오 파일 데이터인,
    미디어 디바이스에서 전력을 감소시키는 방법.
  7. 제1항에 있어서,
    상기 미디어 데이터는 비디오 파일 데이터인,
    미디어 디바이스에서 전력을 감소시키는 방법.
  8. 제1항에 있어서,
    상기 제 2 프로세서에 의해 리트리브된 상기 미디어 데이터의 블록의 적어도 일부분은 비트스트림 버퍼에 기록되는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  9. 제8항에 있어서,
    상기 제 2 프로세서는 상기 비트스트림 버퍼가 로우(low)인지의 여부를 모니터링하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  10. 제8항에 있어서,
    상기 제 2 프로세서는 상기 리트리브된 상기 미디어 데이터의 적어도 일부분을 암호해독하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  11. 제8항에 있어서,
    상기 제 2 프로세서는 상기 리트리브된 상기 미디어 데이터의 적어도 일부분을 크립토(crypto) 엔진 가속기로 전송하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  12. 제1항에 있어서,
    상기 제 1 프로세서는, 동시적인 태스크가 존재하는 경우, 상기 제 2 프로세서가 상기 비휘발성 메모리로부터의 상기 미디어 데이터의 블록의 리트리브를 종료한 이후 상기 비휘발성 메모리로 기록하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  13. 제12항에 있어서,
    상기 동시적인 태스크가 종료한 이후 포인터 구조가 재생성되는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  14. 제1항에 있어서,
    상기 제 1 프로세서에 의해 상기 포인터 구조를 생성하는 단계는 상기 미디어 디바이스의 사용자로부터의 오디오 파일 또는 비디오 파일의 선택에 의해 개시되는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  15. 제1항에 있어서,
    고속-감기(forward) 또는 되감기(rewind) 동안, 상기 제 1 프로세서는 상기 리트리브된 미디어 데이터의 블록보다 더 작은 스텝 사이즈에 기초하여 새로운 포인터 구조를 재생성하는,
    미디어 디바이스에서 전력을 감소시키는 방법.
  16. 미디어 디바이스로서,
    저장된 미디어 데이터를 가지는 비휘발성 메모리;
    상기 비휘발성 메모리에 커플링되고, 상기 비휘발성 메모리에 저장된 상기 미디어 데이터의 위치 및 사이즈를 포함하는 포인터 구조를 생성하도록 구성되는 제 1 프로세서;
    상기 애플리케이션 프로세서에 의해 기록된 상기 포인터 구조를 저장하기 위한 메모리 공간; 및
    상기 메모리 공간으로부터 상기 포인터 구조를 판독하도록 구성되고, 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브하도록 구성되는 제 2 프로세서를 포함하는,
    미디어 디바이스.
  17. 제16항에 있어서,
    상기 제 1 프로세서는 애플리케이션 프로세서인,
    미디어 디바이스.
  18. 제16항에 있어서,
    상기 제 2 프로세서는 디지털 신호 프로세서인,
    미디어 디바이스.
  19. 제16항에 있어서,
    상기 제 2 프로세서는 주변 프로세서인,
    미디어 디바이스.
  20. 제16항에 있어서,
    상기 제 1 프로세서는 상기 포인터 구조를 상기 메모리 공간에 기록한 이후 슬립 모드에 진입하는,
    미디어 디바이스.
  21. 제16항에 있어서,
    상기 미디어 데이터는 오디오 파일 데이터인,
    미디어 디바이스.
  22. 제16항에 있어서,
    상기 미디어 데이터는 비디오 파일 데이터인,
    미디어 디바이스.
  23. 제16항에 있어서,
    상기 제 2 프로세서에 의해 리트리브된 상기 미디어 데이터의 블록의 적어도 일부분은 비트스트림 버퍼에 기록되는,
    미디어 디바이스.
  24. 제16항에 있어서,
    상기 제 1 프로세서는, 동시적인 태스크가 존재하는 경우, 상기 제 2 프로세서가 상기 비휘발성 메모리로부터의 상기 미디어 데이터의 블록의 리트리브를 종료한 이후 상기 비휘발성 메모리로 기록하는,
    미디어 디바이스.
  25. 제24항에 있어서,
    상기 동시적인 태스크가 종료한 이후 포인터 구조가 재생성되는,
    미디어 디바이스.
  26. 제16항에 있어서,
    고속-감기 또는 되감기 동안, 상기 애플리케이션 프로세서는 상기 리트리브된 미디어 데이터의 블록보다 더 작은 스텝 사이즈에 기초하여 새로운 포인터 구조를 재생성하는,
    미디어 디바이스.
  27. 미디어 디바이스로서,
    애플리케이션 프로세서에 의해 비휘발성 메모리에 저장된 미디어 데이터의 포인터 구조를 생성하기 위한 수단;
    상기 애플리케이션 프로세서에 의해 상기 포인터 구조를 상이한 프로세서에 의해 액세스가능한 메모리 공간으로 기록하기 위한 수단;
    상기 상이한 프로세서에 의해 상기 메모리 공간으로부터 상기 포인터 구조를 판독하기 위한 수단; 및
    상기 상이한 프로세서에 의해, 상기 포인터 구조에 기초하여 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브하기 위한 수단을 포함하는,
    미디어 디바이스.
  28. 제27항에 있어서,
    상기 상이한 프로세서는 디지털 프로세서 또는 주변 프로세서인,
    미디어 디바이스.
  29. 제27항에 있어서,
    상기 애플리케이션 프로세서는 상기 포인터 구조를 상기 메모리 공간에 기록하기 위한 수단이 구현된 후 슬립 모드에 진입하는,
    미디어 디바이스.
  30. 제27항에 있어서,
    상기 미디어 데이터는 오디오 파일 데이터인,
    미디어 디바이스.
  31. 제27항에 있어서,
    상기 미디어 데이터는 비디오 파일 데이터인,
    미디어 디바이스.
  32. 제27항에 있어서,
    상기 제 2 프로세서에 의해 리트리브된 상기 미디어 데이터의 적어도 일부분은 비트스트림 버퍼에 기록되는,
    미디어 디바이스.
  33. 제27항에 있어서,
    디지털 신호 프로세서는 상기 리트리브된 상기 미디어 데이터의 블록의 적어도 일부분을 암호해독하는,
    미디어 디바이스.
  34. 제27항에 있어서,
    상기 제 2 프로세서는 상기 리트리브된 상기 미디어 데이터의 블록의 적어도 일부분을 상기 크립토 엔진 가속기로 전송하는,
    미디어 디바이스.
  35. 제27항에 있어서,
    고속-감기 또는 되감기 동안, 상기 제 1 프로세서는 상기 리트리브된 미디어 데이터의 블록보다 더 작은 스텝 사이즈에 기초하여 새로운 포인터 구조를 재생성하는,
    미디어 디바이스.
  36. 하나 이상의 프로세서들에 의해 실행가능한 명령들의 세트를 포함하는 컴퓨터-판독가능한 매체로서,
    제 1 프로세서에 의해 비휘발성 메모리에 저장된 미디어 데이터의 포인터 구조를 생성하기 위한 코드;
    상기 제 1 프로세서에 의해 상기 포인터 구조를 제 2 프로세서에 의해 액세스가능한 메모리 공간으로 기록하기 위한 코드;
    상기 제 2 프로세서에 의해 상기 메모리 공간으로부터 상기 포인터 구조를 판독하기 위한 코드; 및
    상기 제 2 프로세서에 의해 상기 포인터 구조에 기초하여 상기 비휘발성 메모리로부터 상기 미디어 데이터의 블록을 리트리브하기 위한 코드를 포함하는,
    컴퓨터-판독가능한 매체.
  37. 제36항에 있어서,
    상기 제 1 프로세서는 애플리케이션 프로세서인,
    컴퓨터-판독가능한 매체.
  38. 제36항에 있어서,
    상기 제 2 프로세서는 디지털 신호 프로세서인,
    컴퓨터-판독가능한 매체.
  39. 제36항에 있어서,
    상기 제 2 프로세서는 주변 프로세서인,
    컴퓨터-판독가능한 매체.
  40. 제36항에 있어서,
    상기 제 1 프로세서는 상기 포인터 구조의 상기 메모리 공간으로의 기록 이후 슬립 모드에 진입하는,
    컴퓨터-판독가능한 매체.
  41. 제37항에 있어서,
    상기 미디어 데이터는 오디오 파일 데이터인,
    컴퓨터-판독가능한 매체.
  42. 제37항에 있어서,
    상기 미디어 데이터는 비디오 파일 데이터인,
    컴퓨터-판독가능한 매체.
KR1020107023280A 2008-03-18 2009-03-18 비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들 KR101229522B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US3745008P 2008-03-18 2008-03-18
US61/037,450 2008-03-18
US12/405,064 US8103891B2 (en) 2008-03-18 2009-03-16 Efficient low power retrieval techniques of media data from non-volatile memory
US12/405,064 2009-03-16
PCT/US2009/037515 WO2009117488A1 (en) 2008-03-18 2009-03-18 Efficient low power retrieval techniques of media data from non-volatile memory

Publications (2)

Publication Number Publication Date
KR20100135825A true KR20100135825A (ko) 2010-12-27
KR101229522B1 KR101229522B1 (ko) 2013-02-04

Family

ID=41090050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107023280A KR101229522B1 (ko) 2008-03-18 2009-03-18 비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들

Country Status (7)

Country Link
US (1) US8103891B2 (ko)
EP (1) EP2255266A1 (ko)
JP (1) JP5734835B2 (ko)
KR (1) KR101229522B1 (ko)
CN (1) CN101910976B (ko)
TW (1) TW200949551A (ko)
WO (1) WO2009117488A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101596222B1 (ko) * 2009-08-25 2016-02-23 삼성전자주식회사 영상 재생 장치의 부팅을 제어하는 방법 및 그 장치
TWI488107B (zh) * 2009-12-09 2015-06-11 Silicon Motion Inc 用來增進快退效能之方法以及相關的電子裝置
KR101279507B1 (ko) * 2009-12-15 2013-06-28 한국전자통신연구원 병렬 처리 기반 파이프라인 복호화 장치 및 방법
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
TWI587125B (zh) * 2010-08-04 2017-06-11 華碩電腦股份有限公司 具省電功能的電腦系統
TWI454981B (zh) * 2011-06-22 2014-10-01 Tu Yen Hung Output sensor array of sensor data
US20150113594A1 (en) * 2013-10-18 2015-04-23 Vixs Systems, Inc. Processing system with virtual clients and methods for use therewith
US20150160707A1 (en) * 2013-12-06 2015-06-11 Htc Corporation Portable electronic device
KR102400104B1 (ko) * 2015-10-28 2022-05-19 삼성전자주식회사 이미지 처리 장치 및 이미지 처리 방법
CN105550640B (zh) * 2015-12-07 2019-07-26 联想(北京)有限公司 一种信息处理方法及电子设备
CN112214444A (zh) * 2020-09-24 2021-01-12 深圳云天励飞技术股份有限公司 一种核间通信方法、arm、dsp及终端

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191899A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd ファイル転送方法、データアクセス方法およびデータ書き込み方法
DE4402901A1 (de) * 1994-02-02 1995-08-03 Sel Alcatel Ag Vorrichtung und Verfahren zur Speicherung und Wiedergabe von digitalen Daten
US5748983A (en) 1995-06-07 1998-05-05 Advanced Micro Devices, Inc. Computer system having a dedicated multimedia engine and multimedia memory having arbitration logic which grants main memory access to either the CPU or multimedia engine
US5892966A (en) 1997-06-27 1999-04-06 Sun Microsystems, Inc. Processor complex for executing multimedia functions
US6226237B1 (en) 1998-03-26 2001-05-01 O2 Micro International Ltd. Low power CD-ROM player for portable computer
US20020087225A1 (en) 2001-01-03 2002-07-04 Howard Gary M. Portable computing device having a low power media player
US20060093320A1 (en) * 2004-10-29 2006-05-04 Hallberg Bryan S Operation modes for a personal video recorder using dynamically generated time stamps
KR100749469B1 (ko) * 2005-09-15 2007-08-14 엠텍비젼 주식회사 복수의 메모리를 포함한 멀티미디어 플랫폼을 구비한 장치및 비휘발성 메모리 공유 방법
US7496770B2 (en) 2005-09-30 2009-02-24 Broadcom Corporation Power-efficient technique for invoking a co-processor
US7814304B2 (en) * 2007-03-14 2010-10-12 Apple Inc. Switching drivers between processors

Also Published As

Publication number Publication date
TW200949551A (en) 2009-12-01
CN101910976A (zh) 2010-12-08
KR101229522B1 (ko) 2013-02-04
WO2009117488A1 (en) 2009-09-24
JP2011515957A (ja) 2011-05-19
CN101910976B (zh) 2013-06-19
US20090240967A1 (en) 2009-09-24
US8103891B2 (en) 2012-01-24
JP5734835B2 (ja) 2015-06-17
EP2255266A1 (en) 2010-12-01

Similar Documents

Publication Publication Date Title
KR101229522B1 (ko) 비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들
JP4219680B2 (ja) 不揮発性メモリカード、コンパクトディスクまたはその他のメディアから記録済みのオーディオ、ビデオまたはその他のコンテンツを再生するためのシステム、方法およびデバイス
JP2017153117A (ja) 暗号化トランスポート・ソリッドステート・ディスク・コントローラ
US20040039575A1 (en) Host processing device using external storage medium
JP2006525598A (ja) 携帯電子機器のためのコントローラ
US20120246352A1 (en) Data processing systems for audio signals and methods of operating same
JP2003044361A (ja) データ保存再生システム、データ保存装置、データ再生装置、データ保存再生方法、プログラム、および媒体
JP2001202094A (ja) 再生装置、再生方法及び再生システム
US6430530B1 (en) Apparatus for automatically processing both encoded and unencoded data
JP3882460B2 (ja) メモリ装置、データ処理装置、データ処理システムおよびデータ処理方法
JP4655545B2 (ja) メモリーカード及び再生装置
JP2004310058A (ja) メディア処理装置
JP2006209689A (ja) データ処理回路
KR20120077504A (ko) 멀티미디어 콘텐츠 처리 방법 및 시스템
KR100458089B1 (ko) 휴대형 멀티미디어 재생기에서 파일 버퍼링 방법
EP1585127A2 (en) System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks, or other media
JP2007141333A (ja) オーディオファイル処理装置及びオーディオファイル処理方法
WO2001082288A1 (fr) Dispositif de reproduction musicale
JP2006079291A (ja) メモリーカード及び再生装置
JP2004265537A (ja) 記録装置、記録方法、プログラムおよび記録媒体
JP2003123044A (ja) アクセス制御方法及び電子機器
JP2006332941A (ja) ブロック暗復号回路

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee