KR100717110B1 - 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 - Google Patents

롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 Download PDF

Info

Publication number
KR100717110B1
KR100717110B1 KR1020060016609A KR20060016609A KR100717110B1 KR 100717110 B1 KR100717110 B1 KR 100717110B1 KR 1020060016609 A KR1020060016609 A KR 1020060016609A KR 20060016609 A KR20060016609 A KR 20060016609A KR 100717110 B1 KR100717110 B1 KR 100717110B1
Authority
KR
South Korea
Prior art keywords
address
rom
read
patch
data
Prior art date
Application number
KR1020060016609A
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 삼성전자주식회사
Priority to KR1020060016609A priority Critical patent/KR100717110B1/ko
Priority to US11/671,534 priority patent/US8504799B2/en
Priority to CN2007101292280A priority patent/CN101075213B/zh
Application granted granted Critical
Publication of KR100717110B1 publication Critical patent/KR100717110B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B43WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
    • B43LARTICLES FOR WRITING OR DRAWING UPON; WRITING OR DRAWING AIDS; ACCESSORIES FOR WRITING OR DRAWING
    • B43L1/00Repeatedly-usable boards or tablets for writing or drawing
    • B43L1/04Blackboards
    • B43L1/06Blackboards rigid
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B43WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
    • B43KIMPLEMENTS FOR WRITING OR DRAWING
    • B43K31/00Writing implement receptacles functioning as, or combined with, writing implements
    • B43K31/005Distributors for leads, cartridges and the like

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 롬 데이터 패치 회로는 패치 정보에 기초하여 N개의(N은 자연수) 수정 롬 데이터 블록들에 저장된 데이터를 N개의 램 패치 블록들에 저장된 데이터로 패치한다. 롬 데이터 패치 회로는 데이터 패치 검출부, 램 주소 발생부 및 주소 선택부를 포함한다. 데이터 패치 검출부는 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들 및 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생한다. 램 주소 발생부는 상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생한다. 주소 선택부는 상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력한다.
데이터 롬, 롬 데이터 패치, 독출 주소, 읽기 주소, 임베디드 시스템

Description

롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및 롬 데이터 패치 방법{ROM DATA PATCH CIRCUIT, EMBEDDED SYSTEM INCLUDING THE SAME AND METHOD OF PATCHING ROM DATA}
도 1은 종래의 임베디드 시스템의 데이터 액세스 경로를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 롬 데이터 패치 회로를 구비한 임베디드 시스템을 나타낸 블록도이다.
도 3은 수정 롬 데이터 블록 및 이에 상응하는 램 패치 블록의 관계를 설명하기 위한 도표이다.
도 4는 본 발명의 일 실시예에 따른 롬 데이터 패치 회로를 나타낸 블록도이다.
도 5는 도 4의 데이터 패치 검출기를 나타낸 회로도이다.
도 6은 도 5의 각각의 비교부를 나타낸 회로도이다.
도 7은 도 4의 램 주소 발생부를 나타낸 블록도이다.
도 8은 본 발명의 일 실시예에 따른 롬 데이터 패치 방법을 나타낸 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
280, 400 : 롬 데이터 패치 회로 410, 500 : 데이터 패치 검출부
430, 700 : 램 주소 발생부 450: 주소 선택부
SADD : 수정 롬 데이터 블록의 시작 주소
DBL : 데이터 블록의 길이
ROMADD : 독출 램 주소
RAMADD : 독출 램 주소
임베디드 시스템(Embedded System)이란 기계 장치 또는 전자 장치 등과 같은 전체 시스템을 효과적으로 제어하기 위하여 마이크로 프로세서(Microprocessor)를 장착한 시스템을 말한다. 임베디드 시스템은 통상 단일 칩의 형태로 구현되며, 장치를 동작하는 소프트웨어를 외부 기억 장치로부터 읽어들이지 않고 칩에 내장하고 있다.
널리 사용되고 있는 임베디드 시스템은 실행될 프로그램과 시스템의 동작에 필요한 데이터를 주로 읽기 전용 메모리(Read Only Memory, 이하, "롬"이라 한다.)에 저장한다. 프로그램과 데이터를 랜덤 액세스 메모리(Random access Memory, 이하, "램"이라 한다.)에 저장하는 경우에는 프로그램과 데이터의 수정이 용이하지만, 롬을 사용하는 경우와 비교하여 임베디드 시스템의 생산 비용이 증가한다. 따라서, 통상 임베디드 시스템의 개발 단계에서는 램을 사용하여 프로그램 및 데이터를 저장하고, 개발이 완료되면 프로그램 및 데이터를 롬에 저장한다.
도 1은 종래의 임베디드 시스템의 데이터 액세스 경로를 나타낸 블록도이다.
도 1을 참조하면, 종래의 임베디드 시스템(100)은 프로세서(110), 프로그램 롬(120), 데이터 롬(130) 및 램(140)을 포함한다. 프로세서(110)는 롬(120, 130)에 저장된 프로그램 코드 및 데이터를 독출(read)하기 위하여 주소 버스(160)를 통해 독출 롬 주소를 출력한다. 독출된 프로그램 코드 및 데이터는 데이터 버스(150)를 통하여 프로세서(110)로 전송되거나 램(140)에 저장된다.
시스템의 개발이 완료되어 제품이 안정화된 이후에도 롬에 저장된 프로그램 코드 또는 데이터에서 오류가 발생할 가능성이 있다. 또한, 오류가 존재하지 않더라도 시스템의 성능 향상을 위하여 프로그램 및 데이터를 수정하거나 업그레이드할 필요가 있다.
이 경우, 이미 제조된 제품을 폐기하고, 수정된 프로그램 코드 및 데이터를 저장한 롬을 내장한 새로운 칩을 제조하는 것은 비효율적이다. 또한, 프로그램 코드 또는 데이터는 통상 반도체 제조 공정시 롬에 저장되므로, 반도체 제조 공정을 변경하여 새로운 칩을 제조하기 위해서는 더욱 많은 시간 및 노력이 소요된다. 따라서, 롬에 저장된 프로그램 코드 또는 데이터의 일부가 수정되어야 하는 경우, 이미 제조된 제품을 그대로 이용하면서 수정되어야 할 프로그램 코드 또는 데이터를 패치 프로그램 또는 패치 데이터로 대체할 수 있는 장치 및 방법이 요구된다.
미국 특허 제 5,940,850호에 개시된 바와 같이, 일반적으로 롬에 저장된 프로그램을 패치하는 장치 및 방법은 자주 사용되어 왔으나, 롬에 저장된 데이터를 패치하는 방법은 거의 사용되고 있지 않다. 롬에 저장된 데이터는 그 값이 고정되 어 변하지 않는 참조 값(table value)들이므로 오류가 발생될 가능성은 작다. 그러나 오류가 발생할 가능성이 전혀 없는 것은 아니며, 상기 설명한 바와 같이 시스템의 성능 향상을 위하여 롬에 저장된 데이터를 업그레이드할 필요가 있다.
롬에 저장된 데이터를 패치하는 방법은 롬에 저장된 프로그램을 패치하는 것과 유사하다. 그러나, 프로그램 패치의 경우에는 수정될 프로그램 블록의 시작 주소만을 체크하여 램 영역의 시작주소로 쉬프트시키면 되지만, 데이터 패치의 경우에는 데이터 블록을 구분할 수 없기 때문에 복잡한 비교기가 요구된다. 데이터 패치를 위한 회로가 복잡해지는 경우 독출 명령 후 독출 주소가 주소 버스로 출력되는 것이 지연될 수 있고, 이는 전체 시스템의 성능을 저하시키는 요인이 된다.
따라서, 기존의 데이터 롬을 이용하면서 시스템의 성능을 저하시키지 않고 롬 데이터를 패치할 수 있는 장치 및 방법이 요구된다.
본 발명은 롬 데이터의 오류를 수정하거나 롬 데이터를 업그레이드할 필요가 있는 경우, 시스템의 성능을 저하시키지 않고 램에 저장된 패치 데이터를 이용하여 롬 데이터를 패치할 수 있는 롬 데이터 패치 회로를 제공하는 것을 일 목적으로 한다.
또한, 본 발명은 롬 데이터의 오류를 수정하거나 롬 데이터를 업그레이드할 필요가 있는 경우, 시스템의 성능을 저하시키지 않고 램에 저장된 패치 데이터를 이용하여 롬 데이터를 패치할 수 있는 롬 데이터 패치 회로를 구비한 임베디드 시스템을 제공하는 것을 일 목적으로 한다.
나아가, 본 발명은 롬 데이터의 오류를 수정하거나 롬 데이터를 업그레이드할 필요가 있는 경우에, 시스템의 성능을 저하시키지 않고 램에 저장된 패치 데이터를 이용하여 롬 데이터를 패치할 수 있는 롬 데이터 패치 방법을 제공하는 것을 일 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 롬 데이터 패치 회로는 패치 정보에 기초하여 N개의(N은 자연수) 수정 롬 데이터 블록들에 저장된 데이터를 N개의 램 패치 블록들에 저장된 데이터로 패치한다. 롬 데이터 패치 회로는 데이터 패치 검출부, 램 주소 발생부 및 주소 선택부를 포함한다. 데이터 패치 검출부는 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들 및 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생한다. 램 주소 발생부는 상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생한다. 롬 데이터 패치 회로는 상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력한다.
상기 패치 정보는, 상기 수정 롬 데이터 블록들의 N개의 시작 주소들, N개의 데이터 블록 길이들, 상기 수정 롬 데이터 블록 및 이에 상응하는 상기 램 데이터 블록의 주소 차이를 나타내는 N개의 오프셋들 및 패치 동작을 제어하기 위한 패치 인에이블 신호를 포함할 수 있다. 상기 롬 데이터 패치 회로는 이러한 패치 정보를 패치 정보를 저장하는 레지스터를 더 포함할 수 있다. 상기 주소 선택 신호는, 상 기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하고 상기 패치 인에이블 신호가 논리적 하이 레벨인 경우에 논리적 하이 레벨이고, 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들에 속하지 않는 경우 또는 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우에 논리적 로우 레벨이 되도록 설정될 수 있다. 상기 주소 선택부는, 상기 주소 선택 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소를 출력하고, 상기 주소 선택 신호가 논리적 하이 레벨인 경우 상기 독출 램 주소를 출력하도록 설정될 수 있다.
상기 데이터 패치 검출부는, 상기 독출 롬 주소가 상응하는 상기 수정 롬 데이터 블록에 속하는 경우 논리적 하이 레벨이고 상기 독출 롬 주소가 상응하는 상기 수정 롬 데이터 블록에 속하지 않는 경우 논리적 로우 레벨의 상기 오프셋 선택 신호를 각각 발생하는 N개의 비교부들; 상기 비교부들에서 발생된 상기 N개의 오프셋 선택 신호들을 논리합 연산하는 논리합 게이트; 및 상기 논리합 게이트의 출력 신호들 및 상기 패치 인에이블 신호를 논리곱 연산하여 상기 주소 선택 신호를 발생하는 제 1 논리곱 게이트를 포함할 수 있다.
상기 각각의 비교부, 예를 들어, K번째(K는 1 이상 N 이하의 자연수) 비교부는, 상기 독출 롬 주소가 상기 K번째 시작 주소보다 크거나 같은 경우 논리적 하이 레벨의 신호를 출력하는 하한 비교기; 상기 K번째 시작 주소 및 상기 K번째 데이터 블록 길이의 합산 값을 출력하는 덧셈기; 상기 독출 롬 주소가 상기 덧셈기의 출력 값보다 작거나 같은 경우 논리적 하이 레벨의 신호를 출력하는 상한 비교기; 및 상기 하한 비교기의 출력 신호 및 상기 상한 비교기의 출력 신호를 논리곱 연산하여 상기 K번째 오프셋 선택 신호를 발생하는 제 2 논리곱 게이트를 포함할 수 있다.
상기 램 주소 발생부는, 상기 N개의 오프셋 선택 신호들에 응답하여 상기 N개의 오프셋들 중에서 상기 독출 롬 주소가 속하는 수정 롬 데이터 블록에 상응하는 오프셋을 출력하는 오프셋 선택기; 및 상기 독출 롬 주소 및 상기 오프셋 선택기에서 출력되는 오프셋을 합하여 상기 독출 램 주소를 출력하는 오프셋 덧셈기를 포함할 수 있다.
상기 주소 선택부는, 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부에 관계없이 상기 독출 롬 주소를 선택하여 출력한다. 상기 주소 선택부는 상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 다중화기(Multiplexer)를 포함할 수 있다.
본 발명의 일 실시예에 따른 임베디드 시스템은, 프로세서; 상기 프로세서의 동작에 필요한 데이터를 저장하는 데이터 롬; 상기 데이터 롬에 저장된 데이터를 패치하기 위한 패치 데이터를 저장하는 램; 패치 정보를 저장하는 레지스터; 상기 레지스터에 저장된 패치 정보 및 독출 롬 주소에 기초하여 상기 독출 롬 주소에 상응하는 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 롬 데이터 패치 회로를 포함한다. 상기 패치 데이터는 부팅 과정에서 외부의 프로그램가능한 롬으로부터 제공되어 상기 램에 저장될 수 있다.
본 발명의 일 실시예에 따른 롬 데이터 패치 방법은, N(N은 자연수)개의 수정 롬 데이터 블록들에 저장된 데이터를 패치하기 위한 패치 데이터 및 패치 정보를 제공하는 단계; 상기 제공된 패치 데이터를 N개의 램 패치 블록에 각각 저장하는 단계; 및 상기 패치 정보 및 독출 롬 주소에 기초하여 상기 독출 롬 주소에 상응하는 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 단계를 포함하고, 상기 제공된 패치 정보를 레지스터에 저장하는 단계를 더 포함할 수 있다.
상기 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 단계는, 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들을 발생하는 단계; 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생하는 단계; 상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생하는 단계; 및 상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 단계를 포함할 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 롬 데이터 패치 회로를 구비한 임베디드 시스템을 나타낸 블록도이다.
도 2를 참조하면, 임베디드 시스템(200)은 프로세서(210), 프로그램 롬 (220), 데이터 롬(230), 램(240), 레지스터부(270), 롬 데이터 패치 회로(280)를 포함할 수 있다.
프로세서(210)는 데이터 버스(250) 및 주소 버스(260)를 통하여 임베디드 시스템(200)의 동작을 제어한다. 프로세서(200)는 시스템의 동작을 위해 필요한 여러 가지 연산을 수행하고, 주소 버스(260)를 통하여 독출 주소(read address) 또는 기입 주소(write address)를 출력한다. 롬(220, 230) 또는 램(240)의 독출 주소에 저장된 프로그램 코드 또는 데이터, 그리고 램(240)의 기입 주소에 기입될 데이터는 데이터 버스(250)를 통하여 전송된다.
프로그램을 저장하는 프로그램 롬(220)과 데이터를 저장하는 데이터 롬(230)은 물리적으로 분리된 별개의 메모리일 수도 있으며, 하나의 메모리 내에 논리적으로 분할된 별개의 공간을 의미할 수도 있다.
수정이 요구되는 롬 데이터가 저장된 데이터 롬(230)의 논리적 공간을 수정 롬 데이터 블록이라 정의한다. 수정 롬 데이터 블록의 데이터를 대체하기 위한 패치 데이터가 저장된 램(240)의 논리적 공간을 램 패치 블록이라 정의한다. 수정 롬 데이터 블록과 램 패치 블록은 복수 개가 존재할 수 있으며 수정 롬 블록에 포함된 롬 데이터의 개수와 상응하는 램 패치 블록에 포함된 데이터의 개수는 동일하다.
패치 데이터는 데이터 롬의 테스트 결과에 의해 오류가 발견되거나 롬 데이터를 업그레이드할 필요가 있는 경우, 임베디드 시스템(200) 외부에 구비된 플래쉬 메모리와 같은 프로그램 가능한 롬에 저장된다. 프로그램 가능한 롬에 저장된 패치 데이터는 임베디드 시스템(200)의 부팅시 램(230)의 램 패치 블록에 저장된다.
레지스터부(270)는 데이터 패치를 위한 패치 정보를 저장하고, 롬 데이터 패치 회로(280)는 레지스터부(270)에 저장된 패치 정보 및 독출 롬 주소에 기초하여 상기 독출 롬 주소에 상응하는 독출 램 주소 및 상기 독출 롬 주소 중 하나를 선택하여 출력한다. 롬 데이터 패치 회로(280)의 상세한 구성 및 동작에 대해서는 후술한다.
패치 정보는 수정 롬 데이터 블록들의 시작 주소들, 데이터 블록 길이들, 수정 롬 데이터 블록 및 이에 상응하는 램 데이터 블록의 주소 차이를 나타내는 오프셋들 및 데이터 패치 동작을 제어하기 위한 패치 인에이블 신호를 포함할 수 있다. 시작 주소들 및 데이터 블록 길이들은 패치 데이터와 함께 상기 프로그램 가능한 롬에 저장되고, 임베디드 시스템(200)의 부팅시 레지스터부(270)에 램(230)에 로드된다. 임베디드 시스템(200)의 부팅시 프로세서(210)는 패치 데이터가 로드된 후 오프셋들을 검출하여 레지스터부(270)에 저장한다.
도 3은 수정 롬 데이터 블록 및 이에 상응하는 램 패치 블록의 관계를 설명하기 위한 도표이다. 도 3에는 한 개의 수정 롬 데이터 블록을 도시하였으나, 복수의 수정 롬 데이터 블록이 설정될 수 있다.
도 3을 참조하면, 오프셋(OFS)은 수정이 요구되는 롬 데이터가 저장된 수정 롬 데이터 블록(235)의 시작 주소(SADD)와 수정 롬 데이터 블록의 데이터를 대체하기 위한 패치 데이터가 저장된 램 패치 블록(245)의 시작 주소(SADD')의 차이를 나타낸다. 상기 설명한 바와 같이, 수정이 요구되는 롬 데이터와 이를 수정한 패치 데이터의 개수는 동일하다. 따라서, 수정 롬 데이터 블록(235) 및 상응하는 패치 램 블록(245)의 데이터 블록 길이(DLB)는 동일하다. 독출 롬 주소에 저장된 롬 데이터를 대체하기 위한 패치 데이터는 독출 롬 주소에 오프셋(OFS)을 더한 독출 램 주소에 저장된다.
따라서, 롬 데이터 대신 패치 데이터를 독출하기 위해서는, 독출 롬 주소 대신 이에 상응하는 독출 램 주소로 주소 버스로 출력하는 것으로 충분하며, 그 밖의 데이터 독출과 관련된 사항은 종래 기술과 동일하다. 즉, 수정 롬 데이터 블록(235)에 속하는 독출 롬 주소에 대한 독출 명령이 있는 경우, 독출 롬 주소에 오프셋(OFS)을 더한 독출 램 주소를 주소 버스에 출력하여 독출 롬 주소에 있는 롬 데이터를 패치 데이터로 대체할 수 있다.
N(N은 자연수)개의 수정 롬 데이터 블록(235)이 존재하는 경우, 데이터 패치를 위해서는 시작 주소(SADD), 데이터 블록 길이(DBL) 및 오프셋(OFS)은 각각 N개씩 필요하다. 이러한 패치 정보는 부팅시 임베디드 시스템(200)에 제공되고, 레지스터부(270)에 저장될 수 있다.
도 4는 본 발명의 일 실시예에 따른 롬 데이터 패치 회로를 나타낸 블록도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 롬 데이터 패치 회로(400)는 데이터 패치 검출부(410), 램 주소 발생부(430) 및 주소 선택부(430)를 포함한다.
프로세서의 롬 데이터 독출 명령이 있는 경우, 롬 데이터 패치 회로(400)는 상기 설명한 패치 정보(SADD, DBL, OFS, ENB) 및 독출 롬 주소(ROMADD)에 기초하여 독출되는 롬 데이터가 도 3의 수정 롬 데이터 블록(235)에 해당하는가 여부를 검출 한다. 롬 데이터 패치 회로(400)는 독출 램 주소(ROMADD)가 수정 롬 데이터 블록(235)에 포함되지 않는 경우에는 롬 독출 주소(ROMADD)를 주소 버스로 출력한다. 반면에 롬 데이터 패치 회로(400)는 독출 롬 주소(ROMADD)가 수정 롬 데이터 블록(235)에 포함되는 경우에는 패치 데이터가 저장된 독출 램 주소(RAMADD)를 주소 버스로 출력한다.
데이터 패치 검출부(410)는 독출 롬 주소(ROMADD) 시작 주소(SADD), 데이터 블록 길이(DBL) 및 패치 인에이블 신호(ENB)에 기초하여 오프셋 선택 신호(OFSSL) 및 주소 선택 신호(ADDSL)를 출력한다. 오프셋 선택 신호(OFSSL)는 독출 램 주소(ROMADD)가 복수의 수정 롬 데이터 블록 중 어느 블록에 속하는가를 나타낸다. 주소 선택 신호(ADDSL)는 주소 선택부(450)가 독출 롬 주소(ROMADD) 및 독출 램 주소(RAMADD) 중에서 어느 것을 출력할 것인지 제어하기 위한 신호이다.
램 주소 발생부(430)는 독출 롬 주소(ROMADD), 오프셋(OFS) 및 오프셋 선택 신호(OFSSL)에 기초하여 독출 롬 주소(ROMADD)에 상응하는 독출 램 주소(RAMADD)를 발생한다.
주소 선택부(450)는 주소 선택 신호(ADDSL)에 응답하여 독출 롬 주소(ROMADD) 및 독출 램 주소(RAMADD) 중 하나를 출력한다. 예를 들어, 주소 선택부(450)가 최종적으로 주소 버스에 출력하는 선택 주소(SLADD)는 주소 선택 신호(OFSSL)가 논리적 로우 레벨인 경우 독출 롬 주소(ROMADD)이고, 주소 선택 신호(OFSSL)가 논리적 하이 레벨인 경우 상기 독출 램 주소일 수 있다.
주소 선택부(450)는 주소 선택 신호(ADDSL)에 응답하여 상기 독출 롬 주소 (ROMADD) 및 상기 독출 램 주소(RAMADD) 중 하나를 출력하는 다중화기(Multiplexer)를 포함할 수 있다.
도 5는 도 4의 데이터 패치 검출기를 나타낸 회로도이다.
도 5의 데이터 패치 검출기(500)는 제 1, 제 2 및 제 3 비교부들(510, 520, 530), 논리합 게이트(540) 및 논리곱 게이트(550)를 포함한다. 도 5에는 세 개의 비교부들이 도시되어 있으나, 해당 기술분야의 당업자는 롬 데이터의 수정이 요구되는 수정 롬 데이터 블록의 갯수에 따라 비교부의 갯수가 결정되는 것을 이해할 것이다.
제 1 비교부(510)는 제 1 수정 롬 데이터 블록에 상응하는 제 1 시작 주소(SADD1) 및 제 1 데이터 블록 길이(DBL1)에 기초하여 독출 롬 주소(ROMADD)가 제 1 수정 롬 데이터 블록에 속하는지 여부를 나타내는 제 1 오프셋 선택 신호(OFSSL1)를 발생한다. 독출 롬 주소(ROMADD)가 제 1 시작 주소(SADD1)보다 크거나 같고, 제 1 시작 주소(SADD1)와 제 1 데이터 블록 길이(DBL1)의 합산 값보다 작거나 같으면 제 1 오프셋 선택 신호(OFFSL1)의 전압 레벨은 논리적 하이 레벨이고, 그 밖의 경우 논리적 로우 레벨이 되도록 설정할 수 있다. 제 2 비교부(520) 및 제 3 비교부(530)의 동작은 제 1 비교부(510)의 동작과 동일하므로 설명을 생략한다.
독출 롬 주소(ROMADD)가 수정 롬 데이터 블록에 속하는 경우에 복수의 오프셋 선택 신호들(OFSSL1, OFSSL2, OFSSL3) 중 하나의 신호만이 논리적 하이 레벨이 된다. 결과적으로 복수의 오프셋 선택 신호들의 조합은 독출 램 주소가 복수의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타낸다. 독출 램 주소가 복수의 수정 롬 데이터 블록들 중 어느 것에도 속하지 않는 경우에는 모든 오프셋 선택 신호들의 전압 레벨이 로우 레벨이 된다.
논리합 게이트(540)는 복수의 오프셋 선택 신호들(OFSSL1, OFSSL2, OFSSL3)의 논리곱 연산을 수행한다. 논리합 게이트(540)의 출력 신호는 독출 롬 주소(ROMADD)가 수정 롬 데이터 블록들 중 하나에 속하는 경우 하이 레벨이고, 복수의 수정 롬 데이터 블록들 중 어느 것에도 속하지 않는 경우 로우 레벨이다.
논리곱 게이트(550)는 논리합 게이트(540)의 출력 신호 및 패치 인에이블 신호(ENB)의 논리곱 연산을 수행하여 주소 선택 신호(ADDSL)을 출력한다. 독출 램 주소가 수정 롬 블록들 중 하나에 속하고 패치 인에이블 신호가 하이 레벨인 경우 주소 선택 신호(ADDSL)는 하이 레벨이 된다. 반면에, 독출 롬 주소(ROMADD)가 복수의 수정 롬 데이터 블록들 중 어느 것에도 속하지 않는 경우 또는 패치 인에이블 신호(ENB)가 로우 레벨인 경우 주소 선택 신호는 로우 레벨이 된다. 결과적으로, 도 4의 주소 선택부(450)는 주소 선택 신호(OFSSL)가 논리적 로우 레벨인 경우 독출 롬 주소(ROMADD)를 출력하고, 주소 선택 신호(OFSSL)가 논리적 하이 레벨인 경우 상기 독출 램 주소를 출력한다.
패치 인에이블 신호(ENB)는 롬 데이터 패치 회로의 패치 동작을 제어하기 위한 신호이다. 일반적으로, 롬 데이터의 수정이 있는 경우 패치 인에이블 신호는 하이 레벨이고, 롬 데이터의 수정이 없는 경우 로우 레벨이 되도록 설정된다. 그러나, 롬 데이터의 수정이 있는 경우에도 필요에 따라 로우 레벨의 패치 인에이블 신호를 인가하여 롬 데이터의 패치를 차단할 수 있다. 즉, 주소 선택부(450)는, 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부에 관계없이 상기 독출 롬 주소를 출력한다.
도 6은 도 5의 각각의 비교부를 나타낸 회로도이다.
도 6을 참조하면, 비교부(600)는 하한 비교기(610), 상한 비교기(620), 덧셈기(630) 및 논리곱 게이트(640)를 포함한다.
하한 비교기(610)는 독출 롬 주소(ROMADD)가 시작 주소(SADD)보다 크거나 같은 경우 하이 레벨의 신호를 출력하고, 반대의 경우 로우 레벨의 신호를 출력한다.
덧셈기(630)는 시작 주소(SADD) 및 오프셋(OFS)을 합한 값을 출력한다.
상한 비교기(620)는 독출 롬 주소(ROMADD)가 상기 덧셈기(630)의 출력 값보다 작거나 같은 경우 하이 레벨의 신호를 출력하고, 반대의 경우 로우 레벨의 신호를 출력한다.
논리곱 게이트(640)는 하한 비교기(610)의 출력 신호 및 상한 비교기(620)의 출력 신호를 논리곱 연산하여 오프셋 선택 신호를 발생한다.
도 7은 도 4의 램 주소 발생부를 나타낸 블록도이다.
도 7을 참조하면, 램 주소 발생부(700)는 오프셋 선택기(710) 및 오프셋 덧셈기(720)를 포함한다.
오프셋 선택기(710)는 복수의 오프셋 선택 주소들(OFSSL1,OFSSL2,OFSSL3)에 응답하여 복수의 오프셋들(OFS1,OFS2,OFS3) 중에서 독출 램 주소(ROMADD)가 속하는 수정 롬 데이터 블록의 오프셋을 선택한다. 즉, K(K는 1,2 또는 3)번째 오프셋 선 택 주소(OFSSLK)만이 하이 레벨인 경우, 오프셋 선택기(710)는 K번째 오프셋(OFSK)를 선택하여 오프셋 덧셈기(720)로 출력한다.
오프셋 덧셈기(720)는 선택된 오프셋을 독출 롬 주소(ROMADD)에 더하여 독출 램 주소(RAMADD)를 출력한다. 독출 램 주소(RAMADD)에는 독출 주소에 저장된 데이터를 수정한 패치 데이터가 저장되어 있다.
도 8은 본 발명의 일 실시예에 따른 롬 데이터 패치 방법을 나타낸 순서도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 롬 데이터 패치 방법은 N(N은 자연수)개의 수정 롬 데이터 블록들에 저장된 데이터를 패치하기 위한 패치 데이터 및 패치 정보를 제공하는 단계(S810), 상기 제공된 패치 데이터를 N개의 램 패치 블록에 각각 저장하는 단계(S820) 및 상기 패치 정보 및 독출 롬 주소에 기초하여 상기 독출 롬 주소에 상응하는 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 단계(S830 내지 S860)를 포함한다.
상기 설명한 바와 같이, 패치 정보는 수정 롬 데이터 블록들의 시작 주소들, 데이터 블록 길이들, 수정 롬 데이터 블록 및 이에 상응하는 램 데이터 블록의 주소 차이를 나타내는 오프셋들 및 데이터 패치 동작을 제어하기 위한 패치 인에이블 신호를 포함할 수 있다. 제공된 패치 정보는 레지스터에 저장되어 데이터 독출시 이용될 수 있다.
패치 데이터는 데이터 롬 테스트 결과에 기초하여 또는 데이터 업그레이드의 필요에 따라 임베디드 시스템 외부에 구비된 플래쉬 메모리와 같은 프로그램 가능 한 롬에 저장될 수 있다. 프로그램 가능한 롬에 저장된 패치 데이터는 임베디드 시스템의 부팅시 램에 로드된다(S820).
수정 롬 데이터 블록의 시작 주소 및 데이터 블록 길이에 기초하여, 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들을 발생한다(S830).
이러한 오프셋 선택 신호들의 논리적 레벨 상태에 기초하여 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생한다(S840). 그리고, 상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생한다(S850).
마지막으로, 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력한다(S860). 상기 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 하나에 속하고 상기 패치 인에이블 신호가 논리적 하이 레벨인 경우 상기 독출 램 주소를 출력한다. 반면에, 상기 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들에 속하지 않는 경우 또는 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우에 상기 독출 롬 주소를 출력한다.
상기 설명한 바와 같이, 본 발명에 따른 롬 데이터 패치 장치, 임베디드 시스템 및 롬 데이터 패치 방법은, 램에 저장된 패치 데이터를 이용하여 시스템의 성능을 저하시키지 않으면서 데이터 롬에 저장된 롬 데이터의 오류를 수정하거나 롬 데이터를 업그레이드할 수 있다.
또한, 본 발명에 따른 롬 데이터 패치 장치, 임베디드 시스템 및 롬 데이터 패치 방법은, 램에 저장된 패치 데이터를 이용하여 데이터 롬에 저장된 롬 데이터의 오류를 수정하거나 롬 데이터를 업그레이드함으로써, 전체 시스템을 다시 제조하기 위한 시간 및 비용을 절감할 수 있다.
상기한 본 발명의 실시예들은 예시의 목적을 위해 개시된 것이므로, 본 발명에 대한 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양하게 수정, 변경, 부가한 실시가 가능할 것이다. 이러한 수정, 변경, 부가는 하기의 특허청구범위에 속하는 것으로 보아야 한다.

Claims (27)

  1. 패치 정보에 기초하여 N개의(N은 자연수) 수정 롬 데이터 블록들에 저장된 데이터를 N개의 램 패치 블록들에 저장된 데이터로 패치하기 위한 롬 데이터 패치 회로에 있어서,
    독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들 및 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생하는 데이터 패치 검출부;
    상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생하는 램 주소 발생부; 및
    상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 주소 선택부를 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  2. 제 1 항에 있어서, 상기 패치 정보는,
    상기 수정 롬 데이터 블록들의 N개의 시작 주소들, N개의 데이터 블록 길이들, 상기 수정 롬 데이터 블록 및 이에 상응하는 상기 램 데이터 블록의 주소 차이를 나타내는 N개의 오프셋들 및 패치 동작을 제어하기 위한 패치 인에이블 신호를 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  3. 제 2 항에 있어서, 상기 주소 선택 신호는,
    상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하고 상기 패치 인에이블 신호가 논리적 하이 레벨인 경우에 논리적 하이 레벨이고,
    상기 독출 롬 주소가 상기 수정 롬 데이터 블록들에 속하지 않는 경우 또는 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우에 논리적 로우 레벨인 것을 특징으로 하는 롬 데이터 패치 회로.
  4. 제 3 항에 있어서, 상기 주소 선택부는,
    상기 주소 선택 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소를 출력하고,
    상기 주소 선택 신호가 논리적 하이 레벨인 경우 상기 독출 램 주소를 출력하는 것을 특징으로 하는 롬 데이터 패치 회로.
  5. 제 2 항에 있어서, 상기 데이터 패치 검출부는,
    상기 독출 롬 주소가 상응하는 상기 수정 롬 데이터 블록에 속하는 경우 논리적 하이 레벨이고 상기 독출 롬 주소가 상응하는 상기 수정 롬 데이터 블록에 속하지 않는 경우 논리적 로우 레벨의 상기 오프셋 선택 신호를 각각 발생하는 N개의 비교부들;
    상기 비교부들에서 발생된 상기 N개의 오프셋 선택 신호들을 논리합 연산하 는 논리합 게이트; 및
    상기 논리합 게이트의 출력 신호들 및 상기 패치 인에이블 신호를 논리곱 연산하여 상기 주소 선택 신호를 발생하는 제 1 논리곱 게이트를 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  6. 제 5 항에 있어서, 상기 K번째(K는 1 이상 N 이하의 자연수) 비교부는,
    상기 독출 롬 주소가 상기 K번째 시작 주소보다 크거나 같은 경우 논리적 하이 레벨의 신호를 출력하는 하한 비교기;
    상기 K번째 시작 주소 및 상기 K번째 데이터 블록 길이의 합산 값을 출력하는 덧셈기;
    상기 독출 롬 주소가 상기 덧셈기의 출력 값보다 작거나 같은 경우 논리적 하이 레벨의 신호를 출력하는 상한 비교기; 및
    상기 하한 비교기의 출력 신호 및 상기 상한 비교기의 출력 신호를 논리곱 연산하여 상기 K번째 오프셋 선택 신호를 발생하는 제 2 논리곱 게이트를 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  7. 제 2 항에 있어서, 상기 램 주소 발생부는,
    상기 N개의 오프셋 선택 신호들에 응답하여 상기 N개의 오프셋들 중에서 상기 독출 롬 주소가 속하는 수정 롬 데이터 블록에 상응하는 오프셋을 출력하는 오프셋 선택기; 및
    상기 독출 롬 주소 및 상기 오프셋 선택기에서 출력되는 오프셋을 합하여 상기 독출 램 주소를 출력하는 오프셋 덧셈기를 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  8. 제 2 항에 있어서,
    상기 주소 선택부는, 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부에 관계없이 상기 독출 롬 주소를 선택하여 출력하는 것을 특징으로 하는 롬 데이터 패치 회로.
  9. 제 2 항에 있어서,
    상기 주소 선택부는 상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 다중화기(Multiplexer)를 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  10. 제 1 항에 있어서,
    상기 패치 정보를 저장하는 레지스터를 더 포함하는 것을 특징으로 하는 롬 데이터 패치 회로.
  11. 프로세서;
    상기 프로세서의 동작에 필요한 데이터를 저장하는 데이터 롬;
    상기 데이터 롬에 저장된 데이터를 패치하기 위한 패치 데이터를 저장하는 램;
    패치 정보를 저장하는 레지스터;
    상기 레지스터에 저장된 패치 정보 및 독출 롬 주소에 기초하여 상기 독출 롬 주소에 상응하는 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 롬 데이터 패치 회로를 포함하는 것을 특징으로 하는 임베디드 시스템.
  12. 제 11 항에 있어서,
    상기 패치 데이터는 부팅 과정에서 외부의 프로그램가능한 롬으로부터 제공되어 상기 램에 저장되는 것을 특징으로 하는 임베디드 시스템.
  13. 제 11 항에 있어서, 상기 롬 데이터 패치 회로는 상기 패치 정보에 기초하여 N개의(N은 자연수) 수정 롬 데이터 블록들에 저장된 데이터를 N개의 램 패치 블록들에 저장된 데이터로 패치하고,
    상기 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들 및 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생하는 데이터 패치 검출부;
    상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생하는 램 주소 발생부; 및
    상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 주소 선택부를 포함하는 것을 특징으로 하는 임베디드 시스템.
  14. 제 13 항에 있어서, 상기 패치 정보는,
    상기 수정 롬 데이터 블록들의 N개의 시작 주소들, N개의 데이터 블록 길이들, 상기 수정 롬 데이터 블록 및 이에 상응하는 상기 램 데이터 블록의 주소 차이를 나타내는 N개의 오프셋들 및 패치 동작을 제어하기 위한 패치 인에이블 신호를 포함하는 것을 특징으로 하는 임베디드 시스템.
  15. 제 14 항에 있어서, 상기 주소 선택 신호는,
    상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하고 상기 패치 인에이블 신호가 논리적 하이 레벨인 경우에 논리적 하이 레벨이고,
    상기 독출 롬 주소가 상기 수정 롬 데이터 블록들에 속하지 않는 경우 또는 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우에 논리적 로우 레벨인 것을 특징으로 하는 임베디드 시스템.
  16. 제 15 항에 있어서, 상기 주소 선택부는,
    상기 주소 선택 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소를 출력하고,
    상기 주소 선택 신호가 논리적 하이 레벨인 경우 상기 독출 램 주소를 출력하는 것을 특징으로 하는 임베디드 시스템.
  17. 제 14 항에 있어서, 상기 데이터 패치 검출부는,
    상기 독출 롬 주소가 상응하는 상기 수정 롬 데이터 블록에 속하는 경우 논리적 하이 레벨이고 상기 독출 롬 주소가 상응하는 상기 수정 롬 데이터 블록에 속하지 않는 경우 논리적 로우 레벨의 상기 오프셋 선택 신호를 각각 발생하는 N개의 비교부들;
    상기 비교부들에서 발생된 상기 N개의 오프셋 선택 신호들을 논리합 연산하는 논리합 게이트; 및
    상기 논리합 게이트의 출력 신호들 및 상기 패치 인에이블 신호를 논리곱 연산하여 상기 주소 선택 신호를 발생하는 제 1 논리곱 게이트를 포함하는 것을 특징으로 하는 임베디드 시스템.
  18. 제 17 항에 있어서, 상기 K번째(K는 1 이상 N 이하의 자연수) 비교부는,
    상기 독출 롬 주소가 상기 K번째 시작 주소보다 크거나 같은 경우 논리적 하이 레벨의 신호를 출력하는 하한 비교기;
    상기 K번째 시작 주소 및 상기 K번째 데이터 블록 길이의 합산 값을 출력하는 덧셈기;
    상기 독출 롬 주소가 상기 덧셈기의 출력 값보다 작거나 같은 경우 논리적 하이 레벨의 신호를 출력하는 상한 비교기; 및
    상기 하한 비교기의 출력 신호 및 상기 상한 비교기의 출력 신호를 논리곱 연산하여 상기 K번째 오프셋 선택 신호를 발생하는 제 2 논리곱 게이트를 포함하는 것을 특징으로 하는 임베디드 시스템.
  19. 제 14 항에 있어서, 상기 램 주소 발생부는,
    상기 N개의 오프셋 선택 신호들에 응답하여 상기 N개의 오프셋들 중에서 상기 독출 롬 주소가 속하는 수정 롬 데이터 블록에 상응하는 오프셋을 출력하는 오프셋 선택기; 및
    상기 독출 롬 주소 및 상기 오프셋 선택기에서 출력되는 오프셋을 합하여 상기 독출 램 주소를 출력하는 오프셋 덧셈기를 포함하는 것을 특징으로 하는 임베디드 시스템.
  20. 제 14 항에 있어서,
    상기 주소 선택부는, 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우 상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부에 관계없이 상기 독출 롬 주소를 선택하여 출력하는 것을 특징으로 하는 임베디드 시스템.
  21. 제 14 항에 있어서,
    상기 주소 선택부는 상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 다중화기(Multiplexer)를 포함하는 것을 특징으로 하는 임베디드 시스템.
  22. N(N은 자연수)개의 수정 롬 데이터 블록들에 저장된 데이터를 패치하기 위한 패치 데이터 및 패치 정보를 제공하는 단계;
    상기 제공된 패치 데이터를 N개의 램 패치 블록에 각각 저장하는 단계; 및
    상기 패치 정보 및 독출 롬 주소에 기초하여 상기 독출 롬 주소에 상응하는 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 단계를 포함하는 것을 특징으로 하는 롬 데이터 패치 방법.
  23. 제 22 항에 있어서, 상기 패치 정보는,
    상기 수정 롬 데이터 블록들의 N개의 시작 주소들, N개의 데이터 블록 길이들, 상기 수정 롬 데이터 블록 및 이에 상응하는 상기 램 데이터 블록의 주소 차이를 나타내는 N개의 오프셋들 및 패치 동작을 제어하기 위한 패치 인에이블 신호를 포함하는 것을 특징으로 하는 롬 데이터 패치 방법.
  24. 제 22 항에 있어서,
    상기 제공된 패치 정보를 레지스터에 저장하는 단계를 더 포함하는 것을 특징으로 하는 롬 데이터 패치 방법.
  25. 제 23 항에 있어서, 상기 독출 램 주소 및 상기 독출 롬 주소 중 하나를 출력하는 단계는,
    독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 어느 것에 속하는가를 나타내는 N개의 오프셋 선택 신호들을 발생하는 단계;
    상기 독출 롬 주소가 상기 수정 롬 데이터 블록들 중 하나에 속하는지 여부를 나타내는 주소 선택 신호를 발생하는 단계;
    상기 오프셋 선택 신호들에 응답하여 상기 독출 롬 주소에 상응하는 독출 램 주소를 발생하는 단계; 및
    상기 주소 선택 신호에 응답하여 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 단계를 포함하는 것을 특징으로 하는 롬 데이터 패치 방법.
  26. 제 25 항에 있어서, 상기 K(K는 1 이상 N 이하의 자연수)번째 오프셋 선택 신호를 발생하는 단계는,
    상기 독출 롬 주소가 상기 K번째 시작 주소보다 크거나 같은 경우 논리적 하이 레벨의 제 1 비교신호를 출력하는 단계;
    상기 독출 롬 주소가 상기 K번째 시작 주소와 상기 K번째 데이터 블록 길이의 합산 값보다 작거나 같은 경우 논리적 하이 레벨의 제 2 비교 신호를 출력하는 단계: 및
    상기 제 1 비교 신호 및 상기 제 2 비교 신호를 논리곱 연산하여 상기 K번째 오프셋 선택 신호를 발생하는 단계를 포함하는 것을 특징으로 하는 롬 데이터 패치 방법.
  27. 제 23 항에 있어서, 상기 독출 롬 주소 및 상기 독출 램 주소 중 하나를 출력하는 단계는,
    상기 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들 중 하나에 속하고 상기 패치 인에이블 신호가 논리적 하이 레벨인 경우 상기 독출 램 주소를 출력하고,
    상기 독출 롬 주소가 상기 N개의 수정 롬 데이터 블록들에 속하지 않는 경우 또는 상기 패치 인에이블 신호가 논리적 로우 레벨인 경우에 상기 독출 롬 주소를 출력하는 것을 특징으로 하는 롬 데이터 패치 방법.
KR1020060016609A 2006-02-21 2006-02-21 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 KR100717110B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060016609A KR100717110B1 (ko) 2006-02-21 2006-02-21 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법
US11/671,534 US8504799B2 (en) 2006-02-21 2007-02-06 ROM data patch circuit, embedded system including the same and method of patching ROM data
CN2007101292280A CN101075213B (zh) 2006-02-21 2007-02-25 只读存储器数据修补电路和方法、及其嵌入式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060016609A KR100717110B1 (ko) 2006-02-21 2006-02-21 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법

Publications (1)

Publication Number Publication Date
KR100717110B1 true KR100717110B1 (ko) 2007-05-10

Family

ID=38270411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060016609A KR100717110B1 (ko) 2006-02-21 2006-02-21 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법

Country Status (3)

Country Link
US (1) US8504799B2 (ko)
KR (1) KR100717110B1 (ko)
CN (1) CN101075213B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100927446B1 (ko) * 2007-11-28 2009-11-19 웹싱크 주식회사 이동통신단말기의 트랜잭션 단위 펌웨어 업그레이드 방법및 이를 이용한 펌웨어 업그레이드 시스템
WO2013006672A2 (en) * 2011-07-06 2013-01-10 Intel Corporation Programmable patch architecture for rom

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8570799B2 (en) * 2011-08-16 2013-10-29 Intel Mobile Communications GmbH Magnetic random access memory with conversion circuitry
ITMI20120944A1 (it) * 2012-05-31 2013-12-01 St Microelectronics Srl Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione
US9696990B2 (en) 2014-09-23 2017-07-04 Nxp Usa, Inc. Method and apparatus for implementing inter-component function calls
KR102492033B1 (ko) * 2018-03-26 2023-01-26 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
TW202040582A (zh) * 2019-01-18 2020-11-01 美商半導體組件工業公司 用於置換擷取自記憶體之資料的系統及方法
CN112231136A (zh) * 2020-11-04 2021-01-15 炬芯科技股份有限公司 SoC芯片、获取修复信息的方法、存储介质及电子设备
CN114047952B (zh) * 2022-01-11 2022-05-20 长芯盛(武汉)科技有限公司 用于单片机的处理器、方法、单片机和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129396A (ja) * 1993-11-08 1995-05-19 Nec Corp 読み出し専用記憶装置のパッチ方法
JP2733692B2 (ja) * 1989-06-21 1998-03-30 本田技研工業株式会社 Rom装置
KR20030041191A (ko) * 2001-11-19 2003-05-27 주식회사 하이닉스반도체 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3810805B2 (ja) * 1992-09-19 2006-08-16 ソニー株式会社 情報修正システム
US5940850A (en) 1996-10-31 1999-08-17 International Business Machines Corporation System and method for selectively enabling load-on-write of dynamic ROM data to RAM
US5757690A (en) * 1997-04-23 1998-05-26 Exponential Technology, Inc. Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory
TW400469B (en) * 1997-07-08 2000-08-01 Winbond Electronics Corp Device capable of fixing programs in embedded microprocessor
KR20000013076A (ko) 1998-08-04 2000-03-06 윤종용 플래시 롬의 데이터 갱신 방법
US6438664B1 (en) * 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
DE10055096A1 (de) * 2000-11-07 2002-05-16 Infineon Technologies Ag Speicherverwaltungslogik zur erweiterten Nutzung von Festwertspeichern
US6865667B2 (en) * 2001-03-05 2005-03-08 Freescale Semiconductors, Inc. Data processing system having redirecting circuitry and method therefor
US6760908B2 (en) * 2001-07-16 2004-07-06 Namodigit Corporation Embedded software update system
US7039776B2 (en) * 2003-04-17 2006-05-02 Broadcom Corporation Patch memory system for a ROM-based processor
US7739469B2 (en) * 2005-11-08 2010-06-15 Freescale Semiconductor, Inc. Patching ROM code
US7644223B2 (en) * 2006-10-30 2010-01-05 Via Telecom Co., Ltd. Circuit and method for patching for program ROM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2733692B2 (ja) * 1989-06-21 1998-03-30 本田技研工業株式会社 Rom装置
JPH07129396A (ja) * 1993-11-08 1995-05-19 Nec Corp 読み出し専用記憶装置のパッチ方法
KR20030041191A (ko) * 2001-11-19 2003-05-27 주식회사 하이닉스반도체 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100927446B1 (ko) * 2007-11-28 2009-11-19 웹싱크 주식회사 이동통신단말기의 트랜잭션 단위 펌웨어 업그레이드 방법및 이를 이용한 펌웨어 업그레이드 시스템
WO2013006672A2 (en) * 2011-07-06 2013-01-10 Intel Corporation Programmable patch architecture for rom
WO2013006672A3 (en) * 2011-07-06 2013-03-14 Intel Corporation Programmable patch architecture for rom
KR101574512B1 (ko) 2011-07-06 2015-12-07 인텔 코포레이션 Rom용 프로그램가능 패치 아키텍처

Also Published As

Publication number Publication date
US8504799B2 (en) 2013-08-06
CN101075213A (zh) 2007-11-21
US20070220374A1 (en) 2007-09-20
CN101075213B (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
KR100717110B1 (ko) 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법
US8397042B2 (en) Secure memory interface
JP4840859B2 (ja) 半導体装置、及び起動方法
US20060106973A1 (en) Nonvolatile memory card
US20060140027A1 (en) Semiconductor memory device and method of operating the same
JP2006107710A (ja) 停電によるプログラムエラーの有無を検出することができる集積回路メモリ装置及び方法
US6546517B1 (en) Semiconductor memory
US20080155172A1 (en) Microcode patching system and method
JP4834721B2 (ja) メモリ制御装置およびメモリ制御方法
US20050207232A1 (en) Access method for a NAND flash memory chip, and corresponding NAND flash memory chip
KR100894251B1 (ko) 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법
US20080195893A1 (en) A repairable semiconductor memory device and method of repairing the same
CN108735268B (zh) 非易失性存储器修复电路
US7490321B2 (en) Method for updating firmware via determining program code
KR20030023762A (ko) 에러 보정 방법 및 에러 보정 회로 장치
US6442083B2 (en) Redundancy memory circuit
US7492650B2 (en) Semiconductor storage device having a user region and a redundancy region
US7484147B2 (en) Semiconductor integrated circuit
US11669392B2 (en) Non-volatile memory
US20100146332A1 (en) Data correction circuit and semiconductor integrated circuit
JP2005050442A (ja) 冗長メモリ回路
CN115904216A (zh) 集成电路及方法
US20030135702A1 (en) Microcomputer for accessing a replacing block area preset in a nonvolatile memory in place of a replaced block area accessed in the nonvolatile memory
US20050055530A1 (en) Method and apparatus for protecting a specific memory section
TWI482014B (zh) 具有動態錯誤偵測及更正的記憶體

Legal Events

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

Payment date: 20130430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 13