KR20130142119A - 정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법 - Google Patents

정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법 Download PDF

Info

Publication number
KR20130142119A
KR20130142119A KR1020137010898A KR20137010898A KR20130142119A KR 20130142119 A KR20130142119 A KR 20130142119A KR 1020137010898 A KR1020137010898 A KR 1020137010898A KR 20137010898 A KR20137010898 A KR 20137010898A KR 20130142119 A KR20130142119 A KR 20130142119A
Authority
KR
South Korea
Prior art keywords
information
received information
primary
memory
application code
Prior art date
Application number
KR1020137010898A
Other languages
English (en)
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 KR20130142119A publication Critical patent/KR20130142119A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

셋-톱 박스(10)는 애플리케이션 코드 이미지들을 저장하기 위한 비-휘발성 메모리(28)를 포함한다. 메모리가 그와 관련된 지정된 저장 영역(202, 204)보다 큰 애플리케이션 코드 이미지를 저장하는 것을 가능하게 하기 위해, 애플리케이션 코드 이미지는 1차 부분 및 2차 부분으로 분리된다. 수신된 정보의 1차 부분은 지정된 저장 영역에 저장되는 반면, 수신된 정보의 2차 부분을 저장하기 위한 별도의 저장 영역(216, 218)을 만들기 위해 메모리는 재할당된다.

Description

정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법{METHOD FOR NON-VOLATILE MEMORY REALLOCATION FOR INFORMATION STORAGE}
본 출원은 2010년 10월 28일에 출원된 미국 가특허 출원번호 제61/407,659호를 35 U.S.C. 119(e)에 근거하여 우선권으로 주장하며, 상기 가특허 출원의 내용은 본 출원에 통합된다.
본 발명은 전자 디바이스, 특히, 이로 한정되는 것은 아니지만, 셋-톱 박스와 같은 수신기 내에 있는 비-휘발성 메모리를 재할당하기 위한 기술에 관한 것이다.
이로 한정되는 것은 아니지만, 텔레비전 세트 및 셋-톱 박스와 같은 다양한 콘텐츠-수신 전자 디바이스들("수신기들")은 종종 그의 정상 동작을 위해 수신기에 의해 사용된 코드 및 데이터의 조합을 저장하는 플래시 칩 또는 비-휘발성 저장 메커니즘을 포함한다. 코드 부분은 일반적으로 제어 명령어들 등을 제공하는 하나 이상의 애플리케이션 코드 이미지들 및 부트 로더(boot loader)를 포함한다. 데이터 부분은 수신기에 의해 사용된 파라미터들 및 다른 구성 정보를 포함한다.
리던던시를 위해 수신기에는 다수의 애플리케이션 코드 이미지들이 존재할 수 있다. 하나의 애플리케이션 코드 이미지가 손상되는 경우, 수신기는 대안적인 애플리케이션 코드 이미지를 실행할 것이다. "활성 이미지(active image)"라는 용어는 현재 실행중인 애플리케이션 코드 이미지를 지칭한다. 때때로, 콘텐츠 서비스 제공자는 비-활성 애플리케이션 코드 이미지들을 다양한 잘 알려진 메커니즘들(오픈 케이블 커먼 다운로드(Open Cable Common Download), USB 메모리 스틱 등)로 교체할 수 있다. 애플리케이션 코드 이미지들은 수신기 설계 동안 결정된 비-휘발성 메모리 할당에 근거한 최대 크기를 갖는다.
전부는 아니지만 일부 수신기에서, 부트 로더는 애플리케이션 코드 이미지들에 고정된 포인터들을 포함한다. 부트 로더는 하나 이상의 부트 로더 구성 파라미터에 기초하여 로드할 애플리케이션 코드 이미지를 선택한다. 전부는 아니지만 일부 수신기에서, 부트 로더는 최소한의 기능성을 갖는다. 이와 관련하여, 부트 로더는 단순히 메모리에 현재 활성 애플리케이션을 로드하는 역할을 한다. 비-활성 코드 이미지를 교체하기 위한 기능성은 현재 활성 코드 이미지에 있다.
고객 요구에 응답하여, 수신기 제조자는 종종 메모리에서 사용가능한 할당 공간을 초과하는 애플리케이션 코드 이미지를 요구하는 수신기에 특징들을 추가한다. 비-휘발성 저장 메커니즘에서 상이한 애플리케이션 코드 이미지 위치들을 포인팅하기 위해 부트 로더를 교체하는 것은 종종 실용적이지 않거나 심지어 바람직하지도 않다. 또한, 애플리케이션 코드 이미지 교체 동안 모든 코드 이미지의 소거는 결코 발생되어서는 안된다. 모든 코드 이미지(또는 부트 로더)의 소거 동안 정전(power failure)이 발생하는 경우, 수신기는 비-기능적이 될 수 있다.
간단히, 본 원리들에 대한 바람직한 실시예에 따르면, 수신된 정보를 메모리에 저장하기 위한 방법은 진입 정보를 제1 및 제2 부분으로 분리하는 것으로 시작된다. 그 다음, 진입 정보의 제1 부분은 메모리에서 지정된 저장 위치에 저장되는 반면, 진입 정보의 제2 부분을 저장하기 위한 제2 정보 부분 저장 위치를 구축하기 위해 메모리의 재할당이 발생한다.
도 1은 본 원리의 정보 저장 기술을 실행하기 위한 콘텐츠 수신 디바이스의 블록 개략도를 도시한다.
도 2는 재할당 이전에 콘텐츠 수신 디바이스 내에 있는 비-휘발성 저장 요소의 블록도를 도시한다.
도 3은, 본 원리에 따른 재할당이 발생한, 도 2의 비-휘발성 저장 요소의 블록도를 도시한다.
도 1은 본 원리의 메모리 할당 기술을 실행할 수 있는 콘텐츠 수신 디바이스에 대한 하나의 예를 구성하는 셋-톱 박스(10)의 블록 개략도를 도시한다. 셋-톱(10)은, 케이블 텔레비전, 위성 텔레비전, 또는 전기통신 서비스 제공자(도시되지 않음)와 같은, 콘텐츠 제공자에 의해 제공된 멀티-채널 콘텐츠 스트림(14)의 특정한 채널을 튜닝하기 위한 입력 신호 수신기(12)를 포함한다. 제어기(18)의 제어 하에, 입력 신호 프로세서(16)는 입력 신호 수신기(12)에 의해 튜닝된 채널 스트림을 처리한다. 입력 신호 프로세서(16)에 의해 수행되는 처리는 튜닝된 채널 스트림의 본질에 따라 다를 것이다. 예를 들어, 입력 신호 스트림 수신기(12)에 의해 튜닝된 입력 스트림이 인코딩되어 있는 경우에, 입력 신호 프로세서(16)는 디코딩의 수행을 필요로 한다.
신호 처리에 이어, 입력 스트림 프로세서(16)는, 처리된 채널 스트림 신호를, 오디오 프로세서(20)에 의한 수신을 위한 오디오 부분과 비디오 프로세서(22)에 의한 수신을 위한 비디오 부분으로 각각 나눈다(split). 입력 스트림 프로세서(16)와 마찬가지로, 오디오 프로세서(20)와 비디오 프로세서(22) 둘 다 제어기(18)의 제어 하에 동작한다. 오디오 인터페이스(24)는 오디오 프로세서(20)에 의해 생산된 처리된 채널 스트림의 오디오 부분을 수신 및 재생산한다. 비디오 인터페이스(26)는 비디오 프로세서(22)에 의해 생산된 처리된 채널 스트림의 비디오 부분을 수신 및 재생산한다.
플래시 메모리와 같은 비-휘발성 메모리 디바이스(28)는 오디오 및 비디오 프로세서(20, 22) 각각은 물론, 그에게 정보를 제공하고 그로부터의 정보를 저장하기 위한 제어기(18)로의 링크들을 갖는다. 또한, 제어기(18)는 제어기를 위한 프로그램 명령어들을 저장할 수 있는 제어 메모리(30)로의 링크 또한 갖는다. 사용자는 사용자 인터페이스(32)를 통해 제어기(18)로 명령들을 입력하고, 제어기로부터 상태 정보를 수신할 수 있다.
도 2는 도 1의 비-휘발성 메모리(28)의 일반적인 할당을 도시한다. 메모리(28)에서 제1 저장 위치(200)는 메모리(28)에서 그 밖에 다른 곳에 저장된 특정한 데이터 구조들을 포인팅하도록 기능하는 부트 로더를 저장한다. 예를 들어, 부트 로더는, 때때로 "뱅크 1" 및 "뱅크 2"로 각각 지칭되는 저장 위치들(202, 204)에 각각 저장된 제1 및 제2 애플리케이션 코드 이미지들 중 하나를 포인팅할 수 있다. 저장 위치(200)에 저장된 부트 로더의 동작은 비-휘발성 메모리(28)의 저장 위치(206)에 저장된 부트 로더 파라미터들에 따라 다르다.
저장 위치들(202 및 204)에 각각 저장된 제1 및 제2 애플리케이션 코드 이미지들은 각각 서브-위치들(208 및 210)에 저장된 관련된 태그들을 갖는다. 대응하는 애플리케이션 코드 이미지와 관련된 각 태그는 특정한 제조자에 의해 만들어진 특정 모델 셋-톱 박스에 의한 사용을 위해 코드 이미지를 고유하게 식별한다. 이러한 태그들은 또 다른 셋-톱 박스를 위해 계획된 애플리케이션 코드 이미지의 로딩을 방지한다.
저장 위치들(200-210)에 더해, 도 1의 비-휘발성 메모리(28)는, 저장 위치들(212 및 214)에 의해 예시된 바와 같은, 추가의 저장 위치들을 포함할 수 있다. 실제로, 제어기(18)는, 사용자 또는 서비스 제공자에 의한 개입 없이, 저장 위치(212) 뿐만 아니라 저장 위치들(200-210)을 변경할 수 있다. 일부 셋-톱 박스들에 대해 또는 거기에 저장된 데이터의 적어도 일부에 대해, 저장 위치(214)는 변경을 위해 사용자 또는 서비스 제공자의 개입을 필요로 한다.
도 2에 도시된 메모리(28)의 할당은, 애플리케이션 코드 이미지가 현재 활성이라는 임의의 표시를 제공하지 않는다. 어떤 경우에는, 메모리(28)의 최종 목표 할당(final desired allocation)을 얻기 위해 다단계 프로세스가 필요하게 될 것이다. 서비스 제공자가 코드 업그레이드 경로로서 오픈 케이블 커먼 다운로드(Open Cable Common Download)를 사용하는 경우, 서비스 제공자는, 셋-톱 박스 모델이 계속 지원되는 한, 셋-톱 박스 업그레이드들의 모든 단계들을 위해 서비스 전달 네트워크 내에서 대역폭을 할당할 필요가 있을 것이다. 종종, 서비스 제공자는 장기간 동안 웨어하우스(warehouse)에 다수의 셋-톱 박스를 저장할 것이다. 또한, 일부 경우에, 셋-톱 박스는 가입자의 집에서 장기간 동안 파워 오프를 유지할 수 있다. "휴면(dormant)" 셋-톱 박스가 나중에 서비스 제공자의 네트워크에 부착될 때, 이러한 셋-톱 박스는 모든 업그레이드 단계들을 요구할 것이다. 모든 업그레이드 단계들의 제공에 대한 요구는, 현재 활성인 애플리케이션 코드 이미지를 식별하기 위해 이후에 제안된 솔루션들의 일부에 대한 구현을 불가능하게 할 것이다.
현재 애플리케이션 코드 이미지가 커지게 될 때 메모리를 할당하는 제1 가능 솔루션은, 도 2의 비-휘발성 메모리(28)에서 동일한 위치, 예를 들어, 저장 영역(204)("뱅크 2")에 현재 애플리케이션 코드 이미지를 항상 저장하는 것이다. 따라서, 저장 영역(204)은 항상 현재 활성인 애플리케이션 코드 이미지를 보유한다. 향후 애플리케이션 코드 이미지 업그레이드 시에, 저장 영역(204)(뱅크 2)의 콘텐츠들이 교체될 것이다. 현재 활성인 애플리케이션 코드 이미지가 빈(vacant) 저장 공간으로 확장할 수 있도록 하기 위해, 도 1 및 2의 비-휘발성 메모리(28) 내의 저장 공간은 일반적으로 하이 메모리 쪽으로 콤팩트된다.
도 1의 저장 영역(202)("뱅크 1"로 지정됨)은 제한된 지능을 필요로 하는 백업 애플리케이션 코드 이미지를 보유하는 역할을 한다. 다시 말해, 백업 애플리케이션 코드 이미지는, 저장 영역(204)(뱅크 2)에 저장된 애플리케이션 코드 이미지가 손상되면 거기에 애플리케이션 코드 이미지를 로드하기에 충분한 지능을 소유하기만 하면 된다.
이러한 접근법은 부트 로더를 교체할 필요성을 배제한다는 장점을 갖는다. 이러한 접근법을 사용하면, 부트 로더는 항상 저장 영역(204)(뱅크 2)을 포인팅할 것이다. 그러나, 이러한 접근법의 경우, 메모리 재할당 전에, 저장 영역(202)(뱅크 1)과 저장 영역(204)(뱅크 2) 중 어느 것이 활성 애플리케이션 코드 이미지를 포함하는지에 대한 지식이 없는 경우, 다단계 업그레이드 프로세스가 필요하게 된다는 단점이 있다.
현재 애플리케이션 코드 이미지가 너무 크게 될 때 메모리를 할당하는 또 다른 가능 솔루션은 애플리케이션 코드 이미지 시작 주소를 변경하기 위해 부트 로더를 업그레이드하는 것이다. 이러한 접근법은 동일한 크기의 두 개의 애플리케이션 코드 이미지를 허용한다. 그러나, 이러한 접근법은, 저장 영역들(202 및 204)(뱅크 1 및 2 각각)이 현재 활성인 애플리케이션 코드 이미지를 보유하는지에 대한 임의의 사전 지식의 부재시에, 다단계 업그레이드 프로세스가 필요하게 된다는 단점을 초래한다. 또한, 업그레이드 동안 정전이 발생하는 경우에, 셋-톱 박스(10)는 비-기능적이 될 것이다. 끝으로, 예전(older) 애플리케이션 코드 이미지가 도 1 및 2의 비-휘발성 메모리(28)의 새로운 할당을 이해하지 못하는 경우에, 애플리케이션 코드 이미지의 예전 버전으로 다운그레이드는 불가능하게 된다.
현재 애플리케이션 코드 이미지가 너무 크게 될 때 메모리를 할당하기 위한 세 번째 가능 솔루션이 존재한다. 이 솔루션은, 유연한 애플리케이션 코드 이미지 시작 주소를 허용하기 위해 도 2의 저장 영역(202)(뱅크 1)의 맨 아래에 새로운 2차 부트 로더를 배치시키는 것을 수반한다. 뱅크 1 및 2는 도 1 및 2의 비-휘발성 메모리(28) 내에서 시프트되고, 비-휘발성 데이터 저장 위치의 일부를 재할당하기 위해 크기에 있어서 증가된다. 이러한 접근법은 기존의 부트 로더를 교체할 필요성을 배제하고, 또한 동일한 크기의 두 개의 애플리케이션 코드 이미지를 허용한다.
그러나, 이러한 접근법은, 저장 영역들(202 및 204)(뱅크 1 및 2 각각)이 현재 활성인 애플리케이션 코드 이미지를 보유하는지에 대한 임의의 사전 지식의 부재시에, 다단계 업그레이드 프로세스가 필요하게 된다는 단점을 초래한다. 또한, 업그레이드하는 동안 정전이 발생하는 경우, 수신기가 비-기능적이 될 것이다. 끝으로, 예전 애플리케이션 코드 이미지가 도 1 및 2의 비-휘발성 메모리(28)의 새로운 할당을 이해하지 못하는 경우에, 애플리케이션 코드 이미지의 예전 버전으로의 다운그레이드는 불가능하게 된다.
도 3은, 전술한 가능 할당 기술들의 단점을 극복하는, 본 원리에 따른, 비-휘발성 메모리(28)의 할당을 도시한다. 이후에 더 자세히 설명되는 바와 같이, 도 3에 도시된 메모리(28)의 할당은, 다음의 제약들을 고려하는, 콤팩트된 데이터 저장을 제공한다.
(1) 저장 영역의 원래 구조는, 홈 사용자나 서비스 제공자 중 어느 하나가 정상 동작을 위해 수신기를 재구성하지 않고는 비-휘발성 메모리(214)에서 이동을 겪을 수 없다는 구성 상세를 포함한다.
(2) 구성 상세들은 기존의 데이터 저장 영역의 일단(하이나 로우 중 어느 하나)에 함께 있고;
(3) 저장 영역의 원래 구조는 재작성되거나 재취득되기 전에 가입자나 서비스 제공자 중 어느 하나에 의한 개입을 필요로 하지 않는 비-휘발성 메모리(212)에 데이터를 포함한다.
도 3에 도시되는 그에 따른 메모리(8)의 할당은 도 2의 할당 기술과 많은 유사성을 포함한다. 따라서, 도 3에서의 같은 참조 번호들은 도 2의 메모리(28) 내에 있는 동일한 영역들을 지칭하는 것으로 나타난다. 다시 말해, 도 3의 메모리(28)에서 영역들(200-210)은 도 2에서 영역들(200-210)과 동일한 아이템들(예컨대, 부트 로더, 부트 로더 파라미터들, 애플리케이션 코드 이미지들 및 태그들)을 저장한다.
도 3에 도시된 메모리(28)의 할당은 다음의 방식에서 도 2의 메모리(28)의 할당과 다르다. 도 2의 저장 영역(212)은 도 3에서 서브-영역들(216, 218, 220)로 재할당된다. 이후에 설명되는 바와 같이, 서브-영역들(216 및 218)은 각각 레전드들 "코드 뱅크 1b" 및 "코드 뱅크 2b"을 맡고, 각각 제1 및 제2 애플리케이션 코드 이미지들의 부분을 저장한다. 따라서, 저장 위치(212)가 텅 비어 있거나 가입자나 서비스 제공자의 개입 없이 재취득될 수 있는 데이터를 위해 사용될 수 있는 도 2에 도시된 메모리(28)의 할당과는 반대로, 도 3의 메모리 할당은 애플리케이션 코드 이미지들의 일부를 저장하는 저장 위치(212)로 사용한다. 도 3에 도시된 메모리(28)의 할당은 이전과 같이 저장 영역(214)을 유지한다.
본 원리에 따르면, 도 3의 메모리(28)에서 저장을 위한 애플리케이션 코드 이미지의 수신시, 애플리케이션 코드 이미지의 크기 검사는 애플리케이션 코드 이미지를 저장할 영역들(202 및 204)의 능력을 결정하기 위해 발생한다. 수신된 애플리케이션 코드 이미지의 크기가 도 3의 저장 영역들(202 및 204) 중 하나에 저장을 허가하는 경우, 저장은 임의의 추가 처리를 필요로 하지 않고 발생한다.
그러나, 수신된 애플리케이션 코드 이미지가 도 3의 저장 영역들(202 및 204) 중 하나의 크기를 초과하는 경우, 수신된 애플리케이션 코드 이미지는, 이후에 각각 1차 및 2차 부분으로 지칭되는, 제1 및 제2 부분으로 분리된다. 수신된 애플리케이션 코드 이미지의 분리는, 애플리케이션 코드 이미지의 1차 부분이 원래의 애플리케이션 코드 이미지 공간(즉, 도 3의 영역들(202 및 204) 중 하나)에 딱 맞을(fit) 수 있게 하는 방식으로 발생한다. 애플리케이션 코드 이미지의 2차 부분은 이러한 목적으로 재할당된 2개의 빈 데이터 섹션들(도 3의 영역들(216 및 218) 중 하나에 저장된다. 도 3의 영역들(202 및 204) 중 하나에 애플리케이션 코드 이미지의 1차 부분을 로드하는 것은 일반적으로 레거시 기술을 통해 발생한다. 애플리케이션 코드 이미지의 1차 부분은, 재할당된 저장 영역들 중 하나에 로드된 2차 부분의 실행까지 정상적으로 동작하지만 기능성은 감소된 능력을 갖는다. 애플리케이션 코드 이미지의 1차 부분은 재할당된 저장 영역(예컨대, 저장 영역들(216 및 218) 중 하나)에 애플리케이션 코드 이미지의 2차 부분을 로드하는 새로운 특징을 포함할 것이다.
이전에 논의된 바와 같이, 도 2 및 3의 비-휘발성 메모리(28)에 저장된 애플리케이션 코드 이미지들은 애플리케이션 코드 이미지가 동작할 셋-톱 박스의 제조자 및 모델을 식별하는 관련된 태그들을 갖는다. 본 원리에 따르면, 각 애플리케이션 코드 이미지의 2차 부분은 이러한 목적을 위한 태그를 갖는다. 이를 위해, 재-할당된 영역들(216 및 218)은, 재할당된 영역들에 저장된 2차 애플리케이션 코드 이미지 부분과 관련된 태그들을 저장하기 위해, 각각, 서브-영역들(220 및 222)을 포함한다. 예전 애플리케이션 코드 이미지를 실행하는 셋-톱 박스는 단지 새로 수신된 애플리케이션 코드 이미지의 1차 부분만 로드할 것이다. 새로 로드된 애플리케이션 코드 이미지는 새로운 태그들을 이해할 것이고, 재할당된 저장에 2차 부분을 로드할 것이다.
상술한 도 3의 메모리(28)의 할당과 관련하여, 서비스 제공자는 코드 이미지의 1차 및 2차 부분 둘 다를 셋-톱 박스(10)에 사용가능하게 만들어야 한다. 서비스 제공자가 메모리(28)의 새로운 재할당을 인식하지 않는 예전 코드 이미지로 다운그레이드하기로 결정하는 경우, 서비스 제공자는 비-활성 애플리케이션 뱅크(예컨대, 도 3의 저장 영역들(202 및 204) 중 하나)에 예전 코드 이미지를 로드한 다음 예전 애플리케이션 코드 이미지를 활성으로 만들 것이다. 로딩시, 예전 코드 이미지는, 메모리(28)의 재할당이 발생했고 재할당된 메모리는 예전 애플리케이션 코드 이미지가 예상하는 데이터를 포함하지 않는다는 것을 검출할 것이다. 이러한 상황 하에, 예전 애플리케이션 코드 이미지는 사용자나 서비스 제공자의 개입 없이 그 데이터의 재로딩을 개시할 것이다.
본 원리에 따른 도 3의 메모리(28)의 할당은 비-휘발성 메모리에서 부트 로더를 교체할 필요성을 배제한다는 장점을 제공한다. 또한, 도 3의 메모리(28)의 할당은 기존 애플리케이션 코드 이미지들의 소거 또는 재할당을 필요로 하지 않는다. 본 원리에 따르면, 새롭게 빈 저장 영역들(216 및 218) 중 하나에는 새롭게 수신된 애플리케이션 코드 이미지들의 2차 부분이 할당된다. 각 수신된 애플리케이션 코드 이미지들의 1차 부분은 각각 저장 영역들(202 및 204) 중 하나에 할당된다. 본 예에서, 그의 1차 부분이 저장 영역(202)(뱅크 1)에 있는 애플리케이션 코드 이미지는, 그의 2차 부분을 위해 재할당된 저장 영역(216)(뱅크 1b)을 사용한다. 마찬가지로, 그의 1차 부분이 저장 영역(204)(뱅크 2)에 있는 애플리케이션 코드 이미지는, 그의 2차 부분을 위해 재할당된 저장 영역(218)(뱅크 2b)을 사용한다. 수신된 애플리케이션 코드 이미지의 두 개의 부분이 서로 분리할 수 없게 링크된 경우, 서비스 제공자는 동시에 1차 및 2차 부분 둘 다를 변경해야 한다. 수신된 애플리케이션 코드 이미지의 1차 및 2차 부분이 분리할 수 없게 링크되지 않은 경우, 1차 및 2차 부분은 독립적으로 업그레이드될 수 있다.
어떤 경우에는, 새로운 특징들을 갖는 새롭게 수신된 애플리케이션 코드 이미지를 로딩한 후에 문제들이 발생할 수 있다. 이러한 문제들이 발생할 때, 애플리케이션 코드 이미지의 예전 버전으로 복귀할 필요가 있다. 본 원리에 따른 도 3의 메모리(28)의 재할당은, 애플리케이션 코드의 예전 버전들이, 셋-톱 박스(10)에 재로드되는 경우에 정상적으로 동작하는 것을 방해하지 않는다. 또한, 본 원리의 메모리 할당은 메모리 할당을 사용하는 새로운 애플리케이션 코드 이미지들로 코드를 업그레이드하는 것을 허용한다. 또한, 본 원리의 메모리 할당은, 새로운 할당 구조를 이해하지 못하는 예전 애플리케이션 코드 이미지가 여전히 로드되고 정상적으로 기능할 수 있는 코드의 "다운그레이드"를 방해하지 않는다.
이전에 논의된 바와 같이, 그의 1차 부분들이 각각 저장 영역들(202 및 204)에 할당되는 애플리케이션 코드 이미지들은 그들의 관련된 2차 부분들을 위해 각각 재할당된 저장 영역들(216 및 218)을 사용한다. 그러나, 1차 애플리케이션 코드 이미지 부분은 애플리케이션 코드 이미지 2차 부분들 중 하나를 사용할 수 있다. 따라서, 그의 1차 부분이 뱅크 1(도 3의 저장 영역(202))에 있는 애플리케이션 코드 이미지는 뱅크 1b(저장 영역(216))나 뱅크 2b(저장 영역(218)) 중 어느 하나에 저장된 2차 애플리케이션 코드 이미지 부분들을 사용할 수 있다.
앞서 말한 것은, 이로 한정되는 것은 아니지만, 셋-톱 박스와 같은 수신 디바이스에 메모리를 할당하기 위한 기술에 대해 설명한다.

Claims (12)

  1. 메모리에 수신된 정보를 저장하기 위한 방법으로서,
    상기 수신된 정보를 1차 및 2차 부분으로 분리하는 단계;
    진입 정보의 상기 2차 부분을 저장하기 위한 2차 정보 부분 저장 위치를 구축하기 위해 상기 메모리를 재할당하는 단계; 및
    메모리에서 지정된 저장 위치에 진입 정보의 제1 부분을 저장하는 단계
    를 포함하는 정보 저장 방법.
  2. 제1항에 있어서, 상기 2차 부분이 상기 1차 부분의 검색시에 검색되도록, 상기 수신된 정보의 상기 1차 부분과 상기 수신된 정보의 상기 2차 부분을 고유하게 관련시키는 단계를 더 포함하는 정보 저장 방법.
  3. 제1항에 있어서,
    각각 1차 및 2차 부분을 갖는 제1 및 제2 수신된 정보를 수신하는 단계; 및
    상기 제2 및 제1 정보의 상기 1차 부분과 제1 및 제2 수신된 정보의 상기 2차 부분을 각각 관련시키는 단계
    를 더 포함하는 정보 저장 방법.
  4. 제1항에 있어서, 전자 디바이스에 대한 상기 수신된 정보의 상기 1차 및 2차 부분의 적합성을 식별하기 위해, 상기 수신된 정보의 상기 1차 및 2차 부분을 태깅(tagging)하는 단계를 더 포함하는 정보 저장 방법.
  5. 제1항에 있어서, 상기 재할당 단계는, 상기 수신된 정보의 상기 2차 부분을 지금 수신하기 위해, 개입 없이 할당가능한 저장 영역을 재할당하는 단계를 더 포함하는 정보 저장 방법.
  6. 제1항에 있어서, 상기 수신된 정보의 상기 1차 부분은 상기 수신된 정보의 상기 2차 부분의 다운로딩을 지시하는(directing) 데이터를 포함하는 정보 저장 방법.
  7. 메모리에 수신된 정보를 저장하기 위한 방법으로서,
    상기 수신된 정보가 상기 메모리에서 지정된 저장 위치의 크기를 초과하는 크기를 갖는지를 결정하는 단계;
    만약 갖는다면, 상기 수신된 정보를 1차 및 2차 부분으로 분리하는 단계;
    진입 정보의 상기 2차 부분을 저장하기 위한 2차 정보 부분 저장 위치를 구축하기 위해 상기 메모리를 재할당하는 단계; 및
    메모리에서 상기 지정된 저장 위치에 상기 진입 정보의 제1 부분을 저장하는 단계
    를 포함하는 정보 저장 방법.
  8. 제7항에 있어서, 상기 2차 부분이 상기 1차 부분의 검색시 검색되도록, 상기 수신된 정보의 상기 1차 부분과 상기 수신된 정보의 상기 2차 부분을 고유하게 관련시키는 단계를 더 포함하는 정보 저장 방법..
  9. 제7항에 있어서,
    각각 1차 및 2차 부분을 갖는 제1 및 제2 수신된 정보를 수신하는 단계; 및
    상기 제2 및 제1 정보의 상기 1차 부분과 제1 및 제2 수신된 정보의 상기 2차 부분을 각각 관련시키는 단계
    를 더 포함하는 정보 저장 방법..
  10. 제7항에 있어서, 전자 디바이스에 대한 상기 수신된 정보의 상기 1차 및 2차 부분의 적합성을 식별하기 위해, 상기 수신된 정보의 상기 1차 및 2차 부분을 태깅하는 단계를 더 포함하는 정보 저장 방법.
  11. 제7항에 있어서, 상기 재할당 단계는, 상기 수신된 정보의 상기 2차 부분을 지금 수신하기 위해, 개입 없이 할당가능한 저장 영역을 재할당하는 단계를 더 포함하는 정보 저장 방법.
  12. 제7항에 있어서, 상기 수신된 정보의 상기 1차 부분은 상기 수신된 정보의 상기 2차 부분의 다운로딩을 지시하는 데이터를 포함하는 정보 저장 방법.
KR1020137010898A 2010-10-28 2011-02-16 정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법 KR20130142119A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40765910P 2010-10-28 2010-10-28
US61/407,659 2010-10-28
PCT/US2011/000282 WO2012057813A1 (en) 2010-10-28 2011-02-16 Method for non-volatile memory reallocation for information storage

Publications (1)

Publication Number Publication Date
KR20130142119A true KR20130142119A (ko) 2013-12-27

Family

ID=44144868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137010898A KR20130142119A (ko) 2010-10-28 2011-02-16 정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법

Country Status (6)

Country Link
US (1) US20130191608A1 (ko)
EP (1) EP2633401A1 (ko)
JP (1) JP2013546250A (ko)
KR (1) KR20130142119A (ko)
CN (1) CN103180828A (ko)
WO (1) WO2012057813A1 (ko)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4084461B2 (ja) * 1997-06-05 2008-04-30 松下電器産業株式会社 リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体
US6360364B1 (en) * 1999-03-17 2002-03-19 Microsoft Corporation System and method for installing an application on a portable computer
JP2000293366A (ja) * 1999-04-06 2000-10-20 Mitsubishi Electric Corp セットトップボックス用モジュールのアップデート方法
US7409685B2 (en) * 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US6910113B2 (en) * 2001-09-07 2005-06-21 Intel Corporation Executing large device firmware programs
WO2004003733A2 (en) * 2002-06-28 2004-01-08 Koninklijke Philips Electronics N.V. Software download into a receiver
JP2004102698A (ja) * 2002-09-10 2004-04-02 Ntt Docomo Inc ダウンロード方法、領域管理装置、携帯通信端末、プログラムおよび記録媒体
ATE543135T1 (de) * 2003-04-11 2012-02-15 Hewlett Packard Development Co Initialisierung und aktualisierung von software und/oder firmware in elektronischen einrichtungen
DE602004026822D1 (de) * 2004-02-27 2010-06-10 Ericsson Telefon Ab L M Programmieren eines Flash-Speichers
KR100630729B1 (ko) * 2005-01-04 2006-10-02 삼성전자주식회사 플래쉬 메모리의 메인 코드 다운로드 방법
JP2007328856A (ja) * 2006-06-07 2007-12-20 Toshiba Corp 磁気ディスク装置及びデータ記録方法
EP2162821A1 (fr) * 2007-06-29 2010-03-17 France Telecom Procede de stockage

Also Published As

Publication number Publication date
US20130191608A1 (en) 2013-07-25
JP2013546250A (ja) 2013-12-26
EP2633401A1 (en) 2013-09-04
CN103180828A (zh) 2013-06-26
WO2012057813A1 (en) 2012-05-03

Similar Documents

Publication Publication Date Title
CN101425018B (zh) 基于分段式的嵌入式固件升级方法及装置
US6668261B1 (en) Method of upgrading a program using associated configuration data
US6928579B2 (en) Crash recovery system
US20100235617A1 (en) System recovery method and embedded system with automatic recovery function
EP3518097B1 (en) Firmware updating method and electronic device using the same
US6269442B1 (en) Apparatus and method for on-line replacement of a running program code and data using checkpoints
US7739490B2 (en) Control apparatus, upgrade method and program product of the same
US20110131563A1 (en) Firmware update apparatus and method
CN101233493A (zh) 冲突解决装置
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
JP2004227143A (ja) 情報処理装置および情報処理方法
EP2329368B1 (en) Updating content without using a mini operating system
US20120102358A1 (en) Server having memory dump function and memory dump acquisition method
CN109710297B (zh) 一种设备整体或分模块进行升级和回退方法
US20180275908A1 (en) Method for providing software stack migration
CN103425436A (zh) 终端设备以及虚拟存储单元管理方法
US20150089486A1 (en) Method of Firmware Upgrade
CN101908009B (zh) 文件备份与使用方法
KR20130142119A (ko) 정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법
JP4084461B2 (ja) リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体
US20100145906A1 (en) Storage method
KR101420026B1 (ko) 부팅 프로세스 중에 파일들을 로딩하기 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체
CN104978216A (zh) 应用确定方法和应用确定装置
CN117251216B (zh) 一种服务器固件启动优化方法、系统、服务器及存储介质
KR101666619B1 (ko) 임베디드 디바이스 환경에서의 메모리 관리 방법 및 그 시스템

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid