KR20080104177A - 마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령 - Google Patents

마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령 Download PDF

Info

Publication number
KR20080104177A
KR20080104177A KR1020087024311A KR20087024311A KR20080104177A KR 20080104177 A KR20080104177 A KR 20080104177A KR 1020087024311 A KR1020087024311 A KR 1020087024311A KR 20087024311 A KR20087024311 A KR 20087024311A KR 20080104177 A KR20080104177 A KR 20080104177A
Authority
KR
South Korea
Prior art keywords
instruction
microcontroller
command
state machine
instructions
Prior art date
Application number
KR1020087024311A
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 KR20080104177A publication Critical patent/KR20080104177A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

메모리 제어기의 명령 세트를 확장하기 위한 시스템 및 방법이 제공된다. 일 구현에서, 방법은 명령 디코딩 스테이트 머신을 통해 제1 복수의 명령들을 디코딩하는 단계, 및 확장된 명령을 디코딩하는 명령 디코딩 스테이트 머신에 응답하여, 제1 복수의 명령들 중의 명령 이외의 추가의 명령을 처리하기 위해 마이크로컨트롤러를 웨이크하는 단계를 포함한다. 확장된 명령은 마이크로컨트롤러에 처리될 추가의 명령을 통지하는 명령이다.
디지털 제어기 시스템, 명령 디코더, 마이크로컨트롤러

Description

