KR20010014129A - 벌크 동작을 위해서 비휘발성 셀의 블럭을 선택하는플래그 레지스터를 구비한 집적 회로 - Google Patents

벌크 동작을 위해서 비휘발성 셀의 블럭을 선택하는플래그 레지스터를 구비한 집적 회로 Download PDF

Info

Publication number
KR20010014129A
KR20010014129A KR19997012188A KR19997012188A KR20010014129A KR 20010014129 A KR20010014129 A KR 20010014129A KR 19997012188 A KR19997012188 A KR 19997012188A KR 19997012188 A KR19997012188 A KR 19997012188A KR 20010014129 A KR20010014129 A KR 20010014129A
Authority
KR
South Korea
Prior art keywords
register
instruction
bulk
flag
address
Prior art date
Application number
KR19997012188A
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 KR20010014129A publication Critical patent/KR20010014129A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Abstract

PLD, FPGA, 플래쉬 기반의 마이크로제어기, EEPROM, 플래쉬 메모리 디바이스의 비휘발성 메모리 셀 또는 그러한 셀을 포함하는 기타의 집적 회로의 비휘발성 메모리 셀에 대한 프로그램 동작, 소거 동작, 확인 동작 및 마지닝 동작을 수행하기 위해 이용되는 벌크 동작 로직 회로(도 1)는 벌크 동작이 수행되는 하나 이상의 선택된 셀 블럭을 지정하기 위한 플래그 레지스터(31)를 포함한다. 벌크 동작 회로는 상태 머신(13) 및 연관된 제어 로직(17, 19)을 구비하고 제어기(11)를 포함하는데, 제어기(11)는 시스템 클럭 신호를 분배하고 명령어 레지스터(21), 플래그 레지스터(31), 주소 레지스터(33) 및 하나 이상의 데이터 레지스터(35)로 제어 신호를 공급하여 명령어 및 데이터의 직렬 입력(SDI)을 통한 해당 레지스터들로의 로딩을 제어한다. 상태 머신은 모드 신호(MODE)에 응답하여 자신의 상태를 일반 사용자 상태에서 벌크 동작 상태로 전환한다. 플래그 레지스터(31)를 이용함으로써, 다른 벌크 동작에 대한 블럭 선택의 가능성이 넓어진 동시에, 명령어 세트가 레지스터 로드 명령어 및 기본 벌크 동작 명령어(및 레지스터로부터의 직력 출력을 사용한 플로우 쓰루 동작)만으로 단순해진다.(도 4)

Description

