KR20010081534A - Pci 버스 상에서 cpu를 내장한 타겟 보드의 플래시메모리를 프로그램하는 방법 - Google Patents
Pci 버스 상에서 cpu를 내장한 타겟 보드의 플래시메모리를 프로그램하는 방법 Download PDFInfo
- Publication number
- KR20010081534A KR20010081534A KR1020000007167A KR20000007167A KR20010081534A KR 20010081534 A KR20010081534 A KR 20010081534A KR 1020000007167 A KR1020000007167 A KR 1020000007167A KR 20000007167 A KR20000007167 A KR 20000007167A KR 20010081534 A KR20010081534 A KR 20010081534A
- Authority
- KR
- South Korea
- Prior art keywords
- flash memory
- cpu
- target board
- pci bus
- program
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 동작중인 개인용 컴퓨터(Personal Computer: PC) 또는 산업용 컴퓨터의 PCI(Peripheral Component Interconnect) 버스(bus) 상에서 그래픽 보드 (graphic board)를 제외한 타겟 보드(target board)에 H/W를 추가함으로써, 타겟 보드의 CPU(Central Processing Unit)에서 운용되는 OS(Operating System) 또는 기타 프로그램을 저장하고 있는 플래시 메모리(flash memory)를 온라인(on-line) 상에서 호스트(host)가 직접 소거(erase), 프로그램(program) 또는 확인(verify)하는 방법에 관한 것이다.
좀 더 구체적으로, 본 발명은 타겟 보드의 플래시 메모리에 저장되어 있는 OS 및 프로그램을 수정할 때, 타겟 보드를 PCI 버스에서 추출하여 프로그램하거나 플래시 메모리에 프로그램한 후 시스템을 재부팅(rebooting)하는 일이 없이 PCI 버스의 동작 중에도 바로 프로그램을 수정하고, 수정 후 바로 타겟 보드가 동작하도록 하는 방법에 관한 것이다.
Description
본 발명은 PCI(Peripheral Component Interconnect) 버스(bus) 상에서 타겟 보드의 CPU(Central Processing Unit)에서 운용되는 OS(Operating System) 또는 기타 프로그램을 저장하고 있는 플래시 메모리(flash memory)를 온라인(on-line) 상에서 호스트(host)가 직접 소거(erase), 프로그램(program) 또는 확인(verify)하는 방법에 관한 것이다.
도 1은 통상적인 PCI 버스 시스템의 구성도이다.
도 1에 도시된 바와 같이, 기본적으로 PCI 버스는 한 개의 호스트(10)와 여러 개의 타겟(20, …2n)으로 구성된다.
호스트(10)는 메인 프로세싱(main processing), 버스 중재(bus arbiter), 인터럽트 제어(interrupt control), PCI 버스 초기화 등의 기능을 구비하며, 타겟 (20, …2n)은 PCI 버스를 통하여 호스트(10)에 연결되는 보드(board) 또는 기타 장치(예컨대, 모뎀 카드, 그래픽 카드, 사운드 카드 등)로 구성된다.
PCI 버스에 연결되는 타겟 보드에 CPU가 사용된 경우, CPU 구동 프로그램은 EPROM(Erasable and Programmable Read Only Memory) 또는 플래시 메모리 등의 메모리에 저장되어진다.
종래 기술에 있어서, CPU를 내장한 타겟 보드의 BIOS(Basic Input and Output System) 프로그램은 제품이 출하되기 이전에 플래시 메모리 또는 EPROM에프로그램되어 출시되고, 타겟 보드의 동작은 파워온(power on) 후 CPU가 플래시 메모리 또는 EPROM에 저장된 BIOS 프로그램을 판독(read)함으로써 동작하거나, SDRAM이나 SRAM, DRAM 등의 작업 메모리(working memory)로 복제(copy)한 후 프로그램이 작업 메모리에서 동작하는 방법을 사용하고 있다.
위와 같은 종래의 방법을 사용하는 경우 제품 출하 후 BIOS 프로그램의 변경이 필요할 때, EPROM에서 프로그램을 실행하는 경우는 EPROM을 교환하거나 EPROM을 타겟 보드에서 제거 후 ROM 기록기(ROM Writer)로 EPROM을 다시 프로그램 한 후 적용하는 방법을 사용하고 있다.
또한, 타겟 보드가 플래시 메모리를 사용하는 경우는 초기 파워온(power on) 후 타겟 보드의 CPU가 플래시 메모리에 저장된 BIOS 프로그램을 타겟 보드의 SRAM, DRAM, SDRAM과 같은 휘발성 메모리로 복제(copy)한 후 SRAM, DRAM, SDRAM에서 BIOS를 실행하는 방법을 사용하고 있다.
이와 같은 종래의 방법을 사용하는 경우, 타겟 보드의 BIOS 프로그램을 변경하는 방식은 호스트 CPU에서 PCI 버스를 통하여 타겟 보드의 BIOS 프로그램을 다시 프로그램 한 후 시스템을 재부팅하여 프로그램을 다시 SRAM, DRAM, SDRAM과 같은 휘발성 메모리로 복제하여 사용해야 하는데, 이러한 번거로운 방식을 사용하는 이유는 플래시 메모리를 생산하는 공급자(vender)가 해당 플래시 메모리를 프로그램할 수 있는 방식에 대한 프로그램을 제공하기 때문에 플래시 메모리를 프로그램하기 위해서는 이 프로그램을 항상 타겟 보드의 일정 메모리 영역에 저장하고 있어야 하기 때문이다. 따라서, 타겟 보드의 CPU는 이 프로그램을 이용하여 플래시 메모리를 프로그램하기 위하여 파워온(power on)시 BIOS 프로그램을 휘발성 메모리에 복제함과 동시에 플래시 메모리를 프로그램할 수 있는 프로그램도 플래시 메모리로부터 휘발성 메모리에 복제하여야 한다. 그러면, 타겟 보드의 CPU는 휘발성 메모리에 복제된 플래시 메모리 프로그래밍 프로그램을 이용하여 플래시 메모리를 프로그램하게 된다.
그러나, 이러한 종래의 방식은 플래시 메모리의 프로그램을 호스트 CPU에서 다운로드(download) 받아 수정하는 도중에 시스템 전원이 중단(power off)되어 플래시 메모리에 다운로드되어지는 프로그램 데이터가 깨어지거나 정상적으로 프로그램 되지 않으면, 휘발성 메모리에 저장된 BIOS와 플래시 메모리에 다운로드하게 하는 프로그램의 데이터가 소멸됨으로 인하여 해당 타겟 보드가 다음부터는 정상적으로 동작할 수 없는 문제점이 발생하게 된다.
따라서, 본 발명은 상기한 바와 같은 문제점을 해결하기 위하여, PCI 버스에 연결된 호스트 CPU에서 직접적으로 타겟 보드 내부의 플래시 메모리를 판독(read), 기록(write), 소거(erase), 확인(verify)하기 위한 플래시 메모리 프로그래밍 방법을 제공하는 것을 목적으로 한다.
도 1은 통상적인 PCI 버스 시스템의 구성도.
도 2는 본 발명의 방법이 동작하는 PCI 버스 시스템의 타겟 보드의 상세 블록도.
<도면의 주요 부분에 대한 부호의 설명>
10 : 호스트 CPU(host CPU)
20, …2n : 타겟 보드
30 : 타겟 보드
40 : 로컬 CPU
50 : 플래시 메모리
60 : 휘발성 메모리
70 : 어드레스 버스 디코더 및 제어 로직(address bus decoder & control logic)
80 : PCI 드라이버(PCI driver)
본 발명은 타겟 보드의 플래시 메모리에 저장되어 있는 OS 및 프로그램을 수정할 때, 타겟 보드를 PCI 버스에서 추출하여 프로그램하거나 플래시 메모리에 프로그램한 후 시스템을 재부팅(rebooting)하는 일이 없이 PCI 버스의 동작 중에도바로 프로그램을 수정하고, 수정 후 바로 타겟 보드가 동작하도록 하는 방법에 관한 것이다.
본 발명은, PCI 버스 상에서 CPU를 내장한 타겟 보드의 플래시 메모리를 프로그램하는 방법에 있어서, 로컬 CPU(40)와, 플래시 메모리(50)와, 휘발성 메모리 (60)와, 어드레스 버스 디코더 및 제어 로직(70)과, PCI 드라이버(80)와, PCI 버스와, 호스트 CPU(10)를 포함하고, 상기 어드레스 버스 디코더 및 제어 로직(70) 내에는 상기 로컬 CPU(40)의 리셋 핀에 연결되는 플래그 비트가 존재하고, 상기 PCI 버스 상의 호스트 CPU(10)는 상기 플래시 메모리(50)를 프로그램하기 전에 상기 플래그 비트를 어느 하나의 이진수값으로 설정하여 상기 로컬 CPU(40)를 리셋시키고, 상기 PCI 버스 상의 호스트 CPU(10)는 상기 플래시 메모리(50)의 프로그램이 완료된 후에 상기 플래그 비트를 다른 하나의 이진수값으로 설정함으로써 시스템을 재부팅하는 일이 없이 타겟 보드를 초기화 및 액티브시키는 것을 특징으로 하는 타겟 보드의 플래시 메모리를 프로그램하는 방법에 관한 것이다.
또한, 본 발명에 따르면 PCI 버스 상의 호스트 CPU(10)는 플래시 메모리(50)에 다운로드된 프로그램을 다시 판독하여 저장매체에 저장한 후 기존에 저장되어 다운로드된 기존 파일과 비교함으로써 플래시 메모리에 프로그램 데이터가 정상적으로 다운로드 되었는지 여부를 확인하는 단계를 더 포함한다.
이하에서는, 본 발명에 따른 PCI 버스 시스템의 타겟 보드의 상세 블록도인 도 2를 참조하여 본 발명을 설명하겠다.
도면 부호 30으로 표시된 부분은 본 발명에 따른 타겟 보드(30)이다.
로컬 CPU(Local CPU)(40)는 타겟 보드(30)를 제어하는 CPU이고, 플래시 메모리는 로컬 CPU와 PCI 드라이버(PCI driver)를 통해 호스트 CPU가 액세스(access)하는 BIOS 프로그램 메모리이다.
PCI 드라이버(80)는 시스템 버스인 PCI 버스를 구동하는 모듈(module)로서 PCI 버스를 통하여 호스트 CPU(10)에 연결된다.
어드레스 버스 디코더 및 제어 로직(Address bus decoder & control logic) (70)은 PCI 드라이버(80)를 통하여 입력되는 PCI 버스상의 타겟 보드 할당 어드레스 버스, 데이터 버스 및 제어 신호를 타겟 보드 내부의 디바이스(예컨대, 플래시 메모리, SDRAM, 기타 디바이스 등)에서 사용할 수 있도록 변환하는 로직(logic)이다. 이 로직을 통하여 플래시에 대한 칩 선택(chip selection) 및 어드레스선 (address line)이 생성되며, 이 신호들과 제어 신호들을 사용하여 호스트 CPU(10)는 플래시 메모리의 내용을 프로그램 할 수 있다.
또한, 어드레스 버스 디코더 및 제어 로직(70)을 통하여 출력되는 Laddress 버스, Ldata 버스, Lcontrol 버스 등의 신호들은 로컬 CPU(40)에서 생성되는 신호와 동일한 타이밍(timing) 및 형상을 갖는다.
이하에서는, PCI 호스트 CPU(10)가 플래시 메모리의 내용을 프로그램 하는 방식을 설명한다.
호스트 CPU(10)는 플래시 메모리의 내용을 변경하기 이전에, 어드레스 버스 디코더 및 제어 로직(70) 내의 어느 하나의 레지스터(register)[이하, 제어 레지스터(control register)라 함]를 통하여 플래그 비트(flag bit)를 0으로 설정한다(set)한다. 이 플래그 비트를 로컬 CPU의 리셋 핀(reset pin)에 연결시킴으로써, 로컬 CPU가 리셋(reset)되어 Laddress 버스와 Ldata 버스, Lcontrol 신호에 대한 제어권을 상실한다. 위와 같은 동작을 하는 이유는 호스트 CPU(10)에서 플래시 메모리로 프로그램을 다운로드 하는 도중에 로컬 CPU(40)가 플래시 메모리를 액세스함으로서 발생할 수 있는 문제점을 제거하기 위해서이다.
PCI 버스 상에 존재하는 호스트(10)는 어드레스 버스 디코더 및 제어 로직 (70)을 통하여 플래시 메모리에 대한 칩 선택(chip selection) 신호와 판독, 기록 등에 관련된 Lcontrol 신호를 생성하여 플래시 메모리에 대한 프로그램 파일(file)을 플래시 메모리에 다운로드한다. 이 경우 PCI 버스에 연결된 호스트 CPU(10)는 플래시 메모리를 프로그램할 수 있는 파일을 하드 디스크 또는 플로피 디스크 등의 저장 매체에 사전에 저장하고 있어야 하며, 이 프로그램을 실행함으로써 플래시 메모리에 프로그램하고자 하는 BIOS나 프로그램 데이터를 플래시 메모리에 다운로드한다. 이 경우 프로그램되는 데이터는 PCI 드라이버(80)에 연결된 데이터 버스를 통하여 전송된다.
플래시 메모리에 원하는 BIOS나 프로그램 데이터가 다운로드된 후, 호스트 CPU(10)는 제어 레지스터의 플래그 비트를 1로 설정함으로써 로컬 CPU(40)에 걸린 리셋(reset) 신호를 해제한다. 로컬 CPU(40)는 리셋 신호가 해제되는 즉시 플래시 메모리에 대한 액세스를 시작함으로써 로컬 CPU(40)에 의해 프로그램이 정상적으로 수행한다.
위와 같은 방식을 사용하는 경우, 종래의 방식에서 프로그램을 다운로드 한후 프로그램을 재부팅해야 하는 불편함이 없어지는 장점이 있게 된다.
또한, 종래의 방식에서 플래시 메모리를 다운로드하는 도중에 전원 중단 (power off) 또는 기타의 문제에 의해 플래시 메모리가 정상적으로 프로그램되지 못하여 플래시 메모리의 데이터가 깨지는 경우에도 호스트 CPU에 연결된 저장매체 (Hard Disk, Floppy Disk) 내의 프로그램램 데이터는 손상되지 않기 때문에 다시 타겟 보드의 플래시 메모리를 프로그램하는 것이 가능하다.
또한, 호스트 CPU(10)는 어드레스 버스 디코더 및 제어 로직(70)을 통하여 플래시 메모리에 BIOS 및 프로그램 데이터를 다운로드한 후 다시 이 데이터를 판독 (read)하여 어플리케이션 프로그램을 통하여 저장 매체에 다른 파일 이름으로 저장하고, 이 파일을 기존 저장 매체에 기록되어져 있는 기존의 파일과 비교함으로써 플래시 메모리에 다운로드가 정상적으로 수행되었는지 여부를 검증하는 것이 가능하게 된다.
이상에서는, 본 발명의 구성 및 장점을 상세히 기술하였다. 본 명세서에 기술된 내용은 본 발명을 예시하기 위한 것으로서, 본 발명을 한정하기 위한 것이 아니다. 예컨대, 전술한 제어 레지스터의 플래그 비트는 다운로드 전에 1로 설정되고 다운로드가 완료돤 후에 0으로 설정되어도 좋다.
본 발명의 구성 및 그 장점이 상세히 기술되었지만, 당업자는 첨부된 청구 범위의 발명의 사상과 범위를 벗어남이 없이 다양한 변형을 가할 수 있을 것이다.
본 발명 따르면, PCI 버스 상의 호스트 CPU에서 타겟 보드의 플래시 메모리에 존재하는 BIOS, 프로그램 데이터를 플래시 메모리를 교체하지 않고도 즉시 프로그램할 수 있으며, 플래시 메모리의 내용이 손상되는 경우에도 그 내용을 다시 다운로드함으로써 복구가 가능하다는 효과가 있다.
또한, 플래시 메모리의 BIOS나 프로그램이 변경된 후에도 시스템을 재부팅할 필요가 없다는 장점이 있게 된다.
Claims (2)
- PCI 버스 상에서 CPU를 내장한 타겟 보드의 플래시 메모리를 프로그램하는 방법에 있어서,로컬 CPU(40)와,플래시 메모리(50)와,휘발성 메모리(60)와,어드레스 버스 디코더 및 제어 로직(70)과,PCI 드라이버(80)와,PCI 버스와,호스트 CPU(10)를 포함하고,상기 어드레스 버스 디코더 및 제어 로직(70) 내에는 상기 로컬 CPU(40)의 리셋 핀에 연결되는 플래그 비트가 존재하고,상기 PCI 버스 상의 호스트 CPU(10)는 상기 플래시 메모리(50)를 프로그램하기 전에 상기 플래그 비트를 어느 하나의 이진수값으로 설정하여 상기 로컬 CPU(40)를 리셋시키고,상기 PCI 버스 상의 호스트 CPU(10)는 상기 플래시 메모리(50)의 프로그램이 완료된 후에 상기 플래그 비트를 다른 하나의 이진수값으로 설정함으로써 시스템을 재부팅하는 일이 없이 타겟 보드를 초기화 및 액티브시키는 것을 특징으로 하는 타겟 보드의 플래시 메모리를 프로그램하는 방법.
- 제1항에 있어서, PCI 버스 상의 호스트 CPU(10)는 플래시 메모리(50)에 다운로드된 프로그램을 다시 판독하여 저장매체에 저장한 후 기존에 저장되어 다운로드된 기존 파일과 비교함으로써 플래시 메모리에 프로그램 데이터가 정상적으로 다운로드 되었는지 여부를 확인하는 단계를 더 포함하는 것인 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000007167A KR20010081534A (ko) | 2000-02-15 | 2000-02-15 | Pci 버스 상에서 cpu를 내장한 타겟 보드의 플래시메모리를 프로그램하는 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000007167A KR20010081534A (ko) | 2000-02-15 | 2000-02-15 | Pci 버스 상에서 cpu를 내장한 타겟 보드의 플래시메모리를 프로그램하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010081534A true KR20010081534A (ko) | 2001-08-29 |
Family
ID=19646742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000007167A KR20010081534A (ko) | 2000-02-15 | 2000-02-15 | Pci 버스 상에서 cpu를 내장한 타겟 보드의 플래시메모리를 프로그램하는 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20010081534A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100474461B1 (ko) * | 2002-06-28 | 2005-03-10 | 삼성전자주식회사 | 운영체제 복사장치 |
KR100486244B1 (ko) * | 2001-10-16 | 2005-05-03 | 삼성전자주식회사 | 직렬 이이피롬을 이용하여 인터페이스용 카드를초기화하는 반도체 장치 및 초기화 방법 |
KR100897153B1 (ko) * | 2002-09-05 | 2009-05-14 | 주식회사 케이티 | 다중 플러그 방식을 이용한 컴포넌트 소프트웨어 디바이스설계 방법 |
-
2000
- 2000-02-15 KR KR1020000007167A patent/KR20010081534A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100486244B1 (ko) * | 2001-10-16 | 2005-05-03 | 삼성전자주식회사 | 직렬 이이피롬을 이용하여 인터페이스용 카드를초기화하는 반도체 장치 및 초기화 방법 |
KR100474461B1 (ko) * | 2002-06-28 | 2005-03-10 | 삼성전자주식회사 | 운영체제 복사장치 |
KR100897153B1 (ko) * | 2002-09-05 | 2009-05-14 | 주식회사 케이티 | 다중 플러그 방식을 이용한 컴포넌트 소프트웨어 디바이스설계 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032520B (zh) | 系统开机代码存储器管理方法、存储器装置及其制造方法 | |
KR100408223B1 (ko) | 비휘발성 메모리에서의 하드웨어 블록 로킹 방법 및 장치 | |
US7493484B2 (en) | Method and apparatus for executing the boot code of embedded systems | |
EP0524719B1 (en) | Computer system with alterable bootstrapping software and method therefor | |
US6073206A (en) | Method for flashing ESCD and variables into a ROM | |
TW548549B (en) | Data-processing apparatus and method of controlling the rewriting of a nonvolatile storage device | |
US7761653B2 (en) | Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host | |
US7886141B2 (en) | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems | |
KR100375217B1 (ko) | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 | |
US6182187B1 (en) | System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM | |
JPH05216654A (ja) | パーソナル・コンピュータ・システム用ファームウェア記憶装置 | |
JPH0764770A (ja) | 遠隔的に書込み可能なepromを有するマイクロコントローラ装置及び書込み方法 | |
JP2008530683A (ja) | Nandフラッシュメモリ・システム・アーキテクチャ | |
JPH1050078A (ja) | 電気的に消去およびプログラムが可能なリード・オンリ・メモリの消去およびプログラミング保護方法および装置 | |
US20100023780A1 (en) | Flash device security method utilizing a check register | |
US10977050B2 (en) | Method for managing system boot code memory, memory device and electronic system using the same | |
US6216225B1 (en) | PC system having flash-ROM controlling device and method for protecting BIOS stored in flash-ROM | |
US20040186947A1 (en) | Access control system for nonvolatile memory | |
KR20010081534A (ko) | Pci 버스 상에서 cpu를 내장한 타겟 보드의 플래시메모리를 프로그램하는 방법 | |
JPH05216639A (ja) | フラッシュメモリをbios−romとして使用したパーソナルコンピュータ | |
TWI738243B (zh) | 伺服系統 | |
JP2005107608A (ja) | 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法 | |
JPH04243427A (ja) | 情報処理システム | |
KR100284260B1 (ko) | 피씨상에서 디스크 없이 부팅하는 장치 | |
EP0497443B1 (en) | Static ram based microcontroller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |