KR20150067214A - 외부 메모리 튜닝 시퀀스의 최적의 사용을 위한 알고리즘 - Google Patents

외부 메모리 튜닝 시퀀스의 최적의 사용을 위한 알고리즘 Download PDF

Info

Publication number
KR20150067214A
KR20150067214A KR1020157010469A KR20157010469A KR20150067214A KR 20150067214 A KR20150067214 A KR 20150067214A KR 1020157010469 A KR1020157010469 A KR 1020157010469A KR 20157010469 A KR20157010469 A KR 20157010469A KR 20150067214 A KR20150067214 A KR 20150067214A
Authority
KR
South Korea
Prior art keywords
memory card
tuning
host device
command
tuning command
Prior art date
Application number
KR1020157010469A
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 KR20150067214A publication Critical patent/KR20150067214A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법, 장치, 그리고 컴퓨터 프로그램 제품이 제공되어 있다. 이 장치는 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하고, 메모리 카드로 판독 동작을 개시하며, 그리고 적어도 하나의 튜닝 파라미터에 기초하여 튜닝 커맨드를 메모리 카드로 전송한다. 적어도 하나의 튜닝 파라미터는 메모리 카드의 온도, 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간, 메모리 카드로부터 호스트 디바이스로 전송된 데이터 블록들의 수, 및/또는 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수를 포함한다. 장치는 또한 메모리 카드로부터 데이터를 판독하고, 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러를 검출하며, 그리고 CRC 에러를 검출하면 튜닝 커맨드를 상기 메모리 카드로 전송한다.

Description

