KR100805603B1 - 집적 회로 - Google Patents

집적 회로 Download PDF

Info

Publication number
KR100805603B1
KR100805603B1 KR1020027002579A KR20027002579A KR100805603B1 KR 100805603 B1 KR100805603 B1 KR 100805603B1 KR 1020027002579 A KR1020027002579 A KR 1020027002579A KR 20027002579 A KR20027002579 A KR 20027002579A KR 100805603 B1 KR100805603 B1 KR 100805603B1
Authority
KR
South Korea
Prior art keywords
flash
bus
flash memory
memory
integrated circuit
Prior art date
Application number
KR1020027002579A
Other languages
English (en)
Other versions
KR20020077331A (ko
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 KR20020077331A publication Critical patent/KR20020077331A/ko
Application granted granted Critical
Publication of KR100805603B1 publication Critical patent/KR100805603B1/ko

Links

Images

Classifications

    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Microcomputers (AREA)

Abstract

본 발명은 마이크로프로세서 IC의 구조 및 설계에 관한 것이며, 특히 비휘발성 플래시 메모리를 IC 내부로 내장 또는 집적하는 방법에 관한 것이다. 상기 플래시 메모리를 IC 내부로 집적하는 것은 몇가지 문제를 야기하는데, 상기 문제는 IC 상에서 플래시 메모리(7)를 하나 또는 그 이상의 마이크로프로세서(1,2)와 동작적으로 링크하는 전용 플래시 버스(3)를 제공함으로써 해결된다. 바람직하게는, 플래시 버스(3)는 플래시 메모리 특정 커맨드를 제어하며 마이크로프로세서(1,2) 및/또는 플래시 메모리(7)의 폭보다 큰 폭, 특히 배수인 폭인을 가져, 플래시 메모리의 비교적 느린 액세스 시간을 보상한다. 상기 시스템을 플래시 메모리(7)를 동작시키는 마스터/슬레이브 버스 시스템으로 구조화하며 플래시 버스(3)를 브리지(4,5,6)를 통해서는 마이크로프로세서(1,2)에 링크하며 쉘(8)을 통해서는 플래시 메모리(7)로 링크하는 것이 특히 유리하다. 상기 시스템을 동작시키기 위해, 플래시 버스 중재기(9)가 필요하며 또한 유리하다.

Description

집적 회로{INTEGRATED CIRCUIT WITH FLASH MEMORY}
본 발명은 집적 회로, 즉 IC의 구조 및 설계에 관한 것으로, 특히 비휘발성 플래시 메모리를 IC 내부로 내장 또는 집적하는 방법에 관한 것이다. 가령 이동 전화, PDA(personal digital assistants), 자동차용 또는 다른 네비게이션용 GPS 애플리케이션과 같이, 비휘발성 메모리를 마이크로프로세서에 집적하는 것이 필요한 모든 경우에 본 발명이 사용될 수 있다.
현재, 칩 내부에 내장된 플래시 메모리는 새로운 분야이며 거의 소수의 구현만이 존재한다. 그러나, 차후에 메모리를 IC로 내장하는 것은 매우 통상적이 될 것이다. 이는 메모리를 베이스밴드 프로세서(baseband processors) 내부로 집적하는 것이 이미 소비자의 요구 사항이 된 이동 전자 제품 시장(mobile product market)에서 적용된다. 칩 상으로 메모리를 집적하는 것은 실리콘 상의 가용한 실제 면적(real estate)을 보다 작은 피쳐 크기로 충진하는 방법이다. 집적된 플래시 메모리는 구성 요소의 수를 줄이고, 보다 작은 면적을 요하며, 감소된 핀 수로 인해 시스템 비용을 줄이고, 메모리로의 액세스가 보다 신속하게 하며, 펌웨어/소프트웨어 보호를 증가시키고, 전력 소비량을 줄인다.
본 발명은 다중프로세서 환경에서 단일 칩 상에 최상의 성능을 갖도록 플래시 메모리를 내장하는 방법을 기술한다. 또한, 프로그래밍, 판독, 테스팅, 평가에 대한 내장된 플래시 메모리의 필수 사항들은 그 결과가 우수한 아키텍쳐 및 제품이 되도록 최적화된다.
또한, 플래시 기술은 여전히 개발중이지만 제안된 아키텍쳐는 플래시 메모리를 프로토타입(prototypes)으로 에뮬레이션하는 것이 가능하게 하며 보다 빠른 시일 내에 시장으로의 진출을 돕는다.
현재, 디지털 프로세싱 시스템 내의 플래시 메모리는 개별적인 "오프 더 셀프(off the shelf)" 반도체 디바이스와 함께 구축되며, 회로 보드를 통해 마이크로프로세서에 접속되거나 다중 칩 패키지 내에 본딩된다. 액세스는 통상적으로 비지능, 저성능, 고 핀수 외부 메모리 인터페이스(a non-intelligent, low performance, high pincount external memory interface)를 통해 성취된다. 이러한 구성에 대한 실례는 플래시 메모리와 통신하는 다수의 I/O 포트를 갖는 단일 칩 마이크로제어기를 개시한 Mok US 특허 5 493 534 에 개시되어 있다. 그러나 이 플래시 메모리는 칩 내부에 내장되지 않는다.
플래시 메모리를 칩 내부로 내장하는 것은, 이렇게 내장된 메모리가 기대한 바대로 동작하기 이전에 해결되어할 어떤 문제를 초래한다.
본질상, 플래시 메모리의 실제 속도는 내장되는지의 여부에 상관없이 ROM에 비해 낮다. 이러한 제한된 성능을 극복하기 위해, 사용된 아키텍쳐는 신중하게 선택되어야 한다.
또한, 전력 소비도 규정된 전압에서의 성능에 대해 신중하게 고려되어야 한다. 요컨대, 최적화가 가능하다면 상기 방법은 개별 방법에 비해 내장형 플래시 메모리 시스템에 대한 장점이 될 수 있지만, 또한 특별한 노하우가 설계자로부터 요구됨을 암시한다.
통상적으로, 집적된 플래시 메모리는 개별 디바이스에서 알려진 바와 같은 유사한 기능성을 갖는 수단을 제공해야 한다. 이는 막대한 오버헤드(extensive overhead)가 프로그램 싸이클, 프로그램 일시중지 싸이클(program suspend cycles), 소거 싸이클 및 어레이 로드 싸이클과 같은 플래시 관리 기능의 구현을 위해 설계되어야 함을 의미한다. 또한, 하드웨어는 평가 및 테스팅을 위해 필요하다.
온 칩 플래시 메모리의 테스팅은 특히 총 디바이스 테스트 시간에 대한 새로운 문제를 일으킬 수 있다. 일반적으로, 테스팅 디지털 로직은 오직 몇 초의 테스트 시간을 요하며, 메모리 테스팅은 통상적으로 몇 초 이상의 시간을 요하는 비교적 긴 프로세스이다. 여기서, 플래시 메모리를 효율적으로 액세스하며 테스트하는 방안이 필요하다.
간단하게 말하자면, 본 발명은 프로세서 IC, 특히 다중 프로세서 IC에 내장된 플래시 메모리를 동작시키는 전용 버스 시스템, 특히 마스터/슬레이브 버스 시스템을 제공함으로써 상기 문제를 해결한다. 바람직하게는, "로드", "프로그램", "소거" "프로그램 일시중지(program suspend)","소거 일시중지(erase suspend)" 등 과 같은 내장형 플래시 메모리에 대한 요구 및/또는 커맨드는 플래시 버스에 의해 제어된다.
특정 변경에서, 플레시 메모리는 쉘을 통해 플래시 버스에 링크되며, 상기 쉘은 플래시 버스에 대한 슬레이브가 될 수 있다.
다른 실시예에서, IC 상의 마이크로프로세서 및/또는 통상적으로 존재하는 시스템 버스는 브리지를 통해 플래스 버스에 접속될 수 있으며, 상기 브리지는 플래시 버스에 대한 마스터가 될 수 있다. 이에 대한 변경으로, 임의의 브리지에 캐시가 제공되어 동작 속도가 보다 개선된다.
다중프로세서 환경으로 쉘 및 브리지와 같은 다수의 플래시 메모리 지지부를 포함하지만 여기에만 한정되는 것이 아닌, 본 발명에 따른 전용, 높은 밴드폭 플래시 버스 주위의 아키텍쳐에 관한 실시예의 다음 설명으로부터 고려될 수 있는 다른 추가 및 변경이 존재한다.
다음에서는, 본 발명을 구현하기 위한 실시예가 도시된다.
동일 참조 부호가 다양한 도면에서 동일 부분에 대해 사용된다.
도 1는 "최소형" 플래시 버스 다중프로세서 시스템을 도시하는 도면,
도 2는 플래시 메모리의 에뮬레이션(emulation)의 도면,
도 3 및 도 4는 플래시 버스 구성 요소의 세부 도면,
도 5는 플래시 버스 마스터 우선 순위 리스트의 테이블,
도 6은 동기식 메모리 모드의 스트로브 신호의 도면.
도 1은 본 발명에 따른 내장형 플래시 메모리를 갖는 다중프로세서 시스템을 도시한다. 두 마이크로프로세서(1,2)가 제공되며, 상기 프로세서의 버스는 플래시 브리지(4,5,6)를 통해 플래시 버스(3)로 링크되며, 이들 브리지는 아래에 기술되겠지만 플래시 버스에 대한 마스터이다. 플래시 메모리(7)는 "플래시 쉘(flash shell)"로 지칭되는 로직을 통해 플래시 버스(3)에 링크되며, 상기 플래시 쉘은 플래시 버스에 대한 슬레이브이다. 플래시 쉘(8)은 플래시 메모리의 온 칩 테스팅을 위한 장치(facilities)를 포함할 수 있지만, 이는 여기서 관심 사항은 아니다.
마이크로프로세서(2)는 본 기술 분야에서 알려진 가령 이른바 DSP 더블 하바드 아키텍쳐로부터 알려진 다중 버스를 가지며, 상기 프로세서(2)는 두 플래시 브리지(5,6)를 통해 플래시 버스(3)를 액세스한다. 도 1에 도시된 다양한 구성 요소 간의 데이터 전달은 단방향 또는 양방향이 될 수 있다.
플래시 버스(3)의 일부인 데이터 및 어드레스 버스(3a)는 플래시 메모리(7) 내의 메모리 셀(도시되지 않음)에 대한 어드레스 및 데이터를 제공한다. 플래시 버스(3)의 일부인 제어 신호 버스(3b)는 플래시 브리지(4,5,6) 및 플래시 쉘(8) 간에서 신호 액세스 권리 및 상태 정보를 교환한다. 마지막으로, 플래시 버스 중재기(9)는 버스(3) 상의 액세스 및 트래픽을 제어한다.
두 프로세서(1,2)가 동일한 플래시 메모리(7)를 공유하기 때문에, 플래시 메 모리 내의 공간이 소프트웨어적으로 즉 매우 유연성있게 각 프로세서에 할당될 것이다.
플래시 브리지(4,5,6)는 각각의 마이크로프로세서(1,2)와 플래시 버스(3) 간의 인터페이스이다. 각 플래시 브리지는 그것이 버스로의 액세스가 필요할 경우 플래시 버스에 요청(requests)을 전송하여 플래시 메모리(7)의 프로그램 및 소거 싸이클을 제어할 수 있다.
플래시 버스(3)는 플래시 메모리의 제한된 액세스 수행을 보상하기 위해 마이크로프로세서의 폭의 배수인 버스 폭을 갖는다.
도시된 실시예에서, 각각의 플래시 브리지(4,5,6)는 가령 32 비트의 마이크로프로세서의 폭 및 가령 128 비트의 플래시 버스의 폭 간의 폭 변환(width conversion)을 제공한다. 도시된 플래시 브리지 중 두 개(4,5)는 최근에 사용된 액세스를 위해 데이터 캐시 디바이스를 포함한다. 이는 알려진 방식으로 전달 속도를 증가시킨다.
플래시 쉘(8)은 플래시 메모리(7) 및 플래시 버스(3) 간의 인터페이스이다. 플래시 메모리(7)가 프로그래밍 또는 소거 동안 통화중(busy)일 때 플래시 쉘은 플래시 버스(3)에 메시지를 전달한다. 플래시 메모리(7)로부터 판독된 데이터가 가용할 때, 플래시 쉘(8)은 버스 중재기(9)에 신호를 보낸다. 또한, 플래시 쉘(8)은 플래시 메모리(7)를 테스팅하는 장치를 포함하며, 상기 테스팅은 플래시 버스(3)에 의해 제어된다.
가령 요청, 승인(grant) 및/또는 긍정 응답(acknowledgements)에 대한 플래 시 버스 제어 신호는 플래시 브리지(4,5,6) 중 어느 하나, 플래시 쉘(8), 플래시 버스 중재기(9)를 링크한다. 플래시 버스(3)의 일부인 이들 제어 신호는 플래시 브리지(4,5,6) 및 플래시 쉘(8), 플래시 중재기(9)와 통신하는 개별적인, 바람직하게는 지능형 병렬 또는 직렬 버스에 의해 전달될 수 있다.
플래시 버스(3)의 일부인 데이터 및 어드레스 버스(3a)는 플래시 브리지(4,5,6) 중의 어느 하나 및 플래시 쉘(8)로/로부터 데이터를 전송한다.
플래시 버스 중재기(9)는 버스 마스터, 즉 플래시 브리지(4,5,6) 중 어느 하나로부터 요청을 수신하며, 슬레이브, 즉 플래시 쉘(8)을 할당한다. 도시된 실시예에서, 액세스 우선 순위 인코딩이 구현된다. 지능형 버스 시스템이 사용될 경우, 후자는 메시지를 수신하여 버스 마스터 및 슬레이브에 전송한다.
플래시 버스 프로토콜은 슬레이브 및 마스터 및 플래시 버스 중재기를 제어하는데 필요한 정보를 운반한다. 지능형 버스 시스템에서, 플래시 버스 프로토콜은 제어 메시지 내에 내장될 수 있다. 다른 애플리케이션에서, 그것은 하드웨어에 의해 구현될 수 있다. 플래시 버스의 태스크는 어느 마스터가 버스를 요청하는 마스터인지 표시하는 것과, 판독 및 기록을 위한 슬레이브의 가용성을 표시하는 것과, 플래시 데이터/어드레스 버스의 가용성을 표시하는 것과, 타당한 플래시 판독 데이터의 가용성을 표시하는 것과, 플래시 메모리가 프로그램 또는 소거 싸이클 동안 잠겼는지의 여부를 평가하는 것과, 메모리 테스팅을 인에이블하는 것과, 플래시 쉘 및 플래시 버스 중재기의 제어 및 상태 레지스터를 평가하는 것과, 플래시 메모리에서 프로그램 및 소거 싸이클을 트리거하는 것과, 플래시 버스 마스터 및 슬레이브 간에 데이터 전달을 촉진하는 것을 포함한다.
도 2는 플래시 메모리 에뮬레이션을 가능하게 하는 실시예를 도시한다. 플래시 메모리가 개발중인 동안, SRAM(7')으로 플래시 메모리를 에뮬레이션할 필요가 있을 수 있다. 상기 메모리가 플래시 쉘(8)을 통해 플래시 버스(3)에 접속되기 때문에, 다른 타입의 메모리를 쉽게 접속시킬 수 있는데, 그 이유는 오직 플래시 메모리(8)만이 적응될 필요가 있기 때문이다. 대기 상태가 플래시 브리지(4,5,6)를 통해 제어되기 때문에, 메모리 행동은 에뮬레이션된 디바이스와 동일하도록 조절될 수 있다.
플래시 쉘(8)이 도 2에서 도시된 메모리 제어기(11)로 대체된다면, 가령 동기식 DRAM와 같은 외부 메모리(10)는 플래시 버스(3)에 접속될 수 있다.
도 3 및 도 4는 이동 전화의 베이스밴드 IC에서의 본 발명에 따른 플래시 버스의 구현을 도시한다. 도 3에 도시된 바처럼, DSP(33)의 데이터 캐시(31) 및 인스트럭션 캐시(32)는 플래시 버스(3)에 링크된다. 플래시 버스 중재기(9) 및 그의 DSP 캐시(31,32)와의 상호동작이 세부적으로 도시된다.
플래시 쉘(8)이 도 4에 도시된다. 도시된 바처럼, 실제 플래시 메모리(7)가 인터페이스 쉘, 즉 플래시 쉘(8) 내에 내장되며, 상기 플래시 쉘은 제어 로직, 즉 제어 및 상태 레지스터(42), 대기 상태 레지스터(43) 및 가능하면 몇몇의 에러 보정 회로 또는 소프트웨어를 포함한다. IC의 에뮬레이션 버전(도 2 및 관련 설명 참조)에서, 플래시 쉘(8)이 SRAM과 같은 몇몇 다른 메모리 또는 외부 버스 인터페이스를 더 포함하여 메모리를 칩 외부로 접속시킨다. 플래시 쉘(8)은 플래시 버스의 슬레이브이다.
플래시 메모리 싸이클은 판독 싸이클, 데이터 로드 싸이클, 프로그램 싸이클, 소거 싸이클, 프로그램/소거 일시중지 싸이클을 포함한다. 로드 싸이클 동안, 어드레스와 함께 사용되는 데이터는, 이들이 프로그램 싸이클 동안 메모리 어레이로 전달되기 전에, 데이터 래치 내부에 기록된다. 프로그램 싸이클은 모든 데이터 래치가 채워진 다음에 시작된다. 그러한 프로그램 싸이클은 수 밀리초가 걸릴 수 있으며, 상기 프로그램 싸이클 동안 플래시 메모리는 판독 또는 로드 싸이클에 대해 사용될 수 없다. 마찬가지로, 소거 싸이클도 수 밀리초가 걸릴 수 있으며, 상기 소거 싸이클 동안 플래시 메모리는 판독 또는 로드 싸이클에 대해 사용될 수 없다.
도 3에 도시된 두 DSP 캐시, 즉 데이터 캐시(31) 및 인스트럭션 캐시(32)는 각각 플래시 버스(3)로의 인터페이스를 갖는다. 상기 인터페이스는 캐시 미스(misses)의 경우 인스트럭션 및 데이터 캐시 라인을 채우는 경로이다. 데이터 및 인스트럭션 캐시(31,32)는 플래시 버스(3)에 대한 버스 마스터이다.
도 4에 도시된 플래시 브리지(41)는 마이크로프로세서(1)를 플래시 버스(3) 및 플래시 쉘(8)에 접속시키며, 마이크로프로세서(1)는 상기 플래시 버스(3) 및 플래시 쉘(8)로의 판독 및 기록 액세스를 갖는다. 플래시 브리지(41)는 메모리 버스의 16 비트 또는 32 비트 버스 모드로부터의 데이터를 플래시 버스(3)의 128 비트 버스 폭으로 변환시킨다. 또한, 플래시 브리지(41)는 플래시 버스(8)의 마스터이다.
도 3에 도시된 두 DSP 캐시, 즉 데이터 및 인스트럭션 캐시(31,32) 및 플래시 브리지(41)는 플래시 버스 상에서 마스터로 경쟁하기 때문에, 버스 중재가 요구된다. 이러한 중재는 도 3에 도시된 플래시 버스 중재기(9)에 의해 수행된다. 이상적으로, 중재 싸이클은 매우 적은 오버헤드를 소비하거나 또는 전혀 소비하지 않는다. 두 개 또는 그 이상의 버스 마스터가 버스 액세스를 요청하면, 어느 요청자(requester)가 버스를 얻을지가 결정된다. 상기 결정은 우선 순위 리스트에 따라 수행되며, 상기 리스트의 실례는 도 5의 테이블에 도시된다. 매 버스 액세스 후에, 어느 버스 마스터가 다음이 될지를 결정하는 것은 이전 액세스를 고려하지 않고 수행된다. 진행 중인 버스 액세스는 보다 상위 순위 버스 요청에 의해 중지되지 않는다. 통상적으로, DSP 캐시(31,32)는 최상위 순위를 갖는데, 그 이유는 그들의 수행이 중요하기 때문이다. 플래시 버스 로드가 하위이기 때문에, 보다 하위 순위를 갖는 요청자가 무시되거나 플래시 버스(3)로의 액세스를 획득하는 것이 방해될 가능성은 없다.
데이터 및 인스트럭션 캐시(31,32)가 플래시 버스 중재기(9)로의 요청 및 응답 신호를 재동기화하지 않고 플래시 메모리(7)로의 신속한 액세스를 요구하기 때문에, 플래시 버스 중재기(9)는 DSP 캐시(31,32)(클록 신호 dcclk)와 동기가 되도록 클록된다(도 3의 클록 신호 dfclk). DSP 코어(core)가 휴면 상태에 있을 때 플래시 메모리(7)로의 플래시 브리지(41) 액세스가 발생할 수 있기 때문에, 시스템 제어기 및/또는 DSP가 활성 상태일 때 플래시 중재기(7)로의 클록(클록 신호 dfclk)이 동작한다.
다음에, 캐시 중재 및 페치 싸이클이 기술된다. DSP 캐시(31) 및/또는 (32)가 플래시 쉘로부터의 데이터를 요청할 때("캐시 라인 채움"), 요청하는 버스 마스터는 신호 f_dcaddr 또는 f_icaddr을 각기 검사하여(도 3), 요구된 요청 신호를 활성화한다. 이 신호는 데이터 캐시(31)에 대해서는 신호 f_dcreq이며 인스트럭션 캐시(32)에 대해서는 신호 f_icreq 이다. 이에 따라 마스터는 버스 상에서 우선 순위를 가지며, 버스가 이미 다른 마스터에 의해 통화중이거나 잠겨지지 않았다면, 플래시 버스 중재기(9)는 어드레스 멀티플렉서에 승인 신호를 발행함으로써 액세스를 승인한다. 이 신호는 데이터 캐시(31)에 대해서는 f_dcgnt이며 인스트럭션 캐시(32)에 대해서는 f_icgnt이다. 버스 승인 신호에 따라, 어드레스 멀티플렉서(34)는 어드레스 버스를 승인된 마스터로 조정한다. 신호 f_rden는 판독 싸이클 동안 플래시 메모리(7)를 인에이블한다. 플래시 메모리의 출력 데이터 버스(신호 f_do)가 일단 안정되면, 플래시 버스 중재기(9)는 적당한 긍정 응답 신호, 즉 데이터 캐시(21)에 대해서는 f_dcack 및 인스트럭션 캐시(32)에 대해서는 f_icack 신호가 활성이 되도록 한다. 클록 신호 dcclk의 다음 상승 에지 상에서, 승인된 마스터가 데이터를 등록(register)하며 그의 싸이클을 계속한다.
다음은, 상술된 대기 상태를 설명한다. DSP 33의 클록 속도에 따라, 플래시 버스 싸이클은 대기 상태를 캐시 페치 또는 플래시 브리지 액세스 싸이클에 삽입함으로써 확장될 필요가 있다. 이러한 삽입은 요청 소스에 대한 응답을 지연함으로써 수행된다. 액세스가 승인된 후에, dcclk 클록의 수가, 요구된 대기 상태 수가 도달될 때까지, 계수되고, 요구된 대기 상태가 삽입되었으며 이로써 플래시 메모리(7)로부터의 데이터가 타당하다는 것을 버스 마스터에 통지하기 위해, 플래시 버스 중재기(9)는 신호 f_dcack 또는 f_icack를 어서트(assert)한다. 삽입된 대기 상태의 양은 플래시 브리지(43) 내의 대기 상태 레지스터(43)에 의해 결정된다. 리세트 후에, 대기 상태 레지스터는 최대 대기 상태 수를 삽입하도록 세트된다.
다음으로, 플래시 메모리 판독 싸이클이 언급된다. 플래시 브리지(41)가 데이터를 플래시 쉘(8)로부터 요청할 때, 요청하는 버스 마스터는 신호 f_addr를 검사하여 요구된 요청 신호 f_fbreq를 활성화한다. 이에 따라, 마스터는 버스 상에서 우선 순위를 가지며, 버스가 다른 마스터로부터 이미 통화중이거나 잠겨지지 않았다면, 플래시 버스 중재기(9)는 승인 신호를 어드레스 멀티플렉서에 발행함으로써 액세스를 승인하며, 상기 승인 신호는 f_fbgnt이다. 이 승인 신호에 따라, 어드레스 멀티플렉서(34)는 어드레스 버스를 승인된 마스터로 조정한다. 신호 f_rden이 판독 싸이클 동안 플래시 메모리(7)를 인에이블한다. 플래시 메모리 출력 데이터 버스(신호 f_do)가 일단 안정되면, 플래시 버스(9)는 적당한 응답 신호가 활성이 되게 한다. 클록 신호 dcclk의 다음 상승 에지 상에서, 승인된 마스터가 데이터를 등록하며 그의 싸이클을 계속한다. 도 6의 도면은 가장 신속한 가능한 플래시 브리지 판독 싸이클을 도시한다.
플래시 버스 요청은 조기에 제거될 수 있다. 즉 신호 f_screq, f_icreq, f_dcreq는 플래시 브리지(41)가 응답 신호를 요청하는 마스터에 전송하기 전에 제거될 수 있다. 이는 가령 DSP가 휴면 모드로 되기 전에, 캐시가 플래시 액세스 싸이클을 중지한 경우이다. 대응 신호 f_dcack 또는 f_icack 이전에 신호 f_dcreq 또는 f_icreq 중 어느 하나가 제거될 때, 플래시 액세스 싸이클은 안전하게 완료되며 대응 신호 f_dcgnt 또는 f_icgnt는 한 클록 싸이클 이후에 제거된다.
다음에, 플래시 브리지(41)를 통해 플래시 메모리(7) 내부로 데이터를 로딩하는 것이 기술된다. 플래시 브리지(41)가 플래시 쉘(8)로의 데이터 기록을 요청할 때, 플래시 브리지는 f_di 버스 상의 데이터 및 f_addr 버스 상의 어드레스를 검사하여 신호 f_fbrep를 활성화한다. 이전 플래시 버스 싸이클이 완료될 때, 플래시 버스 중재기(9)는 신호 f_fbgnt를 인가함으로써 싸이클을 승인한다. 신호 f_ldst의 상승 에지는 데이터를 플래시 메모리 데이터 래치 내부로 등록한다. 신호 f_fback를 활성화하는 것은 데이터가 플래시 메모리에 의해 래치되어서 어드레스가 이제 제거될 수 있음을 플래시 브리지(41)에 표시한다. f_fback 신호가 활성 상태가 될 때, 플래시 브리지는 f_addr과 함께 f_fbreq를 제거한다. f_di 버스는 f_fbreq가 제거될 때 플래시 브리지(41)에 의해 제로로 된다.
마지막으로, 플래시 소거 및 프로그램 싸이클이 어드레스된다. 플래시 소거 싸이클 동안, 전체 플래시 섹터가 소거된다. 플래시 프로그램 싸이클 동안, 플래시 데이터 래치의 내용은 플래시 메모리 어레이로 전달된다. 플래시 메모리(7)를 소거 및 프로그래밍하는 것은 몇 밀리초를 필요로 한다. 이 시간 동안, 플래시 메모리(7) 및 플래시 버스(3) 모두는 액세스될 수 없다. 이로써, 플래시 메모리(7)가 프로그램되거나 소거되기 전에, 플래시 버스(3)는 캐시 및/또는 플래시 브리지로부터 액세스에 대해 잠겨져야 한다. 이는 시스템 제어기에 의 해 플래시 제어 레지스터 내에 버스 잠금 비트를 세팅함으로써 수행된다. 버스 잠금 비트는 신호 f_lckreq가 활성 상태가 되게 하여 플래시 버스 중재기(9)에 신호를 보내어 현 액세스 싸이클이 완료된 후에 다른 버스 마스터 액세스에 대해 버스를 잠근다. 플래시 버스 중재기(9)가 싸이클을 잠근 후에, 상기 중재기는 신호 f_lckgnt를 활성화하며, 상기 신호는 플래시 제어 및 상태 레지스터(42)에 반영된다. 시스템 제어기는 이제 플래시 프로그램 또는 소거 싸이클을 초기화할 수 있다. 이 플래시 프로그램 또는 소거 싸이클이 일단 완료되면, 시스템 제어기는 플래시 제어 및 상태 레지스터(42) 내의 잠금 비트를 제거해야 하며, 이로써 f_lckreq 신호가 제거된다. 소거 및 프로그램 싸이클의 기간은 시스템 제어기 내의 클록 또는 전용 타이머에 의해 타이밍된다.
본 발명이 특정 실시예를 기초로하여 설명되었지만, 본 기술의 당업자는 많은 변경이 본 발명의 정신 및 범위 내에서 가능함을 인식할 것이다.

Claims (11)

  1. 적어도 하나의 마이크로프로세서 및 적어도 하나의 내장형 메모리를 구비한 집적 회로에 있어서,
    상기 메모리는 비휘발성 또는 플래시 메모리(7)이고,
    상기 마이크로프로세서(1,2)를 상기 메모리(7)에 동작가능하게 링크하는 전용 플래시 버스(3)를 구비하며,
    상기 플래시 버스(3)는 상기 플래시 메모리(7)를 동작시키기 위한 마스터/슬레이브 버스 시스템인
    집적 회로.
  2. 제 1 항에 있어서,
    상기 플래시 버스(3)는 플래시 메모리 특정 커맨드를 제어하는
    집적 회로.
  3. 제 1 항 또는 2 항에 있어서,
    상기 플래시 버스(3)의 데이터 폭은 상기 마이크로프로세서(1,2) 또는 상기 플래시 메모리(7)의 데이터 폭보다 큰
    집적 회로.
  4. 삭제
  5. 제 1 항 또는 2 항에 있어서,
    상기 플래시 버스(3)는 데이터/어드레스 버스 부분(3a) 및 제어 신호 버스 부분(3b)을 포함하는
    집적 회로.
  6. 제 1 항 또는 2 항에 있어서,
    상기 플래시 메모리(7)는 쉘(8)을 통해 상기 플래시 버스(3)에 링크되며,
    상기 쉘(8)은 상기 플래시 버스(3)에 대해 슬레이브인
    집적 회로.
  7. 제 1 항 또는 2 항에 있어서,
    상기 플래시 버스(3)는 브리지(4,5,6)를 통해 상기 마이크로프로세서(1,2) 또는 마이크로프로세서의 버스에 링크되며,
    상기 브리지는 상기 플래시 버스(3)에 대해 마스터인
    집적 회로.
  8. 제 7 항에 있어서,
    상기 플래시 브리지(4,5)는 상기 플래시 버스(3)와 상기 링크된 마이크로프로세서(1,2) 간의 폭 변환을 제공하는
    집적 회로.
  9. 제 7 항에 있어서,
    상기 플래시 브리지(4,5)는 데이터, 어드레스 또는 커맨드 신호의 중간 저장을 위한 캐시를 포함하는
    집적 회로.
  10. 제 1 항 또는 2 항에 있어서,
    상기 플래시 버스(3) 상의 액세스 및 트래픽을 제어하며 또한 상기 플래시 버스(3) 상의 경합 요구를 중재하는 플래시 버스 중재기(9)를 더 포함하는
    집적 회로.
  11. 제 1 항 또는 2 항에 있어서,
    복수의 마이크로 프로세서(1,2)가 상기 플래시 메모리(7)에 접속된 상기 플래시 버스(3)에 직접 또는 간접적으로 링크되는
    집적 회로.
KR1020027002579A 2000-06-27 2001-06-20 집적 회로 KR100805603B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00113610.0 2000-06-27
EP00113610 2000-06-27

Publications (2)

Publication Number Publication Date
KR20020077331A KR20020077331A (ko) 2002-10-11
KR100805603B1 true KR100805603B1 (ko) 2008-02-20

Family

ID=8169086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027002579A KR100805603B1 (ko) 2000-06-27 2001-06-20 집적 회로

Country Status (5)

Country Link
US (1) US6574142B2 (ko)
EP (1) EP1203379A1 (ko)
JP (1) JP2004502225A (ko)
KR (1) KR100805603B1 (ko)
WO (1) WO2002001573A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1297434B1 (en) * 2000-06-27 2005-04-20 Koninklijke Philips Electronics N.V. Integrated circuit with flash
US20030023794A1 (en) * 2001-07-26 2003-01-30 Venkitakrishnan Padmanabha I. Cache coherent split transaction memory bus architecture and protocol for a multi processor chip device
US20030065862A1 (en) * 2001-09-28 2003-04-03 Wyland David C. Computer system and method for communications between bus devices
US20030225962A1 (en) * 2002-05-31 2003-12-04 Hitachi, Ltd. Memory card and memory card system
JP4031996B2 (ja) * 2003-01-30 2008-01-09 富士フイルム株式会社 メモリ装置を備えたディジタル・スチル・カメラ
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US20070204102A1 (en) * 2006-02-28 2007-08-30 Nokia Corporation Cache feature in electronic devices
US20080147940A1 (en) * 2006-12-18 2008-06-19 Rom-Shen Kao Method and apparatus for controlling a shared bus
KR100877611B1 (ko) * 2007-02-08 2009-01-09 삼성전자주식회사 플래시 메모리 내장 마이크로 컨트롤러 유닛 시스템 및상기 마이크로 컨트롤러 유닛의 플래시 메모리 접근 방법
US8122322B2 (en) 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9916213B1 (en) * 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US10430303B1 (en) * 2013-03-15 2019-10-01 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
TWI553483B (zh) * 2014-10-13 2016-10-11 瑞昱半導體股份有限公司 處理器及存取記憶體的方法
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
EP3926452A1 (en) 2020-06-19 2021-12-22 NXP USA, Inc. Norflash sharing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725349A2 (en) 1995-01-31 1996-08-07 Mitsubishi Denki Kabushiki Kaisha Microcomputer chip layout
US5678082A (en) * 1994-12-09 1997-10-14 Olympus Optical Co., Ltd. Electrical system apparatus including one-chip microcomputer
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US5873112A (en) * 1996-02-23 1999-02-16 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1980002881A1 (en) * 1979-06-12 1980-12-24 Motorola Inc Microcomputer with mpu-programmable eprom
KR100320360B1 (ko) 1993-07-29 2002-04-22 페레고스 조지, 마이크 로스 원격재프로그램이가능한마이크로콘트롤러용프로그램메모리
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
US5765002A (en) * 1995-03-13 1998-06-09 Intel Corporation Method and apparatus for minimizing power consumption in a microprocessor controlled storage device
KR20020029760A (ko) * 2000-06-27 2002-04-19 롤페스 요하네스 게라투스 알베르투스 집적 회로 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678082A (en) * 1994-12-09 1997-10-14 Olympus Optical Co., Ltd. Electrical system apparatus including one-chip microcomputer
EP0725349A2 (en) 1995-01-31 1996-08-07 Mitsubishi Denki Kabushiki Kaisha Microcomputer chip layout
KR100234142B1 (ko) 1995-01-31 1999-12-15 다니구찌 이찌로오, 기타오카 다카시 마이크로 컴퓨터
US5873112A (en) * 1996-02-23 1999-02-16 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers

Also Published As

Publication number Publication date
EP1203379A1 (en) 2002-05-08
JP2004502225A (ja) 2004-01-22
US20020011607A1 (en) 2002-01-31
KR20020077331A (ko) 2002-10-11
WO2002001573A1 (en) 2002-01-03
US6574142B2 (en) 2003-06-03

Similar Documents

Publication Publication Date Title
KR100805603B1 (ko) 집적 회로
KR100868393B1 (ko) 비휘발성 메모리 제어기 및 휘발성 메모리에 액세스하는방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리
US6480929B1 (en) Pseudo-concurrency between a volatile memory and a non-volatile memory on a same data bus
US6745369B1 (en) Bus architecture for system on a chip
EP0617364B1 (en) Computer system which overrides write protection status during execution in system management mode
US7581054B2 (en) Data processing system
JP7195486B1 (ja) 異種メモリシステムに対するシグナリング
KR20020029760A (ko) 집적 회로 시스템
JP7521132B2 (ja) アービトレーション中の書き込みバンクグループのマスク
KR20230017865A (ko) Dram을 위한 리프레시 관리
CN114902197B (zh) 非易失性双列直插式存储器模块的命令重放
CN115516563A (zh) 用于dram的刷新管理
KR20220116033A (ko) 비휘발성 메모리 모듈에 대한 오류 복구
US7389384B2 (en) Apparatus and method for fetching data from memory
JP2011081553A (ja) 情報処理装置及びその制御方法
US20040098635A1 (en) Bus sampling on one edge of a clock signal and driving on another edge
US20150177816A1 (en) Semiconductor integrated circuit apparatus
US11995008B2 (en) Memory controller with hybrid DRAM/persistent memory channel arbitration
CN117120992A (zh) 用于多队列存储器控制器的信用方案
JP3817327B2 (ja) データ処理システムにおいてチップ選択可能な装置をアクセスする方法および装置
KR19980079687A (ko) 데이타 버퍼가 부착된 s m p 메모리 제어기에 있어서의 대기 시간이 짧은 제 1 데이타 억세스
US20240211173A1 (en) Performance of bank refresh
JP3600830B2 (ja) プロセッサ
JPH10222482A (ja) マイクロコンピュータおよび該マイクロコンピュータを含むシステム
KR20070122227A (ko) 시간 데이터 플로팅 딜레이 및 외부 메모리 기록 동안시스템 비활성을 감소시키는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee