KR100478567B1 - Flash-ROM programming method using boundary scan chain - Google Patents
Flash-ROM programming method using boundary scan chain Download PDFInfo
- Publication number
- KR100478567B1 KR100478567B1 KR10-2002-0049659A KR20020049659A KR100478567B1 KR 100478567 B1 KR100478567 B1 KR 100478567B1 KR 20020049659 A KR20020049659 A KR 20020049659A KR 100478567 B1 KR100478567 B1 KR 100478567B1
- Authority
- KR
- South Korea
- Prior art keywords
- flash rom
- boundary scan
- programming
- data
- ram
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 플래시ROM의 인시스템 프로그램 방식인 타겟기반 프로그래밍 방식과 BST 프로그래밍 방식의 2가지 장점을 혼합하여 기존의 방식에 비해 단위 시간당 더 많은 개수의 플래시ROM을 프로그램할 수 있는 플래시 프로그래밍 방법에 관한 것으로서, 구체적으로, BST 프로그래밍 방식을 사용함에 있어서 종래의 디버그용 경계주사열이 아닌 경계주사열을 이용하여 타겟에 프로그래밍을 함으로써 프로그램 속도를 향상시키고, BST 장비를 사용하되 타겟기반 프로그래밍 방식을 사용함으로써 동시 프로그래밍이 가능한 타겟의 수를 증가시킨다. The present invention relates to a flash programming method capable of programming a larger number of flash ROMs per unit time than a conventional method by mixing two advantages of a target-based programming method and a BST programming method, which is an in-system programming method of a flash ROM. Specifically, in using the BST programming method, the program speed is improved by programming the target by using the boundary scan sequence rather than the conventional debug boundary scan sequence, and simultaneously using the target-based programming scheme using the BST equipment. Increase the number of programmable targets.
Description
본 발명은 플래시ROM 기록방법에 관한 것으로, 특히 플래시ROM이 타겟에 장착된 상태에서 프로그램할 수 있는 인시스템 프로그래밍(in-system programming) 방법에 관한 것이다.The present invention relates to a flash ROM recording method, and more particularly to an in-system programming method that can be programmed while the flash ROM is mounted on a target.
최근에 플래시ROM(flash ROM)를 사용하는 기기가 증가하는 추세에 있다. 이에 따라서 플래시ROM에 내용을 기록하는 플래시ROM 프로그램 장치의 수요가 증가하고 있다. Recently, the number of devices using flash ROM is increasing. Accordingly, there is an increasing demand for a flash ROM program device for writing contents to a flash ROM.
플래시ROM 프로그램 장치는 크게 2가지의 형태로 나뉘게 된다. 플래시ROM이 제품에 장착되지 않은 상태에서 일괄적으로 프로그래밍하는 방식과, 장착이 된 상태에서 프로그램하는 인시스템 프로그래밍(in-system programming) 방식의 2가지이다. Flash ROM program devices are divided into two types. There are two ways to program in a batch without the ROM installed in the product, and in-system programming to program in the attached state.
전자의 방식은 일반적으로 인시스템 프로그래밍방식에 비해서 빠르고 대량의 플래시ROM을 한 번에 프로그램할 수 있다는 장점이 있지만, 수동으로 프로그램 장치에 플래시ROM을 붙이는 공정이 추가된다는 단점이 있다. 이 경우에는 플래쉬ROM이 장착된 후에 불량이 발생하였을 경우에는 다시 프로그램을 하기가 번거롭다. The former method has the advantage of being able to program a large quantity of flash ROMs at once compared to the in-system programming method, but has the disadvantage of adding the process of manually attaching the flash ROM to the program device. In this case, if a defect occurs after the flash ROM is mounted, it is cumbersome to program again.
반면에, 인시스템 프로그래밍은 속도면에서는 상대적으로 느리지만 수동으로 플래시ROM을 붙이는 공정이 필요없다는 장점이 있다. 그리고, 경계주사포트 (boundary scan port(JTAG port))라는 업계 표준의 인터페이스를 사용함으로써 공정에 적용하기도 용이하다.In-system programming, on the other hand, has the advantage of being relatively slow in speed but eliminating the need to manually attach the flash ROM. It is also easy to apply to the process by using an industry standard interface called boundary scan port (JTAG port).
경계주사(boundary scan)란, 원래는 인쇄회로기판(PCB)의 패턴을 테스트하기 위한 기술 중 하나로서 IEEE 1149.1 표준으로 정해져 있는 테스트용이화 설계기법(DFT: design for testability)을 의미한다. IEEE-standard 1149.1은 경계주사셀(boundary scan cell)을 소자의 입출력 단자에 연결하여, 경계주사열(boundary scan chain)을 구성함으로써, 소자의 입출력 단자에서의 제어도와 관측도를 향상시키는 것이다.Boundary scan refers to design for testability (DFT), which is originally defined in the IEEE 1149.1 standard as one of the techniques for testing a printed circuit board (PCB) pattern. The IEEE-standard 1149.1 improves control and observation at the input / output terminals of the device by connecting a boundary scan cell to the input / output terminals of the device to form a boundary scan chain.
인시스템 프로그래밍 방식은 다시 크게 두 가지로 나뉘게 된다. 한 가지는 일반적으로 ICD (in-circuit debugger)로 불리는 디버그장비에서 사용하는 타겟기반(target-based) 프로그래밍 방식이고, 다른 하나는 경계주사 테스트(BST, boundary scan test) 장비에서 사용하는 방식(이하 "BST 프로그래밍 방식")이다. In-system programming is again divided into two main categories. One is the target-based programming method used in debug equipment, commonly called in-circuit debugger (ICD), and the other is used in boundary scan test (BST) equipment. BST programming ").
타겟기반 프로그래밍 방식은 타겟보드(11)의 CPU(12)에 존재하는 디버그용 경계주사열(13)을 사용하여 플래시ROM(10)에 프로그램을 하되 타겟보드(11)에 존재하는 RAM(15)에 플래시ROM 프로그래밍용 코드를 업로드하여 CPU(12)가 직접 플래시ROM(10)에 프로그램을 하는 방식이다(도1 참조).The target-based programming method uses the debug boundary scan sequence 13 present in the CPU 12 of the target board 11 to program the flash ROM 10 but the RAM 15 present in the target board 11. This is a system in which the CPU 12 directly programs the flash ROM 10 by uploading code for flash ROM programming (see Fig. 1).
후자의 BST 프로그래밍 방식은 타겟의 테스트용(BST용) 경계주사열을 사용하여 프로그램을 하는 방식으로서, BST용 경계주사셀이 내장되어 있는 소자(CPU)의 핀을 이용하여 프로그래밍을 하는 방식이다. 특히 타겟의 CPU에는 디버그용 경계주사열과 BST용 경계주사열이 존재하는데 BST 프로그래밍 방식에서는 후자의 경계주사열을 사용하게 된다(도2 참조).The latter BST programming method uses a target test (BST) boundary scan sequence for programming, using a pin of a device (CPU) in which a BST boundary scan cell is embedded. In particular, there is a boundary scan string for debugging and a boundary scan string for BST in the CPU of the target. In the BST programming method, the latter boundary scan string is used (see FIG. 2).
한편, 상기 타겟기반 프로그래밍 방식은 BST 프로그래밍 방식에 비해서 같은 TCK (test clock)를 사용했을 때 더 빠른 프로그램 속도를 보인다. 그러나 TCK의 상한이 경계주사 테스트 장비보다 낮다. 예를 들면 퀄컴사(Qualcomm)의 msm5000 칩에 대해서는 디버그용 경계주사열의 TCK 상한은 10MHz인데 반하여 테스트용(BST용) 경계주사열의 상한은 20MHz이다. 그리고, ICD장비와 같이 모든 탭(tap) 신호를 타겟에 따라 독립적으로 제어하려고 하는 경우에는 동시에 프로그램하는 장비의 개수에 비례하여 속도가 감소한다. 이와 같은 문제점을 개선하기 위해서 BST 프로그래밍 방식에서는 도3과 같은 방식을 도입하였다. 도3은 USB콘트롤러(43)(31)의 복수의 탭(TAP1, TAP2)을 통해 복수의 플래시ROM에 동시에 프로그램하는 것을 나타내고 있다. On the other hand, the target-based programming method shows a faster program speed when using the same TCK (test clock) than the BST programming method. However, the upper limit of the TCK is lower than the boundary scan test equipment. For example, for the Qualcomm msm5000 chip, the TCK upper limit of the debug boundary scan sequence is 10 MHz, whereas the upper limit of the boundary scan sequence for test (BST) is 20 MHz. In addition, when trying to independently control all the tap signals according to a target, such as ICD equipment, the speed decreases in proportion to the number of equipments programmed simultaneously. In order to improve this problem, the BST programming method is illustrated in FIG. 3. 3 shows simultaneous programming to a plurality of flash ROMs through a plurality of tabs TAP1 and TAP2 of the USB controller 43 and 31.
이렇게 BST 프로그래밍 방식의 장점은 전술한 TCK의 문제와, 동시에 프로그램하는 타겟의 수가 증가하더라도 속도의 감소가 없다는 점이다. 그러나 모든 프로그램의 절차를 병렬적으로 처리하지 못하기 때문에 속도가 느리다는 단점이 있다. 이러한 문제점들 때문에 인시스템 프로그램의 중요한 장점들에도 불구하고 이 방식을 실제 공정에 도입하기에는 여러 장애요인이 있었던 것이 사실이다. The advantage of the BST programming method is that there is no problem of the TCK, and there is no decrease in speed even if the number of targets to be programmed simultaneously increases. However, it is slow because it does not process all the programs in parallel. Because of these problems, despite the significant advantages of in-system programs, there are many obstacles to introducing this approach into the actual process.
본 발명은 인시스템 프로그래밍 방식을 공정에 도입할 경우에 발생하는 전술한 문제점들을 해결하기 위하여 창출되었다. 구체적으로, BST 프로그래밍 방식을 사용함에 있어서 종래의 디버그용 경계주사열이 아닌 BST용 경계주사열을 이용하여 타겟에 프로그래밍을 함으로써 프로그램 속도를 향상시키고, BST 장비를 사용하되 타겟기반 프로그래밍 방식을 사용함으로써 동시 프로그래밍이 가능한 타겟의 수를 증가시킨다. The present invention was created to solve the above-mentioned problems that arise when introducing an in-system programming approach into the process. Specifically, in using the BST programming method, the program speed is improved by programming the target using the BST boundary scanning sequence instead of the conventional debug boundary scanning sequence, and using the BST equipment, but using the target-based programming method. Increase the number of targets that can be programmed simultaneously.
따라서, 본 발명의 목적은 플래시ROM의 인시스템 프로그램 방식인 타겟기반 프로그래밍 방식과 BST 프로그래밍 방식의 2가지 장점을 혼합하여 기존의 방식에 비해 단위 시간당 더 많은 개수의 플래시ROM을 프로그램할 수 있는 플래시ROM 프로그래밍 방법을 제공하는 것이다.Accordingly, an object of the present invention is to mix two advantages of the target-based programming method and the BST programming method, which is an in-system programming method of the flash ROM, and to program a larger number of flash ROMs per unit time than the conventional method. It is to provide a programming method.
발명의 요지The gist of the invention
본 발명의 플래시ROM 기록장치는 기존의 인시스템 프로그램 장치의 두 가지 장점을 혼합하여 기존의 프로그램 장치에 비해 상대적으로 느린 속도를 개선하고 동시 프로그램이 가능한 타겟의 수를 늘리고자 하는 것이다.The flash ROM recording apparatus of the present invention is intended to improve the relatively slow speed and increase the number of targets that can be programmed simultaneously by combining two advantages of the existing in-system program apparatus.
(1) 속도의 개선(1) speed improvement
속도의 개선을 위해, 타겟에 프로그램을 하는 방식은 IEEE 1149.1 표준에 따른다(즉, BST용 경계주사열을 사용한다). 그 이유는 디버그용 경계주사열을 사용할 경우에는 TCK를 10MHz이상으로 올리기 힘들기 때문이다. 이는 내부의 디버그용 경계주사열의 고유한 특성에 기인한 것이다. 본 발명에서는 BST용 경계주사열을 사용하는 대신에 타겟기반 프로그래밍 방식을 사용한다. 이는 모든 프로그래밍 절차를 경계주사열을 사용해서 처리하는 것이 아니라 타겟에 있는 RAM에 프로그래밍을 위한 코드를 전송하여 CPU에서 이를 수행하는 방식이다. 이렇게 하는 이유는 프로그래밍에 필요한 모든 프로세스를 직렬화된 데이터스트림으로 처리할 경우 시간의 지연이 심하기 때문이다. 따라서 CPU를 활용하여 RAM에 프로그램을 수행하는 명령어(instruction)를 업로드하고, RAM의 일정 영역에 데이터를 계속 스캔열을 사용하여 업로드하고, CPU에서는 독립적으로 데이터를 플래시ROM에 업로드한다. 이 방식이 좋은 이유는 플래시ROM에 프로그래밍하는 절차가 RAM에 프로그래밍하는 절차보다 더 복잡하고 시간이 오래 걸리기 때문이다. 이와 같은 방식은 RAM을 일종의 버퍼로 사용하는 것과 동일하다. For speed improvement, the way of programming the target is in accordance with the IEEE 1149.1 standard (i.e., using the boundary scan sequence for BST). The reason for this is that it is difficult to raise the TCK beyond 10 MHz when using debug boundary scan sequences. This is due to the inherent characteristics of the internal debug border scan. In the present invention, instead of using the boundary scan sequence for BST, a target-based programming method is used. This is done by the CPU by sending code for programming to the RAM in the target rather than processing all programming procedures using the boundary scan sequence. The reason for doing this is that there is a significant time lag when all the processes required for programming are processed into serialized data streams. Therefore, the CPU utilizes a CPU to upload an instruction to execute a program to the RAM, continuously uploads data to a predetermined area of the RAM using a scan sequence, and the CPU independently uploads the data to the flash ROM. This approach is good because programming in flashROM is more complicated and time consuming than programming in RAM. This is the same as using RAM as a kind of buffer.
(2) 동시 프로그램하는 타겟의 수(2) Number of targets to program simultaneously
ICD 장비의 경우 동시에 프로그램하는 타겟의 수가 늘어날수록 그에 비례하여 속도가 감소하게 된다. 그러나 앞에서 설명한 것과 같이 BST 장비의 경우는 그렇지 않다. 본 발명은 기본적으로 BST 장비의 구성(configuration)을 따르지만, 그러나 본 발명의 경우에는 속도의 향상을 위해서 따로 병렬 채널을 사용할 필요가 없기 때문에 이에 해당하는 대역폭으로 더 많은 타겟을 프로그램할 수 있게 된다. 즉, 타겟기반 프로그래밍 방식을 사용하기 때문에 플래시ROM의 제어신호를 CPU에서 병렬적으로 보내주기 때문에 따로 병렬 채널을 만들어서 이 신호를 제어할 필요가 없고, 이에 해당하는 핀을 다른 타겟을 제어하기 위해 사용할 수 있다. In the case of ICD equipment, the speed decreases in proportion to the number of targets programmed simultaneously. However, as mentioned earlier, this is not the case for BST equipment. The present invention basically follows the configuration of the BST equipment, but in the case of the present invention, since it is not necessary to use a parallel channel for speed improvement, more targets can be programmed with a corresponding bandwidth. In other words, because the target-based programming method is used, the control signal of the flash ROM is sent from the CPU in parallel, so there is no need to control the signal by creating a parallel channel separately, and use the corresponding pin to control another target. Can be.
본 발명에서 제안하는 시스템은 PC가 호스트가 되어 전체 프로그래밍의 제어를 담당하게 되는데 이 때 호스트에서 나오는 신호는 인터페이스의 종류에 따라서 대역폭의 제한이 있게 된다. 예를 들면 USB 인터페이스는 2.5Mbps, 이더넷(Ethernet) 인터페이스는 10M/100Mbps가 된다. 따라서 BST 장비와 동일한 인터페이스를 사용하였을 때는 전술한 병렬 채널의 불필요성에 의해서 동시에 제어할 수 있는 타겟의 수가 더 많아지게 되는 것이다.In the system proposed in the present invention, the PC becomes a host and takes charge of the entire programming control. At this time, the signal from the host has a bandwidth limitation depending on the type of interface. For example, the USB interface will be 2.5 Mbps and the Ethernet interface will be 10M / 100Mbps. Therefore, when the same interface as the BST equipment is used, the number of targets that can be controlled at the same time becomes larger due to the unnecessaryness of the parallel channel.
본 발명에 따른 방법을 위한 하드웨어의 구성 및 작용Construction and operation of hardware for the method according to the invention
본 발명에 따른 플래시ROM 프로그래밍 방법을 위한 하드웨어 장치는 도4와 같이 3개의 부분으로 구성된다. 즉, 호스트(host)(41), 콘트롤러(controller)(43), 익스팬더(expander)(45)의 3개의 부분으로 나뉘는데 각각은 다음과 같은 요소들로 구성된다. 도4는 장치의 각 구성요소를 기능적으로 나타낸 것이다. The hardware device for the flashROM programming method according to the present invention is composed of three parts as shown in FIG. That is, it is divided into three parts, a host 41, a controller 43, and an expander 45, each of which is composed of the following elements. 4 functionally illustrates each component of the apparatus.
호스트(41)는 전체 프로그래밍 절차의 진행을 맡는 역할을 하는 것으로서, 경계주사열을 사용하여 원하는 장치의 핀에 원하는 신호를 인가하기 위해서 타겟보드의 구성정보(schematic)와 BSDL(Boundary Scan Description Language) 파일의 정보를 종합하여 보드의 경계주사열 정보를 생성하고 여기에 플래시ROM의 동작 특성에 대한 정보(flash model)를 종합하여 프로그래밍 모델을 만드는 수단(411)과, 프로그래밍 모델을 바탕으로 프로그래밍을 위해서 타겟의 탭(TAP)에 보내줄 프로그래밍 벡터를 생성하는 수단(413)과, 생성된 프로그래밍 벡터를 콘트롤러(43)로 전송하는 USB 인터페이스(415)로 구성된다.The host 41 is responsible for the progress of the entire programming procedure. In order to apply a desired signal to a pin of a desired device by using a boundary scan sequence, the host board configuration information (schematic) and boundary scan description language (BSDL) are used. A means for creating a programming model by synthesizing board boundary scan string information by synthesizing the file information and synthesizing a flash model with the flash model, and for programming based on the programming model. Means 413 for generating a programming vector to be sent to the tap TAP of the target, and a USB interface 415 for transmitting the generated programming vector to the controller 43.
콘트롤러(43)는 호스트(41)와 타겟을 연결하고 제어하는 역할을 하는 장치로서 버퍼로서의 역할과 TAP신호를 생성하는 역할을 담당한다. 콘트롤러(43)는 호스트(41)로부터 프로그래밍 벡터신호를 전송받는 USB 인터페이스(431)와, 프로그래밍 벡터신호를 저장하는 버퍼 수단(433)과, 이 프로그래밍 벡터신호를 타겟의 TAP 형식에 맞도록 변환하는 수단(435)과, TCK를 생성하는 수단(437)과, 변환된 TAP신호를 TCK에 동기시키는 수단(439)과, 동기된 신호를 타겟으로 전송하는 수단(438)과, 타겟의 TAP과의 인터페이스 역할을 하는 TAP 인터페이스(436)로 구성된다.The controller 43 is a device that connects and controls the host 41 and the target, and serves as a buffer and generates a TAP signal. The controller 43 is a USB interface 431 which receives the programming vector signal from the host 41, buffer means 433 for storing the programming vector signal, and converts the programming vector signal to match the TAP format of the target. Means 435, means 437 for generating a TCK, means 439 for synchronizing the converted TAP signal to the TCK, means 438 for transmitting the synchronized signal to the target, and TAP of the target. It consists of a TAP interface 436 that serves as an interface.
익스팬더(45)는 콘트롤러(43)와 타겟의 사이에 위치하여 TAP 인터페이스를 통해서 콘트롤러(43)로부터 전송받은 TAP신호(프로그래밍 벡터정보를 갖고 있다)를 다수의 타겟에 분배하는 역할을 한다(몇 개의 타겟에 동시 프로그램할 수 있는지는 호스트(41)-콘트롤러(43)의 대역폭에 좌우된다. 통상, 호스트(41)는 일반 용도의 PC가 되기 때문에 범용의 I/O 인터페이스를 사용하기 때문이다). 익스팬더(45)는 콘트롤러(43)의 TAP 인터페이스(436)로부터 신호를 전송받는 TAP 인터페이스(451)와, 전송받은 TAP신호를 타겟의 수 N개로 분할하는 수단(453)과, 분할된 TAP신호를 증폭하여 각 타겟의 TAP포트(457)로 전달하는 수단(455)으로 구성된다. 이 때 타겟으로부터 전송된 TDO 신호(도2 참조)는 다시 콘트롤러(43)를 통해서 호스트(41)로 전송되어 프로그램의 실패 유무를 검증할 수 있다.The expander 45 is located between the controller 43 and the targets and distributes the TAP signal (having programming vector information) received from the controller 43 through the TAP interface to a plurality of targets (some Whether the program can be simultaneously programmed to the target depends on the bandwidth of the host 41-controller 43. Usually, since the host 41 becomes a general purpose PC, it uses a general purpose I / O interface). The expander 45 includes a TAP interface 451 for receiving a signal from the TAP interface 436 of the controller 43, means 453 for dividing the received TAP signal into N number of targets, and a divided TAP signal. And a means 455 for amplifying and transmitting the amplified signal to the TAP port 457 of each target. At this time, the TDO signal (see FIG. 2) transmitted from the target may be transmitted to the host 41 through the controller 43 again to verify whether the program has failed.
위에서 설명한 기능적 구성을 갖는 플래시ROM 프로그램 장치의 입체적인 설명을 위하여 각 구성요소의 하드웨어적 관점에서 본 발명의 구성을 설명하기로 한다.For the three-dimensional description of the flash ROM program device having the functional configuration described above, the configuration of the present invention will be described in terms of hardware of each component.
우선, 호스트(41)로는 통상 사용하는 개인용 컴퓨터(PC)를 사용하고, 콘트롤러(43)를 통해서 타겟 프로그램을 위한 소프트웨어를 설치하게 된다. 즉, 도4의 호스트의 기능적 구성은 PC와 소프트웨어에 의해 구현될 수 있다.First, the host 41 uses a personal computer (PC) that is normally used, and installs software for a target program through the controller 43. That is, the functional configuration of the host of FIG. 4 can be implemented by PC and software.
한편, 도5에서와 같이, 콘트롤러(43)에는 TCK 생성기(51)와, 호스트(41)에서 전송한 TAP신호와 TCK를 동기화하여 타겟에 전송하는 TAP신호 동기 및 생성기(53)가 포함된다. 또한 콘트롤러(43)에는 독립적인 프로세스 유닛과 메모리가 탑재되어 호스트(41)의 제어를 받지 않고 독립적으로 프로그램을 수행할 수도 있다. 이는 하나의 호스트(41)가 다수의 타겟을 프로그램하려고 할 때 발생할 수 있는 신호의 지연과 손실의 문제를 해결하기 위한 방법이다. 이 경우에는 호스트(41)-콘트롤러(43)-익스팬더(45)의 시스템 구조는 동일하지만, 콘트롤러(43)의 개수가 타겟의 수에 비례하여 증가하게 되고, 전체 프로그램의 과정을 호스트(41)의 제어 없이 모두 콘트롤러(43)가 독립적으로 수행하게 되고, 타겟은 소수개의 그룹으로 나뉘어서 콘트롤러(43)-익스팬더(45)에 배분되게 된다. 예를 들면 콘트롤러(43)-익스팬더(45)의 1개조에 4개의 타겟이 부착되어 있고 이러한 조가 16개가 있다면 모두 64개의 타겟을 동시에 프로그램하게 되는 것이다. 물론 이와 같은 구성에도 호스트(41)는 단 1개가 필요할 뿐이다. 5, the controller 43 includes a TCK generator 51 and a TAP signal synchronization and generator 53 for synchronizing the TAP signal transmitted from the host 41 and the TCK to the target. In addition, the controller 43 may be equipped with an independent process unit and a memory to independently execute a program without being controlled by the host 41. This is a way to solve the problem of delay and loss of signal which can occur when one host 41 tries to program multiple targets. In this case, although the system structure of the host 41-controller 43-expander 45 is the same, the number of the controller 43 increases in proportion to the number of targets, and the process of the entire program is performed by the host 41. Without the control of all the controller 43 is performed independently, the target is divided into a few groups are distributed to the controller 43-expander 45. For example, if four targets are attached to one set of the controller 43 and the expander 45, and there are 16 such sets, all 64 targets are programmed simultaneously. Of course, only one host 41 is required in such a configuration.
한편, 도6에서와 같이 익스팬더(45)는 콘트롤러(43)와 독립된 모듈로 구현될 수도 있고, 콘트롤러(43)와 같이 구현될 수도 있다.Meanwhile, as shown in FIG. 6, the expander 45 may be implemented as a module independent of the controller 43 or may be implemented as the controller 43.
본 발명에 따른 플래시ROM 프로그래밍 방법의 설명Description of FlashROM Programming Method According to the Present Invention
본 발명에서 제시하는 플래시ROM 프로그래밍 방법은, 앞에서 설명한 것과 같이 BST용 경계주사열을 사용하며 타겟의 RAM과 CPU를 이용하여 진행된다. 본 발명에 따른 프로그래밍 방법의 절차는 도7a 및 7b에 나타낸다.The flash ROM programming method proposed by the present invention uses a boundary scan sequence for BST as described above, and proceeds using a RAM and a CPU of a target. The procedure of the programming method according to the invention is shown in Figures 7a and 7b.
1) BST용 경계주사열을 사용해서 플래시ROM의 종류에 따라 적절한 소거 신호를 보내어 플래시ROM을 소거한다[101].1) Using a boundary scan sequence for BST, an appropriate erase signal is sent according to the type of flash ROM to erase the flash ROM [101].
2) RAM에 BST용 경계주사열을 사용해서 프로그램과 다운로드를 위한 데이터를 업로드한다[103].2) Upload the data for program and download using the BST boundary scan sequence in RAM [103].
3) BST용 경계주사열을 사용하여 플래시ROM의 시작 번지에 RAM의 메모리맵 상의 시작 번지로 JUMP하는 명령어를 다운로드한다(플래시ROM의 시작번지에 원래 있던 데이터는 일시 저장된다)[105].3) Using the BST boundary scan sequence, download the instruction JUMP to the start address of the RAM map at the start address of the flash ROM (data originally stored at the start address of the flash ROM is temporarily stored) [105].
4) 경계주사열 INTEST 명령어를 이용해서 타겟의 CPU에 리셋 신호를 넣어준다[107]. 만약에 CPU의 탭콘트롤러에 INTEST 명령어가 없는 경우에는 외부에서 CPU의 리셋핀에 물리적으로 접촉하여 리셋신호를 넣어준다. 이 때의 리셋 신호는 CPU의 리셋회로의 구성에 따라서 달라지게 된다.4) Boundary scan sequence The reset signal is input to the target CPU using the INTEST instruction [107]. If there is no INTEST instruction in the tap controller of the CPU, externally contact the reset pin of the CPU and input the reset signal. The reset signal at this time depends on the configuration of the reset circuit of the CPU.
5) CPU는 RAM에 저장된 프로그램을 사용해서 플래시ROM에 데이터를 다운로드하여 프로그래밍을 시작한다[109]. 모든 데이터가 다운로드되었는지 체크하여[111] 모두 다운로드되었다면 CPU의 특정 핀(BST용 경계주사열이 스캔할 수 있는 핀이라면 그 핀이 출력핀인 한 어떠한 핀이든 상관이 없다. 따라서, 이를테면 데이터버스를 사용하는 것도 가능하다)들을 통해서 미리 약속된 데이터(여기서 미리 약속된 데이터라는 것은 컨트롤러에 현재 RAM에 다운로드된 데이터의 프로그램이 모두 끝났다는 것을 알려주는 신호를 의미한다. 즉, 설계자가 미리 정의한 프로토콜에 해당한다)를 내보낸다[121]. 5) The CPU starts programming by downloading data to a flash ROM using a program stored in RAM [109]. If all the data has been downloaded [111] and all have been downloaded, it may be any pin as long as it is an output pin if a particular pin of the CPU (the boundary scan sequence for the BST is a scanable pin). Through pre-appointed data (where pre-appointed data is meant here) is a signal that tells the controller that the program for the data currently downloaded to RAM is complete. Corresponding to the corresponding value of the corresponding element).
6) 여기서, 사용자의 요구가 있을 경우에는 현재 RAM에 수록된 데이터의 프로그램이 모두 완료된 시점에서 RAM의 데이터와 플래시ROM의 데이터를 상호 비교하여 완결성을 검증하는 검증단계를 포함할 수도 있다[도면 없음].6) In this case, the user may include a verification step of verifying completeness by comparing data of the RAM and data of the flash ROM when all programs of the data currently stored in the RAM are completed [not shown]. .
7) BST 콘트롤러는 특정 핀들(앞에서 설명한 것과 같이 출력핀인한 어느 것이든 관계없다)을 샘플링 명령어(sample instruction)을 사용해서 계속 감시하고 있다가[123] 상기 미리 약속된 데이터가 검출되면[125] 경계주사열의 제어를 시작하여 다시 RAM에 데이터를 다운로드한다(RAM의 용량은 플래시ROM의 용량에 비해서 작은 것이 일반적이기 때문에 플래시ROM에 프로그램할 데이터를 분할해서 프로그램하게 된다. 따라서, 프로그램할 데이터는 소정의 단위로 분할되어 RAM에 순차적으로 다운로드되고, 그 데이터를 CPU가 RAM에 있는 코드를 사용해서 프로그램하게 된다)[127]. 7) The BST controller continues to monitor certain pins (any of the output pin-ins as described above) using a sample instruction [123] and if the pre-scheduled data is detected [125]. The control of the boundary scan sequence is started and data is downloaded to the RAM again. (Since the capacity of the RAM is generally smaller than that of the flash ROM, the data to be programmed into the flash ROM is divided and programmed. The data is divided into units, downloaded sequentially into the RAM, and the CPU programs the data using the code in the RAM) [127].
8) 상기 2)의 과정으로 되돌아가서 반복한다[129]. 만약에 플래시ROM에 다운로드하기를 원하는 모든 데이터의 다운로드가 완료되면[128] 플래시ROM의 시작 번지에 있는 JUMP 명령어를 원래의 데이터로 바꾸어서 저장한다[131].8) Return to the process of 2) and repeat [129]. If the download of all the data you want to download to the flash ROM is completed [128], replace the JUMP command at the start address of the flash ROM with the original data and save it [131].
9) 플래시ROM의 프로그램이 완료되었다.9) The program of the flash ROM is completed.
이상에서 특정한 실시예를 근거로 본 발명의 기술적 사상에 관해 설명하였다. 그러나, 본 발명의 기술적 범위가 상기 실시예에 한정되는 것은 아니다. 발명의 기술적 범위 내지는 권리범위는 첨부된 특허청구범위에 기재된 사항으로 결정되는 것이다. 따라서, 당업자가 설명된 실시예를 기본으로 다양한 변형을 가했다 하더라도 특허청구범위에 기재되어 있는 한 본 발명의 기술적 범위에 포함될 것이다. The technical spirit of the present invention has been described above based on specific embodiments. However, the technical scope of the present invention is not limited to the above embodiment. The technical scope or scope of the invention is determined by the matters set forth in the appended claims. Therefore, even if those skilled in the art made various modifications based on the described embodiment, it will be included in the technical scope of this invention as long as it is described in a claim.
본 발명은 플래시ROM의 인시스템 프로그램 방식인 타겟기반 프로그래밍 방식과 BST 프로그래밍 방식의 2가지 장점을 혼합하여 기존의 방식에 비해 단위 시간당 더 많은 개수의 플래시ROM을 프로그램할 수 있는 플래시ROM 프로그램 장치의 구조와 방식에 관한 것으로서, 특히 기존의 ICD장비에서 사용하는 타겟기반 방식의 경우에는 CPU의 디버깅과 연관된 고유한 정보를 사용하여 프로그램하여야 하는데 이는 CPU를 제조한 회사와 긴밀한 연관이 있지 않으면 얻기 힘든 정보이다. 본 발명에서 사용하는 방식은 이러한 정보가 필요 없는 방식으로서 향후 저가형 디버그 장치의 개발에도 응용될 수 있는 방식이다. The present invention is a structure of a flash ROM program device capable of programming a larger number of flash ROMs per unit time than the conventional method by mixing two advantages of a target-based programming method and a BST programming method, which is an in-system program method of a flash ROM. In particular, the target-based method used in the existing ICD equipment should be programmed using unique information related to the debugging of the CPU, which is difficult to obtain unless it is closely related to the company that manufactured the CPU. . The method used in the present invention is a method that does not need this information and can be applied to the development of a low-cost debug device in the future.
따라서, 본 발명은 인시스템 프로그래밍 방식을 도입하여 플래시ROM 프로그램 공정의 수를 줄일 수 있고, 기존의 인시스템 프로그래밍의 단점인 속도가 느리다는 점과 동시에 프로그램할 수 있는 타겟의 수가 종래의 소자 프로그램 장치에 비해 제한되어 있다는 점을 해결하였다. 본 발명에 따른 플래시ROM 프로그램 장치는 기존의 프로그램 장치와 대등하거나 더 빠른 속도를 보이고, 동시에 플래시ROM이 장착되어 있는 상태에서 프로그램이 가능하게 됨으로써 프로그래밍이 잘못되었을 경우에도 다시 수정하기가 용이하다. 또한 BST장비에서 속도의 향상을 위해서 필요하였던 병렬 제어신호의 필요성을 제거함으로써 더 많은 타겟을 동시에 프로그램할 수 있게 되었다.Accordingly, the present invention can reduce the number of flash ROM programming processes by introducing an in-system programming method, and at the same time, the number of targets that can be programmed at the same time as the disadvantage of the existing in-system programming is slow. It solved that it is limited compared to. The flash ROM program device according to the present invention is equal to or faster than the existing program device, and at the same time, the programming is possible in a state in which the flash ROM is mounted, so that it is easy to correct again when programming is wrong. In addition, more targets can be programmed at the same time by eliminating the need for parallel control signals, which were required to improve speed in BST equipment.
도1은 종래의 타겟기반 프로그래밍 방식의 개요도1 is a schematic diagram of a conventional target-based programming scheme
도2는 종래의 BST 프로그래밍 방식의 개요도Figure 2 is a schematic diagram of a conventional BST programming method
도3은 종래의 BST 장비에서의 동시 프로그래밍의 예시도3 is an exemplary diagram of simultaneous programming in a conventional BST equipment.
도4는 본 발명에 사용되는 플래시ROM 프로그램 장치의 구성도4 is a block diagram of a flash ROM program apparatus used in the present invention.
도5는 도4의 콘트롤러의 구성도5 is a configuration diagram of the controller of FIG.
도6은 도5의 익스팬더의 구성도6 is a configuration diagram of the expander of FIG.
도7a, b는 본 발명에 따른 프로그래밍 방법의 순서도7a and b are flowcharts of a programming method according to the present invention.
<미설명된 도면부호의 설명><Explanation of unexplained reference numerals>
21: 경계주사열, 457: TAP포트21: Boundary scan sequence, 457: TAP port
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0049659A KR100478567B1 (en) | 2002-08-22 | 2002-08-22 | Flash-ROM programming method using boundary scan chain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0049659A KR100478567B1 (en) | 2002-08-22 | 2002-08-22 | Flash-ROM programming method using boundary scan chain |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040017538A KR20040017538A (en) | 2004-02-27 |
KR100478567B1 true KR100478567B1 (en) | 2005-03-22 |
Family
ID=37323071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0049659A KR100478567B1 (en) | 2002-08-22 | 2002-08-22 | Flash-ROM programming method using boundary scan chain |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100478567B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176232B2 (en) * | 2009-05-11 | 2012-05-08 | Micron Technology, Inc. | Dedicated interface to factory program phase-change memories |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000009368A (en) * | 1998-07-23 | 2000-02-15 | 양 딩유안 | Microcomputer having built-in flash memory with on-chip programmability and method of programming data in flash memory |
KR20000009396A (en) * | 1998-07-21 | 2000-02-15 | 구자홍 | Reading sequence information generation method and data reading method using menu-data in rewritable record media |
JP2000065899A (en) * | 1998-08-14 | 2000-03-03 | Sony Corp | Semiconductor device, and its data rewriting method |
KR20010019731A (en) * | 1999-08-30 | 2001-03-15 | 윤종용 | On-board programming method using random access memory in microcontroller having flash memory |
KR20030018138A (en) * | 2001-08-27 | 2003-03-06 | 주식회사 엘지이아이 | Memory Programming System and Method for the Same |
-
2002
- 2002-08-22 KR KR10-2002-0049659A patent/KR100478567B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000009396A (en) * | 1998-07-21 | 2000-02-15 | 구자홍 | Reading sequence information generation method and data reading method using menu-data in rewritable record media |
KR20000009368A (en) * | 1998-07-23 | 2000-02-15 | 양 딩유안 | Microcomputer having built-in flash memory with on-chip programmability and method of programming data in flash memory |
JP2000065899A (en) * | 1998-08-14 | 2000-03-03 | Sony Corp | Semiconductor device, and its data rewriting method |
KR20010019731A (en) * | 1999-08-30 | 2001-03-15 | 윤종용 | On-board programming method using random access memory in microcontroller having flash memory |
KR20030018138A (en) * | 2001-08-27 | 2003-03-06 | 주식회사 엘지이아이 | Memory Programming System and Method for the Same |
Also Published As
Publication number | Publication date |
---|---|
KR20040017538A (en) | 2004-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8127187B2 (en) | Method and apparatus of ATE IC scan test using FPGA-based system | |
US11385285B2 (en) | Automated test equipment using an on-chip-system test controller | |
EP1153348B1 (en) | On-chip debug system | |
US9470759B2 (en) | Test instrument having a configurable interface | |
CN101504692B (en) | System and method for validating and testing on-chip system | |
US8362791B2 (en) | Test apparatus additional module and test method | |
KR101933723B1 (en) | Programmable protocol generator | |
JP2004354357A (en) | Testing device and method | |
US12044720B1 (en) | Multi-core test processor, and integrated circuit test system and method | |
US20110181309A1 (en) | Test apparatus and test module | |
US20120198292A1 (en) | Test apparatus and test method | |
CN107656882A (en) | A kind of USB controller verification method, system and equipment | |
CN101102566B (en) | A design method and debugging method for mobile phone JTAG debugging interface signals | |
US8032807B2 (en) | Scan control method, scan control circuit and apparatus | |
CN111579959A (en) | Chip verification method, device and storage medium | |
EP2771705A1 (en) | Programmable test instrument | |
CN110365423B (en) | Method for verifying radio SOC platform DUT | |
JP4992791B2 (en) | Scan control method and apparatus | |
KR100478567B1 (en) | Flash-ROM programming method using boundary scan chain | |
CN111090039A (en) | FPGA function test method and device | |
US5404526A (en) | Improved method for accessing machine state information | |
CN114356820A (en) | Acceleration method and device based on ATE equipment chip test and test machine system | |
US8692566B2 (en) | Test apparatus and test method | |
CN115524605A (en) | Electronic device, access method of joint test work group interface and storage medium | |
CN100426248C (en) | Test system and method for network additive storage device |
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: 20120426 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140228 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20150313 Year of fee payment: 11 |