KR20180035815A - 메모리의 주파수 리셋을 위한 시스템들, 방법들 및 장치 - Google Patents

메모리의 주파수 리셋을 위한 시스템들, 방법들 및 장치 Download PDF

Info

Publication number
KR20180035815A
KR20180035815A KR1020187002668A KR20187002668A KR20180035815A KR 20180035815 A KR20180035815 A KR 20180035815A KR 1020187002668 A KR1020187002668 A KR 1020187002668A KR 20187002668 A KR20187002668 A KR 20187002668A KR 20180035815 A KR20180035815 A KR 20180035815A
Authority
KR
South Korea
Prior art keywords
memory
reset
frequency
processor
command
Prior art date
Application number
KR1020187002668A
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 KR20180035815A publication Critical patent/KR20180035815A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Abstract

본 개시내용의 일부 양상들은, 시스템 프로세서와 시스템 메모리 사이의 주파수 불일치를 회피하기 위해 사용될 수 있는, DRAM과 같은 메모리에 대한 셀프-리프레시 엔트리 시퀀스를 포함한다. 셀프-리프레시 엔트리 시퀀스는, 주파수 설정 포인트 상태를 리셋하도록 메모리에 시그널링하고 그리고 셀프-리프레시 프로세스 종료 시에 파워-업 상태로 디폴트할 수 있다. 다른 양상에서, 다음 셀프-리프레시 엔트리 커맨드 이후에 주파수 설정 포인트가 리셋될 필요가 있다고 표시하기 위해 새로운 모드 레지스터가 사용될 수 있다. 이 양상에서, 프로세서는 충돌 이벤트의 출현에 대한 응답으로 모드 레지스터 기록 커맨드 이후에 셀프-리프레시 엔트리를 실행할 것이다. 그런 다음, 메모리는 셀프-리프레시 엔트리 실행의 종료시에 디폴트 주파수 설정 포인트로 리셋할 것이다.

Description

메모리의 주파수 리셋을 위한 시스템들, 방법들 및 장치
[0001] 본 특허출원은, “SYSTEMS, METHODS, AND APPARATUS FOR FREQUENCY RESET OF A MEMORY”란 명칭으로 2015년 7월 31일자로 출원되고, 본 발명의 양수인에게 양도되며, 그 전체가 인용에 의해 명백하게 본원에 포함되는 미국 가출원 제62/199,639호를 우선권으로 주장한다.
[0002] 본 개시내용은 일반적으로 DDR(Double Data Rate) 메모리 시스템들에 관한 것으로, 이에 국한되는 것은 아니지만 더욱 구체적으로는 DRAM(Dynamic Random Access Memory) DDR 시스템들에 관한 것이다.
[0003] (이를테면, 모바일 디바이스 애플리케이션들을 위한) 고속 DRAM은 FSP(Frequency Set Point)들을 사용하여 광범위한 주파수들에서 DRAM IO 핀들을 동작시킨다. 2개의 동작 포인트들(FSP0 및 FSP1)이 제안되어 있는데, SoC(System-on-Chip)는 동작 주파수에 기반하여 이들 둘 중 하나를 사용하여 IO 핀들을 통해 SoC와 DRAM 간의 통신을 제어할 수 있다. 예컨대, FSP0는 0 내지 1GHz의 동작들을 포함할 수 있는 한편, FSP1은 1GHz 내지 2GHz의 동작들을 포함할 수 있다. 이는 다수의 동작 설정들을 가능하게 하는데, 이 동작 설정들 각각은 특정 주파수 대역에 대해 미세-튜닝된다. 현재, FSP들의 표준 동작은 JEDEC JESD209-4 LPDDR4 산업 표준에 따라 정해진다. 파워-업시에, SoC는 종결되지 않은, 저주파수 환경들에서 동작하기 위해 디폴트 설정들을 갖는 FSP0로 디폴트된다. 클록 주파수 스위치 동안 FSP들 간에 트랜스퍼(transfer)하기 위해 특정 FSP 스위치 시퀀스가 요구된다.
[0004] 시스템 메모리로서 DRAM을 사용하는 멀티 코어 프로세서 시스템에서, DRAM은 시스템이 셧 다운되도록 야기하는 치명적인 이벤트(catastrophic event) 시에 충돌 로그(crash log)들을 저장하는 데 종종 사용된다. 이러한 이벤트들은 통상적으로 시스템의 만료된 워치독 타이머(하드웨어 또는 소프트웨어 기반) 또는 리셋 스위치의 수동 적용에 의해 트리거된다. 시스템은 충돌 로그를 DRAM 내부로 플러시 아웃(flush out)하고, 추가 디버깅 조사들을 위해 충돌 로그를 다시 추후에 판독하도록 SoC를 리셋할 필요가 있다. 이러한 시스템 플러시 동안, DRAM은 DRAM 콘텐츠들을 유지하기 위해 SoC 리셋 동안 SR(Self-Refresh) 상태가 된다. SoC가 리셋되면, SoC는 파워-업 상태로 진행되며, 이때 DRAM은 FSP0에 있다고 생각된다. 시스템 충돌은 임의의 주어진 주파수에서 발생했을 수도 있으므로, 이에 따라 DRAM은 FSP0 또는 FSP1에 있을 수 있다. FSP 설정에서 SoC와 DRAM 간의 이러한 불일치(mismatch)는, SoC로 하여금 IO 설정 불일치들(ODT(On Die Termination) 신호들, 드라이버 강도 등)로 인해 DRAM과의 신뢰가능한 통신을 잃도록 야기할 것이다. 이러한 불일치는, DRAM이, 모드 레지스터 기록 커맨드를 사용하여 FSP를 셀프-리프레시 및 리셋하는 것을 막는다. 이러한 이벤트시에, DRAM에 상주하는 충돌 로그들이 손실되는데, 이는 충돌을 야기했던 시스템 이벤트의 디버깅 및 근본 원인 분석에 심각한 영향을 미친다. JEDEC JESD209-4 LPDDR4는 현재 이러한 문제를 처리하기 위한 프로세스를 갖지 않는다.
[0005] 이에 따라, 리셋 이벤트 동안 FSP 불일치를 방지하는데 도움을 주는, 본원에 제공된 개선된 방법들, 시스템, 및 장치를 포함하는, 종래의 접근방식들을 개선시키는 시스템들, 장치, 및 방법들이 필요하다.
[0006] 다음은, 본원에 개시된 장치 및 방법들과 연관된 하나 또는 그 초과의 양상들 및/또는 예들에 관한 간략화된 요약을 제시한다. 따라서, 다음의 요약은 모든 고려된 양상들 및/또는 예들에 관한 광범위한 개관으로서 고려되어서는 안되며, 다음의 요약은 또한 모든 고려된 양상들 및/또는 예들에 관한 주요 또는 중요 엘리먼트들을 식별하거나 또는 임의의 특정 양상 및/또는 예와 연관된 범위를 기술하는 것으로 간주되어서도 안된다. 이에 따라, 다음의 요약의 유일한 목적은 이하에 제시된 상세한 설명에 앞서, 본원에 개시된 장치 및 방법들에 관한 하나 또는 그 초과의 양상들 및/또는 예들에 관한 특정 개념들을 단순화된 형태로 제시하는 것이다.
[0007] 일 양상에서, 제1 메모리의 주파수 리셋을 위한 방법은: 프로세서에 의해, 프로세서가 제1 주파수 설정 포인트에서 동작하고 그리고 제1 메모리가 제1 주파수 설정 포인트에서 동작할 때, 리셋 커맨드를 발행하는 단계; 프로세서에 의해, 제1 메모리에 셀프-리프레시 커맨드를 발행하는 단계 ― 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―; 프로세서를 제2 주파수 설정 포인트로 설정하는 단계; 프로세서에 의해, 제1 메모리를 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 단계; 및 제1 메모리를 제2 주파수 설정 포인트로 설정하는 단계를 포함한다.
[0008] 다른 양상에서, 비-일시적 컴퓨터-판독가능 매체는, 프로세서로 하여금 프로세스를 수행하게 하기 위한 프로그램 명령들을 포함하는데: 프로세스는, 프로세서가 제1 주파수 설정 포인트에서 동작하고 그리고 제1 메모리가 제1 주파수 설정 포인트에서 동작할 때, 리셋 커맨드를 발행하는 것; 제1 메모리에 셀프-리프레시 커맨드를 발행하는 것 ― 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―; 프로세서를 제2 주파수 설정 포인트로 설정하는 것; 제1 메모리를 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 것; 그리고 제1 메모리를 제2 주파수 설정 포인트로 설정하는 것을 포함한다.
[0009] 또 다른 양상에서, 제1 메모리의 리셋 조건들을 체크하기 위한 방법은: 프로세서에 의해, 프로세서가 제1 주파수 설정 포인트에서 동작하고 그리고 제1 메모리가 제1 주파수 설정 포인트에서 동작할 때, 리셋 조건 체크를 개시하는 단계; 마지막 리셋 커맨드 이후로부터 제1 메모리에 의해 수신된 프로세서 커맨드들의 수를 카운팅하는 단계; 마지막 리셋 커맨드가 제1 메모리에 의해 수신된 이후로부터 클록 사이클들의 수를 카운팅하는 단계; 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과하는지 결정하는 단계; 클록 사이클들의 수가 클록 리셋 값을 초과하는지 결정하는 단계; 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과하거나 또는 클록 사이클들의 수가 클록 리셋 값을 초과한다면, 프로세서에 의해 리셋 커맨드를 발행하는 단계 ― 이 리셋 커맨드를 발행 단계는 제1 메모리에 셀프-리프레시 커맨드를 발행하는 단계를 포함하며, 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―; 프로세서를 제2 주파수 설정 포인트로 설정하는 단계; 제1 메모리를 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 단계; 및 제1 메모리를 제2 주파수 설정 포인트로 설정하는 단계를 포함한다.
[0010] 또 다른 양상에서, 비-일시적 컴퓨터-판독가능 매체는, 프로세서로 하여금 프로세스를 수행하게 하기 위한 프로그램 명령들을 포함하는데: 프로세스는, 프로세서가 제1 주파수 설정 포인트에서 동작하고 그리고 제1 메모리가 제1 주파수 설정 포인트에서 동작할 때 리셋 조건 체크를 개시하는 것; 마지막 리셋 커맨드 이후로부터 제1 메모리에 의해 수신된 프로세서 커맨드들의 수를 카운팅하는 것; 마지막 리셋 커맨드가 제1 메모리에 의해 수신된 이후로부터 클록 사이클들의 수를 카운팅하는 것; 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과하는지 결정하는 것; 클록 사이클들의 수가 클록 리셋 값을 초과하는지 결정하는 것; 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과하거나 또는 클록 사이클들의 수가 클록 리셋 값을 초과한다면, 리셋 커맨드를 발행하는 것 ― 이 리셋 커맨드를 발행하는 것은 제1 메모리에 셀프-리프레시 커맨드를 발행하는 것을 포함하며, 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―; 프로세서를 제2 주파수 설정 포인트로 설정하는 것; 제1 메모리를 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 것; 및 제1 메모리를 제2 주파수 설정 포인트로 설정하는 것을 포함한다.
[0011] 또 다른 양상에서, 제1 메모리의 주파수 설정 포인트 리셋을 제어하기 위한 모드 레지스터는: 제1 메모리를 리셋하기 위한 주파수 리셋 조건을 표시하는 주파수 리셋 조건 카운트; 마지막 리셋 커맨드가 제1 메모리에 의해 수신된 이후로부터 제1 메모리에 의해 수신된 프로세서 커맨드들의 수 또는 마지막 리셋 커맨드가 제1 메모리에 의해 수신된 이후로부터 발생했던 클록 사이클들의 수를 표시하는 주파수 리셋 조건; 주파수 리셋 조건이 충족된 시기를 표시하는 주파수 기록 리셋 값; 제1 메모리에 대한 주파수 설정 포인트를 표시하는 주파수 리셋 값; 및 주파수 리셋 조건이 충족되었을 때 제1 메모리가 리셋될지 여부를 표시하는 주파수 리셋 엔트리를 포함한다.
[0012] 본원에 개시된 장치 및 방법들과 연관된 다른 특징들 및 이점들은 첨부된 도면들 및 상세한 설명에 기반하여 당업자들에게 명백할 것이다.
[0013] 본 개시내용의 양상들 및 그에 수반되는 수많은 이점들에 대한 보다 완전한 이해는, 본 개시내용의 한정이 아닌 단지 예시만을 위해 제시된 첨부된 도면들과 관련하여 고려될 때 다음의 상세한 설명을 참조하여 더 잘 이해될 수 있기 때문에 용이하게 획득될 것이다.
[0014] 도 1a는, 본 개시내용의 일부 예들에 따라, 예시적인 부분적인 프로세스 흐름을 도시한다.
[0015] 도 1b는, 본 개시내용의 일부 예들에 따라, 파워 다운 시퀀스를 갖는 예시적인 부분적인 프로세스 흐름을 도시한다.
[0016] 도 2는, 본 개시내용의 일부 예들에 따라, 다른 예시적인 부분적인 프로세스 흐름을 도시한다.
[0017] 도 3a는, 본 개시내용의 일부 예들에 따라, FSP 리셋 시퀀스에 대한 예시적인 상태도를 도시한다.
[0018] 도 3b는, 본 개시내용의 일부 예들에 따라, 파워 다운 시퀀스에 대한 예시적인 상태도를 도시한다.
[0019] 도 4는, 본 개시내용의 일부 예들에 따라, 예시적인 모드 레지스터 엔트리들을 도시한다.
[0020] 도 5는, 본 개시내용의 일부 예들에 따라, 예시적인 UE(user equipment)를 도시한다.
[0021] 도 6은, 본 개시내용의 일부 예들에 따라, 예시적인 프로세서를 도시한다.
[0022] 통상적인 실시에 따라, 도면들에 의해 도시된 피쳐들은 축적대로 그려지지 않을 수 있다. 따라서, 도시된 피쳐들의 치수들은 명확화를 위해 임의로 확장 또는 축소될 수 있다. 통상적인 실시에 따라, 도면들의 일부는 명확화를 위해 간략화된다. 따라서, 도면들은 특정 장치 또는 방법의 모든 컴포넌트들을 도시하는 것은 아닐 수 있다. 또한, 동일한 참조 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 피쳐들을 도시한다.
[0023] 본원에 개시된 예시적인 방법들, 장치, 및 시스템들은, 산업적 요구들뿐만 아니라 다른 이전에 확인되지 않은 요구들을 유리하게 다루며, 종래의 방법들, 장치, 및 시스템들의 단점들을 완화시킨다. 예컨대, 위에서 언급된 주파수 불일치를 회피하기 위해 DRAM에 대한 특수 SR(Self-Refresh) 엔트리 시퀀스가 사용될 수 있다. 이는, SR 종료 프로세스시에 FSP 상태를 리셋하고 그리고 FSP0의 파워-업 상태로 디폴트하도록 DRAM에 시그널링할 것이다. 일 양상에서, 새로운 MR(Mode Register) 기록 커맨드는, FSP가 다음 SR 엔트리 커맨드 이후에 리셋될 필요가 있다고 표시하는 데 사용될 수 있다. 이 양상에서, SoC는 충돌 이벤트의 출현에 대한 응답으로, SR 엔트리 이전에 MR 기록 커맨드를 실행할 것이다. 그런 다음, DRAM은 SR 엔트리 실행의 종료시에 FSP0로 리셋될 것이다. 다른 양상에서, FSP 리셋 요청은 SR 엔트리 커맨드로 인코딩될 수 있다. DRAM은 이 정보를 디코딩할 것이고 SR 엔트리 실행의 종료시에 FSP 리셋을 실행할 것이다. 어느 양상에서든, SoC는 DRAM을 SR 상태에 안전하게 놓을 수 있고 충돌 이벤트 시에 DRAM의 콘텐츠(특히, 충돌 로그들)를 저장할 수 있다. DRAM은 SR 지속기간 동안 FSP0의 파워-업 상태로 유지할 수 있다. SoC 리셋 이후에, 시스템은 DRAM FSP0 상태와 일치하는(matching) 종결되지 않은, 저주파수 IO 설정들로 안전하게 리셋할 수 있다. 그후, SoC는 DRAM 동작 설정들이 FSP0에 있는 SR 종료 커맨드를 실행할 수 있다. 그러한 이유로, SoC 및 DRAM의 FSP 상태들은 항상 일치할 것이다. 이는, DRAM과의 통신을 손실하는 것을 회피할 것이고 그리고 충돌 로그를 안전하게 판독하는 것을 허용할 것이다.
[0024] 도 1a는, 본 개시내용의 일부 예들에 따라, 메모리의 FSP를 리셋하기 위한 예시적인 부분적인 프로세스 흐름을 도시한다. 도 1a에 도시된 바와 같이, 부분적인 프로세스(100)는 시스템에 의해 발행되는 시스템 리셋 커맨드(블록(110))로 시작한다. 이 예에서, 시스템 프로세서(즉, SoC)는 FSP1(first frequency set point)에 있고, 시스템 메모리(즉, DRAM과 같은 메인 메모리)도 또한 FSP1(first frequency set point)에서 동작하며 이때 시스템 리셋 커맨드가 발행된다. 블록(120)에서, 시스템은 메인 메모리에 대한 FSP 리셋 커맨드를 포함하는 시스템 리셋 절차에서 셀프-리프레시 엔트리에 진입할 수 있다(SR 엔트리의 일 예에 대해 도 4 참조). 블록(130)에서, SoC는 SR 상태 엔트리를 제외하고 리셋할 수 있으며, 충돌 로그들은 SoC의 캐시 메모리(즉, 메인 메모리와는 상이한 L2 캐시 메모리 또는 유사한 임시 메모리)에 저장될 수 있다. 블록(140)에서, SoC 메모리 서브-시스템은 FSP0(second frequency set point)에서 초기화될 수 있다. 블록(150)에서, SoC는 시스템 리셋 절차의 셀프-리프레시 부분을 빠져 나갈 것이다. 블록(160)에서, FSP0(second frequency set point)에서 메인 메모리를 구성하기 위해 레지스터 기록 커맨드가 발행될 수 있다. 이는, 메인 메모리를 FSP0로 리셋할 것이다. 블록(170)에서, 시스템은 시스템 캐시 메모리로부터 메인 메모리로 충돌 로그들을 플러시 또는 트랜스퍼할 것이다. 블록(180)에서, 시스템은 디버깅 또는 유사한 루틴을 위해 메인 메모리에 현재 저장된 충돌 로그들에 액세스할 수 있는데, 왜냐하면 SoC 및 메인 메모리 둘 모두가 FSP0에서 모두 동작가능하고 그리고 IO 통신시에 어떠한 주파수 불일치도 존재하지 않기 때문이다. 오직 2개의 FSP들만이 논의되지만, 2개 초과의 FSP들이 시스템에 의해 사용될 수 있음이 이해되어야 한다. 시스템 리셋 커맨드는 수동 리셋 스위치가 토클되거나(toggled) 또는 시스템 충돌이 자동 시스템 리셋 출현을 초래하는 것 이외에도 다수의 상이한 조건들 하에서 발행될 수 있다. 도 2는 시스템 리셋 커맨드가 발행되도록 요구할 수 있는 다른 조건들의 몇몇 예들을 설명한다.
[0025] 도 1b는, 본 개시내용의 일부 예들에 따라, 메모리를 파워 다운하기 위한 예시적인 부분적인 프로세스 흐름을 도시한다. 도 1b에 도시된 바와 같이, 부분적인 프로세스(105)는, 시스템 메모리(즉, DRAM과 같은 메인 메모리) 및 시스템 프로세서(즉, SoC)가 FSP1(first frequency set point)에서 동작하는 것으로 시작한다(블록 115). 블록(125)에서, 시스템 프로세서는 시스템 메모리 셧 다운 및 시스템 리셋이 요구된다고 결정한다. 블록(135)에서, 시스템 프로세서는 시스템 메모리에 파워 다운 커맨드를 전송하고 그리고 시스템 프로세서를 FSP0(second frequency set point)에서 동작하도록 변경한다. 블록(145)에서, 시스템 프로세서는 시스템 메모리의 메모리 재시작이 요구된다고 또는 적절하다고 결정한다. 블록(155)에서, 시스템 프로세서는 FSP0에서 파워 업하기 위해 파워 업 커맨드를 시스템 메모리에 전송한다. 블록(165)에서, 시스템 프로세서는 SR 종료를 실행하고 그리고 정상 메모리 동작을 재개하는데, 왜냐하면 시스템 프로세서 및 시스템 메모리 둘 모두가 FSP0에서 동작가능하고 그리고 IO 통신시에 어떠한 주파수 불일치도 존재하지 않기 때문이다. 오직 2개의 FSP들만이 논의되지만, 2개 초과의 FSP들이 시스템에 의해 사용될 수 있음이 이해되어야 한다. 시스템 메모리가 셧 다운되어 재시작이 요구된다는 결정은, 수동 리셋 스위치가 토글되거나 또는 시스템 충돌이 자동 시스템 리셋 출현을 초래하는 것을 포함하는 다수의 상이한 조건들에 기반할 수 있다.
[0026] 도 2는, 본 개시내용의 일부 예들에 따라, FSP 리셋 시퀀스에 대한 다른 예시적인 부분적인 프로세스 흐름을 도시한다. 도 2에 도시된 바와 같이, 부분적인 프로세스(200)는 블록(210)에서 시작하며, 여기서 SoC 및 메인 메모리 둘 모두는 이 예에서 FSP0 또는 FSP1일 수 있는 동일한 FSP에서 동작한다. 그러나, 시스템에 대한 2개 초과의 FSP들이 존재할 수 있음을 이해해야 한다. 블록(220)에서, 시스템 리셋을 요구할 수 있는 조건들에 대해 체크하기 위해 FSP 리셋 조건 체크가 개시될 수 있다. FSP 리셋 조건 체크의 개시 이후에, 부분적인 프로세스(200)는 2개의 체크들을 수행한다. 블록(230)에서, 시스템은, 예컨대, 카운터를 사용함으로써 다수의 커맨드들이 수신되었는지를 확인하기 위해 체크한다. 블록(240)에서, 시스템은, 특정 이벤트 이전에 다수의 클록 사이클들이 발생했는지(transpired), 예컨대, SoC가 메인 메모리에 액세스한 이후에 다수의 클록 사이클들이 발생했는지 확인하기 위해 체크한다. 블록(250)에서, 시스템은, 블록(230)에서의 체크 또는 블록(240)에서의 체크 중 하나가 FSP 리셋 조건이 충족되었음을 나타내는지를 결정한다. 블록들(230 또는 240)에서의 체크들이, FSP 리셋 조건이 충족되지 않았음을 나타낸다면, 부분적인 프로세스(200)는 블록(210)으로 리턴한다. 블록들(230 또는 240)에서의 체크들이, FSP 리셋 조건이 충족되었음을 나타낸다면, 부분적인 프로세스(200)는 블록(260)으로 이동한다. 블록(260)에서, FSP 리셋 시퀀스, 예컨대, 도 1과 관련하여 설명된 FSP 리셋 시퀀스가 개시된다. 블록(270)에서, 시스템은 FSP 리셋 시퀀스 이후에 유휴 상태(또는 정상 동작)으로 리턴할 수 있다.
[0027] 도 3a는, 본 개시내용의 일부 예들에 따라, FSP 리셋 시퀀스에 대한 예시적인 상태도(300)를 도시한다. 도 3a에 도시된 바와 같이, 시스템은 유휴 상태(310)에서 시작할 수 있다. 유휴 상태(310)에 있는 동안, 셀프-리프레시 엔트리 커맨드(312)(즉, SRE)가 발행되도록 야기하는 FSP 리셋 조건이 발생할 수 있다. 그런 다음, 시스템은 셀프-리프레시 상태(320)로 진입한다. 셀프-리프레시 상태(320)의 엔트리 이후에, 시스템은 자동 FSP 리셋 시퀀스(330)를 수행할 수 있다(예컨대, 도 1a, 도 1b, 도 2 및 도 3b 참조). 자동 FSP 리셋 시퀀스(330)가 종결되면, 셀프-리프레시 상태(320)는 셀프-리프레시 종료 커맨드(314)(즉, SRX)를 발행할 수 있고, 그후 시스템은 유휴 상태(310)로 리턴할 것이다. 그 이후에 모드 레지스터 기록 커맨드(316)(즉, MRW)가 발행될 수 있다. 모드 레지스터 기록 커맨드(316)가 발행될 때, 시스템은 모드 레지스터 기록 상태(340)로 이동한다. 모드 레지스터 기록 상태(340) 동안, 시스템은 시스템 캐시 메모리의 충돌 로그들을 시스템 메인 메모리로 트랜스퍼할 수 있다. 그 후, 시스템은 유휴 상태(310)로 리턴한다.
[0028] 도 3b는, 본 개시내용의 일부 예들에 따라, 파워 다운 시퀀스에 대한 예시적인 상태도(305)를 도시한다. 도 3b에 도시된 바와 같이, 시스템은 유휴 상태(315)에서 시작할 수 있다. 유휴 상태(315)에 있는 동안, 파워 다운 커맨드(313)(즉, CKE=H)가 발행되도록 야기하는 파워 다운 조건이 발생할 수 있다. 그런 다음, 시스템은 파워 다운 상태(325)로 진입한다. 파워 다운 상태(325)의 엔트리 이후에, 시스템은 자동 FSP 리셋 시퀀스(335)를 수행할 수 있다(예컨대, 도 1a, 도 1b, 도 2 및 도 3a 참조). 자동 FSP 리셋 시퀀스(335)가 종결되면, 파워 다운 상태(325)는 파워 다운 종료 커맨드(317)(즉, CKE=L)를 발행할 수 있고, 그후 시스템은 유휴 상태(315)로 리턴할 것이다. 그 이후에 모드 레지스터 기록 커맨드(319)(즉, MRW)가 발행될 수 있다. 모드 레지스터 기록 커맨드(319)가 발행될 때, 시스템은 모드 레지스터 기록 상태(345)로 이동한다. 모드 레지스터 기록 상태(345) 동안, 시스템은 시스템 캐시 메모리의 충돌 로그들을 시스템 메인 메모리로 트랜스퍼할 수 있다. 그 후, 시스템은 유휴 상태(315)로 리턴한다.
[0029] 도 4는, 본 개시내용의 일부 예들에 따라, 예시적인 모드 레지스터 엔트리들을 도시한다. 도 4에 도시된 바와 같이, 모드 레지스터 기록 커맨드(410)는 다수의 엔트리들, 이를테면, FSP 리셋 조건 카운트(412), FSP 리셋 조건(414), FSP 기록 리셋 값(416), FSP 동작 리셋 값(418), 및 FSP 리셋 엔트리(420)를 포함할 수 있다. 5개의 엔트리들만이 이 예에 도시되지만, 5개 보다 많거나 적은 엔트리들이 사용될 수 있다는 점이 이해되어야 한다. FSP 리셋 조건 카운트(412)는 피연산자 3(OP[3])의 조건에 따라 유효 커맨드 또는 클록 사이클 카운팅을 위한 데이터를 포함하는 피연산자 4-7(OP[4-7])을 활용할 수 있다. FSP 리셋 조건(414)은, FSP 리셋(OP[3]=0) 이전의 모드 레지스터 기록 커맨드 이후의 특정 수의 유효 커맨드들 또는 FSP 리셋(OP[3]=1) 이전의 모드 레지스터 기록 커맨드 이후의 특정 수의 클록 사이클들로서 리셋 조건들을 표시하는 데이터를 포함하는 피연산자 3(OP[3])을 활용할 수 있다. FSP 기록 리셋 값(416)은, 리셋 조건들이 충족될 때 FSP 기록 리셋을 0으로 표시하거나(OP[2]=0) 또는 리셋 조건들이 충족될 때 FSP 기록 리셋을 1로 표시하는(OP[2]=1) 데이터를 포함하는 피연산자 2(OP[2])를 활용할 수 있다. FSP 동작 리셋 값(418)은, 리셋 조건들이 충족될 때 FSP 리셋을 0으로 표시하거나(OP[1]=0) 또는 리셋 조건들이 충족될 때 FSP 리셋을 1로 표시하는(OP[1]=1) 데이터를 포함하는 피연산자 1(OP[1])을 활용할 수 있다. FSP 리셋 엔트리(420)는, 리셋 조건들이 충족되지 않을 때 어떠한 FSP 리셋도 표시하지 않거나(OP[0]=0) 또는 리셋 조건들이 충족될 때 FSP 리셋을 표시하는(OP[0]=1) 데이터를 포함하는 피연산자 0(OP[0])을 활용할 수 있다.
[0030] 이 설명에서, 특정 용어가 특정 특징들을 설명하기 위해 사용된다. 용어 “모바일 디바이스”는 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 모바일 디바이스, 모바일 폰, 스마트폰, 개인 휴대 정보 단말기, 고정 위치 단말기, 태블릿 컴퓨터, 컴퓨터, 웨어러블 디바이스, 랩탑 컴퓨터, 서버, 자동차의 자동 디바이스, 및/또는 사람에 의해 통상적으로 휴대되고 그리고/또는 통신 성능들(예컨대, 무선, 셀룰러, 적외선, 단거리 라디오 등)을 갖는 다양한 유형들의 휴대용 전자 디바이스들을 설명할 수 있지만, 이에 제한되지 않는다. 또한, 용어들 “사용자 장비(UE)”, “모바일 단말”, “모바일 디바이스”, 및 “무선 디바이스”는 상호교환가능할 수 있다.
[0031] 위의 예들에 따른 프로세스들, 상태들 및 커맨드들(예컨대, 프로세스(100), 프로세스(105), 프로세스(200), 상태도(300), 상태도(305) 및 모드 레지스터 기록 커맨드(410))은, 다수의 상이한 애플리케이션들에 대해, 이를테면, 모바일 디바이스의 회로 컴포넌트들에 사용될 수 있다. 예로서 도 5를 참조하면, UE(500)(여기서는, 무선 디바이스)는, 궁극적으로 코어 네트워크, 인터넷 및/또는 다른 원격의 서버들 및 네트워크들로부터 기원될 수 있는 RAN(radio access network)으로부터 송신된 소프트웨어 애플리케이션들, 데이터 및/또는 커맨드들을 수신 및 실행할 수 있는 플랫폼(502)을 갖는다. 플랫폼(502)은 ASIC(application specific integrated circuit)(508), 또는 다른 프로세서, 마이크로프로세서, 로직 회로, 또는 다른 데이터 프로세싱 디바이스, 이를테면, SoC에 동작가능하게 커플링된 트랜시버(506)를 포함할 수 있다. ASIC(508) 또는 다른 프로세서는, 무선 디바이스의 메모리(512)(즉, 위에 설명된 메인 메모리)의 임의의 상주 프로그램들과 인터페이싱하는 API(application programming interface)(510) 계층을 실행한다. 메모리(512)는 컴퓨터 플랫폼들에 공통인 랜덤-액세스 메모리(DRAM) 또는 임의의 유사한 메모리로 구성될 수 있다. 플랫폼(502)은 또한 메모리(512)에서 활동적으로 사용되지 않는 애플리케이션들을 홀딩할 수 있는 로컬 데이터베이스(514)를 포함할 수 있다. 로컬 데이터베이스(514)는 통상적으로 플래시 메모리 셀이지만, 당업계에서 알려진 것과 같은 임의의 보조 저장 디바이스, 이를테면, 자기 매체, EEPROM, 광학 매체, 테이프, 소프트 또는 하드 디스크 등일 수 있다. 플랫폼(502)의 내부 컴포넌트들은 또한, 당업계에 알려진 바와 같이, 외부 디바이스들, 이를테면, 다른 컴포넌트들 중에서 안테나(522), 디스플레이(524), 푸시-투-토크 버튼(528) 및 키패드(526)에 동작가능하게 커플링될 수 있다.
[0032] UE(500)과 RAN 사이의 무선 통신은, 상이한 기술들, 이를테면, CDMA(code division multiple access), W-CDMA, TDMA(time division multiple access), FDMA(frequency division multiple access), OFDM(Orthogonal Frequency Division Multiplexing), GSM(Global System for Mobile Communications), 3GPP LTE(Long Term Evolution) 또는 무선 통신 네트워크 또는 데이터 통신 네트워크에 사용될 수 있는 다른 프로토콜들에 기반할 수 있다.
[0033] 도 6은 예시적인 프로세서(10), 이를테면, 위에 설명된 ASIC(508) 또는 SoC의 기능 블록도를 도시한다. 프로세서(10)는 제어 로직(14)에 따라 명령 실행 파이프라인(12)에서 명령들을 실행한다. 제어 로직(14)은, 예컨대, 현재 명령 세트 동작 모드, 산술 연산들 및 논리 비교들(제로, 자리올림(carry), 동일, 비동일)의 결과들에 관한 정보 등을 표시하기 위해 하나 또는 그 초과의 상태 레지스터들(16) 내에서 비트들을 설정하고 클리어한다. 일부 예들에서, 명령 실행 파이프라인(12)은 다수의 병렬 파이프라인들을 갖는 수퍼스칼라 설계일 수 있다. 명령 실행 파이프라인(12)은 또한 실행 유닛으로 지칭될 수 있다. GPR(General Purpose Register) 파일(20)은, 파이프라인(12)에 의해 액세스가능하고 그리고 메모리 계층의 최상부를 포함하는 범용 레지스터(24)의 리스트를 제공한다. 범용 레지스터들(24) 중 하나는, 마지막 리셋 커맨드가 메모리에 의해 수신된 이후로부터 클록 사이클들의 수를 카운팅하기 위해 클록 사이클 카운터로서 구성될 수 있고, 범용 레지스터들(24) 중 다른 하나는 마지막 리셋 커맨드 이후로부터 메모리에 의해 수신된 프로세서 커맨드들의 수를 카운팅하기 위해 프로세서 커맨드 카운터로서 구성될 수 있다. 예컨대, 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과한다고 결정된다면 또는 클록 사이클들의 수가 클록 리셋 값을 초과한다면, 프로세서(10)는 새로운 리셋 커맨드를 발행할 수 있다. 클록 카운터 및 프로세서 커맨드 카운터는 또한 상이한 레지스터 또는 메모리 컴포넌트, 이를테면, 데이터 캐시(D-cache)(30)일 수 있다.
[0034] 상이한 명령 세트 동작 모드들에서 적어도 2개의 명령 세트들로부터 명령들을 실행하는 프로세서(10)는 부가적으로, 각각의 명령의 실행시에 적어도 미리결정된 타겟 명령 세트 동작 모드를 현재 명령 세트 동작 모드와 비교하고, 그리고 위의 도 1a 내지 도 5의 예들에서 설명된 것과 같은 두 동작 모드 간의 일치의 표시를 제공하기 위해 동작가능한 디버그 회로(18)를 포함한다.
[0035] 파이프라인(12)은 명령 캐시(I-캐시)(26)로부터 명령들을 페치하고, 메모리 어드레스 변환 및 허가들은 ITLB(Instruction-side Translation Lookaside Buffer)(28)에 의해 관리된다. 데이터는 (이를테면, 충돌 로그들을 일시적으로 저장할 수 있는)D-캐시(30)로부터 액세스되고, 메모리 어드레스 변환 및 허가들은 메인 TLB(Translation Lookaside Buffer)(32)에 의해 관리된다. 다양한 예들에서, ITLB(28)는 TLB(32)의 일부의 카피를 포함할 수 있다. 대안적으로, ITLB(28) 및 TLB(32)는 통합될 수 있다. 유사하게, 프로세서(10)의 다양한 예들에서, I-캐시(26) 및 D-캐시(30)는 통합되거나(integrated), 또는 단일화될(unified) 수 있다. 또한, I-캐시(26) 및 D-캐시(30)는 L1 캐시들일 수 있다. I-캐시(26) 및/또는 D-캐시(30)에서의 누락(miss)들은, 메모리 인터페이스(34)에 의해 메인(오프-칩) 메모리(38, 40)로의 액세스를 야기한다. 메인 메모리(38)는 메인 메모리(38)에 대한 현재의 FSP를 저장하도록 구성가능한 제1 모드 레지스터(39)를 포함할 수 있고, 메인 메모리(40)는 또한 메인 메모리(40)에 대한 현재의 FSP를 저장하도록 구성가능한 제2 모드 레지스터(41)를 포함할 수 있다. 메모리 인터페이스(34)는, 본 개시내용의 일부 예들에 따라 개선된 FSP 프로세스들을 통합할 수 있는, 하나 또는 그 초과의 메인 메모리들(38, 40)에 대한 공유 버스를 구현하는 버스 인터커넥트(42)로의 마스터 입력일 수 있다. 부가적으로, 부가적인 마스터 디바이스들(미도시)은 버스 인터커넥트(42)에 연결할 수 있다.
[0036] 프로세서(10)는, 주변 버스(peripheral bus) 상의 마스터 디바이스일 수 있는 I/O(input/output) 인터페이스(44)를 포함할 수 있고, 이 주변 버스에 걸쳐 I/O 인터페이스(44)는 버스(46)를 통해 다양한 주변 디바이스들(48, 50)에 액세스할 수 있다. 당업자들은, 프로세서(10)의 다양한 변형들이 가능하다는 점을 인식할 것이다. 예컨대, 프로세서(10)는 I 및 D 캐시들(26, 30) 중 하나 또는 둘 모두에 대한 제2 레벨(L2) 캐시를 포함할 수 있다. 이에 더해, 프로세서(10)에 도시된 기능 블록들 중 하나 또는 그 초과는 특정 예에서 생략될 수 있다. 프로세서(10) 내에 상주할 수 있는 다른 기능 블록들, 이를테면, JTAG 제어기, 명령 사전-디코더, 브랜치 타겟 어드레스 캐시 등은 본 개시내용의 설명에 적절하지 않으며, 명료함을 위해 생략된다.
[0037] 단어 “예시적인”은, “예, 예시, 또는 예증으로서 기능하는 것”을 의미하도록 본원에서 사용된다. “예시적인” 것으로서 본원에 설명된 임의의 세부사항들이 다른 예들에 비해 반드시 바람직하거나 유리한 것으로서 해석될 필요는 없다. 마찬가지로, 용어 “예들”은, 모든 예들이 논의된 특징, 이점 또는 동작 모드를 포함하도록 요구하지는 않는다. 이 명세서에서 용어들 “일 예에서”, “일 예”, “일 특징에서” 및/또는 “일 특징”의 사용은 동일한 특징 및/또는 예를 반드시 지칭하는 것은 아니다. 게다가, 특정 특징 및/또는 구조는 하나 또는 그 초과의 다른 특징들 및/또는 구조들과 결합될 수 있다. 게다가, 여기에 설명된 장치의 적어도 일부는 여기에 설명된 방법의 적어도 일부를 수행하도록 구성될 수 있다.
[0038] 본원에 사용되는 용어는, 오직 특정 예들만을 설명하기 위한 목적이며, 본 개시내용의 예들을 제한하는 것으로 의도되지 않는다. 본원에 사용되는 것과 같은 단수 형태들은, 문맥이 달리 명료하게 나타내지 않는 한, 복수 형태들도 또한 포함하는 것으로 의도된다. 또한, 용어들 “포함하다(comprises)”, “포함하는(comprising)”, “구비하다(includes)” 및/또는 “구비하는(including”)은, 본 명세서에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 그 그룹들의 존재 또는 부가를 배제하지 않는다는 점이 이해될 것이다.
[0039] 용어들 “연결된(connected)”, “커플링된(coupled)” 또는 이들의 임의의 변형은, 엘리먼트들 사이에서의 직접 또는 간접적인 임의의 연결 또는 커플링을 의미하고, 그리고 중간 엘리먼트를 통해 함께 “연결된” 또는 “커플링된” 2개의 엘리먼트들 사이에 그러한 중간 엘리먼트의 존재를 포괄할 수 있다는 점에 유의해야 한다.
[0040] “제1”, “제 2” 등과 같은 지정을 사용하는 엘리먼트에 대한 본원에서의 임의의 참조는, 그 엘리먼트들의 양 및/또는 순서를 제한하지 않는다. 오히려, 이들 지정들은, 2개 또는 그 초과의 엘리먼트들 및/또는 엘리먼트의 인스턴스들 사이를 구별하는 편리한 방법으로서 사용된다. 따라서, 제1 엘리먼트 및 제 2 엘리먼트에 대한 참조는, 오직 2개의 엘리먼트들만이 채용될 수 있거나 또는 제1 엘리먼트가 제 2 엘리먼트에 반드시 선행해야만 하는 것을 의미하지는 않는다. 또한, 달리 언급하지 않으면, 엘리먼트들의 세트는 하나 또는 그 초과의 엘리먼트들을 포함할 수 있다.
[0041] 게다가, 많은 예들이, 예컨대, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 액션들의 시퀀스들과 관련하여 설명된다. 본 명세서에 설명된 다양한 액션들은, 특정 회로들(예컨대, ASIC(application specific integrated circuit)들)에 의해, 하나 또는 그 초과의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 이 둘의 조합에 의해 수행될 수 있다는 점이 인식될 것이다. 추가적으로, 본 명세서에 설명된 이러한 시퀀스의 액션들은 실행시에 본 명세서에 설명된 기능성을 관련 프로세서로 하여금 수행하게 할 수 있는 대응 세트의 컴퓨터 명령들이 저장된 임의의 형태의 컴퓨터 판독가능 저장 매체(예컨대, 비-일시적) 내에서 완전하게 구현되는 것으로 고려될 수 있다. 따라서, 본 개시내용의 다양한 양상들은 수많은 상이한 형태들로 구현될 수 있으며, 이들 모두는 청구된 청구물의 범위 내에 있는 것으로 고찰되었다. 이에 더해, 본 명세서에 설명된 예들 각각의 경우, 대응 형태의 임의의 이러한 예들은, 예컨대, 설명된 액션을 수행하도록 “구성된 로직”으로서 본원에서 설명될 수 있다.
[0042] 본 출원에서 언급되거나 또는 예시되어 설명된 어느 것도, 임의의 컴포넌트, 단계, 특징, 이점, 장점 또는 등가물이 청구항들에서 언급되는지 여부와 상관없이, 그러한 컴포넌트, 단계, 특징, 이점, 장점 또는 등가물이 대중에게 전용되도록 의도되지 않는다.
[0043] 또한, 당업자들은, 본원에 개시된 예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수도 있음을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능 관점들에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션, 및 전체 시스템에 부과된 설계 제약들에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수도 있지만, 그러한 구현 결정들이 본 개시내용의 범위를 벗어나게 하는 것으로서 해석되지는 않아야 한다.
[0044] 본 명세서에 개시된 예들과 관련하여 설명된 방법들, 시퀀스들, 및/또는 알고리즘들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기입할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다.
[0045] 본 명세서에 기재된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합(예를 들어 DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 그러한 구성)으로서 구현될 수도 있다.
[0046] 일부 양상들이 디바이스의 맥락에서 설명되었지만, 이들 양상들이 또한 대응하는 방법에 대한 설명을 구성하고, 이에 따라 디바이스의 블록 또는 컴포넌트가 또한 대응하는 방법 단계로서 또는 방법 단계의 특징으로서 이해되어야 함은 말할 필요도 없다. 이와 유사하게, 방법 단계와 관련하여 또는 방법 단계로서 설명된 양상들은 또한, 대응하는 디바이스의 대응하는 블록 또는 세부사항 또는 특징의 설명을 구성한다. 방법 단계들 중 일부 또는 전체는, 예컨대, 마이크로프로세서, 프로그래밍가능 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 하드웨어 장치를 사용함으로써) 수행될 수 있다. 일부 예들에서, 몇몇 또는 복수의 가장 중요한 방법 단계들은 그러한 장치에 의해 수행될 수 있다.
[0047] 위의 상세한 설명에서, 상이한 특징들은 예들에서 함께 그룹화됨을 알 수 있다. 본 개시내용의 이러한 방식은, 청구된 예들이 개개의 청구항에서 명시적으로 언급된 것보다 더 많은 특징들을 요구한다는 의도로 이해되어서는 안된다. 오히려, 발명의 내용이, 개시된 개별적인 예의 모든 특징들보다 더 적게 존재할 수 있는 상황이다. 그러므로, 이하의 청구항들은 이에 의해 본 명세서에 통합되는 것으로 간주되어야 하며, 여기서 각각의 청구항 그 자체는 별도의 예가 될 수 있다. 각각의 청구항은 그 자체로 별도의 예가 될 수 있지만(비록 종속항이 청구항들에서 하나의 또는 복수의 청구항들과의 특정 조합을 나타낼 수 있지만), 다른 예들은 또한 상기 종속항 및 임의의 다른 종속항의 청구 대상의 조합 또는 다른 종속항들과 독립항들과의 임의의 특징의 조합을 포괄하거나 또는 포함할 수 있다는 점에 유의해야 한다. 특정 조합이 의도되지 않는다고 명시적으로 표시되지 않는 한, 이러한 조합들이 본원에 제안된다. 게다가, 상기 청구항이 독립항에 대해 직접적으로 종속하지 않는다고 하더라도, 청구항의 특징들은 임의의 다른 독립항에 포함될 수 있다는 점이 또한 의도된다.
[0048] 게다가, 상세한 설명에서 또는 청구항들에서 개시된 방법들이 이 방법의 개개의 단계들 또는 동작들을 수행하기 위한 수단들을 포함하는 디바이스에 의해 구현될 수 있다는 점에 유의해야 한다.
[0049] 게다가, 일부 예들에서, 개별적인 단계/동작은 복수의 서브-단계들로 세분될 수 있거나, 또는 복수의 서브-단계들을 포함할 수 있다. 이러한 서브-단계들은, 개별적인 단계의 개시내용에 포함될 수 있고, 개별적인 단계의 개시내용의 일부일 수 있다.
[0050] 전술한 개시내용이 본 개시내용의 예시적인 예들을 제시하지만, 다양한 변화들 및 변형들이 첨부된 청구항들에 의해 정의된 본 개시내용의 범위에서 벗어나지 않으면서 본 명세서에서 행해질 수 있다는 점에 유의해야 한다. 본원에 설명된 개시내용의 예들에 따른 방법 청구항들의 기능들, 단계들 및/또는 동작들이 임의의 특정 순서로 수행될 필요는 없다. 추가적으로, 본원에 개시된 양상들 및 예들의 관련 세부사항들을 모호하게 하지 않기 위해, 잘-알려진 엘리먼트들은 상세하게 설명되지 않거나 또는 생략될 수 있다. 또한, 본 개시내용의 엘리먼트들이 단수로 설명 또는 청구될 수도 있지만, 단수에 대한 제한이 명시적으로 언급되지 않는 한, 복수가 고려된다.

Claims (20)

  1. 제1 메모리의 주파수 리셋을 위한 방법으로서,
    프로세서에 의해, 상기 프로세서가 제1 주파수 설정 포인트에서 동작하고 상기 제1 메모리가 상기 제1 주파수 설정 포인트에서 동작할 때, 리셋 커맨드를 발행하는 단계;
    상기 프로세서에 의해, 상기 제1 메모리에 셀프-리프레시 커맨드를 발행하는 단계 ― 상기 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―;
    상기 프로세서를 제2 주파수 설정 포인트로 설정하는 단계;
    상기 프로세서에 의해, 상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 단계; 및
    상기 제1 메모리를 제2 주파수 설정 포인트로 설정하는 단계를 포함하는,
    제1 메모리의 주파수 리셋을 위한 방법.
  2. 제1 항에 있어서,
    상기 프로세서를 상기 제2 주파수 설정 포인트로 설정하기 전에 제2 메모리에 충돌 로그(crash log)를 저장하는 단계를 더 포함하는,
    제1 메모리의 주파수 리셋을 위한 방법.
  3. 제2 항에 있어서,
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정한 후에 상기 제1 메모리에 충돌 로그를 저장하는 단계를 더 포함하는,
    제1 메모리의 주파수 리셋을 위한 방법.
  4. 제1 항에 있어서,
    상기 제1 메모리는, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 모바일 디바이스, 모바일 폰, 스마트폰, 개인 휴대 정보 단말기, 고정 위치 단말기, 태블릿 컴퓨터, 컴퓨터, 웨어러블 디바이스, 랩탑 컴퓨터, 서버, 및 자동차(automotive vehicle) 내의 자동 디바이스(automotive device)를 포함하는 그룹으로부터 선택된 디바이스에 통합되며, 상기 디바이스를 더 포함하는,
    제1 메모리의 주파수 리셋을 위한 방법.
  5. 비-일시적 컴퓨터-판독가능 저장 매체로서,
    프로세서로 하여금,
    상기 프로세서가 제1 주파수 설정 포인트에서 동작하고 상기 제1 메모리가 상기 제1 주파수 설정 포인트에서 동작할 때, 리셋 커맨드를 발행하는 것;
    상기 제1 메모리에 셀프-리프레시 커맨드를 발행하는 것 ― 상기 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―;
    상기 프로세서를 제2 주파수 설정 포인트로 설정하는 것;
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 것; 그리고
    상기 제1 메모리를 제2 주파수 설정 포인트로 설정하는 것
    을 포함하는 프로세스를 수행하게 하기 위한 프로그램 명령들을 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  6. 제5 항에 있어서,
    상기 프로세서를 상기 제2 주파수 설정 포인트로 설정하기 전에 제2 메모리에 충돌 로그를 저장하는 것을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  7. 제6 항에 있어서,
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정한 후에 상기 제1 메모리에 상기 충돌 로그를 저장하는 것을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  8. 제1 메모리의 리셋 조건들을 체크하기 위한 방법으로서,
    프로세서에 의해, 상기 프로세서가 제1 주파수 설정 포인트에서 동작하고 상기 제1 메모리가 상기 제1 주파수 설정 포인트에서 동작할 때, 리셋 조건 체크를 개시하는 단계;
    마지막 리셋 커맨드 이후로부터 상기 제1 메모리에 의해 수신된 프로세서 커맨드들의 수를 카운팅하는 단계;
    상기 마지막 리셋 커맨드가 상기 제1 메모리에 의해 수신된 이후로부터 클록 사이클들의 수를 카운팅하는 단계;
    상기 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과하는지를 결정하는 단계;
    상기 클록 사이클들의 수가 클록 리셋 값을 초과하는지를 결정하는 단계;
    상기 프로세서 커맨드들의 수가 상기 커맨드 리셋 값을 초과하거나 또는 상기 클록 사이클들의 수가 상기 클록 리셋 값을 초과한다면, 상기 프로세서에 의해 리셋 커맨드를 발행하는 단계 ― 상기 발행하는 단계는 상기 제1 메모리에 셀프-리프레시 커맨드를 발행하는 단계를 포함하며, 상기 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―;
    상기 프로세서를 제2 주파수 설정 포인트로 설정하는 단계;
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 단계; 및
    상기 제1 메모리를 제2 주파수 설정 포인트로 설정하는 단계를 포함하는,
    제1 메모리의 리셋 조건들을 체크하기 위한 방법.
  9. 제8 항에 있어서,
    상기 프로세서를 상기 제2 주파수 설정 포인트로 설정하기 전에 제2 메모리에 상기 충돌 로그를 저장하는 단계를 더 포함하는,
    제1 메모리의 리셋 조건들을 체크하기 위한 방법.
  10. 제9 항에 있어서,
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정한 후에 상기 제1 메모리에 충돌 로그를 저장하는 단계를 더 포함하는,
    제1 메모리의 리셋 조건들을 체크하기 위한 방법.
  11. 제8 항에 있어서,
    상기 제1 메모리는, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 모바일 디바이스, 모바일 폰, 스마트폰, 개인 휴대 정보 단말기, 고정 위치 단말기, 태블릿 컴퓨터, 컴퓨터, 웨어러블 디바이스, 랩탑 컴퓨터, 서버, 및 자동차 내의 자동 디바이스를 포함하는 그룹으로부터 선택된 디바이스에 통합되며, 상기 디바이스를 더 포함하는,
    제1 메모리의 리셋 조건들을 체크하기 위한 방법.
  12. 비-일시적 컴퓨터-판독가능 저장 매체로서,
    프로세서로 하여금,
    상기 프로세서가 제1 주파수 설정 포인트에서 동작하고 상기 제1 메모리가 상기 제1 주파수 설정 포인트에서 동작할 때, 리셋 조건 체크를 개시하는 것;
    마지막 리셋 커맨드 이후로부터 상기 제1 메모리에 의해 수신된 프로세서 커맨드들의 수를 카운팅하는 것;
    상기 마지막 리셋 커맨드가 상기 제1 메모리에 의해 수신된 이후로부터 클록 사이클들의 수를 카운팅하는 것;
    상기 프로세서 커맨드들의 수가 커맨드 리셋 값을 초과하는지를 결정하는 것;
    상기 클록 사이클들의 수가 클록 리셋 값을 초과하는지를 결정하는 것;
    상기 프로세서 커맨드들의 수가 상기 커맨드 리셋 값을 초과하거나 또는 상기 클록 사이클들의 수가 상기 클록 리셋 값을 초과한다면, 리셋 커맨드를 발행하게 하는 것 ― 상기 리셋 커맨드를 발행하는 것은 상기 제1 메모리에 셀프-리프레시 커맨드를 발행하는 것을 포함하며, 상기 셀프-리프레시 커맨드는 주파수 리셋 엔트리를 포함함 ―;
    상기 프로세서를 제2 주파수 설정 포인트로 설정하는 것;
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정하기 위해 레지스터 기록 커맨드를 발행하는 것; 및
    상기 제1 메모리를 제2 주파수 설정 포인트로 설정하는 것
    을 포함하는 프로세스를 수행하게 하기 위한 프로그램 명령들을 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  13. 제12 항에 있어서,
    상기 프로세서를 상기 제2 주파수 설정 포인트로 설정하기 전에 제2 메모리에 충돌 로그를 저장하는 것을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  14. 제13 항에 있어서,
    상기 제1 메모리를 상기 제2 주파수 설정 포인트로 설정한 후에 상기 제1 메모리에 상기 충돌 로그를 저장하는 것을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  15. 제1 메모리의 주파수 설정 포인트 리셋을 제어하기 위한 모드 레지스터로서,
    상기 제1 메모리를 리셋하기 위한 주파수 리셋 조건을 표시하는 주파수 리셋 조건 카운트;
    마지막 리셋 커맨드가 상기 제1 메모리에 의해 수신된 이후로부터 상기 제1 메모리에 의해 수신된 프로세서 커맨드들의 수 또는 상기 마지막 리셋 커맨드가 상기 제1 메모리에 의해 수신된 이후로부터 발생했던 클록 사이클들의 수를 표시하는 주파수 리셋 조건;
    상기 주파수 리셋 조건이 충족된 시기를 표시하는 주파수 기록 리셋 값;
    상기 제1 메모리에 대한 주파수 설정 포인트를 표시하는 주파수 리셋 값; 및
    상기 주파수 리셋 조건이 충족되었을 때 상기 제1 메모리가 리셋될지 여부를 표시하는 주파수 리셋 엔트리를 포함하는,
    모드 레지스터.
  16. 제15 항에 있어서,
    상기 주파수 리셋 조건 카운트는 복수의 피연산자 조건들을 포함하는,
    모드 레지스터.
  17. 제16 항에 있어서,
    상기 모드 레지스터는 상기 제1 메모리에 통합되는,
    모드 레지스터.
  18. 제17 항에 있어서,
    상기 주파수 리셋 조건 카운트는 상기 프로세서에 의해 업데이트되는,
    모드 레지스터.
  19. 제18 항에 있어서,
    상기 모드 레지스터는 충돌 로그를 저장하도록 구성된 제2 메모리에 연결되는,
    모드 레지스터.
  20. 제19 항에 있어서,
    상기 제1 메모리는, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 모바일 디바이스, 모바일 폰, 스마트폰, 개인 휴대 정보 단말기, 고정 위치 단말기, 태블릿 컴퓨터, 컴퓨터, 웨어러블 디바이스, 랩탑 컴퓨터, 서버, 및 자동차 내의 자동 디바이스를 포함하는 그룹으로부터 선택된 디바이스에 통합되며, 상기 디바이스를 더 포함하는,
    모드 레지스터.
KR1020187002668A 2015-07-31 2016-06-02 메모리의 주파수 리셋을 위한 시스템들, 방법들 및 장치 KR20180035815A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562199639P 2015-07-31 2015-07-31
US62/199,639 2015-07-31
US15/170,742 US10331526B2 (en) 2015-07-31 2016-06-01 Systems, methods, and apparatus for frequency reset of a memory
US15/170,742 2016-06-01
PCT/US2016/035520 WO2017023408A1 (en) 2015-07-31 2016-06-02 Systems, methods, and apparatus for frequency reset of a memory

Publications (1)

Publication Number Publication Date
KR20180035815A true KR20180035815A (ko) 2018-04-06

Family

ID=57883569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187002668A KR20180035815A (ko) 2015-07-31 2016-06-02 메모리의 주파수 리셋을 위한 시스템들, 방법들 및 장치

Country Status (9)

Country Link
US (1) US10331526B2 (ko)
EP (1) EP3304325B1 (ko)
JP (1) JP2018528510A (ko)
KR (1) KR20180035815A (ko)
CN (1) CN107851075A (ko)
BR (1) BR112018002030A2 (ko)
CA (1) CA2989298A1 (ko)
TW (1) TW201712681A (ko)
WO (1) WO2017023408A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9978437B2 (en) 2015-12-11 2018-05-22 Micron Technology, Inc. Apparatuses and methods for dynamic voltage and frequency switching for dynamic random access memory
US10599206B2 (en) * 2017-06-02 2020-03-24 Intel Corporation Techniques to change a mode of operation for a memory device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5229970A (en) * 1991-04-15 1993-07-20 Micron Technology, Inc. Circuit for synchronizing refresh cycles in self-refreshing drams having timing circuit shutdown
US5446695A (en) * 1994-03-22 1995-08-29 International Business Machines Corporation Memory device with programmable self-refreshing and testing methods therefore
KR100276386B1 (ko) * 1997-12-06 2001-01-15 윤종용 반도체메모리장치의리프레시방법및회로
US7088633B2 (en) * 2004-05-27 2006-08-08 Qualcomm Incorporated Method and system for providing seamless self-refresh for directed bank refresh in volatile memories
US8593470B2 (en) * 2005-02-24 2013-11-26 Ati Technologies Ulc Dynamic memory clock switching circuit and method for adjusting power consumption
US7639764B2 (en) * 2005-08-17 2009-12-29 Atmel Corporation Method and apparatus for synchronizing data between different clock domains in a memory controller
US7369451B2 (en) * 2005-10-31 2008-05-06 Mosaid Technologies Incorporated Dynamic random access memory device and method for self-refreshing memory cells
JP4967561B2 (ja) * 2006-09-20 2012-07-04 富士通株式会社 移動通信端末、移動通信システム、基地局及び通信方法
US8069327B2 (en) * 2006-12-28 2011-11-29 Intel Corporation Commands scheduled for frequency mismatch bubbles
US7624310B2 (en) * 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US20090024916A1 (en) * 2007-07-20 2009-01-22 Burckart Erik J Seamless Asynchronous Updates of Dynamic Content
US8275945B2 (en) * 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US7969807B2 (en) * 2008-03-05 2011-06-28 Qimonda Ag Memory that retains data when switching partial array self refresh settings
US8161356B2 (en) * 2008-03-28 2012-04-17 Intel Corporation Systems, methods, and apparatuses to save memory self-refresh power
JP4517312B2 (ja) * 2008-07-08 2010-08-04 ソニー株式会社 メモリアクセス制御装置および撮像装置
CN102402454B (zh) * 2010-09-10 2013-10-02 联想(北京)有限公司 一种调节内存运行频率的方法及电子设备
JP5879367B2 (ja) * 2011-12-29 2016-03-08 ルネサスエレクトロニクス株式会社 半導体装置
JP2014019354A (ja) * 2012-07-20 2014-02-03 Toyota Motor Corp ハイブリッド自動車
US9704557B2 (en) * 2013-09-25 2017-07-11 Qualcomm Incorporated Method and apparatus for storing retention time profile information based on retention time and temperature
KR102216559B1 (ko) * 2013-12-09 2021-02-17 삼성전자주식회사 멀티 칩 패키지에 적합한 반도체 메모리 장치

Also Published As

Publication number Publication date
CA2989298A1 (en) 2017-02-09
CN107851075A (zh) 2018-03-27
WO2017023408A1 (en) 2017-02-09
TW201712681A (zh) 2017-04-01
EP3304325B1 (en) 2019-03-20
US20170031785A1 (en) 2017-02-02
US10331526B2 (en) 2019-06-25
BR112018002030A2 (pt) 2018-09-11
EP3304325A1 (en) 2018-04-11
JP2018528510A (ja) 2018-09-27

Similar Documents

Publication Publication Date Title
US8924692B2 (en) Event counter checkpointing and restoring
US10684859B2 (en) Providing memory dependence prediction in block-atomic dataflow architectures
WO2021108086A1 (en) Techniques for performing store-to-load forwarding
KR20140069245A (ko) 트랜잭셔널 메모리 동작들을 수행하도록 구성된 프로세서
US11113065B2 (en) Speculative instruction wakeup to tolerate draining delay of memory ordering violation check buffers
US20160321078A1 (en) Fault Tolerant Processor for Real-Time Systems
KR20180035815A (ko) 메모리의 주파수 리셋을 위한 시스템들, 방법들 및 장치
WO2014100629A1 (en) System and method to reset a lock indication
US11175916B2 (en) System and method for a lightweight fencing operation
US20230096814A1 (en) Re-reference indicator for re-reference interval prediction cache replacement policy
US10303235B2 (en) Systems and methods for implementing power collapse in a memory
US10114750B2 (en) Preventing the displacement of high temporal locality of reference data fill buffers
US10747644B2 (en) Method of executing instructions of core, method of debugging core system, and core system
US10642621B2 (en) System, apparatus and method for controlling allocations into a branch prediction circuit of a processor
KR102594618B1 (ko) 락 어드레스 경합 예측자
CN116050322A (zh) 指令自修改的验证方法、系统、设备以及存储介质
US20160117271A1 (en) Smart holding registers to enable multiple register accesses