KR20080068940A - 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더 - Google Patents

마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더 Download PDF

Info

Publication number
KR20080068940A
KR20080068940A KR1020087015737A KR20087015737A KR20080068940A KR 20080068940 A KR20080068940 A KR 20080068940A KR 1020087015737 A KR1020087015737 A KR 1020087015737A KR 20087015737 A KR20087015737 A KR 20087015737A KR 20080068940 A KR20080068940 A KR 20080068940A
Authority
KR
South Korea
Prior art keywords
command
microcontroller
command decoder
user
decoder
Prior art date
Application number
KR1020087015737A
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 KR20080068940A publication Critical patent/KR20080068940A/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
    • G06F9/30181Instruction operation extension or modification
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

마이크로컨트롤러 기반 플래시 메모리 디지털 제어기 시스템에 사용되는 명령 디코더는 명령디코더를 포함하여, 사용자로부터의 명령들을 해석하고 명령들의 순위 및 명령 모드들을 관리하기 위한 메인 사용 인터페이스로서 제공되는 서브시스테들을 포함한다. 명령 디코더는 프로그램 버퍼, 버스트 리드 모듈, 레지스터 블록, 및 마이크로컨트롤러를 포함하는 다른 서브시스템들에 의해 사용되는, 어드레스, 데이터, 오프코드, 및 다양한 플래그 레지스터들을 포함하는 중요 정보를 또한 저장한다. 또한, 명령 디코더는 클럭 동기화 로직을 포함하며, 마이크로컨트롤러의 슬립 기능을 제어하고, 테스트 모드 제어기로서 제공된다.
명령 디코더, 마이크로컨트롤러, 플래시 메모리, 디지털 정보

Description