마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령{FIRMWARE EXTENDABLE COMMANDS FOR A MICROCONTROLLER BASED FLASH MEMORY DIGITAL CONTROLLER}
본 발명은 일반적으로 디지털 제어기 시스템에 관한 것으로, 특히 마이크로컨트롤러(microcontroller) 기반의 플래시 메모리 디지털 제어기 시스템에 관한 것이다.
메모리 시스템들 및 메모리 디바이스들(예를 들어, 디지털 플래시 메모리 디바이스)은 일반적으로 메모리(예를 들어, 비휘발성 플래시 메모리)로의 및 메모리로부터의 디지털 정보의 저장 및 복원을 위한 디지털 제어기를 포함한다. 디지털 플래시 메모리 디바이스와 같은 통상적인 메모리 디바이스에서, 디지털 플래시 메모리 디바이스에 의해 지원되는 대부분의 명령 시퀀스(command sequence)들(예를 들어, 읽기, 쓰기, 복사, 삭제, 등등)은 보통 디지털 플래시 메모리 디바이스가 특정화되고 구조화될 때에 알려진다. 따라서, 명령 시퀀스들은 일반적으로 하드웨어(예를 들어, 명령 시퀀스들은 스테이트 머신(state machine)으로 배선(hardwire)되거나 또는 ROM(read-only memory)에 고정됨)에 설정되므로(및 고정됨), 따라서, 명령 시퀀스들은 디지털 플래시 메모리 디바이스가 제조된 후에 일반적으로 수정될 수 없다. 그러한 배선된 스테이트 머신들은 일반적으로 미리 정의된 시퀀스들에 행해진 임의의 변경들에 대한 기록을 필요로 하고, 이는 새로운 디지털 플래시 메모리 디바이스가 제조되고 테스트되는 것을 필요로 하는 고가의 시간 소모적인 프로세스이다.
따라서, 확장된 명령들(처리된 경우)이 스테이트 머신에 기록되는 것을 필요로하지 않는, 스테이트 머신을 포함하는 통상적인 메모리 디바이스에 의해 실행되는(또는 처리되는) 것을 가능하게 하는 명령들의 갯수를 확장하기 위한 시스템 및 방법이 필요하다. 본 발명은 그러한 요구를 논의(address)한다.
일반적으로, 일 양태에서, 본 명세서는 명령 디코딩 스테이트 머신 및 마이크로컨트롤러를 포함하는 디지털 제어기 시스템을 위한 동작 방법을 기술한다. 본 방법은 명령 디코딩 스테이트 머신을 통해 제1 복수의 명령들을 디코딩하는 단계, 및 확장된 명령을 디코딩하는 명령 디코딩 스테이트 머신에 응답하여, 제1 복수의 명령들 중의 명령 이외의 추가의 명령을 처리하기 위해 마이크로컨트롤러를 웨이크(wake)하는 단계를 포함한다. 확장된 명령은 마이크로컨트롤러에 처리될 추가의 명령을 통지하는 명령이다.
특정한 구현들은 이하의 피쳐(feature)들 중 하나 이상을 포함할 수 있다. 추가의 명령을 처리하기 위하여 마이크로컨트롤러를 웨이크하는 단계는 확장된 명령과 연관된 연산코드(opcode)를 디코드하기 위하여 마이크로컨트롤러를 웨이크하는 단계를 포함할 수 있다. 추가의 명령 및 확장된 명령은 사용자로부터 수신될 수 있다. 명령 디코딩 스테이트 머신은 마이크로컨트롤러와 독립적으로 명령들을 처리하도록 동작가능할 수 있다. 디지털 제어기 시스템은 마이크로컨트롤러와 상호접속하는 메모리를 더 포함할 수 있다. 명령 디코딩 스테이트 머신은 사용자 명령들 및 사용자 데이터를 수신하기 위한 사용자 인터페이스가 될 수 있다. 메모리는 플래시 메모리, DRAM(dynamic RAM), 또는 SRAM(static RAM) 중 하나를 포함할 수 있다. 본 방법은 시한 명령(timed command)을 디코딩하는 명령 디코딩 스테이트 머신에 응답하여 시한 명령을 처리하도록 마이크로컨트롤러를 웨이크하는 단계를 더 포함할 수 있다. 시한 명령은 완전히 처리되기 위해 하나보다 많은 클럭 사이클을 필요로하는 명령일 수 있다. 본 방법은 디지털 제어기 시스템이 테스트 모드에서 동작하고 있다는 표시를 수신하고, 확장된 명령을 사용하여 테스트 모드 중에 처리될 테스트 모드 명령을 마이크로컨트롤러에 통지하는 것을 더 포함할 수 있다.
일반적으로, 다른 양태에서, 본 명세서는 디지털 제어기 시스템을 기술한다. 디지털 제어기 시스템은 제1 복수의 명령들을 디코드하도록 동작가능한 명령 디코딩 스테이트 머신, 및 마이크로컨트롤러를 포함한다. 확장된 명령을 디코딩하는 명령 디코딩 스테이트 머신에 응답하여, 명령 디코딩 스테이트 머신은 제1 복수의 명령들 중의 명령 이외의 추가의 명령을 처리하기 위하여 마이크로컨트롤러를 웨이크하도록 동작가능하다. 확장된 명령은 마이크로컨트롤러에 처리될 추가의 명령을 통지하는 명령이다.
특정한 구현들은 이하의 피쳐들 중 하나 이상을 포함할 수 있다. 디지털 제어기 시스템은 추가의 명령이 마이크로컨트롤러에 의해 처리되기 전에 확장된 명령과 연관된 연산코드를 저장하도록 동작가능한 레지스터를 더 포함할 수 있다. 디지털 제어기 시스템은 디지털 제어기 시스템이 테스트 모드에서 동작하는지의 여부를 나타내도록 테스트 모드 신호를 더 포함할 수 있다. 추가의 명령은 연산코드를 포함할 수 있다. 디지털 제어기 시스템은 연산코드가 마이크로컨트롤러에 의해 처리되기 전에 연산코드를 저장하도록 동작가능한 레지스터를 더 포함할 수 있다. 연산코드 및 확장된 명령은 디지털 제어기 시스템에 의해 사용자로부터 수신될 수 있다.
일반적으로, 다른 양태에서, 본 명세서는 확장된 명령을 포함하는 제1 복수의 명령들을 디코드하도록 동작가능한 명령 디코딩 스테이트 머신을 포함하는 명령 디코더, 및 확장된 명령과 연관된 연산코드를 저장하기 위해 마이크로컨트롤러에 의해 액세스가능한 레지스터를 기술한다. 명령 디코딩 스테이트 머신이 확장된 명령을 디코드하는 경우 명령 디코더는 마이크로컨트롤러를 웨이크하도록 동작가능하다. 확장된 명령은 마이크로컨트롤러에 처리될 연산코드를 통지하는 명령이다.
특정한 구현들은 이하의 피쳐들 중 하나 이상을 포함할 수 있다. 제1 복수의 명령들 및 확장된 명령은 명령 디코더의 제조시에 명령 디코딩 스테이트 머신으로 배선될 수 있다. 명령 디코더는 명령 디코더에 의해 제1 클럭 도메인으로부터 이 제1 클럭 도메인과 상이한 제2 클럭 도메인으로 수신되는 명령을 동기화하도록 동작가능한 동기화 로직을 더 포함할 수 있다.
구현들은 이하의 장점들 중 하나 이상을 제공할 수 있다. 사용자 인터페이스로서 스테이트 머신을 사용하고 메모리 코어에 대한 프로그래밍 및 삭제 인터페이스로서 마이크로컨트롤러(또는 코-프로세서(co-processor), 마이크로프로세서, 또는 다른 스테이트 머신)를 사용하는 하이브리드(hybrid) 접근은 프로그램 유연성, 속도, 및 전력 사이의 절충을 제공한다. 스테이트 머신 기반의 명령 디코더는 사용자 명령들을 검출 및 관리하고, 명령들과 관련된 정보(어드레스, 데이터, 연산코드들, 및 플래그(flag)들)를 관리하고, 시스템 클럭을 제어하고, 및 복잡한 명령(예를 들어, 시한 명령)의 처리가 필요한 경우 마이크로컨트롤러를 웨이크하기 위한 수단을 제공한다. 소프트웨어 확장가능 명령들을 사용하는 디지털 제어기 시스템이 기술된다. 일 구현에서, 확장된 명령은 단일의 특정한 명령 시퀀스를 포함한다. 단일 명령은 명령 디코더가 개별 연산코드 레지스터에 저장하는 (예를 들어, 8비트의) 연산코드와 함께 해석될 수 있다. 8비트 연산코드 레지스터, 및 테스트 모드 신호를 구현함으로써, 256개의 추가의 사용자 명령들과 256개의 추가의 테스트 모드 명령들까지 지원될 수 있다. 펌웨어(firmware)를 통해 마이크로컨트롤러를 사용하는 테스트 모드들 및 디버그(debug) 피쳐들은 확장된 명령, 및 디지털 제어기 시스템과 관련된 테스트 모드 핀의 결합을 사용하여 쉽게 구현된다. (일 구현에서) 테스트 핀이 고객들에게 보내지는 최종 패킹된(packed) 부분들에 접착되지 않기 때문에, 테스트 모드 핀은 사용자가 우연히 테스트 모드 명령을 입력하는 것을 방지하기 위해 사용된다. 테스트 모드들 및 디버그 피쳐들은 개별 테스트 제어기를 사용할 필요 없이 (예를 들어, 제조 중에) 디지털 제어기가 테스트되는 것을 가능하게 한다.
도 1은 본 발명의 일 구현에 따른 마이크로컨트롤러 및 명령 디코더를 포함하는 디지털 제어기 시스템의 블록도이다.
도 2는 본 발명의 일 구현에 따른 도 1의 명령 디코더의 블록도이다.
도 3은 본 발명의 일 구현에 따른 도 1의 디지털 제어기 시스템의 동작 방법을 도시한다.
도 4는 본 발명의 일 구현에 따른 도 1의 디지털 제어기 시스템에 의해 실행될 수 있는 확장된 명령들 및 테스트 모드 명령들을 포함하는 표를 도시한다.
다양한 도면들에서 유사한 참조 번호들은 유사한 구성 요소들을 나타낸다.
본 발명은 일반적으로 디지털 제어기 시스템에 관한 것으로, 특히 마이크로 컨트롤러 기반의 플래시 메모리 디지털 제어기 시스템에 관한 것이다. 이하의 기술은 본 기술 분야의 당업자들이 본 발명을 만들고 사용하는 것을 가능하게 하도록 제공되고, 특허출원 및 그 요구물들의 맥락에서 제공된다. 본 명세서에 기술된 피쳐들 및 일반적인 원리들 및 구현들에 대한 다양한 수정들은 본 기술분야의 당업자들에게 용이하게 분명하게 이해될 것이다. 따라서, 본 발명은 도시된 구현들에 한정되는 것을 의도하지 않으며, 본 명세서에 기술된 피쳐들 및 원리들과 일치하는 가장 넓은 범위를 허용한다.
도 1은 본 발명의 일 구현에 따른 메모리(104) 및 (디지털) 메모리 제어기(102)를 포함하는 디지털 제어기 시스템(100)의 블록도이다. 메모리(104)는 비 휘발성 플래시 메모리 또는, 예를 들어, SRAM(static RAM) 또는 DRAM(dynamic RAM) 등의 그외의 메모리가 될 수 있다. 메모리 제어기(102)는 명령 디코더(106), 마이크로컨트롤러(108), 및 연산코드 레지스터(100)를 포함한다.
일 구현에서, 명령 디코더(106)는 수신된 데이터(예를 들어, 데이터(112))에 기초하여 (미리-정의된) 단순한 명령들(또는 명령 시퀀스들)을 수행하기 위한 스테이트 머신을 포함한다. 예시적인 단순한 명령들은 읽기, 쓰기, 복사, 삭제, 등을 포함한다. 따라서, 이 구현에서, 스테이트 머신이 단순한 명령들을 수행하는 경우 마이크로컨트롤러(108)는 전력을 보존하기 위해 수면 상태를 유지한다. 일 구현에서, 명령 디코더(106)는 사용자 클럭(114)에 따라 사용자로부터 데이터(112)를 수신하기 위한 사용자 인터페이스이다. 메모리 제어기(106)는, 스테이트 머신을 포함하는 통상적인 메모리 제어기(또는 디지털 제어기)와 달리, 메모리 제어기(106)가 스테이트 머신에 배선되지 않은 추가의 명령들을 처리하는 것을 가능하게 하는 연산코드 레지스터(110) 및 마이크로컨트롤러(108)를 더 포함한다. 마이크로컨트롤러(예를 들어, 마이크로컨트롤러(108))가 명령 디코더(106)에 연결된 것으로 도시되어 있지만, 코-프로세서, 마이크로프로세서, 또는 스테이트 머신(또는 마이크로컨트롤러, 코-프로세서, 마이크로프로세서, 또는 스테이트 머신의 임의의 결합)은 또한 본 명세서에 기술된 마이크로컨트롤러(108)의 기능들을 수행하도록 구현될 수 있다.
따라서, 일 구현에서, 명령 디코더(106)는 메모리 제어기(102)를 통해 처리될 수 있는 명령들의 확장성을 제공한다. 디코드될 대부분의 명령들은 보통 미리 정의되고 하드웨어(예를 들어, ROM 또는 스테이트 머신)에 포함되기 때문에, 소프트웨어에 새로운 명령들을 추가하는 기능을 갖는 것이 바람직하다. 일 구현에서, 명령들의 그러한 확장성은 하나 이상의 확장된 명령들의 사용을 통해 명령 디코더(106)에 의해 제공된다. 확장된 명령이 명령 디코더(106)로 전송되는 경우, (일 구현에서) 사용자는 또한 연산코드 레지스터(110)에 저장되는 대응하는 (예를 들어, 8비트) 연산코드를 전송한다. 다음으로 명령 디코더(106)는 마이크로컨트롤러(108)를 웨이크하고, 확장된 명령이 존재함을 마이크로컨트롤러(108)에 통지한다. 명령 디코더(106)가 확장된 명령을 디코드하였다는 것을 마이크로컨트롤러(108)가 감지하는 경우, 마이크로컨트롤러(108)는 연산코드 레지스터(110)에 저장된 연산코드를 판독하고 연산코드를 처리한다(또는 실행한다). 마이크로컨트롤러(108)를 프로그램하여, 연산코드를 디코드하고, 예를 들어, 명령 디코더(106)의 구조화 시에 고려되지 않는 인스트럭션(instruction) 시퀀스를 실행할 수 있다. 일 구현에서, 8비트 연산코드는 메모리 제어기(102)가 제조된 후에 - 예를 들어, 스테이트 머신이 설정되고 고정된 후에 - 추가될 수 있는 256개의 추가의 명령들의 가능성을 제공한다. 또한, 일 구현에서, 메모리 제어기(102)가 (예를 들어) 256개의 추가의 테스트 모드 명령들까지 지원하게 허용하는 테스트 모드 신호가 제공된다. 이 구현에서, 테스트 모드 신호의 값은 명령 디코더(106)가 테스트 모드 인지의 여부를 나타내는데 사용될 수 있다. 더 일반적으로, 연산코드 레지스터는 임의의 비트 크기의 연산코드들을 저장하도록 구성될 수 있고, 따라서, 256개 이상 또는 256개 이하의 추가의 명령들(테스트 모드 명령들을 포함함)이 지원될 수 있다.
일 구현에서, 명령 디코더(106)는 이하의 형태들의 명령들 - 직접 사용자 명령들, 시한 명령들(확장된 명령들을 포함함), 및 서스펜드(suspend)/리줌(resume) 명령들 - 을 검출하도록 동작가능하다. 직접 사용자 명령은 마이크로컨트롤러(108)가 수면 상태인 동안에 명령 디코더(106)에 의해 일반적으로 처리되는 명령이다. 따라서, 메모리 제어기(102)는 직접 사용자 명령들을 고속에서 전력 효율을 가지며 조작하도록 동작가능하다. 시한 명령은 일 사이클에 실행될 수 없는 명령이지만, 그보다, 명령이 완전히 실행되기 위해서 일련의 이벤트들이 발생하는 것을 필요로 한다. 일 구현에서, 마이크로컨트롤러(108)는 시한 명령들을 처리하고, 따라서, 명령 디코더(106)는 마이크로컨트롤러(108)를 웨이크하여 시한 명령들을 처리한다. 시한 명령들의 예시들은 메모리(104)의 프로그래밍 및 삭제, 비휘발성 락(lock) 비트들의 설정 또는 클리어, 메모리(104)로부터의 페이지 전송, 및 다양한 테스트 모드 및 확장된 명령들과 관련된 명령들을 포함한다. 서스펜드 명령은 현재 실행중인 시한 명령을 인터럽트(interrupt)하는 명령이다. 일 구현에서, 명령 디코더(106)는 마이크로컨트롤러(108)가 시한 명령을 실행하는 동안에 메모리컨트롤러(108)에 대하여 인터럽트를 발생한다. 서스펜드 명령 시퀀스는 메모리 제어기(102)와 연관된 인터럽트 조정기에 포함될 수 있다. 리줌 명령은, 마이크로컨트롤러(108)가 이전에 그만두었던 지점에서 코드의 실행을 재개할 수 있도록 마이크로컨트롤러(108)를 웨이크하는 명령이다.
도 2는 본 발명의 일 구현에 따른 명령 디코더(106)(도 1)의 블록도를 도시한다. 도 2에 도시된 바와 같이, 명령 디코더(106)는, 명령 디코딩 스테이트 머 신(201), 서스펜드/리줌 레지스터들(202), 마이크로컨트롤러 액세스가능 레지스터들(203), 및 동기화 로직(204)을 포함하며, 이들의 기능들이 2005년 11월 28일에 출원되었으며 본 출원의 출원인에게 양도된, 출원번호 11/288,753으로서, 발명의 명칭이 "Command Decoder For Microcontroller Based Flash Memory Digital Controller System"인 동시계속 미국특허출원에 매우 자세하게 기술되어 있으며, 본 명세서에 참조로서 포함된다. 동기화 로직(204)의 기능들은, 본 출원의 출원인에게 양도된, 2005년 8월 17일에 출원된, 출원번호 11/206,474로서, 발명의 명칭이 "Method and Apparatus For Synchronizing Data Between Different Clock Domains in a Memory Controller"인 동시계속 미국특허출원에 매우 상세하게 더 기술되어 있으며, 본 명세서에 참조로서 포함된다.
일반적으로, 명령 디코딩 스테이트 머신(201)은 사용자 명령들을 디코드하고 두개의 상이한 클럭 도메인들, (비동기식) 사용자 클럭(예를 들어, 사용자 클럭(114)) 및 메모리 제어기(102)와 연관된 (동기식) 디지털 클럭에 따라 동작한다. 사용자 클럭은 사용자의 액세스 시퀀스에 의해 결정된 속도(또는 주파수)로 동작한다. 메모리 제어기(102)와 연관된 디지털 클럭은 일반적으로 사용자 클럭에 비해 낮은 속도(또는 주파수)로 동작한다. 두개의 클럭 도메인들은 메모리 제어기(102)로 하여금 사용자가 사이클 기반의 마이크로컨트롤러(108)로부터 신호를 기다리게 할 필요없이 사용자가 원하는 속도로 명령들을 수신하는 것을 가능하게 한다. 명령이 서스펜드되거나 나중에 복구되는 경우 서스펜드/리줌 레지스터들(202)은 스테이트 정보를 저장한다. 마이크로컨트롤러 액세스가능 레지스터들(203)은 마이크로 컨트롤러(108)(도 1)에 의해 액세스가능한 복수의 레지스터들을 포함한다. 일 구현에서, 마이크로컨트롤러 액세스가능 레지스터들(203)은 마이크로컨트롤러(108)에 의해 처리될 연산코드들을 저장하기 위한 연산코드 레지스터(예를 들어, 도 1의 연산코드 레지스터(110))를 포함한다. 동기화 로직(204)은 도메인들을 동기화하고, 사용자 도메인으로부터 메모리 제어기 도메인으로 교차하는 신호들을 결정적이고 순차적인 방법으로 확보한다. 일 구현에서, 동기화 로직(204)은 또한 웨이크 신호를 동기화하여, 예를 들어, 시한 명령을 처리하는 마이크로컨트롤러(108)를 웨이크한다.
도 3은 본 발명의 일 구현에 따른 디지털 제어기 시스템(예를 들어, 도 1의 디지털 제어기 시스템)의 동작 방법(300)을 도시한다. 명령 디코더(예를 들어, 명령 디코더(106))에 의해 명령이 수신된다(단계 302). 일 구현에서, 명령은 테스트 모드 명령, 시한 명령, 서스펜드/리줌 명령, 또는 직접 사용자 명령이 될 수 있다. 명령이 테스트 모드 명령인지의 여부에 대하여 판정을 행한다(단계 304). 명령이 테스트 모드 명령인 경우, 명령 디코더에 의해 테스트 모드 명령이 실행된다(단계 306). 일 구현에서, 테스트 모드 명령이 디코드되는 경우, 테스트 모드들은 필요한 테스트 모드 신호들에 대한 직접적인 액세스를 가능하게 한다. 일 구현에서, 테스트 모드들은, 예를 들어, RAM들, ROM, 및 마이크로컨트롤러(108)와 연관된 어드레스 버스들 및 데이터 버스들의 레지스터들에 대한 직접적인 액세스를 가능하게 한다. 일 구현에서, 테스트 모드들은 경쟁(contention)을 방지하기 위해 마이크로컨트롤러(108)가 수면 상태인 경우에만 액세스될 수 있다.
명령이 시한 명령으로 판정되는 경우(단계 308), 디지털 제어기 시스템과 연관된 마이크로컨트롤러(예를 들어, 마이크로컨트롤러(108))가 웨이크된다(단계 310). 다음으로 마이크로컨트롤러는 시한 명령을 실행한다(또는 처리한다)(단계 312). 전술된 바와 같이, 시한 명령들은 확장된 명령들을 포함한다. 일 구현에서, 사용자가 확장된 명령을 전송하는 경우, 사용자는 또한 연산코드 레지스터(예를 들어, 연산코드 레지스터(110))에 저장된 연산코드(예를 들어, 8비트)를 전송한다. 명령 디코더는 마이크로컨트롤러를 웨이크하고 다음으로 마이크로컨트롤러는 연산코드 레지스터에 저장된 연산코드를 실행한다.
명령이 서스펜드 또는 리줌 명령으로 판정되는 경우(단계 314), 마이크로컨트롤러는 각각 인터럽트되거나 또는 웨이크된다(단계 316). 따라서, 명령이 서스펜드 명령인 경우, 마이크로컨트롤러의 명령 실행은 서스펜드된다(단계 318). 마찬가지 방법으로, 명령이 리줌 명령인 경우, 마이크로컨트롤러는 웨이크되고 명령 실행을 재개한다(단계 318). 명령이 직접 사용자 명령인 경우, 명령은 명령 디코더에 의해 실행된다(단계 320).
도 4는 본 발명의 일 구현에 따른 도 1의 디지털 제어기 시스템(100)을 통해 처리될 수 있는 확장된 명령들 및 테스트 모드 명령들을 포함하는 표(400)를 도시한다. 표(400)는 확장된 명령 코드를 사용하는 테스트 모드 명령 시퀀스들(즉, 테스트 모드 명령들) 및 또한 확장된 명령 코드를 사용하지 않는 테스트 모드 명령 시퀀스들의 예시들을 도시한다. 표(400)로부터 일부의 테스트 모드 명령 시퀀스들이 I/O를 제3 버스 사이클의 확장된 명령 코드값으로 설정하는 것을 포함한다는 것 을 알 수 있다. 마이크로컨트롤러(108)(도 1)가 CMDCODE 레지스터(도시되지 않음)가 확장된 명령이 수신되었음을 나타내는 것을 감지하는 경우, 마이크로컨트롤러(108)는 무엇을 할지를 결정하기 위해 어드레스 레지스터들 및 데이터 레지스터들과 함께 연산코드 레지스터(110)(도 1)로부터 코드를 판독할 것이다. 연산코드 레지스터(110)에 저장된 코드는 제3 버스 사이클 중에 사용자(예를 들어, 테스트 모드 명령의 경우 테스트 엔지니어)에 의해 어드레스 버스에 제공될 수 있다. 예를 들어, 테스트 목적으로 확장된 명령을 사용하는 표(400)의 제1 명령은 "로드 트림 디폴트(Load Trim Defaults)" 명령이다. 제3 버스 사이클에서, 확장된 명령을 나타내기 위해 I/O에 EC가 구동되고 0x01의 연산코드는 어드레스 버스에 제공된다.
일 구현에서, 확장된 명령을 사용하는 테스트 모드 명령들에 대하여, 연산코드, 어드레스, 및 데이터에 기초한 명령의 실행은 마이크로컨트롤러(108)에 의해 조작된다. 일 구현에서, 그것들과 연관된 특정한 명령, 예를 들어, "AVR 레지스터 판독 모드를 입력함" 또는 "데이터 SRAM 판독 모드를 입력함"을 갖는 테스트 모드들의 경우에, 명령 디코더(106)는 다양한 먹스(mux)들(도시되지 않음)을 제어하는 내부 플래그를 설정하여 사용자가 레지스터 또는 RAM에 직접 액세스하는 것을 가능하게 한다. 또한, 레지스터들로의 기입, 또는 SRAM 또는 ROM의 판독 및 기입과 같은 경우와 같이, 클럭이 필요한 경우에, 클럭 펄스 발생기 회로(도시되지 않음)를 사용하여 어드레스 버스 상의 어드레스 변경을 검출함으로써 클럭을 생성한다.
본 발명은 디지털 제어기 시스템의 명령 세트를 확장하기 위한 시스템 및 방법을 제공한다. 본 발명은 도시된 구현들에 따라 기술되었으며, 본 기술분야의 당 업자들은 구현들에 변경들이 있을 수 있고, 임의의 변경들은 본 발명의 범위 내에 존재한다는 것을 용이하게 인식할 것이다. 예를 들어, 전술된 방법들은 상이한 순서로 실행될 수 있고, 마찬가지로 바람직한 결과들을 달성할 수 있다. 또한, 연산코드 레지스터(110)는 임의의 비트 크기의 연산코드들을 저장하도록 구성될 수 있다. 따라서, 첨부된 청구범위의 범주로부터 벗어나지 않으면서 본 기술분야의 당업자에 의해 다수의 수정들을 행할 수 있다.

