KR101569001B1 - Fpga 데이터 구성 시스템 및 그 방법 - Google Patents

Fpga 데이터 구성 시스템 및 그 방법

Info

Publication number
KR101569001B1
KR101569001B1 KR1020130104804A KR20130104804A KR101569001B1 KR 101569001 B1 KR101569001 B1 KR 101569001B1 KR 1020130104804 A KR1020130104804 A KR 1020130104804A KR 20130104804 A KR20130104804 A KR 20130104804A KR 101569001 B1 KR101569001 B1 KR 101569001B1
Authority
KR
South Korea
Prior art keywords
fpga
image data
flash memory
processing unit
central processing
Prior art date
Application number
KR1020130104804A
Other languages
English (en)
Other versions
KR20150027391A (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 KR1020130104804A priority Critical patent/KR101569001B1/ko
Publication of KR20150027391A publication Critical patent/KR20150027391A/ko
Application granted granted Critical
Publication of KR101569001B1 publication Critical patent/KR101569001B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 지문인식을 이용한 FPGA 데이터 구성 시스템 및 그 방법에 관한 것으로서, FPGA(Field Programmable Gate Array) 이미지를 포함하는 FPGA 이미지 데이터를 저장하는 플래시 메모리(Flash memory); FPGA 이미지 데이터를 읽고, 하나 이상의 FPGA 중에서 특정 FPGA가 선택되기 위한 제어신호를 생성하여 제어신호와 대응하는 FPGA를 지정하는 중앙처리장치(Central Processing Unit); 중앙처리장치에 의해 지정되는 경우, 플래시 메모리로부터 직접 FPGA 이미지 데이터를 다운로드 받아 구동되는 하나 이상의 FPGA; 및 FPGA, 플래시 메모리 및 중앙처리장치 각각과 망구조 형태로 상호 연결되는 IO 버스(Bus);를 포함한다.
상기와 같은 본 발명에 따르면, FPGA, 프로세서, 메모리의 연결을 하드웨어 상태에서 직접 공유시켜, 프로세서가 메모리에 저장된 FPGA 이미지의 데이터를 읽는 것만으로, 프로세서를 거치지 않고 FPGA 이미지(프로그램) 데이터가 직접 FPGA로 전송됨으로써, 메모리 공유를 통해 원가를 절감시키고, 하드웨어의 크기를 줄이며, 시스템 부팅속도를 현저히 단축시키는 효과가 있다.

Description

FPGA 데이터 구성 시스템 및 그 방법{SYSTEM FOR CONFIGURATING FPGA DATA AND METHOD THEREFOR}
본 발명은 FPGA 데이터 구성 시스템 및 그 방법에 관한 것으로 더욱 상세하게는, FPGA를 적용하고 있는 모든 시스템에서 비용을 절감하고 시스템의 부팅 속도를 향상시키는 기술에 관한 것이다.
FPGA(Field Programmable Gate Array)는 잘 알려진 바와 같이, 사용자 요구에 맞게 프로그래밍하여 사용할 수 있는 일종의 주문형 반도체(ASIC)이다. 그 주된 동작 특성을 살펴보면 FPGA는 소위, 휘발성 메모리와 같은 것으로서 전원이 꺼지면 구성되어 있던 하드웨어정보가 사라지고, 전원이 켜지면 사용자가 다시 하드웨어정보를 재구성하는 것이다. 여기서, 기존에 FPGA를 구성하는 방식에는 JTAG (Joint Test Action Group) 포트와 ROM이 이용된다.
근래에 이동 단말이 다른 이동 단말들 또는 유선 네트워크에 연결된 유선 단말기들과의 통신 수행을 가능하게 하는 다양한 무선 액세스 기술이 제안되었고, 대한민국 공개특허 제2012-0058876호(LTE 기지국 에뮬레이터의 베이스밴드 처리 장치)와, 대한민국 공개특허 제2009-0099372호(이미지 데이터 전송 장치 및 이를 포함하는 시스템)외에 다수의 선행특허가 개시된바 있다.
전술한 선행특허에는, FPGA가 담당할 기능이 수록된 이미지 프로그램을 저장하고 있다가 해당 용도에 맞추어 FPGA에 적절한 이미지 프로그램을 다운로드하여 동작하도록 하는 제어용 컴퓨터의 구성, 복수의 분할 이미지 데이터를 동시에 출력하는 FPGA 및 복수의 분할 이미지 데이터를 임시로 저장하는 버퍼 메모리가 개시되어 있다.
도 1은 FPGA와 Flash 장치가 하나씩 구성된 종래의 플랫폼 구조를 도시한 도면이다. 도 1에 도시된 바와 같이, CPU는 시스템에서 전원이 입력 된 후 주변 장치들을 초기화하는 역할을 수행하고, Flash는 FPGA가 구동 될 수 있도록 FPGA 동작 이미지(프로그램)를 저장하는 기능을 제공하며, FPGA는 프로그램 된 특정 기능을 수행하는데, 초기에 이미지(프로그램)를 Configuration 과정을 통해 동작이 가능해 진다.
또한, 전원 인가 후, CPU가 시스템 부트 과정을 수행하게 되는데, 이때 부트 과정에서 FPGA의 이미지(프로그램)를 FPGA로 전달해주어 Configuration 하며, CPU는 이를 위해 Flash에서 데이터를 읽는 기능을 수행하고, 하드웨어 Bus로 직접 FPGA에 연결되어 있어 CPU가 읽기 과정만을 수행하는 경우, FPGA는 Configuration 이 완료 된다.
그러나, 종래의 구조는 FPGA에 전용 Flash를 구비함에 따라 저장장치 개수가 증가하여 부피가 커지고, 가격이 상승하는 문제점이 있다.
이를 개선하기 위해, 시스템 내부 CPU에 공용 Flash를 두어 CPU 이미지(프로그램), FPGA 이미지(프로그램), 각종 DB 등을 함께 사용하는 구조가 제안된바 있으나, 함께 공용으로 사용하게 시스템을 구현하게 되면, CPU에서 FPGA 이미지(프로그램)를 읽어서 FPGA로 보내주는 전달 시간이 길어져 부트 시간이 늘어나는 문제점이 있다.
본 발명의 목적은, FPGA, 프로세서, 메모리의 연결을 하드웨어 상태에서 직접 공유시켜, 프로세서가 메모리에 저장된 FPGA 이미지의 데이터를 읽는 것만으로, 프로세서를 거치지 않고 FPGA 이미지(프로그램) 데이터가 직접 FPGA로 전송됨으로써, 부트 시간을 현저히 단축시키며, 시스템의 크기를 줄이고, 재료비 및 소모 전력을 절감시키는데 그 목적이 있다.
이러한 기술적 과제를 달성하기 위한 본 발명의 FPGA 데이터 구성 시스템은, FPGA(Field Programmable Gate Array) 이미지를 포함하는 FPGA 이미지 데이터를 저장하는 플래시 메모리(Flash memory); FPGA 이미지 데이터를 읽고, 하나 이상의 FPGA 중에서 특정 FPGA가 선택되기 위한 제어신호를 생성하여 제어신호와 대응하는 FPGA를 지정하는 중앙처리장치(Central Processing Unit); 중앙처리장치에 의해 지정되는 경우, 플래시 메모리로부터 직접 FPGA 이미지 데이터를 다운로드 받아 구동되는 하나 이상의 FPGA; 및 FPGA, 플래시 메모리 및 중앙처리장치 각각과 망구조 형태로 상호 연결되는 IO 버스(Bus);를 포함한다.
그리고, 전술한 시스템을 기반으로 하는 본 발명의 FPGA 데이터 구성 방법은, 플래시 메모리가 FPGA 이미지 데이터를 보관하는 (a) 단계; 부팅명령이 입력되는 경우 중앙처리장치가 플래시 메모리에 저장된 FPGA 이미지 데이터를 읽고, 특정 FPGA를 선택하는 제어신호를 생성하는 (b) 단계; 중앙처리장치가 IO 버스를 통해 제어신호를 수신하여 FPGA의 상태정보에 따라서, 순차적으로 또는 FPGA 이미지 데이터가 필요한 FPGA를 지정하는 (c) 단계; 및 지정된 FPGA가 플래시 메모리로부터 FPGA 이미지 데이터를 직접 다운로드 받아 구동하는 (d) 단계;를 포함한다.
상기와 같은 본 발명에 따르면, FPGA, 프로세서, 메모리의 연결을 하드웨어 상태에서 직접 공유시켜, 프로세서가 메모리에 저장된 FPGA 이미지의 데이터를 읽는 것만으로, 프로세서를 거치지 않고 FPGA 이미지(프로그램) 데이터가 직접 FPGA로 전송됨으로써, 메모리 공유를 통해 원가를 절감시키고, 하드웨어의 크기를 줄이며, 시스템 부팅속도를 현저히 단축시키는 효과가 있다.
도 1은 FPGA와 Flash 장치가 하나씩 구성된 종래의 플랫폼 구조를 도시한 도면.
도 2는 본 발명에 따른 FPGA 데이터 구성 시스템을 도시한 구성도.
도 3은 본 발명에 따른 FPGA 데이터 구성 시스템의 플래시 메모리가 복수개록 구성된 것을 도시한 도면.
도 4는 본 발명에 따른 FPGA 데이터 구성 방법을 도시한 순서도.
도 5는 본 발명에 따른 FPGA 데이터 구성 방법의 제S40단계 이후 과정을 도시한 순서도.
본 발명의 구체적인 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
도 2에 도시된 바와 같이 본 발명에 따른 FPGA 데이터 구성 시스템(S)은, 플래시 메모리(Flash memory)(100), 중앙처리장치(Central Processing Unit: CPU)(200), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array: FPGA)(300) 및 IO 버스(Bus)(400)를 포함하여 구성된다.
먼저, 플래시 메모리(100)는 FPGA 이미지(프로그램) 데이터를 저장한다.
또한, 중앙처리장치(200)는 FPGA 이미지 데이터를 읽고, 하나 이상의 FPGA 중에서 특정 FPGA를 선택하기 위한 제어신호를 생성하여 특정 FPGA(300)를 지정하며, FPGA 이미지 데이터를 플래시 메모리(100)에서 읽기 동작을 수행하도록 제어한다.
이때, 도 3에 도시된 바와 같이, 플래시 메모리(100)가 복수개로 구성된 경우, 중앙처리장치(200)가 특정 FPGA(300)가 지정한 이후, FPGA 이미지 데이터가 저장된 플래시 메모리(100)에서 읽기 동작을 수행하도록 제어한다.
또한, FPGA(300)는 복수개로 구성되어 중앙처리장치(200)에 의해 지정되는 경우, 플래시 메모리(100)로부터 직접 FPGA 이미지 데이터를 다운로드 받아 구동한다.
그리고, IO 버스(400)는 그 Width(폭)이 x1, x8, x16 또는 x32 중에 어느 하나로 구성되어, 플래시 메모리(100), 중앙처리장치(200) 및 FPGA(300) 각각과 망구조 형태로 상호 연결된다.
구체적으로, 중앙처리장치(200)가 발생시키는 제어신호는, IO 버스(400)를 통해 제공받은 FPGA의 상태정보와 부합하도록 순차적으로 발생하거나, FPGA 이미지 데이터의 업데이트가 필요한 FPGA(300)를 타깃으로 지정하여 발생한다.
또한, 중앙처리장치(200)는 FPGA(300)의 구동을 감지하는 경우, 플래시 메모리(100) 및 FPGA(300)로부터 FPGA 이미지 데이터를 인식하고, 상기 플래시 메모리(100) 및 FPGA(300)로부터 인식한 각각의 FPGA 이미지 데이터를 비교하여 FPGA(300)가 갱신된 경우, 갱신된 FPGA 이미지 데이터와 부합하도록 FPGA(300)를 재 구동시킨다.
그리고, 중앙처리장치(200)가 발생시키는 제어신호는, IO 버스(400)를 통해 제공받은 FPGA의 상태정보에 따라, 순차적으로 또는 FPGA 이미지 데이터가 필요한 FPGA(300)를 선택적으로 지정함과 동시에, 지정된 FPGA(300)가 다운로드 받는 FPGA 이미지 데이터가 저장된 플래시 메모리(100)를 지정한다.
이하, 도 4를 참조하여 본 발명에 따른 FPGA 데이터 구성 방법에 대해 살피면 아래와 같다.
먼저, 플래시 메모리(100)가 FPGA 이미지 데이터를 저장한다(S10).
이어서, 부팅명령이 입력되는 경우, 중앙처리장치(200)가 플래시 메모리(100)에 저장된 FPGA 이미지 데이터를 읽고, 특정 FPGA(300)를 선택하는 제어신호를 생성한다(S20).
뒤이어, 중앙처리장치(200)가 IO 버스(400)를 통해 제어신호를 수신하여 FPGA의 상태정보와 부합하도록 순차적으로 또는 FPGA 이미지 데이터가 필요한 FPGA(300)를 선택적으로 지정한다(S30).
그리고, 지정된 FPGA(300)가 플래시 메모리(100)로부터 FPGA 이미지 데이터를 직접 다운로드 받아 구동한다(S40).
이하, 도 5를 참조하여 본 발명에 따른 FPGA 데이터 구성 방법의 제S40단계 이후 과정을 살피면 아래와 같다.
제S40단계 이후, FPGA(300)가 구동된 경우, 중앙처리장치(200)가 플래시 메모리(100) 및 FPGA(300)로부터 FPGA 이미지 데이터를 인식한다(S50).
이어서, 중앙처리장치(200)가 플래시 메모리(100) 및 FPGA(300)로부터 인식한 각각의 FPGA 이미지 데이터를 비교하여 FPGA가 갱신되었는지 여부를 판단한다(S60).
그리고, 제S60단계의 판단결과, FPGA가 갱신된 경우, 중앙처리장치(200)가 갱신된 FPGA 이미지 데이터와 부합하도록 FPGA(300)가 재 구동하도록 제어한다(S70).
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등 물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
S: FPGA 데이터 구성 시스템
100: 플래시 메모리 200: 중앙처리장치
300: FPGA 400: IO 버스