마이크로컨트롤러 기반 플래시 메모리 디지털 제어기 시스템용 명령 디코더{COMMAND DECODER FOR MICROCONTROLLER BASED FLASH MEMORY DIGITAL CONTROLLER SYSTEM}
본 발명은 플래시 메모리 디지털 제어기 시스템(Flash memory digital controller system)에 관한 것으로 특히, 마이크로컨트롤러 기반 플래시 메모리 제어기 시스템에 관한 것이다.
비-휘발성 플래시 메모리 모듈에 디지털 정보를 저장 및 그로부터의 검색을 위한 디지털 정보 디지털 제어기 시스템의 사용은 당분야에 알려져 있다. 그러나, 통상적인 디지털 제어기 시스템은 전형적으로 일반적으로 변경할 수 없는 하드와이어드 스테이트 머신(Hardwired State Machine)을 사용한다. 그러한 하드와이어드 스테이트 머신은 전형적으로 명령들의 디코딩에서 어떠한 변경을 위한 리코딩(Recoding)을 요구한다.
따라서, 개선된 마이크로컨트롤러 기반 플래시 메모리 제어기 시스템에 대한 필요성이 존재한다. 개선된 시스템은 명령들의 변경 가능한 관리 및 속도 개선 및 파워 절약을 제공하기 위해 마이크로컨트롤러를 오프로딩(Offloading)할 수 있는 명령 디코더를 포함해야 한다. 본 발명은 그러한 필요성을 다룬다.
본 발명은 마이크로컨트롤러 기반 플래시 메모리 제어기 시스템을 위해 사용되는 명령 디코더를 제공한다. 디지털 제어기는 명령 디코더를 포함하는 다중의 서브시스템들을 포함하며, 그것은 사용자로부터의 명령들을 해석하고 명령들의 우선 순위 및 명령 모드들을 관리하기 위한 메인 사용자 인터페이스로서 제공된다. 명령 디코더는 프로그램 버퍼, 버스트 리드 모듈(Burst Read Module), 레지스터 블록, 및 마이크로컨트롤러를 포함하는 다른 서브시스템들에 의해 사용되는 어드레스, 데이터, 및 다양한 플래그(Flag) 레지스터들을 포함하는 결정적인 정보를 또한 저장한다. 또한, 명령 디코더는 클럭 동기화 로직(Clock Synchronization Logic)을 포함하며, 마이크로컨트롤러의 슬립(Sleep) 기능을 제어하고, 테스트 모드 제어기로서 제공된다.
도 1은 본 발명에 따른 명령 디코더를 포함하는 디지털 제어기 시스템의 바람직한 실시 예를 도시한 도면이다.
도 2는 본 발명에 따른 도 1의 명령 디코더의 바람직한 실시 예를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 마이크로컨트롤러의 사용을 요구하는 타임드 이벤트(Timed Event)의 개요를 도시한 도면이다.
본 발명은 마이크로컨트롤러 기반 플래시 메모리 제어기 시스템에 명령 디코 더를 제공한다. 다음의 설명은 당업자가 본 발명을 만들고 사용할 수 있도록 하기 위해 제시되며, 특허 출원 및 그 요건들의 정황하에 제공된다. 바람직한 실시 예에 대한 다양한 변형들이 당업자에게는 기꺼이 명백할 것이며, 일반적인 원리들이 그 밖의 실시 예들에 여기서 적용될 수 있다. 따라서, 본 발명은 나타낸 실시 예에 한정할 의도는 추호도 없으며, 여기서 설명하고 있는 원리들 및 특징들과 일관되는 가장 넓은 범위를 용인해야 한다.
본 발명의 특징들을 보다 자세히 설명하기 위해, 이하의 논고와 연계하여 도 1 내지 3을 참조하기 바랍니다.
본 발명에 따른 명령 디코더는 사용자 인터페이스, 명령 해석기, 및 비-휘발성 플래시 메모리 모듈에 디지털 정보의 저장 및 그로부터의 검색을 위한 디지털 제어기 시스템의 시스템 관리기를 제공한다. 특히, 명령 디코더는 비동기 사용자 도메인(Asynchronous User Domain) 및 주변에 설치된 동기 디지털 제어기 시스템 예컨대, 표준 8-비트 마이크로컨트롤러 사이에서 교량처럼 작용하는 디지털 스테이트 머신을 포함한다. 명령 디코더는 사용자 명령들의 검출 및 관리를 위해, 명령들과 관련된 정보의 관리, 시스템 클럭의 제어, 및 명령이 복합 "타임드(Timed)" 명령을 요구할 때 마이크로컨트롤러의 웨이킹 업(Waking up)을 제공한다. 본 명세서에서 사용되는 바와 같이, 타임드 명령은 일 사이클 이내에 실행할 수는 없지만, 명령이 완전히 실행되도록 일련의 이벤트들이 발생할 것을 요구하는 명령이다. 마이크로컨트롤러는 타임드 이벤트들에 포함되는 단계들을 수행하기 위해 사용된다. 타임드 이벤트들의 예로는 플래시 메모리의 프로그래밍 및 삭제, 비휘발성 록(Lock) 비트들의 세팅(Setting) 또는 클리어링(Clearing), 플래시 메모리로부터 프로그래 버퍼로의 페이지 전송들, 및 다양한 테스트 모드 및 확장된 명령들을 포함한다.
도 1은 본 발명에 따른 명령 디코더를 포함하는 디지털 제어기 시스템의 바람직한 실시 예를 도시한 도면이다. 디지털 제어기 시스템(100)은 표준 마이크로컨트롤러(107)를 포함한다. 마이크로컨트롤러(107)와 별개로, 디지털 제어기 시스템(100)은 페이지 전송 모듈(101), 프로그램 버퍼 모듈(102), 메모리 평면 인터페이스(103), 버스트 리드 모듈(104), I/O(Input/Output) MUX(Multiplexer) 모듈(105), 명령 디코더(106), 및 레지스터 모듈(108)을 포함하며, 이들의 기능은 본 출원의 양수인에게 양도된 []에 출원된 시리얼 번호 []의 "Microcontroller Based Flash Memory Digital Controller System"이라는 명칭의 공통-계류중인 미합중국 특허 출원에 설명되어 있으며, 여기서 참조로서 협조된다.
도 2는 본 발명에 따른 명령 디코더(106)(도 1)의 바람직한 실시 예를 도시한 도면이다. 도 2에 도시된 바와 같이, 명령 디코더(106)는 명령 디코딩 스테이트 머신(201), 보류/재개 레지스터들(202), 마이크로컨트롤러 엑세서블 레지스터들(203), 및 동기화 로직(204)을 포함한다. 명령 디코딩 스테이트 머신(201)은 사용자 명령들을 디코딩하고, 두 개의 클럭 도메인들, 사용자 클럭 및 시스템 클럭을 제공한다. 사용자 클럭(UserClock)은 사용자 엑세스 시퀀스(User's Access Sequence)에 의해 결정되는 속도로 런(Run)한다. 시스템 클럭(DigClk)은 디지털 제어 시스템의 시스템 클럭을 런오프(Run Off)시킨다. 둘의 클럭 도메인들은 명령들 을 클럭 기반 마이크로컨트롤러(107)로부터의 신호들을 기다리게 할 필요없이, 디지털 제어기 시스템(100)이 사용자가 원하는 속도로 명령들을 수령하게 한다. 명령이 보류되고 후에 복구되는 경우, 보류/재개 레지스터들(202)은 상태 정보를 저장한다. 레지스터들(203)은 이하에서 또한 설명하는 바와 같이, 기능들에 대한 마이크로컨트롤러의 엑세스가 가능하다. 동기화 로직(204)은 도메인들을 동기시키고, 결정론적 및 규칙적인 방식으로 신호들이 사용자로부터 플래시 제어기로 횡단하게 한다. 동기화 로직(204)은 또한 명령이 타임드 명령을 요구할 때 웨이크(Wake) 신호를 마이크로컨트롤러(107)에 동기시킨다.
명령 디코더(106)는 다음의 문제들을 해결한다:
명령 디코더(106)는 고속 가변 데이터 속도 사용자 시스템(High Speed Variable Data Rate User System)을 저속 고정 사이클-시간 마이크로컨트롤러 기반 플래시 메모리 제어기(Slower Speed Fixed Cycle-Time Microcontroller Based Flash Memory Controller)에 인터페이스로 연결시킨다. 이것은 도메인들 고속 하드웨어 구현 스테이트 머신(High Speed Hardware Implemented State Machine) 즉, 그 하나는 UserClock에 의해 결정되는 속도들로 런하고, 다른 하나는 DigClk를 런오프시키는 두 개의 클럭들을 포함하는 명령 디코더 스테이트 머신(201)을 이용함으로써 수행된다. 이것은 디지털 제어기 시스템(100)이 사이클 기반 마이크로컨트롤러(107)로부터의 신호들을 기다릴 필요없이 사용자가 원하는 속도로 명령들을 수용할 수 있게 한다. 게다가, 그것은 디지털 제어 시스템(100)이 순수한 마이크로컨트롤러 기반 솔루션을 이용하여 용이하게 수행할 수 없는 "Ready(RDY/BSY)" 신호의 형태로 사용자에게 즉시 피드백을 제공하게 한다. Ready 신호는 사용자 클럭 도메인에서 클리어(Clear)되고, DigClk 도메인에서 펌웨어(Firmware)에 의해 셋(Set)된다. 사용자가 디바이스 I/O 상에서 본 상승 Ready 신호는 내부 RDYBSY 레지스터의 기능, 싱크-돈(sync-done) 신호, 및 endcmd 신호이다. 이것은 펌웨어가 RDYBSY 레지스터를 세트시킬 때와 디바이스가 추가적인 명령들에 대기하고 있음을 사용자가 통보받았을 때 사이에 추가적인 수의 DigClk 클럭들을 허용한다. 이러한 추가 사이클들은 필요하다면, 펌웨어의 몇몇 추가적인 클린업(Cleanup) 사이클들의 셋 및 마이크로컨트롤러(107)의 슬립(Sleep)으로의 우아한 진행에 유용하다.
일 실시 예에서, 명령 디코더(106)는 명령 디코더(106)는 고정 속도 디지털 제어기를 알려지지 않거나 또는 가변적인 속도 사용자 시스템에 인터페이스 연결시킬 때 생성되는 복합 비동기 클럭 도메인들의 문제를 해결한다. 명령 디코더(106)가 도메인들의 동기화를 책임지게 하고, 신호들이 결정론적 및 규칙적인 방식으로 사용자로부터 플래시 제어기로 횡단케 함으로써 문제는 해결된다. 동기화 로직(204)은 동기화 로직(204)(일 실시 예에서)가 RDYBSY 레지시트 및 마이크로컨트롤러(107)의 슬립 기능에 단단히 결합된다는 점에서 유일무이하다. 새로운 "타임드 이벤트" 명령이 디코딩되고 디지털 도메인에 동기될 때까지, 마이크로컨트롤러(107)은 슬립 모드로부터 깨어나지 않는다. 이러한 점에서, sel_digclk 신호는 하이가 되어 마이크로컨트롤러(107)를 깨울것이다. 펌웨어는 사용자 어드레스, 사용자 데이터, 및 오프코드(Opcode) 레지스터들 뿐만 아니라 디지털 도메인으로부터 CMDCODE 레지스터를 현재 안전하게 리드할 수 있다.
일 실시 예에서, 명령 디코더(106)는 명령 디코더(106)가 하드웨어-구현 스테이트 머신으로서, 항시 "온"이고, 슬립 메카니즘(Sleep Mechanism)의 사용을 통해 필요할 때 보다 높은 파워의 마이크로컨트롤러(107)를 깨우기 위한 와치 독(Watch Dog)으로 제공되게 함으로써 파워 관리이 문제를 해결한다.
일 실시 예에서, 명령 디코더(106)는 마이클로컨트롤러(107)가 슬립하고 있는 동안 엑세스를 위해 클럭 신호들을 필요로하는 주변기기들 및 메모리들을 위한 클럭을 발생시킴으로써 클럭 제어의 문제를 해결한다. 또한, 명령 디코더(106)는 제어기 방식(예컨대, 발진기가 로우인 동안 클럭을 턴온 및 턴오프하는 것)에서의 온오프를 함으로써 시스템 클럭을 온 및 오프시킬 때의 글리치(Glitch)들을 방지한다. sel_digclk 신호는 DigClk 신호를 마이크로컨트롤러(107)로 게이트시키기 위해 시스템의 CPU 모듈에서 사용된다.
일 실시 예에서, 명령 디코더(106)는 하기로써 명령 관리의 문제를 해결한다: (1) 마이크로컨트롤러(107)에 의한 엑세스를 위해 레지스터들(203)에 어드레스 및 오프코드 정보를 저장하며; (2) 시스템(100)의 상태를 기초로, 어떠한 명령들 막거나 또는 허용하는 명령 순위를 제어하며; (3) 마이크로컨트롤러(107)에 필요한 것으로서 인터럽트들을 발생시키고, 마이크로컨트롤러(107)로부터의 인터럽터의 ACK(Acknowledgement)를 처리하며; 그리고 (4) 명령이 보류되고 나중에 복구될 때 어떤 상태 정보를 저장 및 복구시킨다. 저장 및 복구되는 상태 정보는 명령에 대응하는 어드레스 및 데이터 뿐 만 아니라, 복구될 명령의 "명령 코드"를 포함한다. 이것은 보류/재개 레지스터들(202)로서 도 2에서 찾을 수 있다. CMDCODE 레지스터, usrAdr, 및 usrData 레지스터들은 합법의 재개 명령을 수신할 때 이러한 보존 레지스터들로부터 복구된다.
일 실시 예에서, 명령 디코더(106)는 명령이 디코딩될 때 테스트 모드 명령들을 해석하고 필요한 테이스 모드 신호들을 제어함으로써 테스트 모드 제어의 문제를 해결한다. 테스트 모드들은 그러한 명령이 디코딩될 때 필요한 테스트 모드 신호들에 대한 직접적인 엑세스를 허용한다. 이러한 테스트 모드들은 RAM들, ROM, 및 마이크로컨트롤러의 어드레스 및 데이터 버스들 상의 레지스터들에 대한 직접 엑세스를 허용한다. 따라서, 이러한 기능은 마이크로컨트롤러(107)의 슬립 기능에 단단히 결합된다. 이러한 모드들은 마이크로컨트롤러(107)이 경쟁을 방지하기 위해 슬립할 때 단지 엑세스될 수 있다. 하드웨어는 마이크로컨트롤러(107)가 슬립할 때까지 엑세스를 방지한다. 특별 슬립 명령은 초기화 동안을 제외한 어떠한 때에서도 사용자가 마이클로컨트롤러(107)를 슬립하게 할 수 있다. 펌웨어는 부팅동안, 핀(GPIO(General-Purpose I/O)와 같은)을 폴링(Polling)시킴으로써, 이 핀이 디바이스가 부팅을 멈추고 슬립이 되어야 함을 가리키게 하여, 이러한 한계를 극복할 수 있도록 설계될 수 있다.
특별 테스트 모드들은 다음을 포함한다:(1) 마이크로컨트롤러의 프로그램 카운터(펌웨어 ROM)의 어드레스)가 디버그(Debug) 및 평가 동안의 사용을 위해 시스템 출력들 상에서 관찰되게 하는 능력; (2) 디지털 제어기 시스템(100)을 포함한 모드 온보드 메모리들에 대해 직접 읽고 쓸 수 있는 능력; (3) 마이크로컨트롤러의 데이터 버스 상의 모든 레지스터들을 직접 읽고 쓸 수 있는 능력; (4) 테스트 모드 동안, 특별 사용자 명령을 기초로 마이크로컨트롤러(107)를 슬립 모드에 놓을 수 있는 능력; 그리고 (5) "확장된 명령들"을 해석하는 동안 테스트 모드의 상태를 볼 수 있는 능력.
일 실시 예에서, 명령 디코더(106)은 명령들의 확장 문제를 해결한다. 디코딩되어야 할 대부분의 명령들은 시스템(100)이 설계될 때에 결정되며, 따라서 하드웨어와 협조된다. 소프트웨어로 새로운 명령들을 추가할 수 있는 능력을 갖는 것이 바람직하다. 그러한 확장성은 "Extended Command" 명령의 사용을 통한 명령 디코더(106)에 의해 제공된다. "Extended Command" 명령이 송부되는 경우, 사용자는 또한 명령 디코더(106)에 의해 오프코드 레지스터에 저장된 (예컨대, 8-비트) 오프코드를 또한 송부한다. 명령 디코더(106)는 이어 명령이 제시되었음을 알려 마이크로컨트롤러(107)를 깨운다. 펌웨어가 명령이 "Extended Command"임을 인지하는 경우, 펌웨어는 오프코드의 값을 기초로, 오프코드 레지스터 및 진행을 독출해야 할 것을 안다. 이것은 시시템(100)이 제조된 후 추가될 수 있는 256의 추가적인 명령들의 가능성을 제공한다. 또한, 테스트 모드 신호의 값을 봄으로써, 시스템(100)은 256의 추가적인 테스트 모드 명령들까지 지원할 수 있다.
일 실시 예에서, 명령 디코더(106)는 3 형태의 명령들을 담당한다.
1. 직접 사용자 명령: 이 경우, 명령 디코더(106)은 명령에 의해 요청됨에 따라 레지스터들, 신호들, 또는 메모리들 직접적으로 엑세스한다. 엑세스는 신속하며, 마이크로컨트롤러(107)는 슬립을 유지한다.
2. 마이크로컨트롤러/펌웨어의 사용을 요구하는 타임드 이벤트: 이 경우, 명 령 디코더(106)는 RDY 신호를 강하시키고, 마이크로컨트롤러(107)를 깨운다. 마이크로컨트롤러(107)가 깨어나면, 마이크로컨트롤러(107)는 오프에서 벗어나는 시점에 펌웨어 코드의 실행을 단지 시작한다. 따라서, 도 3에 도시된 바와 같이, 이러한 방식은 메인 루틴이 CMDCODE 레지스터를 폴링하는 단순 루프가 되도록 설계될 것을 요구한다. 이어, 그것은 CMDCODE 레지스터의 값을 기초로, 적절한 기능 또는 서브루틴을 호출한다. 루틴을 처리하는 동작이 종료될 때, 그것은 그 마지막(또는 거의 마지막) 단계는 RDY 하이로 설정하여 스스로 슬립에 놓는 메인 루프로 되돌아간다.
3. 그 목적이 현재 실행하고 있는 타임드 이벤트을 인터럽트시키는 것인 보류 명령: 이 경우, 명령 디코더(106)는 마이크로컨트롤러(107)에 인터럽트를 발생시킨다. 보류 명령 시퀀스는 펌웨어 인터럽 핸들러(Firmware's Interrupt Handler)에 포함된다.
사용자 인터페이스 역할을 하는 분리된 명령 디코더(106)는 명령들을 마이크로컨트롤러(107)와 독립적으로 수신 및 관리한다. 명령 디코더(106)는 시스템을 위한 교통-경찰로서의 역할을 하며, 합법적인 명령들을 실행하고, 불법적인 명령들을 무시한다. 명령이 실행될 때, 명령은 명령 디코더(106) 단독 또는 마이크로컨트롤러(107)를 웨이크-업(Wake up)시키므로써 수행된다. 마이크로컨트롤러(107)의 이용을 필요로 하지 않는 명령의 예로는 읽기 명령, 또는 버스트 제어 레지스터로의 쓰기 또는 소프트/하드 록 레지스터들로의 쓰기가 있다. 마이크로컨트롤러(107)의 이용을 필요로 하는 명령의 예로는 프로그램 또는 삭제 또는, 그 밖의 다른 "타임 드(timed)" 명령이 있다.
이러한 독립형 명령 디코더(106)는 다음과 같은 이점들을 제공한다:
(1) 단단히 결합된 동기, 슬립(Sleep), 및 대기/비지(Ready/Busy) 제어는 복합 다중-클럭 사용자 인터페이스에 명쾌한 솔루션을 제공한다.
(a) 단순 명령들을 취급하기 위한 하이브리드 디지털 플래시 메모리 제어기 시스템(100)을 갖는 것이 가능하여, 그에 따라 단순 명령들을 처리하기 위한 전용 스테이트 머신의 속도 이점들을 포기하지 않고, 복합 다중-사이클 이벤트 명령들을 마이크로컨트롤러(107)에 의해 제공되는 유연성으로 처리될 수 있다. 하이브리드 시스템은 또한 명령 해석 및 단순 명령 실행을 위해 보다 작은 저 파워 스테이트 머신을 사용하는 것을 가능하게 하며, 그에 따라, 필요할 때 마이크로컨트롤러(107)를 단지 이용함으로써 파워를 절감할 수 있다.
(b) 명령어 디코더(106)는 마이크로컨트롤러(107)의 부하를 오프로드하여, 마이크로컨트롤러(107)가 명령에 따라 작동하고 있는 동안, 마이크로컨트롤러(107)는 새로운 명령들, 명령 순위화, 또는 관리를 관여해야 할 필요가 없다. 이것은 코드 효율을 제공하며, 경쟁성의 핵심 기준인 플래시 메모리의 빠른 프로그래밍과 삭제에 중요한 타임드 이벤트들의 보다 빠른 처리를 고려한다.
(c) 진행 중인 타임드 이벤트가 없을 때, 명령 디코더(106)는 마이크로컨트롤러(107)가 턴 오프되게 한다(슬립된다). 이것은 저 파워 배터리 작동 시스템들에서 극히 중요한 파워를 절약한다.
(2) 쓰기 작업의 어드레스를 저장하고 읽기 명령의 어드레스에 비교함으로써 플래시 메모리를 동시에 읽고 쓸 수 있는 능력을 지원한다. 명령 디코더(106)는 다른 평면에 쓰는 동안 한 평면의 읽기를 허용하는 기본적인 플래시 메모리의 멀티-평면 아키텍쳐에 박식하다. 명령 디코더(106)는 어떠한 작용이 무슨 평면에서 일어나고 있는지를 구분할 수 있으며, 그에 따라 읽기가 발생되게 하거나 또는 막을 수 있으며, 상태 정보(폴링 상태를 포함)를 독출된 데이터 대신에 사용자에게 제공할 수 있도록 동작할 수 있다.
(3) 마이크로컨트롤러(107)는 삭제 명령을 처리하기에 비지(Busy)인 동안, "삭제 보류" 명령이 발생되면 인터럽트를 발생시키며, 보류된 삭제 루틴의 진행을 추적하여, 다중 단계 삭제 과정의 정확한 시점에서 삭제 과정을 재개한다.
명령 디코더(106)는 재개 명령이 실행될 때 후에 복구되는 또한 레지스터들 내의 명령 코드, 데이트 및 어드레스를 저장함으로써, 명령의 상태를 또한 보존할 수 있다. 삭제 명령이 앞서 보류되었음을 가리키는 플래그 및 보류 동작에 대한 부가적인 상태 정보를 저장하는 SSR(Suspend Status Resister)(임으로 다른 블록세 배치됨)과 함께, 이것은 펌웨어가 유효한 재개 명령이 디코딩될 때 펌웨어가 멈춘 곳을 부드럽게 픽업하는 것을 가능케 한다.
보류 상태 레지스터들은 삭제 보류 및 삭제 재기 연산들을 위한 이점들을 제공한다. 삭제 명령은 삭제되는 데이터의 크기에 의존하는 많은 단계들(삭제 명령의 형태)을 포함하므로, 만일 명령이 보류 명령 명령에 의해 중지되면, 명령이 다시 재기될 때 펌웨어가 어디에서 픽업해야 할지 나중에 알 수 있도록, 시퀀스에서 명령이 얼마나 진행되었는지를 추적하는 것은 이점이 있다. (예컨대, 8-비트) 보류 상태 레지스터는 이러한 목적에 알맞다. 펌웨어가 삭제 명령을 통해 진행됨에 따라, 펌웨어는 SSR에서의 각 단계를 추적한다. 삭제 재기 명령이 발생되는 경우, 펌웨어는 이미 무엇이 수행되었는지를 알기 위해 SSR를 보게 되어, 그 결과, 펌웨어는 완료된 단계들을 다시 수행할 필요가 없게 된다.
(4) 디지털 제어기 플래시 모듈이 사용되는 곳에서 시스템의 클럭에 비동기로 설정된 속도로 마이크로컨트롤러(107)가 실행되게 하여, 마이크로컨트롤러 클럭으로부터 명령 클럭을 분리시킨다. 이것은 다중-사이클 타임드 이벤트가 어디에서 발생되던지 사용자 명령들에 빠른 응답들을 또한 허용한다. 이것은 마이크로컨트롤러(107)이 명령을 인지하는 데에 약간의 시간이 소요된다는 사실에도 불구하고, 대기 신호가 명령 디코더(106)에 의해 즉시 드롭(Drop)되게 하는 것이 가능하게 한다.
사용자 및 동기 플래시 메모리 제어기 사이의 인터페이스로서 명령 디코더(106)을 이용하는 다른 장점은 모든 클럭 도메인 횡단들이 한 장소에서 관리될 수 있다는 것이다. 이것은 사용자 클럭 및 시스템 클럭 사이의 보다 단순한 인터페이스를 고려하며, 보다 용이하게 그들 사이에서 신호들을 높은 신뢰성으로 전송할 수 있게 한다. 또한 그것은 보다 단순한 클럭 트리를 구현하며, 시스템에서의 타이밍을 동기화 및 점검에 사용되는 타이밍 제약을 단순화시킨다. 전체적으로 그것은 보다 신뢰할 수 있는 시스템에 기여한다.
(5) 소프트웨어에 확장가능 명령들에 대한 대비, 그에 따라 "확장된 명령"이라는 단일 명령은 명령 디코더(106)가 개별 오프코드 레지스터에 저장한 오프코드 와 함께 중지된다.
이러한 명령을 수신하는 경우, 마이크로컨트롤러(107)은 웨이크되어 오프코드 레지스터를 살펴야 함을 알게 된다. 오프코드의 값에 의존하여, 펌웨어는 그 행위가 개조된다. 예컨대, 8-비트 오프코드 레지스터 및 테스트 모드 신호를 사용함으로써, 256개까지의 추가적인 사용자 명령들 및 256개까지의 추가적인 테스트 모드 명령들이 제공된다.
(6) 다음을 제공하는 디지털 제어기 시스템(100)에 대한 테스트 인터페이스로서 제공된다:
(a) 주어진 시간에 마이크로컨트롤러가 무었을 하는지를 판별하기 위해 사용될 수 있는 마이크로컨트롤러의 프로그램 카운터(어드레스 카운터)의 사용자 가시성. 이것은 만일 펌웨어 행(Hang) 및 간헐성 버그가 발생하는 경우에 특히 유용할 수 있다.
(b) 마이크로컨트롤러(107)가 슬립하는 동안, 마이클로컨트롤러의 데이터 상의 모든 레지스터들을 엑세스. 이 기능은 문제가 검출되어 시스템의 상태를 판단할 때 평가 및 디버그(Debug) 동안 매우 유용하다. 이것은 명령 디코더(106)가 특정 테스트 모드 동안 마이크로컨트롤러의 어드레스 및 데이터버스를 제어하게 함으로써 완성된다. 일 실시 예에서, 마이크로컨트롤러(107)이 슬립인 경우 이러한 모드에 단지 진입될 수 있다. 마이크로컨트롤러(107)를 포함하는 블록 내에 위치한 블록 중앙 버스 멀티플렉싱 유니트는 단일의 어드레스 버스 및 클럭을 출력시켜, 버스 상의 레지스터들은 이러한 디버그 모드가 존재함을 알 필요가 없다. 그들은 일 상 쵸크 및 어드레스에 응답하며, 진실한 소스가 마이크로컨트롤러(107)를 통해 작용하는 펌웨어 또는 명령 디코더(106)를 통해 작용하는 사용자인지를 전혀 모른다.
(c) 어드레스 공간 재배치를 제공한다. 이것은 사용자에 의해 엑세스될 수 있으며, 생산 명세서에 나타낸 바와 같이, 특정 어드레스에 위치되어야 하는 레지스터들 및 마이크로컨트롤로(107)의 어드레스 공간에 존재해야 하는 동일한 레지스터들 사이에 솔기없는 경계를 형성한다. 레지스터들을 플래시 메모리 생산 명세서에 나타낸 마이크로컨트롤러 어드레스에 배치하는 것은 시스템 설계에 불필요하고 부담되는 제약이다. 게다가, 모드 또는 블록/섹터/평면이 무엇을 어드레스하고 있는지에 의존하여 동일한 어드레스에 하나 이상의 실재 레지스터를 배치하는 것이 바람직하다. 메모리 재배치 기법의 이용은 명령 디코더(106)가 사용자로부터 논리적인 어드레스들을 갖게 하며, 그들을 마이크로컨트롤러의 어드레스 공간 내에서의 그들의 물리적인 위치에 재배할 수 있게 한다.
(d) 디지털 메모리 제어기 내의 모든 RAM 및 ROM에 대한 엑세스. 이것은 일반 및 테스트 모드에서 프로그램 버퍼로의 직접 읽기 및 쓰기를 허용하며, 마이크로컨트롤러의 데이터 RAM 및 명령(Instruction) RAM의 직접 읽기 및 쓰기에 대비한다.
(e) 마이크로컨트롤러(107)가 실행하고 있는 동안, 시스템(100)의 상태를 디버깅할 필요가 있다면, 마이크로컨트롤러(107)를 슬립에 놓는다.
(f) 많은 모드들에 대해 단일의 "종료(Exit)" 명령으로 펌웨어를 단순화시킨다. 실시 예에서, 하나의 종료 명령은 다음의 모드들로부터 벗어난다: 종료 레지스 터 리드 모드; 종료 마이크로컨트롤러 레지스터 리드 모드; 종료 폴 모드; 종료 명령 SRAM 리드 모드; 종료 데이터 SRAM 리드 모드; 종료 페이지(프로그램) 버퍼 SRAM 리드 모드; 종료 ROM 리드 모드; 종료 PC(프로그램 카운터) 리드 모드.
(7) 다른 서브시스템들에 제어 신호들을 제공한다:
(a) 사용자 모드: 어떤 어드레스, 데이터, 또는 다른 신호들을 그들의 블록들에 멀티플렉싱시켜야 하는지를 다른 블록들에게 나타낸다:
(ⅰ) READ : 이것은 프래시 메모리 코어의 일반 사용자 리드이다;
(ⅱ) REG : 이것은 마이크로컨트롤러의 레지스터들의 사용자 리드이다;
(ⅲ) ISRAM : 테스트 모드에서 명령 SRAM으로의 읽기/쓰기( Read/Write);
(ⅳ) DSRAM : 테스트 모드에서 마이크로컨트롤러의 데이터 RAM으로의 읽기/쓰기;
(ⅴ) PSRAM : 테스트 모드에서 프로그램 버퍼 RAM으로의 읽기/쓰기;
(ⅵ) ROM : 테스트 모드에서 메인 명령 ROM으로의 읽기/쓰기
(ⅶ) PC : 테스트 모드에서 디버깅 및 평가를 위해 데이터 I/O를 통해 마이크로컨트롤러의 프로그램 카운터를 밖으로 가져간다.
(b) 대기/비지(Busy) 플래그- 시스템이 새로운 명령들을 가져오기 위해 대기인지 또는 명령을 처리하여 비지인지를 그리고 동기화 및 슬립 로직의 집적화 부분인지를 나타낸다. 일 실시 예에서, 대기/비지 플래그는 최상위 레벨 I/O 신호를 통해 그리고 폴링 모드에서 데이터 출력를 통해 사용자에게 제공되나, 또한 의사 결정을 위해 다른 서브시스템에 이용될 수 있다. 또한, 대기/비지 플래그는 디바이스 를 슬립에 놓기 위해 사용된다. 펌웨어 및 다른 서브시스템들은 대기/비지 레지스터에 대한 쓰기 엑세스를 가지며, 그것을 하이(대기)로 설정함으로써, 디바이스를 스립에 놓을 수 있다. 그것을 로우로 설정하는 것은 디바이스를 웨이크 업(Wake up)시킨다.
(c) MSR 신호 클리어- MSR(Memory Status Register)은 프로그램 버퍼 모듈 내에 배치되어, 페이지의 어떤 섹터들이 프로그램되고 있는지를 가리킨다. "Clear PB Flags" 명령이 사용자에 의해 발생되는 경우, 명령 디코더(106)는 MSR을 클리어하기 위해 신호를 전송한다.
(d) " Plane 0 read while busy " signal / " Plane I read while busy " - 명령 디코도(106)의 이러한 출력은 사용자가 비지 평면(Busy Plane)으로부터 읽기를 시도하고 있음을 나타낸다. 플래시 메모리는 다중의 평면들로 구성되어, 사용자가 "타임드 이벤트"가 다른 평면에서 발생하고 있는 동안에 일 평면으로부터 읽는 것을 가능하게 한다. 액티브 이벤트 (명령)을 갖는 평면은 "비지"이다. 사용자가 비지 평면으로부터 읽기를 시도하는 경우, 신호들은 설정되어 다른 서브시스템들에 출력되어, 그에 따라 실행할 수 있다. 예컨대, I/O 먹스(Mux) 모듈(105)은 폴모드가 활성되고 비지 신호가 또한 활성인 동안 읽기라면, 사용자는 현재 명령의 상태에 관한 확실한 데이터를 제공해야 할 필요하다는 것을 알고 있다. 또한, 버스트 리드 모듈(104)은 그것이 부드럽게 멈춰야 할 필요가 있는 경우에 비지 평면을 읽으려고 하고 있는지를 인지하기 위해 이러한 정보를 이용한다.
(e) 보충 비트( Complement Bit ) - 펌웨어가 워드/바이트 또는 단일 펄스 프 로그램 명령을 이행하고 있는 동안, 그들이 비지 평면으로부터의 독출을 시도하는 경우에 작성하고 있는 데이터의 보충을 사용자에게 제공하는 것이 필요하다. 워드의 값 또는 프로그램되는 바이트를 알기 위해 그리고 사용자에게 출력시키기 위해 그 보충을 I/O 먹스 모듈(105)에 제공하기 위해, 명령 디코더(106)는 특별한 위치에 있다.
(f) 폴모드 신호( Pollmode signal ) - 폴모드 레지스터는 명령 디코더(106) 내에 배치되나, "read while busy" 신호들이 활성화되는 경우, 무슨 데이터를 사용자에게 제공할 것인지를 결정할 때에는 I/O 먹스 모듈(105)에서 이용된다. 따라서, 폴모드 신호는 출력으로서 I/O 먹스 서브시스템에 제공된다.
(g) " Exit Pollmode " 신호 - 에러 비트 레지스터는 레지스터 모듈이라는 서브시스템에 배치된다. 이 비트는 그것이 활성화되어 있는 동안 그리고 활성화된 후 폴모드가 온이면, 명령의 에러 상태를 저장한다. 사용자가 폴모드(사용자 명령)를 종려하는 경우, 명령 디코더(106)는 폴모드를 종료하고 있음을 가리키는 신호를 레지스터 모듈(108)에 전송하여, 그에 따라 레지스터 모듈(108)은 에러 비트를 클리어시킨다.
(h) Init flag - 초기화(Init) 플래그는 디바이스가 초기화하고 있음을 가리키는 레지스터이다. 디바이스가 사용자 또는 파워 업에 이해 리셋될 때 시작 플래그는 하이로 설정되어, 펌웨어가 대기/비지 플래그를 하이로 설정하는 제 1 시간까지 하이를 유지한다. 초기화 플래그는 여러 이유로 유용하다. 일 실시 예에서, 초기 플래그는 초기화 동안 메인 사용자 어드레스 버스 상에서의 어드레스 변화를 방 지하는데에 이용된다. 이것은 모든 초기화가 완료되기 이전에 전하 펌프의 활성화에 의해 야기될 수 있는 부품의 손상을 방지한다. 초기화 플래그는 디바이스가 사용자에 의해 또는 파워 온 리셋에 의해 리셋되었는지를 가리키는 값을 저장하는 레지스터모듈(108) 내의 POR_LAT 레지스터를 클럭시키기 위해 사용된다. 이러한 숙지는 채움 초기화 부트 루틴 또는 단축된 루틴을 실행할지를 판단할 때 펌웨어에게는 중요하다. 단축 루틴은 상당히 적은 시간을 요하고, 보다 빠르고 보다 경쟁적인 부분에 기여하기 때문에, 사용자 리셋 동안의 단축 루틴은 선취권이 있다. 펌웨어가 그것의 부트 루틴을 진행할 수 있도록 부분이 리셋될 때 그것은 웨이크-업 상태로 초기화되게 하는 것은 명령 디코더(106)에 이용된다.
(i) "디지털 클럭을 선택( Select Digital Clock )" - 이것은 마이크로컨트롤러(107)에 클럭을 게이트(Gate)하느데에 사용되며, 그에 따라 디바이스의 저 파워 모드를 제어한다. 또한, 디지털 클럭을 턴 오프시키고 마이크로컨트롤러(107)를 슬립에 놓으므로써, 명령 디코더(106)가 경합의 발생없이, 마이크로컨트롤러의 데이터 및 어드레스 버스들을 제어할 수 있게 한다. 이것은 테스트 모드 엑세스 동안 데이터 버스 상의 레지스터들에게는 중요하다.
비록 본 발명을 나타낸 실시 예들에 따라 설명하였지만, 실시 예들에 변동이 있을 수 있으며 그러한 변동들이 본 발명의 사상 및 범위에 있음을 당업자라면 기꺼이 인정할 것이다. 따라서, 많은 변형들이 첨부된 청구항들의 사상 및 범위로부터 벗어나지 않고 당업자에 의해 행해질 수 있다.

Claims (18)

  1. 명령을 디코딩하기 위한 명령 디코딩 스테이트 머신;
    마이크로컨트롤러에 의해 엑세스가 가능하며, 상기 명령에 대한 정보를 저장하기 위한 다수의 레지스터들; 및
    웨이크(Wake) 신호를 포함하며, 여기서, 상기 명령이 타임드(Timed) 명령을 요구하는 경우 상기 웨이크 신호는 상기 마이크로컨트롤러에 전송되며, 상기 마이크로컨트롤러가 어웨이크(Awake)하는 경우, 상기 명령이 마이크로컨트롤러에 오프로드되는 것을 특징으로 하는 명령 디코더.
  2. 제 1 항에 있어서, 상기 명령 디코더는 상기 마이크로컨트롤러와 독립적으로 사용자 명령들을 관리하는 것을 특징으로 하는 명령 디코더.
  3. 제 1 항에 있어서, 상기 명령 디코딩 스테이트 머신은 논-타임드(Non-timed) 명령들을 처리하며, 상기 명령이 상기 타임드 명령을 요구하는 경우, 상기 마이크로컨트롤러는 어웨이크되며, 사용되는 않는 경우에는 상기 마이크로컨트롤러가 슬립(Sleep)되는 것을 특징으로 하는 명령 디코더.
  4. 제 3 항에 있어서, 상기 타임드 명령은 단일 사이클 이내에 실행될 수 없고, 상기 타임드 명령이 완전히 실행시키기 위해 일련의 이벤트들의 발생을 요구하는 명령을 포함하는 것을 특징으로 하는 명령 디코더.
  5. 제 1 항에 있어서, 상기 명령 디코더는 상기 명령이 보류되고 그 후 복구되는 경우, 상태 정보를 저장하기 위한 보류/재기 레지스터들을 더 포함하는 것을 특징으로 하는 명령 디코더.
  6. 제 1 항에 있어서, 상기 명령 디코딩 스테이트 머신은 다수의 클럭 도메인(Domain)들을 관리하기 위한 동기화 로직을 더 포함하며, 상기 다수의 클럭 도메인들은,
    사용자 엑세스 시퀀스에 의해 결정되는 속도로 런하는(Running) 사용자 클럭; 및
    디지털 제어기 시스템 클럭을 포함하며, 여기서 상기 사용자 명령들은 상기 디지털 제어기 시스템 클럭을 기초로 신호들을 기다리지 않고 상기 사용자 클럭 속도에 의해 수용되는 것을 특징으로 하는 명령 디코더.
  7. 제 1 항에 있어서, 상기 명령 디코더는 테스트 모드 명령이 수신되는 경우 테스트 모드를 제공하며, 상기 테스트 모드 명령은 해석되며, 어떤 필요한 테스트 모드 신호들이 상기 테스트 모드 명령에 의해 제어되는 것을 특징으로 하는 명령 디코더.
  8. 제 1 항에 있어서, 상기 명령 디코더는 소프트웨어로 새로운 명령들을 추가하기 위한 수단을 포함하는 것을 특징으로 하는 명령 디코더.
  9. 제 1 항에 있어서, 상기 명령 디코더는 사용자로부터 논리적인 어드레스들을 가져와 상기 마이크로컨트롤러의 어드레스 공간 내의 대응하는 물리적 위치에 상기 논리적인 어드레스들을 재배치하기 위해 연산가능한 것을 특징으로 하는 명령 디코더.
  10. 마이크로컨트롤러; 및
    상기 마이크로컨트롤러와 결합되는 명령 디코더를 포함하며,
    상기 명령 디코더는,
    명령을 디코딩하기 위한 명령 디코딩 스테이트 머신;
    상기 마이크로컨트롤러에 의해 엑세스가 가능하며, 상기 명령에 대한 정보를 저장하기 위한 다수의 레지스터들; 및
    웨이크(Wake) 신호를 포함하며, 여기서, 상기 명령이 타임드(Timed) 명령을 요구하는 경우 상기 웨이크 신호는 상기 마이크로컨트롤러에 전송되며, 상기 마이크로컨트롤러가 어웨이크(Awake)하는 경우, 상기 명령이 마이크로컨트롤러에 오프로드되는 것을 특징으로 하는 디지털 제어기 시스템.
  11. 제 10 항에 있어서, 상기 명령 디코더는 상기 마이크로컨트롤러와 독립적으 로 사용자 명령들을 관리하는 것을 특징으로 하는 디지털 제어기 시스템.
  12. 제 10 항에 있어서, 상기 명령 디코딩 스테이트 머신은 논-타임드(Non-timed) 명령들을 처리하며, 상기 명령이 상기 타임드 명령을 요구하는 경우, 상기 마이크로컨트롤러는 어웨이크되며, 사용되는 않는 경우에는 상기 마이크로컨트롤러가 슬립(Sleep)되는 것을 특징으로 하는 디지털 제어기 시스템.
  13. 제 12 항에 있어서, 상기 타임드 명령은 단일 사이클 이내에 실행될 수 없고, 상기 타임드 명령이 완전히 실행시키기 위해 일련의 이벤트들의 발생을 요구하는 명령을 포함하는 것을 특징으로 하는 디지털 제어기 시스템.
  14. 제 10 항에 있어서, 상기 명령 디코더는 상기 명령이 보류되고 그 후 복구되는 경우, 상태 정보를 저장하기 위한 보류/재기 레지스터들을 더 포함하는 것을 특징으로 하는 디지털 제어기 시스템.
  15. 제 10 항에 있어서, 상기 명령 디코딩 스테이트 머신은 다수의 클럭 도메인(Domain)들을 관리하기 위한 동기화 로직을 더 포함하며, 상기 다수의 클럭 도메인들은,
    사용자 엑세스 시퀀스에 의해 결정되는 속도로 런하는(Running) 사용자 클럭; 및
    디지털 제어기 시스템 클럭을 포함하며, 여기서 상기 사용자 명령들은 상기 디지털 제어기 시스템 클럭을 기초로 신호들을 기다리지 않고 상기 사용자 클럭 속도에 의해 수용되는 것을 특징으로 하는 디지털 제어기 시스템.
  16. 제 10 항에 있어서, 상기 명령 디코더는 테스트 모드 명령이 수신되는 경우 테스트 모드를 제공하며, 상기 테스트 모드 명령은 해석되며, 어떤 필요한 테스트 모드 신호들이 상기 테스트 모드 명령에 의해 제어되는 것을 특징으로 하는 디지털 제어기 시스템.
  17. 제 10 항에 있어서, 상기 명령 디코더는 소프트웨어로 새로운 명령들을 추가하기 위한 수단을 포함하는 것을 특징으로 하는 디지털 제어기 시스템.
  18. 제 10 항에 있어서, 상기 명령 디코더는 사용자로부터 논리적인 어드레스들을 가져와 상기 마이크로컨트롤러의 어드레스 공간 내의 대응하는 물리적 위치에 상기 논리적인 어드레스들을 재배치하기 위해 연산가능한 것을 특징으로 하는 디지털 제어기 시스템.
KR1020087015737A 2005-11-28 2006-11-28 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더 KR20080068940A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/288,753 US7574611B2 (en) 2005-11-28 2005-11-28 Command decoder for microcontroller based flash memory digital controller system
US11/288,753 2005-11-28

Publications (1)

Publication Number Publication Date
KR20080068940A true KR20080068940A (ko) 2008-07-24

Family

ID=38067982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087015737A KR20080068940A (ko) 2005-11-28 2006-11-28 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더

Country Status (7)

Country Link
US (2) US7574611B2 (ko)
EP (1) EP1958058A4 (ko)
JP (1) JP2009517742A (ko)
KR (1) KR20080068940A (ko)
CN (1) CN101361038A (ko)
TW (1) TW200739418A (ko)
WO (1) WO2007062259A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852785B1 (fr) 2003-03-31 2006-04-07 Pellenc Sa Procede et dispositif d'analyse de la structure et de la constitution de haies culturales, telles que, par exemple, des rangs de vigne
US7574611B2 (en) 2005-11-28 2009-08-11 Atmel Corporation Command decoder for microcontroller based flash memory digital controller system
US9032476B2 (en) * 2009-05-12 2015-05-12 Empire Technology Development Llc Secure authentication
US8850281B2 (en) * 2009-05-12 2014-09-30 Empire Technology Development Llc Digital signatures
US8379856B2 (en) * 2009-06-17 2013-02-19 Empire Technology Development Llc Hardware based cryptography
IT1399916B1 (it) 2010-04-30 2013-05-09 Balluchi Dispositivo di memoria ad accesso di registro indicizzato
US8843731B2 (en) 2010-12-30 2014-09-23 Micron Technology, Inc. Memory device using extended interface commands
KR20130046171A (ko) * 2011-10-27 2013-05-07 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9632786B2 (en) * 2011-12-20 2017-04-25 International Business Machines Corporation Instruction set architecture with extended register addressing using one or more primary opcode bits
KR101979732B1 (ko) * 2012-05-04 2019-08-28 삼성전자 주식회사 비휘발성 메모리 컨트롤러 및 비휘발성 메모리 시스템
US9081666B2 (en) * 2013-02-15 2015-07-14 Seagate Technology Llc Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer
KR20150116352A (ko) 2014-04-07 2015-10-15 삼성전자주식회사 메모리 제어 방법 및 시스템
KR102300890B1 (ko) * 2015-06-17 2021-09-13 에스케이하이닉스 주식회사 반도체 장치 및 그의 구동 방법
US10635526B2 (en) 2017-06-12 2020-04-28 Sandisk Technologies Llc Multicore on-die memory microcontroller
US10824376B2 (en) 2017-12-08 2020-11-03 Sandisk Technologies Llc Microcontroller architecture for non-volatile memory
US10622075B2 (en) 2017-12-12 2020-04-14 Sandisk Technologies Llc Hybrid microcontroller architecture for non-volatile memory
US11061670B2 (en) * 2019-03-05 2021-07-13 Marvell Asia Pte, Ltd. Dual-interface flash memory controller with execute-in-place cache control
US10777240B1 (en) 2019-03-07 2020-09-15 Sandisk Technologies Llc Efficient control of memory core circuits
US10971199B2 (en) 2019-06-20 2021-04-06 Sandisk Technologies Llc Microcontroller for non-volatile memory with combinational logic
US10877700B1 (en) * 2019-08-16 2020-12-29 Silicon Motion, Inc. Flash memory controller and method capable of efficiently reporting debug information to host device
US11507498B2 (en) 2020-03-05 2022-11-22 Sandisk Technologies Llc Pre-computation of memory core control signals
US11188268B1 (en) 2020-05-28 2021-11-30 Western Digital Technologies, Inc. Programmable processor in an integrated memory assembly
CN113228181B (zh) 2021-03-29 2023-10-03 长江存储科技有限责任公司 存储器器件及其异步多面独立读取操作
JP7392180B2 (ja) * 2021-03-29 2023-12-05 長江存儲科技有限責任公司 メモリデバイスおよびその非同期マルチプレーン独立読み出し動作

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544063A (en) * 1990-03-30 1996-08-06 Dallas Semiconductor Corporation Digital controller
US5687345A (en) 1992-03-17 1997-11-11 Hitachi, Ltd. Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
US6343363B1 (en) * 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
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
US5396634A (en) * 1992-09-30 1995-03-07 Intel Corporation Method and apparatus for increasing the decoding speed of a microprocessor
EP0662652B1 (en) * 1994-01-10 2000-07-05 Sun Microsystems, Inc. Method and apparatus for reducing power consumption in a computer system
US5487092A (en) 1994-12-22 1996-01-23 International Business Machines Corporation System for high-speed synchronization across clock domains
US5828868A (en) * 1996-11-13 1998-10-27 Intel Corporation Processor having execution core sections operating at different clock rates
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
JP2000194551A (ja) 1998-12-28 2000-07-14 Oki Micro Design Co Ltd フラッシュメモリ書換え回路
WO2000073863A1 (en) 1999-05-28 2000-12-07 Mitsubishi Denki Kabushiki Kaisha Programmable controller
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6278654B1 (en) 2000-06-30 2001-08-21 Micron Technology, Inc. Active terminate command in synchronous flash memory
KR100420116B1 (ko) * 2000-08-31 2004-03-02 삼성전자주식회사 저전력 소모 씨디엠에이 모뎀 칩 설계를 위한 프로세서클럭 발생 회로 및 클럭 발생 방법
US6654848B1 (en) 2000-09-15 2003-11-25 Advanced Micro Devices, Inc. Simultaneous execution command modes in a flash memory device
US6691270B2 (en) * 2000-12-22 2004-02-10 Arm Limited Integrated circuit and method of operation of such a circuit employing serial test scan chains
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 삼성전자주식회사 낸드 플래시 메모리 인터페이스 장치
EP1408405A1 (en) * 2002-10-11 2004-04-14 STMicroelectronics S.r.l. "A reconfigurable control structure for CPUs and method of operating same"
US7243212B1 (en) * 2004-08-06 2007-07-10 Xilinx, Inc. Processor-controller interface for non-lock step operation
US7200723B1 (en) * 2004-08-06 2007-04-03 Xilinx, Inc. Access to a bank of registers of a device control register interface using a single address
US20090320164A1 (en) 2004-12-08 2009-12-24 Nippon Paper Industries Co., Ltd. Method for production of plant cell having chromosome loss
US7600090B2 (en) * 2005-11-28 2009-10-06 Atmel Corporation Microcontroller based flash memory digital controller system
US7574611B2 (en) * 2005-11-28 2009-08-11 Atmel Corporation Command decoder for microcontroller based flash memory digital controller system

Also Published As

Publication number Publication date
US20070124566A1 (en) 2007-05-31
US7574611B2 (en) 2009-08-11
EP1958058A2 (en) 2008-08-20
CN101361038A (zh) 2009-02-04
WO2007062259A2 (en) 2007-05-31
JP2009517742A (ja) 2009-04-30
EP1958058A4 (en) 2009-08-05
TW200739418A (en) 2007-10-16
WO2007062259A3 (en) 2007-12-06
US20100122097A1 (en) 2010-05-13
US8327161B2 (en) 2012-12-04

Similar Documents

Publication Publication Date Title
KR20080068940A (ko) 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더
US5867703A (en) Common reset ROM
US7600090B2 (en) Microcontroller based flash memory digital controller system
US6401198B1 (en) Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use
US7302518B2 (en) Method and system for managing a suspend request in a flash memory
US5951685A (en) Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
US5923838A (en) Microcomputer with built-in flash memory
US7356717B2 (en) Information processing apparatus with central processing unit and main memory having power saving mode, and power saving controlling method
US6405320B1 (en) Computer system performing machine specific tasks before going to a low power state
JPH06202754A (ja) 集積回路の機能単位をパワーダウンする装置及び方法
US9229729B2 (en) Initializing processor cores in a multiprocessor system
US6189070B1 (en) Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory
US5687389A (en) System for controlling an automatic read operation of read cache control circuit in a disk drive controller utilizing a start counter, a working counter, and a sector counter
US7702885B2 (en) Firmware extendable commands including a test mode command for a microcontroller-based flash memory controller
EP0676687A2 (en) Power management units for computer systems
US5455954A (en) Host interrupt signal generation circuit for controlling an auto read operation in a disk drive controller
US6370651B1 (en) Synchronizing user commands to a microcontroller in a memory device
JPH07295922A (ja) データ処理装置及びこれを用いたデータ処理システム
EP0359232A2 (en) Computer system and method for setting recovery time
KR20220138324A (ko) 지속성 지원 방법 및 컴퓨팅 장치
EP1849078A2 (en) Method and system for managing a suspend request in a flash memory
JPH03111950A (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