KR100731527B1 - 데이터 처리 시스템에서 메모리를 오버레이하는 방법 및장치 - Google Patents

데이터 처리 시스템에서 메모리를 오버레이하는 방법 및장치 Download PDF

Info

Publication number
KR100731527B1
KR100731527B1 KR1020027013296A KR20027013296A KR100731527B1 KR 100731527 B1 KR100731527 B1 KR 100731527B1 KR 1020027013296 A KR1020027013296 A KR 1020027013296A KR 20027013296 A KR20027013296 A KR 20027013296A KR 100731527 B1 KR100731527 B1 KR 100731527B1
Authority
KR
South Korea
Prior art keywords
overlay
ram
memory
data
nonvolatile memory
Prior art date
Application number
KR1020027013296A
Other languages
English (en)
Other versions
KR20030014382A (ko
Inventor
가네쉬거러스와미
바타라이서렌드라피.
할우드월레이스비.3세
밀러게리엘.
제레멘스키조셉
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 KR20030014382A publication Critical patent/KR20030014382A/ko
Application granted granted Critical
Publication of KR100731527B1 publication Critical patent/KR100731527B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Information Transfer Between Computers (AREA)
  • Microcomputers (AREA)

Abstract

데이터 처리 시스템은 코어(102), 시스템 버스, 비휘발성 메모리(104) 및 랜덤 액세스 메모리(RAM)(106)을 갖는 내장형 제어기(100)를 포함한다. RAM(104)은 비-오버레이 영역(108) 및 오버레이 영역(110)을 갖는다. 오버레이 영역(110)은 복수의 분할들로 분할될 수 있다. 오버레이 영역(110)의 분할들은 오버레이 영역들로서 사용되지 않을 때 범용 메모리로서 사용될 수 있다.
랜덤 액세스 모듈, 오버레이 영역, 시스템 인터페이스 유닛, 내장형 제어기, 데이터 처리 시스템

Description

데이터 처리 시스템에서 메모리를 오버레이하는 방법 및 장치{Method and apparatus for overlaying memory in a data processing system}
본 발명은 데이터 처리 시스템에 관한 것이다. 특히, 본 발명은 데이터가 하나의 메모리로부터 다른 메모리 상에 오버레이될 수 있는 데이터 처리 시스템에 관한 것이다.
종래 기술의 내장형 제어기들은 온-칩 및 오프-칩 메모리들을 포함하는 다양한 메모리들을 지원한다. 예를 들어, 어떤 내장형 제어기들은 SRAM 메모리 블록뿐만 아니라 FLASH 메모리 블록을 갖는다. 때때로, 내장형 제어기의 정상 동작 동안에 FLASH 메모리에서 데이터를 변경하는 것이 요구된다. 예를 들어, 엔진(또는 다른 전기 기계적 장치)용 제어기로서 사용된 내장형 제어기에 있어서, FLASH 메모리에 저장되는 여러 파라미터들은 엔진을 적절히 튜닝하기 위해 변경될 필요가 있을 수도 있다. FLASH 메모리는 내장형 제어기의 정상 동작 동안에 용이하게 프로그램되지 않을 수도 있기 때문에, 종래 기술의 내장형 제어기들은 FLASH 메모리 상에 SRAM 메모리로부터의 데이터를 오버레이하기 위해 오버레이 방법을 사용한다.
종래 기술의 오버레이 방법들은 여러 문제점들을 갖는다. 한가지 문제점은 데이터 전송 시간에 관한 것이다. 데이터 전송 시간은 버스 마스터가 데이터를 요 구하고 데이터가 사용 가능할 때와 모든 액세스 종료 신호들 수신될 때 사이의 경과된 시간으로서 정의된다. FLASH 메모리 또는 오버레이된 FLASH 영역에 액세스할 때 동일한 데이터 전송 시간을 유지하는 것이 중요하다. 종래 기술의 오버레이 방법들은 온-칩 또는 오프-칩 FLASH 메모리에 대해 이러한 동일한 데이터 전송 레이트를 유지하지 않을 수도 있다. 그 결과, 내장형 제어기는 동일한 데이터가 FLASH 메모리에 위치될 때와 비교하여 오버레이로 위치된 데이터에 대해 동일한 방법으로 동작하지 않을 수도 있다.
다른 문제점은 종래 기술에 사용된 오버레이 방법들이 전체 메모리 블록들만을 오버레이할 수 있다는 것이다. 즉, 내장형 제어기가 오버레이 방법에 의해 사용된 512바이트 SRAM 메모리 모듈들을 갖는 경우에, 임의의 하나의 모듈의 전체 512바이트가 오버레이되어야 한다. 전체 모듈을 오버레이하는 것과 반대로, 메모리 모듈들의 부분들을 선택적으로 오버레이하는 것이 바람직하다. 또한, 오버레이 부분들의 크기를 선택하는 것이 바람직하다.
종래 기술의 오버레이 방법들에 의한 다른 문제점은, 다중 오버레이 블록들을 갖기 위해, 각각 개별 버스 인터페이스 유닛(BIU)을 갖는 다중 메모리 모듈들이 필요하다는 것이다. 다중 BIU들이 각각의 BIU에 대해, 칩 상에 공간을 차지하는 개별 회로를 필요로 한다.
본 발명은, 동일한 소자들을 동일한 참조번호들로 나타내는 첨부 도면으로 제한되지 않고, 예로서 설명된다.
도 1은 본 발명의 일 실시예에 따른 내장형 제어기의 블록도.
도 2 및 도 3은 SRAM 영역들을 FLASH 상에 오버레이하는 예를 도시하는 블록도.
도 4는 본 발명의 일 실시예의 동작을 설명하는 흐름도.
이 기술 분야의 당업자들은, 도면에서의 소자들은 단순하고 명확하게 하기 위해 도시되었고, 반드시 스케일되어 도시될 필요가 없다는 것을 이해할 것이다. 예를 들어, 도면에서의 일부 소자들의 치수는 본 발명의 실시예들의 이해를 돕기 위해 다른 소자들에 비해 확대될 수도 있다.
상세한 설명
도 1은 내장형 제어기(100)의 블록도이다. 내장형 제어기(100)는 제어기(100)에 대한 중앙 처리 장치로서 작동하는 코어(102)를 포함한다. 코어(102)는 명령 버스(120) 및 로드/저장 버스(122)에 결합된다. 이러한 유형의 아키텍처는 "하바드 아키텍처(Harvard Architecture)"로 공지되어 있다. 또한, 본 발명에서는 다른 아키텍처들이 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 단일 시스템 버스가 2개의 버스들(120, 122) 대신에 사용될 수 있다. 명령 버스(120)는 명령들을 페치(fetch)하기 위해 사용되는 반면에, 로드/저장 버스(122)는 데이터를 페치하기 위해 사용된다. 시스템 인터페이스 유닛(SIU)(114)은 명령 버스(120) 및 외부 버스(124)에 결합된다. SIU(114)는 내장형 제어기(100) 외부의 구성 소자들 또는 장치들에 인터페이스를 제공한다.
내장형 제어기(100)는 비휘발성 메모리를 포함한다. 비휘발성 메모리는 FLASH, ROM, EEPROM, EPROM 또는 임의의 다른 적절한 유형의 메모리일 수도 있다. 바람직한 실시예에서는 FLASH 메모리가 사용된다. 도 1에서, FLASH 메모리(104)는 명령 버스(120)에 결합된다. 또한, 외부 FLASH 메모리(116)가 포함될 수 있고 외부 버스(124)에 결합될 수 있다. 내장형 제어기(100)는 또한 휘발성 메모리를 포함한다. 휘발성 메모리가 정적 랜덤 액세스 메모리(SRAM) 또는 동적 랜덤 액세스 메모리(DRAM)와 같은 임의의 유형의 랜덤 액세스 메모리(RAM)로 구성될 수도 있지만, 바람직한 실시예는 SRAM 모듈을 사용하여 구현된다. 그러나, 임의의 적절한 수 및 유형의 RAM 모듈들이 사용될 수도 있다. 도 1에서, SRAM(106)은 로드/저장 버스(122)에 결합된다. SRAM(106)은 비-오버레이 영역(108) 및 오버레이 영역(110)(이하 설명됨)을 포함한다. 또한, 외부 SRAM(118)이 포함될 수 있고 외부 버스(124)에 결합될 수 있다. 명령 버스(120)와 로드/저장 버스(122) 간의 결합은 버스 인터페이스 유닛(BIU)(112)에 의해 이루어진다. BIU(112)의 기능은 명령 버스(120)와 로드/저장 버스(122) 사이에 인터페이스를 제공하는 것이다. 대안적인 실시예에서, BIU는 비휘발성 메모리의 부분일 수도 있다.
상기 언급한 바와 같이, 내장형 제어기(100)의 정상 동작 동안 FLASH 메모리(104)에서 파라미터들 또는 데이터를 변경하는 것이 때때로 바람직하다. 그러나, FLASH 메모리는 내장형 제어기(100)의 정상 동작 동안 용이하게 프로그램되지 않을 수도 있다. 따라서, SRAM(106) 내의 파라미터들은 쉽게 변경될 수 있기 때문에, SRAM 메모리(106)는 FLASH 메모리(104) 상에 오버레이되어야 한다.
본 발명의 실시예들은 개선된 오버레이 방법을 제공한다. 상기 언급한 바와 같이, SRAM(106)은 비-오버레이 영역(108) 및 오버레이 영역(110)을 포함한다. 일 실시예에서, SRAM(106)은 28KBytes를 점유하는 비-오버레이 영역(108) 및 4KBytes를 점유하는 오버레이 영역(110)을 갖는 32KBytes이다. 물론, SRAM(106)은 어떤 적절한 크기, 어떤 바람직한 방법으로 분할될 수 있다. 오버레이 영역(110)은 범용 RAM 또는 오버레이용으로 사용될 수 있다. 비-오버레이 영역(108)은 범용 RAM용으로 사용될 수 있다. 대안적인 실시예에서, 전체 SRAM(106)은 오버레이 영역으로 설계될 수 있다. 즉, SRAM(106)은 도 1에 도시된 바와 같이 분할될 수 있거나, 또는 어떤 SRAM은 오버레이를 위해 사용되고 어떤 SRAM은 그렇지 않다는 점으로 분할될 수 있다. 따라서, 단일 RAM 모듈(예를 들어, SRAM 또는 DRAM과 같은 RAM 모듈)이 오버레이 및 범용 기능들 모두를 위해 사용될 수도 있다.
도 2 및 3은 FLASH 메모리 상에 SRAM 영역들을 오버레이하는 예를 설명하는 블록도이다. 도 2는 SRAM(106) 및 FLASH 메모리(104)를 도시한다. SRAM(106)은 비-오버레이 영역(108) 및 오버레이 영역(110)으로 분할된다. 오버레이 영역(110)은 8개의 개별 영역들 또는 분할들(partitions)(오버레이0, 오버레이1, 오버레이2, 오버레이3, 오버레이4, 오버레이5, 오버레이6 및 오버레이7))로 세분할된다. 오버레이 영역이 4KBytes인 예에서, 각각의 8개의 분할들 각각은 512바이트이다. 대안적인 실시예들은 임의의 수의 분할들 또는 상이한 크기의 분할들을 포함할 수 있다. 도 2에 도시된 본 발명의 실시예는 임의의 8개의 분할들이 오버레이를 위해 사용될 수 있도록 한다. 또한, 오버레이를 위해 사용되는 각 분할에 있어서, 전체 분할이 사용되거나, 또는 한 분할만이 사용 될 수 있다.
일 실시예에서, 분할은 소프트웨어 프로그램 가능하다. 예를 들어, SRAM(106)은 SRAM(106)에 대응하는 모드들 및 분할 특징들을 정의할 수 있는 여러 필드들을 갖는 제어 레지스터를 포함할 수 있다. 제어 레지스터는 오버레이 모드 또는 비-오버레이 모드 중 하나로 RAM 모듈을 구성할 수 있는 모드 필드를 포함할 수 있다. 비-오버레이 모드에서, 전체 RAM 모듈은 오버레이 능력이 없는 범용 RAM으로서 사용된다. 오버레이 모드에서, 오버레이 분할들은 전술된 바와 같이 생성될 수 있다. 따라서, 제어 레지스터는 각 분할들을 인에이블할 수 있는 인에이블 필드를 또한 포함할 수 있다. 이러한 방법으로, RAM이 오버레이 모드용으로 구성될지라도, 각 분할들 각각은 FLASH의 부분을 오버레이하도록 인에이블될 수 있거나, 또는 범용 RAM으로서 기능하도록 디스에이블될 수 있다. 제어 레지스터는 오버레이 분할들을 근접한 메모리 위치로 컬랩싱(collapsing)할 수 있는 컬랩스 필드(collapse field)를 더 포함할 수 있다. (이러한 컬랩스 필드는 도 3을 참조하여 이하 더욱 상세히 설명된다.) 각 오버레이 분할의 크기를 구성하기 위해, 제어 레지스터는 또한 분할 크기 필드를 포함한다.
전술된 바와 같이, 제어 레지스터는 소프트웨어로 구성될 수 있고, 따라서, RAM 모듈 및 그 분할들을 구성하는데 있어서 융통성을 고려한다. 또한, 이러한 제어 레지스터는 SRAM(106)과 같은 RAM 모듈, 또는 소프트웨어 또는 하드웨어에 의해 액세스할 수 있는 어떤 다른 위치에서 발견될 수 있다. 유사하게, 다른 RAM 모듈들이 SRAM(106)에 부가하여 사용되는 경우에, 이러한 모듈들은 각 부가적인 RAM 모듈에 대응하는 제어 레지스터로 유사하게 구성될 수 있다.
SRAM(106)은 또한 베이스 어드레스 레지스터들을 포함할 수 있다. 일 실시예에서, 8개의 레지스터들이 있고, 이 레지스터들 각각은 도 2에 도시된 8개의 분할들 중 하나에 대응한다. 유사하게, 다소의 분할들이 있는 경우에, 다소의 베이스 어드레스 레지스터들이 사용될 수 있다. 각 베이스 어드레스 레지스터는 오버레이될 FLASH 메모리 세그먼트들의 베이스 또는 시작 어드레스를 포함한다. 베이스 어드레스 레지스터들은 또한 오버레이될 FLASH 세그먼트의 크기를 정의하기 위한 필드를 또한 포함할 수 있다. 예를 들어, 각 레지스터 내의 4개의 비트들이 크기를 나타내기 위해 사용될 수 있다. 또한, 상기 언급한 컬랩스 가능한 모드(collapsible mode)에서, FLASH 세그먼트의 크기는 크기 필드의 프로그램된 값에 관계없이 특정 크기가 되어야 할 수 있다. 또한, 베이스 어드레스 레지스터들은 다른 메모리 모듈과 같은 임의의 적절한 위치에서 발견될 수 있다는 것을 이해해야 한다.
도 2에 도시된 예에서, 오버레이 제로(0) 분할이 세그먼트(130)가 512바이트인 FLASH(104)의 세그먼트(130)를 오버레이하기 위해 전체(512바이트)가 다 사용될 수 있다. 오버레이1 분할은 256Bytes인 세그먼트(132) 상에 부분적으로 오버레이된다. 오버레이5 분할은 128Bytes인 세그먼트(134) 상에 부분적으로 오버레이된다. 오버레이 영역(110)의 분할들은 FLASH 메모리(104) 상에서 선택적으로 오버레이될 수 있다는 것을 알 수 있다. 또한, 오버레이를 위해 사용되지 않는, 각각의 분할 또는 각 분할의 부분이 범용 메모리용으로 사용될 수 있다는 것을 유의해야 한다. 도 2에 도시된 예에서, 분할들 오버레이2, 오버레이3, 오버레이4, 오버레이6 및 오버레이7은 그 전체가 범용 메모리용으로 사용될 수 있다. 유사하게, 오버레이1 분할의 256 Bytes 및 오버레이5 분할의 384 Bytes는 범용 메모리용으로 사용될 수 있다. FLASH 메모리(104)의 나머지는 일반적으로 FLASH 액세스에 응답할 것이다.
도 3은 컬랩스 가능한 모드를 사용하여 메모리를 오버레이하는 대안적인 방법을 도시하는 블록도이다. 도 3은 비-오버레이 영역(108) 및 오버레이 영역(110)을 갖는 SRAM(106)을 도시한다. 도 3에 도시된 오버레이 영역(110)은 컬랩스 모드로 동작할 수 있다. 이러한 모드는, 상기 언급된 바와 같이, SRAM(106)을 갖는 제어 레지스터에서 발견되는 컬랩스 필드에 의해 인에이블될 수 있다. 도시된 바와 같이, 오버레이 영역은 8개의 분할들(142, 144, 146, 148, 150, 152, 154, 156)을 포함한다. 이러한 예에서, 분할들 각각(142, 144, 146, 148, 150, 152, 154, 156)은 4Bytes이고, 총 32Bytes이다. 물론, 파디션들은 4Bytes보다 크거나 작을 수 있다. 이러한 분할들은 일반 비-오버레이 사용에 이용할 수 있는 더 근접한 메모리를 벗어나 근접한 메모리 위치로 컬랩스된다. 오버레이를 위해 사용되지 않는 오버레이 영역(110)의 부분은 영역(140)으로 언급된다. 본 실시예에서, 영역(140)은 비-오버레이 영역(108)과 근접한다. 분할들(142, 144, 146, 148, 150, 152, 154, 156) 각각은 FLASH 메모리(104)에서 세그먼트 상에 오버레이될 수 있다.
본 명세서에 설명되는 메모리 오버레이 기술들의 실시예들에서, 오버레이된 분할 크기들은 FLASH 메모리에서 저절로 정렬된다. 따라서, 오버레이된 분할의 크기는 FLASH 메모리의 정렬에 대응한다. 예를 들어, 128byte 크기의 부분이 오버레이되는 경우에, 128 byte가 FLASH 메모리에서 정렬되어야 한다. 따라서, 상기 논의된 베이스 어드레스 레지스터들에서, 베이스 어드레스는 저절로 정렬될 수 없다. 이러한 경우에, 오버레이될 FLASH 메모리의 베이스 어드레스의 최하위 비트들은 시작 어드레스가 저절로 정렬되도록 하기 위해 0으로 고려될 수 있다.
도 4는 본 발명의 일 실시예의 동작의 설명을 도시하는 흐름도이다. 도 4의 목적은 본 발명의 실시예가 어떻게 동작하는지를 설명하기 위한 도면이다. 그러나, 유사한 결과들을 달성하기 위해 다른 변형예들이 사용될 수 있다. 내장형 제어기(100)의 정상 동작 동안에, 버스 마스터는 메모리 액세스를 요청한다(블록 400). 이 예에서, 버스 마스터는 코어(102)이다. 이러한 요청은 FLASH 메모리(104), SRAM(106), 외부 FLASH 메모리(116) 또는 외부 SRAM(118)을 포함하는 이용 가능한 임의의 메모리에 대한 것이다. 도면에 도시되지 않은 이용 가능한 다른 유형의 모듈들이 존재한다는 것을 유념해야 한다. 흐름도의 결정 마름모꼴(402)은 요청이 FLASH 메모리 판독 액세스를 위한 것인지를 질문한다. FLASH 메모리 판독 액세스에 대한 요청이 아닌 경우에, 통상의 메모리 동작이 계속된다(블록 404). FLASH 메모리 판독 액세스에 대한 요청인 경우에, 결정 마름모꼴(406)은 이러한 메모리가 FLASH 메모리의 오버레이된 영역에 있는지를 질문한다. 이러한 결정은 로드/저장 버스(122) 상의 FLASH 메모리 어드레스들에 대해 스누핑(snooping)하는 SRAM(106)에 의해 달성된다. 오버레이된 영역을 액세스하기 위한 요청이 아닌 경우에, (BIU(112)를 통해) FLASH 메모리는 BIU(112)를 통해 코어(102)에 데이터 및 모든 액세스 종료 제어 신호들을 드라이브한다(블록 408). 단일 시스템 버스를 갖는 아키텍처와 같은 다른 아키텍처들에서, 데이터 및 종료 제어 신호들은 BIU(112)와 같은 버스 인터페이스 유닛을 사용하지 않고, 요청하고 있는 장치 또는 버스 마스터에 직접 드라이브될 수 있다.
요청되는 메모리가 오버레이된 영역에 있는 경우에, SRAM은 BIU(112)를 통해 FLASH 메모리(104)에 "블록 데이터" 신호를 전송한다(블록 410). 다른 아키텍처들에서, "블록 데이터" 신호는 BIU(112)를 사용하지 않고 비휘발성 메모리에 직접 전송될 수 있다. 이러한 신호를 전송하는 목적은, FLASH 메모리(104)가 로드/저장 버스(122) 상으로 데이터를 드라이브하는 것을 억제하기 위한 것이다. 이어서, SRAM은 데이터 버스가 승인되면 로드/저장 버스(122) 상에 데이터를 드라이브한다(블록 412). 다음으로, FLASH 메모리(104)는 전송 확인, 데이터 유효 등과 같은 모든 액세스 종료 제어 신호들을 BIU(112)를 통해 버스 마스터 또는 요청하고 있는 장치에 드라이브한다. 이러한 방법으로, 데이터는 액세스 종료 제어 신호들이 FLASH 메모리에 의해 드라이브되는 동안 RAM 모듈에 의해 드라이브된다. 이것은 각 RAM 모듈이 FLASH 메모리 아키텍처에 따라 종료 제어 신호들을 보낼 수 있는 자신의 버스 인터페이스 유닛을 필요로 하지 않기 때문에 하드웨어 요구사항들을 감소시킨다. 또한, 액세스 종료 제어 신호들을 드라이브하는 FLASH를 갖는 것은 적적한 타이밍을 유지한다.
본 발명의 일 실시예에서, (SRAM(106)과 같은) RAM 모듈은 버스 마스터의 유형 또는 신원에 기초하여 버스 마스터로부터 기록을 선택적으로 가능하게 한다. 예를 들어, 로드/저장 버스(122)는 "코어 액세스"라고 하는 신호를 포함할 수 있어서, 코어(102)가 트랜잭션을 개시할 때, 이 신호가 표명(assert)된다. 오버레이 모드가 인에이블될 때, FLASH 세그먼트를 오버레이하기 위해 사용될 프로그램된 오버레이 영역(110)의 부분에 대한 기록 액세스가 있는 경우에, 이 액세스는 기록을 요청하는 마스터의 식원에 따라 허용되거나 허용되지 않을 수 있다. 일 실시예에서, 코어(표명된 "코어 액세스)에 의해 개시되는 기록 액세스는 허용되지 않지만, 개발 툴(development tool)(부정된 "코어 액세스")과 같은 비-코어 장치에 의해 개시된 기록 액세스는 허용될 것이다. 이것은 코어(102)가 FLASH 세그먼트를 오버레이하기 위해 사용되는 예정된 데이터를 본의 아니게 손상시키는 것을 방지한다. 코어가 오버레이 영역(110)에서 오버레이 데이터를 실제로 변경시키려 하는 경우에, 오버레이 모드를 디스에이블할 수 있고, 데이터를 변경시킬 수 있고, 오버레이 모드를 다시 인에이블할 수 있다. 유사하게, RAM 모듈이 기록 요구를 허용하기 전에 버스 마스터를 식별할 수 있도록 하기 위해 다른 방법들 또는 신호들이 사용될 수 있다.
전술한 바와 같이, SRAM 모듈(106)은 오버레이 모드를 인에이블하거나 디스에이블하는 제어 레지스터에 모드 비트를 가질 수 있다. 장치(100)가 리셋 신호를 수신할 때, SRAM(106)은 제어 레지스터에서 이 모드 비트를 각각 설정 또는 클리어함으로써 오버레이 특징을 인에이블하거나 디스에이블할 수 있다. 이 비트는 리셋 구성 정보에 기초하여 1(인에이블된 오버레이) 또는 0(디스에이블된 오버레이)일 수 있다. 이 리셋 구성 정보는 EEPROM과 같은 임의의 비-휘발성 메모리에 의해 제공될 수 있거나, 또는 장치 핀(들)을 샘플링함으로써 장치 리셋의 부정에서 캡쳐될 수 있다. 또한, 리셋 신호 수신시에, (상기 논의된 바와 같이) 베이스 어드레스 레지스터들의 컨텐츠가 변경되지 않고 유지될 수 있다. 즉, 베이스 어드레스 및 크기 정보는 리셋시에 유지될 수 있다. 따라서, 대안적인 실시예들은 장치 리셋시에 이용할 수 있는 여러 옵션들을 통해 유연성이 개선될 수 있도록 한다.
따라서, 본 명세서에 설명된 메모리 오버레이 기술들이 오버레이 및 범용 기능들을 수행하기 위해 단일 RAM 모듈을 어떻게 사용할 수 있는지가 이해할 수 있다. 본 발명의 실시예들은 또한 소프트웨어 프로그램 가능한 분할들의 사용을 통해 유연성을 개선할 수 있도록 한다. 또한, RAM 모듈이 비휘발성 메모리의 부분을 오버레이할 수 있도록 함으로써, 통상 비휘발성 메모리에 저장되는 파라미터들은 더 정확한 파라미터들을 갖는 비휘발성 메모리의 최종 버전을 프로그램하기 이전에 정상 동작 동안 개발 툴에 의해 조정되고 변경될 수 있다.
본 발명의 동작이 SRAM(106)으로부터 FLASH 메모리(104) 상으로 메모리를 오버레이하는 것에 관하여 설명되었지만, 다른 동작들도 가능하다. 예를 들어, SRAM(106)은 외부 FLASH(116) 또는 외부 SRAM(118) 상에 메모리를 오버레이할 수 있다. 이 예에서, 메모리 오버레이는 적절한 데이터 전송 시간을 유지한다는 것을 알아야 한다. 또한, SRAM(106)의 오버레이 영역(110)의 임의의 분할이 온-칩 FLASH 메모리(104) 또는 외부 FLASH 메모리(116) 상에 오버레이될 수 있다는 것을 알아야 한다. 예를 들어, 분할 오버레이0(도 2)은 온-칩 FLASH 메모리(104) 상에 오버레이될 수 있고, 분할 오버레이1은 데이터 프로세서에서 외부 FLASH 메모리(116)상에 동시에 오버레이될 수 있다.
SRAM(106), FLASH 메모리(104), 외부 FLASH 메모리(116) 및 외부 SRAM(118)을 갖는 본 발명의 실시예들이 설명되었다. 내장형 제어기(100)는 다중 SRAM들(106), 다중 FLASH 메모리들(104), 다중 외부 FLASH 메모리들(116) 및/또는 다중 외부 SRAM들을 포함할 수도 있다는 것을 이해해야 한다. 다중 모듈들에 있어서, 본 발명은 상술된 바와 같은 유사한 방법으로 동작한다.
또한, 동일한 FLASH 세그먼트가 SRAM(106)의 다중 영역들에 의해 오버레이될 수 있다. 우선 순위가 가장 높은 영역으로부터 데이터를 선택하기 위해 우선 순위가 각 영역에 할당된다. 도 2에 도시된 실시예에서, 오버레이0이 가장 높은 우선 순위를 갖고, 다음으로 오버레이1, 오버레이 2 순서이다. 다중 RAM 모듈이 사용되는 경우에, 모듈들에는 유사한 방법으로 우선 순위가 부여된다. 즉, 오버레이 데이터를 갖는 우선 순위가 가장 높은 RAM 모듈은 비휘발성 메모리를 억제하여 오버레이 데이터를 요청하는 장치에 드라이브한다.
상술된 설명에서, 본 발명은 특정 실시예들을 참조하여 설명되었다. 그러나, 이 기술분야의 당업자들은 이하 청구범위에 설명되는 바와 같은 본 발명의 범위를 벗어나지 않고 여러 변형예들 및 수정예들이 행해질 수 있다는 것을 이해할 것이다. 따라서, 상세한 설명 및 도면은 제한하는 것이 아니라 설명을 위한 것으로 고려되어야 하고, 이러한 변형예들은 본 발명의 범위 내에 포함된다.
이점들, 다른 장점들 및 문제점의 해결책들이 특정 실시예들과 관련하여 설명되었다. 그러나, 어떤 이점, 장점 또는 해결책이 더욱 명백하게 되거나 명백하게 되도록 하는 이점들, 장점들, 문제점에 대한 해결책들 및 어떤 요소(들)가 임의의 또는 모든 청구범위의 중요하고, 필수의 또는 기본 특징 또는 요소로서 해석되어서는 안된다. 본 명세서에 사용된 바와 같은, 단어 "포함하다" 또는 "포함하는" 또는 이 단어의 어떤 다른 활용은 비-배제적인 포함을 커버하는 것으로 의도되며, 따라서, 요소들의 리스트를 포함하는 프로세스, 방법, 항목 또는 장치는 이러한 요소들만을 포함하지 않고, 이러한 프로세스, 방법, 항목 또는 장치에 대해 명백하게 리스트되지 않거나 고유의 다른 요소들을 포함할 수도 있다.

Claims (10)

  1. 비휘발성 메모리(104) 및 제 1 랜덤 액세스 메모리(RAM) 모듈(106)을 구비한 데이터 처리 시스템으로서, 상기 제 1 RAM 모듈(106)은 범용 RAM으로서 사용하기 위한 비-오버레이 영역(non-overlay region)(108) 및 상기 비휘발성 메모리의 부분들을 오버레이하는데 사용할 수 있는 오버레이 영역(110)을 가지며, 상기 비휘발성 메모리는 시스템 버스를 통해 상기 제 1 RAM 모듈에 결합되는, 상기 데이터 처리 시스템에서의 방법에 있어서,
    상기 비휘발성 메모리의 오버레이된 부분에 대한 메모리 액세스를 요청하는 단계;
    상기 비휘발성 메모리가 상기 시스템 버스 상으로 데이터를 드라이브하는 것을 억제하기 위해, 상기 제 1 RAM 모듈에 의한 블록 데이터 신호를 상기 비휘발성 메모리에 전송하는 단계;
    상기 제 1 RAM 모듈이 데이터 버스 승인시 상기 시스템 버스 상으로 데이터를 드라이브하는 단계; 및
    상기 비휘발성 메모리가 상기 메모리 액세스를 완료하기 위해 액세스 종료 제어 신호들을 드라이브하는 단계를 포함하는, 데이터 처리 시스템에서의 방법.
  2. 제 1 항에 있어서,
    상기 제 1 RAM 모듈은 대응하는 RAM 데이터 전송 시간을 갖고 상기 비휘발성 메모리는 대응하는 비휘발성 메모리 데이터 전송 시간을 갖고, 상기 RAM 데이터 전송 시간은 상기 비휘발성 데이터 전송 시간과 일치하는, 데이터 처리 시스템에서의 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 랜덤 액세스 메모리(RAM) 모듈에 있어서,
    범용 RAM으로서 사용하기 위한 비-오버레이 영역;
    비휘발성 메모리의 부분들을 오버레이하는데 사용할 수 있는 오버레이 영역으로서, 인에이블(enable)되고 디스에이블(disable)될 수 있는 소프트웨어 프로그램 가능 제 1 분할(software programmable first partition)을 포함하고,
    상기 제 1 분할이 인에이블되면, 상기 분할은 상기 비휘발성 메모리의 제 1 오버레이된 부분에 대응하고,
    상기 제 1 분할이 디스에이블되면, 상기 제 1 분할은 범용 RAM으로서 사용하기 위해 이용 가능한, 상기 오버레이 영역; 및
    상기 비휘발성 메모리가 시스템 버스 상으로 데이터를 드라이브하는 것을 억제할 수 있는 블록 데이터 신호를 포함하는, 랜덤 액세스 메모리 모듈.
  7. 오버레이 모드 및 비-오버레이 모드로 동작할 수 있는, 랜덤 액세스 메모리(RAM) 모듈(106)에 있어서,
    상기 오버레이 모드에서, 상기 RAM 모듈은,
    범용 RAM으로서 사용하기 위한 비-오버레이 영역(108); 및
    복수의 분할들을 갖는 오버레이 영역(110)으로서, 상기 복수의 분할들의 제 1 부분은 비휘발성 메모리의 부분들을 오버레이하는데 사용하기 위해 인에이블(enabled)되고 상기 복수의 분할들의 제 2 부분은 범용 RAM으로서 사용할 수 있는, 상기 오버레이 영역(110)을 포함하고,
    상기 비-오버레이 모드에서, 상기 RAM 모듈은 범용 RAM으로서 동작하는, 랜덤 액세스 메모리 모듈.
  8. 제 7 항에 있어서,
    상기 비휘발성 메모리가 데이터를 드라이브하는 것을 억제할 수 있는 데이터 블록 신호를 더 포함하는, 랜덤 액세스 메모리 모듈.
  9. 삭제
  10. 삭제
KR1020027013296A 2000-04-04 2001-04-04 데이터 처리 시스템에서 메모리를 오버레이하는 방법 및장치 KR100731527B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/542,747 2000-04-04
US09/542,747 US6725346B1 (en) 2000-04-04 2000-04-04 Method and apparatus for overlaying memory in a data processing system
PCT/US2001/010973 WO2001075613A2 (en) 2000-04-04 2001-04-04 Method and apparatus for overlaying memory in a data processing system

Publications (2)

Publication Number Publication Date
KR20030014382A KR20030014382A (ko) 2003-02-17
KR100731527B1 true KR100731527B1 (ko) 2007-06-25

Family

ID=24165124

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027013296A KR100731527B1 (ko) 2000-04-04 2001-04-04 데이터 처리 시스템에서 메모리를 오버레이하는 방법 및장치

Country Status (9)

Country Link
US (1) US6725346B1 (ko)
EP (1) EP1272936A2 (ko)
JP (1) JP2003529842A (ko)
KR (1) KR100731527B1 (ko)
CN (1) CN1179275C (ko)
AU (1) AU2001255229A1 (ko)
GB (1) GB2367394B (ko)
TW (1) TW501015B (ko)
WO (1) WO2001075613A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR0317588A (pt) * 2002-12-20 2005-11-22 Ibm Método e sistema para ativar alternativamente uma unidade de hardware substituìvel
EP1573552B1 (en) 2002-12-20 2007-09-05 International Business Machines Corporation Method and system for alternatively activating a replaceable hardware unit
US6941219B2 (en) * 2003-09-30 2005-09-06 Detroit Diesel Corporation Method for recreating valid calibration data for an engine control module
KR100631780B1 (ko) 2004-08-28 2006-10-11 삼성전자주식회사 오버레이 유닛 간의 통신 방법 및 이를 이용한 장치
US7684264B2 (en) * 2007-01-26 2010-03-23 Freescale Semiconductor, Inc. Memory system with RAM array and redundant RAM memory cells having a different designed cell circuit topology than cells of non redundant RAM array
US20080271025A1 (en) * 2007-04-24 2008-10-30 Stacksafe, Inc. System and method for creating an assurance system in a production environment
US20080270104A1 (en) * 2007-04-24 2008-10-30 Stratton Robert J System and Method for Creating an Assurance System in a Mixed Environment
US20090271563A1 (en) * 2008-04-28 2009-10-29 Microsoft Corporation Flash memory transactioning
JP5081076B2 (ja) * 2008-06-23 2012-11-21 株式会社リコー メモリ管理装置、画像形成装置及びメモリ管理方法
JP6016605B2 (ja) * 2012-12-12 2016-10-26 三菱電機株式会社 電子式計器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5988902A (en) * 1997-09-23 1999-11-23 Compaq Computer Corporation Touchpad overlay with tactile response

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4141068A (en) * 1977-03-24 1979-02-20 Xerox Corporation Auxiliary ROM memory system
JPS58112149A (ja) 1981-12-25 1983-07-04 Hitachi Ltd オ−バ−レイプログラムのアドレス変換方式
US5187792A (en) 1990-05-09 1993-02-16 International Business Machines Corporation Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system
US5603011A (en) 1992-12-11 1997-02-11 International Business Machines Corporation Selective shadowing and paging in computer memory systems
JPH06187140A (ja) * 1992-12-16 1994-07-08 Oki Electric Ind Co Ltd 処理装置
US5974402A (en) * 1993-12-09 1999-10-26 Pitney Bowes Inc. Address decoder with memory wait state circuit
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
JPH09160768A (ja) * 1995-12-05 1997-06-20 Sharp Corp プログラム実行装置
GB9609826D0 (en) * 1996-05-10 1996-07-17 Kalamazoo Computer Group Plc Improvements in and relating to anti-photocopying measures
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
EP0834812A1 (en) 1996-09-30 1998-04-08 Cummins Engine Company, Inc. A method for accessing flash memory and an automotive electronic control system
JPH11110207A (ja) * 1997-09-30 1999-04-23 Sanyo Electric Co Ltd 情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5988902A (en) * 1997-09-23 1999-11-23 Compaq Computer Corporation Touchpad overlay with tactile response

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US05713006, US05973943, US05974402

Also Published As

Publication number Publication date
GB0105594D0 (en) 2001-04-25
CN1426559A (zh) 2003-06-25
EP1272936A2 (en) 2003-01-08
WO2001075613A2 (en) 2001-10-11
AU2001255229A1 (en) 2001-10-15
WO2001075613A3 (en) 2002-03-21
KR20030014382A (ko) 2003-02-17
CN1179275C (zh) 2004-12-08
TW501015B (en) 2002-09-01
JP2003529842A (ja) 2003-10-07
GB2367394B (en) 2004-09-08
GB2367394A (en) 2002-04-03
US6725346B1 (en) 2004-04-20

Similar Documents

Publication Publication Date Title
EP1421588B1 (en) Method and apparatus utilizing flash burst mode to improve processor performance
US7782683B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
EP0526221B1 (en) Data processing system with progressively programmable nonvolatile memory and method therefor
US5768211A (en) Multi-port arbitration for high performance width expansion
JPH11175391A (ja) フラッシュメモリにおける書込み/消去機能を拡張するための方法および装置
US20060161338A1 (en) Multi-port memory device providing protection signal
KR100731527B1 (ko) 데이터 처리 시스템에서 메모리를 오버레이하는 방법 및장치
US5761456A (en) Processor device having automatic bus sizing
US7046536B2 (en) Programable identification circuitry
US5961611A (en) Automatic option setting circuit
JP2007299227A (ja) 情報処理装置及び情報処理装置のブート方法
JP3661852B2 (ja) ライブラリに権利を割り当てるためのシステムを備える保護されたマイクロプロセッサ
US5444852A (en) I/O device interface having buffer mapped in processor memory addressing space and control registers mapped in processor I/O addressing space
US8122192B2 (en) Data processing apparatus and data processing method
US5235552A (en) Semiconductor memory device and method of reading data therefrom
JPH11175399A (ja) フラッシュメモリにおけるメモリ読出しからレジスタ読出しを区別するための方法および装置
KR100436098B1 (ko) 데이터프로세서,데이터처리시스템,및데이터프로세서를이용한외부장치로의액세스방법
US20080209085A1 (en) Semiconductor device and dma transfer method
US20010029561A1 (en) Apparatus for extending the available number of configuration registers
EP0684559B1 (en) Processing unit detecting a byte aligment mechanism in the storage controller.
KR20030032177A (ko) 직렬 이이피롬을 이용하여 인터페이스용 카드를초기화하는 반도체 장치 및 초기화 방법
US5892972A (en) Method of constructing a plug and play compatible bus card which allows for mass production of the bus card
US20070094460A1 (en) DRAM control circuit
US7181564B2 (en) Data processing apparatus and data processing method
US5757698A (en) Nonvolatile semiconductor for reading data at a read request even during the writing of data

Legal Events

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

Payment date: 20130610

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140317

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 13