Claims (22)

  1. 명령 디코딩 스테이트 머신(command decoding state machine) 및 마이크로컨트롤러를 포함하는 디지털 제어기 시스템에서의 동작 방법으로서,
    상기 명령 디코딩 스테이트 머신을 통해 제1 복수의 명령들을 디코딩하는 단계; 및
    확장된 명령을 디코딩하는 상기 명령 디코딩 스테이트 머신에 응답하여, 상기 제1 복수의 명령들 중의 명령 이외의 추가의 명령을 처리하도록 상기 마이크로컨트롤러를 웨이크(wake)하는 단계 - 상기 확장된 명령은 상기 마이크로컨트롤러에 처리될 상기 추가의 명령을 통지하는 명령임 -
    를 포함하는 디지털 제어기 시스템 동작 방법.
  2. 제1항에 있어서,
    상기 추가의 명령을 처리하기 위해 상기 마이크로컨트롤러를 웨이크하는 단계는 상기 확장된 명령과 연관된 연산코드(opcode)를 디코드하기 위해 상기 마이크로컨트롤러를 웨이크하는 단계를 포함하는 디지털 제어기 시스템 동작 방법.
  3. 제2항에 있어서,
    상기 추가의 명령 및 상기 확장된 명령은 사용자로부터 수신되는 디지털 제어기 시스템 동작 방법.
  4. 제1항에 있어서,
    상기 명령 디코딩 스테이트 머신은 상기 마이크로컨트롤러와 독립적으로 명령들을 처리하도록 동작가능한 디지털 제어기 시스템 동작 방법.
  5. 제1항에 있어서,
    상기 디지털 제어기 시스템은 상기 마이크로컨트롤러와 인터페이스하는 메모리를 더 포함하고, 상기 명령 디코딩 스테이트 머신은 사용자 명령들 및 사용자 데이터를 수신하기 위한 사용자 인터페이스인 디지털 제어기 시스템 동작 방법.
  6. 제5항에 있어서,
    상기 메모리는 플래시 메모리, DRAM(dynamic RAM), 또는 SRAM(static RAM) 중 하나를 포함하는 디지털 제어기 시스템 동작 방법.
  7. 제1항에 있어서,
    시한 명령(timed command)을 디코딩하는 상기 명령 디코딩 스테이트 머신에 응답하여, 상기 시한 명령을 처리하도록 상기 마이크로컨트롤러를 웨이크하는 단계
    를 더 포함하고,
    상기 시한 명령은 완전히 처리되기 위해 하나보다 많은 클럭 사이클을 필요로 하는 명령인 디지털 제어기 시스템 동작 방법.
  8. 제1항에 있어서,
    상기 디지털 제어기 시스템이 테스트 모드에서 동작하고 있다는 표시를 수신하는 단계; 및
    상기 확장된 명령을 사용하여 상기 테스트 모드 중에 처리될 테스트 모드 명령을 상기 마이크로컨트롤러에 통지하는 단계
    를 포함하는 디지털 제어기 시스템 동작 방법.
  9. 디지털 제어기 시스템으로서,
    제1 복수의 명령들을 디코드하도록 동작가능한 명령 디코딩 스테이트 머신; 및
    마이크로컨트롤러
    를 포함하고,
    확장된 명령을 디코딩하는 상기 명령 디코딩 스테이트 머신에 응답하여, 상기 명령 디코딩 스테이트 머신은 상기 제1 복수의 명령들 중의 명령 이외의 추가의 명령을 처리하기 위해 상기 마이크로컨트롤러를 웨이크하도록 동작가능하고, 상기 확장된 명령은 상기 마이크로컨트롤러에 처리될 상기 추가의 명령을 통지하는 명령인 디지털 제어기 시스템.
  10. 제9항에 있어서,
    상기 추가의 명령은 연산코드를 포함하고, 상기 디지털 제어기 시스템은 상기 연산 코드가 상기 마이크로컨트롤러에 의해 처리되기 전에 상기 연산코드를 저장하도록 동작가능한 레지스터를 더 포함하는 디지털 제어기 시스템.
  11. 제10항에 있어서,
    상기 연산코드 및 상기 확장된 명령은 상기 디지털 제어기 시스템에 의해 사용자로부터 수신되는 디지털 제어기 시스템.
  12. 제9항에 있어서,
    상기 명령 디코딩 스테이트 머신은 상기 마이크로컨트롤러와 독립적으로 명령들을 처리하도록 동작가능한 디지털 제어기 시스템.
  13. 제9항에 있어서,
    상기 디지털 제어기 시스템은 상기 마이크로컨트롤러와 인터페이스하는 메모리를 더 포함하고, 상기 명령 디코딩 스테이트 머신은 사용자 명령들 및 사용자 데이터를 수신하기 위한 사용자 인터페이스인 디지털 제어기 시스템.
  14. 제13항에 있어서,
    상기 메모리는 플래시 메모리, DRAM(dynamic RAM), 또는 SRAM(static RAM) 중 하나를 포함하는 디지털 제어기 시스템.
  15. 제9항에 있어서,
    시한 명령을 디코딩하는 상기 명령 디코딩 스테이트 머신에 응답하여, 상기 명령 디코딩 스테이트 머신은 상기 시한 명령을 처리하기 위해 상기 마이크로컨트롤러를 웨이크하도록 동작가능하고, 상기 시한 명령은 완전히 처리되기 위해 하나보다 많은 클럭 사이클을 필요로하는 명령인 디지털 제어기 시스템.
  16. 제9항에 있어서,
    상기 디지털 제어기 시스템이 테스트 모드에서 동작하고 있는지의 여부를 나타내는 테스트 모드 신호를 더 포함하는 디지털 제어기 시스템.
  17. 명령 디코더로서,
    확장된 명령을 포함하는 제1 복수의 명령들을 디코드하도록 동작가능한 명령 디코딩 스테이트 머신; 및
    상기 확장된 명령과 연관된 연산 코드를 저장하기 위해 마이크로컨트롤러에 의해 액세스가능한 복수의 레지스터들
    을 포함하고,
    상기 명령 디코더는, 상기 명령 디코딩 스테이트 머신이 상기 확장된 명령을 디코드하는 경우, 상기 마이크로컨트롤러를 웨이크하도록 동작가능하고, 상기 확장된 명령은 상기 마이크로컨트롤러에 처리될 상기 연산코드를 통지하는 명령인 명령 디코더.
  18. 제17항에 있어서,
    상기 제1 복수의 명령들 및 상기 확장된 명령은 상기 명령 디코더의 제조시에 상기 명령 디코딩 스테이트 머신에 배선되는 명령 디코더.
  19. 제17항에 있어서,
    상기 명령 디코딩 스테이트 머신은 상기 마이크로컨트롤러와 독립적으로 명령들을 처리하도록 동작가능한 명령 디코더.
  20. 제17항에 있어서,
    시한 명령을 디코딩하는 상기 명령 디코딩 스테이트 머신에 응답하여, 상기 명령 디코더는 상기 시한 명령을 처리하기 위해 상기 마이크로컨트롤러를 웨이크하도록 동작가능하고, 상기 시한 명령은 완전히 처리되기 위해 하나보다 많은 클럭 사이클을 필요로하는 명령인 명령 디코더.
  21. 제17항에 있어서,
    상기 마이크로컨트롤러의 처리가 인터럽트되는 경우 상기 마이크로컨트롤러와 연관된 스테이트 정보를 저장하기 위해 하나 이상의 서스펜드 레지스터들을 더 포함하는 명령 디코더.
  22. 제21항에 있어서,
    제1 클럭 도메인으로부터 상기 제1 클럭 도메인과 상이한 제2 클럭 도메인으로 상기 명령 디코더에 의해 수신된 명령을 동기화하도록 동작가능한 동기화 로직을 더 포함하는 명령 디코더.