벌크 동작을 위해서 비휘발성 셀의 블럭을 선택하는 플래그 레지스터를 구비한 집적 회로{INTEGRATED CIRCUIT WITH FLAG REGISTER FOR BLOCK SELECTION OF NONVOLATILE CELLS FOR BULK OPERATIONS}
구성 가능 로직의 인-시스템(in-system) 프로그래밍 및 디버깅은 일반적으로 소거 동작, 프로그래밍 동작, 확인 동작, 신뢰성 스트레스(reliability stress) 동작 및 마지닝 동작과 같은 비휘발성 메모리 셀의 그룹에 대한 벌크 동작(bulk operation)으로 수행된다. 디바이스 내에서 다양한 신호들을 전송하기 위하여 블럭들을 서로 연결하고 블럭과 디바이스 핀을 연결하는 다른 메모리 셀과 마찬가지로 로직 칩의 메모리 셀도 기능 블럭(functional block)[범용 로직 블럭(generic logic block)이라고도 알려져 있음] 및 입력/출력 블럭(또는 매크로셀)의 구성 및 프로그램을 위한 벌크 동작을 포함할 수 있다. 그러한 회로와 이 회로가 동작하도록 프로그램되는 로직 기능이 복잡하기 때문에, 디바이스를 쉽게 디버그 할 수 있고, 또한 필요하다면 재프로그램 할 수 있는 것은 매우 유용하다. 에러가 발견될 때마다 칩 전체에 대한 소거 및 재프로그램을 피하기 위하여 정정될 셀의 그룹(또는 블럭)만을 선택할 수 있는 것은 매우 유용하다. 이와 유사하게, 대형 시스템은 비휘발성 메모리 칩을 종종 포함하는데, 시스템이 처음 켜질 때 이 칩으로부터 프로그램이 다른 휘발성 칩으로 로드된다. 비휘발성 메모리 칩 내의 서로 다른 셀 그룹은 시스템의 특정한 휘발성 칩에 할당될 수 있다. 비휘발성 메모리의 선택된 부분의 내용을 쉽게 변경하기 위하여, 그러한 메모리 칩은 종종 선택적으로 프로그램 가능한 블럭으로 분할된다.
여러 다른 방법들이 다양한 벌크 동작에 대한 비휘발성 메모리 칩의 블럭을 선택하는 데 사용되어왔다. 그러한 방법 중 제1 방법은, 셀 그룹을 선택하고 디바이스 동작을 선택하는 디바이스 동작 중에, 정전압 레벨(level)이 디바이스의 외부 핀 또는 단자로 인가되는 것이다. 특히, 어떤 셀 그룹에서 동작이 수행될 것인지를 주소 핀이 특정하는데, 각 주소(즉, 핀 레벨의 세트)는 고유하고 중복(overlapping)되지 않는 셀의 세트를 선택한다. 디코드된 주소와 특정 디바이스 동작을 위해 선택된 셀의 세트와는 일대일로 대응한다. 예를 들어, 2진 입력을 수신하는 10개의 주소 핀은 1024(=)개의 다른 셀 그룹을 선택할 수 있다. 다른 외부 핀들은 어떤 유형의 동작이 수행될 것인지를 선택한다. 통상적으로 8개 또는 그 이상인 데이터 핀이, 그 핀으로부터 셀로 디바이스 데이터를 공급하고(프로그램 하기 위함) 또는 셀로부터 핀으로 데이터를 공급한다(확인 동작 및 마지닝 동작을 하기 위함). 일반적으로, 소거 동작에는 데이터 입력이 불필요하다. 완전히 정적인 접근법인 이 방식의 단점은 요구되는 외부 핀의 수가 다른 셀 그룹의 증가 및 동작의 증가에 따라 급격하게 증가한다는 것이다. 따라서, 각각 M개의 다른 동작을 하는 N개의 고유한 셀 그룹을 디코드하여 8개의 데이터 핀으로 데이터를 공급하기 위해서는 적어도개의 핀이 필요하다.
제2 선택 방법은 데이터를 직렬 비트 스트림(stream)으로서 디바이스로 공급하거나 디바이스로부터 데이터를 공급받는 것이다. 프로그래밍을 위해서, 한개의 디바이스 핀을 통해 직렬로 입력되는 데이터 값이 디바이스 내의 데이터 래치에 저장되고, 그 다음에 주소 핀 상의 레벨의 세트에 의해 지시되는 셀로 전달된다. 소거 및 신뢰성 스트레스 동작은 칩 설계 및 칩의 디바이스 기술에 따라 입력 데이터를 필요로 할 수도 있고 필요로 하지 않을 수도 있다. 확인 동작 및 마지닝 동작을 위하여, 데이터가 셀로부터 판독되어 데이터 래치로 입력되는데, 이 데이터 래치는 프로그래밍을 위해 사용되어졌던 래치와 동일한 것일 수 있다. 래치된 데이터는 그 다음에 한개의 데이터 출력 핀으로 출력될 수 있다. 직렬 비트 스트림 기술은 데이터 전달에 필요한 핀의 수를 하나로 감소시킨다(단, 일부 디바이스는 데이터의 입력 및 출력에 두 개의 분리된 데이터 핀을 사용하기도 함). 위에 설명한 완전히 정적인 방법에서는, 수행되는 특정 동작과 동작이 수행되는 특정 셀 그룹이 디바이스의 외부 핀에 공급되는 정적 레벨에 의해 계속 특정된다. 아트멜(Atmel) ATF16V8 디바이스는 이 데이터 스트림 방법을 사용하는데, 6개의 주소 핀, 동작 모드를 선택하기 위한 3개의 핀, 입력 및 출력을 위한 분리된 데이터 핀 및 하나의 클럭 핀을 포함하여 총 12개의 핀을 채택한다. 8비트의 병렬 데이터를 가정하면, 완전히 정적인 방법은 18개 핀이 필요하다.
제3 방법은 직렬 데이터 스트림으로서 데이터 및 엔코드된 주소를 동시에 각각의 데이터 및 주소 핀에 공급하고, 셀 동작을 시작하기 전에 데이터 래치 및 주소 래치에 비트를 저장한다. 디코드된 주소와 중복되지 않은 셀 그룹 사이에는 일대일 대응 관계가 계속 존재하고, 동작은 여전히 디바이스의 복수 개의 외부 핀에 병렬로 공급되는 정적 레벨에 의해 선택된다. 아트멜 ATF22V10C는 이 방법을 사용하는 디바이스의 일 예이다. 이 경우에, 주소, 데이터 입력, 데이터 출력 및 동작 모드 선택을 완전히 특정하기 위해서는 8개의 핀이 필요하다. 그러나, 이 방법 또한 선택 가능한 셀 동작이 증가함에 따라 더욱 많은 핀이 필요하다는 단점이 있다.
제4 선택 기술은 직렬 스트림된 데이터, 주소 및 명령어(instruction) 코드를 이용한다. 이 방법은 터너(Turner) 등에게 허여된 미국 특허 번호 제4,855,954호, 조셉슨(Josephson) 등에게 허여된 미국 특허 번호 제5,237,218호 및 추이(Tsui) 등에게 허여된 미국 특허 번호 제5,412,260호와 IEEE Spec. 1149.1[공통적으로 조인트 테스트 액션 그룹(Joint Test Action Group)(JTAG) 스펙이라고 칭함]에 개시되어 있다. 이 표준화된 방법은 내부의 상태 머신(state machine), 쉬프트 레지스터의 세트 및 다양한 동작을 구현하기 위한 단 4개의 디바이스 핀을 채택한다. 상태 머신은 일반 사용자 상태(normal unser state), 커맨드 로드 상태(command load state) 및 프로그램 실행 상태(program execution state)를 포함하는데, 이들 상태는 모드 핀, 클럭 핀 및 직렬 데이터 입력(SDI) 핀을 적절한 방식으로 구동함에 따라 변경될 수 있다. 또한, 벌크 프로그래밍 및 테스트 동작을 위해, 복수 개의 디바이스를 직렬로 연결하거나 데이지-체인(daisy-chain) 방식으로 캐스케이드(cascade)하는 것을 허용하는 직렬 데이터 출력(SDO) 핀을 포함한다. 이들 제어 핀은 상태 머신이 일반 사용자 모드일 경우에 기능 핀(functional pin)으로서 사용되는 멀티플렉싱 핀에 의해 사용 가능해질 수 있다. 이 핀들은 인-시스템 프로그래밍(ISP) 동작에 사용되는 외에, 바운더리-스캔 동작(boundary-scan operation)(별도의 상태 머신을 채택할 수 있음)에 의해 공유될 수 있다. 쉬프트 레지스터는 명령어 레지스터, 주소 레지스터 및 하나 이상의 데이터 레지스터를 포함한다. 상태 머신이 자체의 커맨드 로드 상태에 있을 때, 커맨드 또는 명령어는 SDI 핀을 통해 명령어 레지스터로 직렬로 쉬프트된 후 디코드된다. 프로그램 실행 상태에서는, 디코드된 명령어가 실행된다. 명령어는 주소 레지스터에 주소를 직렬로 쉬프트시키는 커맨드 및 데이터 레지스터들 중의 한 레지스터로 데이터를 직렬로 쉬프트 시키는 커맨드를 포함하고, 필요한 특정 데이터 레지스터 내의 데이터를 사용하여, 주소 레지스터에 의해 지정되는 주소에 위치한 비휘발성 셀의 그룹을 프로그램, 소거 또는 확인할 수 있다(소거 동작은 데이터 레지스터로부터의 데이터를 필요로 하지 않음). 서로 다른 명령어들은 실행될 서로 다른 유형의 동작을 선택할 뿐만 아니라, 동작이 실행될 셀의 서로 다른 그룹 또는 블럭(중복될 수 있음)을 특정할 수 있다. 예를 들어, 추이(Tsui) 등에게 허여된 특허는 셀 소거에 대한 약간의 서로 다른 명령어를 열거하는데, 구조 블럭 소거(architecture block erase)(ARCHBE), 로직 어레이 블럭 소거(logic array block erese)(ARRBE), 프로그램 가능 상호 연결 어레이 블럭 소거(programmable interconnect array block erase)(PIABE) 및 전역 블럭 소거(global block erase)(GBE)가 이에 포함된다.
JTAG 방법의 이점은 구현을 위해서 단 4개의 핀만을 필요로 한다는 것이다. 이 방법은 표준화되어 있으므로, 프로그래밍 및 테스트 하드웨어의 개발과 이를 지원하는 소프트웨어의 개발이 디바이스 제조자 및 사용자 모두에게 있어서 상대적으로 간단하다. 다른 셀 블럭에 대해서는 다른 명령어를 부가함으로써, 디바이스의 확인 및 규정(chracterization)에 많은 유연성이 확보될뿐만 아니라 동일한 기본형의 동작이 각기 다른 셀의 블럭(중복될 수 있음)에 대해 수행될 수 있다. 중복된 셀 그룹의 사용은 어떤 디바이스의 기능 고장(functional failure)을 더욱 빠르게 분리하고, 서로 다른 셀 그룹의 동작 범위의 한계를 더욱 용이하게 규정하고, 디바이스 테스트를 보다 신속하게 할 수 있게 한다. 그러나, 이 접근법의 단점은 더 많은 명령어가 추가됨에 따라 명령어 디코더가 더욱 복잡해진다는 것이다. M개의 다른 유형의 동작에 대한 N개의 다른 셀 그룹을 선택하기 위해서는 MxN개의 명령어가 필요하다.
제5 방법은 JTAG 방법의 주소 레지스터 및 내부의 주소 디코더를 임의의 한 셀 동작을 위해서는 틀림없이 개별적으로 선택되어져야 하는 각 셀 그룹 당 하나의 래치 비트로 대체한다. 완전히 디코드된 주소는 래치의 세트로 전달된다. 예를 들어, 알테라(Altera) MAX PLD 셀 어레이는 어레이의 셀의 행(low) 당 할당된 한 비트를 포함하는 행 래치를 채택하여 위의 방법을 구현한다. 데이터 래치는 한 데이터 비트를 각 어레이 열(column)마다 저장하고, 데이터는 데이터 래치로 입력된다. 행 래치 및 데이터 래치를 이용하여 벌크 동작을 위해서 어떤 비트가 선택될 것인지를 선택한다. 어레이 내의 각 비휘발성 셀은 이에 연관된 행 래치 비트 및 데이터 래치에 의해 고유하게 식별된다. 또한, 복수의 행 래치 비트를 세트함으로써, 행의 임의의 세트가 동시에 선택될 수 있고, 따라서, 셀 그룹 중복 능력의 유연성을 제공한다. 그러나, 행 단위 프로그램을 할 때 행은 반드시 개별적으로 선택 가능해야 하므로, 이 방법은 각 행에 대한 별도의 래치 비트를 필요로 해서, 많은 수의 행가 있는 디바이스에서는 내부에 많은 수의 래치 비트가 필요하다. 다른 단점은 행 래치 비트는 모든 종류의 동작에 있어서 동일한 방식으로 어레이 내에서 셀 구룹을 분할한다는 것이다. 또한, 동작되고 있는 행만이 다른 비트 값을 필요로 하지만, 모든 행 래치 비트에 모든 셀 동작을 위한 데이터가 로드되야 한다. 이러한 모든 것들은 대형 디바이스에 있어서는 시간과 비용을 추가하게 된다.
약간의 비휘발성 메도리 디바이스는 각 메모리 셀이 겪게되는 소거 사이클의 수를 최소화함으로써 그러한 디바이스의 내구성 및 사용 기간을 최대화할 플래그(flag)를 채택한다. 예를 들어 코프만(Coffman) 등에게 허여된 미국 특허 번호 제5,491,809호는 플레쉬(flash) EPROM과 같은 블럭 단위의 소거가 가능한 비휘발성 메모리를 소거하는 방법을 개시하고 있는데, 이 방법에 의하면 메모리 셀 블럭의 불필요한 소거가 없도록 하여 과도한 소거 및 낮은 내구성 문제를 피하고 특정 블럭을 소거 및 변경으로부터 보호될 수 있게 된다. 이 방법은 각 블럭에 대한 "스킵다트(skipdat)" 래치를 포함하는 메모리 제어기를 채택한다. 각 스킵다트 래치는 특정 블럭에 대한 플래그 레지스터로서 기능하는데, 이것은 메모리 제어기에게 블럭이 1) 이미 소거된 상태라서 소거할 필요가 없는지, 2) 소거를 못하도록 보호된 것인지, 또는 3) 소거되지 않았거나 보호되지 않은 것인지를 나타낸다. 메모리 제어기는 소거 동작을 제어하여 이미 소거되었거나 소거로부터 보호된 것으로 플래그된 블럭에 대해서는 소거를 시도하지 않도록 한다. 메모리 디바이스의 분할 단위인 모든 블럭은 자신의 스킵다트 래치를 필요로 하기 때문에, 스킵다트 래치는 상당히 많아질 수 있다. 다른 예로서, 린(Lin) 등의 미국 특허번호 제5,414,664호 및 제5,596,530호는 메모리 셀의 블럭으로 조직된 플래쉬 EPROM 디바이스를 설명하는데, 이 디바이스는 소거 확인 회로, 블럭 소거 플래그 및 소거 확인이 실패한 블럭에 대해서만 재소거하는 제어 로직를 사용하여 이미 제대로 소거된 블럭에 대한 과도한 소거를 방지한다. 소거 동작은 선택된 블럭에 대한 블럭 소거 플래그가 세트됨으로써 시작된다. 세트된 플래그를 가진 모든 블럭이 소거된다. 소거 확인 동작은 세트된 플래그를 가진 블럭의 소거를 확인하고, 확인 테스트를 통과한 블럭의 플래그를 리셋(reset)하거나 클리어(clear)한다. 재소거 동작은 그 후에 플래그가 세트된 상태로 유지된 블럭 즉, 소거 확인 테스트를 실패한 블럭에 대해서만 수행된다.
아싸(Assar) 등의 미국 특허 번호 제5,388,083호, 제5,479,638호 및 제5,485,595호는 하드 디스크 드라이브를 대체할 플래쉬 메모리 구조를 설명한다. 플래쉬 메모리 셀은 완전히 고장날 때까지 유한 수의 소거-기록 사이클을 갖으므로, 플래쉬 메모리가 대형 저장 장치로 사용될 수 있도록, 메모리 디바이스는 '사용됨(used)/사용가능(free)' 및 '구(old)/신(new)' 플래그의 세트를 채택하는 마모 레벨링 기술(wear leveling technique)을 사용하여, 1) 정보가 저장된(사용됨) 메모리 블럭과 빈(사용가능) 메모리 블럭을 식별하고, 2) 어떤 블럭이 파일의 폐지된 버전(version)(구)을 갖고 있고 어느 블럭이 파일의 현재 버전(신)을 갖고 있는지를 나타낸다. 파일을 갱신(update)할 때, 변경된 파일은 빈 블럭 즉, "사용가능"이라고 표지된 블럭에만 기록된다. 메모리 디바이스의 영역이 모두 기록되면, 다중-섹터(multi-sector) 소거 사이클이 수행되어 구/신 플래그가 '구'로 세트된 블럭을 소거한다. 8비트 플래그 또는 레지스터는 각 블럭에 대한 소거 회수를 관리한다. 임의의 특정 블럭의 소거 회수가 미리 결정된 최대치에 근접하면, 블럭의 내용은 소거 회수가 가장 적은 빈 블럭으로 이동하고 많이 소거되었던 블럭에 대해서는 '소거 금지' 플래그가 세트된다. 모든 블럭이 미리 결정된 최고치에 근접하면, 소거 회수 및 소거 금지 플래그가 클리어되고, 위 알고리즘이 반복된다. 따라서, 이 방법은 어떤 블럭이 다른 블럭에 비해 현저하게 많이 소거되지 않는 것을 보장한다. 다양한 플래그는, 컴퓨터에 의해 사용되는 논리 주소와 메모리 구조 상의 실제 물리 주소 사이의 대응 맵(map)과 함께, 비휘발성 메모리 내에서 저장될 수 있다. 믈론, 플래그의 수는 블럭(하드 드라이브 섹터에 상응함)의 수의 증가에 따라 증가한다.
본 발명의 목적은 비휘발성 셀을 구비하는 집적 회로 및 인-시스템 프로그래밍 방법을 제공하는 것이며, 인-시스템 프로그래밍 방법에 의해, 요구되는 외부 핀, 명령어, 내부 저장 비트의 수를 최소한도로 하며 다양한 벌크 동작을 수행하도록, 회로 내의 비휘발성 셀의 서로 다른 그룹이 선택된다.
본 발명은 EEPROM 및 플래쉬(flash) 메모리 디바이스뿐만 아니라 프로그램 가능 로직 디바이스(programmable logic device), 필드 프로그램 가능 게이트 어레이(field programmable gate array), 플래쉬 기반의 마이크로제어기(microcontroller) 및 기타의 구성 가능 로직(configurable logic)과 같은 비휘발성 셀(nonvolatile cell)[EEPROM 셀 또는 플레쉬 메모리 셀]의 블럭을 포함하는 집적 회로에 관한 것이다. 특히, 본 발명은 소거 동작(erase operation), 프로그래밍(programming) 동작, 확인(verifying) 동작 및 마지닝(margining) 동작 또는 기타의 동작에 대한 특정한 비휘발성 소자 또는 이들 소자의 그룹을 주소 지정(addressing)하거나 선택(selecting)하는, 위 회로 내의 수단에 관한 것이며, 특별히 그러한 선택 또는 주소 지정을 위한 직렬 수단(serial means)에 관한 것이다.
도 1은 본 발명에 따른 벌크 동작 로직 회로의 블럭도.
도 2는 본 발명의 바람직한 실시예에 따른 도 1의 로직 회로에 대한 보다 상세한 블럭도.
도 3은 도 1 및 도 2의 로직 회로 내의 플래그 레지스터에 대한 비트 할당의 일 예를 도시한 도면.
도 4는 본 발명에 따른 벌크 동작을 수행하도록 도 1 및 도 2의 로직 회로 내의 명령어 레지스터로 로드되는 인-시스템 프로그래밍 명령어의 테이블을 도시한 도면.
도 5는 도 1 및 도 2의 로직 회로 내의 제어기 상태 머신의 상태도를 도시한 도면.
본 발명의 목적은 집적 회로의 비휘발성 메모리 셀의 선택된 블럭을 지정하기 위한 플래그 레지스터를 포함하는 집적 회로 내의 벌크 동작 로직 회로에 의해 달성될 수 있는데, 집적 회로에 대한 벌크 동작은 다른 블럭을 지정하기 위해서 플래그 레지스터 내의 비트가 변경될 때까지 제한될 것이다. 벌크 동작 로직 회로는 위에 설명한 종래의 JTAG 방법을 발전시키고 향상시켜, 벌크 동작(벌크 동작은 동시 또는 순차적으로 디바이스의 메모리 셀의 전 블럭에 대해 수행되는 동작이며, 예를 들면 FPGA 디바이스 내에서 상호 연결된 어레이를 프로그램 한 모든 셀에 대한 소거이다. 공통 벌크 동작은 프로그래밍, 소거, 확인 및 마지닝을 포함한다.)으로 수행될 수 있는 서로 다른 셀 블럭 또는 그룹의 수에 대한 상당한 유연성이 제공되고 명령어 세트가 단순해졌다.
플래그 레지스터에 덧붙여, 벌크 동작 로직 회로는 주소 레지스터, 하나 이상의 데이터 레지스터, 명령어 레지스터 및 벌크 동작 제어기를 포함하는데, 명령어 레지스터는 연관된 명령어 디코딩 수단을 구비하고 있고, 벌크 동작 제어기는 상태 머신 및 연관된 제어 회로로 구성될 수 있다. 종래의 JTAG 회로에서처럼, 로직 회로는 모드 신호, 시스템 클럭, 직렬 입력 및 직렬 출력을 위한 단 4개의 외부 핀만을 필요로 한다. 다양한 레지스터가 인코드된 명령어, 플래그 비트, 주소 비트 및 데이터를 직렬 입력 단자를 통해 직렬 방식으로 수신한다. 직렬 출력은 복수의 디바이스가 데이지-체인(daisy-chain)을 구성할 수 있도록 하고, 직렬 입력 비트들이 그들 각각의 레지스터를 통해서 직렬 출력 단자 및 체인의 다음 디바이스로 전달되도록 한다. 제어기는, 특히 자체의 상태 머신은, 모드 신호 및 시스템 클럭에 응답하여 일반 사용자 상태와 벌크 동작 상태간의 전환을 담당한다. 제어기는 클럭 신호를 시스템 클럭 입력으로부터 다양한 레지스터로 분배하고 제어 신호를 제공하여, 상태 머신이 벌크 동작 상태인 중에, 명령어 레지스터로 명령어를 로드하며, 여타의 레지스터로 로드하는 것을 포함하여 디코드된 명령어를 실행한다. 플래그 레지스터는 집적 회로의 주소 디코더와 상호 작용하여 플래그 레지스터에 저장된 플래그 비트에 의해 지정된 선택된 셀 블럭에서만 벌크 동작이 가능하게 한다.
집적 회로 상에서 벌크 동작을 수행하는 방법은 모드 신호에 의하여 일반 사용자 상태에서 벌크 동작 상태로 제어기의 상태를 전환하는 단계와, 교대로 레지스터 로드 명령어를 명령어 레지스터로 로드하고 하나 이상의 플래그 비트, 주소 비트 또는 데이터 비트를 각각의 플래그 레지스터, 주소 레지스터 또는 데이터 레지스터로 로드하는 단계와, 벌크 동작 명령어를 명령어 레지스터로 로드하는 단계와, 하나 이상의 플래그 레지스터, 주소 레지스터 및 데이터 레지스터를 이용하여 명령어에 의해 지정된 벌크 동작을 실행하는 단계를 포함한다. 실행되는 벌크 동작은 플래그 레지스터에 의해 선택된 셀 블럭 또는 셀 블럭들에서만 일어난다.
도 1 및 도 2를 참조하여 설명하면, 벌크 동작이 가능한 비휘발성 셀을 채택한 집적 회로는 벌크 동작 능력을 제공하는 것으로 도시된 로직 회로를 사용한다. 하드웨어의 대부분은 JTAG 표준(IEEE 1149.1 -1990)에 따른 바운더리 스캔 및 인-시스템 프로그래밍을 구현하기 위해 사용되는 것과 기본적으로 유사하지만, 더욱 개선되어 본 발명에 따른 블럭 선택을 허용한다. 벌크 동작 능력을 가지는 집적 회로는, 개별적으로 선택 가능한 블럭으로 분할되는 EEPROM 또는 플래쉬 메모리같은 비휘발성 메모리 칩뿐만 아니라, 프로그램 가능 로직 디바이스(PLD), 필드 프로그램 가능 게이트 에레이(FPGA), 플래쉬 기반의 마이크로제어기, 그리고 EEPROM 또는 플래쉬 메모리 셀을 포함하는 기타의 구성 가능 로직회로를 포함한다. 프로그래밍, 확인, 마지닝 및 소거를 포함하는 블럭 동작에서, 비휘발성 셀의 블럭 전체가 특정 동작을 위해서 선택된다. 지정된 셀 블럭 또는 그룹은 다른 지정된 블럭과 중복 될 수 있으며, 서로 다른 동작이 블럭의 다른 세트에 대해 수행될 수 있다.
벌크 동작 로직 회로는 클럭 신호와 제어 신호를 제공하기 위한 MODE, TCLK 및 RST 단자에서 각각 제공되는 모드 신호, 클럭 신호 및 리셋 신호에 응답하여 레지스터를 포함한 로직 회로의 나머지 부분에 클럭 신호 및 제어 신호를 제공하는 제어기(11)를 포함한다. 제어기(11)는 모두 제어선(14, 16, 18)을 통해 연결된 상태 머신(13), 디코딩 로직(15), 제어 로직(17) 및 클럭 로직(19)를 포함한다. IEEE 1149.1 -1990 표준에 따라, 상태 머신(13)은 PLA형 회로로서 구현되어 현재의 머신 상태 및 MODE, TCLK 및 RST 단자로부터의 신호 레벨에 근거하여 상태 공식(state equation)의 세트를 처리한다. 대표적인 상태도가 도 5에 도시되어 있으며 아래에서 설명할 것이다. 상태 머신(13)의 상태는 디코딩 로직 블럭(15)에 의해 디코드되고, 디코드된 상태가 제어 로직 블럭(17) 및 클럭 로직(19)을 제어하기 위해 사용된다. 제어 로직(17)은 다양한 레지스터를 제어하며, 이에 대해서는 아래에 다시 기술할 것이다. 클럭 로직(19)은 클럭 신호를 TCLK 단자로부터 수신하여 레지스터에게 입력 클럭 신호를 제공한다.
또한, 벌크 동작 로직 회로는 명령어 디코딩 회로(23)를 구비한 명령어 레지스터(21)를 포함한다. 명령어는 신호선(20)을 거쳐 직렬 데이터 입력(SDI) 단자로 수신되고 상태 머신(13)의 상태에 따라 명령어 레지스터(21)로 쉬프트된다. 디코드된 명령어는 제어 로직 블럭(17)으로 공급되는데, 그 다음 제어 로직 블럭은 디코드된 명령어에 따라 SDI 단자에서 수신된 데이터를 레지스터들[31, 33, 35, (36-38)] 중의 선택된 하나로 향하게 한다.
본 발명의 로직 회로의 고유한 특징은 벌크 동작 중에 동작이 수행될 비휘발성 셀의 블럭을 지정하는 플래그 레지스터(31)의 제공이다. 이에 대해서는 아래에 상세하게 설명할 것이다. 다른 레지스터에는 주소 레지스터(33) 및 하나 이상의 데이터 레지스터(35)가 포함된다. 절대적으로 필요한 데이터 레지스터는 하나로 족하다. 복수의 데이터 레지스터를 사용함으로써 이들 레지스터로부터 프로그램될 비휘발성 셀의 그룹으로의 프로그래밍 라인의 배치(layout)를 단순하게 할 수 있다. 따라서, 한 데이터 레지스터(38)는 디바이스의 입력 및 출력 마이크로셀을 구성하는데 사용될 수 있고, 다른 데이터 레지스터(37)는 각 범용 로직 블럭(예컨대, FPAG) 내의 비휘발성 셀의 구성 및 프로그래밍에 사용될 수 있고, 그 외의 데이터 레지스터(36)는 프로그램 가능 상호 연결 어레이(PIA)와 같은, 디바이스의 다른 비휘발성 셀을 프로그램 하는데 사용될 수 있다. 다른 유형의 디바이스는 다른 수의 데이터 레지스터를 구비할 것이다.
또한, 도 1 및 도2의 회로는 자체의 출력(42)이 출력 버퍼(43)을 거쳐 직렬 데이터 출력(SDO) 단자로 가는 멀티플레서(41)를 포함한다. SDO 단자는 모든 디바이스의 인-시스템 프로그래밍을 위해 복수의 디바이스가 함께 직렬로 체인을 형성하는 것을 가능하게 한다. SDO 멀티플레서(41)는 명령어 레지스터(21)의 출력으로부터 입력(40a)을 수신하며, 다양한 다른 레지스터[31, 33, 35, (36-38)]의 출력에서 나오는 입력(40b)을 수신한다. 제어 로직 블럭(17)은 신호선(44) 상에 제어 신호를 공급하여 출력 버퍼(44)를 인에이블(또는 디스에이블)시키고 멀티플렉서(41)로의 입력 중 어떤 입력이 버퍼(43)를 거쳐 SDO 단자로 공급될 지를 선택한다. 따라서, 출력 버퍼(43)가 인에이블되면, SDI 단자로부터 쉬프트된 데이터는 선택된 레지스터 및 멜티플렉서(41)를 통해 SDO 단자로 전달되고, 이에 따라 체인의 다음 디바이스로 전달된다. 이것은 FLOWTHRU 명령어(예컨대, 명령어 레지스터 코드 111)에 응답하여 일어난다.
위에 언급한 바대로, 본 발명의 주된 특징은 플래그 레지스터(31)를 사용하여 연이은 디바이스 동작이 수행될 셀이 어떤 것이지를 제어하는 것이다. 플래그 레지스터는 플래그 비트를 저장하는 래치의 세트로 구성된다. 각 플래그 비트의 출력은 디바이스의 연관된 로직, 예건대 주소 디코딩 회로를 변경함으로써 특정된 셀 블럭이 선택되도록 한다. 벌크 동작(예를 들어, 프로그램 가능 디바이스의 선택된 셀의 소거)은 플래그 레지스터 내의 플래그 세트를 이용하거나 또는 플래그 레지스터와 주소 레지스터의 조합을 이용하여 수행될 수 있는데, 주소 모드는 임플라이드(implied) 모드 또는 주소 레지스터만의 직접 주소 모드가 될 수 있다. 도 3은 6비트 플래그 레지스터 및 통상적인 비트 할당에 대한 가능한 일 예를 도시하고 있다. 예를 들어, 비트 '0, 1 및 2'는 FPGA 디바이스 내의 비휘발성 셀의 특정된 블럭들을 지정하는데, 이 블럭들은 프로그램 가능 상호 연결 어레이(PIA)의 프로그램된 연결, 로직 어레이 블럭의 프로그램된 기능의 프로그램된 연결 및 로직 블럭과 입력/출력 블럭의 특정한 구성 또는 구조의 프로그로램된 연결을 각각 책임진다. 더우기, 이들 비트는 위 셀의 블럭들을 소거 동작에 대해서만 인에이블 시키고 다른 동작에 대해서는 인에이블 시키지 않는다. 이와 대비하여, 비트 '3, 4 및 5'가 세트되면, 이들 비트는 프로그래밍, 소거, 확인 및 마지닝을 포함하는 모든 벌크 동작에 적용된다. 비트 '3'은 비휘발성 셀 어레이의 모든 행을 선택하고, 비트 '4 및 5'는 셀의 짝수 또는 홀수의 열 또는 행과 같은, 그들 셀의 부(副)세트만을 지정한다. 따라서, 플래그 비트 '1'이 세트되면(즉, 로직 레벨이 1), 소거 명령어가 명령어 레지스터에 로드된 후에, 소거 동작이 칩의 한 섹션 즉, 프로그램 가능 상호 연결 어레이에 대한 비휘발성 셀에서 실행될 것이다. 반면에, 플래그 비트 '2'가 세트되면, 소거 동작이 칩의 다른 섹션 즉, 이 예에서는 로직 어레이의 내부에서 실행될 것이다. 이와 유사하게, 여타의 플래그 비트가 명령어 레지스터에 수신된 명령어에 의해 지정되는 벌크 동작을 위해 디바이스의 다른 부분에 대한 셀을 선택한다. 한편, 서로 다른 비트에 의해 특정된 그룹이 중복될 수 있으므로, 임의의 특정 셀이 하나 이상의 비트에 의해 선택될 수 있음을 유의해야 한다. 더우기, 이들은 (데이터 래치와 조합하여) 셀 어레이 내의 각각의 개별 셀을 고유하게 식별하는 기능을 제공하기에 충분한 플래그 비트를 필요로 하지 않는다. 오히려, 어떤 동작은, 다른 동작이 플래그 및 주소 비트의 조합을 사용하여 선택된 셀을 결정하는 반면에, 어레이 비트 예를 들어, 셀의 프로그래밍을 위한 어레이 비트를 선택하기 위하여 주소 레지스터 내의 인코드된 주소를 사용할 수도 있다. 따라서, 주소 레지스터의 인코드된 주소가 특정 행을 선택하는 경우에, 플래그 비트(예컨대, 도 3의 플래그 비트 '4')가 짝수의 행만을 인에블할 수 있어서 이 선택된 행은 홀수 행 또는 짝수 행이냐에 따라 인에블되거나 디스에이블 된다. 대체방안으로써, 임플라이드 주소 지정에 있어서, 주소 레지스터 내의 주소는, 어느 섹션이 동작이 수행될 것인지를 지정하는 플래그 비트와 더불어, 디바이스의 다른 섹션에서 재사용될 수 있다. 이 경우에, 플래그 비트는 유효하게 주소의 일부가 된다. 바람직한 디바이스는 디바이스 전체가 프로그램 될 때는, 플래그 레지스터를 쓰지 않고 한번에 한 주소를 쓰는 통상적인 주소 지정 또한 허용하는 것이다.. 어떤 명령어는 플래그 레지스터의 내용을 참조함으로써 실행될 수 있고, 다른 명령어는 플래그 레지스터를 무시하며 실행될 수 있다.
플래그 레지스터는 임의의 크기가 될 수 있고, 다른 비트들이 하나 이상의 특정 동작에 연관될 수 있다. 또한, 각각이 특정 동작의 제어에 사용되는 복수의 플래그 레지스터가 있을 수 있다. 바람직한 플래그 레지스터는 단일 핀을 통한 얼마간의 직렬 입력이 가능한 쉬프트 레지스터지만, 속도가 요구된다면 복수 개의 디바이스 핀으로부터의 병렬 입력이 사용될 수도 있다. 또한, 플래그 비트가 비휘발성 셀을 지정하기위하여 사용되지만, 일부 테스트 동작에서는 휘발성 셀(예컨대, SRAM cell)도 선택할 수 있는 것이 바람직하다. 따라서, 어떤 지정된 그룹은 휘발성 셀 및 비휘발성 셀의 조합을 포함하거나, 심지어 휘발성 셀만을 포함할 수 있다.
도 4를 참조하면, 벌크 동작의 수행을 위한 명령어 세트가 셀 그룹을 지정하기 위한 플래그 레지스터의 제공으로 말미암아 현저하게 감소되었음을 알 수 있다. 인코드된 명령어를 채택한 종래의 디바이스는 서로 다른 셀 그룹에 대한 동일한 기본 동작을 수행하기 위하여 복수의 명령어를 필요로 했다. 이제는 더 이상 이럴 필요가 없다. 대신에, 플래그 레지스터가, 경우에 따라서는 주소 레지스터와 함께, 동작이 수행될 셀 그룹을 식별하고, 명령어가 동작을 특정한다. 명령어 세트는 플래그 레지스터, 주소 레지스터 및 하나 이상의 데이터 레지스터를 포함하여 다양한 특정 데이터 레지스터를 로드하는 명령어(000, 001, 010)를 포함한다. 하나 이상의 데이터 레지스터가 사용되면, 플래그 레지스터(31)의 내용을 제어 로직(17)이 판독하여 어떤 데이터 레지스터(36, 37, 38)가 로드되는지를 제어한다. 명령어 세트는 또한 명령어(011, 100, 101, 110)를 포함하여 프로그램, 소거, 확인 및 마진을 포함하는 특정 벌크 동작을 지시한다. 마지막으로, 명령어(111)는 제어 로직으로 하여금 SDO 단자에게로 출력 버퍼를 인에블하게 하고, SDI 단자로부터 해당 레지스터를 통해 다음 명령어, 다음 플래그, 다음 주소 또는 다음 데이터 시퀀스를 SDO 단자로 전달하게 한다. 기타의 명령어 세트도 가능하다.
도 5를 참조하면, 도 2의 상태 머신(13)이 IEEE 표준 1149.1 -1990에 따라 구현되었음을 알 수 있다. 상태 머신의 타이밍은 TCLK 단자의 클럭 신호에 의하여 제공된다. 상태 머신은 일반적으로 약간의 가능한 상태가 있는데, 일반 사용자 상태, 커맨드 로드 상태 및 프로그램 실행 상태를 포함한다. 뒤의 두 상태는 로드 사이클과 실행 사이클이 번갈아 있는 벌크 동작 상태로 묶어서 칭할 수 있다. 머신 상태의 변경은 TCLK 단자로 수신되는 신호 및 SDI 단자로 수신되는 신호와 조합한 MODE 단자에 제공되는 모드 신호에 의한다. 따라서, 예를 들어, 클럭 신호의 천이(transition)시에 MODE=고(high)이고 SDI=저(low)이면, 머신 상태가 이미 일반 사용자 상태가 아니라면 머신 상태는 일반 사용자 상태로 변경될 것이다. MODE=고이고 SDL=고일 때, 머신 상태는 일반 사용자 상태에서 커맨드 로드 상태로 변경되거나 또는, 머신 상태가 이미 벌크 동작 상태 중의 한 상태라면, 커맨드 로드 상태와 프로그램 실행 상태사이에서 전환될 것이다. MODE=저이면, 상태는 변경되지 않고, SDI 단자는 데이터 입력 단자가 된다. 일반 사용자 상태에서는, 상태 머신은 프로그래밍 또는 비휘발성 셀의 기타의 변경을 금지하고 디바이스는 이전에 프로그램 된 대로 동작한다. 이것은 파워업 때의 디폴트 상태거나 선택 항목(optional) 단자인 RST의 리셋 신호를 수신한 때의 상태이다. 일단 벌크 동작 상태가 되면, 상태 머신은 도 5에 도시된 상태도에 따라 프로그래밍, 소거, 확인 및 마지닝 같은 벌크 동작을 제어한다. 통상적인 프로그램 시퀀스를 아래에 설명할 것인데, DR은 임의의 데이터 레지스터(플래그 레지스터 및 주소 레지스터를 포함함)를 의미하고 IR은 명령어 레지스터를 의미한다.
(1) Logic Reset
(2) Run ISP
(3) Select DR Scan
(4) Select IR Scan
(5) Capture IR
(6) Shift IR; repeat for N cycles (N = IR 길이)
주석: 명령어 = LOAD FLAG
(7) Exit IR
(8) Update IR
(9) Select DR Scan
(10) Capture DR
(11) Shift DR; repeat for M cycles (M = 플래그 레지스터 길이)
주석: 데이터 = 플래그 비트 데이터
(12) Exit DR
(13) Update DR
(14) Select DR Scan
(15) Select IR Scan
(16) Capture IR
(17) Shift IR; repeat for N cycles
주석: 명령어 = LOAD ADDRESS
(18) Exit IR
(19) Update IR
(20) Select DR Scan
(21) Capture DR
(22) Shift DR; repeat for K cycles (K = 주소 레지스터 길이)
주석: 데이터 = 프로그래밍 주소
(23) Exit DR
(24) Update DR
(25) Select DR Scan
(26) Select IR Scan
(27) Capture IR
(28) Shift IR; repeat for N cycles
주석: 명령어 = PROGRAM
(29) Exit IR
(30) Update IR
(31) Run ISP/Idle
(32) Selet DR Scan
등등.
위 예를 통해 각 단계의 시퀀스는 먼저 명령어 'LOAD FLAG'를 로드하고, 그 다음 플래그 레지스터로 요망되는 플래그 데이터를 로드함으로써 그 명령어를 실행하는 것임을 알 수 있다. 다음, 명령어 'LOAD ADDRESS'가 명령어 레지스터로 로드되고, 이 명령어가 실행되어 주소 레지스터로 선택된 주소가 로드된다. 데이터가 이미 이전에 데이터 레지스터에 로드되었다면, 'PROGRAM' 명령어가 명령어 레지스터로 로드된 때, 상태 머신이 Run ISP/Idle 상태로 진입하면 프로그램이 실행되기 시작할 것이고 상태 머신이 그 상태를 벗어나면 종료할 것이다. 그러나, 상태 머신의 실제 프로그래밍 인터벌의 제어는 본 발명에서 요구되는 것은 아니다.
동작이 수행될 셀 그룹을 지정하기 위해 플래그 레지스터를 이용함으로써 요구되는 명령어 세트가 현저하게 단순화되고, 이에 따라 명령어 디코딩 회로도 단순해진다. 또한, 플래그 레지스터는, 중복을 허용하며, 셀 그룹 또는 셀 블럭이 많이 지정되도록 하고, 명령어가 복잡해짐이 없이 서로 다른 동작이 서로 다른 셀 그룹에서 수행되도록 한다. 소거와 같은 벌크 동작이 특정된 섹터 또는 셀 블럭에서만 수행됨에 따라, 사용자가 칩의 다른 부분을 재프로그램 해야 될 필요가 없는 등 테스트 시간이 상당히 감소한다. 칩의 일부가 특정적으로 프로그램되고 소거되면, 로직 테스트가 상당히 단순해지고 테스트 시간을 감소하며 더우기 칩의 활용도(usability)를 확실하게 보장한다.

Claims (17)

  1. 비휘발성 메모리 셀을 포함하는 집적 회로 내의, 복수 개의 상기 비휘발성 셀의 블럭 중의 하나를 선택하여 상기 선택된 블럭에서 지정된 동작을 수행하는 벌크 동작 로직 회로에서,
    모드 신호 및 시스템 클럭 신호에 응답하여 집적 회로의 일반 사용자 상태와 벌크 동작 상태를 전환시키고, 상기 벌크 동작 상태일 때 클럭 신호 및 제어 신호를 제공하는 벌크 동작 제어기와,
    연관된 디코딩 수단을 구비하고, 직렬 입력과 연결되어 상기 제어기로부터의 제어 신호에 응답하여 상기 직렬 입력을 거쳐 명령어를 수신하는 것으로서, 상기 명령어는 상기 연관된 디코딩 수단에 의하여 디코드되고, 상기 디코드된 명령어는 상기 제어기에 공급되는 것인 명령어 레지스터와,
    상기 직렬 입력에 연결되고 상기 제어기로부터의 상기 디코드된 명령어에 상응하는 제어 신호에 응답하고, 집적 회로의 주소 디코더와 상호 작용하여 상기 비휘발성 셀 상의 벌크 동작의 실행을 상기 직렬 입력을 통해 상기 플래그 레지스터가 수신한 플래그 비트에 의해 지정되는, 상기 셀 블럭들 중의 단 한 블럭으로만 한정시키는 것인 플래그 레지스터와,
    상기 직렬 입력에 연결되고 상기 제어기로부터의 상기 디코드된 명령어에 상응하는 제어 신호에 응답하는 데이터 레지스터 및 주소 레지스터
    를 포함하는 것인 벌크 동작 로직 회로.
  2. 제1항에 있어서, 벌크 동작 로직 회로를 구비하는 집적 회로는 프로그램 가능 로직 디바이스, 필드 프로그램 가능 게이트 어레이와 상기 비휘발성 메모리 셀에 의하여 구성 및 프로그램된 플래쉬 기반의 마이크로제어기로 구성되는 그룹으로부터 선택된 로직 디바이스인 것인 회로.
  3. 제1항에 있어서, 벌크 동작 로직 회로를 구비하는 집적 회로는 블럭으로 분할되는 비휘발성 메모리 디바이스인 것인 회로.
  4. 제1항에 있어서, 상기 명령어 레지스터에 연관된 디코딩 수단에 의하여 디코딩 가능한 명령어 세트는 제어기로 하여금 상기 데이터 레지스터, 주소 레지스터 및 플래그 레지스터 중의 하나가 상기 직렬 입력을 거쳐 직렬로 수신된 비트를 로드하도록 하는 것이고, 벌크 동작 명령어는 제어기로 하여금 상기 비휘발성 셀에서 벌크 동작을 실행하게 하는 것인 회로.
  5. 제4항에 있어서, 벌크 동작 명령어는 상기 플래그 레지스터에 의해 지정된 셀 블럭을 소거하는 소거 명령어를 포함하는 것인 회로.
  6. 제4항에 있어서, 상기 벌크 동작 명령어는 상기 플래그 레지스터에 의해 지정된 셀 블럭 내의 상기 주소 레지스터에 의해 지정된 주소의 상기 데이터 레지스터로부터의 데이터를 프로그래밍 하는 프로그램 명령어를 포함하는 것인 회로.
  7. 제4항에 있어서, 상기 벌크 동작 명령어는 상기 플래그 레지스터에 의해 지정된 셀 블럭 내의 상기 주소 레지스터에 의해 지정된 주소의 메모리 내용을 확인하는 확인 명령어를 포함하는 것이고, 상기 메모리 내용은 상기 데이터 레지스터로 판독되어 상기 데이터 레지스터로부터 직렬 출력을 거쳐 상기 데이터 레지스터로 출력되는 것인 회로.
  8. 제4항에 있어서, 상기 벌크 동작 명령어는 상기 플래그 레지스터에 의해 지정된 상기 셀 블럭에 대한 마지닝 명령어를 포함하는 것인 회로.
  9. 제4항에 있어서, 선택 수단을 통하여 상기 명령어 레지스터, 데이터 레지스터, 주소 레지스터 및 플래그 레지스터에 연결되는 직렬 출력을 더 포함하고, 상기 명령어 세트는 제어기로 하여금 상기 직렬 입력을 통하여 직렬로 수신된 비트를 선택된 레지스터를 통하여 상기 직렬 출력으로 전달하게 하는 플로우 쓰루(flow through) 명령어를 포함하는 것인 회로.
  10. 제1항에 있어서, 상기 벌크 동작 제어기는 상태 머신 및 연관된 제어 회로를 포함하는 것인 회로.
  11. 제1항에 있어서, 상기 플러그 레지스터의 비트 할당은 상기 블럭으로서 비휘발성 셀의 서로 다른 중복된 그룹을 각각 지정하는 것인 회로.
  12. 제1항에 있어서, 상기 플래그 레지스터에 의해 지정되는 상기 셀 블럭은 지정된 다른 블럭과 다른 크기를 가지는 것인 회로.
  13. 제1항에 있어서, 상기 플래그 레지스터에 의해 지정되는 적어도 하나의 셀 블럭은 휘발성 메모리 셀을 포함하는 것인 회로.
  14. 셀 블럭으로 조직된 비휘발성 셀을 포함하는 집적 회로에서 벌크 동작을 수행하는 방법으로서,
    a) 상기 집적 회로의 벌크 동작 제어기의 상태를 상기 제어기로 공급되는 모드 신호에 의하여 일반 사용자 상태에서 벌크 동작 상태로 전환하는 단계와,
    b) 상기 벌크 동작 제어기의 제어 하에서, 상기 집적 회로의 명령어 레지스터로 레지스터 로드 명령어를 번갈아 로드하고, 상기 레지스터 로드 명령어에 응답하고, 하나 이상의 플래그 비트 세트, 주소 비트 및 데이터 비트를 상기 집적회로의 각각의 플래그 레지스터, 주소 레지스터 및 데이터 레지스터로 상기 레지스터들에 연결된 직렬 입력을 통하여 로드하는 단계와,
    c) 상기 명령어 레지스터로 벌크 동작 명령어를 로드하는 단계와,
    d) 상기 명령어 레지스터 내의 상기 벌크 동작 명령어에 의해 지정되는 벌크 동작을 수행하는 것으로서, 상기 벌크 동작은 상기 플래그 레지스터 내의 플래그 비트에 의하여 선택된 하나 이상의 셀 블럭에 대해서만 수행되고, 적어도 일부의 벌크 동작은 플래그 비트 뿐만 아니라 상기 주소 레지스터 및 데이터 레지스터의 내용을 사용하는 것인 단계를 포함하는 것인 방법.
  15. 제14항에 있어서, b) 단계 내지 d)단계를 반복하는 단계를 더 포함하되, 상기 플래그 레지스터의 상기 플래그 비트는 변경되지 않으면서 적어도 상기 주소 레지스터는 동일한 벌크 동작 명령어에 대하여 다른 주소 비트를 재로드하는 것인 방법.
  16. 제14항에 있어서, 상기 벌크 동작 명령어는 소거 동작 명령어, 프로그램 동작 명령어, 확인 동작 명령어 및 마지닝 동작 명령어로 구성되는 그룹으로부터 선택된 하나 이상의 명령어를 포함하는 것인 방법.
  17. 제14항에 있어서, 상기 플래그 레지스터의 비트 할당은 상기 블럭으로서 비휘발성 셀의 서로 다른 중복된 그룹을 각각 지정하는 것인 방법.
KR19997012188A 1997-12-08 1998-12-04 벌크 동작을 위해서 비휘발성 셀의 블럭을 선택하는플래그 레지스터를 구비한 집적 회로 KR20010014129A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/986,506 1997-12-08
US08/986,506 US5848026A (en) 1997-12-08 1997-12-08 Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations
PCT/US1998/025775 WO1999030324A1 (en) 1997-12-08 1998-12-04 Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations

Publications (1)

Publication Number Publication Date
KR20010014129A true KR20010014129A (ko) 2001-02-26

Family

ID=25532498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR19997012188A KR20010014129A (ko) 1997-12-08 1998-12-04 벌크 동작을 위해서 비휘발성 셀의 블럭을 선택하는플래그 레지스터를 구비한 집적 회로

Country Status (10)

Country Link
US (1) US5848026A (ko)
EP (1) EP1038298A4 (ko)
JP (1) JP2001526443A (ko)
KR (1) KR20010014129A (ko)
CN (1) CN1261947C (ko)
CA (1) CA2294797A1 (ko)
MY (1) MY133908A (ko)
NO (1) NO20002282L (ko)
TW (1) TW419892B (ko)
WO (1) WO1999030324A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356620B2 (en) 2003-06-10 2008-04-08 Altera Corporation Apparatus and methods for communicating with programmable logic devices
US6701395B1 (en) 1998-02-06 2004-03-02 Analog Devices, Inc. Analog-to-digital converter that preseeds memory with channel identifier data and makes conversions at fixed rate with direct memory access
EP0935195A2 (en) 1998-02-06 1999-08-11 Analog Devices, Inc. "An integrated circuit with a high resolution analog-to-digital converter, a microcontroller and high density memory and an emulator for an integrated circuit
US6385689B1 (en) * 1998-02-06 2002-05-07 Analog Devices, Inc. Memory and a data processor including a memory
US6289300B1 (en) 1998-02-06 2001-09-11 Analog Devices, Inc. Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
TW368626B (en) * 1998-04-17 1999-09-01 Winbond Electronics Corp Microprocessor with self-programmed embedded flash memory and programming method
JP2001274253A (ja) * 2000-03-28 2001-10-05 Toshiba Corp Fpga互換ゲートアレイ
US6424581B1 (en) * 2000-08-14 2002-07-23 Matrix Semiconductor, Inc. Write-once memory array controller, system, and method
US6473845B1 (en) * 2000-09-28 2002-10-29 Hewlett-Packard Company System and method for dynamically updating memory address mappings
JP4856848B2 (ja) 2001-10-11 2012-01-18 アルテラ コーポレイション プログラマブルロジックリソース上のエラー検出
US7127550B1 (en) * 2001-10-31 2006-10-24 Sandisk Corporation Multi-module simultaneous program, erase test, and performance method for flash memory
US6772276B2 (en) * 2002-01-04 2004-08-03 Intel Corporation Flash memory command abstraction
US6700815B2 (en) * 2002-04-08 2004-03-02 Advanced Micro Devices, Inc. Refresh scheme for dynamic page programming
US7260658B2 (en) * 2002-05-31 2007-08-21 Oracle International Corporation Verifying input/output command data by separately sending data to be written and information about contents of the data
KR100506061B1 (ko) * 2002-12-18 2005-08-03 주식회사 하이닉스반도체 특성 조정 장치를 부가한 메모리 장치
JP4615241B2 (ja) * 2003-04-08 2011-01-19 三星電子株式会社 マルチチップでマルチセクタ消去動作モードを実行する半導体メモリチップ及びマルチチップパッケージ、及びマルチセクタ消去方法
US7334182B2 (en) * 2004-11-24 2008-02-19 Northrop Grumman Corporation Serial data preservation method
US7492810B2 (en) * 2005-04-04 2009-02-17 General Electric Company Method and apparatus for segmented code correlation
US7506205B2 (en) * 2006-02-14 2009-03-17 Atmel Corporation Debugging system and method for use with software breakpoint
US7818464B2 (en) 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US9141477B2 (en) * 2007-10-12 2015-09-22 International Business Machines Corporation Data protection for variable length records by utilizing high performance block storage metadata
US8291248B2 (en) 2007-12-21 2012-10-16 Mosaid Technologies Incorporated Non-volatile semiconductor memory device with power saving feature
CN101903953B (zh) * 2007-12-21 2013-12-18 莫塞德技术公司 具有功率节省特性的非易失性半导体存储器设备
US8230317B2 (en) * 2008-04-09 2012-07-24 International Business Machines Corporation Data protection method for variable length records by utilizing high performance block storage metadata
US8190832B2 (en) * 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US9513912B2 (en) 2012-07-27 2016-12-06 Micron Technology, Inc. Memory controllers
JP6241373B2 (ja) * 2014-06-19 2017-12-06 株式会社デンソー 記憶装置、フラッシュメモリ制御装置、及びプログラム
CN107564563B (zh) * 2016-06-30 2020-06-09 华邦电子股份有限公司 存储器装置及其操作方法
US10901738B2 (en) * 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
CN110008075A (zh) * 2018-01-05 2019-07-12 深圳市中兴微电子技术有限公司 一种芯片调试方法及装置
CN109635401A (zh) * 2018-12-04 2019-04-16 中国航空工业集团公司西安航空计算技术研究所 一种动态可配置存储控制器设计方法
WO2022267065A1 (en) * 2021-06-25 2022-12-29 Intel Corporation Processing devices for reducing scan traffic, method and computer program
CN117312185B (zh) * 2023-10-17 2024-04-09 苏州异格技术有限公司 一种fpga内存储融合方法、装置及fpga内存系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855954A (en) * 1985-03-04 1989-08-08 Lattice Semiconductor Corporation In-system programmable logic device with four dedicated terminals
US4879688A (en) * 1985-03-04 1989-11-07 Lattice Semiconductor Corporation In-system programmable logic device
US5412260A (en) * 1991-05-03 1995-05-02 Lattice Semiconductor Corporation Multiplexed control pins for in-system programming and boundary scan state machines in a high density programmable logic device
US5237218A (en) * 1991-05-03 1993-08-17 Lattice Semiconductor Corporation Structure and method for multiplexing pins for in-system programming
US5491809A (en) * 1993-01-05 1996-02-13 Texas Instruments Incorporated Smart erase algorithm with secure scheme for flash EPROMs
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5414664A (en) * 1993-05-28 1995-05-09 Macronix International Co., Ltd. Flash EPROM with block erase flags for over-erase protection
KR970005644B1 (ko) * 1994-09-03 1997-04-18 삼성전자 주식회사 불휘발성 반도체 메모리장치의 멀티블럭 소거 및 검증장치 및 그 방법