외부 메모리 튜닝 시퀀스의 최적의 사용을 위한 알고리즘{ALGORITHM FOR OPTIMAL USAGE OF EXTERNAL MEMORY TUNING SEQUENCE}
본 출원은, 명칭이 “CMD19 튜닝 커맨드를 사용한 SD 카드 튜닝 시퀀스의 최적의 사용을 위한 알고리즘 (ALGORITHM FOR OPTIMAL USAGE OF SD CARD TUNING SEQUENCE USING CMD19 TUNING COMMAND)” 이고 2012년 10월 5일자로 출원된 미국 가출원 번호 제 61/710,639 호의 우선권 이익을 주장하며, 그 전체는 여기에 참조로서 명시적으로 포함되어 있다.
본 개시물은 일반적으로 통신 시스템들에 관한 것으로, 좀더 구체적으로, CMD19 튜닝 커맨드를 사용하여 메모리 카드 튜닝 시퀀스의 최적의 사용에 관한 것이다.
보안 디지털 (Secure digital, SD) 은 셀룰러 폰들 (celluar phones), 스마트폰들, 랩탑 컴퓨터들, 개인 휴대 정보 단말기들 (PDAs), 글로벌 측위 시스템 (GPS) 디바이스들, 멀티미디어 디바이스들, 비디오 디바이스들, 디지털 오디오 기기들 (예를 들어, MP3 플레이어들), 카메라들, 게임 콘솔들, 태블릿 컴퓨터들, 또는 임의의 다른 유사한 기능을 하는 디바이스들과 같은 휴대용 디바이스들의 사용을 위해 개발된 비휘발성 (예를 들어, 플래쉬) 메모리 카드 포맷의 유형이다. 예를 들어, SD 메모리 카드는 사진들을 저장하고 취출하기 위해 디지털 카메라에 의해 사용될 수 있다. 호스트로서 또한 지칭되는 휴대용 디바이스는 SD 메모리 카드에 데이터를 기록하고 SD 메모리 카드로부터 데이터를 판독하며, 여기서, 데이터를 판독하는 기동력은 SD 메모리 카드가 아닌 호스트로부터 온다.
종래의 및 전통적인 접근법들의 한계점들 및 단점들은 도면들을 참조하여 본 개시물의 나머지 부분에 명시된 바와 같이 본 발명의 몇몇 양태들과 그러한 시스템들의 비교를 통해 당해 기술 분야에서 숙련된 자에게 분명해질 것이다.
본 개시물의 양태에 있어서, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법, 컴퓨터 프로그램 제품, 그리고 장치가 제공되어 있다. 그 장치는 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하고, 메모리 카드로 판독 동작을 개시하며, 적어도 하나의 튜닝 파라미터에 기초하여 튜닝 커맨드를 메모리 카드로 전송한다. 적어도 하나의 튜닝 파라미터는 메모리 카드의 온도, 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간, 메모리 카드로부터 호스트 디바이스로 전송된 데이터 블록들의 수, 및/또는 메모리 카드와 호스트 디바이스 사이의 트랜잭션들의 수를 포함한다. 그 장치는 또한 메모리 카드로부터 데이터를 판독하고, 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러를 검출하며, CRC 에러를 검출하면 튜닝 커맨드를 메모리 카드로 전송한다.
도 1 은 호스트 디바이스에 연결된 전자적 저장 매체를 도시하는 다이어그램이다.
도 2 는 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법에 대한 플로우 차트이다.
도 3 은 예시적인 장치에서 상이한 모듈들/수단들/구성요소들 사이의 데이터 플로우를 도시한 개념적인 데이터 플로우 다이어그램이다.
도 4 는 프로세싱 시스템을 채용한 장치의 하드웨어 구현의 일 예를 도시하는 다이어그램이다.
첨부 도면들과 관련하여 하기에 기술된 상세한 설명은 다양한 구성들의 설명으로서 의도이지, 여기서 설명된 개념들이 실시될 수도 있는 단 하나의 구성들을 나타내기 위한 의도는 아니다. 상세한 설명은 다양한 개념들의 철저한 이해를 제공하기 위한 목적의 특정한 세부사항들을 포함한다. 그러나, 이러한 개념들은 이들 특정한 세부사항들 없이도 실시될 있음은 당업자에게 명백하다. 어떤 경우들에서는, 잘 알려진 구조들과 구성요소들은 그러한 개념들을 모호하게 하는 것을 피하기 위해 블록 다이어그램 형식으로 도시된다.
이제, 메모리 시스템들 (예를 들어, 보안 디지털 (SD) 또는 임베디드 멀티 미디어 카드 (eMMC) 시스템들) 의 수개의 양태들이 다양한 장치와 방법들을 참조하여 제시될 것이다. 이러한 장치와 방법들은 다음의 상세한 설명에서 설명되고 다양한 블록들, 모듈들, 구성요소들, 회로들, 스텝들, 프로세스들, 알고리즘들 등등 (“엘리먼트들” 로서 총칭됨) 에 의해 첨부 도면에 도시될 것이다. 이러한 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 임의의 조합을 사용해 구현될 수도 있다. 이러한 엘리먼트들이 하드웨어 또는 소프트웨어로서 구현되는지의 여부는 전반적인 시스템에 부과 된 특정 어플리케이션과 디자인 제약사항들에 의존한다.
예로서, 하나의 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합은, 하나 이상의 프로세서들을 포함하는 “프로세싱 시스템” 에 의해 구현될 수 있다. 프로세서들의 예로는 마이크로 프로세서들, 마이크로 컨트롤러들, DSP들 (digital signal processors), FPGA들 (field programmable gate arrays), PLD들 (programmable logic devices), 상태 머신들, 게이트 로직, 이산 하드웨어 회로들, 그리고 본 개시물 전반에 걸쳐 기술된 다양한 기능을 수행하기 위해 구성된 다른 적적한 하드웨어를 포함한다. 프로세싱 시스템에서의 하나 이상의 프로세서들은 소프트웨어를 실행시킬 수도 있다. 소프트웨어는 대체적으로, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 다른 것으로서 지칭되든 아니든, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 모듈들, 어플리케이션들, 소프트웨어 어플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행 가능한 것들, 실행의 스레드들, 절차들, 기능들 등으로 해석될 것이다.
따라서, 하나 이상의 실시예들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 만약 소프트웨어로 구현되면, 그 기능들은 비-일시적인 컴퓨터 판독가능 매체에 하나 이상의 명령들 또는 코드로 저장 또는 인코딩 될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 한정이 아닌 예로서, 이러한 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 명령들 또는 데이터 구조들 형태로 원하는 프로그램 코드로 수행되거나 저장하도록 사용될 수 있는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장 장치, 자기 디스크 저장장치 또는 다른 자기 저장 디바이스들, 또는 임의의 다른 매체를 포함할 수 있다. 여기에서 사용된 바와 같이 디스크 (Disk) 와 디스크 (disc) 는, 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다용도 디스크 (DVD), 그리고 플로피 디스크를 포함하며, 디스크들 (disks) 은 통상적으로 데이터를 자기적으로 재생하며, 반면 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 상기의 조합들이 컴퓨터 판독가능 매체의 범위 내에 또한 포함되어야 한다.
도 1 은 커넥션 (115) 을 통해 호스트 디바이스 (예를 들어, 모바일폰, 태블릿, 또는 다른 전자 디바이스) (110) 로 연결된 전자 저장 매체/메모리 카드 (예를 들어, 보안 디지털 (SD) 메모리 카드 또는 임베디드 멀티 미디어 카드 (eMMC)) (120) 를 도시한 다이어그램 (100) 이다. 이 양태에서, 메모리 카드 (120) 가 호스트 디바이스 (110) 에 연결되면 (예를 들어, 삽입되면), 호스트 디바이스 (110) 는 카드와 관계된 다양한 동작들을 최적으로 수행하기 위해 메모리 카드 (120) 의 이상적인 샘플링 포인트를 결정하는 것을 필요로 한다. 호스트 디바이스 (110) 는 튜닝 시퀀스를 수행함으로써 이상적인 샘플링 포인트를 결정할 수 있고, 호스트 디바이스 (110) 는 메모리 카드 (120) 로 튜닝 커맨드를 전송하며, 그리고 응답으로, 메모리 카드 (120) 가 호스트 디바이스 (110) 로 튜닝 패턴을 전송한다. 튜닝 패턴에 기초하여, 호스트 디바이스 (110) 는 이상적인 샘플링 포인트를 결정할 수도 있다.
한가지 접근법에 따르면, 호스트 디바이스 (110) 는 초기의 카드 검출시에만 튜닝 시퀀스를 수행할 수도 있다. 또 다른 접근법에 따르면, 자동 튜닝 커맨드가 지원되는데, 메모리 카드 (120) 는, 호스트 디바이스 (110) 의 호스트 제어기 스위치가 메모리 카드 (120) 로 부터 데이터를 요청할 때마다 호스트 디바이스 (110) 로 튜닝 시퀀스를 전송한다. 그러나 각각의 수신 트랜잭션에 대해 튜닝 시퀀스를 개시하는 추정된 오버헤드는 심각하게 전력, 대기시간 등에 영향을 주고, 그리고 정규의 동작들에 많은 가치를 부가하지 않는다.
더 빠른 메모리 카드 버스 인터페이스의 진보와 채택으로, 현재의 최대 클럭은 208 MHz 이상으로 설정될 수도 있다. 따라서 호스트 디바이스 (110) 의 호스트 컨트롤러는 특정한 카드 지연 특징들, 온도 변화들, 그리고 샘플링 포인트에 영향을 주는 다른 팩터들로 인해 데이터 판독 샘플링 포인트를 조정할 것이 요구된다. 메모리 카드 (120) 는 그 자신의 클럭을 갖지 않고, 그리고 데이터는 인커밍 클럭에 기초하여 호스트 디바이스 (110) 로 역으로 전송되어야 하기 때문에, 왕복 지연이 호스트 샘플링 메커니즘에 팩터가 되어야 할 것이다.
SD 규격들과 같은 메모리 카드 규격들은, 현재의 최적의 샘플링 포인트를 찾는 과정을 정의한다. 그러나, 그 규격들은 이러한 절차가 열적 변화들, 웨어 레벨링 (ware-leveling), 블록 카운트 등의 결과로서 반복되어야 할 때를 다루지 않는다. 튜닝은 각각의 판독 트랜잭션마다 수행되어야 하나, 그러나 전력, 대기 시간 그리고 성능에 대한 부정적 영향이 현저하다. 현재의 튜닝 시퀀스는 150 msec 까지 걸릴 수도 있으나, 시퀀스를 더 확장할 수 있는 임의의 호스트 프로세싱 시간을 포함하지 않는다. 따라서, 본 개시물의 목적은 튜닝 동작을 수행할 때 호스트 샘플링 클럭 (예를 들어, CMD19 튜닝 커맨드) 을 조정하기 위한 튜닝 커맨드를 최적으로 사용하기 위해 호스트 디바이스 (110) 에 이용가능한 부가적인 데이터를 활용하는 것이다.
일 양태에서, 본 개시물은 메모리 카드들의 작동상 성능을 개선하는데, 이 메모리 카드들은 호스트 샘플링 클럭을 조정하기 위한 울트라 고속-Ⅰ (UHS-Ⅰ) 및/또는 울트라 고속-Ⅱ (UHS-Ⅱ) 속도 클래스 및 CMD19 튜닝 커맨드를 지원한다. 알고리즘은, 정확한 지연 라인 위상을 유지하고 필요한 튜닝 시퀀스들의 수를 최소화 하기 위한 최적의 방식으로 CMD19 튜닝 커맨드를 사용하기 위해 제공된다. 이것은 전력을 보존하고, 사용자의 경험을 개선하며, 그리고 호스트 디바이스의 성능을 개선한다.
튜닝 시퀀스를 수행하는 것이 필수적인지 여부를 결정하기 위해 하나 이상의 파라미터들을 사용하는 적응형 알고리즘이 제공된다. 이 알고리즘은 1) 카드 온도; 2) 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간; 3) 카드로부터 판독된 블록들의 수; 4) 순환 리던던시 검사 (CRC) 에러 발생들; 및 5) 미리 정의된 윈도우 상의 트랜잭션들의 수와 같은 기준들을 평가할 것이다. 다른 다양한 기준들이 또한 평가될 수도 있다. 그 기준들을 사용하여, 호스트 디바이스 (110) 는 새로운 튜닝 시퀀스가 개시되어야 하는지를 결정할 수도 있다.
그 알고리즘은 결정 기준들에 포함될 수도 있는 파라미터들의 관점에서 적응형이다. 또한 그 알고리즘은 정상적인 동작들 동안에도 수행될 수도 있다. 부가적으로 그 알고리즘은, 튜닝 시퀀스를 수행하고 호스트 디바이스 (110) 의 호스트 컨트롤러 스위치를 통지함으로써 CRC 에러들을 치유할 수도 있다.
도 2 는 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법의 플로우 차트 (200) 이다. 예를 들면, 메모리 카드는 SD 카드, 또는 eMMC 일 수도 있다. 그 방법은 호스트 디바이스에 의해 수행될 수도 있다. 단계 202 에서, 호스트 디바이스는 작동가능하게 되도록 파워업 된다 (즉, 활성화된다). 단계 204 에서, 호스트 디바이스는 호스트 디바이스에 삽입된 (연결된) 메모리 카드를 초기화 한다.
단계 206 에서, 호스트 디바이스는 메모리 카드가 UHS-Ⅰ 및/또는 UHS-Ⅱ 와 같은 특별한 속도 클래스를 지원하는지 여부를 결정한다. 호스트 디바이스가 메모리 카드가 UHS-Ⅰ및/또는 UHS-Ⅱ를 지원하지 않는다는 것을 결정한 때, 호스트 디바이스는 단계 232 를 진행하고 메모리 카드에 대해 레거시 모드 동작을 수행한다. 이 레거시 모드 동작은 낮은 클럭 주파수로 특징지어질 수 있으며, 그리고 튜닝 시퀀스를 포함하지 않을 수도 있다.
단계 208 에서, 호스트 디바이스가 메모리 카드가 UHS-Ⅰ및/또는 UHS-Ⅱ를 지원한다는 것을 결정한 때, 호스트 디바이스는 메모리 카드로 튜닝 커맨드를 발행한다 (전송한다). 튜닝 커맨드는 CMD19 튜닝 커맨드 일 수도 있다. 응답으로서, 메모리 카드는 호스트 디바이스로 튜닝 패턴을 전송할 수도 있다. 단계 210 에서, 튜닝 패턴에 기초하여, 호스트 디바이스는 메모리 카드와 관련된 다양한 동작들을 수행하기 위한 최적의 지연 라인 위상을 선택할 수 있다.
단계 212 에서, 호스트 디바이스는 메모리 카드와 관련된 하나 이상의 튜닝 파라미터들을 결정 및 레코딩 할 수도 있다. 튜닝 파라미터들은 메모리 카드의 온도, 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간, 메모리 카드에서 호스트 디바이스로 전송된 데이터 블록들의 수, 및/또는 메모리 카드와 호스트 디바이스 사이의 트랜잭션들의 수를 포함할 수도 있다.
단계 214 에서, 호스트 디바이스는 메모리 카드로 판독/기록 동작을 개시한다. 판독/기록 동작은 호스트 디바이스의 호스트 컨트롤러로부터 요청을 수신할 시에 개시 될 수도 있다. 그 후에, 호스트 디바이스는 하나 이상의 튜닝 파라미터들에 기초하여 튜닝 커맨드를 메모리 카드로 전송하도록 결정할 수도 있다.
예를 들어, 단계 216 에서, 호스트 디바이스는 메모리 카드의 온도 변화가 미리 결정된 임계값보다 큰지 여부를 결정한다. 만약 미리 결정된 임계값보다 크면, 단계 228 에서 호스트 디바이스는 튜닝 커맨드를 메모리 카드로 전송한다.
또 다른 예에서는, 단계 218 에서, 호스트 디바이스는 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간이 최대 시간보다 큰지 여부를 결정한다. 만약 최대 시간보다 크면, 단계 228 에서 호스트 디바이스는 튜닝 커맨드를 메모리 카드로 전송한다.
추가의 예로서, 단계 220 에서, 호스트 디바이스는 메모리 카드로부터 전송된 데이터 블록들의 수가 최대 블록 카운트보다 큰지 여부를 결정한다. 만약 최대 블록 카운트보다 크면, 호스트 디바이스는 단계 228 에서 튜닝 커맨드를 메모리 카드로 전송한다.
또 다른 예로서, 단계 222 에서, 호스트 디바이스는 미리 정의된 윈도우 상의 메모리 카드와 호스트 디바이스 사이의 트랜잭션들의 수가 미리 결정된 임계값보다 큰지 여부를 결정한다. 만약 미리 결정된 임계값보다 크면, 단계 228 에서 호스트 디바이스는 튜닝 커맨드를 메모리 카드로 전송한다.
단계 224 에서, 단계 216, 218, 220, 및/또는 222에서 튜닝 파라미터에 관한 결정사항들이 긍정적 결과를 갖는 것이 없으면, 호스트 디바이스는 메모리 카드로부터 데이터를 판독할 수도 있다. 단계 226 에서, 호스트 디바이스는 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러가 검출되는지 여부를 결정할 수 있다. 만약 CRC 에러가 검출되면, 단계 228 에서 호스트 디바이스는 메모리 카드로 튜닝 커맨드를 전송한다. 단계 230 에서, 만약 CRC 에러가 검출되지 않으면, 호스트 디바이스는 판독한 데이터를 메모리에 저장할 수도 있다.
상기 서술한 바와 같이, 튜닝 커맨드는 CMD19 튜닝 커맨드일 수도 있다. 단계 228 에서 호스트 디바이스가 메모리 카드로 CMD19 튜닝 커맨드를 전송한 이후, 메모리 카드는 호스트 디바이스로 튜닝 패턴을 되돌려 줄 수도 있다. 튜닝 패턴에 기초해서, 호스트 디바이스는 메모리 카드의 이상적인 샘플링 포인트를 결정할 수도 있고 (단계 210), 이상적인 샘플링 포인트는 호스트 디바이스가 메모리 카드와 관련된 다양한 동작들을 최적으로 수행할 수 있도록 허용한다.
도 3 은 예시적인 장치 (302) 에 있어서 상이한 모듈들/수단들/구성요소들 사이의 데이터 플로우를 도시하는 개념적인 데이터 플로우 다이어그램 (300) 이다. 그 장치는 호스트 디바이스 일 수도 있다. 그 장치는 수신 모듈 (304), 카드 초기화 모듈 (306), 튜닝 모듈 (308), 파라미터 프로세싱 모듈 (310), 판독/기록 모듈 (312), 메모리 (314), 및 전송 모듈 (316) 을 포함한다.
장치 (302) 가 작동가능하게 되도록 전원이 켜진 때 (즉, 활성화되면), 카드 초기화 모듈 (306) 은 장치 (302) 에 삽입된 (연결된) 메모리 카드 (350) 를 초기화한다. 메모리 카드 (350) 는 예를 들어, SD 카드 또는 eMMC 일 수도 있다. 카드 초기화 모듈 (306) 은 메모리 카드 (350) 가 UHS-Ⅰ 및/또는 UHS-Ⅱ 와 같은 특별한 속도 클래스를 지원하는지 여부를 결정할 수 있다. 카드 초기화 모듈 (306) 이 메모리 카드 (350) 가 UHS-Ⅰ 및/또는 UHS-Ⅱ 를 지원하지 않는다는 것을 결정한 때, 카드 초기화 모듈 (306) 은 메모리 카드 (350) 에 대하여 레거시 모드 동작을 수행하도록 장치 (302) 에게 지시할 수도 있다. 레거시 모드 동작은 낮은 클럭 주파수로 특징지어질 수도 있으며, 그리고 튜닝 시퀀스를 포함하지 않을 수도 있다.
카드 초기화 모듈 (306) 이 메모리 카드 (350) 가 UHS-Ⅰ 및/또는 UHS-Ⅱ 를 지원한다고 결정한 때, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 튜닝 커맨드 (전송 모듈 (316) 을 통해) 를 발행한다 (전송한다). 튜닝 커맨드는 CMD19 튜닝 커맨드일 수도 있다. 응답으로, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 부터 튜닝 패턴 (수신 모듈 (304) 를 통해) 을 수신할 수 있다. 튜닝 패턴에 기초해서, 튜닝 모듈 (308) 은 메모리 카드 (350) 와 관련된 다양한 동작들을 수행하기 위한 최적의 지연 라인 위상을 선택할 수도 있다.
파라미터 프로세싱 모듈 (310) 은 메모리 카드 (350) 와 관련된 하나 이상의 튜닝 파라미터들을 결정 및 레코딩할 수도 있다. 튜닝 파라미터들은 메모리 카드 (350) 의 온도, 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간, 메모리 카드 (350) 에서 장치 (302) 로 전송된 데이터 블록들의 수, 및/또는 메모리 카드 (305) 와 장치 (302) 사이의 트랜잭션들의 수를 포함할 수도 있다.
판독/기록 모듈 (312)은 메모리 카드 (350) 로 판독/기록 동작을 개시할 수도 있다. 판독/기록 동작은 장치 (302) 의 호스트 컨트롤러로부터 요청을 수신 시 개시될 수 있다. 그 후에, 튜닝 모듈 (308) 은 하나 이상의 튜닝 파라미터들에 기초하여 메모리 카드 (350) 에 튜닝 커맨드를 전송하도록 결정할 수도 있다.
예를 들어, 튜닝 모듈 (308) 은 메모리 카드 (350) 의 온도 변화가 미리 결정된 임계값보다 큰지 여부를 결정할 수도 있다. 만약 미리 결정된 임계값보다 크면, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 튜닝 커맨드를 전송한다.
또 다른 예에서, 튜닝 모듈 (308) 은 마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간이 최대 시간보다 큰지 여부를 결정할 수도 있다. 만약 최대 시간보다 크면, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 튜닝 커맨드를 전송한다.
추가의 예로서, 튜닝 모듈 (308) 은 메모리 카드 (350) 에서 장치 (302) 로 전송된 데이터 블록들의 수가 최대 블록 카운트 보다 큰지 여부를 결정할 수도 있다. 만약 최대 블록 카운트보다 크면, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 튜닝 커맨드를 전송한다.
또 다른 예에서, 호스트 디바이스는 미리 정의된 윈도우 상의 메모리 카드 (350) 와 장치 (302) 사이의 트랜잭션들의 수가 미리 결정된 임계값보다 큰지 여부를 결정할 수 있다. 만약 미리 결정된 임계값보다 크면, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 튜닝 커맨드를 전송한다.
만약 튜닝 파라미터들에 관한 결정사항들이 긍정적으로 결정된 것이 없으면, 판독/기록 모듈 (312) 는 메모리 카드 (350) 로부터 데이터를 판독할 수도 있다. 판독/기록 모듈 (312) 은 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러가 검출되었는지 여부를 결정할 수 있다. 만약 판독/기록 모듈 (312) 이 CRC 에러를 검출하면, 튜닝 모듈 (308) 은 메모리 카드 (350) 로 튜닝 커맨드를 전송한다. 만약 판독/기록 모듈 (312) 이 CRC 에러를 검출하지 않으면, 판독/기록 모듈 (312) 은 메모리 (314) 에 판독한 데이터를 저장할 수 있다.
상기 서술한 바와 같이, 튜닝 커맨드는 CMD19 튜닝 커맨드일 수 있다. 튜닝 모듈 (308) 이 메모리 카드 (350) 로 CMD19 튜닝 커맨드를 전송한 후에, 메모리 카드 (350) 는 장치 (302) 로 튜닝 패턴을 되돌려줄 수도 있다. 튜닝 패턴에 기초해서, 튜닝 모듈 (308) 은 메모리 카드 (350) 의 이상적인 샘플링 포인트를 결정할 수도 있고, 이상적인 샘플링 포인트는 장치 (302) 가 메모리 카드 (350) 와 관련된 다양한 동작들을 최적으로 수행할 것을 허용한다.
그 장치는 전술한 도 2 의 플로우 차트에 있어서의 알고리즘의 각 단계를 수행하는 추가적인 모듈들을 포함할 수도 있다. 이를테면, 전술한 도 2의 플로우 차트에 있어서의 각 단계는 모듈에 의해 수행될 수 있고, 그 장치는 하나 이상의 모듈들을 포함할 수 있다. 그 모듈들은 전술한 프로세스들/알고리즘을 수행하도록 특정하게 구성된 하나 이상의 하드웨어 구성요소들이거나, 전술한 프로세스들/알고리즘을 수행하도록 구성된 프로세서에 의해 특정하게 구현된 하나 이상의 구성요소들이거나, 프로세서에 의한 구현을 위해 컴퓨터 판독가능 매체 내에 특정하게 저장된 하나 이상의 하드웨어 구성요소들이거나, 또는 이들의 어떤 조합일 수도 있다.
도 4 는 프로세싱 시스템 (414) 을 채용한 장치 (302') 를 위한 하드웨어 구현의 예를 도시한 다이어그램 (400) 이다. 프로세싱 시스템 (414) 은 일반적으로 버스 (424) 나타내는, 버스 구조로 구현될 수도 있다. 버스 (424) 는 프로세싱 시스템 (414) 의 특정한 어플리케이션 및 전체적인 디자인 제약들에 의존하는 임의의 수의 상호연결 된 버스들과 브리지들을 포함할 수도 있다. 버스 (424) 는 프로세서 (404), 모듈 (304, 306, 308, 310, 312, 314, 316), 및 컴퓨터 판독가능 매체 (406) 에 의해 표현된, 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함하는 다양한 회로들을 함께 링크시킨다. 버스 (424) 는 또한 타이밍 소스들, 주변부들, 전압 조절기들, 및 전력 관리 회로들와 같은 다양한 다른 회로들을 링크시킬 수도 있으며, 이들은 당업자에게 널리 공지되어 있고, 따라서, 더 이상 기술하지 않을 것이다.
프로세싱 시스템 (414) 은 컴퓨터 판독가능 매체 (406) 와 결합된 프로세서 (404) 를 포함한다. 프로세서 (404) 는 컴퓨터 판독가능 매체 (406) 에 저장된 소프트웨어의 실행을 포함하여 일반적 프로세싱에 책임이 있다. 소프트웨어는, 프로세서 (404) 에 의해 실행된 때, 프로세싱 시스템 (414) 으로 하여금 임의의 특정한 장치를 위해 상기 설명된 다양한 기능들을 수행하도록 한다. 컴퓨터 판독가능 매체 (406) 는 또한 소프트웨어를 실행시킬 때 프로세서 (404) 에 의해 조작된 데이터를 저장하기 위해 사용될 수도 있다. 프로세싱 시스템은 모듈 (304, 306, 308, 310, 312, 314, 및 316) 중 적어도 하나를 더 포함한다. 모듈은 프로세서 (404) 에서 구동하고 있는 소프트웨어 모듈들, 컴퓨터 판독가능 매체 (406) 에 상주된/저장된 모듈들, 프로세서 (404) 와 결합된 하나 이상의 하드웨어 모듈들, 또는 이들의 임의의 조합일 수도 있다.
일 구성에서, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치 (302/302') 는 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하기 위한 수단, 메모리 카드로 판독 동작을 개시하기 위한 수단, 적어도 하나의 튜닝 파라미터에 기초하여 메모리 카드에 튜닝 커맨드를 전송하기 위한 수단, 메모리 카드로부터 데이터를 판독하기 위한 수단, 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러를 검출하기 위한 수단, CRC 에러를 검출하면 메모리 카드로 튜닝 커맨드를 전송하기 위한 수단, 메모리 카드가 울트라 고속 (UHS) 을 지원하는지 결정하기 위한 수단, 메모리 카드로 튜닝 커맨드를 전송하기 위한 수단, 그리고 최적의 지연 라인 위상을 선택하기 위한 수단을 포함한다. 전술한 수단은 전술한 수단에 의해 인용된 기능들을 수행하도록 구성된 장치 (302') 의 프로세싱 시스템 (414) 및/또는 장치 (302) 의 전술한 모듈들 중 하나 이상일 수도 있다.
개시된 프로세스들에서의 단계들의 특정한 순서 또는 계위는 예시적인 접근법들의 예시임이 이해된다. 디자인 선호들에 기초하여, 프로세스에서의 단계들의 특정한 순서 또는 계위는 재배열될 수도 있음이 이해된다. 더욱이, 어떤 단계들은 결합되거나 생략될 수도 있다. 수반되는 방법 청구항들은 샘플 순서에서 다양한 단계들의 엘리먼트들을 제시하며, 제시된 특정한 순서 또는 계위로 한정된다는 의미는 아니다.
상기 설명은 어떠한 당업자라도 여기에 설명된 다양한 양태들을 실시할 수 있게 하기 위해 제공된다. 이러한 양태들에 대한 다양한 변형들은 당업자에게 용이하게 자명할 것이고, 여기에 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 여기에 나타낸 양태들로 제한되도록 의도되지 않고, 언어 청구항들과 부합하는 전체 범위를 부여받으려는 것이며, 엘리먼트에 대한 단수로의 참조는, 명확하게 그렇게 서술되지 않는다면 “하나 및 오로지 하나” 를 의미하는 의도가 아니고, 오히려 “하나 또는 그 이상” 을 의미하는 의도이다. 다른 방법으로 명확하게 서술하지 않는다면, “일부” 라는 용어는 하나 또는 그 이상을 지칭한다. 알려진 또는 후에 당업자에게 알려질 이 개시물 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조상 및 기능상 균등물은 참고문헌에 의해 여기에 명시적으로 포함되고, 청구항들에 의해 포괄되도록 의도된다. 더욱이, 여기에 개시된 어떤 것도 이러한 개시물이 청구항들에서 명시적으로 기재되어 있는지 여부에 관계없이 공중에 전용되도록 의도되지 않는다. 어떠한 청구항 엘리먼트도 “~를 위한 수단” 이라는 어구를 사용하여 명시적으로 기재하지 않으면 기능식 청구항인 것으로 해석하지 않는다.

Claims (24)

  1. 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법으로서,
    상기 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하는 단계;
    상기 메모리 카드로 판독 동작을 개시하는 단계; 및
    상기 적어도 하나의 튜닝 파라미터에 기초하여 튜닝 커맨드를 상기 메모리 카드로 전송하는 단계를 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터는,
    상기 메모리 카드의 온도;
    마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 데이터 블록들의 수; 또는
    상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수 중 적어도 하나를 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터에 기초하여 상기 튜닝 커맨드를 상기 메모리 카드로 전송하는 단계는,
    상기 메모리 카드의 상기 온도의 변화가 미리 결정된 임계 값보다 큰 경우;
    상기 마지막 튜닝 시퀀스가 수행된 이래로 경과된 상기 시간이 최대 시간보다 큰 경우;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 상기 데이터 블록들의 수가 최대 블록 카운트보다 큰 경우; 또는
    미리 정의된 윈도우 상의 상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수가 미리 결정된 임계 값보다 큰 경우에,
    상기 튜닝 커맨드를 상기 메모리 카드로 전송하는 단계를 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법.
  4. 제 2 항에 있어서,
    상기 메모리 카드로부터 데이터를 판독하는 단계;
    상기 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러를 검출하는 단계; 및
    상기 CRC 에러를 검출하면 상기 튜닝 커맨드를 상기 메모리 카드로 전송하는 단계를 더 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 메모리 카드와 관련된 상기 적어도 하나의 튜닝 파라미터를 결정하는 상기 단계 이전에,
    상기 메모리 카드가 울트라 고속 (Ultra High Speed; UHS) 을 지원하는지 결정하는 단계;
    상기 메모리 카드로 상기 튜닝 커맨드를 전송하는 단계; 및
    최적의 지연 라인 위상을 선택하는 단계를 더 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 튜닝 커맨드는 CMD19 튜닝 커맨드인, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 방법.
  7. 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치로서,
    상기 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하기 위한 수단;
    상기 메모리 카드로 판독 동작을 개시하기 위한 수단; 및
    상기 적어도 하나의 튜닝 파라미터에 기초하여 튜닝 커맨드를 상기 메모리 카드로 전송하기 위한 수단을 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  8. 제 7 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터는,
    상기 메모리 카드의 온도;
    마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 데이터 블록들의 수; 또는
    상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수 중 적어도 하나를 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터에 기초하여 상기 튜닝 커맨드를 상기 메모리 카드로 전송하기 위한 상기 수단은,
    상기 메모리 카드의 상기 온도의 변화가 미리 결정된 임계 값보다 큰 경우;
    상기 마지막 튜닝 시퀀스가 수행된 이래로 경과된 상기 시간이 최대 시간보다 큰 경우;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 상기 데이터 블록들의 수가 최대 블록 카운트보다 큰 경우; 또는
    미리 정의된 윈도우 상의 상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수가 미리 결정된 임계 값보다 큰 경우에,
    상기 튜닝 커맨드를 상기 메모리 카드로 전송하도록 구성된, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  10. 제 8항에 있어서,
    상기 메모리 카드로부터 데이터를 판독하기 위한 수단;
    상기 판독한 데이터와 관련된 순환 리던던시 검사 (cyclic redundancy check; CRC) 에러를 검출하기 위한 수단; 및
    상기 CRC 에러를 검출하면 상기 튜닝 커맨드를 상기 메모리 카드로 전송하기 위한 수단을 더 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  11. 제 7 항에 있어서,
    상기 메모리 카드와 관련된 상기 적어도 하나의 튜닝 파라미터를 결정하는 것 이전에,
    상기 메모리 카드가 울트라 고속 (UHS) 을 지원하는지 결정하기 위한 수단;
    상기 메모리 카드로 상기 튜닝 커맨드를 전송하기 위한 수단; 및
    최적의 지연 라인 위상을 선택하기 위한 수단을 더 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  12. 제 7 항에 있어서,
    상기 튜닝 커맨드는 CMD19 튜닝 커맨드인, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  13. 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치로서,
    프로세싱 시스템을 포함하고,
    상기 프로세싱 시스템은,
    상기 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하고;
    상기 메모리 카드로 판독 동작을 개시하며; 및
    상기 적어도 하나의 튜닝 파라미터에 기초하여 튜닝 커맨드를 상기 메모리 카드로 전송하도록
    구성되는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  14. 제 13 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터는,
    상기 메모리 카드의 온도;
    마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 데이터 블록들의 수; 또는
    상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수 중 적어도 하나를 포함하는, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  15. 제 14 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터에 기초하여 상기 튜닝 커맨드를 상기 메모리 카드로 전송하도록 구성되는 상기 프로세싱 시스템은,
    상기 메모리 카드의 상기 온도의 변화가 미리 결정된 임계 값보다 큰 경우;
    상기 마지막 튜닝 시퀀스가 수행된 이래로 경과된 상기 시간이 최대 시간보다 큰 경우;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 상기 데이터 블록들의 수가 최대 블록 카운트보다 큰 경우; 또는
    미리 정의된 윈도우 상의 상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수가 미리 결정된 임계 값보다 큰 경우에,
    상기 튜닝 커맨드를 상기 메모리 카드로 전송하도록 구성된, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  16. 제 14 항에 있어서,
    상기 프로세싱 시스템은,
    상기 메모리 카드로부터 데이터를 판독하고;
    상기 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러를 검출하며; 및
    상기 CRC 에러를 검출하면 상기 튜닝 커맨드를 상기 메모리 카드로 전송하도록
    더 구성된, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  17. 제 13 항에 있어서,
    상기 프로세싱 시스템이 상기 메모리 카드와 관련된 상기 적어도 하나의 튜닝 파라미터를 결정하는 것 이전에,
    상기 프로세싱 시스템은,
    상기 메모리 카드가 울트라 고속 (UHS) 을 지원하는지 결정하고;
    상기 메모리 카드로 상기 튜닝 커맨드를 전송하며; 및
    최적의 지연 라인 위상을 선택하도록
    더 구성된, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  18. 제 13 항에 있어서,
    상기 튜닝 커맨드는 CMD19 튜닝 커맨드인, 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한 장치.
  19. 호스트 디바이스에서 메모리 카드를 최적으로 튜닝하기 위한, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 매체는,
    상기 메모리 카드와 관련된 적어도 하나의 튜닝 파라미터를 결정하고;
    상기 메모리 카드로 판독 동작을 개시하며; 및
    상기 적어도 하나의 튜닝 파라미터에 기초하여 튜닝 커맨드를 상기 메모리 카드로 전송하기 위한
    코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  20. 제 19 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터는,
    상기 메모리 카드의 온도;
    마지막 튜닝 시퀀스가 수행된 이래로 경과된 시간;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 데이터 블록들의 수; 또는
    상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수 중 적어도 하나를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  21. 제 20 항에 있어서,
    상기 적어도 하나의 튜닝 파라미터에 기초하여 상기 튜닝 커맨드를 상기 메모리 카드로 전송하기 위한 상기 코드는,
    상기 메모리 카드의 상기 온도의 변화가 미리 결정된 임계 값보다 큰 경우;
    상기 마지막 튜닝 시퀀스가 수행된 이래로 경과된 상기 시간이 최대 시간보다 큰 경우;
    상기 메모리 카드로부터 상기 호스트 디바이스로 전송된 상기 데이터 블록들의 수가 최대 블록 카운트보다 큰 경우; 또는
    미리 정의된 윈도우 상의 상기 메모리 카드와 상기 호스트 디바이스 사이의 트랜잭션들의 수가 미리 결정된 임계 값보다 큰 경우에,
    상기 튜닝 커맨드를 상기 메모리 카드로 전송하도록 구성된, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  22. 제 20 항에 있어서,
    상기 컴퓨터 판독가능 매체는,
    상기 메모리 카드로부터 데이터를 판독하고;
    상기 판독한 데이터와 관련된 순환 리던던시 검사 (CRC) 에러를 검출하며; 및
    상기 CRC 에러를 검출하면 상기 튜닝 커맨드를 상기 메모리 카드로 전송하기 위한
    코드를 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  23. 제 19 항에 있어서,
    상기 메모리 카드와 관련된 상기 적어도 하나의 튜닝 파라미터를 결정하는 것 이전에, 상기 컴퓨터 판독가능 매체는,
    상기 메모리 카드가 울트라 고속 (UHS) 을 지원하는지 결정하고;
    상기 메모리 카드로 상기 튜닝 커맨드를 전송하며; 및
    최적의 지연 라인 위상을 선택하기 위한
    코드를 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  24. 제 19 항에 있어,
    상기 튜닝 커맨드는 CMD19 튜닝 커맨드인, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020157010469A 2012-10-05 2013-10-03 외부 메모리 튜닝 시퀀스의 최적의 사용을 위한 알고리즘 KR20150067214A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261710639P 2012-10-05 2012-10-05
US61/710,639 2012-10-05
US13/672,693 US8972818B2 (en) 2012-10-05 2012-11-08 Algorithm for optimal usage of external memory tuning sequence
US13/672,693 2012-11-08
PCT/US2013/063319 WO2014055794A1 (en) 2012-10-05 2013-10-03 Algorithm for optimal usage of external memory tuning sequence

Publications (1)

Publication Number Publication Date
KR20150067214A true KR20150067214A (ko) 2015-06-17

Family

ID=50433743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010469A KR20150067214A (ko) 2012-10-05 2013-10-03 외부 메모리 튜닝 시퀀스의 최적의 사용을 위한 알고리즘

Country Status (6)

Country Link
US (1) US8972818B2 (ko)
EP (1) EP2904502A1 (ko)
JP (2) JP2015532488A (ko)
KR (1) KR20150067214A (ko)
CN (1) CN104704477B (ko)
WO (1) WO2014055794A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
JP6151976B2 (ja) * 2013-06-10 2017-06-21 キヤノン株式会社 記録再生装置及び制御方法
JP6356970B2 (ja) * 2014-01-17 2018-07-11 キヤノン株式会社 記録装置、及び記録装置の制御方法
JP2015219775A (ja) * 2014-05-19 2015-12-07 キヤノン株式会社 記録装置、撮像装置、記録装置の制御方法、及びプログラム
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
CN107329923B (zh) * 2017-06-26 2020-12-22 南京鼎越信息科技有限公司 一种调整总线时序的方法、存储介质和终端
EP3460666B1 (en) * 2017-09-20 2021-03-10 Shanghai Xiaoyi Technology Co., Ltd. Method, apparatus, and storage medium for optimizing memory card performance
CN107643878B (zh) 2017-09-20 2020-12-15 上海小蚁科技有限公司 Sd卡的性能优化方法及装置、存储介质、终端
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
CN109766133A (zh) * 2018-12-29 2019-05-17 合肥杰发科技有限公司 一种内置嵌入式单元的系统及其初始化方法
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4669040A (en) * 1984-09-19 1987-05-26 Eurotherm Corporation Self-tuning controller
US6643787B1 (en) 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US7694164B2 (en) * 2002-09-20 2010-04-06 Intel Corporation Operating system-independent method and system of determining CPU utilization
JP4451189B2 (ja) * 2004-04-05 2010-04-14 株式会社アドバンテスト 試験装置、位相調整方法、及びメモリコントローラ
JP2006099569A (ja) * 2004-09-30 2006-04-13 Kyocera Mita Corp メモリインタフェース回路及びクロック制御方法
US7650481B2 (en) * 2004-11-24 2010-01-19 Qualcomm Incorporated Dynamic control of memory access speed
CN101416437A (zh) 2006-04-05 2009-04-22 松下电器产业株式会社 可移动存储装置、相位同步方法、相位同步程序、其记录介质及主机终端
JP4823009B2 (ja) 2006-09-29 2011-11-24 株式会社東芝 メモリカード及びホスト機器
US8209504B2 (en) 2007-01-30 2012-06-26 Panasonic Corporation Nonvolatile memory device, nonvolatile memory system, and access device having a variable read and write access rate
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
US9003259B2 (en) 2008-11-26 2015-04-07 Red Hat, Inc. Interleaved parallel redundancy check calculation for memory devices
JP5341503B2 (ja) * 2008-12-26 2013-11-13 株式会社東芝 メモリデバイス、ホストデバイスおよびサンプリングクロックの調整方法
CN102124451A (zh) * 2009-05-27 2011-07-13 松下电器产业株式会社 延迟调整装置以及延迟调整方法
JP2011090361A (ja) * 2009-10-20 2011-05-06 Renesas Electronics Corp 位相キャリブレーション回路、メモリカード制御装置、及び位相キャリブレーション方法
JP2011233042A (ja) * 2010-04-28 2011-11-17 Toshiba Corp キャリブレーション処理制御装置及びキャリブレーション処理制御方法
EP3422191B1 (en) * 2010-07-29 2023-05-10 Renesas Electronics Corporation Semiconductor device and data processing system
TWI483117B (zh) 2010-09-29 2015-05-01 Toshiba Kk 用於執行命令之裝置、主機控制器及用於執行命令之系統
US8594584B2 (en) * 2011-05-16 2013-11-26 Blackberry Limited Method and apparatus for tuning a communication device
CN103021470B (zh) * 2011-09-21 2016-08-03 瑞昱半导体股份有限公司 取样相位校正方法和使用此取样相位校正方法的储存系统

Also Published As

Publication number Publication date
EP2904502A1 (en) 2015-08-12
JP2015532488A (ja) 2015-11-09
US20140101511A1 (en) 2014-04-10
CN104704477B (zh) 2018-09-14
WO2014055794A1 (en) 2014-04-10
CN104704477A (zh) 2015-06-10
JP2018125040A (ja) 2018-08-09
US8972818B2 (en) 2015-03-03

Similar Documents

Publication Publication Date Title
US8972818B2 (en) Algorithm for optimal usage of external memory tuning sequence
CN110096253B (zh) 利用相同的音频输入的设备唤醒和说话者验证
US8504759B2 (en) Method and devices for controlling power loss
KR100897298B1 (ko) 읽기 신호 타이밍을 조정하는 플래시 메모리 장치 및플래시 메모리 장치의 읽기 제어 방법
US20130044844A1 (en) Electronics device capable of efficient communication between components with asyncronous clocks
EP2732374B1 (en) Mobile memory cache read optimization
JP4600518B2 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラム
US9461927B2 (en) Method, device, and system for delaying packets during a network-triggered wake of a computing device
US9495232B2 (en) Error correcting (ECC) memory compatibility
CN110059032B (zh) 存储器接口及具有存储器接口的存储器控制器
US11784756B2 (en) Memory access technology and computer system
US9893912B1 (en) Equalizer adjustment method, adaptive equalizer and memory storage device
US10831657B2 (en) Debug data recovery after PLI event
US9373375B2 (en) Non-volatile memory validity
US9549373B2 (en) Method for waking a data transceiver through data reception
WO2015051633A9 (zh) 一种存储系统的掉电处理方法及系统
US10275166B2 (en) Save critical data upon power loss
US9430307B2 (en) Electronic data processing system performing read-ahead operation with variable sized data, and related method of operation
US9311105B2 (en) Communicating operating system booting information
US20130238877A1 (en) Core system for processing an interrupt and method for transmission of vector register file data therefor
CN109542490B (zh) 硬件辅助固件下载同步方法和装置
KR20080066463A (ko) 멀티미디어 저장장치 및 그 제어방법
JP5093322B2 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラム
CN113330411A (zh) 一种存储控制器和数据搬迁监测方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application