KR20050071131A - System and method for upgrading fpga firmware by using ipc - Google Patents

System and method for upgrading fpga firmware by using ipc Download PDF

Info

Publication number
KR20050071131A
KR20050071131A KR1020030102019A KR20030102019A KR20050071131A KR 20050071131 A KR20050071131 A KR 20050071131A KR 1020030102019 A KR1020030102019 A KR 1020030102019A KR 20030102019 A KR20030102019 A KR 20030102019A KR 20050071131 A KR20050071131 A KR 20050071131A
Authority
KR
South Korea
Prior art keywords
fpga
firmware
data
flash memory
board
Prior art date
Application number
KR1020030102019A
Other languages
Korean (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 엘지전자 주식회사
Priority to KR1020030102019A priority Critical patent/KR20050071131A/en
Publication of KR20050071131A publication Critical patent/KR20050071131A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

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

본 발명은 통신 시스템을 이루는 보드들의 FPGA 펌웨어를 업그레이드하는 시스템 및 그 방법에 관한 것으로, 특히 원격에 있는 제어부에서 업그레이드할 펌웨어를 IPC(Internal Processor Communication, 이하 "IPC"라 함)를 통하여 업그레이드할 보드에 전달하여 리부팅시 FPGA에 퓨징되는 것이 가능하게 하는 IPC를 통한 FPGA 펌웨어 업그레이드 시스템 및 그 방법에 관한 것이다.The present invention relates to a system for upgrading FPGA firmware of boards constituting a communication system and a method thereof, and more particularly, a board for upgrading firmware to be upgraded from a remote controller through IPC (Internal Processor Communication (IPC)). The present invention relates to an FPGA firmware upgrade system and method through IPC that can be delivered to the FPGA during reboot.

상기와 같이 제안된 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 시스템을 이루는 구성수단은, 시스템 보드에 FPGA 펌웨어 업그레이드 명령을 내리고 시스템의 각 보드들에게 리부팅 명령을 하는 원격 제어부와; 상기 원격 제어부로부터 FPGA 펌웨어 관련 정보를 받아 다운로딩을 제어하는 중앙처리장치와; 상기 중앙처리장치의 동작을 도와 전달받은 FPGA 데이터를 저장하는 플레쉬 메모리부와; 상기 원격 제어부의 리부팅 명령이 있은 후 상기 중앙처리장치의 제어에 따라 플레쉬 메모리부에 있는 FPGA 데이터를 전달받아 저장하는 PROM과; 상기 PROM에 의해 퓨징되어 새로운 FPGA 펌웨어로 업그레이드되어 재구성되는 FPGA를 포함하여 이루어진 것을 특징으로 한다.The constituent means of constituting the FPGA firmware upgrade system through the IPC of the present invention as described above includes: a remote controller for giving an FPGA firmware upgrade command to a system board and rebooting each board of the system; A central processing unit which receives the FPGA firmware related information from the remote control unit and controls the downloading; A flash memory unit configured to store the FPGA data received by assisting the operation of the CPU; A PROM for receiving and storing FPGA data in a flash memory unit under control of the central processing unit after a reboot command of the remote controller; Characterized in that it comprises an FPGA which is fused by the PROM and upgraded and reconfigured with a new FPGA firmware.

Description

아이피시를 통한 에프피지에이 펌웨어 업그레이드 시스템 및 그 방법{SYSTEM AND METHOD FOR UPGRADING FPGA FIRMWARE BY USING IPC}FFIAGE firmware upgrade system and method through IPPC {SYSTEM AND METHOD FOR UPGRADING FPGA FIRMWARE BY USING IPC}

본 발명은 통신 시스템을 이루는 보드들의 FPGA 펌웨어를 업그레이드하는 시스템 및 그 방법에 관한 것으로, 특히 원격에 있는 제어부에서 업그레이드할 펌웨어를 IPC(Internal Processor Communication, 이하 "IPC"라 함)를 통하여 업그레이드할 보드에 전달하여 리부팅시 FPGA에 퓨징되는 것이 가능하게 하는 IPC를 통한 FPGA 펌웨어 업그레이드 시스템 및 그 방법에 관한 것이다.The present invention relates to a system for upgrading FPGA firmware of boards constituting a communication system and a method thereof, and more particularly, a board for upgrading firmware to be upgraded from a remote controller through IPC (Internal Processor Communication (IPC)). The present invention relates to an FPGA firmware upgrade system and method through IPC that can be delivered to the FPGA during reboot.

종래에는 각각의 보드마다 디버깅을 위하여 병렬로 연결되어진 TCK(테스트 클럭), TDI(테스트 데이터 입력), TDO(테스트 데이터 출력), TMS(테스트 모드 선택) 등의 JTAG(Joint Test Access Group, 이하 "JTAG"라 함) 케이블을 연결하고 PC로부터 받은 전기적 신호를 FPGA(Field Programmable Gate Array, 이하 "FPGA"라 함)의 EEPROM으로 전달하여 저장하고, 이후에 파워가 공급될 때마다 FPGA에 퓨징하도록 하였다.Conventionally, JTAG (Joint Test Access Group) such as TCK (test clock), TDI (test data input), TDO (test data output), and TMS (test mode selection), which are connected in parallel for debugging each board, is " JTAG "cable and the electrical signals from the PC are transferred to the EEPROM of the FPGA (Field Programmable Gate Array, hereinafter called" FPGA ") to be stored, and subsequently fused to the FPGA whenever power is supplied. .

도 1은 종래의 FPGA에 펌웨어를 업그레이드하는 시스템의 구성도를 보여주는 것인데, 이를 참조하여 종래의 구성동작과 실시예를 설명한다.1 is a block diagram of a system for upgrading firmware on a conventional FPGA. A conventional configuration operation and an embodiment will be described with reference to the drawing.

종래의 FPGA 펌웨어 업그레이드 시스템을 구성하는 구성요소는 FPGA에 퓨징(Fusing)될 펌웨어를 보드에 제공하기 위해 JTAG 신호를 생성하는 호스트(PC)(1)와, 상기 호스트로부터 JTAG 신호를 병렬 케이블을 통하여 전달받아 적당한 전압 레벨로 변환하는 JTAG 컨넥터(2)와, 상기 JTAG 컨텍터를 통하여 전달된 전기적 신호를 저장하고 상기 호스트가 전송한 펌웨어를 저장하는 EEPROM(3)과, 상기 펌웨어를 파워가 공급됨에 따라 EEPROM에 의해 퓨징되어 구성되는 FPGA(4)를 포함하여 구성되어 있다.A component of a conventional FPGA firmware upgrade system includes a host (PC) 1 generating a JTAG signal to provide a board with firmware to be fused to the FPGA, and a JTAG signal from the host through a parallel cable. JTAG connector (2) for receiving and converting to the appropriate voltage level, EEPROM (3) for storing the electrical signal transmitted through the JTAG connector and the firmware transmitted by the host, and the firmware is powered In accordance with the configuration, the FPGA 4 is fused by the EEPROM.

상기와 같은 구성요소로 이루어진 종래의 시스템에서 펌웨어를 업그레이드 하기 위한 바람직할 실시예를 설명하면, 호스트가 병렬 포트를 이용하여 펌웨어를 업그레이드 할 보드에 필요한 JTAG 신호를 생성한다. 그러면 상기 생성된 JTAG 신호는 병렬 케이블을 통해 돈글(Dongle, PC 등의 USB 단자를 지원하는 각종 기기에 연결하는 외장형 주변장치)에 전달되어 적당한 전압 레벨로 변환된다.Referring to a preferred embodiment for upgrading the firmware in a conventional system consisting of the above components, the host generates a JTAG signal required for the board to upgrade the firmware using the parallel port. Then, the generated JTAG signal is transferred to a dongle (external peripheral device connected to various devices supporting USB terminals such as Dongle and PC) through a parallel cable and converted to an appropriate voltage level.

상기 돈글(Dongle)을 통해서 전달된 JTAG 신호 중 TMS(테스트 모드 선택)와 TCLK(테스트 클럭)는 TAP에 전달되어 JTAG의 스테이트 머신(State Machine)을 결정하고, TDO(테스트 데이터 출력)와 TDI(테스트 데이터 입력)는 JTAG의 명령의 생태에 따라 Bypass Register, Boundary Scan Cell, ID Register 등의 입력과 출력 부분에 연결된다.Among the JTAG signals transmitted through the dongle, TMS (test mode selection) and TCLK (test clock) are transmitted to the TAP to determine a state machine of the JTAG, and a TDO (test data output) and TDI ( Test data input) is connected to input and output parts of Bypass Register, Boundary Scan Cell, ID Register, etc. according to the ecology of JTAG instruction.

상기 과정 후 JTAG를 통해서 플레쉬 메모리가 필요로 하는 버스 타이밍을 발생하여 플레쉬에 전달한다. 상기와 같은 단계를 거친 후 플레쉬 메모리에 펌웨어를 저장하고 저장된 펌웨어는 파워가 공급되고 호스트의 명령에 따라 FPGA에 퓨징되는 것이다.After the above process, the bus timing required by the flash memory is generated and transferred to the flash through the JTAG. After the above steps, the firmware is stored in the flash memory, and the stored firmware is powered and fused to the FPGA according to a command of the host.

상기와 같이 종래 기술에 의하면 시스템의 랙에 실장된 보드들에 대하여 플래쉬 퓨징을 하기 위해서는 랙에 실장되어진 보드들을 모두 탈장하여 각각의 보드의 JTAG 컨넥터에 케이블을 연결하고 호스트에서 프로그램을 실행시켜 FPGA에 퓨징을 해주어야 한다. 따라서 시스템의 업그레이드를 하기 위해서는 많은 인력이 요구되고 많은 시간이 소요되는 문제점이 있다.As described above, according to the related art, in order to perform flash fusing on boards mounted in a rack of a system, all boards mounted in a rack are detached, a cable is connected to a JTAG connector of each board, and a program is executed in a host to an FPGA. Fusing should be done. Therefore, the upgrade of the system requires a lot of manpower and takes a lot of time.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 창안된 것으로, 원격에 있는 제어부가 업그레이드를 할 보드에게 IPC를 통해 펌웨어 관련 정보를 전달하고 보드에 리부팅 명령을 내려, 부팅과정에서 다운로딩이 실행되어 FPGA에 새로운 펌웨어가 퓨징되는 것이 가능하게 하는 IPC를 통한 FPGA 펌웨어 업그레이드 시스템 및 그 방법을 제공하는 것을 그 목적으로 한다.The present invention was devised to solve the problems of the prior art as described above, the remote control unit transfers the firmware-related information to the board to be upgraded via IPC and reboots the board, the downloading process in the boot process It is an object of the present invention to provide an FPGA firmware upgrade system and method through IPC that is executed to enable new firmware to be fused to an FPGA.

상기와 같은 기술적 과제를 해결하기 위하여 제안된 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 시스템을 이루는 구성수단은, 시스템 보드에 FPGA 펌웨어 업그레이드 명령을 내리고 시스템의 각 보드들에게 리부팅 명령을 하는 원격 제어부와; 상기 원격 제어부로부터 FPGA 펌웨어 관련 정보를 받아 다운로딩을 제어하는 중앙처리장치와; 상기 중앙처리장치의 동작을 도와 전달받은 FPGA 데이터를 저장하는 플레쉬 메모리부와; 상기 원격 제어부의 리부팅 명령이 있은 후 상기 중앙처리장치의 제어에 따라 플레쉬 메모리부에 있는 FPGA 데이터를 전달받아 저장하는 PROM과; 상기 PROM에 의해 퓨징되어 새로운 FPGA 펌웨어로 업그레이드되어 재구성되는 FPGA를 포함하여 이루어진 것을 특징으로 하고, The constituent means of the FPGA firmware upgrade system through the IPC of the present invention proposed to solve the above technical problem, the remote control to issue an FPGA firmware upgrade command to the system board and rebooting the respective boards of the system; A central processing unit which receives the FPGA firmware related information from the remote control unit and controls the downloading; A flash memory unit configured to store the FPGA data received by assisting the operation of the CPU; A PROM for receiving and storing FPGA data in a flash memory unit under control of the central processing unit after a reboot command of the remote controller; Characterized in that it comprises an FPGA fused by the PROM is upgraded and reconfigured with a new FPGA firmware,

상기 플레쉬 메모리부는 부트(Boot)에 관계된 데이터를 저장하고 있는 부트 플레쉬 메모리와, 보드에서 구동되는 OS와 각 종 어플리케이션 및 FPGA 데이터를 저장하는 어플리케이션 플레쉬 메모리를 포함하여 이루어진 것을 특징으로 하며, 상기 어플리케이션 플레쉬 메모리의 FPGA 데이터를 저장하는 공간은 뉴버전(New Version) 저장 공간과 올드버전(Old Version) 저장 공간을 포함하여 이루어진 것을 특징으로 한다.The flash memory unit may include a boot flash memory that stores data related to a boot, and an application flash memory that stores an OS running on a board, various applications, and FPGA data. The space for storing the FPGA data of the memory is characterized in that it comprises a new version storage space and the old version storage space.

한편, 또 다른 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 방법을 이루는 구성수단은, 시스템에 전원이 공급되어 각 보드들이 초기화되는 단계와; 상기 보드들이 초기화된 후 원격 제어부가 IPC를 통해 FPGA 펌웨어 관련 정보들을 중앙처리장치에 전달하는 단계와; 상기 중앙처리장치의 제어에 의해 FPGA 데이터를 플레쉬 메모리부에 저장하여 업데이트하는 단계와; 상기 단계 후, 원격 제어부의 리부팅 명령에 따라 해당 보드들이 리부팅 상태에서 FPGA 데이터를 FPGA에 퓨징하여 재구성하는 단계;를 포함하여 이루어진 것을 특징으로 하고,On the other hand, the configuration means for constituting the FPGA firmware upgrade method through the IPC according to the present invention, the power supply to the system is initialized each board; Transmitting, by a remote controller, FPGA firmware related information to a central processing unit through IPC after the boards are initialized; Storing and updating FPGA data in a flash memory unit under control of the CPU; After the step, in accordance with the reboot command of the remote control, the boards in the rebooting state, the step of fusing the FPGA data to the FPGA and reconfigured;

상기 각 보드들이 초기화되는 단계는, 시스템에 전원이 공급되면 중앙처리장치가 부트 플레쉬 메모리에 있는 데이터를 읽어들여 부팅하는 과정과, 어플리케이션 플레쉬 메모리로부터 데이터를 읽어들여 OS를 구동하고 각 종 어플리케이션을 수행하는 과정과, 상기 과정 후 FPGA에 관계된 구성 정보를 저장하고 있는 PROM이 FPGA에 퓨징하는 과정을 포함하여 이루어진 것을 특징으로 하고,In the initializing of each board, when the system is powered on, the central processing unit reads and boots data in the boot flash memory, reads data from the application flash memory, runs an OS, and executes various applications. And a PROM storing configuration information related to the FPGA after the process is fused to the FPGA.

상기 중앙처리장치에 전달되는 FPGA 펌웨어 관련 정보들은 FPGA에 퓨징할 데이터와 펌웨어 버전 정보와 업그레이드 대상 보드에 관한 정보를 포함하여 이루어진 것을 특징으로 하고, 상기 FPGA 데이터를 플레쉬 메모리부에 저장하여 업데이트하는 단계는, OS 상에서 이레이즈(Erase)를 명령하여 업데이트 전의 올드버전(Old Version) 공간을 지우는 과정과, 상기 업데이트 전의 올드버전 공간에 FPGA 데이터를 저장하고 뉴버전(New Version) 공간으로 관리하는 과정과, 업데이트 전의 뉴버전 공간을 올드버전 공간으로 관리하는 과정을 포함하여 이루어진 것을 특징으로 하고,The FPGA firmware related information delivered to the CPU includes data to be fused to the FPGA, firmware version information, and information about a board to be upgraded, and the FPGA data is stored and updated in the flash memory unit. The method includes erasing the old version space before the update by instructing the erase on the OS, storing FPGA data in the old version space before the update, and managing the new version space as a new version space. It characterized in that the process consisting of managing the new version space before the update to the old version space,

상기 FPGA 데이터를 FPGA에 퓨징하여 재구성하는 단계는, 원격 제어부의 리부팅 명령에 따라 해당 보드가 리부팅 상태로 되는 과정과, 중앙처리장치가 상기 원격 제어부로부터 전달받은 업데이트된 데이터의 버전 정보와 FPGA에서 읽어온 버전 정보가 동일한지 판단하는 과정과, 상기 판단 결과 동일한 경우에는 중앙처리장치는 던(Done) 신호를 발생하여 다운로딩을 막고, 다른 경우에는 중앙처리장치가 다운로딩을 위한 동작을 수행하는 과정과, 상기 과정 후 플레쉬 메모리부에 저장된 FPGA 데이터가 PROM으로 저장되면, PROM에 저장된 데이터가 FPGA에 퓨징되어 FPGA 재구성을 완료하는 과정을 포함하여 이루어진 것을 특징으로 하고,Fusing and reconfiguring the FPGA data into the FPGA may include a process of bringing the board into a rebooting state according to a rebooting command of a remote control unit, reading the version information of the updated data received from the remote control unit and the FPGA from the central processing unit. Determining whether the on-version information is the same, and if the determination result is the same, the CPU generates a Dun signal to prevent downloading, and in other cases, the CPU performs a downloading operation. And if the FPGA data stored in the flash memory unit is stored in the PROM after the above process, the data stored in the PROM is fused to the FPGA to complete the FPGA reconfiguration.

상기 FPGA에서 읽어온 버전 정보는 4바이트로 구성되는 FPGA 버전 레지스터로부터 중앙처리장치가 읽어오는 것을 특징으로 하고, 상기 중앙처리장치가 다운로딩을 위한 동작을 수행하는 과정은, FPGA 펌웨어 다운로딩 관련의 병렬 I/O 포트를 오픈(Open)하고, PROG 핀을 드라이브하는 과정으로 이루어진 것을 특징으로 하며,The version information read from the FPGA is characterized in that the central processing unit reads from the FPGA version register consisting of 4 bytes, the process of performing the operation for downloading, the central processing unit, The parallel I / O port is open and the PROG pin is driven.

상기 PROM에 저장된 데이터가 FPGA에 퓨징되어 FPGA 재구성을 완료하는 과정은, FPGA가 퓨징이 완료되는지 판단하는 스텝과, 판단 결과 완료되었으면 던(Done) 신호를 발생하여 중앙처리장치에 의하여 I/O 포트를 클로즈(Close)하고 완료되지 않았으면 퓨징이 완료 될 때까지 PROM에 저장된 데이터를 FPGA에 퓨징하는 동작을 일정 횟수 동안 실시하는 스텝을 포함하여 이루어진 것을 특징으로 하고, 상기 일정 횟수 동안 퓨징 동작을 수행하더라도 FPGA로부터 던(Done) 신호가 발생하지 않는 경우에는 원격 제어부가 다시 FPGA 펌웨어를 보드에 전송하는 스텝을 더 포함하여 이루어진 것을 특징으로 한다.When the data stored in the PROM is fused to the FPGA to complete the FPGA reconfiguration, the step of determining whether the FPGA is completed for fusing and generating a Done signal when the determination is completed, causes the I / O port to be generated by the central processing unit. The method is characterized in that it comprises the step of closing the (close) and if not completed, the operation of fusing the data stored in the PROM to the FPGA for a predetermined number of times until the completion of the fusing, the fusing operation for the predetermined number of times Even if the Done signal is not generated from the FPGA, the remote control unit further comprises the step of transmitting the FPGA firmware to the board again.

이하, 첨부된 도면을 참조하여 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 시스템 및 그 방법에 관한 작용과 바람직한 실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the operation and preferred embodiment of the FPGA firmware upgrade system and method through the present invention IPC.

도 2는 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 시스템의 구성도를 보여주는 것인데, 거시적으로 원격 제어부(10)에서 시스템 보드(20)의 펌웨어를 업그레이드 할 수 있는 구성을 가지고 있으며 각 보드는 중앙처리장치(CPU, 21)와 플레쉬 메모리부(22)와 PROM(23)과 FPGA(24)로 구성되어 있다. 한편 시스템에는 각자 기능을 하는 수많은 보드들이 실장되어 있어 업그레이드 될 펌웨어는 다양할 것이나, 업그레이드하는 시스템과 그 방법은 동일하므로 도 1에서 보여주는 것처럼 보드 1만을 가지고 이하 설명한다.Figure 2 shows the configuration of the FPGA firmware upgrade system through the present invention, IPC, has a configuration that can upgrade the firmware of the system board 20 from the remote control unit macroscopically, each board has a central processing unit ( A CPU 21, a flash memory unit 22, a PROM 23, and an FPGA 24 are provided. On the other hand, the system is equipped with a number of boards that each function, the firmware to be upgraded will vary, but the method is the same as the system to upgrade, so only the board 1 as shown in Figure 1 will be described below.

원격 제어부(10)는 시스템 보드를 업그레이드 하기 위해 업그레이드 대상이 되는 보드에서 필요하는 펌웨어를 IPC를 통해 보드에 제공하고, 특정 보드에 업그레이드를 알리는 명령을 내리고, 시스템의 각 보드들에게 리부팅 명령을 하는 역할을 담당한다. 즉, 원격 제어부는 시스템을 구성하는 보드 중에 업그레이드가 요구되는 보드에게 맞는 펌웨어를 상기 해당 보드에게 전달하기 위해 업그레이드 명령을 해당 보드에게 내리고, 전달된 FPGA 펌웨어 데이터가 FPGA에 퓨징(Fusing)시키기 위하여 해당 보드를 리부팅을 시키는 명령을 내리는 것이다.The remote control unit 10 provides firmware required by the board to be upgraded to the board through IPC in order to upgrade the system board, instructs a specific board to upgrade, and reboots each board of the system. Play a role. That is, the remote controller issues an upgrade command to the board to transfer the firmware suitable for the board requiring upgrade among the boards constituting the system to the board, and the transferred FPGA firmware data is used for fusing to the FPGA. It is a command to reboot the board.

시스템 보드(20)에 포함되는 중앙처리장치(21)는 상기 원격 제어부로부터 FPGA 관련 정보를 전달받아 상기 원격 제어부의 리부팅 명령에 따라 다운로딩을 제어하는 역할을 담당한다. 즉, 원격 제어부로부터 IPC를 통하여 FPGA에 퓨징할 데이터들과 전달되는 펌웨어의 버전에 대한 정보와 업그레이드 대상이 되는 보드에 대한 정보를 포함하여 이루어진 FPGA 관련 정보를 중앙처리장치가 전달받아 일정 공간에 저장을 하고 있다가, 원격 제어부가 리부팅 명령을 내리면 FPGA에 퓨징하기 위한 FPGA 펌웨어 데이터를 다운로딩하는 절차를 제어한다. 따라서, 중앙처리장치는 FPGA 펌웨어의 다운로딩에 필요한 포트를 제어하고, 필요한 PROG(프로그래밍의 시작을 알리는 신호)핀과 DONE(정상적으로 프로그래밍이 완료되었음을 알리는 신호) 핀을 제어한다.The central processing unit 21 included in the system board 20 receives the FPGA-related information from the remote control unit and controls the downloading according to the rebooting command of the remote control unit. In other words, the central processing unit receives the FPGA-related information including the data to be fused to the FPGA from the remote control unit to the FPGA through the IPC, the information of the firmware version, and the information of the board to be upgraded, and stores them in a predetermined space. After the remote controller issues a reboot command, it controls the process of downloading FPGA firmware data for fusing to the FPGA. Thus, the central processing unit controls the ports required for downloading the FPGA firmware, and controls the required PROG (signal for start of programming) pin and DONE (signal for normal programming) pins.

플레쉬 메모리부(22)는 상기 중앙처리장치가 정상적으로 다운로딩을 제어하고 시스템 보드의 전반적인 동작을 수행할 수 있도록 도와주고, 상기 중앙처리장치가 전달받은 FPGA 펌웨어 관련 정보 중에 FPGA 데이터를 저장하는 역할을 담당한다. 즉, 플레쉬 메모리부는 중앙처리장치가 전달받은 FPGA 데이터를 원격 제어부의 명령에 따라 다운로딩을 수행하여 FPGA에 퓨징하기 전에 임시적으로 저장하는 역할을 수행하고, 시스템 보드가 부팅되고 해당 OS로 작동하고 어플리케이션을 수행하기 위해 필요한 데이터를 저장하고 있다.The flash memory unit 22 helps the central processing unit to normally control the downloading and perform overall operations of the system board, and stores the FPGA data in the FPGA firmware related information received by the central processing unit. In charge. In other words, the flash memory unit temporarily downloads the FPGA data received from the central processing unit according to the command of the remote controller and temporarily stores it before fusing it to the FPGA. The system board is booted and operated as the corresponding OS. It stores the data needed to perform this.

상기 플레쉬 메모리부(22)는 도 3에서 보여주는 것처럼 부트(Boot) 플레쉬 메모리와 어플리케이션 플레쉬 메모리로 구분되어 구성된다. 상기 부트 플레쉬 메모리는 시스템에 전원이 공급되면 시스템 보드를 부팅시키기 위하여 부트에 관계된 데이터를 저장하고 있고, 상기 어플리케이션 플레쉬 메모리는 시스템 보드를 구동하는 운영체계(OS)와 각종 어플리케이션 데이터와 각 종 저장 공간을 가지고 있다. 특히 상기 어플리케이션 메모리에는 FPGA를 위해 할당된 저장 공간을 포함하고 있어 중앙처리장치가 원격 제어부로부터 전달받은 FPGA 데이터를 저장하는 공간을 가지고 있다.The flash memory unit 22 is divided into a boot flash memory and an application flash memory as shown in FIG. 3. The boot flash memory stores boot-related data for booting a system board when power is supplied to the system. The application flash memory stores an operating system (OS) for driving a system board, various application data, and various storage spaces. Have In particular, the application memory includes a storage space allocated for the FPGA, so that the CPU has a space for storing the FPGA data received from the remote controller.

한편, 상기 어플리케이션 플레쉬 메모리에 포함되어 있어 FPGA 데이터를 저장하는 공간은 업데이트된 최신 버전의 FPGA 데이터를 저장하는 뉴버전(New Version) 저장 공간과 업데이트된 최신 버전의 이전 버전에 해당하는 FPGA 데이터를 저장하는 올드버전(Old Version) 저장 공간으로 나누어져 구성되어 있다. 상기 뉴버전 저장공간과 올드버전 저장공간은 어플리케이션 플레쉬 메모리의 일정 영역에서 두 개의 영역으로 분리되어 새로운 FPGA 펌웨어로 업데이트가 될 때마다 교대로 관리된다. Meanwhile, a space for storing FPGA data included in the application flash memory stores a New Version storage space for storing the latest updated FPGA data and a FPGA data corresponding to a previous version of the updated latest version. It is divided into Old Version storage spaces. The new version storage space and the old version storage space are divided into two areas in a certain area of the application flash memory, and are managed alternately whenever updated with new FPGA firmware.

즉, 어플리케이션 플레쉬 메모리의 일정 영역(공간)에서 두 개의 저장 공간(영역)이 분리되어 있어, 그 중 하나(영역 1)가 뉴버전 저장 공간이고 다른 하나(영역 2)가 올드버전 저장 공간으로 관리되고 있는 상태에서, 새로운 FPGA 데이터가 들어오는 경우에 일단 올드버전 저장 공간(영역 2)을 지우고 들어온 새로운 FPGA 데이터를 저장하여 업데이트 시켜 새로운 뉴버전 저장 공간으로 관리하고, 업데이트 전에 뉴버전이었던 저장 공간(영역 1)은 올드버전 저장 공간으로 관리되는 것이다. 이 때 각 저장 공간을 관리하는 방법은 레지스터를 이용하여 영역 1이 뉴버전으로 관리되는 경우에는 "1" 값이 레지스터에 저장되고 올드버전으로 관리되는 경우에는 "0" 값이 레지스터에 저장되는 형태로 관리될 수 있을 것이다.That is, two storage spaces (areas) are separated from a certain area (space) of the application flash memory, so that one (area 1) is a new version storage space and the other (area 2) is managed as an old version storage space. When new FPGA data is received, the old version storage area (area 2) is deleted and the new FPGA data is stored and updated to manage as a new new version storage space. 1) is managed as the old version storage space. At this time, the method of managing each storage space is that the value "1" is stored in the register when the area 1 is managed by the new version using the register, and the value "0" is stored in the register when the old version is managed by the register. Can be managed as

시스템 보드(20)에 포함되어 있는 PROM(23)은 상기 원격 제어부의 리부팅 명령이 있은 후 상기 중앙처리장치의 제어에 따라 플레쉬 메모리부에 있는 FPGA 데이터를 다운로딩 받아 저장하는 역할을 담당한다. 즉, 원격 제어부에서 해당 FPGA 펌웨어 데이터를 보드에 전달하여 플레쉬 메모리부에 저장이 된 상태에서 FPGA에 상기 데이터를 퓨징하기 위하여 원격 제어부가 해당 보드에 리부팅 명령을 내리면, 상기 중앙처리장치의 제어(다운로딩에 관한 I/O 포트 제어 및 PROG 핀 또는 DONE 핀 제어 등)에 따라 FPGA 데이터를 다운받아 저장하는 것이다.The PROM 23 included in the system board 20 downloads and stores the FPGA data in the flash memory unit under the control of the central processing unit after the reboot command of the remote controller. That is, when the remote controller sends the FPGA firmware data to the board and stores the flash memory in the flash memory unit, when the remote controller issues a reboot command to the board, control of the central processing unit (down) is performed. FPGA data is downloaded and stored according to I / O port control and PROG pin or DONE pin control related to loading.

시스템 보드(20)에 포함되어 있는 FPGA(24)는 상기 FPGA 데이터를 저장하고 있는 PROM에 의해 새로운 FPGA 펌웨어로 퓨징되어 새로운 펌웨어로 업그레이드되어 재구성되는 구성요소이다. 이 FPGA는 상기 PROM에 의해 FPGA 데이터가 모두 퓨징이 되면 다운로딩과 퓨징 작업을 종료하기 위하여 던(DONE, 프로그래밍이 종료되었음을 알리는 신호) 신호를 발생시켜 퓨징 완료를 알리고, 이 신호에 따라 중앙처리장치는 퓨징에 관한 I/O 포트를 클로즈(Close)함으로써 업그레이드 절차가 종료되는 것이다.The FPGA 24 included in the system board 20 is a component that is fused with a new FPGA firmware by a PROM that stores the FPGA data, upgraded, and reconfigured with the new firmware. When the FPGA data is fused by the PROM, the FPGA generates a dun (DONE) signal to complete the downloading and fusing operation to signal the completion of the fusing. Means that the upgrade procedure is terminated by closing the I / O port for fusing.

도 4는 또 하나의 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 방법에 관한 절차도인데, 이를 참조하여 업그레이드 방법에 관련된 동작과 바람직할 실시예를 설명한다.4 is a flowchart illustrating a method for upgrading an FPGA firmware through IPC according to another embodiment of the present invention, with reference to this, an operation related to the upgrade method and a preferred embodiment will be described.

일단 수 개의 보드들을 포함하고 있는 시스템에 전원이 공급되면 각 보드들은 초기화를 수행한다(S10). 이 초기화 작업에 의해서 각 보드들은 살아나서 정상적인 동작을 수행하고 각 보드들이 필요로 하는 FPGA 펌웨어를 원격 제어부로부터 다운받아 업그레이드를 할 수 있는 것이다. Once power is supplied to a system including several boards, each board performs initialization (S10). This initialization allows each board to survive, perform normal operations, and download and upgrade the FPGA firmware required by each board from the remote control.

도 5는 상기 초기화를 수행하는 동작에 관한 절차도를 보여주는 것인데, 이를 참조하여 설명하면, 전원 공급 장치로부터 전원이 공급되어 파워 온(ON)이 되면 중앙처리장치는 플레쉬 메모리부에 포함되어 있는 부트 플레쉬 메모리에 저장되어 있는 부팅에 관련된 데이터를 읽어들여 시스템 보드의 부팅을 수행한다(S11, S12). 상기 부팅이 완료되면 중앙처리장치는 플레쉬 메모리부에 포함되어 있는 어플리케이션 플레쉬 메모리에서 OS를 읽어들여 구동시키고, 시스템 보드에 필요한 각 종 어플리케이션을 읽어들여 수행한다(S13). 상기와 같이 부팅과 각종 어플리케이션이 수행되면 현재 FPGA에 관계된 구성정보를 저장하고 있는 PROM이 FPGA 구성정보를 FPGA에 퓨징하는 동작을 수행함으로써 보드의 초기화 단계를 수행하는 것이다(S14).FIG. 5 is a flowchart illustrating an operation for performing the initialization. Referring to this description, when power is supplied from a power supply device and is powered on, the CPU is booted in a flash memory unit. The booting of the system board is performed by reading data related to booting stored in the flash memory (S11 and S12). When the booting is completed, the central processing unit reads and drives the OS from the application flash memory included in the flash memory unit, and reads and executes various applications required by the system board (S13). When booting and various applications are performed as described above, the PROM, which stores configuration information related to the current FPGA, performs an operation of fusing the FPGA configuration information to the FPGA (S14).

상기 각 보드들이 초기화 단계를 수행하면, 원격 제어부는 IPC를 통해서 업그레이드를 할 시스템 보드에게 FPGA 펌웨어 관련 정보들을 시스템 보드의 중앙처리장치에 전달을 한다(S20). 즉, 시스템 운용자가 업그레이드를 할 시스템 보드를 선택하여 원격 제어부를 통해 업그레이드 대상이 되는 보드에 대한 정보와 업그레이드 될 대상 보드의 FPGA에 퓨징할 FPGA 데이터와 FPGA 펌웨어 버전 정보를 업그레이드 대상 보드의 중앙처리장치에 전달하는 것이다.When each board performs the initialization step, the remote control unit transmits the FPGA firmware related information to the central processing unit of the system board to the system board to be upgraded through the IPC (S20). In other words, the system operator selects the system board to be upgraded, and through the remote control, displays information about the board to be upgraded and FPGA data and FPGA firmware version information to be fused to the FPGA of the board to be upgraded. To pass on.

상기와 같이 FPGA 펌웨어 관련 정보를 전달받은 중앙처리장치는 펌웨어 관련 정보 중에 FPGA 펌웨어 데이터를 플레쉬 메모리부에 할당된 FPGA 저장 공간에 저장을 하여 업데이트를 수행한다(S30). 이 때 FPGA 데이터가 플레쉬 메모리에 저장되어 업데이트되는 과정은 플레쉬 메모리부의 어플리케이션 플레쉬 메모리 영역에 저장이 되면서 일정한 규칙에 의해 저장이 된다.The CPU receiving the FPGA firmware related information as described above stores the FPGA firmware data in the firmware related information in the FPGA storage space allocated to the flash memory unit to perform an update (S30). At this time, the process in which the FPGA data is stored in the flash memory and updated is stored in the application flash memory area of the flash memory unit and stored according to a predetermined rule.

즉, 어플리케이션 플레쉬 메모리의 일정한 공간이 FPGA를 위해 할당되고, 이 공간은 뉴버전 저장 공간과 올드버전 저장 공간으로 구분되어 있는데, 일단 OS 상에서 중앙처리장치가 새로운 FPGA 데이터로 업데이트되기 전에 올드버전 저장 공간으로 관리된 저장 공간을 지우라는 이레이즈(Erase) 명령을 내려 올드버전 공간(영역 1이라 명한다)을 지운다(S31, S32). 그런 후 지워진 상기 올드버전 저장 공간에 상기 새로운 FPGA 데이터를 저장하여 업데이트하고 뉴버전 공간으로 관리를 한다(S33). 즉, 업데이트 전에는 올드버전 저장 공간으로 관리되어 해당 레지스터에 "0" 값이 저장되어 있다가 새로운 FPGA 데이터로 업데이트되어 뉴버전으로 관리됨에 따라 해당 레지스터에 "1" 값으로 변환하여 저장되는 것이다. 상기 영역 1인 올드버전이 뉴버전으로 관리되는 것으로 전환된 후에는 업데이트 전의 뉴버전 공간(영역 2)으로 관리되는 영역은 올드버전 저장 공간으로 관리되는 것이다(S34). 이와 같은 동작에 따라 새로운 FPGA 데이터로 업데이트될 때마다 영역 1과 영역 2는 올드버전 저장 공간과 뉴버전 저장 공간으로 반복 전환되면서 관리되는 것이다. That is, a certain amount of space in the application flash memory is allocated for the FPGA, which is divided into a new version storage space and an old version storage space, which are stored in the old version before the central processing unit is updated with new FPGA data on the OS. An Erase command is issued to erase the storage space managed by the server, and the old version space (called area 1) is erased (S31 and S32). Then, the new FPGA data is stored and updated in the erased old version storage space and managed as a new version space (S33). That is, before updating, it is managed as the old version storage space, and the value "0" is stored in the corresponding register, and then updated with new FPGA data and managed as the new version. After the old version, which is the area 1, is switched to the new version, the area managed by the new version space (area 2) before the update is managed by the old version storage space (S34). As a result of this operation, each time Zone 1 and Zone 2 are updated with the new FPGA data, it is managed by iteratively switching to the old version and the new version.

상기와 같이 새로운 FPGA 데이터가 플레쉬 메모리부의 어플리케이션 플레쉬 메모리에 할당된 저장 공간(영역)에 저장되어 업데이트되면, 상기 FPGA 데이터를 다운로딩하기 위하여 원격 제어부는 시스템 보드에 리부팅 명령을 내린다. 이 명령에 따라 시스템 보드는 리부팅 상태에서 상기 플레쉬 메모리부에 저장되어 있는 FPGA 데이터를 중앙처리장치의 제어에 따라 FPGA에 퓨징하여 FPGA를 재구성하는 동작을 수행함으로써 FPGA 펌웨어를 업그레이드를 한다(S40).When the new FPGA data is stored and updated in the storage space (area) allocated to the application flash memory of the flash memory unit as described above, the remote controller issues a reboot command to the system board to download the FPGA data. In response to this command, the system board upgrades the FPGA firmware by fusing the FPGA data stored in the flash memory unit to the FPGA under the control of the CPU in the rebooting state (S40).

도 7은 상기 FPGA 데이터를 FPGA에 퓨징하여 재구성하는 단계에 관한 절차를 보여주는 것인데, 이를 참조하여 퓨징에 의한 재구성에 관한 절차를 설명하면 다음과 같다.FIG. 7 illustrates a procedure for fusing and reconfiguring the FPGA data into an FPGA. Referring to this procedure, the procedure for reconfiguring by fusing is described as follows.

일단, 플레쉬 메모리에 있는 FPGA 데이터를 FPGA에 퓨징하기 위해서는 부트 상태에서 가능하므로 원격 제어부는 시스템 보드에 리부팅 명령을 내리고, 이에 따라 시스템 보드는 리부팅 상태로 된다(S41). 상기와 같이 리부팅이 되면 중앙처리장치는 원격 제어부로부터 전달받은 업데이트된 FPGA 데이터의 버전 정보와 FPGA에서 읽어온 버전 정보를 비교하여 동일한지 비교한다(S42). 상기 FPGA에서 읽어온 버전 정보는 현재 FPGA 구성정보에 관한 정보를 저장하는 4바이트로 구성된 FPGA 버전 레지스터로부터 중앙처리장치가 읽어오는 것이다.Once the FPGA data in the flash memory can be booted to the FPGA, the remote control unit reboots the system board, and thus the system board is rebooted (S41). When rebooting as described above, the central processing unit compares the version information of the updated FPGA data received from the remote controller with the version information read from the FPGA and compares the same (S42). The version information read from the FPGA is read by the central processing unit from a 4-byte FPGA version register that stores information about current FPGA configuration information.

이와 같이 비교하는 이유는 현재 OS 상에서 구성된 FPGA 구성 정보로부터 알 수 있는 버전 정보와 원격 제어부로부터 전달받은 FPGA 펌웨어에 대한 버전 정보가 동일할 경우에는 굳이 다운로딩을 할 필요가 없어 버전 정보가 다른 경우에만 다운로딩하여 업그레이드를 할 필요성이 있기 때문이다.The reason for this comparison is that if the version information known from the FPGA configuration information configured on the current OS and the FPGA firmware received from the remote controller are the same, there is no need to download it, and only when the version information is different This is because there is a need to download and upgrade.

상기 비교 결과 동일한 경우에는 다운로딩할 필요가 없기 때문에 중앙처리장치는 던(DONE, 프로그래밍의 끝을 알리는 신호)신호를 발생하여 다운로딩되는 것을 막고(S43), 다른 경우에는 중앙처리장치는 PROM으로 상기 플레쉬 메모리에 있는 FPGA 데이터가 다운로딩될 수 있도록 동작을 수행한다.As a result of the comparison, since it is not necessary to download, the central processing unit generates a Dun (DONE, a signal indicating the end of programming) signal and prevents the downloading (S43). An operation is performed to download FPGA data in the flash memory.

상기 중앙처리장치가 다운로딩을 위한 동작을 수행하는 과정에서는 FPGA 펌웨어를 다운로딩하기 위해 관련된 병렬 I/O 포트(플레쉬 메모리부와 PROM과 연결된 포트 및 PROM과 FPGA와 연결된 포트)를 오픈(OPEN)하고, PROG(프로그래밍 시작을 알리는 신호) 핀을 드라이브하여 다운로드가 수행되게 한다(S44). 기와 같이 중앙처리장치가 해당 포트를 오픈하고 PROG 핀을 드라이브한 후 플레쉬 메모리에 저장되어 있는 FPGA 데이터를 PROM으로 다운로딩하여 PROM에 저장한다(S45). 그런 후, PROM은 저장된 FPGA 데이터를 FPGA에 퓨징하여 FPGA 재구성을 완료하게 한다(S46).In the process of the CPU performing the downloading operation, the associated parallel I / O ports (ports connected to the flash memory unit and the PROM and ports connected to the PROM and the FPGA) are opened to download the FPGA firmware. In addition, the PROG (signal indicating the start of programming) is driven to allow the download to be performed (S44). As shown in the figure, the central processing unit opens the corresponding port, drives the PROG pin, and downloads the FPGA data stored in the flash memory to the PROM and stores it in the PROM (S45). Thereafter, the PROM fuses the stored FPGA data to the FPGA to complete the FPGA reconfiguration (S46).

도 8은 상기 PROM에 저장된 데이터가 FPGA에 퓨징되어 FPGA 재구성을 완료하는 과정에 관한 절차도를 보여주는 것인데, 이를 참조하여 FPGA 재구성 완료에 관한 동작과 실시예를 상세히 설명한다.FIG. 8 is a flowchart illustrating a process in which data stored in the PROM is fused to an FPGA to complete an FPGA reconfiguration, which will be described in detail with reference to the operation and the embodiment of the FPGA reconfiguration.

일단 PROM에 의해 FPGA에 계속 퓨징이 되면 FPGA는 퓨징이 완료되었는지 판단을 하여, 퓨징이 완료되었으면 FPGA는 던(DONE)신호를 발생하게 되고, 중앙처리장치는 던 신호 발생을 확인하고 FPGA 퓨징과 관련된 I/O 포트를 모두 클로즈(Close)하여 FPGA 재구성을 완료하고 업그레이드 동작을 종료한다(S51, S53, S54).Once the fusing is continued to the FPGA by the PROM, the FPGA determines whether the fusing is completed, and when the fusing is completed, the FPGA generates a DONE signal. Close all I / O ports to complete FPGA reconfiguration and complete the upgrade operation (S51, S53, S54).

상기 FPGA 퓨징이 완료되지 않은 것으로 판단이 되면 퓨징이 완료될 때까지 PROM으로 하여금 저장된 FPGA 데이터를 FPGA에 퓨징하는 동작을 일정 횟수 동안 실시하게 한다(S52, S55). 상기와 같이 일정 횟수 동안 퓨징 동작을 수행하게 되면 통상적으로 FPGA에 FPGA 데이터라 퓨징이 될 것이다.If it is determined that the FPGA fusing is not completed, the PROM causes a predetermined number of times to fuse the stored FPGA data to the FPGA until the fusing is completed (S52 and S55). If the fusing operation is performed for a predetermined number of times as described above, the FPGA data will generally be fused to the FPGA.

그런데, 상기 일정 횟수 동안 퓨징 동작을 수행하더라도 FPGA로부터 퓨징이 완료되었음을 알리는 던(DONE) 신호가 발생되지 않는 경우에는 정상적으로 원격 제어부로부터 해당 보드에 FPGA 펌웨어가 전달되지 않아 PROM에 FPGA 데이터가 저장되어 있지 않는 것으로 판단되어 다시 원격 제어부는 업그레이드를 대상이 되는 시스템 보드를 확인하여 FPGA 펌웨어를 업그레이드 대상이 되는 시스템 보드에 전달하여 상기와 같은 동작을 동일하게 수행하여 FPGA에 새로운 펌웨어가 퓨징되어 업그레이드가 될 수 있도록 한다.However, even when the fusing operation is performed for the predetermined number of times, when the DONE signal indicating that the fusing is completed is not generated from the FPGA, the FPGA firmware is not transferred from the remote controller to the corresponding board, and thus the FPGA data is not stored in the PROM. If it is determined that it is not, the remote controller checks the system board to be upgraded and delivers the FPGA firmware to the system board to be upgraded to perform the same operation as described above, so that the new firmware is fused to the FPGA to be upgraded. Make sure

상기와 같은 구성수단과 바람직한 실시예를 가지는 본 발명인 IPC를 통한 FPGA 업그레이드 시스템 및 그 방법에 의하면, 종래와 달리 보드를 탈/실장하거나 파워를 오프 할 필요없이 FPGA 펌웨어를 업그레이드를 할 수 있고, 동작 중인 보드에 업그레이드를 할 수 있어 연속적인 서비스를 제공할 수 있는 효과가 있다.According to the FPGA upgrade system and method through the present invention IPC having the above configuration means and preferred embodiments, it is possible to upgrade the FPGA firmware without the need to remove / mount the board or power off unlike the conventional The board can be upgraded to provide continuous service.

도 1은 종래의 에프피지에이 펌웨어 업그레이드 시스템의 구성도이다.1 is a block diagram of a conventional FFI firmware upgrade system.

도 2는 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 시스템의 구성도이다.2 is a block diagram of an FPGA firmware upgrade system through the present invention IPC.

도 3은 본 발명의 구성요소인 플레쉬 메모리의 구성도이다.3 is a block diagram of a flash memory that is a component of the present invention.

도 4는 본 발명인 IPC를 통한 FPGA 펌웨어 업그레이드 방법의 절차도이다.4 is a flowchart illustrating a method for upgrading FPGA firmware through the IPC of the present invention.

도 5는 본 발명의 일 구성수단인 시스템 초기화에 관한 절차도이다.5 is a procedure for system initialization, which is one component of the present invention.

도 6은 본 발명의 일 구성수단인 데이터 업데이트에 관한 절차도이다.6 is a procedure for data update, which is one component of the present invention.

도 7은 본 발명의 일 구성수단인 FPGA 재구성에 관한 절차도이다.7 is a flowchart illustrating an FPGA reconfiguration that is one component of the present invention.

도 8은 본 발명의 일 구성수단인 FPGA 퓨징 완료에 관한 절차도이다.8 is a flowchart illustrating the completion of FPGA fusing, which is one component of the present invention.

Claims (12)

시스템 보드에 FPGA 펌웨어 업그레이드 명령을 내리고 시스템의 각 보드들에게 리부팅 명령을 하는 원격 제어부와;A remote controller which issues an FPGA firmware upgrade command to the system board and reboots each board of the system; 상기 원격 제어부로부터 FPGA 펌웨어 관련 정보를 받아 다운로딩을 제어하는 중앙처리장치와; A central processing unit which receives the FPGA firmware related information from the remote control unit and controls the downloading; 상기 중앙처리장치의 동작을 도와 전달받은 FPGA 데이터를 저장하는 플레쉬 메모리부와;A flash memory unit configured to store the FPGA data received by assisting the operation of the CPU; 상기 원격 제어부의 리부팅 명령이 있은 후 상기 중앙처리장치의 제어에 따라 플레쉬 메모리부에 있는 FPGA 데이터를 전달받아 저장하는 PROM과;A PROM for receiving and storing FPGA data in a flash memory unit under control of the central processing unit after a reboot command of the remote controller; 상기 PROM에 의해 퓨징되어 새로운 FPGA 펌웨어로 업그레이드되어 재구성되는 FPGA를 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 시스템.FPGA firmware upgrade system via the IPC, characterized in that the FPGA is fused by the PROM, upgraded to a new FPGA firmware and reconfigured. 청구항 1에 있어서,The method according to claim 1, 상기 플레쉬 메모리부는 부트(Boot)에 관계된 데이터를 저장하고 있는 부트 플레쉬 메모리와, 보드에서 구동되는 OS와 각 종 어플리케이션 및 FPGA 데이터를 저장하는 어플리케이션 플레쉬 메모리를 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 시스템.The flash memory unit includes a boot flash memory that stores data related to a boot, and an application flash memory that stores an OS running on a board and various applications and FPGA data. Firmware upgrade system. 청구항 2에 있어서,The method according to claim 2, 상기 어플리케이션 플레쉬 메모리의 FPGA 데이터를 저장하는 공간은 뉴버전(New Version) 저장 공간과 올드버전(Old Version) 저장 공간을 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 시스템.The space for storing FPGA data of the application flash memory includes a New Version storage space and an Old Version storage space. 시스템에 전원이 공급되어 각 보드들이 초기화되는 단계와;Powering the system to initialize each board; 상기 보드들이 초기화된 후 원격 제어부가 IPC를 통해 FPGA 펌웨어 관련 정보들을 중앙처리장치에 전달하는 단계와;Transmitting, by a remote controller, FPGA firmware related information to a central processing unit through IPC after the boards are initialized; 상기 중앙처리장치의 제어에 의해 FPGA 데이터를 플레쉬 메모리부에 저장하여 업데이트하는 단계와;Storing and updating FPGA data in a flash memory unit under control of the CPU; 상기 단계 후, 원격 제어부의 리부팅 명령에 따라 해당 보드들이 리부팅 상태에서 FPGA 데이터를 FPGA에 퓨징하여 재구성하는 단계;를 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.After the step, in accordance with a reboot command of the remote control, the FPGA board in the rebooting state, the step of fusing the FPGA data to the FPGA to reconfigure; FPGA firmware upgrade method via IPC comprising the. 청구항 4에 있어서, 상기 각 보드들이 초기화되는 단계는,The method of claim 4, wherein each of the boards is initialized. 시스템에 전원이 공급되면 중앙처리장치가 부트 플레쉬 메모리에 있는 데이터를 읽어들여 부팅하는 과정과, 어플리케이션 플레쉬 메모리로부터 데이터를 읽어들여 OS를 구동하고 각 종 어플리케이션을 수행하는 과정과, 상기 과정 후 FPGA에 관계된 구성 정보를 저장하고 있는 PROM이 FPGA에 퓨징하는 과정을 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.When the system is powered on, the central processing unit reads and boots the data in the boot flash memory, reads data from the application flash memory, runs the OS, and executes various applications. A method for upgrading FPGA firmware over IPC, comprising fusing the FPGA with an associated configuration information. 청구항 4에 있어서,The method according to claim 4, 상기 중앙처리장치에 전달되는 FPGA 펌웨어 관련 정보들은 FPGA에 퓨징할 데이터와 펌웨어 버전 정보와 업그레이드 대상 보드에 관한 정보를 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.The FPGA firmware related information delivered to the CPU includes data to be fused to the FPGA, firmware version information, and information on an upgrade target board. 청구항 4에 있어서, The method according to claim 4, 상기 FPGA 데이터를 플레쉬 메모리부에 저장하여 업데이트하는 단계는, OS 상에서 이레이즈(Erase)를 명령하여 업데이트 전의 올드버전(Old Version) 공간을 지우는 과정과, 상기 업데이트 전의 올드버전 공간에 FPGA 데이터를 저장하고 뉴버전(New Version) 공간으로 관리하는 과정과, 업데이트 전의 뉴버전 공간을 올드버전 공간으로 관리하는 과정을 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.The storing and updating of the FPGA data in the flash memory unit may include erasing an old version space before an update by instructing an erase on the OS, and storing the FPGA data in the old version space before the update. And managing the new version space, and managing the new version space before the update as the old version space. 청구항 4에 있어서, 상기 FPGA 데이터를 FPGA에 퓨징하여 재구성하는 단계는,The method of claim 4, wherein fusing and reconfiguring the FPGA data, 원격 제어부의 리부팅 명령에 따라 해당 보드가 리부팅 상태로 되는 과정과,Rebooting the board according to the remote control reboot command, and 중앙처리장치가 상기 원격 제어부로부터 전달받은 업데이트된 데이터의 버전 정보와 FPGA에서 읽어온 버전 정보가 동일한지 판단하는 과정과,Determining, by the central processing unit, whether the version information of the updated data received from the remote controller and the version information read from the FPGA are the same; 상기 판단 결과 동일한 경우에는 중앙처리장치는 던(Done) 신호를 발생하여 다운로딩을 막고, 다른 경우에는 중앙처리장치가 다운로딩을 위한 동작을 수행하는 과정과,If the determination result is the same, the central processing unit generates a Dun signal to prevent downloading, and in other cases, the central processing unit performs an operation for downloading; 상기 과정 후 플레쉬 메모리부에 저장된 FPGA 데이터가 PROM으로 저장되면, PROM에 저장된 데이터가 FPGA에 퓨징되어 FPGA 재구성을 완료하는 과정을 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.And if the FPGA data stored in the flash memory unit is stored in the PROM after the above process, the data stored in the PROM is fused to the FPGA to complete the FPGA reconfiguration. 청구항 8에 있어서,The method according to claim 8, 상기 FPGA에서 읽어온 버전 정보는 4바이트로 구성되는 FPGA 버전 레지스터로부터 중앙처리장치가 읽어오는 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.The version information read from the FPGA is a FPGA firmware upgrade method, characterized in that the CPU is read from the FPGA version register consisting of 4 bytes. 청구항 8에 있어서,The method according to claim 8, 상기 중앙처리장치가 다운로딩을 위한 동작을 수행하는 과정은, FPGA 펌웨어 다운로딩 관련의 병렬 I/O 포트를 오픈(Open)하고, PROG 핀을 드라이브하는 과정으로 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.The process of downloading by the central processing unit includes opening a parallel I / O port related to FPGA firmware downloading and driving a PROG pin. How to upgrade the firmware. 청구항 8에 있어서,The method according to claim 8, 상기 PROM에 저장된 데이터가 FPGA에 퓨징되어 FPGA 재구성을 완료하는 과정은, FPGA가 퓨징이 완료되는지 판단하는 스텝과, 판단 결과 완료되었으면 던(Done) 신호를 발생하여 중앙처리장치에 의하여 I/O 포트를 클로즈(Close)하고 완료되지 않았으면 퓨징이 완료 될 때까지 PROM에 저장된 데이터를 FPGA에 퓨징하는 동작을 일정 횟수 동안 실시하는 스텝을 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.When the data stored in the PROM is fused to the FPGA to complete the FPGA reconfiguration, the step of determining whether the FPGA is completed for fusing and generating a Done signal when the determination is completed, causes the I / O port to be generated by the central processing unit. The method of upgrading the FPGA firmware through IPC, comprising: closing the step and performing a predetermined number of times of fusing the data stored in the PROM to the FPGA until the fusing is completed. 청구항 11에 있어서,The method according to claim 11, 상기 일정 횟수 동안 퓨징 동작을 수행하더라도 FPGA로부터 던(Done) 신호가 발생하지 않는 경우에는 원격 제어부가 다시 FPGA 펌웨어를 보드에 전송하는 스텝을 더 포함하여 이루어진 것을 특징으로 하는 IPC를 통한 FPGA 펌웨어 업그레이드 방법.If the dun signal does not occur from the FPGA even if the fusing operation is performed for a predetermined number of times, the remote control unit further comprises the step of transmitting the FPGA firmware to the board again characterized in that the FPGA firmware upgrade method via IPC .
KR1020030102019A 2003-12-31 2003-12-31 System and method for upgrading fpga firmware by using ipc KR20050071131A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030102019A KR20050071131A (en) 2003-12-31 2003-12-31 System and method for upgrading fpga firmware by using ipc

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030102019A KR20050071131A (en) 2003-12-31 2003-12-31 System and method for upgrading fpga firmware by using ipc

Publications (1)

Publication Number Publication Date
KR20050071131A true KR20050071131A (en) 2005-07-07

Family

ID=37261114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030102019A KR20050071131A (en) 2003-12-31 2003-12-31 System and method for upgrading fpga firmware by using ipc

Country Status (1)

Country Link
KR (1) KR20050071131A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100804647B1 (en) * 2005-11-15 2008-02-20 삼성전자주식회사 Method and apparatus for booting system using serial flash memory device having parallel flash interface
CN105068482A (en) * 2015-08-11 2015-11-18 上海斐讯数据通信技术有限公司 Control method and control circuit for realizing CPLD online programming and off-line programming
CN111124433A (en) * 2018-10-31 2020-05-08 华北电力大学扬中智能电气研究中心 Program programming device, system and method
CN111722856A (en) * 2019-03-19 2020-09-29 上海汽车集团股份有限公司 Method and device for upgrading firmware in vehicle-mounted microcontroller
CN113867771A (en) * 2021-09-29 2021-12-31 哈尔滨工程大学 Remote firmware upgrading method based on FPGA

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100804647B1 (en) * 2005-11-15 2008-02-20 삼성전자주식회사 Method and apparatus for booting system using serial flash memory device having parallel flash interface
CN105068482A (en) * 2015-08-11 2015-11-18 上海斐讯数据通信技术有限公司 Control method and control circuit for realizing CPLD online programming and off-line programming
CN105068482B (en) * 2015-08-11 2017-12-19 上海斐讯数据通信技术有限公司 Realize the control method and control circuit of CPLD online programmings and off-line programing
CN111124433A (en) * 2018-10-31 2020-05-08 华北电力大学扬中智能电气研究中心 Program programming device, system and method
CN111722856A (en) * 2019-03-19 2020-09-29 上海汽车集团股份有限公司 Method and device for upgrading firmware in vehicle-mounted microcontroller
CN111722856B (en) * 2019-03-19 2024-04-09 上海汽车集团股份有限公司 Method and device for upgrading firmware in vehicle-mounted microcontroller
CN113867771A (en) * 2021-09-29 2021-12-31 哈尔滨工程大学 Remote firmware upgrading method based on FPGA
CN113867771B (en) * 2021-09-29 2024-05-24 哈尔滨工程大学 Remote firmware upgrading method based on FPGA

Similar Documents

Publication Publication Date Title
US8181007B2 (en) Electronic device and method for secure operating system update in embedded system
EP1360592B1 (en) Configurable measuring apparatus
KR101427755B1 (en) Device and method for firmware upgrade using usb
US5664194A (en) Method for autonomously transferring code to a computer without accessing local memory by the central processing unit
WO2007050357A2 (en) Embedded system that boots from usb flash drive
JP4302736B2 (en) Method and system for performing tester equipment module installation and configuration management
EP2096538A1 (en) Communication device and firmware update method thereof
JP2000357095A (en) Method and device for downloading software to embedded system
JP2003345618A (en) Method of switching between tow or more images of firmware
CN101853173A (en) Software upgrading method and device of programmable logic device of distributed system
CN103106083B (en) A kind of loading method of firmware and device
US5940627A (en) User selectable feature set for a flash ROM based peripheral
US5794007A (en) System and method for programming programmable electronic components using board-level automated test equipment
US9870220B2 (en) Memory flash apparatus and method for providing device upgrades over a standard interface
KR20050071131A (en) System and method for upgrading fpga firmware by using ipc
CN1425963A (en) Embedded system software loading device and method
CN111736882B (en) Remote upgrading method of DSP program
CN114072765B (en) Method for container-based virtualization system
CN105183580A (en) Storage method and fault recovery method for bootstrap program, and devices
KR200409311Y1 (en) Apparatus of Downloading a FPGA in the Communication System
CN108572835A (en) A kind of FPGA configuration file online upgrade system
CN113168318A (en) Module, information processing apparatus including the module, and program data update method for updating program data of the module
US11734210B2 (en) Multipurpose USB dongle apparatus for data transfer
CN109062562A (en) The method for down loading of MCU firmware program
CN111258604A (en) Bootloader upgrading system and method

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination