KR20100073662A - Programmer - Google Patents

Programmer Download PDF

Info

Publication number
KR20100073662A
KR20100073662A KR1020080132385A KR20080132385A KR20100073662A KR 20100073662 A KR20100073662 A KR 20100073662A KR 1020080132385 A KR1020080132385 A KR 1020080132385A KR 20080132385 A KR20080132385 A KR 20080132385A KR 20100073662 A KR20100073662 A KR 20100073662A
Authority
KR
South Korea
Prior art keywords
data
verification
read
semiconductor device
fpga
Prior art date
Application number
KR1020080132385A
Other languages
Korean (ko)
Other versions
KR101028594B1 (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 KR1020080132385A priority Critical patent/KR101028594B1/en
Publication of KR20100073662A publication Critical patent/KR20100073662A/en
Application granted granted Critical
Publication of KR101028594B1 publication Critical patent/KR101028594B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/095Error detection codes other than CRC and single parity bit codes
    • H03M13/096Checksums

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

PURPOSE: A programmer device for reducing data validation time by validating and reading data in FPGA at the same time is provided to reduce the load of micom by calculating data validation by hardware after data erasing or data programming about a plurality of semiconductor devices. CONSTITUTION: A plurality of FPGAs(Field Programmable Gate Arrays)(200) is installed on each semiconductor device. A plurality of FPGAs performs data programming or data erasing about the semiconductor device. A micom(100) controls a plurality of FPGAs. The FPGA calculates CheckSum and CRC(Cyclic Redundancy Check) for validating and reading data by hardware at the same time.

Description

프로그래머 장치 {Programmer}Programmer device {Programmer}

본 발명은 프로그래머 장치에 관한 것으로, 보다 상세하게는 프로그램 및 데이터저장 가능한 반도체장치(이하, "반도체 디바이스"라고 한다)의 복수 개를 한번에 데이터 프로그램(write)후 또는 데이터 소거(erase)후 검증을 위한 읽기(read)시에 데이터 검증을 FPGA(Field Programmable Gate Array)에서 하드웨어적으로 연산처리하도록 하여 데이터 읽기와 동시에 데이터 검증이 이루어지도록 구성된 프로그래머 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a programmer device, and more particularly to verifying a plurality of semiconductor devices (hereinafter, referred to as "semiconductor devices") capable of program and data storage after a data program or after erasing data at a time. The present invention relates to a programmer device configured to perform data verification on a hardware programmable field in a field programmable gate array (FPGA) at the time of reading.

종래, ROM과 NOR 플래시 메모리 및 NAND 플래시 메모리 등과 이를 내장하는 반도체장치(이하, 모두 "반도체 디바이스"라고 한다)는 프로그래머(예를 들면 ROM 라이터 또는 프래시 메모리 라이터)에서 16갱(Gang)까지 병렬로 프로그램(write) 및 데이터 검증(verify)을 각각 실시했다. 이러한 프로그래머에서는 프로그램 기능 수행시에 순차 수행이 아닌 병렬 처리로 1갱 처리와 16갱 처리 간에 시간 차이가 거의 없으며, 또한 1갱 마다 1개의 반도체 디바이스인 타겟 디바이스(Target Device)에 프로그램(write), 읽기(read) 및 데이터 검증(verify) 기능이 가능하도록 구성되어 있다.Conventionally, a semiconductor device (hereinafter, referred to as a "semiconductor device") in which a ROM, a NOR flash memory, a NAND flash memory, and the like are embedded therein, in parallel from a programmer (for example, a ROM writer or a flash memory writer) to 16 gangs (Gang) in parallel. Program and data verification were performed respectively. In such programmers, there is almost no time difference between single gang processing and 16 gang processing in parallel processing instead of sequential execution when executing program functions. It is configured to enable read and verify data.

도 1에 도시한 바와 같이, 종래 프로그래머 장치는, 프로그램할 N개의 반도체 디바이스인 타겟 디바이스(30_1~30_N; 30)를 탑재하고, 미도시한 모드설정부를 통하여 프로그램모드를 설정하면 마이컴(10)은 미도시한 버퍼 메모리에 저장된 데이터를 읽어와서 병렬로 N개의 FPGA(20_1~20_N; 20)에 전달하고 FPGA(20_1~20_N; 20)에 의하여 데이터를 타겟 디바이스(반도체 디바이스)(30_1~30_N; 30)에 동시에 프로그램(write)하게 된다(파란색의 점선 참조). As shown in FIG. 1, the conventional programmer apparatus includes target devices 30_1 to 30_N; 30, which are N semiconductor devices to be programmed, and sets the program mode through a mode setting unit not shown. Data stored in a buffer memory (not shown) is read and transferred to N FPGAs 20_1 to 20_N; 20 in parallel, and data is transferred to the target devices (semiconductor devices) 30_1 to 30_N by the FPGAs 20_1 to 20_N; At the same time (see blue dotted line).

그후, 타겟 디바이스(반도체 디바이스)(30_1~30_N; 30)에 프로그램한 내용을 검증할 때는 모든 내용을 미도시한 버퍼 메모리 내용과 비교해서 이상 유무를 알려 주어야 한다. 즉, 프로그램한 내용의 이상 유무를 확인하기 위해서는 모든 타겟 디바이스(반도체 디바이스)(30_1~30_N; 30)에 저장된 내용을 읽어 와서 버퍼 메모리의 내용과 비교하여 이상 유무를 알려 주어야 한다. 이때는 순차적으로 각 갱(gang)마다 개별적으로 읽기(read)하여 데이터 검증(verify; CheckSum 및 CRC)을 마이컴(10)에서 소프트웨어적으로 연산처리하도록 되어 있다(빨강색의 점선 참조). 이에 따라 마이컴(10)은 N개의 타겟 디바이스(반도체 디바이스)(30_1~30_N; 30)에 대하여 N번의 데이터 검증과정을 수행하여야 하므로 마이컴(10)의 부하가 많이 걸리게 된다는 문제가 있다.Subsequently, when verifying the contents programmed in the target devices (semiconductor devices) 30_1 to 30_N; That is, in order to confirm the abnormality of the programmed contents, the contents stored in all the target devices (semiconductor devices) 30_1 to 30_N; 30 should be read and compared with the contents of the buffer memory to inform them of the abnormality. At this time, each gang is sequentially read individually, and data verification (CheckSum and CRC) is performed by the microcomputer 10 in software processing (see the dotted red line). Accordingly, since the microcomputer 10 has to perform N data verification processes on the N target devices (semiconductor devices) 30_1 to 30_N; 30, the microcomputer 10 may have a large load.

따라서, 본 발명은 프로그램 및 데이터저장 가능한 반도체장치(이하, "반도체 디바이스"라고 한다)의 복수 개를 한번에 데이터 프로그램(write)후 또는 데이터 소거후 데이터의 검증을 위한 읽기(read)시에 데이터 검증(verify; CheckSum 및 CRC)을 FPGA에서 하드웨어적으로 연산처리하도록 하여 마이컴의 부하를 줄이며, 또한 데이터 읽기와 동시에 데이터 검증이 이루어지도록 하여 데이터 검증 시간을 단축할 수 있도록 된 프로그래머 장치를 제공하고자 함에 그 목적이 있다.Therefore, the present invention verifies data at the time of reading data for verifying data after writing or data erasing a plurality of semiconductor devices (hereinafter referred to as "semiconductor devices") capable of storing programs and data. (verify; CheckSum and CRC) hardware processing in the FPGA to reduce the load of the microcomputer, and also to provide a programmer device that can reduce the data verification time by performing data verification at the same time, There is a purpose.

상기한 목적을 달성하기 위해 본 발명에 따른 프로그래머 장치는, 탑재되는 프로그램 대상인 복수 개의 반도체 디바이스(300_1~300_N; 300)와, 각각의 반도체 디바이스(300_1~300_N; 300)에 대응하여 설치되어 상기 반도체 디바이스(300_1~300_N; 300)에 데이터 프로그램 또는 데이터 소거를 수행하는 복수 개의 FPGA(200_1~200_N; 200)와, 상기 복수의 FPGA(200_1~200_N; 200)를 제어하여 복수 개의 반도체 디바이스(300_1~300_N; 300)에 대한 프로그램 과정 또는 데이터 소거과정을 제어하는 마이컴(100)을 구비하여 구성되되; 상기 FPGA(200_1~200_N; 200)는, 상기 마이컴(100)의 제어에 따라 상기 반도체 디바이스(300_1~300_N; 300)에 데이터 프로그램후 또는 데이터 소거후, 데이터의 검증을 위한 읽기(read)시에 데이터 읽기와 동시에 데이터 검증을 위한 CheckSum과 CRC를 하드웨어적으로 연산처리하는 것을 특징으로 한다.In order to achieve the above object, the programmer apparatus according to the present invention is provided in correspondence with a plurality of semiconductor devices 300_1 to 300_N; 300 that are to be mounted and corresponding semiconductor devices 300_1 to 300_N; A plurality of FPGAs 200_1 to 200_N; 200 for performing data programs or data erasing on the devices 300_1 to 300_N; 300 and the plurality of FPGA devices 200_1 to 200_N; 200 are controlled to control the plurality of semiconductor devices 300_1 to 300_N; A microcomputer 100 for controlling a program process or a data erase process for 300_N; The FPGAs 200_1 to 200_N 200 may read data for verifying data after data programming or data erasing to the semiconductor devices 300_1 to 300_N 300 under the control of the microcomputer 100. At the same time, it checks hardware and performs CheckSum and CRC for data verification.

여기서, 상기 FPGA(200_1~200_N; 200)는, 듀얼포트 램(210)과, 플래시 메모리 엔진이 내장된 컨트롤러(230)와, 데이터 검증(CheckSum/CRC) 연산을 수행하는 데이터 검증 컴퓨팅 로직(240)과, 누적 연산결과를 저장하는 어큐뮬레이트 컴퓨팅 버퍼(220)를 포함하여 구성된다.Here, the FPGAs 200_1 to 200_N 200 may include dual port RAM 210, a controller 230 having a flash memory engine, and data verification computing logic 240 for performing data verification (CheckSum / CRC) operations. And an accumulating computing buffer 220 for storing the cumulative calculation result.

또한, 상기 컨트롤러(230)는, 상기 반도체 디바이스(300_1~300_N; 300)에 대한 데이터 프로그램후 또는 데이터 소거후 상기 마이컴(100)으로부터 데이터 검증(Check-SUM, CRC) 연산을 하도록 하는 신호와 데이터 읽기 요청신호가 입력되면, 플래시 메모리 엔진을 인에이블하도록 하는 제1과정과, 상기 듀얼포트 램(210)에서 읽기 및 데이터 검증 동작에 필요한 각종 파라미터를 해독하는 제2과정과, 상기 반도체 디바이스(300_1~300_N; 300)에 데이터 읽기 명령 신호를 전송하여 상기 반도체 디바이스(300_1~300_N; 300)로부터 데이터를 읽어와서 상기 듀얼포트 램(210)에 저장하는 제3과정과, 상기 읽어온 데이터에 대한 데이터 검증 연산을 진행하도록 상기 데이터 검증 컴퓨팅 로직(240)을 제어하여 상기 데이터 검증 컴퓨팅 로직(240)에서 상기 읽어온 데이터에 대한 데이터 검증 연산을 수행한 후에 누적 연산 결과를 상기 어큐뮬레이트 컴퓨팅 버퍼(220)에 저장하도록 하는 제4과정을 수행하되, 상기 반도체 디바이스(300_1~300_N; 300)의 전체 데이터 영역을 읽을 때까지 상기 제3과정과 제4과정을 반복하여 수행하며, 상기 마이컴(100)은 상기 FPGA(200_1~200_N; 200)에서 상기 반도체 디바이스(300_1~300_N; 300)의 전체 데이터 영역에 대한 데이터 검증 연산이 완료된 후에 상기 FPGA(200_1~200_N; 200)의 어큐레이트 컴퓨팅 버퍼(220)에 저장된 최종 누적 연산 결과를 읽어와서 원본 검 증(Check-SUM, CRC) 데이터와 비교하여 검증을 완료한다.In addition, the controller 230 may perform a data check (Check-SUM, CRC) operation from the microcomputer 100 after data programming or data erasing for the semiconductor devices 300_1 to 300_N; A first process of enabling a flash memory engine when a read request signal is input, a second process of decoding various parameters required for a read and data verification operation in the dual port RAM 210, and the semiconductor device 300_1; A third process of reading data from the semiconductor devices 300_1 to 300_N; 300 by transmitting a data read command signal to the dual port RAM 210 and transmitting the data read command signal to the 300_N; The data verify computing logic 240 controls the data verify computing logic 240 to perform a verify operation, thereby performing data verify operation on the data read from the data verify computing logic 240. Perform a fourth process of storing the cumulative calculation result in the accumulating computing buffer 220 after performing the third process until the entire data area of the semiconductor devices 300_1 to 300_N; And the fourth process are repeated, and the microcomputer 100 performs the data verification operation on the entire data area of the semiconductor devices 300_1 to 300_N; 300 in the FPGAs 200_1 to 200_N; The final cumulative calculation result stored in the accumulating computing buffer 220 of (200_1 to 200_N; 200) is read and compared with the original check-sum (CRC) data to complete verification.

상기와 같이 구성된 본 발명에 의하면, 복수 개의 반도체 디바이스를 한번에 데이터 프로그램(write)한 후에 또는 데이터 소거 후에 데이터의 검증을 위한 읽기(read)시에 데이터 검증을 FPGA에서 하드웨어적으로 연산처리하도록 함으로써 마이컴의 부하를 줄일 수 있게 된다. 또한, FPGA에서 데이터 검증을 위한 데이터 읽기와 동시에 데이터 검증이 이루어지므로 데이터 검증 시간을 단축할 수 있게 된다.According to the present invention configured as described above, the microcomputer by processing the data verification hardware in the FPGA at the time of the data read (write) for the verification of the data after the data program (write) at one time or after data erasing It is possible to reduce the load. In addition, data verification is performed simultaneously with reading data for data verification in the FPGA, thereby reducing data verification time.

이하, 첨부 도면을 참조하여 본 발명의 바람직한 실시예에 따른 프로그래머 장치에 대하여 상세히 설명하기로 한다.Hereinafter, a programmer device according to an exemplary embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 프로그램장치의 데이터 쓰기(program) 및 데이터 검증 과정을 설명하기 위한 도면이다.2 is a view for explaining a data writing (program) and data verification process of the program device according to the present invention.

동 도면에 도시한 바와 같이, 본 발명의 프로그래머 장치는, 프로그램할 N개의 반도체 디바이스인 타겟 디바이스(반도체 디바이스)(300_1~300_N; 300)를 탑재하고, 미도시한 모드설정부를 통하여 프로그램모드를 설정하면 마이컴(10)은 미도시한 버퍼 메모리에 저장된 데이터를 읽어와서 병렬로 N개의 FPGA(200_1~200_N; 200)에 전달하고 FPGA(200_1~200_N; 200)에 의하여 데이터를 타겟 디바이스(300_1~300_N; 300)에 동시에 프로그램(write)하게 된다(파란색의 점선 참조). As shown in the figure, the programmer apparatus of the present invention mounts target devices (semiconductor devices) 300_1 to 300_N; 300, which are N semiconductor devices to be programmed, and sets the program mode through a mode setting unit (not shown). The microcomputer 10 reads data stored in a buffer memory (not shown) and transfers the data to N FPGAs 200_1 to 200_N; 200 in parallel and transmits the data by the FPGAs 200_1 to 200_N; 200 to the target devices 300_1 to 300_N. ; Write to 300 at the same time (see the blue dotted line).

그후, 타겟 디바이스(반도체 디바이스)(300_1~300_N; 300)에 프로그램한 내 용을 검증할 때는 순차적으로 각 갱(gang)마다 개별적으로 읽기(read)와 동시에 데이터 검증(verify; CheckSum 및 CRC)을 FPGA(200_1~200_N; 200)에서 하드웨어적으로 연산처리하도록 되어 있다(빨강색의 점선 참조). Then, when verifying the contents programmed in the target device (semiconductor device) 300_1 to 300_N; 300, the data is verified simultaneously with each gang, and the data verification (CheckSum and CRC) is performed. In the FPGAs 200_1 to 200_N; 200, arithmetic processing is performed in hardware (see red dotted line).

따라서, 본 발명에서는 데이터 읽기(read)와 동시에 데이터 검증을 FPGA에서 하드웨어적으로 수행하게 되므로 마이컴의 부하를 줄일 수 있게 되고, 전체적인 데이터 검증 시간도 단축할 수 있게 된다.Accordingly, in the present invention, since data verification is performed in hardware at the same time as reading data, the load of the microcomputer can be reduced, and the overall data verification time can be shortened.

도 3은 본 발명에 따른 프로그램 장치에서 데이터 검증 절차를 설명하기 위한 구체적인 블록 구성을 도시한 도면이다.3 is a block diagram illustrating a detailed block diagram for explaining a data verification procedure in a program apparatus according to the present invention.

동 도면에 도시한 바와 같이, 본 발명에 따른 FPGA(200)는 듀얼포트 램(210)과, 플래시 메모리 엔진이 내장된 컨트롤러(230)와, 데이터 검증 연산을 수행하는 데이터 검증(CheckSum/CRC) 컴퓨팅 로직(240)과, 누적 연산결과를 저장하는 어큐뮬레이트 컴퓨팅 버퍼(220)를 포함하여 구성된다.As shown in the figure, the FPGA 200 according to the present invention includes a dual port RAM 210, a controller 230 having a built-in flash memory engine, and data verification (CheckSum / CRC) for performing data verification operations. Computing logic 240 and an accumulating computing buffer 220 for storing the cumulative calculation results.

본 발명에 따른 프로그램 장치의 데이터 검증 절차에서, 먼저 마이컴(100)은 데이터 검증(Check-SUM, CRC) 연산을 하도록 FPGA(200)의 컨트롤러(230)의 플래시 메모리 엔진을 인에이블하도록 요청한다(①)In the data verification procedure of the program device according to the present invention, first the microcomputer 100 requests to enable the flash memory engine of the controller 230 of the FPGA 200 to perform a data verification (Check-SUM, CRC) operation ( ①)

그후, 마이컴(100)은 FPGA(200)에 데이터 읽기를 하도록 요청한다(②). 이에 따라, FPGA(200)의 컨트롤러(230)는 듀얼포트 램(210)에서 읽기 및 데이터 검증 동작에 필요한 각종 파라미터를 해독한다(③).After that, the microcomputer 100 requests the FPGA 200 to read data (②). Accordingly, the controller 230 of the FPGA 200 decodes various parameters necessary for the read and data verify operation in the dual port RAM 210 (③).

이어, FPGA(200)의 컨트롤러(230)는 타겟 디바이스(300)에 데이터 읽기 명령 신호를 전송하고(④), 이에 따라 타겟 디바이스(300)로부터 데이터를 읽어오며(⑤) 또한 이 읽어온 데이터를 듀얼포트 램(210)에 저장한다(⑥).Subsequently, the controller 230 of the FPGA 200 transmits a data read command signal to the target device 300 (④), thereby reading data from the target device 300 (⑤) and also reading the read data. Stored in the dual port RAM 210 (⑥).

그후, FPGA(200)의 컨트롤러(230)는 상기 읽어온 데이터에 대한 데이터 검증(Check-SUM, CRC) 연산을 진행하도록 데이터 검증 컴퓨팅 로직(240)을 제어하고(⑦), 이에 따라 데이터 검증 컴퓨팅 로직(240)에서 상기 읽어온 데이터에 대한 데이터 검증 연산을 수행한 후에 누적 연산 결과를 어큐뮬레이트 컴퓨팅 버퍼(220)에 저장하도록 한다(⑧).Thereafter, the controller 230 of the FPGA 200 controls the data verification computing logic 240 to perform a data verification (Check-SUM, CRC) operation on the read data (7), and accordingly, data verification computing. After performing a data verification operation on the read data in the logic 240, the cumulative calculation result is stored in the accumulating computing buffer 220 (8).

이어, 타겟 디바이스(300)의 전체 데이터영역을 읽을 때까지 상기한 ④, ⑤, ⑥, ⑦, ⑧의 과정을 반복한다.Subsequently, the processes ④, ⑤, ⑥, ⑦, and ⑧ are repeated until the entire data area of the target device 300 is read.

그후, 타겟 디바이스(300)의 전체 데이터영역의 데이터에 대한 검증이 완료되면, 상기 마이컴(100)은 FPGA(200)의 어큐뮬레이트 컴퓨팅 버퍼(220)에 저장된 최종 누적 연산 결과를 읽어와서 원본 검증(Check-SUM, CRC) 데이터와 비교하여 검증을 완료한다(⑨).Thereafter, when verification of the data of the entire data area of the target device 300 is completed, the microcomputer 100 reads the final cumulative calculation result stored in the accumulating computing buffer 220 of the FPGA 200 to verify the original. (Check-SUM, CRC) Compared with the data to complete the verification (⑨).

도 4는 본 발명에 따른 프로그램 장치에서 데이터 읽기 타이밍 차트이다.4 is a data read timing chart in a program device according to the present invention.

동 도면에서, 구간 ①은 리드 데이터 셋업 시간(Read Data Setup Time)으로, 타겟 디바이스(300)에 OE(Out enable) 신호가 입력된 후 데이터가 타겟 디바이스(300)로부터 출력되기까지 시간이다.In the figure, section ① is a read data setup time, which is a time from when the OE (Out enable) signal is input to the target device 300 to output data from the target device 300.

또, 해저드(Hazard) 구간 ②에서는 두 개 이상의 신호가 입/출력될 때 각각의 회로의 지연시간차가 발생하는 것으로 유효한 데이터가 아니다.In the hazard section ②, when two or more signals are inputted / outputted, a delay time difference of each circuit occurs, which is not valid data.

그후, 해저드 구간 ② 이후에 데이터가 안정되며, 유효한 시점에서 데이터 버스의 데이터를 컨트롤러(230)의 플래시 메모리 엔진에서 읽는다(구간 ③).After that, the data is stabilized after the hazard period ②, and the data of the data bus is read by the flash memory engine of the controller 230 at the valid time point (section ③).

이어, 유효 데이터를 읽은 이후에 남은 읽기 사이클 시간(Read Cycle Time)동안 Check-SUM 연산을 한다(구간 ④).Subsequently, a check-sum operation is performed for the remaining read cycle time after reading valid data (section ④).

그후, 유효 데이터를 읽은 이후에 남은 읽기 사이클 시간 동안 CRC 연산을 한다(구간 ⑤).After that, CRC operation is performed for the remaining read cycle time after reading valid data (section ⑤).

이어, 해저드(Hazard) 구간 ⑥에서는 유효한 데이터가 아니다.Subsequently, it is not valid data in the hazard section ⑥.

여기서, 클럭 시간은 절대 시간이므로 읽기 사이클 시간도 역시 절대 시간이다. 따라서, FPGA(200)에서 정해진 시간 안에서 읽기와 동시에 데이터 검증 연산도 동시에 이루어진다.Here, the clock time is absolute time, so the read cycle time is also absolute time. Therefore, the data verification operation is simultaneously performed at the same time as the reading in the FPGA 200.

이상 설명한 바와 같이 본 발명에 의하면, 복수 개의 반도체 디바이스를 한번에 데이터 프로그램(write) 후에 데이터 소거 후에 데이터의 검증을 위한 읽기(read)시에 데이터 검증을 FPGA에서 하드웨어적으로 연산처리하도록 함으로써 마이컴의 부하를 줄일 수 있게 된다. 또한, FPGA에서 데이터 검증을 위한 데이터 읽기와 동시에 데이터 검증이 이루어지므로 데이터 검증 시간을 단축할 수 있게 된다.As described above, according to the present invention, a load of a microcomputer is caused to be hardware-calculated by the FPGA at the time of reading data for data verification after a data program is written at a time after the data program is written. Can be reduced. In addition, data verification is performed simultaneously with reading data for data verification in the FPGA, thereby reducing data verification time.

한편, 상기한 특정 실시예에는 타겟 디바이스에 데이터를 프로그램하는 경우에 대하여 설명하였지만, 본 발명은 데이터 소거의 경우에도 마찬가지로 적용할 수 있다는 것을 당해 기술분야에 통상의 지식을 가진 자라면 용이하게 이해할 수 있을 것이다.On the other hand, although the above-described specific embodiment has been described in the case of programming data to the target device, it can be easily understood by those skilled in the art that the present invention can be similarly applied to data erasure. There will be.

한편, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 수정 및 변형하여 실시할 수 있는 것 이다. 이러한 수정 및 변형이 첨부하는 특허청구범위에 포함되는 것이라면 본 발명에 속하는 것임은 자명할 것이다.On the other hand, the present invention is not limited to the above-described specific embodiments, but can be modified and modified in various ways within the scope not departing from the gist of the present invention. If such modifications and variations are included in the appended claims, it will be apparent that they belong to the present invention.

도 1은 종래 프로그래머 장치의 데이터 쓰기(program) 및 데이터 검증과정을 설명하기 위한 도면이다.1 is a view for explaining a data writing (program) and data verification process of the conventional programmer device.

도 2는 본 발명에 따른 프로그램장치의 데이터 쓰기(program) 및 데이터 검증과정을 설명하기 위한 도면이다.2 is a view for explaining a data writing (program) and data verification process of the program device according to the present invention.

도 3은 본 발명에 따른 프로그램 장치에서 데이터 검증 절차를 설명하기 위한 구체적인 블록 구성을 도시한 도면이다.3 is a block diagram illustrating a detailed block diagram for explaining a data verification procedure in a program apparatus according to the present invention.

도 4는 본 발명에 따른 프로그램 장치에서 데이터 읽기 타이밍 차트이다.4 is a data read timing chart in a program device according to the present invention.

< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>

100 : 마이컴 200,200_1~200_N : FPGA100: micom 200,200_1 ~ 200_N: FPGA

210 : 듀얼포트 램 200 : 어큐뮬레이트 컴퓨팅 버퍼210: dual port RAM 200: accumulate computing buffer

230 : 컨트롤러 240 : 에러체크 컴퓨팅 로직230: controller 240: error check computing logic

300 : 타겟 디바이스(반도체 디바이스)300: target device (semiconductor device)

Claims (3)

탑재되는 프로그램 대상인 복수 개의 반도체 디바이스와, 각각의 반도체 디바이스에 대응하여 설치되어 상기 반도체 디바이스에 데이터 프로그램 또는 데이터 소거를 수행하는 복수 개의 FPGA와, 상기 복수의 FPGA를 제어하여 복수 개의 반도체 디바이스에 대한 프로그램 과정 또는 데이터 소거과정을 제어하는 마이컴을 구비하여 구성되되,A plurality of semiconductor devices to be mounted, a plurality of FPGAs installed corresponding to each semiconductor device to perform data programs or data erasing on the semiconductor devices, and a program for a plurality of semiconductor devices by controlling the plurality of FPGAs It is configured with a microcomputer to control the process or data erase process, 상기 FPGA는, 상기 마이컴의 제어에 따라 상기 반도체 디바이스에 데이터 프로그램후 또는 데이터 소거후, 데이터의 검증을 위한 읽기(read)시에 데이터 읽기와 동시에 데이터 검증을 위한 CheckSum과 CRC를 하드웨어적으로 연산처리하는 것을 특징으로 하는 프로그래머 장치.The FPGA performs hardware processing on CheckSum and CRC for data verification simultaneously with data reading at the time of data reading or data erasing to the semiconductor device under the control of the microcomputer. Programmer device, characterized in that. 제1항에 있어서,The method of claim 1, 상기 FPGA는, 듀얼포트 램과, 플래시 메모리 엔진이 내장된 컨트롤러와, 데이터 검증(CheckSum/CRC) 연산을 수행하는 데이터 검증 컴퓨팅 로직과,누적 연산결과를 저장하는 어큐뮬레이트 컴퓨팅 버퍼를 포함하여 구성되는 것을 특징으로 하는 프로그래머 장치.The FPGA includes a dual port RAM, a controller with a built-in flash memory engine, data verification computing logic for performing data verification (CheckSum / CRC) operations, and an accumulating computing buffer for storing cumulative calculation results. Programmer device characterized in that. 제2항에 있어서,The method of claim 2, 상기 컨트롤러는, 상기 반도체 디바이스에 대한 데이터 프로그램후 또는 데 이터 소거후 상기 마이컴으로부터 데이터 검증(Check-SUM, CRC) 연산을 하도록 하는 신호와 데이터 읽기 요청신호가 입력되면, 플래시 메모리 엔진을 인에이블하도록 하는 제1과정과, 상기 듀얼포트 램에서 읽기 및 데이터 검증 동작에 필요한 각종 파라미터를 해독하는 제2과정과, 상기 반도체 디바이스에 데이터 읽기 명령 신호를 전송하여 상기 반도체 디바이스로부터 데이터를 읽어와서 상기 듀얼포트 램에 저장하는 제3과정과, 상기 읽어온 데이터에 대한 데이터 검증 연산을 진행하도록 상기 데이터 검증 컴퓨팅 로직을 제어하여 상기 데이터 검증 컴퓨팅 로직에서 상기 읽어온 데이터에 대한 데이터 검증 연산을 수행한 후에 누적 연산 결과를 상기 어큐뮬레이트 컴퓨팅 버퍼에 저장하도록 하는 제4과정을 수행하되, 상기 반도체 디바이스의 전체 데이터 영역을 읽을 때까지 상기 제3과정과 제4과정을 반복하여 수행하며,The controller may be configured to enable a flash memory engine when a signal for performing data check (SUM) or a CRC operation is input from the microcomputer after data programming or data erasing for the semiconductor device. And a second process of decoding various parameters required for a read and data verification operation in the dual port RAM, and transmitting data read command signals to the semiconductor device to read data from the semiconductor device and to read the dual port. Storing data in a RAM; and controlling the data verification computing logic to perform a data verification operation on the read data, and performing a data verification operation on the read data in the data verification computing logic. Accumulate the result of the computing buffer But performs a fourth process to store, and performs repeatedly the third process and the fourth process to reading the entire data area of the semiconductor device, 상기 마이컴은 상기 FPGA에서 상기 반도체 디바이스의 전체 데이터 영역에 대한 데이터 검증 연산이 완료된 후에 상기 FPGA의 어큐레이트 컴퓨팅 버퍼에 저장된 최종 누적 연산 결과를 읽어와서 원본 검증(Check-SUM, CRC) 데이터와 비교하여 검증을 완료하는 것을 특징으로 하는 프로그래머 장치.After the data verification operation for the entire data area of the semiconductor device is completed in the FPGA, the microcomputer reads the result of the final cumulative operation stored in the accumulating computing buffer of the FPGA and compares it with original verification (Check-SUM, CRC) data. And a programmer device for completing verification.
KR1020080132385A 2008-12-23 2008-12-23 Programmer KR101028594B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080132385A KR101028594B1 (en) 2008-12-23 2008-12-23 Programmer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080132385A KR101028594B1 (en) 2008-12-23 2008-12-23 Programmer

Publications (2)

Publication Number Publication Date
KR20100073662A true KR20100073662A (en) 2010-07-01
KR101028594B1 KR101028594B1 (en) 2011-04-13

Family

ID=42636584

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080132385A KR101028594B1 (en) 2008-12-23 2008-12-23 Programmer

Country Status (1)

Country Link
KR (1) KR101028594B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014130056A1 (en) * 2013-02-21 2014-08-28 Advantest Corporation A test architecture having multiple fpga based hardware accelerator blocks for testing multiple duts independently
WO2014130057A1 (en) * 2013-02-21 2014-08-28 Advantest Corporation A tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block
US9810729B2 (en) 2013-02-28 2017-11-07 Advantest Corporation Tester with acceleration for packet building within a FPGA block
US9952276B2 (en) 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US10288681B2 (en) 2013-02-21 2019-05-14 Advantest Corporation Test architecture with a small form factor test board for rapid prototyping
US10884847B1 (en) 2019-08-20 2021-01-05 Advantest Corporation Fast parallel CRC determination to support SSD testing
US10976361B2 (en) 2018-12-20 2021-04-13 Advantest Corporation Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes
US11137910B2 (en) 2019-03-04 2021-10-05 Advantest Corporation Fast address to sector number/offset translation to support odd sector size testing
US11237202B2 (en) 2019-03-12 2022-02-01 Advantest Corporation Non-standard sector size system support for SSD testing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100258574B1 (en) * 1997-12-30 2000-06-15 윤종용 Semiconductor memory device and its program/erase verifying method
KR100337006B1 (en) 1998-11-17 2002-05-17 김 만 복 Method and apparatus for design verification of electronic circuits
KR100778459B1 (en) * 2006-05-26 2007-11-21 (주) 컴파스 시스템 Apparatus and method for programming, erasing and verificating a pluality of electronic devices

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11009550B2 (en) 2013-02-21 2021-05-18 Advantest Corporation Test architecture with an FPGA based test board to simulate a DUT or end-point
WO2014130057A1 (en) * 2013-02-21 2014-08-28 Advantest Corporation A tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block
KR20150126364A (en) * 2013-02-21 2015-11-11 주식회사 아도반테스토 A test architecture having multiple fpga based hardware accelerator blocks for testing multiple duts independently
WO2014130056A1 (en) * 2013-02-21 2014-08-28 Advantest Corporation A test architecture having multiple fpga based hardware accelerator blocks for testing multiple duts independently
US9952276B2 (en) 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US10161993B2 (en) 2013-02-21 2018-12-25 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block
US10162007B2 (en) 2013-02-21 2018-12-25 Advantest Corporation Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently
US10288681B2 (en) 2013-02-21 2019-05-14 Advantest Corporation Test architecture with a small form factor test board for rapid prototyping
US9810729B2 (en) 2013-02-28 2017-11-07 Advantest Corporation Tester with acceleration for packet building within a FPGA block
US10976361B2 (en) 2018-12-20 2021-04-13 Advantest Corporation Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes
US11137910B2 (en) 2019-03-04 2021-10-05 Advantest Corporation Fast address to sector number/offset translation to support odd sector size testing
US11237202B2 (en) 2019-03-12 2022-02-01 Advantest Corporation Non-standard sector size system support for SSD testing
US10884847B1 (en) 2019-08-20 2021-01-05 Advantest Corporation Fast parallel CRC determination to support SSD testing

Also Published As

Publication number Publication date
KR101028594B1 (en) 2011-04-13

Similar Documents

Publication Publication Date Title
KR101028594B1 (en) Programmer
KR100918707B1 (en) Flash memory-based memory system
US20160034351A1 (en) Apparatus and Method for Programming ECC-Enabled NAND Flash Memory
US20090307537A1 (en) Flash storage device with data correction function
US20100083050A1 (en) Error detection control system
KR20060103317A (en) Method and device for switching between at least two operating modes of a processor unit
US20060020764A1 (en) Information processing apparatus including non-volatile memory device, non-volatile memory device and methods thereof
KR20150047821A (en) Semiconductor memory device, memory system including the same and operating method thereof
CN102592679B (en) Flash memory chip and testing method thereof
JP2002297562A (en) Microcomputer, write and delete method
US5651128A (en) Programmable integrated circuit memory comprising emulation means
KR101401379B1 (en) Nand flash memory io method and embedded system using the same
US9142301B2 (en) Data writing method and system
CN105138308A (en) Method and device for updating register
US11816039B2 (en) Multi-mode protected memory
KR101764509B1 (en) Charge storage memory device capable of verifying reliability of controller
JP6910739B2 (en) Evaluation analysis target memory device and memory evaluation analysis system
KR20110131714A (en) Flash systen for controlling data copy and method thereof
JP2009223435A (en) Data storage method and device, and program
KR101679477B1 (en) Method and System for Verify using Embedded DDR Memory to Reduce the Proving Time for Memory Driving Peripheral circuit
KR101212762B1 (en) Semiconductor Apparatus and Method for testing there of
KR20130032151A (en) Flash memory device capable of verifying reliability using bypass path, and system and method of verifying reliability using that device
US11798601B2 (en) Read only memory (ROM)-emulated memory (REM) profile mode of memory device
US20170052786A1 (en) Reconfigurable processor and conditional execution method for the same
KR20010052868A (en) Method and system for updating user memory in emulator systems

Legal Events

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

Payment date: 20150212

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170124

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180205

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200310

Year of fee payment: 10