Claims (8)

  1. FPGA(Field Programmable Gate Array) 이미지를 포함하는 FPGA 이미지 데이터를 저장하는 플래시 메모리(Flash memory);
    상기 FPGA 이미지 데이터를 읽고, 하나 이상의 FPGA 중에서 특정 FPGA가 선택되기 위한 제어신호를 생성하여 제어신호와 대응하는 FPGA를 지정하는 중앙처리장치(Central Processing Unit);
    상기 중앙처리장치에 의해 지정되는 경우, 상기 플래시 메모리로부터 직접 FPGA 이미지 데이터를 다운로드 받아 구동되는 하나 이상의 FPGA; 및
    상기 FPGA, 플래시 메모리 및 중앙처리장치 각각과 망구조 형태로 상호 연결되는 IO 버스(Bus);를 포함하되,
    상기 제어신호는,
    상기 IO 버스를 통해 제공받은 FPGA의 상태정보에 따라, 순차적으로 또는 FPGA 이미지 데이터가 필요한 FPGA를 선택적으로 지정함과 동시에, 지정된 FPGA가 다운로드 받는 FPGA 이미지 데이터가 저장된 플래시 메모리를 지정하는 것을 특징으로 하는 FPGA 데이터 구성 시스템.
  2. 제1항에 있어서,
    상기 제어신호는,
    상기 IO 버스를 통해 제공받은 FPGA의 상태정보와 부합하도록 순차적으로 발생하거나, FPGA 이미지 데이터가 필요한 FPGA를 타깃으로 지정하여 발생하는 것을 특징으로 하는 FPGA 데이터 구성 시스템.
  3. 제1항에 있어서,
    상기 중앙처리장치는,
    상기 FPGA의 구동을 감지하는 경우, 상기 플래시 메모리 및 FPGA로부터 FPGA 이미지 데이터를 인식하고,
    상기 플래시 메모리 및 FPGA로부터 인식한 각각의 FPGA 이미지 데이터를 비교하여 FPGA가 갱신된 경우, 갱신된 FPGA 이미지 데이터와 부합하도록 FPGA를 재 구동시키는 것을 특징으로 하는 FPGA 데이터 구성 시스템.
  4. 제1항에 있어서,
    상기 플래시 메모리는,
    복수개로 구비되는 것을 특징으로 하는 FPGA 데이터 구성 시스템.
  5. 삭제
  6. (a) 플래시 메모리가 FPGA 이미지 데이터를 보관하는 단계;
    (b) 부팅명령이 입력되는 경우 중앙처리장치가 플래시 메모리에 저장된 FPGA 이미지 데이터를 읽고, 특정 FPGA를 선택하는 제어신호를 생성하는 단계; 및
    (c) 중앙처리장치가 IO 버스를 통해 상기 제어신호를 수신하여 FPGA의 상태정보에 따라서, 순차적으로 또는 FPGA 이미지 데이터가 필요한 FPGA를 지정하는 단계;를 포함하고,
    상기 제어신호는,
    상기 IO 버스를 통해 제공받은 FPGA의 상태정보에 따라, 순차적으로 또는 FPGA 이미지 데이터가 필요한 FPGA를 선택적으로 지정함과 동시에, 지정된 FPGA가 다운로드 받는 FPGA 이미지 데이터가 저장된 플래시 메모리를 지정하는 것을 특징으로 하는 FPGA 데이터 구성 방법.
  7. 제6항에 있어서,
    상기 (c) 단계 이후,
    (d) 지정된 FPGA가 플래시 메모리로부터 FPGA 이미지 데이터를 직접 다운로드 받아 구동하는 단계;를 포함하는 것을 특징으로 하는 FPGA 데이터 구성 방법.
  8. 제7항에 있어서,
    상기 (d) 단계이후,
    (e) FPGA가 구동된 경우, 중앙처리장치가 플래시 메모리 및 FPGA로부터 FPGA 이미지 데이터를 인식하는 단계;
    (f) 중앙처리장치가 플래시 메모리 및 FPGA로부터 인식한 각각의 FPGA 이미지 데이터를 비교하여 FPGA가 갱신되었는지 여부를 판단하는 단계; 및
    (g) 상기 (f) 단계의 판단결과, FPGA가 갱신된 경우, 중앙처리장치가 갱신된 FPGA 이미지 데이터와 부합하도록 FPGA가 재 구동하도록 제어하는 단계;를 더 포함하는 것을 특징으로 하는 FPGA 데이터 구성 방법.