Also Published As

Publication number Publication date
EP1038298A1 (en) 2000-09-27
WO1999030324A1 (en) 1999-06-17
MY133908A (en) 2007-11-30
US5848026A (en) 1998-12-08
CN1269906A (zh) 2000-10-11
JP2001526443A (ja) 2001-12-18
NO20002282L (no) 2000-06-06
CN1261947C (zh) 2006-06-28
CA2294797A1 (en) 1999-06-17
TW419892B (en) 2001-01-21
EP1038298A4 (en) 2003-06-04
NO20002282D0 (no) 2000-04-28

Similar Documents

Publication Publication Date Title
US5848026A (en) Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations
US5825782A (en) Non-volatile memory system including apparatus for testing memory elements by writing and verifying data patterns
US5949987A (en) Efficient in-system programming structure and method for non-volatile programmable logic devices
US4791602A (en) Soft programmable logic array
JP2561851B2 (ja) プログラマブル論理アレー
US6442092B1 (en) Interface circuit and method for writing data into a non-volatile memory, and scan register
US7216277B1 (en) Self-repairing redundancy for memory blocks in programmable logic devices
US6542956B1 (en) Latched address multi-chunk write to EEPROM
US7062619B2 (en) Mass storage device architecture and operation
KR100908542B1 (ko) 불휘발성 메모리 소자 및 그 프로그램 방법
US7167404B2 (en) Method and device for testing configuration memory cells in programmable logic devices (PLDS)
US5970005A (en) Testing structure and method for high density PLDs which have flexible logic built-in blocks
JPH02226811A (ja) プログラム可能な論理装置
JPH1083700A (ja) メモリアレイの耐久性試験方法及び特定の型式の試験の数の監視回路
US5996091A (en) CPLD serial programming with extra read register
US7181566B2 (en) Scratch control memory array in a flash memory device
US5999014A (en) Method for concurrently programming or accessing a plurality of in-system-programmable logic devices
KR20050021543A (ko) 플래시 메모리 셀들의 빌트인 셀프 테스트
US6816420B1 (en) Column redundancy scheme for serially programmable integrated circuits
US5768288A (en) Method and apparatus for programming a programmable logic device having verify logic for comparing verify data read from a memory location with program data
KR19980024750A (ko) 메모리의 개선된 온-칩 동작
EP0661636A1 (en) Integrated programming circuitry for an electrically programmable semiconductor memory device with redundancy
CN113950721B (zh) 允许多核操作的基于jtag的架构
US7769943B2 (en) Flexible, low cost apparatus and method to introduce and check algorithm modifications in a non-volatile memory
US7461306B2 (en) Output data compression scheme using tri-state

Legal Events

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