KR1020087024311A 2006-03-02 2007-03-02 마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령 KR20080104177A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/366,919 US7702885B2 (en) 2006-03-02 2006-03-02 Firmware extendable commands including a test mode command for a microcontroller-based flash memory controller
US11/366,919 2006-03-02

Publications (1)

Publication Number Publication Date
KR20080104177A true KR20080104177A (ko) 2008-12-01

Family

ID=38475430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087024311A KR20080104177A (ko) 2006-03-02 2007-03-02 마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령

Country Status (6)

Country Link
US (1) US7702885B2 (ko)
EP (1) EP1999593A4 (ko)
JP (1) JP2009528633A (ko)
KR (1) KR20080104177A (ko)
CN (1) CN101395585A (ko)
WO (1) WO2007103219A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130124010A (ko) * 2012-05-04 2013-11-13 삼성전자주식회사 비휘발성 메모리 컨트롤러 및 비휘발성 메모리 시스템

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645618B2 (en) * 2011-07-14 2014-02-04 Lsi Corporation Flexible flash commands
US20140297922A1 (en) * 2013-03-29 2014-10-02 Nitin V. Sarangdhar Method and apparatus for managing serial peripheral interface (spi) flash
US9440086B2 (en) 2013-09-11 2016-09-13 Medtronic, Inc. Optimized flash memory device for miniaturized devices
US10948970B2 (en) * 2018-03-30 2021-03-16 Dialog Semiconductor B.V. Low power microcontroller
CN110383232B (zh) * 2019-05-05 2021-03-23 长江存储科技有限责任公司 具有序列处理单元的存储器控制系统
US11775457B1 (en) * 2021-02-23 2023-10-03 Xilinx, Inc. Command pattern sequencer for memory calibration

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0131398B1 (ko) * 1991-10-31 1998-04-18 오오가 노리오 카세트 테이프
US5752066A (en) * 1992-01-06 1998-05-12 International Business Machines Corporation Data processing system utilizing progammable microprogram memory controller
US5353420A (en) * 1992-08-10 1994-10-04 Intel Corporation Method and apparatus for decoding conditional jump instructions in a single clock in a computer processor
US5848247A (en) * 1994-09-13 1998-12-08 Hitachi, Ltd. Microprocessor having PC card interface
JPH08137763A (ja) * 1994-11-04 1996-05-31 Fujitsu Ltd フラッシュメモリ制御装置
US5828868A (en) * 1996-11-13 1998-10-27 Intel Corporation Processor having execution core sections operating at different clock rates
US5838692A (en) * 1996-11-14 1998-11-17 Hewlett-Packard Company System and method for extracting realtime debug signals from an integrated circuit
US6154788A (en) * 1997-04-25 2000-11-28 Simple Technology, Inc. Multi-function module incorporating flash memory having additional controller adapted to configure the data from the memory that is to be provided to the external source
US6009496A (en) * 1997-10-30 1999-12-28 Winbond Electronics Corp. Microcontroller with programmable embedded flash memory
US6308255B1 (en) * 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
JP2000194551A (ja) * 1998-12-28 2000-07-14 Oki Micro Design Co Ltd フラッシュメモリ書換え回路
US6654848B1 (en) * 2000-09-15 2003-11-25 Advanced Micro Devices, Inc. Simultaneous execution command modes in a flash memory device
US7444575B2 (en) * 2000-09-21 2008-10-28 Inapac Technology, Inc. Architecture and method for testing of an integrated circuit device
US6678437B2 (en) * 2001-03-30 2004-01-13 Analog Devices, Inc. Method of and architecture for optically switching light communication signals in fiber optic networks and the like
DE10121935A1 (de) * 2001-05-05 2002-11-07 Philips Corp Intellectual Pty Rücksetz-Anordnung für einen Mikrokontroller
US6754765B1 (en) * 2001-05-14 2004-06-22 Integrated Memory Logic, Inc. Flash memory controller with updateable microcode
US6778436B2 (en) * 2001-10-10 2004-08-17 Fong Piau Apparatus and architecture for a compact flash memory controller
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
US20040049627A1 (en) * 2001-11-09 2004-03-11 Flex-P Industries Method and system for controlling compact flash memory
US6772276B2 (en) 2002-01-04 2004-08-03 Intel Corporation Flash memory command abstraction
KR100441608B1 (ko) 2002-05-31 2004-07-23 삼성전자주식회사 낸드 플래시 메모리 인터페이스 장치
KR100499686B1 (ko) * 2002-07-23 2005-07-07 주식회사 디지털웨이 메모리 확장 가능한 휴대용 플래쉬 메모리 장치
EP1408405A1 (en) 2002-10-11 2004-04-14 STMicroelectronics S.r.l. "A reconfigurable control structure for CPUs and method of operating same"
US20050210179A1 (en) * 2002-12-02 2005-09-22 Walmsley Simon R Integrated circuit having random clock or random delay
ITRM20030354A1 (it) * 2003-07-17 2005-01-18 Micron Technology Inc Unita' di controllo per dispositivo di memoria.
US7360130B2 (en) * 2004-05-24 2008-04-15 Jed Margolin Memory with integrated programmable controller
JP3938580B2 (ja) * 2004-12-21 2007-06-27 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130124010A (ko) * 2012-05-04 2013-11-13 삼성전자주식회사 비휘발성 메모리 컨트롤러 및 비휘발성 메모리 시스템