KR1020130104804A 2013-09-02 2013-09-02 Fpga 데이터 구성 시스템 및 그 방법 KR101569001B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130104804A KR101569001B1 (ko) 2013-09-02 2013-09-02 Fpga 데이터 구성 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130104804A KR101569001B1 (ko) 2013-09-02 2013-09-02 Fpga 데이터 구성 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20150027391A KR20150027391A (ko) 2015-03-12
KR101569001B1 true KR101569001B1 (ko) 2015-11-17

Family

ID=53022734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130104804A KR101569001B1 (ko) 2013-09-02 2013-09-02 Fpga 데이터 구성 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101569001B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018123494A1 (de) 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür

Also Published As

Publication number Publication date
KR20150027391A (ko) 2015-03-12

Similar Documents

Publication Publication Date Title
US11080066B2 (en) Method for starting embedded apparatus, and apparatus
US9507604B2 (en) Boot method and boot system
TWI661357B (zh) 用於啟動多重開機裝置及多重開機微處理器之方法
US20140331034A1 (en) Embedded system boot from a storage device
CN107690630B (zh) 计算设备中的桥配置
US11157264B2 (en) Electronic device and method for controlling update of electronic device
CN105718281A (zh) 一种触摸屏固件升级方法及装置
WO2017000567A1 (zh) 一种实现bootrom升级的方法及装置
CN106293849B (zh) 一种应用更新方法和终端
WO2016033941A1 (zh) Boot在线升级装置及方法
US9477484B2 (en) System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
CN111026417A (zh) 一种嵌入式设备的升级方法及嵌入式设备
US8458730B2 (en) Multi-level driver configuration
US20210173634A1 (en) Vehicle control device and program update system
US20190065293A1 (en) Stack Safety for Independently Defined Operations
KR101569001B1 (ko) Fpga 데이터 구성 시스템 및 그 방법
US20150066168A1 (en) Apparatus and method for updating operating system in programmable logic controller
WO2017173924A1 (zh) 切换文件***的方法及装置
US8452949B1 (en) Optical boot to eliminate changing BIOS to boot externally attached storage device
CN106980513A (zh) 一种双引导文件的切换方法及装置
CN113010195B (zh) 一种***升级方法、存储介质及终端设备
JP2017084001A (ja) 自動車用電子制御装置
KR100673999B1 (ko) 이동통신 단말기의 부팅방법
JP2009080736A (ja) Plc構築方法
TWI556171B (zh) 主機板及開機的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191111

Year of fee payment: 5