Also Published As

Publication number Publication date
EP1999593A2 (en) 2008-12-10
WO2007103219A3 (en) 2008-07-17
EP1999593A4 (en) 2009-07-01
JP2009528633A (ja) 2009-08-06
US7702885B2 (en) 2010-04-20
US20070226476A1 (en) 2007-09-27
CN101395585A (zh) 2009-03-25
WO2007103219A2 (en) 2007-09-13

Similar Documents

Publication Publication Date Title
KR20080104177A (ko) 마이크로컨트롤러 기반의 플래시 메모리 디지털 제어기를 위한 펌웨어 확장가능 명령
US7639764B2 (en) Method and apparatus for synchronizing data between different clock domains in a memory controller
US7302518B2 (en) Method and system for managing a suspend request in a flash memory
JP2002041489A (ja) 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法
US20040153762A1 (en) Hardware driven state save/restore in a data processing system
WO2002039460A3 (en) Full-speed bist controller for testing embedded synchronous memories
JP2011513843A (ja) 実行装置内のデータ転送のシステムおよび方法
US20030120880A1 (en) System having read-modify-write unit
US20140149732A1 (en) System and method for initializing processor cores in a multiprocessor system
JP2004348707A (ja) 集積回路節電方法
JP2008059300A (ja) マイクロコンピュータ
CN100392619C (zh) 控制闪存存取时间的方法、闪存的存取系统及闪存控制器
JP3628265B2 (ja) マルチプロセッサシステム装置
US20030088801A1 (en) Implementation of wait-states
JP2006221606A (ja) データプロセッサ
EP2278459A1 (en) Faster computer boot method
US8443180B2 (en) Method for operation system startup
JP2008234270A (ja) 情報処理装置および情報処理装置の制御方法
KR100542699B1 (ko) 마이크로컨트롤러의 롬 덤프 모드를 지원하기 위한 장치
JP2004185060A (ja) マイクロコンピュータ
JP2001084142A (ja) マイクロプロセッサ
JP2661310B2 (ja) マイクロコンピュータ
JP3366235B2 (ja) データ読み出し制御装置
JPH0224732A (ja) マイクロコンピュータ
JP5621232B2 (ja) アウトオブオーダー実行プロセッサ

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